From a536fa4d6d7e94a8ad72185a46f0efa4b9fdaa5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Fri, 17 Jun 2022 16:48:11 +0800 Subject: [PATCH 0001/3123] Translated --- ...kage Version With Apt Command in Ubuntu.md | 191 ------------------ ...kage Version With Apt Command in Ubuntu.md | 191 ++++++++++++++++++ 2 files changed, 191 insertions(+), 191 deletions(-) delete mode 100644 sources/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md create mode 100644 translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md diff --git a/sources/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md b/sources/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md deleted file mode 100644 index c88a655218..0000000000 --- a/sources/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md +++ /dev/null @@ -1,191 +0,0 @@ -[#]: 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: "robsean" -[#]: 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 doesn’t 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, you’ll 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 - -That’s 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, you’ll have to install the required version of the dependent packages as well. - -Now that you know a few potential issues let’s 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 Ubuntu’s 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 here’s 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 Ubuntu’s 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 that’s 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, it’s 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. It’s 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 diff --git a/translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md b/translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md new file mode 100644 index 0000000000..299e226d0f --- /dev/null +++ b/translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md @@ -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: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Ubuntu 中使用 apt 命令来安装具体指定的软件包版本 +====== + +在 Ubuntu 中想安装一个软件包的一个具体指定的软件包版本?你可以通过下面的方式来轻松地完成: + +``` +sudo apt install package_name=package_version +``` + +你如何知道某个软件包有哪些可用的版本?使用这个命令: + +``` +apt list --all-versions package_name +``` + +在下面的屏幕截屏中,你可以看到,我有两个可用的 VLC 版本,我使用命令来安装较旧的版本: + +![install specific versions apt ubuntu][1] + +听起来像一个简单的任务,对吧?但是事情并非看起来那么简单。这里有一些不确定是否会出现,但是可能会涉及的东西。 + +这篇教程将涵盖使用 apt 或 apt-get 命令来安装一个具体指定的程序的版本的所有的重要的方面。 + +### 关于安装一个具体指定版本的程序而所需要知道的事 + +在基于 Ubuntu 和 Debian 发行版中,你需要知道一些关于 APT 和 存储库 是如何工作的知识 + +#### 同一个的软件包源没有较旧的版本 + +Ubuntu 在其存储库中不保留较旧版本的软件包。在特殊的情况下,你可以暂时性地看到多个版本。例如,你运行 apt 更新 (但不升级),那么会用一个可用的新的版本。在 apt 缓存中,你可以看到同一个软件包的两个版本。但是,一旦软件包被升级到了新的版本,较旧版本的软件包将从 **apt 缓存** 和 存储库 中移除。 + +#### 使用多个软件包源来使用不同的版本 + +为获取同一个的软件包的多个版本,你将必需条件多个软件包源。例如,VLC 是版本 3.x 系列。添加 [VLC 每日构建 PPA][2] 将会提供 (不稳定是) 版本 4.x 系列。 + +同样,**你可以下载不同版本的 DEB 文件,并安装它**。 + +#### 较高版本编号的版本通常获取优先权 + +如果你有来自多个软件包源的相同名称的软件,默认情况下,Ubuntu 将安装可用的最高版本编号的版本。 + +在前面的示例中,如果我安装 VLC ,那么它将会安装 4.x 系列的版本,而不是 3.x 系列的版本。 + +#### 较旧版本将升级到可用的较新版本 + +这是另外一个可能存在的问题。即使你安装较旧版本的软件包,它也会升级到较新的版本 (如果存在可用的较新的版本)。你必须 [监禁软件包来防止其升级][3] 。 + +#### 依赖关系也需要安装 + +如果软件包有依赖关系,你也需要安装必要的依赖关系软件包版本。 + +现在,你已经知道一些可能存在的问题,让我们看看如何解决它们。 + +### 安装一个软件包的具体指定版本 + +在这篇教程中,我将以 VLC 为例。在 Ubuntu 的存储库中可获得 VLC 版本。我添加了每日构建 PPA ,它将向我提供 VLC 的 4.0 版本的候选版本。 + +如你所见,在现在的系统中,我有两个可用的 VLC 版本: + +![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 +``` + +因为较高版本编号版本获取优先权,使用 ‘apt install vlc’ 命令将会导致安装 VLC 的 4.0 版本。但是,因为这篇教程的缘由,我想安装较旧的版本 3.0.16 。 + +``` +sudo apt install vlc=3.0.16-1build7 +``` + +但是,这里会有这样的事。vlc 软件包有一些依赖关系,并且这些依赖关系也需要具体指定的版本。因此,在 Ubuntu 为其尝试安装最新的版本时,你将会遇到经典的 [你已持有残缺软件包you have held broken packages][5] 错误。 + +![problem installing specific version apt ubuntu][6] + +为修复这个错误,你需要为其提供它所投诉的所有依赖关系的软件包的具体指定版本。因此,该命令会变成这样: + +``` +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 +``` + +以免你瞎琢磨,每行结尾处的 \ 只是用来将多行命令来写入同一个命令的一种方式。 + +**它有作用吗?在很多情况下,它是有作用的。** 但是,我选择了一个复杂的 VLC 示例,它有很多依赖关系。甚至这些所涉及的依赖关系也依赖于其它的软件包。所以,它就变得令人难以处理。 + +一种可选的方法是在安装时指定软件包源。 + +#### 可选,指定存储库软件包源 + +你已经添加多个软件包源,因此,你应该对这些软件包的来源有一些了解。 + +使用下面的命令来搜索存储库: + +``` +apt-cache policy | less +``` + +聚焦于存储库名称后面的行: + +``` +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 +``` + +你可以具体指定 o、l、a 等参数。 + +在我原来的示例中,我想安装来自 Ubuntu 存储库的 VLC (获取版本 3.16) ,而不是安装来 PPA 的版本 (它将向我提供版本 4)。 + +因此,下面的命令将安装 VLC 版本 3.16 及其所有的依赖关系: + +``` +sudo apt install -t "o=ubuntu" vlc +``` + +![install from repository source][7] + +看起来令人满意?但是,当你必须更新系统时,问题就来了。它接下来会控诉找不到指定的软件包版本。 + +**还能做什么?** + +为安装较旧的软件包版本,从你的系统中移除较新版本的软件包源 (如果可能的话)。它将有助于逃脱这些依赖关系的地狱。 + +如果不能这么做,检查你是否可以从其它一些打包软件包的格式来获取,像 Snap、Flatpak、AppImage 等等。事实上,Snap 和 Flatpak 也允许你从可用的版本中选择和安装。因为这些应用程序是沙盒模式的,所以它很容易管理不同版本的依赖关系。 + +#### 保留软件包,防止升级 + +如果你完成安装一个指定的程序版本,你可能想避免意外地升级到较新的版本。实现这一点并不太复杂。 + +``` +sudo apt-mark hold package_name +``` + +你可以移除保留软件包,以便它能稍后升级: + +``` +sudo apt-mark unhold package_name +``` + +注意,软件包的依赖关系不会自动地保持。它们需要单独地提及。 + +### 结论 + +如你所见,这里有一条安装选定软件包版本的条文。只要软件包有依赖关系,那么事情就会变得复杂。接下来,你将进入依赖关系的地狱。 + +我希望你在这篇教程中学到一些新的东西。如果你有问题或建议来改善它,请在评论区告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-install-specific-version-2/ + +作者:[Abhishek Prakash][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://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 From 8cd8ce8985e7ceef8fbbd36bd6d0d22e46a948ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Fri, 17 Jun 2022 16:57:10 +0800 Subject: [PATCH 0002/3123] Translating --- sources/tech/20220603 How static linking works on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220603 How static linking works on Linux.md b/sources/tech/20220603 How static linking works on Linux.md index 00136f9851..6c6d631e5f 100644 --- a/sources/tech/20220603 How static linking works on Linux.md +++ b/sources/tech/20220603 How static linking works on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/static-linking-linux" [#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 126e82292e1ad0e06044fe1ed698567923d794a9 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Fri, 17 Jun 2022 19:30:01 +0800 Subject: [PATCH 0003/3123] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...et by writing a -guess the number- game.md | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/sources/tech/20210128 Start programming in Racket by writing a -guess the number- game.md b/sources/tech/20210128 Start programming in Racket by writing a -guess the number- game.md index 4f0bb194a6..7d672783b8 100644 --- a/sources/tech/20210128 Start programming in Racket by writing a -guess the number- game.md +++ b/sources/tech/20210128 Start programming in Racket by writing a -guess the number- game.md @@ -1,21 +1,21 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Start programming in Racket by writing a "guess the number" game) -[#]: via: (https://opensource.com/article/21/1/racket-guess-number) -[#]: author: (Cristiano L. Fontana https://opensource.com/users/cristianofontana) +[#]: subject: "Start programming in Racket by writing a "guess the number" game" +[#]: via: "https://opensource.com/article/21/1/racket-guess-number" +[#]: author: "Cristiano L. Fontana https://opensource.com/users/cristianofontana" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Start programming in Racket by writing a "guess the number" game ====== -Racket is a great way to learn a language from the Scheme and Lisp -families. +Racket is a great way to learn a language from the Scheme and Lisp families. + ![Person using a laptop][1] I am a big advocate of learning multiple programming languages. That's mostly because I tend to get bored with the languages I use the most. It also teaches me new and interesting ways to approach programming. -Writing the same program in multiple languages is a good way to learn their differences and similarities. Previously, I wrote articles showing the same sample data plotting program written in [C & C++][2], JavaScript with [Node.js][3], and [Python and Octave][4]. +Writing the same program in multiple languages is a good way to learn their differences and similarities. Previously, I wrote articles showing the same sample data plotting program written in [C & C++][2], JavaScript with [Node.js][3], and [Python and Octave][4]. This article is part of another series about writing a "guess the number" game in different programming languages. In this game, the computer picks a number between one and 100 and asks you to guess it. The program loops until you make a correct guess. @@ -31,7 +31,6 @@ When I start learning a new language, I usually look for a tutorial that introdu Starting with Racket makes sense because it is very mature and versatile, and the community is very active. Since Racket is a Lisp-like language, a major characteristic is that it uses the [prefix notation][9] and a [lot of parentheses][10]. Functions and operators are applied to a list of operands by prefixing them: - ``` (function-name operand operand ...) @@ -58,15 +57,14 @@ The major Linux distributions offer packaged versions of Racket, so [installatio Here is a version of the "guess the number" program written in Racket: - ``` #lang racket (define (inquire-user number)   (display "Insert a number: ") -  (define guess (string->number (read-line))) -  (cond [(> number guess) (displayln "Too low") (inquire-user number)] -        [(< number guess) (displayln "Too high") (inquire-user number)] +  (define guess (string->number (read-line))) +  (cond [(> number guess) (displayln "Too low") (inquire-user number)] +        [(< number guess) (displayln "Too high") (inquire-user number)]         [else (displayln "Correct!")])) (displayln "Guess a number between 1 and 100") @@ -75,14 +73,12 @@ Here is a version of the "guess the number" program written in Racket: Save this listing to a file called `guess.rkt` and run it: - ``` -`$ racket guess.rkt` +$ racket guess.rkt ``` Here is some example output: - ``` Guess a number between 1 and 100 Insert a number: 90 @@ -111,9 +107,9 @@ Now for the next line. `(define ...)` is used to declare new variables or functi This function recursively calls itself to repeat the question until the user guesses the right number. Note that I am not using loops; I feel that Racket programmers do not like loops and only use recursive functions. This approach is idiomatic to Racket, but if you prefer, [loops are an option][18]. -The first step of the `inquire-user` function asks the user to insert a number by writing that string to the console. Then it defines a variable called `guess` that contains whatever the user entered. The [`read-line` function][19] returns the user input as a string. The string is then converted to a number with the [`string->number` function][20]. After the variable definition, the [`cond` function][21] accepts a series of conditions. If a condition is satisfied, it executes the code inside that condition. These conditions, `(> number guess)` and `(< number guess)`, are followed by two functions: a `displayln` that gives clues to the user and a `inquire-user` call. The function calls itself again when the user does not guess the right number. The `else` clause executes when the two conditions are not met, i.e., the user enters the correct number. The program's guts are this `inquire-user` function. +The first step of the `inquire-user` function asks the user to insert a number by writing that string to the console. Then it defines a variable called `guess` that contains whatever the user entered. The [read-line function][19] returns the user input as a string. The string is then converted to a number with the [string->number function][20]. After the variable definition, the [cond function][21] accepts a series of conditions. If a condition is satisfied, it executes the code inside that condition. These conditions, `(> number guess)` and `(< number guess)`, are followed by two functions: a `displayln` that gives clues to the user and a `inquire-user` call. The function calls itself again when the user does not guess the right number. The `else` clause executes when the two conditions are not met, i.e., the user enters the correct number. The program's guts are this `inquire-user` function. -However, the function still needs to be called! First, the program asks the user to guess a number between 1 and 100, and then it calls the `inquire-user` function with a random number. The random number is generated with the [`random` function][22]. You need to inform the function that you want to generate a number between 1 and 100, but the `random` function generates integer numbers up to `max-1`, so I used 101. +However, the function still needs to be called! First, the program asks the user to guess a number between 1 and 100, and then it calls the `inquire-user` function with a random number. The random number is generated with the [random function][22]. You need to inform the function that you want to generate a number between 1 and 100, but the `random` function generates integer numbers up to `max-1`, so I used 101. ### Try Racket @@ -124,15 +120,15 @@ Learning new languages is fun! I am a big advocate of programming languages poly via: https://opensource.com/article/21/1/racket-guess-number 作者:[Cristiano L. Fontana][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://opensource.com/users/cristianofontana -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD (Person using a laptop) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/laptop_screen_desk_work_chat_text.png [2]: https://opensource.com/article/20/2/c-data-science [3]: https://opensource.com/article/20/6/data-science-nodejs [4]: https://opensource.com/article/20/2/python-gnu-octave-data-science From 48e244d8846cbdbf19f9042c536e9d0cd267e5a4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 17 Jun 2022 19:36:37 +0800 Subject: [PATCH 0004/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220617=20Containerisation=20of=20Java=20Microservi?= =?UTF-8?q?ces.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Containerisation of Java Microservices.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 sources/tech/20220617 Containerisation of Java Microservices.md diff --git a/sources/tech/20220617 Containerisation of Java Microservices.md b/sources/tech/20220617 Containerisation of Java Microservices.md new file mode 100644 index 0000000000..5beffb4758 --- /dev/null +++ b/sources/tech/20220617 Containerisation of Java Microservices.md @@ -0,0 +1,167 @@ +[#]: subject: "Containerisation of Java Microservices" +[#]: via: "https://www.opensourceforu.com/2022/06/containerisation-of-java-microservices/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Containerisation of Java Microservices +====== +Frequent roll outs of microservices demand self-contained units that ensure safe and successful deployments. Containerisation offers an elegant solution. In this part 7 of the Design Odyssey, we will build and deploy the AddService of UMS as a Docker container. + +![Container][1] + +In the previous part of this series, it was observed that a packaged Spring Boot application carries an embedded Tomcat Web server along with class files and dependent libraries. However, the JRE was left out of the application package. The deployment engineer is still required to find and install a suitable JRE before deploying the application. How about including the JRE also into the package and distributing it so that the deployment can be automated fully? + +That’s exactly what containerisation is! + +As depicted in Figure 1, a container is a deployment unit that consists of not only the application code but also the required operating environment, which includes artifacts like JRE, Python runtime, Node runtime, etc, as required. + +![Figure 1: Deployment unit with containerisation][2] + +#### Docker containers + +In theory, the concept of containerisation is not very new. For example, the Linux operating system has already been offering the necessary bits and pieces in that direction. However, credit goes to the Docker containers for the popularity of this approach in the last decade. +The architecture of Docker containers can be summarised as shown in Figure 2. It consists of: (1) a Docker Hub, which is a repository of distributable images of Docker containers, and (2) a Docker Engine, which runs the Docker containers. + +![Figure 2: The Docker architecture][3] + +The architecture is well supported by the other ecosystem players like Git, Jenkin, Maven, etc. + +As part of the development cycle, the engineers write and push the code to Git repositories. As part of the build cycle, build tools like Jenkins pull the code from Git repositories, build the Docker image and push it to the Docker Hub. + +As part of the deployment cycle, the Docker runtime pulls the image from Docker Hub and creates Docker containers that bring the applications to life. Any number of images can be pulled and launched on a single instance of Docker runtime. Where is the magic? + +Docker containers are language-agnostic. They are capable of running applications on any platform. For example, they can run an Express Web service on Node or a Flask Web service on Python, or a Spring Boot Web service on JRE. The answer is simple. The container just offers a sandbox with a Linux environment. The container image must package everything else that is required for the application. For example, the image of a Flask service must include Python runtime into the container image and similarly, the image of a Spring Boot service must include JRE. + +Let’s explore the last option a bit more. + +#### Spring Boot and Docker container + +The Maven build tool packages a Java application. The Docker build tool packages a container. Just like the pom.xml acts as the manifest file for the Maven build tool, Dockerfile acts as the manifest file for the Docker build tool. + +A Dockerfile specifies the root container as the prerequisite, and presents directives to be followed in order to create the image. For instance, the following is a manifest for building a Docker image of a Spring Boot Web application. + +``` +FROM maven:3.5-jdk-8 +COPY src /usr/glarimy/src +COPY pom.xml /usr/glarimy +RUN mvn -f /usr/glarimy/pom.xml clean package +EXPOSE 8080 +ENTRYPOINT [“java”,”-jar”,”/usr/glarimy/target/ums-add-service.jar”] +``` + +Let’s decipher it line by line. + +FROM maven:3.5-jdk-8 + +The above directive specifies maven:3.5-jdk-8 as the root container. This makes sure that a Docker container is started with a JDK of version 8 and the Maven of version 3.5 is available for the rest of the packaging process. This container is used only for building the image. Let’s call this a build-container. + +``` +COPY src /usr/glarimy/src +COPY pom.xml /usr/glarimy +``` + +The above directives create /usr/glarimy folder on the build-container and copy the code from a local src folder to a /usr/glarimy/src folder on the build-container. They also copy the local pom.xml file to /usr/glarimy on the build-container. + +``` +RUN mvn -f /usr/glarimy/pom.xml clean package +``` + +This directive kicks off the Maven build process to package the Java code as per the referred pom.xml. Note that all this happens on the build-container. Once the process is completed, the container image for the Spring Boot application is ready. This image can be run as a container, which we refer to as deployment-container. However, we still need to specify the directives on how to launch this on the deployment-container. + +``` +EXPOSE 8080 +``` + +The above directive specifies that port 8080 be opened up for traffic on the deployment-container when this image runs. + +``` +ENTRYPOINT [“java”,”-jar”,”/usr/glarimy/target/ums-add-service.jar”] +``` + +This directive specifies the command to launch the application on the deployment-container. +There are several other directives possible, but the approach is more or less similar. Once the Dockerfile is ready, and the Docker is installed on a given machine, the following command on a Docker runtime is sufficient to build the container image. + +``` +docker build -t glarimy/ums-add-service . +``` + +Observe that the last token of the above command points to the location of Dockerfile, which is the current folder in this case. + +The following command lists all available images on the local Docker Engine: + +``` +docker images +``` + +Figure 3 presents a sample output of the above command. This list includes the images that are pulled from the Docker Hub as well as built locally. + +![Figure 3: Listing the Docker images][4] + +It’s not useful if the created Docker image of the application just lies on the local Docker Engine. In order for it to be deployed on the target infrastructure, the image needs to be distributed. The following command publishes the local image on the Docker Hub so that anyone can pull it for deployment. Of course, an account needs to be created on [https://hub.docker.com][5] before pushing the image to the hub. + +``` +docker push glarimy/ums-add-service +``` + +The images on the Docker Hub can be searched online at[https://hub.docker.com/][6]. + +![Figure 4: Listing the containers][7] + +Individuals and organisations can create private spaces to ensure the confidentiality of the images. In fact, automated builds can also be set up on Docker Hub in such a way that it listens to the code commits on Git and kicks off building a new version of the image immediately. Organisations may use several other tools like Jenkins and design a CI pipeline. +One way or another, once an image is available in the hub, it can be pulled to any Docker machine with the following command: + +``` +docker pull glarimy/ums-add-service +``` + +And the following command launches a new Docker container from the image and exposes it to the clients: + +``` +docker container run -d --name ums-add-service -p 8080:8080 glarimy/ums-add-service +``` + +This command may look a bit complicated, but it’s not really so once it is understood. + +* The docker container run is the command that runs the container. +* The -d switch makes it a daemon process so that the prompt is back. +* The -name switch names the container as expected. Without this switch, the Docker Engine generates a name that may not be intuitive. +* The -p switch maps the port 8080 of the container to the port 8080 of the host machine so that the clients outside of the container can also access the service. +* And the last part is the actual name of the image that needs to be run, which is glarimy/ums-add-service in this case. +* The list of containers running currently can be found using the following command: + +``` +docker container ps +``` + +Now the service can be accessed from the host machine using the appropriate CURL command or using any REST client, just like it was done in the previous parts of this series. + +#### Next steps + +Though the Docker containers solve the problem of building ready-to-run self-contained images that can be deployed onto any Docker machine, this is certainly not sufficient. What if microservices running in two different containers want to access each other? What if a microservice wants to access a database server? What if N number of instances of a given service must always be run to handle the load? + +The answer lies in networking and orchestrating the containers, which will be covered in the next part of this series. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/containerisation-of-java-microservices/ + +作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Container.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-Deployment-unit-with-containerisation.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-The-Docker-architecture.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-3-Listing-the-Docker-images.jpg +[5]: https://hub.docker.com +[6]: https://hub.docker.com/ +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-4-Listing-the-containers.jpg From ba1b707cd8406ff1fcbd9be0d94da9e0b6849dfa Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 17 Jun 2022 19:47:43 +0800 Subject: [PATCH 0005/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020211102=20Apache=20Kafka-=20Asynchronous=20Messagin?= =?UTF-8?q?g=20for=20Seamless=20Systems.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...chronous Messaging for Seamless Systems.md | 300 ++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md diff --git a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md new file mode 100644 index 0000000000..8646536175 --- /dev/null +++ b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md @@ -0,0 +1,300 @@ +[#]: subject: "Apache Kafka: Asynchronous Messaging for Seamless Systems" +[#]: via: "https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Apache Kafka: Asynchronous Messaging for Seamless Systems +====== +Apache Kafka is one of the most popular open source message brokers. Found in almost all microservices environments, it has become an important component of Big Data manipulation. This article gives a brief description of Apache Kafka, followed by a case study that demonstrates how it is used. + +![Digital-backgrund-connecting-in-globe][1] + +Have you ever wondered how e-commerce platforms are able to handle immense traffic without getting stuck? Ever thought about how OTT platforms are able to deliver content to millions of users, smoothly and simultaneously? The key lies in their distributed architecture. + +A system designed around distributed architecture is made up of multiple functional components. These components are usually spread across several machines, which collaborate with each other by exchanging messages asynchronously over a network. Asynchronous messaging is what enables scalable, non-blocking communication among components, thereby allowing smooth functioning of the overall system. + +### Asynchronous messaging + +The common features of asynchronous messaging are: + +* The producers and consumers of the messages are not aware of each other. They join and leave the system without the knowledge of the others. +* A message broker acts as the intermediary between the producers and consumers. +* The producers associate each of the messages with a type, known as topic. A topic is just a simple string. +* It is possible that producers send messages on multiple topics, and multiple producers send messages on the same topic. +* The consumers register with the broker for messages on one or more topics. +* The producers send the messages only to the broker, and not to the consumers. +* The broker, in turn, delivers the messages to all the consumers that are registered against the topic. +* The producers do not expect any response from the consumers. In other words, the producers and consumers do not block each other. + +There are several message brokers available in the market, and Apache Kafka is one of the most popular among them. + +### Apache Kafka + +Apache Kafka is an open source distributed messaging system with streaming capabilities, developed by the Apache Software Foundation. Architecturally, it is a cluster of several brokers that are coordinated by the Apache Zookeeper service. These brokers share the load on the cluster while receiving, persisting, and delivering the messages. + +#### Partitions + +Kafka writes messages into buckets known as partitions. A given partition holds messages only on one topic. For example, Kafka writes messages on the topic heartbeats into the partition named *heartbeats-0*, irrespective of the producer of the messages. + +![Figure 1: Asynchronous messaging][2] + +However, in order to leverage the cluster-wide parallel processing capabilities of Kafka, administrators often create more than one partition for a given topic. For instance, if the administrator creates three partitions for the topic heartbeats, Kafka names them as *heartbeats-0, heartbeats-1,* and *heartbeats-2.* Kafka writes the heartbeat messages across all the three partitions in such a way that the load is evenly distributed. + +There is yet another possible scenario in which the producers associate each of the messages with a key. For example, a component uses C1 as the key while another component uses C2 as the key for the messages that they produce on the topic heartbeats. In this scenario, Kafka makes sure that the messages on a topic with a specific key are always found only in one partition. However, it is quite possible that a given partition may hold messages with different keys. Figure 2 presents a possible message distribution among the partitions. + +![Figure 2: Message distribution among the partitions][3] + +#### Leaders and ISRs + +Kafka maintains several partitions across the cluster. The broker on which a partition is maintained is called the leader for the specific partition. Only the leader receives and serves the messages from its partitions. + +But what happens to a partition if its leader crashes? To ensure business continuity, every leader replicates its partitions on other brokers. The latter act as the in-sync-replicas (ISRs) for the partition. In case the leader of a partition crashes, Zookeeper conducts an election and names an ISR as the new leader. Thereafter, the new leader takes the responsibility of writing and serving the messages for that partition. Administrators can choose how many ISRs are to be maintained for a topic. + +![Figure 3: Command-line producer][4] + +#### Message persistence + +The brokers map each of the partitions to a specific file on the disk, for persistence. By default, they keep the messages for a week on the disk! The messages and their order cannot be altered once they are written to a partition. Administrators can configure policies like message retention, compaction, etc. + +![Figure 4: Command-line consumer][5] + +#### Consuming the messages + +Unlike most other messaging systems, Apache Kafka does not actively deliver the messages to its consumers. Instead, it is the responsibility of the consumers to listen to the topics and read the messages. A consumer can read messages from more than one partition of a topic. And it is also possible that multiple consumers read messages from a given partition. Kafka guarantees that no message is read more than once by a given consumer. + +Kafka also expects that every consumer is identified with a group ID. Consumers with the same group ID form a group. Typically, in order to read messages from N number of topic partitions, an administrator creates a group with N number of consumers. This way, each consumer of the group reads messages from its designated partition. If the group consists of more consumers than the available partitions, the excess consumers remain idle. + +In any case, Apache Kafka guarantees that a message is read only once at the group level, irrespective of the number of consumers in the group. This architecture gives consistency, high-performance, high scalability, near-real-time delivery, and message persistence along with zero-message loss. + +### Installing and running Kafka + +Although, in theory, the Apache Kafka cluster can consist of any number of brokers, most of the clusters in production environments usually consist of three or five of these. +Here, we will set up a single-broker cluster that is good enough for the development environment. + +Download the latest version of Kafka from *https://kafka.apache.org/downloads* using a browser. It can also be downloaded with the following command, on a Linux terminal: + +``` +wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.8.0/kafka_2.12-2.8.0.tgz +``` + +We can move the downloaded archive *file kafka_2.12-2.8.0.tgz* to some other folder, if needed. Extracting the archive creates a folder by the name *kafka_2.12-2.8.0*, which will be referred to as *KAFKA_HOME* hereafter. + +Open the file server.properties under the *KAFKA_HOME/config* folder and uncomment the line with the following entry: + +``` +listeners=PLAINTEXT://:9092 +``` + +This configuration enables Apache Kafka to receive plain text messages on port 9092, on the local machine. Kafka can also be configured to receive messages over a secure channel as well, which is recommended in the production environments. + +Irrespective of the number of brokers, Apache Zookeeper is required for broker management and coordination. This is true even in the case of single-broker clusters. Since Zookeeper is already bundled with Kafka, we can start it with the following command from *KAFKA_HOME*, on a terminal: + +``` +./bin/zookeeper-server-start.sh ./config/zookeeper.properties +``` + +Once Zookeeper starts running, Kafka can be started in another terminal, with the following command: + +``` +./bin/kafka-server-start.sh ./config/server.properties +``` + +With this, a single-broker Kafka cluster is up and running. + +### Verifying Kafka + +Let us publish and receive messages on the topic topic-1. A topic can be created with a chosen number of partitions with the following command: + +``` +./bin/kafka-topics.sh --create --topic topic-1 --zookeeper localhost:2181 --partitions 3 --replication-factor 1 +``` + +The above command also specifies the replication factor, which should be less than or equal to the number of brokers in the cluster. Since we are working on a single-broker cluster, the replication factor is set to one. + +Once the topic is created, producers and consumers can exchange messages on that topic. The Kafka distribution includes a producer and a consumer for test purposes. Both of these are command-line tools. + +To invoke the producer, open the third terminal and run the following command: + +``` +./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-1 +``` + +This command displays a prompt at which we can key in simple text messages. Because of the given options on the command, the producer sends the messages on *topic-1* to the Kafka that is running on port 9092 on the local machine. + +Open the fourth terminal and run the following command to start the consumer tool: + +``` +./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-1 –from-beginning +``` + +This command starts the consumer that connects to the Kafka on port number 9092 on the local machine. It registers for reading the messages on topic-1. Because of the last option on the command line, the consumer receives all the messages on the chosen topic from the beginning. + +Since the producer and consumer are connecting to the same broker and referring the same topic, the consumer receives and displays the messages on its terminal. + +Now, let’s use Kafka in the context of a practical application. + +### Case study + +ABC is a hypothetical bus transport company, which has a fleet of passenger buses that ply between different cities across the country. Since ABC wants to track each bus in real-time for improving the quality of its operations, it comes up with a solution around Apache Kafka. + +ABC first equips all its buses with devices to track their location. An operations centre is set up with Apache Kafka, to receive the location updates from each of the hundreds of buses. A dashboard is developed to display the current status of all the buses at any point in time. Figure 5 represents this architecture. + +![Figure 5: Kafka based architecture][6] + +In this architecture, the devices on the buses act as the message producers. They send their current location to Kafka on the topic *abc-bus-location*, periodically. For processing the messages from different buses, ABC chooses to use the trip code as the key. For example, if the bus from Bengaluru to Hubballi runs with the trip code*BLRHBL003*, then *BLRHBL003* becomes the key for all the messages from that specific bus during that specific trip. + +The dashboard application acts as the message consumer. It registers with the broker against the same topic *abc-bus-location*. Consequently, the topic becomes the virtual channel between the producers (buses) and the consumer (dashboard). + +The devices on the buses never expect any response from the dashboard application. In fact, none of them is even aware of the presence of the others. This architecture enables non-blocking communication between hundreds of buses and the central office. + +#### Implementation + +Let’s assume that ABC wants to create three partitions for maintaining the location updates. Since the development environment has only one broker, the replication factor should be set to one. + +The following command creates the topic accordingly: + +``` +./bin/kafka-topics.sh --create --topic abc-bus-location --zookeeper localhost:2181 --partitions 3 --replication-factor 1 +``` + +The producer and consumer applications can be written in multiple languages like Java, Scala, Python, JavaScript, and a host of others. The code in the following sections provides a peek into the way they are written in Java. + +##### Java producer + +The Fleet class simulates the Kafka producer applications running on six buses of ABC. It sends location updates on *abc-bus-location* to the specified broker. Please note that the topic name, message keys, message body, and broker address are hard-coded only for simplicity. + +``` +public class Fleet { + public static void main(String[] args) throws Exception { + String broker = “localhost:9092”; + Properties props = new Properties(); + props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); + props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, + StringSerializer.class.getName()); + props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, + StringSerializer.class.getName()); + + Producer producer = new KafkaProducer(props); + String topic = “abc-bus-location”; + Map locations = new HashMap<>(); + locations.put(“BLRHBL001”, “13.071362, 77.461906”); + locations.put(“BLRHBL002”, “14.399654, 76.045834”); + locations.put(“BLRHBL003”, “15.183959, 75.137622”); + locations.put(“BLRHBL004”, “13.659576, 76.944675”); + locations.put(“BLRHBL005”, “12.981337, 77.596181”); + locations.put(“BLRHBL006”, “13.024843, 77.546983”); + + IntStream.range(0, 10).forEach(i -> { + for (String trip : locations.keySet()) { + ProducerRecord record + = new ProducerRecord( + topic, trip, locations.get(trip)); + producer.send(record); + } + }); + producer.flush(); + producer.close(); + } +} +``` + +##### Java consumer + +The Dashboard class implements the Kafka consumer application and it runs at the ABC Operations Centre. It listens to *abc-bus-location* with the group ID *abc-dashboard* and displays the location details from different buses as soon as messages are available. Here, too, many details are hard coded which are otherwise supposed to be configured: + +``` +public static void main(String[] args) { + String broker = “127.0.0.1:9092”; + String groupId = “abc-dashboard”; + Properties props = new Properties(); + props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); + props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, + StringDeserializer.class.getName()); + props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, + StringDeserializer.class.getName()); + props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, groupId); + + @SuppressWarnings(“resource”) + Consumer consumer = new KafkaConsumer(props); + consumer.subscribe(Arrays.asList(“abc-bus-location”)); + while (true) { + ConsumerRecords records + = consumer.poll(Duration.ofMillis(1000)); + + for (ConsumerRecord record : records) { + String topic = record.topic(); + int partition = record.partition(); + String key = record.key(); + String value = record.value(); + System.out.println(String.format( + “Topic=%s, Partition=%d, Key=%s, Value=%s”, + topic, partition, key, value)); + } + } + } +} +``` + +##### Dependencies + +A JDK of 8+ version is required to compile and run this code. The following Maven dependencies in the *pom.xml* download and add the required Kafka client libraries to the classpath: + +``` + + org.apache.kafka + kafka-clients + 2.8.0 + + + org.slf4j + slf4j-simple + 1.7.25 + +``` + +#### Deployment + +As the topic *abc-bus-location* is created with three partitions, it makes sense to run three consumers to read the location updates quickly. For that, run the Dashboard in three different terminals simultaneously. Since all the three instances of Dashboard register with the same group ID, they form a group. Kafka attaches each Dashboard instance with a specific partition. + +Once the Dashboard instances are up and running, start the *Fleet* on a different terminal. Figure 6, Figure 7, and Figure 8 are sample console messages on the Dashboard terminals. + +![Figure 6: Dashboard Terminal – 1][7] + +A closer look at the console messages reveals that the consumers on the first, second and third terminals are reading messages from *partition-2, partition-1,* and *partition-0,* in that order. Also, it can be observed that the messages with the keys BLRHBL002, *BLRHBL004* and *BLRHBL006* are written into *partition-2*, the messages with the key *BLRHBL005* are written into *partition-1*, and the remaining are written into *partition-0*. + +![Figure 7: Dashboard Terminal – 2][8] + +The good thing about Kafka is that it can be scaled horizontally to support a large number of buses and millions of messages as long as the cluster is designed appropriately. + +![Figure 8: Dashboard Terminal – 3][9] + +### Beyond messaging + +More than 80 per cent of the Fortune 100 companies are using Kafka, according to its website. It is deployed across many industry verticals like financial services, entertainment, etc. Though Apache Kafka started its journey as a simple messaging service, it has propelled itself into the Big Data ecosystem with industry-level stream processing capabilities. For the enterprises that prefer a managed solution, Confluent offers a cloud based Apache Kafka service for a subscription fee. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/ + +作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Digital-backgrund-connecting-in-globe.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-1-Asynchronous-messaging.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-2-Message-distribution-among-the-partitions.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-3-Command-line-producer.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-4-Command-line-consumer.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-5-Kafka-based-architecture.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-6-Dashboard-Terminal-1.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-7-Dashboard-Terminal-2.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-8-Dashboard-Terminal-3.jpg From 2ad86cc3a8f018aeac3e207009b8212fe28f5493 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Fri, 17 Jun 2022 19:59:17 +0800 Subject: [PATCH 0006/3123] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=BC=A9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...chronous Messaging for Seamless Systems.md | 119 +++++++++--------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md index 8646536175..958d99e847 100644 --- a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md +++ b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md @@ -169,36 +169,36 @@ The Fleet class simulates the Kafka producer applications running on six buses o ``` public class Fleet { - public static void main(String[] args) throws Exception { - String broker = “localhost:9092”; - Properties props = new Properties(); - props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); - props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, - StringSerializer.class.getName()); - props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, - StringSerializer.class.getName()); + public static void main(String[] args) throws Exception { + String broker = “localhost:9092”; + Properties props = new Properties(); + props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); + props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, + StringSerializer.class.getName()); + props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, + StringSerializer.class.getName()); - Producer producer = new KafkaProducer(props); - String topic = “abc-bus-location”; - Map locations = new HashMap<>(); - locations.put(“BLRHBL001”, “13.071362, 77.461906”); - locations.put(“BLRHBL002”, “14.399654, 76.045834”); - locations.put(“BLRHBL003”, “15.183959, 75.137622”); - locations.put(“BLRHBL004”, “13.659576, 76.944675”); - locations.put(“BLRHBL005”, “12.981337, 77.596181”); - locations.put(“BLRHBL006”, “13.024843, 77.546983”); + Producer producer = new KafkaProducer(props); + String topic = “abc-bus-location”; + Map locations = new HashMap<>(); + locations.put(“BLRHBL001”, “13.071362, 77.461906”); + locations.put(“BLRHBL002”, “14.399654, 76.045834”); + locations.put(“BLRHBL003”, “15.183959, 75.137622”); + locations.put(“BLRHBL004”, “13.659576, 76.944675”); + locations.put(“BLRHBL005”, “12.981337, 77.596181”); + locations.put(“BLRHBL006”, “13.024843, 77.546983”); - IntStream.range(0, 10).forEach(i -> { - for (String trip : locations.keySet()) { - ProducerRecord record - = new ProducerRecord( - topic, trip, locations.get(trip)); - producer.send(record); - } - }); - producer.flush(); - producer.close(); - } + IntStream.range(0, 10).forEach(i -> { + for (String trip : locations.keySet()) { + ProducerRecord record + = new ProducerRecord( + topic, trip, locations.get(trip)); + producer.send(record); + } + }); + producer.flush(); + producer.close(); + } } ``` @@ -208,34 +208,33 @@ The Dashboard class implements the Kafka consumer application and it runs at the ``` public static void main(String[] args) { - String broker = “127.0.0.1:9092”; - String groupId = “abc-dashboard”; - Properties props = new Properties(); - props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); - props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, - StringDeserializer.class.getName()); - props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, - StringDeserializer.class.getName()); - props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, groupId); + String broker = “127.0.0.1:9092”; + String groupId = “abc-dashboard”; + Properties props = new Properties(); + props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); + props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, + StringDeserializer.class.getName()); + props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, + StringDeserializer.class.getName()); + props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, groupId); - @SuppressWarnings(“resource”) - Consumer consumer = new KafkaConsumer(props); - consumer.subscribe(Arrays.asList(“abc-bus-location”)); - while (true) { - ConsumerRecords records - = consumer.poll(Duration.ofMillis(1000)); + @SuppressWarnings(“resource”) + Consumer consumer = new KafkaConsumer(props); + consumer.subscribe(Arrays.asList(“abc-bus-location”)); + while (true) { + ConsumerRecords records + = consumer.poll(Duration.ofMillis(1000)); - for (ConsumerRecord record : records) { - String topic = record.topic(); - int partition = record.partition(); - String key = record.key(); - String value = record.value(); - System.out.println(String.format( - “Topic=%s, Partition=%d, Key=%s, Value=%s”, - topic, partition, key, value)); - } - } - } + for (ConsumerRecord record : records) { + String topic = record.topic(); + int partition = record.partition(); + String key = record.key(); + String value = record.value(); + System.out.println(String.format( + “Topic=%s, Partition=%d, Key=%s, Value=%s”, + topic, partition, key, value)); + } + } } ``` @@ -245,14 +244,14 @@ A JDK of 8+ version is required to compile and run this code. The following Mave ``` - org.apache.kafka - kafka-clients - 2.8.0 + org.apache.kafka + kafka-clients + 2.8.0 - org.slf4j - slf4j-simple - 1.7.25 + org.slf4j + slf4j-simple + 1.7.25 ``` From 89ce58a5cd91dcca78f0b56a4c2d3b159addc944 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 17 Jun 2022 20:04:00 +0800 Subject: [PATCH 0007/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]:=2020220617=20Containerisation=20of=20Java=20Microservi?= =?UTF-8?q?ces.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20220617 Containerisation of Java Microservices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220617 Containerisation of Java Microservices.md b/sources/tech/20220617 Containerisation of Java Microservices.md index 5beffb4758..0aed0cf052 100644 --- a/sources/tech/20220617 Containerisation of Java Microservices.md +++ b/sources/tech/20220617 Containerisation of Java Microservices.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/containerisation-of-java-microservices/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 39f368e80734a46fb06adb34bfab9ba6a38fcc1d Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 17 Jun 2022 20:05:20 +0800 Subject: [PATCH 0008/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]:=2020211102=20Apache=20Kafka-=20Asynchronous=20Messagin?= =?UTF-8?q?g=20for=20Seamless=20Systems.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Apache Kafka- Asynchronous Messaging for Seamless Systems.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md index 958d99e847..258121b7a6 100644 --- a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md +++ b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d01078f01bbdd155abf701e516ff6930d5a7bd75 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Fri, 17 Jun 2022 23:46:46 +0800 Subject: [PATCH 0009/3123] Update and rename sources/tech/20210104 10 ways Ansible is for everyone.md to translated/tech/20210104 10 ways Ansible is for everyone.md --- ...0210104 10 ways Ansible is for everyone.md | 94 ------------------- ...0210104 10 ways Ansible is for everyone.md | 93 ++++++++++++++++++ 2 files changed, 93 insertions(+), 94 deletions(-) delete mode 100644 sources/tech/20210104 10 ways Ansible is for everyone.md create mode 100644 translated/tech/20210104 10 ways Ansible is for everyone.md diff --git a/sources/tech/20210104 10 ways Ansible is for everyone.md b/sources/tech/20210104 10 ways Ansible is for everyone.md deleted file mode 100644 index 6b93c69ff3..0000000000 --- a/sources/tech/20210104 10 ways Ansible is for everyone.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (10 ways Ansible is for everyone) -[#]: via: (https://opensource.com/article/21/1/ansible) -[#]: author: (James Farrell https://opensource.com/users/jamesf) - -10 ways Ansible is for everyone -====== -Expand your knowledge and skills with the top 10 Ansible articles plus -five news summaries from 2020. -![gears and lightbulb to represent innovation][1] - -Here we are again at the end of another year with a great set of articles about Ansible from Opensource.com. I thought it would be nice to review them in a series of progressively advancing topics. I hope to help stimulate the interest of people just getting started with Ansible. There were also a series of summary articles, which I've included for your casual follow-up. - -### Ansible for beginners - -The first five articles on this year's list are a really good place for Ansible neophytes to start. The first three articles were written by Opensource.com editor Seth Kenlon. - - * If you don't know much about Ansible, [_7 things you can do with Ansible right now_][2] is a great place to start. This is a nice primer that gathers links for managing hardware, cloud, containers, and more. - * In [_What's the difference between orchestration and automation?_][3] you will learn some of the terms and baseline technologies that will help kick off your interest in Ansible. - * [_How to install software with Ansible_][4] covers a few rudimentary concepts and some good Ansible habits, followed by simple examples on managing software packages on local and remote hosts. - * In [_3 lessons I've learned writing Ansible playbooks_][5], set yourself right with good habits handed down by Jeff Geerling, a real Ansible veteran. Source control, documentation, testing, simplification, and optimization are the keys to automation success. - * [_My first day using Ansible_][6] outlines Correspondent David Both's thought process for solving a repetitive development task. The article starts with a baseline of what Ansible needs and illustrates some simple plays and tasks. - - - -### Ansible projects to try - -Once you have the basics and some good habits, it's time to turn to more specific topics with concrete examples. - - * [_Manage your Raspberry Pi fleet with Ansible_][7] by Ken Fallon walks through an example of deploying and managing fleets of RPi units. It presents concepts of security and maintenance in constrained environments. - * In _[Integrate your calendar with Ansible to avoid schedule conflicts][8],_ Nicolas Leiva quickly introduces how to use pre-tasks and conditionals to enforce execution blackout windows in your automation schedule. - * Nicolas completes his calendar blackout concept in [_Create an Ansible module for integrating your Google Calendar_][9]. His article dives into writing a custom Ansible module in Go to achieve the desired calendar connection. Nicolas introduces different ways to structure and invoke Go programs and pass the required data to Ansible and receive the desired output. - - - -### Elevate your Ansible skills - -Kubernetes is a hot topic these days, and the following articles offer some great examples to learn new skills. - - * In [_Automate your container orchestration with Ansible modules for Kubernetes_][10], Seth Kenlon introduces the Ansible Kubernetes module, walks through a basic Minikube installation for testing, and presents some basic examples of the "k8s" module for pod control. - * Jeff Geerling explains the concept of Helm Chart applications, Ansible collections, and executing a fun project to set up your own Minecraft server in a k8s cluster in [_Build a Kubernetes Minecraft server with Ansible's Helm modules_][11]. - - - -### Other Ansible news - -This year, Mark Phillips delivered a series of "Ansible around the web" news articles covering a wide variety of Ansible topics. They are packed with links to interesting Ansible developments, ranging from basic tutorials, module writing, plugins, Kubernetes, video demonstrations, and Ansible community news. Check them all out—there are valuable nuggets to follow for all interests and skill levels! - - * [_Containers, networks, security, and more Ansible news_][12] - * [_Tips for CI/CD pipelines and Windows users, and more Ansible news_][13] - * [_Collections signal major shift in Ansible ecosystem, and more Ansible news_][14] - * [_Ansible 101 videos with Jeff Geerling, and more Ansible news_][15] - * [_Beginner guides, Windows, networking, and more Ansible news_][16] - - - -### Have a happy 2021! - -I hope your personal journey with Ansible is already underway and regularly enriched by content from Opensource.com. Tell us in the comments what you might like to learn about Ansible in the coming year, and if you have information to share, please consider [writing an article][17] for Opensource.com. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/1/ansible - -作者:[James Farrell][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/jamesf -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation) -[2]: https://opensource.com/article/20/9/ansible -[3]: https://opensource.com/article/20/11/orchestration-vs-automation -[4]: https://opensource.com/article/20/9/install-packages-ansible -[5]: https://opensource.com/article/20/1/ansible-playbooks-lessons -[6]: https://opensource.com/article/20/10/first-day-ansible -[7]: https://opensource.com/article/20/9/raspberry-pi-ansible -[8]: https://opensource.com/article/20/10/calendar-ansible -[9]: https://opensource.com/article/20/10/ansible-module-go -[10]: https://opensource.com/article/20/9/ansible-modules-kubernetes -[11]: https://opensource.com/article/20/10/kubernetes-minecraft-ansible -[12]: https://opensource.com/article/20/1/ansible-news-edition-six -[13]: https://opensource.com/article/20/2/ansible-news-edition-seven -[14]: https://opensource.com/article/20/3/ansible-news-edition-eight -[15]: https://opensource.com/article/20/4/ansible-news-edition-nine -[16]: https://opensource.com/article/20/5/ansible-news-edition-ten -[17]: https://opensource.com/how-submit-article diff --git a/translated/tech/20210104 10 ways Ansible is for everyone.md b/translated/tech/20210104 10 ways Ansible is for everyone.md new file mode 100644 index 0000000000..dea8dd1485 --- /dev/null +++ b/translated/tech/20210104 10 ways Ansible is for everyone.md @@ -0,0 +1,93 @@ +[#]: collector: (lujun9972) +[#]: translator: (Donkey) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (10 ways Ansible is for everyone) +[#]: via: (https://opensource.com/article/21/1/ansible) +[#]: author: (James Farrell https://opensource.com/users/jamesf) + +Ansible 适合所有人的 10 种方式 +====== + +通过 2020 年的前 10 篇 Ansible 文章和 5 篇新闻摘要扩展你的知识和技能。 +![gears and lightbulb to represent innovation][1] + +又到了一年的年末,我们再次来到 Opensource.com 上发表了一组关于 Ansible 的精彩文章。我认为在逐步推进一系列主题中回顾它们会很好。我希望能够激励对 Ansible 有兴趣的初学者。还有一系列总结文章,我已将其包括在内,以供你随意后续查阅。 + +### 适合初学者的 Ansible + +今年列表中的前五篇文章对于 Ansible 新手来说是一个非常好的起点。前三篇文章由 Opensource.com 编辑 Seth Kenlon 撰写。 + + * 如果你不了解 Ansible ,[_现在可以做这 7 件事_][2] 来入手。这是很好的入门指导,它收集了用于管理硬件、云、容器等的链接。 + + * 在 [_编排与自动化有何区别?_][3] 这篇文章中,你会学到一些术语和技术路线,将会激发你对 Ansible 感兴趣。 + * 文章 [_如何用 Ansible 安装软件_][4] 覆盖了一些初级概念和一些 Ansible 的好习惯,给出了一些本地或远程管理软件包的案例。 + * 从 [_我在编写 Ansible Playbooks 时学到的 3 堂课_][5] 中,使自己养成 Jeff Geerling 所传授的好习惯,他是一位真正的 Ansible 资深人士。 源代码控制、文档、测试、简化和优化是自动化成功的关键。 + * [_我使用 Ansible 的第一天_][6] 介绍了记者 David Both 在解决重复性开发任务时的思考过程。这篇文章从 Ansible 的基础开始,并说明了一些简单的操作和任务。 + + + +### 尝试 Ansible 项目 +一旦你掌握了基础和并拥有良好习惯,就可以开始一些具体主题和实例了。 + + * Ken Fallon 在 [_使用 Ansible 管理你的 Raspberry Pi fleet_][7] 一文中介绍了一个部署和管理 RPi 单元的示例。它介绍了受限环境中的安全和维护概念。 + * 在 [_将你的日历与 Ansible 融合以避免日程冲突_][8] 文章中, Nicolas Leiva 快速介绍了如何使用前置任务和条件在自动日程安排中中强制执行隔离窗口 + * Nicolas 在 [_创建一个融合你的谷歌日历的 Ansible 模块_][9] 中完成了他的日历隔离的理念。他的文章深入探讨了在 Go 中编写自定义 Ansible 模块以实现所需的日历连接。 Nicolas 介绍了构建和调用 Go 程序并将所需数据传递给 Ansible 并接收所需输出的不同方法。 + + + +### 提升你的 Ansible 技巧 + +Kubernetes 是近来的热门话题,以下文章提供了一些很好的示例来学习新技能。 + + * 在 [_适用于 Kubernets 自动编排你的 Ansible 模块_][10] 文章中, Seth Kenlon 介绍了 Ansible Kubernetes 模块, 介绍了用于测试的基本 Minikube 安装,并提供了一些用于 pod 控制的“k8s”模块的基本示例。 + * Jeff Geerling 在 [_使用 Ansible 的 Helm 模块构建 Kubernetes Minecraft 服务器_][11] 中解释了 Helm Chart 应用程序、Ansible 集合以及执行一个有趣的项目以在 k8s 集群中设置您自己的 Minecraft 服务器的概念。 + + + +### 其他 Ansible 新闻 +几年, Mark Phillips 写了 “网络上的 Ansible” 这一系列文章,覆盖许多 Ansible 主题。它们包含指向有趣的 Ansible 开发的链接,范围从基本指导、模块编写、 Kubernetes 、视频演示到 Ansible 社区新闻。所有有兴趣和任何水平的人都可以查看一下,有很高的参考价值! + + * [_容器,网络,安全,以及更多 Ansible 新闻_][12] + * [_CI/CD 管道和 Windows 用户的提示,以及更多 Ansible 新闻_][13] + * [_馆藏标志着Ansible生态系统的重大转变,以及更多Ansible新闻_][14] + * [_Jeff Geerling 的 Ansible 101 视频,以及更多 Ansible 新闻_][15] + * [_初学者指南、Windows、网络和更多 Ansible 新闻_][16] + + + +### 2021 快乐! + +我希望你的 Ansible 旅程已经开始,并能常从 Opensource.com 中的文章充实自己。在评论中告诉我们接下来你可能从哪方面了解 Ansible ,如果你想分享一些信息,请考虑在 Opensource.com 上 [写一篇文章][17] 。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/1/ansible + +作者:[James Farrell][a] +选题:[lujun9972][b] +译者:[Donkey](https://github.comDonkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jamesf +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation) +[2]: https://opensource.com/article/20/9/ansible +[3]: https://opensource.com/article/20/11/orchestration-vs-automation +[4]: https://opensource.com/article/20/9/install-packages-ansible +[5]: https://opensource.com/article/20/1/ansible-playbooks-lessons +[6]: https://opensource.com/article/20/10/first-day-ansible +[7]: https://opensource.com/article/20/9/raspberry-pi-ansible +[8]: https://opensource.com/article/20/10/calendar-ansible +[9]: https://opensource.com/article/20/10/ansible-module-go +[10]: https://opensource.com/article/20/9/ansible-modules-kubernetes +[11]: https://opensource.com/article/20/10/kubernetes-minecraft-ansible +[12]: https://opensource.com/article/20/1/ansible-news-edition-six +[13]: https://opensource.com/article/20/2/ansible-news-edition-seven +[14]: https://opensource.com/article/20/3/ansible-news-edition-eight +[15]: https://opensource.com/article/20/4/ansible-news-edition-nine +[16]: https://opensource.com/article/20/5/ansible-news-edition-ten +[17]: https://opensource.com/how-submit-article From 11f3428840a20594f4551034043fb51022786d8f Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sat, 18 Jun 2022 09:23:20 +0800 Subject: [PATCH 0010/3123] translating --- ...10531 Get started with Kubernetes using chaos engineering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md b/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md index 344f7c1e9e..2a8b456224 100644 --- a/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md +++ b/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/kubernetes-chaos) [#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Donkey-Hao) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 2318ef2d34d8d03f7c1bfb1b4bd7672d50b4d2da Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 18 Jun 2022 09:49:39 +0800 Subject: [PATCH 0011/3123] RP @lkxed https://linux.cn/article-14723-1.html --- ...e Most Secure Web Browser for All Users.md | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) rename {translated/news => published}/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md (56%) diff --git a/translated/news/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md b/published/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md similarity index 56% rename from translated/news/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md rename to published/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md index 476b022c25..9273ad64d6 100644 --- a/translated/news/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md +++ b/published/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md @@ -3,17 +3,18 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14723-1.html" -Mozilla 刚刚使 Firefox 成为所有用户最安全的 Web 浏览器 +Mozilla 刚刚使 Firefox 成为所有人的最安全的网页浏览器 ====== -Mozilla 终于启用了一项隐私保护功能,这可能使其成为当下最安全的网络浏览器。你怎么看? + +> Mozilla 终于启用了一项隐私保护功能,这可能使其成为当下最安全的网页浏览器。你怎么看? ![Mozilla Firefox][1] -Mozilla Firefox 是市面上最安全的开源 Web 浏览器之一。 +Mozilla Firefox 是市面上最安全的开源网页浏览器之一。 毫无疑问,你可以自由定制它来进一步增强安全性,这就是 Tor 浏览器使用 Firefox 作为其核心的原因。 @@ -21,39 +22,39 @@ Mozilla Firefox 是市面上最安全的开源 Web 浏览器之一。 现在,Mozilla 终于为**所有桌面用户**启用了一项新功能,这使其成为最安全的浏览器(或是他们声称的“最安全”)。 -本文中,我讨论的不是任何新功能,而是 Firefox 中的现有功能,即 全面的 Cookie 保护Total Cookie Protection。它是在去年与 [Firefox 86][3] 一起引入的,但默认情况下并未对所有用户启用。 +本文中,我讨论的不是任何新功能,而是 Firefox 中的现有功能,即 Cookie 全面保护Total Cookie Protection。它是在去年与 [Firefox 86][3] 一起引入的,但默认情况下并未对所有用户启用。 ### 为所有用户提供的全面的 Cookie 保护 -“全面的 Cookie 保护”正在向所有人推出,无论你使用的是 Windows、Mac 还是 Linux,它将成为默认启用的核心功能之一。 +“Cookie 全面保护”正在向所有人推出,无论你使用的是 Windows、Mac 还是 Linux,它将成为默认启用的核心功能之一。 最初,要使用该功能,你必须启用严格模式(增强跟踪保护Enhanced Tracking Protection)。但现在,你不再需要这样做了。 -**它是什么?** +#### 它是什么? -如果你好奇的话,“全面的 Cookie 保护”会隔离每个网站和它们的 cookie。其中,Cookie 是网站向你的浏览器发送的少量数据。 +如果你好奇的话,“Cookie 全面保护”会隔离每个网站和它们的 Cookie。Cookie 是网站向你的浏览器发送的少量数据。 -因此,cookie 不会在网站之间共享,从而防止了跨站点跟踪cross-site tracking。 +因此,Cookie 不会在网站之间共享,从而防止了跨站跟踪cross-site tracking。 -浏览器将为你访问的每个网站都创建单独的 cookie 罐。 +浏览器将为你访问的每个网站都创建单独的“饼干罐Cookie Jar”。(LCTT 译注:Cookie 原意是小饼干。) ![][4] Mozilla 的博文对此进行了更多解释: -> 在任何时候,网站或嵌入网站的 [第三方内容][5] 在浏览器中存储的 cookie,都将仅限于分配给该网站的 cookie 罐。其他网站无法进入不属于它们的 cookie 罐,以得到那些网站的 cookie 对你的了解。这可以让你免受侵入性广告的影响,并减少公司收集的关于你的信息量。 +> 在任何时候,网站或嵌入网站的 [第三方内容][5] 在浏览器中存储的 Cookie,都将仅限于分配给该网站的 “饼干罐”。其他网站无法进入不属于它们的“饼干罐”,以得到你存储在那些 Cookie 中的信息。这可以让你免受侵入性广告的影响,并减少公司收集的关于你的信息量。 ### 那么,这有什么大不了的吗? -即使你配备了所有的隐私跟踪保护和内容拦截器,你也不一定知道,其实还有个问题叫做“跨站点跟踪”。 +即使你配备了所有的隐私跟踪保护和内容拦截器,你也不一定知道,其实还有个问题叫做“跨站跟踪”。 -因此,通过跨站点 cookie 交互,你的许多个人活动和习惯,都可以帮助数字跟踪公司建立你的在线个人资料。 +因此,通过跨站点的 Cookie 交互,你的许多个人活动和习惯,都可以帮助数字跟踪公司建立你的在线个人资料。 但是,对于 Mozilla Firefox 来说,它在所有其他隐私措施之上,默认额外启用了该功能,这可确保你获得最私密的体验。 -并且,所有这些都不需要你调整任何东西,这应该为那些“以隐私为中心”的用户提供方便。 +并且,所有这些都不需要你调整任何东西,这应该为那些“重视隐私”的用户提供方便。 -如果你还是好奇的话,你可以查看 Mozilla 的 [官方公告][6]。 +想了解进一步信息,你可以查看 Mozilla 的 [官方公告][6]。 -------------------------------------------------------------------------------- @@ -62,7 +63,7 @@ via: https://news.itsfoss.com/mozilla-firefox-secure/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e84280bcc421a14964e24959508dd8cd8d605595 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 18 Jun 2022 09:59:36 +0800 Subject: [PATCH 0012/3123] RP @lkxed https://linux.cn/article-14724-1.html --- ...s Sensitive Open Source Project Credentials.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) rename {translated/news => published}/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md (79%) diff --git a/translated/news/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md b/published/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md similarity index 79% rename from translated/news/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md rename to published/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md index 607aa17ec8..396d198271 100644 --- a/translated/news/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md +++ b/published/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md @@ -3,13 +3,14 @@ [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14724-1.html" Travis CI 漏洞暴露了敏感的开源项目凭证 ====== -![Travis CI][1] + +![Travis CI](https://img.linux.net.cn/data/attachment/album/202206/18/095734heuo8nc7g7n0ibtd.jpg) Travis CI 持续集成工具中的一个缺陷暴露了来自数千个在线开源项目的敏感数据。这并不是该软件第一次遇到此类安全问题。 @@ -17,9 +18,9 @@ Travis CI 是一个持续集成工具,它帮助软件开发者实现自动化 攻击者可以从这些明文存储的日志中,提取出用于登录 GitHub、Docker Hub 和 AWS 等云服务的用户身份验证令牌。研究人员在 800 万份日志样本中,发现了 70000 多个敏感令牌和其他机密凭证。Aqua 团队认为“所有 Travis CI 免费用户都有可能暴露”。根据 2019 年的数据,Travis CI 被超过 60 万名独立用户,用于超过 932977 个开源项目。 -这种对高级用户凭证的访问,会给使用该产品的软件开发者及其客户带来风险。“趋势科技”英国和爱尔兰安全技术总监 Bharat Mistry 解释道:“如果攻击者获得了这些凭据,就没有什么能阻止他们将恶意代码引入库或构建过程。这个缺陷无疑会导致数字供应链攻击。” +这种对高级用户凭证的访问,会给使用该产品的软件开发者及其客户带来风险。趋势科技英国和爱尔兰安全技术总监 Bharat Mistry 解释道:“如果攻击者获得了这些凭据,就没有什么能阻止他们将恶意代码引入库或构建过程。这个缺陷无疑会导致数字供应链攻击。” -供应链攻击可能极具破坏性。2020 年的 太阳风Solar Winds 攻击,使国家资助的俄罗斯黑客能够访问数千家企业和政府组织的系统。2021 年的 Kaseya 供应链攻击,使犯罪分子可以同时加密 1500 多家公司的数据,将他们全部扣为人质。 +供应链攻击可能极具破坏性。2020 年的 太阳风Solar Winds 攻击,使国家资助的俄罗斯黑客能够访问数千家企业和政府组织的系统。2021 年的 Kaseya 供应链攻击,使犯罪分子可以同时加密 1500 多家公司的数据,将它们全部扣为人质。 -------------------------------------------------------------------------------- @@ -28,7 +29,7 @@ via: https://www.opensourceforu.com/2022/06/the-travis-ci-vulnerability-exposes- 作者:[Laveesh Kocher][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f2a1ab10c616f37250f11b566a6840d1315ecb1a Mon Sep 17 00:00:00 2001 From: Donkey-Hao Date: Sat, 18 Jun 2022 11:47:01 +0800 Subject: [PATCH 0013/3123] Translated --- ...with Kubernetes using chaos engineering.md | 75 ------------------- ...with Kubernetes using chaos engineering.md | 74 ++++++++++++++++++ 2 files changed, 74 insertions(+), 75 deletions(-) delete mode 100644 sources/tech/20210531 Get started with Kubernetes using chaos engineering.md create mode 100644 translated/tech/20210531 Get started with Kubernetes using chaos engineering.md diff --git a/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md b/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md deleted file mode 100644 index 2a8b456224..0000000000 --- a/sources/tech/20210531 Get started with Kubernetes using chaos engineering.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: (Get started with Kubernetes using chaos engineering) -[#]: via: (https://opensource.com/article/21/5/kubernetes-chaos) -[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) -[#]: collector: (lujun9972) -[#]: translator: (Donkey-Hao) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Get started with Kubernetes using chaos engineering -====== -Learn the basics of chaos engineering in this first article in a series -celebrating Kubernetes' 11th birthday. -![Scrabble letters spell out chaos for chaos engineering][1] - -Kubernetes is turning 11, so I'll be celebrating its birthday by giving you some open source tools that will help you cause chaos. Chaos engineering is part science, part planning, and part experiments. It's the discipline of experimenting on a system to build confidence in the system's capability to withstand turbulent conditions in production. - -Before I start passing out the gifts, in this introductory article, I will explain the basics of how chaos engineering works. - -### How do I get started with chaos engineering? - -In my experience, the best way to start chaos engineering is by taking an incident that has happened before in production and using it as an experiment. Use your past data, make a plan to break your system in a similar way, create a repair strategy, and confirm the outcome turns out exactly how you want. If your plan fails, you have a new way to experiment and move forward toward a new way to handle issues quickly. - -Best of all, you can document everything as you go, which means, over time, your entire system will be fully documented so that anyone can be on call without too many escalations and everyone can have a nice break on weekends. - -### What do you do in chaos engineering? - -Chaos engineering has some science behind how these experiments work. I've documented some of the steps: - - 1. **Define a steady state**: Use a monitoring tool to gather data about what your system looks like functionally when there are no problems or incidents. - 2. **Come up with a hypothesis or use a previous incident:** Now that you have defined a steady state, come up with a hypothesis about what would happen (or has happened) during an incident or outage. Use this hypothesis to generate a series of theories about what could happen and how to resolve the problems. Then you can start a plan to purposely cause the issue. - 3. **Introduce the problem:** Use that plan to break your system and begin real-world testing. Gather your broken metrics' states, use your planned fix, and keep track of how long it takes before you reach a resolution. Make sure you document everything for future outages. - 4. **Try to disprove your own hypothesis:** The best part of experimenting is trying to disprove what you think or plan. You want to create a different state, see how far you can take it, and generate a different steady state in the system. - - - -Make sure to create a control system in a steady state before you generate the broken variables in another system. This will make it easier to spot the differences in various steady states before, during, and after your experiment. - -### What do I need for chaos engineering? - -The best tools for beginning chaos engineering are: - - * Good documentation practices - * A monitoring system to capture your system in a steady state and a non-steady state - * Grafana - * Prometheus - * Chaos engineering tools - * Chaos mesh - * Litmus - * And more that I will cover in future articles - * A hypothesis - * A plan - - - -### Go forth and destroy - -Now that you have the basics in hand, it's time to go forth and destroy your system safely. I would plan to start causing chaos four times a year and work toward monthly destructions. - -Chaos engineering is good practice and a great way to keep your internal documentation up to date. Also, new upgrades or application deployments will be smoother over time, and your daily life will be easier with Kubernetes administration. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/kubernetes-chaos - -作者:[Jessica Cherry][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/cherrybomb -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brett-jordan-chaos-unsplash.jpg?itok=sApp5dVd (Scrabble letters spell out chaos for chaos engineering) diff --git a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md new file mode 100644 index 0000000000..44db817fa0 --- /dev/null +++ b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md @@ -0,0 +1,74 @@ +[#]: subject: (Get started with Kubernetes using chaos engineering) +[#]: via: (https://opensource.com/article/21/5/kubernetes-chaos) +[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) +[#]: collector: (lujun9972) +[#]: translator: (Donkey) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +在混沌工程中开始使用 Kubernets +====== +在庆祝 Kubernetes 11 岁生日的系列文章中的第一篇文章中学习混沌工程的基础知识。 +![Scrabble letters spell out chaos for chaos engineering][1] + +Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源工具来庆祝它的生日。混沌工程是科学、规划以及实验的学科。它在系统上进行训练,来建立系统在生产中承受混乱条件能力的信心的学科。 + +在我给你礼物前,我会在文章导论部分解释混沌系统如何工作。 + +### 如何开始学习混沌系统呢? + +以我的经验,开始学习混沌系统的最好方式是触发一个此前生产中出现的事件来进行实验。使用过去的数据,制定以相同的方式破坏你的系统的计划,然后建立修复策略并确认结果确实是你想要的。如果计划失败,你就有了一种新的实验方式,并朝着快速处理问题的新方式前进。 + +最重要的是,你可以随时记录所有内容,这意味着,随着时间的推移,整个系统将被完整记录下以便任何人都可以随时待命而无需太多升级,并且每个人都可以在周末好好休息。 + +### 你在混沌工程中做什么? + +混沌系统实验运行背后有一些科学依据。我已经记录了步骤: + + 1. **定义一个稳定状态:** 使用监控工具来搜集当系统没有问题或事件时,看起来功能正常的数据。 + 2. **提出假设或使用先前的事件:** 现在你已经定义了一个稳定状态,请提出一个关于在事件或中断期间会发生(或已经发生)的情况的假设。用这个假设来得出一系列将会发生的事件以及如何解决问题的理论。然后你可以指定一个故意引起该问题的计划。 + 3. **介绍问题:** 用既定计划来破坏你的系统并开始在真实环境中测试。收集损坏的指标状态,按计划修复,并跟踪在你达到解决方案之前需要多长时间。确保你为之后中断记录了任何事情。 + 4. **试图推翻你的假设:** 实验中最精彩的部分是尝试推翻你的思考或计划。你想创建一个不同的状态,看看你能走多远,并在系统中生成一个不同的稳定状态。 + + +当你在另一个系统中生成破坏的变量前,确保建立一个处于稳定状态的控制系统。这将使你更容易在实验前、期间和之后发现各种稳态的差异。 + + +### 混沌工程需要什么? + +这有一些初学混沌工程很好的工具: + + * 良好的记录习惯 + * 一个捕捉你系统是否处于稳定状态的监控系统 + * Grafana + * Prometheus + * 混沌工程工具: + * Chaos mesh + * Litmus + * 之后的文章我会介绍更多 + * 一个假设 + * 一个计划 + + + +### 去搞破坏吧 + +现在你已经掌握了基础,是时候去安全的摧毁你的系统了。我计划每年造成四次混乱,并努力实现每月的破坏。 + +混沌工程是一种很好的实践,也是使你的内部文档保持最新的好方法。此外,随着时间的推移,新升级或应用程序部署将更加顺畅,你的日常生活将通过 Kubernetes 管理变得更加轻松。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/kubernetes-chaos + +作者:[Jessica Cherry][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/Donkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/cherrybomb +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brett-jordan-chaos-unsplash.jpg?itok=sApp5dVd (Scrabble letters spell out chaos for chaos engineering) From c8d3f5d9b5e3f6fe2351138cee4b1a5e096364a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 18 Jun 2022 11:57:58 +0800 Subject: [PATCH 0014/3123] Update 20210531 Get started with Kubernetes using chaos engineering.md --- ...with Kubernetes using chaos engineering.md | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md index 44db817fa0..37f4669b38 100644 --- a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md +++ b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md @@ -7,9 +7,10 @@ [#]: publisher: ( ) [#]: url: ( ) -在混沌工程中开始使用 Kubernets +在混沌工程中开始使用 Kubernetes ====== 在庆祝 Kubernetes 11 岁生日的系列文章中的第一篇文章中学习混沌工程的基础知识。 + ![Scrabble letters spell out chaos for chaos engineering][1] Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源工具来庆祝它的生日。混沌工程是科学、规划以及实验的学科。它在系统上进行训练,来建立系统在生产中承受混乱条件能力的信心的学科。 @@ -26,31 +27,27 @@ Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源 混沌系统实验运行背后有一些科学依据。我已经记录了步骤: - 1. **定义一个稳定状态:** 使用监控工具来搜集当系统没有问题或事件时,看起来功能正常的数据。 - 2. **提出假设或使用先前的事件:** 现在你已经定义了一个稳定状态,请提出一个关于在事件或中断期间会发生(或已经发生)的情况的假设。用这个假设来得出一系列将会发生的事件以及如何解决问题的理论。然后你可以指定一个故意引起该问题的计划。 - 3. **介绍问题:** 用既定计划来破坏你的系统并开始在真实环境中测试。收集损坏的指标状态,按计划修复,并跟踪在你达到解决方案之前需要多长时间。确保你为之后中断记录了任何事情。 - 4. **试图推翻你的假设:** 实验中最精彩的部分是尝试推翻你的思考或计划。你想创建一个不同的状态,看看你能走多远,并在系统中生成一个不同的稳定状态。 - +1. **定义一个稳定状态:** 使用监控工具来搜集当系统没有问题或事件时,看起来功能正常的数据。 +2. **提出假设或使用先前的事件:** 现在你已经定义了一个稳定状态,请提出一个关于在事件或中断期间会发生(或已经发生)的情况的假设。用这个假设来得出一系列将会发生的事件以及如何解决问题的理论。然后你可以指定一个故意引起该问题的计划。 +3. **介绍问题:** 用既定计划来破坏你的系统并开始在真实环境中测试。收集损坏的指标状态,按计划修复,并跟踪在你达到解决方案之前需要多长时间。确保你为之后中断记录了任何事情。 +4. **试图推翻你的假设:** 实验中最精彩的部分是尝试推翻你的思考或计划。你想创建一个不同的状态,看看你能走多远,并在系统中生成一个不同的稳定状态。 当你在另一个系统中生成破坏的变量前,确保建立一个处于稳定状态的控制系统。这将使你更容易在实验前、期间和之后发现各种稳态的差异。 - ### 混沌工程需要什么? 这有一些初学混沌工程很好的工具: - * 良好的记录习惯 - * 一个捕捉你系统是否处于稳定状态的监控系统 - * Grafana - * Prometheus - * 混沌工程工具: - * Chaos mesh - * Litmus - * 之后的文章我会介绍更多 - * 一个假设 - * 一个计划 - - +* 良好的记录习惯 +* 一个捕捉你系统是否处于稳定状态的监控系统 + * Grafana + * Prometheus +* 混沌工程工具: + * Chaos mesh + * Litmus + * 之后的文章我会介绍更多 +* 一个假设 +* 一个计划 ### 去搞破坏吧 From 57618ded13ddf96c2d44dd7a788af57d83c8b84d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 18 Jun 2022 16:09:06 +0800 Subject: [PATCH 0015/3123] RP @aREversez https://linux.cn/article-14725-1.html --- ... and Contribute to Open Source Software.md | 64 +++++++++---------- 1 file changed, 30 insertions(+), 34 deletions(-) rename {translated/talk => published}/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md (50%) diff --git a/translated/talk/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md b/published/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md similarity index 50% rename from translated/talk/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md rename to published/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md index 4a429461a0..e0feb992ca 100644 --- a/translated/talk/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md +++ b/published/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md @@ -3,27 +3,32 @@ [#]: author: "Dan Whiting https://www.linuxfoundation.org/blog/why-do-enterprises-use-and-contribute-to-open-source-software/" [#]: collector: "lkxed" [#]: translator: "aREversez" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14725-1.html" 企业为何使用开源软件,又为何推动开源软件的发展 ====== -每当人们知道我在 Linux 基金会Linux Foundation 工作,他们总是会问我们的工作具体是做什么的。有时候,他们会一直问我是不是开发 Linux 操作系统的。我只能回答说,我们做的是开源软件,并试图在他们失去兴趣之前,将对世界的重大影响赌在短短的 20 秒上。如果他们的兴趣还在,想要进一步了解,我就会给他们深入分析一番:企业为何想参与到开源软件项目之中?它们为何会使用开源软件?没错,企业确实会这样做,无论它们有没有意识到这一点。此外,成千上万的企业会将企业内部代码捐给开源项目,为推动开源软件的进一步开发和优化投入大量的时间和资源。 + +![](https://img.linux.net.cn/data/attachment/album/202206/18/160635ejcmee273zmmxh72.jpg) + +每当人们知道我在 Linux 基金会Linux Foundation 工作,他们总是会问我们的工作具体是做什么的。有时候,他们会一直问我是不是开发 Linux 操作系统的。我只能回答说,我们做的是开源软件,并试图在他们失去兴趣之前,在短短的 20 秒钟内介绍它对世界的影响力。如果他们的兴趣还在,想要进一步了解,我就会给他们深入分析一番:企业为何想参与到开源软件项目之中?它们为何会使用开源软件?没错,企业确实会这样做,无论它们有没有意识到这一点。此外,成千上万的企业会将企业内部代码捐给开源项目,为推动开源软件的进一步开发和优化投入大量的时间和资源。 ### 开源软件的使用范围有多广 -引用我们基金会最近发表的一项报告 《企业开源指南》A Guide to Enterprise Open Source,“开源软件open source software(OSS)改变了世界,是数字经济的支柱,数字世界的基石。从我们日常使用的互联网和移动应用到开拓未来的操作系统和程序语言,开源软件无不发挥着重要的作用,可谓是科技行业的命脉。在今天,开源软件驱动数字经济发展,推进科学技术取得突破,不断改善人们的生活水平。手机、汽车和飞机等设备,家庭、企业和政府等群体都在使用着开源软件。但就在 20 年前,开源软件还仅仅为少数人所知,为少数热心爱好者们组成的群体所用。” +引用我们最近发表的一项报告《企业开源指南A Guide to Enterprise Open Source》:“开源软件open source software(OSS)改变了世界,是数字经济的支柱,数字世界的基石。从我们日常使用的互联网和移动应用到开拓未来的操作系统和编程语言,开源软件无不发挥着重要的作用,可谓是科技行业的命脉。在今天,开源软件驱动数字经济发展,推进科学技术取得突破,不断改善人们的生活水平。手机、汽车和飞机等设备,家庭、企业和政府等群体都在使用着开源软件。但就在 20 年前,开源软件还仅仅为少数人所知,它的使用也仅限于一小部分专门的爱好者。” -如今,情况可大不相同了: +开源软件(OSS)已经改变了我们的世界,成为我们数字经济的支柱和数字世界的基础。 -* 在各行业的 垂类软件栈vertical software stacks 中,开源软件的占比达到了 20%-85%。 +而它实际上: + +* 在各行业的 垂类软件栈vertical software stacks 中,开源软件的占比达到了 20% - 85%。 * 超过 90% 的网站服务器和联网设备都依靠 Linux 来运行。 * 安卓手机系统也是基于 Linux 内核。 * 用于应用程序开发的 AMP、Appium、Dojo、jQuery、Marko、Node.js 等 [主流的库和工具][1] 均属于开源项目。 * 世界上排名位列前 100 名的超级计算机都在使用 Linux。 * 大型机客户均在使用 Linux。 -* AWS、Google 以及 Microsoft 三大云服务供应商都在使用开源软件运行服务,策划并在云端发起开源解决方案。 +* 亚马逊、谷歌以及微软三大云服务供应商都在使用开源软件运行服务,并在云端托管开源解决方案。 ### 企业为何想参与到开源软件项目之中 @@ -35,7 +40,7 @@ 人们经常会问,为什么这些企业愿意放弃自家软件的所有权?为什么它们不让员工专攻自家软件的开发呢? -从整体上来看,这一问题的答案就是,企业和组织聚集起来,合力解决共同的难题,如此一来,他们就可以各自专注于在这基础上的各类难题。这些企业明白,将资源聚集在一起,能够更好地解决基础问题。有时,这种现象被叫做“竞合”,大概的意思是企业在一些领域可能互为竞争对手,但是它们在另一些领域则会互相合作。 +从整体上来看,这一问题的答案就是,企业和组织聚集起来,合力解决共同的难题,如此一来,他们就可以各自专注于在这基础上的各类难题。这些企业明白,将资源聚集在一起,能够更好地解决基础问题。有时,这种现象被叫做“竞合coopetition”,大概的意思是企业在一些领域可能互为竞争对手,但是它们在另一些领域则会互相合作。 “竞合”现象的一些典型例子: @@ -45,25 +50,19 @@ 如今,企业、组织以及个体在合力解决难题的同时,也在不断地改进自身的产品与业务。 -[来此加密Let’s Encrypt][2] 是一个免费开放的自动化证书颁发机构,旨在通过简化安装程序,减低安装费用,快速扩大安全网络协议的应用范围。该机构为超过 2.25 亿个网站提供服务,每天平均发放证书约 150 万张。 +* [来此加密][2]Let’s Encrypt(LCTT译注:Let’s Encrypt 官网并没有用“来此加密”这样的称呼,但是在一些场合有这样的译名。我们认为此翻译很贴切。) 是一个免费的、开放的自动化证书颁发机构,旨在通过简化安装程序,减低安装费用,快速扩大安全网络协议的应用范围。该机构为超过 2.25 亿个网站提供服务,每天平均发放证书约 150 万张。 +* 好莱坞成立的 [学院软件基金会][3]Academy Software Foundation 通过共同开发软件,推动娱乐、游戏和媒体等产业的增长,为产业发展提供开放标准,在电影行业内 [创造了巨大的价值][4]。 +* 超级账本Hyperledger 基金会管理多个企业级区块链软件项目。众所周知,这些项目 [消耗的能源远比其他解决方案要少][5]。 +* [LF 能源基金会][6]LF Energy 推动 [电网朝着更加模块化、互操作和可拓展的方向发展][7],助力提升可再生能源的利用率。 +* [无人机代码基金会][8]Dronecode 致力于无人机软件的开发,促进企业在无人机领域进一步开拓创新。 +* [开源软件软件安全基金会][9]OpenSSF 聚集了顶尖的科技企业,共同强化开源软件的安全与韧性。 +* [Kubernetes][10] 是 Google 捐赠给 Linux 基金会下属的云原生计算基金会(CNCF)的一个项目,是管理基于云计算软件的首选方案。 -好莱坞成立的 [学院软件基金会Academy Software Foundation][3] 通过共同开发软件,推动娱乐、游戏和媒体等产业的增长,为产业发展提供开放标准,在电影行业内 [创造了巨大的价值][4]。 - -超级账本Hyperledger 基金会发起了多个企业级区块链软件项目。众所周知,这些项目 [消耗的能源远比其他解决方案要少][5]。 - -[LF Energy 基金会][6] 推动 [电网朝着更加模块化、互操作和可拓展的方向发展][7],助力提升可再生能源的利用率。 - -[Dronecode 基金会][8] 致力于无人机软件的开发,促进企业在无人机领域进一步开拓创新。 - -[开源软件软件安全基金会OpenSSF][9] 聚集了顶尖的科技企业,共同强化开源软件的安全与韧性。 - -[Kubernetes][10] 是 Google 捐赠给 Linux 基金会下属的云原生计算基金会(CNCF)的一个项目,是管理基于云计算软件的首选方案。 - -上述只是企业参与的一小部分开源软件项目,点击[此处][11],在 Linux 基金会官网浏览全部项目列表。 +上述只是企业参与的一小部分开源软件项目,点击 [此处][11],可以在 Linux 基金会官网浏览全部项目列表。 ### 企业如何有效利用和参与开源软件项目? -若想要更好地利用开源项目,更有效地参与开源项目,企业可以向 Linux 基金会寻求帮助。我们最新发布的报告 [《企业开源指南》][12] 提供了企业与组织需要了解的大部分信息。这份报告凝聚了来自多家顶级企业、具有几十年丰富经验的开源领袖的知识与智慧,报告主要分为以下六个章节: +若想要更好地利用开源项目,更有效地参与开源项目,企业可以向 Linux 基金会寻求帮助。我们最新发布的报告 《[企业开源指南][12]》 提供了企业与组织需要了解的大部分信息。这份报告凝聚了来自多家顶级企业、具有几十年丰富经验的开源领袖的知识与智慧,报告主要分为以下六个章节: * 使用开源软件 * 准备参与开源 @@ -74,19 +73,16 @@ 此外,Linux 基金会还提供了许多开源 [培训课程][13]、全年 [活动][14]、[LFX 平台][15],发起开源项目,协助企业与组织利用和参与开源项目,比如: -[TODO 工作组][16] 为开源项目办公室的建立和运作提供资源,包括其自身 [丰富的指导意见][17]。 +* [TODO 工作组][16] 为开源项目办公室的建立和运作提供资源,包括其自身 [丰富的指导意见][17]。 +* [Openchain 项目][18] 旨在提供和维护国际开源许可标准,包括各种许可规定的相关信息。依赖于此,企业可以确保自身行为符合法律规定。 +* [FinOps 基金会][19] 目前正在将自身打造为“不断发展的云财务管理和文化实践平台,通过促进工程、财务、技术以及商业团队之间在数据驱动支出决策方面的合作,确保企业能够最大化实现商业价值”。 +* [软件数据包交换标准][20]Software Data Package Exchange(SPDX)是一个用于交流 软件物料清单software bill of materials(SBOM)的开放标准。在该标准下,每个用户都能清楚了解整个软件包中包括哪些软件。 -[Openchain 项目][18] 旨在提供和维护国际开源许可标准,包括各种许可规定的相关信息。依赖于此,企业可以确保自身行为符合法律规定。 - -[FinOps 基金会][19] 目前正在将自身打造为“不断发展的云财务管理和文化实践平台,通过促进工程、财务、技术以及商业团队之间在数据驱动支出决策方面的合作,确保企业能够最大化实现商业价值”。 - -[Software Data Package Exchange (SPDX)][20] 是一个用于交流 软件构成清单software bill of materials(SBOMs)的开放标准。在该标准下,每个用户都能清楚了解整个软件包中包括哪些软件。 - -重复一遍,上述这些只是 Linux 基金会所有项目中的一小部分。所有这些项目都致力于帮助企业接受和使用开源项目,引导企业为开源项目做出贡献、提供捐赠。 +同样,上述这些只是 Linux 基金会所有项目中的一小部分。所有这些项目都致力于帮助企业接受和使用开源项目,引导企业为开源项目做出贡献、提供捐赠。 总而言之,目前,企业正在迅速投向开源软件项目,借此解决共同的难题,并探索进一步的创新发展,而 Linux 基金会将为它们提供帮助。 -该文 [《企业为何使用开源软件,又为何推动开源软件的发展》][21] 首发于 [Linux 基金会][22] 官网。 +*该文 [《企业为何使用开源软件,又为何推动开源软件的发展》][21] 首发于 [Linux 基金会][22] 官网。* -------------------------------------------------------------------------------- @@ -95,7 +91,7 @@ via: https://www.linux.com/news/why-do-enterprises-use-and-contribute-to-open-so 作者:[Dan Whiting][a] 选题:[lkxed][b] 译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e2e93bdaddb40c86c1c8fca132debea7a01ed1ed Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sat, 18 Jun 2022 16:34:37 +0800 Subject: [PATCH 0016/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220609 A guide to container orchestration with Kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220609 A guide to container orchestration with Kubernetes.md b/sources/tech/20220609 A guide to container orchestration with Kubernetes.md index 6050ced755..3db1778c50 100644 --- a/sources/tech/20220609 A guide to container orchestration with Kubernetes.md +++ b/sources/tech/20220609 A guide to container orchestration with Kubernetes.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/container-orchestration-kubernetes" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b14a07ef83c01f386cc1241ec26a1981617c980a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 18 Jun 2022 17:09:33 +0800 Subject: [PATCH 0017/3123] RP @geekpi @turbokernel https://linux.cn/article-14726-1.html --- ...14 Share your Linux terminal with tmate.md | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) rename {translated/tech => published}/20220614 Share your Linux terminal with tmate.md (51%) diff --git a/translated/tech/20220614 Share your Linux terminal with tmate.md b/published/20220614 Share your Linux terminal with tmate.md similarity index 51% rename from translated/tech/20220614 Share your Linux terminal with tmate.md rename to published/20220614 Share your Linux terminal with tmate.md index b9d3ee4f5b..b296bc9a53 100644 --- a/translated/tech/20220614 Share your Linux terminal with tmate.md +++ b/published/20220614 Share your Linux terminal with tmate.md @@ -4,30 +4,29 @@ [#]: collector: "lkxed" [#]: translator: "geekpi" [#]: reviewer: "turbokernel" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14726-1.html" 用 tmate 分享你的 Linux 终端 ====== -Tmate 扩展了你与 Linux 终端共享会话的选项。 -![Terminal command prompt on orange background][1] +> tmate 扩展了你分享 Linux 终端会话的方式。 -图片提供: [iradaturrahmat][2] 通过 [Pixabay][3],CC0 +![](https://img.linux.net.cn/data/attachment/album/202206/18/170815hfrcdfd4lltd737z.jpg) -作为 Fedora Linux QA 团队的一员,我有时会发现自己执行了一堆我想广播给其他开发者的命令。如果你曾经使用过像 [tmux][5] 或 [GNU Screen][6] 这样的[终端复用器][4],你可能会认为这是一个相对容易的任务。但并不是所有我想看我的演示的人都是从笔记本电脑或台式机连接到我的终端会话的。有些人可能是随便从他们的手机浏览器中打开的,他们可以很容易地做到这一点,因为我使用了[tmate][7]。 +作为 Fedora Linux QA 团队的一员,我有时想将自己执行的一堆命令广而告之给其他开发者。如果你曾经使用过像 [tmux][5] 或 [GNU Screen][6] 这样的 [终端复用器][4],你可能会认为这是一个挺轻松的任务。不是所有看我的示范的人都是从笔记本电脑或台式机连接到我的终端会话的,有些人可能是随手在他们的手机浏览器中打开的,因为我使用了 [tmate][7],所以他们可以很容易地做到这一点。 -### 使用 tmate 共享 Linux终端 +### 使用 tmate 分享 Linux 终端 -看别人在 Linux 终端工作是非常有教育意义的。你可以学到新的命令,新的工作流程,或者新的调试和自动化的方法。但要捕捉到你所看到的东西,以便你以后可以自己尝试,这可能很困难。你可能会诉诸于截图或共享终端会话的屏幕记录,这样你就可以在以后打出每个命令。唯一的选择是由演示命令的人使用 [Asciinema][8] 或 [script 和 scriptreplay][9] 等工具来记录会话。 +观看别人在 Linux 终端的工作是非常有教育意义的。你可以学到新的命令、新的工作流程,或者新的调试和自动化的方法。但要抓住你所看到的东西,以便你以后可以自己尝试,这可能很困难。你可能会借助截图或一个共享终端会话的屏幕记录,这样你就可以在以后打出每个命令。剩下的唯一选择是由演示命令的人使用 [Asciinema][8] 或 [script 和 scriptreplay][9] 等工具来记录会话。 -但是通过 tmate,用户可以在只读模式下或通过 SSH 共享一个终端。SSH 和只读会话都可以通过终端或以 HTML 网页的形式访问。 +但是通过 `tmate`,用户可以在只读模式下或通过 SSH 分享终端。SSH 和只读会话都可以通过终端或以 HTML 网页的形式访问。 -当我为 Fedora QA 团队培训人员时,我使用只读模式,因为我需要运行命令并显示输出,但有了 tmate,人们可以通过从他们的浏览器复制和粘贴到文本编辑器来保持笔记。 +当我为 Fedora QA 团队培训人员时,我使用只读模式,因为我需要运行命令并显示输出,但有了 `tmate`,人们可以通过从他们的浏览器复制和粘贴到文本编辑器来记录笔记。 ### Linux tmate 上手 -在 Linux 上,你可以用你的包管理器安装 tmate。例如,在 Fedora 上: +在 Linux 上,你可以用你的包管理器安装 `tmate`。例如,在 Fedora 上: ``` $ sudo dnf install tmate @@ -39,43 +38,41 @@ $ sudo dnf install tmate $ sudo apt install tmate ``` -在 macOS 上,你可以用 [Homebrew][10] 或 [MacPorts][11] 安装它。如果你需要其他 Linux 发行版的说明,请参考[安装][12]指南。 +在 macOS 上,你可以用 [Homebrew][10] 或 [MacPorts][11] 安装它。如果你需要其他 Linux 发行版的说明,请参考 [安装][12] 指南。 ![Screenshot of terminal showing the options for tmate sharing: web session (regular and read-only) and ssh session (regular and read-only)][13] -安装后,启动 tmate: +安装后,启动 `tmate`: ``` $ tmate ``` -当 tmate 启动时,会产生链接,通过 HTTP 和 SSH 提供对终端会话的访问。每个协议都有一个只读选项以及一个反向的 SSH 会话。 +当 `tmate` 启动时,会生成链接,通过 HTTP 和 SSH 提供对终端会话的访问。每个协议都有一个只读方式,以及一个反向的 SSH 会话。 下面是一个网络会话的样子: ![Screenshot showing tmate terminal window and 2 versions of sharing sessions demonstrating the same code][14] -Tmate 的网络控制台是 HTML5 的,因此,用户可以复制整个屏幕并粘贴到终端来运行相同的命令。 +`tmate` 的网络控制台是 HTML5 的,因此,用户可以复制整个屏幕并粘贴到终端来运行相同的命令。 -### 保持会话活跃 +### 保持会话 -你可能想知道如果你不小心关闭了你的终端会发生什么。你也可能想知道如何与不同的控制台应用共享你的终端。毕竟,tmate 是一个多路复用器,所以它应该能够保持会话的活力,脱离并重新连接到一个会话,等等。 +你可能想知道如果你不小心关闭了你的终端会发生什么。你也可能想知道如何与不同的控制台应用共享你的终端。毕竟,`tmate` 是一个多路复用器,所以它应该能够保持会话,脱离并重新连接到一个会话,等等。 -当然,这正是 tmate 所能做到的。如果你曾经使用过 tmux,这可能是相当熟悉的。 +当然,这正是 `tmate` 所能做到的。如果你曾经使用过 `tmux`,这可能是相当熟悉的。 ``` $ tmate -F -n web new-session vi console ``` -这个命令在 Vi 中打开了 `new-session`,`-F` 选项确保会话在关闭时也能重新产生。 +这个命令在 `vi` 中打开了 `new-session`,`-F` 选项确保会话在关闭时也能重新产生。 ![A screenshot of the terminal showing the output after using the new-session and -F options: connection information for either a web session (regular or read-only) or ssh session (regular or read-only)][15] ### 社交复用 -Tmate 给你带来了 tmux 或 GNU Screen 的自由,以及与他人共享会话的能力。对于教其他用户如何使用终端,演示一个新命令的功能,或调试意外的行为,这是一个有价值的工具。它是开源的,所以请试一试! - -图片提供(Sumantro Mukherjee,CC BY-SA 4.0) +`tmate` 给你带来了 `tmux` 或 GNU Screen 的自由度,以及与他人分享会话的能力。这是一个有价值的工具,可以教其他用户如何使用终端、演示一个新命令的功能,或调试意外的行为。它是开源的,所以请试一试! -------------------------------------------------------------------------------- From 071289aa9dbf9b4c0a25e10df7113a3f9c685cc5 Mon Sep 17 00:00:00 2001 From: f Date: Sat, 18 Jun 2022 17:36:57 +0800 Subject: [PATCH 0018/3123] Create 20210207 3 ways to play video games on Linux.md --- ...207 3 ways to play video games on Linux.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 translated/tech/20210207 3 ways to play video games on Linux.md diff --git a/translated/tech/20210207 3 ways to play video games on Linux.md b/translated/tech/20210207 3 ways to play video games on Linux.md new file mode 100644 index 0000000000..5a67837ec1 --- /dev/null +++ b/translated/tech/20210207 3 ways to play video games on Linux.md @@ -0,0 +1,94 @@ +[#]: collector: (lujun9972) +[#]: translator: (godgithubf) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (3 ways to play video games on Linux) +[#]: via: (https://opensource.com/article/21/2/linux-gaming) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) + +三种在Linux系统上玩视频游戏的方式 +====== +如果你准备好下载游戏并且全方位体验游戏的话,那么在 linux 下启动游戏吧! +![Gaming with penguin pawns][1] + + 从 2021 年以后,人们有更多喜欢 Linux 的理由。在这个系列里,我将分享 21 个使用 Linux 的理由。今天,我将从游戏开始。 + +我过去认为电脑游戏者是一种特殊的人群,要被研究人员在数年的研究和测试之后严谨地认定。我从来没有把我自己归为电脑游戏者,因为我所玩过的游戏既不是桌面游戏(棋类游戏和纸笔角色扮演游戏)也不是探险游戏和俄罗斯方块。现在,这些游戏可以在移动设备、控制台、电脑和电视机等各种环境上玩。好像该是时候承认游戏者可以以形形色色的方式参与进来。如果你想自称为游戏者,你就可以,不需任何资格认定。你不必记得有科乐美等类似的游戏公司。你不必购买和玩3A级的游戏,只要你时常玩游戏你就完全可以自称为游戏者。如果你想成为一个游戏者,现在使用Linux正当其时。 + +### 欢迎到圈子里 + +剥除排行榜上闪闪发光的广告及背后的东西,你肯定会发现一个欣欣向荣的游戏世界。在任何人相信既不是电子表格也不是练习打字一类的软件能挣钱以前新兴的游戏市场已经开始发展起来了。非主流的游戏已经在流行文化上以各种方式打上了自己的烙印(信不信由你,《我的世界》尽管不是开源的,作为独立制作的游戏已经发展起来了),这也证实了,在玩家眼里,游戏先于产品价值。 + +在独立制作和开源开发者之间有很多交叉的地方。 + +有各种各样的开源游戏可玩,包括大量的第一视角射击游戏,益智游戏像Nodulus,策略经营游戏像运输大亨,竞速游戏向Jethook,减压游戏像Sauerbraten,等等还有很多未提到的(多亏了像Open Jam 这样伟大的倡议,每年都有新增的游戏) + +![Jethook game screenshot][10] + + 总的来说,探索开源游戏的世界的体验和主流游戏工作室的产品带来的即时的满足是很不同的。大的游戏工作室生产的游戏提供大量的视觉和听觉刺激,知名演员,和多达60小时的游戏。独立和开源游戏不可能和它匹敌。但是,主流游戏工作室无法达到的是当你发现一款别人未曾听说过的游戏时的产生的发现和个人连接的感受。主流工作室不希望当你认识到世界上的的每个人都非常需要知道你刚玩过的那个游戏所获取的那种感受。(这样翻译真别扭 ) + +花点时间找出你最喜欢的游戏,然后浏览下你的发行商的软件仓库,打开开源游戏仓库,看下哪个是发行商没有覆盖到的,如果你足够喜欢的游戏,帮忙推广一下吧。 + +### Proton and WINE + +Gaming on Linux doesn't stop with open source, but it is enabled by it. When Valve Software famously brought Linux back into the gaming market a few years ago by releasing their Steam client for Linux, the hope was that it would compel game studios to write code native to Linux systems. Some did, but Valve failed to push Linux as the primary platform even on their own Valve-branded gaming computers, and it seems that most studios have reverted to their old ways of Windows-only games.Linux上的游戏不止于开源,但是从开源开始的。数年前Valve软件公司通过发行Steam客户端的Linux版把Linux带入游戏市场,希望是能够强制游戏工作室能在Linux系统上写本地代码。一些工作室这样做了,但Valve公司并没有成功的把Linux推为主要的平台,即使是Valve品牌的游戏电脑。并且大多数游戏工作室又转回仅在windows平台上开发游戏的旧方式。 + +有趣的是,最终的结果是有更多的开源代码被生产出来。Valve公司为Linux兼容创建了Proton工程,一个可以转换windows系统游戏到Linux的兼容层。在Proton的内核层面,它使用了WINE(WINE不是模拟器),好的令人难以置信的是重新实现的主要windows库是开源的。 + +游戏市场的打破结果成为了开源世界的宝藏。今天,来自主流工作室的大多数游戏都可以在linux上运行就好像他们在windows上运行一样。 + +当然,如果你是必须要有最新版的游戏的这类玩家,你可定会遇到令人不愉快的惊喜。尽管那不是惊喜,很少有主流的游戏发行时毫无漏洞,那需要一周后大量的补丁。这些漏洞在Proton和WINE上更糟糕,因此linux游戏者经常从使用早期版本中获益。这种妥协可能是值得的。我玩过一些游戏,它们在proton平台运行完美,后来从愤怒的论坛邮件中发现它在最新版的windows上运行有明显的谜一般的致命错误。总之,似乎来自主流工作室的游戏并不完美,但你可能在linux上遇到相似但不同的问题正如你在windows上遇到的。 + +### Flatpak + +最近Linux历史上最令人激动的发展就是Flatpak了,跨越了本地容器和包,它和游戏无关(或者它和游戏息息相关),它使得linux应用能基本上被分发到任意的linux发行版上。这也适用游戏,因为有相当多次要的技术在游戏中使用。并且它可以很好地对给定的游戏要求发行维护者来保持和所有最新版要求一致 + +Flapak从发行中为应用库抽象出一种公共的Flatpak特定的层。flatpak的发行者知道 如果一个库不在FlatpakSDK中,那么它必须要包含在flatpak中,简单而直接。 + +多亏了Flatpak,Steam客户端可以运行在一些像Fedora, RHEL, Slackware等从传统角度看并不面向游戏市场的操作系统 + +### Lutris + +如果你s不渴望注册stream账号,那么可以用我比较偏爱的游戏客户端Lutris。表面上看,Lutris 是一个简单的游戏启动器,当你想玩游戏但还没决定玩什么的时候你可以去的地方。有了Lutris,你可以添加你系统上的所有游戏到你的游戏库,然后从Lutris界面启动并立即玩起来。更好的是,Lutris贡献者(像我一样),可以正常的发布安装脚本来使安装你拥有的游戏变得容易。这并不是必须的,但它可以是一个很好的捷径来免除乏味的配置。 +Lutris也可以支持运行者或者子系统来运行那些不能从应用菜单直接启动的游戏。比如你想玩控制台游戏像开源的魔兽争霸,你必须运行模拟器。如果你已经安装过模拟器的话,Lutris可以帮你处理。除此以外,如果你有一些老旧的游戏账号,Lutris可以访问它,并可以把游戏导入你的游戏库中。 + +没有比Lutris更容易的方式来管理你的游戏了。 + +### 玩游戏 + +Linux游戏是一个充实且给人力量的体验。我过去避免玩电脑游戏因为我没有觉得我有很多的选择。似乎有很多昂贵的游戏在发行并且不可避免的获得好或者不好的体验,然后很快有转向下一个。另一方面,开源游戏把我引入了游戏的王国。我见到过其他玩家和开发者。我见到过艺术家和音乐家,粉丝以及发起人。我玩过各种各样的游戏但我从来都没认识到他们的确存在过。他们仅仅够我玩一下午,然而其他的却让我长久的着迷于游戏,改进,关卡设计和乐趣。 + +如果你准备好来从各个角度体验下游戏的话,在linux上开始游戏吧。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/2/linux-gaming + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/godgithubf) +校对:[校对者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/gaming_grid_penguin.png?itok=7Fv83mHR (Gaming with penguin pawns) +[2]: https://opensource.com/alternatives/minecraft +[3]: https://itch.io/jam/open-jam-2020 +[4]: https://opensource.com/article/20/5/open-source-fps-games +[5]: https://hyperparticle.itch.io/nodulus +[6]: https://www.openttd.org/ +[7]: https://rcorre.itch.io/jethook +[8]: http://sauerbraten.org/ +[9]: https://opensource.com/article/18/9/open-jam-announcement +[10]: https://opensource.com/sites/default/files/game_0.png +[11]: http://flathub.org +[12]: https://github.com/ValveSoftware/Proton +[13]: http://winehq.org +[14]: https://opensource.com/business/16/8/flatpak +[15]: https://www.redhat.com/en/enterprise-linux-8 +[16]: http://lutris.net +[17]: https://opensource.com/article/18/10/lutris-open-gaming-platform +[18]: https://ndswtd.wordpress.com/download From 2a0985d2726f005b7f6aa0ac24357e246208471a Mon Sep 17 00:00:00 2001 From: f Date: Sat, 18 Jun 2022 17:38:24 +0800 Subject: [PATCH 0019/3123] Delete 20210207 3 ways to play video games on Linux.md --- ...207 3 ways to play video games on Linux.md | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 sources/tech/20210207 3 ways to play video games on Linux.md diff --git a/sources/tech/20210207 3 ways to play video games on Linux.md b/sources/tech/20210207 3 ways to play video games on Linux.md deleted file mode 100644 index e01c4b2e77..0000000000 --- a/sources/tech/20210207 3 ways to play video games on Linux.md +++ /dev/null @@ -1,98 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (godgithubf) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (3 ways to play video games on Linux) -[#]: via: (https://opensource.com/article/21/2/linux-gaming) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) - -3 ways to play video games on Linux -====== -If you're ready to put down the popcorn and experience games from all -angles, start gaming on Linux. -![Gaming with penguin pawns][1] - -In 2021, there are more reasons why people love Linux than ever before. In this series, I'll share 21 different reasons to use Linux. Today, I'll start with gaming. - -I used to think a "gamer" was a very specific kind of creature, carefully cataloged and classified by scientists after years of study and testing. I never classified myself as a gamer because most of the games I played were either on a tabletop (board games and pen-and-paper roleplaying games), NetHack, or Tetris. Now that games are available on everything from mobile devices, consoles, computers, and televisions, it feels like it's a good time to acknowledge that "gamers" come in all different shapes and sizes. If you want to call yourself a gamer, you can! There's no qualification exam. You don't have to know the Konami Code by heart (or even what that reference means); you don't have to buy and play "triple-A" games. If you enjoy a game from time to time, you can rightfully call yourself a gamer. And if you want to be a gamer, there's never been a better time to use Linux. - -### Welcome to the underground - -Peel back the glossy billboard ads, and underneath, you're sure to find a thriving gaming underground. It's a movement that began with the nascent gaming market before anyone believed money could be made off software that wasn't either a spreadsheet or typing tutor. Indie games have carved out a place in pop culture (believe it or not, [Minecraft, while not open source][2], started out as an indie game) in several ways, proving that in the eyes of players, gameplay comes before production value. - -There's a lot of cross-over in the indie and open source developer space. There's nothing quite like kicking back with your Linux laptop and browsing [itch.io][3] or your distribution's software repository for a little-known but precious gem of an open source game. - -There are all kinds of open source games available, including plenty of [first person shooters][4], puzzle games like [Nodulus][5], systems management games like [OpenTTD][6], racing games like [Jethook][7], tense escape campaigns like [Sauerbraten][8], and too many more to mention (with more arriving each year, thanks to great initiatives like [Open Jam][9]). - -![Jethook game screenshot][10] - -Jethook - -Overall, the experience of delving into the world of open source games is different than the immediate satisfaction of buying whatever a major game studio releases next. Games by the big studios provide plenty of visual and sonic stimuli, big-name actors, and upwards of 60 hours of gameplay. Independent and open source games aren't likely to match that, but then again, major studios can't match the sense of discovery and personal connection you get when you find a game that you just know nobody else _has ever heard of_. And they can't hope to match the sense of urgency you get when you realize that everybody in the world really, really needs to hear about the great game you've just played. - -Take some time to identify the kinds of games you enjoy the most, and then have a browse through your distribution's software repository, [Flathub][11], and open game jams. See what you can uncover and, if you like the game enough, help to promote it! - -### Proton and WINE - -Gaming on Linux doesn't stop with open source, but it is enabled by it. When Valve Software famously brought Linux back into the gaming market a few years ago by releasing their Steam client for Linux, the hope was that it would compel game studios to write code native to Linux systems. Some did, but Valve failed to push Linux as the primary platform even on their own Valve-branded gaming computers, and it seems that most studios have reverted to their old ways of Windows-only games. - -Interestingly, though, the end result has produced more open source code than probably intended. Valve's solution for Linux compatibility has been to create the [Proton][12] project, a compatibility layer to translate Windows games to Linux. At its core, Proton uses [WINE (Wine Is Not an Emulator)][13], the too-good-to-be-true reimplementation of major Windows libraries as open source. - -The game market's spoils have turned out to be a treasure trove for the open source world, and today, most games from major studios can be run on Linux as if they were native. - -Of course, if you're the type of gamer who has to have the latest title on the day of release, you can certainly expect unpleasant surprises. That's not surprising, though, because few major games are released without bugs requiring large patches a week later. Those bugs can be even worse when a game runs on Proton and WINE, so Linux gamers often benefit by refraining from early adoption. The trade-off may be worth it, though. I've played a few games that run perfectly on Proton, only to discover later from angry forum posts that it's apparently riddled with fatal errors when played on the latest version of Windows. In short, it seems that games from major studios aren't perfect, and so you can expect similar-but-different problems when playing them on Linux as you would on Windows. - -### Flatpak - -One of the most exciting developments of recent Linux history is [Flatpak][14], a cross between local containers and packaging. It's got nothing to do with gaming (or doesn't it?), but it enables Linux applications to essentially be distributed universally to any Linux distribution. This applies to gaming because there are often lots of fringe technologies used in games, and it can be pretty demanding on distribution maintainers to keep up with all the latest versions required by any given game. - -Flatpak abstracts that away from the distribution by establishing a common Flatpak-specific layer for application libraries. Distributors of flatpaks know that if a library isn't in a Flatpak SDK, then it must be included in the flatpak. It's simple and straightforward. - -Thanks to Flatpak, the Steam client runs on something obvious like Fedora and on distributions not traditionally geared toward the gaming market, like [RHEL][15] and Slackware! - -### Lutris - -If you're not eager to sign up on Steam, though, there's my preferred gaming client, [Lutris][16]. On the surface, Lutris is a simple game launcher for your system, a place you can go when you know you want to play a game but just can't decide what to launch yet. With Lutris, you can add [all the games you have on your system][17] to create your own gaming library, and then launch and play them right from the Lutris interface. Better still, Lutris contributors (like me!) regularly publish installer scripts to make it easy for you to install games you own. It's not always necessary, but it can be a nice shortcut to bypass some tedious configuration. - -Lutris can also enlist the help of _runners_, or subsystems that run games that wouldn't normally launch straight from your application menu. For instance, if you want to play console games like the open source [Warcraft Tower Defense][18], you must run an emulator, and Lutris can handle that for you (provided you have the emulator installed). Additionally, should you have a GOG.com (Good Old Games) account, Lutris can access it and import games from your library. - -There's no easier way to manage your games. - -### Play games - -Linux gaming is a fulfilling and empowering experience. I used to avoid computer gaming because I didn't feel I had much of a choice. It seemed that there were always expensive games being released, which inevitably got extreme reactions from happy and unhappy gamers alike, and then the focus shifted quickly to the next big thing. On the other hand, open source gaming has introduced me to the _people_ of the gaming world. I've met other players and developers, I've met artists and musicians, fans and promoters, and I've played an assortment of games that I never even realized existed. Some of them were barely long enough to distract me for just one afternoon, while others have provided me hours and hours of obsessive gameplay, modding, level design, and fun. - -If you're ready to put down the popcorn and experience games from all angles, start gaming on Linux. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/2/linux-gaming - -作者:[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/gaming_grid_penguin.png?itok=7Fv83mHR (Gaming with penguin pawns) -[2]: https://opensource.com/alternatives/minecraft -[3]: https://itch.io/jam/open-jam-2020 -[4]: https://opensource.com/article/20/5/open-source-fps-games -[5]: https://hyperparticle.itch.io/nodulus -[6]: https://www.openttd.org/ -[7]: https://rcorre.itch.io/jethook -[8]: http://sauerbraten.org/ -[9]: https://opensource.com/article/18/9/open-jam-announcement -[10]: https://opensource.com/sites/default/files/game_0.png -[11]: http://flathub.org -[12]: https://github.com/ValveSoftware/Proton -[13]: http://winehq.org -[14]: https://opensource.com/business/16/8/flatpak -[15]: https://www.redhat.com/en/enterprise-linux-8 -[16]: http://lutris.net -[17]: https://opensource.com/article/18/10/lutris-open-gaming-platform -[18]: https://ndswtd.wordpress.com/download From 9293347a555dea94a9e35778d0b39ae86428a426 Mon Sep 17 00:00:00 2001 From: f Date: Sat, 18 Jun 2022 20:45:33 +0800 Subject: [PATCH 0020/3123] Update 20210207 3 ways to play video games on Linux.md --- ...207 3 ways to play video games on Linux.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/translated/tech/20210207 3 ways to play video games on Linux.md b/translated/tech/20210207 3 ways to play video games on Linux.md index 5a67837ec1..136dac8f63 100644 --- a/translated/tech/20210207 3 ways to play video games on Linux.md +++ b/translated/tech/20210207 3 ways to play video games on Linux.md @@ -14,7 +14,7 @@ 从 2021 年以后,人们有更多喜欢 Linux 的理由。在这个系列里,我将分享 21 个使用 Linux 的理由。今天,我将从游戏开始。 -我过去认为电脑游戏者是一种特殊的人群,要被研究人员在数年的研究和测试之后严谨地认定。我从来没有把我自己归为电脑游戏者,因为我所玩过的游戏既不是桌面游戏(棋类游戏和纸笔角色扮演游戏)也不是探险游戏和俄罗斯方块。现在,这些游戏可以在移动设备、控制台、电脑和电视机等各种环境上玩。好像该是时候承认游戏者可以以形形色色的方式参与进来。如果你想自称为游戏者,你就可以,不需任何资格认定。你不必记得有科乐美等类似的游戏公司。你不必购买和玩3A级的游戏,只要你时常玩游戏你就完全可以自称为游戏者。如果你想成为一个游戏者,现在使用Linux正当其时。 +我过去认为电脑游戏者是一种特殊的人群,要被研究人员在数年的研究和测试之后严谨地认定。我从来没有把我自己归为电脑游戏者,因为我所玩过的游戏既不是桌面游戏(棋类游戏和纸笔角色扮演游戏)也不是探险游戏和俄罗斯方块。现在,这些游戏可以在移动设备、控制台、电脑和电视机等各种环境上玩。好像该是时候承认游戏者可以以形形色色的方式参与进来。如果你想自称为游戏者,你就可以,不需任何资格认定。你不必记得有科乐美等类似的游戏公司。你不必购买和玩3A级的游戏,只要你时常玩游戏你就完全可以自称为游戏者。如果你想成为一个游戏者,现在使用 Linux 正当其时。 ### 欢迎到圈子里 @@ -22,44 +22,44 @@ 在独立制作和开源开发者之间有很多交叉的地方。 -有各种各样的开源游戏可玩,包括大量的第一视角射击游戏,益智游戏像Nodulus,策略经营游戏像运输大亨,竞速游戏向Jethook,减压游戏像Sauerbraten,等等还有很多未提到的(多亏了像Open Jam 这样伟大的倡议,每年都有新增的游戏) +有各种各样的开源游戏可玩,包括大量的第一视角射击游戏,益智游戏像 Nodulus ,策略经营游戏像运输大亨,竞速游戏向 Jethook ,减压游戏像 Sauerbraten ,等等还有很多未提到的(多亏了像 Open Jam 这样伟大的倡议,每年都有新增的游戏) ![Jethook game screenshot][10] - 总的来说,探索开源游戏的世界的体验和主流游戏工作室的产品带来的即时的满足是很不同的。大的游戏工作室生产的游戏提供大量的视觉和听觉刺激,知名演员,和多达60小时的游戏。独立和开源游戏不可能和它匹敌。但是,主流游戏工作室无法达到的是当你发现一款别人未曾听说过的游戏时的产生的发现和个人连接的感受。主流工作室不希望当你认识到世界上的的每个人都非常需要知道你刚玩过的那个游戏所获取的那种感受。(这样翻译真别扭 ) +总的来说,探索开源游戏的世界的体验和主流游戏工作室的产品带来的即时的满足是很不同的。大的游戏工作室生产的游戏提供大量的视觉和听觉刺激,知名演员,和多达60小时的游戏。独立和开源游戏不可能和它匹敌。但是,主流游戏工作室无法达到的是当你发现一款别人未曾听说过的游戏时的产生的发现和个人连接的感受。主流工作室不希望当你认识到世界上的的每个人都非常需要知道你刚玩过的那个游戏所获取的那种感受。(这样翻译真别扭 ) 花点时间找出你最喜欢的游戏,然后浏览下你的发行商的软件仓库,打开开源游戏仓库,看下哪个是发行商没有覆盖到的,如果你足够喜欢的游戏,帮忙推广一下吧。 ### Proton and WINE -Gaming on Linux doesn't stop with open source, but it is enabled by it. When Valve Software famously brought Linux back into the gaming market a few years ago by releasing their Steam client for Linux, the hope was that it would compel game studios to write code native to Linux systems. Some did, but Valve failed to push Linux as the primary platform even on their own Valve-branded gaming computers, and it seems that most studios have reverted to their old ways of Windows-only games.Linux上的游戏不止于开源,但是从开源开始的。数年前Valve软件公司通过发行Steam客户端的Linux版把Linux带入游戏市场,希望是能够强制游戏工作室能在Linux系统上写本地代码。一些工作室这样做了,但Valve公司并没有成功的把Linux推为主要的平台,即使是Valve品牌的游戏电脑。并且大多数游戏工作室又转回仅在windows平台上开发游戏的旧方式。 +Linux 上的游戏不止于开源,但是从开源开始的。数年前Valve软件公司通过发行 Steam 客户端的 Linux 版把 Linux 带入游戏市场,希望是能够强制游戏工作室能在 Linux 系统上写本地代码。一些工作室这样做了,但 Valve 公司并没有成功的把 Linux 推为主要的平台,即使是 Valve 品牌的游戏电脑。并且大多数游戏工作室又转回仅在 windows 平台上开发游戏的旧方式。 -有趣的是,最终的结果是有更多的开源代码被生产出来。Valve公司为Linux兼容创建了Proton工程,一个可以转换windows系统游戏到Linux的兼容层。在Proton的内核层面,它使用了WINE(WINE不是模拟器),好的令人难以置信的是重新实现的主要windows库是开源的。 +有趣的是,最终的结果是有更多的开源代码被生产出来。 Valve 公司为 Linux 兼容创建了 Proton 工程,一个可以转换 windows 系统游戏到 Linux 的兼容层。在 Proton 的内核层面,它使用了WINE(WINE不是模拟器),好的令人难以置信的是重新实现的主要 windows 库是开源的。 -游戏市场的打破结果成为了开源世界的宝藏。今天,来自主流工作室的大多数游戏都可以在linux上运行就好像他们在windows上运行一样。 +游戏市场的打破结果成为了开源世界的宝藏。今天,来自主流工作室的大多数游戏都可以在 Linux 上运行就好像他们在 windows 上运行一样。 -当然,如果你是必须要有最新版的游戏的这类玩家,你可定会遇到令人不愉快的惊喜。尽管那不是惊喜,很少有主流的游戏发行时毫无漏洞,那需要一周后大量的补丁。这些漏洞在Proton和WINE上更糟糕,因此linux游戏者经常从使用早期版本中获益。这种妥协可能是值得的。我玩过一些游戏,它们在proton平台运行完美,后来从愤怒的论坛邮件中发现它在最新版的windows上运行有明显的谜一般的致命错误。总之,似乎来自主流工作室的游戏并不完美,但你可能在linux上遇到相似但不同的问题正如你在windows上遇到的。 +当然,如果你是必须要有最新版的游戏的这类玩家,你可定会遇到令人不愉快的惊喜。尽管那不是惊喜,很少有主流的游戏发行时毫无漏洞,那需要一周后大量的补丁。这些漏洞在Proton和WINE上更糟糕,因此 Linux 游戏者经常从使用早期版本中获益。这种妥协可能是值得的。我玩过一些游戏,它们在 Proton 平台运行完美,后来从愤怒的论坛邮件中发现它在最新版的 windows 上运行有明显的谜一般的致命错误。总之,似乎来自主流工作室的游戏并不完美,但你可能在 Linux 上遇到相似但不同的问题正如你在 windows 上遇到的。 ### Flatpak -最近Linux历史上最令人激动的发展就是Flatpak了,跨越了本地容器和包,它和游戏无关(或者它和游戏息息相关),它使得linux应用能基本上被分发到任意的linux发行版上。这也适用游戏,因为有相当多次要的技术在游戏中使用。并且它可以很好地对给定的游戏要求发行维护者来保持和所有最新版要求一致 +最近 Linux 历史上最令人激动的发展就是 Flatpak 了,跨越了本地容器和包,它和游戏无关(或者它和游戏息息相关),它使得 Linux 应用能基本上被分发到任意的 Linux 发行版上。这也适用游戏,因为有相当多次要的技术在游戏中使用。并且它可以很好地对给定的游戏要求发行维护者来保持和所有最新版要求一致 -Flapak从发行中为应用库抽象出一种公共的Flatpak特定的层。flatpak的发行者知道 如果一个库不在FlatpakSDK中,那么它必须要包含在flatpak中,简单而直接。 + Flapak 从发行中为应用库抽象出一种公共的 Flatpak 特定的层。Flatpak 的发行者知道 如果一个库不在 Flatpak SDK 中,那么它必须要包含在 Flatpak 中,简单而直接。 -多亏了Flatpak,Steam客户端可以运行在一些像Fedora, RHEL, Slackware等从传统角度看并不面向游戏市场的操作系统 +多亏了 Flatpak , Steam 客户端可以运行在一些像 Fedora, RHEL, Slackware 等从传统角度看并不面向游戏市场的操作系统 ### Lutris -如果你s不渴望注册stream账号,那么可以用我比较偏爱的游戏客户端Lutris。表面上看,Lutris 是一个简单的游戏启动器,当你想玩游戏但还没决定玩什么的时候你可以去的地方。有了Lutris,你可以添加你系统上的所有游戏到你的游戏库,然后从Lutris界面启动并立即玩起来。更好的是,Lutris贡献者(像我一样),可以正常的发布安装脚本来使安装你拥有的游戏变得容易。这并不是必须的,但它可以是一个很好的捷径来免除乏味的配置。 -Lutris也可以支持运行者或者子系统来运行那些不能从应用菜单直接启动的游戏。比如你想玩控制台游戏像开源的魔兽争霸,你必须运行模拟器。如果你已经安装过模拟器的话,Lutris可以帮你处理。除此以外,如果你有一些老旧的游戏账号,Lutris可以访问它,并可以把游戏导入你的游戏库中。 +如果你不渴望注册 steam 账号,那么可以用我比较偏爱的游戏客户端 Lutris 。表面上看,Lutris 是一个简单的游戏启动器,当你想玩游戏但还没决定玩什么的时候你可以去的地方。有了Lutris,你可以添加你系统上的所有游戏到你的游戏库,然后从 Lutris 界面启动并立即玩起来。更好的是,Lutris 贡献者(像我一样),可以正常的发布安装脚本来使安装你拥有的游戏变得容易。这并不是必须的,但它可以是一个很好的捷径来免除乏味的配置。 + Lutris 也可以支持运行者或者子系统来运行那些不能从应用菜单直接启动的游戏。比如你想玩控制台游戏像开源的魔兽争霸,你必须运行模拟器。如果你已经安装过模拟器的话, Lutris 可以帮你处理。除此以外,如果你有一些老旧的游戏账号, Lutris 可以访问它,并可以把游戏导入你的游戏库中。 -没有比Lutris更容易的方式来管理你的游戏了。 +没有比 Lutris 更容易的方式来管理你的游戏了。 ### 玩游戏 -Linux游戏是一个充实且给人力量的体验。我过去避免玩电脑游戏因为我没有觉得我有很多的选择。似乎有很多昂贵的游戏在发行并且不可避免的获得好或者不好的体验,然后很快有转向下一个。另一方面,开源游戏把我引入了游戏的王国。我见到过其他玩家和开发者。我见到过艺术家和音乐家,粉丝以及发起人。我玩过各种各样的游戏但我从来都没认识到他们的确存在过。他们仅仅够我玩一下午,然而其他的却让我长久的着迷于游戏,改进,关卡设计和乐趣。 + Linux 游戏是一个充实且给人力量的体验。我过去避免玩电脑游戏因为我没有觉得我有很多的选择。似乎有很多昂贵的游戏在发行并且不可避免的获得好或者不好的体验,然后很快有转向下一个。另一方面,开源游戏把我引入了游戏的王国。我见到过其他玩家和开发者。我见到过艺术家和音乐家,粉丝以及发起人。我玩过各种各样的游戏但我从来都没认识到他们的确存在过。他们仅仅够我玩一下午,然而其他的却让我长久的着迷于游戏,改进,关卡设计和乐趣。 -如果你准备好来从各个角度体验下游戏的话,在linux上开始游戏吧。 +如果你准备好来从各个角度体验下游戏的话,在 Linux 上开始游戏吧。 -------------------------------------------------------------------------------- From a2353191f0bfd75b283780b2d44646d6986b6ab7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 18 Jun 2022 21:03:04 +0800 Subject: [PATCH 0021/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]:=2020210104=20Docker=20Compose-=20a=20nice=20way=20to?= =?UTF-8?q?=20set=20up=20a=20dev=20environment.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... a nice way to set up a dev environment.md | 249 ------------------ ... a nice way to set up a dev environment.md | 243 +++++++++++++++++ 2 files changed, 243 insertions(+), 249 deletions(-) delete mode 100644 sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md create mode 100644 translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md diff --git a/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md deleted file mode 100644 index 58277b591a..0000000000 --- a/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md +++ /dev/null @@ -1,249 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (lkxed) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Docker Compose: a nice way to set up a dev environment) -[#]: via: (https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/) -[#]: author: (Julia Evans https://jvns.ca/) - -Docker Compose: a nice way to set up a dev environment -====== - -Hello! Here is another post about [computer tools that I’ve appreciated][1]. This one is about Docker Compose! - -This post is mostly just about how delighted I was that it does what it’s supposed to do and it seems to work and to be pretty straightforward to use. I’m also only talking about using Docker Compose for a dev environment here, not using it in production. - -I’ve been thinking about this kind of personal dev environment setup more recently because I now do all my computing with a personal cloud budget of like $20/month instead of spending my time at work thinking about how to manage thousands of AWS servers. - -I’m very happy about this because previous to trying Docker Compose I spent two days getting frustrated with trying to set up a dev environment with other tools and Docker Compose was a lot easier and simpler. And then I told my sister about my docker-compose experiences and she was like “I KNOW, DOCKER COMPOSE IS GREAT RIGHT?!?!” So I thought I’d write a blog post about it, and here we are. - -### the problem: setting up a dev environment - -Right now I’m working on a Ruby on Rails service (the backend for a sort of computer debugging game). On my production server, I have: - - * a nginx proxy - * a Rails server - * a Go server (which proxies some SSH connections with [gotty][2]) - * a Postgres database - - - -Setting up the Rails server locally was pretty straightforward without resorting to containers (I just had to install Postgres and Ruby, fine, no big deal), but then I wanted send `/proxy/*` to the Go server and everything else to the Rails server, so I needed nginx too. And installing nginx on my laptop felt too messy to me. - -So enter `docker-compose`! - -### docker-compose lets you run a bunch of Docker containers - -Docker Compose basically lets you run a bunch of Docker containers that can communicate with each other. - -You configure all your containers in one file called `docker-compose.yml`. I’ve pasted my entire `docker-compose.yml` file here for my server because I found it to be really short and straightforward. - -``` -version: "3.3" -services: - db: - image: postgres - volumes: - - ./tmp/db:/var/lib/postgresql/data - environment: - POSTGRES_PASSWORD: password # yes I set the password to 'password' - go_server: - # todo: use a smaller image at some point, we don't need all of ubuntu to run a static go binary - image: ubuntu - command: /app/go_proxy/server - volumes: - - .:/app - rails_server: - build: docker/rails - command: bash -c "rm -f tmp/pids/server.pid && source secrets.sh && bundle exec rails s -p 3000 -b '0.0.0.0'" - volumes: - - .:/app - web: - build: docker/nginx - ports: - - "8777:80" # this exposes port 8777 on my laptop -``` - -There are two kinds of containers here: for some of them I’m just using an existing image (`image: postgres` and `image: ubuntu`) without modifying it at all. And for some I needed to build a custom container image – `build: docker/rails` says to use `docker/rails/Dockerfile` to build a custom container. - -I needed to give my Rails server access to some API keys and things, so `source secrets.sh` puts a bunch of secrets in environment variables. Maybe there’s a better way to manage secrets but it’s just me so this seemed fine. - -### how to start everything: `docker-compose build` then `docker-compose up` - -I’ve been starting my containers just by running `docker-compose build` to build the containers, then `docker-compose up` to run everything. - -You can set `depends_on` in the yaml file to get a little more control over when things start in, but for my set of services the start order doesn’t matter, so I haven’t. - -### the networking is easy to use - -It’s important here that the containers be able to connect to each other. Docker Compose makes that super simple! If I have a Rails server running in my `rails_server` container on port 3000, then I can access that with `http://rails_server:3000`. So simple! - -Here’s a snippet from my nginx configuration file with how I’m using that in practice (I removed a bunch of `proxy_set_header` lines to make it more clear) - -``` -location ~ /proxy.* { - proxy_pass http://go_server:8080; -} -location @app { - proxy_pass http://rails_server:3000; -} -``` - -Or here’s a snippet from my Rails project’s database configuration, where I use the name of the database container (`db`): - -``` -development: - <<: *default - database: myproject_development - host: db # <-------- this "magically" resolves to the database container's IP address - username: postgres - password: password -``` - -I got a bit curious about how `rails_server` was actually getting resolved to an IP address. It seems like Docker is running a DNS server somewhere on my computer to resolve these names. Here are some DNS queries where we can see that each container has its own IP address: - -``` -$ dig +short @127.0.0.11 rails_server -172.18.0.2 -$ dig +short @127.0.0.11 db -172.18.0.3 -$ dig +short @127.0.0.11 web -172.18.0.4 -$ dig +short @127.0.0.11 go_server -172.18.0.5 -``` - -### who’s running this DNS server? - -I dug into how this DNS server is set up a very tiny bit. - -I ran all these commands outside the container, because I didn’t have a lot of networking tools installed in the container. - -**step 1**: find the PID of my Rails server with `ps aux | grep puma` - -It’s 1837916. Cool. - -**step 2**: find a UDP server running in the same network namespace as PID `1837916` - -I did this by using `nsenter` to run `netstat` in the same network namespace as the `puma` process. (technically I guess you could run `netstat -tupn` to just show UDP servers, but my fingers only know how to type `netstat -tulpn` at this point) - -``` -$ sudo nsenter -n -t 1837916 netstat -tulpn -Active Internet connections (only servers) -Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name -tcp 0 0 127.0.0.11:32847 0.0.0.0:* LISTEN 1333/dockerd -tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 1837916/puma 4.3.7 -udp 0 0 127.0.0.11:59426 0.0.0.0:* 1333/dockerd -``` - -So there’s a UDP server running on port `59426`, run by `dockerd`! Maybe that’s the DNS server? - -**step 3**: check that it’s a DNS server - -We can use `dig` to make a DNS query to it: - -``` -$ sudo nsenter -n -t 1837916 dig +short @127.0.0.11 59426 rails_server -172.18.0.2 -``` - -But – when we ran `dig` earlier, we weren’t making a DNS query to port 59426, we were querying port 53! What’s going on? - -**step 4**: iptables - -My first guess for “this server seems to be running on port X but I’m accessing it on port Y, what’s going on?” was “iptables”. - -So I ran iptables-save in the container’s network namespace, and there we go: - -``` -$ sudo nsenter -n -t 1837916 iptables-save -.... redacted a bunch of output .... --A DOCKER_POSTROUTING -s 127.0.0.11/32 -p udp -m udp --sport 59426 -j SNAT --to-source :53 -COMMIT -``` - -There’s an iptables rule that sends traffic on port 53 to 59426. Fun! - -### it stores the database files in a temp directory - -One nice thing about this is: instead of managing a Postgres installation on my laptop, I can just mount the Postgres container’s data directory at `./tmp/db`. - -I like this because I really do not want to administer a Postgres installation on my laptop (I don’t really know how to configure Postgres), and conceptually I like having my dev database literally be in the same directory as the rest of my code. - -### I can access the Rails console with `docker-compose exec rails_server rails console` - -Managing Ruby versions is always a little tricky and even when I have it working, I always kind of worry I’m going to screw up my Ruby installation and have to spend like ten years fixing it. - -With this setup, if I need access to the Rails console (a REPL with all my Rails code loaded), I can just run: - -``` -$ docker-compose exec rails_server rails console -Running via Spring preloader in process 597 -Loading development environment (Rails 6.0.3.4) -irb(main):001:0> -``` - -Nice! - -### small problem: no history in my Rails console - -I ran into a problem though: I didn’t have any history in my Rails console anymore, because I was restarting the container all the time. - -I figured out a pretty simple solution to this though: I added a `/root/.irbrc` to my container that changed the IRB history file’s location to be something that would persist between container restarts. It’s just one line: - -``` -IRB.conf[:HISTORY_FILE] = "/app/tmp/irb_history" -``` - -### I still don’t know how well it works in production - -Right now my production setup for this project is still “I made a digitalocean droplet and edited a lot of files by hand”. - -I think I’ll try to use docker-compose to run this thing in production. My guess is that it should work fine because this service is probably going to have at most like 2 users at a time and I can easily afford to have 60 seconds of downtime during a deploy if I want, but usually something goes wrong that I haven’t thought of. - -A few notes from folks on Twitter about docker-compose in production: - - * `docker-compose up` will only restart the containers that need restarting, which makes restarts faster - * there’s a small bash script [wait-for-it][3] that you can use to make a container wait for another service to be available - * You can have 2 docker-compose.yaml files: `docker-compose.yaml` for DEV, and `docker-compose-prod.yaml` for prod. I think I’ll use this to expose different nginx ports: 8999 in dev and 80 in prod. - * folks seemed to agree that docker-compose is fine in production if you have a small website running on 1 computer - * one person suggested that Docker Swarm might be better for a slightly more complicated production setup, but I haven’t tried that (or of course Kubernetes, but the whole point of Docker Compose is that it’s super simple and Kubernetes is certainly not simple :) ) - - - -Docker also seems to have a feature to [automatically deploy your docker-compose setup to ECS][4], which sounds cool in theory but I haven’t tried it. - -### when doesn’t docker-compose work well? - -I’ve heard that docker-compose doesn’t work well: - - * when you have a very large number of microservices (a simple setup is best) - * when you’re trying to include data from a very large database (like putting hundreds of gigabytes of data on everyone’s laptop) - * on Mac computers, I’ve heard that Docker can be a lot slower than on Linux (presumably because of the extra VM). I don’t have a Mac so I haven’t run into this. - - - -### that’s all! - -I spent an entire day before this trying to configure a dev environment by using Puppet to provision a Vagrant virtual machine only to realize that VMs are kind of slow to start and that I don’t really like writing Puppet configuration (I know, huge surprise :)). - -So it was nice to try Docker Compose and find that it was straightforward to get to work! - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/ - -作者:[Julia Evans][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://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://jvns.ca/#cool-computer-tools---features---ideas -[2]: https://github.com/yudai/gotty/ -[3]: https://github.com/vishnubob/wait-for-it -[4]: https://docs.docker.com/cloud/ecs-integration/ diff --git a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md new file mode 100644 index 0000000000..24b500cf23 --- /dev/null +++ b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md @@ -0,0 +1,243 @@ +[#]: collector: (lujun9972) +[#]: translator: (lkxed) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Docker Compose: a nice way to set up a dev environment) +[#]: via: (https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/) +[#]: author: (Julia Evans https://jvns.ca/) + +Docker Compose:搭建开发环境的好办法 +====== + +大家好!我又写了一篇关于 [我最喜欢的电脑工具][1] 的文章。这一篇讲的是 Docker Compose! + +这篇文章主要就是讲一讲我对 Docker Compose 有多么满意啦(不讨论它的缺点)!咳咳,因为它总能够完成它该做的,并且似乎总能奏效,更棒的是,它使用起来还非常简单。另外,在本文中,我只讨论我是怎么用 Docker Compose 来搭建开发环境的,而不涉及它在生产中的使用。 + +最近,我考虑了很多关于这种搭建个人开发环境的方式,原因是,我现在把所有的计算工作都搬到了一个私有云上,大概 20 美元/月的样子。这样一来,我就不用在工作的时候花时间去思考应该如何管理几千台 AWS 服务器了。 + +在此之前,我曾花了两天的时间,尝试使用其他的工具来尝试搭建一个开发环境,搭到后面,我实在是心累了。相比起来,Docker Compose 就简单易用多了,我非常满意。于是,我和妹妹分享了我的 `docker-compose` 使用经历,她略显惊讶:“是吧!你也觉得 Docker Compose 真棒对吧!” 嗯,我觉得我应该写一篇博文把过程记录下来,于是就有了你们看到的这篇文章。 + +### 我们的目标是:搭建一个开发环境 + +目前,我正在编写一个 Ruby on Rails 服务(它是一个计算机“调试”游戏的后端)。在我的生产服务器上,我安装了: + + * 一个 Nginx 服务器 + * 一个 Rails 服务 + * 一个 Go 服务 (使用了 [gotty][2] 来代理一些 SSH 连接) + * 一个 Postgres 数据库 + +在本地搭建 Rails 服务非常简单,用不着容器(我只需要安装 Postgres 和 Ruby 就行了,小菜一碟)。但是,我还想要把匹配 `/proxy/*` 的请求的发送到 Go 服务,其他所有请求都发送到 Rails 服务,所以我还要用到 Nginx。问题来了,在笔记本电脑上安装 Nginx 对我来说太麻烦了。 + +是时候使用 `docker-compose` 了! + +### docker-compose 允许你运行一组 Docker 容器 + +基本上,Docker Compose 的作用就是允许你运行一组可以互相通信 Docker 容器。 + +你可以在一个叫做 `docker-compose.yml` 的文件中,配置你所有的容器。下面,我将贴上我为这个服务编写的 `docker-compose.yml` 文件(的全部内容),因为我觉得它真的很简洁、直接! + +``` +version: "3.3" +services: + db: + image: postgres + volumes: + - ./tmp/db:/var/lib/postgresql/data + environment: + POSTGRES_PASSWORD: password # yes I set the password to 'password' + go_server: + # todo: use a smaller image at some point, we don't need all of ubuntu to run a static go binary + image: ubuntu + command: /app/go_proxy/server + volumes: + - .:/app + rails_server: + build: docker/rails + command: bash -c "rm -f tmp/pids/server.pid && source secrets.sh && bundle exec rails s -p 3000 -b '0.0.0.0'" + volumes: + - .:/app + web: + build: docker/nginx + ports: + - "8777:80" # this exposes port 8777 on my laptop +``` + +这个配置包含了两种容器。对于前面两个容器,我不加修改地使用了既有的镜像(`image: postgres` 和 `image: ubuntu`)。对于后面两个,我不得不构建一个自定义容器镜像,其中, `build: docker/rails` 的作用就是告诉 Docker Compose,它应该使用 `docker/rails/Dockerfile` 来构建一个自定义容器。 + +我需要允许我的 Rails 服务访问一些 API 密钥和其他东西,因此,我使用了 `source secrets.sh`,它的作用就是在环境变量中预设一组密钥。 + +### 如何启动所有服务:先 “build” 后 “up” + +我一直都是先运行 `docker-compose build` 来构建容器,然后再运行 `docker-compose up` 把所有服务启动起来。 + +你可以在 yaml 文件中设置 `depends_on`,这样你可以获得更多容器启动时的控制。不过,对于我的这些服务而言,启动顺序并不重要,所以我没有设置它。 + +### 使用网络通信也非常简单 + +有件很重要的事:容器之间得能够互相连接才行。Docker Compose 让这件事变得超级简单!假设我有一个 Rails 服务正在名为 `rails_server` 的容器中运行,端口是 3000,那么我就可以通过 `http://rails_server:3000` 来访问该服务。就是这么简单! + +以下代码片段截取自我的 Nginx 配置文件,它是根据我的使用需求配置的(我删除了许多 `proxy_set_headers` 行,让它看起来更清楚): + +``` +location ~ /proxy.* { + proxy_pass http://go_server:8080; +} +location @app { + proxy_pass http://rails_server:3000; +} +``` + +或者,你也看下面这个代码片段,它截取自我的 Rails 项目的数据库配置,我在其中使用了数据库容器的名称(`db`): + +``` +development: + <<: *default + database: myproject_development + host: db # <-------- 它会被“神奇地”解析为数据库容器的 IP 地址 + username: postgres + password: password +``` + +至于 `rails_server` 究竟是如何被解析成一个 IP 地址的,我还真有点儿好奇。貌似是 Docker 在我的计算机上运行了一个 DNS 服务来解析这些名字。下面是一些 DNS 查询记录,我们可以看到,每个容器都有它自己的 IP 地址: + +``` +$ dig +short @127.0.0.11 rails_server +172.18.0.2 +$ dig +short @127.0.0.11 db +172.18.0.3 +$ dig +short @127.0.0.11 web +172.18.0.4 +$ dig +short @127.0.0.11 go_server +172.18.0.5 +``` + +### 是谁在运行这个 DNS 服务? + +我(稍微)研究了一下这个 DNS 服务是怎么搭建起来的。 + +以下所有命令都是在容器外执行的,因为我没有在容器里安装很多网络工具。 + +**第一步:**:使用 `ps aux | grep puma`,找到我的 Rails 服务的进程 ID。 + +找到了,它是 `1837916`!感觉不错哦~ + +**第二步:**:找到和 `1837916` 运行在同一个网络命名空间的 UDP 服务。 + +我使用了 `nsenter` 来在 `puma` 进程的网络命令空间内运行 `netstat`(理论上,我猜想你也可以使用 `netstat -tupn` 来只显示 UDP 服务,但此时,我的手指头只会打出 `netstat -tulpn`)。 + +``` +$ sudo nsenter -n -t 1837916 netstat -tulpn +Active Internet connections (only servers) +Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name +tcp 0 0 127.0.0.11:32847 0.0.0.0:* LISTEN 1333/dockerd +tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 1837916/puma 4.3.7 +udp 0 0 127.0.0.11:59426 0.0.0.0:* 1333/dockerd +``` + +我们可以看到,此时有一个运行在 `59426` 端口的 UDP 服务,它是由 `dockerd` 运行的!或许它就是我们要找的 DNS 服务? + +**第三步**:确定它是不是我们要找的 DNS 服务 + +我们可以使用 `dig` 工具来向它发送一个 DNS 查询: + +``` +$ sudo nsenter -n -t 1837916 dig +short @127.0.0.11 59426 rails_server +172.18.0.2 +``` + +奇怪,我们之前运行 `dig` 的时候,DNS 查询怎么没有发送到 `59426` 端口,而是发送到了 `53` 端口呢?这到底是怎么回事呀? + +**第四步**:iptables + +对于类似“这个服务似乎正运行在 X 端口上,但我却在 Y 端口上访问到了它,这是什么回事呢?”的问题,我的第一念头都是“一定是 iptables 在作怪”。 + +于是,我运行了容器的网络命令空间内运行了 `iptables-save`,果不其然,真相大白: + +``` +$ sudo nsenter -n -t 1837916 iptables-save +.... redacted a bunch of output .... +-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p udp -m udp --sport 59426 -j SNAT --to-source :53 +COMMIT +``` + +在输出中有一条 iptables 规则,它将 `53` 端口的流量发送到了 `59426` 上。哈哈,真有意思! + +### 数据库文件储存在一个临时目录中 + +这样做有一个好处:我可以直接挂载 Postgres 容器的数据目录 `./tmp/db`,而不需要在我的笔记本电脑上管理 Postgres 环境。 + +我很喜欢这种方式,因为我真的不想在笔记本电脑上,亲自管理一个 Postgres 环境(我也真的不知道该如何配置 Postgres)。还有就是,出于习惯,我更喜欢让开发环境的数据库和代码放在同一个目录下。 + +### 仅需一行命令,我就可以访问 Rails 控制台 + +管理 Ruby 的版本总是有点棘手,并且,即使我暂时搞定了它,我也总是有点担心自己会把 Ruby 环境搞坏,然后就要修它修个十年(夸张)。 + +(使用 Docker Compose)搭建好这个开发环境后,如果我需要访问 Rails 控制台console(一个交互式环境,加载了所有我的 Rails 代码),我只需要运行一行代码即可: + +``` +$ docker-compose exec rails_server rails console +Running via Spring preloader in process 597 +Loading development environment (Rails 6.0.3.4) +irb(main):001:0> +``` + +好耶! + +### 小问题:Rails 控制台的历史记录丢失了 + +我碰到了一个问题:Rails 控制台的历史记录丢失了,因为我一直在不断地重启它。 + +不过,我也找到了一个相当简单的解决方案(嘿嘿):我往容器中添加了一个 `/root/.irbrc` 文件,它能够把 IRB 历史记录文件的保存位置,修改到一个不受容器重启影响的地方。只需要一行代码就够啦: + +``` +IRB.conf[:HISTORY_FILE] = "/app/tmp/irb_history" +``` + +### 我还是不知道它在生产环境的表现会怎么样 + +到目前为止,这个项目的生产环境搭建进度,还停留在“我制作了一个 digitalocean droplet(LCCT 译注:一种 Linux 虚拟机服务),并手工编辑了很多文件”的阶段。 + +嗯……我相信我以后会在生产环境中使用 docker-compose 来运行一下它的。我猜它能够会正常工作,因为这个服务很可能最多只有两个用户在使用,并且,如果我愿意,我可以容忍它在部署过程中有 60 秒的不可用时间。不过话又说回来,出错的往往是我想不到的地方。 + +推特网友提供了一些在生产中使用 docker-compose 的注意事项: + + * `docker-compose up` 只会重启那些需要重启的容器,这会让重启速度更快。 + * 有一个 Bash 小脚本 [wait-for-it][3],你可以用它来让一个容器保持等待,直到另一个容器的服务可用。 + * 你可以准备两份 `docker-compose.yaml` 文件:用于开发环境的 `docker-compose.yaml` 和 用于生产环境的 `docker-compose-prod.yaml`。我想我会在分别为 Nginx 指定不同的端口:开发时使用 `8999`,生产中使用 `80`。 + * 人们似乎一致认为,如果你的项目是一台计算机上运行的小网站,那么 docker-compose 在生产中不会有问题。 + * 有个人建议说,如果愿意在生产环境搭建复杂那么一丢丢,Docker Swarm 就或许会是更好的选择,不过我还没试过(当然,如果要这么说的话,干嘛不用 Kubernetes 呢?Docker Compose 的意义就是它超级简单,而 Kubernetes 肯定不简单 :))。 + +Docker 似乎还有一个特性,它能够 [把你用 docker-compose 搭建的环境,自动推送到弹性容器服务(ESC)上][4],听上去好酷的样子,但是我还没有试过。 + +### docker-compose 会有不适用的场景吗 + +我听说 docker-compose 在以下场景的表现差强人意: + + * 当你有很多微服务的时候(还是自己搭建比较好) + * 当你尝试从一个很大的数据库中导入数据时(就像把几百 G 的数据存到每个人的笔记本电脑里一样) + * 当你在 Mac 电脑上运行 Docker 时。我听说 Docker 在 macOS 上比在 Linux 上要慢很多(我猜想是因为它需要做额外的虚拟化)。我没有 Mac 电脑,所以我还没有碰到这个问题。 + +### 以上就是全部内容啦! + +在此之前,我曾花了一整天时间,尝试使用 Puppet 来配置 Vagrant 虚拟机,然后在这个虚拟机里配置开发环境。结果,我发现虚拟机启动起来实在是有点慢啊,还有就是,我也不喜欢编写 Puppet 配置(哈哈,没想到吧)。 + +幸好,我尝试了 Docker Compose,它真好简单,马上就可以开始工作啦! + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://jvns.ca/#cool-computer-tools---features---ideas +[2]: https://github.com/yudai/gotty/ +[3]: https://github.com/vishnubob/wait-for-it +[4]: https://docs.docker.com/cloud/ecs-integration/ From 603f5449c6e3315e434d4627e2e24e71312d837a Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 19 Jun 2022 03:50:27 +0800 Subject: [PATCH 0022/3123] =?UTF-8?q?Revert=20"[=E7=94=B3=E9=A2=86?= =?UTF-8?q?=E5=8E=9F=E6=96=87][tech]:A=20hands-on=20tutorial=20for=20using?= =?UTF-8?q?=20the=20GNU=20Project=20Debugger.md"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 43a9bd7d475e2579befc9d4f1d1cf5e7ad75a707. --- ...07 A hands-on tutorial for using the GNU Project Debugger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md index 422cb3821d..ac878e098c 100644 --- a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md +++ b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: (Starryi) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 96e119df162e6e75a7e700d05955132dc08c1ae7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 19 Jun 2022 10:59:22 +0800 Subject: [PATCH 0023/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220618=20How=20Wordle=20inspired=20me=20to=20creat?= =?UTF-8?q?e=20a=203D=20printing=20wiki=20the=20open=20source=20way.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... a 3D printing wiki the open source way.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/tech/20220618 How Wordle inspired me to create a 3D printing wiki the open source way.md diff --git a/sources/tech/20220618 How Wordle inspired me to create a 3D printing wiki the open source way.md b/sources/tech/20220618 How Wordle inspired me to create a 3D printing wiki the open source way.md new file mode 100644 index 0000000000..9a3554c77e --- /dev/null +++ b/sources/tech/20220618 How Wordle inspired me to create a 3D printing wiki the open source way.md @@ -0,0 +1,85 @@ +[#]: subject: "How Wordle inspired me to create a 3D printing wiki the open source way" +[#]: via: "https://opensource.com/article/22/6/3d-printing-wordle-crowdsourcing" +[#]: author: "Adam Bute https://opensource.com/users/buteadam" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How Wordle inspired me to create a 3D printing wiki the open source way +====== +3D printing is a lot like a game of Wordle. I aim to solve the puzzle by creating crowdsourced documentation and databases. + +![Lots of people in a crowd.][1] + +Image by: Opensource.com + +You decide to buy a 3D printer. You do your research, and you settle on an open system that uses resin as its material. You spend a nice chunk of money, and after a few weeks of waiting, it finally arrives. + +You unbox it. It's gorgeous. You do some small assembly, pour in the liquid resin, and you're ready to go. You fire up the software. It asks you to type in the correct parameters for the material. You check the bottle but you can't see any parameters. You check online, but still can't find anything. + +A bit confused, you write an email to the manufacturer, asking if they could point you in the right direction. The manufacturer tells you they also don't know the parameters, but they are pretty sure they exist, and you should try to guess them yourself. Baffled, you start wondering whether this is really what resin printing is like, or if you've been duped by this company. + +### A bad game of Wordle + +Unfortunately, this is really what resin printing is like. When you buy a new material, you have to do what's called resin validation. It's essentially making a guess for the parameters and adjusting the numbers based on your results. That's if your guess was decent and anything even comes out of the printer. + +It's a lot like playing a game of Wordle, except none of the blocks ever turn green. All you can do is eyeball whether the print looks slightly better or worse with each iteration, and then try again. Finally, at one point you say “looks good to me,” and that's that. + +![An image of Wordle][2] + +If that sounds like a deeply unsatisfying game to you, you'd be correct. It's also way too long, often taking days, and wasting a good amount of resin in the process. Resin is expensive. At least Wordle is free. + +### A little help from above? + +So why don't these manufacturers, who know their material best, share the print parameters? Well, their arguments are somewhat reasonable. There are millions of possible combinations of printers and resins, and they can't possibly cover all of them. And even between two printers which are the same model, there can be tiny variations, which affect the numbers slightly. + +But ‘slightly' is an important word. If users got a good baseline, they could easily adjust the settings if they needed to. At least it would be much quicker than starting from scratch. To be fair, some companies do give recommended settings, but it's hard to trust even these numbers. There are many crafty manufacturers who publish fake, untested settings, just to lure customers in. + +The truth is that resin validation is expensive. Resin companies are almost invariably small businesses, strapped for cash, who just can't afford to spend on resin validation. So, they outsource this work to the end user. But this creates a kind of absurd situation in the resin printing world. Instead of one man at one company doing the validation work once, hundreds of people do the same work over and over again just to come to the same conclusion. + +### Makers to the rescue + +So what does the maker community do? They try to fix the problem themselves. Reddit and Facebook groups are full of people happily sharing screenshots of a new setting they figured out. Nice gesture, but not very useful. Some ingenious community members created live resin setting spreadsheets that are updated based on user submissions. These are fantastic resources, and universally loved, but they too have their limitations. + +They are messy, rarely updated, and there's no way to tell whether the settings actually work. And because anonymous users host them, they are sometimes turned into spam, or randomly deleted. Most recently the biggest community spreadsheet was unexpectedly deleted, erasing years' worth of crowdsourced data with it. + +![Image of a community spreadsheet][3] + +### Making a resin setting database + +I'm a bit of an egghead myself and I really enjoy organizing things. I had the idea to collect all these settings from manufacturers and communities, and put it on a nice website. I registered the domain [makertrainer.com][4] and used two awesome open source tools to build the site: [MediaWiki][5] and [DataTables][6]. + +![Image of Maker Trainer][7] + +I made it a wiki so that anyone could contribute, but made certain spam or vandalism could be easily undone. I also added some buttons to allow users to vote on whether a setting worked or not. I posted it in some communities to see if people would find it useful, and the response has been overwhelming. I didn't realize this at the time, but I accidentally created the [biggest resin setting database on the internet][8]. Users kept spreading it on social media, blog posts, YouTube and so on. With so many people submitting new settings, the database grows larger daily. + +![Image of resin settings][9] + +The fact that people are so enthusiastic shows just how much of a void there is for documentation in 3D printing. There's a lot of practical experience scattered amongst makers, most of which is never written down or shared publicly. Everyone needs to do a better job recording practical knowledge in addition to theory. Otherwise, the next generation of makers will commit the same mistakes again. The database is a small contribution in this regard, but I hope it can continue to grow, and make 3D printing just a little easier for everyone. + +Image by: (Adam Bute, CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/3d-printing-wordle-crowdsourcing + +作者:[Adam Bute][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/buteadam +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/BUSINESS_community_1.png +[2]: https://opensource.com/sites/default/files/2022-06/bad_wordle.png +[3]: https://opensource.com/sites/default/files/2022-06/community_spreadsheet.png +[4]: http://makertrainer.com/ +[5]: https://www.mediawiki.org/wiki/MediaWiki +[6]: https://datatables.net/ +[7]: https://opensource.com/sites/default/files/2022-06/Maker_Trainer.png +[8]: https://hackaday.com/2022/05/13/open-database-shares-resin-3d-printing-settings/ +[9]: https://opensource.com/sites/default/files/2022-06/resin_settings_table.png From 56a990eecdc68517f3c34b5d85414a2c2692fccd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 19 Jun 2022 11:00:19 +0800 Subject: [PATCH 0024/3123] RP @lkxed https://linux.cn/article-14729-1.html --- ...oolkit To Contain Visual Misinformation.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) rename {translated/news => published}/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md (68%) diff --git a/translated/news/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md b/published/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md similarity index 68% rename from translated/news/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md rename to published/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md index e77c430d73..b5142c3643 100644 --- a/translated/news/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md +++ b/published/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md @@ -3,19 +3,20 @@ [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14729-1.html" -Adobe 推出了开源工具包以减少视觉错误信息 +为减少视觉错误信息,Adobe 推出了开源工具包 ====== -![Adobe][1] -Adobe 设想了一个充满照片和视频的网络,照片和视频上标注关于它们来自哪里的信息。该公司的主要目标是减少视觉错误信息的传播,不过,该系统也可以使那些“希望将自己的名字与工作关联起来”的内容创作者受益。 +![](https://img.linux.net.cn/data/attachment/album/202206/19/105844yauuhdz1u1189ffr.jpg) -Adobe 的 内容真实性计划Content Authenticity Initiative (CAI) 项目于 2019 年首次宣布,此后,它发布了一份关于实现该目标的技术白皮书,将该系统集成了到自己的软件中,并与新闻编辑室和硬件制造商展开了合作,以帮助普及其愿景。 +Adobe 设想的是为网络上充斥的照片和视频标注关于它们的来源。该公司的主要目标是减少视觉错误信息的传播,不过,该系统也可以使那些“希望将自己的名字与工作关联起来”的内容创作者受益。 -现在,该公司发布了一个由三部分组成的开源工具包,从而把该技术交到开发人员手中并投入使用。Adobe 的新开源工具包括用于开发“在浏览器中显示内容凭据”的 JavaScript SDK、命令行实用程序和用于开发桌面应用程序、移动应用程序和其他用于创建、查看和验证嵌入式内容凭据的 Rust SDK。 +Adobe 在 2019 年首次宣布了其 内容真实性计划Content Authenticity Initiative(CAI)项目,此后,它发布了一份关于实现该目标的技术白皮书,将该系统集成了到自己的软件中,并与新闻编辑室和硬件制造商展开了合作,以帮助普及其愿景。 + +现在,该公司发布了一个由三部分组成的开源工具包,从而把该技术交到开发人员手中,并投入使用。Adobe 的新开源工具包括一个用于开发“在浏览器中显示内容凭据”的 JavaScript SDK、一个命令行实用程序,和一个用于开发桌面应用程序、移动应用程序和其他应用的 Rust SDK,以创建、查看和验证嵌入式内容凭据。 众所周知,照片的 EXIF 数据中记录了有关光圈和快门速度的信息,这个新标准也采用了这种方式,它还记录有关文件创建的信息,例如文件的创建和编辑方式。如果该公司的共同愿景成真,这些 Adobe 称之为“内容凭证”的元数据,将在社交媒体平台、图像搜索平台、图像编辑器、搜索引擎中广泛可见。 @@ -34,7 +35,7 @@ via: https://www.opensourceforu.com/2022/06/adobe-launches-open-source-toolkit-t 作者:[Laveesh Kocher][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9ef31c6393522c6b08c600adb8ef6627b559dea0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 19 Jun 2022 11:00:43 +0800 Subject: [PATCH 0025/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220619=20Rocket.Chat=20vs.=20Slack-=20Choosing=20t?= =?UTF-8?q?he=20Perfect=20Team=20Collaboration=20App.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...sing the Perfect Team Collaboration App.md | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 sources/tech/20220619 Rocket.Chat vs. Slack- Choosing the Perfect Team Collaboration App.md diff --git a/sources/tech/20220619 Rocket.Chat vs. Slack- Choosing the Perfect Team Collaboration App.md b/sources/tech/20220619 Rocket.Chat vs. Slack- Choosing the Perfect Team Collaboration App.md new file mode 100644 index 0000000000..6ab15d0f60 --- /dev/null +++ b/sources/tech/20220619 Rocket.Chat vs. Slack- Choosing the Perfect Team Collaboration App.md @@ -0,0 +1,221 @@ +[#]: subject: "Rocket.Chat vs. Slack: Choosing the Perfect Team Collaboration App" +[#]: via: "https://itsfoss.com/rocket-chat-vs-slack/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Rocket.Chat vs. Slack: Choosing the Perfect Team Collaboration App +====== +Slack is arguably the most popular team messaging/collaboration application out there. + +While it is not an open-source solution, it is available for Linux, Windows, macOS, Android, and iOS. + +[Rocket.Chat][1], on the other hand, is one of the [best open-source Slack alternatives][2]. It is also available across all major platforms. + +We at It’s FOSS use Rocket.Chat (Self-hosted) for internal team communication. But, we have also had a fair share of experiences with Slack. + +Is Rocket.Chat better than Slack? What benefits do you get if you use Slack over Rocket.Chat? + +If you are on the fence about deciding on a good team communication app, let me compare the offerings to help you explore more about them. + +### Free vs. Premium + +![free premium illustration][3] + +An essential factor for picking a team communication application includes the pricing. + +Open-source or not, not everyone wants to invest in getting started. Of course, it depends on your preferences, but most users will prefer something free. + +[Slack][4], in this case, is free to get started with limited features. We also have a guide on [installing Slack on Linux][5] to give you a head start. + +In comparison, [Rocket.Chat][6] is not entirely free to set up. Technically, you don’t need to pay a dime to use it. However, it would help if you had a server to deploy it to. + +So, considering you already have an infrastructure in place, it should be free for you without any limit to its available features. + +But, if you would rather not invest in a server to host it yourself, Slack gives you the free option. + +Furthermore, Slack does present you with some special regional pricing, which is not the case with Rocket.Chat. + +Generally, the pricing for premium subscriptions is almost similar, but it will differ per your organization’s requirements. You might want to check out [Slack’s][7]and [Rocket.Chat’s][8] pricing page to learn more about it. + +### User Experience + +Rocket.Chat offers a straightforward interface that is easy to use. It does provide a good user experience, but as per my usage (for a few years now), I wouldn’t rate it as the “best experience”. + +![rocket chat ux main][9] + +Things like searching for a particular message and a few subtle interactions aren’t the strongest points of Rocket.Chat. + +But, if you like a simple and effective user interface that keeps up with the modern standards, Rocket.Chat is your friend. It does not have any significant issues, but it may not be the most engaging experience for some. + +With Slack, the user interface takes a modern approach (in other words, a feature-filled user experience). + +Considering the mobile and desktop experience of Slack, it works great with its subtle animations and works pretty much flawlessly. + +![slack ux][10] + +With that being said, I would recommend trying both of them to check your preferences. Just for my opinion, I give Slack a bit of an edge here. + +### Self-hosted vs. Hosted (Data Privacy) + +![self hosted illustration][11] + +While it can be a hassle to self-host it, if you are someone who values data privacy more than the setup convenience, Rocket.Chat can be the perfect fit. + +Fret not, we have a [guide to help you self-host Rocket.Chat][12], if you prefer doing that. + +Of course, Slack does not wildly steal any of your data, but technically, your data resides on someone else’s server. You do not get control of it, but get access to some toggles to manage the workspace. + +With Rocket.Chat lets you control the data and any practices that help you secure your communications. + +Note that for some users, securing and deploying proper practices to secure their server can be a headache (if you are not experienced). So, you might have to end up hiring an expert to set it up and maintain it for you. + +Fortunately, Rocket.Chat also offers you a hosted option like Slack for a premium giving access to certain enterprise-grade features. + +Overall, with Rocket.Chat allows you to opt between a self-hosted option and a managed hosted plan. But, with Slack, you only have the option to rely on a managed hosting option. + +### Encryption + +![encryption illustration][13] + +Rocket.Chat supports end-to-end encryption out of the box using the “**Off the record**” feature conversations. So, you can toggle it in every conversation when needed. + +The feature is still in its beta phase and does not support sharing files when writing this. Hence, it isn’t as pleasant as using some of the [best WhatsApp alternatives][14] for instant messaging. + +The enterprise edition, mentions that it offers end-to-end encryption by default. Of course, with the self-hosted option, you get more control, so you get to decide what you want to do with it. + +Slack encrypts the data at rest and data in transit for all users. With its enterprise edition, you get an Enterprise Key Management feature to take control of your encryption keys for sensitive conversations. + +Overall, both Slack and Rocket.Chat offers options for encryption and security. It all depends on what your organization needs or what you need as an individual. + +### Whitelabel + +![whitelabel illustration][15] + +Numerous brands aim to customize every service/app experience they use by incorporating the company’s theme/name/color/logo. + +And, Rocket.Chat gives you total freedom to customize the experience. + +Ranging from color changes to full CSS customization to help an organization tailor the collaboration/messaging experience for their employees. Just like we have a few things customized in our case. + +![rocket chat ux][16] + +You can even choose to customize from the source code for advanced tweaks. + +Unfortunately, Slack falls short on this. Whether an individual or an enterprise, you must stick to Slack’s default themes/color choices. + +### Key Features + +You should get all the essential messaging features with both of them. + +Message reactions, threaded replies, the recipient’s time zone, notification controls, etc. Several such features can make a difference. + +![A Video from YouTube][17] + +To make things simpler, here, I highlight some of the key feature differences (and similarities) that could help you decide what’s better for you: + +**Common Features** + +* Two-Factor Authentication support. +* You can edit messages. +* Quote messages and reply to them. +* Create separate channels, and add members for access. +* Pin messages. +* Dark theme. +* Privacy options. + +Now that you know some of the fundamental similarities. It would help if you also looked at some of the introductory videos embedded that give you an overview of both. + +![A Video from YouTube][18] + +In either case, let us take a look at some of the important differences: + +##### Rocket.Chat + +* Start a discussion for a separate topic +* Toggle end-to-end encryption +* Channel cannot be entirely limited to admins for messages (other users can reply to the new messages). +* No reminder feature for a conversation thread in a channel. +* No separate drafts section. +* No separate section to find all the files you sent. +* Easily export your data. (HTML/JSON) + +##### Slack + +* No discussion feature +* No user toggle for end-to-end encryption +* Channel can be easily limited to the admins (with no option to reply to other members). +* Ability to set a reminder to get notified of new replies in a conversation thread. +* All drafts get saved and can be accessed from a single place. +* You can find all the sent files quickly. +* Only a workspace admin/owner can export data. + +In addition to some key points, you should find many other subtle differences making up the entire user experience. + +### Third-Party Integrations and Extras + +![decentralize illustration][19] + +Regarding third-party integrations, none of the choices should disappoint you. + +All the major services like Outlook, Zoom and Google Drive work well with both Rocket.Chat and Slack. + +However, Rocket.Chat offers some extras that can have the edge over Slack: + +* Ability to integrate Matrix protocol, making Rocket.Chat one of the [best Matrix clients][20]. In other words, you get a decentralized messenger with Rocket.Chat. +* Adding integrations through Zapier. + +### Open Source vs. Proprietary + +Rocket.Chat already offers some good perks as an open-source solution—for instance, the option to self-host, the freedom to customize the source code, and more. + +So, if you prefer an open-source software for its transparency, privacy benefits, and more, Rocket.Chat is the easy pick. + +If you do not care about any of the perks that come with an open-source tool, you can pick Slack for some of its convenient features and a slightly better user experience. + +### Final Verdict: What Should You Use for Team Communication? + +Rocket.Chat gives you more control of your data and the freedom to customize things. So, if you have no issues with a self-hosted solution, Rocket.Chat is a clear choice. + +However, if you do not want to set it up yourself and want an enterprise (managed) offering, you might want to try them first to evaluate the user experience and its features per your preferences. + +And, if you are just getting started and do not want to invest in a server/premium subscription, Slack should be a good start. + +*What would you pick? Let me know your thoughts in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/rocket-chat-vs-slack/ + +作者:[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/rocket-chat/ +[2]: https://itsfoss.com/open-source-slack-alternative/ +[3]: https://itsfoss.com/wp-content/uploads/2022/06/free-premium-illustration.jpg +[4]: https://slack.com/ +[5]: https://itsfoss.com/slack-use-linux/ +[6]: https://rocket.chat/ +[7]: https://slack.com/intl/en-in/pricing +[8]: https://rocket.chat/pricing +[9]: https://itsfoss.com/wp-content/uploads/2022/06/rocket-chat-ux-main.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/slack-ux.jpg +[11]: https://itsfoss.com/wp-content/uploads/2022/06/self-hosted-illustration.jpg +[12]: https://linuxhandbook.com/rocket-chat-docker/ +[13]: https://itsfoss.com/wp-content/uploads/2022/06/encryption-illustration.jpg +[14]: https://itsfoss.com/private-whatsapp-alternatives/ +[15]: https://itsfoss.com/wp-content/uploads/2022/06/whitelabel-illustration.jpg +[16]: https://itsfoss.com/wp-content/uploads/2022/06/rocket-chat-ux.png +[17]: https://youtu.be/MW_qsbgt1KQ +[18]: https://youtu.be/j9-8UFTHlvk +[19]: https://itsfoss.com/wp-content/uploads/2022/06/decentralize-illustration.jpg +[20]: https://itsfoss.com/best-matrix-clients/ From 099b60418d7c02ccb67e55c715218fe1e00394a1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 19 Jun 2022 13:13:48 +0800 Subject: [PATCH 0026/3123] RP @lkxed https://linux.cn/article-14730-1.html --- ... Core 22 is Here for IoT and Edge Devices.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) rename {translated/news => published}/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md (84%) diff --git a/translated/news/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md b/published/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md similarity index 84% rename from translated/news/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md rename to published/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md index 22c6d65cd1..8d55013527 100644 --- a/translated/news/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md +++ b/published/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md @@ -3,13 +3,14 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14730-1.html" Ubuntu Core 22 来了,适用于物联网和边缘设备 ====== -Ubuntu Core 22 基于 Ubuntu 22.04 LTS,为物联网和嵌入式设备带来了最佳的安全性和性能。 + +> Ubuntu Core 22 基于 Ubuntu 22.04 LTS,为物联网和嵌入式设备带来了最佳的安全性和性能。 ![Ubuntu][1] @@ -19,7 +20,7 @@ Ubuntu Core 22 是一个容器化的 Ubuntu 22.04 LTS 变体,针对嵌入式 在发布 Ubuntu Core 22 时,Canonical 的 CEO **Mark Shuttleworth** 说: -> “Canonical 的目标是在任何地方提供安全、可靠的开源技术,从开发环境到云,再到边缘和设备。” +> “Canonical 的目标是在从开发环境到云、再到边缘和设备的任何地方提供安全、可靠的开源技术。” ### Ubuntu Core 22 更新介绍 @@ -31,11 +32,11 @@ Ubuntu Core 22 版本带来了针对安全性和可靠性的改进。其中包 正如公告中提到的,Ubuntu 22.04 LTS 提供了一个实时内核(测试版可用),它能为那些时间敏感的工业、汽车和机器人用例,提供高性能、超低延迟和工作负载可预测性。 -此外,如果你有 Ubuntu 认证的硬件,你还能充分利用高级的实时功能。 +此外,如果你有 Ubuntu 认证的硬件,你还能充分利用先进的实时功能。 #### Snapcraft 框架 -整个 Ubuntu 映像分解为许多个包(快照),使得内核、操作系统和应用程序隔离在一个沙箱中。 +整个 Ubuntu 镜像分解为许多个包(Snap),使得内核、操作系统和应用程序隔离在一个沙箱中。 这可以让你轻松地安装应用程序,而无需担心来自专用 物联网应用商店IoT App Store 的依赖。对于企业而言,通过软件商店进行的软件管理解决方案,应该能够带来一系列内部部署的机会。 @@ -64,7 +65,7 @@ via: https://news.itsfoss.com/ubuntu-core-22-release/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 622a6036a80b9823d10209739ee00a8a44593090 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 19 Jun 2022 14:53:34 +0800 Subject: [PATCH 0027/3123] RP @Donkey-Hao https://linux.cn/article-14731-1.html --- ...e a countdown clock with a Raspberry Pi.md | 119 ++++++++---------- 1 file changed, 52 insertions(+), 67 deletions(-) rename {translated/tech => published}/20210319 Create a countdown clock with a Raspberry Pi.md (54%) diff --git a/translated/tech/20210319 Create a countdown clock with a Raspberry Pi.md b/published/20210319 Create a countdown clock with a Raspberry Pi.md similarity index 54% rename from translated/tech/20210319 Create a countdown clock with a Raspberry Pi.md rename to published/20210319 Create a countdown clock with a Raspberry Pi.md index a888429ccd..40f4299374 100644 --- a/translated/tech/20210319 Create a countdown clock with a Raspberry Pi.md +++ b/published/20210319 Create a countdown clock with a Raspberry Pi.md @@ -3,50 +3,50 @@ [#]: author: (Chris Collins https://opensource.com/users/clcollins) [#]: collector: (lujun9972) [#]: translator: (Donkey-Hao) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14731-1.html) -使用树莓派做一个倒计时闹钟 +使用树莓派做一个倒计时器 ====== -使用树莓派和 ePaper 显示器开始倒计时您的下一个假期。 -![Alarm clocks with different time][1] -2021年[ Pi Day ][2]来了又走,留下美好的回忆以及[许多树莓派项目][3]等待我们去尝试。在任何令人精神振奋、充满欢乐的假期后回到工作中都很难, Pi Day 也不例外。当我们回望三月的时候,渴望那些天的快乐。但是不用害怕,亲爱的 Pi Day 庆祝者们,我们开始下一个 Pi Day 的漫长倒计时! +> 使用树莓派和电子纸显示屏开始倒计时你的下一个假期。 -好了,严肃点。我做了一个 Pi Day 倒计时器,你也可以! +![](https://img.linux.net.cn/data/attachment/album/202206/19/145133beh3yp1s3ky6bi5b.jpg) -不久前,我购买了一个 [树莓派 Zero W][4] 并且用它来 [解决 WiFi 较差的原因][5] 。我也对使用 ePaper 来作为显示器十分感兴趣。而我却没有一个很好的用途,但是那看起来很有趣!我买了一个十分适合放在树莓派的顶部的 2.13 英寸的 [ WaveShare 显示器][6] 。安装很简单:只需要将显示器接到树莓派的 GPIO 上即可。 +[圆周率日][2]Pi Day(3 月 14 日) 来了又走,留下美好的回忆以及 [许多树莓派项目][3] 等待我们去尝试。在任何令人精神振奋、充满欢乐的假期后回到工作中都很难,圆周率日也不例外。当我们回望三月的时候,渴望那些天的快乐。但是不用害怕,亲爱的圆周率日庆祝者们,我们开始下一个节日的漫长倒计时! -我使用 [树莓派系统][7] 来实现该项目,虽然其他的操作系统肯定也能完成。但是下面的 `raspi-config` 指令在树莓派系统上很容易使用。 +好了,严肃点。我做了一个圆周率日倒计时器,你也可以! -### 设置树莓派和 ePaper 显示器 +不久前,我购买了一个 [树莓派 Zero W][4],并且用它来 [解决 WiFi 信号较差的原因][5] 。我也对使用电子纸ePaper来作为它的显示屏十分感兴趣。虽然我不知道该用它来干什么,但是!它看起来真的很有趣!我买了一个十分适合放在树莓派的顶部的 2.13 英寸的 [WaveShare 显示器][6] 。安装很简单:只需要将显示器接到树莓派的 GPIO 上即可。 -设置树莓派和 ePaper 显示器一起工作,需要你在树莓派上启用串行外设接口 (SPI) 软件,安装 BCM2835 C 库(来访问树莓派上的 Broadcom BCM 2835 芯片的 GPIO 函数),安装 Python GPIO 库来控制 ePaper 显示器。最后,你需要安装 WaveShare 的库来使用 Python 控制 2.13 英寸的显示器。 +我使用 [树莓派操作系统][7] 来实现该项目,虽然其他的操作系统肯定也能完成。但是下面的 `raspi-config` 命令在树莓派系统上很容易使用。 + +### 设置树莓派和电子纸显示屏 + +设置树莓派和电子纸显示屏一起工作,需要你在树莓派软件中启用串行外设接口(SPI),安装 BCM2835 C 库(来访问树莓派上的博通 BCM 2835 芯片的 GPIO 功能),安装 Python GPIO 库来控制电子纸显示屏。最后,你需要安装 WaveShare 的库来使用 Python 控制这个 2.13 英寸的显示屏。 下面是完成这些的步骤。 #### 启用 SPI -树莓派上启用 SPI 最简单的方式是使用`raspi-config` 命令。SPI 总线允许串行数据通信与设备一起使用——在本例中,ePaper 显示: - +树莓派上启用 SPI 最简单的方式是使用 `raspi-config` 命令。SPI 总线允许与设备进行串行数据通信——在本例中,电子纸显示: ``` -`$ sudo raspi-config` +$ sudo raspi-config ``` -从弹出的菜单中, 选择 **Interfacing Options** -> **SPI** -> **Yes** 来启用 SPI 接口,然后启动。 +从弹出的菜单中, 选择 “接口选项Interfacing Options -> SPI -> Yes” 来启用 SPI 接口,然后启动。 #### 安装 BCM2835 库 -如上所述,BCM2835 库是用在树莓派 Broadcom BCM2385 芯片的软件,它允许访问 GPIO 引脚来控制设备。 - -在我写这篇文章之时,用于树莓派的最新 Broadcom BCM2385 库版本是 v1.68 。安装此库需要下载软件压缩包然后使用 `make` 来安装: +如上所述,BCM2835 库是用于树莓派博通 BCM2385 芯片的软件,它允许访问 GPIO 引脚来控制设备。 +在我写这篇文章之时,用于树莓派的最新博通 BCM2385 库版本是 v1.68 。安装此库需要下载软件压缩包然后使用 `make` 来安装: ``` # 下载 BCM2853 库并解压 -$ curl -sSL -o - | tar -xzf - +$ curl -sSL http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.g> -o - | tar -xzf - # 进入解压后的文件夹 $ pushd bcm2835-1.68/ @@ -62,8 +62,7 @@ $ popd #### 安装需要的 Python 库 -你用 Python 控制 ePaper 显示器需要安装 Python 库 `RPi.GPIO` ,还需要 `python3-pil` 包画图。显然, PIL 包已经不行了, Pillow 可以作为代替方案。我还没有为该项目测试 Pillow ,但它可行: - +你用 Python 控制电子纸显示屏需要安装 Python 库 `RPi.GPIO`,还需要使用 `python3-pil` 包来画图。显然,PIL 包已经不行了,但 Pillow 可以作为代替方案。我还没有为该项目测试过 Pillow ,但它可行: ``` # 安装需要的 Python 库 @@ -76,45 +75,42 @@ _注意:这些是 Python3 的指令。你可以在 WaveShare 网站查到 Pyth #### 下载 WaveShare 示例和 Python 库 -Waveshare 维护一个 Python 和 C 的 Git 库,用于使用其 ePaper 显示器和一些展示如何使用它们的示例。对这个倒计时时钟而言,你需要克隆这个库并用于 2.13 英寸的显示器: +Waveshare 维护了一个 Python 和 C 的 Git 库,用于使用其电子纸显示屏和一些展示如何使用它们的示例。对这个倒计时时钟而言,你需要克隆这个库并使用用于 2.13 英寸显示屏的库: ``` # 克隆这个 WaveShare e-Paper git 库 -$ git clone +$ git clone https://github.com/waveshare/e-Paper.gi> ``` 如果你用不同的显示器或者其他公司产品,需要使用适配软件。 Waveshare 提供了很多指导: - * [WaveShare ePaper 设置指导][9] - * [WaveShare ePaper 库安装指导][10] - - + * [WaveShare 电子纸设置指导][9] + * [WaveShare 电子纸库安装指导][10] #### 获得有趣的字体(选做) 你可以随心所欲的使用显示器,为什么不搞点花样?找一个炫酷的字体! -这有大量 [开放字体许可][11] 的字体可用。我十分喜爱 Bangers 字体。如果你看过 YouTube 那你见过这种字体了,它十分流行。你可以下载到本地的共享字体目录文件中,并且所有的应用都可以使用,包括这个项目: +这有大量 [开放字体许可][11] 的字体可供选择。我十分喜爱 Bangers 字体。如果你看过 YouTube 那你见过这种字体了,它十分流行。你可以下载到本地的共享字体目录文件中,并且所有的应用都可以使用,包括这个项目: ``` -# “Bangers” 字体是 Vernon Adams 用 Google 字体开放许可授权的字体 +# “Bangers” 字体是 Vernon Adams 使用 Google 字体开放许可授权的字体 $ mkdir -p ~/.local/share/fonts -$ curl -sSL -o fonts/Bangers-Regular.ttf +$ curl -sSL https://github.com/google/fonts/raw/master/ofl/bangers/Bangers-Regular.ttf -o fonts/Bangers-Regular.ttf ``` -### 创建一个 Pi Day 倒计时器 +### 创建一个圆周率日倒计时器 -现在你已经安装好了软件,可以使用带有炫酷字体的 ePaper 显示器了。你可以创建一个有趣的项目:倒计时到下一个 Pi Day ! +现在你已经安装好了软件,可以使用带有炫酷字体的电子纸显示屏了。你可以创建一个有趣的项目:倒计时到下一个圆周率日! -如果你想,你可以从该项目的 [GitHub repo][13] 直接下载 [countdown.py][12] 这个 Python 文件并跳到文章结尾。 +如果你想,你可以从该项目的 [GitHub 仓库][13] 直接下载 [countdown.py][12] 这个 Python 文件并跳到文章结尾。 为了满足大家的好奇心,我将逐步讲解。 #### 导入一些库 - ``` #!/usr/bin/python3 # -*- coding:utf-8 -*- @@ -134,11 +130,11 @@ waveshare_base = basedir.joinpath('e-Paper', 'RaspberryPi_JetsonNano', 'python') libdir = waveshare_base.joinpath('lib') ``` -开始先导入一些标准库之后脚本中用。也需要你添加一些 PIL 的包: `Image`, `ImageDraw` ,和 `ImageFont` ,你会 用到这些包来画一些简单的图形。最后,为包含用于 2.13 英寸显示器的 Waveshare Python 库的本地 `lib` 目录设置一些变量,稍后你可以使用这些变量从本地目录加载库。 +开始先导入一些标准库之后脚本中用。也需要你从 PIL 添加 `Image`、`ImageDraw` 和 `ImageFont`,你会用到这些来画一些简单的图形。最后,为本地 `lib` 目录设置一些变量,该目录包含了用于 2.13 英寸显示屏的 Waveshare Python 库,稍后你可以使用这些变量从本地目录加载库。 #### 字体大小辅助函数 -下一部分是为你选择的字体建立一个修改大小的辅助函数: Bangers-Regular.ttf 。该函数将整型变量作为大小参数并返回一个图形字体对象来用于显示: +下一部分是为你选择的 Bangers-Regular.ttf 字体建立一个修改大小的辅助函数。该函数将整型变量作为大小参数,并返回一个图形字体对象来用于显示: ``` def set_font_size(font_size): @@ -148,15 +144,14 @@ def set_font_size(font_size): #### 倒计时逻辑 -接下来是计算这个项目的一个函数:距下次 Pi Day 还有多久。如果 Pi Day 在一月,那么计算剩余天数将很简单。但是你需要考虑是否今年的 Pi Day 这一天已经过去了。如果是这样的话,那么计算量将会很大: - +接下来是计算这个项目的一个函数:距下次圆周率日还有多久。如果是在一月,那么计算剩余天数将很简单。但是你需要考虑是否今年的圆周率日是否已经过去了(允悲)。如果是的话,那么计算在你可以再次庆祝之前还有多少天: ``` def countdown(now):     piday = datetime(now.year, 3, 14)     # 如果错过了就增加一年 -    if piday < now: +    if piday < now:         piday = datetime((now.year + 1), 3, 14)     days = (piday - now).days @@ -167,8 +162,7 @@ def countdown(now): #### 主函数 -最后,到了主函数,需要初始化显示器并向它写数据。这时,你应该写一个欢迎语然后再开始倒计时。但是首先,你需要加载 Waveshare 库: - +最后,到了主函数,需要初始化显示屏并向它写数据。这时,你应该写一个欢迎语然后再开始倒计时。但是首先,你需要加载 Waveshare 库: ``` def main(): @@ -181,9 +175,9 @@ def main():         sys.exit(1) ``` -上面的代码片段检查以确保该库已下载到倒计时脚本旁边的目录中,然后加载“epd2in13_V2”库。 如果你使用不同的显示器,则需要使用不同的库。 如果你愿意,也可以自己编写。我发现阅读 Waveshare 随显示器提供的 Python 代码很有趣,它比我想象的要简单得多。 +上面的代码片段检查以确保该库已下载到倒计时脚本旁边的目录中,然后加载`epd2in13_V2` 库。如果你使用不同的显示屏,则需要使用不同的库。如果你愿意,也可以自己编写。我发现阅读 Waveshare 随显示屏提供的 Python 代码很有趣,它比我想象的要简单得多。 -下一段代码创建一个 EPD( ePaper 显示器)对象以与显示器交互并初始化硬件: +下一段代码创建一个 EPD(电子纸显示屏)对象以与显示器交互并初始化硬件: ```     logging.info("Starting...") @@ -198,11 +192,10 @@ def main():         epd.Clear(0xFF) ``` -关于 ePaper 的一个有趣之处:它仅在将像素从白色变为黑色或从黑色变为白色时才使用电源。这意味着当设备断电或应用程序因任何原因停止时,屏幕上的任何内容都会保留下来。从功耗的角度来看,这很好,但这也意味着您需要在启动时清除显示,否则您的脚本只会覆盖屏幕上已有的内容。 因此,`epd.Clear(0xFF)` 用于在脚本启动时清除显示。 +关于电子纸的一个有趣之处:它仅在将像素从白色变为黑色或从黑色变为白色时才耗电。这意味着当设备断电或应用程序因任何原因停止时,屏幕上的任何内容都会保留下来。从功耗的角度来看,这很好,但这也意味着你需要在启动时清除显示,否则你的脚本只会覆盖屏幕上已有的内容。 因此,`epd.Clear(0xFF)` 用于在脚本启动时清除显示。 接下来,创建一个“画布”来绘制剩余的显示输出: - ```     # 创建一个图形对象 # 注意:"epd.heigh" 是屏幕的长边 @@ -217,15 +210,12 @@ def main(): #### 欢迎语 -接下来,你将开始画一些画。这涉及在你之前创建的“画布”对象上设置数据。这还没有将它绘制到 ePaper 显示器上——你现在只是在构建你想要的图像。由你为这个项目绘制带有一块馅饼的图像,来创建一个庆祝 Pi Day 的欢迎信息: +接下来,你将开始画一些画。这涉及在你之前创建的“画布”对象上设置数据。这还没有将它绘制到电子纸显示屏上——你现在只是在构建你想要的图像。由你为这个项目绘制带有一块馅饼的图像,来创建一个庆祝圆周率日的欢迎信息: ![画一块馅饼][14] -(Chris Collins, [CC BY-SA 4.0][15]) - 很可爱,不是吗? - ```     logging.info("Set text text...")     bangers64 = set_font_size(64) @@ -235,20 +225,20 @@ def main():     bmp = Image.open(basedir.joinpath("img", "pie.bmp"))     image.paste(bmp, (150,2)) ``` -最后,_最后_,你可以展示你画的图画: +最后,_真是是最后了_,你可以展示你画的图画: ```     logging.info("Display text and BMP")     epd.display(epd.getbuffer(image)) ``` -That bit above updates the display to show the image you drew. +上面那段话更新了显示屏,以显示你所画的图像。 接下来,准备另一幅图像展示你的倒计时: -#### Pi Day 倒计时 -首先,创建一个用来展示倒计时的项目。也需要设置数字的字体大小: +#### 圆周率日倒计时 +首先,创建一个用来展示倒计时的图像对象。也需要设置数字的字体大小: ```     logging.info("Pi Date countdown; press CTRL-C to exit") @@ -262,15 +252,13 @@ That bit above updates the display to show the image you drew. 为了使它显示的时候更像一个倒计时,更新图像的一部分是更加有效的手段,仅更改已经改变的显示数据部分。下面的代码准备以这样方式运行: - ```     # 准备更新显示     epd.displayPartBaseImage(epd.getbuffer(piday_image))     epd.init(epd.PART_UPDATE) ``` -最后,需要计时,开始一个无限循环来检查据下次 Pi Day 还有多久并显示在 ePaper上。如果到了 Pi Day ,你可以输出一些庆祝短语: - +最后,需要计时,开始一个无限循环来检查据下次圆周率日还有多久,并显示在电子纸上。如果到了圆周率日,你可以输出一些庆祝短语: ```     while (True): @@ -295,7 +283,7 @@ That bit above updates the display to show the image you drew.         time.sleep(5) ``` -脚本最后做了一些错误处理,包括捕获键盘中断,这样你可以使用 **Ctrl**+**C** 来结束无限循环,以及一个根据计数来打印 'day' 或 'days' 的函数: +脚本最后做了一些错误处理,包括捕获键盘中断,这样你可以使用 `Ctrl + C` 来结束无限循环,以及一个根据计数来打印 `day` 或 `days` 的函数: ```     except IOError as e: @@ -319,19 +307,16 @@ if __name__ == "__main__":     main() ``` -现在你已经拥有一个倒计时脚本并显示剩余天数!这是在我的树莓派上的显示(视频经过加速,我没有足够的磁盘空间来保存一整天的视频): +现在你已经拥有一个倒计时并显示剩余天数的脚本!这是在我的树莓派上的显示(视频经过加速,我没有足够的磁盘空间来保存一整天的视频): ![Pi Day Countdown Timer In Action][16] -(Chris Collins, [CC BY-SA 4.0][15]) - #### 安装 systemd 服务(选做) -如果你希望在系统打开时运行倒计时显示并且无需登录并运行脚本,您可以将可选的 systemd 单元安装为 [systemd 用户服务][17]. +如果你希望在系统打开时运行倒计时显示,并且无需登录并运行脚本,你可以将可选的 systemd 单元安装为 [systemd 用户服务][17]。 将 GitHub 上的 [piday.service][18] 文件复制到 `${HOME}/.config/systemd/user`,如果该目录不存在,请先创建该目录。然后你可以启用该服务并启动它: - ``` $ mkdir -p ~/.config/systemd/user $ cp piday.service ~/.config/systemd/user @@ -345,11 +330,11 @@ $ loginctl enable-linger $USER 该脚本将输出到 systemd 日志,可以使用 `journalctl` 命令查看输出。 -### 它开始看起来很像 Pi Day ! +### 它开始看起来像是圆周率日了! -现在你拥有了一个树莓派 Zero W 显示在 ePaper显示器上的 Pi Day 倒计时器!并在系统启动时使用 systemd 单元文件启动!现在只有 350 天左右我们才可以再次相聚庆祝奇妙的设备———树莓派。通过我们的小项目,我们可以一目了然地看到确切的天数。 +这就是你的作品!一个显示在电子纸显示屏上的树莓派 Zero W 圆周率日倒计时器!并在系统启动时使用 systemd 单元文件启动!现在距离我们可以再次相聚庆祝圆周率日还有好多天的奇妙设备———树莓派。通过我们的小项目,我们可以一目了然地看到确切的天数。 -但事实上,任何人都可以全年都在心中举行 Pi Day,因此请享受使用自己的树莓派创建一些有趣且具有教育意义的项目吧! +但实际上,每个人都可以在每一天在心中庆祝圆周率日,因此请使用自己的树莓派创建一些有趣且具有教育意义的项目吧! -------------------------------------------------------------------------------- @@ -358,7 +343,7 @@ via: https://opensource.com/article/21/3/raspberry-pi-countdown-clock 作者:[Chris Collins][a] 选题:[lujun9972][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 083826fceb12bebc67a684de8164c604e13380e1 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sun, 19 Jun 2022 16:17:37 +0800 Subject: [PATCH 0028/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20210124 3 stress-free steps to tackling your task list.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210124 3 stress-free steps to tackling your task list.md b/sources/tech/20210124 3 stress-free steps to tackling your task list.md index 04e65e4b06..8e45208a9d 100644 --- a/sources/tech/20210124 3 stress-free steps to tackling your task list.md +++ b/sources/tech/20210124 3 stress-free steps to tackling your task list.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Donkey) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 8cf9f9a5e2c5f6ee696033b2cfd306e0ac83968d Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 19 Jun 2022 19:43:06 +0800 Subject: [PATCH 0029/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220619=20Top=2010=20App=20Launchers=20for=20Ubuntu?= =?UTF-8?q?=20&=20GNOME=20Desktop=20[With=20Bonus=20List].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...buntu & GNOME Desktop [With Bonus List].md | 240 ++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 sources/tech/20220619 Top 10 App Launchers for Ubuntu & GNOME Desktop [With Bonus List].md diff --git a/sources/tech/20220619 Top 10 App Launchers for Ubuntu & GNOME Desktop [With Bonus List].md b/sources/tech/20220619 Top 10 App Launchers for Ubuntu & GNOME Desktop [With Bonus List].md new file mode 100644 index 0000000000..f40f1ee559 --- /dev/null +++ b/sources/tech/20220619 Top 10 App Launchers for Ubuntu & GNOME Desktop [With Bonus List].md @@ -0,0 +1,240 @@ +[#]: subject: "Top 10 App Launchers for Ubuntu & GNOME Desktop [With Bonus List]" +[#]: via: "https://www.debugpoint.com/2022/06/top-ubuntu-launcher-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 App Launchers for Ubuntu & GNOME Desktop [With Bonus List] +====== +Here’s a list of the 10 best application launcher to boost your productivity and saves time. Try these in Ubuntu, Linux Mint and other distros. + +### What is a Launcher + +A launcher is an application that performs a search and launches any application in your desktop environment. Usually, it is kicked off by a keyboard combination and gives you available options to start. It can also perform specific actions such as browsing file systems and calculating a formula value. + +In other terms, a traditional application menu is also a launcher. Because using a simple menu, you can also search and launch applications. + +Most mainstream Linux distributions do not come with a dedicated launcher by default. Some particular ones feature them. For example, the KDE Plasma desktop in Kubuntu and other distros bring the awesome Krunner launcher. Similarly, there are other launchers as well which are exciting to try out. + +This [Top 10 list][1] features some of the best App Launchers for Ubuntu and Linux distros. + +### Top 10 App Launcher for Ubuntu and Other Linux Distros + +#### 1. Ulauncher + +Ulauncher is a classy and nice-looking App launcher for Ubuntu, Linux Mint and similar distros. It is written in Python and brings some exciting features. For example, Ulauncher support fuzzy search, i.e. your incorrect spellings also give you the exact result that you are looking for. In addition, it supports searching the file system, files, web browsing history and many such features. + +Moreover, you can change the looks of the Ulauncher via several Themes to make it look great in your [desktop theme][2]. + +![Ulauncher showing fuzzy search][3] + +![][4] + +You can install Ulauncher via the below methods. + +* [Directly download][5] the deb file for Ubuntu, Linux Mint and other similar distros. And then, using the Software, you can install it. + +* For Fedora, run the below command from a terminal prompt to install. + +``` +sudo dnf install ulauncher +``` + +* After installation, you can press CTRL+space to launch Ulauncher. + +* For more information, visit the [official website][6]. + +#### 2. Kupfer + +Kupfer is a little different-looking launcher. Written in Python, it is an old application that brings up the applications’ icons when it matches the search values. Usually, it does not have a search box. However, you can type, and the possible matches are shown instantly. Moreover, it supports several plugins as well. + +![Kupfer][7] + +You can easily install Kupfer in Ubuntu and Linux Mint using the below command. + +``` +sudo apt install kupfer +``` + +You can find more details about this launcher on its [home page][8]. + +#### 3. Albert + +Perhaps the most exciting app launcher on this list is Albert. Albert is a widely used launcher that brings app, file system and web search from its search box. Also, it shows you the path of the application or the shortcuts in the resulting drop-down so that you can choose the correct application. Other than that, you can also do basic mathematics calculations from the launcher itself. + +In addition, Albert comes with several plugins to extend its functionality which is accessible from its settings window. When launched for the first time, you need to choose the Keybinding for the launcher. + +![Albert Launcher][9] + +Installation of Albert is terminal driven via openSUSE build service. + +For Ubuntu and Linux Mint, you can install Albert using the following commands in sequence. + +``` +sudo apt install curlcurl https://build.opensuse.org/projects/home:manuelschneid3r/public_key | sudo apt-key add -echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:manuelschneid3r.listsudo wget -nv https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_22.04/Release.key -O "/etc/apt/trusted.gpg.d/home:manuelschneid3r.asc"sudo apt updatesudo apt install albert +``` + +Alternatively, if you want the deb file, you can [get it here][10]. All the above commands are for [Ubuntu 22.04 LTS][11] only. + +Similarly, for Fedora Linux, you can use the following command. + +``` +sudo rpm --import https://build.opensuse.org/projects/home:manuelschneid3r/public_keydnf config-manager --add-repo https://download.opensuse.org/repositories/home:manuelschneid3r/Fedora_36/home:manuelschneid3r.repodnf install albert +``` + +To learn more about Albert, visit the [official website][12]. + +#### 4. GNOME Pie + +GNOME Pie is a circular application launcher and looks different from the traditional launcher. It gives you a circular icon-based menu. See the below image. + +![GNOME Pie – circular launcher][13] + +The design may not go well with specific users, considering the modern user interface designs, but it’s very productive if you are familiar with it. GNOME Pie activates itself when you press the default keyboard combination CTRL+ALT+Space. Another interesting behaviour of GNOME Pie is it pops up at your mouse cursor position. + +Installing GNOME Pie is easy in Ubuntu and other similar distributions. Open a terminal prompt and run the below command. + +``` +sudo apt install gnome-pie +``` + +After installation, press CTRL+ALT+space to activate. For more details, you may visit its official [home page][14]. + +#### 5. Cerebro + +Another attractive launcher which I like to highlight is Cerebro. Cerebro is an electron-based launcher that may act as a single entry point to your “question” or “intent” of search. For example, you want to find out “how often you should wash your car”. Cerebro can show you possible results from Google. Moreover, the usual launcher functions such as finding an app and browsing the file system also work in this launcher. + +![Cerebro | Image credit: Cerebro team][15] + +Unfortunately, I could not run the AppImage of Cerebro in Ubuntu 22.04 LTS for a demo. It looks like there are some bugs. + +But you may download AppImage or deb file from here and try it. **Note**: it has a dependency on `libcanberra-gtk-module` and `libfuse2`. Finally, its also available for Windows and macOS, and you may learn more about Cerebro at its official [homepage][16]. + +#### 6. Synapse + +Synapse is a free and open-source launcher application with which you can quickly start applications and access files using the Zeitgeist engine. Written in Vala, Synapse is similar to the Ulauncher in this list. + +In addition, it can search your playlists, give you options to shutdown and gives you a Tabbed view of the preliminary result window. Synapse is an excellent utility to have for your desktop. + +![Synapse Launcher][17] + +You can download the latest build deb file (amd64) in Launchpad using [this page][18] and install it using GDebi or dpkg or Software. + +#### 7. Zazu + +Zazu is another excellent launcher which you can try out. It is free and open-source and comes with a variety of features out of the box. For example, you can search and take actions on the system power menu and search in package manager and clipboard history using Zazu. In addition, you can also run the system commands and launch applications using this Ubuntu launcher. + +![Zazu launcher | Image credit: Zazu team][19] + +Zazu is available for Windows and Linux. You can get the deb file on [this page for Ubuntu Linux and other related distributions.][20] After downloading the deb file, you can install it using the Software or GDebi. + +Visit the [official website][21] to learn more about its features. + +#### 8. Rofi + +If you are a long-time desktop Linux user, I am sure you heard about Rofi. Rofi is a clone of the window switcher “Simpleswitcher”. It is a versatile application launcher or swithers that brings several pre-made modes. For example, it features Window switcher mode, app launcher mode, file browsing mode and a unique SSH launcher mode. + +In addition, it is designed to give you results based on your search history, which is sorted based on your search age. Moreover, it supports plugins and themes which you can choose to blend into your desktop design. + +![Rofi in file browser more][22] + +For more details, visit the Github [page][23]. + +Installation of Rofi is easy, as the packages are available in significant distribution repo. For Ubuntu Linux, you can run the below command to install. + +``` +sudo apt install rofi +``` + +For Fedora Linux, use: + +``` +sudo dnf install rofi +``` + +After installation, visit the Quickstart [guide][24] to run this launcher. Because running the Rofi launcher is a little different than others. + +#### 9. GNOME Do + +The ninth in this Ubuntu launcher list is “GNOME-Do”. [GNOME Do][25] an intelligent desktop launcher which helps you to perform several tasks. For example, you can launch operating system actions such as copy, move, and delete. In addition, you can efficiently perform the usual search of apps and file system data. GNOME Do also support several Themes and Plugins developed by the community for further customization. + +![GNOME Do][26] + +You can install the GNOME Do launcher in Ubuntu using the following PPA. + +``` +sudo add-apt-repository ppa:do-core/ppasudo apt updatesudo apt install gnome-do +``` + +#### 10. LightHouse + +The final Ubuntu launcher in this list is LightHouse. Lighthouse is the most simple launcher with a minimal design. It has a single search box that expands based on the input parameter. For example, if you want to execute specific actions, you can type the proper keyword, showing you the available options. + +Installing LightHouse is a little tricky in Ubuntu. It requires compilation which you can find on [this page][27]. For Arch Linux, you can [setup Yay AUR helper][28] and run `yay -S lighthouse-git` to install. + +Learn more about LightHouse on its official [Github page][29]. + +### Bonus List + +Finally, here are five more launchers which are stunning in their merit. But I have not added them to the above list because they are more like “application menu” than “pop-out launcher”. Semantically all the apps in the below is “launcher”, but I guess it’s better to term them as the extended application menu. + +* [Arc Menu][30] +* [Plank][31] +* [DockBarX][32] +* [Docky][33] + +### Closing Notes + +I hope this list of best launchers for Ubuntu and Other Linux helps you pick one. In addition, you may try all of them and choose the one that suits best your workflow. Also, as many of them uses similar keyboard combination, try not to use all of them together. + +Finally, which one of the Ubuntu launchers above is your favourite? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2022/06/top-ubuntu-launcher-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/tag/top-10-list/ +[2]: https://www.debugpoint.com/category/themes +[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/Ulauncher-showing-fuzzy-search.jpg +[4]: +[5]: https://github.com/Ulauncher/Ulauncher/releases/ +[6]: https://ulauncher.io/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/Kupfer.jpg +[8]: https://github.com/kupferlauncher/kupfer +[9]: https://www.debugpoint.com/wp-content/uploads/2022/06/Albert-Launcher.jpg +[10]: http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_22.04/amd64/ +[11]: https://www.debugpoint.com/tag/ubuntu-22-04-lts/ +[12]: https://albertlauncher.github.io/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/06/GNOME-Pie.jpg +[14]: http://schneegans.github.io/gnome-pie +[15]: https://www.debugpoint.com/wp-content/uploads/2022/06/Cerebro.jpg +[16]: https://cerebroapp.com/ +[17]: https://www.debugpoint.com/wp-content/uploads/2022/06/Synapse-Launcher.jpg +[18]: https://launchpad.net/ubuntu/+source/synapse/0.2.99.4-3build1/+build/23235198 +[19]: https://www.debugpoint.com/wp-content/uploads/2022/06/Zazu-launcher.jpg +[20]: https://github.com/bayleeadamoss/zazu/releases +[21]: http://zazuapp.org/ +[22]: https://www.debugpoint.com/wp-content/uploads/2022/06/Rofi-in-file-browser-more.jpg +[23]: https://github.com/davatorium/rofi +[24]: https://github.com/davatorium/rofi#quickstart +[25]: http://do.cooperteam.net/ +[26]: https://www.debugpoint.com/wp-content/uploads/2022/06/GNOME-Do.jpg +[27]: https://github.com/emgram769/lighthouse#installation +[28]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[29]: https://github.com/emgram769/lighthouse +[30]: https://gitlab.com/arcmenu/ArcMenu +[31]: https://launchpad.net/plank +[32]: https://github.com/M7S/dockbarx +[33]: https://launchpad.net/docky/ From 1b10c583b625fe37dee598bebb78e56c28cee21f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 20 Jun 2022 08:51:56 +0800 Subject: [PATCH 0030/3123] translated --- ...ow I use LibreOffice keyboard shortcuts.md | 60 ------------------ ...ow I use LibreOffice keyboard shortcuts.md | 61 +++++++++++++++++++ 2 files changed, 61 insertions(+), 60 deletions(-) delete mode 100644 sources/tech/20220615 How I use LibreOffice keyboard shortcuts.md create mode 100644 translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md diff --git a/sources/tech/20220615 How I use LibreOffice keyboard shortcuts.md b/sources/tech/20220615 How I use LibreOffice keyboard shortcuts.md deleted file mode 100644 index 4130c2576f..0000000000 --- a/sources/tech/20220615 How I use LibreOffice keyboard shortcuts.md +++ /dev/null @@ -1,60 +0,0 @@ -[#]: subject: "How I use LibreOffice keyboard shortcuts" -[#]: via: "https://opensource.com/article/22/6/libreoffice-keyboard-shortcuts" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How I use LibreOffice keyboard shortcuts -====== -Keyboard shortcuts keep me focused on the content that I'm meant to deliver, and not its appearance. - -![Programming keyboard.][1] - -Image by: Opensource.com - -I have used word processing software for as long as I can remember. When word processors moved from direct formatting to leveraging styles to change how text appears on the page, that was a big boost to my writing. - -LibreOffice provides a wide variety of styles that you can use to create all kinds of content. LibreOffice applies paragraph styles to blocks of text, such as body text, lists, and code samples. Character styles are similar, except that these styles apply to inline words or other short text inside a paragraph. Use the **View -> Styles** menu, or use the **F11** keyboard shortcut, to bring up the Styles selector. - -![Image of LibreOffice styles][2] - -Using styles makes writing longer documents much easier. Consider this example: I write a lot of workbooks and training material as part of my consulting practice. A single workbook might be 40 or 60 pages long, depending on the topic, and can include a variety of content such as body text, tables, and lists. Some of my technical training material may also include source code examples. - -I have a standard training set that I offer clients, but I do custom training programs too. When working on a custom program, I might start by importing text from another workbook, and working from there. Depending on the client, I might also adjust the font and other style elements to match the client's style preferences.  For other materials, I might need to add source code examples. - -To enter sample source code using direct formatting, I need to set the font and adjust the margins for each code block in the workbook. If I later decide that my workbook should use a different font for body text or source code samples, I would need to go back and change everything. For a workbook that includes more than a few code samples, this could require several hours to hunt down every source code example and adjust the font and margins to match the new preferred format. - -However, by using styles, I can update the definition once to use a different font for the Text Body style, and LibreOffice Writer updates my document everywhere that uses the Text Body style. Similarly, I can adjust the font and margins for the Preformatted Text style, and LibreOffice Writer applies that new style to every source code example with the Preformatted Text style. This is the same for other blocks of text, including titles, source code, lists, and page headers and footers. - -I recently had the bright idea to update the LibreOffice keyboard shortcuts to streamline my writing process. I've redefined **Ctrl**+**B** to set character style Strong Emphasis, **Ctrl**+**I** to set character style Emphasis, and **Ctrl**+**Space** to set No Character Style. This makes my writing much easier, as I don't have to pause my writing so I can highlight some text and select a new style. Instead, I can use my new **Ctrl**+**I** keyboard shortcut to set the Emphasis character style, which is essentially italics text. Anything I type after that uses the Emphasis style, until I press **Ctrl**+**Space** to reset the character style back to the default No Character Style. - -![Image of LibreOffice character styles][3] - -If you want to set this yourself, use **Tools > Customize,** then click on the Keyboard tab to modify your keyboard shortcuts. - -![Image of LibreOffice keyboard customizations][4] - -LibreOffice makes technical writing much easier with styles. And by leveraging keyboard shortcuts, I've streamlined how I write, keeping me focused on the content that I'm meant to deliver, and not its appearance. I might change the formatting later, but the styles remain the same. - -Image by: (Jim Hall, CC BY-SA 40) - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/libreoffice-keyboard-shortcuts - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/programming_keyboard_coding.png -[2]: https://opensource.com/sites/default/files/2022-06/libreofficestyles.png -[3]: https://opensource.com/sites/default/files/2022-06/libreofficecharstyles.png -[4]: https://opensource.com/sites/default/files/2022-06/libreofficekeyboardcustom.png diff --git a/translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md b/translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md new file mode 100644 index 0000000000..23511099c2 --- /dev/null +++ b/translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md @@ -0,0 +1,61 @@ +[#]: subject: "How I use LibreOffice keyboard shortcuts" +[#]: via: "https://opensource.com/article/22/6/libreoffice-keyboard-shortcuts" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我如何使用 LibreOffice 键盘快捷键 +====== +键盘快捷键让我专注于我要传递的内容,而不是它的外观。 + +![Programming keyboard.][1] + +图片来源:Opensource.com + +从我记事起,我就一直在使用文字处理软件。当文字处理器从直接格式化转向利用样式来改变文本在页面上的显示方式时,这对我的写作有很大的推动作用。 + +LibreOffice 提供了多种样式,你可以使用它们来创建各种内容。 LibreOffice 将段落样式应用于文本块,例如正文、列表和代码示例。字符样式类似,只是这些样式适用于段落内的内联词或其他短文本。使用**视图 -> 样式**菜单,或使用 **F11** 键盘快捷键,调出样式选择器。 + +![Image of LibreOffice styles][2] + +使用样式可以更轻松地编写更长的文档。考虑这个例子:作为咨询实践的一部分,我写了很多工作簿和培训材料。一个工作簿可能有 40 或 60 页长,具体取决于主题,并且可以包含各种内容,例如正文、表格和列表。我的一些技术培训材料可能还包括源代码示例。 + +我有一个提供给客户的标准培训集,但我也做定制的培训计划。在处理自定义程序时,我可能会先从另一个工作簿导入文本,然后从那里开始工作。根据客户的不同,我可能还会调整字体和其他样式元素以匹配客户的样式偏好。对于其他材料,我可能需要添加源代码示例。 + +要使用直接格式输入示例源代码,我需要设置字体并调整工作簿中每个代码块的边距。如果我后来决定我的工作簿应该为正文文本或源代码示例使用不同的字体,我需要返回并更改所有内容。对于包含多个代码示例的工作簿,这可能需要几个小时来查找每个源代码示例并调整字体和边距以匹配新的首选格式。 + +但是,通过使用样式,我可以更新定义一次,为正文样式使用不同的字体,并且 LibreOffice Writer 会在所有使用正文样式的地方更新我的文档。同样,我可以调整预格式化文本样式的字体和边距,LibreOffice Writer 会将这种新样式应用到每个具有预格式化文本样式的源代码示例中。这对于其他文本块也是如此,包括标题、源代码、列表以及页眉和页脚。 + + +我最近有了一个好主意,更新 LibreOffice 键盘快捷键以简化我的写作过程。我重新定义了 **Ctrl**+**B** 设置加粗强调字符样式,**Ctrl**+**I** 设置强调字符样式,**Ctrl**+**空格**设置无字符样式。这使我的写作变得更加容易,因为我不必暂停写作,这样我就可以高亮显示一些文本并选择一种新的风格。相反,我可以使用新的 **Ctrl**+**I** 键盘快捷键来设置字符样式,它本质上是斜体文本。之后我输入的任何内容都使用强调样式,直到我按 **Ctrl**+**空格**将字符样式重置为默认的无字符样式。 + +![Image of LibreOffice character styles][3] + +如果你想自己设置的,请使用**工具 > 自定义**, 然后单击键盘选项卡以修改的键盘快捷键。 + +![Image of LibreOffice keyboard customizations][4] + +LibreOffice 通过样式使技术写作变得更加容易。通过利用键盘快捷键,我简化了我的写作方式,让我专注于我要交付的内容,而不是它的外观。稍后我可能会更改格式,但样式保持不变。 + +图片来源:(Jim Hall,CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/libreoffice-keyboard-shortcuts + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming_keyboard_coding.png +[2]: https://opensource.com/sites/default/files/2022-06/libreofficestyles.png +[3]: https://opensource.com/sites/default/files/2022-06/libreofficecharstyles.png +[4]: https://opensource.com/sites/default/files/2022-06/libreofficekeyboardcustom.png From 850e9197e8df9d499b2f479e5f4165f4d44e67a0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 20 Jun 2022 08:58:30 +0800 Subject: [PATCH 0031/3123] translating --- sources/tech/20220607 Integrating Zeek with ELK Stack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220607 Integrating Zeek with ELK Stack.md b/sources/tech/20220607 Integrating Zeek with ELK Stack.md index 3654c2a9a7..ba00b4e71c 100644 --- a/sources/tech/20220607 Integrating Zeek with ELK Stack.md +++ b/sources/tech/20220607 Integrating Zeek with ELK Stack.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/" [#]: author: "Tridev Reddy https://www.opensourceforu.com/author/tridev-reddy/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f7bb2e3a60151a4047f364b7504aa29f55538f1a Mon Sep 17 00:00:00 2001 From: SamMa Date: Mon, 20 Jun 2022 09:17:37 +0800 Subject: [PATCH 0032/3123] Update 20210531 Get started with Kubernetes using chaos engineering.md --- ...1 Get started with Kubernetes using chaos engineering.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md index 37f4669b38..c3db48b02b 100644 --- a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md +++ b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md @@ -3,7 +3,7 @@ [#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) [#]: collector: (lujun9972) [#]: translator: (Donkey) -[#]: reviewer: ( ) +[#]: reviewer: (turbokernel) [#]: publisher: ( ) [#]: url: ( ) @@ -61,8 +61,8 @@ via: https://opensource.com/article/21/5/kubernetes-chaos 作者:[Jessica Cherry][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[turbokernel](https://github.com/turbokernel) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 519197f6082444e837af3447216c669e10d95716 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 20 Jun 2022 14:02:14 +0800 Subject: [PATCH 0033/3123] RP @lkxed https://linux.cn/article-14734-1.html --- ...tter Drives Open Source Projects Popularity.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) rename {translated/news => published}/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md (69%) diff --git a/translated/news/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md b/published/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md similarity index 69% rename from translated/news/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md rename to published/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md index a8a3a26be1..f3a693778c 100644 --- a/translated/news/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md +++ b/published/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md @@ -3,23 +3,24 @@ [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14734-1.html" 有研究表明,推特能够推动开源项目的普及 ====== + ![推特][1] -由 HongBo Fang 博士领导的研究团队发现,推特是一种吸引更多人关注和贡献 GitHub 开源项目的有效方式。Fang 博士在国际软件工程会议上发表了这项名为“‘这真是太棒了!’估计推文对开源项目受欢迎程度和新贡献者的影响”的研究,并获得了杰出论文奖。这项研究显示,发送和一个项目有关的推文,导致了该项目受欢迎程度增加了 7%(在 GitHub 上至少增加了一颗 star),贡献者数量增加了 2%。一个项目收到的推文越多,它收到的 star 和贡献者就越多。 +由 HongBo Fang 博士领导的研究团队发现,推特是一种吸引更多人关注和贡献 GitHub 开源项目的有效方式。Fang 博士在国际软件工程会议上发表了这项名为“‘这真是太棒了!’估计推文对开源项目受欢迎程度和新贡献者的影响”的研究,并获得了杰出论文奖。这项研究显示,发送和一个项目有关的推文,导致了该项目受欢迎程度增加了 7%(在 GitHub 上至少增加了一个星标),贡献者数量增加了 2%。一个项目收到的推文越多,它收到的星标和贡献者就越多。 Fang 说:“我们已经意识到社交媒体在开源社区中变得越来越重要,吸引关注和新的贡献者将带来更高质量和更好的软件。” 大多数开源软件都是由志愿者创建和维护的。参与项目的人越多,结果就越好。开发者和其他人使用该软件、报告问题并努力解决这些问题。然而,不受欢迎的项目有可能得不到应有的关注。这些劳动力(几乎都是志愿者),维护了数百万人每天依赖的软件。例如,几乎每个 HTTPS 网站都使用开源的 OpenSSL 保护其内容。Heartbleed 是 OpenSSL 中发现的一个安全漏洞,在 2014 年被发现后,企业花费了数百万美元来修复它。另一个开源软件 cURL 允许连接的设备相互发送数据,并安装在大约 10 亿台设备上。开源软件之多,不胜枚举。 -此次“推特对提高开源项目的受欢迎程度和吸引新贡献者的影响”的研究,其实是 “Vasilescu 数据挖掘与社会技术研究实验室” (STRUDEL) 的一个更大项目的其中一部分,该研究着眼于如何建立开源社区并且其工作更具可持续性。毕竟,支撑现代技术的数字基础设施、道路和桥梁都是开源软件。如果维护不当,这些基础设施可能会崩溃。 +此次“推特对提高开源项目的受欢迎程度和吸引新贡献者的影响”的研究,其实是 “Vasilescu 数据挖掘与社会技术研究实验室”(STRUDEL)的一个更大项目的其中一部分,该研究着眼于如何建立开源社区并且其工作更具可持续性。毕竟,支撑现代技术的数字基础设施、道路和桥梁都是开源软件。如果维护不当,这些基础设施可能会崩溃。 -研究人员检查了 44544 条推文,其中包含指向 2370 个开源 GitHub 存储库的链接,以证明这些推文确实吸引了新的 star 和项目贡献者。在这项研究中,研究人员使用了一种科学的方法:将 Twitter 上提及的 GitHub 项目的 star 和贡献者的增加,与 Twitter 上未提及的一组项目进行了比较。该研究还描述了高影响力推文的特征、可能被帖子吸引到项目的人的类型,以及这些人与通过其他方式吸引的贡献者有何不同。来自项目支持者而不是开发者的推文最能吸引注意力。请求针对特定任务或项目提供帮助的帖子会收到更高的回复率。推文往往会吸引新的贡献者,**他们是 GitHub 的新手,但不是经验不足的程序员**。还有,**新的关注可能不会带来新的帮助**。 +研究人员检查了 44544 条推文,其中包含指向 2370 个开源 GitHub 存储库的链接,以证明这些推文确实吸引了新的星标和项目贡献者。在这项研究中,研究人员使用了一种科学的方法:将推特上提及的 GitHub 项目的星标和贡献者的增加,与推特上未提及的一组项目进行了比较。该研究还描述了高影响力推文的特征、可能被帖子吸引到项目的人的类型,以及这些人与通过其他方式吸引的贡献者有何不同。来自项目支持者而不是开发者的推文最能吸引注意力。请求针对特定任务或项目提供帮助的帖子会收到更高的回复率。推文往往会吸引新的贡献者,**他们是 GitHub 的新手,但不是经验不足的程序员**。还有,**新的关注可能不会带来新的帮助**。 提高项目受欢迎程度也存在其缺点,研究人员讨论后认为,它的潜在缺点之一,就是注意力和行动之间的差距。**更多的关注通常会导致更多的功能请求或问题报告,但不一定有更多的开发者来解决它们**。社交媒体受欢迎程度的提高,可能会导致有更多的“巨魔”或“有毒行为”出现在项目周围。 @@ -32,7 +33,7 @@ via: https://www.opensourceforu.com/2022/06/according-to-studies-twitter-drives- 作者:[Laveesh Kocher][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7d59094d510a6b3cb237187885feadf93618e324 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 14:07:31 +0800 Subject: [PATCH 0034/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220620=20Compress=20Images=20in=20Linux=20Easily?= =?UTF-8?q?=20With=20Curtail=20GUI=20App.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...es in Linux Easily With Curtail GUI App.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md diff --git a/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md b/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md new file mode 100644 index 0000000000..7b58dfcf92 --- /dev/null +++ b/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md @@ -0,0 +1,106 @@ +[#]: subject: "Compress Images in Linux Easily With Curtail GUI App" +[#]: via: "https://itsfoss.com/curtail-image-compress/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Compress Images in Linux Easily With Curtail GUI App +====== + +Got a bunch of images with huge file sizes taking too much disk space? Or perhaps you have to upload an image to a web portal that has file size restrictions? + +There could be a number of reasons why you would want to compress images. There are tons of tools to help you with it and I am not talking about the command line ones here. + +You can use a full-fledged image editor like GIMP. You may also use web tools like [Squoosh][1], an open source project from Google. It even lets you compare the files for each compression level. + +However, all these tools work on individual images. What if you want to bulk compress photos? Curtail is an app that saves your day. + +### Curtail: Nifty tool for image compression in Linux + +Built with Python and GTK3, Curtail is a simple GUI app that uses open source libraries like OptiPNG, [jpegoptim][2], etc to provide the image compression feature. + +It is available as a [Flatpak application][3]. Please make sure that you have [Flatpak support enabled on your system][4]. + +Add the Flathub repo first: + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +And then use the command below to install Curtail: + +``` +flatpak install flathub com.github.huluti.Curtail +``` + +Once installed, look for it in your Linux system’s menu and start it from there. + +![curtail app][5] + +The interface is plain and simple. You can choose whether you want a lossless or lossy compression. + +The lossy compression will have poor-quality images but with a smaller size. The lossless compression will have better quality but the size may not be much smaller than the original. + +![curtail app interface][6] + +You can either browse for images or drag and drop them into the application. + +Yes. You can compress multiple images in one click with Curtail. + +In fact, you don’t even need a click. As soon as you select the images or drop them, they are compressed and you see a summary of the compression process. + +![curtail image compression summary][7] + +As you can see in the image above, I got a 35% size reduction for one image and 3 and 8 percent for the other two. This was with lossless compression. + +The images are saved with a -min suffix (by default), in the same directory as the original image. + +Though it looks minimalist, there are a few options to configure Curtail. Click on the hamburger menu and you are presented with a few settings options. + +![curtail configuration options][8] + +You can select whether you want to save the compressed file as new or replace the existing one. If you go for a new file (default behavior), you can also provide a different suffix for the compressed images. The option to keep the file attributes is also there. + +In the next tab, you can configure the settings for lossy compression. By default, the compression level is at 90%. + +![curtail compression options][9] + +The Advanced tab gives you the option to configure the lossless compression level for PNG and WebP files. + +![curtain advanced options][10] + +### Conclusion + +As I stated earlier, it’s not a groundbreaking tool. You can do the same with other tools like GIMP. It just makes the task of image compression simpler, especially for bulk image compression. + +I would love to see the option to [convert the image file formats][11] with the compression like what we have in tools like Converseen. + +Overall, a good little utility for the specific purpose of image compression. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/curtail-image-compress/ + +作者:[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://squoosh.app/ +[2]: https://github.com/tjko/jpegoptim +[3]: https://itsfoss.com/what-is-flatpak/ +[4]: https://itsfoss.com/flatpak-guide/ +[5]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-app.png +[6]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-app-interface.png +[7]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-image-compression-summary.png +[8]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-configuration-options.png +[9]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-compression-options.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/curtain-advanced-options.png +[11]: https://itsfoss.com/converseen/ From ffe5679981eb150181d807343a4a625c7cc5d1de Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 20 Jun 2022 14:35:45 +0800 Subject: [PATCH 0035/3123] RP @lightchaserhy https://linux.cn/article-14735-1.html --- ...op new life with the Linux Xfce desktop.md | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) rename {translated/tech => published}/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md (53%) diff --git a/translated/tech/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md b/published/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md similarity index 53% rename from translated/tech/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md rename to published/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md index 4a57309b06..428b8d4814 100644 --- a/translated/tech/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md +++ b/published/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md @@ -3,41 +3,44 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "lightchaserhy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14735-1.html" -我如何利用 Linux Xface 桌面赋予旧电脑新生命 +我如何利用 Xfce 桌面为旧电脑赋予新生 ====== -当我为了一场会议的样例演示,用笔记本电脑安装 Linux 系统后,发现旧电脑运行 Linux 系统和 Xfce 桌面非常流畅。 -几周前,我要在一个会议上简要演示自己在 Linux 下编写的一款小软件。我需要带一台 Linux 笔记本电脑参会,因此我翻出一台旧笔记本电脑并且安装上 Linux 系统。我使用的是 Fedora 36 Xfce spin,使用还不错。 +![](https://img.linux.net.cn/data/attachment/album/202206/20/143325vfdibhvv22qvddiv.jpg) -这台我用的笔记本是在 2012 年购买的。1.70 GHZ 的 CPU,4 GB 的 内存,128 GB 的驱动器,也许和我现在的桌面电脑比性能很弱,但是 Linux 和 Xfce 桌面赋予这台旧电脑新的生命。 +> 当我为了在一场会议上做演示,用笔记本电脑安装 Linux 系统后,发现 Linux 和 Xfce 桌面让我的这台旧电脑健步如飞。 + +几周前,我要在一个会议上简要演示自己在 Linux 下编写的一款小软件。我需要带一台 Linux 笔记本电脑参会,因此我翻出一台旧笔记本电脑,并且安装上 Linux 系统。我使用的是 Fedora 36 Xfce 版,使用还不错。 + +这台我用的笔记本是在 2012 年购买的。1.70 GHZ 的 CPU、4 GB 的 内存、128 GB 的硬盘,也许和我现在的桌面电脑比性能很弱,但是 Linux 和 Xfce 桌面赋予了这台旧电脑新的生命。 ### Linux 的 Xfce 桌面 -Xfce 桌面是一个轻量级桌面,它提供一个精美、现代的外观。熟悉的界面,有任务栏或者顶部“面板”可以启动应用程序,在系统托盘可以改变虚拟桌面,或者查看通知信息。 +Xfce 桌面是一个轻量级桌面,它提供一个精美、现代的外观。熟悉的界面,有任务栏或者顶部“面板”可以启动应用程序,在系统托盘可以改变虚拟桌面,或者查看通知信息。屏幕底部的快速访问停靠区让你可以启动经常使用的应用程序,如终端、文件管理器和网络浏览器。 ![Image of Xfce desktop][6] -要开始一个新应用程序,点击左上角的应用程序按钮。这将打开一个应用程序启动菜单,顶部有常用的应用程序比如终端和文件管理。另外的应用程序会分组排列,这样你可以找到所需要的应用。 +要开始一个新应用程序,点击左上角的应用程序按钮。这将打开一个应用程序启动菜单,顶部有常用的应用程序,比如终端和文件管理。其它的应用程序会分组排列,这样你可以找到所需要的应用。 ![Image of desktop applications][7] ### 管理文件 -Xfce 的文件管理器时叫 Thunar,它能非常好地管理我的文件。我喜欢 Thunar 可以连接远程系统,在家里,我用一个开启 SSH 的树莓派作为个人文件服务器。Thunar 可以打开一个 SSH 文件传输窗口,这样我可以在笔记本电脑和树莓派之间拷贝文件。 +Xfce 的文件管理器时叫 Thunar,它能很好地管理我的文件。我喜欢 Thunar 可以连接远程系统,在家里,我用一个开启 SSH 的树莓派作为个人文件服务器。Thunar 可以打开一个 SSH 文件传输窗口,这样我可以在笔记本电脑和树莓派之间拷贝文件。 ![Image of Thunar remote][9] -另一个访问文件和文件夹的方式是通过屏幕底部的快速访问停靠栏。点击文件夹图标可以打开一个常规操作菜单,如在终端窗口打开一个文件夹、新建一个文件夹或进入指定文件夹等。 +另一个访问文件和文件夹的方式是通过屏幕底部的快速访问停靠区。点击文件夹图标可以打开一个常用操作的菜单,如在终端窗口打开一个文件夹、新建一个文件夹或进入指定文件夹等。 ![Image of desktop with open folders][10] ### 其它应用程序 -我热爱探索 Xfce 提供的其他应用程序。Mousepad 看起来像一个简单的文本编辑器,但是比起纯文本编辑,它包含更多有用的功能。Mousepad 支持许多文件类型,程序员和其他高级用户也许会非常喜欢。在文档菜单检验一下可用的部分编程语言列表。 +我喜欢探索 Xfce 提供的其他应用程序。Mousepad 看起来像一个简单的文本编辑器,但是比起纯文本编辑,它包含更多有用的功能。Mousepad 支持许多文件类型,程序员和其他高级用户也许会非常喜欢。可以在文档菜单中查看一下部分编程语言的列表。 ![Image of Mousepad file types][11] @@ -46,21 +49,20 @@ Xfce 的文件管理器时叫 Thunar,它能非常好地管理我的文件。 ![Image of Mousepad in color scheme solarized][12] 磁盘工具可以让你管理储存设备。虽然我不需要修改我的系统磁盘,磁盘工具是一个初始化或重新格式化 USB 闪存设备的好方式。我认为这个界面非常简单好用。 + ![Image of disk utility][13] -我非常钦佩带有 Geany 集成开发的环境,我有一点惊讶一个旧系统可以如此流畅地运行一个完整的 IDE 开发软件。 +Geany 集成开发环境也给我留下了深刻印象,我有点惊讶于一个完整的集成开发软件(IDE)可以在一个旧系统可以如此流畅地运行。Geany 宣称自己是一个“强大、稳定和轻量级的程序员文本编辑器,提供大量有用的功能,而不会拖累你的工作流程”。而这正是 Geany 所提供的。 -我用一个简单的 “hello world” 程序测试 Geany,当我输入每一个函数名称时,很高兴地看到 IDE 弹出语法帮助,弹出的信息并不唐突且刚好提供了我需要的信息。同时 printf 函数非常容易记住,我总是忘记其它函数的选项顺序,比如 fputs 和 realloc,这就是我需要弹出语法帮助的地方。 +我用一个简单的 “hello world” 程序测试 Geany,当我输入每一个函数名称时,很高兴地看到 IDE 弹出语法帮助,弹出的信息并不特别显眼,且刚好提供了我需要的信息。虽然我能很容易记住 `printf` 函数,但总是忘记诸如 `fputs` 和 `realloc` 之类的函数的选项顺序,这就是我需要弹出语法帮助的地方。 ![Image of Geany workspace][14] -在 Xfce 里探索菜单寻找其它应用程序让你的工作更简单,你将找到可以播放音乐、访问终端或浏览网页的应用程序。 +深入了解 Xfce 的菜单,寻找其它应用程序,让你的工作更简单,你将找到可以播放音乐、访问终端或浏览网页的应用程序。 -当我安装 Linux 到笔记本电脑,在会议上演示一些样例后,发现 Linux 和 Xfce 桌面让这台旧电脑变得更时尚。这个系统运行得如此流畅,当会议结束后,我决定把这台笔记本电脑作为备用机。 +当我在笔记本电脑上安装了 Linux,在会议上做了一些演示后,我发现 Linux 和 Xfce 桌面让这台旧电脑变得相当敏捷。这个系统运行得如此流畅,以至于当会议结束后,我决定把这台笔记本电脑作为备用机。 -我喜爱在 Xfce 上使用应用程序工作,尽管它有非常低的系统开销和极简单的方法,但我并没有感觉到不够用,我可以用 Xfce 和上面的应用程序做任何事情。如果你有一台需要翻新的旧电脑,试试安装 Linux,给旧硬件带来新的生命。 - -图片来源: (Jim Hall, CC BY-SA 40) +我确实喜欢在 Xfce 中工作和使用这些应用程序,尽管系统开销不大,使用也很简单,但我并没有感觉到不够用,我可以用 Xfce 和上面的应用程序做任何事情。如果你有一台需要翻新的旧电脑,试试安装 Linux,给旧硬件带来新的生命。 -------------------------------------------------------------------------------- @@ -69,7 +71,7 @@ via: https://opensource.com/article/22/6/linux-xfce-old-laptop 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[lightchaserhy](https://github.com/lightchaserhy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From da9d0b08551369ea5f9cd44f176d2c959d23cbd6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 20 Jun 2022 15:17:15 +0800 Subject: [PATCH 0036/3123] RP @geekpi https://linux.cn/article-14736-1.html --- ...anage Flatpak Permission Using Flatseal.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) rename {translated/tech => published}/20220610 Manage Flatpak Permission Using Flatseal.md (86%) diff --git a/translated/tech/20220610 Manage Flatpak Permission Using Flatseal.md b/published/20220610 Manage Flatpak Permission Using Flatseal.md similarity index 86% rename from translated/tech/20220610 Manage Flatpak Permission Using Flatseal.md rename to published/20220610 Manage Flatpak Permission Using Flatseal.md index c912410576..28207dbe14 100644 --- a/translated/tech/20220610 Manage Flatpak Permission Using Flatseal.md +++ b/published/20220610 Manage Flatpak Permission Using Flatseal.md @@ -3,13 +3,16 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14736-1.html" 使用 Flatseal 管理 Flatpak 的权限 ====== -了解如何使用 Flatseal 应用管理 Flatpak 权限,它为你提供了一个友好的 GUI 和额外的功能。 + +![](https://img.linux.net.cn/data/attachment/album/202206/20/151550qkrkpjw4f9dpjo50.jpg) + +> 了解如何使用 Flatseal 应用管理 Flatpak 权限,它为你提供了一个友好的 GUI 和额外的功能。 从新用户的角度来看,在 Linux 中安装应用可能是一个挑战。主要原因是有这么多的 [Linux 发行版][1]。而你需要为各种 Linux 发行版提供不同的安装方法或说明。对于一些用户来说,这可能会让他们不知所措。此外,对于开发者来说,为不同的发行版创建独立的软件包和构建也很困难。 @@ -39,7 +42,7 @@ Flatseal 是一个 Flatpak 应用,它为你提供了一个友好的用户界 当打开 Flatseal 应用时,它应该在左边的导航栏列出所有的 Flatpak 应用。而当你选择了一个应用,它就会在右边的主窗口中显示可用的权限设置。 -现在,对于每个 Flatpak 权限控制,当前值显示在切换开关中。如果该权限正在使用中,它应该被设置。否则,它应该是灰色的。 +现在,对于每个 Flatpak 权限控制,当前值显示在切换开关中。如果该权限正在使用中,它应该被启用。否则,它应该是灰色的。 首先,要设置权限,你必须进入你的系统的应用。然后,你可以从权限列表中启用或禁用任何各自的控制。 @@ -57,7 +60,7 @@ Flatseal 是一个 Flatpak 应用,它为你提供了一个友好的用户界 ![Figure 3: Telegram Desktop Flatpak App does not have permission to the home folders][4] -现在,如果我想允许所有的用户文件和任何特定的文件夹(例如:/home/Downloads),你可以通过打开启用开关来给予它。请看下面的图 4。 +现在,如果我想允许所有的用户文件和某个特定的文件夹(例如:`/home/Downloads`),你可以通过打开启用开关来给予它。请看下面的图 4。 ![Figure 4: Permission changed of Telegram Desktop to give access to folders][5] @@ -69,7 +72,7 @@ Flatseal 是一个 Flatpak 应用,它为你提供了一个友好的用户界 flatpak override org.telegram.desktop --filesystem=/home/Downloads ``` -而要删除: +而要删除权限: ``` flatpak override org.telegram.desktop --nofilesystem=/home/Downloads @@ -79,7 +82,7 @@ Flatseal 还有一个很酷的功能,它在用户特定的权限变化旁边 ### 我可以在所有的 Linux 发行版中安装 Flatseal 吗? -是的,你可以把 [Flatseal][6] 作为 Flatpak 安装在所有 Linux 发行版中。你可以使用[本指南][7]设置你的系统,并运行以下命令进行安装。或者,[点击这里][8]直接启动特定系统的安装程序。 +是的,你可以把 [Flatseal][6] 作为 Flatpak 安装在所有 Linux 发行版中。你可以使用 [本指南][7] 设置你的系统,并运行以下命令进行安装。或者,[点击这里][8] 直接启动特定系统的安装程序。 ``` flatpak install flathub com.github.tchx84.Flatseal @@ -96,7 +99,7 @@ via: https://www.debugpoint.com/2022/06/manage-flatpak-permission-flatseal/ 作者:[Arindam][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/) 荣誉推出 From 34de03b77c8700babce6bc9134c3c2c264a87678 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 17:58:30 +0800 Subject: [PATCH 0037/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220620=20How=20I=20use=20the=20attr=20command=20wi?= =?UTF-8?q?th=20my=20Linux=20filesystem.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e attr command with my Linux filesystem.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sources/tech/20220620 How I use the attr command with my Linux filesystem.md diff --git a/sources/tech/20220620 How I use the attr command with my Linux filesystem.md b/sources/tech/20220620 How I use the attr command with my Linux filesystem.md new file mode 100644 index 0000000000..423202bd81 --- /dev/null +++ b/sources/tech/20220620 How I use the attr command with my Linux filesystem.md @@ -0,0 +1,146 @@ +[#]: subject: "How I use the attr command with my Linux filesystem" +[#]: via: "https://opensource.com/article/22/6/linux-attr-command" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use the attr command with my Linux filesystem +====== +I use the open source XFS filesystem because of the subtle convenience of extended attributes. Extended attributes are a unique way to add context to my data. + +![Why the operating system matters even more in 2017][1] + +Image by: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0 + +The term *filesystem* is a fancy word to describe how your computer keeps track of all the files you create. Whether it's an office document, a configuration file, or thousands of digital photos, your computer has to store a lot of data in a way that's useful for both you and it. Filesystems like Ext4, XFS, JFS, BtrFS, and so on are the "languages" your computer uses to keep track of data. + +Your desktop or terminal can do a lot to help you find your data quickly. Your file manager might have, for instance, a filter function so you can quickly see just the image files in your home directory, or it might have a search function that can locate a file by its filename, and so on. These qualities are known as *file attributes* because they are exactly that: Attributes of the data object, defined by code in file headers and within the filesystem itself. Most filesystems record standard file attributes such as filename, file size, file type, time stamps for when it was created, and time stamps for when it was last visited. + +I use the open source XFS filesystem on my computers not for its reliability and high performance but for the subtle convenience of extended attributes. + +### Common file attributes + +When you save a file, data about it are saved along with it. Common attributes tell your operating system whether to update the access time, when to synchronize the data in the file back to disk, and other logistical details. Which attributes get saved depends on the capabilities and features of the underlying filesystem. + +In addition to standard file attributes (insofar as there are standard attributes), the XFS, Ext4, and BtrFS filesystems can all use extending filesystems. + +### Extended attributes + +XFS, Ext4, and BtrFS allow you to create your own arbitrary file attributes. Because you're making up attributes, there's nothing built into your operating system to utilize them, but I use them as "tags" for files in much the same way I use EXIF data on photos. Developers might choose to use extended attributes to develop custom capabilities in applications. + +There are two "namespaces" for attributes in XFS: **user** and **root**. When creating an attribute, you must add your attribute to one of these namespaces. To add an attribute to the **root** namespace, you must use the `sudo` command or be logged in as root. + +### Add an attribute + +You can add an attribute to a file on an XFS filesystem with the `attr` or `setfattr` commands. + +The `attr` command assumes the `user` namespace, so you only have to set (`-s` ) a name for your attribute followed by a value (`-V` ): + +``` +$ attr -s flavor -V vanilla example.txt +Attribute "flavor" set to a 7 byte value for example.txt: +vanilla +``` + +The `setfattr` command requires that you specify the target namespace: + +``` +$ setfattr --name user.flavor --value chocolate example.txt +``` + +### List extended file attributes + +Use the `attr` or `getfattr` commands to see extended attributes you've added to a file. The `attr` command defaults to the **user** namespace and uses the `-g` option to *get* extended attributes: + +``` +$ attr -g flavor example.txt +Attribute "flavor" had a 9 byte value for example.txt: +chocolate +``` + +The `getfattr` command requires the namespace and name of the attribute: + +``` +$ getfattr --name user.flavor example.txt +# file: example.txt +user.flavor="chocolate" +``` + +### List all extended attributes + +To see all extended attributes on a file, you can use `attr -l` : + +``` +$ attr -l example.txt +Attribute "md5sum" has a 32 byte value for example.txt +Attribute "flavor" has a 9 byte value for example.txt +``` + +Alternately, you can use `getfattr -d` : + +``` +$ getfattr -d example.txt +# file: example.txt +user.flavor="chocolate" +user.md5sum="969181e76237567018e14fe1448dfd11" +``` + +Any extended file attribute can be updated with `attr` or `setfattr`, just as if you were creating the attribute: + +``` +$ setfattr --name user.flavor --value strawberry example.txt + +$ getfattr -d example.txt +# file: example.txt +user.flavor="strawberry" +user.md5sum="969181e76237567018e14fe1448dfd11" +``` + +### Attributes on other filesystems + +The greatest risk when using extended attributes is forgetting that these attributes are specific to the filesystem they're on. That means when you copy a file from one drive or partition to another, the attributes are lost *even if the target filesystem supports extended attributes*. + +To avoid losing extended attributes, you must use a tool that supports retaining them, such as the `rsync` command. + +``` +$ rsync --archive --xattrs ~/example.txt /tmp/ +``` + +No matter what tool you use, if you transfer a file to a filesystem that doesn't know what to do with extended attributes, those attributes are dropped. + +### Search for attributes + +There aren't many mechanisms to interact with extended attributes, so the options for using the file attributes you've added are limited. I use extended attributes as a tagging mechanism, which allows me to associate files that have no obvious relation to one another. For instance, suppose I need a Creative Commons graphic for a project I'm working on. Assume I've had the foresight to add the extended attribute **license** to my collection of graphics. I could search my graphic folder with `find` and `getfattr` together: + +``` +find ~/Graphics/ -type f \ +-exec getfattr \ +--name user.license \ +-m cc-by-sa {} \; 2>/dev/null + +# file: /home/tux/Graphics/Linux/kde-eco-award.png +user.license="cc-by-sa" +user.md5sum="969181e76237567018e14fe1448dfd11" +``` + +### Secrets of your filesystem + +Filesystems aren't generally something you're meant to notice. They're literally systems for defining a file. It's not the most exciting task a computer performs, and it's not something users are supposed to have to be concerned with. But some filesystems give you some fun, and safe, special abilities, and extended file attributes are a good example. Its use may be limited, but extended attributes are a unique way to add context to your data. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/linux-attr-command + +作者:[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/yearbook-haff-rx-linux-file-lead_0.png From f1947f40d560eed6553f3a940717efa25b481f9d Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 18:00:09 +0800 Subject: [PATCH 0038/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220620=20What=20you=20need=20to=20know=20about=20s?= =?UTF-8?q?ite=20reliability=20engineering.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...know about site reliability engineering.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/tech/20220620 What you need to know about site reliability engineering.md diff --git a/sources/tech/20220620 What you need to know about site reliability engineering.md b/sources/tech/20220620 What you need to know about site reliability engineering.md new file mode 100644 index 0000000000..7f3fd4aab8 --- /dev/null +++ b/sources/tech/20220620 What you need to know about site reliability engineering.md @@ -0,0 +1,116 @@ +[#]: subject: "What you need to know about site reliability engineering" +[#]: via: "https://opensource.com/article/22/6/introduction-site-reliability-engineering" +[#]: author: "Robert Kimani https://opensource.com/users/robert-charles" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What you need to know about site reliability engineering +====== +Understand the basics and best practices for establishing and maintaining an SRE program in your organization. + +![Working on a team, busy worklife][1] + +Image by: opensource.com + +What is site reliability engineering? The creator of the first site reliability engineering (SRE) program, [Benjamin Treynor Sloss][2] at Google, described it this way: + +> Site reliability engineering is what happens when you ask a software engineer to design an operations team. + +What does that mean? Unlike traditional system administrators, site reliability engineers (SREs) apply solid software engineering principles to their day-to-day work. For laypeople, a clearer definition might be: + +> Site reliability engineering is the discipline of building and supporting modern production systems at scale. + +SREs are responsible for maximizing reliability, performance availability, latency, efficiency, monitoring, emergency response, change management, release planning, and capacity planning for both infrastructure and software. As applications and infrastructure grow more complex, SRE teams help ensure that these systems can evolve. + +### What does an SRE organization do? + +There are four primary responsibilities of an SRE organization: + +* Availability: SREs are responsible for the availability of the services they support. After all, if services are not available, end users' work is disrupted, which can cause serious damage to your organization's credibility. +* Performance: A service needs to be not only available but also highly performant. For example, how useful is a website that takes 20 seconds to move from one page to another? +* Incident management: SREs manage the response to unplanned disruptions that impact customers, such as outages, service degradation, or interruptions to business operations. +* Monitoring: A foundational requirement for every SRE, monitoring involves collecting, processing, aggregating, and displaying real-time quantitative data about a system. This could include query counts and types, error counts and types, processing times, and server lifetimes. + +Occasionally, release and capacity planning are also the responsibility of the SRE organization. + +### How do SREs maintain site reliability? + +The SRE role is a diverse one, with many responsibilities. An SRE must be able to identify an issue quickly, troubleshoot, and mitigate it with minimal disruption to operations. + +Here's a partial list of the tasks a typical SRE undertakes: + +* Writing code: An SRE is required to solve problems using software, whether they are a software engineer with an operations background or a system engineer with a development background. +* Being on call: This is not the most attractive part of being an SRE, but it is essential. +* Leading a war room: SREs facilitate discussions of strategy and execution during incident management. +* Performing postmortems: This is an excellent tool to learn from an incident and identify processes that can be put in place to avoid future incidents. +* Automating: SREs tend to get bored with manual steps. Automation not only saves time but reduces failures due to human errors. Spending some time on engineering by automating tasks can have a strong return on investment. +* Implement best practices: SREs are well versed with distributed systems and web-scale architectures. They apply best practices in several areas of service management. + +### Designing an effective on-call system + +An on-call management system streamlines the process of adding members of the SRE team into after-hours or weekend call schedules, assigning them equitable responsibility for managing alerts outside of traditional work hours or on holidays. In some cases, an organization might designate on-call SREs around the clock. + +In the medical profession, on-call doctors don't have to be on site, but they do have to be prepared to show up and deal with emergencies anytime during their on-call shift. SRE professionals likewise use on-call schedules to make sure that someone's always there to respond to major bugs, capacity issues, or product downtime. If they can't fix the problem on their own, they're also responsible for escalating the issue. For SRE teams who run services for which customers expect 24/7/365, 99.999% uptime and availability, on-call staffing is especially critical. + +There are two main kinds of [on-call design structures][4] that can be used when designing an on-call system, and they focus on domain expertise and ownership of a given service: + +* Single-team ownership model +* Shared ownership model + +In most cases, single-team ownership will be the better model. + +The on-call SRE has multiple duties: + +* Protecting production systems: The SRE on call serves as a guardian to all production services they are required to support. +* Responding to emergencies within acceptable time: Your organization may choose to have a service-level objective (SLO) for SRE response time. In most cases, anywhere between 5 to 15 minutes would be an acceptable response time. Automated monitoring and alerting solutions also empower SREs to respond immediately to any interruptions to service availability. +* Involving team members and escalating issues: The on-call SRE is responsible for identifying and calling in the right team members to address specific problems. +* Tackling non-emergent issues: In some organizations, a secondary on-call engineer is scheduled to handle non-emergencies, like email alerts. +* Writing postmortems: As noted above, a good postmortem is a valuable tool for documenting and learning from significant incidents. + +### 3 key tenets of an effective on-call management system + +#### A focus on engineering + +SREs should be spending more time designing solutions than applying band-aids. A general guideline is for SREs to spend 50% of their time in engineering work, such as writing code and automating tasks. When an SRE is on-call, time should be split between about 25% of time managing incidents and 25% on operations duty. + +#### Balanced workload + +Being on call can quickly burn out an engineer if there are too many tickets to handle. If well-coordinated multi-region support is possible, such as a US-based team and an Asia-Pacific team, that arrangement can help limit the detrimental health effects of repeated night shifts. Otherwise, having six to eight SREs per site will help avoid exhaustion. At the same time, make sure all SREs are getting a turn being on call at least once or twice a quarter to avoid getting out of touch with production systems. Fair compensation for on-call work during overnights or holidays, such as additional hours off or cash awards, will also help SREs feel that their extra effort is appreciated. + +#### Positive and safe environment + +Clearly defined escalation and blameless postmortem procedures are absolutely necessary for SREs to be effective and productive. Established protocols are central to a robust incident management system. Postmortems must focus on root causes and prevention rather than individual and team actions. If you don't have a clear postmortem procedure in your organization, it is wise to start one immediately. + +### SRE best practices + +This article covered some SRE basics and best practices for establishing and running an SRE on-call management system. + +In future articles, I will look at other categories of best practices for SRE, the technologies involved, and the processes to support those technologies. By the end of this series, you'll know how to implement SRE best practices for designing, implementing, and supporting production systems. + +### More resources + +* [Availability Calculator][5] +* [Error Budget Calculator][6] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/introduction-site-reliability-engineering + +作者:[Robert Kimani][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/robert-charles +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png +[2]: https://sre.google/sre-book/introduction/ +[3]: https://enterprisersproject.com/article/2022/2/8-reasons-site-reliability-engineer-one-most-demand-jobs-2022 +[4]: https://alexwitherspoon.com/publications/on-call-design/ +[5]: https://availability.sre.xyz/ +[6]: https://dastergon.gr/error-budget-calculator/ From 9d47a8c3d2ffe8a2a59b4f2d9392669357e05d00 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 18:00:54 +0800 Subject: [PATCH 0039/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220620=20Manjaro=2021.3.0=20-Ruah-=20Release=20Add?= =?UTF-8?q?s=20Latest=20Calmares=203.2,=20GNOME=2042,=20and=20More=20Upgra?= =?UTF-8?q?des.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lmares 3.2, GNOME 42, and More Upgrades.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md diff --git a/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md b/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md new file mode 100644 index 0000000000..416d775667 --- /dev/null +++ b/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md @@ -0,0 +1,91 @@ +[#]: subject: "Manjaro 21.3.0 ‘Ruah’ Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades" +[#]: via: "https://news.itsfoss.com/manjaro-21-3-0-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manjaro 21.3.0 ‘Ruah’ Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades +====== +Manjaro Linux 21.3.0 release packs in some of the latest and greatest updates, including an improved installer. + +![manjaro 21.3.0][1] + +Manjaro Linux is a rolling-release distribution. So, technically, you will be on the latest version if you regularly update your system. + +It should not be a big deal to upgrade to Manjaro 21.3.0, considering I am already running it without issues for a few days before the official announcement. + +**Also,**you might want to read my initial experience [switching to Manjaro from Ubuntu][2] (if you’re still on the fence). + +So, what does the Manjaro 21.3.0 upgrade introduce? + +### Manjaro 21.3.0: What’s New? + +![][3] + +The desktop environments upgraded to their latest stable versions while the core [Linux Kernel 5.15 LTS][4] remains. + +Also, this release includes the final Clamares v3.2 version. Let us take a look at the changes: + +#### Calamares v3.2.59 + +Calamares v3.2.59 installer is the final release of the 3.2 series with meaningful improvements. This time the partition module includes support for LUKS partitions and more refinements to avoid settings that can mess up the Manjaro installation. + +All the future releases for Calamares 3.2 will be bug fixes only. + +#### GNOME 42 + Libadwaita + +While the initial release included GNOME 42, now we have GNOME 42.2 available with the latest updates. + +Overall, you get all the goodies introduced with [GNOME 42][5], including the system-wide dark mode, a modern user interface based on GTK 4 for GNOME apps, upgraded applications, and several other significant changes. + +![][6] + +#### KDE Plasma 5.24 + +Unfortunately, the release couldn’t feature [KDE Plasma 5.25][7], considering it was released around the same week. + +[KDE Plasma 5.24][8] is a nice upgrade, with a refreshed theme and an overview effect. + +#### XFCE 4.16 + +With Xfce 4.16, the window manager received numerous updates and refinements to support fractional scaling and more capabilities. + +### Download Manjaro 21.3.0 + +As of now, I have no issues with Manjaro 21.3.0 GNOME edition. Everything looks good, and the upgrade went smoothly. + +However, you should always take backups if you do not want to re-install or lose your important files. + +You can download the latest version from [Manjaro’s download page][9]. The upgrade should be available through the pamac package manager. + +In either case, you can enter the following command in the terminal to upgrade: + +``` +sudo pacmane -Syu +``` + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/manjaro-21-3-0-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/06/manjaro-21-3-0-ruah-release.jpg +[2]: https://news.itsfoss.com/manjaro-linux-experience/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-gnome-42-2-1024x576.jpg +[4]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[5]: https://news.itsfoss.com/gnome-42-release/ +[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-21-3-neofetch.png +[7]: https://news.itsfoss.com/kde-plasma-5-25-release/ +[8]: https://news.itsfoss.com/kde-plasma-5-24-lts-release/ +[9]: https://manjaro.org/download/ From 07ef4d0dda314187b5c795bbff611cbed12478bc Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 18:02:22 +0800 Subject: [PATCH 0040/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220620=20Microsoft=20To=20Charge=20For=20Available?= =?UTF-8?q?=20Open=20Source=20Software=20In=20Microsoft=20Store.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Open Source Software In Microsoft Store.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md diff --git a/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md new file mode 100644 index 0000000000..2e3f4c72ed --- /dev/null +++ b/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md @@ -0,0 +1,39 @@ +[#]: subject: "Microsoft To Charge For Available Open Source Software In Microsoft Store" +[#]: via: "https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft To Charge For Available Open Source Software In Microsoft Store +====== +![microsoft][1] + +On June 16, 2022, Microsoft updated the Microsoft Store policies. One of the changes prohibits publishers from charging fees for open source or freely available software. Another example is the store’s use of irrationally high pricing. If you’ve been to the Microsoft Store in the last few years, you’ve probably noticed that it’s becoming more and more home to open source and free products. While this would be beneficial if the original developer had uploaded the apps and games to the store, it is not the case because the uploads were made by third parties. + +Worse, many of these programs are only available as paid applications rather than free downloads. In other words, Microsoft customers must pay to purchase a Store version of an app that is free elsewhere. In the Store, free and paid versions coexist at times. Paying for a free app is bad enough, but this isn’t the only problem that users may encounter when they make the purchase. Updates may also be a concern, as copycat programs may not be updated as frequently or as quickly as the source applications. + +In the updated Microsoft Store Policies, Microsoft notes under 10.8.7: + +In cases where you determine the pricing for your product or in-app purchases, all pricing for your digital products or services, including sales or discounts, must: + +Comply with all applicable laws, regulations, and regulatory guidelines, including the Federal Trade Commission’s Guides Against Deceptive Pricing. You must not attempt to profit from open-source or other software that is otherwise freely available, nor should your product be priced irrationally high in comparison to the features and functionality it provides. + +The new policies are confirmed in the updated section. Open source and free products may no longer be sold on the Microsoft Store if they are generally available for free, and publishers may no longer charge irrationally high prices for their products. Developers of open source and free applications may charge for their products on the Microsoft Store; for example, the developer of Paint.net does so. Many applications will be removed from the Store if Microsoft enforces the policies. Developers could previously report applications to Microsoft, but the new policies give Microsoft direct control over application listings and submissions. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/ + +作者:[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/06/microsoft-e1655714723942.jpg From c5f6b423c27dd6b9deed43d9672ad3b066753924 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 18:04:22 +0800 Subject: [PATCH 0041/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220620=20Are=20Low-Code=20Platforms=20Helpful=20fo?= =?UTF-8?q?r=20Professional=20Developers-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ms Helpful for Professional Developers-.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 sources/tech/20220620 Are Low-Code Platforms Helpful for Professional Developers-.md diff --git a/sources/tech/20220620 Are Low-Code Platforms Helpful for Professional Developers-.md b/sources/tech/20220620 Are Low-Code Platforms Helpful for Professional Developers-.md new file mode 100644 index 0000000000..54c4c3f503 --- /dev/null +++ b/sources/tech/20220620 Are Low-Code Platforms Helpful for Professional Developers-.md @@ -0,0 +1,150 @@ +[#]: subject: "Are Low-Code Platforms Helpful for Professional Developers?" +[#]: via: "https://www.opensourceforu.com/2022/06/are-low-code-platforms-helpful-for-professional-developers/" +[#]: author: "Radhakrishna Singuru https://www.opensourceforu.com/author/radhakrishna-singuru/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Are Low-Code Platforms Helpful for Professional Developers? +====== +Over the years, low-code platforms have matured immensely, and are being used in varied domains of software development for better productivity and quality. This article explores the possibility of leveraging low-code platforms for complex product development by professional developers. + +![Low-Code-platfroms-developers][1] + +In the last several years, companies have invested a lot of time and energy in innovating and improving the overall process of software product development. Agile working methods have helped in making the process of product development a lot smoother. However, developers still face the challenge of meeting ever expanding customer requirements quickly and easily. + +In order to meet these requirements in totality, developers need tools and platforms that can enable quick delivery of software by reducing the coding timelines and without compromising on the quality aspects. + +No-code platforms are one set of tools that enable creation of application or product software with zero coding. These use a ‘lego building blocks’ approach that eliminates the need for hand coding and focuses on just configuration of functions based on graphical modelling experiences. These tools are more relevant to a class of business users called citizen developers, who can use them to optimise a specific process or a function by developing their own applications. + +Contrary to no-code platforms, low-code platforms do not try to eliminate the need for coding. Instead, they aim to make development of software easier than the traditional method of hard coding each line of a program or software. This approach minimises hard coding with prepackaged templates, graphic design techniques, and drag-and-drop tools to make software. + +The focus of this article is on general-purpose low-code platforms that can be used by professional developers to build enterprise grade applications or products. + +### Different types of low-code platforms + +Low-code platforms cater to different use cases. Depending on the intended usage or purpose, these can be classified as follows. + +* General-purpose: These platforms can create virtually any type of product or application. With a general-purpose platform, users can build software that serves a wide variety of needs and can be deployed on cloud or on-premise. +* Process: These platforms focus specifically on software that runs business processes such as forms, workflows or integrations with other systems. +* Request handling: Request handling low-code platforms are similar to process-based low code, but are less capable. They can only handle processing requests for fixed processes. +* Database: Database low-code platforms are useful if users have large amounts of data that needs to feed into a system, without spending a lot of time on the task. +* Mobile application development platform (MADP): These platforms help developers code, test, and launch mobile applications for smartphones and tablets. + +#### Key features of generic low-code platforms + +* General-purpose enterprise low-code development platforms support rapid software development, deployment, execution and management using declarative, high-level programming abstractions such as model-driven and metadata-based programming languages, and one-click deployments. + +The key features supported by general-purpose low code platforms are as follows. + +* Visual modelling: These platforms have a comprehensive visual modelling capability, including business processes, integration workflows, UIs, business logic, data models, Web services, and APIs. +* Databases: Support for a visual editor, Excel sheet import or use of existing data models from a different database. +* Pre-built templates: Support a variety of pre-built templates that can serve as a starting point to get an application up and running quickly. Using a well designed and tested template not only increases productivity but also helps in building a more reliable and secure application. +* Integration: Provide easy integration with external enterprise systems, databases, and custom apps. +* Security and scalability: The right low-code platform makes it easy to create enterprise grade software that is secure and scalable. +* Metrics: Support for gathering metrics and monitoring the software. +* Life cycle management: Support for version management and ticket management, as well as Agile or scrum tools. +* Reusability: The code generated is reusable and can integrate easily with general-purpose IDEs, with multi-platform support for testing and staging. +* Deployment options: Ability to deploy on public or private clouds with support for container images. Also support preview functionality before publishing to the cloud. +* Licensing: Flexible licensing models with no vendor lock-in. +* Others: The platforms include other services, such as project management and analytics. + +### Generic low-code platforms for professional developers + +The main objective of a generic low-code platform is to help reduce the time spent by a developer working on a product as compared to traditional hand coding. Using visual interfaces, drag-and-drop modules, and more, these low-code platforms reduce the manual effort of coding largely, but will need some coding requirements for completely building a product. + +Generic low-code platforms cannot be directly used to build low-level products like in-memory grids, Big Data processing algorithms, image recognition, etc. However, over the years they have evolved a lot to cover the widest range of capabilities for enterprise-grade development and full life cycle management, including business process management (BPM), integration workflows, UIs, business logic, data models, Web services, and APIs. They enable high-productivity development and a faster time to market for all types of developers. They also help create applications of any complexity including enterprise applications with generic architectures and complex backends, using microservices and service bus. + +![Figure 1: Important use cases of low code][2] + +Figure 1 illustrates some of the key use cases that have been influenced positively in terms of productivity, scale and quality by leveraging low-code platforms. + +*Enable cross-functional team collaboration:* Any product development needs a combination of business or functional experts as well as professional developers. Low-code platforms provide features that are relevant to a business user as well as professional developer. Cross-functional teams can leverage these platforms to turn great business ideas into readily deployable products much faster. + +*Rapid digital transformation of existing product suites:* By leveraging client and server-side APIs of the platform, developers will be able to build, package and distribute new functionalities, such as connectors to external services like machine learning and AI. Low-code platforms enable developers to push beyond the boundaries of the core platform to build better solutions faster by extending the native features of the platform with some code. + +*Help meet sudden spikes in demand:* Automated code generation combined with the one-click deployment option of low-code platforms helps in quicker product customisations, as well as building product variants and burning backlog of features faster. + +*Help build MVPs at a rapid rate:* The end-to-end development and operational tools in low-code platforms provide a cohesive ecosystem that allows an enterprise to rapidly bring products to life and manage the entire SDLC process. They are used to build quick MVPs or PoCs for technology, frameworks, and architecture or for feature evaluation. + +| Evaluation criteria | Description | +| :- | :- | +| Functional features | Productivity, UI flexibility, ease of use | +| Cloud and containerisation | Capability to utilise popular cloud providers services like serverless, AI/ML, blockchain, etc | +| CI/CD integration | Out-of-the-box support for automation and CI/CD toolchain | +| Integration capabilities | REST and cloud app support, ability to connect to different SQL and NoSQL databases | +| Performance | Parallel and batch execution with support for elastic scalability | +| Security | Enable security by design: security tools, development methods, and governance tooling | +| Language support | Support for popular languages like Java, .NET, Python, etc | +| Development methodologies | Support standard Agile development methodologies like Scrum, XP, Kanban, etc | +| Extensibility | Ability to extend features of existing applications | +| Others | Platform support, learning curve, documentation, etc | + +*Support cloud scale architecture and design:* Low-code platforms provide flexible microservices integration options (custom, data, UI, infra) to support building next-gen low-code products with multi-cloud deployment options. They are able to scale and handle thousands of users and millions of data sets. + +![Figure 2: Benefits of low-code platforms][3] + +**Pros and cons of low-code platforms** +The primary advantage of low-code software development is speed (months to weeks). On an average, there is six to ten times productivity improvement using a low-code platform over traditional hand coding approaches to software development. + +Figure 2 lists some of the key benefits of low-code platforms. + +* Better software, lower maintenance: Low-code platforms standardise the development approach and reduce the complexity as well as the error rate of the source code. +* Cross-team collaboration: Team members with different skills and capabilities can collaborate to realise the final product faster. +* Enable Agile software development: They offer the team members a consistent product that begins as a single screen, and grows from sprint to sprint as the full product takes shape. +* Faster legacy app modernisation: Enable faster UI generation based on the existing data model, reuse of the logic from legacy databases and smart transfer of existing screens/persistence layers. +* Low risk and high RoI: Due to shorter development cycles, the risk of undertaking a new project is low, and there is a good chance of getting high returns. +* Scaling through multiple components: Allow use of a common platform to develop multiple services. +* Easy maintenance: The software can be easily updated, fixed and changed according to customer requirements. + +In the last few years, low-code platforms have evolved a lot in terms of functionality and applicability. However, they still have some limitations when being used fully for any generic product development, some of which are listed below. + +*Low-level product development:* Cannot be used for building products like in-memory grids, Big Data processing algorithms, image recognition, etc. + +*Custom architectures and services:* Have limited use in enterprise software with unique architecture, microservices, custom back-ends, unique enterprise service bus, etc. + +*Source code control:* These platforms totally lose control over the code base; it’s difficult to debug and handle edge conditions where the tool does not do the right thing automatically. + +*Limited integration:* Custom integration with legacy systems needs some significant coding. + +*Security and reliability:* These platforms are vulnerable to security breaches, because if the low-code platform gets hacked, it can immediately make the product built on it also vulnerable. + +*Customisation:* Custom CSS, custom integration, advanced client-side functionality, etc, will require a good amount of coding. + +#### Popular generic low-code platforms + +While there are many low-code platforms available in the market, one should leverage the evaluation criteria given in Table 1 before choosing the right one relevant to the business. +Table 2 lists the highly popular generic low-code platforms, both proprietary and open source. +Gartner predicts that by 2024, 65 per cent of application development projects will rely on low-code development. + +| Low-code platform | Description | Type | +| :- | :- | :- | +| Mendix | This is designed to accelerate enterprise app delivery across the entire application development life cycle, from ideation to development, deployment, and maintenance on cloud or on-premise. | Proprietary | +| OutSystems | This platform provides tools to develop, deploy and manage omni-channel enterprise applications. It addresses the full spectrum of enterprise use cases for mobile, Web and core systems. | Proprietary | +| Appian | An enterprise grade platform that combines the key capabilities needed to get work done faster using AI, RPA, decision rules, and workflow on a single low-code platform. | Proprietary | +| Budibase | Helps in building business applications. Supports multiple external data sources, and comes with prebuilt layouts, user auth, and a data provider component. Supports JavaScript for integrations. | Open source | +| WordPress | Powers more than 41 per cent of the Web — from simple blogs to enterprise websites. With over 54,000 plugins, the level of customisation without writing code is incredible. | Open source | +| Node-RED | Helps to build event-driven IoT applications. A programming tool for wiring together hardware devices, APIs, and online services. | Open source | + +Will low-code development replace traditional engineering completely? This is unlikely in the near future, but it will definitely help to significantly improve developers’ productivity and bring quality products to market faster. It can bridge the talent gap in the mid-term by arming non-technical people with tools to build, whilst alleviating some of the product backlog for maxed out professional engineering teams Low-code platforms can address critical issues like the high demand for new enterprise software, the need to modernise aging legacy systems and the shortage of full-stack engineers. The choice of when and how much to use a low-code platform depends on the range of applicability, development speed, manageability and flexibility for performance limitations. + +However, if there is a need to develop a product that is high quality and unique while being specific to business requirements, custom product development may be a better option. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/are-low-code-platforms-helpful-for-professional-developers/ + +作者:[Radhakrishna Singuru][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/radhakrishna-singuru/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Low-Code-platfroms-developers.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-Important-use-cases-of-low-code.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Benefits-of-low-code-platforms.jpg From b82ec795f45f678f119d9eb9985ae2106d9684d1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 22:11:31 +0800 Subject: [PATCH 0042/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]:=2020211102=20Apache=20Kafka-=20Asynchronous=20Messagin?= =?UTF-8?q?g=20for=20Seamless=20Systems.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...chronous Messaging for Seamless Systems.md | 299 ----------------- ...chronous Messaging for Seamless Systems.md | 301 ++++++++++++++++++ 2 files changed, 301 insertions(+), 299 deletions(-) delete mode 100644 sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md create mode 100644 translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md diff --git a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md deleted file mode 100644 index 258121b7a6..0000000000 --- a/sources/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md +++ /dev/null @@ -1,299 +0,0 @@ -[#]: subject: "Apache Kafka: Asynchronous Messaging for Seamless Systems" -[#]: via: "https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/" -[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Apache Kafka: Asynchronous Messaging for Seamless Systems -====== -Apache Kafka is one of the most popular open source message brokers. Found in almost all microservices environments, it has become an important component of Big Data manipulation. This article gives a brief description of Apache Kafka, followed by a case study that demonstrates how it is used. - -![Digital-backgrund-connecting-in-globe][1] - -Have you ever wondered how e-commerce platforms are able to handle immense traffic without getting stuck? Ever thought about how OTT platforms are able to deliver content to millions of users, smoothly and simultaneously? The key lies in their distributed architecture. - -A system designed around distributed architecture is made up of multiple functional components. These components are usually spread across several machines, which collaborate with each other by exchanging messages asynchronously over a network. Asynchronous messaging is what enables scalable, non-blocking communication among components, thereby allowing smooth functioning of the overall system. - -### Asynchronous messaging - -The common features of asynchronous messaging are: - -* The producers and consumers of the messages are not aware of each other. They join and leave the system without the knowledge of the others. -* A message broker acts as the intermediary between the producers and consumers. -* The producers associate each of the messages with a type, known as topic. A topic is just a simple string. -* It is possible that producers send messages on multiple topics, and multiple producers send messages on the same topic. -* The consumers register with the broker for messages on one or more topics. -* The producers send the messages only to the broker, and not to the consumers. -* The broker, in turn, delivers the messages to all the consumers that are registered against the topic. -* The producers do not expect any response from the consumers. In other words, the producers and consumers do not block each other. - -There are several message brokers available in the market, and Apache Kafka is one of the most popular among them. - -### Apache Kafka - -Apache Kafka is an open source distributed messaging system with streaming capabilities, developed by the Apache Software Foundation. Architecturally, it is a cluster of several brokers that are coordinated by the Apache Zookeeper service. These brokers share the load on the cluster while receiving, persisting, and delivering the messages. - -#### Partitions - -Kafka writes messages into buckets known as partitions. A given partition holds messages only on one topic. For example, Kafka writes messages on the topic heartbeats into the partition named *heartbeats-0*, irrespective of the producer of the messages. - -![Figure 1: Asynchronous messaging][2] - -However, in order to leverage the cluster-wide parallel processing capabilities of Kafka, administrators often create more than one partition for a given topic. For instance, if the administrator creates three partitions for the topic heartbeats, Kafka names them as *heartbeats-0, heartbeats-1,* and *heartbeats-2.* Kafka writes the heartbeat messages across all the three partitions in such a way that the load is evenly distributed. - -There is yet another possible scenario in which the producers associate each of the messages with a key. For example, a component uses C1 as the key while another component uses C2 as the key for the messages that they produce on the topic heartbeats. In this scenario, Kafka makes sure that the messages on a topic with a specific key are always found only in one partition. However, it is quite possible that a given partition may hold messages with different keys. Figure 2 presents a possible message distribution among the partitions. - -![Figure 2: Message distribution among the partitions][3] - -#### Leaders and ISRs - -Kafka maintains several partitions across the cluster. The broker on which a partition is maintained is called the leader for the specific partition. Only the leader receives and serves the messages from its partitions. - -But what happens to a partition if its leader crashes? To ensure business continuity, every leader replicates its partitions on other brokers. The latter act as the in-sync-replicas (ISRs) for the partition. In case the leader of a partition crashes, Zookeeper conducts an election and names an ISR as the new leader. Thereafter, the new leader takes the responsibility of writing and serving the messages for that partition. Administrators can choose how many ISRs are to be maintained for a topic. - -![Figure 3: Command-line producer][4] - -#### Message persistence - -The brokers map each of the partitions to a specific file on the disk, for persistence. By default, they keep the messages for a week on the disk! The messages and their order cannot be altered once they are written to a partition. Administrators can configure policies like message retention, compaction, etc. - -![Figure 4: Command-line consumer][5] - -#### Consuming the messages - -Unlike most other messaging systems, Apache Kafka does not actively deliver the messages to its consumers. Instead, it is the responsibility of the consumers to listen to the topics and read the messages. A consumer can read messages from more than one partition of a topic. And it is also possible that multiple consumers read messages from a given partition. Kafka guarantees that no message is read more than once by a given consumer. - -Kafka also expects that every consumer is identified with a group ID. Consumers with the same group ID form a group. Typically, in order to read messages from N number of topic partitions, an administrator creates a group with N number of consumers. This way, each consumer of the group reads messages from its designated partition. If the group consists of more consumers than the available partitions, the excess consumers remain idle. - -In any case, Apache Kafka guarantees that a message is read only once at the group level, irrespective of the number of consumers in the group. This architecture gives consistency, high-performance, high scalability, near-real-time delivery, and message persistence along with zero-message loss. - -### Installing and running Kafka - -Although, in theory, the Apache Kafka cluster can consist of any number of brokers, most of the clusters in production environments usually consist of three or five of these. -Here, we will set up a single-broker cluster that is good enough for the development environment. - -Download the latest version of Kafka from *https://kafka.apache.org/downloads* using a browser. It can also be downloaded with the following command, on a Linux terminal: - -``` -wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.8.0/kafka_2.12-2.8.0.tgz -``` - -We can move the downloaded archive *file kafka_2.12-2.8.0.tgz* to some other folder, if needed. Extracting the archive creates a folder by the name *kafka_2.12-2.8.0*, which will be referred to as *KAFKA_HOME* hereafter. - -Open the file server.properties under the *KAFKA_HOME/config* folder and uncomment the line with the following entry: - -``` -listeners=PLAINTEXT://:9092 -``` - -This configuration enables Apache Kafka to receive plain text messages on port 9092, on the local machine. Kafka can also be configured to receive messages over a secure channel as well, which is recommended in the production environments. - -Irrespective of the number of brokers, Apache Zookeeper is required for broker management and coordination. This is true even in the case of single-broker clusters. Since Zookeeper is already bundled with Kafka, we can start it with the following command from *KAFKA_HOME*, on a terminal: - -``` -./bin/zookeeper-server-start.sh ./config/zookeeper.properties -``` - -Once Zookeeper starts running, Kafka can be started in another terminal, with the following command: - -``` -./bin/kafka-server-start.sh ./config/server.properties -``` - -With this, a single-broker Kafka cluster is up and running. - -### Verifying Kafka - -Let us publish and receive messages on the topic topic-1. A topic can be created with a chosen number of partitions with the following command: - -``` -./bin/kafka-topics.sh --create --topic topic-1 --zookeeper localhost:2181 --partitions 3 --replication-factor 1 -``` - -The above command also specifies the replication factor, which should be less than or equal to the number of brokers in the cluster. Since we are working on a single-broker cluster, the replication factor is set to one. - -Once the topic is created, producers and consumers can exchange messages on that topic. The Kafka distribution includes a producer and a consumer for test purposes. Both of these are command-line tools. - -To invoke the producer, open the third terminal and run the following command: - -``` -./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-1 -``` - -This command displays a prompt at which we can key in simple text messages. Because of the given options on the command, the producer sends the messages on *topic-1* to the Kafka that is running on port 9092 on the local machine. - -Open the fourth terminal and run the following command to start the consumer tool: - -``` -./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-1 –from-beginning -``` - -This command starts the consumer that connects to the Kafka on port number 9092 on the local machine. It registers for reading the messages on topic-1. Because of the last option on the command line, the consumer receives all the messages on the chosen topic from the beginning. - -Since the producer and consumer are connecting to the same broker and referring the same topic, the consumer receives and displays the messages on its terminal. - -Now, let’s use Kafka in the context of a practical application. - -### Case study - -ABC is a hypothetical bus transport company, which has a fleet of passenger buses that ply between different cities across the country. Since ABC wants to track each bus in real-time for improving the quality of its operations, it comes up with a solution around Apache Kafka. - -ABC first equips all its buses with devices to track their location. An operations centre is set up with Apache Kafka, to receive the location updates from each of the hundreds of buses. A dashboard is developed to display the current status of all the buses at any point in time. Figure 5 represents this architecture. - -![Figure 5: Kafka based architecture][6] - -In this architecture, the devices on the buses act as the message producers. They send their current location to Kafka on the topic *abc-bus-location*, periodically. For processing the messages from different buses, ABC chooses to use the trip code as the key. For example, if the bus from Bengaluru to Hubballi runs with the trip code*BLRHBL003*, then *BLRHBL003* becomes the key for all the messages from that specific bus during that specific trip. - -The dashboard application acts as the message consumer. It registers with the broker against the same topic *abc-bus-location*. Consequently, the topic becomes the virtual channel between the producers (buses) and the consumer (dashboard). - -The devices on the buses never expect any response from the dashboard application. In fact, none of them is even aware of the presence of the others. This architecture enables non-blocking communication between hundreds of buses and the central office. - -#### Implementation - -Let’s assume that ABC wants to create three partitions for maintaining the location updates. Since the development environment has only one broker, the replication factor should be set to one. - -The following command creates the topic accordingly: - -``` -./bin/kafka-topics.sh --create --topic abc-bus-location --zookeeper localhost:2181 --partitions 3 --replication-factor 1 -``` - -The producer and consumer applications can be written in multiple languages like Java, Scala, Python, JavaScript, and a host of others. The code in the following sections provides a peek into the way they are written in Java. - -##### Java producer - -The Fleet class simulates the Kafka producer applications running on six buses of ABC. It sends location updates on *abc-bus-location* to the specified broker. Please note that the topic name, message keys, message body, and broker address are hard-coded only for simplicity. - -``` -public class Fleet { - public static void main(String[] args) throws Exception { - String broker = “localhost:9092”; - Properties props = new Properties(); - props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); - props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, - StringSerializer.class.getName()); - props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, - StringSerializer.class.getName()); - - Producer producer = new KafkaProducer(props); - String topic = “abc-bus-location”; - Map locations = new HashMap<>(); - locations.put(“BLRHBL001”, “13.071362, 77.461906”); - locations.put(“BLRHBL002”, “14.399654, 76.045834”); - locations.put(“BLRHBL003”, “15.183959, 75.137622”); - locations.put(“BLRHBL004”, “13.659576, 76.944675”); - locations.put(“BLRHBL005”, “12.981337, 77.596181”); - locations.put(“BLRHBL006”, “13.024843, 77.546983”); - - IntStream.range(0, 10).forEach(i -> { - for (String trip : locations.keySet()) { - ProducerRecord record - = new ProducerRecord( - topic, trip, locations.get(trip)); - producer.send(record); - } - }); - producer.flush(); - producer.close(); - } -} -``` - -##### Java consumer - -The Dashboard class implements the Kafka consumer application and it runs at the ABC Operations Centre. It listens to *abc-bus-location* with the group ID *abc-dashboard* and displays the location details from different buses as soon as messages are available. Here, too, many details are hard coded which are otherwise supposed to be configured: - -``` -public static void main(String[] args) { - String broker = “127.0.0.1:9092”; - String groupId = “abc-dashboard”; - Properties props = new Properties(); - props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); - props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, - StringDeserializer.class.getName()); - props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, - StringDeserializer.class.getName()); - props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, groupId); - - @SuppressWarnings(“resource”) - Consumer consumer = new KafkaConsumer(props); - consumer.subscribe(Arrays.asList(“abc-bus-location”)); - while (true) { - ConsumerRecords records - = consumer.poll(Duration.ofMillis(1000)); - - for (ConsumerRecord record : records) { - String topic = record.topic(); - int partition = record.partition(); - String key = record.key(); - String value = record.value(); - System.out.println(String.format( - “Topic=%s, Partition=%d, Key=%s, Value=%s”, - topic, partition, key, value)); - } - } -} -``` - -##### Dependencies - -A JDK of 8+ version is required to compile and run this code. The following Maven dependencies in the *pom.xml* download and add the required Kafka client libraries to the classpath: - -``` - - org.apache.kafka - kafka-clients - 2.8.0 - - - org.slf4j - slf4j-simple - 1.7.25 - -``` - -#### Deployment - -As the topic *abc-bus-location* is created with three partitions, it makes sense to run three consumers to read the location updates quickly. For that, run the Dashboard in three different terminals simultaneously. Since all the three instances of Dashboard register with the same group ID, they form a group. Kafka attaches each Dashboard instance with a specific partition. - -Once the Dashboard instances are up and running, start the *Fleet* on a different terminal. Figure 6, Figure 7, and Figure 8 are sample console messages on the Dashboard terminals. - -![Figure 6: Dashboard Terminal – 1][7] - -A closer look at the console messages reveals that the consumers on the first, second and third terminals are reading messages from *partition-2, partition-1,* and *partition-0,* in that order. Also, it can be observed that the messages with the keys BLRHBL002, *BLRHBL004* and *BLRHBL006* are written into *partition-2*, the messages with the key *BLRHBL005* are written into *partition-1*, and the remaining are written into *partition-0*. - -![Figure 7: Dashboard Terminal – 2][8] - -The good thing about Kafka is that it can be scaled horizontally to support a large number of buses and millions of messages as long as the cluster is designed appropriately. - -![Figure 8: Dashboard Terminal – 3][9] - -### Beyond messaging - -More than 80 per cent of the Fortune 100 companies are using Kafka, according to its website. It is deployed across many industry verticals like financial services, entertainment, etc. Though Apache Kafka started its journey as a simple messaging service, it has propelled itself into the Big Data ecosystem with industry-level stream processing capabilities. For the enterprises that prefer a managed solution, Confluent offers a cloud based Apache Kafka service for a subscription fee. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/ - -作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Digital-backgrund-connecting-in-globe.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-1-Asynchronous-messaging.jpg -[3]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-2-Message-distribution-among-the-partitions.jpg -[4]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-3-Command-line-producer.jpg -[5]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-4-Command-line-consumer.jpg -[6]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-5-Kafka-based-architecture.jpg -[7]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-6-Dashboard-Terminal-1.jpg -[8]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-7-Dashboard-Terminal-2.jpg -[9]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-8-Dashboard-Terminal-3.jpg diff --git a/translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md new file mode 100644 index 0000000000..e61f4f1829 --- /dev/null +++ b/translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md @@ -0,0 +1,301 @@ +[#]: subject: "Apache Kafka: Asynchronous Messaging for Seamless Systems" +[#]: via: "https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Apache Kafka:为“无缝系统”提供异步消息支持 +====== +Apache Kafka 是最流行的开源消息代理之一。它已经成为了大数据操作的重要组成部分,你能够在几乎所有的微服务环境中找到它。本文对 Apache Kafka 进行了简要介绍,并提供了一个案例来展示它的使用方式。 + +![][1] + +你有没有想过,电子商务平台是如何在处理巨大的流量时,做到不会卡顿的呢?有没有想过,OTT 平台是如何在同时向数百万用户交付内容时,做到平稳运行的呢?其实,关键就在于它们的分布式架构。 + +采用分布式架构设计的系统由多个功能组件组成。这些功能组件通常分布在许多个机器上,它们通过网络,异步地交换消息,从而实现相互协作。正是由于异步消息的存在,组件之间才能实现可伸缩、无阻塞的通信,整个系统才能够平稳运行。 + +### 异步消息 + +异步消息的常见特性有: + +* 消息的生产者和消费者都不知道彼此的存在。它们在不知道其他对象的情况下,加入和离开系统。 +* 消息代理充当了生产者和消费者之间的中介。 +* 生产者把每条消息,都与一个“主题”topic相关联。每个主题只是一个简单的字符串。 +* 一个生产者可以把消息发往多个主题,不同生产者也可以把消息发送给同一主题。 +* 消费者向代理订阅一个或多个主题的消息。 +* 生产者只将消息发送给代理,而不发送给消费者。 +* 代理会把消息发送给订阅该主题的所有消费者。 +* 生产者并不期望得到消费者的任何回应。换句话说,生产者和消费者不会相互阻塞。 + +市场上的消息代理有很多,而 Apache Kafka 是其中最受欢迎的一种(之一)。 + +### Apache Kafka + +Apache Kafka 是一个支持流处理的、开源的分布式消息系统,它由 Apache 软件基金会开发。在架构上,它是多个代理组成的集群,这些代理间通过 Apache ZooKeeper 服务来协调。在接收、持久化和发送消息时,这些代理共享集群上的负载。 + +#### 分区 + +Kafka 将消息写入称为“分区”partitions的桶中。一个特定分区只保存一个主题上的消息。例如,Kafka 会把 `heartbeats` 主题上的消息写入名为 “heartbeats-0” 的分区(假设它是个单分区主题),这个过程和生产者无关。 + +![图 1:异步消息][2] + +不过,为了利用 Kafka 集群所提供的并行处理能力,管理员通常会为指定主题创建多个分区。举个例子,假设管理员为 `heartbeats` 主题创建了三个分区,Kafka 会将它们分别命名为 `heartbeats-0`、`heartbeats-1` 和 `heartbeats-2`。Kafka 会以某种方式,把消息分配到这三个分区中,并使它们均匀分布。 + +还有另一种可能的情况,生产者将每条消息与一个消息键key相关联。例如,同样都是在 `heartbeats` 主题上发送消息,有个组件使用 `C1` 作为消息键,另一个则使用 `C2`。在这种情况下,Kafka 会确保,在一个主题中,带有相同消息键的消息,总是会被写入到同一个分区。不过,在一个分区中,消息的消息键却不一定相同。下面的图 2 显示了消息在不同分区中的一种可能分布。 + +![图 2:消息在不同分区中的分布][3] + +#### 领导者和同步副本 + +Kafka 在(由多个代理组成的)集群中维护了多个分区。其中,负责维护分区的那个代理被称为“领导者”leader。只有领导者能够在它的分区上接收和发送消息。 + +可是,万一分区的领导者发生故障了,又该怎么办呢?为了确保业务连续性,每个领导者(代理)都会把它的分区复制到其他代理上。此时,这些其他代理就称为该分区的同步副本in-sync-replicas(ISR)。一旦分区的领导者发生故障,ZooKeeper 就会发起一次选举,把选中的那个同步副本任命为新的领导者。此后,这个新的领导者将承担该分区的消息接受和发送任务。管理员可以指定分区需要维护的同步副本的大小。 + +![图 3:命令行生产者][4] + +#### 消息持久化 + +代理会将每个分区都映射到一个指定的磁盘文件,从而实现持久化。默认情况下,消息会在磁盘上保留一个星期。当消息写入分区后,它们的内容和顺序就不能更改了。管理员可以配置一些策略,如消息的保留时长、压缩算法等。 + +![图 4:命令行消费者][5] + +#### 消费消息 + +与大多数其他消息系统不同,Kafka 不会主动将消息发送给消费者。相反,消费者应该监听主题,并主动读取消息。一个消费者可以某个主题的多个分区中读取消息。多个消费者也可以读取来自同一个分区的消息。Kafka 保证了同一条消息不会被同一个消费者重复读取。 + +Kafka 中的每个消费者都有一个组 ID。那些组 ID 相同的消费者们共同组成了一个消费者组。通常,为了从 N 个主题分区读取消息,管理员会创建一个包含 N 个消费者的消费者组。这样一来,组内的每个消费者都可以从它的指定分区中读取消息。如果组内的消费者比可用分区还要多,那么多出来的消费者就会处于闲置状态。 + +在任何情况下,Kafka 都保证:不管组内有多少个消费者,同一条消息只会被该消费者组读取一次。这个架构提供了一致性、高性能、高可扩展性、准实时交付和消息持久性,以及零消息丢失。 + +### 安装、运行 Kafka + +尽管在理论上,Kafka 集群可以由任意数量的代理组成,但在生产环境中,大多数集群通常由三个或五个代理组成。 + +在这里,我们将搭建一个单代理集群,对于生产环境来说,它已经够用了。 + +在浏览器中访问 [https://kafka.apache.org/downloads][5a],下载 Kafka 的最新版本。在 Linux 终端中,我们也可以使用下面的命令来下载它: + +``` +wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.8.0/kafka_2.12-2.8.0.tgz +``` + +如果需要的话,我们也可以把下载来的档案文件 `kafka_2.12-2.8.0.tgz` 移动到另一个目录下。解压这个档案,你会得到一个名为 `kafka_2.12-2.8.0` 的目录,它就是之后我们要设置的 `KAFKA_HOME`。 + +打开 `KAFKA_HOME/config` 目录下的 `server.properties` 文件,取消注释下面这一行配置: + +``` +listeners=PLAINTEXT://:9092 +``` + +这行配置的作用是让 Kafka 在本机的 `9092` 端口接收普通文本消息。我们也可以配置 Kafka 通过安全通道secure channel接收消息,在生产环境中,我们也推荐这么做。 + +无论集群中有多少个代理,Kafka 都需要 ZooKeeper 来管理和协调它们。即使是单代理集群,也是如此。Kafka 在安装时,会附带安装 ZooKeeper,因此,我们可以在 `KAFKA_HOME` 目录下,在命令行中使用下面的命令来启动它: + +``` +./bin/zookeeper-server-start.sh ./config/zookeeper.properties +``` + +当 ZooKeeper 运行起来后,我们就可以在另一个终端中启动 Kafka 了,命令如下: + +``` +./bin/kafka-server-start.sh ./config/server.properties +``` + +到这里,一个单代理的 Kafka 集群就运行起来了。 + +### 验证 Kafka + +让我们在 `topic-1` 主题上尝试下发送和接收消息吧!我们可以使用下面的命令,在创建主题时为它指定分区的个数: + +``` +./bin/kafka-topics.sh --create --topic topic-1 --zookeeper localhost:2181 --partitions 3 --replication-factor 1 +``` + +上述命令还同时指定了复制因子replication factor,它的值不能大于集群中代理的数量。我们使用的是单代理集群,因此,复制因子只能设置为 1。 + +当主题创建完成后,生产者和消费者就可以在上面交换消息了。Kafka 的发行版内附带了命令行工具生产者和消费者,供测试时用。 + +打开第三个终端,运行下面的命令,启动命令行生产者: + +``` +./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-1 +``` + +上述命令显示了一个提示符,我们可以在后面输入简单文本消息。由于我们指定的命令选项,生产者会把 `topic-1` 上的消息,发送到运行在本机的 9092 端口的 Kafka 中。 + +打开第四个终端,运行下面的命令,启动命令行消费者: + +``` +./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-1 –-from-beginning +``` + +上述命令启动了一个消费者,并指定它连接到本机 9092 端口的 Kafka。它订阅了 `topic-1` 主题,以读取其中的消息。由于命令行的最后一个选项,这个消费者会从最开头的位置,开始读取该主题的所有消息。 + +我们注意到,生产者和消费者连接的是同一个代理,访问的是同一个主题,因此,消费者在收到消息后会把消息打印到终端上。 + +下面,让我们在实际应用场景中,尝试使用 Kafka 吧! + +### 案例 + +假设有一家叫做 ABC 的公共汽车运输公司,它拥有一支客运车队,往返于全国不同城市之间。由于 ABC 希望实时跟踪每辆客车,以提高其运营质量,因此,它提出了一个基于 Apache Kafka 的解决方案。 + +首先,ABC 公司为所有公交车都配备了位置追踪设备。然后,它使用 Kafka 建立了一个操作中心,以接收来自数百辆客车的位置更新。它还开发了一个仪表盘dashboard,以显示任一时间点所有客车的当前位置。图 5 展示了上述架构: + +![图 5:基于 Kafka 的架构][6] + +在这种架构下,客车上的设备扮演了消息生产者的角色。它们会周期性地把当前位置发送到 Kafka 的 `abc-bus-location` 主题上。ABC 公司选择以客车的行程码trip code作为消息键,以处理来自不同客车的消息。例如,对于从 Bengaluru 到 Hubballi 的客车,它的行程码就会是 `BLRHL003`,那么在这段旅程中,对于所有来自该客车的消息,它们的消息键都会是 `BLRHL003`。 + +仪表盘应用扮演了消息消费者的角色。它在代理上注册了同一个主题 `abc-bus-location`。如此,这个主题就成为了生产者(客车)和消费者(仪表盘)之间的虚拟通道。 + +客车上的设备不会期待得到来自仪表盘应用的任何回复。事实上,它们相互之间都不知道对方的存在。得益于这种架构,数百辆客车和操作中心之间实现了非阻塞通信。 + +#### 实现 + +假设 ABC 公司想要创建三个分区来维护位置更新。由于我们的开发环境只有一个代理,因此复制因子应设置为 1。 + +相应地,以下命令创建了符合需求的主题: + +``` +./bin/kafka-topics.sh --create --topic abc-bus-location --zookeeper localhost:2181 --partitions 3 --replication-factor 1 +``` + +生产者和消费者应用可以用多种语言编写,如 Java、Scala、Python 和 JavaScript 等。下面几节中的代码展示了它们在 Java 中的编写方式,好让我们有一个初步了解。 + +##### Java 生产者 + +下面的 `Fleet` 类模拟了在 ABC 公司的 6 辆客车上运行的 Kafka 生产者应用。它会把位置更新发送到指定代理的 `abc-bus-location` 主题上。请注意,简单起见,主题名称、消息键、消息内容和代理地址等,都在代码里写死了。 + +``` +public class Fleet { + public static void main(String[] args) throws Exception { + String broker = “localhost:9092”; + Properties props = new Properties(); + props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); + props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, + StringSerializer.class.getName()); + props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, + StringSerializer.class.getName()); + + Producer producer = new KafkaProducer(props); + String topic = “abc-bus-location”; + Map locations = new HashMap<>(); + locations.put(“BLRHBL001”, “13.071362, 77.461906”); + locations.put(“BLRHBL002”, “14.399654, 76.045834”); + locations.put(“BLRHBL003”, “15.183959, 75.137622”); + locations.put(“BLRHBL004”, “13.659576, 76.944675”); + locations.put(“BLRHBL005”, “12.981337, 77.596181”); + locations.put(“BLRHBL006”, “13.024843, 77.546983”); + + IntStream.range(0, 10).forEach(i -> { + for (String trip : locations.keySet()) { + ProducerRecord record + = new ProducerRecord( + topic, trip, locations.get(trip)); + producer.send(record); + } + }); + producer.flush(); + producer.close(); + } +} +``` + +##### Java 消费者 + +下面的 `Dashboard` 类实现了一个 Kafka 消费者应用,运行在 ABC 公司的操作中心。它会监听 `abc-bus-location` 主题,并且它的消费者组 ID 是 `abc-dashboard`。当收到消息后,它会立即显示来自客车的详细位置信息。我们本该配置这些详细位置信息,但简单起见,它们也是在代码里写死的: + +``` +public static void main(String[] args) { + String broker = “127.0.0.1:9092”; + String groupId = “abc-dashboard”; + Properties props = new Properties(); + props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, broker); + props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, + StringDeserializer.class.getName()); + props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, + StringDeserializer.class.getName()); + props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, groupId); + + @SuppressWarnings(“resource”) + Consumer consumer = new KafkaConsumer(props); + consumer.subscribe(Arrays.asList(“abc-bus-location”)); + while (true) { + ConsumerRecords records + = consumer.poll(Duration.ofMillis(1000)); + + for (ConsumerRecord record : records) { + String topic = record.topic(); + int partition = record.partition(); + String key = record.key(); + String value = record.value(); + System.out.println(String.format( + “Topic=%s, Partition=%d, Key=%s, Value=%s”, + topic, partition, key, value)); + } + } +} +``` + +##### 依赖 + +为了编译和运行这些代码,我们需要 JDK 8 及以上版本。看到下面的 `pom.xml` 文件中的 Maven 依赖了吗?它们会把所需的 Kafka 客户端库,下载并添加到类路径中: + +``` + + org.apache.kafka + kafka-clients + 2.8.0 + + + org.slf4j + slf4j-simple + 1.7.25 + +``` + +#### 部署 + +由于 `abc-bus-location` 主题在创建时指定了 3 个分区,我们自然就会想要运行 3 个消费者,来让读取位置更新的过程更快一些。为此,我们需要同时在 3 个不同的终端中运行仪表盘。因为所有这 3 个仪表盘都注册在同一个组 ID 下,它们自然就构成了一个消费者组。Kafka 会为每个仪表盘都分配一个特定的分区(来消费)。 + +当所有仪表盘实例都运行起来后,在另一个终端中启动 `Fleet` 类。图 6、7、8 展示了仪表盘终端中的控制台示例输出。 + +![图 6:仪表盘终端之一][7] + +仔细看看控制台消息,我们会发现第一个、第二个和第三个终端中的消费者,正在分别从 `partition-2`、`partition-1` 和 `partition-0` 中读取消息。另外,我们还能发现,消息键为 `BLRHBL002`、`BLRHBL004` 和 `BLRHBL006` 的消息写入了 `partition-2`,消息键为 `BLRHBL005` 的消息写入了 `partition-1`,剩下的消息写入了 `partition-0`。 + +![图 7:仪表盘终端之二][8] + +使用 Kafka 的好处在于,只要集群设计得当,它就可以水平扩展,从而支持大量客车和数百万条消息。 + +![图 8:仪表盘终端之三][9] + +### 不止是消息 + +根据 Kafka 官网上的数据,在《财富》100 强企业中,超过 80% 都在使用 Kafka。它部署在许多垂直行业,如金融服务、娱乐等。虽然 Kafka 起初只是一种简单的消息服务,但它已凭借行业级的流处理能力,成为了大数据生态系统的一环。对于那些喜欢托管解决方案的企业,Confluent 提供了基于云的 Kafka 服务,只需支付订阅费即可。(LCTT 译注:Confluent 是一个基于 Kafka 的商业公司,它提供的 Confluent Kafka 在 Apache Kafka 的基础上,增加了许多企业级特性,被认为是“更完整的 Kafka”。) + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging-for-seamless-systems/ + +作者:[Krishna Mohan Koyya][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Digital-backgrund-connecting-in-globe.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-1-Asynchronous-messaging.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-2-Message-distribution-among-the-partitions.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-3-Command-line-producer.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-4-Command-line-consumer.jpg +[5a]: https://kafka.apache.org/downloads +[6]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-5-Kafka-based-architecture.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-6-Dashboard-Terminal-1.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-7-Dashboard-Terminal-2.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2021/09/Figure-8-Dashboard-Terminal-3.jpg From fc18761c934d7ba2e9cc1d128ac932fae0499729 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 22:18:51 +0800 Subject: [PATCH 0043/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220620=20Please=20=E2=80=93=20A=20Simple=20Command?= =?UTF-8?q?=20Line=20Todo=20Manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...se – A Simple Command Line Todo Manager.md | 308 ++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 sources/tech/20220620 Please – A Simple Command Line Todo Manager.md diff --git a/sources/tech/20220620 Please – A Simple Command Line Todo Manager.md b/sources/tech/20220620 Please – A Simple Command Line Todo Manager.md new file mode 100644 index 0000000000..ec307cc52f --- /dev/null +++ b/sources/tech/20220620 Please – A Simple Command Line Todo Manager.md @@ -0,0 +1,308 @@ +[#]: subject: "Please – A Simple Command Line Todo Manager" +[#]: via: "https://ostechnix.com/please-command-line-todo-manager/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Please – A Simple Command Line Todo Manager +====== +Manage Tasks And To-do Lists With 'Please' From Command Line In Linux + +A while ago, we reviewed **["Taskwarrior"][1]**, a command line task manager to manage your to-do tasks right from the Terminal window. Today I stumbled upon yet another simple **command line Todo manager** called **"Please"**. Yes, the name is Please!. + +Please is an opensource, CLI application written in **Python** programming language. Using Please, we can manage our personal tasks and to-do list without leaving the terminal. + +Whenever you open a terminal window, Please will show you the current date and time, an inspirational quote and the list of personal to-do tasks in the Terminal. + +Please is very lightweight and convenient CLI task manager for those who use terminal extensively in their daily life. + +### Install Please In Linux + +Since Please is written in Python, you can **install Please** using **PiP** package manager. If you haven't installed PiP on your Linux machine yet, refer to the following link. + +* [How To Manage Python Packages Using PIP][2] + +To install Please using PiP, simply run: + +``` +$ pip install please-cli +``` + +Or, + +``` +$ pip3 install please-cli +``` + +To run Please every time you open a new Terminal window, add the line 'please' to your `.bashrc` file. + +``` +$ echo 'please' >> ~/.bashrc +``` + +If you use ZSH shell, run: + +``` +$ echo 'please' >> ~/.zshrc +``` + +Please note that the above step is optional. You don't have to add it to your shell config file. However If you do the above step, you will immediately see your pending tasks and to-do list whenever you open a Terminal. + +If you don't add it, you won't see them and you may forgot them after a while. So make sure you've added it to your `.bashrc` or `.zshrc` file. + +Restart the current session to take effect the changes. Alternatively, source the `.bashrc` file to take effect the changes immediately. + +``` +$ source ~/.bashrc +``` + +You will be asked to set a name at first launch. It is usually the hostname of your system. You can also use any other name of your choice. + +``` +Hello! What can I call you?: ostechnix +``` + +You can change your name later by running the following command: + +``` +$ please callme +``` + +### Manage Tasks And To-do Lists With Please From Command Line + +The **usage of 'Please'** is very simple! + +Just run 'please' to show the current date and time, an inspirational quote and the list of tasks if there are any. + +``` +$ please +``` + +**Sample Output:** + +``` +─────── Hello ostechnix! It's 20 Jun | 11:59 AM ─────── + "Action is eloquence!" + - William Shakespeare + + Looking good, no pending tasks 😁 +``` + +![Run Please Todo Manager][3] + +As you can see, there are no todo tasks yet. Let us add some. + +#### Adding New Tasks + +To add a new task, run: + +``` +$ please add "" +``` + +Example: + +``` +$ please add "Publish a post about Please" +``` + +Replace the task name within the quotes with your own. + +**Sample Output:** + +``` +Added "Publish a post about Please" to the list + Tasks +┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ +┃ Number ┃ Task ┃ Status ┃ +┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ +│ 1 │ Publish a post about Please │ ❌ │ +└────────┴─────────────────────────────┴────────┘ +``` + +Similarly, you can add any number of tasks. I have added the following 3 tasks for demonstration purpose. + +``` +Added "Setup Nginx In Ubuntu" to the list + Tasks +┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ +┃ Number ┃ Task ┃ Status ┃ +┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ +│ 1 │ Publish a post about Please │ ❌ │ +│ 2 │ Update Ubuntu VM │ ❌ │ +│ 3 │ Setup Nginx In Ubuntu │ ❌ │ +└────────┴─────────────────────────────┴────────┘ +``` + +![Add Tasks Using Please][4] + +#### Show Tasks + +To view the list of all tasks, run: + +``` +$ please showtasks +``` + +**Sample Output:** + +``` + Tasks +┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ +┃ Number ┃ Task ┃ Status ┃ +┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ +│ 1 │ Publish a post about Please │ ❌ │ +│ 2 │ Update Ubuntu VM │ ❌ │ +│ 3 │ Setup Nginx In Ubuntu │ ❌ │ +└────────┴─────────────────────────────┴────────┘ +``` + +![Show All Tasks][5] + +As you see in the above output, I have 3 unfinished tasks. + +#### Mark Tasks As Done Or Undone + +Once you complete a task, you can **mark it as done** by specifying the task number as show in the command below. + +$ please done "" + +Example: + +``` +$ please done 1 +``` + +This command will mark the **Job 1** as completed. + +**Sample Output:** + +``` +Updated Task List + Tasks +┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ +┃ Number ┃ Task ┃ Status ┃ +┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ +│ 1 │ Publish a post about Please │ ✅ │ +│ 2 │ Update Ubuntu VM │ ❌ │ +│ 3 │ Setup Nginx In Ubuntu │ ❌ │ +└────────┴─────────────────────────────┴────────┘ +``` + +![Mark Tasks As Done][6] + +As you see in the above output, the completed job is marked with a **green** **tick mark**and the non-completed tasks are marked with **a red cross**. + +Similarly, to undo the changes i.e. **mark the jobs as undone**, run: + +``` +$ please undone 1 +``` + +![Mark Tasks As Undone][7] + +#### Remove Tasks + +To delete a task from the list, the command would be: + +$ please delete "" + +Example: + +$ please delete 1 + +This command will **delete the specified task**. + +**Sample Output:** + +``` +Deleted 'Publish a post about Please' + Tasks + ┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ + ┃ Number ┃ Task ┃ Status ┃ + ┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ + │ 1 │ Update Ubuntu VM │ ❌ │ + │ 2 │ Setup Nginx In Ubuntu │ ❌ │ + └────────┴───────────────────────┴────────┘ +``` + +![Delete Tasks][8] + +Please note that this command will delete the given task whether it is completed or not. It is not even will show you a warning message. So double check if you delete a correct task. + +#### Reset + +To reset all settings and task, run: + +``` +$ please setup +``` + +You will be prompted to set a name. + +**Sample Output:** + +``` +Hello! What can I call you?: ostechnix + + Thanks for letting me know your name! +If you wanna change your name later, please use: +┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +│ please callme │ +└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +``` + +![Reset Please][9] + +### Uninstall Please + +'Please' didn't please you? No problem! You can remove it using command: + +``` +$ pip uninstall please-cli +``` + +Or, + +``` +$ pip3 uninstall please-cli +``` + +And then edit your `.bashrc` or `.zshrc` file and remove the line that says **please** at the end of the file. + +### Conclusion + +I briefly tried 'Please' on my Ubuntu VM and I already started liking its simplicity and efficiency. If you're looking for an easy-to-use CLI task manager for managing your tasks, please try "Please". You will be pleased! + +**Resource:** + +* [Please GitHub Repository][10] + +*Featured Image by Pixabay.* + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/please-command-line-todo-manager/ + +作者:[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/taskwarrior-command-line-todo-task-manager-application/ +[2]: https://ostechnix.com/manage-python-packages-using-pip/ +[3]: https://ostechnix.com/wp-content/uploads/2022/06/Run-Please-Todo-Manager.png +[4]: https://ostechnix.com/wp-content/uploads/2022/06/Add-Tasks-Using-Please.png +[5]: https://ostechnix.com/wp-content/uploads/2022/06/Show-All-Tasks.png +[6]: https://ostechnix.com/wp-content/uploads/2022/06/Mark-Tasks-As-Done.png +[7]: https://ostechnix.com/wp-content/uploads/2022/06/Mark-Tasks-As-Undone.png +[8]: https://ostechnix.com/wp-content/uploads/2022/06/Delete-Tasks.png +[9]: https://ostechnix.com/wp-content/uploads/2022/06/Reset-Please.png +[10]: https://github.com/NayamAmarshe/please From 9038fcbf7fc07723cc68d2709f5bce77b9bf30c0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 20 Jun 2022 22:20:08 +0800 Subject: [PATCH 0044/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220620=20The=20First=20Commercial=20Unikernel=20Wi?= =?UTF-8?q?th=20POSIX=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Commercial Unikernel With POSIX Support.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md diff --git a/sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md b/sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md new file mode 100644 index 0000000000..a667a30874 --- /dev/null +++ b/sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md @@ -0,0 +1,37 @@ +[#]: subject: "The First Commercial Unikernel With POSIX Support" +[#]: via: "https://www.opensourceforu.com/2022/06/the-first-commercial-unikernel-with-posix-support/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The First Commercial Unikernel With POSIX Support +====== +![operating system][1] + +Lynx Software Technologies has released a unikernel that it claims is the first to be POSIX compatible for real-time operation and commercially available. LynxElement will be included in the MOSA.ic range of mission-critical embedded applications. To provide more security with third-party or open source software, Lynx prefers a unikernel approach over hypervisors or virtual machines. LynxElement is based on Lynx’s commercially proven LynxOS-178 real-time operating system, which allows for compatibility between the Unikernel and the standalone LynxOS-178 product. This enables designers to move applications between environments and is compliant with the POSIX API and US FACE specifications. + +LynxElement initially focused on security on both Intel and Arm multicore processor architectures. Running security components such as virtual private networks is a common use case (VPNs). The unikernel, by utilising a one-way software ‘data diode’ and filter, can enable a customer to replace a Linux virtual machine, saving memory space and drastically reducing the attack surface while ensuring timing requirements and safety certifiability. + +Unikernels are best suited for applications that require speed, agility, and a small attack surface in order to increase security and certifiability, such as aircraft systems, autonomous vehicles, and critical infrastructure. These run pre-built applications with their own libraries, reducing the attack surface caused by resource sharing. This also enables the secure use of containerised applications such as Kubernetes or Docker, which are increasingly moving from enterprise to embedded designs, owing to the need to support AI frameworks. + +Unikernels are also an excellent choice for mission-critical systems with heterogeneous workloads that require the coexistence of RTOS, Linux, Unikernel, and bare-metal guest operating systems. Existing open source unikernel implementations, according to Lynx, haven’t fared well due to a lack of adequate functionality, a lack of a clear path to safety certification, and immature toolchains for debugging and producing images. + +Lynx created the MOSA.ic software framework for developing and integrating complex multi-core safety- or security-critical systems. The framework includes built-in security for the unikernel, allowing for security and safety certification in mission-critical applications and making it enterprise-ready. With the assistance of DESE Research, Lynx created the safety-critical Unikernel solution. LynxElement is being evaluated by existing Lynx customers as well as additional organisations around the world, including naval, air force, and army organisations. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/the-first-commercial-unikernel-with-posix-support/ + +作者:[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/06/operating-system-1.jpg From 8421d7ce1b745055852ba4b35aaea910784f7eb1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 21 Jun 2022 08:33:20 +0800 Subject: [PATCH 0045/3123] translated --- ... Apps And Games Using WineZGUI On Linux.md | 181 ----------------- ... Apps And Games Using WineZGUI On Linux.md | 182 ++++++++++++++++++ 2 files changed, 182 insertions(+), 181 deletions(-) delete mode 100644 sources/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md create mode 100644 translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md diff --git a/sources/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md b/sources/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md deleted file mode 100644 index 5f4fc0ecf7..0000000000 --- a/sources/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md +++ /dev/null @@ -1,181 +0,0 @@ -[#]: subject: "Run Windows Apps And Games Using WineZGUI On Linux" -[#]: via: "https://ostechnix.com/winezgui-run-windows-apps-and-games-on-linux/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Run Windows Apps And Games Using WineZGUI On Linux -====== -WineZGUI - A Wine GUI Frontend Using Zenity - -A while ago we wrote about **[Bottles][1]**, an opensource graphical application easily to run Windows software and Games on Linux operating systems. Today, we will discuss about a similar interesting project. Say hello to **WineZGUI**, a Wine GUI frontend to **[run windows apps and games with wine on Linux][2]**. - -#### Contents - -1. What Is WineZGUI? -2. Bottles Vs WineZGUI -3. How To Install WineZGUI In Linux -4. Run Windows Apps And Games With WineZGUI In Linux -5. Conclusion - -### What Is WineZGUI? - -WineZGUI is a collection of Bash scripts that allows you to easily manage wine prefixes and provides easier wine gaming experience on Linux using **Zenity**. - -Using WineZGUI, we can directly launch the Windows exe files or games from File manager without installing them. - -WineZGUI creates shortcut for each application or game for easier access and also creates separate prefixes for each exe binary file. - -When you launch a Windows exe file with WineZGUI, it will prompt you whether to use the default wine prefix or create a new one. The default prefix is `~/.local/share/winezgui/default`. - -If you choose to create a new prefix for the windows binary or exe, WineZGUI will try to extract the product name and icon from the exe file and it creates a desktop shortcut. - -When you launch the same exe or binary file later, it will recommend you to run it with the associated prefix earlier. - -To put this layman terms, WineZGUI is simply a Wine and winetricks simple GUI for official vanilla wine. Wine prefix setup is automatic when we launch an exe to play a game. - -You simply open an exe and it creates a prefix and a desktop shortcut with name and icon extracted from that exe. - -It uses **exiftool** and **icotool** utilities to extract the name and icon respectively. Either you can open an exe to launch that game from existing prefix, or use desktop shortcut. - -WineZGUI is a shell script that is freely hosted in GitHub. You can grab the source code, improve it, fix bugs and add features. - -### Bottles Vs WineZGUI - -You might wonder how does WineZGUI compare with Bottles. There is a subtle difference between these applications though. - -**Bottles is prefix oriented** and **runner oriented**. Meaning - Bottles first creates a prefix then use different exe files with it. Bottles does not remember exe's prefix. Bottles uses different runners. - -**WineZGUI is exe oriented**. It uses exe to create one prefix for that exe only. Next time we open an exe, it will ask whether to launch with existing exe prefix. - -WineZGUI does not offer advanced features like **bottles** or **[lutris][3]** do, like runners, online installers, etc. - -### How To Install WineZGUI In Linux - -Make sure you have installed the necessary prerequisites for WineZGUI. - -**Debian/Ubuntu:** - -``` -$ sudo dpkg --add-architecture i386 -$ sudo apt install zenity wine winetricks libimage-exiftool-perl icoutils gnome-terminal -``` - -**Fedora:** - -``` -$ sudo dnf install zenity wine winetricks perl-Image-ExifTool icoutils gnome-terminal -``` - -The officially recommended way to install WineZGUI is by using **[Flatpak][4]**. - -After installing Flatpak, run the following commands one by one to install WineZGUI in Linux. - -``` -$ flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -``` - -``` -$ flatpak --user -y install flathub org.winehq.Wine/x86_64/stable-21.08 -``` - -``` -$ wget https://github.com/fastrizwaan/WineZGUI-Releases/releases/download/WineZGUI-0.4_20220608/io.github.WineZGUI_0_4_20220608.flatpak -``` - -``` -$ flatpak --user -y install io.github.WineZGUI_0_4_20220608.flatpak -``` - -### Run Windows Apps And Games With WineZGUI In Linux - -Launch WineZGUI from Dash or Menu. - -![Launch WineZGUI][5] - -This is how the default interface of WineZGUI looks like. - -![WineZGUI Interface][6] - -As you can see in the above screenshot, WineZGUI interface is very simple and easy to understand. From the main window, you can, - -* Open an EXE file, -* Open Winetricks GUI and CLI, -* Launch Wine configuration, -* Launch explorer, -* Open BASH shell, -* Kill all apps/games including WineZGUI interface, -* Delete wine prefix, -* View installed WineZGUI version. - -For the purpose of the demonstration, I am going to open an .exe file. - -In the next window, choose the EXE file to run. In my case, it is WinRAR. - -![Choose The EXE File To Run][7] - -Next, whether you want to run the EXE file with default prefix or create a new prefix. I choose default prefix. - -![Run WinRAR With Default Prefix][8] - -A few seconds later, the WinRAR setup wizard will appear. Click Install to continue. - -![Install WinRAR In Linux][9] - -Click OK to complete the WinRAR installation. - -![Complete WinRAR Installation][10] - -Click "Run WinRAR" to launch it. - -![Run WinRAR][11] - -Here is WinRAR running in my Fedora 36 desktop! - -![WinRAR Is Running In Fedora Using Wine][12] - -### Conclusion - -WineZGUI is a newcomer to the club. If you're looking for an easier way to run Windows apps and games using Wine on a Linux desktop, WineZGUI might be a good choice. - -With the help of WineZGUI, the users have an option to create a wine prefix right at same folder as the `.exe` and creating a relatively-linked `.desktop` entry to automatically do so. - -The reason being that it's easier to back up and delete a game along with the wine prefix, and having it generate a `.desktop` would make it resilient to being moved and transferred. - -A cool use-case would be to setup using the app, then share the wine prefix to your friend and others who just want a working wine prefix with all the dependencies, saves, etc. - -Give it a try and let us know what do you think about this project in the comment section below. - -**Resource:** - -* [WineZGUI GitHub Repository][13] - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/winezgui-run-windows-apps-and-games-on-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/run-windows-software-on-linux-with-bottles/ -[2]: https://ostechnix.com/run-windows-games-softwares-ubuntu-16-04/ -[3]: https://ostechnix.com/manage-games-using-lutris-linux/ -[4]: https://ostechnix.com/how-to-install-and-use-flatpak-in-linux/ -[5]: https://ostechnix.com/wp-content/uploads/2022/06/Launch-WineZGUI.png -[6]: https://ostechnix.com/wp-content/uploads/2022/06/WineZGUI-Interface.png -[7]: https://ostechnix.com/wp-content/uploads/2022/06/Choose-The-EXE-File-To-Run.png -[8]: https://ostechnix.com/wp-content/uploads/2022/06/Run-WinRAR-With-Default-Prefix.png -[9]: https://ostechnix.com/wp-content/uploads/2022/06/Install-WinRAR-In-Linux.png -[10]: https://ostechnix.com/wp-content/uploads/2022/06/Complete-WinRAR-Installation.png -[11]: https://ostechnix.com/wp-content/uploads/2022/06/Run-WinRAR.png -[12]: https://ostechnix.com/wp-content/uploads/2022/06/WinRAR-Is-Running-In-Fedora-Using-Wine.png -[13]: https://github.com/fastrizwaan/WineZGUI diff --git a/translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md b/translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md new file mode 100644 index 0000000000..443540f00c --- /dev/null +++ b/translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md @@ -0,0 +1,182 @@ +[#]: subject: "Run Windows Apps And Games Using WineZGUI On Linux" +[#]: via: "https://ostechnix.com/winezgui-run-windows-apps-and-games-on-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 上使用 WineZGUI 运行 Windows 应用和游戏 +====== +WineZGUI - 一个使用 Zenity 的 Wine GUI 前台 + +不久前,我们写了关于 **[Bottles][1]** 的文章,这是一个开源的图形应用,可以在 Linux 操作系统上轻松运行 Windows 软件和游戏。今天,我们将讨论一个类似的有趣项目。向 **WineZGUI** 打个招呼,它是一个 Wine GUI 前台,可以**[在 Linux 上用 Wine 运行 Windows 应用和游戏][2]**。 + + +#### 内容 + +1. 什么是 WineZGUI? +2. Bottles 与 WineZGUI +3. 如何在 Linux 中安装 WineZGUI +4. 在 Linux 中用 WineZGUI 运行 Windows 应用和游戏 +5. 总结 + +### 什么是 WineZGUI? + +WineZGUI 是一个 Bash 脚本的集合,它允许你轻松地管理 wine 前缀,并在 Linux 上使用 **Zenity** 提供更容易的 wine 游戏体验。 + +使用 WineZGUI,我们可以直接从文件管理器中启动 Windows exe 文件或游戏,而无需安装它们。 + +WineZGUI 为每个应用或游戏创建快捷方式,以便于访问,同时也为每个 exe 二进制文件创建单独的前缀。 + +当你用 WineZGUI 启动一个 Windows exe 文件时,它会提示你是否使用默认的 wine 前缀或创建一个新的前缀。默认的前缀是 `~/.local/share/winezgui/default`。 + +如果你选择为 windows 二进制文件或 exe 创建一个新的前缀,WineZGUI 将尝试从 exe 文件中提取产品名称和图标,并创建一个桌面快捷方式。 + +当你以后启动相同的 exe 或二进制文件时,它将建议你用先前的相关前缀来运行它。 + +说得通俗一点,WineZGUI 只是一个用于官方原始 wine 的 Wine 和 winetricks 的简单 GUI。当我们启动一个 exe 来玩游戏时,Wine 前缀的设置是自动的。 + +你只需打开一个 exe,它就会创建一个前缀和一个桌面快捷方式,并从该 exe 中提取名称和图标。 + +它使用 **exiftool** 和 **icotool** 工具来分别提取名称和图标。你可以通过现有的前缀打开一个 exe 来启动该游戏,或者使用桌面快捷方式。 + +WineZGUI 是一个在 GitHub 上免费托管的 shell 脚本。你可以抓取源代码,改进它,修复错误和增加功能。 + +### Bottles Vs WineZGUI + +你可能想知道 WineZGUI 与 Bottles 相比如何。但这些应用之间有一个微妙的区别。 + +**Bottles 是面向前缀的**和**面向运行器的**。意思是:Bottles 首先创建一个前缀,然后使用不同的 exe 文件。Bottles 不会记住 exe 的前缀。Bottles 使用不同的运行器。 + +**WineZGUI 是面向 exe 的**。它使用 exe 只为该 exe 创建一个前缀。下次我们打开一个 exe 时,它将询问是否用现有的 exe 前缀启动。 + +WineZGUI 不提供像 **bottles** 或 **[lutris][3]** 那样的高级功能,如运行程序、在线安装程序等。 + +### 如何在 Linux 中安装 WineZGUI + +确保你已经安装了 WineZGUI 的必要先决条件。 + +**Debian/Ubuntu:** + +``` +$ sudo dpkg --add-architecture i386 +$ sudo apt install zenity wine winetricks libimage-exiftool-perl icoutils gnome-terminal +``` + +**Fedora:** + +``` +$ sudo dnf install zenity wine winetricks perl-Image-ExifTool icoutils gnome-terminal +``` + +官方推荐的安装 WineZGUI 的方法是使用 **[Flatpak][4]**。 + +安装完 Flatpak 后,逐一运行以下命令,在 Linux 中安装 WineZGUI。 + +``` +$ flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +``` +$ flatpak --user -y install flathub org.winehq.Wine/x86_64/stable-21.08 +``` + +``` +$ wget https://github.com/fastrizwaan/WineZGUI-Releases/releases/download/WineZGUI-0.4_20220608/io.github.WineZGUI_0_4_20220608.flatpak +``` + +``` +$ flatpak --user -y install io.github.WineZGUI_0_4_20220608.flatpak +``` + +### 在 Linux 中用 WineZGUI 运行 Windows 应用和游戏 + +从 Dash 或菜单中启动 WineZGUI。 + +![Launch WineZGUI][5] + +这就是 WineZGUI 的默认界面的样子。 + +![WineZGUI Interface][6] + +正如你在上面的截图中看到的,WineZGUI 的界面非常简单易懂。从主窗口中,你可以: + +* 打开一个 EXE 文件。 +* 打开 Winetricks GUI 和 CLI。 +* 启动 Wine 配置。 +* 启动资源管理器。 +* 打开 BASH shell。 +* 关闭所有的应用/游戏,包括 WineZGUI 界面。 +* 删除 wine 前缀。 +* 查看已安装的 WineZGUI 版本。 + +为了演示,我将打开一个 .exe 文件。 + +在下一个窗口中,选择要运行的 EXE 文件。在我的例子中,它是 WinRAR。 + +![Choose The EXE File To Run][7] + +接下来,你是想用默认的前缀运行 EXE 文件,还是创建一个新的前缀。我选择默认的前缀。 + +![Run WinRAR With Default Prefix][8] + +几秒钟后,会出现 WinRAR 安装向导。点击安装,继续。 + +![Install WinRAR In Linux][9] + +点击 OK 来完成 WinRAR 的安装。 + +![Complete WinRAR Installation][10] + +点击“运行 WinRAR” 来启动它。 + +![Run WinRAR][11] + +下面是 WinRAR 在我的 Fedora 36 桌面上的运行情况! + +![WinRAR Is Running In Fedora Using Wine][12] + +### 总结 + +WineZGUI 是俱乐部的新人。 如果你正在寻找一种在 Linux 桌面上使用 Wine 运行 Windows 应用和游戏的更简单方法,WineZGUI 可能是一个不错的选择。 + +在 WineZGUI 的帮助下,用户可以选择在与 `.exe` 相同的文件夹中创建一个 wine 前缀,并创建一个相对链接的 `.desktop` 条目来自动执行此操作。 + +原因是使用 wine 前缀备份和删除游戏更容易,并且让它生成一个 `.desktop` 将使其能够适应移动和转移。 + +一个很酷的场景是使用应用进行设置,然后将 wine 前缀分享给你的朋友和其他人,他们只需要一个具有所有依赖性和保存的工作 wine 前缀。 + +请试一试它,在下面的评论区告诉我们你对这个项目的看法。 + +**资源:** + +* [WineZGUI GitHub 仓库][13] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/winezgui-run-windows-apps-and-games-on-linux/ + +作者:[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/run-windows-software-on-linux-with-bottles/ +[2]: https://ostechnix.com/run-windows-games-softwares-ubuntu-16-04/ +[3]: https://ostechnix.com/manage-games-using-lutris-linux/ +[4]: https://ostechnix.com/how-to-install-and-use-flatpak-in-linux/ +[5]: https://ostechnix.com/wp-content/uploads/2022/06/Launch-WineZGUI.png +[6]: https://ostechnix.com/wp-content/uploads/2022/06/WineZGUI-Interface.png +[7]: https://ostechnix.com/wp-content/uploads/2022/06/Choose-The-EXE-File-To-Run.png +[8]: https://ostechnix.com/wp-content/uploads/2022/06/Run-WinRAR-With-Default-Prefix.png +[9]: https://ostechnix.com/wp-content/uploads/2022/06/Install-WinRAR-In-Linux.png +[10]: https://ostechnix.com/wp-content/uploads/2022/06/Complete-WinRAR-Installation.png +[11]: https://ostechnix.com/wp-content/uploads/2022/06/Run-WinRAR.png +[12]: https://ostechnix.com/wp-content/uploads/2022/06/WinRAR-Is-Running-In-Fedora-Using-Wine.png +[13]: https://github.com/fastrizwaan/WineZGUI From a123700b5794b0dd7ac58764dc2999c986037ac4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 21 Jun 2022 08:35:22 +0800 Subject: [PATCH 0046/3123] translating --- ...0620 Compress Images in Linux Easily With Curtail GUI App.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md b/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md index 7b58dfcf92..2c4d128682 100644 --- a/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md +++ b/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/curtail-image-compress/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 78d286fd5aa7b7154bf6aea54b1a31bf2b40c6d6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 21 Jun 2022 09:36:17 +0800 Subject: [PATCH 0047/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lkxed https://linux.cn/article-14738-1.html 要减少这种带有软文性质的选题,这个网站经常有这种选题。 --- ... Extends workflow platform with 7.0 release.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) rename {translated/news => published}/20220616 Mattermost Extends workflow platform with 7.0 release.md (77%) diff --git a/translated/news/20220616 Mattermost Extends workflow platform with 7.0 release.md b/published/20220616 Mattermost Extends workflow platform with 7.0 release.md similarity index 77% rename from translated/news/20220616 Mattermost Extends workflow platform with 7.0 release.md rename to published/20220616 Mattermost Extends workflow platform with 7.0 release.md index 9544f28d66..042d200389 100644 --- a/translated/news/20220616 Mattermost Extends workflow platform with 7.0 release.md +++ b/published/20220616 Mattermost Extends workflow platform with 7.0 release.md @@ -3,12 +3,13 @@ [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14738-1.html" Mattermost 7.0 发布,扩展了工作流平台 ====== + ![Mattermost][1] 自 2016 年开源以来,Mattermost 一直在开发一个具有不断增加的用例的消息传递平台。6 月 16 日,Mattermost 7.0 平台发布,其中包括了新的语音呼叫、工作流模板和用于开源技术的应用框架。新版本扩展了 2021 年 10 月发布的 6.0 版本引入的功能。一直以来,Mattermost 都在与包括 Slack、Atlassian 和 Asana 在内的几家大公司,竞争不断增长的协作工具市场。另一方面,Mattermost 侧重于对开发者的支持,尽管该平台也可用于安全和 IT 运营。 @@ -17,11 +18,11 @@ Mattermost 的软件同时提供有商业版和开源版,目前它们都升级 Tien 认为开源也关乎社区贡献。Mattermost 开源项目有超过 4000 名个人贡献者,他们贡献了超过 30000 行代码。 -以前,Mattermost 依赖集成第三方呼叫服务(例如 Zoom)来启用语音呼叫功能。在 7.0 版本中,它通过开源 WebRTC 协议引入了呼叫功能的直接集成,所有现代 Web 浏览器都支持该协议。直接集成呼叫功能的目标是为写作提供单一平台,这符合 Tien 对该平台的总体愿景。现在,除了提供集成工具以实现协作之外,该平台还会增加“工作流模板”功能,以帮助(用户)组织构建可重复的流程。 +以前,Mattermost 依赖集成第三方呼叫服务(例如 Zoom)来启用语音呼叫功能。在 7.0 版本中,它通过开源 WebRTC 协议引入了呼叫功能的直接集成,所有现代 Web 浏览器都支持该协议。直接集成呼叫功能的目标是为协作提供单一平台,这符合 Tien 对该平台的总体愿景。现在,除了提供集成工具以实现协作之外,该平台还会增加“工作流模板”功能,以帮助(用户)组织构建可重复的流程。 -工作流概念采用了 剧本playbooks,其中包含了为“特定类型的操作”所执行的动作和操作的清单。例如,在发生服务故障或网络安全事件时,公司可以为事件响应创建工作流模板。 +工作流概念采用了 剧本playbook,其中包含了为“特定类型的操作”所执行的动作和操作的清单。例如,在发生服务故障或网络安全事件时,公司可以为事件响应创建工作流模板。 -这个清单可以链接到 Mattermost 操作,例如让特定用户发起呼叫,并协助生成报告。Tien 表示,Mattermost 还与常见的开发者工具集成,并且工作流模板的功能将随着时间的推移而扩展,以便使用第三方工具来实现更多自动化。 +这个清单可以链接到 Mattermost 操作operation,例如让特定用户发起呼叫,并协助生成报告。Tien 表示,Mattermost 还与常见的开发者工具集成,并且工作流模板的功能将随着时间的推移而扩展,以便使用第三方工具来实现更多自动化。 -------------------------------------------------------------------------------- @@ -30,7 +31,7 @@ via: https://www.opensourceforu.com/2022/06/mattermost-extends-workflow-platform 作者:[Laveesh Kocher][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From aed0fde4ab0d641a774a231e7ce5257324d3b707 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 21 Jun 2022 11:20:03 +0800 Subject: [PATCH 0048/3123] RP @Donkey-Hao https://linux.cn/article-14739-1.html --- ...0210104 10 ways Ansible is for everyone.md | 75 +++++++++++++++ ...0210104 10 ways Ansible is for everyone.md | 93 ------------------- 2 files changed, 75 insertions(+), 93 deletions(-) create mode 100644 published/20210104 10 ways Ansible is for everyone.md delete mode 100644 translated/tech/20210104 10 ways Ansible is for everyone.md diff --git a/published/20210104 10 ways Ansible is for everyone.md b/published/20210104 10 ways Ansible is for everyone.md new file mode 100644 index 0000000000..a47695f268 --- /dev/null +++ b/published/20210104 10 ways Ansible is for everyone.md @@ -0,0 +1,75 @@ +[#]: collector: (lujun9972) +[#]: translator: (Donkey-Hao) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14739-1.html) +[#]: subject: (10 ways Ansible is for everyone) +[#]: via: (https://opensource.com/article/21/1/ansible) +[#]: author: (James Farrell https://opensource.com/users/jamesf) + +分享 10 篇 Ansible 文章 +====== + +> 通过这些 Ansible 文章扩展你的知识和技能。 + +![](https://img.linux.net.cn/data/attachment/album/202206/21/111840akw4bjd13dh8ayky.jpg) + +我希望能够激发刚刚接触 Ansible 的初学者的兴趣。这里有一系列总结文章,我已将其包括在内,以供你随意后续查阅。 + +### 适合初学者的 Ansible + +这五篇文章对于 Ansible 新手来说是一个非常好的起点。前三篇文章由 Seth Kenlon 撰写。 + + * 如果你不了解 Ansible ,[现在可以做这 7 件事][2] 来入手。这是很好的入门指导,它收集了用于管理硬件、云、容器等的链接。 + * 在 《[编排与自动化有何区别?][3]》 这篇文章中,你会学到一些术语和技术路线,将会激发你对 Ansible 感兴趣。 + * 文章 《[如何用 Ansible 安装软件][4]》 覆盖了一些脚本概念和一些 Ansible 的好惯例,给出了一些本地或远程管理软件包的案例。 + * 在 [我编写 Ansible 剧本时学到的 3 个教训][5] 中,使自己养成 Jeff Geerling 所传授的好习惯,他是一位真正的 Ansible 资深人士。源代码控制、文档、测试、简化和优化是自动化成功的关键。 + * 《[我使用 Ansible 的第一天][6]》 介绍了记者 David Both 在解决重复性开发任务时的思考过程。这篇文章从 Ansible 的基础开始,并说明了一些简单的操作和任务。 + +### 尝试 Ansible 项目 + +一旦你掌握了基础和并拥有良好习惯,就可以开始一些具体主题和实例了。 + + * Ken Fallon 在 《[使用 Ansible 管理你的树莓派机群][7]》 一文中介绍了一个部署和管理树莓派设备机群的示例。它介绍了受限环境中的安全和维护概念。 + * 在 《[将你的日历与 Ansible 融合以避免日程冲突][8]》一文中,Nicolas Leiva 快速介绍了如何使用前置任务和条件在自动日程安排中中强制执行隔离窗口 + * Nicolas 在 《[创建一个整合你的谷歌日历的 Ansible 模块][9]》中完成了他的日历隔离的理念。他的文章深入探讨了在 Go 中编写自定义 Ansible 模块以实现所需的日历连接。 Nicolas 介绍了构建和调用 Go 程序并将所需数据传递给 Ansible 并接收所需输出的不同方法。 + +### 提升你的 Ansible 技巧 + +Kubernetes 是近来的热门话题,以下文章提供了一些很好的示例来学习新技能。 + + * 在 《[适用于 Kubernets 自动编排你的 Ansible 模块][10]》 文章中,Seth Kenlon 介绍了 Ansible Kubernetes 模块, 介绍了用于测试的基本 Minikube 环境,并提供了一些用于Pod 控制的 `k8s` 模块的基本示例。 + * Jeff Geerling 在 《[使用 Ansible 的 Helm 模块构建 Kubernetes Minecraft 服务器][11]》 中解释了 Helm Chart 应用程序、Ansible 集合以及执行一个有趣的项目以在 k8s 集群中设置你自己的 Minecraft 服务器的概念。 + +我希望你的 Ansible 旅程已经开始,并能常从这些文章中充实自己。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/1/ansible + +作者:[James Farrell][a] +选题:[lujun9972][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jamesf +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation) +[2]: https://opensource.com/article/20/9/ansible +[3]: https://opensource.com/article/20/11/orchestration-vs-automation +[4]: https://opensource.com/article/20/9/install-packages-ansible +[5]: https://opensource.com/article/20/1/ansible-playbooks-lessons +[6]: https://opensource.com/article/20/10/first-day-ansible +[7]: https://opensource.com/article/20/9/raspberry-pi-ansible +[8]: https://opensource.com/article/20/10/calendar-ansible +[9]: https://opensource.com/article/20/10/ansible-module-go +[10]: https://opensource.com/article/20/9/ansible-modules-kubernetes +[11]: https://opensource.com/article/20/10/kubernetes-minecraft-ansible +[12]: https://opensource.com/article/20/1/ansible-news-edition-six +[13]: https://opensource.com/article/20/2/ansible-news-edition-seven +[14]: https://opensource.com/article/20/3/ansible-news-edition-eight +[15]: https://opensource.com/article/20/4/ansible-news-edition-nine +[16]: https://opensource.com/article/20/5/ansible-news-edition-ten +[17]: https://opensource.com/how-submit-article diff --git a/translated/tech/20210104 10 ways Ansible is for everyone.md b/translated/tech/20210104 10 ways Ansible is for everyone.md deleted file mode 100644 index dea8dd1485..0000000000 --- a/translated/tech/20210104 10 ways Ansible is for everyone.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (Donkey) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (10 ways Ansible is for everyone) -[#]: via: (https://opensource.com/article/21/1/ansible) -[#]: author: (James Farrell https://opensource.com/users/jamesf) - -Ansible 适合所有人的 10 种方式 -====== - -通过 2020 年的前 10 篇 Ansible 文章和 5 篇新闻摘要扩展你的知识和技能。 -![gears and lightbulb to represent innovation][1] - -又到了一年的年末,我们再次来到 Opensource.com 上发表了一组关于 Ansible 的精彩文章。我认为在逐步推进一系列主题中回顾它们会很好。我希望能够激励对 Ansible 有兴趣的初学者。还有一系列总结文章,我已将其包括在内,以供你随意后续查阅。 - -### 适合初学者的 Ansible - -今年列表中的前五篇文章对于 Ansible 新手来说是一个非常好的起点。前三篇文章由 Opensource.com 编辑 Seth Kenlon 撰写。 - - * 如果你不了解 Ansible ,[_现在可以做这 7 件事_][2] 来入手。这是很好的入门指导,它收集了用于管理硬件、云、容器等的链接。 - - * 在 [_编排与自动化有何区别?_][3] 这篇文章中,你会学到一些术语和技术路线,将会激发你对 Ansible 感兴趣。 - * 文章 [_如何用 Ansible 安装软件_][4] 覆盖了一些初级概念和一些 Ansible 的好习惯,给出了一些本地或远程管理软件包的案例。 - * 从 [_我在编写 Ansible Playbooks 时学到的 3 堂课_][5] 中,使自己养成 Jeff Geerling 所传授的好习惯,他是一位真正的 Ansible 资深人士。 源代码控制、文档、测试、简化和优化是自动化成功的关键。 - * [_我使用 Ansible 的第一天_][6] 介绍了记者 David Both 在解决重复性开发任务时的思考过程。这篇文章从 Ansible 的基础开始,并说明了一些简单的操作和任务。 - - - -### 尝试 Ansible 项目 -一旦你掌握了基础和并拥有良好习惯,就可以开始一些具体主题和实例了。 - - * Ken Fallon 在 [_使用 Ansible 管理你的 Raspberry Pi fleet_][7] 一文中介绍了一个部署和管理 RPi 单元的示例。它介绍了受限环境中的安全和维护概念。 - * 在 [_将你的日历与 Ansible 融合以避免日程冲突_][8] 文章中, Nicolas Leiva 快速介绍了如何使用前置任务和条件在自动日程安排中中强制执行隔离窗口 - * Nicolas 在 [_创建一个融合你的谷歌日历的 Ansible 模块_][9] 中完成了他的日历隔离的理念。他的文章深入探讨了在 Go 中编写自定义 Ansible 模块以实现所需的日历连接。 Nicolas 介绍了构建和调用 Go 程序并将所需数据传递给 Ansible 并接收所需输出的不同方法。 - - - -### 提升你的 Ansible 技巧 - -Kubernetes 是近来的热门话题,以下文章提供了一些很好的示例来学习新技能。 - - * 在 [_适用于 Kubernets 自动编排你的 Ansible 模块_][10] 文章中, Seth Kenlon 介绍了 Ansible Kubernetes 模块, 介绍了用于测试的基本 Minikube 安装,并提供了一些用于 pod 控制的“k8s”模块的基本示例。 - * Jeff Geerling 在 [_使用 Ansible 的 Helm 模块构建 Kubernetes Minecraft 服务器_][11] 中解释了 Helm Chart 应用程序、Ansible 集合以及执行一个有趣的项目以在 k8s 集群中设置您自己的 Minecraft 服务器的概念。 - - - -### 其他 Ansible 新闻 -几年, Mark Phillips 写了 “网络上的 Ansible” 这一系列文章,覆盖许多 Ansible 主题。它们包含指向有趣的 Ansible 开发的链接,范围从基本指导、模块编写、 Kubernetes 、视频演示到 Ansible 社区新闻。所有有兴趣和任何水平的人都可以查看一下,有很高的参考价值! - - * [_容器,网络,安全,以及更多 Ansible 新闻_][12] - * [_CI/CD 管道和 Windows 用户的提示,以及更多 Ansible 新闻_][13] - * [_馆藏标志着Ansible生态系统的重大转变,以及更多Ansible新闻_][14] - * [_Jeff Geerling 的 Ansible 101 视频,以及更多 Ansible 新闻_][15] - * [_初学者指南、Windows、网络和更多 Ansible 新闻_][16] - - - -### 2021 快乐! - -我希望你的 Ansible 旅程已经开始,并能常从 Opensource.com 中的文章充实自己。在评论中告诉我们接下来你可能从哪方面了解 Ansible ,如果你想分享一些信息,请考虑在 Opensource.com 上 [写一篇文章][17] 。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/1/ansible - -作者:[James Farrell][a] -选题:[lujun9972][b] -译者:[Donkey](https://github.comDonkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jamesf -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation) -[2]: https://opensource.com/article/20/9/ansible -[3]: https://opensource.com/article/20/11/orchestration-vs-automation -[4]: https://opensource.com/article/20/9/install-packages-ansible -[5]: https://opensource.com/article/20/1/ansible-playbooks-lessons -[6]: https://opensource.com/article/20/10/first-day-ansible -[7]: https://opensource.com/article/20/9/raspberry-pi-ansible -[8]: https://opensource.com/article/20/10/calendar-ansible -[9]: https://opensource.com/article/20/10/ansible-module-go -[10]: https://opensource.com/article/20/9/ansible-modules-kubernetes -[11]: https://opensource.com/article/20/10/kubernetes-minecraft-ansible -[12]: https://opensource.com/article/20/1/ansible-news-edition-six -[13]: https://opensource.com/article/20/2/ansible-news-edition-seven -[14]: https://opensource.com/article/20/3/ansible-news-edition-eight -[15]: https://opensource.com/article/20/4/ansible-news-edition-nine -[16]: https://opensource.com/article/20/5/ansible-news-edition-ten -[17]: https://opensource.com/how-submit-article From be24d37d7ee47ab24e7f210ad985c9e0b758d552 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 21 Jun 2022 11:48:32 +0800 Subject: [PATCH 0049/3123] RP @lkxed https://linux.cn/article-14740-1.html --- ...210722 Write your first JavaScript code.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) rename {translated/tech => published}/20210722 Write your first JavaScript code.md (80%) diff --git a/translated/tech/20210722 Write your first JavaScript code.md b/published/20210722 Write your first JavaScript code.md similarity index 80% rename from translated/tech/20210722 Write your first JavaScript code.md rename to published/20210722 Write your first JavaScript code.md index e3a55f94da..7a5aace819 100644 --- a/translated/tech/20210722 Write your first JavaScript code.md +++ b/published/20210722 Write your first JavaScript code.md @@ -3,17 +3,16 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14740-1.html" 编写你的第一段 JavaScript 代码 ====== -JavaScript 是为 Web 而生的,但它可以做的事远不止于此。本文将带领你了解它的基础知识,然后你可以下载我们的备忘清单,以便随时掌握详细信息。 -![开源编程][1] +> JavaScript 是为 Web 而生的,但它可以做的事远不止于此。本文将带领你了解它的基础知识,然后你可以下载我们的备忘清单,以便随时掌握详细信息。 -图源:Opensource.com +![](https://img.linux.net.cn/data/attachment/album/202206/21/114718zzb8f6na6lgb28cn.jpg) JavaScript 是一种充满惊喜的编程语言。许多人第一次遇到 JavaScript 时,它通常是作为一种 Web 语言出现的。所有主流浏览器都有一个 JavaScript 引擎;并且,还有一些流行的框架,如 JQuery、Cash 和 Bootstrap 等,它们可以帮助简化网页设计;甚至还有用 JavaScript 编写的编程环境。它似乎在互联网上无处不在,但事实证明,它对于 [Electron][2] 等项目来说也是一种有用的语言。Electron 是一个构建跨平台桌面应用程序的开源工具包,它使用的语言就是 JavaScript。 @@ -21,11 +20,11 @@ JavaScript 语言的用途多到令人惊讶,它拥有各种各样的库,而 ### 安装 JavaScript -随着你的 JavaScript 水平不断提高,你可能会发现自己需要高级的 JavaScript 库和运行时。不过,刚开始学习的时候,你是根本不需要安装 JavaScript 的。因为所有主流的 Web 浏览器都包含一个 JavaScript 引擎来运行代码。你可以使用自己喜欢的文本编辑器编写 JavaScript,将其加载到 Web 浏览器中,接着你就能看到代码的作用。 +随着你的 JavaScript 水平不断提高,你可能会发现自己需要高级的 JavaScript 库和运行时环境。不过,刚开始学习的时候,你是根本不需要安装 JavaScript 环境的。因为所有主流的 Web 浏览器都包含一个 JavaScript 引擎来运行代码。你可以使用自己喜欢的文本编辑器编写 JavaScript,将其加载到 Web 浏览器中,接着你就能看到代码的作用。 ### 上手 JavaScript -要编写你的第一个 JavaScript 代码,请打开你喜欢的文本编辑器,例如 [Notepad++][3]、[Atom][4] 或 [VSCode][5] 等。因为它是为 Web 开发的,所以 JavaScript 可以很好地与 HTML 配合使用。因此,我们先来尝试一些基本的 HTML: +要编写你的第一个 JavaScript 代码,请打开你喜欢的文本编辑器,例如 [Atom][4] 或 [VSCode][5] 等。因为它是为 Web 开发的,所以 JavaScript 可以很好地与 HTML 配合使用。因此,我们先来尝试一些基本的 HTML: ``` @@ -66,9 +65,9 @@ JavaScript 语言的用途多到令人惊讶,它拥有各种各样的库,而 ![在浏览器中显示带有 JavaScript 的 HTML][7] -如你所见,`

` 标签仍然包含字符串 “Nothing here”,但是当它被渲染时,JavaScript 会改变它,使其包含 “Hello world”。是的,JavaScript 具有重建​​(或只是帮助构建)网页的能力。 +如你所见,`

` 标签仍然包含字符串 `"Nothing here"`,但是当它被渲染时,JavaScript 会改变它,使其包含 `"Hello world"`。是的,JavaScript 具有重建​​(或只是帮助构建)网页的能力。 -这个简单脚本中的 JavaScript 做了两件事。首先,它创建一个名为 `myvariable` 的变量,并将字符串 “Hello world!” 放置其中。然后,它会在当前文档(浏览器呈现的网页)中搜索 ID 为 “example” 的所有 HTML 元素。当它找到 `example` 时,它使用了 `innerHTML` 函数将 HTML 元素的内容替换为 `myvariable` 的内容。 +这个简单脚本中的 JavaScript 做了两件事。首先,它创建一个名为 `myvariable` 的变量,并将字符串 `"Hello world!"` 放置其中。然后,它会在当前文档(浏览器呈现的网页)中搜索 ID 为 `example` 的所有 HTML 元素。当它找到 `example` 时,它使用了 `innerHTML` 函数将 HTML 元素的内容替换为 `myvariable` 的内容。 当然,我们也可以不用自定义变量。因为,使用动态创建的内容来填充 HTML 元素也是容易的。例如,你可以使用当前时间戳来填充它: @@ -94,7 +93,7 @@ JavaScript 语言的用途多到令人惊讶,它拥有各种各样的库,而 在编程中,语法syntax 指的是如何编写句子(或“行”)的规则。在 JavaScript 中,每行代码必须以分号(`;`)结尾,以便运行代码的 JavaScript 引擎知道何时停止阅读。(LCTT 译注:从实用角度看,此处的“必须”其实是不正确的,大多数 JS 引擎都支持不加分号。Vue.js 的作者尤雨溪认为“没有应该不应该,只有你自己喜欢不喜欢”,他同时表示,“Vue.js 的代码全部不带分号”。详情可以查看他在知乎上对于此问题的 [回答][10]。) -单词(或 “字符串”strings)必须用引号(`"`)括起来,而数字(或 “整数”integers)则不用。 +单词(或 字符串strings)必须用引号(`"`)括起来,而数字(或 整数integers)则不用。 几乎所有其他东西都是 JavaScript 语言的约定,例如变量、数组、条件语句、对象、函数等等。 @@ -111,7 +110,7 @@ document.getElementById("example").innerHTML = typeof(myvariable); ``` -接着,你就会发现 Web 浏览器中显示出 “string” 字样,因为该变量包含的数据是 “Hello world!”。在 `myvariable` 中存储不同类型的数据(例如整数),浏览器就会把不同的数据类型打印到示例网页上。尝试将 `myvariable` 的内容更改为你喜欢的数字,然后重新加载页面。 +接着,你就会发现 Web 浏览器中显示出 “string” 字样,因为该变量包含的数据是 `"Hello world!"`。在 `myvariable` 中存储不同类型的数据(例如整数),浏览器就会把不同的数据类型打印到示例网页上。尝试将 `myvariable` 的内容更改为你喜欢的数字,然后重新加载页面。 ### 在 JavaScript 中创建函数 @@ -160,7 +159,7 @@ document.getElementById("example").innerHTML = typeof(myvariable); 学习 JavaScript 既简单又有趣。网络上有很多网站提供了相关教程,还有超过一百万个 JavaScript 库可帮助你与设备、外围设备、物联网、服务器、文件系统等进行交互。在你学习的过程中,请将我们的 [JavaScript 备忘单][9] 放在身边,以便记住语法和结构的细节。 -正文中的配图来自:Seth Kenlon,CC BY-SA 4.0 +> **[JavaScript 备忘单][9]** -------------------------------------------------------------------------------- @@ -169,7 +168,7 @@ via: https://opensource.com/article/21/7/javascript-cheat-sheet 作者:[Seth Kenlon][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/) 荣誉推出 From fe79a51db6dfb2ecc2fe0f61269800fc465b6176 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 21 Jun 2022 16:02:20 +0800 Subject: [PATCH 0050/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220621=20EdUBudgie=20Linux-=20Ubuntu=20Spin=20with?= =?UTF-8?q?=20Budgie=20Desktop=20for=20Students,=20Teachers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...h Budgie Desktop for Students, Teachers.md | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 sources/tech/20220621 EdUBudgie Linux- Ubuntu Spin with Budgie Desktop for Students, Teachers.md diff --git a/sources/tech/20220621 EdUBudgie Linux- Ubuntu Spin with Budgie Desktop for Students, Teachers.md b/sources/tech/20220621 EdUBudgie Linux- Ubuntu Spin with Budgie Desktop for Students, Teachers.md new file mode 100644 index 0000000000..f86fff770d --- /dev/null +++ b/sources/tech/20220621 EdUBudgie Linux- Ubuntu Spin with Budgie Desktop for Students, Teachers.md @@ -0,0 +1,178 @@ +[#]: subject: "EdUBudgie Linux: Ubuntu Spin with Budgie Desktop for Students, Teachers" +[#]: via: "https://www.debugpoint.com/2022/06/edubudgie-linux-22-04/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +EdUBudgie Linux: Ubuntu Spin with Budgie Desktop for Students, Teachers +====== +EduBudgie is a new Ubuntu LTS flavour featuring the stunning Budgie desktop. We will give you a tour. + +![EdUBudgie Linux 22.04 Budgie Desktop][1] + +A Linux Hobbyist and educator ([Adam Dix][2]) announced that a new Budgie desktop Ubuntu spin is now available. The current version is based on the recently released Ubuntu 22.04 LTS “Jammy Jellyfish” and Budgie Desktop 10.6. + +### Why another distro? + +As per the creator of this distribution, the primary goal is to give an out-of-the-box experience with FOSS operating system, especially for the underprivileged education sector. How? Firstly, the distro pre-loads most of the new required educational software in its ISO image. Secondly, EduBudgie focuses on running in Chromebooks if needed. Because, as per the Google educational initiatives, millions of well-made Chromebooks are still out there. And EduBudgie can be installed easily on those hardware (either dual boot or a fresh install). And this will make the Chromebooks usable for the underfunded schools worldwide. + +Besides, there are not many Educational Linux Linux distros out there. Hence, this distro aims to save time and cost for schools and university administrations by installing additional packages, solving dependencies, etc. + +### EdUBudgie Linux 22.04 Review + +#### Installation + +The latest ISO image size of EdUBudgie Linux is 5.7 GB which is relatively higher. The primary reason is that many apps are pre-loaded into the ISO to help educators. + +The installer is Ubuntu’s Ubiquity installer for EdUBudgie, and installation takes around 5 minutes with basic packages. There were no errors or problems during installation during our quick test. + +However, this distro requires a minimum of ~32 GB of disk space on the root partition for installation. It is a hard requirement for installation. + +![EdUBudgie requirement on disk space][3] + +#### First Look + +Budgie desktop looks sleek and beautiful by itself. The primary taskbar cum system tray is at the top. The main application menu is at the left of the top bar. In the middle, you get the fixed app shortcuts which act as a Dock. The system tray is on the right side of the bar. + +The application menu is your traditional “Budgie app menu” and looks nice and clean. + +Moreover, it has a GRID view and a search and list view. Also, the power options are present inside the App menu itself. + +![App Menu Grid View][4] + +![App Menu List View][5] + +The overall look perfectly balances a professional and not too fancy look. It uses the chromeos-compact GTK2 theme with the win10 icon pack. + +#### Applications + +Let me give you a basic example. The application stack of EdUBudgie Linux is well-curated. It’s a mix of GNOME apps, Mint apps and Budgie. An essential app is a Calculator for a student. So, the EdUBudie brings the excellent Qalculate advanced calculator for the need. As you can see, much thought went into curating pre-loaded apps. + +Let’s have a quick recap of the apps by their categories. + +##### Accessories and Educational Apps + +Firstly, in the Accessories section, you get the Nemo file manager (from Linux Mint). Perhaps Nemo is the second-best File manager after Dolphin if you compare the features. Hence, it’s a good choice. + +In addition, it brings the new GNOME Screenshot tool, new [Gnome Text Editor][6], a To-Do List and Break Timer to remind you to take breaks during your study sessions. + +Secondly, the main Educational applications are chosen to cater to different classes of students. Here’s a list: + +* gbrainy: A educational quiz, games that feature math and other subjects to keep your mind active +* GeoGebra: Famous open-source program to plot complex mathematical graphs. +* Kig: An interactive Geometry application which makes you think about your ideas. This is one of the best [KDE apps][7] out there. +* KWordQuiz: Improve your English language vocabulary using this excellent app. +* OpenBoard: A necessary tool for taking notes, and rough drawing and perhaps one of the [best whiteboard app][8]s. +* Scratch: A click-and-point programmable animation program developed by MIT for junior students. It helps to learn about the basics of logic and flows in programming. + +The impressive list, isn’t it? + +Here are some of the images of the above apps for your reference. + +![Scratch][9] + +![Kig][10] + +![GeoGebra][11] + +![gbrainy][12] + +Let’s talk about the Science and Programming applications. + +##### Science and Programming + +The programming applications include Geany and Visual Studio Code Editor, an excellent choice as IDE for development. In addition, it contains the following applications for various needs. + +* BASIC-256: A program to learn BASIC for young students +* KAlgebra: Math expression solver and graph plotter +* Kalzium: View and understand the Chemical periodic table of elements +* KGeography: View the maps of continents and countries +* KiCad App Suite: CAD drawing +* LibreCAD: Free CAD Drawing app + +##### Office and Graphics Apps + +Office-suite is an important aspect of any educational operating system. EduBUdgie brings the WPS Office as a default office program for documents, spreadsheets and presentations. This is an interesting choice over LibreOffice. + +In addition, you can use Calibre e-book management and Wondershare EdrawMind for diagrams and flowcharts. However, Wondershare EdrawMind is not open-source and comes with limited features. You can use free and open-source Dia, which is also pre-loaded. + +The Graphics suite of apps includes all famous open-source apps. A quick list is presented below. + +* Blender 3D Drawing +* Darktable RAW Photo manager +* GIMP for raster image processing +* Inkscape for Vector Image +* Krita +* Scribus + +Finally, EdUBudgie uses Geary email client, Google Chrome default web browser and Tilix terminal. + +##### Remote Communication + +Finally, look at the essential apps needed in today’s world. Due to the Pandemic, the schools and universities also conduct classes online. Furthermore, in-person communication is problematic for various reasons for students. With that in mind, EdUBudgie brings communication apps for everyone. + +Firstly, the famous Zoom client is pre-installed, which helps you to participate in video conferences and meetings. Secondly, Skype and Microsoft Teams Linux clients are installed to join discussions on Microsoft networks. Besides that, Rambox brings a super-productivity boost to your study where you can create workspaces with multiple apps such as mails, messenger, Slack, etc. + +![EdUBudgie Brings well-curated Communication Apps for Linux][13] + +##### A mix of backend tech + +As you can see from the above list of applications, the apps are chosen from different distros. It consists of KDE Plasma, Linux Mint, GNOME and other tech-based apps. Hence, all the backend packages such as Qt, Java (OpenJDK), and GTK4 are well tested and punched into the ISO. This is a significant feat by itself. + +#### Performance + +You may be wondering about performance because there are so many applications. Well, with a significant workload which includes multiple heavy apps (Teams, Skype etc.) running simultaneously, it consumes around 62% of your available RAM (i.e. 2.4 GB of 4 GB RAM). Also, the CPU is at 20% on average. + +It is an excellent performance metric considering all the apps and their memory footprint. The Budgie desktop itself is well optimized and contributes to this performance. + +In addition, the idle state performance is also good, i.e. 1 GB of memory and CPU is within 5%. The idle state resources used by X.Org, lightdm and systemd. + +Finally, EdUBudgie Linux uses 19 GB of disk space for its base installation. + +![EdUBudgie Linux Performance (average workload)][14] + +![EdUBudgie Linux Performance (idle)][15] + +### Closing Notes + +I am impressed by this distribution on how it is well designed and focused on only one purpose. Not to mention the super-fast performance of the Budgie desktop itself. Also, thanks to the mix of GTK4, Budgie desktop components and icon themes, it looks professional. + +Moreover, the stability, performance and long-term support (via Ubuntu LTS) are just add-ons to the excellent list of features. You can use this distribution for your daily driver, making it more appealing even if you are not a student. + +You can download EdUBudgie Linux at their [official website][16]. + +That said, I hope you find this review helpful and don’t forget to check out our other [reviews here][17]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2022/06/edubudgie-linux-22-04/ + +作者:[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/06/EdUBudgie-Linux-22.04-Budgie-Desktop.jpg +[2]: https://www.linkedin.com/in/adam-dix-0339358/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/EdUBudgie-requirement-on-disk-space.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/App-Menu-Grid-View.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/App-Menu-List-View.jpg +[6]: https://www.debugpoint.com/2021/12/gnome-text-editor/ +[7]: https://www.debugpoint.com/tag/kde-apps/ +[8]: https://www.debugpoint.com/2022/02/top-whiteboard-applications-linux/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/06/Scratch.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/06/Kig.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/06/GeoGebra.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/06/gbrainy.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/06/EdUBudgie-Brings-well-curated-Communication-Apps-for-Linux.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2022/06/EdUBudgie-Linux-Performance-average-workload.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2022/06/EdUBudgie-Linux-Performance-idle.jpg +[16]: https://www.edubudgie.com/download +[17]: https://www.debugpoint.com/tag/linux-distro-review From 17cb15d38f110e58e2b71098d3366452ce9f8a28 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 21 Jun 2022 16:20:10 +0800 Subject: [PATCH 0051/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220621=20Mysterious=20GeckoLinux=20Creator=20Revea?= =?UTF-8?q?ls=20a=20New=20Debian=20Remix=20Distro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eator Reveals a New Debian Remix Distro.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md diff --git a/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md b/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md new file mode 100644 index 0000000000..3843015257 --- /dev/null +++ b/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md @@ -0,0 +1,75 @@ +[#]: subject: "Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro" +[#]: via: "https://news.itsfoss.com/debian-remix-spiral-linux/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro +====== +GeckoLinux creator unveils a new Linux distribution based on Debian, focusing on simplicity and usability. + +![spiral linux][1] + +The creator of GeckoLinux (providing an improved openSUSE experience) remains anonymous. + +And, I won’t comment if it is a good or bad thing, but now the developer is back with another similar project based on Debian. + +**SpiralLinux**, a Debian-based distribution that aims to make Debian usable for the end-users. + +### SpiralLinux: A Distro Built from Debian + +![spirallinux][2] + +It is no surprise that most of the user-friendly Linux distributions have Debian as its original base. Ubuntu has managed to do a lot of improvements on top of it to make it a good desktop experience, even for users without prior Linux experience. + +So, how is this different? + +Well, the creator says that this project aims to help you use Debian with all its core strengths without customizing a lot of things. + +SpiralLinux is a close-to-vanilla experience if you want to use Debian on your desktop. You can also upgrade to the latest stable Debian version (or unstable/testing) as you require without losing the user-friendly customizations. + +In other words, SpiralLinux makes Debian fit for desktop usage with minimal efforts to the end-user. + +And, to achieve this, SpiralLinux uses official Debian package repositories providing a live installation method to let you setup a customized Debian system. + +Additionally, you have the following features in SpiralLinux: + +* VirtualBox support out-of-the-box +* Preinstalled proprietary media codecs and non-free package repositories +* Preinstalled proprietary firmware +* Printer support +* Flatpak support through a GUI (software center) +* zRAM swap enabled by default +* Multiple desktop environments (Cinnamon, XFCE, Gnome, Plasma, MATE, Budgie, LXQt) + +Considering Debian always sticks to the open-source and free packages, the end-user has to figure out the codecs, drivers, and other packages to make a lot of things work for a proper desktop experience. + +And, it seems like SpiralLinux could live as a useful alternative to Debian just like GeckoLinux is to openSUSE. + +### Download SpiralLinux + +If you always wanted to try Debian, but did not want to fiddle around a lot for initial configuration, you can try SpiralLinux. + +You can head to its official webpage hosted on GitHub to explore more about it. + +[SpiralLinux][3] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/debian-remix-spiral-linux/ + +作者:[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/06/spiral-linux-debian-remix-distro.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/spirallinux.jpg +[3]: https://spirallinux.github.io/ From 1f6b10e0f6f3b98533082cf689cd20fbeea45c87 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 21 Jun 2022 16:22:52 +0800 Subject: [PATCH 0052/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220621=207=20summer=20book=20recommendations=20fro?= =?UTF-8?q?m=20open=20source=20enthusiasts.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mendations from open source enthusiasts.md | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md diff --git a/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md b/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md new file mode 100644 index 0000000000..5d1352dadb --- /dev/null +++ b/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md @@ -0,0 +1,184 @@ +[#]: subject: "7 summer book recommendations from open source enthusiasts" +[#]: via: "https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list" +[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 summer book recommendations from open source enthusiasts +====== +Members of the Opensource.com community recommend this mix of books covering everything from a fun cozy mystery to non-fiction works that explore thought-provoking topics. + +![Ceramic mug of tea or coffee with flowers and a book in front of a window][1] + +Image by: Photo by [Carolyn V][2] on [Unsplash][3] + +It is my great pleasure to introduce Opensource.com's 2022 summer reading list. This year's list contains seven wonderful reading recommendations from members of the Opensource.com community. You will find a nice mix of books covering everything from a fun cozy mystery to non-fiction works that explore thought-provoking topics. I hope you find something on this list that interests you. + +Enjoy! + +![Book title 97 Things Every Java Programmer Should Know][4] + +Image by: O'Reilly Press + +**[97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts, edited by Kevlin Henney and Trisha Gee][5]** + +*[Recommendation written by Seth Kenlon][6]* + +Written by 73 different authors working in all aspects of the software industry, the secret to this book's greatness is that it actually applies to much more than just Java programming. Of course, some chapters lean into Java, but there are topics like Be aware of your container surroundings, Deliver better software, faster, and Don't hIDE your tools that apply to development regardless of language. + +Better still, some chapters apply to life in general. Break problems and tasks into small chunks is good advice on how to tackle any problem, Build diverse teams is important for every group of collaborators, and From puzzles to products is a fascinating look at how the mind of a puzzle-solver can apply to many different job roles. + +Each chapter is just a few pages, and with 97 to choose from, it's easy to skip over the ones that don't apply to you. Whether you write Java code all day, just dabble, or if you haven't yet started, this is a great book for geeks interested in code and the process of software development. + +![Book title A City is Not a Computer][7] + +Image by: Princeton University Press + +**[A City is Not a Computer: Other Urban Intelligences, by Shannon Mattern][8]** + +*[Recommendation written by Scott Nesbitt][9]* + +These days, it's become fashionable (if not inevitable) to make everything *smart*: Our phones, our household appliances, our watches, our cars, and, especially, our cities. + +With the latter, that means putting sensors everywhere, collecting data as we go about our business, and pushing information (whether useful or not) to us based on that data. + +This begs the question, does embedding all that technology in a city make it smart? In *A City Is Not a Computer*, Shannon Mattern argues that it doesn't. + +A goal of making cities smart is to provide better engagement with and services to citizens. Mattern points out that smart cities often "aim to merge the ideologies of technocratic managerialism and public service, to reprogram citizens as 'consumers' and 'users'." That, instead of encouraging citizens to be active participants in their cities' wider life and governance. + +Then there's the data that smart systems collect. We don't know what and how much is being gathered. We don't know how it's being used and by whom. There's *so much* data being collected that it overwhelms the municipal workers who deal with it. They can't process it all, so they focus on low-hanging fruit while ignoring deeper and more pressing problems. That definitely wasn't what cities were promised when they were sold smart systems as a balm for their urban woes. + +*A City Is Not a Computer* is a short, dense, well-researched polemic against embracing smart cities because technologists believe we should. The book makes us think about the purpose of a smart city, who really benefits from making a city smart, and makes us question whether we need to or even should do that. + +![Book title git sync murder][10] + +Image by: Tilted Windmill Press + +**[git sync murder, by Michael Warren Lucas][11]** + +*[Recommendation written by Joshua Allen Holm][12]* + +Dale Whitehead would rather stay at home and connect to the world through his computer's terminal, especially after what happened at the last conference he attended. During that conference, Dale found himself in the role of an amateur detective solving a murder. You can read about that case in the first book in this series, *git commit murder*. + +Now, back home and attending another conference, Dale again finds himself in the role of detective. *git sync murder* finds Dale attending a local tech conference/sci-fi convention where a dead body is found. Was it murder or just an accident? Dale, now the "expert" on these matters, finds himself dragged into the situation and takes it upon himself to figure out what happened. To say much more than that would spoil things, so I will just say *git sync murder* is engaging and enjoyable to read. Reading *git commit murder* first is not necessary to enjoy *git sync murder*, but I highly recommend both books in the series. + +Michael Warren Lucas's *git murder* series is perfect for techies who also love cozy mysteries. Lucas has literally written the book on many complex technical topics, and it carries over to his fiction writing. The characters in *git sync murder* talk tech at conference booths and conference social events. If you have not been to a conference recently because of COVID and miss the experience, Lucas will transport you to a tech conference with the added twist of a murder mystery to solve. Dale Whitehead is an interesting, if somewhat unorthodox, cozy mystery protagonist, and I think most Opensource.com readers would enjoy attending a tech conference with him as he finds himself thrust into the role of amateur sleuth. + +![Book title Kick Like a Girl][13] + +Image by: Inner Wings Foundation + +**[Kick Like a Girl, by Melissa Di Donato Roos][14]** + +*[Recommendation written by Joshua Allen Holm][15]* + +Nobody likes to be excluded, but that is what happens to Francesca when she wants to play football at the local park. The boys won't play with her because she's a girl, so she goes home upset. Her mother consoles her by relating stories about various famous women who have made an impact in some significant way. The historical figures detailed in *Kick Like a Girl* include women from throughout history and from many different fields. Readers will learn about Frida Kahlo, Madeleine Albright, Ada Lovelace, Rosa Parks, Amelia Earhart, Marie Curie, Valentina Tereshkova, Florence Nightingale, and Malala Yousafzai. After hearing the stories of these inspiring figures, Francesca goes back to the park and challenges the boys to a football match. + +*Kick Like a Girl* features engaging writing by Melissa Di Donato Roos (SUSE's CEO) and excellent illustrations by Ange Allen. This book is perfect for young readers, who will enjoy the rhyming text and colorful illustrations. Di Donato Roos has also written two other books for children, *How Do Mermaids Poo?* and *The Magic Box*, both of which are also worth checking out. + +![Book title Mine!][16] + +Image by: Doubleday + +**[Mine!: How the Hidden Rules of Ownership Control Our Lives, by Michael Heller and James Salzman][17]** + +*[Recommendation written by Bryan Behrenshausen][18]* + +"A lot of what you know about ownership is wrong," authors Michael Heller and James Salzman write in *Mine!* It's the kind of confrontational invitation people drawn to open source can't help but accept. And this book is certainly one for open source aficionados, whose views on ownership—of code, of ideas, of intellectual property of all kinds—tend to differ from mainstream opinions and received wisdom. In this book, Heller and Salzman lay out the "hidden rules of ownership" that govern who controls access to what. These rules are subtle, powerful, deeply historical conventions that have become so commonplace they just seem incontrovertible. We know this because they've become platitudes: "First come, first served" or "You reap what you sow." Yet we see them play out everywhere: On airplanes in fights over precious legroom, in the streets as neighbors scuffle over freshly shoveled parking spaces, and in courts as juries decide who controls your inheritance and your DNA. Could alternate theories of ownership create space for rethinking some essential rights in the digital age? The authors certainly think so. And if they're correct, we might respond: Can open source software serve as a model for how ownership works—or doesn't—in the future? + +![Book Title Not All Fairy Tales Have Happy Endings][19] + +Image by: Lulu.com + +**[Not All Fairy Tales Have Happy Endings: The Rise and Fall of Sierra On-Line, by Ken Williams][20]** + +*[Recommendation written by Joshua Allen Holm][21]* + +During the 1980s and 1990s, Sierra On-Line was a juggernaut in the computer software industry. From humble beginnings, this company, founded by Ken and Roberta Williams, published many iconic computer games. King's Quest, Space Quest, Quest for Glory, Leisure Suit Larry, and Gabriel Knight are just a few of the company's biggest franchises. + +*Not All Fairy Tales Have Happy Endings* covers everything from the creation of Sierra's first game, [Mystery House][22], to the company's unfortunate and disastrous acquisition by CUC International and the aftermath. The Sierra brand would live on for a while after the acquisition, but the Sierra founded by the Williams was no more. Ken Williams recounts the entire history of Sierra in a way that only he could. His chronological narrative is interspersed with chapters providing advice about management and computer programming. Ken Williams had been out of the industry for many years by the time he wrote this book, but his advice is still extremely relevant. + +Sierra On-Line is no more, but the company made a lasting impact on the computer gaming industry. *Not All Fairy Tales Have Happy Endings* is a worthwhile read for anyone interested in the history of computer software. Sierra On-Line was at the forefront of game development during its heyday, and there are many valuable lessons to learn from the man who led the company during those exciting times. + +![Book title The Soul of a New Machine][23] + +Image by: Back Bay Books + +**[The Soul of a New Machine, by Tracy Kidder][24]** + +*[Recommendation written by Guarav Kamathe][25]* + +I am an avid reader of the history of computing. It's fascinating to know how these intelligent machines that we have become so dependent on (and often take for granted) came into being. I first heard of [The Soul of a New Machine][26] via [Bryan Cantrill][27]'s [blog post][28]. This is a non-fiction book written by [Tracy Kidder][29] and published in 1981 for which he [won a Pulitzer prize][30]. Imagine it's the 1970s, and you are part of the engineering team tasked with designing the [next generation computer][31]. The backdrop of the story begins at Data General Corporation, a then mini-computer vendor who was racing against time to compete with the 32-bit VAX computers from Digital Equipment Corporation (DEC). The book outlines how two competing teams within Data General, both wanting to take a shot at designing the new machine, results in a feud. What follows is a fascinating look at the events that unfold. The book provides insights into the minds of the engineers involved, the management, their work environment, the technical challenges they faced along the way and how they overcame them, how stress affected their personal lives, and much more. Anybody who wants to know what goes into making a computer should read this book. + +There is the 2022 suggested reading list. It provides a variety of great options that I believe will provide Opensource.com readers with many hours of thought-provoking entertainment. Be sure to check out our previous reading lists for even more book recommendations. + +* [2021 Opensource.com summer reading list][32] +* [2020 Opensource.com summer reading list][33] +* [2019 Opensource.com summer reading list][34] +* [2018 Open Organization summer reading list][35] +* [2016 Opensource.com summer reading list][36] +* [2015 Opensource.com summer reading list][37] +* [2014 Opensource.com summer reading list][38] +* [2013 Opensource.com summer reading list][39] +* [2012 Opensource.com summer reading list][40] +* [2011 Opensource.com summer reading list][41] +* [2010 Opensource.com summer reading list][42] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list + +作者:[Joshua Allen Holm][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/holmja +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/tea-cup-mug-flowers-book-window.jpg +[2]: https://unsplash.com/@sixteenmilesout?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://opensource.com/sites/default/files/2022-06/97_Things_Every_Java_Programmer_Should_Know_1.jpg +[5]: https://www.oreilly.com/library/view/97-things-every/9781491952689/ +[6]: https://opensource.com/users/seth +[7]: https://opensource.com/sites/default/files/2022-06/A_City_is_Not_a_Computer_0.jpg +[8]: https://press.princeton.edu/books/paperback/9780691208053/a-city-is-not-a-computer +[9]: https://opensource.com/users/scottnesbitt +[10]: https://opensource.com/sites/default/files/2022-06/git_sync_murder_0.jpg +[11]: https://mwl.io/fiction/crime#gsm +[12]: https://opensource.com/users/holmja +[13]: https://opensource.com/sites/default/files/2022-06/Kick_Like_a_Girl.jpg +[14]: https://innerwings.org/books/kick-like-a-girl +[15]: https://opensource.com/users/holmja +[16]: https://opensource.com/sites/default/files/2022-06/Mine.jpg +[17]: https://www.minethebook.com/ +[18]: https://opensource.com/users/bbehrens +[19]: https://opensource.com/sites/default/files/2022-06/Not_All_Fairy_Tales.jpg +[20]: https://kensbook.com/ +[21]: https://opensource.com/users/holmja +[22]: https://en.wikipedia.org/wiki/Mystery_House +[23]: https://opensource.com/sites/default/files/2022-06/The_Soul_of_a_New_Machine.jpg +[24]: https://www.hachettebookgroup.com/titles/tracy-kidder/the-soul-of-a-new-machine/9780316204552/ +[25]: https://opensource.com/users/gkamathe +[26]: https://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine +[27]: https://en.wikipedia.org/wiki/Bryan_Cantrill +[28]: http://dtrace.org/blogs/bmc/2019/02/10/reflecting-on-the-soul-of-a-new-machine/ +[29]: https://en.wikipedia.org/wiki/Tracy_Kidder +[30]: https://www.pulitzer.org/winners/tracy-kidder +[31]: https://en.wikipedia.org/wiki/Data_General_Eclipse_MV/8000 +[32]: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list +[33]: https://opensource.com/article/20/6/summer-reading-list +[34]: https://opensource.com/article/19/6/summer-reading-list +[35]: https://opensource.com/open-organization/18/6/summer-reading-2018 +[36]: https://opensource.com/life/16/6/2016-summer-reading-list +[37]: https://opensource.com/life/15/6/2015-summer-reading-list +[38]: https://opensource.com/life/14/6/annual-reading-list-2014 +[39]: https://opensource.com/life/13/6/summer-reading-list-2013 +[40]: https://opensource.com/life/12/7/your-2012-open-source-summer-reading +[41]: https://opensource.com/life/11/7/summer-reading-list +[42]: https://opensource.com/life/10/8/open-books-opensourcecom-summer-reading-list From f20cd5567db927f554ee3290f028787a6c01d820 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 21 Jun 2022 16:24:40 +0800 Subject: [PATCH 0053/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220621=20How=20SREs=20can=20achieve=20effective=20?= =?UTF-8?q?incident=20response.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...can achieve effective incident response.md | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 sources/tech/20220621 How SREs can achieve effective incident response.md diff --git a/sources/tech/20220621 How SREs can achieve effective incident response.md b/sources/tech/20220621 How SREs can achieve effective incident response.md new file mode 100644 index 0000000000..923e3cd457 --- /dev/null +++ b/sources/tech/20220621 How SREs can achieve effective incident response.md @@ -0,0 +1,176 @@ +[#]: subject: "How SREs can achieve effective incident response" +[#]: via: "https://opensource.com/article/22/6/effective-incident-response-site-reliability-engineers" +[#]: author: "Robert Kimani https://opensource.com/users/robert-charles" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How SREs can achieve effective incident response +====== +Get back to business and continue services in a timely manner by implementing a thorough incident response strategy. + +![Person using a laptop][1] + +Incident response includes monitoring, detecting, and reacting to unplanned events such as security breaches or other service interruptions. The goal is to get back to business, satisfy service level agreements (SLAs), and provide services to employees and customers. Incident response is the planned reaction to a breach or interruption. One goal is to avoid unmanaged incidents. + +### Establish an on-call system + +One way of responding is to establish an on-call system. These are the steps to consider when you're setting up an on-call system: + +1. Design an [effective on-call system][2] +2. Understand managed vs. unmanaged incidents +3. Build and implement an effective postmortem process +4. Learn the tools and templates for postmortems + +### Understand managed and unmanaged incidents + +An *unmanaged incident* is an issue that an on-call engineer handles, often with whatever team member happens to be available to help. More often than not, unmanaged incidents become serious issues because they are not handled correctly. Issues include: + +* No clear roles. +* No incident command. +* Random team members involved (freelancing), the primary killer of the management process. +* Poor (or lack of) communication. +* No central body running troubleshooting. + +A *managed incident* is one handled with clearly defined procedures and roles. Even when an incident isn't anticipated, it's still met with a team that's prepared. A managed incident is ideal. It includes: + +* Clearly defined roles. +* Designated incident command that leads the effort. +* Only the ops-team defined by the incident command updates systems. +* A dedicated communications role exists until a communication person is identified. The Incident Command can fill in this role. +* A recognized command post such as a "war room." Some organizations have a defined "war room bridge number" where all the incidents are handled. + +Incident management takes place in a war room. The Incident Command is the role that leads the war room. This role is also responsible for organizing people around the operations team, planning, and communication. + +The Operations Team is the only team that can touch the production systems. Hint: Next time you join an incident management team, the first question to ask is, Who is running the Incident Command? + +### Deep dive into incident management roles + +Incident management roles clearly define who is responsible for what activities. These roles should be established ahead of time and well-understood by all participants. + +**Incident Command**: Runs the war room and assigns responsibilities to others. + +**Operations Team**: Only role allowed to make changes to the production system. + +**Communication Team**: Provides periodic updates to stakeholders such as the business partners or senior executives. + +**Planning Team**: Supports operations by handling long-term items such as providing bug fixes, postmortems, and anything that requires a planning perspective. + +As an SRE, you'll probably find yourself in the Operations Team role, but you may also have to fill other roles. + +### Build and implement an effective postmortem process + +Postmortem is a critical part of incident management that occurs once the incident is resolved. + +#### Why postmortem? + +* Fully understand/document the incident using postmortems. You can ask questions such as "What could have been done differently?" +* Conduct a deep dive "root cause" analysis, producing valuable insights. +* Learn from the incident. This is the primary benefit of doing postmortems. +* Identify opportunities for prevention as part of postmortem analysis, e.g., identify a monitoring enhancement to catch an issue sooner in the future. +* Plan and follow through with assigned activities as part of the postmortem. + +#### Blameless postmortem: a fundamental tenet of SRE + +No finger-pointing. People are quite honestly scared about postmortems because one person or team may be held responsible for the outage. Avoid finger-pointing at all costs; instead, focus solely on systems and processes and *not* on individuals. Isolating individuals/teams can create an unhealthy culture. For instance, the next time someone commits a mistake, they will not come forward and accept it. They may hide the activity due to the fear of being blamed. + +Though there is no room for finger-pointing, the postmortem must call out improvement opportunities. This approach helps avoid further similar incidents. + +#### When is a postmortem needed? + +Is a postmortem necessary for all incidents or only for certain situations? Here are some suggestions for when a postmortem is useful: + +* End-user experience impact beyond a threshold (SLO). If the SLO in place is impacted due to: + * Unavailable services + * Unacceptable performance + * Erratic functionality +* Data loss. +* Organization/group-specific requirements with different policies and protocols to follow. + +#### Six minimum items required in a postmortem + +The postmortem should include the following six components: + +1. Summary: Provide a succinct incident summary. +2. Impact (must include any financial impact): Executives will look for impact and financial information. +3. Root cause(s): Identify the root cause, if possible. +4. Resolution: What the team actually did to fix the issue. +5. Monitoring (issue detection): Specify how the incident was identified. Hopefully, this was a monitoring system rather than an end-user complaint. +6. Action items with due dates and owners: This is important. Do not simply conduct a postmortem and forget the incident. Establish action items, assign owners, and follow through on these. Some organizations may also include a detailed timeline of occurrences in the postmortem, which can be useful to walk through the sequence of events. + +Before the postmortem is published, a supervisor or senior team member(s) must review the document to avoid any errors or misrepresentation of facts. + +#### Find postmortem tools and templates + +If you haven't done postmortems before, you may be wondering how to get started. You've learned a lot about postmortems thus far, but how do you actually implement one? + +That's where tools and templates come into play. There are many tools available. Consider the following: + +1. Existing ITSM tools in your organization. Popular examples include ServiceNow, Remedy, Atlassian ITSM, etc. Existing tools likely provide postmortem tracking capabilities. +2. Open source tools are also available, the most popular being [Morgue][3], released by Etsy. Another popular choice is [PagerDuty][4]. +3. Develop your own. Remember, SREs are also software engineers! It doesn't have to be fancy, but it must have an easy-to-use interface and a way to store the data reliably. +4. Templates. These are documents that you can readily use to track your postmortems. There are many templates available, but the most popular ones are: + +* Google: [Postmortem Culture: Learning from Failure][5] and [Example Postmortem][6] +* Pagerduty: [The Postmortem][7] +* Atlassian: Root Cause Analysis – The 5 whys? +[Incident Postmortem Template][8] +[Incident Postmortems][9] +* [Splunk On-Call, formerly VictorOps][12] +* Other [GitHub Template resources][13] +* A custom in-house template: This may be the most effective option as it suits your organization's needs. + +### Wrap up + +Here are the key points for the above incident response discussion: + +* Effective on-call system is necessary to ensure service availability and health. +* Balance workload for on-call engineers. + * Allocate resources. + * Use multi-region support. + * Promote a safe and positive environment. +* Incident management must facilitate a clear separation of duties. + * Incident command, operations, planning, and communication. +* Blameless postmortems help prevent repeated incidents. + +Incident management is only one side of the equation. For an SRE organization to be effective, it must also have a change management system in place. After all, changes cause many incidents. + +The next article looks at ways to apply effective change management. + +#### Further reading + +* [Blameless Postmortems and a Just Culture][16] +* [Postmortem Checklist][17] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/effective-incident-response-site-reliability-engineers + +作者:[Robert Kimani][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/robert-charles +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/laptop_screen_desk_work_chat_text.png +[2]: https://opensource.com/article/22/6/introduction-site-reliability-engineering +[3]: https://github.com/etsy/morgue +[4]: https://github.com/PagerDuty/postmortem-docs +[5]: https://sre.google/sre-book/postmortem-culture/ +[6]: https://sre.google/sre-book/example-postmortem/ +[7]: https://postmortems.pagerduty.com/ +[8]: https://www.atlassian.com/incident-management/postmortem/templates +[9]: https://www.atlassian.com/incident-management/handbook/postmortems +[10]: https://www.atlassian.com/incident-management/postmortem/templates +[11]: https://www.atlassian.com/incident-management/handbook/postmortems +[12]: https://help.victorops.com/ +[13]: https://github.com/dastergon/postmortem-templates +[14]: https://www.atlassian.com/incident-management/postmortem/templates +[15]: https://www.atlassian.com/incident-management/handbook/postmortems +[16]: https://www.etsy.com/codeascraft/blameless-postmortems/ +[17]: https://docs.google.com/document/d/1iaEgF0ICSmKKLG3_BT5VnK80gfOenhhmxVnnUcNSQBE/edit From b15457d5d58fbc6bbf8e56120ab8360a13bbc15a Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 00:00:03 +0800 Subject: [PATCH 0054/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220621=20An=20Introduction=20to=20Teradata.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220621 An Introduction to Teradata.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20220621 An Introduction to Teradata.md diff --git a/sources/tech/20220621 An Introduction to Teradata.md b/sources/tech/20220621 An Introduction to Teradata.md new file mode 100644 index 0000000000..c76718ee1e --- /dev/null +++ b/sources/tech/20220621 An Introduction to Teradata.md @@ -0,0 +1,99 @@ +[#]: subject: "An Introduction to Teradata" +[#]: via: "https://www.opensourceforu.com/2022/06/an-introduction-to-teradata/" +[#]: author: "Saurabh Kumar https://www.opensourceforu.com/author/saurabh-kumar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An Introduction to Teradata +====== +Teradata is one of the most popular relational database management systems (RDBMS) appropriate for huge data warehousing applications. It is highly scalable and capable of handling large volumes of data. This article provides a basic understanding of Teradata architecture, and the types of spaces and tables it has. + +![an-introduction-of-teradata-featured-image][1] + +As per official Teradata documentation: “Teradata database is a massively parallel analytics engine that can help businesses achieve breakthrough results across all industries. Whether companies need to improve profitability, mitigate risks, innovate products, enhance the customer experience, or achieve other objectives, analytics paves the way to success.” + +### Teradata architecture + +**Node:** This is an essential building block of the Teradata database system and is made up of hardware and software components. A server can also be considered as a node. + +*PE (parsing engine):* This is a type of vproc (virtual processor) for session control, task dispatching and SQL parsing in the multi-tasking and possibly parallel-processing environment of the Teradata database. Vproc is a software process running in an SMP (symmetric multiprocessing) environment or a node. The vproc or the access module processor (AMP) are responsible for storing and retrieving data. + +The different components of a parsing engine are listed below. + +* Parser: This decomposes SQL queries into relational data management processing steps. +* Query optimizer: This determines the most efficient path to access data. +* Step generator: This produces processing steps and encapsulates them into packages. +* Dispatcher: This transmits the encapsulated steps from the parser to the relevant AMPs, and performs monitoring and error-handling functionalities during step processing. +* Session controller: This manipulates session-control activities (e.g., log on, log off and authentication) and restores a session only after client or server failures. + +*Message passing layer:* This is also called BYNET (Banyan network), and is the networking layer in the Teradata system. It allows interaction between PE and AMP, and also between the nodes. It receives the execution plan from the PE and sends it to AMP. Similarly, it receives the outputs from the AMP and sends them to PE. In the Teradata system, there are always two BYNET systems. These are called BYNET 0 and BYNET 1. But this is generally referred to as a single BYNET system. If one BYNET fails, the second one takes its place. But when data is large, both BYNETs can be made functional, which enhances the communication between PE and AMPs. + +*Disk:* This component organises and stores the data while performing data manipulation activities. Teradata database employs redundant array of independent disks (RAID) storage technology to provide data security at the disk level. When AMPs are associated with disks, it is called Vdisks (virtual disks). + +> Note: Each AMP is allowed to read and write on its own disk only. That is why it is also called shared-nothing architecture. + +Teradata acts as a single data store that receives a large number of concurrent requests from various client applications. It is defined as an information repository supported by tools and utilities that make it, as part of Teradata Warehouse, a complete and active RDBMS. + +### Types of spaces in Teradata + +*Permanent space:* This is the maximum amount of space allocated to the user/database to hold data rows. It is used for database objects (like permanent tables, indexes, etc) creation, and to hold their data. The total permanent space is divided among the total number of AMPs. Whenever the per AMP limit exceeds the allocated space of AMP, a ‘No more room in database’ error is generated. Permanent tables, journals, fallback tables, and secondary index sub-tables use permanent space. All databases have a predefined upper limit of permanent space. Teradata doesn’t physically preallocate permanent space for databases and users when they are defined during object definition time. + +![Figure 1: Teradata architecture][2] + +*Spool space:* This is the unused permanent space that is used by the system to keep the intermediate results of the SQL query. Once the query is complete, the spool space is released. The volatile tables use the spool space. Users without spool space can’t execute any query. Data is active up to the current session only. It is divided among the number of AMPs. Whenever the per AMP limit exceeds the allocated space, the user will get a spool space error. + +*Temporary space:* This is the unused permanent space used by global temporary tables (GTT). It is divided by the number of AMPs. Data is active up to the current session only. It is reserved prior to spool space for any user defined operations. Temp space is allocated at the database level or user level, but not at the table level. This is the amount of space used for GTT, and these results remain available to the user until the session is terminated. +Tables created in temp space will survive a restart. A query example is given below: + +``` +CREATE DATABASE new_db FROM existing_db +AS PERMANENT = 2000000, SPOOL = 5000000, TEMP = 2000000; +``` + +A new database must be created from an existing database. + +Permanent space can be used for tables in the database. Spool space is allocated for the maximum amount of workspace available for requests. Temp space is allocated for temp tables in the database. + +### Types of tables in Teradata + +**Permanent tables:** These remain in the system until they are dropped. The table definition is stored in the data dictionary. Data and structure can be shared across multiple sessions and users. Data is stored in the permanent space, and ‘collect statistics’ is supported. Indexes can be created. COMPRESS columns, as well as DEFAULT and TITLE clauses are supported. Partition primary index (PPI) is also supported. If the primary index clause is not defined in the ‘Create table’ statement, then Teradata will create the first column as primary by default. + +*Global temporary tables (GTT):* This is a kind of temporary table. The table definition is stored in the data dictionary. It requires a minimum of 512 bytes from the permanent space to store table definitions in the data dictionary. The structure can be shared across multiple users but data will remain private to the session (and its user). Data is stored in the temporary space. Data will be purged for that session once the session ends. ‘Collect statistics’ is supported. Indexes can be created. COMPRESS columns, as well as DEFAULT and TITLE clauses are supported. PPI is also supported. + +This table can be identified from the data dictionary table (dbc.tables) using the ‘CommitOpt’ column. If its value is ‘D’ (on commit Delete rows) or ‘P’ (on commit Preserve rows), then it’s a GTT. If the primary index clause is not specified while creating the table, then Teradata will create the first column as primary by default. One session can generate up to 2000 global temporary tables at a time. + +*Volatile tables:* These are created in the spool space for temporary use, and their life span extends for the duration of the session only. The table definition is not stored in the data dictionary. Structure and data is private to the session and its user. Data is stored in the spool space. The table gets dropped once the session ends, i.e., when ‘login again…no volatile tables’ shows up. ‘Collect statistics’ is supported. Indexes cannot be created. The COMPRESS column is supported, but the DEFAULT and TITLE clauses are not supported. PPI is supported. If the primary index clause is not specified while creating the table, then Teradata will create the first column as primary by default. + +``` +ON COMIT DELETE ROWS (Default) +ON COMIT PRESERVE ROWS (If we want to retain rows) +``` + +*Derived tables:* This temporary table is derived from one or more other tables as the result of a sub-query. Derived tables are local to the query and exist only for the duration of the query. The table is automatically deleted once the query is done. Data is stored in the spool space. Table definition is not stored in the data dictionary. The first column in a derived table acts like a PI column for it. + +### Properties of Teradata tables + +* Fallback: This protects data by storing a second copy of each row of a table on a different AMP in the same cluster. If an AMP fails, the system accesses the fallback rows to meet requests. +* Journals: BEFORE JOURNAL holds the image of impacted rows before any changes are made. AFTER JOURNAL holds the image of affected rows after changes are done. In DUAL BEFORE/AFTER JOURNAL, two images are taken and are stored in two separate AMPs. +* Checksum: This detects some forms of lost writes. A lost write is a write of a file system block that received successful status on completion, but the write either never actually occurred or was written to an incorrect location. As a result, subsequent reads of the same block return the old data. NONE, LOW, MEDIUM, and HIGH levels are available in the checksum. + +Teradata is a powerful RDBMS and can help in transforming how businesses work. We have just discussed its basics in this article and a lot still needs to be unearthed. We hope you find this basic information useful to explore the features and capabilities of Teradata further. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/an-introduction-to-teradata/ + +作者:[Saurabh 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.opensourceforu.com/author/saurabh-kumar/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/an-introduction-of-teradata-featured-image.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Teradata-Architecture.jpg From c1a970551bc1255a44e2361d31658d841a53710d Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 00:03:34 +0800 Subject: [PATCH 0055/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220621=20The=20Final=20Version=20Of=207-Zip=2022.0?= =?UTF-8?q?0=20Is=20Now=20Available.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Version Of 7-Zip 22.00 Is Now Available.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md diff --git a/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md new file mode 100644 index 0000000000..ecd3d62eb3 --- /dev/null +++ b/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md @@ -0,0 +1,55 @@ +[#]: subject: "The Final Version Of 7-Zip 22.00 Is Now Available" +[#]: via: "https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Final Version Of 7-Zip 22.00 Is Now Available +====== +![7-zip-2200-500x312][1] + +7-Zip is a well-known open source file archiver for Windows, Mac, and Linux. 7-Zip 22.00 is now available; it is the first stable release of 2022. The most recent release was 7-Zip 21.07, which was released in December 2021. Users of 7-Zip can obtain the most recent version of the application from the official website. Downloads are available for Windows 64-bit, 32-bit, and ARM versions. The programme is still compatible with out-of-date versions of Windows, such as XP and Vista. All officially supported Windows versions, including server versions, are also supported. 7-Zip 22.00 for Linux is already available for download, but the Mac OS version is not. + +7-Zip 22.00 includes several new features that enhance the application’s functionality. The archiver now supports the extraction of Apple File System APFS images. Several years ago, Apple introduced the Apple File System in Mac OS 10.13 and iOS. The file system has been designed with flash and solid state drive storage in mind. + +7-Zip 22.00 includes several enhancements to its TAR archive support. Using the switches -ttar -mm=pax or -ttar -mm=posix, 7-Zip can now create TAR archives in POSIX tar format. Additionally, using the switches ttar -mm=pax -mtp=3 -mtc -mta, 7-Zip can store file timestamps with high precision in tar/pax archives. + +* snoi: save owner/group ids in the archive or copy owner/group ids from the archive to the extracted files. +* snon: keep owner/group names in the archive + +7-Zip 22.00 for Windows adds support for the -snz switch, which propagates the Zone. + +To extract files, use the identifier stream. Windows uses the stream for security purposes; it can be used to determine whether a file was created locally or downloaded from the Internet. + +7-Zip 22.00 includes several new features that enhance the application’s functionality. The archiver now supports the extraction of Apple File System APFS images. Several years ago, Apple introduced the Apple File System in Mac OS 10.13 and iOS. The file system has been designed with flash and solid state drive storage in mind. + +7-Zip 22.00 includes several enhancements to its TAR archive support. Using the switches -ttar -mm=pax or -ttar -mm=posix, 7-Zip can now create TAR archives in POSIX tar format. Additionally, using the switches ttar -mm=pax -mtp=3 -mtc -mta, 7-Zip can store file timestamps with high precision in tar/pax archives. + +Finally, Linux users can use the following two new switches with TAR archives: + +* snoi: save owner/group ids in the archive or copy owner/group ids from the archive to the extracted files. +* snon: keep owner/group names in the archive + +7-Zip 22.00 for Windows adds support for the -snz switch, which propagates the Zone. + +To extract files, use the identifier stream. Windows uses the stream for security purposes; it can be used to determine whether a file was created locally or downloaded from the Internet. + +In the “add to archive” configuration dialogue, 7-Zip 22.00 includes a new options window. It includes options for changing the timestamp precision, changing other time-related configuration options, and preventing the source files’ last access time from changing. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/ + +作者:[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/06/7-zip-2200-500x312-1.jpg From 94df660c5dd0db900911ec744f00b5dc2a93c0ac Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 00:04:33 +0800 Subject: [PATCH 0056/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220621=20This=20Open-Source=20Project=20Proves=20C?= =?UTF-8?q?hrome=20Extensions=20Can=20Track=20You.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Proves Chrome Extensions Can Track You.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md diff --git a/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md b/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md new file mode 100644 index 0000000000..806b8c5f43 --- /dev/null +++ b/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md @@ -0,0 +1,69 @@ +[#]: subject: "This Open-Source Project Proves Chrome Extensions Can Track You" +[#]: via: "https://news.itsfoss.com/chrome-extension-tracking/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +This Open-Source Project Proves Chrome Extensions Can Track You +====== +Is this a reason to ditch Chromium-based browsers and start using Firefox? Maybe, you decide. + +![chrome extension tracker][1] + +Even with all the privacy extensions and fancy protection features, there are still ways to identify you or track you. + +Note that it is not the case for all browsers, here, we focus on Chromium-based browsers and Google Chrome as the prime suspect. + +While detecting installed extensions in a Chromium browser was already possible, numerous extensions implemented certain protections to prevent it. + +However, a security researcher, also known as “**z0ccc**”, discovered a new method to detect installed Chrome browser extensions, which can be further used to track you through browser fingerprinting. + +**In case you did not know**: Browser fingerprinting refers to the tracking method where various information about your device/browser gets collected to create a unique fingerprint ID (hash) to identify you across the internet. Information like browser name, version, operating system, extensions installed, screen resolution, and similar technical data. + +It sounds like a harmless data collection technique, but you can be tracked online with this tracking method. + +### Detecting Google Chrome Extensions + +The researcher shared an open-source project “**Extension Fingerprints**” which you can use to test if Chrome extensions installed on your browser are being detected. + +The new technique involves a time-difference method where the tool compares the time to fetch resources for the extensions. A protected extension takes more time to fetch compared to other extensions not installed on your browser. So, that helps identify some extensions from the list of over 1000 extensions. + +The point is—even with all the advancements and techniques to prevent tracking, extensions from the Google Web Store can be detected. + +![][2] + +And, with the installed extensions detected, you can be tracked online using browser fingerprinting. + +Surprisingly, even if you have extensions like **uBlocker, AdBlocker,**or**Privacy Badger** (some popular privacy-focused extensions), they all get detected using this method. + +You can explore all the technical details on its [GitHub page][3]. And, if you want to test it yourself, head to its [Extension Fingerprints site][4] to check for yourself. + +### Firefox To The Rescue? + +It seems like it, considering [I keep coming back to Firefox][5] for various reasons. + +The discovered method should work with all the Chromium-based browsers. I tested it with Brave and Google Chrome. The researcher also mentions that the tool does not work with Microsoft Edge using extensions from Microsoft’s store. But, it is possible with the same method of tracking. + +Mozilla Firefox is safe from this because the extension IDs for every browser instance are unique, as the researcher suggested. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/chrome-extension-tracking/ + +作者:[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/06/opensource-project-tracker-chrome-extensions.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/extension-fingerprints.jpg +[3]: https://github.com/z0ccc/extension-fingerprints +[4]: https://z0ccc.github.io/extension-fingerprints/ +[5]: https://news.itsfoss.com/why-mozilla-firefox/ From bf4542e824aec7d76fd6e4d2b74d774f5fd3600d Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Wed, 22 Jun 2022 00:16:16 +0800 Subject: [PATCH 0057/3123] =?UTF-8?q?=E9=92=88=E5=AF=B9=E4=BD=9C=E8=80=85?= =?UTF-8?q?=E7=9A=84=E7=AC=94=E8=AF=AF=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=AF=91?= =?UTF-8?q?=E8=80=85=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- published/20210722 Write your first JavaScript code.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20210722 Write your first JavaScript code.md b/published/20210722 Write your first JavaScript code.md index 7a5aace819..1cbb8f9f06 100644 --- a/published/20210722 Write your first JavaScript code.md +++ b/published/20210722 Write your first JavaScript code.md @@ -67,7 +67,7 @@ JavaScript 语言的用途多到令人惊讶,它拥有各种各样的库,而 如你所见,`

` 标签仍然包含字符串 `"Nothing here"`,但是当它被渲染时,JavaScript 会改变它,使其包含 `"Hello world"`。是的,JavaScript 具有重建​​(或只是帮助构建)网页的能力。 -这个简单脚本中的 JavaScript 做了两件事。首先,它创建一个名为 `myvariable` 的变量,并将字符串 `"Hello world!"` 放置其中。然后,它会在当前文档(浏览器呈现的网页)中搜索 ID 为 `example` 的所有 HTML 元素。当它找到 `example` 时,它使用了 `innerHTML` 函数将 HTML 元素的内容替换为 `myvariable` 的内容。 +这个简单脚本中的 JavaScript 做了两件事。首先,它创建一个名为 `myvariable` 的变量,并将字符串 `"Hello world!"` 放置其中。然后,它会在当前文档(浏览器呈现的网页)中搜索 ID 为 `example` 的所有 HTML 元素。当它找到 `example` 时,它使用了 `innerHTML` 函数将 HTML 元素的内容替换为 `myvariable` 的内容。(LCTT 译注:这里作者笔误了,`innerHTML` 是“属性”而非“函数”。) 当然,我们也可以不用自定义变量。因为,使用动态创建的内容来填充 HTML 元素也是容易的。例如,你可以使用当前时间戳来填充它: From f42ae4cbda93a92606ee294b698164754ae9ce4c Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 01:22:58 +0800 Subject: [PATCH 0058/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020211203=20Should=20Businesses=20Opt=20for=20Serverl?= =?UTF-8?q?ess=20Computing-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...usinesses Opt for Serverless Computing-.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md diff --git a/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md b/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md new file mode 100644 index 0000000000..469c9dc830 --- /dev/null +++ b/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md @@ -0,0 +1,90 @@ +[#]: subject: "Should Businesses Opt for Serverless Computing?" +[#]: via: "https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Should Businesses Opt for Serverless Computing? +====== +Serverless computing removes the server from the equation and enables businesses to give undivided attention to the application functionality. Does that make serverless computing the automatic choice? Let’s find out. + +![Severless-Cloud-Computing-Featured-image-OSFY-Oct-2021][1] + +Until recently, almost every product manager organised his or her engineering resources into two separate teams — the development team and the operations team. The development team is usually involved in coding, testing and building the application functionality, whereas the operations team takes the responsibility of delivery, deployment, and operational maintenance of the application. + +When a development team builds an e-commerce application, the operations team sets up the server to host that application. Setting up a server involves several aspects, which include: + +* Choosing the appropriate hardware and operating system +* Applying the required set of patches +* Installing applicable server environments like JDK, Python, Tomcat, NodeJS, etc +* Deploying, configuring, and provisioning the actual application +* Opening and securing appropriate ports +* Setting up required database engines + +… and the list just goes on. + +Besides this, managers also break their heads on capacity planning. After all, any non-trivial application is expected to be 100 per cent available, reliable and scalable all the time. This requires optimal investment in the hardware. As we all know, shortage of hardware at crucial periods results in business loss, and on the other hand, redundant hardware hurts the bottomline. Capacity planning is crucial, irrespective of whether the application is targeted for the on-premises data centre or for cloud infrastructure. +By now, it is clear that businesses spend a lot of time not only in building the functionality but also in delivering it. + +Serverless computing aims at offering a seamless way to deliver the functionality without worrying about the server setup and maintenance. In other words, a serverless computing platform offers a ready-to-use environment in such a way that the businesses build and deploy the applications as a set of smaller functions as quickly as possible. That is why this approach is referred to as Function as a Service (FaaS). + +Remember that there is still a server in serverless computing, but it is taken care of by the FaaS vendors like AWS, Microsoft, and Google. + +For example, AWS offers a serverless computing environment in the name of Lambda functions. Developers can choose to build the applications as a set of Lambda functions that can be written in NodeJS, Java, Python, and a few other languages. AWS offers a ready-to-use environment to deploy these functions. It also offers ready-to-use database servers, file servers, application gateways, authentication servers, etc. + +Similarly, Microsoft Azure offers an environment to build and deploy Azure functions in languages like C#. + +### Why serverless? + +There are two main factors driving the popularity of serverless computing. + +#### Ready-to-use environment + +Obviously, this is the topmost selling point in favour of serverless computing. Businesses need not procure/book hardware or instances in advance, or worry about licences and setting up and provisioning the server. And they need not bother about scaling up and down. All of this is taken care of by the FaaS vendor. +Optimal cost: Since FaaS vendors always charge the clients based on the utilisation of the environment (pay as you use model), businesses need not worry about upfront costs and wastage of resources. For example, AWS charges the clients based on the number of requests a Lambda function receives, number of queries run on a table, etc. + +### Challenges with serverless computing + +Like with any other approach, serverless computing is also not the perfect approach that everyone can blindly follow. It has its own set of limitations. Here are a few of them. + +#### Vendor locking + +The first and most important problem associated with serverless computing is that functions like Lambda or Azure are to be written using vendor-supplied APIs. For example, the functions that are written using an AWS Lambda API cannot be deployed into Google Cloud and vice versa. Hence, serverless computing forces businesses to commit to a vendor, for years. The success or failure of the application depends not only on the functionality but also on the ability of the vendor with respect to performance, etc. + +#### Programming language + +No serverless computing platform supports all the possible programming languages. Moreover, it may not support all the versions of a given programming language. The application development teams are constrained to choose only the languages that are offered. This may turn out to be very crucial in terms of the capabilities of the team. + +#### Optimal cost, really? + +It all depends on the usage of the resources. If your application is attracting a huge load, like millions of requests per second, the bill that you foot might be exorbitant. At such a scale, having your own server on-premises or on the cloud might work cheaper. It doesn’t mean that applications with Web-scale are not suitable for serverless computing. It all boils down to the way you architect around the platform and the deal you sign with the vendor. + +#### Ecosystem + +No application is written for an isolated environment. It requires other components like data stores, databases, security engines, gateways, messaging servers, queues, cache, etc. Every platform offers its own set of such tools. For instance, AWS offers Dynamo DB as one of the NoSQL solutions. Obviously, other vendors offer their own NoSQL solutions. The teams are thus forced to architect the applications based on the chosen platform. Though most of the commercial FaaS vendors offer one or another component for a particular requirement, not every component may be best-in-class. + +### What about containers? + +Many of us migrated to containerised deployment models in the last decade, since they offer a lightweight alternative to the costly machines, physical or virtual. With orchestration tools like Kubernetes, we love to deploy containerised applications and meet Web-scale requirements. Containers offer a certain degree of isolation from the underlying environment, which makes deployment relatively easy. However, we still need investments in hardware (on-premises or cloud), licences, networking, provisioning, etc, which demands forward planning, applicable technical skills, and careful monitoring. Serverless computing frees us even from these responsibilities, albeit with its own set of pros and cons. + +### Road ahead + +We are in the days of continuous development, continuous integration, and continuous deployment. Every business is facing competition. Time to market (TTM) plays a significant role in gaining and retaining customers. In this backdrop, businesses love to spend more time churning out the functionality as quickly as possible rather than struggling with the nitty-gritty of deployment and maintenance. Serverless computing has the potential to meet these demands. Big players are committing huge investments to make FaaS as seamless and as affordable as possible. The future looks bright for serverless computing. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/ + +作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2021/10/Severless-Cloud-Computing-Featured-image-OSFY-Oct-2021.jpg From 1087885e56c5d191c24524bb9af740205653b759 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 01:48:34 +0800 Subject: [PATCH 0059/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][talk]:=2020211203=20Should=20Businesses=20Opt=20for=20Serverl?= =?UTF-8?q?ess=20Computing-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20211203 Should Businesses Opt for Serverless Computing-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md b/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md index 469c9dc830..9f0208dadb 100644 --- a/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md +++ b/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4aa5c74f21f3ed228cdb4c98d1e6ec16e9828172 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 22 Jun 2022 08:36:08 +0800 Subject: [PATCH 0060/3123] translated --- ...0220607 Integrating Zeek with ELK Stack.md | 141 ----------------- ...0220607 Integrating Zeek with ELK Stack.md | 143 ++++++++++++++++++ 2 files changed, 143 insertions(+), 141 deletions(-) delete mode 100644 sources/tech/20220607 Integrating Zeek with ELK Stack.md create mode 100644 translated/tech/20220607 Integrating Zeek with ELK Stack.md diff --git a/sources/tech/20220607 Integrating Zeek with ELK Stack.md b/sources/tech/20220607 Integrating Zeek with ELK Stack.md deleted file mode 100644 index ba00b4e71c..0000000000 --- a/sources/tech/20220607 Integrating Zeek with ELK Stack.md +++ /dev/null @@ -1,141 +0,0 @@ -[#]: subject: "Integrating Zeek with ELK Stack" -[#]: via: "https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/" -[#]: author: "Tridev Reddy https://www.opensourceforu.com/author/tridev-reddy/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Integrating Zeek with ELK Stack -====== -Zeek is an open source network security monitoring tool. This article discusses how to integrate Zeek with ELK. - -![Integrating-Zeek-with-ELK-Stack-Featured-image][1] - -In the article titled ‘Network Security Monitoring Made Easy with Zeek’ published in the March 2022 edition of this magazine, we looked into the capabilities of Zeek and learned how to get started with it. We will now take our learning experience a bit further and see how to integrate it with ELK (also know as Elasticsearch, Kibana, Beats, and Logstash). - -For this, we will use a tool called Filebeat, which monitors, collects and forwards the logs to Elasticsearch. We will configure Filebeat with Zeek, so that the data collected by the latter will be forwarded and centralised in our Kibana dashboard. - -### Installing Filebeat - -Let’s first set up Filebeat with Zeek. To install Filebeat using *apt*, give the following command: - -``` -sudo apt install filebeat -``` - -Next, we need to configure the *.yml* file, which is present in the etc*/filebeat/* folder: - -``` -sudo nano /etc/filebeat/filebeat.yml -``` - -We need to configure only two things here. In the *Filebeat* Input section, change the type to log and uncomment the *enabled*: false and change it to true. We also need to specify the path of where the logs are stored, i.e., we need to specify */opt/zeek/logs/current/*.log* - -Once this is done, the first part of the settings should look similar to what’s shown in Figure 1. - -![Figure 1: Filebeat config (a)][2] - -The second thing to be changed in the Elasticsearch output section is under *Outputs.* Uncomment the output.elasticsearch and hosts. Make sure the URL of the host and port number are similar to what you configured while installing ELK. We kept it as localhost with port number 9200. - -In the same section, uncomment the user name and password at the bottom, and enter the user name and password of the elastic user that you generated while configuring ELK after installation. Once this is done, refer to Figure 2 and check the settings. - -![Figure 2: Filebeat config (b)][3] - -Now that we have completed installing and configuring , we need to configure Zeek so that it stores the logs in JSON format. For that, ensure your Zeek instance is stopped. If it’s not, execute the command given below to stop it: - -``` -cd /opt/zeek/bin -./zeekctl stop -``` - -Now we need to add a small line in the local.zeek, which is present in the *opt/zeek/share/zeek/site/* directory. - -Open the file as root and add the following line: - -``` -@load policy/tuning/json-logs.zeek -``` - -Refer to Figure 3 and make sure the settings are done correctly. - -![Figure 3: local.zeek file][4] - -As we have changed a few configurations of Zeek, we need to re-deploy it, which can be done by executing the following command: - -``` -cd /opt/zeek/bin -./zeekctl deploy -``` - -Now we need to enable the Zeek module in Filebeat so that it forwards the logs from Zeek. Execute the following command: - -``` -sudo filebeat modules enable zeek -``` - -We are almost ready; in the last step, configure the *zeek.yml* file to mention what type of data is to be logged. This can be done by modifying the */etc/filebeat/modules.d/zeek.yml* file. - -In this *.yml file*, we must mention the directory where these specified logs are stored. We know that the logs are stored in the current folder, which has several files like *dns.log*, *conn.log, dhcp.log,* and many more. We need to mention each path in each section. You can leave unwanted files by changing the enabled value to false, if and only if you don’t want logs from that file/program. - -For example, for *dns*, make sure the enabled value is true and the path is mentioned as: - -``` -var.paths: [ “/opt/zeek/logs/current/dns.log”, “/opt/zeek/logs/*.dns.json” ] -``` - -Repeat this for the rest of the files. We did this for a few that we needed. We added everything that was mainly required. You can do the same. Refer to Figure 4. - -![Figure 4: zeek.yml configuration][5] - -Now it’s time to start the Filebeat. Execute the following commands: - -``` -sudo filebeat setup -sudo service filebeat start -``` - -Now that everything is done, let’s move to our Kibana dashboard and check whether we are receiving the data from Zeek via Filebeat or not. - -![Figure 5: Dashboard of Kibana (Destination Geo)][6] - -Navigate to the dashboard; you can see a clear statistical analysis of the data it has captured (Figure 5 and Figure 6). - -![Figure 6: Dashboard of Kibana (Network)][7] - -Now let’s move to the Discover tab and check the results by filtering using the query: - -``` -event.module: “zeek” -``` - -This query will filter all the data it received in a certain time and show us only the data from the module named Zeek (Figure 7). - -![Figure 7: Filtered data by event.module query][8] - -### Acknowledgements - -*The authors are grateful to Sibi Chakkaravarthy Sethuraman, Sudhakar Ilango, Nandha Kumar R. and Anupama Namburu at the School of Computer Science and Engineering, VIT-AP for their continuous guidance and support. A special thanks to the Center for Excellence in Artificial Intelligence and Robotics (AIR).* - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/ - -作者:[Tridev Reddy][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/tridev-reddy/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Integrating-Zeek-with-ELK-Stack-Featured-image.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Filebeat-config-a.jpg -[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Filebeat-config-b.jpg -[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-local.zeek-file-1.jpg -[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-zeek.yml-configuration.jpg -[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-Dashboard-of-Kibana-Destination-Geo.jpg -[7]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-6-Dashboard-of-Kibana-Network-1.jpg -[8]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-7-Filtered-data-by-event.jpg diff --git a/translated/tech/20220607 Integrating Zeek with ELK Stack.md b/translated/tech/20220607 Integrating Zeek with ELK Stack.md new file mode 100644 index 0000000000..2db7283ac8 --- /dev/null +++ b/translated/tech/20220607 Integrating Zeek with ELK Stack.md @@ -0,0 +1,143 @@ +[#]: subject: "Integrating Zeek with ELK Stack" +[#]: via: "https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/" +[#]: author: "Tridev Reddy https://www.opensourceforu.com/author/tridev-reddy/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +将 Zeek 与 ELK 栈集成 +====== +Zeek 是一个开源的网络安全监控工具。本文讨论了如何将 Zeek 与 ELK 集成。 + +![Integrating-Zeek-with-ELK-Stack-Featured-image][1] + +在本杂志 2022 年 3 月版发表的题为“用 Zeek 轻松实现网络安全监控”的文章中,我们研究了 Zeek 的功能,并学习了如何开始使用它。现在我们将把我们的学习经验再进一步,看看如何将其与 ELK(也称为 Elasticsearch、Kibana、Beats 和 Logstash)整合。 + +为此,我们将使用一个叫做 Filebeat 的工具,它可以监控、收集并转发日志到 Elasticsearch。我们将把 Filebeat 和 Zeek 配置在一起,这样后者收集的数据将被转发并集中到我们的 Kibana 仪表盘上。 + +### 安装 Filebeat + +让我们首先将 Filebeat 与 Zeek 安装在一起。使用 *apt* 来安装 Filebeat,使用以下命令: + +``` +sudo apt install filebeat +``` + +接下来,我们需要配置 *.yml* 文件,它位于 /etc*/filebeat/* 文件夹中: + + +``` +sudo nano /etc/filebeat/filebeat.yml +``` + +我们只需要在这里配置两件事。在 *Filebeat* 输入部分,将类型改为 log,并取消对 *enabled*:false 的注释,将其改为 true。我们还需要指定存储日志的路径,也就是说,我们需要指定*/opt/zeek/logs/current/\*.log*。 + +完成这些后,设置的第一部分应该类似于图 1 所示的内容。 + +![Figure 1: Filebeat config (a)][2] + +在 Elasticsearch 输出部分,第二件要修改的事情是在 *Outputs*下,取消对 output.elasticsearch 和 hosts 的注释。确保主机的 URL 和端口号与你安装 ELK 时配置的相似。我们把它保持为 localhost,端口号为 9200。 + +在同一部分中,取消底部的用户名和密码,输入安装后配置 ELK 时生成的弹性用户的用户名和密码。完成这些后,参考图 2,检查设置。 + +![Figure 2: Filebeat config (b)][3] + +现在我们已经完成了安装和配置,我们需要配置 Zeek,使其以 JSON 格式存储日志。为此,确保你的 Zeek 实例已经停止。如果没有,执行下面的命令来停止它: + +``` +cd /opt/zeek/bin +./zeekctl stop +``` + +现在我们需要在 local.zeek 中添加一小行,它存在于 *opt/zeek/share/zeek/site/* 目录中。 + +以 root 身份打开该文件,添加以下行: + +``` +@load policy/tuning/json-logs.zeek +``` + +参考图 3,确保设置正确。 + +![Figure 3: local.zeek file][4] + +由于我们改变了 Zeek 的一些配置,我们需要重新部署它,这可以通过执行以下命令来完成: + +``` +cd /opt/zeek/bin +./zeekctl deploy +``` + +现在我们需要在 Filebeat 中启用 Zeek 模块,以便它转发 Zeek 的日志。执行下面的命令: + +``` +sudo filebeat modules enable zeek +``` + +我们几乎要好了。在最后一步,配置 *zeek.yml* 文件要记录什么类型的数据。这可以通过修改 */etc/filebeat/modules.d/zeek.yml* 文件完成。 + +在这个 *.yml 文件*中,我们必须提到这些指定的日志存放在哪个目录下。我们知道,这些日志存储在当前文件夹中,其中有几个文件,如 *dns.log*、*conn.log、dhcp.log* 等等。我们需要在每个部分提到每个路径。如果而且只有在你不需要该文件/程序的日志时,你可以通过把启用值改为 false 来舍弃不需要的文件。 + +例如,对于 *dns*,确保启用值为 “true”,并且路径被配置: + +``` +var.paths: [ “/opt/zeek/logs/current/dns.log”, “/opt/zeek/logs/*.dns.json” ] +``` + +对其余的文件重复这样做。我们对一些我们需要的文件做了这个处理。我们添加了所有主要需要的文件。你也可以这样做。请参考图 4。 + +![Figure 4: zeek.yml configuration][5] + +现在是启动 Filebeat 的时候了。执行以下命令: + +``` +sudo filebeat setup +sudo service filebeat start +``` + +现在一切都完成了,让我们移动到 Kibana 仪表板,检查我们是否通过 Filebeat 接收到来自 Zeek 的数据。 + +![Figure 5: Dashboard of Kibana (Destination Geo)][6] + +进入仪表板。你可以看到它所捕获的数据的清晰统计分析(图 5 和图 6)。 + +![Figure 6: Dashboard of Kibana (Network)][7] + +现在让我们进入发现选项卡,通过使用查询进行过滤来检查结果: + +``` +event.module: “zeek” +``` + +这个查询将过滤它在一定时间内收到的所有数据,只向我们显示名为 Zeek 的模块的数据(图 7)。 + +![Figure 7: Filtered data by event.module query][8] + +### 鸣谢 + +*作者感谢 VIT-AP 计算机科学与工程学院的 Sibi Chakkaravarthy Sethuraman、Sudhakar Ilango、Nandha Kumar R.和Anupama Namburu 的不断指导和支持。特别感谢人工智能和机器人技术卓越中心(AIR)。* + + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/ + +作者:[Tridev Reddy][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/tridev-reddy/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Integrating-Zeek-with-ELK-Stack-Featured-image.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Filebeat-config-a.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Filebeat-config-b.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-local.zeek-file-1.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-zeek.yml-configuration.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-Dashboard-of-Kibana-Destination-Geo.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-6-Dashboard-of-Kibana-Network-1.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-7-Filtered-data-by-event.jpg From 72460da42dc547216cfee1a418543ae5efa63bb1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 22 Jun 2022 08:40:26 +0800 Subject: [PATCH 0061/3123] translating --- ...Enable Minimize, Maximize Window Buttons in elementary OS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md b/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md index 8e10260309..fcba6dd5dc 100644 --- a/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md +++ b/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 28d465277f2af5d978bff2f132288a0cc06c2c0c Mon Sep 17 00:00:00 2001 From: SamMa Date: Wed, 22 Jun 2022 09:02:56 +0800 Subject: [PATCH 0062/3123] Update 20210531 Get started with Kubernetes using chaos engineering.md --- ...Get started with Kubernetes using chaos engineering.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md index c3db48b02b..8c2978f97a 100644 --- a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md +++ b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md @@ -19,7 +19,7 @@ Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源 ### 如何开始学习混沌系统呢? -以我的经验,开始学习混沌系统的最好方式是触发一个此前生产中出现的事件来进行实验。使用过去的数据,制定以相同的方式破坏你的系统的计划,然后建立修复策略并确认结果确实是你想要的。如果计划失败,你就有了一种新的实验方式,并朝着快速处理问题的新方式前进。 +以我的经验,开始学习混沌系统的最好方式是触发一个此前生产中出现的事件来进行实验。使用过去的数据,制定以相同的方式破坏系统的计划,然后建立修复策略并确认结果满足你预期。如果计划失败,你就有了一种新的实验方式,并朝着快速处理问题的新方式前进。 最重要的是,你可以随时记录所有内容,这意味着,随着时间的推移,整个系统将被完整记录下以便任何人都可以随时待命而无需太多升级,并且每个人都可以在周末好好休息。 @@ -29,10 +29,10 @@ Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源 1. **定义一个稳定状态:** 使用监控工具来搜集当系统没有问题或事件时,看起来功能正常的数据。 2. **提出假设或使用先前的事件:** 现在你已经定义了一个稳定状态,请提出一个关于在事件或中断期间会发生(或已经发生)的情况的假设。用这个假设来得出一系列将会发生的事件以及如何解决问题的理论。然后你可以指定一个故意引起该问题的计划。 -3. **介绍问题:** 用既定计划来破坏你的系统并开始在真实环境中测试。收集损坏的指标状态,按计划修复,并跟踪在你达到解决方案之前需要多长时间。确保你为之后中断记录了任何事情。 +3. **介绍问题:** 用既定计划来破坏系统并开始在真实环境中测试。收集损坏时指标状态,按计划修复,并追踪提出解决方案所需时长。确保你在中断之后记录了所有事情。 4. **试图推翻你的假设:** 实验中最精彩的部分是尝试推翻你的思考或计划。你想创建一个不同的状态,看看你能走多远,并在系统中生成一个不同的稳定状态。 -当你在另一个系统中生成破坏的变量前,确保建立一个处于稳定状态的控制系统。这将使你更容易在实验前、期间和之后发现各种稳态的差异。 +当你在另一个系统中生成破坏的变量前,确保建立一个处于稳定状态的控制系统。这将使你更容易在实验前、期间和之后发现各种稳定状态的差异。 ### 混沌工程需要什么? @@ -53,7 +53,7 @@ Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源 现在你已经掌握了基础,是时候去安全的摧毁你的系统了。我计划每年造成四次混乱,并努力实现每月的破坏。 -混沌工程是一种很好的实践,也是使你的内部文档保持最新的好方法。此外,随着时间的推移,新升级或应用程序部署将更加顺畅,你的日常生活将通过 Kubernetes 管理变得更加轻松。 +混沌工程是一种很好的实践,也是推进你的内部文档保持最新的好方法。此外,随着时间的推移,新升级或应用程序部署将更加顺畅,你的日常生活管理将通过 Kubernetes 变得更加轻松。 -------------------------------------------------------------------------------- From 65a3845dd3a22595a22e968fd86d9ac3ee50f493 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 22 Jun 2022 09:48:48 +0800 Subject: [PATCH 0063/3123] RP @lkxed https://linux.cn/article-14742-1.html --- ...ion works inside a Java Virtual Machine.md | 61 +++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) rename {translated/tech => published}/20220607 How Garbage Collection works inside a Java Virtual Machine.md (68%) diff --git a/translated/tech/20220607 How Garbage Collection works inside a Java Virtual Machine.md b/published/20220607 How Garbage Collection works inside a Java Virtual Machine.md similarity index 68% rename from translated/tech/20220607 How Garbage Collection works inside a Java Virtual Machine.md rename to published/20220607 How Garbage Collection works inside a Java Virtual Machine.md index e102895b7c..cd4ed74084 100644 --- a/translated/tech/20220607 How Garbage Collection works inside a Java Virtual Machine.md +++ b/published/20220607 How Garbage Collection works inside a Java Virtual Machine.md @@ -3,17 +3,16 @@ [#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14742-1.html" JVM 垃圾回收的工作原理 ====== -对于程序员来说,掌握 Java 的内存管理机制并不是必须的,但它能够帮助你更好地理解 JVM 是如何处理程序中的变量和类实例的。 -![咖啡豆][1] +![](https://img.linux.net.cn/data/attachment/album/202206/22/094238qvh45pv2jtpde9td.jpg) -图源:Pixabay. CC0. +> 对于程序员来说,掌握 Java 的内存管理机制并不是必须的,但它能够帮助你更好地理解 JVM 是如何处理程序中的变量和类实例的。 Java 之所以能够如此流行,自动 垃圾回收Garbage Collection(GC)功不可没,它也是 Java 最重要的几个特性之一。在这篇文章中,我将说明为什么垃圾回收如此重要。本文的主要内容为:自动的分代垃圾回收、JVM 划分内存的依据,以及 JVM 垃圾回收的工作原理。 @@ -21,10 +20,10 @@ Java 之所以能够如此流行,自动 垃圾回收Garbage Collecti Java 程序的内存空间被划分为以下四个区域: -1. 堆区(Heap):对象实例就是在这个区域分配的。不过,当我们声明一个对象时,堆中不会有任何内存分配发生,只是在栈中创建了一个对象的引用而已。 -2. 栈区(Stack):方法、局部变量和类的实例变量就是在这个区域分配的。 -3. 代码区(Code):这个区域存放了程序的字节码。 -4. 静态区(Static):这个区域存放了程序的静态数据和静态方法。 +1. 堆区Heap:对象实例就是在这个区域分配的。不过,当我们声明一个对象时,堆中不会发生任何内存分配,只是在栈中创建了一个对象的引用而已。 +2. 栈区Stack:方法、局部变量和类的实例变量就是在这个区域分配的。 +3. 代码区Code:这个区域存放了程序的字节码。 +4. 静态区Static:这个区域存放了程序的静态数据和静态方法。 ### 什么是自动垃圾回收? @@ -34,13 +33,13 @@ Java 程序的内存空间被划分为以下四个区域: 垃圾回收的基本步骤如下: -#### 1. 标记已使用和未使用的对象 +#### 1、标记已使用和未使用的对象 在这一步骤中,已使用和未使用的对象会被分别做上标记。这是一个及其耗时的过程,因为需要扫描内存中的所有对象,才能够确定它们是否正在被使用。 ![标记已使用和未使用的对象][2] -#### 2. 扫描/删除对象 +#### 2、扫描/删除对象 有两种不同的扫描和删除算法: @@ -62,56 +61,56 @@ Java 程序的内存空间被划分为以下四个区域: 为了提升垃圾回收中的“标记清除”的效率,JVM 将对内存划分成以下三个“代”: -* 年轻代 -* 老年代 -* 永久代 +* 新生代Young Generation +* 老年代Old Generation +* 永久代Permanent Generation ![Hotspot 堆内存结构][5] 下面我将介绍每个“代”及其主要特征。 -#### 年轻代 +#### 新生代 -所有创建不久的对象都存放在这里。年轻代被进一步分为以下两个区域: +所有创建不久的对象都存放在这里。新生代被进一步分为以下两个区域: -1. 伊甸区(Eden):所有新创建的对象都在此处分配内存。 -2. 幸存者区(Survivor,分为 S0 和 S1):经历过一次垃圾回收后,仍然存活的对象会被移动到两个幸存者区中的一个。 +1. 伊甸区Eden:所有新创建的对象都在此处分配内存。 +2. 幸存者区Survivor,分为 S0 和 S1:经历过一次垃圾回收后,仍然存活的对象会被移动到两个幸存者区中的一个。 ![对象分配][6] -在年轻代发生的分代垃圾回收被称为 “Minor GC”。Minor GC 过程中的每个阶段都是“停止世界Stop The World”(STW)的,这会导致其他应用程序暂停运行,直到垃圾回收结束。这也是 Minor GC 更快的原因。 +在新生代发生的分代垃圾回收被称为 “次要回收Minor GC”(LCTT 译注:也称为“新生代回收Young GC”)。Minor GC 过程中的每个阶段都是“停止世界Stop The World”(STW)的,这会导致其他应用程序暂停运行,直到垃圾回收结束。这也是次要回收更快的原因。 一句话总结:伊甸区存放了所有新创建的对象,当它的可用空间被耗尽,第一次垃圾回收就会被触发。 ![填充伊甸区][7] -Minor GC:在该垃圾回收过程中,所有存活和死亡的对象都会被做上标记。其中,存活对象会被移动到 S0 幸存者区。当所有存活对象都被移动到了 S0,未被引用的对象就会被删除。 +次要回收:在该垃圾回收过程中,所有存活和死亡的对象都会被做上标记。其中,存活对象会被移动到 S0 幸存者区。当所有存活对象都被移动到了 S0,未被引用的对象就会被删除。 ![拷贝被引用的对象][8] -S0 中的对象年龄为 1,因为它们挺过了一次 Minor GC。此时,伊甸区和 S1 都是空的。 +S0 中的对象年龄为 1,因为它们挺过了一次次要回收。此时,伊甸区和 S1 都是空的。 -每当完成清理后,伊甸区就会再次接受新的存活对象。随着时间的推移,伊甸区和 S0 中的某些对象被宣判死亡(不再被引用),并且伊甸区的可用空间也再次耗尽(填满了),那么 Minor GC 又将再次被触发。 +每当完成清理后,伊甸区就会再次接受新的存活对象。随着时间的推移,伊甸区和 S0 中的某些对象被宣判死亡(不再被引用),并且伊甸区的可用空间也再次耗尽(填满了),那么次要回收 又将再次被触发。 ![对象年龄增长][9] -这一次,伊甸区和 S0 中的死亡和存活的对象会被做上标记。其中,伊甸区的存活对象会被移动到 S1,并且年龄增加至 1。S0 中的存活对象也会被移动到 S1,并且年龄增加至 2(因为它们挺过了两次 Minor GC)。此时,伊甸区和 S0 又是空的了。每次 Minor GC 之后,伊甸区和两个幸存者区中的一个都会是空的。 +这一次,伊甸区和 S0 中的死亡和存活的对象会被做上标记。其中,伊甸区的存活对象会被移动到 S1,并且年龄增加至 1。S0 中的存活对象也会被移动到 S1,并且年龄增加至 2(因为它们挺过了两次次要回收)。此时,伊甸区和 S0 又是空的了。每次次要回收之后,伊甸区和两个幸存者区中的一个都会是空的。 -新对象总是在伊甸区被创建,周而复始。当下一次垃圾回收发生时,伊甸区和 S1 都会被清理,它们中的存活对象会被移动到 S0 区。每次 Minor GC 之后,这两个幸存者区(S0 和 S1)就会交换一次。 +新对象总是在伊甸区被创建,周而复始。当下一次垃圾回收发生时,伊甸区和 S1 都会被清理,它们中的存活对象会被移动到 S0 区。每次次要回收之后,这两个幸存者区(S0 和 S1)就会交换一次。 ![额外年龄增长][10] 这个过程会一直进行下去,直到某个存活对象的年龄达到了某个阈值,然后它就会被移动到一个叫做“老年代”的地方,这是通过一个叫做“晋升”的过程来完成的。 -使用 `-Xmn` 选项可以设置年轻代的大小。 +使用 `-Xmn` 选项可以设置新生代的大小。 ### 老年代 -这个区域存放着那些挺过了许多次 Minor GC,并且达到了某个年龄阈值的对象。 +这个区域存放着那些挺过了许多次次要回收,并且达到了某个年龄阈值的对象。 ![晋升][11] -在上面这个示例图表中,晋升的年龄阈值为 8。在老年代发生的垃圾回收被称为 “Major GC”。 +在上面这个示例图表中,晋升的年龄阈值为 8。在老年代发生的垃圾回收被称为 “主要回收Major GC”。(LCTT 译注:也被称为“全回收Full GC”) 使用 `-Xms` 和 `-Xmx` 选项可以分别设置堆内存大小的初始值和最大值。(LCTT 译注:结合上面的 `-Xmn` 选项,就可以间接设置老年代的大小了。) @@ -123,13 +122,13 @@ S0 中的对象年龄为 1,因为它们挺过了一次 Minor GC。此时,伊 #### 元空间 -Java 8 引入了元空间,并用它替换了永久代。这么做的好处是自动调整大小,避免了 内存不足OutOfMemory(OOM)错误。 +Java 8 引入了元空间Metaspace,并用它替换了永久代。这么做的好处是自动调整大小,避免了 内存不足OutOfMemory(OOM)错误。 ### 总结 本文讨论了各种不同的 JVM 内存“代”,以及它们是如何在分代垃圾回收算法中起作用的。对于程序员来说,掌握 Java 的内存管理机制并不是必须的,但它能够帮助你更好地理解 JVM 处理程序中的变量和类实例的方式。这种理解使你能够规划和排除代码故障,并理解特定平台固有的潜在限制。 -正文配图来自:Jayashree Huttanagoudar,CC BY-SA 4.0 +*正文配图来自:Jayashree Huttanagoudar,CC BY-SA 4.0* -------------------------------------------------------------------------------- @@ -138,7 +137,7 @@ via: https://opensource.com/article/22/6/garbage-collection-java-virtual-machine 作者:[Jayashree Huttanagoudar][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/) 荣誉推出 From dd5a6e8ba6aba460908d29c471088ae1902dff89 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 22 Jun 2022 11:10:39 +0800 Subject: [PATCH 0064/3123] RP @Donkey-Hao @turbokernel https://linux.cn/article-14743-1.html --- ...with Kubernetes using chaos engineering.md | 72 +++++++++++++++++++ ...with Kubernetes using chaos engineering.md | 71 ------------------ 2 files changed, 72 insertions(+), 71 deletions(-) create mode 100644 published/20210531 Get started with Kubernetes using chaos engineering.md delete mode 100644 translated/tech/20210531 Get started with Kubernetes using chaos engineering.md diff --git a/published/20210531 Get started with Kubernetes using chaos engineering.md b/published/20210531 Get started with Kubernetes using chaos engineering.md new file mode 100644 index 0000000000..2aaaaa83a7 --- /dev/null +++ b/published/20210531 Get started with Kubernetes using chaos engineering.md @@ -0,0 +1,72 @@ +[#]: subject: (Get started with Kubernetes using chaos engineering) +[#]: via: (https://opensource.com/article/21/5/kubernetes-chaos) +[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) +[#]: collector: (lujun9972) +[#]: translator: (Donkey-Hao) +[#]: reviewer: (turbokernel, wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14743-1.html) + +在 Kubernetes 中使用混沌工程 +====== + +> 在这篇文章中学习混沌工程的基础知识。 + +![](https://img.linux.net.cn/data/attachment/album/202206/22/110901xbb88ccb8lfcgcrl.jpg) + +混沌工程是由科学、规划以及实验组成的。它是一门在系统上进行实验的学科,用来建立系统在生产中承受混乱条件能力的信心。 + +首先,我会在文章导论部分解释混沌系统如何工作。 + +### 如何开始学习混沌系统呢? + +以我的经验,开始学习混沌系统的最好方式是触发一个此前生产中出现的事故来进行实验。使用过去的数据,制定一个计划,以相同的方式破坏你的系统,然后建立修复策略,并确认结果满足你预期。如果计划失败,你就有了一种新的实验方式,并朝着快速处理问题的新方式前进。 + +最重要的是,你可以随时记录所有内容,这意味着,随着时间的推移,整个系统将被完整记录下来,任何人都可以值守而无需太多加码,每个人都可以在周末好好休息。 + +### 你要在混沌工程中做什么? + +混沌系统实验运行背后有一些科学依据。我记录了其中一些步骤: + +1. **定义一个稳定状态:** 使用监控工具来搜集当系统没有问题或事故时,看起来功能正常的数据。 +2. **提出假设或使用先前的事故:** 现在你已经定义了一个稳定状态,请提出一个关于在事故或中断期间会发生(或发生过)的情况的假设。用这个假设来得出一系列将会发生的事故,以及如何解决问题的理论。然后你可以制定一个故意引发该问题的计划。 +3. **引发问题:** 用这个计划来破坏系统,并开始在真实环境中测试。收集破坏时的指标状态,按计划修复,并追踪提出解决方案所需时长。确保你把所有的东西都记录下来,以备将来发生故障时使用。 +4. **试图推翻你的假设:** 实验中最精彩的部分是尝试推翻你的思考或计划。你要创建一个不同的状态,看看你能走多远,并在系统中生成一个不同的稳定状态。 + +确保在你在另一个系统中生成的破坏因素前,建立一个处于稳定状态的控制系统。这将使你更容易在实验前、期间和之后发现各种稳定状态的差异。 + +### 混沌工程需要什么? + +这有一些初学混沌工程很好的工具: + +* 良好的文档编制方法 +* 一个捕捉你系统是否处于稳定状态的监控系统 + * Grafana + * Prometheus +* 混沌工程工具: + * Chaos mesh + * Litmus + * 之后的文章我会介绍更多 +* 一个假设 +* 一个计划 + +### 去搞破坏吧 + +现在你已经掌握了基础,是时候去安全的摧毁你的系统了。我计划每年制造四次混乱,然后努力实现每月一次的破坏。 + +混沌工程是一种很好的实践,也是推进你的内部文档保持最新的好方法。此外,随着时间的推移,新升级或应用程序部署将更加顺畅,你的日常生活管理将通过 Kubernetes 变得更加轻松。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/kubernetes-chaos + +作者:[Jessica Cherry][a] +选题:[lujun9972][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[turbokernel](https://github.com/turbokernel), [wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/cherrybomb +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brett-jordan-chaos-unsplash.jpg?itok=sApp5dVd (Scrabble letters spell out chaos for chaos engineering) diff --git a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md b/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md deleted file mode 100644 index 8c2978f97a..0000000000 --- a/translated/tech/20210531 Get started with Kubernetes using chaos engineering.md +++ /dev/null @@ -1,71 +0,0 @@ -[#]: subject: (Get started with Kubernetes using chaos engineering) -[#]: via: (https://opensource.com/article/21/5/kubernetes-chaos) -[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) -[#]: collector: (lujun9972) -[#]: translator: (Donkey) -[#]: reviewer: (turbokernel) -[#]: publisher: ( ) -[#]: url: ( ) - -在混沌工程中开始使用 Kubernetes -====== -在庆祝 Kubernetes 11 岁生日的系列文章中的第一篇文章中学习混沌工程的基础知识。 - -![Scrabble letters spell out chaos for chaos engineering][1] - -Kubernetes 快 11 岁了,我打算通过给你一些会引起混沌的开源工具来庆祝它的生日。混沌工程是科学、规划以及实验的学科。它在系统上进行训练,来建立系统在生产中承受混乱条件能力的信心的学科。 - -在我给你礼物前,我会在文章导论部分解释混沌系统如何工作。 - -### 如何开始学习混沌系统呢? - -以我的经验,开始学习混沌系统的最好方式是触发一个此前生产中出现的事件来进行实验。使用过去的数据,制定以相同的方式破坏系统的计划,然后建立修复策略并确认结果满足你预期。如果计划失败,你就有了一种新的实验方式,并朝着快速处理问题的新方式前进。 - -最重要的是,你可以随时记录所有内容,这意味着,随着时间的推移,整个系统将被完整记录下以便任何人都可以随时待命而无需太多升级,并且每个人都可以在周末好好休息。 - -### 你在混沌工程中做什么? - -混沌系统实验运行背后有一些科学依据。我已经记录了步骤: - -1. **定义一个稳定状态:** 使用监控工具来搜集当系统没有问题或事件时,看起来功能正常的数据。 -2. **提出假设或使用先前的事件:** 现在你已经定义了一个稳定状态,请提出一个关于在事件或中断期间会发生(或已经发生)的情况的假设。用这个假设来得出一系列将会发生的事件以及如何解决问题的理论。然后你可以指定一个故意引起该问题的计划。 -3. **介绍问题:** 用既定计划来破坏系统并开始在真实环境中测试。收集损坏时指标状态,按计划修复,并追踪提出解决方案所需时长。确保你在中断之后记录了所有事情。 -4. **试图推翻你的假设:** 实验中最精彩的部分是尝试推翻你的思考或计划。你想创建一个不同的状态,看看你能走多远,并在系统中生成一个不同的稳定状态。 - -当你在另一个系统中生成破坏的变量前,确保建立一个处于稳定状态的控制系统。这将使你更容易在实验前、期间和之后发现各种稳定状态的差异。 - -### 混沌工程需要什么? - -这有一些初学混沌工程很好的工具: - -* 良好的记录习惯 -* 一个捕捉你系统是否处于稳定状态的监控系统 - * Grafana - * Prometheus -* 混沌工程工具: - * Chaos mesh - * Litmus - * 之后的文章我会介绍更多 -* 一个假设 -* 一个计划 - -### 去搞破坏吧 - -现在你已经掌握了基础,是时候去安全的摧毁你的系统了。我计划每年造成四次混乱,并努力实现每月的破坏。 - -混沌工程是一种很好的实践,也是推进你的内部文档保持最新的好方法。此外,随着时间的推移,新升级或应用程序部署将更加顺畅,你的日常生活管理将通过 Kubernetes 变得更加轻松。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/kubernetes-chaos - -作者:[Jessica Cherry][a] -选题:[lujun9972][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[turbokernel](https://github.com/turbokernel) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/cherrybomb -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brett-jordan-chaos-unsplash.jpg?itok=sApp5dVd (Scrabble letters spell out chaos for chaos engineering) From 5a18d2ce6af201e738ce3881d05983dd349b0f19 Mon Sep 17 00:00:00 2001 From: Donkey-Hao Date: Wed, 22 Jun 2022 14:17:29 +0800 Subject: [PATCH 0065/3123] translated --- ...orkspace remotely from the command line.md | 137 ----------------- ...orkspace remotely from the command line.md | 140 ++++++++++++++++++ 2 files changed, 140 insertions(+), 137 deletions(-) delete mode 100644 sources/tech/20210122 Configure a Linux workspace remotely from the command line.md create mode 100644 translated/tech/20210122 Configure a Linux workspace remotely from the command line.md diff --git a/sources/tech/20210122 Configure a Linux workspace remotely from the command line.md b/sources/tech/20210122 Configure a Linux workspace remotely from the command line.md deleted file mode 100644 index 373b850f80..0000000000 --- a/sources/tech/20210122 Configure a Linux workspace remotely from the command line.md +++ /dev/null @@ -1,137 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (Donke-Hao) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Configure a Linux workspace remotely from the command line) -[#]: via: (https://opensource.com/article/21/1/remote-configuration-xfce4) -[#]: author: (David Both https://opensource.com/users/dboth) - -Configure a Linux workspace remotely from the command line -====== -Nearly everything can be done from the Linux command line, including -remote configuration of Xfce4. -![Coding on a computer][1] - -One of the things I appreciate about Linux versus proprietary operating systems is that almost everything can be managed and configured from the command line. That means that nearly everything can be configured locally or even remotely via an SSH login connection. Sometimes it takes a bit of time spent on Internet searches, but if you can think of a task, it can probably be done from the command line. - -### The problem - -Sometimes it is necessary to make remote modifications to a desktop using the command line. In this particular case, I needed to reduce the number of workspaces on the [Xfce][2] panel from four to three at the request of a remote user. This configuration only required about 20 minutes of searching on the Internet. - -The default workspace count and many other settings for **xfwm4** can be found and changed in the **/usr/share/xfwm4/defaults** file. So setting _workspace_count=4_ to _workspace_count=2_ changes the default for all users on the host. Also, the **xfconf-query** command can be run by non-root users to query and set various attributes for the **xfwm4** window manager. It should be used by the user account that requires the change and not by root. - -In the sample below, I have first verified the current setting of _four_ workspaces, then set the number to _two_, and finally confirmed the new setting. - - -``` -[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -4 -[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -s 2 -[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -2 -[user@test1 ~]# -``` - -This change takes place immediately and is visible to the user without a reboot or even logging out and back in. I had a bit of fun with this on my workstation by watching the workspace switcher change as I entered commands to set different numbers of workspaces. I get my amusements where I can these days. ;-) - -### More exploration - -Now that I fixed the problem, I decided to explore the **xfconf-query** command in a bit more detail. Unfortunately, there are no man or info pages for this tool, nor is there any documentation in **/usr/share**. The usual fallback of using the **-h** option resulted in little helpful information. - - -``` -$ xfconf-query -h - Usage: -   xfconf-query [OPTION…] - Xfconf commandline utility - Help Options: -   -h, --help            Show help options - Application Options: -   -V, --version         Version information -   -c, --channel         The channel to query/modify -   -p, --property        The property to query/modify -   -s, --set             The new value to set for the property -   -l, --list            List properties (or channels if -c is not specified) -   -v, --verbose         Verbose output -   -n, --create          Create a new property if it does not already exist -   -t, --type            Specify the property value type -   -r, --reset           Reset property -   -R, --recursive       Recursive (use with -r) -   -a, --force-array     Force array even if only one element -   -T, --toggle          Invert an existing boolean property -   -m, --monitor         Monitor a channel for property changes -``` - -This is not a lot of help, but we can figure out a good bit from it anyway. First, _channels_ are groupings of properties that can be modified. I made the change above to the **general** channel, and the property is **workspace_count**. Let’s look at the complete list of channels. - - -``` -$ xfconf-query -l -Channels: -  xfwm4 -  xfce4-keyboard-shortcuts -  xfce4-notifyd -  xsettings -  xfdashboard -  thunar -  parole -  xfce4-panel -  xfce4-appfinder -  xfce4-settings-editor -  xfce4-power-manager -  xfce4-session -  keyboards -  displays -  keyboard-layout -  ristretto -  xfcethemer -  xfce4-desktop -  pointers -  xfce4-settings-manager -  xfce4-mixer -``` - -The properties for a given channel can also be viewed using the following syntax. I have used the **less** pager because the result is a long stream of data. I have pruned the listing below but left enough to see the type of entries you can expect to find. - - -``` -$ xfconf-query -c xfwm4 -l | less -/general/activate_action -/general/borderless_maximize -/general/box_move -/general/box_resize -/general/button_layout -/general/button_offset -<SNIP> -/general/workspace_count -/general/workspace_names -/general/wrap_cycle -/general/wrap_layout -/general/wrap_resistance -/general/wrap_windows -/general/wrap_workspaces -/general/zoom_desktop -(END) -``` - -You can explore all the channels in this manner. I discovered that the channels generally correspond to the various settings in the **Settings Manager**. The properties are the ones that you would set in those dialogs. Note that not all the icons you will find in the **Settings Manager** dialog window are part of the **Xfce** desktop, so there are no corresponding channels for them. The **Screensaver** is one example because it is a generic GNU screensaver and not unique to **Xfce**. The **Settings Manager** is just a good central place for **Xfce** to locate many of these configuration tools. - -### Documentation - -As mentioned previously, there do not appear to be any man or info pages for the **xconf-query** command, and I found a lot of incorrect and poorly documented information on the Internet. The best documentation I found for **Xfce4** is on the [Xfce website][2], and some specific information on **xconf-query** can be found here. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/1/remote-configuration-xfce4 - -作者:[David Both][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/dboth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/code_computer_laptop_hack_work.png?itok=aSpcWkcl (Coding on a computer) -[2]: https://www.xfce.org/ diff --git a/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md b/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md new file mode 100644 index 0000000000..d6c391f702 --- /dev/null +++ b/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md @@ -0,0 +1,140 @@ +[#]: collector: (lujun9972) +[#]: translator: (Donke-Hao) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Configure a Linux workspace remotely from the command line) +[#]: via: (https://opensource.com/article/21/1/remote-configuration-xfce4) +[#]: author: (David Both https://opensource.com/users/dboth) + +从命令行远程配置 Linux 工作区 + +====== + +几乎所有的事情都可以从 Linux 命令行完成,包括 Xfce4 的远程配置。 +![Coding on a computer][1] + +几乎所有的事情都可以通过命令行管理和配置。意味着几乎所有的事情都可以在本地或者通过 SSH 远程登录进行管理。有时候在互联网上搜索会花费一点时间,但是如果(译者:个人感觉这里上下文有省略一些意思,我感觉是“如果利用这段时间,你能想到…”——_**请校对者注意并删除括号内的话**_)你能想到一个可能可以从命令行完成的任务。 + + +### 问题 +有时候需要使用命令行进行远程修改。在这种特殊情况下,我需要响应远程用户的请求将在 [Xfce][2] 控制板上的工作区从四个减少到三个。这种配置仅需要在互联网上搜索约 20 分钟。 + +默认工作区数量和许多其他 **xfwm4** 设置可以在 **/usr/share/xfwm4/defaults** 这个文件中找到并修改。因此将 _workspace_count=2_ 设置为 _workspace_count=4_ 改变了所有主机的默认值。 同时,非 root 用户可以执行 **xfconf-query** 命令来查询并修改 **xfwm4** 窗口管理器的不同属性。它应该由需要更改的用户帐户使用,而不是由 root 使用。 + +在下面的例子中,首先我验证了当前工作区数量为 _4_ ,然后将数量改为 _2_ ,最后确认了新设置。 + + + +``` +[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count +4 +[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -s 2 +[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count +2 +[user@test1 ~]# +``` + +此更改会立即发生,并且用户可以看到,无需重新启动,甚至无需注销并重新登录。当我输入命令以设置不同数量的工作区时,通过观察工作区切换器的变化,使我在我的工作站上有些快乐。 这些天,我尽我所能获得娱乐。 ;-) + + +### 更多探索 + +现在我解决了问题,我决定更详细的探索一下 **xfconf-query** 命令。不幸的是,该工具没有手册或信息页,**/usr/share** 中也没有任何文档。退而求其次,使用 **-h** 选项获取一些帮助信息。 + + +``` +$ xfconf-query -h + Usage: +   xfconf-query [OPTION…] - Xfconf commandline utility + Help Options: +   -h, --help            显示帮助选项 + Application Options: +   -V, --version         版本信息 +   -c, --channel         询问/修改通道 +   -p, --property        询问/修改属性 +   -s, --set             更新权限的值 +   -l, --list            罗列属性(或者通道 如果没有用 -c 指定) +   -v, --verbose         详细输出 +   -n, --create          当新属性不存在,则创建它 +   -t, --type            指定属性值类型 +   -r, --reset           重置属性 +   -R, --recursive       递归(与 -r 一起使用) +   -a, --force-array     即使只有一个元素也强制数组 +   -T, --toggle          反转现有的布尔属性 +   -m, --monitor         监视属性更改的通道 +``` + +这没有多大帮助,但无论如何我们都可以从中找出一些好处。首先, _通道_ 以属性分组便于修改。我对 **general** 通道进行了更改,属性为 **workspace_count** 。 让我们看看完整的通道列表。 + +``` +$ xfconf-query -l +Channels: +  xfwm4 +  xfce4-keyboard-shortcuts +  xfce4-notifyd +  xsettings +  xfdashboard +  thunar +  parole +  xfce4-panel +  xfce4-appfinder +  xfce4-settings-editor +  xfce4-power-manager +  xfce4-session +  keyboards +  displays +  keyboard-layout +  ristretto +  xfcethemer +  xfce4-desktop +  pointers +  xfce4-settings-manager +  xfce4-mixer +``` + +给定通道的属性也可以用下列的命令来查看。我使用 **less** 寻呼机,因为结果是一长串数据。我已经缩减了下表,但留下了足够的空间来查看你可以找到的条目类型。 + + +``` +$ xfconf-query -c xfwm4 -l | less +/general/activate_action +/general/borderless_maximize +/general/box_move +/general/box_resize +/general/button_layout +/general/button_offset +<SNIP> +/general/workspace_count +/general/workspace_names +/general/wrap_cycle +/general/wrap_layout +/general/wrap_resistance +/general/wrap_windows +/general/wrap_workspaces +/general/zoom_desktop +(END) +``` + +你可以用这种方式探索所有的通道。我发现频道通常对应 **设置管理器** 中的各种设置。属性是你将在这些对话框中设置的属性。请注意,并非您会在 **设置管理器** 对话窗口中找到的所有图标都是 **Xfce** 桌面的一部分,因此它们没有对应的通道。 **屏幕保护程序** 就是一个例子,因为它是通用的 GNU 屏幕保护程序,并不是 **Xfce** 独有的。 **设置管理器** 是 **Xfce** 定位这些配置工具的一个很好的中心位置。 + + +### 总结 + +综上所述,在 **xconf-query** 命令似乎没有任何手册或信息页,并且我在网上发现了一些错误的糟糕的记录信息。我发现对 **Xfce4** 来说最好的文件是 [Xfce 网站][2],以及一些具体信息可以在 **xconf-query** 找到。、 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/1/remote-configuration-xfce4 + +作者:[David Both][a] +选题:[lujun9972][b] +译者:[Donke-Hao](https://github.com/Donke-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dboth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/code_computer_laptop_hack_work.png?itok=aSpcWkcl (Coding on a computer) +[2]: https://www.xfce.org/ From ce123f6d0b05302c61b3da7116c72df9b4a02f36 Mon Sep 17 00:00:00 2001 From: SamMa Date: Wed, 22 Jun 2022 15:19:43 +0800 Subject: [PATCH 0066/3123] Update 20210104 Docker Compose- a nice way to set up a dev environment.md --- ... Docker Compose- a nice way to set up a dev environment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md index 24b500cf23..3c5f451269 100644 --- a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md +++ b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (lkxed) -[#]: reviewer: ( ) +[#]: reviewer: (turbokernel) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Docker Compose: a nice way to set up a dev environment) @@ -231,7 +231,7 @@ via: https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/ 作者:[Julia Evans][a] 选题:[lujun9972][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[turbokernel](https://github.com/turbokernel) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From eada2093cc0b4b3ca847d2ac71c61466a26435d0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 22 Jun 2022 16:15:50 +0800 Subject: [PATCH 0067/3123] RP @geekpi https://linux.cn/article-14744-1.html --- ... Apps And Games Using WineZGUI On Linux.md | 70 +++++++++---------- 1 file changed, 33 insertions(+), 37 deletions(-) rename {translated/tech => published}/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md (58%) diff --git a/translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md b/published/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md similarity index 58% rename from translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md rename to published/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md index 443540f00c..64081739db 100644 --- a/translated/tech/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md +++ b/published/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md @@ -3,44 +3,40 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14744-1.html" 在 Linux 上使用 WineZGUI 运行 Windows 应用和游戏 ====== -WineZGUI - 一个使用 Zenity 的 Wine GUI 前台 -不久前,我们写了关于 **[Bottles][1]** 的文章,这是一个开源的图形应用,可以在 Linux 操作系统上轻松运行 Windows 软件和游戏。今天,我们将讨论一个类似的有趣项目。向 **WineZGUI** 打个招呼,它是一个 Wine GUI 前台,可以**[在 Linux 上用 Wine 运行 Windows 应用和游戏][2]**。 +![](https://img.linux.net.cn/data/attachment/album/202206/22/160322tds2ut05d8jqdlzz.jpg) +> WineZGUI - 一个使用 Zenity 的 Wine GUI 前台 -#### 内容 - -1. 什么是 WineZGUI? -2. Bottles 与 WineZGUI -3. 如何在 Linux 中安装 WineZGUI -4. 在 Linux 中用 WineZGUI 运行 Windows 应用和游戏 -5. 总结 +不久前,我们写了关于 [Bottles][1] 的文章,这是一个开源的图形应用,可以在 Linux 操作系统上轻松运行 Windows 软件和游戏。今天,我们将讨论一个类似的有趣项目。向 **WineZGUI** 打个招呼,它是一个 Wine GUI 前台,可以 [在 Linux 上用 Wine 运行 Windows 应用和游戏][2]。 ### 什么是 WineZGUI? -WineZGUI 是一个 Bash 脚本的集合,它允许你轻松地管理 wine 前缀,并在 Linux 上使用 **Zenity** 提供更容易的 wine 游戏体验。 +WineZGUI 是一个 Bash 脚本的集合,它允许你轻松地管理 Wine 前缀,并在 Linux 上使用 **Zenity** 提供更轻松的 Wine 游戏体验。 -使用 WineZGUI,我们可以直接从文件管理器中启动 Windows exe 文件或游戏,而无需安装它们。 +(LCTT 译注:Wine 前缀是一个特殊文件夹,Wine 在其中放置所有 Wine 特定的文件,安装 Windows 程序、库和注册表代码,以及用户首选项。) -WineZGUI 为每个应用或游戏创建快捷方式,以便于访问,同时也为每个 exe 二进制文件创建单独的前缀。 +使用 WineZGUI,我们可以直接从文件管理器中启动 Windows EXE 文件或游戏,而无需安装它们。 -当你用 WineZGUI 启动一个 Windows exe 文件时,它会提示你是否使用默认的 wine 前缀或创建一个新的前缀。默认的前缀是 `~/.local/share/winezgui/default`。 +WineZGUI 为每个应用或游戏创建快捷方式,以便于访问,同时也为每个 EXE 二进制文件创建单独的前缀。 -如果你选择为 windows 二进制文件或 exe 创建一个新的前缀,WineZGUI 将尝试从 exe 文件中提取产品名称和图标,并创建一个桌面快捷方式。 +当你用 WineZGUI 启动一个 Windows EXE 文件时,它会提示你是否使用默认的 Wine 前缀或创建一个新的前缀。默认的前缀是 `~/.local/share/winezgui/default`。 -当你以后启动相同的 exe 或二进制文件时,它将建议你用先前的相关前缀来运行它。 +如果你选择为 Windows 二进制文件(EXE)创建一个新的前缀,WineZGUI 将尝试从 EXE 文件中提取产品名称和图标,并创建一个桌面快捷方式。 -说得通俗一点,WineZGUI 只是一个用于官方原始 wine 的 Wine 和 winetricks 的简单 GUI。当我们启动一个 exe 来玩游戏时,Wine 前缀的设置是自动的。 +当你以后启动相同的二进制文件(EXE)时,它将建议你用先前的相关前缀来运行它。 -你只需打开一个 exe,它就会创建一个前缀和一个桌面快捷方式,并从该 exe 中提取名称和图标。 +说得通俗一点,WineZGUI 只是一个用于官方原始 Wine 的简单 GUI。当我们启动一个 EXE 来玩游戏时,Wine 前缀的设置是自动的。 -它使用 **exiftool** 和 **icotool** 工具来分别提取名称和图标。你可以通过现有的前缀打开一个 exe 来启动该游戏,或者使用桌面快捷方式。 +你只需打开一个 EXE,它就会创建一个前缀和一个桌面快捷方式,并从该 EXE 中提取名称和图标。 + +它使用 `exiftool` 和 `icotool` 工具来分别提取名称和图标。你可以通过现有的前缀打开一个 EXE 来启动该游戏,或者使用桌面快捷方式。 WineZGUI 是一个在 GitHub 上免费托管的 shell 脚本。你可以抓取源代码,改进它,修复错误和增加功能。 @@ -48,30 +44,30 @@ WineZGUI 是一个在 GitHub 上免费托管的 shell 脚本。你可以抓取 你可能想知道 WineZGUI 与 Bottles 相比如何。但这些应用之间有一个微妙的区别。 -**Bottles 是面向前缀的**和**面向运行器的**。意思是:Bottles 首先创建一个前缀,然后使用不同的 exe 文件。Bottles 不会记住 exe 的前缀。Bottles 使用不同的运行器。 +**Bottles 是面向前缀的**和**面向运行器的**。意思是:Bottles 首先创建一个前缀,然后使用不同的 EXE 文件。Bottles 不会记住 EXE 的前缀。Bottles 使用不同的运行器。 -**WineZGUI 是面向 exe 的**。它使用 exe 只为该 exe 创建一个前缀。下次我们打开一个 exe 时,它将询问是否用现有的 exe 前缀启动。 +**WineZGUI 是面向 EXE 的**。它使用 EXE 并只为该 EXE 创建一个前缀。下次我们打开一个 EXE 时,它将询问是否用现有的 EXE 前缀启动。 -WineZGUI 不提供像 **bottles** 或 **[lutris][3]** 那样的高级功能,如运行程序、在线安装程序等。 +WineZGUI 不提供像 Bottles 或 [lutris][3] 那样的高级功能,如运行程序、在线安装程序等。 ### 如何在 Linux 中安装 WineZGUI 确保你已经安装了 WineZGUI 的必要先决条件。 -**Debian/Ubuntu:** +Debian/Ubuntu: ``` $ sudo dpkg --add-architecture i386 $ sudo apt install zenity wine winetricks libimage-exiftool-perl icoutils gnome-terminal ``` -**Fedora:** +Fedora: ``` $ sudo dnf install zenity wine winetricks perl-Image-ExifTool icoutils gnome-terminal ``` -官方推荐的安装 WineZGUI 的方法是使用 **[Flatpak][4]**。 +官方推荐的安装 WineZGUI 的方法是使用 [Flatpak][4]。 安装完 Flatpak 后,逐一运行以下命令,在 Linux 中安装 WineZGUI。 @@ -107,12 +103,12 @@ $ flatpak --user -y install io.github.WineZGUI_0_4_20220608.flatpak * 打开 Winetricks GUI 和 CLI。 * 启动 Wine 配置。 * 启动资源管理器。 -* 打开 BASH shell。 +* 打开 BASH Shell。 * 关闭所有的应用/游戏,包括 WineZGUI 界面。 -* 删除 wine 前缀。 +* 删除 Wine 前缀。 * 查看已安装的 WineZGUI 版本。 -为了演示,我将打开一个 .exe 文件。 +为了演示,我将打开一个 EXE 文件。 在下一个窗口中,选择要运行的 EXE 文件。在我的例子中,它是 WinRAR。 @@ -126,11 +122,11 @@ $ flatpak --user -y install io.github.WineZGUI_0_4_20220608.flatpak ![Install WinRAR In Linux][9] -点击 OK 来完成 WinRAR 的安装。 +点击 “OK” 来完成 WinRAR 的安装。 ![Complete WinRAR Installation][10] -点击“运行 WinRAR” 来启动它。 +点击 “运行 WinRARRun WinRAR” 来启动它。 ![Run WinRAR][11] @@ -140,13 +136,13 @@ $ flatpak --user -y install io.github.WineZGUI_0_4_20220608.flatpak ### 总结 -WineZGUI 是俱乐部的新人。 如果你正在寻找一种在 Linux 桌面上使用 Wine 运行 Windows 应用和游戏的更简单方法,WineZGUI 可能是一个不错的选择。 +WineZGUI 是俱乐部的新人。如果你正在寻找一种在 Linux 桌面上使用 Wine 运行 Windows 应用和游戏的更简单方法,WineZGUI 可能是一个不错的选择。 -在 WineZGUI 的帮助下,用户可以选择在与 `.exe` 相同的文件夹中创建一个 wine 前缀,并创建一个相对链接的 `.desktop` 条目来自动执行此操作。 +在 WineZGUI 的帮助下,用户可以选择在与 EXE 相同的文件夹中创建一个 Wine 前缀,并创建一个相对链接的 `.desktop` 条目来自动执行此操作。 -原因是使用 wine 前缀备份和删除游戏更容易,并且让它生成一个 `.desktop` 将使其能够适应移动和转移。 +原因是使用 Wine 前缀备份和删除游戏更容易,并且让它生成一个 `.desktop` 将使其能够适应移动和转移。 -一个很酷的场景是使用应用进行设置,然后将 wine 前缀分享给你的朋友和其他人,他们只需要一个具有所有依赖性和保存的工作 wine 前缀。 +一个很酷的场景是使用该应用进行设置,然后将 Wine 前缀分享给你的朋友和其他人,他们只需要一个具有所有依赖性和保存的工作 Wine 前缀。 请试一试它,在下面的评论区告诉我们你对这个项目的看法。 @@ -161,7 +157,7 @@ via: https://ostechnix.com/winezgui-run-windows-apps-and-games-on-linux/ 作者:[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/) 荣誉推出 From 79bbb10164cbff5ed502efd8001af48f93231b46 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 16:36:16 +0800 Subject: [PATCH 0068/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220622=20Using=20Linux=20System=20Roles=20to=20imp?= =?UTF-8?q?lement=20Clevis=20and=20Tang=20for=20automated=20LUKS=20volume?= =?UTF-8?q?=20unlocking.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ang for automated LUKS volume unlocking.md | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md diff --git a/sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md b/sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md new file mode 100644 index 0000000000..b9f86db8ed --- /dev/null +++ b/sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md @@ -0,0 +1,193 @@ +[#]: subject: "Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking" +[#]: via: "https://fedoramagazine.org/using-linux-system-roles-to-implement-clevis-and-tang-for-automated-luks-volume-unlocking/" +[#]: author: "Brian Smith https://fedoramagazine.org/author/briansmith/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking +====== + +![][1] + +Photo by [Mikhail Fesenko][2] on [Unsplash][3] + +One of the key aspects of system security is encrypting storage at rest. Without encrypted storage, any time a storage device leaves your presence it can be at risk. The most obvious scenario where this can happen is if a storage device (either just the storage device or the entire system, server, or laptop) is lost or stolen. + +However, there are other scenarios that are a concern as well: perhaps you have a storage device fail, and it is replaced under warranty — many times the vendor will ask you to return the original device. If the device was encrypted, it is much less of a concern to return it back to the hardware vendor. + +Another concern is anytime your storage device is out of sight there is a risk that the data is copied or cloned off of the device without you even being aware. Again, if the device is encrypted, this is much less of a concern. + +Fedora (and other Linux distributions) include the Linux Unified Key Setup (LUKS) functionality to support disk encryption. LUKS is easy to use, and is even integrated as an option in the Fedora Anaconda installer. + +However there is one challenge that frequently prevents people from implementing LUKS on a large scale, especially for the root filesystem: every single time you reboot the host you generally have to manually access the console and type in the LUKS passphrase so the system can boot up. + +If you are running Fedora on a single laptop, this might not be a problem, after all, you probably are sitting in front of your laptop any time you reboot it. However, if you have a large number of Fedora instances, this quickly becomes impractical to deal with. + +![][4] + +You might be managing Fedora systems that are at remote locations, and you might not even have good or reliable ways to access a console on them. In this case, rebooting the hosts could result in them not coming up until you or someone else travels to their location to type in the LUKS passphrase. + +This article will cover how to implement a solution to enable automated LUKS volume unlocking (and the process to implement these features will be done using automation as well!) + +### Overview of Clevis and Tang + +Clevis and Tang are an innovative solution that can help with the challenge of having systems with encrypted storage boot up without manual user intervention on every boot. At a high level, Clevis, which is installed on the client systems, can enable LUKS volumes to be unlocked without user intervention as long as the client system has network access to a configurable number of Tang servers. + +The basic premise is that the Tang server(s) are on an internal/private or otherwise secured network, and if the storage devices are lost, stolen, or otherwise removed from the environment, that they would no longer have network access to the Tang server(s), and thus no longer automatically unlock automatically at boot. + +Tang is stateless and doesn’t require authentication or even TLS, which means it is very lightweight and easy to configure, and can run from a container. In this article, I’m only setting up a single Tang server, however it is also possible to have multiple Tang servers in an environment, and to configure the number Tang servers the Clevis clients must connect to in order to unlock the encrypted volume. For example, you could have three Tang servers, and require the Clevis clients to be able to connect to at least two of the three Tang servers. + +For more information on how Tang and Clevis work, refer to the GitHub pages: [Clevis][5] and [Tang][6], or for an overview of the inner workings of Tang and Clevis, refer to the [Securing Automated Decryption New Cryptography and Techniques][7] FOSDEM talk. + +### Overview of Linux System Roles + +Linux System Roles is a set of Ansible Roles/Collections that can help automate the configuration and management of many aspects of Fedora, CentOS Stream, RHEL, and RHEL derivatives. Linux System Roles is packaged in Fedora as an RPM (*linux-system-roles*) and is also available on Ansible Galaxy (as both roles and as a collection). For more information on Linux System Roles, and to see a list of included roles, refer to the [Linux System Roles project page][8]. + +Included in the list of Linux System Roles are the *nbde_client*, *nbde_server*, and *firewall* roles that will be used in this article. The *nbde_client* and *nbde_server* roles are focused on automating the implementation of Clevis and Tang, respectively. The “nbde” in the role names stands for network bound disk encryption, which is another term to refer to using Clevis and Tang for automated unlocking of LUKS encrypted volumes. The *firewall* role can automate the implementation of firewall settings, and will be used to open a port in the firewall on the Tang server. + +### Demo environment overview + +In my environment, I have a Raspberry Pi, running Fedora 36 that I will install Linux System Roles on and use as my Ansible control node. In addition, I’ll use this same Raspberry Pi as my Tang server. This device is configured with the *pi.example.com* hostname. + +In addition, I have four other systems in my environment: two Fedora 36 systems, and two CentOS Stream 9 systems, named *fedora-server1.example.com*, *fedora-server2.example.com*, *c9s-server1.example.com*, and *c9s-server2.example.com*. Each of these four systems has a LUKS encrypted root filesystem and currently the LUKS passphrase must be manually typed in each time the systems boot up. + +I’ll use the *nbde_server* and *firewall* roles to install and configure Tang on my*pi.example.com*system, and use the *nbde_client* role to install and configure Clevis on my four other systems, enabling them to automatically unlock their encrypted root filesystem if they can connect to the *pi.example.com* Tang system. + +### Installing Linux System Roles and Ansible on the Raspberry Pi + +I’ll start by installing the *linux-system-roles* package on the *pi.example.com* host, which will act as my Ansible control node. This will also install *ansible-core* and several other packages as dependencies. These packages do not need to be installed on the other four systems in my environment (which are referred to as managed nodes). + +``` +$ sudo dnf install linux-system-roles +``` + +SSH keys and sudo configuration need to be configured so that the control node host can connect to each of the managed nodes in the environment and escalate to root privileges. + +### Defining the Ansible inventory file + +Still on the *pi.example.com* host, I’ll create an Ansible inventory file to group the five systems in my environment into two Ansible inventory groups. The *nbde_servers* group will contain a list of hosts that I would like to configure as Tang servers (which in this example is only the *pi.example.com*host), and the *nbde_clients* group will contain a list of hosts that I would like to configure as Clevis clients. I’ll name this inventory file *inventory.yml* and it contains the following content: + +``` +all: + children: + nbde_servers: + hosts: + pi.example.com: + nbde_clients: + hosts: + fedora35-server1.example.com: + fedora35-server2.example.com: + c9s-server1.example.com: + c9s-server2.example.com: +``` + +### Creating Ansible Group variable files + +Ansible variables are set to specify what configuration should be implemented by the Linux System Roles. Each role has a README.md file that contains important information on how to use each role, including a list of available role variables. The README.md files for the *nbde_server*, *nbde_client*, and *firewall* roles are available in the following locations, respectively: + +* /usr/share/doc/linux-system-roles/nbde_server/README.md +* /usr/share/doc/linux-system-roles/nbde_client/README.md +* /usr/share/doc/linux-system-roles/firewall/README.md + +I’ll create a *group_vars* directory with the *mkdir group_vars* command. Within this directory, I’ll create a *nbde_servers.yml* file and *nbde_clients.yml* file, which will define, respectively, the variables that should be set for systems listed in the *nbde_servers* inventory group and the *nbde_clients* inventory group. + +The *nbde_servers.yml* file contains the following content, which will instruct the *firewall* role to open TCP port 80, which is the default port used by Tang: + +``` +firewall: + - port: ['80/tcp'] + state: enabled +``` + +The *nbde_clients.yml* file contains the following content: + +``` +nbde_client_bindings: + - device: /dev/vda2 + encryption_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 62666465373138636165326639633... + servers: + - http://pi.example.com +``` + +Under *nbde_client_bindings*, *device* specifies the backing device of the encrypted root filesystem on the four managed nodes. The *encryption_password* specifies a current LUKS passphrase that is required to configure Clevis. In this example, I’ve used *ansible-vault* to encrypt the string rather than place the LUKS passphrase in clear text. And finally, under *servers*, a list of Tang servers that Clevis should bind to are specified. In this example, the Clevis clients will be configured to bind to the *pi.example.com* Tang server. + +### Creating the playbook + +I’ll create a simple Ansible playbook, named *nbde.yml* that will call the *firewall* and *nbde_server* roles for systems in the *nbde_servers* inventory group, and call the *nbde_client* role for systems in the *nbde_clients* group: + +``` +- name: Open firewall for Tang + hosts: nbde_servers + roles: + - linux-system-roles.firewall + +- name: Deploy NBDE Tang server + hosts: nbde_servers + roles: + - linux-system-roles.nbde_server + +- name: Deploy NBDE Clevis clients + hosts: nbde_clients + roles: + - linux-system-roles.nbde_client +``` + +At this point, I have the following files and directories created: + +* inventory.yml +* nbde.yml +* group_vars/nbde_clients.yml +* group_vars/nbde_servers.yml + +### Running the playbook + +The *nbde.yml* playbook can be run with the following command: + +``` +$ ansible-playbook nbde.yml -i inventory.yml --ask-vault-pass -b +``` + +The*-i*flag specifies which inventory file should be used, the *–ask-vault-pass* flag will prompt for the Ansible Vault password to decrypt the *encryption_password* variable, and the *-b* flag specifies that Ansible should escalate to root privileges. + +![][9] + +### Validating the configuration + +To validate the configuration, I rebooted each of my four managed nodes that were configured as Clevis clients of the Raspberry Pi Tang server. Each of the four managed nodes boots up and briefly pauses on the LUKS passphrase prompt: + +![][10] + +However, after the brief delay, each of the four systems continued booting up without requiring me to enter the LUKS passphrase. + +### Conclusion + +If you would like to secure your data at rest with LUKS encryption, but need a solution that enables systems to boot up without intervention, consider implementing Clevis and Tang. Linux System Roles can help you implement Clevis and Tang, as well as a number of other aspects of your system, in an automated manner. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/using-linux-system-roles-to-implement-clevis-and-tang-for-automated-luks-volume-unlocking/ + +作者:[Brian Smith][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://fedoramagazine.org/author/briansmith/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/Automatic-LUKS-volume-unlocking-816x345.jpg +[2]: https://unsplash.com/@proggga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/system-administrator?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://fedoramagazine.org/wp-content/uploads/2022/06/several-1024x576.png +[5]: https://github.com/latchset/clevis +[6]: https://github.com/latchset/tang +[7]: https://www.youtube.com/watch?v=2uLKvB8Z5D0 +[8]: https://linux-system-roles.github.io/ +[9]: https://fedoramagazine.org/wp-content/uploads/2022/06/results.png +[10]: https://fedoramagazine.org/wp-content/uploads/2022/06/prompt.png From 76ae20e1d6b1c96f88624800abf5435e8923799c Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 16:39:16 +0800 Subject: [PATCH 0069/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220622=20A=20site=20reliability=20engineer-s=20gui?= =?UTF-8?q?de=20to=20change=20management.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y engineer-s guide to change management.md | 255 ++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 sources/tech/20220622 A site reliability engineer-s guide to change management.md diff --git a/sources/tech/20220622 A site reliability engineer-s guide to change management.md b/sources/tech/20220622 A site reliability engineer-s guide to change management.md new file mode 100644 index 0000000000..3a57157ebe --- /dev/null +++ b/sources/tech/20220622 A site reliability engineer-s guide to change management.md @@ -0,0 +1,255 @@ +[#]: subject: "A site reliability engineer's guide to change management" +[#]: via: "https://opensource.com/article/22/6/change-management-site-reliability-engineers" +[#]: author: "Robert Kimani https://opensource.com/users/robert-charles" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A site reliability engineer's guide to change management +====== +The three core tenets of effective change management for SREs are progressive rollouts, monitoring, and safe and fast rollbacks. + +![change button with arrow clicking][1] + +Image by: Opensource.com + +In my [previous article][2], I wrote about incident management (IM), an important component of site reliability engineering. In this article, I focus on change management (CM). Why is there a need to manage change? Why not simply just have a free-for-all where anyone can make a change at any time? + +There are three tenets of effective CM. This gives you a forecast framework for your CM strategy: + +* Rolling out changes progressively: There's a difference between progressive rollouts in which you deploy changes in stages, and doing it all at once. You get to find out that even though progressive change may look good on paper,there are pitfalls to avoid. +* Detecting problems with changes: Monitoring is extremely critical for your CM to work. I discuss and look at examples of how to setup effective monitoring to ensure that you can detect problems and make changes as quickly as possible. +* Rollback procedures: How can you effectively rollback when things go wrong? + +### Why manage change? + +It's estimated that 75% of production outages are due to changes. Scheduled and approved changes that we all perform. This number is staggering and only requires you to get on top of CM to ensure that everything is in order before the change is attempted. The primary reason for these staggering numbers is that there are inherent problems with changes. + +Infrastructure and platforms are rapidly evolving. Not so long ago, infrastructure was not as complex, and it was easy to manage. For example an organization could have a few servers, where they ran an application server, web-servers, and database servers. But lately the infrastructure and platform are as complex as ever. + +It is impossible to analyze every interconnection and dependency after the fact caused by the numerous sub-systems involved. For instance an application owner may not even know a dependency of an external service until it actually breaks. Even if the application team is aware of the dependency, they may not know all of the intricacies and all the different ways the remote service will respond due to their change. + +You cannot possibly test for unknown scenarios. This goes back to the complexity of the current infrastructure and platforms. It will be cost prohibitive in terms of the time you spend to test each and every scenario before you actually apply a change. Whenever you make a change in your existing production environment, whether it's a configuration change or a code change, the truth is that, you are at high risk of creating an outage. So how do we handle this problem? Let's take a peek at the three tenets of an effective CM system. + +### 3 tenets of an effective change management system for SREs + +Automation is the foundational aspect of effective CM. Automation flows across the entire process of CM. This involves a few things: + +* Progressive rollouts: Instead of doing one big change, the progressive rollouts mechanism allows you to implement change in stages, thereby reducing the impact to the user-base if something goes wrong. This attribute is critical especially if your user-base is large, for instance – web-scale companies. +* Monitoring: You need to quickly and accurately detect any issue with changes. Your monitoring system should be able to reveal the current state of your application and service without any considerable lag in time. +* Safe rollback: The CM system should rollback quickly and safely when needed. Do not attempt any change in your environment without having a bulletproof rollback plan. + +#### Role of automation + +Many of you are aware of the concept of automation, however a lot of organizations lack automation. To increase the velocity of releases, which is an important part of running an Agile organization, manual operations must be eliminated. This can be accomplished by using Continuous Integration and Continuous Delivery but it is only effective when most of the operations are fully automated. This naturally eliminates human errors due to fatigue and carelessness. By virtue, auto-scaling which is an important function of cloud-based applications requires no manual intervention. This process needs to be completely automated. + +### Progressive rollouts for SREs: deploying changes progressively + +Changes to configuration files and binaries have serious consequences, in other words when you make a change to an existing production system, you are at serious risk of impacting the end-user experience. + +For this reason, when you deploy changes progressively instead of all at once you can reduce the impact when things go wrong. If we need to roll back, the effort is generally smaller when the changes are done in a progressive manner. The idea here is, that you would start your change with a smaller set of clients. If you find an issue with the change, you can rollback the change immediately because the size of the impact is small at that point. + +There is an exception to the progressive rollout, you can rollout the change globally all at once if it is an emergency fix and it is warranted to do so. + +#### Pitfalls to progressive rollouts + +Rollout and rollback can get complex because you are dealing with multiple stages of a release. Lack of required traffic can undermine the effectiveness of a release. Especially if in the initial stages you are targeting a smaller set of clients in your rollout. The danger is that, you may prematurely sign off on a release based on a smaller set of clients. It also releases a pipline where you run one script with multiple stages + +Releases can get much longer compared to one single (big) change. In a truly web-scale application that is scattered across the globe, a change can take several days to fully rollout, which can be a problem in some instances. + +Documentation is important. Especially when a stage takes a long time and it requires multiple teams to be involved to manage the change. Everything must be documented in detail in case a rollback or a roll forward is warranted. + +Due to these pitfalls, it is advised that you take a deeper look into your organization change rollout strategy. While progressive rollout is efficient and recommended, if your application is small enough and does not require frequent changes, a change all at once is the way to go. By doing it all at once, you have a clean way to rollback if there is a need to do so. + +#### High level overview of progressive rollout + +Once the code is committed and merged, we start a "Canary release," where canaries are the test subjects. Keep in mind that they are not a replacement for complete automated testing. The name "canary" comes from the early days of mining, when a canary bird was used to detect whether a mine contained poisonous gas before humans entering. + +After the test, a small set of clients are used to rollout our changes and see how things go. Once the "canaries" are signed off, go to the next stage, which is the "Early Adaptors release." This is a slightly bigger set of clients you use to do the rollout. Finally, if the "Early Adaptors" are signed off, move to the biggest pack of the bunch: "All users." + +![high level overview of a progressive rollout][3] + +Image by: (Robert Kimani, CC BY-SA 4.0) + +"Blast radius" refers to the size of the impact if something goes wrong. It is the smallest when we do the canary rollout and actually the biggest when we rollout to all users. + +#### Options for progressive rollouts + +A progressive rollout is either dependent on an application or an organization. For global applications, a geography-based method is an option. For instance you can choose to release to the Americas first, followed by Europe and regions of Asia. When your rollout is dependent on departments within an organization, you can use the classic progressive rollout model, used by many web-scale companies. For instance, you could start off with "Canaries", HR, Marketing, and then customers. + +It's common to choose internal departments as the first clients for progressive rollouts, and then gradually move on to the external users. + +You can also choose a size-based progressive rollout. Suppose you have one-thousand servers running your application. You could start off with 10% in the beginning, then pump up the rollout to 25%, 50%, 75%, and finally 100%. In this way, you can only affect a smaller set of servers as you advance through your progressive rollout. + +There are periods where an application must run 2 different versions simultaneously. This is something you cannot avoid in progressive rollout situations. + +#### Binary and configuration packages + +There are three major components of a system: binary: (software), data (for instance, a database), and configuration (the parameters that govern the behavior of an application). + +It's considered best practice to keep binary and configuration files separate from one another. You want to use version controlled configuration. Your configurations must be "hermetic." At any given time, when the configuration is derived by the application, it's the same regardless of when and where the configurations are derived. This is achieved by treating configuration as code. + +### Monitoring for SREs + +Monitoring is a foundation capability of an SRE organization. You need to know if something is wrong with your application that affects the end-user experience. In addition, your monitoring should help you identify the root cause. + +The primary functions of monitoring are: + +* Provides visibility into service health. +* Allows you to create alerts based on a custom threshold. +* Analyzes trends and plan capacity. +* Provides detailed insight into various subsystems that make up your application or service. +* Provides Code-level metrics to understand behavior. +* Makes use of visualization and reports. + +#### Data Sources for Monitoring + +You can monitor several aspects of your environment. These include: + +* Raw logs: Generally unstructured generated from your application or a server or network devices. +* Structured event logs: Easy to consume information. For example Windows Event Viewer logs. +* Metrics: A numeric measurement of a component. +* Distributed tracing: Trace events are generally either created automatically by frameworks, such as open telemetry, or manually using your own code. +* Event introspection: Helps to examine properties at runtime at a detailed level. + +When choosing a monitoring tool for your SRE organization, you must consider what's most important. + +#### Speed + +How fast can you retrieve and send data into the monitoring system? + +* How fresh the data should be? The fresher the data, the better. You don't want to be looking at data that's 2 hours old. You want the data to be as real-time as possible. +* Ingesting data and alerting of real-time data can be expensive. You may have to invest in a platform like Splunk or InfluxDB or ElasticSearch to fully implement this. +* Consider your service level objective (SLO) – to determine how fast the monitoring system should be. For instance, if your SLO is 2 hours, you do not have to invest in systems that process machine data in real-time. +* Querying vast amounts of data can be inefficient. You may have to invest in enterprise platforms if you need very fast retrieval of data. + +#### Resolution check + +What is the granularity of the monitoring data? + +* Do you really need to record data every second? The recommended way is to use aggregation wherever possible. +* Use sampling if it makes sense for your data. +* Metrics are suited for high-resolution monitoring instead of raw log files. + +#### Alerting + +What alert capabilities can the monitoring tool provide? + +Ensure the monitoring system can be integrated with other event processing tools or third party tools. For instance, can your monitoring system page someone in case of emergency? Can your monitoring system integrate with a ticketing system? + +You should also classify the alerts with different severity levels. You may want to choose a severity level of three for a slow application versus a severity level of one for an application that is not available. Make sure the alerts can be easily suppressed to avoid alert flooding. Email or page flooding can be very distracting to the On-Call experience. There must be an efficient way to suppress the alerts. + +#### User interface check + +How versatile is it? + +* Does your monitoring tool provide feature-rich visualization tools? +* Can it show time series data as well as custom charts effectively? +* Can it be easily shared? This is important because you may want to share what you found not only with other team members but you may have to share certain information with leadership. +* Can it be managed using code? You don't want to be a full-time monitoring administrator. You need to be able to manage your monitoring system through code. + +#### Metrics + +Metrics may not be efficient in identifying the root cause of a problem. It can tell what's going on in the system, but it can't tell you why it's happening. They are suitable for low-cardinality data, when you do not have millions of unique values in your data. + +* Numerical measurement of a property. +* A counter accompanied by attributes. +* Efficient to ingest. +* Efficient to query. +* It may not be efficient in identifying the root cause. Metrics can tell what's going on in the system but it won't be able to tell you why that's happening. +* Suitable for low-cardinality data – When you do not have millions of unique values in your data. + +#### Logs + +Raw text data is usually arbitrary text filled with debug data. Parsing is generally required to get at the data. Data retrieval and recall is slower than using metrics. Raw text data is useful to determine the root causes of many problems and there are no strict requirements in terms of the cardinaltiy of data. + +* Arbitrary text, usually filled with debug data. +* Generally parsing is required. +* Generally slower than metrics, both to ingest and to retrieve. +* Most of the times you will need raw logs to determine the root cause. +* No strict requirements in-terms of cardinality of data. + +You should use metrics because they can be assimilated, indexed and retrieved at a fast pace compared to logs. Analyzing with metrics and logs are fast, so you can give an alert fast. In contrast, logs are actually required for root cause analysis (RCA). + +#### 4 signals to monitor + +There's a lot you can monitor, and at some point you have to decide what's important. + +* Latency: What are the end-users experiencing when it comes to responsiveness from your application. +* Errors: This can be both Hard errors such as an HTTP:500 internal server error or Soft errors, which could refer to a functionality error. It could also mean a slow response time of a particular component within your application. +* Traffic: Refers to the total number of requests coming in. +* Saturation: Generally occurs in a component or a resource when it cannot handle the load anymore. + +#### Monitoring resources + +Data has to be derived from somewhere. Here are common resources used in building a monitoring system: + +* CPU: In some cases CPU utilization can indicate an underlying problem. +* Memory: Application and System memory. Application memory could be the Java heap size in a Java application. +* Disk I/O: Many applications are heavy I/O dependent, so it's important to monitor disk performance. +* Disk volume: Monitors the sizes of all your file-systems. +* Network bandwidth: It's critical to monitor the network bandwidth utilized by your application. This can provide insight into eliminating performance bottlenecks. + +#### 3 best practices for monitoring for SREs + +Above all else, remember the three best practices for an effective monitoring system in your SRE organization: + +1. Configuration as code: Makes it easy to deploy monitoring to new environments. +2. Unified dashboards: Converge to a unified pattern that enables reuse of the dashboards. +3. Consistency: Whatever monitoring tool you use, the components that you create within the monitoring tool should follow a consistent naming convention. + +### Rolling back changes + +To minimize user impact when change did not go as expected, you should buy time to fix bugs. With fine-grained rollback, you are able to rollback only a portion of your change that was impacted, thus minimizing overall user impact. + +If things don't go well during your "canary" release, you may want to roll back your changes. When combined with progressive rollouts, it's possible to completely eliminate user impact when you have a solid rollback mechanism in place. + +Rollback fast and rollback often. Your rollback process will become bulletproof over time! + +#### Mechanics of rollback + +Automation is key. You need to have scripts and processes in place before you attempt a rollback. One of the ways application developers rollback a change is to simply toggle flags as part of the configuration. A new feature in your application can be turned on and off based on simply switching a flag. + +The entire rollback could be a configuration file release. In general, a rollback of the entire release is more preferred than a partial rollback. Use a package management system with version numbers and labels that are clearly documented. + +A rollback is still a change, technically speaking. You have already made a change and you are reverting it back. Most cases entail a scenario that was not tested before so you have to be cautious when it comes to rollbacks. + +#### Roll forward + +With roll forward, instead of rolling back your changes, you release a quick fix "Hot Fix," an upgraded software that includes the fixes. Rolling forward may not always be possible. You might have to run the system in degraded status until an upgrade is available so the "roll forward is fully complete." In some cases, rolling forward may be safer than a rollback, especially when the change involves multiple sub-systems. + +### Change is good + +Automation is key. Your builds, tests, and releases should all be automated. + +Use "canaries" for catching issues early, but remember that "canaries" are not a replacement for automated testing. + +Monitoring should be designed to meet your service level objectives. Choose your monitoring tools carefully. You may have to deploy more than one monitoring system. + +Finally, there are three tenets of an effective CM system: + +1. Progressive rollout: Strive to do your changes in a progressive manner. +2. Monitoring: A foundational capability for your SRE teams. +3. Safe and fast rollbacks: Do this with processes and automation in place which increase confidence in your SRE organization functionality. + +In the next article, the third part of this series, I will cover some important technical topics when it comes to SRE best practices. These topics will include the Circuit Breaker Pattern, self healing systems, distributed consensus, effective load balancing, autoscaling, and effective health check. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/change-management-site-reliability-engineers + +作者:[Robert Kimani][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/robert-charles +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/Open%20Health.jpg +[2]: https://opensource.com/article/22/6/introduction-site-reliability-engineering +[3]: https://opensource.com/sites/default/files/2022-05/effetiverollout1.png +[4]: https://enterprisersproject.com/article/2021/3/7-top-site-reliability-engineer-sre-job-interview-questions From fadb770f77ec223899c6a11765688b0c3ab5fbb4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 16:40:11 +0800 Subject: [PATCH 0070/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220622=20Manage=20your=20Rust=20toolchain=20using?= =?UTF-8?q?=20rustup.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Manage your Rust toolchain using rustup.md | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sources/tech/20220622 Manage your Rust toolchain using rustup.md diff --git a/sources/tech/20220622 Manage your Rust toolchain using rustup.md b/sources/tech/20220622 Manage your Rust toolchain using rustup.md new file mode 100644 index 0000000000..bfcd21ea18 --- /dev/null +++ b/sources/tech/20220622 Manage your Rust toolchain using rustup.md @@ -0,0 +1,143 @@ +[#]: subject: "Manage your Rust toolchain using rustup" +[#]: via: "https://opensource.com/article/22/6/rust-toolchain-rustup" +[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manage your Rust toolchain using rustup +====== +Rustup can be used to install Rust and keep it updated. It also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling. + +![Tools illustration][1] + +Image by: Opensource.com + +The [Rust programming language][2] is becoming increasingly popular these days, used and loved by hobbyists and corporations alike. One of the reasons for its popularity is the amazing tooling that Rust provides making it a joy to use for developers. [Rustup][3] is the official tool used to manage Rust tooling. Not only can it be used to install Rust and keep it updated, it also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling. This article will introduce you to rustup and some common commands to use. + +### Default Rust installation method + +If you want to install Rust on Linux, you can use your package manager. On Fedora or CentOS Stream you can use this, for example: + +``` +$ sudo dnf install rust cargo +``` + +This provides a stable version of the Rust toolchain, and works great if you are a beginner to Rust and want to try compiling and running simple programs. However, because Rust is a new programming language it changes fast and a lot of new features are frequently added. These features are part of the nightly and later beta version of the Rust toolchain. To try out these features you need to install these newer versions of the toolchain, without affecting the stable version on the system. Unfortunately, your distro’s package manager can’t help you here. + +### Installing Rust toolchain using rustup + +To get around the above issues, you can download an install script: + +``` +$ curl --proto '=https' --tlsv1.2 \ +-sSf https://sh.rustup.rs > sh.rustup.rs +``` + +Inspect it, and then run it. It doesn’t require root privileges and installs Rust accordingly to your local user privileges: + +``` +$ file sh.rustup.rs +sh.rustup.rs: POSIX shell script, ASCII text executable +$ less sh.rustup.rs +$ bash sh.rustup.rs +``` + +Select option 1 when prompted: + +``` +1) Proceed with installation (default) +2) Customize installation +3) Cancel installation +> 1 +``` + +After installation, you must source the environment variables to ensure that the `rustup` command is immediately available for you to use: + +``` +$ source $HOME/.cargo/env +``` + +Verify that the Rust compiler (rustc) and Rust package manager (cargo) are installed: + +``` +$ rustc --version +$ cargo --version +``` + +### See installed and active toolchains + +You can view the different toolchains that were installed and which one is the active one using the following command: + +``` +$ rustup show +``` + +### Switch between toolchains + +You can view the default toolchain and change it as required. If you’re currently on a stable toolchain and wish to try out a newly introduced feature that is available in the nightly version you can easily switch to the nightly toolchain: + +``` +$ rustup default +$ rustup default nightly +``` + +To see the exact path of the compiler and package manager of Rust: + +``` +$ rustup which rustc +$ rustup which cargo +``` + +### Checking and Updating the toolchain + +To check whether a new Rust toolchain is available: + +``` +$ rustup check +``` + +Suppose a new version of Rust is released with some interesting features, and you want to get the latest version of Rust. You can do that with the `update` subcommand: + +``` +$ rustup update +``` + +### Help and documentation + +The above commands are more than sufficient for day-to-day use. Nonetheless, rustup has a variety of commands and you can refer to the help section for additional details: + +``` +$ rustup --help +``` + +Rustup has an entire [book][4] on GitHub that you can use as a reference. All the Rust documentation is installed on your local system, which does not require you to be connected to the Internet. You can access the local documentation which includes the book, standard library, and so on: + +``` +$ rustup doc +$ rustup doc --book +$ rustup doc --std +$ rustup doc --cargo +``` + +Rust is an exciting language under active development. If you’re interested in where programming is headed, keep up with Rust! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/rust-toolchain-rustup + +作者:[Gaurav Kamathe][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/gkamathe +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/tools_hardware_purple.png +[2]: https://www.rust-lang.org/ +[3]: https://github.com/rust-lang/rustup +[4]: https://rust-lang.github.io/rustup/ From 489074e9134babb9343aafac00323f760d775cc8 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 17:48:13 +0800 Subject: [PATCH 0071/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][talk]:=2020211203=20Should=20Businesses=20Opt=20for=20Serverl?= =?UTF-8?q?ess=20Computing-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...usinesses Opt for Serverless Computing-.md | 90 ------------------ ...usinesses Opt for Serverless Computing-.md | 92 +++++++++++++++++++ 2 files changed, 92 insertions(+), 90 deletions(-) delete mode 100644 sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md create mode 100644 translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md diff --git a/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md b/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md deleted file mode 100644 index 9f0208dadb..0000000000 --- a/sources/talk/20211203 Should Businesses Opt for Serverless Computing-.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "Should Businesses Opt for Serverless Computing?" -[#]: via: "https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/" -[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Should Businesses Opt for Serverless Computing? -====== -Serverless computing removes the server from the equation and enables businesses to give undivided attention to the application functionality. Does that make serverless computing the automatic choice? Let’s find out. - -![Severless-Cloud-Computing-Featured-image-OSFY-Oct-2021][1] - -Until recently, almost every product manager organised his or her engineering resources into two separate teams — the development team and the operations team. The development team is usually involved in coding, testing and building the application functionality, whereas the operations team takes the responsibility of delivery, deployment, and operational maintenance of the application. - -When a development team builds an e-commerce application, the operations team sets up the server to host that application. Setting up a server involves several aspects, which include: - -* Choosing the appropriate hardware and operating system -* Applying the required set of patches -* Installing applicable server environments like JDK, Python, Tomcat, NodeJS, etc -* Deploying, configuring, and provisioning the actual application -* Opening and securing appropriate ports -* Setting up required database engines - -… and the list just goes on. - -Besides this, managers also break their heads on capacity planning. After all, any non-trivial application is expected to be 100 per cent available, reliable and scalable all the time. This requires optimal investment in the hardware. As we all know, shortage of hardware at crucial periods results in business loss, and on the other hand, redundant hardware hurts the bottomline. Capacity planning is crucial, irrespective of whether the application is targeted for the on-premises data centre or for cloud infrastructure. -By now, it is clear that businesses spend a lot of time not only in building the functionality but also in delivering it. - -Serverless computing aims at offering a seamless way to deliver the functionality without worrying about the server setup and maintenance. In other words, a serverless computing platform offers a ready-to-use environment in such a way that the businesses build and deploy the applications as a set of smaller functions as quickly as possible. That is why this approach is referred to as Function as a Service (FaaS). - -Remember that there is still a server in serverless computing, but it is taken care of by the FaaS vendors like AWS, Microsoft, and Google. - -For example, AWS offers a serverless computing environment in the name of Lambda functions. Developers can choose to build the applications as a set of Lambda functions that can be written in NodeJS, Java, Python, and a few other languages. AWS offers a ready-to-use environment to deploy these functions. It also offers ready-to-use database servers, file servers, application gateways, authentication servers, etc. - -Similarly, Microsoft Azure offers an environment to build and deploy Azure functions in languages like C#. - -### Why serverless? - -There are two main factors driving the popularity of serverless computing. - -#### Ready-to-use environment - -Obviously, this is the topmost selling point in favour of serverless computing. Businesses need not procure/book hardware or instances in advance, or worry about licences and setting up and provisioning the server. And they need not bother about scaling up and down. All of this is taken care of by the FaaS vendor. -Optimal cost: Since FaaS vendors always charge the clients based on the utilisation of the environment (pay as you use model), businesses need not worry about upfront costs and wastage of resources. For example, AWS charges the clients based on the number of requests a Lambda function receives, number of queries run on a table, etc. - -### Challenges with serverless computing - -Like with any other approach, serverless computing is also not the perfect approach that everyone can blindly follow. It has its own set of limitations. Here are a few of them. - -#### Vendor locking - -The first and most important problem associated with serverless computing is that functions like Lambda or Azure are to be written using vendor-supplied APIs. For example, the functions that are written using an AWS Lambda API cannot be deployed into Google Cloud and vice versa. Hence, serverless computing forces businesses to commit to a vendor, for years. The success or failure of the application depends not only on the functionality but also on the ability of the vendor with respect to performance, etc. - -#### Programming language - -No serverless computing platform supports all the possible programming languages. Moreover, it may not support all the versions of a given programming language. The application development teams are constrained to choose only the languages that are offered. This may turn out to be very crucial in terms of the capabilities of the team. - -#### Optimal cost, really? - -It all depends on the usage of the resources. If your application is attracting a huge load, like millions of requests per second, the bill that you foot might be exorbitant. At such a scale, having your own server on-premises or on the cloud might work cheaper. It doesn’t mean that applications with Web-scale are not suitable for serverless computing. It all boils down to the way you architect around the platform and the deal you sign with the vendor. - -#### Ecosystem - -No application is written for an isolated environment. It requires other components like data stores, databases, security engines, gateways, messaging servers, queues, cache, etc. Every platform offers its own set of such tools. For instance, AWS offers Dynamo DB as one of the NoSQL solutions. Obviously, other vendors offer their own NoSQL solutions. The teams are thus forced to architect the applications based on the chosen platform. Though most of the commercial FaaS vendors offer one or another component for a particular requirement, not every component may be best-in-class. - -### What about containers? - -Many of us migrated to containerised deployment models in the last decade, since they offer a lightweight alternative to the costly machines, physical or virtual. With orchestration tools like Kubernetes, we love to deploy containerised applications and meet Web-scale requirements. Containers offer a certain degree of isolation from the underlying environment, which makes deployment relatively easy. However, we still need investments in hardware (on-premises or cloud), licences, networking, provisioning, etc, which demands forward planning, applicable technical skills, and careful monitoring. Serverless computing frees us even from these responsibilities, albeit with its own set of pros and cons. - -### Road ahead - -We are in the days of continuous development, continuous integration, and continuous deployment. Every business is facing competition. Time to market (TTM) plays a significant role in gaining and retaining customers. In this backdrop, businesses love to spend more time churning out the functionality as quickly as possible rather than struggling with the nitty-gritty of deployment and maintenance. Serverless computing has the potential to meet these demands. Big players are committing huge investments to make FaaS as seamless and as affordable as possible. The future looks bright for serverless computing. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/ - -作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2021/10/Severless-Cloud-Computing-Featured-image-OSFY-Oct-2021.jpg diff --git a/translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md b/translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md new file mode 100644 index 0000000000..4ecd398d90 --- /dev/null +++ b/translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md @@ -0,0 +1,92 @@ +[#]: subject: "Should Businesses Opt for Serverless Computing?" +[#]: via: "https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +企业应该选择无服务器计算吗? +====== +无服务器计算将服务器从等式中移除,使企业能够专注于应用功能。那么,企业是不是都应该选择无服务器计算呢?让我们来探究一下吧! + +![2021 年 10月 OSFY 无服务器云计算][1] + +直至不久之前,几乎每个产品经理都会将他/她的工程资源,分成两个独立的团队 —— 开发团队和运维团队。开发团队通常参与编码、测试和构建应用功能,而运维团队负责应用程序的交付、部署和运行维护。 + +当开发团队构建电商应用时,运维团队会搭建好服务器来托管该应用。搭建服务器涉及到许多方面,其中包括: + +* 选择合适的硬件和操作系统 +* 应用所需的补丁集 +* 搭建所需服务器环境,如 JDK、Python、Tomcat、NodeJS 等 +* 部署、配置和提供实际的应用 +* 打开并固定合适的端口 +* 搭建所需的数据库引擎 + +……这个名单还在继续。 + +除此之外,管理人员还对容量规划感到头疼。毕竟,任何重要应用都应始终保持 100% 可用、可靠且可扩展。这需要对硬件进行最佳投资。众所周知,在一些关键时期,硬件短缺会导致业务损失,而硬件冗余又会损害利润。因此,无论应用是针对本地数据中心,还是针对云基础架构,容量规划都是至关重要的。到目前为止,很明显,企业不仅在功能构建上投入了大量的精力,还在功能交付上也花费了大量的时间。 + +无服务器计算Serverless computing旨在提供一种无缝的方式来交付功能,而无需担心服务器的设置和维护。换句话说,无服务器计算平台提供了一个“即用型”ready-to-use环境,企业可以尽快将应用程序构建和部署为一些较小的功能。这就是为什么这种方法被称为“功能即服务”Function as a Service(FaaS)。 + +请记住,无服务器计算中仍然存在服务器,但它由 AWS、微软和谷歌等 FaaS 供应商负责。 + +例如,AWS 以 “Lambda 函数”的形式提供了一个无服务器计算环境。开发人员可以选择将应用程序构建为一组 Lambda 函数,这些函数可以用 NodeJS、Java、Python 和其他一些语言编写。AWS 提供了一个现成的环境来部署这些函数。它还提供了即用​​型数据库服务器、文件服务器、应用程序网关和身份验证服务器等。 + +同样,Microsoft Azure 也提供了一个环境,它可以用 C# 等语言构建和部署 Azure 函数。 + +### 为什么选择无服务器? + +有两个主要因素推动了无服务器计算的普及。 + +#### 1、即用型环境 + +显然,这是无服务器计算的最大卖点。企业无需提前采购/预订硬件或实例,也无需操心许可证,以及设置和配置服务器。他们不需要为扩大和缩小规模而烦恼。所有这些都由 FaaS 供应商负责。 + +#### 2、最优成本 + +由于 FaaS 供应商总是根据环境的利用率向客户收费(按使用付费模式),因此企业无需担心前期成本和资源浪费。例如,AWS 根据 Lambda 函数接收的请求数量、在数据表上运行的查询数量等指标来向客户端收费。 + +### 无服务器计算的挑战 + +与任何其他方法一样,无服务器计算也不是每个人都可以盲目遵循的完美方法。它本身也有一系列限制。以下是其中的几个。 + +#### 1、供应商锁定 + +当使用无服务器计算时,第一个也是最重要的问题就是,Lambda 或 Azure 等函数将使用供应商提供的 API 来编写。例如,使用 AWS Lambda API 编写的函数无法部署到 Google Cloud 中,反之亦然。因此,无服务器计算迫使企业在许多年内,只能使用同一家供应商。并且,应用的成功或失败不仅取决于它的功能,还取决于供应商在性能等方面的能力。 + +#### 2、编程语言 + +没有无服务器计算平台支持所有的编程语言。此外,对于它支持的编程语言,它也可能不支持其所有版本。这样一来,应用开发团队只能选择供应商提供的语言。就团队的能力而言,这可能是非常关键的。 + +#### 3、最优成本,真的吗? + +其实也不一定,这一切都取决于资源的使用情况。如果你的应用正在承受巨大的负载,例如每秒数百万个请求,那么你所支付的费用可能会过高。在这样的规模下,在本地或云端拥有自己的服务器可能会更便宜。这并不意味着具有 Web 规模的应用不适合用无服务器计算。归根结底,它还是取决于你的平台的构建方式,以及你与供应商签署的协议。 + +#### 4、生态系统 + +没有应用是为了一个孤立的环境而编写的。它总是需要其他组件,如数据存储、数据库、安全引擎、网关、消息服务器、队列、缓存等。每个平台都提供自己的一组此类工具。例如,AWS 提供了 Dynamo DB 作为其 NoSQL 解决方案之一。显然,其他供应商也提供了自己的 NoSQL 解决方案。因此,团队又会被迫地基于所选平台来构建应用程序。尽管大多数商业 FaaS 供应商都为特定需求提供了多个组件,但并非每个组件都可能是同类型中最佳的。 + +### 为什么不考虑容器呢? + +在过去十年中,我们中的许多人都迁移到了容器化部署模型,因为它们为昂贵的物理机或虚拟机提供了一种轻量级的替代方案。有了 Kubernetes 等编排工具后,我们乐于部署容器化应用,同时也满足了 Web 规模的要求。容器提供了与底层环境一定程度的隔离,这使得部署相对容易。但是,我们仍然需要在硬件(本地或云)、许可证、网络、配置等方面进行投资,这需要具有前瞻性的规划、合适的技术能力和仔细的监控。无服务器计算,尽管它也有自己的优点和缺点,但它让我们把这些责任也摆脱了。 + +### 展望未来 + +我们正处于持续开发、持续集成和持续部署的时代。每个企业都面临着竞争。上市时间Time to market(TTM)在吸引客户、留住客户这两个方面,发挥着重要作用。在这种背景下,企业喜欢花更多时间来尽可能快地推出功能,而不是在部署和维护的细节上苦苦挣扎。无服务器计算有可能满足这些需求。大玩家们正在投入巨额资金,以使 FaaS 尽可能地无缝且经济。无服务器计算的未来看起来是一片光明。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/ + +作者:[Krishna Mohan Koyya][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2021/10/Severless-Cloud-Computing-Featured-image-OSFY-Oct-2021.jpg From bd97e4db58816c307029ddcd8f24a6ef23abbd68 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 19:20:57 +0800 Subject: [PATCH 0072/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220622=20Rocket.Chat=C2=A0Aims=20to=20Replace=20Sk?= =?UTF-8?q?ype=20for=20Business=20by=20Collaborating=20with=20Pexip.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...for Business by Collaborating with Pexip.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md diff --git a/sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md b/sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md new file mode 100644 index 0000000000..8835dde698 --- /dev/null +++ b/sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md @@ -0,0 +1,84 @@ +[#]: subject: "Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip" +[#]: via: "https://news.itsfoss.com/rocket-chat-pexip/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip +====== +Rocket.Chat is collaborating with a video communication platform, Pexip to offer an alternative to Skype for Business and Microsoft Teams. + +![rocket chat pixep][1] + +Rocket.Chat is making headlines this year, and for all the good reasons. + +To start with, they collaborated with [Nextcloud to offer an open-source Microsoft 365 alternative][2], then [joined forces with Matrix][3], and now they have announced another partnership to tackle the likes of “Skype for Business” and Microsoft Teams. + +So, what is it about? Let us get to know more here. + +### Rocket.Chat + Pexip to Integrate Chat and Video Conferencing Platforms + +Rocket.Chat is one of the [best open-source Slack alternatives][4] out there. It is probably going to be one of the [best Matrix clients][5] as well. It most likely does not need an introduction for users who prefer using open-source solutions. + +[Pexip][6], on the other hand, is not an open-source platform that provides a video communication solution. You can self-host the service along with enterprise and cloud services. + +Pexip is a good contender when it comes to video communication solutions for healthcare, government, or any security-conscious organizations. Companies like Accenture, and Intel, rely on some of their services. + +Hence, Rocket.Chat and Pexip decided to integrate their strengths to offer a solid offering for organizations that require high-level security. + +**Gabriel Engel**, CEO, and co-founder of Rocket.Chat, mentioned the following: + +> “There’s an immediate need in the market for an on-premise digital collaboration solution thatenables fully compliant and secure chat and video communications. Rocket.Chat and Pexip havecome together with a complete solution and a strong commitment for the long-term success ofour customers,” + +While they target every type of organizations with the partnership, but the public sector and government organizations are one of the top priorities. + +**John Thorneycroft**, Senior VicePresident, Business Management at Pexip said: + +> Our public sector and government customers are especially mindful of data privacy andsecurity when selecting a communications solution. The combination of Pexip’s on-premisevideo communication platform and Rocket.Chat’s secure chat functionality provides thesecustomers with the control and compliance they require. + +### Replacing Skype for Business and Teams + +Microsoft retired Skype for Business on July 31, 2021. And, its online infrastructure will be decommissioned after June 30, 2022. + +And, Rocket.Chat’s partnership with Pexip focuses on being a replacement for those organizations that are looking to switch to a better solution considering privacy and security. + +Not just Skype for Business, but it can also be a potential substitute for organizations using Microsoft Teams. Mostly because of the security features of Rocket.Chat and Pexip including: + +* End-to-End encryption chat. +* Secure file sharing. +* Transcoding, secure/flexible access on any device. +* Role-based permissions. +* Data loss prevention. +* Audit trails. +* Active Directory/single sing-on. +* On-premise deployment. +* Compliance with privacy regulations. + +Not to forget, Rocket.Chat also enables cross-platform communication using its bridges and helps you interact with users from Microsoft Teams, Slack, and Matrix clients. + +Are you an organization that is looking to use a secure collaboration platform? I think Rocket.Chat and Pexip’s integration solution should be a great alternative, considering the competition does not offer the same features. + +Share your thoughts in the comments down below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/rocket-chat-pexip/ + +作者:[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/06/rocketchat-pixep-collabortation.jpg +[2]: https://news.itsfoss.com/rocket-chat-nextcloud-collaboration/ +[3]: https://news.itsfoss.com/rocket-chat-matrix/ +[4]: https://itsfoss.com/open-source-slack-alternative/ +[5]: https://itsfoss.com/best-matrix-clients/ +[6]: https://www.pexip.com/ From 119cb5cfeb29a0d585742768964ebc0b19f32ac0 Mon Sep 17 00:00:00 2001 From: SamMa Date: Wed, 22 Jun 2022 19:38:04 +0800 Subject: [PATCH 0073/3123] Update 20210104 Docker Compose- a nice way to set up a dev environment.md --- ...ocker Compose- a nice way to set up a dev environment.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md index 3c5f451269..cfa8921aaf 100644 --- a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md +++ b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md @@ -7,14 +7,14 @@ [#]: via: (https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/) [#]: author: (Julia Evans https://jvns.ca/) -Docker Compose:搭建开发环境的好办法 +Docker Compose:搭建开发环境的好方式 ====== 大家好!我又写了一篇关于 [我最喜欢的电脑工具][1] 的文章。这一篇讲的是 Docker Compose! -这篇文章主要就是讲一讲我对 Docker Compose 有多么满意啦(不讨论它的缺点)!咳咳,因为它总能够完成它该做的,并且似乎总能奏效,更棒的是,它使用起来还非常简单。另外,在本文中,我只讨论我是怎么用 Docker Compose 来搭建开发环境的,而不涉及它在生产中的使用。 +本文主要就是讲一讲我对 Docker Compose 有多么满意啦(不讨论它的缺点)!咳咳,因为它总能够完成它该做的,并且似乎总能有效,更棒的是,它的使用还非常简单。另外,在本文中,我只讨论我是如何用 Docker Compose 来搭建开发环境的,而不涉及它在生产中的使用。 -最近,我考虑了很多关于这种搭建个人开发环境的方式,原因是,我现在把所有的计算工作都搬到了一个私有云上,大概 20 美元/月的样子。这样一来,我就不用在工作的时候花时间去思考应该如何管理几千台 AWS 服务器了。 +最近,我考虑了很多关于这种个人开发环境的搭建方式,原因是,我现在把所有的计算工作都搬到了一个私有云上,大概 20 美元/月的样子。这样一来,我就不用在工作的时候花时间去思考应该如何管理几千台 AWS 服务器了。 在此之前,我曾花了两天的时间,尝试使用其他的工具来尝试搭建一个开发环境,搭到后面,我实在是心累了。相比起来,Docker Compose 就简单易用多了,我非常满意。于是,我和妹妹分享了我的 `docker-compose` 使用经历,她略显惊讶:“是吧!你也觉得 Docker Compose 真棒对吧!” 嗯,我觉得我应该写一篇博文把过程记录下来,于是就有了你们看到的这篇文章。 From 44983de290d2a352cfca2ef459f0bfb21a500a57 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 22 Jun 2022 23:25:33 +0800 Subject: [PATCH 0074/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220617=20Ubuntu=20Runs=20on=20a=20Google=20Nest=20?= =?UTF-8?q?Hub,=20Wait,=20What-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md index 04cbc94117..29f2854b63 100644 --- a/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md +++ b/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/ubuntu-google-nest/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ee5e23052855c29e9d389425ca71ddc78f9273dc Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 23 Jun 2022 00:21:07 +0800 Subject: [PATCH 0075/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220617=20Ubuntu=20Runs=20on=20a=20Google=20Nest=20?= =?UTF-8?q?Hub,=20Wait,=20What-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Runs on a Google Nest Hub, Wait, What-.md | 87 ------------------- ... Runs on a Google Nest Hub, Wait, What-.md | 86 ++++++++++++++++++ 2 files changed, 86 insertions(+), 87 deletions(-) delete mode 100644 sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md create mode 100644 translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md diff --git a/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md deleted file mode 100644 index 29f2854b63..0000000000 --- a/sources/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md +++ /dev/null @@ -1,87 +0,0 @@ -[#]: subject: "Ubuntu Runs on a Google Nest Hub, Wait, What?" -[#]: via: "https://news.itsfoss.com/ubuntu-google-nest/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu Runs on a Google Nest Hub, Wait, What? -====== -A hacker successfully managed to run Ubuntu on a Google Nest Hub (2nd Gen), say, what now? - -![ubuntu google][1] - -I just spotted a story about Ubuntu running on a Google Nest Hub (2nd Gen). - -Well, that is certainly exciting! - -So, let me share more about it here. - -### Hacking Google Nest Hub to Install Ubuntu - -Yes, a hacking attempt made this possible. - -A cybersecurity professional, **Frédéric Basse**, broke the secure boot on Google Nest Hub (2nd gen) and managed to run Ubuntu. - -Of course, Google Nest Hub does not officially support booting a custom OS. But, a security vulnerability allowed Fred to use an exploit and run Ubuntu. - -While this is fun, it is also a severe problem for an always-connected smart home display by Google. - -As explained in his [blog post][2], the hacker utilized a Raspberry Pi Pico microcontroller to exploit a USB bug in the bootloader to break the secure boot chain. - -The security expert concluded: - -> As a result, an attacker can execute arbitrary code at early boot stage (before kernel execution) by plugging a malicious USB device and pressing two buttons - -He has also made the bootloader exploit available on [GitHub][3], if you want to experiment (suited for security researchers). - -### Making Ubuntu Work on Google Nest - -![][4] - -The exploit allowed the attacker to boot an unsigned OS. However, he had to make some modifications with the preinstalled Ubuntu image tailored for Raspberry Pi (64-bit ARM). - -Here’s what he mentions about it: - -> We build a custom U-Boot bootloader with secure boot disabled and boot flow altered to load environment from USB flash drive. We also build a custom Linux kernel for elaine with [additionnal d][5]r[ivers like USB mouse][6]. The initial ramdisk (initrd) from Ubuntu is repacked to integrate firmware binaries required for the touchscreen. The boot image is created based on the custom Linux kernel and modified initrd. - -So, it is evident that you will not get a full-fledged Ubuntu experience, but thanks to the exploit, we now know that Ubuntu can run on a Google Nest as an experiment if you’re willing to break your Google Nest for the test (don’t do that, really!). - -### Smart Home Security Concern + Linux - -The cybersecurity expert mentions that the vulnerability has been fixed upstream (twice). - -But, the lack of CVE may have influenced the fix not propagating downstream, as the researcher suggests. - -Undoubtedly, seeing Linux running on an unsupported device is awesome. Makes me wonder if we should have someone make **commercial smart home devices powered by Linux?** - -*Is there something like that already available?* - -Nevertheless, it is equally concerning for smart home devices to be vulnerable to easy attacks. - -What do you think? Share your thoughts in the comments down below. - -**Via**: [Liliputing][7] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-google-nest/ - -作者:[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/06/hacker-installs-ubuntu-on-google-nest-hub.jpg -[2]: https://fredericb.info/2022/06/breaking-secure-boot-on-google-nest-hub-2nd-gen-to-run-ubuntu.html -[3]: https://github.com/frederic/chipicopwn -[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/ubuntu-google-nest.jpg -[5]: https://github.com/frederic/elaine-linux/commit/11068237d9178e77d79e3a5d27fc4f8f9b923c51 -[6]: https://github.com/frederic/elaine-linux/commit/11068237d9178e77d79e3a5d27fc4f8f9b923c51 -[7]: https://liliputing.com/2022/06/hacker-installs-ubuntu-on-a-google-nest-hub-2nd-gen-smart-display.html diff --git a/translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md new file mode 100644 index 0000000000..760f73b485 --- /dev/null +++ b/translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md @@ -0,0 +1,86 @@ +[#]: subject: "Ubuntu Runs on a Google Nest Hub, Wait, What?" +[#]: via: "https://news.itsfoss.com/ubuntu-google-nest/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu 在 Google Nest Hub 上运行,等等,什么? +====== +一名黑客成功地在 Google Nest Hub(第二代)上运行了 Ubuntu,嗯,然后呢? + +![Ubuntu Google][1] + +我刚刚看到了一个关于在 Google Nest Hub(第二代)上运行的 Ubuntu 的故事。 + +嗯,这实在是让人兴奋! + +所以,让我在这里分享更多关于它的信息吧。 + +### 破解 Google Nest Hub 以安装 Ubuntu + +是的,一次黑客攻击使这成为可能。 + +网络安全专家 **Frédéric Basse** 破解了 Google Nest Hub(第 2 代)的安全启动,并成功运行 Ubuntu。 + +当然,Google Nest Hub 并没有正式支持启动一个自定义操作系统。但是,Fred 使用了一个安全漏洞,从而成功运行了 Ubuntu。 + +虽然这很有趣,但对于始终连接的谷歌智能家居显示器来说,这也是一个严重的问题。 + +正如他在 [博客文章][2] 中所解释的,黑客使用了 Raspberry Pi Pico 微控制器,利用引导加载程序中的 USB 漏洞,从而破坏了安全启动链。 + +安全专家得出结论: + +> 因此,攻击者可以通过插入恶意 USB 设备并按下两个按钮,从而在早期启动阶段(内核执行之前)执行任意代码。 + +如果你想进行实验(适合安全研究人员),他还在 [GitHub][3] 上提供了相关代码(关于如何利用这个引导加载程序漏洞)。 + +### 让 Ubuntu 在 Google Nest 上运行 + +![][4] + +该漏洞允许攻击者启动未签名的操作系统。但是,在那之前,攻击者必须对为 Raspberry Pi(64 位 ARM)量身定制的预装 Ubuntu 镜像进行一些修改。 + +攻击者还提到了以下内容: + +> 我们构建了一个自定义 U-Boot 引导加载程序,禁用了安全引导,并更改了引导流程以从 USB 闪存驱动器加载环境。我们还为 elaine 构建了一个自定义 Linux 内核,其中包括包括了一些 [额外驱动,例如 USB 鼠标][5] 。来自 Ubuntu 的初始 ramdisk(initrd)被重新打包,以集成触摸屏所需的固件二进制文件。引导镜像是基于自定义 Linux 内核和修改的 initrd 创建的。 + +因此,很明显,你不会获得完整的 Ubuntu 体验,但由于该漏洞,我们现在知道,如果你愿意破解 Google Nest 进行测试的话,Ubuntu 是可以在 Google Nest 上作运行的,作为一个实验(不要那样做,真的!)。 + +### 智能家居安全担忧 + Linux + +网络安全专家指出,该漏洞已在上游修复(两次)。 + +但是,研究人员也指出,缺乏 CVE 可能会导致修复程序无法向下游传播。 + +毫无疑问,看到有人在不受支持的设备上运行 Linux 真是太棒了。这让我思考,我们是否应该也制造一些**由 Linux 驱动的商业智能家居设备?** + +*或者说,已经有类似的东西了吗?* + +然而,智能家居设备容易受到简单攻击,也同样令人担忧。 + +你怎么看?在下面的评论中分享你的想法吧。 + +**本文最初发布于** [Liliputing][6] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-google-nest/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/hacker-installs-ubuntu-on-google-nest-hub.jpg +[2]: https://fredericb.info/2022/06/breaking-secure-boot-on-google-nest-hub-2nd-gen-to-run-ubuntu.html +[3]: https://github.com/frederic/chipicopwn +[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/ubuntu-google-nest.jpg +[5]: https://github.com/frederic/elaine-linux/commit/11068237d9178e77d79e3a5d27fc4f8f9b923c51 +[6]: https://liliputing.com/2022/06/hacker-installs-ubuntu-on-a-google-nest-hub-2nd-gen-smart-display.html From 351843db39277aed8f1b266ab9ed43d154480c11 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 23 Jun 2022 08:33:25 +0800 Subject: [PATCH 0076/3123] translated --- ...es in Linux Easily With Curtail GUI App.md | 106 ------------------ ...es in Linux Easily With Curtail GUI App.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md create mode 100644 translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md diff --git a/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md b/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md deleted file mode 100644 index 2c4d128682..0000000000 --- a/sources/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Compress Images in Linux Easily With Curtail GUI App" -[#]: via: "https://itsfoss.com/curtail-image-compress/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Compress Images in Linux Easily With Curtail GUI App -====== - -Got a bunch of images with huge file sizes taking too much disk space? Or perhaps you have to upload an image to a web portal that has file size restrictions? - -There could be a number of reasons why you would want to compress images. There are tons of tools to help you with it and I am not talking about the command line ones here. - -You can use a full-fledged image editor like GIMP. You may also use web tools like [Squoosh][1], an open source project from Google. It even lets you compare the files for each compression level. - -However, all these tools work on individual images. What if you want to bulk compress photos? Curtail is an app that saves your day. - -### Curtail: Nifty tool for image compression in Linux - -Built with Python and GTK3, Curtail is a simple GUI app that uses open source libraries like OptiPNG, [jpegoptim][2], etc to provide the image compression feature. - -It is available as a [Flatpak application][3]. Please make sure that you have [Flatpak support enabled on your system][4]. - -Add the Flathub repo first: - -``` -flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -``` - -And then use the command below to install Curtail: - -``` -flatpak install flathub com.github.huluti.Curtail -``` - -Once installed, look for it in your Linux system’s menu and start it from there. - -![curtail app][5] - -The interface is plain and simple. You can choose whether you want a lossless or lossy compression. - -The lossy compression will have poor-quality images but with a smaller size. The lossless compression will have better quality but the size may not be much smaller than the original. - -![curtail app interface][6] - -You can either browse for images or drag and drop them into the application. - -Yes. You can compress multiple images in one click with Curtail. - -In fact, you don’t even need a click. As soon as you select the images or drop them, they are compressed and you see a summary of the compression process. - -![curtail image compression summary][7] - -As you can see in the image above, I got a 35% size reduction for one image and 3 and 8 percent for the other two. This was with lossless compression. - -The images are saved with a -min suffix (by default), in the same directory as the original image. - -Though it looks minimalist, there are a few options to configure Curtail. Click on the hamburger menu and you are presented with a few settings options. - -![curtail configuration options][8] - -You can select whether you want to save the compressed file as new or replace the existing one. If you go for a new file (default behavior), you can also provide a different suffix for the compressed images. The option to keep the file attributes is also there. - -In the next tab, you can configure the settings for lossy compression. By default, the compression level is at 90%. - -![curtail compression options][9] - -The Advanced tab gives you the option to configure the lossless compression level for PNG and WebP files. - -![curtain advanced options][10] - -### Conclusion - -As I stated earlier, it’s not a groundbreaking tool. You can do the same with other tools like GIMP. It just makes the task of image compression simpler, especially for bulk image compression. - -I would love to see the option to [convert the image file formats][11] with the compression like what we have in tools like Converseen. - -Overall, a good little utility for the specific purpose of image compression. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/curtail-image-compress/ - -作者:[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://squoosh.app/ -[2]: https://github.com/tjko/jpegoptim -[3]: https://itsfoss.com/what-is-flatpak/ -[4]: https://itsfoss.com/flatpak-guide/ -[5]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-app.png -[6]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-app-interface.png -[7]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-image-compression-summary.png -[8]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-configuration-options.png -[9]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-compression-options.png -[10]: https://itsfoss.com/wp-content/uploads/2022/06/curtain-advanced-options.png -[11]: https://itsfoss.com/converseen/ diff --git a/translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md b/translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md new file mode 100644 index 0000000000..ce294131c2 --- /dev/null +++ b/translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md @@ -0,0 +1,106 @@ +[#]: subject: "Compress Images in Linux Easily With Curtail GUI App" +[#]: via: "https://itsfoss.com/curtail-image-compress/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 Curtail GUI 应用轻松压缩 Linux 中的图像 +====== + +有一大堆文件大小的图片占用了太多的磁盘空间?或者你必须将图片上传到有文件大小限制的门户网站? + +你可能有很多原因想要压缩图片。有大量的工具可以帮助你,我在这里说的不是命令行的工具。 + +你可以使用一个成熟的图像编辑器,如 GIMP。你也可以使用像 [Squoosh][1] 这样的网络工具,这是谷歌的一个开源项目。它甚至可以让你比较每个压缩级别的文件。 + +然而,所有这些工具都是针对单个图像工作的。如果你想批量压缩照片怎么办?Curtail 是一个能帮助你的应用。 + +### Curtail: Linux 中用于图像压缩的灵巧工具 + +使用 Python 和 GTK3 构建的 Curtail 是一个简单的 GUI 应用,使用 OptiPNG、[jpegoptim][2] 等开源库来提供图像压缩功能。 + +它有一个 [Flatpak 应用][3]。请确保你的系统已启用 [Flatpak 支持][4]。 + +首先添加 Flathub 仓库: + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +然后使用下面的命令来安装 Curtail: + +``` +flatpak install flathub com.github.huluti.Curtail +``` + +安装后,在你的 Linux 系统的菜单中寻找它,并从那里启动它。 + +![curtail app][5] + +界面朴素而简单。你可以选择你想要无损压缩还是有损压缩。 + +有损压缩会有质量差的图像,但尺寸较小。无损压缩会有更好的质量,但尺寸可能不会比原来的小很多。 + +![curtail app interface][6] + +你可以浏览图片,或者把它们拖到应用中。 + +是的,你可以用 Curtail 一键压缩多张图片。 + +事实上,你甚至不需要点击。只要你选择图片或拖放它们,它们就会被压缩,你会看到压缩过程的摘要。 + +![curtail image compression summary][7] + +正如你在上面的图片中看到的,我的一张图片的尺寸减少了 35%,另外两张图片的尺寸减少了 3% 和 8%。这是在无损压缩的情况下。 + +这些图片以 -min 为后缀(默认),保存在与原始图片相同的目录中。 + +虽然它看起来很简约,但有几个选项可以配置 Curtail。点击菜单,你会看到一些设置选项。 + +![curtail configuration options][8] + +你可以选择是将压缩文件保存为新文件还是替换现有文件。如果你选择新文件(默认行为),你也可以为压缩后的图像提供一个不同的后缀。保留文件属性的选项也在这里。 + +在下一个选项卡中,你可以配置有损压缩的设置。默认情况下,压缩级别为 90%。 + +![curtail compression options][9] + +高级选项卡让你可以选择配置 PNG 和 WebP 文件的无损压缩级别。 + +![curtain advanced options][10] + +### 总结 + +正如我前面所说,这不是一个突破性的工具。你可以用其他工具如 GIMP 做同样的事情。它只是使图像压缩的任务更简单,特别是对于批量图像压缩。 + +我很想看到在压缩时有[转换图像文件格式][11]的选项,就像我们在 Converseen 等工具中所拥有的那样。 + +总的来说,对于图像压缩的具体目的来说,这是一个不错的小工具。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/curtail-image-compress/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://squoosh.app/ +[2]: https://github.com/tjko/jpegoptim +[3]: https://itsfoss.com/what-is-flatpak/ +[4]: https://itsfoss.com/flatpak-guide/ +[5]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-app.png +[6]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-app-interface.png +[7]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-image-compression-summary.png +[8]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-configuration-options.png +[9]: https://itsfoss.com/wp-content/uploads/2022/06/curtail-compression-options.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/curtain-advanced-options.png +[11]: https://itsfoss.com/converseen/ From 2424117e0508f1649bbbf50c667a323268dc7d6f Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 23 Jun 2022 08:34:30 +0800 Subject: [PATCH 0077/3123] translating --- .../tech/20220622 Manage your Rust toolchain using rustup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220622 Manage your Rust toolchain using rustup.md b/sources/tech/20220622 Manage your Rust toolchain using rustup.md index bfcd21ea18..c440a6da08 100644 --- a/sources/tech/20220622 Manage your Rust toolchain using rustup.md +++ b/sources/tech/20220622 Manage your Rust toolchain using rustup.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/rust-toolchain-rustup" [#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 782fd41ac528b564f84834d9c14aaf3d7b58856e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 23 Jun 2022 09:06:11 +0800 Subject: [PATCH 0078/3123] =?UTF-8?q?Revert=20"[=E7=94=B3=E9=A2=86?= =?UTF-8?q?=E5=8E=9F=E6=96=87][tech]:=2020220617=20Containerisation=20of?= =?UTF-8?q?=20Java=20Microservices.md"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20220617 Containerisation of Java Microservices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220617 Containerisation of Java Microservices.md b/sources/tech/20220617 Containerisation of Java Microservices.md index 0aed0cf052..5beffb4758 100644 --- a/sources/tech/20220617 Containerisation of Java Microservices.md +++ b/sources/tech/20220617 Containerisation of Java Microservices.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/containerisation-of-java-microservices/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: "lkxed" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 64f1bf91c9b7ccfa4e41b356056064880600d404 Mon Sep 17 00:00:00 2001 From: SamMa Date: Thu, 23 Jun 2022 09:14:26 +0800 Subject: [PATCH 0079/3123] Update 20210104 Docker Compose- a nice way to set up a dev environment.md --- ... a nice way to set up a dev environment.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md index cfa8921aaf..99b18735b6 100644 --- a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md +++ b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md @@ -27,7 +27,7 @@ Docker Compose:搭建开发环境的好方式 * 一个 Go 服务 (使用了 [gotty][2] 来代理一些 SSH 连接) * 一个 Postgres 数据库 -在本地搭建 Rails 服务非常简单,用不着容器(我只需要安装 Postgres 和 Ruby 就行了,小菜一碟)。但是,我还想要把匹配 `/proxy/*` 的请求的发送到 Go 服务,其他所有请求都发送到 Rails 服务,所以我还要用到 Nginx。问题来了,在笔记本电脑上安装 Nginx 对我来说太麻烦了。 +在本地搭建 Rails 服务非常简单,用不着容器(我只需要安装 Postgres 和 Ruby 就行了,小菜一碟)。但是,我还想要把匹配 `/proxy/*` 的请求的发送到 Go 服务,其他所有请求都发送到 Rails 服务,所以需要借助 Nginx。问题来了,在笔记本电脑上安装 Nginx 对我来说太麻烦了。 是时候使用 `docker-compose` 了! @@ -35,7 +35,7 @@ Docker Compose:搭建开发环境的好方式 基本上,Docker Compose 的作用就是允许你运行一组可以互相通信 Docker 容器。 -你可以在一个叫做 `docker-compose.yml` 的文件中,配置你所有的容器。下面,我将贴上我为这个服务编写的 `docker-compose.yml` 文件(的全部内容),因为我觉得它真的很简洁、直接! +你可以在一个叫做 `docker-compose.yml` 的文件中,配置你所有的容器。我在下方将贴上我为这个服务编写的 `docker-compose.yml` 文件(完整内容),因为我觉得它真的很简洁、直接! ``` version: "3.3" @@ -63,7 +63,7 @@ services: - "8777:80" # this exposes port 8777 on my laptop ``` -这个配置包含了两种容器。对于前面两个容器,我不加修改地使用了既有的镜像(`image: postgres` 和 `image: ubuntu`)。对于后面两个,我不得不构建一个自定义容器镜像,其中, `build: docker/rails` 的作用就是告诉 Docker Compose,它应该使用 `docker/rails/Dockerfile` 来构建一个自定义容器。 +这个配置包含了两种容器。对于前面两个容器,我直接使用了现有的镜像(`image: postgres` 和 `image: ubuntu`)。对于后面两个容器,我不得不构建一个自定义容器镜像,其中, `build: docker/rails` 的作用就是告诉 Docker Compose,它应该使用 `docker/rails/Dockerfile` 来构建一个自定义容器。 我需要允许我的 Rails 服务访问一些 API 密钥和其他东西,因此,我使用了 `source secrets.sh`,它的作用就是在环境变量中预设一组密钥。 @@ -71,9 +71,9 @@ services: 我一直都是先运行 `docker-compose build` 来构建容器,然后再运行 `docker-compose up` 把所有服务启动起来。 -你可以在 yaml 文件中设置 `depends_on`,这样你可以获得更多容器启动时的控制。不过,对于我的这些服务而言,启动顺序并不重要,所以我没有设置它。 +你可以在 yaml 文件中设置 `depends_on`,从而进行更多启动容器的控制。不过,对于我的这些服务而言,启动顺序并不重要,所以我没有设置它。 -### 使用网络通信也非常简单 +### 网络互通也非常简单 有件很重要的事:容器之间得能够互相连接才行。Docker Compose 让这件事变得超级简单!假设我有一个 Rails 服务正在名为 `rails_server` 的容器中运行,端口是 3000,那么我就可以通过 `http://rails_server:3000` 来访问该服务。就是这么简单! @@ -118,7 +118,7 @@ $ dig +short @127.0.0.11 go_server 以下所有命令都是在容器外执行的,因为我没有在容器里安装很多网络工具。 -**第一步:**:使用 `ps aux | grep puma`,找到我的 Rails 服务的进程 ID。 +**第一步:**:使用 `ps aux | grep puma`,获取 Rails 服务的进程 ID。 找到了,它是 `1837916`!感觉不错哦~ @@ -152,7 +152,7 @@ $ sudo nsenter -n -t 1837916 dig +short @127.0.0.11 59426 rails_server 对于类似“这个服务似乎正运行在 X 端口上,但我却在 Y 端口上访问到了它,这是什么回事呢?”的问题,我的第一念头都是“一定是 iptables 在作怪”。 -于是,我运行了容器的网络命令空间内运行了 `iptables-save`,果不其然,真相大白: +于是,我在运行了容器的网络命令空间内执行 `iptables-save`,果不其然,真相大白: ``` $ sudo nsenter -n -t 1837916 iptables-save @@ -165,13 +165,13 @@ COMMIT ### 数据库文件储存在一个临时目录中 -这样做有一个好处:我可以直接挂载 Postgres 容器的数据目录 `./tmp/db`,而不需要在我的笔记本电脑上管理 Postgres 环境。 +这样做有一个好处:我可以直接挂载 Postgres 容器的数据目录 `./tmp/db`,而无需在我的笔记本电脑上管理 Postgres 环境。 -我很喜欢这种方式,因为我真的不想在笔记本电脑上,亲自管理一个 Postgres 环境(我也真的不知道该如何配置 Postgres)。还有就是,出于习惯,我更喜欢让开发环境的数据库和代码放在同一个目录下。 +我很喜欢这种方式,因为我真的不想在笔记本电脑上独自管理一个 Postgres 环境(我也真的不知道该如何配置 Postgres)。另外,出于习惯,我更喜欢让开发环境的数据库和代码放在同一个目录下。 ### 仅需一行命令,我就可以访问 Rails 控制台 -管理 Ruby 的版本总是有点棘手,并且,即使我暂时搞定了它,我也总是有点担心自己会把 Ruby 环境搞坏,然后就要修它修个十年(夸张)。 +管理 Ruby 的版本总是有点棘手,并且,即使我暂时搞定了它,我也总是有点担心自己会把 Ruby 环境搞坏,然后就要修它个十年(夸张)。 (使用 Docker Compose)搭建好这个开发环境后,如果我需要访问 Rails 控制台console(一个交互式环境,加载了所有我的 Rails 代码),我只需要运行一行代码即可: @@ -188,7 +188,7 @@ irb(main):001:0> 我碰到了一个问题:Rails 控制台的历史记录丢失了,因为我一直在不断地重启它。 -不过,我也找到了一个相当简单的解决方案(嘿嘿):我往容器中添加了一个 `/root/.irbrc` 文件,它能够把 IRB 历史记录文件的保存位置,修改到一个不受容器重启影响的地方。只需要一行代码就够啦: +不过,我也找到了一个相当简单的解决方案(嘿嘿):我往容器中添加了一个 `/root/.irbrc` 文件,它能够把 IRB 历史记录文件的保存位置指向到一个不受容器重启影响的地方。只需要一行代码就够啦: ``` IRB.conf[:HISTORY_FILE] = "/app/tmp/irb_history" From 89583431c11427653ee8f01826f193c6846a0c6f Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Thu, 23 Jun 2022 09:15:28 +0800 Subject: [PATCH 0080/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BD=AF=E6=96=87?= =?UTF-8?q?=2020220620=20The=20First=20Commercial=20Unikernel=20With=20POS?= =?UTF-8?q?IX=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Commercial Unikernel With POSIX Support.md | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md diff --git a/sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md b/sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md deleted file mode 100644 index a667a30874..0000000000 --- a/sources/tech/20220620 The First Commercial Unikernel With POSIX Support.md +++ /dev/null @@ -1,37 +0,0 @@ -[#]: subject: "The First Commercial Unikernel With POSIX Support" -[#]: via: "https://www.opensourceforu.com/2022/06/the-first-commercial-unikernel-with-posix-support/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The First Commercial Unikernel With POSIX Support -====== -![operating system][1] - -Lynx Software Technologies has released a unikernel that it claims is the first to be POSIX compatible for real-time operation and commercially available. LynxElement will be included in the MOSA.ic range of mission-critical embedded applications. To provide more security with third-party or open source software, Lynx prefers a unikernel approach over hypervisors or virtual machines. LynxElement is based on Lynx’s commercially proven LynxOS-178 real-time operating system, which allows for compatibility between the Unikernel and the standalone LynxOS-178 product. This enables designers to move applications between environments and is compliant with the POSIX API and US FACE specifications. - -LynxElement initially focused on security on both Intel and Arm multicore processor architectures. Running security components such as virtual private networks is a common use case (VPNs). The unikernel, by utilising a one-way software ‘data diode’ and filter, can enable a customer to replace a Linux virtual machine, saving memory space and drastically reducing the attack surface while ensuring timing requirements and safety certifiability. - -Unikernels are best suited for applications that require speed, agility, and a small attack surface in order to increase security and certifiability, such as aircraft systems, autonomous vehicles, and critical infrastructure. These run pre-built applications with their own libraries, reducing the attack surface caused by resource sharing. This also enables the secure use of containerised applications such as Kubernetes or Docker, which are increasingly moving from enterprise to embedded designs, owing to the need to support AI frameworks. - -Unikernels are also an excellent choice for mission-critical systems with heterogeneous workloads that require the coexistence of RTOS, Linux, Unikernel, and bare-metal guest operating systems. Existing open source unikernel implementations, according to Lynx, haven’t fared well due to a lack of adequate functionality, a lack of a clear path to safety certification, and immature toolchains for debugging and producing images. - -Lynx created the MOSA.ic software framework for developing and integrating complex multi-core safety- or security-critical systems. The framework includes built-in security for the unikernel, allowing for security and safety certification in mission-critical applications and making it enterprise-ready. With the assistance of DESE Research, Lynx created the safety-critical Unikernel solution. LynxElement is being evaluated by existing Lynx customers as well as additional organisations around the world, including naval, air force, and army organisations. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/the-first-commercial-unikernel-with-posix-support/ - -作者:[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/06/operating-system-1.jpg From 7e74d0bf328677ffdd1d09cbeb26374b57ae1f23 Mon Sep 17 00:00:00 2001 From: wangzequan <46700056+hadisi1993@users.noreply.github.com> Date: Thu, 23 Jun 2022 11:58:36 +0800 Subject: [PATCH 0081/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...easons I love to use the Qt Creator IDE.md | 209 ------------------ ...easons I love to use the Qt Creator IDE.md | 197 +++++++++++++++++ 2 files changed, 197 insertions(+), 209 deletions(-) delete mode 100644 sources/tech/20210630 9 reasons I love to use the Qt Creator IDE.md create mode 100644 translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md diff --git a/sources/tech/20210630 9 reasons I love to use the Qt Creator IDE.md b/sources/tech/20210630 9 reasons I love to use the Qt Creator IDE.md deleted file mode 100644 index e542de2f38..0000000000 --- a/sources/tech/20210630 9 reasons I love to use the Qt Creator IDE.md +++ /dev/null @@ -1,209 +0,0 @@ -[#]: subject: (9 reasons I love to use the Qt Creator IDE) -[#]: via: (https://opensource.com/article/21/6/qtcreator) -[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) -[#]: collector: (lujun9972) -[#]: translator: (hadisi1993) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -9 reasons I love to use the Qt Creator IDE -====== -Qt Creator is the glue between Qt's rich set of libraries and the -programmer. -![Business woman on laptop sitting in front of window][1] - -Qt Creator is the Qt framework's default integrated development environment (IDE) and hence the glue between Qt's rich set of libraries and the user. In addition to its basic features such as intelligent code completion, debugging, and project administration, Qt Creator offers a lot of nice features that make software development easier. - -In this article, I will highlight some of my favorite [Qt Creator][2] features. - -### Dark mode - -My first question when working with a new application is: _Is there a dark mode?_ Qt Creator answers with: _Which dark mode do you prefer?_ - -You can activate dark mode in the Options menu. On the top menu bar, go to **Tools**, select **Options**, and go to the **Environment** section. Here is where you can select the general appearance: - -![ QT Creator dark mode][3] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### Custom appearance - -Like every Qt application, Qt Creator's appearance is highly customizable with style sheets. Below, you can follow along with my approach to give Qt Creator a fancy look. - -Create the file `mycustomstylesheet.css` with the following content: - - -``` -QMenuBar { background-color: olive } -QMenuBar::item { background-color: olive } -QMenu { background-color : beige; color : black } -QLabel { color: green } -``` - -Then start Qt Creator from the command line and pass the style sheet as a parameter with: - - -``` -`qtcreator -stylesheet=mycustomstylesheet.css` -``` - -It should look like this: - -![QT Creator custom stylesheet][5] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -Read more about style sheets in the [documentation][6]. - -### Command-line parameters - -Qt Creator accepts many command-line options. For example, if you want to automatically load your current project at startup, pass the path to the `*.pro-file`: - - -``` -`qtcreator ~/MyProject/MyQtProject.pro` -``` - -You can even pass the file and the line number that should be opened by default. This command opens the file `main.cpp` at line 20: - - -``` -`qtcreator ~/MyProject/main.cpp:20` -``` - -Read more about the Qt Creator-specific command-line options in the [documentation][7]. - -Qt Creator is an ordinary Qt application, so, in addition to its own command-line arguments, it also accepts the generic arguments for [QApplication][8] and [QGuiApplication][9]. - -### Cross-compiling - -Qt Creator allows you to define several toolchains, called **Kits**. A kit defines the binaries and SDK for building and running an application: - -![QT Creator kits][10] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -This allows you to switch between completely different toolchains with just two clicks: - -![Switching between Kits in Qt Creator][11] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -Read more about kits in the [manual][12]. - -### Analyzer - -Qt Creator integrates several of the most popular analyzers, such as: - - * [Linux Performance Analyzer][13] (requires a special kernel)  - * [Valgrind][14] memory profiler - * [Clang-Tidy and Clazy][15], a linter for C/C++ - - - -![Qt Creator analyzer][16] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### Debugger - -When it comes to debugging, Qt Creator has a nice interface for GNU Debugger (GDB). I like its easy way of inspecting container types and creating conditional breakpoints: - -![Qt Creator debugger][17] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### FakeVim - -If you like Vim, enable FakeVim in the settings to control Qt Creator like Vim. Go to **Tools** and select **Options**. In the **FakeVim** section, you can find many switches to customize FakeVim's behavior. In addition to the editor functions, you can also map your own functions to custom Vim commands. - -For example, you can map the function **Build Project** to the `build` command: - -![FakeVim in Qt Creator][18] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -Back in the editor, when you press the colon button and enter `build`, Qt Creator starts a build process with the configured toolchain: - -![FakeVim in Qt Creator][19] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -You can find more information about FakeVim [in the docs][20]. - -### Class inspector - -When developing in C++, open the right window by clicking on the button in the bottom-right corner of Qt Creator. Then choose **Outline** from the dropdown menu on the top border. If you have a header file open on the left pane, you get a nice overview of the defined classes or types. If you switch to a source file (`*.cpp`), the right pane will list all defined methods, and you can jump to one by double-clicking on it: - -![List of classes in Qt Creator][21] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### Project configuration - -Qt Creator projects are built around the `*.pro-file` in the project's directory. You can add your own custom configuration to the project's `*.pro-file` of your project. I added `my_special_config` to the `*.pro-file`, which adds `MY_SPECIAL_CONFIG` to the compiler defined: - - -``` -QT -= gui - -CONFIG += c++11 console -CONFIG -= app_bundle - -CONFIG += my_special_config - -my_special_config { -DEFINES += MY_SPECIAL_CONFIG -} -``` - -Qt Creator automatically highlights the code according to the active configuration: - -![Special configuration in Qt Creator][22] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -The `*.pro-file` is written in the [qmake language][23]. - -### Summary - -These features are only the tip of the iceberg of what Qt Creator provides. Beginners shouldn't feel overwhelmed by the many features, as Qt Creator is absolutely beginner-friendly. It may even be the easiest way to start developing in C++. To get a complete overview of its features, refer to the [official Qt Creator documentation][24]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/qtcreator - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating) -[2]: https://www.qt.io/product/development-tools -[3]: https://opensource.com/sites/default/files/uploads/qt_creator_dark_mode.png ( QT Creator dark mode) -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: https://opensource.com/sites/default/files/uploads/qt_creator_custom_stylesheet2.png (QT Creator custom stylesheet) -[6]: https://doc.qt.io/qt-5/stylesheet-reference.html -[7]: https://doc.qt.io/qtcreator/creator-cli.html -[8]: https://doc.qt.io/qt-5/qapplication.html#QApplication -[9]: https://doc.qt.io/qt-5/qguiapplication.html#supported-command-line-options -[10]: https://opensource.com/sites/default/files/uploads/qt_creator_cross_compiling.png (QT Creator kits) -[11]: https://opensource.com/sites/default/files/uploads/qt_creator_select_kits.png (Switching between Kits in Qt Creator) -[12]: https://doc.qt.io/qtcreator/creator-targets.html -[13]: https://doc.qt.io/qtcreator/creator-cpu-usage-analyzer.html -[14]: https://doc.qt.io/qtcreator/creator-valgrind-overview.html -[15]: https://doc.qt.io/qtcreator/creator-clang-tools.html -[16]: https://opensource.com/sites/default/files/uploads/qt_creator_analyzer.png (Qt Creator analyzer) -[17]: https://opensource.com/sites/default/files/uploads/qt_creator_debugger2.png (Qt Creator debugger) -[18]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_ex_commands.png (FakeVim in Qt Creator) -[19]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_build_commands.png (FakeVim in Qt Creator) -[20]: https://doc.qt.io/qtcreator/creator-editor-fakevim.html -[21]: https://opensource.com/sites/default/files/uploads/qtcreator_class_overview.png (List of classes in Qt Creator) -[22]: https://opensource.com/sites/default/files/uploads/qtcreater_special_config.png (Special configuration in Qt Creator) -[23]: https://doc.qt.io/qt-5/qmake-language.html -[24]: https://doc.qt.io/qtcreator/ diff --git a/translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md b/translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md new file mode 100644 index 0000000000..bebc86bf73 --- /dev/null +++ b/translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md @@ -0,0 +1,197 @@ +[#]: subject: (9 reasons I love to use the Qt Creator IDE) +[#]: via: (https://opensource.com/article/21/6/qtcreator) +[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) +[#]: collector: (lujun9972) +[#]: translator: (hadisi1993) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +9个我爱用Qt Creator IDE的原因 +====== +Qt Creator 就是丰富的Qt库和程序员之间的胶水。 +![坐在窗前用笔记本电脑的商务女性][1] + +Qt Creator 是Ot框架默认的集成开发环境(IDE),同时也是丰富的Qt库和用户之前的胶水。除了如智能代码补全,调试,项目管理等基础功能外,Qt Creator还提供了很多让软件开发变得更简单的特性。 + +在这篇文章中,我会重点介绍一些我最喜欢的[Qt Creator][2]特性。 +### 黑暗模式 + +当我使用一个新的应用时,我的第一个问题是:_这里有黑暗模式吗?_ Qt Creator的回答是:_你更喜欢哪一种黑暗模式呢?_ + +你可以在选项菜单中激活黑暗模式。在顶部的菜单栏中,点击**工具**,选择**选项**,然后转到**环境**部分。下面是你能选择的常用外观: + +![ QT Creator 黑暗模式][3] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +### 定制外观 + +像每一个Qt应用一样,借助样式表,Qt Creator的外观是高度可定制化的。下面,你可以按照我的做法给Qt Creator一个想要的外观。 + +将下面这些内容写入`mycustomstylesheet.css`文件中: + +``` +QMenuBar { background-color: olive } +QMenuBar::item { background-color: olive } +QMenu { background-color : beige; color : black } +QLabel { color: green } +``` + +然后使用命令行开启Qt Creator,将样式表作为参数传入: + + +``` +`qtcreator -stylesheet=mycustomstylesheet.css` +``` + +IDE现在看上去应该会变成这样: + +![QT Creator 定制样式表][5] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +在这份[文档][6]中可以查阅更多的样式表 + +### 命令行参数 +Qt Creator 可接受很多命令行选项。例如,如果想在启动时自动加载当前项目,那么你可以将它的路径传递给`*.pro-file`: + +``` +`qtcreator ~/MyProject/MyQtProject.pro` +``` + +你甚至可以将默认应该打开的文件和行数作为参数传递。下面这个命令在20行处打开`main.cpp`: + +``` +`qtcreator ~/MyProject/main.cpp:20` +``` + +在这份[文档][7]中可以查阅更多Qt特有的命令行选项。 + + +Qt Creator和一般的Qt应用无二,所以,除了自己的命令行参数以外,它也接收[QApplication][8]和[QGuiApplication][9]的一般参数。 +### 交叉编译 + +Qt Creator allows you to define several toolchains, called **Kits**. A kit defines the binaries and SDK for building and running an application: +Qt Creator允许你定义一些被称为**Kits**的toolchains。一个Kit定义构建和运行应用所需要的二进制库和SDK。 +![QT Creator kits][10] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +This allows you to switch between completely different toolchains with just two clicks: +这使得你通过两次点击,就在完全不同的toolchains之间切换。 + +![在Qt Creator中切换Kits][11] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +在这份[手册][12]中可以查阅更多关于Kits的内容。 +### 分析工具 + +Qt Creator集成了一些最流行的性能分析工具,例如: + + * [Linux Performance Analyzer][13] (需要特定的内核) + * [Valgrind][14] memory profiler + * [Clang-Tidy and Clazy][15], 一种检查C/C++的linter + + +![Qt Creator性能分析工具][16] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +### 调试器 + +在调试方面,Qt Creator为GNU Debugger(GDB)配备了一个很好的界面。我喜欢它检查容器类型和创建条件断点的方式,很简易。 + +![Qt Creator 调试器][17] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +### FakeVim + +如果你喜欢Vim,你可以开启在设置中开启FakeVim来像Vim一样控制Qt Creator。点击**工具**并选择**选项**。在**FakeVim**选项中,你可以找到许多开关来定制FakeVim。除了编辑器的功能外,你可以将自己设置的功能和命令关联起来,定制Vim命令。 + +举个例子,你可以将**创建项目**的功能和`build`命令关联到一起去: +For example, you can map the function **Build Project** to the `build` command: + +![Qt Creator中的FakeVim][18] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +回到编辑器中,当你按下冒号并输入build,Qt Creator利用配置的toolchain,开始进行构建: + +![Qt Creator中的FakeVim][19] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +你可以中这份[文档][20]中找到FakeVim的更多信息。 +### 类检测器 + +当使用C++开发时,点击Qt Creator右下角的按钮可打开右边的窗口。然后在窗口顶部拉下的菜单中选择**轮廓**。如果你在左侧窗体中有头文件打开,你可以很好地纵览定义的类和类型。如果你切换到源文件中(`*.cpp`),右侧窗体会列出所有定义的方法,双击其中一个,你可以跳转到这个方法: +![Qt Creator中的类列表][21] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +### 项目配置 + +Qt Creator 的项目建立在项目文件里的`*.pro-file`之上。你可以为你的项目在`*.pro-file`中添加你定制的配置。我向`*.pro-file`中添加了`my_special_config`,它向编译器的定义添加`MY_SPECIAL_CONFIG`。 + +``` +QT -= gui + +CONFIG += c++11 console +CONFIG -= app_bundle + +CONFIG += my_special_config + +my_special_config { +DEFINES += MY_SPECIAL_CONFIG +} +``` + +Qt Creator 自动根据当前配置设置代码高亮: +![Qt Creator的特殊配置][22] + +(Stephan Avenwedde, [CC BY-SA 4.0][4]) + +`*.pro-file` 使用[qmake语言][23]进行编写 +### Summary +这些特性仅仅是Qt Creators提供特性的冰山一角。初学者们应该不会感到被其众多的功能所淹没,Qt Creator是一款对初学者很友好的IDE。它甚至可能是开始C++开发最简单的方式。如果要获得QT Creator特性的全面概述,请参考它的[官方文档][24]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/qtcreator + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[hadisi1993](https://github.com/hadisi1993) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating) +[2]: https://www.qt.io/product/development-tools +[3]: https://opensource.com/sites/default/files/uploads/qt_creator_dark_mode.png ( QT Creator dark mode) +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: https://opensource.com/sites/default/files/uploads/qt_creator_custom_stylesheet2.png (QT Creator custom stylesheet) +[6]: https://doc.qt.io/qt-5/stylesheet-reference.html +[7]: https://doc.qt.io/qtcreator/creator-cli.html +[8]: https://doc.qt.io/qt-5/qapplication.html#QApplication +[9]: https://doc.qt.io/qt-5/qguiapplication.html#supported-command-line-options +[10]: https://opensource.com/sites/default/files/uploads/qt_creator_cross_compiling.png (QT Creator kits) +[11]: https://opensource.com/sites/default/files/uploads/qt_creator_select_kits.png (Switching between Kits in Qt Creator) +[12]: https://doc.qt.io/qtcreator/creator-targets.html +[13]: https://doc.qt.io/qtcreator/creator-cpu-usage-analyzer.html +[14]: https://doc.qt.io/qtcreator/creator-valgrind-overview.html +[15]: https://doc.qt.io/qtcreator/creator-clang-tools.html +[16]: https://opensource.com/sites/default/files/uploads/qt_creator_analyzer.png (Qt Creator analyzer) +[17]: https://opensource.com/sites/default/files/uploads/qt_creator_debugger2.png (Qt Creator debugger) +[18]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_ex_commands.png (FakeVim in Qt Creator) +[19]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_build_commands.png (FakeVim in Qt Creator) +[20]: https://doc.qt.io/qtcreator/creator-editor-fakevim.html +[21]: https://opensource.com/sites/default/files/uploads/qtcreator_class_overview.png (List of classes in Qt Creator) +[22]: https://opensource.com/sites/default/files/uploads/qtcreater_special_config.png (Special configuration in Qt Creator) +[23]: https://doc.qt.io/qt-5/qmake-language.html +[24]: https://doc.qt.io/qtcreator/ From a88e760c9fcab473d0397e3e43bf2802323f5710 Mon Sep 17 00:00:00 2001 From: SamMa Date: Thu, 23 Jun 2022 12:14:18 +0800 Subject: [PATCH 0082/3123] Update 20210104 Docker Compose- a nice way to set up a dev environment.md --- ...pose- a nice way to set up a dev environment.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md index 99b18735b6..e0e52fe529 100644 --- a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md +++ b/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md @@ -75,7 +75,7 @@ services: ### 网络互通也非常简单 -有件很重要的事:容器之间得能够互相连接才行。Docker Compose 让这件事变得超级简单!假设我有一个 Rails 服务正在名为 `rails_server` 的容器中运行,端口是 3000,那么我就可以通过 `http://rails_server:3000` 来访问该服务。就是这么简单! +容器之间的互通也是一件很重要的事情。Docker Compose 让这件事变得超级简单!假设我有一个 Rails 服务正在名为 `rails_server` 的容器中运行,端口是 3000,那么我就可以通过 `http://rails_server:3000` 来访问该服务。就是这么简单! 以下代码片段截取自我的 Nginx 配置文件,它是根据我的使用需求配置的(我删除了许多 `proxy_set_headers` 行,让它看起来更清楚): @@ -88,7 +88,7 @@ location @app { } ``` -或者,你也看下面这个代码片段,它截取自我的 Rails 项目的数据库配置,我在其中使用了数据库容器的名称(`db`): +或者,你可以参考如下代码片段,它截取自我的 Rails 项目的数据库配置,我在其中使用了数据库容器的名称(`db`): ``` development: @@ -188,22 +188,22 @@ irb(main):001:0> 我碰到了一个问题:Rails 控制台的历史记录丢失了,因为我一直在不断地重启它。 -不过,我也找到了一个相当简单的解决方案(嘿嘿):我往容器中添加了一个 `/root/.irbrc` 文件,它能够把 IRB 历史记录文件的保存位置指向到一个不受容器重启影响的地方。只需要一行代码就够啦: +不过,我也找到了一个相当简单的解决方案(嘿嘿):我往容器中添加了一个 `/root/.irbrc` 文件,它能够把 IRB 历史记录文件的保存位置指向一个不受容器重启影响的地方。只需要一行代码就够啦: ``` IRB.conf[:HISTORY_FILE] = "/app/tmp/irb_history" ``` -### 我还是不知道它在生产环境的表现会怎么样 +### 我还是不知道它在生产环境的表现如何 到目前为止,这个项目的生产环境搭建进度,还停留在“我制作了一个 digitalocean droplet(LCCT 译注:一种 Linux 虚拟机服务),并手工编辑了很多文件”的阶段。 -嗯……我相信我以后会在生产环境中使用 docker-compose 来运行一下它的。我猜它能够会正常工作,因为这个服务很可能最多只有两个用户在使用,并且,如果我愿意,我可以容忍它在部署过程中有 60 秒的不可用时间。不过话又说回来,出错的往往是我想不到的地方。 +嗯……我相信以后会在生产环境中使用 docker-compose 来运行一下它的。我猜它能够正常工作,因为这个服务很可能最多只有两个用户在使用,并且,如果我愿意,我可以容忍它在部署过程中有 60 秒的不可用时间。不过话又说回来,出错的往往是我想不到的地方。 推特网友提供了一些在生产中使用 docker-compose 的注意事项: * `docker-compose up` 只会重启那些需要重启的容器,这会让重启速度更快。 - * 有一个 Bash 小脚本 [wait-for-it][3],你可以用它来让一个容器保持等待,直到另一个容器的服务可用。 + * 有一个 Bash 小脚本 [wait-for-it][3],你可以用它来保持等待一个容器,直到另一个容器的服务可用。 * 你可以准备两份 `docker-compose.yaml` 文件:用于开发环境的 `docker-compose.yaml` 和 用于生产环境的 `docker-compose-prod.yaml`。我想我会在分别为 Nginx 指定不同的端口:开发时使用 `8999`,生产中使用 `80`。 * 人们似乎一致认为,如果你的项目是一台计算机上运行的小网站,那么 docker-compose 在生产中不会有问题。 * 有个人建议说,如果愿意在生产环境搭建复杂那么一丢丢,Docker Swarm 就或许会是更好的选择,不过我还没试过(当然,如果要这么说的话,干嘛不用 Kubernetes 呢?Docker Compose 的意义就是它超级简单,而 Kubernetes 肯定不简单 :))。 @@ -212,7 +212,7 @@ Docker 似乎还有一个特性,它能够 [把你用 docker-compose 搭建的 ### docker-compose 会有不适用的场景吗 -我听说 docker-compose 在以下场景的表现差强人意: +我听说 docker-compose 在以下场景的表现较差: * 当你有很多微服务的时候(还是自己搭建比较好) * 当你尝试从一个很大的数据库中导入数据时(就像把几百 G 的数据存到每个人的笔记本电脑里一样) From 1d8db0780c3d32086e39ea20d8d8173b329e1452 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 23 Jun 2022 13:50:47 +0800 Subject: [PATCH 0083/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220623=20Minetest,=20an=20Open=20Source=20Minecraf?= =?UTF-8?q?t=20Alternative.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t, an Open Source Minecraft Alternative.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md diff --git a/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md b/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md new file mode 100644 index 0000000000..41df19aaed --- /dev/null +++ b/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md @@ -0,0 +1,132 @@ +[#]: subject: "Minetest, an Open Source Minecraft Alternative" +[#]: via: "https://itsfoss.com/minetest/" +[#]: author: "John Paul https://itsfoss.com/author/john/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Minetest, an Open Source Minecraft Alternative +====== +Back in 2009, Minecraft was introduced to the world. Since then, it has become a cultural phenomenon. In that time period, several developers have released open-source games with similar ideas and mechanics. Today, we will look at one of the biggest ones: Minetest. + +### What is Minetest? + +![minetest start][1] + +[Minetest][2], put simply, is a voxel based sandbox game, very similar to Minecraft. Unlike Minecraft, Minetest is written in C++ and is designed to run natively on most systems. It also has a very large map area. With a map size of “62,000 × 62,000 × 62,000 blocks”, “you can mine 31,000 blocks down, or build 31,000 blocks up”. + +Interestingly, Minetest was originally released under a proprietary license but was later relicensed as GPL. It has since been relicensed to LGPL. + +Minetest has a couple of modes. You can either build and be creative, or you can try to survive the elements. You aren’t limited to these modes. There is a wealth of [extra content available][3] to Minetest in terms of mods, texture packs, and games built within Minetest. This is largely done using Minetest’s [modding API][4] and Lua. + +![minetest packages][5] + +For those who have played Minecraft, you will find a very similar experience in Minetest. You can dig for resources, build structures, and combine materials to make tools. The one thing that I have not noticed in Minetest is monsters. I don’t think there are any creatures in Minetest, but then again, I’ve on only played in creative mode. I haven’t played survival mode. + +Minetest is also used in [education][6]. For example, the people at CERN in Switzerland created a game with Minetest to [show how the Internet works][7] and how it was created. Minetest has also been [used to teach][8] programming, earth sciences, and calculus and trigonometry. + +![minetes map1][9] + +### How to Install Minetest? + +Minetest is available on almost every system. Here is a list of commands that you can use to install Minetest in some of the most popular Linux distros. + +#### Ubuntu or Debian + +If you have a distro based on Ubuntu or Debian, just enter this command in the terminal: + +``` +sudo apt install mintest +``` + +#### Arch or Manjaro + +For systems based on Arch (such as Manjaro), use: + +``` +sudo pacman -S minetest +``` + +#### Fedora + +You can install Mintest from the Fedora servers by entering: + +``` +sudo dnf install mintest +``` + +#### openSUSE + +openSUSE users can install Minetest using this command: + +``` +sudo zypper in mintest +``` + +#### FreeBSD + +FreeBSD users are in luck. They can install Mintest using this command: + +``` +pkg install minetest minetest_game +``` + +![minetest map2][10] + +#### Snap + +To install a Snap of Minetest, enter the following command in the terminal: + +``` +sudo snap install minetest +``` + +#### Flathub + +To install, enter`:` + +``` +flatpak install flathub net.minetest.Minetest +``` + +You can download a portable executable for Windows [here][11]. You can also install Minetest on Android, either by going to [Google Play][12] or [download the APK][13]. + +### Final Thoughts + +![minetest about][14] + +I’ve spent hours in Minetest building and exploring on my local system. It’s great fun. I haven’t gotten around to trying out any of the extra content because I’ve been more than happy with the relatively small portion of the game I’ve played. The only trouble that I’ve encountered was that it ran slow on Fedora, for some reason. I might have had something configured wrong. + +If you ever thought that Minecraft looked interesting, but didn’t want to spend the money, check out Minetest. You’ll be glad that you did. + +If you have played Minetest, tell us how your experience was in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/minetest/ + +作者:[John Paul][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/john/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-start-800x411.jpg +[2]: https://www.minetest.net/ +[3]: https://content.minetest.net/ +[4]: https://dev.minetest.net/Modding_Intro +[5]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-packages-800x411.jpg +[6]: https://www.minetest.net/education/ +[7]: https://forum.minetest.net/viewtopic.php?t=22871 +[8]: https://en.wikipedia.org/wiki/Minetest#Usage_in_education +[9]: https://itsfoss.com/wp-content/uploads/2022/03/minetes-map1-800x411.png +[10]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-map2-800x413.png +[11]: https://www.minetest.net/downloads/ +[12]: https://play.google.com/store/apps/details?id=net.minetest.minetest&utm_source=website&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1 +[13]: https://github.com/minetest/minetest/releases/download/5.5.0/app-armeabi-v7a-release.apk +[14]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-about-800x407.jpg From 2a9986f3e81cf17a37d0ce04cfcae3f996ae6484 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Thu, 23 Jun 2022 14:05:20 +0800 Subject: [PATCH 0084/3123] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E5=86=85=E7=9A=84=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ine email client in your Linux terminal.md | 378 ++++++++++-------- 1 file changed, 208 insertions(+), 170 deletions(-) diff --git a/sources/tech/20210511 Use the Alpine email client in your Linux terminal.md b/sources/tech/20210511 Use the Alpine email client in your Linux terminal.md index 83930d59c3..7f4e8155e6 100644 --- a/sources/tech/20210511 Use the Alpine email client in your Linux terminal.md +++ b/sources/tech/20210511 Use the Alpine email client in your Linux terminal.md @@ -1,15 +1,16 @@ -[#]: subject: (Use the Alpine email client in your Linux terminal) -[#]: via: (https://opensource.com/article/21/5/alpine-linux-email) -[#]: author: (David Both https://opensource.com/users/dboth) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Use the Alpine email client in your Linux terminal" +[#]: via: "https://opensource.com/article/21/5/alpine-linux-email" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Use the Alpine email client in your Linux terminal ====== Configure Alpine to handle your email the way you like it. + ![Chat via email][1] Email is an important communications medium and will remain so for the foreseeable future. I have used many different email clients over the last 30 years, and [Thunderbird][2] is what I have used the most in recent years. It is an excellent and functional desktop application that provides all the features that most people need—including me. @@ -22,7 +23,7 @@ This desire to go retro with my email client started back in 2017 when I wrote a I recently decided to exclusively use Alpine for email. The main attraction is the ease of use offered by keeping my hands on the keyboard (and reducing the number of times I need to reach for the mouse). It is also about scratching my sysadmin itch to do something different and use an excellent text mode interface in the process. -## Getting started +### Getting started I already had Alpine set up from my previous use, so it was just a matter of starting to use it again. @@ -32,18 +33,17 @@ I previously set up Alpine on my mail server—I used secure shell (SSH) to log But now I want to run Alpine on my workstation or laptop. It's relatively simple to configure Alpine on the same host as the email server. Using it on a remote computer requires a good bit more. -## Install Alpine +### Install Alpine Installing Alpine on Fedora is simple because it is available from the Fedora repository. Just use DNF as root: - ``` -`# dnf -y install alpine` +# dnf -y install alpine ``` This command installs Alpine and any prerequisite packages that are not already installed. Alpine's primary dependencies are Sendmail, Hunspell, OpenLDAP, OpenSSL, krb5-libs, ncurses, and a couple of others. In my case, Alpine was the only package installed. -## Launch Alpine +### Launch Alpine To launch Alpine, open a terminal session, type **alpine** on the command line, and press **Enter**. @@ -51,7 +51,6 @@ The first time you start Alpine, it displays a message that it is creating the u For now, just press lowercase **e** to exit from the greeting message. You should now see Alpine's Main menu (I deleted several blank lines of the output to save space): - ``` +----------------------------------------------------+ | ALPINE 2.24 MAIN MENU Folder: INBOX No Messages    | @@ -77,25 +76,24 @@ For now, just press lowercase **e** to exit from the greeting message. You shoul | For Copyright information press "?"                | |                                                    | | ? Help P PrevCmd R RelNotes                        | -| O OTHER CMDS > [ListFldrs] N NextCmd K KBLock      | +| O OTHER CMDS > [ListFldrs] N NextCmd K KBLock      | +----------------------------------------------------+ ``` -_Figure 1: Alpine's Main menu_ +*Figure 1: Alpine's Main menu* Alpine creates the `~mail` directory localhost during initial use. When you configure the IMAP server, Alpine creates the default `~/mail`, `~/mail/sent-mail`, and `saved-messages` folders in your home directory on the IMAP server. You can change the defaults, but I recommend against it. When using IMAP, emails are not stored locally unless you copy them to local folders. All emails are stored in the Inbox on the SMTP server until they are saved to a folder on the IMAP server. The SMTP and IMAP servers might use the same or different hosts. Alpine also assumes that the Inbox is located at `/var/spool/mail/user_name` on the email SMTP server. This article explains how to configure both IMAP and SMTP servers. The email administrator for your organization—that might be you—will add your account to the IMAP server and provide you with the initial password. -## The Alpine interface +### The Alpine interface The Alpine user interface (UI) is a text-mode, menu-driven UI, also known as a TUI. This type of interface is also sometimes called captive user interface (CUI), which does not provide a command-line interface that can be used in scripts, for example. You must exit from the program to perform other tasks. By contrast, the [mailx][5] program is an email program that can be used with either a TUI, from the command line, or in scripts. For example, you can use the following command to send the results of the free command directly to the sysadmin's email account: - ``` -`$ free | mailx -s "Free memory" sysadmin@example.com` +$ free | mailx -s "Free memory" sysadmin@example.com ``` But enough of that little side trip; there is work to do. Let's start with an explanation. @@ -106,20 +104,19 @@ On the Main menu, you can use the **Up** and **Down** arrow keys to highlight a Use the **Page Down** and **Page Up** keys to scroll through the commands if you can't see them all. The secondary menu at the bottom of the page usually lists all the commands available on the current menu; you will also see a message similar to this: - ``` -`[START of Information About Setup Command]` +[START of Information About Setup Command] ``` Should you find yourself at a place you don't want to be, such as creating a new email, responding to one, or making changes to settings, and decide you don't want to do that, **Ctrl+C** allows you to cancel the current task. In most cases, you will be asked to confirm that you want to cancel by pressing the **C** key. Note that **^C** in the secondary menu represents **Ctrl+C**. Many commands use the **Ctrl** key, so you will see **^** quite frequently on some menus. Finally, to quit Alpine, you can press **Q**; when it asks, "Really quit Alpine?" respond with **Y** to exit. Like many commands, **Q** is not available from all menus. -## Help +### Help Help is available from all of the menus I have tried. You can access detailed help for each menu item by highlighting the item you need information for and pressing the **?** key to obtain context-sensitive help. -## Configuration +### Configuration When I started using Alpine regularly, I made the minimum changes to the configuration needed to send and receive emails. As I gained more experience with Alpine, I changed other configuration items to make things work easier or more to my liking. @@ -127,100 +124,97 @@ First, I will explain the basic configurations required to make Alpine work, the If you have been exploring a bit on your own—which is a good thing—return to the Main menu. To get to Alpine's Configuration menu from the Main menu, type **S** for Setup. You will see a menu like this: - ``` -ALPINE 2.24 SETUP Folder: INBOX No Messages +ALPINE 2.24 SETUP Folder: INBOX No Messages -This is the Setup screen for Alpine. Choose from the following commands: +This is the Setup screen for Alpine. Choose from the following commands: -(E) Exit Setup: -This puts you back at the Main Menu. +(E) Exit Setup: +This puts you back at the Main Menu. -(P) Printer: -Allows you to set a default printer and to define custom -print commands. +(P) Printer: +Allows you to set a default printer and to define custom +print commands. -(N) Newpassword: -Change your password. +(N) Newpassword: +Change your password. -(C) Config: -Allows you to set or unset many features of Alpine. -You may also set the values of many options with this command. +(C) Config: +Allows you to set or unset many features of Alpine. +You may also set the values of many options with this command. -(S) Signature: -Enter or edit a custom signature which will -be included with each new message you send. +(S) Signature: +Enter or edit a custom signature which will +be included with each new message you send.   -(A) AddressBooks: -Define a non-default address book. +(A) AddressBooks: +Define a non-default address book.   -(L) collectionLists: -You may define groups of folders to help you better organize your mail. +(L) collectionLists: +You may define groups of folders to help you better organize your mail.   -(R) Rules: -This has up to six sub-categories: Roles, Index Colors, Filters, - [START of Information About Setup Command ] +(R) Rules: +This has up to six sub-categories: Roles, Index Colors, Filters, + [START of Information About Setup Command ] ? Help E Exit Setup N Newpassword S Signature L collectionList D Directory   O OTHER CMDS P Printer C Config A AddressBooks R Rules K Kolor ``` -_Figure 2: Alpine Setup menu_ +*Figure 2: Alpine Setup menu* The Setup menu groups the very large number of setup items into related categories to, hopefully, make the ones you want easier to locate. Use **Page Down** and **Page Up** to scroll through the commands if you can't see them all. I'll start with the settings necessary to get email—Alpine's entire purpose—up and running. -## Config +### Config The Config section contains 15 pages (on my large screen) of option- and feature-configuration items. These settings can be used to set up your SMTP and IMAP connections to the email server and define the way many aspects of Alpine work. In these examples, I'll use the `example.com` domain name (which is the virtual network I use for testing and experimenting). Alpine's configuration is stored in the `~/.pinerc` file, created the first time you start Alpine. The first page of the Setup Configuration menu contains most of the settings required to configure Alpine to send and receive email: - ``` ALPINE 2.24 SETUP CONFIGURATION Folder: INBOX No Messages -Personal Name = <No Value Set: using "Test User"> -User Domain = <No Value Set> -SMTP Server (for sending) = <No Value Set> -NNTP Server (for news) = <No Value Set> -Inbox Path = <No Value Set: using "inbox"> -Incoming Archive Folders = <No Value Set> -Pruned Folders = <No Value Set> -Default Fcc (File carbon copy) = <No Value Set: using "sent-mail"> -Default Saved Message Folder = <No Value Set: using "saved-messages"> -Postponed Folder = <No Value Set: using "postponed-msgs"> -Read Message Folder = <No Value Set> -Form Letter Folder = <No Value Set> -Trash Folder = <No Value Set: using "Trash"> -Literal Signature = <No Value Set> -Signature File = <No Value Set: using ".signature"> +Personal Name = +User Domain = +SMTP Server (for sending) = +NNTP Server (for news) = +Inbox Path = +Incoming Archive Folders = +Pruned Folders = +Default Fcc (File carbon copy) = +Default Saved Message Folder = +Postponed Folder = +Read Message Folder = +Form Letter Folder = +Trash Folder = +Literal Signature = +Signature File = Feature List = Set Feature Name -\--- ---------------------- +--- ---------------------- [ Composer Preferences ] [X] Allow Changing From (default) -[ ] Alternate Compose Menu -[ ] Alternate Role (#) Menu -[ ] Compose Cancel Confirm Uses Yes -[ ] Compose Rejects Unqualified Addresses -[ ] Compose Send Offers First Filter -[ ] Ctrl-K Cuts From Cursor -[ ] Delete Key Maps to Ctrl-D -[ ] Do Not Save to Deadletter on Cancel +[ ] Alternate Compose Menu +[ ] Alternate Role (#) Menu +[ ] Compose Cancel Confirm Uses Yes +[ ] Compose Rejects Unqualified Addresses +[ ] Compose Send Offers First Filter +[ ] Ctrl-K Cuts From Cursor +[ ] Delete Key Maps to Ctrl-D +[ ] Do Not Save to Deadletter on Cancel [Already at start of screen] -? Help E Exit Setup P Prev - PrevPage A Add Value % Print +? Help E Exit Setup P Prev - PrevPage A Add Value % Print O OTHER CMDS C [Change Val] N Next Spc NextPage D Delete Val W WhereIs ``` -_Figure 3: First page of Alpine's Setup Configuration menu_ +*Figure 3: First page of Alpine's Setup Configuration menu* This is where you define the parameters required to communicate with the email server. To change a setting, use the **Arrow** keys to move the selection bar to the desired configuration item and press **Enter**. You can see in Figure 3 that none of the basic configuration items have any values set. The **Personal Name** item uses the [Gecos field][6] of the Unix `/etc/passwd` entry for the logged-in user to obtain the default name. This is just a name Alpine uses for display and has no role in receiving or sending email. I usually call this the "pretty name." In this case, the default name is fine, so I will leave it as it is. -There are some configuration items that you must set. Start with the **User Domain**, which is the current computer's domain name. Mine is a virtual machine I use for testing and examples in my books. Use the command line to get the fully qualified domain name (FQDN) and the hostname. In Figure 4, you can see that the domain name is `example.com`: - +There are some configuration items that you must set. Start with the **User Domain**, which is the current computer's domain name. Mine is a virtual machine I use for testing and examples in my books. Use the command line to get the fully qualified domain name (FQDN) and the hostname. In Figure 4, you can see that the domain name is `example.com` : ``` $ hostnamectl @@ -236,117 +230,161 @@ Kernel: Linux 5.10.23-200.fc33.x86_64 Architecture: x86-64 ``` -_Figure 4: Obtaining the hostname and domain name_ - -Once you have the FQDN, select the **User Domain** entry and press **Enter** to see the entry field at the bottom of the Alpine screen (as shown in Figure 5). Type your domain name and press **Enter** (using _your_ network's domain and server names): +*Figure 4: Obtaining the hostname and domain name* +Once you have the FQDN, select the **User Domain** entry and press **Enter** to see the entry field at the bottom of the Alpine screen (as shown in Figure 5). Type your domain name and press **Enter** (using *your* network's domain and server names): ``` ALPINE 2.24 SETUP CONFIGURATION Folder: INBOX No Messages -Personal Name = <No Value Set: using "Test User"> -User Domain = <No Value Set> -SMTP Server (for sending) = <No Value Set> -NNTP Server (for news) = <No Value Set> -Inbox Path = <No Value Set: using "inbox"> -Incoming Archive Folders = <No Value Set> -Pruned Folders = <No Value Set> -Default Fcc (File carbon copy) = <No Value Set: using "sent-mail"> -Default Saved Message Folder = <No Value Set: using "saved-messages"> -Postponed Folder = <No Value Set: using "postponed-msgs"> -Read Message Folder = <No Value Set> -Form Letter Folder = <No Value Set> -Trash Folder = <No Value Set: using "Trash"> -Literal Signature = <No Value Set> -Signature File = <No Value Set: using ".signature"> +Personal Name = +User Domain = +SMTP Server (for sending) = +NNTP Server (for news) = +Inbox Path = +Incoming Archive Folders = +Pruned Folders = +Default Fcc (File carbon copy) = +Default Saved Message Folder = +Postponed Folder = +Read Message Folder = +Form Letter Folder = +Trash Folder = +Literal Signature = +Signature File = Feature List = Set Feature Name -\--- ---------------------- +--- ---------------------- [ Composer Preferences ] [X] Allow Changing From (default) -[ ] Alternate Compose Menu -[ ] Alternate Role (#) Menu -[ ] Compose Cancel Confirm Uses Yes -[ ] Compose Rejects Unqualified Addresses -[ ] Compose Send Offers First Filter -[ ] Ctrl-K Cuts From Cursor -[ ] Delete Key Maps to Ctrl-D -[ ] Do Not Save to Deadletter on Cancel -Enter the text to be added : example.com -^G Help +[ ] Alternate Compose Menu +[ ] Alternate Role (#) Menu +[ ] Compose Cancel Confirm Uses Yes +[ ] Compose Rejects Unqualified Addresses +[ ] Compose Send Offers First Filter +[ ] Ctrl-K Cuts From Cursor +[ ] Delete Key Maps to Ctrl-D +[ ] Do Not Save to Deadletter on Cancel +Enter the text to be added : example.com +^G Help ^C Cancel Ret Accept ``` -_Figure 5: Type the domain name into the text entry field._ +*Figure 5: Type the domain name into the text entry field.* -### Required config +#### Required config These are the basic configuration items you need to send and receive email: - * **Personal Name** - * Your name - * This is the pretty name Alpine uses for the From and Return fields in emails. - * **User Domain** - * `example.com:25/user=SMTP_Authentication_UserName` - * This is the email domain for your email client. This might be different from the User Domain name. This line also contains the SMTP port number and the user name for SMTP authentication. - * **SMTP server** - * SMTP - * This is the name of the outbound SMTP email server. It combines with the User Domain name to create the FQDN for the email server. - * **Inbox Path** - * `{IMAP_server)}Inbox` - * This is the name of the IMAP server enclosed in curly braces (`{}`) and the name of the Inbox. Note that this directory location is different from the inbound IMAP email. The usual location for the inbox on the server is `/var/spool/mail/user_name`. - * **Default Fcc** (file carbon copy) - * `{IMAP_server)}mail/sent` - * This is the mailbox (folder) where sent mail is stored. The default mail directory on the server is usually `~/mail`, but `mail/` must be specified in this and the next two entries, or the folders will be placed in the home directory instead. - * **Default Saved Message Folder** - * `{IMAP_server)}mail/saved-messages` - * This is the default folder when saving a message to a folder if you don't use `^t` to specify a different one. - * **Trash Folder** - * `{IMAP_server)}mail/Trash` - * **Literal Signature** - * A signature string - * I don't use this, but it's an easy place to specify a simple signature. - * **Signature File** - * `~/MySignature.sig` - * This points to the file that contains your signature file. +* Personal Name + * Your name + * This is the pretty name Alpine uses for the From and Return fields in emails. +* User Domain + * example.com:25/user=SMTP_Authentication_UserName + * This is the email domain for your email client. This might be different from the User Domain name. This line also contains the SMTP port number and the user name for SMTP authentication. +* * SMTP server +SMTP + * This is the name of the outbound SMTP email server. It combines with the User Domain name to create the FQDN for the email server. +* Inbox Path + * {IMAP_server)}Inbox + * This is the name of the IMAP server enclosed in curly braces ({}) and the name of the Inbox. Note that this directory location is different from the inbound IMAP email. The usual location for the inbox on the server is `/var/spool/mail/user_name`. +* Default Fcc (file carbon copy) + * {IMAP_server)}mail/sent + * This is the mailbox (folder) where sent mail is stored. The default mail directory on the server is usually `~/mail`, but `mail/` must be specified in this and the next two entries, or the folders will be placed in the home directory instead. +* Default Saved Message Folder + * {IMAP_server)}mail/saved-messages + * This is the default folder when saving a message to a folder if you don't use `^t` to specify a different one. +* Trash Folder + * {IMAP_server)}mail/Trash +* Literal Signature + * A signature string + * I don't use this, but it's an easy place to specify a simple signature. +* Signature File + * ~/MySignature.sig + * This points to the file that contains your signature file. - - -### Optional config +#### Optional config Here are the features I changed to make Alpine work more to my liking. They are not about getting Alpine to send and receive email, but about making Alpine work the way you want it to. Unless otherwise noted, I turned all of these features on. Features that are turned on by default have the string `(default)` next to them in the Alpine display. Because they are already turned on, I will not describe them. - * **Alternate Role (`#`) Menu:** This allows multiple identities using different email addresses on the same client and server. The server must be configured to allow multiple addresses to be delivered to your primary email account. - * **Compose Rejects Unqualified Addresses:** Alpine will not accept an address that is not fully qualified. That is, it must be in the form ``. - * **Enable Sigdashes:** This enables Alpine to automatically add dashes (`--`) in the row just above the signature. This is a common way of delineating the start of the signature. - * **Prevent User Lookup in Password File:** This prevents the lookup of the full user name from the Gecos field of the passwd file. - * **Spell Check Before Sending:** Although you can invoke the spell checker at any time while composing an email, this forces a spell check when you use the `^X` keystroke to send an email. - * **Include Header in Reply:** This includes a message's headers when you reply. - * **Include Text in Reply:** This includes the text of the original message in your reply. - * **Signature at Bottom:** Many people prefer to have their signature at the very bottom of the email. This setting changes the default, which puts the signature at the end of the reply and before the message being replied to. - * **Preserve Original Fields:** This preserves the original addresses in the **To:** and **CC:** fields when you reply to a message. If this feature is disabled when you reply to a message, the original sender is added to the **To:** field, all other recipients are added to the **CC:** field, and your address is added to the **From:** field. - * **Enable Background Sending:** This speeds the Alpine user interface response when sending an email. - * **Enable Verbose SMTP Posting:** This produces more verbose information during SMTP conversations with the server. It is a problem-determination aid for the sysadmin. - * **Warn if Blank Subject:** This prevents sending emails with no subject. - * **Combined Folder Display:** This combines all folder collections into a single main display. Otherwise, collections will be in separate views. - * **Combined Subdirectory Display:** This combines all subdirectories' collections into a single main display. Otherwise, subdirectories will be in separate views. This is useful when searching for a subdirectory to attach or save files. - * **Enable Incoming Folders Collection:** This lists all incoming folders in the same collection as the Inbox. Incoming folders can be used with a tool like procmail to presort email into folders other than the Inbox and makes it easier to see the folders where new emails are sorted. - * **Enable Incoming Folders Checking:** This enables Alpine to check for new emails in the incoming folders collection. - * **Incoming Checking Includes Total:** This displays the number of old and new emails in the incoming folders. - * **Expanded View of Folders:** This displays all folders in each collection when you view the **Folder List** screen. Otherwise, only the collections are shown, and the folders are not shown until selected. - * **Separate Folder and Directory Entries:** If your mail directory has email folders and regular directories that use the same name, this causes Alpine to list them separately. - * **Use Vertical Folder List:** This sorts mail folders vertically first and then horizontally. The default is horizontal, then vertical. - * **Convert Dates To Localtime:** By default, all dates and times are displayed in their originating time zones. This converts the dates to display in local time. - * **Show Sort in Titlebar:** Alpine can sort emails in a mail folder using multiple criteria. This causes the sort criteria to be displayed in the title bar. - * **Enable Message View Address Links:** This highlights email addresses in the body of the email. - * **Enable Message View Attachment Links:** This highlights URL links in the body of the email. - * **Prefer Plain Text:** Many emails contain two versions, plain text and HTML. When this feature is turned on, Alpine always displays the plain text version. You can use the **A** key to toggle to the "preferred" version, usually the HTML one. I usually find the plain text easier to visualize the structure of and read the email. This can depend upon the sending client, so I use the **A** key when needed. - * **Enable Print Via Y Command:** This prints a message using the previous default, **Y**. Because **Y** is also used to confirm many commands, the keystroke can inadvertently cause you to print a message. The new default is **%** to prevent accidental printing. I like the ease of using **Y**, but it has caused some extra print jobs, so I am thinking about turning this feature off. - * **Print Formfeed Between Messages:** This prints each message on a new sheet of paper. - * **Customized Headers:** Customized headers enables overriding the default **From:** and **Reply-To:** headers. I set mine to: [code] -   From: "David Both" <[[david@example.com][7]](mailto:[david@both.org][8])> -\-   Reply-To: "David Both" -    <[[david@example.com][7]](mailto:[david@both.org][8])> +* Alternate Role (#) Menu: This allows multiple identities using different email addresses on the same client and server. The server must be configured to allow multiple addresses to be delivered to your primary email account. +* Compose Rejects Unqualified Addresses: Alpine will not accept an address that is not fully qualified. That is, it must be in the form ``. +* Enable Sigdashes: This enables Alpine to automatically add dashes (--) in the row just above the signature. This is a common way of delineating the start of the signature. +* Prevent User Lookup in Password File: This prevents the lookup of the full user name from the Gecos field of the passwd file. +* Spell Check Before Sending: Although you can invoke the spell checker at any time while composing an email, this forces a spell check when you use the `^X` keystroke to send an email. +* Include Header in Reply: This includes a message's headers when you reply. +* Include Text in Reply: This includes the text of the original message in your reply. +* Signature at Bottom: Many people prefer to have their signature at the very bottom of the email. This setting changes the default, which puts the signature at the end of the reply and before the message being replied to. +* Preserve Original Fields: This preserves the original addresses in the To: and CC: fields when you reply to a message. If this feature is disabled when you reply to a message, the original sender is added to the To: field, all other recipients are added to the CC: field, and your address is added to the From: field. +* Enable Background Sending: This speeds the Alpine user interface response when sending an email. +* Enable Verbose SMTP Posting: This produces more verbose information during SMTP conversations with the server. It is a problem-determination aid for the sysadmin. +* Warn if Blank Subject: This prevents sending emails with no subject. +* Combined Folder Display: This combines all folder collections into a single main display. Otherwise, collections will be in separate views. +* Combined Subdirectory Display: This combines all subdirectories' collections into a single main display. Otherwise, subdirectories will be in separate views. This is useful when searching for a subdirectory to attach or save files. +* Enable Incoming Folders Collection: This lists all incoming folders in the same collection as the Inbox. Incoming folders can be used with a tool like procmail to presort email into folders other than the Inbox and makes it easier to see the folders where new emails are sorted. +* Enable Incoming Folders Checking: This enables Alpine to check for new emails in the incoming folders collection. +* Incoming Checking Includes Total: This displays the number of old and new emails in the incoming folders. +* Expanded View of Folders: This displays all folders in each collection when you view the Folder List screen. Otherwise, only the collections are shown, and the folders are not shown until selected. +* Separate Folder and Directory Entries: If your mail directory has email folders and regular directories that use the same name, this causes Alpine to list them separately. +* Use Vertical Folder List: This sorts mail folders vertically first and then horizontally. The default is horizontal, then vertical. +* Convert Dates To Localtime: By default, all dates and times are displayed in their originating time zones. This converts the dates to display in local time. +* Show Sort in Titlebar: Alpine can sort emails in a mail folder using multiple criteria. This causes the sort criteria to be displayed in the title bar. +* Enable Message View Address Links: This highlights email addresses in the body of the email. +* Enable Message View Attachment Links: This highlights URL links in the body of the email. +* Prefer Plain Text: Many emails contain two versions, plain text and HTML. When this feature is turned on, Alpine always displays the plain text version. You can use the A key to toggle to the "preferred" version, usually the HTML one. I usually find the plain text easier to visualize the structure of and read the email. This can depend upon the sending client, so I use the A key when needed. +* Enable Print Via Y Command: This prints a message using the previous default, Y. Because Y is also used to confirm many commands, the keystroke can inadvertently cause you to print a message. The new default is % to prevent accidental printing. I like the ease of using Y, but it has caused some extra print jobs, so I am thinking about turning this feature off. +* Print Formfeed Between Messages: This prints each message on a new sheet of paper. +* Customized Headers: Customized headers enables overriding the default From: and Reply-To: headers. I set mine to: +-   From: "David Both" <[david@example.com](mailto:david@both.org)> +-   Reply-To: "David Both" +    <[david@example.com](mailto:david@both.org)> +* Sort key: By default, Alpine sorts messages in a folder by arrival time. I found this to be a bit confusing, so I changed it to Date, which can be significantly different from arrival time. Many spammers use dates and times in the past or future, so this setting can sort the future ones to the top of the list (or bottom, depending on your preferences for forward or reverse sorts). +* Image Viewer: This feature allows you to specify the image viewer to use when displaying graphics attached to or embedded in an email. This only works when using Alpine in a terminal window on the graphical desktop. It will not work in a text-only virtual console. I always set this to `=okular` because [Okular][7] is my preferred viewer. +* URL-Viewer: This tells Alpine what web browser you want to use. I set this for `= /bin/firefox` but you could use Chrome or another browser. Be sure to verify the location of the Firefox executable. + +#### Printing + +It is easy to set up Alpine for printing. Select the **Printer** menu from the **Setup** page. This allows you to set a default printer and define custom print commands. The default is probably `attached-to-ansi`. Move the cursor down to the **Standard UNIX print command** section and highlight the printer list. + ``` - * **Sort key:** By default, Alpine sorts messages in a folder by arrival time. I found this to be a bit confusing, so I changed it to **Date**, which can be significantly different from arrival time. Many spammers use dates and times in the past or future, so this setting can sort the future ones to the top of the list (or bottom, depending on your preferences for forward or reverse sorts). - * **Image Viewer:** This feature allows you to specify the image viewer to use when displaying graphics attached to or embedded in an email. This only works when using Alpine in a terminal window on the graphical desktop. It will not work in a text-only virtual console. I always set this to `=okular` because [Okular][9] is my preferred viewer. - * **URL-Viewer:** This tells Alpine what web browser you \ No newline at end of file +Standard UNIX print command + +Using this option may require setting your "PRINTER" or "LPDEST" + +environment variable using the standard UNIX utilities. + +Printer List: "" lpr +``` + +Then press the **Enter** key to set the standard Unix **lpr** command as the default. + +### Final thoughts + +This is not a step-by-step guide to Alpine configuration and use. Rather, I tried to cover the basics to get it up and running to send and receive email. I also shared some configuration changes that have made my Alpine experience much more usable. These are the configuration items that I've found most important to my experience; you may find that others are more important to you. + +I have been using Alpine for several months now and am very happy with the experience. The text interface helps me concentrate on the message and not the distracting graphics and animations. I can view those if I choose, but 99% of the time, I choose not to. + +Alpine is easy to use and has a huge number of features that can be configured to give the best email client experience possible. + +Use the **Help** feature to get more information about the fields I explored above and those that I did not cover. You will undoubtedly find ways to configure Alpine that work better for you than the defaults or what I changed. I hope this will at least give you a start to set up Alpine the way you want. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/alpine-linux-email + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/email_chat_communication_message.png +[2]: https://www.thunderbird.net/en-US/ +[3]: https://alpine.x10host.com/ +[4]: https://opensource.com/article/17/10/alpine-email-client +[5]: https://linux.die.net/man/1/mailx +[6]: https://en.wikipedia.org/wiki/Gecos_field +[7]: https://okular.kde.org/ From d6b52ccb34d8e70de4cc4bb26e53e8c5ed3ee26e Mon Sep 17 00:00:00 2001 From: Donkey-Hao Date: Thu, 23 Jun 2022 15:49:53 +0800 Subject: [PATCH 0085/3123] translated --- ...s-free steps to tackling your task list.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 translated/tech/20210124 3 stress-free steps to tackling your task list.md diff --git a/translated/tech/20210124 3 stress-free steps to tackling your task list.md b/translated/tech/20210124 3 stress-free steps to tackling your task list.md new file mode 100644 index 0000000000..4f741f5a00 --- /dev/null +++ b/translated/tech/20210124 3 stress-free steps to tackling your task list.md @@ -0,0 +1,70 @@ +[#]: collector: (lujun9972) +[#]: translator: (Donkey) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (3 stress-free steps to tackling your task list) +[#]: via: (https://opensource.com/article/21/1/break-down-tasks) +[#]: author: (Kevin Sonney https://opensource.com/users/ksonney) + +轻松解决你的任务清单的三个步骤 +====== +将你的大任务分为小步骤,避免自己不堪重负。 +![Team checklist][1] + +去年,这个年度系列文章覆盖了个人应用。今年,除了在 2021 年提供帮助的策略外,我们还在寻找一体化解决方案。欢迎来到 2021 年 21 天生产力的第 14 天。 + +本周开始,我先回顾我的日程安排,看看我需要或想要完成的事情。通常,列表上有些较大的项目。无论来自工作上的问题,一系列关于生产力的文章,或者改进鸡舍,当作为一项工作时,这个任务真的很艰巨。很有可能在一个时间段我不能坐下来,甚至在一天内完成类似(例如,请注意)21 篇文章之类的事情。 + +![21 Days of Productivity project screenshot][2] + +21 天的生产力 (Kevin Sonney, [CC BY-SA 4.0][3]) + +所以当我的清单上有这样的东西时,我做的第一件事就是把它分解成更小的部分。如著名的诺贝尔文学奖得主 [William Faulkner][4] 说的“移山的人,从小石头开始。”(译注:感觉与“千里之行,始于足下”是一个意思) 我们要解决大任务(山)并且需要完成各个步骤(小石头)。 + + +我使用下面的步骤将大任务分割为小步骤: + + 1. 我通常很清楚完成一项任务需要做什么。 如果没有,我会做一些研究来弄清楚这一点。 + 2. 我会顺序的写下完成的步骤。 + 3. 最后,我坐下来拿着我的日历和清单,开始将任务分散到几天(或几周或几个月),以了解我何时可以完成它。 + + +现在我不仅有计划还知道多久能完成。逐步完成,我可以看到这项大任务不仅变得更小,而且更接近完成。 + +军队有句古话,“遇敌无计”。 几乎可以肯定的是,有一两点(或五点)我意识到像“截屏”这样简单的事情需要扩展到更复杂的事情。 事实上,在 [Easy!Appointments][5] 的截图中,竟然是: + + 1. 安装和配置 Easy!Appointments + 2. 安装和配置 Easy!Appointments WordPress 插件 + 3. 生成 API 密钥来同步日历 + 4. 截屏 + + + +即便如此,我也不得不将这些任务分解成更小的部分——下载软件、配置 NGINX、验证安装……你明白了。 没关系。 一个计划或一组任务不是一成不变的,可以根据需要进行更改。 + +![project completion pie chart][6] + +今年的计划已经完成了 2/3 ! (Kevin Sonney, [CC BY-SA 4.0][3]) + +这是一项后天习得的技能,最初几次需要一些努力。学习如何将大任务分解成更小的步骤可以让您跟踪实现目标或完成大任务的进度,而不会在过程中不知所措。 + +-------------------------------------------------------------------- + +via: https://opensource.com/article/21/1/break-down-tasks + +作者:[Kevin Sonney][a] +选题:[lujun9972][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/ksonney +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist) +[2]: https://opensource.com/sites/default/files/day14-image1.png +[3]: https://creativecommons.org/licenses/by-sa/4.0/ +[4]: https://en.wikipedia.org/wiki/William_Faulkner +[5]: https://opensource.com/article/21/1/open-source-scheduler +[6]: https://opensource.com/sites/default/files/day14-image2_1.png From 030a44e1594c623aef53876d6209b87fb91294c2 Mon Sep 17 00:00:00 2001 From: Donkey-Hao Date: Thu, 23 Jun 2022 15:51:18 +0800 Subject: [PATCH 0086/3123] translated --- ...s-free steps to tackling your task list.md | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 sources/tech/20210124 3 stress-free steps to tackling your task list.md diff --git a/sources/tech/20210124 3 stress-free steps to tackling your task list.md b/sources/tech/20210124 3 stress-free steps to tackling your task list.md deleted file mode 100644 index 8e45208a9d..0000000000 --- a/sources/tech/20210124 3 stress-free steps to tackling your task list.md +++ /dev/null @@ -1,70 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (Donkey) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (3 stress-free steps to tackling your task list) -[#]: via: (https://opensource.com/article/21/1/break-down-tasks) -[#]: author: (Kevin Sonney https://opensource.com/users/ksonney) - -3 stress-free steps to tackling your task list -====== -Break your larger tasks into small steps to keep from being overwhelmed. -![Team checklist][1] - -In prior years, this annual series covered individual apps. This year, we are looking at all-in-one solutions in addition to strategies to help in 2021. Welcome to day 14 of 21 Days of Productivity in 2021. - -At the start of the week, I like to review my schedule and look at the things I either need or would like to accomplish. And often, there are some items on that list that are relatively big. Whether it is an issue for work, a series of articles on productivity, or maybe an improvement to the chicken enclosures, the task can seem really daunting when taken as a single job. The odds are good that I will not be able to sit down and finish something like (just as an example, mind you) 21 articles in a single block of time, or even a single day. - -![21 Days of Productivity project screenshot][2] - -21 Days of Productivity (Kevin Sonney, [CC BY-SA 4.0][3]) - -So the first thing I do when I have something like this on my list is to break it down into smaller pieces. As Nobel laureate [William Faulkner][4] famously said, "The man who removes a mountain begins by carrying away small stones." We need to take our big tasks (the mountain) and find the individual steps (the small stones) that need to be done. - -I use the following steps to break down my big tasks into little ones: - - 1. I usually have a fair idea of what needs to be done to complete a task. If not, I do a little research to figure that out. - 2. I write down the steps I think it will take, in order. - 3. Finally, I sit down with my calendar and the list and start to spread the tasks out across several days (or weeks, or months) to get an idea of when I might finish it. - - - -Now I have not only a plan but an idea of how long it is going to take. As I complete each step, I can see that big task get not only a little smaller but closer to completion. - -There is an old military saying that goes, "No plan survives contact with the enemy." It is almost certain that there will be a point or two (or five) where I realize that something as simple as "take a screenshot" needs to be expanded into something _much_ more complex. In fact, taking the screenshots of [Easy!Appointments][5] turned out to be: - - 1. Install and configure Easy!Appointments. - 2. Install and configure the Easy!Appointments WordPress plugin. - 3. Generate the API keys needed to sync the calendar. - 4. Take screenshots. - - - -Even then, I had to break these tasks down into smaller pieces—download the software, configure NGINX, validate the installs…you get the idea. And that's OK. A plan, or set of tasks, is not set in stone and can be changed as needed. - -![project completion pie chart][6] - -About 2/3 done for this year! (Kevin Sonney, [CC BY-SA 4.0][3]) - -This is a learned skill and will take some effort the first few times. Learning how to break big tasks into smaller steps allows you to track progress towards a goal or completion of something big without getting overwhelmed in the process. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/1/break-down-tasks - -作者:[Kevin Sonney][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/ksonney -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist) -[2]: https://opensource.com/sites/default/files/day14-image1.png -[3]: https://creativecommons.org/licenses/by-sa/4.0/ -[4]: https://en.wikipedia.org/wiki/William_Faulkner -[5]: https://opensource.com/article/21/1/open-source-scheduler -[6]: https://opensource.com/sites/default/files/day14-image2_1.png From 2b10ff2097627bca9f9d7a70c4744130e3d497e3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 23 Jun 2022 17:28:48 +0800 Subject: [PATCH 0087/3123] RP @lkxed https://linux.cn/article-14746-1.html --- ... Runs on a Google Nest Hub, Wait, What-.md | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) rename {translated/news => published}/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md (62%) diff --git a/translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md similarity index 62% rename from translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md rename to published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md index 760f73b485..16d1551732 100644 --- a/translated/news/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md +++ b/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md @@ -3,35 +3,36 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14746-1.html" -Ubuntu 在 Google Nest Hub 上运行,等等,什么? +Ubuntu 可以运行在谷歌 Nest Hub 上吗?! ====== -一名黑客成功地在 Google Nest Hub(第二代)上运行了 Ubuntu,嗯,然后呢? + +> 一名安全专家成功地在谷歌 Nest Hub(第 2 代)上运行了 Ubuntu,嗯,然后呢? ![Ubuntu Google][1] -我刚刚看到了一个关于在 Google Nest Hub(第二代)上运行的 Ubuntu 的故事。 +我刚刚看到了一个关于在谷歌 Nest Hub(第 2 代)上运行的 Ubuntu 的消息。 嗯,这实在是让人兴奋! 所以,让我在这里分享更多关于它的信息吧。 -### 破解 Google Nest Hub 以安装 Ubuntu +### 破解谷歌 Nest Hub 以安装 Ubuntu -是的,一次黑客攻击使这成为可能。 +是的,破解使得这成为可能。 -网络安全专家 **Frédéric Basse** 破解了 Google Nest Hub(第 2 代)的安全启动,并成功运行 Ubuntu。 +网络安全专家 Frédéric Basse 破解了谷歌 Nest Hub(第 2 代)的安全启动,并成功运行 Ubuntu。 -当然,Google Nest Hub 并没有正式支持启动一个自定义操作系统。但是,Fred 使用了一个安全漏洞,从而成功运行了 Ubuntu。 +当然,谷歌 Nest Hub 并没有正式支持启动一个自定义操作系统。但是,Fred 使用了一个安全漏洞,从而成功运行了 Ubuntu。 -虽然这很有趣,但对于始终连接的谷歌智能家居显示器来说,这也是一个严重的问题。 +虽然这很有趣,但对于始终在线的谷歌智能家居显示器来说,这也是一个严重的安全问题。 -正如他在 [博客文章][2] 中所解释的,黑客使用了 Raspberry Pi Pico 微控制器,利用引导加载程序中的 USB 漏洞,从而破坏了安全启动链。 +正如这位安全专家在 [博客文章][2] 中所解释的,他使用了树莓派 Pico 微控制器,利用引导加载程序中的 USB 漏洞,从而破坏了安全启动链。 -安全专家得出结论: +这位安全专家得出结论: > 因此,攻击者可以通过插入恶意 USB 设备并按下两个按钮,从而在早期启动阶段(内核执行之前)执行任意代码。 @@ -41,21 +42,21 @@ Ubuntu 在 Google Nest Hub 上运行,等等,什么? ![][4] -该漏洞允许攻击者启动未签名的操作系统。但是,在那之前,攻击者必须对为 Raspberry Pi(64 位 ARM)量身定制的预装 Ubuntu 镜像进行一些修改。 +该漏洞允许攻击者启动未签名的操作系统。但是,在那之前,攻击者必须对为树莓派(64 位 ARM 版)量身定制的预装 Ubuntu 镜像进行一些修改。 -攻击者还提到了以下内容: +这位安全专家还提到了以下内容: -> 我们构建了一个自定义 U-Boot 引导加载程序,禁用了安全引导,并更改了引导流程以从 USB 闪存驱动器加载环境。我们还为 elaine 构建了一个自定义 Linux 内核,其中包括包括了一些 [额外驱动,例如 USB 鼠标][5] 。来自 Ubuntu 的初始 ramdisk(initrd)被重新打包,以集成触摸屏所需的固件二进制文件。引导镜像是基于自定义 Linux 内核和修改的 initrd 创建的。 +> 我们构建了一个自定义 U-Boot 引导加载程序,禁用了安全引导,并更改了引导流程以从 USB 闪存驱动器加载环境。我们还为 elaine 构建了一个自定义 Linux 内核,其中包括包括了一些 [额外驱动,例如 USB 鼠标][5] 。重新打包了来自 Ubuntu 的初始 ramdisk(initrd),以集成触摸屏所需的固件二进制文件。引导镜像是基于自定义 Linux 内核和修改的 initrd 创建的。 -因此,很明显,你不会获得完整的 Ubuntu 体验,但由于该漏洞,我们现在知道,如果你愿意破解 Google Nest 进行测试的话,Ubuntu 是可以在 Google Nest 上作运行的,作为一个实验(不要那样做,真的!)。 +因此,很明显,你不会获得完整的 Ubuntu 体验,但由于该漏洞,我们现在知道,如果你愿意破解 谷歌 Nest 进行测试的话(真心不建议!),Ubuntu 是可以在谷歌 Nest 上作运行的。 ### 智能家居安全担忧 + Linux -网络安全专家指出,该漏洞已在上游修复(两次)。 +网络安全专家指出,该漏洞已在上游(两次)修复。 -但是,研究人员也指出,缺乏 CVE 可能会导致修复程序无法向下游传播。 +但是,研究人员也指出,缺乏分配的 CVE 编号可能会导致修复程序无法向下游传播。 -毫无疑问,看到有人在不受支持的设备上运行 Linux 真是太棒了。这让我思考,我们是否应该也制造一些**由 Linux 驱动的商业智能家居设备?** +毫无疑问,看到有人在不受支持的设备上运行 Linux 真是太棒了。这让我思考,我们是否应该也制造一些 **由 Linux 驱动的商业智能家居设备?** *或者说,已经有类似的东西了吗?* @@ -72,7 +73,7 @@ via: https://news.itsfoss.com/ubuntu-google-nest/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 91e732468042d782fb7b43730b2ed6a3a6a1f356 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 23 Jun 2022 17:31:12 +0800 Subject: [PATCH 0088/3123] R --- .../20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md index 16d1551732..21c2ea5170 100644 --- a/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md +++ b/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md @@ -30,6 +30,8 @@ Ubuntu 可以运行在谷歌 Nest Hub 上吗?! 虽然这很有趣,但对于始终在线的谷歌智能家居显示器来说,这也是一个严重的安全问题。 +![](https://news.itsfoss.com/wp-content/uploads/2022/06/ubuntu-google-nest-hacked.gif) + 正如这位安全专家在 [博客文章][2] 中所解释的,他使用了树莓派 Pico 微控制器,利用引导加载程序中的 USB 漏洞,从而破坏了安全启动链。 这位安全专家得出结论: From 2a989bb23b99d47f5de0d9a786c07f115dc3459a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 23 Jun 2022 17:34:38 +0800 Subject: [PATCH 0089/3123] R --- .../20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md index 21c2ea5170..922e3169ab 100644 --- a/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md +++ b/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md @@ -7,7 +7,7 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-14746-1.html" -Ubuntu 可以运行在谷歌 Nest Hub 上吗?! +Ubuntu 可以运行在谷歌 Nest Hub 上了?! ====== > 一名安全专家成功地在谷歌 Nest Hub(第 2 代)上运行了 Ubuntu,嗯,然后呢? From d57d535553dccb492e12e18c4093c31885db88b7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 23 Jun 2022 18:02:16 +0800 Subject: [PATCH 0090/3123] P @lkxed @turbokernel https://linux.cn/article-14747-1.html --- ...- a nice way to set up a dev environment.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) rename {translated/tech => published}/20210104 Docker Compose- a nice way to set up a dev environment.md (95%) diff --git a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/published/20210104 Docker Compose- a nice way to set up a dev environment.md similarity index 95% rename from translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md rename to published/20210104 Docker Compose- a nice way to set up a dev environment.md index e0e52fe529..fd2ddc9846 100644 --- a/translated/tech/20210104 Docker Compose- a nice way to set up a dev environment.md +++ b/published/20210104 Docker Compose- a nice way to set up a dev environment.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (lkxed) [#]: reviewer: (turbokernel) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14747-1.html) [#]: subject: (Docker Compose: a nice way to set up a dev environment) [#]: via: (https://jvns.ca/blog/2021/01/04/docker-compose-is-nice/) [#]: author: (Julia Evans https://jvns.ca/) @@ -10,6 +10,8 @@ Docker Compose:搭建开发环境的好方式 ====== +![](https://img.linux.net.cn/data/attachment/album/202206/23/180033lpg4v4bz0bbb1719.jpg) + 大家好!我又写了一篇关于 [我最喜欢的电脑工具][1] 的文章。这一篇讲的是 Docker Compose! 本文主要就是讲一讲我对 Docker Compose 有多么满意啦(不讨论它的缺点)!咳咳,因为它总能够完成它该做的,并且似乎总能有效,更棒的是,它的使用还非常简单。另外,在本文中,我只讨论我是如何用 Docker Compose 来搭建开发环境的,而不涉及它在生产中的使用。 @@ -24,7 +26,7 @@ Docker Compose:搭建开发环境的好方式 * 一个 Nginx 服务器 * 一个 Rails 服务 - * 一个 Go 服务 (使用了 [gotty][2] 来代理一些 SSH 连接) + * 一个 Go 服务(使用了 [gotty][2] 来代理一些 SSH 连接) * 一个 Postgres 数据库 在本地搭建 Rails 服务非常简单,用不着容器(我只需要安装 Postgres 和 Ruby 就行了,小菜一碟)。但是,我还想要把匹配 `/proxy/*` 的请求的发送到 Go 服务,其他所有请求都发送到 Rails 服务,所以需要借助 Nginx。问题来了,在笔记本电脑上安装 Nginx 对我来说太麻烦了。 @@ -120,11 +122,11 @@ $ dig +short @127.0.0.11 go_server **第一步:**:使用 `ps aux | grep puma`,获取 Rails 服务的进程 ID。 -找到了,它是 `1837916`!感觉不错哦~ +找到了,它是 `1837916`!简单~ **第二步:**:找到和 `1837916` 运行在同一个网络命名空间的 UDP 服务。 -我使用了 `nsenter` 来在 `puma` 进程的网络命令空间内运行 `netstat`(理论上,我猜想你也可以使用 `netstat -tupn` 来只显示 UDP 服务,但此时,我的手指头只会打出 `netstat -tulpn`)。 +我使用了 `nsenter` 来在 `puma` 进程的网络命令空间内运行 `netstat`(理论上,我猜想你也可以使用 `netstat -tupn` 来只显示 UDP 服务,但此时,我的手指头只习惯于打出 `netstat -tulpn`)。 ``` $ sudo nsenter -n -t 1837916 netstat -tulpn @@ -196,7 +198,7 @@ IRB.conf[:HISTORY_FILE] = "/app/tmp/irb_history" ### 我还是不知道它在生产环境的表现如何 -到目前为止,这个项目的生产环境搭建进度,还停留在“我制作了一个 digitalocean droplet(LCCT 译注:一种 Linux 虚拟机服务),并手工编辑了很多文件”的阶段。 +到目前为止,这个项目的生产环境搭建进度,还停留在“我制作了一个 DigitalOcean droplet(LCCT 译注:一种 Linux 虚拟机服务),并手工编辑了很多文件”的阶段。 嗯……我相信以后会在生产环境中使用 docker-compose 来运行一下它的。我猜它能够正常工作,因为这个服务很可能最多只有两个用户在使用,并且,如果我愿意,我可以容忍它在部署过程中有 60 秒的不可用时间。不过话又说回来,出错的往往是我想不到的地方。 @@ -204,9 +206,9 @@ IRB.conf[:HISTORY_FILE] = "/app/tmp/irb_history" * `docker-compose up` 只会重启那些需要重启的容器,这会让重启速度更快。 * 有一个 Bash 小脚本 [wait-for-it][3],你可以用它来保持等待一个容器,直到另一个容器的服务可用。 - * 你可以准备两份 `docker-compose.yaml` 文件:用于开发环境的 `docker-compose.yaml` 和 用于生产环境的 `docker-compose-prod.yaml`。我想我会在分别为 Nginx 指定不同的端口:开发时使用 `8999`,生产中使用 `80`。 + * 你可以准备两份 `docker-compose.yaml` 文件:用于开发环境的 `docker-compose.yaml` 和用于生产环境的 `docker-compose-prod.yaml`。我想我会在分别为 Nginx 指定不同的端口:开发时使用 `8999`,生产中使用 `80`。 * 人们似乎一致认为,如果你的项目是一台计算机上运行的小网站,那么 docker-compose 在生产中不会有问题。 - * 有个人建议说,如果愿意在生产环境搭建复杂那么一丢丢,Docker Swarm 就或许会是更好的选择,不过我还没试过(当然,如果要这么说的话,干嘛不用 Kubernetes 呢?Docker Compose 的意义就是它超级简单,而 Kubernetes 肯定不简单 :))。 + * 有个人建议说,如果愿意在生产环境搭建复杂那么一丢丢,Docker Swarm 就或许会是更好的选择,不过我还没试过(当然,如果要这么说的话,干嘛不用 Kubernetes 呢?Docker Compose 的意义就是它超级简单,而 Kubernetes 肯定不简单 : ))。 Docker 似乎还有一个特性,它能够 [把你用 docker-compose 搭建的环境,自动推送到弹性容器服务(ESC)上][4],听上去好酷的样子,但是我还没有试过。 From 7aa3fe58eaf6e716c09902094860061e035ff97b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 23 Jun 2022 18:30:05 +0800 Subject: [PATCH 0091/3123] RP @geekpi https://linux.cn/article-14748-1.html --- ... Images in Linux Easily With Curtail GUI App.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) rename {translated/tech => published}/20220620 Compress Images in Linux Easily With Curtail GUI App.md (90%) diff --git a/translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md b/published/20220620 Compress Images in Linux Easily With Curtail GUI App.md similarity index 90% rename from translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md rename to published/20220620 Compress Images in Linux Easily With Curtail GUI App.md index ce294131c2..46b8ad5ca9 100644 --- a/translated/tech/20220620 Compress Images in Linux Easily With Curtail GUI App.md +++ b/published/20220620 Compress Images in Linux Easily With Curtail GUI App.md @@ -3,14 +3,16 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14748-1.html" 用 Curtail GUI 应用轻松压缩 Linux 中的图像 ====== -有一大堆文件大小的图片占用了太多的磁盘空间?或者你必须将图片上传到有文件大小限制的门户网站? +![](https://img.linux.net.cn/data/attachment/album/202206/23/182901s4d060uu98g8qquv.jpg) + +有一大堆文件尺寸巨大的图片占用了太多的磁盘空间?或者你必须将图片上传到有文件大小限制的门户网站? 你可能有很多原因想要压缩图片。有大量的工具可以帮助你,我在这里说的不是命令行的工具。 @@ -56,7 +58,7 @@ flatpak install flathub com.github.huluti.Curtail 正如你在上面的图片中看到的,我的一张图片的尺寸减少了 35%,另外两张图片的尺寸减少了 3% 和 8%。这是在无损压缩的情况下。 -这些图片以 -min 为后缀(默认),保存在与原始图片相同的目录中。 +这些图片以 `-min` 为后缀(默认),保存在与原始图片相同的目录中。 虽然它看起来很简约,但有几个选项可以配置 Curtail。点击菜单,你会看到一些设置选项。 @@ -87,7 +89,7 @@ via: https://itsfoss.com/curtail-image-compress/ 作者:[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/) 荣誉推出 From 8617973d8e96df0275ef39eb697292a5ebf88e58 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Thu, 23 Jun 2022 22:00:13 +0800 Subject: [PATCH 0092/3123] =?UTF-8?q?=E6=B8=85=E7=90=86=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lem with the Julia programming language.md | 108 ++-- ...assistant with the voice of your choice.md | 511 +++++++++--------- ...rial for using the GNU Project Debugger.md | 443 ++++++--------- ...rnetes files for errors with KubeLinter.md | 201 ++++--- ...ow I programmed a virtual gift exchange.md | 306 +++++------ ...ntroduction to Thunderbird mail filters.md | 148 +++-- ...Khan, Kernel Maintainer & Linux Fellow.md} | 95 ++-- ... and interfaces in software development.md | 2 +- ...ss requirements in software development.md | 2 +- ... Aarch64 on the SolidRun HoneyComb LX2K.md | 2 +- ...ulti-tenancy with Kubernetes namespaces.md | 8 +- ...Mandelbrot fractals with GIMP scripting.md | 164 +++--- ... step-by-step guide to Knative eventing.md | 183 +++---- ... steps to set up global modals in React.md | 159 +++--- ... started with Java serverless functions.md | 162 +++--- ...sing and Customizing the Dock in Ubuntu.md | 253 +++++++++ 16 files changed, 1377 insertions(+), 1370 deletions(-) rename sources/tech/{20210128 Interview with Shuah Khan, Kernel Maintainer - Linux Fellow.md => 20210128 Interview with Shuah Khan, Kernel Maintainer & Linux Fellow.md} (81%) create mode 100644 sources/tech/20210830 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md diff --git a/sources/tech/20210101 Solve a charity-s problem with the Julia programming language.md b/sources/tech/20210101 Solve a charity-s problem with the Julia programming language.md index 6a29af626b..0362f44efd 100644 --- a/sources/tech/20210101 Solve a charity-s problem with the Julia programming language.md +++ b/sources/tech/20210101 Solve a charity-s problem with the Julia programming language.md @@ -1,18 +1,20 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Solve a charity's problem with the Julia programming language) -[#]: via: (https://opensource.com/article/21/1/solve-problem-julia) -[#]: author: (Chris Hermansen https://opensource.com/users/clhermansen) +[#]: subject: "Solve a charity's problem with the Julia programming language" +[#]: via: "https://opensource.com/article/21/1/solve-problem-julia" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Solve a charity's problem with the Julia programming language ====== -See how Julia differs from Java, Python, and Groovy to solve a food -bank's real-world problem. +See how Julia differs from Java, Python, and Groovy to solve a food bank's real-world problem. + ![Puzzle pieces coming together to form a computer screen][1] +Image by: Opensource.com + I have been writing a series of articles about solving a nice, small, and somewhat unusual problem in different programming languages ([Groovy][2], [Python][3], and [Java][4] so far). Briefly, the problem is how to unpack bulk supplies into their units (for example, dividing a 10 pack of one-pound bags of your favorite coffee) and repackage them into hampers of similar value to distribute to struggling neighbors in the community. @@ -29,10 +31,9 @@ But enough speculation, let's code something! ### The Julia solution -My first decision is how to implement the data model. Julia supports _composite types_, seemingly similar to `struct` in C, and Julia even uses the keyword `struct`. Of note is that a `struct` is immutable (unless declared a `mutable struct`), which is fine for this problem since the data doesn't need to be mutated. - -By following the approach I took in the Java solution, the `Unit struct` can be defined as:  +My first decision is how to implement the data model. Julia supports *composite types*, seemingly similar to `struct` in C, and Julia even uses the keyword `struct`. Of note is that a `struct` is immutable (unless declared a `mutable struct` ), which is fine for this problem since the data doesn't need to be mutated. +By following the approach I took in the Java solution, the `Unit struct` can be defined as: ``` struct Unit @@ -44,13 +45,12 @@ end Similarly, `Pack` is defined as the bulk package of `Unit` instances: - ``` struct Pack       unit::Unit       count::Int       Pack(item, brand, unitCount,p ackPrice) = -            new(Unit(item, brand, [div][6](packPrice,unitCount)), unitCount) +            new(Unit(item, brand, div(packPrice,unitCount)), unitCount) end ``` @@ -58,7 +58,6 @@ There is an interesting thing here: a Julia "inner constructor." In the Java sol Because Julia isn't object-oriented, I can't add methods to `Pack` to give unit price vs. pack price or to unpack it into a list of `Unit` instances. I can declare "getter" functions that accomplish the same tasks. (I probably don't need these, but I'll do it anyway to see how Julia methods work): - ``` item(pack::Pack) = pack.unit.item brand(pack::Pack) = pack.unit.brand @@ -68,17 +67,16 @@ packPrice(pack::Pack) = pack.unit.price * pack.count unpack(pack::Pack) = Iterators.collect(Iterators.repeated(pack.unit,pack.count)) ``` -The `unpack()` method is quite similar to the method of the same name I declared in the Java class `Pack`. The function `Iterators.repeated(thing,N)` creates an iterator that will deliver `N` copies of `thing`. The `Iterators.collect` (`iterator`) function processes the `iterator` to yield an array made up of the elements it delivers. - -Finally, the `Bought struct`: +The `unpack()` method is quite similar to the method of the same name I declared in the Java class `Pack`. The function `Iterators.repeated(thing,N)` creates an iterator that will deliver `N` copies of `thing`. The `Iterators.collect` (`iterator` ) function processes the `iterator` to yield an array made up of the elements it delivers. +Finally, the `Bought struct` : ``` struct Bought       pack::Pack       count::Int end -unpack(bought::Bought) =         +unpack(bought::Bought) =              Iterators.collect(Iterators.flatten(Iterators.repeated(unpack(bought.pack),          bought.count))) ``` @@ -87,7 +85,6 @@ Once again, I'm creating an array of an array of unpacked `Pack` instances (i.e. Now I can construct the list of what I bought: - ``` packs = [         Bought(Pack("Rice","Best Family",10,5650),1), @@ -111,12 +108,11 @@ I'm starting to see a pattern here… this looks surprisingly like the Java solu With the list packs of what I bought, I can now unpack into the units before working on redistributing them: - ``` -`units = Iterators.collect(Iterators.flatten(unpack.(packs)))` +units = Iterators.collect(Iterators.flatten(unpack.(packs))) ``` -What's going on here? Well, a construct like `unpack.(packs)`—that is, the dot between the function name and the argument list—applies the function `unpack()` to each element in the list `packs`. This will generate a list of lists corresponding to the unpacked groups of `Packs` I bought. To turn that into a flat list of units, I apply `Iterators.flatten()`. Because `Iterators.flatten()` is lazy, to make the flatten thing happen, I wrap it in `Iterators.collect()`. This kind of composition of functions adheres to the spirit of functional programming, even though you don't see the functions chained together, as programmers who write functionally in JavaScript, Java, or what-have-you are familiar with. +What's going on here? Well, a construct like `unpack.(packs)` —that is, the dot between the function name and the argument list—applies the function `unpack()` to each element in the list `packs`. This will generate a list of lists corresponding to the unpacked groups of `Packs` I bought. To turn that into a flat list of units, I apply `Iterators.flatten()`. Because `Iterators.flatten()` is lazy, to make the flatten thing happen, I wrap it in `Iterators.collect()`. This kind of composition of functions adheres to the spirit of functional programming, even though you don't see the functions chained together, as programmers who write functionally in JavaScript, Java, or what-have-you are familiar with. One observation is that the list of units created here is actually an array whose starting index is 1, not 0. @@ -124,63 +120,59 @@ With units being the list of units purchased and unpacked, I can now take on rep Here's the code, which is not exceptionally different than the versions in Groovy, Python, and Java: - ```  1      valueIdeal = 5000  2      valueMax = round(valueIdeal * 1.1)  3      hamperNumber = 0         - 4      while length(units) > 0 + 4      while length(units) > 0  5          global hamperNumber += 1  6          hamper = Unit[]  7          value = 0  8          canAdd = true  9          while canAdd -10              u = [rand][7](0:(length(units)-1)) +10              u = rand(0:(length(units)-1)) 11              canAdd = false 12              for o = 0:(length(units)-1) 13                  uo = (u + o) % length(units) + 1 14                  unit = units[uo] -15                  if length(units) < 3 || findfirst(u -> u == unit,hamper) === nothing && (value + unit.price) < valueMax +15                  if length(units) < 3 || findfirst(u -> u == unit,hamper) === nothing && (value + unit.price) < valueMax 16                      push!(hamper,unit) 17                      value += unit.price 18                      deleteat!(units,uo) -19                      canAdd = length(units) > 0 +19                      canAdd = length(units) > 0 20                      break 21                  end 22              end 23          end -24          Printf.@[printf][8]("\nHamper %d value %d:\n",hamperNumber,value) +24          Printf.@printf("\nHamper %d value %d:\n",hamperNumber,value) 25          for unit in hamper -26              Printf.@[printf][8]("%-25s%-25s%7d\n",unit.item,unit.brand,unit.price) +26              Printf.@printf("%-25s%-25s%7d\n",unit.item,unit.brand,unit.price) 27          end -28          Printf.@[printf][8]("Remaining units %d\n",length(units)) +28          Printf.@printf("Remaining units %d\n",length(units)) 29      end ``` Some clarification, by line numbers: - * Lines 1–3: Set up the ideal and maximum values to be loaded into any given hamper and initialize Groovy's random number generator and the hamper number - * Lines 4–29: This `while` loop redistributes units into hampers, as long as there are more available - * Lines 5–7: Increment the (global) hamper number, get a new empty hamper (an array of `Unit` instances), and set its value to 0 - * Line 8 and 9–23: As long as I can add units to the hamper… - * Line 10: Gets a random number between zero and the number of remaining units minus 1 - * Line 11: Assumes I can't find more units to add - * Lines 12–22: This `for` loop, starting at the randomly chosen index, will try to find a unit that can be added to the hamper - * Lines 13–14: Figure out which unit to look at (remember arrays start at index 1) and get it - * Lines 15–21: I can add this unit to the hamper if there are only a few left or if the value of the hamper isn't too high once the unit is added and if that unit isn't already in the hamper - * Lines 16–18: Add the unit to the hamper, increment the hamper value by the unit price, and remove the unit from the available units list - * Lines 19–20: As long as there are units left, I can add more, so break out of this loop to keep looking - * Line 22: On exit from this `for` loop, if I have inspected every remaining unit and could not find one to add to the hamper, the hamper is complete; otherwise, I found one and can continue looking for more - * Line 23: On exit from this `while` loop, the hamper is as full as I can make it, so… - * Lines 24–28: Print out the contents of the hamper and the remaining units info - * Line 29: When I exit this loop, there are no more units left - - +* Lines 1–3: Set up the ideal and maximum values to be loaded into any given hamper and initialize Groovy's random number generator and the hamper number +* Lines 4–29: This `while` loop redistributes units into hampers, as long as there are more available +* Lines 5–7: Increment the (global) hamper number, get a new empty hamper (an array of `Unit` instances), and set its value to 0 +* Line 8 and 9–23: As long as I can add units to the hamper… +* Line 10: Gets a random number between zero and the number of remaining units minus 1 +* Line 11: Assumes I can't find more units to add +* Lines 12–22: This `for` loop, starting at the randomly chosen index, will try to find a unit that can be added to the hamper +* Lines 13–14: Figure out which unit to look at (remember arrays start at index 1) and get it +* Lines 15–21: I can add this unit to the hamper if there are only a few left or if the value of the hamper isn't too high once the unit is added and if that unit isn't already in the hamper +* Lines 16–18: Add the unit to the hamper, increment the hamper value by the unit price, and remove the unit from the available units list +* Lines 19–20: As long as there are units left, I can add more, so break out of this loop to keep looking +* Line 22: On exit from this `for` loop, if I have inspected every remaining unit and could not find one to add to the hamper, the hamper is complete; otherwise, I found one and can continue looking for more +* Line 23: On exit from this `while` loop, the hamper is as full as I can make it, so… +* Lines 24–28: Print out the contents of the hamper and the remaining units info +* Line 29: When I exit this loop, there are no more units left The output of running this code looks quite similar to the output from the other programs: - ``` Hamper 1 value 5020: Tea                      Superior                     544 @@ -238,9 +230,8 @@ Once again, the random-number-driven list manipulation seems to make the "workin Given that the main effort revolves around `for` and `while` loops, in Julia, I don't see any construct similar to: - ``` -`for (boolean canAdd = true; canAdd; ) { … }` +for (boolean canAdd = true; canAdd; ) { … } ``` This means I have to declare the `canAdd` variable outside the `while` loop. Which is too bad—but not a terrible thing. @@ -249,27 +240,24 @@ I do miss not being able to attach behavior directly to my data, but that's just Good things: low ceremony, check; decent list-handling, check; compact and readable code, check. All in all, a pleasant experience, supporting the idea that Julia can be a decent choice to solve "ordinary problems" and as a scripting language. -Next time, I'll do this exercise in [Go][9]. +Next time, I'll do this exercise in [Go][6]. -------------------------------------------------------------------------------- via: https://opensource.com/article/21/1/solve-problem-julia 作者:[Chris Hermansen][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://opensource.com/users/clhermansen -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/puzzle_computer_solve_fix_tool.png [2]: https://opensource.com/article/20/9/groovy [3]: https://opensource.com/article/20/9/solve-problem-python [4]: https://opensource.com/article/20/9/problem-solving-java [5]: https://julialang.org/ -[6]: http://www.opengroup.org/onlinepubs/009695399/functions/div.html -[7]: http://www.opengroup.org/onlinepubs/009695399/functions/rand.html -[8]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html -[9]: https://golang.org/ +[6]: https://golang.org/ diff --git a/sources/tech/20210105 How to customize your voice assistant with the voice of your choice.md b/sources/tech/20210105 How to customize your voice assistant with the voice of your choice.md index 51f86d0519..85be02276b 100644 --- a/sources/tech/20210105 How to customize your voice assistant with the voice of your choice.md +++ b/sources/tech/20210105 How to customize your voice assistant with the voice of your choice.md @@ -1,21 +1,23 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (How to customize your voice assistant with the voice of your choice) -[#]: via: (https://opensource.com/article/21/1/customize-voice-assistant) -[#]: author: (Rich Lucente https://opensource.com/users/rlucente) +[#]: subject: "How to customize your voice assistant with the voice of your choice" +[#]: via: "https://opensource.com/article/21/1/customize-voice-assistant" +[#]: author: "Rich Lucente https://opensource.com/users/rlucente" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " How to customize your voice assistant with the voice of your choice ====== -The Nana and Poppy project enables a voice assistant to greet users with -their great-grandchildren's voices instead of a generic AI. +The Nana and Poppy project enables a voice assistant to greet users with their great-grandchildren's voices instead of a generic AI. + ![radio communication signals][1] +Image by: [Internet Archive Book Images][2]. Modified by Opensource.com. [CC BY-SA 4.0][3] + It can be hard to find meaningful gifts for relatives that already have almost everything. My wife and I have given our parents "experiences" to try something novel, such as going to a themed restaurant or seeing a concert, but as our parents get older, it becomes more difficult. This year was no exception—until I thought about a way open source could give them something really special. -What if when they request help from an artificial intelligence (AI) voice assistant such as [Mycroft][2], my in-laws could get a special greeting? I looked at the existing voice assistant APIs to see if something like this was already available. There was something close, but not exactly what I was looking for. My idea was to record their great-grandchildren speaking a short greeting that would play whenever they push the button and before the conversation with the voice assistant begins. The greeting would be something like: +What if when they request help from an artificial intelligence (AI) voice assistant such as [Mycroft][4], my in-laws could get a special greeting? I looked at the existing voice assistant APIs to see if something like this was already available. There was something close, but not exactly what I was looking for. My idea was to record their great-grandchildren speaking a short greeting that would play whenever they push the button and before the conversation with the voice assistant begins. The greeting would be something like: > "Good morning, Nana and Poppy. Today is December 25th. The time is 3:10 pm. The current temperature for Waynesboro is 47 degrees. The current temperature for Ocean City is 50 degrees." @@ -25,168 +27,166 @@ When they press the button, my in-laws would hear their great-grandchildren repo The first problem was figuring out what phrases the voice assistant would need to say. Thinking about all the dates, times, and temperatures that I would need to cover, I arrived at a list of 79 phrases. I sent these instructions to my nieces: -> _Please record the kids saying each line below. Sorry there are so many. It's okay to do this in one setting with prompting them if it makes it easier. I can edit the audio files and deal with most formats, so none of that should be a problem. Just record using your phone in whatever way is easiest._ -> -> _Make sure that the kids say each line clearly and loudly. There should be a slight pause between each line to make editing easier (prompting helps like "Repeat after me …"). That will make it easier for me to chop these up into individual sound files._ -> -> _Whenever the button on the device is pushed, it will respond with a random grandchild saying the correct date/time/temperature, like:_ -> -> _"Good afternoon, Nana and Poppy. Today is January third. The time is one oh four pm. The current temperature for Waynesboro is thirty degrees. The current temperature for Ocean City is thirty four degrees."_ -> -> _PLEASE RECORD EACH CHILD SAYING THE FOLLOWING PHRASES WITH A SHORT PAUSE BETWEEN EACH ONE:_ +> Please record the kids saying each line below. Sorry there are so many. It's okay to do this in one setting with prompting them if it makes it easier. I can edit the audio files and deal with most formats, so none of that should be a problem. Just record using your phone in whatever way is easiest. + +> Make sure that the kids say each line clearly and loudly. There should be a slight pause between each line to make editing easier (prompting helps like "Repeat after me …"). That will make it easier for me to chop these up into individual sound files.* + +> Whenever the button on the device is pushed, it will respond with a random grandchild saying the correct date/time/temperature, like: "Good afternoon, Nana and Poppy. Today is January third. The time is one oh four pm. The current temperature for Waynesboro is thirty degrees. The current temperature for Ocean City is thirty four degrees." + +> PLEASE RECORD EACH CHILD SAYING THE FOLLOWING PHRASES WITH A SHORT PAUSE BETWEEN EACH ONE: Then I provided the following list of words for the children to record: -_Good -morning -afternoon -evening -night_ +(这个表格有问题,待修复) -_Nana and Poppy_ +| - | - | - | +| :- | :- | :- | +| Good + morning + afternoon + evening + night +Nana and Poppy +The time + Today  + The current temperature for + Waynesboro + Ocean City + is + and + degrees + minus +am + pm +January + February + March + April + May | June + July + August + September + October + November + December + first + second + third + fourth + fifth + sixth + seventh + eighth + ninth + tenth + eleventh + twelfth + thirteenth + fourteenth + fifteenth + sixteenth + seventeenth + eighteenth + nineteenth + twentieth + thirtieth + oh | one + two + three + four + five + six + seven + eight + nine + ten + eleven + twelve + thirteen + fourteen + fifteen + sixteen + seventeen + eighteen + nineteen + twenty + thirty + forty + fifty + sixty + seventy + eighty + ninety + hundred | -_The time -Today  -The current temperature for -Waynesboro -Ocean City -is -and -degrees -minus_ +*Nana and Poppy* -_am -pm_ +*The time + Today  + The current temperature for + Waynesboro + Ocean City + is + and + degrees + minus* -_January -February -March -April -May_ +*am + pm* -| _June -July -August -September -October -November -December -first -second -third -fourth -fifth -sixth -seventh -eighth -ninth -tenth -eleventh -twelfth -thirteenth -fourteenth -fifteenth -sixteenth -seventeenth -eighteenth -nineteenth -twentieth -thirtieth -oh_ | _one -two -three -four -five -six -seven -eight -nine -ten -eleven -twelve -thirteen -fourteen -fifteen -sixteen -seventeen -eighteen -nineteen -twenty -thirty -forty -fifty -sixty -seventy -eighty -ninety -hundred_ ----|---|--- +*January + February + March + April + May* My nieces are doubly blessed with children under 10 years old and near-infinite patience. So, after a couple of months of prodding, I received a three-minute audio file for each child. -Now my problem was how to edit them. I needed to normalize the recordings, reduce noise, and chop them into audio clips for individual words and phrases. I also wanted to take advantage of lossless audio, and I decided to convert the tracks to Waveform Audio File Format ([WAV][3]). Audacity was just the open source tool to do all of that. +Now my problem was how to edit them. I needed to normalize the recordings, reduce noise, and chop them into audio clips for individual words and phrases. I also wanted to take advantage of lossless audio, and I decided to convert the tracks to Waveform Audio File Format ([WAV][5]). Audacity was just the open source tool to do all of that. ### Audacity to the rescue! -[Audacity][4] is a feature-rich open source sound-editing tool. The software's features and capabilities can be overwhelming, so I'll describe the workflow I followed to accomplish my goals. I make no claims to being an Audacity expert, but the steps I followed seemed to work pretty well. (Comments are always welcome on how to improve what I've done.) +[Audacity][6] is a feature-rich open source sound-editing tool. The software's features and capabilities can be overwhelming, so I'll describe the workflow I followed to accomplish my goals. I make no claims to being an Audacity expert, but the steps I followed seemed to work pretty well. (Comments are always welcome on how to improve what I've done.) -Audacity has [downloads][5] for Linux, Windows, and macOS. I grabbed the most recent macOS binary and quickly installed it on my laptop. Launching Audacity opens an empty new project. I imported all of the children's audio files using the **Import** feature. +Audacity has [downloads][7] for Linux, Windows, and macOS. I grabbed the most recent macOS binary and quickly installed it on my laptop. Launching Audacity opens an empty new project. I imported all of the children's audio files using the **Import** feature. -![Import audio files in Audacity][6] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Import audio files in Audacity][8] #### Normalizing audio files Some of the children spoke louder than others, so the various audio files had different volume levels. I needed to normalize the audio tracks so that the greeting's volume would be the same regardless of which child was speaking. To normalize the volumes, I began by selecting all of the audio tracks after they were imported. -![Selecting all the audio tracks][8] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Selecting all the audio tracks][9] To normalize the children's peaks and valleys, so one child wasn't louder than the other, I used Audacity's **Normalize** effect. -![Normalize effect][9] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Normalize effect][10] It's important to understand that the Normalize and Amplify effects do very different things. Normalize adjusts the highest peaks and lowest valleys for multiple tracks, so they are all similar, whereas Amplify exaggerates the existing peaks and valleys. If I had used Amplify instead of Normalize, the louder child would have become even louder. I used the default settings to normalize the two audio tracks. -![Normalize defaults][10] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Normalize defaults][11] #### Remove background noise -Another thing I noticed is that there was noise between the spoken phrases on the tracks. Audacity has tooling to help reduce background noise and result in much cleaner audio. To reduce noise, select a sample of an audio track with background noise. I used the **View->Zoom** menu option to see the track's noise more easily. +Another thing I noticed is that there was noise between the spoken phrases on the tracks. Audacity has tooling to help reduce background noise and result in much cleaner audio. To reduce noise, select a sample of an audio track with background noise. I used the **View->Zoom** menu option to see the track's noise more easily. -![Background noise sample][11] +![Background noise sample][12] -(Rich Lucente, [CC BY-SA 4.0][7]) +To make sure I selected only the background noise, I listened to the selected audio clip using the **Play** button in the toolbar. Next, I selected **Effect->Noise Reduction**. -To make sure I selected only the background noise, I listened to the selected audio clip using the **Play** button in the toolbar. Next, I selected **Effect->Noise Reduction**. - -![Noise Reduction effect][12] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Noise Reduction effect][13] Then I created a **Noise Profile** using step 1 in the **Noise Reduction** dialog. -![Get a Noise Profile from audio sample][13] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Get a Noise Profile from audio sample][14] Audacity characterizes the background noise in the audio sample so that it can be removed. To remove the background noise, I selected the entire audio track by pressing the small **Select** button to the left of the track. -![Select whole audio track button][14] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Select whole audio track button][15] I applied the **Noise Reduction** effect again, but this time I pressed **OK** in step 2 of the dialog. I accepted the default settings. -![Noise Reduction effect step 2][15] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Noise Reduction effect step 2][16] I repeated these steps for each child's audio track, so I had normalized audio tracks, and the background noise was characterized and removed. @@ -194,110 +194,106 @@ I repeated these steps for each child's audio track, so I had normalized audio t The remaining task was to zoom and scroll through each track and export the specific clips as separate audio files in WAV format. When working with one child's track, I needed to mute the other tracks using either the small **Mute** button to the left of each audio track or, since there were so many tracks, selecting the **Solo** button for the track I wanted to work with. -![Mute and Solo buttons for multiple tracks][16] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Mute and Solo buttons for multiple tracks][17] Selecting each word and phrase can be tricky, but the ability to zoom into an audio track was my friend. I tried to set each audio clip's start and end to just before and just after the word or phrase being spoken. Before exporting any audio clips, I played the selected clip using the **Play** icon on the toolbar to make sure I got it all. One interesting thing is how waveforms map to spoken words. The waveforms for "six" and "sixth" are incredibly similar, with the latter having a smaller audio waveform to the right for the "th" sound. I carefully tested each clip before exporting it to make sure I had captured the full word or phrase. -After selecting an audio clip for a word or phrase, I exported the selected audio using the **File->Export** menu. +After selecting an audio clip for a word or phrase, I exported the selected audio using the **File->Export** menu. -![Exporting selected audio][17] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Exporting selected audio][18] I had to make sure to save each clip using the correct file name from the list of words and phrases. This is because the application I used to customize the voice assistant expects the file name to match an entry in the phrase list. The expected file names for the audio clips (without the .wav extension) are listed below. Note the underscores within the phrases. If you're doing this project, adjust the bold file names to match your loved ones' nicknames and location preferences. You'll also have to make the same changes in the application source code. -_good -morning -afternoon -evening -night -**nana_and_poppy** -the_time -today -the_current_temperature_for -**waynesboro -ocean_city** -is -and -degrees -minus -am -pm -january -february -march -april -may -june -july -august -september -october_ | _november -december -first -second -third -fourth -fifth -sixth -seventh -eighth -ninth -tenth -eleventh -twelfth -thirteenth -fourteenth -fifteenth -sixteenth -seventeenth -eighteenth -nineteenth -twentieth -thirtieth -oh -one -two_ | _three -four -five -six -seven -eight -nine -ten -eleven -twelve -thirteen -fourteen -fifteen -sixteen -seventeen -eighteen -nineteen -twenty -thirty -forty -fifty -sixty -seventy -eighty -ninety -hundred_ ----|---|--- +(这个表格有问题,待修正) +| - | - | - | +| :- | :- | :- | +| good + morning + afternoon + evening + night + nana_and_poppy + the_time + today + the_current_temperature_for + waynesboro + ocean_city + is + and + degrees + minus + am + pm + january + february + march + april + may + june + july + august + september + october | november + december + first + second + third + fourth + fifth + sixth + seventh + eighth + ninth + tenth + eleventh + twelfth + thirteenth + fourteenth + fifteenth + sixteenth + seventeenth + eighteenth + nineteenth + twentieth + thirtieth + oh + one + two | three + four + five + six + seven + eight + nine + ten + eleven + twelve + thirteen + fourteen + fifteen + sixteen + seventeen + eighteen + nineteen + twenty + thirty + forty + fifty + sixty + seventy + eighty + ninety + hundred | This project's GitHub repository also includes a Bash script to run as a sanity check for any missing or misnamed files. After choosing each clip's appropriate name, I saved the clip in the child's specific folder (child1, child2, etc.) as a WAV format file. I accepted the default export settings. -![Converting clip to WAV format][18] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Converting clip to WAV format][19] After exporting all the audio clips, I had a folder for each child that was fully populated with WAV files for the phrases above. This seems like a lot of work, but it took only about 90 minutes for each child, and I got way more efficient with each successive audio clip. @@ -305,22 +301,19 @@ After exporting all the audio clips, I had a folder for each child that was full Now that I had the audio clips for the greeting, I needed to think about the application and how to package it. I also wanted an open source-friendly solution that was open to modification. -About two years ago, a colleague gave me a [Google AIY Voice Kit][19] that he grabbed from the clearance bin for just $10. It's a cleverly folded box containing a speaker, microphone, and custom circuit board. You supply a Raspberry Pi and quickly have a do-it-yourself Google voice assistant. These kits are available for purchase online and in electronics stores. This small box offered an easy way to package the project. +About two years ago, a colleague gave me a [Google AIY Voice Kit][20] that he grabbed from the clearance bin for just $10. It's a cleverly folded box containing a speaker, microphone, and custom circuit board. You supply a Raspberry Pi and quickly have a do-it-yourself Google voice assistant. These kits are available for purchase online and in electronics stores. This small box offered an easy way to package the project. -![Google AIY Voice Kit][20] - -(Rich Lucente, [CC BY-SA 4.0][7]) +![Google AIY Voice Kit][21] ### Customize the voice assistant -The Google kit includes a Python API and several Python modules. I followed the kit's instructions to get the initial configuration working. The [Google Assistant gRPC][21] software is open source under an Apache 2.0 license. +The Google kit includes a Python API and several Python modules. I followed the kit's instructions to get the initial configuration working. The [Google Assistant gRPC][22] software is open source under an Apache 2.0 license. I adapted the Google Assistant gRPC demo to implement my application. The application's operation is fairly simple: First, it waits for the device's button to be pressed. The code then constructs four separate word lists for: 1. the greeting and date, 2. the current time, 3. the current temperature of the first location, and 4. the current temperature of the second location. The children's voices are randomly shuffled, and then each word list is used to play the audio clips corresponding to the child assigned to that list. (This is why it was important to strictly follow the naming convention for the audio clips.) The application then initiates a conversation with the Google Assistant API. At first, I thought the code to gather weather data for the current temperature and convert numbers to words would be challenging. This proved not to be the case at all. In fact, existing open source Python modules made it all simple and intuitive. -There were two cases to be addressed for converting numbers to word lists: I needed to convert ordinal numbers to words (e.g., 1 and 2 to first and second), and I also needed to convert cardinal numbers to words (e.g., 28 to twenty-eight). The open source [inflect.py module][22] has functions that handle both cases quite easily. - +There were two cases to be addressed for converting numbers to word lists: I needed to convert ordinal numbers to words (e.g., 1 and 2 to first and second), and I also needed to convert cardinal numbers to words (e.g., 28 to twenty-eight). The open source [inflect.py module][23] has functions that handle both cases quite easily. ``` import inflect @@ -337,8 +330,7 @@ print(p.number_to_words(p.ordinal(number)).replace('-', ' ').split(' ')) The inflect engine returns string representations of the numbers with embedded hyphens (e.g., twenty-three) so that the code splits the strings into variable-length word lists by converting the hyphens to spaces and splitting the string into a list using a space as the delimiter. -The next problem to solve was getting the current temperature for the two locations. [Open Weather Map][23] offers a free-tier weather service that allows up to 60 calls a minute or 1 million calls a month, which is way more than this project needs. I signed up for the free-tier service and received an API key. It was very easy to access the service by using the open source Python wrapper module [PyOWM][24]. Here is a simplified code snippet: - +The next problem to solve was getting the current temperature for the two locations. [Open Weather Map][24] offers a free-tier weather service that allows up to 60 calls a minute or 1 million calls a month, which is way more than this project needs. I signed up for the free-tier service and received an API key. It was very easy to access the service by using the open source Python wrapper module [PyOWM][25]. Here is a simplified code snippet: ``` import pyowm @@ -359,46 +351,49 @@ temp = round(observation.weather.temperature('fahrenheit')['temp']) ### Wrapping it up with a bow -The full source code for the project is available in my [GitHub repository][25]. The project includes a systemd service unit file adapted from Google's demo to automatically start the application on device boot. The GitHub repository includes instructions to install the Python modules and configure the systemd service. +The full source code for the project is available in my [GitHub repository][26]. The project includes a systemd service unit file adapted from Google's demo to automatically start the application on device boot. The GitHub repository includes instructions to install the Python modules and configure the systemd service. -I created a [short video][26] of the result. Five custom voice assistants were distributed during the holidays: one each for the great grandparents and grandparents of each child. For some, these gifts brought tears of joy. The children's voices are absolutely adorable and these boxes capture a fleeting moment of childhood that can be enjoyed for a very long time. +I created a [short video][27] of the result. Five custom voice assistants were distributed during the holidays: one each for the great grandparents and grandparents of each child. For some, these gifts brought tears of joy. The children's voices are absolutely adorable and these boxes capture a fleeting moment of childhood that can be enjoyed for a very long time. + +Image by: (Rich Lucente, CC BY-SA 4.0) -------------------------------------------------------------------------------- via: https://opensource.com/article/21/1/customize-voice-assistant 作者:[Rich Lucente][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://opensource.com/users/rlucente -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/sound-radio-noise-communication.png?itok=KMNn9QrZ (radio communication signals) -[2]: https://opensource.com/article/20/7/mycroft-voice-skill -[3]: https://en.wikipedia.org/wiki/WAV -[4]: https://www.audacityteam.org/ -[5]: https://www.audacityteam.org/download/ -[6]: https://opensource.com/sites/default/files/uploads/audacity1_importaudio.png (Import audio files in Audacity) -[7]: https://creativecommons.org/licenses/by-sa/4.0/ -[8]: https://opensource.com/sites/default/files/uploads/audacity2_selectingtracks.png (Selecting all the audio tracks) -[9]: https://opensource.com/sites/default/files/uploads/audacity3_normalize.png (Normalize effect) -[10]: https://opensource.com/sites/default/files/uploads/audacity4_normalizedefaults.png (Normalize defaults) -[11]: https://opensource.com/sites/default/files/uploads/audacity5_backgroundnoise.png (Background noise sample) -[12]: https://opensource.com/sites/default/files/uploads/audacity6_noisereduction.png (Noise Reduction effect) -[13]: https://opensource.com/sites/default/files/uploads/audacity7_noiseprofile.png (Get a Noise Profile from audio sample) -[14]: https://opensource.com/sites/default/files/uploads/audacity8_selecttrack.png (Select whole audio track button) -[15]: https://opensource.com/sites/default/files/uploads/audacity9_noisereduction2.png (Noise Reduction effect step 2) -[16]: https://opensource.com/sites/default/files/uploads/audacity10_mutesolo.png (Mute and Solo buttons for multiple tracks) -[17]: https://opensource.com/sites/default/files/uploads/audacity11_exportaudio.png (Exporting selected audio) -[18]: https://opensource.com/sites/default/files/uploads/audacity12_convertwav.png (Converting clip to WAV format) -[19]: https://aiyprojects.withgoogle.com/voice/ -[20]: https://opensource.com/sites/default/files/uploads/googleaiy.png (Google AIY Voice Kit) -[21]: https://pypi.org/project/google-assistant-grpc/ -[22]: https://pypi.org/project/inflect -[23]: https://openweathermap.org/ -[24]: https://pypi.org/project/pyowm -[25]: https://github.com/rlucente-se-jboss/nana-poppy-project -[26]: https://youtu.be/Co7rigJRNUM +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/sound-radio-noise-communication.png +[2]: https://www.flickr.com/photos/internetarchivebookimages/14571450820/in/photolist-ocCuEG-otg1AX-hPy8JE-oc9YmN-oeUU2C-8cKWej-hQz72S-rpae2k-ocNYbT-oxbPTB-odGRsQ-ouDBo1-i5GTL8-qscJfA-idDrfk-i5D6oK-6K6iNH-ouxpn7-i8SivQ-oeY1eG-i7HGbT-bqXPhH-hN5on7-i9Q8YD-ouFYDw-fpy7Lo-oeSJo1-otqUu4-hNaVhf-oydqAV-owur2M-owkTSD-oydSWR-ocayce-ovFdYk-ocdaeL-ouE9UP-zmmrhp-qxtozB-ouqnSQ-obYbwS-odrnXt-ousXXw-ocA6Uo-owme9S-ouACY2-ocajY1-oeUJQG-ouryBk-ouxMJb +[3]: https://creativecommons.org/licenses/by-sa/4.0/ +[4]: https://opensource.com/article/20/7/mycroft-voice-skill +[5]: https://en.wikipedia.org/wiki/WAV +[6]: https://www.audacityteam.org/ +[7]: https://www.audacityteam.org/download/ +[8]: https://opensource.com/sites/default/files/uploads/audacity1_importaudio.png +[9]: https://opensource.com/sites/default/files/uploads/audacity2_selectingtracks.png +[10]: https://opensource.com/sites/default/files/uploads/audacity3_normalize.png +[11]: https://opensource.com/sites/default/files/uploads/audacity4_normalizedefaults.png +[12]: https://opensource.com/sites/default/files/uploads/audacity5_backgroundnoise.png +[13]: https://opensource.com/sites/default/files/uploads/audacity6_noisereduction.png +[14]: https://opensource.com/sites/default/files/uploads/audacity7_noiseprofile.png +[15]: https://opensource.com/sites/default/files/uploads/audacity8_selecttrack.png +[16]: https://opensource.com/sites/default/files/uploads/audacity9_noisereduction2.png +[17]: https://opensource.com/sites/default/files/uploads/audacity10_mutesolo.png +[18]: https://opensource.com/sites/default/files/uploads/audacity11_exportaudio.png +[19]: https://opensource.com/sites/default/files/uploads/audacity12_convertwav.png +[20]: https://aiyprojects.withgoogle.com/voice/ +[21]: https://opensource.com/sites/default/files/uploads/googleaiy.png +[22]: https://pypi.org/project/google-assistant-grpc/ +[23]: https://pypi.org/project/inflect +[24]: https://openweathermap.org/ +[25]: https://pypi.org/project/pyowm +[26]: https://github.com/rlucente-se-jboss/nana-poppy-project +[27]: https://youtu.be/Co7rigJRNUM diff --git a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md index ac878e098c..9b13b1d6a3 100644 --- a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md +++ b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md @@ -1,27 +1,28 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (A hands-on tutorial for using the GNU Project Debugger) -[#]: via: (https://opensource.com/article/21/1/gnu-project-debugger) -[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) +[#]: subject: "A hands-on tutorial for using the GNU Project Debugger" +[#]: via: "https://opensource.com/article/21/1/gnu-project-debugger" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " A hands-on tutorial for using the GNU Project Debugger ====== -The GNU Project Debugger is a powerful tool for finding bugs in -programs. +The GNU Project Debugger is a powerful tool for finding bugs in programs. + ![magnifying glass on computer screen, finding a bug in the code][1] +Image by: Opensource.com + If you're a programmer and you want to put a certain functionality in your software, you start by thinking of ways to implement it—such as writing a method, defining a class, or creating new data types. Then you write the implementation in a language that the compiler or interpreter can understand. But what if the compiler or interpreter does not understand the instructions as you had them in mind, even though you're sure you did everything right? What if the software works fine most of the time but causes bugs in certain circumstances? In these cases, you have to know how to use a debugger correctly to find the source of your troubles. The GNU Project Debugger ([GDB][2]) is a powerful tool for finding bugs in programs. It helps you uncover the reason for an error or crash by tracking what is going on inside the program during execution. This article is a hands-on tutorial on basic GDB usage. To follow along with the examples, open the command line and clone this repository: - ``` -`git clone https://github.com/hANSIc99/core_dump_example.git` +git clone https://github.com/hANSIc99/core_dump_example.git ``` ### Shortcuts @@ -30,7 +31,7 @@ Every command in GDB can be shortened. For example, `info break`, which shows th ### Command-line parameters -You can attach GDB to every executable. Navigate to the repository you cloned, and compile it by running `make`. You should now have an executable called **coredump**. (See my article on [_Creating and debugging Linux dump files_][3] for more information.. +You can attach GDB to every executable. Navigate to the repository you cloned, and compile it by running `make`. You should now have an executable called **coredump**. (See my article on [Creating and debugging Linux dump files][3] for more information.. To attach GDB to the executable, type: `gdb coredump`. @@ -38,87 +39,66 @@ Your output should look like this: ![gdb coredump output][4] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) It says no debugging symbols were found. Debugging information is part of the object file (the executable) and includes data types, function signatures, and the relationship between the source code and the opcode. At this point, you have two options: - * Continue debugging the assembly (see "[Debug without symbols][6]" below) - * Compile with debug information using the information in the next section - - +* Continue debugging the assembly (see "Debug without symbols" below) +* Compile with debug information using the information in the next section ### Compile with debug information -To include debug information in the binary file, you have to recompile it. Open the **Makefile** and remove the hashtag (`#`) from line 9: - +To include debug information in the binary file, you have to recompile it. Open the **Makefile** and remove the hashtag (`#` ) from line 9: ``` -`CFLAGS =-Wall -Werror -std=c++11 -g` +CFLAGS =-Wall -Werror -std=c++11 -g ``` The `g` option tells the compiler to include the debug information. Run `make clean` followed by `make` and invoke GDB again. You should get this output and can start debugging the code: -![GDB output with symbols][7] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![GDB output with symbols][5] The additional debugging information will increase the size of the executable. In this case, it increases the executable by 2.5 times (from 26,088 byte to 65,480 byte). -Start the program with the `-c1` switch by typing `run -c1`. The program will start and crash when it reaches `State_4`: +Start the program with the `-c1` switch by typing `run -c1`. The program will start and crash when it reaches `State_4` : -![gdb output crash on c1 switch][8] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output crash on c1 switch][6] You can retrieve additional information about the program. The command `info source` provides information about the current file: -![gdb info source output][9] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - - * 101 lines - * Language: C++ - * Compiler (version, tuning, architecture, debug flag, language standard) - * Debugging format: [DWARF 2][10] - * No preprocessor macro information available (when compiled with GCC, macros are available only when [compiled with the `-g3` flag][11]). +![gdb info source output][7] +* 101 lines +* Language: C++ +* Compiler (version, tuning, architecture, debug flag, language standard) +* Debugging format: [DWARF 2][8] +* No preprocessor macro information available (when compiled with GCC, macros are available only when [compiled with the `-g3` flag][9]). The command `info shared` prints a list of dynamic libraries with their addresses in the virtual address space that was loaded on startup so that the program will execute: -![gdb info shared output][12] +![gdb info shared output][10] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - -If you want to learn about library handling in Linux, see my article [_How to handle dynamic and static libraries in Linux_][13]. +If you want to learn about library handling in Linux, see my article [How to handle dynamic and static libraries in Linux][11]. ### Debug the program You may have noticed that you can start the program inside GDB with the `run` command. The `run` command accepts command-line arguments like you would use to start the program from the console. The `-c1` switch will cause the program to crash on stage 4. To run the program from the beginning, you don't have to quit GDB; simply use the `run` command again. Without the `-c1` switch, the program executes an infinite loop. You would have to stop it with **Ctrl+C**. -![gdb output stopped by sigint][14] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output stopped by sigint][12] You can also execute a program step by step. In C/C++, the entry point is the `main` function. Use the command `list main` to open the part of the source code that shows the `main` function: -![gdb output list main][15] +![gdb output list main][13] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +The `main` function is on line 33, so add a breakpoint there by typing `break 33` : -The `main` function is on line 33, so add a breakpoint there by typing `break 33`: - -![gdb output breakpoint added][16] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output breakpoint added][14] Run the program by typing `run`. As expected, the program stops at the `main` function. Type `layout src` to show the source code in parallel: -![gdb output break at main][17] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output break at main][15] You are now in GDB's text user interface (TUI) mode. Use the Up and Down arrow keys to scroll through the source code. @@ -126,13 +106,11 @@ GDB highlights the line to be executed. By typing `next` (n), you can execute th From time to time, you will notice that TUI's output gets a bit corrupted: -![gdb output corrupted][18] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output corrupted][16] If this happens, press **Ctrl+L** to reset the screen. -Use **Ctrl+X+A** to enter and leave TUI mode at will. You can find [other key bindings][19] in the manual. +Use **Ctrl+X+A** to enter and leave TUI mode at will. You can find [other key bindings][17] in the manual. To quit GDB, simply type `quit`. @@ -140,45 +118,39 @@ To quit GDB, simply type `quit`. The heart of this example program consists of a state machine running in an infinite loop. The variable `n_state` is a simple enum that determines the current state: - ``` while(true){         switch(n_state){         case State_1: -                std::cout << "State_1 reached" << std::flush; +                std::cout << "State_1 reached" << std::flush;                 n_state = State_2;                 break;         case State_2: -                std::cout << "State_2 reached" << std::flush; +                std::cout << "State_2 reached" << std::flush;                 n_state = State_3;                 break; -        +                (.....) -        +                } } ``` -You want to stop the program when `n_state` is set to the value `State_5`. To do so, stop the program at the `main` function and set a watchpoint for `n_state`: - +You want to stop the program when `n_state` is set to the value `State_5`. To do so, stop the program at the `main` function and set a watchpoint for `n_state` : ``` -`watch n_state == State_5` +watch n_state == State_5 ``` Setting watchpoints with the variable name works only if the desired variable is available in the current context. When you continue the program's execution by typing `continue`, you should get output like: -![gdb output stop on watchpoint_1][20] +![gdb output stop on watchpoint_1][18] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +If you continue the execution, GDB will stop when the watchpoint expression evaluates to `false` : -If you continue the execution, GDB will stop when the watchpoint expression evaluates to `false`: - -![gdb output stop on watchpoint_2][21] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output stop on watchpoint_2][19] You can specify watchpoints for general value changes, specific values, and read or write access. @@ -186,21 +158,17 @@ You can specify watchpoints for general value changes, specific values, and read Type `info watchpoints` to print a list of previously set watchpoints: -![gdb output info watchpoints][22] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output info watchpoints][20] #### Delete breakpoints and watchpoints As you can see, watchpoints are numbers. To delete a specific watchpoint, type `delete` followed by the number of the watchpoint. For example, my watchpoint has the number 2; to remove this watchpoint, enter `delete 2`. -_Caution:_ If you use `delete` without specifying a number, _all_ watchpoints and breakpoints will be deleted. +*Caution:* If you use `delete` without specifying a number, *all* watchpoints and breakpoints will be deleted. -The same applies to breakpoints. In the screenshot below, I added several breakpoints and printed a list of them by typing `info breakpoint`: +The same applies to breakpoints. In the screenshot below, I added several breakpoints and printed a list of them by typing `info breakpoint` : -![gdb output info breakpoints][23] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![gdb output info breakpoints][21] To remove a single breakpoint, type `delete` followed by its number. Alternatively, you can remove a breakpoint by specifying its line number. For example, the command `clear 78` will remove breakpoint number 7, which is set on line 78. @@ -208,9 +176,7 @@ To remove a single breakpoint, type `delete` followed by its number. Alternative Instead of removing a breakpoint or watchpoint, you can disable it by typing `disable` followed by its number. In the following, breakpoints 3 and 4 are disabled and are marked with a minus sign in the code window: -![disabled breakpoints][24] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![disabled breakpoints][22] It is also possible to modify a range of breakpoints or watchpoints by typing something like `disable 2 - 4`. If you want to reactivate the points, type `enable` followed by their numbers. @@ -224,40 +190,31 @@ The `main` function includes the variable `n_state_3_count`, which is incremente To add a conditional breakpoint based on the value of `n_state_3_count` type: - ``` -`break 54 if n_state_3_count == 3` +break 54 if n_state_3_count == 3 ``` -![Set conditional breakpoint][25] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![Set conditional breakpoint][23] Continue the execution. The program will execute the state machine three times before it stops at line 54. To check the value of `n_state_3_count`, type: - ``` -`print n_state_3_count` +print n_state_3_count ``` -![print variable][26] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![print variable][24] #### Make breakpoints conditional It is also possible to make an existing breakpoint conditional. Remove the recently added breakpoint with `clear 54`, and add a simple breakpoint by typing `break 54`. You can make this breakpoint conditional by typing: - ``` -`condition 3 n_state_3_count == 9` +condition 3 n_state_3_count == 9 ``` The `3` refers to the breakpoint number. -![modify breakpoint][27] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![modify breakpoint][25] #### Set breakpoints in other source files @@ -269,143 +226,109 @@ In addition to breakpoints and watchpoints, you can also set catchpoints. Catchp To catch the `write` syscall, which is used to write to STDOUT, enter: - ``` -`catch syscall write` +catch syscall write ``` -![catch syscall write output][28] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![catch syscall write output][26] Each time the program writes to the console output, GDB will interrupt execution. -In the manual, you can find a whole chapter [covering break-, watch-, and catchpoints][29]. +In the manual, you can find a whole chapter [covering break-, watch-, and catchpoints][27]. ### Evaluate and manipulate symbols Printing the values of variables is done with the `print` command. The general syntax is `print `. The value of a variable can be modified by typing: - ``` -`set variable .` +set variable . ``` -In the screenshot below, I gave the variable `n_state_3_count` the value _123_. +In the screenshot below, I gave the variable `n_state_3_count` the value *123*. -![print variable][30] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![catch syscall write output][28] The `/x` expression prints the value in hexadecimal; with the `&` operator, you can print the address within the virtual address space. -If you are not sure of a certain symbol's data type, you can find it with `whatis`: +If you are not sure of a certain symbol's data type, you can find it with `whatis` : -![whatis output][31] +![whatis output][29] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +If you want to list all variables that are available in the scope of the `main` function, type `info scope main` : -If you want to list all variables that are available in the scope of the `main` function, type `info scope main`: - -![info scope main output][32] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![info scope main output][30] The `DW_OP_fbreg` values refer to the stack offset based on the current subroutine. -Alternatively, if you are already inside a function and want to list all variables on the current stack frame, you can use `info locals`: +Alternatively, if you are already inside a function and want to list all variables on the current stack frame, you can use `info locals` : -![info locals output][33] +![info locals output][31] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - -Check the manual to learn more about [examining symbols][34]. +Check the manual to learn more about [examining symbols][32]. ### Attach to a running process -The command `gdb attach ` allows you to attach to an already running process by specifying the process ID (PID). Luckily, the `coredump` program prints its current PID to the screen, so you don't have to manually find it with [ps][35] or [top][36]. +The command `gdb attach ` allows you to attach to an already running process by specifying the process ID (PID). Luckily, the `coredump` program prints its current PID to the screen, so you don't have to manually find it with [ps][33] or [top][34]. Start an instance of the coredump application: - ``` -`./coredump` +./coredump ``` -![coredump application][37] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![coredump application][35] The operating system gives the PID `2849`. Open a separate console window, move to the coredump application's source directory, and attach GDB: - ``` -`gdb attach 2849` +gdb attach 2849 ``` -![attach GDB to coredump][38] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![attach GDB to coredump][36] GDB immediately stops the execution when you attach it. Type `layout src` and `backtrace` to examine the call stack: -![layout src and backtrace output][39] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![layout src and backtrace output][37] The output shows the process interrupted while executing the `std::this_thread::sleep_for<...>(...)` function that was called in line 92 of `main.cpp`. As soon as you quit GDB, the process will continue running. -You can find more information about [attaching to a running process][40] in the GDB manual. +You can find more information about [attaching to a running process][38] in the GDB manual. #### Move through the stack -Return to the program by using `up` two times to move up in the stack to `main.cpp`: +Return to the program by using `up` two times to move up in the stack to `main.cpp` : -![moving up the stack to main.cpp][41] - -(Stephan Avenwedde, [CC BY-SA 4.0][5]) +![moving up the stack to main.cpp][39] Usually, the compiler will create a subroutine for each function or method. Each subroutine has its own stack frame, so moving upwards in the stackframe means moving upwards in the callstack. -You can find out more about [stack evaluation][42] in the manual. +You can find out more about [stack evaluation][40] in the manual. #### Specify the source files -When attaching to an already running process, GDB will look for the source files in the current working directory. Alternatively, you can specify the source directories manually with the [`directory` command][43]. +When attaching to an already running process, GDB will look for the source files in the current working directory. Alternatively, you can specify the source directories manually with the [directory command][41]. ### Evaluate dump files -Read [_Creating and debugging Linux dump files_][3] for information about this topic. +Read [Creating and debugging Linux dump files][42] for information about this topic. TL;DR: - 1. I assume you're working with a recent version of Fedora - - 2. Invoke coredump with the c1 switch: `coredump -c1` +1. I assume you're working with a recent version of Fedora +2. Invoke coredump with the c1 switch: `coredump -c1` +3. Load the latest dumpfile with GDB: `coredumpctl debug` +4. Open TUI mode and enter `layout src` ![Crash meme][44] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - - 3. Load the latest dumpfile with GDB: `coredumpctl debug` - - 4. Open TUI mode and enter `layout src` - - - - ![coredump output][45] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - -The output of `backtrace` shows that the crash happened five stack frames away from `main.cpp`. Enter to jump directly to the faulty line of code in `main.cpp`: +The output of `backtrace` shows that the crash happened five stack frames away from `main.cpp`. Enter to jump directly to the faulty line of code in `main.cpp` : ![up 5 output][46] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - A look at the source code shows that the program tried to free a pointer that was not returned by a memory management function. This results in undefined behavior and caused the `SIGABRT`. ### Debug without symbols @@ -416,56 +339,43 @@ Check out how it works with this example. Go to the source directory, open the **Makefile**, and edit line 9 like this: - ``` -`CFLAGS =-Wall -Werror -std=c++11 #-g` +CFLAGS =-Wall -Werror -std=c++11 #-g ``` -To recompile the program, run `make clean` followed by `make` and start GDB. The program no longer has any debugging symbols to lead the way through the source code. +To recompile the program, run `make clean`  followed by `make` and start GDB. The program no longer has any debugging symbols to lead the way through the source code. ![no debugging symbols][48] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - The command `info file` reveals the memory areas and entry point of the binary: ![info file output][49] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - -The entry point corresponds with the beginning of the `.text` area, which contains the actual opcode. To add a breakpoint at the entry point, type `break *0x401110` then start execution by typing `run`: +The entry point corresponds with the beginning of the `.text` area, which contains the actual opcode. To add a breakpoint at the entry point, type `break *0x401110` then start execution by typing `run` : ![breakpoint at the entry point][50] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - To set up a breakpoint at a certain address, specify it with the dereferencing operator `*`. #### Choose the disassembler flavor -Before digging deeper into assembly, you can choose which [assembly flavor][51] to use. GDB's default is AT&T, but I prefer the Intel syntax. Change it with: - +Before digging deeper into assembly, you can choose which [assembly flavor][51] to use. GDB's default is AT&T, but I prefer the Intel syntax. Change it with: ``` -`set disassembly-flavor intel` +set disassembly-flavor intel ``` ![changing assembly flavor][52] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - Now open the assembly and register the window by typing `layout asm` and `layout reg`. You should now see output like this: ![layout asm and layout reg output][53] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - #### Save configuration files Although you have already entered many commands, you haven't actually started debugging. If you are heavily debugging an application or trying to solve a reverse-engineering challenge, it can be useful to save your GDB-specific settings in a file. -The [config file `gdbinit`][54] in this project's GitHub repository contains the recently used commands: - +The [config file gdbinit][54] in this project's GitHub repository contains the recently used commands: ``` set disassembly-flavor intel @@ -486,11 +396,9 @@ With the `c2` switch applied, the program will crash. The program stops at the e ![continuing execution after crash][55] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - The `idiv` instruction performs an integer division with the dividend in the `RAX` register and the divisor specified as an argument. The quotient is loaded into the `RAX` register, and the remainder is loaded into `RDX`. -From the register overview, you can see the `RAX` contains _5_, so you have to find out which value is stored on the stack at position `RBP-0x4`. +From the register overview, you can see the `RAX` contains *5*, so you have to find out which value is stored on the stack at position `RBP-0x4`. #### Read memory @@ -498,71 +406,58 @@ To read raw memory content, you must specify a few more parameters than for read ![stack division output][56] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - You're most interested in the value of `rbp-0x4` because this is the position where the argument for `idiv` is stored. From the screenshot, you can see that the next variable is located at `rbp-0x8`, so the variable at `rbp-0x4` is 4 bytes wide. -In GDB, you can use the `x` command to _examine_ any memory content: +In GDB, you can use the `x` command to *examine* any memory content: -> `x/` < optional parameter `n` `f` `u` > < memory address `addr` > +> `x/` < optional parameter `n` `f` `u` > < memory address `addr` > Optional parameters: - * `n`: Repeat count (default: 1) refers to the unit size - * `f`: Format specifier, like in [printf][57] - * `u`: Unit size - * `b`: bytes - * `h`: half words (2 bytes) - * `w`: word (4 bytes)(default) - * `g`: giant word (8 bytes) +* n: Repeat count (default: 1) refers to the unit size +* f: Format specifier, like in [printf][57] +* u: Unit size + * b: `b`ytes +h: `h`alf `w`ords (2 bytes) +w: word (4 bytes)(default) + * g: `g`iant word (8 bytes) - - -To print out the value at `rbp-0x4`, type `x/u $rbp-4`: +To print out the value at `rbp-0x4`, type `x/u $rbp-4` : ![print value][58] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - If you keep this pattern in mind, it's straightforward to examine the memory. Check the [examining memory][59] section in the manual. #### Manipulate the assembly The arithmetic exception happened in the subroutine `zeroDivide()`. When you scroll a bit upward with the Up arrow key, you can find this pattern: - ``` -0x401211 <_Z10zeroDividev>              push   rbp -0x401212 <_Z10zeroDividev+1>            mov    rbp,rsp   +0x401211 <_Z10zeroDividev>              push   rbp +0x401212 <_Z10zeroDividev+1>            mov    rbp,rsp ``` This is called the [function prologue][60]: - 1. The base pointer (`rbp`) of the calling function is stored on the stack - 2. The value of the stack pointer (`rsp`) is loaded to the base pointer (`rbp`) +1. The base pointer (rbp) of the calling function is stored on the stack +2. The value of the stack pointer (rsp) is loaded to the base pointer (rbp) - - -Skip this subroutine completely. You can check the call stack with `backtrace`. You are only one stack frame ahead of your `main` function, so you can go back to `main` with a single `up`: +Skip this subroutine completely. You can check the call stack with `backtrace`. You are only one stack frame ahead of your `main` function, so you can go back to `main` with a single `up` : ![Callstack assembly][61] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - In your `main` function, you can find this pattern: - ``` -0x401431 <main+497>     cmp    BYTE PTR [rbp-0x12],0x0 -0x401435 <main+501>     je     0x40145f <main+543> -0x401437 <main+503>     call   0x401211<_Z10zeroDividev> +0x401431     cmp    BYTE PTR [rbp-0x12],0x0 +0x401435     je     0x40145f +0x401437     call   0x401211<_Z10zeroDividev> ``` The subroutine `zeroDivide()` is entered only when `jump equal (je)` evaluates to `true`. You can easily replace this with a `jump-not-equal (jne)` instruction, which has the opcode `0x75` (provided you are on an x86/64 architecture; the opcodes are different on other architectures). Restart the program by typing `run`. When the program stops at the entry function, manipulate the opcode by typing: - ``` -`set *(unsigned char*)0x401435 = 0x75` +set *(unsigned char*)0x401435 = 0x75 ``` Finally, type `continue`. The program will skip the subroutine `zeroDivide()` and won't crash anymore. @@ -573,8 +468,6 @@ You can find GDB working in the background in many integrated development enviro ![GDB in VSCodium][63] -(Stephan Avenwedde, [CC BY-SA 4.0][5]) - It's useful to know how to leverage GDB's functionality. Usually, not all of GDB's functions can be used from the IDE, so you benefit from having experience using GDB from the command line. -------------------------------------------------------------------------------- @@ -582,74 +475,74 @@ It's useful to know how to leverage GDB's functionality. Usually, not all of GDB via: https://opensource.com/article/21/1/gnu-project-debugger 作者:[Stephan Avenwedde][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://opensource.com/users/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/mistake_bug_fix_find_error.png?itok=PZaz3dga (magnifying glass on computer screen, finding a bug in the code) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/mistake_bug_fix_find_error.png [2]: https://www.gnu.org/software/gdb/ [3]: https://opensource.com/article/20/8/linux-dump -[4]: https://opensource.com/sites/default/files/uploads/gdb_output_no_dbg_symbols.png (gdb coredump output) -[5]: https://creativecommons.org/licenses/by-sa/4.0/ -[6]: tmp.2p0XrqmAS5#without_symbols -[7]: https://opensource.com/sites/default/files/uploads/gdb_output_with_symbols.png (GDB output with symbols) -[8]: https://opensource.com/sites/default/files/uploads/gdb_output_crash_on_c1_switch.png (gdb output crash on c1 switch) -[9]: https://opensource.com/sites/default/files/uploads/gdb_output_info_source.png (gdb info source output) -[10]: http://dwarfstd.org/ -[11]: https://sourceware.org/gdb/current/onlinedocs/gdb/Compilation.html#Compilation -[12]: https://opensource.com/sites/default/files/uploads/gdb_output_info_shared.png (gdb info shared output) -[13]: https://opensource.com/article/20/6/linux-libraries -[14]: https://opensource.com/sites/default/files/uploads/gdb_output_stopped_by_sigint.png (gdb output stopped by sigint) -[15]: https://opensource.com/sites/default/files/uploads/gdb_output_list_main.png (gdb output list main) -[16]: https://opensource.com/sites/default/files/uploads/gdb_output_breakpoint_added.png (gdb output breakpoint added) -[17]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_main.png (gdb output break at main) -[18]: https://opensource.com/sites/default/files/images/gdb_output_screen_corrupted.png (gdb output corrupted) -[19]: https://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys -[20]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_1.png (gdb output stop on watchpoint_1) -[21]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_2.png (gdb output stop on watchpoint_2) -[22]: https://opensource.com/sites/default/files/uploads/gdb_output_info_watchpoints.png (gdb output info watchpoints) -[23]: https://opensource.com/sites/default/files/uploads/gdb_output_info_breakpoints.png (gdb output info breakpoints) -[24]: https://opensource.com/sites/default/files/uploads/gdb_output_disabled_breakpoints.png (disabled breakpoints) -[25]: https://opensource.com/sites/default/files/uploads/gdb_output_set_conditional_breakpoint.png (Set conditional breakpoint) -[26]: https://opensource.com/sites/default/files/uploads/gdb_output_print_variable.png (print variable) -[27]: https://opensource.com/sites/default/files/uploads/gdb_output_modify_breakpoint.png (modify breakpoint) -[28]: https://opensource.com/sites/default/files/uploads/gdb_output_syscall_catch.png (catch syscall write output) -[29]: https://sourceware.org/gdb/current/onlinedocs/gdb/Breakpoints.html#Breakpoints -[30]: https://opensource.com/sites/default/files/uploads/gdb_output_print_and_modify.png (print variable) -[31]: https://opensource.com/sites/default/files/uploads/gdb_output_whatis.png (whatis output) -[32]: https://opensource.com/sites/default/files/uploads/gdb_output_info_scope_main.png (info scope main output) -[33]: https://opensource.com/sites/default/files/uploads/gdb_output_info_locals_main.png (info locals output) -[34]: https://sourceware.org/gdb/current/onlinedocs/gdb/Symbols.html -[35]: https://man7.org/linux/man-pages/man1/ps.1.html -[36]: https://man7.org/linux/man-pages/man1/top.1.html -[37]: https://opensource.com/sites/default/files/uploads/coredump_running.png (coredump application) -[38]: https://opensource.com/sites/default/files/uploads/gdb_output_attaching_to_process.png (attach GDB to coredump) -[39]: https://opensource.com/sites/default/files/uploads/gdb_output_backtrace.png (layout src and backtrace output) -[40]: https://sourceware.org/gdb/current/onlinedocs/gdb/Attach.html#Attach -[41]: https://opensource.com/sites/default/files/uploads/gdb_output_stackframe_up.png (moving up the stack to main.cpp) -[42]: https://sourceware.org/gdb/current/onlinedocs/gdb/Stack.html#Stack -[43]: https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_48.html#SEC49 -[44]: https://opensource.com/sites/default/files/uploads/crash.png (Crash meme) -[45]: https://opensource.com/sites/default/files/uploads/gdb_output_coredump.png (coredump output) -[46]: https://opensource.com/sites/default/files/uploads/gdb_output_up_five.png (up 5 output) +[4]: https://opensource.com/sites/default/files/uploads/gdb_output_no_dbg_symbols.png +[5]: https://opensource.com/sites/default/files/uploads/gdb_output_with_symbols.png +[6]: https://opensource.com/sites/default/files/uploads/gdb_output_crash_on_c1_switch.png +[7]: https://opensource.com/sites/default/files/uploads/gdb_output_info_source.png +[8]: http://dwarfstd.org/ +[9]: https://sourceware.org/gdb/current/onlinedocs/gdb/Compilation.html#Compilation +[10]: https://opensource.com/sites/default/files/uploads/gdb_output_info_shared.png +[11]: https://opensource.com/article/20/6/linux-libraries +[12]: https://opensource.com/sites/default/files/uploads/gdb_output_stopped_by_sigint.png +[13]: https://opensource.com/sites/default/files/uploads/gdb_output_list_main.png +[14]: https://opensource.com/sites/default/files/uploads/gdb_output_breakpoint_added.png +[15]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_main.png +[16]: https://opensource.com/sites/default/files/images/gdb_output_screen_corrupted.png +[17]: https://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys +[18]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_1.png +[19]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_2.png +[20]: https://opensource.com/sites/default/files/uploads/gdb_output_info_watchpoints.png +[21]: https://opensource.com/sites/default/files/uploads/gdb_output_info_breakpoints.png +[22]: https://opensource.com/sites/default/files/uploads/gdb_output_disabled_breakpoints.png +[23]: https://opensource.com/sites/default/files/uploads/gdb_output_set_conditional_breakpoint.png +[24]: https://opensource.com/sites/default/files/uploads/gdb_output_print_variable.png +[25]: https://opensource.com/sites/default/files/uploads/gdb_output_modify_breakpoint.png +[26]: https://opensource.com/sites/default/files/uploads/gdb_output_syscall_catch.png +[27]: https://sourceware.org/gdb/current/onlinedocs/gdb/Breakpoints.html#Breakpoints +[28]: https://opensource.com/sites/default/files/uploads/gdb_output_print_and_modify.png +[29]: https://opensource.com/sites/default/files/uploads/gdb_output_whatis.png +[30]: https://opensource.com/sites/default/files/uploads/gdb_output_info_scope_main.png +[31]: https://opensource.com/sites/default/files/uploads/gdb_output_info_locals_main.png +[32]: https://sourceware.org/gdb/current/onlinedocs/gdb/Symbols.html +[33]: https://man7.org/linux/man-pages/man1/ps.1.html +[34]: https://man7.org/linux/man-pages/man1/top.1.html +[35]: https://opensource.com/sites/default/files/uploads/coredump_running.png +[36]: https://opensource.com/sites/default/files/uploads/gdb_output_attaching_to_process.png +[37]: https://opensource.com/sites/default/files/uploads/gdb_output_backtrace.png +[38]: https://sourceware.org/gdb/current/onlinedocs/gdb/Attach.html#Attach +[39]: https://opensource.com/sites/default/files/uploads/gdb_output_stackframe_up.png +[40]: https://sourceware.org/gdb/current/onlinedocs/gdb/Stack.html#Stack +[41]: https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_48.html#SEC49 +[42]: https://opensource.com/article/20/8/linux-dump +[43]: https://creativecommons.org/licenses/by-sa/4.0/ +[44]: https://opensource.com/sites/default/files/uploads/crash.png +[45]: https://opensource.com/sites/default/files/uploads/gdb_output_coredump.png +[46]: https://opensource.com/sites/default/files/uploads/gdb_output_up_five.png [47]: https://en.wikipedia.org/wiki/Assembly_language -[48]: https://opensource.com/sites/default/files/uploads/gdb_output_no_debugging_symbols.png (no debugging symbols) -[49]: https://opensource.com/sites/default/files/uploads/gdb_output_info_file.png (info file output) -[50]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_start.png (breakpoint at the entry point) +[48]: https://opensource.com/sites/default/files/uploads/gdb_output_no_debugging_symbols.png +[49]: https://opensource.com/sites/default/files/uploads/gdb_output_info_file.png +[50]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_start.png [51]: https://en.wikipedia.org/wiki/X86_assembly_language#Syntax -[52]: https://opensource.com/sites/default/files/uploads/gdb_output_disassembly_flavor.png (changing assembly flavor) -[53]: https://opensource.com/sites/default/files/uploads/gdb_output_layout_reg_asm.png (layout asm and layout reg output) +[52]: https://opensource.com/sites/default/files/uploads/gdb_output_disassembly_flavor.png +[53]: https://opensource.com/sites/default/files/uploads/gdb_output_layout_reg_asm.png [54]: https://github.com/hANSIc99/core_dump_example/blob/master/gdbinit -[55]: https://opensource.com/sites/default/files/uploads/gdb_output_asm_div_zero.png (continuing execution after crash) -[56]: https://opensource.com/sites/default/files/uploads/gdb_output_stack_division.png (stack division output) +[55]: https://opensource.com/sites/default/files/uploads/gdb_output_asm_div_zero.png +[56]: https://opensource.com/sites/default/files/uploads/gdb_output_stack_division.png [57]: https://en.wikipedia.org/wiki/Printf_format_string#Type_field -[58]: https://opensource.com/sites/default/files/uploads/gdb_output_examine_1.png (print value) +[58]: https://opensource.com/sites/default/files/uploads/gdb_output_examine_1.png [59]: https://sourceware.org/gdb/current/onlinedocs/gdb/Memory.html [60]: https://en.wikipedia.org/wiki/Function_prologue -[61]: https://opensource.com/sites/default/files/uploads/gdb_output_callstack_assembly_0.png (Callstack assembly) +[61]: https://opensource.com/sites/default/files/uploads/gdb_output_callstack_assembly_0.png [62]: https://github.com/WebFreak001/code-debug -[63]: https://opensource.com/sites/default/files/uploads/vs_codium_native_debug.png (GDB in VSCodium) +[63]: https://opensource.com/sites/default/files/uploads/vs_codium_native_debug.png diff --git a/sources/tech/20210113 Analyze Kubernetes files for errors with KubeLinter.md b/sources/tech/20210113 Analyze Kubernetes files for errors with KubeLinter.md index 37b7f2ff53..ed86a16cf2 100644 --- a/sources/tech/20210113 Analyze Kubernetes files for errors with KubeLinter.md +++ b/sources/tech/20210113 Analyze Kubernetes files for errors with KubeLinter.md @@ -1,18 +1,20 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Analyze Kubernetes files for errors with KubeLinter) -[#]: via: (https://opensource.com/article/21/1/kubelinter) -[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) +[#]: subject: "Analyze Kubernetes files for errors with KubeLinter" +[#]: via: "https://opensource.com/article/21/1/kubelinter" +[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Analyze Kubernetes files for errors with KubeLinter ====== -Find and fix errors in your Helm charts and Kubernetes configuration -files with KubeLinter. +Find and fix errors in your Helm charts and Kubernetes configuration files with KubeLinter. + ![magnifying glass on computer screen, finding a bug in the code][1] +Image by: Opensource.com + [KubeLinter][2] is an open source project released by Stackrox to analyze Kubernetes YAML files for security issues and errant code. The tool covers Helm charts and Kubernetes configuration files, including [Knative][3] files. Using it can improve cloud-native development, reduce development time, and encourage DevOps best practices. ### Download and install @@ -23,23 +25,20 @@ You have several options to install KubeLinter. You can install manually from the Git repository: - ``` -$ git clone [git@github.com][4]:stackrox/kube-linter.git -$ cd kube-linter && make build +$ git clone git@github.com:stackrox/kube-linter.git +$ cd kube-linter && make build $ .gobin/kube-linter version ``` -If you use [Homebrew][5], you can install it with the `brew` command: - +If you use [Homebrew][4], you can install it with the `brew` command: ``` -`$ brew install kube-linter` +$ brew install kube-linter ``` You can also install it with Go (as I did): - ``` $ GO111MODULE=on go get golang.stackrox.io/kube-linter/cmd/kube-linter go: finding golang.stackrox.io/kube-linter latest @@ -48,11 +47,10 @@ go: extracting golang.stackrox.io/kube-linter v0.0.0-20201204022312-475075c74675 [...] ``` -After installing, you must make an alias in your `~/.bashrc`: - +After installing, you must make an alias in your `~/.bashrc` : ``` -$ echo "alias kube-linter=$HOME/go/bin/kube-linter" >> ~/.bashrc +$ echo "alias kube-linter=$HOME/go/bin/kube-linter" >> ~/.bashrc $ source ~/.bashrc ``` @@ -60,7 +58,6 @@ $ source ~/.bashrc Now that the tool is installed, try it out on a Helm chart. First, start Minikube with a clean build and some small configuration changes: - ``` $ minikube config set kubernetes-version v1.19.0 $ minikube config set memory 8000 @@ -68,23 +65,22 @@ $ minikube config set memory 8000 $ minikube config set cpus 12 ❗  These changes will take effect upon a minikube delete and then a minikube start $ minikube delete -🔥  Deleting "minikube" in docker ... -🔥  Deleting container "minikube" ... -🔥  Removing /home/jess/.minikube/machines/minikube ... -💀  Removed all traces of the "minikube" cluster. +?  Deleting "minikube" in docker ... +?  Deleting container "minikube" ... +?  Removing /home/jess/.minikube/machines/minikube ... +?  Removed all traces of the "minikube" cluster. $ minikube start -😄  minikube v1.14.2 on Debian bullseye/sid +?  minikube v1.14.2 on Debian bullseye/sid ✨  Using the docker driver based on user configuration -👍  Starting control plane node minikube in cluster minikube -🎉  minikube 1.15.1 is available! Download it: -💡  To disable this notice, run: 'minikube config set WantUpdateNotification false' +?  Starting control plane node minikube in cluster minikube +?  minikube 1.15.1 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.15.1 +?  To disable this notice, run: 'minikube config set WantUpdateNotification false' -💾  Downloading Kubernetes v1.19.0 preload ... +?  Downloading Kubernetes v1.19.0 preload ... ``` -Once everything is running, create an example Helm chart called `first_test`: - +Once everything is running, create an example Helm chart called `first_test` : ``` $ helm create first_test @@ -95,7 +91,6 @@ first_test Test KubeLinter against the new, unedited chart. Run the `kube-linter` command to see the available commands and flags: - ``` $ kube-linter Usage: @@ -103,8 +98,8 @@ Usage: Available Commands:   checks      View more information on lint checks -  help        Help about any command -  lint        Lint Kubernetes YAML files and Helm charts +  help  Help about any command +  lint  Lint Kubernetes YAML files and Helm charts   templates   View more information on check templates   version     Print version and exit @@ -116,13 +111,12 @@ Use "/home/jess/go/bin/kube-linter [command] --help" for more information about Then test what the basic `lint` command does to your example chart. You'll end up with many errors, so I'll grab a snippet of some issues: - ``` $ kube-linter lint first_test/ -first_test/first_test/templates/deployment.yaml: (object: <no namespace>/test-release-first_test apps/v1, Kind=Deployment) container "first_test" does not have a read-only root file system (check: no-read-only-root-fs, remediation: Set readOnlyRootFilesystem to true in your container's securityContext.) +first_test/first_test/templates/deployment.yaml: (object: /test-release-first_test apps/v1, Kind=Deployment) container "first_test" does not have a read-only root file system (check: no-read-only-root-fs, remediation: Set readOnlyRootFilesystem to true in your container's securityContext.) -first_test/first_test/templates/deployment.yaml: (object: <no namespace>/test-release-first_test apps/v1, Kind=Deployment) container "first_test" is not set to runAsNonRoot (check: run-as-non-root, remediation: Set runAsUser to a non-zero number, and runAsNonRoot to true, in your pod or container securityContext. See for more details.) +first_test/first_test/templates/deployment.yaml: (object: /test-release-first_test apps/v1, Kind=Deployment) container "first_test" is not set to runAsNonRoot (check: run-as-non-root, remediation: Set runAsUser to a non-zero number, and runAsNonRoot to true, in your pod or container securityContext. See https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ for more details.) [...] Error: found 12 lint errors ``` @@ -131,14 +125,12 @@ For the sake of brevity, I picked two security issues that are easy for me to f The `kube-linter` output provides hints about the required fixes. For instance, the first error ends with: - ``` -`remediation: Set readOnlyRootFilesystem to true in your container's securityContext.` +remediation: Set readOnlyRootFilesystem to true in your container's securityContext. ``` The next step is clear: Open the `values.yaml` file in a text editor (I use Vi, but you can use whatever you like) and locate the `securityContext` section: - ``` securityContext: {}   # capabilities: @@ -151,12 +143,11 @@ securityContext: {} Uncomment the section and remove the braces: - ``` -securityContext: +securityContext:    capabilities:      drop: -    - ALL +     - ALL    readOnlyRootFilesystem: true    runAsNonRoot: true    runAsUser: 1000 @@ -164,20 +155,18 @@ securityContext: Save the file and rerun the linter. Those errors no longer show up in the list, and the error count changes. - ``` -`Error: found 10 lint errors` +Error: found 10 lint errors ``` Congratulations! You have resolved security issues! ### Kubernetes with KubeLinter -This example uses an app file from my [previous article on Knative][6] to test against Kubernetes config files. I already have Knative up and running, so you may want to review that article if it's not running on your system. +This example uses an app file from my [previous article on Knative][5] to test against Kubernetes config files. I already have Knative up and running, so you may want to review that article if it's not running on your system. I downloaded the Kourier service YAML file for this example: - ``` $ ls kourier.yaml   first_test @@ -185,13 +174,12 @@ kourier.yaml   first_test Start by running the linter against `kourier.yaml`. Again, there are several issues. I'll focus on resource problems: - ``` -$ kube-linter lint kourier.yaml +$ kube-linter lint kourier.yaml -kourier.yaml: (object: kourier-system/3scale-kourier-gateway apps/v1, Kind=Deployment) container "kourier-gateway" has cpu limit 0 (check: unset-cpu-requirements, remediation: Set your container's CPU requests and limits depending on its requirements. See for more details.) +kourier.yaml: (object: kourier-system/3scale-kourier-gateway apps/v1, Kind=Deployment) container "kourier-gateway" has cpu limit 0 (check: unset-cpu-requirements, remediation: Set your container's CPU requests and limits depending on its requirements. See https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for more details.) -kourier.yaml: (object: kourier-system/3scale-kourier-gateway apps/v1, Kind=Deployment) container "kourier-gateway" has memory request 0 (check: unset-memory-requirements, remediation: Set your container's memory requests and limits depending on its requirements. See for more details.) +kourier.yaml: (object: kourier-system/3scale-kourier-gateway apps/v1, Kind=Deployment) container "kourier-gateway" has memory request 0 (check: unset-memory-requirements, remediation: Set your container's memory requests and limits depending on its requirements. See https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for more details.) Error: found 12 lint errors ``` @@ -200,7 +188,6 @@ Since this is a single deployment file, you can edit it directly. Open it in a t Start with deployment: - ``` apiVersion: apps/v1 kind: Deployment @@ -214,70 +201,67 @@ metadata: The containers section has some problems: - ``` -   spec: -      containers: -      - args: -       - --base-id 1 -        - -c /tmp/config/envoy-bootstrap.yaml -        - --log-level info -        command: -       - /usr/local/bin/envoy -        image: docker.io/maistra/proxyv2-ubi8:1.1.5 -        imagePullPolicy: Always -        name: kourier-gateway -        ports: -        - name: http2-external -          containerPort: 8080 -          protocol: TCP -        - name: http2-internal -          containerPort: 8081 -          protocol: TCP -        - name: https-external -          containerPort: 8443 -          protocol: TCP +spec: + containers: + - args: +  - --base-id 1 +   - -c /tmp/config/envoy-bootstrap.yaml +   - --log-level info +   command: +  - /usr/local/bin/envoy +   image: docker.io/maistra/proxyv2-ubi8:1.1.5 +   imagePullPolicy: Always +   name: kourier-gateway +   ports: +   - name: http2-external +     containerPort: 8080 +     protocol: TCP +   - name: http2-internal +     containerPort: 8081 +     protocol: TCP +   - name: https-external +     containerPort: 8443 +     protocol: TCP ``` Add some specs to the container configuration: - ``` -   spec: -      containers: -      - args: -       - --base-id 1 -        - -c /tmp/config/envoy-bootstrap.yaml -        - --log-level info -        command: -       - /usr/local/bin/envoy -        image: docker.io/maistra/proxyv2-ubi8:1.1.5 -        imagePullPolicy: Always -        name: kourier-gateway -        ports: -        - name: http2-external -          containerPort: 8080 -          protocol: TCP -        - name: http2-internal -          containerPort: 8081 -          protocol: TCP -        - name: https-external -          containerPort: 8443 -          protocol: TCP +spec: + containers: + - args: +  - --base-id 1 +   - -c /tmp/config/envoy-bootstrap.yaml +   - --log-level info +   command: +  - /usr/local/bin/envoy +   image: docker.io/maistra/proxyv2-ubi8:1.1.5 +   imagePullPolicy: Always +   name: kourier-gateway +   ports: +   - name: http2-external +     containerPort: 8080 +     protocol: TCP +   - name: http2-internal +     containerPort: 8081 +     protocol: TCP +   - name: https-external +     containerPort: 8443 +     protocol: TCP  resources:     limits: -      cpu: 100m -      memory: 128Mi + cpu: 100m + memory: 128Mi     requests: -      cpu: 100m -      memory: 128Mi + cpu: 100m + memory: 128Mi ``` When you rerun the linter, you'll notice these issues no longer show in the output, and the error count changes: - ``` -`Error: found 8 lint errors` +Error: found 8 lint errors ``` Congratulations! You have fixed resource issues in your Kubernetes file! @@ -293,17 +277,16 @@ I think KubeLinter's best part is that each error message includes documentation via: https://opensource.com/article/21/1/kubelinter 作者:[Jessica Cherry][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://opensource.com/users/cherrybomb -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/mistake_bug_fix_find_error.png?itok=PZaz3dga (magnifying glass on computer screen, finding a bug in the code) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/mistake_bug_fix_find_error.png [2]: https://github.com/stackrox/kube-linter [3]: https://knative.dev/ -[4]: mailto:git@github.com -[5]: https://opensource.com/article/20/6/homebrew-linux -[6]: https://opensource.com/article/20/11/knative +[4]: https://opensource.com/article/20/6/homebrew-linux +[5]: https://opensource.com/article/20/11/knative diff --git a/sources/tech/20210123 How I programmed a virtual gift exchange.md b/sources/tech/20210123 How I programmed a virtual gift exchange.md index 446c1b50c2..a633e69e0c 100644 --- a/sources/tech/20210123 How I programmed a virtual gift exchange.md +++ b/sources/tech/20210123 How I programmed a virtual gift exchange.md @@ -1,40 +1,40 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (How I programmed a virtual gift exchange) -[#]: via: (https://opensource.com/article/21/1/open-source-gift-exchange) -[#]: author: (Chris Hermansen https://opensource.com/users/clhermansen) +[#]: subject: "How I programmed a virtual gift exchange" +[#]: via: "https://opensource.com/article/21/1/open-source-gift-exchange" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " How I programmed a virtual gift exchange ====== -A book club takes its annual gift exchange online with the help of HTML, -CSS, and JavaScript. +A book club takes its annual gift exchange online with the help of HTML, CSS, and JavaScript. + ![Package wrapped with brown paper and red bow][1] +Image by: Photo by [Jess Bailey][2] on [Unsplash][3] + Every year, my wife's book club has a book exchange during the holidays. Due to the need to maintain physical distance in 2020, I created an online gift exchange for them to use during a book club videoconference. Apparently, the virtual book exchange worked out (at least, I received kind compliments from the book club members), so I decided to share this simple little hack. ### How the book exchange usually works In past years, the exchange has gone something like this: - 1. Each person buys a book and wraps it up. - 2. Everyone arrives at the host's home and puts the wrapped books in a pile. - 3. Each person draws a number out of a hat, which establishes their turn. - 4. The person who drew No. 1 selects a book from the pile and unwraps it. In turn, each subsequent person chooses to either take a wrapped book from the pile or to steal an unwrapped book from someone who has gone before. - 5. When someone's book is stolen, they can either replace it with a wrapped book from the pile or steal another book (but not the one that was stolen from them) from someone else. - 6. And so on… eventually, someone has to take the last unwrapped book to end the exchange. - - +1. Each person buys a book and wraps it up. +2. Everyone arrives at the host's home and puts the wrapped books in a pile. +3. Each person draws a number out of a hat, which establishes their turn. +4. The person who drew No. 1 selects a book from the pile and unwraps it. In turn, each subsequent person chooses to either take a wrapped book from the pile or to steal an unwrapped book from someone who has gone before. +5. When someone's book is stolen, they can either replace it with a wrapped book from the pile or steal another book (but not the one that was stolen from them) from someone else. +6. And so on… eventually, someone has to take the last unwrapped book to end the exchange. ### Designing the virtual book exchange My first decision was which implementation platform to use for the book exchange. Because there would already be a browser open to host the videoconference, I decided to use HTML, CSS, and JavaScript. -Then it was design time. After some thinking, I decided to use rectangles to represent the book club members and the books. The books would be draggable, and when one was dropped on a member's rectangle, the book would unwrap (and stay unwrapped). I needed some "wrapping paper," so I used this source of [free-to-use images][2]. +Then it was design time. After some thinking, I decided to use rectangles to represent the book club members and the books. The books would be draggable, and when one was dropped on a member's rectangle, the book would unwrap (and stay unwrapped). I needed some "wrapping paper," so I used this source of [free-to-use images][4]. -I took screenshots of the patterns I liked and used [GIMP][3] to scale the images to the right width and height. +I took screenshots of the patterns I liked and used [GIMP][5] to scale the images to the right width and height. I needed a way to handle draggable and droppable interactions; given that I've been using jQuery and jQuery UI for several years now, I decided to continue along that path. @@ -42,25 +42,19 @@ For a while, I struggled with what a droppable element should do when something Jumping to the results, here's a screenshot of the user interface at the beginning of the exchange: -![Virtual book exchange][4] - -(Chris Hermansen, [CC BY-SA 4.0][5]) +![Virtual book exchange][6] There are nine book club members: Wanda, Carlos, Bill, and so on. There are also nine fairly ugly wrapped parcels. Let's say Wanda goes first and chooses the flower wrapping paper. The host clicks and drags that parcel to Wanda's name, and the parcel unwraps: -![Virtual book exchange][6] - -(Chris Hermansen, [CC BY-SA 4.0][5]) +![Virtual book exchange][7] Whoops! That title and author are a bit too long to fit on the book's "cover." Oh well, I'll fix that in the next version. Carlos is next. He decides he really wants to read that book, so he steals it. Wanda then chooses the paisley pattern, and the screen looks like this: -![Virtual book exchange][7] - -(Chris Hermansen, [CC BY-SA 4.0][5]) +![Virtual book exchange][8] And so on until the exchange ends. @@ -68,120 +62,117 @@ And so on until the exchange ends. So what about the code? Here it is: - ``` -     1  <!doctype html> -     2  <[html][8] lang="en"> -     3  <[head][9]> -     4    <[meta][10] charset="utf-8"> -     5    <[title][11]>Book Exchange</[title][11]> -     6    <[link][12] rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> -     7    <[style][13]> -     8    .draggable { -     9      float: left; -    10      width: 90px; -    11      height: 90px; -    12      background: #ccc; -    13      padding: 5px; -    14      margin: 5px 5px 5px 0; -    15    } -    16    .droppable { -    17      float: left; -    18      width: 100px; -    19      height: 125px; -    20      background: #999; -    21      color: #fff; -    22      padding: 10px; -    23      margin: 10px 10px 10px 0; -    24    } -    25    </[style][13]> -    26    <[script][14] src="[https://code.jquery.com/jquery-1.12.4.js"\>\][15]</[script][14]> -    27    <[script][14] src="[https://code.jquery.com/ui/1.12.1/jquery-ui.js"\>\][16]</[script][14]> -    28  </[head][9]> -    29  <[body][17]> -    30  <[h1][18] style="color:#1a1aff;">Raffles Book Club Remote Gift Exchange</[h1][18]> -    31  <[h2][19] style="color:#aa0a0a;">The players, in random order, and the luxurious gifts, wrapped:</[h2][19]> -    32    -    33  <[div][20]> -    34  <[div][20] id="wanda" class="droppable">Wanda</[div][20]> -    35  <[div][20] id="carlos" class="droppable">Carlos</[div][20]> -    36  <[div][20] id="bill" class="droppable">Bill</[div][20]> -    37  <[div][20] id="arlette" class="droppable">Arlette</[div][20]> -    38  <[div][20] id="joanne" class="droppable">Joanne</[div][20]> -    39  <[div][20] id="aleks" class="droppable">Alekx</[div][20]> -    40  <[div][20] id="ermintrude" class="droppable">Ermintrude</[div][20]> -    41  <[div][20] id="walter" class="droppable">Walter</[div][20]> -    42  <[div][20] id="hilary" class="droppable">Hilary</[div][20]> -    43  </[div][20]> -    44  <[div][20]> -    45  <[div][20] id="bows" class="draggable" style="background-image: url('bows.png');"></[div][20]> -    46  <[div][20] id="boxes" class="draggable" style="background-image: url('boxes.png');"></[div][20]> -    47  <[div][20] id="circles" class="draggable" style="background-image: url('circles.png');"></[div][20]> -    48  <[div][20] id="gerbers" class="draggable" style="background-image: url('gerbers.png');"></[div][20]> -    49  <[div][20] id="hippie" class="draggable" style="background-image: url('hippie.png');"></[div][20]> -    50  <[div][20] id="lattice" class="draggable" style="background-image: url('lattice.png');"></[div][20]> -    51  <[div][20] id="nautical" class="draggable" style="background-image: url('nautical.png');"></[div][20]> -    52  <[div][20] id="splodges" class="draggable" style="background-image: url('splodges.png');"></[div][20]> -    53  <[div][20] id="ugly" class="draggable" style="background-image: url('ugly.png');"></[div][20]> -    54  </[div][20]> -    55    -    56  <[script][14]> -    57  var books = { -    58      'bows': 'Untamed by Glennon Doyle', -    59      'boxes': "The Heart's Invisible Furies by John Boyne", -    60      'circles': 'The Great Halifax Explosion by John Bacon', -    61      'gerbers': 'Homes: A Refugee Story by Abu Bakr al Rabeeah, Winnie Yeung', -    62      'hippie': 'Before We Were Yours by Lisa Wingate', -    63      'lattice': "Hamnet and Judith by Maggie O'Farrell", -    64      'nautical': 'Shuggy Bain by Douglas Stewart', -    65      'splodges': 'Magdalena by Wade Davis', -    66      'ugly': 'Funny Boy by Shyam Selvadurai' -    67  }; -    68  $( ".droppable" ).droppable({ -    69    drop: function(event, ui) { -    70      var element = $(ui.draggable[0]); -    71      var wrapping = element.attr('id'); -    72      /* alert( $(this).text() + " got " + wrapping); */ -    73      $(ui.draggable[0]).css("background-image","url(book_cover.png)"); -    74      $(ui.draggable[0]).text(books[wrapping]); -    75    }, -    76    out: function() { -    77      /* alert( $(this).text() + " lost it" ); */ -    78    } -    79  }); -    80  $( ".draggable" ).draggable(); -    81  </[script][14]> -    82    -    83  </[body][17]> -    84  </[html][8]> +1  +2  +3  +4    +5    Book Exchange +6    +7    +26    +27    +28  +29  +30 

Raffles Book Club Remote Gift Exchange

+31 

The players, in random order, and the luxurious gifts, wrapped:

+32    +33 
+34 
Wanda
+35 
Carlos
+36 
Bill
+37 
Arlette
+38 
Joanne
+39 
Alekx
+40 
Ermintrude
+41 
Walter
+42 
Hilary
+43 
+44 
+45 
+46 
+47 
+48 
+49 
+50 
+51 
+52 
+53 
+54 
+55    +56  +82    +83  +84  ``` ### Breaking it down Let's go over this code bit by bit. - * **Lines 1–6:** Upfront, I have the usual HTML boilerplate, `HTML`, `HEAD`, `META`, `TITLE` elements, followed by a link to the CSS for jQuery UI. - * **Lines 7–25:** I added two new style classes: `draggable` and `droppable`. These define the layout for the books (draggable) and the people (droppable). Note that, aside from defining the size, background color, padding, and margin, I established that these need to float left. This way, the layout adjusts to the browser window width in a reasonably acceptable form. - * **Line 26–27:** With the CSS out of the way, it's time for the JavaScript libraries, first jQuery, then jQuery UI. - * **Lines 29–83:** Now that the `HEAD` element is done, next is the `BODY`: - * **Lines 30–31:** These couple of titles, `H1` and `H2`, let people know what they're doing here. - * **Lines 33–43:** A `DIV` to contain the people: - * **Lines 34–42:** The people are defined as droppable `DIV` elements and given `ID` fields corresponding to their names. - * **Lines 44–54:** A `DIV` to contain the books: - * **Lines 45–53:** The books are defined as draggable `DIV` elements. Each element is declared with a background image corresponding to the wrapping paper with no text between the `
` and `
`. The `ID` fields correspond to the wrapping paper. - * **Lines 56–81:** These contain JavaScript to make it all work. - * **Lines 57–67:** This JavaScript object contains the book definitions. The keys (`'bows'`, `'boxes'`, etc.) correspond to the `ID` fields of the book `DIV` elements. The values (`'Untamed by Glennon Doyle',` `"The Heart's Invisible Furies by John Boyne"`, etc.) are the book titles and authors. - * **Lines 68–79:** This JavaScript jQuery UI function defines the droppable functionality to be attached to HTML elements whose class is `droppable`. - * **Lines 69–75:** When a `draggable` element is dropped onto a `droppable` element, the function `drop` is called. - * **Line 70:** The `element` variable is assigned the draggable object that was dropped (this will be a `
` element. - * **Line 71:** The `wrapping` variable is assigned the value of the `ID` field in the draggable object. - * **Line 72:** This line is commented out, but while I was learning and testing, calls to `alert()` were useful. - * **Line 73:** This reassigns the draggable object's background image to a bland image on which text can be read; part 1 of unwrapping is getting rid of the wrapping paper. - * **Line 74:** This sets the text of the draggable object to the title of the book, looked up in the book's object using the draggable object's ID; part 2 of the unwrapping is showing the book title and author. - * **Lines 76–78:** For a while, I thought I wanted something to happen when a draggable object was removed from a droppable object (e.g., when a club member stole a book), which would require using the `out` function in a droppable object. Eventually, I decided not to do anything. But, this could note that the book was stolen and make it "unstealable" for one turn; or it could show a status line that says something like: _"Wanda's book Blah Blah by Joe Blogs was stolen, and she needs to choose another."_ - * **Line 80:** This JavaScript jQuery UI function defines the draggable functionality to be attached to HTML elements whose class is `draggable`. In my case, the default behavior was all I needed. - - +* Lines 1–6: Upfront, I have the usual `HTML` boilerplate, HTML, `HEAD`, `META`, `TITLE` elements, followed by a link to the CSS for jQuery UI. +* Lines 7–25: I added two new style classes: `draggable` and `droppable`. These define the layout for the books (draggable) and the people (droppable). Note that, aside from defining the size, background color, padding, and margin, I established that these need to float left. This way, the layout adjusts to the browser window width in a reasonably acceptable form. +* Line 26–27: With the CSS out of the way, it's time for the JavaScript libraries, first jQuery, then jQuery UI. +* Lines 29–83: Now that the `HEAD` `element` is done, next is the `BODY`: + * Lines 30–31: These couple of titles, `H1` and `H2`, let people know what they're doing here. +Lines 33–43: A `DIV` to contain the people: +Lines 34–42: The people are defined as `droppable` `DIV` elements and given `ID` fields corresponding to their names. +Lines 44–54: A `DIV` to contain the books: +Lines 45–53: The books are defined as `draggable` `DIV` elements. Each element is declared with a background image corresponding to the `wrapping` paper with no text between the `
` and `
`. The `ID` fields correspond to the wrapping paper. +Lines 56–81: These contain JavaScript to make it all work. + * Lines 57–67: This JavaScript object contains the book definitions. The keys ('bows', `'boxes'`, etc.) correspond to the `ID` fields of the book `DIV` elements. The values ('Untamed by Glennon Doyle', `"The Heart's Invisible Furies by John Boyne"`, etc.) are the book titles and authors. +Lines 68–79: This JavaScript jQuery UI function defines the `droppable` functionality to be attached to HTML elements whose class is `drop`pable. +Lines 69–75: When a `draggable` element is dropped onto a droppable element, the function drop is called. +Line 70: The element variable is assigned the draggable object that was dropped (this will be a `
` element. +Line 71: The wrapping variable is assigned the value of the `ID` field in the draggable object. +Line 72: This line is commented `out`, but while I was learning and testing, calls to `alert()` were useful. + * Line 73: This reassigns the draggable object's background image to a bland image on which text can be read; part 1 of unwrapping is getting rid of the wrapping paper. + * Line 74: This sets the text of the draggable object to the title of the book, looked up in the book's object using the draggable object's ID; part 2 of the unwrapping is showing the book title and author. +Lines 76–78: For a while, I thought I wanted something to happen when a draggable object was removed from a droppable object (e.g., when a club member stole a book), which would require using the out function in a droppable object. Eventually, I decided not to do anything. But, this could note that the book was stolen and make it "unstealable" for one turn; or it could show a status line that says something like: "Wanda's book Blah Blah by Joe Blogs was stolen, and she needs to choose another." +Line 80: This JavaScript jQuery UI function defines the draggable functionality to be attached to HTML elements whose class is draggable. In my case, the default behavior was all I needed. That's it! @@ -189,49 +180,38 @@ That's it! Libraries like jQuery and jQuery UI are incredibly helpful when trying to do something complicated in JavaScript. Look at the `$().draggable()` and `$().droppable()` functions, for example: - ``` -`$( ".draggable" ).draggable();` +$( ".draggable" ).draggable(); ``` The `".draggable"` allows associating the `draggable()` function with any HTML element whose class is "draggable." The `draggable()` function comes with all sorts of useful behavior about picking, dragging, and releasing a draggable HTML element. -If you haven't spent much time with jQuery, I really like the book [_jQuery in Action_][21] by Bear Bibeault, Yehuda Katz, and Aurelio De Rosa. Similarly, [_jQuery UI in Action_][22] by TJ VanToll is a great help with the jQuery UI (where draggable and droppable come from). +If you haven't spent much time with jQuery, I really like the book [jQuery in Action][9] by Bear Bibeault, Yehuda Katz, and Aurelio De Rosa. Similarly, [jQuery UI in Action][10] by TJ VanToll is a great help with the jQuery UI (where draggable and droppable come from). Of course, there are many other JavaScript libraries, frameworks, and what-nots around to do good stuff in the user interface. I haven't really started to explore all that jQuery and jQuery UI offer, and I want to play around with the rest to see what can be done. +Image by: (Chris Hermansen, CC BY-SA 4.0) + -------------------------------------------------------------------------------- via: https://opensource.com/article/21/1/open-source-gift-exchange 作者:[Chris Hermansen][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://opensource.com/users/clhermansen -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brown-package-red-bow.jpg?itok=oxZYQzH- (Package wrapped with brown paper and red bow) -[2]: https://all-free-download.com/free-vector/patterns-creative-commons.html#google_vignette -[3]: https://opensource.com/tags/gimp -[4]: https://opensource.com/sites/default/files/uploads/bookexchangestart.png (Virtual book exchange) -[5]: https://creativecommons.org/licenses/by-sa/4.0/ -[6]: https://opensource.com/sites/default/files/uploads/bookexchangeperson1.png (Virtual book exchange) -[7]: https://opensource.com/sites/default/files/uploads/bookexchangeperson2.png (Virtual book exchange) -[8]: http://december.com/html/4/element/html.html -[9]: http://december.com/html/4/element/head.html -[10]: http://december.com/html/4/element/meta.html -[11]: http://december.com/html/4/element/title.html -[12]: http://december.com/html/4/element/link.html -[13]: http://december.com/html/4/element/style.html -[14]: http://december.com/html/4/element/script.html -[15]: https://code.jquery.com/jquery-1.12.4.js"\>\ -[16]: https://code.jquery.com/ui/1.12.1/jquery-ui.js"\>\ -[17]: http://december.com/html/4/element/body.html -[18]: http://december.com/html/4/element/h1.html -[19]: http://december.com/html/4/element/h2.html -[20]: http://december.com/html/4/element/div.html -[21]: https://www.manning.com/books/jquery-in-action-third-edition -[22]: https://www.manning.com/books/jquery-ui-in-action +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/brown-package-red-bow.jpg +[2]: https://unsplash.com/@jessbaileydesigns?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/package?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://all-free-download.com/free-vector/patterns-creative-commons.html#google_vignette +[5]: https://opensource.com/tags/gimp +[6]: https://opensource.com/sites/default/files/uploads/bookexchangestart.png +[7]: https://opensource.com/sites/default/files/uploads/bookexchangeperson1.png +[8]: https://opensource.com/sites/default/files/uploads/bookexchangeperson2.png +[9]: https://www.manning.com/books/jquery-in-action-third-edition +[10]: https://www.manning.com/books/jquery-ui-in-action diff --git a/sources/tech/20210127 Introduction to Thunderbird mail filters.md b/sources/tech/20210127 Introduction to Thunderbird mail filters.md index 423d48f86d..808a22f084 100644 --- a/sources/tech/20210127 Introduction to Thunderbird mail filters.md +++ b/sources/tech/20210127 Introduction to Thunderbird mail filters.md @@ -1,164 +1,151 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Introduction to Thunderbird mail filters) -[#]: via: (https://fedoramagazine.org/introduction-to-thunderbird-mail-filters/) -[#]: author: (Richard England https://fedoramagazine.org/author/rlengland/) +[#]: subject: "Introduction to Thunderbird mail filters" +[#]: via: "https://fedoramagazine.org/introduction-to-thunderbird-mail-filters/" +[#]: author: "Richard England https://fedoramagazine.org/author/rlengland/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Introduction to Thunderbird mail filters ====== - ![][1] Everyone eventually runs into an inbox loaded with messages that they need to sort through. If you are like a lot of people, this is not a fast process. However, use of mail filters can make the task a little less tedious by letting Thunderbird pre-sort the messages into categories that reflect their source, priority, or usefulness. This article is an introduction to the creation of filters in Thunderbird. Filters may be created for each email account you have created in Thunderbird. These are the accounts you see in the main Thunderbird folder pane shown at the left of the “Classic Layout”. -![Classic Layout][2] +![][2] There are two methods that can be used to create mail filters for your accounts. The first is based on the currently selected account and the second on the currently selected message. Both are discussed here. ### Message destination folder -Before filtering messages there has to be a destination for them. Create the destination by selecting a location to create a new folder. In this example the destination will be **Local Folders** shown in the accounts pane. Right click on **Local Folders** and select _New Folder…_ from the menu. +Before filtering messages there has to be a destination for them. Create the destination by selecting a location to create a new folder. In this example the destination will be **Local Folders**shown in the accounts pane. Right click on **Local Folders** and select *New Folder…* from the menu. -![Creating a new folder][3] +![][3] -Enter the name of the new folder in the menu and select _Create Folder._ The mail to filter is coming from the New York Times so that is the name entered. +Enter the name of the new folder in the menu and select *Create Folder.* The mail to filter is coming from the New York Times so that is the name entered. -![Folder creation][4] +![][4] ### Filter creation based on the selected account -Select the _Inbox_ for the account you wish to filter and select the toolbar menu item at _Tools > Message_Filters_. +Select the *Inbox* for the account you wish to filter and select the toolbar menu item at *Tools > Message_Filters*. -![Message_Filters menu location][5] +![][5] -The _Message Filters_ menu appears and is set to your pre-selected account as indicated at the top in the selection menu labelled _Filters for:_. +The *Message Filters* menu appears and is set to your pre-selected account as indicated at the top in the selection menu labelled *Filters for:*. -![Message Filters menu][6] +![][6] -Previously created filters, if any, are listed beneath the account name in the “_Filter Name”_ column. To the right of this list are controls that let you modify the filters selected. These controls are activated when you select a filter. More on this later. +Previously created filters, if any, are listed beneath the account name in the “*Filter Name”*column. To the right of this list are controls that let you modify the filters selected. These controls are activated when you select a filter. More on this later. Start creating your filter as follows: - 1. Verify the correct account has been pre-selected. It may be changed if necessary. - 2. Select _New…_ from the menu list at the right. +1. Verify the correct account has been pre-selected. It may be changed if necessary. +2. Select New… from the menu list at the right. - - -When you select _New_ you will see the _Filter Rules_ menu where you define your filter. Note that when using _New…_ you have the option to copy an existing filter to use as a template or to simply duplicate the settings. +When you select *New* you will see the *Filter Rules*menu where you define your filter. Note that when using *New…* you have the option to copy an existing filter to use as a template or to simply duplicate the settings. Filter rules are made up of three things, the “property” to be tested, the “test”, and the “value” to be tested against. Once the condition is met, the “action” is performed. -![Message Filters menu][7] +![][7] Complete this filter as follows: - 1. Enter an appropriate name in the textbox labelled _Filter name:_ - 2. Select the property _From_ in the left drop down menu, if not set. - 3. Leave the test set to _contains_. - 4. Enter the value, in this case the email address of the sender. +1. Enter an appropriate name in the textbox labelled Filter name: +2. Select the property From in the left drop down menu, if not set. +3. Leave the test set to contains. +4. Enter the value, in this case the email address of the sender. +Under the *Perform these actions:* section at the bottom, create an action rule to move the message and choose the destination. +1. Select Move Messages to from the left end of the action line. +2. Select Choose Folder… and select Local Folders > New York Times. +3. Select OK. -Under the _Perform these actions:_ section at the bottom, create an action rule to move the message and choose the destination. +By default the **Apply filter when:** is set to *Manually Run* and *Getting New Mail:*. This means that when new mail appears in the Inbox for this account the filter will be applied and you may run it manually at any time, if necessary. There are other options available but they are too numerous to be discussed in this introduction. They are, however, for the most part self explanatory. - 1. Select _Move Messages to_ from the left end of the action line. - 2. Select _Choose Folder…_ and select _Local Folders > New York Times_. - 3. Select _OK_. +If more than one rule or action is to be created during the same session, the “+” to the right of each entry provides that option. Additional property, test, and value entries can be added. If more than one rule is created, make certain that the appropriate option for *Match all of the following* and *Match any of the following* is selected. In this example the choice does not matter since we are only setting one filter. +After selecting *OK,*the *Message Filters* menu is displayed again showing your newly created filter. Note that the menu items on the right side of the menu are now active for *Edit…* and *Delete.* +![][8] -By default the **Apply filter when:** is set to _Manually Run_ and _Getting New Mail:_. This means that when new mail appears in the Inbox for this account the filter will be applied and you may run it manually at any time, if necessary. There are other options available but they are too numerous to be discussed in this introduction. They are, however, for the most part self explanatory. +Also notice the message *“Enabled filters are run automatically in the order shown below”*. If there are multiple filters the order is changed by selecting the one to be moved and using the *Move to Top, Move Up, Move Down,*or*Move to Bottom* buttons. The order can change the destination of your messages so consider the tests used in each filter carefully when deciding the order. -If more than one rule or action is to be created during the same session, the “+” to the right of each entry provides that option. Additional property, test, and value entries can be added. If more than one rule is created, make certain that the appropriate option for _Match all of the following_ and _Match any of the following_ is selected. In this example the choice does not matter since we are only setting one filter. - -After selecting _OK,_ the _Message Filters_ menu is displayed again showing your newly created filter. Note that the menu items on the right side of the menu are now active for _Edit…_ and _Delete._ - -![First filter in the Message Filters menu][8] - -Also notice the message _“Enabled filters are run automatically in the order shown below”_. If there are multiple filters the order is changed by selecting the one to be moved and using the _Move to Top, Move Up, Move Down,_ or _Move to Bottom_ buttons. The order can change the destination of your messages so consider the tests used in each filter carefully when deciding the order. - -Since you have just created this filter you may wish to use the _Run Now_ button to run your newly created filter on the Inbox shown to the left of the button. +Since you have just created this filter you may wish to use the *Run Now* button to run your newly created filter on the Inbox shown to the left of the button. ### Filter creation based on a message -An alternative creation technique is to select a message from the message pane and use the _Create Filter From Message…_ option from the menu bar. +An alternative creation technique is to select a message from the message pane and use the *Create Filter From Message…* option from the menu bar. -In this example the filter will use two rules to select the messages: the email address and a text string in the Subject line of the email. Start as follows: +In this example the filter will use two rules to select the messages: the email address and a text string in the Subject line of the email. Start as follows: - 1. Select a message in the message page. - 2. Select the filter options on the toolbar at _Message > Create Filter From Message…_. +1. Select a message in the message page. +2. Select the filter options on the toolbar at Message > Create Filter From Message…. +![][9] - -![Create new filters from Messages][9] - -The pre-selected message, highlighted in grey in the message pane above, determines the account used and _Create Filter From Message…_ takes you directly to the _Filter Rules_ menu. +The pre-selected message, highlighted in grey in the message pane above, determines the account used and *Create Filter From Message…* takes you directly to the *Filter Rules* menu. ![][10] -The property (_From_), test (_is_), and value (email) are pre-set for you as shown in the image above. Complete this filter as follows: +The property (*From*), test (*is*), and value (email) are pre-set for you as shown in the image above. Complete this filter as follows: - 1. Enter an appropriate name in the textbox labelled _Filter name:_. _COVID_ is the name in this case. - 2. Check that the property is _From_. - 3. Verify the test is set to _is_. - 4. Confirm that the value for the email address is from the correct sender. - 5. Select the “+” to the right of the _From_ rule to create a new filter rule. - 6. In the new rule, change the default property entry _From_ to _Subject_ using the pulldown menu. - 7. Set the test to _contains_. - 8. Enter the value text to be matched in the Email “Subject” line. In this case _COVID_. +1. Enter an appropriate name in the textbox labelled Filter name:. COVID is the name in this case. +2. Check that the property is From. +3. Verify the test is set to is. +4. Confirm that the value for the email address is from the correct sender. +5. Select the “+” to the right of the From rule to create a new filter rule. +6. In the new rule, change the default property entry From to Subject using the pulldown menu. +7. Set the test to contains. +8. Enter the value text to be matched in the Email “Subject” line. In this case COVID. +Since we left the *Match all of the following* item checked, each message will be from the address chosen AND will have the text *COVID* in the email subject line. +Now use the action rule to choose the destination for the messages under the *Perform these actions:* section at the bottom: -Since we left the _Match all of the following_ item checked, each message will be from the address chosen AND will have the text _COVID_ in the email subject line. +1. Select Move Messages to from the left menu. +2. Select Choose Folder… and select Local Folders > COVID in Scotland. (This destination was created before this example was started. There was no magic here.) +3. Select OK. -Now use the action rule to choose the destination for the messages under the _Perform these actions:_ section at the bottom: - - 1. Select _Move Messages to_ from the left menu. - 2. Select _Choose Folder…_ and select _Local Folders > COVID in Scotland_. (This destination was created before this example was started. There was no magic here.) - 3. Select _OK_. - - - -_OK_ will cause the _Message Filters_ menu to appear, again, verifying that the new filter has been created. +*OK* will cause the *Message Filters* menu to appear, again, verifying that the new filter has been created. ### The Message Filters menu -All the message filters you create will appear in the _Message Filters_ menu. Recall that the _Message Filters_ is available in the menu bar at _Tools > Message Filters_. +All the message filters you create will appear in the *Message Filters* menu. Recall that the *Message Filters* is available in the menu bar at *Tools > Message Filters*. -Once you have created filters there are several options to manage them. To change a filter, select the filter in question and click on the _Edit_ button. This will take you back to the _Filter Rules_ menu for that filter. As mentioned earlier, you can change the order in which the rules are apply here using the _Move_ buttons. Disable a filter by clicking on the check mark in the _Enabled_ column. +Once you have created filters there are several options to manage them. To change a filter, select the filter in question and click on the *Edit* button. This will take you back to the *Filter Rules* menu for that filter. As mentioned earlier, you can change the order in which the rules are apply here using the *Move* buttons. Disable a filter by clicking on the check mark in the *Enabled* column. ![][11] -The _Run Now_ button will execute the selected filter immediately. You may also run your filter from the menu bar using _Tools > Run Filters on Folder_ or _Tools > Run Filters on Message_. +The *Run Now* button will execute the selected filter immediately. You may also run your filter from the menu bar using *Tools > Run Filters on Folder* or *Tools > Run Filters on Message*. ### Next step -This article hasn’t covered every feature available for message filtering but hopefully it provides enough information for you to get started. Places for further investigation are the “property”, “test”, and “actions” in the _Filter menu_ as well as the settings there for when your filter is to be run, _Archiving, After Sending,_ and _Periodically_. +This article hasn’t covered every feature available for message filtering but hopefully it provides enough information for you to get started. Places for further investigation are the “property”, “test”, and “actions” in the *Filter menu* as well as the settings there for when your filter is to be run, *Archiving, After Sending,* and *Periodically*. ### References -Mozilla: [Organize][12] [Your Messages][12] [by Using Filters][12] +Mozilla: [Organize][12][Your Messages][13][by Using Filters][14] -MozillaZine: [Message][13] [Filters][13] +MozillaZine: [Message][15][Filters][16] -------------------------------------------------------------------------------- via: https://fedoramagazine.org/introduction-to-thunderbird-mail-filters/ 作者:[Richard England][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://fedoramagazine.org/author/rlengland/ -[b]: https://github.com/lujun9972 +[b]: https://github.com/lkxed [1]: https://fedoramagazine.org/wp-content/uploads/2021/01/Tbird_mail_filters-1-816x345.jpg [2]: https://fedoramagazine.org/wp-content/uploads/2021/01/Image_001-1024x613.png [3]: https://fedoramagazine.org/wp-content/uploads/2021/01/Image_New_Folder.png @@ -171,4 +158,7 @@ via: https://fedoramagazine.org/introduction-to-thunderbird-mail-filters/ [10]: https://fedoramagazine.org/wp-content/uploads/2021/01/Filter_rules_2-1.png [11]: https://fedoramagazine.org/wp-content/uploads/2021/01/Message_Filters_2nd_entry.png [12]: https://support.mozilla.org/en-US/kb/organize-your-messages-using-filters -[13]: http://kb.mozillazine.org/Filters_%28Thunderbird%29 +[13]: https://support.mozilla.org/en-US/kb/organize-your-messages-using-filters +[14]: https://support.mozilla.org/en-US/kb/organize-your-messages-using-filters +[15]: http://kb.mozillazine.org/Filters_%28Thunderbird%29 +[16]: http://kb.mozillazine.org/Filters_%28Thunderbird%29 diff --git a/sources/tech/20210128 Interview with Shuah Khan, Kernel Maintainer - Linux Fellow.md b/sources/tech/20210128 Interview with Shuah Khan, Kernel Maintainer & Linux Fellow.md similarity index 81% rename from sources/tech/20210128 Interview with Shuah Khan, Kernel Maintainer - Linux Fellow.md rename to sources/tech/20210128 Interview with Shuah Khan, Kernel Maintainer & Linux Fellow.md index 1d22b6f0fb..09152cb53a 100644 --- a/sources/tech/20210128 Interview with Shuah Khan, Kernel Maintainer - Linux Fellow.md +++ b/sources/tech/20210128 Interview with Shuah Khan, Kernel Maintainer & Linux Fellow.md @@ -1,46 +1,43 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Interview with Shuah Khan, Kernel Maintainer & Linux Fellow) -[#]: via: (https://www.linux.com/news/interview-with-shuah-khan-kernel-maintainer-linux-fellow/) -[#]: author: (The Linux Foundation https://www.linuxfoundation.org/en/blog/interview-with-shuah-khan-kernel-maintainer-linux-fellow/) +[#]: subject: "Interview with Shuah Khan, Kernel Maintainer & Linux Fellow" +[#]: via: "https://www.linux.com/news/interview-with-shuah-khan-kernel-maintainer-linux-fellow/" +[#]: author: "The Linux Foundation https://www.linuxfoundation.org/en/blog/interview-with-shuah-khan-kernel-maintainer-linux-fellow/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Interview with Shuah Khan, Kernel Maintainer & Linux Fellow ====== - -![][1] - -_Jason Perlow, Director of Project Insights and Editorial Content at the Linux Foundation, had an opportunity to speak with Shuah Khan about her experiences as a woman in the technology industry. She discusses how mentorship can improve the overall diversity and makeup of open source projects, why software maintainers are important for the health of open source projects such as the Linux kernel, and how language inclusivity and codes of conduct can improve relationships and communication between software maintainers and individual contributors._ +Jason Perlow, Director of Project Insights and Editorial Content at the Linux Foundation, had an opportunity to speak with Shuah Khan about her experiences as a woman in the technology industry. She discusses how mentorship can improve the overall diversity and makeup of open source projects, why software maintainers are important for the health of open source projects such as the Linux kernel, and how language inclusivity and codes of conduct can improve relationships and communication between software maintainers and individual contributors. **JP:** So, Shuah, I know you wear many different hats at the Linux Foundation. What do you call yourself around here these days? -**SK:** <laughs> Well, I primarily call myself a Kernel Maintainer & Linux Fellow. In addition to that, I focus on two areas that are important to the continued health and sustainability of the open source projects in the Linux ecosystem. The first one is bringing more women into the Kernel community, and additionally, I am leading the mentorship program efforts overall at the Linux Foundation. And in that role, in addition to the Linux Kernel Mentorship, we are looking at how the Linux Foundation mentorship program is working overall, how it is scaling. I make sure the [LFX Mentorship][2] platform scales and serves diverse mentees and mentors’ needs in this role. +**SK:** Well, I primarily call myself a Kernel Maintainer & Linux Fellow. In addition to that, I focus on two areas that are important to the continued health and sustainability of the open source projects in the Linux ecosystem. The first one is bringing more women into the Kernel community, and additionally, I am leading the mentorship program efforts overall at the Linux Foundation. And in that role, in addition to the Linux Kernel Mentorship, we are looking at how the Linux Foundation mentorship program is working overall, how it is scaling. I make sure the [LFX Mentorship][1] platform scales and serves diverse mentees and mentors’ needs in this role. -The LF mentorships program includes several projects in the Linux kernel, LFN, HyperLedger, Open MainFrame, OpenHPC, and other technologies. [The Linux Foundation’s Mentorship Programs][3] are designed to help developers with the necessary skills–many of whom are first-time open source contributors–experiment, learn, and contribute effectively to open source communities. +The LF mentorships program includes several projects in the Linux kernel, LFN, HyperLedger, Open MainFrame, OpenHPC, and other technologies. [The Linux Foundation’s Mentorship Programs][2] are designed to help developers with the necessary skills–many of whom are first-time open source contributors–experiment, learn, and contribute effectively to open source communities. The mentorship program has been successful in its mission to train new developers and make these talented pools of prospective employees trained by experts to employers. Several graduated mentees have found jobs. New developers have improved the quality and security of various open source projects, including the Linux kernel. Several Linux kernel bugs were fixed, a new subsystem mentor was added, and a new driver maintainer is now part of the Linux kernel community. My sincere thanks to all our mentors for volunteering to share their expertise. **JP:** How long have you been working on the Kernel? -**SK:** Since 2010, or 2011, I got involved in the [Android Mainlining project][4]. My [first patch removed the Android pmem driver][5]. +**SK:** Since 2010, or 2011, I got involved in the [Android Mainlining project][3]. My [first patch removed the Android pmem driver][4]. **JP:** Wow! Is there any particular subsystem that you specialize in? -**SK:** I am a self described generalist. I maintain the [kernel self-test][6] subsystem, the [USB over IP driver][7], [usbip tool][8], and the [cpupower][9] tool. I contributed to the media subsystem working on [Media Controller Device Allocator API][10] to resolve shared device resource management problems across device drivers from different subsystems. +**SK:** I am a self described generalist. I maintain the [kernel self-test][5] subsystem, the [USB over IP driver][6], [usbip tool][7], and the [cpupower][8] tool. I contributed to the media subsystem working on [Media Controller Device Allocator API][9] to resolve shared device resource management problems across device drivers from different subsystems. -**JP:** Hey, I’ve [actually used the USB over IP driver][11] when I worked at Microsoft on Azure. And also, when I’ve used AWS and Google Compute. +**JP:** Hey, I’ve [actually used the USB over IP driver][10] when I worked at Microsoft on Azure. And also, when I’ve used AWS and Google Compute. **SK:** It’s a small niche driver used in cloud computing. Docker and other containers use that driver heavily. That’s how they provide remote access to USB devices on the server to export devices to be imported by other systems for use. **JP:** I initially used it for IoT kinds of stuff in the embedded systems space. Were you the original lead developer on it, or was it one of those things you fell into because nobody else was maintaining it? -**SK:** Well, twofold. I was looking at USB over IP because I like that technology. it just so happened the driver was brought from the staging tree into the Mainline kernel, I volunteered at the time to maintain it. Over the last few years, we discovered some security issues with it, because it handles a lot of userspace data, so I had a lot of fun fixing all of those. <laugh>. +**SK:** Well, twofold. I was looking at USB over IP because I like that technology. it just so happened the driver was brought from the staging tree into the Mainline kernel, I volunteered at the time to maintain it. Over the last few years, we discovered some security issues with it, because it handles a lot of userspace data, so I had a lot of fun fixing all of those. . **JP:** What drew you into the Linux operating system, and what drew you into the kernel development community in the first place? -**SK:** Well, I have been doing kernel development for a very long time. I worked on the [LynxOS RTOS][12], a while back, and then HP/UX, when I was working at HP, after which I transitioned into  doing open source development — the [OpenHPI][13] project, to support HP’s rack server hardware, and that allowed me to work much more closely with Linux on the back end. And at some point, I decided I wanted to work with the kernel and become part of the Linux kernel community. I started as an independent contributor. +**SK:** Well, I have been doing kernel development for a very long time. I worked on the [LynxOS RTOS][11], a while back, and then HP/UX, when I was working at HP, after which I transitioned into  doing open source development — the [OpenHPI][12] project, to support HP’s rack server hardware, and that allowed me to work much more closely with Linux on the back end. And at some point, I decided I wanted to work with the kernel and become part of the Linux kernel community. I started as an independent contributor. **JP:** Maybe it just displays my own ignorance, but you are the first female, hardcore Linux kernel developer I have ever met. I mean, I had met female core OS developers before — such as when I was at Microsoft and IBM — but not for Linux. Why do you suppose we lack women and diversity in general when participating in open source and the technology industry overall? @@ -52,9 +49,9 @@ There’s a natural resistance to choosing certain professions that you have to **SK:** Yes. -**JP:** It’s funny; my wife really likes this [Netflix show about matchmaking in India][14]. Are you familiar with it? +**JP:** It’s funny; my wife really likes this [Netflix show about matchmaking in India][13]. Are you familiar with it? -**SK:** <laughs> Yes I enjoyed the series, and [A Suitable Girl][15] documentary film that follows three women as they navigate making decisions about their careers and family obligations. +**SK:** Yes I enjoyed the series, and [A Suitable Girl][14] documentary film that follows three women as they navigate making decisions about their careers and family obligations. **JP:** For many Americans, this is our first introduction to what home life is like for Indian people. But many of the women featured on this show are professionals, such as doctors, lawyers, and engineers. And they are very ambitious, but of course, the family tries to set them up in a marriage to find a husband for them that is compatible. As a result, you get to learn about the traditional values and roles they still want women to play there — while at the same time, many women are coming out of higher learning institutions in that country that are seeking technical careers. @@ -62,11 +59,11 @@ There’s a natural resistance to choosing certain professions that you have to **JP:** Women in technical and STEM professions are becoming much more prominent in other countries, such as China, Japan, and Korea. For some reason, in the US, I tend to see more women enter the medical profession than hard technology — and it might be a level of effort and perceived reward thing. You can spend eight years becoming a medical doctor or eight years becoming a scientist or an engineer, and it can be equally difficult, but the compensation at the end may not be the same. It’s expensive to get an education, and it takes a long time and hard work, regardless of the professional discipline. -**SK:** I have also heard that women also like to enter professions where they can make a difference in the world — a human touch, if you will. So that may translate to them choosing careers where they can make a larger impact on people — and they may view careers in technology as not having those same attributes. Maybe when we think about attracting women to technology fields, we might have to promote technology aspects that make a difference. That may be changing now, such as the [LF Public Health][16] (LFPH) project we kicked off last year. And with [LF AI & Data Foundation][17], we are also making a difference in people’s lives, such as [detecting earthquakes][18] or [analyzing climate change][19]. If we were to promote projects such as these, we might draw more women in. +**SK:** I have also heard that women also like to enter professions where they can make a difference in the world — a human touch, if you will. So that may translate to them choosing careers where they can make a larger impact on people — and they may view careers in technology as not having those same attributes. Maybe when we think about attracting women to technology fields, we might have to promote technology aspects that make a difference. That may be changing now, such as the [LF Public Health][15] (LFPH) project we kicked off last year. And with [LF AI & Data Foundation][16], we are also making a difference in people’s lives, such as [detecting earthquakes][17] or [analyzing climate change][18]. If we were to promote projects such as these, we might draw more women in. -**JP:** So clearly, one of the areas of technology where you can make a difference is in open source, as the LF is hosting some very high-concept and existential types of projects such as [LF Energy][20], for example — I had no idea what was involved in it and what its goals were until I spoke to [Shuli Goodman][21] in-depth about it. With the mentorship program, I assume we need this to attract fresh talent — because as folks like us get older and retire, and they exit the field, we need new people to replace them. So I assume mentorship, for the Linux Foundation, is an investment in our own technologies, correct? +**JP:** So clearly, one of the areas of technology where you can make a difference is in open source, as the LF is hosting some very high-concept and existential types of projects such as [LF Energy][19], for example — I had no idea what was involved in it and what its goals were until I spoke to [Shuli Goodman][20] in-depth about it. With the mentorship program, I assume we need this to attract fresh talent — because as folks like us get older and retire, and they exit the field, we need new people to replace them. So I assume mentorship, for the Linux Foundation, is an investment in our own technologies, correct? -**SK:** Correct. Bringing in new developers into the fold is the primary purpose, of course — and at the same time, I view the LF as taking on mentorship provides that neutral, level playing field across the industry for all open source projects. Secondly, we offer a self-service platform, [LFX Mentorship][22], where anyone can come in and start their project. So when the COVID-19 pandemic began, we [expanded this program to help displaced people][3] — students, et cetera, and less visible projects. Not all projects typically get as much funding or attention as others do — such as a Kubernetes or  Linux kernel — among the COVID mentorship program projects we are funding. I am particularly proud of supporting a climate change-related project, [Using Machine Learning to Predict Deforestation][23]. +**SK:** Correct. Bringing in new developers into the fold is the primary purpose, of course — and at the same time, I view the LF as taking on mentorship provides that neutral, level playing field across the industry for all open source projects. Secondly, we offer a self-service platform, [LFX Mentorship][21], where anyone can come in and start their project. So when the COVID-19 pandemic began, we [expanded this program to help displaced people][22] — students, et cetera, and less visible projects. Not all projects typically get as much funding or attention as others do — such as a Kubernetes or  Linux kernel — among the COVID mentorship program projects we are funding. I am particularly proud of supporting a climate change-related project, [Using Machine Learning to Predict Deforestation][23]. The self-service approach allows us to fund and add new developers to projects where they are needed. The LF mentorships are remote work opportunities that are accessible to developers around the globe. We see people sign up for mentorship projects from places we haven’t seen before, such as Africa, and so on, thus creating a level playing field. @@ -122,43 +119,43 @@ Talking about backpacking reminded me of the two-day, 22-mile backpacking trip d **JP:** Awesome. I enjoyed talking to you today. So happy I finally got to meet you virtually. -The post [Interview with Shuah Khan, Kernel Maintainer & Linux Fellow][33] appeared first on [Linux Foundation][34]. +The post [Interview with Shuah Khan, Kernel Maintainer & Linux Fellow][33] appeared first on [Linux Foundation][34]. -------------------------------------------------------------------------------- via: https://www.linux.com/news/interview-with-shuah-khan-kernel-maintainer-linux-fellow/ 作者:[The Linux Foundation][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.linuxfoundation.org/en/blog/interview-with-shuah-khan-kernel-maintainer-linux-fellow/ -[b]: https://github.com/lujun9972 -[1]: https://www.linux.com/wp-content/uploads/2021/01/3E9C3E02-5F59-4A99-AD4A-814C7B8737A9_1_105_c.jpeg -[2]: https://lfx.linuxfoundation.org/tools/mentorship/ -[3]: https://linuxfoundation.org/about/diversity-inclusivity/mentorship/ -[4]: https://elinux.org/Android_Mainlining_Project -[5]: https://lkml.org/lkml/2012/1/26/368 -[6]: https://www.kernel.org/doc/html/v4.15/dev-tools/kselftest.html -[7]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/usbip -[8]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/usb/usbip -[9]: https://www.systutorials.com/docs/linux/man/1-cpupower/ -[10]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/mc/mc-dev-allocator.c -[11]: https://www.linux-magazine.com/Issues/2018/208/Tutorial-USB-IP -[12]: https://en.wikipedia.org/wiki/LynxOS -[13]: http://www.openhpi.org/Developers -[14]: https://www.netflix.com/title/80244565 -[15]: https://en.wikipedia.org/wiki/A_Suitable_Girl_(film) -[16]: https://www.lfph.io/ -[17]: https://lfaidata.foundation/ -[18]: https://openeew.com/ -[19]: https://www.os-climate.org/ -[20]: https://www.lfenergy.org/ -[21]: mailto:sgoodman@contractor.linuxfoundation.org -[22]: https://mentorship.lfx.linuxfoundation.org/ +[b]: https://github.com/lkxed +[1]: https://lfx.linuxfoundation.org/tools/mentorship/ +[2]: https://linuxfoundation.org/about/diversity-inclusivity/mentorship/ +[3]: https://elinux.org/Android_Mainlining_Project +[4]: https://lkml.org/lkml/2012/1/26/368 +[5]: https://www.kernel.org/doc/html/v4.15/dev-tools/kselftest.html +[6]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/usbip +[7]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/usb/usbip +[8]: https://www.systutorials.com/docs/linux/man/1-cpupower/ +[9]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/mc/mc-dev-allocator.c +[10]: https://www.linux-magazine.com/Issues/2018/208/Tutorial-USB-IP +[11]: https://en.wikipedia.org/wiki/LynxOS +[12]: http://www.openhpi.org/Developers +[13]: https://www.netflix.com/title/80244565 +[14]: https://en.wikipedia.org/wiki/A_Suitable_Girl_(film) +[15]: https://www.lfph.io/ +[16]: https://lfaidata.foundation/ +[17]: https://openeew.com/ +[18]: https://www.os-climate.org/ +[19]: https://www.lfenergy.org/ +[20]: https://www.linux.com/mailto:sgoodman@contractor.linuxfoundation.org +[21]: https://mentorship.lfx.linuxfoundation.org/ +[22]: https://linuxfoundation.org/about/diversity-inclusivity/mentorship/ [23]: https://mentorship.lfx.linuxfoundation.org/project/926665ac-9b96-45aa-bb11-5d99096be870 [24]: https://www.linuxfoundation.org/en/blog/preventing-supply-chain-attacks-like-solarwinds/ [25]: https://www.linuxfoundation.org/en/press-release/new-open-source-contributor-report-from-linux-foundation-and-harvard-identifies-motivations-and-opportunities-for-improving-software-security/ diff --git a/sources/tech/20210203 Defining boundaries and interfaces in software development.md b/sources/tech/20210203 Defining boundaries and interfaces in software development.md index 6f3e540da8..47f72b8d66 100644 --- a/sources/tech/20210203 Defining boundaries and interfaces in software development.md +++ b/sources/tech/20210203 Defining boundaries and interfaces in software development.md @@ -92,7 +92,7 @@ The system is trying to remove an item that does not exist in the basket, and it ``` public int RemoveItem(Hashtable item) { -        if(basket.IndexOf(item) >= 0) { +        if(basket.IndexOf(item) >= 0) {                 basket.RemoveAt(basket.IndexOf(item));         }         return basket.Count; diff --git a/sources/tech/20210204 How to implement business requirements in software development.md b/sources/tech/20210204 How to implement business requirements in software development.md index 1527f6babe..38845d0cb4 100644 --- a/sources/tech/20210204 How to implement business requirements in software development.md +++ b/sources/tech/20210204 How to implement business requirements in software development.md @@ -86,7 +86,7 @@ Implement this processing logic in the `ShippingAPI` class: ``` private double Calculate10PercentDiscount(double total) {         double discount = 0.00; -        if(total > 500.00) { +        if(total > 500.00) {                 discount = (total/100) * 10;         }         return discount; diff --git a/sources/tech/20210208 Fedora Aarch64 on the SolidRun HoneyComb LX2K.md b/sources/tech/20210208 Fedora Aarch64 on the SolidRun HoneyComb LX2K.md index e060ca66fa..ef95349df3 100644 --- a/sources/tech/20210208 Fedora Aarch64 on the SolidRun HoneyComb LX2K.md +++ b/sources/tech/20210208 Fedora Aarch64 on the SolidRun HoneyComb LX2K.md @@ -42,7 +42,7 @@ nvme_core.default_ps_max_latency_us=0 In the end I upgraded my main workstation so I could repurpose its existing Samsung EVO 960 for the HoneyComb which worked much better. -After some fidgeting I was able to install Fedora but it became apparent that the integrated network ports still don’t work with the mainline kernel. The NXP tech is great but requires a custom kernel build and tooling. Some earlier blogs got around this with a USB->RJ45 Ethernet adapter which works fine. Hopefully network support will be mainlined soon, but for now I snagged a kernel SRPM from the helpful engineers on Discord. With the custom kernel the 1Gbe NIC worked fine, but it turns out the SFP+ ports need more configuration. They won’t be recognized as interfaces until you use NXP’s _restool_ utility to map ports to their usage. In this case just a runtime mapping of _dmap -> dni_ was required. This is NXP’s way of mapping a MAC to a network interface via IOCTL commands. The restool binary isn’t provided either and must be built from source. It then layers on management scripts which use cheeky $arg0 references for redirection to call the restool binary with complex arguments. +After some fidgeting I was able to install Fedora but it became apparent that the integrated network ports still don’t work with the mainline kernel. The NXP tech is great but requires a custom kernel build and tooling. Some earlier blogs got around this with a USB->RJ45 Ethernet adapter which works fine. Hopefully network support will be mainlined soon, but for now I snagged a kernel SRPM from the helpful engineers on Discord. With the custom kernel the 1Gbe NIC worked fine, but it turns out the SFP+ ports need more configuration. They won’t be recognized as interfaces until you use NXP’s _restool_ utility to map ports to their usage. In this case just a runtime mapping of _dmap -> dni_ was required. This is NXP’s way of mapping a MAC to a network interface via IOCTL commands. The restool binary isn’t provided either and must be built from source. It then layers on management scripts which use cheeky $arg0 references for redirection to call the restool binary with complex arguments. Since I was starting to accumulate quite a few custom packages it was apparent that a COPR repo was needed to simplify this for Fedora. If you’re not familiar with COPR I think it’s one of Fedora’s finest resources. This repo contains the uefi build (currently failing build), 5.10.5 kernel built with network support, and the restool binary with supporting scripts. I also added a oneshot systemd unit to enable the SFP+ ports on boot: ``` diff --git a/sources/tech/20210210 Configure multi-tenancy with Kubernetes namespaces.md b/sources/tech/20210210 Configure multi-tenancy with Kubernetes namespaces.md index 5ced955007..5804c35922 100644 --- a/sources/tech/20210210 Configure multi-tenancy with Kubernetes namespaces.md +++ b/sources/tech/20210210 Configure multi-tenancy with Kubernetes namespaces.md @@ -85,8 +85,8 @@ Describe the newly created namespace: ``` [root@master ~]# kubectl describe namespace test Name:         test -Labels:       <none> -Annotations:  <none> +Labels:       +Annotations:   Status:       Active No resource quota. No LimitRange resource. @@ -233,8 +233,8 @@ Verify the Roles: ``` $ kubectl describe roles -n test   Name:         list-deployments -  Labels:       <none> -  Annotations:  <none> +  Labels:       +  Annotations:     PolicyRule:     Resources         Non-Resource URLs  Resource Names  Verbs     ---------         -----------------  --------------  ----- diff --git a/sources/tech/20210210 Draw Mandelbrot fractals with GIMP scripting.md b/sources/tech/20210210 Draw Mandelbrot fractals with GIMP scripting.md index d38f3fb54d..3ff3460421 100644 --- a/sources/tech/20210210 Draw Mandelbrot fractals with GIMP scripting.md +++ b/sources/tech/20210210 Draw Mandelbrot fractals with GIMP scripting.md @@ -1,57 +1,51 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Draw Mandelbrot fractals with GIMP scripting) -[#]: via: (https://opensource.com/article/21/2/gimp-mandelbrot) -[#]: author: (Cristiano L. Fontana https://opensource.com/users/cristianofontana) +[#]: subject: "Draw Mandelbrot fractals with GIMP scripting" +[#]: via: "https://opensource.com/article/21/2/gimp-mandelbrot" +[#]: author: "Cristiano L. Fontana https://opensource.com/users/cristianofontana" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Draw Mandelbrot fractals with GIMP scripting ====== Create complex mathematical images with GIMP's Script-Fu language. + ![Painting art on a computer screen][1] +Image by: Opensource.com + The GNU Image Manipulation Program ([GIMP][2]) is my go-to solution for image editing. Its toolset is very powerful and convenient, except for doing [fractals][3], which is one thing you cannot draw by hand easily. These are fascinating mathematical constructs that have the characteristic of being [self-similar][4]. In other words, if they are magnified in some areas, they will look remarkably similar to the unmagnified picture. Besides being interesting, they also make very pretty pictures! -![Portion of a Mandelbrot fractal using GIMPs Coldfire palette][5] +![Rotated and magnified portion of the Mandelbrot set using Firecode][5] -Portion of a Mandelbrot fractal using GIMP's Coldfire palette (Cristiano Fontana, [CC BY-SA 4.0][6]) +GIMP can be automated with [Script-Fu][6] to do [batch processing of images][7] or create complicated procedures that are not practical to do by hand; drawing fractals falls in the latter category. This tutorial will show how to draw a representation of the [Mandelbrot fractal][8] using GIMP and Script-Fu. -GIMP can be automated with [Script-Fu][7] to do [batch processing of images][8] or create complicated procedures that are not practical to do by hand; drawing fractals falls in the latter category. This tutorial will show how to draw a representation of the [Mandelbrot fractal][9] using GIMP and Script-Fu. +![Mandelbrot set drawn using GIMP's Firecode palette][9] -![Mandelbrot set drawn using GIMP's Firecode palette][10] - -Portion of a Mandelbrot fractal using GIMP's Firecode palette. (Cristiano Fontana, [CC BY-SA 4.0][6]) - -![Rotated and magnified portion of the Mandelbrot set using Firecode.][11] - -Rotated and magnified portion of the Mandelbrot set using the Firecode palette. (Cristiano Fontana, [CC BY-SA 4.0][6]) +![Rotated and magnified portion of the Mandelbrot set using Firecode.][10] In this tutorial, you will write a script that creates a layer in an image and draws a representation of the Mandelbrot set with a colored environment around it. ### What is the Mandelbrot set? -Do not panic! I will not go into too much detail here. For the more math-savvy, the Mandelbrot set is defined as the set of [complex numbers][12] _a_ for which the succession +Do not panic! I will not go into too much detail here. For the more math-savvy, the Mandelbrot set is defined as the set of [complex numbers][11] *a* for which the succession -_zn+1 = zn2 + a_ +zn+1 = zn2 + a -does not diverge when starting from _z₀ = 0_. +does not diverge when starting from *z₀ = 0*. In reality, the Mandelbrot set is the fancy-looking black blob in the pictures; the nice-looking colors are outside the set. They represent how many iterations are required for the magnitude of the succession of numbers to pass a threshold value. In other words, the color scale shows how many steps are required for the succession to pass an upper-limit value. ### GIMP's Script-Fu -[Script-Fu][7] is the scripting language built into GIMP. It is an implementation of the [Scheme programming language][13]. +[Script-Fu][12] is the scripting language built into GIMP. It is an implementation of the [Scheme programming language][13]. -If you want to get more acquainted with Scheme, GIMP's documentation offers an [in-depth tutorial][14]. I also wrote an article about [batch processing images][8] using Script-Fu. Finally, the Help menu offers a Procedure Browser with very extensive documentation with all of Script-Fu's functions described in detail. +If you want to get more acquainted with Scheme, GIMP's documentation offers an [in-depth tutorial][14]. I also wrote an article about [batch processing images][15] using Script-Fu. Finally, the Help menu offers a Procedure Browser with very extensive documentation with all of Script-Fu's functions described in detail. -![GIMP Procedure Browser][15] - -(Cristiano Fontana, [CC BY-SA 4.0][6]) - -Scheme is a Lisp-like language, so a major characteristic is that it uses a [prefix notation][16] and a [lot of parentheses][17]. Functions and operators are applied to a list of operands by prefixing them: +![GIMP Procedure Browser][16] +Scheme is a Lisp-like language, so a major characteristic is that it uses a [prefix notation][17] and a [lot of parentheses][18]. Functions and operators are applied to a list of operands by prefixing them: ``` (function-name operand operand ...) @@ -67,7 +61,6 @@ Scheme is a Lisp-like language, so a major characteristic is that it uses a [pre You can write your first script and save it to the **Scripts** folder found in the preferences window under **Folders → Scripts**. Mine is at `$HOME/.config/GIMP/2.10/scripts`. Write a file called `mandelbrot.scm` with: - ``` ; Complex numbers implementation (define (make-rectangular x y) (cons x y)) @@ -111,17 +104,17 @@ You can write your first script and save it to the **Scripts** folder found in t   (define bytes-per-pixel (car (gimp-drawable-bpp drawable)))   ; Fractal drawing section. -  ; Code from: +  ; Code from: https://rosettacode.org/wiki/Mandelbrot_set#Racket   (define (iterations a z i)     (let ((z′ (add-c (mul-c z z) a))) -       (if (or (= i num-colors) (> (magnitude z′) threshold)) +       (if (or (= i num-colors) (> (magnitude z′) threshold))           i           (iterations a z′ (+ i 1))))) -  (define (iter->color i) -    (if (>= i num-colors) -        (list->vector '(0 0 0)) -        (list->vector (vector-ref colors i)))) +  (define (iter->color i) +    (if (>= i num-colors) +        (list->vector '(0 0 0)) +        (list->vector (vector-ref colors i))))   (define z0 (make-rectangular 0 0)) @@ -130,10 +123,10 @@ You can write your first script and save it to the **Scripts** folder found in t            (real-y (- (* domain-height (/ y height)) offset-y))            (a (make-rectangular real-x real-y))            (i (iterations a z0 0)) -           (color (iter->color i))) -      (cond ((and (< x end-x) (< y end-y)) (gimp-drawable-set-pixel drawable x y bytes-per-pixel color) +           (color (iter->color i))) +      (cond ((and (< x end-x) (< y end-y)) (gimp-drawable-set-pixel drawable x y bytes-per-pixel color)                                            (loop (+ x 1) end-x y end-y)) -            ((and (>= x end-x) (< y end-y)) (gimp-progress-update (/ y end-y)) +            ((and (>= x end-x) (< y end-y)) (gimp-progress-update (/ y end-y))                                             (loop 0 end-x (+ y 1) end-y)))))   (loop 0 width 0 height) @@ -161,15 +154,14 @@ You can write your first script and save it to the **Scripts** folder found in t   SF-ADJUSTMENT "X offset"           '(2.25 -20 20 0.1 1 4 0)   SF-ADJUSTMENT "Y offset"           '(1.50 -20 20 0.1 1 4 0) ) -(script-fu-menu-register "script-fu-mandelbrot" "<Image>/Layer/") +(script-fu-menu-register "script-fu-mandelbrot" "/Layer/") ``` I will go through the script to show you what it does. ### Get ready to draw the fractal -Since this image is all about complex numbers, I wrote a quick and dirty implementation of complex numbers in Script-Fu. I defined the complex numbers as [pairs][18] of real numbers. Then I added the few functions needed for the script. I used [Racket's documentation][19] as inspiration for function names and roles: - +Since this image is all about complex numbers, I wrote a quick and dirty implementation of complex numbers in Script-Fu. I defined the complex numbers as [pairs][19] of real numbers. Then I added the few functions needed for the script. I used [Racket's documentation][20] as inspiration for function names and roles: ``` (define (make-rectangular x y) (cons x y)) @@ -198,7 +190,6 @@ Since this image is all about complex numbers, I wrote a quick and dirty impleme The new function is called `script-fu-mandelbrot`. The best practice for writing a new function is to call it `script-fu-something` so that it can be identified in the Procedure Browser easily. The function requires a few parameters: an `image` to which it will add a layer with the fractal, the `palette-name` identifying the color palette to be used, the `threshold` value to stop the iteration, the `domain-width` and `domain-height` that identify the image boundaries, and the `offset-x` and `offset-y` to center the image to the desired feature. The script also needs some other parameters that it can deduce from the GIMP interface: - ``` (define (script-fu-mandelbrot image palette-name threshold domain-width domain-height offset-x offset-y)   (define num-colors (car (gimp-palette-get-info palette-name))) @@ -212,7 +203,6 @@ The new function is called `script-fu-mandelbrot`. The best practice for writing Then it creates a new layer and identifies it as the script's `drawable`. A "drawable" is the element you want to draw on: - ``` (define new-layer (car (gimp-layer-new image                                        width height @@ -226,27 +216,25 @@ Then it creates a new layer and identifies it as the script's `drawable`. A "dra (define bytes-per-pixel (car (gimp-drawable-bpp drawable))) ``` -For the code determining the pixels' color, I used the [Racket][20] example on the [Rosetta Code][21] website. It is not the most optimized algorithm, but it is simple to understand. Even a non-mathematician like me can understand it. The `iterations` function determines how many steps the succession requires to pass the threshold value. To cap the iterations, I am using the number of colors in the palette. In other words, if the threshold is too high or the succession does not grow, the calculation stops at the `num-colors` value. The `iter->color` function transforms the number of iterations into a color using the provided palette. If the iteration number is equal to `num-colors`, it uses black because this means that the succession is probably bound and that pixel is in the Mandelbrot set: - +For the code determining the pixels' color, I used the [Racket][21] example on the [Rosetta Code][22] website. It is not the most optimized algorithm, but it is simple to understand. Even a non-mathematician like me can understand it. The `iterations` function determines how many steps the succession requires to pass the threshold value. To cap the iterations, I am using the number of colors in the palette. In other words, if the threshold is too high or the succession does not grow, the calculation stops at the `num-colors` value. The `iter->color` function transforms the number of iterations into a color using the provided palette. If the iteration number is equal to `num-colors`, it uses black because this means that the succession is probably bound and that pixel is in the Mandelbrot set: ``` ; Fractal drawing section. -; Code from: +; Code from: https://rosettacode.org/wiki/Mandelbrot_set#Racket (define (iterations a z i)   (let ((z′ (add-c (mul-c z z) a))) -     (if (or (= i num-colors) (> (magnitude z′) threshold)) +     (if (or (= i num-colors) (> (magnitude z′) threshold))         i         (iterations a z′ (+ i 1))))) -(define (iter->color i) -  (if (>= i num-colors) -      (list->vector '(0 0 0)) -      (list->vector (vector-ref colors i)))) +(define (iter->color i) +  (if (>= i num-colors) +      (list->vector '(0 0 0)) +      (list->vector (vector-ref colors i)))) ``` Because I have the feeling that Scheme users do not like to use loops, I implemented the function looping over the pixels as a recursive function. The `loop` function reads the starting coordinates and their upper boundaries. At each pixel, it defines some temporary variables with the `let*` function: `real-x` and `real-y` are the real coordinates of the pixel in the complex plane, according to the parameters; the `a` variable is the starting point for the succession; the `i` is the number of iterations; and finally `color` is the pixel color. Each pixel is colored with the `gimp-drawable-set-pixel` function that is an internal GIMP procedure. The peculiarity is that it is not undoable, and it does not trigger the image to refresh. Therefore, the image will not be updated during the operation. To play nice with the user, at the end of each row of pixels, it calls the `gimp-progress-update` function, which updates a progress bar in the user interface: - ``` (define z0 (make-rectangular 0 0)) @@ -255,17 +243,16 @@ Because I have the feeling that Scheme users do not like to use loops, I impleme          (real-y (- (* domain-height (/ y height)) offset-y))          (a (make-rectangular real-x real-y))          (i (iterations a z0 0)) -         (color (iter->color i))) -    (cond ((and (< x end-x) (< y end-y)) (gimp-drawable-set-pixel drawable x y bytes-per-pixel color) +         (color (iter->color i))) +    (cond ((and (< x end-x) (< y end-y)) (gimp-drawable-set-pixel drawable x y bytes-per-pixel color)                                          (loop (+ x 1) end-x y end-y)) -          ((and (>= x end-x) (< y end-y)) (gimp-progress-update (/ y end-y)) +          ((and (>= x end-x) (< y end-y)) (gimp-progress-update (/ y end-y))                                           (loop 0 end-x (+ y 1) end-y))))) (loop 0 width 0 height) ``` At the calculation's end, the function needs to inform GIMP that it modified the `drawable`, and it should refresh the interface because the image is not "automagically" updated during the script's execution: - ``` (gimp-drawable-update drawable 0 0 width height) (gimp-displays-flush) @@ -275,7 +262,6 @@ At the calculation's end, the function needs to inform GIMP that it modified the To use the `script-fu-mandelbrot` function in the graphical user interface (GUI), the script needs to inform GIMP. The `script-fu-register` function informs GIMP about the parameters required by the script and provides some documentation: - ``` (script-fu-register   "script-fu-mandelbrot"          ; Function name @@ -300,71 +286,69 @@ To use the `script-fu-mandelbrot` function in the graphical user interface (GUI) Then the script tells GIMP to put the new function in the Layer menu with the label "Create a Mandelbrot layer": - ``` -`(script-fu-menu-register "script-fu-mandelbrot" "/Layer/")` +(script-fu-menu-register "script-fu-mandelbrot" "/Layer/") ``` Having registered the function, you can visualize it in the Procedure Browser. -![script-fu-mandelbrot function][22] - -(Cristiano Fontana, [CC BY-SA 4.0][6]) +![script-fu-mandelbrot function][23] ### Run the script Now that the function is ready and registered, you can draw the Mandelbrot fractal! First, create a square image and run the script from the Layers menu. -![script running][23] - -(Cristiano Fontana, [CC BY-SA 4.0][6]) +![script running][24] The default values are a good starting set to obtain the following image. The first time you run the script, create a very small image (e.g., 60x60 pixels) because this implementation is slow! It took several hours for my computer to create the following image in full 1920x1920 pixels. As I mentioned earlier, this is not the most optimized algorithm; rather, it was the easiest for me to understand. -![Mandelbrot set drawn using GIMP's Firecode palette][10] - -Portion of a Mandelbrot fractal using GIMP's Firecode palette. (Cristiano Fontana, [CC BY-SA 4.0][6]) +![Mandelbrot set drawn using GIMP's Firecode palette][25] ### Learn more This tutorial showed how to use GIMP's built-in scripting features to draw an image created with an algorithm. These images show GIMP's powerful set of tools that can be used for artistic applications and mathematical images. -If you want to move forward, I suggest you look at the official documentation and its [tutorial][14]. As an exercise, try modifying this script to draw a [Julia set][24], and please share the resulting image in the comments. +If you want to move forward, I suggest you look at the official documentation and its [tutorial][26]. As an exercise, try modifying this script to draw a [Julia set][27], and please share the resulting image in the comments. + +Image by: Rotated and magnified portion of the Mandelbrot set using Firecode. (Cristiano Fontana, CC BY-SA 4.0) -------------------------------------------------------------------------------- via: https://opensource.com/article/21/2/gimp-mandelbrot 作者:[Cristiano L. Fontana][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://opensource.com/users/cristianofontana -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/painting_computer_screen_art_design_creative.png?itok=LVAeQx3_ (Painting art on a computer screen) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/painting_computer_screen_art_design_creative.png [2]: https://www.gimp.org/ [3]: https://en.wikipedia.org/wiki/Fractal [4]: https://en.wikipedia.org/wiki/Self-similarity -[5]: https://opensource.com/sites/default/files/uploads/mandelbrot_portion.png (Portion of a Mandelbrot fractal using GIMPs Coldfire palette) -[6]: https://creativecommons.org/licenses/by-sa/4.0/ -[7]: https://docs.gimp.org/en/gimp-concepts-script-fu.html -[8]: https://opensource.com/article/21/1/gimp-scripting -[9]: https://en.wikipedia.org/wiki/Mandelbrot_set -[10]: https://opensource.com/sites/default/files/uploads/mandelbrot.png (Mandelbrot set drawn using GIMP's Firecode palette) -[11]: https://opensource.com/sites/default/files/uploads/mandelbrot_portion2.png (Rotated and magnified portion of the Mandelbrot set using Firecode.) -[12]: https://en.wikipedia.org/wiki/Complex_number +[5]: https://opensource.com/sites/default/files/uploads/mandelbrot_portion.png +[6]: https://docs.gimp.org/en/gimp-concepts-script-fu.html +[7]: https://opensource.com/article/21/1/gimp-scripting +[8]: https://en.wikipedia.org/wiki/Mandelbrot_set +[9]: https://opensource.com/sites/default/files/uploads/mandelbrot.png +[10]: https://opensource.com/sites/default/files/uploads/mandelbrot_portion2.png +[11]: https://en.wikipedia.org/wiki/Complex_number +[12]: https://docs.gimp.org/en/gimp-concepts-script-fu.html [13]: https://en.wikipedia.org/wiki/Scheme_(programming_language) [14]: https://docs.gimp.org/en/gimp-using-script-fu-tutorial.html -[15]: https://opensource.com/sites/default/files/uploads/procedure_browser_0.png (GIMP Procedure Browser) -[16]: https://en.wikipedia.org/wiki/Polish_notation -[17]: https://xkcd.com/297/ -[18]: https://www.gnu.org/software/guile/manual/html_node/Pairs.html -[19]: https://docs.racket-lang.org/reference/generic-numbers.html?q=make-rectangular#%28part._.Complex_.Numbers%29 -[20]: https://racket-lang.org/ -[21]: https://rosettacode.org/wiki/Mandelbrot_set#Racket -[22]: https://opensource.com/sites/default/files/uploads/mandelbrot_documentation.png (script-fu-mandelbrot function) -[23]: https://opensource.com/sites/default/files/uploads/script_working.png (script running) -[24]: https://en.wikipedia.org/wiki/Julia_set +[15]: https://opensource.com/article/21/1/gimp-scripting +[16]: https://opensource.com/sites/default/files/uploads/procedure_browser_0.png +[17]: https://en.wikipedia.org/wiki/Polish_notation +[18]: https://xkcd.com/297/ +[19]: https://www.gnu.org/software/guile/manual/html_node/Pairs.html +[20]: https://docs.racket-lang.org/reference/generic-numbers.html?q=make-rectangular#%28part._.Complex_.Numbers%29 +[21]: https://racket-lang.org/ +[22]: https://rosettacode.org/wiki/Mandelbrot_set#Racket +[23]: https://opensource.com/sites/default/files/uploads/mandelbrot_documentation.png +[24]: https://opensource.com/sites/default/files/uploads/script_working.png +[25]: https://opensource.com/sites/default/files/uploads/mandelbrot.png +[26]: https://docs.gimp.org/en/gimp-using-script-fu-tutorial.html +[27]: https://en.wikipedia.org/wiki/Julia_set diff --git a/sources/tech/20210222 A step-by-step guide to Knative eventing.md b/sources/tech/20210222 A step-by-step guide to Knative eventing.md index 9b297879bb..82f90f55c8 100644 --- a/sources/tech/20210222 A step-by-step guide to Knative eventing.md +++ b/sources/tech/20210222 A step-by-step guide to Knative eventing.md @@ -1,18 +1,20 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (A step-by-step guide to Knative eventing) -[#]: via: (https://opensource.com/article/21/2/knative-eventing) -[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) +[#]: subject: "A step-by-step guide to Knative eventing" +[#]: via: "https://opensource.com/article/21/2/knative-eventing" +[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " A step-by-step guide to Knative eventing ====== -Knative eventing is a way to create, send, and verify events in your -cloud-native environment. +Knative eventing is a way to create, send, and verify events in your cloud-native environment. + ![Computer laptop in space][1] +Image by: Opensource.com + In a previous article, I covered [how to create a small app with Knative][2], which is an open source project that adds components to [Kubernetes][3] for deploying, running, and managing [serverless, cloud-native][4] applications. In this article, I'll explain Knative eventing, a way to create, send, and verify events in your cloud-native environment. Events can be generated from many sources in your environment, and they can be confusing to manage or define. Since Knative follows the [CloudEvents][5] specification, it allows you to have one common abstraction point for your environment, where the events are defined to one specification. @@ -25,7 +27,6 @@ This walkthrough uses [Minikube][7] with Kubernetes 1.19.0. It also makes some c **Minikube pre-configuration commands:** - ``` $ minikube config set kubernetes-version v1.19.0 $ minikube config set memory 4000 @@ -34,7 +35,6 @@ $ minikube config set cpus 4 Before starting Minikube, run the following commands to make sure your configuration stays and start Minikube: - ``` $ minikube delete $ minikube start @@ -44,9 +44,8 @@ $ minikube start Install the Knative eventing custom resource definitions (CRDs) using kubectl. The following shows the command and a snippet of the output: - ``` -$ kubectl apply --filename +$ kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.20.0/eventing-crds.yaml customresourcedefinition.apiextensions.k8s.io/apiserversources.sources.knative.dev created customresourcedefinition.apiextensions.k8s.io/brokers.eventing.knative.dev created @@ -56,9 +55,8 @@ customresourcedefinition.apiextensions.k8s.io/triggers.eventing.knative.dev crea Next, install the core components using kubectl: - ``` -$ kubectl apply --filename +$ kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.20.0/eventing-core.yaml namespace/knative-eventing created serviceaccount/eventing-controller created clusterrolebinding.rbac.authorization.k8s.io/eventing-controller created @@ -66,23 +64,20 @@ clusterrolebinding.rbac.authorization.k8s.io/eventing-controller created Since you're running a standalone version of the Knative eventing service, you must install the in-memory channel to pass events. Using kubectl, run: - ``` -`$ kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.20.0/in-memory-channel.yaml` +$ kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.20.0/in-memory-channel.yaml ``` Install the broker, which utilizes the channels and runs the event routing: - ``` -$ kubectl apply --filename +$ kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.20.0/mt-channel-broker.yaml clusterrole.rbac.authorization.k8s.io/knative-eventing-mt-channel-broker-controller created clusterrole.rbac.authorization.k8s.io/knative-eventing-mt-broker-filter created ``` Next, create a namespace and add a small broker to it; this broker routes events to triggers. Create your namespace using kubectl: - ``` $ kubectl create namespace eventing-test namespace/eventing-test created @@ -90,7 +85,6 @@ namespace/eventing-test created Now create a small broker named `default` in your namespace. The following is the YAML from my **broker.yaml** file (which can be found in my GitHub repository): - ``` apiVersion: eventing.knative.dev/v1 kind: broker @@ -101,7 +95,6 @@ metadata: Then apply your broker file using kubectl: - ``` $ kubectl create -f broker.yaml    broker.eventing.knative.dev/default created @@ -109,11 +102,10 @@ $ kubectl create -f broker.yaml Verify that everything is up and running (you should see the confirmation output) after you run the command: - ``` $ kubectl -n eventing-test get broker default                                                               NAME      URL                                                                              AGE    READY   REASON -default     3m6s   True +default   http://broker-ingress.knative-eventing.svc.cluster.local/eventing-test/default   3m6s   True ``` You'll need this URL from the broker output later for sending events, so save it. @@ -126,7 +118,6 @@ First, you need to create event consumers. You'll create two consumers in this w **The hello-display YAML code:** - ``` apiVersion: apps/v1 kind: Deployment @@ -135,7 +126,7 @@ metadata: spec:   replicas: 1   selector: -    matchLabels: &labels +    matchLabels: &labels       app: hello-display   template:     metadata: @@ -145,7 +136,7 @@ spec:         - name: event-display           image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display -\--- +--- kind: Service apiVersion: v1 @@ -162,7 +153,6 @@ spec: **The goodbye-display YAML code:** - ``` apiVersion: apps/v1 kind: Deployment @@ -171,7 +161,7 @@ metadata: spec:   replicas: 1   selector: -    matchLabels: &labels +    matchLabels: &labels       app: goodbye-display   template:     metadata: @@ -179,10 +169,10 @@ spec:     spec:       containers:         - name: event-display -          # Source code: +          # Source code: https://github.com/knative/eventing-contrib/tree/master/cmd/event_display           image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display -\--- +--- kind: Service apiVersion: v1 @@ -199,7 +189,6 @@ spec: The differences in the YAML between the two consumers are in the `app` and `metadata name` sections. While both consumers are on the same ports, you can target one when generating an event. Create the consumers using kubectl: - ``` $ kubectl -n eventing-test apply -f hello-display.yaml deployment.apps/hello-display created @@ -212,7 +201,6 @@ service/goodbye-display created Check to make sure the deployments are running after you've applied the YAML files: - ``` $ kubectl -n eventing-test get deployments hello-display goodbye-display NAME              READY   UP-TO-DATE   AVAILABLE   AGE @@ -226,7 +214,6 @@ Now, you need to create the triggers, which define the events the consumer recei **The greeting-trigger.yaml code:** - ``` apiVersion: eventing.knative.dev/v1 kind: Trigger @@ -246,7 +233,6 @@ spec: To create the first trigger, apply your YAML file: - ``` $ kubectl -n eventing-test apply -f greeting-trigger.yaml trigger.eventing.knative.dev/hello-display created @@ -256,7 +242,6 @@ Next, make the second trigger using **sendoff-trigger.yaml**. This sends anythin **The sendoff-trigger.yaml code:** - ``` apiVersion: eventing.knative.dev/v1 kind: Trigger @@ -276,7 +261,6 @@ spec: Next, apply your second trigger definition to the cluster: - ``` $ kubectl -n eventing-test apply -f sendoff-trigger.yaml trigger.eventing.knative.dev/goodbye-display created @@ -284,19 +268,17 @@ trigger.eventing.knative.dev/goodbye-display created Confirm everything is correctly in place by getting your triggers from the cluster using kubectl: - ``` $ kubectl -n eventing-test get triggers -NAME              BROKER    SUBSCRIBER_URI                                            AGE   READY   -goodbye-display   default     24s   True     -hello-display     default       46s   True +NAME              BROKER    SUBSCRIBER_URI                                            AGE   READY   +goodbye-display   default   http://goodbye-display.eventing-test.svc.cluster.local/   24s   True     +hello-display     default   http://hello-display.eventing-test.svc.cluster.local/     46s   True ``` ### Create an event producer Create a pod you can use to send events. This is a simple pod deployment with curl and SSH access for you to [send events using curl][8]. Because the broker can be accessed only from inside the cluster where Knative eventing is installed, the pod needs to be in the cluster; this is the only way to send events into the cluster. Use the **event-producer.yaml** file with this code: - ``` apiVersion: v1 kind: Pod @@ -318,7 +300,6 @@ spec: Next, deploy the pod by using kubectl: - ``` $ kubectl -n eventing-test apply -f event-producer.yaml pod/curl created @@ -326,7 +307,6 @@ pod/curl created To verify, get the deployment and make sure the pod is up and running: - ``` $ kubectl get pods -n eventing-test NAME                               READY   STATUS    RESTARTS   AGE @@ -339,14 +319,12 @@ Since this article has been so configuration-heavy, I imagine you'll be happy to Begin by logging into the pod: - ``` -`$ kubectl -n eventing-test attach curl -it` +$ kubectl -n eventing-test attach curl -it ``` Once logged in, you'll see output similar to: - ``` Defaulting container name to curl. Use 'kubectl describe pod/curl -n eventing-test' to see all of the containers in this pod. @@ -356,9 +334,8 @@ If you don't see a command prompt, try pressing enter. Now, generate an event using curl. This needs some extra definitions and requires the broker URL generated during the installation. This example sends a greeting to the broker: - ``` -curl -v "" \ +curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/eventing-test/default" \   -X POST \   -H "Ce-Id: say-hello" \   -H "Ce-Specversion: 1.0" \ @@ -372,31 +349,29 @@ curl -v " POST /eventing-test/default HTTP/1.1 +> User-Agent: curl/7.35.0 +> Host: broker-ingress.knative-eventing.svc.cluster.local +> Accept: */* +> Ce-Id: say-hello +> Ce-Specversion: 1.0 +> Ce-Type: greeting +> Ce-Source: not-sendoff +> Content-Type: application/json +> Content-Length: 24 +> +< HTTP/1.1 202 Accepted +< Date: Sun, 24 Jan 2021 22:25:25 GMT +< Content-Length: 0 ``` The 202 means the trigger sent it to the **hello-display** consumer (because of the definition.) Next, send a second definition to the **goodbye-display** consumer with this new curl command: - ``` -curl -v "" \ +curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/eventing-test/default" \   -X POST \   -H "Ce-Id: say-goodbye" \   -H "Ce-Specversion: 1.0" \ @@ -410,22 +385,21 @@ This time, it is a `sendoff` and not a greeting based on the previous setup sect Your output should look like this, with another 202 returned: - ``` -> POST /eventing-test/default HTTP/1.1 -> User-Agent: curl/7.35.0 -> Host: broker-ingress.knative-eventing.svc.cluster.local -> Accept: */* -> Ce-Id: say-goodbye -> Ce-Specversion: 1.0 -> Ce-Type: not-greeting -> Ce-Source: sendoff -> Content-Type: application/json -> Content-Length: 26 -> -< HTTP/1.1 202 Accepted -< Date: Sun, 24 Jan 2021 22:33:00 GMT -< Content-Length: 0 +> POST /eventing-test/default HTTP/1.1 +> User-Agent: curl/7.35.0 +> Host: broker-ingress.knative-eventing.svc.cluster.local +> Accept: */* +> Ce-Id: say-goodbye +> Ce-Specversion: 1.0 +> Ce-Type: not-greeting +> Ce-Source: sendoff +> Content-Type: application/json +> Content-Length: 26 +> +< HTTP/1.1 202 Accepted +< Date: Sun, 24 Jan 2021 22:33:00 GMT +< Content-Length: 0 ``` Congratulations, you sent two events! @@ -438,14 +412,12 @@ Now that the events have been sent, how do you know that the correct consumers r Start with the **hello-display** consumer:: - ``` -`$ kubectl -n eventing-test logs -l app=hello-display --tail=100` +$ kubectl -n eventing-test logs -l app=hello-display --tail=100 ``` There isn't much running in this example cluster, so you should see only one event: - ``` ☁️  cloudevents.Event Validation: valid @@ -467,7 +439,6 @@ You've confirmed the **hello-display** consumer received the event! Now check th Start by running the same command but with **goodbye-display**: - ``` $ kubectl -n eventing-test logs -l app=goodbye-display --tail=100 ☁️  cloudevents.Event @@ -494,9 +465,8 @@ So you sent events to each consumer using curl, but what if you want to send an Here is a curl example of a definition for sending an event to both consumers: - ``` -curl -v "" \ +curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/eventing-test/default" \   -X POST \   -H "Ce-Id: say-hello-goodbye" \   -H "Ce-Specversion: 1.0" \ @@ -512,27 +482,25 @@ Here is sample output of what the events look like after they are sent. **Output of the event being sent:** - ``` -> POST /eventing-test/default HTTP/1.1 -> User-Agent: curl/7.35.0 -> Host: broker-ingress.knative-eventing.svc.cluster.local -> Accept: */* -> Ce-Id: say-hello-goodbye -> Ce-Specversion: 1.0 -> Ce-Type: greeting -> Ce-Source: sendoff -> Content-Type: application/json -> Content-Length: 41 -> -< HTTP/1.1 202 Accepted -< Date: Sun, 24 Jan 2021 23:04:15 GMT -< Content-Length: 0 +> POST /eventing-test/default HTTP/1.1 +> User-Agent: curl/7.35.0 +> Host: broker-ingress.knative-eventing.svc.cluster.local +> Accept: */* +> Ce-Id: say-hello-goodbye +> Ce-Specversion: 1.0 +> Ce-Type: greeting +> Ce-Source: sendoff +> Content-Type: application/json +> Content-Length: 41 +> +< HTTP/1.1 202 Accepted +< Date: Sun, 24 Jan 2021 23:04:15 GMT +< Content-Length: 0 ``` **Output of hello-display (showing two events):** - ``` $ kubectl -n eventing-test logs -l app=hello-display --tail=100 ☁️  cloudevents.Event @@ -567,7 +535,6 @@ Data, **Output of goodbye-display (also with two events):** - ``` $ kubectl -n eventing-test logs -l app=goodbye-display --tail=100 ☁️  cloudevents.Event @@ -611,15 +578,15 @@ Internal eventing in cloud events is pretty easy to track if it's going to a pre via: https://opensource.com/article/21/2/knative-eventing 作者:[Jessica Cherry][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://opensource.com/users/cherrybomb -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_space_graphic_cosmic.png?itok=wu493YbB (Computer laptop in space) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/computer_space_graphic_cosmic.png [2]: https://opensource.com/article/20/11/knative [3]: https://opensource.com/resources/what-is-kubernetes [4]: https://en.wikipedia.org/wiki/Cloud_native_computing diff --git a/sources/tech/20210524 4 steps to set up global modals in React.md b/sources/tech/20210524 4 steps to set up global modals in React.md index 1a6a762096..f0debb9c82 100644 --- a/sources/tech/20210524 4 steps to set up global modals in React.md +++ b/sources/tech/20210524 4 steps to set up global modals in React.md @@ -1,15 +1,16 @@ -[#]: subject: (4 steps to set up global modals in React) -[#]: via: (https://opensource.com/article/21/5/global-modals-react) -[#]: author: (Ajay Pratap https://opensource.com/users/ajaypratap) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "4 steps to set up global modals in React" +[#]: via: "https://opensource.com/article/21/5/global-modals-react" +[#]: author: "Ajay Pratap https://opensource.com/users/ajaypratap" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " 4 steps to set up global modals in React ====== Learn how to create interactive pop-up windows in a React web app. + ![Digital creative of a browser on the internet][1] A modal dialog is a window that appears on top of a web page and requires a user's interaction before it disappears. [React][2] has a couple of ways to help you generate and manage modals with minimal coding. @@ -24,11 +25,10 @@ In my opinion, the best way to manage modal dialogs in your React application is Here are the steps (and code) to set up global modals in React. I'm using [Patternfly][3] as my foundation, but the principles apply to any project. -#### 1\. Create a global modal component +#### 1. Create a global modal component In a file called **GlobalModal.tsx**, create your modal definition: - ``` import React, { useState, createContext, useContext } from 'react'; import { CreateModal, DeleteModal,UpdateModal } from './components'; @@ -46,25 +46,25 @@ const MODAL_COMPONENTS: any = { }; type GlobalModalContext = { - showModal: (modalType: string, modalProps?: any) => void; - hideModal: () => void; + showModal: (modalType: string, modalProps?: any) => void; + hideModal: () => void;  store: any; }; const initalState: GlobalModalContext = { - showModal: () => {}, - hideModal: () => {}, + showModal: () => {}, + hideModal: () => {},  store: {}, }; const GlobalModalContext = createContext(initalState); -export const useGlobalModalContext = () => useContext(GlobalModalContext); +export const useGlobalModalContext = () => useContext(GlobalModalContext); -export const GlobalModal: React.FC<{}> = ({ children }) => { +export const GlobalModal: React.FC<{}> = ({ children }) => {  const [store, setStore] = useState();  const { modalType, modalProps } = store || {}; - const showModal = (modalType: string, modalProps: any = {}) => { + const showModal = (modalType: string, modalProps: any = {}) => {    setStore({      ...store,      modalType, @@ -72,7 +72,7 @@ export const GlobalModal: React.FC<{}> = ({ children }) => {    });  }; - const hideModal = () => { + const hideModal = () => {    setStore({      ...store,      modalType: null, @@ -80,19 +80,19 @@ export const GlobalModal: React.FC<{}> = ({ children }) => {    });  }; - const renderComponent = () => { + const renderComponent = () => {    const ModalComponent = MODAL_COMPONENTS[modalType];    if (!modalType || !ModalComponent) {      return null;    } -   return <ModalComponent id="global-modal" {...modalProps} />; +   return ;  };  return ( -   <GlobalModalContext.Provider value={{ store, showModal, hideModal }}> +         {renderComponent()}      {children} -   </GlobalModalContext.Provider> +     ); }; ``` @@ -103,40 +103,39 @@ The `showModal` function takes two parameters: `modalType` and `modalProps`. The The `hideModal` function doesn't have any parameters; calling it causes the current open modal to close. -#### 2\. Create modal dialog components +#### 2. Create modal dialog components In a file called **CreateModal.tsx**, create a modal: - ``` import React from "react"; import { Modal, ModalVariant, Button } from "@patternfly/react-core"; import { useGlobalModalContext } from "../GlobalModal"; -export const CreateModal = () => { +export const CreateModal = () => {  const { hideModal, store } = useGlobalModalContext();  const { modalProps } = store || {};  const { title, confirmBtn } = modalProps || {}; - const handleModalToggle = () => { + const handleModalToggle = () => {    hideModal();  };  return ( -   <Modal +             {confirmBtn || "Confirm button"} -       </Button>, -       <Button key="cancel" variant="link" onClick={handleModalToggle}> +       , +             ]} -   > +   >      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim      veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea @@ -144,7 +143,7 @@ export const CreateModal = () => {      velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat      cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id      est laborum. -   </Modal> +     ); }; ``` @@ -153,34 +152,33 @@ This has a custom hook, `useGlobalModalContext`, that provides store object from To delete a modal, create a file called **DeleteModal.tsx**: - ``` import React from "react"; import { Modal, ModalVariant, Button } from "@patternfly/react-core"; import { useGlobalModalContext } from "../GlobalModal"; -export const DeleteModal = () => { +export const DeleteModal = () => {  const { hideModal } = useGlobalModalContext(); - const handleModalToggle = () => { + const handleModalToggle = () => {    hideModal();  };  return ( -   <Modal +             Confirm -       </Button>, -       <Button key="cancel" variant="link" onClick={handleModalToggle}> +       , +             ]} -   > +   >      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim      veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea @@ -188,41 +186,40 @@ export const DeleteModal = () => {      velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat      cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id      est laborum. -   </Modal> +     ); }; ``` To update a modal, create a file called **UpdateModal.tsx** and add this code: - ``` import React from "react"; import { Modal, ModalVariant, Button } from "@patternfly/react-core"; import { useGlobalModalContext } from "../GlobalModal"; -export const UpdateModal = () => { +export const UpdateModal = () => {  const { hideModal } = useGlobalModalContext(); - const handleModalToggle = () => { + const handleModalToggle = () => {    hideModal();  };  return ( -   <Modal +             Confirm -       </Button>, -       <Button key="cancel" variant="link" onClick={handleModalToggle}> +       , +             ]} -   > +   >      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim      veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea @@ -230,15 +227,14 @@ export const UpdateModal = () => {      velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat      cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id      est laborum. -   </Modal> +     ); }; ``` -#### 3\. Integrate GlobalModal into the top-level component in your application - -To integrate the new modal structure you've created into your app, you just import the global modal class you've created. Here's my sample **App.tsx** file: +#### 3. Integrate GlobalModal into the top-level component in your application +To integrate the new modal structure you've created into your app, you just import the global modal class you've created. Here's my sample **App.tsx**file: ``` import "@patternfly/react-core/dist/styles/base.css"; @@ -248,9 +244,9 @@ import { AppLayout } from "./AppLayout"; export default function App() {  return ( -   <GlobalModal> -     <AppLayout /> -   </GlobalModal> +    +      +     ); } ``` @@ -259,55 +255,54 @@ App.tsx is the top-level component in your app, but you can add another componen `GlobalModal` is the root-level component where all your modal components are imported and mapped with their specific `modalType`. -#### 4\. Select the modal's button from the AppLayout component +#### 4. Select the modal's button from the AppLayout component Adding a button to your modal with **AppLayout.js**: - ``` import React from "react"; import { Button, ButtonVariant } from "@patternfly/react-core"; import { useGlobalModalContext, MODAL_TYPES } from "./components/GlobalModal"; -export const AppLayout = () => { +export const AppLayout = () => {  const { showModal } = useGlobalModalContext(); - const createModal = () => { + const createModal = () => {    showModal(MODAL_TYPES.CREATE_MODAL, {      title: "Create instance form",      confirmBtn: "Save"    });  }; - const deleteModal = () => { + const deleteModal = () => {    showModal(MODAL_TYPES.DELETE_MODAL);  }; - const updateModal = () => { + const updateModal = () => {    showModal(MODAL_TYPES.UPDATE_MODAL);  };  return ( -   <> -     <Button variant={ButtonVariant.primary} onClick={createModal}> +   <> +      +     
+     
+      +     
+     
+      +     ); }; ``` -There are three buttons in the AppLayout component: create modal, delete modal, and update modal. Each modal is mapped with the corresponding `modalType`: `CREATE_MODAL`, `DELETE_MODAL`, or `UPDATE_MODAL`. +There are three buttons in the AppLayout component: create modal, delete modal, and update modal. Each modal is mapped with the corresponding `modalType` : `CREATE_MODAL`, `DELETE_MODAL`, or `UPDATE_MODAL`. ### Use global dialogs @@ -315,22 +310,20 @@ Global modals are a clean and efficient way to handle dialogs in React. They are If you'd like to see the code in action, I've included the [complete application][4] I created for this article in a sandbox. -Leslie Hinson sits down with Andrés Galante, an expert HTML and CSS coder who travels the world... - -------------------------------------------------------------------------------- via: https://opensource.com/article/21/5/global-modals-react 作者:[Ajay Pratap][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://opensource.com/users/ajaypratap -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_web_internet_website.png?itok=g5B_Bw62 (Digital creative of a browser on the internet) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png [2]: https://reactjs.org/ [3]: https://www.patternfly.org/v4/ [4]: https://codesandbox.io/s/affectionate-pine-gib74 diff --git a/sources/tech/20210601 Get started with Java serverless functions.md b/sources/tech/20210601 Get started with Java serverless functions.md index e8c9184cef..94fe5a6f72 100644 --- a/sources/tech/20210601 Get started with Java serverless functions.md +++ b/sources/tech/20210601 Get started with Java serverless functions.md @@ -1,18 +1,20 @@ -[#]: subject: (Get started with Java serverless functions) -[#]: via: (https://opensource.com/article/21/6/java-serverless-functions) -[#]: author: (Daniel Oh https://opensource.com/users/daniel-oh) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Get started with Java serverless functions" +[#]: via: "https://opensource.com/article/21/6/java-serverless-functions" +[#]: author: "Daniel Oh https://opensource.com/users/daniel-oh" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Get started with Java serverless functions ====== -Quarkus allows you to develop serverless workloads with familiar Java -technology. +Quarkus allows you to develop serverless workloads with familiar Java technology. + ![Tips and gears turning][1] +Image by: opensource.com + The [serverless Java][2] journey started out with functions—small snippets of code running on demand. This phase didn't last long. Although functions based on virtual machine architecture in the 1.0 phase made this paradigm very popular, as the graphic below shows, there were limits around execution time, protocols, and poor local-development experience. Developers then realized that they could apply the same serverless traits and benefits to microservices and Linux containers. This launched the 1.5 phase, where some serverless containers completely abstracted [Kubernetes][3], delivering the serverless experience through [Knative][4] or another abstraction layer that sits on top of it. @@ -21,24 +23,21 @@ In the 2.0 phase, serverless starts to handle more complex orchestration and int ![The serverless Java journey][5] -(Daniel Oh, [CC BY-SA 4.0][6]) - Before Java developers can start developing new serverless functions, their first task is to choose a new cloud-native Java framework that allows them to run Java functions quicker with a smaller memory footprint than traditional monolithic applications. This can be applied to various infrastructure environments, from physical servers to virtual machines to containers in multi- and hybrid-cloud environments. -Developers might consider an opinionated Spring framework that uses the `java.util.function` package in [Spring Cloud Function][7] to support the development of imperative and reactive functions. Spring also enables developers to deploy Java functions to installable serverless platforms such as [Kubeless][8], [Apache OpenWhisk][9], [Fission][10], and [Project Riff][11]. However, there are concerns about slow startup and response times and heavy memory-consuming processes with Spring. This problem can be worse when running Java functions on scalable container environments such as Kubernetes. +Developers might consider an opinionated Spring framework that uses the `java.util.function` package in [Spring Cloud Function][6] to support the development of imperative and reactive functions. Spring also enables developers to deploy Java functions to installable serverless platforms such as [Kubeless][7], [Apache OpenWhisk][8], [Fission][9], and [Project Riff][10]. However, there are concerns about slow startup and response times and heavy memory-consuming processes with Spring. This problem can be worse when running Java functions on scalable container environments such as Kubernetes. -[Quarkus][12] is a new open source cloud-native Java framework that can help solve these problems. It aims to design serverless applications and write cloud-native microservices for running on cloud infrastructures (e.g., Kubernetes). +[Quarkus][11] is a new open source cloud-native Java framework that can help solve these problems. It aims to design serverless applications and write cloud-native microservices for running on cloud infrastructures (e.g., Kubernetes). Quarkus rethinks Java, using a closed-world approach to building and running it. It has turned Java into a runtime that's comparable to Go. Quarkus also includes more than 100 extensions that integrate enterprise capabilities, including database access, serverless integration, messaging, security, observability, and business automation. Here is a quick example of how developers can scaffold a Java serverless function project with Quarkus. -### 1\. Create a Quarkus serverless Maven project +### 1. Create a Quarkus serverless Maven project -Developers have multiple options to install a local Kubernetes cluster, including [Minikube][13] and [OKD][14] (OpenShift Kubernetes Distribution). This tutorial uses an OKD cluster for a developer's local environment because of the easy setup of serverless functionality on Knative and DevOps toolings. These guides for [OKD installation][15] and [Knative operator installation][16] offer more information about setting them up. - -The following command generates a Quarkus project (e.g., `quarkus-serverless-restapi`) to expose a simple REST API and download a `quarkus-openshift` extension for Knative service deployment: +Developers have multiple options to install a local Kubernetes cluster, including [Minikube][12] and [OKD][13] (OpenShift Kubernetes Distribution). This tutorial uses an OKD cluster for a developer's local environment because of the easy setup of serverless functionality on Knative and DevOps toolings. These guides for [OKD installation][14] and [Knative operator installation][15] offer more information about setting them up. +The following command generates a Quarkus project (e.g., `quarkus-serverless-restapi` ) to expose a simple REST API and download a `quarkus-openshift` extension for Knative service deployment: ``` $ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \ @@ -48,50 +47,45 @@ $ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \        -DclassName="org.acme.getting.started.GreetingResource" ``` -### 2\. Run serverless functions locally +### 2. Run serverless functions locally Run the application using Quarkus development mode to check if the REST API works, then tweak the code a bit: - ``` -`$ ./mvnw quarkus:dev` +$ ./mvnw quarkus:dev ``` The output will look like this: - ``` -__  ____  __  _____   ___  __ ____  ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   -\--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/   -INFO  [io.quarkus] (Quarkus Main Thread) quarkus-serverless-restapi 1.0.0-SNAPSHOT on JVM (powered by Quarkus xx.xx.xx.) started in 2.386s. Listening on: +__  ____  __  _____   ___  __ ____  ______ + --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ + -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   +--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   +INFO  [io.quarkus] (Quarkus Main Thread) quarkus-serverless-restapi 1.0.0-SNAPSHOT on JVM (powered by Quarkus xx.xx.xx.) started in 2.386s. Listening on: http://localhost:8080 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, kubernetes, resteasy] ``` > **Note**: Keep your Quarkus application running to use Live Coding. This allows you to avoid having to rebuild, redeploy the application, and restart the runtime whenever the code changes. -Now you can hit the REST API with a quick `curl` command. The output should be `Hello RESTEasy`: - +Now you can hit the REST API with a quick `curl` command. The output should be `Hello RESTEasy` : ``` $ curl localhost:8080/hello Hello RESTEasy ``` -Tweak the return text in `GreetingResource.java`: - +Tweak the return text in `GreetingResource.java` : ``` -    public [String][17] hello() { +public String hello() {         return "Quarkus Function on Kubernetes";     } ``` You will see new output when you reinvoke the REST API: - ``` $ curl localhost:8080/hello Quarkus Function on Kubernetes @@ -99,87 +93,77 @@ Quarkus Function on Kubernetes There's not been a big difference between normal microservices and serverless functions. A benefit of Quarkus is that it enables developers to use any microservice to deploy Kubernetes as a serverless function. -### 3\. Deploy the functions to a Knative service +### 3. Deploy the functions to a Knative service -If you haven't already, [create a namespace][18] (e.g., `quarkus-serverless-restapi`) on your OKD (Kubernetes) cluster to deploy this Java serverless function. - -Quarkus enables developers to generate Knative and Kubernetes resources by adding the following variables in `src/main/resources/application.properties`: +If you haven't already, [create a namespace][16] (e.g., `quarkus-serverless-restapi` ) on your OKD (Kubernetes) cluster to deploy this Java serverless function. +Quarkus enables developers to generate Knative and Kubernetes resources by adding the following variables in `src/main/resources/application.properties` : ``` -quarkus.container-image.group=quarkus-serverless-restapi <1> -quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 <2> -quarkus.kubernetes-client.trust-certs=true <3> -quarkus.kubernetes.deployment-target=knative <4> -quarkus.kubernetes.deploy=true <5> -quarkus.openshift.build-strategy=docker <6> +quarkus.container-image.group=quarkus-serverless-restapi <1> +quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 <2> +quarkus.kubernetes-client.trust-certs=true <3> +quarkus.kubernetes.deployment-target=knative <4> +quarkus.kubernetes.deploy=true <5> +quarkus.openshift.build-strategy=docker <6> ``` > Legend: -> -> <1> Define a project name where you deploy a serverless application -> <2> The container registry to use -> <3> Use self-signed certs in this simple example to trust them -> <4> Enable the generation of Knative resources -> <5> Instruct the extension to deploy to OpenShift after the container image is built -> <6> Set the Docker build strategy + +> <1> Define a project name where you deploy a serverless application +<2> The container registry to use +<3> Use self-signed certs in this simple example to trust them +<4> Enable the generation of Knative resources +<5> Instruct the extension to deploy to OpenShift after the container image is built +<6> Set the Docker build strategy This command builds the application then deploys it directly to the OKD cluster: - ``` -`$ ./mvnw clean package -DskipTests` +$ ./mvnw clean package -DskipTests ``` -> **Note:** Make sure to log in to the right project (e.g., `quarkus-serverless-restapi`) by using the `oc login` command ahead of time. +> **Note:** Make sure to log in to the right project (e.g., `quarkus-serverless-restapi` ) by using the `oc login` command ahead of time. The output should end with `BUILD SUCCESS`. Add a Quarkus label to the Knative service with this `oc` command: - ``` -$ oc label rev/quarkus-serverless-restapi-00001 +$ oc label rev/quarkus-serverless-restapi-00001 app.openshift.io/runtime=quarkus --overwrite ``` -Then access the OKD web console to go to the [Topology view in the Developer perspective][19]. You might see that your pod (serverless function) is already scaled down to zero (white-line circle). +Then access the OKD web console to go to the [Topology view in the Developer perspective][17]. You might see that your pod (serverless function) is already scaled down to zero (white-line circle). -![Topology view][20] +![Topology view][18] -(Daniel Oh, [CC BY-SA 4.0][6]) - -### 4\. Test the functions on Kubernetes +### 4. Test the functions on Kubernetes Retrieve a route `URL` of the serverless function by running the following `oc` command: - ``` $ oc get rt/quarkus-serverless-restapi [...] NAME                      URL                             READY   REASON -quarkus-serverless[...]     True +quarkus-serverless[...]   http://quarkus[...].SUBDOMAIN   True ``` Access the route `URL` with a `curl` command: - ``` -`$ curl http://quarkus-serverless-restapi-quarkus-serverless-restapi.SUBDOMAIN/hello` +$ curl http://quarkus-serverless-restapi-quarkus-serverless-restapi.SUBDOMAIN/hello ``` In a few seconds, you will get the same result as you got locally: - ``` -`Quarkus Function on Kubernetes` +Quarkus Function on Kubernetes ``` When you return to the Topology view in the OKD cluster, the Knative service scales up automatically. -![Scaling the Knative Function][21] - -(Daniel Oh, [CC BY-SA 4.0][6]) +![Scaling the Knative Function][19] This Knative service pod will go down to zero again in 30 seconds because of Knative serving's default setting. @@ -189,37 +173,37 @@ The serverless journey has evolved, starting with functions on virtual machines The next article in this series will guide you on optimizing Java serverless functions in Kubernetes for faster startup time and small memory footprints at scale. +Image by: (Daniel Oh, CC BY-SA 4.0) + -------------------------------------------------------------------------------- via: https://opensource.com/article/21/6/java-serverless-functions 作者:[Daniel Oh][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://opensource.com/users/daniel-oh -[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) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/gears_devops_learn_troubleshooting_lightbulb_tips_520.png [2]: https://opensource.com/article/21/5/what-serverless-java [3]: https://opensource.com/article/19/6/reasons-kubernetes [4]: https://cloud.google.com/knative/ -[5]: https://opensource.com/sites/default/files/uploads/serverless-journey.png (The serverless Java journey) -[6]: https://creativecommons.org/licenses/by-sa/4.0/ -[7]: https://spring.io/serverless -[8]: https://kubeless.io/ -[9]: https://openwhisk.apache.org/ -[10]: https://fission.io/ -[11]: https://projectriff.io/ -[12]: https://quarkus.io/ -[13]: https://minikube.sigs.k8s.io/docs/start/ -[14]: https://docs.okd.io/latest/welcome/index.html -[15]: https://docs.okd.io/latest/installing/index.html -[16]: https://knative.dev/docs/install/knative-with-operators/ -[17]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string -[18]: https://docs.okd.io/latest/applications/projects/configuring-project-creation.html -[19]: https://docs.okd.io/latest/applications/application_life_cycle_management/odc-viewing-application-composition-using-topology-view.html -[20]: https://opensource.com/sites/default/files/uploads/topologyview.png (Topology view) -[21]: https://opensource.com/sites/default/files/uploads/scale-up-knative-function.png (Scaling the Knative Function) +[5]: https://opensource.com/sites/default/files/uploads/serverless-journey.png +[6]: https://spring.io/serverless +[7]: https://kubeless.io/ +[8]: https://openwhisk.apache.org/ +[9]: https://fission.io/ +[10]: https://projectriff.io/ +[11]: https://quarkus.io/ +[12]: https://minikube.sigs.k8s.io/docs/start/ +[13]: https://docs.okd.io/latest/welcome/index.html +[14]: https://docs.okd.io/latest/installing/index.html +[15]: https://knative.dev/docs/install/knative-with-operators/ +[16]: https://docs.okd.io/latest/applications/projects/configuring-project-creation.html +[17]: https://docs.okd.io/latest/applications/application_life_cycle_management/odc-viewing-application-composition-using-topology-view.html +[18]: https://opensource.com/sites/default/files/uploads/topologyview.png +[19]: https://opensource.com/sites/default/files/uploads/scale-up-knative-function.png diff --git a/sources/tech/20210830 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/sources/tech/20210830 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md new file mode 100644 index 0000000000..efb9cc5052 --- /dev/null +++ b/sources/tech/20210830 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md @@ -0,0 +1,253 @@ +[#]: subject: "The Definitive Guide to Using and Customizing the Dock in Ubuntu" +[#]: via: "https://itsfoss.com/customize-ubuntu-dock/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Definitive Guide to Using and Customizing the Dock in Ubuntu +====== +When you log into Ubuntu, you’ll see the dock on the left side with some application icons on it. This dock (also known as launcher or sometimes as panel) allows you to quickly launch your frequently used programs. + +![Ubuntu Dock][1] + +I rely heavily on the dock and I am going to share a few tips about using the dock effectively and customize its looks and position. + +You’ll learn the following in this tutorial: + +* Basic usage of the dock: adding more applications and using shortcuts for launching applications. +* Customize the looks of the dock: Change the icon size, icon positions. +* Change the position: for single screen and multi-monitor setup +* Hide mounted disk from the dock +* Auto-hide or disable the dock +* Possibility of additional dock customization with dconf-editor +* Replace dock with other docking applications + +I’ll use the terms dock, panel and launcher in the tutorial. All of them refer to the same thing. + +### Using the Ubuntu dock: Absolute basic that you must know + +If you are new to Ubuntu, you should know a few things about using the dock. You’ll eventually discover these dock features, I’ll just speed up the discovery process for you. + +![A Video from YouTube][2] + +[Subscribe to our YouTube channel for more Linux videos][3] + +#### Add new applications to the dock (or remove them) + +The steps are simple. Search for the application from the menu and run it. + +The running application appears in the dock, below all other icons. Right click on it and select the “Add to Favorites” option. This will lock the icon to the dock. + +![Right click on the icon and select "Add to Favorites" to add icons to the dock in Ubuntu][4] + +Removing an app icon from the doc is even easier. You don’t even need to run the application. Simply right click on it and select “Remove From Favorites”. + +![Right-click on the icon and select "Remove from Favorites" to remove icons from the dock in Ubuntu][5] + +#### Reorder icon position + +By default, new application icons are added after all the other icons on the launcher. You don’t have to live with it as it is. + +To change the order of the icons, you just need to drag and drop to the other position of your choice. No need to “lock it” or any additional effort. It stays on that location until you make some changes again. + +![Reorder Icons On Ubuntu Docks][6] + +#### Right click to get additional options for some apps + +Left-clicking on an icon launches the application or bring it to focus if the application is already running. + +Right-clicking the icon gives you additional options. Different applications will have different options. + +For browsers, you can open a new private window or preview all the running windows. + +![Right Click Icons Ubuntu Dock][7] + +For file manager, you can go to all the bookmarked directories or preview opened windows. + +You can, of course, quit the application. Most applications will quit while some applications like Telegram will be minimized to the system tray. + +#### Use keyboard shortcut to launch applications quickly [Not many people know about this one] + +The dock allows you to launch an application in a single mouse click. But if you are like me, you can save that mouse click with a keyboard shortcut. + +Using the Super/Window key and a number key will launch the application on that position. + +![Keyboard Shortcut For Ubuntu Dock][8] + +If the application is already running, it is brought to focus, i.e. it appears in front of all the other running application windows. + +Since it is position-based, you should make sure that you don’t reorder the icons all the time. Personally, I keep Firefox at position 1, file manager at 2 and the alternate browser at 3 and so on until number 9. This way, I quickly launch the file manager with Super+2. + +I find it easier specially because I have a three screen setup and moving the mouse to the launcher on the first screen is a bit too much of trouble. You can enable or disable the dock on additional screen. I’ll show that to you later in this tutorial. + +### Change the position of the dock + +By default, the dock is located on the left side of your screen. Some people like the launcher at the bottom, in a more traditional way. + +[Ubuntu allows you to change the position of the dock][9]. You can move it to the bottom or to the right side. I am not sure many people actually put the dock on the top, so moving the dock to the top is not an option here. + +![Change Launcher Position in Ubuntu][10] + +To change the dock position, go to Settings->Appearance. You should see some options under Dock section. You need to change the “Position on screen” settings here. + +![Change Dock Position in Ubuntu][11] + +#### Position of dock on a multiple monitor setup + +If you have multiple screens attached to your system, you can choose whether to display the dock on all screens or one of the chosen screens. + +![Ubuntu Dock Settings Multimonitor][12] + +Personally, I display the dock on my laptop screen only which is my main screen. This gives me maximum space on the additional two screens. + +### Change the appearance of the dock + +Let’s see some more dock customization options in Ubuntu. + +Imagine you added too many applications to the dock or have too many applications open. It will fill up the space and you’ll have to scroll to the top and bottom to go to the applications at end points. + +What you can do here is to change the icon size and the dock will now accommodate more icons. Don’t make it too small, though. + +![Normal Icon Size Dock][13] + +![Smaller Icon Size Dock][14] + +To do that, go to Settings-> Appearance and change it by moving the slider under Icon size. The default icons size is 48 pixels. + +![Changing Icon Size In Ubuntu Dock][15] + +#### Hide mounted disks from the launcher + +If you plug in a USB disk or SD Card, it is mounted to the system, and an icon appear in the launcher immediately. This is helpful because you can right click on it and select safely remove drive option. + +![External Mounted Disks In Ubuntu Dock][16] + +If you somehow find it troublesome, you can turn this feature off. Don’t worry, you can still access the mounted drives from the file manager. + +Open a terminal and use the following command: + +``` +gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false +``` + +The changes take into effect immediately. You won’t be bothered with mounted disk being displayed in the launcher. + +If you want the default behavior back, use this command: + +``` +gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true +``` + +### Change the behavior of dock + +Let’s customize the default behavior of the dock and make it more suitable to your needs. + +#### Enable minimize on click + +If you click on the icon of a running application, its window will be brought to focus. That’s fine. However, if you click on it, nothing happens. By default, clicking on the same icon won’t minimize the application. + +Well, this is the behavior in modern desktop, but I don’t like it. I prefer that the application is minimized when I click on its icon for the second time. + +If you are like me, you may want to [enable click to minimize option in Ubuntu][17]: + +![A Video from YouTube][18] + +To do that, open a terminal and enter the following command: + +``` +gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' +``` + +#### Auto-hide Ubuntu dock and get more screen space + +If you want to utilize the maximum screen space, you can enable auto-hide option for the dock in Ubuntu. + +This will hide the dock, and you’ll get the entire screen. The dock is still accessible, though. Move your cursor to the location of the dock where it used to be, and it will appear again. When the dock reappears, it is overlaid on the running application window. And that’s a good thing otherwise too many elements would start moving on the screen. + +The auto-hide option is available in Settings-> Appearance and under Dock section. Just toggle it. + +![Autohide the Dock Ubuntu][19] + +If you don’t like this behavior, you can enable it again the same way. + +#### Disable Ubuntu dock + +Auto-hide option is good enough for many people, but some users simply don’t like the dock. If you are one of those users, you also have the option to disable the Ubuntu dock entirely. + +Starting with Ubuntu 20.04, you have the Extensions application available at your disposal to [manage GNOME Extensions][20]. + +![Gnome Extensions App Ubuntu][21] + +With this Extensions application, you can easily disable or re-enable the dock. + +![Disable Dock Ubuntu][22] + +### Advanced dock customization with dconf-editor [Not recommended] + +##### Warning + +The dconf-editor allows you to change almost every aspect of the GNOME desktop environment. This is both good and bad because you must be careful in editing. Most of the settings can be changed on the fly, without asking for conformation. While you may reset the changes, you could still put your system in such a state that it would be difficult to put things back in order.For this reason, I advise not to play with dconf-editor, specially if you don’t like spending time in troubleshooting and fixing problems or if you are not too familiar with Linux and GNOME. + +The [dconf editor][23] gives you additional options to customize the dock in Ubuntu. Install it from the software center and then navigate to org > gnome > shell > extensions > dash-to-dock. You’ll find plenty of options here. I cannot even list them all here. + +![Dconf Editor Dock][24] + +### Replace the dock in Ubuntu + +There are several third-party dock applications available for Ubuntu and other Linux distributions. You can install a dock of your choice and use it. + +For example, you can install Plank dock from the software center and use it in similar fashion to Ubuntu dock. + +![Plank Dock Ubuntu][25] + +Disabling Ubuntu Dock would be a better idea in this case. It won’t be wise to use multiple docks at the same time. + +### Conclusion + +This tutorial is about customizing the default dock or launcher provided in Ubuntu’s GNOME implementation. Some suggestions should work on the dock in vanilla GNOME as work well. + +I have shown you most of the common Ubuntu dock customization. You don’t need to go and blindly follow all of them. Read and think which one suits your need and then act upon it. + +Was it too trivial or did you learn something new? Would you like to see more such tutorials? I welcome your suggestions and feedback on dock customization. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/customize-ubuntu-dock/ + +作者:[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/2021/01/ubuntu-dock.png +[2]: https://player.vimeo.com/video/534830884 +[3]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 +[4]: https://itsfoss.com/wp-content/uploads/2021/01/add-icons-to-dock.png +[5]: https://itsfoss.com/wp-content/uploads/2021/01/remove-icons-from-dock.png +[6]: https://itsfoss.com/wp-content/uploads/2021/01/reorder-icons-on-ubuntu-docks-800x430.gif +[7]: https://itsfoss.com/wp-content/uploads/2021/01/right-click-icons-ubuntu-dock.png +[8]: https://itsfoss.com/wp-content/uploads/2021/01/keyboard-shortcut-for-ubuntu-dock.png +[9]: https://itsfoss.com/move-unity-launcher-bottom/ +[10]: https://itsfoss.com/wp-content/uploads/2021/01/change-launcher-position-ubuntu.png +[11]: https://itsfoss.com/wp-content/uploads/2021/01/change-dock-position-ubuntu.png +[12]: https://itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock-settings-multimonitor.png +[13]: https://itsfoss.com/wp-content/uploads/2021/01/normal-icon-size-dock.jpg +[14]: https://itsfoss.com/wp-content/uploads/2021/01/smaller-icon-size-dock.jpg +[15]: https://itsfoss.com/wp-content/uploads/2021/01/changing-icon-size-in-ubuntu-dock.png +[16]: https://itsfoss.com/wp-content/uploads/2021/01/external-mounted-disks-in-ubuntu-dock.png +[17]: https://itsfoss.com/click-to-minimize-ubuntu/ +[18]: https://giphy.com/embed/52FlrSIMxnZ1qq9koP +[19]: https://itsfoss.com/wp-content/uploads/2021/01/autohide-dock-ubuntu.png +[20]: https://itsfoss.com/gnome-shell-extensions/ +[21]: https://itsfoss.com/wp-content/uploads/2020/06/GNOME-extensions-app-ubuntu.jpg +[22]: https://itsfoss.com/wp-content/uploads/2021/01/disable-dock-ubuntu.png +[23]: https://wiki.gnome.org/Apps/DconfEditor +[24]: https://itsfoss.com/wp-content/uploads/2021/01/dconf-editor-dock.png +[25]: https://itsfoss.com/wp-content/uploads/2021/01/plank-dock-Ubuntu-800x382.jpg From a111d76062b961d41957500280a5ca6964f1fac5 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Fri, 24 Jun 2022 00:21:56 +0800 Subject: [PATCH 0093/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0214 A guide to Kubernetes architecture.md | 183 ----------------- ...0214 A guide to Kubernetes architecture.md | 188 ++++++++++++++++++ 2 files changed, 188 insertions(+), 183 deletions(-) delete mode 100644 sources/tech/20220214 A guide to Kubernetes architecture.md create mode 100644 translated/tech/20220214 A guide to Kubernetes architecture.md diff --git a/sources/tech/20220214 A guide to Kubernetes architecture.md b/sources/tech/20220214 A guide to Kubernetes architecture.md deleted file mode 100644 index f334912823..0000000000 --- a/sources/tech/20220214 A guide to Kubernetes architecture.md +++ /dev/null @@ -1,183 +0,0 @@ -[#]: subject: "A guide to Kubernetes architecture" -[#]: via: "https://opensource.com/article/22/2/kubernetes-architecture" -[#]: author: "Nived Velayudhan https://opensource.com/users/nivedv" -[#]: collector: "lujun9972" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A guide to Kubernetes architecture -====== -Learn how the different components of Kubernetes architecture fit -together so you can be better equipped to diagnose problems, maintain a -healthy cluster, and optimize your own workflow. -![Parts, modules, containers for software][1] - -You use Kubernetes to orchestrate containers. It's an easy description to say, but understanding what that actually means and how you accomplish it is another matter entirely. If you're running or managing a Kubernetes cluster, then you know that Kubernetes consists of one computer that gets designated as the _control plane_, and lots of other computers that get designated as _worker nodes_. Each of these has a complex but robust stack making orchestration possible, and getting familiar with each component helps understand how it all works. - -![Kubernetes architecture diagram][2] - -(Nived Velayudhan, [CC BY-SA 4.0][3]) - -### Control plane components - -You install Kubernetes on a machine called the control plane. It's the one running the Kubernetes daemon, and it's the one you communicate with when starting containers and pods. The following sections describe the control plane components. - -#### Etcd - -Etcd is a fast, distributed, and consistent key-value store used as a backing store for persistently storing Kubernetes object data such as pods, replication controllers, secrets, and services. Etcd is the only place where Kubernetes stores cluster state and metadata. The only component that talks to etcd directly is the Kubernetes API server. All other components read and write data to etcd indirectly through the API server. - -Etcd also implements a watch feature, which provides an event-based interface for asynchronously monitoring changes to keys. Once you change a key, its watchers get notified. The API server component heavily relies on this to get notified and move the current state of etcd towards the desired state. - -_Why should the number of etcd instances be an odd number?_ - -You would typically have three, five, or seven etcd instances running in a high-availability (HA) environment, but why? Because etcd is a distributed data store. It is possible to scale it horizontally but also you need to ensure that the data in each instance is consistent, and for this, your system needs to reach a consensus on what the state is. Etcd uses the [RAFT consensus algorithm][4] for this. - -The algorithm requires a majority (or quorum) for the cluster to progress to the next state. If you have only two ectd instances and either of them fails, the etcd cluster can't transition to a new state because no majority exists. If you have three ectd instances, one instance can fail but still have a majority of instances available to reach a quorum. - -#### API server - -The API server is the only component in Kubernetes that directly interacts with etcd. All other components in Kubernetes must go through the API server to work with the cluster state, including the clients (kubectl). The API server has the following functions: - - * Provides a consistent way of storing objects in etcd. - * Performs validation of those objects so clients can't store improperly configured objects (which could happen if they write directly to the etcd datastore). - * Provides a RESTful API to create, update, modify, or delete a resource. - * Provides [optimistic concurrency locking][5], so other clients never override changes to an object in the event of concurrent updates. - * Performs authentication and authorization of a request that the client sends. It uses the plugins to extract the client's username, user ID, groups the user belongs to, and determine whether the authenticated user can perform the requested action on the requested resource. - * Responsible for [admission control][6] if the request is trying to create, modify, or delete a resource. For example, AlwaysPullImages, DefaultStorageClass, and ResourceQuota. - * Implements a watch mechanism (similar to etcd) for clients to watch for changes. This allows components such as the Scheduler and Controller Manager to interact with the API Server in a loosely coupled manner. - - - -#### Controller Manager - -In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state. The controller tracks at least one Kubernetes resource type, and these objects have a spec field that represents the desired state. - -Controller examples: - - * Replication Manager (a controller for ReplicationController resources) - * ReplicaSet, DaemonSet, and Job controllers - * Deployment controller - * StatefulSet controller - * Node controller - * Service controller - * Endpoints controller - * Namespace controller - * PersistentVolume controller - - - -Controllers use the watch mechanism to get notified of changes. They watch the API server for changes to resources and perform operations for each change, whether it's a creation of a new object or an update or deletion of an existing object. Most of the time, these operations include creating other resources or updating the watched resources themselves. Still, because using watches doesn't guarantee the controller won't miss an event, they also perform a re-list operation periodically to ensure they haven't missed anything. - -The Controller Manager also performs lifecycle functions such as namespace creation and lifecycle, event garbage collection, terminated-pod garbage collection, [cascading-deletion garbage collection][7], and node garbage collection. See [Cloud Controller Manager][8] for more information. - -#### Scheduler - -The Scheduler is a control plane process that assigns pods to nodes. It watches for newly created pods that have no nodes assigned. For every pod that the Scheduler discovers, the Scheduler becomes responsible for finding the best node for that pod to run on. - -Nodes that meet the scheduling requirements for a pod get called feasible nodes. If none of the nodes are suitable, the pod remains unscheduled until the Scheduler can place it. Once it finds a feasible node, it runs a set of functions to score the nodes, and the node with the highest score gets selected. It then notifies the API server about the selected node. They call this process binding. - -The selection of nodes is a two-step process: - - 1. Filtering the list of all nodes to obtain a list of acceptable nodes to which you can schedule the pod (for example, the PodFitsResources filter checks whether a candidate node has enough available resources to meet a pod's specific resource requests). - 2. Scoring the list of nodes obtained from the first step and ranking them to choose the best node. If multiple nodes have the highest score, a round-robin process ensures the pods get deployed across all of them evenly. - - - -Factors to consider for scheduling decisions include: - - * Does the pod request hardware/software resources? Is the node reporting a memory or a disk pressure condition? - * Does the node have a label that matches the node selector in the pod specification? - * If the pod requests binding to a specific host port, is that port available? - * Does the pod tolerate the taints of the node? - * Does the pod specify node affinity or anti-affinity rules? - - - -The Scheduler doesn't instruct the selected node to run the pod. All the Scheduler does is update the pod definition through the API server. The API server then notifies the kubelet that the pod got scheduled through the watch mechanism. Then the kubelet service on the target node sees that the pod got scheduled to its node, it creates and runs the pod's containers. - -**[ Read next: [How Kubernetes creates and runs containers: An illustrated guide][9] ]** - -### Worker node components - -Worker nodes run the kubelet agent, which permits them to get recruited by the control plane to process jobs. Similar to the control plane, the worker node uses several different components to make this possible. The following sections describe the worker node components. - -#### Kubelet - -Kubelet is an agent that runs on each node in the cluster and is responsible for everything running on a worker node. It ensures that the containers run in the pod. - -The main functions of kubelet service are: - - * Register the node it's running on by creating a node resource in the API server. - * Continuously monitor the API server for pods that got scheduled to the node. - * Start the pod's containers by using the configured container runtime. - * Continuously monitor running containers and report their status, events, and resource consumption to the API server. - * Run the container liveness probes, restart containers when the probes fail and terminate containers when their pod gets deleted from the API server (notifying the server about the pod termination). - - - -#### Service proxy - -The service proxy (kube-proxy) runs on each node and ensures that one pod can talk to another pod, one node can talk to another node, and one container can talk to another container. It is responsible for watching the API server for changes on services and pod definitions to maintain that the entire network configuration is up to date. When a service gets backed by more than one pod, the proxy performs load balancing across those pods. - -The kube-proxy got its name because it began as an actual proxy server that used to accept connections and proxy them to the pods. The current implementation uses iptables rules to redirect packets to a randomly selected backend pod without passing them through an actual proxy server. - -A high-level view of how it works: - - * When you create a service, a virtual IP address gets assigned immediately. - * The API server notifies the kube-proxy agents running on worker nodes that a new service exists. - * Each kube-proxy makes the service addressable by setting up iptables rules, ensuring each service IP/port pair gets intercepted and the destination address gets modified to one of the pods that back the service. - * Watches the API server for changes to services or its endpoint objects. - - - -#### Container runtime - -There are two categories of container runtimes: - - * **Lower-level container runtimes:** These focus on running containers and setting up the namespace and cgroups for containers. - * **Higher-level container runtimes (container engine):** These focus on formats, unpacking, management, sharing of images, and providing APIs for developers. - - - -Container runtime takes care of: - - * Pulls the required container image from an image registry if it's not available locally. - * Extracts the image onto a copy-on-write filesystem and all the container layers overlay to create a merged filesystem. - * Prepares a container mount point. - * Sets the metadata from the container image like overriding CMD, ENTRYPOINT from user inputs, and sets up SECCOMP rules, ensuring the container runs as expected. - * Alters the kernel to assign isolation like process, networking, and filesystem to this container. - * Alerts the kernel to assign some resource limits like CPU or memory limits. - * Pass system call (syscall) to the kernel to start the container. - * Ensures that the SElinux/AppArmor setup is proper. - - - -### Working together - -System-level components work together to ensure that each part of a Kubernetes cluster can realize its purpose and perform its functions. It can sometimes be overwhelming (when you're deep into editing a [YAML file)][10] to understand how your requests get communicated within your cluster. Now that you have a map of how the pieces fit together, you can better understand what's happening inside Kubernetes, which helps you diagnose problems, maintain a healthy cluster, and optimize your own workflow. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/2/kubernetes-architecture - -作者:[Nived Velayudhan][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/nivedv -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/containers_modules_networking_hardware_parts.png?itok=rPpVj92- (Parts, modules, containers for software) -[2]: https://opensource.com/sites/default/files/uploads/kubernetes-architecture-diagram.png (Kubernetes architecture diagram) -[3]: https://creativecommons.org/licenses/by-sa/4.0/ -[4]: https://www.geeksforgeeks.org/raft-consensus-algorithm/ -[5]: https://stackoverflow.com/questions/52910322/kubernetes-resource-versioning#:~:text=Optimistic%20concurrency%20control%20(sometimes%20referred,updated%2C%20the%20version%20number%20increases. -[6]: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ -[7]: https://kubernetes.io/docs/concepts/architecture/garbage-collection/ -[8]: https://kubernetes.io/docs/concepts/architecture/cloud-controller/ -[9]: https://www.redhat.com/architect/how-kubernetes-creates-runs-containers -[10]: https://www.redhat.com/sysadmin/yaml-beginners diff --git a/translated/tech/20220214 A guide to Kubernetes architecture.md b/translated/tech/20220214 A guide to Kubernetes architecture.md new file mode 100644 index 0000000000..91b01c419e --- /dev/null +++ b/translated/tech/20220214 A guide to Kubernetes architecture.md @@ -0,0 +1,188 @@ +[#]: subject: "A guide to Kubernetes architecture" +[#]: via: "https://opensource.com/article/22/2/kubernetes-architecture" +[#]: author: "Nived Velayudhan https://opensource.com/users/nivedv" +[#]: collector: "lujun9972" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kubernetes 架构指南 +====== +学习 Kubernetes 架构的不同组件是如何组合在一起的,这样你就可以更好地诊断问题、维护健康的集群和优化你的工作流。 +![部件、模块、软件容器][1] + +使用 Kubernetes 来编排容器,这是一个简单的描述,但理解它的实际含义和你如何实现它完全是另外一回事。如果你正在运行或管理 Kubernetes 集群,那么你就会知道 Kubernetes 由一台称为 _控制平面_ 的计算机和许多其他 _工作节点_ 计算机组成。每一个都有一个复杂但健壮的堆栈,这使编排成为可能,熟悉每个组件有助于理解它是如何工作的。 + +![Kubernetes 架构图][2] + +(Nived Velayudhan, [CC BY-SA 4.0][3]) + +### 控制平面组件 + +Kubernetes 安装在一个称为控制平面的机器上,它会运行 Kubernetes 守护进程,并在启动容器和吊舱时与之通信。下面介绍控制平面的各个组件。 + +#### Etcd + +Etcd 是一种快速、分布式且一致的键值存储器,用作持久存储 Kubernetes 对象数据,如吊舱、Replication Controller、密钥和服务的后台存储。Etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一直接与 etcd 对话的组件是 Kubernetes API 服务器。所有的其他组件都通过 API 服务器间接的从 etcd 读写数据。 + +Etcd 还实现了一个监控功能,它提供了一个基于事件的接口,用于异步监控密钥的更改。一旦你更改了一个密钥,它的监控者就会收到通知。API 服务器组件严重依赖于此来获得通知,并将 etcd 移动到所需状态。 + +_为什么 etcd 实例的数量应该是奇数?_ + +你通常会在高可用(HA)环境中运行三个、五个或七个 etcd 实例,但这是为什么呢?因为 etcd 是分布式数据存储,可以水平扩展它,但你需要确保每个实例中的数据是一致的。为此,系统需要当前状态是什么达成共识,Etcd 为此使用 [RAFT 共识算法][4]。 + +RAFT 算法需要多数(或仲裁)集群才能进入下一个状态。如果你只有两个 etcd 实例并且他们其中一个失败的话,那么 etcd 集群无法转换到新的状态,因为不存在多数这个概念。如果你有三个 etcd 实例,一个实例可能会失败,但仍有 2 个实例可用于达到仲裁。 + +#### API 服务器 + +API 服务器是 Kubernetes 中唯一直接与 etcd 交互的组件。Kubernetes 中的其他所有组件都必须通过 API 服务器来处理集群状态,包括客户端(kubectl)。API 服务器具有以下功能: + + * 提供在 etcd 中存储对象的一致方式。 + * 对对象执行验证,方便客户端无法存储配置不正确的对象(如果它们直接写入 etcd 数据存储,可能会发生这种情况)。 + * 提供 RESTful API 来创建、更新、修改或删除资源。 + * 提供[乐观并发锁][5],在发生更新时,其他客户端永远不会有机会重写对象。 + * 对客户端发送的请求进行身份验证和授权。它使用插件提取客户端的用户名、ID、所属组,并确定通过身份验证的用户是否可以对请求的资源执行请求的操作。 + * 如果请求试图创建、修改或删除资源,则负责[权限控制][6]。例如,AlwaysPullImages、DefaultStorageClass 和 ResourceQuota。 + * 实现了一种监控机制(类似于 etcd),用户客户端监控更改。这允许调度器和控制器管理器等组件以松耦合的方式与 API 服务器交互。 + +#### 控制器管理器 + +在 Kubernetes 中,控制器是监控集群状态的控制循环,然后根据需要进行或请求更改。每个控制器都尝试将当前集群状态移动到所需状态。控制器至少跟踪一种 Kubernetes 资源类型,这些对象都有一个字段来表示所需的状态。 + +控制器示例: + + * Replication Manager(ReplicationController 资源的控制器) + * 复本控制器、DaemonSet 和 Job 控制器 + * 部署控制器 + * StatefulSet 控制器 + * 节点控制器 + * 服务控制器 + * 端点控制器 + * 命名空间控制器 + * 持久卷控制器 + + +控制器使用监控机制来获得更改通知。它们监视 API 服务器对资源的更改,对每次更改执行操作,无论是新建对象还是更新或删除现有对象。大多数时候,这些操作包括创建其他资源或更新监控的资源本身。不过,由于使用监控并不能保证控制器不会错过任何事件,它们还会定期执行一系列操作,确保没有错过任何事件。 + +控制器管理器还执行生命周期功能。例如命名空间创建和生命周期、事件垃圾收集、终止吊舱垃圾收集、[级联删除垃圾收集][7]和节点垃圾收集。有关更多信息,参考[云控制器管理器][8]。 + +#### 调度器 + +调度器是一个将吊舱分配给节点的控制平面进程。它会监视新创建没有分配节点的吊舱。调度器会给每个发现的吊舱分配运行它的最佳节点。 + +满足吊舱调度要求的节点称为可行节点。如果没有合适的节点,那么吊舱会一直处于未调度状态,直到调度器可以放置它。一旦找到可行节点,它就会运行一组函数来对节点进行评分,并选择得分最高的节点,然后它会告诉 API 服务器所选节点的信息。这个过程称为绑定。 + +节点的选择分为两步: + + 1. 过滤所有节点的列表,获得可以调度吊舱的可接受节点列表(例如,PodFitsResources 过滤器检查候选节点是否有足够的可用资源来满足吊舱的特定资源请求)。 + + 2. 对第一步得到的节点列表进行评分和排序,选择最佳节点。如果得分最高的有多个节点,循环过程可确保吊舱会均匀地部署在所有节点上。 + +调度决策要考虑的因素包括: + + * 吊舱是否请求硬件/软件资源?节点是否报告内存或磁盘压力情况? + + * 节点是否有与吊舱规范中的节点选择器匹配的标签? + + * 如果吊舱请求绑定到特定地主机端口,该端口是否可用? + + * 吊舱是否容忍节点的污点? + + * 吊舱是否指定节点亲和性或反亲和性规则? + + +调度器不会指示所选节点运行吊舱。调度器所做的就是通过 API 服务器更新吊舱定义。然后 API 服务器通过监控机制通知 kubelet 吊舱已被调度,然后目标节点上的 kubelet 服务看到吊舱被调度到它的节点,它创建并运行吊舱的容器。 + +**[ 下一篇: [Kubernetes 如何创建和运行容器: 图解指南][9] ]** + +### 工作节点组件 + +工作节点运行 kubelet 代理,这允许控制平面招募它们来处理作业。与控制平面类似,工作节点使用几个不同的组件来实现这一点。 以下部分描述了工作节点组件。 + +#### Kubelet + +Kubelet 是一个运行在集群中每个节点上的代理,负责在工作节点上运行的所有事情。它确保容器在吊舱中运行。 + +kubelet服务的主要功能有: + + * 通过在 API 服务器中创建节点资源来注册它正在运行的节点。 + + * 持续监控 API 服务器上调度到节点的吊舱。 + + * 使用配置的容器运行时启动吊舱的容器。 + + * 持续监控正在运行的容器,并将其状态、事件和资源消耗报告给 API 服务器。 + + * 运行容器存活探测,在探测失败时重启容器,当 API 服务器中删除吊舱时终止(通知服务器吊舱终止的消息)。 + +#### 服务代理 + +服务代理(kube-proxy)在每个节点上运行,确保一个吊舱可以与另一个吊舱对话,一个节点可以与另一个节点对话,一个容器可以与另一个容器对话。它负责监视 API 服务器对服务和吊舱定义的更改,以保持整个网络配置是最新的。当一项服务得到多个吊舱的支持时,代理会在这些吊舱之间执行负载平衡。 + +kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务器,用于接受连接并将它们代理到吊舱。当前的实现是使用 iptables 规则将数据包重定向到随机选择的后端吊舱,而无需通过实际的代理服务器。 + +它工作原理的高级视图: + + * 当你创建一个服务时,会立即分配一个虚拟 IP 地址。 + + * API 服务器会通知在工作节点上运行的 kube-proxy 代理有一个新服务。 + + * 每个 kube-proxy 通过设置 iptables 规则使服务可寻址,确保截获每个服务 IP/端口对,并将目的地址修改为支持服务的一个吊舱。 + + * 监控 API 服务器对服务或其端点对象的更改。 + +#### 容器运行时 + +容器运行时有两类: + + * **较低级别的容器运行时:** 它们主要关注运行中的容器并为容器设置命名空间和 cgroup。 + + * **更高级别的容器运行时(容器引擎):**它们专注于格式、解包、管理、共享镜像以及为开发人员提供 API。 + +容器运行时负责: + + * 如果容器镜像本地没有,则从镜像仓库中提取。 + + * 将镜像解压到写时复制文件系统,所有容器层叠加创建一个合并的文件系统。 + + * 准备一个容器挂载点。 + + * 设置容器镜像的元数据,如覆盖命令、用户输入的入口命令,并设置 SECCOMP 规则,确保容器按预期运行。 + + * 提醒内核将进程、网络和文件系统等隔离分配给容器。 + + * 提醒内核分配一些资源限制,如 CPU 或内存限制。 + + * 将系统调用(syscall)传递给内核启动容器。 + + * 确保 SElinux/AppArmor 设置正确。 + + +### 协同 + +系统级组件协同工作,确保 Kubernetes 集群的每个部分都能实现其目和执行其功能。当你深入编辑 [YAML 文件][10]时,有时很难理解请求是如何在集群中通信的。现在你已经了解了各个部分是如何组合在一起的,你可以更好地理解 Kubernetes 内部发生了什么,这有助于诊断问题、维护健康的集群并优化你的工作流。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/2/kubernetes-architecture + +作者:[Nived Velayudhan][a] +选题:[lujun9972][b] +译者:[MjSeven](https://github.com/MjSeven) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/nivedv +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/containers_modules_networking_hardware_parts.png?itok=rPpVj92- (Parts, modules, containers for software) +[2]: https://opensource.com/sites/default/files/uploads/kubernetes-architecture-diagram.png (Kubernetes architecture diagram) +[3]: https://creativecommons.org/licenses/by-sa/4.0/ +[4]: https://www.geeksforgeeks.org/raft-consensus-algorithm/ +[5]: https://stackoverflow.com/questions/52910322/kubernetes-resource-versioning#:~:text=Optimistic%20concurrency%20control%20(sometimes%20referred,updated%2C%20the%20version%20number%20increases. +[6]: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ +[7]: https://kubernetes.io/docs/concepts/architecture/garbage-collection/ +[8]: https://kubernetes.io/docs/concepts/architecture/cloud-controller/ +[9]: https://www.redhat.com/architect/how-kubernetes-creates-runs-containers +[10]: https://www.redhat.com/sysadmin/yaml-beginners From ba2d6bcd0069f8347440c3ef5ae8a8258e0335ba Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 24 Jun 2022 08:33:11 +0800 Subject: [PATCH 0094/3123] translated --- ...aximize Window Buttons in elementary OS.md | 88 ------------------- ...aximize Window Buttons in elementary OS.md | 88 +++++++++++++++++++ 2 files changed, 88 insertions(+), 88 deletions(-) delete mode 100644 sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md create mode 100644 translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md diff --git a/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md b/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md deleted file mode 100644 index fcba6dd5dc..0000000000 --- a/sources/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: subject: "How to Enable Minimize, Maximize Window Buttons in elementary OS" -[#]: via: "https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Enable Minimize, Maximize Window Buttons in elementary OS -====== -This is how you can enable the Minimize, Maximize window buttons in elementary OS. - -Many people (mostly new users to elementary OS) asks these questions in various forums: - -1. How do I enable minimize buttons in elementary OS? -2. How to I enable restore, minimize, maximize? -3. Is it possible to bring back the minimize and maximize buttons? - -And they are completely valid questions, and It’s okay to ask questions. Right? This guide to help them to get those buttons in elementary OS. - -The Pantheon desktop which is used by elementary OS does not come with default standard window buttons. The reason primarily being a different concept of handling user behavior and activities via Dock and Application menu. Arguably, this design or implementation of this behavior mimics macOS. - -That said, many users prefers the window buttons because it is a “muscle-memory'” thing and some migrated from other desktop environments, even windows. - -Although elementary doesn’t provide you this as a default settings, you can still enable it. Here’s how. - -### Enable minimize maximize Buttons – elementary OS - -Open a terminal and install the software properties common which is required for adding a PPA. By default, this package is not installed in elementary OS (don’t ask me why, seriously?). - -``` -sudo apt install software-properties-common -``` - -#### elementary OS 6 Odin - -The Tweak tool is renamed with a new name and being developed separately. It is called [Pantheon Tweaks][1]. And using the following commands you can install it. - -``` -sudo add-apt-repository -y ppa:philip.scott/pantheon-tweaks -sudo apt install -y pantheon-tweaks -``` - -#### elementary OS 5 Juno and below - -If you are using elementary OS 5 June and below, you can install the earlier [elementary-tweaks][2] using the same PPA. Follow the below commands from terminal. - -``` -sudo add-apt-repository -y ppa:philip.scott/elementary-tweaks -sudo apt install -y elementary-tweaks -``` - -#### Change the settings - -* After installation, click on the Application at the top bar and open System Settings.In the System settings window, click on Tweaks under Personal section. -* In the Tweaks window, go to Appearance section. -* Under Window Controls, select Layout: Windows. - -![enable minimize maximize buttons elementary OS][3] - -* And you should have the minimized, maximize and close button on the right side of the top window bar. - -There are other combinations as well, such as Ubuntu, macOS, etc. You can choose whatever you feel like: - -![Other Options of Window buttons in elementary][4] - -This step completes the guide. There are other options in gsettings which you may try to use, but the window manager gala recently removed those options. Hence, they may not work at the moment. - -I hope this guide helps you to enable minimize maximize buttons elementary OS. Let me know in the comment box below if you need any help. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/ - -作者:[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://github.com/pantheon-tweaks/pantheon-tweaks -[2]: https://github.com/elementary-tweaks/elementary-tweaks -[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/enable-minimize-maximize-buttons-elementary-OS.png -[4]: https://www.debugpoint.com/wp-content/uploads/2021/08/Other-Options-of-Window-buttons-in-elementary.jpg diff --git a/translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md b/translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md new file mode 100644 index 0000000000..5364ec6a9c --- /dev/null +++ b/translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md @@ -0,0 +1,88 @@ +[#]: subject: "How to Enable Minimize, Maximize Window Buttons in elementary OS" +[#]: via: "https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 elementary OS 中启用最小化、最大化窗口按钮 +====== +这就是如何在 elementary OS 中启用最小化、最大化窗口按钮的方法。 + +许多人(大多数是 elementary OS 的新用户)在各种论坛上问这些问题: + +1. 我怎样才能在 elementary OS 中启用最小化按钮? +2. 我如何启用还原、最小化、最大化? +3. 有可能恢复最小化和最大化按钮吗? + +这些都是完全有效的问题,而且问问题也是可以的。对吗?这个指南可以帮助他们在 elementary OS 中获得这些按钮。 + +Elementary OS 所使用的 Pantheon 桌面并没有默认的标准窗口按钮。其原因主要是通过 Dock 和应用菜单处理用户行为和活动的不同概念。可以说,这种设计或实现的行为模仿了macOS。 + +也就是说,许多用户更喜欢窗口按钮,因为这是一个“肌肉记忆”的东西,有些人是从其他桌面环境迁移过来的,甚至是 Windows。 + +尽管 Elementary 没有为你提供这个默认设置,你仍然可以启用它。下面是方法。 + +### 启用最小化最大化按钮 - elementary OS + +打开终端,安装添加 PPA 所需的 software-properties-common。默认情况下,这个包在 elementary OS 中没有安装(不要问我为什么,真的么?) + +``` +sudo apt install software-properties-common +``` + +#### elementary OS 6 Odin + +Tweak 工具被重新命名,并正在单独开发。它被称为 [Pantheon Tweaks][1]。使用以下命令,你可以安装它。 + +``` +sudo add-apt-repository -y ppa:philip.scott/pantheon-tweaks +sudo apt install -y pantheon-tweaks +``` + +#### elementary OS 5 Juno 及更低版本 + +如果你使用的是 elementary OS 5 June 及更低版本,你可以使用相同的 PPA 安装早期的 [elementary-tweaks][2]。在终端按照以下命令进行操作。 + +``` +sudo add-apt-repository -y ppa:philip.scott/elementary-tweaks +sudo apt install -y elementary-tweaks +``` + +#### 更改设置 + +* 安装后,点击顶部栏的应用,打开系统设置。在系统设置窗口中,点击“个人”下的 Tweaks。 +* 在 Tweaks 窗口中,进入“外观”。 +* 在窗口控制下,选择布局:Windows。 + +![enable minimize maximize buttons elementary OS][3] + +* 然后在顶部窗口栏的右侧应该有最小化、最大化和关闭按钮了。 + +也有其他组合,如Ubuntu、macOS等。你可以选择任何你觉得合适的: + +![Other Options of Window buttons in elementary][4] + +这一步就完成了指南。gsettings 中还有其他选项,你可以尝试使用,但窗口管理器 gala 最近删除了这些选项。因此,它们目前可能无法工作。 + +我希望这个指南能帮助你启用 elementary OS 的最小化最大化按钮。如果你需要任何帮助,请在下面的评论栏告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://github.com/pantheon-tweaks/pantheon-tweaks +[2]: https://github.com/elementary-tweaks/elementary-tweaks +[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/enable-minimize-maximize-buttons-elementary-OS.png +[4]: https://www.debugpoint.com/wp-content/uploads/2021/08/Other-Options-of-Window-buttons-in-elementary.jpg From a1540bc8f036a143c0dd38ebd9c0c2b0549da84e Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 24 Jun 2022 08:35:14 +0800 Subject: [PATCH 0095/3123] translating --- .../20220623 Minetest, an Open Source Minecraft Alternative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md b/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md index 41df19aaed..42f475f6bf 100644 --- a/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md +++ b/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/minetest/" [#]: author: "John Paul https://itsfoss.com/author/john/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7e5938051059b4c41beb932c25856d8537777bc3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 09:50:37 +0800 Subject: [PATCH 0096/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220623=20Applying=20smart=20thinking=20to=20open?= =?UTF-8?q?=20organization=20principles.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hinking to open organization principles.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/talk/20220623 Applying smart thinking to open organization principles.md diff --git a/sources/talk/20220623 Applying smart thinking to open organization principles.md b/sources/talk/20220623 Applying smart thinking to open organization principles.md new file mode 100644 index 0000000000..57d446aa19 --- /dev/null +++ b/sources/talk/20220623 Applying smart thinking to open organization principles.md @@ -0,0 +1,136 @@ +[#]: subject: "Applying smart thinking to open organization principles" +[#]: via: "https://opensource.com/open-organization/22/6/applying-smart-thinking-open-organization-principles" +[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Applying smart thinking to open organization principles +====== +Use your environment, repetition, and the Role of 3 to enhance your thinking habits. + +![a magnifying glass looking at a brain illustration][1] + +Image by: Opensource.com + +Habits have an unfair reputation of being bad things that need to be stopped. But consider this: Automation and habits have many things in common. First, they're both repetitive. They're done over and over, the exact same way. More importantly, they reduce costs (both cost per piece and cost of energy used). + +[Art Markman's book Smart Thinking][2] stresses the importance of creating habits to take your mind away from unimportant thoughts and redirect your attention toward more interesting and creative ideas. You can apply this concept to the use of [open organization principles][3]. + +This article is the second part of a two-part series on habits. The first part drew from a presentation I gave a few years ago. In this article, I apply new information from Markman. + +### What is smart thinking? + +Smart thinking is about the information you have, how you get valuable information, and how you use what you have successfully. It's also the ability to solve new problems using your current knowledge. Smart thinking is a skill you can use, practice, and improve on. Based on that definition, those benefits would be very helpful in promoting open organization principles. + +### Forming habits + +Markman says habits are formed, unthinkingly automatic, and rarely reviewed for their importance. A process of strategic thinking is required to do this review. If performed correctly, less effort is needed to change these habits. The human mental system is designed to avoid thinking when possible. It's preferable to just effortlessly act on routine tasks so you can direct your attention to more important issues. When you perform tasks repeatedly, you form habits so your mind doesn't have to think through them step by step. + +That's why you can't remember things you did a few seconds ago. Markman gives the example of not remembering whether you locked the door of your apartment or house. Because you did it automatically, if you were thinking of something completely different when you locked the door, you likely don't know whether you locked it. + +The goal of smart thinking is to develop as many good habits as possible, so your mind doesn't have to go through the effort of thinking every time you perform them. Developing checklists is a good way to avoid excessive thinking. This can be applied to open organization principles as well. To save on energy and effort, follow a list of items and act on them. This was my goal when I developed the [Communication technology maturity worksheet][4], which I wrote about in my article "[How to assess your organization's technical maturity][5]." If there's no routine and the activity is new, you must resort to a more stressful and tiring thought process. + +### Importance of environment and repetition + +Markman describes a formula for creating smart habits, considering two key facts: + +* There is interaction between environment and action. +* Only work on repeated actions to create good habits. + +#### Environment + +Markman defines an environment as both the outside world and one's internal mental world (such as goals, feelings, or perspectives). In the outside world, you can develop seemingly meaningless activities to create triggers and reminders. For example, you assign convenient locations for things, so you don't have to think about where they are. You can create triggers (such as lists or empty packages for resupply reminders) to highlight things you need to do, thereby avoiding a lot of thought. + +If you want to read a book but have been putting it off, consider taking it out and putting it in front of your computer or TV. That way, you'll see it, and probably have to move it out of your way, each time you're at your computer or TV, which can be a powerful way to get you reading. + +If you learn something in a particular place (with all its surroundings), you will recall that learning more easily if you are in a similar place or the same place. The environment triggers the information to come to the top of your mind. Because new (wanted) habits must be consciously performed, you must add elements in your environment to remind yourself to do them. Also, you must eliminate triggers that remind you of the old (unwanted) habit and replace them with another activity. + +For the internal mental environment, consider trying to memorize useful facts that are continually required, such as names, locations, the best road routes, and so on. If I meet someone I want to get to know better, I ask for their name and use it as much as possible, then write it down when I have a chance. Later, I add that name to my personal contact information. By repeatedly seeing the name, I eventually memorize it and use it without thinking. + +#### Repetition + +All habits are formed through repeated use, and the first time is the hardest. After many repetitions, minimal thought is required, until the habit becomes automatic. Structure your daily life by forming beneficial habits and practicing them. Regular role playing is equally important. By getting those memories top of mind, they become faster to retrieve. + +If you can make each habit as distinct as possible, it will be easier to remember and retrieve when needed. You know you've created a good habit when you no longer have to think about it. + +### When good habits go bad + +A habit can go from good to bad with a situational change. Getting rid of a bad habit and creating a productive new one takes a lot of thought. When a habit change is required, regularly getting a good night's sleep is essential. Your brain helps process the new experiences and behaviors and makes the activity more effective in the future. + +There are two important characteristics of changing habits: + +1. Your current habit pushes you into action. You must overcome the pressure to act. +2. When there's pressure to act, replace the habit with a more helpful action. New memories of the desired action must be developed and stored. + +You must develop triggers to engage the new behavior. This trigger requires your attention, as you are forcing yourself to stop the strong current habit and develop a new and, initially, weak habit. If you are distracted, the old habit remains strong. Your effort could also be disrupted by stress, fatigue, or the powerful influence of your environment. + +Willpower alone cannot change habits, and it's extremely exhausting to try. You might have some short-term successes, but you will wear out eventually. You need environmental support. Cravings happen when you have an active goal that has been blocked. They are your mind's way of saying you must strengthen your desired goal further. You must not only stop the old habit but study what in your environment is activating it. + +To apply these concepts to open organization principles, consider how you can create an environment that makes it easy to activate a principle while discouraging the current unproductive behavior. You must create an environment that reduces the chance of the bad habit being recalled and create triggers to activate the principles. That's the goal of the open organization leadership assessments. They become triggers. + +### The Role of 3 + +One of Markman's key concepts is the Role of 3, which guides both effective learning and effective presentation of information in a way that will be remembered. Markman is talking about getting someone else to change his behavior. This reminds me of my sales seminar in which I wanted to improve (change) the sales associates' selling activities. There is a difference between education, which is just providing knowledge, and training. Training is developing a skill one can use and improve on. Therefore, I had to cut three-quarters of the content and repeat it four times in different ways in my seminars, including role playing. I think what Markman is saying is that stressing just three actions is ideal initially. In my sales training case, my greatest success was role playing product presentations. Not only did the sales people learn the features of the product, but they could talk about them confidently to customers. Afterward, that led to other skills that could be developed. + +This Role of 3 applies to you too when wanting to act on something. Imagine a critical business meeting with vital information presented. Suppose you were distracted by jokes or anxiety-provoking rumors (about layoffs, demotions, or inadequate performance). The meeting could be a waste of your time unless you manage your attention on specific issues. + +Here is what Markman recommends before, during, and after an important event, to learn three key points: + +1. Prepare: Consider what you want to get out of the event (be it a meeting, presentation, or one-on-one discussion) and what you want to achieve. Consider at most three things. Information connected to your goal is easier to detect and remember. Your mental preparation directs your mind to the information you seek. Psychologists call this advance organizer activity. Consider what will be discussed and review any available materials beforehand. +2. Pay attention: This is hard work, particularly when there are distractions. Avoid multitasking on unrelated work (including emails and instant messaging). Working memory is an important concept: Your attention impacts what you will remember later. +3. Review: After any critical information-gathering event (a class, meeting, reading a book or article), write down three key points. If you can't write it down, review it in your mind, or record it on your phone or digital recorder. Try to attach what you learned to what you know. Where do they match or conflict? + +Suppose you're presenting open organization principles to a group. To make sure they remember those principles and use them, follow these procedures: + +1. Start presentations with an agenda and outline for all to review. +2. During the presentation, stay focused primarily on your three critical points. Present all principles, but continually review and highlight three of them. +3. Help people connect the content to what they are doing now and how the principles will improve their activities. +4. Share additional ways the principles can be applied with example use cases and their benefits. +5. End all presentations with a three-point summary. An action plan can be helpful as well. + +Say you're presenting the five open organization principles of transparency, collaboration, inclusivity, adaptability, and community. First, you present all of them in basic terms, but the Role of 3 tells you the audience will probably only pick up on three of them, so you focus on transparency, collaboration, and inclusivity. + +Here's an example outline, following the Role of 3: + +1. Present three key ideas. + 1. Transparency + 2. Collaboration + 3. Inclusivity +2. Organize the presentation by describing each key idea in one sentence. + 1. Transparency is getting as much useful information to other people as possible. + 2. Collaboration is discussing issues with as many other people as appropriate and avoiding making final decisions on your own. + 3. Inclusivity is getting as many different kinds of people involved in a project as appropriate. +3. Develop key idea relationships. + 1. How is transparency related to what people already know? The more transparent you are, the easier it is to collaborate. + 2. How is collaboration related to what people already know, including transparency? If people are doing well with transparency, mention many times that by collaborating more, their transparency will improve. + 3. How is inclusivity related to what people already know, including transparency and inclusivity? The more inclusive we are, the more diverse the ideas generated, leading to more transparency and collaboration. +4. Provide three questions to help people remember and explain the ideas. + 1. When was the last time you paused before deciding something and decided instead to collaborate with all people concerned? + 2. Who do you think would be an easy person to collaborate with? + 3. Each week, how many people do you collaborate with? Should that number be improved upon? + +### Better for everyone + +Now you know what smart thinking is all about. You've learned the Role of 3, and you understand the importance of environment and repetition. These concepts can help you be more productive and happier in whatever you get involved in, including bringing the open organization principles to your own communities. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/22/6/applying-smart-thinking-open-organization-principles + +作者:[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/LAW_EvidencedBasedIP_520x292_CS.png +[2]: https://www.amazon.com/Smart-Thinking-Essential-Problems-Innovate/dp/0399537759 +[3]: https://theopenorganization.org/definition/open-organization-definition/ +[4]: https://opensource.com/sites/default/files/images/open-org/communication_tech_worksheet.pdf +[5]: https://opensource.com/open-organization/20/3/communication-technology-worksheet From dec94e389afa6092f6bb78d3334a167a8ad90d0a Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 09:56:30 +0800 Subject: [PATCH 0097/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220623=205=20Useful=20Linux=20Command=20Line=20Too?= =?UTF-8?q?ls=20that=20Everyone=20Should=20Use.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...and Line Tools that Everyone Should Use.md | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md diff --git a/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md b/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md new file mode 100644 index 0000000000..93b41aa58e --- /dev/null +++ b/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md @@ -0,0 +1,170 @@ +[#]: subject: "5 Useful Linux Command Line Tools that Everyone Should Use" +[#]: via: "https://www.debugpoint.com/2022/06/useful-linux-command/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Useful Linux Command Line Tools that Everyone Should Use +====== +In this article, I will explain five useful Linux command(s) that will change your life forever. + +### 5 Useful Linux Command(s) + +#### 1. rmlint + +Have you ever wondered how you can easily find duplicate, empty folders and empty files? Well, for that, there is a nifty utility called **rmlint**. + +The [rmlint][1] scans your file system and tells you how much space is taken by duplicate files, folders, broken symlinks, empty files and more. + +Moreover, it gives you an autogenerated shell script to remove all those files with just a single command. In addition, it also outputs a nice-looking report for your to analyze. + +I think it’s a must-have terminal utility for your Ubuntu, Fedora and other Linux systems. Here are two images of rmlint in action. + +![rmlint output – Figure 1][2] + +![rmlint output – Figure 2][3] + +Let’s take a look at how you can install rmlint. Installation is easy as it’s available in the major distro’s repo. Here are the commands + +For Ubuntu, Linux Mint and similar distros: + +``` +sudo apt install rmlint +``` + +For Fedora, RHEL and similar distros: + +``` +sudo dnf install rmlint +``` + +After installation, run `rmlint` from the terminal. And it will give you a summary of the status of your system. + +``` +rmlint +``` + +Not only that, but you can also scan by file size, modification dates and so on—all the examples you can find in the [beginner’s guide][4]. + +#### 2. ntfy + +The second useful command in this list is ntfy. It is a nifty utility that helps you send notifications to your desktop. The ntfy works via system DBUS and libnotify in all the popular Linux desktops (KDE Plasma, GNOME) and provides a system-like notification. + +Now, you may ask – why do you need to send a custom notification? + +Well, think about a use case where you are writing some script to achieve some purpose (e.g. taking backups), and you need the script to send a notification after it finishes. In this example, you can run ntfy via shell script to notify that the backup is complete. + +The syntax of ntfy is simple. + +``` +ntfy send "Your task is complete" +``` + +![ntfy output][5] + +Installing ntfy requires Python3. In Ubuntu Linux, you can install it using the below set of commands. + +``` +sudo apt install python3-pippip install ntfy +``` + +By default, it installs the binary at ~/.local/bin, where you can get the executable to run. + +You can further customize it with its wide range of options available in the [documentation][6]. + +#### 3. btop + +There are some excellent terminal-based system monitors available. And I think btop is the best. Firstly, it’s available pre-compiled executable, so you do not need to install it. All you need to do is download and run. + +Secondly, one single interface gives you the entire system snapshot, containing the following features. + +* Battery level and available time +* Disks usage by partition and IO +* Process list with executables, path, threads, memory and lazy CPU +* Deep dive into a single process to investigate +* Network interface utilization details + +In addition, you can also configure it with various themes from its settings. I think it’s a perfect utility for terminal lovers to monitor your system. + +![btop][7] + +To get this application, visit the [GitHub page here][8] and download the zip file for Linux distros. You need to run the executable after extracting the zip file. + +#### 4. ncdu + +The fourth command in this list is super helpful ncdu (NCurses Disk Usage). The ncdu is a disk usage analyzer with an NCurses interface which scans your system and gives you an excellent representation of the disk space status in the terminal. + +Then, you can use this report and manually remove the files which are not needed. + +Furthermore, ncdu is a perfect tool to analyze your remote servers where you do not have access to a graphical user interface. It’s simple, fast and can run in any POSIX-like environment. + +In addition, you can also browse the directories via keyboard in the terminal, and you can sort by size, date, etc. + +That’s not all. Ncdu is available for almost all Linux distributions. Here are the commands to install in Ubuntu and Fedora-related distributions. + +``` +sudo apt install ncdu +``` + +``` +sudo dnf install ncdu +``` + +![ncdu][9] + +For more details, visit the [homepage][10]. + +#### 5. rclone + +The rclone is the best command-line program to sync and manage files from your local system to the cloud storage such as Google driver, AWS etc. It’s a feature-rich program which currently supports 40+ cloud storage products. + +Moreover, if you configure rclone effectively, you may not need rsync or login to the cloud provider’s web interface to manage your files. All of the operations can be easily done via the terminal. + +Not only that, but rclone is also capable of handling the integrity of data such as: + +* Verify checksum +* Preserve timestamps +* Options to transfer over limited bandwidth + +In addition, to make it safer, it provides a “–dry-run” switch to verify which files or folders get replaced during the sync operation to the cloud. + +You can install rclone using the commands below in your favourite distros. + +After you install, head over to [this page][11]. For each cloud storage provider, there is a one-time configuration needed. Choose your cloud provider and select the config link. Then follow the easy instructions to set up. + +For more details and documentation, visit the [official website][12]. + +### Closing Notes + +We discussed some useful command-line tools in this article. These tools are perfect for remote system administration from anywhere in the world. It ranges from disk usage analyzer, system monitors and backup of your data. + +Do you know any other useful Linux command line tools? Let me know in the comment box below, and we will feature it in the next article. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2022/06/useful-linux-command/ + +作者:[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://rmlint.readthedocs.io/en/latest/index.html +[2]: https://www.debugpoint.com/wp-content/uploads/2022/06/rmlint-output-Figure-1.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/rmlint-output-Figure-2.jpg +[4]: https://rmlint.readthedocs.io/en/latest/tutorial.html#beginner-examples +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/ntfy-output.jpg +[6]: https://ntfy.readthedocs.io/en/v2.0.1/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/btop.jpg +[8]: https://github.com/aristocratos/btop/releases/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/06/ncdu.jpg +[10]: https://dev.yorhel.nl/ncdu +[11]: https://rclone.org/#providers +[12]: https://rclone.org/ From 9f9eaf5bc599968622bc2512924ed78b64941b4b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 24 Jun 2022 10:19:54 +0800 Subject: [PATCH 0098/3123] RP @geekpi https://linux.cn/article-14750-1.html --- ...untu 22.04 into Rescue - Emergency Mode.md | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) rename {translated/tech => published}/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md (53%) diff --git a/translated/tech/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md b/published/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md similarity index 53% rename from translated/tech/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md rename to published/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md index 86f542b747..c618877834 100644 --- a/translated/tech/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md +++ b/published/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md @@ -3,65 +3,68 @@ [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14750-1.html" 如何启动 Ubuntu 22.04 进入救援/紧急模式 ====== -极客们好,将 Ubuntu 22.04(Jammy Jellyfish)启动到救援和紧急模式有助于重置忘记的用户密码,修复文件系统错误以及在启动过程中禁用或启用 systemd 服务。 + +![](https://img.linux.net.cn/data/attachment/album/202206/24/101647n4nru1ayaw4nrnue.jpg) + +极客们好,将 Ubuntu 22.04(Jammy Jellyfish)启动到救援Rescue紧急Emergency模式可以重置忘记的用户密码、修复文件系统错误,以及在启动过程中禁用或启用 systemd 服务。 在这篇文章中,我们将学习如何启动 Ubuntu 22.04 LTS 系统进入救援和应急模式。救援模式类似于单用户模式,所有的故障排除步骤都在这里进行。救援模式加载最小的环境并挂载根文件系统。 -而在紧急模式下,我们得到的是单用户 shell,而不启动任何系统服务。因此,当我们无法启动系统进入救援模式时,就需要紧急模式。 +而在紧急模式下,我们得到的是单用户 Shell,而不启动任何系统服务。因此,当我们无法启动系统进入救援模式时,就需要紧急模式。 ### 启动 Ubuntu 22.04 进入救援或单用户模式 -前往你想启动到救援或单用户模式的目标系统。在启动时按下 “SHIFT+ESC” 键,进入 grub bootloader 页面。 +前往你想启动到救援或单用户模式的目标系统。在启动时按下 `SHIFT + ESC` 键,进入 GRUB 引导加载器页面。 ![Default-Grub-Screen-Ubuntu-22-04][1] -选择第一个选项 Ubuntu,并按 “e” 键进入编辑模式。 +选择第一个选项 “Ubuntu”,并按 `e` 键进入编辑模式。 -在以 linux 开头的一行末尾,删除字符串 “$vt_handoff” 并添加字符串 “systemd.unit=rescue.target”。 +在以 `linux` 开头的一行末尾,删除字符串 `$vt_handoff` 并添加字符串 `systemd.unit=rescue.target`。 ![rescue-target-ubuntu-22-04][2] -做完修改后,按 Ctrl+x 或 F10 在救援模式下启动。 +做完修改后,按 `Ctrl + X` 或 `F10` 在救援模式下启动。 ![Troubleshooting-Commands-in-Rescue-Mode][3] -进入救援模式后,运行所有的故障排除命令,并运行 “systemctl reboot” 命令来重启系统。 +进入救援模式后,运行所有的故障排除命令,并运行 `systemctl reboot` 命令来重启系统。 ### 另一种启动系统进入救援模式的方法 -重新启动系统并按下 “ESC+Shift” 键,进入 grub 启动界面。 +重新启动系统并按下 `ESC + Shift` 键,进入 GRUB 启动界面。 -选择第二个选项 “Advanced Options for Ubuntu”->选择恢复模式选项并点击回车->选择 Root(进入 root shell 提示)。 +选择第二个选项 “Ubuntu 高级选项Advanced Options for Ubuntu”->选择“恢复模式recovery mode”选项并点击回车->选择 root(进入 root shell 提示符)root (Drop to root shell prompt)。 -下面是一个例子 +下面是一个例子: ![Boot-Ubuntu-22-04-Rescue-Mode][4] -当你有了 root shell,运行命令来恢复和修复系统问题,最后使用 “systemctl reboot” 来重启系统。 +当你有了 root Shell,运行命令来恢复和修复系统问题,最后使用 `systemctl reboot` 来重启系统。 ### 引导 Ubuntu 22.04 进入紧急模式 -要启动系统进入紧急模式,首先进入 grub 页面。 +要启动系统进入紧急模式,首先进入 GRUB 页面。 ![Default-Grub-Screen-Ubuntu-22-04][5] -选择第一个选项 “Ubuntu” 并按 “e” 键进行编辑。寻找以 linux 开头的一行,移到该行的末尾,删除字符串 $vt_handoff 并添加字符串 “systemd.unit=emergency.target”。 +选择第一个选项 “Ubuntu” 并按 `e` 键进行编辑。寻找以 `linux` 开头的一行,移到该行的末尾,删除字符串 `$vt_handoff` 并添加字符串 `systemd.unit=emergency.target`。 ![Emergency-Mode-Ubuntu-22-04][6] -按 Ctrl+x 或 F10 将系统启动到紧急模式。 +按 `Ctrl + X` 或 `F10` 将系统启动到紧急模式。 ![Command-in-Emergency-Mode-Ubuntu-22-04][7] -同样,在救援模式下,你可以在这个模式下执行所有的故障排除,完成后,就用 “systemctl reboot” 命令重启系统。 +同样,在紧急模式下,你可以在这个模式下执行所有的故障排除,完成后,就用 `systemctl reboot` 命令重启系统。 -这篇文章的内容就这些。我发现它内容丰富,不要犹豫,在你的技术朋友中分享这个。请在下面的评论区发表你的疑问和反馈。 +这篇文章的内容就这些。文章内容丰富,不要犹豫,请在你的技术朋友中分享它。请在下面的评论区发表你的疑问和反馈。 -------------------------------------------------------------------------------- @@ -70,7 +73,7 @@ via: https://www.linuxtechi.com/boot-ubuntu-22-04-rescue-emergency-mode/ 作者:[Pradeep 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/) 荣誉推出 From bde06cae3ccfa1d9e73ca8ffa05a81dcf9a56452 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 10:34:02 +0800 Subject: [PATCH 0099/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220620=20Manjaro=2021.3.0=20-Ruah-=20Release=20Add?= =?UTF-8?q?s=20Latest=20Calmares=203.2,=20GNOME=2042,=20and=20More=20Upgra?= =?UTF-8?q?des.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ase Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md b/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md index 416d775667..62d8788c86 100644 --- a/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md +++ b/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/manjaro-21-3-0-release/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f62484fdd79b69d2f01f048f17b1fcff65041b82 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 10:48:59 +0800 Subject: [PATCH 0100/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220620=20Manjaro=2021.3.0=20-Ruah-=20Release=20Add?= =?UTF-8?q?s=20Latest=20Calmares=203.2,=20GNOME=2042,=20and=20More=20Upgra?= =?UTF-8?q?des.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lmares 3.2, GNOME 42, and More Upgrades.md | 91 ------------------- ...lmares 3.2, GNOME 42, and More Upgrades.md | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 91 deletions(-) delete mode 100644 sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md create mode 100644 translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md diff --git a/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md b/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md deleted file mode 100644 index 62d8788c86..0000000000 --- a/sources/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "Manjaro 21.3.0 ‘Ruah’ Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades" -[#]: via: "https://news.itsfoss.com/manjaro-21-3-0-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Manjaro 21.3.0 ‘Ruah’ Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades -====== -Manjaro Linux 21.3.0 release packs in some of the latest and greatest updates, including an improved installer. - -![manjaro 21.3.0][1] - -Manjaro Linux is a rolling-release distribution. So, technically, you will be on the latest version if you regularly update your system. - -It should not be a big deal to upgrade to Manjaro 21.3.0, considering I am already running it without issues for a few days before the official announcement. - -**Also,**you might want to read my initial experience [switching to Manjaro from Ubuntu][2] (if you’re still on the fence). - -So, what does the Manjaro 21.3.0 upgrade introduce? - -### Manjaro 21.3.0: What’s New? - -![][3] - -The desktop environments upgraded to their latest stable versions while the core [Linux Kernel 5.15 LTS][4] remains. - -Also, this release includes the final Clamares v3.2 version. Let us take a look at the changes: - -#### Calamares v3.2.59 - -Calamares v3.2.59 installer is the final release of the 3.2 series with meaningful improvements. This time the partition module includes support for LUKS partitions and more refinements to avoid settings that can mess up the Manjaro installation. - -All the future releases for Calamares 3.2 will be bug fixes only. - -#### GNOME 42 + Libadwaita - -While the initial release included GNOME 42, now we have GNOME 42.2 available with the latest updates. - -Overall, you get all the goodies introduced with [GNOME 42][5], including the system-wide dark mode, a modern user interface based on GTK 4 for GNOME apps, upgraded applications, and several other significant changes. - -![][6] - -#### KDE Plasma 5.24 - -Unfortunately, the release couldn’t feature [KDE Plasma 5.25][7], considering it was released around the same week. - -[KDE Plasma 5.24][8] is a nice upgrade, with a refreshed theme and an overview effect. - -#### XFCE 4.16 - -With Xfce 4.16, the window manager received numerous updates and refinements to support fractional scaling and more capabilities. - -### Download Manjaro 21.3.0 - -As of now, I have no issues with Manjaro 21.3.0 GNOME edition. Everything looks good, and the upgrade went smoothly. - -However, you should always take backups if you do not want to re-install or lose your important files. - -You can download the latest version from [Manjaro’s download page][9]. The upgrade should be available through the pamac package manager. - -In either case, you can enter the following command in the terminal to upgrade: - -``` -sudo pacmane -Syu -``` - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/manjaro-21-3-0-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/06/manjaro-21-3-0-ruah-release.jpg -[2]: https://news.itsfoss.com/manjaro-linux-experience/ -[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-gnome-42-2-1024x576.jpg -[4]: https://news.itsfoss.com/linux-kernel-5-15-release/ -[5]: https://news.itsfoss.com/gnome-42-release/ -[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-21-3-neofetch.png -[7]: https://news.itsfoss.com/kde-plasma-5-25-release/ -[8]: https://news.itsfoss.com/kde-plasma-5-24-lts-release/ -[9]: https://manjaro.org/download/ diff --git a/translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md b/translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md new file mode 100644 index 0000000000..b59fc83e73 --- /dev/null +++ b/translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md @@ -0,0 +1,91 @@ +[#]: subject: "Manjaro 21.3.0 ‘Ruah’ Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades" +[#]: via: "https://news.itsfoss.com/manjaro-21-3-0-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manjaro 21.3.0 Ruah 发布:增加了最新的 Calmares 3.2、GNOME 42 和更多升级 +====== +Manjaro Linux 21.3.0 发行包包含一些最新和最强大的更新,包括改进的安装程序。 + +![Manjaro 21.3.0][1] + +Manjaro Linux 是一个滚动发布的发行版。因此,从技术上讲,如果你定期更新系统的话,你一直都会使用最新版本。 + +升级到 Manjaro 21.3.0 应该没什么大不了的,考虑到我已经在正式发布前几天就已经在稳定运行它了,毫无问题。 + +**另外**,你可能想阅读我 [从 Ubuntu 切换到 Manjaro][2] 的初步体验(如果你对于升级仍然犹豫不决的话)。 + +那么,Manjaro 21.3.0 带来了什么更新呢? + +### Manjaro 21.3.0 更新内容 + +![][3] + +桌面环境升级到了最新的稳定版本,而内核版本仍然是 [Linux 内核 5.15 LTS][4]。 + +此外,这个版本还包括最终的 Clamares v3.2 版本。让我们来看看它有哪些变化吧。 + +#### Calamares v3.2.59 + +Calamares v3.2.59 安装程序是 3.2 系列的最终版本,它有许多有意义的改进。这次,分区模块包含了对 LUKS 分区的支持和更多改进,以避免那些可能会弄乱 Manjaro 安装的设置。 + +Calamares 3.2 的所有未来版本都将仅是错误修复。 + +#### GNOME 42 + Libadwaita + +最初的版本包含了 GNOME 42,而最新的版本包含了 GNOME 42.2(附带最新的更新)。 + +总体而言,你将获得 [GNOME 42][5] 引入的所有优点,包括系统范围的深色模式、基于 GTK 4 的 GNOME 应用的现代用户界面、升级的应用程序以及其他一些重大变化。 + +![][6] + +#### KDE Plasma 5.24 + +不幸的是,考虑到它差不多是在同一周发布的,因此该版本无法包含 [KDE Plasma 5.25][7]。 + +[KDE Plasma 5.24][8] 是一个不错的升级,具有更新的主题和概览效果。 + +#### XFCE 4.16 + +在 Xfce 4.16 中,窗口管理器收到了许多更新和改进,以支持小数倍数的缩放和更多功能。 + +### 下载 Manjaro 21.3.0 + +到目前为止,我在 Manjaro 21.3.0 GNOME 版本中没有遇到任何问题。一切看起来都不错,升级也很顺利。 + +但是,如果你不想重新安装或丢失重要文件,则应始终进行备份。 + +你可以从 [Manjaro 的下载页面][9] 下载最新版本。你也应该可以通过 pamac 包管理器获得更新。 + +无论哪种情况,你都可以在终端中输入以下命令进行升级: + +``` +sudo pacmane -Syu +``` + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/manjaro-21-3-0-release/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-21-3-0-ruah-release.jpg +[2]: https://news.itsfoss.com/manjaro-linux-experience/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-gnome-42-2-1024x576.jpg +[4]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[5]: https://news.itsfoss.com/gnome-42-release/ +[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/manjaro-21-3-neofetch.png +[7]: https://news.itsfoss.com/kde-plasma-5-25-release/ +[8]: https://news.itsfoss.com/kde-plasma-5-24-lts-release/ +[9]: https://manjaro.org/download/ From 48b41f278b5cf60e6cd544a1a97302c5927ac7b2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 11:57:23 +0800 Subject: [PATCH 0101/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220620=20Microsoft=20To=20Charge=20For=20Available?= =?UTF-8?q?=20Open=20Source=20Software=20In=20Microsoft=20Store.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rge For Available Open Source Software In Microsoft Store.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md index 2e3f4c72ed..fe33c7d744 100644 --- a/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md +++ b/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/" [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 82d9225543bcd3e6cd6782d98c376286a5473049 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 12:22:01 +0800 Subject: [PATCH 0102/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220620=20Microsoft=20To=20Charge=20For=20Available?= =?UTF-8?q?=20Open=20Source=20Software=20In=20Microsoft=20Store.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Open Source Software In Microsoft Store.md | 39 ------------------- ...Open Source Software In Microsoft Store.md | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 39 deletions(-) delete mode 100644 sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md create mode 100644 translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md diff --git a/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md deleted file mode 100644 index fe33c7d744..0000000000 --- a/sources/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md +++ /dev/null @@ -1,39 +0,0 @@ -[#]: subject: "Microsoft To Charge For Available Open Source Software In Microsoft Store" -[#]: via: "https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft To Charge For Available Open Source Software In Microsoft Store -====== -![microsoft][1] - -On June 16, 2022, Microsoft updated the Microsoft Store policies. One of the changes prohibits publishers from charging fees for open source or freely available software. Another example is the store’s use of irrationally high pricing. If you’ve been to the Microsoft Store in the last few years, you’ve probably noticed that it’s becoming more and more home to open source and free products. While this would be beneficial if the original developer had uploaded the apps and games to the store, it is not the case because the uploads were made by third parties. - -Worse, many of these programs are only available as paid applications rather than free downloads. In other words, Microsoft customers must pay to purchase a Store version of an app that is free elsewhere. In the Store, free and paid versions coexist at times. Paying for a free app is bad enough, but this isn’t the only problem that users may encounter when they make the purchase. Updates may also be a concern, as copycat programs may not be updated as frequently or as quickly as the source applications. - -In the updated Microsoft Store Policies, Microsoft notes under 10.8.7: - -In cases where you determine the pricing for your product or in-app purchases, all pricing for your digital products or services, including sales or discounts, must: - -Comply with all applicable laws, regulations, and regulatory guidelines, including the Federal Trade Commission’s Guides Against Deceptive Pricing. You must not attempt to profit from open-source or other software that is otherwise freely available, nor should your product be priced irrationally high in comparison to the features and functionality it provides. - -The new policies are confirmed in the updated section. Open source and free products may no longer be sold on the Microsoft Store if they are generally available for free, and publishers may no longer charge irrationally high prices for their products. Developers of open source and free applications may charge for their products on the Microsoft Store; for example, the developer of Paint.net does so. Many applications will be removed from the Store if Microsoft enforces the policies. Developers could previously report applications to Microsoft, but the new policies give Microsoft direct control over application listings and submissions. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/ - -作者:[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/06/microsoft-e1655714723942.jpg diff --git a/translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md new file mode 100644 index 0000000000..6533e3bfd2 --- /dev/null +++ b/translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md @@ -0,0 +1,39 @@ +[#]: subject: "Microsoft To Charge For Available Open Source Software In Microsoft Store" +[#]: via: "https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +微软将对应用商店中的开源软件收费 +====== +![微软][1] + +2022 年 6 月 16 日,微软更新了应用商店的策略。其中一项禁止了发布者对开源或免费的软件收取费用,另一项则是商店使用的不合理高价。如果你在过去几年中访问过微软应用商店,你可能已经注意到,它正在成为越来越多的开源和免费产品的所在地。如果原始开发者将应用程序和游戏上传到商店,这将是有益的,但情况并非如此,因为它们是由第三方上传的。 + +更糟糕的是,其中许多程序仅作为付费应用提供,而不是免费下载。换句话说,微软的客户必须付费才能购买应用商店的版本,而它们在其他地方是免费的!在应用商店中,免费版和付费版有时并存。为免费应用付费已经够糟糕的了,但这并不是用户在购买时可能遇到的唯一问题。更新也可能是一个问题,因为山寨应用可能不会像源应用程序那样频繁或快速地更新。 + +在更新后的应用商店策略中,微软在版本号 “10.8.7” 下注明了: + +> 在您确定产品或应用内购买的定价的情况下,您的数字产品或服务的所有定价(包括销售或折扣)必须: +> +> 遵守所有适用的法律、法规和监管指南,包括联邦贸易委员会的《反欺骗定价指南》。您不得试图从开源软件或其他可免费获得的软件中获利,您的产品也不应提供一个(与它提供的特性和功能相比)过高的定价。 + +这个新策略在更新部分中得到了确认。如果开源和免费产品普遍免费提供,则它们可能不再在微软应用商店上出售,发布者也可能不再对其产品收取不合理的高价。开源和免费应用的开发者可以在微软应用商店上为其产品收费。例如,Paint.net 的开发者就是这样做的。如果微软强制执行这些策略,许多应用将从应用商店中删除。以前,开发者可以向微软报告应用程序,但在新策略下,微软可以直接控制应用列表和提交。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/microsoft-e1655714723942.jpg From 76ff629e6d1a8705e877b24eb1130d2c22a67858 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 12:23:57 +0800 Subject: [PATCH 0103/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220621=20Mysterious=20GeckoLinux=20Creator=20Revea?= =?UTF-8?q?ls=20a=20New=20Debian=20Remix=20Distro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ious GeckoLinux Creator Reveals a New Debian Remix Distro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md b/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md index 3843015257..b619525d5c 100644 --- a/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md +++ b/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/debian-remix-spiral-linux/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From aea211ddc1aff52e6f0198909946906383c7e960 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 24 Jun 2022 12:49:13 +0800 Subject: [PATCH 0104/3123] RP @lkxed https://linux.cn/article-14751-1.html --- ...n the Lisp programming language in 2021.md | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) rename {translated/tech => published}/20210503 Learn the Lisp programming language in 2021.md (84%) diff --git a/translated/tech/20210503 Learn the Lisp programming language in 2021.md b/published/20210503 Learn the Lisp programming language in 2021.md similarity index 84% rename from translated/tech/20210503 Learn the Lisp programming language in 2021.md rename to published/20210503 Learn the Lisp programming language in 2021.md index 8b6ec6197c..fc5b4e6588 100644 --- a/translated/tech/20210503 Learn the Lisp programming language in 2021.md +++ b/published/20210503 Learn the Lisp programming language in 2021.md @@ -3,23 +3,22 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14751-1.html" 一起来学习 Lisp 编程语言吧! ====== -许多大型代码库中都有 Lisp 代码的身影,因此,熟悉一下这门语言是一个明智之举。 -![科技和计算领域的女性][1] +![](https://img.linux.net.cn/data/attachment/album/202206/24/124147v0loy4e3y0hneih8.jpg) -图源:kris krüg +> 许多大型代码库中都有 Lisp 代码的身影,因此,熟悉一下这门语言是一个明智之举。 -Lisp 在 1958 年就被发明出来了,它是世界上第二老的计算机编程语言(LCTT 译注:最老的是 Fortran,诞生于 1957 年)。它有许多现代的衍生品,包括 Common Lisp、Emacs Lisp(Elisp)、Clojure、Racket、Scheme、Fennel 和 GNU Guile 等。 +早在 1958 年,Lisp 就被发明出来了,它是世界上第二古老的计算机编程语言(LCTT 译注:最古老的编程语言是 Fortran,诞生于 1957 年)。它有许多现代的衍生品,包括 Common Lisp、Emacs Lisp(Elisp)、Clojure、Racket、Scheme、Fennel 和 GNU Guile 等。 -那些喜欢思考编程语言设计的人,往往都喜欢 Lisp,因为它的语法和数据有者相同的结构:Lisp 代码实际上是一个列表的列表a list of lists,它的名字其实是 “列表处理”LISt Processing 的首字母缩写。那些喜欢思考编程语言美学的人,往往都讨厌 Lisp,因为它经常使用括号来定义范围;事实上,编程界也有一个广为流传的笑话:Lisp 代表的其实是 “大量烦人的多余括号”Lots of Irritating Superfluous Parentheses。 +那些喜欢思考编程语言的设计的人,往往都喜欢 Lisp,因为它的语法和数据有着相同的结构:Lisp 代码实际上是一个列表的列表a list of lists,它的名字其实是 “列表处理LISt Processing” 的简写。而那些喜欢思考编程语言的美学的人,往往都讨厌 Lisp,因为它经常使用括号来定义范围;事实上,编程界也有一个广为流传的笑话:Lisp 代表的其实是 “大量烦人的多余括号”Lots of Irritating Superfluous Parentheses。 -不管你是喜欢还是讨厌 Lisp 的设计哲学,你都不得不承认,它都是一门有趣的语言,过去如此,现在亦然(这得归功于现代方言 Clojure 和 Guile)。你可能会感到惊讶,但事实就是,Lisp 在任何行业的大型代码库中都占有一席之地。因此,现在开始学习 Lisp,至少熟悉一下它,不失为一个好主意。 +不管你是喜欢还是讨厌 Lisp 的设计哲学,你都不得不承认,它都是一门有趣的语言,过去如此,现在亦然(这得归功于现代方言 Clojure 和 Guile)。你可能会惊讶于在任何特定行业的大代码库中潜伏着多少 Lisp 代码,因此,现在开始学习 Lisp,至少熟悉一下它,不失为一个好主意。 ### 安装 Lisp @@ -55,7 +54,7 @@ $ brew install clisp ### 列表处理 -Lisp 源代码的基本单元是 “表达式”expression,它在形式上是一个列表。举个例子,下面就是一个列表,它由一个操作符(`+`)和两个整数(`1` 和 `2`)组成的: +Lisp 源代码的基本单元是 “表达式expression”,它在形式上是一个列表。举个例子,下面就是一个列表,它由一个操作符(`+`)和两个整数(`1` 和 `2`)组成: ``` (+ 1 2) @@ -85,7 +84,7 @@ $ clisp ### 函数 -在了解了 Lisp 表达式的基本结构后,你可以使用函数来做更多有用的事。譬如,`print` 函数可以接受任意数量的参数,然后把它们都显示在你的终端上,`pprint` 函数还可以实现格式化打印。还有更多不同的打印函数,不过,`pprint` 在 REPL 中的效果还挺好的: +在了解了 Lisp 表达式的基本结构后,你可以使用函数来做更多有用的事。譬如,`print` 函数可以接受任意数量的参数,然后把它们都显示在你的终端上,`pprint` 函数还可以实现格式化打印。还有更多不同的打印函数,不过,`pprint` 在 REPL 中的效果就挺好的: ``` [1]> (pprint "hello world") @@ -121,7 +120,7 @@ MYPRINTER [3]> ``` -你可以往表达式里嵌套表达式(就像使用某种管道一样)。举个例子,你可以先使用 `string-upcase` 函数,把某个字符串的所有字符转换成大写,然后再使用 `pprint` 函数,将它的内容格式化打印到终端上: +你可以在表达式里嵌套表达式(就像使用某种管道一样)。举个例子,你可以先使用 `string-upcase` 函数,把某个字符串的所有字符转换成大写,然后再使用 `pprint` 函数,将它的内容格式化打印到终端上: ``` [3]> (pprint (string-upcase foo)) @@ -142,7 +141,6 @@ Lisp 是动态类型语言,这意味着,你在给变量赋值时不需要声 如果你想让整数被当作字符串来处理,你可以给它加上引号: - ``` [4]> (setf foo "2") "2" @@ -215,7 +213,7 @@ $ ### 编写脚本 -Lisp 可以被编译,也可以作为解释型的脚本语言来使用。在你刚开始学习的时候,后者很可能是最容易的选项,特别是当你已经熟悉 Python 或 [Shell 脚本][9] 时。 +Lisp 可以被编译,也可以作为解释型的脚本语言来使用。在你刚开始学习的时候,后者很可能是最容易的方式,特别是当你已经熟悉 Python 或 [Shell 脚本][9] 时。 下面是一个用 Common Lisp 编写的简单的“掷骰子”脚本: @@ -231,7 +229,7 @@ Lisp 可以被编译,也可以作为解释型的脚本语言来使用。在你 (roller userput) ``` -脚本的第一行注释告诉了你的 POSIX 终端,该使用什么可执行文件来运行这个脚本。 +脚本的第一行注释(LCTT 译注:称之为“释伴shebang”)告诉了你的 POSIX 终端,该使用什么可执行文件来运行这个脚本。 `roller` 函数使用 `defun` 函数创建,它在内部使用 `random` 函数来打印一个伪随机数,这个伪随机数严格小于 `num` 列表中下标为 0 的元素。在脚本中,这个 `num` 列表还没有被创建,不过没关系,因为只有当脚本被调用时,函数才会执行。 @@ -278,7 +276,7 @@ via: https://opensource.com/article/21/5/learn-lisp 作者:[Seth Kenlon][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/) 荣誉推出 From 8f6954fa3d600bd449d74772d273d9dfd7b1a00c Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 13:00:18 +0800 Subject: [PATCH 0105/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220621=20Mysterious=20GeckoLinux=20Creator=20Revea?= =?UTF-8?q?ls=20a=20New=20Debian=20Remix=20Distro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eator Reveals a New Debian Remix Distro.md | 75 ------------------- ...eator Reveals a New Debian Remix Distro.md | 75 +++++++++++++++++++ 2 files changed, 75 insertions(+), 75 deletions(-) delete mode 100644 sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md create mode 100644 translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md diff --git a/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md b/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md deleted file mode 100644 index b619525d5c..0000000000 --- a/sources/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro" -[#]: via: "https://news.itsfoss.com/debian-remix-spiral-linux/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro -====== -GeckoLinux creator unveils a new Linux distribution based on Debian, focusing on simplicity and usability. - -![spiral linux][1] - -The creator of GeckoLinux (providing an improved openSUSE experience) remains anonymous. - -And, I won’t comment if it is a good or bad thing, but now the developer is back with another similar project based on Debian. - -**SpiralLinux**, a Debian-based distribution that aims to make Debian usable for the end-users. - -### SpiralLinux: A Distro Built from Debian - -![spirallinux][2] - -It is no surprise that most of the user-friendly Linux distributions have Debian as its original base. Ubuntu has managed to do a lot of improvements on top of it to make it a good desktop experience, even for users without prior Linux experience. - -So, how is this different? - -Well, the creator says that this project aims to help you use Debian with all its core strengths without customizing a lot of things. - -SpiralLinux is a close-to-vanilla experience if you want to use Debian on your desktop. You can also upgrade to the latest stable Debian version (or unstable/testing) as you require without losing the user-friendly customizations. - -In other words, SpiralLinux makes Debian fit for desktop usage with minimal efforts to the end-user. - -And, to achieve this, SpiralLinux uses official Debian package repositories providing a live installation method to let you setup a customized Debian system. - -Additionally, you have the following features in SpiralLinux: - -* VirtualBox support out-of-the-box -* Preinstalled proprietary media codecs and non-free package repositories -* Preinstalled proprietary firmware -* Printer support -* Flatpak support through a GUI (software center) -* zRAM swap enabled by default -* Multiple desktop environments (Cinnamon, XFCE, Gnome, Plasma, MATE, Budgie, LXQt) - -Considering Debian always sticks to the open-source and free packages, the end-user has to figure out the codecs, drivers, and other packages to make a lot of things work for a proper desktop experience. - -And, it seems like SpiralLinux could live as a useful alternative to Debian just like GeckoLinux is to openSUSE. - -### Download SpiralLinux - -If you always wanted to try Debian, but did not want to fiddle around a lot for initial configuration, you can try SpiralLinux. - -You can head to its official webpage hosted on GitHub to explore more about it. - -[SpiralLinux][3] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/debian-remix-spiral-linux/ - -作者:[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/06/spiral-linux-debian-remix-distro.jpg -[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/spirallinux.jpg -[3]: https://spirallinux.github.io/ diff --git a/translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md b/translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md new file mode 100644 index 0000000000..33802707a8 --- /dev/null +++ b/translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md @@ -0,0 +1,75 @@ +[#]: subject: "Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro" +[#]: via: "https://news.itsfoss.com/debian-remix-spiral-linux/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +神秘的 GeckoLinux 创建者推出了一个新的 Debian Remix 发行版 +====== +GeckoLinux 创建者推出了一个基于 Debian 的新 Linux 发行版,专注于简单性和可用性。 + +![Linux 螺旋][1] + +GeckoLinux 改进了的 openSUSE 体验,它的创建者一直保持匿名。 + +我不会评论这是好事还是坏事,但现在,开发者又带着另一个基于 Debian 的类似项目回来了。 + +**SpiralLinux**,一个基于 Debian 的发行版,旨在使 Debian 可供最终用户使用。 + +### SpiralLinux:基于 Debian 构建的发行版 + +![SpiralLinux][2] + +毫不奇怪,大多数用户友好的 Linux 发行版都将 Debian 作为其原始基础。Ubuntu 就是在此基础上进行了大量改进,从而提供了良好的桌面体验,即使对于没有 Linux 经验的用户也是如此。 + +那么,这个发行版有什么不同呢? + +嗯,它的创建者说,这个项目旨在帮助你使用 Debian 的所有核心优势,而无需定制很多东西。 + +如果你想在桌面上使用 Debian,SpiralLinux 是一种接近原版的体验。你还可以根据需要升级到最新的稳定 Debian 版本(或不稳定/测试版),而不会丢失用户友好的自定义设置。 + +换句话说,SpiralLinux 使 Debian 适合桌面使用,而最不需要最终用户操心。 + +为了实现这一点,SpiralLinux 使用了 Debian 官方软件包存储库,并提供了 live 安装方式,让你能够定制自己的 Debian 系统。 + +此外,SpiralLinux 还具有以下功能: + +* 开箱即用的 VirtualBox 支持 +* 预装了专有媒体编解码器和非自由软件包存储库 +* 预装了专有固件 +* 打印机支持 +* 通过 GUI(软件中心)支持 Flatpak +* 默认情况下启用 zRAM 交换 +* 多种桌面环境(Cinnamon、XFCE、Gnome、Plasma、MATE、Budgie、LXQt) + +考虑到 Debian 始终坚持使用开源和自由软件包,最终用户必须自己搞定编解码器、驱动程序和其他软件包,从而使许多功能正常工作,获得令他们满意的桌面体验。 + +SpiralLinux 似乎可以作为 Debian 的一个有用的替代品,就像 GeckoLinux 之于 openSUSE 一样。 + +### 下载 SpiralLinux + +如果你一直想尝试 Debian,但又不想在初始配置上费尽心思,你可以尝试 SpiralLinux。 + +你可以前往其托管在 GitHub 上的官网以了解更多信息,链接如下: + +[SpiralLinux][3] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/debian-remix-spiral-linux/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/spiral-linux-debian-remix-distro.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/spirallinux.jpg +[3]: https://spirallinux.github.io/ From 18029261d74ec2a2ed0d07222a1beed968872abb Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 13:04:34 +0800 Subject: [PATCH 0106/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220621=20The=20Final=20Version=20Of=207-Zip=2022.0?= =?UTF-8?q?0=20Is=20Now=20Available.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0220621 The Final Version Of 7-Zip 22.00 Is Now Available.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md index ecd3d62eb3..77005822ca 100644 --- a/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md +++ b/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/" [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e6ff0ccdfc66bbce98fc4a7ea851312cf5ea2449 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 13:27:07 +0800 Subject: [PATCH 0107/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220621=20The=20Final=20Version=20Of=207-Zip=2022.0?= =?UTF-8?q?0=20Is=20Now=20Available.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Version Of 7-Zip 22.00 Is Now Available.md | 55 ------------------- ...Version Of 7-Zip 22.00 Is Now Available.md | 44 +++++++++++++++ 2 files changed, 44 insertions(+), 55 deletions(-) delete mode 100644 sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md create mode 100644 translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md diff --git a/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md deleted file mode 100644 index 77005822ca..0000000000 --- a/sources/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md +++ /dev/null @@ -1,55 +0,0 @@ -[#]: subject: "The Final Version Of 7-Zip 22.00 Is Now Available" -[#]: via: "https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The Final Version Of 7-Zip 22.00 Is Now Available -====== -![7-zip-2200-500x312][1] - -7-Zip is a well-known open source file archiver for Windows, Mac, and Linux. 7-Zip 22.00 is now available; it is the first stable release of 2022. The most recent release was 7-Zip 21.07, which was released in December 2021. Users of 7-Zip can obtain the most recent version of the application from the official website. Downloads are available for Windows 64-bit, 32-bit, and ARM versions. The programme is still compatible with out-of-date versions of Windows, such as XP and Vista. All officially supported Windows versions, including server versions, are also supported. 7-Zip 22.00 for Linux is already available for download, but the Mac OS version is not. - -7-Zip 22.00 includes several new features that enhance the application’s functionality. The archiver now supports the extraction of Apple File System APFS images. Several years ago, Apple introduced the Apple File System in Mac OS 10.13 and iOS. The file system has been designed with flash and solid state drive storage in mind. - -7-Zip 22.00 includes several enhancements to its TAR archive support. Using the switches -ttar -mm=pax or -ttar -mm=posix, 7-Zip can now create TAR archives in POSIX tar format. Additionally, using the switches ttar -mm=pax -mtp=3 -mtc -mta, 7-Zip can store file timestamps with high precision in tar/pax archives. - -* snoi: save owner/group ids in the archive or copy owner/group ids from the archive to the extracted files. -* snon: keep owner/group names in the archive - -7-Zip 22.00 for Windows adds support for the -snz switch, which propagates the Zone. - -To extract files, use the identifier stream. Windows uses the stream for security purposes; it can be used to determine whether a file was created locally or downloaded from the Internet. - -7-Zip 22.00 includes several new features that enhance the application’s functionality. The archiver now supports the extraction of Apple File System APFS images. Several years ago, Apple introduced the Apple File System in Mac OS 10.13 and iOS. The file system has been designed with flash and solid state drive storage in mind. - -7-Zip 22.00 includes several enhancements to its TAR archive support. Using the switches -ttar -mm=pax or -ttar -mm=posix, 7-Zip can now create TAR archives in POSIX tar format. Additionally, using the switches ttar -mm=pax -mtp=3 -mtc -mta, 7-Zip can store file timestamps with high precision in tar/pax archives. - -Finally, Linux users can use the following two new switches with TAR archives: - -* snoi: save owner/group ids in the archive or copy owner/group ids from the archive to the extracted files. -* snon: keep owner/group names in the archive - -7-Zip 22.00 for Windows adds support for the -snz switch, which propagates the Zone. - -To extract files, use the identifier stream. Windows uses the stream for security purposes; it can be used to determine whether a file was created locally or downloaded from the Internet. - -In the “add to archive” configuration dialogue, 7-Zip 22.00 includes a new options window. It includes options for changing the timestamp precision, changing other time-related configuration options, and preventing the source files’ last access time from changing. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/ - -作者:[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/06/7-zip-2200-500x312-1.jpg diff --git a/translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md new file mode 100644 index 0000000000..c136b62cf9 --- /dev/null +++ b/translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md @@ -0,0 +1,44 @@ +[#]: subject: "The Final Version Of 7-Zip 22.00 Is Now Available" +[#]: via: "https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7-Zip 的最终版本 22.00 现已推出 +====== +![7-zip-2200-500x312][1] + +7-Zip 是用于 Windows、Mac 和 Linux 的知名开源文件归档器。它的最新版本 22.00 现已推出。它是 2022 年的第一个稳定版本。上一个版本是 21.07,于 2021 年 12 月发布。7-Zip 的用户可以从官方网站获取该应用的最新版本。下载适用于 Windows 64 位、32 位和 ARM 版本。该应用仍然与过时的 Windows 版本兼容,例如 XP 和 Vista。它还支持所有官方支持的 Windows 版本,包括服务器版本。适用于 Linux 的 7-Zip 22.00 已经可以下载,但 Mac OS 版本还不可用。 + +7-Zip 22.00 包含一些增强了应用功能的新特性。这个归档器现在支持提取苹果文件系统Apple File System(APFS)镜像。几年前,苹果公司在 Mac OS 10.13 和 iOS 中引入了苹果文件系统。该文件系统在设计时就考虑到了闪存(Flash)和固态硬盘(SSD)存锤。 + +7-Zip 22.00 包括对其 TAR 存档支持的多项增强。使用选项 `-ttar -mm=pax` 或 `-ttar -mm=posix`,7-Zip 现在可以创建符合 POSIX 标准的 tar 格式的 TAR 档案。此外,使用选项 `ttar -mm=pax -mtp=3 -mtc -mta`,7-Zip 可以在 tar/pax 存档中存储高精度的文件时间戳。 + +最后,Linux 用户可以在 TAR 归档文件中使用以下两个新选项: + +* `snoi`:将所有者/组 ID 保存在存档中,或将所有者/组 ID 从存档复制到提取的文件中。 +* `snon`:在存档中保留所有者/组的名称。 + +适用于 Windows 的 7-Zip 22.00 添加了对 `-snz` 选项的支持,该选项用于传播 Zone。 + +要提取文件,请使用标识符流。出于安全目的,Windows 使用了该流,它可用于确定文件是在本地创建的还是从互联网下载的。 + +在“添加到存档add to archive”配置对话框中,7-Zip 22.00 包含一个新的选项窗口。它包括用于更改时间戳精度、更改其他与时间相关的配置选项,以及防止更改源文件的最后访问时间的选项。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is-now-available/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/7-zip-2200-500x312-1.jpg From f7f0c0ca966d37174500aa2c94dae4d04244664a Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 13:30:45 +0800 Subject: [PATCH 0108/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220621=20This=20Open-Source=20Project=20Proves=20C?= =?UTF-8?q?hrome=20Extensions=20Can=20Track=20You.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pen-Source Project Proves Chrome Extensions Can Track You.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md b/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md index 806b8c5f43..4fd9aaad43 100644 --- a/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md +++ b/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/chrome-extension-tracking/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 33bdda2683124e0f6591ff4b969b6d0241943873 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 14:41:32 +0800 Subject: [PATCH 0109/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220621=20This=20Open-Source=20Project=20Proves=20C?= =?UTF-8?q?hrome=20Extensions=20Can=20Track=20You.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Proves Chrome Extensions Can Track You.md | 69 ------------------- ... Proves Chrome Extensions Can Track You.md | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 69 deletions(-) delete mode 100644 sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md create mode 100644 translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md diff --git a/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md b/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md deleted file mode 100644 index 4fd9aaad43..0000000000 --- a/sources/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "This Open-Source Project Proves Chrome Extensions Can Track You" -[#]: via: "https://news.itsfoss.com/chrome-extension-tracking/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -This Open-Source Project Proves Chrome Extensions Can Track You -====== -Is this a reason to ditch Chromium-based browsers and start using Firefox? Maybe, you decide. - -![chrome extension tracker][1] - -Even with all the privacy extensions and fancy protection features, there are still ways to identify you or track you. - -Note that it is not the case for all browsers, here, we focus on Chromium-based browsers and Google Chrome as the prime suspect. - -While detecting installed extensions in a Chromium browser was already possible, numerous extensions implemented certain protections to prevent it. - -However, a security researcher, also known as “**z0ccc**”, discovered a new method to detect installed Chrome browser extensions, which can be further used to track you through browser fingerprinting. - -**In case you did not know**: Browser fingerprinting refers to the tracking method where various information about your device/browser gets collected to create a unique fingerprint ID (hash) to identify you across the internet. Information like browser name, version, operating system, extensions installed, screen resolution, and similar technical data. - -It sounds like a harmless data collection technique, but you can be tracked online with this tracking method. - -### Detecting Google Chrome Extensions - -The researcher shared an open-source project “**Extension Fingerprints**” which you can use to test if Chrome extensions installed on your browser are being detected. - -The new technique involves a time-difference method where the tool compares the time to fetch resources for the extensions. A protected extension takes more time to fetch compared to other extensions not installed on your browser. So, that helps identify some extensions from the list of over 1000 extensions. - -The point is—even with all the advancements and techniques to prevent tracking, extensions from the Google Web Store can be detected. - -![][2] - -And, with the installed extensions detected, you can be tracked online using browser fingerprinting. - -Surprisingly, even if you have extensions like **uBlocker, AdBlocker,**or**Privacy Badger** (some popular privacy-focused extensions), they all get detected using this method. - -You can explore all the technical details on its [GitHub page][3]. And, if you want to test it yourself, head to its [Extension Fingerprints site][4] to check for yourself. - -### Firefox To The Rescue? - -It seems like it, considering [I keep coming back to Firefox][5] for various reasons. - -The discovered method should work with all the Chromium-based browsers. I tested it with Brave and Google Chrome. The researcher also mentions that the tool does not work with Microsoft Edge using extensions from Microsoft’s store. But, it is possible with the same method of tracking. - -Mozilla Firefox is safe from this because the extension IDs for every browser instance are unique, as the researcher suggested. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/chrome-extension-tracking/ - -作者:[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/06/opensource-project-tracker-chrome-extensions.jpg -[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/extension-fingerprints.jpg -[3]: https://github.com/z0ccc/extension-fingerprints -[4]: https://z0ccc.github.io/extension-fingerprints/ -[5]: https://news.itsfoss.com/why-mozilla-firefox/ diff --git a/translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md b/translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md new file mode 100644 index 0000000000..4baa1cdda1 --- /dev/null +++ b/translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md @@ -0,0 +1,69 @@ +[#]: subject: "This Open-Source Project Proves Chrome Extensions Can Track You" +[#]: via: "https://news.itsfoss.com/chrome-extension-tracking/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +这个开源项目证明了 Chrome 扩展可以跟踪你 +====== +这会成为放弃基于 Chromium 的浏览器并开始使用 Firefox 的一个理由吗?也许吧,决定权在你。 + +![Chrome 扩展追踪器][1] + +即使你有了所有的隐私扩展和高级的保护功能,别人仍然有方法可以识别你或跟踪你。 + +请注意,并非所有浏览器都是如此,本文中,我们只关注基于 Chromium 的浏览器,并将 Google Chrome 作为“主要嫌疑人”。 + +以前,尽管别人已经能够在你的检测 Chromium 浏览器上,检测到你的已安装的扩展程序,但许多扩展程序都实施了某些保护措施来防止这种检测。 + +然而,一位名为 “**z0ccc**” 的安全研究人员发现了一种检测已安装 Chrome 浏览器扩展程序的新方法,该方法可进一步用于**通过“浏览器指纹识别”来跟踪你**。 + +**如果你还不知道的话**:浏览器指纹识别Browser Fingerprinting是指收集有关你的设备/浏览器的各种信息,以创建唯一的指纹 ID(哈希),从而在互联网上识别你的一种跟踪方法。“各种信息”包括:浏览器名称、版本、操作系统、已安装的扩展程序、屏幕分辨率和类似的技术数据。 + +这听起来像是一种无害的数据收集技术,但可以使用这种跟踪方法在线跟踪你。 + +### 检测 Google Chrome 扩展 + +研究人员分享了一个开源项目 “**Extension Fingerprints**”,你可以使用它来测试,你安装的 Chrome 扩展,是否正在被人检测。 + +新技术涉及一种“时差”方法,该工具比较了扩展获取资源的时间。与浏览器上未安装的其他扩展相比,受保护的扩展需要更多时间来获取资源。因此,这有助于从 1000 多个扩展列表中识别出一些扩展。 + +关键是:即使有了这些新的进步和技术来防止跟踪,Chrome 网上应用店的扩展也可以被检测到。 + +![][2] + +并且,在检测到已安装的扩展程序后,别人可以就使用浏览器指纹识别,对你进行在线跟踪。 + +令人惊讶的是,即使你安装有 uBlocker、AdBlocker、或 Privacy Badger(一些流行的以隐私为重点的扩展程序)之类的扩展程序,使用了这种方法,它们也都可以被检测到。 + +你可以在它的 [GitHub 页面][3] 上查看所有技术细节。如果你想自己测试它,请前往它的 [扩展指纹识别网站][4] 自行检查。 + +### 大救星 Firefox? + +嗯,似乎是的,毕竟我出于各种原因,[不断切回到 Firefox][5]。 + +这个新发现的(跟踪)方法应该适用于所有基于 Chromium 的浏览器。我在 Brave 和 Google Chrome 上都测试了这个方法。研究人员还提到,该工具不适用于在 Microsoft Edge 中使用的,微软应用商店中的扩展。但是,相同的跟踪方法仍然有效。 + +正如研究人员指出,Mozilla Firefox 可以避免这种情况,因为每个浏览器实例的扩展 ID 都是唯一的。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/chrome-extension-tracking/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/opensource-project-tracker-chrome-extensions.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/extension-fingerprints.jpg +[3]: https://github.com/z0ccc/extension-fingerprints +[4]: https://z0ccc.github.io/extension-fingerprints/ +[5]: https://news.itsfoss.com/why-mozilla-firefox/ From 73d41adf9fb4843739111e209ec66ceee4a7d252 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 15:15:24 +0800 Subject: [PATCH 0110/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220623=20How=20to=20Boot=20into=20an=20Older=20Ker?= =?UTF-8?q?nel=20By=20Default=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...el By Default in Ubuntu and Other Linux.md | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md diff --git a/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md b/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..c12f4c898a --- /dev/null +++ b/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md @@ -0,0 +1,129 @@ +[#]: subject: "How to Boot into an Older Kernel By Default in Ubuntu and Other Linux" +[#]: via: "https://itsfoss.com/boot-older-kernel-default/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Boot into an Older Kernel By Default in Ubuntu and Other Linux +====== +Here’s a possible scenario. Your system received a kernel update but somehow things are not working as smoothly as previously. + +You realized that if you boot into the older kernel (yes, you can downgrade kernel), things are back to normal. + +That makes you happy with a little inconvenience. You have to manually select the older kernel at each boot. + +This problem was faced by an elderly It’s FOSS reader. The new kernel update in [Linux Mint][1] wasn’t working as expected. Booting into the older kernel ‘fixed’ the issues but choosing the older kernel at each boot was a problem. + +Removing the new kernel (while using the older kernel) is not a good idea because the new kernel will be installed and used with the next system updates. + +So, I suggested booting into the older Linux kernel by default. How to do that? That’s what I am going to show you in this tutorial. + +### Booting into the older Linux kernel + +If you are not already familiar with it, your Linux distribution keeps more than one Linux kernel installed on your system. Don’t believe me? [List the installed kernels in Ubuntu][2] with this command: + +``` +apt list --installed | grep linux-image +``` + +When you get a new kernel version with the system updates, your system automatically chooses to boot into the latest available kernel. + +From the [grub][3] screen, you can **go to the Advanced options** (or older Linux versions): + +![ubuntu grub][4] + +Here, you can see the available kernels to boot into. Choose the older one (without recovery option): + +![grub advanced options][5] + +You won’t notice any visual difference. Your files and applications remain the same. + +Now that you have booted into the older kernel, it’s time to make your system boot into it automatically. + +### Making older kernel the default + +If you are comfortable with Linux terminal and commands, you can modify the /etc/default/grub file and add the following lines to it: + +``` +GRUB_DEFAULT=saved +GRUB_SAVEDEFAULT=true +``` + +And then [update grub][6] with: + +``` +sudo update-grub +``` + +What you did here is to tell your system to save the currently used entry as the default entry for the future runs of GRUB. + +However, not everyone is okay with the command line and hence I’ll focus on a GUI tool called [Grub Customizer][7]. + +#### Installing Grub Customizer + +Use the official PPA to [install Grub Customizer in Ubuntu-based distributions][8]: + +``` +sudo add-apt-repository ppa:danielrichter2007/grub-customizer +sudo apt update +sudo apt install grub-customizer +``` + +For other distributions, please use your package manager to install this tool. + +#### Using Grub Customizer to change the default boot entry + +When you run Grub Customizer, it shows the available boot entries. + +![grub customizer ubuntu][9] + +You have two options here. + +**Option1:** Select the desired kernel entry and use the arrow (displayed on the top menu) to move it up the order. + +![move older kernel up the order ubntu grub][10] + +**Option2:** Make the ‘previously booted entry’ the ‘default entry’. + +![make currently booted entry as default ubuntu][11] + +I would suggest going with option 2 because it will work even when there are new kernel updates. + +This way you downgrade the kernel in Ubuntu or other distributions without even removing the older kernel version. + +Do note that most distributions like Ubuntu only keep two kernel versions at a time. So eventually, your preferred older kernel will be removed with the newer kernel versions. + +This neat trick helped me when I [installed the latest Linux kernel in Ubuntu][12] and it had issues with my audio system for some reason. + +Whatever may be the reason, you now know how to boot into an older kernel automatically. + +Questions? Suggestions? The comment section is all yours. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/boot-older-kernel-default/ + +作者:[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://linuxmint.com/ +[2]: https://learnubuntu.com/list-installed-kernels/ +[3]: https://itsfoss.com/what-is-grub/ +[4]: https://itsfoss.com/wp-content/uploads/2022/06/ubuntu-grub.jpg +[5]: https://itsfoss.com/wp-content/uploads/2022/06/Grub-Advanced-Options.jpg +[6]: https://itsfoss.com/update-grub/ +[7]: https://itsfoss.com/customize-grub-linux/ +[8]: https://itsfoss.com/install-grub-customizer-ubuntu/ +[9]: https://itsfoss.com/wp-content/uploads/2022/06/grub-customizer-ubuntu.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/move-older-kernel-up-the-order-ubntu-grub.png +[11]: https://itsfoss.com/wp-content/uploads/2022/06/make-currently-booted-entry-as-default-ubuntu.png +[12]: https://itsfoss.com/upgrade-linux-kernel-ubuntu/ From fa13b6c92410be5fa2898e1b64828f370817e4f0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 15:16:25 +0800 Subject: [PATCH 0111/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220624=20Create=20a=20more=20diverse=20and=20equit?= =?UTF-8?q?able=20open=20source=20project=20with=20open=20standards.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...open source project with open standards.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/talk/20220624 Create a more diverse and equitable open source project with open standards.md diff --git a/sources/talk/20220624 Create a more diverse and equitable open source project with open standards.md b/sources/talk/20220624 Create a more diverse and equitable open source project with open standards.md new file mode 100644 index 0000000000..4e1b99c3b0 --- /dev/null +++ b/sources/talk/20220624 Create a more diverse and equitable open source project with open standards.md @@ -0,0 +1,130 @@ +[#]: subject: "Create a more diverse and equitable open source project with open standards" +[#]: via: "https://opensource.com/article/22/6/open-source-standards-diversity" +[#]: author: "Paloma Oliveira https://opensource.com/users/discombobulateme" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create a more diverse and equitable open source project with open standards +====== +Using open standards improves your project's quality and shareability. Most importantly, they can guide technology development by gently enforcing space for diversity and equity. + +![multi-colored dandelions][1] + +Image by: [Monsterkoi][2]. Modified by Opensource.com. [CC BY-SA 4.0][3] + +This article is intended to serve as a reference so that you can understand everything you need to be proud of your repository and make your open source project more open. By using open standards, an open source project improves its quality and shareability, since such standards exist to foster better communication between creators and consumers of the project. Most importantly, open standards can guide technology development by gently enforcing space for diversity and equity. + +### What is open source? + +The term [open source][4] started in the late 80's as a way to guarantee access to technological development by legally guaranteeing the right to copy, modify, and redistribute software. This idea has expanded and today it is about fostering a culture of sharing that supports everything from political actions to a billion dollar technology industry. + +The projects and their communities, which give the projects their value, have become much more complex than just the code. Today, it is impossible to think of a project outside of what I prefer to define as its ecosystem. "Ecosystem" sounds to me like a proper definition, because it acknowledges the complexity of technical things, like code and configuration, and also of people. + +### Lack of diversity is a problem in open source + +Without open source, the technology industry would collapse, or it wouldn't even exist. That's the scope of importance that open source has today. What a powerful feeling it is to know that we are all "standing on the shoulders of giants"? We are all benefiting from the power of the commons, using collective labor and intelligence to make something better for everyone. + +What's rarely spoken of is that such important initiatives, in most cases, depend solely on the volunteer labor of its maintainers. This creates a huge imbalance, both from work and diversity aspects. + +Open source is intrinsically a power to foster diversity within the development industry by valuing the contributions of what is contributed over who is contributing it. The reality is, though, that free time is often a rare commodity for many people. Many people are too busy working to generate income, caring for families and loved ones, looking for work, fighting social injustice, and are unable to dedicate time to contribute to software. + +The very opportunity to contribute to the system depends on you being one of the lucky ones who can be part of this system. This is not a reality for many others because of their gender, skin color, or social status. Historically, women accumulate unpaid work that's invisible, but which requires a substantial proportion of their energy and time. Underprivileged people have little free time because they have to work more hours, often having more than one job. + +This is reflected in the numbers. [Only 4.5%][5] of [open source maintainers][6] are not white males, according to research into the field. So we know that this billion dollar industry, shaping technological development, is composed of a homogeneous environment. But we also know that diversity renders robust innovative results.The question is, how can this be changed? + +### Intentional communication with your open source community + +Communication is key. Build a structure with transparency of communication and governance for your project. Clear, concise and respectful communication makes your project accessible to users and contributors. It helps project maintainers devote their time focusing on what they need to do. It helps interested people feel welcome and start contributing faster and more consistently, and it attracts diversity to your community. + +Sounds great, but how can this be obtained? I grouped the rules of good practice into three categories procedural, daily, and long term. These practices are in part strategic, but if you and your community don't have the capacity to be strategic, it's also possible to substantially change your project by adding a few simple files to your repository. + +But which files are those, and what happens when you already have several projects under your management? A few of them are: + +* Code of conduct +* License +* Readme +* Changelog +* Contributing +* Ownership +* Test directory +* Issues +* Pull request templates +* Security +* Support + +To help you get started, there are many projects that offer templates. By simply cloning them, you create a repository with these documents. + +Another tool, designed to help open source software (OSS) maintainers and open source program offices (OSPO) is [check-my-repo][7]. Created by us at [Sauce Labs' OSPO Community][8], it's an automated tool built on [Repolinter][9] that verifies whether the main necessary parameters to comply with open source best practices (including the files mentioned above and a few other rules), are present in your repositories. The web app also explains why each file needs to exist. + +#### Procedural best practices + +As the name implies, this is about the process: + +* Maintain a single public issue tracker. +* Allow open access to the issues identified by the project. +* Have mechanisms for feedback and to discuss new features. +* Offer public meeting spaces scheduled in advance and have them recorded. + +Here are some files that relate to the procedural logic: + +* README: Make it easier for anyone who lands on your project to get started. +* Code of conduct: Establish expectations and facilitate a healthy and constructive community. +* Ownership: Make sure that someone is put in charge of the project to prevent it from being forgotten. + +#### Daily tasks + +This is about the day-to-day aspects, including: + +* Check the status of the project. +* Explain how to submit issues, propose enhancements, and add new features. +* Show how to contribute to the project. + +Files related to the daily aspects of project management are: + +* Contributing: A step by step guideline on how to contribute. +* Changelog: Notable changes need to be logged. +* Security: Show how to report a security vulnerability. +* Support: How the project is being maintained. + +#### Long term goals + +This has information that guarantees the history and continuation of the project, such as a mission statement, key concepts and goals, a list of features and requirements, and a project roadmap. + +Relevant files are: + +* License: It's essential for users to know their limits, and for you to protect yourself legally. +* Test directory: Use this to avoid regression, breaks, and many other issues. + +### Creating and maintaining your open source project + +Now imagine a project with all of these factors. Will it help you build and keep a community? Will noise in communication be mitigated? Will it save maintainers tons of time so they can onboard people and solve issues? Will people feel welcome? + +Creating and maintaining an open source project is very rewarding. Creating collaboratively is an incredible experience and has the intrinsic potential to take such creation into possibilities that one person alone, or a small group could never achieve. But working openly and collaboratively is also a challenge for the maintainers and a responsibility for the community to ensure that this space is equitable and diverse. + +There's a lot of work ahead. The result of surveys on the health of open source communities often reflect the worst of the technology industry. That's why ensuring that these standards are used is so important. To help mitigate this situation, I am betting on standards. They're a powerful tool to align our intentions and to guide us to an equitable, transparent, and shareable space. Will you join me? + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/open-source-standards-diversity + +作者:[Paloma Oliveira][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/discombobulateme +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/diversity-inclusion-transformation-change_20180927.png +[2]: https://pixabay.com/en/dandelion-colorful-people-of-color-2817950/ +[3]: https://creativecommons.org/publicdomain/zero/1.0/deed.en +[4]: https://opensource.com/article/18/2/coining-term-open-source-software +[5]: https://www.wired.com/2017/06/diversity-open-source-even-worse-tech-overall/ +[6]: https://www.linuxfoundation.org/blog/addressing-diversity-equity-and-inclusion-in-2021-and-beyond +[7]: https://opensource.saucelabs.com/check-my-repo +[8]: https://opensource.saucelabs.com +[9]: https://todogroup.github.io/repolinter From c62baeac888ae2bcb7970b7e419a2212c0274e45 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 15:17:45 +0800 Subject: [PATCH 0112/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220624=20How=20I=20sketchnote=20with=20open=20sour?= =?UTF-8?q?ce=20tools.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...How I sketchnote with open source tools.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 sources/tech/20220624 How I sketchnote with open source tools.md diff --git a/sources/tech/20220624 How I sketchnote with open source tools.md b/sources/tech/20220624 How I sketchnote with open source tools.md new file mode 100644 index 0000000000..c4fc2be372 --- /dev/null +++ b/sources/tech/20220624 How I sketchnote with open source tools.md @@ -0,0 +1,113 @@ +[#]: subject: "How I sketchnote with open source tools" +[#]: via: "https://opensource.com/article/22/6/open-source-sketchnotes" +[#]: author: "Amrita Sakthivel https://opensource.com/users/amrita42" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I sketchnote with open source tools +====== +Sketchnoting, or visual notetaking, is a method of taking notes using illustrations, symbols, graphic layouts, and text. Here's why I love sketchnotes and you should too. + +![Colorful pens][1] + +Image by: [Opensource.com][2] + +[Sketchnoting][3], also called visual notetaking, is a method of taking notes using illustrations, symbols, graphic layouts, and text. It's meant to be a creative and engaging way to record your thoughts. It can work well in your personal life as well as in your work life. You don't need to be an artist to create a sketchnote, but you do need to listen, and visually combine and summarize ideas through text and drawings. + +### Why sketchnotes? + +Here are some interesting facts about why visual aids are so helpful: + +* The picture superiority effect is when people remember and retain pictures and images more than just plain old words. +* Writing is complicated and takes a long time to get good at. +* Visual information can be processed 60,000 times faster than text. This is one reason that iconography is so prevalent and has been throughout history. +* Researchers state that people remember only 20% of what they read, whilst 37% are visual learners. + +### An example of how visual aids and regular text process in the mind + +A [SMART goal][4] is used to help guide goal setting. SMART is an acronym that stands for Specific, Measurable, Achievable, Realistic, and Timely. Therefore, a SMART goal incorporates all of these criteria to help focus your efforts and increase the chances of achieving your goal. + +![SMART goals on a sketchnote][5] + +Image by: + +(Amrita Sakthivel, CC BY-SA 40) + +Which form of information did you retain more easily? Was it the visual or the text version that held your attention more? What does this say about how you process information? + +### 4 open source sketchnote tools + +A sketchnote is just a drawing, so you don't need any special application to start making them yourself. However, if you're an avid digital creator, you might want to try these open source illustration applications: + +* [Mypaint][6]: Simple and elegant. It's you, your stylus, and a blank canvas. +* [Krita][7]: You, your stylus, a blank canvas, and an art supply store. +* [Inkscape][8]: Grab some clip art or create your own and let the layout begin. +* [Drawpile][9]: Make collaborative sketchnotes. + +### How I use sketchnotes + +I recently contributed to a presentation about customer support and Knowledge-centered support (KCS) analysis. I did two versions: + +![Image of knowledge centered support sketch][10] + +![Image of knowledge centered support 2][11] + +I created a sketchnote to demonstrate the differences between OpenShift and Kubernetes. + +![Image of differences between Openshift and Kubernetes][12] + +As a technical writer, my objective is to write documentation from a user perspective so that the user gets the optional usage of the product or feature. + +![Image of a sketchnote featuring technical writing][13] + +### How to best convey information through a visual medium + +1. Plan what you want to convey. +2. Decide the structure you want to use for for the sketchnote. +3. Start with the text first, then add icons and visuals. +4. Use color combinations to help show the content effectively. + +Sometimes, using plain text to convey easy concepts can be inelegant in comparison to a simple visual aid. Visual aids are an easier and faster way to display information to your audience. They can also be helpful when taking your own notes. Give it a try. + +### More resources + +* [Verbal to Visual: What is sketchnoting?][14] +* [Noun Project][15] +* [Creative Market: 50+ Awesome Resources to Create Visual Notes, Graphic Recordings & Sketchnotes][16] +* [Sketchnote Love: Mini Sketchnotes Tutorial][17] + +Image by: (Amrita Sakthivel, CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/open-source-sketchnotes + +作者:[Amrita Sakthivel][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/amrita42 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-06/colorful-pens.jpg +[2]: https://opensource.com/node/69046 +[3]: https://sketchnote-love.com/en/sketchnotes-tutorial/ +[4]: https://corporatefinanceinstitute.com/resources/knowledge/other/smart-goal/ +[5]: https://opensource.com/sites/default/files/2022-06/smart.png +[6]: https://opensource.com/article/21/12/mypaint +[7]: https://opensource.com/article/21/12/krita-digital-paint +[8]: https://opensource.com/article/21/12/linux-draw-inkscape +[9]: https://opensource.com/article/20/3/drawpile +[10]: https://opensource.com/sites/default/files/2022-06/SketchnotesKCS.png +[11]: https://opensource.com/sites/default/files/2022-06/sketchnote2version.png +[12]: https://opensource.com/sites/default/files/2022-06/SketchnoteKubernetesvsOpens.png +[13]: https://opensource.com/sites/default/files/2022-06/sketchnotestechwriter.png +[14]: https://www.verbaltovisual.com/what-is-sketchnoting/ +[15]: https://thenounproject.com/ +[16]: https://creativemarket.com/blog/50-awesome-resources-to-create-visual-notes-graphic-recordings-sketchnotes +[17]: https://sketchnote-love.com/en/sketchnotes-tutorial/ From 57267d6dd2841c0af389be2e077c93ac57aa5a23 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 15:18:29 +0800 Subject: [PATCH 0113/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220624=20GitHub=20Copilot=20is=20Now=20Available?= =?UTF-8?q?=20for=20All=20and=20Not=20Everyone=20Likes=20It.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lable for All and Not Everyone Likes It.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md diff --git a/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md b/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md new file mode 100644 index 0000000000..7a7311e8ef --- /dev/null +++ b/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md @@ -0,0 +1,90 @@ +[#]: subject: "GitHub Copilot is Now Available for All and Not Everyone Likes It" +[#]: via: "https://news.itsfoss.com/github-copilot/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GitHub Copilot is Now Available for All and Not Everyone Likes It +====== +GitHub Copilot is here to help programmers with A.I suggestions, but could it be making it worse? + +![github][1] + +Back in 2021, I spent hours pouring over the GitHub Copilot docs trying to figure out how I could maximize my chances of getting into the technical preview. Fortunately, this all paid off when I was accepted into the preview. + +Finally, it is available for all to use! + +For those of you unaware, [GitHub Copilot][2] is an AI assistant to help you write code faster and more efficiently. + +The best comparison I can come up with is that it’s like autocomplete feature on your phone. Unlike the autocomplete feature, GitHub Copilot writes the code equivalent to complete sentences. + +### Copilot is Now Available For The Masses + +As I alluded to in the introduction, Copilot has been in a technical preview phase for almost a year now. This means that a very limited number of developers were allowed to use it for free, in exchange for them allowing GitHub to monitor their usage to improve the program for its final release. + +It appears that GitHub is finally satisfied to release it to the public. Now, anyone with a GitHub account should be able to use it, albeit at a cost (which we will get to soon!). + +The [announcement][3] mentioned: + +> Until now, AI has stopped short of improving code, leaving the process of developing software almost completely manual. That’s changing now. Today, I am thrilled to announce that we are making [GitHub Copilot][4] generally available to individual developers. Your AI pair programmer is here. + +[Thomas Dohmke][5] + +Available as a free editor extension, Copilot has already helped millions of developers speed up their programming. However, it does come at a cost, both direct and indirect. + +### GitHub Copilot Pricing + +Copilot may be prohibitively expensive for some as with almost all exciting new technologies. It will cost you $10/month or $100/year. + +If you are an open-source project maintainer or a verified student, you can get free access to it. + +### Is GitHub Copilot Unethical? + +The controversy surrounding the GitHub Copilot product is huge and concerning. Technically, the A.I have been trained using the available code on the GitHub platform. + +So, basically, GitHub is offering a new product by using your code (take it with a pinch of salt, if you’d like). Not to forget, the Free Software Foundation (FSF) also [advised][6] against hosting code on GitHub keeping Copilot in mind. + +While we know that businesses love to exploit things, some believed that it should not directly hurt the projects/code hosted at GitHub. + +**But, is that the case?** + +Briefly, after the launch, many developers shared how they found copyrighted code being generated by GitHub Copilot: + +> Explored github copilot,a paid service, to see if it encodes code from repositories w/ restrictive licenses.I checked if it had code I had written at my previous employer that has a license allowing its use only for free games and requiring attaching the license.yeah it does [pic.twitter.com/JMbXNgOF3Z][7] + +[June 22, 2022][8] + +Of course, if we look at GitHub Copilot’s FAQ which mentions: + +> GitHub does not own the suggestions GitHub Copilot generates. The code you write with GitHub Copilot’s help belongs to you, and you are responsible for it. + +So, ultimately, you pay for a service to add inconvenience and more work to your project? + +Nothing about it sounds exciting in terms of making a developer’s task easy, in my opinion. + +*What are your thoughts on it? Share what you think in the comments section below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/github-copilot/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/github-copilot.jpg +[2]: https://copilot.github.com/ +[3]: https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers/ +[4]: http://copilot.github.com +[5]: https://github.blog/author/ashtom/ +[6]: https://www.fsf.org/blogs/licensing/fsf-funded-call-for-white-papers-on-philosophical-and-legal-questions-around-copilot +[7]: https://t.co/JMbXNgOF3Z +[8]: https://twitter.com/ChrisGr93091552/status/1539731632931803137?ref_src=twsrc%5Etfw From 76f660067abb33bb079616480c2be8128c73a629 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 24 Jun 2022 15:19:07 +0800 Subject: [PATCH 0114/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220624=20Linus=20Torvalds=20Expects=20to=20See=20R?= =?UTF-8?q?ust=20Support=20in=20the=20Kernel=20Soon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to See Rust Support in the Kernel Soon.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md diff --git a/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md new file mode 100644 index 0000000000..451a2f2726 --- /dev/null +++ b/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md @@ -0,0 +1,63 @@ +[#]: subject: "Linus Torvalds Expects to See Rust Support in the Kernel Soon" +[#]: via: "https://news.itsfoss.com/linux-kernel-rust/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linus Torvalds Expects to See Rust Support in the Kernel Soon +====== +Linux Kernel 5.20 might debut with the Rust infrastructure as hinted by Linus Torvalds. What do you think? + +![linus][1] + +There are various open-source projects rewritten in Rust. Hence, it is not surprising that is being considered as the second language for Linux Kernel for a while now. + +A few days ago at [The Linux Foundation’s Open-Source Summit][2], Linus Torvals mentioned that we should expect the trials for Rust in the next kernel release i.e Linux Kernel 5.20. + +In case you did not know, there have been Rust Linux kernel patches already with few sample drivers and the enablement code for the basic infrastructure, as originally reported by [Phoronix][3]. + +So, Linus Torvalds hinting at a possible merge for the Rust infrastructure should not be a surprise. But, it is certainly exciting! + +### Rust for Linux Kernel + +While the ultimate goal is to make the Linux Kernel better, it will be considered a trial run for now. + +Rust is increasingly becoming a popular programming language for all its benefits. Not to forget, [System76 is also working on a new desktop environment][4] written in Rust. + +However, not everyone involved in maintaining the Linux Kernel would be familiar with the programming language. + +So, would that be a problem? + +Linus Torvalds does not see it as a big issue considering there have been other languages in the kernel as well. He also mentioned that he hopes to see Rust work out as something new. + +Overall, he insists that he trusts the maintainers, unless they make a mistake, as reported by [The Register][5]. + +### Linux 5.20: When? + +The Linux Kernel 5.19 release is due around the end of July. So, the merge window for 5.20 should open following its stable release (given there’s no unexpected delays). + +Not just for Rust, but Linux Kernel 5.20 should be an important update for next-gen hardware support including RDNA3, and more features. + +*What do you think about Rust coming to Linux in the near future? Exicited for it?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-rust/ + +作者:[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/06/linus-expects-rust-support-in-linux-kernel-soon.jpg +[2]: https://events.linuxfoundation.org/open-source-summit-north-america/ +[3]: https://www.phoronix.com/scan.php?page=news_item&px=Rust-Linux-v7-Plus-New-Uutils +[4]: https://news.itsfoss.com/system76-rust-cosmic-desktop/ +[5]: https://www.theregister.com/2022/06/23/linus_torvalds_rust_linux_kernel/ From cbe7c8991c8db997f72f1fb54f7e7bdb6aff0b75 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 25 Jun 2022 09:38:50 +0800 Subject: [PATCH 0115/3123] RP @lkxed https://linux.cn/article-14754-1.html --- ...Calmares 3.2, GNOME 42, and More Upgrades.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) rename {translated/news => published}/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md (86%) diff --git a/translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md b/published/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md similarity index 86% rename from translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md rename to published/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md index b59fc83e73..d5f49184e2 100644 --- a/translated/news/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md +++ b/published/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md @@ -3,21 +3,22 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14754-1.html" Manjaro 21.3.0 Ruah 发布:增加了最新的 Calmares 3.2、GNOME 42 和更多升级 ====== -Manjaro Linux 21.3.0 发行包包含一些最新和最强大的更新,包括改进的安装程序。 -![Manjaro 21.3.0][1] +> Manjaro Linux 21.3.0 发行包包含一些最新和最强大的更新,包括改进的安装程序。 + +![](https://img.linux.net.cn/data/attachment/album/202206/25/093727pqm59kkragcaga4c.jpg) Manjaro Linux 是一个滚动发布的发行版。因此,从技术上讲,如果你定期更新系统的话,你一直都会使用最新版本。 升级到 Manjaro 21.3.0 应该没什么大不了的,考虑到我已经在正式发布前几天就已经在稳定运行它了,毫无问题。 -**另外**,你可能想阅读我 [从 Ubuntu 切换到 Manjaro][2] 的初步体验(如果你对于升级仍然犹豫不决的话)。 +**另外**,你可能想阅读一下我 [从 Ubuntu 切换到 Manjaro][2] 的初步体验(如果你对于升级仍然犹豫不决的话)。 那么,Manjaro 21.3.0 带来了什么更新呢? @@ -51,7 +52,7 @@ Calamares 3.2 的所有未来版本都将仅是错误修复。 #### XFCE 4.16 -在 Xfce 4.16 中,窗口管理器收到了许多更新和改进,以支持小数倍数的缩放和更多功能。 +在 Xfce 4.16 中,窗口管理器得到了许多更新和改进,以支持小数倍数的缩放和更多功能。 ### 下载 Manjaro 21.3.0 @@ -74,7 +75,7 @@ via: https://news.itsfoss.com/manjaro-21-3-0-release/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a836dfba64aff00e5b9994d47eb4389915583dbe Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Sat, 25 Jun 2022 10:10:58 +0800 Subject: [PATCH 0116/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BD=AF=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...for Business by Collaborating with Pexip.md | 84 ------------------- 1 file changed, 84 deletions(-) delete mode 100644 sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md diff --git a/sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md b/sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md deleted file mode 100644 index 8835dde698..0000000000 --- a/sources/news/20220622 Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip.md +++ /dev/null @@ -1,84 +0,0 @@ -[#]: subject: "Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip" -[#]: via: "https://news.itsfoss.com/rocket-chat-pexip/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Rocket.Chat Aims to Replace Skype for Business by Collaborating with Pexip -====== -Rocket.Chat is collaborating with a video communication platform, Pexip to offer an alternative to Skype for Business and Microsoft Teams. - -![rocket chat pixep][1] - -Rocket.Chat is making headlines this year, and for all the good reasons. - -To start with, they collaborated with [Nextcloud to offer an open-source Microsoft 365 alternative][2], then [joined forces with Matrix][3], and now they have announced another partnership to tackle the likes of “Skype for Business” and Microsoft Teams. - -So, what is it about? Let us get to know more here. - -### Rocket.Chat + Pexip to Integrate Chat and Video Conferencing Platforms - -Rocket.Chat is one of the [best open-source Slack alternatives][4] out there. It is probably going to be one of the [best Matrix clients][5] as well. It most likely does not need an introduction for users who prefer using open-source solutions. - -[Pexip][6], on the other hand, is not an open-source platform that provides a video communication solution. You can self-host the service along with enterprise and cloud services. - -Pexip is a good contender when it comes to video communication solutions for healthcare, government, or any security-conscious organizations. Companies like Accenture, and Intel, rely on some of their services. - -Hence, Rocket.Chat and Pexip decided to integrate their strengths to offer a solid offering for organizations that require high-level security. - -**Gabriel Engel**, CEO, and co-founder of Rocket.Chat, mentioned the following: - -> “There’s an immediate need in the market for an on-premise digital collaboration solution thatenables fully compliant and secure chat and video communications. Rocket.Chat and Pexip havecome together with a complete solution and a strong commitment for the long-term success ofour customers,” - -While they target every type of organizations with the partnership, but the public sector and government organizations are one of the top priorities. - -**John Thorneycroft**, Senior VicePresident, Business Management at Pexip said: - -> Our public sector and government customers are especially mindful of data privacy andsecurity when selecting a communications solution. The combination of Pexip’s on-premisevideo communication platform and Rocket.Chat’s secure chat functionality provides thesecustomers with the control and compliance they require. - -### Replacing Skype for Business and Teams - -Microsoft retired Skype for Business on July 31, 2021. And, its online infrastructure will be decommissioned after June 30, 2022. - -And, Rocket.Chat’s partnership with Pexip focuses on being a replacement for those organizations that are looking to switch to a better solution considering privacy and security. - -Not just Skype for Business, but it can also be a potential substitute for organizations using Microsoft Teams. Mostly because of the security features of Rocket.Chat and Pexip including: - -* End-to-End encryption chat. -* Secure file sharing. -* Transcoding, secure/flexible access on any device. -* Role-based permissions. -* Data loss prevention. -* Audit trails. -* Active Directory/single sing-on. -* On-premise deployment. -* Compliance with privacy regulations. - -Not to forget, Rocket.Chat also enables cross-platform communication using its bridges and helps you interact with users from Microsoft Teams, Slack, and Matrix clients. - -Are you an organization that is looking to use a secure collaboration platform? I think Rocket.Chat and Pexip’s integration solution should be a great alternative, considering the competition does not offer the same features. - -Share your thoughts in the comments down below. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/rocket-chat-pexip/ - -作者:[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/06/rocketchat-pixep-collabortation.jpg -[2]: https://news.itsfoss.com/rocket-chat-nextcloud-collaboration/ -[3]: https://news.itsfoss.com/rocket-chat-matrix/ -[4]: https://itsfoss.com/open-source-slack-alternative/ -[5]: https://itsfoss.com/best-matrix-clients/ -[6]: https://www.pexip.com/ From 07d39c39a4d3498ecabdfac48932961f7d97074e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 25 Jun 2022 10:18:24 +0800 Subject: [PATCH 0117/3123] RP @lkxed https://linux.cn/article-14755-1.html --- ...Open Source Software In Microsoft Store.md | 40 +++++++++++++++++++ ...Open Source Software In Microsoft Store.md | 39 ------------------ 2 files changed, 40 insertions(+), 39 deletions(-) create mode 100644 published/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md delete mode 100644 translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md diff --git a/published/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/published/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md new file mode 100644 index 0000000000..81622add51 --- /dev/null +++ b/published/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md @@ -0,0 +1,40 @@ +[#]: subject: "Microsoft To Charge For Available Open Source Software In Microsoft Store" +[#]: via: "https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14755-1.html" + +微软将对应用商店中开源软件的收费进行限制 +====== + +![](https://img.linux.net.cn/data/attachment/album/202206/25/101648dlxnqxkaox00xc3l.jpg) + +2022 年 6 月 16 日,微软更新了其应用商店的策略。其中一项禁止了发布者对开源或免费的软件收取费用,另一项则针对的是商店使用的不合理高价。如果你在过去几年中访问过微软应用商店,你可能已经注意到,它正在成为越来越多的开源和免费产品的所在地。如果原始开发者将应用程序和游戏上传到商店,这将是有益的,但情况并非如此,因为它们是由第三方上传的。 + +更糟糕的是,其中许多程序仅作为付费应用提供,而不是免费下载。换句话说,微软的客户必须付费才能购买应用商店的版本,而它们在其他地方是免费的!在应用商店中,免费版和付费版有时并存。为免费应用付费已经够糟糕的了,但这并不是用户在购买时可能遇到的唯一问题。更新也可能是一个问题,因为山寨应用可能不会像源头应用程序那样频繁或快速地更新。 + +在更新的微软商店政策中,微软在 10.8.7 节下指出: + +> 在您决定产品或应用内购买的定价时,您的数字产品或服务的所有定价(包括销售或折扣)必须: +> +> 遵守所有适用的法律、法规和监管要求,包括联邦贸易委员会的《反欺骗性定价指南》。您不得试图从开源软件或其他可免费获得的软件中获利,您的产品也不应提供一个(与它提供的特性和功能相比)过高的不合理定价。 + +这个新策略在更新部分中得到了确认。如果开源和免费产品普遍免费提供,则它们不得在微软应用商店上出售,发布者也不得对其产品收取不合理的高价。开源和免费应用的开发者可以在微软应用商店上为其产品收费。例如,Paint.net 的开发者就是这样做的。如果微软强制执行这些策略,许多应用将从应用商店中删除。以前,开发者可以向微软报告应用程序,但在新策略下,微软可以直接控制应用的列出和提交。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/microsoft-e1655714723942.jpg diff --git a/translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md deleted file mode 100644 index 6533e3bfd2..0000000000 --- a/translated/news/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md +++ /dev/null @@ -1,39 +0,0 @@ -[#]: subject: "Microsoft To Charge For Available Open Source Software In Microsoft Store" -[#]: via: "https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -微软将对应用商店中的开源软件收费 -====== -![微软][1] - -2022 年 6 月 16 日,微软更新了应用商店的策略。其中一项禁止了发布者对开源或免费的软件收取费用,另一项则是商店使用的不合理高价。如果你在过去几年中访问过微软应用商店,你可能已经注意到,它正在成为越来越多的开源和免费产品的所在地。如果原始开发者将应用程序和游戏上传到商店,这将是有益的,但情况并非如此,因为它们是由第三方上传的。 - -更糟糕的是,其中许多程序仅作为付费应用提供,而不是免费下载。换句话说,微软的客户必须付费才能购买应用商店的版本,而它们在其他地方是免费的!在应用商店中,免费版和付费版有时并存。为免费应用付费已经够糟糕的了,但这并不是用户在购买时可能遇到的唯一问题。更新也可能是一个问题,因为山寨应用可能不会像源应用程序那样频繁或快速地更新。 - -在更新后的应用商店策略中,微软在版本号 “10.8.7” 下注明了: - -> 在您确定产品或应用内购买的定价的情况下,您的数字产品或服务的所有定价(包括销售或折扣)必须: -> -> 遵守所有适用的法律、法规和监管指南,包括联邦贸易委员会的《反欺骗定价指南》。您不得试图从开源软件或其他可免费获得的软件中获利,您的产品也不应提供一个(与它提供的特性和功能相比)过高的定价。 - -这个新策略在更新部分中得到了确认。如果开源和免费产品普遍免费提供,则它们可能不再在微软应用商店上出售,发布者也可能不再对其产品收取不合理的高价。开源和免费应用的开发者可以在微软应用商店上为其产品收费。例如,Paint.net 的开发者就是这样做的。如果微软强制执行这些策略,许多应用将从应用商店中删除。以前,开发者可以向微软报告应用程序,但在新策略下,微软可以直接控制应用列表和提交。 - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/microsoft-to-charge-for-available-open-source-software-in-microsoft-store/ - -作者:[Laveesh Kocher][a] -选题:[lkxed][b] -译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.opensourceforu.com/author/laveesh-kocher/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/microsoft-e1655714723942.jpg From d5f6b4bb7ac506a5d538f6daccd2e35f638c8db5 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Sat, 25 Jun 2022 10:33:40 +0800 Subject: [PATCH 0118/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=B7=E9=97=A8?= =?UTF-8?q?=1D/=E9=9A=BE=E7=BF=BB=E7=9A=84=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ang for automated LUKS volume unlocking.md | 193 ------------------ 1 file changed, 193 deletions(-) delete mode 100644 sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md diff --git a/sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md b/sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md deleted file mode 100644 index b9f86db8ed..0000000000 --- a/sources/tech/20220622 Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking.md +++ /dev/null @@ -1,193 +0,0 @@ -[#]: subject: "Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking" -[#]: via: "https://fedoramagazine.org/using-linux-system-roles-to-implement-clevis-and-tang-for-automated-luks-volume-unlocking/" -[#]: author: "Brian Smith https://fedoramagazine.org/author/briansmith/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Using Linux System Roles to implement Clevis and Tang for automated LUKS volume unlocking -====== - -![][1] - -Photo by [Mikhail Fesenko][2] on [Unsplash][3] - -One of the key aspects of system security is encrypting storage at rest. Without encrypted storage, any time a storage device leaves your presence it can be at risk. The most obvious scenario where this can happen is if a storage device (either just the storage device or the entire system, server, or laptop) is lost or stolen. - -However, there are other scenarios that are a concern as well: perhaps you have a storage device fail, and it is replaced under warranty — many times the vendor will ask you to return the original device. If the device was encrypted, it is much less of a concern to return it back to the hardware vendor. - -Another concern is anytime your storage device is out of sight there is a risk that the data is copied or cloned off of the device without you even being aware. Again, if the device is encrypted, this is much less of a concern. - -Fedora (and other Linux distributions) include the Linux Unified Key Setup (LUKS) functionality to support disk encryption. LUKS is easy to use, and is even integrated as an option in the Fedora Anaconda installer. - -However there is one challenge that frequently prevents people from implementing LUKS on a large scale, especially for the root filesystem: every single time you reboot the host you generally have to manually access the console and type in the LUKS passphrase so the system can boot up. - -If you are running Fedora on a single laptop, this might not be a problem, after all, you probably are sitting in front of your laptop any time you reboot it. However, if you have a large number of Fedora instances, this quickly becomes impractical to deal with. - -![][4] - -You might be managing Fedora systems that are at remote locations, and you might not even have good or reliable ways to access a console on them. In this case, rebooting the hosts could result in them not coming up until you or someone else travels to their location to type in the LUKS passphrase. - -This article will cover how to implement a solution to enable automated LUKS volume unlocking (and the process to implement these features will be done using automation as well!) - -### Overview of Clevis and Tang - -Clevis and Tang are an innovative solution that can help with the challenge of having systems with encrypted storage boot up without manual user intervention on every boot. At a high level, Clevis, which is installed on the client systems, can enable LUKS volumes to be unlocked without user intervention as long as the client system has network access to a configurable number of Tang servers. - -The basic premise is that the Tang server(s) are on an internal/private or otherwise secured network, and if the storage devices are lost, stolen, or otherwise removed from the environment, that they would no longer have network access to the Tang server(s), and thus no longer automatically unlock automatically at boot. - -Tang is stateless and doesn’t require authentication or even TLS, which means it is very lightweight and easy to configure, and can run from a container. In this article, I’m only setting up a single Tang server, however it is also possible to have multiple Tang servers in an environment, and to configure the number Tang servers the Clevis clients must connect to in order to unlock the encrypted volume. For example, you could have three Tang servers, and require the Clevis clients to be able to connect to at least two of the three Tang servers. - -For more information on how Tang and Clevis work, refer to the GitHub pages: [Clevis][5] and [Tang][6], or for an overview of the inner workings of Tang and Clevis, refer to the [Securing Automated Decryption New Cryptography and Techniques][7] FOSDEM talk. - -### Overview of Linux System Roles - -Linux System Roles is a set of Ansible Roles/Collections that can help automate the configuration and management of many aspects of Fedora, CentOS Stream, RHEL, and RHEL derivatives. Linux System Roles is packaged in Fedora as an RPM (*linux-system-roles*) and is also available on Ansible Galaxy (as both roles and as a collection). For more information on Linux System Roles, and to see a list of included roles, refer to the [Linux System Roles project page][8]. - -Included in the list of Linux System Roles are the *nbde_client*, *nbde_server*, and *firewall* roles that will be used in this article. The *nbde_client* and *nbde_server* roles are focused on automating the implementation of Clevis and Tang, respectively. The “nbde” in the role names stands for network bound disk encryption, which is another term to refer to using Clevis and Tang for automated unlocking of LUKS encrypted volumes. The *firewall* role can automate the implementation of firewall settings, and will be used to open a port in the firewall on the Tang server. - -### Demo environment overview - -In my environment, I have a Raspberry Pi, running Fedora 36 that I will install Linux System Roles on and use as my Ansible control node. In addition, I’ll use this same Raspberry Pi as my Tang server. This device is configured with the *pi.example.com* hostname. - -In addition, I have four other systems in my environment: two Fedora 36 systems, and two CentOS Stream 9 systems, named *fedora-server1.example.com*, *fedora-server2.example.com*, *c9s-server1.example.com*, and *c9s-server2.example.com*. Each of these four systems has a LUKS encrypted root filesystem and currently the LUKS passphrase must be manually typed in each time the systems boot up. - -I’ll use the *nbde_server* and *firewall* roles to install and configure Tang on my*pi.example.com*system, and use the *nbde_client* role to install and configure Clevis on my four other systems, enabling them to automatically unlock their encrypted root filesystem if they can connect to the *pi.example.com* Tang system. - -### Installing Linux System Roles and Ansible on the Raspberry Pi - -I’ll start by installing the *linux-system-roles* package on the *pi.example.com* host, which will act as my Ansible control node. This will also install *ansible-core* and several other packages as dependencies. These packages do not need to be installed on the other four systems in my environment (which are referred to as managed nodes). - -``` -$ sudo dnf install linux-system-roles -``` - -SSH keys and sudo configuration need to be configured so that the control node host can connect to each of the managed nodes in the environment and escalate to root privileges. - -### Defining the Ansible inventory file - -Still on the *pi.example.com* host, I’ll create an Ansible inventory file to group the five systems in my environment into two Ansible inventory groups. The *nbde_servers* group will contain a list of hosts that I would like to configure as Tang servers (which in this example is only the *pi.example.com*host), and the *nbde_clients* group will contain a list of hosts that I would like to configure as Clevis clients. I’ll name this inventory file *inventory.yml* and it contains the following content: - -``` -all: - children: - nbde_servers: - hosts: - pi.example.com: - nbde_clients: - hosts: - fedora35-server1.example.com: - fedora35-server2.example.com: - c9s-server1.example.com: - c9s-server2.example.com: -``` - -### Creating Ansible Group variable files - -Ansible variables are set to specify what configuration should be implemented by the Linux System Roles. Each role has a README.md file that contains important information on how to use each role, including a list of available role variables. The README.md files for the *nbde_server*, *nbde_client*, and *firewall* roles are available in the following locations, respectively: - -* /usr/share/doc/linux-system-roles/nbde_server/README.md -* /usr/share/doc/linux-system-roles/nbde_client/README.md -* /usr/share/doc/linux-system-roles/firewall/README.md - -I’ll create a *group_vars* directory with the *mkdir group_vars* command. Within this directory, I’ll create a *nbde_servers.yml* file and *nbde_clients.yml* file, which will define, respectively, the variables that should be set for systems listed in the *nbde_servers* inventory group and the *nbde_clients* inventory group. - -The *nbde_servers.yml* file contains the following content, which will instruct the *firewall* role to open TCP port 80, which is the default port used by Tang: - -``` -firewall: - - port: ['80/tcp'] - state: enabled -``` - -The *nbde_clients.yml* file contains the following content: - -``` -nbde_client_bindings: - - device: /dev/vda2 - encryption_password: !vault | - $ANSIBLE_VAULT;1.1;AES256 - 62666465373138636165326639633... - servers: - - http://pi.example.com -``` - -Under *nbde_client_bindings*, *device* specifies the backing device of the encrypted root filesystem on the four managed nodes. The *encryption_password* specifies a current LUKS passphrase that is required to configure Clevis. In this example, I’ve used *ansible-vault* to encrypt the string rather than place the LUKS passphrase in clear text. And finally, under *servers*, a list of Tang servers that Clevis should bind to are specified. In this example, the Clevis clients will be configured to bind to the *pi.example.com* Tang server. - -### Creating the playbook - -I’ll create a simple Ansible playbook, named *nbde.yml* that will call the *firewall* and *nbde_server* roles for systems in the *nbde_servers* inventory group, and call the *nbde_client* role for systems in the *nbde_clients* group: - -``` -- name: Open firewall for Tang - hosts: nbde_servers - roles: - - linux-system-roles.firewall - -- name: Deploy NBDE Tang server - hosts: nbde_servers - roles: - - linux-system-roles.nbde_server - -- name: Deploy NBDE Clevis clients - hosts: nbde_clients - roles: - - linux-system-roles.nbde_client -``` - -At this point, I have the following files and directories created: - -* inventory.yml -* nbde.yml -* group_vars/nbde_clients.yml -* group_vars/nbde_servers.yml - -### Running the playbook - -The *nbde.yml* playbook can be run with the following command: - -``` -$ ansible-playbook nbde.yml -i inventory.yml --ask-vault-pass -b -``` - -The*-i*flag specifies which inventory file should be used, the *–ask-vault-pass* flag will prompt for the Ansible Vault password to decrypt the *encryption_password* variable, and the *-b* flag specifies that Ansible should escalate to root privileges. - -![][9] - -### Validating the configuration - -To validate the configuration, I rebooted each of my four managed nodes that were configured as Clevis clients of the Raspberry Pi Tang server. Each of the four managed nodes boots up and briefly pauses on the LUKS passphrase prompt: - -![][10] - -However, after the brief delay, each of the four systems continued booting up without requiring me to enter the LUKS passphrase. - -### Conclusion - -If you would like to secure your data at rest with LUKS encryption, but need a solution that enables systems to boot up without intervention, consider implementing Clevis and Tang. Linux System Roles can help you implement Clevis and Tang, as well as a number of other aspects of your system, in an automated manner. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/using-linux-system-roles-to-implement-clevis-and-tang-for-automated-luks-volume-unlocking/ - -作者:[Brian Smith][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://fedoramagazine.org/author/briansmith/ -[b]: https://github.com/lkxed -[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/Automatic-LUKS-volume-unlocking-816x345.jpg -[2]: https://unsplash.com/@proggga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/system-administrator?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://fedoramagazine.org/wp-content/uploads/2022/06/several-1024x576.png -[5]: https://github.com/latchset/clevis -[6]: https://github.com/latchset/tang -[7]: https://www.youtube.com/watch?v=2uLKvB8Z5D0 -[8]: https://linux-system-roles.github.io/ -[9]: https://fedoramagazine.org/wp-content/uploads/2022/06/results.png -[10]: https://fedoramagazine.org/wp-content/uploads/2022/06/prompt.png From fa307436e9d2b9332267c0c50dbd12e79e3f4d57 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 25 Jun 2022 14:34:52 +0800 Subject: [PATCH 0119/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @godgithubf 感谢您,完成了第一篇翻译贡献。 虽然翻译有些地方不够精良,但是也用心了。下回加油。 --- ...207 3 ways to play video games on Linux.md | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/translated/tech/20210207 3 ways to play video games on Linux.md b/translated/tech/20210207 3 ways to play video games on Linux.md index 136dac8f63..49c414d9b6 100644 --- a/translated/tech/20210207 3 ways to play video games on Linux.md +++ b/translated/tech/20210207 3 ways to play video games on Linux.md @@ -1,65 +1,68 @@ [#]: collector: (lujun9972) [#]: translator: (godgithubf) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (3 ways to play video games on Linux) [#]: via: (https://opensource.com/article/21/2/linux-gaming) [#]: author: (Seth Kenlon https://opensource.com/users/seth) -三种在Linux系统上玩视频游戏的方式 +在 Linux 上玩电子游戏的三种方式 ====== -如果你准备好下载游戏并且全方位体验游戏的话,那么在 linux 下启动游戏吧! -![Gaming with penguin pawns][1] - 从 2021 年以后,人们有更多喜欢 Linux 的理由。在这个系列里,我将分享 21 个使用 Linux 的理由。今天,我将从游戏开始。 +> 如果你准备放下爆米花,想从各个角度体验游戏的话,那么就在 Linux 下打开游戏吧! -我过去认为电脑游戏者是一种特殊的人群,要被研究人员在数年的研究和测试之后严谨地认定。我从来没有把我自己归为电脑游戏者,因为我所玩过的游戏既不是桌面游戏(棋类游戏和纸笔角色扮演游戏)也不是探险游戏和俄罗斯方块。现在,这些游戏可以在移动设备、控制台、电脑和电视机等各种环境上玩。好像该是时候承认游戏者可以以形形色色的方式参与进来。如果你想自称为游戏者,你就可以,不需任何资格认定。你不必记得有科乐美等类似的游戏公司。你不必购买和玩3A级的游戏,只要你时常玩游戏你就完全可以自称为游戏者。如果你想成为一个游戏者,现在使用 Linux 正当其时。 +![](https://img.linux.net.cn/data/attachment/album/202206/25/143306xijsi5aaz5jsj2aj.jpg) -### 欢迎到圈子里 +如今,人们有更多喜欢 Linux 的理由。在这个系列里,我将分享 21 个使用 Linux 的理由。今天,我将从游戏开始。 -剥除排行榜上闪闪发光的广告及背后的东西,你肯定会发现一个欣欣向荣的游戏世界。在任何人相信既不是电子表格也不是练习打字一类的软件能挣钱以前新兴的游戏市场已经开始发展起来了。非主流的游戏已经在流行文化上以各种方式打上了自己的烙印(信不信由你,《我的世界》尽管不是开源的,作为独立制作的游戏已经发展起来了),这也证实了,在玩家眼里,游戏先于产品价值。 +我过去认为“游戏玩家”是一种非常特殊的生物,要由科学家们在数年的研究和测试之后严谨地认定才行。我从来没有把自己归类为游戏玩家,因为我所玩过的游戏要么是桌面游戏(棋盘类游戏和纸笔角色扮演游戏),要么是 NetHack、俄罗斯方块。现在,在移动设备、游戏机、电脑和电视机上都有游戏,我觉得现在的承认有各种形式的游戏玩家们了。如果你想自称为游戏玩家,你就可以是,不需任何资格认定。你不用必须在心里熟记那些“上上下下左右左右BA”的科乐美秘籍(你甚至可以不知道这是什么);你也不用必须买过和玩过 3A 级游戏。如果你时不时地玩游戏,你就完全可以自称为玩家。如果你想成为一名玩家,那么现在使用 Linux 正当其时。 -在独立制作和开源开发者之间有很多交叉的地方。 +### 欢迎来到游戏世界 -有各种各样的开源游戏可玩,包括大量的第一视角射击游戏,益智游戏像 Nodulus ,策略经营游戏像运输大亨,竞速游戏向 Jethook ,减压游戏像 Sauerbraten ,等等还有很多未提到的(多亏了像 Open Jam 这样伟大的倡议,每年都有新增的游戏) +剥除光鲜的广告,在其下面,你肯定会发现一个欣欣向荣的游戏世界。在人们相信不是电子表格也不是练习打字一类的软件能挣钱以前,新兴的游戏市场已经开始发展起来了。独立游戏indie game已经在流行文化上以各种方式打上了自己的烙印(或许你不相信,《我的世界》尽管不是开源的,但一开始就是一款独立游戏),这也证实了,在玩家眼里,可玩性高于产品价值。 + +独立开发者和开源开发者之间有很多交集。没有什么比带着你的 Linux 笔记本电脑,浏览 itch.io 或你的发行版的软件库,寻找鲜为人知但珍贵的开源游戏宝藏更有意义了。 + +有各种各样的开源游戏,包括大量的第一视角射击游戏、Nodulus 之类的益智游戏、运输大亨之类的策略经营游戏、Jethook 之类的竞速游戏、Sauerbraten 之类的竞速逃生游戏,以及很多未提到的(多亏了像 Open Jam 这样伟大的活动,每年都有新增的游戏)。 ![Jethook game screenshot][10] -总的来说,探索开源游戏的世界的体验和主流游戏工作室的产品带来的即时的满足是很不同的。大的游戏工作室生产的游戏提供大量的视觉和听觉刺激,知名演员,和多达60小时的游戏。独立和开源游戏不可能和它匹敌。但是,主流游戏工作室无法达到的是当你发现一款别人未曾听说过的游戏时的产生的发现和个人连接的感受。主流工作室不希望当你认识到世界上的的每个人都非常需要知道你刚玩过的那个游戏所获取的那种感受。(这样翻译真别扭 ) +总的来说,探索开源游戏的世界的体验,和购买大型游戏工作室的产品带来的即时满足感有很大的不同。大型游戏工作室生产的游戏提供大量的视听刺激、知名演员、和长达 60 小时以上的游戏时长。而独立和开源游戏不能与之相提并论。但是话又说回来,大型游戏工作室无法提供的是,当你发现一款别人未曾听说过的游戏时的产生的发现感和与个人相关的感受。当你意识到别人都非常想知道你刚玩过的哪个出色游戏时,大型工作室也并不能提供这种紧迫感。(LCTT 校注:此处大概的意思是指大型工作室的作品已被人熟知,没有什么挖掘的新鲜感) -花点时间找出你最喜欢的游戏,然后浏览下你的发行商的软件仓库,打开开源游戏仓库,看下哪个是发行商没有覆盖到的,如果你足够喜欢的游戏,帮忙推广一下吧。 +花点时间找出你最喜欢的游戏,然后浏览下你的发行商的软件仓库、Flathub、开源的游戏仓库,看看你能发现什么,如果发现你很喜欢的游戏,就帮忙推广一下吧。 -### Proton and WINE +#### Proton 和 WINE -Linux 上的游戏不止于开源,但是从开源开始的。数年前Valve软件公司通过发行 Steam 客户端的 Linux 版把 Linux 带入游戏市场,希望是能够强制游戏工作室能在 Linux 系统上写本地代码。一些工作室这样做了,但 Valve 公司并没有成功的把 Linux 推为主要的平台,即使是 Valve 品牌的游戏电脑。并且大多数游戏工作室又转回仅在 windows 平台上开发游戏的旧方式。 +Linux 上的游戏并没有止步于开源,但是从开源开始的。数年前 Valve 软件公司通过发行 Linux 版的 Steam 客户端把 Linux 重新带入游戏市场时,人们希望这可以推动游戏工作室能编写原生的 Linux 游戏。一些工作室这样做了,但 Valve 公司并没有成功的把 Linux 推为主要的平台,即使是 Valve 品牌的游戏电脑。并且大多数游戏工作室又转回仅在 Windows 平台上开发游戏的旧方式。 -有趣的是,最终的结果是有更多的开源代码被生产出来。 Valve 公司为 Linux 兼容创建了 Proton 工程,一个可以转换 windows 系统游戏到 Linux 的兼容层。在 Proton 的内核层面,它使用了WINE(WINE不是模拟器),好的令人难以置信的是重新实现的主要 windows 库是开源的。 +有趣的是,最终的结果是产生了更多的开源代码。Valve 公司为 Linux 兼容创建了 Proton 工程,一个可以转换 Windows 游戏到 Linux 的兼容层。在 Proton 的内核层面,它使用了WINE(Wine Is Not an Emulator) —— 以开源的方式极好地重新实现了主要的 Windows 库。 -游戏市场的打破结果成为了开源世界的宝藏。今天,来自主流工作室的大多数游戏都可以在 Linux 上运行就好像他们在 windows 上运行一样。 +游戏市场的成果,如今已经变成了开源世界的宝藏。今天,来自大型工作室的大多数游戏都可以在 Linux 上像原生游戏一样运行。 -当然,如果你是必须要有最新版的游戏的这类玩家,你可定会遇到令人不愉快的惊喜。尽管那不是惊喜,很少有主流的游戏发行时毫无漏洞,那需要一周后大量的补丁。这些漏洞在Proton和WINE上更糟糕,因此 Linux 游戏者经常从使用早期版本中获益。这种妥协可能是值得的。我玩过一些游戏,它们在 Proton 平台运行完美,后来从愤怒的论坛邮件中发现它在最新版的 windows 上运行有明显的谜一般的致命错误。总之,似乎来自主流工作室的游戏并不完美,但你可能在 Linux 上遇到相似但不同的问题正如你在 windows 上遇到的。 +当然,如果你是必须要在发行日就玩上最新版游戏的这类玩家,你可能会遇到一些令人不愉快的“惊喜”。尽管那不是惊喜,很少有大型游戏在发行时毫无漏洞,一周后才补上补丁。这些游戏在 Proton 和 WINE 上运行时遇到这些错误可能更糟糕,因此 Linux 玩家通过避免尽早上车而避免这些问题。这种妥协可能是值得的。我玩过一些游戏,它们在 Proton 平台运行完美,后来从愤怒的论坛帖子中发现,它在最新版的 Windows 上运行显然充满了致命的错误。总之,似乎来自大型工作室的游戏并不完美,但你可能在 Linux 上遇到相似但不同的问题,正如你在 Windows 上遇到的。 -### Flatpak +#### Flatpak -最近 Linux 历史上最令人激动的发展就是 Flatpak 了,跨越了本地容器和包,它和游戏无关(或者它和游戏息息相关),它使得 Linux 应用能基本上被分发到任意的 Linux 发行版上。这也适用游戏,因为有相当多次要的技术在游戏中使用。并且它可以很好地对给定的游戏要求发行维护者来保持和所有最新版要求一致 +Linux 近来历史上最令人激动的发展就是 Flatpak 了,它是本地容器和打包的结合,它和游戏无关(或者它和游戏息息相关),它使得 Linux 应用基本上能被分发到任意的 Linux 发行版上。这也适用于游戏,因为在游戏中使用了相当多的前沿技术,而对发行版维护者来说,要跟上任何特定游戏所需的所有最新版本可能是相当苛刻的。 - Flapak 从发行中为应用库抽象出一种公共的 Flatpak 特定的层。Flatpak 的发行者知道 如果一个库不在 Flatpak SDK 中,那么它必须要包含在 Flatpak 中,简单而直接。 +Flapak 通过为应用程序库抽象出一种通用的 Flatpak 特定的层,而将其从发行版中抽象出来。Flatpak 软件包的发行者知道,如果一个库不在 Flatpak SDK 中,那么它必须要包含在 Flatpak 软件包中,简单而直接。 -多亏了 Flatpak , Steam 客户端可以运行在一些像 Fedora, RHEL, Slackware 等从传统角度看并不面向游戏市场的操作系统 +多亏了 Flatpak,Steam 客户端可以运行在像 Fedora 这样的常用发行版上,也可以运行在 RHEL、Slackware 等从传统角度看并不面向游戏市场的操作系统上。 -### Lutris +#### Lutris -如果你不渴望注册 steam 账号,那么可以用我比较偏爱的游戏客户端 Lutris 。表面上看,Lutris 是一个简单的游戏启动器,当你想玩游戏但还没决定玩什么的时候你可以去的地方。有了Lutris,你可以添加你系统上的所有游戏到你的游戏库,然后从 Lutris 界面启动并立即玩起来。更好的是,Lutris 贡献者(像我一样),可以正常的发布安装脚本来使安装你拥有的游戏变得容易。这并不是必须的,但它可以是一个很好的捷径来免除乏味的配置。 - Lutris 也可以支持运行者或者子系统来运行那些不能从应用菜单直接启动的游戏。比如你想玩控制台游戏像开源的魔兽争霸,你必须运行模拟器。如果你已经安装过模拟器的话, Lutris 可以帮你处理。除此以外,如果你有一些老旧的游戏账号, Lutris 可以访问它,并可以把游戏导入你的游戏库中。 +如果你并不急于在 Steam 上注册账号,那么可以用我比较偏爱的游戏客户端 Lutris 。表面上看,Lutris 是一个简单的游戏启动器,当你想玩游戏但还没决定玩什么的时候,你可以到这这里找找。有了 Lutris,你可以将系统上的所有游戏添加到你的游戏库,然后从 Lutris 界面启动并立即玩起来。更好的是,Lutris 贡献者(像我一样)会定期发布安装脚本,使你可以轻松安装自己的游戏。这并不是必须的,但它可以是一个很好的捷径,可以绕过一些繁琐的配置。 -没有比 Lutris 更容易的方式来管理你的游戏了。 +Lutris 也可以借助运行器或子系统,来运行那些不能从应用菜单直接启动的游戏。比如你想玩开源的《魔兽塔防Warcraft Tower Defense》这样的游戏机游戏,你必须运行模拟器。如果你已经安装过模拟器的话,Lutris 可以帮你处理这一切。除此以外,如果你有一个 GOG.com 游戏账号,Lutris 可以访问它,并可以把游戏导入你的游戏库中。 -### 玩游戏 +没有比这更容易的管理你的游戏的方式了。 - Linux 游戏是一个充实且给人力量的体验。我过去避免玩电脑游戏因为我没有觉得我有很多的选择。似乎有很多昂贵的游戏在发行并且不可避免的获得好或者不好的体验,然后很快有转向下一个。另一方面,开源游戏把我引入了游戏的王国。我见到过其他玩家和开发者。我见到过艺术家和音乐家,粉丝以及发起人。我玩过各种各样的游戏但我从来都没认识到他们的确存在过。他们仅仅够我玩一下午,然而其他的却让我长久的着迷于游戏,改进,关卡设计和乐趣。 +### 去玩游戏吧 -如果你准备好来从各个角度体验下游戏的话,在 Linux 上开始游戏吧。 +Linux 游戏是一种充实且给人力量的体验。我过去避免玩电脑游戏,因为我不觉得我有太多的选择。似乎昂贵的游戏总是在不断发布,并且不可避免的获得好或者不好的极端体验,然后很快又转向下一个。另一方面,开源游戏把我引入了游戏的圈子。我见到过其他玩家和开发者。我见到过艺术家和音乐家、粉丝以及推广者。我玩过各种各样的我从来不知道的游戏。其中一些甚至不够我玩一下午,而其他的却让我长久的着迷于游戏、修改、关卡设计和乐趣。 + +如果你准备好放下爆米花,从各个角度体验下游戏的话,那就在 Linux 上开始游戏吧。 -------------------------------------------------------------------------------- @@ -67,8 +70,8 @@ via: https://opensource.com/article/21/2/linux-gaming 作者:[Seth Kenlon][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/godgithubf) -校对:[校对者ID](https://github.com/校对者ID) +译者:[godgithubf](https://github.com/godgithubf) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 582b2e40f66a161e265f258edef53ca11c090d5e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 25 Jun 2022 14:35:58 +0800 Subject: [PATCH 0120/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @godgithubf 本文首发地址:https://linux.cn/article-14756-1.html 您的 LCTT 专页:https://linux.cn/lctt/godgithubf --- .../20210207 3 ways to play video games on Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210207 3 ways to play video games on Linux.md (99%) diff --git a/translated/tech/20210207 3 ways to play video games on Linux.md b/published/20210207 3 ways to play video games on Linux.md similarity index 99% rename from translated/tech/20210207 3 ways to play video games on Linux.md rename to published/20210207 3 ways to play video games on Linux.md index 49c414d9b6..75f0f9992b 100644 --- a/translated/tech/20210207 3 ways to play video games on Linux.md +++ b/published/20210207 3 ways to play video games on Linux.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (godgithubf) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14756-1.html) [#]: subject: (3 ways to play video games on Linux) [#]: via: (https://opensource.com/article/21/2/linux-gaming) [#]: author: (Seth Kenlon https://opensource.com/users/seth) From eb75a432c1d32a21ee98b5af21fcbef111f75a19 Mon Sep 17 00:00:00 2001 From: lightchaserhy <107302656+lightchaserhy@users.noreply.github.com> Date: Sat, 25 Jun 2022 19:09:29 +0800 Subject: [PATCH 0121/3123] Update 20220609 SSL Certificates- Make the Right Choice.md --- .../talk/20220609 SSL Certificates- Make the Right Choice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220609 SSL Certificates- Make the Right Choice.md b/sources/talk/20220609 SSL Certificates- Make the Right Choice.md index 7f66bd67f9..e2ade3d02d 100644 --- a/sources/talk/20220609 SSL Certificates- Make the Right Choice.md +++ b/sources/talk/20220609 SSL Certificates- Make the Right Choice.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/ssl-certificates-make-the-right-choice/" [#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lightchaserhy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 88363a2d992ce2c52652116abed670939006de47 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 25 Jun 2022 20:00:47 +0800 Subject: [PATCH 0122/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220625=20Linux=20Distros=20That=20Turn=20Your=20PC?= =?UTF-8?q?=20into=20Retro=20Gaming=20Console.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Turn Your PC into Retro Gaming Console.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 sources/tech/20220625 Linux Distros That Turn Your PC into Retro Gaming Console.md diff --git a/sources/tech/20220625 Linux Distros That Turn Your PC into Retro Gaming Console.md b/sources/tech/20220625 Linux Distros That Turn Your PC into Retro Gaming Console.md new file mode 100644 index 0000000000..a121e506ad --- /dev/null +++ b/sources/tech/20220625 Linux Distros That Turn Your PC into Retro Gaming Console.md @@ -0,0 +1,138 @@ +[#]: subject: "Linux Distros That Turn Your PC into Retro Gaming Console" +[#]: via: "https://itsfoss.com/retro-gaming-console-linux-distros/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Distros That Turn Your PC into Retro Gaming Console +====== + +[Steam Deck][1] is making news for all the right reasons. It is a fantastic piece of tech, powered by a variant of Arch Linux (SteamOS 3.0) developed by Valve. + +While you can install any other operating system in it, it is best to have it as it is for convenience. + +Unfortunately, Steam Deck or anything similar is not available everywhere. So, what if you can convert your system to a Linux-powered retro gaming console using a distribution? + +### Turn your PC into a Retro Gaming Console With These Linux Distros + +Of course, with a retro gaming console, you can’t expect to play the latest and greatest, but if you are looking for something interesting, this should take your eyes off the Steam Deck. Or, maybe if you already have a modern gaming console/system, you can play some retro games for a change. + +Some distributions also support Raspberry Pi. So, it can be one of your [Raspberry Pi project ideas][2] if you want to put some good use to it. + +#### 1. Batocera.linux + +![A Video from YouTube][3] + +A perfect open-source retro-gaming distribution that can work via a USB or an SD card. This enables you to convert any type of computer to your personal retro gaming machine in no time. + +In fact, it is also one of the [best Linux distributions for gaming][4]. + +In other words, it is a plug-and-play distribution that lets you play any of the retro games you own. It features a powerful emulator to help you run supported games along with numerous features to customize shaders, themes, etc. + +You can check its [official compatibility list][5] to know the supported emulated games. You should find plenty of supported games to get started. + +Note that it does not include any games, you will have to ensure that you own/have the game files that you want to run. For more information, you can explore its [GitHub page][6]. + +[Batocera.linux][7] + +#### 2. Lakka + +![lakka linux][8] + +Lakka is a lightweight Linux distribution that can transform your computer/Raspberry Pi into a retro gaming console. + +Note that it is the official Linux distribution of [RetroArch][9] and libretro ecosystem. Both combined give you a usable retro gaming experience. + +It offers a nice, minimal user interface to let anyone comfortably use the distro. Like the previous option, you can install it on your USB flash drive or the SD card. The project says that it is under heavy development, but is a popular option for playing retro games. + +[Lakka][10] + +### 3. RetroPie + +![retropiewebsitelogo][11] + +One of the easy projects to put your Raspberry Pi for some good use. + +RetroPie is a Linux distribution tailored for Raspberry Pi but also supports ODroid, and PCs to help you convert it into a retro gaming machine. + +It is based on Raspbian, EmulationsStations, and uses projects like RetroArch to give you the experience of a home console with minimal setup. + +If you like customizing your setup, it also allows a variety of configuration tools for advanced users. + +For instance, you also use Kodi from within it by installing it from the menu. Of course, you might want to look at some [media server tools][12] if you want specifically for entertainment and movies. + +You can grab the RestroPie image to get started on your system or install it on top of Raspbian, as you prefer. + +[RetroPie][13] + +### 4. Retro Home (Alpha Builds) + +![retro home][14] + +An unofficial Ubuntu-based Linux distribution for Raspberry Pi by the creator of Ubuntu MATE. It supports Raspberry Pi 2, 3, 4, and 400 as of now. You can also boot from USB. + +It utilizes [Ludo][15] to present a minimal frontend to work with the emulators. + +You can find the images in its GitHub releases section. Additionally, a script is available that builds Retro Home images. If you are curious to give it a try, you can check out its [GitHub page][16] to know more. + +[Retro Home][17] + +### 5. ChimeraOS + +![steam library chimera][18] + +For a change, if you want to play modern games along with the support for retro consoles from a single platform, ChimeraOS can help you out. + +While it starts with a Steam picture mode to give you the convenience, you can also play games using GOG, Epic Games Store, and Flathub as well. + +It should be an interesting option to try if you haven’t already. Head to its [GitH][19][u][20][b page][21] to know more. + +[ChimeraOS][22] + +### Wrapping Up + +You can always use game emulator programs, or directly play games using Steam, Lutris, or more (refer to our [gaming guide][23] if you’re new to gaming on Linux). + +However, it is always a different experience when you convert your entire system to a console-like experience using some of these Linux distributions. And, what’s more exciting than a retro game console powered by Linux? + +*Have you tried out any of the mentioned options? Did we miss any of your favorites? Let us know in the comments.* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/retro-gaming-console-linux-distros/ + +作者:[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://store.steampowered.com/steamdeck +[2]: https://itsfoss.com/raspberry-pi-projects/ +[3]: https://youtu.be/C1sw55VAj5E +[4]: https://itsfoss.com/linux-gaming-distributions/ +[5]: https://batocera.org/compatibility.php +[6]: https://github.com/batocera-linux/batocera.linux +[7]: https://batocera.org/ +[8]: https://itsfoss.com/wp-content/uploads/2022/06/lakka-linux.jpg +[9]: https://www.retroarch.com/ +[10]: https://www.lakka.tv/ +[11]: https://itsfoss.com/wp-content/uploads/2022/06/RetroPieWebsiteLogo.png +[12]: https://itsfoss.com/best-linux-media-server/ +[13]: https://retropie.org.uk/ +[14]: https://itsfoss.com/wp-content/uploads/2022/06/retro-home-800x450.jpg +[15]: https://ludo.libretro.com/ +[16]: https://github.com/wimpysworld/retro-home +[17]: https://github.com/wimpysworld/retro-home +[18]: https://itsfoss.com/wp-content/uploads/2022/06/steam-library-chimera-800x450.jpg +[19]: https://github.com/ChimeraOS/chimeraos +[20]: https://github.com/ChimeraOS/chimeraos +[21]: https://github.com/ChimeraOS/chimeraos +[22]: https://chimeraos.org/ +[23]: https://itsfoss.com/linux-gaming-guide/ From 0bd153a4793fafc73d4f3e4ae8d7ac7a2d1780b7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 25 Jun 2022 22:38:48 +0800 Subject: [PATCH 0123/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220624=20GitHub=20Copilot=20is=20Now=20Available?= =?UTF-8?q?=20for=20All=20and=20Not=20Everyone=20Likes=20It.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...opilot is Now Available for All and Not Everyone Likes It.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md b/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md index 7a7311e8ef..3bbb97b6c4 100644 --- a/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md +++ b/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/github-copilot/" [#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f1488fa5be446dbd1bf2d482178ba09111c9cf60 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 25 Jun 2022 23:19:45 +0800 Subject: [PATCH 0124/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220624=20GitHub=20Copilot=20is=20Now=20Available?= =?UTF-8?q?=20for=20All=20and=20Not=20Everyone=20Likes=20It.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lable for All and Not Everyone Likes It.md | 90 ------------------- ...lable for All and Not Everyone Likes It.md | 90 +++++++++++++++++++ 2 files changed, 90 insertions(+), 90 deletions(-) delete mode 100644 sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md create mode 100644 translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md diff --git a/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md b/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md deleted file mode 100644 index 3bbb97b6c4..0000000000 --- a/sources/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "GitHub Copilot is Now Available for All and Not Everyone Likes It" -[#]: via: "https://news.itsfoss.com/github-copilot/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GitHub Copilot is Now Available for All and Not Everyone Likes It -====== -GitHub Copilot is here to help programmers with A.I suggestions, but could it be making it worse? - -![github][1] - -Back in 2021, I spent hours pouring over the GitHub Copilot docs trying to figure out how I could maximize my chances of getting into the technical preview. Fortunately, this all paid off when I was accepted into the preview. - -Finally, it is available for all to use! - -For those of you unaware, [GitHub Copilot][2] is an AI assistant to help you write code faster and more efficiently. - -The best comparison I can come up with is that it’s like autocomplete feature on your phone. Unlike the autocomplete feature, GitHub Copilot writes the code equivalent to complete sentences. - -### Copilot is Now Available For The Masses - -As I alluded to in the introduction, Copilot has been in a technical preview phase for almost a year now. This means that a very limited number of developers were allowed to use it for free, in exchange for them allowing GitHub to monitor their usage to improve the program for its final release. - -It appears that GitHub is finally satisfied to release it to the public. Now, anyone with a GitHub account should be able to use it, albeit at a cost (which we will get to soon!). - -The [announcement][3] mentioned: - -> Until now, AI has stopped short of improving code, leaving the process of developing software almost completely manual. That’s changing now. Today, I am thrilled to announce that we are making [GitHub Copilot][4] generally available to individual developers. Your AI pair programmer is here. - -[Thomas Dohmke][5] - -Available as a free editor extension, Copilot has already helped millions of developers speed up their programming. However, it does come at a cost, both direct and indirect. - -### GitHub Copilot Pricing - -Copilot may be prohibitively expensive for some as with almost all exciting new technologies. It will cost you $10/month or $100/year. - -If you are an open-source project maintainer or a verified student, you can get free access to it. - -### Is GitHub Copilot Unethical? - -The controversy surrounding the GitHub Copilot product is huge and concerning. Technically, the A.I have been trained using the available code on the GitHub platform. - -So, basically, GitHub is offering a new product by using your code (take it with a pinch of salt, if you’d like). Not to forget, the Free Software Foundation (FSF) also [advised][6] against hosting code on GitHub keeping Copilot in mind. - -While we know that businesses love to exploit things, some believed that it should not directly hurt the projects/code hosted at GitHub. - -**But, is that the case?** - -Briefly, after the launch, many developers shared how they found copyrighted code being generated by GitHub Copilot: - -> Explored github copilot,a paid service, to see if it encodes code from repositories w/ restrictive licenses.I checked if it had code I had written at my previous employer that has a license allowing its use only for free games and requiring attaching the license.yeah it does [pic.twitter.com/JMbXNgOF3Z][7] - -[June 22, 2022][8] - -Of course, if we look at GitHub Copilot’s FAQ which mentions: - -> GitHub does not own the suggestions GitHub Copilot generates. The code you write with GitHub Copilot’s help belongs to you, and you are responsible for it. - -So, ultimately, you pay for a service to add inconvenience and more work to your project? - -Nothing about it sounds exciting in terms of making a developer’s task easy, in my opinion. - -*What are your thoughts on it? Share what you think in the comments section below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/github-copilot/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/github-copilot.jpg -[2]: https://copilot.github.com/ -[3]: https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers/ -[4]: http://copilot.github.com -[5]: https://github.blog/author/ashtom/ -[6]: https://www.fsf.org/blogs/licensing/fsf-funded-call-for-white-papers-on-philosophical-and-legal-questions-around-copilot -[7]: https://t.co/JMbXNgOF3Z -[8]: https://twitter.com/ChrisGr93091552/status/1539731632931803137?ref_src=twsrc%5Etfw diff --git a/translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md b/translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md new file mode 100644 index 0000000000..c6559e0ac4 --- /dev/null +++ b/translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md @@ -0,0 +1,90 @@ +[#]: subject: "GitHub Copilot is Now Available for All and Not Everyone Likes It" +[#]: via: "https://news.itsfoss.com/github-copilot/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GitHub Copilot 现已可供所有人使用,但并非所有人都喜欢它 +====== +GitHub Copilot 来了,它能帮助程序员提供人工智能的编码建议,不过,它是否会让事情变得更糟呢? + +![GitHub][1] + +在 2021 年,我曾花了好几个小时来翻阅 GitHub Copilot 文档,试图弄清楚如何能够加入它的技术预览计划。还好,这一切都得到了回报,我成功加入了预览计划。 + +而现在,它终于可供所有人使用啦! + +如果你还不知道的话,[GitHub Copilot][2] 是一个 AI 助手,可帮助你更快、更高效地编写代码。 + +我能想到的最类似的东西,就是你手机上的(输入法的)自动完成功能。不过,与自动完成功能不同,GitHub Copilot 编写代码,就相当于是在完成整段的句子。 + +### Copilot 现已可供大众使用 + +正如我在前面提到的,Copilot 已经处于技术预览阶段将近一年了。这意味着,GitHub 只允许非常有限数量的开发者免费使用它,以换取同意 GitHub 监控他们的使用情况,从而改进程序的最终版本。 + +看起来 GitHub 终于满意地向公众发布它了嘛。现在,任何拥有 GitHub 帐户的人都应该能够使用它,尽管需要付出一定的代价(我很快就会在下面提到)。 + +[公告][3] 提到: + +> 直到不久前,人工智能都没有能够帮助改进代码,开发软件的过程几乎完全是手动的。现在,这种情况正在改变。今天,我很高兴地宣布,我们正在向所有个人开发者提供 [GitHub Copilot][4]。你的 AI 配对程序员来啦。 +> +> [Thomas Dohmke][5],GitHub CEO + +Copilot 作为免费的编辑器扩展,已经帮助数百万开发者加快了他们的编程速度。然而,它确实是有代价的,无论是直接的还是间接的。 + +### GitHub Copilot 定价 + +与几乎所有令人兴奋的新技术一样,Copilot 对某些人来说可能过于昂贵。它将花费你 10 美元/月或 100 美元/年。 + +如果你是开源项目维护者或经过验证的学生,那么你可以免费使用它。 + +### GitHub Copilot 不道德吗? + +围绕 GitHub Copilot 产品的争议巨大且令人担忧。从技术上讲,这个人工智能是使用大家托管在 GitHub 上的代码来进行训练的。 + +因此,基本上,GitHub 是通过使用你的代码来提供一个新产品(如果你愿意的话,可以加点盐)。而且,关于 Copilot,可别忘了,自由软件基金会(FSF)也 [建议][6] 不要在 GitHub 上托管代码。 + +我们知道,企业总是喜欢利用事物,但有些人认为这应该不会直接损害托管在 GitHub 上的项目/代码。 + +**但是,是这样吗?** + +简而言之,在 Copilot 发布后,许多开发者都分享说,他们发现 GitHub Copilot 生成了受版权保护的代码: + +> 我试了下 GitHub Copilot,一项付费服务​​,来看看它是否会使用带有限制性许可证的存储库的代码。我检查了它,看看它是否有我在之前雇主那里编写的代码,该代码有一个许可证,只允许其用于免费游戏,并且需要附加许可证。是的,它确实有。 + +![图源:推特上的 Chris Green][7] + +当然,如果我们查看 GitHub Copilot 的常见问题解答(FAQ),其中提到: + +> GitHub 不拥有 GitHub Copilot 生成的建议。您在 GitHub Copilot 的帮助下编写的代码属于您自己,由您自己负责。 + +所以说,你为一项服务付了费,最终却为你的项目增加了不便和更多的工作? + +在我看来,就简化开发者的任务而言,这听起来一点儿也不令人兴奋。 + +*你对此有什么想法?请在下面的评论区中分享一下吧!* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/github-copilot/ + +作者:[Jacob Crume][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/github-copilot.jpg +[2]: https://copilot.github.com/ +[3]: https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers/ +[4]: http://copilot.github.com +[5]: https://github.blog/author/ashtom/ +[6]: https://www.fsf.org/blogs/licensing/fsf-funded-call-for-white-papers-on-philosophical-and-legal-questions-around-copilot +[7]: https://pbs.twimg.com/media/FV45qM_VEAALLv6?format=png&name=medium +[8]: https://twitter.com/ChrisGr93091552/status/1539731632931803137?ref_src=twsrc%5Etfw From 5f952fecd234049b4d1040e20c3b2ca6c0488f2f Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 25 Jun 2022 23:21:41 +0800 Subject: [PATCH 0125/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220624=20Linus=20Torvalds=20Expects=20to=20See=20R?= =?UTF-8?q?ust=20Support=20in=20the=20Kernel=20Soon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s Torvalds Expects to See Rust Support in the Kernel Soon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md index 451a2f2726..f3c99ffe09 100644 --- a/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md +++ b/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/linux-kernel-rust/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 57d1672f06eedfa4dba5c6f191f9ae5c5646fda6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 25 Jun 2022 23:54:47 +0800 Subject: [PATCH 0126/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220624=20Linus=20Torvalds=20Expects=20to=20See=20R?= =?UTF-8?q?ust=20Support=20in=20the=20Kernel=20Soon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to See Rust Support in the Kernel Soon.md | 63 ------------------- ... to See Rust Support in the Kernel Soon.md | 63 +++++++++++++++++++ 2 files changed, 63 insertions(+), 63 deletions(-) delete mode 100644 sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md create mode 100644 translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md diff --git a/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md deleted file mode 100644 index f3c99ffe09..0000000000 --- a/sources/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md +++ /dev/null @@ -1,63 +0,0 @@ -[#]: subject: "Linus Torvalds Expects to See Rust Support in the Kernel Soon" -[#]: via: "https://news.itsfoss.com/linux-kernel-rust/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linus Torvalds Expects to See Rust Support in the Kernel Soon -====== -Linux Kernel 5.20 might debut with the Rust infrastructure as hinted by Linus Torvalds. What do you think? - -![linus][1] - -There are various open-source projects rewritten in Rust. Hence, it is not surprising that is being considered as the second language for Linux Kernel for a while now. - -A few days ago at [The Linux Foundation’s Open-Source Summit][2], Linus Torvals mentioned that we should expect the trials for Rust in the next kernel release i.e Linux Kernel 5.20. - -In case you did not know, there have been Rust Linux kernel patches already with few sample drivers and the enablement code for the basic infrastructure, as originally reported by [Phoronix][3]. - -So, Linus Torvalds hinting at a possible merge for the Rust infrastructure should not be a surprise. But, it is certainly exciting! - -### Rust for Linux Kernel - -While the ultimate goal is to make the Linux Kernel better, it will be considered a trial run for now. - -Rust is increasingly becoming a popular programming language for all its benefits. Not to forget, [System76 is also working on a new desktop environment][4] written in Rust. - -However, not everyone involved in maintaining the Linux Kernel would be familiar with the programming language. - -So, would that be a problem? - -Linus Torvalds does not see it as a big issue considering there have been other languages in the kernel as well. He also mentioned that he hopes to see Rust work out as something new. - -Overall, he insists that he trusts the maintainers, unless they make a mistake, as reported by [The Register][5]. - -### Linux 5.20: When? - -The Linux Kernel 5.19 release is due around the end of July. So, the merge window for 5.20 should open following its stable release (given there’s no unexpected delays). - -Not just for Rust, but Linux Kernel 5.20 should be an important update for next-gen hardware support including RDNA3, and more features. - -*What do you think about Rust coming to Linux in the near future? Exicited for it?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-rust/ - -作者:[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/06/linus-expects-rust-support-in-linux-kernel-soon.jpg -[2]: https://events.linuxfoundation.org/open-source-summit-north-america/ -[3]: https://www.phoronix.com/scan.php?page=news_item&px=Rust-Linux-v7-Plus-New-Uutils -[4]: https://news.itsfoss.com/system76-rust-cosmic-desktop/ -[5]: https://www.theregister.com/2022/06/23/linus_torvalds_rust_linux_kernel/ diff --git a/translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md new file mode 100644 index 0000000000..23302b9e68 --- /dev/null +++ b/translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md @@ -0,0 +1,63 @@ +en[#]: subject: "Linus Torvalds Expects to See Rust Support in the Kernel Soon" +[#]: via: "https://news.itsfoss.com/linux-kernel-rust/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linus Torvalds 暗示很快就可以在内核中看到对 Rust 的支持 +====== +正如 Linus Torvalds 所暗示,Linux Kernel 5.20 可能会与对 Rust 的支持一起首次亮相。你怎么看? + +![Linus][1] + +市面上已经有许多用 Rust 重写的开源项目。因此,Rust 一段时间以来被认为是 Linux 内核的第二语言,也就不足为奇了。 + +几天前,在 [Linux 基金会开源峰会][2] 上,Linus Torvals 提到他们预计将在下一个内核版本(即 Linux 内核 5.20)中对 Rust 进行试验。 + +如果你不知道,正如 [Phoronix][3] 率先报道的那样,Linux 内核补丁中已经包含了少量的示例驱动程序,以及支持基本的基础设施的 Rust 代码。 + +因此,Linus Torvalds 对可能合并 Rust 支持的暗示,也不足为奇。但是,这无疑是令人兴奋的! + +### 用于 Linux 内核的 Rust + +这么做的最终目标是让 Linux Kernel 变得更好,但它现在仍然处于试运行阶段。 + +凭借其所有优势,Rust 正日益成为一种流行的编程语言。不要忘记,[System76 也在开发一个用 Rust 编写的新桌面环境][4]。 + +然而,并不是所有参与维护 Linux 内核的人都熟悉这种编程语言。 + +那么,这会是一个问题吗? + +考虑到内核中还有其他语言,Linus Torvalds 并不认为这是一个大问题。他还提到他希望看到 Rust 成为新的一份子。 + +[The Register][5] 报道称,Linus Torvalds 表示会信任维护者,除非他们犯了错误。 + +### Linux 5.20:何时发布? + +Linux 内核 5.19 版本将于 7 月底左右发布。因此,5.20 版本的合并窗口应该会在其稳定发布后打开(假设没有意外延迟的话)。 + +除了 Rust 以外,Linux Kernel 5.20 应该也是对下一代硬件支持的重要更新(包括 RDNA3),同时提供了更多功能。 + +*你如何看待 Rust 在不久的将来会进入 Linux 呢?你感到兴奋吗?欢迎在下方评论区告诉我们~* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-rust/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/linus-expects-rust-support-in-linux-kernel-soon.jpg +[2]: https://events.linuxfoundation.org/open-source-summit-north-america/ +[3]: https://www.phoronix.com/scan.php?page=news_item&px=Rust-Linux-v7-Plus-New-Uutils +[4]: https://news.itsfoss.com/system76-rust-cosmic-desktop/ +[5]: https://www.theregister.com/2022/06/23/linus_torvalds_rust_linux_kernel/ From 8bb27bd05602aaa03aca803655623c1b86a12489 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 26 Jun 2022 09:33:39 +0800 Subject: [PATCH 0127/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220626=20Manjaro=20Linux=20Review-=20Detailed=20de?= =?UTF-8?q?ep-dive=20with=20Performance,=20Hardware=20Support=20+=20More.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...th Performance, Hardware Support + More.md | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 sources/tech/20220626 Manjaro Linux Review- Detailed deep-dive with Performance, Hardware Support + More.md diff --git a/sources/tech/20220626 Manjaro Linux Review- Detailed deep-dive with Performance, Hardware Support + More.md b/sources/tech/20220626 Manjaro Linux Review- Detailed deep-dive with Performance, Hardware Support + More.md new file mode 100644 index 0000000000..6edc8aaed2 --- /dev/null +++ b/sources/tech/20220626 Manjaro Linux Review- Detailed deep-dive with Performance, Hardware Support + More.md @@ -0,0 +1,155 @@ +[#]: subject: "Manjaro Linux Review: Detailed deep-dive with Performance, Hardware Support + More" +[#]: via: "https://www.debugpoint.com/manjaro-linux-review-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manjaro Linux Review: Detailed deep-dive with Performance, Hardware Support + More +====== + +We review the [Manjaro Linux][1] with decade-old hardware and new hardware to test how it performs. Here are the results. + +![Manjaro Linux 21.3 GNOME Desktop][2] + +A few days back, we received several comments on why we have not included “Manjaro Linux” in the article we published – “[best Linux Distributions of 2022][3]“. So, I decided to review Manjaro’s current state and performance in various aspects of a desktop Linux operating system. + +I will be honest. I was slightly biased on Manjaro while drafting the above article, primarily due to several media coverages ([source 1][4], [source 2][5], [source 3][6]). However, when I saw the latest feedback of Manjaro in several forums, I thought, let’s find out about the actual state of this fantastic distro. + +Hence this review. + +### Manjaro Review and Experience + +#### Test Machine + +Those who spend longer time in the Linux world know how complicated a situation can be with the above hardware from two famous (🥵) companies. I decided to test Majnaro in two ways. Firstly, on older hardware (10+ years old) with a complex NVIDIA GeForce card and Broadcom chip. + +Second, in a standard virtual machine. + +#### ISO Download and Installation + +Firstly, the download from the official website of Manjaro via torrent went fine. The mirrors are super fast. I choose the Manjaro Linux GNOME Edition for this review which is around 3.2 GB download size. The primary reason for choosing GNOME is that it’s easier to compare with other non-Arch distros. + +Secondly, the installation launcher is easy to find on the Manjaro LIVE desktop. The OS installer icon is at the GNOME default dock. + +The installation was flawless of Manjaro Linux. It uses the Calamares installer. In both test and virtual machines, it preserved the GRUB. The physical system is a triple boot machine, and Manjaro did not mess up the GRUB. It detected all the operating systems. + +Additionally, here’s one tiny observation related to boot. Manjaro Linux boot screen gives you two options – a) boot with an open-source driver and b) boot with a proprietary driver. When I tried to boot with the proprietory driver, Majnaro did not boot. It is stuck on the boot screen with “Starting GNOME Display Manager”. It looks like the NVIDIA card support problem (although it is out of support which I found later). Eventually, I installed it via the open-source driver option. + +#### First Look + +This review is based on Manjaro 21.3, the latest version as of writing this. The GNOME 42 desktop with Manjaro’s green-ish theme looks stunning. GNOME 42 brings the latest GTK4 applications in its core Shell. Overall the desktop seems nice and clean. + +The Manjaro Hello – the official welcome screen- is a much-needed app that gives you quick access to various tasks. It is an essential app for new users mostly. + +A set of nice Manjaro wallpapers give the desktop a professional feel. + +#### Friendliness with Manjaro tools for a new Arch User + +In addition to the above, Manjaro also brings two crucial native applications. + +The first one is Manjaro Settings Manager, which gives you easy access to perform several system tasks without running commands in the terminal. This app provides the following features: + +* Install and remove additional and experimental Kernels +* User account management +* Keyboard layout changes +* Language changes +* Hardware detection and installation of drivers + +The second app is the Graphical Software Manager pamac. Pamac allows you to manage the software sources and search, install and uninstall software in the most convenient way possible. It also gives you access to many software, especially in Manjaro’s repo, in addition to usual Arch Linux repos. + +![Pamac][7] + +In addition, the GNOME flavour of Manjaro has the Extensions app pre-installed with several unique GNOME native apps installed. Thanks to the Manjaro devs, Flatpak support is present out of the box! + +All of these small but impactful changes make it a great distro. + +#### Connectivity and Drivers + +Most of the connectivity worked fine in this hardware. However, there were some roadblocks. + +Firstly, the Broadcom wireless card (BCM4313) worked out of the box, thanks to the Manjaro developers. Because, a few months back, when I ran the bare-metal Arch Linux with Xfce, the vanilla Arch Linux Kernel did not detect it. By default, Manjaro uses the open-source broadcom-r8168 driver. + +I am glad it worked and connecting to the 4G Wi-Fi access point also went smoothly. + +![Network Driver][8] + +Secondly, the connection to a Bluetooth audio device also went well. Also, plug-and-play wireless USB devices worked fine. + +Two important aspects did not go well in this hardware. Although, the Manjaro Hardware Configuration detected the NVIDIA GeForce 315M and assigned the video-linux driver. The display resolution is maxed at 1376×768, but probably this driver has limited support. + +![Resolution in test system][9] + +Similarly, when I tested the Linux Mint Cinnamon edition in this hardware, it was detected perfectly, and several high-resolution options were present. + +Upon further digging in the Majnaro Forum, I found that the official driver for this card (nvidia-340) is officially removed as its an obsolete card. However, there are [some instructions][10] to compile the driver from GitHub – but that’s too much of an effort. + +![Graphics Driver detected by Manjaro][11] + +Secondly, the printer did not work at all. My printer is HP 2300 deskjet series. GNOME settings can detect the printer (see below), but the “Add Printer” function fails. + +![Printer is shown in Settings][12] + +![Add Printer did not work][13] + +Because Linux has excellent printer support – thanks to CUPS. The same printer works well with all other recent Linux distributions, even with GNOME. I am not particularly sure why it didn’t work. Also, I think it might be something to do with GNOME Shell and its settings, not Manjaro Linux itself. + +Besides these, Manjaro Linux brings Onlyoffice and Geary for office suite and email access, respectively. + +#### Performance + +One reason for trying out this distribution in a physical system is the performance metric. If it performs well in older hardware, it may run blazing fast in modern hardware. + +In an idle state, Manjaro Linux GNOME Edition uses only 740 MB of RAM and 2% to 3% CPU in this hardware. The overall responsiveness of the desktop is fast; there is no lag whatsoever. It’s an impressive performance considering the physical system. + +![Manjaro Linux Performance (Idle State with GNOME)][14] + +Moreover, if you run it through a heavy workload, the performance would be slightly higher based on how many programs or applications you run. + +But overall, Mankjaro Linux performs very well. + +Finally, it uses ~10 GB of disk space for a default install (GNOME Edition). + +### Closing Notes + +Wrapping up the Manjaro Linux Review, I must say, it is indeed a time-tested distribution which brings Arch Linux to the masses. Also, I think Manjaro is the first distro which shows that Arch Linux can be a friendly distro with easy installation. Moreover, it shows the path to many similar “friendly Arch” distros which came up recently, such as EndeavourOS. + +Because it is well designed to provide a wrapper to the “Arch Linux is difficult” myth. In addition, once you start using it, you wouldn’t feel it is an Arch Linux. It may feel like a Debian-based or a Fedora-based distro. + +However, as always, it’s better to try modern Linux distributions in “not-so-old” hardware, which we used for this review. A five-year to 10-year-old hardware is fine. But beyond that, it’s necessary to upgrade the hardware because the modern operating systems (Linux or Windows) require more computing power due to security and other built-in functionalities (fingerprint, video conferencing, etc.), which are needed with the changing time. + +Finally, you can easily choose Manjaro Linux for a daily driver or your workflow. + +What is your opinion about Majnaro? Let me know in the comment box below (good or bad). + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/manjaro-linux-review-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://manjaro.org/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/06/Manjaro-Linux-21.3-GNOME-Desktop.jpg +[3]: https://www.debugpoint.com/best-linux-distributions-2022/ +[4]: https://www.reddit.com/r/linux4noobs/comments/oxeeyu/please_please_stop_recommending_beginners_manjaro/ +[5]: https://www.hadet.dev/Manjaro-Bad/ +[6]: https://github.com/arindas/manjarno +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/Pamac.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/06/Network-Driver.png +[9]: https://www.debugpoint.com/wp-content/uploads/2022/06/Resolution-in-test-system.png +[10]: https://forum.manjaro.org/t/howto-get-legacy-340xx-nvidia-drivers-back/46969 +[11]: https://www.debugpoint.com/wp-content/uploads/2022/06/Graphics-Driver-detected-by-Manjaro.png +[12]: https://www.debugpoint.com/wp-content/uploads/2022/06/Printer-is-shown-in-Settings.png +[13]: https://www.debugpoint.com/wp-content/uploads/2022/06/Add-Printer-did-not-work.png +[14]: https://www.debugpoint.com/wp-content/uploads/2022/06/Manjaro-Linux-Performance-Idle-State-with-GNOME.png From 9b6dbb861a7ff41a872e5cc442e42646ac145d09 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Sun, 26 Jun 2022 10:09:45 +0800 Subject: [PATCH 0128/3123] =?UTF-8?q?=E6=B8=85=E7=90=86=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y with Fedora Astronomy Lab- setting up.md | 101 +++---- .../20210226 Navigate your FreeDOS system.md | 129 ++++----- ...Ansible collection that-s right for you.md | 65 +++-- ...d a home thermostat with a Raspberry Pi.md | 263 ++++++++---------- ...Java by building a classic arcade game.md} | 233 +++++++--------- ...ontent and a database on a Raspberry Pi.md | 163 +++++------ ...0306 Use FreeBSD jails on Raspberry Pi.md} | 86 +++--- ...mputing by programming embedded systems.md | 129 ++++----- ...h an open source customer data platform.md | 237 +++++++--------- 9 files changed, 613 insertions(+), 793 deletions(-) rename sources/tech/{20210302 Learn Java with object orientation by building a classic Breakout game.md => 20210302 Learn Java by building a classic arcade game.md} (58%) rename sources/tech/{20210306 Manage containers on Raspberry Pi with this open source tool.md => 20210306 Use FreeBSD jails on Raspberry Pi.md} (88%) diff --git a/sources/tech/20210205 Astrophotography with Fedora Astronomy Lab- setting up.md b/sources/tech/20210205 Astrophotography with Fedora Astronomy Lab- setting up.md index 7077d9544b..78d855c76b 100644 --- a/sources/tech/20210205 Astrophotography with Fedora Astronomy Lab- setting up.md +++ b/sources/tech/20210205 Astrophotography with Fedora Astronomy Lab- setting up.md @@ -1,11 +1,11 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Astrophotography with Fedora Astronomy Lab: setting up) -[#]: via: (https://fedoramagazine.org/astrophotography-with-fedora-astronomy-lab-setting-up/) -[#]: author: (Geoffrey Marr https://fedoramagazine.org/author/coremodule/) +[#]: subject: "Astrophotography with Fedora Astronomy Lab: setting up" +[#]: via: "https://fedoramagazine.org/astrophotography-with-fedora-astronomy-lab-setting-up/" +[#]: author: "Geoffrey Marr https://fedoramagazine.org/author/coremodule/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Astrophotography with Fedora Astronomy Lab: setting up ====== @@ -28,21 +28,15 @@ Download Fedora Astronomy Lab from the [Fedora Labs website][4]. You will need a Before you can go capturing the heavens, you need to do some minor setup in Fedora Astronomy Lab. -First of all, you need to add your user to the _dialout_ group so that you can access certain pieces of astronomical equipment from within the guiding software. Do that by opening the terminal (Konsole) and running this command (replacing _user_ with your username): +First of all, you need to add your user to the *dialout* group so that you can access certain pieces of astronomical equipment from within the guiding software. Do that by opening the terminal (Konsole) and running this command (replacing *user* with your username): -sudo usermod -a -G dialout user - -My personal setup includes a guide camera (QHY5 series, also known as Orion Starshoot) that does not have a driver in the mainline Fedora repositories. To enable it, ypu need to install the [qhyccd SDK][9]. (_Note that this package is not officially supported by Fedora. Use it at your own risk.)_ At the time of writing, I chose to use the latest stable release, 20.08.26. Once you download the Linux 64-bit version of the SDK, to extract it: -``` +My personal setup includes a guide camera (QHY5 series, also known as Orion Starshoot) that does not have a driver in the mainline Fedora repositories. To enable it, ypu need to install the [qhyccd SDK][9]. (*Note that this package is not officially supported by Fedora. Use it at your own risk.)* At the time of writing, I chose to use the latest stable release, 20.08.26. Once you download the Linux 64-bit version of the SDK, to extract it: ``` - tar zxvf sdk_linux64_20.08.26.tgz ``` -``` - -Now change into the directory you just extracted, change the permissions of the _install.sh_ file to give you execute privileges, and run the _install.sh_: +Now change into the directory you just extracted, change the permissions of the *install.sh* file to give you execute privileges, and run the *install.sh*: ``` cd sdk_linux64_20.08.26 @@ -50,49 +44,35 @@ chmod +x install.sh sudo ./install.sh ``` -Now it’s time to install the qhyccd INDI driver. INDI is an open source software library used to control astronomical equipment. Unfortunately, the driver is unavailable in the mainline Fedora repositories, but it is in a Copr repository. (_Note: Copr is not officially supported by Fedora infrastructure. Use packages at your own risk.)_ If you prefer to have the newest (and perhaps unstable!) pieces of astronomy software, you can also enable the “bleeding” repositories at this time by following [this guide][10]. For this tutorial, you are only going to enable one repo: -``` +Now it’s time to install the qhyccd INDI driver. INDI is an open source software library used to control astronomical equipment. Unfortunately, the driver is unavailable in the mainline Fedora repositories, but it is in a Copr repository. (*Note: Copr is not officially supported by Fedora infrastructure. Use packages at your own risk.)* If you prefer to have the newest (and perhaps unstable!) pieces of astronomy software, you can also enable the “bleeding” repositories at this time by following [this guide][10]. For this tutorial, you are only going to enable one repo: ``` - sudo dnf copr enable xsnrg/indi-3rdparty-bleeding ``` -``` - Install the driver by running the following command: -``` ``` - sudo dnf install indi-qhy ``` -``` - Finally, update all of your system packages: -sudo dnf update -y - -To recap what you accomplished in this sectio: you added your user to the _dialout_ group, downloaded and installed the qhyccd driver, enabled the _indi-3rdparty-bleeding_ copr, installed the qhyccd-INDI driver with dnf, and updated your system. +To recap what you accomplished in this sectio: you added your user to the *dialout* group, downloaded and installed the qhyccd driver, enabled the *indi-3rdparty-bleeding* copr, installed the qhyccd-INDI driver with dnf, and updated your system. ### Connecting your equipment This is the time to connect all your equipment to your computer. Most astronomical equipment will connect via USB, and it’s really as easy as plugging each device into your computer’s USB ports. If you have a lot of equipment (mount, imaging camera, guide camera, focuser, filter wheel, etc), you should use an external powered-USB hub to make sure that all connected devices have adequate power. Once you have everything plugged in, run the following command to ensure that the system recognizes your equipment: -``` ``` - lsusb ``` -``` - You should see output similar to (but not the same as) the output here: ![][11] -You see in the output that the system recognizes the telescope mount (a SkyWatcher EQM-35 Pro) as _Prolific Technology, Inc. PL2303 Serial Port_, the imaging camera (a Sony a6000) as _Sony Corp. ILCE-6000_, and the guide camera (an Orion Starshoot, aka QHY5) as _Van Ouijen Technische Informatica_. Now that you have made sure your system recognizes your equipment, it’s time to open your desktop planetarium and telescope controller, KStars! +You see in the output that the system recognizes the telescope mount (a SkyWatcher EQM-35 Pro) as *Prolific Technology, Inc. PL2303 Serial Port*, the imaging camera (a Sony a6000) as *Sony Corp. ILCE-6000*, and the guide camera (an Orion Starshoot, aka QHY5) as *Van Ouijen Technische Informatica*. Now that you have made sure your system recognizes your equipment, it’s time to open your desktop planetarium and telescope controller, KStars! ### Setting up KStars @@ -100,15 +80,15 @@ It’s time to open [KStars][12], which is a desktop planetarium and also includ ![][13] -Follow the prompts to choose your home location (where you will be imaging from) and _Download Extra Data…_ +Follow the prompts to choose your home location (where you will be imaging from) and *Download Extra Data…* -![Setting your location][14] +![][14] -![“Download Extra Data”][15] +![][15] -![Choosing which catalogs to download][16] +![][16] -This will allow you to install additional star, nebula, and galaxy catalogs. You don’t need them, but they don’t take up too much space and add to the experience of using KStars. Once you’ve completed this, hit _Done_ in the bottom right corner to continue. +This will allow you to install additional star, nebula, and galaxy catalogs. You don’t need them, but they don’t take up too much space and add to the experience of using KStars. Once you’ve completed this, hit *Done* in the bottom right corner to continue. ### Getting familiar with KStars @@ -116,49 +96,49 @@ Now is a good time to play around with the KStars interface. You are greeted wit ![][17] -This is the desktop planetarium which allows you to view the placement of objects in the night sky. Double-clicking an object selects it, and right clicking on an object gives you options like _Center & Track_ which will follow the object in the planetarium, compensating for [sidereal time][18]. _Show DSS Image_ shows a real [digitized sky survey][19] image of the selected object. +This is the desktop planetarium which allows you to view the placement of objects in the night sky. Double-clicking an object selects it, and right clicking on an object gives you options like *Center & Track* which will follow the object in the planetarium, compensating for [sidereal time][18]. *Show DSS Image* shows a real [digitized sky survey][19] image of the selected object. ![][20] -Another essential feature is the _Set Time_ option in the toolbar. Clicking this will allow you to input a future (or past) time and then simulate the night sky as if that were the current date. +Another essential feature is the *Set Time* option in the toolbar. Clicking this will allow you to input a future (or past) time and then simulate the night sky as if that were the current date. -![The Set Time button][21] +![][21] ### Configuring capture equipment with Ekos -You’re familiar with the KStars layout and some basic functions, so it’s time to move on configuring your equipment using the [Ekos][22] observatory controller and automation tool. To open Ekos, click the observatory button in the toolbar or go to _Tools_ > _Ekos_. +You’re familiar with the KStars layout and some basic functions, so it’s time to move on configuring your equipment using the [Ekos][22] observatory controller and automation tool. To open Ekos, click the observatory button in the toolbar or go to *Tools* > *Ekos*. -![The Ekos button on the toolbar][23] +![][23] -You will see another setup wizard: the _Ekos Profile Wizard_. Click _Next_ to start the wizard. +You will see another setup wizard: the *Ekos Profile Wizard*. Click *Next* to start the wizard. ![][24] -In this tutorial, you have all of our equipment connected directly to your computer. A future article we will cover using an INDI server installed on a remote computer to control our equipment, allowing you to connect over a network and not have to be in the same physical space as your gear. For now though, select _Equipment is attached to this device_. +In this tutorial, you have all of our equipment connected directly to your computer. A future article we will cover using an INDI server installed on a remote computer to control our equipment, allowing you to connect over a network and not have to be in the same physical space as your gear. For now though, select *Equipment is attached to this device*. ![][25] -You are now asked to name your equipment profile. I usually name mine something like “Local Gear” to differentiate between profiles that are for remote gear, but name your profile what you wish. We will leave the button marked _Internal Guide_ checked and won’t select any additional services. Now click the _Create Profile & Select Devices_ button. +You are now asked to name your equipment profile. I usually name mine something like “Local Gear” to differentiate between profiles that are for remote gear, but name your profile what you wish. We will leave the button marked *Internal Guide* checked and won’t select any additional services. Now click the *Create Profile & Select Devices* button. ![][26] This next screen is where we can select your particular driver to use for each individual piece of equipment. This part will be specific to your setup depending on what gear you use. For this tutorial, I will select the drivers for my setup. -My mount, a [SkyWatcher EQM-35 Pro][27], uses the _EQMod Mount_ under _SkyWatcher_ in the menu (this driver is also compatible with all SkyWatcher equatorial mounts, including the [EQ6-R Pro][28] and the [EQ8-R Pro][29]). For my Sony a6000 imaging camera, I choose the _Sony DSLR_ under _DSLRs_ under the CCD category. Under _Guider_, I choose the _QHY CCD_ under _QHY_ for my Orion Starshoot (and any QHY5 series camera). That last driver we want to select will be under the Aux 1 category. We want to select _Astrometry_ from the drop-down window. This will enable the Astrometry plate-solver from within Ekos that will allow our telescope to automatically figure out where in the night sky it is pointed, saving us the time and hassle of doing a one, two, or three star calibration after setting up our mount. +My mount, a [SkyWatcher EQM-35 Pro][27], uses the *EQMod Mount* under *SkyWatcher* in the menu (this driver is also compatible with all SkyWatcher equatorial mounts, including the [EQ6-R Pro][28] and the [EQ8-R Pro][29]). For my Sony a6000 imaging camera, I choose the *Sony DSLR* under *DSLRs* under the CCD category. Under *Guider*, I choose the *QHY CCD* under *QHY* for my Orion Starshoot (and any QHY5 series camera). That last driver we want to select will be under the Aux 1 category. We want to select *Astrometry* from the drop-down window. This will enable the Astrometry plate-solver from within Ekos that will allow our telescope to automatically figure out where in the night sky it is pointed, saving us the time and hassle of doing a one, two, or three star calibration after setting up our mount. -You selected your drivers. Now it’s time to configure your telescope. Add new telescope profiles by clicking on the + button in the lower right. This is essential for computing field-of-view measurements so you can tell what your images will look like when you open the shutter. Once you click the + button, you will be presented with a form where you can enter the specifications of your telescope and guide scope. For my imaging telescope, I will enter Celestron into the _Vendor_ field, SS-80 into the _Model_ field, I will leave the _Driver_ field as None, _Type_ field as Refractor, _Aperture_ as 80mm, and _Focal Length_ as 400mm. +You selected your drivers. Now it’s time to configure your telescope. Add new telescope profiles by clicking on the + button in the lower right. This is essential for computing field-of-view measurements so you can tell what your images will look like when you open the shutter. Once you click the + button, you will be presented with a form where you can enter the specifications of your telescope and guide scope. For my imaging telescope, I will enter Celestron into the *Vendor* field, SS-80 into the *Model* field, I will leave the *Driver* field as None, *Type* field as Refractor, *Aperture* as 80mm, and *Focal Length* as 400mm. ![][30] -After you enter the data, hit the _Save_ button. You will see the data you just entered appear in the left window with an index number of 1 next to it. Now you can go about entering the specs for your guide scope following the steps above. Once you hit save here, the guide scope will also appear in the left window with an index number of 2. Once all of your scopes are entered, close this window. Now select your _Primary_ and _Guide_ telescopes from the drop-down window. +After you enter the data, hit the *Save* button. You will see the data you just entered appear in the left window with an index number of 1 next to it. Now you can go about entering the specs for your guide scope following the steps above. Once you hit save here, the guide scope will also appear in the left window with an index number of 2. Once all of your scopes are entered, close this window. Now select your *Primary* and *Guide* telescopes from the drop-down window. ![][31] -After all that work, everything should be correctly configured! Click the _Close_ button and complete the final bit of setup. +After all that work, everything should be correctly configured! Click the *Close* button and complete the final bit of setup. ### Starting your capture equipment -This last step before you can start taking images should be easy enough. Click the _Play_ button under Start & Stop Ekos to connect to your equipment. +This last step before you can start taking images should be easy enough. Click the *Play* button under Start & Stop Ekos to connect to your equipment. ![][32] @@ -166,26 +146,23 @@ You will be greeted with a screen that looks similar to this: ![][33] -When you click on the tabs at the top of the screen, they should all show a green dot next to _Connection_, indicating that they are connected to your system. On my setup, the baud rate for my mount (the EQMod Mount tab) is set incorrectly, and so the mount is not connected. +When you click on the tabs at the top of the screen, they should all show a green dot next to *Connection*, indicating that they are connected to your system. On my setup, the baud rate for my mount (the EQMod Mount tab) is set incorrectly, and so the mount is not connected. ![][34] -This is an easy fix; click on the _EQMod Mount_ tab, then the _Connection_ sub-tab, and then change the baud rate from 9600 to 115200. Now is a good time to ensure the serial port under _Ports_ is the correct serial port for your mount. You can check which port the system has mounted your device on by running the command: -``` +This is an easy fix; click on the *EQMod Mount* tab, then the *Connection* sub-tab, and then change the baud rate from 9600 to 115200. Now is a good time to ensure the serial port under *Ports* is the correct serial port for your mount. You can check which port the system has mounted your device on by running the command: ``` - ls /dev -``` | grep USB ``` -You should see _ttyUSB0_. If there is more than one USB-serial device plugged in at a time, you will see more than one ttyUSB port, with an incrementing following number. To figure out which port is correct. unplug your mount and run the command again. +You should see *ttyUSB0*. If there is more than one USB-serial device plugged in at a time, you will see more than one ttyUSB port, with an incrementing following number. To figure out which port is correct. unplug your mount and run the command again. -Now click on the _Main Control_ sub-tab, click _Connect_ again, and wait for the mount to connect. It might take a few seconds, be patient and it should connect. +Now click on the *Main Control* sub-tab, click *Connect* again, and wait for the mount to connect. It might take a few seconds, be patient and it should connect. -The last thing to do is set the sensor and pixel size parameters for my camera. Under the _Sony DSLR Alpha-A6000 (Control)_ tab, select the _Image Info_ sub-tab. This is where you can enter your sensor specifications; if you don’t know them, a quick search on the internet will bring you your sensor’s maximum resolution as well as pixel pitch. Enter this data into the right-side boxes, then press the _Set_ button to load them into the left boxes and save them into memory. Hit the _Close_ button when you are done. +The last thing to do is set the sensor and pixel size parameters for my camera. Under the *Sony DSLR Alpha-A6000 (Control)* tab, select the *Image Info* sub-tab. This is where you can enter your sensor specifications; if you don’t know them, a quick search on the internet will bring you your sensor’s maximum resolution as well as pixel pitch. Enter this data into the right-side boxes, then press the *Set* button to load them into the left boxes and save them into memory. Hit the *Close* button when you are done. ![][35] @@ -198,14 +175,14 @@ Your equipment is ready to use. In the next article, you will learn how to captu via: https://fedoramagazine.org/astrophotography-with-fedora-astronomy-lab-setting-up/ 作者:[Geoffrey Marr][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://fedoramagazine.org/author/coremodule/ -[b]: https://github.com/lujun9972 +[b]: https://github.com/lkxed [1]: https://fedoramagazine.org/wp-content/uploads/2021/02/astrophotography-setup-2-816x345.jpg [2]: https://fedoramagazine.org/wp-content/uploads/2020/11/IMG_4151-768x1024.jpg [3]: https://labs.fedoraproject.org/en/astronomy/ diff --git a/sources/tech/20210226 Navigate your FreeDOS system.md b/sources/tech/20210226 Navigate your FreeDOS system.md index 9397e73e2b..c80a601bbb 100644 --- a/sources/tech/20210226 Navigate your FreeDOS system.md +++ b/sources/tech/20210226 Navigate your FreeDOS system.md @@ -1,15 +1,16 @@ -[#]: subject: (Navigate your FreeDOS system) -[#]: via: (https://opensource.com/article/21/2/freedos-dir) -[#]: author: (Kevin O'Brien https://opensource.com/users/ahuka) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Navigate your FreeDOS system" +[#]: via: "https://opensource.com/article/21/2/freedos-dir" +[#]: author: "Kevin O'Brien https://opensource.com/users/ahuka" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Navigate your FreeDOS system ====== Master the DIR command to navigate your way around FreeDOS. + ![A map with a route highlighted][1] [FreeDOS][2] is an open source implementation of DOS. It's not a remix of Linux, and it is compatible with the operating system that introduced many people to personal computing. This makes it an important resource for running legacy applications, playing retro games, updating firmware on motherboards, and experiencing a little bit of living computer history. In this article, I'll look at some of the essential commands used to navigate a FreeDOS system. @@ -22,7 +23,6 @@ There are many reasons not to work exclusively in your root directory. First of The FreeDOS `CD` command changes your current working subdirectory to another subdirectory. Imagine a computer with the following directory structure: - ``` C:\   \LETTERS\   @@ -34,48 +34,43 @@ C:\   \SCHOOL\ ``` -You start in the `C:\` directory, so to navigate to your love letter directory, you can use `CD`: - +You start in the `C:\` directory, so to navigate to your love letter directory, you can use `CD` : ``` -`C:\>CD \LETTERS\LOVE\` +C:\>CD \LETTERS\LOVE\ ``` -To navigate to your `\LETTERS\BUSINESS` directory, you must specify the path to your business letters from a common fixed point on your filesystem. The most reliable starting location is `C:\`, because it's where _everything_ on your computer is stored. - +To navigate to your `\LETTERS\BUSINESS` directory, you must specify the path to your business letters from a common fixed point on your filesystem. The most reliable starting location is `C:\`, because it's where *everything* on your computer is stored. ``` -`C:\LETTERS\LOVE\>CD C:\LETTERS\BUSINESS` +C:\LETTERS\LOVE\>CD C:\LETTERS\BUSINESS ``` #### Navigating with dots -There's a useful shortcut for navigating your FreeDOS system, which takes the form of dots. Two dots (`..`) tell FreeDOS you want to move "back" or "down" in your directory tree. For instance, the `LETTERS` directory in this example system contains one subdirectory called `LOVE` and another called `BUSINESS`. If you're in `LOVE` currently, and you want to step back and change over to `BUSINESS`, you can just use two dots to represent that move: - +There's a useful shortcut for navigating your FreeDOS system, which takes the form of dots. Two dots (`..` ) tell FreeDOS you want to move "back" or "down" in your directory tree. For instance, the `LETTERS` directory in this example system contains one subdirectory called `LOVE` and another called `BUSINESS`. If you're in `LOVE` currently, and you want to step back and change over to `BUSINESS`, you can just use two dots to represent that move: ``` -C:\LETTERS\LOVE\>CD ..\BUSINESS -C:\LETTERS\BUSINESS\> +C:\LETTERS\LOVE\>CD ..\BUSINESS +C:\LETTERS\BUSINESS\> ``` To get all the way back to your root directory, just use the right number of dots: - ``` -C:\LETTERS\BUSINESS\: CD ..\\.. -C:\> +C:\LETTERS\BUSINESS\: CD ..\.. +C:\> ``` #### Navigational shortcuts -There are some shortcuts for navigating directories, too.  +There are some shortcuts for navigating directories, too. To get back to the root directory from wherever you are: - ``` -C:\LETTERS\BUSINESS\>CD \ -C:\> +C:\LETTERS\BUSINESS\>CD \ +C:\> ``` ### List directory contents with DIR @@ -84,9 +79,8 @@ The `DIR` command displays the contents of a subdirectory, but it can also funct `DIR` displays the contents of the current working subdirectory, and with an optional path argument, it displays the contents of some other subdirectory: - ``` -C:\LETTERS\BUSINESS\>DIR +C:\LETTERS\BUSINESS\>DIR MTG_CARD    TXT  1344 12-29-2020  3:06p NON         TXT   381 12-31-2020  8:12p SOMUCHFO    TXT   889 12-31-2020  9:36p @@ -97,49 +91,49 @@ TEST        BAT    32 01-03-2021 10:34a With a special attribute argument, you can use `DIR` to find and filter out certain kinds of files. There are 10 attributes you can specify: -`H` | Hidden ----|--- -`-H` | Not hidden -`S` | System -`-S` | Not system -`A` | Archivable files -`-A` | Already archived files -`R` | Read-only files -`-R` | Not read-only (i.e., editable and deletable) files -`D` | Directories only, no files -`-D` | Files only, no directories +| - | - | +| :- | :- | +| H | Hidden | +| -H | Not hidden | +| S | System | +| -S | Not system | +| A | Archivable files | +| -A | Already archived files | +| R | Read-only files | +| -R | Not read-only (i.e., editable and deletable) files | +| D | Directories only, no files | +| -D | Files only, no directories | These special designators are denoted with `/A:` followed by the attribute letter. You can enter as many attributes as you like, in order, without leaving a space between them. For instance, to view only hidden directories: - ``` -C:\MEMOS\>DIR /A:HD -.OBSCURE    <DIR>  01-08-2021 10:10p +C:\MEMOS\>DIR /A:HD +.OBSCURE      01-08-2021 10:10p ``` #### Listing in order You can also display the results of your `DIR` command in a specific order. The syntax for this is very similar to using attributes. You leave a space after the `DIR` command or after any other switches, and enter `/O:` followed by a selection. There are 12 possible selections: -`N` | Alphabetical order by file name ----|--- -`-N` | Reverse alphabetical order by file name -`E` | Alphabetical order by file extension -`-E` | Reverse alphabetical order by file extension -`D` | Order by date and time, earliest first -`-D` | Order by date and time, latest first -`S` | By size, increasing -`-S` | By size, decreasing -`C` | By [DoubleSpace][3] compression ratio, lowest to highest (version 6.0 only) -`-C` | By DoubleSpace compression ratio, highest to lowest (version 6.0 only) -`G` | Group directories before other files -`-G` | Group directories after other files +| - | - | +| :- | :- | +| N | Alphabetical order by file name | +| -N | Reverse alphabetical order by file name | +| E | Alphabetical order by file extension | +| -E | Reverse alphabetical order by file extension | +| D | Order by date and time, earliest first | +| -D | Order by date and time, latest first | +| S | By size, increasing | +| -S | By size, decreasing | +| C | By DoubleSpace compression ratio, lowest to highest (version 6.0 only) | +| -C | By DoubleSpace compression ratio, highest to lowest (version 6.0 only) | +| G | Group directories before other files | +| -G | Group directories after other files | To see your directory listing grouped by file extension: - ``` -C:\>DIR /O:E +C:\>DIR /O:E TEST        BAT 01-10-2021 7:11a TIMER       EXE 01-11-2021 6:06a AAA         TXT 01-09-2021 4:27p @@ -149,9 +143,8 @@ This returns a list of files in alphabetical order of file extension. If you're looking for a file you were working on yesterday, you can order by modification time: - ``` -C:\>DIR /O:-D +C:\>DIR /O:-D AAA         TXT 01-09-2021 4:27p TEST        BAT 01-10-2021 7:11a TIMER       EXE 01-11-2021 6:06a @@ -163,12 +156,11 @@ If you need to clean up your hard drive because you're running out of space, you You can use multiple arguments in a `DIR` command to achieve fairly complex results. Remember that each argument has to be separated from its neighbors by a blank space on each side: - ``` -`C:\>DIR /A:A /O:D /P` +C:\>DIR /A:A /O:D /P ``` -This command selects only those files that have not yet been backed up (`/A:A`), orders them by date, beginning with the oldest (`/O:D`), and displays the results on your monitor one page at a time (`/P`). So you can really do some slick stuff with the `DIR` command once you've mastered these arguments and switches. +This command selects only those files that have not yet been backed up (`/A:A` ), orders them by date, beginning with the oldest (`/O:D` ), and displays the results on your monitor one page at a time (`/P` ). So you can really do some slick stuff with the `DIR` command once you've mastered these arguments and switches. ### Terminology @@ -180,24 +172,21 @@ If it has a slash in front, it is a switch. So all switches are also arguments, FreeDOS can be very different from what you're used to if you're used to Windows or macOS, and it can be just different enough if you're used to Linux. A little practice goes a long way, though, so try some of these on your own. You can always get a help message with the `/?` switch. The best way to get comfortable with these commands is to practice using them. -* * * - -_Some of the information in this article was previously published in [DOS lesson 12: Expert DIR use][4] (CC BY-SA 4.0)._ +*Some of the information in this article was previously published in [DOS lesson 12: Expert DIR use][3] (CC BY-SA 4.0).* -------------------------------------------------------------------------------- via: https://opensource.com/article/21/2/freedos-dir 作者:[Kevin O'Brien][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://opensource.com/users/ahuka -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/map_route_location_gps_path.png?itok=RwtS4DsU (A map with a route highlighted) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/map_route_location_gps_path.png [2]: https://www.freedos.org/ -[3]: https://en.wikipedia.org/wiki/DriveSpace -[4]: https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-12-expert-dir-use/ +[3]: https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-12-expert-dir-use/ diff --git a/sources/tech/20210301 5 tips for choosing an Ansible collection that-s right for you.md b/sources/tech/20210301 5 tips for choosing an Ansible collection that-s right for you.md index 5d7b220c05..1b9bd5eea2 100644 --- a/sources/tech/20210301 5 tips for choosing an Ansible collection that-s right for you.md +++ b/sources/tech/20210301 5 tips for choosing an Ansible collection that-s right for you.md @@ -1,17 +1,19 @@ -[#]: subject: (5 tips for choosing an Ansible collection that's right for you) -[#]: via: (https://opensource.com/article/21/3/ansible-collections) -[#]: author: (Tadej Borovšak https://opensource.com/users/tadeboro) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "5 tips for choosing an Ansible collection that's right for you" +[#]: via: "https://opensource.com/article/21/3/ansible-collections" +[#]: author: "Tadej Borovšak https://opensource.com/users/tadeboro" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " 5 tips for choosing an Ansible collection that's right for you ====== -Try these strategies to find and vet collections of Ansible plugins and -modules before you install them. -![Woman sitting in front of her computer][1] +Try these strategies to find and vet collections of Ansible plugins and modules before you install them. + +![Women in computing and open source][1] + +Image by: Ray Smith In August 2020, Ansible issued its first release since the developers split the core functionality from the vast majority of its modules and plugins. A few [basic Ansible modules][2] remain part of core Ansible—modules for templating configuration files, managing services, and installing packages. All the other modules and plugins found their homes in dedicated [Ansible collections][3]. @@ -25,7 +27,6 @@ With the introduction of Ansible collections, [Ansible Galaxy][7] became the cen Ansible comes bundled with the `ansible-galaxy` tool for installing collections. Once you know what Ansible collection you want to install, things are relatively straightforward: Run the installation command listed on the Ansible Galaxy page. Ansible takes care of downloading and installing it. For example: - ``` $ ansible-galaxy collection install sensu.sensu_go Process install dependency map @@ -44,7 +45,7 @@ The ability to install Ansible collections offered a lot more control over the c Now users are solely responsible for the quality of content they use to build Ansible playbooks. But how can you separate high-quality content from the rest? Here are five things to check when evaluating an Ansible collection. -#### 1\. Documentation +#### 1. Documentation Once you find a potential candidate on Ansible Galaxy, check its documentation first. In an ideal world, each Ansible collection would have a dedicated documentation site. For example, the [Sensu Go][8] and [F5 Networks][9] Ansible collections have them. Most other Ansible collections come only with a README file, but this will change for the better once the documentation tools mature. @@ -52,10 +53,9 @@ The Ansible collection's documentation should contain at least a quickstart tuto Another essential part of the documentation is a detailed module, plugin, and role reference guide. Collection authors do not always publish those guides on the internet, but they should always be accessible with the `ansible-doc` tool. - ``` $ ansible-doc community.sops.sops_encrypt -> SOPS_ENCRYPT    (/home/tadej/.ansible/collections/ansible> +> SOPS_ENCRYPT    (/home/tadej/.ansible/collections/ansible>         Allows to encrypt binary data (Base64 encoded), text         data, JSON or YAML data with sops. @@ -63,7 +63,7 @@ $ ansible-doc community.sops.sops_encrypt   * This module is maintained by The Ansible Community OPTIONS (= is mandatory): -\- attributes +- attributes         The attributes the resulting file or directory should         have.         To get supported flags look at the man page for @@ -78,18 +78,17 @@ OPTIONS (= is mandatory): ... ``` -#### 2\. Playbook readability +#### 2. Playbook readability An Ansible playbook should serve as a human-readable description of the desired state. To achieve that, modules from the Ansible collection under evaluation should have a consistent user interface and descriptive parameter names. For example, if Ansible modules interact with a web service, authentication parameters should be separated from the rest. And all modules should use the same authentication parameters if possible. - ``` -\- name: Create a check that runs every 30 seconds +- name: Create a check that runs every 30 seconds   sensu.sensu_go.check: -    auth: &auth -      url: +    auth: &auth +      url: https://my.sensu.host:8080       user: demo       password: demo-pass     name: check @@ -97,36 +96,34 @@ For example, if Ansible modules interact with a web service, authentication para     interval: 30     publish: true -\- name: Create a filter +- name: Create a filter   sensu.sensu_go.filter: -    # Reuse the authentication data from before +     # Reuse the authentication data from before     auth: *auth     name: filter     action: deny     expressions: -      - event.check.interval == 10 +       - event.check.interval == 10       - event.check.occurrences == 1 ``` -#### 3\. Basic functionality +#### 3. Basic functionality Before you start using third-party Ansible content in production, always check each Ansible module's basic functionality. Probably the most critical property to look for is the result. Ansible modules and roles that enforce a state are much easier to use than their action-executing counterparts. This is because you can update your Ansible playbook and rerun it without risking a significant breakage. - ``` -\- name: Command module executes an action -> fails on re-run +- name: Command module executes an action -> fails on re-run   ansible.builtin.command: useradd demo -\- name: User module enforces a state -> safe to re-run +- name: User module enforces a state -> safe to re-run   ansible.builtin.user:     name: demo ``` You should also expect support for [check mode][12], which simulates the change without making it. If you combine check mode with state enforcement, you get a configuration drift detector for free. - ``` $ ansible-playbook --check playbook.yaml @@ -142,11 +139,11 @@ host        : ok=5    changed=2    unreachable=0    failed=0                       skipped=3        rescued=0   ignored=0 ``` -#### 4\. Implementation robustness +#### 4. Implementation robustness A robustness check is a bit harder to perform if you've never developed an Ansible module or role before. Checking the continuous integration/continuous delivery (CI/CD) configuration files should give you a general idea of what is tested. Finding `ansible-test` and `molecule` commands in the test suite is an excellent sign. -#### 5\. Maintenance +#### 5. Maintenance During your evaluation, you should also take a look at the issue tracker and development activity. Finding old issues with no response from maintainers is one sign of a poorly maintained Ansible collection. @@ -163,15 +160,15 @@ If you are thinking about creating your own Ansible Collection, you can download via: https://opensource.com/article/21/3/ansible-collections 作者:[Tadej Borovšak][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://opensource.com/users/tadeboro -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_3.png?itok=qw2A18BM (Woman sitting in front of her computer) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/OSDC_women_computing_3.png [2]: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ [3]: https://docs.ansible.com/ansible/latest/collections/index.html#list-of-collections [4]: https://galaxy.ansible.com/sensu/sensu_go diff --git a/sources/tech/20210301 Build a home thermostat with a Raspberry Pi.md b/sources/tech/20210301 Build a home thermostat with a Raspberry Pi.md index 434e6a5796..35ec8b7951 100644 --- a/sources/tech/20210301 Build a home thermostat with a Raspberry Pi.md +++ b/sources/tech/20210301 Build a home thermostat with a Raspberry Pi.md @@ -1,36 +1,34 @@ -[#]: subject: (Build a home thermostat with a Raspberry Pi) -[#]: via: (https://opensource.com/article/21/3/thermostat-raspberry-pi) -[#]: author: (Joe Truncale https://opensource.com/users/jtruncale) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Build a home thermostat with a Raspberry Pi" +[#]: via: "https://opensource.com/article/21/3/thermostat-raspberry-pi" +[#]: author: "Joe Truncale https://opensource.com/users/jtruncale" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Build a home thermostat with a Raspberry Pi ====== -The ThermOS project is an answer to the many downsides of off-the-shelf -smart thermostats. +The ThermOS project is an answer to the many downsides of off-the-shelf smart thermostats. + ![Orange home vintage thermostat][1] -My wife and I moved into a new home in October 2020. As soon as it started getting cold, we realized some shortcomings of the home's older heating system (including one heating zone that was _always_ on). We had Nest thermostats in our previous home, and the current setup was not nearly as convenient. There are multiple thermostats in our house, and some had programmed heating schedules, others had different schedules, some had none at all. +Image by: Photo by [Moja Msanii][2] on [Unsplash][3] -![Old thermostats][2] +My wife and I moved into a new home in October 2020. As soon as it started getting cold, we realized some shortcomings of the home's older heating system (including one heating zone that was *always* on). We had Nest thermostats in our previous home, and the current setup was not nearly as convenient. There are multiple thermostats in our house, and some had programmed heating schedules, others had different schedules, some had none at all. -The home's previous owner left notes explaining how some of the thermostats worked. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Old thermostats][4] + +The home's previous owner left notes explaining how some of the thermostats worked. (Joseph Truncale, CC BY-SA 4.0) It was time for a change, but the house has some constraints: - * It was built in the late 1960s with a renovation during the '90s. - * The heat is hydronic (hot water baseboard). - * It has six thermostats for the six heating zones. - * There are only two wires that go to each thermostat for heat (red and white). +* It was built in the late 1960s with a renovation during the '90s. +* The heat is hydronic (hot water baseboard). +* It has six thermostats for the six heating zones. +* There are only two wires that go to each thermostat for heat (red and white). - - -![Furnace valves][4] - -Taco (pronounced TAY-KO) zone valves at the furnace. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Furnace valves][5] ### To buy or to build? @@ -38,36 +36,29 @@ I wanted "smart" thermostat control for all of the heat zones (schedules, automa **Option 1: A Nest or Ecobee** - * It's expensive: No smart thermostat can handle multiple zones, so I would need one for each zone (~$200*6 = $1,200). - * It's difficult: I would have to rerun the thermostat wire to get the infamous [C wire][5], which enables continuous power to the thermostat. The wires are 20 to 100 feet each, in-wall, and _might_ be stapled to the studs. +* It's expensive: No smart thermostat can handle multiple zones, so I would need one for each zone (~$200*6 = $1,200). +* It's difficult: I would have to rerun the thermostat wire to get the infamous [C wire][6], which enables continuous power to the thermostat. The wires are 20 to 100 feet each, in-wall, and might be stapled to the studs. +**Option 2: A battery-powered thermostat** such as the [Sensi WiFi thermostat][7] +* The batteries last only a month or two. +* It's not HomeKit-compatible in battery-only mode. -**Option 2: A battery-powered thermostat** such as the [Sensi WiFi thermostat][6] +**Option 3: A commercial-off-the-shelf thermostat**, but only one exists (kind of): [Honeywell's TrueZONE][8] - * The batteries last only a month or two. - * It's not HomeKit-compatible in battery-only mode. +* It's old and poorly supported (it was released in 2008). +* It's expensive—more than $300 for just the controller, and you need a [RedLINK gateway][9] for a shoddy app to work. - - -**Option 3: A commercial-off-the-shelf thermostat**, but only one exists (kind of): [Honeywell's TrueZONE][7]  - - * It's old and poorly supported (it was released in 2008). - * It's expensive—more than $300 for just the controller, and you need a [RedLINK gateway][8] for a shoddy app to work. - - - -And the winner is…  +And the winner is… **Option 4: Build my own!** -I decided to build my own multizone smart thermostat, which I named [ThermOS][9]. - - * It's centralized at the furnace (you need one device, not six). - * It uses the existing in-wall thermostat wires. - * It's HomeKit compatible, complete with automation, scheduling, home/away, etc. - * Anddddd it's… fun? Yeah, fun… I think. +I decided to build my own multizone smart thermostat, which I named [ThermOS][10]. +* It's centralized at the furnace (you need one device, not six). +* It uses the existing in-wall thermostat wires. +* It's HomeKit compatible, complete with automation, scheduling, home/away, etc. +* Anddddd it's… fun? Yeah, fun… I think. ### The ThermOS hardware @@ -75,79 +66,62 @@ I knew that I wanted to use a Raspberry Pi. Since they've gotten so inexpensive, Here's a full list of the parts I used: -Name | Quantity | Price ----|---|--- -Raspberry Pi 4 Model B 2GB | 1 | $29.99 -Raspberry Pi 4 official 15W power supply | 1 | $6.99 -Inland 400 tie-point breadboard | 1 | $2.99 -Inland 8 channel 5V relay module for Arduino | 1 | $8.99 -Inland DuPont jumper wire 20cm (3 pack) | 1 | $4.99 -DS18B20 temperature sensor (genuine) from Mouser.com | 6 | $6.00 -3-pin screw terminal blocks (40 pack) | 1 | $7.99 -RPi GPIO terminal block breakout board module for Raspberry Pi | 1 | $17.99 -Alligator clip test leads (10 pack) | 1 | $5.89 -Southwire 18/2 thermostat wire (50ft) | 1 | $10.89 -Shrinkwrap | 1 | $4.99 -Solderable breadboard (5 pack) | 1 | $11.99 -PCB mounting brackets (50 pack) | 1 | $7.99 -Plastic housing/enclosure | 1 | $27.92 +| Name | Quantity | Price | +| :- | :- | :- | +| Raspberry Pi 4 Model B 2GB | 1 | $29.99 | +| Raspberry Pi 4 official 15W power supply | 1 | $6.99 | +| Inland 400 tie-point breadboard | 1 | $2.99 | +| Inland 8 channel 5V relay module for Arduino | 1 | $8.99 | +| Inland DuPont jumper wire 20cm (3 pack) | 1 | $4.99 | +| DS18B20 temperature sensor (genuine) from Mouser.com | 6 | $6.00 | +| 3-pin screw terminal blocks (40 pack) | 1 | $7.99 | +| RPi GPIO terminal block breakout board module for Raspberry Pi | 1 | $17.99 | +| Alligator clip test leads (10 pack) | 1 | $5.89 | +| Southwire 18/2 thermostat wire (50ft) | 1 | $10.89 | +| Shrinkwrap | 1 | $4.99 | +| Solderable breadboard (5 pack) | 1 | $11.99 | +| PCB mounting brackets (50 pack) | 1 | $7.99 | +| Plastic housing/enclosure | 1 | $27.92 | -I began drawing out the hardware diagram on [draw.io][10] and realized I lacked some crucial knowledge about the furnace. I opened the side panel and found the step-down transformer that takes the 120V electrical line and makes it 24V for the heating system. If your heating system is anything like mine, you'll see a lot of jumper wires between the Taco zone valves. Terminal 3 on the Taco is jumped across all of my zone valves. This is because it doesn't matter how many valves are on/open—it just controls the circulator pump. If any combination of one to five valves is open, it should be on; if no valves are open, it should be off… simple! +I began drawing out the hardware diagram on [draw.io][11] and realized I lacked some crucial knowledge about the furnace. I opened the side panel and found the step-down transformer that takes the 120V electrical line and makes it 24V for the heating system. If your heating system is anything like mine, you'll see a lot of jumper wires between the Taco zone valves. Terminal 3 on the Taco is jumped across all of my zone valves. This is because it doesn't matter how many valves are on/open—it just controls the circulator pump. If any combination of one to five valves is open, it should be on; if no valves are open, it should be off… simple! -![Furnace wiring architecture][11] - -ThermOS architecture using one zone. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Furnace wiring architecture][12] At its core, a thermostat is just a type of switch. Once the thermistor (temp sensor) inside the thermostat detects a lower temperature, the switch closes and completes the 24V circuit. Instead of having a thermostat in every room, this project keeps all of them right next to the furnace so that all six-zone valves can be controlled by a relay module using six of the eight relays. The Raspberry Pi acts as the brains of the thermostat and controls each relay independently. -![Manually setting relays using Raspberry Pi and Python][12] - -Manually setting the relays using the Raspberry Pi and Python. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Manually setting relays using Raspberry Pi and Python][13] The next problem was how to get temperature readings from each room. I could have a wireless temperature sensor in each room running on an Arduino or Raspberry Pi, but that can get expensive and complicated. Instead, I wanted to reuse the existing thermostat wire in the walls but purely for temperature sensors. -The "1-wire" [DS18B20][13] temperature sensor appeared to fit the bill: +The "1-wire" [DS18B20][14] temperature sensor appeared to fit the bill: - * It has an accuracy of +/- 0.5°C or 0.9°F. - * It uses the "1-wire" protocol for data. - * Most importantly, the DS18B20 can use "[parasitic power][14]" mode where it needs just two wires for power and data. Just a heads up… almost all of the DS18B20s out there are [counterfeit][15]. I purchased a few (hoping they were genuine), but they wouldn't work when I tried to use parasitic power. I then bought real ones from [Mouser.com][16], and they worked like a charm! +* It has an accuracy of +/- 0.5°C or 0.9°F. +* It uses the "1-wire" protocol for data. +* Most importantly, the DS18B20 can use "[parasitic power][15]" mode where it needs just two wires for power and data. Just a heads up… almost all of the DS18B20s out there are [counterfeit][16]. I purchased a few (hoping they were genuine), but they wouldn't work when I tried to use parasitic power. I then bought real ones from [Mouser.com][17], and they worked like a charm! +![Temperature sensors][18] +Starting with a breadboard and all the components locally, I started writing code to interact with all of it. Once I proved out the concept, I added the existing in-wall thermostat wire into the mix. I got consistent readings with that setup, so I set out to make them a bit more polished. With help from my [dad][19], the self-proclaimed "just good enough" solderer, we soldered leads to the three-pin screw terminals (to avoid overheating the sensor) and then attached the sensor into the terminals. Now the sensors can be attached with wire nuts to the existing in-wall wiring. -![Temperature sensors][17] - -Three DS18B20s connected using parasitic power on the same GPIO bus. (Joseph Truncale, [CC BY-SA 4.0][3]) - -Starting with a breadboard and all the components locally, I started writing code to interact with all of it. Once I proved out the concept, I added the existing in-wall thermostat wire into the mix. I got consistent readings with that setup, so I set out to make them a bit more polished. With help from my [dad][18], the self-proclaimed "just good enough" solderer, we soldered leads to the three-pin screw terminals (to avoid overheating the sensor) and then attached the sensor into the terminals. Now the sensors can be attached with wire nuts to the existing in-wall wiring. - -![Attaching temperature sensors][19] - -The DS18B20s are attached to the old thermostat location using the existing wires. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Attaching temperature sensors][20] I'm still in the process of "prettifying" my temperature sensor wall mounts, but I've gone through a few 3D printing revisions, and I think I'm almost there. -![Wall mounts][20] - -I started with a Nest-style mount and made my way to a flush-mount style. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Wall mounts][21] ### The ThermOS software -As usual, writing the logic wasn't the hard part. However, deciding on the application architecture and framework was a confusing, multi-day process. I started out evaluating open source projects like [PiHome][21], but it relied on specific hardware _and_ was written in PHP. I'm a Python fan and decided to start from scratch and write my own REST API. +As usual, writing the logic wasn't the hard part. However, deciding on the application architecture and framework was a confusing, multi-day process. I started out evaluating open source projects like [PiHome][22], but it relied on specific hardware *and* was written in PHP. I'm a Python fan and decided to start from scratch and write my own REST API. -Since HomeKit integration was so important, I figured I would eventually write a [HomeBridge][22] plugin to integrate it. I didn't realize that there was an entire Python HomeKit framework called [HAP-Python][23] that implements the accessory protocol. It helped me get a proof of concept running and controlled through my iPhone's Home app within 30 minutes. +Since HomeKit integration was so important, I figured I would eventually write a [HomeBridge][23] plugin to integrate it. I didn't realize that there was an entire Python HomeKit framework called [HAP-Python][24] that implements the accessory protocol. It helped me get a proof of concept running and controlled through my iPhone's Home app within 30 minutes. -![ThermOS HomeKit integration][24] +![ThermOS HomeKit integration][25] -Initial version of Apple HomeKit integration, with help from the HAP-Python framework. (Joseph Truncale, [CC BY-SA 4.0][3]) - -![ThermOS software architecture][25] - -ThermOS software architecture (Joseph Truncale, [CC BY-SA 4.0][3]) +![ThermOS software architecture][26] The rest of the "temp" logic is relatively straightforward, but I do want to highlight a piece that I initially missed. My code was running for a few days, and I was working on the hardware, when I noticed that my relays were turning on and off every few seconds. This "short-cycling" isn't necessarily harmful, but it certainly isn't efficient. To avoid that, I added some thresholding to make sure the heat toggles only when it's +/- 0.5C°. -Here is the threshold logic (you can see the [rubber-duck debugging][26] in the comments): - +Here is the threshold logic (you can see the [rubber-duck debugging][27] in the comments): ``` # check that we want heat @@ -155,7 +129,7 @@ if self.target_state.value == 1:     # if heat relay is already on, check if above threshold     # if above, turn off .. if still below keep on     if GPIO.input(self.relay_pin): -        if self.current_temp.value - self.target_temp.value >= 0.5: +        if self.current_temp.value - self.target_temp.value >= 0.5:             status = 'HEAT ON - TEMP IS ABOVE TOP THRESHOLD, TURNING OFF'             GPIO.output(self.relay_pin, GPIO.LOW)         else: @@ -163,96 +137,87 @@ if self.target_state.value == 1:             GPIO.output(self.relay_pin, GPIO.HIGH)     # if heat relay is not already on, check if below threshold     elif not GPIO.input(self.relay_pin): -        if self.current_temp.value - self.target_temp.value <= -0.5: +        if self.current_temp.value - self.target_temp.value <= -0.5:             status = 'HEAT OFF - TEMP IS BELOW BOTTOM THRESHOLD, TURNING ON'             GPIO.output(self.relay_pin, GPIO.HIGH)         else:           status = 'HEAT OFF - KEEPING OFF' ``` -![Thresholding][27] - -Thresholding allows longer stretches of time where the heat is off. (Joseph Truncale, [CC BY-SA 4.0][3]) +![Thresholding][28] And I achieved my ultimate goal—to be able to control all of it from my phone. -![ThermOS as a HomeKit Hub][28] - -ThermOS as a HomeKit Hub (Joseph Truncale, [CC BY-SA 4.0][3]) +![ThermOS as a HomeKit Hub][29] ### Putting my ThermOS in a lunchbox My proof of concept was pretty messy. -![Initial ThermOS setup][29] +![Initial ThermOS setup][30] -ThermOS controlling a single zone (before packaging it) (Joseph Truncale, [CC BY-SA 4.0][3]) - -With the software and general hardware design in place, I started figuring out how to package all of the components in a more permanent and polished form. One of my main concerns for a permanent installation was to use a breadboard with DuPont jumper wires. I ordered some [solderable breadboards][30] and a [screw terminal breakout board][31] (thanks [@arduima][32] for the Raspberry Pi GPIO pins). +With the software and general hardware design in place, I started figuring out how to package all of the components in a more permanent and polished form. One of my main concerns for a permanent installation was to use a breadboard with DuPont jumper wires. I ordered some [solderable breadboards][31] and a [screw terminal breakout board][32] (thanks [@arduima][33] for the Raspberry Pi GPIO pins). Here's what the solderable breadboard with mounts and enclosure looked like in progress. -![ThermOS hardware being packaged][33] - -Putting the ThermOS in a lunchbox. (Joseph Truncale, [CC BY-SA 4.0][3]) +![ThermOS hardware][34] And here it is, mounted in the boiler room. -![ThermOS mounted][34] - -ThermOS mounted (Joseph Truncale, [CC BY-SA 4.0][3]) +![ThermOS mounted][35] Now I just need to organize and label the wires, and then I can start swapping the remainder of the thermostats over to ThermOS. And I'll be on to my next project: ThermOS for my central air conditioning. -* * * +Image by: (Joseph Truncale, CC BY-SA 4.0) -_This originally appeared on [Medium][35] and is republished with permission._ +*This originally appeared on [Medium][36] and is republished with permission.* -------------------------------------------------------------------------------- via: https://opensource.com/article/21/3/thermostat-raspberry-pi 作者:[Joe Truncale][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://opensource.com/users/jtruncale -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/home-thermostat.jpg?itok=wuV1XL7t (Orange home vintage thermostat) -[2]: https://opensource.com/sites/default/files/uploads/oldthermostats.jpeg (Old thermostats) -[3]: https://creativecommons.org/licenses/by-sa/4.0/ -[4]: https://opensource.com/sites/default/files/uploads/furnacevalves.jpeg (Furnace valves) -[5]: https://smartthermostatguide.com/thermostat-c-wire-explained/ -[6]: https://www.amazon.com/Emerson-Thermostat-Version-Energy-Certified/dp/B01NB1OB0I -[7]: https://www.honeywellhome.com/us/en/products/air/forced-air-zone-panels/truezone-hz432-panel-hz432-u/ -[8]: https://www.amazon.com/Honeywell-Redlink-Enabled-Internet-THM6000R7001/dp/B0783HK9ZZ -[9]: https://github.com/truncj/thermos -[10]: http://draw.io/ -[11]: https://opensource.com/sites/default/files/uploads/furnacewiring.png (Furnace wiring architecture) -[12]: https://opensource.com/sites/default/files/uploads/settingrelays.gif (Manually setting relays using Raspberry Pi and Python) -[13]: https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf -[14]: https://learn.openenergymonitor.org/electricity-monitoring/temperature/DS18B20-temperature-sensing -[15]: https://github.com/cpetrich/counterfeit_DS18B20 -[16]: https://www.mouser.com/ -[17]: https://opensource.com/sites/default/files/uploads/tempsensors.png (Temperature sensors) -[18]: https://twitter.com/jofredrick -[19]: https://opensource.com/sites/default/files/uploads/attachingsensors.jpeg (Attaching temperature sensors) -[20]: https://opensource.com/sites/default/files/uploads/wallmount.jpeg (Wall mounts) -[21]: https://github.com/pihome-shc/pihome -[22]: https://github.com/homebridge/homebridge -[23]: https://github.com/ikalchev/HAP-python -[24]: https://opensource.com/sites/default/files/uploads/iphoneintegration.gif (ThermOS HomeKit integration) -[25]: https://opensource.com/sites/default/files/uploads/thermosarchitecture.png (ThermOS software architecture) -[26]: https://en.wikipedia.org/wiki/Rubber_duck_debugging -[27]: https://opensource.com/sites/default/files/uploads/thresholding.png (Thresholding) -[28]: https://opensource.com/sites/default/files/uploads/thermoshomekit.png (ThermOS as a HomeKit Hub) -[29]: https://opensource.com/sites/default/files/uploads/unpackaged.jpeg (Initial ThermOS setup) -[30]: https://www.amazon.com/gp/product/B07ZV8FWM4/r -[31]: https://www.amazon.com/gp/product/B084C69VSQ/ -[32]: https://twitter.com/dimitri_koshkin -[33]: https://opensource.com/sites/default/files/uploads/breadboard.png (ThermOS hardware being packaged) -[34]: https://opensource.com/sites/default/files/uploads/mounted.png (ThermOS mounted) -[35]: https://joetruncale.medium.com/thermos-d089e1c4974b +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/home-thermostat.jpg +[2]: https://unsplash.com/@mojamsanii?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/thermostat?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://opensource.com/sites/default/files/uploads/oldthermostats.jpeg +[5]: https://opensource.com/sites/default/files/uploads/furnacevalves.jpeg +[6]: https://smartthermostatguide.com/thermostat-c-wire-explained/ +[7]: https://www.amazon.com/Emerson-Thermostat-Version-Energy-Certified/dp/B01NB1OB0I +[8]: https://www.honeywellhome.com/us/en/products/air/forced-air-zone-panels/truezone-hz432-panel-hz432-u/ +[9]: https://www.amazon.com/Honeywell-Redlink-Enabled-Internet-THM6000R7001/dp/B0783HK9ZZ +[10]: https://github.com/truncj/thermos +[11]: http://draw.io/ +[12]: https://opensource.com/sites/default/files/uploads/furnacewiring.png +[13]: https://opensource.com/sites/default/files/uploads/settingrelays.gif +[14]: https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf +[15]: https://learn.openenergymonitor.org/electricity-monitoring/temperature/DS18B20-temperature-sensing +[16]: https://github.com/cpetrich/counterfeit_DS18B20 +[17]: https://www.mouser.com/ +[18]: https://opensource.com/sites/default/files/uploads/tempsensors.png +[19]: https://twitter.com/jofredrick +[20]: https://opensource.com/sites/default/files/uploads/attachingsensors.jpeg +[21]: https://opensource.com/sites/default/files/uploads/wallmount.jpeg +[22]: https://github.com/pihome-shc/pihome +[23]: https://github.com/homebridge/homebridge +[24]: https://github.com/ikalchev/HAP-python +[25]: https://opensource.com/sites/default/files/uploads/iphoneintegration.gif +[26]: https://opensource.com/sites/default/files/uploads/thermosarchitecture.png +[27]: https://en.wikipedia.org/wiki/Rubber_duck_debugging +[28]: https://opensource.com/sites/default/files/uploads/thresholding.png +[29]: https://opensource.com/sites/default/files/uploads/thermoshomekit.png +[30]: https://opensource.com/sites/default/files/uploads/unpackaged.jpeg +[31]: https://www.amazon.com/gp/product/B07ZV8FWM4/r +[32]: https://www.amazon.com/gp/product/B084C69VSQ/ +[33]: https://twitter.com/dimitri_koshkin +[34]: https://opensource.com/sites/default/files/uploads/breadboard.png +[35]: https://opensource.com/sites/default/files/uploads/mounted.png +[36]: https://joetruncale.medium.com/thermos-d089e1c4974b diff --git a/sources/tech/20210302 Learn Java with object orientation by building a classic Breakout game.md b/sources/tech/20210302 Learn Java by building a classic arcade game.md similarity index 58% rename from sources/tech/20210302 Learn Java with object orientation by building a classic Breakout game.md rename to sources/tech/20210302 Learn Java by building a classic arcade game.md index 121fe21b62..f5f43c98f4 100644 --- a/sources/tech/20210302 Learn Java with object orientation by building a classic Breakout game.md +++ b/sources/tech/20210302 Learn Java by building a classic arcade game.md @@ -1,37 +1,35 @@ -[#]: subject: (Learn Java with object orientation by building a classic Breakout game) -[#]: via: (https://opensource.com/article/21/3/java-object-orientation) -[#]: author: (Vaneska Sousa https://opensource.com/users/vaneska) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Learn Java by building a classic arcade game" +[#]: via: "https://opensource.com/article/21/3/java-object-orientation" +[#]: author: "Vaneska Sousa https://opensource.com/users/vaneska" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " -Learn Java with object orientation by building a classic Breakout game +Learn Java by building a classic arcade game ====== -Practice how to structure a project and write Java code while having fun -building a fun game. +Practice how to structure a project and write Java code while having fun building a fun game. + ![Learning and studying technology is the key to success][1] -As a second-semester student in systems and digital media at the Federal University of Ceará in Brazil, I was given the assignment to remake the classic Atari 2600 [Breakout game][2] from 1978. I am still in my infancy in learning software development, and this was a challenging experience. It was also a gainful one because I learned a lot, especially about applying object-oriented concepts. +Image by: [WOCinTech Chat][2], [CC BY 2.0][3] -![Breakout game][3] +As a second-semester student in systems and digital media at the Federal University of Ceará in Brazil, I was given the assignment to remake the classic Atari 2600 [Breakout game][4] from 1978. I am still in my infancy in learning software development, and this was a challenging experience. It was also a gainful one because I learned a lot, especially about applying object-oriented concepts. -(Vaneska Karen, [CC BY-SA 4.0][4]) +![Breakout game][5] I'll explain how I accomplished this challenge, and if you follow the step-by-step instructions, at the end of this article, you will have the first pieces of your own classic Breakout game. ### Choosing Java and TotalCross -Several of my courses use [Processing][5], a software engine that uses [Java][6]. Java is a great language for learning programming concepts, in part because it's a strongly typed language. +Several of my courses use [Processing][6], a software engine that uses [Java][7]. Java is a great language for learning programming concepts, in part because it's a strongly typed language. Despite being free to choose any language or framework for my Breakout project, I chose to continue in Java to apply what I've learned in my coursework. I also wanted to use a framework so that I did not need to do everything from scratch. I considered using Godot, but that would mean I would hardly need to program at all. -Instead, I chose [TotalCross][7]. It is an open source software development kit (SDK) and framework with a simple game engine that generates code for [Linux Arm][8] devices (like the Raspberry Pi) and smartphones. Also, because I work for TotalCross, I have access to developers with much more experience than I have and know the platform very well. It seemed to be the safest way and, despite some strife, I don't regret it one bit. It was very cool to develop the whole project and see it running on the phone and the [Raspberry Pi][9]. +Instead, I chose [TotalCross][8]. It is an open source software development kit (SDK) and framework with a simple game engine that generates code for [Linux Arm][9] devices (like the Raspberry Pi) and smartphones. Also, because I work for TotalCross, I have access to developers with much more experience than I have and know the platform very well. It seemed to be the safest way and, despite some strife, I don't regret it one bit. It was very cool to develop the whole project and see it running on the phone and the [Raspberry Pi][10]. -![Breakout remake][10] - -Breakout remake built with Java and TotalCross running on Raspberry Pi 3 Model B. (Vaneska Karen, [CC BY-SA 4.0][4]) +![Breakout remake][11] ### Define the project mechanics and structure @@ -39,63 +37,52 @@ When starting to develop any application, and especially a game, you need to con #### Game mechanics - 1. The platform moves left or right, according to the user's command. When it reaches an end, it hits the "wall" (edge). - 2. When the ball hits the platform, it returns in the opposite direction it came from. - 3. Each time the ball hits a "brick" (blue, green, yellow, orange, or red), the brick disappears. - 4. When all the bricks in level 01 have been destroyed, new ones appear (in the same position as the previous one), and the ball's speed increases. - 5. When all the bricks in level 02 have been destroyed, the game continues without obstacles on the screen. - 6. The game ends when the ball falls. - - +1. The platform moves left or right, according to the user's command. When it reaches an end, it hits the "wall" (edge). +2. When the ball hits the platform, it returns in the opposite direction it came from. +3. Each time the ball hits a "brick" (blue, green, yellow, orange, or red), the brick disappears. +4. When all the bricks in level 01 have been destroyed, new ones appear (in the same position as the previous one), and the ball's speed increases. +5. When all the bricks in level 02 have been destroyed, the game continues without obstacles on the screen. +6. The game ends when the ball falls. #### Project structure - * `RunBreakoutApplication.java` is the class responsible for calling the class that inherits the `GameEngine` and runs the simulator. - * `Breakout.java` is the main class, which inherits from the `GameEngine` class and "assembles" the game, where it will call objects, define positions, etc. - * The `sprites` package is where all the classes responsible for the sprites (e.g., the image and behavior of the blocks, platform, and ball) go. - * The `util` packages contain classes used to facilitate project maintenance, such as constants, image initialization, and colors. - - +* RunBreakoutApplication.java is the class responsible for calling the class that inherits the `GameEngine` and runs the simulator. +* Breakout.java is the main class, which inherits from the `GameEngine` class and "assembles" the game, where it will call objects, define positions, etc. +* The `sprites` package is where all the classes responsible for the sprites (e.g., the image and behavior of the blocks, platform, and ball) go. +* The `util` packages contain classes used to facilitate project maintenance, such as constants, image initialization, and colors. ### Get hands-on with code -First, install the [TotalCross plugin from VSCode][11]. If you are using another [integrated development environment][12] (IDE), check TotalCross's documentation for installation instructions.  - -If you're using the plugin, just press `Ctrl`+`P`, type `totalcross`, and click `Create new project`. Fill in the requested information: - - * `Folder name:` gameTC - * `ArtifactId:` com.totalcross - * `Project name:` Breakout - * `TotalCross version:` 6.1.1 (or the most recent one) - * `Build platforms:` -Android and -Linux_arm (select the platforms you want) +First, install the [TotalCross plugin from VSCode][12]. If you are using another [integrated development environment][13] (IDE), check TotalCross's documentation for installation instructions. +If you're using the plugin, just press `Ctrl` +`P`, type `totalcross`, and click `Create new project`. Fill in the requested information: +* Folder name: gameTC +* ArtifactId: com.totalcross +* Project name: Breakout +* TotalCross version: 6.1.1 (or the most recent one) +* Build platforms: -Android and -Linux_arm (select the platforms you want) When filling in the fields above and generating the project, if you are in the `RunBreakoutApplication.java` class, right-clicking on it and clicking "run" will open the simulator, and "Hello World!" will appear on your screen if you have created your Java project with TotalCross properly. -![HelloWorld project structure][13] +![HelloWorld project structure][14] -(Vaneska Karen, [CC BY-SA 4.0][4]) +If you have a problem, check the [documentation][15] or ask the [TotalCross community][16] on Telegram for help. -If you have a problem, check the [documentation][14] or ask the [TotalCross community][15] on Telegram for help. - -After the project is configured, the next step is to add the project's images in `Resources` > `Sprites`. Create two packages named `util` and `sprites` to work on later. +After the project is configured, the next step is to add the project's images in `Resources` > `Sprites`. Create two packages named `util` and `sprites` to work on later. The structure of your project will be: -![Project structure][16] - -(Vaneska Karen, [CC BY-SA 4.0][4]) +![Project structure][17] ### Go behind the scenes -To make it easier to maintain the code and change the images to the colors you want to use, it's a good practice to [centralize everything by creating classes][17]. Place all of the classes for this function inside the `util` package. +To make it easier to maintain the code and change the images to the colors you want to use, it's a good practice to [centralize everything by creating classes][18]. Place all of the classes for this function inside the `util` package. #### Constants.java First, create the `constants.java` class, which is where placement patterns (such as the edge between the screen and where the platform starts), speed, number of blocks, etc., reside. This is good for playing, changing numbers, and understanding where things change and why. It is a great exercise for those just starting with Java. - ``` package com.totacross.util; @@ -105,15 +92,15 @@ import totalcross.util.UnitsConverter; public class Constants {     //Position -    public static final int BOTTOM_EDGE = UnitsConverter.toPixels(430 + [Control][18].DP); -    public static final int DP_23 = UnitsConverter.toPixels(23 + [Control][18].DP); -    public static final int DP_50 = UnitsConverter.toPixels(50 + [Control][18].DP); -    public static final int DP_100 = UnitsConverter.toPixels(100 + [Control][18].DP); +    public static final int BOTTOM_EDGE = UnitsConverter.toPixels(430 + Control.DP); +    public static final int DP_23 = UnitsConverter.toPixels(23 + Control.DP); +    public static final int DP_50 = UnitsConverter.toPixels(50 + Control.DP); +    public static final int DP_100 = UnitsConverter.toPixels(100 + Control.DP);     //Sprites -    public static final int EDGE_RACKET = UnitsConverter.toPixels(20 + [Control][18].DP); -    public static final int WIDTH_BALL =  UnitsConverter.toPixels(15 + [Control][18].DP); -    public static final int HEIGHT_BALL =  UnitsConverter.toPixels(15 + [Control][18].DP); +    public static final int EDGE_RACKET = UnitsConverter.toPixels(20 + Control.DP); +    public static final int WIDTH_BALL =  UnitsConverter.toPixels(15 + Control.DP); +    public static final int HEIGHT_BALL =  UnitsConverter.toPixels(15 + Control.DP);     //Bricks     public static final int NUM_BRICKS = 10; @@ -136,7 +123,6 @@ If you want to know more about the pixel density (DP) unit, I recommend reading As the name suggests, this class is where you define the colors used in the game. I recommend naming things according to the color's purpose, such as background, font color, etc. This will make it easier to update your project's color palette in a single class. - ``` package com.totacross.util; @@ -152,7 +138,6 @@ public class Colors { The `images.java` class is undoubtedly the most frequently used. - ``` package com.totacross.util; @@ -160,26 +145,27 @@ import static com.totacross.util.Constants.*; import totalcross.ui.dialog.MessageBox; import totalcross.ui.image.Image; + public class Images { -    public static [Image][20] paddle, ball; -    public static [Image][20] red, orange, dark_orange, yellow, green, blue; +    public static Image paddle, ball; +    public static Image red, orange, dark_orange, yellow, green, blue;     public static void loadImages() {         try {             // general -            paddle = new [Image][20]("sprites/paddle.png"); -            ball = new [Image][20]("sprites/ball.png").getScaledInstance(WIDTH_BALL, HEIGHT_BALL); +            paddle = new Image("sprites/paddle.png"); +            ball = new Image("sprites/ball.png").getScaledInstance(WIDTH_BALL, HEIGHT_BALL);             // Bricks -            red = new [Image][20]("sprites/red_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); -            orange = new [Image][20]("sprites/orange_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); -            dark_orange = new [Image][20]("sprites/orange2_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); -            yellow = new [Image][20]("sprites/yellow_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); -            green = new [Image][20]("sprites/green_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); -            blue = new [Image][20]("sprites/blue_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); +            red = new Image("sprites/red_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); +            orange = new Image("sprites/orange_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); +            dark_orange = new Image("sprites/orange2_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); +            yellow = new Image("sprites/yellow_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); +            green = new Image("sprites/green_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); +            blue = new Image("sprites/blue_brick.png").getScaledInstance(WIDTH_BRICKS, HEIGHT_BRICKS); -        } catch ([Exception][21] e) { +        } catch (Exception e) {             MessageBox.showException(e, true);         }     } @@ -192,9 +178,7 @@ The `getScaledInstance()` method will manipulate the image to match the values p At this point, your project should look like this: -![Project structure][22] - -(Vaneska Karen, [CC BY-SA 4.0][4]) +![Project structure][20] ### Create your first sprite @@ -202,11 +186,10 @@ Now that the project is structured properly, you're ready to create your first c #### Paddle.java -The `paddle.java` class must inherit from `sprite`, which is the class responsible for objects in games. This is a fundamental concept in game engine development, so when inheriting from sprites, the TotalCross framework will already be concerned with delimiting movement within the screen, detecting collisions between sprites, and other important functions. You can check all the details in [Javadoc][23]. +The `paddle.java` class must inherit from `sprite`, which is the class responsible for objects in games. This is a fundamental concept in game engine development, so when inheriting from sprites, the TotalCross framework will already be concerned with delimiting movement within the screen, detecting collisions between sprites, and other important functions. You can check all the details in [Javadoc][21]. In Breakout, the paddle moves on the X-axis at a speed determined by the user's command (by touch screen or mouse movement). The `paddle.java` class is responsible for defining this movement and the sprite's image (the "face"): - ``` package com.totacross.sprites; @@ -218,7 +201,7 @@ import totalcross.ui.image.ImageException; public class Paddle extends Sprite {   private static final int SPEED = 4; -  public Paddle() throws [IllegalArgumentException][24], [IllegalStateException][25], ImageException { +  public Paddle() throws IllegalArgumentException, IllegalStateException, ImageException {     super(Images.paddle, -1, true, null);   } @@ -235,7 +218,7 @@ public class Paddle extends Sprite { } ``` -You indicate the image (`Images.paddle`) within the constructor, and the `move` method (a TotalCross feature) receives the speed defined at the beginning of the class. Experiment with other values and observe what happens with the movement. +You indicate the image (`Images.paddle` ) within the constructor, and the `move` method (a TotalCross feature) receives the speed defined at the beginning of the class. Experiment with other values and observe what happens with the movement. When the paddle is moving to the left, the center of the paddle at any moment is defined as itself minus the speed, and when it's moving to the right, it's itself plus the speed. Ultimately, you define the position of the sprite on the screen. @@ -247,17 +230,14 @@ When building your game engine, you need to focus on some standard points. For t Basically, you will delete the automatically generated `initUI()` method and, instead of inheriting from `MainWindow`, you will inherit it from `GameEngine`. A "red" will appear in the name of your class, so just click on the lamp or the suggestion symbol for your IDE and click `Add unimplemented methods`. This will automatically generate the `onGameInit()` method, which is responsible for the moment when the game starts, i.e., the moment the `breakout` class is called. -Inside the constructor, you must add the style type (`MaterialUI`) and the refresh time on the screen (`70`), and signal that the game has an interface (`gameHasUI = true;`). +Inside the constructor, you must add the style type (`MaterialUI` ) and the refresh time on the screen (`70` ), and signal that the game has an interface (`gameHasUI = true;` ). Last but not least, you have to start the game through `this.start()` on `onGameInit()` and focus on some other methods: - * `onGameInit()` is the first method called. In it, you must initialize the sprites and images (`Images.loadImages`), and tell the game that it can start. - * `onGameStart()`is called when the game starts. It sets the platform's initial position (in the center of the screen on the X-axis and below the center with a border on the Y-axis). - * `onPaint()` is where you say what will be drawn for each frame. First, it paints the background black (to not leave traces of the sprites), then it displays the sprites with `.show()`. - * The `onPenDrag` and `onPenDown` methods identify when the user moves the paddle (by dragging a finger on a touch screen or moving the mouse while pressing the left button). These methods change the paddle movement through the `setPos()` method, which triggers the `move` method in the `Paddle.java` class. Note that the last parameter of the `racket.setPos` method is `true` to precisely limit the paddle's movement within the screen so that it never disappears from the user's field of view. - - - +* onGameInit() is the first method called. In it, you must initialize the sprites and images (Images.loadImages), and tell the game that it can start. +* onGameStart()is called when the game starts. It sets the platform's initial position (in the center of the screen on the X-axis and below the center with a border on the Y-axis). +* onPaint() is where you say what will be drawn for each frame. First, it paints the background black (to not leave traces of the sprites), then it displays the sprites with `.show()`. +* The `onPenDrag` and `onPenDown` methods identify when the user `move`s the paddle (by dragging a finger on a touch screen or moving the mouse while pressing the left button). These methods change the paddle movement through the `setPos()` method, which triggers the move method in the `Paddle.java` class. Note that the last parameter of the `racket.setPos` method is `true` to precisely limit the paddle's movement within the screen so that it never disappears from the user's field of view. ``` package com.totacross; @@ -295,7 +275,7 @@ public class Breakout extends GameEngine {         try {             racket = new Paddle(); -        } catch ([Exception][21] e) { +        } catch (Exception e) {             MessageBox.showException(e, true);             MainWindow.exit(0);         } @@ -307,7 +287,7 @@ public class Breakout extends GameEngine {      //to draw the interface      @Override -     public void onPaint([Graphics][26] g) { +     public void onPaint(Graphics g) {          super.onPaint(g);          if (gameIsRunning) {              g.backColor = Colors.PRIMARY; @@ -339,71 +319,64 @@ public class Breakout extends GameEngine { To run the game, just click `RunBreakoutApplication.java` with the right mouse button, then click `run` to see how it looks. -![Breakout game remake on phone][27] - -(Vaneska Karen, [CC BY-SA 4.0][4]) +![Breakout game remake][22] If you want to run it on a Raspberry Pi, change the parameters in the `RunBreakoutApplication.java` class to: - ``` -`        TotalCrossApplication.run(Breakout.class, "/scr", "848x480");` +TotalCrossApplication.run(Breakout.class, "/scr", "848x480"); ``` This sets the screen size to match the Raspberry Pi. -![Breakout on Raspberry Pi][28] - -(Vaneska Karen, [CC BY-SA 4.0][4]) +![Breakout on Raspberry Pi][23] The first sprite and game mechanics are ready! ### Next steps -In the next article, I'll show how to add the ball sprite and make collisions. If you need help, call me in the [community group][15] on Telegram or post in the TotalCross [forum][29], where I'm available to help. +In the next article, I'll show how to add the ball sprite and make collisions. If you need help, call me in the [community group][24] on Telegram or post in the TotalCross [forum][25], where I'm available to help. -If you put this article into practice, share your experience in the comments. All feedback is important! If you wish, favorite [TotalCross on GitHub][30], as it improves the project's relevance on the platform. +If you put this article into practice, share your experience in the comments. All feedback is important! If you wish, favorite [TotalCross on GitHub][26], as it improves the project's relevance on the platform. + +Image by: (Vaneska Karen, CC BY-SA 4.0) -------------------------------------------------------------------------------- via: https://opensource.com/article/21/3/java-object-orientation 作者:[Vaneska Sousa][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://opensource.com/users/vaneska -[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://www.youtube.com/watch?v=Cr6z3AyhRr8 -[3]: https://opensource.com/sites/default/files/uploads/originalbreakout.gif (Breakout game) -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: https://processing.org/ -[6]: https://opensource.com/resources/java -[7]: https://opensource.com/article/20/7/totalcross-cross-platform-development -[8]: https://www.arm.linux.org.uk/docs/whatis.php -[9]: https://opensource.com/resources/raspberry-pi -[10]: https://opensource.com/sites/default/files/uploads/breakoutremake.gif (Breakout remake) -[11]: https://marketplace.visualstudio.com/items?itemName=totalcross.vscode-totalcross -[12]: https://www.redhat.com/en/topics/middleware/what-is-ide -[13]: https://opensource.com/sites/default/files/uploads/helloworld.png (HelloWorld project structure) -[14]: https://learn.totalcross.com/ -[15]: https://t.me/guiforembedded -[16]: https://opensource.com/sites/default/files/uploads/projectstructure.png (Project structure) -[17]: https://learn.totalcross.com/documentation/guides/app-architecture/colors-fonts-and-images -[18]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+control +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/studying-books-java-couch-education.png +[2]: https://www.wocintechchat.com/ +[3]: https://creativecommons.org/licenses/by/2.0/ +[4]: https://www.youtube.com/watch?v=Cr6z3AyhRr8 +[5]: https://opensource.com/sites/default/files/uploads/originalbreakout.gif +[6]: https://processing.org/ +[7]: https://opensource.com/resources/java +[8]: https://opensource.com/article/20/7/totalcross-cross-platform-development +[9]: https://www.arm.linux.org.uk/docs/whatis.php +[10]: https://opensource.com/resources/raspberry-pi +[11]: https://opensource.com/sites/default/files/uploads/breakoutremake.gif +[12]: https://marketplace.visualstudio.com/items?itemName=totalcross.vscode-totalcross +[13]: https://www.redhat.com/en/topics/middleware/what-is-ide +[14]: https://opensource.com/sites/default/files/uploads/helloworld.png +[15]: https://learn.totalcross.com/ +[16]: https://t.me/guiforembedded +[17]: https://opensource.com/sites/default/files/uploads/projectstructure.png +[18]: https://learn.totalcross.com/documentation/guides/app-architecture/colors-fonts-and-images [19]: https://material.io/design/layout/pixel-density.html -[20]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+image -[21]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+exception -[22]: https://opensource.com/sites/default/files/uploads/projectstructure2.png (Project structure) -[23]: https://en.wikipedia.org/wiki/Javadoc -[24]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+illegalargumentexception -[25]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+illegalstateexception -[26]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+graphics -[27]: https://opensource.com/sites/default/files/uploads/runbreakout.gif (Breakout game remake on phone) -[28]: https://opensource.com/sites/default/files/uploads/runbreakout2.gif (Breakout on Raspberry Pi) -[29]: http://forum.totalcross.com -[30]: https://github.com/totalcross/totalcross +[20]: https://opensource.com/sites/default/files/uploads/projectstructure2.png +[21]: https://en.wikipedia.org/wiki/Javadoc +[22]: https://opensource.com/sites/default/files/uploads/runbreakout.gif +[23]: https://opensource.com/sites/default/files/uploads/runbreakout2.gif +[24]: https://t.me/guiforembedded +[25]: http://forum.totalcross.com +[26]: https://github.com/totalcross/totalcross diff --git a/sources/tech/20210303 Host your website with dynamic content and a database on a Raspberry Pi.md b/sources/tech/20210303 Host your website with dynamic content and a database on a Raspberry Pi.md index 805f04dafa..dbd7837991 100644 --- a/sources/tech/20210303 Host your website with dynamic content and a database on a Raspberry Pi.md +++ b/sources/tech/20210303 Host your website with dynamic content and a database on a Raspberry Pi.md @@ -1,50 +1,44 @@ -[#]: subject: (Host your website with dynamic content and a database on a Raspberry Pi) -[#]: via: (https://opensource.com/article/21/3/web-hosting-raspberry-pi) -[#]: author: (Marty Kalin https://opensource.com/users/mkalindepauledu) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Host your website with dynamic content and a database on a Raspberry Pi" +[#]: via: "https://opensource.com/article/21/3/web-hosting-raspberry-pi" +[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Host your website with dynamic content and a database on a Raspberry Pi ====== -You can use free software to support a web application on a very -lightweight computer. +You can use free software to support a web application on a very lightweight computer. + ![Digital creative of a browser on the internet][1] Raspberry Pi's single-board machines have set the mark for cheap, real-world computing. With its model 4, the Raspberry Pi can host web applications with a production-grade web server, a transactional database system, and dynamic content through scripting. This article explains the installation and configuration details with a full code example. Welcome to web applications hosted on a very lightweight computer. ### The snowfall application -Imagine a downhill ski area large enough to have microclimates, which can mean dramatically different snowfalls across the area. The area is divided into regions, each of which has devices that record snowfall in centimeters; the recorded information then guides decisions on snowmaking, grooming, and other maintenance operations. The devices communicate, say, every 20 minutes with a server that updates a database that supports reports. Nowadays, the server-side software for such an application can be free _and_ production-grade. +Imagine a downhill ski area large enough to have microclimates, which can mean dramatically different snowfalls across the area. The area is divided into regions, each of which has devices that record snowfall in centimeters; the recorded information then guides decisions on snowmaking, grooming, and other maintenance operations. The devices communicate, say, every 20 minutes with a server that updates a database that supports reports. Nowadays, the server-side software for such an application can be free *and* production-grade. This snowfall application uses the following technologies: - * A [Raspberry Pi 4][2] running Debian - * Nginx web server: The free version hosts over 400 million websites. This web server is easy to install, configure, and use. - * [SQLite relational database system][3], which is file-based: A database, which can hold many tables, is a file on the local system. SQLite is lightweight but also [ACID-compliant][4]; it is suited for low to moderate volume. SQLite is likely the most widely used database system in the world, and the source code for SQLite is in the public domain. The current version is 3. A more powerful (but still free) option is PostgreSQL. - * Python: The Python programming language can interact with databases such as SQLite and web servers such as Nginx. Python (version 3) comes with Linux and macOS systems. - - +* A [Raspberry Pi 4][2] running Debian +* Nginx web server: The free version hosts over 400 million websites. This web server is easy to install, configure, and use. +* [SQLite relational database system][3], which is file-based: A database, which can hold many tables, is a file on the local system. SQLite is lightweight but also [ACID-compliant][4]; it is suited for low to moderate volume. SQLite is likely the most widely used database system in the world, and the source code for SQLite is in the public domain. The current version is 3. A more powerful (but still free) option is PostgreSQL. +* Python: The Python programming language can interact with databases such as SQLite and web servers such as Nginx. Python (version 3) comes with Linux and macOS systems. Python includes a software driver for communicating with SQLite. There are options for connecting Python scripts with Nginx and other web servers. One option is [uWSGI][5] (Web Server Gateway Interface), which updates the ancient CGI (Common Gateway Interface) from the 1990s. Several factors speak for uWSGI: - * uWSGI is flexible. It can be used as either a lightweight concurrent web server or the backend application server connected to a web server such as Nginx. - * Its setup is minimal. - * The snowfall application involves a low to moderate volume of hits on the web server and database system. In general, CGI technologies are not fast by modern standards, but CGI performs well enough for department-level web applications such as this one. - - +* uWSGI is flexible. It can be used as either a lightweight concurrent web server or the backend application server connected to a web server such as Nginx. +* Its setup is minimal. +* The snowfall application involves a low to moderate volume of hits on the web server and database system. In general, CGI technologies are not fast by modern standards, but CGI performs well enough for department-level web applications such as this one. Various acronyms describe the uWSGI option. Here's a sketch of the three principal ones: - * **WSGI** is a Python specification for an interface between a web server on one side, and an application or an application framework (e.g., Django) on the other side. This specification defines an API whose implementation is left open. - * **uWSGI** implements the WSGI interface by providing an application server, which connects applications to a web server. A uWSGI application server's main job is to translate HTTP requests into a format that a web application can consume and, afterward, to format the application's response into an HTTP message. - * **uwsgi** is a binary protocol implemented by a uWSGI application server to communicate with a full-featured web server such as Nginx; it also includes utilities such as a lightweight web server. The Nginx web server "speaks" uwsgi out of the box. - - +* WSGI is a Python specification for an interface between a web server on one side, and an application or an application framework (e.g., Django) on the other side. This specification defines an API whose implementation is left open. +* uWSGI implements the WSGI interface by providing an application server, which connects applications to a web server. A uWSGI application server's main job is to translate HTTP requests into a format that a web application can consume and, afterward, to format the application's response into an HTTP message. +* uwsgi is a binary protocol implemented by a uWSGI application server to communicate with a full-featured web server such as Nginx; it also includes utilities such as a lightweight web server. The Nginx web server "speaks" uwsgi out of the box. For convenience, I will use "uwsgi" as shorthand for the binary protocol, the application server, and the very lightweight web server. @@ -52,33 +46,29 @@ For convenience, I will use "uwsgi" as shorthand for the binary protocol, the ap On a Debian-based system, you can install SQLite the usual way (with `%` representing the command-line prompt): - ``` -`% sudo apt-get install sqlite3` +% sudo apt-get install sqlite3 ``` This database system is a collection of C libraries and utilities, all of which come to about 500KB in size. There is no database server to start, stop, or otherwise maintain. Once SQLite is installed, create a database at the command-line prompt: - ``` -`% sqlite3 snowfall.db` +% sqlite3 snowfall.db ``` If this succeeds, the command creates the file `snowfall.db` in the current working directory. The database name is arbitrary (e.g., no extension is required), and the command opens the SQLite client utility with `>sqlite` as the prompt: - ``` Enter ".help" for usage hints. -sqlite> +sqlite> ``` Create the snowfall table in the snowfall database with the following command. The table name, like the database name, is arbitrary: - ``` -sqlite> CREATE TABLE snowfall (id INTEGER PRIMARY KEY AUTOINCREMENT, +sqlite> CREATE TABLE snowfall (id INTEGER PRIMARY KEY AUTOINCREMENT,                                region TEXT NOT NULL,                                device TEXT NOT NULL,                                amount DECIMAL NOT NULL, @@ -87,9 +77,8 @@ sqlite> CREATE TABLE snowfall (id INTEGER PRIMARY KEY AUTOINCREMENT, SQLite commands are case-insensitive, but it is traditional to use uppercase for SQL terms and lowercase for user terms. Check that the table was created: - ``` -`sqlite> .schema` +sqlite> .schema ``` The command echoes the `CREATE TABLE` statement. @@ -100,10 +89,9 @@ The database is now ready for business, although the single-table snowfall is em Recall that uwsgi can be used in two ways: either as a lightweight web server or as an application server connected to a production-grade web server such as Nginx. The second use is the goal, but the first is suited for developing and testing the programmer's request-handling code. Here's the architecture with Nginx in play as the web server: - ``` -       HTTP       uwsgi -client<\---->Nginx<\----->appServer<\--->request-handling code<\--->SQLite +HTTP       uwsgi +client<---->Nginx<----->appServer<--->request-handling code<--->SQLite ``` The client could be a browser, a utility such as [curl][6], or a hand-crafted program fluent in HTTP. Communications between the client and Nginx occur through HTTP, but then uwsgi takes over as a binary-transport protocol between Nginx and the application server, which interacts with request-handling code such as `requestHandler.py` (described below). This architecture delivers a clean division of labor. Nginx alone manages the client, and only the request-handling code interacts with the database. In turn, the application server separates the web server from the programmer-written code, which has a high-level API to read and write HTTP messages delivered over uwsgi. @@ -116,7 +104,6 @@ Below is the source code file `requestHandler.py` for the snowfall application. #### The request-handling program - ``` import sqlite3 import cgi @@ -127,7 +114,7 @@ PATH_2_DB = '/home/marty/wsgi/snowfall.db' def application(env, start_line):     if env['REQUEST_METHOD'] == 'POST':   ## add new DB record         return handle_post(env, start_line) -    elif env['REQUEST_METHOD'] == 'GET':  ## create HTML-fragment report +    elif env['REQUEST_METHOD'] == 'GET':  ## create HTML-fragment report         return handle_get(start_line)     else:                                 ## no other option for now         start_line('405 METHOD NOT ALLOWED', [('Content-Type', 'text/plain')]) @@ -136,7 +123,7 @@ def application(env, start_line): def handle_post(env, start_line):         form = get_field_storage(env)  ## body of an HTTP POST request -    +        ## Extract fields from POST form.     region = form.getvalue('region')     device = form.getvalue('device') @@ -162,19 +149,19 @@ def handle_get(start_line):     cursor = conn.cursor()                   ## get a cursor     cursor.execute("select * from snowfall") -    response_body = "<h3>Snowfall report</h3><ul>" +    response_body = "

Snowfall report

    "     rows = cursor.fetchall()     for row in rows: -        response_body += "<li>" + str(row[0]) + '|'  ## primary key +        response_body += "
  • " + str(row[0]) + '|'  ## primary key         response_body += row[1] + '|'                ## region         response_body += row[2] + '|'                ## device         response_body += str(row[3]) + '|'           ## amount -        response_body += str(row[4]) + "</li>"       ## timestamp -    response_body += "</ul>" +        response_body += str(row[4]) + "
  • "       ## timestamp +    response_body += "
"     conn.commit()  ## commit     conn.close()   ## cleanup -    +        start_line('200 OK', [('Content-Type', 'text/html')])     return [response_body.encode()] @@ -184,7 +171,7 @@ def add_record(reg, dev, amt, tstamp):     cursor = conn.cursor()                 ## get a cursor     sql = "INSERT INTO snowfall(region,device,amount,tstamp) values (?,?,?,?)" -    cursor.execute(sql, (reg, dev, amt, tstamp)) ## execute INSERT +    cursor.execute(sql, (reg, dev, amt, tstamp)) ## execute INSERT     conn.commit()  ## commit     conn.close()   ## cleanup @@ -203,16 +190,14 @@ def get_field_storage(env): A constant at the start of the source file defines the path to the database file: - ``` -`PATH_2_DB = '/home/marty/wsgi/snowfall.db'` +PATH_2_DB = '/home/marty/wsgi/snowfall.db' ``` Make sure to update the path for your Raspberry Pi. As noted earlier, uwsgi includes a lightweight web server that can host this request-handling application. To begin, install uwsgi with these two commands (`##` introduces my comments): - ``` % sudo apt-get install build-essential python-dev ## C header files, etc. % pip install uwsgi                               ## pip = Python package manager @@ -220,19 +205,17 @@ As noted earlier, uwsgi includes a lightweight web server that can host this req Next, launch a bare-bones snowfall application using uwsgi as the web server: - ``` -`% uwsgi --http 127.0.0.1:9999 --wsgi-file requestHandler.py  ` +% uwsgi --http 127.0.0.1:9999 --wsgi-file requestHandler.py ``` The flag `--http` runs uwsgi in web-server mode, with 9999 as the web server's listening port on localhost (127.0.0.1). By default, uwsgi dispatches HTTP requests to a programmer-defined function named `application`. For review, here's the full function from the top of the `requestHandler.py` code: - ``` def application(env, start_line):     if env['REQUEST_METHOD'] == 'POST':   ## add new DB record         return handle_post(env, start_line) -    elif env['REQUEST_METHOD'] == 'GET':  ## create HTML-fragment report +    elif env['REQUEST_METHOD'] == 'GET':  ## create HTML-fragment report         return handle_get(start_line)     else:                                 ## no other option for now         start_line('405 METHOD NOT ALLOWED', [('Content-Type', 'text/plain')]) @@ -242,25 +225,21 @@ def application(env, start_line): The snowfall application accepts only two request types: - * A POST request, if up to snuff, creates a new entry in the snowfall table. The request should include the ski area region, the device in the region, the snowfall amount in centimeters, and a Unix-style timestamp. A POST request is dispatched to the `handle_post` function (which I'll clarify shortly). - * A GET request returns an HTML fragment (an unordered list) with the records currently in the snowfall table. - - +* A POST request, if up to snuff, creates a new entry in the snowfall table. The request should include the ski area region, the device in the region, the snowfall amount in centimeters, and a Unix-style timestamp. A POST request is dispatched to the `handle_post` function (which I'll clarify shortly). +* A GET request returns an HTML fragment (an unordered list) with the records currently in the snowfall table. Requests with an HTTP verb other than POST and GET will generate an error message. You can use a utility such as curl to generate HTTP requests for testing. Here are three sample POST requests to start populating the database: - ``` -% curl -X POST -d "region=R1&device=D9&amount=1.42&tstamp=1604722088.0158753" localhost:9999/ -% curl -X POST -d "region=R7&device=D4&amount=2.11&tstamp=1604722296.8862638" localhost:9999/ -% curl -X POST -d "region=R5&device=D1&amount=1.12&tstamp=1604942236.1013834" localhost:9999/ +% curl -X POST -d "region=R1&device=D9&amount=1.42&tstamp=1604722088.0158753" localhost:9999/ +% curl -X POST -d "region=R7&device=D4&amount=2.11&tstamp=1604722296.8862638" localhost:9999/ +% curl -X POST -d "region=R5&device=D1&amount=1.12&tstamp=1604942236.1013834" localhost:9999/ ``` These commands add three records to the snowfall table. A subsequent GET request from curl or a browser displays an HTML fragment that lists the rows in the snowfall table. Here's the equivalent as non-HTML text: - ``` Snowfall report @@ -273,20 +252,18 @@ A professional report would convert the numeric timestamps into human-readable o The uwsgi utility accepts various flags, which can be given either through a configuration file or in the launch command. For example, here's a richer launch of uwsgi as a web server: - ``` -`% uwsgi --master --processes 2 --http 127.0.0.1:9999 --wsgi-file requestHandler.py` +% uwsgi --master --processes 2 --http 127.0.0.1:9999 --wsgi-file requestHandler.py ``` This version creates a master (supervisory) process and two worker processes, which can handle the HTTP requests concurrently. In the snowfall application, the functions `handle_post` and `handle_get` process POST and GET requests, respectively. Here's the `handle_post` function in full: - ``` def handle_post(env, start_line):         form = get_field_storage(env)  ## body of an HTTP POST request -    +        ## Extract fields from POST form.     region = form.getvalue('region')     device = form.getvalue('device') @@ -308,18 +285,17 @@ def handle_post(env, start_line):         return [response_body.encode()] ``` -The two arguments to the `handle_post` function (`env` and `start_line`) represent the system environment and a communications channel, respectively. The `start_line` channel sends the HTTP start line (in this case, either `400 Bad Request` or `201 OK`) and any HTTP headers (in this case, just `Content-Type: text/plain`) of an HTTP response. +The two arguments to the `handle_post` function (`env` and `start_line` ) represent the system environment and a communications channel, respectively. The `start_line` channel sends the HTTP start line (in this case, either `400 Bad Request` or `201 OK` ) and any HTTP headers (in this case, just `Content-Type: text/plain` ) of an HTTP response. The `handle_post` function tries to extract the relevant data from the HTTP POST request and, if it's successful, calls the function `add_record` to add another row to the snowfall table: - ``` def add_record(reg, dev, amt, tstamp):     conn = sqlite3.connect(PATH_2_DB)      ## connect to DB     cursor = conn.cursor()                 ## get a cursor     sql = "INSERT INTO snowfall(region,device,amount,tstamp) VALUES (?,?,?,?)" -    cursor.execute(sql, (reg, dev, amt, tstamp)) ## execute INSERT +    cursor.execute(sql, (reg, dev, amt, tstamp)) ## execute INSERT     conn.commit()  ## commit     conn.close()   ## cleanup @@ -329,26 +305,25 @@ SQLite automatically wraps single SQL statements (such as `INSERT` above) in a t The `handle_get` function also touches the database, but only to read the records in the snowfall table: - ``` def handle_get(start_line):     conn = sqlite3.connect(PATH_2_DB)        ## connect to DB     cursor = conn.cursor()                   ## get a cursor     cursor.execute("SELECT * FROM snowfall") -    response_body = "<h3>Snowfall report</h3><ul>" +    response_body = "

Snowfall report

    "     rows = cursor.fetchall()     for row in rows: -        response_body += "<li>" + str(row[0]) + '|'  ## primary key +        response_body += "
  • " + str(row[0]) + '|'  ## primary key         response_body += row[1] + '|'                ## region         response_body += row[2] + '|'                ## device         response_body += str(row[3]) + '|'           ## amount -        response_body += str(row[4]) + "</li>"       ## timestamp -    response_body += "</ul>" +        response_body += str(row[4]) + "
  • "       ## timestamp +    response_body += "
"     conn.commit()  ## commit     conn.close()   ## cleanup -    +        start_line('200 OK', [('Content-Type', 'text/html')])     return [response_body.encode()] ``` @@ -359,28 +334,25 @@ A user-friendly version of the snowfall application would support additional (an The Nginx web server can be installed on a Debian-based system with one command: - ``` -`% sudo apt-get install nginx` +% sudo apt-get install nginx ``` As a web server, Nginx provides the expected services, such as wire-level security, HTTPS, user authentication, load balancing, media streaming, response compression, file uploading, etc. The Nginx engine is high-performance and stable, and this server can support dynamic content through a variety of programming languages. Using uwsgi as a very lightweight web server is an attractive option but switching to Nginx is a move up to industrial-strength web hosting with high-volume capability. Nginx and uwsgi are both implemented in C. With Nginx in play, uwsgi takes on a communication protocol's restricted roles and an application server; it no longer acts as an HTTP web server. Here's the revised architecture: - ``` -          HTTP       uwsgi                   -requester<\---->Nginx<\----->app server<\--->requestHandler.py +HTTP       uwsgi                   +requester<---->Nginx<----->app server<--->requestHandler.py ``` As noted earlier, Nginx includes uwsgi support and now acts as a reverse-proxy server that forwards designated HTTP requests to the uwsgi application server, which in turn interacts with the Python script `requestHandler.py`. Responses from the Python script move in the reverse direction so that Nginx sends the HTTP response back to the requesting client. Two changes bring this new architecture to life. The first launches uwsgi as an application server: - ``` -`% uwsgi --socket 127.0.0.1:8001 --wsgi-file requestHandler.py` +% uwsgi --socket 127.0.0.1:8001 --wsgi-file requestHandler.py ``` Socket 8001 is the Nginx default for uwsgi communications. For robustness, you could use the full path to the Python script so that the command above does not have to be executed in the directory that houses the Python script. In a production environment, uwsgi would start and stop automatically; for now, however, the emphasis remains on how the architectural pieces fit together. @@ -389,7 +361,6 @@ The second change involves Nginx configuration, which can be tricky on Debian-ba However the configuration is distributed, the key section for having Nginx talk to the uwsgi application server begins with `http` and has one or more `server` subsections, which in turn have `location` subsections. Here's an example from the Nginx documentation: - ``` ... http { @@ -397,7 +368,7 @@ http {     ...     server { # simple reverse-proxy        listen       80; -       server_name  domain2.com [www.domain2.com][8]; +       server_name  domain2.com www.domain2.com;        access_log   logs/domain2.access.log  main;        # serve static files @@ -408,7 +379,7 @@ http {        # pass requests for dynamic content to rails/turbogears/zope, et al        location / { -         proxy_pass      ; +         proxy_pass      http://127.0.0.1:8080;        }      }      ... @@ -417,7 +388,6 @@ http { The `location` subsections are the ones of interest. For the snowfall application, here's the added `location` entry with its two configuration lines: - ``` ... server { @@ -441,9 +411,8 @@ server { To keep things simple for now, make `/snowfall` the only `location` in the configuration. With this configuration in place, Nginx listens on port 80 and dispatches HTTP requests ending with the `/snowfall` path to the uwsgi application server: - ``` -% curl -X POST -d "..." localhost/snowfall ## new POST +% curl -X POST -d "..." localhost/snowfall ## new POST % curl -X GET localhost/snowfall           ## new GET ``` @@ -453,16 +422,14 @@ If the configured location were simply `/` instead of `/snowfall`, then any HTTP Once you've changed the Nginx configuration with the added `location` subsection, you can start the web server: - ``` -`% sudo systemctl start nginx` +% sudo systemctl start nginx ``` There are other commands similar to `stop` and `restart` Nginx. In a production environment, you could automate these actions so that Nginx starts on a system boot and stops on a system shutdown. With uwsgi and Nginx both running, you can use a browser to test whether the architectural components cooperate as expected. For example, if you enter the URL `localhost/` in the browser's input window, then the Nginx welcome page should appear with (HTML) content similar to this: - ``` Welcome to nginx! ... @@ -471,7 +438,6 @@ Thank you for using nginx. By contrast, the URL `localhost/snowfall` should display the rows currently in the snowfall table: - ``` Snowfall report @@ -491,19 +457,18 @@ The software components in the web application work well together and require ve via: https://opensource.com/article/21/3/web-hosting-raspberry-pi 作者:[Marty Kalin][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://opensource.com/users/mkalindepauledu -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_web_internet_website.png?itok=g5B_Bw62 (Digital creative of a browser on the internet) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png [2]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/ [3]: https://opensource.com/article/21/2/sqlite3-cheat-sheet [4]: https://en.wikipedia.org/wiki/ACID [5]: https://uwsgi-docs.readthedocs.io/en/latest/ [6]: https://opensource.com/article/20/5/curl-cheat-sheet [7]: https://condor.depaul.edu/mkalin -[8]: http://www.domain2.com diff --git a/sources/tech/20210306 Manage containers on Raspberry Pi with this open source tool.md b/sources/tech/20210306 Use FreeBSD jails on Raspberry Pi.md similarity index 88% rename from sources/tech/20210306 Manage containers on Raspberry Pi with this open source tool.md rename to sources/tech/20210306 Use FreeBSD jails on Raspberry Pi.md index 8b31abd533..1b7ebb7bfe 100644 --- a/sources/tech/20210306 Manage containers on Raspberry Pi with this open source tool.md +++ b/sources/tech/20210306 Use FreeBSD jails on Raspberry Pi.md @@ -1,18 +1,20 @@ -[#]: subject: (Manage containers on Raspberry Pi with this open source tool) -[#]: via: (https://opensource.com/article/21/3/bastille-raspberry-pi) -[#]: author: (Peter Czanik https://opensource.com/users/czanik) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Use FreeBSD jails on Raspberry Pi" +[#]: via: "https://opensource.com/article/21/3/bastille-raspberry-pi" +[#]: author: "Peter Czanik https://opensource.com/users/czanik" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " -Manage containers on Raspberry Pi with this open source tool +Use FreeBSD jails on Raspberry Pi ====== -Create and maintain your containers (aka jails) at scale on FreeBSD with -Bastille. +Create and maintain your containers (aka jails) at scale on FreeBSD with Bastille. + ![Parts, modules, containers for software][1] +Image by: Opensource.com + Containers became widely popular because of Docker on Linux, but there are [much earlier implementations][2], including the [jail][3] system on FreeBSD. A container is called a "jail" in FreeBSD terminology. The jail system was first released in FreeBSD 4.0 way back in 2000, and it has continuously improved since. While 20 years ago it was used mostly on large servers, now you can run it on your Raspberry Pi. ### Jails vs. containers on Linux @@ -31,19 +33,17 @@ Docker brought popularity, accessibility, and ease of use to containers. There a Installing [BSD on Raspberry Pi][8] is pretty similar to installing Linux. You download a compressed image from the FreeBSD website and `dd` it to an SD card. You can also use a dedicated image writer tool; there are many available for all operating systems (OS). Download and write an image from the command line with: - ``` -wget +wget https://download.freebsd.org/ftp/releases/arm64/aarch64/ISO-IMAGES/13.0/FreeBSD-13.0-BETA1-arm64-aarch64-RPI.img.xz xzcat FreeBSD-13.0-BETA1-arm64-aarch64-RPI.img.xz | dd of=/dev/XXX ``` -That writes the latest beta image available for 64-bit Raspberry Pi boards; check the [download page][9] if you use another Raspberry Pi board or want to use another build. Replace `XXX` with your SD card's device name, which depends on your OS and how the card connects to your machine. I purposefully did not use a device name so that you won't overwrite anything if you just copy and paste the instructions mindlessly. I did that and was lucky to have a recent backup of my laptop, but it was _not_ a pleasant experience. +That writes the latest beta image available for 64-bit Raspberry Pi boards; check the [download page][9] if you use another Raspberry Pi board or want to use another build. Replace `XXX` with your SD card's device name, which depends on your OS and how the card connects to your machine. I purposefully did not use a device name so that you won't overwrite anything if you just copy and paste the instructions mindlessly. I did that and was lucky to have a recent backup of my laptop, but it was *not* a pleasant experience. Once you've written the SD card, put it in your Raspberry Pi and boot it. The first boot takes a bit longer than usual; I suspect the partition sizes are being adjusted to the SD card's size. After a while, you will receive the familiar login prompt on a good old text-based screen. The username is **root**, and the password is the same as the user name. The SSH server is enabled by default, but don't worry; the root user cannot log in. It is still a good idea to change the password to something else. The network is automatically configured by DHCP for the Ethernet connection (I did not test WiFi). The easiest way to configure Bastille on the system is to SSH into Raspberry Pi and copy and paste the commands and configuration in this article. You have a couple of options, depending on how much you care about industry best practices or are willing to treat it as a test system. You can either enable root login in the SSHD configuration (scary, but this is what I did at first) or create a regular user that can log in remotely. In the latter case, make sure that the user is part of the "wheel" group so that it can use `su -` to become root and use Bastille: - ``` root@generic:~ # adduser Username: czanik @@ -79,9 +79,8 @@ Goodbye! The fifth line adds the user to the wheel group. Note that you might have a different list of shells on your system, and Bash is not part of the base system. Install Bash before adding the user: - ``` -`pkg install bash` +pkg install bash ``` PKG needs to bootstrap itself on the first run, so invoking the command takes a bit longer this time. @@ -90,34 +89,30 @@ PKG needs to bootstrap itself on the first run, so invoking the command takes a Managing jails with the tools in the FreeBSD base system is possible—but not really convenient. Using a tool like Bastille can simplify it considerably. It is not part of the base system, so install it: - ``` -`pkg install bastille` +pkg install bastille ``` As you can see from the command's output, Bastille has no external dependencies. It is a shell script that relies on commands in the FreeBSD base system (with an exception I'll note later when explaining templates). If you want to start your containers on boot, enable Bastille: - ``` -`sysrc bastille_enable="YES"` +sysrc bastille_enable="YES" ``` Start with a simple use case. Many people use containers to install different development tools in different containers to avoid conflicts or simplify their environments. For example, no sane person wants to install Python 2 on a brand-new system—but you might need to run an ancient script every once in a while. So, create a jail for Python 2. Before creating your first jail, you need to bootstrap a FreeBSD release and configure networking. Just make sure that you bootstrap the same or an older release than the host is running. For example: - ``` -`bastille bootstrap 12.2-RELEASE` +bastille bootstrap 12.2-RELEASE ``` It downloads and extracts this release under the `/usr/local/bastille` directory structure. Networking can be configured in many different ways using Bastille. One option that works everywhere—on your local machine and in the cloud—is using cloned interfaces. This allows jails to use an internal network that does not interfere with the external network. Configure and start this internal network: - ``` sysrc cloned_interfaces+=lo1 sysrc ifconfig_lo1_name="bastille0" @@ -126,7 +121,6 @@ service netif cloneup With this network setup, services in your jails are not accessible from the outside network, nor can they reach outside. You need forward ports from your host's external interface to the jails and to enable network access translation (NAT). Bastille integrates with BSD's [PF firewall][10] for this task. The following `pf.conf` configures the PF firewall such that Bastille can add port forwarding rules to the firewall dynamically: - ``` ext_if="ue0" @@ -134,8 +128,8 @@ set block-policy return scrub in on $ext_if all fragment reassemble set skip on lo -table <jails> persist -nat on $ext_if from <jails> to any -> ($ext_if) +table persist +nat on $ext_if from to any -> ($ext_if) rdr-anchor "rdr/*" @@ -147,7 +141,6 @@ pass in inet proto tcp from any to any port ssh flags S/SA modulate state You also need to enable and start PF for these rules to take effect. Note that if you work through an SSH connection, starting PF will terminate your connection, and you will need to log in again: - ``` sysrc pf_enable="YES" service pf restart @@ -157,14 +150,12 @@ service pf restart To create a jail, Bastille needs a few parameters. First, it needs a name for the jail you're creating. It is an important parameter, as you will always refer to a jail by its name. I chose the name of the most famous Hungarian jail for the most elite criminals, but in real life, jail names often refer to the jail's function, like `syslogserver`. You also need to set the FreeBSD release you're using and an internet protocol (IP) address. I used a random `10.0.0.0/8` IP address range, but if your internal network already uses addresses from that, then using the `192.168.0.0/16` is probably a better idea: - ``` -`bastille create csillag 12.2-RELEASE 10.17.89.51` +bastille create csillag 12.2-RELEASE 10.17.89.51 ``` Your new jail should be up and running within a few seconds. It is a complete FreeBSD base system without any extra packages. So install some packages, like my favorite text editor, inside the jail: - ``` root@generic:~ # bastille pkg csillag install joe [csillag]: @@ -190,22 +181,20 @@ Checking integrity... done (0 conflicting) You can install multiple packages at the same time. Install Python 2, Bash, and Git: - ``` -`bastille pkg csillag install bash python2 git` +bastille pkg csillag install bash python2 git ``` Now you can start working in your new, freshly created jail. There are no network services installed in it, but you can reach it through its console: - ``` root@generic:~ # bastille console csillag [csillag]: root@csillag:~ # python2 Python 2.7.18 (default, Feb  2 2021, 01:53:44) -[GCC FreeBSD Clang 10.0.1 ([git@github.com][11]:llvm/llvm-project.git llvmorg-10.0.1- on freebsd12 +[GCC FreeBSD Clang 10.0.1 (git@github.com:llvm/llvm-project.git llvmorg-10.0.1- on freebsd12 Type "help", "copyright", "credits" or "license" for more information. ->>> +>>> root@csillag:~ # logout root@generic:~ # @@ -217,21 +206,18 @@ The previous example manually installed some packages inside a jail. Setting up To use templates, you need to install Git on the host: - ``` -`pkg install git` +pkg install git ``` For example, to bootstrap the `syslog-ng` template, use: - ``` -`bastille bootstrap https://gitlab.com/BastilleBSD-Templates/syslog-ng` +bastille bootstrap https://gitlab.com/BastilleBSD-Templates/syslog-ng ``` Create a new jail, apply the template, and redirect an external port to it: - ``` bastille create alcatraz 12.2-RELEASE 10.17.89.50 bastille template alcatraz BastilleBSD-Templates/syslog-ng @@ -240,7 +226,6 @@ bastille rdr alcatraz tcp 514 514 To test the new service within the jail, use telnet to connect port 514 of your host and enter some random text. Use the `tail` command within your jail to see what you just entered: - ``` root@generic:~ # tail /usr/local/bastille/jails/alcatraz/root/var/log/messages Feb  6 03:57:27 alcatraz sendmail[3594]: gethostbyaddr(10.17.89.50) failed: 1 @@ -249,26 +234,26 @@ Feb  6 04:07:18 192.168.1.126 this is a test Feb  6 04:07:20 alcatraz syslog-ng[1186]: Syslog connection closed; fd='23', client='AF_INET(192.168.1.126:50104)', local='AF_INET(0.0.0.0:514)' ``` -Since I'm a [syslog-ng][12] evangelist, I used the syslog-ng template in my example, but there are many more available. Check the full list of [Bastille templates][13] to learn about them. +Since I'm a [syslog-ng][11] evangelist, I used the syslog-ng template in my example, but there are many more available. Check the full list of [Bastille templates][12] to learn about them. ### What's next? -I hope that this article inspires you to try FreeBSD and Bastille on your Raspberry Pi. It was just enough information to get you started; to learn about all of Bastille's cool features—like auditing your jails for vulnerabilities and updating software within them—in the [documentation][14]. +I hope that this article inspires you to try FreeBSD and Bastille on your Raspberry Pi. It was just enough information to get you started; to learn about all of Bastille's cool features—like auditing your jails for vulnerabilities and updating software within them—in the [documentation][13]. -------------------------------------------------------------------------------- via: https://opensource.com/article/21/3/bastille-raspberry-pi 作者:[Peter Czanik][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://opensource.com/users/czanik -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/containers_modules_networking_hardware_parts.png?itok=rPpVj92- (Parts, modules, containers for software) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/containers_modules_networking_hardware_parts.png [2]: https://opensource.com/article/18/1/history-low-level-container-runtimes [3]: https://docs.freebsd.org/en/books/handbook/jails/ [4]: https://opensource.com/article/18/11/behind-scenes-linux-containers @@ -278,7 +263,6 @@ via: https://opensource.com/article/21/3/bastille-raspberry-pi [8]: https://opensource.com/article/19/3/netbsd-raspberry-pi [9]: https://www.freebsd.org/where/ [10]: https://en.wikipedia.org/wiki/PF_(firewall) -[11]: mailto:git@github.com -[12]: https://www.syslog-ng.com/ -[13]: https://gitlab.com/BastilleBSD-Templates/ -[14]: https://bastille.readthedocs.io/en/latest/ +[11]: https://www.syslog-ng.com/ +[12]: https://gitlab.com/BastilleBSD-Templates/ +[13]: https://bastille.readthedocs.io/en/latest/ diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md index 5899e54827..a51532e521 100644 --- a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md +++ b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md @@ -1,18 +1,20 @@ -[#]: subject: (Get started with edge computing by programming embedded systems) -[#]: via: (https://opensource.com/article/21/3/rtos-embedded-development) -[#]: author: (Alan Smithee https://opensource.com/users/alansmithee) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Get started with edge computing by programming embedded systems" +[#]: via: "https://opensource.com/article/21/3/rtos-embedded-development" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Get started with edge computing by programming embedded systems ====== -The AT device package for controlling wireless modems is one of RTOS's -most popular extensions. +The AT device package for controlling wireless modems is one of RTOS's most popular extensions. + ![Looking at a map][1] +Image by: opensource.com + RTOS is an open source [operating system for embedded devices][2] developed by RT-Thread. It provides a standardized, friendly foundation for developers to program a variety of devices and includes a large number of useful libraries and toolkits to make the process easier. Like Linux, RTOS uses a modular approach, which makes it easy to extend. Packages enable developers to use RTOS for any device they want to target. One of RTOS's most popular extensions is the AT device package, which includes porting files and sample code for different AT devices (i.e., modems). @@ -37,77 +39,71 @@ The at_device package is distributed under an LGPLv2.1 license, and it's easy to To use AT devices with RTOS, you must enable the AT component library and AT socket functionality. This requires: - * RT_Thread 4.0.2+ - * RT_Thread AT component 1.3.0+ - * RT_Thread SAL component - * RT-Thread netdev component - - +* RT_Thread 4.0.2+ +* RT_Thread AT component 1.3.0+ +* RT_Thread SAL component +* RT-Thread netdev component The AT device package has been updated for multiple versions. Different versions require different configuration options, so they must fit into the corresponding system versions. Most of the currently available AT device package versions are: - * V1.2.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.0.0 - * V1.3.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.1.0 - * V1.4.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 - * V1.5.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 - * V1.6.0: For RT-Thread versions equal to V3.1.3 or V4.0.1, AT component version equals V1.2.0 - * V2.0.0/V2.0.1: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 - * Latest version: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 - - +* V1.2.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.0.0 +* V1.3.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.1.0 +* V1.4.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 +* V1.5.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 +* V1.6.0: For RT-Thread versions equal to V3.1.3 or V4.0.1, AT component version equals V1.2.0 +* V2.0.0/V2.0.1: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 +* Latest version: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 Getting the right version is mostly an automatic process done in menuconfig. It provides the best version of the at_device package based on your current system environment. As mentioned, different versions require different configuration options. For instance, version 1.x supports enabling one AT device at a time: - ``` -RT-Thread online packages  ---> -     IoT - internet of things  ---> +RT-Thread online packages  ---> +     IoT - internet of things  --->         -*- AT DEVICE: RT-Thread AT component porting or samples for different device           [ ]   Enable at device init by thread -              AT socket device modules (Not selected, please select)  --->     -              Version (V1.6.0)  ---> +              AT socket device modules (Not selected, please select)  --->     +              Version (V1.6.0)  ---> ``` The option to enable the AT device init by thread dictates whether the configuration creates a separate thread to initialize the device network. Version 2.x supports enabling multiple AT devices at the same time: - ``` -RT-Thread online packages  ---> -     IoT - internet of things  ---> +RT-Thread online packages  ---> +     IoT - internet of things  --->         -*- AT DEVICE: RT-Thread AT component porting or samples for different device -        [*]   Quectel M26/MC20  ---> +        [*]   Quectel M26/MC20  --->           [*]   Enable initialize by thread           [*]   Enable sample           (-1)    Power pin           (-1)    Power status pin           (uart3) AT client device name           (512)   The maximum length of receive line buffer -        [ ]   Quectel EC20  ---> -        [ ]   Espressif ESP32  ---> -        [*]   Espressif ESP8266  ---> +        [ ]   Quectel EC20  ---> +        [ ]   Espressif ESP32  ---> +        [*]   Espressif ESP8266  --->           [*]   Enable initialize by thread           [*]   Enable sample           (realthread) WIFI ssid           (12345678) WIFI password           (uart2) AT client device name           (512)   The maximum length of receive line buffer -        [ ]   Realthread RW007  ---> -        [ ]   SIMCom SIM800C  ---> -        [ ]   SIMCom SIM76XX  ---> -        [ ]   Notion MW31  ---> -        [ ]   WinnerMicro W60X  ---> -        [ ]   AiThink A9/A9G  ---> -        [ ]   Quectel BC26  ---> -        [ ]   Luat air720  ---> -        [ ]   GOSUNCN ME3616  ---> -        [ ]   ChinaMobile M6315  ---> -        [ ]   Quectel BC28  ---> -        [ ]   Quectel ec200x  ---> -        Version (latest)  ---> +        [ ]   Realthread RW007  ---> +        [ ]   SIMCom SIM800C  ---> +        [ ]   SIMCom SIM76XX  ---> +        [ ]   Notion MW31  ---> +        [ ]   WinnerMicro W60X  ---> +        [ ]   AiThink A9/A9G  ---> +        [ ]   Quectel BC26  ---> +        [ ]   Luat air720  ---> +        [ ]   GOSUNCN ME3616  ---> +        [ ]   ChinaMobile M6315  ---> +        [ ]   Quectel BC28  ---> +        [ ]   Quectel ec200x  ---> +        Version (latest)  ---> ``` This version includes many other options, including one to enable sample code, which might be particularly useful to new developers or any developer using an unfamiliar device. @@ -116,24 +112,21 @@ You can also control options to choose which pin you want to use to supply power In short, there is no shortage of control options. - * V2.X.X version supports enabling multiple AT devices simultaneously, and the enabled device information can be viewed with the `ifocnfig` command in [finsh shell][6]. - * V2.X.X version requires the device to register before it's used; the registration can be done in the samples directory file or customized in the application layer. - * Pin options such as **Power pin** and **Power status pin** are configured according to the device's hardware connection. They can be configured as `-1` if the hardware power-on function is not used. - * One AT device should correspond to one serial name, and the **AT client device name** for each device should be different. - - +* V2.X.X version supports enabling multiple AT devices simultaneously, and the enabled device information can be viewed with the `ifocnfig` command in [finsh shell][6]. +* V2.X.X version requires the device to register before it's used; the registration can be done in the samples directory file or customized in the application layer. +* Pin options such as Power pin and Power status pin are configured according to the device's hardware connection. They can be configured as `-1` if the hardware power-on function is not used. +* One AT device should correspond to one serial name, and the AT client device name for each device should be different. ### AT components configuration options When the AT device package is selected and device support is enabled, client functionality for the AT component is selected by default. That means more options—this time for the AT component: - ``` -RT-Thread Components  ---> -    Network  ---> -        AT commands  ---> +RT-Thread Components  ---> +    Network  ---> +        AT commands  --->     [ ]   Enable debug log output -    [ ]   Enable AT commands server +    [ ]   Enable AT commands server     -*-   Enable AT commands client     (1)     The maximum number of supported clients     -*-     Enable BSD Socket API support by AT commnads @@ -144,11 +137,9 @@ RT-Thread Components  ---> The configuration options related to the AT device package are: - * **The maximum number of supported clients**: Selecting multiple devices in the AT device package requires this option to be configured as the corresponding value. - * **Enable BSD Socket API support by AT commands**: This option will be selected by default when selecting the AT device package. - * **The maximum length of AT Commands buffe:** The maximum length of the data the AT commands can send. - - +* The maximum number of supported clients: Selecting multiple devices in the AT device package requires this option to be configured as the corresponding value. +* Enable BSD Socket API support by AT commands: This option will be selected by default when selecting the AT device package. +* The maximum length of AT Commands buffe: The maximum length of the data the AT commands can send. ### Anything is possible @@ -159,15 +150,15 @@ When you start programming embedded systems, you quickly realize that you can cr via: https://opensource.com/article/21/3/rtos-embedded-development 作者:[Alan Smithee][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://opensource.com/users/alansmithee -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png?itok=L0BQHgjr (Looking at a map) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png [2]: https://opensource.com/article/20/6/open-source-rtos [3]: https://en.wikipedia.org/wiki/Berkeley_sockets [4]: https://github.com/RT-Thread/rtthread-manual-doc/blob/master/at/at.md diff --git a/sources/tech/20210318 Get started with an open source customer data platform.md b/sources/tech/20210318 Get started with an open source customer data platform.md index 9cdbc1d34d..ec2f2c9afa 100644 --- a/sources/tech/20210318 Get started with an open source customer data platform.md +++ b/sources/tech/20210318 Get started with an open source customer data platform.md @@ -1,19 +1,20 @@ -[#]: subject: (Get started with an open source customer data platform) -[#]: via: (https://opensource.com/article/21/3/rudderstack-customer-data-platform) -[#]: author: (Amey Varangaonkar https://opensource.com/users/ameypv) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Get started with an open source customer data platform" +[#]: via: "https://opensource.com/article/21/3/rudderstack-customer-data-platform" +[#]: author: "Amey Varangaonkar https://opensource.com/users/ameypv" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " Get started with an open source customer data platform ====== -As an open source alternative to Segment, RudderStack collects and -routes event stream (or clickstream) data and automatically builds your -customer data lake on your data warehouse. +As an open source alternative to Segment, RudderStack collects and routes event stream (or clickstream) data and automatically builds your customer data lake on your data warehouse. + ![Person standing in front of a giant computer screen with numbers, data][1] +Image by: Opensource.com + [RudderStack][2] is an open source, warehouse-first customer data pipeline. It collects and routes event stream (or clickstream) data and automatically builds your customer data lake on your data warehouse. RudderStack is commonly known as the open source alternative to the customer data platform (CDP), [Segment][3]. It provides a more secure, flexible, and cost-effective solution in comparison. You get all the CDP functionality with added security and full ownership of your customer data. @@ -24,60 +25,51 @@ Warehouse-first tools like RudderStack are architected to build functional data Before you get started, you will need the RudderStack workspace token from your RudderStack dashboard. To get it: - 1. Go to the [RudderStack dashboard][4]. - - 2. Log in using your credentials (or sign up for an account, if you don't already have one). - -![RudderStack login screen][5] - -(RudderStack, [CC BY-SA 4.0][6]) - - 3. Once you've logged in, you should see the workspace token on your RudderStack dashboard. - -![RudderStack workspace token][7] - -(RudderStack, [CC BY-SA 4.0][6]) +1. Go to the [RudderStack dashboard][4]. +2. Log in using your credentials (or sign up for an account, if you don't already have one). + ![RudderStack login screen][7] +3. Once you've logged in, you should see the workspace token on your RudderStack dashboard. + ![RudderStack workspace token][8] ### Installing RudderStack Setting up a RudderStack open source instance is straightforward. You have two installation options: - 1. On your Kubernetes cluster, using RudderStack's Helm charts - 2. On your Docker container, using the `docker-compose` command +1. On your Kubernetes cluster, using RudderStack's Helm charts +2. On your Docker container, using the `docker-compose` command - - -This tutorial explains how to use both options but assumes that you already have [Git installed on your system][8]. +This tutorial explains how to use both options but assumes that you already have [Git installed on your system][9]. #### Deploying with Kubernetes -You can deploy RudderStack on your Kubernetes cluster using the [Helm][9] package manager. +You can deploy RudderStack on your Kubernetes cluster using the [Helm][10] package manager. -_If you plan to use RudderStack in production, we strongly recommend using this method._ This is because the Docker images are updated with bug fixes more frequently than the GitHub repository (which follows a monthly release cycle). +*If you plan to use RudderStack in production, we strongly recommend using this method.* This is because the Docker images are updated with bug fixes more frequently than the GitHub repository (which follows a monthly release cycle). Before you can deploy RudderStack on Kubernetes, make sure you have the following prerequisites in place: - * [Install and connect kubectl][10] to your Kubernetes cluster. - * [Install Helm][11] on your system, either through the Helm installer scripts or its package manager. - * Finally, get the workspace token from the RudderStack dashboard by following the steps in the [Getting the RudderStack workspace token][12] section. - - +* [Install and connect kubectl][11] to your Kubernetes cluster. +* [Install Helm][12] on your system, either through the Helm installer scripts or its package manager. +* Finally, get the workspace token from the RudderStack dashboard by following the steps in the Getting the RudderStack workspace token section. Once you've completed all the prerequisites, deploy RudderStack on your default Kubernetes cluster: - 1. Find the Helm chart required to deploy RudderStack in this [repo][13]. - 2. Install the Helm chart with a release name of your choice (`my-release`, in this example) from the root directory of the repo in the previous step: [code] $ helm install \ -my-release ./ --set \ -rudderWorkspaceToken="<your workspace token from RudderStack dashboard>" -``` +1. Find the Helm chart required to deploy RudderStack in this [repo][13]. +2. Install the Helm chart with a release name of your choice (my-release, in this example) from the root directory of the repo in the previous step: + ``` + $ helm install \ + my-release ./ --set \ + rudderWorkspaceToken="" + ``` + This deploys RudderStack on your default Kubernetes cluster configured with kubectl using the workspace token you obtained from the RudderStack dashboard. For more details on the configurable parameters in the RudderStack Helm chart or updating the versions of the images used, consult the [documentation][14]. -### Deploying with Docker +#### Deploying with Docker Docker is the easiest and fastest way to set up your open source RudderStack instance. @@ -85,12 +77,12 @@ First, get the workspace token from the RudderStack dashboard by following the s Once you have the RudderStack workspace token: - 1. Download the [**rudder-docker.yml**][15] docker-compose file required for the installation. - 2. Replace `` in this file with your RudderStack workspace token. - 3. Set up RudderStack on your Docker container by running: [code]`docker-compose -f rudder-docker.yml up` -``` - - +1. Download the [rudder-docker.yml][15] docker-compose file required for the installation. +2. Replace `` in this file with your RudderStack workspace token. +3. Set up RudderStack on your Docker container by running: + ``` + docker-compose -f rudder-docker.yml up + ``` Now RudderStack should be up and running on your Docker instance. @@ -98,128 +90,115 @@ Now RudderStack should be up and running on your Docker instance. You can verify your RudderStack installation by sending test events using the bundled shell script: - 1. Clone the GitHub repository: [code]`git clone https://github.com/rudderlabs/rudder-server.git` -``` - 2. In this tutorial, you will verify RudderStack by sending test events to Google Analytics. Make sure you have a Google Analytics account and keep the tracking ID handy. Also, note that the Google Analytics account needs to have a `Web` property. +1. Clone the GitHub repository: + ``` + git clone https://github.com/rudderlabs/rudder-server.git + ``` +2. In this tutorial, you will verify RudderStack by sending test events to Google Analytics. Make sure you have a Google Analytics account and keep the tracking ID handy. Also, note that the Google Analytics account needs to have a `Web` property. +3. In the [RudderStack hosted control plane][16]: + * Add a source on the RudderStack dashboard by following the [Adding a source and destination in RudderStack][17] guide. You can use either of RudderStack's event stream software development kits (SDKs) for sending events from your app. This example sets up the [JavaScript SDK][18] as a source on the dashboard. Note: You aren't actually installing the RudderStack JavaScript SDK on your site in this step; you are just creating the source in RudderStack. + * Configure a Google Analytics destination on the RudderStack dashboard using the instructions in the guide mentioned previously. Use the Google Analytics tracking ID you kept from step 2 of this section: - 3. In the [RudderStack hosted control plane][4]: - - * Add a source on the RudderStack dashboard by following the [Adding a source and destination in RudderStack][16] guide. You can use either of RudderStack's event stream software development kits (SDKs) for sending events from your app. This example sets up the [JavaScript SDK][17] as a source on the dashboard. **Note:** You aren't actually installing the RudderStack JavaScript SDK on your site in this step; you are just creating the source in RudderStack. - - * Configure a Google Analytics destination on the RudderStack dashboard using the instructions in the guide mentioned previously. Use the Google Analytics tracking ID you kept from step 2 of this section: - -![Google Analytics tracking ID][18] - -(RudderStack, [CC BY-SA 4.0][6]) - - 4. As mentioned before, RudderStack bundles a shell script that generates test events. Get the **Source write key** from the RudderStack dashboard: - -![RudderStack source write key][19] - -(RudderStack, [CC BY-SA 4.0][6]) - - 5. Next, run: [code]`./scripts/generate-event https://hosted.rudderlabs.com/v1/batch` -``` - - 6. Finally, log into your Google Analytics account and verify that the events were delivered. In your Google Analytics account, navigate to **RealTime** -> **Events**. The RealTime view is important because some dashboards can take one to two days to refresh. + ![Google Analytics tracking ID][27] +4. As mentioned before, RudderStack bundles a shell script that generates test events. Get the **Source write key** from the RudderStack dashboard: + ![RudderStack source write key][28] +5. Next, run: + ``` + ./scripts/generate-event https://hosted.rudderlabs.com/v1/batch + ``` +6. Finally, log into your Google Analytics account and verify that the events were delivered. In your Google Analytics account, navigate to *RealTime** -> **Events**. The RealTime view is important because some dashboards can take one to two days to refresh. ### Optional: Setting up the open source control plane -RudderStack's core architecture contains two major components: the data plane and the control plane. The data plane, [rudder-server][20], delivers your event data, and the RudderStack hosted control plane manages the configuration of your sources and destinations. +RudderStack's core architecture contains two major components: the data plane and the control plane. The data plane, [rudder-server][29], delivers your event data, and the RudderStack hosted control plane manages the configuration of your sources and destinations. -However, if you want to manage the source and destination configurations locally, you can set an open source control plane in your environment using the RudderStack Config Generator. (You must have [Node.js][21] installed on your system to use it.) +However, if you want to manage the source and destination configurations locally, you can set an open source control plane in your environment using the RudderStack Config Generator. (You must have [Node.js][30] installed on your system to use it.) Here are the steps to set up the control plane: - 1. Install and set up RudderStack on the platform of your choice by following the instructions above. - 2. Run the following commands in this order: - * `cd utils/config-gen` - * `npm install` - * `npm start` - - +1. Install and set up RudderStack on the platform of your choice by following the instructions above. +2. Run the following commands in this order: + ``` + cd utils/config-gen + npm install + npm start + ``` You should now be able to access the open source control plane at `http://localhost:3000` by default. If your setup is successful, you will see the user interface. -![RudderStack open source control plane][22] +![RudderStack open source control plane][31] -(RudderStack, [CC BY-SA 4.0][6]) - -To export the existing workspace configuration from the RudderStack-hosted control plane and have RudderStack use it, consult the [docs][23]. +To export the existing workspace configuration from the RudderStack-hosted control plane and have RudderStack use it, consult the [docs][32]. ### RudderStack and open source -The core of RudderStack is in the [rudder-server][20] repository. It is open source, licensed under [AGPL-3.0][24]. A majority of the destination integrations live in the [rudder-transformer][25] repository. They are open source as well, licensed under the [MIT License][26]. The SDKs and instrumentation repositories, several tool and utility repositories, and even some [dbt][27] model repositories for use-cases like customer journey analysis and sessionization for the data residing in your data warehouse are open source, licensed under the MIT License, and available in the [GitHub repository][28]. +The core of RudderStack is in the [rudder-server][33] repository. It is open source, licensed under [AGPL-3.0][34]. A majority of the destination integrations live in the [rudder-transformer][35] repository. They are open source as well, licensed under the [MIT License][36]. The SDKs and instrumentation repositories, several tool and utility repositories, and even some [dbt][37] model repositories for use-cases like customer journey analysis and sessionization for the data residing in your data warehouse are open source, licensed under the MIT License, and available in the [GitHub repository][38]. -You can use RudderStack's open source offering, rudder-server, on your platform of choice. There are setup guides for [Docker][29], [Kubernetes][30], [native installation][31], and [developer machines][32]. +You can use RudderStack's open source offering, rudder-server, on your platform of choice. There are setup guides for [Docker][39], [Kubernetes][40], [native installation][41], and [developer machines][42]. RudderStack open source offers: - 1. RudderStack event stream - 2. 15+ SDKs and source integrations to ingest event data - 3. 80+ destination and warehouse integrations - 4. Slack community support - - +1. RudderStack event stream +2. 15+ SDKs and source integrations to ingest event data +3. 80+ destination and warehouse integrations +4. Slack community support #### RudderStack Cloud -RudderStack also offers a managed option, [RudderStack Cloud][33]. It is fast, reliable, and highly scalable with a multi-node architecture and sophisticated error-handling mechanism. You can hit peak event volume without worrying about downtime, loss of events, or latency. +RudderStack also offers a managed option, [RudderStack Cloud][43]. It is fast, reliable, and highly scalable with a multi-node architecture and sophisticated error-handling mechanism. You can hit peak event volume without worrying about downtime, loss of events, or latency. -Explore our open source repos on [GitHub][28], subscribe to [our blog][34], and follow us on social media: [Twitter][35], [LinkedIn][36], [dev.to][37], [Medium][38], and [YouTube][39]! +Image By: (RudderStack, CC BY-SA 4.0) -------------------------------------------------------------------------------- via: https://opensource.com/article/21/3/rudderstack-customer-data-platform 作者:[Amey Varangaonkar][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://opensource.com/users/ameypv -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_metrics_analytics_desktop_laptop.png?itok=9QXd7AUr (Person standing in front of a giant computer screen with numbers, data) +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/data_metrics_analytics_desktop_laptop.png [2]: https://rudderstack.com/ [3]: https://segment.com/ [4]: https://app.rudderstack.com/ -[5]: https://opensource.com/sites/default/files/uploads/rudderstack_login.png (RudderStack login screen) -[6]: https://creativecommons.org/licenses/by-sa/4.0/ -[7]: https://opensource.com/sites/default/files/uploads/rudderstack_workspace-token.png (RudderStack workspace token) -[8]: https://opensource.com/life/16/7/stumbling-git -[9]: https://helm.sh/ -[10]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ -[11]: https://helm.sh/docs/intro/install/ -[12]: tmp.AhGpFIyrbZ#token +[7]: https://opensource.com/sites/default/files/uploads/rudderstack_login.png +[8]: https://opensource.com/sites/default/files/uploads/rudderstack_workspace-token.png +[9]: https://opensource.com/life/16/7/stumbling-git +[10]: https://helm.sh/ +[11]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ +[12]: https://helm.sh/docs/intro/install/ [13]: https://github.com/rudderlabs/rudderstack-helm [14]: https://docs.rudderstack.com/installing-and-setting-up-rudderstack/kubernetes [15]: https://raw.githubusercontent.com/rudderlabs/rudder-server/master/rudder-docker.yml -[16]: https://docs.rudderstack.com/get-started/adding-source-and-destination-rudderstack -[17]: https://docs.rudderstack.com/rudderstack-sdk-integration-guides/rudderstack-javascript-sdk -[18]: https://opensource.com/sites/default/files/uploads/googleanalyticstrackingid.png (Google Analytics tracking ID) -[19]: https://opensource.com/sites/default/files/uploads/rudderstack_sourcewritekey.png (RudderStack source write key) -[20]: https://github.com/rudderlabs/rudder-server -[21]: https://nodejs.org/en/download/ -[22]: https://opensource.com/sites/default/files/uploads/rudderstack_controlplane.png (RudderStack open source control plane) -[23]: https://docs.rudderstack.com/how-to-guides/rudderstack-config-generator -[24]: https://www.gnu.org/licenses/agpl-3.0-standalone.html -[25]: https://github.com/rudderlabs/rudder-transformer -[26]: https://opensource.org/licenses/MIT -[27]: https://www.getdbt.com/ -[28]: https://github.com/rudderlabs -[29]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/docker -[30]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/kubernetes -[31]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/native-installation -[32]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/developer-machine-setup -[33]: https://resources.rudderstack.com/rudderstack-cloud -[34]: https://rudderstack.com/blog/ -[35]: https://twitter.com/RudderStack -[36]: https://www.linkedin.com/company/rudderlabs/ -[37]: https://dev.to/rudderstack -[38]: https://rudderstack.medium.com/ -[39]: https://www.youtube.com/channel/UCgV-B77bV_-LOmKYHw8jvBw +[16]: https://app.rudderstack.com/ +[17]: https://docs.rudderstack.com/get-started/adding-source-and-destination-rudderstack +[18]: https://docs.rudderstack.com/rudderstack-sdk-integration-guides/rudderstack-javascript-sdk +[20]: https://docs.rudderstack.com/get-started/adding-source-and-destination-rudderstack +[21]: https://docs.rudderstack.com/rudderstack-sdk-integration-guides/rudderstack-javascript-sdk +[24]: https://docs.rudderstack.com/get-started/adding-source-and-destination-rudderstack +[25]: https://docs.rudderstack.com/rudderstack-sdk-integration-guides/rudderstack-javascript-sdk +[27]: https://opensource.com/sites/default/files/uploads/googleanalyticstrackingid.png +[28]: https://opensource.com/sites/default/files/uploads/rudderstack_sourcewritekey.png +[29]: https://github.com/rudderlabs/rudder-server +[30]: https://nodejs.org/en/download/ +[31]: https://opensource.com/sites/default/files/uploads/rudderstack_controlplane.png +[32]: https://docs.rudderstack.com/how-to-guides/rudderstack-config-generator +[33]: https://github.com/rudderlabs/rudder-server +[34]: https://www.gnu.org/licenses/agpl-3.0-standalone.html +[35]: https://github.com/rudderlabs/rudder-transformer +[36]: https://opensource.org/licenses/MIT +[37]: https://www.getdbt.com/ +[38]: https://github.com/rudderlabs +[39]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/docker +[40]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/kubernetes +[41]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/native-installation +[42]: https://docs.rudderstack.com/get-started/installing-and-setting-up-rudderstack/developer-machine-setup +[43]: https://resources.rudderstack.com/rudderstack-cloud From 84e55256a724aecf7f43d4a46abdbe5ab1bc6136 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 26 Jun 2022 10:22:13 +0800 Subject: [PATCH 0129/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]:=2020210627=20How=20to=20Convert=20File=20Formats=20Wit?= =?UTF-8?q?h=20Pandoc=20in=20Linux=20-Quick=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Convert File Formats With Pandoc in Linux -Quick Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md b/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md index e6abce3857..db288d734d 100644 --- a/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md +++ b/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/pandoc-convert-file/) [#]: author: (Bill Dyer https://itsfoss.com/author/bill/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (lkxed) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From d287d2ba78c9094ad5cb2a6970ddb5a5c09adf0d Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 26 Jun 2022 11:02:47 +0800 Subject: [PATCH 0130/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]:=2020210627=20How=20to=20Convert=20File=20Formats=20Wit?= =?UTF-8?q?h=20Pandoc=20in=20Linux=20-Quick=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rmats With Pandoc in Linux -Quick Guide.md | 137 ----------------- ...rmats With Pandoc in Linux -Quick Guide.md | 138 ++++++++++++++++++ 2 files changed, 138 insertions(+), 137 deletions(-) delete mode 100644 sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md create mode 100644 translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md diff --git a/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md b/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md deleted file mode 100644 index db288d734d..0000000000 --- a/sources/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md +++ /dev/null @@ -1,137 +0,0 @@ -[#]: subject: (How to Convert File Formats With Pandoc in Linux [Quick Guide]) -[#]: via: (https://itsfoss.com/pandoc-convert-file/) -[#]: author: (Bill Dyer https://itsfoss.com/author/bill/) -[#]: collector: (lujun9972) -[#]: translator: (lkxed) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -How to Convert File Formats With Pandoc in Linux [Quick Guide] -====== - -In an earlier article, I covered the [procedure to batch convert a handful of Markdown files to HTML][1] using pandoc. In that article, multiple HTML files were created, but pandoc can do much more. It has been called “the Swiss army knife” of document conversion – and with good reason. There isn’t a lot that it can’t do. - -[Pandoc][2] can covert .docx, .odt, .html, .epub, LaTeX, DocBook, etc. to these and other formats, such as JATS, TEI Simple, AsciiDoc, and more. - -Yes, this means that pandoc can convert .docx files to .pdf and .html, but you may be thinking: “Word can export files to .pdf and .html too. Why would I need pandoc?” - -You would have a good point there, but since pandoc can convert so many formats, it could well become your go-to tool for all of your conversion tasks. For example, many of us know that [Markdown editors][3] can export its Markdown files to .html. With pandoc, Markdown files can be converted to numerous other formats as well. - -I rarely have Markdown export to HTML; I normally let pandoc do it. - -### Converting File Formats with Pandoc - -![][4] - -Here, I will convert Markdown files into a few different formats. I do almost all of my writing using Markdown syntax, but I often have to convert to another format: .docx files are usually required for school work, .html for web pages that I create – and for .epub work, .pdf for flyers and handouts, and even an occasional TEI Simple file for a university digital humanities project. Pandoc can handle all of these, and more, easily. - -First, you need to [install pandoc][5]. Also, to create .pdf files, LaTeX will be needed as well. The package I prefer is [TeX Live][6]. - -**Note**: If you would like to try out pandoc before installing it, there is an online try-out page at: - -#### Installing pandoc and texlive - -Users of Ubuntu and other Debian distros can type the following commands in the terminal: - -``` -sudo apt-get update -sudo apt-get install pandoc texlive -``` - -Notice on the second line, you are installing pandoc and texlive in one shot. [apt-get command][7] will have no problem with this, but go get some coffee; this may take a few minutes. - -#### Getting to Conversion - -Once pandoc and texlive are installed, you can burn through some work! - -The sample document for this project will be an article that was first published in the _North American Review_ in December of 1894, and is titled: “How To Repel Train Robbers”. The Markdown file that I will be using was created some time ago as part of a restoration project. - -The file: `how_to_repel_train_robbers.md` is located in my Documents directory, in a sub-directory named samples. Here is what it looks like in Ghostwriter. - -![Markdown file in Ghostwriter][8] - -I want to create .docx, .pdf, and .html versions of this file. - -#### The First Conversion - -I’ll start with making a .pdf copy first, since I went through the trouble of installing a LaTeX package. - -While in the ~/Documents/samples/ directory, I type the following to create a .pdf file: - -``` -pandoc -o htrtr.pdf how_to_repel_train_robbers.md -``` - -The above command will create a file called htrtr.pdf from the how_to_repel_train_robbers.md file. The reason I used htrtr as a name was that it is shorter than how_to_repel_train_robbers – htrtr is the first letter of each word in the long title. - -Here is a snapshot of the .pdf file once it is made: - -![Converted PDF file viewed in Ocular][9] - -#### The Second Conversion - -Next, I want to create a .docx file. The command is almost identical to the one I used to create the .pdf and it is: - -``` -pandoc -o htrtr.docx how_to_repel_train_robbers.md -``` - -In no time, a .docx file is created. Here is what it looks like in Libre Writer: - -![Converted DOCX file viewed in Libre Writer][10] - -#### The Third Conversion - -I may want to post this on the web, so a web page would be nice. I will create a .html file with this command: - -``` -pandoc -o htrtr.html how_to_repel_train_robbers.md -``` - -Again, the command to create it is very much like the last two conversions. Here is what the .html file looks like in a browser: - -![Converted HTML file viewed in Firefox][11] - -#### Noticed Anything Yet? - -Let’s look at the past commands again. They were: - -``` -pandoc -o htrtr.pdf how_to_repel_train_robbers.md -pandoc -o htrtr.docx how_to_repel_train_robbers.md -pandoc -o htrtr.html how_to_repel_train_robbers.md -``` - -The only thing different about these three commands is the extension next to htrtr. This gives you a hint that pandoc relies on the extension of the output filename you provide. - -### Conclusion - -Pandoc can do far more than the three little conversions done here. If you write with a preferred format, but need to convert the file to another format, chances are great that pandoc will be able to do it for you. - -What would you do with this? Would you automate this? What if you had a web site that had articles for your readers to download? You could modify these little commands to work as a script and your readers could decide which format they would like. You could offer .docx, .pdf, .odt, .epub, or more. Your readers choose, the proper conversion script runs, and your readers download their file. It can be done. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/pandoc-convert-file/ - -作者:[Bill Dyer][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://itsfoss.com/author/bill/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/convert-markdown-files/ -[2]: https://pandoc.org/ -[3]: https://itsfoss.com/best-markdown-editors-linux/ -[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/06/pandoc-quick-guide.png?resize=800%2C450&ssl=1 -[5]: https://pandoc.org/installing.html -[6]: https://www.tug.org/texlive/ -[7]: https://itsfoss.com/apt-get-linux-guide/ -[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_ghostwriter.png?resize=800%2C516&ssl=1 -[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_ocular.png?resize=800%2C509&ssl=1 -[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_libre_writer.png?resize=800%2C545&ssl=1 -[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_firefox.png?resize=800%2C511&ssl=1 diff --git a/translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md b/translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md new file mode 100644 index 0000000000..28abc9e483 --- /dev/null +++ b/translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md @@ -0,0 +1,138 @@ +[#]: subject: (How to Convert File Formats With Pandoc in Linux [Quick Guide]) +[#]: via: (https://itsfoss.com/pandoc-convert-file/) +[#]: author: (Bill Dyer https://itsfoss.com/author/bill/) +[#]: collector: (lujun9972) +[#]: translator: (lkxed) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +How to Convert File Formats With Pandoc in Linux [Quick Guide] +如何在 Linux 中使用 Pandoc 转换文件格式(快速指南) +====== + +在之前的一篇文章中,我介绍了 [使用 pandoc 将少量 Markdown 文件批量转换为 HTML 的过程][1]。在那篇文章中,我创建了多个 HTML 文件,但 Pandoc 可以做的更多。它被称为文档转换的“瑞士军刀” —— 这是有充分理由的。很少有它做不到的事情。 + +[Pandoc][2] 可以将 .docx、.odt、.html、.epub、LaTeX、DocBook 等格式互相转换,或者转换为其他格式,例如 JATS、TEI Simple、AsciiDoc 等。 + +是的,这意味着 Pandoc 可以将 .docx 文件转换为 .pdf 和 .html 文件,但你可能会想:“Word 也可以将文件导出为 .pdf 和 .html。为什么我需要 Pandoc 呢?” + +嗯,本来呢,你这个说法也没错,但考虑到 Pandoc 可以转换这么多格式,它很可能成为你所有转换任务的首选工具。例如,我们中的许多人都知道 [Markdown 编辑器][3] 可以将其 Markdown 文件导出为 .html。而使用 Pandoc 文件也可以转换为许多其他格式。 + +我很少将 Markdown 导出为 HTML。我通常让 Pandoc 来做这件事。 + +### 使用 Pandoc 转换文件格式 + +![][4] + +本文中,我会将 Markdown 文件转换成几种不同的格式。我几乎所有的写作都使用 Markdown 语法,但我经常需要转换为另一种格式:学校作业通常需要的 .docx 格式;我创建的网页通常需要的 .html 格式;工作需要的 .epub 格式;传单和讲义需要的 .pdf 格式;甚至包括大学数字人文项目偶尔需要的 TEI Simple 格式。Pandoc 可以轻松处理所有这些格式,甚至更多。 + +首先,你需要 [安装 pandoc][5]。此外,要创建 .pdf 文件,还需要 LaTeX。我最喜欢的套件是 [TeX Live][6]。 + +**注意**:如果你想在安装前试用 pandoc,这里有一个在线试用页面:。 + +#### 安装 pandoc 和 texlive + +Ubuntu 和其他 Debian 发行版的用户可以在终端中输入以下命令: + +``` +sudo apt-get update +sudo apt-get install pandoc texlive +``` + +请注意第二行,你将一次性安装 `pandoc` 和 `texlive`。[apt-get 命令][7] 支持你这样做。不过,我建议你先去喝杯咖啡,因为这可能需要几分钟的时间。 + +#### 开始转换 + +安装完成 `pandoc` 和 `texlive` 后,你就可以尝试用它们来完成一些工作了! + +该项目的示例文档将是一篇文章,该文章于 1894 年 12 月首次发表在《北美评论》上,标题为“如何击退火车劫匪”。我将使用的 Markdown 文件是前一段时间创建的,它是该文章的恢复项目的一部分(LCTT 译注:这是篇一百多年前发表的文章,我想“恢复”指的就是把它数字化吧)。 + +我把这篇文章保存为 `how_to_repel_train_robbers.md`,它位于我的 `Documents` 目录下,名为 `samples` 的子目录中。它在 Ghostwriter 中看起来是这样的: + +![在 Ghostwriter 中查看原始的 Markdown 文件][8] + +我想创建此文件的 .docx、.pdf 和 .html 版本。 + +#### 第一次转换 + +首先,我将制作一个 .pdf 副本,因为我在安装 LaTeX 包时遇到了些麻烦。 +、 +在 `~/Documents/samples/` 目录中,我输入以下,以创建一个 .pdf 文件: + +``` +pandoc -o htrtr.pdf how_to_repel_train_robbers.md +``` + +上述命令将基于 `how_to_repel_train_robbers.md` 文件,创建一个名为 `htrtr.pdf` 的文件。我使用 `htrtr` 作为名称的原因是:嗯,它比 `how_to_repel_train_robbers` 短。`htrtr` 其实是长标题中的单词首字母排列。 + +这是 .pdf 文件制作完成后的一个截图: + +![在 Ocular 中查看的转换后的 PDF 文件][9] + +#### 第二次转换 + +接下来,我想创建一个 .docx 文件。该命令与我用来创建 .pdf 的命令几乎相同,它是: + +``` +pandoc -o htrtr.docx how_to_repel_train_robbers.md +``` + +很快,一个 .docx 文件就创建好了。这是它在 Libre Writer 中的样子: + +![在 Libre Writer 中查看转换后的 DOCX 文件][10] + +#### 第三次转换 + +我可能会想在网上发布这个,所以再多一个支持网页的格式也不错。我将使用以下命令创建一个 .html 文件: + +``` +pandoc -o htrtr.html how_to_repel_train_robbers.md +``` + +同样,创建它的命令与前两次转换非常相似。这是该 .html 文件在浏览器中的样子: + +![在 Firefox 中查看的转换后的 HTML 文件][11] + +#### 注意到什么了吗? + +让我们再看看之前的命令。它们是: + +``` +pandoc -o htrtr.pdf how_to_repel_train_robbers.md +pandoc -o htrtr.docx how_to_repel_train_robbers.md +pandoc -o htrtr.html how_to_repel_train_robbers.md +``` + +这三个命令唯一不同的是 `htrtr` 后的扩展名。这提示你 pandoc 会依赖于你提供的输出文件扩展名(来决定目标转换格式)。 + +### 总结 + +Pandoc 可以做的远不止这里完成的三个小转换。如果你选择使用一个首选格式编写文件,但时不时又需要将文件转换为另一种格式,pandoc 很大概率都能为你完成。 + +现在,既然你已经学会了,你会用它做什么呢?你会把它自动化吗?如果你的网站上有文章供读者下载怎么办?你可以修改这些小命令,把它们编写成一个脚本,你的读者可以决定他们想要哪种格式。你可以提供 .docx、.pdf、.odt、.epub 或更多格式。你的读者只需要选择一种格式,然后对应的转换脚本就会执行,最后,你的读者下载他们想要的文件。这是完全可以做到的。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/pandoc-convert-file/ + +作者:[Bill Dyer][a] +选题:[lujun9972][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/bill/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/convert-markdown-files/ +[2]: https://pandoc.org/ +[3]: https://itsfoss.com/best-markdown-editors-linux/ +[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/06/pandoc-quick-guide.png?resize=800%2C450&ssl=1 +[5]: https://pandoc.org/installing.html +[6]: https://www.tug.org/texlive/ +[7]: https://itsfoss.com/apt-get-linux-guide/ +[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_ghostwriter.png?resize=800%2C516&ssl=1 +[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_ocular.png?resize=800%2C509&ssl=1 +[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_libre_writer.png?resize=800%2C545&ssl=1 +[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/convert_with_pandoc_firefox.png?resize=800%2C511&ssl=1 From b4ea1b4406a5cb02963bcd1fdea2f3c9f9b56fe9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 26 Jun 2022 11:03:29 +0800 Subject: [PATCH 0131/3123] RP @lkxed https://linux.cn/article-14758-1.html --- ...eator Reveals a New Debian Remix Distro.md | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) rename {translated/news => published}/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md (68%) diff --git a/translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md b/published/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md similarity index 68% rename from translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md rename to published/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md index 33802707a8..ac911d1337 100644 --- a/translated/news/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md +++ b/published/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md @@ -3,13 +3,14 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14758-1.html" -神秘的 GeckoLinux 创建者推出了一个新的 Debian Remix 发行版 +神秘的 GeckoLinux 创建者推出了一个新的 Debian 合成发行版 ====== -GeckoLinux 创建者推出了一个基于 Debian 的新 Linux 发行版,专注于简单性和可用性。 + +> GeckoLinux 创建者推出了一个基于 Debian 的新 Linux 发行版,专注于简单性和可用性。 ![Linux 螺旋][1] @@ -17,7 +18,7 @@ GeckoLinux 改进了的 openSUSE 体验,它的创建者一直保持匿名。 我不会评论这是好事还是坏事,但现在,开发者又带着另一个基于 Debian 的类似项目回来了。 -**SpiralLinux**,一个基于 Debian 的发行版,旨在使 Debian 可供最终用户使用。 +**SpiralLinux**,这是一个基于 Debian 的发行版,旨在使 Debian 适合最终用户使用。 ### SpiralLinux:基于 Debian 构建的发行版 @@ -27,27 +28,27 @@ GeckoLinux 改进了的 openSUSE 体验,它的创建者一直保持匿名。 那么,这个发行版有什么不同呢? -嗯,它的创建者说,这个项目旨在帮助你使用 Debian 的所有核心优势,而无需定制很多东西。 +嗯,它的创建者说,这个项目旨在帮助你获得 Debian 的所有核心优势,而无需定制很多东西。 -如果你想在桌面上使用 Debian,SpiralLinux 是一种接近原版的体验。你还可以根据需要升级到最新的稳定 Debian 版本(或不稳定/测试版),而不会丢失用户友好的自定义设置。 +如果你想在桌面上使用 Debian,SpiralLinux 是一种接近原版的体验。你还可以根据需要升级到最新的稳定 Debian 版本(或不稳定/测试版),而不会丢失方便易用的自定义设置。 -换句话说,SpiralLinux 使 Debian 适合桌面使用,而最不需要最终用户操心。 +换句话说,SpiralLinux 使 Debian 适合桌面使用,而最终用户只需付出最小的努力。 -为了实现这一点,SpiralLinux 使用了 Debian 官方软件包存储库,并提供了 live 安装方式,让你能够定制自己的 Debian 系统。 +为了实现这一点,SpiralLinux 使用了 Debian 官方软件包存储库,并提供了现场安装方式,让你能够定制自己的 Debian 系统。 此外,SpiralLinux 还具有以下功能: * 开箱即用的 VirtualBox 支持 -* 预装了专有媒体编解码器和非自由软件包存储库 +* 预装了专有的媒体编解码器和非自由软件包存储库 * 预装了专有固件 * 打印机支持 * 通过 GUI(软件中心)支持 Flatpak -* 默认情况下启用 zRAM 交换 +* 默认启用 zRAM 交换 * 多种桌面环境(Cinnamon、XFCE、Gnome、Plasma、MATE、Budgie、LXQt) -考虑到 Debian 始终坚持使用开源和自由软件包,最终用户必须自己搞定编解码器、驱动程序和其他软件包,从而使许多功能正常工作,获得令他们满意的桌面体验。 +Debian 始终坚持使用开源和自由软件包,最终用户必须自己搞定编解码器、驱动程序和其他软件包,才能使许多功能正常工作,获得令他们满意的桌面体验。 -SpiralLinux 似乎可以作为 Debian 的一个有用的替代品,就像 GeckoLinux 之于 openSUSE 一样。 +而 SpiralLinux 似乎可以作为 Debian 的一个有用的替代品,就像 GeckoLinux 之于 openSUSE 一样。 ### 下载 SpiralLinux @@ -55,7 +56,7 @@ SpiralLinux 似乎可以作为 Debian 的一个有用的替代品,就像 Gecko 你可以前往其托管在 GitHub 上的官网以了解更多信息,链接如下: -[SpiralLinux][3] +> **[SpiralLinux][3]** -------------------------------------------------------------------------------- @@ -64,7 +65,7 @@ via: https://news.itsfoss.com/debian-remix-spiral-linux/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cb606f06782ed7abe15d509efbb2facd6ea81d0e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 26 Jun 2022 11:52:53 +0800 Subject: [PATCH 0132/3123] RP @lkxed https://linux.cn/article-14759-1.html --- ...lable for All and Not Everyone Likes It.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) rename {translated/news => published}/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md (80%) diff --git a/translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md b/published/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md similarity index 80% rename from translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md rename to published/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md index c6559e0ac4..345b934ec0 100644 --- a/translated/news/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md +++ b/published/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md @@ -3,13 +3,14 @@ [#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14759-1.html" GitHub Copilot 现已可供所有人使用,但并非所有人都喜欢它 ====== -GitHub Copilot 来了,它能帮助程序员提供人工智能的编码建议,不过,它是否会让事情变得更糟呢? + +> GitHub Copilot 来了,它能帮助程序员,为他们提供人工智能的编码建议,不过,它是否会让事情变得更糟呢? ![GitHub][1] @@ -25,13 +26,13 @@ GitHub Copilot 来了,它能帮助程序员提供人工智能的编码建议 正如我在前面提到的,Copilot 已经处于技术预览阶段将近一年了。这意味着,GitHub 只允许非常有限数量的开发者免费使用它,以换取同意 GitHub 监控他们的使用情况,从而改进程序的最终版本。 -看起来 GitHub 终于满意地向公众发布它了嘛。现在,任何拥有 GitHub 帐户的人都应该能够使用它,尽管需要付出一定的代价(我很快就会在下面提到)。 +看起来 GitHub 终于满意地向公众发布了它。现在,任何拥有 GitHub 帐户的人都应该能够使用它,尽管需要付出一定的代价(我很快就会在下面提到)。 -[公告][3] 提到: +[公告][3] 中提到: > 直到不久前,人工智能都没有能够帮助改进代码,开发软件的过程几乎完全是手动的。现在,这种情况正在改变。今天,我很高兴地宣布,我们正在向所有个人开发者提供 [GitHub Copilot][4]。你的 AI 配对程序员来啦。 > -> [Thomas Dohmke][5],GitHub CEO +> —— [Thomas Dohmke][5],GitHub CEO Copilot 作为免费的编辑器扩展,已经帮助数百万开发者加快了他们的编程速度。然而,它确实是有代价的,无论是直接的还是间接的。 @@ -45,7 +46,7 @@ Copilot 作为免费的编辑器扩展,已经帮助数百万开发者加快了 围绕 GitHub Copilot 产品的争议巨大且令人担忧。从技术上讲,这个人工智能是使用大家托管在 GitHub 上的代码来进行训练的。 -因此,基本上,GitHub 是通过使用你的代码来提供一个新产品(如果你愿意的话,可以加点盐)。而且,关于 Copilot,可别忘了,自由软件基金会(FSF)也 [建议][6] 不要在 GitHub 上托管代码。 +因此,基本上,GitHub 是通过使用你的代码来提供一个新产品(如果你愿意的话,还可以加点料)。而且,关于 Copilot,可别忘了,自由软件基金会(FSF)也 [建议][6] 不要在 GitHub 上托管代码。 我们知道,企业总是喜欢利用事物,但有些人认为这应该不会直接损害托管在 GitHub 上的项目/代码。 @@ -53,7 +54,7 @@ Copilot 作为免费的编辑器扩展,已经帮助数百万开发者加快了 简而言之,在 Copilot 发布后,许多开发者都分享说,他们发现 GitHub Copilot 生成了受版权保护的代码: -> 我试了下 GitHub Copilot,一项付费服务​​,来看看它是否会使用带有限制性许可证的存储库的代码。我检查了它,看看它是否有我在之前雇主那里编写的代码,该代码有一个许可证,只允许其用于免费游戏,并且需要附加许可证。是的,它确实有。 +> 我试了下 GitHub Copilot,这是一项付费服务​​,来看看它是否会使用带有限制性许可证的存储库的代码。我检查了它,看看它是否有我在之前雇主那里编写的代码,该代码有一个许可证,只允许其用于免费游戏,并且需要附加许可证。是的,它确实有。 ![图源:推特上的 Chris Green][7] From 22b4bc4ae505d4fb2d5a1e6da91d7493275210da Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 26 Jun 2022 12:51:36 +0800 Subject: [PATCH 0133/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220625=20Download=20YouTube=20Videos=20with=20VLC?= =?UTF-8?q?=20-Because,=20Why=20Not--.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ube Videos with VLC -Because, Why Not--.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md diff --git a/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md b/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md new file mode 100644 index 0000000000..20e2395bc6 --- /dev/null +++ b/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md @@ -0,0 +1,96 @@ +[#]: subject: "Download YouTube Videos with VLC (Because, Why Not?)" +[#]: via: "https://itsfoss.com/download-youtube-videos-vlc/" +[#]: author: "Community https://itsfoss.com/author/itsfoss/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Download YouTube Videos with VLC (Because, Why Not?) +====== + +[VLC][1] is one of the [most popular video players for Linux][2] and other platforms. + +It’s not just a video player. It provides a number of multimedia and network-related features among other things. You’ll be surprised to [learn what VLC is capable of][3]. + +I’ll demonstrate a simple VLC feature and that is to download YouTube videos with it. + +Yes. You can play YouTube videos in VLC and download them too. Let me show you how. + +### Download YouTube videos with VLC Media Player + +Now, there are ways to [download YouTube videos][4]. Use a browser extension or use dedicated websites or tools for it. + +But if you don’t want to use anything additional, the already installed VLC player can be used for this purpose. + +**Important:**Before copying the link from YouTube, make sure to choose desired video quality from the YouTube player because we will get the same quality in which the video was streaming while copying the link. + +#### Step 1: Get the Video link of your desired video + +You can use any of your favorite browsers and copy the video link from the address bar. + +![copy youtube link][5] + +#### Step 2: Paste copied Link to Network Stream + +The option of Network stream lies under Media which is the first option of our top menu bar. Just click on Media and you will get the option of “Open Network Stream”. You can also use the shortcut to open Network Stream CTRL + N. + +![click on media and select network stream][6] + +Now, you just have to paste copied YouTube video link and click on the play button. I know it just plays video in our VLC but there is a little extra step that will allow us to download currently streaming video. + +![paste video link][7] + +#### Step 3: Get Location Link from Codec Information + +Under the codec information prompt, we will get a location link for the currently playing video. To open the Codec Information prompt, you can use the shortcut CTRL + J or you’ll find the option for Codec Information under “Tools”. + +![click on tools and then codec information][8] + +It will bring detailed info about currently streaming video. But what we need is ‘Location’. You just have to copy the location link and 90% of our task is complete. + +![copy location link][9] + +#### Step 4: Paste Location Link to New Tab + +Open any of your favorite browsers and paste copied location link to the new tab and it will start playing the exact video in the browser. + +Now, right-click on playing video and you will get an option for “Save Video As”. + +![click on save][10] + +It will open the file manager and ask you whether you want to save this video locally or not. You can also rename that file as by default it will be named “videoplayback.mp4” + +![showing file in folder][11] + +### Conclusion + +If you have internet connection issues or if you want to save some video for future viewing, downloading the YouTube video makes sense. + +Of course, we don’t encourage piracy. This method is just for fair use please make sure that the creator of the video has allowed the video for fair usage and also make sure to give credits to the original owner of the video before using it somewhere else. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/download-youtube-videos-vlc/ + +作者:[Community][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/itsfoss/ +[b]: https://github.com/lkxed +[1]: https://www.videolan.org/vlc/ +[2]: https://itsfoss.com/video-players-linux/ +[3]: https://itsfoss.com/vlc-pro-tricks-linux/ +[4]: https://itsfoss.com/download-youtube-videos-ubuntu/ +[5]: https://itsfoss.com/wp-content/uploads/2022/06/copy-Youtube-link-800x190.jpg +[6]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-media-and-select-network-stream.png +[7]: https://itsfoss.com/wp-content/uploads/2022/06/paste-video-link.png +[8]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-tools-and-then-codec-information-800x249.png +[9]: https://itsfoss.com/wp-content/uploads/2022/06/copy-location-link.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-save-800x424.jpg +[11]: https://itsfoss.com/wp-content/uploads/2022/06/showing-file-in-folder-800x263.png From 74105d12d888784a8bfed04a9def1da0745a3ae6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 26 Jun 2022 14:56:36 +0800 Subject: [PATCH 0134/3123] RP @robsean https://linux.cn/article-14760-1.html --- ...kage Version With Apt Command in Ubuntu.md | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) rename {translated/tech => published}/20220518 Install Specific Package Version With Apt Command in Ubuntu.md (66%) diff --git a/translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md b/published/20220518 Install Specific Package Version With Apt Command in Ubuntu.md similarity index 66% rename from translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md rename to published/20220518 Install Specific Package Version With Apt Command in Ubuntu.md index 299e226d0f..3fd0736890 100644 --- a/translated/tech/20220518 Install Specific Package Version With Apt Command in Ubuntu.md +++ b/published/20220518 Install Specific Package Version With Apt Command in Ubuntu.md @@ -3,20 +3,22 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14760-1.html" -在 Ubuntu 中使用 apt 命令来安装具体指定的软件包版本 +如何在 Ubuntu 中安装具体指定的软件包版本 ====== -在 Ubuntu 中想安装一个软件包的一个具体指定的软件包版本?你可以通过下面的方式来轻松地完成: +![](https://img.linux.net.cn/data/attachment/album/202206/26/145335zcrpducpup4p2ugy.jpg) + +在 Ubuntu 中想安装一个软件包的一个特别指定的版本?你可以通过下面的方式来轻松地完成: ``` sudo apt install package_name=package_version ``` -你如何知道某个软件包有哪些可用的版本?使用这个命令: +你如何知道某个软件包有哪些可用的版本?可以使用这个命令: ``` apt list --all-versions package_name @@ -28,23 +30,23 @@ apt list --all-versions package_name 听起来像一个简单的任务,对吧?但是事情并非看起来那么简单。这里有一些不确定是否会出现,但是可能会涉及的东西。 -这篇教程将涵盖使用 apt 或 apt-get 命令来安装一个具体指定的程序的版本的所有的重要的方面。 +这篇教程将涵盖使用 `apt` 或 `apt-get` 命令来安装一个具体指定的程序的版本的所有的重要的方面。 -### 关于安装一个具体指定版本的程序而所需要知道的事 +### 安装一个具体指定版本的程序需要知道的事 -在基于 Ubuntu 和 Debian 发行版中,你需要知道一些关于 APT 和 存储库 是如何工作的知识 +在基于 Ubuntu 和 Debian 发行版中,你需要知道一些关于 APT 和存储库是如何工作的知识。 -#### 同一个的软件包源没有较旧的版本 +#### 同一个软件包源没有较旧的版本 -Ubuntu 在其存储库中不保留较旧版本的软件包。在特殊的情况下,你可以暂时性地看到多个版本。例如,你运行 apt 更新 (但不升级),那么会用一个可用的新的版本。在 apt 缓存中,你可以看到同一个软件包的两个版本。但是,一旦软件包被升级到了新的版本,较旧版本的软件包将从 **apt 缓存** 和 存储库 中移除。 +Ubuntu 在其存储库中不保留较旧版本的软件包。在特殊的情况下,你可以暂时性地看到多个版本。例如,你运行 APT 更新(但不升级)时,可能会有一个可用的新版本。在 APT 缓存中,你可以看到同一个软件包的两个版本。但是,一旦软件包被升级到了新的版本,较旧版本的软件包将从 **APT 缓存** 和存储库中移除。 #### 使用多个软件包源来使用不同的版本 -为获取同一个的软件包的多个版本,你将必需条件多个软件包源。例如,VLC 是版本 3.x 系列。添加 [VLC 每日构建 PPA][2] 将会提供 (不稳定是) 版本 4.x 系列。 +为获取同一个的软件包的多个版本,你必须得添加多个软件包源。例如,VLC 是版本 3.x 系列。添加 [VLC 每日构建 PPA][2] 将会提供(不稳定的)版本 4.x 系列。 同样,**你可以下载不同版本的 DEB 文件,并安装它**。 -#### 较高版本编号的版本通常获取优先权 +#### 较高版本编号的版本通常有优先权 如果你有来自多个软件包源的相同名称的软件,默认情况下,Ubuntu 将安装可用的最高版本编号的版本。 @@ -52,11 +54,11 @@ Ubuntu 在其存储库中不保留较旧版本的软件包。在特殊的情况 #### 较旧版本将升级到可用的较新版本 -这是另外一个可能存在的问题。即使你安装较旧版本的软件包,它也会升级到较新的版本 (如果存在可用的较新的版本)。你必须 [监禁软件包来防止其升级][3] 。 +这是另外一个可能存在的问题。即使你安装较旧版本的软件包,它也会升级到较新的版本(如果存在可用的较新版本)。你必须 [保留该软件包来防止其升级][3] 。 #### 依赖关系也需要安装 -如果软件包有依赖关系,你也需要安装必要的依赖关系软件包版本。 +如果软件包有依赖关系,你也需要安装必要的依赖关系软件包。 现在,你已经知道一些可能存在的问题,让我们看看如何解决它们。 @@ -69,20 +71,20 @@ Ubuntu 在其存储库中不保留较旧版本的软件包。在特殊的情况 ![install specific versions apt ubuntu][4] ``` -[email protected]:~$ apt list -a vlc +~$ 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 ``` -因为较高版本编号版本获取优先权,使用 ‘apt install vlc’ 命令将会导致安装 VLC 的 4.0 版本。但是,因为这篇教程的缘由,我想安装较旧的版本 3.0.16 。 +因为较高版本编号版本有优先权,使用 `apt install vlc` 命令将会导致安装 VLC 的 4.0 版本。但是,因为这篇教程的缘由,我想安装较旧的版本 3.0.16 。 ``` sudo apt install vlc=3.0.16-1build7 ``` -但是,这里会有这样的事。vlc 软件包有一些依赖关系,并且这些依赖关系也需要具体指定的版本。因此,在 Ubuntu 为其尝试安装最新的版本时,你将会遇到经典的 [你已持有残缺软件包you have held broken packages][5] 错误。 +但是,这里会有这样的事。VLC 软件包有一些依赖关系,并且这些依赖关系也需要具体指定的版本。因此,在 Ubuntu 为其尝试安装最新的版本时,你将会遇到经典的 [你已保留残缺软件包][5]you have held broken packages 错误。 ![problem installing specific version apt ubuntu][6] @@ -103,13 +105,13 @@ sudo apt install vlc=3.0.16-1build7 \ vlc-plugin-visualization=3.0.16-1build7 ``` -以免你瞎琢磨,每行结尾处的 \ 只是用来将多行命令来写入同一个命令的一种方式。 +说明一下,每行结尾处的 `\` 只是用来将多行命令来写入同一个命令的一种方式。 **它有作用吗?在很多情况下,它是有作用的。** 但是,我选择了一个复杂的 VLC 示例,它有很多依赖关系。甚至这些所涉及的依赖关系也依赖于其它的软件包。所以,它就变得令人难以处理。 -一种可选的方法是在安装时指定软件包源。 +一种替代的方法是在安装时指定软件包源。 -#### 可选,指定存储库软件包源 +#### 替代方式,指定存储库 你已经添加多个软件包源,因此,你应该对这些软件包的来源有一些了解。 @@ -119,7 +121,7 @@ sudo apt install vlc=3.0.16-1build7 \ apt-cache policy | less ``` -聚焦于存储库名称后面的行: +注意存储库名称后面的行: ``` 500 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages @@ -127,9 +129,9 @@ apt-cache policy | less origin security.ubuntu.com ``` -你可以具体指定 o、l、a 等参数。 +你可以具体指定 `o`、`l`、`a` 等参数。 -在我原来的示例中,我想安装来自 Ubuntu 存储库的 VLC (获取版本 3.16) ,而不是安装来 PPA 的版本 (它将向我提供版本 4)。 +在我原来的示例中,我想安装来自 Ubuntu 存储库的 VLC(获取版本 3.16),而不是安装来 PPA 的版本(它将向我提供版本 4)。 因此,下面的命令将安装 VLC 版本 3.16 及其所有的依赖关系: @@ -143,9 +145,9 @@ sudo apt install -t "o=ubuntu" vlc **还能做什么?** -为安装较旧的软件包版本,从你的系统中移除较新版本的软件包源 (如果可能的话)。它将有助于逃脱这些依赖关系的地狱。 +为安装较旧的软件包版本,从你的系统中移除较新版本的软件包源(如果可能的话)。它将有助于逃脱这些依赖关系地狱。 -如果不能这么做,检查你是否可以从其它一些打包软件包的格式来获取,像 Snap、Flatpak、AppImage 等等。事实上,Snap 和 Flatpak 也允许你从可用的版本中选择和安装。因为这些应用程序是沙盒模式的,所以它很容易管理不同版本的依赖关系。 +如果不能这么做,检查你是否可以从其它一些软件包的打包格式来获取,像 Snap、Flatpak、AppImage 等等。事实上,Snap 和 Flatpak 也允许你从可用的版本中选择和安装。因为这些应用程序是沙盒模式的,所以它很容易管理不同版本的依赖关系。 #### 保留软件包,防止升级 @@ -155,17 +157,17 @@ sudo apt install -t "o=ubuntu" vlc sudo apt-mark hold package_name ``` -你可以移除保留软件包,以便它能稍后升级: +你可以免除保留软件包,以便它能稍后升级: ``` sudo apt-mark unhold package_name ``` -注意,软件包的依赖关系不会自动地保持。它们需要单独地提及。 +注意,软件包的依赖关系不会自动地保留。它们需要单独地指明。 ### 结论 -如你所见,这里有一条安装选定软件包版本的条文。只要软件包有依赖关系,那么事情就会变得复杂。接下来,你将进入依赖关系的地狱。 +如你所见,安装选定软件包版本有一定之规。只有当软件包有依赖关系时,那么事情就会变得复杂,然后,你就会进入依赖关系地狱。 我希望你在这篇教程中学到一些新的东西。如果你有问题或建议来改善它,请在评论区告诉我。 @@ -176,7 +178,7 @@ via: https://itsfoss.com/apt-install-specific-version-2/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6568ee7e86b0180938cc7c5d2785fe793ad1b1e9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 26 Jun 2022 15:26:52 +0800 Subject: [PATCH 0135/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220626=20An=20open=20source=20project=20that=20ope?= =?UTF-8?q?ns=20the=20internet=20for=20all.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...project that opens the internet for all.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 sources/tech/20220626 An open source project that opens the internet for all.md diff --git a/sources/tech/20220626 An open source project that opens the internet for all.md b/sources/tech/20220626 An open source project that opens the internet for all.md new file mode 100644 index 0000000000..4f4e509eab --- /dev/null +++ b/sources/tech/20220626 An open source project that opens the internet for all.md @@ -0,0 +1,60 @@ +[#]: subject: "An open source project that opens the internet for all" +[#]: via: "https://opensource.com/article/22/6/equalify-open-internet-accessibility" +[#]: author: "Blake Bertuccelli https://opensource.com/users/blake" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An open source project that opens the internet for all +====== +Equalify is an open source project with the goal of making the open internet more accessible. + +![Plumeria by Bernard Spragg][1] + +Image by: "Plumeria (Frangipani)" by Bernard Spragg is marked with CC0 1.0. + +Accessibility is key to promoting an open society. + +We learn online. We bank online. Political movements are won and lost online. Most importantly, the information we access online inspires us to make a better world. When we ignore accessibility requirements, people born without sight or who lost limbs in war are restricted from online information that others enjoy. + +*We must ensure that everyone has access to the open internet*, and I am doing my part to work toward that goal by building [Equalify][2]. + +### What is Equalify? + +Equalify is "the accessibility platform." + +The platform allows users to run multiple accessibility scans on thousands of websites. With our latest version, users can also filter millions of alerts to create a dashboard of statistics that are meaningful to them. + +The project is just getting started. Equalify aims to open source all the premium features that expensive services like SiteImprove provide. With better tools, we can ensure that the internet is more accessible and our society is more open. + +### How do we judge website accessibility? + +W3C's Web Accessibility publishes the Web Content Accessibility Guideline (WCAG) report that sets standards for accessibility. Equalify, and others, including the US Federal Government, use WCAG to meter website accessibility. The more websites we scan, the more we can understand the shortcomings and potentials of WCAG standards. + +### How do I use Equalify? + +Take a few minutes to browse our GitHub and learn more about the product. Specifically, the [README][3] provides steps on how to begin supporting and using Equalify. + +### Our goal + +Our ultimate goal is to make the open internet more accessible. 96.8% of homepages do not meet WCAG guidelines, according to [The WebAIM Million][4]. As more people build and use Equalify, we combat inaccessible pages. Everyone deserves equal access to the open internet. Equalify is working toward that goal as we work toward building a stronger and more open society for all. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/equalify-open-internet-accessibility + +作者:[Blake Bertuccelli][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/blake +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-06/plumeria-frangipani-bernard-spragg.jpg +[2]: https://equalify.app/ +[3]: https://github.com/bbertucc/equalify +[4]: https://webaim.org/projects/million/ From 07cb8e8ee3f4b98823e8f3d00d8200c0e0865aa4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 26 Jun 2022 15:28:22 +0800 Subject: [PATCH 0136/3123] RP @geekpi https://linux.cn/article-14761-1.html --- ...s on Linux with these open source tools.md | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) rename {translated/tech => published}/20220609 Edit PDFs on Linux with these open source tools.md (78%) diff --git a/translated/tech/20220609 Edit PDFs on Linux with these open source tools.md b/published/20220609 Edit PDFs on Linux with these open source tools.md similarity index 78% rename from translated/tech/20220609 Edit PDFs on Linux with these open source tools.md rename to published/20220609 Edit PDFs on Linux with these open source tools.md index 03ed204126..50d82225cc 100644 --- a/translated/tech/20220609 Edit PDFs on Linux with these open source tools.md +++ b/published/20220609 Edit PDFs on Linux with these open source tools.md @@ -3,27 +3,26 @@ [#]: author: "Michael Korotaev https://opensource.com/users/michaelk" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14761-1.html" 用这些开源工具在 Linux 上编辑 PDF 文件 ====== -Adobe Acrobat 的开源替代品具有创建、编辑和注释 PDF 的所有必要功能。 -![a checklist for a team][1] +![](https://img.linux.net.cn/data/attachment/album/202206/26/152728d3kajokj34t3agwm.jpg) -图片由:Opensource.com +> Adobe Acrobat 的开源替代品具有创建、编辑和注释 PDF 的所有必要功能。 -开源的 PDF 阅读和编辑工具通常比 “PDF 编辑器”搜索结果第一页中的应用更安全和可靠。在那里,你很可能看到带有隐藏限制和关税的专有应用,缺乏关于数据保护政策和托管的足够信息。你可以有更好的。 +开源的 PDF 阅读和编辑工具通常比 “PDF 编辑器” 搜索结果第一页中的应用更安全和可靠。在那里,你很可能看到带有隐藏的限制和关税的专有应用,缺乏关于数据保护政策和托管的足够信息。你可以有更好的。 -这里有五个应用,可以安装在你的 Linux 系统上(和其他系统)或托管在服务器上。每一个都是免费和开源的,具有创建、编辑和注释 PDF 文件的所有必要功能。 +这里有五个应用,可以安装在你的 Linux 系统上(和其他系统)或托管在服务器上。每一个都是自由而开源的,具有创建、编辑和注释 PDF 文件的所有必要功能。 ### LibreOffice 使用 [LibreOffice][2] 套件,你对应用的选择取决于最初的任务。虽然文字处理器 LibreOffice Writer,可以让你创建 PDF 文件,并从 ODF 和其他文本格式导出,但 Draw 更适合于处理现有的 PDF 文件。 -Draw 是用来创建和编辑图形文件的,如小册子、杂志和海报。因此,该工具集主要集中在视觉对象和布局上。然而,对于 PDF 编辑,当文件具有编辑属性时,LibreOffice Draw 提供了用于修改和添加 PDF 内容的工具。如果没有的话,你仍然可以在现有的内容层上添加新的文本字段,并对文件进行注释或完成。 +Draw 是用来创建和编辑图形文件的,如小册子、杂志和海报。因此,其工具集主要用于视觉对象和布局上。然而,对于 PDF 编辑,当文件具有可编辑属性时,LibreOffice Draw 提供了用于修改和添加 PDF 内容的工具。如果没有的话,你仍然可以在现有的内容层上添加新的文本字段,并对文件进行注释或完成。 Draw 和 Writer 都被捆绑在 LibreOffice 桌面套件中,可在 Linux 系统、macOS 和 Windows 上安装。 @@ -39,7 +38,7 @@ ONLYOFFICE Docs 可以作为一个网络套件(内部或云端)集成到文 ### PDF Arranger -[PDF Arranger][4] 是 PikePDF 库的一个前端应用。它不像 LibreOffice 和 ONLYOFFICE 那样对 PDF 的内容进行编辑,但它对于重新排序页面、将 PDF 分割成更小的文件、将几个 PDF 合并成一个、旋转或裁剪页面等都很好。它的界面是直观的,易于使用。 +[PDF Arranger][4] 是 PikePDF 库的一个前端应用。它不像 LibreOffice 和 ONLYOFFICE 那样用于对 PDF 的内容进行编辑,但它对于重新排序页面、将 PDF 分割成更小的文件、将几个 PDF 合并成一个、旋转或裁剪页面等都很好。它的界面是直观的,易于使用。 PDF Arranger 可用于 Linux 和 Windows。 @@ -67,7 +66,7 @@ Xournal++ 可在 Linux 系统(Ubuntu、Debian、Arch、SUSE)、MacOS 和 Win 如果你正在寻找一个免费和安全的专有 PDF 浏览和编辑软件的替代品,不难找到一个开源的选择,无论是桌面还是在线使用。只要记住,目前可用的解决方案在不同的使用情况下有各自的优势,没有一个工具在所有可能的任务中都同样出色。 -这五个方案因其功能或对小众 PDF 任务的有用性而脱颖而出。对于企业使用和协作,我建议 ONLYOFFICE 或 LibreOffice Draw。PDF Arranger 是一个简单的、轻量级的工具,当你不需要改变文本时,可以用它来处理页面。Okular 为多种文件类型提供了很好的查看功能,如果你想在 PDF 中画草图和做笔记,Xournal++ 是最佳选择。 +这五个方案因其功能或对小众 PDF 任务的有用性而脱颖而出。对于企业使用和协作,我建议使用 ONLYOFFICE 或 LibreOffice Draw。PDF Arranger 是一个简单的、轻量级的工具,当你不需要改变文本时,可以用它来处理页面。Okular 为多种文件类型提供了很好的查看功能,如果你想在 PDF 中画草图和做笔记,Xournal++ 是最佳选择。 -------------------------------------------------------------------------------- @@ -76,7 +75,7 @@ via: https://opensource.com/article/22/6/open-source-pdf-editors-linux 作者:[Michael Korotaev][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/) 荣誉推出 From b604c9e7204ac0dc5bfc817699c52f4fa6cbaf3d Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 02:22:02 +0800 Subject: [PATCH 0137/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220626=20Linux=20Mint-=20The=20Beginner-Friendly?= =?UTF-8?q?=20Linux=20Operating=20System=20for=20Everyone.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...dly Linux Operating System for Everyone.md | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 sources/tech/20220626 Linux Mint- The Beginner-Friendly Linux Operating System for Everyone.md diff --git a/sources/tech/20220626 Linux Mint- The Beginner-Friendly Linux Operating System for Everyone.md b/sources/tech/20220626 Linux Mint- The Beginner-Friendly Linux Operating System for Everyone.md new file mode 100644 index 0000000000..404743dc1f --- /dev/null +++ b/sources/tech/20220626 Linux Mint- The Beginner-Friendly Linux Operating System for Everyone.md @@ -0,0 +1,168 @@ +[#]: subject: "Linux Mint: The Beginner-Friendly Linux Operating System for Everyone" +[#]: via: "https://www.debugpoint.com/linux-mint" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint: The Beginner-Friendly Linux Operating System for Everyone +====== +This article contains all the necessary information you need for Linux Mint and helps you to learn and make a wise decision on your journey with this operating system. + +![Linux Mint: The King of all distros][1] + +Linux Mint is a Ubuntu LTS-based (Long Term Support) Linux operating system which brings an out-of-the-box computing experience. This distribution is designed with such a craft that it can act as a go-to Linux for new users, beginners, advanced users, casual users and so on. Moreover, many use Linux Mint as a safe distro to recover a broken system. + +On August 27, 2006, Clement Lefebvre created Linux Mint, which millions of users use today. The development effort also includes huge community support with the help of generous Linux Mint sponsors. + +![The Linux Mint Logo][2] + +### Linux Mint Releases + +Linux Mint does not follow any official schedule. If you are wondering when a new version of Linux Mint would be, the answer is – “Linux Mint releases when it’s ready”. + +However, as per recent trends, Linux Mint releases one major version per year and three minor versions at approx 6-months intervals. In addition, five years’ worth of support is available for each major version. + +### Code Names + +The mint team gives a code name to each release version (major and minor). In addition, code names start with an increasing sequence of the English alphabet. And always ends with an “a”. Moreover, the names are generally feminine in nature. For example, “Tara”, “Ulyana”, etc. + +### Features + +Linux Mint provides ISO images for free download and installation. By default, the ISO image contains all the necessary software that you may require for your work and play. For example, Linux Mint provides LibreOffice, a web browser, email Client, Firewall utility, backup and system restore software and many more. Moreover, peripheral devices such as Printers, webcams, wireless devices, and Bluetooth speakers – all work out of the box. That means you do not need to look for the driver. + +### Desktop Editions + +There are three primary desktop variants or editions available with Linux Mint. They are: + +* Cinnamon Edition (Flagship) +* Xfce Edition +* MATE Edition + +The Cinnamon Edition features the stunning Cinnamon desktop environment and is the recommended version for Linux Mint. Moreover, if you ever have to decide which one of the above flavours, go for Cinnamon Edition. + +Other than that, Xfce and MATE editions feature their respective desktops. It’s all about your taste and preferences to choosing the one. + +But, at the core, all the above are similar, running the Linux Mint packages. + +### Software + +The more important aspect of Linux Mint is its own set of applications. The devs create some fantastic software with their user base in mind. Here’s a list of native applications that it provides: + +* Nemo File Manager (best file manager ever!) +* Sticky Notes +* Screenshot tool +* Warpinator (File transfer via network) +* Celluloid Video Player +* Hypnotix ([IPTV player][3]) +* Timeshift (System restore point creator) + +In addition, it pre-loads all sorts of necessary applications such as sticky notes, firewall management, web browser, disk partition software and LibreOffice. In summary, you do not require additional software for a general use case. + +### System Requirement + +Linux Mint can run on older to newer hardware. And its system requirement is very flexible. During our multiple tests, we could run it in 12+ years old hardware without any problem. However, here’s the minimum system requirement of Linux Mint. + +* 2 GB RAM (Recommended 4 GB) +* 20 GB of hard-drive space (Recommended 100 GB) +* Display of 1024×768 resolution +* Either a CD/DVD drive or a USB port for the installation media +* Internet access (optional) + +This distro primarily supports amd64 (64-bit) architecture from version 20.x onwards, and no 32-bit support is available. Because of its parent OS, Ubuntu dropped 32-bit support from Ubuntu 20.04 LTS. + +However, Linux Mint Debian Edition (LMDE) still support 32-bit architecture because it is based on the Debian Operating system. + +### Download Details + +Linux Mint provides all the editions as direct download ISO files and torrents. There are mirrors available in many countries to help you download from a nearby source. Download links are present at the . + +### Screenshots + +Here are some of the screenshots of this distribution. + +![Cinnamon Desktop - image 1][4] + +![Cinnamon Desktop - image 2][5] + +![Cinnamon Desktop - image 3][6] + +### FAQ + +Yes, it is free to download and use. The upgrades are also free because Linux Mint is a free and open-source operating system. + +Among all the Linux operating systems, Linux Mint is the best for beginners. If you are planning to kick-start your Linux journey, this is a perfect distro to start with. + +Theoretically, you can install Linux Mint in Windows 10 or 11. But you have to run it under a virtual machine such as Virtual Box. + +We recommend using the flagship Cinnamon edition for the best experience. However, you can also use the Xfce, MATE or the Debian edition. + +This is a difficult question to answer. Both are great pieces of the operating systems. However, we think Mint is best because it is more user-friendly and convenient (e.g. Snap fiasco) than Ubuntu. + +### Recent Articles and Reviews + +* [Linux Mint 21 – Announcement][7] +* [5 Reasons to switch to Linux Mint][8] +* [Give your Linux Mint a Makeover with Twister UI][9] +* [Linux Mint Debian Edition 5 – Review][10] +* [New Mint Upgrade tool – Everything you need to know][11] +* [10 Things to do after installing Linux Mint][12] +* [Linux Mint 20 – Everything you need to know][13] +* [How to enable Snap packages in Linux Mint][14] +* [Linux Mint 20.1 – Everything you need to know][15] +* [Linux Mint 20.2 – Everything you need to know][16] + +### Summary + +| Page | Link | +| :- | :- | +| Home Page | https://linuxmint.com/ | +| Official Forum | https://forums.linuxmint.com/ | +| Official News and Blog | https://blog.linuxmint.com/ | +| Community and collaboration | https://community.linuxmint.com/ | +| Source Code (GitHub) | https://www.github.com/linuxmint | +| Documentation | https://linuxmint.com/documentation.php | +| Official download | https://linuxmint.com/download.php | +| Official download (all together) | https://linuxmint.com/download_all.php | +| BETA Test images | https://community.linuxmint.com/iso | + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-mint + +作者:[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/06/linuxmint-logo-1024x576.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/06/The-Linux-Mint-Logo-1024x247.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/Hypnotix-IPTV-Player-Linux-Mint-20.1.jpg +[4]: https://i1.wp.com/www.debugpoint.com/wp-content/uploads/2022/06/Cinnamon-Desktop-image-1-1024x635.jpg?ssl=1 +[5]: https://i2.wp.com/www.debugpoint.com/wp-content/uploads/2022/06/Cinnamon-Desktop-image-2-1024x634.jpg?ssl=1 +[6]: https://i0.wp.com/www.debugpoint.com/wp-content/uploads/2022/06/Cinnamon-Desktop-image-3-1024x634.jpg?ssl=1 +[7]: https://www.debugpoint.com/linux-mint-21-announcement/ + +[8]: https://www.debugpoint.com/5-reasons-to-switch-to-linux-mint/ + +[9]: https://www.debugpoint.com/twister-ui-2022/ + +[10]: https://www.debugpoint.com/linux-mint-debian-edition-5-review/ + +[11]: https://www.debugpoint.com/mint-upgrade-tool/ +[12]: https://www.debugpoint.com/10-things-to-do-after-installing-linux-mint-20/ +[13]: https://www.debugpoint.com/linux-mint-20/ +[14]: https://www.debugpoint.com/how-to-enable-snap-package-in-linux-mint-20/ +[15]: https://www.debugpoint.com/linux-mint-20-1-ulyssa-new-features-and-release-dates/ +[16]: https://www.debugpoint.com/linux-mint-20-2-release-announcement/ +[17]: https://t.me/debugpoint +[18]: https://twitter.com/DebugPoint +[19]: https://www.youtube.com/c/debugpoint?sub_confirmation=1 +[20]: https://facebook.com/DebugPoint +[21]: https://t.me/debugpoint From 24e8492593f3827c5818bdf7c72ae8539d9f4454 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 27 Jun 2022 08:40:52 +0800 Subject: [PATCH 0138/3123] translated --- ...Manage your Rust toolchain using rustup.md | 143 ------------------ ...Manage your Rust toolchain using rustup.md | 143 ++++++++++++++++++ 2 files changed, 143 insertions(+), 143 deletions(-) delete mode 100644 sources/tech/20220622 Manage your Rust toolchain using rustup.md create mode 100644 translated/tech/20220622 Manage your Rust toolchain using rustup.md diff --git a/sources/tech/20220622 Manage your Rust toolchain using rustup.md b/sources/tech/20220622 Manage your Rust toolchain using rustup.md deleted file mode 100644 index c440a6da08..0000000000 --- a/sources/tech/20220622 Manage your Rust toolchain using rustup.md +++ /dev/null @@ -1,143 +0,0 @@ -[#]: subject: "Manage your Rust toolchain using rustup" -[#]: via: "https://opensource.com/article/22/6/rust-toolchain-rustup" -[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Manage your Rust toolchain using rustup -====== -Rustup can be used to install Rust and keep it updated. It also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling. - -![Tools illustration][1] - -Image by: Opensource.com - -The [Rust programming language][2] is becoming increasingly popular these days, used and loved by hobbyists and corporations alike. One of the reasons for its popularity is the amazing tooling that Rust provides making it a joy to use for developers. [Rustup][3] is the official tool used to manage Rust tooling. Not only can it be used to install Rust and keep it updated, it also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling. This article will introduce you to rustup and some common commands to use. - -### Default Rust installation method - -If you want to install Rust on Linux, you can use your package manager. On Fedora or CentOS Stream you can use this, for example: - -``` -$ sudo dnf install rust cargo -``` - -This provides a stable version of the Rust toolchain, and works great if you are a beginner to Rust and want to try compiling and running simple programs. However, because Rust is a new programming language it changes fast and a lot of new features are frequently added. These features are part of the nightly and later beta version of the Rust toolchain. To try out these features you need to install these newer versions of the toolchain, without affecting the stable version on the system. Unfortunately, your distro’s package manager can’t help you here. - -### Installing Rust toolchain using rustup - -To get around the above issues, you can download an install script: - -``` -$ curl --proto '=https' --tlsv1.2 \ --sSf https://sh.rustup.rs > sh.rustup.rs -``` - -Inspect it, and then run it. It doesn’t require root privileges and installs Rust accordingly to your local user privileges: - -``` -$ file sh.rustup.rs -sh.rustup.rs: POSIX shell script, ASCII text executable -$ less sh.rustup.rs -$ bash sh.rustup.rs -``` - -Select option 1 when prompted: - -``` -1) Proceed with installation (default) -2) Customize installation -3) Cancel installation -> 1 -``` - -After installation, you must source the environment variables to ensure that the `rustup` command is immediately available for you to use: - -``` -$ source $HOME/.cargo/env -``` - -Verify that the Rust compiler (rustc) and Rust package manager (cargo) are installed: - -``` -$ rustc --version -$ cargo --version -``` - -### See installed and active toolchains - -You can view the different toolchains that were installed and which one is the active one using the following command: - -``` -$ rustup show -``` - -### Switch between toolchains - -You can view the default toolchain and change it as required. If you’re currently on a stable toolchain and wish to try out a newly introduced feature that is available in the nightly version you can easily switch to the nightly toolchain: - -``` -$ rustup default -$ rustup default nightly -``` - -To see the exact path of the compiler and package manager of Rust: - -``` -$ rustup which rustc -$ rustup which cargo -``` - -### Checking and Updating the toolchain - -To check whether a new Rust toolchain is available: - -``` -$ rustup check -``` - -Suppose a new version of Rust is released with some interesting features, and you want to get the latest version of Rust. You can do that with the `update` subcommand: - -``` -$ rustup update -``` - -### Help and documentation - -The above commands are more than sufficient for day-to-day use. Nonetheless, rustup has a variety of commands and you can refer to the help section for additional details: - -``` -$ rustup --help -``` - -Rustup has an entire [book][4] on GitHub that you can use as a reference. All the Rust documentation is installed on your local system, which does not require you to be connected to the Internet. You can access the local documentation which includes the book, standard library, and so on: - -``` -$ rustup doc -$ rustup doc --book -$ rustup doc --std -$ rustup doc --cargo -``` - -Rust is an exciting language under active development. If you’re interested in where programming is headed, keep up with Rust! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/rust-toolchain-rustup - -作者:[Gaurav Kamathe][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/gkamathe -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/tools_hardware_purple.png -[2]: https://www.rust-lang.org/ -[3]: https://github.com/rust-lang/rustup -[4]: https://rust-lang.github.io/rustup/ diff --git a/translated/tech/20220622 Manage your Rust toolchain using rustup.md b/translated/tech/20220622 Manage your Rust toolchain using rustup.md new file mode 100644 index 0000000000..c9673c996f --- /dev/null +++ b/translated/tech/20220622 Manage your Rust toolchain using rustup.md @@ -0,0 +1,143 @@ +[#]: subject: "Manage your Rust toolchain using rustup" +[#]: via: "https://opensource.com/article/22/6/rust-toolchain-rustup" +[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 rustup 管理你的 Rust 工具链 +====== +Rustup 可用于安装 Rust 并保持更新。它还允许你在稳定版、测试版和每日 Rust 编译器和工具之间无缝切换。 + +![Tools illustration][1] + +图片来源:Opensource.com + +[Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具使其成为开发人员使用的乐趣。 [Rustup][3] 是用于管理 Rust 工具的官方工具。它不仅可以用于安装 Rust 并保持更新,它还允许你在稳定、测试和每日 Rust 编译器和工具之间无缝切换。本文将向你介绍 rustup 和一些常用命令。 + +### 默认 Rust 安装方式 + +如果你想在 Linux 上安装 Rust,你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,你可以这样使用它,例如: + +``` +$ sudo dnf install rust cargo +``` + +这提供了一个稳定版本的 Rust 工具链,如果你是 Rust 的初学者并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法为你提供帮助。 + +### 使用 rustup 安装 Rust 工具链 + +要解决上述问题,你可以下载安装脚本: + +``` +$ curl --proto '=https' --tlsv1.2 \ +-sSf https://sh.rustup.rs > sh.rustup.rs +``` + +检查它,然后运行它。它不需要 root 权限,并根据你的本地用户权限安装 Rust: + +``` +$ file sh.rustup.rs +sh.rustup.rs: POSIX shell script, ASCII text executable +$ less sh.rustup.rs +$ bash sh.rustup.rs +``` + +出现提示时选择选项 1: + +``` +1) Proceed with installation (default) +2) Customize installation +3) Cancel installation +> 1 +``` + +安装后,你必须获取环境变量以确保 `rustup` 命令立即可供你使用: + +``` +$ source $HOME/.cargo/env +``` + +验证是否安装了 Rust 编译器 (rustc) 和 Rust 包管理器 (cargo): + +``` +$ rustc --version +$ cargo --version +``` + +### 查看已安装和活动的工具链 + +你可以使用以下命令查看已安装的不同工具链以及哪个工具链是活动的: + +``` +$ rustup show +``` + +### 在工具链之间切换 + +你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定的工具链,并希望尝试每日版本中提供的新功能,你可以轻松切换到每日工具链: + +``` +$ rustup default +$ rustup default nightly +``` + +要查看 Rust 的编译器和包管理器的确切路径: + +``` +$ rustup which rustc +$ rustup which cargo +``` + +### 检查和更新工具链 + +要检查是否有新的 Rust 工具链可用: + +``` +$ rustup check +``` + +假设一个新版本的 Rust 发布了,其中包含一些有趣的特性,并且你想要获取最新版本的 Rust。你可以使用 `update` 子命令来做到这一点: + +``` +$ rustup update +``` + +### 帮助和文档 + +以上命令对于日常使用来说绰绰有余。尽管如此,rustup 有多种命令,你可以参考帮助部分了解更多详细信息: + +``` +$ rustup --help +``` + +Rustup 在 GitHub 上有完整的[说明书][4],你可以将其用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到 Internet。你可以访问包括书籍、标准库等在内的本地文档: + +``` +$ rustup doc +$ rustup doc --book +$ rustup doc --std +$ rustup doc --cargo +``` + +Rust 是一种正在积极开发中的令人兴奋的语言。如果你对编程的发展方向感兴趣,请关注 Rust! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/rust-toolchain-rustup + +作者:[Gaurav Kamathe][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/gkamathe +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/tools_hardware_purple.png +[2]: https://www.rust-lang.org/ +[3]: https://github.com/rust-lang/rustup +[4]: https://rust-lang.github.io/rustup/ From 58d2aad0f42b5fa8a0938bca8045bea190c3532d Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 27 Jun 2022 08:42:52 +0800 Subject: [PATCH 0139/3123] translating --- ...0625 Download YouTube Videos with VLC -Because, Why Not--.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md b/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md index 20e2395bc6..968ac998d6 100644 --- a/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md +++ b/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/download-youtube-videos-vlc/" [#]: author: "Community https://itsfoss.com/author/itsfoss/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 55b4fe8c1804ce018dc52ff69e65ecdcefcc3dfc Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Mon, 27 Jun 2022 09:58:25 +0800 Subject: [PATCH 0140/3123] Being translated --- ...-Level Move Was Using Binary Space Partitioning in Doom.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index 8f71021591..38496565a4 100644 --- a/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2019/11/06/doom-bsp.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "aREversez" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -141,7 +141,7 @@ via: https://twobithistory.org/2019/11/06/doom-bsp.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[aREversez](https://github.com/aREversez) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 2024a9d9e84fdafce993ae2ab99d86b9c8cf9c2a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 27 Jun 2022 10:22:47 +0800 Subject: [PATCH 0141/3123] RP @lkxed https://linux.cn/article-14763-1.html --- ... to See Rust Support in the Kernel Soon.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) rename {translated/news => published}/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md (57%) diff --git a/translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md similarity index 57% rename from translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md rename to published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md index 23302b9e68..9c0eb2eff8 100644 --- a/translated/news/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md +++ b/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md @@ -1,47 +1,48 @@ -en[#]: subject: "Linus Torvalds Expects to See Rust Support in the Kernel Soon" +[#]: subject: "Linus Torvalds Expects to See Rust Support in the Kernel Soon" [#]: via: "https://news.itsfoss.com/linux-kernel-rust/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14763-1.html" Linus Torvalds 暗示很快就可以在内核中看到对 Rust 的支持 ====== -正如 Linus Torvalds 所暗示,Linux Kernel 5.20 可能会与对 Rust 的支持一起首次亮相。你怎么看? + +> 正如 Linus Torvalds 所暗示,Linux Kernel 5.20 发布时可能会提供对 Rust 的支持。你怎么看? ![Linus][1] -市面上已经有许多用 Rust 重写的开源项目。因此,Rust 一段时间以来被认为是 Linux 内核的第二语言,也就不足为奇了。 +市面上已经有许多用 Rust 重写的开源项目。因此,如今 Rust 被认为是 Linux 内核的第二语言,也就不足为奇了。 几天前,在 [Linux 基金会开源峰会][2] 上,Linus Torvals 提到他们预计将在下一个内核版本(即 Linux 内核 5.20)中对 Rust 进行试验。 -如果你不知道,正如 [Phoronix][3] 率先报道的那样,Linux 内核补丁中已经包含了少量的示例驱动程序,以及支持基本的基础设施的 Rust 代码。 +或许你不知道,正如 [Phoronix][3] 率先报道的那样,Linux 已经有了 Rust 内核补丁,包含了少量的示例驱动程序,以及基本的基础设施的启用代码。 因此,Linus Torvalds 对可能合并 Rust 支持的暗示,也不足为奇。但是,这无疑是令人兴奋的! ### 用于 Linux 内核的 Rust -这么做的最终目标是让 Linux Kernel 变得更好,但它现在仍然处于试运行阶段。 +这么做的最终目标是让 Linux 内核变得更好,但它现在仍然处于试运行阶段。 -凭借其所有优势,Rust 正日益成为一种流行的编程语言。不要忘记,[System76 也在开发一个用 Rust 编写的新桌面环境][4]。 +凭借其各种优势,Rust 正日益成为一种流行的编程语言。还记得吗,[System76 也在开发一个用 Rust 编写的新桌面环境][4]。 然而,并不是所有参与维护 Linux 内核的人都熟悉这种编程语言。 那么,这会是一个问题吗? -考虑到内核中还有其他语言,Linus Torvalds 并不认为这是一个大问题。他还提到他希望看到 Rust 成为新的一份子。 +Linus Torvalds 并不认为这是一个大问题,因为内核中也有其他语言。他还提到希望看到 Rust 成为新的一份子。 [The Register][5] 报道称,Linus Torvalds 表示会信任维护者,除非他们犯了错误。 ### Linux 5.20:何时发布? -Linux 内核 5.19 版本将于 7 月底左右发布。因此,5.20 版本的合并窗口应该会在其稳定发布后打开(假设没有意外延迟的话)。 +Linux 内核 5.19 版本将于 7 月底左右发布。因此,5.20 版本的合并窗口应该会在其稳定版发布后开启(假设没有意外延迟的话)。 -除了 Rust 以外,Linux Kernel 5.20 应该也是对下一代硬件支持的重要更新(包括 RDNA3),同时提供了更多功能。 +除了 Rust 以外,Linux 内核 5.20 应该也是对包括 RDNA3 在内的下一代硬件支持的重要更新,它同时提供了更多功能。 -*你如何看待 Rust 在不久的将来会进入 Linux 呢?你感到兴奋吗?欢迎在下方评论区告诉我们~* +*你如何看待 Rust 将子啊不久的将来进入 Linux 呢?你感到兴奋吗?欢迎在下方评论区告诉我们~* -------------------------------------------------------------------------------- @@ -50,7 +51,7 @@ via: https://news.itsfoss.com/linux-kernel-rust/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 88a4ee12ff939b1845b04e459131629784107e92 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 27 Jun 2022 11:04:16 +0800 Subject: [PATCH 0142/3123] RP @lkxed https://linux.cn/article-14764-1.html --- ...Version Of 7-Zip 22.00 Is Now Available.md | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) rename {translated/news => published}/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md (74%) diff --git a/translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md similarity index 74% rename from translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md rename to published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md index c136b62cf9..c0b943fc00 100644 --- a/translated/news/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md +++ b/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md @@ -3,30 +3,31 @@ [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14764-1.html" 7-Zip 的最终版本 22.00 现已推出 ====== -![7-zip-2200-500x312][1] -7-Zip 是用于 Windows、Mac 和 Linux 的知名开源文件归档器。它的最新版本 22.00 现已推出。它是 2022 年的第一个稳定版本。上一个版本是 21.07,于 2021 年 12 月发布。7-Zip 的用户可以从官方网站获取该应用的最新版本。下载适用于 Windows 64 位、32 位和 ARM 版本。该应用仍然与过时的 Windows 版本兼容,例如 XP 和 Vista。它还支持所有官方支持的 Windows 版本,包括服务器版本。适用于 Linux 的 7-Zip 22.00 已经可以下载,但 Mac OS 版本还不可用。 +![](https://img.linux.net.cn/data/attachment/album/202206/27/110310hwrmxuwyqlor1olp.jpg) -7-Zip 22.00 包含一些增强了应用功能的新特性。这个归档器现在支持提取苹果文件系统Apple File System(APFS)镜像。几年前,苹果公司在 Mac OS 10.13 和 iOS 中引入了苹果文件系统。该文件系统在设计时就考虑到了闪存(Flash)和固态硬盘(SSD)存锤。 +7-Zip 是用于 Windows、Mac 和 Linux 的知名开源文件归档器。它的最新版本 22.00 现已推出。它是 2022 年的第一个稳定版本。上一个版本是 21.07,于 2021 年 12 月发布。7-Zip 的用户可以从官方网站获取该应用的最新版本,下载适用于 Windows 64 位、32 位和 ARM 版本。该应用仍然与过时的 Windows 版本兼容,例如 XP 和 Vista。它还支持所有官方支持的 Windows 版本,包括服务器版本。适用于 Linux 的 7-Zip 22.00 已经可以下载,但 Mac OS 版本还不可用。 -7-Zip 22.00 包括对其 TAR 存档支持的多项增强。使用选项 `-ttar -mm=pax` 或 `-ttar -mm=posix`,7-Zip 现在可以创建符合 POSIX 标准的 tar 格式的 TAR 档案。此外,使用选项 `ttar -mm=pax -mtp=3 -mtc -mta`,7-Zip 可以在 tar/pax 存档中存储高精度的文件时间戳。 +7-Zip 22.00 包含一些增强了应用功能的新特性。这个归档器现在支持提取苹果文件系统Apple File System(APFS)镜像。几年前,苹果公司在 Mac OS 10.13 和 iOS 中引入了苹果文件系统。该文件系统在设计时就考虑到了闪存(Flash)和固态硬盘(SSD)存储。 + +7-Zip 22.00 包括了对其 TAR 存档支持的多项增强。使用选项 `-ttar -mm=pax` 或 `-ttar -mm=posix`,7-Zip 现在可以创建符合 POSIX 标准的 tar 格式的 TAR 档案。此外,使用选项 `ttar -mm=pax -mtp=3 -mtc -mta`,7-Zip 可以在 tar/pax 存档中存储高精度的文件时间戳。 最后,Linux 用户可以在 TAR 归档文件中使用以下两个新选项: * `snoi`:将所有者/组 ID 保存在存档中,或将所有者/组 ID 从存档复制到提取的文件中。 * `snon`:在存档中保留所有者/组的名称。 -适用于 Windows 的 7-Zip 22.00 添加了对 `-snz` 选项的支持,该选项用于传播 Zone。 +适用于 Windows 的 7-Zip 22.00 添加了对 `-snz` 选项的支持,该选项用于传播区识别符(LCTT 译注:区标识符是微软在 2013 年为 IE 设计的安全功能,它会标记那些用户自网络上所下载的文件,并在用户准备打开时跳出警告)。 要提取文件,请使用标识符流。出于安全目的,Windows 使用了该流,它可用于确定文件是在本地创建的还是从互联网下载的。 -在“添加到存档add to archive”配置对话框中,7-Zip 22.00 包含一个新的选项窗口。它包括用于更改时间戳精度、更改其他与时间相关的配置选项,以及防止更改源文件的最后访问时间的选项。 +在“添加到存档add to archive”配置对话框中,7-Zip 22.00 包含一个新的选项窗口。它包括用于更改时间戳精度、更改其他与时间相关的配置选项,以及防止更改源文件的最后访问时间等选项。 -------------------------------------------------------------------------------- @@ -35,7 +36,7 @@ via: https://www.opensourceforu.com/2022/06/the-final-version-of-7-zip-22-00-is- 作者:[Laveesh Kocher][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1eefa14dc33a09647c3dc249fb54e1d6cce87b80 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 27 Jun 2022 11:12:37 +0800 Subject: [PATCH 0143/3123] R --- ...s Torvalds Expects to See Rust Support in the Kernel Soon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md index 9c0eb2eff8..84501ed7fa 100644 --- a/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md +++ b/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md @@ -42,7 +42,7 @@ Linux 内核 5.19 版本将于 7 月底左右发布。因此,5.20 版本的合 除了 Rust 以外,Linux 内核 5.20 应该也是对包括 RDNA3 在内的下一代硬件支持的重要更新,它同时提供了更多功能。 -*你如何看待 Rust 将子啊不久的将来进入 Linux 呢?你感到兴奋吗?欢迎在下方评论区告诉我们~* +*你如何看待 Rust 将在不久的将来进入 Linux 呢?你感到兴奋吗?欢迎在下方评论区告诉我们~* -------------------------------------------------------------------------------- From d298fd24d8e43edcd862f86965d70ec5d18a52a3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 13:38:48 +0800 Subject: [PATCH 0144/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220627=20KaOS=202022.06=20Release=20Adds=20KDE=20P?= =?UTF-8?q?lasma=205.25=20and=20Sets=20LibreOffice=20as=20the=20Default.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....25 and Sets LibreOffice as the Default.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md diff --git a/sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md b/sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md new file mode 100644 index 0000000000..784f289de9 --- /dev/null +++ b/sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md @@ -0,0 +1,103 @@ +[#]: subject: "KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default" +[#]: via: "https://news.itsfoss.com/kaos-2022-06-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default +====== +KaOS’s latest update improves the welcome experience for new installations and features more upgrades. + +![kaos][1] + +KaOS, the independent distribution featuring KDE has just released version 2022.06. Although this release includes a lot of changes, notable improvements include Plasma 5.25 and the unreleased Calamares 3.3 branch. + +For a little bit of context, KaOS was first created back in 2013. Its initial goals, which continue to this day, are all centered around providing a highly polished and tightly integrated experience with KDE, Qt, and targeting X86_64 architecture. + +This release seeks to enhance the experience of KaOS users. Let’s find out what’s new! + +### What’s New? + +![][2] + +Although there are a lot of changes in this release, there are a select few that will impact you more than others. Some highlights of this release include: + +* KDE Plasma 5.25.1 +* KDE Frameworks 5.95 +* KDE Gear 22.04.2 +* Calamares 3.3 +* The switch to LibreOffice from Calligra +* Linux Kernel 5.17 +* New package selection (Welcome screen) + +#### The Latest From KDE + +![kde plasma 5.25][3] + +Released just two weeks ago, [KDE Plasma 5.25][4] is the latest and greatest from KDE. Focusing mostly on visual improvements, Plasma 5.25 offers improved gesture support, the ability to add tints to your accent colors, and a significantly improved touch mode. Of course, all these features are available now with KaOS 2022.06. + +All thanks to its rolling-release schedule. + +Alongside the latest plasma version, this version also gets the latest KDE Gear. This is the name given to the suite of KDE Apps. Users of Kdenlive will be pleased to notice initial support for 10-bit color, as well as a revamped render dialog. Kate also received a lot of improvements, and the settings dialog for it is now able to fit on smaller screens. + +A lot of other KDE apps received similar updates, which you should notice throughout your system. Overall, these inclusions should add that extra bit of polish to an already polished system like KaOS. + +#### Calamares 3.3 + +Calamares is the app that you use to install KaOS, as well as many other distributions. Although it is usually only seen when installing the OS, it is the first interaction the user has, and is therefore one of the most important parts to get right. + +The installer uses the improvements found in the Calamares 3.3 branch (which hasn’t seen a release yet). + +#### Package Selection Screen + +![][5] + +For new users, KaOS should be easier to set up than before. You get an improved welcome screen to guide you to select the required packages to make things convenient in your system. + +It is also known as the “Coreso” package selection page to help you make some configurations and install the packages you require. + +#### Ditching Calligra in Favor Of LibreOffice as the Default + +Calligra, the office suite by KDE is being ditched with this release. Now that LibreOffice is available as a single Qt application, the KaOS developers feel comfortable replacing Calligra with it. + +This should bring a number of improvements, most notable better support, as well as a more familiar design. Thanks to its huge user base, LibreOffice is also more actively developed, hopefully meaning that users will get new features sooner. + +#### Linux Kernel 5.17 + +As a somewhat odd move, KaOS 2022.06 ships with [Linux kernel 5.17.15][6]. Currently, this release is marked as End Of Life (EOL). As a result, users shouldn’t expect any maintenance updates. + +On a more positive note, at least this kernel release brings a few cool improvements. It brings improved GPU support, as well as improvements to a number of laptop models. + +Hopefully, if nothing else, this inclusion should make some devices work better than otherwise, even if it isn’t the latest version. + +### Download KaOS 2022.06 + +Overall, KaOS 2022.06 is an impressive release. It manages to provide a large number of improvements. + +If you want to give KaOS a try, feel free to download it from the official website, linked below. + +[KaOS Download][7] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kaos-2022-06-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/kaOS-ft.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/kaos-2022-6-1024x561.png +[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/apply_global_theme_advanced-1024x903.png +[4]: https://news.itsfoss.com/kde-plasma-5-25-release/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/croeso_packages.png +[6]: https://news.itsfoss.com/linux-kernel-5-17-release/ +[7]: https://kaosx.us/ From aca524618bce13b28f71e904995c651423838891 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 27 Jun 2022 14:49:48 +0800 Subject: [PATCH 0145/3123] RP @geekpi https://linux.cn/article-14765-1.html --- ...ow I use LibreOffice keyboard shortcuts.md | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) rename {translated/tech => published}/20220615 How I use LibreOffice keyboard shortcuts.md (69%) diff --git a/translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md b/published/20220615 How I use LibreOffice keyboard shortcuts.md similarity index 69% rename from translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md rename to published/20220615 How I use LibreOffice keyboard shortcuts.md index 23511099c2..eb9db93ab1 100644 --- a/translated/tech/20220615 How I use LibreOffice keyboard shortcuts.md +++ b/published/20220615 How I use LibreOffice keyboard shortcuts.md @@ -3,44 +3,42 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14765-1.html" -我如何使用 LibreOffice 键盘快捷键 +使用 LibreOffice 键盘快捷键的小技巧 ====== -键盘快捷键让我专注于我要传递的内容,而不是它的外观。 -![Programming keyboard.][1] +![](https://img.linux.net.cn/data/attachment/album/202206/27/144807lc4csplt17xm6mee.jpg) -图片来源:Opensource.com +> 键盘快捷键让我专注于我要传递的内容,而不是它的外观。 从我记事起,我就一直在使用文字处理软件。当文字处理器从直接格式化转向利用样式来改变文本在页面上的显示方式时,这对我的写作有很大的推动作用。 -LibreOffice 提供了多种样式,你可以使用它们来创建各种内容。 LibreOffice 将段落样式应用于文本块,例如正文、列表和代码示例。字符样式类似,只是这些样式适用于段落内的内联词或其他短文本。使用**视图 -> 样式**菜单,或使用 **F11** 键盘快捷键,调出样式选择器。 +LibreOffice 提供了多种样式,你可以使用它们来创建各种内容。 LibreOffice 将段落样式应用于文本块,例如正文、列表和代码示例。字符样式类似,只是这些样式适用于段落内的内联词或其他短文本。使用“视图View -> 样式Styles”菜单,或使用 `F11` 键盘快捷键,调出样式选择器。 ![Image of LibreOffice styles][2] -使用样式可以更轻松地编写更长的文档。考虑这个例子:作为咨询实践的一部分,我写了很多工作簿和培训材料。一个工作簿可能有 40 或 60 页长,具体取决于主题,并且可以包含各种内容,例如正文、表格和列表。我的一些技术培训材料可能还包括源代码示例。 +使用样式可以更轻松地编写更长的文档。看看这个例子:作为咨询实践的一部分,我写了很多工作簿和培训材料。一个工作簿可能有 40 或 60 页长,具体取决于主题,并且可以包含各种内容,例如正文、表格和列表。我的一些技术培训材料可能还包括源代码示例。 我有一个提供给客户的标准培训集,但我也做定制的培训计划。在处理自定义程序时,我可能会先从另一个工作簿导入文本,然后从那里开始工作。根据客户的不同,我可能还会调整字体和其他样式元素以匹配客户的样式偏好。对于其他材料,我可能需要添加源代码示例。 -要使用直接格式输入示例源代码,我需要设置字体并调整工作簿中每个代码块的边距。如果我后来决定我的工作簿应该为正文文本或源代码示例使用不同的字体,我需要返回并更改所有内容。对于包含多个代码示例的工作簿,这可能需要几个小时来查找每个源代码示例并调整字体和边距以匹配新的首选格式。 +要使用直接格式输入示例源代码,我需要设置字体并调整工作簿中每个代码块的边距。如果我后来决定我的工作簿应该对正文文本或源代码示例使用不同的字体,我需要返回并更改所有内容。对于包含多个代码示例的工作簿,这可能需要几个小时来查找每个源代码示例并调整字体和边距以匹配新的首选格式。 但是,通过使用样式,我可以更新定义一次,为正文样式使用不同的字体,并且 LibreOffice Writer 会在所有使用正文样式的地方更新我的文档。同样,我可以调整预格式化文本样式的字体和边距,LibreOffice Writer 会将这种新样式应用到每个具有预格式化文本样式的源代码示例中。这对于其他文本块也是如此,包括标题、源代码、列表以及页眉和页脚。 - -我最近有了一个好主意,更新 LibreOffice 键盘快捷键以简化我的写作过程。我重新定义了 **Ctrl**+**B** 设置加粗强调字符样式,**Ctrl**+**I** 设置强调字符样式,**Ctrl**+**空格**设置无字符样式。这使我的写作变得更加容易,因为我不必暂停写作,这样我就可以高亮显示一些文本并选择一种新的风格。相反,我可以使用新的 **Ctrl**+**I** 键盘快捷键来设置字符样式,它本质上是斜体文本。之后我输入的任何内容都使用强调样式,直到我按 **Ctrl**+**空格**将字符样式重置为默认的无字符样式。 +我最近有了一个好主意,更新 LibreOffice 键盘快捷键以简化我的写作过程。我重新定义了 `Ctrl + B` 设置加粗强调字符样式,`Ctrl + I` 设置强调字符样式,`Ctrl + 空格` 设置取消字符样式。这使我的写作变得更加容易,因为我不必暂停写作,这样我就可以高亮显示一些文本并选择一种新的风格。相反,我可以使用新的 `Ctrl + I` 键盘快捷键来设置字符样式,它本质上是斜体文本。之后我输入的任何内容都使用强调样式,直到我按 `Ctrl + 空格` 将字符样式重置为默认的无字符样式。 ![Image of LibreOffice character styles][3] -如果你想自己设置的,请使用**工具 > 自定义**, 然后单击键盘选项卡以修改的键盘快捷键。 +如果你想自己设置的,请使用“工具Tools -> 自定义Customize”, 然后单击“键盘Keyboard”选项卡以修改键盘快捷键。 ![Image of LibreOffice keyboard customizations][4] LibreOffice 通过样式使技术写作变得更加容易。通过利用键盘快捷键,我简化了我的写作方式,让我专注于我要交付的内容,而不是它的外观。稍后我可能会更改格式,但样式保持不变。 -图片来源:(Jim Hall,CC BY-SA 40) +*图片来源:(Jim Hall,CC BY-SA 40)* -------------------------------------------------------------------------------- @@ -49,7 +47,7 @@ via: https://opensource.com/article/22/6/libreoffice-keyboard-shortcuts 作者:[Jim Hall][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/) 荣誉推出 From b5cf38e3d2d8b16a4ebe4b774e55b2338a2aa727 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 16:12:03 +0800 Subject: [PATCH 0146/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220627=20Accessibility=20in=20Fedora=20Workstation?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...627 Accessibility in Fedora Workstation.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/talk/20220627 Accessibility in Fedora Workstation.md diff --git a/sources/talk/20220627 Accessibility in Fedora Workstation.md b/sources/talk/20220627 Accessibility in Fedora Workstation.md new file mode 100644 index 0000000000..0fe841bdf4 --- /dev/null +++ b/sources/talk/20220627 Accessibility in Fedora Workstation.md @@ -0,0 +1,63 @@ +[#]: subject: "Accessibility in Fedora Workstation" +[#]: via: "https://fedoramagazine.org/accessibility-in-fedora-workstation/" +[#]: author: "Christian Fredrik Schaller https://fedoramagazine.org/author/uraeus/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Accessibility in Fedora Workstation +====== +![Accessibility in Fedora Workstation Featured Image][1] + +Photo by [Elizabeth Woolner][2] on [Unsplash][3] + +The first concerted effort to support accessibility under Linux was undertaken by Sun Microsystems when they decided to use GNOME for Solaris. Sun put together a team focused on building the pieces to make GNOME 2 fully accessible and worked with hardware makers to make sure things like Braille devices worked well. I even heard claims that GNOME and Linux had the best accessibility of any operating system for a while due to this effort. As Sun started struggling and got acquired by Oracle this accessibility effort eventually trailed off with the community trying to pick up the slack afterwards. Especially engineers from Igalia were quite active for a while trying to keep the accessibility support working well. + +But over the years we definitely lost a bit of focus on this and we know that various parts of GNOME 3 for instance aren’t great in terms of accessibility. So at Red Hat we have had a lot of focus over the last few years trying to ensure we are mindful about diversity and inclusion when hiring, trying to ensure that we don’t accidentally pre-select against underrepresented groups based on for instance gender or ethnicity. But one area we realized we hadn’t given so much focus recently was around technologies that allowed people with various disabilities to make use of our software. Thus I am very happy to announce that Red Hat has just hired Lukas Tyrychtr, who is a blind software engineer, to lead our effort in making sure Red Hat Enterprise Linux and Fedora Workstation has excellent accessibility support! + +Anyone who has ever worked for a large company knows that getting funding for new initiatives is often hard and can take a lot of time, but I want to highlight how I was extremely positively surprised at how quick and easy it was to get support for hiring Lukas to work on accessibility. When Jiri Eischmann and I sent the request to my manager, Stef Walter, he agreed to champion the same day, and when we then sent it up to Mike McGrath who is the Vice President of Linux Engineering he immediately responded that he would bring this to Tim Cramer who is our Senior Vice President of Software Engineering. Within a few days we had the go ahead to hire Lukas. The fact that everyone just instantly agreed that accessibility is important and something we as a company should do made me incredibly proud to be a Red Hatter. + +What we hope to get from this is not only a better experience for our users, but also to allow even more talented engineers like Lukas to work on Linux and open source software at Red Hat. I thought it would be a good idea here to do a quick interview with Lukas Tyrychtr about the state of accessibility under Linux and what his focus will be. + +Christian: Hi Lukas, first of all welcome as a full time engineer to the team! Can you tell us a little about yourself? + +Lukas: Hi, Christian. For sure. I am a completely blind person who can see some light, but that’s basically it. I started to be interested in computers around 2009 or so, around my 15th or 16th birthday. First, because of circumstances, I started tinkering with Windows, but Linux came shortly after, mainly because of some pretty good friends. Then, after four years the university came and the Linux knowledge paid off, because going through all the theoretical and practical Linux courses there was pretty straightforward (yes, there was no GUI involved, so it was pretty okay, including some custom kernel configuration tinkering). During that time, I was contacted by Red Hat associates whether I’d be willing to help with some accessibility related presentation at our faculty, and that’s how the collaboration began. And, yes, the hire is its current end, but that’s actually, I hope, only the beginning of a long and productive journey. + +Christian: So as a blind person you have first hand experience with the state of accessibility support under Linux. What can you tell us about what works and what doesn’t work? + +Lukas: Generally, things are in pretty good shape. Braille support on text-only consoles basically just always works (except for some SELinux related issues which cropped up). Having speech there is somewhat more challenging, the needed kernel module ([Speakup][4] for the curious among the readers) is not included by all distributions, unfortunately it is not included by Fedora, for example, but Arch Linux has it. When we look at the desktop state of affairs, there is basically only a single screen reader (an application which reads the screen content), called [Orca][5], which might not be the best position in terms of competition, but on the other hand, stealing Orca developers would not be good either. Generally, the desktop is usable, at least with GTK, Qt and major web browsers and all recent Electron based applications. Yes, accessibility support receives much less testing than I would like, so for example, a segmentation fault with a running screen reader can still unfortunately slip through a GTK release. But, generally, the foundation works well enough. Having more and naturally sounding voices for speech synthesis might help attract more blind users, but convincing all the players is no easy work. And then there’s the issue of developer awareness. Yes, everything is in some guidelines like the GNOME ones, however I saw much more often than I’d like to for example a button without any accessibility labels, so I’d like to help all the developers to fix their apps so accessibility regressions don’t get to the users, but this will have to improve slowly, I guess. + +Christian: So you mention Orca, are there other applications being widely used providing accessibility? + +Lukas: Honestly, only a few. There’s Speakup – a kernel module which can read text consoles using speech synthesis, e.g. a screen reader for these, however without something like Espeakup (an Espeak to Speakup bridge) the thing is basically useless, as it by default supports hardware synthesizers, however this piece of hardware is basically a think of the past, e.g. I have never seen one myself. Then, there’s [BRLTTY][6]. This piece of software provides braille output for screen consoles and an API for applications which want to output braille, so the drivers can be implemented only once. And that’s basically it, except for some efforts to create an Orca alternative in Rust, but that’s a really long way off. Of course, utilities for other accessibility needs exist as well, but I don’t know much about these. + +Christian: What is your current focus for things you want to work on both yourself and with the larger team to address? + +Lukas: For now, my focus is to go through the applications which were ported to GTK 4 as a part of the GNOME development cycle and ensure that they work well. It includes adding a lot of missing labels, but in some cases, it will involve bigger changes, for example, GNOME Calendar seems to need much more work. During all that, educating developers should not be forgotten either. With these things out of the way, making sure that no regressions slip to the applications should be addressed by extending the quality assurance and automated continuous integration checks, but that’s a more distant goal. + +Christian: Thank you so much for talking with us Lukas, if there are other people interested in helping out with accessibility in Fedora Workstation what is the best place to reach you? + +Actually for now the easiest way to reach me is by email at [ltyrycht@redhat.com][7]. Be happy to talk to anyone wanting to help with making Workstation great for accessibility. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/accessibility-in-fedora-workstation/ + +作者:[Christian Fredrik Schaller][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://fedoramagazine.org/author/uraeus/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/Accessibility-in-Fedora-Workstation-816x345.jpg +[2]: https://unsplash.com/@elizabeth_woolner?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/accessibility?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: http://www.linux-speakup.org/speakup.html +[5]: https://wiki.gnome.org/action/show/Projects/Orca?action=show&redirect=Orca +[6]: https://brltty.app/ +[7]: https://fedoramagazine.org/mailto:ltyrycht@redhat.com From 07d039a4b075f5f0c3eae94831039a0d81ae6d0e Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 16:12:53 +0800 Subject: [PATCH 0147/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20What=20is=20distributed=20consensus=20for?= =?UTF-8?q?=20site=20reliability=20engineering-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ensus for site reliability engineering-.md | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 sources/tech/20220627 What is distributed consensus for site reliability engineering-.md diff --git a/sources/tech/20220627 What is distributed consensus for site reliability engineering-.md b/sources/tech/20220627 What is distributed consensus for site reliability engineering-.md new file mode 100644 index 0000000000..3e0e588afb --- /dev/null +++ b/sources/tech/20220627 What is distributed consensus for site reliability engineering-.md @@ -0,0 +1,129 @@ +[#]: subject: "What is distributed consensus for site reliability engineering?" +[#]: via: "https://opensource.com/article/22/6/distributed-consensus-site-reliability-engineering" +[#]: author: "Robert Kimani https://opensource.com/users/robert-charles" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What is distributed consensus for site reliability engineering? +====== +Keeping your infrastructure healthy takes time and attention, but done correctly it's an automated process that keeps your systems running smoothly. + +![drawings of people shapes on green background][1] + +Image by: Opensource.com + +In my [previous article][2], I discussed how to enforce best practices within your infrastructure. A site reliability engineer (SRE) is responsible for reliability, first and foremost, and enforcing policies that help keep things running is essential. + +### Distributed consensus + +With microservices, containers, and cloud native architectures, almost every application today is going to be a distributed application. Distributed consensus is a core technology that powers distributed systems. + +Distributed consensus is a protocol for building reliable distributed systems. You cannot rely on "heartbeats" (signals from your hardware or software to indicate that they're operating normally) because network failures are inevitable. + +There are some inherent problems to highlight when it comes to distributed systems. Hardware will fail. Nodes in a distributed system can randomly fail. + +This is one of the important assumptions you have to make before you design a distributed system. Network outages are inevitable. You cannot always guarantee 100% network connectivity. Finally, you need a consistent view of any node within a distributed system. + +According to the [CAP theorem][3], a distributed system cannot simultaneously have all of these three properties: + +1. Consistency: Consistent views of data at each node. This means that it is possible that you don't see the same data when viewed from 2 different nodes in a distributed system. +2. Availability: Refers to the availability of data at each node. +3. Partition tolerance: Refers to tolerance to network failures (which results in network partitions). + +Therefore a node needs to have these qualities to function properly. + +Over the years, several protocols have been developed in the area of distributed consensus, including Paxos, [Raft][4], and Zab. + +Paxos, for instance, was one of the original solutions to the distributed consensus problem. In the Paxos algorithm, nodes in a distributed system send a series of proposals with a unique sequence number. When the majority of processes in the distributed system accept the proposal, that proposal wins, and the sender generates a commit message. The key here is that the majority of the processes accept the proposal. + +The strict sequence numbering of proposals is how it avoids duplication of data, and how it solves the problem of ordering. + +### Open source distributed consensus + +You don't have to reinvent the wheel by writing your own distributed consensus code. There are many open source implementations already available, such as the most popular one [Zookeeper][5]. Other implementations are [Consul][6] and [e][7][tcd][8]. + +### Designing autoscaling + +Autoscaling is a process by which the number of servers in a server farm are automatically increased or decreased based on the load. The term "server farm" is used here to refer to any pool of servers in a distributed system. These servers are commonly behind a load balancer, as described in my previous article. + +There are numerous benefits to autoscaling, but here are the 4 major ones: + +1. Reduce cost by running only the required servers. For instance, you can automatically remove servers from your pool when the load is relatively low. +2. Flexibility to run less time-sensitive workload during low traffic, which is another variation of automatically reducing the number of servers. +3. Automatically replace unhealthy servers (most cloud vendors provide this functionality). +4. Increase reliability and uptime of your services. + +While there are numerous benefits, there are some inherent problems with autoscaling: + +1. A dependent back-end server or a service can get overwhelmed when you automatically expand your pool of servers. The service that you depend on, for example, the remote service your application connects to, may not be aware of the autoscaling activity of your service. +2. Software bugs can trigger the autoscaler to expand the server farm abruptly. This is a dangerous situation that can happen in production systems. A configuration error, for instance, can cause the autoscaler to uncontrollably start new instances. +3. Load balancing may not be intelligent enough to consider new servers. For example, a newly added server to the pool usually requires a warm up period before it can actually receive traffic from the load balancer. When the load balancer isn't fully aware of this situation, it can inundate the new server before it's ready. + +### Autoscaling best practices + +Scaling down is more sensitive and dangerous than scaling up. You must fully test all scale-down scenarios. + +Ensure the back-end systems, such as your database, remote web service, and so on, or any external systems that your applications depend on can handle the increased load. You may be automatically adding new servers to your pool to handle increased load, but the remote service that your application depends on may not be aware of this. + +You must configure an upper limit on the number of servers. This is important. You don't want the autoscaler to uncontrollably start new instances. + +Have a "kill switch" you can use to easily stop the autoscaling process. If you hit a bug or configuration error that causes the autoscaler to behave erratically, you need a way to stop it. + +### 3 systems that act in concert for successful autoscaling + +There are three systems to consider for successful implementation of autoscaling: + +1. LoadBalancing: One of the crucial benefits of [load balancing][9] is the ability to minimize latency by routing traffic to the location closest to the user. +2. LoadShedding: In order to accept all incoming requests, you only process the ones you can. Drop the excess traffic. Examples of load shedding systems are [Netflix Zuul][10], and [Envoy][11]. +3. Autoscaling: Based on load, your infrastructure automatically scales up or down. + +When you're designing your distributed applications, think through all the situations your applications might encounter. You should clearly document how load balancing, load shedding, and autoscaling work together to handle all situations. + +### Implementing effective health checks + +The core job of load balancers is to direct traffic to a set of back-end servers. Load balancers need to know which servers are alive and healthy in order for it to successfully direct traffic to them. You can use health checks to determine which servers are healthy and can receive requests. + +Here's what you need to learn about effective health checks: + +* Simple: Monitor for the availability of a back-end server. +* Content verification: Send a small request to the back-end server and examine the response. For instance, you could look for a particular string or response code. +* Failure: Your server may be up, but the application listening on a particular pod may be down. Or the pod may be listening, but it may not be accepting new connections. A health check must be intelligent enough to identify a problematic back-end server. + +Health checks with sophisticated content verification can increase network traffic. Find the balance between a simple health check (a simple ping, for instance) and a sophisticated content-based health check. + +In general, for a web application, hitting the home page of a web server and looking for a proper HTML response can serve as a reasonable health check. These kinds of checks can be automated using the [curl command][12]. + +Whenever you are doing a postmortem analysis of an outage, review your health check policies and determine how fast your load balancer marked a server up or down. This can be very useful to determine your health check policies. + +### Stay healthy + +Keeping your infrastructure healthy takes time and attention, but done correctly it's an automated process that keeps your systems running smoothly. There's yet more to an SRE's job to discuss, but those are topics for my next article. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/distributed-consensus-site-reliability-engineering + +作者:[Robert Kimani][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/robert-charles +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/Community.jpg +[2]: https://opensource.com/article/22/6/circuit-breaker-pattern-site-reliability-engineering +[3]: https://en.wikipedia.org/wiki/CAP_theorem +[4]: https://raft.github.io/ +[5]: https://zookeeper.apache.org/ +[6]: https://www.consul.io/ +[7]: https://etcd.io/ +[8]: https://etcd.io +[9]: https://opensource.com/article/21/4/load-balancing +[10]: https://github.com/Netflix/zuul +[11]: https://github.com/envoyproxy/envoy +[12]: https://opensource.com/article/20/5/curl-cheat-sheet#headers From c303e74c4734bd2720a2bbec598b2bfbd610ebb4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 16:14:22 +0800 Subject: [PATCH 0148/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20Make=20a=20temporary=20file=20on=20Linux?= =?UTF-8?q?=20with=20Bash.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ake a temporary file on Linux with Bash.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sources/tech/20220627 Make a temporary file on Linux with Bash.md diff --git a/sources/tech/20220627 Make a temporary file on Linux with Bash.md b/sources/tech/20220627 Make a temporary file on Linux with Bash.md new file mode 100644 index 0000000000..362c10a17a --- /dev/null +++ b/sources/tech/20220627 Make a temporary file on Linux with Bash.md @@ -0,0 +1,146 @@ +[#]: subject: "Make a temporary file on Linux with Bash" +[#]: via: "https://opensource.com/article/22/6/make-temporary-file-bash" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Make a temporary file on Linux with Bash +====== +The mktemp command on Fedora-based systems and tempfile on Debian-based systems are specially designed to alleviate that burden by making it easy to create, use, and remove unique files. + +![bash logo on green background][1] + +Image by: Opensource.com + +When programming in the Bash scripting language, you sometimes need to create a temporary file. For instance, you might need to have an intermediary file you can commit to disk so you can process it with another command. It's easy to create a file such as `temp` or anything ending in `.tmp`. However, those names are just as likely to be generated by some other process, so you could accidentally overwrite an existing temporary file. And besides that, you shouldn't have to expend mental effort coming up with names that seem unique. The `mktemp` command on Fedora-based systems and `tempfile` on Debian-based systems are specially designed to alleviate that burden by making it easy to create, use, and remove unique files. + +### Create a temporary file + +Both `mktemp` and `tempfile` create a temporary file as their default action and print the name and location of the file as output: + +``` +$ tempfile +/tmp/fileR5dt6r + +$ mktemp +/tmp/tmp.ojEfvMaJEp +``` + +Unless you specify a different path, the system places temporary files in the `/tmp` directory. For `mktemp`, use the `-p` option to specify a path: + +``` +$ mktemp -p ~/Demo +/home/tux/Demo/tmp.i8NuhzbEJN +``` + +For `tempfile`, use the `--directory` or `-d` option: + +``` +$ tempfile --directory ~/Demo/ +/home/sek/Demo/fileIhg9aX +``` + +### Find your temporary file + +The problem with using an auto-generated temporary file is that you have no way of knowing what its name is going to be. That's why both commands return the generated file name as output. You can use an interactive shell such as Konsole, GNOME Terminal, or [rxvt][2] to use the filename displayed on your terminal to interact with the file. + +However, if you're writing a script, there's no way for you to intervene by reading the name of the file and using it in the following commands. + +The authors of `mktemp` and `tempfile` thought of that problem, and there's an easy fix. The terminal sends output to a stream called *stdout.*You can capture stdout by setting a variable to the results of a command launched in a subshell: + +``` +$ TMPFILE=$(mktemp -p ~/Demo) + +$ echo $TMPFILE +/home/tux/Demo/tmp.PjP3g6lCq1 +``` + +Use `$TMPFILE` when referring to the file, and it's the same as interacting directly with the file itself. + +### Create a temporary directory with mktemp + +You can also use the `mktemp` command to create a directory instead of a file: + +``` +$ mktemp --directory -p ~/Demo/ +/home/tux/Demo/tmp.68ukbuluqI + +$ file /home/tux/Demo/tmp.68ukbuluqI +/home/tux/Demo/tmp.68ukbuluqI: directory +``` + +### Customize temporary names + +Sometimes you might want an element of predictability in even your pseudo-randomly generated filenames. You can customize the names of your temporary files with both commands. + +With `mktemp`, you can add a suffix to your filename: + +``` +$ mktemp -p ~/Demo/ --suffix .mine +/home/tux/Demo/tmp.dufLYfwJLO.mine +``` + +With `tempfile`, you can set a prefix and a suffix: + +``` +$ tempfile --directory ~/Demo/ \ +--prefix tt_ --suffix .mine +/home/tux/Demo/tt_0dfu5q.mine +``` + +### Tempfile as touch + +You can also set a custom name with `tempfile` : + +``` +$ tempfile --name not_random +not_random +``` + +When you use the `--name` option, it's absolute, ignoring all other forms of customization. In fact, it even ignores the `--directory` option: + +``` +$ tempfile --directory ~/Demo \ +--prefix this_is_ --suffix .all \ +--name not_random_at +not_random_at +``` + +In a way, `tempfile` can be a substitute for `touch` and `test` because it refuses to create a file that already exists: + +``` +$ tempfile --name example.txt +open: file exists +``` + +The `tempfile` command isn't installed on all Linux distributions by default, so you must ensure that it exists before you use it as a hack around `test` in a script. + +### Install mktemp and tempfile + +[GNU Core Utils][3] includes the `mktemp` command. Major distributions include Core Utils by default (it's the same package that contains `chmod`, `cut`, `du`, and other essential commands). + +The Debian Utils package includes the `tempfile` command and is installed by default on most Debian-based distributions and Slackware Linux. + +### Wrap up + +Temporary files are convenient because there's no confusion about whether they're safe to delete. They're temporary, meant to be used as needed and discarded without a second thought. Use them when you need them, and clear them out when you're done. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/make-temporary-file-bash + +作者:[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/bash_command_line.png +[2]: https://opensource.com/article/19/10/why-use-rxvt-terminal +[3]: https://www.gnu.org/software/coreutils/ From a6093c690e5b2d91deacb7a806c1b0d4bc477c28 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 27 Jun 2022 19:22:12 +0800 Subject: [PATCH 0149/3123] RP @hadisi1993 https://linux.cn/article-14767-1.html --- ...easons I love to use the Qt Creator IDE.md | 186 +++++++++++++++++ ...easons I love to use the Qt Creator IDE.md | 197 ------------------ 2 files changed, 186 insertions(+), 197 deletions(-) create mode 100644 published/20210630 9 reasons I love to use the Qt Creator IDE.md delete mode 100644 translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md diff --git a/published/20210630 9 reasons I love to use the Qt Creator IDE.md b/published/20210630 9 reasons I love to use the Qt Creator IDE.md new file mode 100644 index 0000000000..87e3231afc --- /dev/null +++ b/published/20210630 9 reasons I love to use the Qt Creator IDE.md @@ -0,0 +1,186 @@ +[#]: subject: (9 reasons I love to use the Qt Creator IDE) +[#]: via: (https://opensource.com/article/21/6/qtcreator) +[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) +[#]: collector: (lujun9972) +[#]: translator: (hadisi1993) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14767-1.html) + +我爱用 Qt Creator IDE 的九个原因 +====== + +> Qt Creator 就是丰富的 Qt 库和程序员之间的粘合剂。 + +![](https://img.linux.net.cn/data/attachment/album/202206/27/192023otvmu77tl808lltl.jpg) + +Qt Creator 是 Qt 框架的默认集成开发环境(IDE),同时也是丰富的 Qt 库和用户之前的粘合剂。除了如智能代码补全、调试、项目管理等基础功能外,Qt Creator 还提供了很多让软件开发变得更简单的特性。 + +在这篇文章中,我会重点介绍一些我最喜欢的 [Qt Creator][2] 特性。 + +### 深色模式 + +当我使用一个新的应用时,我的第一个问题是:_它有深色模式吗?_ Qt Creator 的回答是:_你更喜欢哪一种深色模式呢?_ + +你可以在“选项Options”菜单中激活深色模式。在顶部的菜单栏中,点击“工具Tools”,选择“选项Options”,然后转到“环境Environment”部分。下面是你能选择的常用外观: + +![QT Creator 深色模式][3] + +### 定制外观 + +像每一个 Qt 应用一样,借助样式表,Qt Creator 的外观是高度可定制化的。下面,你可以按照我的做法给 Qt Creator一个想要的外观。 + +将下面这些内容写入 `mycustomstylesheet.css` 文件中: + +``` +QMenuBar { background-color: olive } +QMenuBar::item { background-color: olive } +QMenu { background-color : beige; color : black } +QLabel { color: green } +``` + +然后使用命令行开启 Qt Creator,将样式表作为参数传入: + +``` +qtcreator -stylesheet=mycustomstylesheet.css +``` + +IDE 现在看上去应该会变成这样: + +![QT Creator 定制样式表][5] + +在这份 [文档][6] 中可以查阅更多的样式表。 + +### 命令行参数 + +Qt Creator 可接受很多命令行选项。例如,如果想在启动时自动加载当前项目,那么你可以将它的路径传入: + +``` +qtcreator ~/MyProject/MyQtProject.pro +``` + +你甚至可以将默认应该打开的文件和行数作为参数传递。下面这个命令打开 `main.cpp` 20 行处: + +``` +qtcreator ~/MyProject/main.cpp:20 +``` + +在这份 [文档][7] 中可以查阅更多 Qt 特有的命令行选项。 + + +Qt Creator 和一般的 Qt 应用无二,所以,除了自己的命令行参数以外,它也接收 [QApplication][8] 和 [QGuiApplication][9] 的一般参数。 + +### 交叉编译 + +Qt Creator 允许你定义一些被称为“配套Kit”的工具链。 “配套” 定义了构建和运行应用所需要的二进制库和 SDK。 + +![QT Creator kits][10] + +这使得你通过两次点击,就在完全不同的工具链之间切换。 + +![在 Qt Creator 中切换配套][11] + +在这份 [手册][12] 中可以查阅更多关于配套的内容。 + +### 分析工具 + +Qt Creator 集成了一些最流行的性能分析工具,例如: + + * [Linux 性能分析器][13](需要特定的内核) + * [Valgrind][14] 内存分析器 + * [Clang-Tidy 和 Clazy][15],一种检查 C/C++ 的 静态分析器Linter + +![Qt Creator 分析工具][16] + +### 调试器 + +在调试方面,Qt Creator 为 GNU Debugger(GDB)配备了一个很好的界面。我喜欢它检查容器类型和创建条件断点的方式,很简单。 + +![Qt Creator 调试器][17] + +### FakeVim + +如果你喜欢 Vim,你可以在设置中开启 FakeVim,来像 Vim 一样控制 Qt Creator。点击“工具Tools”,选择“选项Options”。在 “FakeVim” 选项中,你可以找到许多开关来定制 FakeVim。除了编辑器的功能外,你可以将自己设置的功能和命令关联起来,定制 Vim 命令。 + +举个例子,你可以将“构建项目Build Project”的功能和 `build` 命令关联到一起: + +![Qt Creator中的FakeVim][18] + +回到编辑器中,当你按下冒号(`:`)并输入 `build`,Qt Creator 利用配置的工具链,开始进行构建: + +![Qt Creator中的FakeVim][19] + +你可以在这份 [文档][20] 中找到 FakeVim 的更多信息。 + +### 类检测器 + +当使用 C++ 开发时,点击 Qt Creator 右下角的按钮可打开右边的窗口。然后在窗口顶部拉下的菜单中选择“大纲Outline”。如果你在左侧窗体中有头文件打开,你可以很好地纵览定义的类和类型。如果你切换到源文件中(`*.cpp`),右侧窗体会列出所有定义的方法,双击其中一个,你可以跳转到这个方法: + +![Qt Creator 中的类列表][21] + +### 项目配置 + +Qt Creator 的项目建立在项目目录里的 `*.pro-file` 之上。你可以为你的项目在 `*.pro-file` 中添加定制的配置。我向 `*.pro-file` 中添加了 `my_special_config`,它向编译器的定义添加 `MY_SPECIAL_CONFIG`。 + +``` +QT -= gui + +CONFIG += c++11 console +CONFIG -= app_bundle + +CONFIG += my_special_config + +my_special_config { +DEFINES += MY_SPECIAL_CONFIG +} +``` + +Qt Creator 自动根据当前配置设置代码高亮: + +![Qt Creator 的特殊配置][22] + +`*.pro-file` 使用 [qmake 语言][23] 进行编写。 + +### 总结 + +这些特性仅仅是 Qt Creators 所提供的特性的冰山一角。初学者们应该不会感到被其众多的功能所淹没,Qt Creator 是一款对初学者很友好的 IDE。它甚至可能是入门 C++ 开发最简单的方式。如果要获得 QT Creator 特性的全面概述,请参考它的 [官方文档][24]。 + +*(插图来自 Stephan Avenwedde, [CC BY-SA 4.0][4])* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/qtcreator + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[hadisi1993](https://github.com/hadisi1993) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating) +[2]: https://www.qt.io/product/development-tools +[3]: https://opensource.com/sites/default/files/uploads/qt_creator_dark_mode.png ( QT Creator dark mode) +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: https://opensource.com/sites/default/files/uploads/qt_creator_custom_stylesheet2.png (QT Creator custom stylesheet) +[6]: https://doc.qt.io/qt-5/stylesheet-reference.html +[7]: https://doc.qt.io/qtcreator/creator-cli.html +[8]: https://doc.qt.io/qt-5/qapplication.html#QApplication +[9]: https://doc.qt.io/qt-5/qguiapplication.html#supported-command-line-options +[10]: https://opensource.com/sites/default/files/uploads/qt_creator_cross_compiling.png (QT Creator kits) +[11]: https://opensource.com/sites/default/files/uploads/qt_creator_select_kits.png (Switching between Kits in Qt Creator) +[12]: https://doc.qt.io/qtcreator/creator-targets.html +[13]: https://doc.qt.io/qtcreator/creator-cpu-usage-analyzer.html +[14]: https://doc.qt.io/qtcreator/creator-valgrind-overview.html +[15]: https://doc.qt.io/qtcreator/creator-clang-tools.html +[16]: https://opensource.com/sites/default/files/uploads/qt_creator_analyzer.png (Qt Creator analyzer) +[17]: https://opensource.com/sites/default/files/uploads/qt_creator_debugger2.png (Qt Creator debugger) +[18]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_ex_commands.png (FakeVim in Qt Creator) +[19]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_build_commands.png (FakeVim in Qt Creator) +[20]: https://doc.qt.io/qtcreator/creator-editor-fakevim.html +[21]: https://opensource.com/sites/default/files/uploads/qtcreator_class_overview.png (List of classes in Qt Creator) +[22]: https://opensource.com/sites/default/files/uploads/qtcreater_special_config.png (Special configuration in Qt Creator) +[23]: https://doc.qt.io/qt-5/qmake-language.html +[24]: https://doc.qt.io/qtcreator/ diff --git a/translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md b/translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md deleted file mode 100644 index bebc86bf73..0000000000 --- a/translated/tech/20210630 9 reasons I love to use the Qt Creator IDE.md +++ /dev/null @@ -1,197 +0,0 @@ -[#]: subject: (9 reasons I love to use the Qt Creator IDE) -[#]: via: (https://opensource.com/article/21/6/qtcreator) -[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) -[#]: collector: (lujun9972) -[#]: translator: (hadisi1993) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -9个我爱用Qt Creator IDE的原因 -====== -Qt Creator 就是丰富的Qt库和程序员之间的胶水。 -![坐在窗前用笔记本电脑的商务女性][1] - -Qt Creator 是Ot框架默认的集成开发环境(IDE),同时也是丰富的Qt库和用户之前的胶水。除了如智能代码补全,调试,项目管理等基础功能外,Qt Creator还提供了很多让软件开发变得更简单的特性。 - -在这篇文章中,我会重点介绍一些我最喜欢的[Qt Creator][2]特性。 -### 黑暗模式 - -当我使用一个新的应用时,我的第一个问题是:_这里有黑暗模式吗?_ Qt Creator的回答是:_你更喜欢哪一种黑暗模式呢?_ - -你可以在选项菜单中激活黑暗模式。在顶部的菜单栏中,点击**工具**,选择**选项**,然后转到**环境**部分。下面是你能选择的常用外观: - -![ QT Creator 黑暗模式][3] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### 定制外观 - -像每一个Qt应用一样,借助样式表,Qt Creator的外观是高度可定制化的。下面,你可以按照我的做法给Qt Creator一个想要的外观。 - -将下面这些内容写入`mycustomstylesheet.css`文件中: - -``` -QMenuBar { background-color: olive } -QMenuBar::item { background-color: olive } -QMenu { background-color : beige; color : black } -QLabel { color: green } -``` - -然后使用命令行开启Qt Creator,将样式表作为参数传入: - - -``` -`qtcreator -stylesheet=mycustomstylesheet.css` -``` - -IDE现在看上去应该会变成这样: - -![QT Creator 定制样式表][5] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -在这份[文档][6]中可以查阅更多的样式表 - -### 命令行参数 -Qt Creator 可接受很多命令行选项。例如,如果想在启动时自动加载当前项目,那么你可以将它的路径传递给`*.pro-file`: - -``` -`qtcreator ~/MyProject/MyQtProject.pro` -``` - -你甚至可以将默认应该打开的文件和行数作为参数传递。下面这个命令在20行处打开`main.cpp`: - -``` -`qtcreator ~/MyProject/main.cpp:20` -``` - -在这份[文档][7]中可以查阅更多Qt特有的命令行选项。 - - -Qt Creator和一般的Qt应用无二,所以,除了自己的命令行参数以外,它也接收[QApplication][8]和[QGuiApplication][9]的一般参数。 -### 交叉编译 - -Qt Creator allows you to define several toolchains, called **Kits**. A kit defines the binaries and SDK for building and running an application: -Qt Creator允许你定义一些被称为**Kits**的toolchains。一个Kit定义构建和运行应用所需要的二进制库和SDK。 -![QT Creator kits][10] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -This allows you to switch between completely different toolchains with just two clicks: -这使得你通过两次点击,就在完全不同的toolchains之间切换。 - -![在Qt Creator中切换Kits][11] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -在这份[手册][12]中可以查阅更多关于Kits的内容。 -### 分析工具 - -Qt Creator集成了一些最流行的性能分析工具,例如: - - * [Linux Performance Analyzer][13] (需要特定的内核) - * [Valgrind][14] memory profiler - * [Clang-Tidy and Clazy][15], 一种检查C/C++的linter - - -![Qt Creator性能分析工具][16] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### 调试器 - -在调试方面,Qt Creator为GNU Debugger(GDB)配备了一个很好的界面。我喜欢它检查容器类型和创建条件断点的方式,很简易。 - -![Qt Creator 调试器][17] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### FakeVim - -如果你喜欢Vim,你可以开启在设置中开启FakeVim来像Vim一样控制Qt Creator。点击**工具**并选择**选项**。在**FakeVim**选项中,你可以找到许多开关来定制FakeVim。除了编辑器的功能外,你可以将自己设置的功能和命令关联起来,定制Vim命令。 - -举个例子,你可以将**创建项目**的功能和`build`命令关联到一起去: -For example, you can map the function **Build Project** to the `build` command: - -![Qt Creator中的FakeVim][18] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -回到编辑器中,当你按下冒号并输入build,Qt Creator利用配置的toolchain,开始进行构建: - -![Qt Creator中的FakeVim][19] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -你可以中这份[文档][20]中找到FakeVim的更多信息。 -### 类检测器 - -当使用C++开发时,点击Qt Creator右下角的按钮可打开右边的窗口。然后在窗口顶部拉下的菜单中选择**轮廓**。如果你在左侧窗体中有头文件打开,你可以很好地纵览定义的类和类型。如果你切换到源文件中(`*.cpp`),右侧窗体会列出所有定义的方法,双击其中一个,你可以跳转到这个方法: -![Qt Creator中的类列表][21] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -### 项目配置 - -Qt Creator 的项目建立在项目文件里的`*.pro-file`之上。你可以为你的项目在`*.pro-file`中添加你定制的配置。我向`*.pro-file`中添加了`my_special_config`,它向编译器的定义添加`MY_SPECIAL_CONFIG`。 - -``` -QT -= gui - -CONFIG += c++11 console -CONFIG -= app_bundle - -CONFIG += my_special_config - -my_special_config { -DEFINES += MY_SPECIAL_CONFIG -} -``` - -Qt Creator 自动根据当前配置设置代码高亮: -![Qt Creator的特殊配置][22] - -(Stephan Avenwedde, [CC BY-SA 4.0][4]) - -`*.pro-file` 使用[qmake语言][23]进行编写 -### Summary -这些特性仅仅是Qt Creators提供特性的冰山一角。初学者们应该不会感到被其众多的功能所淹没,Qt Creator是一款对初学者很友好的IDE。它甚至可能是开始C++开发最简单的方式。如果要获得QT Creator特性的全面概述,请参考它的[官方文档][24]。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/qtcreator - -作者:[Stephan Avenwedde][a] -选题:[lujun9972][b] -译者:[hadisi1993](https://github.com/hadisi1993) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating) -[2]: https://www.qt.io/product/development-tools -[3]: https://opensource.com/sites/default/files/uploads/qt_creator_dark_mode.png ( QT Creator dark mode) -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: https://opensource.com/sites/default/files/uploads/qt_creator_custom_stylesheet2.png (QT Creator custom stylesheet) -[6]: https://doc.qt.io/qt-5/stylesheet-reference.html -[7]: https://doc.qt.io/qtcreator/creator-cli.html -[8]: https://doc.qt.io/qt-5/qapplication.html#QApplication -[9]: https://doc.qt.io/qt-5/qguiapplication.html#supported-command-line-options -[10]: https://opensource.com/sites/default/files/uploads/qt_creator_cross_compiling.png (QT Creator kits) -[11]: https://opensource.com/sites/default/files/uploads/qt_creator_select_kits.png (Switching between Kits in Qt Creator) -[12]: https://doc.qt.io/qtcreator/creator-targets.html -[13]: https://doc.qt.io/qtcreator/creator-cpu-usage-analyzer.html -[14]: https://doc.qt.io/qtcreator/creator-valgrind-overview.html -[15]: https://doc.qt.io/qtcreator/creator-clang-tools.html -[16]: https://opensource.com/sites/default/files/uploads/qt_creator_analyzer.png (Qt Creator analyzer) -[17]: https://opensource.com/sites/default/files/uploads/qt_creator_debugger2.png (Qt Creator debugger) -[18]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_ex_commands.png (FakeVim in Qt Creator) -[19]: https://opensource.com/sites/default/files/uploads/qt_creator_fakevim_build_commands.png (FakeVim in Qt Creator) -[20]: https://doc.qt.io/qtcreator/creator-editor-fakevim.html -[21]: https://opensource.com/sites/default/files/uploads/qtcreator_class_overview.png (List of classes in Qt Creator) -[22]: https://opensource.com/sites/default/files/uploads/qtcreater_special_config.png (Special configuration in Qt Creator) -[23]: https://doc.qt.io/qt-5/qmake-language.html -[24]: https://doc.qt.io/qtcreator/ From 5b6cea74a8abe03312398846c37e37fcb9656c2f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 27 Jun 2022 21:20:46 +0800 Subject: [PATCH 0150/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lkxed 这个标题有明显误导性 --- ...0220621 The Final Version Of 7-Zip 22.00 Is Now Available.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md index c0b943fc00..15e9c3d03e 100644 --- a/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md +++ b/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md @@ -7,7 +7,7 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-14764-1.html" -7-Zip 的最终版本 22.00 现已推出 +7-Zip 22.00 最终版现已推出 ====== ![](https://img.linux.net.cn/data/attachment/album/202206/27/110310hwrmxuwyqlor1olp.jpg) From 3839e5a6c370aa4b88a15ffcdddc932ba35525d3 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Mon, 27 Jun 2022 22:40:17 +0800 Subject: [PATCH 0151/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md index aa53c063ec..119132a1c8 100644 --- a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md +++ b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5fc965ff951b47eddf77bb138412fd7ac7eddb9d Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 23:31:11 +0800 Subject: [PATCH 0152/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220627=20Red=20Hat=20Hires=20a=20Blind=20Software?= =?UTF-8?q?=20Engineer=20to=20Improve=20Accessibility=20on=20Linux=20Deskt?= =?UTF-8?q?op.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Improve Accessibility on Linux Desktop.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md diff --git a/sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md b/sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md new file mode 100644 index 0000000000..bc0f94bc6b --- /dev/null +++ b/sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md @@ -0,0 +1,79 @@ +[#]: subject: "Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop" +[#]: via: "https://news.itsfoss.com/red-hat-accessibility-gnome/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop +====== +Red Hat is hiring a blind software engineer to help with accessibility refinements in GNOME, Fedora, and RHEL. This is a good step by Red Hat. + +![red hat fedora][1] + +Accessibility on a Linux desktop is not one of the strongest points to highlight. However, GNOME, one of the [best desktop environments][2], has managed to do better comparatively (I think). + +In a blog post by **Christian Fredrik Schaller** (Director for Desktop/Graphics, Red Hat), he mentions that they are making serious efforts to improve accessibility. + +Starting with Red Hat hiring **Lukas Tyrychtr**, who is a blind software engineer to lead the effort in improving Red Hat Enterprise Linux, and Fedora Workstation in terms of accessibility. + +Here, let me summarise some of the important parts of the blog post. + +### State of Accessibility in GNOME + +While I mentioned that GNOME managed to have decent accessibility support in the past, Christian mentions what happened over the years: + +> The first concerted effort to support accessibility under Linux was undertaken by Sun Microsystems when they decided to use GNOME for Solaris. Sun put together a team focused on building the pieces to make GNOME 2 fully accessible and worked with hardware makers to make sure things like Braille devices worked well. I even heard claims that GNOME and Linux had the best accessibility of any operating system for a while due to this effort. As Sun started struggling and got acquired by Oracle this accessibility effort eventually trailed off with the community trying to pick up the slack afterwards + +In a nutshell, after GNOME 3, not a lot of concentrated efforts were put into enhancing the accessibility of the GNOME desktop. + +Of course, with every desktop environment release, the community/developers try their best to improve certain aspects, but a dedicated effort wasn’t possible without proper guidance and resources. + +This is where Red Hat comes in. + +Hiring a blind software engineer (with plans for more) is a big deal and should go a long way to improve the state of accessibility on the Linux desktop. + +Christian asked Lukas about it and here’s what he mentions: + +> Generally, the desktop is usable, at least with GTK, Qt and major web browsers and all recent Electron based applications. Yes, accessibility support receives much less testing than I would like, so for example, a segmentation fault with a running screen reader can still unfortunately slip through a GTK release. But, generally, the foundation works well enough. Having more and naturally sounding voices for speech synthesis might help attract more blind users, but convincing all the players is no easy work. + +Overall, the fundamentals/basic options for accessibility are in place, but can use improvements to make it a seamless experience across the platform. + +### Plans for Accessibility Improvements + +With the current efforts, I think GNOME, Fedora Workstation, and RHEL should get meaningful improvements in the coming years. + +But, what kind of enhancements are we looking at? + +You can read the [blog post][3] to get the details, here’s a summary of it: + +* Need for more utilities for accessibility. Currently, it is limited to extremely few tools (Orca, Speakup). +* Focusing on applications ported to GTK 4. +* Educating developers about focusing on the accessibility of their applications. + +With Red Hat hiring a blind software engineer, I think the developers will be able to identify what to work on and how to improve it. + +Naturally, with more awareness among developers, the entire Linux ecosystem will benefit (not just GNOME). + +But, of course, this is great news for GNOME users and Fedora/RHEL distributions. + +*What do you think about this initiative by Red Hat? Let us know in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/red-hat-accessibility-gnome/ + +作者:[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/06/redhat-fedora-acccessibility.png +[2]: https://itsfoss.com/best-linux-desktop-environments/ +[3]: https://fedoramagazine.org/accessibility-in-fedora-workstation/ From d752fe5aa0b0097fdf67046619735543460fe45a Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 23:38:55 +0800 Subject: [PATCH 0153/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20DevSecOps-=20A=20Philosophy=20that=20Puts?= =?UTF-8?q?=20Security=20First.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...- A Philosophy that Puts Security First.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20220627 DevSecOps- A Philosophy that Puts Security First.md diff --git a/sources/tech/20220627 DevSecOps- A Philosophy that Puts Security First.md b/sources/tech/20220627 DevSecOps- A Philosophy that Puts Security First.md new file mode 100644 index 0000000000..c72f21ce5a --- /dev/null +++ b/sources/tech/20220627 DevSecOps- A Philosophy that Puts Security First.md @@ -0,0 +1,91 @@ +[#]: subject: "DevSecOps: A Philosophy that Puts Security First" +[#]: via: "https://www.opensourceforu.com/2022/06/devsecops-a-philosophy-that-puts-security-first/" +[#]: author: "Jonathan Pereira https://www.opensourceforu.com/author/jonathan-pereira/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +DevSecOps: A Philosophy that Puts Security First +====== +DevOps has helped remove barriers between development and operations, to improve productivity as well as the reliability of software. However, it has fallen short on some aspects such as security, leading to the emergence of the DevSecOps philosophy. Find out more about it in this article. + +![DevSecOps featured][1] + +Though a lot of people understand the security concerns that are inherent in DevOps, most do not know how to overcome the problem. The new security-focused spin-off DevSecOps could solve these problems if implemented properly. + +In order to understand and appreciate DevSecOps, we first need to understand the benefits and the shortcomings of DevOps. + +#### Pros of DevOps + +*Reduced time-to-market:* Not too long ago, it used to take anywhere close to a year or two for a simple software release, with big companies claiming that they would need to estimate time, resources, and the manpower required to complete a task, and so on. Today there are companies that are shipping out software on a daily basis. This has been possible because of the adoption of the DevOps philosophy. + +*Global presence:* DevOps has without a doubt helped companies manage a global presence. Rewinding back a few years, only the major players in the field of software development were able to ship their software across the globe. Today, that has almost entirely changed as a company situated in India can assist a client from any corner of the world. Similarly, Indian customers can get the services of any company located anywhere in the world. + +*Software democratisation:* One of the reasons why companies demanded a lot of time to build software was because they had to literally develop everything from scratch. Every library and all the necessary tools had to be built from the ground up, which was a huge task. But today that has changed completely, as all the required libraries that can perform basic tasks can be used by anyone, and a developer can just start to build on top of these like a matrix. This is a convenience, especially for those who rely heavily on these libraries. A good example of this is what React and Angular have been doing for Web development. + +#### The con: Lagging security practices + +However, software security still lags behind in spite of all the progress that is being made. We get to hear about major data breaches occurring around the world and often in large companies even to this day. One of the biggest data breaches happened at Equifax in 2017 on 13th May and was not discovered until 29th July! Once the breach was discovered, effective action was taken within 24 hours. However, a lot of sensitive data such as credit card details, social security numbers, and other important documents were accessed over the two-month period. According to some estimates, almost half of the American population was impacted. + +#### Damages incurred due to poor security + +In India, awareness about such security concerns is low, so the severity of this might be hard to grasp for us. These types of data breaches tend to occur from time to time in our country as well. Here are some of the major data breaches that have taken place in India just over the last year. + +There was a data breach at Bigbasket in October 2021, which sacrificed the information of over 20 million people. Then there was a breach at Juspay, a payment gateway, in which over 35 million people’s primary information such as names and addresses, as well as financial details such as card numbers and banking credentials were revealed. In a security breach at Dominos, the data of over one million people was put at risk. Another major breach occurred very recently at Air India, where over 4.5 million people were affected. +According to research by IBM, it has been found that the average cost of a data breach is over 5 million US dollars. But what is interesting is that it is about 30 times cheaper to fix the defects during the development stage of software, compared to once it goes out into production. Though this is still a considerable amount of money, at least it saves companies from incurring a bigger loss. + +So the people behind the development of DevOps are now fostering a new paradigm or a philosophy, which they term as ‘Dev + Sec + Ops’ (philosophy of integrated security practices within the DevOps process). This basically integrates security practices with the existing DevOps process and philosophy to make sure that security is the most important aspect in every stage of software development, and not an afterthought. + +| Tools available at your disposal | +| :- | +| Some of the tools that are already being put to use in the DevOps toolchain can be used to manage DevSecOps too. No new tools are needed for DevSecOps. Tools such as Jira, Git, Gradle, and Selenium are a few that can be used for planning, coding, building and testing software. They are used in DevOps but are compliant with DevSecOps as well — it is just a matter of how they are implemented. Tools such as Puppet, Chef, and Sensu can be used for deployment, operation and monitoring (refer to Figure 2). | + +#### What exactly is DevSecOps? + +DevSecOps is still in its early phases and is continuing to mature. There are already a whole bunch of tools available, but there is still plenty of work to be done. The first important aspect that it covers is that it helps in identifying the security issues, unlike in DevOps where these are generally just an afterthought. The security team goes through a higher level of overview and makes sure that security is on point, before giving the final nod in the development process. + +DevSecOps also gives speed and agility to the security team so they can figure out the issues right from the word go rather than finding them at the end. It allows them to respond to the changes rapidly when there are a lot of new laws that have to be abided by such as the General Data Protection Regulation (GDPR). When the security team is involved from the beginning, it helps them to deal with issues more swiftly. More importantly, it helps to create more automated builds, and more QA testing can be done. + +Automating the entire process in DevOps is a very crucial aspect, and is one of the core pillars on which it stands today. The more things can be structured and automated the better the software is, as it tends to be more scalable that way. Automation helps in maintaining better communication between the security and development teams, which is something DevOps has always advocated. + +![Figure 1: Detailed DevOps workflow][2] + +Figure 1 depicts the workflow that DevOps usually advocates, on top of which the layers of security are supposed to be added at the planning stage. This is the stage at which the security team is already thinking about what kind of threat model policies they want to build in, and the issues that they could possibly encounter when deploying the final product. +Once the coding pipeline where code is being generated is reached, the static analysis and code reviews are to be done dynamically. When it gets into testing, the security team must make sure that the code is hardened against the known vulnerabilities. This will significantly lower the risk of attacks. Some kind of pen testing can be done while making sure that the security planning happens at the planning stage itself and not at the test stage. + +Once the code is ready to be deployed, it is essential to continuously monitor and assess it for any kind of threats and vulnerabilities so that the application is not impacted. It must also meet all necessary compliances. + +![Figure 2: Integration of various DevOps tools with DevSecOps tools][3] + +#### The benefits of using security as code + +As much as the automation of the entire workflow is important, there is an extent to which it can be done using tools. Managing a single server manually is not a big deal, but to manage tens of thousands of servers together every day can be super challenging. A code can be put in place in the form of an application, which can very easily manage these servers on its own. It can be instructed to do so according to the required security protocol. Let us look at some of the benefits of using security as code. + +*Collaboration:* A code is an unambiguous common language that can be understood by literally everyone, even if a person doesn’t have any prior understanding of it. Anyone can learn to code and it will perform the same way wherever it is implemented. This makes it significantly easier to work with people from all walks of life. + +*Scalability:* It is highly scalable. Irrespective of the number of servers or nodes being managed, a piece of code is going to perform the same way wherever it has been deployed. This leaves almost no room for error and minimises the risk of malfunctions. + +*Visibility:* Since the code is always visible, it can be edited anytime it is necessary to do so. Whenever there is a bug that might cause any kind of hindrance, it can be rectified very easily without any significant damage. It can be altered at will at any given point of time. + +It’s a no-brainer that security shall always be the utmost priority for anything that you do on the Web, and anything that comprises system hardware and software. Weak security can lead to irreversible losses. Hence, it becomes imperative for developers to implement foolproof security using evolving philosophies like DevSecOps. + +*Transcribed and curated by Laveesh Kocher* + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/devsecops-a-philosophy-that-puts-security-first/ + +作者:[Jonathan Pereira][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/jonathan-pereira/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/DevSecOps-featured.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-Detailed-DevOps-workflow.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Integration-of-various-DevOps-tools-with-DevSecOps-tools.jpg From a0899bbd48da69a7249dcbbbfa696023a22ad192 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 27 Jun 2022 23:42:48 +0800 Subject: [PATCH 0154/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20How=20to=20Install=20Docker=20And=20Docke?= =?UTF-8?q?r=20Compose=20In=20Ubuntu=2022.04=20LTS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... And Docker Compose In Ubuntu 22.04 LTS.md | 391 ++++++++++++++++++ 1 file changed, 391 insertions(+) create mode 100644 sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md diff --git a/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md b/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md new file mode 100644 index 0000000000..28fc92ebf8 --- /dev/null +++ b/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md @@ -0,0 +1,391 @@ +[#]: subject: "How to Install Docker And Docker Compose In Ubuntu 22.04 LTS" +[#]: via: "https://ostechnix.com/install-docker-ubuntu/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Docker And Docker Compose In Ubuntu 22.04 LTS +====== +A Step By Step Guide To Install Docker Engine With Docker Compose In Ubuntu. + +In this guide, we will see what is **Docker**, how to **install Docker Engine in Ubuntu** Linux. In addition, we will also see how to **install Docker compose**, a tool to define and run multi-container Docker applications. + +This guide has been officially tested on Ubuntu 22.04 LTS. However, it should work on older versions such as 20.04 LTS, and 18.04 LTS. For better security and stability, I recommend you to use the most recent Ubuntu 22.04 LTS version. + +### What Is Docker? + +**Docker** is a fast, lightweight and OS level virtualization technology for developers and system administrators who wants to build an application with all of required dependencies, and ship it out as only one package. + +Unlike other Virtualization methods, such as VMWare, Xen and VirtualBox, there is no need of separate guest operating system for each virtual machine. + +All Docker containers efficiently share the host operating system's Kernel. Each container will run in an isolated userspace in the same operating system. + +Docker containers will also run on any Linux variant. Let us say you're working in Fedora, and I am using Ubuntu. We can still develop, share and distribute the Docker images with each other. + +You don't have to worry about the OS, software, customized settings, or anything. We can continue the development as  long as we have Docker installed in our host system. Simply put, Docker will work everywhere! + +You read two terms in the above paragraphs namely **Docker images** and **Docker containers**. You might wonder, what they are and what is the difference between them. + +In layman's terms, a Docker image is a file which describes how a Container should behave, whereas Docker container is the running (or stopped) state of the Docker image. + +Hope you got a basic idea about Docker. Refer official Docker user guide for more details. The link is attached at the end of this guide. + +### Docker Requirements + +To install and configure Docker, your system must meet the following minimum requirements. + +1. 64 bit Linux or Windows operating systems. +2. If you're on Linux, the Kernel version should be 3.10 or above. +3. An user account with `sudo` privileges. +4. VT (virtualization technology) support enabled on your system BIOS. [Read: [How To Find If A CPU Supports Virtualization Technology (VT)][1]] +5. Your system should be connected to Internet. + +In Linux, to verify the Kernel and architecture details, run the following command from the Terminal: + +``` +$ uname -a +``` + +**Sample Output:** + +``` +Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux +``` + +As you see in the above output, my Ubuntu system's kernel version is **5.15.35-3-pve**and my Ubuntu system's architecture is **64 bit** (**x86_64 x86_64 x86_64 GNU/Linux**). Check the bold letters in the above result. + +**Heads Up:** Here, I am using Ubuntu 22.04 container in **[Proxmox][2]**. This is why you see word "pve" in the kernel version in the above output. If you're using Ubuntu physical (or virtual) machine, you will see **5.15.35-3-generic** as kernel version. + +Well, the Kernel version is higher than the minimum requirement, and the arch is 64 bit. So, we can install and use Docker without any problems. + +Please note that it doesn't matter which Ubuntu OS you use. Also, It doesn't matter whether you use Ubuntu Desktop or Ubuntu Server edition or any other Ubuntu variants such as Lubuntu, Kubuntu, Xubuntu. + +Docker will work just fine as long as your system has the Kernel version 3.10+, and your system's arch is 64 bit. + +### Install Docker In Ubuntu 22.04 LTS + +First of all, update your Ubuntu system. + +#### 1. Update Ubuntu + +Open your Terminal, and run the following commands one by one: + +``` +$ sudo apt update +``` + +``` +$ sudo apt upgrade +``` + +``` +$ sudo apt full-upgrade +``` + +#### 2. Add Docker Repository + +First of all, install the necessary certificates and to allow apt package manager to use a repository over HTTPS using command: + +``` +$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release +``` + +Next, add Docker's official GPG key by running the following commands: + +``` +$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +``` + +Add the Docker official repository: + +``` +$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +Update Ubuntu sources list using command: + +``` +$ sudo apt update +``` + +#### 3. Install Docker + +Finally, run the following command to install latest Docker CE in Ubuntu 22.04 LTS server: + +``` +$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin +``` + +![Install Docker In Ubuntu][3] + +You can, of course, install a specific Docker version as well. To check the list of available Docker versions, run: + +``` +$ apt-cache madison docker-ce +``` + +**Sample output:** + +``` +docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +``` + +You can pick any available version from the above list and install it. For instance, to install version **5:20.10.16~3-0~ubuntu-jammy**, run: + +``` +$ sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io +``` + +Once it is installed, verify if the Docker service is running with command: + +``` +$ systemctl status docker +``` + +You'll see an output something like below. + +``` +* docker.service - Docker Application Container Engine + Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) + Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago +TriggeredBy: * docker.socket + Docs: https://docs.docker.com + Main PID: 2208 (dockerd) + Tasks: 8 + Memory: 29.6M + CPU: 126ms + CGroup: /system.slice/docker.service + `-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock + +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" > +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start." +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done." +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization" +Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine. +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock" +``` + +Great! Docker service is up and running! + +If it is not started already, run the following command to start Docker service. + +``` +$ sudo systemctl start docker +``` + +Enable Docker service to start automatically on every reboot: + +``` +$ sudo systemctl enable docker +``` + +The installed Docker version can be found using command: + +``` +$ sudo docker version +``` + +**Sample Output:** + +``` +Client: Docker Engine - Community + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c701 + Built: Mon Jun 6 23:02:46 2022 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b842 + Built: Mon Jun 6 23:00:51 2022 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: v1.1.2-0-ga916309 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +``` + +![Check Docker Version][4] + +#### 4. Testing Docker + +Let us go ahead, and test whether Docker is working or not. + +To do so, run: + +``` +$ sudo docker run hello-world +``` + +The above command will download a test Docker image, and execute a sample **hello_world** program inside the container. + +If you see an output something like below, congratulations! Docker is working fine in our Ubuntu system. + +``` +Unable to find image 'hello-world:latest' locally +latest: Pulling from library/hello-world +2db29710123e: Pull complete +Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651 +Status: Downloaded newer image for hello-world:latest + +Hello from Docker! +This message shows that your installation appears to be working correctly. + +To generate this message, Docker took the following steps: + 1. The Docker client contacted the Docker daemon. + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. + (amd64) + 3. The Docker daemon created a new container from that image which runs the + executable that produces the output you are currently reading. + 4. The Docker daemon streamed that output to the Docker client, which sent it + to your terminal. + +To try something more ambitious, you can run an Ubuntu container with: + $ docker run -it ubuntu bash + +Share images, automate workflows, and more with a free Docker ID: + https://hub.docker.com/ + +For more examples and ideas, visit: + https://docs.docker.com/get-started/ +``` + +![Run Hello World Docker Container][5] + +Great! Docker is ready to use. + +#### 5. Run Docker As Non-root User In Linux (Optional) + +By default, the Docker daemon binds to a Unix socket instead of a TCP port. Since that **Unix socket is owned by the root** user, the Docker daemon will only run as the root user. Hence, the normal users can't perform most Docker commands. + +If you want to run Docker as non-root user in Linux, refer the following guide: + +* [How To Run Docker As Non-root User In Linux][6] + +I personally do not use this and **do not recommend it** as well. If you don't expose your system to Internet, it is fine. However, do not run Docker as non-root user in production system. + +### Install Docker Compose In Ubuntu + +**Docker Compose** is a tool that can be used to define and run multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you can create and start all the services from your configuration. + +We can install Docker Compose using any one of the following methods. + +#### Method 1 - Install Docker Compose Using Binary + +Download the latest Docker Compose from [here][7]. + +As of writing this, the latest version was **2.6.1**. + +Run the following command to download latest stable Docker compose file: + +``` +$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +``` + +If a new version is available, just replace the number **v2.6.1** in the above command with the new version number. Please don't forget to preface **"v"** before the version number. + +Finally, apply executable permissions to the binary using command: + +``` +$ sudo chmod +x /usr/local/bin/docker-compose +``` + +To check installed docker composer version, run: + +``` +$ docker-compose version +Docker Compose version v2.6.1 +``` + +#### Method 2 - Install Docker Compose Using PiP + +Alternatively, we can install Docker Compose using **PIP**. Pip is a python package manager used to install applications written in Python programming language. + +Refer the following guide to install Pip on your system. + +* [How To Manage Python Packages Using Pip][8] + +Once pip installed, run the following command to install docker compose. The following command is same for all Linux distributions! + +``` +$ pip install docker-compose +``` + +After installing Docker Compose, you can check the version with command: + +``` +$ docker-compose --version +``` + +You will see an output something like below. + +``` +docker-compose version 2.6.1, build 8a1c60f6 +``` + +Congratulations! We have successfully installed Docker Community Edition and Docker Compose. + +I installed Docker, now what? Check the next article in this series to learn the Docker basics. + +* [Getting started with Docker][9] + +To install Docker in RPM based systems such as RHEL, Fedora, CentOS, AlmaLinux, Rocky Linux and openSUSE, check the following link. + +* [Install Docker in CentOS][10] + +### Conclusion + +In this guide, we discussed what is Docker and how to install Docker in Ubuntu 22.04 LTS Jammy Jellyfish. Then we learned how to test docker installation by running a hello-world docker image. Finally, we concluded the tutorial by installing Docker compose using two different ways. + +**Resource:** + +* [Docker website][11] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/install-docker-ubuntu/ + +作者:[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-find-if-a-cpu-supports-virtualization-technology-vt/ +[2]: https://ostechnix.com/install-proxmox-ve/ +[3]: https://ostechnix.com/wp-content/uploads/2022/06/Install-Docker-In-Ubuntu.png +[4]: https://ostechnix.com/wp-content/uploads/2022/06/Check-Docker-Version.png +[5]: https://ostechnix.com/wp-content/uploads/2022/06/Run-Hello-World-Docker-Container.png +[6]: https://ostechnix.com/how-to-run-docker-as-non-root-user-in-linux/ +[7]: https://github.com/docker/compose/releases +[8]: https://ostechnix.com/manage-python-packages-using-pip/ +[9]: https://ostechnix.com/getting-started-with-docker/ +[10]: https://ostechnix.com/install-docker-centos/ +[11]: https://www.docker.com/ From 8e889d9a4bd70bf81ee6edfc98412cb7351e239b Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 28 Jun 2022 08:25:50 +0800 Subject: [PATCH 0155/3123] translated --- ...t, an Open Source Minecraft Alternative.md | 132 ------------------ ...t, an Open Source Minecraft Alternative.md | 132 ++++++++++++++++++ 2 files changed, 132 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md create mode 100644 translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md diff --git a/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md b/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md deleted file mode 100644 index 42f475f6bf..0000000000 --- a/sources/tech/20220623 Minetest, an Open Source Minecraft Alternative.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "Minetest, an Open Source Minecraft Alternative" -[#]: via: "https://itsfoss.com/minetest/" -[#]: author: "John Paul https://itsfoss.com/author/john/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Minetest, an Open Source Minecraft Alternative -====== -Back in 2009, Minecraft was introduced to the world. Since then, it has become a cultural phenomenon. In that time period, several developers have released open-source games with similar ideas and mechanics. Today, we will look at one of the biggest ones: Minetest. - -### What is Minetest? - -![minetest start][1] - -[Minetest][2], put simply, is a voxel based sandbox game, very similar to Minecraft. Unlike Minecraft, Minetest is written in C++ and is designed to run natively on most systems. It also has a very large map area. With a map size of “62,000 × 62,000 × 62,000 blocks”, “you can mine 31,000 blocks down, or build 31,000 blocks up”. - -Interestingly, Minetest was originally released under a proprietary license but was later relicensed as GPL. It has since been relicensed to LGPL. - -Minetest has a couple of modes. You can either build and be creative, or you can try to survive the elements. You aren’t limited to these modes. There is a wealth of [extra content available][3] to Minetest in terms of mods, texture packs, and games built within Minetest. This is largely done using Minetest’s [modding API][4] and Lua. - -![minetest packages][5] - -For those who have played Minecraft, you will find a very similar experience in Minetest. You can dig for resources, build structures, and combine materials to make tools. The one thing that I have not noticed in Minetest is monsters. I don’t think there are any creatures in Minetest, but then again, I’ve on only played in creative mode. I haven’t played survival mode. - -Minetest is also used in [education][6]. For example, the people at CERN in Switzerland created a game with Minetest to [show how the Internet works][7] and how it was created. Minetest has also been [used to teach][8] programming, earth sciences, and calculus and trigonometry. - -![minetes map1][9] - -### How to Install Minetest? - -Minetest is available on almost every system. Here is a list of commands that you can use to install Minetest in some of the most popular Linux distros. - -#### Ubuntu or Debian - -If you have a distro based on Ubuntu or Debian, just enter this command in the terminal: - -``` -sudo apt install mintest -``` - -#### Arch or Manjaro - -For systems based on Arch (such as Manjaro), use: - -``` -sudo pacman -S minetest -``` - -#### Fedora - -You can install Mintest from the Fedora servers by entering: - -``` -sudo dnf install mintest -``` - -#### openSUSE - -openSUSE users can install Minetest using this command: - -``` -sudo zypper in mintest -``` - -#### FreeBSD - -FreeBSD users are in luck. They can install Mintest using this command: - -``` -pkg install minetest minetest_game -``` - -![minetest map2][10] - -#### Snap - -To install a Snap of Minetest, enter the following command in the terminal: - -``` -sudo snap install minetest -``` - -#### Flathub - -To install, enter`:` - -``` -flatpak install flathub net.minetest.Minetest -``` - -You can download a portable executable for Windows [here][11]. You can also install Minetest on Android, either by going to [Google Play][12] or [download the APK][13]. - -### Final Thoughts - -![minetest about][14] - -I’ve spent hours in Minetest building and exploring on my local system. It’s great fun. I haven’t gotten around to trying out any of the extra content because I’ve been more than happy with the relatively small portion of the game I’ve played. The only trouble that I’ve encountered was that it ran slow on Fedora, for some reason. I might have had something configured wrong. - -If you ever thought that Minecraft looked interesting, but didn’t want to spend the money, check out Minetest. You’ll be glad that you did. - -If you have played Minetest, tell us how your experience was in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/minetest/ - -作者:[John Paul][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/john/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-start-800x411.jpg -[2]: https://www.minetest.net/ -[3]: https://content.minetest.net/ -[4]: https://dev.minetest.net/Modding_Intro -[5]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-packages-800x411.jpg -[6]: https://www.minetest.net/education/ -[7]: https://forum.minetest.net/viewtopic.php?t=22871 -[8]: https://en.wikipedia.org/wiki/Minetest#Usage_in_education -[9]: https://itsfoss.com/wp-content/uploads/2022/03/minetes-map1-800x411.png -[10]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-map2-800x413.png -[11]: https://www.minetest.net/downloads/ -[12]: https://play.google.com/store/apps/details?id=net.minetest.minetest&utm_source=website&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1 -[13]: https://github.com/minetest/minetest/releases/download/5.5.0/app-armeabi-v7a-release.apk -[14]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-about-800x407.jpg diff --git a/translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md b/translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md new file mode 100644 index 0000000000..9fada181f4 --- /dev/null +++ b/translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md @@ -0,0 +1,132 @@ +[#]: subject: "Minetest, an Open Source Minecraft Alternative" +[#]: via: "https://itsfoss.com/minetest/" +[#]: author: "John Paul https://itsfoss.com/author/john/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Minetest,一个开源的 Minecraft 替代品 +====== +早在 2009 年,Minecraft 就被介绍给了世界。从那时起,它已经成为一种文化现象。在这段时间里,一些开发者发布了具有类似想法和机制的开源游戏。今天,我们将看看其中最大的一个:Minetest。 + +### 什么是 Minetest? + +![minetest start][1] + +[Minetest][2],简单地说,是一个基于体素的沙盒游戏,与 Minecraft 非常相似。与 Minecraft 不同的是,Minetest 是用 C++ 编写的,并被设计成可以在大多数系统上原生运行。它也有一个非常大的地图区域。地图大小为 “62,000 × 62,000 × 62,000 块”,“你可以向下开采 31,000 块,或向上建造 31,000 块”。 + +有趣的是,Minetest 最初是以专有许可证发布的,但后来被重新授权为 GPL。此后,它又被重新授权为 LGPL。 + +Minetest 有几种模式。你可以建造并发挥创意,或者你可以尝试在各种元素中生存。你并不局限于这些模式。Minetest 有大量的[可用的额外内容][3],包括 mods、纹理包和在 Minetest 中建立的游戏。这主要是通过 Minetest 的 [modding API][4] 和 Lua 完成的。 + +![minetest packages][5] + +对于那些玩过 Minecraft 的人来说,你会发现 Minetest 中的体验非常相似。你可以挖掘资源,建造结构,并结合材料来制作工具。我在 Minetest 中没有注意到的一件事是怪物。我认为 Minetest 中没有任何生物,但话说回来,我只在创意模式中玩过。我还没有玩过生存模式。 + +Minetest 也被用于[教育][6]。例如,瑞士 CERN 的人用 Minetest 创造了一个游戏,以[展示互联网是如何工作的][7]以及它是如何被创造出来的。Minetest 还被[用于教授][8]编程、地球科学以及微积分和三角学。 + +![minetes map1][9] + +### 如何安装 Minetest? + +Minetest 几乎在每个系统上都可以使用。下面是一个命令列表,你可以用它来在一些最流行的 Linux 发行版中安装 Minetest。 + +#### Ubuntu 或者 Debian + +如果你有一个基于 Ubuntu 或 Debian 的发行版,只要在终端输入这个命令: + +``` +sudo apt install mintest +``` + +#### Arch 或者 Manjaro + +对于基于 Arch 的系统(如 Manjaro),使用: + +``` +sudo pacman -S minetest +``` + +#### Fedora + +你可以从 Fedora 服务器中输入以下命令安装 Mintest: + +``` +sudo dnf install mintest +``` + +#### openSUSE + +openSUSE 用户可以用这个命令安装 Minetest: + +``` +sudo zypper in mintest +``` + +#### FreeBSD + +FreeBSD 用户很幸运。他们可以用这个命令安装 Mintest: + +``` +pkg install minetest minetest_game +``` + +![minetest map2][10] + +#### Snap + +要安装 Minetest 的 Snap 包,请在终端输入以下命令: + +``` +sudo snap install minetest +``` + +#### Flathub + +要安装,请输入: + +``` +flatpak install flathub net.minetest.Minetest +``` + +你可以在[这里][11]下载 Windows 的可移植执行文件。你也可以在 Android 上安装 Minetest,可以通过 [Google Play][12] 或[下载 APK][13]。 + +### 最后的想法 + +![minetest about][14] + +我已经在 Minetest 中花了几个小时在我的本地系统上进行构建和探索。它非常有趣。我还没来得及尝试任何额外的内容,因为我对我玩过的相对较少的游戏部分非常满意。我遇到的唯一麻烦是,由于某种原因,它在 Fedora 上运行缓慢。我可能有一些配置上的错误。 + +如果你曾经认为 Minecraft 看起来很有趣,但不想花钱,那就去看看 Minetest。你会很高兴你这么做。 + +如果你玩过 Minetest,在评论中告诉我们你的体验如何。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/minetest/ + +作者:[John Paul][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/john/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-start-800x411.jpg +[2]: https://www.minetest.net/ +[3]: https://content.minetest.net/ +[4]: https://dev.minetest.net/Modding_Intro +[5]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-packages-800x411.jpg +[6]: https://www.minetest.net/education/ +[7]: https://forum.minetest.net/viewtopic.php?t=22871 +[8]: https://en.wikipedia.org/wiki/Minetest#Usage_in_education +[9]: https://itsfoss.com/wp-content/uploads/2022/03/minetes-map1-800x411.png +[10]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-map2-800x413.png +[11]: https://www.minetest.net/downloads/ +[12]: https://play.google.com/store/apps/details?id=net.minetest.minetest&utm_source=website&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1 +[13]: https://github.com/minetest/minetest/releases/download/5.5.0/app-armeabi-v7a-release.apk +[14]: https://itsfoss.com/wp-content/uploads/2022/03/minetest-about-800x407.jpg From 8ce3441de8d07b07d26b091d013b3f2dcd8871c1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 28 Jun 2022 08:27:01 +0800 Subject: [PATCH 0156/3123] translating --- .../tech/20220627 Make a temporary file on Linux with Bash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220627 Make a temporary file on Linux with Bash.md b/sources/tech/20220627 Make a temporary file on Linux with Bash.md index 362c10a17a..95311b4a8c 100644 --- a/sources/tech/20220627 Make a temporary file on Linux with Bash.md +++ b/sources/tech/20220627 Make a temporary file on Linux with Bash.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/make-temporary-file-bash" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b40ecdee155dfa8e18a001cd93618fc8d8beec05 Mon Sep 17 00:00:00 2001 From: SamMa Date: Tue, 28 Jun 2022 08:53:05 +0800 Subject: [PATCH 0157/3123] Update 20220214 A guide to Kubernetes architecture.md --- .../tech/20220214 A guide to Kubernetes architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20220214 A guide to Kubernetes architecture.md b/translated/tech/20220214 A guide to Kubernetes architecture.md index 91b01c419e..7f274f0631 100644 --- a/translated/tech/20220214 A guide to Kubernetes architecture.md +++ b/translated/tech/20220214 A guide to Kubernetes architecture.md @@ -3,7 +3,7 @@ [#]: author: "Nived Velayudhan https://opensource.com/users/nivedv" [#]: collector: "lujun9972" [#]: translator: "MjSeven" -[#]: reviewer: " " +[#]: reviewer: "turbokernel" [#]: publisher: " " [#]: url: " " @@ -170,7 +170,7 @@ via: https://opensource.com/article/22/2/kubernetes-architecture 作者:[Nived Velayudhan][a] 选题:[lujun9972][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[turbokernel](https://github.com/turbokernel) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 3bd8e06dce385adaf0d80ee0d021b21c783c0a0c Mon Sep 17 00:00:00 2001 From: SamMa Date: Tue, 28 Jun 2022 09:50:16 +0800 Subject: [PATCH 0158/3123] Update 20220214 A guide to Kubernetes architecture.md --- .../20220214 A guide to Kubernetes architecture.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translated/tech/20220214 A guide to Kubernetes architecture.md b/translated/tech/20220214 A guide to Kubernetes architecture.md index 7f274f0631..3a0510a437 100644 --- a/translated/tech/20220214 A guide to Kubernetes architecture.md +++ b/translated/tech/20220214 A guide to Kubernetes architecture.md @@ -9,10 +9,10 @@ Kubernetes 架构指南 ====== -学习 Kubernetes 架构的不同组件是如何组合在一起的,这样你就可以更好地诊断问题、维护健康的集群和优化你的工作流。 +学习 Kubernetes 架构中不同组件是如何组合在一起的,这样您就可以更好地排查问题、维护集群健康以及优化工作流。 ![部件、模块、软件容器][1] -使用 Kubernetes 来编排容器,这是一个简单的描述,但理解它的实际含义和你如何实现它完全是另外一回事。如果你正在运行或管理 Kubernetes 集群,那么你就会知道 Kubernetes 由一台称为 _控制平面_ 的计算机和许多其他 _工作节点_ 计算机组成。每一个都有一个复杂但健壮的堆栈,这使编排成为可能,熟悉每个组件有助于理解它是如何工作的。 +使用 Kubernetes 来编排容器,这种描述说起来简单,但理解它的实际含义以及如何实现它完全是另外一回事。如果你正在运行或管理 Kubernetes 集群,那么你就会知道 Kubernetes 由一台称为 _控制平面_ 的机器和许多其他 _工作节点_ 机器组成。每种类型都有一个复杂但稳定的堆栈,这使编排成为可能,熟悉每个组件有助于理解它是如何工作的。 ![Kubernetes 架构图][2] @@ -20,13 +20,13 @@ Kubernetes 架构指南 ### 控制平面组件 -Kubernetes 安装在一个称为控制平面的机器上,它会运行 Kubernetes 守护进程,并在启动容器和吊舱时与之通信。下面介绍控制平面的各个组件。 +Kubernetes 安装在一个称为控制平面的机器上,它会运行 Kubernetes 守护进程,并在启动容器和容器组时与之通信。下面介绍控制平面的各个组件。 #### Etcd -Etcd 是一种快速、分布式且一致的键值存储器,用作持久存储 Kubernetes 对象数据,如吊舱、Replication Controller、密钥和服务的后台存储。Etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一直接与 etcd 对话的组件是 Kubernetes API 服务器。所有的其他组件都通过 API 服务器间接的从 etcd 读写数据。 +Etcd 是一种快速、分布式一致性键值存储器,用作 Kubernetes 对象数据的持久存储,如 容器组 、副本控制器、密钥和服务。Etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一与 etcd 直连的组件是 Kubernetes API 服务器。其他所有组件都通过 API 服务器间接的从 etcd 读写数据。 -Etcd 还实现了一个监控功能,它提供了一个基于事件的接口,用于异步监控密钥的更改。一旦你更改了一个密钥,它的监控者就会收到通知。API 服务器组件严重依赖于此来获得通知,并将 etcd 移动到所需状态。 +Etcd 还实现了一个监控功能,它提供了一个基于事件的接口,用于异步监控密钥的更改。一旦你更改了一个密钥,它的监控者就会收到通知。API 服务器组件严重依赖于此来获得通知,并将 etcd 变更至期望状态。 _为什么 etcd 实例的数量应该是奇数?_ From 63c055ead9e65ff7d1074d07db22bc7938b0c7a3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 10:00:47 +0800 Subject: [PATCH 0159/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20Open=20Programmable=20Infrastructure-=201?= =?UTF-8?q?+1=3D3.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Open Programmable Infrastructure- 1+1=3.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/tech/20220627 Open Programmable Infrastructure- 1+1=3.md diff --git a/sources/tech/20220627 Open Programmable Infrastructure- 1+1=3.md b/sources/tech/20220627 Open Programmable Infrastructure- 1+1=3.md new file mode 100644 index 0000000000..2cafe1b63c --- /dev/null +++ b/sources/tech/20220627 Open Programmable Infrastructure- 1+1=3.md @@ -0,0 +1,75 @@ +[#]: subject: "Open Programmable Infrastructure: 1+1=3" +[#]: via: "https://www.linux.com/news/open-programmable-infrastructure-113/" +[#]: author: "Dan Whiting https://www.linuxfoundation.org/blog/open-programmable-infrastructure-113/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open Programmable Infrastructure: 1+1=3 +====== +At last week’’s Open Source Summit North America, [Robin Ginn][1], Executive Director of the [OpenJS Foundation][2], relayed a principle her mentor taught: “1+1=3”. No, this isn’t ‘new math,’ it is demonstrating the principle that, working together, we are more impactful than working apart. Or, as my wife and I say all of the time, teamwork makes the dream work. + +This principle is really at the core of open source technology. Turns out it is also how I look at the Open Programmable Infrastructure project. + +Stepping back a bit, as “the new guy” around here, I am still constantly running across projects where I want to dig in more and understand what it does, how it does it, and why it is important. I had that very thought last week as we launched another new project, the [Open Programmable Infrastructure Project][3]. As I was [reading up on it][4], they talked a lot about data processing units (DPUs) and infrastructure processing units (IPUs), and I thought, I need to know what these are and why they matter. In the timeless words of The Bobs, “What exactly is it you do here?” + +### What are DPUs/IPUs?  + +First – and this is important – they are basically the same thing, they just have different names. Here is my oversimplified explanation of what they do. + +In most personal computers, you have a separate graphic processing unit(s) that helps the central processing unit(s) (CPU) handle the tasks related to processing and displaying the graphics. They offload that work from the CPU, allowing it to spend more time on the tasks it does best. So, working together, they can achieve more than each can separately. + +Servers powering the cloud also have CPUs, but they have other tasks that can consume tremendous computing  power, say data encryption or network packet management. Offloading these tasks to separate processors enhances the performance of the whole system, as each processor focuses on what it does best. + +In order words, 1+1=3. + +### DPUs/IPUs are highly customizable + +While separate processing units have been around for some time, like your PC’s GPU, their functionally was primarily dedicated to a particular task. Instead, DPUs/IPUs combine multiple offload capabilities that are highly  customizable through software. That means a hardware manufacturer can ship these units out and each organization uses software to configure the units according to their specific needs. And, they can do this on the fly. + +Core to the cloud and its continued advancement and growth is the ability to quickly and easily create and dispose of the “hardware” you need. It wasn’t too long ago that if you wanted a server, you spent thousands of dollars on one and built all kinds of infrastructure around it and hoped it was what you needed for the time. Now, pretty much anyone can quickly setup a virtual server in a matter of minutes for virtually no initial cost. + +DPUs/IPUs bring this same type of flexibility to your own datacenter because they can be configured to be “specialized” with software rather than having to literally design and build a different server every time you need a different capability. + +### What is Open Programmable Infrastructure (OPI)? + +OPI is focused on utilizing  open software and standards, as well as frameworks and toolkits, to allow for the rapid adoption and use of DPUs/IPUs. The OPI Project is both hardware and software companies coming together to establish and nurture an ecosystem to support these solutions. It “seeks to help define the architecture and frameworks for the DPU and IPU software stacks that can be applied to any vendor’s hardware offerings. The OPI Project also aims to foster a rich open source application ecosystem, leveraging existing open source projects, such as DPDK, SPDK, OvS, P4, etc., as appropriate.” + +In other words, competitors are coming together to agree on a common, open ecosystem they can build together and innovate, separately, on top of. The are living out 1+1=3. + +I, for one, can’t wait to see the innovation. + +A special thanks to [Yan][5] [Fisher][6] of Red Hat for helping me understand open programmable infrastructure concepts. He and his colleague, Kris Murphy, have a more [technical blog post on Red Hat’s blog][7]. Check it out. + +For more information on the OPI Project, visit their [website][8] and start contributing at [https://github.com/opiproject/opi][9]. + +Click here to add your own text + +The post [Open Programmable Infrastructure: 1+1=3][10] appeared first on [Linux Foundation][11]. + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/open-programmable-infrastructure-113/ + +作者:[Dan Whiting][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.linuxfoundation.org/blog/open-programmable-infrastructure-113/ +[b]: https://github.com/lkxed +[1]: https://github.com/opiproject/opi +[2]: https://openjsf.org/ +[3]: https://opiproject.org/ +[4]: https://www.linuxfoundation.org/press-release/linux-foundation-announces-open-programmable-infrastructure-project/ +[5]: https://www.redhat.com/en/authors/yan-fisher +[6]: https://www.redhat.com/en/authors/yan-fisher +[7]: https://www.redhat.com/en/blog/why-red-hat-joining-open-programmable-infrastructure-project +[8]: https://opiproject.org/ +[9]: https://github.com/opiproject/opi +[10]: https://www.linuxfoundation.org/blog/open-programmable-infrastructure-113/ +[11]: https://www.linuxfoundation.org/ From 0dc3deba2c442e26faf637f6e1fe207216acd8ce Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 10:01:44 +0800 Subject: [PATCH 0160/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20Kuro-=20An=20Unofficial=20Microsoft=20To-?= =?UTF-8?q?Do=20Desktop=20Client=20for=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...icrosoft To-Do Desktop Client for Linux.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md diff --git a/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md b/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md new file mode 100644 index 0000000000..6909f25ddd --- /dev/null +++ b/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md @@ -0,0 +1,97 @@ +[#]: subject: "Kuro: An Unofficial Microsoft To-Do Desktop Client for Linux" +[#]: via: "https://itsfoss.com/kuro-to-do-app/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kuro: An Unofficial Microsoft To-Do Desktop Client for Linux +====== +Microsoft says that they love Linux and open-source, but we still do not have native support for a lot of its products on Linux. + +While they could be trying to add more support, like the ability to [install Microsoft Edge on Linux][1]– but it’s not excellent for a multi-trillion dollar company. + +Similarly, Microsoft’s To-Do service is also a popular one, replacing Wunderlist as it was shut down in 2020. + +In case you’re curious, we have a lot of [to-do list applications available for Linux][2]. So, if you want to switch away from Microsoft To-Do, you’ve got options. + +Microsoft To-Do is a cloud-based task management application that lets you organize your tasks from your phone, desktop, and the web. It is available to download for Windows, Mac, and Android. + +So, if you would rather not use the web browser but a separate application, what can you do on Linux? + +Kuro to the rescue. + +### Kuro: Unofficial Open-Source Microsoft To-Do App + +![kuro todo][3] + +Kuro is an unofficial open-source application that provides you a desktop experience for Microsoft To-Do on Linux with some extra features. + +It is a fork of Ao, which was an open-source project that stepped up to become a solution for it. Unfortunately, it is no longer being actively maintained. So, I came across a new fork for it that seems to get the job done. + +![kuro todo options][4] + +Kuro provides some extra features that let you toggle themes, enable global shortcuts, and more from within the application. + +Note that this application is fairly new, but a stable release is available to try. Furthermore, the developer plans to add more themes and features in the near future. + +### Features of Kuro + +![kuro todo 1][5] + +If you tend to use Microsoft services (like Outlook), its To-Do app should be a perfect option to organize your tasks. You can even flag emails to create tasks out of it. + +With Kuro desktop client, you get a few quick features to configure that include: + +* Ability to launch the program on start. +* Get a system tray icon to quickly create a task, search, or check the available list for the day. +* Enable Global shortcut keys. +* Toggle available themes (Sepia, Dracula, Black, Dark). +* Toggle Auto Night mode, if you do not want to constantly change themes. +* Hide the tray icon, if you do not need it. +* Customize the font size as required. + +![kuro todo settings][6] + +In addition to some features, you can also access certain settings to enable/disable email notifications, confirm before deleting, and more such controls for the to-do app experience. + +Overall, the experience wasn’t terrible, but I noticed some weird graphical glitches in the user interface for a few minutes. I am not sure if it is a known issue. + +### Install Kuro in Linux + +You can find the .deb package for Ubuntu-based distributions from its [GitHub releases section][7]. + +In either case, you can also get it from the [Snap store][8] for any Linux distribution of your choice. The package is also available in [AUR][9] for Arch Linux distributions. + +The developer also mentions that a Flatpak package is on its way. So, you can keep an eye on its [GitHub page][10] for more information on that. + +[Kuro][11] + +Have you tried this already? Do you know of a better Microsoft to-do client for Linux? Let me know in the comments below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/kuro-to-do-app/ + +作者:[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/microsoft-edge-linux/ +[2]: https://itsfoss.com/to-do-list-apps-linux/ +[3]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-800x507.png +[4]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-options-800x444.png +[5]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-settings.png +[7]: https://github.com/davidsmorais/kuro/releases +[8]: https://snapcraft.io/kuro-desktop +[9]: https://itsfoss.com/aur-arch-linux/ +[10]: https://github.com/davidsmorais/kuro +[11]: https://github.com/davidsmorais/kuro From 9a30a89d9aca04d58c45cb960a374dfb1a5b7cad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 28 Jun 2022 13:13:05 +0800 Subject: [PATCH 0161/3123] RP @lkxed https://linux.cn/article-14768-1.html --- ... Proves Chrome Extensions Can Track You.md | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) rename {translated/news => published}/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md (53%) diff --git a/translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md b/published/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md similarity index 53% rename from translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md rename to published/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md index 4baa1cdda1..ae5ea206e5 100644 --- a/translated/news/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md +++ b/published/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md @@ -3,35 +3,36 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14768-1.html" -这个开源项目证明了 Chrome 扩展可以跟踪你 +你安装的 Chrome 扩展的组合可以跟踪你 ====== -这会成为放弃基于 Chromium 的浏览器并开始使用 Firefox 的一个理由吗?也许吧,决定权在你。 + +> 这会成为放弃基于 Chromium 的浏览器并开始使用 Firefox 的一个理由吗?也许吧,决定权在你。 ![Chrome 扩展追踪器][1] -即使你有了所有的隐私扩展和高级的保护功能,别人仍然有方法可以识别你或跟踪你。 +即使你有了所有的隐私扩展和各种保护功能,别人仍然有方法可以识别你或跟踪你。 -请注意,并非所有浏览器都是如此,本文中,我们只关注基于 Chromium 的浏览器,并将 Google Chrome 作为“主要嫌疑人”。 +请注意,并非所有浏览器都是如此,本文中,我们主要关注基于 Chromium 的浏览器,并将谷歌 Chrome 作为“主要嫌疑人”。 -以前,尽管别人已经能够在你的检测 Chromium 浏览器上,检测到你的已安装的扩展程序,但许多扩展程序都实施了某些保护措施来防止这种检测。 +以前,在 Chromium 浏览器上,尽管别人已经能够检测到你已安装的扩展程序,但许多扩展程序都实施了某些保护措施来防止这种检测。 然而,一位名为 “**z0ccc**” 的安全研究人员发现了一种检测已安装 Chrome 浏览器扩展程序的新方法,该方法可进一步用于**通过“浏览器指纹识别”来跟踪你**。 -**如果你还不知道的话**:浏览器指纹识别Browser Fingerprinting是指收集有关你的设备/浏览器的各种信息,以创建唯一的指纹 ID(哈希),从而在互联网上识别你的一种跟踪方法。“各种信息”包括:浏览器名称、版本、操作系统、已安装的扩展程序、屏幕分辨率和类似的技术数据。 +如果你还不知道的话:浏览器指纹识别Browser Fingerprinting是指收集有关你的设备/浏览器的各种信息,以创建唯一的指纹 ID(哈希),从而在互联网上识别你的一种跟踪方法。“各种信息”包括:浏览器名称、版本、操作系统、已安装的扩展程序、屏幕分辨率和类似的技术数据。 这听起来像是一种无害的数据收集技术,但可以使用这种跟踪方法在线跟踪你。 -### 检测 Google Chrome 扩展 +### 检测谷歌 Chrome 扩展 -研究人员分享了一个开源项目 “**Extension Fingerprints**”,你可以使用它来测试,你安装的 Chrome 扩展,是否正在被人检测。 +研究人员发布了一个开源项目 “**Extension Fingerprints**”,你可以使用它来测试你安装的 Chrome 扩展是否能被检测到。 -新技术涉及一种“时差”方法,该工具比较了扩展获取资源的时间。与浏览器上未安装的其他扩展相比,受保护的扩展需要更多时间来获取资源。因此,这有助于从 1000 多个扩展列表中识别出一些扩展。 +新技术涉及一种“时间差”方法,该工具比较了扩展程序获取资源的时间。与浏览器上未安装的其他扩展相比,受保护的扩展需要更多时间来获取资源。因此,这有助于从 1000 多个扩展列表中识别出一些扩展。 -关键是:即使有了这些新的进步和技术来防止跟踪,Chrome 网上应用店的扩展也可以被检测到。 +关键是:即使有了各种新的进步和技术来防止跟踪,Chrome 网上应用店的扩展也可以被检测到。 ![][2] @@ -41,11 +42,11 @@ 你可以在它的 [GitHub 页面][3] 上查看所有技术细节。如果你想自己测试它,请前往它的 [扩展指纹识别网站][4] 自行检查。 -### 大救星 Firefox? +### 拯救 Firefox? -嗯,似乎是的,毕竟我出于各种原因,[不断切回到 Firefox][5]。 +嗯,似乎是的,毕竟我出于各种原因,[不断回到 Firefox][5]。 -这个新发现的(跟踪)方法应该适用于所有基于 Chromium 的浏览器。我在 Brave 和 Google Chrome 上都测试了这个方法。研究人员还提到,该工具不适用于在 Microsoft Edge 中使用的,微软应用商店中的扩展。但是,相同的跟踪方法仍然有效。 +这个新发现的(跟踪)方法应该适用于所有基于 Chromium 的浏览器。我在 Brave 和谷歌 Chrome 上都测试了这个方法。研究人员还提到,该工具不能在使用微软应用商店中的扩展的微软 Edge 上工作。但是,相同的跟踪方法仍然有效。 正如研究人员指出,Mozilla Firefox 可以避免这种情况,因为每个浏览器实例的扩展 ID 都是唯一的。 @@ -56,7 +57,7 @@ via: https://news.itsfoss.com/chrome-extension-tracking/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8b3db2ee8040eca483cb1acbb25dbc04a3b2a054 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 28 Jun 2022 13:35:31 +0800 Subject: [PATCH 0162/3123] RP @lkxed https://linux.cn/article-14769-1.html --- ...with Python requests and Beautiful Soup.md | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) rename {translated/tech => published}/20220616 Analyze web pages with Python requests and Beautiful Soup.md (85%) diff --git a/translated/tech/20220616 Analyze web pages with Python requests and Beautiful Soup.md b/published/20220616 Analyze web pages with Python requests and Beautiful Soup.md similarity index 85% rename from translated/tech/20220616 Analyze web pages with Python requests and Beautiful Soup.md rename to published/20220616 Analyze web pages with Python requests and Beautiful Soup.md index deb43f6bc6..1716386150 100644 --- a/translated/tech/20220616 Analyze web pages with Python requests and Beautiful Soup.md +++ b/published/20220616 Analyze web pages with Python requests and Beautiful Soup.md @@ -3,17 +3,16 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14769-1.html" 使用 Python 的 requests 和 Beautiful Soup 来分析网页 ====== -学习这个 Python 教程,轻松提取网页的有关信息。 -![带问号的 Python 语言图标][1] +![](https://img.linux.net.cn/data/attachment/album/202206/28/132859owwf9az49k2oje2o.jpg) -图源:Opensource.com +> 学习这个 Python 教程,轻松提取网页的有关信息。 浏览网页可能占了你一天中的大部分时间。然而,你总是需要手动浏览,这很讨厌,不是吗?你必须打开浏览器,然后访问一个网站,单击按钮,移动鼠标……相当费时费力。如果能够通过代码与互联网交互,岂不是更好吗? @@ -69,7 +68,7 @@ print(SOUP.p) ### 循环 -使用 Beautiful Soup 的 `find_all` 函数,你可以创建一个 for 循环,从而遍历 `SOUP` 变量中包含的整个网页。除了 `

` 标签之外,你可能也会对其他标签感兴趣,因此最好将其构建为自定义函数,由 Python 中的 `def` 关键字(意思是 “定义”define)指定。 +使用 Beautiful Soup 的 `find_all` 函数,你可以创建一个 `for` 循环,从而遍历 `SOUP` 变量中包含的整个网页。除了 `

` 标签之外,你可能也会对其他标签感兴趣,因此最好将其构建为自定义函数,由 Python 中的 `def` 关键字(意思是 “定义”define)指定。 ``` def loopit(): @@ -77,7 +76,7 @@ def loopit():         print(TAG) ``` -你可以随意更改临时变量 `TAG` 的名字,例如 `ITEM` 或 `i` 或任何你喜欢的。每次循环运行时,`TAG` 中都会包含`find_all` 函数的搜索结果。在此代码中,它搜索的是 `

` 标签。 +你可以随意更改临时变量 `TAG` 的名字,例如 `ITEM` 或 `i` 或任何你喜欢的。每次循环运行时,`TAG` 中都会包含 `find_all` 函数的搜索结果。在此代码中,它搜索的是 `

` 标签。 函数不会自动执行,除非你显式地调用它。你可以在代码的末尾调用这个函数: @@ -92,7 +91,7 @@ if __name__ == '__main__': ### 只获取内容 -你可以通过指定只需要 “字符串”string(它是 “单词”words 的编程术语)来排除打印标签。 +你可以通过指定只需要 “字符串string”(它是 “单词words” 的编程术语)来排除打印标签。 ``` def loopit(): @@ -125,8 +124,8 @@ def loopit(): 你可以使用 Beautiful Soup 和 Python 提取更多信息。以下是有关如何改进你的应用程序的一些想法: * [接受输入][3],这样你就可以在启动应用程序时,指定要下载和分析的 URL。 -* 统计页面上图片( 标签)的数量。 -* 统计另一个标签中的图片( 标签)的数量(例如,仅出现在 `

` div 中的图片,或仅出现在 `

` 标签之后的图片)。 +* 统计页面上图片(`` 标签)的数量。 +* 统计另一个标签中的图片(`` 标签)的数量(例如,仅出现在 `
` div 中的图片,或仅出现在 `

` 标签之后的图片)。 -------------------------------------------------------------------------------- @@ -135,7 +134,7 @@ via: https://opensource.com/article/22/6/analyze-web-pages-python-requests-beaut 作者:[Seth Kenlon][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/) 荣誉推出 From 8467328fcd1101e89f80cd2b3e7a166394f0b25a Mon Sep 17 00:00:00 2001 From: SamMa Date: Tue, 28 Jun 2022 15:57:50 +0800 Subject: [PATCH 0163/3123] Update 20220214 A guide to Kubernetes architecture.md --- ...0214 A guide to Kubernetes architecture.md | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/translated/tech/20220214 A guide to Kubernetes architecture.md b/translated/tech/20220214 A guide to Kubernetes architecture.md index 3a0510a437..821ede1f81 100644 --- a/translated/tech/20220214 A guide to Kubernetes architecture.md +++ b/translated/tech/20220214 A guide to Kubernetes architecture.md @@ -30,16 +30,16 @@ Etcd 还实现了一个监控功能,它提供了一个基于事件的接口, _为什么 etcd 实例的数量应该是奇数?_ -你通常会在高可用(HA)环境中运行三个、五个或七个 etcd 实例,但这是为什么呢?因为 etcd 是分布式数据存储,可以水平扩展它,但你需要确保每个实例中的数据是一致的。为此,系统需要当前状态是什么达成共识,Etcd 为此使用 [RAFT 共识算法][4]。 +你通常会运行三个、五个或七个 etcd 实例实现高可用(HA)环境,但这是为什么呢?因为 etcd 是分布式数据存储,可以水平扩展它,但你需要确保每个实例中的数据是一致的。因此,需要为系统当前状态达成共识,Etcd 为此使用 [RAFT 共识算法][4]。 -RAFT 算法需要多数(或仲裁)集群才能进入下一个状态。如果你只有两个 etcd 实例并且他们其中一个失败的话,那么 etcd 集群无法转换到新的状态,因为不存在多数这个概念。如果你有三个 etcd 实例,一个实例可能会失败,但仍有 2 个实例可用于达到仲裁。 +RAFT 算法需要经过选举(或仲裁)集群才能进入下一个状态。如果你只有两个 etcd 实例并且他们其中一个失败的话,那么 etcd 集群无法转换到新的状态,因为不存在过半这个概念。如果你有三个 etcd 实例,一个实例可能会失败,但仍有 2 个实例可用于进行选举。 #### API 服务器 API 服务器是 Kubernetes 中唯一直接与 etcd 交互的组件。Kubernetes 中的其他所有组件都必须通过 API 服务器来处理集群状态,包括客户端(kubectl)。API 服务器具有以下功能: * 提供在 etcd 中存储对象的一致方式。 - * 对对象执行验证,方便客户端无法存储配置不正确的对象(如果它们直接写入 etcd 数据存储,可能会发生这种情况)。 + * 执行验证对象,防止客户端存储配置不正确的对象(如果它们直接写入 etcd 数据存储,可能会发生这种情况)。 * 提供 RESTful API 来创建、更新、修改或删除资源。 * 提供[乐观并发锁][5],在发生更新时,其他客户端永远不会有机会重写对象。 * 对客户端发送的请求进行身份验证和授权。它使用插件提取客户端的用户名、ID、所属组,并确定通过身份验证的用户是否可以对请求的资源执行请求的操作。 @@ -48,57 +48,57 @@ API 服务器是 Kubernetes 中唯一直接与 etcd 交互的组件。Kubernetes #### 控制器管理器 -在 Kubernetes 中,控制器是监控集群状态的控制循环,然后根据需要进行或请求更改。每个控制器都尝试将当前集群状态移动到所需状态。控制器至少跟踪一种 Kubernetes 资源类型,这些对象都有一个字段来表示所需的状态。 +在 Kubernetes 中,控制器持续监控集群状态,然后根据需要进行或请求更改。每个控制器都尝试将当前集群状态变更至期望状态。控制器至少跟踪一种 Kubernetes 资源类型,这些对象均有一个字段来表示期望的状态。 控制器示例: - * Replication Manager(ReplicationController 资源的控制器) - * 复本控制器、DaemonSet 和 Job 控制器 - * 部署控制器 - * StatefulSet 控制器 + * 副本管理器(管理副本管理器 资源的控制器) + * 副本控制器、守护进程集 和 任务控制器 + * 无状态负载控制器 + * 有状态负载控制器 * 节点控制器 * 服务控制器 - * 端点控制器 + * 接入点控制器 * 命名空间控制器 * 持久卷控制器 -控制器使用监控机制来获得更改通知。它们监视 API 服务器对资源的更改,对每次更改执行操作,无论是新建对象还是更新或删除现有对象。大多数时候,这些操作包括创建其他资源或更新监控的资源本身。不过,由于使用监控并不能保证控制器不会错过任何事件,它们还会定期执行一系列操作,确保没有错过任何事件。 +控制器通过监控机制来获得变更通知。它们监视 API 服务器对资源的变更,对每次更改执行操作,无论是新建对象还是更新或删除现有对象。大多数时候,这些操作包括创建其他资源或更新监控的资源本身。不过,由于使用监控并不能保证控制器不会错过任何事件,它们还会定期执行一系列操作,确保没有错过任何事件。 控制器管理器还执行生命周期功能。例如命名空间创建和生命周期、事件垃圾收集、终止吊舱垃圾收集、[级联删除垃圾收集][7]和节点垃圾收集。有关更多信息,参考[云控制器管理器][8]。 #### 调度器 -调度器是一个将吊舱分配给节点的控制平面进程。它会监视新创建没有分配节点的吊舱。调度器会给每个发现的吊舱分配运行它的最佳节点。 +调度器是一个将容器组分配给节点的控制平面进程。它会监视新创建没有分配节点的容器组。调度器会给每个发现的容器组分配运行它的最佳节点。 -满足吊舱调度要求的节点称为可行节点。如果没有合适的节点,那么吊舱会一直处于未调度状态,直到调度器可以放置它。一旦找到可行节点,它就会运行一组函数来对节点进行评分,并选择得分最高的节点,然后它会告诉 API 服务器所选节点的信息。这个过程称为绑定。 +满足容器组调度要求的节点称为可调度节点。如果没有合适的节点,那么容器组会一直处于未调度状态,直到调度器可以放置它。一旦找到可调度节点,它就会运行一组函数来对节点进行评分,并选择得分最高的节点,然后它会告诉 API 服务器所选节点的信息。这个过程称为绑定。 节点的选择分为两步: - 1. 过滤所有节点的列表,获得可以调度吊舱的可接受节点列表(例如,PodFitsResources 过滤器检查候选节点是否有足够的可用资源来满足吊舱的特定资源请求)。 + 1. 过滤所有节点的列表,获得可以调度容器组的节点列表(例如,PodFitsResources 过滤器检查候选节点是否有足够的可用资源来满足容器组的特定资源请求)。 - 2. 对第一步得到的节点列表进行评分和排序,选择最佳节点。如果得分最高的有多个节点,循环过程可确保吊舱会均匀地部署在所有节点上。 + 2. 对第一步得到的节点列表进行评分和排序,选择最佳节点。如果得分最高的有多个节点,循环过程可确保容器组会均匀地部署在所有节点上。 调度决策要考虑的因素包括: - * 吊舱是否请求硬件/软件资源?节点是否报告内存或磁盘压力情况? + * 容器组是否请求硬件/软件资源?节点是否报告内存或磁盘压力情况? - * 节点是否有与吊舱规范中的节点选择器匹配的标签? + * 节点是否有与容器组规范中的节点选择器匹配的标签? - * 如果吊舱请求绑定到特定地主机端口,该端口是否可用? + * 如果容器组请求绑定到特定地主机端口,该端口是否可用? - * 吊舱是否容忍节点的污点? + * 容器组是否容忍节点的污点? - * 吊舱是否指定节点亲和性或反亲和性规则? + * 容器组是否指定节点亲和性或反亲和性规则? -调度器不会指示所选节点运行吊舱。调度器所做的就是通过 API 服务器更新吊舱定义。然后 API 服务器通过监控机制通知 kubelet 吊舱已被调度,然后目标节点上的 kubelet 服务看到吊舱被调度到它的节点,它创建并运行吊舱的容器。 +调度器不会指示所选节点运行容器组。调度器所做的就是通过 API 服务器更新容器组定义。然后 API 服务器通过监控机制通知 kubelet 容器组已被调度,然后目标节点上的 kubelet 服务看到容器组被调度到它的节点,它创建并运行容器组。 **[ 下一篇: [Kubernetes 如何创建和运行容器: 图解指南][9] ]** ### 工作节点组件 -工作节点运行 kubelet 代理,这允许控制平面招募它们来处理作业。与控制平面类似,工作节点使用几个不同的组件来实现这一点。 以下部分描述了工作节点组件。 +工作节点运行 kubelet 代理,这允许控制平面接纳它们来处理负载。与控制平面类似,工作节点使用几个不同的组件来实现这一点。 以下部分描述了工作节点组件。 #### Kubelet @@ -108,19 +108,19 @@ kubelet服务的主要功能有: * 通过在 API 服务器中创建节点资源来注册它正在运行的节点。 - * 持续监控 API 服务器上调度到节点的吊舱。 + * 持续监控 API 服务器上调度到节点的容器组 。 - * 使用配置的容器运行时启动吊舱的容器。 + * 使用配置的容器运行时启动容器组的容器。 * 持续监控正在运行的容器,并将其状态、事件和资源消耗报告给 API 服务器。 - * 运行容器存活探测,在探测失败时重启容器,当 API 服务器中删除吊舱时终止(通知服务器吊舱终止的消息)。 + * 运行容器存活探测,在探测失败时重启容器,当 API 服务器中删除容器组时终止(通知服务器容器组终止的消息)。 #### 服务代理 -服务代理(kube-proxy)在每个节点上运行,确保一个吊舱可以与另一个吊舱对话,一个节点可以与另一个节点对话,一个容器可以与另一个容器对话。它负责监视 API 服务器对服务和吊舱定义的更改,以保持整个网络配置是最新的。当一项服务得到多个吊舱的支持时,代理会在这些吊舱之间执行负载平衡。 +服务代理(kube-proxy)在每个节点上运行,确保一个容器组可以与另一个容器组通讯,一个节点可以与另一个节点对话,一个容器可以与另一个容器对话。它负责监视 API 服务器对服务和容器组定义的更改,以保持整个网络配置是最新的。当一项服务得到多个容器组的支持时,代理会在这些容器组之间执行负载平衡。 -kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务器,用于接受连接并将它们代理到吊舱。当前的实现是使用 iptables 规则将数据包重定向到随机选择的后端吊舱,而无需通过实际的代理服务器。 +kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务器,用于接受连接并将它们代理到容器组。当前的实现是使用 iptables 规则将数据包重定向到随机选择的后端容器组,而无需通过实际的代理服务器。 它工作原理的高级视图: @@ -128,7 +128,7 @@ kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务 * API 服务器会通知在工作节点上运行的 kube-proxy 代理有一个新服务。 - * 每个 kube-proxy 通过设置 iptables 规则使服务可寻址,确保截获每个服务 IP/端口对,并将目的地址修改为支持服务的一个吊舱。 + * 每个 kube-proxy 通过设置 iptables 规则使服务可寻址,确保截获每个服务 IP/端口对,并将目的地址修改为支持服务的一个容器组。 * 监控 API 服务器对服务或其端点对象的更改。 @@ -142,7 +142,7 @@ kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务 容器运行时负责: - * 如果容器镜像本地没有,则从镜像仓库中提取。 + * 如果容器镜像本地不存在,则从镜像仓库中提取。 * 将镜像解压到写时复制文件系统,所有容器层叠加创建一个合并的文件系统。 @@ -150,9 +150,9 @@ kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务 * 设置容器镜像的元数据,如覆盖命令、用户输入的入口命令,并设置 SECCOMP 规则,确保容器按预期运行。 - * 提醒内核将进程、网络和文件系统等隔离分配给容器。 + * 通知内核将进程、网络和文件系统等隔离分配给容器。 - * 提醒内核分配一些资源限制,如 CPU 或内存限制。 + * 通知内核分配一些资源限制,如 CPU 或内存限制。 * 将系统调用(syscall)传递给内核启动容器。 From 5572536629648ec25772b91e30bb2910bcacfcd6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 28 Jun 2022 16:47:05 +0800 Subject: [PATCH 0164/3123] RP @geekpi https://linux.cn/article-14770-1.html --- ...0220607 Integrating Zeek with ELK Stack.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) rename {translated/tech => published}/20220607 Integrating Zeek with ELK Stack.md (68%) diff --git a/translated/tech/20220607 Integrating Zeek with ELK Stack.md b/published/20220607 Integrating Zeek with ELK Stack.md similarity index 68% rename from translated/tech/20220607 Integrating Zeek with ELK Stack.md rename to published/20220607 Integrating Zeek with ELK Stack.md index 2db7283ac8..ab63c0ad30 100644 --- a/translated/tech/20220607 Integrating Zeek with ELK Stack.md +++ b/published/20220607 Integrating Zeek with ELK Stack.md @@ -3,44 +3,44 @@ [#]: author: "Tridev Reddy https://www.opensourceforu.com/author/tridev-reddy/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14770-1.html" 将 Zeek 与 ELK 栈集成 ====== -Zeek 是一个开源的网络安全监控工具。本文讨论了如何将 Zeek 与 ELK 集成。 -![Integrating-Zeek-with-ELK-Stack-Featured-image][1] +> Zeek 是一个开源的网络安全监控工具。本文讨论了如何将 Zeek 与 ELK 集成。 -在本杂志 2022 年 3 月版发表的题为“用 Zeek 轻松实现网络安全监控”的文章中,我们研究了 Zeek 的功能,并学习了如何开始使用它。现在我们将把我们的学习经验再进一步,看看如何将其与 ELK(也称为 Elasticsearch、Kibana、Beats 和 Logstash)整合。 +![](https://img.linux.net.cn/data/attachment/album/202206/28/164550v4nuk3g7ux77y77v.jpg) + +在本杂志 2022 年 3 月版发表的题为“用 Zeek 轻松实现网络安全监控”的文章中,我们研究了 Zeek 的功能,并学习了如何开始使用它。现在我们将把我们的学习经验再进一步,看看如何将其与 ELK(即 Elasticsearch、Kibana、Beats 和 Logstash)整合。 为此,我们将使用一个叫做 Filebeat 的工具,它可以监控、收集并转发日志到 Elasticsearch。我们将把 Filebeat 和 Zeek 配置在一起,这样后者收集的数据将被转发并集中到我们的 Kibana 仪表盘上。 ### 安装 Filebeat -让我们首先将 Filebeat 与 Zeek 安装在一起。使用 *apt* 来安装 Filebeat,使用以下命令: +让我们首先将 Filebeat 与 Zeek 安装在一起。使用 `apt` 来安装 Filebeat,使用以下命令: ``` sudo apt install filebeat ``` -接下来,我们需要配置 *.yml* 文件,它位于 /etc*/filebeat/* 文件夹中: - +接下来,我们需要配置 `.yml` 文件,它位于 `/etc/filebeat/` 文件夹中: ``` sudo nano /etc/filebeat/filebeat.yml ``` -我们只需要在这里配置两件事。在 *Filebeat* 输入部分,将类型改为 log,并取消对 *enabled*:false 的注释,将其改为 true。我们还需要指定存储日志的路径,也就是说,我们需要指定*/opt/zeek/logs/current/\*.log*。 +我们只需要在这里配置两件事。在 Filebeat 输入部分,将类型改为 `log`,并取消对 `enabled:false` 的注释,将其改为 `true`。我们还需要指定存储日志的路径,也就是说,我们需要指定 `/opt/zeek/logs/current/*.log`。 完成这些后,设置的第一部分应该类似于图 1 所示的内容。 ![Figure 1: Filebeat config (a)][2] -在 Elasticsearch 输出部分,第二件要修改的事情是在 *Outputs*下,取消对 output.elasticsearch 和 hosts 的注释。确保主机的 URL 和端口号与你安装 ELK 时配置的相似。我们把它保持为 localhost,端口号为 9200。 +第二件要修改的事情是在输出下的 Elasticsearch 输出部分,取消对 `output.elasticsearch` 和 `hosts` 的注释。确保主机的 URL 和端口号与你安装 ELK 时配置的相似。我们把它保持为 `localhost`,端口号为 `9200`。 -在同一部分中,取消底部的用户名和密码,输入安装后配置 ELK 时生成的弹性用户的用户名和密码。完成这些后,参考图 2,检查设置。 +在同一部分中,取消底部的用户名和密码的注释,输入安装后配置 ELK 时生成的 Elasticsearch 用户的用户名和密码。完成这些后,参考图 2,检查设置。 ![Figure 2: Filebeat config (b)][3] @@ -51,7 +51,7 @@ cd /opt/zeek/bin ./zeekctl stop ``` -现在我们需要在 local.zeek 中添加一小行,它存在于 *opt/zeek/share/zeek/site/* 目录中。 +现在我们需要在 `local.zeek` 中添加一小行,它存在于 `opt/zeek/share/zeek/site/` 目录中。 以 root 身份打开该文件,添加以下行: @@ -76,11 +76,11 @@ cd /opt/zeek/bin sudo filebeat modules enable zeek ``` -我们几乎要好了。在最后一步,配置 *zeek.yml* 文件要记录什么类型的数据。这可以通过修改 */etc/filebeat/modules.d/zeek.yml* 文件完成。 +我们几乎要好了。在最后一步,配置 `zeek.yml` 文件要记录什么类型的数据。这可以通过修改 `/etc/filebeat/modules.d/zeek.yml` 文件完成。 -在这个 *.yml 文件*中,我们必须提到这些指定的日志存放在哪个目录下。我们知道,这些日志存储在当前文件夹中,其中有几个文件,如 *dns.log*、*conn.log、dhcp.log* 等等。我们需要在每个部分提到每个路径。如果而且只有在你不需要该文件/程序的日志时,你可以通过把启用值改为 false 来舍弃不需要的文件。 +在这个 .yml 文件中,我们必须提到这些指定的日志存放在哪个目录下。我们知道,这些日志存储在当前文件夹中,其中有几个文件,如 `dns.log`、`conn.log`、`dhcp.log` 等等。我们需要在每个部分提到每个路径。如果而且只有在你不需要该文件/程序的日志时,你可以通过把启用值改为 `false` 来舍弃不需要的文件。 -例如,对于 *dns*,确保启用值为 “true”,并且路径被配置: +例如,对于 `dns`,确保启用值为 `true`,并且路径被配置: ``` var.paths: [ “/opt/zeek/logs/current/dns.log”, “/opt/zeek/logs/*.dns.json” ] @@ -108,7 +108,7 @@ sudo service filebeat start 现在让我们进入发现选项卡,通过使用查询进行过滤来检查结果: ``` -event.module: “zeek” +event.module: "zeek" ``` 这个查询将过滤它在一定时间内收到的所有数据,只向我们显示名为 Zeek 的模块的数据(图 7)。 @@ -127,7 +127,7 @@ via: https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/ 作者:[Tridev Reddy][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/) 荣誉推出 From 2c08ba411f694dd1b45a732e5656a6648d4de51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Tue, 28 Jun 2022 17:13:37 +0800 Subject: [PATCH 0165/3123] Translated --- ...20603 How static linking works on Linux.md | 217 ------------------ ...20603 How static linking works on Linux.md | 217 ++++++++++++++++++ 2 files changed, 217 insertions(+), 217 deletions(-) delete mode 100644 sources/tech/20220603 How static linking works on Linux.md create mode 100644 translated/tech/20220603 How static linking works on Linux.md diff --git a/sources/tech/20220603 How static linking works on Linux.md b/sources/tech/20220603 How static linking works on Linux.md deleted file mode 100644 index 6c6d631e5f..0000000000 --- a/sources/tech/20220603 How static linking works on Linux.md +++ /dev/null @@ -1,217 +0,0 @@ -[#]: subject: "How static linking works on Linux" -[#]: via: "https://opensource.com/article/22/6/static-linking-linux" -[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How static linking works on Linux -====== -Learn how to combine multiple C object files into a single executable with static libraries. - -![Woman using laptop concentrating][1] - -Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2] - -Code for applications written using C usually has multiple source files, but ultimately you will need to compile them into a single executable. - -You can do this in two ways: by creating a static library or a dynamic library (also called a shared library). These two types of libraries vary in terms of how they are created and linked. Your choice of which to use depends on your use case. - -In a [previous article][3], I demonstrated how to create a dynamically linked executable, which is the more commonly used method. In this article, I explain how to create a statically linked executable. - -### Using a linker with static libraries - -A linker is a command that combines several pieces of a program together and reorganizes the memory allocation for them. - -The functions of a linker include: - -* Integrating all the pieces of a program -* Figuring out a new memory organization so that all the pieces fit together -* Reviving addresses so that the program can run under the new memory organization -* Resolving symbolic references - -As a result of all these linker functionalities, a runnable program called an executable is created. - -Static libraries are created by copying all necessary library modules used in a program into the final executable image. The linker links static libraries as a last step in the compilation process. An executable is created by resolving external references, combining the library routines with program code. - -### Create the object files - -Here's an example of a static library, along with the linking process. First, create the header file `mymath.h` with these function signatures: - -``` -int add(int a, int b); -int sub(int a, int b); -int mult(int a, int b); -int divi(int a, int b); -``` - -Create `add.c`, `sub.c` , `mult.c` and `divi.c` with these function definitions: - -``` -// add.c -int add(int a, int b){ -return (a+b); -} - -//sub.c -int sub(int a, int b){ -return (a-b); -} - -//mult.c -int mult(int a, int b){ -return (a*b); -} - -//divi.c -int divi(int a, int b){ -return (a/b); -} -``` - -Now generate object files `add.o`, `sub.o`, `mult.o`, and `divi.o` using GCC: - -``` -$ gcc -c add.c sub.c mult.c divi.c -``` - -The `-c` option skips the linking step and creates only object files. - -Create a static library called `libmymath.a`, then remove the object files, as they're no longer required. (Note that using a `trash` [command][4] is safer than `rm`.) - -``` -$ ar rs libmymath.a add.o sub.o mult.o divi.o -$ trash *.o -$ ls -add.c  divi.c  libmymath.a  mult.c  mymath.h  sub.c -``` - -You have now created a simple example math library called `libmymath`, which you can use in C code. There are, of course, very complex C libraries out there, and this is the process their developers use to generate the final product that you and I install for use in C code. - -Next, use your math library in some custom code and then link it. - -### Create a statically linked application - -Suppose you've written a command for mathematics. Create a file called `mathDemo.c` and paste this code into it: - -``` -#include -#include -#include - -int main() -{ -  int x, y; -  printf("Enter two numbers\n"); -  scanf("%d%d",&x,&y); -  -  printf("\n%d + %d = %d", x, y, add(x, y)); -  printf("\n%d - %d = %d", x, y, sub(x, y)); -  printf("\n%d * %d = %d", x, y, mult(x, y)); - -  if(y==0){ -    printf("\nDenominator is zero so can't perform division\n"); -      exit(0); -  }else{ -      printf("\n%d / %d = %d\n", x, y, divi(x, y)); -      return 0; -  } -} -``` - -Notice that the first line is an `include` statement referencing, by name, your own `libmymath` library. - -Create an object file called `mathDemo.o` for `mathDemo.c` : - -``` -$ gcc -I . -c mathDemo.c -``` - -The `-I` option tells GCC to search for header files listed after it. In this case, you're specifying the current directory, represented by a single dot (`.` ). - -Link `mathDemo.o` with `libmymath.a` to create the final executable. There are two ways to express this to GCC. - -You can point to the files: - -``` -$ gcc -static -o mathDemo mathDemo.o libmymath.a -``` - -Alternately, you can specify the library path along with the library name: - -``` -$ gcc -static -o mathDemo -L . mathDemo.o -lmymath -``` - -In the latter example, the `-lmymath` option tells the linker to link the object files present in the `libmymath.a` with the object file `mathDemo.o` to create the final executable. The `-L` option directs the linker to look for libraries in the following argument (similar to what you would do with `-I` ). - -### Analyzing the result - -Confirm that it's statically linked using the `file` command: - -``` -$ file mathDemo -mathDemo: ELF 64-bit LSB executable, x86-64... -statically linked, with debug_info, not stripped -``` - -Using the `ldd` command, you can see that the executable is not dynamically linked: - -``` -$ ldd ./mathDemo -        not a dynamic executable -``` - -You can also check the size of the `mathDemo` executable: - -``` -$ du -h ./mathDemo -932K    ./mathDemo -``` - -In the example from my [previous article][5], the dynamic executable took up just 24K. - -Run the command to see it work: - -``` -$ ./mathDemo -Enter two numbers -10 -5 - -10 + 5 = 15 -10 - 5 = 5 -10 * 5 = 50 -10 / 5 = 2 -``` - -Looks good! - -### When to use static linking - -Dynamically linked executables are generally preferred over statically linked executables because dynamic linking keeps an application's components modular. Should a library receive a critical security update, it can be easily patched because it exists outside of the applications that use it. - -When you use static linking, a library's code gets "hidden" within the executable you create, meaning the only way to patch it is to re-compile and re-release a new executable every time a library gets an update—and you have better things to do with your time, trust me. - -However, static linking is a reasonable option if the code of a library exists either in the same code base as the executable using it or in specialized embedded devices that are expected to receive no updates. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/static-linking-linux - -作者:[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/lenovo-thinkpad-laptop-concentration-focus-windows-office.png -[2]: https://creativecommons.org/licenses/by/3.0/us/ -[3]: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux -[4]: https://www.redhat.com/sysadmin/recover-file-deletion-linux -[5]: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux diff --git a/translated/tech/20220603 How static linking works on Linux.md b/translated/tech/20220603 How static linking works on Linux.md new file mode 100644 index 0000000000..becff02afc --- /dev/null +++ b/translated/tech/20220603 How static linking works on Linux.md @@ -0,0 +1,217 @@ +[#]: subject: "How static linking works on Linux" +[#]: via: "https://opensource.com/article/22/6/static-linking-linux" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 上静态链接 +====== +学习如何将多个 C 对象object 文件组合到一个带有静态库的单个可执行文件文件之中。 + +![Woman using laptop concentrating][1] + +图片作者:Mapbox Uncharted ERG, [CC-BY 3.0 US][2] + +使用 C 编写的应用程序代码通常有多个源代码文件,但是,你需要将它们最终编译到一个单个的可执行文件。 + +你可以通过两种方式来完成这项工作:通过创建一个 静态static 库 或 一个 动态dynamic 库 (也被称为 共享shared 库)。这两种类型的库在从它们是如何创建和链接的角度来看是不同的。你选择使用哪种方式取决于你的的具体使用情况。 + +在 [上一篇文章][3] 中,我演示了如何创建一个动态链接的可执行文件,这是一种更常用的方法。在这篇文章中,我将解释如何创建一个静态链接的可执行文件。 + +### 链接器使用静态库 + +链接器是一个命令,它将一个程序的数个部分组合到一起,并为它们重新组织存储器分配。 + +链接器的功能包括: + +* 集成一个程序的所有的部分 +* 计算组织出一个新的存储器结构,以便所有的部分组合在一起 +* 重新复活存储器地址,以便程序可以在新的存储器组织下运行 +* 解析符号引用 + +作为这些链接器功能的结果,创建了一个名称为可执行文件的一个可运行程序。 + +静态库是通过复制一个程序中的所有必须的库模块到最终的可执行镜像来创建的。链接器将链接静态库作为编译过程的最后一步。可执行文件是通过解析外部引用、库实例程序与程序代码组合来创建的。 + +### 创建对象文件 + +这里是一个静态库的示例,以及其链接过程。首先,创建带有这些函数识别标志的头文件 `mymath.h` : + +``` +int add(int a, int b); +int sub(int a, int b); +int mult(int a, int b); +int divi(int a, int b); +``` + +使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件: + +``` +// add.c +int add(int a, int b){ +return (a+b); +} + +//sub.c +int sub(int a, int b){ +return (a-b); +} + +//mult.c +int mult(int a, int b){ +return (a*b); +} + +//divi.c +int divi(int a, int b){ +return (a/b); +} +``` + +现在,使用 GCC 来参加对象文件 `add.o` 、`sub.o` 、`mult.o` 和 `divi.o` : + +``` +$ gcc -c add.c sub.c mult.c divi.c +``` + +`-c` 选项跳过链接步骤,并且只创建对象文件。 + +创建一个名称为 `libmymath.a` 的静态库,接下来,移除对象文件,因为它们不再被需要。(注意,使用一个 `trash` 命令比使用一个 `rm` 命令更安全。) + +``` +$ ar rs libmymath.a add.o sub.o mult.o divi.o +$ trash *.o +$ ls +add.c  divi.c  libmymath.a  mult.c  mymath.h  sub.c +``` + +现在,你已经创建了一个简单的名称为 `libmymath` 是示例数学库,你可以在 C 代码中使用它。当然,这里有非常复杂的 C 库,这就是他们这些开发者来生成最终产品的工艺流程,你和我可以安装这些库并在 C 代码中使用。 + +接下来,在一些自定义代码中使用你的数学库,然后链接它。 + +### 创建一个静态链接的应用程序 + +假设你已经为数学运算编写了一个命令。创建一个名称为 `mathDemo.c` 的文件,并将这些代码复制粘贴至其中: + +``` +#include +#include +#include + +int main() +{ +  int x, y; +  printf("Enter two numbers\n"); +  scanf("%d%d",&x,&y); +  +  printf("\n%d + %d = %d", x, y, add(x, y)); +  printf("\n%d - %d = %d", x, y, sub(x, y)); +  printf("\n%d * %d = %d", x, y, mult(x, y)); + +  if(y==0){ +    printf("\nDenominator is zero so can't perform division\n"); +      exit(0); +  }else{ +      printf("\n%d / %d = %d\n", x, y, divi(x, y)); +      return 0; +  } +} +``` + +注意:第一行是一个 `include` 语句,通过名称来引用你自己的 `libmymath` 库。 + +针对 `mathDemo.c` 创建一个名称为 `mathDemo.o` 的对象文件: + +``` +$ gcc -I . -c mathDemo.c +``` + +`-I` 选项告诉 GCC 来搜索在其后列出的头文件。在这个实例中,你正在具体指定当前目录,通过一个单个点 (`.` ) 来表示。 + +Link `mathDemo.o` with `libmymath.a` 来参加最终的可执行文件。这里有两种方法来向 GCC 表达这一点。 + +你可以指向文件: + +``` +$ gcc -static -o mathDemo mathDemo.o libmymath.a +``` + +或者,你可以具体指定库的路径和库的名称: + +``` +$ gcc -static -o mathDemo -L . mathDemo.o -lmymath +``` + +在后面的那个示例中,`-lmymath` 选项告诉链接器来链接随对象文件 `mathDemo.o` 出现的对象文件 `libmymath.a` 来创建最终的可执行文件。`-L` 选项指示链接器在下面的参数中查找库 (类似于你使用 `-I` 所做的工作)。 + +### 分析结果 + +使用 `file` 命令来确认它是静态链接的: + +``` +$ file mathDemo +mathDemo: ELF 64-bit LSB executable, x86-64... +statically linked, with debug_info, not stripped +``` + +使用 `ldd` 命令,你将会看到该可执行文件不是动态链接的: + +``` +$ ldd ./mathDemo +        not a dynamic executable +``` + +你也可以检查 `mathDemo` 可执行文件的大小: + +``` +$ du -h ./mathDemo +932K    ./mathDemo +``` + +在我 [前一篇文章][5] 的示例中,动态链接的可执行文件只占有 24K 大小。 + +运行该命令来看看它的工作内容: + +``` +$ ./mathDemo +Enter two numbers +10 +5 + +10 + 5 = 15 +10 - 5 = 5 +10 * 5 = 50 +10 / 5 = 2 +``` + +看起来令人满意! + +### 何时使用静态链接 + +动态链接可执行文件通常优于静态链接可执行文件,因为动态链接会保持应用程序的组件模块化。假如一个库接收到一次关键安全更新,那么它可以很容易地修补,因为它存在于应用程序的外部。 + +当你使用静态链接时,库的代码会 "隐藏" 在你创建的可执行文件之中,意味着在库每次更新时(相信我,你会有更好的东西),仅有的一种修补它的方法是重新编译和重新发布一个新的可执行文件。 + +不过,如果一个库的代码,要么存在于它正在使用的具有相同代码的可执行文件中,要么存在于专用的预期不会接收到任何更新的嵌入式设备中,那么静态连接将是一种可接受的选项。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/static-linking-linux + +作者:[Jayashree Huttanagoudar][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://opensource.com/users/jayashree-huttanagoudar +[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/article/22/5/dynamic-linking-modular-libraries-linux +[4]: https://www.redhat.com/sysadmin/recover-file-deletion-linux +[5]: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux From 83512b7799748e655c97b3c616d1604ebcf94e89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Tue, 28 Jun 2022 17:16:14 +0800 Subject: [PATCH 0166/3123] Translating --- ... How dynamic linking for modular libraries works on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md b/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md index e3cba06c3e..dd79c84de2 100644 --- a/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md +++ b/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux" [#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f1a337316fcea5f0cb51da43bc11dee97acf276b Mon Sep 17 00:00:00 2001 From: SamMa Date: Tue, 28 Jun 2022 18:10:39 +0800 Subject: [PATCH 0167/3123] Update 20220622 Manage your Rust toolchain using rustup.md --- .../tech/20220622 Manage your Rust toolchain using rustup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20220622 Manage your Rust toolchain using rustup.md b/translated/tech/20220622 Manage your Rust toolchain using rustup.md index c9673c996f..292d6bed9a 100644 --- a/translated/tech/20220622 Manage your Rust toolchain using rustup.md +++ b/translated/tech/20220622 Manage your Rust toolchain using rustup.md @@ -3,7 +3,7 @@ [#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " +[#]: reviewer: "turbokernel" [#]: publisher: " " [#]: url: " " @@ -131,7 +131,7 @@ via: https://opensource.com/article/22/6/rust-toolchain-rustup 作者:[Gaurav Kamathe][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[turbokernel](https://github.com/turbokernel) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7edaf21b266752083f82fba4626aa5a5d8944a9c Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 19:52:31 +0800 Subject: [PATCH 0168/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220627=20Linux=20Lite=206=20Review-=20Well=20Desig?= =?UTF-8?q?ned=20-bridging-distro-=20for=20Windows=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ned -bridging-distro- for Windows Users.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20220627 Linux Lite 6 Review- Well Designed -bridging-distro- for Windows Users.md diff --git a/sources/tech/20220627 Linux Lite 6 Review- Well Designed -bridging-distro- for Windows Users.md b/sources/tech/20220627 Linux Lite 6 Review- Well Designed -bridging-distro- for Windows Users.md new file mode 100644 index 0000000000..ab00a534ae --- /dev/null +++ b/sources/tech/20220627 Linux Lite 6 Review- Well Designed -bridging-distro- for Windows Users.md @@ -0,0 +1,100 @@ +[#]: subject: "Linux Lite 6 Review: Well Designed “bridging-distro” for Windows Users" +[#]: via: "https://www.debugpoint.com/linux-lite-6-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Lite 6 Review: Well Designed “bridging-distro” for Windows Users +====== + +**We took [Linux Lite 6 “Fluorite”][1] for a test drive in a physical and virtual machine for a review.** + +It has been more than a year since we reviewed the Linux Lite distribution. The [last review][2] was for its 5.0 series. And it’s time for a refreshed review of this excellent distribution with its latest major release Linux Lite 6.0. + +Linux Lite 6.0, AKA Linux Lite OS, is based on Ubuntu and follows its LTS (Long Term Support) lifecycle. That means you get a similar release schedule and security updates for five years following Ubuntu Linux. The lightweight desktop environment – Xfce is the primary and only desktop it offers. Linux Lite OS primarily focuses on Windows users who want to kick start their Linux journey. Hence you may think of it as a “bridging” Linux operating system. + +![Linux Lite 6 Xfce Desktop][3] + +### Linux Lite 6: Review + +Lite 6 is coming after two years of its last major release. Due to its dependency on Ubuntu LTS, you should expect some significant changes in this version. First, let’s wrap up the new features in this release. And then, we can talk about the installation, performance and review pointers. + +#### Core updates and changes + +At its core, it is based on Linux Kernel 5.15, the default LTS kernel for Ubuntu 22.04 LTS Jammy Jellyfish. In addition, this release introduces a set of desktop applications from Assistive Technologies to help hearing and sight-impaired people. The apps are – “Onscreen Keyboard – Onboard”, “Screen reader – Orca”, and “screen magnifier”. With this change, Linux Lite 6 becomes more similar to Windows for its target users. + +In addition to the above change, a controversial decision is to add Google Chrome as its default browser replacing the Snap version of Firefox. Undoubtedly, Google Chrome is the market leader in the browser space and is well built. But many have issues with it because it’s from Google. + +Besides, the team also chose between the Firefox deb version and the Microsft Edge (considering Linux Lite 6 targets Windows users). + +Another beneficial core change for users is the team’s decision to bring the latest LibreOffice stable edition in each point release in the next two years. Because Ubuntu might delay specific LibreOffice versions, but with Linux Lite point releases, you definitely would get the latest version. + +Moreover, if you are a fan of look and feel, the new Materia window theme is going to give you a pleasant and sleek desktop. + +Overall, it’s a good set of changes and choices (such as the browser) in Linux Lite 6 to stay ahead with the times. Now, let’s discuss some review findings during our test run. + +![Linux Lite has a nice update tool][4] + +#### Download, Installation + +Linux Lite 6 ISO size is 2.1 GB, and I believe it’s reasonably well-composed, considering the vanilla Ubuntu 22.04 ISO desktop size is a whopping 3 GB+. + +In all fairness, unlike other Linux distributions, Linux Lite doesn’t ask you which desktop you want – because you have only one choice – The Xfce desktop. + +During testing, we could not get it installed in a physical system. The Ubiquity installer became unresponsive on the “read partition” module. After a few hours of research, we found that Ubiquity doesn’t play well with a non-GPT table with more than three logical partitions. + +However, it installs fine in a virtual-machine environment. + +![Ubiquity gave some errors in test machines][5] + +The Lite Welcome app gives you a single point to perform various maintenance activities in the first boot. Critical tasks such as updating the system, patching and installing/removing software are easy with its native Lite Software and Updater. + +Moreover, if you want to install the Firefox web browser, the Lite Software gives you a fair warning that it is a snap. Although, it doesn’t matter much from a new Windows user standpoint, whether it’s snap or anything else. + +![Firefox is available as Snap from Lite Software][6] + +### Performance + +Linux Lite 6 takes around 590 MB of RAM in an idle state with an uptime of 3 hours. The CPU is at about 2% to 3% in an inactive state. Furtehrmore, if you run more applications, the resource usage would increase eventually. However, I believe it’s a good performance considering the target hardware of this distro. Besides, the old Windows 10 or Windows 7 devices would work fine in this distro. + +And it uses 9 GB of disk space for the default install. + +![Linux Lite 6 – Performance][7] + +### Closing Notes + +Overall, it is an excellent release and perhaps one of the early mainstream distros based on Ubuntu 22.04. Tiny additions in this release such as new accessibility tools, a new system monitoring tool and other changes are definitely good. However, some users may not like Google Chrome considering the privacy debates. + +Moreover, the lack of a major upgrade path may be a roadblock and troublesome for new users. I hope the Linux Lite team brings the upgrade feature in the future. Other than that, it’s well built and a good release. You can easily try it out and choose for your daily driver. + +You can download Linux Lite on the [official website][8]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-lite-6-review/ + +作者:[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://debugpointnews.com/linux-lite-6-0/ +[2]: https://www.debugpoint.com/linux-lite-5-2-review/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/Linux-Lite-6-Xfce-Desktop.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/Linux-Lite-has-a-nice-update-tool.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/Ubiquity-gave-some-errors-in-test-machines.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/Firefox-is-available-as-Snap-from-Lite-Software.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/Linux-Lite-6-Performance.jpg +[8]: https://www.linuxliteos.com/download.php +[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://t.me/debugpoint From 4b28a8cab765c7d6498d757318e58ab498fd795f Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 19:53:56 +0800 Subject: [PATCH 0169/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220628=20Linux=20su=20vs=20sudo-=20what-s=20the=20?= =?UTF-8?q?difference-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...inux su vs sudo- what-s the difference-.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 sources/tech/20220628 Linux su vs sudo- what-s the difference-.md diff --git a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md b/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md new file mode 100644 index 0000000000..01bb0f2517 --- /dev/null +++ b/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md @@ -0,0 +1,150 @@ +[#]: subject: "Linux su vs sudo: what's the difference?" +[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux su vs sudo: what's the difference? +====== +A comparison of Linux commands for escalating privileges for non-root users. + +![bash logo on green background][1] + +Image by: Opensource.com + +Both the `su` and the `sudo` commands allow users to perform system administration tasks that are not permitted for non-privileged users—that is, everyone but the root user. Some people prefer the `sudo` command: For example, [Seth Kenlon][2] recently published "[5 reasons to use sudo on Linux][3]", in which he extols its many virtues. + +I, on the other hand, am partial to the `su` command and prefer it to `sudo` for most of the system administration work I do. In this article, I compare the two commands and explain why I prefer `su` over `sudo` but still use both. + +### Historical perspective of sysadmins + +The `su` and `sudo` commands were designed for a different world. Early Unix computers required full-time system administrators, and they used the root account as their only administrative account. In this ancient world, the person entrusted with the root password would log in as root on a teletype machine or CRT terminal such as the DEC VT100, then perform the administrative tasks necessary to manage the Unix computer. + +The root user would also have a non-root account for non-root activities such as writing documents and managing their personal email. There were usually many non-root user accounts on those computers, and none of those users needed total root access. A user might need to run one or two commands as root, but very infrequently. Many sysadmins log in as root to work as root and log out of our root sessions when finished. Some days require staying logged in as root all day long. Most sysadmins rarely use `sudo` because it requires typing more than necessary to run essential commands. + +These tools both provide escalated privileges, but the way they do so is significantly different. This difference is due to the distinct use cases for which they were originally intended. + +### sudo + +The original intent of `sudo` was to enable the root user to delegate to one or two non-root users access to one or two specific privileged commands they need regularly. The `sudo` command gives non-root users temporary access to the elevated privileges needed to perform tasks such as adding and deleting users, deleting files that belong to other users, installing new software, and generally any task required to administer a modern Linux host. + +Allowing the users access to a frequently used command or two that requires elevated privileges saves the sysadmin a lot of requests from users and eliminates the wait time. The `sudo` command does not switch the user account to become root; most non-root users should never have full root access. In most cases, `sudo` lets a user issue one or two commands then allows the privilege escalation to expire. During this brief time interval, usually configured to be 5 minutes, the user may perform any necessary administrative tasks that require elevated privileges. Users who need to continue working with elevated privileges but are not ready to issue another task-related command can run the `sudo -v` command to revalidate the credentials and extend the time for another 5 minutes. + +Using the `sudo` command does have the side effect of generating log entries of commands used by non-root users, along with their IDs. The logs can facilitate a problem-related postmortem to determine when users need more training. (You thought I was going to say something like "assign blame," didn't you?) + +### su + +The `su` command is intended to allow a non-root user to elevate their privilege level to that of root—in fact, the non-root user becomes the root user. The only requirement is that the user know the root password. There are no limits on this because the user is now logged in as root. + +No time limit is placed on the privilege escalation provided by the su command. The user can work as root for as long as necessary without needing to re-authenticate. When finished, the user can issue the exit command to revert from root back to their own non-root account. + +### Controversy and change + +There has been some recent disagreement about the uses of `su` versus `sudo`. + +> Real [Sysadmins] don't use sudo. —Paul Venezia + +Venezia contends in his [InfoWorld article][4] that `sudo` is used as an unnecessary prop for many people who act as sysadmins. He does not spend much time defending or explaining this position; he just states it as a fact. And I agree with him—for sysadmins. We don't need the training wheels to do our jobs. In fact, they get in the way. + +However, + +> The times they are a'changin.' —Bob Dylan + +Dylan was correct, although he was not singing about computers. The way computers are administered has changed significantly since the advent of the one-person, one-computer era. In many environments, the user of a computer is also its administrator. This makes it necessary to provide some access to the powers of root for those users. + +Some modern distributions, such as Ubuntu and its derivatives, are configured to use the `sudo` command exclusively for privileged tasks. In those distros, it is impossible to log in directly as the root user or even to `su` to root, so the `sudo` command is required to allow non-root users any access to root privileges. In this environment, all system administrative tasks are performed using `sudo`. + +This configuration is possible by locking the root account and adding the regular user account(s) to the wheel group. This configuration can be circumvented easily. Try a little experiment on any Ubuntu host or VM. Let me stipulate the setup here so you can reproduce it if you wish. I installed Ubuntu 16.04 LTS1 and installed it in a VM using VirtualBox. During the installation, I created a non-root user, student, with a simple password for this experiment. + +Log in as the user student and open a terminal session. Look at the entry for root in the `/etc/shadow` file, where the encrypted passwords are stored. + +``` +student@ubuntu1:~$ cat /etc/shadow +cat: /etc/shadow: Permission denied +``` + +Permission is denied, so we cannot look at the `/etc/shadow` file. This is common to all distributions to prevent non-privileged users from seeing and accessing the encrypted passwords, which would make it possible to use common hacking tools to crack those passwords. + +Now let's try to `su -` to root. + +``` +student@ubuntu1:~$ su - +Password: +su: Authentication failure +``` + +This fails because the root account has no password and is locked out. Use the `sudo` command to look at the `/etc/shadow` file. + +``` +student@ubuntu1:~$ sudo cat /etc/shadow +[sudo] password for student: +root:!:17595:0:99999:7::: + +student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7::: + +``` + +I have truncated the results to show only the entry for the root and student users. I have also shortened the encrypted password so the entry will fit on a single line. The fields are separated by colons (`:` ) and the second field is the password. Notice that the password field for root is a bang, known to the rest of the world as an exclamation point (`!` ). This indicates that the account is locked and that it cannot be used. + +Now all you need to do to use the root account as a proper sysadmin is to set up a password for the root account. + +``` +student@ubuntu1:~$ sudo su - +[sudo] password for student: +root@ubuntu1:~# passwd root +Enter new UNIX password: +Retype new UNIX password: +passwd: password updated successfully +root@ubuntu1:~# +``` + +Now you can log in directly on a console as root or `su` directly to root instead of using `sudo` for each command. Of course, you could just use `sudo su -` every time you want to log in as root, but why bother? + +Please do not misunderstand me. Distributions like Ubuntu and their up- and downstream relatives are perfectly fine, and I have used several of them over the years. When using Ubuntu and related distros, one of the first things I do is set a root password so that I can log in directly as root. Other distributions, like Fedora and its relatives, now provide some interesting choices during installation. The first Fedora release where I noticed this was Fedora 34, which I have installed many times while writing an upcoming book. + +One of those installation options can be found on the page to set the root password. The new option allows the user to choose "Lock root account" in the way an Ubuntu root account is locked. There is also an option on this page that allows remote SSH login to this host as root using a password, but that only works when the root account is unlocked. The second option is on the page that allows the creation of a non-root user account. One of the options on this page is "Make this user administrator." When this option is checked, the user ID is added to a special group called the wheel group, which authorizes members of that group to use the `sudo` command. Fedora 36 even mentions the wheel group in the description of that checkbox. + +More than one non-root user can be set as an administrator. Anyone designated as an administrator using this method can use the `sudo` command to perform all administrative tasks on a Linux computer. Linux only allows the creation of one non-root user during installation, so other new users can be added to the wheel group when created. Existing users can be added to the wheel group by the root user or another administrator directly by using a text editor or the `usermod` command. + +In most cases, today's administrators need to do only a few essential tasks such as adding a new printer, installing updates or new software, or deleting software that is no longer needed. These GUI tools require a root or administrative password and will accept the password from a user designated as an administrator. + +### How I use su and sudo on Linux + +I use both `su` and `sudo`. They each have an important place in my sysadmin toolbox. + +I can't lock the root account because I need to use it to run my [Ansible][5] playbooks and the [rsbu][6] Bash program I wrote to perform backups. Both of these need to be run as root, and so do several other administrative Bash scripts I have written. I use the `su` command to switch users to the root user so I can perform these and many other common tasks. Elevating my privileges to root using `su` is especially helpful when performing problem determination and resolution. I really don't want a `sudo` session timing out on me while I am in the middle of my thought process. + +I use the `sudo` command for tasks that need root privilege when a non-root user needs to perform them. I set the non-root account up in the sudoers file with access to only those one or two commands needed to complete the tasks. I also use `sudo` myself when I need to run only one or two quick commands with escalated privileges. + +### Conclusions + +The tools you use don't matter nearly as much as getting the job done. What difference does it make if you use vim or Emacs, systemd or SystemV, RPM or DEB, `sudo` or `su` ? The bottom line here is that you should use the tools with which you are most comfortable and that work best for you. One of the greatest strengths of Linux and open source is that there are usually many options available for each task we need to accomplish. + +Both `su` and `sudo` have strengths, and both can be secure when applied properly for their intended use cases. I choose to use both `su` and `sudo` mostly in their historical roles because that works for me. I prefer `su` for most of my own work because it works best for me and my workflow. + +Share how you prefer to work in the comments! + +This article is taken from Chapter 19 of my book The Linux Philosophy for Sysadmins (Apress, 2018) and is republished with permission. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png +[2]: https://opensource.com/users/seth +[3]: https://opensource.com/article/22/5/use-sudo-linux +[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr +[5]: https://opensource.com/article/20/10/first-day-ansible +[6]: https://opensource.com/article/17/1/rsync-backup-linux From d6e74b023e9867b2ae48c8d081e72dd748e2d2d3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 19:55:11 +0800 Subject: [PATCH 0170/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220628=20Why=20organizations=20need=20site=20relia?= =?UTF-8?q?bility=20engineers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...zations need site reliability engineers.md | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 sources/tech/20220628 Why organizations need site reliability engineers.md diff --git a/sources/tech/20220628 Why organizations need site reliability engineers.md b/sources/tech/20220628 Why organizations need site reliability engineers.md new file mode 100644 index 0000000000..54a93dcf2b --- /dev/null +++ b/sources/tech/20220628 Why organizations need site reliability engineers.md @@ -0,0 +1,126 @@ +[#]: subject: "Why organizations need site reliability engineers" +[#]: via: "https://opensource.com/article/22/6/benefits-sre-site-reliability-engineering" +[#]: author: "Robert Kimani https://opensource.com/users/robert-charles" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why organizations need site reliability engineers +====== +SRE is a valuable component in an efficient organization for software engineering, systems engineering, implementing DevSecOps, and more. + +![Puzzle pieces coming together to form a computer screen][1] + +Image by: Opensource.com + +In this final article that concludes my series about best practices for effective site reliability engineering (SRE), I cover some of the practical applications of site reliability engineering. + +There are some significant differences between software engineering and systems engineering. + +### Software engineering + +* Focuses on software development and engineering only. +* Involves writing code to create useful functionality. +* Time is spent on developing repeatable and reusable software that can be easily extended. +* Has problem-solving orientation. +* Software engineering aids the SRE. + +### Systems engineering + +* Focuses on the whole system including software, hardware and any associated technologies. +* Time is spent on building, analyzing, and managing solutions. +* Deals with defining characteristics of a system and feeds requirements to software engineering. +* Has systems-thinking orientation. +* Systems engineering enables SRE. + +The site reliability engineer (SRE) utilizes both software engineering and system engineering skills, and in so doing adds value to an organization. + +As the SRE team runs production systems, an SRE produces the most impactful tools to manage and automate manual processes. Software can be built faster when an SRE is involved, because most of the time the SRE creates software for their own use. As most of the tasks for an SRE are automated, which entails a lot of coding, this introduces a healthy mix of development and operations, which is great for site reliability. + +Finally, an SRE enables an organization to automatically scale rapidly whether it's scaling up or scaling down. + +### SRE and DevSecOps + +An SRE helps build end to end effective monitoring systems by utilizing logs, metrics and traces. An SRE enables fast, effective, and reliable rollbacks and automatic scaling up or down infrastructure as needed. These are especially effective during a security breach. + +With the advent of cloud and container-based architectures, data processing pipelines have become a prominent component in IT architectures. An SRE helps configure the most restrictive access to data processing pipelines. + +Finally, an SRE helps develop tools and procedures to handle incidents. While most of these incidents focus on IT operations and reliability, it can be easily extended to security. For example, DevSecOps deals with integrating development, security, and operations with heavy emphasis on automation. It's a field where development, security and operations teams work together to support and maintain an organization's applications and infrastructure. + +### Designing SRE and pre-production computing environments + +A pre-production or non-production environment is an environment used by an SRE to develop, deploy, and test. + +The non-production environment is the testing ground for automation. But it's not just application code that requires a non-production environment. Any associated automated processes, primarily the ones that an SRE develops, requires a pre-production environment. Most organizations have more than one pre-production environment. By resembling production as much as possible, the pre-production environment improves confidence in releases. At least one of your non-production environments should resemble the production environment. In many cases it's not possible to replicate production data, but you should try your best to make the non-production environments match the production environments as closely as possible. + +### Pre-production computing and the SRE + +An SRE helps spin-up identical application serving environments by using automation and specialized tools. This is essential, as you can quickly spin up a non-production environment in a matter of seconds using scripts and tools developed by SREs. + +A smart SRE treats configuration as code to ensure fast implementation of testing and deployment. Through the use of automated CI/CD pipelines, application releases and hot fixes can be made seamlessly. + +Finally, by developing effective monitoring solutions, an SRE helps to ensure the reliability of a pre-production computing environment. + +One of the closely related fields to pre-production computing is inner loop development. + +### Executing on inner loop development + +Picture two loops, an inner loop and an outer loop, forming the DevOps loop. In the inner loop, you code, build, run, and debug. This cycle mostly happens in a developer's workstation or some other non-production environment. + +Once the code is ready, it is moved to the outer loop, where the process starts with code review, build, deploy, integration tests, security and compliance, and finally pre-production release. + +Many of the processes in the outer loop and inner loop are automated by the SRE. + +![Image of a DevOps Loop][3] + +Image by: (Robert Kimani, CC BY-SA 40) + +### SRE and inner loop development + +The SRE speeds up inner loop development by enabling fast, iterative development by providing tools for containerized deployment. Many of the tools an SRE develops revolve around container automation and container orchestration, using tools such as Podman, Docker, Kubernetes, or platforms like OpenShift. + +An SRE also develops tools to help debug crashes with tools such as Java heap dump analysis tools, and Java thread dump analysis tools. + +### Overall value of SRE + +By utilizing both systems engineering and software engineering, an SRE organization delivers impactful solutions. An SRE helps to implement DevSecOps where development, security, and operations intersect with a primary focus on automation. + +SRE principles help maximize the function of pre-production environments by utilizing tools and processes that the SRE organizations deliver, so one can easily spin up non-production environment in a matter of seconds. An SRE organization enables efficient inner loop development by developing and providing necessary tools. + +* Improved end user experience: It's all about ensuring that the users of the applications and services, get the best experience as possible. This includes uptime of the applications or services. Applications should be up and running all the time and should be healthy. +* Minimizes or eliminates outages: It's better for users and developers alike. +* Automation: As the saying goes, you should always be trying to automate yourself out of the job that you are currently performing manually. +* Scale: In the age of cloud-native applications and containerized services, massive automated scalability is critical for an SRE to scale up or down in a safe and fast manner. +* Integrated: The principles and processes that the SRE organization embraces can be, and in many cases should be, extended to other parts of the organization, as with DevSecOps. + +The SRE is a valuable component in an efficient organization. As demonstrated over the course of this series, the benefits of SRE affect many departments and processes. + +### Further reading + +Below are some GitHub links to a few of my favorite SRE resources: + +* [Awesome site reliability engineering resources][4] +* [Awesome site reliability tools][5] +* [SRE cheat sheet][6] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/benefits-sre-site-reliability-engineering + +作者:[Robert Kimani][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/robert-charles +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/puzzle_computer_solve_fix_tool.png +[2]: https://opensource.com/downloads/guide-implementing-devsecops +[3]: https://opensource.com/sites/default/files/2022-06/SREFinalDevOps-Loop.png +[4]: https://github.com/dastergon/awesome-sre +[5]: https://github.com/SquadcastHub/awesome-sre-tools +[6]: https://github.com/shibumi/SRE-cheat-sheet From ac7d06eb7af21d80a4d311d67f951b44a630649e Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 19:56:11 +0800 Subject: [PATCH 0171/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220628=20How=20to=20Install=20and=20Configure=20HA?= =?UTF-8?q?Proxy=20on=20Ubuntu=2022.04.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...l and Configure HAProxy on Ubuntu 22.04.md | 288 ++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 sources/tech/20220628 How to Install and Configure HAProxy on Ubuntu 22.04.md diff --git a/sources/tech/20220628 How to Install and Configure HAProxy on Ubuntu 22.04.md b/sources/tech/20220628 How to Install and Configure HAProxy on Ubuntu 22.04.md new file mode 100644 index 0000000000..9da8a54cdc --- /dev/null +++ b/sources/tech/20220628 How to Install and Configure HAProxy on Ubuntu 22.04.md @@ -0,0 +1,288 @@ +[#]: subject: "How to Install and Configure HAProxy on Ubuntu 22.04" +[#]: via: "https://www.linuxtechi.com/install-configure-haproxy-on-ubuntu/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install and Configure HAProxy on Ubuntu 22.04 +====== +In this post, we will demonstrate how to install HAProxy on Ubuntu 22.04 (Jammy Jellyfish) step by step. We will later configure it to act as a load balancer by distributing incoming requests between two web servers. + +##### What is HAProxy? + +HaProxy, short for High Availability Proxy, is a free and open-source HTTP load balancer and reverse-proxy solution that is widely used to provide high availability to web applications and guarantee maximum possible uptime. + +It is a high-performance application that injects performance improvements to your web apps by distributing traffic across multiple endpoints. This way, it ensures that no webserver is overloaded with incoming HTTP requests since the workload is equitably distributed across several nodes. + +While free, the Enterprise Edition provides added features such as WAF ( Web Application Firewall ), application acceleration, advanced DDoS protection, advanced health checks and so much more. + +##### Lab setup + +To demonstrate HAProxy in action, you need to have at least three Linux systems. One will act as the HAProxy load balancer, while the rest will act as web servers. + +![Haproxy-Lab-Setup-Ubuntu][1] + +### Step 1) Install HAProxy Load Balancer + +The first step is to install HAProxy on Ubuntu. Ubuntu repositories provide HAProxy by default, but it is not the latest one. + +To view available haproxy package version from default repositories, run + +``` +$ sudo apt update +$ sudo apt show haproxy +``` + +![default-haproxy-version-ubuntu-22-04][2] + +But the latest long term support release is HAProxy is 2.6, So to install HAProxy 2.6, first enable PPA repository, run following command + +``` +$ sudo add-apt-repository ppa:vbernat/haproxy-2.6 -y +``` + +Now install haproxy 2.6 by executing the following commands + +``` +$ sudo apt update +$ sudo apt install -y haproxy=2.6.\* +``` + +Once installed, confirm the version of HAProxy installed as shown. + +``` +$ haproxy -v +``` + +![Haproxy-version-ubuntu-22-04][3] + +Upon installation, the HAProxy service starts by default and listens to TCP  port 80. To verify HAProxy is running, run the command + +``` +$ sudo systemctl status haproxy +``` + +![Haproxy-Status-Ubuntu-Linux][4] + +It’s recommended to enable the service to auto-start on very system reboot as shown. + +``` +$ sudo systemctl enable haproxy +``` + +### Step 2) Configure HAProxy + +The next step is to configure HAProxy to distribute traffic evenly between two web servers. The configuration file for haproxy is /etc/haproxy/haproxy.cfg. + +Before making any changes to the file, first, make a backup copy. + +``` +$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk +``` + +Then open the file using your preferred text editor. Here, we are using Nano. + +``` +$ sudo nano /etc/haproxy/haproxy.cfg +``` + +Haproxy configuration file is made up of the following sections: + +* global: This is the first section that you see at the very top. It contains system-wide settings that handle performance tuning and security. +* defaults: As the name suggests, this section contains settings that should work well without additional customization. These settings include timeout and error reporting configurations. +* frontend and backend: These are the settings that define the frontend and backend settings. For the frontend, we will define the HAProxy server as the front end which will distribute requests to the backend servers which are the webservers. We will also set HAProxy to use round robbin load balancing criteria for distributing traffic. +* listen: This is an optional setting that enables you to enable monitoring of HAProxy statistics. + +Now define the frontend and backend settings: + +``` +frontend linuxtechi +   bind 10.128.0.25:80 +   stats uri /haproxy?stats +   default_backend web-servers + +backend web-servers +    balance roundrobin +    server web1 10.128.0.27:80 +    server web2 10.128.0.26:80 +``` + +Here, we have configured both the HAProxy server and the web server nodes to listed to port 80. Be sure to replace the IP address for the HAProxy and webservers with your setup. + +In order to enable viewing the HAProxy statistics from a browser, add the following ‘listen’ section. + +``` +listen stats +   bind *:8080 +   stats enable +   stats uri / +   stats refresh 5s +   stats realm Haproxy\ Statistics +   stats auth linuxtechi:[email protected]     #Login User and Password for the monitoring +``` + +The stats auth directive specifies the username and password for the login user for viewing statistics on the browser. + +![HAproxy-Config-File-Ubuntu][5] + +Now save all the changes and exit the configuration file. To reload the new settings, restart haproxy service. + +``` +$ sudo systemctl restart haproxy +``` + +Next edit the /etc/hosts file. + +Define the hostnames and IP addresses of the haproxy main server and the webservers. + +``` +10.128.0.25 haproxy +10.128.0.27 web1 +10.128.0.27 web2 +``` + +Save the changes and exit. + +### Step 3) Configure Web Servers + +In this step, we will configure the remaining Linux systems which are the web servers. + +So, log in to each of the web servers and install the Apache web server package. + +``` +$ sudo apt update +$ sudo apt install -y apache2 +``` + +Next, verify that Apache is running on each of the servers. + +``` +$ sudo systemctl status apache2 +``` + +Then enable Apache webserver to start on boot on both servers. + +``` +$ sudo systemctl enable apache2 +``` + +Next, modify the index.html files for each web server. + +For Web Server 1 + +Switch to the root user + +``` +$ sudo su +``` + +Then run the following command. + +``` +# echo "

Hello! This is webserver1: 10.128.0.27

" > /var/www/html/index.html +``` + +For Web Server 2 + +Similarly, switch to the root user + +$ sudo su + +And create the index.html file as shown. + +``` +# echo "

Hello! This is webserver2: 10.128.0.26

" > /var/www/html/index.html +``` + +Next, configure the /etc/hosts file. + +``` +$ sudo nano /etc/hosts +``` + +Add the HAProxy entry to each node. + +``` +10.128.0.25 haproxy +``` + +Save the changes and exit the configuration file. + +Be sure you can ping the HAProxy server from each of the web server nodes. + +![Haproxy-Connectivity-from-web1][6] + +![Haproxy-Connectivity-from-web2][7] + +Note: Make Sure port 80 is allowed in the OS firewall in case it is enabled on web servers. + +### Step 4) Test HAProxy Load Balancing + +Up until this point, we have successfully configured our HAProxy and both of the back-end web servers. To test if your configuration is working as expected, browse the IP address of the HAProxy server + +http://10.128.0.25 + +When you browse for the first time, you should see the web page for the first web server + +![Access-WebPage1-Over-Haproxy][8] + +Upon refreshing, you should the webpage for the second web server + +![Access-WebPage2-Over-Haproxy][9] + +This shows that the HAProxy server is performing its load balancing job spectacularly by distributing incoming web traffic across the two web servers in a Round Robbin algorithm. + +Moreover, you can use the following do-while loop with the curl command: + +``` +$ while true; do curl 10.128.0.25; sleep1; done +``` + +![While-Loop-Access-Webpage-over-Haproxy][10] + +To view monitoring statistics, browse the following URL: + +http://10.128.0.25:8080/stats + +You will be required to authenticate, so provide your details as specified in Step 2. + +![HAproxy-GUI-Login-Page][11] + +You will see the following page with statistics on the performance of the HAProxy server. + +![Haproxy-Stats-Ubuntu-Linux][12] + +##### Conclusion + +There you have it! We have successfully installed HAProxy on Ubuntu 22.04 and configured it to serve requests across two web servers using the Round Robbin load balancing criteria. + +Read Also: How to Configure Static IP Address on Ubuntu 22.04 LTS + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/install-configure-haproxy-on-ubuntu/ + +作者:[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/06/Haproxy-Lab-Setup-Ubuntu.png +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/06/default-haproxy-version-ubuntu-22-04.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Haproxy-version-ubuntu-22-04.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Haproxy-Status-Ubuntu-Linux.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/06/HAproxy-Config-File-Ubuntu.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Haproxy-Connectivity-from-web1.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Haproxy-Connectivity-from-web2.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Access-WebPage1-Over-Haproxy.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Access-WebPage2-Over-Haproxy.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/06/While-Loop-Access-Webpage-over-Haproxy.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/06/HAproxy-GUI-Login-Page.png +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/06/Haproxy-Stats-Ubuntu-Linux.png From c5df589b699ac43187a0b8943c35cb24201f2836 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 19:57:03 +0800 Subject: [PATCH 0172/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220628=20EndeavourOS=20Artemis=20is=20the=20First?= =?UTF-8?q?=20ISO=20with=20ARM=20Installation=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...First ISO with ARM Installation Support.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md diff --git a/sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md b/sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md new file mode 100644 index 0000000000..3a39393db2 --- /dev/null +++ b/sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md @@ -0,0 +1,101 @@ +[#]: subject: "EndeavourOS Artemis is the First ISO with ARM Installation Support" +[#]: via: "https://news.itsfoss.com/endeavouros-artemis-release/" +[#]: author: "nikhil https://news.itsfoss.com/author/nikhil/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +EndeavourOS Artemis is the First ISO with ARM Installation Support +====== +EndeavourOS includes the latest and greatest with the new release, along with beta support for ARM installations. + +![endeavour os][1] + +The popular Arch-based Linux distribution [EndeavourOS][2] released their latest ISO refresh called Artemis. Interestingly, the release is named after NASA’s upcoming lunar mission. + +Apart from the usual improvements, the latest upgrade includes the latest [Linux Kernel 5.18.5][3] and an updated Calamares installer. + +More importantly, with this release, EndeavourOS is closer to a complete ARM installation support. Let us talk more about it! + +### Closing in on ARM Installation + +The devs at EndeavourOS have updated the Calamares installer to handle installations to ARM devices, but it is still in beta. + +Technically, you will find an integration install option on the welcome app of the main ISO. The developer also mentions that both the repos for ARM and the main ISO are more in sync from now on. + +Of course, it is exciting to see the addition, nevertheless! The announcement post also mentioned: + +> The new installer is a beta release and has limited device support for now, but we are going to add more devices in the future. The team currently is brainstorming to add the first step, the base install, in the Calamares installer also, so it will only take one step to install ARM + +Note that only Odroid N2/N2+ and the Raspberry PI are supported right now. So, you can test it out, if you are interested to experiment. + +If you are curious about the process of installation for ARM devices, here’s a quick summary: + +There are two ‘stages’ to the new installation method: + +![][4] + +**Stage 1:** + +* Boot into a live environment using the EndeavourOS Artemis ISO on your x86_64 computer. +* Connect the SD Card/SSD for your ARM computer as its primary storage. +* Launch Calamares. +* Click on the ARM install button and select the SD Card/SSD you connected and follow with the installation. + +**Stage 2** + +* Once the previous stage is over, unplug the SD Card/SSD, connect it to your ARM computer, and boot into it. +* You’ll be greeted with a modified Welcome app that lets you set up the device’s keyboard layout, timezone, passwords, etc. +* You’ll also be able to download other DEs/WMs from this screen. +* After this setup, Calamares will delete itself and you can use the device as usual. + +For more details, you can check out their blog post on [ARM installation support][5]. + +### Other Improvements + +It is obvious to expect the latest and greatest package updates, being an Arch-based distro. + +You will find Firefox 101.0.1 out of the box, but you should be soon be able to update it to Firefox 102. + +This release also comes with the latest versions of Mesa and Calamares. + +Some of the other changes include: + +* Wireplumber has replaced pipewire-media-session as the session and policy manager for Pipewire +* The package budgie-control-center has been added to the EndeavourOS repo for a smoother and native Budgie experience. +* Offline Xfce install received improvements. +* Xfce4 and i3 install will not autostart firewall-applet by default anymore. + +Also, now EndeavourOS packages can now be downgraded with eos-downgrade. + +You can check out the [official announcement][6] for more details. + +### Download EndeavourOS Artemis + +The latest release ISO is available on the official website. Head over to the [download page][7] and get the latest image from one of the available mirrors. + +[EndeavourOS Artemis][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/endeavouros-artemis-release/ + +作者:[nikhil][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/nikhil/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/endeavour-os-artemis-iso.jpg +[2]: https://endeavouros.com +[3]: https://news.itsfoss.com/linux-kernel-5-18-release/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/endeavour-os-arm.jpg +[5]: https://arm.endeavouros.com/2022/06/24/artemis-with-new-endeavouros-arm-install/ +[6]: https://endeavouros.com/news/artemis-is-launched/ +[7]: https://endeavouros.com/latest-release/ +[8]: https://endeavouros.com/ From 11e2ad9d866c147472ff0f03d0e4c37c32a26e93 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 28 Jun 2022 19:58:19 +0800 Subject: [PATCH 0173/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220628=20ripgrep-all=20Command=20in=20Linux-=20One?= =?UTF-8?q?=20grep=20to=20Rule=20Them=20All.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...and in Linux- One grep to Rule Them All.md | 269 ++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 sources/tech/20220628 ripgrep-all Command in Linux- One grep to Rule Them All.md diff --git a/sources/tech/20220628 ripgrep-all Command in Linux- One grep to Rule Them All.md b/sources/tech/20220628 ripgrep-all Command in Linux- One grep to Rule Them All.md new file mode 100644 index 0000000000..4ff5763d30 --- /dev/null +++ b/sources/tech/20220628 ripgrep-all Command in Linux- One grep to Rule Them All.md @@ -0,0 +1,269 @@ +[#]: subject: "ripgrep-all Command in Linux: One grep to Rule Them All" +[#]: via: "https://itsfoss.com/ripgrep-all/" +[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +ripgrep-all Command in Linux: One grep to Rule Them All +====== + +[rga][1], called ripgrep-all, is an excellent tool that allows you to search almost all files for a text pattern. While the OG grep command is limited to plaintext files, rga can search for text in a wide range of file types such as PDF, e-Books, Word documents, zip, tar, and even embedded subtitles. + +### What is it exactly? + +The [grep][2] command is used for searching for text-based patterns in files. It actually means **g**lobal **re**gex **p**attern. You can not only search for simple words, but can also specify that the word should be the first word in a line, at the end of a line, or a specific word should come before it. That is why grep is so powerful, because it uses regex (regular expressions). + +There is also a limitation on grep, kind of. You can only use grep to search for patterns in a plaintext file. That means you can not [search for patterns in a PDF document][3], in a compressed tar/zip archive, nor in a database like SQLite. + +Now imagine having the powerful search that grep offers, but for other file types too. That is rga, or ripgrep-all, whatever you might call it. + +It is ripgrep, but with added functionality. We also have a tutorial covering [ripgrep][4], in case you are interested in it. + +### How to install ripgrep-all + +Arch Linux users can easily install ripgrep-all using the following command: + +``` +sudo pacman -S ripgrep-all +``` + +The Nix package manger has ripgrep-all packaged and for that, use the following command: + +``` +nix-env -iA nixpkgs.ripgrep-all +``` + +Mac users can should the homebrew package manager like so: + +``` +brew install ripgrep-all +``` + +#### Debian/Ubuntu users + +At the moment, ripgrep-all is neither available in Debian’s first-party repositories nor Ubuntu’s repositories. Fret not, that doesn’t mean it is unobtainium. + +On any other Debian based operating system (Ubuntu and its derivatives too), install the necessary dependencies first: + +``` +sudo apt-get install ripgrep pandoc poppler-utils ffmpeg +``` + +Once those are installed, visit [this page that contains the installer][5]. Find the file that has the “x86_64-unknown-linux-musl” suffix. Download and extract it. + +That tar archive contains two necessary binary executable files. They are “rga” and “rga-preproc”. + +Copy them to the “~/.local/bin” directory. In most cases, this directory will exist, but in case you do not have it, create it using the following command: + +``` +mkdir -p $HOME/.local/bin +``` + +Finally, add the following lines to your “~/.bashrc” file: + +``` +if ! [[ $PATH =~ "$HOME/.local/bin" ]]; then + PATH="$HOME/.local/bin:$PATH" +fi +``` + +Now, close and re-open the terminal to make the changes made in “~/.bashrc” effective. With that, ripgrep-all is installed. + +### Using ripgrep-all + +ripgrep-all is the name of the project, not the command name, the command name is `rga`. + +The rga utility supports the following file extensions: + +* media: `.mkv`, `.mp4`, `.avi` +* documents: `.epub`, `.odt`, `.docx`, `.fb2`, `.ipynb`, `.pdf` +* compressed archives: `.zip`, `.tar`, `.tgz`, `.tbz`, `.tbz2`, `.gz`, `.bz2`, `.xz`, `.zst` +* databases: `.db`, `.db3`, `.sqlite`, `.sqlite3` +* images (OCR): `.jpg`, `.png` + +You might be [familiar with grep][6], but let us look at some examples nonetheless. This time, with rga instead of grep. + +Before you proceed further, please take a look at the directory hierarchy given down below: + +``` +. +├── my_demo_db.sqlite3 +├── my_demo_document.odt +└── TLCL-19.01.pdf.zip +``` + +#### Case insensitive and case sensitive search + +The simplest pattern matching is to search for a word in a file. Let us try that. I will use the rga command to perform a case sensitive search for the words “red hat enterprise linux” for all files in current directory. + +While grep has case sensitivity turned on by default, with rga, the `-s` option needs to be used. + +``` +rga -s 'red hat enterprise linux' +``` + +![Case sensitive search using rga][7] + +As you can see, with a case sensitive search, I only got the result from a sqlite3 database file. Now, let us try a case insensitive search using the `-i` option and see what results we get. + +![Case insensitive search using rga][8] + +``` +rga -i 'red hat enterprise linux' +``` + +Ah, this time we also got a match from the [The Linux Command Line][9] book by William Shotts. + +#### Inverse match + +With grep, and by extension, with ripgrep-all, you can do an inverse match. Which means, “Show only lines that do NOT have this pattern”. + +The option for that is `-v` and that needs to be present immediately before the pattern. + +![Inverse match using rga][10] + +``` +rga -v linux *.sqlite3 AND rga linux *sqlite3 +``` + +Hey! Hold on. That isn’t Linux! + +This time I only selected the database file, that is because every other file has a lot of lines that do not contain the word ‘linux’ in them. + +And as you can see, the first command’s output does not have the word ‘linux’ in it. The second command is only to demonstrate that ‘linux’ is present in the database. + +#### Contextual search + +One thing I love about rga’s ability to search databases, in particular, is that it can not only search for your match but also provide relevant context (when asked). Although search in databases is not special, it is always a “Oh wow, it can do that?!” moment. + +A contextual search is performed using the following three options: + +* -A: show context after the matched line +* -B: show context before the matched line +* -C: show context before and after the matched line + +If this sounds confusing, fret not. I will discuss each option to help you understand it better. + +**Using the -C option** + +To show you what I am talking about, let us take a look at the following command and it’s output. This is an example of using the `-C` option. + +``` +rga -C 2 'red hat enterprise linux' +``` + +![Fully contextual search using rga][11] + +As you can see, not only I get the match from my database file, but I can also see the rows that are chronologically before the match and also rows that are after the match. This did not randomly jumble my rows, which is quite nice because I did not use keys to number each row. + +You might be wondering if something is wrong. I specified ‘2’, but only got ‘1’ line after. Well, that is because there is no row after the ‘fedora linux’ row in my database. :) + +**Using the -A option** + +To better understand the use of `-A` option, let us have a look at an example. + +``` +rga -A 2 Yours +``` + +![Contextual search (after) using rga][12] + +I see that is a letter of some sort… Makes me wonder what was in the body. + +**Using the -B option** + +I think that document is incomplete… Let us get a context of the lines that are above it. + +To see the previous lines, we need to use the `-B` option. + +``` +rga -B 6 Yours +``` + +![Contextual search (before) using rga][13] + +As you can see, I asked “Show me the 6 lines that come before my matched line” and I got this in the output. Quite handy for some situations, don’t you think? + +#### Multi-threaded search + +Since ripgrep-all is a wrapper around ripgrep, you can make use of various options [that LinuxHandbook has already covered][14]. + +One of those options is multi-threading. By default ripgrep chooses the thread count based on heuristics. And so, ripgrep-all does the same too. + +That doesn’t mean you can not specify them yourself! :) + +The option to do so is `-j`. Use it like so: + +``` +rga -j NUM-OF-THREADS +``` + +There isn’t a practical example to show this *reliably*, so I will leave this for you to test it yourself ;) + +#### Caching + +One of the main selling points of rga, besides supporting the vast number of file extensions, is that it efficiently caches data. + +As a default, depending on the OS, the following directories will store the cache generated by rga: + +* Linux: `~/.cache/rga` +* macOS: `~/Library/Caches/rga` + +I will first run the following command to remove my cache: + +``` +rm -rf ~/.cache/rga +``` + +Once the cache is cleared, I will run a simple query 2 times. I expect to see a performance improvement the second time. + +``` +time rga -i linux > /dev/null +time rga --rga-no-cache -i linux > /dev/null +``` + +![Automatic caching done by rga][15] + +I deliberately chose the pattern ‘linux’ as it is occurring a lot of times in ‘The Linux Command Line’ book’s PDF and also in my ‘.odt’ document as well as my database file. To check speed, I don’t need to check the output, so that is redirected to the ‘/dev/null’ file. + +I see that the first time the command is ran, it does not have a cache. But the second time running the same command yields a faster run. + +In the end, I also use the –rga-no-cache option, to disable the use of the cache, even if it is present. The result is similar to the first run of rga command. + +### Conclusion + +rga is the Swiss Army Knife of grep. It is one tool that can be used for almost any kind of file and it behaves similarly to grep, at least with the regex, less so with the options. + +But all in all, rga is one of the tools that I recommend you use. Do comment and share your experience/thoughts! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/ripgrep-all/ + +作者:[Pratham Patel][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/pratham/ +[b]: https://github.com/lkxed +[1]: https://github.com/phiresky/ripgrep-all +[2]: https://linuxhandbook.com/what-is-grep/ +[3]: https://itsfoss.com/pdfgrep/ +[4]: https://linuxhandbook.com/ripgrep/ +[5]: https://github.com/phiresky/ripgrep-all/releases +[6]: https://linuxhandbook.com/grep-command-examples/ +[7]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-33-19-800x197.webp +[8]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-33-43-800x242.webp +[9]: https://www.linuxcommand.org/tlcl.php +[10]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-36-50-800x239.webp +[11]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-37-21-800x181.webp +[12]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-37-40-800x161.webp +[13]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-38-01-800x305.webp +[14]: https://linuxhandbook.com/ripgrep +[15]: https://itsfoss.com/wp-content/uploads/2022/06/Screenshot-from-2022-06-27-22-39-32-800x468.webp From 1d14ae1f7d01ec8cf4819cfb1c694dcc38bd28ee Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 00:03:47 +0800 Subject: [PATCH 0174/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220628=20HandBrake-=20Free=20Tool=20for=20Converti?= =?UTF-8?q?ng=20Videos=20from=20Any=20Format.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...l for Converting Videos from Any Format.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md diff --git a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md new file mode 100644 index 0000000000..df407dd3a7 --- /dev/null +++ b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md @@ -0,0 +1,114 @@ +[#]: subject: "HandBrake: Free Tool for Converting Videos from Any Format" +[#]: via: "https://www.debugpoint.com/handbrake/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +HandBrake: Free Tool for Converting Videos from Any Format +====== +Learn about HandBrake, an excellent utility for converting videos from any format to the destination types. + +This article contains features, download instructions and a usage guide. + +### HandBrake + +In this age of social media, we all play around with videos, reels and, of course, the formats that come with it. So, if you are in a Linux platform or even in WIndows, you may use any other software to convert various videos for several platforms. But if you need a simple but feature-rich video converter that takes care of your all video formats from multiple sources, try HandBrake. + +#### Features + +HandBrake has a huge set of options that make it a unique tool. Firstly, the workflow is super easy. In fact, its just three steps: + +* Select a video +* Choose a target format +* Convert + +As you can see, if you are a novice user, it is super easy to work with this tool because the attributes of the target format (e.g. bit rate, dimensions) are based on the default preset. + +Secondly, if you want advanced editing, such as adding subtitles from the subtitle files while converting, it is also possible using this tool. + +In addition, you can also change the dimensions, flip the video, change resolutions, modify the aspect ratio, and crop. Moreover, a set of basic filter configurations such as Denoise and Sharpen can also be done. + +Moreover, adding Chapters, tags and audio tracks to your video files is always easy. + +Perhaps the vital feature of HandBrake is the availability of presets which cater to the modern needs of social media and streams. For example, the presets are aligned with streaming platforms and streaming devices such as: + +* Discord +* GMail +* Vimeo +* Amazon Fire Stick +* Apple Devices +* Chromecast +* Playstation +* Roku +* Xbox + +A pretty impressive list, isn’t it? Not only that, if you are a professional worker, it helps you define and create Queue for your conversions. The Queue feature allows you to batch convert multiple video files in your workflow. + +Finally, you can convert to MPEG-4 (mp4), Matroska (mkv) and WebM formats. + +![HandBrake with various features][1] + +### Download and Installation + +Downloading and installation of HandBrake is easy for any platform (Linux, Mac and Windows). The developers provide direct executables, which are free to download. + +Since the primary target audience of this portal is Linux users, we will talk about the installation of HandBrake in Linux. + +For Ubuntu, Linux Mint and all other distributions, the preferable method is Flatpak. You can [set up Flatpak][2] and then click the below button to install HandBrake: + +[Install HandBrake via Flathub][3] + +For Windows, macOS installer visit this page. + +One interesting feature is that you can use this application via the command line! That means you can further customize your workflow using the command line utility, which you can find [here][4]. + +### How to Use HandBrake to convert Videos? [Example] + +Since you installed it, let’s see how you can convert a sample video with just three steps. + +1. Open HandBrake and click on the “Open Source” button at the top toolbar. Select your video file. +2. Now, select the target file type from the Format dropdown. Make sure to check the destination folder (the default is Videos). +3. Finally, click on the Start button at the top toolbar to convert a video using HandBrake. + +![HandBrake Video Conversion in three simple steps][5] + +You can find a nice display on the conversion progress at the bottom of the window. + +![Encoding status][6] + +The above steps are the most basic ones. If you want further control over the video, you can change the options and also choose from a vast list of presets I explained earlier. + +### FAQ + +Yes, it is a free and open-source application, and you can download it for free. + +Yes, you can easily install HandBrake in macOS, Windows 10, and Windows 11. + +You can download HandBrake only from the official website https://handbrake.fr/ and no-other place. + +### Closing Notes + +Handbrake is one of the professional-grade free and open-source video encoders available today. It is a time-tested application used by millions of users daily. I hope this guide helps you to learn about this fantastic tool and get you started with your video projects. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/handbrake/ + +作者:[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/06/HandBrake-with-various-features.jpg +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://dl.flathub.org/repo/appstream/fr.handbrake.ghb.flatpakref +[4]: https://handbrake.fr/downloads2.php +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/HandBrake-Video-Conversion-in-three-simple-steps.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/Encoding-status.jpg From 6dd3d920a9409a3b4e326aca4b3d910b8cc440d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 29 Jun 2022 00:06:31 +0800 Subject: [PATCH 0175/3123] Update 20220628 HandBrake- Free Tool for Converting Videos from Any Format.md --- ...ndBrake- Free Tool for Converting Videos from Any Format.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md index df407dd3a7..c9fdf67a65 100644 --- a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md +++ b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md @@ -93,6 +93,8 @@ You can download HandBrake only from the official website https://handbrake.fr/ Handbrake is one of the professional-grade free and open-source video encoders available today. It is a time-tested application used by millions of users daily. I hope this guide helps you to learn about this fantastic tool and get you started with your video projects. +**The demo video is used from [Pexels – cottonbro][7]** + -------------------------------------------------------------------------------- via: https://www.debugpoint.com/handbrake/ @@ -112,3 +114,4 @@ via: https://www.debugpoint.com/handbrake/ [4]: https://handbrake.fr/downloads2.php [5]: https://www.debugpoint.com/wp-content/uploads/2022/06/HandBrake-Video-Conversion-in-three-simple-steps.jpg [6]: https://www.debugpoint.com/wp-content/uploads/2022/06/Encoding-status.jpg +[7]: https://www.pexels.com/video/hands-hand-table-colorful-3997786/ From 966d2c58f756284d0982d02f7d56a8724e50f6fa Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 00:15:53 +0800 Subject: [PATCH 0176/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220628=20Firefox=20102=20Release=20Lets=20You=20Di?= =?UTF-8?q?sable=20Download=20Panel=20and=20Improves=20Picture-in-Picture?= =?UTF-8?q?=20Mode.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...el and Improves Picture-in-Picture Mode.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md diff --git a/sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md b/sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md new file mode 100644 index 0000000000..8d2a260e47 --- /dev/null +++ b/sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md @@ -0,0 +1,75 @@ +[#]: subject: "Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode" +[#]: via: "https://news.itsfoss.com/firefox-102-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode +====== +Mozilla Firefox 102 release is here with some solid changes, and useful feature additions! + +![][1] + +A new Firefox version upgrade is here. While it may not be a major feature update like [Firefox 100][2], it includes some useful enhancements for a better browsing experience. + +Here’s what’s new: + +### Firefox 102: New Additions and Improvements + +With this release, you can finally disable the automatic opening of the download panel every time a new download starts. So, you won’t have too many windows crowding your screen. + +It also seems that they have added some refinements to the Picture-in-Picture feature with subtitles. You should have better support for it with more streaming platforms, including Disney+ Hotstar, HBO Max, SonyLIV, and a few others. + +![][3] + +Firefox 102 also improves security by moving audio decoding into a separate process with enhanced sandboxing. The process remains isolated, thus giving you more security. + +Additionally, there are some screen reader improvements on Windows. + +For **developers**, there are a couple of important changes that include: + +* Introducing support for [Transform streams][4] which also includes new interfaces. +* Support for [readable byte streams][5]. +* Removal of Firefox-only properly Window.sidebar. +* You can now filter style sheets in the Style Editor tab of our developer tools + +Firefox also adds a new enterprise policy adding a configuration setting that makes sure that the downloads that are meant to be opened are initially stored in a temporary folder. + +If the downloaded file is saved, it will be stored in the download folder. Mozilla explains more about it: + +> There is now an enterprise policy (`StartDownloadsInTempDirectory` ) and an about:config pref (`browser.download.start_downloads_in_tmp_dir` ) that will once again cause Firefox to initially put downloads in (a subfolder of) the OS temp folder, instead of the download folder configured in Firefox. Files opened from the “what should Firefox do with this file” dialog, or set to open in helper applications automatically, will stay in this folder. Files saved (not opened as previously mentioned) will still end up in the Firefox download folder. + +To learn more about the release, refer to the [full release notes][6]. + +### Download Firefox 102 + +You can download the latest Firefox 102 release from its official website or wait for the package update on your Linux distribution. + +In either case, you can always use the [Snap package][7] to get the latest update now. + +[Firefox 102 Download][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/firefox-102-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/06/firefox-102.jpg +[2]: https://news.itsfoss.com/firefox-100-release/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/firefox-102-pip.jpg +[4]: https://developer.mozilla.org/en-US/docs/Web/API/TransformStream +[5]: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API#bytestream-related_interfaces +[6]: https://www.mozilla.org/en-US/firefox/102.0/releasenotes/ +[7]: https://snapcraft.io/firefox +[8]: https://www.mozilla.org/en-US/firefox/ From 005a977382749d3ff40dccb81a486572cc0b81cf Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 29 Jun 2022 08:33:52 +0800 Subject: [PATCH 0177/3123] translated --- ...ube Videos with VLC -Because, Why Not--.md | 96 ------------------- ...ube Videos with VLC -Because, Why Not--.md | 96 +++++++++++++++++++ 2 files changed, 96 insertions(+), 96 deletions(-) delete mode 100644 sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md create mode 100644 translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md diff --git a/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md b/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md deleted file mode 100644 index 968ac998d6..0000000000 --- a/sources/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Download YouTube Videos with VLC (Because, Why Not?)" -[#]: via: "https://itsfoss.com/download-youtube-videos-vlc/" -[#]: author: "Community https://itsfoss.com/author/itsfoss/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Download YouTube Videos with VLC (Because, Why Not?) -====== - -[VLC][1] is one of the [most popular video players for Linux][2] and other platforms. - -It’s not just a video player. It provides a number of multimedia and network-related features among other things. You’ll be surprised to [learn what VLC is capable of][3]. - -I’ll demonstrate a simple VLC feature and that is to download YouTube videos with it. - -Yes. You can play YouTube videos in VLC and download them too. Let me show you how. - -### Download YouTube videos with VLC Media Player - -Now, there are ways to [download YouTube videos][4]. Use a browser extension or use dedicated websites or tools for it. - -But if you don’t want to use anything additional, the already installed VLC player can be used for this purpose. - -**Important:**Before copying the link from YouTube, make sure to choose desired video quality from the YouTube player because we will get the same quality in which the video was streaming while copying the link. - -#### Step 1: Get the Video link of your desired video - -You can use any of your favorite browsers and copy the video link from the address bar. - -![copy youtube link][5] - -#### Step 2: Paste copied Link to Network Stream - -The option of Network stream lies under Media which is the first option of our top menu bar. Just click on Media and you will get the option of “Open Network Stream”. You can also use the shortcut to open Network Stream CTRL + N. - -![click on media and select network stream][6] - -Now, you just have to paste copied YouTube video link and click on the play button. I know it just plays video in our VLC but there is a little extra step that will allow us to download currently streaming video. - -![paste video link][7] - -#### Step 3: Get Location Link from Codec Information - -Under the codec information prompt, we will get a location link for the currently playing video. To open the Codec Information prompt, you can use the shortcut CTRL + J or you’ll find the option for Codec Information under “Tools”. - -![click on tools and then codec information][8] - -It will bring detailed info about currently streaming video. But what we need is ‘Location’. You just have to copy the location link and 90% of our task is complete. - -![copy location link][9] - -#### Step 4: Paste Location Link to New Tab - -Open any of your favorite browsers and paste copied location link to the new tab and it will start playing the exact video in the browser. - -Now, right-click on playing video and you will get an option for “Save Video As”. - -![click on save][10] - -It will open the file manager and ask you whether you want to save this video locally or not. You can also rename that file as by default it will be named “videoplayback.mp4” - -![showing file in folder][11] - -### Conclusion - -If you have internet connection issues or if you want to save some video for future viewing, downloading the YouTube video makes sense. - -Of course, we don’t encourage piracy. This method is just for fair use please make sure that the creator of the video has allowed the video for fair usage and also make sure to give credits to the original owner of the video before using it somewhere else. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/download-youtube-videos-vlc/ - -作者:[Community][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/itsfoss/ -[b]: https://github.com/lkxed -[1]: https://www.videolan.org/vlc/ -[2]: https://itsfoss.com/video-players-linux/ -[3]: https://itsfoss.com/vlc-pro-tricks-linux/ -[4]: https://itsfoss.com/download-youtube-videos-ubuntu/ -[5]: https://itsfoss.com/wp-content/uploads/2022/06/copy-Youtube-link-800x190.jpg -[6]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-media-and-select-network-stream.png -[7]: https://itsfoss.com/wp-content/uploads/2022/06/paste-video-link.png -[8]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-tools-and-then-codec-information-800x249.png -[9]: https://itsfoss.com/wp-content/uploads/2022/06/copy-location-link.png -[10]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-save-800x424.jpg -[11]: https://itsfoss.com/wp-content/uploads/2022/06/showing-file-in-folder-800x263.png diff --git a/translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md b/translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md new file mode 100644 index 0000000000..ff97d493c8 --- /dev/null +++ b/translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md @@ -0,0 +1,96 @@ +[#]: subject: "Download YouTube Videos with VLC (Because, Why Not?)" +[#]: via: "https://itsfoss.com/download-youtube-videos-vlc/" +[#]: author: "Community https://itsfoss.com/author/itsfoss/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 VLC 下载 YouTube 视频(因为,为什么不呢?) +====== + +[VLC][1] 是 [Linux 和其他平台上最受欢迎的视频播放器][2]之一。 + +它不仅仅是一个视频播放器。它提供了许多多媒体和网络相关的功能。你会惊讶地[了解 VLC 的能力][3]。 + +我将演示一个简单的 VLC 功能,即使用它下载 YouTube 视频。 + +是的。你可以在 VLC 中播放 YouTube 视频并下载它们。让我告诉你怎么做。 + +### 使用 VLC 媒体播放器下载 YouTube 视频 + +现在,有一些方法可以[下载 YouTube 视频][4]。使用浏览器扩展或使用专门的网站或工具。 + +但是如果你不想使用任何额外的东西,已经安装的 VLC 播放器可以用于此目的。 + +**重要提示:**在从 YouTube 复制链接之前,请确保从 YouTube 播放器中选择所需的视频质量,因为我们将获得与复制链接时流式传输视频相同的质量。 + +#### 步骤 1:获取所需视频的视频链接 + +你可以使用任何你喜欢的浏览器并从地址栏中复制视频链接。 + +![copy youtube link][5] + +#### 步骤 2:将复制的链接粘贴到网络流 + +网络流选项位于媒体下方,这是我们顶部菜单栏的第一个选项。只需单击媒体,你将获得“打开网络流”选项。你也可以使用快捷方式打开网络流 CTRL + N。 + +![click on media and select network stream][6] + +现在,你只需粘贴复制的 YouTube 视频链接,然后单击播放按钮。我知道它只是在我们的 VLC 中播放视频,但还有一点额外的步骤可以让我们下载当前的流媒体视频。 + +![paste video link][7] + +#### 步骤 3:从编解码器信息中获取位置链接 + +在编解码器信息提示下,我们会得到当前播放视频的位置链接。要打开编解码器信息提示,你可以使用快捷键 CTRL + J 或者你会在“工具”下找到编解码器信息选项。 + +![click on tools and then codec information][8] + +它将带来有关当前流媒体视频的详细信息。但我们需要的是“位置”。你只需复制位置链接,我们的任务就完成了 90%。 + +![copy location link][9] + +#### 步骤 4:将位置链接粘贴到新选项卡 + +打开任何你喜欢的浏览器并将复制的位置链接粘贴到新选项卡,它将开始在浏览器中播放确切的视频。 + +现在,右键单击播放视频,你将看到“将视频另存为”的选项。 + +![click on save][10] + +它将打开文件管理器并询问你是否要在本地保存此视频。你还可以重命名该文件,默认情况下它将被命名为 “videoplayback.mp4” + +![showing file in folder][11] + +### 结论 + +如果你有互联网连接问题,或者如果你想保存一些视频以供将来观看,下载 YouTube 视频是有意义的。 + +当然,我们不鼓励盗版。此方法仅用于合理使用,请确保视频的创建者已允许该视频进行合理使用,并确保在将其用于其他地方之前将其归属于视频的原始所有者。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/download-youtube-videos-vlc/ + +作者:[Community][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/itsfoss/ +[b]: https://github.com/lkxed +[1]: https://www.videolan.org/vlc/ +[2]: https://itsfoss.com/video-players-linux/ +[3]: https://itsfoss.com/vlc-pro-tricks-linux/ +[4]: https://itsfoss.com/download-youtube-videos-ubuntu/ +[5]: https://itsfoss.com/wp-content/uploads/2022/06/copy-Youtube-link-800x190.jpg +[6]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-media-and-select-network-stream.png +[7]: https://itsfoss.com/wp-content/uploads/2022/06/paste-video-link.png +[8]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-tools-and-then-codec-information-800x249.png +[9]: https://itsfoss.com/wp-content/uploads/2022/06/copy-location-link.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/click-on-save-800x424.jpg +[11]: https://itsfoss.com/wp-content/uploads/2022/06/showing-file-in-folder-800x263.png From 9dbc1e6bf91b6231e6e8a68792997c7d67248b77 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 29 Jun 2022 08:36:36 +0800 Subject: [PATCH 0178/3123] translating --- ...o- An Unofficial Microsoft To-Do Desktop Client for Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md b/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md index 6909f25ddd..02984dda96 100644 --- a/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md +++ b/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/kuro-to-do-app/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f2a3b8b5b2b519d735479b720a5746670559ea9c Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 09:54:06 +0800 Subject: [PATCH 0179/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220628=20Notes=20on=20running=20containers=20with?= =?UTF-8?q?=20bubblewrap.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s on running containers with bubblewrap.md | 480 ++++++++++++++++++ 1 file changed, 480 insertions(+) create mode 100644 sources/tech/20220628 Notes on running containers with bubblewrap.md diff --git a/sources/tech/20220628 Notes on running containers with bubblewrap.md b/sources/tech/20220628 Notes on running containers with bubblewrap.md new file mode 100644 index 0000000000..56e97e8a95 --- /dev/null +++ b/sources/tech/20220628 Notes on running containers with bubblewrap.md @@ -0,0 +1,480 @@ +[#]: subject: "Notes on running containers with bubblewrap" +[#]: via: "https://jvns.ca/blog/2022/06/28/some-notes-on-bubblewrap/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Notes on running containers with bubblewrap +====== +Hello! About a year ago I got mad about Docker container startup time. This was +because I was building an [nginx playground][1] +where I was starting a new “container” on every HTTP request, and so for it to +feel reasonably snappy, nginx needed to start quickly. + +Also, I was running this project on a pretty small cloud machine (256MB RAM), a +small CPU, so I really wanted to avoid unnecessary overhead. + +I’ve been looking for a way to run containers faster since then, but I couldn’t +find one until last week when I discovered +[bubblewrap][2]!! It’s very fast and I +think it’s super cool, but I also ran into a bunch of fun problems that I +wanted to write down for my future self. + +#### some disclaimers + +* I’m not sure if the way I’m using bubblewrap in this post is maybe not how it’s intended to be used +* there are a lot of sharp edges when using bubblewrap in this way, you need to +think a lot about Linux namespaces and how containers work +* bubblewrap is a security tool but I am not a security person and I am only +doing this for weird tiny projects. you should definitely not take security +advice from me. + +Okay, all of that said, let’s talk about I’m trying to use bubblewrap to run +containers fast and in a relatively secure way :) + +#### Docker containers take ~300ms to start on my machine + +I ran a quick benchmark to see how long a Docker container takes to run a +simple command (`ls` ). For both Docker and Podman, it’s about 300ms. + +``` +$ time docker run --network none -it ubuntu:20.04 ls / > /dev/null +Executed in 378.42 millis +$ time podman run --network none -it ubuntu:20.04 ls / > /dev/null +Executed in 279.27 millis +``` + +Almost all of this time is overhead from docker and podman – just running `ls` +by itself takes about 3ms: + +``` +$ time ls / > /dev/null +Executed in 2.96 millis +``` + +I want to stress that, while I’m not sure exactly what the slowest part of +Docker and podman startup time is (I spent 5 minutes trying to profile them and +gave up), I’m 100% sure it’s something important. + +The way we’re going to run containers faster with bubblewrap has a lot of +limitations and it’s a lower level interface which is a lot trickier to use. + +#### goal 1: containers that start quickly + +I felt like it *should* be possible to have containers that start essentially +instantly or at least in less than 5ms. My thought process: + +* creating a new namespace with `unshare` is basically instant +* [containers are basically just a bunch of namespaces][3] +* what’s the problem? + +#### container startup time is (usually) not that important + +Most of the time when people are using containers, they’re running some +long-running process inside the container like a webserver, so it doesn’t +really matter if it takes 300ms to start. + +So it makes sense to me that there aren’t a lot of container tools that +optimize for startup time. But I still wanted to optimize for startup time :) + +#### goal 2: run the containers as an unprivileged user + +Another goal I had was to be able to run my containers as an unprivileged user +instead of root. + +I was surprised the first time I learned that Docker actually runs containers +as root – even though I run `docker run ubuntu:20.04` as an unprivileged user (`bork` ), that +message is actually sent to a daemon running as root, and the Docker container +process itself also runs as root (albeit a `root` that’s stripped of all its +capabilities). + +That’s fine for Docker (they have lots of very smart people making sure that +they get it right!), but if I’m going to do container stuff *without* using +Docker (for the speed reasons mentioned above), I’d rather not do it as root to +keep everything a bit more secure. + +#### podman can run containers as an non-root user + +Before we start talking about how to do weird stuff with bubblewrap, I want to +quickly talk about a much more normal tool to run containers: podman! + +Podman, unlike Docker, can run containers as an unprivileged user! + +If I run this from my normal user: + +``` +$ podman run -it ubuntu:20.04 ls +``` + +it doesn’t secretly run as root behind the scenes! It just starts the container +as my normal user, and then uses something called “user namespaces” so that +*inside the container* I appear to be root. + +The other cool thing aboud podman is that it has exactly the same interface as +Docker, so you can just take a Docker command and replace `docker` with +`podman` and it’ll Just Work. I’ve found that sometimes I need to do some extra +work to get podman to work in practice, but it’s still pretty nice that it has +the same command line interface. + +This “run containers as a non-root user” feature is normally called “rootless +containers”. (I find that name kind of counterintuitive, but that’s what people call it) + +#### failed attempt 1: write my own tool using runc + +``` +runc +``` + +I knew that Docker and podman use +[runc][4] under the hood, so I thought – +well, maybe I can just use `runc` directly to make my own tool that starts +containers faster than Docker does! + +I tried to do this 6 months ago and I don’t remember most of the details, but basically +I spent 8 hours working on it, got frustrated because I couldn’t get anything +to work, and gave up. + +One specific detail I remember struggling with was setting up a working `/dev` +for my programs to use. + +#### enter bubblewrap + +Okay, that was a very long preamble so let’s get to the point! Last week, I +discovered a tool called `bubblewrap` that was basically exactly the thing I +was trying to build with `runc` in my failed attempt, except that it actually +works and has many more features and it’s built by people who know things about +security! Hooray! + +The interface to bubblewrap is pretty different than the interface to Docker – +it’s much lower level. There’s no concept of a container image – instead you +map a bunch of directories on your host to directories in the container. + +For example, here’s how to run a container with the same root directory as your +host operating system, but with only read access to that root directory, and only write access to `/tmp`. + +``` +bwrap \ + --ro-bind / / \ + --bind /tmp /tmp \ + --proc /proc --dev /dev \ + --unshare-pid \ + --unshare-net \ + bash +``` + +For example, you could imagine running some untrusted process under bubblewrap +this way and then putting all the files you the process to access in `/tmp`. + +#### bubblewrap runs containers as an unprivileged (non-root) user + +Like podman, bubblewrap runs containers as a non-root user, using user +namespaces. It can also run containers as root, but in this post we’re just +going to be talking about using it as an unprivileged user. + +#### bubblewrap is fast + +Let’s see how long it takes to run `ls` in a bubblewrap container! + +``` +$ time bwrap --ro-bind / / --proc /proc --dev /dev --unshare-pid ls / +Executed in 8.04 millis +``` + +That’s a big difference! 8ms is a lot faster than 279ms. + +Of course, like we said before, the reason bubblewrap is faster is that it does +a lot less. So let’s talk about some things bubblewrap doesn’t do. + +#### some things bubblewrap doesn’t do + +Here are some things that Docker/podman do that bubblewrap doesn’t do: + +* set up overlayfs mounts for you, so that your changes to the filesystem don’t affect the base image +* set up networking bridges so that you can connect to a webserver inside the container +* probably a bunch more stuff that I’m not thinking of + +In general, bubblewrap is a much lower level tool than something like Docker. + +Also, bubblewrap seems to have pretty different goals than Docker – the README +seems to say that it’s intended as a tool for sandboxing desktop software (I +think it comes from [flatpak][5]). + +#### running a container image with bubblewrap + +I couldn’t find instructions for running a Docker container image with +bubblewrap, so here they are. Basically I just use Docker to download the +container image and put it into a directory and then run it with `bwrap` : + +There’s also a tool called [bwrap-oci][6] which looks cool but I +couldn’t get it to compile. + +``` +mkdir rootfs +docker export $(docker create frapsoft/fish) | tar -C rootfs -xf - +bwrap \ + --bind $PWD/rootfs / \ + --proc /proc --dev /dev \ + --uid 0 \ + --unshare-pid \ + --unshare-net \ + fish +``` + +One important thing to note is that this doesn’t create a temporary overlay +filesystem for the container’s file writes, so it’ll let the container edit +files in the image. + +I wrote a post about [overlay filesystems][7] if +you want to see how you could do that yourself though. + +#### running “containers” with bubblewrap isn’t the same as with podman + +I just gave an example of how to “run a container” with bubblewrap, and you +might think “cool, this is just like podman but faster!”. It is not, and it’s +actually unlike using podman in even more ways than I expected. + +I put “container” in scare quotes because there are two ways to define “container”: + +* something that implements [OCI runtime specification][8] +* any way of running a process in a way that’s somehow isolated from the host system + +bubblewrap is a “container” tool in the second sense. It definitely provides +isolation, and it does that using the same features – Linux namespaces – as +Docker. + +But it’s not a container tool in the first sense. And it’s a lower level tool +so you can get into a bunch of weird states and you really need to think about +all the weird details of how container work while using it. + +For the rest of the post I’m going to talk about some weird things that can +happen with bubblewrap that would not happen with podman/Docker. + +#### weird thing 1: processes that don’t exist + +Here’s an example of a weird situation I got into with bubblewrap that confused +me for a minute: + +``` +$ bwrap --ro-bind / / --unshare-all bash +$ ps aux +... some processes +root 390073 0.0 0.0 2848 124 pts/9 S 14:28 0:00 bwrap --ro-bind / / --unshare-all --uid 0 bash +... some other processes +$ kill 390073 +bash: kill: (390073) - No such process +$ ps aux | grep 390073 +root 390073 0.0 0.0 2848 124 pts/9 S 14:28 0:00 bwrap --ro-bind / / --unshare-all --uid 0 bash +``` + +Here’s what happened + +* I started a bash shell inside bubblewrap +* I ran `ps aux`, and saw a process with PID `390073` +* I try to kill the process. It fails with the error `no such process`. What? +* I ran `ps aux`, and still see the process with PID `390073` + +What’s going on? Why doesn’t the process `390073` exist, even though `ps` says it does? Isn’t that impossible? + +Well, the problem is that `ps` doesn’t actually list all the processes in your +current PID namespace. Instead, it iterates through all the entries in `/proc` +and prints those out. Usually, what’s in `/proc` is actually the same as the processes on your system. + +But with Linux containers these things can get out of sync. What’s happening in +this example is that we have the `/proc` from the host PID namespace, but those +aren’t actually the processes that we have access to in our PID namespace. + +Passing `--proc /proc` to bwrap fixes the issue – `ps` then actually lists the correct processes. + +``` +$ bwrap --ro-bind / / --unshare-all --dev /dev --proc /proc ps aux +USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND +bork 1 0.0 0.0 3644 136 ? S+ 16:21 0:00 bwrap --ro-bind / / --unshare-all --dev /dev --proc /proc ps au +bork 2 0.0 0.0 21324 1552 ? R+ 16:21 0:00 ps aux +``` + +Just 2 processes! Everything is normal! + +#### weird thing 2: trying to listen on port 80 + +Passing `--uid 0` to bubblewrap makes the user inside the container `root`. You +might think that this means that the root user has administrative privileges +inside the container, but that’s not true! + +For example, let’s try to listen on port 80: + +``` +$ bwrap --ro-bind / / --unshare-all --uid 0 nc -l 80 +nc: Permission denied +``` + +What’s going on here is that the new root user actually doesn’t have the +**capabilities** it needs to listen on port 80. (you need special permissions +to listen on ports less than 1024, and 80 is less than 1024) + +There’s actually a capability specifically for listening on privileged ports +called `CAP_NET_BIND_SERVICE`. + +So to fix this all we need to do is to tell bubblewrap to give our user that +capability. + +``` +$ bwrap --ro-bind / / --unshare-all --uid 0 --cap-add cap_net_bind_service nc -l 80 +(no output, success!!!) +``` + +This works! Hooray! + +#### finding the right capabilities is pretty annoying + +bubblewrap doesn’t give out any capabilities by default, and I find that +figuring out all the right capabilities and adding them manually is kind of +annoying. Basically my process is + +* run the thing +* see what fails +* read `man capabilities` to figure out what capabilities I’m missing +* add the capability with `--cap-add` +* repeat until everything is running + +But that’s the price I pay for wanting things to be fast I guess :) + +#### weird thing 2b: --dev /dev makes listening on privileged ports not work + +``` +--dev /dev +``` + +One other strange thing is that if I take the exact same command above (which +worked!) and add `--dev /dev` (to set up the `/dev/` directory), it causes it to not work again: + +``` +$ bwrap --ro-bind / / --dev /dev --unshare-all --uid 0 --cap-add cap_net_bind_service nc -l 80 +nc: Permission denied +``` + +I think this might be a bug in bubblewrap, but I haven’t mustered the courage +to dive into the bubblewrap code and start investigating yet. Or maybe there’s +something obvious I’m missing! + +#### weird thing 3: UID mappings + +Another slightly weird thing was – I tried to run `apt-get update` inside a bubblewrap Ubuntu container and everything went very poorly. + +Here’s how I ran `apt-get update` inside the Ubuntu container: + +``` +mkdir rootfs +docker export $(docker create ubuntu:20.04) | tar -C rootfs -xf - +bwrap \ + --bind $PWD/rootfs / \ + --proc /proc\ + --uid 0 \ + --unshare-pid \ + apt-get update +``` + +And here are the error messages: + +``` +E: setgroups 65534 failed - setgroups (1: Operation not permitted) +E: setegid 65534 failed - setegid (22: Invalid argument) +E: seteuid 100 failed - seteuid (22: Invalid argument) +E: setgroups 0 failed - setgroups (1: Operation not permitted) +.... lots more similar errors +``` + +At first I thought “ok, this is a capabilities problem, I need to set +`CAP_SETGID` or something to give the container permission to change groups. But I did that and it didn’t help at all! + +I think what’s going on here is a problem with UID maps. What are UID maps? +Well, every time you run a container using “user namespaces” (which podman is +doing), it creates a mapping of UIDs inside the container to UIDs on the host. + +Let’s look that the UID maps! Here’s how do that: + +```` +[[email protected]][9]:/# cat /proc/self/uid_map +0 1000 1 +[[email protected]][10]:/# cat /proc/self/gid_map +1000 1000 1 + +``` +This is saying that user 0 in the container is mapped to user 1000 on in the +host, and group 1000 is mapped to group 1000. (My normal user's UID/GID is 1000, so this makes sense). You can find out +about this `uid_map` file in `man user_namespaces`. + +All other users/groups that aren't 1000 are mapped to user 65534 by default, according +to `man user_namespaces`. + +### what's going on: non-mapped users can't be used + +The only users and groups that have been mapped are `0` and `1000`. But `man user_namespaces` says: + +> After the uid_map and gid_map files have been written, only the mapped values may be used in system calls that change user and group IDs. + +`apt` is trying to use users 100 and 65534. Those aren't on the list of mapped +users! So they can't be used! + +This works fine in podman, because podman sets up its UID and GID mappings differently: +``` + +$ podman run -it ubuntu:20.04 bash +[[email protected]][11]:/# cat /proc/self/uid_map +0 1000 1 +1 100000 65536 +[[email protected]][12]:/# cat /proc/self/gid_map +0 1000 1 +1 100000 65536 +``` + +All the users get mapped, not just 1000. + +I don’t quite know how to fix this, but I think it’s probably possible in +bubblewrap to set up the uid mappings the same way as podman does – there’s an +[issue about it here that links to a workaround][13]. + +But this wasn’t an actual problem I was trying to solve so I didn’t dig further +into it. + +#### it works pretty great! + +I’ve talked about a bunch of issues, but the things I’ve been trying to do in bubblewrap +have been very constrained and it’s actually been pretty simple. For example, I +was working on a git project where I really just want to run `git` inside a +container and map a git repository from the host. + +That’s very simple to get to work with bubblewrap! There were basically no weird problems! +It’s really fast! + +So I’m pretty excited about this tool and I might use it for more stuff in the +future. + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/06/28/some-notes-on-bubblewrap/ + +作者:[Julia Evans][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://jvns.ca/ +[b]: https://github.com/lkxed +[1]: https://jvns.ca/blog/2021/09/24/new-tool--an-nginx-playground/ +[2]: https://github.com/containers/bubblewrap +[3]: https://jvns.ca/blog/2016/10/10/what-even-is-a-container/ +[4]: https://github.com/opencontainers/runc +[5]: https://flatpak.org/ +[6]: https://github.com/projectatomic/bwrap-oci +[7]: https://jvns.ca/blog/2019/11/18/how-containers-work--overlayfs/ +[8]: https://opencontainers.org/about/overview/ +[9]: https://jvns.ca/cdn-cgi/l/email-protection +[10]: https://jvns.ca/cdn-cgi/l/email-protection +[11]: https://jvns.ca/cdn-cgi/l/email-protection +[12]: https://jvns.ca/cdn-cgi/l/email-protection +[13]: https://github.com/containers/bubblewrap/issues/468 From 2be608f7f019d6fafa0b875c9dff6cea8fa4967e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 29 Jun 2022 09:54:35 +0800 Subject: [PATCH 0180/3123] RP @lkxed https://linux.cn/article-14772-1.html --- ...chronous Messaging for Seamless Systems.md | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) rename {translated/tech => published}/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md (83%) diff --git a/translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/published/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md similarity index 83% rename from translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md rename to published/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md index e61f4f1829..3882caa3a3 100644 --- a/translated/tech/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md +++ b/published/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md @@ -3,42 +3,44 @@ [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14772-1.html" Apache Kafka:为“无缝系统”提供异步消息支持 ====== -Apache Kafka 是最流行的开源消息代理之一。它已经成为了大数据操作的重要组成部分,你能够在几乎所有的微服务环境中找到它。本文对 Apache Kafka 进行了简要介绍,并提供了一个案例来展示它的使用方式。 -![][1] +> Apache Kafka 是最流行的开源消息代理之一。它已经成为了大数据操作的重要组成部分,你能够在几乎所有的微服务环境中找到它。本文对 Apache Kafka 进行了简要介绍,并提供了一个案例来展示它的使用方式。 + +![](https://img.linux.net.cn/data/attachment/album/202206/29/094326fbo6zzsrxiava661.jpg) 你有没有想过,电子商务平台是如何在处理巨大的流量时,做到不会卡顿的呢?有没有想过,OTT 平台是如何在同时向数百万用户交付内容时,做到平稳运行的呢?其实,关键就在于它们的分布式架构。 -采用分布式架构设计的系统由多个功能组件组成。这些功能组件通常分布在许多个机器上,它们通过网络,异步地交换消息,从而实现相互协作。正是由于异步消息的存在,组件之间才能实现可伸缩、无阻塞的通信,整个系统才能够平稳运行。 +采用分布式架构设计的系统由多个功能组件组成。这些功能组件通常分布在多个机器上,它们通过网络,异步地交换消息,从而实现相互协作。正是由于异步消息的存在,组件之间才能实现可伸缩、无阻塞的通信,整个系统才能够平稳运行。 ### 异步消息 异步消息的常见特性有: -* 消息的生产者和消费者都不知道彼此的存在。它们在不知道其他对象的情况下,加入和离开系统。 -* 消息代理充当了生产者和消费者之间的中介。 -* 生产者把每条消息,都与一个“主题”topic相关联。每个主题只是一个简单的字符串。 -* 一个生产者可以把消息发往多个主题,不同生产者也可以把消息发送给同一主题。 +* 消息的生产者producer消费者consumer都不知道彼此的存在。它们在不知道对方的情况下,加入和离开系统。 +* 消息代理broker充当了生产者和消费者之间的中介。 +* 生产者把每条消息,都与一个“主题topic”相关联。主题是一个简单的字符串。 +* 生产者可以在多个主题上发送消息,不同的生产者也可以在同一主题上发送消息。 * 消费者向代理订阅一个或多个主题的消息。 * 生产者只将消息发送给代理,而不发送给消费者。 * 代理会把消息发送给订阅该主题的所有消费者。 +* 代理将消息传递给针对该主题注册的所有消费者。 * 生产者并不期望得到消费者的任何回应。换句话说,生产者和消费者不会相互阻塞。 -市场上的消息代理有很多,而 Apache Kafka 是其中最受欢迎的一种(之一)。 +市场上的消息代理有很多,而 Apache Kafka 是其中最受欢迎的之一。 ### Apache Kafka -Apache Kafka 是一个支持流处理的、开源的分布式消息系统,它由 Apache 软件基金会开发。在架构上,它是多个代理组成的集群,这些代理间通过 Apache ZooKeeper 服务来协调。在接收、持久化和发送消息时,这些代理共享集群上的负载。 +Apache Kafka 是一个支持流式处理的、开源的分布式消息系统,它由 Apache 软件基金会开发。在架构上,它是多个代理组成的集群,这些代理间通过 Apache ZooKeeper 服务来协调。在接收、持久化和发送消息时,这些代理分担集群上的负载。 #### 分区 -Kafka 将消息写入称为“分区”partitions的桶中。一个特定分区只保存一个主题上的消息。例如,Kafka 会把 `heartbeats` 主题上的消息写入名为 “heartbeats-0” 的分区(假设它是个单分区主题),这个过程和生产者无关。 +Kafka 将消息写入称为“分区partition”的桶中。一个特定分区只保存一个主题上的消息。例如,Kafka 会把 `heartbeats` 主题上的消息写入名为 `heartbeats-0` 的分区(假设它是个单分区主题),这个过程和生产者无关。 ![图 1:异步消息][2] @@ -50,21 +52,21 @@ Kafka 将消息写入称为“分区”partitions的桶中 #### 领导者和同步副本 -Kafka 在(由多个代理组成的)集群中维护了多个分区。其中,负责维护分区的那个代理被称为“领导者”leader。只有领导者能够在它的分区上接收和发送消息。 +Kafka 在(由多个代理组成的)集群中维护了多个分区。其中,负责维护分区的那个代理被称为“领导者leader”。只有领导者能够在它的分区上接收和发送消息。 可是,万一分区的领导者发生故障了,又该怎么办呢?为了确保业务连续性,每个领导者(代理)都会把它的分区复制到其他代理上。此时,这些其他代理就称为该分区的同步副本in-sync-replicas(ISR)。一旦分区的领导者发生故障,ZooKeeper 就会发起一次选举,把选中的那个同步副本任命为新的领导者。此后,这个新的领导者将承担该分区的消息接受和发送任务。管理员可以指定分区需要维护的同步副本的大小。 -![图 3:命令行生产者][4] +![图 3:生产者命令行工具][4] #### 消息持久化 代理会将每个分区都映射到一个指定的磁盘文件,从而实现持久化。默认情况下,消息会在磁盘上保留一个星期。当消息写入分区后,它们的内容和顺序就不能更改了。管理员可以配置一些策略,如消息的保留时长、压缩算法等。 -![图 4:命令行消费者][5] +![图 4:消费者命令行工具][5] #### 消费消息 -与大多数其他消息系统不同,Kafka 不会主动将消息发送给消费者。相反,消费者应该监听主题,并主动读取消息。一个消费者可以某个主题的多个分区中读取消息。多个消费者也可以读取来自同一个分区的消息。Kafka 保证了同一条消息不会被同一个消费者重复读取。 +与大多数其他消息系统不同,Kafka 不会主动将消息发送给消费者。相反,消费者应该监听主题,并主动读取消息。一个消费者可以从某个主题的多个分区中读取消息。多个消费者也可以读取来自同一个分区的消息。Kafka 保证了同一条消息不会被同一个消费者重复读取。 Kafka 中的每个消费者都有一个组 ID。那些组 ID 相同的消费者们共同组成了一个消费者组。通常,为了从 N 个主题分区读取消息,管理员会创建一个包含 N 个消费者的消费者组。这样一来,组内的每个消费者都可以从它的指定分区中读取消息。如果组内的消费者比可用分区还要多,那么多出来的消费者就会处于闲置状态。 @@ -116,9 +118,9 @@ listeners=PLAINTEXT://:9092 上述命令还同时指定了复制因子replication factor,它的值不能大于集群中代理的数量。我们使用的是单代理集群,因此,复制因子只能设置为 1。 -当主题创建完成后,生产者和消费者就可以在上面交换消息了。Kafka 的发行版内附带了命令行工具生产者和消费者,供测试时用。 +当主题创建完成后,生产者和消费者就可以在上面交换消息了。Kafka 的发行版内附带了生产者和消费者的命令行工具,供测试时用。 -打开第三个终端,运行下面的命令,启动命令行生产者: +打开第三个终端,运行下面的命令,启动生产者: ``` ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-1 @@ -126,7 +128,7 @@ listeners=PLAINTEXT://:9092 上述命令显示了一个提示符,我们可以在后面输入简单文本消息。由于我们指定的命令选项,生产者会把 `topic-1` 上的消息,发送到运行在本机的 9092 端口的 Kafka 中。 -打开第四个终端,运行下面的命令,启动命令行消费者: +打开第四个终端,运行下面的命令,启动消费者: ``` ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-1 –-from-beginning @@ -146,7 +148,7 @@ listeners=PLAINTEXT://:9092 ![图 5:基于 Kafka 的架构][6] -在这种架构下,客车上的设备扮演了消息生产者的角色。它们会周期性地把当前位置发送到 Kafka 的 `abc-bus-location` 主题上。ABC 公司选择以客车的行程码trip code作为消息键,以处理来自不同客车的消息。例如,对于从 Bengaluru 到 Hubballi 的客车,它的行程码就会是 `BLRHL003`,那么在这段旅程中,对于所有来自该客车的消息,它们的消息键都会是 `BLRHL003`。 +在这种架构下,客车上的设备扮演了消息生产者的角色。它们会周期性地把当前位置发送到 Kafka 的 `abc-bus-location` 主题上。ABC 公司选择以客车的行程编号trip code作为消息键,以处理来自不同客车的消息。例如,对于从 Bengaluru 到 Hubballi 的客车,它的行程编号就会是 `BLRHL003`,那么在这段旅程中,对于所有来自该客车的消息,它们的消息键都会是 `BLRHL003`。 仪表盘应用扮演了消息消费者的角色。它在代理上注册了同一个主题 `abc-bus-location`。如此,这个主题就成为了生产者(客车)和消费者(仪表盘)之间的虚拟通道。 @@ -166,7 +168,7 @@ listeners=PLAINTEXT://:9092 ##### Java 生产者 -下面的 `Fleet` 类模拟了在 ABC 公司的 6 辆客车上运行的 Kafka 生产者应用。它会把位置更新发送到指定代理的 `abc-bus-location` 主题上。请注意,简单起见,主题名称、消息键、消息内容和代理地址等,都在代码里写死了。 +下面的 `Fleet` 类模拟了在 ABC 公司的 6 辆客车上运行的 Kafka 生产者应用。它会把位置更新发送到指定代理的 `abc-bus-location` 主题上。请注意,简单起见,主题名称、消息键、消息内容和代理地址等,都在代码里硬编码的。 ``` public class Fleet { @@ -205,7 +207,7 @@ public class Fleet { ##### Java 消费者 -下面的 `Dashboard` 类实现了一个 Kafka 消费者应用,运行在 ABC 公司的操作中心。它会监听 `abc-bus-location` 主题,并且它的消费者组 ID 是 `abc-dashboard`。当收到消息后,它会立即显示来自客车的详细位置信息。我们本该配置这些详细位置信息,但简单起见,它们也是在代码里写死的: +下面的 `Dashboard` 类实现了一个 Kafka 消费者应用,运行在 ABC 公司的操作中心。它会监听 `abc-bus-location` 主题,并且它的消费者组 ID 是 `abc-dashboard`。当收到消息后,它会立即显示来自客车的详细位置信息。我们本该配置这些详细位置信息,但简单起见,它们也是在代码里硬编码的: ``` public static void main(String[] args) { @@ -241,7 +243,7 @@ public static void main(String[] args) { ##### 依赖 -为了编译和运行这些代码,我们需要 JDK 8 及以上版本。看到下面的 `pom.xml` 文件中的 Maven 依赖了吗?它们会把所需的 Kafka 客户端库,下载并添加到类路径中: +为了编译和运行这些代码,我们需要 JDK 8 及以上版本。看到下面的 `pom.xml` 文件中的 Maven 依赖了吗?它们会把所需的 Kafka 客户端库下载并添加到类路径中: ``` @@ -283,7 +285,7 @@ via: https://www.opensourceforu.com/2021/11/apache-kafka-asynchronous-messaging- 作者:[Krishna Mohan Koyya][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/) 荣誉推出 From 025d4c2a55885e03b54b778420daa43a5259e2f2 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 29 Jun 2022 10:12:09 +0800 Subject: [PATCH 0181/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20210101=20Djinn-=20A=20Code=20Generator=20and=20Templat?= =?UTF-8?q?ing=20Language=20Inspired=20by=20Jinja2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Templating Language Inspired by Jinja2.md | 261 ----------------- ... Templating Language Inspired by Jinja2.md | 265 ++++++++++++++++++ 2 files changed, 265 insertions(+), 261 deletions(-) delete mode 100644 sources/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md create mode 100644 translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md diff --git a/sources/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md b/sources/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md deleted file mode 100644 index f5849ac6b2..0000000000 --- a/sources/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md +++ /dev/null @@ -1,261 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (hanszhao80) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Djinn: A Code Generator and Templating Language Inspired by Jinja2) -[#]: via: (https://theartofmachinery.com/2021/01/01/djinn.html) -[#]: author: (Simon Arneaud https://theartofmachinery.com) - -Djinn: A Code Generator and Templating Language Inspired by Jinja2 -====== - -Code generators can be useful tools. I sometimes use the command line version of [Jinja2][1] to generate highly redundant config files and other text files, but it’s feature-limited for transforming data. Obviously the author of Jinja2 thinks differently, but I wanted something like list comprehensions or D’s composable range algorithms. - -I decided to make a tool that’s like Jinja2, but lets me generate complex files by transforming data with range algorithms. The idea was dead simple: a templating language that gets rewritten directly to D code. That way it supports everything D does, simply because it _is_ D. I wanted a standalone code generator, but thanks to [D’s `mixin` feature][2], the same templating language works as an embedded templating language (for HTML in a web app, for example). (For more on that trick, see [this post about translating Brainfuck to D to machine code all at compile time using `mixin`s][3].) - -As usual, [it’s on GitLab][4]. [The examples in this post can be found there, too.][5] - -### Hello world example - -Here’s an example to demonstrate the idea: - -``` -Hello [= retro("dlrow") ]! -[: enum one = 1; :] -1 + 1 = [= one + one ] -``` - -`[= some_expression ]` is like `{{ some_expression }}` in Jinja2, and it renders a value to the output. `[: some_statement; :]` is like `{% some_statement %}` and causes full code statements to be executed. I changed the syntax because D also uses curly braces a lot, and mixing the two made templates hard to read. (There are also special non-D directives, like `include`, that get wrapped in `[<` and `>]`.) - -If you save the above to a file called `hello.txt.dj` and run the `djinn` command line tool against it, you’ll get a file called `hello.txt` containing what you might guess: - -``` -Hello world! -1 + 1 = 2 -``` - -If you’ve used Jinja2, you might be wondering what happened to the second line. Djinn has a special rule that simplifies formatting and whitespace handling: if a source line contains `[:` statements or `[<` directives but doesn’t contain any non-whitespace output, the whole line is ignored for output purposes. Blank lines are still rendered. - -### Generating data - -Okay, now for something a bit more practical: generating CSV data. - -``` -x,f(x) -[: import std.mathspecial; -foreach (x; iota(-1.0, 1.0, 0.1)) :] -[= "%0.1f,%g", x, normalDistribution(x) ] -``` - -A `[=` and `]` pair can contain multiple expressions separated by commas. If the first expression is a double-quoted string, it’s interpreted as a [format string][6]. Here’s the output: - -``` -x,f(x) --1.0,0.158655 --0.9,0.18406 --0.8,0.211855 --0.7,0.241964 --0.6,0.274253 --0.5,0.308538 --0.4,0.344578 --0.3,0.382089 --0.2,0.42074 --0.1,0.460172 -0.0,0.5 -0.1,0.539828 -0.2,0.57926 -0.3,0.617911 -0.4,0.655422 -0.5,0.691462 -0.6,0.725747 -0.7,0.758036 -0.8,0.788145 -0.9,0.81594 -``` - -### Making an image - -This example is just for the heck of it. [The classic netpbm image library defined a bunch of image formats][7], some of which are text-based. For example, here’s an image of a 3x3 cross: - -``` -P2 # identifier for Portable GrayMap -3 3 # width and height -7 # value for pure white (0 is black) -7 0 7 -0 0 0 -7 0 7 -``` - -You can save the above text to a file named something like `cross.pgm` and many image tools will understand it. Here’s some Djinn code that generates a [Mandelbrot set][8] fractal in the same format: - -``` -[: -import std.complex; -enum W = 640; -enum H = 480; -enum kMaxIter = 20; -ubyte mb(uint x, uint y) -{ - const c = complex(3.0 * (x - W / 1.5) / W, 2.0 * (y - H / 2.0) / H); - auto z = complex(0.0); - ubyte ret = kMaxIter; - while (abs(z) <= 2 && --ret) z = z * z + c; - return ret; -} -:] -P2 -[= W ] [= H ] -[= kMaxIter ] -[: foreach (y; 0..H) :] -[= "%(%s %)", iota(W).map!(x => mb(x, y)) ] -``` - -The resulting file is about 800kB, but it compresses nicely as a PNG: - -``` -$ # Converting with GraphicsMagick -$ gm convert mandelbrot.pgm mandelbrot.png -``` - -And here it is: - -![][9] - -### Solving a puzzle - -Here’s a puzzle: - -![][10] - -The 5x5 grid needs to be filled in with numbers from 1 to 5, using each number once in each row, and once in each column. (I.e., to make a 5x5 Latin square.) The numbers in neighbouring cells must also satisfy the inequalities indicated by any `>` greater-than signs. - -[I used linear programming (LP) some months ago.][11] LP problems are systems of continuous variables with linear constraints. This time I’ll use mixed integer linear programming (MILP), which generalises LP by also allowing integer-constrained variables. It turns out that’s enough to be NP complete, and MILP happens to be reasonably good for modelling this puzzle. - -In that previous post, I used the Julia library JuMP to help spec the problem. This time I’ll use the [CPLEX text-based format][12], which is supported by several LP and MILP solvers (and can be easily converted to other formats by off-the-shelf tools if needed). Here’s the LP from the previous post in CPLEX format: - -``` -Minimize - obj: v -Subject To - ptotal: pr + pp + ps = 1 - rock: 4 ps - 5 pp - v <= 0 - paper: 5 pr - 8 ps - v <= 0 - scissors: 8 pp - 4 pr - v <= 0 -Bounds - 0 <= pr <= 1 - 0 <= pp <= 1 - 0 <= ps <= 1 -End -``` - -CPLEX format is nice to read, but non-trivial problems take a lot of variables and constraints to model, making it painful and error-prone to write out manually. There are domain-specific languages like [ZIMPL][13] for speccing MILPs and LPs in a high-level way. They’re pretty cool for many problems, but ultimately they’re not as expressive as a general-purpose language with a good library like JuMP — or as a code generator with D. - -I’ll model the puzzle using two sets of variables: (v_{r,c}) and (i_{r,c,v}). (v_{r,c}) will hold the value (1-5) of the cell at row (r) and column (c). (i_{r,c,v}) will be an indicator binary that’s 1 if the cell at row (r) and column (c) has value (v), and 0 otherwise. These two sets of variables are redundant representations of the grid, but the first representation makes it easier to model the inequality constraints, while the second representation makes it easier to model the uniqueness constraints. I just need to add some extra constraints to force the two representations to be consistent. But first, let’s start with the basic constraint that each cell must have exactly one value. Mathematically, that means all the indicators for a given row and column must be 0, except for one that is 1. That can be enforced by this equation: - -[i_{r,c,1} + i_{r,c,2} + i_{r,c,3} + i_{r,c,4} + i_{r,c,5} = 1] - -The CPLEX constraints for all rows and columns can be generated with this Djinn code: - -``` -\ Cell has one value -[: -foreach (r; iota(N)) -foreach (c; iota(N)) -:] - [= "%-(%s + %)", vs.map!(v => ivar(r, c, v)) ] = 1 -[::] -``` - -`ivar()` is a helper function that gives us the string identifier for an (i) variable, and `vs` stores the numbers 1-5 for convenience. The constraints for uniqueness within rows and columns are exactly the same, but iterating over the other two dimensions of (i). - -To make the (i) vars consistent with the (v) vars, we need constraints like this (remember, only one of the (i) vars is non-zero): - -[i_{r,c,1} + 2i_{r,c,2} + 3i_{r,c,3} + 4i_{r,c,4} + 5i_{r,c,5} = v_{r,c}] - -CPLEX requires all variables to be on the left, so the Djinn code looks like this: - -``` -\ Link i vars with v vars -[: -foreach (r; iota(N)) -foreach (c; iota(N)) -:] - [= "%-(%s + %)", vs.map!(v => text(v, ' ', ivar(r, c, v))) ] - [= vvar(r,c) ] = 0 -[::] -``` - -The constraints for the neighouring cell inequalities and for the bottom left corner being 4 are all trivial to write. All that’s left is to declare the indicator variables to be binary, and set the bounds for the (v) vars. All up, there are 150 variables and 111 constraints, plus bounds for the variables. [You can see the full code in the repo.][14] - -The [GNU Linear Programming Kit][15] has a command line tool that can solve this CPLEX MILP. Unfortunately, its output is a big dump of everything, so I used awk to pull out what’s needed: - -``` -$ time glpsol --lp inequality.lp -o /dev/stdout | awk '/v[0-9][0-9]/ { print $2, $4 }' | sort -v00 1 -v01 3 -v02 2 -v03 5 -v04 4 -v10 2 -v11 5 -v12 4 -v13 1 -v14 3 -v20 3 -v21 1 -v22 5 -v23 4 -v24 2 -v30 5 -v31 4 -v32 3 -v33 2 -v34 1 -v40 4 -v41 2 -v42 1 -v43 3 -v44 5 - -real 0m0.114s -user 0m0.106s -sys 0m0.005s -``` - -Here’s the solution written out in the original grid: - -![][16] - -These examples are just for playing around, but I’m sure you get the idea. The `README.md` for the Djinn repo is itself generated using a Djinn template, by the way. - -As I said, Djinn can also be used as a compile-time templating language embedded inside D code. I primarily wanted a code generator, but that’s a bonus thanks to D’s metaprogramming features. - --------------------------------------------------------------------------------- - -via: https://theartofmachinery.com/2021/01/01/djinn.html - -作者:[Simon Arneaud][a] -选题:[lujun9972][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://theartofmachinery.com -[b]: https://github.com/lujun9972 -[1]: https://jinja2docs.readthedocs.io/en/stable/ -[2]: https://dlang.org/articles/mixin.html -[3]: https://theartofmachinery.com/2017/12/31/compile_time_brainfuck.html -[4]: https://gitlab.com/sarneaud/djinn -[5]: https://gitlab.com/sarneaud/djinn/-/tree/v0.1.0/examples -[6]: https://dlang.org/phobos/std_format.html#format-string -[7]: http://netpbm.sourceforge.net/doc/#formats -[8]: https://en.wikipedia.org/wiki/Mandelbrot_set -[9]: https://theartofmachinery.com/images/djinn/mandelbrot.png -[10]: https://theartofmachinery.com/images/djinn/inequality.svg -[11]: https://theartofmachinery.com/2020/05/21/glico_weighted_rock_paper_scissors.html -[12]: http://lpsolve.sourceforge.net/5.0/CPLEX-format.htm -[13]: https://zimpl.zib.de/ -[14]: https://gitlab.com/sarneaud/djinn/-/tree/v0.1.0/examples/inequality.lp.dj -[15]: https://www.gnu.org/software/glpk/ -[16]: https://theartofmachinery.com/images/djinn/inequality_solution.svg diff --git a/translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md b/translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md new file mode 100644 index 0000000000..965881addd --- /dev/null +++ b/translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md @@ -0,0 +1,265 @@ +[#]: collector: (lujun9972) +[#]: translator: (hanszhao80) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Djinn: A Code Generator and Templating Language Inspired by Jinja2) +[#]: via: (https://theartofmachinery.com/2021/01/01/djinn.html) +[#]: author: (Simon Arneaud https://theartofmachinery.com) + +Djinn:一个受 Jinja2 启发的代码生成器和模板语言 +====== + +代码生成器是非常有用的工具。我有时使用 [jinja2][1] 的命令行版本来生成高度冗余的配置文件和其他文本文件,但它在转换数据方面功能有限。显然,Jinja2 的作者有不同的想法,但我想要类似于 列表推导list comprehensions 或 D 语言的 可组合范围composable range 算法之类的东西。 + +我决定制作一个类似于 Jinja2 的工具,但让我可以通过使用范围算法转换数据来生成复杂的文件。这个想法非常简单:一个直接用 D 语言代码重写的模板语言。这样它就支持 D 语言所能做的一切,仅仅因为它 _是_ D 语言。我想要一个独立的代码生成器,但是由于 [ D 语言的 `mixin` 特性][2],相同的模板语言可以作为嵌入式模板语言工作(例如,Web 应用程序中的 HTML)。有关该技巧的更多信息,请参阅 [这篇关于在编译时使用 mixins 将 Brainfuck 转换为 D 到机器代码的帖子][3]。 + +像往常一样,[源码在 GitLab 上][4]。[这篇文章中的例子也可以在这里找到。][5] + +### 你好世界示例 + +这是一个演示这个想法的例子: + +``` +Hello [= retro("dlrow") ]! +[: enum one = 1; :] +1 + 1 = [= one + one ] +``` + +`[= some_expression ]` 类似于 Jinja2 中的 `{{ some_expression }}`,它在输出中呈现一个值。`[: some_statement; :]` 类似于 `{% some_statement %}` ,用于执行完整的代码语句。我更改了语法,因为 D 也大量使用花括号,并且将两者混合使模板难以阅读(还有一些特殊的非 D 指令,比如 `include`,它们被包裹在 `[<` 和 `>]` 中)。 + +如果你将上面的内容保存到一个名为 `hello.txt.dj` 的文件中并运行 `djinn` 命令行工具,你会得到一个名为 `hello.txt` 的文件,其中包含你可能猜到的内容: + +``` +Hello world! +1 + 1 = 2 +``` + +如果您使用过 Jinja2,您可能想知道第二行发生了什么。Djinn 有一个简化格式化和空格处理的特殊规则:如果源代码行包含 `[:` 语句或 `[<` 指令但不包含任何非空格输出,则整行都会被忽略输出。空行则仍会原样呈现。 + +### 生成数据 + +好的,现在来讲一些更实用的东西:生成 CSV 数据。 + +``` +x,f(x) +[: import std.mathspecial; +foreach (x; iota(-1.0, 1.0, 0.1)) :] +[= "%0.1f,%g", x, normalDistribution(x) ] +``` + +一个 `[=` 和 `]` 对可以包含多个用逗号分隔的表达式。如果第一个表达式是一个由双引号包裹的字符串,则会被解释为 [格式化字符串][6]。下面是输出结果: + +``` +x,f(x) +-1.0,0.158655 +-0.9,0.18406 +-0.8,0.211855 +-0.7,0.241964 +-0.6,0.274253 +-0.5,0.308538 +-0.4,0.344578 +-0.3,0.382089 +-0.2,0.42074 +-0.1,0.460172 +0.0,0.5 +0.1,0.539828 +0.2,0.57926 +0.3,0.617911 +0.4,0.655422 +0.5,0.691462 +0.6,0.725747 +0.7,0.758036 +0.8,0.788145 +0.9,0.81594 +``` + +### 制作图片 + +这个例子展示了一个图片的生成过程。[经典的 Netpbm 图像库定义了一堆图像格式][7],其中一些是基于文本的。例如,这是一个 3 x 3 向量的图像: + +``` +P2 # 便携式灰色地图Portable GrayMap格式标识 +3 3 # 宽和高 +7 # 代表纯白色的值 (0 代表黑色) +7 0 7 +0 0 0 +7 0 7 +``` + +你可以将上述文本保存到名为 `cross.pgm` 之类的文件中,很多图像工具都知道如何解析它。下面是一些 Djinn 代码,它以相同的格式生成 [Mandelbrot 集][8] 分形: + +``` +[: +import std.complex; +enum W = 640; +enum H = 480; +enum kMaxIter = 20; +ubyte mb(uint x, uint y) +{ + const c = complex(3.0 * (x - W / 1.5) / W, 2.0 * (y - H / 2.0) / H); + auto z = complex(0.0); + ubyte ret = kMaxIter; + while (abs(z) <= 2 && --ret) z = z * z + c; + return ret; +} +:] +P2 +[= W ] [= H ] +[= kMaxIter ] +[: foreach (y; 0..H) :] +[= "%(%s %)", iota(W).map!(x => mb(x, y)) ] +``` + +生成的文件大约为 800 kB,但它可以很好地被压缩为 PNG: + +``` +$ # 使用 GraphicsMagick 进行转换 +$ gm convert mandelbrot.pgm mandelbrot.png +``` + +结果如下: + +![][9] + +### 解决谜题 + +这里有一个谜题: + +![][10] + +一个 5 行 5 列的网格需要用 1 到 5 的数字填充,每个数字在每一行中限使用一次,在每列中限使用一次(即,制作一个 5 行 5 列的拉丁方格Latin square)。相邻单元格中的数字还必须满足所有 `>` 大于号表示的不等式。 + +[几个月前我使用了 线性规划linear programming(英文缩写 LP)][11]。线性规划问题是具有线性约束的连续变量系统。这次我将使用混合整数线性规划mixed integer linear programming(英文缩写 MILP),它通过允许整数约束变量来归纳 LP。事实证明,这足以成为 NP 完备的,而 MILP 恰好可以很好地模拟这个谜题。 + +在上一篇文章中,我使用 Julia 库 JuMP 来帮助解决这个问题。这次我将使用 [CPLEX:基于文本的格式][12],它受到多个 LP 和 MILP 求解器的支持(如果需要,可以通过现成的工具轻松转换为其他格式)。这是上一篇文章中 CPLEX 格式的 LP: + +``` +Minimize + obj: v +Subject To + ptotal: pr + pp + ps = 1 + rock: 4 ps - 5 pp - v <= 0 + paper: 5 pr - 8 ps - v <= 0 + scissors: 8 pp - 4 pr - v <= 0 +Bounds + 0 <= pr <= 1 + 0 <= pp <= 1 + 0 <= ps <= 1 +End +``` + +CPLEX 格式易于阅读,但复杂度高的问题需要大量变量和约束来建模,这使得手工编码既痛苦又容易出错。有一些特定领域的语言,例如 [ZIMPL][13],用于以高级方式描述 MILP 和 LP。对于许多问题来说,它们非常酷,但最终它们不如具有良好库(如 JuMP)支持的通用语言或使用 D 语言的代码生成器那样富有表现力。 + +我将使用两组变量来模拟这个谜题:`v_{r,c}` 和 `i_{r,c,v}`。`v_{r,c}` 将保存 r 行 c 列单元格的值(从 1 到 5)。`i_{r,c,v}` 是一个二进制指示器,如果 r 行 c 列的单元格的值是 v,则该指示器值为 1,否则为 0。这两组变量是网格的冗余表示,但第一种表示更容易对不等式约束进行建模,而第二种表示更容易对唯一性约束进行建模。我只需要添加一些额外的约束来强制这两个表示是一致的。但首先,让我们从每个单元格必须只有一个值的基本约束开始。从数学上讲,这意味着给定行和列的所有指示器都必须为 0,但只有一个值为 1 的例外。这可以通过以下等式强制约束: + +``` +[i_{r,c,1} + i_{r,c,2} + i_{r,c,3} + i_{r,c,4} + i_{r,c,5} = 1] +``` + +可以使用以下 Djinn 代码生成对所有行和列的 CPLEX 约束: + +``` +\ 单元格只有一个值 +[: +foreach (r; iota(N)) +foreach (c; iota(N)) +:] + [= "%-(%s + %)", vs.map!(v => ivar(r, c, v)) ] = 1 +[::] +``` + +`ivar()` 是一个辅助函数,它为我们提供变量名为 i 的字符串标识符,而 `vs` 存储从 1 到 5 的数字以方便使用。行和列内唯一性的约束完全相同,但在 i 的其他两个维度上迭代。 + +为了使变量组 i 与变量组 v 保持一致,我们需要如下约束(请记住,变量组 i 中只有一个元素的值是非零的): + +``` +[i_{r,c,1} + 2i_{r,c,2} + 3i_{r,c,3} + 4i_{r,c,4} + 5i_{r,c,5} = v_{r,c}] +``` + +CPLEX 要求所有变量都位于左侧,因此 Djinn 代码如下所示: + +``` +\ 连接变量组 i 和变量组 v +[: +foreach (r; iota(N)) +foreach (c; iota(N)) +:] + [= "%-(%s + %)", vs.map!(v => text(v, ' ', ivar(r, c, v))) ] - [= vvar(r,c) ] = 0 +[::] +``` + +不等符号相邻的和左下角值为为 4 单元格的约束写起来都很简单。剩下的便是将指示器变量声明为二进制,并为变量组 v 设置边界。加上变量的边界,总共有 150 个变量和 111 个约束 [你可以在仓库中看到完整的代码][14]。 + +[GNU 线性规划工具集][15] 有一个命令行工具可以解决这个 CPLEX MILP。不幸的是,它的输出是一个包含了所有内容的体积很大的转储,所以我使用 awk 命令来提取需要的内容: + +``` +$ time glpsol --lp inequality.lp -o /dev/stdout | awk '/v[0-9][0-9]/ { print $2, $4 }' | sort +v00 1 +v01 3 +v02 2 +v03 5 +v04 4 +v10 2 +v11 5 +v12 4 +v13 1 +v14 3 +v20 3 +v21 1 +v22 5 +v23 4 +v24 2 +v30 5 +v31 4 +v32 3 +v33 2 +v34 1 +v40 4 +v41 2 +v42 1 +v43 3 +v44 5 + +real 0m0.114s +user 0m0.106s +sys 0m0.005s +``` + +这是在原始网格中写出的解决方案: + +![][16] + +这些例子只是用来玩的,但我相信你已经明白了。顺便说一下,Djinn 代码仓库的 `README.md` 文件本身是使用 Djinn 模板生成的。 + +正如我所说,Djinn 也可以用作嵌入在 D 语言代码中的编译期模板语言。我最初只是想要一个代码生成器,得益于 D 语言的元编程功能,这算是一个额外获得的功能。 + +-------------------------------------------------------------------------------- + +via: https://theartofmachinery.com/2021/01/01/djinn.html + +作者:[Simon Arneaud][a] +选题:[lujun9972][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://theartofmachinery.com +[b]: https://github.com/lujun9972 +[1]: https://jinja2docs.readthedocs.io/en/stable/ +[2]: https://dlang.org/articles/mixin.html +[3]: https://theartofmachinery.com/2017/12/31/compile_time_brainfuck.html +[4]: https://gitlab.com/sarneaud/djinn +[5]: https://gitlab.com/sarneaud/djinn/-/tree/v0.1.0/examples +[6]: https://dlang.org/phobos/std_format.html#format-string +[7]: http://netpbm.sourceforge.net/doc/#formats +[8]: https://en.wikipedia.org/wiki/Mandelbrot_set +[9]: https://theartofmachinery.com/images/djinn/mandelbrot.png +[10]: https://theartofmachinery.com/images/djinn/inequality.svg +[11]: https://theartofmachinery.com/2020/05/21/glico_weighted_rock_paper_scissors.html +[12]: http://lpsolve.sourceforge.net/5.0/CPLEX-format.htm +[13]: https://zimpl.zib.de/ +[14]: https://gitlab.com/sarneaud/djinn/-/tree/v0.1.0/examples/inequality.lp.dj +[15]: https://www.gnu.org/software/glpk/ +[16]: https://theartofmachinery.com/images/djinn/inequality_solution.svg From bfa611ffea8f5a5bef9fa72840740748fc7c57ed Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 29 Jun 2022 11:01:22 +0800 Subject: [PATCH 0182/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]:20210511=20What=20is=20the=20OSI=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20210511 What is the OSI model.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210511 What is the OSI model.md b/sources/tech/20210511 What is the OSI model.md index 1d43a0e9bc..0a0f2e9d49 100644 --- a/sources/tech/20210511 What is the OSI model.md +++ b/sources/tech/20210511 What is the OSI model.md @@ -2,7 +2,7 @@ [#]: via: (https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/) [#]: author: (Julia Evans https://jvns.ca/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (hanszhao80) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -81,7 +81,7 @@ via: https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/ 作者:[Julia Evans][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/) 荣誉推出 From 497ceef173f34ff36a66d202e057fc015a3ec1bc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 29 Jun 2022 14:59:42 +0800 Subject: [PATCH 0183/3123] RP @Donkey-Hao https://linux.cn/article-14773-1.html --- ...s-free steps to tackling your task list.md | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) rename {translated/tech => published}/20210124 3 stress-free steps to tackling your task list.md (61%) diff --git a/translated/tech/20210124 3 stress-free steps to tackling your task list.md b/published/20210124 3 stress-free steps to tackling your task list.md similarity index 61% rename from translated/tech/20210124 3 stress-free steps to tackling your task list.md rename to published/20210124 3 stress-free steps to tackling your task list.md index 4f741f5a00..015dc51560 100644 --- a/translated/tech/20210124 3 stress-free steps to tackling your task list.md +++ b/published/20210124 3 stress-free steps to tackling your task list.md @@ -1,51 +1,47 @@ [#]: collector: (lujun9972) -[#]: translator: (Donkey) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: translator: (Donkey-Hao) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14773-1.html) [#]: subject: (3 stress-free steps to tackling your task list) [#]: via: (https://opensource.com/article/21/1/break-down-tasks) [#]: author: (Kevin Sonney https://opensource.com/users/ksonney) 轻松解决你的任务清单的三个步骤 ====== -将你的大任务分为小步骤,避免自己不堪重负。 -![Team checklist][1] -去年,这个年度系列文章覆盖了个人应用。今年,除了在 2021 年提供帮助的策略外,我们还在寻找一体化解决方案。欢迎来到 2021 年 21 天生产力的第 14 天。 +> 将你的大任务分为小步骤,避免自己不堪重负。 -本周开始,我先回顾我的日程安排,看看我需要或想要完成的事情。通常,列表上有些较大的项目。无论来自工作上的问题,一系列关于生产力的文章,或者改进鸡舍,当作为一项工作时,这个任务真的很艰巨。很有可能在一个时间段我不能坐下来,甚至在一天内完成类似(例如,请注意)21 篇文章之类的事情。 +![](https://img.linux.net.cn/data/attachment/album/202206/29/145852zcqqw24v2svulswl.jpg) + +本周开始,我先回顾我的日程安排,看看我需要或想要完成的事情。通常,列表上有些较大的项目。无论来自工作上的问题,还是一系列关于生产力的文章,或者改进我家的鸡舍,当作为一项工作时,这个任务真的很艰巨。很有可能我无法坐下来,在一个时间段内,甚至在一天内完成类似(请注意,只是举例)21 篇文章之类的事情。 ![21 Days of Productivity project screenshot][2] -21 天的生产力 (Kevin Sonney, [CC BY-SA 4.0][3]) - -所以当我的清单上有这样的东西时,我做的第一件事就是把它分解成更小的部分。如著名的诺贝尔文学奖得主 [William Faulkner][4] 说的“移山的人,从小石头开始。”(译注:感觉与“千里之行,始于足下”是一个意思) 我们要解决大任务(山)并且需要完成各个步骤(小石头)。 +*21 天的生产力 (Kevin Sonney, [CC BY-SA 4.0][3])* +所以当我的清单上有这样的东西时,我做的第一件事就是把它分解成更小的部分。如著名的诺贝尔文学奖得主 [William Faulkner][4] 说的“移山的人,从小石头开始。”(LCTT 译注:感觉与“千里之行,始于足下”是一个意思) 我们要解决大任务(山)并且需要完成各个步骤(小石头)。 我使用下面的步骤将大任务分割为小步骤: - 1. 我通常很清楚完成一项任务需要做什么。 如果没有,我会做一些研究来弄清楚这一点。 + 1. 我通常很清楚完成一项任务需要做什么。如果没有,我会做一些研究来弄清楚这一点。 2. 我会顺序的写下完成的步骤。 3. 最后,我坐下来拿着我的日历和清单,开始将任务分散到几天(或几周或几个月),以了解我何时可以完成它。 +现在我不仅有计划,还知道多久能完成。逐步完成,我可以看到这项大任务不仅变得更小,而且更接近完成。 -现在我不仅有计划还知道多久能完成。逐步完成,我可以看到这项大任务不仅变得更小,而且更接近完成。 - -军队有句古话,“遇敌无计”。 几乎可以肯定的是,有一两点(或五点)我意识到像“截屏”这样简单的事情需要扩展到更复杂的事情。 事实上,在 [Easy!Appointments][5] 的截图中,竟然是: +军队有句古话,“遇敌无计”。 几乎可以肯定的是,有一两点(或五点)我意识到像“截屏”这样简单的事情需要扩展到更复杂的事情。事实上,在 [Easy!Appointments][5] 的截图中,竟然是: 1. 安装和配置 Easy!Appointments 2. 安装和配置 Easy!Appointments WordPress 插件 3. 生成 API 密钥来同步日历 4. 截屏 - - -即便如此,我也不得不将这些任务分解成更小的部分——下载软件、配置 NGINX、验证安装……你明白了。 没关系。 一个计划或一组任务不是一成不变的,可以根据需要进行更改。 +即便如此,我也不得不将这些任务分解成更小的部分——下载软件、配置 NGINX、验证安装……你明白了吧。没关系。一个计划或一组任务不是一成不变的,可以根据需要进行更改。 ![project completion pie chart][6] -今年的计划已经完成了 2/3 ! (Kevin Sonney, [CC BY-SA 4.0][3]) +*今年的计划已经完成了 2/3 ! (Kevin Sonney, [CC BY-SA 4.0][3])* 这是一项后天习得的技能,最初几次需要一些努力。学习如何将大任务分解成更小的步骤可以让您跟踪实现目标或完成大任务的进度,而不会在过程中不知所措。 @@ -56,7 +52,7 @@ via: https://opensource.com/article/21/1/break-down-tasks 作者:[Kevin Sonney][a] 选题:[lujun9972][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fa6876646d8382571c315d3f56fa920d477dcea2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 29 Jun 2022 15:16:12 +0800 Subject: [PATCH 0184/3123] RP @geekpi https://linux.cn/article-14774-1.html --- ...t, an Open Source Minecraft Alternative.md | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) rename {translated/tech => published}/20220623 Minetest, an Open Source Minecraft Alternative.md (72%) diff --git a/translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md b/published/20220623 Minetest, an Open Source Minecraft Alternative.md similarity index 72% rename from translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md rename to published/20220623 Minetest, an Open Source Minecraft Alternative.md index 9fada181f4..5c7b6eef20 100644 --- a/translated/tech/20220623 Minetest, an Open Source Minecraft Alternative.md +++ b/published/20220623 Minetest, an Open Source Minecraft Alternative.md @@ -3,29 +3,30 @@ [#]: author: "John Paul https://itsfoss.com/author/john/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14774-1.html" -Minetest,一个开源的 Minecraft 替代品 +Minetest:一个开源的 Minecraft 替代品 ====== -早在 2009 年,Minecraft 就被介绍给了世界。从那时起,它已经成为一种文化现象。在这段时间里,一些开发者发布了具有类似想法和机制的开源游戏。今天,我们将看看其中最大的一个:Minetest。 + +早在 2009 年,Minecraft 就来到了这个世界。从那时起,它已经成为一种文化现象。在这段时间里,一些开发者发布了具有类似想法和机制的开源游戏。今天,我们将看看其中最大的一个:Minetest。 ### 什么是 Minetest? -![minetest start][1] +![](https://img.linux.net.cn/data/attachment/album/202206/29/151524eem52oyatm2tz2dr.jpg) -[Minetest][2],简单地说,是一个基于体素的沙盒游戏,与 Minecraft 非常相似。与 Minecraft 不同的是,Minetest 是用 C++ 编写的,并被设计成可以在大多数系统上原生运行。它也有一个非常大的地图区域。地图大小为 “62,000 × 62,000 × 62,000 块”,“你可以向下开采 31,000 块,或向上建造 31,000 块”。 +[Minetest][2],简单地说,是一个基于体素voxel的沙盒游戏,与 Minecraft 非常相似。与 Minecraft 不同的是,Minetest 是用 C++ 编写的,并被设计成可以在大多数系统上原生运行。它也有一个非常大的地图区域。地图大小为 “62,000 × 62,000 × 62,000 块”,“你可以向下开采 31,000 块,或向上建造 31,000 块”。 有趣的是,Minetest 最初是以专有许可证发布的,但后来被重新授权为 GPL。此后,它又被重新授权为 LGPL。 -Minetest 有几种模式。你可以建造并发挥创意,或者你可以尝试在各种元素中生存。你并不局限于这些模式。Minetest 有大量的[可用的额外内容][3],包括 mods、纹理包和在 Minetest 中建立的游戏。这主要是通过 Minetest 的 [modding API][4] 和 Lua 完成的。 +Minetest 有几种模式。你可以建造并发挥创意,或者你可以尝试在各种元素中生存。你并不局限于这些模式。Minetest 有大量的 [额外内容][3],包括 模组mod、纹理包和在 Minetest 中建立的游戏。这主要是通过 Minetest 的 [模组 API][4] 和 Lua 完成的。 ![minetest packages][5] 对于那些玩过 Minecraft 的人来说,你会发现 Minetest 中的体验非常相似。你可以挖掘资源,建造结构,并结合材料来制作工具。我在 Minetest 中没有注意到的一件事是怪物。我认为 Minetest 中没有任何生物,但话说回来,我只在创意模式中玩过。我还没有玩过生存模式。 -Minetest 也被用于[教育][6]。例如,瑞士 CERN 的人用 Minetest 创造了一个游戏,以[展示互联网是如何工作的][7]以及它是如何被创造出来的。Minetest 还被[用于教授][8]编程、地球科学以及微积分和三角学。 +Minetest 也被用于 [教育][6]。例如,瑞士 CERN 的人用 Minetest 创造了一个游戏,以 [展示互联网是如何工作的][7] 以及它是如何被创造出来的。Minetest 还被用于 [教授][8] 编程、地球科学以及微积分和三角学。 ![minetes map1][9] @@ -73,8 +74,6 @@ FreeBSD 用户很幸运。他们可以用这个命令安装 Mintest: pkg install minetest minetest_game ``` -![minetest map2][10] - #### Snap 要安装 Minetest 的 Snap 包,请在终端输入以下命令: @@ -91,13 +90,13 @@ sudo snap install minetest flatpak install flathub net.minetest.Minetest ``` -你可以在[这里][11]下载 Windows 的可移植执行文件。你也可以在 Android 上安装 Minetest,可以通过 [Google Play][12] 或[下载 APK][13]。 +你可以在 [这里][11] 下载 Windows 的可移植执行文件。你也可以在 Android 上安装 Minetest,可以通过 [Google Play][12] 或 [下载 APK][13]。 -### 最后的想法 +### 总结 ![minetest about][14] -我已经在 Minetest 中花了几个小时在我的本地系统上进行构建和探索。它非常有趣。我还没来得及尝试任何额外的内容,因为我对我玩过的相对较少的游戏部分非常满意。我遇到的唯一麻烦是,由于某种原因,它在 Fedora 上运行缓慢。我可能有一些配置上的错误。 +我已经在 Minetest 中花了几个小时在我的本地系统上进行构建和探索。它非常有趣。我还没来得及尝试任何额外的内容,因为我对我玩过的相对较少的游戏部分非常满意。我遇到的唯一麻烦是,由于某种原因,它在 Fedora 上运行缓慢。我可能存在一些配置上的错误。 如果你曾经认为 Minecraft 看起来很有趣,但不想花钱,那就去看看 Minetest。你会很高兴你这么做。 @@ -110,7 +109,7 @@ via: https://itsfoss.com/minetest/ 作者:[John Paul][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/) 荣誉推出 From 734fb7bb77ab2e92e12b3c78410e46dfd02f03d8 Mon Sep 17 00:00:00 2001 From: SamMa Date: Wed, 29 Jun 2022 16:04:59 +0800 Subject: [PATCH 0185/3123] Update 20220622 Manage your Rust toolchain using rustup.md --- ... Manage your Rust toolchain using rustup.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/translated/tech/20220622 Manage your Rust toolchain using rustup.md b/translated/tech/20220622 Manage your Rust toolchain using rustup.md index 292d6bed9a..033ae2ec2d 100644 --- a/translated/tech/20220622 Manage your Rust toolchain using rustup.md +++ b/translated/tech/20220622 Manage your Rust toolchain using rustup.md @@ -9,13 +9,13 @@ 使用 rustup 管理你的 Rust 工具链 ====== -Rustup 可用于安装 Rust 并保持更新。它还允许你在稳定版、测试版和每日 Rust 编译器和工具之间无缝切换。 +Rustup 可用于 Rust 安装与更新。它还能够将 Rust 编译器和工具在稳定版、测试版和每日更新版之间无缝切换。 ![Tools illustration][1] 图片来源:Opensource.com -[Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具使其成为开发人员使用的乐趣。 [Rustup][3] 是用于管理 Rust 工具的官方工具。它不仅可以用于安装 Rust 并保持更新,它还允许你在稳定、测试和每日 Rust 编译器和工具之间无缝切换。本文将向你介绍 rustup 和一些常用命令。 +[Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具使其成为开发人员使用的乐趣。 [Rustup][3] 是管理 Rust 工具的官方工具。它不仅可以安装和更新 Rust ,它还能够将 Rust 编译器和工具在稳定、测试和每日更新版之间无缝切换。本文将向你介绍 rustup 和一些常用命令。 ### 默认 Rust 安装方式 @@ -25,7 +25,7 @@ Rustup 可用于安装 Rust 并保持更新。它还允许你在稳定版、测 $ sudo dnf install rust cargo ``` -这提供了一个稳定版本的 Rust 工具链,如果你是 Rust 的初学者并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法为你提供帮助。 +这提供了一个稳定版本的 Rust 工具链,如果你是 Rust 的初学者并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日更新版和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法做到。 ### 使用 rustup 安装 Rust 工具链 @@ -54,7 +54,7 @@ $ bash sh.rustup.rs > 1 ``` -安装后,你必须获取环境变量以确保 `rustup` 命令立即可供你使用: +安装后,你必须获取环境变量以确保 `rustup` 命令立即可供你运行: ``` $ source $HOME/.cargo/env @@ -67,9 +67,9 @@ $ rustc --version $ cargo --version ``` -### 查看已安装和活动的工具链 +### 查看已安装和可用的工具链 -你可以使用以下命令查看已安装的不同工具链以及哪个工具链是活动的: +你可以使用以下命令查看已安装的不同工具链以及哪个工具链是可用的: ``` $ rustup show @@ -77,14 +77,14 @@ $ rustup show ### 在工具链之间切换 -你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定的工具链,并希望尝试每日版本中提供的新功能,你可以轻松切换到每日工具链: +你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定的工具链,并希望尝试每日更新版中提供的新功能,你可以轻松切换到每日更新版工具链: ``` $ rustup default $ rustup default nightly ``` -要查看 Rust 的编译器和包管理器的确切路径: +要查看 Rust 的编译器和包管理器的完整路径: ``` $ rustup which rustc @@ -113,7 +113,7 @@ $ rustup update $ rustup --help ``` -Rustup 在 GitHub 上有完整的[说明书][4],你可以将其用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到 Internet。你可以访问包括书籍、标准库等在内的本地文档: +Rustup 在 GitHub 上有完整的[参考手册][4],你可以将其用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到 Internet。你可以访问包括书籍、标准库等在内的本地文档: ``` $ rustup doc From 57aeb4bcbfa15ccbaaa9858b68b0974a8480f095 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 21:45:20 +0800 Subject: [PATCH 0186/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220629=20Thunderbird=20102=20Releases=20with=20Mat?= =?UTF-8?q?rix=20Support=20and=20New=20Address=20Book.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ith Matrix Support and New Address Book.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md diff --git a/sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md b/sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md new file mode 100644 index 0000000000..06cb50bf86 --- /dev/null +++ b/sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md @@ -0,0 +1,102 @@ +[#]: subject: "Thunderbird 102 Releases with Matrix Support and New Address Book" +[#]: via: "https://news.itsfoss.com/thunderbird-102-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Thunderbird 102 Releases with Matrix Support and New Address Book +====== +Thunderbird 102 steps up a notch in terms of user experience, and customization features. + +![thunderbird 102][1] + +We have already talked about the [features coming to Thunderbird 102][2]. And, if you have read that, it is time to experience those exciting features! + +Yes, Thunderbird 102 is now available to download (right around the time of the [Mozilla Firefox 102][3] release). + +### Thunderbird 102: What’s New? + +Thunderbird 102 comes packed with refreshed icons, color folders, and several meaningful upgrades. + +![thunderbird 102][4] + +**Ryan Lee Sipes**, Thunderbird Product Manager mentions: + +“With features like timezone tracking and relationship management, our new address book allows you to better keep track of all the important people in your life.” + +If you are hearing about the update for the first time, let us look at the key highlights of this release. + +#### Brand New Address Book + +![thunderbird 102][5] + +Thunderbird 102 takes a good step towards a modern user experience with a much-needed makeover to its address book. + +You get all the important information at a glance while being compatible with the vCard format. + +#### Central Spaces Toolbar + +![][6] + +A new toolbar to make things more convenient! You can enable the toolbar to get access to the address book, calendar, tasks, chat, and any other add-ons. + +You can customize the toolbar’s look (sidebar) as per your preferences. + +#### New Import/Export Wizard + +![][7] + +Import/Export in Thunderbird required making use of an add-on. While it worked, it wasn’t an out-of-the-box solution. + +Now, with Thunderbird 102, you get this feature built-in. The step-by-step wizard should help users import/export essential data quickly. + +It also ensures you do not duplicate the data with an import for your user profile. + +#### Matrix Support + +It looks like adding support for the Matrix protocol, and enabling decentralized communication is the trend now! + +[Rocket.Chat also added support][8] for it, if you did not know. + +With Thunderbird 102, the chat feature uses Matrix to provide you with a secure messaging experience. + +#### Redesigned Message Header + +The message header usually makes navigation easier when reading a message before responding to it. + +With the new update, you can customize what to highlight, and you also get to hide the labels column if you need. Also, you can “star” an important message and convert them into a calendar event or task, pretty neat! + +In addition to these changes, there are many other refinements that you can explore in the [release notes][9]. + +### Download Thunderbird 102 + +You can download the latest Thunderbird 102 update from the [official website][10]. Or, you can wait for the update to arrive through your package manager. + +*Have you tried Thunderbird 102 yet? What do you think about it?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/thunderbird-102-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/06/thunderbird-102-release.jpg +[2]: https://news.itsfoss.com/thunderbird-102-features/ +[3]: https://news.itsfoss.com/firefox-102-release/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/TB-102-icons-and-folders.png +[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/thunderbird-102-address-book.png +[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/thunderbird-102-spaces-toolbar.jpg +[7]: https://news.itsfoss.com/wp-content/uploads/2022/06/import-export-thunderbird102.jpg +[8]: https://news.itsfoss.com/rocket-chat-matrix/ +[9]: https://www.thunderbird.net/en-US/thunderbird/102.0/releasenotes/ +[10]: https://www.thunderbird.net/en-US/ From 05f873a85f3089e381e17f2f3f31085877ddb3da Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 21:46:09 +0800 Subject: [PATCH 0187/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220629=20Vim=209.0=20is=20Here=20With=20a=20New=20?= =?UTF-8?q?Script=20Language=20Promising=20Performance=20Boost.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pt Language Promising Performance Boost.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md diff --git a/sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md b/sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md new file mode 100644 index 0000000000..2196c1117d --- /dev/null +++ b/sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md @@ -0,0 +1,89 @@ +[#]: subject: "Vim 9.0 is Here With a New Script Language Promising Performance Boost" +[#]: via: "https://news.itsfoss.com/vim-9-0-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Vim 9.0 is Here With a New Script Language Promising Performance Boost +====== +Vim 9.0 update brings a new script language, promises a performance boost, and gets closer to common programming languages. + +![][1] + +Vim, the terminal text editor is back with a major update. + +The Vim 9.0 release includes several tiny improvements along with a new script language (Vim9 script). + +Here, let me highlight the key changes. + +### Vim 9.0: What’s New? + +Vim 9.0 is a significant upgrade after almost three years. And, the release announcement mentions that Vim 9.0 is more reliable than any before, which is a good thing to hear. + +Some of the refinements include: + +#### A New Vim9 Script + +Vim script always ensures backwards compatibility, but that changes a bit with this update. + +The backwards compatibility always comes with slower execution performance. So, with the Vim9 script, they aim to drastically improve performance. + +The release note explains: + +> This is accomplished by compiling commands into instructions that can be efficiently executed. An increase in execution speed of 10 to 100 times can be expected. + +Sounds incredible, isn’t it? + +However, what’s the catch for these performance improvements? Here’s what they say: + +> The performance improvements can only be achieved by not being 100% backwards compatible. For example, making function arguments available by creating an “a:” dictionary involves quite a lot of overhead. In a Vim9 function this dictionary is not available. Other differences are more subtle, such as how errors are handled. + +So, you no longer get 100% backwards compatibility, but the legacy scripts should work as usual. + +In addition to the performance improvements, the new script language also aims to get closer to commonly used programming languages, including JavaScript, TypeScript, and Java. + +The developers also plan to add support for **classes** in the script language. + +You can learn more about the new script in the [official help page][2]. + +#### New Features + +You will also find some technical feature additions like: + +* Function must be defined with def, if you want to benefit from the speedup. +* The arguments and return types must be specificed. +* Line continuation does not require using a backlash. +* It now simpler to split large scripts. You can use export to make functions/variables available to other scripts, and import to use exported items. +* Comments now start with # replacing double quote syntax. + +In either case, you can always refer to the [official announcement][3] to explore all the technical details with the update. + +### Download Vim 9.0 + +If you are going to try Vim for the first, you might want to check out our [Vim vs Nano comparison article][4] (keeping in mind the changes for this release). + +You can download the latest version directly from the [official website][5]. Packages should be available for Debian-based/Ubuntu-based systems. For other Linux distributions, you might want to explore the documentations. + +You can build it from sources and apply the latest patches as well. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vim-9-0-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/06/vim-9.0.jpg +[2]: https://vimhelp.org/vim9.txt.html +[3]: https://www.vim.org/vim90.php +[4]: https://itsfoss.com/vim-vs-nano/ +[5]: https://www.vim.org/download.php From 70b383c28d7e1bb92192739e5043bb16d4c54214 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 21:50:55 +0800 Subject: [PATCH 0188/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220629=20DIY=20Embroidery=20with=20Inkscape=20and?= =?UTF-8?q?=20Ink-Stitch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Embroidery with Inkscape and Ink-Stitch.md | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 sources/tech/20220629 DIY Embroidery with Inkscape and Ink-Stitch.md diff --git a/sources/tech/20220629 DIY Embroidery with Inkscape and Ink-Stitch.md b/sources/tech/20220629 DIY Embroidery with Inkscape and Ink-Stitch.md new file mode 100644 index 0000000000..46ac51b66c --- /dev/null +++ b/sources/tech/20220629 DIY Embroidery with Inkscape and Ink-Stitch.md @@ -0,0 +1,253 @@ +[#]: subject: "DIY Embroidery with Inkscape and Ink/Stitch" +[#]: via: "https://fedoramagazine.org/diy-embroidery-with-inkscape-and-ink-stitch/" +[#]: author: "Benson Muite https://fedoramagazine.org/author/fed500/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +DIY Embroidery with Inkscape and Ink/Stitch +====== +![][1] + +Picture http://commons.wikimedia.org/wiki/User:Ryj, CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/, via Wikimedia Commons + +### Introduction + +Embroidered shirts are great custom gifts and can also be a great way to show your love for open source. This tutorial will demonstrate how to design your own custom embroidered polo shirt using [Inkscape][2] and [Ink/Stitch][3]. Polo shirts are often used for embroidery because they do not tear as easily as t-shirts when pierced by embroidery needles, though with care t-shirts can also be embroidered. This tutorial is a follow on article to [Make More with Inkscape and Ink/Stitch][4] and provides complete steps to create your design. + +### Logo on Front of Shirt + +Pictures with only a few colors work well for embroidery. Let us use a public domain black and white [SVG][5] image of [Tux][6] created by [Ryan Lerch][7] and [Garret LeSage][8]. + +![Black and white image of Tux][9] + +Download this public domain image, [tux-bw.svg][10], to your computer, and import it into your document as an editable SVG image using File>Import... + +![Image of Tux with text to be embroidered][11] + +### Use a Transparent Background + +It is helpful to have a checkerboard background to distinguish background and foreground colors. Click File>Document Properties… and then check the box to enable a checkerboard background. + +![Dialog box to enable checkerboard document background][12] + +Then close the document properties dialog box. You can now distinguish between colors used on Tux and the background color. + +![Tux can be distinguished from the document background][13] + +### Use a Single Color For Tux + +Type s to use the Select and Transform objects tool, and click on the image of Tux to select it. Then click on Object>Fill and Stroke, in the menu. Type n to use the Edit paths by Nodes tool and click on a white portion of Tux. Within the Fill and Stroke pane change the fill to No paint to make this portion of Tux transparent. + +![Tux in one color][14] + +Thi leaves the black area to be embroidered. + +### Enable Embroidering of Tux + +Now convert the image for embroidery. Type s to use the Select and Transform objects tool and click on the image of Tux to select it again. Choose Extensions>Ink/Stitch>Fill Tools>Break Apart Fill Objects … In the resulting pop up, choose Complex, click Apply, and wait for the operation to complete. + +![Dialog to Break Apart Fill Objects][15] + +For further explanation of this operation, see the [Ink/Stitch documentation][16]. + +### Resize Document + +Now resize the area to be embroidered. A good size is about 2.75 inches by 2.75 inches. Press s to use the Select and Transform objects tool, and select Tux, hold down the shift key, and also select any text area. Then choose Object>Transform …, click on Scale in the dialogue box, change the measurements to inches, check the Scale proportionally box and choose a width of 2.75 inches, and click Apply. + +![Resized drawing][17] + +Before saving the design, reduce the document area to just fit the image. Press s to use the Select and Transform objects tool, then select Tux. + +![Objects selected to determine resize area][18] + +Choose File>Document Properties… then choose Resize to content: or press Ctrl+Shift+R + +![Dialog to resize page][19] + +The document is resized. + +![Resized document][20] + +### Save Your Design + +You now need to convert your file to an embroidery file. A very portable format is the [DST (Tajima Embroidery Format)][21] format, which unfortunately does not have color information, so you will need to indicate color information for the embroidery separately. First save your design as an Inkscape SVG file so that you retain a format that you can easily edit again. Choose File>Save As, then select the Inkscape SVG format and enter a name for your file, for example AnotherAwesomeFedoraLinuxUserFront.svg and save your design. Then choose File>Save As and select the DST file format and save your design. Generating this file requires calculation of stitch locations, this may take a few seconds. You can preview the DST file in Inkscape, but another very useful tool is [vpype-embroidery][22] + +Install vpype-embroidery on the command line using a [Python virtual environment][23] via the following commands: + +``` +virtualenv test-vpype +source test-vpype/bin/activate +pip install matplotlib +pip install vpype-embroidery +pip install vpype[all] +``` + +Preview your DST file (in this case named AnotherAwesomeFedoraLinuxUserFront.dst which should be replaced by the filename you choose if it is different), using this command: + +``` +vpype eread AnotherAwesomeFedoraLinuxUserFront.dst show +``` + +![Image of Tux created from the DST file and shown using Vpype-embroider][24] + +Check the dimensions of your design, if you need to resize it, you should resize the SVG design file before exporting it as a DST file. Resizing the DST file is not recommended since it contains stitch placement information, regenerate this placement information from the resized SVG file to obtain a high quality embroidered result. + +### Text on the Back of the Shirt + +Now create a message to put on the back of your polo shirt. Create a new Inkscape document using File>New. Then choose Extensions>Ink/Stitch>Lettering.Choose a font, for example Geneva Simple Sans created by [Daniel K. Schneider][25] in Geneva. If you want to resize your text, do so at this point using the scale section of the dialog box since resizing it once it is in Inkscape will distort the resulting embroidered pattern. Add your text, + +``` +Another Awesome +Fedora Linux User +``` + +![Image showing the text, Another Awesome Fedora Linux User, in a dialog box along with the choosen embroidery font, Geneva Simple Sans][26] + +A preview will appear, click on Quit + +![Preview of stitches for the text, Another Awesome Fedora Linux User, created by Ink/Stitch][27] + +Then click on Apply and Quit in the lettering creation dialog box. Your text should appear in your Inkscape document. + +![Text to be embroidered in the top left corner of an otherwise empty Inkscape document][28] + +Create a checkered background and resize the document to content by opening up the document properties dialog box File>Document Properties… + +![Document properties dialog box to resize a document][29] + +Your document should now be a little larger than your text. + +![Document is a little larger than the text][30] + +#### Clean Up Stitches + +Many commercial embroidery machines support jump instructions which can save human time in finishing the embroidered garment. Examine the text preview image. A single continuous thread sews all the letters. Stitches joining the letters are typically removed. These stitches can either be cut by hand after the embroidery is done, or they can be cut by the embroidery machine if it supports jump instructions. Ink/Stitch can add these jump instructions. + +Add jump instructions by selecting View>Zoom>Zoom Page to enlarge the view of the drawing. Press s to choose the Select and transform objects tool. Choose Extensions>Ink/Stitch>Commands>Attach Commands to Selected Objects. A dialog box should appear, check just the Trim thread after sewing this object option. + +![Attach commands dialog][31] + +Then click in the drawing area and select the first letter of the text + +![Select first letter of the text][32] + +Then click Apply, and some cut symbols should appear above the letter. + +![Scissor symbols above first letter][33] + +Repeat this process for all letters. + +![Separately embroidered letters][34] + +Now save your design, as before, in both SVG and DST formats. Check the likely quality of the embroidered text by previewing your DST file (in this case named AnotherAwesomeFedoraLinuxUserBack.dst – replaced this by the filename you chose), using + +``` +vpype eread AnotherAwesomeFedoraLinuxUserBack.dst show +``` + +![Illustration showing a green stitch pattern that forms the txt, Another Awesome Fedora Linux User][35] + +Check the dimensions of your design, if you need to resize it, you should resize the SVG design file before exporting it as a DST file. + +### Create a Mockup + +To show the approximate placement of your design on the polo shirt create a mockup. You can then send this to an embroidery company with your DST file. The Fedora Design Team has a wiki [page][36] with examples of mockups. An example mockup made using [Kolourpaint][37] is below. + +![Mockup image of polo shirt with design][38] + +You can also use an appropriately licensed drawing of a polo shirt, for example from [Wikimedia Commons][39]. + +### Example Shirt + +Pictures of a finished embroidered polo shirt are below + +![Embroidered black polo shirt front with white thread used to embroider Tux][40] + +![Back of black polo shirt, with white embroidered text][41] + +![Closeup of the front left of a person wearing a black polo shirt with Tux embroidered on it with white thread.][42] + +![Back of person wearing a polo shirt with the text, Another Awesome Fedora Linux User, embroidered on the shirt][43] + +### Further Information + +A three color image of Tux is also [available][44], but single colors are easiest to achieve good embroidered results with. Adaptation of this shaded multiple color image is required to use it for embroidery. Additional tutorial information is available on the [Ink/Stitch website][45]. + +Some companies that can do embroidery given a DST file include: + +* [Pappagallo Clothing Industry][46] based in Cyprus +* [Target Solutions][47] based in Ghana +* [Marvel Ark][48] based in Kenya +* [Core Digital][49] based in South Africa +* [Embroidery Your Way][50] based in the USA + +Search the internet for machine embroidery services close to you or a hackerspace with an embroidery machine you can use. + +This article has benefited from many helpful suggestions from Michael Njuguna of Marvel Ark and Brian Lee of Embroidery Your Way. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/diy-embroidery-with-inkscape-and-ink-stitch/ + +作者:[Benson Muite][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://fedoramagazine.org/author/fed500/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/DIY-Embroidery-with-Inkscape-and-InkStitch-816x345.jpg +[2]: https://inkscape.org +[3]: https://inkstitch.org/ +[4]: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/ +[5]: https://en.wikipedia.org/wiki/Scalable_Vector_Graphics +[6]: https://github.com/garrett/Tux/blob/main/tux-bw.svg +[7]: https://github.com/ryanlerch +[8]: https://github.com/garrett +[9]: https://fedoramagazine.org/wp-content/uploads/2022/06/tux-bw.svg +[10]: https://raw.githubusercontent.com/garrett/Tux/main/tux-bw.svg +[11]: https://fedoramagazine.org/wp-content/uploads/2022/06/TuxInDocument-1.png +[12]: https://fedoramagazine.org/wp-content/uploads/2022/06/ResizeDialog-2.png +[13]: https://fedoramagazine.org/wp-content/uploads/2022/06/TuxCheckeredBackground-1.png +[14]: https://fedoramagazine.org/wp-content/uploads/2022/06/TuxOneColor-1.png +[15]: https://fedoramagazine.org/wp-content/uploads/2022/06/BreakApartFill.png +[16]: https://inkstitch.org/docs/fill-tools/ +[17]: https://fedoramagazine.org/wp-content/uploads/2022/06/ResizedDrawing-1.png +[18]: https://fedoramagazine.org/wp-content/uploads/2022/06/DetermineResizeArea-1.png +[19]: https://fedoramagazine.org/wp-content/uploads/2022/06/ResizeDialog-1.png +[20]: https://fedoramagazine.org/wp-content/uploads/2022/06/ResizedDocument-1.png +[21]: https://edutechwiki.unige.ch/en/Embroidery_format_DST +[22]: https://github.com/embroidepy/vpype-embroidery/ +[23]: https://docs.python.org/3/library/venv.html +[24]: https://fedoramagazine.org/wp-content/uploads/2022/06/VpypePreviewFront.png +[25]: https://edutechwiki.unige.ch/en/InkStitch_-_Geneva-simple_typefaces +[26]: https://fedoramagazine.org/wp-content/uploads/2022/06/LetteringCreationDialog-1.png +[27]: https://fedoramagazine.org/wp-content/uploads/2022/06/LetteringPreview-1.png +[28]: https://fedoramagazine.org/wp-content/uploads/2022/06/LetteringInDocument-1.png +[29]: https://fedoramagazine.org/wp-content/uploads/2022/06/DocumentPropertiesAgain.png +[30]: https://fedoramagazine.org/wp-content/uploads/2022/06/ResizedDocumentWithText.png +[31]: https://fedoramagazine.org/wp-content/uploads/2022/06/AttachCommandsDialog.png +[32]: https://fedoramagazine.org/wp-content/uploads/2022/06/SelectFirstLetter-1.png +[33]: https://fedoramagazine.org/wp-content/uploads/2022/06/CutSymbols-1.png +[34]: https://fedoramagazine.org/wp-content/uploads/2022/06/SeparatelyEmbroideredLetters-1.png +[35]: https://fedoramagazine.org/wp-content/uploads/2022/06/VpypePreviewBack-1024x512.png +[36]: https://fedoraproject.org/wiki/Artwork/T-Shirt +[37]: http://www.kolourpaint.org/ +[38]: https://fedoramagazine.org/wp-content/uploads/2022/06/ShirtMockup2.png +[39]: https://commons.wikimedia.org/wiki/File:Shirt-type_Polo.svg +[40]: https://fedoramagazine.org/wp-content/uploads/2022/06/Front-768x1024.jpg +[41]: https://fedoramagazine.org/wp-content/uploads/2022/06/Back-768x1024.jpg +[42]: https://fedoramagazine.org/wp-content/uploads/2022/06/FrontCloseupHDR-1024x859.jpg +[43]: https://fedoramagazine.org/wp-content/uploads/2022/06/BackCloseupHDR-1024x441.jpg +[44]: https://raw.githubusercontent.com/garrett/Tux/main/tux.svg +[45]: https://inkstitch.org/docs/basic-usage/ +[46]: http://www.pappagallo.com.cy +[47]: https://targetsolutionsgh.business.site/ +[48]: https://marvelark.co.ke/ +[49]: https://coredigital.co.za/ +[50]: https://embroideryyourway.com/ From 288c4f6d1cbf975915161194408e1401ba49d168 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 21:57:07 +0800 Subject: [PATCH 0189/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220629=20Finding=20Your=20Router-s=20IP=20Address?= =?UTF-8?q?=20-Default=20Gateway-=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ault Gateway- in Ubuntu and Other Linux.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md diff --git a/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..aa80b91ef9 --- /dev/null +++ b/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md @@ -0,0 +1,109 @@ +[#]: subject: "Finding Your Router’s IP Address (Default Gateway) in Ubuntu and Other Linux" +[#]: via: "https://itsfoss.com/router-ip-address-linux/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Finding Your Router’s IP Address (Default Gateway) in Ubuntu and Other Linux +====== +You probably already know how to get your system’s IP address in Linux. + +But how do you know the IP address of your router? + +I am not talking about the public-facing IP which you can get by connecting to websites like [Show My IP][1] or simply [searching for ‘what is my ip’][2] in [DuckDuckGo][3]. + +I am talking about the default gateway IP which your Linux desktop uses to connect to it. + +Why do you need it? Well, if you need to change the SSID, password, or other configuration of your wi-fi/network, you have to connect to it. And the simples way is to type the IP address of the router in a web browser and then use the router’s username and password. + +While I cannot help you with the username and password of your router, I can surely tell you how to get its IP. + +As always, I’ll show both GUI and command-line methods. + +### Method 1: Get the router’s IP address in Linux using GUI + +It’s quite simple actually. I am using GNOME desktop with Ubuntu here. If you use some [other desktop environments][4], screenshots may look different. + +Open System Settings: + +![go to settings][5] + +Now go to Wi-Fi or Network (if you are using a wired, Ethernet connection). Here, click on the little settings symbol beside your currently used network. + +![access network settings ubuntu][6] + +It will open a new window with several details about your connection such as the IP address, DNS, and [Mac address][7]. You can also see the [saved wifi password][8] under the security tab. + +You’ll also see an entry named ‘Default Route’. This is what you are looking for. The IP address of your router. + +![defaul gateway ip ubuntu][9] + +Your system and all other devices on your network connect to the router using this IP address. This is the setup most households have. + +Now that I have shown the GUI method, let’s go to the terminal route. + +### Method 2: Get the router’s IP address in Linux command line + +Open a terminal and use the following command: + +``` +ip route +``` + +It will show you a few entries. + +``` +[email protected]:~$ ip route +default via 192.168.1.1 dev wlp0s20f3 proto dhcp metric 600 +169.254.0.0/16 dev wlp0s20f3 scope link metric 1000 +192.168.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.1.34 metric 600 +``` + +The first line, which starts with ‘default via’, gives you the gateway IP. This is your router’s IP address. + +![defaul route linux terminal][10] + +As you can see, 192.168.1.1 is the IP address of my router. Usually, the router’s IP address is the first number of the subnet. However, this is not a hard and fast rule. I have seen routers with x.y.z.30 addresses as well. + +### Bonus tip + +As shared by Samir in the comments, you can also use the ping command to get the gateway IP: + +``` +ping _gateway +``` + +![ping gateway][11] + +In case you didn’t know, you have to [use the Ctrl+C to stop a running command in Linux][12]. + +I hope you find this tip useful when you need it. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/router-ip-address-linux/ + +作者:[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://www.showmyip.com/ +[2]: https://duckduckgo.com/?q=what+is+my+ip&t=h_&ia=answer +[3]: https://itsfoss.com/duckduckgo-easter-eggs/ +[4]: https://itsfoss.com/best-linux-desktop-environments/ +[5]: https://itsfoss.com/wp-content/uploads/2022/02/go_to_settings.jpg +[6]: https://itsfoss.com/wp-content/uploads/2022/06/access-network-settings-ubuntu-800x448.png +[7]: https://itsfoss.com/change-mac-address-linux/ +[8]: https://itsfoss.com/how-to-find-saved-wireless-wifi-passwords-ubuntu/ +[9]: https://itsfoss.com/wp-content/uploads/2022/06/defaul-gateway-ip-ubuntu.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/defaul-route-linux-terminal.png +[11]: https://itsfoss.com/wp-content/uploads/2022/06/ping-gateway.png +[12]: https://itsfoss.com/stop-program-linux-terminal/ From 2a8ba2f05ce50338f2e500650d6ce0df7ce6322e Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 29 Jun 2022 21:58:25 +0800 Subject: [PATCH 0190/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20210511=20What=20is=20the=20OSI=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20210511 What is the OSI model.md | 95 ------------------- .../tech/20210511 What is the OSI model.md | 89 +++++++++++++++++ 2 files changed, 89 insertions(+), 95 deletions(-) delete mode 100644 sources/tech/20210511 What is the OSI model.md create mode 100644 translated/tech/20210511 What is the OSI model.md diff --git a/sources/tech/20210511 What is the OSI model.md b/sources/tech/20210511 What is the OSI model.md deleted file mode 100644 index 0a0f2e9d49..0000000000 --- a/sources/tech/20210511 What is the OSI model.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: (What is the OSI model?) -[#]: via: (https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/) -[#]: author: (Julia Evans https://jvns.ca/) -[#]: collector: (lujun9972) -[#]: translator: (hanszhao80) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -What is the OSI model? -====== - -Today I tweeted something about how the OSI model doesn’t correspond well to the reality of how TCP/IP works and it made me think – what is the OSI model, exactly? From reading some of the replies on Twitter, it seems like there are at least 3 different ways to think about it: - - 1. A literal description of how TCP/IP works - 2. An abstract model that you can use to describe and compare a lot of different networking protocols - 3. A literal description of some computer networking protocols from the 1980s that are mostly no longer used today - - - -In this post I’m not going to try to argue that any one of these is “really” what the OSI model is – it seems like different people think about the OSI model in all of these ways, and that’s okay. - -### the OSI model has 7 layers - -Before we talk about what the OSI model means, let’s very briefly discuss what it is: it’s an abstract model for how networking works with 7 numbered layers: - - * Layer 1: physical layer - * Layer 2: data link - * Layer 3: network - * Layer 4: transport - * Layer 5: session - * Layer 6: presentation - * Layer 7: application - - - -I won’t say more about what each of those is supposed to mean, there are a thousand explanations of it online. - -### the OSI model as a literal description of how TCP/IP works - -First, I want to talk about one common way people use the OSI model in practice: as a literal description of how TCP/IP works. Some layers of the OSI model are really easy to map to TCP/IP: - - * Layer 2 corresponds to Ethernet - * Layer 3 corresponds to IP - * Layer 4 corresponds to TCP or UDP (or ICMP etc) - * Layer 7 corresponds to whatever is inside the TCP or UDP packet (for example a DNS query) - - - -This mapping makes a lot of sense for layers 2, 3, and 4 – TCP packets have 3 headers corresponding to these 3 layers (the Ethernet header, the IP header, and the TCP header). - -Having numbers to describe the different headers in a TCP packet is pretty useful – if you say “layer 2”, it’s clear that that lives “underneath” layer 3, because 2 is a smaller number than 3. - -The weird thing about “OSI model as literal description” is that layers 5 and 6 don’t really correspond to anything in TCP/IP – I’ve heard a lot of different interpretations of what layers 5 or 6 could be (you could say layer 5 is TLS or something!) but they don’t have a clear correspondence like “every layer has a corresponding header in the TCP packet” the way layers 2, 3, and 4 do. - -Also, some parts of TCP/IP don’t fit well into the OSI model even around layers 2-4 – for example, what layer is an ARP packet? ARP packets send some data with an Ethernet header, so does that mean they’re layer 3? Layer 2? The Wikipedia article listing different OSI layers categorizes it under “layer 2.5” which is pretty unsatisfying. - -This is only really a problem because the OSI model is sometimes used to teach TCP/IP, and it’s confusing if it’s not made clear which parts of the model map well to TCP/IP and which don’t. - -### the OSI model as an abstraction for comparing networking protocols - -Another way of thinking of OSI that I’ve heard is that it’s an abstraction you can use to draw analogies between lots of different networking protocols. For example, if you want to understand how Bluetooth works, maybe you can use the OSI model to help you – here’s an diagram I found on [this page][1] showing how Bluetooth fits into the OSI model. - -![][2] - -As another example of this, [this Wikipedia article][3] has a list of OSI layers and which specific networking protocols correspond to those OSI layers. - -### the OSI model as a literal description of some obsolete protocols - -Some very brief research on Wikipedia says that in addition to an abstract description of 7 layers, the OSI model also contained a [bunch of specific protocols implementing those layers][4]. Apparently this happened during the [Protocol Wars][5] in the 70s and 80s, where the OSI model lost and TCP/IP won. - -This explains why the OSI model doesn’t really correspond that well to TCP/IP, since if the OSI protocols had “won” then the OSI model _would_ correspond exactly to how internet networking actually works. - -### that’s all! - -I’m writing this because when I originally learned about the OSI model I found it super confusing (what are all these layers? are they real? is this actually how networking works? what’s happening?) and I wish someone had told me that (as someone who does not work with any networking protocols other than TCP/IP) I could just learn how layers 2, 3, 4, and 7 relate to TCP/IP and then ignore everything else about it. So hopefully this will help clear things up for somebody! - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/ - -作者:[Julia Evans][a] -选题:[lujun9972][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://flylib.com/books/en/4.215.1.116/1/ -[2]: https://jvns.ca/images/bluetooth.gif -[3]: https://en.wikipedia.org/wiki/List_of_network_protocols_(OSI_model) -[4]: https://en.wikipedia.org/wiki/OSI_protocols -[5]: https://en.wikipedia.org/wiki/Protocol_Wars diff --git a/translated/tech/20210511 What is the OSI model.md b/translated/tech/20210511 What is the OSI model.md new file mode 100644 index 0000000000..5e335ed75e --- /dev/null +++ b/translated/tech/20210511 What is the OSI model.md @@ -0,0 +1,89 @@ +[#]: subject: (What is the OSI model?) +[#]: via: (https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/) +[#]: author: (Julia Evans https://jvns.ca/) +[#]: collector: (lujun9972) +[#]: translator: (hanszhao80) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +OSI 模型是什么? +====== + +今天我在推特上发布了一些关于 OSI 模型如何与 TCP/IP 工作原理的实际表现不相符的观点,这让我思考——OSI 模型到底是什么?通过阅读推特上的一些回复发现,似乎至少存在三种不同的思考方式: + +1. TCP/IP 工作原理的字面描述 +2. 一个可以用来描述和比较很多不同的网络协议的抽象模型 +3. 对 1980 年代的一些计算机网络协议的字面描述,这些协议如今大多已不再使用 + +在这篇文章中,我不打算试图争辩以上哪一个才是“真正”的 OSI 模型——似乎不同的人以所有这些方式思考它。这不重要。 + +### OSI 模型有七层 + +在我们讨论 OSI 模型的含义之前,让我们大致地讨论一下它是什么。它是一个抽象模型,用于描述网络如何在七个编号的层上工作: + +- 第一层:物理层 +- 第二层:数据链路层 +- 第三层:网络层 +- 第四层:传输层 +- 第五层:会话层 +- 第六层:表示层 +- 第七层:应用层 + +我不会再费时地去解释每一层的含义,网上有上千种解释可供查询。 + +### OSI 模型:TCP/IP 工作原理的字面描述 + +首先,我想谈谈人们在实践中使用 OSI 模型的一种常见方式:作为对 TCP/IP 工作原理的字面描述。OSI 模型的某些层非常容易映射到 TCP/IP: + +- 第二层对应以太网 +- 第三层对应 IP +- 第四层对应 TCP 或 UDP(或 ICMP 等) +- 第七层对应 TCP 或 UDP 包内的任何内容(例如 DNS 查询) + +这种映射对第二、三、四层很有意义——TCP 数据包有三个标头header对应于这三个层(以太网标头、IP 标头和 TCP 标头)。 + +用数字来描述 TCP 数据包中的不同标头非常有用——如果你说“第二层”,很显然它位于第三层“下方”,因为二比三小。 + +“OSI 模型作为字面描述”的古怪之处在于,第五层和第六层并不真正对应于 TCP/IP 中的任何内容——我听说过很多关于第五层或第六层可能是什么的不同解释(你可以说第五层是 TLS 或其他东西!)但它们没有像第二、三、四层那样“每一层在 TCP 数据包中都有相应的标头”这样的明确对应关系。 + +此外,TCP/IP 的某些部分即使在第二层到第四层也不能很好地适应 OSI 模型——例如,哪一层是 ARP 数据包?ARP 数据包发送一些带有以太网标头的数据,这是否意味着它们是第三层?或是第二层?列出不同 OSI 层的维基百科文章将其归类为“第 2.5 层”,这并不令人满意。 + +因为 OSI 模型有时用于教授 TCP/IP,若搞不清楚它的哪些部分与 TCP/IP 映射良好,而哪些部分不能,则会令人困惑。这才是真的问题。 + +### OSI 模型:用于比较网络协议的一个抽象 + +我听说过的另一种关于 OSI 的思考方式是,它是一种抽象,可以用来在许多不同的网络协议之间进行类比。例如,如果你想了解蓝牙协议的工作原理,也许你可以使用 OSI 模型来帮助你——这是我在 [这个网页][1] 上找到的一张图表,显示了蓝牙协议如何适配 OSI 模型。 + +![][2] + +另一个例子是,[这篇维基百科文章][3] 有一个 OSI 层列表,详细划分了哪些特定的网络协议对应于这些 OSI 层。 + +### OSI 模型:一些过时协议的字面描述 + +维基百科上的一些非常简短的研究表明,除了对这七层的抽象描述之外,OSI 模型还包含了 [一组实现这些层的特定协议][4]。显然,这发生在 70 年代和 80 年代的 [协议战争][5] 时期,OSI 模型失败了,TCP/IP 则取得了胜利。 + +这就解释了为什么 OSI 模型无法与 TCP/IP 很好地对应,因为如果当时“获胜”的是 OSI 协议,那么 OSI 模型 _将_ 完全对应于互联网网络的实际工作方式。 + +### 结语 + +我写这篇文章的初衷是,当我最初学习 OSI 模型时,我发现它非常令人困惑(所有这些层是什么?它们是真实存在的吗?这是网络的实际工作原理吗?发生了什么?)我希望有人告诉我这个只使用 TCP/IP 网络协议的人,只需了解 OSI 模型第二、三、四和七层与 TCP/IP 的关系,然后忽略它的所有其他内容即可。所以我希望这篇文章对某些人能有所帮助! + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://flylib.com/books/en/4.215.1.116/1/ +[2]: https://jvns.ca/images/bluetooth.gif +[3]: https://en.wikipedia.org/wiki/List_of_network_protocols_(OSI_model) +[4]: https://en.wikipedia.org/wiki/OSI_protocols +[5]: https://en.wikipedia.org/wiki/Protocol_Wars From ead4914fa3cb8321969d6f9d73dab6ccf75d4279 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 21:58:53 +0800 Subject: [PATCH 0191/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220629=20AI-=20Some=20History=20and=20a=20Lot=20Mo?= =?UTF-8?q?re=20about=20Matrices.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e History and a Lot More about Matrices.md | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 sources/tech/20220629 AI- Some History and a Lot More about Matrices.md diff --git a/sources/tech/20220629 AI- Some History and a Lot More about Matrices.md b/sources/tech/20220629 AI- Some History and a Lot More about Matrices.md new file mode 100644 index 0000000000..51cf393255 --- /dev/null +++ b/sources/tech/20220629 AI- Some History and a Lot More about Matrices.md @@ -0,0 +1,105 @@ +[#]: subject: "AI: Some History and a Lot More about Matrices" +[#]: via: "https://www.opensourceforu.com/2022/06/ai-some-history-and-a-lot-more-about-matrices/" +[#]: author: "Deepu Benson https://www.opensourceforu.com/author/deepu-benson/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +AI: Some History and a Lot More about Matrices +====== + +![AI-Some-History-and-a-Lot-More-about-Matrices][1] + +*In the first article on this series on AI (published in OSFY, June 2022), we discussed how fields like AI, machine learning, deep learning, data science, etc, are related yet distinct from each other. We also made a few difficult choices regarding the programming language, tools, etc, which will be used throughout this series. Finally, we started discussing matrices. In this article, we will discuss more about matrix theory, the heart of AI. But before we proceed any further, let us discuss the history of AI.* + +first of all, why is a discussion on the history of AI essential? Well, there were a few times in history when there was great enthusiasm around research on AI, but on many of those occasions the huge expectations about the potential of AI went wrong. So, we need to learn some history of AI to understand whether this time we really are going to do wonders with AI or is it yet another bubble that is about to burst. + +One important question that needs to be answered is: when did our fascination for artificial intelligence start? Was it after the invention of digital computers or did it start even before? I believe the quest for an omniscient being capable of answering all questions dates back to the beginning of civilisation. The Oracle of Delphi in the ancient times was one such supposedly divine being capable of answering all the queries asked by people. The quest for creative machines outwitting human intelligence was also fascinating to us from ancient times. There were several failed attempts to make machines capable of playing chess. For example, Mechanical Turk was an infamous fake chess playing machine constructed in the late 18th century. The inventions of logarithm by John Napier, the Pascal’s calculator by Blaise Pascal, difference engine by Charles Babbage, etc, were all predecessors to the development of artificial intelligence. Further, if you go through the history of mankind, you will find countless other real and imaginary (fake) moments hoping to achieve intelligence beyond the reach of the human brain. However, irrespective of all these achievements, the search for true AI began with the invention of digital computers. + +However, if that is the case, the important question is: what were some of the milestones in the history of AI up until today? As mentioned earlier, the invention of digital computers is the single most significant event in the search for artificial intelligence. Unlike electro-mechanical devices where scalability was dependent on power requirements, digital devices simply benefited technological advancement like the transition from vacuum tubes to transistors to integrated circuits to present day very large-scale integration (VLSI) technology. + +Another important phase in the development of AI could be traced back to the first theoretical analysis of AI by Allan Turing. The Turing test proposed by him suggests one of the earliest methods to test artificial intelligence. The test may not be relevant today but it was one of the first attempts to define artificial intelligence. It can be summarised as follows. Behind a curtain, there is either a person named A or a machine named B. You can talk with him/it for say 30 minutes, after which you should be able to identify whether you were conversing with a person or a machine. With the powerful chatbots of today, it is easy to see that such a test will not identify true AI. But in the early 1950s this did give a theoretical framework to understand AI. + +In the late 1950s, a programming language called Lisp was developed by John McCarthy. This was one of the earliest high-level programming languages. Until then, machine languages and assembly languages (notoriously difficult to use) were used for computer programming. A very powerful machine, a very powerful language to communicate with it, and computer scientists being the optimists and dreamers made the hope for artificially intelligent machines reasonable for the first time in the history of humanity. In the early 1960s, the hopes for artificially intelligent machines were at their peak. Of course, there were a lot of developments in the computing world, but were there any wonders? Sadly, no. So, the 1960s saw hope and despair about AI for the first time. However, computer science was developing at a pace that is unparalleled in any field of human endeavour. + +Then came the 70s and the 80s, where algorithms played a major role. A lot of new and efficient algorithms were developed during this period. The famous textbook ‘The Art of Computer Programming’ written by Donald Knuth (I request you to read about this person, in the world of computer science he is either Gauss or Euler) had its first volume published in the late 1960s marking the beginning of the algorithmic era. A lot of general and graph algorithms were developed during these years. Further, programming based on artificial neural networks was also introduced during this time. Though McCulloch and Pitts were the pioneers in proposing artificial neural networks as far back as the 1940s, it took decades to become a mainstream technique. Today, deep learning is almost exclusively based on artificial neural networks. Such developments in the field of algorithms led to a resurgence in research in the field of artificial intelligence in the 1980s. However, this time, limitations in communication and computing powers derailed progress in this area. For a second time, AI couldn’t live up to the huge expectations it had generated. Then came the 90s, Y2K, and the present day. Once again there is a lot of enthusiasm and hope about the positive impact of AI based applications. + +Based on our discussion, it is easy to see that there were at least two other occasions in the digital era when AI was promising. On both those occasions AI didn’t live up to its expectations. Is the current enthusiasm around AI a similar one? Of course, this is a very difficult question to answer. But in my personal opinion, this time AI is going to make a huge impact. But what are the factors that made me make such a prediction? First, very powerful computing devices are cheaply available nowadays. Unlike in the 1960s or 1980s, when a handful of such powerful machines were available, we now have them in the millions and billions. Second, there are large data sets available today for training AI and machine learning based applications. Imagine an AI engineer working in the field of digital image processing in the 90s. How many digital images were available for training his/her algorithms? Well, maybe a few thousands or tens of thousands. A cursory search on the Internet will tell you that the data science platform Kaggle (a subsidiary of Google) itself has more than ten thousand data sets. The large amount of data produced on the Internet every day makes training of algorithms a lot easier. Third, high speed connectivity has made it easy to collaborate with large groups. Imagine the difficulty of computer scientists collaborating with each other until the first decade of the 21st century. The present day speed of the Internet has made collaborative AI based projects like Google Colab, Kaggle, Project Jupyter, etc, a reality. Owing to these three factors, I believe this time AI is here for good and will have some excellent applications. + +![Matrices A, B, C and D][2] + +### More about matrices + +Now that we are somewhat familiar with the history of AI, it is time to revisit one of the main themes of this tutorial on AI — matrices and vectors. In the last article, we began discussing these. This time we are going to dive a little deeper into the world of matrix theory. I will begin by pointing your attention to Figures 1 and 2, which show eight matrices (A, B, C and D, and matrices E, F, G and H). Why so many matrices in a tutorial on AI and machine learning? First, as mentioned in the previous article in this series, matrices are the core of linear algebra, and linear algebra is the heart of machine learning, if not the brain. Second, each of these matrices does serve a specific purpose in the following discussion. + +![Matrices E, F, G and H][3] + +Let us see how matrices can be represented and how some details about them can be obtained. Figure 3 shows how matrix A is represented with NumPy. Though they are not equivalent, we use the terms matrix and array as if they are synonyms. + +![Matrix A with NumPy][4] + +I urge you to carefully learn how a matrix is created using the function array of NumPy. There is also a function matrix offered by NumPy to create two-dimensional arrays and matrices. However, this function will be deprecated in the future and its use is no longer encouraged. We have created matrix A and Figure 3 also shows some details about it. The line of code A.size tells us about the number of elements in the array. In this case, it is 9. The line of code A.nidm tells the dimension of the array. In this case, it is easy to see that matrix A is two-dimensional. The line of code A.shape gives us the order of matrix A. The order of a matrix is the number of rows and columns of that matrix. Notice that A is a 3 x 3 matrix (3 rows and 3 columns). Though I am not explaining any further, knowing the size, dimension, and shape of an array is a little tricky with NumPy. Figure 4 shows you why the size, dimension and shape of a matrix should be identified carefully. Minor changes while defining an array could lead to changes in its size, shape, and dimension. Hence, from Figure 4, it is clear that a programmer should be extra careful while defining matrices. + +![Size, dimension and shape of an array][5] + +Now let us perform some basic matrix operations. Figure 5 shows how two matrices A and B are added. Indeed, there are two distinct Pythonic ways to add the two matrices, either using the function add of NumPy or the operator plus (+) for matrix addition. A very important point to remember is that two matrices can be added only if they are of the same order. For example, two 4 x 3 matrices can be added whereas a 3 x 4 matrix and a 2 x 3 matrix cannot be added. However, since programming is different from mathematics, NumPy does not follow this rule in practice. Figure 5 also shows how matrices A and D are added. Remember that, in the mathematical world, this sort of matrix addition is not valid. A rule called broadcasting decides how matrices of different orders should be added. We won’t be discussing broadcasting at this point but if you are familiar with C or C++, then typecasting of variables might give you a hint as to what happens when broadcasting rules are applied in Python. So, if you want to make sure that you are performing matrix addition in the true mathematical sense, it would be safe if the following test is performed and the answer is True: + +![Matrix addition][6] + +``` +A.shape == B.shape +``` + +It can be verified that if you try to add matrices D and H, then it will give you an error. + +Please don’t think that matrix addition is the only operation we are going to spend time on. Of course, there are a lot more matrix operations. Matrix subtraction and multiplication are illustrated in Figure 6. Notice that subtraction and multiplication also have two distinct Pythonic ways to perform the required operations. The function subtract or the operator for matrix subtraction (-) and the function matmul or the operator for matrix multiplication (@), can be used for performing matrix subtraction and multiplication, respectively. Execution of the operator * is also shown in Figure 3. Notice that the function matmul of NumPy and the operator @ perform matrix multiplication in the mathematical sense. So, be careful with the operator * while dealing with matrices. + +![More matrix operations][7] + +Two matrices of order (m x n) and (p x q) can be multiplied if and only if n is equal to p. Further, the product matrix will be of order (m x q). Figure 7 shows more examples of matrices being multiplied. Notice that E@A is possible whereas A@E leads to an error. Carefully go through the examples of D@G and G@D. Using the shape attribute, identify which among the eight matrices can be multiplied with each other. Though by the strict mathematical definition, a matrix is two-dimensional, we will be dealing with arrays of higher dimensions. So, just to give an example, let us see how a three-dimensional array is represented using NumPy. The following line of code creates a three-dimensional array named T. + +![More examples of matrix multiplication][8] + +``` +T = np.arr ay([[[11,22],[33,44]],[[55,66],[77,88]]]) +``` + +### An introduction to Pandas + +So far, we were entering matrices from the keyboard. What if we want to read a large matrix from a text file or a data set (very large for that matter) and process it? Here comes another powerful Python library to our rescue, Pandas. Let us begin by reading a small CSV (comma-separated value) file, which is a type of text file (don’t worry, soon we will read Microsoft Excel and LibreOffice/OpenOffice Calc files). Figure 8 shows how a CSV file called cricket.csv is read, and the first three lines in it are printed on the terminal. More features of Pandas will be discussed in the coming articles in this series. + +![Reading a CSV file with Pandas][9] + +### Rank of a matrix + +The rank of a matrix is the dimension of the vector space spanned by its rows (columns). The three italicised words, dimension, vector space and spanned, may not be familiar to you unless you remember your college level linear algebra. If you fully understand what is meant by the rank of a matrix, I am happy and no further explanation is required. However, if you are not familiar with the terms, think of it as the amount of information contained in the matrix. Again, this is a gross oversimplification and I am not proud of it. Figure 9 shows how the ranks of matrices are found out. Matrix A has rank 3 because none of its rows can be obtained from any other rows in it. Matrix B’s rank is just 1, because the second and third rows can be obtained by multiplying the first row ([1, 2, 3]) with 2 and 3, respectively. Matrix C only has one non-zero row and hence has rank 1. Similarly, the ranks of the other matrices can also be understood. Rank is very relevant in our discussion and we will revisit this topic in later articles in this series. + +![Finding the rank of a matrix][10] + +Now it is time for us to wind up our discussion for this month. In the next article in this series, we will add more tools to our arsenal so that they can be used for developing AI and machine learning based applications. We will also discuss terms like neural networks, supervised learning, unsupervised learning, etc, in more detail. Further, from the next article onwards, we will use JupyterLab in place of the Linux terminal. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/ai-some-history-and-a-lot-more-about-matrices/ + +作者:[Deepu Benson][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/deepu-benson/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/AI-Some-History-and-a-Lot-More-about-Matrices-1.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Matrices-A-B-C-and-D.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Matrices-E-F-G-and-H.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Matrix-A-with-NumPy-350x167.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-4-Size-dimension-and-shape-of-an-array-350x292.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-5-Matrix-addition-350x314.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-6-More-matrix-operations-1-350x375.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-7-More-examples-of-matrix-multiplication-590x293.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-8-Reading-a-CSV-file-with-Pandas-350x123.jpg +[10]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-9-Finding-the-rank-of-a-matrix-350x366.jpg From 2646c7312a7c88670f212b29aa6233b919e6e63b Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 29 Jun 2022 22:01:21 +0800 Subject: [PATCH 0192/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220629=20ABCs=20of=20FreeDOS-=2026=20commands=20I?= =?UTF-8?q?=20use=20all=20the=20time.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...FreeDOS- 26 commands I use all the time.md | 556 ++++++++++++++++++ 1 file changed, 556 insertions(+) create mode 100644 sources/tech/20220629 ABCs of FreeDOS- 26 commands I use all the time.md diff --git a/sources/tech/20220629 ABCs of FreeDOS- 26 commands I use all the time.md b/sources/tech/20220629 ABCs of FreeDOS- 26 commands I use all the time.md new file mode 100644 index 0000000000..36d120b9d2 --- /dev/null +++ b/sources/tech/20220629 ABCs of FreeDOS- 26 commands I use all the time.md @@ -0,0 +1,556 @@ +[#]: subject: "ABCs of FreeDOS: 26 commands I use all the time" +[#]: via: "https://opensource.com/article/22/6/26-freedos-commands" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +ABCs of FreeDOS: 26 commands I use all the time +====== +On its 28th anniversary, I'm pleased to share my top 26 favorite FreeDOS commands. + +![FreeDOS fish logo and command prompt on computer][1] + +Image by: Jim Hall, CC BY-SA 4.0. + +One of my family's first computers ran a command-line operating system called DOS, the "Disk Operating System." I grew up with DOS, and learned to leverage the command line to make my work easier. And so did a lot of other people. We loved DOS so much that in 1994, we created the FreeDOS Project. Today on June 29, we celebrate 28 years of FreeDOS. + +If you're new to FreeDOS, you may be confused about how to use the different command line programs that come with it. Let's get started with 26 of my favorite FreeDOS commands. To learn more, add the /? option after most commands to get more information: + +``` +C:\>attrib /? +ATTRIB v2.1 - Displays or changes file attributes. +Copyright (c) 1998-2003, licensed under GPL2. + +Syntax: ATTRIB { options | [path][file] | /@[list] } + +Options: + +  +H Sets the Hidden attribute.     -H  Clears the Hidden attribute. +  +S Sets the System attribute.     -S  Clears the System attribute. +  +R Sets the Read-only attribute.  -R  Clears the Read-only attribute. +  +A Sets the Archive attribute.    -A  Clears the Archive attribute. + +  /S Process files in all directories in the specified path(es). +  /D Process directory names for arguments with wildcards. +  /@ Process files, listed in the specified file [or in stdin]. + +Examples: + +  attrib file -rhs +  attrib +a -r dir1 dir2*.dat /s +  attrib -hs/sd /@list.txt *.* +``` + +### A is for ATTRIB + +The `ATTRIB` program displays or changes a file's *attributes*. An attribute can be one of four values: Hidden (H), System (S), Read-only (R), and Archive (A). + +Files marked as Hidden don't display in a directory listing. For example, suppose you want to "hide" a file called `SECRET.TXT` so no one would know it was there. First, you can show the attributes on that file to see its current settings: + +``` +C:\FILES>attrib secret.txt +[----A] SECRET.TXT +``` + +To hide this file, turn on the Hidden attribute by using the plus (`+` ) operator, like this: + +``` +C:\FILES>attrib +h secret.txt +[----A] -> [-H--A] SECRET.TXT +C:\FILES>dir + Volume in drive C is FREEDOS2022 + Volume Serial Number is 333D-0B18 + + Directory of C:\FILES + +.                    05-27-2022  9:22p +..                    05-27-2022  9:22p +         0 file(s)              0 bytes +         2 dir(s)     279,560,192 bytes free +``` + +Another common way to use `ATTRIB` is by manipulating the Read-only attribute, so you don't accidentally overwrite an important file. Suppose you want to protect the `SECRET.TXT` file so you can't delete or change it. Turn on the Read-only attribute like this, with the `+R` modifier: + +``` +C:\FILES>attrib +r secret.txt +[----A] -> [---RA] SECRET.TXT +C:\FILES>del secret.txt +C:\FILES\SECRET.TXT: Permission denied +no file removed. +``` + +### B is for BEEP + +If you need to add a little pizzazz to a batch file, you can use the `BEEP` command to get the user's attention. `BEEP` doesn't display anything to the screen, but simply generates a classic “beep” tone. + +Note that `BEEP` uses the PC's built-in speaker to make the “beep” sound. If you boot FreeDOS using a virtual machine, check that your system is set up to correctly emulate the PC speaker. Otherwise, you will not hear anything. + +### C is for CD + +Like Linux, FreeDOS supports directories, which allow you to organize your files in a way that makes sense to you. For example, you might keep all of your files in a directory called `FILES`, and you might have other directories inside `FILES` for certain kinds of files, such as `DOCS` for word processor files, or `SPRDSHT` for spreadsheet files. + +You can navigate into a directory using the `CD` or *change directory* command. The `CHDIR` command is the same as `CD`, if you prefer to use that syntax. + +To change into a new directory, use the `CD` command with the destination directory: + +``` +C:\>cd files +C:\FILES>cd sprdsht +C:\FILES\SPRDSHT>dir +Volume in drive C is FREEDOS2022 +Volume Serial Number is 333D-0B18 +  +Directory of C:\FILES\SPRDSHT +  +. 05-27-2022 9:59p +.. 05-27-2022 9:59p +FIB WKS 2,093 05-27-2022 10:07p +LAB1 WKS 2,087 05-27-2022 10:10p +MIS100 WKS 2,232 05-27-2022 10:05p +3 file(s) 6,412 bytes +2 dir(s) 279,527,424 bytes free +``` + +You don't have to navigate one directory at a time. You can instead provide the full directory path you want to change to, with one `CD` command: + +``` +C:\>cd \files\sprdsht +C:\FILES\SPRDSHT>dir +Volume in drive C is FREEDOS2022 +Volume Serial Number is 333D-0B18 +  +Directory of C:\FILES\SPRDSHT +  +.   05-27-2022 9:59p +.. 05-27-2022 9:59p +FIB WKS 2,093 05-27-2022 10:07p +LAB1 WKS 2,087 05-27-2022 10:10p +MIS100 WKS 2,232 05-27-2022 10:05p +3 file(s) 6,412 bytes +2 dir(s) 279,527,424 bytes free +``` + +### D is for DELTREE + +If you need to delete a single file, you can use the `DEL` command. To remove an empty directory, you can use the `RMDIR` or `RD` commands. But what if you want to delete a directory that has lots of files and subdirectories inside it? + +A directory with other directories inside it is called a *directory tree*. You can delete an entire directory tree with the `DELTREE` command. For example, to delete your `FILES` directory, including all the files and directories it contains, type this command: + +``` +C:\>deltree files + +    [DEFAULT-BUILD v1.02g] of DELTREE.  The "ROOT-SAFETY-CHECK" is enabled. + +Delete directory "C:\FILES" +and all its subdirectories? + +[Y] [N] [Q], [ENTER] ?  Y + +==> Deleting "C:\FILES" ... +``` + +You can easily and quickly wipe out a lot of work with a single `DELTREE` command, so the FreeDOS `DELTREE` prompts you to ask if this is really something you want to do. Use this command carefully. + +### E is for EDIT + +If you need to edit a text file on FreeDOS, the `EDIT` program lets you do that quickly and easily. For example, to start editing a file called `HELLO.TXT`, type `EDIT HELLO.TXT`. If the `HELLO.TXT` file already exists, `EDIT` opens the file for editing. If `HELLO.TXT` doesn't exist yet, then `EDIT` starts a new file for you. + +![Image of edit][3] + +FreeDOS `EDIT` uses a friendly interface that should be easy for most people to use. Use the menus to access the various features of EDIT, including saving a file, opening a new file, or exiting the editor. To access the menus, tap the Alt key on your keyboard, then use the arrow keys to get around and Enter to select an action. + +![Image of save menu][4] + +### F is for FIND + +If you need to find text in a file, the `FIND` command does the job. Similar to `fgrep` on Linux, `FIND` prints lines that contain a string. For example, to check the "Menu Default" entry in the `FDCONFIG.SYS` file, use `FIND` like this: + +``` +C:\>find "MENUDEFAULT" fdconfig.sys + +---------------- FDCONFIG.SYS +MENUDEFAULT=2,5 +``` + +If you aren't sure if the string you want to find uses uppercase or lowercase letters, add the `/I` option to ignore the letter case: + +``` +C:\>find /i "menudefault" fdconfig.sys +---------------- FDCONFIG.SYS +MENUDEFAULT=2,5 +``` + +### G is for GRAPHICS + +If you want to capture a screen, you might use the **PrtScr** (Print Screen) key on your keyboard to print the text on your monitor directly to a printer. However, this only works for plain text. If you want to print graphic screens, you need to load the `GRAPHICS` program. + +`GRAPHICS` supports different printer types, including HP PCL printers, Epson dot matrix printers, and PostScript-compatible printers. For example, if you have an HP laser printer connected to your computer, you can load support for that printer by typing this command: + +``` +C:\>graphics hpdefault +Running in MS GRAPHICS compatibility mode... +Using HPPCL type for type hpdefault +  If you think this is not correct, mail me (see help text). +Printing black as white and white as black +which internally uses /I of this GRAPHICS. +You can use the following command directly instead of +GRAPHICS [your options] in the future: +LH GRAPH-HP /I +Note that GRAPH-HP allows extra options: +  /E economy mode, /1 use LPT1, /2 use LPT2, /3 use LPT3, +  /R for random instead of ordered dither +  /C for 300dpi instead of 600dpi +Driver to make 'shift PrtScr' key work +even in CGA, EGA, VGA, MCGA graphics +modes loaded, in HP PCL mode. +``` + +### H is for HELP + +If you're new to FreeDOS, you can get hints on how to use the different commands by typing `HELP`. This brings up the FreeDOS Help system, with documentation on all the commands: + +![Image of FreeDos help system][6] + +### I is for IF + +You can add conditional statements to your command line or *batch file* using the `IF` statement. `IF` makes a simple test, then executes a single command. For example, to print the result "It's there" if a certain file exists, you can type: + +``` +C:\>if exist kernel.sys echo It's there +It's there +``` + +If you want to test the opposite, use the `NOT` keyword before the test. For example, to print "Not equal" if two strings are not the same value, type this: + +``` +C:\>if not "a"=="b" echo Not equal +Not equal +``` + +### J is for JOIN + +Early DOS versions were fairly simple; the first version of DOS didn't even support directories. To provide backwards compatibility for those older programs, we have the `JOIN` program as a neat workaround. `JOIN` replaces a path with a drive letter, so you can put an old program in its own subdirectory, but access it using a single drive letter. + +Let's say you had an old application called `VC` that doesn't understand directories. To keep working with `VC`, you can "join" its path to a drive letter. For example: + +``` +JOIN V: D:\VC +``` + +FreeDOS implements `JOIN` as `SWSUBST`, which also combines features from the similar `SUBST` command. To join the `D:\VC` path to a new drive letter called `V:`, type: + +``` +C:\>swsubst v: d:\vc +C:\>dir v: +Volume in drive V is DATA +Volume Serial Number is 212C-1DF8 + +Directory of V:\ + +. 02-21-2022 10:35p +.. 02-21-2022 10:35p +VC COM 27,520 07-14-2019 4:48p + +1 file(s) 27,520 bytes +2 dir(s) 48,306,176 bytes free +``` + +### K is for KEYB + +DOS assumes a US keyboard layout by default. If your keyboard is different, you can use the `KEYB` command to load a new keyboard language layout. For example, to load a German keyboard layout, type: + +``` +C:\>keyb gr +FreeDOS KEYB 2.01 - (c) Aitor Santamaría Merino - GNU GPL 2.0 +Keyboard layout : C:\FREEDOS\BIN\KEYBOARD.SYS:GR [858] (3) +``` + +### L is for LABEL + +FreeDOS names each floppy drive and hard drive with a *label*. These labels provide a handy way to identify what a disk might contain. The `LABEL` command was immensely useful when you needed store files across a number of different floppy disks, where you might label one floppy "Data" and another floppy as "Games." + +To assign a new label to a drive, or to change the existing label on a drive, use LABEL like this: + +``` +D:\>label d: data +D:\>dir /w +Volume in drive D is DATA +Volume Serial Number is 212C-1DF8 + +Directory of D:\ + +[123] [ABILITY] [ASEASY] [GAMES2] [QUATTRO] +[SRC] [TEMP] [THE] [VC] [WORD] +[WS400] EDLIN16.EXE EDLIN32.EXE MYENV.BAT +3 file(s) 113,910 bytes +11 dir(s) 48,306,176 bytes free +``` + +### M is for MEM + +Running programs and loading drivers takes memory. To see how much memory your system has, and how much memory is free for running DOS programs, use the `MEM` command: + +``` +C:\>mem + +Memory Type Total Used Free +---------------- -------- -------- -------- +Conventional 639K 11K 628K +Upper 104K 18K 86K +Reserved 281K 281K 0K +Extended (XMS) 15,224K 537K 14,687K +---------------- -------- -------- -------- +Total memory 16,248K 847K 15,401K +  +Total under 1 MB 743K 29K 714K +  +Total Expanded (EMS) 8,576K (8,781,824 bytes) +Free Expanded (EMS) 8,192K (8,388,608 bytes) +  +Largest executable program size 628K (643,104 bytes) +Largest free upper memory block 84K ( 85,728 bytes) +FreeDOS is resident in the high memory area. +``` + +### N is for NANSI + +If you want to add a little color to the FreeDOS command line, you can use ANSI escape sequences. These sequences are so named because each starts with code 33 (the `ESC` character) and a special sequence of characters, as defined by the American National Standards Institute, or ANSI. + +FreeDOS supports ANSI escape sequences through the `NANSI.SYS` driver. With `NANSI` loaded, your FreeDOS console interprets the ANSI escape sequences, such as setting the text colors. + +![Image of Nansi][8] + +### O is for oZone + +FreeDOS is a command line operating system, but some folks prefer to use a graphical user interface instead. That's why FreeDOS 1.3 includes several graphical desktops. One desktop I like is called oZone, which provides a sleek, modern-looking interface. + +![Image of Ozone GUI][9] + +Note that oZone has a few annoying bugs, and could use some love from a developer out there. If you're interested in making oZone even better, feel free to download the source code. + +### P is for PROMPT + +The standard FreeDOS command-line prompt tells you where you are in the filesystem. When you first boot FreeDOS, your prompt looks like `C:\>`, which means the "\" (root) directory on the "C:" drive. The ">" character indicates where you can type a command. + +If you prefer different information on your prompt, use the `PROMPT` command to change it. You can represent different information with a special code preceded with `$`, such as `$D` for the date and `$T` for the time. For example, you can make your FreeDOS command line look like a Linux prompt with the `$$` instruction, to print a single dollar sign: + +``` +C:\>prompt $$ +$ +``` + +Type `PROMPT /?` to see a list of all special codes. + +### Q is for QBASIC + +FreeDOS doesn't actually have QBASIC. That was a proprietary BASIC programming environment for MS-DOS. Instead, we provide several open source compilers, including some for BASIC programming. + +The FreeBASIC Compiler should compile most QBASIC programs out there. Here's a simple "guess the number" example: + +``` +dim number as integer +dim guess as integer +randomize timer +number = int( 10 * rnd() ) + 1 +print "Guess the number from 1 to 10:" +do +input guess +if guess < number then print "Too low" +if guess > number then print "Too high" +loop while guess <> number +print "That's right!" +``` + +Use the `FBC` command to compile the program with FreeBASIC: + +``` +C:\DEVEL\FBC>fbc guess.bas +``` + +Here's a quick demonstration of that simple game: + +``` +C:\DEVEL\FBC>guess +Guess the number from 1 to 10: +? 5 +Too high +? 3 +Too low +? 4 +That's right! +``` + +### R is for REM + +Comments are great when writing programs; comments help us understand what the program is supposed to do. You can do the same in batch files using the `REM` command. Anything after the `REM` is ignored in a batch file. + +``` +REM this is a comment +``` + +### S is for SET + +The FreeDOS command line uses a set of variables called *environment variables* that let you customize your system. You can set these variables with the `SET` command. For example, use the `DIRCMD` variable to control how `DIR` arranges directory listings. To set the `DIRCMD` variable, use the `SET` command: + +``` +SET DIRCMD=/O:GNE +``` + +This tells `DIR` to order (O) the output by grouping (G) directories first, then sorting the results by name (N) and extension (E). + +### T is for TYPE + +The `TYPE` command is one of the most-often used DOS commands. `TYPE` displays the contents of a file, similar to `cat` on Linux. + +``` +C:\DEVEL>type hello.c +#include + +int +main() +{ +puts("Hello world"); +return 0; +} +``` + +### U is for UNZIP + +On Linux, you may be familiar with the standard Unix archive command: `tar`. There's a version of tar on FreeDOS too (and a bunch of other popular archive programs), but the de facto standard archiver on DOS is `ZIP` and `UNZIP`. Both are installed in FreeDOS 1.3 by default. + +Let's say I had a zip archive of some files. If I want to extract the entire Zip file, I could just use the `UNZIP` command and provide the Zip file as a command-line option. That extracts the archive starting at my current working directory. Unless I'm restoring a previous version of something, I usually don't want to overwrite my current files. In that case, I will want to extract the archive to a new directory. You can specify the destination path with the `-d` ("destination") command-line option: + +``` +D:\SRC>unzip monkeys.zip -d monkeys.new +Warning: TZ environment variable not found, cannot use UTC times!! +Archive: monkeys.zip +creating: monkeys.new/monkeys/ +inflating: monkeys.new/monkeys/banana.c +inflating: monkeys.new/monkeys/banana.obj +inflating: monkeys.new/monkeys/banana.exe +creating: monkeys.new/monkeys/putimg/ +inflating: monkeys.new/monkeys/putimg/putimg.c +inflating: monkeys.new/monkeys/putimg/putimg.obj +inflating: monkeys.new/monkeys/putimg/putimg.exe +``` + +To learn more about the `ZIP` and `UNZIP` commands, read [How to archive files on FreeDOS][11]. + +### V is for VER + +In the old days of DOS, the `VER` command reported the DOS distribution you were running, such as "MS-DOS 5.0.D" With FreeDOS, the `VER` command gives you additional details, such as the version of the FreeDOS Shell: + +``` +C:\DEVEL>ver +FreeCom version 0.85a - WATCOMC - XMS_Swap [Jul 10 2021 19:28:06] +``` + +If you also want to see the FreeDOS kernel version and the DOS compatibility level, add the `/R` option: + +``` +C:\DEVEL>ver /r + +FreeCom version 0.85a - WATCOMC - XMS_Swap [Jul 10 2021 19:28:06] + +DOS version 7.10 +FreeDOS kernel 2043 (build 2043 OEM:0xfd) [compiled May 14 2021] +``` + +### W is for WHICH + +The FreeDOS command line can run programs from a list of different directories, identified in a `PATH` variable. You can use the `WHICH` command to identify exactly where a program is located. Just type `WHICH` plus the name of the program you want to locate: + +``` +C:\>which xcopy +xcopy C:\FREEDOS\BIN\XCOPY.EXE +``` + +### X is for XCOPY + +The `COPY` command copies only files from one place to another. If you want to extend the copy to include any directories, use the `XCOPY` command instead. I usually add the `/E` option to include all subdirectories, including empty ones, so I can copy the entire directory tree. This makes an effective backup of any project I am working on: + +``` +D:\SRC>xcopy /e monkeys monkeys.bak +Does MONKEYS.BAK specify a file name +or directory name on the target (File/Directory)? d +Copying D:\SRC\MONKEYS\PUTIMG\PUTIMG.C +Copying D:\SRC\MONKEYS\PUTIMG\PUTIMG.OBJ +Copying D:\SRC\MONKEYS\PUTIMG\PUTIMG.EXE +Copying D:\SRC\MONKEYS\BANANA.C +Copying D:\SRC\MONKEYS\BANANA.OBJ +Copying D:\SRC\MONKEYS\BANANA.EXE +6 file(s) copied +``` + +### Y is for Yellow + +This isn't a command, but interesting trivia about how DOS displays colors. If you've looked carefully at FreeDOS, you've probably noticed that text only comes in a limited range of colors—sixteen text colors, and eight background colors. + +The IBM 5153 color display presented color to the user by lighting up tiny red, green, and blue phosphor dots at different brightness levels to create a palette of 16 text colors and 8 background colors. Early PCs could only display the background color in the "normal intensity" level; only text colors could use bright colors. + +If you look at the text colors, you have black, blue, green, cyan, red, magenta, orange, and white. The "bright" versions of these colors are bright black (a dull gray), bright blue, bright green, bright cyan, bright red, bright magenta, yellow, and bright white. The "bright" version of orange is actually yellow. There is no "bright orange." + +If you want to learn more about text colors, read our article about [Why FreeDOS has 16 colors][12]. + +### Z is for ZIP + +You can use `ZIP` at the DOS command line to create archives of files and directories. This is a handy way to make a backup copy of your work or to release a "package" to use in a future FreeDOS distribution. For example, let's say I wanted to make a backup of my project source code, which contains these source files: + +``` +D:\SRC>zip -9r monkeys.zip monkeys +zip warning: TZ environment variable not found, cannot use UTC times!! +adding: monkeys/ (stored 0%) +adding: monkeys/banana.c (deflated 66%) +adding: monkeys/banana.obj (deflated 26%) +adding: monkeys/banana.exe (deflated 34%) +adding: monkeys/putimg/ (stored 0%) +adding: monkeys/putimg/putimg.c (deflated 62%) +adding: monkeys/putimg/putimg.obj (deflated 29%) +adding: monkeys/putimg/putimg.exe (deflated 34%) +``` + +ZIP sports a ton of command-line options to do different things, but the command line options I use most are `-r` to process directories and subdirectories recursively, and `-9` to provide the maximum compression possible. `ZIP` and `UNZIP` use a Unix-like command line, so you can combine options behind the dash: `-9r` gives maximum compression and include subdirectories in the Zip file. + +For more details about how to use the `ZIP` and `UNZIP` commands, read [How to archive files on FreeDOS][13]. + +### New FreeDOS guides + +Ready for the next step in your FreeDOS journey? Check out our new eBooks and start experimenting with FreeDOS now! + +**[A guide to using FreeDOS][14]** + +**[An advanced guide to FreeDOS internals][15]** + +Image by: (Jim Hall, CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/26-freedos-commands + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/freedos-fish-laptop-color.png +[2]: https://opensource.com/article/22/6/linux-attr-command +[3]: https://opensource.com/sites/default/files/2022-06/FREEDedit_0.png +[4]: https://opensource.com/sites/default/files/2022-06/Freededit-save.png +[5]: https://opensource.com/Linux%20find%20cheat%20sheet +[6]: https://opensource.com/sites/default/files/2022-06/Freedhelp.system.png +[7]: https://opensource.com/article/22/6/linux-cheat-command +[8]: https://opensource.com/sites/default/files/2022-06/FreeDnansi.png +[9]: https://opensource.com/sites/default/files/2022-06/FreeDozone.png +[10]: https://opensource.com/article/21/1/fortran +[11]: https://opensource.com/article/21/6/archive-files-freedos +[12]: https://opensource.com/article/21/6/freedos-sixteen-colors +[13]: https://opensource.com/article/21/6/archive-files-freedos +[14]: https://opensource.com/downloads/guide-using-freedos +[15]: https://opensource.com/downloads/advanced-freedos From 3cf827f4b321b7938a77eef62ff0da5d9a150763 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 29 Jun 2022 22:15:14 +0800 Subject: [PATCH 0193/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20210511=20What=20is=20fog=20computing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20210511 What is fog computing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210511 What is fog computing.md b/sources/tech/20210511 What is fog computing.md index 7d1f54ee22..fb06329363 100644 --- a/sources/tech/20210511 What is fog computing.md +++ b/sources/tech/20210511 What is fog computing.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/fog-computing) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (hanszhao80) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -54,7 +54,7 @@ via: https://opensource.com/article/21/5/fog-computing 作者:[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/) 荣誉推出 From 7d21d62767a2a9d372d99478533f7fbfbbbff773 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 30 Jun 2022 08:24:03 +0800 Subject: [PATCH 0194/3123] translating --- ...ake a temporary file on Linux with Bash.md | 146 ------------------ ...ake a temporary file on Linux with Bash.md | 146 ++++++++++++++++++ 2 files changed, 146 insertions(+), 146 deletions(-) delete mode 100644 sources/tech/20220627 Make a temporary file on Linux with Bash.md create mode 100644 translated/tech/20220627 Make a temporary file on Linux with Bash.md diff --git a/sources/tech/20220627 Make a temporary file on Linux with Bash.md b/sources/tech/20220627 Make a temporary file on Linux with Bash.md deleted file mode 100644 index 95311b4a8c..0000000000 --- a/sources/tech/20220627 Make a temporary file on Linux with Bash.md +++ /dev/null @@ -1,146 +0,0 @@ -[#]: subject: "Make a temporary file on Linux with Bash" -[#]: via: "https://opensource.com/article/22/6/make-temporary-file-bash" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Make a temporary file on Linux with Bash -====== -The mktemp command on Fedora-based systems and tempfile on Debian-based systems are specially designed to alleviate that burden by making it easy to create, use, and remove unique files. - -![bash logo on green background][1] - -Image by: Opensource.com - -When programming in the Bash scripting language, you sometimes need to create a temporary file. For instance, you might need to have an intermediary file you can commit to disk so you can process it with another command. It's easy to create a file such as `temp` or anything ending in `.tmp`. However, those names are just as likely to be generated by some other process, so you could accidentally overwrite an existing temporary file. And besides that, you shouldn't have to expend mental effort coming up with names that seem unique. The `mktemp` command on Fedora-based systems and `tempfile` on Debian-based systems are specially designed to alleviate that burden by making it easy to create, use, and remove unique files. - -### Create a temporary file - -Both `mktemp` and `tempfile` create a temporary file as their default action and print the name and location of the file as output: - -``` -$ tempfile -/tmp/fileR5dt6r - -$ mktemp -/tmp/tmp.ojEfvMaJEp -``` - -Unless you specify a different path, the system places temporary files in the `/tmp` directory. For `mktemp`, use the `-p` option to specify a path: - -``` -$ mktemp -p ~/Demo -/home/tux/Demo/tmp.i8NuhzbEJN -``` - -For `tempfile`, use the `--directory` or `-d` option: - -``` -$ tempfile --directory ~/Demo/ -/home/sek/Demo/fileIhg9aX -``` - -### Find your temporary file - -The problem with using an auto-generated temporary file is that you have no way of knowing what its name is going to be. That's why both commands return the generated file name as output. You can use an interactive shell such as Konsole, GNOME Terminal, or [rxvt][2] to use the filename displayed on your terminal to interact with the file. - -However, if you're writing a script, there's no way for you to intervene by reading the name of the file and using it in the following commands. - -The authors of `mktemp` and `tempfile` thought of that problem, and there's an easy fix. The terminal sends output to a stream called *stdout.*You can capture stdout by setting a variable to the results of a command launched in a subshell: - -``` -$ TMPFILE=$(mktemp -p ~/Demo) - -$ echo $TMPFILE -/home/tux/Demo/tmp.PjP3g6lCq1 -``` - -Use `$TMPFILE` when referring to the file, and it's the same as interacting directly with the file itself. - -### Create a temporary directory with mktemp - -You can also use the `mktemp` command to create a directory instead of a file: - -``` -$ mktemp --directory -p ~/Demo/ -/home/tux/Demo/tmp.68ukbuluqI - -$ file /home/tux/Demo/tmp.68ukbuluqI -/home/tux/Demo/tmp.68ukbuluqI: directory -``` - -### Customize temporary names - -Sometimes you might want an element of predictability in even your pseudo-randomly generated filenames. You can customize the names of your temporary files with both commands. - -With `mktemp`, you can add a suffix to your filename: - -``` -$ mktemp -p ~/Demo/ --suffix .mine -/home/tux/Demo/tmp.dufLYfwJLO.mine -``` - -With `tempfile`, you can set a prefix and a suffix: - -``` -$ tempfile --directory ~/Demo/ \ ---prefix tt_ --suffix .mine -/home/tux/Demo/tt_0dfu5q.mine -``` - -### Tempfile as touch - -You can also set a custom name with `tempfile` : - -``` -$ tempfile --name not_random -not_random -``` - -When you use the `--name` option, it's absolute, ignoring all other forms of customization. In fact, it even ignores the `--directory` option: - -``` -$ tempfile --directory ~/Demo \ ---prefix this_is_ --suffix .all \ ---name not_random_at -not_random_at -``` - -In a way, `tempfile` can be a substitute for `touch` and `test` because it refuses to create a file that already exists: - -``` -$ tempfile --name example.txt -open: file exists -``` - -The `tempfile` command isn't installed on all Linux distributions by default, so you must ensure that it exists before you use it as a hack around `test` in a script. - -### Install mktemp and tempfile - -[GNU Core Utils][3] includes the `mktemp` command. Major distributions include Core Utils by default (it's the same package that contains `chmod`, `cut`, `du`, and other essential commands). - -The Debian Utils package includes the `tempfile` command and is installed by default on most Debian-based distributions and Slackware Linux. - -### Wrap up - -Temporary files are convenient because there's no confusion about whether they're safe to delete. They're temporary, meant to be used as needed and discarded without a second thought. Use them when you need them, and clear them out when you're done. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/make-temporary-file-bash - -作者:[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/bash_command_line.png -[2]: https://opensource.com/article/19/10/why-use-rxvt-terminal -[3]: https://www.gnu.org/software/coreutils/ diff --git a/translated/tech/20220627 Make a temporary file on Linux with Bash.md b/translated/tech/20220627 Make a temporary file on Linux with Bash.md new file mode 100644 index 0000000000..fbb9edf51b --- /dev/null +++ b/translated/tech/20220627 Make a temporary file on Linux with Bash.md @@ -0,0 +1,146 @@ +[#]: subject: "Make a temporary file on Linux with Bash" +[#]: via: "https://opensource.com/article/22/6/make-temporary-file-bash" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 上使用 Bash 创建一个临时文件 +====== +基于 Fedora 的系统上的 mktemp 命令和基于 Debian 的系统上的 tempfile 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。 + +![bash logo on green background][1] + +图片来源:Opensource.com + +使用 Bash 脚本语言进行编程时,有时需要创建一个临时文件。例如,你可能需要一个可以提交到磁盘的中间文件,以便你可以使用另一个命令对其进行处理。创建诸如 `temp` 之类的文件或任何以 `.tmp` 结尾的文件很容易。但是,这些名称很可能是由其他进程生成的,因此你可能会不小心覆盖现有的临时文件。除此之外,你不应该花费脑力想出看起来独特的名字。基于 Fedora 的系统上的 `mktemp` 命令和基于 Debian 的系统上的 `tempfile` 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。 + +### 创建一个临时文件 + +`mktemp` 和 `tempfile` 都创建一个临时文件作为它们的默认操作,并打印文件的名称和位置作为输出: + +``` +$ tempfile +/tmp/fileR5dt6r + +$ mktemp +/tmp/tmp.ojEfvMaJEp +``` + +除非你指定不同的路径,否则系统会将临时文件放在 `/tmp` 目录中。对于 `mktemp`,使用 `-p` 选项指定路径: + +``` +$ mktemp -p ~/Demo +/home/tux/Demo/tmp.i8NuhzbEJN +``` + +对于 `tempfile`,使用 `--directory` 或 `-d` 选项: + +``` +$ tempfile --directory ~/Demo/ +/home/sek/Demo/fileIhg9aX +``` + +### 找到你的临时文件 + +使用自动生成的临时文件的问题是你无法知道它的名字是什么。这就是为什么两个命令都返回生成的文件名作为输出的原因。你可以使用 Konsole、GNOME 终端或 [rxvt][2] 等交互式 shell 来使用终端上显示的文件名与文件进行交互。 + +但是,如果你正在编写脚本,则无法通过读取文件名并在以下命令中使用它来进行干预。 + +`mktemp` 和 `tempfile` 的作者想到了这个问题,并且有一个简单的解决方法。终端将输出发送到名为 *stdout* 的流。你可以通过将变量设置为在子 shell 中启动的命令的结果来捕获标准输出: + +``` +$ TMPFILE=$(mktemp -p ~/Demo) + +$ echo $TMPFILE +/home/tux/Demo/tmp.PjP3g6lCq1 +``` + +引用文件时使用 `$TMPFILE`,它与直接与文件本身交互相同。 + +### 使用 mktemp 创建一个临时目录 + +你还可以使用 `mktemp` 命令创建目录而不是文件: + +``` +$ mktemp --directory -p ~/Demo/ +/home/tux/Demo/tmp.68ukbuluqI + +$ file /home/tux/Demo/tmp.68ukbuluqI +/home/tux/Demo/tmp.68ukbuluqI: directory +``` + +### 自定义临时名称 + +有时你甚至可能希望在伪随机生成的文件名中加入可预测性元素。你可以使用这两个命令自定义临时文件的名称。 + +使用 `mktemp`,你可以为文件名添加后缀: + +``` +$ mktemp -p ~/Demo/ --suffix .mine +/home/tux/Demo/tmp.dufLYfwJLO.mine +``` + +使用 `tempfile`,你可以设置前缀和后缀: + +``` +$ tempfile --directory ~/Demo/ \ +--prefix tt_ --suffix .mine +/home/tux/Demo/tt_0dfu5q.mine +``` + +### 把 Tempfile 作为 touch 使用 + +你还可以使用 `tempfile` 设置自定义名称: + +``` +$ tempfile --name not_random +not_random +``` + +当你使用 `--name` 选项时,它是绝对的,忽略所有其他形式的自定义。事实上,它甚至忽略了 `--directory` 选项: + +``` +$ tempfile --directory ~/Demo \ +--prefix this_is_ --suffix .all \ +--name not_random_at +not_random_at +``` + +在某种程度上,`tempfile` 可以替代 `touch` 和 `test`,因为它拒绝创建已经存在的文件: + +``` +$ tempfile --name example.txt +open: file exists +``` + +`tempfile` 命令并非默认安装在所有 Linux 发行版上,因此在将其用作脚本中的 `test` 的 hack 之前,你必须确保它存在。 + +### 安装 mktemp 和 tempfile + +[GNU Core Utils][3] 包括 `mktemp` 命令。主要发行版默认包括 Core Utils(它与包含 `chmod`、`cut`、`du` 和其他基本命令的包相同)。 + +Debian Utils 软件包包含 `tempfile` 命令,默认安装在大多数基于 Debian 的发行版和 Slackware Linux 上。 + +### 总结 + +临时文件很方便,因为不会混淆它们是否可以安全删除。它们是临时的,意在根据需要使用并毫不犹豫地丢弃。在需要时使用它们,并在完成后清除它们。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/make-temporary-file-bash + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png +[2]: https://opensource.com/article/19/10/why-use-rxvt-terminal +[3]: https://www.gnu.org/software/coreutils/ From 9ca2e254b2cdcc1a6cf86c6cbe10cb9a9151663a Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 30 Jun 2022 08:27:02 +0800 Subject: [PATCH 0195/3123] translating --- ...-s IP Address -Default Gateway- in Ubuntu and Other Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md index aa80b91ef9..e9d64a6b13 100644 --- a/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md +++ b/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/router-ip-address-linux/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1036cfa469c02d510621f068bbdda764d61f3b62 Mon Sep 17 00:00:00 2001 From: SamMa Date: Thu, 30 Jun 2022 09:42:06 +0800 Subject: [PATCH 0196/3123] Update 20220622 Manage your Rust toolchain using rustup.md --- .../tech/20220622 Manage your Rust toolchain using rustup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20220622 Manage your Rust toolchain using rustup.md b/translated/tech/20220622 Manage your Rust toolchain using rustup.md index 033ae2ec2d..5c8f1dc962 100644 --- a/translated/tech/20220622 Manage your Rust toolchain using rustup.md +++ b/translated/tech/20220622 Manage your Rust toolchain using rustup.md @@ -77,7 +77,7 @@ $ rustup show ### 在工具链之间切换 -你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定的工具链,并希望尝试每日更新版中提供的新功能,你可以轻松切换到每日更新版工具链: +你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定版本工具链,并希望尝试每日更新版中提供的新功能,你可以轻松切换到每日更新版工具链: ``` $ rustup default From dc7c28845b49fa796710b439f6c237506d078cce Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 30 Jun 2022 11:48:31 +0800 Subject: [PATCH 0197/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Donkey-Hao 这篇不够认真,请下篇保持认真态度。 --- ...orkspace remotely from the command line.md | 52 ++++++++----------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md b/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md index d6c391f702..e66b7238a7 100644 --- a/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md +++ b/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md @@ -1,30 +1,28 @@ [#]: collector: (lujun9972) -[#]: translator: (Donke-Hao) -[#]: reviewer: ( ) +[#]: translator: (Donkey-Hao) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Configure a Linux workspace remotely from the command line) [#]: via: (https://opensource.com/article/21/1/remote-configuration-xfce4) [#]: author: (David Both https://opensource.com/users/dboth) -从命令行远程配置 Linux 工作区 - +从命令行远程配置 Xfce4 工作区 ====== -几乎所有的事情都可以从 Linux 命令行完成,包括 Xfce4 的远程配置。 -![Coding on a computer][1] +> 几乎所有的事情都可以从 Linux 命令行完成,包括对 Xfce4 进行远程配置。 -几乎所有的事情都可以通过命令行管理和配置。意味着几乎所有的事情都可以在本地或者通过 SSH 远程登录进行管理。有时候在互联网上搜索会花费一点时间,但是如果(译者:个人感觉这里上下文有省略一些意思,我感觉是“如果利用这段时间,你能想到…”——_**请校对者注意并删除括号内的话**_)你能想到一个可能可以从命令行完成的任务。 +![](https://img.linux.net.cn/data/attachment/album/202206/30/114747lfub5hh0b5nyquf3.jpg) +与专有操作系统相比,我很欣赏 Linux 的一个特点是,几乎所有的东西都可以从命令行中进行管理和配置。意味着几乎所有的事情都可以在本地或者通过 SSH 远程登录进行管理。虽然有时候需要花费一点时间在互联网上搜索,但是你能想到的任务,是有可能从命令行完成的。 ### 问题 -有时候需要使用命令行进行远程修改。在这种特殊情况下,我需要响应远程用户的请求将在 [Xfce][2] 控制板上的工作区从四个减少到三个。这种配置仅需要在互联网上搜索约 20 分钟。 -默认工作区数量和许多其他 **xfwm4** 设置可以在 **/usr/share/xfwm4/defaults** 这个文件中找到并修改。因此将 _workspace_count=2_ 设置为 _workspace_count=4_ 改变了所有主机的默认值。 同时,非 root 用户可以执行 **xfconf-query** 命令来查询并修改 **xfwm4** 窗口管理器的不同属性。它应该由需要更改的用户帐户使用,而不是由 root 使用。 - -在下面的例子中,首先我验证了当前工作区数量为 _4_ ,然后将数量改为 _2_ ,最后确认了新设置。 +有时候需要使用命令行对桌面进行远程配置。在这种特殊情况下,我需要响应远程用户的请求将在 [Xfce][2] 控制板上的工作区从四个减少到三个。这种配置只需要在互联网上搜索约 20 分钟就找到了。 +xfwm4 的默认工作区数量和许多其他设置可以在 `/usr/share/xfwm4/defaults` 这个文件中找到和修改。因此将 `workspace_count=2` 设置为 `workspace_count=4` 就改变了主机上所有用户的默认值。同时,非 root 用户可以执行 `xfconf-query` 命令来查询和设置 xfwm4 窗口管理器的各种属性。它应该由需要改变设置的用户使用,而不是由 root 使用。 +在下面的例子中,首先我验证了当前工作区数量为 `4` ,然后将数量改为 `2`,最后确认了新设置。 ``` [user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count @@ -35,13 +33,11 @@ [user@test1 ~]# ``` -此更改会立即发生,并且用户可以看到,无需重新启动,甚至无需注销并重新登录。当我输入命令以设置不同数量的工作区时,通过观察工作区切换器的变化,使我在我的工作站上有些快乐。 这些天,我尽我所能获得娱乐。 ;-) - +此更改会立即生效,用户可以马上看到,无需重新启动,甚至无需注销并重新登录。我曾在我的工作站上玩过这个游戏,当我输入设置不同数量的工作空间的命令时,可以观察到工作空间切换器的变化。我在哪儿都能找到乐子。;- ) ### 更多探索 -现在我解决了问题,我决定更详细的探索一下 **xfconf-query** 命令。不幸的是,该工具没有手册或信息页,**/usr/share** 中也没有任何文档。退而求其次,使用 **-h** 选项获取一些帮助信息。 - +现在我解决了这个问题,我决深入了解一下 `xfconf-query` 命令。不幸的是,该工具没有手册或信息页,`/usr/share` 中也没有任何文档。退而求其次,使用 `-h` 选项获取一些帮助信息。 ``` $ xfconf-query -h @@ -51,21 +47,21 @@ $ xfconf-query -h    -h, --help            显示帮助选项  Application Options:    -V, --version         版本信息 -   -c, --channel         询问/修改通道 -   -p, --property        询问/修改属性 +   -c, --channel         查询/修改通道 +   -p, --property        查询/修改属性    -s, --set             更新权限的值 -   -l, --list            罗列属性(或者通道 如果没有用 -c 指定) +   -l, --list            罗列属性(或者通道,如果没有用 -c 指定)    -v, --verbose         详细输出    -n, --create          当新属性不存在,则创建它    -t, --type            指定属性值类型    -r, --reset           重置属性    -R, --recursive       递归(与 -r 一起使用) -   -a, --force-array     即使只有一个元素也强制数组 +   -a, --force-array     即使只有一个元素也强制采用数组    -T, --toggle          反转现有的布尔属性    -m, --monitor         监视属性更改的通道 ``` -这没有多大帮助,但无论如何我们都可以从中找出一些好处。首先, _通道_ 以属性分组便于修改。我对 **general** 通道进行了更改,属性为 **workspace_count** 。 让我们看看完整的通道列表。 +这没有多大帮助,但我们还是可以从中找出一些有用的东西。首先,_通道_ 是可以修的属性的分组。我对 `general` 通道下的 `workspace_count` 属性进行了更改。让我们看看完整的通道列表: ``` $ xfconf-query -l @@ -93,8 +89,7 @@ Channels:   xfce4-mixer ``` -给定通道的属性也可以用下列的命令来查看。我使用 **less** 寻呼机,因为结果是一长串数据。我已经缩减了下表,但留下了足够的空间来查看你可以找到的条目类型。 - +给定通道的属性也可以用下列的命令来查看。我使用 `less` 分页器,因为结果是一长串数据。我对下面的列表进行了裁剪,但留下了足够多的条目,你可以看到这些条目的类型。 ``` $ xfconf-query -c xfwm4 -l | less @@ -104,7 +99,7 @@ $ xfconf-query -c xfwm4 -l | less /general/box_resize /general/button_layout /general/button_offset -<SNIP> +<裁剪> /general/workspace_count /general/workspace_names /general/wrap_cycle @@ -116,12 +111,11 @@ $ xfconf-query -c xfwm4 -l | less (END) ``` -你可以用这种方式探索所有的通道。我发现频道通常对应 **设置管理器** 中的各种设置。属性是你将在这些对话框中设置的属性。请注意,并非您会在 **设置管理器** 对话窗口中找到的所有图标都是 **Xfce** 桌面的一部分,因此它们没有对应的通道。 **屏幕保护程序** 就是一个例子,因为它是通用的 GNU 屏幕保护程序,并不是 **Xfce** 独有的。 **设置管理器** 是 **Xfce** 定位这些配置工具的一个很好的中心位置。 +你可以用这种方式探索所有的通道。我发现通道通常对应“设置管理器”中的各种设置。这些属性是你在这些对话框中设置的。请注意,并非你在“设置管理器”对话窗口中找到的所有设置都是 Xfce 桌面的一部分,因此它们没有对应的通道。屏幕保护程序就是一个例子,因为它是通用的 GNU 屏幕保护程序,并不是 Xfce 独有的。“设置管理器” 是 Xfce 定位这些配置工具的一个很好的中心位置。 +### 文档 -### 总结 - -综上所述,在 **xconf-query** 命令似乎没有任何手册或信息页,并且我在网上发现了一些错误的糟糕的记录信息。我发现对 **Xfce4** 来说最好的文件是 [Xfce 网站][2],以及一些具体信息可以在 **xconf-query** 找到。、 +综上所述,`xconf-query` 命令似乎没有任何手册或信息页,并且我在网上发现了很多不正确的、记录不全的信息。我发现对 Xfce4 来说最好的文档是 [Xfce 网站][2],关于 `xconf-query` 的一些具体信息可以在这里找到。 -------------------------------------------------------------------------------- @@ -129,8 +123,8 @@ via: https://opensource.com/article/21/1/remote-configuration-xfce4 作者:[David Both][a] 选题:[lujun9972][b] -译者:[Donke-Hao](https://github.com/Donke-Hao) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6ced36b821a46327d446b530d3045f508e2dfbd2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 30 Jun 2022 11:49:03 +0800 Subject: [PATCH 0198/3123] P @Donkey-Hao https://linux.cn/article-14776-1.html --- ...figure a Linux workspace remotely from the command line.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210122 Configure a Linux workspace remotely from the command line.md (98%) diff --git a/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md b/published/20210122 Configure a Linux workspace remotely from the command line.md similarity index 98% rename from translated/tech/20210122 Configure a Linux workspace remotely from the command line.md rename to published/20210122 Configure a Linux workspace remotely from the command line.md index e66b7238a7..5c632a9870 100644 --- a/translated/tech/20210122 Configure a Linux workspace remotely from the command line.md +++ b/published/20210122 Configure a Linux workspace remotely from the command line.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (Donkey-Hao) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14776-1.html) [#]: subject: (Configure a Linux workspace remotely from the command line) [#]: via: (https://opensource.com/article/21/1/remote-configuration-xfce4) [#]: author: (David Both https://opensource.com/users/dboth) From d83aa71aec00c9d41a5c4b43d7d4f12e06870137 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 30 Jun 2022 14:12:23 +0800 Subject: [PATCH 0199/3123] RP @geekpi https://linux.cn/article-14778-1.html --- ...aximize Window Buttons in elementary OS.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) rename {translated/tech => published}/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md (57%) diff --git a/translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md b/published/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md similarity index 57% rename from translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md rename to published/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md index 5364ec6a9c..64d7a26557 100644 --- a/translated/tech/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md +++ b/published/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md @@ -3,13 +3,16 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14778-1.html" 如何在 elementary OS 中启用最小化、最大化窗口按钮 ====== -这就是如何在 elementary OS 中启用最小化、最大化窗口按钮的方法。 + +![](https://img.linux.net.cn/data/attachment/album/202206/30/141133zfwflwefqwyeffff.jpg) + +> 这是如何在 elementary OS 中启用最小化、最大化窗口按钮的方法。 许多人(大多数是 elementary OS 的新用户)在各种论坛上问这些问题: @@ -17,17 +20,17 @@ 2. 我如何启用还原、最小化、最大化? 3. 有可能恢复最小化和最大化按钮吗? -这些都是完全有效的问题,而且问问题也是可以的。对吗?这个指南可以帮助他们在 elementary OS 中获得这些按钮。 +这些都是完全正常的问题,而且问问题也是可以的。对吧?这篇指南可以帮助他们在 elementary OS 中获得这些按钮。 -Elementary OS 所使用的 Pantheon 桌面并没有默认的标准窗口按钮。其原因主要是通过 Dock 和应用菜单处理用户行为和活动的不同概念。可以说,这种设计或实现的行为模仿了macOS。 +Elementary OS 所使用的 Pantheon 桌面并没有默认的标准窗口按钮。其主要原因是通过 Dock 和应用菜单处理用户行为和活动的不同理念。可以说,这种设计或实现的行为模仿了macOS。 -也就是说,许多用户更喜欢窗口按钮,因为这是一个“肌肉记忆”的东西,有些人是从其他桌面环境迁移过来的,甚至是 Windows。 +不过,许多用户更喜欢窗口按钮,因为这是一个所谓的“肌肉记忆”,而且有些人是从其他桌面环境(甚至是 Windows)迁移过来的。 尽管 Elementary 没有为你提供这个默认设置,你仍然可以启用它。下面是方法。 ### 启用最小化最大化按钮 - elementary OS -打开终端,安装添加 PPA 所需的 software-properties-common。默认情况下,这个包在 elementary OS 中没有安装(不要问我为什么,真的么?) +打开终端,安装添加 PPA 所需的 `software-properties-common` 软件包。默认情况下,这个包在 elementary OS 中没有安装(不要问我为什么,真的)。 ``` sudo apt install software-properties-common @@ -35,7 +38,7 @@ sudo apt install software-properties-common #### elementary OS 6 Odin -Tweak 工具被重新命名,并正在单独开发。它被称为 [Pantheon Tweaks][1]。使用以下命令,你可以安装它。 +elementary Tweak 工具被重新换了个名字,它现在被称为 [Pantheon Tweaks][1],并正在单独开发中。使用以下命令,你可以安装它: ``` sudo add-apt-repository -y ppa:philip.scott/pantheon-tweaks @@ -44,7 +47,7 @@ sudo apt install -y pantheon-tweaks #### elementary OS 5 Juno 及更低版本 -如果你使用的是 elementary OS 5 June 及更低版本,你可以使用相同的 PPA 安装早期的 [elementary-tweaks][2]。在终端按照以下命令进行操作。 +如果你使用的是 elementary OS 5 June 及更低版本,你可以使用相同的 PPA 安装早期的 [elementary-tweaks][2]。在终端按照以下命令进行操作: ``` sudo add-apt-repository -y ppa:philip.scott/elementary-tweaks @@ -53,19 +56,19 @@ sudo apt install -y elementary-tweaks #### 更改设置 -* 安装后,点击顶部栏的应用,打开系统设置。在系统设置窗口中,点击“个人”下的 Tweaks。 -* 在 Tweaks 窗口中,进入“外观”。 -* 在窗口控制下,选择布局:Windows。 +* 安装后,点击顶部栏的“应用Application”,打开“系统设置System settings”。在系统设置窗口中,点击“个人Personal”下的 “Tweaks”。 +* 在 Tweaks 窗口中,进入“外观Appearance”。 +* 在窗口控制下,选择布局:“Windows”。 -![enable minimize maximize buttons elementary OS][3] + ![enable minimize maximize buttons elementary OS][3] * 然后在顶部窗口栏的右侧应该有最小化、最大化和关闭按钮了。 -也有其他组合,如Ubuntu、macOS等。你可以选择任何你觉得合适的: +也有其他组合形式,如 Ubuntu、macOS 等。你可以选择任何你觉得合适的: ![Other Options of Window buttons in elementary][4] -这一步就完成了指南。gsettings 中还有其他选项,你可以尝试使用,但窗口管理器 gala 最近删除了这些选项。因此,它们目前可能无法工作。 +这篇指南至此就结束了。系统设置中还有其他选项,你可以尝试使用,但窗口管理器 gala 最近删除了这些选项。因此,它们目前可能无法工作。 我希望这个指南能帮助你启用 elementary OS 的最小化最大化按钮。如果你需要任何帮助,请在下面的评论栏告诉我。 @@ -76,7 +79,7 @@ via: https://www.debugpoint.com/2021/08/enable-minimize-maximize-elementary/ 作者:[Arindam][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/) 荣誉推出 From 866e6e04845c809b2b0c7de50d1d76a790c732ee Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 30 Jun 2022 14:55:16 +0800 Subject: [PATCH 0200/3123] RP @geekpi @turbokernel https://linux.cn/article-14779-1.html --- ...Manage your Rust toolchain using rustup.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220622 Manage your Rust toolchain using rustup.md (69%) diff --git a/translated/tech/20220622 Manage your Rust toolchain using rustup.md b/published/20220622 Manage your Rust toolchain using rustup.md similarity index 69% rename from translated/tech/20220622 Manage your Rust toolchain using rustup.md rename to published/20220622 Manage your Rust toolchain using rustup.md index 5c8f1dc962..b60c13fec5 100644 --- a/translated/tech/20220622 Manage your Rust toolchain using rustup.md +++ b/published/20220622 Manage your Rust toolchain using rustup.md @@ -4,28 +4,27 @@ [#]: collector: "lkxed" [#]: translator: "geekpi" [#]: reviewer: "turbokernel" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14779-1.html" 使用 rustup 管理你的 Rust 工具链 ====== -Rustup 可用于 Rust 安装与更新。它还能够将 Rust 编译器和工具在稳定版、测试版和每日更新版之间无缝切换。 -![Tools illustration][1] +![](https://img.linux.net.cn/data/attachment/album/202206/30/145426h9he5z111149ctcj.jpg) -图片来源:Opensource.com +> rustup 可用于 Rust 安装与更新。它还能够在稳定版、测试版和每日更新版之间无缝切换 Rust 编译器及其工具。 -[Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具使其成为开发人员使用的乐趣。 [Rustup][3] 是管理 Rust 工具的官方工具。它不仅可以安装和更新 Rust ,它还能够将 Rust 编译器和工具在稳定、测试和每日更新版之间无缝切换。本文将向你介绍 rustup 和一些常用命令。 +[Rust 编程语言][2] 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具,使其成为开发人员使用的乐趣。[rustup][3] 是管理 Rust 工具的官方工具。它不仅可以安装和更新 Rust ,它还能够在稳定版、测试版和每日更新版之间无缝切换 Rust 编译器及其工具。本文将向你介绍 `rustup` 及其一些常用命令。 ### 默认 Rust 安装方式 -如果你想在 Linux 上安装 Rust,你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,你可以这样使用它,例如: +如果你想在 Linux 上安装 Rust,你可以使用你的包管理器。在 Fedora 或 CentOS Stream 上,你可以这样: ``` $ sudo dnf install rust cargo ``` -这提供了一个稳定版本的 Rust 工具链,如果你是 Rust 的初学者并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日更新版和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法做到。 +这提供了一个稳定版的 Rust 工具链,如果你是 Rust 的初学者,并想尝试编译和运行简单的程序,它会非常有用。但是,由于 Rust 是一种新的编程语言,它变化很快,并且经常添加许多新功能。这些功能是 Rust 工具链的每日更新版和之后测试版的一部分。要试用这些功能,你需要安装这些较新版本的工具链,而不会影响系统上的稳定版本。不幸的是,你的发行版的包管理器在这里无法做到。 ### 使用 rustup 安装 Rust 工具链 @@ -33,7 +32,7 @@ $ sudo dnf install rust cargo ``` $ curl --proto '=https' --tlsv1.2 \ --sSf https://sh.rustup.rs > sh.rustup.rs + -sSf https://sh.rustup.rs > sh.rustup.rs ``` 检查它,然后运行它。它不需要 root 权限,并根据你的本地用户权限安装 Rust: @@ -45,7 +44,7 @@ $ less sh.rustup.rs $ bash sh.rustup.rs ``` -出现提示时选择选项 1: +出现提示时选择选项 `1`: ``` 1) Proceed with installation (default) @@ -60,7 +59,7 @@ $ bash sh.rustup.rs $ source $HOME/.cargo/env ``` -验证是否安装了 Rust 编译器 (rustc) 和 Rust 包管理器 (cargo): +验证是否安装了 Rust 编译器(`rustc`)和 Rust 包管理器(`cargo`): ``` $ rustc --version @@ -77,7 +76,7 @@ $ rustup show ### 在工具链之间切换 -你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定版本工具链,并希望尝试每日更新版中提供的新功能,你可以轻松切换到每日更新版工具链: +你可以查看默认工具链并根据需要进行更改。如果你当前使用的是稳定版工具链,并希望尝试每日更新版中提供的新功能,你可以轻松切换到每日更新版工具链: ``` $ rustup default @@ -107,13 +106,13 @@ $ rustup update ### 帮助和文档 -以上命令对于日常使用来说绰绰有余。尽管如此,rustup 有多种命令,你可以参考帮助部分了解更多详细信息: +以上命令对于日常使用来说绰绰有余。尽管如此,`rustup` 有多种命令,你可以参考帮助部分了解更多详细信息: ``` $ rustup --help ``` -Rustup 在 GitHub 上有完整的[参考手册][4],你可以将其用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到 Internet。你可以访问包括书籍、标准库等在内的本地文档: +`rustup` 在 GitHub 上有完整的 [参考手册][4],你可以用作参考。所有 Rust 文档都安装在你的本地系统上,不需要你连接到互联网。你可以访问包括书籍、标准库等在内的本地文档: ``` $ rustup doc From bb9df52b77863517a68ac9ebbb3f54d506852223 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Thu, 30 Jun 2022 16:34:41 +0800 Subject: [PATCH 0201/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20210511=20What=20is=20fog=20computing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20210511 What is fog computing.md | 70 ------------------- .../tech/20210511 What is fog computing.md | 67 ++++++++++++++++++ 2 files changed, 67 insertions(+), 70 deletions(-) delete mode 100644 sources/tech/20210511 What is fog computing.md create mode 100644 translated/tech/20210511 What is fog computing.md diff --git a/sources/tech/20210511 What is fog computing.md b/sources/tech/20210511 What is fog computing.md deleted file mode 100644 index fb06329363..0000000000 --- a/sources/tech/20210511 What is fog computing.md +++ /dev/null @@ -1,70 +0,0 @@ -[#]: subject: (What is fog computing?) -[#]: via: (https://opensource.com/article/21/5/fog-computing) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (hanszhao80) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -What is fog computing? -====== -Learn about the network comprised of all the connected devices in our -lives. -![Man at laptop on a mountain][1] - -In the early days, computers were big and expensive. There were few users in the world, and they had to reserve time on a computer (and show up in person) to have their punchcards processed. Systems called [mainframes][2] made many innovations and enabled time-shared tasks on terminals (like desktop computers, but without their own CPU). - -Skip forward to today, when powerful computation is [as cheap as US$35 and no larger than a credit card][3]. That doesn't even begin to cover all the little devices in modern life that gather and process data. Take a high-level view of this collection of computers, and you can imagine all of these devices outnumbering grains of sands or particles in a cloud. - -It so happens that the term "cloud computing" is already occupied, so there needs to be a unique name for the network comprised of the Internet of Things (IoT) and other strategically situated servers. And besides, if there's already a cloud representing nodes of a data center, then there's surely something unique about the nodes intermingling with us folk outside that cloud. - -### Welcome to fog computing - -The cloud delivers computing services over the internet. But the data centers that make up the cloud are big and relatively few compared to their number of potential clients. This suggests potential bottlenecks when data is sent back and forth between the cloud and its many users. - -Fog computing, by contrast, can outnumber its potential clients without risking a bottleneck because the devices perform much of the data collection or computation. It's the outer "edge" of the cloud, the part of a cloud that touches down to the ground. - -### Fog and edge computing - -Fog computing and [edge computing][4] are essentially synonymous. Both have strong associations with both the cloud and IoT and make the same architectural assumptions: - - * The closer you are to the CPU doing the work, the faster the data transfer. - * Like [Linux][5], there's a strong advantage to having small, purpose-built computers that can "do one thing and do it well." (Of course, our devices actually do more than just one thing, but from a high-level view, a smartwatch you bought to monitor your health is essentially doing "one" thing.) - * Going offline is inevitable, but a good device can function just as effectively in the interim and then sync up when reconnected. - * Local devices can be simpler and cheaper than large data centers. - - - -### Networking on the edge - -It's tempting to view fog computing as a completely separate entity from the cloud, but they're just two parts of the whole. The cloud needs the infrastructure of the digital enterprise, including public cloud providers, telecommunication companies, and even specialized corporations running their own services. Localized services are also important to provide waystations between the cloud core and its millions and millions of clients. - -**[Read next: [An Architect's guide to edge computing essentials][6]]** - -Fog computing, located at the edge of the cloud, intermingles with clients wherever they are located. Sometimes, this is a consumer setting, such as your own home or car, while other times, it's a business interest, such as price-monitoring devices in a retail store or vital safety sensors on a factory floor. - -### Fog computing is all around you - -Fog computing is built up of all the connected devices in our lives: drones, phones, watches, fitness monitors, security monitors, home automation, portable gaming devices, gardening automation, weather sensors, air-quality monitors, and much, much more. Ideally, the data it provides helps to build a better and more informed future. There are lots of great open source projects out there that are working toward improving health and wellness—or even just making life a little more entertaining—and it's all happening thanks to fog and cloud computing. _Our_ job, however, is to make sure it [stays open][7]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/fog-computing - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_laptop_code_programming_mountain_view.jpg?itok=yx5buqkr (Man at laptop on a mountain) -[2]: https://opensource.com/article/19/9/linux-mainframes-part-1 -[3]: https://opensource.com/resources/raspberry-pi -[4]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing -[5]: https://opensource.com/resources/linux -[6]: https://www.redhat.com/architect/edge-computing-essentials -[7]: https://opensource.com/article/20/10/keep-cloud-open diff --git a/translated/tech/20210511 What is fog computing.md b/translated/tech/20210511 What is fog computing.md new file mode 100644 index 0000000000..4ea437929a --- /dev/null +++ b/translated/tech/20210511 What is fog computing.md @@ -0,0 +1,67 @@ +[#]: subject: (What is fog computing?) +[#]: via: (https://opensource.com/article/21/5/fog-computing) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (hanszhao80) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +什么是雾计算? +====== +了解由我们生活中的所有连接设备组成的网络。 +![Man at laptop on a mountain][1] + +在早期,计算机既笨重又昂贵。世上为数不多的计算机用户必须亲自在计算机上预留时间来处理他们的打孔卡punchcards。称为 [大型机][2] 的系统进行了许多创新,并在终端(没有自己的 CPU 的桌面计算机)上实现了分时time-shared任务。 + +时至今日,强大的计算设备能做到 [价格低至 35 美元且大小不超过一张信用卡][3]。这甚至还没有涵盖现代生活中负责收集和处理数据的所有的小设备。从高层次的角度来看这些计算机的集合,你能想象得到所有这些设备的数量都超过了云中的砂或颗粒。 + +碰巧“云计算”一词已经被占用,因此需要为由物联网 (IoT) 和其他具有战略意义的服务器组成的网络提供一个独特的名称。此外,如果已经有一个代表数据中心节点的云,那么与我们在该云之外的人混合的节点肯定有一些独特之处。 + +### 欢迎来到雾计算 + +云通过互联网提供计算服务。但与潜在客户的数量相比,构成云的数据中心很大,而且相对较少。这表明当数据在云及其众多用户之间来回传送时存在潜在的瓶颈。 + +相比之下,雾计算Fog Computing可以在数量上超过其潜在客户而不会出现瓶颈,因为设备执行大部分数据的收集或计算。它是云的外部“边缘”,是云落地的部分。 + +### 雾和边缘计算 + +雾计算和 [边缘计算edge computing][4] 本质上是同义词。两者都与云和物联网密切相关,并做出相同的架构假设: + +- 你离 CPU 越近,数据传输就越快。 +- 像 [Linux][5] 一样,拥有可以“做一件事并把它做好”的小型专用计算机具有强大的优势(当然,我们的设备实际上不仅仅做一件事,但从高层次上看,你购买的用于监测健康的智能手表本质上是在做“一“件事)。 +- 离线是不可避免的,但好的设备可以在此期间同样有效地运行,然后在重新连接时同步。 +- 本地设备能比大型数据中心更简单、更便宜。 + +### 边缘网络 + +将雾计算视为与云完全分离的实体很诱人,但它们毕竟是组成整体的两个部分。云需要数字企业的基础设施,包括公共云提供商、电信公司,甚至是运行自己服务的专业公司。本地化服务对于在云核心与其数以百万计的客户之间提供中转站waystations也很重要。 + +**[阅读下一篇:[架构师边缘计算必修指南][6]]** + +雾计算位于云的边缘,无论客户身在何处,都与他们紧密联系在一起。有时这是一个消费者范畴,例如你自己的家或汽车,而另一些时候这是一种商业利益,例如零售店中的价格监控设备或工厂车间的重要的安全传感器。 + +### 雾计算就在你身边 + +雾计算由我们生活中的所有连接设备组成:无人机drones、电话、手表、健身监视器、安全监视器、家庭自动化、便携式游戏设备、园艺自动化、天气传感器、空气质量监视器等等。理想情况下,它提供的数据有助于建立一个更好、更明智的未来。有许多伟大的开源项目正朝着改善健康的方向而努力——甚至只是让生活变得更有趣一点儿——这一切都得益于雾和云计算。无论如何,_我们的_ 工作是确保它 [保持开放][7]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/fog-computing + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_laptop_code_programming_mountain_view.jpg?itok=yx5buqkr (Man at laptop on a mountain) +[2]: https://opensource.com/article/19/9/linux-mainframes-part-1 +[3]: https://opensource.com/resources/raspberry-pi +[4]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing +[5]: https://opensource.com/resources/linux +[6]: https://www.redhat.com/architect/edge-computing-essentials +[7]: https://opensource.com/article/20/10/keep-cloud-open From 064e231085763c05076087bdc47c4192e001592d Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Thu, 30 Jun 2022 18:22:09 +0800 Subject: [PATCH 0202/3123] translated --- ...ential Ubuntu Apps For Everyone in 2022.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md index 119132a1c8..af1d6ce4d2 100644 --- a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md +++ b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md @@ -7,23 +7,25 @@ [#]: publisher: " " [#]: url: " " -Top 10 Essential Ubuntu Apps For Everyone in 2022 + +2022 年人人必备的 10 大 Ubuntu 应用 ====== -This article lists the top 10 essential Ubuntu apps for various use cases in 2022. +本文列出了 2022 年各种情况下使用的 10 大 Ubuntu 必备应用。 -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. +如果你是偶尔使用的用户、学生、老师、科学家、开发人员或发明家,你需要为你的工作流程提供额外的应用程序。Linux 生态系统有数以千计的应用程序分散在各地,几乎可以满足所有可能的需求。大多数主流 Linux 发行版,包括 Ubuntu ,都只把基本的应用程序作为默认功能。 -In this part 1 article (of a 5 part series), we list some of the professional-grade applications for everyone. +在这篇文章的第一部分(5个系列)中,我们为大家列出了一些专业级的应用。 -### Essential Ubuntu Apps in 2022 – Part 1 +### 2022 年 Ubuntu 必备应用--第一部分 -#### 1. GNOME Tweak Tool +#### 1. GNOME 调整工具 -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 doesn’t expose all the options today. +如果你在使用 Ubuntu GNOME 版本,GNOME 调整工具是你必备的实用工具。使用这个工具来定制你的桌面,你可以改变字体、缩放比例、主题、光标和许多其他选项。默认设置窗口现在没有列出所有选项。 -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. + +你可以使用软件应用程序搜索 "Tweaks" 来安装它,或者通过下列终端的命令来安装。 ``` sudo apt install gnome-tweaks @@ -33,6 +35,7 @@ sudo apt install gnome-tweaks #### 2. Steam +在 Linux 上玩游戏不再困难,感谢 Valve 公司和相关社区的贡献。[Steam][3] 是一个 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]. From 40bb9e027183741acc9b35681bec0fad05081c9e Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 01:25:49 +0800 Subject: [PATCH 0203/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220630=20With=20Extensions,=20GNOME=20Web=20is=20S?= =?UTF-8?q?lowly=20Becoming=20an=20Attractive=20Option=20on=20Desktop=20Li?= =?UTF-8?q?nux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g an Attractive Option on Desktop Linux.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md diff --git a/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md b/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md new file mode 100644 index 0000000000..8e5bee2c16 --- /dev/null +++ b/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md @@ -0,0 +1,88 @@ +[#]: subject: "With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux" +[#]: via: "https://news.itsfoss.com/gnome-web-extensions-dev/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux +====== +GNOME Web is looking to shape up as the perfect Linux browser. Do you think so? + +![gnome web][1] + +GNOME Web (Epiphany) is one of the [best browsers available for Linux users][2]. + +It offers a minimal, and a unique user experience. + +Unfortunately, the uniqueness does not incentivize users to use it as their primary web browser. + +But, it looks like that could change soon… + +GNOME Web is finally adding support for WebExtensions, as revealed by one of the developers (**Patrick a.k.a TingPing**). + +This is all a part of the GNOME 43 feature set. + +### GNOME Web with WebExtensions + +![][3] + +A minimal-looking browser, with extension support, what more can I ask for? + +I don’t know about you, but I’ve been bummed by the fact that GNOME Web did not have extension support. + +So, this makes me excited! + +For now, this is experimental support for **Epiphany 43.alpha** version. So, you can only test it as an adventure with GNOME Web’s beta/alpha builds available. + +The developer mentions: + +> Epiphany 43.alpha supports the basic structure described above. We are currently modeling our behavior after Firefox’s ManifestV2 API which includes compatibility with Chrome extensions where possible. Supporting ManifestV3 is planned alongside V2 in the future. + +You will have to explicitly enable the extension support using the terminal, and then install the extensions by downloading + adding the **.xpi** files for the extensions. + +[Mozilla’s Firefox add-ons web portal][4] is the one you need to visit for the extensions. + +![][5] + +You can install the latest development version for Epiphany (GNOME Web) and enable extensions using the following commands: + +``` +flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo +flatpak install gnome-nightly org.gnome.Epiphany.Devel +flatpak run --command=gsettings org.gnome.Epiphany.Devel set org.gnome.Epiphany.web:/org/gnome/epiphany/web/ enable-webextensions true +``` + +Note that it is actively in development, and may not work as expected. You may want to keep an eye on the terminal for any errors and resolve that if it did not work for you on the first try. + +For more technical details, you can read [TingPing’s blog post][6]. + +### Your Next Daily Driver? + +GNOME Web is an entirely unique alternative to Firefox and Chrome/Chromium-based browsers on Linux. + +So, with the upcoming support for extensions, would you be willing to give it a try as your main browser? + +*What do you think about the improvements arriving in GNOME Web (or Epiphany)?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-web-extensions-dev/ + +作者:[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/06/gnome-web-adds-extensions-support.jpg +[2]: https://itsfoss.com/best-browsers-ubuntu-linux/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-extensions.png +[4]: https://addons.mozilla.org/en-US/firefox/extensions/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-extensions-1.png +[6]: https://blog.tingping.se/2022/06/29/WebExtensions-Epiphany.html From 6c9e6cb94c8d6623f6ae978188ef4c185865205a Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 01:26:31 +0800 Subject: [PATCH 0204/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220630=206=20New=20Changes=20Coming=20to=20Nautilu?= =?UTF-8?q?s=20File=20Manager=20in=20GNOME=2043.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng to Nautilus File Manager in GNOME 43.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md diff --git a/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md b/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md new file mode 100644 index 0000000000..f0eefb7937 --- /dev/null +++ b/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md @@ -0,0 +1,108 @@ +[#]: subject: "6 New Changes Coming to Nautilus File Manager in GNOME 43" +[#]: via: "https://news.itsfoss.com/gnome-files-43/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +6 New Changes Coming to Nautilus File Manager in GNOME 43 +====== +GNOME Files is improving the user experience with the upcoming changes, let’s take a look at some of them. + +![gnome files][1] + +We have a few months to go before the GNOME 43 release, but the development activity for GNOME applications is in full swing. + +For instance, the [support for extensions in GNOME Web][2] 43 alpha version. + +Similarly, there are a few exciting changes coming to GNOME Files (Nautilus), especially for the list view. + +The list view was re-implemented using the [GtkColumnView][3] widget dropping GtkTreeView to be able to add new features. + +Some of the changes that influence the code refinement include: + +### 1. Drag and Select Files + +Just like you would normally do in the grid view, you can finally select multiple items by simply dragging your mouse and selecting the ones you want in the list view. + +![gnome files][4] + +In case you did not notice, there is also a little bit of spacing between each row. The animation for selection is not the smoothest yet, but it is a work in progress. + +Tried to record GIF with peek (Fedora with Wayland), but for some reason it was unresponsive, probably some conflicts with the alpha build. + +### 2. Highlight Row on Mouse Hover + +It was incredibly unintuitive to not have a row highlight when you hover your mouse over. + +Now, it does. Just place your cursor on any of the items in the list view, and it should be highlighted, as shown in the image above. + +### 3. Columns Do Not Go Away When You Search for a file + +![][5] + +![][6] + +When you search for a file with the current Nautilus file manager, the columns are not handled in the best way possible. You get to lose certain details such as the file size. + +With the new change, you still get to see the file size, the modified date, and the ability to star a file. + +Definitely towards a better user experience with this change. + +### 4. Better Compact View + +When you scale down the size of the window with the file manager, it does not handle it well. You lose the file extension details, and the columns aren’t responsive to the change. + +![][7] + +With the 43.alpha build for GNOME Files, even if you scale down the window size for a compact view, you still get to see the columns, and the extension for the files as shown above. + +### 5. New Document Context Menu + +![][8] + +As part of a contribution to the GSoC (Google Summer of Code) 2022, a developer is focusing on improving the discoverability of the new document feature. + +When you add certain files to the Templates directory, you can find the “**New Document**” option in the context menu when you perform a right-click. + +With the upcoming update, this option will be available out of the box. So, it is more accessible. + +Also, the developers are figuring out a way to improve the process of adding templates. You can explore more of their work in the [blog post][9]. + +### 6. Animation when you star a file + +![][10] + +When you click on the star icon on the right side of the list item, you can find it moving to let you know that you interacted with the option. + +### Wrapping Up + +Of course, everything that I mention is in its development stage (alpha builds). As we wait for the beta builds, we should get clarity on more features coming to the file manager, and how things improve from there. + +What are you looking forward to in GNOME 43? Let us know in the comments below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-files-43/ + +作者:[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/06/changes-in-nautilus-in-gnome-43.jpg +[2]: https://news.itsfoss.com/gnome-web-extensions-dev/ +[3]: https://gitlab.gnome.org/GNOME/nautilus/-/commit/6708861ed174e2b2423df0500df9987cdaf2adc0 +[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/nautilus-drag-select-alpha.jpg +[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/file-search-before.jpg +[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/file-search-after.jpg +[7]: https://news.itsfoss.com/wp-content/uploads/2022/06/compact-view-files-1024x482.jpg +[8]: https://news.itsfoss.com/wp-content/uploads/2022/06/new-document-file-manager.jpg +[9]: https://ignapk.blogspot.com/2022/06/gsoc-2022-first-update-planning.html +[10]: https://news.itsfoss.com/wp-content/uploads/2022/06/animation0file.webm From 541395c01cf904cd8b77560b9a080f9feadca92b Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 01:27:11 +0800 Subject: [PATCH 0205/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220630=20Hide=20Files=20and=20Folders=20in=20Linux?= =?UTF-8?q?=20Without=20Renaming=20Them.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Folders in Linux Without Renaming Them.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md diff --git a/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md new file mode 100644 index 0000000000..3eff1f7d1e --- /dev/null +++ b/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md @@ -0,0 +1,136 @@ +[#]: subject: "Hide Files and Folders in Linux Without Renaming Them" +[#]: via: "https://itsfoss.com/hide-files-folders-linux/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Hide Files and Folders in Linux Without Renaming Them +====== +Brief: This beginner-focused article discusses how you can hide files and folders from normal view in Linux. Both GUI and command-line methods have been discussed. + +There will be times when you need to hide files in Linux. + +No, I am not talking about those ‘special files’ that you don’t want your family to see. Although you can hide these special files, it is better to lock them with a password for an extra layer of protection. + +Back to hiding files. **Any file or folder whose name begins with a . (dot) is “hidden” in Linux.** + +Linux has plenty of such files and folders that are hidden from the normal view. These are mainly config files that are needed by the system and programs. + +The users don’t need them normally and hence they are hidden from the normal view so that you don’t get overwhelmed by so many strange-looking files that you never created. + +Here’s a look at the hidden files and folders in my home directory. + +![linux normal view][1] + +![linux show hiiden files][2] + +You can easily [view the hidden files][3] by pressing Ctrl+H in the file manager if you are using desktop Linux. In the terminal, you can use the ls -a command to display the hidden files along with the normal ones. + +So, how do you create hidden files in Linux? You simply name them with a dot. Here’s how. + +### Create hidden files and folders in Linux desktop (GUI method) + +If you are using the file manager, right click on the file or folder and choose the rename option. Now all you have to do is to add a . at the beginning of the filename. + +GNOME’s Nautilus file manager also shows a warning when you are creating a hidden file in this manner. + +![hide files ubuntu linux][4] + +You can hide a folder along with all its contents in the same way. + +You can press Ctrl+H keys to display the hidden files. Oh! how much I love [keyboard shortcuts in Ubuntu][5] or any other program or OS I use. + +To make the hidden files normal again, just rename them again by removing the dot from the beginning of the file name. + +### Create hidden files and folders in Linux terminal (CLI method) + +If you are stuck with the terminal, you can [use the mv command][6] to rename the file. You just have to rename the file by adding a . at the beginning of the original filename. + +``` +mv filename .filename +``` + +You can display the hidden files using this command: + +``` +ls -la +``` + +You may also use ls -lA. This one won’t show the dot files (. and ..). + +### Bonus tip: Hide files and folders without renaming them (works in GUI only) + +You just learned to hide files in Linux. The problem is that you have to rename the files and that’s not ideal in all situations. + +For example, in Ubuntu, you’ll see a folder named ‘snap’ in your directory. You are not going to use it but if you rename it, your snap apps won’t work as expected. Similarly, there’s a firefox.tmp folder under the Downloads directory in Ubuntu 22.04 (for the snap version of Firefox). + +There is a neat trick that can be used in the Linux desktop. It should work under various file managers like Nemo, Thunar, Dolphin etc but I cannot vouch for it. It sure works in the Nautilus file manager of GNOME. + +So, what you do here is to create a new file named .hidden in the directory where your desired files or folders (to be hidden) are located. + +![alternate way of hiding files in linux][7] + +Press Ctrl+H to show the hidden files and **open .hidden file** for editing. **Add the name of the files or folders in separate lines**. Keep in mind that it doesn’t take absolute or relative path. Your desired **files and folders should be in the same location as this special .hidden file**. + +Here’s a sample which I used to hide the cpufetch directory and pcloud file without renaming them: + +``` +pcloud +cpufetch +``` + +Press Ctrl+H again to hide the .hidden files again. + +Now, **close your file explorer and start it again**. You won’t see the files and directories mentioned in the .hidden file anymore. + +If you want to see them again, press Ctrl+H keys. + +When you don’t want the files hidden anymore, remove their name from the .hidden file or remove .hidden file altogether. + +### Bonus Trivia: The hidden files ‘feature’ was actually a bug + +Do you know that this ‘feature’ to hide a file by adding a . at the beginning of the file name was [actually a bug][8]? + +In the early UNIX days, when the filesystem was created, the . (current directory) and .. (parent directory) files were added for ease of navigation. + +As these special . and .. files had no real data in them, a new ‘feature’ was added to the ls command. + +The feature was to check the first character of a filename and if it’s a dot (.), it was no longer displayed with the ls command. + +That worked for the . and .. files but it introduced a ‘bug’ where any filename starting with . was hidden from the output of the ls command. + +This bug turned into a feature as programmers like it for ‘hiding’ their config files. The ls command was probably modified later to add options to display hidden dot files. + +The same convention gets followed in Linux as Linux was modeled after UNIX. + +### Conclusion + +I have discussed creating files that are hidden from the normal view. If you want to create secret files or folders that cannot be accessed by other people, you should encrypt them. I have written about [locking folders with passwords in Linux][9]. It’s a bit old article but it may still work. + +I hope you liked this simple topic and learned something new. Use the comment section and let me know your thoughts. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/hide-files-folders-linux/ + +作者:[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/06/linux-normal-view.png +[2]: https://itsfoss.com/wp-content/uploads/2022/06/linux-show-hiiden-files.png +[3]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/ +[4]: https://itsfoss.com/wp-content/uploads/2022/06/hide-files-ubuntu-linux.png +[5]: https://itsfoss.com/ubuntu-shortcuts/ +[6]: https://linuxhandbook.com/mv-command/ +[7]: https://itsfoss.com/wp-content/uploads/2022/06/alternate-way-of-hiding-files-in-linux.png +[8]: https://linux-audit.com/linux-history-how-dot-files-became-hidden-files/ +[9]: https://itsfoss.com/password-protect-folder-linux/ From c1c34b74959a2e3aa915fce8a28dbd846ee6c8c6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 01:27:57 +0800 Subject: [PATCH 0206/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220630=20Package=20a=20new=20Python=20module=20in?= =?UTF-8?q?=204=20steps.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Package a new Python module in 4 steps.md | 217 ++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 sources/tech/20220630 Package a new Python module in 4 steps.md diff --git a/sources/tech/20220630 Package a new Python module in 4 steps.md b/sources/tech/20220630 Package a new Python module in 4 steps.md new file mode 100644 index 0000000000..99e23c6d7a --- /dev/null +++ b/sources/tech/20220630 Package a new Python module in 4 steps.md @@ -0,0 +1,217 @@ +[#]: subject: "Package a new Python module in 4 steps" +[#]: via: "https://opensource.com/article/22/6/package-python-module-rpm" +[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Package a new Python module in 4 steps +====== +The pyp2rpm command makes it possible to create an RPM package and automate the process. + +![Hands on a keyboard with a Python book][1] + +Image by: WOCinTech Chat. Modified by Opensource.com. CC BY-SA 4.0 + +When you install an application, you're usually installing a package that contains the executable code for an application and important files such as documentation, icons, and so on. On Linux, applications are commonly packaged as RPM or DEB files, and users install them with the `dnf` or `apt` commands, depending on the Linux distribution. However, new Python modules are released virtually every day, so you could easily encounter a module that hasn't yet been packaged. And that's exactly why the `pyp2rpm` command exists. + +Recently, I tried to install a module called python-concentration. It didn't go well: + +``` +$ sudo dnf install python-concentration +Updating Subscription Management repositories. +Last metadata expiration check: 1:23:32 ago on Sat 11 Jun 2022 06:37:25. +No match for argument: python-concentration +Error: Unable to find a match: python-concentration +``` + +It’s a PyPi package, but it's not yet available as an RPM package. The good news is that you can build an RPM yourself with a relatively simple process using `pyp2rpm`. + +You'll need two directories to get started: + +``` +$ mkdir rpmbuild +$ cd rpmbuild && mkdir SPECS +``` + +You'll also need to install `pyp2rpm` : + +``` +$ sudo dnf install pyp2rpm +``` + +### 1. Generate the spec file + +The foundation of any RPM package is a file called the spec file. This file contains all the information about how to build the package, which dependencies it needs, the version of the application it provides, what files it installs, and more. When pointed to a Python module, `pyp2rpm` generates a spec file for it, which you can use to build an RPM. + +Using python-concentration as an arbitrary example, here's how to generate a spec file: + +``` +$ pyp2rpm concentration > ~/rpmbuild/SPECS/concentration.spec +``` + +And here's the file it generates: + +``` +# Created by pyp2rpm-3.3.8 +%global pypi_name concentration +%global pypi_version 1.1.5 + +Name:           python-%{pypi_name} +Version:        %{pypi_version} +Release:        1%{?dist} +Summary:        Get work done when you need to, goof off when you don't + +License:        None +URL:            None +Source0:        %{pypi_source} +BuildArch:      noarch + +BuildRequires:  python3-devel +BuildRequires:  python3dist(setuptools) + +%description +Concentration [![PyPI version]( [![Test Status]( [![Lint Status]( [![codecov]( + +%package -n     python3-%{pypi_name} +Summary:        %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +Requires:       (python3dist(hug) >= 2.6.1 with python3dist(hug) < 3~~) +Requires:       python3dist(setuptools) +%description -n python3-%{pypi_name} +Concentration [![PyPI version]( [![Test Status]( [![Lint Status]( [![codecov]( + + +%prep +%autosetup -n %{pypi_name}-%{pypi_version} + +%build +%py3_build + +%install +%py3_install + +%files -n python3-%{pypi_name} +%license LICENSE +%doc README.md +%{_bindir}/concentration +%{python3_sitelib}/%{pypi_name} +%{python3_sitelib}/%{pypi_name}-%{pypi_version}-py%{python3_version}.egg-info + +%changelog +*  - 1.1.5-1 +- Initial package. +``` + +### 2. Run rpmlint + +To ensure that the spec file is up to standards, run the `rpmlint` command on the file: + +``` +$ rpmlint ~/rpmbuild/SPEC/concentration.spec +error: bad date in %changelog: - 1.1.5-1 +0 packages and 1 specfiles checked; 0 errors, 0 warnings. +``` + +It seems the changelog entry requires a date. + +``` +%changelog +* Sat Jun 11 2022 Tux - 1.1.5-1 +``` + +Try `rpmlint` again: + +``` +$ rpmlint ~/rpmbuild/SPEC/concentration.spec +0 packages and 1 specfiles checked; 0 errors, 0 warnings. +``` + +Success! + +### 3. Download the source code + +To build an RPM package, you must download the code you're packaging up. The easy way to do this is to parse your spec file to find the source code's location on the Internet. + +First, install the `spectool` command with `dnf` : + +``` +$ sudo dnf install spectool +``` + +Then use it to download the source code: + +``` +$ cd ~/rpmbuild +$ spectool -g -R SPEC/concentration.spec +Downloading: https://files.pythonhosted.org/...concentration-1.1.5.tar.gz +   6.0 KiB / 6.0 KiB    [=====================================] +Downloaded: concentration-1.1.5.tar.gz +``` + +This creates a SOURCES directory and places the source code archive into it. + +### 4. Build the source package + +Now you have a valid spec file, so it's time to build the source package with the `rpmbuild` command. If you don't have `rpmbuild` yet, install the rpm-build package with `dnf` (or accept your terminal's offer to install that package when you attempt to use the `rpmbuild` command). + +``` +$ cd ~/rpmbuild +$ spectool -g -R SPEC/concentration.spec +Downloading: https://files.pythonhosted.org/...concentration-1.1.5.tar.gz +   6.0 KiB / 6.0 KiB    [=====================================] +Downloaded: concentration-1.1.5.tar.gz +``` + +The `-bs` option stands for build source. This option gives you an `src.rpm` file, an all-purpose package that must be rebuilt for a specific architecture. + +Build an installable RPM for your system: + +``` +$ rpmbuild –rebuild SRPMS/python-concentration-1.1.5-1.el9.src.rpm +error: Failed build dependencies: +        python3-devel is needed by python-concentration-1.1.5-1.el9.noarch +``` + +It looks like this package requires the development libraries of Python. Install them to continue with the build. This time the build succeeds and renders a lot more output (which I abbreviate here for clarity): + +``` +$ sudo dnf install python3-devel -y +$ rpmbuild –rebuild SRPMS/python-concentration-1.1.5-1.el9.src.rpm +[...] +Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.TYA7l2 ++ umask 022 ++ cd /home/bogus/rpmbuild/BUILD ++ rm -rf concentration-1.1.5 ++ RPM_EC=0 +++ jobs -p ++ exit 0 +``` + +Your RPM package has been built in the RPMS subdirectory. Install it as usual with `dnf` : + +``` +$ sudo dnf install RPMS/noarch/python3-concentration*rpm +``` + +### Why not just use PyPi? + +It's not absolutely necessary to make a Python module into an RPM. Installing a module with PyPi is also acceptable, but PyPi adds another package manager to your personal list of things to check and update. When you install an RPM using `dnf`, you have a complete listing of what you've installed on your system. Thanks to `pyp2rpm`, the process is quick, easy, and automatable. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/package-python-module-rpm + +作者:[Sumantro Mukherjee][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/sumantro +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/python-programming-code-keyboard.png From 8b5daa47661ba691911622a60a945477dca72b88 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 01:29:39 +0800 Subject: [PATCH 0207/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220630=20The=20Top=20Trends=20Changing=20The=20Dat?= =?UTF-8?q?a=20Center=20Industry.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rends Changing The Data Center Industry.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sources/tech/20220630 The Top Trends Changing The Data Center Industry.md diff --git a/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md b/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md new file mode 100644 index 0000000000..31dbb0dca3 --- /dev/null +++ b/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md @@ -0,0 +1,51 @@ +[#]: subject: "The Top Trends Changing The Data Center Industry" +[#]: via: "https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/" +[#]: author: "abhimanyu rathore https://www.opensourceforu.com/author/abhimanyu-rathore/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Top Trends Changing The Data Center Industry +====== +![Data center][1] + +The pandemic has accelerated the rate of digital transformation across the country, and this has necessitated more investments in data centers. Owing to rapid digitalization and cloud adoption, the Indian data center market is expected to double its capacity in the upcoming years. As per reports, the Indian data center market size was valued at $4.35 billion in 2021 and will reach $10.09 billion by 2027, growing at a CAGR of 15.07% during 2022-2027. + +Now, a key question that arises is what lies ahead for the data center industry in India? What new trends are going to shape its future? Below mentioned are the top trends that will significantly impact the data center industry in India. + +### Data Localization + +Data localization simply means restricting the flow of data from one country to another. The Indian government has issued guidelines highlighting the need to store data of Indian users within the country’s boundaries. Data localization has made it mandatory for companies that collect critical consumer data to store and process it in local data centers. This has given a huge surge to local data centers. In addition, the cost advantage and easy accessibility of skilled labor in India makes it a key hub for data centers in Asia. + +### Sustainable Data Centers + +It’s a known fact that data centers consume a lot of non-renewal resources. To make data centers sustainable, companies have redesigned their facilities to greatly reduce power and water consumption by utilizing emerging technologies such as AI, ML and cloud. Cloud data centers use fewer servers thereby reducing the carbon impact. They are generally located closer to the facilities that power them to prevent large losses during the process of transmitting electrical energy over long distances. In addition, public cloud data centers can be used to store data from multiple businesses. An on-premise data center has capacity limitations when it comes to storing huge volume of data, thereby leading to non-optimal use of resources. Hence, cloud data centers are revolutionizing the industry by enabling businesses to consume fewer servers and less power and reduce their carbon emissions in the process. + +### Edge Connectivity + +Edge data centers are small data centers that are located closer to the edge of a network. They typically connect to a larger central data center or multiple data centers. By processing data and services closer to the end-user, edge computing allows organizations to reduce latency and improve the customer experience. Such data centers are extremely beneficial for industries that need data processing in real-time such as autonomous vehicles, telemedicine, telecommunication, OTT platforms, and smart wearables. + +### Hyperscale Data Centers + +Traditionally data centers were a simple network of racks with storage units and a set of management tools. It had the architecture that was easy to understand. However, as digital transformation took over the corporate world, organizations started to generate huge volumes of data. The traditional storage units and tools were inadequate to handle this influx of data and hence larger capacity with sophisticated facilities were required. In addition, traditional data centers could not scale up or down their capabilities to accommodate the fluctuations in demand and hence resulted in wastage of resources. This led to the evolution of hyperscaling as a solution. + +Hyperscale data centers are massive business-critical facilities designed to efficiently support robust and scalable applications by bringing together a large number of servers working together at high speeds. This ability gives the data center a capacity to scale both horizontally and vertically. + +In conclusion, the data center industry is evolving and new trends will keep cropping up. With the new-age disruptive technologies, data center industry can build eco-friendly and energy efficient data centers. Technologies such as AI, edge computing, and IoT can be utilized to maximize energy efficiency and minimize environmental impact. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/ + +作者:[abhimanyu rathore][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/abhimanyu-rathore/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2016/03/Data-center.jpg From 68f475fd386033ce5dde07961fa3bbe7df3707c2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 1 Jul 2022 07:48:09 +0800 Subject: [PATCH 0208/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20180712 An introduction to Go arrays and slices.md | 0 published/{ => 202206}/20190131 OOP Before OOP with Simula.md | 0 .../{ => 202206}/20210104 10 ways Ansible is for everyone.md | 0 ...0104 Docker Compose- a nice way to set up a dev environment.md | 0 .../20210115 Learn awk by coding a -guess the number- game.md | 0 ... Configure a Linux workspace remotely from the command line.md | 0 .../20210124 3 stress-free steps to tackling your task list.md | 0 .../20210131 How to teach open source beyond business.md | 0 .../{ => 202206}/20210207 3 ways to play video games on Linux.md | 0 ...age your budget on Linux with this open source finance tool.md | 0 .../20210319 Create a countdown clock with a Raspberry Pi.md | 0 ...10405 How different programming languages do the same thing.md | 0 .../20210503 Learn the Lisp programming language in 2021.md | 0 ...0210531 Get started with Kubernetes using chaos engineering.md | 0 .../20210630 9 reasons I love to use the Qt Creator IDE.md | 0 .../{ => 202206}/20210722 Write your first JavaScript code.md | 0 ...ix yay- error while loading shared libraries- libalpm.so.12.md | 0 .../20210725 How to Recover Arch Linux Install via chroot.md | 0 ...o Enable Minimize, Maximize Window Buttons in elementary OS.md | 0 ...2 Apache Kafka- Asynchronous Messaging for Seamless Systems.md | 0 ...o make your first open source contribution with LibreOffice.md | 0 ...res! 25 Fun Things You Can Do With DuckDuckGo Search Engine.md | 0 .../20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md | 0 ...scue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md | 0 ...Install Specific Package Version With Apt Command in Ubuntu.md | 0 .../20220519 Use this open source screen reader on Windows.md | 0 .../20220523 7 pieces of Linux advice for beginners.md | 0 ...20220524 Collision- Linux App to Verify ISO and Other Files.md | 0 ...220524 How to Install KVM on Ubuntu 22.04 -Jammy Jellyfish-.md | 0 .../20220525 Machine Learning- Classification Using Python.md | 0 ... Package is -set to manually installed-- What does it Mean-.md | 0 ...TypeScript Based Headless CMS -Payload- Becomes Open Source.md | 0 ...Compile GNOME Shell and Apps From Source [Beginner-s Guide].md | 0 ...20220530 Dynamically linking libraries while compiling code.md | 0 ...20220530 Using a Machine Learning Model to Make Predictions.md | 0 ... Mobile- A Promising Start with Huge Expectations [Opinion].md | 0 .../20220601 How to Create Local Yum-DNF Repository on RHEL 9.md | 0 ...tches Firefox to Favor Google Chrome as the Default Browser.md | 0 ...with a New Brand -Murena- for Smartphone and Cloud Services.md | 0 ...602 Linux Mint to Maintain Timeshift Backup Tool as an XApp.md | 0 ...y Do Enterprises Use and Contribute to Open Source Software.md | 0 .../20220603 How to Install FFmpeg in Ubuntu and Other Linux.md | 0 ...Contribute at the Fedora Linux 37 Test Week for Kernel 5.18.md | 0 .../20220606 6 Linux word processors you need to try.md | 0 ...sic Player for Linux That Just Plays Music and Nothing Else.md | 0 ... How Garbage Collection works inside a Java Virtual Machine.md | 0 ...20607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md | 0 .../{ => 202206}/20220607 Integrating Zeek with ELK Stack.md | 0 ...ernel 5.19 RC1 Released, Concluding ARM Generic Kernel Work.md | 0 ...Launches -directed funding- To Support Open Source Projects.md | 0 ...w I gave my old laptop new life with the Linux Xfce desktop.md | 0 ... Something New to Replace Annoying CAPTCHAs on the Internet.md | 0 .../20220609 Edit PDFs on Linux with these open source tools.md | 0 ...Adds Leap Micro 5.2, Updated Desktop Environments, and More.md | 0 .../20220610 Manage Flatpak Permission Using Flatseal.md | 0 ...20220610 Run Windows Apps And Games Using WineZGUI On Linux.md | 0 .../20220611 Don-t Be Afraid of Linux Terminal. Embrace it..md | 0 ... is an Ideal IDE for Teaching Python Programming in Schools.md | 0 ...unches Open Source Toolkit To Contain Visual Misinformation.md | 0 ...5 Release is All About Color, Theme, and Other Improvements.md | 0 .../{ => 202206}/20220614 Share your Linux terminal with tmate.md | 0 ...derbird, The Open Source Email Client, Is Coming To Android.md | 0 ... to studies, Twitter Drives Open Source Projects Popularity.md | 0 .../20220615 How I use LibreOffice keyboard shortcuts.md | 0 ...Just Made Firefox the Most Secure Web Browser for All Users.md | 0 ...6 Analyze web pages with Python requests and Beautiful Soup.md | 0 ...20616 Mattermost Extends workflow platform with 7.0 release.md | 0 ...erability Exposes Sensitive Open Source Project Credentials.md | 0 .../20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md | 0 .../20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md | 0 ...220620 Compress Images in Linux Easily With Curtail GUI App.md | 0 ...lease Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md | 0 ...harge For Available Open Source Software In Microsoft Store.md | 0 ...erious GeckoLinux Creator Reveals a New Debian Remix Distro.md | 0 .../20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md | 0 ... Open-Source Project Proves Chrome Extensions Can Track You.md | 0 .../20220622 Manage your Rust toolchain using rustup.md | 0 .../20220623 Minetest, an Open Source Minecraft Alternative.md | 0 ... Copilot is Now Available for All and Not Everyone Likes It.md | 0 ...nus Torvalds Expects to See Rust Support in the Kernel Soon.md | 0 80 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202206}/20180712 An introduction to Go arrays and slices.md (100%) rename published/{ => 202206}/20190131 OOP Before OOP with Simula.md (100%) rename published/{ => 202206}/20210104 10 ways Ansible is for everyone.md (100%) rename published/{ => 202206}/20210104 Docker Compose- a nice way to set up a dev environment.md (100%) rename published/{ => 202206}/20210115 Learn awk by coding a -guess the number- game.md (100%) rename published/{ => 202206}/20210122 Configure a Linux workspace remotely from the command line.md (100%) rename published/{ => 202206}/20210124 3 stress-free steps to tackling your task list.md (100%) rename published/{ => 202206}/20210131 How to teach open source beyond business.md (100%) rename published/{ => 202206}/20210207 3 ways to play video games on Linux.md (100%) rename published/{ => 202206}/20210210 Manage your budget on Linux with this open source finance tool.md (100%) rename published/{ => 202206}/20210319 Create a countdown clock with a Raspberry Pi.md (100%) rename published/{ => 202206}/20210405 How different programming languages do the same thing.md (100%) rename published/{ => 202206}/20210503 Learn the Lisp programming language in 2021.md (100%) rename published/{ => 202206}/20210531 Get started with Kubernetes using chaos engineering.md (100%) rename published/{ => 202206}/20210630 9 reasons I love to use the Qt Creator IDE.md (100%) rename published/{ => 202206}/20210722 Write your first JavaScript code.md (100%) rename published/{ => 202206}/20210724 How to Fix yay- error while loading shared libraries- libalpm.so.12.md (100%) rename published/{ => 202206}/20210725 How to Recover Arch Linux Install via chroot.md (100%) rename published/{ => 202206}/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md (100%) rename published/{ => 202206}/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md (100%) rename published/{ => 202206}/20220510 6 easy ways to make your first open source contribution with LibreOffice.md (100%) rename published/{ => 202206}/20220514 Hidden Features! 25 Fun Things You Can Do With DuckDuckGo Search Engine.md (100%) rename published/{ => 202206}/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md (100%) rename published/{ => 202206}/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md (100%) rename published/{ => 202206}/20220518 Install Specific Package Version With Apt Command in Ubuntu.md (100%) rename published/{ => 202206}/20220519 Use this open source screen reader on Windows.md (100%) rename published/{ => 202206}/20220523 7 pieces of Linux advice for beginners.md (100%) rename published/{ => 202206}/20220524 Collision- Linux App to Verify ISO and Other Files.md (100%) rename published/{ => 202206}/20220524 How to Install KVM on Ubuntu 22.04 -Jammy Jellyfish-.md (100%) rename published/{ => 202206}/20220525 Machine Learning- Classification Using Python.md (100%) rename published/{ => 202206}/20220525 Package is -set to manually installed-- What does it Mean-.md (100%) rename published/{ => 202206}/20220527 TypeScript Based Headless CMS -Payload- Becomes Open Source.md (100%) rename published/{ => 202206}/20220529 Compile GNOME Shell and Apps From Source [Beginner-s Guide].md (100%) rename published/{ => 202206}/20220530 Dynamically linking libraries while compiling code.md (100%) rename published/{ => 202206}/20220530 Using a Machine Learning Model to Make Predictions.md (100%) rename published/{ => 202206}/20220601 GNOME Shell for Mobile- A Promising Start with Huge Expectations [Opinion].md (100%) rename published/{ => 202206}/20220601 How to Create Local Yum-DNF Repository on RHEL 9.md (100%) rename published/{ => 202206}/20220601 Linux Lite 6.0 Ditches Firefox to Favor Google Chrome as the Default Browser.md (100%) rename published/{ => 202206}/20220601 de-Googled -e-OS v1 Released Along with a New Brand -Murena- for Smartphone and Cloud Services.md (100%) rename published/{ => 202206}/20220602 Linux Mint to Maintain Timeshift Backup Tool as an XApp.md (100%) rename published/{ => 202206}/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md (100%) rename published/{ => 202206}/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md (100%) rename published/{ => 202206}/20220605 Contribute at the Fedora Linux 37 Test Week for Kernel 5.18.md (100%) rename published/{ => 202206}/20220606 6 Linux word processors you need to try.md (100%) rename published/{ => 202206}/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md (100%) rename published/{ => 202206}/20220607 How Garbage Collection works inside a Java Virtual Machine.md (100%) rename published/{ => 202206}/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md (100%) rename published/{ => 202206}/20220607 Integrating Zeek with ELK Stack.md (100%) rename published/{ => 202206}/20220607 Linux Kernel 5.19 RC1 Released, Concluding ARM Generic Kernel Work.md (100%) rename published/{ => 202206}/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md (100%) rename published/{ => 202206}/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md (100%) rename published/{ => 202206}/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md (100%) rename published/{ => 202206}/20220609 Edit PDFs on Linux with these open source tools.md (100%) rename published/{ => 202206}/20220609 openSUSE Leap 15.4 Release Adds Leap Micro 5.2, Updated Desktop Environments, and More.md (100%) rename published/{ => 202206}/20220610 Manage Flatpak Permission Using Flatseal.md (100%) rename published/{ => 202206}/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md (100%) rename published/{ => 202206}/20220611 Don-t Be Afraid of Linux Terminal. Embrace it..md (100%) rename published/{ => 202206}/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md (100%) rename published/{ => 202206}/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md (100%) rename published/{ => 202206}/20220614 KDE Plasma 5.25 Release is All About Color, Theme, and Other Improvements.md (100%) rename published/{ => 202206}/20220614 Share your Linux terminal with tmate.md (100%) rename published/{ => 202206}/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md (100%) rename published/{ => 202206}/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md (100%) rename published/{ => 202206}/20220615 How I use LibreOffice keyboard shortcuts.md (100%) rename published/{ => 202206}/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md (100%) rename published/{ => 202206}/20220616 Analyze web pages with Python requests and Beautiful Soup.md (100%) rename published/{ => 202206}/20220616 Mattermost Extends workflow platform with 7.0 release.md (100%) rename published/{ => 202206}/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md (100%) rename published/{ => 202206}/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md (100%) rename published/{ => 202206}/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md (100%) rename published/{ => 202206}/20220620 Compress Images in Linux Easily With Curtail GUI App.md (100%) rename published/{ => 202206}/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md (100%) rename published/{ => 202206}/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md (100%) rename published/{ => 202206}/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md (100%) rename published/{ => 202206}/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md (100%) rename published/{ => 202206}/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md (100%) rename published/{ => 202206}/20220622 Manage your Rust toolchain using rustup.md (100%) rename published/{ => 202206}/20220623 Minetest, an Open Source Minecraft Alternative.md (100%) rename published/{ => 202206}/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md (100%) rename published/{ => 202206}/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md (100%) diff --git a/published/20180712 An introduction to Go arrays and slices.md b/published/202206/20180712 An introduction to Go arrays and slices.md similarity index 100% rename from published/20180712 An introduction to Go arrays and slices.md rename to published/202206/20180712 An introduction to Go arrays and slices.md diff --git a/published/20190131 OOP Before OOP with Simula.md b/published/202206/20190131 OOP Before OOP with Simula.md similarity index 100% rename from published/20190131 OOP Before OOP with Simula.md rename to published/202206/20190131 OOP Before OOP with Simula.md diff --git a/published/20210104 10 ways Ansible is for everyone.md b/published/202206/20210104 10 ways Ansible is for everyone.md similarity index 100% rename from published/20210104 10 ways Ansible is for everyone.md rename to published/202206/20210104 10 ways Ansible is for everyone.md diff --git a/published/20210104 Docker Compose- a nice way to set up a dev environment.md b/published/202206/20210104 Docker Compose- a nice way to set up a dev environment.md similarity index 100% rename from published/20210104 Docker Compose- a nice way to set up a dev environment.md rename to published/202206/20210104 Docker Compose- a nice way to set up a dev environment.md diff --git a/published/20210115 Learn awk by coding a -guess the number- game.md b/published/202206/20210115 Learn awk by coding a -guess the number- game.md similarity index 100% rename from published/20210115 Learn awk by coding a -guess the number- game.md rename to published/202206/20210115 Learn awk by coding a -guess the number- game.md diff --git a/published/20210122 Configure a Linux workspace remotely from the command line.md b/published/202206/20210122 Configure a Linux workspace remotely from the command line.md similarity index 100% rename from published/20210122 Configure a Linux workspace remotely from the command line.md rename to published/202206/20210122 Configure a Linux workspace remotely from the command line.md diff --git a/published/20210124 3 stress-free steps to tackling your task list.md b/published/202206/20210124 3 stress-free steps to tackling your task list.md similarity index 100% rename from published/20210124 3 stress-free steps to tackling your task list.md rename to published/202206/20210124 3 stress-free steps to tackling your task list.md diff --git a/published/20210131 How to teach open source beyond business.md b/published/202206/20210131 How to teach open source beyond business.md similarity index 100% rename from published/20210131 How to teach open source beyond business.md rename to published/202206/20210131 How to teach open source beyond business.md diff --git a/published/20210207 3 ways to play video games on Linux.md b/published/202206/20210207 3 ways to play video games on Linux.md similarity index 100% rename from published/20210207 3 ways to play video games on Linux.md rename to published/202206/20210207 3 ways to play video games on Linux.md diff --git a/published/20210210 Manage your budget on Linux with this open source finance tool.md b/published/202206/20210210 Manage your budget on Linux with this open source finance tool.md similarity index 100% rename from published/20210210 Manage your budget on Linux with this open source finance tool.md rename to published/202206/20210210 Manage your budget on Linux with this open source finance tool.md diff --git a/published/20210319 Create a countdown clock with a Raspberry Pi.md b/published/202206/20210319 Create a countdown clock with a Raspberry Pi.md similarity index 100% rename from published/20210319 Create a countdown clock with a Raspberry Pi.md rename to published/202206/20210319 Create a countdown clock with a Raspberry Pi.md diff --git a/published/20210405 How different programming languages do the same thing.md b/published/202206/20210405 How different programming languages do the same thing.md similarity index 100% rename from published/20210405 How different programming languages do the same thing.md rename to published/202206/20210405 How different programming languages do the same thing.md diff --git a/published/20210503 Learn the Lisp programming language in 2021.md b/published/202206/20210503 Learn the Lisp programming language in 2021.md similarity index 100% rename from published/20210503 Learn the Lisp programming language in 2021.md rename to published/202206/20210503 Learn the Lisp programming language in 2021.md diff --git a/published/20210531 Get started with Kubernetes using chaos engineering.md b/published/202206/20210531 Get started with Kubernetes using chaos engineering.md similarity index 100% rename from published/20210531 Get started with Kubernetes using chaos engineering.md rename to published/202206/20210531 Get started with Kubernetes using chaos engineering.md diff --git a/published/20210630 9 reasons I love to use the Qt Creator IDE.md b/published/202206/20210630 9 reasons I love to use the Qt Creator IDE.md similarity index 100% rename from published/20210630 9 reasons I love to use the Qt Creator IDE.md rename to published/202206/20210630 9 reasons I love to use the Qt Creator IDE.md diff --git a/published/20210722 Write your first JavaScript code.md b/published/202206/20210722 Write your first JavaScript code.md similarity index 100% rename from published/20210722 Write your first JavaScript code.md rename to published/202206/20210722 Write your first JavaScript code.md diff --git a/published/20210724 How to Fix yay- error while loading shared libraries- libalpm.so.12.md b/published/202206/20210724 How to Fix yay- error while loading shared libraries- libalpm.so.12.md similarity index 100% rename from published/20210724 How to Fix yay- error while loading shared libraries- libalpm.so.12.md rename to published/202206/20210724 How to Fix yay- error while loading shared libraries- libalpm.so.12.md diff --git a/published/20210725 How to Recover Arch Linux Install via chroot.md b/published/202206/20210725 How to Recover Arch Linux Install via chroot.md similarity index 100% rename from published/20210725 How to Recover Arch Linux Install via chroot.md rename to published/202206/20210725 How to Recover Arch Linux Install via chroot.md diff --git a/published/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md b/published/202206/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md similarity index 100% rename from published/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md rename to published/202206/20210809 How to Enable Minimize, Maximize Window Buttons in elementary OS.md diff --git a/published/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md b/published/202206/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md similarity index 100% rename from published/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md rename to published/202206/20211102 Apache Kafka- Asynchronous Messaging for Seamless Systems.md diff --git a/published/20220510 6 easy ways to make your first open source contribution with LibreOffice.md b/published/202206/20220510 6 easy ways to make your first open source contribution with LibreOffice.md similarity index 100% rename from published/20220510 6 easy ways to make your first open source contribution with LibreOffice.md rename to published/202206/20220510 6 easy ways to make your first open source contribution with LibreOffice.md diff --git a/published/20220514 Hidden Features! 25 Fun Things You Can Do With DuckDuckGo Search Engine.md b/published/202206/20220514 Hidden Features! 25 Fun Things You Can Do With DuckDuckGo Search Engine.md similarity index 100% rename from published/20220514 Hidden Features! 25 Fun Things You Can Do With DuckDuckGo Search Engine.md rename to published/202206/20220514 Hidden Features! 25 Fun Things You Can Do With DuckDuckGo Search Engine.md diff --git a/published/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md b/published/202206/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md similarity index 100% rename from published/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md rename to published/202206/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md diff --git a/published/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md b/published/202206/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md similarity index 100% rename from published/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md rename to published/202206/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md diff --git a/published/20220518 Install Specific Package Version With Apt Command in Ubuntu.md b/published/202206/20220518 Install Specific Package Version With Apt Command in Ubuntu.md similarity index 100% rename from published/20220518 Install Specific Package Version With Apt Command in Ubuntu.md rename to published/202206/20220518 Install Specific Package Version With Apt Command in Ubuntu.md diff --git a/published/20220519 Use this open source screen reader on Windows.md b/published/202206/20220519 Use this open source screen reader on Windows.md similarity index 100% rename from published/20220519 Use this open source screen reader on Windows.md rename to published/202206/20220519 Use this open source screen reader on Windows.md diff --git a/published/20220523 7 pieces of Linux advice for beginners.md b/published/202206/20220523 7 pieces of Linux advice for beginners.md similarity index 100% rename from published/20220523 7 pieces of Linux advice for beginners.md rename to published/202206/20220523 7 pieces of Linux advice for beginners.md diff --git a/published/20220524 Collision- Linux App to Verify ISO and Other Files.md b/published/202206/20220524 Collision- Linux App to Verify ISO and Other Files.md similarity index 100% rename from published/20220524 Collision- Linux App to Verify ISO and Other Files.md rename to published/202206/20220524 Collision- Linux App to Verify ISO and Other Files.md diff --git a/published/20220524 How to Install KVM on Ubuntu 22.04 -Jammy Jellyfish-.md b/published/202206/20220524 How to Install KVM on Ubuntu 22.04 -Jammy Jellyfish-.md similarity index 100% rename from published/20220524 How to Install KVM on Ubuntu 22.04 -Jammy Jellyfish-.md rename to published/202206/20220524 How to Install KVM on Ubuntu 22.04 -Jammy Jellyfish-.md diff --git a/published/20220525 Machine Learning- Classification Using Python.md b/published/202206/20220525 Machine Learning- Classification Using Python.md similarity index 100% rename from published/20220525 Machine Learning- Classification Using Python.md rename to published/202206/20220525 Machine Learning- Classification Using Python.md diff --git a/published/20220525 Package is -set to manually installed-- What does it Mean-.md b/published/202206/20220525 Package is -set to manually installed-- What does it Mean-.md similarity index 100% rename from published/20220525 Package is -set to manually installed-- What does it Mean-.md rename to published/202206/20220525 Package is -set to manually installed-- What does it Mean-.md diff --git a/published/20220527 TypeScript Based Headless CMS -Payload- Becomes Open Source.md b/published/202206/20220527 TypeScript Based Headless CMS -Payload- Becomes Open Source.md similarity index 100% rename from published/20220527 TypeScript Based Headless CMS -Payload- Becomes Open Source.md rename to published/202206/20220527 TypeScript Based Headless CMS -Payload- Becomes Open Source.md diff --git a/published/20220529 Compile GNOME Shell and Apps From Source [Beginner-s Guide].md b/published/202206/20220529 Compile GNOME Shell and Apps From Source [Beginner-s Guide].md similarity index 100% rename from published/20220529 Compile GNOME Shell and Apps From Source [Beginner-s Guide].md rename to published/202206/20220529 Compile GNOME Shell and Apps From Source [Beginner-s Guide].md diff --git a/published/20220530 Dynamically linking libraries while compiling code.md b/published/202206/20220530 Dynamically linking libraries while compiling code.md similarity index 100% rename from published/20220530 Dynamically linking libraries while compiling code.md rename to published/202206/20220530 Dynamically linking libraries while compiling code.md diff --git a/published/20220530 Using a Machine Learning Model to Make Predictions.md b/published/202206/20220530 Using a Machine Learning Model to Make Predictions.md similarity index 100% rename from published/20220530 Using a Machine Learning Model to Make Predictions.md rename to published/202206/20220530 Using a Machine Learning Model to Make Predictions.md diff --git a/published/20220601 GNOME Shell for Mobile- A Promising Start with Huge Expectations [Opinion].md b/published/202206/20220601 GNOME Shell for Mobile- A Promising Start with Huge Expectations [Opinion].md similarity index 100% rename from published/20220601 GNOME Shell for Mobile- A Promising Start with Huge Expectations [Opinion].md rename to published/202206/20220601 GNOME Shell for Mobile- A Promising Start with Huge Expectations [Opinion].md diff --git a/published/20220601 How to Create Local Yum-DNF Repository on RHEL 9.md b/published/202206/20220601 How to Create Local Yum-DNF Repository on RHEL 9.md similarity index 100% rename from published/20220601 How to Create Local Yum-DNF Repository on RHEL 9.md rename to published/202206/20220601 How to Create Local Yum-DNF Repository on RHEL 9.md diff --git a/published/20220601 Linux Lite 6.0 Ditches Firefox to Favor Google Chrome as the Default Browser.md b/published/202206/20220601 Linux Lite 6.0 Ditches Firefox to Favor Google Chrome as the Default Browser.md similarity index 100% rename from published/20220601 Linux Lite 6.0 Ditches Firefox to Favor Google Chrome as the Default Browser.md rename to published/202206/20220601 Linux Lite 6.0 Ditches Firefox to Favor Google Chrome as the Default Browser.md diff --git a/published/20220601 de-Googled -e-OS v1 Released Along with a New Brand -Murena- for Smartphone and Cloud Services.md b/published/202206/20220601 de-Googled -e-OS v1 Released Along with a New Brand -Murena- for Smartphone and Cloud Services.md similarity index 100% rename from published/20220601 de-Googled -e-OS v1 Released Along with a New Brand -Murena- for Smartphone and Cloud Services.md rename to published/202206/20220601 de-Googled -e-OS v1 Released Along with a New Brand -Murena- for Smartphone and Cloud Services.md diff --git a/published/20220602 Linux Mint to Maintain Timeshift Backup Tool as an XApp.md b/published/202206/20220602 Linux Mint to Maintain Timeshift Backup Tool as an XApp.md similarity index 100% rename from published/20220602 Linux Mint to Maintain Timeshift Backup Tool as an XApp.md rename to published/202206/20220602 Linux Mint to Maintain Timeshift Backup Tool as an XApp.md diff --git a/published/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md b/published/202206/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md similarity index 100% rename from published/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md rename to published/202206/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md diff --git a/published/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md b/published/202206/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md similarity index 100% rename from published/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md rename to published/202206/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md diff --git a/published/20220605 Contribute at the Fedora Linux 37 Test Week for Kernel 5.18.md b/published/202206/20220605 Contribute at the Fedora Linux 37 Test Week for Kernel 5.18.md similarity index 100% rename from published/20220605 Contribute at the Fedora Linux 37 Test Week for Kernel 5.18.md rename to published/202206/20220605 Contribute at the Fedora Linux 37 Test Week for Kernel 5.18.md diff --git a/published/20220606 6 Linux word processors you need to try.md b/published/202206/20220606 6 Linux word processors you need to try.md similarity index 100% rename from published/20220606 6 Linux word processors you need to try.md rename to published/202206/20220606 6 Linux word processors you need to try.md diff --git a/published/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md b/published/202206/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md similarity index 100% rename from published/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md rename to published/202206/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md diff --git a/published/20220607 How Garbage Collection works inside a Java Virtual Machine.md b/published/202206/20220607 How Garbage Collection works inside a Java Virtual Machine.md similarity index 100% rename from published/20220607 How Garbage Collection works inside a Java Virtual Machine.md rename to published/202206/20220607 How Garbage Collection works inside a Java Virtual Machine.md diff --git a/published/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md b/published/202206/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md similarity index 100% rename from published/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md rename to published/202206/20220607 How to Boot Ubuntu 22.04 into Rescue - Emergency Mode.md diff --git a/published/20220607 Integrating Zeek with ELK Stack.md b/published/202206/20220607 Integrating Zeek with ELK Stack.md similarity index 100% rename from published/20220607 Integrating Zeek with ELK Stack.md rename to published/202206/20220607 Integrating Zeek with ELK Stack.md diff --git a/published/20220607 Linux Kernel 5.19 RC1 Released, Concluding ARM Generic Kernel Work.md b/published/202206/20220607 Linux Kernel 5.19 RC1 Released, Concluding ARM Generic Kernel Work.md similarity index 100% rename from published/20220607 Linux Kernel 5.19 RC1 Released, Concluding ARM Generic Kernel Work.md rename to published/202206/20220607 Linux Kernel 5.19 RC1 Released, Concluding ARM Generic Kernel Work.md diff --git a/published/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md b/published/202206/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md similarity index 100% rename from published/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md rename to published/202206/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md diff --git a/published/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md b/published/202206/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md similarity index 100% rename from published/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md rename to published/202206/20220608 How I gave my old laptop new life with the Linux Xfce desktop.md diff --git a/published/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md b/published/202206/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md similarity index 100% rename from published/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md rename to published/202206/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md diff --git a/published/20220609 Edit PDFs on Linux with these open source tools.md b/published/202206/20220609 Edit PDFs on Linux with these open source tools.md similarity index 100% rename from published/20220609 Edit PDFs on Linux with these open source tools.md rename to published/202206/20220609 Edit PDFs on Linux with these open source tools.md diff --git a/published/20220609 openSUSE Leap 15.4 Release Adds Leap Micro 5.2, Updated Desktop Environments, and More.md b/published/202206/20220609 openSUSE Leap 15.4 Release Adds Leap Micro 5.2, Updated Desktop Environments, and More.md similarity index 100% rename from published/20220609 openSUSE Leap 15.4 Release Adds Leap Micro 5.2, Updated Desktop Environments, and More.md rename to published/202206/20220609 openSUSE Leap 15.4 Release Adds Leap Micro 5.2, Updated Desktop Environments, and More.md diff --git a/published/20220610 Manage Flatpak Permission Using Flatseal.md b/published/202206/20220610 Manage Flatpak Permission Using Flatseal.md similarity index 100% rename from published/20220610 Manage Flatpak Permission Using Flatseal.md rename to published/202206/20220610 Manage Flatpak Permission Using Flatseal.md diff --git a/published/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md b/published/202206/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md similarity index 100% rename from published/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md rename to published/202206/20220610 Run Windows Apps And Games Using WineZGUI On Linux.md diff --git a/published/20220611 Don-t Be Afraid of Linux Terminal. Embrace it..md b/published/202206/20220611 Don-t Be Afraid of Linux Terminal. Embrace it..md similarity index 100% rename from published/20220611 Don-t Be Afraid of Linux Terminal. Embrace it..md rename to published/202206/20220611 Don-t Be Afraid of Linux Terminal. Embrace it..md diff --git a/published/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md b/published/202206/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md similarity index 100% rename from published/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md rename to published/202206/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md diff --git a/published/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md b/published/202206/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md similarity index 100% rename from published/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md rename to published/202206/20220614 Adobe Launches Open Source Toolkit To Contain Visual Misinformation.md diff --git a/published/20220614 KDE Plasma 5.25 Release is All About Color, Theme, and Other Improvements.md b/published/202206/20220614 KDE Plasma 5.25 Release is All About Color, Theme, and Other Improvements.md similarity index 100% rename from published/20220614 KDE Plasma 5.25 Release is All About Color, Theme, and Other Improvements.md rename to published/202206/20220614 KDE Plasma 5.25 Release is All About Color, Theme, and Other Improvements.md diff --git a/published/20220614 Share your Linux terminal with tmate.md b/published/202206/20220614 Share your Linux terminal with tmate.md similarity index 100% rename from published/20220614 Share your Linux terminal with tmate.md rename to published/202206/20220614 Share your Linux terminal with tmate.md diff --git a/published/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md b/published/202206/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md similarity index 100% rename from published/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md rename to published/202206/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md diff --git a/published/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md b/published/202206/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md similarity index 100% rename from published/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md rename to published/202206/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md diff --git a/published/20220615 How I use LibreOffice keyboard shortcuts.md b/published/202206/20220615 How I use LibreOffice keyboard shortcuts.md similarity index 100% rename from published/20220615 How I use LibreOffice keyboard shortcuts.md rename to published/202206/20220615 How I use LibreOffice keyboard shortcuts.md diff --git a/published/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md b/published/202206/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md similarity index 100% rename from published/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md rename to published/202206/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md diff --git a/published/20220616 Analyze web pages with Python requests and Beautiful Soup.md b/published/202206/20220616 Analyze web pages with Python requests and Beautiful Soup.md similarity index 100% rename from published/20220616 Analyze web pages with Python requests and Beautiful Soup.md rename to published/202206/20220616 Analyze web pages with Python requests and Beautiful Soup.md diff --git a/published/20220616 Mattermost Extends workflow platform with 7.0 release.md b/published/202206/20220616 Mattermost Extends workflow platform with 7.0 release.md similarity index 100% rename from published/20220616 Mattermost Extends workflow platform with 7.0 release.md rename to published/202206/20220616 Mattermost Extends workflow platform with 7.0 release.md diff --git a/published/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md b/published/202206/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md similarity index 100% rename from published/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md rename to published/202206/20220616 The Travis CI Vulnerability Exposes Sensitive Open Source Project Credentials.md diff --git a/published/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md b/published/202206/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md similarity index 100% rename from published/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md rename to published/202206/20220616 Ubuntu Core 22 is Here for IoT and Edge Devices.md diff --git a/published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md b/published/202206/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md similarity index 100% rename from published/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md rename to published/202206/20220617 Ubuntu Runs on a Google Nest Hub, Wait, What-.md diff --git a/published/20220620 Compress Images in Linux Easily With Curtail GUI App.md b/published/202206/20220620 Compress Images in Linux Easily With Curtail GUI App.md similarity index 100% rename from published/20220620 Compress Images in Linux Easily With Curtail GUI App.md rename to published/202206/20220620 Compress Images in Linux Easily With Curtail GUI App.md diff --git a/published/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md b/published/202206/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md similarity index 100% rename from published/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md rename to published/202206/20220620 Manjaro 21.3.0 -Ruah- Release Adds Latest Calmares 3.2, GNOME 42, and More Upgrades.md diff --git a/published/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md b/published/202206/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md similarity index 100% rename from published/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md rename to published/202206/20220620 Microsoft To Charge For Available Open Source Software In Microsoft Store.md diff --git a/published/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md b/published/202206/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md similarity index 100% rename from published/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md rename to published/202206/20220621 Mysterious GeckoLinux Creator Reveals a New Debian Remix Distro.md diff --git a/published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md b/published/202206/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md similarity index 100% rename from published/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md rename to published/202206/20220621 The Final Version Of 7-Zip 22.00 Is Now Available.md diff --git a/published/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md b/published/202206/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md similarity index 100% rename from published/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md rename to published/202206/20220621 This Open-Source Project Proves Chrome Extensions Can Track You.md diff --git a/published/20220622 Manage your Rust toolchain using rustup.md b/published/202206/20220622 Manage your Rust toolchain using rustup.md similarity index 100% rename from published/20220622 Manage your Rust toolchain using rustup.md rename to published/202206/20220622 Manage your Rust toolchain using rustup.md diff --git a/published/20220623 Minetest, an Open Source Minecraft Alternative.md b/published/202206/20220623 Minetest, an Open Source Minecraft Alternative.md similarity index 100% rename from published/20220623 Minetest, an Open Source Minecraft Alternative.md rename to published/202206/20220623 Minetest, an Open Source Minecraft Alternative.md diff --git a/published/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md b/published/202206/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md similarity index 100% rename from published/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md rename to published/202206/20220624 GitHub Copilot is Now Available for All and Not Everyone Likes It.md diff --git a/published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md b/published/202206/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md similarity index 100% rename from published/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md rename to published/202206/20220624 Linus Torvalds Expects to See Rust Support in the Kernel Soon.md From ad618c824b21f4952e51bd31e8ce8e0f9736ae4d Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 1 Jul 2022 08:36:44 +0800 Subject: [PATCH 0209/3123] translated --- ...icrosoft To-Do Desktop Client for Linux.md | 97 ------------------- ...icrosoft To-Do Desktop Client for Linux.md | 97 +++++++++++++++++++ 2 files changed, 97 insertions(+), 97 deletions(-) delete mode 100644 sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md create mode 100644 translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md diff --git a/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md b/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md deleted file mode 100644 index 02984dda96..0000000000 --- a/sources/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: subject: "Kuro: An Unofficial Microsoft To-Do Desktop Client for Linux" -[#]: via: "https://itsfoss.com/kuro-to-do-app/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kuro: An Unofficial Microsoft To-Do Desktop Client for Linux -====== -Microsoft says that they love Linux and open-source, but we still do not have native support for a lot of its products on Linux. - -While they could be trying to add more support, like the ability to [install Microsoft Edge on Linux][1]– but it’s not excellent for a multi-trillion dollar company. - -Similarly, Microsoft’s To-Do service is also a popular one, replacing Wunderlist as it was shut down in 2020. - -In case you’re curious, we have a lot of [to-do list applications available for Linux][2]. So, if you want to switch away from Microsoft To-Do, you’ve got options. - -Microsoft To-Do is a cloud-based task management application that lets you organize your tasks from your phone, desktop, and the web. It is available to download for Windows, Mac, and Android. - -So, if you would rather not use the web browser but a separate application, what can you do on Linux? - -Kuro to the rescue. - -### Kuro: Unofficial Open-Source Microsoft To-Do App - -![kuro todo][3] - -Kuro is an unofficial open-source application that provides you a desktop experience for Microsoft To-Do on Linux with some extra features. - -It is a fork of Ao, which was an open-source project that stepped up to become a solution for it. Unfortunately, it is no longer being actively maintained. So, I came across a new fork for it that seems to get the job done. - -![kuro todo options][4] - -Kuro provides some extra features that let you toggle themes, enable global shortcuts, and more from within the application. - -Note that this application is fairly new, but a stable release is available to try. Furthermore, the developer plans to add more themes and features in the near future. - -### Features of Kuro - -![kuro todo 1][5] - -If you tend to use Microsoft services (like Outlook), its To-Do app should be a perfect option to organize your tasks. You can even flag emails to create tasks out of it. - -With Kuro desktop client, you get a few quick features to configure that include: - -* Ability to launch the program on start. -* Get a system tray icon to quickly create a task, search, or check the available list for the day. -* Enable Global shortcut keys. -* Toggle available themes (Sepia, Dracula, Black, Dark). -* Toggle Auto Night mode, if you do not want to constantly change themes. -* Hide the tray icon, if you do not need it. -* Customize the font size as required. - -![kuro todo settings][6] - -In addition to some features, you can also access certain settings to enable/disable email notifications, confirm before deleting, and more such controls for the to-do app experience. - -Overall, the experience wasn’t terrible, but I noticed some weird graphical glitches in the user interface for a few minutes. I am not sure if it is a known issue. - -### Install Kuro in Linux - -You can find the .deb package for Ubuntu-based distributions from its [GitHub releases section][7]. - -In either case, you can also get it from the [Snap store][8] for any Linux distribution of your choice. The package is also available in [AUR][9] for Arch Linux distributions. - -The developer also mentions that a Flatpak package is on its way. So, you can keep an eye on its [GitHub page][10] for more information on that. - -[Kuro][11] - -Have you tried this already? Do you know of a better Microsoft to-do client for Linux? Let me know in the comments below. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/kuro-to-do-app/ - -作者:[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/microsoft-edge-linux/ -[2]: https://itsfoss.com/to-do-list-apps-linux/ -[3]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-800x507.png -[4]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-options-800x444.png -[5]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-1.png -[6]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-settings.png -[7]: https://github.com/davidsmorais/kuro/releases -[8]: https://snapcraft.io/kuro-desktop -[9]: https://itsfoss.com/aur-arch-linux/ -[10]: https://github.com/davidsmorais/kuro -[11]: https://github.com/davidsmorais/kuro diff --git a/translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md b/translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md new file mode 100644 index 0000000000..a6941343f5 --- /dev/null +++ b/translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md @@ -0,0 +1,97 @@ +[#]: subject: "Kuro: An Unofficial Microsoft To-Do Desktop Client for Linux" +[#]: via: "https://itsfoss.com/kuro-to-do-app/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kuro:非官方的微软 To-Do Linux 桌面客户端 +====== +微软说他们热爱 Linux 和开源,但我们仍然没有对其在 Linux 上的许多产品提供原生支持。 + +虽然他们可能在努力增加更多的支持,比如[在 Linux 上安装 Microsoft Edge][1],但对于一个价值几万亿美元的公司来说,这并不出色。 + +同样,微软的 To-Do 服务也是一个受欢迎的服务,它取代了 2020 年关闭的 Wunderlist。 + +如果你感到好奇,我们有很多[可用于 Linux 的待办事项列表应用][2]。因此,如果你想脱离微软 To-Do,你有选择。 + +微软 To-Do 是一个基于云的任务管理应用,让你从手机、桌面和网络组织你的任务。它可以在 Windows、Mac 和 Android 上下载。 + +那么,如果你宁愿不使用网络浏览器而使用一个单独的应用,你在 Linux 上能做什么呢? + +Kuro 派上用场了。 + +### Kuro:非官方的开源微软 To-Do 应用 + +![kuro todo][3] + +Kuro 是一个非官方的开源应用,它为你提供了微软 To-Do 在 Linux 上的桌面体验和一些额外的功能。 + +它是 Ao 的一个分叉,Ao 是一个开源项目,逐渐成为它的解决方案。 不幸的是,它不再被积极维护。 所以,我遇到了一个似乎可以完成工作的新分叉。 + +![kuro todo options][4] + +Kuro 提供了一些额外的功能,让你在应用中切换主题,启用全局快捷方式等。 + +请注意,这个应用是相当新的,但有一个稳定版本可以试用。此外,开发者计划在不久的将来增加更多的主题和功能。 + +### Kuro 的功能 + +![kuro todo 1][5] + +如果你倾向于使用微软的服务(如 Outlook),它的 To-Do 应用应该是组织你的任务的一个完美选择。你甚至可以标记电子邮件,以创建任务出来。 + +使用 Kuro 桌面客户端,你可以得到一些快速配置的功能,包括: + +* 能够在启动时启动该程序。 +* 获得一个系统托盘图标,以快速创建一个任务,搜索,或检查当天的可用列表。 +* 启用全局快捷键。 +* 切换可用的主题(深褐色、德古拉、黑色、深色)。 +* 切换自动夜间模式,如果你不想不断改变主题。 +* 隐藏托盘图标,如果你不需要它。 +* 根据需要定制字体大小。 + +![kuro todo settings][6] + +除了一些功能外,你还可以进入某些设置,启用/禁用电子邮件通知,删除前确认,以及更多这样的待办事项应用体验的控制。 + +总的来说,体验并不可怕,但我注意到几分钟内用户界面上有一些奇怪的图形问题。我不确定这是否是一个已知的问题。 + +### 在 Linux 中安装 Kuro + +你可以从它的 [GitHub 发布页面][7]找到基于 Ubuntu 的发行版的 .deb 包。 + +无论哪种情况,你都可以从 [Snap 商店][8] 中为你选择的任何 Linux 发行版获取它。 该软件包也可在 Arch Linux 发行版的 [AUR][9] 中获取。 + +开发者还提到,一个 Flatpak 软件包正在进行中。所以,你可以关注它的 [GitHub 页面][10]以了解更多相关信息。 + +[Kuro][11] + +你已经试过这个了吗?你知道有什么更好的微软待办事项客户端用于 Linux 吗?请在下面的评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/kuro-to-do-app/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/microsoft-edge-linux/ +[2]: https://itsfoss.com/to-do-list-apps-linux/ +[3]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-800x507.png +[4]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-options-800x444.png +[5]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/06/kuro-todo-settings.png +[7]: https://github.com/davidsmorais/kuro/releases +[8]: https://snapcraft.io/kuro-desktop +[9]: https://itsfoss.com/aur-arch-linux/ +[10]: https://github.com/davidsmorais/kuro +[11]: https://github.com/davidsmorais/kuro From 492b8d774986d3139c317934ec86326b6ffce840 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 1 Jul 2022 08:40:02 +0800 Subject: [PATCH 0210/3123] translating --- ...andBrake- Free Tool for Converting Videos from Any Format.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md index c9fdf67a65..b7e66362ef 100644 --- a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md +++ b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/handbrake/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ac0a6ce267130e6511ac244e6ef4aa009a04e11d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 1 Jul 2022 11:27:11 +0800 Subject: [PATCH 0211/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....25 and Sets LibreOffice as the Default.md | 103 ------------------ ... Improve Accessibility on Linux Desktop.md | 79 -------------- ...First ISO with ARM Installation Support.md | 101 ----------------- ...el and Improves Picture-in-Picture Mode.md | 75 ------------- ...ith Matrix Support and New Address Book.md | 102 ----------------- ...pt Language Promising Performance Boost.md | 89 --------------- 6 files changed, 549 deletions(-) delete mode 100644 sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md delete mode 100644 sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md delete mode 100644 sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md delete mode 100644 sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md delete mode 100644 sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md delete mode 100644 sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md diff --git a/sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md b/sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md deleted file mode 100644 index 784f289de9..0000000000 --- a/sources/news/20220627 KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default.md +++ /dev/null @@ -1,103 +0,0 @@ -[#]: subject: "KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default" -[#]: via: "https://news.itsfoss.com/kaos-2022-06-release/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -KaOS 2022.06 Release Adds KDE Plasma 5.25 and Sets LibreOffice as the Default -====== -KaOS’s latest update improves the welcome experience for new installations and features more upgrades. - -![kaos][1] - -KaOS, the independent distribution featuring KDE has just released version 2022.06. Although this release includes a lot of changes, notable improvements include Plasma 5.25 and the unreleased Calamares 3.3 branch. - -For a little bit of context, KaOS was first created back in 2013. Its initial goals, which continue to this day, are all centered around providing a highly polished and tightly integrated experience with KDE, Qt, and targeting X86_64 architecture. - -This release seeks to enhance the experience of KaOS users. Let’s find out what’s new! - -### What’s New? - -![][2] - -Although there are a lot of changes in this release, there are a select few that will impact you more than others. Some highlights of this release include: - -* KDE Plasma 5.25.1 -* KDE Frameworks 5.95 -* KDE Gear 22.04.2 -* Calamares 3.3 -* The switch to LibreOffice from Calligra -* Linux Kernel 5.17 -* New package selection (Welcome screen) - -#### The Latest From KDE - -![kde plasma 5.25][3] - -Released just two weeks ago, [KDE Plasma 5.25][4] is the latest and greatest from KDE. Focusing mostly on visual improvements, Plasma 5.25 offers improved gesture support, the ability to add tints to your accent colors, and a significantly improved touch mode. Of course, all these features are available now with KaOS 2022.06. - -All thanks to its rolling-release schedule. - -Alongside the latest plasma version, this version also gets the latest KDE Gear. This is the name given to the suite of KDE Apps. Users of Kdenlive will be pleased to notice initial support for 10-bit color, as well as a revamped render dialog. Kate also received a lot of improvements, and the settings dialog for it is now able to fit on smaller screens. - -A lot of other KDE apps received similar updates, which you should notice throughout your system. Overall, these inclusions should add that extra bit of polish to an already polished system like KaOS. - -#### Calamares 3.3 - -Calamares is the app that you use to install KaOS, as well as many other distributions. Although it is usually only seen when installing the OS, it is the first interaction the user has, and is therefore one of the most important parts to get right. - -The installer uses the improvements found in the Calamares 3.3 branch (which hasn’t seen a release yet). - -#### Package Selection Screen - -![][5] - -For new users, KaOS should be easier to set up than before. You get an improved welcome screen to guide you to select the required packages to make things convenient in your system. - -It is also known as the “Coreso” package selection page to help you make some configurations and install the packages you require. - -#### Ditching Calligra in Favor Of LibreOffice as the Default - -Calligra, the office suite by KDE is being ditched with this release. Now that LibreOffice is available as a single Qt application, the KaOS developers feel comfortable replacing Calligra with it. - -This should bring a number of improvements, most notable better support, as well as a more familiar design. Thanks to its huge user base, LibreOffice is also more actively developed, hopefully meaning that users will get new features sooner. - -#### Linux Kernel 5.17 - -As a somewhat odd move, KaOS 2022.06 ships with [Linux kernel 5.17.15][6]. Currently, this release is marked as End Of Life (EOL). As a result, users shouldn’t expect any maintenance updates. - -On a more positive note, at least this kernel release brings a few cool improvements. It brings improved GPU support, as well as improvements to a number of laptop models. - -Hopefully, if nothing else, this inclusion should make some devices work better than otherwise, even if it isn’t the latest version. - -### Download KaOS 2022.06 - -Overall, KaOS 2022.06 is an impressive release. It manages to provide a large number of improvements. - -If you want to give KaOS a try, feel free to download it from the official website, linked below. - -[KaOS Download][7] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kaos-2022-06-release/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/kaOS-ft.jpg -[2]: https://news.itsfoss.com/wp-content/uploads/2022/06/kaos-2022-6-1024x561.png -[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/apply_global_theme_advanced-1024x903.png -[4]: https://news.itsfoss.com/kde-plasma-5-25-release/ -[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/croeso_packages.png -[6]: https://news.itsfoss.com/linux-kernel-5-17-release/ -[7]: https://kaosx.us/ diff --git a/sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md b/sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md deleted file mode 100644 index bc0f94bc6b..0000000000 --- a/sources/news/20220627 Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop.md +++ /dev/null @@ -1,79 +0,0 @@ -[#]: subject: "Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop" -[#]: via: "https://news.itsfoss.com/red-hat-accessibility-gnome/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop -====== -Red Hat is hiring a blind software engineer to help with accessibility refinements in GNOME, Fedora, and RHEL. This is a good step by Red Hat. - -![red hat fedora][1] - -Accessibility on a Linux desktop is not one of the strongest points to highlight. However, GNOME, one of the [best desktop environments][2], has managed to do better comparatively (I think). - -In a blog post by **Christian Fredrik Schaller** (Director for Desktop/Graphics, Red Hat), he mentions that they are making serious efforts to improve accessibility. - -Starting with Red Hat hiring **Lukas Tyrychtr**, who is a blind software engineer to lead the effort in improving Red Hat Enterprise Linux, and Fedora Workstation in terms of accessibility. - -Here, let me summarise some of the important parts of the blog post. - -### State of Accessibility in GNOME - -While I mentioned that GNOME managed to have decent accessibility support in the past, Christian mentions what happened over the years: - -> The first concerted effort to support accessibility under Linux was undertaken by Sun Microsystems when they decided to use GNOME for Solaris. Sun put together a team focused on building the pieces to make GNOME 2 fully accessible and worked with hardware makers to make sure things like Braille devices worked well. I even heard claims that GNOME and Linux had the best accessibility of any operating system for a while due to this effort. As Sun started struggling and got acquired by Oracle this accessibility effort eventually trailed off with the community trying to pick up the slack afterwards - -In a nutshell, after GNOME 3, not a lot of concentrated efforts were put into enhancing the accessibility of the GNOME desktop. - -Of course, with every desktop environment release, the community/developers try their best to improve certain aspects, but a dedicated effort wasn’t possible without proper guidance and resources. - -This is where Red Hat comes in. - -Hiring a blind software engineer (with plans for more) is a big deal and should go a long way to improve the state of accessibility on the Linux desktop. - -Christian asked Lukas about it and here’s what he mentions: - -> Generally, the desktop is usable, at least with GTK, Qt and major web browsers and all recent Electron based applications. Yes, accessibility support receives much less testing than I would like, so for example, a segmentation fault with a running screen reader can still unfortunately slip through a GTK release. But, generally, the foundation works well enough. Having more and naturally sounding voices for speech synthesis might help attract more blind users, but convincing all the players is no easy work. - -Overall, the fundamentals/basic options for accessibility are in place, but can use improvements to make it a seamless experience across the platform. - -### Plans for Accessibility Improvements - -With the current efforts, I think GNOME, Fedora Workstation, and RHEL should get meaningful improvements in the coming years. - -But, what kind of enhancements are we looking at? - -You can read the [blog post][3] to get the details, here’s a summary of it: - -* Need for more utilities for accessibility. Currently, it is limited to extremely few tools (Orca, Speakup). -* Focusing on applications ported to GTK 4. -* Educating developers about focusing on the accessibility of their applications. - -With Red Hat hiring a blind software engineer, I think the developers will be able to identify what to work on and how to improve it. - -Naturally, with more awareness among developers, the entire Linux ecosystem will benefit (not just GNOME). - -But, of course, this is great news for GNOME users and Fedora/RHEL distributions. - -*What do you think about this initiative by Red Hat? Let us know in the comments below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/red-hat-accessibility-gnome/ - -作者:[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/06/redhat-fedora-acccessibility.png -[2]: https://itsfoss.com/best-linux-desktop-environments/ -[3]: https://fedoramagazine.org/accessibility-in-fedora-workstation/ diff --git a/sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md b/sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md deleted file mode 100644 index 3a39393db2..0000000000 --- a/sources/news/20220628 EndeavourOS Artemis is the First ISO with ARM Installation Support.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: subject: "EndeavourOS Artemis is the First ISO with ARM Installation Support" -[#]: via: "https://news.itsfoss.com/endeavouros-artemis-release/" -[#]: author: "nikhil https://news.itsfoss.com/author/nikhil/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -EndeavourOS Artemis is the First ISO with ARM Installation Support -====== -EndeavourOS includes the latest and greatest with the new release, along with beta support for ARM installations. - -![endeavour os][1] - -The popular Arch-based Linux distribution [EndeavourOS][2] released their latest ISO refresh called Artemis. Interestingly, the release is named after NASA’s upcoming lunar mission. - -Apart from the usual improvements, the latest upgrade includes the latest [Linux Kernel 5.18.5][3] and an updated Calamares installer. - -More importantly, with this release, EndeavourOS is closer to a complete ARM installation support. Let us talk more about it! - -### Closing in on ARM Installation - -The devs at EndeavourOS have updated the Calamares installer to handle installations to ARM devices, but it is still in beta. - -Technically, you will find an integration install option on the welcome app of the main ISO. The developer also mentions that both the repos for ARM and the main ISO are more in sync from now on. - -Of course, it is exciting to see the addition, nevertheless! The announcement post also mentioned: - -> The new installer is a beta release and has limited device support for now, but we are going to add more devices in the future. The team currently is brainstorming to add the first step, the base install, in the Calamares installer also, so it will only take one step to install ARM - -Note that only Odroid N2/N2+ and the Raspberry PI are supported right now. So, you can test it out, if you are interested to experiment. - -If you are curious about the process of installation for ARM devices, here’s a quick summary: - -There are two ‘stages’ to the new installation method: - -![][4] - -**Stage 1:** - -* Boot into a live environment using the EndeavourOS Artemis ISO on your x86_64 computer. -* Connect the SD Card/SSD for your ARM computer as its primary storage. -* Launch Calamares. -* Click on the ARM install button and select the SD Card/SSD you connected and follow with the installation. - -**Stage 2** - -* Once the previous stage is over, unplug the SD Card/SSD, connect it to your ARM computer, and boot into it. -* You’ll be greeted with a modified Welcome app that lets you set up the device’s keyboard layout, timezone, passwords, etc. -* You’ll also be able to download other DEs/WMs from this screen. -* After this setup, Calamares will delete itself and you can use the device as usual. - -For more details, you can check out their blog post on [ARM installation support][5]. - -### Other Improvements - -It is obvious to expect the latest and greatest package updates, being an Arch-based distro. - -You will find Firefox 101.0.1 out of the box, but you should be soon be able to update it to Firefox 102. - -This release also comes with the latest versions of Mesa and Calamares. - -Some of the other changes include: - -* Wireplumber has replaced pipewire-media-session as the session and policy manager for Pipewire -* The package budgie-control-center has been added to the EndeavourOS repo for a smoother and native Budgie experience. -* Offline Xfce install received improvements. -* Xfce4 and i3 install will not autostart firewall-applet by default anymore. - -Also, now EndeavourOS packages can now be downgraded with eos-downgrade. - -You can check out the [official announcement][6] for more details. - -### Download EndeavourOS Artemis - -The latest release ISO is available on the official website. Head over to the [download page][7] and get the latest image from one of the available mirrors. - -[EndeavourOS Artemis][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/endeavouros-artemis-release/ - -作者:[nikhil][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/nikhil/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/endeavour-os-artemis-iso.jpg -[2]: https://endeavouros.com -[3]: https://news.itsfoss.com/linux-kernel-5-18-release/ -[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/endeavour-os-arm.jpg -[5]: https://arm.endeavouros.com/2022/06/24/artemis-with-new-endeavouros-arm-install/ -[6]: https://endeavouros.com/news/artemis-is-launched/ -[7]: https://endeavouros.com/latest-release/ -[8]: https://endeavouros.com/ diff --git a/sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md b/sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md deleted file mode 100644 index 8d2a260e47..0000000000 --- a/sources/news/20220628 Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode" -[#]: via: "https://news.itsfoss.com/firefox-102-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Firefox 102 Release Lets You Disable Download Panel and Improves Picture-in-Picture Mode -====== -Mozilla Firefox 102 release is here with some solid changes, and useful feature additions! - -![][1] - -A new Firefox version upgrade is here. While it may not be a major feature update like [Firefox 100][2], it includes some useful enhancements for a better browsing experience. - -Here’s what’s new: - -### Firefox 102: New Additions and Improvements - -With this release, you can finally disable the automatic opening of the download panel every time a new download starts. So, you won’t have too many windows crowding your screen. - -It also seems that they have added some refinements to the Picture-in-Picture feature with subtitles. You should have better support for it with more streaming platforms, including Disney+ Hotstar, HBO Max, SonyLIV, and a few others. - -![][3] - -Firefox 102 also improves security by moving audio decoding into a separate process with enhanced sandboxing. The process remains isolated, thus giving you more security. - -Additionally, there are some screen reader improvements on Windows. - -For **developers**, there are a couple of important changes that include: - -* Introducing support for [Transform streams][4] which also includes new interfaces. -* Support for [readable byte streams][5]. -* Removal of Firefox-only properly Window.sidebar. -* You can now filter style sheets in the Style Editor tab of our developer tools - -Firefox also adds a new enterprise policy adding a configuration setting that makes sure that the downloads that are meant to be opened are initially stored in a temporary folder. - -If the downloaded file is saved, it will be stored in the download folder. Mozilla explains more about it: - -> There is now an enterprise policy (`StartDownloadsInTempDirectory` ) and an about:config pref (`browser.download.start_downloads_in_tmp_dir` ) that will once again cause Firefox to initially put downloads in (a subfolder of) the OS temp folder, instead of the download folder configured in Firefox. Files opened from the “what should Firefox do with this file” dialog, or set to open in helper applications automatically, will stay in this folder. Files saved (not opened as previously mentioned) will still end up in the Firefox download folder. - -To learn more about the release, refer to the [full release notes][6]. - -### Download Firefox 102 - -You can download the latest Firefox 102 release from its official website or wait for the package update on your Linux distribution. - -In either case, you can always use the [Snap package][7] to get the latest update now. - -[Firefox 102 Download][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/firefox-102-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/06/firefox-102.jpg -[2]: https://news.itsfoss.com/firefox-100-release/ -[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/firefox-102-pip.jpg -[4]: https://developer.mozilla.org/en-US/docs/Web/API/TransformStream -[5]: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API#bytestream-related_interfaces -[6]: https://www.mozilla.org/en-US/firefox/102.0/releasenotes/ -[7]: https://snapcraft.io/firefox -[8]: https://www.mozilla.org/en-US/firefox/ diff --git a/sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md b/sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md deleted file mode 100644 index 06cb50bf86..0000000000 --- a/sources/news/20220629 Thunderbird 102 Releases with Matrix Support and New Address Book.md +++ /dev/null @@ -1,102 +0,0 @@ -[#]: subject: "Thunderbird 102 Releases with Matrix Support and New Address Book" -[#]: via: "https://news.itsfoss.com/thunderbird-102-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Thunderbird 102 Releases with Matrix Support and New Address Book -====== -Thunderbird 102 steps up a notch in terms of user experience, and customization features. - -![thunderbird 102][1] - -We have already talked about the [features coming to Thunderbird 102][2]. And, if you have read that, it is time to experience those exciting features! - -Yes, Thunderbird 102 is now available to download (right around the time of the [Mozilla Firefox 102][3] release). - -### Thunderbird 102: What’s New? - -Thunderbird 102 comes packed with refreshed icons, color folders, and several meaningful upgrades. - -![thunderbird 102][4] - -**Ryan Lee Sipes**, Thunderbird Product Manager mentions: - -“With features like timezone tracking and relationship management, our new address book allows you to better keep track of all the important people in your life.” - -If you are hearing about the update for the first time, let us look at the key highlights of this release. - -#### Brand New Address Book - -![thunderbird 102][5] - -Thunderbird 102 takes a good step towards a modern user experience with a much-needed makeover to its address book. - -You get all the important information at a glance while being compatible with the vCard format. - -#### Central Spaces Toolbar - -![][6] - -A new toolbar to make things more convenient! You can enable the toolbar to get access to the address book, calendar, tasks, chat, and any other add-ons. - -You can customize the toolbar’s look (sidebar) as per your preferences. - -#### New Import/Export Wizard - -![][7] - -Import/Export in Thunderbird required making use of an add-on. While it worked, it wasn’t an out-of-the-box solution. - -Now, with Thunderbird 102, you get this feature built-in. The step-by-step wizard should help users import/export essential data quickly. - -It also ensures you do not duplicate the data with an import for your user profile. - -#### Matrix Support - -It looks like adding support for the Matrix protocol, and enabling decentralized communication is the trend now! - -[Rocket.Chat also added support][8] for it, if you did not know. - -With Thunderbird 102, the chat feature uses Matrix to provide you with a secure messaging experience. - -#### Redesigned Message Header - -The message header usually makes navigation easier when reading a message before responding to it. - -With the new update, you can customize what to highlight, and you also get to hide the labels column if you need. Also, you can “star” an important message and convert them into a calendar event or task, pretty neat! - -In addition to these changes, there are many other refinements that you can explore in the [release notes][9]. - -### Download Thunderbird 102 - -You can download the latest Thunderbird 102 update from the [official website][10]. Or, you can wait for the update to arrive through your package manager. - -*Have you tried Thunderbird 102 yet? What do you think about it?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/thunderbird-102-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/06/thunderbird-102-release.jpg -[2]: https://news.itsfoss.com/thunderbird-102-features/ -[3]: https://news.itsfoss.com/firefox-102-release/ -[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/TB-102-icons-and-folders.png -[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/thunderbird-102-address-book.png -[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/thunderbird-102-spaces-toolbar.jpg -[7]: https://news.itsfoss.com/wp-content/uploads/2022/06/import-export-thunderbird102.jpg -[8]: https://news.itsfoss.com/rocket-chat-matrix/ -[9]: https://www.thunderbird.net/en-US/thunderbird/102.0/releasenotes/ -[10]: https://www.thunderbird.net/en-US/ diff --git a/sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md b/sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md deleted file mode 100644 index 2196c1117d..0000000000 --- a/sources/news/20220629 Vim 9.0 is Here With a New Script Language Promising Performance Boost.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "Vim 9.0 is Here With a New Script Language Promising Performance Boost" -[#]: via: "https://news.itsfoss.com/vim-9-0-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Vim 9.0 is Here With a New Script Language Promising Performance Boost -====== -Vim 9.0 update brings a new script language, promises a performance boost, and gets closer to common programming languages. - -![][1] - -Vim, the terminal text editor is back with a major update. - -The Vim 9.0 release includes several tiny improvements along with a new script language (Vim9 script). - -Here, let me highlight the key changes. - -### Vim 9.0: What’s New? - -Vim 9.0 is a significant upgrade after almost three years. And, the release announcement mentions that Vim 9.0 is more reliable than any before, which is a good thing to hear. - -Some of the refinements include: - -#### A New Vim9 Script - -Vim script always ensures backwards compatibility, but that changes a bit with this update. - -The backwards compatibility always comes with slower execution performance. So, with the Vim9 script, they aim to drastically improve performance. - -The release note explains: - -> This is accomplished by compiling commands into instructions that can be efficiently executed. An increase in execution speed of 10 to 100 times can be expected. - -Sounds incredible, isn’t it? - -However, what’s the catch for these performance improvements? Here’s what they say: - -> The performance improvements can only be achieved by not being 100% backwards compatible. For example, making function arguments available by creating an “a:” dictionary involves quite a lot of overhead. In a Vim9 function this dictionary is not available. Other differences are more subtle, such as how errors are handled. - -So, you no longer get 100% backwards compatibility, but the legacy scripts should work as usual. - -In addition to the performance improvements, the new script language also aims to get closer to commonly used programming languages, including JavaScript, TypeScript, and Java. - -The developers also plan to add support for **classes** in the script language. - -You can learn more about the new script in the [official help page][2]. - -#### New Features - -You will also find some technical feature additions like: - -* Function must be defined with def, if you want to benefit from the speedup. -* The arguments and return types must be specificed. -* Line continuation does not require using a backlash. -* It now simpler to split large scripts. You can use export to make functions/variables available to other scripts, and import to use exported items. -* Comments now start with # replacing double quote syntax. - -In either case, you can always refer to the [official announcement][3] to explore all the technical details with the update. - -### Download Vim 9.0 - -If you are going to try Vim for the first, you might want to check out our [Vim vs Nano comparison article][4] (keeping in mind the changes for this release). - -You can download the latest version directly from the [official website][5]. Packages should be available for Debian-based/Ubuntu-based systems. For other Linux distributions, you might want to explore the documentations. - -You can build it from sources and apply the latest patches as well. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/vim-9-0-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/06/vim-9.0.jpg -[2]: https://vimhelp.org/vim9.txt.html -[3]: https://www.vim.org/vim90.php -[4]: https://itsfoss.com/vim-vs-nano/ -[5]: https://www.vim.org/download.php From 180d893ab29a8b42cbbbda07aa96b7be08b653bd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 1 Jul 2022 11:40:57 +0800 Subject: [PATCH 0212/3123] RP @lkxed https://linux.cn/article-14781-1.html --- ...usinesses Opt for Serverless Computing-.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) rename {translated/talk => published}/20211203 Should Businesses Opt for Serverless Computing-.md (72%) diff --git a/translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md b/published/20211203 Should Businesses Opt for Serverless Computing-.md similarity index 72% rename from translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md rename to published/20211203 Should Businesses Opt for Serverless Computing-.md index 4ecd398d90..6fa2d4a1e2 100644 --- a/translated/talk/20211203 Should Businesses Opt for Serverless Computing-.md +++ b/published/20211203 Should Businesses Opt for Serverless Computing-.md @@ -3,15 +3,16 @@ [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14781-1.html" 企业应该选择无服务器计算吗? ====== -无服务器计算将服务器从等式中移除,使企业能够专注于应用功能。那么,企业是不是都应该选择无服务器计算呢?让我们来探究一下吧! -![2021 年 10月 OSFY 无服务器云计算][1] +> 无服务器计算将服务器从规划中移除,使企业能够专注于应用功能。那么,企业是不是都应该选择无服务器计算呢?让我们来探究一下吧! + +![](https://img.linux.net.cn/data/attachment/album/202207/01/113921u4sjl5cczwj3tjbu.jpg) 直至不久之前,几乎每个产品经理都会将他/她的工程资源,分成两个独立的团队 —— 开发团队和运维团队。开发团队通常参与编码、测试和构建应用功能,而运维团队负责应用程序的交付、部署和运行维护。 @@ -28,13 +29,13 @@ 除此之外,管理人员还对容量规划感到头疼。毕竟,任何重要应用都应始终保持 100% 可用、可靠且可扩展。这需要对硬件进行最佳投资。众所周知,在一些关键时期,硬件短缺会导致业务损失,而硬件冗余又会损害利润。因此,无论应用是针对本地数据中心,还是针对云基础架构,容量规划都是至关重要的。到目前为止,很明显,企业不仅在功能构建上投入了大量的精力,还在功能交付上也花费了大量的时间。 -无服务器计算Serverless computing旨在提供一种无缝的方式来交付功能,而无需担心服务器的设置和维护。换句话说,无服务器计算平台提供了一个“即用型”ready-to-use环境,企业可以尽快将应用程序构建和部署为一些较小的功能。这就是为什么这种方法被称为“功能即服务”Function as a Service(FaaS)。 +无服务器计算Serverless computing旨在提供一种无缝的方式来交付功能,而无需担心服务器的设置和维护。换句话说,无服务器计算平台提供了一个“即用型ready-to-use”环境,企业可以尽快将应用程序构建和部署为一些较小的功能。这就是为什么这种方法被称为“功能即服务Function as a Service”(FaaS)。 请记住,无服务器计算中仍然存在服务器,但它由 AWS、微软和谷歌等 FaaS 供应商负责。 例如,AWS 以 “Lambda 函数”的形式提供了一个无服务器计算环境。开发人员可以选择将应用程序构建为一组 Lambda 函数,这些函数可以用 NodeJS、Java、Python 和其他一些语言编写。AWS 提供了一个现成的环境来部署这些函数。它还提供了即用​​型数据库服务器、文件服务器、应用程序网关和身份验证服务器等。 -同样,Microsoft Azure 也提供了一个环境,它可以用 C# 等语言构建和部署 Azure 函数。 +同样,微软 Azure 也提供了一个环境,它可以用 C# 等语言构建和部署 Azure 函数。 ### 为什么选择无服务器? @@ -58,7 +59,7 @@ #### 2、编程语言 -没有无服务器计算平台支持所有的编程语言。此外,对于它支持的编程语言,它也可能不支持其所有版本。这样一来,应用开发团队只能选择供应商提供的语言。就团队的能力而言,这可能是非常关键的。 +没有哪家无服务器计算平台支持所有的编程语言。此外,对于它支持的编程语言,它也可能不支持其所有版本。这样一来,应用开发团队只能选择供应商提供的语言。就团队的能力而言,这可能是非常关键的。 #### 3、最优成本,真的吗? @@ -66,7 +67,7 @@ #### 4、生态系统 -没有应用是为了一个孤立的环境而编写的。它总是需要其他组件,如数据存储、数据库、安全引擎、网关、消息服务器、队列、缓存等。每个平台都提供自己的一组此类工具。例如,AWS 提供了 Dynamo DB 作为其 NoSQL 解决方案之一。显然,其他供应商也提供了自己的 NoSQL 解决方案。因此,团队又会被迫地基于所选平台来构建应用程序。尽管大多数商业 FaaS 供应商都为特定需求提供了多个组件,但并非每个组件都可能是同类型中最佳的。 +没有哪个应用是为了一个孤立的环境而编写的。它总是需要其他组件,如数据存储、数据库、安全引擎、网关、消息服务器、队列、缓存等。每个平台都提供自己的一组此类工具。例如,AWS 提供了 Dynamo DB 作为其 NoSQL 解决方案之一。显然,其他供应商也提供了自己的 NoSQL 解决方案。因此,团队又会被迫地基于所选平台来构建应用程序。尽管大多数商业 FaaS 供应商都为特定需求提供了多个组件,但并非每个组件都可能是同类型中最佳的。 ### 为什么不考虑容器呢? @@ -74,7 +75,7 @@ ### 展望未来 -我们正处于持续开发、持续集成和持续部署的时代。每个企业都面临着竞争。上市时间Time to market(TTM)在吸引客户、留住客户这两个方面,发挥着重要作用。在这种背景下,企业喜欢花更多时间来尽可能快地推出功能,而不是在部署和维护的细节上苦苦挣扎。无服务器计算有可能满足这些需求。大玩家们正在投入巨额资金,以使 FaaS 尽可能地无缝且经济。无服务器计算的未来看起来是一片光明。 +我们正处于持续开发、持续集成和持续部署的时代。每个企业都面临着竞争。产品上市时间Time to market(TTM)在吸引客户、留住客户这两个方面,发挥着重要作用。在这种背景下,企业喜欢花更多时间来尽可能快地推出功能,而不是在部署和维护的细节上苦苦挣扎。无服务器计算有可能满足这些需求。大玩家们正在投入巨额资金,以使 FaaS 尽可能地无缝且经济。无服务器计算的未来看起来是一片光明。 -------------------------------------------------------------------------------- @@ -83,7 +84,7 @@ via: https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless 作者:[Krishna Mohan Koyya][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/) 荣誉推出 From 3af8242a2b3c39ff93157c5e4c8b3cbb5ade6228 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 1 Jul 2022 12:12:14 +0800 Subject: [PATCH 0213/3123] RP @hanszhao80 https://linux.cn/article-14782-1.html --- published/20210511 What is fog computing.md | 67 +++++++++++++++++++ .../tech/20210511 What is fog computing.md | 67 ------------------- 2 files changed, 67 insertions(+), 67 deletions(-) create mode 100644 published/20210511 What is fog computing.md delete mode 100644 translated/tech/20210511 What is fog computing.md diff --git a/published/20210511 What is fog computing.md b/published/20210511 What is fog computing.md new file mode 100644 index 0000000000..7984cc82d7 --- /dev/null +++ b/published/20210511 What is fog computing.md @@ -0,0 +1,67 @@ +[#]: subject: (What is fog computing?) +[#]: via: (https://opensource.com/article/21/5/fog-computing) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (hanszhao80) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14782-1.html) + +什么是雾计算? +====== + +> 了解由我们生活中的所有连接设备组成的网络。 + +![](https://img.linux.net.cn/data/attachment/album/202207/01/120728yne9qv0e2vc5ucm3.jpg) + +在早期,计算机既笨重又昂贵,计算机用户很少,他们必须在计算机上的预留时间内亲自来处理他们的打孔卡punchcard。被称为 [大型机][2]Mainframe 的系统进行了许多创新,并在终端机terminal(没有自己的 CPU 的桌面计算机)上实现了分时time-shared任务。 + +时至今日,强大的计算设备能做到 [价格低至 35 美元,且大小不超过一张信用卡][3]。这甚至还没有涵盖现代生活中负责收集和处理数据的所有小设备。从高层次的角度来看这些计算机的集合,你可以想象得到,所有这些设备多得像云中的水滴一样。 + +碰巧“云计算cloud computing”一词已经被占用,因此需要为由物联网(IoT)和其他具有战略意义的服务器组成的网络提供一个独特的名称。此外,如果已经有一个代表数据中心节点的云,那么在云之外与我们交融的这些节点肯定有其独特之处。 + +### 欢迎来到雾计算 + +云通过互联网提供计算服务。构成云的数据中心很大,但与潜在客户的数量相比相对较少。这表明当数据在云及其众多用户之间来回传送时存在潜在的瓶颈。 + +相比之下,雾计算Fog Computing可以在数量上超过其潜在客户,而不会出现瓶颈,因为设备执行大部分数据的收集或计算。它是云的外部“边缘”,是云落地的部分。 + +### 雾和边缘计算 + +雾计算和 [边缘计算][4]edge computing 本质上是同义词。两者都与云和物联网密切相关,并做出相同的架构假设: + +- 你离 CPU 越近,数据传输就越快。 +- 像 [Linux][5] 一样,小型专用计算机,可以“做一件事并把它做好”,这是一个强大的优势(当然,我们的设备实际上不仅仅做一件事,但从高层次上看,你购买的用于监测健康的智能手表本质上是在做“一”件事)。 +- 离线是不可避免的,但好的设备可以在此期间同样有效地运行,然后在重新连接时同步。 +- 本地设备能比大型数据中心更简单、更便宜。 + +### 边缘网络 + +将雾计算视为与云完全分离的实体很诱人,但它们毕竟是组成一个整体的两个部分。云需要数字企业的基础设施,包括公共云提供商、电信公司,甚至是运行自己服务的专业公司。本地化服务也很重要,可以在云核心与其数以百万计的客户之间提供中转站waystations。 + +雾计算位于云的边缘,无论客户身在何处,都与他们紧密联系在一起。有时这是一个消费环境,例如你自己的家或汽车,而另一些时候这是一种商业利益,例如零售店中的价格监控设备或工厂车间的重要的安全传感器。 + +### 雾计算就在你身边 + +雾计算由我们生活中的所有连接设备组成:无人机drone、电话、手表、健身监视器、安全监视器、家庭自动化、便携式游戏设备、园艺自动化、天气传感器、空气质量监视器等等。理想情况下,它提供的数据有助于建立一个更好、更明智的未来。有许多伟大的开源项目正朝着改善健康的方向而努力 —— 甚至只是让生活变得更有趣一点儿 —— 这一切都得益于雾和云计算。无论如何,_我们的_ 工作是确保它 [保持开放][7]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/fog-computing + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[wxy](https://github.com/wxy) + +本文由 [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/computer_laptop_code_programming_mountain_view.jpg?itok=yx5buqkr (Man at laptop on a mountain) +[2]: https://opensource.com/article/19/9/linux-mainframes-part-1 +[3]: https://opensource.com/resources/raspberry-pi +[4]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing +[5]: https://opensource.com/resources/linux +[6]: https://www.redhat.com/architect/edge-computing-essentials +[7]: https://opensource.com/article/20/10/keep-cloud-open diff --git a/translated/tech/20210511 What is fog computing.md b/translated/tech/20210511 What is fog computing.md deleted file mode 100644 index 4ea437929a..0000000000 --- a/translated/tech/20210511 What is fog computing.md +++ /dev/null @@ -1,67 +0,0 @@ -[#]: subject: (What is fog computing?) -[#]: via: (https://opensource.com/article/21/5/fog-computing) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (hanszhao80) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -什么是雾计算? -====== -了解由我们生活中的所有连接设备组成的网络。 -![Man at laptop on a mountain][1] - -在早期,计算机既笨重又昂贵。世上为数不多的计算机用户必须亲自在计算机上预留时间来处理他们的打孔卡punchcards。称为 [大型机][2] 的系统进行了许多创新,并在终端(没有自己的 CPU 的桌面计算机)上实现了分时time-shared任务。 - -时至今日,强大的计算设备能做到 [价格低至 35 美元且大小不超过一张信用卡][3]。这甚至还没有涵盖现代生活中负责收集和处理数据的所有的小设备。从高层次的角度来看这些计算机的集合,你能想象得到所有这些设备的数量都超过了云中的砂或颗粒。 - -碰巧“云计算”一词已经被占用,因此需要为由物联网 (IoT) 和其他具有战略意义的服务器组成的网络提供一个独特的名称。此外,如果已经有一个代表数据中心节点的云,那么与我们在该云之外的人混合的节点肯定有一些独特之处。 - -### 欢迎来到雾计算 - -云通过互联网提供计算服务。但与潜在客户的数量相比,构成云的数据中心很大,而且相对较少。这表明当数据在云及其众多用户之间来回传送时存在潜在的瓶颈。 - -相比之下,雾计算Fog Computing可以在数量上超过其潜在客户而不会出现瓶颈,因为设备执行大部分数据的收集或计算。它是云的外部“边缘”,是云落地的部分。 - -### 雾和边缘计算 - -雾计算和 [边缘计算edge computing][4] 本质上是同义词。两者都与云和物联网密切相关,并做出相同的架构假设: - -- 你离 CPU 越近,数据传输就越快。 -- 像 [Linux][5] 一样,拥有可以“做一件事并把它做好”的小型专用计算机具有强大的优势(当然,我们的设备实际上不仅仅做一件事,但从高层次上看,你购买的用于监测健康的智能手表本质上是在做“一“件事)。 -- 离线是不可避免的,但好的设备可以在此期间同样有效地运行,然后在重新连接时同步。 -- 本地设备能比大型数据中心更简单、更便宜。 - -### 边缘网络 - -将雾计算视为与云完全分离的实体很诱人,但它们毕竟是组成整体的两个部分。云需要数字企业的基础设施,包括公共云提供商、电信公司,甚至是运行自己服务的专业公司。本地化服务对于在云核心与其数以百万计的客户之间提供中转站waystations也很重要。 - -**[阅读下一篇:[架构师边缘计算必修指南][6]]** - -雾计算位于云的边缘,无论客户身在何处,都与他们紧密联系在一起。有时这是一个消费者范畴,例如你自己的家或汽车,而另一些时候这是一种商业利益,例如零售店中的价格监控设备或工厂车间的重要的安全传感器。 - -### 雾计算就在你身边 - -雾计算由我们生活中的所有连接设备组成:无人机drones、电话、手表、健身监视器、安全监视器、家庭自动化、便携式游戏设备、园艺自动化、天气传感器、空气质量监视器等等。理想情况下,它提供的数据有助于建立一个更好、更明智的未来。有许多伟大的开源项目正朝着改善健康的方向而努力——甚至只是让生活变得更有趣一点儿——这一切都得益于雾和云计算。无论如何,_我们的_ 工作是确保它 [保持开放][7]。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/fog-computing - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_laptop_code_programming_mountain_view.jpg?itok=yx5buqkr (Man at laptop on a mountain) -[2]: https://opensource.com/article/19/9/linux-mainframes-part-1 -[3]: https://opensource.com/resources/raspberry-pi -[4]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing -[5]: https://opensource.com/resources/linux -[6]: https://www.redhat.com/architect/edge-computing-essentials -[7]: https://opensource.com/article/20/10/keep-cloud-open From 4b42ff1369561ca683dcf0691efc8faef11b1360 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 1 Jul 2022 14:52:00 +0800 Subject: [PATCH 0214/3123] RP @geekpi https://linux.cn/article-14783-1.html --- ...ake a temporary file on Linux with Bash.md | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) rename {translated/tech => published}/20220627 Make a temporary file on Linux with Bash.md (80%) diff --git a/translated/tech/20220627 Make a temporary file on Linux with Bash.md b/published/20220627 Make a temporary file on Linux with Bash.md similarity index 80% rename from translated/tech/20220627 Make a temporary file on Linux with Bash.md rename to published/20220627 Make a temporary file on Linux with Bash.md index fbb9edf51b..630fcc31bc 100644 --- a/translated/tech/20220627 Make a temporary file on Linux with Bash.md +++ b/published/20220627 Make a temporary file on Linux with Bash.md @@ -3,17 +3,16 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14783-1.html" 在 Linux 上使用 Bash 创建一个临时文件 ====== -基于 Fedora 的系统上的 mktemp 命令和基于 Debian 的系统上的 tempfile 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。 -![bash logo on green background][1] +![](https://img.linux.net.cn/data/attachment/album/202207/01/145110u1ninn1n3idspp71.jpg) -图片来源:Opensource.com +> 基于 Fedora 的系统上的 `mktemp` 命令和基于 Debian 的系统上的 `tempfile` 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。 使用 Bash 脚本语言进行编程时,有时需要创建一个临时文件。例如,你可能需要一个可以提交到磁盘的中间文件,以便你可以使用另一个命令对其进行处理。创建诸如 `temp` 之类的文件或任何以 `.tmp` 结尾的文件很容易。但是,这些名称很可能是由其他进程生成的,因此你可能会不小心覆盖现有的临时文件。除此之外,你不应该花费脑力想出看起来独特的名字。基于 Fedora 的系统上的 `mktemp` 命令和基于 Debian 的系统上的 `tempfile` 是专门为减轻这种负担而设计的,它使创建、使用和删除独特的文件变得容易。 @@ -29,14 +28,16 @@ $ mktemp /tmp/tmp.ojEfvMaJEp ``` -除非你指定不同的路径,否则系统会将临时文件放在 `/tmp` 目录中。对于 `mktemp`,使用 `-p` 选项指定路径: +除非你指定不同的路径,否则系统会将临时文件放在 `/tmp` 目录中。 + +对于 `mktemp`,可以使用 `-p` 选项指定路径: ``` $ mktemp -p ~/Demo /home/tux/Demo/tmp.i8NuhzbEJN ``` -对于 `tempfile`,使用 `--directory` 或 `-d` 选项: +对于 `tempfile`,可以使用 `--directory` 或 `-d` 选项: ``` $ tempfile --directory ~/Demo/ @@ -49,7 +50,7 @@ $ tempfile --directory ~/Demo/ 但是,如果你正在编写脚本,则无法通过读取文件名并在以下命令中使用它来进行干预。 -`mktemp` 和 `tempfile` 的作者想到了这个问题,并且有一个简单的解决方法。终端将输出发送到名为 *stdout* 的流。你可以通过将变量设置为在子 shell 中启动的命令的结果来捕获标准输出: +`mktemp` 和 `tempfile` 的作者想到了这个问题,并且有一个简单的解决方法。终端将输出发送到名为“标准输出”的流。你可以通过将变量设置为在子 shell 中启动的命令的结果来捕获标准输出: ``` $ TMPFILE=$(mktemp -p ~/Demo) @@ -86,12 +87,11 @@ $ mktemp -p ~/Demo/ --suffix .mine 使用 `tempfile`,你可以设置前缀和后缀: ``` -$ tempfile --directory ~/Demo/ \ ---prefix tt_ --suffix .mine +$ tempfile --directory ~/Demo/ --prefix tt_ --suffix .mine /home/tux/Demo/tt_0dfu5q.mine ``` -### 把 Tempfile 作为 touch 使用 +### 把 tempfile 作为 touch 使用 你还可以使用 `tempfile` 设置自定义名称: @@ -103,9 +103,7 @@ not_random 当你使用 `--name` 选项时,它是绝对的,忽略所有其他形式的自定义。事实上,它甚至忽略了 `--directory` 选项: ``` -$ tempfile --directory ~/Demo \ ---prefix this_is_ --suffix .all \ ---name not_random_at +$ tempfile --directory ~/Demo --prefix this_is_ --suffix .all --name not_random_at not_random_at ``` @@ -120,7 +118,7 @@ open: file exists ### 安装 mktemp 和 tempfile -[GNU Core Utils][3] 包括 `mktemp` 命令。主要发行版默认包括 Core Utils(它与包含 `chmod`、`cut`、`du` 和其他基本命令的包相同)。 +[GNU Core Utils][3] 包括 `mktemp` 命令。主要发行版默认包括 Core Utils(它是包含 `chmod`、`cut`、`du` 和其他基本命令的同一个软件包)。 Debian Utils 软件包包含 `tempfile` 命令,默认安装在大多数基于 Debian 的发行版和 Slackware Linux 上。 @@ -135,7 +133,7 @@ via: https://opensource.com/article/22/6/make-temporary-file-bash 作者:[Seth Kenlon][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/) 荣誉推出 From f10bd1a729a10b0a848df17e297a3f8ee1219821 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 17:40:29 +0800 Subject: [PATCH 0215/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220701=20Pine64=20Is=20Now=20Working=20On=20A=20Po?= =?UTF-8?q?werful=20RISC-V=20Single=20Board=20Computer.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...A Powerful RISC-V Single Board Computer.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md diff --git a/sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md b/sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md new file mode 100644 index 0000000000..775264fbe0 --- /dev/null +++ b/sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md @@ -0,0 +1,92 @@ +[#]: subject: "Pine64 Is Now Working On A Powerful RISC-V Single Board Computer" +[#]: via: "https://news.itsfoss.com/pine64-riscv/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pine64 Is Now Working On A Powerful RISC-V Single Board Computer +====== +Pine64’s hinted at a new RISC-V based single board computer. This should be interesting! + +![pine64][1] + +Pine64, the single board computer manufacturer known for their range of open-source-supporting [phones][2], laptops, smartwatches, and, of course, SBCs, has recently revealed that they are working on a new RISC-V powered computer. + +This isn’t the first time Pine64 has dabbled in the realm of RISC-V; the Pinecil soldering iron and the Pinecone IoT board are both powered by RISC-V. However, this offering promises to be different, with desktop-class performance. + +### What To Expect? + +As Pine64 pointed out in their [announcement][3], some details haven’t been finalized yet, and they haven’t revealed everything yet. However, this is what we do know now: + +* Similar performance to the Quartz64 +* 133mm x 80mm footprint +* 4 or 8 GB RAM +* USB 3.0 +* Open PCIe slot +* One or two Gigabit Ethernet ports +* Vulkan 1.2 and OpenGL 1.1/2.0/3.x support + +As you may have noticed, “similar performance to the Quartz64” is a little unambiguous. However, it does at least give us an indication of the performance. + +Well, they aim for this to be an affordable option and a decently powerful one. + +However, all this power is useless if there’s no IO for it to interact with. Fortunately, the board should have a similar layout to Pine64’s other boards, so at least have a general idea of the I/O. + +If it is anything like the Quartz 64, I expect three to four USB ports, one or two of which will be USB 3.0. Additionally, there should be one HDMI connector, as well as a MIPI-DSI interface. In terms of PCIe, there is going to be an open slot on the board. In line with previous boards, this is likely to be a PCIe 2.0 1x slot, opening up possibilities for NVMe SSDs and other PC expansion cards. + +Overall, I expect this board to be quite powerful for an SBC, and especially a RISC-V-powered one. It should be an interesting one for sure! + +### How Much Does It Cost? + +With most new and niche technologies, generally comes a higher price tag. Fortunately, this does not appear to be the case with this new SBC, as Pine64 has confirmed a general price range. + +> The board will premiere in our signature model-A form factor, feature CPU performance which falls somewhere in the neighbourhood of the Quartz64, offer plenty of IO, and sport a price-tag similar to that of the Quartz64. + +Considering that the Quartz64 has a price tag of 60 USD for the 4 GB model, I expect a price somewhere in the range of $70 – $80 for the 4 GB, and $90 – $100 for the 8 GB model. + +This is all around the same price as the equivalent Raspberry Pi’s, while offering more features and an exciting new architecture. + +### A Riddle for the Name + +In signature Pine64 style, we don’t yet know what it will be called. However, they have left us a riddle: + +> **Victoria Line Station** \ +> *I sing, act and dance* \ +> *celebrated by them all* \ +> *I never climb my stage* \ +> *but I sometimes fall* \ +> *In the sea I dwell* \ +> *and in every magic book* \ +> *By heaven!* \ +> *adding 64 is all it took* \ +> *On my stage I shine* \ +> *and when I feel truly blue* \ +> *then there’s nothing* \ +> *This is the final clue* + +Although I am still clueless as to what it means, there are a few hints. First, they are likely to continue naming their SBCs after certain natural materials. Think pine64, Rock64, Quartz64. When combined with the information provided in the riddle, I’m sure someone will be able to guess it correctly. And, that person is promised to get the first board off the production line for free! + +If you want to have a crack, all you need to do is post your guess on the [Pine64 announcement page’s comments][4]. + +Overall, I’m really excited to see what this board is going to turn out like, and I’m optimistic about its performance. I’ll be sure to grab one as soon as they’re available! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/pine64-riscv/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/pine64-working-on-a-powerful-risv-sbc.jpg +[2]: https://news.itsfoss.com/pinephone-review/ +[3]: https://www.pine64.org/2022/06/28/june-update-who-likes-risc-v/ +[4]: https://www.pine64.org/2022/06/28/june-update-who-likes-risc-v/ From c9b9aeacf1eead65a41c2067e1b65381da6ed345 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 17:48:31 +0800 Subject: [PATCH 0216/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220701=20Why=20I=20switched=20from=20Apple=20Music?= =?UTF-8?q?=20to=20Jellyfin=20and=20Raspberry=20Pi.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pple Music to Jellyfin and Raspberry Pi.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20220701 Why I switched from Apple Music to Jellyfin and Raspberry Pi.md diff --git a/sources/tech/20220701 Why I switched from Apple Music to Jellyfin and Raspberry Pi.md b/sources/tech/20220701 Why I switched from Apple Music to Jellyfin and Raspberry Pi.md new file mode 100644 index 0000000000..2d7eb92711 --- /dev/null +++ b/sources/tech/20220701 Why I switched from Apple Music to Jellyfin and Raspberry Pi.md @@ -0,0 +1,115 @@ +[#]: subject: "Why I switched from Apple Music to Jellyfin and Raspberry Pi" +[#]: via: "https://opensource.com/article/22/7/media-library-jellyfin-raspberry-pi" +[#]: author: "DJ Billings https://opensource.com/users/itsjustdj" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why I switched from Apple Music to Jellyfin and Raspberry Pi +====== +Jellyfin fulfills everything on my media library wishlist, making it the ideal open source alternative to Apple Music and other proprietary software tools. + +One day earlier this year, I looked up a song in my Mac's music library that's been there since 2001. I received an error message, "This song is not currently available in your country or region." I thought this might be just a glitch on my iPhone, so I tried the desktop app. No go. I opened up my media drive, and there was the music file. To check if it played, I hit the spacebar, and it began to play immediately. Hrmph. I have the file, I thought. Why won't the Music app play it? + +![Image of Iphone screen][2] + +After some digging, I found other users with similar issues. To sum up, it seems that Apple decided that it owned some of my songs, even though I ripped this particular song to an MP3 from my own CD in the late 1990s. + +To be clear, I'm not an Apple Music subscriber. I'm referring to the free "music" app that used to be called iTunes. I gave Apple Music a go when it first launched but quickly abandoned it. They decided to replace my previously owned songs with their DRM versions. In fact, I believe that's where my messed-up music troubles began. Since then, I've been bombarded with pushy Apple notifications trying to steer me back into becoming an Apple Music subscriber. + +The sales notifications were annoying, but this suddenly unplayable song was unacceptable. I knew there had to be a better way to manage my music, one that put me in control of the music and movie files I already owned. + +### Searching for a new open source media solution + +After this incident, I naturally took to social media to air my grievances. I also made a short list of needs I had for what I thought was the ideal solution: + +* It needs to be open source and run on Linux. +* I want to run it on my own server, if possible. +* It should be free (as in beer) if possible. +* I want the ability to control how the media is organized. +* I want to be able to watch my movies on my TV as well as listen to music. +* It should work from home (WiFi) and over the internet. +* It should be cross-platform accessible (Linux, Mac OS, Windows, Android, iOS). + +A tall order, I know. I wasn't sure I'd get everything I wanted, but I thought aiming for the stars was better than settling for something quick and easy. A few people suggested Jellyfin, so I decided to check it out, but without much optimism considering the amount of rabbit holes I'd already been down. + +What I discovered was unbelievable. Jellyfin fulfilled every item on my list. Better still, I found that I could use it with my Raspberry Pi. I jumped onboard the Jellyfin train and haven't looked back. + +### Raspberry Pi and Jellyfin are the perfect combination + +I will describe what I did, but this is not intended to be a complete tutorial. Believe me when I say that if I can do it, so can you. + +### Raspberry Pi 4 + +I used a Raspberry Pi 4 Model B with 4GB of RAM. The SD card is 128GB, which is more than I need. The Pi 4 has WiFi but it's connected to my router using ethernet, so there's less lag. + +One of the things I love about the Raspberry Pi is the ability to swap out the entire OS and storage by slipping in a new SD card. You can switch back in a few seconds if the OS doesn't suit you. + +### Western Digital Elements 2 TB external SSD + +Since all of my media won't fit on a 128GB SD card, an external drive was essential. I also like having my media on a drive separate from my OS. I previously used a 2TB external HD from Seagate that worked fine. I was trying to keep my budget low, but I also wanted an SSD, one with a small footprint this time. The Western Digital drive is tiny, fast, and perfect. To work with the Raspberry Pi, I had to format the drive as exFAT and add a package to help the Pi mount it. + +### Jellyfin + +I can't say enough good things about [Jellyfin][3]. It ticks all the boxes for me. It's open source, 100% free, has no central server, data collection, or tracking. It also plays all of the music, movies, and TV shows I have on my drive. + +There are clients for just about every platform, or you can listen or view in your web browser. Currently, I'm listening to my music on the app for Debian and Ubuntu and it works great. + +![Image of the Jellyfin app][4] + +### Setting up Jellyfin + +Many people, more brilliant than I, have created detailed instructions on Jellyfin's setup, so I would rather point to their work. Plus, Jellyfin has [excellent documentation][5]. But I'll lay out the basics, so you know what to expect if you want to do this yourself. + +### Command-line + +First, you'll need to be confident using the terminal to write commands or be willing to learn. I encourage trying it because I've become highly skilled and confident in Bash just by doing this project. + +### File organization + +It's a good idea to have your media files well-organized before you start. Changing things later is possible, but you'll have fewer issues with Jellyfin recognizing your files if they're categorized well. + +Jellyfin uses the MusicBrainz and AudioDb databases to recognize your files and I've found very few errors. Seeing the covers for movies and music populate after it finds your catalog is very satisfying. I've had to upload my artwork a few times, but it's an easy process. You can also replace the empty or generic category images with your own art. + +### Users + +You can add users and adjust their level of control. For example, in my family, I'm the only one with the ability to delete music. There are also parental controls available. + +### Process and resources + +Here's the general process and some of the resources I used to set up my Raspberry Pi media server using Jellyfin: + +1. Install the OS of your choice on your Pi. +2. [Install Jellyfin][6] on your Pi. +3. If you're using a big external drive for storage, format it so that it uses a file system usable by you Pi, but also convenient for you. I've found exFAT to be the easiest file system of all the major platforms to use. +4. Configure the firewall on your Pi so that other computers can access the Jellyfin library. +5. On your personal computer install a [Jellyfin Media Player][7]. + +### Breaking away + +Whenever someone finds an open source solution, an angel gets its wings. The irony is that I was pushed into finding a non-proprietary solution by one of the biggest closed source companies on the planet. What I love most about the system I've created is that I am in control of all aspects of it, good and bad. + +Image by: (DJ Billings, CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/media-library-jellyfin-raspberry-pi + +作者:[DJ Billings][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/itsjustdj +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png +[2]: https://opensource.com/sites/default/files/2022-06/DJ.png +[3]: https://jellyfin.org/ +[4]: https://opensource.com/sites/default/files/2022-06/jellyfin-app.png +[5]: https://jellyfin.org/docs/ +[6]: https://jellyfin.org/docs/ +[7]: https://flathub.org/apps/details/com.github.iwalton3.jellyfin-media-player From 58446bc646b1e9709a7773a65c14e477a5c81346 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 17:50:49 +0800 Subject: [PATCH 0217/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220701=20Deprecated=20Linux=20Commands=20You=20Sho?= =?UTF-8?q?uld=20Not=20Use=20Anymore=20-And=20Their=20Alternatives-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ot Use Anymore -And Their Alternatives-.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20220701 Deprecated Linux Commands You Should Not Use Anymore -And Their Alternatives-.md diff --git a/sources/tech/20220701 Deprecated Linux Commands You Should Not Use Anymore -And Their Alternatives-.md b/sources/tech/20220701 Deprecated Linux Commands You Should Not Use Anymore -And Their Alternatives-.md new file mode 100644 index 0000000000..f9fbe82016 --- /dev/null +++ b/sources/tech/20220701 Deprecated Linux Commands You Should Not Use Anymore -And Their Alternatives-.md @@ -0,0 +1,152 @@ +[#]: subject: "Deprecated Linux Commands You Should Not Use Anymore (And Their Alternatives)" +[#]: via: "https://itsfoss.com/deprecated-linux-commands/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Deprecated Linux Commands You Should Not Use Anymore (And Their Alternatives) +====== +Believe it or not, you might be using a deprecated Linux command. + +Or at least try to use it. + +It’s not really your fault. You are either habitual of using those commands or learned them through old, obsolete tutorials on the web. + +This is especially true for networking commands as several of them have been replaced or going to be replaced with newer commands. + +In this article, I am going to list a few such Linux commands. You may still find a few of them in your distribution. It’s possible that your distribution is still providing it for backward compatibility or has created a new implementation underneath or plans to remove it in the newer versions. + +But it’s good to know them as an informed Linux user. Here we go! + +![deprecated linux commands][1] + +### scp – potentially deprecated + +The scp command, short for secure copy, uses the SSH protocol to copy files between two Linux machines. Its biggest USP is that it strongly follows the normal cp command syntax. + +This is why scp is hugely popular among Linux users. You know the cp command for copying files from one location to another in the local machine. You use a similar syntax for copying files between machines. + +However, the [scp command seems to be problematic][2]. The SCP protocol is decades old,[hasn’t been updated and has many security vulnerabilities][3], complained OpenSSH. + +This is why distributions are advocating to deprecate it for another command like rsync or create a new version of scp that uses sftp protocol underneath. Red Hat and Fedora have already created a [new implementation of scp][4]. + +For other distributions, the use of scp remains debatable. Considering the looming uncertainty, it will be wise to start moving to rsync. + +**Suggested alternative: rsync and sftp commands.** + +### egrep and fgrep – Replaced by grep flags + +[grep, egrep and fgrep][5]. They all sound similar, right? Because they are similar to each other. + +The grep is the first and oldest of the lot and it was created decades ago. + +egrep and fgrep commands were created a little later to extend the functionality of the grep command. + +* The egrep command allows the use of extended regex. +* The fgrep command works on fixed strings instead of regex (default grep behavior). + +But why have separate commands when they can be options under the original commands. + +And that’s exactly what happened. The grep command was modified to add new options that provided the same functionalities as egrep (with grep -E) and fgrep (with grep -F). + +But the legacy of egrep and fgrep continues even today, unfortunately. Many tutorials, websites and books still mention them. Distributions still include these commands. + +**Suggested alternative: grep -E for egrep and grep -F for fgrep.** + +### netstat – Use other tools for network statistics + +The netstat command was an excellent tool for network analytics, both high level and low level. + +You could use it to monitor TCP/UDP packets, sockets, see network interfaces and more. + +It was part of the [net-tools package][6]. Since the net-tools package was deprecated around 2010, distributions stopped adding netstat command. + +**Suggested alternative: Use ss command.** + +### ifconfig – It will be missed + +Truly. This was the go-to command for [checking the IP address in Linux systems][7] and other information about the network interfaces. + +You’ll still see it mentioned in old forum posts and tutorials. The command got deprecated with the net-tools command. + +It’s functionalities are now found in the ip command. In fact, many of the popular networking Linux commands that were part of the net-tools package were deprecated. + +### arp, route, iptunnel, nameif – They all went down with net-tools + +If you read an old Linux book from before 2010, you’ll find the arp, route and other such networking commands that do not exist in your Linux system anymore. You cannot even install them. + +Most of them are now replaced by various options of the ip command: + +* arp – replaced by ip n +* iptunnel – replaced by ip tunnel +* nameif – replaced by ip link +* route – replaced by ip route + +### iwconfig – Does it still exist? + +![iwconfig][8] + +Though not part of the net-tools package, iwconfig was similar to ifconfig command but just for the wireless interface. + +I can still see it in Ubuntu 22.04 but I have been reading about its deprecation for some time now. It’s been [removed from Red Hat][9] and many other distributions. + +**Suggested alternative: Use the iw command.** + +### iptables – Being replaced by its own developer + +The iptables command is the go-to command when you are configuring the routes for NAT and packet filtering for firewalls. + +It is still in practice by many Linux users. However, its origin project, [netfilter][10], has created a replacement command called nftables. + +Why? because “iptables framework has become a little convoluted with iptables, ip6tables, arptables, and ebtables all providing different but similar functions.” + +And thus a new tool to combine them all under nftables. You can read this [comparison of iptables and nftables command][11]. + +You’ll still find iptables in almost all Linux distributions. But considering that its own developers have created its replacement, it would be wise to start moving to the new tool. + +**Suggested alternative: Use the nftables command.** + +### Conclusion + +I am not saying to drop the still available but soon-to-be deprecated Linux commands right away. You have learned them through effort and they are part of your muscle memory now. + +But since they might be going away soon (or have already gone), it’s better to keep yourself future-proof and look into your custom scripts and notes and update them when you have enough free time. + +Since we are discussing replacement commands, let me share an interesting article I wrote last month. It’s about [modern alternatives to the popular legacy Linux commands][12]. bat for cat, duf for du and df and more. + +Now it’s your turn. + +Tell me which of the above-mentioned old Linux commands you are still using? + +Or which ones you have already ditched and moved to their replacements? + +The comment section is all yours. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/deprecated-linux-commands/ + +作者:[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/07/deprecated-linux-commands.png +[2]: https://lwn.net/Articles/835962/ +[3]: https://www.openssh.com/txt/release-8.0 +[4]: https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know +[5]: https://linuxhandbook.com/grep-egrep-fgrep/ +[6]: https://wiki.linuxfoundation.org/networking/net-tools +[7]: https://itsfoss.com/check-ip-address-ubuntu/ +[8]: https://itsfoss.com/wp-content/uploads/2022/07/iwconfig.png +[9]: https://access.redhat.com/solutions/1194553 +[10]: https://www.netfilter.org/ +[11]: https://linuxhandbook.com/iptables-vs-nftables/ +[12]: https://itsfoss.com/legacy-linux-commands-alternatives/ From 086c4e101f4fafa4ca07256f2b5f43b66cb3004e Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 1 Jul 2022 17:54:46 +0800 Subject: [PATCH 0218/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220701=20An=20Open=20Source=20Organisation=20Has?= =?UTF-8?q?=20Left=20GitHub=20And=20Encourages=20You=20To=20Do=20The=20Sam?= =?UTF-8?q?e.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...itHub And Encourages You To Do The Same.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md diff --git a/sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md b/sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md new file mode 100644 index 0000000000..06f01603d6 --- /dev/null +++ b/sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md @@ -0,0 +1,40 @@ +[#]: subject: "An Open Source Organisation Has Left GitHub And Encourages You To Do The Same" +[#]: via: "https://www.opensourceforu.com/2022/07/an-open-source-organisation-has-left-github-and-encourages-you-to-do-the-same/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An Open Source Organisation Has Left GitHub And Encourages You To Do The Same +====== +![sfc][1] + +The Software Freedom Conservancy (SFC), a non-profit dedicated to free and open source software (FOSS), has announced that it will no longer use Microsoft’s GitHub for project hosting and is urging other software developers to do the same. Denver Gingerich, SFC FOSS licence compliance engineer, and Bradley M. Kuhn, SFC policy fellow, wrote in a [blog][2] post on Thursday that GitHub has come to play a dominant role in FOSS development over the last decade by building an interface and social features around Git, the widely used open source version control software. They claim that by doing so, the company has persuaded FOSS developers to contribute to the development of a proprietary service that leverages FOSS. + +“We are ending all our own uses of GitHub, and announcing a long-term plan to assist FOSS projects to migrate away from GitHub,” said Gingerich and Kuhn. + +The SFC says it mostly uses self-hosted Git repositories, but it does use GitHub to mirror its repos. The SFC has added a Give Up on GitHub section to its website and is encouraging FOSS developers to switch to a different code hosting service voluntarily. + +GitHub claims 83 million users and more than 200 million repositories, many of which are licenced under an open source licence. The cloud hosting service specifically promotes open source development. The SFC’s decision to leave GitHub was prompted by the general availability of GitHub Copilot, an AI coding assistant tool. According to the SFC, GitHub’s decision to release a for-profit product based on FOSS code is “too much to bear.” Based on OpenAI’s Codex, Copilot suggests code and functions to developers as they work. According to GitHub, it can do so because it was trained “on natural language text and source code from publicly available sources, including code in public repositories on GitHub.” + +Gingerich and Kuhn see this as a problem because Microsoft and GitHub have refused to answer questions about the copyright implications of training its AI system on public code, why Copilot was trained on FOSS code but not copyrighted Windows code, and whether the company can specify all software licences and copyright holders associated with code used in the training data set. Kuhn has previously expressed his concern that Copilot’s training may pose legal risks, and others have expressed similar concerns. Matthew Butterick, a designer, programmer, and attorney, published a blog post last week in which he stated that he agrees with those who claim Copilot is an engine for violating open source licences. + +Such claims have not been settled and are unlikely to be until actual litigation and judgement are obtained. Other attorneys point out that GitHub’s Terms of Service allow it to use hosted code to improve the service. And, without a doubt, legal experts at Microsoft and GitHub believe they are exempt from licence compliance, which they pass on to those who use Copilot to generate code. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/an-open-source-organisation-has-left-github-and-encourages-you-to-do-the-same/ + +作者:[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/07/sfc-e1656663655825.jpg +[2]: https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/ From 3dd4487ad2c3f8ff04e1b0a07731ea31659ff119 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Fri, 1 Jul 2022 21:00:27 +0800 Subject: [PATCH 0219/3123] Update 20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md --- ...0220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md index af1d6ce4d2..8592666725 100644 --- a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md +++ b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md @@ -162,7 +162,7 @@ via: https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From adc3a34bc76ab846c243dc7dcf90696fd9308176 Mon Sep 17 00:00:00 2001 From: Donkey-Hao Date: Fri, 1 Jul 2022 21:31:11 +0800 Subject: [PATCH 0220/3123] translating finished half --- ... Essential Ubuntu Apps For Everyone in 2022.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md index 8592666725..1f61e0de88 100644 --- a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md +++ b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md @@ -35,10 +35,9 @@ sudo apt install gnome-tweaks #### 2. Steam -在 Linux 上玩游戏不再困难,感谢 Valve 公司和相关社区的贡献。[Steam][3] 是一个 -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. +在 Linux 上玩游戏不再困难,感谢 Valve 公司和相关社区的贡献。[Steam][3] 是 Valve 公司开发的视频游戏的前端服务平台,你可以通过 Steam 在 Ubuntu 上获取最新的游戏版本。此外, Steam 客户端提供反外挂监测、自动更新并且支持带有流媒体功能的社交对话。 -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]. +如果你用 Linux 玩游戏,Steam 是常用的客户端,你可以用下面的命令来安装。此外,你可以在软件中搜索 “Steam Installer” 并使用 [Flatpak][4] 或 [Snap][5] 进行安装。 ``` sudo apt install steam @@ -48,9 +47,10 @@ sudo apt install steam #### 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. +在我看来, [Peek][7] 是被低估的一款应用。它是一个对各种工作流非常有用的 GIF 动画记录器。这是一款非常强大的实用程序,它适合 Ubuntu 或任何 Linux 发行版。此外, Peek 带有如录制区域选择、倒计时、gif 、mp4 和 WebM 支持等选项。它的后端使用 ffmpeg 。 + +在软件中搜索 “peek” 或者在命令行输入以下命令来安装这款优秀的应用。 -Install this excellent utility using Software by searching “peek” or by terminal commands mentioned below. ``` sudo apt install peek @@ -60,9 +60,10 @@ sudo apt install peek #### 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. +[Synaptic][9] 是一款杰出的软件包管理器,可以帮助你传统地添加和移除软件包。对 Linux 经验很少的用户知道它的特性以及灵活性。你可以在各种库中搜索软件包,验证依赖性并继续安装。 + +如果你经常安装和卸载软件包,这是一个完美的应用程序。你可以通过以下命令或在软件中搜索 “synaptic” 来安装它。 -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 From a92f370631762500d57fbc66ff7d346d97fd5839 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 2 Jul 2022 05:02:40 +0800 Subject: [PATCH 0221/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220701?= =?UTF-8?q?=20Your=20Personal=20Voice=20Assistant=20on=20Fedora=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220701 Your Personal Voice Assistant on Fedora Linux.md --- ...ersonal Voice Assistant on Fedora Linux.md | 254 ++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 sources/tech/20220701 Your Personal Voice Assistant on Fedora Linux.md diff --git a/sources/tech/20220701 Your Personal Voice Assistant on Fedora Linux.md b/sources/tech/20220701 Your Personal Voice Assistant on Fedora Linux.md new file mode 100644 index 0000000000..dffe92f99b --- /dev/null +++ b/sources/tech/20220701 Your Personal Voice Assistant on Fedora Linux.md @@ -0,0 +1,254 @@ +[#]: subject: "Your Personal Voice Assistant on Fedora Linux" +[#]: via: "https://fedoramagazine.org/your-personal-voice-assistant-on-fedora-linux/" +[#]: author: "Marius Schwarz https://fedoramagazine.org/author/mschwarz/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Your Personal Voice Assistant on Fedora Linux +====== + +![Your Personal Voice Assistant on Fedora Linux][1] + +Background image excerpted from [HAL 9000][2], public domain via Wikimedia Commons + +_It’s 7 PM. I sit down at my Fedora Linux PC and start a [MMORPG][3]. We want to brawl with Red Alliance over some systems they attacked; the usual stuff on a Friday evening in EVE. While we are waiting on a Titan to bridge us to the fighting area, a tune comes to my mind. “Carola, I wanna hear hurricanes.” My HD LED starts to blink for a second and I hear Carola saying “I found one match” and the music starts._ + +What sounded like Sci-Fi twenty years ago is now a reality for many PC users. For Linux users, this is now possible by installing “Carola” as your Personal Voice Assistant (PVA)[[1]][4]. + +### Carola + +The first thing people often ask is, “Why did you name it Carola?” 🙂 This is a common misconception. Carola is not the project name. It’s the keyword the PVA reacts to by default. It is similar to “Alexa” or “OK, Google” for those who are familiar with those products. You can configure this keyword. You can also configure other things such as your location, which applications to use by default when opening media files, what [CardDAV][5] server to use when looking up contact information, etc. These settings can be personalized for each user. Some of them can even be changed by voice command (e.g. the name, the default TTS engine, and the default apps). + +In 2021 I read an article about the Speech-To-Text (STT) system Vosk[[2]][4] and started to play a bit with it. The installation was easy. But there was no use-case except for writing what one said down to the screen. A few hours and a hundred lines of Java code later, I could give my PC simple commands. After a few more days of work, it was capable of executing more complex commands. Today, you can tell him/her/it to start apps, redirect audio streams, control audio and video playback, call someone, handle incoming calls, and more. If you have a smart-home (which I haven’t 😉) you can even switch on the light in the kitchen. But back to why I chose “Carola” — it was the most recognizable by the STT system I was using at the time. 😉 + +**Note**: _This PVA has no English translations yet because it was developed in German. I will use rough translations here which should work once someone helps with translating the config. There are videos out about Carola which show these kinds of interactions in reality_[[6]][4]_. For now, because a few dependencies are unavailable from Fedora Linux’s default repositories, you will need to install the system manually. But don’t be afraid, it is all described in the [READ.ME][6] and it is pretty simple._ + +### The time of eSpeak has run out + +A voice assistant doesn’t just react to your speech. It can also reply back to you. You might expect it to sound like a creepy robot voice from the 1960s when it was invented. But trust me, Fedora Linux can do better. 😉 Naturally, eSpeak was the first choice because it was installed on the system by default. But today we can choose (even by voice command 😉) what speech engine we want to use. + +### Text-To-Speech (TTS) systems + +Text-To-Speech systems translate the written text to a listenable waveform. Some systems output the waveform directly. Others produce MP3 or WAV files which you can then play with, for example, _sox_. Over the last year, we’ve experimented with several TTS systems. One outputs the text via the Samsung TTS engine on an Android device. It sounds great, but it requires your cellphone and a special server application. 😉 + +One of the first speech engines I tried was MBROLA[[3]][4]. It produces more understandable audio than eSpeak. But it’s still far from being “good”, as it relies on eSpeak. Think of it as an eSpeak pre-processor. Unfortunately, it is not currently available from Fedora Linux’s default repositories. + +Next was Pico2Wave, which still uses the same technique as eSpeak, but on a higher level. Still, this does not meet our vision of speech quality. Also, it has to be extracted from an old Ubuntu package because it isn’t available from the Fedora Linux repositories. + +With MaryTTS[[4]][4] we reach the first speech processor that produces human speech patterns combined with accent and dialect. MaryTTS was developed in Germany at the Saarland University & the German Research Center for AI. It’s not meant to run on your local PC (but does quite well). Rather, it is meant to run on a network to offer speech output to any kind of client that asks for it. Because modern PCs have way more CPU power than it requires, you can also run it solo on your PC. However, running it locally requires compiling the source code which can be a little tricky to do. + +MaryTTS comes with different languages and one remarkable voice for Germans — an old Bavarian woman. This voice model was trained from an old speech archive in Munich and it’s so good that you’d think your PC is at least seventy years old. 🙂 This also makes it seem like you are giving commands to an old women who should be in retirement. This makes giving commands to your PC problematic; trust me. 😉 + +The top of the line of available TTS systems is GTTS[[5]][4]. It is available from the default Fedora Linux repositories. This TTS produces the best sound quality for a wide variety of languages and, for standard voices, “the first 4 million characters are free each month”[[7]][4]. The downside of this TTS is that the text is sent to Google’s servers[[8]][7] for processing and translation into an audible speech format. This might be a privacy concern depending on the nature of the data that you are sending for translation. Be mindful that the PVA will repeat parts of what you said if it did not understand your command or when it tells you things in response to your question. For this reason, GTTS is not the default TTS. However, it is pre-configured in the PVA repo[[1]][4] and ready to use. + +### Let’s talk about privacy + +You just read that your TTS system could rat you out to Google. This leads to other questions. Namely, “Does the STT system do this too?” It doesn’t. Vosk runs entirely on your PC. There are no cloud services involved. But of course, your assistant needs to know things in order to assist you. + +One of the simpler functions is to produce a weather report. For this to work, the assistant needs to relay your question to the weather provider’s API server. The provider can reasonably assume that you normally aren’t interested in the weather for places you do not live. So the server can derive where that you live based on what city you most frequently inquire about and it can collaborate its deduction based on your device’s IP address. + +Consequently, if you configure a service in your PVA’s config, you should ask yourself if this service will cause a privacy problem for you. Many PVA functions won’t because they work locally or they use services under your control (the CalDAV and CardDAV address book services, for example). The same is true for the upcoming [IMAP][8] feature. You will use the same email provider that your email app is already configured to use. So there are no _extra_ concerns for the IMAP feature. But what happens if you decided to use GTTS because these simple text fragments are “no big deal” and the PVA reads out loud the incoming email? Here the decision for a TTS engine gets more and more important. + +One of PVA’s functions is playing music on command. By itself, this function may not seem concerning. However, an upcoming feature might change this. It will be able to tell what you want to listen to by the use of abstract requests like “Jazz”. At the moment, the PVA searches for this term in filenames and metadata it found in your MP3 archive. In the future, it will have a local track list of all the audiophile wishes you had in the past and it will produce a TOP song list for the search term. + +It will write every file you added to the playlist to a database and it will count how many times a match to your abstract request is found and play the song(s) with the best score. On the plus side, you get your favorite music. But what happens if an external plugin or hacked app takes this list and exfiltrates the data to someone who pays for this kind of information? + +Now this feature becomes a privacy concern. There is no great risk at the moment since this feature needs to be enabled and, for now, PVA is not widespread enough to be a target. But this may change and you should be aware of these kinds of privacy concerns before they become a problem. + +As a best effort to address such privacy concerns, PVA will disable features that require external communication by default. So if you use the base installation, there should be very few privacy concerns. There is one known exception — all texts sent to the PVA app are recorded in ~/.var/log/pva.log. This should make it easier to find flaws in the STT engine and track down other problems. + +Always keep in mind that privacy can also be undermined by third-party add-ons. + +### What can you expect from your assistant? + +PVA auto-configures itself on first start-up with a basic configuration. For example, it adds the default paths from the freedesktop.org specs to all your pictures, music, documents and videos. It creates a local cache and config directory where you can place your version of the config files, add new ones, or overwrite existing ones. Usually user customizations are added to the config. But you can overwrite existing values. Before we dig deeper, let’s present some more of PVA’s features. + +The Weather Report app is a classic. No assistant would be complete without it. 🙂 All it needs to know is the name of your hometown. The weather provider used is _[wttr.in][9]_. You can point your browser at this URL to find for your city’s unique identifier. You have no idea how many “Neustadt” exists in Germany alone. 😉 Because it is a webservice, you don’t need to install anything. It works out-of-the-box using [cURL][10]. + +Asking your PVA what time it is, is also a classic and it works out of the box. You can also ask your PC how it feels: “Carola, what is the actual load?” Or, more abstractly, “Carola, how do you feel?” 😉 + +For playing audio, PVA uses QMMP by default. It comes with an easy to use command line interface and a rich feature set. You will need to install this app before you can use it. Luckily, Fedora Linux ships this. QMMP gives you remote control over loudness, track number, track-position, playback, and it gives us information about what is currently playing. So you can ask your PVA what is playing when it is playing random tracks. + +Controlling QMMP by voice is one of the features I cannot do without again. I often end up in situations where I have full-screen windows with complex code on the screen. If you loose your focus, you loose your workflow. Developers call this “being in the flow” or “in the tunnel”. Here, voice control comes in very handy. You do not need to divert your focus from your work. You can just say what you want and it “magically” it happens! 😉 + +The phone-call feature works in a similar way. You can now ask your SIP software to make a call to a contact in your CardDAV address book without diverting your focusing from your work. As this is a complex process, it needs a little extra care. There is a special internal function for handling the parsing of the command sentence. “Carola, call Andreas” is enough to initiate a call. The first match in the address book will be called. If you know more than one person with the same name, I hope they have nicknames. 😉 Also, since one contact might have multiple phone numbers (e.g. for home and for work), you can specify which number should be called: “Carola, call Andreas at work.” + +_Even if it doesn’t look like a complex problem, consider which of the words the PVA receives are part of the name and which are just binding words like “at” in the above example? It is not that easy to determine. So we need to follow a precise syntax. But it needs to be natural or humans will not use it. Another thing that is important when interacting with humans is that they tend to alternate their command structures. Parsing a human sentence is more complex for a computer than you might think. It’s natural for you, but the opposite of logic for a computer. Keep this in mind as you read further. It is a reoccurring challenge._ + +Another example of when voice control can come in handy is controlling video playback is while you exercise. You are likely not in reach of a mouse or a remote (KDE Connect) nor do you want to stop your work out just because someone asks you something. With voice control, you can ask the PC to pause playback and then ask it to resume after you have answered the question or otherwise addressed the problem. + +For audio and video players that offer a MPRIS2 interface on DBUS, you can control them on the spot without adding the CLI (command line interface) commands to your config. Based on MPRIS2 you can even control Netflix or YouTube in your Firefox browser. OK, you can’t currently choose the track to watch. But you can change the volume and (un)pause the playback. And all of this can be done with the same set of commands in your config. + +There are many situations where voice control is superior or even necessary. What I haven’t told you yet is that the first device I deployed PVA to was a PinePhone. Smartphones can be used for many things. You might use it as an MP3 player while you drive or as a navigational tool. It doesn’t work with Gnome Maps (yet). But controlling a PinePhone via voice while driving will be more and more important in the Linux community. So hopefully further advancements will be made in this area. Fun fact/tip, if you use it as an MP3 player, don’t make it too loud. Or better yet, use an external speaker system[[6]][4]. + +If you use Thunderbird to manage your email, it is capable of composing and sending an email using only CLI arguments. Consequently, your PVA can compose and send email using Thunderbird. All you need to do is to tell your PVA the recipient, the subject, and then dictate the content of the body. It will also do some minor interpretation for you. While I still write my emails by hand, I can imagine situations where it could be useful. I did not have an opportunity to work with a disabled person to test this method of email composition. But it might be interesting. + +The PVA can also be handy for short reminders. You can tell your PVA when and what it should remind you about. For example, “Carola, remind me in 10 minutes to check the kitchen” or, “Carola, remind me at 10 to call Andreas”. The PVA will respond if it understood and acknowledge your reminder. + +The best comes last. With Twinkle, your PVA can take a call and interact with the caller just as it does with you. One thing I have not explained yet is that your PVA requires authorization codes for vital or potentially dangerous operations. I find it reminiscent of a scene from “Star Trek”. 😉 + +_“Carola, reboot PC.” +“Authorization code alpha is needed to perform this operation.” +“Carola, authorization code alpha three four seven.”_ + +And if the code is correct, the requested action will proceed. Requiring these authorization codes helps to alleviate the fear that someone might hack your PC through the PVA and cause trouble. Though about the worst that could happen at the moment is that you could unwillingly send spam to someone or your PC might be left playing music all day long. 😉 However, if you have home automation running and configured, it is probably better not to have Twinkle answer the phone. + +### Let’s take a look behind the curtain + +This list is long and detailed. So I will focus on some basics. + +PVA comes with a rudimentary form of hard-coded human responses. You can modify and expand them as you like. But there is no intelligence in them. You can, however, build reaction chains that are so long that a normal human cannot detect the repeating phrases. + +Here are two examples. Let’s ask the PVA for its name. + +_reaction:”what is your name”,””,”my name is %KEYWORD”_ + +Here is a more complex example that uses the word “not”. + +_reaction:”this works”,”not”,”of course it does” +reaction:”this works not”,””,”uh oh, please contact my developer”_ + +As the absence of the word “not” is crucial to the meaning of a sentence, reactions contain “positive” and “negative” terms to work. The rule is as follows. + +Positive words MUST be inside the sentence, negative words MUST NOT be inside the sentence. In developer terms it can be written as “if ( p && !n ) do …”. + +If your reaction texts give a human a new clue what to say next and you can anticipate this, then it is possible to build complex reaction chains that will simulate a conversation. I have even heard from people using this feature that they _like_ talking to their PC (and these are not your stereotypical nerds 😉). As you can use the same trigger for multiple reactions, alternative chains are possible. + +### Starting applications + +Part of the basic functionality is to start the apps that you’ve named. In the beginning, there was a fixed list of apps that was hard-coded. But now, you can extend this via the config. Let’s take a quick look at it. + +_app:”office”,”openoffice4″ +app:”txt”,”gedit” +app:”pdf”,”evince” +app:”gfx”,”gnome-open” +app:”mail”,”thunderbird”_ + +The corresponding voice commands would be “Carola, start mail”, “Carola, open mail” or, in free-form, you could say, “Carola, start Krita” (Krita is an OpenSource paint app that is available on Fedora Linux). You can configure several alternative versions of the command sentences. These can be [regular expressions][11] (regex) or multiple entries in the config file. These apps are also used in complex commands like searching for files and opening the resultant set with an app. For example, “Carola, search pictures of Iceland and open them with Krita.” The previous command would cause the PVA to search in your configured picture paths for filenames matching “iceland” and then open them with Krita. This works for all apps as long as their launchers accept filenames as arguments on their CLI. Even if this isn’t the case for your favorite app, you might still be able to write a small “wrapper” script in Bash and then use that script as the app target for the PVA. + +Via voice command, you can switch apps out for a configured alternative on the fly. + +_alternatives:”firefox”,”web”,”firefox” +alternatives:”google chrome”,”web”,”google-chrome” +alternatives:”chromium free”,”web”,” chromium-freeworld” +alternatives:”chromium privacy”,”web”,” chromium-privacy-browser” +alternatives:”openoffice”,”office”,”openoffice4″ +alternatives:”libreoffice”,”office”,”libreoffice”_ + +By using the “use {alternative}” syntax you select what you want to use next. For example, “Carola use Firefox” or “Carola use Chromium free”. It’s working for any app in the app list. But how are these commands defined? + +_command:”start”,”STARTAPP”,”app”,”” +command:”open”,”OPENAPP”,”app”,””_ + +Quite simple: “Carola, start Firefox app” will start Firefox. “Carola, start Firefox” would also work because the term “app” is filtered out. + +Next is the positive and negative list of words again. Here is the reaction syntax. + +_command:”how is the weather”,”CURRENTWEATHERNOW”,””,”tomorrow” +command:”how will the weather be”,”CURRENTWEATHERNEXT”,””,”tomorrow” +command:”how will the weather be tomorro_w”,”CURRENTWEATHERTOMORROW”,””,”” + +The commands in the second column are some of PVA’s internal function names. They are coded internally because processing the result can be tricky. You can, however, outsource those commands to an external Bash script. Below is an example that shows how to call a custom Bash script. + +_replacements:”h d m i”,”hdmi” +replacements:”u s b”,”usb”_ + +_command:”switch .* to kopfhörer”,”EXEC:pulse.outx:x%0x:xhdmi” +command:”switch .* to lautsprecher”,”EXEC:pulse.outx:x%0x:xdefault” +command:”switch .* to .* now”,”EXEC:pulse.outx:x%0x:x%1″_ + +The last of the above commands will switch the output device of a named (first “.*”) running app in pulseaudio to the named (second “.*”) device. As you can see, it works using regular-expression-like syntax. The syntax is not, however, fully-featured. All three of the above commands call the script _pulse.out_ with two parameters. That is, “pulse.out ”. Now there is no need to start PAVUControl anymore. Instead, you can just grab your headset and tell your PC to use it. 🙂 + +There is no limit to the number of .* wildcards in the command or execution part. Feel free to code a response for something like, “Carola, switch on the light in the kitchen.” + +comm_and:”switch .* the light in .*”,”EXEC:smarthomex:x%0x:x%1″_ + +If you are wondering about those “x:x” character sequences in the execution part, those are being used to escape whitespaces because they tend to appear in filenames. + +### Oops, it sent your mail to Hermine instead of Hermann + +All these voice commands only work correctly when the STT system works flawlessly. Of course, it often does not. Do not have false hopes. It’s not perfect. However, PVA can auto-correct some common errors by configuring _replacements_. + +PVA can correct simple mistakes. + +_replacements:”hi länder”,”highlander” +replacements:”cash”,”cache” +replacements:”karola”,”carola”_ + +Or, it can perform _context_ replacements. These are only done if a command has been recognized. + +co_ntextreplacements:”STARTAPP”,”kreta”,”krita” +contextreplacements:”STARTAPP”,”konfig”,”config” +contextreplacements:”ADDTITLE”,”föge”,”füge”_ + +Shown above is the entry “Krita” which sounds like the German word “Kreta” which is a Greek island. STT Vosk likes “Kreta”. So we need to replace this. But not every time. If we perform a web search for “Kreta”, it would be counter productive to replace it with “Krita”. You can add simple replacements to the config. I suggest that you use the _user_ config for these because other users my encounter different problems. + +If you don’t know why a command is not being recognized correctly, you can the always check the log at ~/.var/log/pva.log. + +### Contribution + +If you want to contribute to this project, feel free to do so. It is available on Github[[1]][4]. Since Vosk now has support for eighteen languages, translating the texts to different languages would be a great place that a contributor could get started. + +To get PVA installed on Fedora Linux, it is required to rebuild Vosk and its libraries with Fedora sources. We tried to do so earlier this year, but we failed when we ran into some exotic mathlib dependencies that we couldn’t get to compile on Fedora Linux. We are hoping that a good, skilled C developer could solve this problem and get those resulting packages reviewed by Fedora packagers. 🙂 + +I hope I have awoken some interest from our dear readers. The world of PVA needs your awesome configs! 🙂 + +Best regards, +Marius Schwarz + +### References + +[1] + +[2] + +[3] + + * [/MBROLA][12] + * [/MBROLA-voices][13] + + + +[4] + +[5] Available from the Fedora Linux repositories: + + * _dnf install gtts_ + + + +[6] + +[7] + +[8] + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/your-personal-voice-assistant-on-fedora-linux/ + +作者:[Marius Schwarz][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/mschwarz/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/hal9000-816x345.jpg +[2]: https://en.wikipedia.org/wiki/File:HAL_9000.JPG +[3]: https://en.wikipedia.org/wiki/Massively_multiplayer_online_role-playing_game +[4]: tmp.WvYZ1CkAYG#references +[5]: https://en.wikipedia.org/wiki/CardDAV +[6]: https://github.com/Cyborgscode/Personal-Voice-Assistent/blob/main/README.txt +[7]: tmp.WvYZ1CkAYG#reference +[8]: https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol +[9]: https://wttr.in/ +[10]: https://en.wikipedia.org/wiki/CURL +[11]: https://en.wikipedia.org/wiki/Regular_expression +[12]: https://github.com/numediart/MBROLA +[13]: https://github.com/numediart/MBROLA-voices From 367e24a026997f5a6a745ecc6817646dca96f426 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 2 Jul 2022 10:12:35 +0800 Subject: [PATCH 0222/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220701=20How=20To=20Create=20Multiboot=20USB=20Dri?= =?UTF-8?q?ves=20With=20Ventoy=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ltiboot USB Drives With Ventoy In Linux.md | 373 ++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 sources/tech/20220701 How To Create Multiboot USB Drives With Ventoy In Linux.md diff --git a/sources/tech/20220701 How To Create Multiboot USB Drives With Ventoy In Linux.md b/sources/tech/20220701 How To Create Multiboot USB Drives With Ventoy In Linux.md new file mode 100644 index 0000000000..a36969a0c9 --- /dev/null +++ b/sources/tech/20220701 How To Create Multiboot USB Drives With Ventoy In Linux.md @@ -0,0 +1,373 @@ +[#]: subject: "How To Create Multiboot USB Drives With Ventoy In Linux" +[#]: via: "https://ostechnix.com/how-to-create-multiboot-usb-drives-with-ventoy-in-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Create Multiboot USB Drives With Ventoy In Linux +====== +**Ventoy** is a free, open source and cross-platform program to create multiboot USB drives in Linux, macOS and Microsoft Windows. + +You don't need to format your USB devices over and over. Just create a bootable USB drive once and add as many as ISOs you want in future. + +You can even create sub-folders, for example Linux ISO, Windows ISO, and put the respective ISO files in the appropriate folders. Ventoy will automatically create the menu entries for the newly added ISOs and add them to the boot menu. + +Once you created the multiboot USB, boot your system with the USB drive, select the ISO you want to load and start using it in no time. It is that simple! + +### Features + +Ventoy ships with a lots of useful features as listed below. + +* Very easy to install and use. +* Fast (limited only by the speed of copying iso file). +* You don't need to extract the ISOs. Just boot from the ISO file directly. +* Can be installed in USB/Local Disk/SSD/NVMe/SD Card. +* It supports Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI, MIPS64EL UEFI etc. +* Supports IA32/x86_64 UEFI Secure Boot. +* Supports FAT32/exFAT/NTFS/UDF/XFS/Ext2/Ext3/Ext4 for main partition. Default is exFAT. +* Support for booting vdisk files such as vhd, vdi, raw... with a Linux distro in a physical machine. +* Persistence storage support. +* Both MBR and GPT partition style are supported. The default is MBR. +* You can create bootable drives with ISO files larger than 4GB. +* Almost all type of OSes are supported. The developer claims more than 900+ ISO files have been tested with Ventoy. +* Linux auto installation supported. Meaning - you can add your template or script for unattended deployment. For instance, kickstart script for Redhat/CentOS, autoYast xml for SUSE, preseed script for Debian. Put a script or template in the USB drive and tell ventoy to use it for unattended installation. You can also update these scripts at any time. No need to create a new ISO file, just use the original ISO. +* Windows auto installation supported. +* Read-only to USB drive during boot. +* The normal usage of USB drives is unaffected. Meaning - you can use the USB drives for other purposes (E.g. File copy) +* Upgrade Ventoy when a new version is available without recreating the bootable USB drive again. Data nondestructive during version upgrade. +* No need to update Ventoy when a new distro is released. +* To add a new OS, just copy/paste the ISO into the USB drive. No need to start all over again. +* Supports Memdisk mode. On some machines the ISOs may not load. In such cases, you can use Memdisk mode. In this mode, Ventoy will load the whole ISO file into memory and then boot it. +* Plugin Framework. +* Native boot menu style for Legacy & UEFI. +* Available as CLI, native GUI and Web-based GUI. +* Supports theme and menu style customization. +* Cross-platform. It supports Linux, manOS and Windows. +* Free and Open source! + +### Create Multiboot USB Drives With Ventoy In Linux + +As I mentioned already, Ventoy is available as CLI, native GUI and Web-GUI versions. + +#### 1. Create Multiboot USB Drive Using Ventoy CLI + +First, you need to find your USB drive name. Refer the following guide to learn different ways to find disk drive details in Linux. + +* [How To Find Hard Disk Drive Details In Linux][1] + +I am going to use `fdisk` command to find my USB drive details: + +``` +$ sudo fdisk -l +``` + +**Sample output:** + +``` +[...] +Disk /dev/sdb: 14.54 GiB, 15597568000 bytes, 30464000 sectors +Disk model: Cruzer Blade +Units: sectors of 1 * 512 = 512 bytes +Sector size (logical/physical): 512 bytes / 512 bytes +I/O size (minimum/optimal): 512 bytes / 512 bytes +Disklabel type: dos +Disk identifier: 0x4d924612 +``` + +As you can see, my USB drive name is /dev/sdb. + +Next, download the latest Ventoy script from the [releases page][2]. As of writing this guide the latest version was 1.0.77. + +Go to the location where you downloaded the script and extract it. I have extracted it in a folder named `"ventoy"`. Cd into the `ventoy` directory: + +``` +$ cd ventoy +``` + +Now, run the following command to create multiboot USB drive: + +``` +$ sudo sh Ventoy2Disk.sh -I /dev/sdb +``` + +Replace `"/dev/sdb"` with your USB drive name. + +Here, the uppercase `"I"` will **force install ventoy** to `sdb` (no matter installed or not). If you use lowercase **i**, it install ventoy to `sdb` and fail if disk is already installed with ventoy. + +To enable secure boot support, use **-s** flag. By default, this option is disabled. + +``` +$ sudo sh Ventoy2Disk.sh -I -s /dev/sdb +``` + +You will be prompted to confirm the USB bootable creation process. Double check the USB drive name and type **Y** and press `ENTER` to continue: + +**Sample Output:** + +``` +********************************************** + Ventoy: 1.0.77 x86_64 + longpanda admin@ventoy.net + https://www.ventoy.net +********************************************** + +Disk : /dev/sdb +Model: SanDisk Cruzer Blade (scsi) +Size : 14 GB +Style: MBR + +Attention: +You will install Ventoy to /dev/sdb. +All the data on the disk /dev/sdb will be lost!!! + +Continue? (y/n) y + +All the data on the disk /dev/sdb will be lost!!! +Double-check. Continue? (y/n) y + +Create partitions on /dev/sdb by parted in MBR style ... +Done +Wait for partitions ... +partition exist OK +create efi fat fs /dev/sdb2 ... +mkfs.fat 4.2 (2021-01-31) +success +Wait for partitions ... +/dev/sdb1 exist OK +/dev/sdb2 exist OK +partition exist OK +Format partition 1 /dev/sdb1 ... +mkexfatfs 1.3.0 +Creating... done. +Flushing... done. +File system created successfully. +mkexfatfs success +writing data to disk ... +sync data ... +esp partition processing ... + +Install Ventoy to /dev/sdb successfully finished. +``` + +![Create Multiboot USB Drives With Ventoy In Linux OS][3] + +After a few seconds, the multiboot USB drive will be created. + +The above command will create two partitions. You can verify it with `fdisk` command: + +``` +$ sudo fdisk -l +``` + +**Sample Output:** + +``` +[...] +Disk /dev/sdb: 14.53 GiB, 15597568000 bytes, 30464000 sectors +Disk model: Cruzer Blade +Units: sectors of 1 * 512 = 512 bytes +Sector size (logical/physical): 512 bytes / 512 bytes +I/O size (minimum/optimal): 512 bytes / 512 bytes +Disklabel type: dos +Disk identifier: 0x436cedd0 + +Device Boot Start End Sectors Size Id Type +/dev/sdb1 * 2048 30398463 30396416 14.5G 7 HPFS/NTFS/exFAT +/dev/sdb2 30398464 30463999 65536 32M ef EFI (FAT-12/16/32) +``` + +Now open your file manager and copy the ISO files in the first partition. Don't worry if you can't find which one is the first partition. Your file manager will display the first partition only. + +![Copy ISO files to USB bootable drive created with Ventoy][4] + +You can even create sub-folders for different ISO file types. For instance, you can create a sub-folder for storing Linux ISO files, a sub-folder for BSD ISO files, and a sub-folder windows ISO files. + +Ventoy will scan the entire USB drive and create menu entries for all available ISO files and automatically add them to the Ventoy main boot menu. + +If you prefer command line way to copy ISO files, go to the location where you saved ISO files and copy all ISO files from command line with `rsync` program like below: + +``` +$ rsync *.iso /media/$USER/ventoy/ --progress -ah +``` + +Please note that in some Linux distros, the USB might be mounted under **"/run/media/"** location. + +Done! We have just created multiboot USB drive with Ventoy. + +Boot your system with the newly crated bootable USB drive and you will be pleased with the Ventoy boot menu: + +![Ventoy multiboot menu][5] + +Choose the OS that you want to boot and hit ENTER to load it! + +Here is the short visual demo of multiboot USB flash drive created with Ventoy: + +![][6] + +![][7] + +Cool, isn't it? Indeed! + +If you want to boot the USB in Oracle Virtualbox, refer the following guide: + +* [How To Boot From USB Drive In Virtualbox In Linux][8] + +#### 2. Create Multiboot USB Drive Using Ventoy GUI + +Initially, Ventoy doesn't have any graphical user interface for Linux platforms. We can create bootable USB drives using Ventoy in Linux from commandline mode only. + +Fortunately, Ventoy now ships with a web-based graphical user interface since version 1.0.36 and native GUI (GTK/QT) since 1.0.52. + +Believe me, the usage of Ventoy GUI is incredibly easy! The interface is very minimal but it has everything we need to create a single or multiboot bootable drives in a couple mouse clicks. + +Open your Terminal and go to the location where you downloaded the latest Ventoy program. + +``` +$ cd Downloads/ventoy-1.0.77/ +``` + +Run the appropriate Ventoy GUI executable file depending upon the distribution's architecture. + +* VentoyGUI.i386 - For X86 32 bit OS +* VentoyGUI.x86_64 - For X86 64 bit OS +* VentoyGUI.aarch64 - For ARM64 OS +* VentoyGUI.mips64el - For Loongson 3A MIPS OS + +I am on Debian 11 X86 64 bit system, so I run the following command: + +``` +$ ./VentoyGUI.x86_64 +``` + +This is how Ventoy GUI looks like. + +![Ventoy GUI][9] + +Ventoy automatically selects the connected USB drive for you. However, I recommend you to verify if the chosen drive is actually the USB drive that you want to format. + +![Create Multiboot USB Drives Using Ventoy GUI][10] + +You will be prompted to confirm the process. Click OK to continue. + +##### Ventoy Options And Language + +Click the Options button from the menu bar. + +![Ventoy Options][11] + +From the Options drop down button, you can do the following: + +* Secure Boot Support - Check/uncheck to enable or disable Secure boot. By default, it is enabled (checked). +* Partition Style - MBR and GPT partition styles are supported. The default is MBR. +* Partition Configuration - Here, you can choose to preserve some free space at the end of the disk. +* Clear Ventoy - Remove Ventoy from your disk. +* Show all disks - Check this option if you want to show all connected devices including your local disks. Be extra careful while selecting this option. You may accidentally choose one of your local disk and format it. + +The language button allows you choose your preferred language. + +##### Update Ventoy + +It is not necessary to re-create the bootable USB whenever a new Ventoy version is released. You can safely update ventoy to the new version without losing any existing data from the USB drive. + +To update the installed Ventoy version to latest available version, plug in the USB drive and launch Ventoy GUI as shown above. + +From the Ventoy GUI, click Update button. + +![Update Ventoy][12] + +#### 3. Create Multiboot USB Drive Using Ventoy Web GUI + +Ventoy Web GUI is exactly same as native GUI. The other day I tried the Ventoy WebUI in my Fedora Linux desktop. I am surprised how much I like the simplicity of the Ventoy graphical user interface. + +To learn how to create bootable USB using Ventoy graphical user interface, refer the following link: + +* [Create Bootable USB Drive With Ventoy WebUI In Linux][13] + +#### Load ISO Images To RAM + +Like I already mentioned, the ISO images may not boot in some machines, especially in Legacy BIOS mode. Here is where `"Memdisk"` mode comes in help. + +When `Memdisk` mode is enabled, Ventoy will load the whole ISO image file into memory and boot it from there. + +To enable `Memdisk` mode, press F1 key before selecting the OS. You will see the notification on the top right corner when the Memdisk mode is enabled. + +![Enable Memdisk mode in Ventoy][14] + +Now the ISO will be loaded to memory: + +![Load ISO to memory in Ventoy][15] + +To switch back to normal mode, press `F1` key again. + +### Creating Persistent Bootable USB + +We know now how to create multiboot USB drives with Ventoy in Linux. Using this bootable USB, we can test the Linux distributions without actually having to install them on the hard drive. + +When you are on the Live OS, you can do all sort of things, such as installing applications, downloading files, playing media, creating files and folders, customizing it as per your liking and a lot more. + +However once you reboot the system, all of the said changes will be gone. If you want to make all changes remain intact even after rebooted the system, you should create a persistent bootable USB drive. + +Ventoy can able to make persistent USB bootable drive. To know how to do it, refer the link given below. + +* [Create Persistent Bootable USB Using Ventoy In Linux][16] + +### Conclusion + +Believe or not, Ventoy is one of the easiest, quickest and ingenious tool ever I have used to create multiboot (persistent and non-persistent) USB flash drives in Linux. + +It just works out of the box! Give it a try. You won't be disappointed! + +### Security concerns related to Ventoy + +The Ventoy website, forum and some files hosted in that site have been flagged as Malware/Trojan by some Antivirus software. Check the issues posted in the project's GitHub page: + +* [https://github.com/ventoy/Ventoy/issues/22][17] +* [https://github.com/ventoy/Ventoy/issues/83][18] +* [https://github.com/ventoy/Ventoy/issues/31][19] + +However, Manjaro packager **"Linux Aarhus"** has argued after code review why there is no reasonable doubt on the security aspects of this application. + +He claims **"there is no obfuscated code"**. So, I guess Ventoy is **safe** to use. + +**Resources:** + +* [Ventoy Website][20] +* [Ventoy GitHub Repository][21] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/how-to-create-multiboot-usb-drives-with-ventoy-in-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-find-hard-disk-drive-details-in-linux/ +[2]: https://github.com/ventoy/Ventoy/releases +[3]: https://ostechnix.com/wp-content/uploads/2022/07/Create-Multiboot-USB-Drives-With-Ventoy-In-Linux.png +[4]: https://ostechnix.com/wp-content/uploads/2020/05/Copy-ISO-files-to-USB-bootable-drive.png +[5]: https://ostechnix.com/wp-content/uploads/2020/05/Ventoy-multiboot-menu.png +[6]: https://i.ytimg.com/vi/VFr1mAikeJU/maxresdefault.jpg +[7]: https://ostechnix.com/wp-content/plugins/penci-shortcodes/pagespeed/assets/play-btn.png +[8]: https://ostechnix.com/how-to-boot-from-usb-drive-in-virtualbox-in-linux/ +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Ventoy-GUI.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/Create-Multiboot-USB-Drives-Using-Ventoy-GUI.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Ventoy-Options.png +[12]: https://ostechnix.com/wp-content/uploads/2022/07/Update-Ventoy.png +[13]: https://ostechnix.com/create-bootable-usb-drive-with-ventoy-webui-in-linux/ +[14]: https://ostechnix.com/wp-content/uploads/2020/05/Enable-Memdisk-mode-in-Ventoy.png +[15]: https://ostechnix.com/wp-content/uploads/2020/05/Load-ISO-to-memory-in-Ventoy.png +[16]: https://ostechnix.com/create-persistent-bootable-usb-using-ventoy-in-linux/ +[17]: https://github.com/ventoy/Ventoy/issues/22 +[18]: https://github.com/ventoy/Ventoy/issues/83 +[19]: https://github.com/ventoy/Ventoy/issues/31 +[20]: https://www.ventoy.net/en/index.html +[21]: https://github.com/ventoy/Ventoy From ce163ab1709d094be04fdf0f0ff128cfac4c57c5 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Sat, 2 Jul 2022 14:22:33 +0800 Subject: [PATCH 0223/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]=2020220630=20Hide=20Files=20and=20Folders=20in=20Linux?= =?UTF-8?q?=20Without=20Renaming=20Them?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 Hide Files and Folders in Linux Without Renaming Them.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md index 3eff1f7d1e..22f939279d 100644 --- a/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md +++ b/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/hide-files-folders-linux/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "hanszhao80" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -118,7 +118,7 @@ via: https://itsfoss.com/hide-files-folders-linux/ 作者:[Abhishek Prakash][a] 选题:[lkxed][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/) 荣誉推出 From e107c94c1bdaca8d9bf52a14b212d92dd723c52d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 2 Jul 2022 14:44:23 +0800 Subject: [PATCH 0224/3123] RP @lkxed https://linux.cn/article-14785-1.html --- ...rmats With Pandoc in Linux -Quick Guide.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) rename {translated/tech => published}/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md (86%) diff --git a/translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md b/published/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md similarity index 86% rename from translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md rename to published/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md index 28abc9e483..6125218224 100644 --- a/translated/tech/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md +++ b/published/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md @@ -3,12 +3,11 @@ [#]: author: (Bill Dyer https://itsfoss.com/author/bill/) [#]: collector: (lujun9972) [#]: translator: (lkxed) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14785-1.html) -How to Convert File Formats With Pandoc in Linux [Quick Guide] -如何在 Linux 中使用 Pandoc 转换文件格式(快速指南) +如何在 Linux 中使用 Pandoc 转换文件格式 ====== 在之前的一篇文章中,我介绍了 [使用 pandoc 将少量 Markdown 文件批量转换为 HTML 的过程][1]。在那篇文章中,我创建了多个 HTML 文件,但 Pandoc 可以做的更多。它被称为文档转换的“瑞士军刀” —— 这是有充分理由的。很少有它做不到的事情。 @@ -25,7 +24,7 @@ How to Convert File Formats With Pandoc in Linux [Quick Guide] ![][4] -本文中,我会将 Markdown 文件转换成几种不同的格式。我几乎所有的写作都使用 Markdown 语法,但我经常需要转换为另一种格式:学校作业通常需要的 .docx 格式;我创建的网页通常需要的 .html 格式;工作需要的 .epub 格式;传单和讲义需要的 .pdf 格式;甚至包括大学数字人文项目偶尔需要的 TEI Simple 格式。Pandoc 可以轻松处理所有这些格式,甚至更多。 +本文中,我会将 Markdown 文件转换成几种不同的格式。我几乎所有的写作都使用 Markdown 语法,但我经常需要转换为另一种格式:学校作业通常需要的 .docx 格式;我创建的网页通常需要的 .html 格式;工作需要的 .epub 格式;传单和讲义需要的 .pdf 格式;甚至包括一个大学数字人文项目偶尔需要的 TEI Simple 格式。Pandoc 可以轻松处理所有这些格式,甚至更多。 首先,你需要 [安装 pandoc][5]。此外,要创建 .pdf 文件,还需要 LaTeX。我最喜欢的套件是 [TeX Live][6]。 @@ -46,7 +45,7 @@ sudo apt-get install pandoc texlive 安装完成 `pandoc` 和 `texlive` 后,你就可以尝试用它们来完成一些工作了! -该项目的示例文档将是一篇文章,该文章于 1894 年 12 月首次发表在《北美评论》上,标题为“如何击退火车劫匪”。我将使用的 Markdown 文件是前一段时间创建的,它是该文章的恢复项目的一部分(LCTT 译注:这是篇一百多年前发表的文章,我想“恢复”指的就是把它数字化吧)。 +该项目的示例文档将是一篇文章,该文章于 1894 年 12 月首次发表在《北美评论》上,标题为“如何击退火车劫匪”。我将使用的 Markdown 文件是前一段时间创建的,该文章的一个恢复项目的一部分(LCTT 译注:这是篇一百多年前发表的文章,这是一个数字化“恢复”项目)。 我把这篇文章保存为 `how_to_repel_train_robbers.md`,它位于我的 `Documents` 目录下,名为 `samples` 的子目录中。它在 Ghostwriter 中看起来是这样的: @@ -57,7 +56,7 @@ sudo apt-get install pandoc texlive #### 第一次转换 首先,我将制作一个 .pdf 副本,因为我在安装 LaTeX 包时遇到了些麻烦。 -、 + 在 `~/Documents/samples/` 目录中,我输入以下,以创建一个 .pdf 文件: ``` @@ -110,7 +109,7 @@ pandoc -o htrtr.html how_to_repel_train_robbers.md Pandoc 可以做的远不止这里完成的三个小转换。如果你选择使用一个首选格式编写文件,但时不时又需要将文件转换为另一种格式,pandoc 很大概率都能为你完成。 -现在,既然你已经学会了,你会用它做什么呢?你会把它自动化吗?如果你的网站上有文章供读者下载怎么办?你可以修改这些小命令,把它们编写成一个脚本,你的读者可以决定他们想要哪种格式。你可以提供 .docx、.pdf、.odt、.epub 或更多格式。你的读者只需要选择一种格式,然后对应的转换脚本就会执行,最后,你的读者下载他们想要的文件。这是完全可以做到的。 +现在,既然你已经学会了,你会用它做什么呢?你会把它自动化吗?如果你有一个网站,想供读者下载文章怎么办?你可以修改这些小命令,把它们编写成一个脚本,你的读者可以决定他们想要哪种格式。你可以提供 .docx、.pdf、.odt、.epub 或更多格式。你的读者只需要选择一种格式,然后对应的转换脚本就会执行,最后,你的读者下载他们想要的文件。这是完全可以做到的。 -------------------------------------------------------------------------------- @@ -119,7 +118,7 @@ via: https://itsfoss.com/pandoc-convert-file/ 作者:[Bill Dyer][a] 选题:[lujun9972][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b795eccda3cb58c9b4133fc57ddde6b886456824 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 2 Jul 2022 15:37:12 +0800 Subject: [PATCH 0225/3123] RP @hanszhao80 https://linux.cn/article-14786-1.html --- .../20210511 What is the OSI model.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) rename {translated/tech => published}/20210511 What is the OSI model.md (92%) diff --git a/translated/tech/20210511 What is the OSI model.md b/published/20210511 What is the OSI model.md similarity index 92% rename from translated/tech/20210511 What is the OSI model.md rename to published/20210511 What is the OSI model.md index 5e335ed75e..01b9089954 100644 --- a/translated/tech/20210511 What is the OSI model.md +++ b/published/20210511 What is the OSI model.md @@ -3,13 +3,17 @@ [#]: author: (Julia Evans https://jvns.ca/) [#]: collector: (lujun9972) [#]: translator: (hanszhao80) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14786-1.html) OSI 模型是什么? ====== +![](https://img.linux.net.cn/data/attachment/album/202207/02/153620k7nwc6nn2b6n6p2c.jpg) + +(LCTT 校注:作者原文已经大篇幅进行了修订更新,本文据之前的版本翻译。) + 今天我在推特上发布了一些关于 OSI 模型如何与 TCP/IP 工作原理的实际表现不相符的观点,这让我思考——OSI 模型到底是什么?通过阅读推特上的一些回复发现,似乎至少存在三种不同的思考方式: 1. TCP/IP 工作原理的字面描述 @@ -49,7 +53,7 @@ OSI 模型是什么? 此外,TCP/IP 的某些部分即使在第二层到第四层也不能很好地适应 OSI 模型——例如,哪一层是 ARP 数据包?ARP 数据包发送一些带有以太网标头的数据,这是否意味着它们是第三层?或是第二层?列出不同 OSI 层的维基百科文章将其归类为“第 2.5 层”,这并不令人满意。 -因为 OSI 模型有时用于教授 TCP/IP,若搞不清楚它的哪些部分与 TCP/IP 映射良好,而哪些部分不能,则会令人困惑。这才是真的问题。 +因为 OSI 模型有时用于教授 TCP/IP,若搞不清楚它的哪些部分可以映射到 TCP/IP,而哪些部分不能,则会令人困惑。这才是真的问题。 ### OSI 模型:用于比较网络协议的一个抽象 @@ -76,7 +80,7 @@ via: https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/ 作者:[Julia Evans][a] 选题:[lujun9972][b] 译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 74ad58aa0aa2712d38ffe98495be3dfa368de8c4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 3 Jul 2022 01:41:10 +0800 Subject: [PATCH 0226/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220702=2013=20Interesting=20Distributions=20Based?= =?UTF-8?q?=20on=20Debian=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ing Distributions Based on Debian Linux.md | 254 ++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 sources/tech/20220702 13 Interesting Distributions Based on Debian Linux.md diff --git a/sources/tech/20220702 13 Interesting Distributions Based on Debian Linux.md b/sources/tech/20220702 13 Interesting Distributions Based on Debian Linux.md new file mode 100644 index 0000000000..c4d0469309 --- /dev/null +++ b/sources/tech/20220702 13 Interesting Distributions Based on Debian Linux.md @@ -0,0 +1,254 @@ +[#]: subject: "13 Interesting Distributions Based on Debian Linux" +[#]: via: "https://itsfoss.com/debian-based-distros/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +13 Interesting Distributions Based on Debian Linux +====== + +You will always find [Debian][1] in the list of most stable Linux distributions. It is one of the oldest distributions out there. With ‘open source’ at its core, Debian is an example of a successful community project. + +But the focus on ‘FOSS’ also makes it uncomfortable for new users who are accustomed to getting things out of the box. [Installing Debian][2] also feels like a complicated task. + +For this reason, you can opt for a Debian-based distribution so that you stay in the comfort of Debian. + +I am going to list some interesting distributions based on Debian in this article. + +![best distros based on debian][3] + +I have deliberately left out Ubuntu and other Ubuntu derivatives like Linux Mint, elementary, Linux Lite, etc. This list is for the direct derivatives of Debian. + +Let’s see if you can find your next favorite distro in this list. + +### 1. LMDE: Linux Mint – Ubuntu + Debian + +![1. lmde 5][4] + +Many users are not aware of the fact that Linux Mint also has a direct Debian derivative known as LMDE (Linux Mint Debian Edition). As the Ubuntu and Debian versions will be using Cinnamon, you won’t notice any visual differences not even in the list of applications you get for day-to-day use. + +Sadly, the only reason for maintaining Debian’s edition was to create a suitable backup if Canonical makes some changes using Ubuntu as the base. But don’t worry, LMDE is so refined that several users think the Mint team should use Debian as default for their future releases. + +The team behind Mint are strictly opposed to the use of snaps in their system and to enable it, you have to go through some extra steps than usual I would recommend LMDE to anyone as Cinnamon is created for ease of use and you also get robust Debian core for rock-solid stability. + +[LMDE][5] + +### 2. Peppermint OS: An underrated lightweight option + +![Peppermint OS 9 Screenshot][6] + +Several users start their Linux journey to revive their old system as it is known for consuming fewer resources than other distros. + +So what makes Peppermint OS stand out? ICE Applications and responsiveness. + +Peppermint has a pre-installed tool called ICE which allows you to create web apps from any URL and even allows you to run them in containers. + +And the second reason and probably the major reason behind its popularity is the speed you can achieve from a decade-old computer. + +After installation, you are met with the bare minimum tools which do not include a browser! Yes, you do get an option to choose your favorite one from the welcome screen but you can get the idea of what kind of minimalist approach they follow. + +A good choice if you are looking for a [lightweight Linux system][7]. One of the rare few [distros that still support 32-bit systems][8]. It used to be based on Ubuntu but after the unfortunate untimely demise of its lead developer, the[project reinvented itself with Debian as its base][9]. + +[Peppermint OS][10] + +### 3. Kaisen Linux: Debian with tons of utilities + +![3. kaisen linux][11] + +Debian is entrusted by many IT professionals, and it’s quite true that you can get your job done on almost every Linux distro. But having the luxury of getting all the IT necessary tools for networking, recovery, and others will not only save you time but also improve your productivity. + +Unlike the first two options (LMDE and Peppermint), you can choose between MATE (default), KDE, Xfce, and LXQt and it uses Debian testing (rolling release) at its core which is far stable if you compare it with other rolling release distros such as Arch. + +[Kaisen Linux][12] + +### 4. Raspberry Pi OS: For your $35 computer + +![4. raspberry pi os][13] + +Got yourself the famed Raspberry Pi device? You can create tons of projects with [specialized operating systems for the Raspberry Pi][14]. However, if you want to use Raspberry Pi as a generic PC, you can (and you should) use the official Raspberry Pi OS. + +It is based on Debian and earlier it was called Raspbian OS (Raspberry + Debian). However, it was renamed lately to Raspberry Pi OS. + +[Raspberry Pi OS][15] + +### 5. BOSS Linux: Made for Indian users + +![5. boss linux][16] + +There are quite a few examples when the [government tries to support Linux][17] and that’s the case with BOSS (Bharat Operating System Solutions) Linux. What makes this distro special is the custom kernel known as MOOL (Minimalistic Object Oriented Linux) which is focused on bringing better maintainability. + +Not just a custom kernel but also bundled with BEMS (BOSS Enterprise Management Suite) which provides End-to-End control and management on client nodes by getting us components such as BOSS Domain Controller, Network Authentication Server, Patch Management Server, and a lot more. + +More than 6 million+ deployments across India are a sign of how trustworthy this distro is. This comes in three variants: Desktop, Educational, and server so it covers almost everything that you need from a distro. + +[BOSS Linux][18] + +### 6. SolydXK: Simplified but solid Debian derivative + +![solydxk][19] + +For those who love to tinker with things, SolydXK is the perfect option as it not just gives multiple variants for Desktop Environments but also has a separate Enthusiast Edition (EE) based on Debian testing. + +On the stable part, we have two options: SolydK and SolydX. So if you are looking for something lightweight on system resources, SolydX will get your job done as it is fine-tuned with Xfce to revive your old pc. And if you have a decent hardware configuration, try SolydK as it is equipped with a KDE Plasma desktop. Feel free to [choose between Xfce and KDE][20]. + +From stability to multiple choices, SolydXK has been made while keeping user interest in mind. + +[SolydXK][21] + +### 7. Nitrux: A modern take on the desktop Linux + +![7. nitrux][22] + +Looking for something based on Debian yet modern looking? Nitrux will surely fulfill those requirements. Rather than using Debian stable, developers went with Debian Unstable (sid) and will retrieve some additional packages from Ubuntu LTS repositories. + +Nitrux uses NX Desktop, a customized KDE Plasma with MAUI UI framework, and trust me after Elementary OS and Deepin, Nitrux is considerably the [most eye-pleasing distro][23]. + +Additionally, the implementation of AppImages is what fascinates me a lot! So if you are looking for the perfect blend of aesthetics and rock-solid experience, Nitrux will amaze you. + +[Nitrux][24] + +### 8. Deepin: If looks could kill + +![8. deepin][25] + +So if you have a decent machine and you have no issue with the origin of the distro, Deepin is the most beautiful Debian-based Linux distro. + +Deepin is China based distro that happens to have its Desktop Environment named DDE (Deepin Desktop Environment) and also has a set of home-grown apps like Deepin Software Centre, DMusic, and DPlayer are tailored to the normal user. + +From being easy to install to eye-pleasant UI, Deepin can be the perfect choice if you are switching from Windows or looking for an enhanced Linux Desktop experience. + +[Deepin][26] + +### 9. Endless OS: For students and schools + +![9. endless os][27] + +The major reason why people are not switching to Linux is it is rumored for being complex and required to use of Terminal for every task. But what if I tell you, there is Debian based distro that is tweaked in such a way that can be used by even kids? Yes, we are talking about Endless OS here. + +Endless OS is created in such a way that it can be used without the internet and has an offline encyclopedia with over 50,000+ articles and much more. It comes with more than 100 preloaded apps and tools which do not require internet access at all! + +This makes it an ideal [Linux distribution for children and schools][28]. + +[Endless OS][29] + +### 10. MX Linux: A general-purpose distro for everyone + +![10. MX Linux][30] + +From ranked #1 on distro watch to being often recommended to new users, MX Linux does not require an introduction. So why it is so popular? MX Tools. This is the primary reason behind its popularity. + +MX Snapshot is one of the MX Tools and what it does is amazing in its way. It will create an ISO which includes all the data in your home and root directory so if you break your system (somehow) or face some critical issue with the hardware, you can use the ISO file for getting the same set of files and software on other system and this is just one example of how cool it is. + +MX Linux has three official variants: Xfce (Flagship edition), KDE, and Fluxbox (lightest of all). Surprisingly, we also get support for 32-bit architecture on Xfce and Fluxbox edition and MX-RaspberryPi is one of their unofficial spins. + +From getting us Xfce (midweight) variant to supporting Raspberry Pi, they cover everything which you can expect from a distro including a special set of tools! + +[MX Linux][31] + +### 11. Kali Linux: Hack you! + +![11. kali linux][32] + +“Hacking” is the first impression you get when you hear the name Kali Linux. It is indeed one of the [most popular Linux distributions among hackers][33], be it beginners or professionals. + +It comes with plenty of hacking, security and pen-testing tools by default. Apart from that, its repositories contain [plenty more tools][34]. + +Kali Linux developers also have a keen sense of humor, it seems. They have an [undercover mode to make your Kali Linux look like Windows][35]. It recently added a [screensaver that makes it look like the system is being hacked][36]. + +Fun and work together. A good choice for cyber security enthusiasts. + +[Kali Linux][37] + +### 12. Slax: Your portable Linux system + +![12. slax][38] + +A Live operating system that does not require any installation just a single boot and you are good to go! Yes, that’s what you get with Slax. Entire Slax resides in a single directory /slax/ so you can manage files easily. + +So when you read-only media such as CD/DVD, all the modifications will be lost after reboot but if you use writable media such as USB, you can save those changes and even use it on a different computer which is one of its widely known feature “Persistent Changes”. + +From being extremely resource-friendly to having a user-friendly interface, Slax is an interesting choice if you want a portable Linux system. + +[Slax][39] + +### 13. YunoHost: You know you could self host + +![13. yunohost][40] + +This is one of my personal favorites as it is aimed at simplifying the management of servers. + +Managing servers is not easy. It is specially difficult for home users who are accustomed to GUI. This is why some people even try to [install GUI on Ubuntu server][41]. + +If you are not too comfortable with the terminal and yet you want to self-host services and applications for home or hobby use, YunoHost is your friend. It has simplified everything from installation to the management of servers through a friendly web interface. + +A complete server distro that allows you to deploy apps through a few clicks, manage SSL certificates, create and restore backups and much more. + +[YunoHost][42] + +### Final thoughts + +Debian is the mother of so many Linux distributions. It is not easy to select the best among them. I have tried to list the ones that are different or popular. I also know there are many more interesting Debian-based distributions out there. + +If your favorite is not on this list, why not mention it in the comments? + +And if you are more into the Arch domain, check out this list of [friendlier Arch-based distros][43]. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/debian-based-distros/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://www.debian.org/ +[2]: https://itsfoss.com/install-debian-easily/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/best-distros-based-on-debian.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/1.-LMDE-5-800x500.jpg +[5]: https://www.linuxmint.com/download_lmde.php +[6]: https://itsfoss.com/wp-content/uploads/2018/06/Peppermint-OS-3default-theme-800x450.jpg +[7]: https://itsfoss.com/lightweight-linux-beginners/ +[8]: https://itsfoss.com/32-bit-linux-distributions/ +[9]: https://news.itsfoss.com/peppermint-11-release/ +[10]: https://peppermintos.com/ +[11]: https://itsfoss.com/wp-content/uploads/2022/07/3.-Kaisen-Linux-800x450.jpg +[12]: https://kaisenlinux.org/ +[13]: https://itsfoss.com/wp-content/uploads/2022/07/4.-Raspberry-Pi-OS-min-800x450.jpg +[14]: https://itsfoss.com/raspberry-pi-os/ +[15]: https://www.raspberrypi.com/software/ +[16]: https://itsfoss.com/wp-content/uploads/2022/07/5.-BOSS-Linux-800x450.jpg +[17]: https://itsfoss.com/linux-national-os/ +[18]: https://bosslinux.in/ +[19]: https://itsfoss.com/wp-content/uploads/2022/07/solydxk-800x450.png +[20]: https://itsfoss.com/kde-vs-xfce/ +[21]: https://solydxk.com/ +[22]: https://itsfoss.com/wp-content/uploads/2022/07/7.-Nitrux-800x450.jpg +[23]: https://itsfoss.com/beautiful-linux-distributions/ +[24]: https://nxos.org/ +[25]: https://itsfoss.com/wp-content/uploads/2022/07/8.-Deepin-min.jpg +[26]: https://www.deepin.org/en/ +[27]: https://itsfoss.com/wp-content/uploads/2022/07/9.-Endless-OS-800x452.jpg +[28]: https://itsfoss.com/educational-linux-distros/ +[29]: https://endlessos.com/ +[30]: https://itsfoss.com/wp-content/uploads/2022/07/10.-MX-Linux-800x450.jpg +[31]: https://mxlinux.org/ +[32]: https://itsfoss.com/wp-content/uploads/2022/07/11.-Kali-Linux-min-800x450.jpg +[33]: https://itsfoss.com/linux-hacking-penetration-testing/ +[34]: https://itsfoss.com/best-kali-linux-tools/ +[35]: https://itsfoss.com/kali-linux-undercover-mode/ +[36]: https://news.itsfoss.com/kali-linux-2022-2-release/ +[37]: https://www.kali.org/ +[38]: https://itsfoss.com/wp-content/uploads/2022/07/12.-Slax-800x600.jpg +[39]: https://www.slax.org/ +[40]: https://itsfoss.com/wp-content/uploads/2022/07/13.-YunoHost-800x387.jpg +[41]: https://itsfoss.com/install-gui-ubuntu-server/ +[42]: https://yunohost.org/ +[43]: https://itsfoss.com/arch-based-linux-distros/ From 0f65572989828ff789fbe8c829c16845017b71d3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 3 Jul 2022 10:09:52 +0800 Subject: [PATCH 0227/3123] RP @geekpi https://linux.cn/article-14788-1.html --- ...ube Videos with VLC -Because, Why Not--.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) rename {translated/tech => published}/20220625 Download YouTube Videos with VLC -Because, Why Not--.md (72%) diff --git a/translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md b/published/20220625 Download YouTube Videos with VLC -Because, Why Not--.md similarity index 72% rename from translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md rename to published/20220625 Download YouTube Videos with VLC -Because, Why Not--.md index ff97d493c8..d657e3a5f0 100644 --- a/translated/tech/20220625 Download YouTube Videos with VLC -Because, Why Not--.md +++ b/published/20220625 Download YouTube Videos with VLC -Because, Why Not--.md @@ -3,24 +3,26 @@ [#]: author: "Community https://itsfoss.com/author/itsfoss/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14788-1.html" -使用 VLC 下载 YouTube 视频(因为,为什么不呢?) +使用 VLC 下载 YouTube 视频 ====== +![](https://img.linux.net.cn/data/attachment/album/202207/03/100812twzmm942m4o7lmzq.jpg) + [VLC][1] 是 [Linux 和其他平台上最受欢迎的视频播放器][2]之一。 -它不仅仅是一个视频播放器。它提供了许多多媒体和网络相关的功能。你会惊讶地[了解 VLC 的能力][3]。 +它不仅仅是一个视频播放器。它提供了许多多媒体和网络相关的功能。你会惊讶地 [了解 VLC 的能力][3]。 我将演示一个简单的 VLC 功能,即使用它下载 YouTube 视频。 -是的。你可以在 VLC 中播放 YouTube 视频并下载它们。让我告诉你怎么做。 +是的。你可以在 VLC 中播放 YouTube 视频并下载它们。让我告诉你怎么做。(LCTT 校注:发布此文只探讨技术可行性。) ### 使用 VLC 媒体播放器下载 YouTube 视频 -现在,有一些方法可以[下载 YouTube 视频][4]。使用浏览器扩展或使用专门的网站或工具。 +现在,有一些方法可以 [下载 YouTube 视频][4]。使用浏览器扩展或使用专门的网站或工具。 但是如果你不想使用任何额外的东西,已经安装的 VLC 播放器可以用于此目的。 @@ -34,7 +36,7 @@ #### 步骤 2:将复制的链接粘贴到网络流 -网络流选项位于媒体下方,这是我们顶部菜单栏的第一个选项。只需单击媒体,你将获得“打开网络流”选项。你也可以使用快捷方式打开网络流 CTRL + N。 +“网络流Network Stream”选项位于“媒体Media”菜单下,这是我们顶部菜单栏的第一个选项。你也可以使用快捷方式 `CTRL + N` 打开网络流 。 ![click on media and select network stream][6] @@ -44,23 +46,23 @@ #### 步骤 3:从编解码器信息中获取位置链接 -在编解码器信息提示下,我们会得到当前播放视频的位置链接。要打开编解码器信息提示,你可以使用快捷键 CTRL + J 或者你会在“工具”下找到编解码器信息选项。 +在“编解码器信息Codec Information”下,我们会得到当前播放视频的位置链接。要打开编解码器信息,你可以使用快捷键 `CTRL + J` 或者你会在“工具Tools”菜单下找到编解码器信息选项。 ![click on tools and then codec information][8] -它将带来有关当前流媒体视频的详细信息。但我们需要的是“位置”。你只需复制位置链接,我们的任务就完成了 90%。 +它将带来有关当前流媒体视频的详细信息。但我们需要的是“位置Location”。你只需复制位置链接,我们的任务就完成了 90%。 ![copy location link][9] #### 步骤 4:将位置链接粘贴到新选项卡 -打开任何你喜欢的浏览器并将复制的位置链接粘贴到新选项卡,它将开始在浏览器中播放确切的视频。 +打开任何你喜欢的浏览器,并将复制的位置链接粘贴到新选项卡,它将开始在浏览器中播放该视频。 现在,右键单击播放视频,你将看到“将视频另存为”的选项。 ![click on save][10] -它将打开文件管理器并询问你是否要在本地保存此视频。你还可以重命名该文件,默认情况下它将被命名为 “videoplayback.mp4” +它将打开文件管理器并询问你是否要在本地保存此视频。你还可以重命名该文件,默认情况下它将被命名为 “videoplayback.mp4”。 ![showing file in folder][11] @@ -77,7 +79,7 @@ via: https://itsfoss.com/download-youtube-videos-vlc/ 作者:[Community][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/) 荣誉推出 From eb3295943bd949741937dd2c3674c7ffef57b4a7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 3 Jul 2022 10:52:29 +0800 Subject: [PATCH 0228/3123] RP @MjSeven @turbokernel https://linux.cn/article-14789-1.html --- ...0214 A guide to Kubernetes architecture.md | 77 +++++++------------ 1 file changed, 27 insertions(+), 50 deletions(-) rename {translated/tech => published}/20220214 A guide to Kubernetes architecture.md (74%) diff --git a/translated/tech/20220214 A guide to Kubernetes architecture.md b/published/20220214 A guide to Kubernetes architecture.md similarity index 74% rename from translated/tech/20220214 A guide to Kubernetes architecture.md rename to published/20220214 A guide to Kubernetes architecture.md index 821ede1f81..ca87e0e93c 100644 --- a/translated/tech/20220214 A guide to Kubernetes architecture.md +++ b/published/20220214 A guide to Kubernetes architecture.md @@ -4,33 +4,35 @@ [#]: collector: "lujun9972" [#]: translator: "MjSeven" [#]: reviewer: "turbokernel" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14789-1.html" Kubernetes 架构指南 ====== -学习 Kubernetes 架构中不同组件是如何组合在一起的,这样您就可以更好地排查问题、维护集群健康以及优化工作流。 -![部件、模块、软件容器][1] -使用 Kubernetes 来编排容器,这种描述说起来简单,但理解它的实际含义以及如何实现它完全是另外一回事。如果你正在运行或管理 Kubernetes 集群,那么你就会知道 Kubernetes 由一台称为 _控制平面_ 的机器和许多其他 _工作节点_ 机器组成。每种类型都有一个复杂但稳定的堆栈,这使编排成为可能,熟悉每个组件有助于理解它是如何工作的。 +> 了解 Kubernetes 架构中不同组件是如何组合在一起的,这样你就可以更好地排查问题、维护一个健康的集群,以及优化工作流。 + +![](https://img.linux.net.cn/data/attachment/album/202207/03/105135ey33hhx022m9y9fr.jpg) + +使用 Kubernetes 来编排容器,这种描述说起来简单,但理解它的实际含义以及如何实现它完全是另外一回事。如果你正在运行或管理 Kubernetes 集群,那么你就会知道 Kubernetes 由一台称为 “控制平面control plane” 的机器和许多其他 工作节点worker node 机器组成。每种类型都有一个复杂但稳定的堆栈,这使编排成为可能,熟悉每个组件有助于理解它是如何工作的。 ![Kubernetes 架构图][2] -(Nived Velayudhan, [CC BY-SA 4.0][3]) +*(Nived Velayudhan, [CC BY-SA 4.0][3])* ### 控制平面组件 -Kubernetes 安装在一个称为控制平面的机器上,它会运行 Kubernetes 守护进程,并在启动容器和容器组时与之通信。下面介绍控制平面的各个组件。 +Kubernetes 安装在一个称为“控制平面control plane”的机器上,它会运行 Kubernetes 守护进程,并在启动容器和容器组pod时与之通信。下面介绍控制平面的各个组件。 -#### Etcd +#### etcd -Etcd 是一种快速、分布式一致性键值存储器,用作 Kubernetes 对象数据的持久存储,如 容器组 、副本控制器、密钥和服务。Etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一与 etcd 直连的组件是 Kubernetes API 服务器。其他所有组件都通过 API 服务器间接的从 etcd 读写数据。 +etcd 是一种快速、分布式一致性键值存储器,用作 Kubernetes 对象数据的持久存储,如容器组、副本控制器、密钥和服务。etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一与 etcd 直连的组件是 Kubernetes API 服务器。其他所有组件都通过 API 服务器间接的从 etcd 读写数据。 -Etcd 还实现了一个监控功能,它提供了一个基于事件的接口,用于异步监控密钥的更改。一旦你更改了一个密钥,它的监控者就会收到通知。API 服务器组件严重依赖于此来获得通知,并将 etcd 变更至期望状态。 +etcd 还实现了一个监控功能,它提供了一个基于事件的接口,用于异步监控键的更改。一旦你更改了一个键,它的监控者就会收到通知。API 服务器组件严重依赖于此来获得通知,并将 etcd 变更至期望状态。 _为什么 etcd 实例的数量应该是奇数?_ -你通常会运行三个、五个或七个 etcd 实例实现高可用(HA)环境,但这是为什么呢?因为 etcd 是分布式数据存储,可以水平扩展它,但你需要确保每个实例中的数据是一致的。因此,需要为系统当前状态达成共识,Etcd 为此使用 [RAFT 共识算法][4]。 +你通常会运行三个、五个或七个 etcd 实例实现高可用(HA)环境,但这是为什么呢?因为 etcd 是分布式数据存储,可以水平扩展它,但你需要确保每个实例中的数据是一致的。因此,需要为系统当前状态达成共识,etcd 为此使用 [RAFT 共识算法][4]。 RAFT 算法需要经过选举(或仲裁)集群才能进入下一个状态。如果你只有两个 etcd 实例并且他们其中一个失败的话,那么 etcd 集群无法转换到新的状态,因为不存在过半这个概念。如果你有三个 etcd 实例,一个实例可能会失败,但仍有 2 个实例可用于进行选举。 @@ -41,9 +43,9 @@ API 服务器是 Kubernetes 中唯一直接与 etcd 交互的组件。Kubernetes * 提供在 etcd 中存储对象的一致方式。 * 执行验证对象,防止客户端存储配置不正确的对象(如果它们直接写入 etcd 数据存储,可能会发生这种情况)。 * 提供 RESTful API 来创建、更新、修改或删除资源。 - * 提供[乐观并发锁][5],在发生更新时,其他客户端永远不会有机会重写对象。 + * 提供 [乐观并发锁][5],在发生更新时,其他客户端永远不会有机会重写对象。 * 对客户端发送的请求进行身份验证和授权。它使用插件提取客户端的用户名、ID、所属组,并确定通过身份验证的用户是否可以对请求的资源执行请求的操作。 - * 如果请求试图创建、修改或删除资源,则负责[权限控制][6]。例如,AlwaysPullImages、DefaultStorageClass 和 ResourceQuota。 + * 如果请求试图创建、修改或删除资源,则负责 [权限控制][6]。例如,AlwaysPullImages、DefaultStorageClass 和 ResourceQuota。 * 实现了一种监控机制(类似于 etcd),用户客户端监控更改。这允许调度器和控制器管理器等组件以松耦合的方式与 API 服务器交互。 #### 控制器管理器 @@ -52,50 +54,41 @@ API 服务器是 Kubernetes 中唯一直接与 etcd 交互的组件。Kubernetes 控制器示例: - * 副本管理器(管理副本管理器 资源的控制器) - * 副本控制器、守护进程集 和 任务控制器 - * 无状态负载控制器 + * 副本管理器(管理副本控制器ReplicationController资源的控制器) + * 副本集ReplicaSet守护进程集DaemonSet 和任务控制器 + * 部署控制器 * 有状态负载控制器 * 节点控制器 * 服务控制器 * 接入点控制器 * 命名空间控制器 - * 持久卷控制器 - + * 持久卷PersistentVolume控制器 控制器通过监控机制来获得变更通知。它们监视 API 服务器对资源的变更,对每次更改执行操作,无论是新建对象还是更新或删除现有对象。大多数时候,这些操作包括创建其他资源或更新监控的资源本身。不过,由于使用监控并不能保证控制器不会错过任何事件,它们还会定期执行一系列操作,确保没有错过任何事件。 -控制器管理器还执行生命周期功能。例如命名空间创建和生命周期、事件垃圾收集、终止吊舱垃圾收集、[级联删除垃圾收集][7]和节点垃圾收集。有关更多信息,参考[云控制器管理器][8]。 +控制器管理器还执行生命周期功能。例如命名空间创建和生命周期、事件垃圾收集、已终止容器组垃圾收集、[级联删除垃圾收集][7] 和节点垃圾收集。有关更多信息,参考 [云控制器管理器][8]。 #### 调度器 调度器是一个将容器组分配给节点的控制平面进程。它会监视新创建没有分配节点的容器组。调度器会给每个发现的容器组分配运行它的最佳节点。 -满足容器组调度要求的节点称为可调度节点。如果没有合适的节点,那么容器组会一直处于未调度状态,直到调度器可以放置它。一旦找到可调度节点,它就会运行一组函数来对节点进行评分,并选择得分最高的节点,然后它会告诉 API 服务器所选节点的信息。这个过程称为绑定。 +满足容器组调度要求的节点称为可调度节点。如果没有合适的节点,那么容器组会一直处于未调度状态,直到调度器可以安置它。一旦找到可调度节点,它就会运行一组函数来对节点进行评分,并选择得分最高的节点,然后它会告诉 API 服务器所选节点的信息。这个过程称为绑定。 节点的选择分为两步: 1. 过滤所有节点的列表,获得可以调度容器组的节点列表(例如,PodFitsResources 过滤器检查候选节点是否有足够的可用资源来满足容器组的特定资源请求)。 - 2. 对第一步得到的节点列表进行评分和排序,选择最佳节点。如果得分最高的有多个节点,循环过程可确保容器组会均匀地部署在所有节点上。 调度决策要考虑的因素包括: * 容器组是否请求硬件/软件资源?节点是否报告内存或磁盘压力情况? - * 节点是否有与容器组规范中的节点选择器匹配的标签? - * 如果容器组请求绑定到特定地主机端口,该端口是否可用? - * 容器组是否容忍节点的污点? - * 容器组是否指定节点亲和性或反亲和性规则? - 调度器不会指示所选节点运行容器组。调度器所做的就是通过 API 服务器更新容器组定义。然后 API 服务器通过监控机制通知 kubelet 容器组已被调度,然后目标节点上的 kubelet 服务看到容器组被调度到它的节点,它创建并运行容器组。 -**[ 下一篇: [Kubernetes 如何创建和运行容器: 图解指南][9] ]** - ### 工作节点组件 工作节点运行 kubelet 代理,这允许控制平面接纳它们来处理负载。与控制平面类似,工作节点使用几个不同的组件来实现这一点。 以下部分描述了工作节点组件。 @@ -107,13 +100,9 @@ Kubelet 是一个运行在集群中每个节点上的代理,负责在工作节 kubelet服务的主要功能有: * 通过在 API 服务器中创建节点资源来注册它正在运行的节点。 - - * 持续监控 API 服务器上调度到节点的容器组 。 - + * 持续监控 API 服务器上调度到节点的容器组。 * 使用配置的容器运行时启动容器组的容器。 - * 持续监控正在运行的容器,并将其状态、事件和资源消耗报告给 API 服务器。 - * 运行容器存活探测,在探测失败时重启容器,当 API 服务器中删除容器组时终止(通知服务器容器组终止的消息)。 #### 服务代理 @@ -122,46 +111,34 @@ kubelet服务的主要功能有: kube-proxy 之所以叫代理,是因为它最初实际上是一个代理服务器,用于接受连接并将它们代理到容器组。当前的实现是使用 iptables 规则将数据包重定向到随机选择的后端容器组,而无需通过实际的代理服务器。 -它工作原理的高级视图: +关于它工作原理的高级视图: * 当你创建一个服务时,会立即分配一个虚拟 IP 地址。 - * API 服务器会通知在工作节点上运行的 kube-proxy 代理有一个新服务。 - * 每个 kube-proxy 通过设置 iptables 规则使服务可寻址,确保截获每个服务 IP/端口对,并将目的地址修改为支持服务的一个容器组。 - * 监控 API 服务器对服务或其端点对象的更改。 #### 容器运行时 容器运行时有两类: - * **较低级别的容器运行时:** 它们主要关注运行中的容器并为容器设置命名空间和 cgroup。 - - * **更高级别的容器运行时(容器引擎):**它们专注于格式、解包、管理、共享镜像以及为开发人员提供 API。 + * **较低级别的容器运行时:** 它们主要关注运行中的容器并为容器设置命名空间和控制组cgroup。 + * **更高级别的容器运行时(容器引擎):** 它们专注于格式、解包、管理、共享镜像以及为开发人员提供 API。 容器运行时负责: * 如果容器镜像本地不存在,则从镜像仓库中提取。 - * 将镜像解压到写时复制文件系统,所有容器层叠加创建一个合并的文件系统。 - * 准备一个容器挂载点。 - * 设置容器镜像的元数据,如覆盖命令、用户输入的入口命令,并设置 SECCOMP 规则,确保容器按预期运行。 - * 通知内核将进程、网络和文件系统等隔离分配给容器。 - * 通知内核分配一些资源限制,如 CPU 或内存限制。 - * 将系统调用(syscall)传递给内核启动容器。 - * 确保 SElinux/AppArmor 设置正确。 - ### 协同 -系统级组件协同工作,确保 Kubernetes 集群的每个部分都能实现其目和执行其功能。当你深入编辑 [YAML 文件][10]时,有时很难理解请求是如何在集群中通信的。现在你已经了解了各个部分是如何组合在一起的,你可以更好地理解 Kubernetes 内部发生了什么,这有助于诊断问题、维护健康的集群并优化你的工作流。 +系统级组件协同工作,确保 Kubernetes 集群的每个部分都能实现其目和执行其功能。当你深入编辑 [YAML 文件][10] 时,有时很难理解请求是如何在集群中通信的。现在你已经了解了各个部分是如何组合在一起的,你可以更好地理解 Kubernetes 内部发生了什么,这有助于诊断问题、维护健康的集群并优化你的工作流。 -------------------------------------------------------------------------------- @@ -180,7 +157,7 @@ via: https://opensource.com/article/22/2/kubernetes-architecture [2]: https://opensource.com/sites/default/files/uploads/kubernetes-architecture-diagram.png (Kubernetes architecture diagram) [3]: https://creativecommons.org/licenses/by-sa/4.0/ [4]: https://www.geeksforgeeks.org/raft-consensus-algorithm/ -[5]: https://stackoverflow.com/questions/52910322/kubernetes-resource-versioning#:~:text=Optimistic%20concurrency%20control%20(sometimes%20referred,updated%2C%20the%20version%20number%20increases. +[5]: https://stackoverflow.com/questions/52910322/kubernetes-resource-versioning#:~:text=Optimistic%20concurrency%20control%20\(sometimes%20referred,updated%2C%20the%20version%20number%20increases. [6]: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ [7]: https://kubernetes.io/docs/concepts/architecture/garbage-collection/ [8]: https://kubernetes.io/docs/concepts/architecture/cloud-controller/ From ed78a4924de4b59b94a2803f4fd44690093eae1c Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 07:27:39 +0800 Subject: [PATCH 0229/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220703=2010=20Necessary=20Ubuntu=20Apps=20For=20Ev?= =?UTF-8?q?eryone=20[Part=203].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ssary Ubuntu Apps For Everyone [Part 3].md | 312 ++++++++++++++++++ 1 file changed, 312 insertions(+) create mode 100644 sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md diff --git a/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md b/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md new file mode 100644 index 0000000000..47dca49396 --- /dev/null +++ b/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md @@ -0,0 +1,312 @@ +[#]: subject: "10 Necessary Ubuntu Apps For Everyone [Part 3]" +[#]: via: "https://www.debugpoint.com/necessary-ubuntu-apps-2022" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Necessary Ubuntu Apps For Everyone [Part 3] +====== +This article lists the top 10 necessary Ubuntu apps for your daily workflow. + +We often forget that thousands of free and open-source applications can compete with other commercial counterparts in their category. Moreover, if you are a Windows user and thinking about getting rid of Windows completely, you should also be aware of such apps beforehand. + +Hence, in this article series of “necessary Ubuntu apps”, we are featuring ten apps for much-needed awareness among Linux users. + +This is part 3 of this Ubuntu Apps series. If you missed the earlier parts, you can read them here, Or navigate from the Menu above. + +* [Part 1][1] +* [Part 2][2] + +### Best Ubuntu Apps in 2022 – Part 3 + +#### Guake + +Ever wanted to quickly open a terminal with a quick keyboard shortcut while you are middle of a vital workflow? This Top-Down terminal app Guake helps you to do that. If you are busy working on an essay, editing a video, debugging a code in your favourite code editor and want to quickly check something in the terminal and then go back to work – Guake can help you do that. Just press F12 and a terminal will pop up, and press F12 again, and it will go away—no need to launch/close a separate terminal instance. + +![Guake Running in Ubuntu][3] + +For Ubuntu and other related distros, you can run the below command to install. For further download options, visit [this page][4]. + +``` +sudo apt install guake +``` + +**More information about Guake:** + +* [Home page][5] +* [Source code][6] + +#### Safe Eyes + +Eyes are precious, and if you are a user with long work hours on Laptop/Desktop, you should also take care of your eyes. While there are other methods, this app, Safe Eyes, can help reduce and prevent repetitive strain injury. + +Safe Eyes app gives you pop-up instruction with activities such as ‘rotate your eyes clockwise for 10 seconds’ during your work. + +I think it is one of the necessary Ubuntu apps everyone should try. + +![Safe Eyes][7] + +Installing safe eyes is easy to install in Ubuntu via PPA. You can open a terminal prompt and run the following commands to install this app. + +``` +sudo add-apt-repository ppa:slgobinath/safeeyessudo apt updatesudo apt install safeeyes +``` + +For other download, options visit [this page][8]. + +**More details:** + +* [Home page][9] +* [Source code][10] + +#### Tusk + +Note-taking apps are plenty. Moreover, all the Linux distributions, including Ubuntu, always bring a basic text editor. But for advanced note-taking, you need a specialized app. + +Tusk is a modern Evernote desktop app available for Ubuntu/Linux. It comes with plenty of themes such as Light, Sepia, and Dark – it is loaded with features such as: + +* Local and global customizable keyboard shortcuts +* Update notification +* A cross-platform app built on electron +* Scalable interface (zoom-in and out) +* Black, light and sepia themes +* Focus mode and auto night mode +* Export options of notes to HTML, PDF, and mark down files + +![Tusk][11] + +This application is available as AppImage, Deb and RPM files for Linux distributions. You can download the deb file from the below link and run it to install it in Ubuntu. For other download options, visit [this page][12]. + +[Download Tusk][13] + +**More information about Tusk**: + +* [Home page][14] +* [Source code][15] + +#### Krita + +If you are an artist or learning to draw in Linux, your must-have application is Krita. Krita brings a vast selection of drawing tools, including advanced modes such as pressure-sensitive drawing. In addition, you can also use Krita on touch-based tablet devices. Some of its unique features include: + +* Customizable toolbar and docks +* Save your workspace as a file +* Light and dark theme +* Built-in vector engine, a vast set of brushes +* Brush engine with stabilization +* Support for PhotoShop Document (PSD) +* Full-colour support +* Extend your workflow with Python script + +![Krita Drawing Program][16] + +Installing Krita is easy because it is available for all Linux distribution’s official repo. For Ubuntu, you can search in Software and install it. If you prefer the terminal, you can also run the following command for installation. + +``` +sudo apt install krita +``` + +For more details about Krita, visit the following pages: + +* [Home page][17] +* [Documentation and learning][18] +* [Source code][19] + +#### Foliate + +When you think about e-book readers, always Calibre comes to mind. But there is another stunning GNOME app – Foliate. Foliate is a modern e-book reader written in GTK which brings exciting features such as custom colours of your pages, brightness, multicolumn support and more. In addition, it supports epub, Amazon Kindle, Fiction book, comic book archive and Mobipocket formats to give you complete control of your collection. + +It’s a must-have app if you want a nice and sleek e-book reader. + +![Foliate][20] + +Installing Foliate is easy, using Flatpak for all Linux distros. First, you need to [set up Flatpak][21] and click on the below button to install. + +[Download Foliate][22] + +**More information**: + +* [Home page][23] +* [Source code][24] + +#### Bitwarden + +On average, every person has at least 10+ online accounts and passwords. And the more you are tech-savvy, the number of passwords you have to manage increases. Using a password manager is always recommended to protect your data and passwords. Hence the next app in this list is the best password manager available today, i.e. Bitwarden. + +Bitwarden is a free and open-source password manager that helps you generate, store and protect your online credentials easily. Backed by AES-256 encryption, Bitwarden also syncs passwords among multiple devices such as mobile phones and tabs. + +![Bitwarden Password Manager desktop client][25] + +You can download the self-contained executable AppImage file from [this page][26]. Also, if you plan to access it in your favourite browser, you can get it there. + +More information about Bitwarden: + +* [Home page][27] +* [Help and documentation][28] + +#### Brave Browser + +Brave is a Chromium-based privacy-centric web browser. It is perfect for users who want complete control of their online activities. Brave comes with a built-in ad blocker, incognito browsing, VPN, and Tor mode for more anonymous browsing. + +Recently, Brave browser also introduced an email service, which you can access right from the browser itself. Furthermore, it brings some advantages over Firefox, Google Chrome and Safari. + +![Brave Browser][29] + +Installing the Brave browser requires additional commands from the terminal for Ubuntu Linux. You can find the detailed download instructions [here][30]. + +For more details, visit the official [home page][31]. + +#### Mailspring + +If you are looking for a friendly and productive desktop email client for Linux which supports all email protocols, then try Mailspring. + +Mailspring brings multiple account support, a unified mailbox, and touch and gesture support. In addition, it supports Microsoft Office 365, one of the best advantages of this email client in Linux systems. Moreover, features such as fast search, translations, undo send (recall), and built-in spell-check make it one of the best email clients. + +It also comes with a paid version with a minimal monthly fee and additional features such as company profile creation, link tracking, read receipt, templates and insights. The insights feature in the pro version gives details about when you receive more emails during the day. + +![Mailspring Email Client][32] + +This application is available as a Snap and Deb file for Ubuntu and related Linux. + +For the Snap package, visit the official Snapcraft page [here][33] and install it. + +And for the deb package, click here to download it. After download, you can double-click the deb package to install via Software in Ubuntu. + +For more details, refer to the following pages. + +* [Home page][34] +* [Other download options][35] (Fedora Linux, Windows and macOS) + +#### Blender + +I’m sure you have heard about Blender. Blender is one of the free and open-source professional-grade graphic design software which is capable of doing almost everything that you need for your graphics project. + +![Blender Video Editor][36] + +You can create animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, and computer games. Blender’s features include 3D modelling, UV unwrapping, texturing, raster graphics editing, rigging and skinning, fluid and smoke simulation, particle simulation, soft body simulation, sculpting, animating, match moving, rendering, motion graphics, video editing, and compositing. + +It is a professional-grade application which is still free and open-source. + +For easy installation in Ubuntu, open Software, search for Blender, and then hit install. Alternatively, you can also open a terminal window and run the following command to install. + +``` +sudo apt install blender +``` + +This software is available for Windows, macOS and other platforms. You can visit the [official download page][37] for more details. + +**More information:** + +* [Home page][38] +* [Detailed Feature highlights][39] +* [Documentation][40] + +#### Ungoogled Chromium + +If you want a clean browser free from Google apps and services, you should try out the Ungoogled Chromium browser. It’s a drop-in replacement for the stock Chromium experience without the Google integrated services. + +For example, it is free of all pre-compiled binaries from the code and all Google integration and also disables features requiring manual enabling for better control. + +Perhaps a well-suited browser is the best Chromium experience. + +![Ungoogled-Chromium][41] + +Installing Ungoogled Chromium is easy using Flatpak. First, set up[Flatpak][42] and install this browser using the following command. + +``` +flatpak install flathub com.github.Eloston.UngoogledChromium +``` + +To learn more, visit the [official GitHub page][43] of this browser. + +#### Tilix + +![Tilix Terminal Window][44] + +The final app in this necessary Ubuntu apps list is Tilix. Tilix is a tiling window-based terminal emulator which is based on GTK. It comes with custom titles, additional notification support (for command completion) and transparent background image support. In addition, Tilix also enables you to add a custom image background in the terminal window. Finally, you can create multiple terminal panes side-by-side in a single window. + +An advanced terminal is written in GTK, which you may find productive. + +Installation packages are available for all Linux distributions. For Ubuntu and related distros, run the following command to install. + +``` +sudo apt install tilix +``` + +For more details, visit the Tilix [home page][45]. + +### Closing Notes + +This completes part 3 of a 5-part series of best Ubuntu Apps in 2022. I hope you get to install and use some of these applications in Ubuntu and other distros for your daily productive output. Also, let me know which apps you pick from this list as your best in the comment box below. + +Finally, stay tuned for part 4 of this Ubuntu apps series. If you missed the other parts, you could read them here: + +* [Part 1][46] +* [Part 2][47] + +Cheers. + +*Some image credits: Respected app developers/teams.* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/necessary-ubuntu-apps-2022 + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ +[2]: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ +[3]: https://www.debugpoint.com/wp-content/uploads/2018/09/Guake-Running-in-Ubuntu.gif +[4]: https://guake.readthedocs.io/en/latest/user/installing.html#system-wide-installation +[5]: http://guake-project.org/ +[6]: https://github.com/Guake/guake +[7]: https://www.debugpoint.com/wp-content/uploads/2018/09/Safe-Eyes.gif +[8]: https://slgobinath.github.io/SafeEyes/ +[9]: https://slgobinath.github.io/SafeEyes/ +[10]: https://github.com/slgobinath/SafeEyes +[11]: https://www.debugpoint.com/wp-content/uploads/2018/09/Tusk.gif +[12]: https://github.com/klaussinani/tusk/releases/ +[13]: https://github.com/klaussinani/tusk/releases/download/v0.23.0/tusk_0.23.0_amd64.deb +[14]: https://klaussinani.github.io/tusk/ +[15]: https://github.com/klaussinani/tusk +[16]: https://www.debugpoint.com/wp-content/uploads/2022/07/Krita-Drawing-Program.jpg +[17]: https://krita.org/en/ +[18]: https://docs.krita.org/en/ +[19]: https://invent.kde.org/graphics/krita +[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Foliate.jpg +[21]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[22]: https://dl.flathub.org/repo/appstream/com.github.johnfactotum.Foliate.flatpakref +[23]: https://johnfactotum.github.io/foliate/ +[24]: https://github.com/johnfactotum/foliate +[25]: https://www.debugpoint.com/wp-content/uploads/2022/07/Bitwarden-Password-Manager-desktop-client.jpg +[26]: https://bitwarden.com/download/ +[27]: https://bitwarden.com/help/ +[28]: https://bitwarden.com/help/ +[29]: https://www.debugpoint.com/wp-content/uploads/2022/07/Brave-Browser.jpg +[30]: https://brave.com/linux/#release-channel-installation +[31]: https://brave.com +[32]: https://www.debugpoint.com/wp-content/uploads/2022/07/Mailspring-Email-Client.jpg +[33]: https://snapcraft.io/mailspring +[34]: https://getmailspring.com/ +[35]: https://getmailspring.com/download +[36]: https://www.debugpoint.com/wp-content/uploads/2019/09/Blender-Video-Editor.jpg +[37]: https://www.blender.org/download/ +[38]: https://www.blender.org/ +[39]: https://www.blender.org/features/ +[40]: https://www.blender.org/get-involved/documenters/ +[41]: https://www.debugpoint.com/wp-content/uploads/2022/07/Ungoogled-Chromium.jpg +[42]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[43]: https://github.com/ungoogled-software/ungoogled-chromium#feature-overview +[44]: https://www.debugpoint.com/wp-content/uploads/2022/07/Tilix-Terminal-Window.jpg +[45]: https://gnunn1.github.io/tilix-web/ +[46]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ +[47]: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ From 9428f873d02404aadba6683b0a134dacaf3dbf3a Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 08:02:06 +0800 Subject: [PATCH 0230/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220606=2010=20Best=20Ubuntu=20Apps=20for=20Everyon?= =?UTF-8?q?e=20in=202022=20[Part=202].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...untu Apps for Everyone in 2022 [Part 2].md | 173 +++++++++--------- 1 file changed, 91 insertions(+), 82 deletions(-) diff --git a/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md index 65fc52ec0f..1a82072927 100644 --- a/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md +++ b/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md @@ -1,5 +1,5 @@ [#]: subject: "10 Best Ubuntu Apps for Everyone in 2022 [Part 2]" -[#]: via: "https://www.debugpoint.com/2022/06/best-ubuntu-apps-2022-part2/" +[#]: via: "https://www.debugpoint.com/best-ubuntu-apps-2022-part2/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: " " @@ -15,21 +15,24 @@ If you plan to migrate to Linux permanently, you should be happy knowing that th Hence, in this article series, we are highlighting a set of Ubuntu apps at a time to increase collaboration and awareness among the user base. -This is part 2 of the Ubuntu Apps series. +This is part 2 of the Ubuntu Apps series. If you missed the other parts in this series, read them here: + +* [Part 1][1] +* [Part 3][2] ### Best Ubuntu Apps in 2022 – Part 2 #### 1. OBS Studio -The first application is the famous [streaming application][1] – OBS Studio. It is a free and open-source application primarily used for streaming over the internet. In addition, using this application, you can create a complex streaming project using multiple sources, overlay banners and more. +The first application is the famous [streaming application][3] – OBS Studio. It is a free and open-source application primarily used for streaming over the internet. In addition, using this application, you can create a complex streaming project using multiple sources, overlay banners and more. Furthermore, thanks to its support of “Real-Time Messaging Protocol” (RTMP), you can use this app to stream on Facebook, YouTube, Twitch and another supported platform. This decade-old application is one of the best apps for Linux. -![OBS Studio][2] +![OBS Studio][4] -You can learn more about OBS Studio here at the [official home page][3] and download or install it via the below methods. +You can learn more about OBS Studio here at the [official home page][5] and download or install it via the below methods. Via PPA in Ubuntu and related distribution: @@ -39,21 +42,21 @@ sudo apt update sudo apt install obs-studio ``` -If you wish for Flatpak, then [setup your system for Flatpak][4] and [install via this page][5]. +If you wish for Flatpak, then [setup your system for Flatpak][6] and [install via this page][7]. -For Arch Linux and others, [visit this page for more information.][6] +For Arch Linux and others, [visit this page for more information.][8] #### 2. Inkscape The second application in this is the popular Inkscape application. Inkscape is a free and cross-platform vector graphics editor. It is primarily used to create scalable vector graphics. In addition, it is a world-class application which uses basic vector shapes such as rectangles, polygons, spirals and more. You can create world-class drawings using these primitive shapes and their additional tools (see below). -Furthermore, you can also create [stunning animations][7] using Inkscape with sufficient skills. It is one of the must-have applications for artists. +Furthermore, you can also create [stunning animations][9] using Inkscape with sufficient skills. It is one of the must-have applications for artists. -![Sample Image – credit-Inkscape][8] +![Sample Image – credit-Inkscape][10] -![Inkscape][9] +![Inkscape][11] -You can learn more about Inkscape here at the [official home page][10] and download or install it via the below methods. +You can learn more about Inkscape here at the [official home page][12] and download or install it via the below methods. Via PPA in Ubuntu and other Linux distributions: @@ -63,19 +66,19 @@ sudo apt update sudo apt install inkscape ``` -For other download methods, visit [this page][11]. +For other download methods, visit [this page][13]. #### 3. GIMP -The GIMP aka GNU Image Manipulation Program is a raster graphics editor which is sometimes considered a debatable-[Photoshop alternative][12] in the Linux world. In addition, this two-decade-old application is perfect for basic to advanced image editing. Moreover, it supports layers, filters, decorations, and other advanced image editing features essential for a photography workflow. +The GIMP aka GNU Image Manipulation Program is a raster graphics editor which is sometimes considered a debatable-[Photoshop alternative][14] in the Linux world. In addition, this two-decade-old application is perfect for basic to advanced image editing. Moreover, it supports layers, filters, decorations, and other advanced image editing features essential for a photography workflow. -![GIMP Image Editor][13] +![GIMP Image Editor][15] -A great way to learn more about GIMP is at the [official home page][14]and download or install via the below methods. +A great way to learn more about GIMP is at the [official home page][16]and download or install via the below methods. -The recommended way is Flatpak to get the latest GIMP version. You can set up[your system][15] for Flatpak and [click here to install][16]. +The recommended way is Flatpak to get the latest GIMP version. You can set up[your system][17] for Flatpak and [click here to install][18]. -For more download options, visit [this page][17]. +For more download options, visit [this page][19]. #### 4. Spotify @@ -85,7 +88,7 @@ Firstly, to access the Spotify streaming service, you need a client. Secondly, I You can listen to millions of songs on your Linux desktop by installing the desktop client. For Linux distributions, you can install the Spotify client from various sources. -![Spotify Client in Ubuntu][18] +![Spotify Client in Ubuntu][20] The recommended method for Ubuntu and other Linux is using the Snap package. You can install it via the below command. @@ -99,7 +102,7 @@ If you prefer the native deb package, you can install it using the below command curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add -echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list ``` -There is also an unofficial [Flatpak package available][19], which you can take advantage of. +There is also an unofficial [Flatpak package available][21], which you can take advantage of. #### 5. SimpleScreen recorder @@ -107,9 +110,9 @@ The simplescreenrecorder is perhaps the best open-source screen recorder availab Furthermore, you can also specify the auto/video bit rate, audio source options and different output options. Finally, it is available to install in all Linux distributions. -![SimpleScreenRecorder][20] +![SimpleScreenRecorder][22] -The [official home page][21] contains more details about SimpleScreenRecorder, and you can download it using the below methods. +The [official home page][23] contains more details about SimpleScreenRecorder, and you can download it using the below methods. Using the PPA commands below, you can install this application in Ubuntu and other related distributions. @@ -117,18 +120,18 @@ Using the PPA commands below, you can install this application in Ubuntu and oth sudo apt-get updatesudo apt-get install simplescreenrecorder ``` -For additional download instructions, visit [this page][22]. +For additional download instructions, visit [this page][24]. #### 6. Calibre Calibre is a free and open-source e-book library management application available in Ubuntu, Linux Mint and other Linux platforms. It brings library management, e-book conversion, sync to your e-book devices and more unique features. Moreover, you can download news and other articles from the web and convert them to e-book formats using Calibre. In addition, it supports a wide range of e-book formats for management. Calibre is one of the best e-book management applications with all these features. -![Calibre][23] +![Calibre][25] -A lot of documentation and tutorials are available on the [home page of Calibre][24], and you can download them using the below means. +A lot of documentation and tutorials are available on the [home page of Calibre][26], and you can download them using the below means. -* [Download for Linux distributions][25] -* [Download for other operating systems][26] +* [Download for Linux distributions][27] +* [Download for other operating systems][28] #### 7. Scribus @@ -136,9 +139,9 @@ Desktop publishing changed over the years. Today, there are several applications And it is still in active development. -![Scribus][27] +![Scribus][29] -You can learn more about Scribus here at the [official home page][28] and download or install it via the below methods. +You can learn more about Scribus here at the [official home page][30] and download or install it via the below methods. Scribus is in the main repo for Ubuntu and other related distributions. You can run the below command to install. @@ -146,19 +149,19 @@ Scribus is in the main repo for Ubuntu and other related distributions. You can sudo apt install scribus ``` -For other download options, visit [this page][29]. +For other download options, visit [this page][31]. #### 8. MyPaint The eighth application in this is MyPaint. MyPaint is a free and open-source drawing program for digital artists. MyPaint supports and can be used in pressure-sensitive tablets and devices. In addition, its unique distraction-free design lets you focus on the drawing instead of the application. Furthermore, it brings a real pencil and brushes emulation with a wide range of brushes, colours and layers. -![MyPaint 2.0.1][30] +![MyPaint 2.0.1][32] -For more information, visit the [official homepage][31] of MyPaint and download using the below methods. +For more information, visit the [official homepage][33] of MyPaint and download using the below methods. -The recommended install method is Flatpak. You can set up your [system for Flatpak][32] and install it by [clicking here][33]. +The recommended install method is Flatpak. You can set up your [system for Flatpak][34] and install it by [clicking here][35]. -For other download options, visit [this page][34]. +For other download options, visit [this page][36]. #### 9. LibreOffice @@ -168,11 +171,11 @@ In addition to that, LibreOffice features two editions. Firstly, the community e LibreOffice office suite is installed by default in Ubuntu. -![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][35] +![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][37] -[LibreOffice’s official documentation][36] is vast, and you can go through them through any means, including its [friendly forum][37]. You can download LibreOffice [from here][38]. +[LibreOffice’s official documentation][38] is vast, and you can go through them through any means, including its [friendly forum][39]. You can download LibreOffice [from here][40]. -Also, if you are planning to upgrade LibreOffice, you can [visit our guide here][39]. +Also, if you are planning to upgrade LibreOffice, you can [visit our guide here][41]. #### 10. Cawbird @@ -180,21 +183,24 @@ If you are a heavy Twitter user, you may consider a desktop app. Cawbird is a de However, due to Twitter API limitations, it refreshes every two minutes and several other restrictions such as no notification for follows, unfollows, block, mute and other features. Twitter imposed these limitations. -![Cawbird][40] +![Cawbird][42] -Finally, you can download the Cawbird for all Linux distributions using the [link present here][41]. +Finally, you can download the Cawbird for all Linux distributions using the [link present here][43]. ### Closing Notes This concludes part 2 of a 5-part series of best Ubuntu Apps in 2022. I expect you get to install and use some of these applications in Ubuntu and other distros for your daily work. Also, let me know which apps you prefer from this list in the comment box below. -Finally, stay tuned for part 3 of this Ubuntu apps series. If you missed part 1, you could read it here – “[Essential Ubuntu Apps in 2022 – Part 1][42]“. +Finally, stay tuned for part 3 of this Ubuntu apps series. If you missed the other parts of this series, you can read them here: + +* [Part 1][44] +* [Part 3][45] Cheers. -------------------------------------------------------------------------------- -via: https://www.debugpoint.com/2022/06/best-ubuntu-apps-2022-part2/ +via: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ 作者:[Arindam][a] 选题:[lkxed][b] @@ -205,45 +211,48 @@ via: https://www.debugpoint.com/2022/06/best-ubuntu-apps-2022-part2/ [a]: https://www.debugpoint.com/author/admin1/ [b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/06/OBS-Studio.jpg -[3]: https://obsproject.com/ -[4]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[5]: https://flathub.org/apps/details/com.obsproject.Studio -[6]: https://obsproject.com/wiki/unofficial-linux-builds -[7]: https://inkscape.org/gallery/ -[8]: https://www.debugpoint.com/wp-content/uploads/2022/06/Sample-Image-credit-Inkscape.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2018/09/Inkscape-Running.png -[10]: https://inkscape.org/ -[11]: https://inkscape.org/release/ -[12]: https://www.debugpoint.com/2018/09/3-best-free-photoshop-alternatives-ubuntu-linux/ -[13]: https://www.debugpoint.com/wp-content/uploads/2018/09/GIMP-Running.png -[14]: https://www.gimp.org/ -[15]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[16]: https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref -[17]: https://www.gimp.org/downloads/ -[18]: https://www.debugpoint.com/wp-content/uploads/2022/06/Spotify-Client-in-Ubuntu.jpg -[19]: https://flathub.org/apps/details/com.spotify.Client -[20]: https://www.debugpoint.com/wp-content/uploads/2022/06/SimpleScreenRecorder.jpg -[21]: https://www.maartenbaert.be/simplescreenrecorder/ -[22]: https://www.maartenbaert.be/simplescreenrecorder/#download -[23]: https://www.debugpoint.com/wp-content/uploads/2019/11/Calibre.png -[24]: https://calibre-ebook.com/ -[25]: https://calibre-ebook.com/download_linux -[26]: https://calibre-ebook.com/download -[27]: https://www.debugpoint.com/wp-content/uploads/2022/06/Scribus.jpg -[28]: https://www.scribus.net/ -[29]: https://www.scribus.net/downloads/stable-branch/ -[30]: https://www.debugpoint.com/wp-content/uploads/2020/05/MyPaint-2.0.1.png -[31]: http://mypaint.org/ -[32]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[33]: https://flathub.org/repo/appstream/org.mypaint.MyPaint.flatpakref -[34]: http://mypaint.org/downloads/ -[35]: https://www.debugpoint.com/wp-content/uploads/2019/09/LibreOffice-7.3.x-Community-Edition-in-Ubuntu-22.04-LTS-Jammy-Jellyfish.jpg -[36]: https://help.libreoffice.org/latest/index.html -[37]: https://ask.libreoffice.org/ -[38]: https://www.libreoffice.org/download/download/ -[39]: https://www.debugpoint.com/2022/06/libreoffice-upgrade-update-latest/ -[40]: https://www.debugpoint.com/wp-content/uploads/2022/06/Cawbird.jpg -[41]: https://software.opensuse.org//download.html?project=home%3AIBBoard%3Acawbird&package=cawbird -[42]: https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/ +[1]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ +[2]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ +[3]: https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/OBS-Studio.jpg +[5]: https://obsproject.com/ +[6]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[7]: https://flathub.org/apps/details/com.obsproject.Studio +[8]: https://obsproject.com/wiki/unofficial-linux-builds +[9]: https://inkscape.org/gallery/ +[10]: https://www.debugpoint.com/wp-content/uploads/2022/06/Sample-Image-credit-Inkscape.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2018/09/Inkscape-Running.png +[12]: https://inkscape.org/ +[13]: https://inkscape.org/release/ +[14]: https://www.debugpoint.com/2018/09/3-best-free-photoshop-alternatives-ubuntu-linux/ +[15]: https://www.debugpoint.com/wp-content/uploads/2018/09/GIMP-Running.png +[16]: https://www.gimp.org/ +[17]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[18]: https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref +[19]: https://www.gimp.org/downloads/ +[20]: https://www.debugpoint.com/wp-content/uploads/2022/06/Spotify-Client-in-Ubuntu.jpg +[21]: https://flathub.org/apps/details/com.spotify.Client +[22]: https://www.debugpoint.com/wp-content/uploads/2022/06/SimpleScreenRecorder.jpg +[23]: https://www.maartenbaert.be/simplescreenrecorder/ +[24]: https://www.maartenbaert.be/simplescreenrecorder/#download +[25]: https://www.debugpoint.com/wp-content/uploads/2019/11/Calibre.png +[26]: https://calibre-ebook.com/ +[27]: https://calibre-ebook.com/download_linux +[28]: https://calibre-ebook.com/download +[29]: https://www.debugpoint.com/wp-content/uploads/2022/06/Scribus.jpg +[30]: https://www.scribus.net/ +[31]: https://www.scribus.net/downloads/stable-branch/ +[32]: https://www.debugpoint.com/wp-content/uploads/2020/05/MyPaint-2.0.1.png +[33]: http://mypaint.org/ +[34]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[35]: https://flathub.org/repo/appstream/org.mypaint.MyPaint.flatpakref +[36]: http://mypaint.org/downloads/ +[37]: https://www.debugpoint.com/wp-content/uploads/2019/09/LibreOffice-7.3.x-Community-Edition-in-Ubuntu-22.04-LTS-Jammy-Jellyfish.jpg +[38]: https://help.libreoffice.org/latest/index.html +[39]: https://ask.libreoffice.org/ +[40]: https://www.libreoffice.org/download/download/ +[41]: https://www.debugpoint.com/2022/06/libreoffice-upgrade-update-latest/ +[42]: https://www.debugpoint.com/wp-content/uploads/2022/06/Cawbird.jpg +[43]: https://software.opensuse.org//download.html?project=home%3AIBBoard%3Acawbird&package=cawbird +[44]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ +[45]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ From 6abf359491f0e352702e4390ef0997518c7d082b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 4 Jul 2022 08:02:25 +0800 Subject: [PATCH 0231/3123] A --- ...6 New Changes Coming to Nautilus File Manager in GNOME 43.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md b/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md index f0eefb7937..f3211fb752 100644 --- a/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md +++ b/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/gnome-files-43/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e191223c57970b12766ba7fd13d59e3c80300301 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 4 Jul 2022 08:39:17 +0800 Subject: [PATCH 0232/3123] translated --- ...ault Gateway- in Ubuntu and Other Linux.md | 109 ------------------ ...ault Gateway- in Ubuntu and Other Linux.md | 109 ++++++++++++++++++ 2 files changed, 109 insertions(+), 109 deletions(-) delete mode 100644 sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md create mode 100644 translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md diff --git a/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md deleted file mode 100644 index e9d64a6b13..0000000000 --- a/sources/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md +++ /dev/null @@ -1,109 +0,0 @@ -[#]: subject: "Finding Your Router’s IP Address (Default Gateway) in Ubuntu and Other Linux" -[#]: via: "https://itsfoss.com/router-ip-address-linux/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Finding Your Router’s IP Address (Default Gateway) in Ubuntu and Other Linux -====== -You probably already know how to get your system’s IP address in Linux. - -But how do you know the IP address of your router? - -I am not talking about the public-facing IP which you can get by connecting to websites like [Show My IP][1] or simply [searching for ‘what is my ip’][2] in [DuckDuckGo][3]. - -I am talking about the default gateway IP which your Linux desktop uses to connect to it. - -Why do you need it? Well, if you need to change the SSID, password, or other configuration of your wi-fi/network, you have to connect to it. And the simples way is to type the IP address of the router in a web browser and then use the router’s username and password. - -While I cannot help you with the username and password of your router, I can surely tell you how to get its IP. - -As always, I’ll show both GUI and command-line methods. - -### Method 1: Get the router’s IP address in Linux using GUI - -It’s quite simple actually. I am using GNOME desktop with Ubuntu here. If you use some [other desktop environments][4], screenshots may look different. - -Open System Settings: - -![go to settings][5] - -Now go to Wi-Fi or Network (if you are using a wired, Ethernet connection). Here, click on the little settings symbol beside your currently used network. - -![access network settings ubuntu][6] - -It will open a new window with several details about your connection such as the IP address, DNS, and [Mac address][7]. You can also see the [saved wifi password][8] under the security tab. - -You’ll also see an entry named ‘Default Route’. This is what you are looking for. The IP address of your router. - -![defaul gateway ip ubuntu][9] - -Your system and all other devices on your network connect to the router using this IP address. This is the setup most households have. - -Now that I have shown the GUI method, let’s go to the terminal route. - -### Method 2: Get the router’s IP address in Linux command line - -Open a terminal and use the following command: - -``` -ip route -``` - -It will show you a few entries. - -``` -[email protected]:~$ ip route -default via 192.168.1.1 dev wlp0s20f3 proto dhcp metric 600 -169.254.0.0/16 dev wlp0s20f3 scope link metric 1000 -192.168.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.1.34 metric 600 -``` - -The first line, which starts with ‘default via’, gives you the gateway IP. This is your router’s IP address. - -![defaul route linux terminal][10] - -As you can see, 192.168.1.1 is the IP address of my router. Usually, the router’s IP address is the first number of the subnet. However, this is not a hard and fast rule. I have seen routers with x.y.z.30 addresses as well. - -### Bonus tip - -As shared by Samir in the comments, you can also use the ping command to get the gateway IP: - -``` -ping _gateway -``` - -![ping gateway][11] - -In case you didn’t know, you have to [use the Ctrl+C to stop a running command in Linux][12]. - -I hope you find this tip useful when you need it. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/router-ip-address-linux/ - -作者:[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://www.showmyip.com/ -[2]: https://duckduckgo.com/?q=what+is+my+ip&t=h_&ia=answer -[3]: https://itsfoss.com/duckduckgo-easter-eggs/ -[4]: https://itsfoss.com/best-linux-desktop-environments/ -[5]: https://itsfoss.com/wp-content/uploads/2022/02/go_to_settings.jpg -[6]: https://itsfoss.com/wp-content/uploads/2022/06/access-network-settings-ubuntu-800x448.png -[7]: https://itsfoss.com/change-mac-address-linux/ -[8]: https://itsfoss.com/how-to-find-saved-wireless-wifi-passwords-ubuntu/ -[9]: https://itsfoss.com/wp-content/uploads/2022/06/defaul-gateway-ip-ubuntu.png -[10]: https://itsfoss.com/wp-content/uploads/2022/06/defaul-route-linux-terminal.png -[11]: https://itsfoss.com/wp-content/uploads/2022/06/ping-gateway.png -[12]: https://itsfoss.com/stop-program-linux-terminal/ diff --git a/translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..2f94ad4411 --- /dev/null +++ b/translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md @@ -0,0 +1,109 @@ +[#]: subject: "Finding Your Router’s IP Address (Default Gateway) in Ubuntu and Other Linux" +[#]: via: "https://itsfoss.com/router-ip-address-linux/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Ubuntu 和其他 Linux 系统中找到你的路由器的 IP 地址(默认网关) +====== +你可能已经知道如何在 Linux 中获得你的系统的 IP 地址。 + +但是你怎么知道你的路由器的 IP 地址呢? + +我说的不是你可以通过连接到 [Show My IP][1] 这样的网站或简单地在 [DuckDuckGo][3] 中 [搜索“我的 ip”][2] 获得的面向公众的 IP。 + +我说的是默认网关 IP,你的 Linux 桌面使用它来连接。 + +你为什么需要它?嗯,如果你需要改变你的 Wi-Fi/网络的 SSID、密码或其他配置,你必须连接到它。简单的方法是在网络浏览器中输入路由器的 IP 地址,然后使用路由器的用户名和密码。 + +虽然我不能帮助你获得路由器的用户名和密码,但我肯定可以告诉你如何获得它的 IP。 + +一如既往,我将展示 GUI 和命令行两种方法。 + +### 方法 1:在 Linux 中使用 GUI 获取路由器的 IP 地址 + +这其实很简单。我在这里使用的是 Ubuntu 的 GNOME 桌面。如果你使用一些[其他桌面环境][4],截图可能会有所不同。 + +打开系统设置: + +![go to settings][5] + +现在进入 Wi-Fi 或网络(如果你使用的是有线、以太网连接)。在这里,点击你当前使用的网络旁边的小设置符号。 + +![access network settings ubuntu][6] + +它将打开一个新窗口,里面有关于你的连接的一些细节,如 IP 地址、DNS 和 [Mac 地址][7]。你还可以在安全标签下看到[保存的 wifi 密码][8]。 + +你还会看到一个名为“默认路由”的条目。这就是你要找的东西。你的路由器的 IP 地址。 + +![defaul gateway ip ubuntu][9] + +你的系统和网络上的所有其他设备都使用这个 IP 地址连接到路由器。这就是大多数家庭的设置。 + +现在我已经展示了 GUI 的方法,让我们去看看终端的路线。 + +### 方法 2:在 Linux 命令行中获取路由器的 IP 地址 + +打开一个终端,使用以下命令: + +``` +ip route +``` + +它将显示几个条目。 + +``` +[email protected]:~$ ip route +default via 192.168.1.1 dev wlp0s20f3 proto dhcp metric 600 +169.254.0.0/16 dev wlp0s20f3 scope link metric 1000 +192.168.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.1.34 metric 600 +``` + +第一行,以 “default via” 开头,给了你网关的 IP。这是你的路由器的 IP 地址。 + +![defaul route linux terminal][10] + +你可以看到,192.168.1.1 是我的路由器的 IP 地址。通常情况下,路由器的 IP 地址是子网的第一个数字。然而,这并不是一个硬性规定。我也见过有 x.y.z.30 地址的路由器。 + +### 额外技巧 + +正如 Samir 在评论中所分享的,你也可以使用ping命令来获得网关 IP: + +``` +ping _gateway +``` + +![ping gateway][11] + +以防你不知道,你必须[在 Linux 中使用 Ctrl+C 来停止一个正在运行的命令][12]。 + +我希望你在需要的时候能发现这个技巧是有用的。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/router-ip-address-linux/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://www.showmyip.com/ +[2]: https://duckduckgo.com/?q=what+is+my+ip&t=h_&ia=answer +[3]: https://itsfoss.com/duckduckgo-easter-eggs/ +[4]: https://itsfoss.com/best-linux-desktop-environments/ +[5]: https://itsfoss.com/wp-content/uploads/2022/02/go_to_settings.jpg +[6]: https://itsfoss.com/wp-content/uploads/2022/06/access-network-settings-ubuntu-800x448.png +[7]: https://itsfoss.com/change-mac-address-linux/ +[8]: https://itsfoss.com/how-to-find-saved-wireless-wifi-passwords-ubuntu/ +[9]: https://itsfoss.com/wp-content/uploads/2022/06/defaul-gateway-ip-ubuntu.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/defaul-route-linux-terminal.png +[11]: https://itsfoss.com/wp-content/uploads/2022/06/ping-gateway.png +[12]: https://itsfoss.com/stop-program-linux-terminal/ From 8067be1616b53138c51d6d3ab931f07259274482 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 4 Jul 2022 08:40:51 +0800 Subject: [PATCH 0233/3123] RP @wxy https://linux.cn/article-14791-1.html --- ...ng to Nautilus File Manager in GNOME 43.md | 109 ++++++++++++++++++ ...ng to Nautilus File Manager in GNOME 43.md | 108 ----------------- 2 files changed, 109 insertions(+), 108 deletions(-) create mode 100644 published/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md delete mode 100644 sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md diff --git a/published/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md b/published/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md new file mode 100644 index 0000000000..99f5848a1e --- /dev/null +++ b/published/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md @@ -0,0 +1,109 @@ +[#]: subject: "6 New Changes Coming to Nautilus File Manager in GNOME 43" +[#]: via: "https://news.itsfoss.com/gnome-files-43/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14791-1.html" + +GNOME 43 中 Nautilus 文件管理器的 6 个新变化 +====== + +> GNOME 文件即将到来的变化改善了用户体验,让我们来看看其中的一些变化。 + +![gnome files][1] + +我们离 GNOME 43 的发布还有几个月的时间,但是 GNOME 应用程序的开发活动正在如火如荼地进行。 + +例如,[GNOME Web 43 alpha 版本支持了扩展][2]。 + +同样,GNOME 文件管理器(Nautilus)也有一些令人兴奋的变化,特别是对于列表视图。 + +列表视图使用 [GtkColumnView][3] 部件重新实现,丢弃了 GtkTreeView,以便能够添加新功能。 + +一些完善了代码的变化包括: + +### 1、拖动并选择文件 + +就像你在网格视图中通常所做的那样,你终于可以通过简单地拖动你的鼠标在列表视图中选择多个项目,来选择你想要的项目。 + +![gnome files][4] + +如果你没有注意到,每行之间也有一点间隔。虽然选择的动画还不是最流畅的,但它是一个正在进行的工作。 + +我试着用 peek 录制 GIF(在带有 Wayland 的 Fedora 上),但由于某些原因,它没有反应,可能与 alpha 版本有一些冲突。 + +### 2、鼠标悬停时高亮行 + +当你把鼠标悬停在上面的时候,没有行高亮是很不直观的。 + +现在,它做到了。只要把你的光标放在列表视图中的任何一个项目上,它就会被突出显示,如上图所示。 + +### 3、搜索一个文件时,列不会消失 + +![之前][5] + +![之后][6] + +当你用当前的 Nautilus 文件管理器搜索一个文件时,列的处理方式不是很好。你会失去某些细节信息,如文件大小。 + +在新的变化中,你仍然可以看到文件的大小、修改日期,以及给文件加星的能力。 + +通过这一改变,用户体验肯定会更好。 + +### 4、更好的紧凑视图 + +当你缩小文件管理器窗口的大小时,也处理的不是很好。你看不到文件扩展名的细节,而且列对变化没有反应。 + +![][7] + +在 GNOME 文件管理器 43 alpha 版本中,即使你缩小了窗口的大小以获得一个紧凑的视图,你仍然可以看到列,以及如上所示的文件扩展名。 + +### 5、新的文件上下文菜单 + +![][8] + +作为对 2022 年 GSoC(谷歌编程之夏)的贡献的一部分,一位开发者正专注于改善新文档功能的可发现性。 + +当你将某些文件添加到模板Templates目录中时,你可以在执行右键单击时在上下文菜单中找到这个 “新文档New Document” 选项。 + +在即将到来的更新中,这个选项将是开箱即用。即,更加易于使用。 + +另外,开发人员正在想办法改进添加模板的过程。你可以这篇在 [博文][9] 中更多了解他们的工作。 + +### 6、当你给一个文件加星时的动画 + +![][10] + +当你点击列表项右侧的星形图标时,你可以发现它在移动,让你知道你与该选项进行了互动。 + +### 总结 + +当然,我所提到的一切都处于开发阶段(alpha 版本)。在我们等待 beta 版本的时候,我们应该能清楚地了解到文件管理器的更多功能,以及事情是如何改进的。 + +你对 GNOME 43 有什么期待?请在下面的评论中告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-files-43/ + +作者:[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/06/changes-in-nautilus-in-gnome-43.jpg +[2]: https://news.itsfoss.com/gnome-web-extensions-dev/ +[3]: https://gitlab.gnome.org/GNOME/nautilus/-/commit/6708861ed174e2b2423df0500df9987cdaf2adc0 +[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/nautilus-drag-select-alpha.jpg +[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/file-search-before.jpg +[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/file-search-after.jpg +[7]: https://news.itsfoss.com/wp-content/uploads/2022/06/compact-view-files-1024x482.jpg +[8]: https://news.itsfoss.com/wp-content/uploads/2022/06/new-document-file-manager.jpg +[9]: https://ignapk.blogspot.com/2022/06/gsoc-2022-first-update-planning.html +[10]: https://news.itsfoss.com/wp-content/uploads/2022/06/animation0file.webm diff --git a/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md b/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md deleted file mode 100644 index f3211fb752..0000000000 --- a/sources/news/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "6 New Changes Coming to Nautilus File Manager in GNOME 43" -[#]: via: "https://news.itsfoss.com/gnome-files-43/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -6 New Changes Coming to Nautilus File Manager in GNOME 43 -====== -GNOME Files is improving the user experience with the upcoming changes, let’s take a look at some of them. - -![gnome files][1] - -We have a few months to go before the GNOME 43 release, but the development activity for GNOME applications is in full swing. - -For instance, the [support for extensions in GNOME Web][2] 43 alpha version. - -Similarly, there are a few exciting changes coming to GNOME Files (Nautilus), especially for the list view. - -The list view was re-implemented using the [GtkColumnView][3] widget dropping GtkTreeView to be able to add new features. - -Some of the changes that influence the code refinement include: - -### 1. Drag and Select Files - -Just like you would normally do in the grid view, you can finally select multiple items by simply dragging your mouse and selecting the ones you want in the list view. - -![gnome files][4] - -In case you did not notice, there is also a little bit of spacing between each row. The animation for selection is not the smoothest yet, but it is a work in progress. - -Tried to record GIF with peek (Fedora with Wayland), but for some reason it was unresponsive, probably some conflicts with the alpha build. - -### 2. Highlight Row on Mouse Hover - -It was incredibly unintuitive to not have a row highlight when you hover your mouse over. - -Now, it does. Just place your cursor on any of the items in the list view, and it should be highlighted, as shown in the image above. - -### 3. Columns Do Not Go Away When You Search for a file - -![][5] - -![][6] - -When you search for a file with the current Nautilus file manager, the columns are not handled in the best way possible. You get to lose certain details such as the file size. - -With the new change, you still get to see the file size, the modified date, and the ability to star a file. - -Definitely towards a better user experience with this change. - -### 4. Better Compact View - -When you scale down the size of the window with the file manager, it does not handle it well. You lose the file extension details, and the columns aren’t responsive to the change. - -![][7] - -With the 43.alpha build for GNOME Files, even if you scale down the window size for a compact view, you still get to see the columns, and the extension for the files as shown above. - -### 5. New Document Context Menu - -![][8] - -As part of a contribution to the GSoC (Google Summer of Code) 2022, a developer is focusing on improving the discoverability of the new document feature. - -When you add certain files to the Templates directory, you can find the “**New Document**” option in the context menu when you perform a right-click. - -With the upcoming update, this option will be available out of the box. So, it is more accessible. - -Also, the developers are figuring out a way to improve the process of adding templates. You can explore more of their work in the [blog post][9]. - -### 6. Animation when you star a file - -![][10] - -When you click on the star icon on the right side of the list item, you can find it moving to let you know that you interacted with the option. - -### Wrapping Up - -Of course, everything that I mention is in its development stage (alpha builds). As we wait for the beta builds, we should get clarity on more features coming to the file manager, and how things improve from there. - -What are you looking forward to in GNOME 43? Let us know in the comments below. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-files-43/ - -作者:[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/06/changes-in-nautilus-in-gnome-43.jpg -[2]: https://news.itsfoss.com/gnome-web-extensions-dev/ -[3]: https://gitlab.gnome.org/GNOME/nautilus/-/commit/6708861ed174e2b2423df0500df9987cdaf2adc0 -[4]: https://news.itsfoss.com/wp-content/uploads/2022/06/nautilus-drag-select-alpha.jpg -[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/file-search-before.jpg -[6]: https://news.itsfoss.com/wp-content/uploads/2022/06/file-search-after.jpg -[7]: https://news.itsfoss.com/wp-content/uploads/2022/06/compact-view-files-1024x482.jpg -[8]: https://news.itsfoss.com/wp-content/uploads/2022/06/new-document-file-manager.jpg -[9]: https://ignapk.blogspot.com/2022/06/gsoc-2022-first-update-planning.html -[10]: https://news.itsfoss.com/wp-content/uploads/2022/06/animation0file.webm From a8ac7ebe85641c8f2c8c16d553c1420572e5bf49 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 4 Jul 2022 08:47:18 +0800 Subject: [PATCH 0234/3123] translating --- ...20220630 The Top Trends Changing The Data Center Industry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md b/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md index 31dbb0dca3..cda1b5b040 100644 --- a/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md +++ b/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/" [#]: author: "abhimanyu rathore https://www.opensourceforu.com/author/abhimanyu-rathore/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5e4de1e246e264cd3a4f4182c45893b87dd75b53 Mon Sep 17 00:00:00 2001 From: SamMa Date: Mon, 4 Jul 2022 09:04:15 +0800 Subject: [PATCH 0235/3123] Update 20220603 How static linking works on Linux.md --- .../tech/20220603 How static linking works on Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/tech/20220603 How static linking works on Linux.md b/translated/tech/20220603 How static linking works on Linux.md index becff02afc..6da524eaef 100644 --- a/translated/tech/20220603 How static linking works on Linux.md +++ b/translated/tech/20220603 How static linking works on Linux.md @@ -3,11 +3,11 @@ [#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " +[#]: reviewer: "turbokernel" [#]: publisher: " " [#]: url: " " -如何在 Linux 上静态链接 +Linux 静态链接工作原理 ====== 学习如何将多个 C 对象object 文件组合到一个带有静态库的单个可执行文件文件之中。 @@ -204,7 +204,7 @@ via: https://opensource.com/article/22/6/static-linking-linux 作者:[Jayashree Huttanagoudar][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[turbokernel](https://github.com/turbokernel) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 250b5fd219504636649881713e7c1222110b4e5c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 4 Jul 2022 10:18:43 +0800 Subject: [PATCH 0236/3123] RP @hanszhao80 https://linux.cn/article-14792-1.html --- ... Templating Language Inspired by Jinja2.md | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) rename {translated/tech => published}/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md (83%) diff --git a/translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md b/published/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md similarity index 83% rename from translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md rename to published/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md index 965881addd..e4fac67c25 100644 --- a/translated/tech/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md +++ b/published/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (hanszhao80) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14792-1.html) [#]: subject: (Djinn: A Code Generator and Templating Language Inspired by Jinja2) [#]: via: (https://theartofmachinery.com/2021/01/01/djinn.html) [#]: author: (Simon Arneaud https://theartofmachinery.com) @@ -10,13 +10,15 @@ Djinn:一个受 Jinja2 启发的代码生成器和模板语言 ====== -代码生成器是非常有用的工具。我有时使用 [jinja2][1] 的命令行版本来生成高度冗余的配置文件和其他文本文件,但它在转换数据方面功能有限。显然,Jinja2 的作者有不同的想法,但我想要类似于 列表推导list comprehensions 或 D 语言的 可组合范围composable range 算法之类的东西。 +![](https://img.linux.net.cn/data/attachment/album/202207/04/101711nq2we7z7x7wz2z7e.jpg) -我决定制作一个类似于 Jinja2 的工具,但让我可以通过使用范围算法转换数据来生成复杂的文件。这个想法非常简单:一个直接用 D 语言代码重写的模板语言。这样它就支持 D 语言所能做的一切,仅仅因为它 _是_ D 语言。我想要一个独立的代码生成器,但是由于 [ D 语言的 `mixin` 特性][2],相同的模板语言可以作为嵌入式模板语言工作(例如,Web 应用程序中的 HTML)。有关该技巧的更多信息,请参阅 [这篇关于在编译时使用 mixins 将 Brainfuck 转换为 D 到机器代码的帖子][3]。 +代码生成器是非常有用的工具。我有时使用 [jinja2][1] 的命令行版本来生成高度冗余的配置文件和其他文本文件,但它在转换数据方面功能有限。显然,Jinja2 的作者有不同的想法,而我想要类似于 列表推导list comprehensions 或 D 语言的 可组合范围composable range 算法之类的东西。 -像往常一样,[源码在 GitLab 上][4]。[这篇文章中的例子也可以在这里找到。][5] +我决定制作一个类似于 Jinja2 的工具,但让我可以通过使用范围算法转换数据来生成复杂的文件。这个想法非常简单:一个直接用 D 语言代码重写的模板语言。因为它 _就是_ D 语言,它可以支持 D 语言所能做的一切。我想要一个独立的代码生成器,但是由于 [D 语言的 `mixin` 特性][2],同样的模板语言可以作为嵌入式模板语言工作(例如,Web 应用程序中的 HTML)。有关该技巧的更多信息,请参阅 [这篇关于在编译时使用 mixins 将 Brainfuck 转换为 D 和机器代码的文章][3]。 -### 你好世界示例 +像往常一样,[源码在 GitLab 上][4]。[这篇文章中的例子也可以在这里找到][5]。 + +### Hello world 示例 这是一个演示这个想法的例子: @@ -35,7 +37,7 @@ Hello world! 1 + 1 = 2 ``` -如果您使用过 Jinja2,您可能想知道第二行发生了什么。Djinn 有一个简化格式化和空格处理的特殊规则:如果源代码行包含 `[:` 语句或 `[<` 指令但不包含任何非空格输出,则整行都会被忽略输出。空行则仍会原样呈现。 +如果你使用过 Jinja2,你可能想知道第二行发生了什么。Djinn 有一个简化格式化和空格处理的特殊规则:如果源代码行包含 `[:` 语句或 `[<` 指令但不包含任何非空格输出,则整行都会被忽略输出。空行则仍会原样呈现。 ### 生成数据 @@ -79,9 +81,9 @@ x,f(x) 这个例子展示了一个图片的生成过程。[经典的 Netpbm 图像库定义了一堆图像格式][7],其中一些是基于文本的。例如,这是一个 3 x 3 向量的图像: ``` -P2 # 便携式灰色地图Portable GrayMap格式标识 +P2 # PGM 格式标识 3 3 # 宽和高 -7 # 代表纯白色的值 (0 代表黑色) +7 # 代表纯白色的值(0 代表黑色) 7 0 7 0 0 0 7 0 7 @@ -130,7 +132,7 @@ $ gm convert mandelbrot.pgm mandelbrot.png 一个 5 行 5 列的网格需要用 1 到 5 的数字填充,每个数字在每一行中限使用一次,在每列中限使用一次(即,制作一个 5 行 5 列的拉丁方格Latin square)。相邻单元格中的数字还必须满足所有 `>` 大于号表示的不等式。 -[几个月前我使用了 线性规划linear programming(英文缩写 LP)][11]。线性规划问题是具有线性约束的连续变量系统。这次我将使用混合整数线性规划mixed integer linear programming(英文缩写 MILP),它通过允许整数约束变量来归纳 LP。事实证明,这足以成为 NP 完备的,而 MILP 恰好可以很好地模拟这个谜题。 +[几个月前我使用了 线性规划linear programming(LP)][11]。线性规划问题是具有线性约束的连续变量系统。这次我将使用混合整数线性规划mixed integer linear programming(MILP),它通过允许整数约束变量来归纳 LP。事实证明,这足以成为 NP 完备的,而 MILP 恰好可以很好地模拟这个谜题。 在上一篇文章中,我使用 Julia 库 JuMP 来帮助解决这个问题。这次我将使用 [CPLEX:基于文本的格式][12],它受到多个 LP 和 MILP 求解器的支持(如果需要,可以通过现成的工具轻松转换为其他格式)。这是上一篇文章中 CPLEX 格式的 LP: @@ -169,9 +171,9 @@ foreach (c; iota(N)) [::] ``` -`ivar()` 是一个辅助函数,它为我们提供变量名为 i 的字符串标识符,而 `vs` 存储从 1 到 5 的数字以方便使用。行和列内唯一性的约束完全相同,但在 i 的其他两个维度上迭代。 +`ivar()` 是一个辅助函数,它为我们提供变量名为 `i` 的字符串标识符,而 `vs` 存储从 1 到 5 的数字以方便使用。行和列内唯一性的约束完全相同,但在 `i` 的其他两个维度上迭代。 -为了使变量组 i 与变量组 v 保持一致,我们需要如下约束(请记住,变量组 i 中只有一个元素的值是非零的): +为了使变量组 `i` 与变量组 `v` 保持一致,我们需要如下约束(请记住,变量组 `i` 中只有一个元素的值是非零的): ``` [i_{r,c,1} + 2i_{r,c,2} + 3i_{r,c,3} + 4i_{r,c,4} + 5i_{r,c,5} = v_{r,c}] @@ -189,7 +191,7 @@ foreach (c; iota(N)) [::] ``` -不等符号相邻的和左下角值为为 4 单元格的约束写起来都很简单。剩下的便是将指示器变量声明为二进制,并为变量组 v 设置边界。加上变量的边界,总共有 150 个变量和 111 个约束 [你可以在仓库中看到完整的代码][14]。 +不等符号相邻的和左下角值为为 4 单元格的约束写起来都很简单。剩下的便是将指示器变量声明为二进制,并为变量组 `v` 设置边界。加上变量的边界,总共有 150 个变量和 111 个约束 [你可以在仓库中看到完整的代码][14]。 [GNU 线性规划工具集][15] 有一个命令行工具可以解决这个 CPLEX MILP。不幸的是,它的输出是一个包含了所有内容的体积很大的转储,所以我使用 awk 命令来提取需要的内容: @@ -241,7 +243,7 @@ via: https://theartofmachinery.com/2021/01/01/djinn.html 作者:[Simon Arneaud][a] 选题:[lujun9972][b] 译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7d6b4b770f0c43e785e0651175666eb8e4a2c745 Mon Sep 17 00:00:00 2001 From: SamMa Date: Mon, 4 Jul 2022 13:28:54 +0800 Subject: [PATCH 0237/3123] Update 20220603 How static linking works on Linux.md --- ...20603 How static linking works on Linux.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/translated/tech/20220603 How static linking works on Linux.md b/translated/tech/20220603 How static linking works on Linux.md index 6da524eaef..e7ff13585f 100644 --- a/translated/tech/20220603 How static linking works on Linux.md +++ b/translated/tech/20220603 How static linking works on Linux.md @@ -15,26 +15,26 @@ Linux 静态链接工作原理 图片作者:Mapbox Uncharted ERG, [CC-BY 3.0 US][2] -使用 C 编写的应用程序代码通常有多个源代码文件,但是,你需要将它们最终编译到一个单个的可执行文件。 +使用 C 编写的应用程序时,通常有多个源码文件,但最终您需要编译成单个的可执行文件。 -你可以通过两种方式来完成这项工作:通过创建一个 静态static 库 或 一个 动态dynamic 库 (也被称为 共享shared 库)。这两种类型的库在从它们是如何创建和链接的角度来看是不同的。你选择使用哪种方式取决于你的的具体使用情况。 +你可以通过两种方式来完成这项工作:通过创建一个 静态static 库 或 一个 动态dynamic 库 (也被称为 共享shared 库)。从创建和链接的方式来看,它们是两种不同类型的库。选择使用哪种方式取决于你的的具体场景。 -在 [上一篇文章][3] 中,我演示了如何创建一个动态链接的可执行文件,这是一种更常用的方法。在这篇文章中,我将解释如何创建一个静态链接的可执行文件。 +在 [上一篇文章][3] 中,我演示了如何创建一个动态链接的可执行文件,这是一种更通用的方法。在这篇文章中,我将说明如何创建一个静态链接的可执行文件。 -### 链接器使用静态库 +### 使用静态库链接器 -链接器是一个命令,它将一个程序的数个部分组合到一起,并为它们重新组织存储器分配。 +链接器是一个命令,它将一个程序的多个部分组合,并为它们重新组织存储器分配。 链接器的功能包括: * 集成一个程序的所有的部分 -* 计算组织出一个新的存储器结构,以便所有的部分组合在一起 -* 重新复活存储器地址,以便程序可以在新的存储器组织下运行 +* 装配一个新的存储器结构,以便所有的部分组合在一起 +* 恢复存储器地址,以便程序可以在新的存储器组织下运行 * 解析符号引用 -作为这些链接器功能的结果,创建了一个名称为可执行文件的一个可运行程序。 +经过这些链接器功能,创建了一个名称为可执行文件的一个可运行程序。 -静态库是通过复制一个程序中的所有必须的库模块到最终的可执行镜像来创建的。链接器将链接静态库作为编译过程的最后一步。可执行文件是通过解析外部引用、库实例程序与程序代码组合来创建的。 +静态库是通过复制一个程序中的所有依赖库模块到最终的可执行镜像来创建的。链接器将链接静态库作为编译过程的最后一步。可执行文件是通过解析外部引用、库实例程序与程序代码组合来创建的。 ### 创建对象文件 @@ -71,7 +71,7 @@ return (a/b); } ``` -现在,使用 GCC 来参加对象文件 `add.o` 、`sub.o` 、`mult.o` 和 `divi.o` : +现在,使用 GCC 来生成对象文件 `add.o` 、`sub.o` 、`mult.o` 和 `divi.o` : ``` $ gcc -c add.c sub.c mult.c divi.c @@ -88,7 +88,7 @@ $ ls add.c  divi.c  libmymath.a  mult.c  mymath.h  sub.c ``` -现在,你已经创建了一个简单的名称为 `libmymath` 是示例数学库,你可以在 C 代码中使用它。当然,这里有非常复杂的 C 库,这就是他们这些开发者来生成最终产品的工艺流程,你和我可以安装这些库并在 C 代码中使用。 +现在,你已经创建了一个简单的名称为 `libmymath` 是数学示例库,你可以在 C 代码中使用它。当然,这里有非常复杂的 C 库,这就是开发者们用于开发最终产品的过程,你和我可以安装这些库并在 C 代码中使用。 接下来,在一些自定义代码中使用你的数学库,然后链接它。 @@ -129,9 +129,9 @@ int main() $ gcc -I . -c mathDemo.c ``` -`-I` 选项告诉 GCC 来搜索在其后列出的头文件。在这个实例中,你正在具体指定当前目录,通过一个单个点 (`.` ) 来表示。 +`-I` 选项告诉 GCC 搜索在其后列出的头文件。在这个实例中,你通过单个点 (`.` ) 来指定当前目录。 -Link `mathDemo.o` with `libmymath.a` 来参加最终的可执行文件。这里有两种方法来向 GCC 表达这一点。 +连接 `mathDemo.o` 和 `libmymath.a` 来生成最终的可执行文件。这里有两种方法来向 GCC 表达这一点。 你可以指向文件: @@ -139,17 +139,17 @@ Link `mathDemo.o` with `libmymath.a` 来参加最终的可执行文件。这里 $ gcc -static -o mathDemo mathDemo.o libmymath.a ``` -或者,你可以具体指定库的路径和库的名称: +或者,你可以具体指定库的路径及名称: ``` $ gcc -static -o mathDemo -L . mathDemo.o -lmymath ``` -在后面的那个示例中,`-lmymath` 选项告诉链接器来链接随对象文件 `mathDemo.o` 出现的对象文件 `libmymath.a` 来创建最终的可执行文件。`-L` 选项指示链接器在下面的参数中查找库 (类似于你使用 `-I` 所做的工作)。 +在后面的那个示例中,`-lmymath` 选项告诉链接器来链接随对象文件 `mathDemo.o` 中的对象文件 `libmymath.a` 来生成最终的可执行文件。`-L` 选项指示链接器在下面的参数中查找库 (类似于你使用 `-I` 所做的工作)。 ### 分析结果 -使用 `file` 命令来确认它是静态链接的: +使用 `file` 命令来验证它是静态链接的: ``` $ file mathDemo @@ -164,7 +164,7 @@ $ ldd ./mathDemo         not a dynamic executable ``` -你也可以检查 `mathDemo` 可执行文件的大小: +你也可以查看 `mathDemo` 可执行文件的大小: ``` $ du -h ./mathDemo @@ -193,9 +193,9 @@ Enter two numbers 动态链接可执行文件通常优于静态链接可执行文件,因为动态链接会保持应用程序的组件模块化。假如一个库接收到一次关键安全更新,那么它可以很容易地修补,因为它存在于应用程序的外部。 -当你使用静态链接时,库的代码会 "隐藏" 在你创建的可执行文件之中,意味着在库每次更新时(相信我,你会有更好的东西),仅有的一种修补它的方法是重新编译和重新发布一个新的可执行文件。 +当你使用静态链接时,库的代码会 "隐藏" 在你创建的可执行文件之中,意味着在库每次更新时(相信我,你会有更好的东西),仅有的一种修补方法是重新编译和发布一个新的可执行文件。 -不过,如果一个库的代码,要么存在于它正在使用的具有相同代码的可执行文件中,要么存在于专用的预期不会接收到任何更新的嵌入式设备中,那么静态连接将是一种可接受的选项。 +不过,如果一个库的代码,要么存在于它正在使用的具有相同代码的可执行文件中,要么存在于不会接收到任何更新的专用嵌入式设备中,那么静态连接将是一种可接受的选项。 -------------------------------------------------------------------------------- From ab8dccae472e10e99ae7f24ae89ed543daac8379 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 20:36:24 +0800 Subject: [PATCH 0238/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220704=20Darktable=204.0.0=20is=20Here=20with=20a?= =?UTF-8?q?=20Revamped=20UI=20and=20Improved=20Color=20Saturation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...vamped UI and Improved Color Saturation.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md diff --git a/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md b/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md new file mode 100644 index 0000000000..d5478e7a06 --- /dev/null +++ b/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md @@ -0,0 +1,96 @@ +[#]: subject: "Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation" +[#]: via: "https://news.itsfoss.com/darktable-4-0-release" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation +====== +darktable 4.0.0 release is here as a major upgrade with new features, simplified UI, and other enhancements. + +![darktable][1] + +Recently, the developers unveiled new stable release as an upgrade over its 3.8.x series. + +The latest upgrade is about new features, bug fixes, and significant changes. + +### darktable 4.0: What’s New? + +With darktable 4.0, we have a lot of feature additions and some impactful rework on the user interface. + +Let me mention the key highlights here: + +**Note:** This is a major upgrade with a new library and configuration, not compatible with the older version. So, you need to take a backup of your work before proceeding. + +#### Color and Exposure Mapping + +Within the exposure and color calibration modules, you now get the ability to define and save a target color/exposure for the color pickers. + +This should help you match source objects in the image and ensure the color consistency of an object across a batch of photos. + +#### UI Rework + +![darktable][2] + +The user interface has undergone a revamp to improve the look/feel. Starting with the default theme being changed to “**Elegant Grey**“. + +Overall, padding, margins, color, alignment, and icons, everything has received a makeover. New collapsible sections (channel mixer rgb, exposure, color calibration) have also been added to make the UI cleaner, and more accessible. + +You will find numerous subtle changes for a better layout. + +#### Performance Changes + +Several optimizations have been added to the release while simplifying the user preferences. + +You also get to change the performance configuration without requiring to restart darktable. + +#### Improved Color Saturation + +![darktable][3] + +The addition of Filmic v6 (a new color science) helps for more saturated colors, especially in blue skies. + +Also, color-grading should be safer considering it can be recovered in the least-destructive way, as mentioned in the announcement post. In addition to that, a new information color space has been designed for artistic saturation changes. + +Overall, you should be happy about this release’s refinements to the saturation control. + +#### Other Changes + +Some other notable changes include: + +* A new “guided Laplacian” method has been added to the highlight reconstruction module. +* Global color picker tool improvements +* A new contrast parameter +* A new collection filters module +* Support for EXR 16-bit (half) float export has been added. + +You may go through all the technical details in its [official announcement post][4]. + +### Download darktable 4.0.0 + +You can get the latest version using the Flatpak package on [Flathub][5]. When writing this, the Snap package wasn’t updated. + +In either case, you can also choose to use the tar.xz file available in its [GitHub releases section][6]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/darktable-4-0-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/07/darktable-4-0-0-1200x675.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/darktable-4.jpg +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/darktable-4-1.jpg +[4]: https://www.darktable.org/2022/07/darktable-4.0.0-released/ +[5]: https://flathub.org/apps/details/org.darktable.Darktable +[6]: https://github.com/darktable-org/darktable/releases/tag/release-4.0.0 From 4e760f220de54e4e17204a09ec1a3fcb9d27fbed Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 20:37:22 +0800 Subject: [PATCH 0239/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220704=20Fixing=20-cannot=20find=20signatures=20wi?= =?UTF-8?q?th=20metadata=20for=20snap-=20Error=20in=20Ubuntu=20and=20other?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r snap- Error in Ubuntu and other Linux.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md diff --git a/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md b/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md new file mode 100644 index 0000000000..f18165eeb5 --- /dev/null +++ b/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md @@ -0,0 +1,83 @@ +[#]: subject: "Fixing “cannot find signatures with metadata for snap” Error in Ubuntu and other Linux" +[#]: via: "https://itsfoss.com/snap-metadata-signature-error/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fixing “cannot find signatures with metadata for snap” Error in Ubuntu and other Linux +====== + +The other day I was trying to install [massCode][1] application. For installation, it provided a Snap file to download. + +When I tried to install the application from Snap file + +``` +sudo snap install snap_file +``` + +It gave me the following error: + +**error: cannot find signatures with metadata for snap “masscode_2.6.1_amd64.snap”** + +![cannot find signature with metadata for snap][2] + +That was strange. While [adding external repositories in Ubuntu][3], you have to add the GPG key. But no such things were provided by the developer here. + +The ‘fix’ is easy and simple. Let me explain it to you. + +### Handling “cannot find signatures with metadata for snap” error + +There are no signatures involved here. + +What happens is that you have downloaded a Snap installer file from a third party. The snap mechanism in Ubuntu expects you to get the snap packages from the official snap store. + +Since it doesn’t come from the snap store, you see the ‘cannot find signatures with metadata for snap’ error message. The error message is not descriptive, like most error messages. + +So, what’s the solution here? + +Any snap package that is not distributed through the Snap store has to be installed with the**–dangerous flag**. That’s the rule. + +``` +sudo snap install --dangerous path_to_snap_file +``` + +This way, you tell the snap package manager to explicitly install the snap package. + +Here, I used this flag and was able to install massCode from its snap package successfully. + +![installing third party snap packages][4] + +How ‘dangerous’ is it to install snap packages this way? Almost the same as downloading and [installing packages in deb format][5]. + +In my opinion, if you are downloading the snap package from the project developer’s website, you are already entrusting the project. In such cases, you can install it with the –dangerous flag. + +Of course, you should first search if the package is available in the snap store or not: + +``` +snap find package_name +``` + +I hope this quick little tip helped you fix the Snap error. If you have questions or suggestions please let me know. If you want to learn more, see [this guide on using Snap commands][6]. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/snap-metadata-signature-error/ + +作者:[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://masscode.io/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/cannot-find-signature-with-metadata-for-snap-800x205.png +[3]: https://itsfoss.com/adding-external-repositories-ubuntu/ +[4]: https://itsfoss.com/wp-content/uploads/2022/07/installing-third-party-snap-packages-800x358.png +[5]: https://itsfoss.com/install-deb-files-ubuntu/ +[6]: https://itsfoss.com/use-snap-packages-ubuntu-16-04/ From e078317390c910b2d3014ca4270cdc2256eb1f86 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Mon, 4 Jul 2022 20:51:37 +0800 Subject: [PATCH 0240/3123] translated --- ...ential Ubuntu Apps For Everyone in 2022.md | 200 ----------------- ...ential Ubuntu Apps For Everyone in 2022.md | 206 ++++++++++++++++++ 2 files changed, 206 insertions(+), 200 deletions(-) delete mode 100644 sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md create mode 100644 translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md diff --git a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md deleted file mode 100644 index 1f61e0de88..0000000000 --- a/sources/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md +++ /dev/null @@ -1,200 +0,0 @@ -[#]: 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: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -2022 年人人必备的 10 大 Ubuntu 应用 -====== -本文列出了 2022 年各种情况下使用的 10 大 Ubuntu 必备应用。 - -如果你是偶尔使用的用户、学生、老师、科学家、开发人员或发明家,你需要为你的工作流程提供额外的应用程序。Linux 生态系统有数以千计的应用程序分散在各地,几乎可以满足所有可能的需求。大多数主流 Linux 发行版,包括 Ubuntu ,都只把基本的应用程序作为默认功能。 - -在这篇文章的第一部分(5个系列)中,我们为大家列出了一些专业级的应用。 - -### 2022 年 Ubuntu 必备应用--第一部分 - -#### 1. GNOME 调整工具 - -如果你在使用 Ubuntu GNOME 版本,GNOME 调整工具是你必备的实用工具。使用这个工具来定制你的桌面,你可以改变字体、缩放比例、主题、光标和许多其他选项。默认设置窗口现在没有列出所有选项。 - -此外,你也能用该应用改变窗口布局、标题栏、标题栏按钮以及开机启动项 - - -你可以使用软件应用程序搜索 "Tweaks" 来安装它,或者通过下列终端的命令来安装。 - -``` -sudo apt install gnome-tweaks -``` - -![GNOME Tweaks Tool][2] - -#### 2. Steam - -在 Linux 上玩游戏不再困难,感谢 Valve 公司和相关社区的贡献。[Steam][3] 是 Valve 公司开发的视频游戏的前端服务平台,你可以通过 Steam 在 Ubuntu 上获取最新的游戏版本。此外, Steam 客户端提供反外挂监测、自动更新并且支持带有流媒体功能的社交对话。 - -如果你用 Linux 玩游戏,Steam 是常用的客户端,你可以用下面的命令来安装。此外,你可以在软件中搜索 “Steam Installer” 并使用 [Flatpak][4] 或 [Snap][5] 进行安装。 - -``` -sudo apt install steam -``` - -![Steam Client][6] - -#### 3. Peek - -在我看来, [Peek][7] 是被低估的一款应用。它是一个对各种工作流非常有用的 GIF 动画记录器。这是一款非常强大的实用程序,它适合 Ubuntu 或任何 Linux 发行版。此外, Peek 带有如录制区域选择、倒计时、gif 、mp4 和 WebM 支持等选项。它的后端使用 ffmpeg 。 - -在软件中搜索 “peek” 或者在命令行输入以下命令来安装这款优秀的应用。 - - -``` -sudo apt install peek -``` - -![Peek][8] - -#### 4. Synaptic - -[Synaptic][9] 是一款杰出的软件包管理器,可以帮助你传统地添加和移除软件包。对 Linux 经验很少的用户知道它的特性以及灵活性。你可以在各种库中搜索软件包,验证依赖性并继续安装。 - -如果你经常安装和卸载软件包,这是一个完美的应用程序。你可以通过以下命令或在软件中搜索 “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 ` 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, it’s super easy to learn if you are new to video editing. - -Kdenlive is a very active project, and it’s 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] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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 diff --git a/translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md new file mode 100644 index 0000000000..e720e089ff --- /dev/null +++ b/translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md @@ -0,0 +1,206 @@ +[#]: 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: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +2022 年人人必备的 10 大 Ubuntu 应用 +====== +本文列出了 2022 年各种情况下使用的 10 大 Ubuntu 必备应用。 + +如果你是偶尔使用的用户、学生、老师、科学家、开发人员或发明家,你需要为你的工作流程提供额外的应用程序。Linux 生态系统有数以千计的应用程序分散在各地,几乎可以满足所有可能的需求。大多数主流 Linux 发行版,包括 Ubuntu ,都只把基本的应用程序作为默认功能。 + +在这篇文章的第一部分(5个系列)中,我们为大家列出了一些专业级的应用。 + +### 2022 年 Ubuntu 必备应用--第一部分 + +#### 1. GNOME 调整工具 + +如果你在使用 Ubuntu GNOME 版本,GNOME 调整工具是你必备的实用工具。使用这个工具来定制你的桌面,你可以改变字体、缩放比例、主题、光标和许多其他选项。默认设置窗口现在没有列出所有选项。 + +此外,你也能用该应用改变窗口布局、标题栏、标题栏按钮以及开机启动项 + + +你可以使用应用商店搜索 "Tweaks" 来安装它,或者通过下列终端的命令来安装。 + +``` +sudo apt install gnome-tweaks +``` + +![GNOME Tweaks Tool][2] + +#### 2. Steam + +在 Linux 上玩游戏不再困难,感谢 Valve 公司和相关社区的贡献。[Steam][3] 是 Valve 公司开发的视频游戏的前端服务平台,你可以通过 Steam 在 Ubuntu 上获取最新的游戏版本。此外, Steam 客户端提供反外挂监测、自动更新并且支持带有流媒体功能的社交对话。 + +如果你用 Linux 玩游戏,Steam 是常用的客户端,你可以用下面的命令来安装。此外,你可以在应用商店中搜索 “Steam Installer” 并使用 [Flatpak][4] 或 [Snap][5] 进行安装。 + +``` +sudo apt install steam +``` + +![Steam Client][6] + +#### 3. Peek + +在我看来, [Peek][7] 是被低估的一款应用。它是一个对各种工作流非常有用的 GIF 动画记录器。这是一款非常强大的应用程序,它适合 Ubuntu 或任何 Linux 发行版。此外, Peek 带有如录制区域选择、倒计时、gif 、mp4 和 WebM 支持等选项。它的后端使用 ffmpeg 。 + +在应用商店中搜索 “peek” 或者在命令行输入以下命令来安装这款优秀的应用。 + + +``` +sudo apt install peek +``` + +![Peek][8] + +#### 4. Synaptic + +[Synaptic][9] 是一款杰出的软件包管理器,可以帮助你传统地添加和移除软件包。对 Linux 经验很少的用户知道它的特性以及灵活性。你可以在各种库中搜索软件包,验证依赖性并继续安装。 + +如果你经常安装和卸载软件包,这是一个完美的应用程序。你可以通过以下命令或在应用商店中搜索 “synaptic” 来安装它。 + + +``` +sudo apt install synaptic +``` + +![Synaptic Package Manager][10] + +#### 5. GDebi + +正如上面提到的 Synaptic ,你也可以试试带有几种功能的 [GDebi][11] 包安装程序。 GDebi 包安装程序是是用于安装外部 deb 文件的命令行实用程序。此外, GDebi 安装 deb 包速度更快,效率更高,并快速解决依赖关系并为你下载它们。 + +它是 Ubuntu 上安装 deb 包最好的终端程序之一,你可以用以下命令安装它。安装后,你可以运行 `gdebi <你的 .deb 带路径的文件名>` 来安装任何包。 + +``` +sudo apt install gdebi +``` + +#### 6. Geary + +为了任何工作流,你需要一个 Ubuntu 桌面的本地 [邮箱客户端][12] 。电子邮件仍具有相关性并且对很多人很重要。尽管 Ubuntu 默认带有最好的雷鸟电子邮件客户端,但你可以用其他有更好体验的电子邮件客户端应用。 + +[Geary][13] 拥有友好的并且简单的用户界面,能够让你更简单的设置多个邮件账号。此外, Geary 也带来了对话功能,更快的搜索,富文本电子邮件编写以及其他功能,这使它成为 Linux 桌面的“首选”电子邮件客户端。 + +你可以使用如下命令或者在应用商店中搜索 “Geary” 来安装 Geary 。也可以通过 [Flatpak][14] 获得。 + +``` +sudo apt install geary +``` + +![Geary][15] + +#### 7. 谷歌 Chrome + +虽然大多数人担心隐私以及跟踪,但谷歌 Chrome 仍然是浏览器市场的领头者。 Ubuntu 默认装配了火狐浏览器,随着近期火狐的 snap 事件,你可能想换到其他浏览器。 + +如果你与 Google 生态系统紧密联系并希望在流媒体和浏览方面获得更好的网络体验,你可能会考虑使用 Google Chrome。但是,如果你担心隐私和跟踪,你可以选择其他一些浏览器,例如 Brave 或 Vivaldi。 + + +你可以从下面链接中下载 deb 包来安装谷歌 Chrome 。安装后,你可以打开应用商店来安装。 + + +[下载谷歌 Chrome][16] + +#### 8. Kdenlive + +[Kdenlive][17] 是 Linux 上最好的免费并开源的视频编辑器之一。 Kdenlive 设计良好的用户界面易于使用,并且带来了各种各样的特点。首先,使用 Kdenlive ,你可以简单的导入视频片段,更改画布分辨率,并且编辑后导出为多种格式。其次,时间线和工具让只需你单击一个按钮即可剪切和添加标题、转场和效果。此外,如果你是视频编辑新手,学习起来非常容易。 + +Kdenlive 是一个非常活跃的项目,每个主版本都会带有更多先进的特征。这是 2022 年必不可少的 Ubuntu 应用程序之一,如果你将其与列入此列表的其他 [免费视频编辑器][18] 进行比较。 + + +使用以下命令安装 Kdenlive 很简单。除此,你可以用 [Flatpak][19] 或 [Snap][20] 版本来安装。 + + +``` +sudo apt install kdenlive +``` + +![Kdenlive Video Editor][21] + +#### 9. Spectacle + +你可以试用过很多截屏应用。但在我看来, [Spectacle][22] 或许是最好也是被低估了的一款应用。 Spectacle 是一款 KDE 应用程序,速度非常快,非常适合任何需要截屏并使用它们的工作流。首先,你可以捕获整个桌面,它的一部分或自定义时间的窗口。其次,如果需要,窗口捕获还可以选择窗口装饰和光标。再次,Spectacle 还为你提供了一个内置的注释功能来撤回、写入和标记你的图像。 + +此外,你还可以直接从其主窗口在 GIMP 或任何图像编辑器中打开图像并将其导出。此外,自动保存、将捕获复制到剪贴板以及共享到社交媒体是 Spectacle 的一些独特功能。 + +在我看来,它是一个带有内置屏幕录像机的完整截图工具。 + +你可以用以下命令或者从 [Snap][23] 中安装 Spectacle。 + +``` +sudo apt install kde-spectacle +``` + +![Spectacle Screenshot tool][24] + +#### 10. VLC 媒体播放器 + +带有 GNOME 桌面的 Ubuntu Linux 默认带有 GNOME Videos 应用程序来播放视频文件。但由于缺乏解码功能,GNOME Videos 无法播放多种视频格式。这就是为什么,你应该总是考虑 [VLC 媒体播放器][25]——它是 Linux 桌面上的“首选”媒体播放器。 + + +VLC 确实可以播放任何格式。 它甚至可以帮助您播放数据不完整的损坏视频文件。它是你可以使用以下命令安装的强大媒体播放器之一。 + +此外,如果你偏向于另一种安装模式,你可以通过 [Flatpak][26] 或者 [Snap][27] 安装。 + +``` +sudo apt install vlc +``` + +![VLC Media Player][28] + +### 结语 + + +2022 年必备的 Ubuntu 应用程序系列的第 1 部分到此结束。有了以上信息,我希望你可以选择一些应用供你的日常使用。在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。 + +最后,请继续关注本 Ubuntu 应用程序系列的第 2 部分。 + +干杯! + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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 From 5276404a4b4d4b3683681b743efae4da9b0a67b4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 22:35:47 +0800 Subject: [PATCH 0241/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220704=20Docker=20Commands=20Tutorial=20-=20Gettin?= =?UTF-8?q?g=20Started=20With=20Docker=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... - Getting Started With Docker In Linux.md | 749 ++++++++++++++++++ 1 file changed, 749 insertions(+) create mode 100644 sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md diff --git a/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md b/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md new file mode 100644 index 0000000000..39311137ac --- /dev/null +++ b/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md @@ -0,0 +1,749 @@ +[#]: subject: "Docker Commands Tutorial | Getting Started With Docker In Linux" +[#]: via: "https://ostechnix.com/getting-started-with-docker/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Docker Commands Tutorial | Getting Started With Docker In Linux +====== +Essential Docker Commands For beginners + +This detailed Docker tutorial covers the essential **Docker commands**, such as how to create a new container, run the container, remove a container and so on. In addition, this guide also explains how to build your own custom Docker image from an existing container and how to remove containers and images. Without further ado, let us **get started with Docker basics usage**! + +### Docker Installation Steps + +Docker can be installed in most modern Linux operating systems. If you haven't installed Docker yet, refer the following guides: + +* [Install Docker Engine And Docker Compose In AlmaLinux, CentOS, Rocky Linux][1] +* [How to Install Docker And Docker Compose In Ubuntu][2] + +### What Is Docker Image And Docker Container? + +Before getting started with Docker, let me clarify what is a **Docker image** and a **Docker Container**. + +A Docker Image is the file that decides how a Container should behave, and Docker Container is the running or stopped stage of a Docker image. + +The containers are isolated from the rest of host's files. + +When we run a Docker container, it uses an isolated filesystem which provided by a Docker image. The Docker image consists of everything needed to run an application - all dependencies, configuration, scripts, binaries, etc. + +The image also contains other configuration for the container, such as environment variables, a default command to run, and other metadata. + +### Getting Started With Docker In Linux + +All steps given below are tested in Ubuntu 22.04, 20.04 and 18.04 LTS server edition. However, the steps provided in the subsequent sections are common to all Linux platforms. For example, you can run the same commands in a RHEL-based system(E.g. AlmaLinux) too. + +#### 1. Search Docker Images + +We can get the images from either from the official docker library called [Docker hub][3], or create our own. + +For those wondering, Docker hub is an online central repository where all Docker users build, test, and save their Docker images. Docker hub has tens of thousands of Docker images and the number of images is growing everyday. + +You can search for the any Docker images with **"docker search"** command from command line. + +For instance, to search for docker images based on **Alpine** Linux, run: + +``` +$ sudo docker search alpine +``` + +**Sample Output:** + +![Search Docker Images][4] + +To search images based on **Ubuntu**, run: + +``` +$ sudo docker search ubuntu +``` + +You can even search images for any application, for example **Nginx**, like below: + +``` +$ sudo docker search nginx +``` + +Docker hub has a wide range of images. Be it an operating system, application, or combination of multiple applications (E.g. LAMP stack), you will find pre-built Docker images for everything in Docker hub. + +If something you're looking for is not available, you can build it and make it available for public via Docker hub or keep it private for your own use. + +#### 2. Download Docker Images + +To download Docker image for Ubuntu OS, run the following command from the Terminal: + +``` +$ sudo docker pull ubuntu +``` + +The above command will download the latest Ubuntu image from the **Docker hub**. + +**Sample Output:** + +``` +Using default tag: latest +latest: Pulling from library/ubuntu +405f018f9d1d: Pull complete +Digest: sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac +Status: Downloaded newer image for ubuntu:latest +docker.io/library/ubuntu:latest +``` + +You can also download a specific version of Ubuntu image using command: + +``` +$ sudo docker pull ubuntu:20.04 +``` + +Docker allows us to download any images and start the container based on that image regardless of the host OS. + +For example, to download Alpine OS image, run: + +``` +$ sudo docker pull alpine +``` + +![Download Docker Images][5] + +#### 3. List Docker Images + +All downloaded Docker images will be saved in **/var/lib/docker/** directory. + +To view the list of downloaded Docker images, run: + +``` +$ sudo docker images +``` + +**Sample Output:** + +``` +REPOSITORY TAG IMAGE ID CREATED SIZE +ubuntu latest 27941809078c 3 weeks ago 77.8MB +ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB +alpine latest e66264b98777 5 weeks ago 5.52MB +``` + +![List Docker Images][6] + +As you see above, I have downloaded three Docker images - **Ubuntu** **latest**, **Ubuntu 20.04** and **Alpine Linux**. + +Now, let us go ahead and see how to start or run the containers based on the downloaded images. + +#### 4. Run Docker Containers + +We can start a container in two ways - either using its Docker **Image** **TAG** or **Image ID**. + +**TAG** refers to a particular snapshot of the image and the **IMAGE ID** is the corresponding unique identifier for that image. + +Take a look at the following screenshot: + +![Docker Image Tag and ID][7] + +As you see in the above results, the tags are **"latest"** and **"20.04"**. + +* 27941809078c is the IMAGE ID of Ubuntu latest Docker image, +* 20fffa419e3a is the image id of Ubuntu 20.04 Docker image +* and `e66264b98777` is the image id of Alpine latest Docker image. + +##### 4.1. Run Containers Using Tag + +Once you downloaded the Docker images of your choice, run the following command to start a Docker container and connect to it by using its TAG. + +``` +$ sudo docker run -t -i ubuntu:latest /bin/bash +``` + +Or, + +``` +$ sudo docker run -it ubuntu:latest /bin/bash +``` + +Here, + +* -t : Assigns a new Pseudo Terminal inside the Ubuntu container. +* -i : Allows us to make an interactive connection by grabbing the standard in (STDIN) of the container. +* ubuntu:latest : Ubuntu docker image with Tag "latest". +* /bin/bash : BASH shell for the new container. This is optional. If you don't mention the shell, the default shell will be assigned to the container. + +After starting the container, you'll be automatically landed into the Container's shell (Command prompt): + +![Run Containers Using Tag][8] + +The new container based on the Ubuntu latest image has been started now. A unique ID and a name will be given to all the newly containers. As you can see in the above output, the Ubuntu container ID is **2f2a5b826762**. We will see where to find the name of the container in a minute. + +You can now start working in the container. Once you're done with the Container, you can return back to the host system's Terminal (In my case, it is Ubuntu 22.04 LTS) without terminating the Container (guest os). + +##### 4.2. Detach From Running Containers + +To detach from a running container (without terminating it), press **CTRL+P** followed by **CTRL+Q**. + +Now, you are back to your original host computer's terminal window. Please note that the container is still running in the background and we didn't terminate it yet. + +##### 4.3. Run Containers Using IMAGE Id + +The another way to start a container and connect to it is by using the IMAGE ID as shown below: + +``` +$ sudo docker run -it 20fffa419e3a /bin/bash +``` + +Here, + +* 20fffa419e3a - Image id + +To detach from the container and return back to the host system's Terminal, press **CTRL+P** and **CTRL+Q**. Again, we only detached from the container but didn't stop it. The container is still running in the background. + +##### 4.4. Run Containers In Detached Mode + +In the previous sections, we started a container and attached to it immediately. And then we detached from the container once our work with that container is completed. + +You can also start container in detached mode (without automatically attaching it). + +To run a container in the background, run: + +``` +$ sudo docker run -it -d alpine:latest +``` + +**Sample Output:** + +``` +d74f2ceb5f3ad2dbddb0b26e372adb14efff91e75e7763418dbd12d1d227129d +``` + +The first 12 letters in the above output indicates the container ID. + +You can verify if the container is running using `docker ps` command: + +``` +$ sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +d74f2ceb5f3a alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds zen_pascal +``` + +![Run Containers In Background][9] + +As you can see in the above output, we have a created an Alpine container but didn't attach to it. + +If you want to attach it to the container, simply, run: + +``` +$ sudo docker attach d74f2ceb5f3a +``` + +#### 5. View Running Containers + +To view the list running of containers, run the following command: + +``` +$ sudo docker ps +``` + +**Sample Output:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +f7e04eed577e 20fffa419e3a "/bin/bash" 6 minutes ago Up 6 minutes brave_mclean +2f2a5b826762 ubuntu:latest "/bin/bash" 18 minutes ago Up 18 minutes hungry_leavitt +``` + +![View Running Containers][10] + +Here, + +* f7e04eed577e is the ID of the Ubuntu container that is created with image "2f2a5b826762". And, "brave_mclean" is the name of this container. +* 2f2a5b826762 is the ID of the Ubuntu container that is created with image "ubuntu:latest". And, "hungry_leavitt" is the name of this container. + +Whenever a new container is created, a unique ID and name will be given to it, so we can access the container using either its ID or name. + +**Heads Up:** Please note that **Container ID and Docker image ID are different**. + +To list all available (either running or stopped) containers, run: + +``` +$ sudo docker ps -a +``` + +#### 6. Attach To Or Detach From Running Containers + +First, find the name or ID of the container with `docker ps` command. + +``` +$ sudo docker ps +``` + +Next, attach to the running container using `docker attach` command. + +``` +$ sudo docker attach +``` + +For instance, I am going to attach to the container that has the ID "f7e04eed577e" like below: + +``` +$ sudo docker attach f7e04eed577e +``` + +You can also attach to a container using its name as well. + +``` +$ sudo docker attach brave_mclean +``` + +Now you're logged in to the container. + +To detach from the container, simply press **CTRL+P** followed by **CTRL+Q**. + +#### 7. Start, Restart, Pause, And Stop Containers + +You can start, restart, pause or stop a Docker container using its name or container ID. + +First, find the name or ID of the container with `docker ps -a` command. + +![Find Container ID And Name][11] + +Now you can start a container using `docker start` command with name or ID like below. + +``` +$ sudo docker start modest_cray +``` + +``` +$ sudo docker start 10615254bb45 +``` + +You can **start multiple containers** with space-separated like below. + +``` +$ sudo docker start 24b5ee8c3d3a 56faac6d20ad d74f2ceb5f3a +``` + +To gracefully restart a running container, do: + +``` +$ sudo docker start 10615254bb45 +``` + +To pause processes in a running container: + +``` +$ sudo docker pause 10615254bb45 +``` + +To Unpause processes in a running container: + +``` +$ sudo docker unpause 10615254bb45 +``` + +To block a container until others stop: + +``` +$ sudo docker wait 10615254bb45 +``` + +Similarly we can stop a docker container using its name or ID. If you're already inside the container's shell, you can stop the container by simply running the following command: + +``` +# exit +``` + +You can also stop (power off the container) from the Docker host system using the following command: + +``` +$ sudo docker stop 10615254bb45 +``` + +You can exit multiple containers with space-separated as shown below. + +``` +$ sudo docker stop 35b5ee8c3d3a 10615254bb45 +``` + +After exiting the container, verify if it is really stopped by listing the running containers with command: + +``` +$ sudo docker ps +``` + +#### 8. Kill Docker Containers + +The docker stop command will gracefully turn off a running container. Sometimes, you may stuck with an unresponsive container or you want to forcibly shutdown a container. + +To kill a container by sending a `SIGKILL` to a running container, run: + +``` +$ sudo docker kill 10615254bb45 +``` + +#### 9. Automatically Delete Containers After Closing Them + +You may want to test a Container and then delete it once you're done with the Container. If so, you can automatically delete the Container after closing it by using `--rm` flag: + +``` +$ sudo docker run -it --rm debian:latest +``` + +Once you exit from the Container, it will be automatically deleted. + +![Automatically Delete Containers][12] + +As you see in the above output, I created a new Debian container. Once I exit from the container, it is automatically deleted. The `docker ps -a` output shows that the Debian container doesn't exist. + +#### 10. Assign Name To Containers + +If you closely look into the output of previous commands, each container is given a random name when you start a container. If you don't name your Containers, Docker will name them for you automatically. + +Have a look at the following example. + +``` +$ sudo docker run -it -d alpine:latest +2af79e97a825c91bf374b4862b9e7c22fc22acd1598005e8bea3439805ec335d +``` + +``` +$ sudo docker run -it -d alpine:latest +80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a +``` + +``` +$ sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +80b53b7e661d alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds bold_margulis +2af79e97a825 alpine:latest "/bin/sh" 6 seconds ago Up 5 seconds recursing_taussig +``` + +As you see in the above output, even though I have created two containers using the same docker image, they both gets different ID and name. + +If you want to assign a static name to the container, use `--name` flag like below: + +``` +$ sudo docker run -it -d --name ostechnix_alpine alpine:latest +``` + +The above command will create run a new Container called **ostechnix_alpine** in detached mode. + +let us view list of the running Containers: + +``` +$ sudo docker ps +``` + +**Sample Output:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +397111fac537 alpine:latest "/bin/sh" 2 seconds ago Up 2 seconds ostechnix_alpine +80b53b7e661d alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes bold_margulis +2af79e97a825 alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes recursing_taussig +``` + +![Assign Name To Containers][13] + +Did you notice the name of the first Container in the above output? Yes, we've assigned a custom name (i.e. `ostechnix_alpine` ) to the Container. + +Assigning custom names to containers gives us a benefit. We can easily identify what is installed in that container by looking at the name of the container name. + +#### 11. Build Custom Docker Images + +Docker is not just for downloading and using the existing containers. You can create your own custom docker image as well. + +Let us start an Ubuntu container: + +``` +$ sudo docker run -it ubuntu:latest +``` + +Now, you will be in the container's shell. + +Then, install any software or do whatever you want in the container. + +For example, let us install **Apache web server** in the container. + +``` +# apt update +# apt install apache2 +``` + +Similarly, install and test any software of your choice in the Container. + +Once you're done, detach from the container (don't exit it) and return back to the host system's shell. Please do not stop or power-off the Container. To detach from the container without stopping it, press `CTRL+P` followed by `CTRL+Q`. + +From your Docker host terminal, run the following command to find the container ID: + +``` +$ sudo docker ps +``` + +Finally, create a Docker image of the running Container using command: + +``` +$ sudo docker commit 377e6d77ebb5 ostechnix/ubuntu_apache +``` + +**Sample Output:** + +``` +sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 +``` + +Here, + +* 377e6d77ebb5 – Ubuntu container ID. +* ostechnix – Name of the user who created the container. +* ubuntu_apache – Name of the docker image created by user ostechnix. + +Let us check whether the new Docker image is created or not with command: + +``` +$ sudo docker images +``` + +**Sample Output:** + +``` +ostechnix/ubuntu_apache +``` + +![Build Custom Docker Images][14] + +As you see in the above output, the new Docker image has been created in our Docker host system from the running Container. + +Now, you can create a new Container from the newly created Docker image as usual with command: + +``` +$ sudo docker run -it ostechnix/ubuntu_apache +``` + +#### 12. Removing Containers + +Once you're done all R&D with Docker containers, you can delete if you don't want them anymore. + +To do so, First we have to stop (power off) the running Containers. + +Let us find out the running containers with command: + +``` +$ sudo docker ps +``` + +**Sample Output:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +377e6d77ebb5 ubuntu:latest "bash" 7 minutes ago Up 7 minutes elegant_beaver +``` + +Stop the running container by using it's ID: + +``` +$ sudo docker stop 377e6d77ebb5 +``` + +Now, delete the container using command: + +``` +$ sudo docker rm 377e6d77ebb5 +``` + +Similarly, stop all containers and delete them if they are no longer required. + +Deleting multiple containers one by one can be a tedious task. So, we can delete all stopped containers in one go, just run: + +``` +$ sudo docker container prune +``` + +Type **"Y"** and hit `ENTER` key to delete the containers. + +``` +WARNING! This will remove all stopped containers. +Are you sure you want to continue? [y/N] y +Deleted Containers: +397111fac5374921b974721ee646b2d5fbae61ca9c6e8b90fbf47952f382a46b +80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a +[...] +Total reclaimed space: 176B +``` + +![Delete Containers][15] + +This command will work only with latest Docker versions. + +Verify if all the containers are deleted using the command: + +``` +$ sudo docker ps -a +``` + +If you don't see any output, all containers are deleted. + +#### 13. Removing Docker Images + +Remember, first you should remove all the containers before removing all the images from which those containers were created. + +Once you removed containers, you can delete the Docker images that you no longer need. + +To find the list of the Downloaded Docker images: + +``` +$ sudo docker images +``` + +**Sample Output:** + +``` +REPOSITORY TAG IMAGE ID CREATED SIZE +ostechnix/ubuntu_apache latest bc5e5f95ca59 14 minutes ago 229MB +debian latest d2780094a226 11 days ago 124MB +ubuntu latest 27941809078c 3 weeks ago 77.8MB +ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB +alpine latest e66264b98777 5 weeks ago 5.52MB +``` + +As you see above, we have 5 Docker images in our host system. + +Let us delete them by using their IMAGE id: + +``` +$ sudo docker rmi ce5aa74a48f1 +``` + +**Sample Output:** + +``` +Untagged: ostechnix/ubuntu_apache:latest +Deleted: sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 +Deleted: sha256:a8e4797160a2b2d33d8bd1bd67e008260c022b3a53fbcc198b2b74d9eae5961d +``` + +Similarly, delete all other Docker images. + +To remove all stopped containers, all images, build cache, all networks, run: + +``` +$ sudo docker system prune -a +``` + +Be careful while using this command. It will delete all unused containers, networks, images (both dangling and unreferenced). + +![Delete Everything In Docker][16] + +By default, volumes are not removed to prevent important data from being deleted even if there is currently no container using the volume. + +If you want to delete everything including the Volumes, use the `--volumes` flag. + +``` +$ sudo docker system prune -a --volumes +``` + +### Docker Troubleshooting + +Docker won't let you to delete the Docker images if they are used by any running or stopped containers. + +For example, when I try to delete a Docker Image with ID **b72889fa879c**, from one of my old Ubuntu server. I got the following error: + +``` +Error response from daemon: conflict: unable to delete b72889fa879c (must be forced) - image is being used by stopped container dde4dd285377 +``` + +This is because the Docker image that you want to delete is currently being used by another Container. + +So, let us check the running Container using command: + +``` +$ sudo docker ps +``` + +**Sample Output:** + +![Show running docker containers][17] + +Oops! There is no running container. + +Let us again check for all containers (running and stopped) with command: + +``` +$ sudo docker ps -a +``` + +**Sample Output:** + +![Show running and stopped docker containers][18] + +As you see, there are still some stopped containers are using one of the Docker images. So, let us delete all of the containers. + +**Example:** + +``` +$ sudo docker rm 12e892156219 +``` + +Similarly, remove all containers as shown above using their respective container's ID. + +Once you deleted all containers, finally remove the Docker images. + +**Example:** + +``` +$ sudo docker rmi b72889fa879c +``` + +That's it. Now verify if there are any other Docker images in the host with command: + +``` +$ sudo docker images +``` + +You will now probably won't have any docker images. + +### Conclusion + +In this comprehensive **getting started with Docker tutorial**, we explained Docker basics such as creating, running, searching, removing containers and also building own Docker image from a Container. We also explained how to delete Docker containers and images when they are no longer necessary. + +Hope you a got the basic idea about **Docker usage**. + +For more details, refer the official resource links given at the end of this guide or drop a comment in the comment section below. + +**Resources:** + +* [Docker website][19] +* [Docker Documentation][20] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/getting-started-with-docker/ + +作者:[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-docker-almalinux-centos-rocky-linux/ +[2]: https://ostechnix.com/install-docker-ubuntu/ +[3]: https://hub.docker.com/ +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Search-Docker-Images.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Download-Docker-Images.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/List-Docker-Images.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Image-Tag-and-ID.png +[8]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Containers-Using-Tag-1.png +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Containers-In-Background-1.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Containers.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Find-Container-ID-And-Name.png +[12]: https://ostechnix.com/wp-content/uploads/2022/07/Automatically-Delete-Containers.png +[13]: https://ostechnix.com/wp-content/uploads/2022/07/Assign-Name-To-Containers.png +[14]: https://ostechnix.com/wp-content/uploads/2022/07/Build-Custom-Docker-Images.png +[15]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Containers.png +[16]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Everything-In-Docker.png +[17]: https://ostechnix.com/wp-content/uploads/2016/04/sk@sk-_005-1-1.jpg +[18]: https://ostechnix.com/wp-content/uploads/2016/04/sk@sk-_006-1.jpg +[19]: https://www.docker.com/ +[20]: https://docs.docker.com/ From daa887c7fc157038d215d2e9292b23c110a1034e Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 22:36:58 +0800 Subject: [PATCH 0242/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220704=20Manage=20your=20files=20in=20your=20Linux?= =?UTF-8?q?=20terminal=20with=20ranger.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iles in your Linux terminal with ranger.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20220704 Manage your files in your Linux terminal with ranger.md diff --git a/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md b/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md new file mode 100644 index 0000000000..c42b94bdaf --- /dev/null +++ b/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md @@ -0,0 +1,115 @@ +[#]: subject: "Manage your files in your Linux terminal with ranger" +[#]: via: "https://opensource.com/article/22/7/manage-files-linux-terminal-ranger" +[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manage your files in your Linux terminal with ranger +====== +Try this lightweight open source tool to preview files without leaving the terminal. + +![Filing cabinet for organization][1] + +The most basic way to look at your files and folders is to use the commands `ls` and `ll`. But sometimes, I want to see not just the file metadata but also the contents of a file at a glance. For that, I use ranger. + +If you love working out of your console and using [Vim][2] or Vi, and you don’t want to leave your terminal for any reason, ranger is your new best friend. Ranger is a minimal file manager that allows you not only to navigate through the files but also to preview them. Ranger comes bundled with rifle, a file executor that can efficiently choose programs that work with a given file type. + +### Installing ranger on Linux + +Ranger can be installed in Fedora or any RPM-based distro by running + +``` +$ sudo dnf install ranger +``` + +Ranger is also available for [other distros and macOS][3]. + +### Using ranger for the first time + +As a user, you can start ranger by simply typing `$ ranger` on your favorite terminal. The arrow keys give way to the navigation. This screenshot is an excellent example of how I can preview the code of the `config.example` file stored in `Kernel-tests`. + +![Screenshot of terminal showing config.example highlighted and a preview of the file in the terminal to the right][4] + +Picking any file and hitting F4 opens up your default editor and lets you edit the files right away! + +### What about images and videos? + +Using [rifle][5] with ranger lets you quickly find the program associated with a given file. Hovering over an image and then trying to open it is very simple; just hit Enter. Here’s how that looks: + +![Screenshot of a PNG file preview over a terminal window][6] + +Hitting i on an image file will give the user all the EXIF data. Hitting **S****hift+Enter** will open the PDF file. + +![A screenshot showing a preview of a PDF file (tickets to a museum) floating over the terminal window][7] + +The same key combo will open and start playing videos in the system's default video player that supports the codec. The example below is an mp4 video, which plays just fine on [VLC][8]. + +![Screenshot of a Bugcrowd University Cross Site Scripting video in VLC media player, previewed over the terminal][9] + +### File ops + +The following key bindings work well unless otherwise configured by the Vim user. + +j: Move down +k: Move up +h: Move to parent directory +gg: Go to the top of the list +i: Preview file +r: Open file +zh: View hidden files +cw: Rename current file +yy: Yank (copy) file +dd: Cut file +pp: Paste file +u: Undo +z: Change settings +dD: Delete file + +### Console commands + +Sometimes I have a folder that contains screenshots of a particular software when I am drafting articles. Selecting or marking files by hitting Space and then typing `:bulkrename` helps me move all the weird timestamps to, for example, lorax1, lorax2 , and so on. An example is below: + +![Screenshot of terminal showing timestamped files that can be renamed with the bulkrename command][10] + +Other useful console commands include: + +`:openwith` : Open a select file with a program of your choice +`:touch FILENAME` : Create a file +`:mkdir FILENAME` : Create a directory +`:shell ` : Run a command in shell +`:delete` : Delete files + +### Will it work in tty2/3/4? + +As someone who works in quality assurance (QA), I've found that searching for logs and reading them has never been easier. Even when my Gnome Display Manager crashes, I can switch over to my tty2, log in with my username and password, and start ranger with superuser permission, and then I am all sorted to explore! + +Ranger is a great tool for working with files without ever having to leave the terminal. Ranger is minimal and customizable, so give it go! + +Image by: (Sumantro Mukherjee, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/manage-files-linux-terminal-ranger + +作者:[Sumantro Mukherjee][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/sumantro +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/files_documents_organize_letter.png +[2]: https://opensource.com/tags/vim +[3]: https://opensource.com/article/20/3/ranger-file-navigator +[4]: https://opensource.com/sites/default/files/2022-06/ranger%201.png +[5]: https://www.systutorials.com/docs/linux/man/1-rifle/ +[6]: https://opensource.com/sites/default/files/2022-06/ranger%202.png +[7]: https://opensource.com/sites/default/files/2022-06/ranger%203.png +[8]: https://opensource.com/article/21/2/linux-media-players +[9]: https://opensource.com/sites/default/files/2022-06/ranger%204.png +[10]: https://opensource.com/sites/default/files/2022-06/ranger%205.png From 2d6427d2e3dc183c6072d4a10a0c08f17b851c66 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 4 Jul 2022 22:37:51 +0800 Subject: [PATCH 0243/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220704=20massCode-=20A=20Free=20and=20Open-Source?= =?UTF-8?q?=20Code=20Snippet=20Manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ee and Open-Source Code Snippet Manager.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md diff --git a/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md b/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md new file mode 100644 index 0000000000..b3cf66c1f4 --- /dev/null +++ b/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md @@ -0,0 +1,104 @@ +[#]: subject: "massCode: A Free and Open-Source Code Snippet Manager" +[#]: via: "https://itsfoss.com/masscode/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +massCode: A Free and Open-Source Code Snippet Manager +====== +Brief: An open-source code snippet manager that enables you to dabble with code, improve productivity, and save time. + +If a tool makes things faster and efficient, that is a life-saver for many developers. + +While there are different services and platforms that try to make the coding experience quicker, you still have several other options to consider. + +For instance, a code snippet manager. With a snippet manager, you aim to save a section of code that you want to quickly access. It is more like assigning shortcuts to add the required code in your program. + +This is not a new concept, but the tools available for the job may not be entirely open-source. + +Fortunately, I stumbled upon a decent project that provides you with a free and open-source snippet manager, i.e., massCode. + +### massCode: Cross-Platform Open-Source Snippet Manager + +![masscode][1] + +massCode is a useful snippet manager with some essential features. + +It supports a wide range of programming languages and also includes Markdown support. You can organize the snippets of your code using folders, add tags, and more. + +massCode is available for Linux, Windows, or macOS. Let’s take a look at some key features. + +### Features of massCode + +![masscode screenshot][2] + +massCode includes many useful functionalities. Some of them are: + +* Multi-level folder organizer +* Each snippet can be stored in fragments (tabs) +* Integrated coding editor, i.e., [Ace][3]. +* Code formatting or highlighting. +* Markdown support with preview. +* The ability to search for a snippet. +* Add descriptions to your snippet to know what it is for. +* Variety of dark/light themes available. +* Ability to migrate from [SnippetsLab][4]. +* Auto-save to help you retain your work. +* Integrate it with cloud synchronization folders. +* Extension support for VSCode, Raycast, and Alfred. + +In addition to all the features mentioned, you also get to easily copy the code snippets saved in a single click. + +For customization, you can tweak the font size and family, toggle Word Wrap, highlight lines, use single quotes, or add a trailing command thanks to [Prettier][5]. + +Moreover, you can have multiple fragments for a snippet. So, it gives you the opportunity to use it for a wide range of use cases. + +As mentioned, you can also integrate it with any of your cloud syncing services by changing the storage location to the synced folders. + +![masscode migrate preferences][6] + +Overall, it works well, with some limitations, like the ability to migrate nested folders from SnippetsLab to massCode. + +### Install massCode on Linux + +massCode is available as a [Snap package][7], but not on the Snap store. You can download the package directly and use the following command to get it installed: + +``` +sudo snap install --dangerous ~/Downloads/masscode_2.6.1_amd64.snap +``` + +One of our troubleshooting guides can help you know more about the [dangerous snap flag][8]. + +You can download it for Windows/macOS through its [official website][9] or its [GitHub releases section][10]. + +[massCode][11] + +Have you tried massCode yet? Is there any other code snippet manager available for Linux? Let me know your thoughts in the comments below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/masscode/ + +作者:[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/wp-content/uploads/2022/07/masscode-screenshot-1.png +[2]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-screenshot.png +[3]: https://github.com/ajaxorg/ace +[4]: https://apps.apple.com/us/app/snippetslab/id1006087419?mt=12 +[5]: https://prettier.io/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-migrate-preferences.jpg +[7]: https://itsfoss.com/install-snap-linux/ +[8]: https://itsfoss.com/snap-metadata-signature-error/ +[9]: https://masscode.io/ +[10]: https://github.com/massCodeIO/massCode/releases/tag/v2.6.1 +[11]: https://masscode.io/ From ffddb5186b22a72e5f12d072ba58969bcaa1d99b Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 5 Jul 2022 08:37:09 +0800 Subject: [PATCH 0244/3123] translated --- ...l for Converting Videos from Any Format.md | 117 ----------------- ...l for Converting Videos from Any Format.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 117 deletions(-) delete mode 100644 sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md create mode 100644 translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md diff --git a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md deleted file mode 100644 index b7e66362ef..0000000000 --- a/sources/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md +++ /dev/null @@ -1,117 +0,0 @@ -[#]: subject: "HandBrake: Free Tool for Converting Videos from Any Format" -[#]: via: "https://www.debugpoint.com/handbrake/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -HandBrake: Free Tool for Converting Videos from Any Format -====== -Learn about HandBrake, an excellent utility for converting videos from any format to the destination types. - -This article contains features, download instructions and a usage guide. - -### HandBrake - -In this age of social media, we all play around with videos, reels and, of course, the formats that come with it. So, if you are in a Linux platform or even in WIndows, you may use any other software to convert various videos for several platforms. But if you need a simple but feature-rich video converter that takes care of your all video formats from multiple sources, try HandBrake. - -#### Features - -HandBrake has a huge set of options that make it a unique tool. Firstly, the workflow is super easy. In fact, its just three steps: - -* Select a video -* Choose a target format -* Convert - -As you can see, if you are a novice user, it is super easy to work with this tool because the attributes of the target format (e.g. bit rate, dimensions) are based on the default preset. - -Secondly, if you want advanced editing, such as adding subtitles from the subtitle files while converting, it is also possible using this tool. - -In addition, you can also change the dimensions, flip the video, change resolutions, modify the aspect ratio, and crop. Moreover, a set of basic filter configurations such as Denoise and Sharpen can also be done. - -Moreover, adding Chapters, tags and audio tracks to your video files is always easy. - -Perhaps the vital feature of HandBrake is the availability of presets which cater to the modern needs of social media and streams. For example, the presets are aligned with streaming platforms and streaming devices such as: - -* Discord -* GMail -* Vimeo -* Amazon Fire Stick -* Apple Devices -* Chromecast -* Playstation -* Roku -* Xbox - -A pretty impressive list, isn’t it? Not only that, if you are a professional worker, it helps you define and create Queue for your conversions. The Queue feature allows you to batch convert multiple video files in your workflow. - -Finally, you can convert to MPEG-4 (mp4), Matroska (mkv) and WebM formats. - -![HandBrake with various features][1] - -### Download and Installation - -Downloading and installation of HandBrake is easy for any platform (Linux, Mac and Windows). The developers provide direct executables, which are free to download. - -Since the primary target audience of this portal is Linux users, we will talk about the installation of HandBrake in Linux. - -For Ubuntu, Linux Mint and all other distributions, the preferable method is Flatpak. You can [set up Flatpak][2] and then click the below button to install HandBrake: - -[Install HandBrake via Flathub][3] - -For Windows, macOS installer visit this page. - -One interesting feature is that you can use this application via the command line! That means you can further customize your workflow using the command line utility, which you can find [here][4]. - -### How to Use HandBrake to convert Videos? [Example] - -Since you installed it, let’s see how you can convert a sample video with just three steps. - -1. Open HandBrake and click on the “Open Source” button at the top toolbar. Select your video file. -2. Now, select the target file type from the Format dropdown. Make sure to check the destination folder (the default is Videos). -3. Finally, click on the Start button at the top toolbar to convert a video using HandBrake. - -![HandBrake Video Conversion in three simple steps][5] - -You can find a nice display on the conversion progress at the bottom of the window. - -![Encoding status][6] - -The above steps are the most basic ones. If you want further control over the video, you can change the options and also choose from a vast list of presets I explained earlier. - -### FAQ - -Yes, it is a free and open-source application, and you can download it for free. - -Yes, you can easily install HandBrake in macOS, Windows 10, and Windows 11. - -You can download HandBrake only from the official website https://handbrake.fr/ and no-other place. - -### Closing Notes - -Handbrake is one of the professional-grade free and open-source video encoders available today. It is a time-tested application used by millions of users daily. I hope this guide helps you to learn about this fantastic tool and get you started with your video projects. - -**The demo video is used from [Pexels – cottonbro][7]** - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/handbrake/ - -作者:[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/06/HandBrake-with-various-features.jpg -[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ -[3]: https://dl.flathub.org/repo/appstream/fr.handbrake.ghb.flatpakref -[4]: https://handbrake.fr/downloads2.php -[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/HandBrake-Video-Conversion-in-three-simple-steps.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/Encoding-status.jpg -[7]: https://www.pexels.com/video/hands-hand-table-colorful-3997786/ diff --git a/translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md new file mode 100644 index 0000000000..8dd7a960dd --- /dev/null +++ b/translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md @@ -0,0 +1,123 @@ +[#]: subject: "HandBrake: Free Tool for Converting Videos from Any Format" +[#]: via: "https://www.debugpoint.com/handbrake/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +HandBrake:用于转换任何格式视频的免费工具 +====== +了解 HandBrake,这是一个优秀的工具,可以将任何格式的视频转换为目标类型。 + +本文包含功能、下载说明和使用指南。 + +### HandBrake + +在这个社交媒体的时代,我们都在拍沉浸式视频,当然还有随之而来的格式。因此,如果你是在 Linux 平台,甚至是在 Windows 平台,你可以使用任何其他软件来转换各种视频,用于多个平台。但是,如果你需要一个简单但功能丰富的视频转换器来处理来自多个来源的所有视频格式,请尝试 HandBrake。 + +#### 功能 + +HandBrake 有大量的选项,使其成为一个独特的工具。首先,工作流程是超级简单。事实上,它只是三个步骤: + +* 选择一个视频 +* 选择一个目标格式 +* 转换 + +正如你所看到的,如果你是一个新手用户,使用这个工具是非常容易的,因为目标格式的属性(如比特率,尺寸)是基于默认的预设。 + +其次,如果你想进行高级编辑,如在转换时从字幕文件中添加字幕,也可以使用这个工具。 + +此外,你还可以改变尺寸,翻转视频,改变分辨率,修改长宽比,以及裁剪。此外,一套基本的过滤器配置,如去噪和锐化也可以完成。 + +另外,为你的视频文件添加章节、标签和音轨也很容易。 + +也许 HandBrake 的重要功能是提供预设,以满足现代社会媒体和流媒体的需求。例如,预设与流媒体平台和流媒体设备相一致,如: + +* Discord +* GMail +* Vimeo +* 亚马逊 Fire Stick 电视棒 +* 苹果设备 +* Chromecast +* Playstation +* Roku +* Xbox + +一个相当令人印象深刻的列表,不是吗?不仅如此,如果你是一个专业工作者,它可以帮助你定义和创建转换队列。队列功能允许你在工作流程中批量转换多个视频文件。 + +最后,你可以转换为 MPEG-4(mp4),Matroska(mkv)和 WebM 格式。 + +![HandBrake with various features][1] + +### 下载和安装 + +下载和安装 HandBrake 对于任何平台(Linux、Mac 和 Windows)都很容易。开发者直接提供可执行文件,可以免费下载。 + +由于本门户网站的主要目标受众是 Linux 用户,我们将讨论 HandBrake 在 Linux 中的安装。 + +对于 Ubuntu、Linux Mint 和所有其他发行版,最好的方法是 Flatpak。你可以[设置 Flatpak][2],然后点击下面的按钮来安装 HandBrake: + +[通过 Flathub 安装 HandBrake][3] + +对于 Windows、macOS 的安装程序,请访问这个页面。 + +一个有趣的特点是,你可以通过命令行使用这个应用程序!这意味着你可以进一步定制你的应用。这意味着你可以使用命令行工具进一步定制你的工作流程,你可以在[这里][4]下载。 + +### 如何使用 HandBrake 来转换视频?(示例) + +既然你安装了它,让我们看看你如何只用三个步骤就能转换一个示例视频。 + +1. 打开 HandBrake,点击顶部工具栏上的 “Open Source” 按钮。选择你的视频文件。 +2. 现在,从格式下拉菜单中选择目标文件类型。确保选中目标文件夹(默认为视频)。 +3. 最后,点击顶部工具栏的开始按钮,用 HandBrake 转换视频。 + +![HandBrake Video Conversion in three simple steps][5] + +你可以在窗口的底部找到一个漂亮的转换进度显示。 + +![Encoding status][6] + +上面的步骤是最基本的步骤。如果你想进一步控制视频,你可以改变选项,也可以从我前面解释的大量预设列表中选择。 + +### 常见问题 + +**HandBrake 是免费使用么?** + +是的,它是一个免费和开源的应用程序,你可以免费下载它。 + +**它可在 Mac 和 Windows 上用么?** + +是的,你可以在 macOS、Windows 10 和 Windows 11 中轻松安装 HandBrake。 + +**如何下载 HandBrake?** + +你只能从官方网站 https://handbrake.fr/ ,不能从其他地方下载 HandBrake。 + +### 结束语 + +Handbrake 是如今可用的专业级免费和开源视频编码器之一。它是一个经过时间考验的应用,每天有数百万用户使用。我希望本指南能帮助你了解这个神奇的工具,让你开始你的视频项目。 + +**演示视频来自 [Pexels - cottonbro][7]**。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/handbrake/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/06/HandBrake-with-various-features.jpg +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://dl.flathub.org/repo/appstream/fr.handbrake.ghb.flatpakref +[4]: https://handbrake.fr/downloads2.php +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/HandBrake-Video-Conversion-in-three-simple-steps.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/Encoding-status.jpg +[7]: https://www.pexels.com/video/hands-hand-table-colorful-3997786/ From 7c855e457b43abfe4ff3f2da2dc8fa300e56b46c Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 5 Jul 2022 08:43:14 +0800 Subject: [PATCH 0245/3123] translating --- ...s with metadata for snap- Error in Ubuntu and other Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md b/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md index f18165eeb5..9debe9b5aa 100644 --- a/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md +++ b/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/snap-metadata-signature-error/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2b11c600985f3030fc8b0a28e000f2542733250a Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 11:16:54 +0800 Subject: [PATCH 0246/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220704=20New=20Features=20in=20the=20Upcoming=20Li?= =?UTF-8?q?nux=20Mint=2021=20Release.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s in the Upcoming Linux Mint 21 Release.md | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md diff --git a/sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md b/sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md new file mode 100644 index 0000000000..01184f0ba4 --- /dev/null +++ b/sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md @@ -0,0 +1,141 @@ +[#]: subject: "New Features in the Upcoming Linux Mint 21 Release" +[#]: via: "https://itsfoss.com/linux-mint-21-features/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +New Features in the Upcoming Linux Mint 21 Release +====== +This is a continually updated article to share the latest features added to the upcoming Linux Mint 21 release. + +You probably already know that Linux Mint is based on the long-term support (LTS) release of Ubuntu. + +Ubuntu 22.04 LTS was released a few months ago. This means that a new major version of Linux Mint is to follow sooner or later. + +And indeed the next major version, Linux Mint 21, is already in development. While there is no official release date announced, you should expect it to arrive by the end of July’22 or early August. + +### Linux Mint 21 is codenamed Venessa + +![linux mint 21][1] + +Every Linux Mint release, be it minor or major, has a codename. It is a female name normally of Greek or Latin release. + +Like Ubuntu, there is a pattern in the codename in Mint also. The codenames are in alphabetically increasing order for the major release but they use the same alphabet for the minor releases. + +For example, Mint 20 was called Ulyana, 20.1 Ulyssa, 20.2 Uma and 20.3 Una. Mint 19 series had codenamed starting with T. + +Mint 21 codename starts with V and the first release of the 21 series is called Venessa. + +There will be at least 3 more minor releases in the Mint 21 series and they will be released every six months until the next Mint major release in 2024. They all will have a codename starting with the letter V. + +### New features in Mint 21 Venessa + +There is not a lot of information available to the public about the features in Linux Mint 21. What I am listing here is based on the official updates, forums and GitHub repositories. I’ll be adding more as I test the beta version when it is released. + +#### New upgrade tool + +Existing Mint 20.3 users should be able to upgrade to Mint 21 relatively easier thanks to the [new upgrade tool][2]. + +![New Mint Upgrade tool in Linux Mint 21][3] + +Earlier, upgrading to a major version involved using the terminal. Now everything should be done with a few mouse clicks in the new GUI tool. + +It will show what packages have been upgraded and which packages won’t be upgraded. It supports several languages. It even checks if your PPA and custom repositories are supported in the new version. + +![New Mint Upgrade tool in Linux Mint 21][4] + +Overall an excellent tool to ease the upgrade process. It’s good to see that Mint focuses on developing graphical tools to help its users. + +#### New Bluetooth application + +Though not developed by the Mint team, Mint 21 will feature the Blueman tool for managing the Bluetooth settings. + +![New Bluetooth settings in Linux Mint 21][5] + +What’s wrong with the existing Blueberry tool? Nothing really. But since it is not compatible with GNOME 42 (which is the base for the next version of Cinnamon desktop). As lead developer, Clem [mentioned][6], “There is also frustration upstream from the GNOME Bluetooth development team who simply does not want to have users from other desktops than GNOME and so Blueberry will probably get discontinued.” + +Blueberry had a simple interface whereas Blueman has plenty of settings you’ll hardly need. + +#### Timeshift becomes a Mint tool + +Mint team has been recommending Timeshift for system settings backups for some time now. It almost felt a part of the Mint applications suite. I actually[mistakenly said that in one of the YouTube videos as well][7]. + +But the good news is that the Mint team has taken over the development of the Timeshift application. It is now part of the XApp and you should see it even more integrated within the Linux Mint ecosystem. + +There are already a few developments to it. For example, in rsync mode, Timeshift now calculates the required space for the next snapshot and skips it if performing that snapshot leads to less than 1GB of free space on the disk. + +![timeshift mint21][8] + +#### WebP image support + +WebP image format is getting popular these days among website owners. They are smaller in size without compromising on quality. + +If you try to download images from the internet and they are in WebP format, they are opened with a web browser. You’ll have to install additional packages for [WebP support in other Linux distributions][9]. + +Mint 21 will have WebP support enabled by default. You can open the WebP images in the image viewer and the images will be displayed with Thumbnail in the Nemo file manager. + +#### No negative impact on dual boot + +It was noticed in Ubuntu 22.04 release that Windows disappeared from the Grub menu in dual boot systems. It was because the os-prober feature was disabled by default in version 2.6 of [Grub bootloader][10]. + +Mint team has correctly decided to enable the os-prober by default. This means that the Grub bootloader with Mint 21 should be able to properly detect Windows (and other OS) as it used to previously. + +#### No surprise killing of applications (like Ubuntu 22.04) + +Ubuntu 22.04 introduced the [systemd-oomd][11], a userspace out-of-memory (OOM) killing service. This service takes “corrective action before an OOM occurs in the kernel space”. + +So when the system is struggling with memory pressure, this service jumps into action to ensure that system keeps running. How does it do that? By killing some running applications. + +But that’s created a problem as[Ubuntu users complained of random closing of running applications][12]. + +For this reason, Mint team has decided against including this ‘performance improving’ feature in the upcoming Mint 21. + +How does that impact you as an end user? Well, if you tried downloading some images from the internet, it might be in + +#### AppImage support as it is + +It looks like Mint 21 is undoing a lot of things that Ubuntu 22.04 have done. The libfuse library has been removed from Ubuntu 22.04 LTS and hence you [cannot run AppImage applications][13] unless you install it explicitly. + +The Mint team takes note of this pain point and has included libfuse2 and libfuse3-3 by default in Mint 21. + +#### Newer software and kernel + +Of course, Mint 21 will have newer versions of many popular applications and Kernel 5.15 LTS. + +The newer version of the Cinnamon desktop environment should bring visual changes as well. More on that when the new version is out. + +#### More to come … + +Mint 21 is under heavy development. While you won’t see regular updates from the Mint team on its development, we’ll have a clearer picture of what’s coming when the beta version is released. + +Meanwhile, do express your views on Linux Mint 21. What kinds of features are you expecting in the new version? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-mint-21-features/ + +作者:[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/07/linux-mint-21.png +[2]: https://github.com/linuxmint/mintupgrade +[3]: https://itsfoss.com/wp-content/uploads/2022/07/mintupgrade.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/mintupgrade2.png +[5]: https://itsfoss.com/wp-content/uploads/2022/07/blueman-800x458.png +[6]: https://blog.linuxmint.com/?p=4323 +[7]: https://www.youtube.com/watch?v=XWrZvRnAda0&t=45s +[8]: https://itsfoss.com/wp-content/uploads/2022/07/timeshift_mint21-800x648.png +[9]: https://itsfoss.com/webp-ubuntu-linux/ +[10]: https://itsfoss.com/what-is-grub/ +[11]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html +[12]: https://www.omgubuntu.co.uk/2022/06/ubuntu-22-04-systemd-oom-killing-apps +[13]: https://itsfoss.com/cant-run-appimage-ubuntu/ From b5c5064904483085be42921ebe125fce99be331d Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 11:45:06 +0800 Subject: [PATCH 0247/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220630=20With=20Extensions,=20GNOME=20Web=20is=20S?= =?UTF-8?q?lowly=20Becoming=20an=20Attractive=20Option=20on=20Desktop=20Li?= =?UTF-8?q?nux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... is Slowly Becoming an Attractive Option on Desktop Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md b/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md index 8e5bee2c16..c90600ea35 100644 --- a/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md +++ b/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/gnome-web-extensions-dev/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3cc34f632e324dfdceddc2a585411068107d7d68 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 13:01:54 +0800 Subject: [PATCH 0248/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220630=20With=20Extensions,=20GNOME=20Web=20is=20S?= =?UTF-8?q?lowly=20Becoming=20an=20Attractive=20Option=20on=20Desktop=20Li?= =?UTF-8?q?nux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g an Attractive Option on Desktop Linux.md | 88 ------------------- ...g an Attractive Option on Desktop Linux.md | 88 +++++++++++++++++++ 2 files changed, 88 insertions(+), 88 deletions(-) delete mode 100644 sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md create mode 100644 translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md diff --git a/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md b/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md deleted file mode 100644 index c90600ea35..0000000000 --- a/sources/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: subject: "With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux" -[#]: via: "https://news.itsfoss.com/gnome-web-extensions-dev/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux -====== -GNOME Web is looking to shape up as the perfect Linux browser. Do you think so? - -![gnome web][1] - -GNOME Web (Epiphany) is one of the [best browsers available for Linux users][2]. - -It offers a minimal, and a unique user experience. - -Unfortunately, the uniqueness does not incentivize users to use it as their primary web browser. - -But, it looks like that could change soon… - -GNOME Web is finally adding support for WebExtensions, as revealed by one of the developers (**Patrick a.k.a TingPing**). - -This is all a part of the GNOME 43 feature set. - -### GNOME Web with WebExtensions - -![][3] - -A minimal-looking browser, with extension support, what more can I ask for? - -I don’t know about you, but I’ve been bummed by the fact that GNOME Web did not have extension support. - -So, this makes me excited! - -For now, this is experimental support for **Epiphany 43.alpha** version. So, you can only test it as an adventure with GNOME Web’s beta/alpha builds available. - -The developer mentions: - -> Epiphany 43.alpha supports the basic structure described above. We are currently modeling our behavior after Firefox’s ManifestV2 API which includes compatibility with Chrome extensions where possible. Supporting ManifestV3 is planned alongside V2 in the future. - -You will have to explicitly enable the extension support using the terminal, and then install the extensions by downloading + adding the **.xpi** files for the extensions. - -[Mozilla’s Firefox add-ons web portal][4] is the one you need to visit for the extensions. - -![][5] - -You can install the latest development version for Epiphany (GNOME Web) and enable extensions using the following commands: - -``` -flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo -flatpak install gnome-nightly org.gnome.Epiphany.Devel -flatpak run --command=gsettings org.gnome.Epiphany.Devel set org.gnome.Epiphany.web:/org/gnome/epiphany/web/ enable-webextensions true -``` - -Note that it is actively in development, and may not work as expected. You may want to keep an eye on the terminal for any errors and resolve that if it did not work for you on the first try. - -For more technical details, you can read [TingPing’s blog post][6]. - -### Your Next Daily Driver? - -GNOME Web is an entirely unique alternative to Firefox and Chrome/Chromium-based browsers on Linux. - -So, with the upcoming support for extensions, would you be willing to give it a try as your main browser? - -*What do you think about the improvements arriving in GNOME Web (or Epiphany)?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-web-extensions-dev/ - -作者:[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/06/gnome-web-adds-extensions-support.jpg -[2]: https://itsfoss.com/best-browsers-ubuntu-linux/ -[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-extensions.png -[4]: https://addons.mozilla.org/en-US/firefox/extensions/ -[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-extensions-1.png -[6]: https://blog.tingping.se/2022/06/29/WebExtensions-Epiphany.html diff --git a/translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md b/translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md new file mode 100644 index 0000000000..92ff229027 --- /dev/null +++ b/translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md @@ -0,0 +1,88 @@ +[#]: subject: "With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux" +[#]: via: "https://news.itsfoss.com/gnome-web-extensions-dev/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +有了扩展,GNOME Web 正逐渐成为 Linux 桌面上一个有吸引力的选择 +====== +GNOME Web 正在打磨成一个完美的 Linux 浏览器。你认同吗? + +![Gnome Web 浏览器][1] + +GNOME Web(Epiphany)是 [可供 Linux 用户使用的最佳浏览器][2] 之一。 + +它提供了简约且独特的用户体验。 + +不幸的是,这种独特性并没有激励用户把它作为主力网络浏览器。 + +但是,看起来这种情况很快就会改变…… + +根据其中一位开发者(Patrick,网名 TingPing)透露,GNOME Web 终于添加了对 WebExtensions 的支持。 + +它将会是 GNOME 43 新功能的一部分。 + +### 带有 WebExtensions 的 GNOME Web + +![][3] + +一个浏览器,外观简约,还支持扩展,夫复何求啊! + +我不知道你怎么想,但我对于 GNOME Web 不支持扩展这件事,一直耿耿于怀。 + +所以,这个消息真的让我很兴奋! + +目前,这只是对 **Epiphany 43.alpha** 版本的实验性支持。因此,你只能使用 GNOME Web 的 beta/alpha 构建来测试它。 + +开发者提到: + +> Epiphany 43.alpha 支持上述的基本结构。我们目前正在根据 Firefox 的 ManifestV2 API 来建模行为,同时也尽可能与 Chrome 扩展程序保持兼容。未来,我们计划在保留 V2 的同时,支持 ManifestV3。 + +你必须在终端中显式启用扩展支持,然后下载、添加扩展的 **.xpi** 文件,以安装浏览器扩展。 + +你需要访问 [Mozilla 的 Firefox 附加组件门户网站][4] 来获得扩展程序。 + +![][5] + +你可以安装 Epiphany(GNOME Web)的最新开发版本,并使用以下命令启用扩展: + +``` +flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo +flatpak install gnome-nightly org.gnome.Epiphany.Devel +flatpak run --command=gsettings org.gnome.Epiphany.Devel set org.gnome.Epiphany.web:/org/gnome/epiphany/web/ enable-webextensions true +``` + +请注意,它仍在积极开发中,可能无法按预期工作。在第一次尝试时,你可能需要密切关注终端是否有错误,如果有的话,要先解决它才行。 + +如果你想了解更多技术细节,你可以阅读 [TingPing 的博文][6]。 + +### 你的下一个主力浏览器? + +与 Linux 上的基于 Firefox 和 Chrome/Chromium 的浏览器相比,GNOME Web 是一个的完全独特的替代品。(LCTT 译注:GNOME Web 基于 WebKit 引擎。) + +那么,随着即将推出的扩展支持,你愿意尝试将 GNOME Web 作为你的主力浏览器吗? + +*你如何看待 GNOME Web(或 Epiphany)中的改进呢?请在下方评论区中告诉我们吧!* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-web-extensions-dev/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-adds-extensions-support.jpg +[2]: https://itsfoss.com/best-browsers-ubuntu-linux/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-extensions.png +[4]: https://addons.mozilla.org/en-US/firefox/extensions/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/06/gnome-web-extensions-1.png +[6]: https://blog.tingping.se/2022/06/29/WebExtensions-Epiphany.html From f3476b5c111bf4da77807011cbc4ac399985ffe0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 5 Jul 2022 13:30:49 +0800 Subject: [PATCH 0249/3123] RP @Donkey-Hao https://linux.cn/article-14794-1.html --- ...ential Ubuntu Apps For Everyone in 2022.md | 195 +++++++++++++++++ ...ential Ubuntu Apps For Everyone in 2022.md | 206 ------------------ 2 files changed, 195 insertions(+), 206 deletions(-) create mode 100644 published/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md delete mode 100644 translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md diff --git a/published/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/published/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md new file mode 100644 index 0000000000..4b04331930 --- /dev/null +++ b/published/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md @@ -0,0 +1,195 @@ +[#]: 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: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14794-1.html" + +10 大必备 Ubuntu 应用:基本篇 +====== + +![](https://img.linux.net.cn/data/attachment/album/202207/05/132504xx09az5i4ip0pel5.jpg) + +> 本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 基本应用。 + +不管你是偶尔使用的用户、学生、老师,还是科学家、开发人员和创意工作者,在工作上你需要各种各样的应用程序。Linux 生态系统有数以千计的应用程序,它们分散在各个角落,几乎可以满足各种需求。而包括 Ubuntu 在内的大多数主流 Linux 发行版,默认都只提供了基本的应用程序。 + +在这个五篇系列文章的第一篇中,我们列出了一些每个人都用的上的专门应用。 + +### 1、GNOME 优化工具 + +如果你在使用 Ubuntu GNOME 版,GNOME 优化工具GNOME Tweak Tool是你必备的实用工具。使用这个工具来定制你的桌面,你可以改变字体、缩放比例、主题、光标和许多其他选项。默认的设置窗口现在没有列出所有这些选项。 + +此外,你也能用该应用改变窗口装饰、标题栏、标题栏按钮以及开机启动项。 + +你可以使用应用商店搜索 “Tweaks” 来安装它,或者通过下列终端的命令来安装: + +``` +sudo apt install gnome-tweaks +``` + +![GNOME Tweaks Tool][2] + +### 2、Steam + +由于 Valve 公司和相关社区的贡献,在 Linux 上玩游戏不再困难。[Steam][3] 是 Valve 公司开发的电子游戏服务的前端平台,你可以通过 Steam 在 Ubuntu 上获取最新的游戏版本。此外,Steam 客户端提供反外挂监测、自动更新,和支持带有流媒体功能的社交对话。 + +如果你是一个 Linux 游戏玩家,Steam 是常用的客户端,你可以用下面的命令来安装。此外,你可以在应用商店中搜索 “Steam Installer” 并使用 [Flatpak][4] 或 [Snap][5] 进行安装。 + +``` +sudo apt install steam +``` + +![Steam Client][6] + +### 3、Peek + +在我看来,[Peek][7] 是一款被低估的应用。它是一个 GIF 动画录像机,对各种工作场景都非常有用。这是一款非常强大的应用程序,它适合在 Ubuntu 或任何 Linux 发行版中使用。此外,Peek 带有诸如录制区域选择、倒计时、GIF/MP4/WebM 支持等选项。它的后端使用的是 ffmpeg 。 + +在应用商店中搜索 “peek” 或者在命令行输入以下命令来安装这款优秀的应用。 + +``` +sudo apt install peek +``` + +![Peek][8] + +### 4、新立得 + +[新立得][9]Synaptic 是一款杰出的软件包管理器,可以帮助你以传统方式添加和移除软件包。有经验的 Linux 用户知道它的特性以及灵活性。你可以在各种库中搜索软件包、验证依赖性并进行安装。 + +如果你经常安装和卸载软件包,这是一个完美的应用程序。你可以通过以下命令或在应用商店中搜索 “synaptic” 来安装它。 + +``` +sudo apt install synaptic +``` + +![Synaptic Package Manager][10] + +### 5、GDebi + +正如上面提到的新立得,你也可以试试 [GDebi][11] 软件包安装程序,它带有几种功能。GDebi 软件包安装程序是用于安装外部 deb 文件的命令行实用程序。此外,GDebi 安装 .deb 包速度更快、效率更高,可以快速解决依赖关系并为你下载它们。 + +它是 Ubuntu 上安装 .deb 包最好的终端程序之一,你可以用以下命令安装它。安装后,你可以运行 `gdebi <你的 .deb 软件包路径>` 来安装任何软件包。 + +``` +sudo apt install gdebi +``` + +### 6、Geary + +不管从事什么工作,你需要一个 Ubuntu 桌面的本地 [邮箱客户端][12]。电子邮件对很多人来说仍然是有意义和有价值的。尽管 Ubuntu 默认带有最好的 Thunderbird 电子邮件客户端,但你也可以试试其它的电子邮件客户端应用,或许可以给你带来更好体验。 + +[Geary][13] 拥有友好而简洁的用户界面,能够让你更简单的设置多个邮件账号。此外, Geary 也带来了会话功能、更快的搜索、撰写富文本电子邮件以及其他功能,这使它成为 Linux 桌面的“首选”电子邮件客户端。 + +你可以使用如下命令或者在应用商店中搜索 “Geary” 来安装 Geary 。也可以通过 [Flatpak][14] 获得。 + +``` +sudo apt install geary +``` + +![Geary][15] + +### 7. 谷歌 Chrome 浏览器 + +虽然很多人担心隐私以及跟踪,但谷歌 Chrome 仍然是浏览器市场的领头者。Ubuntu 默认提供了 Firefox 浏览器,但随着近期火狐的 Snap 事件,你可能想换到其它浏览器。 + +如果你与谷歌生态系统密切相关,并希望在流媒体和浏览方面获得更好的网络体验,你可能会考虑使用谷歌 Chrome。但是,如果你担心隐私和跟踪,你可以选择其他一些浏览器,例如 Brave 或 Vivaldi。 + +你可以从下面链接中下载 .deb 包来安装谷歌 Chrome 安装器。安装后,你可以打开应用商店来安装它。 + +> **[下载谷歌 Chrome][16]** + +### 8、Kdenlive + +[Kdenlive][17] 是 Linux 上最好的自由开源的视频编辑器之一。 Kdenlive 设计良好的用户界面易于使用,并且带来了各种功能。使用 Kdenlive,你可以简单的导入视频片段,更改画布分辨率,并在编辑后导出为多种格式。时间线和工具让只需你单击一个按钮即可剪切和添加标题、转场和效果。此外,如果你是视频编辑新手,学习起来也非常容易。 + +Kdenlive 是一个非常活跃的项目,每个主要版本都会带有更多先进的功能。这是 2022 年必不可少的 Ubuntu 应用程序之一,如果你想与其它 [免费视频编辑器][18] 进行比较,你可以看看此列表。 + +使用以下命令安装 Kdenlive 很简单。除此,你可以用 [Flatpak][19] 或 [Snap][20] 版本来安装。 + +``` +sudo apt install kdenlive +``` + +![Kdenlive Video Editor][21] + +### 9. Spectacle + +你可能尝试过很多截屏应用。但在我看来,[Spectacle][22] 或许是最好的、也是被低估了的一款应用。Spectacle 是一款 KDE 应用程序,速度超快,非常适合需要截屏并使用的任何工作需求。你可以在自定义的延时后截取整个桌面、部分桌面或窗口。如果需要,窗口截屏还可以选择截取窗口装饰和光标。Spectacle 还为你提供了一个内置的注释功能,可以涂鸦、书写和标记你的图像。 + +此外,你还可以直接从其主窗口在 GIMP 或任何图像编辑器中打开图像,并将其导出。此外,自动保存、将截屏复制到剪贴板以及共享到社交媒体是 Spectacle 的一些独特功能。 + +在我看来,它是一个带有内置屏幕录像机的完整截图工具。 + +你可以用以下命令或者从 [Snap][23] 中安装 Spectacle。 + +``` +sudo apt install kde-spectacle +``` + +![Spectacle Screenshot tool][24] + +### 10. VLC 媒体播放器 + +Ubuntu Linux 的 GNOME 版默认带有可以播放视频文件的 GNOME 视频应用程序。但由于缺乏解码功能,GNOME 视频无法播放多种视频格式。这就是为什么你应该考虑一下 [VLC 媒体播放器][25] —— 它是 Linux 桌面上的“首选”媒体播放器。 + +VLC 确实可以播放任何格式。它甚至可以帮助你播放数据不完整的损坏视频文件。它是强大的媒体播放器之一,你可以使用下面的命令来安装。 + +此外,如果你偏向于另一种安装方式,你可以通过 [Flatpak][26] 或者 [Snap][27] 安装。 + +``` +sudo apt install vlc +``` + +![VLC Media Player][28] + +### 结语 + +2022 年必备的 Ubuntu 应用程序系列的第 1 部分到此结束。通过以上信息,我希望你可以选择一些应用供你的日常使用。在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。 + +最后,请继续关注本 Ubuntu 应用程序系列的第 2 部分。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://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 diff --git a/translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md deleted file mode 100644 index e720e089ff..0000000000 --- a/translated/tech/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md +++ /dev/null @@ -1,206 +0,0 @@ -[#]: 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: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -2022 年人人必备的 10 大 Ubuntu 应用 -====== -本文列出了 2022 年各种情况下使用的 10 大 Ubuntu 必备应用。 - -如果你是偶尔使用的用户、学生、老师、科学家、开发人员或发明家,你需要为你的工作流程提供额外的应用程序。Linux 生态系统有数以千计的应用程序分散在各地,几乎可以满足所有可能的需求。大多数主流 Linux 发行版,包括 Ubuntu ,都只把基本的应用程序作为默认功能。 - -在这篇文章的第一部分(5个系列)中,我们为大家列出了一些专业级的应用。 - -### 2022 年 Ubuntu 必备应用--第一部分 - -#### 1. GNOME 调整工具 - -如果你在使用 Ubuntu GNOME 版本,GNOME 调整工具是你必备的实用工具。使用这个工具来定制你的桌面,你可以改变字体、缩放比例、主题、光标和许多其他选项。默认设置窗口现在没有列出所有选项。 - -此外,你也能用该应用改变窗口布局、标题栏、标题栏按钮以及开机启动项 - - -你可以使用应用商店搜索 "Tweaks" 来安装它,或者通过下列终端的命令来安装。 - -``` -sudo apt install gnome-tweaks -``` - -![GNOME Tweaks Tool][2] - -#### 2. Steam - -在 Linux 上玩游戏不再困难,感谢 Valve 公司和相关社区的贡献。[Steam][3] 是 Valve 公司开发的视频游戏的前端服务平台,你可以通过 Steam 在 Ubuntu 上获取最新的游戏版本。此外, Steam 客户端提供反外挂监测、自动更新并且支持带有流媒体功能的社交对话。 - -如果你用 Linux 玩游戏,Steam 是常用的客户端,你可以用下面的命令来安装。此外,你可以在应用商店中搜索 “Steam Installer” 并使用 [Flatpak][4] 或 [Snap][5] 进行安装。 - -``` -sudo apt install steam -``` - -![Steam Client][6] - -#### 3. Peek - -在我看来, [Peek][7] 是被低估的一款应用。它是一个对各种工作流非常有用的 GIF 动画记录器。这是一款非常强大的应用程序,它适合 Ubuntu 或任何 Linux 发行版。此外, Peek 带有如录制区域选择、倒计时、gif 、mp4 和 WebM 支持等选项。它的后端使用 ffmpeg 。 - -在应用商店中搜索 “peek” 或者在命令行输入以下命令来安装这款优秀的应用。 - - -``` -sudo apt install peek -``` - -![Peek][8] - -#### 4. Synaptic - -[Synaptic][9] 是一款杰出的软件包管理器,可以帮助你传统地添加和移除软件包。对 Linux 经验很少的用户知道它的特性以及灵活性。你可以在各种库中搜索软件包,验证依赖性并继续安装。 - -如果你经常安装和卸载软件包,这是一个完美的应用程序。你可以通过以下命令或在应用商店中搜索 “synaptic” 来安装它。 - - -``` -sudo apt install synaptic -``` - -![Synaptic Package Manager][10] - -#### 5. GDebi - -正如上面提到的 Synaptic ,你也可以试试带有几种功能的 [GDebi][11] 包安装程序。 GDebi 包安装程序是是用于安装外部 deb 文件的命令行实用程序。此外, GDebi 安装 deb 包速度更快,效率更高,并快速解决依赖关系并为你下载它们。 - -它是 Ubuntu 上安装 deb 包最好的终端程序之一,你可以用以下命令安装它。安装后,你可以运行 `gdebi <你的 .deb 带路径的文件名>` 来安装任何包。 - -``` -sudo apt install gdebi -``` - -#### 6. Geary - -为了任何工作流,你需要一个 Ubuntu 桌面的本地 [邮箱客户端][12] 。电子邮件仍具有相关性并且对很多人很重要。尽管 Ubuntu 默认带有最好的雷鸟电子邮件客户端,但你可以用其他有更好体验的电子邮件客户端应用。 - -[Geary][13] 拥有友好的并且简单的用户界面,能够让你更简单的设置多个邮件账号。此外, Geary 也带来了对话功能,更快的搜索,富文本电子邮件编写以及其他功能,这使它成为 Linux 桌面的“首选”电子邮件客户端。 - -你可以使用如下命令或者在应用商店中搜索 “Geary” 来安装 Geary 。也可以通过 [Flatpak][14] 获得。 - -``` -sudo apt install geary -``` - -![Geary][15] - -#### 7. 谷歌 Chrome - -虽然大多数人担心隐私以及跟踪,但谷歌 Chrome 仍然是浏览器市场的领头者。 Ubuntu 默认装配了火狐浏览器,随着近期火狐的 snap 事件,你可能想换到其他浏览器。 - -如果你与 Google 生态系统紧密联系并希望在流媒体和浏览方面获得更好的网络体验,你可能会考虑使用 Google Chrome。但是,如果你担心隐私和跟踪,你可以选择其他一些浏览器,例如 Brave 或 Vivaldi。 - - -你可以从下面链接中下载 deb 包来安装谷歌 Chrome 。安装后,你可以打开应用商店来安装。 - - -[下载谷歌 Chrome][16] - -#### 8. Kdenlive - -[Kdenlive][17] 是 Linux 上最好的免费并开源的视频编辑器之一。 Kdenlive 设计良好的用户界面易于使用,并且带来了各种各样的特点。首先,使用 Kdenlive ,你可以简单的导入视频片段,更改画布分辨率,并且编辑后导出为多种格式。其次,时间线和工具让只需你单击一个按钮即可剪切和添加标题、转场和效果。此外,如果你是视频编辑新手,学习起来非常容易。 - -Kdenlive 是一个非常活跃的项目,每个主版本都会带有更多先进的特征。这是 2022 年必不可少的 Ubuntu 应用程序之一,如果你将其与列入此列表的其他 [免费视频编辑器][18] 进行比较。 - - -使用以下命令安装 Kdenlive 很简单。除此,你可以用 [Flatpak][19] 或 [Snap][20] 版本来安装。 - - -``` -sudo apt install kdenlive -``` - -![Kdenlive Video Editor][21] - -#### 9. Spectacle - -你可以试用过很多截屏应用。但在我看来, [Spectacle][22] 或许是最好也是被低估了的一款应用。 Spectacle 是一款 KDE 应用程序,速度非常快,非常适合任何需要截屏并使用它们的工作流。首先,你可以捕获整个桌面,它的一部分或自定义时间的窗口。其次,如果需要,窗口捕获还可以选择窗口装饰和光标。再次,Spectacle 还为你提供了一个内置的注释功能来撤回、写入和标记你的图像。 - -此外,你还可以直接从其主窗口在 GIMP 或任何图像编辑器中打开图像并将其导出。此外,自动保存、将捕获复制到剪贴板以及共享到社交媒体是 Spectacle 的一些独特功能。 - -在我看来,它是一个带有内置屏幕录像机的完整截图工具。 - -你可以用以下命令或者从 [Snap][23] 中安装 Spectacle。 - -``` -sudo apt install kde-spectacle -``` - -![Spectacle Screenshot tool][24] - -#### 10. VLC 媒体播放器 - -带有 GNOME 桌面的 Ubuntu Linux 默认带有 GNOME Videos 应用程序来播放视频文件。但由于缺乏解码功能,GNOME Videos 无法播放多种视频格式。这就是为什么,你应该总是考虑 [VLC 媒体播放器][25]——它是 Linux 桌面上的“首选”媒体播放器。 - - -VLC 确实可以播放任何格式。 它甚至可以帮助您播放数据不完整的损坏视频文件。它是你可以使用以下命令安装的强大媒体播放器之一。 - -此外,如果你偏向于另一种安装模式,你可以通过 [Flatpak][26] 或者 [Snap][27] 安装。 - -``` -sudo apt install vlc -``` - -![VLC Media Player][28] - -### 结语 - - -2022 年必备的 Ubuntu 应用程序系列的第 1 部分到此结束。有了以上信息,我希望你可以选择一些应用供你的日常使用。在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。 - -最后,请继续关注本 Ubuntu 应用程序系列的第 2 部分。 - -干杯! - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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 From 30d4ceca40f015bc057853773d91bf1eba33b6a7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 5 Jul 2022 15:15:08 +0800 Subject: [PATCH 0250/3123] RP @geekpi https://linux.cn/article-14795-1.html --- ...icrosoft To-Do Desktop Client for Linux.md | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) rename {translated/tech => published}/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md (58%) diff --git a/translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md b/published/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md similarity index 58% rename from translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md rename to published/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md index a6941343f5..f4257ab223 100644 --- a/translated/tech/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md +++ b/published/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md @@ -3,23 +3,26 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14795-1.html" Kuro:非官方的微软 To-Do Linux 桌面客户端 ====== -微软说他们热爱 Linux 和开源,但我们仍然没有对其在 Linux 上的许多产品提供原生支持。 -虽然他们可能在努力增加更多的支持,比如[在 Linux 上安装 Microsoft Edge][1],但对于一个价值几万亿美元的公司来说,这并不出色。 +![](https://img.linux.net.cn/data/attachment/album/202207/05/151405wsp6k55rrzdkk6dl.jpg) + +> 微软说他们热爱 Linux 和开源,但我们仍然没有得到对其许多产品的 Linux 原生支持。 + +虽然他们可能在努力增加更多的支持,比如 [可以在 Linux 上安装微软 Edge 浏览器][1],但对于一个价值几万亿美元的公司来说,这并不出色。 同样,微软的 To-Do 服务也是一个受欢迎的服务,它取代了 2020 年关闭的 Wunderlist。 -如果你感到好奇,我们有很多[可用于 Linux 的待办事项列表应用][2]。因此,如果你想脱离微软 To-Do,你有选择。 +如果你不知道的话,我们有很多 [可用于 Linux 的待办事项列表应用][2]。因此,如果你想脱离微软 To-Do,你有选择。 微软 To-Do 是一个基于云的任务管理应用,让你从手机、桌面和网络组织你的任务。它可以在 Windows、Mac 和 Android 上下载。 -那么,如果你宁愿不使用网络浏览器而使用一个单独的应用,你在 Linux 上能做什么呢? +那么,如果你不愿意使用网页浏览器而使用一个单独的应用,你在 Linux 上能做什么呢? Kuro 派上用场了。 @@ -29,11 +32,11 @@ Kuro 派上用场了。 Kuro 是一个非官方的开源应用,它为你提供了微软 To-Do 在 Linux 上的桌面体验和一些额外的功能。 -它是 Ao 的一个分叉,Ao 是一个开源项目,逐渐成为它的解决方案。 不幸的是,它不再被积极维护。 所以,我遇到了一个似乎可以完成工作的新分叉。 +它是 Ao 的一个分叉,Ao 是一个开源项目,逐渐成为它的解决方案。不幸的是,它不再积极维护了。所以,我遇到了一个似乎可以工作的新复刻。 ![kuro todo options][4] -Kuro 提供了一些额外的功能,让你在应用中切换主题,启用全局快捷方式等。 +Kuro 提供了一些额外的功能,可以让你在应用中切换主题,启用全局快捷方式等。 请注意,这个应用是相当新的,但有一个稳定版本可以试用。此外,开发者计划在不久的将来增加更多的主题和功能。 @@ -41,9 +44,9 @@ Kuro 提供了一些额外的功能,让你在应用中切换主题,启用全 ![kuro todo 1][5] -如果你倾向于使用微软的服务(如 Outlook),它的 To-Do 应用应该是组织你的任务的一个完美选择。你甚至可以标记电子邮件,以创建任务出来。 +如果你倾向于使用微软的服务(如 Outlook),它的 To-Do 应用应该是组织你的任务的一个完美选择。你甚至可以标记电子邮件以创建任务。 -使用 Kuro 桌面客户端,你可以得到一些快速配置的功能,包括: +使用 Kuro 桌面客户端,你可以得到一些可配置的功能,包括: * 能够在启动时启动该程序。 * 获得一个系统托盘图标,以快速创建一个任务,搜索,或检查当天的可用列表。 @@ -55,21 +58,21 @@ Kuro 提供了一些额外的功能,让你在应用中切换主题,启用全 ![kuro todo settings][6] -除了一些功能外,你还可以进入某些设置,启用/禁用电子邮件通知,删除前确认,以及更多这样的待办事项应用体验的控制。 +除了一些功能外,你还可以进入某些设置来启用/禁用电子邮件通知、删除前确认等,对待办事项应用体验的进行更多的控制。 -总的来说,体验并不可怕,但我注意到几分钟内用户界面上有一些奇怪的图形问题。我不确定这是否是一个已知的问题。 +总的来说,体验并不糟糕,但我在几分钟内注意到用户界面上有一些奇怪的图形问题。我不确定这是否是一个已知的问题。 ### 在 Linux 中安装 Kuro -你可以从它的 [GitHub 发布页面][7]找到基于 Ubuntu 的发行版的 .deb 包。 +你可以从它的 [GitHub 发布页面][7] 找到基于 Ubuntu 的发行版的 .deb 包。 -无论哪种情况,你都可以从 [Snap 商店][8] 中为你选择的任何 Linux 发行版获取它。 该软件包也可在 Arch Linux 发行版的 [AUR][9] 中获取。 +此外,你可以从 [Snap 商店][8] 中在你选择的任何 Linux 发行版上安装它。该软件包也可在 Arch Linux 发行版的 [AUR][9] 中获取。 -开发者还提到,一个 Flatpak 软件包正在进行中。所以,你可以关注它的 [GitHub 页面][10]以了解更多相关信息。 +开发者还提到,正在开发一个 Flatpak 软件包。所以,你可以关注它的 [GitHub 页面][10]以了解更多相关信息。 -[Kuro][11] +> **[Kuro][11]** -你已经试过这个了吗?你知道有什么更好的微软待办事项客户端用于 Linux 吗?请在下面的评论中告诉我。 +你已经试过它了吗?你知道有什么更好的微软 To-Do 客户端用于 Linux 吗?请在下面的评论中告诉我。 -------------------------------------------------------------------------------- @@ -78,7 +81,7 @@ via: https://itsfoss.com/kuro-to-do-app/ 作者:[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/) 荣誉推出 From f099b4783f1bba2230ac31556e84ab3e7cd821bf Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 18:29:54 +0800 Subject: [PATCH 0251/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220705=20WebP=20Image-=20How=20to=20Create,=20Conv?= =?UTF-8?q?ert=20to=20JPEG,=20PNG=20&=20View=20in=20Ubuntu=20and=20Other?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...G, PNG & View in Ubuntu and Other Linux.md | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 sources/tech/20220705 WebP Image- How to Create, Convert to JPEG, PNG & View in Ubuntu and Other Linux.md diff --git a/sources/tech/20220705 WebP Image- How to Create, Convert to JPEG, PNG & View in Ubuntu and Other Linux.md b/sources/tech/20220705 WebP Image- How to Create, Convert to JPEG, PNG & View in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..05aaf6da28 --- /dev/null +++ b/sources/tech/20220705 WebP Image- How to Create, Convert to JPEG, PNG & View in Ubuntu and Other Linux.md @@ -0,0 +1,203 @@ +[#]: subject: "WebP Image: How to Create, Convert to JPEG, PNG & View in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/view-webp-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +WebP Image: How to Create, Convert to JPEG, PNG & View in Ubuntu and Other Linux +====== +In this article, I will explain the following topics, which cover all the information you need to convert and view WebP images in Ubuntu and other distributions. + +![WebP Logo][1] + +### What is WebP + +In September 2010, Google announced the WebP image format with a vision and a solid replacement for JPEG, PNG and GIF file formats. As you can see, it’s one single format that provides all the features of the legacy compression algorithm. At its core, WebP supports lossy, lossless animation and transparency. + +In addition, WebP is based on block prediction technology and its recommended image format for the web. Due to its significant low file size and better quality, it became the modern standard for serving website images. + +### The Current State + +Today, almost all the major web browsers support WebP – which means you can view the images in popular browsers such as Chromium, Chrome, Firefox, Brave, Vivaldi, Safari and Edge. + +But creating a WebP image from existing JPG and PNG files requires the [WebP][2] library developed by Google. Moreover, the Linux distribution’s file managers are not yet capable of displaying them out of the box. + +For a seamless integration and experience with WebP – many small components must work together. The operating system requires the core library for WebP. In addition, the file manager and image viewers need to recognise the `*.webp` file type and read them. + +All of these result in a consistent experience for users. Since it is still a new standard and adoption is in progress, you need to perform some extra steps in Linux to get it working. + +On the other hand, Windows 10 and 11 currently support WebP by default, including its new Image Viewer. + +Hence, this article will discuss how to view, create and convert WebP images in Linux systems. + +### View WebP Images + +#### Ubuntu, Linux Mint and related distros + +Viewing an image requires a loader. The file managers or image viewers use that loader library to enable the display of WebP images. By default, the WebP image loader is not available in Ubuntu Linux. Hence, you need to install the `webp-pixbuf-loader` library using the following PPA to view a WebP image in Ubuntu. This library enables GTK applications to show the WebP images. + +``` +sudo add-apt-repository ppa:helkaluin/webp-pixbuf-loadersudo apt updatesudo apt install webp-pixbuf-loader +``` + +If you want to learn how a GDK library works between the display server (e.g. X.Org) and GTK components, visit [this page.][3] + +#### openSUSE + +Leap and Tumbleweed packages are [available here][4]. Visit the page and click on the Expert Download to install. + +#### Arch Linux + +In Arch Linux, the package is available in [the community repo][5]. Hence the installation is easy using the following command. + +``` +sudo pacman -S webp-pixbuf-loader +``` + +#### Fedora Linux, RHEL + +For Fedora and other related distributions, use the following command to install. + +``` +sudo dnf install webp-pixbuf-loader +``` + +After installation is complete, **restart your system**(optional)**.** + +Now, the fun part. Browse to any directory with WebP images, and you should see them in thumbnails or the default image viewer. + +Here’s an example image with a before-after view of the Nautilus file manager in Ubuntu 22.04 LTS with WebP images. + +![GNOME Files (Nautilus) with WebP file - before][6] + +![GNOME Files (Nautilus) with WebP file - after][7] + +### View WebP images in Various File Manager/Image Viewers in Linux Distros + +#### GNOME & Nautilus + +For GNOME desktops, Nautilus would work fine with the method I explained above for Ubuntu/Fedora or others. + +#### View WebP images in Thunar Desktop (Xfce-based distros) + +Although Thunar can show the thumbnail by default for the Xfce desktop, the default image viewer Ristretto wouldn’t open the WebP. So, you must install the above packages first (Ubuntu/Fedora or Arch) and reboot. Then open it with Ristretto image viewer after changing the default .webp file-type association. + +![Thunar and Ristretto Image Viewer shows webp image][8] + +#### KDE Plasma – Dolphin file manager and image viewer – Gwenview + +The default image viewer Gwenview supports WebP by default. Hence you don’t need any additional installation to view it. And Dolphin can display the WebP thumbnail just fine. + +![Dolphin and Gwenview displays a sample WebP image in KDE Plasma][9] + +#### Viewing WebP images in PCManFMQt (LXQt-based distros) + +If you are using Lubuntu, you should be able to open WebP by LXImage viewer because it supports WebP by default. Also, PCManFMQt can show WebP thumbnails by default. + +![PCManFM-Qt and LXImage][10] + +#### Nemo file manager + +[Linux Mint][11] is bringing WebP support from the [Mint 21 “Vanessa”][12] release onwards, which should work for the Nemo file manager. Until then, you can use the above PPA to view the WebP images in Linux Mint. + +### How to view WebP image in Ubuntu and other Linux using an app (recommended) + +Firstly, the famous raster graphics program **GIMP** can open and save WebP images from version 2.10 onwards (currently available for all distros). + +Secondly, you can use the following image viewers (other than what your desktop offers), which support WebP. + +* [Qview][13] – A minimal image viewer +* [gThumb][14] – A GTK-based image viewer [available as Flatpak] + +Finally, [LibreOffice 7.4][15] (due in August) brings [native WebP support][16] for both import and export for its all components – Writer, Calc, Draw and Impress. + +### Convert WebP Images to JPG or PNG + +Since you learned how to view the .webp files, it’s worth knowing how to convert them. + +Firstly, install the webp packages for Ubuntu or Fedora Linux, including related distros using the following command. Alternatively, if you want the pre-compiled packages for all distros and operating systems which does not require installation, then visit [this page][17] and download the latest zip file. + +**Ubuntu and related distros:** + +``` +sudo apt install webp +``` + +**Fedora and related distros:** + +``` +sudo dnf install libwebp +``` + +**After installation**, use the following command to convert a WebP image to JPG/PNG. Make sure to change the file name and path for your case. + +``` +dwebp image1.webp -o image1.png +``` + +### Convert JPEG or PNG images to WebP format + +Similarly, if you want to convert a JPEG or PNG file to WebP format, use the following command with cwebp (WebP encoder). + +``` +cwebp -q -o +``` + +For example, you can use a sample command below, which converts image1.png to image1.webp with a compression factor of 80 + +``` +cwebp -q 80 image1.png -o image1.webp +``` + +### Convert GIF image to WebP image + +One of the underrated features of the WebP format is it supports animation. Hence, the animated GIF files can also work in WebP format with the same animation. Using the following command, you can convert an existing GIF file to a WebP file. + +``` +gif2webp input_file.gif -o output_file.webp +``` + +Visit [this page][18] to learn more about the above utility and other options. + +### Closing Notes + +Although it’s been a decade since the first announcement of WebP, it took considerable time for desktop Linux to adapt to view the WebP image formats. And I believe, by 2022 end, the WebP support will be native, and you may not need additional tweaking or workaround to view or save WebP files. + +I hope this article gives you complete detail about WebP and how you can make it streamlined for your workflow. + +So, how you are managing WebP images today? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/view-webp-ubuntu-linux/ + +作者:[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/07/WebP-Logo.jpg +[2]: https://developers.google.com/speed/webp +[3]: https://docs.gtk.org/gdk-pixbuf/ +[4]: https://software.opensuse.org/package/webp-pixbuf-loader +[5]: https://archlinux.org/packages/community/x86_64/webp-pixbuf-loader/ +[6]: https://i0.wp.com/www.debugpoint.com/wp-content/uploads/2022/07/GNOME-Files-Nautilus-with-WebP-file-before.png?ssl=1 +[7]: https://i0.wp.com/www.debugpoint.com/wp-content/uploads/2022/07/GNOME-Files-Nautilus-with-WebP-file-after.png?ssl=1 +[8]: https://www.debugpoint.com/wp-content/uploads/2022/07/Thunar-and-Ristretto-Image-Viewer-shows-webp-image.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/Dolphin-and-Gwenview-displays-a-sample-WebP-image-in-KDE-Plasma.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/07/PCManFM-Qt-and-LXImage.jpg +[11]: https://www.debugpoint.com/linux-mint/ +[12]: https://debugpointnews.com/linux-mint-21-systemd-oom/ +[13]: https://interversehq.com/qview/download/ +[14]: https://flathub.org/apps/details/org.gnome.gThumb +[15]: https://www.debugpoint.com/libreoffice-7-4/ +[16]: https://cgit.freedesktop.org/libreoffice/core/commit/?id=60eaa424c5e213f31227008e1ed66a646491a360 +[17]: https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html +[18]: https://developers.google.com/speed/webp/download From efb4a5bf9efee692ccf591cec3f37cc6bb96e6cf Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 18:30:45 +0800 Subject: [PATCH 0252/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220705=20StarFighter-=20A=20Linux=20Laptop=20with?= =?UTF-8?q?=20a=204K=2010-bit=20IPS=20Display=20is=20Coming=20Soon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... a 4K 10-bit IPS Display is Coming Soon.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md diff --git a/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md b/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md new file mode 100644 index 0000000000..88662528a5 --- /dev/null +++ b/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md @@ -0,0 +1,68 @@ +[#]: subject: "StarFighter: A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon" +[#]: via: "https://news.itsfoss.com/starfighter-laptop-reveal/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +StarFighter: A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon +====== +StarFighter is an upcoming Linux laptop by Star Labs. They are finalising the production details while revealing some of the key highlights. + +![starfighter][1] + +We’ve had numerous Linux-exclusive laptops from manufacturers like Star Labs, TUXEDO, and others. + +However, only a handful of them focused on providing a great display. + +For instance, [TUXEDO’s Infinitybook Pro 14][2] featured a 3K display. And, it was a nice offering. + +Now, it looks like [Star Labs][3] is gearing up with a 15.6-inch 4K display for its upcoming “StarFighter” laptop. They shared initial information on [Twitter][4] mentioning that they are finalizing the production details. + +### StarFighter: Here’s What We Know So Far + +The laptop will feature a 45W-powered Intel/AMD processor. So, yes, it will have both Intel/AMD variants available. + +You will also be getting options for up to 64 GB of memory and 2 TB of storage. It is safe to say that it should be a powerhouse for users who want beefed-up specifications for their Linux laptops. + +Of course, the key highlight is the display. It will be sporting a 4K 10-bit matte IPS display. + +The company mentions that the display costs more than its StarLite laptop. + +But, will this be an attractive offering? Many laptops with high-res displays or OLED panels haven’t worked well with the battery life. Not just Linux laptops. + +So, will StartFighter be a competitive contender in the space? + +Star Labs mentioned in a tweet that they estimate it for around 8-14 hours depending on the configuration. Of course, it will come down to your usage as well. + +The company also clarified that the laptop will be available with coreboot, but it will not be an entirely free software project. Some other points to note include: + +* The laptops will feature [LVFS][5] support. +* Intel models will be available with Gen 4 SSDs. AMD variants will be limited to Gen 3. + +It could feature elementaryOS 6.1 as the image suggests. However, you should also expect to have Ubuntu 22.04 LTS as an option for the OS. + +So, what do you think about StarFighter by Star Labs? Would this be your next laptop when it is available? + +Share your thoughts in the comments section below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/starfighter-laptop-reveal/ + +作者:[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/07/starfighter-linux-powered-laptop.jpg +[2]: https://news.itsfoss.com/infinitybook-pro-14-3k/ +[3]: http://starlabs.systems +[4]: https://twitter.com/starlabsltd/status/1542908391793692672 +[5]: https://fwupd.org/ From 4e19f52dac72febb500bfcca02d831c0e56d91a8 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 18:33:22 +0800 Subject: [PATCH 0253/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220705=20Hamming=20Codes-=20The=20Error-Correcting?= =?UTF-8?q?=20Codes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mming Codes- The Error-Correcting Codes.md | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 sources/tech/20220705 Hamming Codes- The Error-Correcting Codes.md diff --git a/sources/tech/20220705 Hamming Codes- The Error-Correcting Codes.md b/sources/tech/20220705 Hamming Codes- The Error-Correcting Codes.md new file mode 100644 index 0000000000..36a76ee654 --- /dev/null +++ b/sources/tech/20220705 Hamming Codes- The Error-Correcting Codes.md @@ -0,0 +1,193 @@ +[#]: subject: "Hamming Codes: The Error-Correcting Codes" +[#]: via: "https://www.opensourceforu.com/2022/07/hamming-codes-the-error-correcting-codes/" +[#]: author: "Supriyo Ganguly https://www.opensourceforu.com/author/supriyo-ganguly/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Hamming Codes: The Error-Correcting Codes +====== +When bits are transmitted or sent over the computer network, they can easily get corrupted due to interference and network problems, and lead to errors. Hamming codes are linear codes used to detect and correct the errors that can occur when data is moved from the sender to the receiver. Let’s take a look at their implementation in Python. + +![Hamming-Codes-The-Error-Correcting-Codes][1] + +In 1950, R.W. Hamming created an error correction code called the Hamming code. It divides data into fixed length blocks, making it a block based error detection and correction algorithm. Extra or redundant parity bits are generated and embedded into the data message before transmission. After the receiver gets them, these parity bits are recalculated to detect and correct the error. + +Up to 2 bit errors can be detected and up to 1 bit errors can be corrected. For example, in case of even parity, the number of 1s in specific positions should turn out to be even. This will ensure the integrity or correctness of the message. The procedure can be described in the following steps: + +* Calculation of the number of redundant bits +* Finding the position of parity/redundant bits +* Filling the parity bits +* Sending the message On the receiver side, the steps are: +* Receiving the message +* Finding the position of parity/redundant bits +* Comparing the parity bits to find the error + +### Algorithm overview + +We are going to use even parity in this example. + +The user has to send a data stream of bits from one endpoint to another. The number of bits in the data stream is represented as ‘m’. And the hamming encoding algorithm is going to insert ‘r’ number of extra parity bits in the message for encoding before sending on the wire. +If ‘m’ is the number of data bits and ‘r’ is number of redundant bits, the following condition must be satisfied: + +``` +2^r ≥ m + r + 1 ....eq1 +``` + +The parity bits will be inserted in specific locations of the encoded data stream. These locations are powers of 2; e.g. (2^0=1, 2^1=2, 2^2=4, 2^3=8, etc). + +Let us take an example. Say we have a data stream of 4 bits; so, m=4. This is represented as follows: + +| - | - | - | - | +| :- | :- | :- | :- | +| D1 | D2 | D3 | D4 | + +We now need to calculate the number of parity bits: + +``` +If r=1 we put in eq1 2^1 < 4+1+1, so not ok +If r=2 we put in eq1 2^2 < 4+2+1, so not ok +If r=3 we put in eq1 2^3 = 4+3+1, this is ok +``` + +So the number of redundant bits is r=3. After the insertion of parity bits, the data stream will look like this: + +| - | - | - | - | - | - | - | +| :- | :- | :- | :- | :- | :- | :- | +| P1 | P2 | D1 | P3 | D2 | D3 | D4 | + +These parity bits are calculated from XOR of data bits at specific locations. The specific data bit positions are found based on the following table (where the corresponding bit is 1). + +| bit location | P3 | P2 | P1 | +| :- | :- | :- | :- | +| 1 | 0 | 0 | 1 | +| 2 | 0 | 1 | 0 | +| 3 | 0 | 1 | 1 | +| 4 | 1 | 0 | 0 | +| 5 | 1 | 0 | 1 | +| 6 | 1 | 1 | 0 | +| 7 | 1 | 1 | 1 | + +So, + +``` +P1=B1 XOR B3 XOR B5 XOR B7 +P2=B2 XOR B3 XOR B6 XOR B7 +P3=B4 XOR B5 XOR B6 XOR B7 +—--eq2 +``` + +This is referred to as (7,4) Hamming code. + +### Implementation overview (with code walkthrough) + +I have written a Python code to implement the algorithm. Here, *even parity* is used. + +*Data* is the input data stream taken as input from the user (example: data=’1101’). + +‘m’ is the length of data taken as input from user (m=4). + +#### Encoding of data + +Step 1: *calculateRedundantBitSize()* function finds the value of ‘r’; r=3. + +Step 2: In *createEncodedDat(),* the encodedList is the list initialised with all 0s. + +For (7,4), the Hamming code encodedList will look like this: + +| - | - | - | - | - | - | - | +| :- | :- | :- | :- | :- | :- | :- | +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | + +The next code copies data bits to specific locations: + +``` +for i in range(1,m+r+1,1): +if(i==(2**j)): +j=j+1 +else: +encodedList[i-1]=data[k] +k=k+1 +``` + +The *for* loop is iterating over the complete data length of ‘m+r’. If ‘i’ is power of 2 in the encodedList, the i-1 index will hold the data bit. For (7,4), the Hamming code encodedList will look like this: + +| - | - | - | - | - | - | - | +| :- | :- | :- | :- | :- | :- | :- | +| 0 | 0 | 1 | 0 | 1 | 0 | 1 | + +Then the parity bits are calculated as follows: + +``` +for j in range(0,r,1): +parityBitLoc = 2**j +for i in range(1,m+r+1,1): +if((parityBitLoc & i) != 0): +p=parityBitLoc-1 +encodedList[p]= str(int(encodedList[i-1]) ^ int(encodedList[p])) +``` + +‘j’ is iterating over parity bits and ‘i’ is iterating over the full data stream. The condition: + +``` +if((parityBitLoc & i) != 0) +``` + +…will verify the specific positions for parity bit calculation, as specified in equation 2. ‘p’ is indicating the position of the parity bit in the list. + +For (7,4) Hamming code, the encodedList will look like this: + +| - | - | - | - | - | - | - | +| :- | :- | :- | :- | :- | :- | :- | +| 1 | 0 | 1 | 0 | 1 | 0 | 1 | + +Finally, the encoded bits are stored as a string in encodedData. + +#### Decoding and error correction + +We now look at error correction. For error simulation, users can give an input to intentionally alter a bit. *rcvdList* is an erroneous bitString, which is passed on to the decodedData function. + +As an example, we assume that bit 4 is corrupted. rcvdList will look like this: + +| - | - | - | - | - | - | - | +| :- | :- | :- | :- | :- | :- | :- | +| 1 | 0 | 1 | 1 | 1 | 0 | 1 | + +In the decodedData function, execute the following code: + +``` +chkList[p] = int(rcvdList[i-1]) ^ int(rcvdList[p]) ^ int(chkList[p]) +``` + +After execution of this code, chkList will look like this: + +| P1 | P2 | | P3 | | | | +| :- | :- | :- | :- | :- | :- | :- | +| 0 | 0 | 0 | 1 | 0 | 0 | 0 | + +We convert it to a binary: + +``` +P3P2P1 = (100)b +``` + +…which is 4 in decimals. This matches exactly with the user input. Thus it can also detect and correct the error. You can find the full source code on GitHub at *https://github.com/SupriyoGanguly/python-hamming.* + +Hamming code is a cost-effective solution for detecting and correcting single-bit errors in computers. But if multiple bits are erroneous, it can totally spoil the data. Satellites and modem communications use hamming code. The simple Python code implementation discussed in this article can be used as a module by programmers for hamming code encoding and decoding for any standard data stream length of 4 bits, 7 bits, 13 bits, and so on. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/hamming-codes-the-error-correcting-codes/ + +作者:[Supriyo Ganguly][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/supriyo-ganguly/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Hamming-Codes-The-Error-Correcting-Codes.jpg From 3ba4fa27cfe5e8bec210d878fddc242e102afbed Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 5 Jul 2022 18:36:07 +0800 Subject: [PATCH 0254/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220705=20Why=20I=20love=20Tig=20for=20visualizing?= =?UTF-8?q?=20my=20Git=20workflows.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ve Tig for visualizing my Git workflows.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md diff --git a/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md b/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md new file mode 100644 index 0000000000..8186e0dee0 --- /dev/null +++ b/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md @@ -0,0 +1,99 @@ +[#]: subject: "Why I love Tig for visualizing my Git workflows" +[#]: via: "https://opensource.com/article/22/7/visualize-git-workflow-tig" +[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why I love Tig for visualizing my Git workflows +====== +Tig is an excellent tool for reviewing your Git repository by encouraging you to explore the logs without having to construct long and sometimes complex queries. + +![][1] + +Image by: opensource.com + +If you find navigating your Git repositories frustratingly complex, have I got the tool for you. Meet Tig. + +Tig is an [ncurses-based][2] text-mode interface for Git that allows you to browse changes in a Git repository. It also acts as a pager for the output of various Git commands. I use this tool to give me a good idea of what’s been changed in which commit by whom, the latest commit merged, and so much more. Try it for yourself, starting with this brief tutorial. + +### Installing Tig + +On Linux, you can install Tig using your package manager. For instance, on Fedora and Mageia: + +``` +$ sudo dnf install tig +``` + +On Debian, Linux Mint, Elementary, Pop_OS, and other Debian-based distributions: + +``` +$ sud apt install tig +``` + +On macOS, use [MacPorts][3] or [Homebrew][4]. Tig’s complete installation guide can be found in the [Tig Manual][5]. + +### Using Tig + +Tig provides an interactive view of common Git output. For instance, with Git you can view all refs with the command `git show-ref` : + +``` +$ git show-ref +98b108... refs/heads/master +6dae95... refs/remotes/origin/1010-internal-share-partition-format-reflexion +84e1f8... refs/remotes/origin/1015-add-libretro-openlara +e62c7c... refs/remotes/origin/1016-add-support-for-retroarch-project-cd +1c29a8... refs/remotes/origin/1066-add-libretro-mess +ffd3f53... refs/remotes/origin/1155-automatically-generate-assets-for-external-installers +ab4d14... refs/remotes/origin/1160-release-on-bare-metal-servers +28baa9... refs/remotes/origin/1180-ipega-pg-9118 +8dff1d... refs/remotes/origin/1181-add-libretro-dosbox-core-s +81a7fe... refs/remotes/origin/1189-allow-manual-build-on-master +[...] +``` + +With Tig, you can get that information and much more in a scrollable list, plus keyboard shortcuts to open additional views with details about each ref. + +![Screenshot of a terminal using Tig. On the left there is a scrollable list of outputs, on the right the details of the selected output (add become an ambassador page) is shown, such as author, date, commit date, sign off, etc.][6] + +Image by: (Sumantro Mukherjee, CC BY-SA 4.0) + +### Pager mode + +Tig enters pager mode when input is provided to stdin (standard input). When the `show` subcommand is specified and the `--stdin` option is given, stdin is assumed to be a list of commit IDs, which is forwarded to `git-show` : + +``` +$ git rev-list --author=sumantrom HEAD | tig show –stdin +``` + +### Log and diff views + +When you're in Tig's log view, you can press the d key on your keyboard to display diffs. This displays the files changed in the commit and the lines that were removed and added. + +### Interactive Git data + +Tig is an excellent addition to Git. It makes it easy to review your Git repository by encouraging you to explore the logs without having to construct long and sometimes complex queries. + +Add Tig to your Git toolkit today! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/visualize-git-workflow-tig + +作者:[Sumantro Mukherjee][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/sumantro +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/images/life/computer_code_programming_laptop_0.jpg +[2]: https://opensource.com/article/21/8/ncurses-linux +[3]: https://opensource.com/article/20/11/macports +[4]: https://opensource.com/article/20/6/homebrew-mac +[5]: https://jonas.github.io/tig/doc/manual.html +[6]: https://opensource.com/sites/default/files/2022-06/tig%201.png From 13d52a9b8db480b322c00072680a8423ecd63a66 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 5 Jul 2022 19:26:16 +0800 Subject: [PATCH 0255/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o Install Docker And Docker Compose In Ubuntu 22.04 LTS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md b/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md index 28fc92ebf8..a6e46dfa75 100644 --- a/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md +++ b/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/install-docker-ubuntu/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -371,7 +371,7 @@ via: https://ostechnix.com/install-docker-ubuntu/ 作者:[sk][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 3566dd717acf3ce7ed485b9c7978618d3eecca78 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 6 Jul 2022 05:02:42 +0800 Subject: [PATCH 0256/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220705?= =?UTF-8?q?=20The=20Next-Gen=20TUXEDO=20Pulse=2015=20is=20a=20Workstation?= =?UTF-8?q?=20Powerhouse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md --- ...DO Pulse 15 is a Workstation Powerhouse.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md diff --git a/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md b/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md new file mode 100644 index 0000000000..b3071d773e --- /dev/null +++ b/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md @@ -0,0 +1,91 @@ +[#]: subject: "The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse" +[#]: via: "https://news.itsfoss.com/tuxedo-pulse-gen-2/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse +====== + +TUXEDO Computers is a German manufacturer popular for offering a wide range of consumer Linux desktops and laptops. + +One of their latest notebook releases, the **Pulse 15** – which was introduced two years ago has received a second revision and it sounds like a big upgrade. + +### Tuxedo Pulse 15 Gen-2: What’s New? + +![Source: TUXEDO][1] + +The notebook’s new 15.6-inch display takes the center stage here. A **2560 x 1440 pixels LED panel** is definitely a huge enhancement compared to the 1080p display used in the previous model. So you can expect clearer and more detailed images, not to mention fluid movements thanks to the high **165Hz refresh rate**! + +The AMD Ryzen 5 4600H is now replaced by the year-old **Ryzen 7 5700U**. Offering a total of 8 cores and 16 threads with a boost up to 4.3Ghz clock speed, it should be ideal for heavy workloads. + +TUXEDO has optimized the CPU to run at a whopping 35W instead of the maximum recommended 25W. Moreover, a 35% decrease in power consumption compared to the Ryzen 5 4600H has been benchmarked. The integrated AMD RX Vega 8 graphics running at 1900MHz will be slightly more powerful thanks to the increased wattage. + +![Source: TUXEDO][2] + +Lastly, the criticisms of the cooling system should be addressed by a new design that features an **“above-average” dual-fan setup** and includes two heat pipes. TUXEDO stated that users shouldn’t come across thermal throttling issues and loud fan noise when at full load. + +![Source: TUXEDO][3] + +#### Other Specifications + +Despite such big hardware upgrades, the magnesium-chassis laptop weighs only about 1.5Kg with a 1.7cm thickness. + +You get two M.2 NVMe slots for storage and two DDR4 memory slots that support up to 3200MHz. + +As far as the battery is concerned, the same **91-Wh** battery is being used promising a best estimate of up to 18 hours, varying with usage. + +The connectivity options also include a new DisplayPort via USB-C, which was absent with the first-generation model. Other options contain: + + * Intel Dual Band AX 200 (WiFi 6 & Bluetooth 5.2) + * 1 x USB 3.2 Gen2 Type-C + * 2 x USB 3.2 Gen2 Type-A + * 1 x USB 2.0 Type-A + * 1 x HDMI 2.0 + * 1 x Gigabit RJ45 LAN + * 2-in-1 Headphone & Microphone + * Kensington Lock + * UHS-50 Micro SD Cardreader + + + +### Pricing & Availability + +The base configuration which includes 8 GB Samsung 3200 MHz DDR 4 RAM and 250 GB NVMe SSD costs **1149 EUR or 1185 USD**. You can choose the flagship TUXEDO_OS 22.04 LTS, Ubuntu 22.04 LTS, Kubuntu 22.04 LTS, or Ubuntu Budgie 22.04 LTS as the operating system of your choice. + +Shipping for orders starts on July 15, 2022. You can pre-order the laptop now. + +You can check out the official website product page for more details. + +[TUXEDO Pulse 15 Gen-2][4] + +### Powerful Linux Laptop Lineup + +The Tuxedo Pulse 15 specs indicate that it is a solid offering. Thus, developers and business users should not have any complaints regarding its performance. + +Not to forget, we also had a recent launch of [HP Dev One][5], and a teaser for [StarFighter][6] with a 4K 10-bit IPS display by Star Labs. + +Looks like you’re in for a treat if you are saving up for a premium Linux-specific laptop. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/tuxedo-pulse-gen-2/ + +作者:[Rishabh Moharir][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/rishabh/ +[b]: https://github.com/lujun9972 +[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjkwMSIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ +[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMjQiIHdpZHRoPSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg== +[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2MDAiIHdpZHRoPSIxNjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg== +[4]: https://www.tuxedocomputers.com/en/Linux-Hardware/Notebooks/15-16-inch/TUXEDO-Pulse-15-Gen2.tuxedo +[5]: https://news.itsfoss.com/hp-dev-one-system76/ +[6]: https://news.itsfoss.com/starfighter-laptop-reveal/ From 8d6b8232e7c35d9ff2ca24297e4445a3f031b98e Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 6 Jul 2022 08:36:11 +0800 Subject: [PATCH 0257/3123] translated --- ...rends Changing The Data Center Industry.md | 51 ------------------- ...rends Changing The Data Center Industry.md | 51 +++++++++++++++++++ 2 files changed, 51 insertions(+), 51 deletions(-) delete mode 100644 sources/tech/20220630 The Top Trends Changing The Data Center Industry.md create mode 100644 translated/tech/20220630 The Top Trends Changing The Data Center Industry.md diff --git a/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md b/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md deleted file mode 100644 index cda1b5b040..0000000000 --- a/sources/tech/20220630 The Top Trends Changing The Data Center Industry.md +++ /dev/null @@ -1,51 +0,0 @@ -[#]: subject: "The Top Trends Changing The Data Center Industry" -[#]: via: "https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/" -[#]: author: "abhimanyu rathore https://www.opensourceforu.com/author/abhimanyu-rathore/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The Top Trends Changing The Data Center Industry -====== -![Data center][1] - -The pandemic has accelerated the rate of digital transformation across the country, and this has necessitated more investments in data centers. Owing to rapid digitalization and cloud adoption, the Indian data center market is expected to double its capacity in the upcoming years. As per reports, the Indian data center market size was valued at $4.35 billion in 2021 and will reach $10.09 billion by 2027, growing at a CAGR of 15.07% during 2022-2027. - -Now, a key question that arises is what lies ahead for the data center industry in India? What new trends are going to shape its future? Below mentioned are the top trends that will significantly impact the data center industry in India. - -### Data Localization - -Data localization simply means restricting the flow of data from one country to another. The Indian government has issued guidelines highlighting the need to store data of Indian users within the country’s boundaries. Data localization has made it mandatory for companies that collect critical consumer data to store and process it in local data centers. This has given a huge surge to local data centers. In addition, the cost advantage and easy accessibility of skilled labor in India makes it a key hub for data centers in Asia. - -### Sustainable Data Centers - -It’s a known fact that data centers consume a lot of non-renewal resources. To make data centers sustainable, companies have redesigned their facilities to greatly reduce power and water consumption by utilizing emerging technologies such as AI, ML and cloud. Cloud data centers use fewer servers thereby reducing the carbon impact. They are generally located closer to the facilities that power them to prevent large losses during the process of transmitting electrical energy over long distances. In addition, public cloud data centers can be used to store data from multiple businesses. An on-premise data center has capacity limitations when it comes to storing huge volume of data, thereby leading to non-optimal use of resources. Hence, cloud data centers are revolutionizing the industry by enabling businesses to consume fewer servers and less power and reduce their carbon emissions in the process. - -### Edge Connectivity - -Edge data centers are small data centers that are located closer to the edge of a network. They typically connect to a larger central data center or multiple data centers. By processing data and services closer to the end-user, edge computing allows organizations to reduce latency and improve the customer experience. Such data centers are extremely beneficial for industries that need data processing in real-time such as autonomous vehicles, telemedicine, telecommunication, OTT platforms, and smart wearables. - -### Hyperscale Data Centers - -Traditionally data centers were a simple network of racks with storage units and a set of management tools. It had the architecture that was easy to understand. However, as digital transformation took over the corporate world, organizations started to generate huge volumes of data. The traditional storage units and tools were inadequate to handle this influx of data and hence larger capacity with sophisticated facilities were required. In addition, traditional data centers could not scale up or down their capabilities to accommodate the fluctuations in demand and hence resulted in wastage of resources. This led to the evolution of hyperscaling as a solution. - -Hyperscale data centers are massive business-critical facilities designed to efficiently support robust and scalable applications by bringing together a large number of servers working together at high speeds. This ability gives the data center a capacity to scale both horizontally and vertically. - -In conclusion, the data center industry is evolving and new trends will keep cropping up. With the new-age disruptive technologies, data center industry can build eco-friendly and energy efficient data centers. Technologies such as AI, edge computing, and IoT can be utilized to maximize energy efficiency and minimize environmental impact. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/ - -作者:[abhimanyu rathore][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/abhimanyu-rathore/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2016/03/Data-center.jpg diff --git a/translated/tech/20220630 The Top Trends Changing The Data Center Industry.md b/translated/tech/20220630 The Top Trends Changing The Data Center Industry.md new file mode 100644 index 0000000000..3b2eabd2bc --- /dev/null +++ b/translated/tech/20220630 The Top Trends Changing The Data Center Industry.md @@ -0,0 +1,51 @@ +[#]: subject: "The Top Trends Changing The Data Center Industry" +[#]: via: "https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/" +[#]: author: "abhimanyu rathore https://www.opensourceforu.com/author/abhimanyu-rathore/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +改变数据中心行业的主要趋势 +====== +![Data center][1] + +大流行加快了全国数字化转型的速度,这需要对数据中心进行更多投资。由于快速的数字化和云采用,印度数据中心市场的容量预计在未来几年将翻一番。据报道,2021 年印度数据中心市场规模为 43.5 亿美元,到 2027 年将达到 100.9 亿美元,2022-2027 年的复合年增长率为 15.07%。 + +现在,出现的一个关键问题是印度数据中心行业的未来是什么?哪些新趋势将塑造其未来?下面提到的是将对印度数据中心行业产生重大影响的主要趋势。 + +### 数据本地化 + +数据本地化仅仅意味着限制数据从一个国家流向另一个国家。印度政府已发布指导方针,强调需要在该国境内存储印度用户的数据。数据本地化使得收集关键消费者数据的公司必须在本地数据中心存储和处理这些数据。这给本地数据中心带来了巨大的增长。此外,印度的成本优势和熟练劳动力的便利性使其成为亚洲数据中心的重要枢纽。 + +### 可持续数据中心 + +众所周知,数据中心消耗大量非可再生资源。为了使数据中心可持续发展,公司重新设计了他们的设施,通过利用人工智能、机器学习和云等新兴技术来大大降低电力和水的消耗。云数据中心使用更少的服务器,从而减少碳排放。它们通常位于更靠近为其供电的设施,以防止在长距离传输电能的过程中出现大量损失。此外,公共云数据中心可用于存储来自多个业务的数据。本地数据中心在存储大量数据时存在容量限制,从而导致资源的非最佳使用。因此,云数据中心通过使企业能够消耗更少的服务器和更少的电力并减少其在此过程中的碳排放,正在彻底改变行业。 + +### 边缘连接 + +边缘数据中心是靠近网络边缘的小型数据中心。它们通常连接到更大的中央数据中心或多个数据中心。通过处理更接近最终用户的数据和服务,边缘计算允许组织减少延迟并改善客户体验。这样的数据中心对于需要实时数据处理的行业非常有利,例如自动驾驶汽车、远程医疗、电信、OTT 平台和智能可穿戴设备。 + +### 超大规模数据中心 + +传统上,数据中心是一个简单的机架网络,带有存储单元和一组管理工具。它具有易于理解的架构。然而,随着数字化转型接管了企业界,组织开始生成大量数据。传统的存储单元和工具不足以处理大量涌入的数据,因此需要更大的容量和复杂的设施。此外,传统数据中心无法扩大或缩小其能力以适应需求波动,从而导致资源浪费。这导致了超大规模作为解决方案的演变。 + +超大规模数据中心是大规模的关键业务设施,旨在通过将大量高速协同工作的服务器聚集在一起,有效地支持强大且可扩展的应用。这种能力使数据中心能够水平和垂直扩展。 + +总之,数据中心行业正在发展,新趋势将不断涌现。借助新时代的颠覆性技术,数据中心行业可以构建环保节能的数据中心。人工智能、边缘计算和物联网等技术可用于最大限度地提高能源效率并最大限度地减少对环境的影响。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-industry/ + +作者:[abhimanyu rathore][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/abhimanyu-rathore/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2016/03/Data-center.jpg From 3b352e71d88ace905ed4360083ae8ae545b51636 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 6 Jul 2022 08:40:30 +0800 Subject: [PATCH 0258/3123] translating --- .../20220705 Why I love Tig for visualizing my Git workflows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md b/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md index 8186e0dee0..0b538c5843 100644 --- a/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md +++ b/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/visualize-git-workflow-tig" [#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 122a965e11295a89cb2c4648a7cc16558352cd3d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 6 Jul 2022 13:22:52 +0800 Subject: [PATCH 0259/3123] RP @lkxed https://linux.cn/article-14797-1.html --- ...oming an Attractive Option on Desktop Linux.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) rename {translated/news => published}/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md (92%) diff --git a/translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md b/published/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md similarity index 92% rename from translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md rename to published/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md index 92ff229027..202daca0ba 100644 --- a/translated/news/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md +++ b/published/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md @@ -3,13 +3,14 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14797-1.html" 有了扩展,GNOME Web 正逐渐成为 Linux 桌面上一个有吸引力的选择 ====== -GNOME Web 正在打磨成一个完美的 Linux 浏览器。你认同吗? + +> GNOME Web 正在打磨成一个完美的 Linux 浏览器。你认同吗? ![Gnome Web 浏览器][1] @@ -17,7 +18,7 @@ GNOME Web(Epiphany)是 [可供 Linux 用户使用的最佳浏览器][2] 之 它提供了简约且独特的用户体验。 -不幸的是,这种独特性并没有激励用户把它作为主力网络浏览器。 +不幸的是,这种独特性并没有激励用户把它作为主力网页浏览器。 但是,看起来这种情况很快就会改变…… @@ -55,7 +56,7 @@ flatpak install gnome-nightly org.gnome.Epiphany.Devel flatpak run --command=gsettings org.gnome.Epiphany.Devel set org.gnome.Epiphany.web:/org/gnome/epiphany/web/ enable-webextensions true ``` -请注意,它仍在积极开发中,可能无法按预期工作。在第一次尝试时,你可能需要密切关注终端是否有错误,如果有的话,要先解决它才行。 +请注意,它仍在活跃开发中,可能无法按预期工作。在第一次尝试时,你可能需要密切关注终端是否有错误,如果有的话,要先解决它才行。 如果你想了解更多技术细节,你可以阅读 [TingPing 的博文][6]。 @@ -74,7 +75,7 @@ via: https://news.itsfoss.com/gnome-web-extensions-dev/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From bf75af6d4f2b0906c537f0a114d8c20258d0441a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 6 Jul 2022 13:30:19 +0800 Subject: [PATCH 0260/3123] A --- ... Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md b/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md index 88662528a5..118ff39405 100644 --- a/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md +++ b/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/starfighter-laptop-reveal/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4fde6d01ae021661c0f6868a2bafd550637ad34f Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Wed, 6 Jul 2022 14:28:48 +0800 Subject: [PATCH 0261/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md index 1a82072927..db9acfea9d 100644 --- a/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md +++ b/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/best-ubuntu-apps-2022-part2/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -204,7 +204,7 @@ via: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 09309420303f5187528b027005f7947db0260eb3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 6 Jul 2022 14:41:39 +0800 Subject: [PATCH 0262/3123] RP @wxy https://linux.cn/article-14798-1.html --- ... a 4K 10-bit IPS Display is Coming Soon.md | 69 +++++++++++++++++++ ... a 4K 10-bit IPS Display is Coming Soon.md | 68 ------------------ 2 files changed, 69 insertions(+), 68 deletions(-) create mode 100644 published/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md delete mode 100644 sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md diff --git a/published/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md b/published/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md new file mode 100644 index 0000000000..16800310e3 --- /dev/null +++ b/published/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md @@ -0,0 +1,69 @@ +[#]: subject: "StarFighter: A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon" +[#]: via: "https://news.itsfoss.com/starfighter-laptop-reveal/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14798-1.html" + +星际战机:配备 4K 10 位 IPS 显示屏的 Linux 笔记本电脑即将问世 +====== + +> “星际战机”是星空实验室即将推出的一款 Linux 笔记本电脑。他们正在最后确定生产细节,同时透露了一些关键的亮点。 + +![starfighter][1] + +我们已经有许多来自星空实验室、TUXEDO 等制造商的 Linux 专用笔记本电脑。 + +然而,其中只有少数几家专注于提供一个超棒的显示屏。 + +例如,[TUXEDO 的 Infinitybook Pro 14][2] 带有 3K 显示屏,而且,该笔记本电脑确实不错。 + +现在,看起来 [星空实验室][3] 将为其即将推出的 “星际战机” 笔记本电脑配备 15.6 英寸 4K 显示屏。他们在 [推特][4] 上分享了初步信息,提到他们正在敲定生产细节。 + +### 关于星际战机我们目前所知道的情况 + +这款笔记本电脑将采用 45W 供电的英特尔 / AMD 处理器,它将有英特尔 / AMD 两种变体可用。 + +你还将可以选择高达 64GB 的内存和 2TB 的存储。可以说,对于那些想为自己的 Linux 笔记本电脑提高规格的用户来说,这应该是一个强大的机器。 + +当然,它的关键亮点是显示屏。它将采用 4K 10 位哑光 IPS 显示屏。 + +该公司提到,该显示屏的成本要高于其 StarLite 笔记本电脑。 + +但是,这会是一个有吸引力的产品吗?许多采用高分辨率显示屏或 OLED 面板的笔记本电脑在电池时长方面表现不佳。不仅仅是 Linux 笔记本电脑。 + +那么,“星际战机”会成为该领域的一个有竞争力的竞争者吗? + +星空实验室在一条推文中提到,他们估计电池时长约为 8-14 小时,这取决于配置。当然,这也取决于你的使用情况。 + +该公司还澄清说,这款笔记本电脑可以使用 Coreboot,但它不会是一个完全采用自由软件的项目。其他一些值得注意的地方还有: + +* 该笔记本电脑将具有 [LVFS][5] 支持。 +* 英特尔型号将提供第 4 代固态硬盘。AMD 型号将只限于第 3 代固态硬盘。 + +如图片所示,它可能安装了 elementaryOS 6.1。然而,你也可以预期它提供 Ubuntu 22.04 LTS。 + +那么,你对星空实验室的这架“星际战机”有何看法?当它上市时,这将是你的下一台笔记本电脑吗? + +在下面的评论区分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/starfighter-laptop-reveal/ + +作者:[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/07/starfighter-linux-powered-laptop.jpg +[2]: https://news.itsfoss.com/infinitybook-pro-14-3k/ +[3]: http://starlabs.systems +[4]: https://twitter.com/starlabsltd/status/1542908391793692672 +[5]: https://fwupd.org/ diff --git a/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md b/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md deleted file mode 100644 index 118ff39405..0000000000 --- a/sources/news/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md +++ /dev/null @@ -1,68 +0,0 @@ -[#]: subject: "StarFighter: A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon" -[#]: via: "https://news.itsfoss.com/starfighter-laptop-reveal/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -StarFighter: A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon -====== -StarFighter is an upcoming Linux laptop by Star Labs. They are finalising the production details while revealing some of the key highlights. - -![starfighter][1] - -We’ve had numerous Linux-exclusive laptops from manufacturers like Star Labs, TUXEDO, and others. - -However, only a handful of them focused on providing a great display. - -For instance, [TUXEDO’s Infinitybook Pro 14][2] featured a 3K display. And, it was a nice offering. - -Now, it looks like [Star Labs][3] is gearing up with a 15.6-inch 4K display for its upcoming “StarFighter” laptop. They shared initial information on [Twitter][4] mentioning that they are finalizing the production details. - -### StarFighter: Here’s What We Know So Far - -The laptop will feature a 45W-powered Intel/AMD processor. So, yes, it will have both Intel/AMD variants available. - -You will also be getting options for up to 64 GB of memory and 2 TB of storage. It is safe to say that it should be a powerhouse for users who want beefed-up specifications for their Linux laptops. - -Of course, the key highlight is the display. It will be sporting a 4K 10-bit matte IPS display. - -The company mentions that the display costs more than its StarLite laptop. - -But, will this be an attractive offering? Many laptops with high-res displays or OLED panels haven’t worked well with the battery life. Not just Linux laptops. - -So, will StartFighter be a competitive contender in the space? - -Star Labs mentioned in a tweet that they estimate it for around 8-14 hours depending on the configuration. Of course, it will come down to your usage as well. - -The company also clarified that the laptop will be available with coreboot, but it will not be an entirely free software project. Some other points to note include: - -* The laptops will feature [LVFS][5] support. -* Intel models will be available with Gen 4 SSDs. AMD variants will be limited to Gen 3. - -It could feature elementaryOS 6.1 as the image suggests. However, you should also expect to have Ubuntu 22.04 LTS as an option for the OS. - -So, what do you think about StarFighter by Star Labs? Would this be your next laptop when it is available? - -Share your thoughts in the comments section below. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/starfighter-laptop-reveal/ - -作者:[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/07/starfighter-linux-powered-laptop.jpg -[2]: https://news.itsfoss.com/infinitybook-pro-14-3k/ -[3]: http://starlabs.systems -[4]: https://twitter.com/starlabsltd/status/1542908391793692672 -[5]: https://fwupd.org/ From 88e6e4cd8661876ed2c4a1e127a1892cd02f9bcf Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 6 Jul 2022 15:18:51 +0800 Subject: [PATCH 0263/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220705=20GitHub=20Copilot=20Is=20Only=20Effective?= =?UTF-8?q?=20Because=20It=20Steals=20Open=20Source=20Code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tive Because It Steals Open Source Code.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/talk/20220705 GitHub Copilot Is Only Effective Because It Steals Open Source Code.md diff --git a/sources/talk/20220705 GitHub Copilot Is Only Effective Because It Steals Open Source Code.md b/sources/talk/20220705 GitHub Copilot Is Only Effective Because It Steals Open Source Code.md new file mode 100644 index 0000000000..b321dedb8d --- /dev/null +++ b/sources/talk/20220705 GitHub Copilot Is Only Effective Because It Steals Open Source Code.md @@ -0,0 +1,38 @@ +[#]: subject: "GitHub Copilot Is Only Effective Because It Steals Open Source Code" +[#]: via: "https://www.opensourceforu.com/2022/07/github-copilot-is-only-effective-because-it-steals-open-source-code/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GitHub Copilot Is Only Effective Because It Steals Open Source Code +====== +![github-logo-2][1] + +The Software Freedom Conservancy (SFC), a non-profit community of open source advocates, announced its withdrawal from GitHub today in a scathing blog post urging members and supporters to publicly condemn the platform. The SFC’s issue with GitHub stems from allegations that Microsoft and OpenAI trained an AI system called Copilot on data that had been made available under an open source licence. Open source code is not like a donation box where you can take whatever you want and use it however you want. + +It’s closer to photography. Even if a photographer does not charge you to use one of their images, you are still required to give credit where credit is due. According to an SFC [blog post][2], Copilot does not do this when it comes to using other people’s code snippets: + +“This harkens to long-standing problems with GitHub, and the central reason why we must together give up on GitHub. We’ve seen with Copilot, with GitHub’s core hosting service, and in nearly every area of endeavor, GitHub’s behavior is substantially worse than that of their peers. We don’t believe Amazon, Atlassian, GitLab, or any other for-profit hoster are perfect actors. However, a relative comparison of GitHub’s behavior to those of its peers shows that GitHub’s behavior is much worse.” + +GitHub is the world’s de facto repository for open source code. It’s a cross between YouTube, Twitter, and Reddit, but for programmers and the code they create. Sure, there are alternatives. Switching from one code-repository ecosystem to another, however, is not the same as trading Instagram for TikTok. Microsoft paid more than $7 billion to acquire GitHub in 2018. Since then, Microsoft has used its position as OpenAI’s primary benefactor to collaborate on the development of Copilot. And access to Copilot is only available through a special invitation from Microsoft or through a paid subscription. The SFC and other open source advocates are outraged because Microsoft and OpenAI are effectively monetizing other people’s code while removing the ability for those who use that code to properly credit those who use it. + +Copilot must be killed. Alternately, Microsoft and OpenAI could construct a time machine and travel back in time to label every single datapoint in Copilot’s database, allowing them to create a second model that gives proper credit to every output. But it’s always easier to take advantage of people and exploit the Wild West regulatory environment than it is to care about the ethics of the products and services you offer. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/github-copilot-is-only-effective-because-it-steals-open-source-code/ + +作者:[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/07/github-logo-2-e1657018894307.png +[2]: https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/ From 88924b5d701c2580ab9f37e5944792c498e26d99 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 6 Jul 2022 15:21:32 +0800 Subject: [PATCH 0264/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220706=203=20steps=20to=20create=20an=20awesome=20?= =?UTF-8?q?UX=20in=20a=20CLI=20application.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eate an awesome UX in a CLI application.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 sources/tech/20220706 3 steps to create an awesome UX in a CLI application.md diff --git a/sources/tech/20220706 3 steps to create an awesome UX in a CLI application.md b/sources/tech/20220706 3 steps to create an awesome UX in a CLI application.md new file mode 100644 index 0000000000..8bdee9fd84 --- /dev/null +++ b/sources/tech/20220706 3 steps to create an awesome UX in a CLI application.md @@ -0,0 +1,120 @@ +[#]: subject: "3 steps to create an awesome UX in a CLI application" +[#]: via: "https://opensource.com/article/22/7/awesome-ux-cli-application" +[#]: author: "Noaa Barki https://opensource.com/users/noaa-barki" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 steps to create an awesome UX in a CLI application +====== +Here is what I've learned to be the key factors that go into a successful user experience for a CLI project. + +As I was sitting in a meeting room, speaking with one of my teammates, our manager walked in with the rest of the dev team. The door slammed shut and our manager revealed that he had a big announcement. What unfolded before our eyes was the next project we were going to develop—an open source CLI (command line interface) application. + +In this article, I'd like to share what I learned during our development process, and specifically what I wish I had known before we began developing [Datree's CLI][3]. Perhaps the next person can use these tips to create a great CLI application faster. + +My name is Noaa Barki. I've been a full-stack developer for over six years, and I'll let you in on a little secret—I have a superpower: My interest and expertise are evenly split between back-end and front-end development. I simply cannot choose one without the other. + +So when my manager revealed the news about our future CLI, the back-end developer-me got very excited because I'd never created a CLI (or any open source project, for that matter). A few seconds later, the front-end developer-me started to wonder, *How can I build an awesome user experience in a CLI application?* + +Since Datree CLI helps engineers prevent [Kubernetes misconfigurations][4], my users are primarily DevOps and engineers, so I interviewed all my DevOps friends and searched online about the general DevOps persona. + +Here are the steps I came up with: + +1. Design the commands +2. Design the UI +3. Provide backward compatibility + +### Step 1: Design the commands + +Once you have completed the strategic process, it's time to design the commands. I think about CLI applications like magic boxes—they hold great features that work in a magical way, but only if you know how to use them. That means a CLI application must be intuitive and easy to use. + +#### My top six principles for CLI commands + +Here are my top six principles and best practices for designing and developing CLI commands: + +**1. Input flag vs. arguments** + +Use arguments for required fields, and for everything else, use flags. Take, for example, the `datree test` command, which prints the policy results, and say that you want to enable the user to print the output into a specific file. If you use `datree test {pattern} {output-file}`, it is difficult to understand from reading the executed command which argument is the pattern and which argument is the file path. + +For example, this occurs with the following command: `datree test **/* **.YAML`. However, if you use `datree test {pattern} -output {output-path}`, it becomes much clearer. + +**Note:** Reports show that most users find flags to be clearer. + +**2. Enum-style vs. Boolean flags** + +It's preferable to use an enum-style flag over a Boolean-style flag because then you (a developer and user) need to think about all combinations of the presence or absence of the flags in the command. An enum-style flag is a flag that assumes a value. Enum-style flags make it much easier to implement tab completion. + +**3. Use familiar language** + +Remember that a CLI is built more for humans than machines. Pick real-world language for your commands and descriptions. + +**4. Naming conventions** + +Use CLI commands that are named in a SINGLE form and VERB-NOUN format. This allows the command to be read like an imperative or request, for example: *Computer, start app!* + +Minimize with the total number of commands you use, and don't rush to introduce new verbs to new commands. This makes it easier for users to remember command names. + +**5. Prompts** + +Provide a bypass to the prompt option. The user cannot script the command if prompting is required to complete it. To avoid frustrating users, a simple `--output` flag can be a valuable solution to allow the user to parse the output and script the CLI. + +**6. Command descriptions** + +The root command should list all the commands with their descriptions. Provide a command description to all commands (or do not offer descriptions at all), choose the screen width you want it to fit into (generally an 80-character width), and begin with a lowercase character. Also, don't end with a period to avoid unclear line breaks or lost periods. + +### Step 2: Design the UI + +Now you have a solid definition for your users. You have also planned and designed your commands and outputs. Next it's time to think about making the CLI application aesthetic, accessible, and easy to learn. + +If you think about it, almost every app must deal with UX (user experience) challenges during the users' onboarding and journey. The *how* part of UX for web applications is much more obvious because you have many component libraries (such as material-UI and bootstrap) that make it easier to adopt standard style guides and functionality flows. But what about CLI applications? Are there any design conventions for CLI interfaces? How can you create an aesthetic design of the CLI functionality that is also accessible? Is there any way to make the CLI UI as friendly as a GUI? + +#### Top three UI and UX best practices for CLI applications + +**1. Use colors** + +Colors are a great way to attract your user's eyes and help them read commands and outputs much faster. The most recommended font colors are magenta, cyan, blue, green, and gray, but don't forget that background colors can provide more variety. I encourage you to use yellow and red colors but remember that these are typically saved for errors and warnings. + +**2. Input-output consistency** + +Be consistent with inputs and outputs across the application; this encourages usability and allows the user to learn how to interact with new commands quickly. + +**3. Ordering arguments** + +Choose an argument's position based on how it correlates with the command's action. Consider NestJS's generate command `nest generate {schematic} {name}`, which needs *schematic* and *name* as arguments. Notice that the action *generate* refers directly to the *schematic*, not *name*, so it makes more sense for *schematic* to be the first arg. + +### Step 3: Provide backward compatibility + +Avoid modifying the output. Now that you know how to create a perfect CLI application, don't forget to keep your users in the back of your mind, especially when enabling scripting the CLI. Remember that any change in the command's outputs may break users' current scripts; therefore, avoid modifying the output. + +### Wrap up + +Creating a new CLI is exciting and challenging, and doing so with a helpful and easy UX adds to the challenge. My experience shows that three key factors go into a successful UX for a CLI project: + +1. Design the commands +2. Design the UI +3. Provide backward compatibility + +Each of these phases has its own components that support the logic and make the lives of your users easier. + +I hope these concepts are useful and that you have the opportunity to apply them in your next project. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/awesome-ux-cli-application + +作者:[Noaa Barki][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/noaa-barki +[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://www.datree.io/ +[4]: https://opensource.com/article/22/4/kubernetes-policies-config-datree From 1079f5254444005bd16bea0c7dacb16f8b89f56e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 6 Jul 2022 15:53:54 +0800 Subject: [PATCH 0265/3123] RP @geekpi https://linux.cn/article-14799-1.html --- ...ault Gateway- in Ubuntu and Other Linux.md | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) rename {translated/tech => published}/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md (63%) diff --git a/translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md similarity index 63% rename from translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md rename to published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md index 2f94ad4411..620ac51050 100644 --- a/translated/tech/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md +++ b/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md @@ -3,21 +3,24 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14799-1.html" -在 Ubuntu 和其他 Linux 系统中找到你的路由器的 IP 地址(默认网关) +在 Linux 中找到你的路由器的 IP 地址(默认网关) ====== + +![](https://img.linux.net.cn/data/attachment/album/202207/06/155222cgjpa9ppa19zr2g1.jpg) + 你可能已经知道如何在 Linux 中获得你的系统的 IP 地址。 但是你怎么知道你的路由器的 IP 地址呢? -我说的不是你可以通过连接到 [Show My IP][1] 这样的网站或简单地在 [DuckDuckGo][3] 中 [搜索“我的 ip”][2] 获得的面向公众的 IP。 +我说的不是你可以通过连接到 “[Show My IP][1]” 这样的网站或简单地在 [DuckDuckGo][3] 中 [搜索“what is my ip”][2] 获得的公网 IP。 -我说的是默认网关 IP,你的 Linux 桌面使用它来连接。 +我说的是默认网关 IP,你的 Linux 桌面所连接的地址。 -你为什么需要它?嗯,如果你需要改变你的 Wi-Fi/网络的 SSID、密码或其他配置,你必须连接到它。简单的方法是在网络浏览器中输入路由器的 IP 地址,然后使用路由器的用户名和密码。 +你为什么需要它?嗯,如果你需要改变你的 Wi-Fi/网络的 SSID、密码或其他配置,你必须连接到它。简单的方法是在网页浏览器中输入路由器的 IP 地址,然后使用路由器的用户名和密码。 虽然我不能帮助你获得路由器的用户名和密码,但我肯定可以告诉你如何获得它的 IP。 @@ -25,19 +28,19 @@ ### 方法 1:在 Linux 中使用 GUI 获取路由器的 IP 地址 -这其实很简单。我在这里使用的是 Ubuntu 的 GNOME 桌面。如果你使用一些[其他桌面环境][4],截图可能会有所不同。 +这其实很简单。我在这里使用的是 Ubuntu 的 GNOME 桌面。如果你使用一些 [其他桌面环境][4],截图可能会有所不同。 -打开系统设置: +打开“系统设置System Settings”: ![go to settings][5] -现在进入 Wi-Fi 或网络(如果你使用的是有线、以太网连接)。在这里,点击你当前使用的网络旁边的小设置符号。 +现在进入 Wi-Fi 或“网络Network”(如果你使用的是有线的以太网连接)。在这里,点击你当前使用的网络旁边的小设置符号。 ![access network settings ubuntu][6] -它将打开一个新窗口,里面有关于你的连接的一些细节,如 IP 地址、DNS 和 [Mac 地址][7]。你还可以在安全标签下看到[保存的 wifi 密码][8]。 +它将打开一个新窗口,里面有关于你的连接的一些细节,如 IP 地址、DNS 和 [Mac 地址][7]。你还可以在“安全security”标签下看到 [保存的 Wi-Fi 密码][8]。 -你还会看到一个名为“默认路由”的条目。这就是你要找的东西。你的路由器的 IP 地址。 +你还会看到一个名为“默认路由Default Route”的条目。这就是你要找的东西。你的路由器的 IP 地址。 ![defaul gateway ip ubuntu][9] @@ -56,21 +59,21 @@ ip route 它将显示几个条目。 ``` -[email protected]:~$ ip route +~$ ip route default via 192.168.1.1 dev wlp0s20f3 proto dhcp metric 600 169.254.0.0/16 dev wlp0s20f3 scope link metric 1000 192.168.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.1.34 metric 600 ``` -第一行,以 “default via” 开头,给了你网关的 IP。这是你的路由器的 IP 地址。 +第一行,以 `default via` 开头,给出了你网关的 IP。这是你的路由器的 IP 地址。 ![defaul route linux terminal][10] -你可以看到,192.168.1.1 是我的路由器的 IP 地址。通常情况下,路由器的 IP 地址是子网的第一个数字。然而,这并不是一个硬性规定。我也见过有 x.y.z.30 地址的路由器。 +你可以看到,`192.168.1.1` 是我的路由器的 IP 地址。通常情况下,路由器的 IP 地址是子网的第一个数字。然而,这并不是一个硬性规定。我也见过有 `x.y.z.30` 地址的路由器。 ### 额外技巧 -正如 Samir 在评论中所分享的,你也可以使用ping命令来获得网关 IP: +正如 Samir 在评论中所分享的,你也可以(在 Debian 上)使用 `ping` 命令来获得网关 IP: ``` ping _gateway @@ -78,7 +81,7 @@ ping _gateway ![ping gateway][11] -以防你不知道,你必须[在 Linux 中使用 Ctrl+C 来停止一个正在运行的命令][12]。 +以防你不知道,你必须 [在 Linux 中使用 Ctrl+C 来停止一个正在运行的命令][12]。 我希望你在需要的时候能发现这个技巧是有用的。 @@ -89,7 +92,7 @@ via: https://itsfoss.com/router-ip-address-linux/ 作者:[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/) 荣誉推出 From e22550f972fba2913f65b86578c179bea899bcfa Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 6 Jul 2022 15:57:31 +0800 Subject: [PATCH 0266/3123] R --- ... IP Address -Default Gateway- in Ubuntu and Other Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md index 620ac51050..e33d4eb801 100644 --- a/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md +++ b/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md @@ -42,7 +42,7 @@ 你还会看到一个名为“默认路由Default Route”的条目。这就是你要找的东西。你的路由器的 IP 地址。 -![defaul gateway ip ubuntu][9] +![default gateway ip ubuntu][9] 你的系统和网络上的所有其他设备都使用这个 IP 地址连接到路由器。这就是大多数家庭的设置。 @@ -67,7 +67,7 @@ default via 192.168.1.1 dev wlp0s20f3 proto dhcp metric 600 第一行,以 `default via` 开头,给出了你网关的 IP。这是你的路由器的 IP 地址。 -![defaul route linux terminal][10] +![default route linux terminal][10] 你可以看到,`192.168.1.1` 是我的路由器的 IP 地址。通常情况下,路由器的 IP 地址是子网的第一个数字。然而,这并不是一个硬性规定。我也见过有 `x.y.z.30` 地址的路由器。 From de1b297984cc9721901cff0944546848b056ca6e Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 6 Jul 2022 19:27:42 +0800 Subject: [PATCH 0267/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20220630=20Hide=20Files=20and=20Folders=20in=20Linux=20W?= =?UTF-8?q?ithout=20Renaming=20Them?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Folders in Linux Without Renaming Them.md | 136 ------------------ ... Folders in Linux Without Renaming Them.md | 136 ++++++++++++++++++ 2 files changed, 136 insertions(+), 136 deletions(-) delete mode 100644 sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md create mode 100644 translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md diff --git a/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md deleted file mode 100644 index 22f939279d..0000000000 --- a/sources/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md +++ /dev/null @@ -1,136 +0,0 @@ -[#]: subject: "Hide Files and Folders in Linux Without Renaming Them" -[#]: via: "https://itsfoss.com/hide-files-folders-linux/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Hide Files and Folders in Linux Without Renaming Them -====== -Brief: This beginner-focused article discusses how you can hide files and folders from normal view in Linux. Both GUI and command-line methods have been discussed. - -There will be times when you need to hide files in Linux. - -No, I am not talking about those ‘special files’ that you don’t want your family to see. Although you can hide these special files, it is better to lock them with a password for an extra layer of protection. - -Back to hiding files. **Any file or folder whose name begins with a . (dot) is “hidden” in Linux.** - -Linux has plenty of such files and folders that are hidden from the normal view. These are mainly config files that are needed by the system and programs. - -The users don’t need them normally and hence they are hidden from the normal view so that you don’t get overwhelmed by so many strange-looking files that you never created. - -Here’s a look at the hidden files and folders in my home directory. - -![linux normal view][1] - -![linux show hiiden files][2] - -You can easily [view the hidden files][3] by pressing Ctrl+H in the file manager if you are using desktop Linux. In the terminal, you can use the ls -a command to display the hidden files along with the normal ones. - -So, how do you create hidden files in Linux? You simply name them with a dot. Here’s how. - -### Create hidden files and folders in Linux desktop (GUI method) - -If you are using the file manager, right click on the file or folder and choose the rename option. Now all you have to do is to add a . at the beginning of the filename. - -GNOME’s Nautilus file manager also shows a warning when you are creating a hidden file in this manner. - -![hide files ubuntu linux][4] - -You can hide a folder along with all its contents in the same way. - -You can press Ctrl+H keys to display the hidden files. Oh! how much I love [keyboard shortcuts in Ubuntu][5] or any other program or OS I use. - -To make the hidden files normal again, just rename them again by removing the dot from the beginning of the file name. - -### Create hidden files and folders in Linux terminal (CLI method) - -If you are stuck with the terminal, you can [use the mv command][6] to rename the file. You just have to rename the file by adding a . at the beginning of the original filename. - -``` -mv filename .filename -``` - -You can display the hidden files using this command: - -``` -ls -la -``` - -You may also use ls -lA. This one won’t show the dot files (. and ..). - -### Bonus tip: Hide files and folders without renaming them (works in GUI only) - -You just learned to hide files in Linux. The problem is that you have to rename the files and that’s not ideal in all situations. - -For example, in Ubuntu, you’ll see a folder named ‘snap’ in your directory. You are not going to use it but if you rename it, your snap apps won’t work as expected. Similarly, there’s a firefox.tmp folder under the Downloads directory in Ubuntu 22.04 (for the snap version of Firefox). - -There is a neat trick that can be used in the Linux desktop. It should work under various file managers like Nemo, Thunar, Dolphin etc but I cannot vouch for it. It sure works in the Nautilus file manager of GNOME. - -So, what you do here is to create a new file named .hidden in the directory where your desired files or folders (to be hidden) are located. - -![alternate way of hiding files in linux][7] - -Press Ctrl+H to show the hidden files and **open .hidden file** for editing. **Add the name of the files or folders in separate lines**. Keep in mind that it doesn’t take absolute or relative path. Your desired **files and folders should be in the same location as this special .hidden file**. - -Here’s a sample which I used to hide the cpufetch directory and pcloud file without renaming them: - -``` -pcloud -cpufetch -``` - -Press Ctrl+H again to hide the .hidden files again. - -Now, **close your file explorer and start it again**. You won’t see the files and directories mentioned in the .hidden file anymore. - -If you want to see them again, press Ctrl+H keys. - -When you don’t want the files hidden anymore, remove their name from the .hidden file or remove .hidden file altogether. - -### Bonus Trivia: The hidden files ‘feature’ was actually a bug - -Do you know that this ‘feature’ to hide a file by adding a . at the beginning of the file name was [actually a bug][8]? - -In the early UNIX days, when the filesystem was created, the . (current directory) and .. (parent directory) files were added for ease of navigation. - -As these special . and .. files had no real data in them, a new ‘feature’ was added to the ls command. - -The feature was to check the first character of a filename and if it’s a dot (.), it was no longer displayed with the ls command. - -That worked for the . and .. files but it introduced a ‘bug’ where any filename starting with . was hidden from the output of the ls command. - -This bug turned into a feature as programmers like it for ‘hiding’ their config files. The ls command was probably modified later to add options to display hidden dot files. - -The same convention gets followed in Linux as Linux was modeled after UNIX. - -### Conclusion - -I have discussed creating files that are hidden from the normal view. If you want to create secret files or folders that cannot be accessed by other people, you should encrypt them. I have written about [locking folders with passwords in Linux][9]. It’s a bit old article but it may still work. - -I hope you liked this simple topic and learned something new. Use the comment section and let me know your thoughts. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/hide-files-folders-linux/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者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/06/linux-normal-view.png -[2]: https://itsfoss.com/wp-content/uploads/2022/06/linux-show-hiiden-files.png -[3]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/ -[4]: https://itsfoss.com/wp-content/uploads/2022/06/hide-files-ubuntu-linux.png -[5]: https://itsfoss.com/ubuntu-shortcuts/ -[6]: https://linuxhandbook.com/mv-command/ -[7]: https://itsfoss.com/wp-content/uploads/2022/06/alternate-way-of-hiding-files-in-linux.png -[8]: https://linux-audit.com/linux-history-how-dot-files-became-hidden-files/ -[9]: https://itsfoss.com/password-protect-folder-linux/ diff --git a/translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md new file mode 100644 index 0000000000..681ec91137 --- /dev/null +++ b/translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md @@ -0,0 +1,136 @@ +[#]: subject: "Hide Files and Folders in Linux Without Renaming Them" +[#]: via: "https://itsfoss.com/hide-files-folders-linux/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "hanszhao80" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 中用非重命名的方法隐藏文件和文件夹 +====== +简介:这篇面向初学者的文章探讨了在 Linux 中如何在普通视图中隐藏文件和文件夹。图形用户界面和命令行方法都有所涉猎。 + +有时你需要在 Linux 中隐藏文件。 + +不要误会,我不是指那些你不想让你的家人看到的“特殊文件”。尽管你可以隐藏这些特殊文件,但更好的办法还是用密码锁定它们以提供额外的保护。 + +回到隐藏文件的话题。 **名称以 `.` 开头的任何文件或文件夹在 Linux 中是“隐藏的”。** + +Linux 有很多这样的文件和文件夹,在普通视图中它们是隐藏的。这些主要是系统和程序所需的配置文件。 + +用户通常不需要它们,因此它们在普通视图中是隐藏的,这样一来你就不会被许多看起来很奇怪的而不是你所创建的文件所淹没。 + +下图展示了我的主目录中隐藏的文件和文件夹。 + +![linux 普通视图][1] + +![linux 显示隐藏文件][2] + +如果你使用的是桌面版 Linux,你可以通过在文件管理器中按 Ctrl+H 快捷键来轻松 [查看隐藏文件][3]。在终端中,你可以使用 `ls -a` 命令显示隐藏文件和普通文件。 + +那么,如何在 Linux 中创建隐藏文件呢?你只需用一个在命名的时候加一个`.`前缀。就是这样。 + +### 在桌面版 Linux 里创建隐藏文件和文件夹(GUI 方法) + +如果你使用的是文件管理器,在文件或文件夹上右键并选择重命名选项。现在你所要做的就是在文件名的开头添加一个 `.`。 + +当你以这种方式创建隐藏文件时,GNOME 的 Nautilus 文件管理器也会显示一个警告。 + +![ubuntu linux 隐藏文件][4] + +你可以以相同的方式隐藏文件夹及其所有内容。 + +你可以按 Ctrl+H 键来显示隐藏文件。哦!我是多么的喜欢 [Ubuntu 中的键盘快捷键][5] 和我使用的任何其他程序或操作系统! + +要使隐藏文件变回普通文件,只需再次重命名这些文件删掉文件名前缀的`.`即可。 + +### 在 Linux 终端创建隐藏文件和文件夹(CLI 方法) + +如果你热衷于终端,你可以 [使用 mv 命令][6] 重命名文件。你只需在原始文件名的开头添加一个 `.`。 + +``` +mv filename .filename +``` + +你可以使用以下命令显示隐藏文件: + +``` +ls -la +``` + +你也可以使用 `ls -lA`。这条命令不会显示点文件(`.` 和 `..`)。 + +### 额外提示:用非重命名的方法隐藏文件和文件夹(仅适用于 GUI) + +你刚刚学了在 Linux 中隐藏文件。问题是你必须重命名文件,而这种操作不适用于所有的场合。 + +例如,在 Ubuntu 中,你会在目录中看到一个名为“snap”的文件夹。你不会使用它,但如果重命名它,你的 snap 应用程序将无法按预期工作。类似的情况是,在 Ubuntu 22.04(安装有 snap 版本的 Firefox)的 Downloads 目录下有一个 firefox.tmp 文件夹。 + +有一个巧妙的技巧可以在 Linux 桌面中使用。它应该可以在 Nemo、Thunar、Dolphin 等各种文件管理器下工作,但我不能保证。它确实适用于 GNOME 的 Nautilus 文件管理器。 + +因此,你在这里所做的是在你想要隐藏的文件或文件所在的目录中创建一个名为 `.hidden` 的新文件。 + +![在 Linux 中隐藏文件的另一种方法][7] + +按 Ctrl+H 显示隐藏文件并 **打开 .hidden 文件** 进行编辑。**在单独的行中添加文件或文件夹的名称**。注意不能使用绝对或相对路径。你想要隐藏的**文件和文件夹应与此特殊 .hidden 文件** 位于同一路径下。 + +这是我以不重命名的方式隐藏 `cpufetch` 目录和 `pcloud` 文件的示例: + +``` +pcloud +cpufetch +``` + +按 Ctrl+H 以再次隐藏 `.hidden` 文件。 + +现在,**关闭你的文件资源管理器并重新启动它**。你将不会再看到 .hidden 文件中提到的文件和目录。 + +如果你想再次查看它们,请按 Ctrl+H 键。 + +如果你不想再隐藏文件,请从 .hidden 文件中删除其名称或完全删除 .hidden 文件。 + +### 额外琐事:隐藏文件“功能”实际上是一个 bug + +你知道吗?在文件名的开头添加一个 `.` 来隐藏文件的`功能`[实际上是一个 bug][8]? + +在早期的 UNIX 时代,当创建文件系统时,`.`(当前目录)和 `..`(父目录)文件被添加以方便导航。 + +由于这些特殊的 `.` 和 `..` 文件中没有实际数据,因此给 `ls` 命令添加了一个新的“功能”。 + +该功能是检查文件名的第一个字符,如果它是一个点 (.),则不再使用 ls 命令显示。 + +这对隐藏 `.` 和 `..` 文件有效,但它引入了一个 `bug`:`ls` 命令的输出会隐藏任何文件名以 `.` 开头的文件。 + +这个 bug 变成了一个功能,因为程序员喜欢它来“隐藏”他们的配置文件。`ls` 命令可能后来被修改为添加显示隐藏点文件的选项。 + +Linux 遵循相同的约定,因为 Linux 是以 UNIX 为原型开发的。 + +### 结论 + +我讨论了如何从普通视图中创建隐藏文件。如果要创建让其他人无法访问的机密文件或文件夹,则应对其进行加密。我曾经写过 [在 Linux 中使用密码锁定文件夹][9]。这是一篇有点儿旧的文章,但它可能仍然有效。 + +我希望你喜欢这个简单的话题并学到新的东西。发布你的评论让我知道你的想法吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/hide-files-folders-linux/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者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/06/linux-normal-view.png +[2]: https://itsfoss.com/wp-content/uploads/2022/06/linux-show-hiiden-files.png +[3]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/ +[4]: https://itsfoss.com/wp-content/uploads/2022/06/hide-files-ubuntu-linux.png +[5]: https://itsfoss.com/ubuntu-shortcuts/ +[6]: https://linuxhandbook.com/mv-command/ +[7]: https://itsfoss.com/wp-content/uploads/2022/06/alternate-way-of-hiding-files-in-linux.png +[8]: https://linux-audit.com/linux-history-how-dot-files-became-hidden-files/ +[9]: https://itsfoss.com/password-protect-folder-linux/ From 6f16deaad2bdc70cfbbd683718fb77d0fcd17fa1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 6 Jul 2022 23:07:33 +0800 Subject: [PATCH 0268/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220706=2010=20Tools=20to=20Generate=20and=20Have?= =?UTF-8?q?=20Fun=20With=20ASCII=20Art=20in=20Linux=20Terminal.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ve Fun With ASCII Art in Linux Terminal.md | 293 ++++++++++++++++++ 1 file changed, 293 insertions(+) create mode 100644 sources/tech/20220706 10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal.md diff --git a/sources/tech/20220706 10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal.md b/sources/tech/20220706 10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal.md new file mode 100644 index 0000000000..bba9eefa51 --- /dev/null +++ b/sources/tech/20220706 10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal.md @@ -0,0 +1,293 @@ +[#]: subject: "10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal" +[#]: via: "https://itsfoss.com/ascii-art-linux-terminal/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal +====== +Linux terminal is not as scary as you think. + +Of course, it could be intimidating in the beginning but once you [know the terminal better][1], you start loving it. + +You are likely to use the terminal for serious work. But there are many fun stuff you can do in the terminal as well. + +One of them is experimenting with ASCII art. You can display predefined or random messages, play games, or run some animation in ASCII format in the Linux terminal using various command line tools. + +My teammate Sreenath likes to explore such unusual CLI tools and share his findings with me. I am sharing those findings with you. + +![ascii art tools linux][2] + +Most of these programs should be available in the repositories of your Linux distribution. You can use your system’s package manager to install them. To keep the article concise, I have only included the installation instructions for Ubuntu. + +### 1. lolcat: Add colors to your terminal + +Alright! lolcat doesn’t have anything to do with ASCII art. At least not directly. + +Still, I included it at the beginning of this article because you can combine other ASCII tools with lolcat. + +So, what does it do? It is similar to the cat command but it adds random gradient colors to its output. + +![lolcat][3] + +It may not look useful at the moment but you’ll see its impact when the outputs of other ASCII tools are piped through lolcat. + +Install lolcat with the apt command: + +``` +sudo apt install lolcat +``` + +### 2. Aewan: Display ASCII text beautifully + +Aewan is a multi-layered ASCII graphics/animation editor. It produces stand-alone cat-able ASCII art files and an easy-to-parse format for integration into terminal applications. + +It has two tools: `aewan`, an ASCII editor and `aecat`, for viewing the created file. + +I am not going to discuss the editor part here. + +![aewan initial layout][4] + +To display any text in pretty ASCII format, you need the aecat command. Notice the use of letters in the screenshot below. + +![aewan output][5] + +To install aewan use the following command: + +``` +sudo apt install aewan +``` + +And then use it like this: + +``` +aecat hello +``` + +### 3. Cowsay: Make an ASCII cow say whatever you want + +What does the cow say? Whatever you want it to say. + +The cowsay is already a popular tool among seasoned Linux users. It shows an ASCII cow that repeats the text you provide it. + +![cowsay][6] + +But you are not restricted to cows only. You can change it to several other characters as well. Like a dragon (burning King’s landing): + +![cowsay][7] + +Did you notice the colored output in the above screenshot? That’s the magic of the lolcat command I mentioned earlier. + +To install cowsay, use: + +``` +sudo apt install cowsay +``` + +Once installed, you can use it like this: + +``` +cowsay hello +``` + +You can refer to its [man page][8] for additional configuration and options. + +### 4. jp2a: Convert images into ASCII art + +jp2a is a command-line tool that [converts images to ASCII art in the Linux terminal][9]. It works with JPEG and PNG files. It also allows colored output and your selection of character set to appear as ASCII image. + +![jp2a][10] + +You can install it using the following command: + +``` +sudo apt install jp2a +``` + +You can get the colorful output and save the ASCII text like this: + +``` +jp2a --output=ascii.txt --colors input.png +``` + +It’s not the only program of this kind. There is ascii-image-converter and several other tools that could be used for the same purpose. I won’t discuss all of them in this list. + +### 5. linuxlogo: Display the ASCII logo your Linux distro + +The name says it all. It displays the [Linux logo in ASCII format][11]. + +No, not our [beloved Linux logo, Tux][12] but the logo of your Linux distribution. It also shows a few additional information like [Linux kernel version][13], CPU, RAM, hostname, etc. + +![linux logo][14] + +You can install it using the apt command: + +``` +sudo apt install linuxlogo +``` + +Just enter linuxlogo to use the command. + +### 6. Neoftech: Display the Linux logo along with system info + +The above linuxlogo command is too simplistic. You can amp it up by using Neofetch. + +It displays the distribution in a more pretty way along with several system information like kernel, uptime, desktop environment, theme, icons, etc. + +![neofetch][15] + +You can also parse it through lolcat to get rainbow-colored output. + +Install Neoftech using this command: + +``` +sudo apt install neofetch +``` + +And then just enter neoftech to run the command. + +There is also screenfetch, a similar tool to Neofetch. You can use either of them. + +### 7. fortune: Get your fortune told + +Just kidding! There’s no such thing. + +However, fortune cookies are still fashionable and apparently, people like to read random predictions or teachings. + +You can get a similar feature in the Linux terminal with the fortune command: + +![fortune cookie linux][16] + +You can install it using the following command: + +``` +sudo apt install fortune +``` + +Once installed, just enter fortune in the terminal to get a random message. + +### 8. pv: Make things animated + +This is a classic example of the unintended use of a Linux command. The pv command is used to monitor the progress of data through pipe. + +But you can use it to animate the output of any command. Combine it with some of the above-mentioned commands and you can see the ASCII art appearing on your screen as if it is being typed. + +Don’t get it? Watch this video: + +![A Video from YouTube][17] + +Install it using the following command: + +``` +sudo apt install pv +``` + +And then use it in the following manner: + +``` +neofetch | pv -qL 200 | lolcat +``` + +The higher the number, the higher will be the speed. + +### 9. cmatrix: Matrix like animation in ASCII + +Remember the cult geek move Matrix? The green falling code is synonymous with Matrix and hacking. + +You can run an ASCII simulation of the falling code in the Linux terminal with cmatrix command. + +I am sharing a screenshot instead of animation here. + +![cmatrix][18] + +You can install it with apt command: + +``` +sudo apt install cmatrix +``` + +Once installed, you can run it with: + +``` +cmatrix +``` + +It starts the animation immediately and it keeps on generating random green text falling and disappearing from the screen. The command keeps on running. To [stop the running application][19], use the Ctrl+C keys. + +### 10. cbonsai: Grow a bonsai in your terminal + +Got a green thumb? How about growing an ASCII bonsai tree in the terminal? + +cbonsai is a [fun Linux command][20] that lets you run bonsai tree growing animation in ASCII format. + +I shared a YouTube Shorts of cbonsai command a few days ago. + +![Have fun with the Linux terminal 😍 🐧][21] + +[Subscribe to our YouTube channel for more Linux videos][22] + +You can install cbonsai using: + +``` +sudo apt install cbonsai +``` + +And then to run the animation, use this command: + +``` +cbonsai -l +``` + +### Try some more + +There are many more such fun CLI tools. Heck, there are [ASCII games][23] as well. It’s fun to use them at times to amuse people around you. + +Can you put these commands to some good use? Not certain about the usability, but you can add some of them in your .bashrc file so that the command is run as soon as you open a terminal session. + +Many sys-admins do that on shared Linux systems. A program like cowsay or figlet can be used to display a message or system info in a pretty way. + +You may also use some of these programs in your bash scripts, especially if you have to highlight something. + +There could be other usages of ASCII art in Linux. I let you share them with the rest of us here. + +#### Read More Articles + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/ascii-art-linux-terminal/ + +作者:[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/basic-terminal-tips-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/ascii-art-tools-linux.png +[3]: https://itsfoss.com/wp-content/uploads/2022/07/lolcat.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/Aewan-initial-layout.png +[5]: https://itsfoss.com/wp-content/uploads/2022/07/aewan-output.png +[6]: https://itsfoss.com/wp-content/uploads/2022/07/cowsay-1.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/cowsay.png +[8]: https://itsfoss.com/linux-man-page-guide/ +[9]: https://itsfoss.com/ascii-image-converter/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/jp2a.png +[11]: https://itsfoss.com/display-linux-logo-in-ascii/ +[12]: https://itsfoss.com/tux-trivia/ +[13]: https://itsfoss.com/find-which-kernel-version-is-running-in-ubuntu/ +[14]: https://itsfoss.com/wp-content/uploads/2022/07/linux-logo.png +[15]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch.png +[16]: https://itsfoss.com/wp-content/uploads/2022/07/fortune-cookie-Linux.png +[17]: https://player.vimeo.com/video/727286686 +[18]: https://itsfoss.com/wp-content/uploads/2022/07/cmatrix.png +[19]: https://itsfoss.com/stop-program-linux-terminal/ +[20]: https://itsfoss.com/funny-linux-commands/ +[21]: https://youtu.be/KqhqgdezPp8 +[22]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 +[23]: https://itsfoss.com/best-ascii-games/ From cda3e6c5eaef60f07bdef59ae7d300705364ffcc Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Thu, 7 Jul 2022 01:08:13 +0800 Subject: [PATCH 0269/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20220623=20How=20to=20Boot=20into=20an=20Older=20Kernel?= =?UTF-8?q?=20By=20Default=20in=20Ubuntu=20and=20Other=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to an Older Kernel By Default in Ubuntu and Other Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md b/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md index c12f4c898a..63b40e4e20 100644 --- a/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md +++ b/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/boot-older-kernel-default/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "hanszhao80" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -108,7 +108,7 @@ via: https://itsfoss.com/boot-older-kernel-default/ 作者:[Abhishek Prakash][a] 选题:[lkxed][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/) 荣誉推出 From b7d2ccf269b09553c42cce8f6533cede8eece8c1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 7 Jul 2022 08:40:10 +0800 Subject: [PATCH 0270/3123] translating --- ...r snap- Error in Ubuntu and other Linux.md | 83 ------------------- ...r snap- Error in Ubuntu and other Linux.md | 83 +++++++++++++++++++ 2 files changed, 83 insertions(+), 83 deletions(-) delete mode 100644 sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md create mode 100644 translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md diff --git a/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md b/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md deleted file mode 100644 index 9debe9b5aa..0000000000 --- a/sources/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md +++ /dev/null @@ -1,83 +0,0 @@ -[#]: subject: "Fixing “cannot find signatures with metadata for snap” Error in Ubuntu and other Linux" -[#]: via: "https://itsfoss.com/snap-metadata-signature-error/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fixing “cannot find signatures with metadata for snap” Error in Ubuntu and other Linux -====== - -The other day I was trying to install [massCode][1] application. For installation, it provided a Snap file to download. - -When I tried to install the application from Snap file - -``` -sudo snap install snap_file -``` - -It gave me the following error: - -**error: cannot find signatures with metadata for snap “masscode_2.6.1_amd64.snap”** - -![cannot find signature with metadata for snap][2] - -That was strange. While [adding external repositories in Ubuntu][3], you have to add the GPG key. But no such things were provided by the developer here. - -The ‘fix’ is easy and simple. Let me explain it to you. - -### Handling “cannot find signatures with metadata for snap” error - -There are no signatures involved here. - -What happens is that you have downloaded a Snap installer file from a third party. The snap mechanism in Ubuntu expects you to get the snap packages from the official snap store. - -Since it doesn’t come from the snap store, you see the ‘cannot find signatures with metadata for snap’ error message. The error message is not descriptive, like most error messages. - -So, what’s the solution here? - -Any snap package that is not distributed through the Snap store has to be installed with the**–dangerous flag**. That’s the rule. - -``` -sudo snap install --dangerous path_to_snap_file -``` - -This way, you tell the snap package manager to explicitly install the snap package. - -Here, I used this flag and was able to install massCode from its snap package successfully. - -![installing third party snap packages][4] - -How ‘dangerous’ is it to install snap packages this way? Almost the same as downloading and [installing packages in deb format][5]. - -In my opinion, if you are downloading the snap package from the project developer’s website, you are already entrusting the project. In such cases, you can install it with the –dangerous flag. - -Of course, you should first search if the package is available in the snap store or not: - -``` -snap find package_name -``` - -I hope this quick little tip helped you fix the Snap error. If you have questions or suggestions please let me know. If you want to learn more, see [this guide on using Snap commands][6]. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/snap-metadata-signature-error/ - -作者:[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://masscode.io/ -[2]: https://itsfoss.com/wp-content/uploads/2022/07/cannot-find-signature-with-metadata-for-snap-800x205.png -[3]: https://itsfoss.com/adding-external-repositories-ubuntu/ -[4]: https://itsfoss.com/wp-content/uploads/2022/07/installing-third-party-snap-packages-800x358.png -[5]: https://itsfoss.com/install-deb-files-ubuntu/ -[6]: https://itsfoss.com/use-snap-packages-ubuntu-16-04/ diff --git a/translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md b/translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md new file mode 100644 index 0000000000..2605742315 --- /dev/null +++ b/translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md @@ -0,0 +1,83 @@ +[#]: subject: "Fixing “cannot find signatures with metadata for snap” Error in Ubuntu and other Linux" +[#]: via: "https://itsfoss.com/snap-metadata-signature-error/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +修复 Ubuntu 和其他 Linux 中的 “cannot find signatures with metadata for snap” 错误 +====== + +前几天我试图安装 [massCode][1] 应用。对于安装,它提供了一个 Snap 文件以供下载。 + +当我尝试从 Snap 文件安装应用程序时 + +``` +sudo snap install snap_file +``` + +它给了我以下错误: + +**error: cannot find signatures with metadata for snap “masscode_2.6.1_amd64.snap”** + +![cannot find signature with metadata for snap][2] + +这很奇怪。[在 Ubuntu 中添加外部仓库][3]时,你必须添加 GPG 密钥。但是这里的开发人员没有提供这样的东西。 + +“修复”简单易行。让我给你解释一下。 + +### 处理 “cannot find signatures with metadata for snap” 错误 + +这里不涉及签名。 + +发生的情况是你从第三方下载了 Snap 安装程序。 Ubuntu 中的 snap 机制希望你从官方 snap 商店获取 snap 包。 + +由于它不是来自 snap 商店,因此你会看到 “cannot find signatures with metadata for snap” 的错误消息。与大多数错误消息一样,错误消息不是描述性的。 + +那么,这里的解决方案是什么? + +任何未通过 Snap 商店分发的 snap 包都必须使用 **-dangerous** 选项进行安装。这就是规则。 + +``` +sudo snap install --dangerous path_to_snap_file +``` + +这样,你告诉 snap 包管理器显式安装 snap 包。 + +在这里,我使用了这个选项并且能够成功地从它的 snap 包中安装 massCode。 + +![installing third party snap packages][4] + +以这种方式安装 snap 包有多“危险”?几乎和下载并[安装 deb 格式安装包][5]相同。 + +在我看来,如果你是从项目开发者的网站上下载 snap 包,你已经在信任项目了。在这种情况下,你可以使用 –dangerous 选项安装它。 + +当然,你应该首先搜索该软件包是否在 snap 商店中可用: + +``` +snap find package_name +``` + +我希望这个快速的小技巧可以帮助你修复 Snap 错误。如果你有任何问题或建议,请告诉我。如果你想了解更多信息,请参阅[这个使用 Snap 命令指南][6]。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/snap-metadata-signature-error/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://masscode.io/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/cannot-find-signature-with-metadata-for-snap-800x205.png +[3]: https://itsfoss.com/adding-external-repositories-ubuntu/ +[4]: https://itsfoss.com/wp-content/uploads/2022/07/installing-third-party-snap-packages-800x358.png +[5]: https://itsfoss.com/install-deb-files-ubuntu/ +[6]: https://itsfoss.com/use-snap-packages-ubuntu-16-04/ From 5239345a420e8308a766db1b04334f26770f8f55 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 7 Jul 2022 08:45:27 +0800 Subject: [PATCH 0271/3123] translating --- ...704 massCode- A Free and Open-Source Code Snippet Manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md b/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md index b3cf66c1f4..86983ef126 100644 --- a/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md +++ b/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/masscode/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 021044ca47e055f2ef63f6cfaf9b6bacb1890c41 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 7 Jul 2022 14:15:53 +0800 Subject: [PATCH 0272/3123] RP @geekpi https://linux.cn/article-14801-1.html --- ...l for Converting Videos from Any Format.md | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) rename {translated/tech => published}/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md (59%) diff --git a/translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/published/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md similarity index 59% rename from translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md rename to published/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md index 8dd7a960dd..91509dd7e5 100644 --- a/translated/tech/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md +++ b/published/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md @@ -3,37 +3,40 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14801-1.html" HandBrake:用于转换任何格式视频的免费工具 ====== -了解 HandBrake,这是一个优秀的工具,可以将任何格式的视频转换为目标类型。 -本文包含功能、下载说明和使用指南。 +![](https://img.linux.net.cn/data/attachment/album/202207/07/141355dt7b8znyhfmltmsh.jpg) + +> 了解一下 HandBrake,这是一个优秀的工具,可以将任何格式的视频转换为目标类型。 + +本文介绍了它的功能、下载说明和使用指南。 ### HandBrake -在这个社交媒体的时代,我们都在拍沉浸式视频,当然还有随之而来的格式。因此,如果你是在 Linux 平台,甚至是在 Windows 平台,你可以使用任何其他软件来转换各种视频,用于多个平台。但是,如果你需要一个简单但功能丰富的视频转换器来处理来自多个来源的所有视频格式,请尝试 HandBrake。 +在这个社交媒体的时代,我们身处各种视频之中,当然还有随之而来的各种格式。因此,如果你是在 Linux 平台,甚至是在 Windows 平台,你可以使用各种软件来为多个平台转换各种视频。但是,如果你需要一个简单但功能丰富的视频转换器来处理来自多个来源的所有视频格式,请尝试 HandBrake。 #### 功能 -HandBrake 有大量的选项,使其成为一个独特的工具。首先,工作流程是超级简单。事实上,它只是三个步骤: +HandBrake 有大量的选项,使其成为一个独特的工具。首先,其工作流程是超级简单。事实上,它只是三个步骤: * 选择一个视频 * 选择一个目标格式 * 转换 -正如你所看到的,如果你是一个新手用户,使用这个工具是非常容易的,因为目标格式的属性(如比特率,尺寸)是基于默认的预设。 +正如你所看到的,如果你是一个新手用户,使用这个工具是非常容易的,因为目标格式的属性(如比特率、尺寸)是基于默认的预设。 其次,如果你想进行高级编辑,如在转换时从字幕文件中添加字幕,也可以使用这个工具。 -此外,你还可以改变尺寸,翻转视频,改变分辨率,修改长宽比,以及裁剪。此外,一套基本的过滤器配置,如去噪和锐化也可以完成。 +此外,你还可以改变尺寸、翻转视频、改变分辨率、修改长宽比,以及裁剪。此外,通过一套基本的过滤器配置,可以完成诸如去噪和锐化等操作。 另外,为你的视频文件添加章节、标签和音轨也很容易。 -也许 HandBrake 的重要功能是提供预设,以满足现代社会媒体和流媒体的需求。例如,预设与流媒体平台和流媒体设备相一致,如: +也许 HandBrake 的重要功能是提供预设,以满足现代社会媒体和流媒体的需求。例如,其预设与这些流媒体平台和流媒体设备相一致,如: * Discord * GMail @@ -47,31 +50,31 @@ HandBrake 有大量的选项,使其成为一个独特的工具。首先,工 一个相当令人印象深刻的列表,不是吗?不仅如此,如果你是一个专业工作者,它可以帮助你定义和创建转换队列。队列功能允许你在工作流程中批量转换多个视频文件。 -最后,你可以转换为 MPEG-4(mp4),Matroska(mkv)和 WebM 格式。 +最后,你可以转换为 MPEG-4(mp4)、Matroska(mkv)和 WebM 格式。 ![HandBrake with various features][1] ### 下载和安装 -下载和安装 HandBrake 对于任何平台(Linux、Mac 和 Windows)都很容易。开发者直接提供可执行文件,可以免费下载。 +下载和安装 HandBrake 对于任何平台(Linux、Mac 和 Windows)都很容易。开发者直接提供了可执行文件,可以免费下载。 -由于本门户网站的主要目标受众是 Linux 用户,我们将讨论 HandBrake 在 Linux 中的安装。 +由于本站的主要目标受众是 Linux 用户,我们将讨论 HandBrake 在 Linux 中的安装。 -对于 Ubuntu、Linux Mint 和所有其他发行版,最好的方法是 Flatpak。你可以[设置 Flatpak][2],然后点击下面的按钮来安装 HandBrake: +对于 Ubuntu、Linux Mint 和所有其他发行版,最好的方法是 Flatpak。你可以 [设置 Flatpak][2],然后点击下面的按钮来安装 HandBrake: -[通过 Flathub 安装 HandBrake][3] +> **[通过 Flathub 安装 HandBrake][3]** -对于 Windows、macOS 的安装程序,请访问这个页面。 +对于 Windows、macOS 的安装程序,请访问 [这个页面][4a]。 -一个有趣的特点是,你可以通过命令行使用这个应用程序!这意味着你可以进一步定制你的应用。这意味着你可以使用命令行工具进一步定制你的工作流程,你可以在[这里][4]下载。 +一个有趣的特点是,你可以通过命令行使用这个应用程序!这意味着你可以使用命令行工具进一步定制你的工作流程,你可以在 [这里][4] 下载。 ### 如何使用 HandBrake 来转换视频?(示例) 既然你安装了它,让我们看看你如何只用三个步骤就能转换一个示例视频。 -1. 打开 HandBrake,点击顶部工具栏上的 “Open Source” 按钮。选择你的视频文件。 -2. 现在,从格式下拉菜单中选择目标文件类型。确保选中目标文件夹(默认为视频)。 -3. 最后,点击顶部工具栏的开始按钮,用 HandBrake 转换视频。 +1. 打开 HandBrake,点击顶部工具栏上的 “打开源文件Open Source” 按钮,选择你的视频文件。 +2. 现在,从“格式Format”下拉菜单中选择目标文件类型。确保选中目标文件夹(默认为 `Videos`)。 +3. 最后,点击顶部工具栏的“开始Start”按钮,用 HandBrake 转换视频。 ![HandBrake Video Conversion in three simple steps][5] @@ -85,7 +88,7 @@ HandBrake 有大量的选项,使其成为一个独特的工具。首先,工 **HandBrake 是免费使用么?** -是的,它是一个免费和开源的应用程序,你可以免费下载它。 +是的,它是一个自由开源的应用程序,你可以免费下载它。 **它可在 Mac 和 Windows 上用么?** @@ -108,7 +111,7 @@ via: https://www.debugpoint.com/handbrake/ 作者:[Arindam][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/) 荣誉推出 @@ -118,6 +121,7 @@ via: https://www.debugpoint.com/handbrake/ [2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ [3]: https://dl.flathub.org/repo/appstream/fr.handbrake.ghb.flatpakref [4]: https://handbrake.fr/downloads2.php +[4a]: https://handbrake.fr/downloads.php [5]: https://www.debugpoint.com/wp-content/uploads/2022/06/HandBrake-Video-Conversion-in-three-simple-steps.jpg [6]: https://www.debugpoint.com/wp-content/uploads/2022/06/Encoding-status.jpg [7]: https://www.pexels.com/video/hands-hand-table-colorful-3997786/ From 6626cce5b252686b37f168345d43c96d3002b8b4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 7 Jul 2022 14:29:03 +0800 Subject: [PATCH 0273/3123] A --- ... is Here with a Revamped UI and Improved Color Saturation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md b/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md index d5478e7a06..5108c415f9 100644 --- a/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md +++ b/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/darktable-4-0-release" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From a6d829507713d5d3703449779750a15713262d66 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 7 Jul 2022 14:47:16 +0800 Subject: [PATCH 0274/3123] RP @wxy https://linux.cn/article-14802-1.html --- ...vamped UI and Improved Color Saturation.md | 97 +++++++++++++++++++ ...vamped UI and Improved Color Saturation.md | 96 ------------------ 2 files changed, 97 insertions(+), 96 deletions(-) create mode 100644 published/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md delete mode 100644 sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md diff --git a/published/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md b/published/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md new file mode 100644 index 0000000000..89eb32ac89 --- /dev/null +++ b/published/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md @@ -0,0 +1,97 @@ +[#]: subject: "Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation" +[#]: via: "https://news.itsfoss.com/darktable-4-0-release" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14802-1.html" + +darktable 4.0.0:用户界面改版,改进了色彩饱和度处理 +====== + +> darktable 4.0.0 版本来了,这是一个主要版本,带来了新的功能,简化了用户界面,还有一些其他的改进。 + +![darktable][1] + +最近,作为其 3.8.x 系列的升级版,darktable 开发人员公布了新的稳定版。 + +最新的升级带来了新功能、错误修复和重大变化。 + +### darktable 4.0 有什么新内容? + +在 darktable 4.0 中,增加了很多功能,并对用户界面进行了一些有意义的重新打造。 + +让我在此介绍一下关键的亮点: + +> **注意:** 这是一次重大版本升级,采用了新的库和配置,与旧版本不兼容。因此,你需要在进行升级之前对你的工作进行备份。 + +#### 颜色和曝光映射 + +在曝光和颜色校准模块中,你现在可以定义和保存颜色采集器的目标颜色/曝光度。 + +这应该有助于你匹配图像中的源对象,并确保一个对象在一批照片中的颜色一致性。 + +#### 完善的用户界面 + +![darktable][2] + +用户界面已经进行了改造以改善外观/感觉。首先能看到的是其默认主题改为了 “优雅灰”。 + +总的来说,填充、边距、颜色、对齐方式和图标等等都得到了改造。也添加了新的可折叠的部分(rgb 通道混合器、曝光、颜色校准),使用户界面更干净,更容易访问。 + +你会发现许多细微的变化,布局也更合理。 + +#### 性能变化 + +在简化用户偏好的同时,该版本还增加了一些优化措施。 + +你还可以改变性能配置,而不需要重启 darktable。 + +#### 改进了色彩饱和度处理 + +![darktable][3] + +Filmic v6(一种新的色彩学)的加入有助于获得更多的饱和度,特别是对于蓝天。 + +另外正如公告中提到的,可以以最小的破坏性方式恢复,调色应该更安全。除此之外,还为艺术饱和度的变化设计了一个新的信息色彩空间。 + +总的来说,你应该对这个版本对饱和度控制的改进感到高兴。 + +#### 其他变化 + +其他一些值得注意的变化包括: + +* 一个新的“引导式拉普拉斯”方法已被添加到高光重建模块中。 +* 全局颜色选择器工具的改进 +* 一个新的对比度参数 +* 一个新的集合过滤器模块 +* 增加了对 EXR 16 位(半数)浮点数输出的支持。 + +你可以在其 [官方公告帖子][4] 中查看所有的技术细节。 + +### 下载 darktable 4.0.0 + +你可以使用 [Flathub][5] 上的 Flatpak 包获得最新版本。写这篇文章时,Snap 包还没有更新。 + +此外,你也可以选择使用其 [GitHub 发布区][6] 中的 tar.xz 文件。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/darktable-4-0-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/07/darktable-4-0-0-1200x675.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/darktable-4.jpg +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/darktable-4-1.jpg +[4]: https://www.darktable.org/2022/07/darktable-4.0.0-released/ +[5]: https://flathub.org/apps/details/org.darktable.Darktable +[6]: https://github.com/darktable-org/darktable/releases/tag/release-4.0.0 diff --git a/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md b/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md deleted file mode 100644 index 5108c415f9..0000000000 --- a/sources/news/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation" -[#]: via: "https://news.itsfoss.com/darktable-4-0-release" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation -====== -darktable 4.0.0 release is here as a major upgrade with new features, simplified UI, and other enhancements. - -![darktable][1] - -Recently, the developers unveiled new stable release as an upgrade over its 3.8.x series. - -The latest upgrade is about new features, bug fixes, and significant changes. - -### darktable 4.0: What’s New? - -With darktable 4.0, we have a lot of feature additions and some impactful rework on the user interface. - -Let me mention the key highlights here: - -**Note:** This is a major upgrade with a new library and configuration, not compatible with the older version. So, you need to take a backup of your work before proceeding. - -#### Color and Exposure Mapping - -Within the exposure and color calibration modules, you now get the ability to define and save a target color/exposure for the color pickers. - -This should help you match source objects in the image and ensure the color consistency of an object across a batch of photos. - -#### UI Rework - -![darktable][2] - -The user interface has undergone a revamp to improve the look/feel. Starting with the default theme being changed to “**Elegant Grey**“. - -Overall, padding, margins, color, alignment, and icons, everything has received a makeover. New collapsible sections (channel mixer rgb, exposure, color calibration) have also been added to make the UI cleaner, and more accessible. - -You will find numerous subtle changes for a better layout. - -#### Performance Changes - -Several optimizations have been added to the release while simplifying the user preferences. - -You also get to change the performance configuration without requiring to restart darktable. - -#### Improved Color Saturation - -![darktable][3] - -The addition of Filmic v6 (a new color science) helps for more saturated colors, especially in blue skies. - -Also, color-grading should be safer considering it can be recovered in the least-destructive way, as mentioned in the announcement post. In addition to that, a new information color space has been designed for artistic saturation changes. - -Overall, you should be happy about this release’s refinements to the saturation control. - -#### Other Changes - -Some other notable changes include: - -* A new “guided Laplacian” method has been added to the highlight reconstruction module. -* Global color picker tool improvements -* A new contrast parameter -* A new collection filters module -* Support for EXR 16-bit (half) float export has been added. - -You may go through all the technical details in its [official announcement post][4]. - -### Download darktable 4.0.0 - -You can get the latest version using the Flatpak package on [Flathub][5]. When writing this, the Snap package wasn’t updated. - -In either case, you can also choose to use the tar.xz file available in its [GitHub releases section][6]. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/darktable-4-0-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/07/darktable-4-0-0-1200x675.jpg -[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/darktable-4.jpg -[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/darktable-4-1.jpg -[4]: https://www.darktable.org/2022/07/darktable-4.0.0-released/ -[5]: https://flathub.org/apps/details/org.darktable.Darktable -[6]: https://github.com/darktable-org/darktable/releases/tag/release-4.0.0 From d6dba4118f9f6c50aa7ac619296d00ebe36a08b9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:38:29 +0800 Subject: [PATCH 0275/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220707=2010=20Great=20KDE=20Apps=20for=20Everyone?= =?UTF-8?q?=20[Part=202].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...10 Great KDE Apps for Everyone [Part 2].md | 310 ++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100644 sources/tech/20220707 10 Great KDE Apps for Everyone [Part 2].md diff --git a/sources/tech/20220707 10 Great KDE Apps for Everyone [Part 2].md b/sources/tech/20220707 10 Great KDE Apps for Everyone [Part 2].md new file mode 100644 index 0000000000..685cb3c6bf --- /dev/null +++ b/sources/tech/20220707 10 Great KDE Apps for Everyone [Part 2].md @@ -0,0 +1,310 @@ +[#]: subject: "10 Great KDE Apps for Everyone [Part 2]" +[#]: via: "https://www.debugpoint.com/great-kde-apps-part-2/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Great KDE Apps for Everyone [Part 2] +====== +A list of ten great KDE apps spread across productivity, utilities and games. Have a look. + +Many new Linux users don’t know that the KDE ecosystem contains hundreds of “Kool” applications across all functionalities and use cases. This article series aims to highlight them for awareness and collaboration among the users and creators of those apps. + +This is part 2 of the “KDE Apps” series. If you missed the first part, you could read it here. + +[Part 1][1] + +### 10 Great KDE Apps – Part 2 + +#### Plan – Project management application + +The first project I would like to feature in this list is one of the best apps – “Plan”. The Plan is a project management application (like Microsoft Project) that can help you to manage moderate to large projects. It is a part of the Calligra suite of applications and is loaded with all necessary features. Additionally, you can create tasks, schedule, assign resources and calculate costs. Other notable features of the Plan include supporting Microsoft Project documents and files you can import and export. + +Perhaps, Plan is one of the feature-rich applications unknown to many project management professionals, and companies end up paying hefty licensing fees to Microsoft Project. + +If you have not checked it out, do it today and manage your projects using this free, open-source software. + +![Plan – KDE App][2] + +**How to Install** + +Installation of the Plan is easy. On the KDE desktop, open Discover and search for “Plan”. And then hit install. + +If you prefer the command line, you can also use the following commands to install Plan. + +For Ubuntu and related distros: + +``` +sudo apt install calligraplan +``` + +For Fedora and related distros: + +``` +sudo dnf install calligraplan +``` + +**More information** + +* [Home page][3] +* [Documentation][4] +* [Source code][5] + +#### ISO Image Writer + +As its name says, the second app in this great KDE apps list is “ISO Image Writer”. It is similar to the [Fedora Media Writer][6] tool but with minimal features. + +Using this application, you can choose an ISO image file and directly write it to the target USB device. In addition, you can also erase the contents of the USB file using this app. + +It is available for Windows executable and macOS to help to create Linux ISO files. + +![ISO Image Writer][7] + +**Download** + +You can download the Windows Exe files and macOS packages on [this page][8]. + +**More information** + +* [Home page][9] +* [Source Code][10] + +#### Muon – Package Manager + +Muon is a package manager similar to the “Synaptic” package manager. It beings features such as system updates, custom software sources, and an easy-to-use package search. You can also search and mark packages for installation using Muon. It is smart enough to prompt you for dependencies before installing a package. I would say, Muon is almost a replica of Synaptic, and the only difference is that it is built using Qt. + +Perhaps, a not-so-popular app for KDE desktop, but a useful one. + +![Muon Package Manager][11] + +Installing the Muon package manager is easy using the following commands for Ubuntu and related distributions. + +``` +sudo apt install muon +``` + +**More information** + +* [Home page][12] +* [Source code][13] + +#### Peruse – Comic Book Reader + +If you are looking for an avid comic book lover, you should try out the next KDE app – “Peruse”. Peruse is a desktop comic book reader that gives you a unique experience while reading your favourite comics. The welcome screen gives you a thumbnail view of your comics collection sorted by the recently read. In addition, you can enjoy its frame-based navigation, which is available alongside page-based navigation. Moreover, you can also start from where you left off after closing the application. + +Also, it supports all the popular comic book formats as listed below. + +* Comic Book Archive (cbz, cbr, cb7, cbt, cba) +* PDF +* ePub Books +* DeVice Independent files (dvi) +* DeJaVu (djvu) +* Compiled Help files (chm) + +![Peruse][14] + +Installing Peruse is easy by using the following commands in Ubuntu Linux. + +``` +sudo apt install peruse +``` + +It is also available as a Snap package for other Linux distributions. You can download the Snap package [here][15]. + +**More information** + +* [Home page][16] +* [Source code][17] + +#### Ruqola + +The next app which we list here is “Ruqola”, which is a “Rocket.Chat” client. The “Rocket.Chat” is a fully customisable communication platform which provides data security for those who need it. It is one of the famous and secure communication platforms which is free and open-source. You can either host your server or opt for paid cloud server for Rocket Chat. + +After you set up the server, you can access using Ruqola. Plenty of desktop clients are available, but you can try this app because it is loaded with features and well-integrated with the KDE desktop. + +For example, you can reply to the messages from the notification pop-up on the KDE desktop. Besides that, it supports thread messages, channels, search, offline chat access, multi-account support and many more. + +![Ruqola – A Rocket.Chat Client][18] + +You can install Ruqola in Ubuntu and related distros using the following command. + +``` +sudo apt install ruqola +``` + +If you prefer Flatpak, you can install it using the instructions presented [here][19] via the Flathub repo. + +**More information** + +* [Home page][20] +* [Source code][21] + +#### Ikona + +The next app is only for the KDE desktop named “Ikona”. If you are a graphics designer, then perhaps this app can assist you in designing icons and visualising your icons in their environment. You can also access Plasma’s Breeze colour palette and export your icons to multiple resolutions. + +Moreover, it is a companion application that helps you when designing icons. Ikona lets you visualize your icons in an environment similar to a Plasma desktop, access the Breeze colour palette and export your icons in multiple sizes. + +![Ikona][22] + +Installing Ikona is easy using the Flatpak. First, set up Flatpak using [this guide][23] and click on the below link to install Ikona. + +[Install Ikona using Flathub][24] + +**More information** + +* [Home page][25] +* [Source Code][26] + +#### Kig + +In the first part of this series, we featured a similar graph plotter tool called “Khipu”. However, here’s another minimal version of it – called “Kig”. Kig is a mathematical graph plotter application that teachers and students can use to teach and learn geometry with its interactive plotting interface. + +It has a grid-based canvas where you can draw using your mouse via points, vectors and lines. In addition, it has a wide range of tools to draw more complex plots. Kig is part of [KDE Education project][27]. + +![Kig][28] + +Install Kig using the following command in Ubuntu and related Linux distributions. + +``` +sudo apt install kig +``` + +**More information** + +* [Home page][29] +* [Source code][30] + +#### Kwave + +Kwave is an audio file editor for KDE desktops. Like the famous and “controversial” Audacity audio editor, Kwave is loaded with features to perform many tasks on your audio files. + +If you are looking for an alternative to Audacity, you should check this out. It has a graphical user interface which shows the waveform of your audio file, which you can cut, paste, reduce noise, zoom in/out, scroll and performs multiple channel operations. It is one of the unknown applications for many users. + +![KWave][31] + +Installing Kwave is easy by using the command line. For Ubuntu and related distribution, you can use the following command to install. + +``` +sudo apt install kwave +``` + +It is also available as a Snap package [from here][32]. + +**More information** + +* [Home page][33] +* [Source code][34] + +#### Kapman + +Like the famous “Pac-Man” game? Then try “Kapman”, a clone of the classic Pac-Man game for KDE desktops. You can play around the maze to eat all the pills avoiding the ghost. + +Besides that, Kapman features health boosts via energizers, difficulty levels and several themes for a retro Pac-Man experience. + +![Kapman][35] + +You can install this game using the terminal using the following command in Ubuntu and related distributions. + +``` +sudo apt install kapman +``` + +Also, you can install it using [Flatpak][36] or [Snap][37]. + +**More information** + +* [Handbook/Documentation][38] +* [Source code][39] + +#### Francis + +The popular Pomodoro technique is to break your time into 25-minute chunks separated by 5 minutes break – called one Pomodoro. After 4 Pomodoro, you can take a more extended break. The final app in this list is “Francis”, a Pomodoro-style time tracking app for KDE desktops. + +Francis comes with a single-window which displays a timer. You can start, pause or stop the Pomodoro timer from the toolbar. + +Installing Francis is difficult because the executable link is broken on the official website. You may build it from Source using the Flatpak via the below commands. + +``` +git clone https://invent.kde.org/fhek/francis.gitcd francisflatpak-builder --repo=repo build-dir --force-clean org.kde.francis.json --install-deps-from=flathubflatpak build-bundle repo francis.flatpak org.kde.francis +``` + +``` +flatpak install francis.flatpak +``` + +**More information:** + +* [Home page][40] +* [Source code][41] + +### Conclusion + +That’s a wrap the Part 2 of great KDE Apps, and I hope you get to know some of the unique and homegrown KDE applications. If you missed the first part, you could read it here: + +[Part 1][42] + +Also, if you want to read similar app discovery series for Ubuntu and GNOME desktops, you can read them here. + +Stay tuned for Part 3. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/great-kde-apps-part-2/ + +作者:[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/best-kde-apps-part-1/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/07/Plan-KDE-App.jpg +[3]: https://calligra.org/plan/ +[4]: https://docs.kde.org/index.php?application=calligraplan +[5]: https://invent.kde.org/office/calligraplan +[6]: https://www.debugpoint.com/fedora-media-writer/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/ISO-Image-Writer.jpg +[8]: https://binary-factory.kde.org/job/KDE%20ISO%20Image%20Writer_Nightly_win64/ +[9]: https://apps.kde.org/isoimagewriter/ +[10]: https://invent.kde.org/utilities/isoimagewriter +[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/Muon-Package-Manager.jpg +[12]: https://apps.kde.org/muon/ +[13]: https://invent.kde.org/system/muon +[14]: https://www.debugpoint.com/wp-content/uploads/2022/07/Peruse.jpg +[15]: https://snapcraft.io/peruse +[16]: https://peruse.kde.org/ +[17]: https://invent.kde.org/graphics/peruse +[18]: https://www.debugpoint.com/wp-content/uploads/2022/07/Ruqola-A-Rocket.Chat-Client.jpg +[19]: https://flathub.org/apps/details/org.kde.ruqola +[20]: https://apps.kde.org/ruqola/ +[21]: https://invent.kde.org/network/ruqola +[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Ikona.jpg +[23]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[24]: https://dl.flathub.org/repo/appstream/org.kde.Ikona.flatpakref +[25]: https://apps.kde.org/ikona/ +[26]: https://invent.kde.org/sdk/ikona +[27]: https://edu.kde.org/ +[28]: https://www.debugpoint.com/wp-content/uploads/2022/07/Kig.gif +[29]: https://edu.kde.org/kig/ +[30]: https://invent.kde.org/education/kig +[31]: https://www.debugpoint.com/wp-content/uploads/2022/07/KWave.jpg +[32]: https://snapcraft.io/kwave +[33]: http://kwave.sourceforge.net/ +[34]: https://invent.kde.org/multimedia/kwave +[35]: https://www.debugpoint.com/wp-content/uploads/2022/07/Kapman.jpg +[36]: https://flathub.org/apps/details/org.kde.kapman +[37]: https://snapcraft.io/kapman +[38]: https://docs.kde.org/?application=kapman +[39]: https://invent.kde.org/games/kapman +[40]: https://apps.kde.org/francis/ +[41]: https://invent.kde.org/utilities/francis +[42]: https://www.debugpoint.com/best-kde-apps-part-1/ From cb31e59ab3bee2623b6b4ab7cefa68d9ccb795b1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:39:56 +0800 Subject: [PATCH 0276/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220707=20Raspberry=20Pi=204=20Support=20is=20Comin?= =?UTF-8?q?g=20to=20Fedora=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Pi 4 Support is Coming to Fedora Linux.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md diff --git a/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md b/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md new file mode 100644 index 0000000000..cc4d8e738d --- /dev/null +++ b/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md @@ -0,0 +1,65 @@ +[#]: subject: "Raspberry Pi 4 Support is Coming to Fedora Linux" +[#]: via: "https://news.itsfoss.com/fedora-raspberry-pi-4/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Raspberry Pi 4 Support is Coming to Fedora Linux +====== +Fedora Linux 37 to introduce the official support for Raspberry Pi 4, thanks to several improvements in the upstream. + +![fedora raspberry pi][1] + +Fedora Linux is well-suited for desktops with its workstation edition. And, if you want it for a server or IoT requirements, you also have the Fedora ARM project. + +It also supports Raspberry Pi boards, except for the recent Raspberry Pi 4 (released back in 2019). + +Now, with a proposed change spotted by [Phoronix][2], it looks like Fedora Linux 37 might be the version adding official support for Raspberry Pi 4. + +### It’s Not Official Yet… + +As of now, enabling support for Raspberry Pi 4 is just a proposed change. + +Fedora Linux usually has its list of proposed changes visible to the public to receive community feedback and let others track them. + +So, the official support in Fedora Linux 37 will only be implemented if it is approved by the Fedora Engineering Steering Committee. + +But, **what was the hold-up?** + +The lack of accelerated graphics and a few missing features did not make it convenient to add support for it. + +Now, with upstream work on newer Linux Kernel and Mesa on bringing graphics acceleration for Raspberry Pi 4, it lets them enable the support for it. + +The proposed change document mentions: + +> Upstream now supports accelerated graphics using the V3D GPU for both OpenGL-ES and Vulkan. There’s also enhancement to wired networking with support for PTPv2 on the CM4/4B. + +Additionally, not just introducing support for Raspberry Pi 4, some of the proposed changes also involve improvements to the Raspberry Pi 3 series and the Zero 2 W. + +So, it should be an interesting change if it happens as one would expect. + +Note that the support for Wi-Fi on Raspberry Pi 400 is not a part of this process but testing for audio support will be a part of this change. + +You can read all the details in the [proposed document][3]. + +What do you think about the support for Raspberry Pi 4 on Fedora Linux 37? Share your thoughts in the comments down below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fedora-raspberry-pi-4/ + +作者:[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/07/fedora-coming-to-raspberry-pi.jpg +[2]: https://www.phoronix.com/scan.php?page=news_item&px=Fedora-37-Raspberry-Pi-4 +[3]: https://fedoraproject.org/wiki/Changes/RaspberryPi4 From 6755434427eadfc6108150191bd3fc3a4ba8665c Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:41:14 +0800 Subject: [PATCH 0277/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220707=20More=20Linux=20Developers=20Joining=20Mic?= =?UTF-8?q?rosoft,=20Systemd=20Creator=20Adds=20to=20the=20List.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...osoft, Systemd Creator Adds to the List.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md diff --git a/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md b/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md new file mode 100644 index 0000000000..4fe5cd450c --- /dev/null +++ b/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md @@ -0,0 +1,67 @@ +[#]: subject: "More Linux Developers Joining Microsoft, Systemd Creator Adds to the List" +[#]: via: "https://news.itsfoss.com/systemd-creator-microsoft/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +More Linux Developers Joining Microsoft, Systemd Creator Adds to the List +====== +It looks like Microsoft is holding all the good cards to play for its industry success with Linux and open-source. + +![microsoft][1] + +Microsoft always gets the attention for some reason when it comes to open-source and Linux. + +And, it also comes to the limelight when we talk about Linux developers…why? + +It seems that Microsoft is hiring a lot of Linux developers for a range of projects. And, a popular name has joined the list. + +Systemd and PulseAudio creator, **Lennart Poettering**, is now working with Microsoft while continuing his focus on systemd development, as reported by [Phoronix][2]. + +In case you are curious, Lennart used to work for Red Hat leading the PulseAudio project and a few other things. + +In addition to Lennart, some key developers like Python creator **Guido Van Rossum** have also joined Microsoft in the past. + +### Microsoft Gearing Up for The Best + +It is no surprise that Microsoft wants to improve its focus on open-source-based projects and utilize Linux as efficiently as possible for its businesses. + +The Azure platform makes the most use of it, and not to forget the **Windows Subsystem for Linux**. + +Hence, Microsoft is constantly hiring Linux developers. You will find plenty of Linux-related positions at [Microsoft Careers][3] if you want to try your skills. + +While this is a big deal for Microsoft’s line of offering, it should not affect Linux desktop users in general. In fact, I think, the more resources Linux developers get, as a result of their switch in job roles, they could help the Linux ecosystem better enhance their vision. + +Of course, it is not ideal to have all key Linux developers work on Microsoft-owned projects. But, it is what it is. + +### Microsoft is Doing Something Right + +It is not just about the financial reward, but the trend of Linux developers joining the team at Microsoft means that they have been successful at some of their efforts on open-source and Linux. + +As long as Microsoft makes an effort to improve the Linux ecosystem, I do not think we have much to worry about it. + +I would not like to be reminded of “Embrace, extend, and extinguish”. After all, it’s all business for all the companies. No one should be considered a hero when it involves money-making decisions. + +So, we can only hope that Microsoft is gearing up for something good in store for Linux developers and users in the near future. + +What do you think about it? Share your thoughts in the comments section below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/systemd-creator-microsoft/ + +作者:[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/07/more-linux-devs-joing-microsoft-systemd-creator-add-list.jpg +[2]: https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft +[3]: https://careers.microsoft.com/us/en/search-results?keywords=Linux From 35f0406a92a18200c5527ced1505008941cdee40 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:42:09 +0800 Subject: [PATCH 0278/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220707=20Meta=20Open=20Sources=20AI=20Translation?= =?UTF-8?q?=20Tool=20That=20Works=20Across=20200=20Languages.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...on Tool That Works Across 200 Languages.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md diff --git a/sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md b/sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md new file mode 100644 index 0000000000..3413146c81 --- /dev/null +++ b/sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md @@ -0,0 +1,36 @@ +[#]: subject: "Meta Open Sources AI Translation Tool That Works Across 200 Languages" +[#]: via: "https://www.opensourceforu.com/2022/07/meta-open-sources-ai-translation-tool-that-works-across-200-languages/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Meta Open Sources AI Translation Tool That Works Across 200 Languages +====== +![meta-company-values-620c6c6c6a862-sej][1] + +Meta has developed a single artificial intelligence (AI)-based model capable of translating across 200 different languages, including many that are not currently supported by commercial tools. + +The company, according to [The Verge][2], is open sourcing the project in the hopes that others will build on its work. The Al model is part of Meta’s ambitious R&D project to develop a “universal speech translator,” which the company sees as critical for growth across its many platforms, from Facebook and Instagram to developing domains like VR and AR. + +Machine translation not only allows Meta to better understand its users (and thus improve the advertising systems that generate 97% of its revenue), but it could also serve as the foundation for a game-changing app for future projects such as its augmented reality glasses. + +Experts in machine translation told the website that Meta’s latest research was ambitious and thorough, but that the quality of some of the model’s translations would likely be significantly lower than that of better-supported languages such as Italian or German. Angela Fan, a META AI research scientist who worked on the project, stated that the team was inspired by the lack of attention given to such low-resource languages in this field. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/meta-open-sources-ai-translation-tool-that-works-across-200-languages/ + +作者:[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/07/meta-company-values-620c6c6c6a862-sej-e1657192290105.png +[2]: https://www.theverge.com/2022/7/6/23194241/meta-facebook-ai-universal-translation-project-no-language-left-behind-open-source-model From 038e898ccf2c8b78568ee5b4d566a4b320c1d2f9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:44:49 +0800 Subject: [PATCH 0279/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220707=20Recommender=20Systems-=20An=20Overview=20?= =?UTF-8?q?of=20the=20Mathematics.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Systems- An Overview of the Mathematics.md | 307 ++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 sources/tech/20220707 Recommender Systems- An Overview of the Mathematics.md diff --git a/sources/tech/20220707 Recommender Systems- An Overview of the Mathematics.md b/sources/tech/20220707 Recommender Systems- An Overview of the Mathematics.md new file mode 100644 index 0000000000..dd31130e62 --- /dev/null +++ b/sources/tech/20220707 Recommender Systems- An Overview of the Mathematics.md @@ -0,0 +1,307 @@ +[#]: subject: "Recommender Systems: An Overview of the Mathematics" +[#]: via: "https://www.opensourceforu.com/2022/07/recommender-systems-an-overview-of-the-mathematics/" +[#]: author: "Dibyendu Banerjee https://www.opensourceforu.com/author/dibyendu-banerjee/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Recommender Systems: An Overview of the Mathematics +====== +This two-part series of articles explains and demonstrates how to implement a recommender system for an online retail store using Python. In this first part of the series, the focus is on the theory behind such a system. The implementation will be covered in the second part. + +![retail-amazon-featured-img][1] + +Recommender systems are now widely used to personalise your online experience, advising you on what to buy, where to dine, and even who you should be friends with. People’s preferences vary, yet they tend to follow a pattern. They have a tendency to like things that are comparable to the other things they enjoy, and they have tastes that are similar to the tastes of the people they know. Recommender systems attempt to capture these trends to forecast what users might enjoy in the future. E-commerce sites, social networks, and online news platforms actively implement their own recommender systems to assist customers in making product choices more efficiently. + +You would have observed that Netflix and Amazon Prime recommend content that is similar to what you watched previously. So, how does this happen? It’s because of a machine learning based recommendation engine that figures out how similar the videos are to other things you like, and then it predicts your choices. + +In 2006, Netflix announced a competition to develop an algorithm that would “significantly increase the accuracy of forecasts about how much someone will enjoy a movie based on their movie tastes.” Since then, Netflix has expanded its use of data to include personalised ranking, page generation, search, picture selection, messaging, and marketing, among other things. The Netflix Recommendation Engine (NRE), its most effective algorithm, is made up of algorithms that select content based on each individual user profile. It’s so accurate that customised recommendations drive 80 per cent of Netflix’s viewer engagement. + +Netflix isn’t the only business that uses a recommender system. Amazon, LinkedIn, Spotify, Instagram, YouTube, and a few other websites employ recommendation algorithms to anticipate customer preferences and grow their businesses. + +With the growth of YouTube, Amazon, Netflix, and other similar Web services over the last few decades, recommender systems have become increasingly important in our lives. In a broad sense, these systems are algorithms that try to propose relevant items to consumers (these can range from music to perfumes, books, products to buy or anything else, depending on the industries). + +![Figure 1: E-commerce sites show alternative products][2] + +Now let’s look at the various recommender system paradigms and how they work, outline their mathematical foundations, and discuss the strengths and weaknesses of each of them. + +#### Relationships in the context of developing a recommendation system + +*User-product relationship:* When some users have an affinity or desire for specific items, this is known as the user-product connection. An athlete, for example, may have a taste for athletics-related things; therefore the e-commerce website will create an *Athletics -> Sports user-product* relationship. + +*Product-product relationship:* When items are similar in nature, whether by look or description, they form product-product associations. Books or music in the same genre, and dishes from the same cuisine are all such examples. + +*User-user relationship:* When two or more customers have similar tastes in a product or service, they form user-user relationships. Mutual friends, same backgrounds, comparable ages, and so on, are examples of this. + +![Figure 2: Related product recommendations][3] + +#### Providing data for a recommender system, and some challenges + +Data can be provided to a recommender system in a variety of methods. Explicit and implicit ratings are two of the most essential methods. + +**Explicit ratings:** The user expresses his or her opinion through explicit ratings. Star ratings, reviews, feedbacks, likes, and following someone are just a few examples. Exact ratings can be difficult to obtain because people do not always rate things. + +![Figure 3: Location specific recommendations][4] + +*Implicit ratings:* When people interact with an item, they give implicit ratings. These infer a user’s activity and are simple to obtain because consumers click implicit ratings subconsciously. Clicks, views, and purchases are all examples of such ratings. + +![Figure 4: Content based filtering][5] + +| - | +| :- | +| Note: Users spend time and money on what is most important to them; therefore views and purchases are a better entity to promote. | + +There are some specific technical challenges to building a recommendation engine, some of which are explained below. + +* Lack of data: To produce effective predictions, recommender systems require a huge amount of data. Large firms like Google, Apple and Amazon can generate better +recommendations since they collect data about their customers on a regular basis. There are also recommender systems that are based just on purchases, with no ratings recorded. If clients do not rate a book, Amazon does not know how much they enjoyed it. +* Cold start: This situation comes when new customers or new items are added to the system; a new item cannot be recommended to customers when it is first introduced to the recommender system because it lacks ratings or reviews, making it difficult to predict the choice or interest of customers, resulting in less accurate recommendations. A newly released movie, for example, cannot be recommended to the user until it has received some ratings. A new customer item added-based problem is difficult to handle because it is impossible to find similar users without prior knowledge of their interests or preferences. +Sparsity: This occurs when the majority of users do not provide ratings or reviews for the items they purchase, causing the rating model to become very sparse, potentially leading to data sparsity issues. This reduces the chances of finding a group of users with similar ratings or interests. +* Latency: Many products are added frequently to the database of recommendation systems; however, only the previously existing products are generally recommended to users because newly added products have not yet been rated. + +![Figure 5: Collaborative filtering][6] + +#### Use cases for recommender systems + +The following are some of the potential use cases of a recommender system that can add value to a business. + +* Alternative product recommendations: You’ve probably tried to buy something you wanted, only to find it wasn’t available. But it’s unlikely you left the website after that. Instead, you may come across something similar, which you may or may not purchase. Companies utilise a recommendation system to keep customers online by providing them with alternatives to the product they want. +* Related product recommendations: Another important application of recommender systems is related product recommendations. When customers make a purchase, it’s only natural to offer them something complementary. If a customer purchases a wrist watch, the system may suggest a wallet, which goes well with it. +* Real-time true personalisation: With every second of customer activity on e-commerce sites, recommender systems can provide product or content or lifestyle recommendations. They can serve as a shopping assistant, using all the information the customer gives to offer improved recommendations, thus creating a better shopping experience. + +### Recommender systems: A broad categorisation + +#### Content-based filters + +Content-based recommender systems give recommendations based on objects or user metadata. The user’s previous purchases are scrutinised. For example, if a user has previously read a book by a particular author or purchased a product from a particular brand, it is considered that the user has a preference for that author or brand and is likely to purchase a similar product in the future. For example, if a user likes the book ‘The Adventures of Feluda’ by Satyajit Ray, then the system recommends more books by the same author or other detective books like ‘The Mystery of the Fortress & Other Stories’. + +Two types of data are used in this filtering. The first includes the user’s preferences, interests, and personal information such as age or, in some cases, the user’s history. The user vector represents this information. The second is an item vector, which is a collection of information about a product. The item vector contains all the information that can be used to calculate the similarity between things. Cosine similarity is used to determine the recommendations. + +#### Collaborative filtering + +This is regarded as one of the most intelligent recommender systems, and is based on the similarity between different users and things such as e-commerce websites and online movie websites. It makes recommendations based on the preferences of comparable users. Similarity is not limited to the user’s preference; it can also be considered between distinct objects. If we have a big amount of knowledge about people and things, the algorithm will make more efficient recommendations. + +Collaborative filtering is a method of recommending items that a user might enjoy based on the reactions of other users. It works by sifting through a huge group of people to locate a smaller group of users with likes similar to a specific user. It analyses their favourite things and creates a ranked list of recommendations. + +A collaborative filtering system’s workflow is usually as follows: + +* A user expresses his or her choices by rating system objects (for example, music, books, or movies). These ratings might be considered as an approximation of the user’s interest in the topic. +* The system matches this user’s preferences against other user preferences and finds the people with the most ‘similar’ choice. +* The system recommends items that similar users have rated the most but have not yet been rated by this user (the absence of rating is often considered as unfamiliarity with an item). + +The main challenge of collaborative filtering is combining and weighing the preferences of user neighbours. Users can sometimes rate the recommended items right away. As aresult, over time, the system obtains a more accurate depiction of consumer preferences. + +#### The math behind finding the ‘similarity’ to recommend + +So, how does a recommender system determine ‘similarity’? The distance metric is used to do this. Similarity is a subjective concept that varies greatly depending on the domain and application. The points closest to each other are the most similar, while the points furthest apart are the least relevant. Two films, for example, may be comparable in terms of genre, length, or actors. When measuring distance between unrelated dimensions/features, caution is advised. The relative values of each element must be normalised, else the distance calculation will be dominated by one feature. + +**Minkowski distance:** The Minkowski distance is the general form when the dimension of a data point is numeric. It’s a metric for vector spaces with real values. Minkowski distance can only be calculated in a normed vector space, which is a space where distances can be represented as a vector with a length that cannot be negative. Manhattan(r=1) and Euclidean(r=2) distance measurements are generalisations of this generic distance metric. + +The formula shown above for Minkowski distance is in a generalised form, and we can manipulate it to get different distance metrics. Here, the ‘p’ value can be manipulated to give us different distances like: + +![][7] + +* p = 1; when p is set to 1, it is Manhattan distance +* p = 2; when p is set to 2, it is Euclidean distance + +**Manhattan distance:** This distance is also known as taxicab distance or city block distance because of how it is calculated. The sum of the absolute differences of two places’ Cartesian coordinates is the distance between them – it’s the distance between two places when measured at right angles along axes. The formula is: + +**[Euclidean distance:][8]** The square root of the sum of squares of the difference between the coordinates is given by the Pythagorean theorem: + +![][9] + +**[Cosine similarity:][10]** This is a metric that is useful in determining how similar the data objects are, irrespective of their size. Cosine similarity calculates the cosine of the angle between two vectors to determine how similar they are. In cosine similarity, data objects in a data set are treated as a vector. The formula to find the cosine similarity between two vectors is: + +![][11] + +``` +Cos(x, y) = x . y / ||x|| * ||y|| +``` + +where, + +* x, y = product (dot) of the vectors ‘x’ and ‘y’ +* ||x|| and ||y|| = length of the two vectors ‘x’ and ‘y’ +* ||x|| * ||y|| = cross product of the two vectors ‘x’ and ‘y’ + +The cosine similarity between two vectors is measured in ‘θ’. If θ = 0°, the ‘x’ and ‘y’ vectors overlap, thus proving they are similar. If θ = 90°, the ‘x’ and ‘y’ vectors are dissimilar. + +#### Word embedding in the context of building a recommender system + +Word embeddings are texts that have been translated into numbers, and there may be multiple numerical representations of the same text. But before we get into the specifics of word embedding, we need to consider the following question: Why do we need it? + +Many machine learning algorithms and almost all deep learning architectures are unable to interpret strings or plain text in their raw form, as we all know. They need numbers as inputs to accomplish any task, including classification, regression, and so forth. Word embedding is nothing but the process of converting text data to numerical vectors. These vectors are then utilised to create a variety of machine learning models. In a sense, we could describe this as extracting features from text in order to create numerous natural language processing models. + +We can transform text data into numerical vectors in a variety of ways. We’ll learn about numerous word embedding strategies with examples in this post, as well as how to apply them in Python. + +### Techniques for word embedding + +The common and easy word embedding methods for extracting characteristics from text are: + +* TF-IDF +* Bag of words +* Word2vec + +#### TF-IDF + +A popular word embedding technique for extracting features from corpus or language is TF-IDF. It is a statistical way of finding how important a word is to a document over other documents. + +TF stands for ‘term frequency’. In TF, we assign a score to each word or symbol according to how frequently it appears. The frequency of a word is determined by the document’s length. This means that a word appears more frequently in huge documents than in small or medium documents. To solve this problem, we can normalise the frequency of a word by dividing it by the length of the document (total number of words). + +Using this method, we may create a sparse matrix with the frequency of each word. + +``` +TF=Number of times a term occurs in a document/total number of words in a document +``` + +#### IDF + +The full form of IDF is ‘inverse document frequency’. Here, we are assigning a score value to a word, which explains how infrequent a word is across all documents. Infrequent words have higher IDF scores. + +``` +IDF = log base e (total number of documents/number of documents that have the term) + +TF - IDF = TF * IDF +``` + +TF-IDF value is increased based on the frequency of the word in a document. This approach is mostly used for document/text classification, and also successfully used by search engines like Google as a ranking factor for content. + +When compared to the words that are relevant to a document, some common words (like ‘a’, ‘the’, ‘is’) appear relatively frequently in a huge text corpus. These popular words convey very little information about the document’s actual contents. If we fed the count data of these commonly occurring words directly to a classifier, the frequencies of rarer but more intriguing phrases would be overshadowed. So, ideally, what we want is to give lesser weightage to the common words occurring in almost all documents and give more importance to words that appear in a subset of documents. + +The TF-IDF transform is frequently used to re-weigh count features into floating point values suitable for use by a classifier. This technique considers the occurrence of a word over the entire corpus, not just in a single document. Consider a business article — it will have more business-related terms like stock markets, prices, shares, and so on, than any other article, but terms like ‘a’, ‘an’, and ‘the’ will also appear frequently in it. As a result, this technique will punish certain high-frequency words. + +Consider the table given below, which shows the total number of terms (tokens/words) in two papers. + +| - | - | - | - | +| :- | :- | :- | :- | +| Document 1 | Document 2 | +| TERM | COUNT | TERM | COUNT | +| this | 1 | this | 1 | +| is | 1 | is | 2 | +| about | 2 | about | 1 | +| pandemic | 4 | technology | 1 | + +Let’s define a few terminologies associated with TF-IDF now. + +``` +Term Frequency (TF) = (Number of times term t appears in a document)/(Number of terms in the document) +So, TF (This, Document1) = 1/8 +TF (This, Document2) =1/5 +``` + +This denotes the word’s contribution to the document, i.e., terms that are relevant to the document should appear frequently. For example, a document discussing a pandemic should use the word ‘pandemic’ frequently. + +``` +IDF = log (N/n), where, N is the number of documents and n is the number of documents a term t has appeared in. +So, IDF (This) = log (2/2) = 0. +``` + +So, what’s the best way to explain why IDF exists. Ideally, if a term appears multiple times in a paper, it is unlikely that it is significant to that document. However, if it appears in a subset of papers, it is likely that the word is relevant to the documents in which it appears. + +Let us compute IDF for the word ‘pandemic’: + +``` +IDF (pandemic) = log (2/1) = 0.301. +``` + +Now, let us compare the TF-IDF for a common word ‘this’ and a word ‘pandemic’ which seems to be of relevance to Document 1. + +``` +TF-IDF (this, Document1) = (1/8) * (0) = 0 +TF-IDF (this, Document2) = (1/5) * (0) = 0 +TF-IDF (pandemic, Document1) = (4/8)*0.301 = 0.15 +``` + +As you can see, for Document 1, the TF-IDF method heavily penalises the word ‘this’, but assigns greater weight to ‘pandemic‘. So, this may be understood as ‘pandemic’ is an important word for Document 1 from the context of the entire corpus. + +### Bag of words + +Humans can understand a language in a fraction of a second. Machines, on the other hand, are unable to comprehend a language. We need to translate the text into a numerical format that the system can interpret. Because most machine learning and statistical models deal with quantitative data, we must transform all the texts to numbers. Bag of words is one of the simplest techniques to do this. In this approach, we perform two operations: + +* Tokenization +* Vectors creation + +**Tokenization:** This is the process of breaking down each sentence into words or smaller chunks. Each word or symbol is referred to as a token in this context. We can take unique words from the corpus after tokenization. The tokens we have from all the documents we’re examining for the bag of words construction are referred to as ‘corpus’. + +**Vectors creation:** Here, the size of the vector is equal to the number of unique words of the corpus. We can fill each position of a vector with the corresponding word frequency in each sentence. Let’s look at an example. + +* I like to drink tea. +* Tea is good for your health. +* Tea is more popular than coffee in India. + +If we want to analyse the above sentences or build any ML model, we first need to convert them into numbers, as I mentioned above. + +The first step is to tokenize the sentences. This is nothing but splitting the above three sentences into individual words. + +![Figure 6: Euclidean distance and Manhattan distance][12] + +The next step is to find all the unique words from the above sentences and build the vocabulary. We’ll have to make a dictionary with keys and values. The words in our corpus serve as keys, and the frequency of those terms throughout the corpus serves as values. To put it another way, simply count the number of times each word appears in each sentence. +From Table 1, we can see the numbers corresponding to the respective sentences. The first row represents the vector for sentence 1. Given below are the vectors for: + +``` +Sentence 1 = [1,1,1,1,1,0,0,0,0,0,0,0,0,0,0] +Sentence 2 = [0,0,0,0,1,1,1,1,1,0,0,0,0,0,0] +Sentence 3 = [0,0,0,0,1,1,0,0,0,1,1,1,1,1,0] +``` + +The bag of words paradigm is based on this concept. The above vector representation can be used as an input for ML or statistical models. + +![table 1][13] + +### Word2vec + +In a sentence, every word is dependent on another word or words. Word dependencies must be captured if we are to uncover commonalities and relationships between words. + +We can’t capture the meaning or relationship of words from vectors using the bag of words and TF-IDF approaches. Word2vec creates embeddings, which are vectors. The word2vec model takes a big corpus as input and outputs it in vector space. The dimensionality of this vector space could be in the hundreds. This vector space will be used to position each word vector. + +![Figure 7: Cosine similarity][14] + +In vector space, all words in a corpus that are closer to each other share a common context. In this space, a word vector contains the positions of associated words. + +Continuous bag of words (CBOW) and skip-gram are two neural network-based versions offered by word2vec. The neural network model in CBOW takes a variety of words as input and predicts a target word that is closely connected to the input words’ context. The skip-gram design, on the other hand, takes one word as input and anticipates its closely related context terms. + +CBOW is faster and finds better numerical representations for common words, although skip-gram can represent rare words effectively. Word2vec models excel at capturing semantic connections between words. Consider the relationship between a country and its capital, such as France’s capital, Paris, and Germany’s capital, Berlin. These models are best at doing semantic analysis, which is useful for making recommendations. + +**Applicability of word2vec models in building product recommendations:** Word2vec uses the sequential nature of the text as a fundamental property of a natural language to produce vector representations of text. There is a word sequence in every sentence or phrase. We would have great difficulty understanding the text without this sequence. + +One such example is the purchases made by consumers on e-commerce websites online. There is generally a pattern in the buying behaviour of consumers. For instance, a person involved in sports-related activities might have an online buying pattern similar to what is shown in Figure 8. + +![Figure 8: Purchase history][15] + +We can quickly locate related products if we can represent each of these things as a vector. So, if a user is looking at a product online, we can quickly offer related things to him or her based on the product’s vector similarity score. However, how can we obtain a vector representation of these items? Is it possible to obtain these vectors using the word2vec model? Yes, it is! Consider a customer’s purchasing history as a sentence, with the products as the words, as shown in Figure 9. + +![Figure 9: Customer’s purchasing history as a sentence][16] + +So we have seen how a recommender system works and the mathematics behind it. We have also covered some basics of the ML being used in such a system. In the next part of this two-part series of articles, we will see how we can apply the knowledge learnt here to build a recommender system in Python. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/recommender-systems-an-overview-of-the-mathematics/ + +作者:[Dibyendu Banerjee][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/dibyendu-banerjee/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/retail-amazon-featured-img.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-E-commerce-sites-show-alternative-products.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Related-product-recommendations.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-3-Location-specific-recommendations.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-4-Content-based-filtering.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-5-Collaborative-filtering.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/05/equation-1.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/05/equation-2.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/05/equation-2.jpg +[10]: https://www.opensourceforu.com/wp-content/uploads/2022/05/equation-3.jpg +[11]: https://www.opensourceforu.com/wp-content/uploads/2022/05/equation-3.jpg +[12]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-6-Euclidean-distance-and-Manhattan-distance.jpg +[13]: https://www.opensourceforu.com/wp-content/uploads/2022/05/table-1.jpg +[14]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-7-Cosine-similarity.jpg +[15]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-8-Purchase-history.jpg +[16]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-9-Customers-purchasing-history-as-a-sentence.jpg From b866d00af26d5f62e692d143b9e9c62c217714a1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:45:49 +0800 Subject: [PATCH 0280/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220707=20Use=20secret=20keyboard=20keys=20on=20Lin?= =?UTF-8?q?ux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20707 Use secret keyboard keys on Linux.md | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 sources/tech/20220707 Use secret keyboard keys on Linux.md diff --git a/sources/tech/20220707 Use secret keyboard keys on Linux.md b/sources/tech/20220707 Use secret keyboard keys on Linux.md new file mode 100644 index 0000000000..05aadb7731 --- /dev/null +++ b/sources/tech/20220707 Use secret keyboard keys on Linux.md @@ -0,0 +1,151 @@ +[#]: subject: "Use secret keyboard keys on Linux" +[#]: via: "https://opensource.com/article/22/7/linux-compose-key-cheat-sheet" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use secret keyboard keys on Linux +====== +With a compose key, you're not limited to what's on your keyboard. Download the cheat sheet. + +![Linux keys on the keyboard for a desktop computer][1] + +A typical computer keyboard has only about 100 keys on it. + +Most keys double up on characters, also called glyphs, thanks to the Shift key. Glyphs are frequently used to type letters with accents and umlauts, to produce characters used in mathematic or monetary expressions, or just to add fun emojis. In some regions there are even three glyphs available on select keys. + +Regardless of your region, however, some glyphs don't make it onto your keyboard. Fortunately, Linux provides access to these through a compose key. + +There's no compose key on your keyboard, at least not by default, but you can designate a key you're not otherwise using as your compose key. I use the Alt key to the right of the spacebar on my desktop keyboard and the Menu key on my laptop. + +**[[ Download the cheat sheet: Linux compose key ]][2]** + +### Setting a Compose key in GNOME + +![A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.][3] + +Image by: + +(Seth Kenlon, CC BY-SA 4.0) + +On the GNOME desktop, install the Tweaks application from your software repository. You can also install it from a terminal (use `apt` for Debian-based distributions, `dnf` for Fedora and similar): + +``` +$ sudo dnf install gnome-tweaks +``` + +After you launch Tweaks: + +1. Click on the Keyboard & Mouse category in the left column. +2. Locate the Compose key setting and choose a key to designate. +3. Close Tweaks. + +### Setting a Compose key in KDE Plasma Desktop + +![A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.][4] + +Image by: + +(Seth Kenlon, CC BY-SA 4.0) + +On the KDE Plasma Desktop, open System Settings and navigate to the Input Devices control panel. Then: + +1. In the Input Devices panel, click the Advanced tab. +2. Find the Compose key list item and choose a key to designate. +3. Click the Apply button in the bottom right corner of the window and then close System Settings. + +### Using compose sequences + +To enter a hidden character, press the compose key and then release it. You're now in compose mode. While in compose mode, you can press and release one key and then another to combine characters. + +For instance: + +1. Press the compose key and release it. You are now in compose mode. +2. Press an apostrophe (') and then release it. +3. Press the letter E and then release it. This is a valid combination, so you are now out of compose mode. + +You've just typed the letter É! + +Some compose sequences are a combination of just two keys, while others require three keys, and at least one special glyph uses a series of four key presses. + +### The secret glyphs + +It's a small world, so there's a good chance you've got friends whose names use glyphs that aren't native to your keyboard. You can now stop skipping over diacritics and type names using the appropriate modifiers. + +Here's a sample list of compose sequences for common diacritics: + +* ' + = á é í ó ú ć ń ý j́́ ẃ ź +* ` + = à è ì ò ù ǹ ỳ ẁ +* ~ + = ã ẽ ĩ õ ũ ñ ỹ +* ^ + = â ê î ô û ĉ ŷ ĵ ŵ ẑ +* u + = ă ĕ ĭ ŏ ŭ +* c + c = č +* - + = ā ē ī ō ū đ +* , + = ą ę į ǫ ų ç ḑ ţ + +That's not a complete list, but it covers a lot of the common ones. + +#### Currency + +International banking gets a little easier thanks to the compose key, too: + +* - + Y = ¥ +* - + L = £ +* = + E = € +* = + L = ₤ +* = + N = ₦ +* = + R = ₹ +* = + W = ₩ +* / + m = ₥ +* R + s = ₨ +* C + r = ₢ +* F + r = ₣ + +Once again, that's not a complete list, but it's a good start. + +#### Fun glyphs + +Diacritics and currency are useful, but the compose key can be used just for fun, too. + +* < + 3 = ♥ +* < + > = ⋄ +* # + q = ♩ +* : + ) = ☺ +* : + ( = ☹ +* p + o + o = 💩 + +#### Live long and prosper + +My favorite "secret" glyph in Linux is the traditional Vulcan salutation, "Live long and prosper." + +* L + L + A + P = 🖖 + +### Finding all the glyphs + +There are many more glyphs available through the compose key, and you can have fun discovering new ones by pressing random compose sequences. A more methodical method for finding glyphs is to refer to the `Compose` file, located in `/usr/share/X11/locale/en_US.UTF-8` (adjust the exact path depending on the locale your keyboard uses). + +That file can admittedly be overwhelming, as it consists of over 6,000 lines of compose sequences, many of which are complex combinations of ASCII and Unicode. For a quick and easy reference of common and foundational sequences, you can [download our compose key cheat sheet][5]. It provides sequences covering mathematics, typography, music, arrows, diacritics, currency, and more. + +Now that you're in on the secret, your range of expression just got a whole lot bigger. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet + +作者:[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/linux_keyboard_desktop.png +[2]: https://opensource.com/downloads/linux-compose-key-cheat-sheet +[3]: https://opensource.com/sites/default/files/2022-04/gnome-tweaks-compose.jpeg +[4]: https://opensource.com/sites/default/files/2022-04/kde-settings-input-advanced-compose.jpeg +[5]: https://opensource.com/downloads/linux-compose-key-cheat-sheet From 44810c4c0dc2e3aaed32a7745d9b3c8058162cf1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 7 Jul 2022 23:49:11 +0800 Subject: [PATCH 0281/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220707=20Check=20disk=20usage=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220707 Check disk usage in Linux.md | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 sources/tech/20220707 Check disk usage in Linux.md diff --git a/sources/tech/20220707 Check disk usage in Linux.md b/sources/tech/20220707 Check disk usage in Linux.md new file mode 100644 index 0000000000..f10b4b674c --- /dev/null +++ b/sources/tech/20220707 Check disk usage in Linux.md @@ -0,0 +1,155 @@ +[#]: subject: "Check disk usage in Linux" +[#]: via: "https://opensource.com/article/22/7/check-disk-usage-linux" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Check disk usage in Linux +====== +The du and ncdu commands provide two different views of the same information, making it easy to keep track of what's stored on your computer. + +![Data stack in blue][1] + +Knowing how much of your disk is being used by your files is an important consideration, no matter how much storage you have. My laptop has a relatively small 250GB NVME drive. That's okay most of the time, but I began to explore gaming on Linux a couple of years ago. Installing Steam and a few games can make storage management more critical. + +### The du command + +The easiest way to examine what's left for storage on your disk drive is the [du command][2]. This command line utility estimates file space usage. Like all Linux tools, `du` is very powerful, but knowing how to use it for your particular needs is helpful. I always consult the man page for any utility. This specific tool has several switches to give you the best possible snapshot of file storage and how much space they consume on your system. + +There are many options for the `du` command. Here are some of the common ones: + +* -a - write counts for all files and not just directories +* --apparent-size - prints apparent sizes rather than disk usage +* -h - human-readable format +* -b - bytes +* -c -grand total +* -k - block size +* -m - size in megabytes + +Be sure to check the `du` man page for a complete listing. + +#### Display all files + +The first option you could choose is `du -a`. It provides a readout of all files on your system and the directories they are stored in. This command lets me know I've got 11555168 bytes stored in my home directory. Using `du -a` provides a quick recursive look at my storage system. What if I want a more meaningful number, and I want to drill down into the directories to see where the big files are on my system? + +I think there are some big files in my `Downloads` directory, so I enter `du -a /home/don/Downloads` to get a good look at that `Downloads` directory. + +``` +$ du -a ~/Downloads +4923    ./UNIX_Driver_5-0/UNIX Driver 50 +4923    ./UNIX_Driver_5-0 +20     ./epel-release-latest-9.noarch.rpm +12    ./rpmfusion-free-release-9.noarch.rpm +2256    ./PZO9297 000 Cover.pdf +8    ./pc.md +2644    ./geckodriver-v0.31.0-linux64.tar.gz +466468 +``` + +The numbers on the far left are the file sizes in bytes. I want something more helpful to me so I add the switch for the human-readable format to my `du -h /home/don/Downloads` command. The result is 4.8 G(igabytes) which is a more useful number format for me. + +``` +$ du -a ~/Downloads +4.9M    ./UNIX_Driver_5-0/UNIX Driver 50 +4.9M    ./UNIX_Driver_5-0 +20K    ./epel-release-latest-9.noarch.rpm +12K    ./rpmfusion-free-release-9.noarch.rpm +2.2M    ./PZO9297 000 Cover.pdf +8.0K    ./pc.md +2.6M    ./geckodriver-v0.31.0-linux64.tar.gz +456M    . +``` + +As with most Linux commands, you can combine options. To look at your `Downloads` directory in a human-readable format, use the `du -ah ~/Downloads` command. + +**[[ Read also: 5 Linux commands to check free disk space ]][3]** + +#### Grand total + +The `-c` option provides a grand total for disk usage at the last line. I can use `du -ch /home/don` to display every file and directory in my home directory. There is a lot of information, and I really just want what is at the end, so I will pipe the disk usage command to `tail`. The command is `du -ch /home/don | tail`. + +![pipe the du command output into tail][4] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +### The ncdu command + +Another option for Linux users interested in what is stored on their drive is the [ncdu command][5]. The command stands for *NCurses Disk Usage*. Depending on your Linux distribution, you may need to download and install it. + +On Linux Mint, Elementary, Pop_OS!, and other Debian-based distributions: + +``` +$ sudo apt install ncdu +``` + +On Fedora, Mageia, and CentOS: + +``` +$ sudo dnf install ncdu +``` + +On Arch, Manjaro, and similar: + +``` +$ sudo pacman -S ncdu +``` + +Once installed, you can use `ncdu` to analyze your filesystem. Here is a sample output after issuing `ncdu` inside my home directory. The man page for `ncdu` states that "ncdu (NCurses Disk Usage) is a curses-based version of the well-known `du`, and provides a fast way to see what directories are using your disk space." + +![du command home directory output][6] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +I can use the arrow keys to navigate up and down and press the **Enter** key to enter a directory. An interesting note is that `du` reported total disk usage in my home directory as 12GB, and `ncdu` reports that I have total disk usage of 11GB. You can find more information in the `ncdu` man page. + +You can explore a particular directory by pointing `ncdu` to that directory. For example, `ncdu /home/don/Downloads`. + +![ncdu command output][7] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +Press the **?** key to display the Help menu + +![ncdu help][8] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +### Wrap up + +The `du` and `ncdu` commands provide two different views of the same information, making it easy to keep track of what's stored on your computer. + +If you're not comfortable in the terminal or just looking for yet another view of this kind of information, check out the [GNOME Disk Usage Analyzer][9]. You can easily install and use it if it's not already on your system. Check your distribution for `baobab` and install it if you'd like to experiment. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/check-disk-usage-linux + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/data_stack_blue_disks.png +[2]: https://opensource.com/article/21/7/check-disk-space-linux-du +[3]: https://opensource.com/article/18/7/how-check-free-disk-space-linux +[4]: https://opensource.com/sites/default/files/2022-06/1-du-tail.png +[5]: https://opensource.com/article/21/8/ncdu-check-free-disk-space-linux +[6]: https://opensource.com/sites/default/files/2022-06/2home.png +[7]: https://opensource.com/sites/default/files/2022-06/3downloads.png +[8]: https://opensource.com/sites/default/files/2022-06/4ncdu.png +[9]: https://help.gnome.org/users/baobab/stable/ From b6e2cc1c49f122fe75579b2949f909ce7debde30 Mon Sep 17 00:00:00 2001 From: lkxed <39257389+lkxed@users.noreply.github.com> Date: Thu, 7 Jul 2022 23:56:26 +0800 Subject: [PATCH 0282/3123] =?UTF-8?q?20220707=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=BF=87=E6=97=B6=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...itHub And Encourages You To Do The Same.md | 40 -------- ...A Powerful RISC-V Single Board Computer.md | 92 ------------------- 2 files changed, 132 deletions(-) delete mode 100644 sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md delete mode 100644 sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md diff --git a/sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md b/sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md deleted file mode 100644 index 06f01603d6..0000000000 --- a/sources/news/20220701 An Open Source Organisation Has Left GitHub And Encourages You To Do The Same.md +++ /dev/null @@ -1,40 +0,0 @@ -[#]: subject: "An Open Source Organisation Has Left GitHub And Encourages You To Do The Same" -[#]: via: "https://www.opensourceforu.com/2022/07/an-open-source-organisation-has-left-github-and-encourages-you-to-do-the-same/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -An Open Source Organisation Has Left GitHub And Encourages You To Do The Same -====== -![sfc][1] - -The Software Freedom Conservancy (SFC), a non-profit dedicated to free and open source software (FOSS), has announced that it will no longer use Microsoft’s GitHub for project hosting and is urging other software developers to do the same. Denver Gingerich, SFC FOSS licence compliance engineer, and Bradley M. Kuhn, SFC policy fellow, wrote in a [blog][2] post on Thursday that GitHub has come to play a dominant role in FOSS development over the last decade by building an interface and social features around Git, the widely used open source version control software. They claim that by doing so, the company has persuaded FOSS developers to contribute to the development of a proprietary service that leverages FOSS. - -“We are ending all our own uses of GitHub, and announcing a long-term plan to assist FOSS projects to migrate away from GitHub,” said Gingerich and Kuhn. - -The SFC says it mostly uses self-hosted Git repositories, but it does use GitHub to mirror its repos. The SFC has added a Give Up on GitHub section to its website and is encouraging FOSS developers to switch to a different code hosting service voluntarily. - -GitHub claims 83 million users and more than 200 million repositories, many of which are licenced under an open source licence. The cloud hosting service specifically promotes open source development. The SFC’s decision to leave GitHub was prompted by the general availability of GitHub Copilot, an AI coding assistant tool. According to the SFC, GitHub’s decision to release a for-profit product based on FOSS code is “too much to bear.” Based on OpenAI’s Codex, Copilot suggests code and functions to developers as they work. According to GitHub, it can do so because it was trained “on natural language text and source code from publicly available sources, including code in public repositories on GitHub.” - -Gingerich and Kuhn see this as a problem because Microsoft and GitHub have refused to answer questions about the copyright implications of training its AI system on public code, why Copilot was trained on FOSS code but not copyrighted Windows code, and whether the company can specify all software licences and copyright holders associated with code used in the training data set. Kuhn has previously expressed his concern that Copilot’s training may pose legal risks, and others have expressed similar concerns. Matthew Butterick, a designer, programmer, and attorney, published a blog post last week in which he stated that he agrees with those who claim Copilot is an engine for violating open source licences. - -Such claims have not been settled and are unlikely to be until actual litigation and judgement are obtained. Other attorneys point out that GitHub’s Terms of Service allow it to use hosted code to improve the service. And, without a doubt, legal experts at Microsoft and GitHub believe they are exempt from licence compliance, which they pass on to those who use Copilot to generate code. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/07/an-open-source-organisation-has-left-github-and-encourages-you-to-do-the-same/ - -作者:[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/07/sfc-e1656663655825.jpg -[2]: https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/ diff --git a/sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md b/sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md deleted file mode 100644 index 775264fbe0..0000000000 --- a/sources/news/20220701 Pine64 Is Now Working On A Powerful RISC-V Single Board Computer.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: "Pine64 Is Now Working On A Powerful RISC-V Single Board Computer" -[#]: via: "https://news.itsfoss.com/pine64-riscv/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pine64 Is Now Working On A Powerful RISC-V Single Board Computer -====== -Pine64’s hinted at a new RISC-V based single board computer. This should be interesting! - -![pine64][1] - -Pine64, the single board computer manufacturer known for their range of open-source-supporting [phones][2], laptops, smartwatches, and, of course, SBCs, has recently revealed that they are working on a new RISC-V powered computer. - -This isn’t the first time Pine64 has dabbled in the realm of RISC-V; the Pinecil soldering iron and the Pinecone IoT board are both powered by RISC-V. However, this offering promises to be different, with desktop-class performance. - -### What To Expect? - -As Pine64 pointed out in their [announcement][3], some details haven’t been finalized yet, and they haven’t revealed everything yet. However, this is what we do know now: - -* Similar performance to the Quartz64 -* 133mm x 80mm footprint -* 4 or 8 GB RAM -* USB 3.0 -* Open PCIe slot -* One or two Gigabit Ethernet ports -* Vulkan 1.2 and OpenGL 1.1/2.0/3.x support - -As you may have noticed, “similar performance to the Quartz64” is a little unambiguous. However, it does at least give us an indication of the performance. - -Well, they aim for this to be an affordable option and a decently powerful one. - -However, all this power is useless if there’s no IO for it to interact with. Fortunately, the board should have a similar layout to Pine64’s other boards, so at least have a general idea of the I/O. - -If it is anything like the Quartz 64, I expect three to four USB ports, one or two of which will be USB 3.0. Additionally, there should be one HDMI connector, as well as a MIPI-DSI interface. In terms of PCIe, there is going to be an open slot on the board. In line with previous boards, this is likely to be a PCIe 2.0 1x slot, opening up possibilities for NVMe SSDs and other PC expansion cards. - -Overall, I expect this board to be quite powerful for an SBC, and especially a RISC-V-powered one. It should be an interesting one for sure! - -### How Much Does It Cost? - -With most new and niche technologies, generally comes a higher price tag. Fortunately, this does not appear to be the case with this new SBC, as Pine64 has confirmed a general price range. - -> The board will premiere in our signature model-A form factor, feature CPU performance which falls somewhere in the neighbourhood of the Quartz64, offer plenty of IO, and sport a price-tag similar to that of the Quartz64. - -Considering that the Quartz64 has a price tag of 60 USD for the 4 GB model, I expect a price somewhere in the range of $70 – $80 for the 4 GB, and $90 – $100 for the 8 GB model. - -This is all around the same price as the equivalent Raspberry Pi’s, while offering more features and an exciting new architecture. - -### A Riddle for the Name - -In signature Pine64 style, we don’t yet know what it will be called. However, they have left us a riddle: - -> **Victoria Line Station** \ -> *I sing, act and dance* \ -> *celebrated by them all* \ -> *I never climb my stage* \ -> *but I sometimes fall* \ -> *In the sea I dwell* \ -> *and in every magic book* \ -> *By heaven!* \ -> *adding 64 is all it took* \ -> *On my stage I shine* \ -> *and when I feel truly blue* \ -> *then there’s nothing* \ -> *This is the final clue* - -Although I am still clueless as to what it means, there are a few hints. First, they are likely to continue naming their SBCs after certain natural materials. Think pine64, Rock64, Quartz64. When combined with the information provided in the riddle, I’m sure someone will be able to guess it correctly. And, that person is promised to get the first board off the production line for free! - -If you want to have a crack, all you need to do is post your guess on the [Pine64 announcement page’s comments][4]. - -Overall, I’m really excited to see what this board is going to turn out like, and I’m optimistic about its performance. I’ll be sure to grab one as soon as they’re available! - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/pine64-riscv/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/pine64-working-on-a-powerful-risv-sbc.jpg -[2]: https://news.itsfoss.com/pinephone-review/ -[3]: https://www.pine64.org/2022/06/28/june-update-who-likes-risc-v/ -[4]: https://www.pine64.org/2022/06/28/june-update-who-likes-risc-v/ From 39fd8da827e475104706bd1f1892ccd7268dbaa3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 08:17:54 +0800 Subject: [PATCH 0283/3123] A --- ...opers Joining Microsoft, Systemd Creator Adds to the List.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md b/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md index 4fe5cd450c..11f771a175 100644 --- a/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md +++ b/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/systemd-creator-microsoft/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b42250499abb91a75496f6723eb92b51a2d96a6d Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 8 Jul 2022 08:36:07 +0800 Subject: [PATCH 0284/3123] translated --- ...iles in your Linux terminal with ranger.md | 2 +- ...ve Tig for visualizing my Git workflows.md | 99 ------------------- 2 files changed, 1 insertion(+), 100 deletions(-) delete mode 100644 sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md diff --git a/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md b/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md index c42b94bdaf..407f0b3de2 100644 --- a/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md +++ b/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/manage-files-linux-terminal-ranger" [#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md b/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md deleted file mode 100644 index 0b538c5843..0000000000 --- a/sources/tech/20220705 Why I love Tig for visualizing my Git workflows.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "Why I love Tig for visualizing my Git workflows" -[#]: via: "https://opensource.com/article/22/7/visualize-git-workflow-tig" -[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Why I love Tig for visualizing my Git workflows -====== -Tig is an excellent tool for reviewing your Git repository by encouraging you to explore the logs without having to construct long and sometimes complex queries. - -![][1] - -Image by: opensource.com - -If you find navigating your Git repositories frustratingly complex, have I got the tool for you. Meet Tig. - -Tig is an [ncurses-based][2] text-mode interface for Git that allows you to browse changes in a Git repository. It also acts as a pager for the output of various Git commands. I use this tool to give me a good idea of what’s been changed in which commit by whom, the latest commit merged, and so much more. Try it for yourself, starting with this brief tutorial. - -### Installing Tig - -On Linux, you can install Tig using your package manager. For instance, on Fedora and Mageia: - -``` -$ sudo dnf install tig -``` - -On Debian, Linux Mint, Elementary, Pop_OS, and other Debian-based distributions: - -``` -$ sud apt install tig -``` - -On macOS, use [MacPorts][3] or [Homebrew][4]. Tig’s complete installation guide can be found in the [Tig Manual][5]. - -### Using Tig - -Tig provides an interactive view of common Git output. For instance, with Git you can view all refs with the command `git show-ref` : - -``` -$ git show-ref -98b108... refs/heads/master -6dae95... refs/remotes/origin/1010-internal-share-partition-format-reflexion -84e1f8... refs/remotes/origin/1015-add-libretro-openlara -e62c7c... refs/remotes/origin/1016-add-support-for-retroarch-project-cd -1c29a8... refs/remotes/origin/1066-add-libretro-mess -ffd3f53... refs/remotes/origin/1155-automatically-generate-assets-for-external-installers -ab4d14... refs/remotes/origin/1160-release-on-bare-metal-servers -28baa9... refs/remotes/origin/1180-ipega-pg-9118 -8dff1d... refs/remotes/origin/1181-add-libretro-dosbox-core-s -81a7fe... refs/remotes/origin/1189-allow-manual-build-on-master -[...] -``` - -With Tig, you can get that information and much more in a scrollable list, plus keyboard shortcuts to open additional views with details about each ref. - -![Screenshot of a terminal using Tig. On the left there is a scrollable list of outputs, on the right the details of the selected output (add become an ambassador page) is shown, such as author, date, commit date, sign off, etc.][6] - -Image by: (Sumantro Mukherjee, CC BY-SA 4.0) - -### Pager mode - -Tig enters pager mode when input is provided to stdin (standard input). When the `show` subcommand is specified and the `--stdin` option is given, stdin is assumed to be a list of commit IDs, which is forwarded to `git-show` : - -``` -$ git rev-list --author=sumantrom HEAD | tig show –stdin -``` - -### Log and diff views - -When you're in Tig's log view, you can press the d key on your keyboard to display diffs. This displays the files changed in the commit and the lines that were removed and added. - -### Interactive Git data - -Tig is an excellent addition to Git. It makes it easy to review your Git repository by encouraging you to explore the logs without having to construct long and sometimes complex queries. - -Add Tig to your Git toolkit today! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/visualize-git-workflow-tig - -作者:[Sumantro Mukherjee][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/sumantro -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/images/life/computer_code_programming_laptop_0.jpg -[2]: https://opensource.com/article/21/8/ncurses-linux -[3]: https://opensource.com/article/20/11/macports -[4]: https://opensource.com/article/20/6/homebrew-mac -[5]: https://jonas.github.io/tig/doc/manual.html -[6]: https://opensource.com/sites/default/files/2022-06/tig%201.png From ec2a64ef39f8a2671514ac2a9a80a4d10ce32c42 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 8 Jul 2022 08:36:50 +0800 Subject: [PATCH 0285/3123] translated --- ...ve Tig for visualizing my Git workflows.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md diff --git a/translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md b/translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md new file mode 100644 index 0000000000..e3f69a6e81 --- /dev/null +++ b/translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md @@ -0,0 +1,99 @@ +[#]: subject: "Why I love Tig for visualizing my Git workflows" +[#]: via: "https://opensource.com/article/22/7/visualize-git-workflow-tig" +[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为什么我喜欢使用 Tig 来可视化我的 Git 工作流 +====== +Tig 是审查 Git 仓库的绝佳工具,它鼓励你探索日志,而无需构建冗长且有时复杂的查询。 + +![][1] + +图片来源:opensource.com + +如果你发现浏览你的 Git 仓库非常复杂,我已经为你准备了工具。来认识 Tig。 + +Tig 是一个[基于 ncurses][2] 的 Git 文本模式界面,允许你浏览 Git 仓库中的更改。它还充当各种 Git 命令输出的寻呼机。我使用这个工具可以让我很好地了解在哪个提交中发生了哪些更改,最新的提交合并等等。从这个简短的教程开始,亲自尝试一下。 + +### 安装 Tig + +在 Linux 上,你可以使用包管理器安装 Tig。例如,在 Fedora 和 Mageia 上: + +``` +$ sudo dnf install tig +``` + +在 Debian、Linux Mint、Elementary、Pop_OS 和其他基于 Debian 的发行版上: + +``` +$ sud apt install tig +``` + +在 macOS 上,使用 [MacPorts][3] 或 [Homebrew][4]。 Tig 的完整安装指南可在 [Tig 手册][5]中找到。 + +### 使用 Tig + +Tig 提供了常见 Git 输出的交互式视图。例如,使用 Git,你可以使用命令 `git show-ref` 查看所有引用: + +``` +$ git show-ref +98b108... refs/heads/master +6dae95... refs/remotes/origin/1010-internal-share-partition-format-reflexion +84e1f8... refs/remotes/origin/1015-add-libretro-openlara +e62c7c... refs/remotes/origin/1016-add-support-for-retroarch-project-cd +1c29a8... refs/remotes/origin/1066-add-libretro-mess +ffd3f53... refs/remotes/origin/1155-automatically-generate-assets-for-external-installers +ab4d14... refs/remotes/origin/1160-release-on-bare-metal-servers +28baa9... refs/remotes/origin/1180-ipega-pg-9118 +8dff1d... refs/remotes/origin/1181-add-libretro-dosbox-core-s +81a7fe... refs/remotes/origin/1189-allow-manual-build-on-master +[...] +``` + +使用 Tig,你可以在可滚动列表中获取该信息以及更多信息,以及用于打开其他视图的键盘快捷键,其中包含每个 ref 的详细信息。 + +![Screenshot of a terminal using Tig. On the left there is a scrollable list of outputs, on the right the details of the selected output (add become an ambassador page) is shown, such as author, date, commit date, sign off, etc.][6] + +图片来源:(Sumantro Mukherjee,CC BY-SA 4.0) + +### 寻呼模式 + +当输入是标准输入时,Tig 进入寻呼模式。当指定 `show` 子命令并给出 `--stdin` 选项时,stdin 被假定为提交 ID 列表,它被转发到 `git-show` : + +``` +$ git rev-list --author=sumantrom HEAD | tig show –stdin +``` + +### 日志和差异视图 + +当你在 Tig 的日志视图中时,你可以按键盘上的 d 键来显示差异。这将显示提交中更改的文件以及删除和添加的行。 + +### 交互式 Git 数据 + +Tig 是对 Git 的一个很好的补充。它鼓励你探索日志,而无需构建冗长且有时复杂的查询,从而可以轻松查看你的 Git 仓库。 + +立即将 Tig 添加到你的 Git 工具包中! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/visualize-git-workflow-tig + +作者:[Sumantro Mukherjee][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/sumantro +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/images/life/computer_code_programming_laptop_0.jpg +[2]: https://opensource.com/article/21/8/ncurses-linux +[3]: https://opensource.com/article/20/11/macports +[4]: https://opensource.com/article/20/6/homebrew-mac +[5]: https://jonas.github.io/tig/doc/manual.html +[6]: https://opensource.com/sites/default/files/2022-06/tig%201.png From 676ada214a2c6517127b9e4bc8471c4075c0c85e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 09:11:11 +0800 Subject: [PATCH 0286/3123] RP @wxy https://linux.cn/article-14804-1.html --- ...osoft, Systemd Creator Adds to the List.md | 70 +++++++++++++++++++ ...osoft, Systemd Creator Adds to the List.md | 67 ------------------ 2 files changed, 70 insertions(+), 67 deletions(-) create mode 100644 published/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md delete mode 100644 sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md diff --git a/published/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md b/published/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md new file mode 100644 index 0000000000..85c5366a8d --- /dev/null +++ b/published/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md @@ -0,0 +1,70 @@ +[#]: subject: "More Linux Developers Joining Microsoft, Systemd Creator Adds to the List" +[#]: via: "https://news.itsfoss.com/systemd-creator-microsoft/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14804-1.html" + +又有 Linux 开发者加入微软,这次是 systemd 的创建者 +====== + +> 看来微软拿了一手好牌,在 Linux 和开源方面取得行业成功。 + +![microsoft][1] + +出于某种原因,微软在开源和 Linux 方面总是受到关注。 + +而且,当我们谈论 Linux 开发者时,它也会成为焦点……为什么会这样? + +微软似乎正在为一系列的项目招聘大量 Linux 开发人员。而且,一个知名人物也加入了这个名单。 + +据 [Phoronix][2] 报道,systemd 和 PulseAudio 的创建者 **Lennart Poettering**,现在已在微软工作,继续专注于 systemd 的开发。 + +或许你不知道,Lennart 曾在红帽工作,领导 PulseAudio 项目和其他一些事情。 + +除了 Lennart 之外,Python 之父 **Guido Van Rossum** 等一些关键的开发人员之前就加入了微软。 + +(LCTT 译注:据 Phoronix 总结,还有更多的开源开发者加入了(或加入过)微软,这包括:GNOME 创建者 Miguel de Icaza 曾在 2016 年微软收购 Xamarin 时受雇,到今年早些时候离开;Nat Friedman 作为 Xamarin 的成员在微软收购后加入,后担任微软旗下的 GitHub 的 CEO;Gentoo Linux 创始人 Daniel Robbins 之前受雇于微软;Steve French 作为 Linux CIFS/SMB2/SMB3 的维护者和 Samba 团队的成员为微软工作;以及大量的上游 Linux 开发者,如 Matteo Croce、Matthew Wilcox、Tyler Hicks、Shyam Prasad N、Michael Kelley、Christian Brauner 等等也曾被微软雇佣。) + +### 微软在为最佳状态做准备 + +毫不奇怪,微软希望提高其对基于开源的项目的关注,并尽可能有效地利用 Linux 为其业务服务。 + +Azure 平台对开源的利用最多,而且,不要忘了 **Windows Subsystem for Linux**(WSL)。 + +因此,微软一直在招聘 Linux 开发人员。如果你想试试,你会在 [微软职业][3] 栏目中找到很多与 Linux 有关的职位。 + +虽然这对微软的产品线来说是一件大事,但它一般不会影响到 Linux 桌面用户。事实上,我认为,Linux 开发者得到的资源越多,由于他们工作角色转换,他们可以帮助 Linux 生态系统更好地增强其愿景。 + +当然,让所有关键的 Linux 开发者都在微软拥有的项目上工作并不是一件喜闻乐见的事情,但是,事实就是如此。 + +### 微软正在做正确的事情 + +这不仅仅是经济上的回报,Linux 开发者加入微软团队的趋势意味着他们在开源和 Linux 上的一些努力是成功的。 + +只要微软努力改善 Linux 生态系统,我认为我们就没有什么可担心的。 + +我不想被提醒“拥抱、扩展和熄灭Embrace, extend, and extinguish”(3E)。毕竟,这对所有公司来说都是生意。当涉及到赚钱的决定时,没有人应该被认为是英雄。 + +因此,我们只能希望微软在不久的将来为 Linux 开发者和用户准备好一些好东西。 + +你对此有何看法?在下面的评论区分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/systemd-creator-microsoft/ + +作者:[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/07/more-linux-devs-joing-microsoft-systemd-creator-add-list.jpg +[2]: https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft +[3]: https://careers.microsoft.com/us/en/search-results?keywords=Linux diff --git a/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md b/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md deleted file mode 100644 index 11f771a175..0000000000 --- a/sources/news/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md +++ /dev/null @@ -1,67 +0,0 @@ -[#]: subject: "More Linux Developers Joining Microsoft, Systemd Creator Adds to the List" -[#]: via: "https://news.itsfoss.com/systemd-creator-microsoft/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -More Linux Developers Joining Microsoft, Systemd Creator Adds to the List -====== -It looks like Microsoft is holding all the good cards to play for its industry success with Linux and open-source. - -![microsoft][1] - -Microsoft always gets the attention for some reason when it comes to open-source and Linux. - -And, it also comes to the limelight when we talk about Linux developers…why? - -It seems that Microsoft is hiring a lot of Linux developers for a range of projects. And, a popular name has joined the list. - -Systemd and PulseAudio creator, **Lennart Poettering**, is now working with Microsoft while continuing his focus on systemd development, as reported by [Phoronix][2]. - -In case you are curious, Lennart used to work for Red Hat leading the PulseAudio project and a few other things. - -In addition to Lennart, some key developers like Python creator **Guido Van Rossum** have also joined Microsoft in the past. - -### Microsoft Gearing Up for The Best - -It is no surprise that Microsoft wants to improve its focus on open-source-based projects and utilize Linux as efficiently as possible for its businesses. - -The Azure platform makes the most use of it, and not to forget the **Windows Subsystem for Linux**. - -Hence, Microsoft is constantly hiring Linux developers. You will find plenty of Linux-related positions at [Microsoft Careers][3] if you want to try your skills. - -While this is a big deal for Microsoft’s line of offering, it should not affect Linux desktop users in general. In fact, I think, the more resources Linux developers get, as a result of their switch in job roles, they could help the Linux ecosystem better enhance their vision. - -Of course, it is not ideal to have all key Linux developers work on Microsoft-owned projects. But, it is what it is. - -### Microsoft is Doing Something Right - -It is not just about the financial reward, but the trend of Linux developers joining the team at Microsoft means that they have been successful at some of their efforts on open-source and Linux. - -As long as Microsoft makes an effort to improve the Linux ecosystem, I do not think we have much to worry about it. - -I would not like to be reminded of “Embrace, extend, and extinguish”. After all, it’s all business for all the companies. No one should be considered a hero when it involves money-making decisions. - -So, we can only hope that Microsoft is gearing up for something good in store for Linux developers and users in the near future. - -What do you think about it? Share your thoughts in the comments section below. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/systemd-creator-microsoft/ - -作者:[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/07/more-linux-devs-joing-microsoft-systemd-creator-add-list.jpg -[2]: https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft -[3]: https://careers.microsoft.com/us/en/search-results?keywords=Linux From 5e28d2b6fe92a71731ef8c71c0eb92cb019341d7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 09:33:30 +0800 Subject: [PATCH 0287/3123] RP @geekpi https://linux.cn/article-14805-1.html --- ... Top Trends Changing The Data Center Industry.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) rename {translated/tech => published}/20220630 The Top Trends Changing The Data Center Industry.md (78%) diff --git a/translated/tech/20220630 The Top Trends Changing The Data Center Industry.md b/published/20220630 The Top Trends Changing The Data Center Industry.md similarity index 78% rename from translated/tech/20220630 The Top Trends Changing The Data Center Industry.md rename to published/20220630 The Top Trends Changing The Data Center Industry.md index 3b2eabd2bc..8cc699c044 100644 --- a/translated/tech/20220630 The Top Trends Changing The Data Center Industry.md +++ b/published/20220630 The Top Trends Changing The Data Center Industry.md @@ -3,21 +3,22 @@ [#]: author: "abhimanyu rathore https://www.opensourceforu.com/author/abhimanyu-rathore/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14805-1.html" 改变数据中心行业的主要趋势 ====== + ![Data center][1] -大流行加快了全国数字化转型的速度,这需要对数据中心进行更多投资。由于快速的数字化和云采用,印度数据中心市场的容量预计在未来几年将翻一番。据报道,2021 年印度数据中心市场规模为 43.5 亿美元,到 2027 年将达到 100.9 亿美元,2022-2027 年的复合年增长率为 15.07%。 +大流行加快了印度全国数字化转型的速度,这需要对数据中心进行更多投资。由于快速的数字化和云采用,印度数据中心市场的容量预计在未来几年将翻一番。据报道,2021 年印度数据中心市场规模为 43.5 亿美元,到 2027 年将达到 100.9 亿美元,2022-2027 年的复合年增长率为 15.07%。 现在,出现的一个关键问题是印度数据中心行业的未来是什么?哪些新趋势将塑造其未来?下面提到的是将对印度数据中心行业产生重大影响的主要趋势。 ### 数据本地化 -数据本地化仅仅意味着限制数据从一个国家流向另一个国家。印度政府已发布指导方针,强调需要在该国境内存储印度用户的数据。数据本地化使得收集关键消费者数据的公司必须在本地数据中心存储和处理这些数据。这给本地数据中心带来了巨大的增长。此外,印度的成本优势和熟练劳动力的便利性使其成为亚洲数据中心的重要枢纽。 +数据本地化就意味着限制数据从一个国家流向另一个国家。印度政府已发布指导方针,强调需要在该国境内存储印度用户的数据。数据本地化使得收集关键消费者数据的公司必须在本地数据中心存储和处理这些数据。这给本地数据中心带来了巨大的增长。此外,印度的成本优势和熟练劳动力的便利性使其成为亚洲数据中心的重要枢纽。 ### 可持续数据中心 @@ -42,7 +43,7 @@ via: https://www.opensourceforu.com/2022/06/top-trends-changing-data-center-indu 作者:[abhimanyu rathore][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/) 荣誉推出 From c202d2eead65c05f1a7e5c47485d30856ed6e3c5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 14:28:15 +0800 Subject: [PATCH 0288/3123] RP @hanszhao80 https://linux.cn/article-14806-1.html --- ... Folders in Linux Without Renaming Them.md | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) rename {translated/tech => published}/20220630 Hide Files and Folders in Linux Without Renaming Them.md (62%) diff --git a/translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md similarity index 62% rename from translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md rename to published/20220630 Hide Files and Folders in Linux Without Renaming Them.md index 681ec91137..8bc59c6a80 100644 --- a/translated/tech/20220630 Hide Files and Folders in Linux Without Renaming Them.md +++ b/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md @@ -3,23 +3,26 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14806-1.html" -在 Linux 中用非重命名的方法隐藏文件和文件夹 +在 Linux 中隐藏文件和文件夹的那些事 ====== -简介:这篇面向初学者的文章探讨了在 Linux 中如何在普通视图中隐藏文件和文件夹。图形用户界面和命令行方法都有所涉猎。 + +![](https://img.linux.net.cn/data/attachment/album/202207/08/142700yijbiw44bqfpfs4j.jpg) + +> 这篇面向初学者的文章探讨了在 Linux 中如何在普通视图中隐藏文件和文件夹。图形用户界面和命令行方法都有所涉猎。 有时你需要在 Linux 中隐藏文件。 不要误会,我不是指那些你不想让你的家人看到的“特殊文件”。尽管你可以隐藏这些特殊文件,但更好的办法还是用密码锁定它们以提供额外的保护。 -回到隐藏文件的话题。 **名称以 `.` 开头的任何文件或文件夹在 Linux 中是“隐藏的”。** +回到隐藏文件的话题。**名称以 `.` 开头的任何文件或文件夹在 Linux 中是“隐藏的”。** Linux 有很多这样的文件和文件夹,在普通视图中它们是隐藏的。这些主要是系统和程序所需的配置文件。 -用户通常不需要它们,因此它们在普通视图中是隐藏的,这样一来你就不会被许多看起来很奇怪的而不是你所创建的文件所淹没。 +用户通常不需要理会它们,因此它们在普通视图中是隐藏的,这样一来你就不会被许多看起来很奇怪的而不是你所创建的文件所淹没。 下图展示了我的主目录中隐藏的文件和文件夹。 @@ -27,9 +30,9 @@ Linux 有很多这样的文件和文件夹,在普通视图中它们是隐藏 ![linux 显示隐藏文件][2] -如果你使用的是桌面版 Linux,你可以通过在文件管理器中按 Ctrl+H 快捷键来轻松 [查看隐藏文件][3]。在终端中,你可以使用 `ls -a` 命令显示隐藏文件和普通文件。 +如果你使用的是桌面版 Linux,你可以通过在文件管理器中按 `Ctrl+H` 快捷键来轻松 [查看隐藏文件][3]。在终端中,你可以使用 `ls -a` 命令显示隐藏文件和普通文件。 -那么,如何在 Linux 中创建隐藏文件呢?你只需用一个在命名的时候加一个`.`前缀。就是这样。 +那么,如何在 Linux 中创建隐藏文件呢?你只需用一个在命名的时候加一个 `.` 前缀。就是这样。 ### 在桌面版 Linux 里创建隐藏文件和文件夹(GUI 方法) @@ -41,9 +44,9 @@ Linux 有很多这样的文件和文件夹,在普通视图中它们是隐藏 你可以以相同的方式隐藏文件夹及其所有内容。 -你可以按 Ctrl+H 键来显示隐藏文件。哦!我是多么的喜欢 [Ubuntu 中的键盘快捷键][5] 和我使用的任何其他程序或操作系统! +你可以按 `Ctrl+H` 键来显示隐藏文件。哦!我是多么的喜欢 [Ubuntu 中的键盘快捷键][5] 和我使用的任何其他程序或操作系统! -要使隐藏文件变回普通文件,只需再次重命名这些文件删掉文件名前缀的`.`即可。 +要使隐藏文件变回普通文件,只需再次重命名这些文件删掉文件名前缀的 `.` 即可。 ### 在 Linux 终端创建隐藏文件和文件夹(CLI 方法) @@ -65,7 +68,7 @@ ls -la 你刚刚学了在 Linux 中隐藏文件。问题是你必须重命名文件,而这种操作不适用于所有的场合。 -例如,在 Ubuntu 中,你会在目录中看到一个名为“snap”的文件夹。你不会使用它,但如果重命名它,你的 snap 应用程序将无法按预期工作。类似的情况是,在 Ubuntu 22.04(安装有 snap 版本的 Firefox)的 Downloads 目录下有一个 firefox.tmp 文件夹。 +例如,在 Ubuntu 中,你会在目录中看到一个名为 `snap` 的文件夹。你不会使用它,但如果重命名它,你的 Snap 应用程序将无法按预期工作。类似的情况是,在 Ubuntu 22.04(安装有 Snap 版本的 Firefox)的 `Downloads` 目录下有一个 `firefox.tmp` 文件夹。 有一个巧妙的技巧可以在 Linux 桌面中使用。它应该可以在 Nemo、Thunar、Dolphin 等各种文件管理器下工作,但我不能保证。它确实适用于 GNOME 的 Nautilus 文件管理器。 @@ -73,7 +76,7 @@ ls -la ![在 Linux 中隐藏文件的另一种方法][7] -按 Ctrl+H 显示隐藏文件并 **打开 .hidden 文件** 进行编辑。**在单独的行中添加文件或文件夹的名称**。注意不能使用绝对或相对路径。你想要隐藏的**文件和文件夹应与此特殊 .hidden 文件** 位于同一路径下。 +按 `Ctrl+H`` 显示隐藏文件并 **打开 `.hidden` 文件** 进行编辑。**在单独的行中添加文件或文件夹的名称**。注意不能使用绝对或相对路径。你想要隐藏的 **文件和文件夹应与此特殊 `.hidden` 文件** 位于同一路径下。 这是我以不重命名的方式隐藏 `cpufetch` 目录和 `pcloud` 文件的示例: @@ -82,27 +85,25 @@ pcloud cpufetch ``` -按 Ctrl+H 以再次隐藏 `.hidden` 文件。 +按 `Ctrl+H` 以再次隐藏 `.hidden` 文件。 -现在,**关闭你的文件资源管理器并重新启动它**。你将不会再看到 .hidden 文件中提到的文件和目录。 +现在,**关闭你的文件资源管理器并重新启动它**。你将不会再看到 `.hidden` 文件中提到的文件和目录。 -如果你想再次查看它们,请按 Ctrl+H 键。 +如果你想再次查看它们,请按 `Ctrl+H` 键。 -如果你不想再隐藏文件,请从 .hidden 文件中删除其名称或完全删除 .hidden 文件。 +如果你不想再隐藏文件,请从 `.hidden` 文件中删除其名称或完全删除 `.hidden` 文件。 ### 额外琐事:隐藏文件“功能”实际上是一个 bug -你知道吗?在文件名的开头添加一个 `.` 来隐藏文件的`功能`[实际上是一个 bug][8]? +你知道吗?在文件名的开头添加一个 `.` 来隐藏文件的“功能” [实际上是一个 bug][8]? -在早期的 UNIX 时代,当创建文件系统时,`.`(当前目录)和 `..`(父目录)文件被添加以方便导航。 +在早期的 UNIX 时代,当创建文件系统时,添加了 `.`(当前目录)和 `..`(父目录)文件以方便导航。 -由于这些特殊的 `.` 和 `..` 文件中没有实际数据,因此给 `ls` 命令添加了一个新的“功能”。 +由于这些特殊的 `.` 和 `..` 文件中没有实际数据,因此给 `ls` 命令添加了一个新的“功能”:该功能是检查文件名的第一个字符,如果它是一个点(`.`),则不再使用 `ls` 命令显示它。 -该功能是检查文件名的第一个字符,如果它是一个点 (.),则不再使用 ls 命令显示。 +这对隐藏 `.` 和 `..` 文件有效,但它引入了一个 “bug”:`ls` 命令的输出会隐藏任何文件名以 `.` 开头的文件。 -这对隐藏 `.` 和 `..` 文件有效,但它引入了一个 `bug`:`ls` 命令的输出会隐藏任何文件名以 `.` 开头的文件。 - -这个 bug 变成了一个功能,因为程序员喜欢它来“隐藏”他们的配置文件。`ls` 命令可能后来被修改为添加显示隐藏点文件的选项。 +这个 bug 变成了一个功能,因为程序员喜欢它来“隐藏”他们的配置文件。`ls` 命令可能是后来修改添加了一个显示隐藏点文件的选项。 Linux 遵循相同的约定,因为 Linux 是以 UNIX 为原型开发的。 @@ -119,7 +120,7 @@ via: https://itsfoss.com/hide-files-folders-linux/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 257d08628242a9c46e1849a89382667dfdba9a3d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 14:32:16 +0800 Subject: [PATCH 0289/3123] R --- ...630 Hide Files and Folders in Linux Without Renaming Them.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md index 8bc59c6a80..496b2205d8 100644 --- a/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md +++ b/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md @@ -76,7 +76,7 @@ ls -la ![在 Linux 中隐藏文件的另一种方法][7] -按 `Ctrl+H`` 显示隐藏文件并 **打开 `.hidden` 文件** 进行编辑。**在单独的行中添加文件或文件夹的名称**。注意不能使用绝对或相对路径。你想要隐藏的 **文件和文件夹应与此特殊 `.hidden` 文件** 位于同一路径下。 +按 `Ctrl+H` 显示隐藏文件并 **打开 `.hidden` 文件** 进行编辑。**在单独的行中添加文件或文件夹的名称**。注意不能使用绝对或相对路径。你想要隐藏的 **文件和文件夹应与此特殊 `.hidden` 文件** 位于同一路径下。 这是我以不重命名的方式隐藏 `cpufetch` 目录和 `pcloud` 文件的示例: From b5ef39f3051ef55317ba6d939187a8dcf02729af Mon Sep 17 00:00:00 2001 From: mcfd <43702470+mcfd@users.noreply.github.com> Date: Fri, 8 Jul 2022 16:05:26 +0800 Subject: [PATCH 0290/3123] translation --- ...d desktop notifications and reminders from Linux terminal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md b/sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md index 73b3b708cc..f0d7dc0092 100644 --- a/sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md +++ b/sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/1/linux-desktop-notifications" [#]: author: "Tomasz Waraksa https://opensource.com/users/tomasz" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "mcfd" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 70807b26b885e5f753da810c1ef718a15c04fef2 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Fri, 8 Jul 2022 16:34:03 +0800 Subject: [PATCH 0291/3123] 20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux --- ...el By Default in Ubuntu and Other Linux.md | 129 ------------------ ...el By Default in Ubuntu and Other Linux.md | 129 ++++++++++++++++++ 2 files changed, 129 insertions(+), 129 deletions(-) delete mode 100644 sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md create mode 100644 translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md diff --git a/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md b/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md deleted file mode 100644 index 63b40e4e20..0000000000 --- a/sources/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md +++ /dev/null @@ -1,129 +0,0 @@ -[#]: subject: "How to Boot into an Older Kernel By Default in Ubuntu and Other Linux" -[#]: via: "https://itsfoss.com/boot-older-kernel-default/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Boot into an Older Kernel By Default in Ubuntu and Other Linux -====== -Here’s a possible scenario. Your system received a kernel update but somehow things are not working as smoothly as previously. - -You realized that if you boot into the older kernel (yes, you can downgrade kernel), things are back to normal. - -That makes you happy with a little inconvenience. You have to manually select the older kernel at each boot. - -This problem was faced by an elderly It’s FOSS reader. The new kernel update in [Linux Mint][1] wasn’t working as expected. Booting into the older kernel ‘fixed’ the issues but choosing the older kernel at each boot was a problem. - -Removing the new kernel (while using the older kernel) is not a good idea because the new kernel will be installed and used with the next system updates. - -So, I suggested booting into the older Linux kernel by default. How to do that? That’s what I am going to show you in this tutorial. - -### Booting into the older Linux kernel - -If you are not already familiar with it, your Linux distribution keeps more than one Linux kernel installed on your system. Don’t believe me? [List the installed kernels in Ubuntu][2] with this command: - -``` -apt list --installed | grep linux-image -``` - -When you get a new kernel version with the system updates, your system automatically chooses to boot into the latest available kernel. - -From the [grub][3] screen, you can **go to the Advanced options** (or older Linux versions): - -![ubuntu grub][4] - -Here, you can see the available kernels to boot into. Choose the older one (without recovery option): - -![grub advanced options][5] - -You won’t notice any visual difference. Your files and applications remain the same. - -Now that you have booted into the older kernel, it’s time to make your system boot into it automatically. - -### Making older kernel the default - -If you are comfortable with Linux terminal and commands, you can modify the /etc/default/grub file and add the following lines to it: - -``` -GRUB_DEFAULT=saved -GRUB_SAVEDEFAULT=true -``` - -And then [update grub][6] with: - -``` -sudo update-grub -``` - -What you did here is to tell your system to save the currently used entry as the default entry for the future runs of GRUB. - -However, not everyone is okay with the command line and hence I’ll focus on a GUI tool called [Grub Customizer][7]. - -#### Installing Grub Customizer - -Use the official PPA to [install Grub Customizer in Ubuntu-based distributions][8]: - -``` -sudo add-apt-repository ppa:danielrichter2007/grub-customizer -sudo apt update -sudo apt install grub-customizer -``` - -For other distributions, please use your package manager to install this tool. - -#### Using Grub Customizer to change the default boot entry - -When you run Grub Customizer, it shows the available boot entries. - -![grub customizer ubuntu][9] - -You have two options here. - -**Option1:** Select the desired kernel entry and use the arrow (displayed on the top menu) to move it up the order. - -![move older kernel up the order ubntu grub][10] - -**Option2:** Make the ‘previously booted entry’ the ‘default entry’. - -![make currently booted entry as default ubuntu][11] - -I would suggest going with option 2 because it will work even when there are new kernel updates. - -This way you downgrade the kernel in Ubuntu or other distributions without even removing the older kernel version. - -Do note that most distributions like Ubuntu only keep two kernel versions at a time. So eventually, your preferred older kernel will be removed with the newer kernel versions. - -This neat trick helped me when I [installed the latest Linux kernel in Ubuntu][12] and it had issues with my audio system for some reason. - -Whatever may be the reason, you now know how to boot into an older kernel automatically. - -Questions? Suggestions? The comment section is all yours. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/boot-older-kernel-default/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者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://linuxmint.com/ -[2]: https://learnubuntu.com/list-installed-kernels/ -[3]: https://itsfoss.com/what-is-grub/ -[4]: https://itsfoss.com/wp-content/uploads/2022/06/ubuntu-grub.jpg -[5]: https://itsfoss.com/wp-content/uploads/2022/06/Grub-Advanced-Options.jpg -[6]: https://itsfoss.com/update-grub/ -[7]: https://itsfoss.com/customize-grub-linux/ -[8]: https://itsfoss.com/install-grub-customizer-ubuntu/ -[9]: https://itsfoss.com/wp-content/uploads/2022/06/grub-customizer-ubuntu.png -[10]: https://itsfoss.com/wp-content/uploads/2022/06/move-older-kernel-up-the-order-ubntu-grub.png -[11]: https://itsfoss.com/wp-content/uploads/2022/06/make-currently-booted-entry-as-default-ubuntu.png -[12]: https://itsfoss.com/upgrade-linux-kernel-ubuntu/ diff --git a/translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md b/translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..a0718cfe42 --- /dev/null +++ b/translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md @@ -0,0 +1,129 @@ +[#]: subject: "How to Boot into an Older Kernel By Default in Ubuntu and Other Linux" +[#]: via: "https://itsfoss.com/boot-older-kernel-default/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "hanszhao80" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何给 Ubuntu 等 Linux 系统的旧内核设置默认启动 +====== +这是一个可能的情景。你的系统收到了内核更新,但不知何故,事情不像以前那样顺利。 + +你意识到,如果你启动到较旧的内核(是的,你可以降级内核),一切都会恢复正常。 + +高兴之余你会觉得有点儿不爽。因为你不得不在每次启动时手动选择较旧的内核。 + +一位年长的 It's FOSS 读者遇到了这个问题。[Linux Mint][1] 中的新内核更新没有按预期工作。启动到较旧的内核“修复”了问题,但麻烦的是在每次启动时要去手动选择较旧的内核。 + +删除新内核而使用旧内核不是一个好主意,因为新内核将会在下一次系统更新时被安装使用。 + +因此,我建议设置成默认启动到较旧的 Linux 内核。怎么做?这就是我将在本教程中向你展示的内容。 + +### 启动至较旧的 Linux 内核 + +你可能不了解,你的 Linux 发行版会在你的系统上安装多个 Linux 内核。不信?使用以下命令 [列出 Ubuntu 中已安装的内核][2]: + +``` +apt list --installed | grep linux-image +``` + +当你升级系统时会获得一个新版本的内核,这时你的系统会自动选择启动至最新的可用内核。 + +在 [grub][3] 屏幕中,你可以 **转到高级选项Advanced option**(或较旧的 Linux 版本): + +![ubuntu grub][4] + +在这里,你可以看到要启动的可用内核。选择较旧的(不带恢复选项recovery option): + +![grub 高级选项][5] + +你不会注意到任何显示的差异。你的文件和应用程序保持不变。 + +现在你已经启动到旧内核,是时候让你的系统自动启动到它了。 + +### 使旧内核成为默认启动项 + +如果你乐于使用 Linux 终端和命令,你可以修改 /etc/default/grub 文件并在其中添加以下行: + +``` +GRUB_DEFAULT=saved +GRUB_SAVEDEFAULT=true +``` + +然后使用如下命令 [更新 grub][6]: + +``` +sudo update-grub +``` + +你在这里所做的是告诉你的系统将当前使用的启动项保存为将来运行 GRUB 的默认启动项。 + +然而,并不是每个人都善于使用命令行,因此我将专注于一个名为 [Grub Customizer][7] 的 GUI 工具。 + +#### 安装 Grub Customizer + +使用官方 PPA [在基于 Ubuntu 的发行版中安装 Grub Customizer][8]: + +``` +sudo add-apt-repository ppa:danielrichter2007/grub-customizer +sudo apt update +sudo apt install grub-customizer +``` + +对于其他发行版,请使用你的包管理器来安装此工具。 + +#### 使用 Grub Customizer 更改默认启动项 + +当你运行 Grub Customizer 时,它会显示可用的启动项。 + +![ubuntu 的 grub customizer][9] + +在这里你有两个选择。 + +**选择一:** 选择所需的内核项并使用箭头(显示在顶部菜单上)将其向上移动。 + +![在 Ubuntu grub 将旧内核向上移动][10] + +**选择二:** 将先前的启动项previously booted entry设为默认启动项default entry。 + +![将当前启动项设为默认 Ubuntu 启动项][11] + +我建议使用第二个选择,因为即使有新的内核更新它也可以工作。 + +这样你就可以在 Ubuntu 或其他发行版中降级内核,甚至无需删除旧内核版本。 + +请注意,像 Ubuntu 这样的发行版大部分一次只保留两个内核版本。因此,最终你首选的旧内核将在新的内核版本释出时被删除。 + +这个巧妙的技巧曾助我脱困。当时我 [在 Ubuntu 中安装最新的 Linux 内核][12] ,由于某种原因它与我的音频系统有问题。 + +无论是什么原因,你现在都知道如何自动启动到旧内核。 + +如果有问题或建议,请在评论区留言。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.c择m/boot-older-kernel-default/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者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://linuxmint.com/ +[2]: https://learnubuntu.com/list-installed-kernels/ +[3]: https://itsfoss.com/what-is-grub/ +[4]: https://itsfoss.com/wp-content/uploads/2022/06/ubuntu-grub.jpg +[5]: https://itsfoss.com/wp-content/uploads/2022/06/Grub-Advanced-Options.jpg +[6]: https://itsfoss.com/update-grub/ +[7]: https://itsfoss.com/customize-grub-linux/ +[8]: https://itsfoss.com/install-grub-customizer-ubuntu/ +[9]: https://itsfoss.com/wp-content/uploads/2022/06/grub-customizer-ubuntu.png +[10]: https://itsfoss.com/wp-content/uploads/2022/06/move-older-kernel-up-the-order-ubntu-grub.png +[11]: https://itsfoss.com/wp-content/uploads/2022/06/make-currently-booted-entry-as-default-ubuntu.png +[12]: https://itsfoss.com/upgrade-linux-kernel-ubuntu/ From 78e9b686642fba7acec7899a51aa675c406b3b59 Mon Sep 17 00:00:00 2001 From: mcfd <990773468@qq.com> Date: Fri, 8 Jul 2022 17:37:48 +0800 Subject: [PATCH 0292/3123] done --- ...tions and reminders from Linux terminal.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) rename {sources => translated}/tech/20220106 Send desktop notifications and reminders from Linux terminal.md (57%) diff --git a/sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md b/translated/tech/20220106 Send desktop notifications and reminders from Linux terminal.md similarity index 57% rename from sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md rename to translated/tech/20220106 Send desktop notifications and reminders from Linux terminal.md index f0d7dc0092..57cbcd3dcd 100644 --- a/sources/tech/20220106 Send desktop notifications and reminders from Linux terminal.md +++ b/translated/tech/20220106 Send desktop notifications and reminders from Linux terminal.md @@ -7,39 +7,39 @@ [#]: publisher: " " [#]: url: " " -Send desktop notifications and reminders from Linux terminal +从 Linux 终端发送桌面通知与提醒 ====== -This Linux tutorial demonstrates how to use script commands to send -yourself desktop notifications and reminders. +本 Linux 教程演示如何使用脚本命令来发送 +自己的桌面通知与提醒。 ![Person using a laptop][1] -Sometimes it's useful to get visual feedback from a script. For example, when a script or cron job completes, a long-running build fails, or there is an urgent problem during script execution. Desktop applications can do this with popup notifications, but it can be done from a script too! You can use script commands to send yourself desktop notifications and reminders. +有时候,来自脚本的视觉回馈是很有用的。例如,当一个脚本或计划任务完成时,一个长期运行的构建任务失败时,或者当脚本执行中出现了紧急问题时。桌面应用程序可以通过弹出通知来做到这一点,但脚本也可以做到这一点!你可以使用脚本命令来给自己发送桌面通知与提醒。 ![Example notification][2] (Tomasz Waraksa, CC BY-SA 4.0) -The below code has been written and tested on Linux. It can also be done on macOS with a bit of effort. See the last section for some [hints and tips][3]. +下面的代码是在 Linux 上编写和测试的。它也可以在 macOS 上运行,只需花点功夫。请参见最后一节 [提示与技巧][3]。 -### Sending notifications from the Linux terminal +### 从 Linux 终端发送通知 -To send notifications from the Linux terminal, use the [`notify-send`][4] command. Run `which ``notify-send` to see if it's present on your system. If not, install it with your package manager of choice. +要从 Linux 终端发送通知,请使用 [`notify-send`][4] 命令。运行 `which ``notify-send`  命令来查看它是否在于你的系统中。如果没有,请使用包管理器来安装它。 -On Fedora, type: +在 Fedora 上,输入: ``` `$ sudo dnf install notify-send` ``` -On Debian-based distributions, type: +在基于 Debian 的发行版上,输入: ``` `$ sudo apt install notify-send` ``` -A few examples of simple notifications: +几个简单的通知示例: ``` @@ -50,7 +50,7 @@ $ notify-send "Tip of the Day" "How about a nap?" ``` -You can customize the notification with options such as urgency level, custom icon, etc. Find out more with `man notify-send`. You can use a small set of HTML tags in the notification body to give your messages a nice touch. On top of that, URLs are rendered as clickable. For example: +你可以用紧急程度、自定义图标等选项来自定义通知。过 `man notify-send` 了解更多。你也可以在通知正文中使用一小组 HTML 标记,以使消息有一个棒的视觉感受。最重要的是,URL 被呈现为可点击的。例如: ``` @@ -66,18 +66,18 @@ $ notify-send -u critical \ (Tomasz Waraksa, CC BY-SA 4.0) -Sent notifications are picked up by the desktop environment and displayed just like any other notification. They will have the same consistent look, feel, and behavior. +发送的通知会被桌面环境接收,并像其他通知一样显示。它们将具有相同的外观、交互和行为。 -### Combine notify-send with at +### 将 notify-send 与 at 结合使用 -Cron is commonly used to schedule commands at regular intervals. The `at` command schedules the single execution of a command at a specified time. If you run it like this, it starts in interactive mode, where you can enter commands to execute at a given time: +计划任务通常被用来定期安排命令。`at` 命令安排在一个指定的时间执行一条命令。 如果你像这样运行它,它会以交互模式启动,你可以在其中输入要在指定时间执行的命令: ``` `$ at 12:00` ``` -This isn't useful for scripts. Luckily, `at` accepts parameters from standard input so that we can use it this way: +这对脚本来说并不有用。幸运的是, `at` 接受来自标准输入的参数,所以我们可以这样使用它: ``` @@ -88,7 +88,7 @@ $ echo "backup-db" | at 13:00 ``` -There are many ways of specifying time. From absolute time, such as `10:00` through relative time, such as `now + 2 hours`, to special times such as `noon` or `midnight`. We can combine it with `notify-send` to show ourselves reminders at some time in the future. For example: +有许多指定时间的方法。 从绝对时间,如 `10:00`,到相对时间,如 `now + 2 hours` ,再特殊时间,如`noon` 或 `midnight`。我们可以把它和 `notify-send` 结合起来,在未来的某个时间向自己发送提醒。例如: ``` @@ -99,9 +99,9 @@ There are many ways of specifying time. From absolute time, such as `10:00` thro (Tomasz Waraksa, CC BY-SA 4.0) -### The remind command +### 提醒的命令 -Now, build a custom Bash command for sending yourself reminders. How about something as simple and human-friendly as: +现在,建立一个自定义的 Bash 命令来给自己发送提醒信息。像这样简单且人性化的命令: ``` @@ -115,18 +115,18 @@ $ remind "It's Friday pints time!" at 17:00 ``` -This is better than Alexa! How to get this goodness? +这比 Alexa 更好!该怎样做? -See the code below. It defines a shell function called **remind**, which supports the above syntax. The actual work is done in the last two lines. The rest is responsible for help, parameter validation, etc., which roughly matches the proportion of useful code vs. necessary white-noise in any large application. +请看下面的代码。它定义了一个名为 **remind** 的函数,它支持上述语法。实际工作是在最后两行完成的。其余的部分负责显示帮助信息、参数校验等,这与任何大型应用程序中有用的代码与必要的白噪声的比例大致相同。 -Save the code somewhere, for example, in the `~/bin/remind` file, and source the function in your `.bashrc` profile so that it's loaded when you log in: +把代码保存在某个地方,例如,在 `~/bin/remind` 文件中,并在你的 `.bashrc` 配置文件写入该函数,以便在你登录时加载它: ``` `$ source ~/bin/remind` ``` -Reload the terminal, then type remind to see the syntax. Enjoy! +重新打开终端,然后输入 remind 来查看语法。尽情享受吧! ``` @@ -195,13 +195,13 @@ function remind () { ``` -### Easy notifications +### 简单的提醒 -With these few simple open source commands, you can integrate your own scripts, applications, and tasks with your desktop. Try it out! +通过这几个简单的开源命令,你可以将你自己的脚本、应用程序和任务与你的桌面结合起来。试一试吧! * * * -_This article has been adapted with the author's permission from the original article, found [here][7]._ +_本文经作者许可改编自原文,详情见[此处][7]。_ -------------------------------------------------------------------------------- @@ -209,7 +209,7 @@ via: https://opensource.com/article/22/1/linux-desktop-notifications 作者:[Tomasz Waraksa][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[mcfd](https://github.com/mcfd) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 3a8d06085b7a47d7e89ce8afd902ade4d6c3cfd2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 17:51:11 +0800 Subject: [PATCH 0293/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220707=20Google=20Summer=20of=20Code=20+=20Zephyr?= =?UTF-8?q?=20RTOS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...707 Google Summer of Code + Zephyr RTOS.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/news/20220707 Google Summer of Code + Zephyr RTOS.md diff --git a/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md b/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md new file mode 100644 index 0000000000..00d782b8a5 --- /dev/null +++ b/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md @@ -0,0 +1,136 @@ +[#]: subject: "Google Summer of Code + Zephyr RTOS" +[#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/" +[#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Google Summer of Code + Zephyr RTOS +====== + +The **Google Summer of Code** (**GSoC)** is an international annual program in which [Google][1] awards [stipends][2] to contributors who successfully complete a [free and open source software][3] coding project during the summer. Launched in 2005, GSoC takes place from May to August. Project ideas are submitted by host organizations involved in open source software development, though students can also propose their own project ideas. + +This year, the program was opened to anyone 18 years or older – not just students and recent graduates. Participants get paid to write software, with the amount of their [stipend][4] depending on the [purchasing power parity][5] of the country where they are located. + +This is also the first time the Zephyr Project is participating in GSoC under The Linux Foundation umbrella. Please join us in welcoming these contributors and their projects: + +### Project #1: Arduino module based on Zephyr + +1 contributor full-size (350 hours). + +[Arduino][6]’s popularity is renowned as a popular framework for providing a simplified interface to program embedded devices. Recently, Arduino adopted mbed OS as the base RTOS for some of their newer devices. With that work, they separated out [Arduino Core][7] as an independent abstraction layer from [Arduino Core for mbed][8]. This opens up the possibility for leveraging Arduino Core on other OSes. The project idea is to create a Zephyr module that leverages the Arduino Core so that a developer can use Zephyr as the underlying OS when they use the Arduino framework on Arduino-compatible devices. The benefits to the user include: + +* Access to Arduino APIs as well as advanced Zephyr capabilities +* Broader set of devices than the standard Arduino ecosystem thanks to Zephyrs’ device support +* Ability to re-use Arduino tools like the Arduino IDE and wealth of libraries + +Arduino Core is licensed under the GNU Lesser General Public License and Zephyr is licensed under Apache 2. That means this project will most likely need to be developed out of tree and in a separate repo to keep code and license separation. See [#22247][9] for a historic discussion & [soburi/arduino-on-zephyr][10] for an earlier attempt prior to the Arduino Core architecture. + +**The contributor’s task is thus:** + +* Implement a bare-bones Module based on Arduino Core that can compile for any target (no functionality, possibly in QEMU) +* Implement a common peripheral from the Arduino API based on Zephyr such as [Serial][11] +* Target one physical board, such as the Arduino Zero + +**Mentors:** + +[Jonathan Beri][12]– CEO of Golioth and Zephyr TSC +[Alvaro Viebrantz][13] – Founding Engineer of Golioth and Google GDE + +**Code License:** LGPL + +**Contributor Details:** + +* Name: Dhruva Gole +* Project Blog: [https://dhruvag2000.github.io/Blog-GSoC22/][14] +* Project Poster: + +![][15] + +**About the contributor:** + +![][16] + +Dhruva is an undergraduate student majoring in Electrical engineering. He has a broad range of interests from embedded software development to hardware design and has experience in working on SBCs, microcontrollers, and embedded Linux platforms. + +### Project #2: Apache Thrift Module for Zephyr + +1 contributor full-size (350 hours). + +[Apache Thrift][17] is an [IDL][18] specification,[RPC][19] framework, and code generator that abstracts away transport and protocol details to let developers focus on application logic.It works across all major operating systems, supports over 27 programming languages, 7 protocols, and 6 low-level transports. Originally [developed at Facebook in 2007][20], it was subsequently shared with the Apache Software Foundation. + +![][21] + +![][22] + +Supporting Thrift in the Zephyr RTOS would benefit the community greatly. It would lead to new software and hardware technologies, new products, and additional means for cloud integration. Thrift can be used over virtually any transport as well and for that reason, it is a natural choice for the many different physical communication layers supported by Zephyr. The project idea is to get the proof-of-concept [Thrift for Zephyr Module][23] into shape for upstreaming. To achieve that, the contributor must: + +Perform additional integration for Thrift features (protocols, transports) +Author additional sample applications using [supported boards][24] or [Qemu][25] +Author additional tests and generate coverage reports using the [Zephyr Test Framework][26] +Ensure the module follows appropriate [coding guidelines][27] and satisfies [module requirements][28] +Contribute any necessary improvements back to the Apache Thrift Project. +Contribute any necessary improvements back to the Zephyr Project. + +**Mentors:** + +* [Christopher Friedt][29] – SWE / ASIC FW at Meta and Zephyr TSC member +* [Stephanos Ioannidis][30] – Zephyr CXX Subsystem Maintainer + +**Code License:** Apache 2.0. + +**Contributor Details:** + +**Name:** Young + +**About the contributor:** Young is a student majoring in  communication engineering, and he will pursue his Master’s degree in computer engineering. He has a broad range of interests from front-end development to hardware design, and has experience in working on the Web, IoT and embedded platforms. A low-cost single-board computer with a RISC-V 64 processor designed by him in 2021 was reported by several geek media. + +The post [Google Summer of Code + Zephyr RTOS][31] appeared first on [Linux Foundation][32]. + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/ + +作者:[The Linux Foundation][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.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ +[b]: https://github.com/lkxed +[1]: https://en.wikipedia.org/wiki/Google +[2]: https://en.wikipedia.org/wiki/Stipend +[3]: https://en.wikipedia.org/wiki/Free_and_open-source_software +[4]: https://en.wikipedia.org/wiki/Stipend +[5]: https://en.wikipedia.org/wiki/Purchasing_power_parity +[6]: https://www.arduino.cc/ +[7]: https://github.com/arduino/ArduinoCore-API +[8]: https://github.com/arduino/ArduinoCore-mbed +[9]: https://github.com/zephyrproject-rtos/zephyr/issues/22247 +[10]: https://github.com/soburi/arduino-on-zephyr +[11]: https://www.arduino.cc/reference/en/language/functions/communication/serial/ +[12]: https://www.linkedin.com/in/jonathanberi/ +[13]: https://www.linkedin.com/in/alvaro-viebrantz-55119048/ +[14]: https://dhruvag2000.github.io/Blog-GSoC22/ +[15]: https://www.linuxfoundation.org/wp-content/uploads/project-poster.png +[16]: https://www.linuxfoundation.org/wp-content/uploads/dhruva.jpeg +[17]: https://github.com/apache/thrift +[18]: https://en.wikipedia.org/wiki/Interface_description_language +[19]: https://en.wikipedia.org/wiki/Remote_procedure_call +[20]: https://thrift.apache.org/static/files/thrift-20070401.pdf +[21]: https://www.linuxfoundation.org/wp-content/uploads/apache-thrift-layered-architecture.png +[22]: https://www.linuxfoundation.org/wp-content/uploads/SPDX-license.png +[23]: https://github.com/cfriedt/thrift-for-zephyr +[24]: https://docs.zephyrproject.org/latest/boards/index.html +[25]: https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html +[26]: https://docs.zephyrproject.org/latest/guides/test/ztest.html +[27]: https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html +[28]: https://docs.zephyrproject.org/latest/guides/modules.html +[29]: https://www.linkedin.com/in/christopher-friedt/ +[30]: https://www.linkedin.com/in/stephanosio/ +[31]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ +[32]: https://www.linuxfoundation.org/ From 9ef6180b73cb12c9431d1fbe60c3dfdf8918aff2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 17:59:54 +0800 Subject: [PATCH 0294/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220708=20Data=20Visualisation=20in=20R-=20Graphs.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0220708 Data Visualisation in R- Graphs.md | 396 ++++++++++++++++++ 1 file changed, 396 insertions(+) create mode 100644 sources/tech/20220708 Data Visualisation in R- Graphs.md diff --git a/sources/tech/20220708 Data Visualisation in R- Graphs.md b/sources/tech/20220708 Data Visualisation in R- Graphs.md new file mode 100644 index 0000000000..18e61bb333 --- /dev/null +++ b/sources/tech/20220708 Data Visualisation in R- Graphs.md @@ -0,0 +1,396 @@ +[#]: subject: "Data Visualisation in R: Graphs" +[#]: via: "https://www.opensourceforu.com/2022/07/data-visualisation-in-r-graphs/" +[#]: author: "Shakthi Kannan https://www.opensourceforu.com/author/shakthi-kannan/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Data Visualisation in R: Graphs +====== +In this tenth article in the R series, we will continue to explore data visualisation in R with the lattice and ggplot2 packages. + +![Data-Visualisation-in-R-Graphs-Featured-image][1] + +We will be using the R version 4.1.2 installed on Parabola GNU/Linux-libre (x86-64) for the example code snippets in this article. + +``` +$ R --version +R version 4.1.2 (2021-11-01) -- “Bird Hippie” +Copyright (C) 2021 The R Foundation for Statistical Computing +Platform: x86_64-pc-linux-gnu (64-bit) +``` + +R is free software and comes with absolutely no warranty. You are welcome to redistribute it under the terms of the GNU General Public License versions 2 or 3. For more information about these matters, see https://www.gnu.org/licenses/. + +### Lattice + +#### Line chart + +Consider the consumer prices (annual per cent) inflation data for India between 1960 and 2022 available from the World Bank. You can use the years in the x-axis, and the inflation on the y-axis to produce a line chart using the xyplot function, as shown below: + +``` +> x<-c(1960:2020) + +> y<-c(1.77,1.69,3.63,2.94,13.35,9.47,10.80,13.06,3.23,-0.58,5.09,3.07,6.44,16.94,28.59,5.74, + +-7.63,8.30,2.52,6.27,11.34,13.11,7.89,11.86,8.31,5.55,8.72,8.80,9.38,7.07,8.97,13.87,11.78,6.32,10.24,10.22,8.97,7.16,13.23,4.66,4.00,3.77,4.29,3.80,3.76,4.24,5.79,6.37,8.34,10.88,11.98,8.85,9.31,11.06,6.64,4.90,4.94,3.32,3.94,3.72,6.62) + +> d <- data.frame(x,y) + +> xyplot(y~x, data=d, type=”l”, main=”Inflation, consumer prices (annual %)”) +``` + +The line chart is shown in Figure 1. + +![Figure 1: Line chart][2] + +The *xyplot* accepts the following arguments: + +| Argument | Description | +| :- | :- | +| data | A data frame containing values | +| groups | A grouping variable in the data | +| main | The title of the chart | +| strip | A logical condition on whether to draw strips | +| x | The primary numeric variable | +| xlab | The label for x-axis | +| xlim | A numeric vector that specifies left and right limits for x-axis | +| ylab | The label for y-axis | +| ylim | A numeric vector of length two that mentions lower and upper limits for y-axis | + +**The barchart function** + +The *bar chart* function produces a bar chart for the given data. In the following example, we specify a function to the axis argument to use the year on the x-axis. + +![Figure 2: Bar chart][3] + +``` +> barchart(y~x|x, data=d, horizontal=FALSE, axis=function(side, ...) { if (side==”bottom”) panel.axis(at=seq_along(d$x), label=d$x, outside=TRUE, rot=0, tck=0) else axis.default(side, ...)}, main=”Inflation, consumer prices (annual %)”) +``` + +The additional set of arguments available to the xyplot and barchart are listed below: + +| Argument | Description | +| :- | :- | +| box.ratio | Specifies the ratio of the width of rectangles in barchart | +| panel | Plots x and y variables in each panel | +| default.prepanel | A default function as a fallback to the prepanel function | +| auto.key | Used to produce a suitable legend | +| aspect | The physical aspect ratio of the panels | +| axis | A function responsible for drawing the axis annotation | +| horizontal | The orientation of the bar chart | +| subscripts | A logical flag to pass a ‘subscripts’ vector to the panel function | +| subset | A set of rows from the data is used in the plot | + +**Scatter plot** + +You can also display individual charts on a panel grid. For example, the all India consumer price index (rural/urban) data set up to November 2021 is available from https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0 for the different states in India. We can read the data from the downloaded file using the read.csv function, as shown below: + +``` +> cpi <- read.csv(file=”CPI.csv”, sep=”,”) +``` + +``` +> head(cpi) +Sector Year Name Andhra.Pradesh Arunachal.Pradesh Assam Bihar +1 Rural 2011 January 104 NA 104 NA +2 Urban 2011 January 103 NA 103 NA +3 Rural+Urban 2011 January 103 NA 104 NA +4 Rural 2011 February 107 NA 105 NA +5 Urban 2011 February 106 NA 106 NA +6 Rural+Urban 2011 February 105 NA 105 NA +Chattisgarh Delhi Goa Gujarat Haryana Himachal.Pradesh Jharkhand Karnataka +1 105 NA 103 104 104 104 105 104 +2 104 NA 103 104 104 103 104 104 +3 104 NA 103 104 104 103 105 104 +4 107 NA 105 106 106 05 107 106 +5 106 NA 105 107 107 105 107 108 +6 105 NA 104 105 106 104 106 106 +``` + +The aggregate function can be used to obtain the values for the state of Andhra Pradesh as follows: + +``` +ap <- aggregate(x=cpi$Andhra.Pradesh, by=list(cpi$Year), FUN=sum) + +> head(ap) +Group.1 x +1 2011 3911.28 +2 2012 4255.40 +3 2013 4516.60 +4 2014 4673.60 +5 2015 4822.20 +6 2016 4921.50 +``` + +A simple scatter plot can be displayed for the consumer price indexes using the following arguments to the xyplot function: + +``` +> xyplot(x~Group.1, ap, main=”Andhra Pradesh Consumer Price Index upto November 2021”, xlab=”Year”, ylab=”Consumer Price Index”) +``` + +The corresponding scatter plot illustration is shown in Figure 3. + +![Figure 3: Scatter plot][4] + +#### Panel grid + +You can also visualise the values per year (Group.1) using the xyplot: + +``` +> xyplot(x~Group.1|Group.1, ap, groups=Group.1, main=”Andhra Pradesh Consumer Price Index upto November 2021”, xlab=”Year”, ylab=”Consumer Price Index”, auto.key=TRUE) +``` + +The output chart produced by R is as shown in Figure 4. + +![Figure 4: Grouping chart][5] + +In addition to the above listed plotting functions, lattice provides the bwplot function for box-and-whisker plots, and the stripplot function for one-dimensional scatter plots. + +### ggplot2 + +The ggplot2 R package implements a grammar of graphics that specifies how to plot data. You can install the package using the following command: + +``` +> install.packages(“ggplot2”) + +*** installing help indices +*** copying figures +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggplot2) +``` + +The library needs to be loaded into the R session before you can use its functions: + +``` +library(ggplot2) +``` + +#### Scatter plot + +The same consumer prices (annual per cent) inflation data for India can be plotted using the quick plot or qplot function from the ggplot2 package in R. For example: + +``` +> x<-c(1960:2020) +> y<-c(1.77,1.69,3.63,2.94,13.35,9.47,10.80,13.06,3.23,-0.58,5.09,3.07,6.44,16.94,28.59,5.74,-7.63,8.30,2.52,6.27,11.34,13.11,7.89,11.86,8.31,5.55,8.72,8.80,9.38,7.07,8.97,13.87,11.78,6.32,10.24,10.22,8.97,7.16,13.23,4.66,4.00,3.77,4.29,3.80,3.76,4.24,5.79,6.37,8.34,10.88,11.98,8.85,9.31,11.06,6.64,4.90,4.94,3.32,3.94,3.72,6.62) +> d <- data.frame(x,y) +> qplot(x=x, y=y, data=d, xlab=”Year”, ylab=”Inflation”, main=”Inflation, consumer prices (annual %)”) +``` + +The simple scatter plot is shown in Figure 5. + +![Figure 5: Simple qplot][6] + +We can also store the results of the plot to a variable and ask R to provide a summary of the same, as shown below: + +``` +> ex1 <- qplot(x=x, y=y, data=d) +> summary(ex1) +data: x, y [61x2] +mapping: x = ~x, y = ~y +faceting: +compute_layout: function +draw_back: function +draw_front: function +draw_labels: function +draw_panels: function +finish_data: function +init_scales: function +map_data: function +params: list +setup_data: function +setup_params: function +shrink: TRUE +train_scales: function +vars: function +super: +----------------------------------- +geom_point: na.rm = FALSE +stat_identity: na.rm = FALSE +position_identity +``` + +#### Line chart + +We can generate a line chart by specifying the geom attribute as ‘line’, as shown below: + +``` +> qplot(x=x, y=y, data=d, xlab=”Year”, ylab=”Inflation”, main=”Inflation, consumer prices (annual %)”, geom=”line”) +``` + +The corresponding line graph is shown in Figure 6. + +![Figure 6: qplot line graph][7] + +The ‘Bank Marketing Data Set’ for a Portuguese banking institution is available from the UCI machine learning repository available at https://archive.ics.uci.edu/ml/datasets/Bank+Marketing. The data can be used for public research use. There are four data sets available, and we will use the read.csv() function to import the data from a ‘bank.csv’ file into a data frame. + +``` +bank <- read.csv(file=”bank.csv”, sep=”;”) + +> bank[1:3,] +age job marital education default balance housing loan contact day +1 30 unemployed married primary no 1787 no no cellular 19 +2 33 services married secondary no 4789 yes yes cellular 11 +3 35 management single tertiary no 1350 yes no cellular 16 +month duration campaign pdays previous poutcome y +1 oct 79 1 -1 0 unknown no +2 may 220 1 339 4 failure no +3 apr 185 1 330 1 failure no +``` + +### Bar chart + +The geometry argument can be specified as ‘bar’ to produce a bar chart, as indicated below: + +``` +> qplot(x=job, data=bank, geom=”bar”, weight=balance, ylab=”Balance”, xlab=”Category”) +``` + +The produced bar chart is shown in Figure 7. + +![Figure 7: Bar chart][8] + +We can also list a summary of the chart by storing the results of the plot to a variable, and invoking the summary function on the same. For example: + +``` +> barchart <- qplot(x=job, data=bank, geom=”bar”, weight=balance, ylab=”Balance”, xlab=”Category”) + +> summary (barchart) +data: age, job, marital, education, default, balance, housing, loan, +contact, day, month, duration, campaign, pdays, previous, poutcome, y +[4521x17] +mapping: x = ~job, weight = ~balance +faceting: +compute_layout: function +draw_back: function +draw_front: function +draw_labels: function +draw_panels: function +finish_data: function +init_scales: function +map_data: function +params: list +setup_data: function +setup_params: function +shrink: TRUE +train_scales: function +vars: function +super: +----------------------------------- +geom_bar: width = NULL, na.rm = FALSE, orientation = NA +stat_count: width = NULL, na.rm = FALSE, orientation = NA +position_stack +``` + +The qplot function accepts the following arguments: + +| Argument | Description | +| :- | :- | +| asp | The y/x aspect ratio | +| data | Optional data frame that contains x and y | +| geom | The geometry to use | +| main | The title of the chart | +| margin | Display margins | +| position | The adjustments to specify the position | +| x | X values | +| xlab | The x-axis label | +| xlim | The limits for the x-axis | +| y | Y values | +| ylab | The y-axis label | +| ylim | The limits for the y-axis | + +#### ggplot + +The ggplot function can be used to create a new ggplot object for input data, and also specify aesthetic mappings for the same. + +For the bank.csv data, we can tabulate the job and marital status together using the with function as follows: + +``` +> with(bank, table(job, marital)) +marital + +job divorced married single +admin. 69 266 143 +blue-collar 79 693 174 +entrepreneur 16 132 20 +housemaid 13 84 15 +management 119 557 293 +retired 43 176 11 +self-employed 15 127 41 +services 62 236 119 +student 0 10 74 +technician 89 411 268 +unemployed 22 75 31 +unknown 1 30 7 +``` + +You can now plot the above categorical data using ggplot, as follows: + +``` +> ggplot(bank, aes(x = job, fill = marital)) + geom_bar() +``` + +The resultant graph is shown in Figure 8. + +![Figure 8: ggplot categorical graph][9] + +The age distribution can be plotted as a density using the geom_density function as follows: + +``` +> ggplot(bank, aes(x = age)) + geom_density() +``` + +The corresponding graph is shown in Figure 9. + +![Figure 9: ggplot density graph][10] + +A box plot for the age and marital status can be visualised using the following arguments to ggplot: + +``` +> ggplot(bank, aes(x = age, y = marital)) + geom_boxplot() + coord_flip() +``` + +The output graph is as shown in Figure 10. + +![Figure 10: ggplot boxplot graph][11] + +The ggplot function accepts the following arguments: + +| Argument | Description | +| :- | :- | +| data | The data frame for the plot | +| mapping | The aesthetic mappings to be used in the plot | +| environment | The globalenv() environment for the aesthetics | + +Do try and explore more functions and charts in the graphics packages available in R. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/data-visualisation-in-r-graphs/ + +作者:[Shakthi Kannan][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/shakthi-kannan/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Data-Visualisation-in-R-Graphs-Featured-image.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-Line-chart.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Bar-chart.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-3-Scatter-plot.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-4-Grouping-chart.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-5-Simple-qplot.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-6-qplot-line-graph.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-7-Bar-chart.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-8-ggplot-categorical-graph.jpg +[10]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-9-ggplot-density-graph.jpg +[11]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-10-ggplot-boxplot-graph.jpg From a5a3527e6e487ded7ad48ed4990d1931acb3d1bf Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 18:02:19 +0800 Subject: [PATCH 0295/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220708=20Do=20You=20Miss=20Firefox=20Send-=20Inter?= =?UTF-8?q?nxt=20Send=20is=20Ready=20as=20a=20Replacement.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Internxt Send is Ready as a Replacement.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md diff --git a/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md b/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md new file mode 100644 index 0000000000..0490ef5bea --- /dev/null +++ b/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md @@ -0,0 +1,65 @@ +[#]: subject: "Do You Miss Firefox Send? Internxt Send is Ready as a Replacement" +[#]: via: "https://news.itsfoss.com/internxt-send/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Do You Miss Firefox Send? Internxt Send is Ready as a Replacement +====== +A new offering by Internxt lets you send encrypted files to anyone quickly while retaining your privacy. We can only hope that it does not shut down like Firefox Send. + +![internxt][1] + +[Internxt][2] is a fairly new open-source encrypted cloud service that aims to replace the offerings by the big tech. For instance, you can use it as an alternative to Google Photos, and Drive. + +You get 10 GB for free. So, you can sign up for it to test it out. + +Recently, they have also added another product “Internxt Send”, as a replacement to fill the void for Firefox Send. + +Unfortunately, Firefox Send was discontinued, but it was a good tool! + +[Internxt Send][3] lets you send/share images, videos, documents, and other files securely, just like Firefox Send. + +### Internxt Send: A Secure File Sharing Service + +![][4] + +While I couldn’t find the repository on GitHub for Internxt Send, I’ve asked them for clarification. + +As one would expect, you can upload your files to Internxt Send without needing to create an account. + +The file upload limit is 5 GB. And, you cannot increase the limit in any way. + +You can choose to upload the files required and generate a link to share. Or, you can directly send an email to the recipient, where you would also need to share your email address. + +![][5] + +Interestingly, it also lets you add custom text to the email you send with the file uploaded. + +Unlike Firefox Send, you cannot tweak the expiry for the link generated to share the file or set it to stop working after a number of downloads. The link expires in 15 days by default, and you cannot change that. So, that is a bummer. + +But, if you were waiting for an encrypted service that lets you privately share files, this can be an alternative. + +*It is good to have more Firefox Send alternatives I think! What are your thoughts on Internxt Send?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/internxt-send/ + +作者:[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/07/internxt-send-ft-1.jpg +[2]: https://itsfoss.com/internxt-cloud-service/ +[3]: https://send.internxt.com/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-1024x640.png +[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-screenshot-1024x782.png From dfc04a28d00ec3902fa78d8b9fe3e1738896e114 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 18:03:49 +0800 Subject: [PATCH 0296/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220708=20Meta-s=20AI=20Model=20That=20Helps=20Over?= =?UTF-8?q?come=20Language=20Barrier=20Is=20Now=20Open-Source.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ome Language Barrier Is Now Open-Source.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md diff --git a/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md new file mode 100644 index 0000000000..b4070c8f13 --- /dev/null +++ b/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md @@ -0,0 +1,72 @@ +[#]: subject: "Meta’s AI Model That Helps Overcome Language Barrier Is Now Open-Source" +[#]: via: "https://news.itsfoss.com/meta-open-source-ai-model/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Meta’s AI Model That Helps Overcome Language Barrier Is Now Open-Source +====== +No Language Left Behind by Meta is an ambitious open-source project which aims to translate languages with the highest level of accuracy. + +![meta][1] + +Meta (formerly known as Facebook) has made quite a splash in the open-source world. If you did not know, Meta works on various research and innovative projects like React (a JavaScript library) apart from focusing on the metaverse and its social media platforms. + +Researchers at Meta have decided to open-source one such project, an AI model called ‘*No Language Left Behind*‘. + +### Meta’s Attempt To Leave No Language Behind + +![200 languages within a single AI model: A breakthrough in high-quality machine translation][2] + +While around 7000 languages are spoken in the world today, most of the online content is available in a handful of popular languages like English. This leaves many people who don’t know such languages at a disadvantage. + +While many tools exist for translation, grammatical errors can make content difficult to read and understand. Moreover, if you are looking to translate it into a language that is not popular, it won’t be a pretty experience. + +Specifically, for languages of Africa and Asia. + +Hence, Meta is working on a translational tool with one of the highest quality results recorded that can help counter this global issue. + +No Language Left Behind or simply **NLLB-200** is a machine translation model that can translate over 200 languages using artificial intelligence + +NLLB’s performance in each language is determined and evaluated using a complex dataset called FLORES-200 (if you’re curious). + +As stated by Meta, NLLB’s results are 40% better than “previous AI research” methods. It even has an accuracy of over 70% for some of the least-common languages. That’s quite an impressive feat! + +To help develop and improve the quality of translations, Meta has made the source code open to all interested researchers. This includes code for NLLB-200, FLORES-200, model training, and re-creating the training database. + +You can find the source code on [GitHub][3] and learn more about the project in its [research blog post][4]. + +### Rewards for Social Cause + +Meta has announced rewards of up to $200,00 of grants for non-profit organizations and researchers who are working on any areas of the UN Sustainable Development Goals and translating African languages. + +Other researchers currently working in academic fields like linguistics and machine translation are also encouraged to apply. + +### The Impact of this Project + +Although Meta intends to mostly make use of NLLB across its digital platforms, particularly the Metaverse, it can be hugely impactful in other domains as well. + +Many users will be able to access and easily read online resources in their native languages without a lot of effort. The idea of making it an open-source project should allow the community to help make this happen. + +*What are your thoughts on this project by Meta?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/meta-open-source-ai-model/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/meta-makes-ai-language-model-opensource.jpg +[2]: https://youtu.be/uCxSPPiwrNE +[3]: https://github.com/facebookresearch/fairseq/tree/nllb +[4]: https://ai.facebook.com/blog/nllb-200-high-quality-machine-translation/ From 9299d706661f71e88832adbd69a04d8dcff682a6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 18:04:49 +0800 Subject: [PATCH 0297/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220708=20Umbrel-=20Unique=20Linux=20Distro=20for?= =?UTF-8?q?=20Self=20Hosting=20Open=20Source=20Software=20for=20Your=20Hom?= =?UTF-8?q?elab.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g Open Source Software for Your Homelab.md | 205 ++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 sources/tech/20220708 Umbrel- Unique Linux Distro for Self Hosting Open Source Software for Your Homelab.md diff --git a/sources/tech/20220708 Umbrel- Unique Linux Distro for Self Hosting Open Source Software for Your Homelab.md b/sources/tech/20220708 Umbrel- Unique Linux Distro for Self Hosting Open Source Software for Your Homelab.md new file mode 100644 index 0000000000..0ccfa44670 --- /dev/null +++ b/sources/tech/20220708 Umbrel- Unique Linux Distro for Self Hosting Open Source Software for Your Homelab.md @@ -0,0 +1,205 @@ +[#]: subject: "Umbrel: Unique Linux Distro for Self Hosting Open Source Software for Your Homelab" +[#]: via: "https://itsfoss.com/umbrel-review/" +[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Umbrel: Unique Linux Distro for Self Hosting Open Source Software for Your Homelab +====== +Umbrel is a beautiful operating system as well as a services dashboard that is a good start for someone interested in self-hosting. It has a nice web GUI and enables easy installation of containerized web services with a one-click install. + +This is perfect if you want a homelab setup with open source software for personal usage but can’t (or don’t want to) do all the technical configuration manually. + +### Umbrel: Self-hoster’s paradise + +Well, it depends on how you install Umbrel. On [the website][1], there are two ways to “get” Umbrel. One is an image for the Raspberry Pi and another method is to install the Umbrel Docker image on an existing Linux installation as a Docker container. + +So *technically*, it is a management tool for Docker containers. + +![A Video from YouTube][2] + +I gave it a go with my Raspberry Pi 4 and here I share my experience and views on using Umbrel. + +#### Hardware support + +At the time of writing, there doesn’t seem to be an official guideline from Umbrel regarding this… + +But fret not! I flashed Umbrel to my SD Card and looked under the ‘/boot’ partition. The only kernel to be found was named ‘kernel8.img’. + +According to Raspberry Pi’s [official documentation][3], ‘kernel8’ means a 64-bit kernel, whereas ‘kernel7’ and ‘kernel7l’ are 32-bit kernels. + +As for non-Raspberry Pi hardware, below is a what I assume from my experience using Umbrel: + +* Any 64-bit CPU (all modern CPUs are 64-bit) +* Any Linux-based OS, Ubuntu/Debian is preferred +* Minimum 4 to 8 Gigabytes of RAM +* An external SSD/HDD in at least 750 Gigabytes of capacity (ALL DATA WILL BE ERASED ON FIRST BOOT) + +### Installing Umbrel + +If you like the idea of an operating system like Umbrel and you want to install it, you need to decide if you want to install it on a Raspberry Pi or on any other computer. + +NOTICE + +Umbrel is still in an early stage and things are expected to break every now and then. It is NOT recommended to run Umbrel in any mission-critical scenario yet.[][4] + +#### Raspberry Pi (64-bit) + +If you want to install Umbrel on a Raspberry Pi, it is available on their Github at [this link][5]. There will be three files available for download, please download the ‘umbrel-os-VERSION.zip’ file. + +While the Umbrel image gets downloaded, download an image-burning tool like [BalenaEtcher][6]. + +Once Umbrel and BalenaEtcher are downloaded, insert the SD Card and use BalenaEtcher to flash Umbrel on the SD Card. + +When the flashing finishes, insert the SD Card in the Raspberry Pi along with a 750+ Gigabyte HDD/SSD and boot your Raspberry Pi. + +The web GUI will now be available at [http://umbrel.local][7] from your web browser. + +#### Linux PC + +If you do not have a Raspberry Pi but have a *spare* computer running Debian/Ubuntu, you can easily install Umbrel using a simple script that is provided. + +The recommended way to do so is to run it with the curl command: + +``` +curl -L https://umbrel.sh | bash +``` + +The install script will install the necessary dependencies, Docker, Docker Compose and finally, the necessary containers. + +Upon successful installation, you will see the methods of accessing the web GUI. + +![Different ways of accessing Umbrel web GUI listed by the installer][8] + +Installing Umbrel on my Ubuntu VM, I got the following methods of accessing the web GUI. One is a domain name, the second is an IP address and the third is a TOR address. + +### Using Umbrel: The good and bad + +Like anything in this world, everything has its own positives and negatives. Umbrel is no exception. + +It excels at ease of use but fails at basic customization. + +#### The good parts + +Let’s kick off this review piece by taking a look at the good parts of Umbrel. Things I enjoyed while using Umbrel, and my experience. + +The web GUI is simply amazing and looks second to none. + +![The Umbrel web GUI (taken from umbrel.com)][9] + +##### App Store + +Umbrel, being advertised as an Operating System, comes with its own App Store. It has some of the most popular “self-hosting” software that you can imagine. Some of my favorite software available from the App Store are Gitea, Home Assistant, [Nextcloud][10], Pi-hole, Synapse, [Syncthing][11], Tailscale, Uptime Kuma, and much, much more. + +![The app store on Umbrel][12] + +The idea behind Umbrel’s App Store is very fascinating. Since Umbrel deals with Docker containers, the Apps are just docker-compose YAML files tailored to run on Umbrel. That is the most elegant solution I’ve ever seen yet! You can view those files [here][13]. + +![Easy, one click installation of containerized services from the App Store][14] + +That means complex software like Nextcloud is now a ‘one-click install’. + +##### Settings + +The Settings app in the web GUI shows useful metrics like storage and RAM usage. You can also shut down and restart your computer from the Umbrel web GUI itself. No longer need to SSH in a remote computer and run sudo shutdown +0 :) + +![The Settings app on Umbrel][15] + +The Settings app also lets you enable 2 Factor Authentication for the web GUI (not SSH connection). 2FA is always a good security feature. + +##### TOR + +Umbrel enables TOR by default. That allows you to access the Umbrel web GUI over a TOR network without any worries! + +That means, even if you are behind a router, you can remotely access your services like Nextcloud over the TOR network without having to get a public IP address or enable port forwarding from your router. Now this is extra cool! I need to do this for my homelab :p + +##### Bitcoin and Lightning + +Umbrel actually started as an open source software that allowed easily setting up a Bitcoin node. And it got popular in crypto enthusiasts who wanted to run their own nodes. + +The developers later realized that they don’t have to stick with a Bitcoin and other cryptocurrency software. They can extend this ‘one-click install’ feature to other popular open source software like Nextcloud, [PhotoPrism][16]. + +If you are interested in crypto, you can still find those software and install them. I don’t have any interest in the cryptocurrency and hence I didn’t install those software to check their performance. + +#### The bad parts + +Since Umbrel is still in v0.5, I will try not to go too hard, as I understand it takes time to implement certain features. But I still need to let *you* — the potential user — know the current situation with Umbrel. + +##### An empty external disk is a must + +The first problem I faced on my Raspberry Pi was that the **GUI would not start without an external HDD/SSD attached to it** :( + +Actually, it’s a requirement by design. Umbrel keeps the OS on one disk (the SD card of your Pi) and it needs a separate disk for the application data. + +**Do note that the external disk must not have any useful data because it will be erased the first time you install Umbrel.** + +##### No multiple disks (with Raspberry Pi) + +The second issue is that there are a few limitations with the Settings app on Umbrel’s web GUI. With a new drive attached, you can not add it to Umbrel to be used by apps like Nextcloud, Gitea, etc. Which essentially means, the inability to use separate drives. That further means no RAID, of any sort. + +I think this is more of an issue from the Raspberry Pi side as it cannot handle multiple external disks. + +##### Storage configuration issues + +The third “oversight” I encountered is that there seems no way to change the storage location for any app, before or after the installation. This is okay for devices with single physical storage, but not for a Raspberry Pi or an x86 computer where the host computer might have 2 or more drives attached to it. + +The only thing that you can manage about the apps is, to either install them or remove them. The web GUI does not (yet) let you change things like the port number that a container uses. + +Remember the previous notice that if you put in a HDD/SSD at *first* boot, all data on it gets erased? Well… What happens if you re-install Umbrel? Is your previous data, which was stored by Umbrel, now deleted by Umbrel itself? I don’t see if such checks like this are present or absent. + +### Conclusion + +All in all, if you are just starting with your home lab, I do recommend you give Umbrel-a-try (I’ll show myself out)! It puts your [Raspberry Pi to some good use][17]. + +It is a beautiful web GUI for simple management of containers, which can give you a good kickstart. If you want something that “just works” without getting fine-tuned control over knobs and switches, Umbrel is a good candidate for you. + +[Deployment from Scratch][18] + +**Don't sweat** taking web applications to **production**. + +Learn the core transferable skills of setting up Linux virtual servers and containers. Provision **web servers and databases**. + +![Deployment from Scratch][19] + +[Use 'linuxhandbook' coupon code][20] + +We earn a commission if you make a purchase, at no additional cost to you. + +#### Read More Articles + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/umbrel-review/ + +作者:[Pratham Patel][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/pratham/ +[b]: https://github.com/lkxed +[1]: https://umbrel.com/ +[2]: https://youtu.be/Uu1TuE6RdKM +[3]: https://www.raspberrypi.com/documentation/computers/linux_kernel.html#default_configuration +[4]: https://github.com/getumbrel/umbrel-os#%EF%B8%8F-contributing +[5]: https://github.com/getumbrel/umbrel-os/releases/latest +[6]: https://www.balena.io/etcher/ +[7]: http://umbrel.local +[8]: https://itsfoss.com/wp-content/uploads/2022/07/umbrel-address.webp +[9]: https://itsfoss.com/wp-content/uploads/2022/07/umbrel-web-gui-800x516.webp +[10]: https://itsfoss.com/nextcloud/ +[11]: https://itsfoss.com/syncthing/ +[12]: https://itsfoss.com/wp-content/uploads/2022/07/umbrel-app-store-800x451.webp +[13]: https://github.com/getumbrel/umbrel-apps +[14]: https://itsfoss.com/wp-content/uploads/2022/07/element-install-800x451.webp +[15]: https://itsfoss.com/wp-content/uploads/2022/07/umbrel-settings-800x451.webp +[16]: https://photoprism.app/ +[17]: https://itsfoss.com/raspberry-pi-projects/ +[18]: https://itsfoss.com/go/deployment-from-scratch-link/ +[19]: https://itsfoss.com/go/deployment-from-scratch-link/ +[20]: https://itsfoss.com/go/deployment-from-scratch-link/ From 43f79fc1fd26b48f2bc58f761ac299971a2c72ae Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 18:07:59 +0800 Subject: [PATCH 0298/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220708=20Meet=20Free=20Software=20Foundation=20Exe?= =?UTF-8?q?cutive=20Director=20Zo=C3=AB=20Kooyman.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...undation Executive Director Zoë Kooyman.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md diff --git a/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md new file mode 100644 index 0000000000..b2ff2baf47 --- /dev/null +++ b/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md @@ -0,0 +1,80 @@ +[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman" +[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Meet Free Software Foundation Executive Director Zoë Kooyman +====== +Find out what the Free Software Foundation (FSF) is all about. + +![Dandelion zoomed in][1] + +Image by: Photo by Rob Tiller, CC BY-SA 4.0 + +The [Free Software Foundation (FSF)][2] started promoting the idea of sharing code way back in 1985, and since then it's defended the rights of computer users and developers. The FSF says that the terms "open" and "closed" are not effective words when classifying software, and instead considers programs either *freedom-respecting* ("free" or "libre") or *freedom-trampling* ("non-free" or "proprietary"). Whatever terminology you use, the imperative is that computers must belong, part and parcel, to the users, and not to the corporations that owns the software the computers run. This is why the GNU Project, and the Linux kernel, Freedesktop.org, and so many other open source projects are so important. + +Recently, the FSF has acquired a new executive director, Zoë Kooyman. I met Zoë in 2019 at an [All Things Open][3] conference. She wasn't yet the executive director of the FSF at that time, of course, but was managing their growing list of major events, including [LibrePlanet][4]. I was captivated by her energy and sincerity as she introduced me to a seemingly nonstop roster of people creating the freedom-respecting software I used on a *daily basis*. I had stumbled into an FSF meetup and ended up hanging out with the people who were actively defining the way I lived my digital life. These were the people who ensured that I had what Zoë Kooyman and the FSF calls the [four essential freedoms][5]: + +* The freedom to run the program as you wish, for any purpose (freedom 0). +* The freedom to study how the program works and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. +* The freedom to redistribute copies so you can help others (freedom 2). +* The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this. + +When I heard about Zoë's appointment as executive director, I emailed her for an interview and she was kind enough to take some time out of her very busy schedule to have a chat. + +**Seth Kenlon: You're the executive director of the FSF! How did you get here?** + +**Zoë Kooyman:** In my working life, I started out as an event organizer, traveling the world while producing some of the world's biggest music shows. Working with so many different cultures in ever-changing locations is exciting, as is making all the different elements of production come together, whether that's the show, technique, or the other live elements. It's a juggling game to have everything fall into place at the right moment. I spent a lot of time living and working in different countries, and learning a lot about organization and communication thanks to this work. I also studied, and worked with different forms of media, how they are experienced, and their relationship with society. + +It was in university that I first learned about copyleft. About how we can use existing structures to our benefit, and drive change. It was also then that media (as well as the Internet, and software) landscapes started changing rapidly with encroachments on freedom as a consequence. Moving to the US changed things for me. In the US, I developed a much stronger sense of urgency for matters of social responsibility, and so I decided to act on it. I was thankful to John Sullivan (the FSF executive director at that time) for hiring me based on what I knew about free software and my organizing experience, and allowed me to bring the two together. + +**Seth: How did you get into Free Software?** + +**Zoë:** We tend to expect technical people to be the main people affected by free software, but free software is a movement to defend freedom for anyone using a computer. Actually, software freedom affects members of marginalized communities who are unable to have regular access to a computer. Software shapes their lives as well. + +What the concept of copyleft, as well as the GNU Project, has achieved is exceptional. To truly observe the direction society was heading in, and say, "It doesn't have to be this way. We can take matters in our own hands." That changed my outlook on life early on. I started working on the idea of using already existing materials and reintroducing it to different subcultures. In the entertainment industry you see this all the time, the inspiration from and building on other people's work, and the result is a reflection of the time we live in, as well as a nod to history. True progression cannot happen without that freedom. + +As a commentary on copyright for film, I spent time working with the National Film Institute in the Netherlands to create a compilation of "orphaned footage" that was shown at a large scale dance event for thousands of young people in an area with a 170m panoramic screen and a live DJ playing to it. They have continued to play it regularly at events like the Dutch *Museumnacht*. + +Not being a technical person, I expressed these ideas culturally, but over the years, I was confronted with the ideas of free software more and more, and I realized that with the continued integration of software into our lives (and sometimes our bodies), the fight for free software is becoming more relevant every day. In a world where proprietary software prevails, our society will progress in a way that favors profit and the progression of the few over the freedom of many. Without free software, there are so many aspects of life, so many important social causes that cannot truly succeed. + +**Seth:** When did you start with the FSF? + +**Zoë:** Early 2019, one week before the last in-person edition of LibrePlanet. + +**Seth:** What attracted you to the Executive Director role? + +**Zoë:** The FSF is just one organization that is trying to move the needle towards a more equitable, more collaborative, and more software-literate society, but it has been at the core of the movement for a long time. Society is changing rapidly, and most people are not being properly prepared in how to deal with the digital building blocks of today's society i.e. software. This is all incredibly important work, and there are not enough people doing this work. It is important to have an organization that can handle the different challenges that lay ahead. + +The executive director role, is in a way, merely a facilitating role for the staff and the community to be able to make significant changes toward free software. I believe it is vitally important that we continue to spread the free software message, and with the team we have at the FSF, I believe we can make a real difference. I believe I can use the lessons of working with so many different cultures and people, organizing really challenging projects globally, to help get the best out of all of us. The support I received from staff, management, the community, and the board in this decision, convinced me it was a good decision to take this on. + +**Seth:** What do you see as the biggest challenges in software freedom today? What should the FSF's role be in addressing those challenges? + +**Zoë:** As software has integrated itself more and more into the basic fabric of society, it's also become more invisible. Software is now so widespread, and we've been conditioned to overlook it. We focus on what a program can do, not how it does it, let alone if it respects you as a user. And in the meantime, software is proliferating more rapidly than ever before. If people don't understand the fabric out of which a program is made, and all they do, all day, is use these programs, then how can we even begin to explain to them that they are being treated unjustly? + +The FSF's role is to bring every conversation back to this logic of user freedom, to remind us that the tools we use are not benign. Education and government adoption are important focus areas for that reason. If we get people to focus on the issue of software freedom in those areas, we will truly make a difference. Education will help make sure future generations have a chance at freedom, and free software in government is about protecting citizens from unjust influences through proprietary software (maintaining digital sovereignty). + +We can show people that today's society is teaching us a faulty lesson: that it is normal to be subjected to encroachments on your freedoms for reasons "too complex to understand." If you want convenience, connection, or just to do your job, you need to trust these organizations and abide by their will. That is not true. We have an entire community of people who believe we can have a society that doesn't ask you to surrender your freedoms to function in it. And we have this legal framework that supports our ideas. People of all backgrounds and skill levels join our conversations daily, more and more people care about their freedom, and everyone has their own reasons. We learn new things every day about how we can protect ourselves and others, and I look forward to a freer future. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman + +作者:[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/dandelion_zoom.jpg +[2]: https://www.fsf.org/ +[3]: https://www.allthingsopen.org/ +[4]: https://libreplanet.org +[5]: https://www.gnu.org/philosophy/free-sw.en.html From 5a5d9b83c7e375f6ff6c1019e59ed7718f2a4296 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 8 Jul 2022 18:22:47 +0800 Subject: [PATCH 0299/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=B0=E9=97=BB?= =?UTF-8?q?=EF=BC=9A=E5=90=8C=E4=B8=80=E4=B8=AA=E4=BA=8B=E4=BB=B6=E9=80=89?= =?UTF-8?q?=E4=BA=86=E7=AF=87=E6=9B=B4=E5=A5=BD=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...on Tool That Works Across 200 Languages.md | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md diff --git a/sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md b/sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md deleted file mode 100644 index 3413146c81..0000000000 --- a/sources/news/20220707 Meta Open Sources AI Translation Tool That Works Across 200 Languages.md +++ /dev/null @@ -1,36 +0,0 @@ -[#]: subject: "Meta Open Sources AI Translation Tool That Works Across 200 Languages" -[#]: via: "https://www.opensourceforu.com/2022/07/meta-open-sources-ai-translation-tool-that-works-across-200-languages/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Meta Open Sources AI Translation Tool That Works Across 200 Languages -====== -![meta-company-values-620c6c6c6a862-sej][1] - -Meta has developed a single artificial intelligence (AI)-based model capable of translating across 200 different languages, including many that are not currently supported by commercial tools. - -The company, according to [The Verge][2], is open sourcing the project in the hopes that others will build on its work. The Al model is part of Meta’s ambitious R&D project to develop a “universal speech translator,” which the company sees as critical for growth across its many platforms, from Facebook and Instagram to developing domains like VR and AR. - -Machine translation not only allows Meta to better understand its users (and thus improve the advertising systems that generate 97% of its revenue), but it could also serve as the foundation for a game-changing app for future projects such as its augmented reality glasses. - -Experts in machine translation told the website that Meta’s latest research was ambitious and thorough, but that the quality of some of the model’s translations would likely be significantly lower than that of better-supported languages such as Italian or German. Angela Fan, a META AI research scientist who worked on the project, stated that the team was inspired by the lack of attention given to such low-resource languages in this field. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/07/meta-open-sources-ai-translation-tool-that-works-across-200-languages/ - -作者:[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/07/meta-company-values-620c6c6c6a862-sej-e1657192290105.png -[2]: https://www.theverge.com/2022/7/6/23194241/meta-facebook-ai-universal-translation-project-no-language-left-behind-open-source-model From a5682325b7cd5c90e4f544752845a0a56c649661 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 22:49:14 +0800 Subject: [PATCH 0300/3123] A --- ...20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md b/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md index cc4d8e738d..ab8ff5eb66 100644 --- a/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md +++ b/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/fedora-raspberry-pi-4/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b6eff6be13fe16cebab2e1c9b043343adb8fb42c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 8 Jul 2022 23:03:43 +0800 Subject: [PATCH 0301/3123] RP @wxy https://linux.cn/article-14808-1.html --- ... Pi 4 Support is Coming to Fedora Linux.md | 66 +++++++++++++++++++ ... Pi 4 Support is Coming to Fedora Linux.md | 65 ------------------ 2 files changed, 66 insertions(+), 65 deletions(-) create mode 100644 published/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md delete mode 100644 sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md diff --git a/published/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md b/published/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md new file mode 100644 index 0000000000..d178afd6dd --- /dev/null +++ b/published/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md @@ -0,0 +1,66 @@ +[#]: subject: "Raspberry Pi 4 Support is Coming to Fedora Linux" +[#]: via: "https://news.itsfoss.com/fedora-raspberry-pi-4/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14808-1.html" + +Fedora Linux 37 即将正式支持树莓派 4 +====== + +> 由于上游的一些改进,Fedora Linux 37 将引入对树莓派 4 的正式支持。 + +![Fedora raspberry pi][1] + +Fedora Linux 的工作站版很适合台式机使用。不过,如果你想让它用于服务器或物联网需求,可以使用 Fedora ARM 项目。 + +它也支持树莓派,只是最新的树莓派 4 除外(其实早在 2019 年就发布了)。 + +现在,随着 [Phoronix][2] 发现的一项拟议的变化,看起来 Fedora Linux 37 可能会正式增加对树莓派 4 的支持。 + +### 目前还不是正式的... + +到现在为止,对树莓派 4 的支持只是一个拟议的变化。 + +Fedora Linux 通常会公开其拟议的变化列表,以接受社区反馈并让其他人跟踪其进展。 + +所以,Fedora Linux 37 中的正式支持只有在得到 Fedora 工程指导委员会的批准后才会实施。 + +但是,**支持树莓派 4 的阻碍是什么呢?** + +这是由于缺乏加速图形以及缺失一些功能,所以不方便增加对它的支持。 + +现在,随着新的 Linux 内核和 Mesa 的上游工作为树莓派 4 带来了图形加速功能,可以让他们启用对它的支持。 + +拟议的变化文件中提到: + +> 上游现在支持使用 V3D GPU 的 OpenGL-ES 和 Vulkan 加速图形。对有线网络也有增强,支持 CM4/4B 上的 PTPv2。 + +此外,不仅仅是引入对树莓派 4 的支持,一些拟议的变化还涉及对树莓派 3 系列和 Zero 2 W 的改进。 + +因此,如果如人们所期望的那样发生,这应该是一个有趣的变化。 + +请注意,对树莓派 400 的 Wi-Fi 的支持不是这个过程的一部分,但对音频支持的测试将是这个变化的一部分。 + +你可以在 [拟议文件][3] 中阅读所有的细节。 + +你对 Fedora Linux 37 对树莓派 4 的支持有什么看法?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fedora-raspberry-pi-4/ + +作者:[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/07/fedora-coming-to-raspberry-pi.jpg +[2]: https://www.phoronix.com/scan.php?page=news_item&px=Fedora-37-Raspberry-Pi-4 +[3]: https://fedoraproject.org/wiki/Changes/RaspberryPi4 diff --git a/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md b/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md deleted file mode 100644 index ab8ff5eb66..0000000000 --- a/sources/news/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md +++ /dev/null @@ -1,65 +0,0 @@ -[#]: subject: "Raspberry Pi 4 Support is Coming to Fedora Linux" -[#]: via: "https://news.itsfoss.com/fedora-raspberry-pi-4/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Raspberry Pi 4 Support is Coming to Fedora Linux -====== -Fedora Linux 37 to introduce the official support for Raspberry Pi 4, thanks to several improvements in the upstream. - -![fedora raspberry pi][1] - -Fedora Linux is well-suited for desktops with its workstation edition. And, if you want it for a server or IoT requirements, you also have the Fedora ARM project. - -It also supports Raspberry Pi boards, except for the recent Raspberry Pi 4 (released back in 2019). - -Now, with a proposed change spotted by [Phoronix][2], it looks like Fedora Linux 37 might be the version adding official support for Raspberry Pi 4. - -### It’s Not Official Yet… - -As of now, enabling support for Raspberry Pi 4 is just a proposed change. - -Fedora Linux usually has its list of proposed changes visible to the public to receive community feedback and let others track them. - -So, the official support in Fedora Linux 37 will only be implemented if it is approved by the Fedora Engineering Steering Committee. - -But, **what was the hold-up?** - -The lack of accelerated graphics and a few missing features did not make it convenient to add support for it. - -Now, with upstream work on newer Linux Kernel and Mesa on bringing graphics acceleration for Raspberry Pi 4, it lets them enable the support for it. - -The proposed change document mentions: - -> Upstream now supports accelerated graphics using the V3D GPU for both OpenGL-ES and Vulkan. There’s also enhancement to wired networking with support for PTPv2 on the CM4/4B. - -Additionally, not just introducing support for Raspberry Pi 4, some of the proposed changes also involve improvements to the Raspberry Pi 3 series and the Zero 2 W. - -So, it should be an interesting change if it happens as one would expect. - -Note that the support for Wi-Fi on Raspberry Pi 400 is not a part of this process but testing for audio support will be a part of this change. - -You can read all the details in the [proposed document][3]. - -What do you think about the support for Raspberry Pi 4 on Fedora Linux 37? Share your thoughts in the comments down below. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/fedora-raspberry-pi-4/ - -作者:[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/07/fedora-coming-to-raspberry-pi.jpg -[2]: https://www.phoronix.com/scan.php?page=news_item&px=Fedora-37-Raspberry-Pi-4 -[3]: https://fedoraproject.org/wiki/Changes/RaspberryPi4 From 06ae73563b610bde9629d92657573690623a8b8a Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 9 Jul 2022 00:14:34 +0800 Subject: [PATCH 0302/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220708=20Reptyr=20=E2=80=93=20Move=20A=20Running?= =?UTF-8?q?=20Process=20From=20One=20Terminal=20To=20Another=20Without=20C?= =?UTF-8?q?losing=20It.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ne Terminal To Another Without Closing It.md | 416 ++++++++++++++++++ 1 file changed, 416 insertions(+) create mode 100644 sources/tech/20220708 Reptyr – Move A Running Process From One Terminal To Another Without Closing It.md diff --git a/sources/tech/20220708 Reptyr – Move A Running Process From One Terminal To Another Without Closing It.md b/sources/tech/20220708 Reptyr – Move A Running Process From One Terminal To Another Without Closing It.md new file mode 100644 index 0000000000..868de4e8b5 --- /dev/null +++ b/sources/tech/20220708 Reptyr – Move A Running Process From One Terminal To Another Without Closing It.md @@ -0,0 +1,416 @@ +[#]: subject: "Reptyr – Move A Running Process From One Terminal To Another Without Closing It" +[#]: via: "https://ostechnix.com/reptyr-move-running-process-new-terminal/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Reptyr – Move A Running Process From One Terminal To Another Without Closing It +====== +This step by step tutorial explains what is **Reptyr** application and how to **move a running process to a new terminal using Reptyr command in Linux and Unix** operating systems. + +### Introduction + +Let us say, you are running a task in a remote server via a SSH session from your local system. + +When you started the task, you didn't know that the remote job would take long time to complete. You just want to leave the running job on the remote server itself, and close the SSH session without terminating the remote job, and then re-attach it to the SSH session later or at the next day. + +Of course, you can start the job in screen or tmux session, and detach from the screen session without exiting the remote job, and exit SSH session. + +But if you forgot to start the screen session in the first place, there is no way to reattach to the running process later. Once you closed the SSH session, the running processes will also be closed on the remote system. + +So, what would you do in such situation? Worry not! Here is where Reptyr command comes in help. + +### What Is Reptyr? + +**Reptyr** is a command line tool for moving running processes between ptys. + +Using Reptyr, we can easily migrate or move a long-running process from one Terminal to another Terminal instantly without terminate it. Reptyr uses **ptrace** system call to attach to the target program. + +Just start a long-running process on your remote system via SSH session from your local machine, and close the SSH session, go home, and re-attach the running process on the next day. + +Reptyr is an opensource command line application. It supports both Linux and FreeBSD. + +### Install Reptyr In Your Remote Linux Systems + +First of all, make sure you've installed **tmux** or **screen** in your remote systems in-order to move running process from local terminal to remote terminal. If you haven't installed tmux/screen yet, refer the following links. + +> **[Tmux Commands Examples To Manage Multiple Terminal Sessions In Linux][1]** + +> **[Screen Command Examples To Manage Multiple Terminal Sessions][2]** + +Next, you should install Reptyr application on your REMOTE systems. + +To install Reptyr in Arch Linux and its derivatives such as Endeavour OS and Manjaro Linux, run: + +``` +$ sudo pacman -S reptyr +``` + +In Debian, Ubuntu, Linux Mint, Pop!_OS, run the following command to install Reptyr: + +``` +$ sudo apt install reptyr +``` + +On Fedora, RHEL, CentOS, AlmaLinux, and Rocky Linux, reptyr can be installed from **EPEL** repository. + +To install EPEL repository in RHEL-based systems, run the following commands: + +``` +$ sudo dnf config-manager --set-enabled powertools +``` + +``` +$ sudo dnf install epel-release +``` + +After enabling EPEL repository, run the following command to install Reptyr: + +``` +$ sudo dnf install reptyr +``` + +### Install Reptyr From Source + +Install the necessary development tools as described in the following link. + +> **[How To Install Development Tools In Linux][3]** + +Git clone reptyr repository with command as `root` or `sudo` user: + +``` +$ git clone https://github.com/nelhage/reptyr.git +``` + +Go to the reptyr directory: + +``` +$ cd reptyr/ +``` + +Run the following commands to compile and install it. + +``` +$ make +``` + +``` +$ sudo make install +``` + +I compiled and installed Reptyr from source in CentOS 7 64 bit server edition, and it worked pretty good as described above. + +### Move A Running Process From One Terminal To Another Without Closing It Using Reptyr + +Make sure you installed the following on your remote Linux systems. + +* Reptyr. +* Tmux or Screen. + +#### Example 1: + +For demonstration purpose, I will be using the following system. + +* Remote system - Debian 11 Bullseye (username - ostechnix, IP - 192.168.1.20) + +##### Step 1 - SSH Into The Remote System + +Usually, we connect to the remote server from any local system via SSH as shown below. + +``` +ssh remote_username@IP_of_remote_system +``` + +I am going to SSH into my remote system(AlmaLinux 8) from my local system(Debian 11). + +``` +$ ssh ostechnix@192.168.1.20 +``` + +![SSH Into A Remote Linux System][4] + +Here, "ostechnix" is the remote system's username and "192.168.1.20" is the remote system's IP address. Replace these two values with your own. + +##### Step 2 - Start a Long-running Process + +After connecting to the remote system, start any long-running process. I will start "top" command. + +``` +$ top +``` + +Here is "top" command running in my AlmaLinux connected via SSH. Let us call it **Terminal 1**. + +![Running Top Command In Remote Linux System][5] + +As you see in the above output, I run "top" command in Debian 11 virtual machine via SSH from my local system. The top command will keep running until we manually stop it by pressing **CTRL+C**. + +What we are going to do now is simply move the top command process inside the tmux or screen session of our remote system(i.e. Debian 11) using Reptyr. And then we finally close the SSH session in our local system. During the transition, the top command will keep running without any interruption. + +##### Step 3 - Background The Process + +Now press **CTRL+Z** to put the process in the background. And then run **bg** to resume the process in the background. + +``` +$ bg +``` + +Verify the running background jobs with `jobs` command: + +``` +$ jobs -l +``` + +Here, the **-l** flag will list the PID of the background job. + +You will see the following output. + +``` +[1]+ 1972 Stopped (signal) top +``` + +![Background The Process][6] + +Note down the PID. We will need it later to attach the process to remote terminal. Here, the PID of top command is **1972**. + +##### Step 4 - Disown The Process + +Disown the running process from the current parent using command: + +``` +$ disown top +``` + +**Sample output:** + +``` +-bash: warning: deleting stopped job 1 with process group 1972 +``` + +Now the `jobs -l` command will not show the job anymore, but the **ps -a** command will. + +``` +$ ps -a + PID TTY TIME CMD + 1972 pts/1 00:00:00 top + 2061 pts/1 00:00:00 ps +``` + +![Disown The Process][7] + +##### Step 5 - Start A Tmux Or Screen Session + +Start a new Tmux or Screen session in the same terminal or new terminal window. For the sake of easy understanding, I am going to call the new tmux session as **Terminal 2**. + +``` +$ tmux +``` + +![Start A New Tmux Session][8] + +Please note that you should start the tmux/screen multiplexer in the remote(Debian 11) console, not in our local system's console. + +##### Step 6 - Attach To The Background Process + +Remember we put the top command in the background in **Step 3**. The PID of the background process is **1972**. If you don't remember the PID, run `ps -a` command. + +Now, attach to the background process with Reptyr using command: + +``` +$ reptyr 1972 +``` + +![Attach To The Background Process using Reptyr][9] + +That's it. We have successfully moved the background process inside the tmux sesssion. + +![Top Command Is Moved Into The Tmux Session][10] + +You can now safely detach from the Tmux session by pressing **CTRL+B** and **D**. It will only close the tmux session, but not the process(top command) which is running inside of it. + +We are back to the Terminal 1. Verify the list of active Tmux panes using command: + +``` +$ tmux list-panes -F '#{pane_active} #{pane_pid}' +1 2072 +``` + +Here, + +* pane_active will show 1 if active pane. +* pane_pid is the PID of first process in pane. + +##### Step 7 - Close The SSH Connection + +You can now close the SSH session. The process(Top command in our case) will keep running inside the Tmux session of your remote system as long as your remote system is up. Closing the SSH connection will not terminate the process. + +##### Step 8 - Reattach To Tmux + +To reattach to the process, simply SSH to your remote system: + +``` +$ ssh remote_user@remote_ip +``` + +And run the following command to attach the tmux session where the top process is still running. + +``` +$ tmux attach +``` + +![Reattach To Tmux][11] + +You will now see the running process inside the Tmux session. + +This way you can start any number of Tmux panes and move the running processes inside to each pane. + +Let me show you another example. + +#### Example 2: + +In this example, I use how to move a running process (E.g. wget) in CentOS server. + +**Step 1** - SSH into Remote system. + +**Step 2** - After you connected to the remote system, start a long-running process. For example, I am going to download Ubuntu 16.04 desktop ISO with **wget** command. + +``` +# wget http://cdimage.ubuntu.com/daily-live/current/xenial-desktop-amd64.iso +``` + +**Sample output:** + +![Download Ubuntu ISO][12] + +As you see in the above screenshot, the total download size is 1.5GB, and it will take more than 90 minutes to complete. + +I don't want to wait that much longer, and also I don't want to quit the remote job either. + +So, what I am going to do now is start a **screen** or **tmux** session in a new terminal, use **reptyr** utility to grab the running process inside the screen or tmux session.  Finally, I will terminate both ssh sessions, and reattach to the running process whenever I want. + +**Step 3** - Let us open a new terminal window or new tab, and start a screen or tmux session by typing **screen** or **tmux** in the terminal: + +``` +# screen +``` + +or + +``` +# tmux +``` + +![Start A Screen Session][13] + +As you see in the above screenshot, the screen session has been started and it is running. + +**Step 4** - Now, let us find the the running processes from the new Terminal by using the following command: + +``` +# ps -a +``` + +**Sample output:** + +``` +PID TTY TIME CMD + 2320 pts/0 00:00:11 wget + 2343 pts/1 00:00:00 screen + 2358 pts/2 00:00:00 ps +``` + +Note down the PID for the **wget** process, and attach the running process inside screen session using command: + +``` +# reptyr 2320 +``` + +![Attach The Running Process Inside Screen Session Using Reptyr][14] + +Done! As you see in the above screenshot, wget process has been moved (migrated) from old terminal to the new terminal window (the one running with screen session). + +Once you moved the running process from the original terminal (i.e. remote terminal), it will be closed immediately in the local terminal, and start to continue where we left it off in the new terminal. + +![Wget Download Process Is Stopped][15] + +**Step 5** - Now, you can safely detach or close the terminal and the job will continue running on your remote server. + +To detach from screen session, press **CTRL+A**and**D**. If it is Tmux session, press CTRL+B and D. + +After you detached from screen session, you will see the following output. + +``` +[detached from 2344.pts-1.server1] +``` + +**Step 6** - To reattach the running process, SSH to your remote system: + +``` +# ssh root@192.168.1.150 +``` + +Here. 192.168.1.150 is my remote server IP address. + +**Step 7** - And run the following if you use screen session: + +``` +# screen -Dr +``` + +For tmux session, run: + +``` +# tmux attach +``` + +Voila! The running process has been reattached again, and you'll see there that the download process is still running. + +![Move A Running Process From One Terminal To Another Using Reptyr][16] + +As you see in the above screenshot, wget job isn't interrupted or terminated, and is still running. It will continue to run as long as your remote system is up and running. + +### Summary + +To summing up, Reptyr is very very important and useful tool for a Linux users and system administrators of any level. In case you fed up with a process that took a really long time to complete, Reptyr will definitely be helpful. Just open a new Terminal window, SSH to your remote server, find the running processes ID, and safely move them inside the screen or tmux sessions, and exit from the SSH session. For further details, refer the links attached at the end of this tutorial. + +That's all for now folks. Well then, I leave you to get acquainted with this useful tool. Give it a try, and you won't be disappointed. + +**Resources:** + +* [Reptyr GitHub][17] +* [Reptyr guide][18] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/reptyr-move-running-process-new-terminal/ + +作者:[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/tmux-command-examples-to-manage-multiple-terminal-sessions/ +[2]: https://ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/ +[3]: https://ostechnix.com/install-development-tools-linux/ +[4]: https://ostechnix.com/wp-content/uploads/2022/07/SSH-Into-A-Remote-Linux-System.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Running-Top-Command-In-Remote-Linux-System.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/Background-The-Process-2.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Disown-The-Process-2.png +[8]: https://ostechnix.com/wp-content/uploads/2022/07/Start-A-New-Tmux-Session-1.png +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Attach-To-The-Background-Process-using-Reptyr.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/Top-Command-Is-Moved-Into-The-Tmux-Session.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Reattach-To-Tmux.png +[12]: https://ostechnix.com/wp-content/uploads/2016/03/root@server1_002-2.jpg +[13]: https://ostechnix.com/wp-content/uploads/2016/03/screen-0-root@server1-_003-1.jpg +[14]: https://ostechnix.com/wp-content/uploads/2016/03/screen-0-root@server1-_004-1.jpg +[15]: https://ostechnix.com/wp-content/uploads/2016/03/root@server1_005-1-1.jpg +[16]: https://ostechnix.com/wp-content/uploads/2016/03/screen-0-root@server1-_009-1.jpg +[17]: https://github.com/nelhage/reptyr +[18]: https://blog.nelhage.com/2011/02/changing-ctty/ From 66377a19ab2b22366973dcc71b8210e332f51861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Sat, 9 Jul 2022 11:49:09 +0800 Subject: [PATCH 0303/3123] Translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit object file,在C++教程中,一般翻译成 目标文件 。在nasm编译器的文档中,obj存在多种释义(或者说没有实际意义了)。在延边大学《大学计算机基础》-“河北科技大学”录制的 专升本 继续教育的视频中,也存在 目标文件 的情况,在编译器方面有比较详细的介绍,目标文件 是计算机可以直接运行的文件,解释型语言-前期目标文件 / 后期目标文件 ,编译型语言-源文件代码生成的汇编代码,因此,翻译成 目标文件 是不合适的 --- ...ng for modular libraries works on Linux.md | 223 ------------------ ...ng for modular libraries works on Linux.md | 223 ++++++++++++++++++ 2 files changed, 223 insertions(+), 223 deletions(-) delete mode 100644 sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md create mode 100644 translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md diff --git a/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md b/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md deleted file mode 100644 index dd79c84de2..0000000000 --- a/sources/tech/20220531 How dynamic linking for modular libraries works on Linux.md +++ /dev/null @@ -1,223 +0,0 @@ -[#]: subject: "How dynamic linking for modular libraries works on Linux" -[#]: via: "https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux" -[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How dynamic linking for modular libraries works on Linux -====== -Learn how to combine multiple C object files into single executable with dynamic libraries. - -![Links][1] - -Image by: Paul Lewin. Modified by Opensource.com. CC BY-SA 2.0 - -When you write an application using the C programming language, your code usually has multiple source files. - -Ultimately, these files must be compiled into a single executable. You can do this by creating either static or dynamic libraries (the latter are also referred to as shared libraries). These two types of libraries vary in how they are created and linked. Both have advantages and disadvantages, depending on your use case. - -Dynamic linking is the most common method, especially on Linux systems. Dynamic linking keeps libraries modular, so just one library can be shared between any number of applications. Modularity also allows a shared library to be updated independently of the applications that rely upon it. - -In this article, I demonstrate how dynamic linking works. In a future article, I'll demonstrate static linking. - -### Linker - -A linker is a command that combines several pieces of a program together and reorganizes the memory allocation for them. - -The functions of a linker include: - -* Integrating all the pieces of a program -* Figuring out a new memory organization so that all the pieces fit together -* Reviving addresses so that the program can run under the new memory organization -* Resolving symbolic references - -As a result of all these linker functionalities, a runnable program called an executable is created. Before you can create a dynamically linked executable, you need some libraries to link *to* and an application to compile. Get your [favorite text editor][2] ready and follow along. - -### Create the object files - -First, create the header file `mymath.h` with these function signatures: - -``` -int add(int a, int b); -int sub(int a, int b); -int mult(int a, int b); -int divi(int a, int b); -``` - -Create `add.c`, `sub.c` , `mult.c` and `divi.c` with these function definitions. I'm placing all of the code in one code block, so divide it up among four files, as indicated in the comments: - -``` -// add.c -int add(int a, int b){ -return (a+b); -} - -//sub.c -int sub(int a, int b){ -return (a-b); -} - -//mult.c -int mult(int a, int b){ -return (a*b); -} - -//divi.c -int divi(int a, int b){ -return (a/b); -} -``` - -Now generate object files `add.o`, `sub.o`, `mult.o`, and `divi.o` using GCC: - -``` -$ gcc -c add.c sub.c mult.c divi.c -``` - -The `-c` option skips the linking step and creates only object files. - -### Creating a shared object file - -Dynamic libraries are linked during the execution of the final executable. Only the name of the dynamic library is placed in the final executable. The actual linking happens during runtime, when both executable and library are placed in the main memory. - -In addition to being sharable, another advantage of a dynamic library is that it reduces the size of the final executable file. Instead of having a redundant copy of the library, an application using a library includes only the name of the library when the final executable is created. - -You can create dynamic libraries from your existing sample code: - -``` -$ gcc -Wall -fPIC -c add.c sub.c mult.c divi.c -``` - -The option `-fPIC` tells GCC to generate position-independent code (PIC). The `-Wall` option isn't necessary and has nothing to do with how the code is compiling. Still, it's a valuable option because it enables compiler warnings, which can be helpful when troubleshooting. - -Using GCC, create the shared library `libmymath.so` : - -``` -$ gcc -shared -o libmymath.so \ -add.o sub.o mult.o divi.o -``` - -You have now created a simple example math library, `libmymath.so`, which you can use in C code. There are, of course, very complex C libraries out there, and this is the process their developers use to generate the final product that you or I install for use in C code. - -Next, you can use your new math library in some custom code, then link it. - -### Creating a dynamically linked executable - -Suppose you've written a command for mathematics. Create a file called `mathDemo.c` and paste this code into it: - -``` -#include -#include -#include - -int main() -{ -  int x, y; -  printf("Enter two numbers\n"); -  scanf("%d%d",&x,&y); -  -  printf("\n%d + %d = %d", x, y, add(x, y)); -  printf("\n%d - %d = %d", x, y, sub(x, y)); -  printf("\n%d * %d = %d", x, y, mult(x, y)); - -  if(y==0){ -    printf("\nDenominator is zero so can't perform division\n"); -      exit(0); -  }else{ -      printf("\n%d / %d = %d\n", x, y, divi(x, y)); -      return 0; -  } -} -``` - -Notice that the first line is an `include` statement referencing, by name, your own `libmymath` library. To use a shared library, you must have it installed. If you don't install the library you use, then when your executable runs and searches for the included library, it won't be able to find it. Should you need to compile code without installing a library to a known directory, there are [ways to override default settings][3]. For general use, however, it's expected that libraries exist in known locations, so that's what I'm demonstrating here. - -Copy the file `libmymath.so` to a standard system directory, such as `/usr/lib64`, and then run `ldconfig`. The `ldconfig` command creates the required links and cache to the most recent shared libraries found in the standard library directories. - -``` -$ sudo cp libmymath.so /usr/lib64/ -$ sudo ldconfig -``` - -### Compiling the application - -Create an object file called `mathDemo.o` from your application source code (`mathDemo.c` ): - -``` -$ gcc -I . -c mathDemo.c -``` - -The `-I` option tells GCC to search for header files (`mymath.h` in this case) in the directory listed after it. In this case, you're specifying the current directory, represented by a single dot (`.` ). Create an executable, referring to your shared math library by name using the `-l` option: - -``` -$ gcc -o mathDynamic mathDemo.o -lmymath -``` - -GCC finds `libmymath.so` because it exists in a default system library directory. Use `ldd` to verify the shared libraries used: - -``` -$ ldd mathDemo -    linux-vdso.so.1 (0x00007fffe6a30000) -    libmymath.so => /usr/lib64/libmymath.so (0x00007fe4d4d33000) -    libc.so.6 => /lib64/libc.so.6 (0x00007fe4d4b29000) -    /lib64/ld-linux-x86-64.so.2 (0x00007fe4d4d4e000) -``` - -Take a look at the size of the `mathDemo` executable: - -``` -$ du ./mathDynamic -24   ./mathDynamic -``` - -It's a small application, of course, and the amount of disk space it occupies reflects that. For comparison, a statically linked version of the same code (as you'll see in my next article) is 932K! - -``` -$ ./mathDynamic -Enter two numbers -25 -5 - -25 + 5 = 30 -25 - 5 = 20 -25 * 5 = 125 -25 / 5 = 5 -``` - -You can verify that it's dynamically linked with the `file` command: - -``` -$ file ./mathDynamic -./mathDynamic: ELF 64-bit LSB executable, x86-64, -dynamically linked, -interpreter /lib64/ld-linux-x86-64.so.2, -with debug_info, not stripped -``` - -Success! - -### Dynamically linking - -A shared library leads to a lightweight executable, as the linking happens during runtime. Because it resolves references during runtime, it does take more time for execution. However, since the vast majority of commands on everyday Linux systems are dynamically linked and on modern hardware, the time saved is negligible. Its inherent modularity is a powerful feature for developers and users alike. - -In this article, I described how to create dynamic libraries and link them into a final executable. I'll use the same source code to create a statically linked executable in my next article. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux - -作者:[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/links.png -[2]: https://opensource.com/article/21/2/open-source-text-editors -[3]: https://opensource.com/article/22/5/compile-code-ldlibrarypath diff --git a/translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md b/translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md new file mode 100644 index 0000000000..ba77ff4d47 --- /dev/null +++ b/translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md @@ -0,0 +1,223 @@ +[#]: subject: "How dynamic linking for modular libraries works on Linux" +[#]: via: "https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 上动态链接模块库 +====== +学习如何将多个 C 对象object 文件组合到一个带有动态库的单个可执行文件文件之中 + +![Links][1] + +图片作者: Paul Lewin ,由 Opensource.com 稍微修改,CC BY-SA 2.0 + +当不使用 C 编程语言编写一个应用程序时,你的代码通常有多个源文件代码。 + +归根结底,这些文件必需被编译到一个单个的可执行文件之中。你可以通过创建静态或动态库 (后者也被称为 共享shared 库) 来实现这一点。这两种类型的库在创建和链接方面有所差异。两者都有缺点和优点,这取决于你的使用实例。 + +动态链接是最常见的方法,由其是在 Linux 系统上。动态链接会保持库模块化,因此,很多应用程序可以共享一个库。应用程序的模块化也允许单独更新其依赖的共享库。 + +在这篇文章中,我将演示动态链接是如何工作的。在后期的文章中,我将演示静态链接。 + +### 链接器 + +链接器是一个命令,它将一个程序的数个部分组合到一起,并为它们重新组织存储器分配。 + +链接器的功能包括: + +* 集成一个程序的所有的部分 +* 计算组织出一个新的存储器结构,以便所有的部分组合在一起 +* 重新复活存储器地址,以便程序可以在新的存储器组织下运行 +* 解析符号引用 + +作为这些链接器功能的结果,创建了一个名称为可执行文件的一个可运行程序。在你创建一个动态链接的可执行文件前,你需要一些将被链接 *到* 的库,和一个应用程序来编译。准备好你 [最喜欢的文本编辑器][2] 并继续。 + +### 创建 对象object 文件 + +首先,创建带有这些函数识别标志的头文件 `mymath.h` : + +``` +int add(int a, int b); +int sub(int a, int b); +int mult(int a, int b); +int divi(int a, int b); +``` + +使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件。我将把所有的代码都放置到一个代码块中,因此将其分为四个文件,如注释所示: + +``` +// add.c +int add(int a, int b){ +return (a+b); +} + +//sub.c +int sub(int a, int b){ +return (a-b); +} + +//mult.c +int mult(int a, int b){ +return (a*b); +} + +//divi.c +int divi(int a, int b){ +return (a/b); +} +``` + +现在,使用 GCC 来创建对象文件 `add.o`、`sub.o`、`mult.o` 和 `divi.o` : + +``` +$ gcc -c add.c sub.c mult.c divi.c +``` + +`-c` 选项跳过链接步骤,并且只创建对象文件。 + +### 创建一个共享的对象文件 + +在最终可执行文件的执行过程中将链接动态库。在最终可执行文件中仅放置动态库的名称。实际上的链接过程发生在运行时,在此期间,可执行文件和库都被放置到了主存储器之中。 + +除了可共享外,动态库的另外一个优点是它减少最终可执行文件的大小。在一个应用程序的最终可执行文件生成时,其使用的库只包括该库的名称,而不再包含该库的一个多余的副本。 + +你可以从你现有的示例代码中创建动态库: + +``` +$ gcc -Wall -fPIC -c add.c sub.c mult.c divi.c +``` + +选项 `-fPIC` 告诉 GCC 来生成位置独立代码 (PIC) 。`-Wall` 选项不是必需的,并且与代码的编译方式是无关的。不过,它却是有价值的选项,因为它会启用编译器警告,这在解决难题时是很有帮助的。 + +使用 GCC ,创建共享库 `libmymath.so` : + +``` +$ gcc -shared -o libmymath.so \ +add.o sub.o mult.o divi.o +``` + +现在,你已经创建了一个简单的示例数学库 `libmymath.so` ,你可以在 C 代码中使用它。当然,这里有非常复杂的 C 库,这就是他们这些开发者来生成最终产品的工艺流程,你和我可以安装这些库并在 C 代码中使用。 + +接下来,你可以在一些自定义代码中使用你的新的数学库,然后链接它。 + +### 创建一个动态链接的可执行文件 + +假设你已经为数学运算编写了一个命令。创建一个名称为 `mathDemo.c` 的文件,并将这些代码复制粘贴至其中: + +``` +#include +#include +#include + +int main() +{ + int x, y; + printf("Enter two numbers\n"); + scanf("%d%d",&x,&y); + + printf("\n%d + %d = %d", x, y, add(x, y)); + printf("\n%d - %d = %d", x, y, sub(x, y)); + printf("\n%d * %d = %d", x, y, mult(x, y)); + + if(y==0){ + printf("\nDenominator is zero so can't perform division\n"); + exit(0); + }else{ + printf("\n%d / %d = %d\n", x, y, divi(x, y)); + return 0; + } +} +``` + +注意:第一行是一个 `include` 语句,通过名称来引用你自己的 `libmymath` 库。为使用一个共享库,你必须已经安装了它,如果你没有安装你将要使用的库,那么当你的可执行文件在运行和搜索其包含的库时,它将不能找到共享库。在已知目录中未安装所需库的情况下,你需要能够编译代码,这里有 [一些方法来重写默认的设置][3]。不过,对于一般使用来说,库存在于已知位置是可以预期的,因此,这就是我在这里演示的东西。 + +复制文件 `libmymath.so` 到一个标准的系统目录,例如:`/usr/lib64`, 然后运行 `ldconfig` 。`ldconfig` 命令会在标准库目录中创建所需要的链接,并将其缓存到可找到的最近的共享库。 + +``` +$ sudo cp libmymath.so /usr/lib64/ +$ sudo ldconfig +``` + +### 编译应用程序 + +从你的应用程序源文件代码 (`mathDemo.c`) 中创建一个名称为 `mathDemo.o` 的对象文件: + +``` +$ gcc -I . -c mathDemo.c +``` + +`-I` 选项告诉 GCC 来在其后所列出的目录中搜索头文件 (在这个实例中是 `mymath.h` )。在这个实例中,你正在具体指定当前目录,通过一个单个点 (`.` ) 来表示。创建一个可执行文件,使用 `-l` 选项来通过名称来引用到你的共享数学库: + +``` +$ gcc -o mathDynamic mathDemo.o -lmymath +``` + +GCC 会找到 `libmymath.so` ,因为它存在于一个默认的系统库目录中。使用 `ldd` 来查证所使用的共享库: + +``` +$ ldd mathDemo + linux-vdso.so.1 (0x00007fffe6a30000) + libmymath.so => /usr/lib64/libmymath.so (0x00007fe4d4d33000) + libc.so.6 => /lib64/libc.so.6 (0x00007fe4d4b29000) + /lib64/ld-linux-x86-64.so.2 (0x00007fe4d4d4e000) +``` + +看看 `mathDemo` 可执行文件的大小: + +``` +$ du ./mathDynamic +24 ./mathDynamic +``` + +当然,它是一个小的应用程序,它所占用的磁盘空间量也反映了这一点。相比之下,相同代码的一个静态链接版本 (正如你将在我后期的文章所看到的一样) 是 932K ! + +``` +$ ./mathDynamic +Enter two numbers +25 +5 + +25 + 5 = 30 +25 - 5 = 20 +25 * 5 = 125 +25 / 5 = 5 +``` + +你可以使用 `file` 命令来查证它是动态链接的: + +``` +$ file ./mathDynamic +./mathDynamic: ELF 64-bit LSB executable, x86-64, +dynamically linked, +interpreter /lib64/ld-linux-x86-64.so.2, +with debug_info, not stripped +``` + +成功! + +### 动态链接 + +因为链接发生在运行时,所以,使用一个共享库会导致产生一个轻量型的可执行文件。因为它在运行时解析引用,所以它会花费更多的执行时间。不过,因为 在日常使用的 Linux 系统上绝大多数的命令是动态链接的,并且在现代硬件上,所以和使用静态编译程序所能节省的时间相比是可以忽略的。对开发者和用户来说,它的固有模块性是一种强大的特色功能。 + +在这篇文章中,我描述了如何创建动态库并将其链接到一个最终可执行文件。在我的下一篇文章中,我将使用相同的源文件代码来创建一个静态链接的可执行文件。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux + +作者:[Jayashree Huttanagoudar][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://opensource.com/users/jayashree-huttanagoudar +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/links.png +[2]: https://opensource.com/article/21/2/open-source-text-editors +[3]: https://opensource.com/article/22/5/compile-code-ldlibrarypath From 9d161ee11216acacf1b3ec6a1118562c40ae0263 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 9 Jul 2022 12:35:17 +0800 Subject: [PATCH 0304/3123] RP @geekpi https://linux.cn/article-14809-1.html --- ...ve Tig for visualizing my Git workflows.md | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) rename {translated/tech => published}/20220705 Why I love Tig for visualizing my Git workflows.md (64%) diff --git a/translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md b/published/20220705 Why I love Tig for visualizing my Git workflows.md similarity index 64% rename from translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md rename to published/20220705 Why I love Tig for visualizing my Git workflows.md index e3f69a6e81..d6d8b25fe3 100644 --- a/translated/tech/20220705 Why I love Tig for visualizing my Git workflows.md +++ b/published/20220705 Why I love Tig for visualizing my Git workflows.md @@ -3,21 +3,20 @@ [#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14809-1.html" -为什么我喜欢使用 Tig 来可视化我的 Git 工作流 +使用 Tig 来可视化 Git 工作流 ====== -Tig 是审查 Git 仓库的绝佳工具,它鼓励你探索日志,而无需构建冗长且有时复杂的查询。 -![][1] +![](https://img.linux.net.cn/data/attachment/album/202207/09/123419u39t3jz9gzc6345t.jpg) -图片来源:opensource.com +> Tig 是审查 Git 仓库的绝佳工具,它鼓励你探索日志,而无需构建冗长且有时复杂的查询。 -如果你发现浏览你的 Git 仓库非常复杂,我已经为你准备了工具。来认识 Tig。 +如果你发现浏览你的 Git 仓库非常复杂,我已经为你准备好了工具,来了解一下 Tig。 -Tig 是一个[基于 ncurses][2] 的 Git 文本模式界面,允许你浏览 Git 仓库中的更改。它还充当各种 Git 命令输出的寻呼机。我使用这个工具可以让我很好地了解在哪个提交中发生了哪些更改,最新的提交合并等等。从这个简短的教程开始,亲自尝试一下。 +Tig 是一个 [基于 ncurses][2] 的 Git 文本模式界面,它允许你浏览 Git 仓库中的更改。它还可以充当各种 Git 命令输出的分页器。使用这个工具可以让我很好地了解在哪个提交中发生了哪些更改,最新的提交合并是什么等等。请跟随这个简短的教程,亲自尝试一下。 ### 安装 Tig @@ -33,7 +32,7 @@ $ sudo dnf install tig $ sud apt install tig ``` -在 macOS 上,使用 [MacPorts][3] 或 [Homebrew][4]。 Tig 的完整安装指南可在 [Tig 手册][5]中找到。 +在 macOS 上,使用 [MacPorts][3] 或 [Homebrew][4]。 Tig 的完整安装指南可在 [Tig 手册][5] 中找到。 ### 使用 Tig @@ -54,15 +53,13 @@ ab4d14... refs/remotes/origin/1160-release-on-bare-metal-servers [...] ``` -使用 Tig,你可以在可滚动列表中获取该信息以及更多信息,以及用于打开其他视图的键盘快捷键,其中包含每个 ref 的详细信息。 +使用 Tig,你可以在可滚动列表中获取该信息以及更多信息,此外还可以使用键盘快捷键来打开其他视图,其中包含每个引用的详细信息。 -![Screenshot of a terminal using Tig. On the left there is a scrollable list of outputs, on the right the details of the selected output (add become an ambassador page) is shown, such as author, date, commit date, sign off, etc.][6] +![][6] -图片来源:(Sumantro Mukherjee,CC BY-SA 4.0) +### 分页模式 -### 寻呼模式 - -当输入是标准输入时,Tig 进入寻呼模式。当指定 `show` 子命令并给出 `--stdin` 选项时,stdin 被假定为提交 ID 列表,它被转发到 `git-show` : +当输入来自标准输入时,Tig 进入分页模式。当指定 `show` 子命令并给出 `--stdin` 选项时,标准输入被假定为提交 ID 列表,它被转发到 `git-show` : ``` $ git rev-list --author=sumantrom HEAD | tig show –stdin @@ -70,7 +67,7 @@ $ git rev-list --author=sumantrom HEAD | tig show –stdin ### 日志和差异视图 -当你在 Tig 的日志视图中时,你可以按键盘上的 d 键来显示差异。这将显示提交中更改的文件以及删除和添加的行。 +当你在 Tig 的日志视图中时,你可以按键盘上的 `d` 键来显示差异。这将显示提交中更改的文件以及删除和添加的行。 ### 交互式 Git 数据 @@ -85,7 +82,7 @@ via: https://opensource.com/article/22/7/visualize-git-workflow-tig 作者:[Sumantro Mukherjee][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/) 荣誉推出 From 1010a846834c4dfd54df139fc40c2c2091918ff7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 9 Jul 2022 16:40:52 +0800 Subject: [PATCH 0305/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220709=20How=20to=20Use=20Microsoft=20Office=20on?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...09 How to Use Microsoft Office on Linux.md | 284 ++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 sources/tech/20220709 How to Use Microsoft Office on Linux.md diff --git a/sources/tech/20220709 How to Use Microsoft Office on Linux.md b/sources/tech/20220709 How to Use Microsoft Office on Linux.md new file mode 100644 index 0000000000..0d12e550ae --- /dev/null +++ b/sources/tech/20220709 How to Use Microsoft Office on Linux.md @@ -0,0 +1,284 @@ +[#]: subject: "How to Use Microsoft Office on Linux" +[#]: via: "https://itsfoss.com/use-microsoft-office-linux/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Use Microsoft Office on Linux +====== +For many users, not having native support for Microsoft Office is the only reason why they do not switch to Linux. + +Yes, **Microsoft Office is not available to install on Linux**. + +For some existing users, not having Microsoft Office on Linux creates additional pain. + +Sure, there are several good open source office suites available and they are sufficient for most users. + +But there are situations when you are compelled to use MS Office. + +If other people at work send you Office documents with complex macros, it may not work well with LibreOffice. + +Similarly, if your university or workplace requires you to write in .docx or .xlsx and you use LibreOffice, there might be compatibility issues if tables, macros and other elements are involved. + +These are practical difficulties that are encountered by people who have to collaborate with MS office users. + +**If you are in a situation where you must use Microsoft Office, you don’t need to ditch Linux altogether.** + +Here are a few suggestions on how you could use Microsoft Office on the Linux desktop. + +### Your options for using Microsoft Office on Linux + +There are various **alternative methods** you can use to access Microsoft’s Office on Linux. + +Sure, it’s not the same using MS Office on Windows, but at least it allows you to work with Office documents. + +#### 1. Use Microsoft Office 365 Online + +Yes, you can use Microsoft Office applications in your web browser. And this works on any operating system. That includes Linux, of course. + +This is the best way to access Microsoft Office apps if you have a stable internet connection. + +Do note that the online Office version doesn’t have all the features you get in the desktop version. Still, it’s a good enough choice in many cases. + +If you have a Microsoft account, you can [sign in to Microsoft 365 directly][1]. If you don’t have one, you must create a Microsoft account. + +Without any paid subscription, you can use a lite version of all the essential office tools like Microsoft Word, Excel, and more, right on your web browser. + +Sounds good, right? + +![microsoft office linux][2] + +The best part of this service is you can utilize free 5 GB of OneDrive storage to keep your documents online, and it integrates well will all the apps available in the suit. Not to forget, you can also use the mobile app on the go. + +Note that there are some feature differences between Office Online and its native desktop applications. You can know more about it in its [official documentation][3]. + +Moreover, if you want to make the most out of it, with more cloud storage, and some premium features, you may opt for the Microsoft 365 subscription as well. + +##### Pros + +* Comes free with Microsoft account +* Documents are saved in the cloud and can be accessed from any device +* 5 GB of free storage with OneDrive +* Can be used on any operating system without installing the software + +##### Cons + +* You must create a Microsoft account +* Free version lacks features +* You can only store documents up to 5 GB for free +* Needs internet connection to access and edit files + +#### 2. Using a Windows compatibility program + +What if you would like to experience the desktop app of Microsoft Office from within your Linux system? + +You can use a virtual machine to install Windows, but we discuss that next, considering it is time-consuming. + +Instead, you can use Windows compatibility layers for specific software, by which you can run them on Linux machines. + +I’ll suggest two ways to install Microsoft Office desktop application on Linux + +* Using PlayOnLinux (free but provides older versions of MS office) +* Using CrossOver (paid and comes with proper support) + +Let me give you a brief overview of how to use them + +##### Using PlayOnLinux + +[PlayOnLinux][4] is one of the best ways to run Windows applications on Linux. + +On Ubuntu, you can install it using a command through the terminal as follows: + +``` +sudo apt install winbind playonlinux winetricks -y +``` + +After installation, launch the program and click on the Install button which will sync available packages and will allow us to install MS Office (desired version). + +![Using PlayOnLinux on Ubuntu][5] + +Now, you’ll be given a prompt where we will be searching for our desired software. + +If you already purchased Microsoft Office earlier, you can have the installation media or the ISO file ready from their [official download page][6]. + +Enable the option labeled as “No-cd needed” if you do not plan to use your installer, and search “Office”. + +It will list all compatible Microsoft Office programs. Select your desired version and click on the **Install** button to download/install it automatically. + +![Searching for MS Office in PlayOnLinux][7] + +It will automatically create a virtual space for MS Office and will install Wine through the installer. Once you are done with the basic steps, it will show you a prompt where you have to choose the installation method between the setup file and DVD. + +We’ll be going with the first option for convenience. After selecting the first option, locate the setup file and all the other processes will be handled automatically. + +![using setup file][8] + +Soon the installer will start the installation process and in no time you will get your favorite office suite installed on your system. You can directly access it without PlayOnLinux from your Linux system or from within the application as well. + +![MS Office suit on Linux with PlayOnLinux][9] + +For example, let’s try launching MS Word. Here’s what it looks like: + +![Running MS Office][10] + +Note that you won’t find the latest version of Microsoft Office with this method, and probably not the best experience in terms of performance. + +##### Using CrossOver + +[CrossOver][11] is a paid software that lets you run Windows applications on Linux in the best way possible. + +![crossover][12] + +It is built on top of Wine, and several open-source projects. The CrossOver developers contribute heavily to the [WINE project][13]. + +You just need to purchase it once and use it as long as you want. Unfortunately, you still cannot get the latest Microsoft Office version 2021 to work with it. The [ratings are poor][14]. The newest that works well with CrossOver is Office 2016 at the time of writing this article. + +Oh, yes! CrossOver has a [compatibility database][15]. You can search for the desired Windows software and see if it is well supported or not. + +If you want convenience, and a tool to run Windows applications on Linux (not just Microsoft Office) and you don’t mind paying for it, you should try it out. + +##### Pros + +* No need for internet while using Office +* Your existing Office license may work the same + +##### Cons + +* Only older versions are available + +[Use Windows Software on Linux with Crossover][16] + +Thousands of Windows games and programs to run on your favorite Linux distro. + +Supported Windows apps will run at native speed, play games at full fps all while maintaining the Linux OS integration. Simply magic! + +Your purchase supports WINE development as well. + +![Use Windows Software on Linux with Crossover][17] + +[Get it now][18] + +We earn a commission if you make a purchase, at no additional cost to you. + +#### 3. Use a virtual machine to run Windows + +So if you are someone with enough system resources to spare, this option will enable you to use a wide range of exclusive software. It’s because, you will be using Windows from within Linux, as a virtual machine. + +If you are not familiar with it, the virtual machine mechanism allows you to use another operating system (like Windows) inside Linux like a regular application. + +![A Video from YouTube][19] + +You can choose to use options like [Quickgui][20], VMware, [GNOME Boxes][21], or VirtualBox. + +As an example, you can follow our guide on [installing Windows 10 using VirtualBox on Linux][22]. + +It can be exciting, you know! But to run a virtual machine, you need to have a computer with enough system resources. It will struggle miserably if you try to use it on a 4 GB RAM and i3 processor. + +It’s not perfect. As you may have trouble sharing clipboards and files between the guest OS (Windows) and host OS (Linux). + +Another thing is about Windows licensing. If you have a new system that came preinstalled with Windows, your license is linked to your machine on BIOS/firmware level. You should be able to use Windows in the virtual machine without issues. But if that was not the case, you may have to activate Windows. + +##### Pros + +* No need for internet while using Office +* Use the latest version of MS Office +* Use other Windows-only software + +##### Cons + +* Only works well with high-end computers with good system resources +* Licensing could be an issue + +#### 4. Use alternative office suits that are compatible with MS Office files + +So if you are using Linux for a while, the chances of your distro being shipped with LibreOffice are quite high. But LibreOffice is not always compatible with MS Office file formats. + +I would suggest **two office suites which are known for better compatibilty with your Microsoft Office files**: + +##### 1. OnlyOffice + +![onlyoffice][23] + +If you are looking for an office suite that is identical to Microsoft Office with several essential features, [OnlyOffice][24] can be a great choice. + +You can download the desktop edition for free on Linux, Windows, and macOS. + +If you have a [Nextcloud][25] instance or similar, you can also integrate it with that for usage. + +##### 2. WPS Office + +![wps office][26] + +WPS Office was previously known as Kingsoft Office. The Chinese developers of WPS Offices are unabashed about imitating the look and feel of the MS Office products. + +**This is not open-source, though.** + +WPS is fine-tuned for personal use and provides good compatibility with Microsoft Office documents. + +Being one of the best alternatives to MS Office, you can follow [our guide][27] for easy installation and get WPS running in no time on Linux. + +##### Pros + +* No need for internet while using Office +* Use the latest version of MS Office +* Use other Windows-only software + +##### Cons + +* Only works well with high-end computers with good system resources +* Licensing could be an issue + +### No real love for Linux from Microsoft but you’ll always find a way + +Microsoft has clarified that it loves open-source as much as everyone. But, we still need to resort to numerous ways to run Microsoft Office on Linux. Instead of bringing its Office suite to Linux, [Microsoft gifted its calculator][28] to the community. + +Linux users always find a way around things. Though MS Office is not officially available for Linux, you can still employ one of the workarounds I suggested here. + +In my opinion, Office 365 is a pretty good option if you are always connected to the internet. + +What do you think? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/use-microsoft-office-linux/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://www.microsoft.com/en-in/microsoft-365/free-productivity-apps +[2]: https://itsfoss.com/wp-content/uploads/2022/07/microsoft-office-linux.jpg +[3]: https://docs.microsoft.com/en-us/office365/servicedescriptions/office-online-service-description/office-online-service-description +[4]: https://www.playonlinux.com/en/ +[5]: https://itsfoss.com/wp-content/uploads/2022/07/Sync-available-software-1-2.png +[6]: https://www.microsoft.com/en-us/download/office.aspx +[7]: https://itsfoss.com/wp-content/uploads/2022/07/Searching-for-MS-Office-2.png +[8]: https://itsfoss.com/wp-content/uploads/2022/07/Using-setup-file-2.png +[9]: https://itsfoss.com/wp-content/uploads/2022/07/Installed-office-suit-800x445.png +[10]: https://itsfoss.com/wp-content/uploads/2022/07/MS-Office-800x660.png +[11]: https://itsfoss.com/go/crossover/ +[12]: https://itsfoss.com/wp-content/uploads/2022/07/crossover-21-1-0.png +[13]: https://www.winehq.org/ +[14]: https://www.codeweavers.com/compatibility/crossover/microsoft-office-2021 +[15]: https://www.codeweavers.com/compatibility +[16]: https://itsfoss.com/go/crossover/ +[17]: https://itsfoss.com/go/crossover/ +[18]: https://itsfoss.com/go/crossover/ +[19]: https://youtu.be/_Kh_Y3xg890 +[20]: https://itsfoss.com/quickgui/ +[21]: https://itsfoss.com/share-files-gnome-boxes/ +[22]: https://itsfoss.com/install-windows-10-virtualbox-linux/ +[23]: https://itsfoss.com/wp-content/uploads/2022/07/OnlyOffice-800x518.png +[24]: https://itsfoss.com/recommends/onlyoffice/ +[25]: https://itsfoss.com/nextcloud/ +[26]: https://itsfoss.com/wp-content/uploads/2022/07/WPS-office-1-800x443.png +[27]: https://itsfoss.com/wps-office-linux/ +[28]: https://itsfoss.com/windows-calculator-linux/ From 92a45dfbd7582794391d5a06fbe6a25e9a506f43 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 9 Jul 2022 17:05:17 +0800 Subject: [PATCH 0306/3123] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DO Pulse 15 is a Workstation Powerhouse.md | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md b/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md index b3071d773e..95d3c58184 100644 --- a/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md +++ b/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md @@ -1,7 +1,7 @@ [#]: subject: "The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse" [#]: via: "https://news.itsfoss.com/tuxedo-pulse-gen-2/" [#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lujun9972" +[#]: collector: "lkxed" [#]: translator: " " [#]: reviewer: " " [#]: publisher: " " @@ -9,6 +9,9 @@ The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse ====== +TUXEDO’s all-new Pulse 15 Gen 2 now packs an improved WQHD 165Hz display and AMD’s Ryzen 7 5700U that runs at 35W! + +![tuxedo][1] TUXEDO Computers is a German manufacturer popular for offering a wide range of consumer Linux desktops and laptops. @@ -16,7 +19,7 @@ One of their latest notebook releases, the **Pulse 15** – which was introduced ### Tuxedo Pulse 15 Gen-2: What’s New? -![Source: TUXEDO][1] +![][2] The notebook’s new 15.6-inch display takes the center stage here. A **2560 x 1440 pixels LED panel** is definitely a huge enhancement compared to the 1080p display used in the previous model. So you can expect clearer and more detailed images, not to mention fluid movements thanks to the high **165Hz refresh rate**! @@ -24,11 +27,11 @@ The AMD Ryzen 5 4600H is now replaced by the year-old **Ryzen 7 5700U**. Offerin TUXEDO has optimized the CPU to run at a whopping 35W instead of the maximum recommended 25W. Moreover, a 35% decrease in power consumption compared to the Ryzen 5 4600H has been benchmarked. The integrated AMD RX Vega 8 graphics running at 1900MHz will be slightly more powerful thanks to the increased wattage. -![Source: TUXEDO][2] +![][3] Lastly, the criticisms of the cooling system should be addressed by a new design that features an **“above-average” dual-fan setup** and includes two heat pipes. TUXEDO stated that users shouldn’t come across thermal throttling issues and loud fan noise when at full load. -![Source: TUXEDO][3] +![][4] #### Other Specifications @@ -40,33 +43,31 @@ As far as the battery is concerned, the same **91-Wh** battery is being used pro The connectivity options also include a new DisplayPort via USB-C, which was absent with the first-generation model. Other options contain: - * Intel Dual Band AX 200 (WiFi 6 & Bluetooth 5.2) - * 1 x USB 3.2 Gen2 Type-C - * 2 x USB 3.2 Gen2 Type-A - * 1 x USB 2.0 Type-A - * 1 x HDMI 2.0 - * 1 x Gigabit RJ45 LAN - * 2-in-1 Headphone & Microphone - * Kensington Lock - * UHS-50 Micro SD Cardreader +* Intel Dual Band AX 200 (WiFi 6 & Bluetooth 5.2) +* 1 x USB 3.2 Gen2 Type-C +* 2 x USB 3.2 Gen2 Type-A +* 1 x USB 2.0 Type-A +* 1 x HDMI 2.0 +* 1 x Gigabit RJ45 LAN +* 2-in-1 Headphone & Microphone +* Kensington Lock +* UHS-50 Micro SD Cardreader +### Pricing & Availability - -### Pricing & Availability - -The base configuration which includes 8 GB Samsung 3200 MHz DDR 4 RAM and 250 GB NVMe SSD costs **1149 EUR or 1185 USD**. You can choose the flagship TUXEDO_OS 22.04 LTS, Ubuntu 22.04 LTS, Kubuntu 22.04 LTS, or Ubuntu Budgie 22.04 LTS as the operating system of your choice. +The base configuration which includes 8 GB Samsung 3200 MHz DDR 4 RAM and 250 GB NVMe SSD costs**1149 EUR or 1185 USD**. You can choose the flagship TUXEDO_OS 22.04 LTS, Ubuntu 22.04 LTS, Kubuntu 22.04 LTS, or Ubuntu Budgie 22.04 LTS as the operating system of your choice. Shipping for orders starts on July 15, 2022. You can pre-order the laptop now. You can check out the official website product page for more details. -[TUXEDO Pulse 15 Gen-2][4] +[TUXEDO Pulse 15 Gen-2][5] ### Powerful Linux Laptop Lineup The Tuxedo Pulse 15 specs indicate that it is a solid offering. Thus, developers and business users should not have any complaints regarding its performance. -Not to forget, we also had a recent launch of [HP Dev One][5], and a teaser for [StarFighter][6] with a 4K 10-bit IPS display by Star Labs. +Not to forget, we also had a recent launch of [HP Dev One][6], and a teaser for [StarFighter][7] with a 4K 10-bit IPS display by Star Labs. Looks like you’re in for a treat if you are saving up for a premium Linux-specific laptop. @@ -75,17 +76,18 @@ Looks like you’re in for a treat if you are saving up for a premium Linux-spec via: https://news.itsfoss.com/tuxedo-pulse-gen-2/ 作者:[Rishabh Moharir][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://news.itsfoss.com/author/rishabh/ -[b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjkwMSIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ -[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMjQiIHdpZHRoPSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg== -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2MDAiIHdpZHRoPSIxNjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg== -[4]: https://www.tuxedocomputers.com/en/Linux-Hardware/Notebooks/15-16-inch/TUXEDO-Pulse-15-Gen2.tuxedo -[5]: https://news.itsfoss.com/hp-dev-one-system76/ -[6]: https://news.itsfoss.com/starfighter-laptop-reveal/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/TUXEDO-Pulse-15-linux-laptop.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/1250-1100-max-1-1024x901.png +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/1600-1600-max-1-1024x1024.png +[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/1600-1600-max-2.png +[5]: https://www.tuxedocomputers.com/en/Linux-Hardware/Notebooks/15-16-inch/TUXEDO-Pulse-15-Gen2.tuxedo +[6]: https://news.itsfoss.com/hp-dev-one-system76/ +[7]: https://news.itsfoss.com/starfighter-laptop-reveal/ From 2fb92504da8ca1b540fc6cb3464e88a453c29b5c Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 9 Jul 2022 18:02:44 +0800 Subject: [PATCH 0307/3123] translating --- sources/tech/20220707 Check disk usage in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220707 Check disk usage in Linux.md b/sources/tech/20220707 Check disk usage in Linux.md index f10b4b674c..89f9dcaa8f 100644 --- a/sources/tech/20220707 Check disk usage in Linux.md +++ b/sources/tech/20220707 Check disk usage in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/check-disk-usage-linux" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e5b7c012cdbee68ded04141264668853419f15b0 Mon Sep 17 00:00:00 2001 From: Tan Long <2638000368@qq.com> Date: Sat, 9 Jul 2022 18:10:16 +0800 Subject: [PATCH 0308/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?]=20sources/tech/20220527=20Plotting=20Data=20in=20R-=20Graphs.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20220527 Plotting Data in R- Graphs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220527 Plotting Data in R- Graphs.md b/sources/tech/20220527 Plotting Data in R- Graphs.md index b7d1506fd2..38b8decd47 100644 --- a/sources/tech/20220527 Plotting Data in R- Graphs.md +++ b/sources/tech/20220527 Plotting Data in R- Graphs.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/" [#]: author: "Shakthi Kannan https://www.opensourceforu.com/author/shakthi-kannan/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "tanloong" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1dd581af5fd072b3110f69545646a25380692fc7 Mon Sep 17 00:00:00 2001 From: fenglyulin <108119987+fenglyulin@users.noreply.github.com> Date: Sat, 9 Jul 2022 18:40:51 +0800 Subject: [PATCH 0309/3123] Fenglyu will translate this news. --- ...l That Helps Overcome Language Barrier Is Now Open-Source.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md index b4070c8f13..4fa7997965 100644 --- a/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md +++ b/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/meta-open-source-ai-model/" [#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "fenglyulin" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 16f2edcf7f50e0b9d619103549f79ce380dc173e Mon Sep 17 00:00:00 2001 From: fenglyulin <108119987+fenglyulin@users.noreply.github.com> Date: Sun, 10 Jul 2022 03:06:53 +0800 Subject: [PATCH 0310/3123] Translated --- ...ome Language Barrier Is Now Open-Source.md | 46 ++++++++----------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md index 4fa7997965..738a374216 100644 --- a/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md +++ b/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md @@ -7,51 +7,45 @@ [#]: publisher: " " [#]: url: " " -Meta’s AI Model That Helps Overcome Language Barrier Is Now Open-Source +Meta 的帮助克服语言障碍的 AI 模型现已开源 ====== -No Language Left Behind by Meta is an ambitious open-source project which aims to translate languages with the highest level of accuracy. +Meta 的 No Language Left Behind (不落下任何语言)是一个宏大的开源项目,旨在以最高准确度翻译语言。 ![meta][1] -Meta (formerly known as Facebook) has made quite a splash in the open-source world. If you did not know, Meta works on various research and innovative projects like React (a JavaScript library) apart from focusing on the metaverse and its social media platforms. +Meta(Facebook 的前身)在开源世界做出了不小的贡献。Meta 除了专注于元宇宙(Metaverse)和其社交媒体平台外,还致力于各种研究和创新工作,比如 React(一个 JaveScript 库)。 -Researchers at Meta have decided to open-source one such project, an AI model called ‘*No Language Left Behind*‘. +现在,在 Meta 的研究人员决定开源一个叫“*No Language Left Behind(不落下任何语言)*” -### Meta’s Attempt To Leave No Language Behind +### Meta 在 Leave No Language Behind 项目中的尝试 ![200 languages within a single AI model: A breakthrough in high-quality machine translation][2] -While around 7000 languages are spoken in the world today, most of the online content is available in a handful of popular languages like English. This leaves many people who don’t know such languages at a disadvantage. +目前,虽然世界上有大约 7000 个在使用中的语言,但大多数在线的内容都是以少数的流行语言来提供的,比如英语。这让许多不懂这些语言的人处于不利的地位。 -While many tools exist for translation, grammatical errors can make content difficult to read and understand. Moreover, if you are looking to translate it into a language that is not popular, it won’t be a pretty experience. +虽然现存的许多翻译工具,但语法错误会让错误变得难以阅读和理解。另外,如果你想把内容翻译到一个不流行的语言(特别是非洲和亚洲的一些语言),翻译体验不会很好。 -Specifically, for languages of Africa and Asia. +因此,Meta 正在开发有最高质量的翻译工具,可以帮助解决这一全球性的问题。 -Hence, Meta is working on a translational tool with one of the highest quality results recorded that can help counter this global issue. +NLLB-200(No Language Left Behind,不落下任何语言) 是一个人工智能翻译模型,其可以翻译200多种语言。该模型在每种语言中的翻译性能是通过一个名为 FLORES-200 复杂数据集来确定和评估的。 -No Language Left Behind or simply **NLLB-200** is a machine translation model that can translate over 200 languages using artificial intelligence +正如 Meta 所说,NLLB 的翻译结果比以前的人工智能研究方法好40% 。对于一些最不常见的语言,其翻译准确率甚至超过70%。了不起的工作! -NLLB’s performance in each language is determined and evaluated using a complex dataset called FLORES-200 (if you’re curious). +为了帮助开发项目和提高模型的翻译质量,Meta 向所有感兴趣的研究人员开放了源代码,包括 NLLB-200 模型、 FLORES-200 数据库、模型训练和重建训练数据库的代码。 + +你可以在 [GitHub][3] 上找到源代码,并且可以在项目的 [博客][4] 上了解有关该项目的更多信息。 -As stated by Meta, NLLB’s results are 40% better than “previous AI research” methods. It even has an accuracy of over 70% for some of the least-common languages. That’s quite an impressive feat! +### 对社会事业的鼓励 -To help develop and improve the quality of translations, Meta has made the source code open to all interested researchers. This includes code for NLLB-200, FLORES-200, model training, and re-creating the training database. +Meta 宣布向从事联合国可持续发展目标(UN Sustainable Development Goals)和翻译非洲语言的、任何地区的非营利组织和研究人员提供高达20万美元的捐赠,目前也鼓励其他学术领域如语言学和机器翻译的研究人员申请。 -You can find the source code on [GitHub][3] and learn more about the project in its [research blog post][4]. +### 项目的影响 -### Rewards for Social Cause +尽管 Meta 主要打算在其数字平台上,特别是在 Metaverse上使用 NLLB,但 NLLB 也有可能在其他领域产生巨大影响。 -Meta has announced rewards of up to $200,00 of grants for non-profit organizations and researchers who are working on any areas of the UN Sustainable Development Goals and translating African languages. +许多用户可以用他们的母语轻松地访问和阅读在线资源。项目开源后,社区应该能够帮助实现这个目标。 -Other researchers currently working in academic fields like linguistics and machine translation are also encouraged to apply. - -### The Impact of this Project - -Although Meta intends to mostly make use of NLLB across its digital platforms, particularly the Metaverse, it can be hugely impactful in other domains as well. - -Many users will be able to access and easily read online resources in their native languages without a lot of effort. The idea of making it an open-source project should allow the community to help make this happen. - -*What are your thoughts on this project by Meta?* +*你对 Meta的这个项目有什么看法?* -------------------------------------------------------------------------------- @@ -59,7 +53,7 @@ via: https://news.itsfoss.com/meta-open-source-ai-model/ 作者:[Rishabh Moharir][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[fenglyulin](https://github.com/fenglyulin) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a4bc03b5d0f64198cae97e0311019b692bd2a4ea Mon Sep 17 00:00:00 2001 From: fenglyulin <108119987+fenglyulin@users.noreply.github.com> Date: Sun, 10 Jul 2022 03:10:02 +0800 Subject: [PATCH 0311/3123] Change the path of doc from source to translated --- ...del That Helps Overcome Language Barrier Is Now Open-Source.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md (100%) diff --git a/sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md similarity index 100% rename from sources/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md rename to translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md From 19018685678b6dc9ecc9a56f31a05239eaedef1c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 10 Jul 2022 05:02:34 +0800 Subject: [PATCH 0312/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220709?= =?UTF-8?q?=20Monitoring=20tiny=20web=20services?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220709 Monitoring tiny web services.md --- .../20220709 Monitoring tiny web services.md | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sources/tech/20220709 Monitoring tiny web services.md diff --git a/sources/tech/20220709 Monitoring tiny web services.md b/sources/tech/20220709 Monitoring tiny web services.md new file mode 100644 index 0000000000..72b4d9497d --- /dev/null +++ b/sources/tech/20220709 Monitoring tiny web services.md @@ -0,0 +1,143 @@ +[#]: subject: "Monitoring tiny web services" +[#]: via: "https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Monitoring tiny web services +====== + +Hello! I’ve started to run a few more servers recently ([nginx playground][1], [mess with dns][2], [dns lookup][3]), so I’ve been thinking about monitoring. + +It wasn’t initially totally obvious to me how to monitor these websites, so I wanted to quickly write up what how I did it. + +I’m not going to talk about how to monitor Big Serious Mission Critical websites at all, only tiny unimportant websites. + +### goal: spend approximately 0 time on operations + +I want the sites to mostly work, but I also want to spend approximately 0% of my time on the ongoing operations. + +I was initially very wary of running servers at all because at my last job I was on a 24⁄7 oncall rotation for some critical services, and in my mind “being responsible for servers” meant “get woken up at 2am to fix the servers” and “have lots of complicated dashboards”. + +So for a while I only made static websites so that I wouldn’t have to think about servers. + +But eventually I realized that any server I was going to write was going to be very low stakes, if they occasionally go down for 2 hours it’s no big deal, and I could just set up some very simple monitoring to help keep them running. + +### not having monitoring sucks + +At first I didn’t set up any monitoring for my servers at all. This had the extremely predictable outcome of – sometimes the site broke, and I didn’t find out about it until somebody told me! + +### step 1: an uptime checker + +The first step was to set up an uptime checker. There are tons of these out there, the ones I’m using right now are [updown.io][4] and [uptime robot][5]. I like updown’s user interface and [pricing][6] structure more (it’s per request instead of a monthly fee), but uptime robot has a more generous free tier. + +These + + 1. check that the site is up + 2. if it goes down, it emails me + + + +I find that email notifications are a good level for me, I’ll find out pretty quickly if the site goes down but it doesn’t wake me up or anything. + +### step 2: an end-to-end healthcheck + +Next, let’s talk about what “check that the site is up” actually means. + +At first I just made one of my healthcheck endpoints a function that returned `200 OK` no matter what. + +This is kind of useful – it told me that the server was on! + +But unsurprisingly I ran into problems because it wasn’t checking that the API was actually _working_ – sometimes the healthcheck succeeded even though the rest of the service had actually gotten into a bad state. + +So I updated it to actually make a real API request and make sure it succeeded. + +All of my services do very few things (the nginx playground has just 1 endpoint), so it’s pretty easy to set up a healthcheck that actually runs through most of the actions the service is supposed to do. + +Here’s what the end-to-end healthcheck handler for the nginx playground looks like. It’s very basic: it just makes another POST request (to itself) and checks if that request succeeds or fails. + +``` + + func healthHandler(w http.ResponseWriter, r *http.Request) { + // make a request to localhost:8080 with `healthcheckJSON` as the body + // if it works, return 200 + // if it doesn't, return 500 + client := http.Client{} + resp, err := client.Post("http://localhost:8080/", "application/json", strings.NewReader(healthcheckJSON)) + if err != nil { + log.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + if resp.StatusCode != http.StatusOK { + log.Println(resp.StatusCode) + w.WriteHeader(http.StatusInternalServerError) + return + } + w.WriteHeader(http.StatusOK) + } + +``` + +### healthcheck frequency: hourly + +Right now I’m running most of my healthchecks every hour, and some every 30 minutes. + +I run them hourly because updown.io’s pricing is per healthcheck, I’m monitoring 18 different URLs, and I wanted to keep my healthcheck budget pretty minimal at $5/year. + +Taking an hour to find out that one of these websites has gone down seems ok to me – if there is a problem there’s no guarantee I’ll get to fixing it all that quickly anyway. + +If it were free to run them more often I’d probably run them every 5-10 minutes instead. + +### step 3: automatically restart if the healthcheck fails + +Some of my websites are on fly.io, and fly has a pretty standard feature where I can configure a HTTP healthcheck for a service and restart the service if the healthcheck starts failing. + +“Restart a lot” is a very useful strategy to paper over bugs that I haven’t gotten around to fixing yet – for a while the nginx playground had a process leak where `nginx` processes weren’t getting terminated, so the server kept running out of RAM. + +With the healthcheck, the result of this was that every day or so, this would happen: + + * the server ran out of RAM + * the healthcheck started failing + * it get restarted + * everything was fine again + * repeat the whole saga again some number of hours later + + + +Eventually I got around to actually fixing the process leak, but it was nice to have a workaround in place that could keep things running while I was procrastinating fixing the bug. + +These healthchecks to decide whether to restart the service run more often: every 5 minutes or so. + +### this is not the best way to monitor Big Services + +This is probably obvious and I said this already at the beginning, but “write one HTTP healthcheck” is not the best approach for monitoring a large complex service. But I won’t go into that because that’s not what this post is about. + +### it’s been working well so far! + +I originally wrote this post 3 months ago in April, but I waited until now to publish it to make sure that the whole setup was working. + +It’s made a pretty big difference – before I was having some very silly downtime problems, and now for the last few months the sites have been up 99.95% of the time! + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/ + +作者:[Julia Evans][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://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://nginx-playground.wizardzines.com +[2]: https://messwithdns.net +[3]: https://dns-lookup.jvns.ca +[4]: https://updown.io/ +[5]: https://uptimerobot.com/ +[6]: https://updown.io/#pricing From f23febb28eef498abcec616bc6a6553f0491e319 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sun, 10 Jul 2022 07:38:13 +0800 Subject: [PATCH 0313/3123] translated --- ...untu Apps for Everyone in 2022 [Part 2].md | 258 ----------------- ...untu Apps for Everyone in 2022 [Part 2].md | 270 ++++++++++++++++++ 2 files changed, 270 insertions(+), 258 deletions(-) delete mode 100644 sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md create mode 100644 translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md diff --git a/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md deleted file mode 100644 index db9acfea9d..0000000000 --- a/sources/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md +++ /dev/null @@ -1,258 +0,0 @@ -[#]: subject: "10 Best Ubuntu Apps for Everyone in 2022 [Part 2]" -[#]: via: "https://www.debugpoint.com/best-ubuntu-apps-2022-part2/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -10 Best Ubuntu Apps for Everyone in 2022 [Part 2] -====== -This article lists the top 10 best Ubuntu apps for different use cases in 2022. - -If you plan to migrate to Linux permanently, you should be happy knowing that there are thousands of applications that can compete with commercial or paid applications. Also, if you are a Windows user and using Linux first time, then you may not hear of those apps. - -Hence, in this article series, we are highlighting a set of Ubuntu apps at a time to increase collaboration and awareness among the user base. - -This is part 2 of the Ubuntu Apps series. If you missed the other parts in this series, read them here: - -* [Part 1][1] -* [Part 3][2] - -### Best Ubuntu Apps in 2022 – Part 2 - -#### 1. OBS Studio - -The first application is the famous [streaming application][3] – OBS Studio. It is a free and open-source application primarily used for streaming over the internet. In addition, using this application, you can create a complex streaming project using multiple sources, overlay banners and more. - -Furthermore, thanks to its support of “Real-Time Messaging Protocol” (RTMP), you can use this app to stream on Facebook, YouTube, Twitch and another supported platform. - -This decade-old application is one of the best apps for Linux. - -![OBS Studio][4] - -You can learn more about OBS Studio here at the [official home page][5] and download or install it via the below methods. - -Via PPA in Ubuntu and related distribution: - -``` -sudo add-apt-repository ppa:obsproject/obs-studio -sudo apt update -sudo apt install obs-studio -``` - -If you wish for Flatpak, then [setup your system for Flatpak][6] and [install via this page][7]. - -For Arch Linux and others, [visit this page for more information.][8] - -#### 2. Inkscape - -The second application in this is the popular Inkscape application. Inkscape is a free and cross-platform vector graphics editor. It is primarily used to create scalable vector graphics. In addition, it is a world-class application which uses basic vector shapes such as rectangles, polygons, spirals and more. You can create world-class drawings using these primitive shapes and their additional tools (see below). - -Furthermore, you can also create [stunning animations][9] using Inkscape with sufficient skills. It is one of the must-have applications for artists. - -![Sample Image – credit-Inkscape][10] - -![Inkscape][11] - -You can learn more about Inkscape here at the [official home page][12] and download or install it via the below methods. - -Via PPA in Ubuntu and other Linux distributions: - -``` -sudo add-apt-repository ppa:inkscape.dev/stable -sudo apt update -sudo apt install inkscape -``` - -For other download methods, visit [this page][13]. - -#### 3. GIMP - -The GIMP aka GNU Image Manipulation Program is a raster graphics editor which is sometimes considered a debatable-[Photoshop alternative][14] in the Linux world. In addition, this two-decade-old application is perfect for basic to advanced image editing. Moreover, it supports layers, filters, decorations, and other advanced image editing features essential for a photography workflow. - -![GIMP Image Editor][15] - -A great way to learn more about GIMP is at the [official home page][16]and download or install via the below methods. - -The recommended way is Flatpak to get the latest GIMP version. You can set up[your system][17] for Flatpak and [click here to install][18]. - -For more download options, visit [this page][19]. - -#### 4. Spotify - -Spotify is a proprietary audio streaming and media services provider. It is one of the most extensive music streaming services, with over 400+ million monthly users. - -Firstly, to access the Spotify streaming service, you need a client. Secondly, If you are a mobile user, you can use the Spotify app from Google Play Store or Apple App Store. - -You can listen to millions of songs on your Linux desktop by installing the desktop client. For Linux distributions, you can install the Spotify client from various sources. - -![Spotify Client in Ubuntu][20] - -The recommended method for Ubuntu and other Linux is using the Snap package. You can install it via the below command. - -``` -snap install spotify -``` - -If you prefer the native deb package, you can install it using the below commands. - -``` -curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add -echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list -``` - -There is also an unofficial [Flatpak package available][21], which you can take advantage of. - -#### 5. SimpleScreen recorder - -The simplescreenrecorder is perhaps the best open-source screen recorder available. This application is straightforward to use and loaded with features. In addition, its unique 3-step approach to recording the screen which requires no learning at all. Moreover, you can select the entire screen, a window or a custom shape to record the screen. - -Furthermore, you can also specify the auto/video bit rate, audio source options and different output options. Finally, it is available to install in all Linux distributions. - -![SimpleScreenRecorder][22] - -The [official home page][23] contains more details about SimpleScreenRecorder, and you can download it using the below methods. - -Using the PPA commands below, you can install this application in Ubuntu and other related distributions. - -``` -sudo apt-get updatesudo apt-get install simplescreenrecorder -``` - -For additional download instructions, visit [this page][24]. - -#### 6. Calibre - -Calibre is a free and open-source e-book library management application available in Ubuntu, Linux Mint and other Linux platforms. It brings library management, e-book conversion, sync to your e-book devices and more unique features. Moreover, you can download news and other articles from the web and convert them to e-book formats using Calibre. In addition, it supports a wide range of e-book formats for management. Calibre is one of the best e-book management applications with all these features. - -![Calibre][25] - -A lot of documentation and tutorials are available on the [home page of Calibre][26], and you can download them using the below means. - -* [Download for Linux distributions][27] -* [Download for other operating systems][28] - -#### 7. Scribus - -Desktop publishing changed over the years. Today, there are several applications and web-based services available for desktop publishing. Scribus is one of the early free and open-source desktop publishing applications available for Linux distributions and other operating systems. In addition, it is based on Qt and brings an appealing user interface which you can learn in no time. Furthermore, it can be used by beginners to professionals to create stunning DTP pages. - -And it is still in active development. - -![Scribus][29] - -You can learn more about Scribus here at the [official home page][30] and download or install it via the below methods. - -Scribus is in the main repo for Ubuntu and other related distributions. You can run the below command to install. - -``` -sudo apt install scribus -``` - -For other download options, visit [this page][31]. - -#### 8. MyPaint - -The eighth application in this is MyPaint. MyPaint is a free and open-source drawing program for digital artists. MyPaint supports and can be used in pressure-sensitive tablets and devices. In addition, its unique distraction-free design lets you focus on the drawing instead of the application. Furthermore, it brings a real pencil and brushes emulation with a wide range of brushes, colours and layers. - -![MyPaint 2.0.1][32] - -For more information, visit the [official homepage][33] of MyPaint and download using the below methods. - -The recommended install method is Flatpak. You can set up your [system for Flatpak][34] and install it by [clicking here][35]. - -For other download options, visit [this page][36]. - -#### 9. LibreOffice - -If any professional Office suite comes close to the market leader Microsoft Office is the Document Foundation’s LibreOffice. It is the default Office suite for all Linux Distributions. It comes with a spreadsheet program (Calc), word processor (Writer), presentation (Impress) and Draw (for drawing). Moreover, it also brings a database system LibreOffice Base and Math to prepare mathematical formulas. - -In addition to that, LibreOffice features two editions. Firstly, the community edition is for the community and general uses and comes with the latest features and updates. The second edition is for business, and it’s called the enterprise edition. The enterprise edition is more stable and perfect for professional work. - -LibreOffice office suite is installed by default in Ubuntu. - -![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][37] - -[LibreOffice’s official documentation][38] is vast, and you can go through them through any means, including its [friendly forum][39]. You can download LibreOffice [from here][40]. - -Also, if you are planning to upgrade LibreOffice, you can [visit our guide here][41]. - -#### 10. Cawbird - -If you are a heavy Twitter user, you may consider a desktop app. Cawbird is a desktop Twitter client for Linux distributions. Fork of the prior Corebird app (discontinued), Cawbird brings inline image, video preview, list support, etc. In addition, it can do a full-text search on Twitter and support multiple Twitter accounts. - -However, due to Twitter API limitations, it refreshes every two minutes and several other restrictions such as no notification for follows, unfollows, block, mute and other features. Twitter imposed these limitations. - -![Cawbird][42] - -Finally, you can download the Cawbird for all Linux distributions using the [link present here][43]. - -### Closing Notes - -This concludes part 2 of a 5-part series of best Ubuntu Apps in 2022. I expect you get to install and use some of these applications in Ubuntu and other distros for your daily work. Also, let me know which apps you prefer from this list in the comment box below. - -Finally, stay tuned for part 3 of this Ubuntu apps series. If you missed the other parts of this series, you can read them here: - -* [Part 1][44] -* [Part 3][45] - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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/essential-ubuntu-apps-2022-part-1/ -[2]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ -[3]: https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/OBS-Studio.jpg -[5]: https://obsproject.com/ -[6]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[7]: https://flathub.org/apps/details/com.obsproject.Studio -[8]: https://obsproject.com/wiki/unofficial-linux-builds -[9]: https://inkscape.org/gallery/ -[10]: https://www.debugpoint.com/wp-content/uploads/2022/06/Sample-Image-credit-Inkscape.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2018/09/Inkscape-Running.png -[12]: https://inkscape.org/ -[13]: https://inkscape.org/release/ -[14]: https://www.debugpoint.com/2018/09/3-best-free-photoshop-alternatives-ubuntu-linux/ -[15]: https://www.debugpoint.com/wp-content/uploads/2018/09/GIMP-Running.png -[16]: https://www.gimp.org/ -[17]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[18]: https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref -[19]: https://www.gimp.org/downloads/ -[20]: https://www.debugpoint.com/wp-content/uploads/2022/06/Spotify-Client-in-Ubuntu.jpg -[21]: https://flathub.org/apps/details/com.spotify.Client -[22]: https://www.debugpoint.com/wp-content/uploads/2022/06/SimpleScreenRecorder.jpg -[23]: https://www.maartenbaert.be/simplescreenrecorder/ -[24]: https://www.maartenbaert.be/simplescreenrecorder/#download -[25]: https://www.debugpoint.com/wp-content/uploads/2019/11/Calibre.png -[26]: https://calibre-ebook.com/ -[27]: https://calibre-ebook.com/download_linux -[28]: https://calibre-ebook.com/download -[29]: https://www.debugpoint.com/wp-content/uploads/2022/06/Scribus.jpg -[30]: https://www.scribus.net/ -[31]: https://www.scribus.net/downloads/stable-branch/ -[32]: https://www.debugpoint.com/wp-content/uploads/2020/05/MyPaint-2.0.1.png -[33]: http://mypaint.org/ -[34]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[35]: https://flathub.org/repo/appstream/org.mypaint.MyPaint.flatpakref -[36]: http://mypaint.org/downloads/ -[37]: https://www.debugpoint.com/wp-content/uploads/2019/09/LibreOffice-7.3.x-Community-Edition-in-Ubuntu-22.04-LTS-Jammy-Jellyfish.jpg -[38]: https://help.libreoffice.org/latest/index.html -[39]: https://ask.libreoffice.org/ -[40]: https://www.libreoffice.org/download/download/ -[41]: https://www.debugpoint.com/2022/06/libreoffice-upgrade-update-latest/ -[42]: https://www.debugpoint.com/wp-content/uploads/2022/06/Cawbird.jpg -[43]: https://software.opensuse.org//download.html?project=home%3AIBBoard%3Acawbird&package=cawbird -[44]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ -[45]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ diff --git a/translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md new file mode 100644 index 0000000000..d24f4b3e62 --- /dev/null +++ b/translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md @@ -0,0 +1,270 @@ +[#]: subject: "10 Best Ubuntu Apps for Everyone in 2022 [Part 2]" +[#]: via: "https://www.debugpoint.com/best-ubuntu-apps-2022-part2/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 大必备 Ubuntu 应用:第二篇 +====== +本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 基本应用。 + +如果你计划永久的转移到 Linux 系统上,你应该很高兴知道在 Linux 上有数以千计的能与商业或付费应用媲美的应用。如果你是第一次使用 Linux 的 Windows 用户,你可能没有听说过这些应用。 + +因此,在这一系列文章中,我们每一次重点介绍一组 Ubuntu 应用,以增加用户群之间的协作和意识。 + +这是 Ubuntu 应用程序系列的第二篇文章,如果你错过了其他部分,可以在这里阅读: + +* [第一篇][1] +* [第三篇][2] + +### 2022 年最好的 Ubuntu 应用程序 – 第二篇 + +#### 1. OBS Studio + +第一个应用是著名的 [流媒体应用][3] —— OBS Studio 。这是一款免费并开源的主要用于互联网上的流媒体应用。此外,你可以使用该应用创建一个复杂的多源、覆盖横幅等流媒体项目。 + +而且,感谢它能够支持“实时消息传输协议”,你可以使用它在 Facebook、Youtube、Twitch 以及其他支持的平台上进行流式传输。 + +这个有十年历史的应用程序是 Linux 上最好的应用程序之一。 + +![OBS Studio][4] + +你可以在 [OBS Studio 官网][5] 了解更多的信息并下载,或者通过以下方式安装: + +通过 Ubuntu PPA 和相关分发: + +``` +sudo add-apt-repository ppa:obsproject/obs-studio +sudo apt update +sudo apt install obs-studio +``` + +如果你希望通过 Flatpak ,首先 [为 Flatpak 设置系统][6] 然后 [通过这个页面安装][7] 。 + +在 Arch Linux 或者其他 Linux 版本,访问 [该页面][8] 了解。 + +#### 2. Inkscape + +这里介绍第二款应用是受欢迎的 Inkscape 。 Inkscape 是一个免费开源的矢量图形编辑软件。它主要用于创建大规模的矢量图形。此外,它使用基本的矢量形状如矩形、多边形、螺旋形等,是一款世界级的应用。你可以使用这些基本图形以及辅助工具(见下文)创作一流的绘图。 + +此外,当你有足够的技能时,可以使用 Inkscape 创作 [绝妙的动画][9] 。这是画家必备的一款应用。 + +![Sample Image – credit-Inkscape][10] + +![Inkscape][11] + +你可以在 [Inkscape 官网][12] 下载并了解更多相关信息,或者通过以下方式下载。 + +通过 Ubuntu PPA 或其他 Linux 版本: + +``` +sudo add-apt-repository ppa:inkscape.dev/stable +sudo apt update +sudo apt install inkscape +``` + +更多下载方式可以查看 [此页面][13] 。 + +#### 3. GIMP + +GIMP 是 GNU 图像操作程序 (GNU Image Manipulation Program) 的缩写,是一个光栅图形编辑器,它有时候被认为是 Linux 平台上值得商榷的 [Photoshop 替代品][14] 。这款拥有 20 年历史的应用非常适合从基础到高级的图像编辑。此外,它支持图层、滤镜、装饰和其他对摄影工作必不可少的高级图像编辑功能。 + +![GIMP Image Editor][15] + + [官方主页][16] 是你了解更多关于 GIMP 的知识的最好的途径,可以在官网下载或者通过以下方式安装。 + +我推荐的方式是通过 Flatpak 下载最新版本 GIMP 。你可以为 Flatpak 设置 [你的系统][17] 然后 [通过该页面安装][18] 。 + +[该页面][19] 提供了更多下载选项。 + + +#### 4. Spotify + +Spotify 是一家专业提供音频流媒体和媒体服务的提供商。它是最广泛的音乐流媒体服务之一,每月有超过 400 多万用户。 + +首先,你需要安装客户端才能获取 Spotify 流媒体服务。其次,如果你是移动用户,你可以通过 Google Play 或者苹果应用商店获取 Spotify 应用。 + +在 Linux 上安装桌面客户端后你可以收听上百万首歌曲。你可以为不同的 Linux 版本通过不同的方式安装 Spotify 。 + +![Spotify Client in Ubuntu][20] + +推荐你在 Ubuntu 或者其他 Linux 上使用 Snap 来安装,你可以通过以下命令安装: + +``` +snap install spotify +``` + +如果你偏向于原始的 deb 包,你可以通过以下命令安装: + + +``` +curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add -echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list +``` + +你也可以使用非官方 [Flatpak 包][21] 进行安装。 + + +#### 5. SimpleScreenRecorder + +SimpleScreenRecorder 可能是最好的开源截屏工具。该应用程序易于使用并加载了功能。并且,其独特的 3 步录制屏幕的方法完全不需要学习。此外,你可以选择整个屏幕、一个窗口或自定义形状来记录屏幕。 + +此外,你还可以指定自动/视频比特率、音频源选项和不同的输出选项。最后,它可以安装在所有 Linux 发行版中。 + + +![SimpleScreenRecorder][22] + +[官方页面][23] 囊括了更多 SimpleScreenRecorder 的详细信息,你也可以使用如下方式下载。 + +在 Ubuntu 或其他相关发行版中使用下面的 PPA 命令安装该应用: + +``` +sudo apt-get updatesudo apt-get install simplescreenrecorder +``` +访问 [此页][24] 获取更多下载版本。 + +#### 6. Calibre + +Calibre 是一款可以在 Ubuntu, Linux Mint 以及其他 Linux 平台使用的免费开源的电子书库管理应用程序。它拥有书库管理、电子书格式转换、同步你的电子书设备以及其他独特的功能。你可以下载新闻和其他互联网上的文章,并可以使用 Calibre 转换成电子书格式。同时,它支持多种电子书格式进行管理。 Calibre 是一款具有这些功能最好的电子书管理应用程序之一。 + + +![Calibre][25] + +[Calibre 主页][26] 提供了很多文件以及指导手册,你也可以使用以下方式下载。 + + +* [在 Linux 发行版上下载][27] +* [在其他系统上下载][28] + +#### 7. Scribus + +多年来,桌面出版发生了变化。现今,仍有一些桌面出版的应用程序和基于网页的服务。 Scribus 是早期的一款免费并开源的桌面出版应用程序,可以在 Linux 发行版和其他操作系统中使用。此外,它基于 Qt 并带来了吸引人的用户界面,你可以立即学习。 此外,初学者和专业人士都可以使用它来创建令人惊叹的 DTP 页面。 + +并且它仍然在积极开发中。 + + +![Scribus][29] + +你可以在 Scribus的 [官方页面][30] 了解更多并下载,或者通过以下方式安装。 + +Scribus 位于 Ubuntu 和其他相关发行版的主要存储库中。 您可以运行以下命令进行安装: + +``` +sudo apt install scribus +``` + +[该页面][31] 提供了其他下载选项。 + + +#### 8. MyPaint + +第八个应用程序是 MyPaint 。MyPaint 是一个免费的开源绘图程序,适用于数字艺术家。 MyPaint 支持并可用于触屏平板电脑和设备。其独特的无干扰设计让你专注于绘图而不是应用程序。 外,它还带来了真正的铅笔和画笔仿真,具有广泛的画笔、颜色和图层。 + + +![MyPaint 2.0.1][32] + +浏览 MyPaint 的 [官方页面][33] 获取更多信息,可以使用以下方式下载。 + +推荐使用 Flatpak 安装 。你可以为 Flatpak 设置 [系统][34] 然后 [通过该页面安装][35] 。 + +[该页面][36] 提供了其他下载选项。 + +#### 9. LibreOffice + +如果有任何 Office 套件和市场领导者 Microsoft Office 相媲美,那一定是 Documen Foundation 的 LibreOffice 。它是所有 Linux 发行版的默认 Office 套件。它带有电子表格程序(Calc)、文字处理器(Writer)、演示文稿(Impress)和 Draw(用于绘图)。此外,它还带来了一个数据库系统 LibreOffice Base 和 Math 来演示数学公式。 + +除此之外, LibreOffice 提供两个版本。其一是社区版,社区版用于社区和一般用途,并带有最新的功能和更新。第二是商务版,也称企业版。企业版更稳定,更适合专业工作。 + +LibreOffice 办公套件默认安装在 Ubuntu 上。 + + +![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][37] + +[LibreOffice 的官方文档][38] 很庞大,你可以通过任何方式浏览它们,包括它的 [友好论坛][39] 。你可以 [从此处][40] 下载 LibreOffice。 + +如果你也想升级 LibreOffice ,你可以访问 [这里][41] 。 + + +#### 10. Cawbird + +如果你是重度 Twitter 用户,你或许应考虑一款桌面应用。 Cawbird 是一款 Linux 发行版上的 Twitter 桌面程序。它是 Corebird 应用(已停产)的分支,Cawbird 带来了内嵌图片、视频预览、列表支持等。此外,它可以在 Twitter 上进行全文搜索,并支持多个 Twitter 帐户。 + +但是,由于 Twitter API 的限制,它每两分钟刷新一次,以及其他一些限制,例如没有通知关注、取消关注、阻止、静音和其他功能。Twitter 强加了这些限制。 + +![Cawbird][42] + +最后,你可以通过 [该链接][43] 在任何 Linux 发行版上下载 Cawbird 。 + + +### 结语 + +这是 2022 年共 5 部分系列最佳 Ubuntu 应用程序的第 2 部分。我希望你能够在 Ubuntu 和其他发行版中安装和使用其中一些应用程序来完成你的日常工作。另外,请在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。 + + +最后,请继续关注本 Ubuntu 应用程序系列的第 3 部分。如果你错过了本系列的其他部分,可以在此处阅读它们: + +* [第一篇][44] +* [第三篇][45] + +干杯! + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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/essential-ubuntu-apps-2022-part-1/ +[2]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ +[3]: https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/OBS-Studio.jpg +[5]: https://obsproject.com/ +[6]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[7]: https://flathub.org/apps/details/com.obsproject.Studio +[8]: https://obsproject.com/wiki/unofficial-linux-builds +[9]: https://inkscape.org/gallery/ +[10]: https://www.debugpoint.com/wp-content/uploads/2022/06/Sample-Image-credit-Inkscape.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2018/09/Inkscape-Running.png +[12]: https://inkscape.org/ +[13]: https://inkscape.org/release/ +[14]: https://www.debugpoint.com/2018/09/3-best-free-photoshop-alternatives-ubuntu-linux/ +[15]: https://www.debugpoint.com/wp-content/uploads/2018/09/GIMP-Running.png +[16]: https://www.gimp.org/ +[17]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[18]: https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref +[19]: https://www.gimp.org/downloads/ +[20]: https://www.debugpoint.com/wp-content/uploads/2022/06/Spotify-Client-in-Ubuntu.jpg +[21]: https://flathub.org/apps/details/com.spotify.Client +[22]: https://www.debugpoint.com/wp-content/uploads/2022/06/SimpleScreenRecorder.jpg +[23]: https://www.maartenbaert.be/simplescreenrecorder/ +[24]: https://www.maartenbaert.be/simplescreenrecorder/#download +[25]: https://www.debugpoint.com/wp-content/uploads/2019/11/Calibre.png +[26]: https://calibre-ebook.com/ +[27]: https://calibre-ebook.com/download_linux +[28]: https://calibre-ebook.com/download +[29]: https://www.debugpoint.com/wp-content/uploads/2022/06/Scribus.jpg +[30]: https://www.scribus.net/ +[31]: https://www.scribus.net/downloads/stable-branch/ +[32]: https://www.debugpoint.com/wp-content/uploads/2020/05/MyPaint-2.0.1.png +[33]: http://mypaint.org/ +[34]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[35]: https://flathub.org/repo/appstream/org.mypaint.MyPaint.flatpakref +[36]: http://mypaint.org/downloads/ +[37]: https://www.debugpoint.com/wp-content/uploads/2019/09/LibreOffice-7.3.x-Community-Edition-in-Ubuntu-22.04-LTS-Jammy-Jellyfish.jpg +[38]: https://help.libreoffice.org/latest/index.html +[39]: https://ask.libreoffice.org/ +[40]: https://www.libreoffice.org/download/download/ +[41]: https://www.debugpoint.com/2022/06/libreoffice-upgrade-update-latest/ +[42]: https://www.debugpoint.com/wp-content/uploads/2022/06/Cawbird.jpg +[43]: https://software.opensuse.org//download.html?project=home%3AIBBoard%3Acawbird&package=cawbird +[44]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ +[45]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ From f96bc460fbe9943b495e65680c48934a5e4e993d Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 10 Jul 2022 10:20:54 +0800 Subject: [PATCH 0314/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220709=20DAT=20Linux-=20Perfect=20Distro=20for=20D?= =?UTF-8?q?ata=20Science=20Based=20on=20Ubuntu=20LTS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ro for Data Science Based on Ubuntu LTS.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20220709 DAT Linux- Perfect Distro for Data Science Based on Ubuntu LTS.md diff --git a/sources/tech/20220709 DAT Linux- Perfect Distro for Data Science Based on Ubuntu LTS.md b/sources/tech/20220709 DAT Linux- Perfect Distro for Data Science Based on Ubuntu LTS.md new file mode 100644 index 0000000000..1501502710 --- /dev/null +++ b/sources/tech/20220709 DAT Linux- Perfect Distro for Data Science Based on Ubuntu LTS.md @@ -0,0 +1,152 @@ +[#]: subject: "DAT Linux: Perfect Distro for Data Science Based on Ubuntu LTS" +[#]: via: "https://www.debugpoint.com/dat-linux-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +DAT Linux: Perfect Distro for Data Science Based on Ubuntu LTS +====== +We review the first beta version of DAT Linux, curated only for data scientists. + +Data science is in massive demand today, including job prospects, learning, university courses, etc. It’s a stream which deals with extracting meaningful inferences by applying algorithms and AI models. + +Most of today’s commercial data science products are available from the major tech players. And those products target large enterprises with critical businesses. But hundreds of free and open-source tools, packages, and programs are available for data science work that many are unaware of. + +Hence, setting up a working Linux system with those tools for data science work takes significant time because it requires little research, download & installation and so on. + +Keeping that in mind, DAT Linux brings a vast, pre-installed, pre-configured set of tools and programs with its native tools to assist data scientists, students, teachers and hobbyists. + +In this article, we review DAT Linux and its Beta release. + +![DAT Linux 1.0b Desktop][1] + +### DAT Linux Review + +#### Base and Installation + +The name “DAT” is a stripped-down version of the word “DATA”. As its target is Data Science, it became “DAT Linux” as a short. + +At its core, DAT Linux is based on Ubuntu LTS, i.e. [Lubuntu 22.04 LTS][2] as of its 1.0b (Beta) release, which is the target version of this review. + +The choice of Lubuntu with LXQt desktop is interesting, considering KDE Plasma or Xfce for a traditional desktop look. Perhaps, the performance is the aim of a data science work which may take considerable system resources. And LXQt desktop is probably the most lightweight desktop environment today. + +The installer size is 3.3 GB, almost identical to the [Ubuntu 22.04 LTS][3]. However, there is a slight difference in the installer. + +DAT Linux uses a customised Calamares Installer in place of the Ubiquity installer from Ubuntu. However, an installer doesn’t mean much, but Calamares is by far the best installer available today in terms of usability & stability. + +During the test, the installation went smooth and no major problems and errors for this beta version of DAT Linux. + +#### First Look and Desktop + +Lubuntu is [super-lightweight distribution][4] thanks to the LXQt desktop and its components. The LXQt brings several native apps such as QTerminal, and PCManFM-QT file manager. + +The beauty of a traditional icon and menu-based desktop environment is its usability and time-tested approach. Moreover, you care less about desktop themes and looks when working on serious data science projects. + +The LXQt desktop in DAT Linux is a stock experience with a bottom main panel. It has the application menu at the left, a list of open applications and windows in the middle and the system tray at the right. By default, LXQt offers four workspaces which I believe are more than sufficient to logically diving your data science apps for work. + +Overall, it’s a fast, clean desktop perfect for work or projects. + +#### The difference with the stock-Lubuntu + +The default applications for various tasks are slightly different from a stock Lubuntu version. Firstly, the default web browser is LibreWolf (and not Firefox), a free and open-source privacy-focused browser. + +Secondly, for installing additional apps and packages, it brings KDE’s Discover, which is a central tool to install, remove and manage software and packages. In addition, DAT Linux also brings Muon package manager by KDE (which we featured in [Best KDE Apps Part 2][5]). The Muon package manager is also a powerful package manager for searching and installing packages. In addition, you can easily manage software sources and PPAs using Muon. + +![Muon Package Manager][6] + +Other extra software includes Vim editor, [nobleNote notebook manager][7], VLC Media Player, Xscreensaver and Picom. Also, LibreOffice is pre-installed in DAT Linux. + +However, Flatpak and Snap (daemons) are not pre-installed – which is suitable for a lightweight system. + +#### Data Science Applications & Native Tools + +The primary focus of this distro is Data science, which is loaded with all the necessary apps for this stream. + +The application list is spread across dynamic programming languages, Python libraries, Business Intelligence reporting tools, scientific graph plotters and many more. + +Here’s the sample list of data science applications (You can read the detailed list [here][8]): + +| App Name | Description | +| :- | :- | +| BiRT | Eclipse BIRT™ is an open source reporting system for producing compelling BI reports | +| Julia | Julia is a high-level, high-performance, dynamic programming language | +| Jupyter Notebook | The Jupyter Notebook is a web-based interactive, scientific computing platform | +| Jupyter Lab | JupyterLab is the latest web-based interactive development environment for notebooks, code, and data | +| MOA | MOA is an open source framework for Big Data stream mining. It includes a collection of machine learning algorithms | +| OpenRefine | OpenRefine is an open-source desktop application for data cleanup and transformation to other formats | +| PSPP | GNU PSPP is a program for statistical analysis of sampled data. It is a free as in freedom replacement for the proprietary program SPSS | +| R | R is a free software environment for statistical computing and graphics | +| R-Studio | RStudio is an Integrated Development Environment (IDE) for R | +| Spyder | Spyder is a free and open source scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts | + +As you can see, the above list should be sufficient for any data science use cases, whether you are a student, teacher, freelancer or professional. + +#### DAT Linux Control Panel + +DAT Linux folks also thought of a proper way of finding and launching these extra apps. + +To do that, it brings DAT Linux Control Panel, a grid-based app launcher for the data science apps classified by functionalities in separate tabs. + +It also gives you several additional options for native DAT Linux apps such as software updater, programming language cheat sheets & references, etc. + +![DAT Linux Control Panel][9] + +Finally, this release brings [Linux Kernel 5.15 LTS][10] with [Python 3.10][11] & [LXQt 0.17][12] – which is the base for Ubuntu 22.04 LTS. + +#### Performance + +The performance metric is impressive. At its idle state, DAT Linux uses 500 MB to 700 MB of RAM, and the CPU is, on average, 4%. Most of the system resources are consumed by Systemd services. + +The metric obviously goes up when you run many data science applications and browsers. Since the idle state performance is good, I believe the heavy workload state should also be well-optimised. + +Also, it’s essential to remember that most data science work requires heavy computing power. Hence, it’s always better to use this distribution in modern hardware with the latest CPU families. + +![DAT Linux Performance at Idle State with 3 hours uptime][13] + +In addition to the above, DAT Linux takes around 10 GB of disk space for default installation and all the packages. + +### Wrapping Up + +Despite thousands of distros and variants, DAT Linux is unique because it is a blend of Lubuntu LTS with only Data Science packages. As per my little knowledge, only Fedora has a spin called “[Fedora Scientific][14]“, which mainly deals with scientific software. + +However, DAT Linux did well by packaging all the necessary apps with a front-end to manage them. One of the main aspects is that this distro will save time from installing and configuring all these apps by a general user. + +Also, the Ubuntu LTS base with LXQt desktop is a suitable choice. Although, I believe a better File manager (such as Dolphin or Nemo) would have been better than PCManFM-Qt. + +Other than that, it’s a complete distro and performs well. I hope it goes out of Beta soon and gets a first stable release. + +You can download DAT Linux from the [official website][15]. + +So, what do you think about this distro? Would it be successful in its target niche community? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/dat-linux-review/ + +作者:[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/07/DAT-Linux-1.0b-Desktop.jpg +[2]: https://www.debugpoint.com/lubuntu-22-04-lts/ +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ +[5]: https://www.debugpoint.com/great-kde-apps-part-2/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/Muon-Package-Manager2.jpg +[7]: https://github.com/hakaishi/nobleNote +[8]: https://datlinux.com/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/DAT-Linux-Control-Panel.jpg +[10]: https://www.debugpoint.com/linux-kernel-5-15/ +[11]: https://www.debugpoint.com/install-python-3-10-ubuntu/ +[12]: https://www.debugpoint.com/lxqt-0-17-release/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/DAT-Linux-Performance-at-Idle-State-with-3-hours-uptime.jpg +[14]: https://labs.fedoraproject.org/en/scientific/ +[15]: https://datlinux.com/download/ From 6789032b45b1ee2e75aff29ab3fce0e8cbcd2a33 Mon Sep 17 00:00:00 2001 From: MCGA Date: Sat, 9 Jul 2022 21:34:35 -0500 Subject: [PATCH 0315/3123] Update 20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md --- ... Commands Tutorial - Getting Started With Docker In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md b/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md index 39311137ac..c20745ce6f 100644 --- a/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md +++ b/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/getting-started-with-docker/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MCGA" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7008bb0ece4536d5c53c5ecc57955d4d6dbdcbd9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 10 Jul 2022 11:30:34 +0800 Subject: [PATCH 0316/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @fenglyulin 感谢您,完成了第一篇翻译贡献! --- ...ome Language Barrier Is Now Open-Source.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md index 738a374216..79d2d36fe1 100644 --- a/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md +++ b/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md @@ -3,49 +3,52 @@ [#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" [#]: collector: "lkxed" [#]: translator: "fenglyulin" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Meta 的帮助克服语言障碍的 AI 模型现已开源 +Meta 开源了语言翻译 AI 模型 ====== -Meta 的 No Language Left Behind (不落下任何语言)是一个宏大的开源项目,旨在以最高准确度翻译语言。 + +> Meta 的 “不落下任何语言No Language Left Behind” 是一个宏大的开源项目,旨在以最高准确度翻译语言。 ![meta][1] -Meta(Facebook 的前身)在开源世界做出了不小的贡献。Meta 除了专注于元宇宙(Metaverse)和其社交媒体平台外,还致力于各种研究和创新工作,比如 React(一个 JaveScript 库)。 +Meta(前身是 Facebook)在开源世界做出了不小的贡献。Meta 除了专注于元宇宙Metaverse和其社交媒体平台外,还致力于各种研究和创新工作,比如 React(一个 JaveScript 库)。 -现在,在 Meta 的研究人员决定开源一个叫“*No Language Left Behind(不落下任何语言)*” +现在,Meta 的研究人员决定开源一个叫 “不落下任何语言No Language Left Behind” 项目。 -### Meta 在 Leave No Language Behind 项目中的尝试 +(LCTT 校注:这个直译项目名称不够好听,我来抛砖引玉,似可称做“无人独语”,读者有什么建议吗?) + +### Meta 试图不落下任何语言 ![200 languages within a single AI model: A breakthrough in high-quality machine translation][2] 目前,虽然世界上有大约 7000 个在使用中的语言,但大多数在线的内容都是以少数的流行语言来提供的,比如英语。这让许多不懂这些语言的人处于不利的地位。 -虽然现存的许多翻译工具,但语法错误会让错误变得难以阅读和理解。另外,如果你想把内容翻译到一个不流行的语言(特别是非洲和亚洲的一些语言),翻译体验不会很好。 +虽然现存的许多翻译工具,但语法错误会让错误变得难以阅读和理解。另外,如果你想把内容翻译为一个不流行的语言(特别是非洲和亚洲的一些语言),翻译体验不会很好。 因此,Meta 正在开发有最高质量的翻译工具,可以帮助解决这一全球性的问题。 -NLLB-200(No Language Left Behind,不落下任何语言) 是一个人工智能翻译模型,其可以翻译200多种语言。该模型在每种语言中的翻译性能是通过一个名为 FLORES-200 复杂数据集来确定和评估的。 +NLLB-200(不落下任何语言No Language Left Behind) 是一个人工智能翻译模型,其可以翻译 200 多种语言。该模型在每种语言中的翻译结果是通过一个名为 FLORES-200 复杂数据集来确定和评估的。 -正如 Meta 所说,NLLB 的翻译结果比以前的人工智能研究方法好40% 。对于一些最不常见的语言,其翻译准确率甚至超过70%。了不起的工作! +正如 Meta 所说,NLLB 的翻译结果比以前的人工智能研究方法好 40% 。对于一些最不常见的语言,其翻译准确率甚至超过 70%。了不起的工作! -为了帮助开发项目和提高模型的翻译质量,Meta 向所有感兴趣的研究人员开放了源代码,包括 NLLB-200 模型、 FLORES-200 数据库、模型训练和重建训练数据库的代码。 +为了帮助开发项目和提高模型的翻译质量,Meta 向所有感兴趣的研究人员开放了源代码,包括 NLLB-200 模型、FLORES-200 数据库、模型训练和重建训练数据库的代码。 -你可以在 [GitHub][3] 上找到源代码,并且可以在项目的 [博客][4] 上了解有关该项目的更多信息。 +你可以在 [GitHub][3] 上找到源代码,并且可以在该项目的 [博客][4] 上了解它的更多信息。 ### 对社会事业的鼓励 -Meta 宣布向从事联合国可持续发展目标(UN Sustainable Development Goals)和翻译非洲语言的、任何地区的非营利组织和研究人员提供高达20万美元的捐赠,目前也鼓励其他学术领域如语言学和机器翻译的研究人员申请。 +Meta 宣布向从事联合国可持续发展目标UN Sustainable Development Goals任何领域工作和翻译非洲语言的非营利组织和研究人员提供高达 20 万美元的捐赠,也鼓励其他学术领域如语言学和机器翻译的研究人员申请。 ### 项目的影响 -尽管 Meta 主要打算在其数字平台上,特别是在 Metaverse上使用 NLLB,但 NLLB 也有可能在其他领域产生巨大影响。 +尽管 Meta 主要打算在其数字平台上,特别是在“元宇宙”上使用 NLLB,但 NLLB 也有可能在其他领域产生巨大影响。 许多用户可以用他们的母语轻松地访问和阅读在线资源。项目开源后,社区应该能够帮助实现这个目标。 -*你对 Meta的这个项目有什么看法?* +*你对 Meta 的这个项目有什么看法?* -------------------------------------------------------------------------------- @@ -54,7 +57,7 @@ via: https://news.itsfoss.com/meta-open-source-ai-model/ 作者:[Rishabh Moharir][a] 选题:[lkxed][b] 译者:[fenglyulin](https://github.com/fenglyulin) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8f98a14ab5877bc6159e499a10babbb22e8a1799 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 10 Jul 2022 11:31:23 +0800 Subject: [PATCH 0317/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @fenglyulin 本文首发地址:https://linux.cn/article-14812-1.html 您的 LCTT 专页:https://linux.cn/lctt/fenglyulin --- ...That Helps Overcome Language Barrier Is Now Open-Source.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md (98%) diff --git a/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/published/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md similarity index 98% rename from translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md rename to published/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md index 79d2d36fe1..df302ffce7 100644 --- a/translated/news/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md +++ b/published/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "fenglyulin" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14812-1.html" Meta 开源了语言翻译 AI 模型 ====== From f0623d510d99fc3db9ff5cb8c801a65f7c80df09 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 10 Jul 2022 16:40:07 +0800 Subject: [PATCH 0318/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220707 Check disk usage in Linux.md | 155 ------------------ .../20220707 Check disk usage in Linux.md | 155 ++++++++++++++++++ 2 files changed, 155 insertions(+), 155 deletions(-) delete mode 100644 sources/tech/20220707 Check disk usage in Linux.md create mode 100644 translated/tech/20220707 Check disk usage in Linux.md diff --git a/sources/tech/20220707 Check disk usage in Linux.md b/sources/tech/20220707 Check disk usage in Linux.md deleted file mode 100644 index 89f9dcaa8f..0000000000 --- a/sources/tech/20220707 Check disk usage in Linux.md +++ /dev/null @@ -1,155 +0,0 @@ -[#]: subject: "Check disk usage in Linux" -[#]: via: "https://opensource.com/article/22/7/check-disk-usage-linux" -[#]: author: "Don Watkins https://opensource.com/users/don-watkins" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Check disk usage in Linux -====== -The du and ncdu commands provide two different views of the same information, making it easy to keep track of what's stored on your computer. - -![Data stack in blue][1] - -Knowing how much of your disk is being used by your files is an important consideration, no matter how much storage you have. My laptop has a relatively small 250GB NVME drive. That's okay most of the time, but I began to explore gaming on Linux a couple of years ago. Installing Steam and a few games can make storage management more critical. - -### The du command - -The easiest way to examine what's left for storage on your disk drive is the [du command][2]. This command line utility estimates file space usage. Like all Linux tools, `du` is very powerful, but knowing how to use it for your particular needs is helpful. I always consult the man page for any utility. This specific tool has several switches to give you the best possible snapshot of file storage and how much space they consume on your system. - -There are many options for the `du` command. Here are some of the common ones: - -* -a - write counts for all files and not just directories -* --apparent-size - prints apparent sizes rather than disk usage -* -h - human-readable format -* -b - bytes -* -c -grand total -* -k - block size -* -m - size in megabytes - -Be sure to check the `du` man page for a complete listing. - -#### Display all files - -The first option you could choose is `du -a`. It provides a readout of all files on your system and the directories they are stored in. This command lets me know I've got 11555168 bytes stored in my home directory. Using `du -a` provides a quick recursive look at my storage system. What if I want a more meaningful number, and I want to drill down into the directories to see where the big files are on my system? - -I think there are some big files in my `Downloads` directory, so I enter `du -a /home/don/Downloads` to get a good look at that `Downloads` directory. - -``` -$ du -a ~/Downloads -4923    ./UNIX_Driver_5-0/UNIX Driver 50 -4923    ./UNIX_Driver_5-0 -20     ./epel-release-latest-9.noarch.rpm -12    ./rpmfusion-free-release-9.noarch.rpm -2256    ./PZO9297 000 Cover.pdf -8    ./pc.md -2644    ./geckodriver-v0.31.0-linux64.tar.gz -466468 -``` - -The numbers on the far left are the file sizes in bytes. I want something more helpful to me so I add the switch for the human-readable format to my `du -h /home/don/Downloads` command. The result is 4.8 G(igabytes) which is a more useful number format for me. - -``` -$ du -a ~/Downloads -4.9M    ./UNIX_Driver_5-0/UNIX Driver 50 -4.9M    ./UNIX_Driver_5-0 -20K    ./epel-release-latest-9.noarch.rpm -12K    ./rpmfusion-free-release-9.noarch.rpm -2.2M    ./PZO9297 000 Cover.pdf -8.0K    ./pc.md -2.6M    ./geckodriver-v0.31.0-linux64.tar.gz -456M    . -``` - -As with most Linux commands, you can combine options. To look at your `Downloads` directory in a human-readable format, use the `du -ah ~/Downloads` command. - -**[[ Read also: 5 Linux commands to check free disk space ]][3]** - -#### Grand total - -The `-c` option provides a grand total for disk usage at the last line. I can use `du -ch /home/don` to display every file and directory in my home directory. There is a lot of information, and I really just want what is at the end, so I will pipe the disk usage command to `tail`. The command is `du -ch /home/don | tail`. - -![pipe the du command output into tail][4] - -Image by: - -(Don Watkins, CC BY-SA 4.0) - -### The ncdu command - -Another option for Linux users interested in what is stored on their drive is the [ncdu command][5]. The command stands for *NCurses Disk Usage*. Depending on your Linux distribution, you may need to download and install it. - -On Linux Mint, Elementary, Pop_OS!, and other Debian-based distributions: - -``` -$ sudo apt install ncdu -``` - -On Fedora, Mageia, and CentOS: - -``` -$ sudo dnf install ncdu -``` - -On Arch, Manjaro, and similar: - -``` -$ sudo pacman -S ncdu -``` - -Once installed, you can use `ncdu` to analyze your filesystem. Here is a sample output after issuing `ncdu` inside my home directory. The man page for `ncdu` states that "ncdu (NCurses Disk Usage) is a curses-based version of the well-known `du`, and provides a fast way to see what directories are using your disk space." - -![du command home directory output][6] - -Image by: - -(Don Watkins, CC BY-SA 4.0) - -I can use the arrow keys to navigate up and down and press the **Enter** key to enter a directory. An interesting note is that `du` reported total disk usage in my home directory as 12GB, and `ncdu` reports that I have total disk usage of 11GB. You can find more information in the `ncdu` man page. - -You can explore a particular directory by pointing `ncdu` to that directory. For example, `ncdu /home/don/Downloads`. - -![ncdu command output][7] - -Image by: - -(Don Watkins, CC BY-SA 4.0) - -Press the **?** key to display the Help menu - -![ncdu help][8] - -Image by: - -(Don Watkins, CC BY-SA 4.0) - -### Wrap up - -The `du` and `ncdu` commands provide two different views of the same information, making it easy to keep track of what's stored on your computer. - -If you're not comfortable in the terminal or just looking for yet another view of this kind of information, check out the [GNOME Disk Usage Analyzer][9]. You can easily install and use it if it's not already on your system. Check your distribution for `baobab` and install it if you'd like to experiment. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/check-disk-usage-linux - -作者:[Don Watkins][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/don-watkins -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/data_stack_blue_disks.png -[2]: https://opensource.com/article/21/7/check-disk-space-linux-du -[3]: https://opensource.com/article/18/7/how-check-free-disk-space-linux -[4]: https://opensource.com/sites/default/files/2022-06/1-du-tail.png -[5]: https://opensource.com/article/21/8/ncdu-check-free-disk-space-linux -[6]: https://opensource.com/sites/default/files/2022-06/2home.png -[7]: https://opensource.com/sites/default/files/2022-06/3downloads.png -[8]: https://opensource.com/sites/default/files/2022-06/4ncdu.png -[9]: https://help.gnome.org/users/baobab/stable/ diff --git a/translated/tech/20220707 Check disk usage in Linux.md b/translated/tech/20220707 Check disk usage in Linux.md new file mode 100644 index 0000000000..5198983600 --- /dev/null +++ b/translated/tech/20220707 Check disk usage in Linux.md @@ -0,0 +1,155 @@ +[#]: subject: "Check disk usage in Linux" +[#]: via: "https://opensource.com/article/22/7/check-disk-usage-linux" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +检查 Linux 磁盘使用情况 +====== +du 和 ncdu 两个命令提供了相同信息的两种不同视图,便于我们跟踪存储在计算机上的内容。 + +![Data stack in blue][1] + +无论你有多少存储空间,了解文件占用了多少磁盘空间都是一个重要的考虑事项。我的笔记本有一个相对较小的 250GB NVME 驱动器,大多数时候都没什么问题,但几年前我开始探索 Linux 上的游戏,情况变得有所不同,安装 Steam 和其他游戏使存储管理更加重要。 + +### du 命令 + +检查磁盘驱动器上剩余存储空间最简单的方法是 [du 命令][2]。它会估计文件空间使用情况,像其他所有 Linux 工具一样,`du` 非常强大,但知道如何根据你的特定需求使用它会很有帮助。我总是查阅 man 页面来获取实用程序。du 有几个选项,可以为你提供文件存储的最佳快照,以及它们在系统上消耗多少空间。 + +`du` 命令有很多选项,以下是一些常见的: + +* -a - 包括文件夹和文件在内的存储信息 +* --apparent-size - 打印自身大小而不是占用磁盘量 +* -h - 人类可读的格式 +* -b - 字节 +* -c -总计 +* -k - 块大小 +* -m - 以兆字节为单位的大小 + +务必查看 `du` 手册页获取完整帮助列表。 + +#### 显示所有文件 + +你可以选择的第一个选项是 `du -a`,它可以显示系统上所有文件及其存储目录的大小。这个命令让我知道了我的主目录中存储了 11555168 个字节。使用 `du -a` 可以快速递归地查看我的存储系统。如果我想要一个更有意义的数字,并且我想深入到目录中查看大文件的位置,该怎么办? + +我认为在 `Downloads` 目录下有一些大文件,所以我输入 `du -a /home/don/Downloads` 来查看。 + +``` +$ du -a ~/Downloads +4923    ./UNIX_Driver_5-0/UNIX Driver 50 +4923    ./UNIX_Driver_5-0 +20     ./epel-release-latest-9.noarch.rpm +12    ./rpmfusion-free-release-9.noarch.rpm +2256    ./PZO9297 000 Cover.pdf +8    ./pc.md +2644    ./geckodriver-v0.31.0-linux64.tar.gz +466468 +``` + +最左边的数字是以字节为单位的文件大小。我想要一些对我更有帮助的东西,所以我将人类可读格式的选项添加到命令中,结果是 4.8G(千兆字节),这对我来说是一种更有用的数字格式。(to 校正:这个 4.8G 不知道从何而来) + +``` +$ du -ah ~/Downloads +4.9M    ./UNIX_Driver_5-0/UNIX Driver 50 +4.9M    ./UNIX_Driver_5-0 +20K    ./epel-release-latest-9.noarch.rpm +12K    ./rpmfusion-free-release-9.noarch.rpm +2.2M    ./PZO9297 000 Cover.pdf +8.0K    ./pc.md +2.6M    ./geckodriver-v0.31.0-linux64.tar.gz +456M    . +``` + +与大多数 Linux 命令一样,你可以组合选项,要以人类可读的格式查看 `Downloads` 目录,使用 `du -ah ~/Downloads` 命令。 + +**[[ 另请阅读:检查可用磁盘空间的 5 个 Linux 命令 ]][3]** + +#### 总和 + +`-c` 选项在最后一行提供了磁盘使用总和。我可以使用 `du -ch /home/don` 来显示主目录中的每个文件和目录。这里有很多信息,我只想知道最后一行的信息,所以我将磁盘使用命令通过管道传输给 `tail`。命令是 `du -ch /home/don | tail`。(to 校正:这条命令似乎没卵用,在 Ubuntu 试验过) + +![将 du 命令输出通过管道传输到 tail][4] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +### ncdu 命令 + +对存储在驱动器上内容感兴趣的 Linux 用户,另一个选择是 [ncdu 命令][5],它代表 *NCurses 磁盘使用情况*。基于你的 Linux 发行版,你可能需要下载并安装它。 + +在 Linux Mint、Elementary、Pop_OS! 或其它基于 Debian 的发行版上: + +``` +$ sudo apt install ncdu +``` + +在 Fedora、Mageia 或 CentOS 上: + +``` +$ sudo dnf install ncdu +``` + +在 Arch、Manjar 或者类似发行版上: + +``` +$ sudo pacman -S ncdu +``` + +安装后,你可以使用 ncdu 来分析你的文件系统。以下是在我的主目录中发出 `ncdu` 后的示例输出。`ncdu` 的 man 页面指出“ncdu(NCurses Disk Usage)是众所周知的 `du` 基于 curses 的版本,它提供了一种快速查看哪些目录正在使用磁盘空间的方法。” + +![du 命令输出][6] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +我可以使用方向键上下导航,按下 **Enter** 键进入目录。有趣的是,`du` 报告我的主目录中的总磁盘使用量为 12GB,而 `ncdu` 显示为 11GB。你可以在 `ncdu` 手册页中找到更多信息。 + +你可以将 `ncdu` 指向某个目录来探索特定目录。例如,`ncdu /home/don/Downloads`。 + +![ncdu 命令输出][7] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +按 **?** 键显示帮助菜单。 + +![ncdu 帮助][8] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +### 总结 + +`du` 和 `ncdu` 两个命令提供了相同信息的两种不同视图,便于我们跟踪存储在计算机上的内容。 + +如果你不习惯使用终端,或者只是在寻找此类信息的另一种试图,查看 [GNOME 磁盘使用分析器][9]。如果你的系统上还没有它,你可以轻松安装和使用它。检查你的发行版是否有 `baobab`,如果你想进行尝试,去安装它。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/check-disk-usage-linux + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/data_stack_blue_disks.png +[2]: https://opensource.com/article/21/7/check-disk-space-linux-du +[3]: https://opensource.com/article/18/7/how-check-free-disk-space-linux +[4]: https://opensource.com/sites/default/files/2022-06/1-du-tail.png +[5]: https://opensource.com/article/21/8/ncdu-check-free-disk-space-linux +[6]: https://opensource.com/sites/default/files/2022-06/2home.png +[7]: https://opensource.com/sites/default/files/2022-06/3downloads.png +[8]: https://opensource.com/sites/default/files/2022-06/4ncdu.png +[9]: https://help.gnome.org/users/baobab/stable/ From 7e0c10c24c78955bd8dab85f52f4ac3e22451d6b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 10 Jul 2022 18:27:06 +0800 Subject: [PATCH 0319/3123] RP @robsean https://linux.cn/article-14813-1.html --- ...ng for modular libraries works on Linux.md | 223 ++++++++++++++++++ ...ng for modular libraries works on Linux.md | 223 ------------------ 2 files changed, 223 insertions(+), 223 deletions(-) create mode 100644 published/20220531 How dynamic linking for modular libraries works on Linux.md delete mode 100644 translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md diff --git a/published/20220531 How dynamic linking for modular libraries works on Linux.md b/published/20220531 How dynamic linking for modular libraries works on Linux.md new file mode 100644 index 0000000000..a3fab8faa0 --- /dev/null +++ b/published/20220531 How dynamic linking for modular libraries works on Linux.md @@ -0,0 +1,223 @@ +[#]: subject: "How dynamic linking for modular libraries works on Linux" +[#]: via: "https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14813-1.html" + +如何在 Linux 上动态链接模块库 +====== + +![](https://img.linux.net.cn/data/attachment/album/202207/10/182540caie7ldrefflffah.jpg) + +> 学习如何用动态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。 + +当使用 C 编程语言编写一个应用程序时,你的代码通常有多个源文件代码。 + +最终,这些文件必须被编译到一个单个的可执行文件之中。你可以通过创建静态或动态库(后者也被称为 共享shared 库)来实现这一点。这两种类型的库在创建和链接的方式上有所不同。两者都有缺点和优点,这取决于你的使用情况。 + +动态链接是最常见的方法,尤其是在 Linux 系统上。动态链接会保持库模块化,因此,很多应用程序可以共享一个库。应用程序的模块化也允许单独更新其依赖的共享库。 + +在这篇文章中,我将演示动态链接是如何工作的。在后期的文章中,我将演示静态链接。 + +### 链接器 + +链接器linker是一个命令,它将一个程序的数个部分结合在一起,并为它们重新组织内存分配。 + +链接器的功能包括: + +* 整合一个程序的所有的部分 +* 计算出一个新的内存组织结构,以便所有的部分组合在一起 +* 恢复内存地址,以便程序可以在新的内存组织结构下运行 +* 解析符号引用 + +链接器通过这些功能,创建了一个名为可执行文件executable的可以运行的程序。在你创建一个动态链接的可执行文件前,你需要一些用来链接的库,和一个用来编译的应用程序。准备好你 [最喜欢的文本编辑器][2] 并继续。 + +### 创建目标文件 + +首先,创建带有这些函数签名的头文件 `mymath.h` : + +``` +int add(int a, int b); +int sub(int a, int b); +int mult(int a, int b); +int divi(int a, int b); +``` + +使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件。我将把所有的代码都放置到一个代码块中,请将其分为四个文件,如注释所示: + +``` +// add.c +int add(int a, int b){ +return (a+b); +} + +//sub.c +int sub(int a, int b){ +return (a-b); +} + +//mult.c +int mult(int a, int b){ +return (a*b); +} + +//divi.c +int divi(int a, int b){ +return (a/b); +} +``` + +现在,使用 GCC 来创建目标文件 `add.o`、`sub.o`、`mult.o` 和 `divi.o` : + +(LCTT 校注:关于“目标文件object file”,有时候也被称作“对象文件”,对此,存在一些译法混乱情形,称之为“目标文件”的译法比较流行,本文采用此译法。) + +``` +$ gcc -c add.c sub.c mult.c divi.c +``` + +`-c` 选项跳过链接步骤,并且只创建目标文件。 + +### 创建一个共享的目标文件 + +在最终的可执行文件的执行过程中将链接动态库。在最终的可执行文件中仅放置动态库的名称。实际上的链接过程发生在运行时,在此期间,可执行文件和库都被放置到了主内存中。 + +除了可共享外,动态库的另外一个优点是它减少了最终的可执行文件的大小。在一个应用程序最终的可执行文件生成时,其使用的库只包括该库的名称,而不是该库的一个多余的副本。 + +你可以从你现有的示例代码中创建动态库: + +``` +$ gcc -Wall -fPIC -c add.c sub.c mult.c divi.c +``` + +选项 `-fPIC` 告诉 GCC 来生成位置无关的代码position-independent code(PIC)。`-Wall` 选项不是必需的,并且与代码的编译方式是无关的。不过,它却是一个有价值的选项,因为它会启用编译器警告,这在排除故障时是很有帮助的。 + +使用 GCC ,创建共享库 `libmymath.so` : + +``` +$ gcc -shared -o libmymath.so add.o sub.o mult.o divi.o +``` + +现在,你已经创建了一个简单的示例数学库 `libmymath.so` ,你可以在 C 代码中使用它。当然,也有非常复杂的 C 库,这就是他们这些开发者来生成最终产品的工艺流程,你和我可以安装这些库并在 C 代码中使用。 + +接下来,你可以在一些自定义代码中使用你的新数学库,然后链接它。 + +### 创建一个动态链接的可执行文件 + +假设你已经为数学运算编写了一个命令。创建一个名称为 `mathDemo.c` 的文件,并将这些代码复制粘贴至其中: + +``` +#include +#include +#include + +int main() +{ + int x, y; + printf("Enter two numbers\n"); + scanf("%d%d",&x,&y); + + printf("\n%d + %d = %d", x, y, add(x, y)); + printf("\n%d - %d = %d", x, y, sub(x, y)); + printf("\n%d * %d = %d", x, y, mult(x, y)); + + if(y==0){ + printf("\nDenominator is zero so can't perform division\n"); + exit(0); + }else{ + printf("\n%d / %d = %d\n", x, y, divi(x, y)); + return 0; + } +} +``` + +注意:第一行是一个 `include` 语句,通过名称来引用你自己的 `libmymath` 库。要使用一个共享库,你必须已经安装了它,如果你没有安装你将要使用的库,那么当你的可执行文件在运行并搜索其包含的库时,将找不到该共享库。如果你需要在不安装库到已知目录的情况下编译代码,这里有 [一些方法可以覆盖默认设置][3]。不过,对于一般使用来说,我们希望库存在于已知的位置,因此,这就是我在这里演示的东西。 + +复制文件 `libmymath.so` 到一个标准的系统目录,例如:`/usr/lib64`, 然后运行 `ldconfig` 。`ldconfig` 命令创建所需的链接,并缓存到标准库目录中发现的最新共享库。 + +``` +$ sudo cp libmymath.so /usr/lib64/ +$ sudo ldconfig +``` + +### 编译应用程序 + +从你的应用程序源文件代码(`mathDemo.c`)中创建一个名称为 `mathDemo.o` 的目标文件: + +``` +$ gcc -I . -c mathDemo.c +``` + +`-I` 选项告诉 GCC 来在其后所列出的目录中搜索头文件(在这个示例中是 `mymath.h`)。在这个示例中,你指定的是当前目录,通过一个单点(`.`)来表示。创建一个可执行文件,使用 `-l` 选项来通过名称来引用你的共享数学库: + +``` +$ gcc -o mathDynamic mathDemo.o -lmymath +``` + +GCC 会找到 `libmymath.so` ,因为它存在于一个默认的系统库目录中。使用 `ldd` 来查证所使用的共享库: + +``` +$ ldd mathDemo + linux-vdso.so.1 (0x00007fffe6a30000) + libmymath.so => /usr/lib64/libmymath.so (0x00007fe4d4d33000) + libc.so.6 => /lib64/libc.so.6 (0x00007fe4d4b29000) + /lib64/ld-linux-x86-64.so.2 (0x00007fe4d4d4e000) +``` + +看看 `mathDemo` 可执行文件的大小: + +``` +$ du ./mathDynamic +24 ./mathDynamic +``` + +当然,它是一个小的应用程序,它所占用的磁盘空间量也反映了这一点。相比之下,相同代码的一个静态链接版本(正如你将在我后期的文章所看到的一样)是 932K ! + +``` +$ ./mathDynamic +Enter two numbers +25 +5 + +25 + 5 = 30 +25 - 5 = 20 +25 * 5 = 125 +25 / 5 = 5 +``` + +你可以使用 `file` 命令来查证它是动态链接的: + +``` +$ file ./mathDynamic +./mathDynamic: ELF 64-bit LSB executable, x86-64, +dynamically linked, +interpreter /lib64/ld-linux-x86-64.so.2, +with debug_info, not stripped +``` + +成功! + +### 动态链接 + +因为链接发生在运行时,所以,使用一个共享库会产生一个轻量型的可执行文件。因为它在运行时解析引用,所以它会花费更多的执行时间。不过,因为在日常使用的 Linux 系统上绝大多数的命令是动态链接的,并且在现代硬件上,所能节省的时间是可以忽略不计的。对开发者和用户来说,它的固有模块性是一种强大的功能。 + +在这篇文章中,我描述了如何创建动态库,并将其链接到一个最终可执行文件。在我的下一篇文章中,我将使用相同的源文件代码来创建一个静态链接的可执行文件。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux + +作者:[Jayashree Huttanagoudar][a] +选题:[lkxed][b] +译者:[robsean](https://github.com/robsean) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jayashree-huttanagoudar +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/links.png +[2]: https://opensource.com/article/21/2/open-source-text-editors +[3]: https://opensource.com/article/22/5/compile-code-ldlibrarypath diff --git a/translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md b/translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md deleted file mode 100644 index ba77ff4d47..0000000000 --- a/translated/tech/20220531 How dynamic linking for modular libraries works on Linux.md +++ /dev/null @@ -1,223 +0,0 @@ -[#]: subject: "How dynamic linking for modular libraries works on Linux" -[#]: via: "https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux" -[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何在 Linux 上动态链接模块库 -====== -学习如何将多个 C 对象object 文件组合到一个带有动态库的单个可执行文件文件之中 - -![Links][1] - -图片作者: Paul Lewin ,由 Opensource.com 稍微修改,CC BY-SA 2.0 - -当不使用 C 编程语言编写一个应用程序时,你的代码通常有多个源文件代码。 - -归根结底,这些文件必需被编译到一个单个的可执行文件之中。你可以通过创建静态或动态库 (后者也被称为 共享shared 库) 来实现这一点。这两种类型的库在创建和链接方面有所差异。两者都有缺点和优点,这取决于你的使用实例。 - -动态链接是最常见的方法,由其是在 Linux 系统上。动态链接会保持库模块化,因此,很多应用程序可以共享一个库。应用程序的模块化也允许单独更新其依赖的共享库。 - -在这篇文章中,我将演示动态链接是如何工作的。在后期的文章中,我将演示静态链接。 - -### 链接器 - -链接器是一个命令,它将一个程序的数个部分组合到一起,并为它们重新组织存储器分配。 - -链接器的功能包括: - -* 集成一个程序的所有的部分 -* 计算组织出一个新的存储器结构,以便所有的部分组合在一起 -* 重新复活存储器地址,以便程序可以在新的存储器组织下运行 -* 解析符号引用 - -作为这些链接器功能的结果,创建了一个名称为可执行文件的一个可运行程序。在你创建一个动态链接的可执行文件前,你需要一些将被链接 *到* 的库,和一个应用程序来编译。准备好你 [最喜欢的文本编辑器][2] 并继续。 - -### 创建 对象object 文件 - -首先,创建带有这些函数识别标志的头文件 `mymath.h` : - -``` -int add(int a, int b); -int sub(int a, int b); -int mult(int a, int b); -int divi(int a, int b); -``` - -使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件。我将把所有的代码都放置到一个代码块中,因此将其分为四个文件,如注释所示: - -``` -// add.c -int add(int a, int b){ -return (a+b); -} - -//sub.c -int sub(int a, int b){ -return (a-b); -} - -//mult.c -int mult(int a, int b){ -return (a*b); -} - -//divi.c -int divi(int a, int b){ -return (a/b); -} -``` - -现在,使用 GCC 来创建对象文件 `add.o`、`sub.o`、`mult.o` 和 `divi.o` : - -``` -$ gcc -c add.c sub.c mult.c divi.c -``` - -`-c` 选项跳过链接步骤,并且只创建对象文件。 - -### 创建一个共享的对象文件 - -在最终可执行文件的执行过程中将链接动态库。在最终可执行文件中仅放置动态库的名称。实际上的链接过程发生在运行时,在此期间,可执行文件和库都被放置到了主存储器之中。 - -除了可共享外,动态库的另外一个优点是它减少最终可执行文件的大小。在一个应用程序的最终可执行文件生成时,其使用的库只包括该库的名称,而不再包含该库的一个多余的副本。 - -你可以从你现有的示例代码中创建动态库: - -``` -$ gcc -Wall -fPIC -c add.c sub.c mult.c divi.c -``` - -选项 `-fPIC` 告诉 GCC 来生成位置独立代码 (PIC) 。`-Wall` 选项不是必需的,并且与代码的编译方式是无关的。不过,它却是有价值的选项,因为它会启用编译器警告,这在解决难题时是很有帮助的。 - -使用 GCC ,创建共享库 `libmymath.so` : - -``` -$ gcc -shared -o libmymath.so \ -add.o sub.o mult.o divi.o -``` - -现在,你已经创建了一个简单的示例数学库 `libmymath.so` ,你可以在 C 代码中使用它。当然,这里有非常复杂的 C 库,这就是他们这些开发者来生成最终产品的工艺流程,你和我可以安装这些库并在 C 代码中使用。 - -接下来,你可以在一些自定义代码中使用你的新的数学库,然后链接它。 - -### 创建一个动态链接的可执行文件 - -假设你已经为数学运算编写了一个命令。创建一个名称为 `mathDemo.c` 的文件,并将这些代码复制粘贴至其中: - -``` -#include -#include -#include - -int main() -{ - int x, y; - printf("Enter two numbers\n"); - scanf("%d%d",&x,&y); - - printf("\n%d + %d = %d", x, y, add(x, y)); - printf("\n%d - %d = %d", x, y, sub(x, y)); - printf("\n%d * %d = %d", x, y, mult(x, y)); - - if(y==0){ - printf("\nDenominator is zero so can't perform division\n"); - exit(0); - }else{ - printf("\n%d / %d = %d\n", x, y, divi(x, y)); - return 0; - } -} -``` - -注意:第一行是一个 `include` 语句,通过名称来引用你自己的 `libmymath` 库。为使用一个共享库,你必须已经安装了它,如果你没有安装你将要使用的库,那么当你的可执行文件在运行和搜索其包含的库时,它将不能找到共享库。在已知目录中未安装所需库的情况下,你需要能够编译代码,这里有 [一些方法来重写默认的设置][3]。不过,对于一般使用来说,库存在于已知位置是可以预期的,因此,这就是我在这里演示的东西。 - -复制文件 `libmymath.so` 到一个标准的系统目录,例如:`/usr/lib64`, 然后运行 `ldconfig` 。`ldconfig` 命令会在标准库目录中创建所需要的链接,并将其缓存到可找到的最近的共享库。 - -``` -$ sudo cp libmymath.so /usr/lib64/ -$ sudo ldconfig -``` - -### 编译应用程序 - -从你的应用程序源文件代码 (`mathDemo.c`) 中创建一个名称为 `mathDemo.o` 的对象文件: - -``` -$ gcc -I . -c mathDemo.c -``` - -`-I` 选项告诉 GCC 来在其后所列出的目录中搜索头文件 (在这个实例中是 `mymath.h` )。在这个实例中,你正在具体指定当前目录,通过一个单个点 (`.` ) 来表示。创建一个可执行文件,使用 `-l` 选项来通过名称来引用到你的共享数学库: - -``` -$ gcc -o mathDynamic mathDemo.o -lmymath -``` - -GCC 会找到 `libmymath.so` ,因为它存在于一个默认的系统库目录中。使用 `ldd` 来查证所使用的共享库: - -``` -$ ldd mathDemo - linux-vdso.so.1 (0x00007fffe6a30000) - libmymath.so => /usr/lib64/libmymath.so (0x00007fe4d4d33000) - libc.so.6 => /lib64/libc.so.6 (0x00007fe4d4b29000) - /lib64/ld-linux-x86-64.so.2 (0x00007fe4d4d4e000) -``` - -看看 `mathDemo` 可执行文件的大小: - -``` -$ du ./mathDynamic -24 ./mathDynamic -``` - -当然,它是一个小的应用程序,它所占用的磁盘空间量也反映了这一点。相比之下,相同代码的一个静态链接版本 (正如你将在我后期的文章所看到的一样) 是 932K ! - -``` -$ ./mathDynamic -Enter two numbers -25 -5 - -25 + 5 = 30 -25 - 5 = 20 -25 * 5 = 125 -25 / 5 = 5 -``` - -你可以使用 `file` 命令来查证它是动态链接的: - -``` -$ file ./mathDynamic -./mathDynamic: ELF 64-bit LSB executable, x86-64, -dynamically linked, -interpreter /lib64/ld-linux-x86-64.so.2, -with debug_info, not stripped -``` - -成功! - -### 动态链接 - -因为链接发生在运行时,所以,使用一个共享库会导致产生一个轻量型的可执行文件。因为它在运行时解析引用,所以它会花费更多的执行时间。不过,因为 在日常使用的 Linux 系统上绝大多数的命令是动态链接的,并且在现代硬件上,所以和使用静态编译程序所能节省的时间相比是可以忽略的。对开发者和用户来说,它的固有模块性是一种强大的特色功能。 - -在这篇文章中,我描述了如何创建动态库并将其链接到一个最终可执行文件。在我的下一篇文章中,我将使用相同的源文件代码来创建一个静态链接的可执行文件。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux - -作者:[Jayashree Huttanagoudar][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://opensource.com/users/jayashree-huttanagoudar -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/links.png -[2]: https://opensource.com/article/21/2/open-source-text-editors -[3]: https://opensource.com/article/22/5/compile-code-ldlibrarypath From 48c4bf1c6570aea729246c39ff73b9d05a048593 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 10 Jul 2022 23:33:17 +0800 Subject: [PATCH 0320/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220710=20How=20to=20Install=20yay=20AUR=20Helper?= =?UTF-8?q?=20in=20Arch=20Linux=20[Beginner-s=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Helper in Arch Linux [Beginner-s Guide].md | 162 ++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md diff --git a/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md b/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md new file mode 100644 index 0000000000..5b89e9183e --- /dev/null +++ b/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md @@ -0,0 +1,162 @@ +[#]: subject: "How to Install yay AUR Helper in Arch Linux [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-yay-arch/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install yay AUR Helper in Arch Linux [Beginner’s Guide] +====== +This beginner’s guide explains the steps to install the Yay AUR helper in Arch Linux. + +The yay is an abbreviation of ‘Yet Another Yogurt’. It is technically a [pacman][1] wrapper and AUR helper written in [Go programming languages][2]. It is the most popular [Arch User Repository (AUR)][3] helper available today. With Yay, you can take advantage of a vast Arch User Repository of packages and easily compile and install any software. + +It automates many package management tasks such as searching, resolving dependencies on the fly, compiling and building packages, and, of course, publishing your packages for AUR. + +Let’s look at how you can install Yay in Arch Linux or any Arch-based distro such as Manjaro. Once you install Arch Linux, you can install packages via pacman package manager from three main Arch official repo. But Yay is not installed by default after a fresh Arch Linux installation. Hence you need to install it to take advantage of AUR manually. + +This guide covers the below topics. + +* Install yay in Arch Linux +* Install yay in Manjaro +* How to use yay to install packages in Arch Linux and Manjaro +* Some yay tips + +### Install yay in Arch Linux + +#### Pre-requisite + +Open a terminal and run the below commands. Provide admin password when prompted. These steps require the [base-devel][4] package and git package for compilation and installation. + +``` +sudo pacman -S base-devel +``` + +``` +sudo pacman -S git +``` + +![Install git][5] + +#### Install yay + +The yay package has two versions in the Arch repository, as follows. + +[yay][6] – stable version[yay-git][7]– development version + +For this guide, I have used the stable version. Now, go to “/opt” directory and clone the git repo. + +``` +cd /optsudo git clone https://aur.archlinux.org/yay.git +``` + +![clone the yay repo][8] + +Change the owner of the source directory. Replace “debugpoint” with your user name. + +``` +sudo chown -R debugpoint:users ./yay +``` + +If you are unaware of the user or group, you can find the user and groups using the example below. + +``` +id debugpoint +``` + +Go to the directory and compile. + +``` +cd yay +``` + +``` +makepkg -si +``` + +This completes the installation for yay in Arch Linux. + +![Install yay in Arch Linux][9] + +### Install in yay in Manjaro + +If you are using Manjaro Linux, the yay package is available in the community repo. You can easily install using the following commands in Manjaro. + +``` +pacman -Syyupacman -S yay +``` + +Now, let’s look at how you can install any package using Yay and some basic yay usage. + +### How to use yay to install packages + +The first search on the AUR website to install any application to get the package name. For example, to install [featherpad][10] text editor, run the below command. + +``` +yay -S featherpad +``` + +After installation, you can find the application launcher in the application menu. + +![Install a sample application (featherpad) using yay][11] + +### Some yay tips + +You can also do many tweaks and system operations using yay. Some of the examples are below. + +**Refresh the system packages and upgrade:** + +``` +yay -Syu +``` + +**Use the development versions of packages and upgrade (be careful while running this command)**: + +``` +yay -Syu --devel --timeupdate +``` + +**Remove any packages (for example, featherpad)**: + +``` +yay -Rns featherpad +``` + +**Get a quick system stat:** + +![system stat using yay][12] + +``` +yay -Ps +``` + +I hope this beginner’s guide helped you install yay in [Arch Linux][13], then use yay for installing packages, and perform different system actions. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-yay-arch/ + +作者:[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://wiki.archlinux.org/index.php/pacman +[2]: https://golang.org/ +[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository +[4]: https://aur.archlinux.org/packages/meta-group-base-devel/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-git-1024x291.png +[6]: https://aur.archlinux.org/packages/yay/ +[7]: https://aur.archlinux.org/packages/yay-git/ +[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/clone-the-yay-repo-1024x271.png +[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-yay-in-Arch-Linux-1024x460.png +[10]: https://aur.archlinux.org/packages/featherpad-git/ +[11]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-a-sample-application-featherpad-using-yay-1024x620.png +[12]: https://www.debugpoint.com/wp-content/uploads/2021/01/system-stat-using-yay.png +[13]: https://www.debugpoint.com/tag/arch-linux/ From 573dce5dfb29be819d657e87fcbfa4ef095ece97 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Sun, 10 Jul 2022 23:46:23 +0800 Subject: [PATCH 0321/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]20211104=20Beginner-s=20Guide=20to=20Installing=20Arch?= =?UTF-8?q?=20Linux=20on=20VirtualBox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Beginner-s Guide to Installing Arch Linux on VirtualBox.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md b/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md index 71900c1dea..46dae5ba9e 100644 --- a/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md +++ b/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-arch-linux-virtualbox/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "hanszhao80" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -225,7 +225,7 @@ via: https://itsfoss.com/install-arch-linux-virtualbox/ 作者:[Ankush Das][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/) 荣誉推出 From f96b8907f9e58267ff7f6fa713c5b7a8094ae638 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 11 Jul 2022 08:28:30 +0800 Subject: [PATCH 0322/3123] translated --- ...ee and Open-Source Code Snippet Manager.md | 104 ------------------ ...ee and Open-Source Code Snippet Manager.md | 104 ++++++++++++++++++ 2 files changed, 104 insertions(+), 104 deletions(-) delete mode 100644 sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md create mode 100644 translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md diff --git a/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md b/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md deleted file mode 100644 index 86983ef126..0000000000 --- a/sources/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md +++ /dev/null @@ -1,104 +0,0 @@ -[#]: subject: "massCode: A Free and Open-Source Code Snippet Manager" -[#]: via: "https://itsfoss.com/masscode/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -massCode: A Free and Open-Source Code Snippet Manager -====== -Brief: An open-source code snippet manager that enables you to dabble with code, improve productivity, and save time. - -If a tool makes things faster and efficient, that is a life-saver for many developers. - -While there are different services and platforms that try to make the coding experience quicker, you still have several other options to consider. - -For instance, a code snippet manager. With a snippet manager, you aim to save a section of code that you want to quickly access. It is more like assigning shortcuts to add the required code in your program. - -This is not a new concept, but the tools available for the job may not be entirely open-source. - -Fortunately, I stumbled upon a decent project that provides you with a free and open-source snippet manager, i.e., massCode. - -### massCode: Cross-Platform Open-Source Snippet Manager - -![masscode][1] - -massCode is a useful snippet manager with some essential features. - -It supports a wide range of programming languages and also includes Markdown support. You can organize the snippets of your code using folders, add tags, and more. - -massCode is available for Linux, Windows, or macOS. Let’s take a look at some key features. - -### Features of massCode - -![masscode screenshot][2] - -massCode includes many useful functionalities. Some of them are: - -* Multi-level folder organizer -* Each snippet can be stored in fragments (tabs) -* Integrated coding editor, i.e., [Ace][3]. -* Code formatting or highlighting. -* Markdown support with preview. -* The ability to search for a snippet. -* Add descriptions to your snippet to know what it is for. -* Variety of dark/light themes available. -* Ability to migrate from [SnippetsLab][4]. -* Auto-save to help you retain your work. -* Integrate it with cloud synchronization folders. -* Extension support for VSCode, Raycast, and Alfred. - -In addition to all the features mentioned, you also get to easily copy the code snippets saved in a single click. - -For customization, you can tweak the font size and family, toggle Word Wrap, highlight lines, use single quotes, or add a trailing command thanks to [Prettier][5]. - -Moreover, you can have multiple fragments for a snippet. So, it gives you the opportunity to use it for a wide range of use cases. - -As mentioned, you can also integrate it with any of your cloud syncing services by changing the storage location to the synced folders. - -![masscode migrate preferences][6] - -Overall, it works well, with some limitations, like the ability to migrate nested folders from SnippetsLab to massCode. - -### Install massCode on Linux - -massCode is available as a [Snap package][7], but not on the Snap store. You can download the package directly and use the following command to get it installed: - -``` -sudo snap install --dangerous ~/Downloads/masscode_2.6.1_amd64.snap -``` - -One of our troubleshooting guides can help you know more about the [dangerous snap flag][8]. - -You can download it for Windows/macOS through its [official website][9] or its [GitHub releases section][10]. - -[massCode][11] - -Have you tried massCode yet? Is there any other code snippet manager available for Linux? Let me know your thoughts in the comments below. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/masscode/ - -作者:[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/wp-content/uploads/2022/07/masscode-screenshot-1.png -[2]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-screenshot.png -[3]: https://github.com/ajaxorg/ace -[4]: https://apps.apple.com/us/app/snippetslab/id1006087419?mt=12 -[5]: https://prettier.io/ -[6]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-migrate-preferences.jpg -[7]: https://itsfoss.com/install-snap-linux/ -[8]: https://itsfoss.com/snap-metadata-signature-error/ -[9]: https://masscode.io/ -[10]: https://github.com/massCodeIO/massCode/releases/tag/v2.6.1 -[11]: https://masscode.io/ diff --git a/translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md b/translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md new file mode 100644 index 0000000000..f5480747db --- /dev/null +++ b/translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md @@ -0,0 +1,104 @@ +[#]: subject: "massCode: A Free and Open-Source Code Snippet Manager" +[#]: via: "https://itsfoss.com/masscode/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +massCode:一个免费和开源的代码片段管理器 +====== +简介:一个开源的代码片段管理器,使你能够涉足代码,提高生产力,并节省时间。 + +如果一个工具能让事情变得更快、更有效率,那对许多开发者来说就是救命稻草。 + +虽然有不同的服务和平台试图使编码体验更快,但你仍然有其他几个选择可以考虑。 + +例如,一个代码片段管理器。使用代码片段管理器,你的目的是保存你想快速访问的代码部分。它更像是指定快捷方式,在你的程序中添加所需的代码。 + +这不是一个新的概念,但可用于这项工作的工具可能不完全是开源的。 + +幸运的是,我偶然发现了一个不错的项目,它为你提供了一个免费的、开源的片段管理器,即 massCode。 + +### massCode:跨平台的开源片段管理器 + +![masscode][1] + +massCode 是一个有用的片段管理器,具有一些基本功能。 + +它支持广泛的编程语言,还包括对 Markdown 的支持。你可以使用文件夹组织你的代码片段,添加标签等。 + +massCode 可用于 Linux、Windows 或 macOS。让我们来看看一些主要功能。 + +### massCode 的特点 + +![masscode screenshot][2] + +massCode 包括许多有用的功能。其中一些是: + +* 多层次的文件夹组织者 +* 每个片段都可以存储在片段(标签)中 +* 集成编码编辑器,即 [Ace][3]。 +* 代码格式化或高亮显示。 +* 支持带预览的 Markdown。 +* 能够搜索一个片段。 +* 给你的代码段添加描述,以了解它的用途。 +* 各种深色/浅色主题可用。 +* 能够从 [SnippetsLab][4] 迁移。 +* 自动保存以帮助你保留你的工作。 +* 将其与云同步文件夹整合。 +* 对 VSCode、Raycast 和 Alfred 的扩展支持。 + +除了上述所有功能外,你还可以轻松地复制保存代码片段,只需点击一下。 + +对于自定义,你可以调整字体大小和系列、切换自动换行、高亮显示行、使用单引号或添加尾随命令,这要归功于 [Prettier][5]。 + +此外,一份片段可以有多个片段。 因此,它使你有机会将其用于各种用例。 + +如前所述,你也可以通过改变同步文件夹的存储位置将其与你的任何云同步服务整合。 + +![masscode migrate preferences][6] + +总的来说,它工作得很好,有一些局限性,比如将嵌套文件夹从 SnippetsLab 迁移到 masCode 的能力。 + +### 在 Linux 上安装 massCode + +massCode 有 [Snap 包][7],但不在 Snap 商店中。你可以直接下载该软件包,并使用以下命令来安装它: + +``` +sudo snap install --dangerous ~/Downloads/masscode_2.6.1_amd64.snap +``` + +我们的一份故障排除指南可以帮助你了解更多关于 [dangerous snap 选项][8]。 + +你可以通过其[官方网站][9]或 [GitHub 发布区][10]下载 Windows/MacOS 版。 + +[massCode][11] + +你试过 massCode 了吗?还有其他可用于 Linux 的代码片段管理器吗?请在下面的评论中告诉我你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/masscode/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-screenshot-1.png +[2]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-screenshot.png +[3]: https://github.com/ajaxorg/ace +[4]: https://apps.apple.com/us/app/snippetslab/id1006087419?mt=12 +[5]: https://prettier.io/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/masscode-migrate-preferences.jpg +[7]: https://itsfoss.com/install-snap-linux/ +[8]: https://itsfoss.com/snap-metadata-signature-error/ +[9]: https://masscode.io/ +[10]: https://github.com/massCodeIO/massCode/releases/tag/v2.6.1 +[11]: https://masscode.io/ From dbe3a6948bbb50d3f08f29d6093ebfa1e9bc011b Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 11 Jul 2022 08:33:48 +0800 Subject: [PATCH 0323/3123] translating --- sources/tech/20220709 Monitoring tiny web services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220709 Monitoring tiny web services.md b/sources/tech/20220709 Monitoring tiny web services.md index 72b4d9497d..707775adde 100644 --- a/sources/tech/20220709 Monitoring tiny web services.md +++ b/sources/tech/20220709 Monitoring tiny web services.md @@ -2,7 +2,7 @@ [#]: via: "https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/" [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ea1920a84126f5595802451f523380282aee8ab0 Mon Sep 17 00:00:00 2001 From: Maisie-x <109048712+Maisie-x@users.noreply.github.com> Date: Mon, 11 Jul 2022 09:15:57 +0800 Subject: [PATCH 0324/3123] Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md apply for translation --- ...07 A hands-on tutorial for using the GNU Project Debugger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md index 9b13b1d6a3..1966777133 100644 --- a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md +++ b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/1/gnu-project-debugger" [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Maisie-x" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ca2415b5fd7ad68ce487196fa0689a8aa7d92d07 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 11 Jul 2022 10:36:57 +0800 Subject: [PATCH 0325/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220707=20Google=20Summer=20of=20Code=20+=20Zephyr?= =?UTF-8?q?=20RTOS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/news/20220707 Google Summer of Code + Zephyr RTOS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md b/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md index 00d782b8a5..217c167137 100644 --- a/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md +++ b/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/" [#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3f592d7bf68e186949355f3527180913cfcc440a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 11 Jul 2022 11:24:43 +0800 Subject: [PATCH 0326/3123] RP @geekpi https://linux.cn/article-14815-1.html --- ...r snap- Error in Ubuntu and other Linux.md | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) rename {translated/tech => published}/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md (59%) diff --git a/translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md b/published/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md similarity index 59% rename from translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md rename to published/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md index 2605742315..8ca837d489 100644 --- a/translated/tech/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md +++ b/published/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md @@ -3,16 +3,18 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14815-1.html" -修复 Ubuntu 和其他 Linux 中的 “cannot find signatures with metadata for snap” 错误 +修复 Ubuntu 中的 “cannot find signatures with metadata for snap” 错误 ====== +![](https://img.linux.net.cn/data/attachment/album/202207/11/112312l4y0jf3gag8sam4g.jpg) + 前几天我试图安装 [massCode][1] 应用。对于安装,它提供了一个 Snap 文件以供下载。 -当我尝试从 Snap 文件安装应用程序时 +当我尝试从 Snap 文件安装应用程序时: ``` sudo snap install snap_file @@ -20,47 +22,49 @@ sudo snap install snap_file 它给了我以下错误: -**error: cannot find signatures with metadata for snap “masscode_2.6.1_amd64.snap”** +``` +error: cannot find signatures with metadata for snap "masscode_2.6.1_amd64.snap" +``` ![cannot find signature with metadata for snap][2] -这很奇怪。[在 Ubuntu 中添加外部仓库][3]时,你必须添加 GPG 密钥。但是这里的开发人员没有提供这样的东西。 +这很奇怪。[在 Ubuntu 中添加外部仓库][3] 时,你必须添加 GPG 密钥。但是这里的开发人员没有提供这样的东西。 “修复”简单易行。让我给你解释一下。 ### 处理 “cannot find signatures with metadata for snap” 错误 -这里不涉及签名。 +这里其实不涉及签名。 -发生的情况是你从第三方下载了 Snap 安装程序。 Ubuntu 中的 snap 机制希望你从官方 snap 商店获取 snap 包。 +发生的情况是你从第三方下载了 Snap 安装程序。 Ubuntu 中的 Snap 机制希望你从官方 Snap 商店获取 Snap 包。 -由于它不是来自 snap 商店,因此你会看到 “cannot find signatures with metadata for snap” 的错误消息。与大多数错误消息一样,错误消息不是描述性的。 +由于它不是来自 Snap 商店,因此你会看到 “cannot find signatures with metadata for snap” 的错误消息。与大多数错误消息一样,这个错误消息不是描述性的。 那么,这里的解决方案是什么? -任何未通过 Snap 商店分发的 snap 包都必须使用 **-dangerous** 选项进行安装。这就是规则。 +任何未通过 Snap 商店分发的 Snap 包都必须使用 `--dangerous` 选项进行安装。这就是规则。 ``` sudo snap install --dangerous path_to_snap_file ``` -这样,你告诉 snap 包管理器显式安装 snap 包。 +这样,你告诉 Snap 包管理器显式安装 Snap 包。 -在这里,我使用了这个选项并且能够成功地从它的 snap 包中安装 massCode。 +在这里,我使用了这个选项并且能够成功地从它的 Snap 包中安装 massCode。 ![installing third party snap packages][4] -以这种方式安装 snap 包有多“危险”?几乎和下载并[安装 deb 格式安装包][5]相同。 +以这种方式安装 Snap 包有多“危险”?几乎和下载并 [安装 deb 格式安装包][5] 相同。 -在我看来,如果你是从项目开发者的网站上下载 snap 包,你已经在信任项目了。在这种情况下,你可以使用 –dangerous 选项安装它。 +在我看来,如果你是从项目开发者的网站上下载 Snap 包,你已经在信任该项目了。在这种情况下,你可以使用 `--dangerous` 选项安装它。 -当然,你应该首先搜索该软件包是否在 snap 商店中可用: +当然,你应该首先搜索该软件包是否在 Snap 商店中可用: ``` snap find package_name ``` -我希望这个快速的小技巧可以帮助你修复 Snap 错误。如果你有任何问题或建议,请告诉我。如果你想了解更多信息,请参阅[这个使用 Snap 命令指南][6]。 +我希望这个快速的小技巧可以帮助你修复 Snap 错误。如果你有任何问题或建议,请告诉我。如果你想了解更多信息,请参阅 [这个使用 Snap 命令指南][6]。 -------------------------------------------------------------------------------- @@ -69,7 +73,7 @@ via: https://itsfoss.com/snap-metadata-signature-error/ 作者:[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/) 荣誉推出 From 93261d01aa94d08edaef37b30f854d8957236ee8 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 11 Jul 2022 14:02:36 +0800 Subject: [PATCH 0327/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220707=20Google=20Summer=20of=20Code=20+=20Zephyr?= =?UTF-8?q?=20RTOS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...707 Google Summer of Code + Zephyr RTOS.md | 136 ----------------- ...707 Google Summer of Code + Zephyr RTOS.md | 140 ++++++++++++++++++ 2 files changed, 140 insertions(+), 136 deletions(-) delete mode 100644 sources/news/20220707 Google Summer of Code + Zephyr RTOS.md create mode 100644 translated/news/20220707 Google Summer of Code + Zephyr RTOS.md diff --git a/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md b/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md deleted file mode 100644 index 217c167137..0000000000 --- a/sources/news/20220707 Google Summer of Code + Zephyr RTOS.md +++ /dev/null @@ -1,136 +0,0 @@ -[#]: subject: "Google Summer of Code + Zephyr RTOS" -[#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/" -[#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Google Summer of Code + Zephyr RTOS -====== - -The **Google Summer of Code** (**GSoC)** is an international annual program in which [Google][1] awards [stipends][2] to contributors who successfully complete a [free and open source software][3] coding project during the summer. Launched in 2005, GSoC takes place from May to August. Project ideas are submitted by host organizations involved in open source software development, though students can also propose their own project ideas. - -This year, the program was opened to anyone 18 years or older – not just students and recent graduates. Participants get paid to write software, with the amount of their [stipend][4] depending on the [purchasing power parity][5] of the country where they are located. - -This is also the first time the Zephyr Project is participating in GSoC under The Linux Foundation umbrella. Please join us in welcoming these contributors and their projects: - -### Project #1: Arduino module based on Zephyr - -1 contributor full-size (350 hours). - -[Arduino][6]’s popularity is renowned as a popular framework for providing a simplified interface to program embedded devices. Recently, Arduino adopted mbed OS as the base RTOS for some of their newer devices. With that work, they separated out [Arduino Core][7] as an independent abstraction layer from [Arduino Core for mbed][8]. This opens up the possibility for leveraging Arduino Core on other OSes. The project idea is to create a Zephyr module that leverages the Arduino Core so that a developer can use Zephyr as the underlying OS when they use the Arduino framework on Arduino-compatible devices. The benefits to the user include: - -* Access to Arduino APIs as well as advanced Zephyr capabilities -* Broader set of devices than the standard Arduino ecosystem thanks to Zephyrs’ device support -* Ability to re-use Arduino tools like the Arduino IDE and wealth of libraries - -Arduino Core is licensed under the GNU Lesser General Public License and Zephyr is licensed under Apache 2. That means this project will most likely need to be developed out of tree and in a separate repo to keep code and license separation. See [#22247][9] for a historic discussion & [soburi/arduino-on-zephyr][10] for an earlier attempt prior to the Arduino Core architecture. - -**The contributor’s task is thus:** - -* Implement a bare-bones Module based on Arduino Core that can compile for any target (no functionality, possibly in QEMU) -* Implement a common peripheral from the Arduino API based on Zephyr such as [Serial][11] -* Target one physical board, such as the Arduino Zero - -**Mentors:** - -[Jonathan Beri][12]– CEO of Golioth and Zephyr TSC -[Alvaro Viebrantz][13] – Founding Engineer of Golioth and Google GDE - -**Code License:** LGPL - -**Contributor Details:** - -* Name: Dhruva Gole -* Project Blog: [https://dhruvag2000.github.io/Blog-GSoC22/][14] -* Project Poster: - -![][15] - -**About the contributor:** - -![][16] - -Dhruva is an undergraduate student majoring in Electrical engineering. He has a broad range of interests from embedded software development to hardware design and has experience in working on SBCs, microcontrollers, and embedded Linux platforms. - -### Project #2: Apache Thrift Module for Zephyr - -1 contributor full-size (350 hours). - -[Apache Thrift][17] is an [IDL][18] specification,[RPC][19] framework, and code generator that abstracts away transport and protocol details to let developers focus on application logic.It works across all major operating systems, supports over 27 programming languages, 7 protocols, and 6 low-level transports. Originally [developed at Facebook in 2007][20], it was subsequently shared with the Apache Software Foundation. - -![][21] - -![][22] - -Supporting Thrift in the Zephyr RTOS would benefit the community greatly. It would lead to new software and hardware technologies, new products, and additional means for cloud integration. Thrift can be used over virtually any transport as well and for that reason, it is a natural choice for the many different physical communication layers supported by Zephyr. The project idea is to get the proof-of-concept [Thrift for Zephyr Module][23] into shape for upstreaming. To achieve that, the contributor must: - -Perform additional integration for Thrift features (protocols, transports) -Author additional sample applications using [supported boards][24] or [Qemu][25] -Author additional tests and generate coverage reports using the [Zephyr Test Framework][26] -Ensure the module follows appropriate [coding guidelines][27] and satisfies [module requirements][28] -Contribute any necessary improvements back to the Apache Thrift Project. -Contribute any necessary improvements back to the Zephyr Project. - -**Mentors:** - -* [Christopher Friedt][29] – SWE / ASIC FW at Meta and Zephyr TSC member -* [Stephanos Ioannidis][30] – Zephyr CXX Subsystem Maintainer - -**Code License:** Apache 2.0. - -**Contributor Details:** - -**Name:** Young - -**About the contributor:** Young is a student majoring in  communication engineering, and he will pursue his Master’s degree in computer engineering. He has a broad range of interests from front-end development to hardware design, and has experience in working on the Web, IoT and embedded platforms. A low-cost single-board computer with a RISC-V 64 processor designed by him in 2021 was reported by several geek media. - -The post [Google Summer of Code + Zephyr RTOS][31] appeared first on [Linux Foundation][32]. - --------------------------------------------------------------------------------- - -via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/ - -作者:[The Linux Foundation][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.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ -[b]: https://github.com/lkxed -[1]: https://en.wikipedia.org/wiki/Google -[2]: https://en.wikipedia.org/wiki/Stipend -[3]: https://en.wikipedia.org/wiki/Free_and_open-source_software -[4]: https://en.wikipedia.org/wiki/Stipend -[5]: https://en.wikipedia.org/wiki/Purchasing_power_parity -[6]: https://www.arduino.cc/ -[7]: https://github.com/arduino/ArduinoCore-API -[8]: https://github.com/arduino/ArduinoCore-mbed -[9]: https://github.com/zephyrproject-rtos/zephyr/issues/22247 -[10]: https://github.com/soburi/arduino-on-zephyr -[11]: https://www.arduino.cc/reference/en/language/functions/communication/serial/ -[12]: https://www.linkedin.com/in/jonathanberi/ -[13]: https://www.linkedin.com/in/alvaro-viebrantz-55119048/ -[14]: https://dhruvag2000.github.io/Blog-GSoC22/ -[15]: https://www.linuxfoundation.org/wp-content/uploads/project-poster.png -[16]: https://www.linuxfoundation.org/wp-content/uploads/dhruva.jpeg -[17]: https://github.com/apache/thrift -[18]: https://en.wikipedia.org/wiki/Interface_description_language -[19]: https://en.wikipedia.org/wiki/Remote_procedure_call -[20]: https://thrift.apache.org/static/files/thrift-20070401.pdf -[21]: https://www.linuxfoundation.org/wp-content/uploads/apache-thrift-layered-architecture.png -[22]: https://www.linuxfoundation.org/wp-content/uploads/SPDX-license.png -[23]: https://github.com/cfriedt/thrift-for-zephyr -[24]: https://docs.zephyrproject.org/latest/boards/index.html -[25]: https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html -[26]: https://docs.zephyrproject.org/latest/guides/test/ztest.html -[27]: https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html -[28]: https://docs.zephyrproject.org/latest/guides/modules.html -[29]: https://www.linkedin.com/in/christopher-friedt/ -[30]: https://www.linkedin.com/in/stephanosio/ -[31]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ -[32]: https://www.linuxfoundation.org/ diff --git a/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md b/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md new file mode 100644 index 0000000000..fc28275cb6 --- /dev/null +++ b/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md @@ -0,0 +1,140 @@ +[#]: subject: "Google Summer of Code + Zephyr RTOS" +[#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/" +[#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +谷歌编程之夏与 Zephyr RTOS 项目介绍 +====== + +**谷歌编程之夏**(GSoC)是一个谷歌举办的国际年度项目,每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件][3] 的编码项目,[谷歌][1] 就会给他们发放 [津贴][2]。谷歌编程之夏于 2005 年推出,于 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。 + +今年,该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬,其 [津贴][4] 的金额取决于他们所在国家/地区的 [购买力平价][5]。 + +**LCTT 译注:以往,这个活动只允许在校学生参与,今年条件放开,只需年龄 18+ 即可,对参与者的贡献时长要求也降低了,尽可能地让更多人参与进来。不过,今年的报名通道在 4 月 19 日就截止了,大家有兴趣的话明年可以关注一下。** + +这也是 Zephyr 项目第一次作为 Linux 基金会的项目,参与到谷歌编程之夏中。让我们一起欢迎这些贡献者及其项目吧! + +### 项目一:基于 Zephyr 的 Arduino 模块 + +1 个贡献者(350 小时)。 + +[Arduino][6] 是一个流行的框架,它为嵌入式设备编程提供了一个简化的接口。最近,Arduino 采用 mbed OS 作为其一些新设备的基础 RTOS。通过这项工作,他们将 [Arduino Core][7] 作为独立的抽象层,从 [Arduino Core for mbed][8] 中分离出来。这为在其他操作系统上利用 Arduino Core 开辟了可能性。 + +该项目的想法就是创建一个利用 Arduino Core 的 Zephyr 模块,以便开发人员在与 Arduino 兼容的设备上使用 Arduino 框架时,可以使用 Zephyr 作为底层操作系统。对用户的好处包括: + +* 可以访问 Arduino API 以及高级 Zephyr 功能 +* 得益于 Zephyrs 的设备支持,用户可以选择标准 Arduino 生态系统更广泛的设备 +* 能够重复使用 Arduino 工具,如 Arduino IDE 和丰富的库 + +Arduino Core 使用 LGPL 下进行许可,Zephyr 使用 Apache 2 下进行许可。这意味着该项目的开发很可能需要脱离主分支,并在单独的 repo 中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 [#22247][9],有关 Arduino 核心架构之前的早期尝试,请参阅 [soburi/arduino-on-zephyr][10]。 + +**贡献者的任务是:** + +* 实现一个基于 Arduino Core 的准系统模块,可以为任何目标编译(不具备功能性,可能在 QEMU 中) +* 基于 Zephyr,使用 Arduino API 实现一个通用外围设备,例如 [Serial][11] +* 以一个物理板为目标,例如 Arduino Zero + +**导师:** + +[Jonathan Beri][12]– Golioth 和 Zephyr TSC 的首席执行官 +[Alvaro Viebrantz][13] – Golioth 和 Google GDE 的创始工程师 + +**代码许可证:** LGPL + +**贡献者详细信息:** + +* 姓名:Dhruva Gole +* 项目博客:[https://dhruvag2000.github.io/Blog-GSoC22/][14] +* 项目海报: + +![][15] + +**关于贡献者:** + +![][16] + +Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入式软件开发到硬件设计,在 SBC、微控制器和嵌入式 Linux 平台方面拥有丰富的工作经验。 + +### 项目二:Zephyr 的 Apache Thrift 模块 + +一个贡献者(350 hours)。 + +[Apache Thrift][17] 是一个 [IDL][18] 规范、[RPC][19] 框架和代码生成器,它抽象出传输和协议细节,让开发者专注于应用逻辑。它适用于所有主流操作系统,支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初,它于 [2007 年在 Facebook 开发][20],随后与 Apache 软件基金会共享。 + +![][21] + +![][22] + +在 Zephyr RTOS 中支持 Thrift 将使社区受益匪浅。它将带来新的软件和硬件技术、新产品以及云集成的其他方式。 Thrift 也可以用于几乎任何传输,因此,它是 Zephyr 支持的许多不同物理通信层的自然选择。该项目的想法是使概念验证 [Thrift for Zephyr 模块][23] 形成以供上游使用。为此,贡献者必须: + +* 对 Thrift 功能(协议、传输)执行额外的集成 +* 使用 [supported board][24] 或 [Qemu][25] 编写其他示例应用程序 +* 使用 [Zephyr 测试框架][26] 编写其他测试并生成覆盖率报告 +* 确保模块遵循适当的 [编码指南][27] 并满足 [模块要求][28] +* 将任何必要的改进贡献回 Apache Thrift 项目 +* 将任何必要的改进贡献回 Zephyr 项目 + +**导师:** + +* [Christopher Friedt][29] – Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员 +* [Stephanos Ioannidis][30] – Zephyr CXX 子系统维护者 + +**代码许可:** Apache 2.0 + +**贡献者详细信息:** + +**姓名:** Young + +**关于贡献者:**Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。 + +本文 [Google Summer of Code + Zephyr RTOS][31] 首发于 [Linux 基金会][32]。 + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/ + +作者:[The Linux Foundation][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ +[b]: https://github.com/lkxed +[1]: https://en.wikipedia.org/wiki/Google +[2]: https://en.wikipedia.org/wiki/Stipend +[3]: https://en.wikipedia.org/wiki/Free_and_open-source_software +[4]: https://en.wikipedia.org/wiki/Stipend +[5]: https://en.wikipedia.org/wiki/Purchasing_power_parity +[6]: https://www.arduino.cc/ +[7]: https://github.com/arduino/ArduinoCore-API +[8]: https://github.com/arduino/ArduinoCore-mbed +[9]: https://github.com/zephyrproject-rtos/zephyr/issues/22247 +[10]: https://github.com/soburi/arduino-on-zephyr +[11]: https://www.arduino.cc/reference/en/language/functions/communication/serial/ +[12]: https://www.linkedin.com/in/jonathanberi/ +[13]: https://www.linkedin.com/in/alvaro-viebrantz-55119048/ +[14]: https://dhruvag2000.github.io/Blog-GSoC22/ +[15]: https://www.linuxfoundation.org/wp-content/uploads/project-poster.png +[16]: https://www.linuxfoundation.org/wp-content/uploads/dhruva.jpeg +[17]: https://github.com/apache/thrift +[18]: https://en.wikipedia.org/wiki/Interface_description_language +[19]: https://en.wikipedia.org/wiki/Remote_procedure_call +[20]: https://thrift.apache.org/static/files/thrift-20070401.pdf +[21]: https://www.linuxfoundation.org/wp-content/uploads/apache-thrift-layered-architecture.png +[22]: https://www.linuxfoundation.org/wp-content/uploads/SPDX-license.png +[23]: https://github.com/cfriedt/thrift-for-zephyr +[24]: https://docs.zephyrproject.org/latest/boards/index.html +[25]: https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html +[26]: https://docs.zephyrproject.org/latest/guides/test/ztest.html +[27]: https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html +[28]: https://docs.zephyrproject.org/latest/guides/modules.html +[29]: https://www.linkedin.com/in/christopher-friedt/ +[30]: https://www.linkedin.com/in/stephanosio/ +[31]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ +[32]: https://www.linuxfoundation.org/ From 81c0a46acffa26492ee22b5a4bc9c80fc51dadcd Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 11 Jul 2022 14:08:43 +0800 Subject: [PATCH 0328/3123] update --- ...707 Google Summer of Code + Zephyr RTOS.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md diff --git a/translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md b/translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md new file mode 100644 index 0000000000..4a24491991 --- /dev/null +++ b/translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md @@ -0,0 +1,140 @@ +[#]: subject: "Google Summer of Code + Zephyr RTOS" +[#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/" +[#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +谷歌编程之夏与 Zephyr RTOS 项目介绍 +====== + +**谷歌编程之夏**(GSoC)是一个谷歌举办的国际年度项目,每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件][3] 的编码项目,[谷歌][1] 就会给他们发放 [津贴][2]。谷歌编程之夏于 2005 年推出,于 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。 + +今年,该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬,其 [津贴][4] 的金额取决于他们所在国家/地区的 [购买力平价][5]。 + +**LCTT 译注:以往,这个活动只允许在校学生参与,今年条件放开,只需年龄 18+ 即可,对参与者的贡献时长要求也降低了,尽可能地让更多人参与进来。不过,今年的报名通道在 4 月 19 日就截止了,大家有兴趣的话明年可以关注一下。** + +这也是 Zephyr 项目第一次作为 Linux 基金会的项目,参与到谷歌编程之夏中。让我们一起欢迎这些贡献者及其项目吧! + +### 项目一:基于 Zephyr 的 Arduino 模块 + +1 个贡献者(350 小时)。 + +[Arduino][6] 是一个流行的框架,它为嵌入式设备编程提供了一个简化的接口。最近,Arduino 采用 mbed OS 作为其一些新设备的基础 RTOS。通过这项工作,他们将 [Arduino Core][7] 作为独立的抽象层,从 [Arduino Core for mbed][8] 中分离出来。这为在其他操作系统上利用 Arduino Core 开辟了可能性。 + +该项目的想法就是创建一个利用 Arduino Core 的 Zephyr 模块,以便开发人员在与 Arduino 兼容的设备上使用 Arduino 框架时,可以使用 Zephyr 作为底层操作系统。对用户的好处包括: + +* 可以访问 Arduino API 以及高级 Zephyr 功能 +* 得益于 Zephyrs 的设备支持,用户可以选择标准 Arduino 生态系统更广泛的设备 +* 能够重复使用 Arduino 工具,如 Arduino IDE 和丰富的库 + +Arduino Core 使用 LGPL 下进行许可,Zephyr 使用 Apache 2 下进行许可。这意味着该项目的开发很可能需要脱离主分支,并在单独的 repo 中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 [#22247][9],有关 Arduino 核心架构之前的早期尝试,请参阅 [soburi/arduino-on-zephyr][10]。 + +**贡献者的任务是:** + +* 实现一个基于 Arduino Core 的准系统模块,可以为任何目标编译(不具备功能性,可能在 QEMU 中) +* 基于 Zephyr,使用 Arduino API 实现一个通用外围设备,例如 [Serial][11] +* 以一个物理板为目标,例如 Arduino Zero + +**导师:** + +[Jonathan Beri][12]– Golioth 和 Zephyr TSC 的首席执行官 +[Alvaro Viebrantz][13] – Golioth 和 Google GDE 的创始工程师 + +**代码许可证:** LGPL + +**贡献者详细信息:** + +* 姓名:Dhruva Gole +* 项目博客:[https://dhruvag2000.github.io/Blog-GSoC22/][14] +* 项目海报: + +![][15] + +**关于贡献者:** + +![][16] + +Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入式软件开发到硬件设计,在 SBC、微控制器和嵌入式 Linux 平台方面拥有丰富的工作经验。 + +### 项目二:Zephyr 的 Apache Thrift 模块 + +一个贡献者(350 hours)。 + +[Apache Thrift][17] 是一个 [IDL][18] 规范、[RPC][19] 框架和代码生成器,它抽象出传输和协议细节,让开发者专注于应用逻辑。它适用于所有主流操作系统,支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初,它于 [2007 年在 Facebook 开发][20],随后与 Apache 软件基金会共享。 + +![][21] + +![][22] + +在 Zephyr RTOS 中支持 Thrift 将使社区受益匪浅。它将带来新的软件和硬件技术、新产品以及云集成的其他方式。 Thrift 也可以用于几乎任何传输,因此,它是 Zephyr 支持的许多不同物理通信层的自然选择。该项目的想法是使概念验证 [Thrift for Zephyr 模块][23] 形成以供上游使用。为此,贡献者必须: + +* 对 Thrift 功能(协议、传输)执行额外的集成 +* 使用 [supported board][24] 或 [Qemu][25] 编写其他示例应用程序 +* 使用 [Zephyr 测试框架][26] 编写其他测试并生成覆盖率报告 +* 确保模块遵循适当的 [编码指南][27] 并满足 [模块要求][28] +* 将任何必要的改进贡献回 Apache Thrift 项目 +* 将任何必要的改进贡献回 Zephyr 项目 + +**导师:** + +* [Christopher Friedt][29] – Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员 +* [Stephanos Ioannidis][30] – Zephyr CXX 子系统维护者 + +**代码许可证:** Apache 2.0 + +**贡献者详细信息:** + +* 姓名:Young + +**关于贡献者:** Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。 + +本文 [Google Summer of Code + Zephyr RTOS][31] 首发于 [Linux 基金会][32]。 + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/ + +作者:[The Linux Foundation][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ +[b]: https://github.com/lkxed +[1]: https://en.wikipedia.org/wiki/Google +[2]: https://en.wikipedia.org/wiki/Stipend +[3]: https://en.wikipedia.org/wiki/Free_and_open-source_software +[4]: https://en.wikipedia.org/wiki/Stipend +[5]: https://en.wikipedia.org/wiki/Purchasing_power_parity +[6]: https://www.arduino.cc/ +[7]: https://github.com/arduino/ArduinoCore-API +[8]: https://github.com/arduino/ArduinoCore-mbed +[9]: https://github.com/zephyrproject-rtos/zephyr/issues/22247 +[10]: https://github.com/soburi/arduino-on-zephyr +[11]: https://www.arduino.cc/reference/en/language/functions/communication/serial/ +[12]: https://www.linkedin.com/in/jonathanberi/ +[13]: https://www.linkedin.com/in/alvaro-viebrantz-55119048/ +[14]: https://dhruvag2000.github.io/Blog-GSoC22/ +[15]: https://www.linuxfoundation.org/wp-content/uploads/project-poster.png +[16]: https://www.linuxfoundation.org/wp-content/uploads/dhruva.jpeg +[17]: https://github.com/apache/thrift +[18]: https://en.wikipedia.org/wiki/Interface_description_language +[19]: https://en.wikipedia.org/wiki/Remote_procedure_call +[20]: https://thrift.apache.org/static/files/thrift-20070401.pdf +[21]: https://www.linuxfoundation.org/wp-content/uploads/apache-thrift-layered-architecture.png +[22]: https://www.linuxfoundation.org/wp-content/uploads/SPDX-license.png +[23]: https://github.com/cfriedt/thrift-for-zephyr +[24]: https://docs.zephyrproject.org/latest/boards/index.html +[25]: https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html +[26]: https://docs.zephyrproject.org/latest/guides/test/ztest.html +[27]: https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html +[28]: https://docs.zephyrproject.org/latest/guides/modules.html +[29]: https://www.linkedin.com/in/christopher-friedt/ +[30]: https://www.linkedin.com/in/stephanosio/ +[31]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ +[32]: https://www.linuxfoundation.org/ From 476f0e5bb2b9b7c326746b449652c66306473ef5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 11 Jul 2022 14:11:45 +0800 Subject: [PATCH 0329/3123] Revert "update" This reverts commit 81c0a46acffa26492ee22b5a4bc9c80fc51dadcd. --- ...707 Google Summer of Code + Zephyr RTOS.md | 140 ------------------ 1 file changed, 140 deletions(-) delete mode 100644 translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md diff --git a/translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md b/translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md deleted file mode 100644 index 4a24491991..0000000000 --- a/translated/tech/20220707 Google Summer of Code + Zephyr RTOS.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "Google Summer of Code + Zephyr RTOS" -[#]: via: "https://www.linux.com/news/google-summer-of-code-zephyr-rtos/" -[#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -谷歌编程之夏与 Zephyr RTOS 项目介绍 -====== - -**谷歌编程之夏**(GSoC)是一个谷歌举办的国际年度项目,每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件][3] 的编码项目,[谷歌][1] 就会给他们发放 [津贴][2]。谷歌编程之夏于 2005 年推出,于 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。 - -今年,该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬,其 [津贴][4] 的金额取决于他们所在国家/地区的 [购买力平价][5]。 - -**LCTT 译注:以往,这个活动只允许在校学生参与,今年条件放开,只需年龄 18+ 即可,对参与者的贡献时长要求也降低了,尽可能地让更多人参与进来。不过,今年的报名通道在 4 月 19 日就截止了,大家有兴趣的话明年可以关注一下。** - -这也是 Zephyr 项目第一次作为 Linux 基金会的项目,参与到谷歌编程之夏中。让我们一起欢迎这些贡献者及其项目吧! - -### 项目一:基于 Zephyr 的 Arduino 模块 - -1 个贡献者(350 小时)。 - -[Arduino][6] 是一个流行的框架,它为嵌入式设备编程提供了一个简化的接口。最近,Arduino 采用 mbed OS 作为其一些新设备的基础 RTOS。通过这项工作,他们将 [Arduino Core][7] 作为独立的抽象层,从 [Arduino Core for mbed][8] 中分离出来。这为在其他操作系统上利用 Arduino Core 开辟了可能性。 - -该项目的想法就是创建一个利用 Arduino Core 的 Zephyr 模块,以便开发人员在与 Arduino 兼容的设备上使用 Arduino 框架时,可以使用 Zephyr 作为底层操作系统。对用户的好处包括: - -* 可以访问 Arduino API 以及高级 Zephyr 功能 -* 得益于 Zephyrs 的设备支持,用户可以选择标准 Arduino 生态系统更广泛的设备 -* 能够重复使用 Arduino 工具,如 Arduino IDE 和丰富的库 - -Arduino Core 使用 LGPL 下进行许可,Zephyr 使用 Apache 2 下进行许可。这意味着该项目的开发很可能需要脱离主分支,并在单独的 repo 中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 [#22247][9],有关 Arduino 核心架构之前的早期尝试,请参阅 [soburi/arduino-on-zephyr][10]。 - -**贡献者的任务是:** - -* 实现一个基于 Arduino Core 的准系统模块,可以为任何目标编译(不具备功能性,可能在 QEMU 中) -* 基于 Zephyr,使用 Arduino API 实现一个通用外围设备,例如 [Serial][11] -* 以一个物理板为目标,例如 Arduino Zero - -**导师:** - -[Jonathan Beri][12]– Golioth 和 Zephyr TSC 的首席执行官 -[Alvaro Viebrantz][13] – Golioth 和 Google GDE 的创始工程师 - -**代码许可证:** LGPL - -**贡献者详细信息:** - -* 姓名:Dhruva Gole -* 项目博客:[https://dhruvag2000.github.io/Blog-GSoC22/][14] -* 项目海报: - -![][15] - -**关于贡献者:** - -![][16] - -Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入式软件开发到硬件设计,在 SBC、微控制器和嵌入式 Linux 平台方面拥有丰富的工作经验。 - -### 项目二:Zephyr 的 Apache Thrift 模块 - -一个贡献者(350 hours)。 - -[Apache Thrift][17] 是一个 [IDL][18] 规范、[RPC][19] 框架和代码生成器,它抽象出传输和协议细节,让开发者专注于应用逻辑。它适用于所有主流操作系统,支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初,它于 [2007 年在 Facebook 开发][20],随后与 Apache 软件基金会共享。 - -![][21] - -![][22] - -在 Zephyr RTOS 中支持 Thrift 将使社区受益匪浅。它将带来新的软件和硬件技术、新产品以及云集成的其他方式。 Thrift 也可以用于几乎任何传输,因此,它是 Zephyr 支持的许多不同物理通信层的自然选择。该项目的想法是使概念验证 [Thrift for Zephyr 模块][23] 形成以供上游使用。为此,贡献者必须: - -* 对 Thrift 功能(协议、传输)执行额外的集成 -* 使用 [supported board][24] 或 [Qemu][25] 编写其他示例应用程序 -* 使用 [Zephyr 测试框架][26] 编写其他测试并生成覆盖率报告 -* 确保模块遵循适当的 [编码指南][27] 并满足 [模块要求][28] -* 将任何必要的改进贡献回 Apache Thrift 项目 -* 将任何必要的改进贡献回 Zephyr 项目 - -**导师:** - -* [Christopher Friedt][29] – Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员 -* [Stephanos Ioannidis][30] – Zephyr CXX 子系统维护者 - -**代码许可证:** Apache 2.0 - -**贡献者详细信息:** - -* 姓名:Young - -**关于贡献者:** Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。 - -本文 [Google Summer of Code + Zephyr RTOS][31] 首发于 [Linux 基金会][32]。 - --------------------------------------------------------------------------------- - -via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/ - -作者:[The Linux Foundation][a] -选题:[lkxed][b] -译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ -[b]: https://github.com/lkxed -[1]: https://en.wikipedia.org/wiki/Google -[2]: https://en.wikipedia.org/wiki/Stipend -[3]: https://en.wikipedia.org/wiki/Free_and_open-source_software -[4]: https://en.wikipedia.org/wiki/Stipend -[5]: https://en.wikipedia.org/wiki/Purchasing_power_parity -[6]: https://www.arduino.cc/ -[7]: https://github.com/arduino/ArduinoCore-API -[8]: https://github.com/arduino/ArduinoCore-mbed -[9]: https://github.com/zephyrproject-rtos/zephyr/issues/22247 -[10]: https://github.com/soburi/arduino-on-zephyr -[11]: https://www.arduino.cc/reference/en/language/functions/communication/serial/ -[12]: https://www.linkedin.com/in/jonathanberi/ -[13]: https://www.linkedin.com/in/alvaro-viebrantz-55119048/ -[14]: https://dhruvag2000.github.io/Blog-GSoC22/ -[15]: https://www.linuxfoundation.org/wp-content/uploads/project-poster.png -[16]: https://www.linuxfoundation.org/wp-content/uploads/dhruva.jpeg -[17]: https://github.com/apache/thrift -[18]: https://en.wikipedia.org/wiki/Interface_description_language -[19]: https://en.wikipedia.org/wiki/Remote_procedure_call -[20]: https://thrift.apache.org/static/files/thrift-20070401.pdf -[21]: https://www.linuxfoundation.org/wp-content/uploads/apache-thrift-layered-architecture.png -[22]: https://www.linuxfoundation.org/wp-content/uploads/SPDX-license.png -[23]: https://github.com/cfriedt/thrift-for-zephyr -[24]: https://docs.zephyrproject.org/latest/boards/index.html -[25]: https://docs.zephyrproject.org/latest/guides/networking/qemu_user_setup.html -[26]: https://docs.zephyrproject.org/latest/guides/test/ztest.html -[27]: https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html -[28]: https://docs.zephyrproject.org/latest/guides/modules.html -[29]: https://www.linkedin.com/in/christopher-friedt/ -[30]: https://www.linkedin.com/in/stephanosio/ -[31]: https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/ -[32]: https://www.linuxfoundation.org/ From f8abe02db85769ab4766dade7a48d093b566b596 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 11 Jul 2022 14:13:14 +0800 Subject: [PATCH 0330/3123] update --- .../news/20220707 Google Summer of Code + Zephyr RTOS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md b/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md index fc28275cb6..4a24491991 100644 --- a/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md +++ b/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md @@ -83,13 +83,13 @@ Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入 * [Christopher Friedt][29] – Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员 * [Stephanos Ioannidis][30] – Zephyr CXX 子系统维护者 -**代码许可:** Apache 2.0 +**代码许可证:** Apache 2.0 **贡献者详细信息:** -**姓名:** Young +* 姓名:Young -**关于贡献者:**Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。 +**关于贡献者:** Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。 本文 [Google Summer of Code + Zephyr RTOS][31] 首发于 [Linux 基金会][32]。 From ad2bb66a8685ba961aa809a7da5cc821edd1003c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 11 Jul 2022 18:08:47 +0800 Subject: [PATCH 0331/3123] R @Donkey-Hao https://linux.cn/article-14816-1.html --- ...untu Apps for Everyone in 2022 [Part 2].md | 125 ++++++++---------- 1 file changed, 54 insertions(+), 71 deletions(-) rename {translated/tech => published}/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md (52%) diff --git a/translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md similarity index 52% rename from translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md rename to published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md index d24f4b3e62..aed2d4d7a0 100644 --- a/translated/tech/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md +++ b/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md @@ -2,39 +2,39 @@ [#]: via: "https://www.debugpoint.com/best-ubuntu-apps-2022-part2/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -10 大必备 Ubuntu 应用:第二篇 +10 大必备 Ubuntu 应用:优选篇 ====== -本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 基本应用。 -如果你计划永久的转移到 Linux 系统上,你应该很高兴知道在 Linux 上有数以千计的能与商业或付费应用媲美的应用。如果你是第一次使用 Linux 的 Windows 用户,你可能没有听说过这些应用。 +![](https://img.linux.net.cn/data/attachment/album/202207/11/180521obse00404niahjof.jpg) -因此,在这一系列文章中,我们每一次重点介绍一组 Ubuntu 应用,以增加用户群之间的协作和意识。 +> 本文列出了 2022 年可以用于不同情况的 10 个 Ubuntu 优选应用。 + +如果你计划永久的转移到 Linux 系统上,你应该会很高兴地知道在 Linux 上有数以千计的能与商业或付费应用媲美的应用。如果你是第一次使用 Linux 的 Windows 用户,你可能都没有听说过这些应用。 + +因此,在这一系列文章中,我们每一篇重点介绍一组 Ubuntu 应用,以增加 Linux 用户们的协作和认识。 这是 Ubuntu 应用程序系列的第二篇文章,如果你错过了其他部分,可以在这里阅读: * [第一篇][1] -* [第三篇][2] -### 2022 年最好的 Ubuntu 应用程序 – 第二篇 +### 1、OBS Studio -#### 1. OBS Studio +第一个应用是著名的 [流媒体应用][3] —— OBS Studio 。这是一款自由开源的应用,主要用于互联网上的流媒体应用。此外,你可以使用该应用创建一个复杂的流媒体项目,包括多源、覆盖式横幅等功能。 -第一个应用是著名的 [流媒体应用][3] —— OBS Studio 。这是一款免费并开源的主要用于互联网上的流媒体应用。此外,你可以使用该应用创建一个复杂的多源、覆盖横幅等流媒体项目。 - -而且,感谢它能够支持“实时消息传输协议”,你可以使用它在 Facebook、Youtube、Twitch 以及其他支持的平台上进行流式传输。 +而且,由于它能够支持“实时消息传输协议Real-Time Messaging Protocol”(RTMP),你可以使用它在 Facebook、Youtube、Twitch 以及其他支持的平台上进行流式传输。 这个有十年历史的应用程序是 Linux 上最好的应用程序之一。 ![OBS Studio][4] -你可以在 [OBS Studio 官网][5] 了解更多的信息并下载,或者通过以下方式安装: +你可以在 [OBS Studio 官网][5] 了解更多的信息并下载,或者通过以下方式安装。 -通过 Ubuntu PPA 和相关分发: +通过 PPA 在 Ubuntu 和相关发行版上安装: ``` sudo add-apt-repository ppa:obsproject/obs-studio @@ -42,15 +42,15 @@ sudo apt update sudo apt install obs-studio ``` -如果你希望通过 Flatpak ,首先 [为 Flatpak 设置系统][6] 然后 [通过这个页面安装][7] 。 +如果你希望通过 Flatpak 安装 ,首先 [为 Flatpak 设置系统][6] 然后 [通过这个页面安装][7] 。 -在 Arch Linux 或者其他 Linux 版本,访问 [该页面][8] 了解。 +在 Arch Linux 或者其他 Linux 版本,访问 [此页面][8] 了解。 -#### 2. Inkscape +#### 2、Inkscape -这里介绍第二款应用是受欢迎的 Inkscape 。 Inkscape 是一个免费开源的矢量图形编辑软件。它主要用于创建大规模的矢量图形。此外,它使用基本的矢量形状如矩形、多边形、螺旋形等,是一款世界级的应用。你可以使用这些基本图形以及辅助工具(见下文)创作一流的绘图。 +这里介绍的第二款应用是流行的 Inkscape。 Inkscape 是一个自由开源的矢量图形编辑软件。它主要用于创建可缩放的矢量图形(SVG)。此外,它是一款一流的应用,可以使用基本的矢量形状如矩形、多边形、螺旋形等。你可以使用这些基本图形以及辅助工具(见下文)创作一流的绘图。 -此外,当你有足够的技能时,可以使用 Inkscape 创作 [绝妙的动画][9] 。这是画家必备的一款应用。 +此外,只要你有足够的技能,就可以使用 Inkscape 创作出 [绝妙的动画][9] 。这是艺术家必备的一款应用。 ![Sample Image – credit-Inkscape][10] @@ -58,7 +58,7 @@ sudo apt install obs-studio 你可以在 [Inkscape 官网][12] 下载并了解更多相关信息,或者通过以下方式下载。 -通过 Ubuntu PPA 或其他 Linux 版本: +通过 PPA 在 Ubuntu 和相关发行版上安装: ``` sudo add-apt-repository ppa:inkscape.dev/stable @@ -68,26 +68,25 @@ sudo apt install inkscape 更多下载方式可以查看 [此页面][13] 。 -#### 3. GIMP +#### 3、GIMP -GIMP 是 GNU 图像操作程序 (GNU Image Manipulation Program) 的缩写,是一个光栅图形编辑器,它有时候被认为是 Linux 平台上值得商榷的 [Photoshop 替代品][14] 。这款拥有 20 年历史的应用非常适合从基础到高级的图像编辑。此外,它支持图层、滤镜、装饰和其他对摄影工作必不可少的高级图像编辑功能。 +GIMP 是 “GNU 图像操作程序GNU Image Manipulation Program”的缩写,它是一个光栅图形编辑器,它有时候被视作 Linux 平台上的 [Photoshop 替代品][14](值得商榷)。这款拥有 20 年历史的应用适合于从基础到高级的图像编辑。此外,它支持图层、滤镜、装饰和其它对摄影工作必不可少的高级图像编辑功能。 ![GIMP Image Editor][15] - [官方主页][16] 是你了解更多关于 GIMP 的知识的最好的途径,可以在官网下载或者通过以下方式安装。 +[官方主页][16] 是你了解更多关于 GIMP 的知识的最好的途径,可以在官网下载或者通过以下方式安装。 我推荐的方式是通过 Flatpak 下载最新版本 GIMP 。你可以为 Flatpak 设置 [你的系统][17] 然后 [通过该页面安装][18] 。 [该页面][19] 提供了更多下载选项。 +#### 4、Spotify -#### 4. Spotify +Spotify 是一家专业提供音频流媒体和媒体服务的提供商。它是最广泛的音乐流媒体服务之一,有超过 400 万的月活用户。 -Spotify 是一家专业提供音频流媒体和媒体服务的提供商。它是最广泛的音乐流媒体服务之一,每月有超过 400 多万用户。 +首先,你需要安装客户端才能获取 Spotify 流媒体服务。其次,如果你是移动用户,你可以通过 Google Play 商店或者苹果应用商店获取 Spotify 应用。 -首先,你需要安装客户端才能获取 Spotify 流媒体服务。其次,如果你是移动用户,你可以通过 Google Play 或者苹果应用商店获取 Spotify 应用。 - -在 Linux 上安装桌面客户端后你可以收听上百万首歌曲。你可以为不同的 Linux 版本通过不同的方式安装 Spotify 。 +在 Linux 上安装桌面客户端后你可以收听上百万首歌曲。你可以为不同的 Linux 发行版通过不同的方式安装 Spotify 。 ![Spotify Client in Ubuntu][20] @@ -97,8 +96,7 @@ Spotify 是一家专业提供音频流媒体和媒体服务的提供商。它是 snap install spotify ``` -如果你偏向于原始的 deb 包,你可以通过以下命令安装: - +如果你偏爱原始的 deb 包,你可以通过以下命令安装: ``` curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add -echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list @@ -106,50 +104,46 @@ curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo 你也可以使用非官方 [Flatpak 包][21] 进行安装。 +#### 5、SimpleScreenRecorder -#### 5. SimpleScreenRecorder - -SimpleScreenRecorder 可能是最好的开源截屏工具。该应用程序易于使用并加载了功能。并且,其独特的 3 步录制屏幕的方法完全不需要学习。此外,你可以选择整个屏幕、一个窗口或自定义形状来记录屏幕。 - -此外,你还可以指定自动/视频比特率、音频源选项和不同的输出选项。最后,它可以安装在所有 Linux 发行版中。 +SimpleScreenRecorder 可能是最好的开源截屏工具。该应用程序易于使用并提供了各种功能。并且,其独特的 3 步录制屏幕的方法完全不需要学习。此外,你可以选择整个屏幕、窗口或自定义形状来记录屏幕。 +此外,你还可以指定音频/视频比特率、音频源选项和不同的输出选项。最后,它可以安装在所有 Linux 发行版中。 ![SimpleScreenRecorder][22] -[官方页面][23] 囊括了更多 SimpleScreenRecorder 的详细信息,你也可以使用如下方式下载。 +[官方页面][23] 囊括了更多的 SimpleScreenRecorder 信息,你也可以使用如下方式下载。 在 Ubuntu 或其他相关发行版中使用下面的 PPA 命令安装该应用: ``` sudo apt-get updatesudo apt-get install simplescreenrecorder ``` + 访问 [此页][24] 获取更多下载版本。 -#### 6. Calibre - -Calibre 是一款可以在 Ubuntu, Linux Mint 以及其他 Linux 平台使用的免费开源的电子书库管理应用程序。它拥有书库管理、电子书格式转换、同步你的电子书设备以及其他独特的功能。你可以下载新闻和其他互联网上的文章,并可以使用 Calibre 转换成电子书格式。同时,它支持多种电子书格式进行管理。 Calibre 是一款具有这些功能最好的电子书管理应用程序之一。 +#### 6、Calibre +Calibre 是一款可以在 Ubuntu、Linux Mint 以及其他 Linux 平台使用的自由开源的电子书库管理应用程序。它拥有书库管理、电子书格式转换、同步你的电子书设备以及其他独特的功能。你可以下载新闻和其他互联网上的文章,并可以使用 Calibre 转换成电子书格式。同时,它支持多种电子书格式进行管理。Calibre 是一款具有这些功能最好的电子书管理应用程序之一。 ![Calibre][25] [Calibre 主页][26] 提供了很多文件以及指导手册,你也可以使用以下方式下载。 +* [下载 Linux 版本][27] +* [下载其他系统版本][28] -* [在 Linux 发行版上下载][27] -* [在其他系统上下载][28] +#### 7、Scribus -#### 7. Scribus - -多年来,桌面出版发生了变化。现今,仍有一些桌面出版的应用程序和基于网页的服务。 Scribus 是早期的一款免费并开源的桌面出版应用程序,可以在 Linux 发行版和其他操作系统中使用。此外,它基于 Qt 并带来了吸引人的用户界面,你可以立即学习。 此外,初学者和专业人士都可以使用它来创建令人惊叹的 DTP 页面。 +多年来,桌面出版已经发生了变化。现今,仍有一些桌面出版的应用程序和基于网页的服务。Scribus 是早期的一款自由开源的桌面出版应用程序,可以在 Linux 发行版和其他操作系统中使用。此外,它基于 Qt,并带来了吸引人的用户界面,让你可以马上投入学习。此外,初学者和专业人士都可以使用它来创建令人惊叹的 DTP 页面。 并且它仍然在积极开发中。 - ![Scribus][29] -你可以在 Scribus的 [官方页面][30] 了解更多并下载,或者通过以下方式安装。 +你可以在 Scribus 的 [官方页面][30] 了解更多信息并下载,或者通过以下方式安装。 -Scribus 位于 Ubuntu 和其他相关发行版的主要存储库中。 您可以运行以下命令进行安装: +Scribus 位于 Ubuntu 和其他相关发行版的主要存储库中。你可以运行以下命令进行安装: ``` sudo apt install scribus @@ -157,11 +151,9 @@ sudo apt install scribus [该页面][31] 提供了其他下载选项。 +#### 8、MyPaint -#### 8. MyPaint - -第八个应用程序是 MyPaint 。MyPaint 是一个免费的开源绘图程序,适用于数字艺术家。 MyPaint 支持并可用于触屏平板电脑和设备。其独特的无干扰设计让你专注于绘图而不是应用程序。 外,它还带来了真正的铅笔和画笔仿真,具有广泛的画笔、颜色和图层。 - +第八个应用程序是 MyPaint 。MyPaint 是一个自由开源的绘图程序,适用于数字艺术家。MyPaint 支持并可用于压感平板电脑和设备。其独特的无干扰设计可以让你专注于绘图而不是应用程序。此外,它还带来了真实铅笔和画笔的仿真,提供了各种画笔、颜色和图层。 ![MyPaint 2.0.1][32] @@ -171,44 +163,35 @@ sudo apt install scribus [该页面][36] 提供了其他下载选项。 -#### 9. LibreOffice +#### 9、LibreOffice -如果有任何 Office 套件和市场领导者 Microsoft Office 相媲美,那一定是 Documen Foundation 的 LibreOffice 。它是所有 Linux 发行版的默认 Office 套件。它带有电子表格程序(Calc)、文字处理器(Writer)、演示文稿(Impress)和 Draw(用于绘图)。此外,它还带来了一个数据库系统 LibreOffice Base 和 Math 来演示数学公式。 +如果有任何专业的办公套件可以和市场领导者微软 Office 相媲美,那一定是文档基金会的 LibreOffice 了 。它是所有 Linux 发行版的默认办公套件。它带有电子表格程序(Calc)、文字处理器(Writer)、演示文稿(Impress)和用来绘图的 Draw。此外,它还带来了一个数据库系统 (Base)和用来撰写数学公式的 Math。 -除此之外, LibreOffice 提供两个版本。其一是社区版,社区版用于社区和一般用途,并带有最新的功能和更新。第二是商务版,也称企业版。企业版更稳定,更适合专业工作。 - -LibreOffice 办公套件默认安装在 Ubuntu 上。 +除此之外, LibreOffice 提供两个版本。其一是社区版,用于社区和一般用途,并带有最新的功能和更新。第二是商务版,也称企业版,更稳定,更适合专业工作。 +LibreOffice 办公套件已默认安装在 Ubuntu 上。 ![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][37] -[LibreOffice 的官方文档][38] 很庞大,你可以通过任何方式浏览它们,包括它的 [友好论坛][39] 。你可以 [从此处][40] 下载 LibreOffice。 +[LibreOffice 的官方文档][38] 很庞大,你可以通过各种方式浏览它们,包括在它 [友好的论坛][39] 。你可以 [从此处][40] 下载 LibreOffice。 如果你也想升级 LibreOffice ,你可以访问 [这里][41] 。 +#### 10、Cawbird -#### 10. Cawbird +如果你是重度 Twitter 用户,你或许应考虑一款桌面应用。 Cawbird 是一款 Linux 发行版上的 Twitter 桌面程序。它是 Corebird 应用(已停止维护)的复刻,Cawbird 带来了内嵌图片、视频预览、列表支持等。此外,它可以在 Twitter 上进行全文搜索,并支持多个 Twitter 帐户。 -如果你是重度 Twitter 用户,你或许应考虑一款桌面应用。 Cawbird 是一款 Linux 发行版上的 Twitter 桌面程序。它是 Corebird 应用(已停产)的分支,Cawbird 带来了内嵌图片、视频预览、列表支持等。此外,它可以在 Twitter 上进行全文搜索,并支持多个 Twitter 帐户。 - -但是,由于 Twitter API 的限制,它每两分钟刷新一次,以及其他一些限制,例如没有通知关注、取消关注、阻止、静音和其他功能。Twitter 强加了这些限制。 +但是,由于 Twitter API 的限制,它只能每两分钟刷新一次,此外,还有一些其他限制,例如没有关注和取消关注的通知、阻止、静音和其他功能。Twitter 强加了这些限制。 ![Cawbird][42] 最后,你可以通过 [该链接][43] 在任何 Linux 发行版上下载 Cawbird 。 - ### 结语 -这是 2022 年共 5 部分系列最佳 Ubuntu 应用程序的第 2 部分。我希望你能够在 Ubuntu 和其他发行版中安装和使用其中一些应用程序来完成你的日常工作。另外,请在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。 +这是 2022 年 5 篇系列的必备 Ubuntu 应用程序的第 2 篇。通过以上信息,我希望你可以选择一些应用供你的日常使用。在下面的评论框中告诉我你更喜欢此列表中的哪些应用程序。 - -最后,请继续关注本 Ubuntu 应用程序系列的第 3 部分。如果你错过了本系列的其他部分,可以在此处阅读它们: - -* [第一篇][44] -* [第三篇][45] - -干杯! +最后,请继续关注本 Ubuntu 应用程序系列的第 3 部分。 -------------------------------------------------------------------------------- @@ -217,7 +200,7 @@ via: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ba5ce1dbe6ce29da5a7c12d44b224cd13d6e2f76 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 11 Jul 2022 18:09:50 +0800 Subject: [PATCH 0332/3123] P @Donkey-Hao https://linux.cn/article-14816-1.html --- ...20606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md index aed2d4d7a0..e7fd03308c 100644 --- a/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md +++ b/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Donkey-Hao" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14816-1.html" 10 大必备 Ubuntu 应用:优选篇 ====== From da52c456785dd0d9e8742f5c77d5e5947d2b7ae0 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 12 Jul 2022 05:02:37 +0800 Subject: [PATCH 0333/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220711?= =?UTF-8?q?=20Nokia=20Targets=20An=20Amateur=20Linux=20Phone=20Project=20?= =?UTF-8?q?=E2=80=98NOTKIA=E2=80=99=20for=20a=20Name=20Change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md --- ...hone Project ‘NOTKIA- for a Name Change.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md diff --git a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md new file mode 100644 index 0000000000..136ae52823 --- /dev/null +++ b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md @@ -0,0 +1,85 @@ +[#]: subject: "Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change" +[#]: via: "https://news.itsfoss.com/nokia-notkia/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change +====== + +An open-source project that aims to make a classic Nokia like (small form factor) Linux phone has come under fire, by Nokia. + +The project’s name was originally “**Notkia**“, which Nokia finds similar while potentially affecting its brand reputation, and infringement of Nokia’s rights. + +While it is okay to protect your business, what is it with these companies sending infringement notices to projects that aren’t even a threat to them at its current state? + +### Notkia: Developing a Pocket-Sized Linux Phone + +Thanks to the notice by Nokia, we get to know about an interesting collaborative effort to develop a small Linux phone for basic use, while keeping privacy in mind. + +They aim to design a PCB that fits exactly in the classic Nokia’s phone shell. + +![][1] + +As of now, they have a decent amount of things working with the hardware that includes Bluetooth, and Wi-Fi. + +It is not an Android-based operating system, rather it relies on Mainline Linux Kernel. + +You can learn more about the project and the specifications for the planned phone in their [official blog post][2]. + +The project is waiting for fundraising, and will make early prototypes to available to be purchased separately. + +### Inspired by Nokia, and Noticed by Nokia + +Well, the project clearly states that they have been inspired by Nokia’s classic phones and they do not try to mislead any of their contributors and potential customers. + +The project’s creator shared the email by Nokia on Twitter, mentioning that Nokia should be more sensitive before sending such notices to projects that are led with community interests. + +See more + +> After reading the email from [@Nokia][3] one more time, I started to feel angry. This nothing more than a staged accident. Since this is already a collaborative project and contributed by people around the world, I'm going to release the complete email to its "intended recipients". [pic.twitter.com/jcUkVpWx5o][4] +> +> — @[ReimuNotMoe@mastodon.social][5] (@ReimuNotMoe) [June 30, 2022][6] + +**Also, they confirmed that the project will be changing its name.** + +Of course, as an open-source project, it should not concern Nokia unless they start selling their prototypes/phones while using Nokia’s brand name. + +But, at its current state, this is more of a passion project, and a collaborative effort by a community of open-source enthusiasts. So, it sounds a bit far-fetched to send a notice to them for infringing Nokia’s rights. + +_Right?_ + +Of course, this is not surprising for companies, but for Nokia, it seems a bit too overly cautious and anti-competitive. + +Especially, when it is safe to say that the company is not doing as good as you’d expect with their latest smartphone releases. + +Interestingly, there’s also an [IT company][7] with the name “Notkia”, as spotted by a fellow Twitter user. Did they also receive a notice by Nokia? Who knows? + +_What do you think about the open-source project for a pocket-sized phone powered by Linux?_ _Share your thoughts in the comments down below._ + +**Via**: [Vice][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/nokia-notkia/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9Ijc2NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ +[2]: https://hackaday.io/project/185645-notkia-name-change-planned +[3]: https://twitter.com/nokia?ref_src=twsrc%5Etfw +[4]: https://t.co/jcUkVpWx5o +[5]: mailto:ReimuNotMoe@mastodon.social +[6]: https://twitter.com/ReimuNotMoe/status/1542466662154108930?ref_src=twsrc%5Etfw +[7]: https://www.linkedin.com/company/notkia-it/ +[8]: https://www.vice.com/en/article/93awjz/nokia-asks-open-source-notkia-phone-project-to-change-its-name From 990572fc9c3e5172b9f313018f14074aa5d7d573 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 12 Jul 2022 05:02:46 +0800 Subject: [PATCH 0334/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220711?= =?UTF-8?q?=207=20Reasons=20Why=20Ubuntu=2022.04=20LTS=20is=20the=20Most?= =?UTF-8?q?=20Secure=20Release=20Yet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md --- ...2.04 LTS is the Most Secure Release Yet.md | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md diff --git a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md new file mode 100644 index 0000000000..62fa7c30b0 --- /dev/null +++ b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md @@ -0,0 +1,137 @@ +[#]: subject: "7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet" +[#]: via: "https://news.itsfoss.com/reasons-ubuntu-22-04-secure/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet +====== + +[Ubuntu 22.04 LTS][1], released back in April, is the most secure Ubuntu release yet. + +Between its extended security updates, new hardware support, and a wide range of other improvements, it far outperforms all previous releases in terms of security. + +But how does it do that? And, what makes this release different from previous ones? Well, there are a few reasons for that, and Canonical has highlighted all the relevant details in a new blog post. + +Here, let me summarise that to help you learn more. + +### What Makes Ubuntu 22.04 LTS Secure? + +With this release, it seems that the Ubuntu team has put a lot of work into ensuring its long-term security and reliability. Although they did this in an unthinkable number of ways over the years, I shall highlight a few things that include: + + * Improved hardware security measure support + * Updated security packages + * Private home directories + * OpenSSL 3 + * GCC 11 + * nftables as the default firewall backend + * Linux Kernel improvements + + + +#### 1\. Improved Hardware Security Measure Support + +![][2] + +As Intel, AMD, and ARM CPUs/SoCs start coming up with more security measures, it is becoming ever more important that adequate software is there to allow these features to be put to use. + +As of now, there are three major hardware security measures Ubuntu 22.04 supports. + +Intel’s Software Guard eXtensions (SGX) provides a secure and independent area to do sensitive computation. For example, password processing would ideally take place here, as it ensures that no other applications can access that data. + +The next includes AMD’s Secure Encrypted Virtualization (SEV). This technology aims to prevent host operating systems from being able to interfere with running virtual machines. + +Although this is not as relevant to desktop users as the other technologies, consider that a lot of data center infrastructure relies on virtual machines for containerizing applications. Overall, such hardware-specific security measures should enhance protection for both desktop and server users. + +#### 2\. Linux Kernel Security Improvements + +With every Ubuntu release, Linux Kernel gets an upgrade with many useful features and support. + +But, this time, Canonical introduced optimized kernel versions for different platforms. For OEM-certified desktop devices, [Linux Kernel 5.17][3] has been included. + +And, for all desktop and server users, [Linux Kernel 5.15 LTS][4] will be the one active. + +Not just limited to this concept, some essential kernel security enhancements mentioned in the [blog post][5] include: + + * _Support for [core scheduling][6], which allows processes to control which threads will be scheduled across SMT siblings and so can allow them to protect sensitive information from leaking to other untrusted processes on the system._ + * _Kernel stack randomisation provides a hardening measure to frustrate attackers wishing to perform memory corruption attacks within the kernel._ + * _The BPF subsystem has also seen a number of security enhancements including restricting its use to only privileged processes by default, as well as including the initial efforts to support signed BPF programs as well_ + * *The inclusion of the new Landlock Linux Security Module provides another mechanism for application sandboxing to go along with the more traditional methods via either AppArmor or SELinux. * + + + +Collectively, all these improvements make Ubuntu 22.04 LTS a safer option for developers, users, and system administrators. + +#### 3\. Updated Security Packages + +![][2] + +Stepping back from technical security concepts, we get to a concept every Ubuntu user should be already familiar with: packages. With every new Ubuntu release, most packages in the repositories get updated, bringing improved security and new features. + +Although not exactly something new to Ubuntu 22.04, this does include a lot of security-specific updates. A couple of examples of this include openSSL 3 and GCC 11. + +#### 4\. OpenSSL 3 + +OpenSSL is the backbone of all secure communications. + +OpenSSL 3 is particularly interesting as a major upgrade considering many legacy algorithms have been deprecated and disabled by default – including MD2 and DES. + +As a result, unless users specifically want to use the less secure algorithms, you will be getting the best security by default. + +#### 5\. GCC 11 + +GCC, on the other hand, is the compiler that many developers use to turn their code into programs that can be run on your computer. + +It brings numerous improvements, but there is one in particular that significantly improves security. Static analysis, which has been significantly enhanced, allows developers to find software vulnerabilities faster, preventing vulnerable code from ever being released in the first place. + +It may not affect users directly, many developers use Ubuntu to develop their applications. Therefore, a lot of the programs you download, even on non-Ubuntu systems, should be more secure than ever. + +#### 6\. Private Home Directories + +![][7] + +As a traditionally desktop-focused distribution, Ubuntu has often opted for convenience over security. However, as they push harder and harder for adoption in the cloud, this has had to change. + +Previously, anyone with access to the computer could open and view any user’s home directory. However, as you can imagine, this presented a lot of problems for non-desktop users. Hence, the change to private home directories was required. + +It may be slightly less convenient for multi-user systems, this can be changed relatively easily. And, for the less technically inclined, they get better security without having to do anything! + +#### 7\. nftables as the Default Firewall Backend + +![][2] + +For more than 25 years, firewalls have been a key part of keeping your computer isolated from the wider internet. During this time, Linux distros have generally used two different firewall solutions: iptables and xtables. + +However, recently, a different solution has entered the scene: nftables. Offering significant performance and flexibility improvements, it allows network admins to better protect your device. + +### Wrapping Up + +Undoubtedly, a lot of good upgrades made it to Ubuntu 22.04 LTS. Not just limited to the user experience, but it is also a significant leap in terms of security. + +Of course, there’s more to come, but the improvements mentioned above are good achievements! + +For more technical details, you can check out [Ubuntu’s official blog post][5]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/ + +作者:[Jacob Crume][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/jacob/ +[b]: https://github.com/lujun9972 +[1]: https://news.itsfoss.com/ubuntu-22-04-release/ +[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU3NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ +[3]: https://news.itsfoss.com/linux-kernel-5-17-release/ +[4]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[5]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts +[6]: https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html +[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI2MSIgd2lkdGg9Ijc3MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= From 454a56dbb8992aca0c0881716c8a93bdd09b36ba Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 12 Jul 2022 08:25:37 +0800 Subject: [PATCH 0335/3123] translated --- ...iles in your Linux terminal with ranger.md | 115 ------------------ ...iles in your Linux terminal with ranger.md | 115 ++++++++++++++++++ 2 files changed, 115 insertions(+), 115 deletions(-) delete mode 100644 sources/tech/20220704 Manage your files in your Linux terminal with ranger.md create mode 100644 translated/tech/20220704 Manage your files in your Linux terminal with ranger.md diff --git a/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md b/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md deleted file mode 100644 index 407f0b3de2..0000000000 --- a/sources/tech/20220704 Manage your files in your Linux terminal with ranger.md +++ /dev/null @@ -1,115 +0,0 @@ -[#]: subject: "Manage your files in your Linux terminal with ranger" -[#]: via: "https://opensource.com/article/22/7/manage-files-linux-terminal-ranger" -[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Manage your files in your Linux terminal with ranger -====== -Try this lightweight open source tool to preview files without leaving the terminal. - -![Filing cabinet for organization][1] - -The most basic way to look at your files and folders is to use the commands `ls` and `ll`. But sometimes, I want to see not just the file metadata but also the contents of a file at a glance. For that, I use ranger. - -If you love working out of your console and using [Vim][2] or Vi, and you don’t want to leave your terminal for any reason, ranger is your new best friend. Ranger is a minimal file manager that allows you not only to navigate through the files but also to preview them. Ranger comes bundled with rifle, a file executor that can efficiently choose programs that work with a given file type. - -### Installing ranger on Linux - -Ranger can be installed in Fedora or any RPM-based distro by running - -``` -$ sudo dnf install ranger -``` - -Ranger is also available for [other distros and macOS][3]. - -### Using ranger for the first time - -As a user, you can start ranger by simply typing `$ ranger` on your favorite terminal. The arrow keys give way to the navigation. This screenshot is an excellent example of how I can preview the code of the `config.example` file stored in `Kernel-tests`. - -![Screenshot of terminal showing config.example highlighted and a preview of the file in the terminal to the right][4] - -Picking any file and hitting F4 opens up your default editor and lets you edit the files right away! - -### What about images and videos? - -Using [rifle][5] with ranger lets you quickly find the program associated with a given file. Hovering over an image and then trying to open it is very simple; just hit Enter. Here’s how that looks: - -![Screenshot of a PNG file preview over a terminal window][6] - -Hitting i on an image file will give the user all the EXIF data. Hitting **S****hift+Enter** will open the PDF file. - -![A screenshot showing a preview of a PDF file (tickets to a museum) floating over the terminal window][7] - -The same key combo will open and start playing videos in the system's default video player that supports the codec. The example below is an mp4 video, which plays just fine on [VLC][8]. - -![Screenshot of a Bugcrowd University Cross Site Scripting video in VLC media player, previewed over the terminal][9] - -### File ops - -The following key bindings work well unless otherwise configured by the Vim user. - -j: Move down -k: Move up -h: Move to parent directory -gg: Go to the top of the list -i: Preview file -r: Open file -zh: View hidden files -cw: Rename current file -yy: Yank (copy) file -dd: Cut file -pp: Paste file -u: Undo -z: Change settings -dD: Delete file - -### Console commands - -Sometimes I have a folder that contains screenshots of a particular software when I am drafting articles. Selecting or marking files by hitting Space and then typing `:bulkrename` helps me move all the weird timestamps to, for example, lorax1, lorax2 , and so on. An example is below: - -![Screenshot of terminal showing timestamped files that can be renamed with the bulkrename command][10] - -Other useful console commands include: - -`:openwith` : Open a select file with a program of your choice -`:touch FILENAME` : Create a file -`:mkdir FILENAME` : Create a directory -`:shell ` : Run a command in shell -`:delete` : Delete files - -### Will it work in tty2/3/4? - -As someone who works in quality assurance (QA), I've found that searching for logs and reading them has never been easier. Even when my Gnome Display Manager crashes, I can switch over to my tty2, log in with my username and password, and start ranger with superuser permission, and then I am all sorted to explore! - -Ranger is a great tool for working with files without ever having to leave the terminal. Ranger is minimal and customizable, so give it go! - -Image by: (Sumantro Mukherjee, CC BY-SA 4.0) - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/manage-files-linux-terminal-ranger - -作者:[Sumantro Mukherjee][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/sumantro -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/files_documents_organize_letter.png -[2]: https://opensource.com/tags/vim -[3]: https://opensource.com/article/20/3/ranger-file-navigator -[4]: https://opensource.com/sites/default/files/2022-06/ranger%201.png -[5]: https://www.systutorials.com/docs/linux/man/1-rifle/ -[6]: https://opensource.com/sites/default/files/2022-06/ranger%202.png -[7]: https://opensource.com/sites/default/files/2022-06/ranger%203.png -[8]: https://opensource.com/article/21/2/linux-media-players -[9]: https://opensource.com/sites/default/files/2022-06/ranger%204.png -[10]: https://opensource.com/sites/default/files/2022-06/ranger%205.png diff --git a/translated/tech/20220704 Manage your files in your Linux terminal with ranger.md b/translated/tech/20220704 Manage your files in your Linux terminal with ranger.md new file mode 100644 index 0000000000..c5dc19297e --- /dev/null +++ b/translated/tech/20220704 Manage your files in your Linux terminal with ranger.md @@ -0,0 +1,115 @@ +[#]: subject: "Manage your files in your Linux terminal with ranger" +[#]: via: "https://opensource.com/article/22/7/manage-files-linux-terminal-ranger" +[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 ranger 在 Linux 终端管理你的文件 +====== +试试这个轻量级的开源工具,不用离开终端就可以预览文件。 + +![Filing cabinet for organization][1] + +查看你的文件和文件夹的最基本方法是使用命令 `ls` 和 `ll`。但是有时候,我不仅想看到文件的元数据,还想一目了然地看到文件的内容。为此,我使用 ranger。 + +如果你喜欢在控制台中工作,并使用 [Vim][2] 或 Vi,而且你不想因为任何原因离开你的终端,那么 ranger 就是你最好的新朋友。Ranger 是一个最小的文件管理器,它不仅可以让你浏览文件,还可以预览它们。Ranger 与 rifle 捆绑在一起,rifle 是一个文件执行器,可以有效地选择与特定文件类型相关的程序。 + +### 在 Linux 上安装 ranger + +Ranger 可以在 Fedora 或任何基于 RPM 的发行版中安装,方法是运行: + +``` +$ sudo dnf install ranger +``` + +Ranger 也可以用于[其他发行版和 macOS][3]。 + +### 第一次使用 ranger + +作为一个用户,你可以在你喜欢的终端上简单地输入 `$ ranger` 来启动 ranger。可以用方向键浏览。这张截图是一个很好的例子,我可以预览存储在 `Kernel-tests` 中的 `config.example` 文件的代码。 + +![Screenshot of terminal showing config.example highlighted and a preview of the file in the terminal to the right][4] + +选中任何文件并按下 F4 键,就可以打开你的默认编辑器,让你立即编辑这些文件! + +### 图像和视频怎么办? + +使用 [rifle][5] 和 ranger 可以让你快速找到与某一文件相关的程序。将鼠标悬停在图片上,然后试图打开它是非常简单的,只要点击回车即可。下面是它的样子: + +![Screenshot of a PNG file preview over a terminal window][6] + +在一个图像文件上点击 i 会给用户提供所有的 EXIF 数据。点击 **Shift+Enter** 将打开 PDF 文件。 + +![A screenshot showing a preview of a PDF file (tickets to a museum) floating over the terminal window][7] + +同样的组合键将在系统默认的支持该编解码器的视频播放器中打开并开始播放视频。下面的例子是一个 mp4 视频,它在 [VLC][8] 上播放得很好。 + +![Screenshot of a Bugcrowd University Cross Site Scripting video in VLC media player, previewed over the terminal][9] + +### 文件操作 + +除非 Vim 用户另有配置,否则下面的键绑定工作良好。 + +j:下移 +k:上移 +h: 移动到父目录 +gg:移到列表的顶部 +i:预览文件 +r:打开文件 +zh:查看隐藏文件 +cw:重命名当前文件 +yy:复制文件 +dd:剪切文件 +pp:粘贴文件 +u:撤销 +z:改变设置 +dD:删除文件 + +### 控制台命令 + +有时我在起草文章时,有一个文件夹包含某个软件的截图。通过点击空格选择或标记文件,然后输入 `:bulkrename`,可以帮助我把所有奇怪的时间戳变成如:lorax1、lorax2 等等。下面是一个例子。 + +![Screenshot of terminal showing timestamped files that can be renamed with the bulkrename command][10] + +其他有用的控制台命令包括: + +`:openwith`:用你选择的程序打开一个选择的文件 +`:touch FILENAME`:创建一个文件 +`:mkdir FILENAME`:创建一个目录 +`:shell `:在 shell 中运行一个命令 +`:delete`:删除文件 + +### 在 tty2/3/4 中能工作吗? + +作为一个从事质量保证(QA)工作的人,我发现搜索日志和阅读日志从未如此简单。即使我的 Gnome 显示管理器崩溃了,我也可以切换到我的 tty2,用我的用户名和密码登录,并以超级用户权限启动 ranger,然后我就可以尽情地探索了! + +Ranger 是一个很好的工具,可以在不离开终端的情况下处理文件。Ranger 是最小的,也是可定制的,所以不妨一试吧! + +图片来源:(Sumantro Mukherjee,CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/manage-files-linux-terminal-ranger + +作者:[Sumantro Mukherjee][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/sumantro +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/files_documents_organize_letter.png +[2]: https://opensource.com/tags/vim +[3]: https://opensource.com/article/20/3/ranger-file-navigator +[4]: https://opensource.com/sites/default/files/2022-06/ranger%201.png +[5]: https://www.systutorials.com/docs/linux/man/1-rifle/ +[6]: https://opensource.com/sites/default/files/2022-06/ranger%202.png +[7]: https://opensource.com/sites/default/files/2022-06/ranger%203.png +[8]: https://opensource.com/article/21/2/linux-media-players +[9]: https://opensource.com/sites/default/files/2022-06/ranger%204.png +[10]: https://opensource.com/sites/default/files/2022-06/ranger%205.png From 4824160f8e6d0af3c8a74cc9dd87287cbc7add52 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 12 Jul 2022 08:30:21 +0800 Subject: [PATCH 0336/3123] translating --- ...o Install yay AUR Helper in Arch Linux [Beginner-s Guide].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md b/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md index 5b89e9183e..c95c7e4658 100644 --- a/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md +++ b/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-yay-arch/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From a97299d13423d5b561911e4d8c1cc181948be8e5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 09:37:21 +0800 Subject: [PATCH 0337/3123] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2.04 LTS is the Most Secure Release Yet.md | 85 ++++++++++--------- ...Phone Project -NOTKIA- for a Name Change.md} | 35 ++++---- 2 files changed, 63 insertions(+), 57 deletions(-) rename sources/news/{20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md => 20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md} (79%) diff --git a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md index 62fa7c30b0..8be7344bee 100644 --- a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md +++ b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md @@ -1,7 +1,7 @@ [#]: subject: "7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet" [#]: via: "https://news.itsfoss.com/reasons-ubuntu-22-04-secure/" [#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lujun9972" +[#]: collector: "lkxed" [#]: translator: " " [#]: reviewer: " " [#]: publisher: " " @@ -9,8 +9,11 @@ 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet ====== +Ubuntu 22.04 LTS is one of the best Ubuntu releases so far. What makes it so secure? -[Ubuntu 22.04 LTS][1], released back in April, is the most secure Ubuntu release yet. +![ubuntu 22.04][1] + +[Ubuntu 22.04 LTS][2], released back in April, is the most secure Ubuntu release yet. Between its extended security updates, new hardware support, and a wide range of other improvements, it far outperforms all previous releases in terms of security. @@ -22,19 +25,17 @@ Here, let me summarise that to help you learn more. With this release, it seems that the Ubuntu team has put a lot of work into ensuring its long-term security and reliability. Although they did this in an unthinkable number of ways over the years, I shall highlight a few things that include: - * Improved hardware security measure support - * Updated security packages - * Private home directories - * OpenSSL 3 - * GCC 11 - * nftables as the default firewall backend - * Linux Kernel improvements +* Improved hardware security measure support +* Updated security packages +* Private home directories +* OpenSSL 3 +* GCC 11 +* nftables as the default firewall backend +* Linux Kernel improvements +#### 1. Improved Hardware Security Measure Support - -#### 1\. Improved Hardware Security Measure Support - -![][2] +![][3] As Intel, AMD, and ARM CPUs/SoCs start coming up with more security measures, it is becoming ever more important that adequate software is there to allow these features to be put to use. @@ -46,34 +47,32 @@ The next includes AMD’s Secure Encrypted Virtualization (SEV). This technology Although this is not as relevant to desktop users as the other technologies, consider that a lot of data center infrastructure relies on virtual machines for containerizing applications. Overall, such hardware-specific security measures should enhance protection for both desktop and server users. -#### 2\. Linux Kernel Security Improvements +#### 2. Linux Kernel Security Improvements With every Ubuntu release, Linux Kernel gets an upgrade with many useful features and support. -But, this time, Canonical introduced optimized kernel versions for different platforms. For OEM-certified desktop devices, [Linux Kernel 5.17][3] has been included. +But, this time, Canonical introduced optimized kernel versions for different platforms. For OEM-certified desktop devices, [Linux Kernel 5.17][4] has been included. -And, for all desktop and server users, [Linux Kernel 5.15 LTS][4] will be the one active. - -Not just limited to this concept, some essential kernel security enhancements mentioned in the [blog post][5] include: - - * _Support for [core scheduling][6], which allows processes to control which threads will be scheduled across SMT siblings and so can allow them to protect sensitive information from leaking to other untrusted processes on the system._ - * _Kernel stack randomisation provides a hardening measure to frustrate attackers wishing to perform memory corruption attacks within the kernel._ - * _The BPF subsystem has also seen a number of security enhancements including restricting its use to only privileged processes by default, as well as including the initial efforts to support signed BPF programs as well_ - * *The inclusion of the new Landlock Linux Security Module provides another mechanism for application sandboxing to go along with the more traditional methods via either AppArmor or SELinux. * +And, for all desktop and server users, [Linux Kernel 5.15 LTS][5] will be the one active. +Not just limited to this concept, some essential kernel security enhancements mentioned in the [blog post][6] include: +* Support for [core scheduling][7], which allows processes to control which threads will be scheduled across SMT siblings and so can allow them to protect sensitive information from leaking to other untrusted processes on the system. +* Kernel stack randomisation provides a hardening measure to frustrate attackers wishing to perform memory corruption attacks within the kernel. +* The BPF subsystem has also seen a number of security enhancements including restricting its use to only privileged processes by default, as well as including the initial efforts to support signed BPF programs as well +* The inclusion of the new Landlock Linux Security Module provides another mechanism for application sandboxing to go along with the more traditional methods via either AppArmor or SELinux. Collectively, all these improvements make Ubuntu 22.04 LTS a safer option for developers, users, and system administrators. -#### 3\. Updated Security Packages +#### 3. Updated Security Packages -![][2] +![][8] Stepping back from technical security concepts, we get to a concept every Ubuntu user should be already familiar with: packages. With every new Ubuntu release, most packages in the repositories get updated, bringing improved security and new features. Although not exactly something new to Ubuntu 22.04, this does include a lot of security-specific updates. A couple of examples of this include openSSL 3 and GCC 11. -#### 4\. OpenSSL 3 +#### 4. OpenSSL 3 OpenSSL is the backbone of all secure communications. @@ -81,7 +80,7 @@ OpenSSL 3 is particularly interesting as a major upgrade considering many legacy As a result, unless users specifically want to use the less secure algorithms, you will be getting the best security by default. -#### 5\. GCC 11 +#### 5. GCC 11 GCC, on the other hand, is the compiler that many developers use to turn their code into programs that can be run on your computer. @@ -89,9 +88,9 @@ It brings numerous improvements, but there is one in particular that significant It may not affect users directly, many developers use Ubuntu to develop their applications. Therefore, a lot of the programs you download, even on non-Ubuntu systems, should be more secure than ever. -#### 6\. Private Home Directories +#### 6. Private Home Directories -![][7] +![][9] As a traditionally desktop-focused distribution, Ubuntu has often opted for convenience over security. However, as they push harder and harder for adoption in the cloud, this has had to change. @@ -99,9 +98,9 @@ Previously, anyone with access to the computer could open and view any user’s It may be slightly less convenient for multi-user systems, this can be changed relatively easily. And, for the less technically inclined, they get better security without having to do anything! -#### 7\. nftables as the Default Firewall Backend +#### 7. nftables as the Default Firewall Backend -![][2] +![][10] For more than 25 years, firewalls have been a key part of keeping your computer isolated from the wider internet. During this time, Linux distros have generally used two different firewall solutions: iptables and xtables. @@ -113,25 +112,29 @@ Undoubtedly, a lot of good upgrades made it to Ubuntu 22.04 LTS. Not just limite Of course, there’s more to come, but the improvements mentioned above are good achievements! -For more technical details, you can check out [Ubuntu’s official blog post][5]. +For more technical details, you can check out [Ubuntu’s official blog post][11]. -------------------------------------------------------------------------------- via: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/ 作者:[Jacob Crume][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://news.itsfoss.com/author/jacob/ -[b]: https://github.com/lujun9972 -[1]: https://news.itsfoss.com/ubuntu-22-04-release/ -[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU3NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ -[3]: https://news.itsfoss.com/linux-kernel-5-17-release/ -[4]: https://news.itsfoss.com/linux-kernel-5-15-release/ -[5]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts -[6]: https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html -[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI2MSIgd2lkdGg9Ijc3MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/ubuntu-22-04-is-most-secure-release.jpg +[2]: https://news.itsfoss.com/ubuntu-22-04-release/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/hardware-security-illustration-1024x576.jpg +[4]: https://news.itsfoss.com/linux-kernel-5-17-release/ +[5]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[6]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts +[7]: https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html +[8]: https://news.itsfoss.com/wp-content/uploads/2021/07/open-source-security-illustration-1024x576.png +[9]: https://news.itsfoss.com/wp-content/uploads/2021/04/private-home-directory-ubuntu-21.png +[10]: https://news.itsfoss.com/wp-content/uploads/2022/07/firewall-illustration-1024x576.jpg +[11]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts diff --git a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md similarity index 79% rename from sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md rename to sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md index 136ae52823..604ee52c42 100644 --- a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project ‘NOTKIA- for a Name Change.md +++ b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md @@ -1,7 +1,7 @@ [#]: subject: "Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change" [#]: via: "https://news.itsfoss.com/nokia-notkia/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" +[#]: collector: "lkxed" [#]: translator: " " [#]: reviewer: " " [#]: publisher: " " @@ -9,6 +9,9 @@ Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change ====== +An open-source project wants to bring you a Nokia-like Linux phone, but Nokia does not seem to like the project’s name. + +![nokia][1] An open-source project that aims to make a classic Nokia like (small form factor) Linux phone has come under fire, by Nokia. @@ -22,13 +25,13 @@ Thanks to the notice by Nokia, we get to know about an interesting collaborative They aim to design a PCB that fits exactly in the classic Nokia’s phone shell. -![][1] +![][2] As of now, they have a decent amount of things working with the hardware that includes Bluetooth, and Wi-Fi. It is not an Android-based operating system, rather it relies on Mainline Linux Kernel. -You can learn more about the project and the specifications for the planned phone in their [official blog post][2]. +You can learn more about the project and the specifications for the planned phone in their [official blog post][3]. The project is waiting for fundraising, and will make early prototypes to available to be purchased separately. @@ -38,11 +41,11 @@ Well, the project clearly states that they have been inspired by Nokia’s class The project’s creator shared the email by Nokia on Twitter, mentioning that Nokia should be more sensitive before sending such notices to projects that are led with community interests. -See more - -> After reading the email from [@Nokia][3] one more time, I started to feel angry. This nothing more than a staged accident. Since this is already a collaborative project and contributed by people around the world, I'm going to release the complete email to its "intended recipients". [pic.twitter.com/jcUkVpWx5o][4] +> After reading the email from [@Nokia][4] one more time, I started to feel angry. This nothing more than a staged accident. Since this is already a collaborative project and contributed by people around the world, I'm going to release the complete email to its "intended recipients". > -> — @[ReimuNotMoe@mastodon.social][5] (@ReimuNotMoe) [June 30, 2022][6] +> ![Twitter: @ReimuNotMoe][5] + +[June 30, 2022][6] **Also, they confirmed that the project will be changing its name.** @@ -50,7 +53,7 @@ Of course, as an open-source project, it should not concern Nokia unless they st But, at its current state, this is more of a passion project, and a collaborative effort by a community of open-source enthusiasts. So, it sounds a bit far-fetched to send a notice to them for infringing Nokia’s rights. -_Right?_ +*Right?* Of course, this is not surprising for companies, but for Nokia, it seems a bit too overly cautious and anti-competitive. @@ -58,7 +61,7 @@ Especially, when it is safe to say that the company is not doing as good as you Interestingly, there’s also an [IT company][7] with the name “Notkia”, as spotted by a fellow Twitter user. Did they also receive a notice by Nokia? Who knows? -_What do you think about the open-source project for a pocket-sized phone powered by Linux?_ _Share your thoughts in the comments down below._ +*What do you think about the open-source project for a pocket-sized phone powered by Linux?* *Share your thoughts in the comments down below.* **Via**: [Vice][8] @@ -67,19 +70,19 @@ _What do you think about the open-source project for a pocket-sized phone powere via: https://news.itsfoss.com/nokia-notkia/ 作者:[Ankush Das][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://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9Ijc2NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ -[2]: https://hackaday.io/project/185645-notkia-name-change-planned -[3]: https://twitter.com/nokia?ref_src=twsrc%5Etfw -[4]: https://t.co/jcUkVpWx5o -[5]: mailto:ReimuNotMoe@mastodon.social +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/nokia-targets-linux-phone-notkia.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/notkia-nokia-1024x766.jpg +[3]: https://hackaday.io/project/185645-notkia-name-change-planned +[4]: https://twitter.com/nokia?ref_src=twsrc%5Etfw +[5]: https://pbs.twimg.com/media/FWftWyjUYAA49ew?format=jpg&name=large [6]: https://twitter.com/ReimuNotMoe/status/1542466662154108930?ref_src=twsrc%5Etfw [7]: https://www.linkedin.com/company/notkia-it/ [8]: https://www.vice.com/en/article/93awjz/nokia-asks-open-source-notkia-phone-project-to-change-its-name From 2f1b13d28deec818753109dbc7eb8f12e8e8e6b0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 09:39:49 +0800 Subject: [PATCH 0338/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220711=20Microsoft=20Postpones=20A=20Contentious?= =?UTF-8?q?=20Ban=20On=20Paid=20for=20Open=20Source=20And=20WebKit.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Ban On Paid for Open Source And WebKit.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md diff --git a/sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md b/sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md new file mode 100644 index 0000000000..fc1e134b49 --- /dev/null +++ b/sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md @@ -0,0 +1,37 @@ +[#]: subject: "Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit" +[#]: via: "https://www.opensourceforu.com/2022/07/microsoft-postpones-a-contentious-ban-on-paid-for-open-source-and-webkit/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit +====== +![microsoft][1] + +On July 16, the Microsoft Store, an online store for Windows apps and other apps, was supposed to implement new policies prohibiting developers from selling open source apps that are otherwise free and from distributing browser apps that use Apple’s WebKit engine. However, Giorgio Sardo, general manager of the Microsoft Store, stated on Friday that Microsoft will postpone enforcement in response to the developer community’s criticism. The changes, which were announced last month, appear to be aimed at improving the Microsoft Store experience. They include, for example, a section prohibiting apps from disseminating misinformation if they “provide content related to information, news, or current events in the real world.” + +However, the new rules restrict what developers can do with open source software. They forbid Microsoft Store apps from using Apple’s WebKit browser engine, for example. In fact, any web browser engine other than Chromium, Gecko, or EdgeHTML would be prohibited, so it’s not just WebKit that’s forbidden. Apple’s Safari browser, which is based on WebKit, hasn’t been officially supported for Windows since 2012. However, because WebKit is open source, an enterprising developer (or team of developers, because browsers are complicated) could presumably create a browser for Windows. + +What makes this unusual is that Microsoft announced its Open App Store Principles in February to address regulatory concerns about competition stemming from its acquisition of Activision/Blizzard. The Windows behemoth did so fully aware of the global antitrust challenges to Apple’s App Store and Google Play. In fact, Microsoft has backed efforts to force its competitors to relax their own store policies. The App Store browser rule, which requires all iOS browser apps to be based on Apple’s WebKit engine rather than Google’s open source Chromium/Blink or Mozilla’s open source Gecko engine, has been a major source of regulatory pushback against Apple. + +The EU’s Digital Markets Act and Digital Services Act aim to boost competition by removing Apple’s WebKit requirement. The UK Competition and Markets Authority, like the US National Telecommunications and Information Administration (NTIA), is considering a similar rule. As a result, Microsoft declares in Section 10.2.1: “Products that browse the web must use either the Chromium or the Gecko open source engine.” (The company is also making an exception for legacy apps in the Microsoft Store built with its discontinued EdgeHTML engine.) + +Developers appear to be more concerned about Microsoft’s decision to restrict the sale of apps based on open source software. “Not attempt to profit from open source or other software that is otherwise generally available for free, nor be priced irrationally high relative to the features and functionality provided by your product,” says Section 10.8.7 of the revised policy. The policy change comes in the wake of Microsoft’s commercial release of GitHub Copilot, a subscription-based AI code suggestion tool trained on open source code. The Software Freedom Conservancy, an open source advocacy group, accused Microsoft last week of profiting from open source without clarifying whether Copilot complies with licencing terms and urged open source developers to abandon GitHub. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/microsoft-postpones-a-contentious-ban-on-paid-for-open-source-and-webkit/ + +作者:[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/07/microsoft-e1657525936852.jpg From 710141463c91067a22c796578b3d107a5b6451f9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 09:41:34 +0800 Subject: [PATCH 0339/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220711=20Manual=20Renewal=20of=20SSL=20Certificate?= =?UTF-8?q?s-=20A=20Simple=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...wal of SSL Certificates- A Simple Guide.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md diff --git a/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md b/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md new file mode 100644 index 0000000000..cc623b7906 --- /dev/null +++ b/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md @@ -0,0 +1,80 @@ +[#]: subject: "Manual Renewal of SSL Certificates: A Simple Guide" +[#]: via: "https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/" +[#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manual Renewal of SSL Certificates: A Simple Guide +====== + +![SSL-Certificates-Featured-image][1] + +*In the April 2022 issue of this magazine, we read about the different types of SSL certificates and their applications. This article explains how to manually renew an existing SSL certificate, so that it stays updated with the latest security requirements.* + +When visitors interact with your website and share critical details like credit card numbers, they trust that their information has been secured against misuse. So it becomes your responsibility to respect that trust and offer complete protection to all the visitors on your site. Failing to do so can not only cost you the loyalty of customers but may also put you in a legal soup. There have been many instances where websites that couldn’t protect their customers’ data against leakage, theft or misuse were forced to pay hefty penalties, and also lost their reputation. + +#### How does an SSL certificate secure customers’ data? + +One of the best ways to protect sensitive customer information is to secure your site with an SSL (secure sockets layer) certificate. Without going into the technical nitty-gritties, an SSL certificate encrypts the communication between a Web server and the visitor’s browser, and thus makes it technically impossible for hackers or threat actors to steal data in transit. SSL establishes a secure handshake process to decrypt the encrypted information — a process that is too complex to be cracked by humans or even software. + +#### Why do you need to update your SSL certificate? + +While an SSL certificate does offer security against data theft or misuse, you need to update it periodically to ensure the most effective security against the latest threats. This article will list the step-by-step instructions for renewing your SSL certificate in the right way. + +There are quite a few benefits of updating an SSL certificate: + +* Timely renewal authenticates your website’s identity. +* You get updated security. +* A one-year validity promotes the healthy practice of periodically renewing/upgrading the scope of protection, thus eliminating the risks associated with outdated versions. + +> Note: The best practice is to select an auto renewal option that relieves you from the stress of remembering the renewal date or manually following the related steps. | + +#### A bit off topic …a pure open source way to build your own SSL certificate + +Yes, it is absolutely true! With some simplified and compact steps you can actually build your own SSL certificate from scratch! While the entire process is out of the scope of this article, here are a few key open source components and tools that you can use to create your SSL certificate. + +* OpenSSL: This is a highly credible tool to implement TLS and crypto libraries. +* EasyRSA: This command-line tool enables you to build PKI CA and manage it efficiently. +* CFSSL: Cloudflare has finally built a multi-purpose, multi-capability tool for PKI and TLS. +* Lemur: A fair enough TLS producer developed by Netflix. + +### How to renew your SSL certificate + +While the broad process of [SSL][2] renewal remains the same, there could be some minor tweaks and variations depending upon your specific SSL provider. + +The renewal process follows three main steps — CSR (certificate signing request) generation, certificate activation and, finally, the certificate installation. + +**Generating CSR:** For cPanel hosting panels, you can click on the Security tab and search for the *SSL/TLS* option. It will display a screen that shows a link just under the CSR option. This section facilitates new CSR generation for your desired domain name. + +You will be asked detailed contact information for confirming that you are the genuine domain owner. After filling the form, you will get a CSR code that is needed for certificate reactivation. + +*Activating an SSL certificate:* In your dashboard, you can see a quick overview of the SSL certificate, domains and other digital infrastructure products that you own. Click this button to start the SSL renewal process. Enter the CSR generated a while ago and confirm the accuracy of the information. You can now validate the SSL renewal process. + +*Validating the SSL certificate:* You will once again be prompted to confirm domain ownership. Enter your domain-associated email. Upload a file on the Web server where the certificate needs to be installed. Validate the SSL certificate with the help of CNAME records. While there are multiple options, it is best and easiest to validate it with an email. Once you enter the domain associated email, you will get an email containing a specific link followed by another mail that comprises the new certificate file with a .*crt* extension. + +*Installing the SSL certificate:* Your Web hosting provider will either give you an option for communicating with the support team for installing renewed files or provide you with the detailed instructions on how you can do it manually through your cPanel. Keep in mind that different hosts offer different options for renewal. That said, if you are a non-technical person then contacting the support team will be the best option for you. + +For manual updating, visit the *SSL/TLS* section of your cPanel and find the *Manage SSL* sites option. It contains the entire domain list that you own. Corresponding to each domain name you can see the Certificate Renewal option. + +In the screen next to it, enter the details in *Private Key* using the *Autofill* by *Domain* option. Under the *Certificate* option, fill the details of your .*crt file*. You are almost done. Just click the button that reads *Install Certificate*. + +Along with saving the critical data and sensitive information of your users, the SSL certificate also builds trust by reaffirming that data shared on your site is secure. It can also affect your SEO profile positively as Google considers SSL certification a healthy practice. However, to continue enjoying the best security with this certificate, you need to update it periodically. This ensures that your site is fully secured against the data in transit attacks as per the latest security requirements. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/ + +作者:[Jitendra Bhojwani][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/jitendra-bhojwani/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/SSL-Certificates-Featured-image.jpg +[2]: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwitou7xjv_3AhWLRmwGHVZ2BWwQFnoECB0QAQ&url=https%3A%2F%2Fgithub.com%2Fopenssl%2Fopenssl&usg=AOvVaw0niwMRCpb4nN_PtJFMQwWP From 23d1caf910eb4f713952928d3e2a8395731b0062 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 09:43:20 +0800 Subject: [PATCH 0340/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220711=20Run=20Linux,=20macOS,=20Windows=20Virtual?= =?UTF-8?q?=20Machines=20With=20Quickemu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Windows Virtual Machines With Quickemu.md | 382 ++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100644 sources/tech/20220711 Run Linux, macOS, Windows Virtual Machines With Quickemu.md diff --git a/sources/tech/20220711 Run Linux, macOS, Windows Virtual Machines With Quickemu.md b/sources/tech/20220711 Run Linux, macOS, Windows Virtual Machines With Quickemu.md new file mode 100644 index 0000000000..e65f212754 --- /dev/null +++ b/sources/tech/20220711 Run Linux, macOS, Windows Virtual Machines With Quickemu.md @@ -0,0 +1,382 @@ +[#]: subject: "Run Linux, macOS, Windows Virtual Machines With Quickemu" +[#]: via: "https://ostechnix.com/run-linux-macos-windows-virtual-machines-with-quickemu/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Run Linux, macOS, Windows Virtual Machines With Quickemu +====== +Use Quickemu To Quickly Spin Up Virtual Machines For Linux, macOS And Windows + +This guide explains what is **Quickemu** and how to create and **run Linux, macOS and Windows desktop virtual machines with Quickemu** in Linux. + +### What Is Quickemu? + +Quickemu is a command line program to quickly create and run optimized Linux, macOS and Windows desktop virtual machines. + +You don't need sudo or root permissions to run virtual machines. You can simply test any Linux, macOS or Windows VMs as a normal user and store the virtual machine configurations in your HOME directory or USB disk. + +The Quickemu application consists of two CLI tools namely **quickemu** and **quickget**. + +The quickget CLI tool downloads the latest ISO image for your OS. By default, the downloaded images are saved in your HOME directory. You can change it to other location for example external USB drive. + +And, the Quickemu CLI tool uses **QEMU** under the hood to create and manage virtual machines. So the VMs are highly optimized and should work out of the box without any additional configuration. + +### Quickemu Features + +Quickemu ships with a lot of features out of the box. + +* Over 300 operating systems are supported. +* Supports both EFI (with or without SecureBoot) and Legacy BIOS boot. +* Full SPICE support with host/guest clipboard sharing. +* Enables file sharing for Linux and Windows guests using VirtIO-webdavd. +* Enables file sharing for Linux and macOS guests using VirtIO-9p. +* Enables Samba file sharing between Linux, macOS and Windows guests. +* Configures automatic SSH port-forwarding for guests. +* Network port forwarding. +* Full duplex audio support. +* Smartcard, USB device pass-through. +* VirGL acceleration. +* Braille support. +* Free and Opensource. + +### Install Quickemu In Linux + +Quickemu is a new project and has been packaged for a few operating systems at the moment. + +**Arch Linux:** + +Quickemu is available in **[AUR][1]**. If you're on Arch Linux and its variants like EndeavourOS, Manjaro Linux, you can install Quickemu using **[Paru][2]** or **[Yay][3]** helpers. + +``` +$ paru -S quickemu +``` + +Or, + +``` +$ yay -S quickemu +``` + +**NixOS:** + +To install Quickemu in NixOS, run: + +``` +$ nix-env -i quickemu +``` + +**Ubuntu:** + +The developer of Quickemu has created a dedicated PPA for Ubuntu and its derivatives such as Elementary OS, Linux Mint and Pop!_OS. + +To install Quickemu in Ubuntu and its derivatives, run the following commands one by one. + +``` +$ sudo apt-add-repository ppa:flexiondotorg/quickemu +``` + +``` +$ sudo apt update +``` + +``` +$ sudo apt install quickemu +``` + +For other Linux distributions, refer to the project's GitHub repository given at the end. + +### Run Linux, MacOS And Windows Virtual Machines With Quickemu + +Creating and managing VMs with Quickemu is just two step process. + +Download the OS image, for example Alpine Linux, using quickget CLI: + +``` +$ quickget alpine latest +``` + +You can also download a specific version of the Alpine like below: + +``` +$ quickget alpine 3.15 +``` + +It will create a configuration file for the chosen OS. It will be named based on the selected OS. + +``` +alpine-latest/alpin 100%[===================>] 47.00M 3.52MB/s in 14s +Checking alpine-latest/alpine-virt-3.16.0-x86_64.iso with sha256sum... Good! +Making alpine-latest.conf + +To start your Alpine Linux virtual machine run: + quickemu --vm alpine-latest.conf +``` + +![Download Alpine Linux ISO Image With Quickget][4] + +Now start your Alpine Linux virtual machine using command: + +``` +$ quickemu --vm alpine-latest.conf +``` + +This command will create and launch the Alpine Linux virtual machine via Spicy GTK client. + +![Run Alpine Linux Virtual Machine With Quickemu][5] + +Please note that it is just a live system. You still need to install the OS. You can now start the Alpine OS installation as usual. + +Each VM and its associated files(ISO, Qcow2, other configuration files) are stored in a separate directory in your HOME directory. For instance, if you created Alpine VM using the Alpine latest image, a new directory called "alpine-latest" will be created and the VM's related files will be kept in this directory. + +``` +$ ls alpine-latest +alpine-latest-agent.sock alpine-latest.pid alpine-latest.sh disk.qcow2 +alpine-latest.log alpine-latest.ports alpine-virt-3.16.0-x86_64.iso OVMF_VARS.fd +``` + +As you see in the above output, my Alpine Linux VM's ISO file, Qcow2 disk file and other config files such as `.ports`, `.fd`, `.sock` etc., are saved inside **~/alpine-latest** directory. + +### Accessing Virtual Machines From Host Via Terminal + +Whenever you launch a VM, Quickemu will display the following useful information on your host system's terminal. + +``` +Quickemu 3.15 using /usr/bin/qemu-system-x86_64 v6.2.0 + - Host: Ubuntu 22.04 LTS running Linux 5.15 (ubuntu2204) + - CPU: 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz + - CPU VM: 1 Socket(s), 1 Core(s), 1 Thread(s), 4G RAM + - BOOT: EFI (Linux), OVMF (/usr/share/OVMF/OVMF_CODE_4M.fd), SecureBoot (off). + - Disk: alpine-latest/disk.qcow2 (16G) + Looks unused, booting from alpine-latest/alpine-virt-3.16.0-x86_64.iso + - Boot ISO: alpine-latest/alpine-virt-3.16.0-x86_64.iso + - Display: SPICE, qxl-vga, GL (on), VirGL (off) + - ssh: On host: ssh user@localhost -p 22220 + - SPICE: On host: spicy --title "alpine-latest" --port 5930 --spice-shared-dir /home/ostechnix/Public + - WebDAV: On guest: dav://localhost:9843/ + - 9P: On guest: sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=104857600 Public-ostechnix ~/Public + - Process: Starting alpine-latest.conf as alpine-latest (11272) +``` + +As you see, It displays the configuration details of both host and VM including the other details such as how to access the VM via SSH, access the shared folder via SPICE client etc. You can use these details to access the VM from your host system. + +For example, if the SSH service is configured with port 22220 in your VM, you can access the VM from your hosts system like below. + +``` +$ ssh -P 22220 vm-user@localhost +``` + +You can check the `.ports` file in the VM directory to find what SSH and SPICE ports the VM is connected to. + +``` +$ cat alpine-latest/alpine-latest.ports +ssh,22220 +spice,5930 +``` + +This can be useful when you want to start the VMs in headless mode. + +### Create VMs With Custom Specification(CPU Core, Disk And Memory) + +By default, Quickemu will allocate the number of CPUs cores, and the size of the disk and RAM based on your host computer's specification. You can override this default behavior by using the following parameters. + +* cpu_cores="2" - Specify the number of CPU cores(E.g. 2 cores) allocated to the VM. +* ram="4G" - Specify the RAM capacity(E.g. 4 GB) to allocate to the VM. +* disk_size="20G" - Specify the disk size(E.g. 20 GB) to allocate to the VM. + +To create a VM with 2 CPU cores, 4 GB RAM and 20 GB hdd, edit your VM configuration file: + +``` +$ nano alpine-latest.conf +``` + +Add the following lines: + +``` +cpu_cores="2" +ram="4G" +disk_size="20G" +``` + +![Create Custom Configuration VM Using Quickemu][6] + +Now, start the VM using the updated config file: + +``` +$ quickemu --vm alpine-latest.conf +``` + +### Create Desktop Shortcut For VMs + +Instead of typing the whole command, you can create a desktop shortcut for your VM like below. + +``` +$ quickemu --vm alpine-latest.conf --shortcut +``` + +This command will create shortcut for the Alpine VM in `~/.local/share/applications/` location. + +``` +$ ls ~/.local/share/applications/ +alpine-latest.desktop +``` + +A menu entry for the VM is also created for the VM. From now on, you can launch the VM from the Dash or menu. + +![Desktop Shortcut For VMs][7] + +### Start VMs With SPICE Client + +Launching VMs with SPICE protocol will offer you the following benefits. + +* Share clipboard between host and guest. +* Share files between host and guest. +* Enable USB pass-through. + +Make sure the `spicy` client is installed and run the following command to + +``` +$ quickemu --vm alpine-latest.conf --display spice +``` + +### Use Existing ISO Images + +Sometimes, you might have already downloaded the ISO files. In that case, you don't need to use "quickget" command to download the ISO file. Instead, just edit your VM configuration file: + +``` +$ nano alpine-latest.conf +``` + +Update the correct ISO file pathg(E.g. /home/ostechnix/Downloads/) like below: + +``` +[...] +iso="/home/ostechnix/Downloads/alpine-virt-3.16.0-x86_64.iso" +``` + +Now Quickemu will use the ISO file saved in the "Downloads" directory. + +### Start VMs In Headless Mode + +Make sure the **spicy** client is installed. + +Run the following command to start the VM with SPICE, but no display attached: + +``` +$ quickemu --vm alpine-latest.conf --display none +``` + +Since the VM is started in headless mode, you can access it via SSH only. + +Assuming the SSH service is configured with port 22220 in your VM, you can access the VM from your hosts system like below. + +``` +$ ssh -P 22220 vm-user@localhost +``` + +You can check the `.ports` file in the VM directory to lookup what SSH and SPICE ports the VM is connected to. + +``` +$ cat alpine-latest/alpine-latest.ports +ssh,22220 +spice,5930 +``` + +### Configure Networking + +**Enable Bridge Networking** + +To allow your VM to a preconfigured network bridge, add the following line to the VM configuration: + +``` +bridge="br0" +``` + +**Port Forwarding** + +To allow port forwarding, add the following line to VM configuration: + +``` +port_forwards=("22:2200" "8800:80" +``` + +Here, + +* 22:2200 - The port 22 on your host system is forwarded to the port 2200 on your guest system. +* 8800:80 - The port 8800 on your host system is forwarded to the port 80 on your guest system. + +Quickemu allows you to do a few other customization. For more details, refer the project's GitHub page given at the end. + +### Delete Virtual Machine + +You can delete a VM if it is no longer required using command: + +``` +$ quickemu --vm alpine-latest.conf --delete-vm +``` + +This command will the entire virtual machine along with its configuration. + +### Display Help + +To view Quickemu help, run: + +``` +$ quickemu --help + +Usage + quickemu --vm ubuntu.conf + +You can also pass optional parameters + --braille : Enable braille support. Requires SDL. + --delete-disk : Delete the disk image and EFI variables + --delete-vm : Delete the entire VM and it's configuration + --display : Select display backend. 'sdl' (default), 'gtk', 'none', or 'spice' + --fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit) + --ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers + --screen : Use specified screen to determine the window size. + --shortcut : Create a desktop shortcut + --snapshot apply : Apply/restore a snapshot. + --snapshot create : Create a snapshot. + --snapshot delete : Delete a snapshot. + --snapshot info : Show disk/snapshot info. + --status-quo : Do not commit any changes to disk/snapshot. + --version : Print version +``` + +### Conclusion + +Quickemu provides an easy way to quickly deploy and run Windows, macOS and Linux desktop virtual machines. + +One distinct feature of Quickemu, we can download the ISO image directly using the Quickget CLI. I don't think if this feature is included in the other virtualization applications and hypervisors. + +Also Quickemu usage is very easy! If you're looking for a simple way to run optimized Virtual machines for Linux, macOS and Windows, Quickemu is perfect choice! + +**Resource:** + +* [Quickemu GitHub Repository][8] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/run-linux-macos-windows-virtual-machines-with-quickemu/ + +作者:[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://aur.archlinux.org/packages/quickemu +[2]: https://ostechnix.com/how-to-install-paru-aur-helper-in-arch-linux/ +[3]: https://ostechnix.com/yay-found-yet-another-reliable-aur-helper/ +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Download-Alpine-Linux-ISO-Image-With-Quickget.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Alpine-Linux-Virtual-Machine-With-Quickemu.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/Create-Custom-Configuration-VM-Using-Quickemu.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Desktop-Shortcut-For-VMs.png +[8]: https://github.com/quickemu-project/quickemu From 13ac5c91c552e380f8602fc4c156f25fae4da42d Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 09:45:00 +0800 Subject: [PATCH 0341/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220711=20Why=20Agile=20coaches=20need=20internal?= =?UTF-8?q?=20cooperation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Agile coaches need internal cooperation.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/talk/20220711 Why Agile coaches need internal cooperation.md diff --git a/sources/talk/20220711 Why Agile coaches need internal cooperation.md b/sources/talk/20220711 Why Agile coaches need internal cooperation.md new file mode 100644 index 0000000000..ed15dbc048 --- /dev/null +++ b/sources/talk/20220711 Why Agile coaches need internal cooperation.md @@ -0,0 +1,89 @@ +[#]: subject: "Why Agile coaches need internal cooperation" +[#]: via: "https://opensource.com/article/22/7/agile-coach-internal-cooperation" +[#]: author: "Kelsea Zhang https://opensource.com/users/kelsea-zhang" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why Agile coaches need internal cooperation +====== +An Agile coach is only as successful as their Agile partner. Here's how to foster internal cooperation and create an Agile team. + +![Working meetings can be effective meetings][1] + +Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2] + +If you're an Agile coach, you probably seek to inspire and empower others as an external member of your team or department. However, many Agile coaches overlook the importance of internal cooperation. That's not necessarily a term you are familiar with, so allow me to explain. + +### What is internal cooperation? + +As an Agile coach, you don't work alone. You try to find a partner in the team you're taking care of. This partner is expected to: + +* Undertake all or most of the Agile transformation in the future. +* Find all possible opportunities for systematic improvement and team optimization. +* Be self-motivated. +* Not be managed by you; you delegate your enthusiasm and vision to them. + +Of course, maybe you don't need such a person because, theoretically speaking, everyone in the team is your ideal candidate, and everyone is self-driven. Or maybe your whole team will magically become what you want it to be overnight. + +Reality check: most of the time, you need a partner, an inside agent. Somebody to keep the spirit of Agile alive, whether you're there to encourage it or not. + +### Internal cooperation is required + +Getting buy-in from the team you are coaching isn't a luxury; it's a requirement. If you're the only Agile practitioner on your team, then your team isn't Agile! So how do you cultivate this internal cooperation? + +#### Clarify responsibility + +Being Agile is supposed to be a team effort. The beneficiary is the team itself, but the team must also bear the burden of transformation. An Agile coach is meant to be inspiring and empowering, but the change doesn't happen in just one person. That's why teams must learn to consider and solve problems on their own. A team must have its own *engine* (your Agile partner is such an engine) rather than relying on the external force of the Agile coach. It's the engines that want to solve problems, and with the help of Agile coaches, their abilities and ways of thinking can be enriched and improved. + +It's best to have an engine from the beginning, but that's not always possible. The earlier, the better, so look for allies from the start. + +#### Know the team + +When you find a partner, you gain someone who understands the team's situation better than you do. A good partner knows the team from the inside and communicates with it on a level you cannot. No matter how good you are as an Agile coach, you must recognize that an excellent Agile partner has a unique advantage in "localization." + +The best approach is not *An Agile coach makes a customized implementation plan for the team, and then the team is responsible for execution*. In my opinion, with the support of the Agile coach, the Agile partner should work with the team to make plans that best fit its needs. Next, try to implement those plans with frequent feedback and keep adjusting them as needed. + +You continue to observe progress, whether the team members falter in Agile principles, and give them support at the right moments. Of course, when there's something wrong, you often want to stay silent, let the team hit a wall, and learn from their setbacks. Other times, stepping in to provide guidance is the right thing. + +### Is an Agile coach still necessary? + +In a word: Absolutely! + +Agile is a team effort. Everyone must collaborate to find processes that work. Solutions are often sparked by the collision of ideas between the Agile coach and the partner. Then the partner can accurately get how an Agile theory is applied in the daily work. The partner understands the essence of Agile theories through the solutions. + +As an Agile coach, you must have a solid theoretical foundation and the ability to apply that theory to specific scenarios. On the surface, you take charge of the theory while your Agile partner is responsible for the practice. However, an Agile coach must not be an armchair strategist, and teams aren't supposed to assume that the Agile coach is a theorist. In fact, an Agile coach must consciously let go of the practice part so the Agile partner can take over. + +The significance of accompanying a team is not supposed to be pushing the team to move passively toward the Agile coach's vision. The amount of guidance required from you will fluctuate over time, but it shouldn't and can't last forever. + +### Find an Agile partner + +How do you find your Agile partner? First of all, observe the team you are coaching and notice anyone who is in charge of continuous improvement, whether it's their defined job role or not. That person is your Agile partner. + +If there's nobody like that yet, you must cultivate one. Be sure to choose someone with a good sense of project management. I have observed that team leaders or project managers who perform well in the traditional development model may not be good candidates in the Agile environment. In an Agile management model, you must have an open mind, a sense of continuous pursuit of excellence, a flexible approach, extensive knowledge, and strong self-motivation. + +### Be Agile together + +Don't be shy about bringing on a partner to help you with your work and communication. Instead, find willing partners, and work together to make your organization an Agile one. + +*[This article is translated from Xu Dongwei's Blog and is republished with permission.][4]* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/agile-coach-internal-cooperation + +作者:[Kelsea Zhang][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/kelsea-zhang +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/leader-team-laptops-conference-meeting.png +[2]: https://creativecommons.org/licenses/by/3.0/us/ +[3]: https://enterprisersproject.com/article/2022/2/agile-adoption-6-steps-IT-leaders?intcmp=7013a000002qLH8AAM +[4]: https://mp.weixin.qq.com/s/OQUAY6JkpTEgnev_EgZdZA From 566ba68efcc6b92d89cb7866d119c109c6cd7bfa Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 10:09:26 +0800 Subject: [PATCH 0342/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DO Pulse 15 is a Workstation Powerhouse.md | 93 ------------------- 1 file changed, 93 deletions(-) delete mode 100644 sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md diff --git a/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md b/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md deleted file mode 100644 index 95d3c58184..0000000000 --- a/sources/news/20220705 The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: subject: "The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse" -[#]: via: "https://news.itsfoss.com/tuxedo-pulse-gen-2/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The Next-Gen TUXEDO Pulse 15 is a Workstation Powerhouse -====== -TUXEDO’s all-new Pulse 15 Gen 2 now packs an improved WQHD 165Hz display and AMD’s Ryzen 7 5700U that runs at 35W! - -![tuxedo][1] - -TUXEDO Computers is a German manufacturer popular for offering a wide range of consumer Linux desktops and laptops. - -One of their latest notebook releases, the **Pulse 15** – which was introduced two years ago has received a second revision and it sounds like a big upgrade. - -### Tuxedo Pulse 15 Gen-2: What’s New? - -![][2] - -The notebook’s new 15.6-inch display takes the center stage here. A **2560 x 1440 pixels LED panel** is definitely a huge enhancement compared to the 1080p display used in the previous model. So you can expect clearer and more detailed images, not to mention fluid movements thanks to the high **165Hz refresh rate**! - -The AMD Ryzen 5 4600H is now replaced by the year-old **Ryzen 7 5700U**. Offering a total of 8 cores and 16 threads with a boost up to 4.3Ghz clock speed, it should be ideal for heavy workloads. - -TUXEDO has optimized the CPU to run at a whopping 35W instead of the maximum recommended 25W. Moreover, a 35% decrease in power consumption compared to the Ryzen 5 4600H has been benchmarked. The integrated AMD RX Vega 8 graphics running at 1900MHz will be slightly more powerful thanks to the increased wattage. - -![][3] - -Lastly, the criticisms of the cooling system should be addressed by a new design that features an **“above-average” dual-fan setup** and includes two heat pipes. TUXEDO stated that users shouldn’t come across thermal throttling issues and loud fan noise when at full load. - -![][4] - -#### Other Specifications - -Despite such big hardware upgrades, the magnesium-chassis laptop weighs only about 1.5Kg with a 1.7cm thickness. - -You get two M.2 NVMe slots for storage and two DDR4 memory slots that support up to 3200MHz. - -As far as the battery is concerned, the same **91-Wh** battery is being used promising a best estimate of up to 18 hours, varying with usage. - -The connectivity options also include a new DisplayPort via USB-C, which was absent with the first-generation model. Other options contain: - -* Intel Dual Band AX 200 (WiFi 6 & Bluetooth 5.2) -* 1 x USB 3.2 Gen2 Type-C -* 2 x USB 3.2 Gen2 Type-A -* 1 x USB 2.0 Type-A -* 1 x HDMI 2.0 -* 1 x Gigabit RJ45 LAN -* 2-in-1 Headphone & Microphone -* Kensington Lock -* UHS-50 Micro SD Cardreader - -### Pricing & Availability - -The base configuration which includes 8 GB Samsung 3200 MHz DDR 4 RAM and 250 GB NVMe SSD costs**1149 EUR or 1185 USD**. You can choose the flagship TUXEDO_OS 22.04 LTS, Ubuntu 22.04 LTS, Kubuntu 22.04 LTS, or Ubuntu Budgie 22.04 LTS as the operating system of your choice. - -Shipping for orders starts on July 15, 2022. You can pre-order the laptop now. - -You can check out the official website product page for more details. - -[TUXEDO Pulse 15 Gen-2][5] - -### Powerful Linux Laptop Lineup - -The Tuxedo Pulse 15 specs indicate that it is a solid offering. Thus, developers and business users should not have any complaints regarding its performance. - -Not to forget, we also had a recent launch of [HP Dev One][6], and a teaser for [StarFighter][7] with a 4K 10-bit IPS display by Star Labs. - -Looks like you’re in for a treat if you are saving up for a premium Linux-specific laptop. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/tuxedo-pulse-gen-2/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/TUXEDO-Pulse-15-linux-laptop.jpg -[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/1250-1100-max-1-1024x901.png -[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/1600-1600-max-1-1024x1024.png -[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/1600-1600-max-2.png -[5]: https://www.tuxedocomputers.com/en/Linux-Hardware/Notebooks/15-16-inch/TUXEDO-Pulse-15-Gen2.tuxedo -[6]: https://news.itsfoss.com/hp-dev-one-system76/ -[7]: https://news.itsfoss.com/starfighter-laptop-reveal/ From 141e76efe5e1c241d338b65506fb0e5b63134312 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 10:10:37 +0800 Subject: [PATCH 0343/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220708=20Do=20You=20Miss=20Firefox=20Send-=20Inter?= =?UTF-8?q?nxt=20Send=20is=20Ready=20as=20a=20Replacement.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iss Firefox Send- Internxt Send is Ready as a Replacement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md b/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md index 0490ef5bea..21e2bfc8b4 100644 --- a/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md +++ b/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/internxt-send/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4e25bba72ce88d9c688663bbe0d8765872e6d8cd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 12 Jul 2022 10:23:41 +0800 Subject: [PATCH 0344/3123] RP @lkxed https://linux.cn/article-14818-1.html --- ...220707 Google Summer of Code + Zephyr RTOS.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename {translated/news => published}/20220707 Google Summer of Code + Zephyr RTOS.md (90%) diff --git a/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md b/published/20220707 Google Summer of Code + Zephyr RTOS.md similarity index 90% rename from translated/news/20220707 Google Summer of Code + Zephyr RTOS.md rename to published/20220707 Google Summer of Code + Zephyr RTOS.md index 4a24491991..2484e74048 100644 --- a/translated/news/20220707 Google Summer of Code + Zephyr RTOS.md +++ b/published/20220707 Google Summer of Code + Zephyr RTOS.md @@ -3,14 +3,14 @@ [#]: author: "The Linux Foundation https://www.linuxfoundation.org/blog/google-summer-of-code-zephyr-rtos/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14818-1.html" 谷歌编程之夏与 Zephyr RTOS 项目介绍 ====== -**谷歌编程之夏**(GSoC)是一个谷歌举办的国际年度项目,每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件][3] 的编码项目,[谷歌][1] 就会给他们发放 [津贴][2]。谷歌编程之夏于 2005 年推出,于 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。 +**谷歌编程之夏**(GSoC)是一个谷歌举办的国际年度项目,每年都在夏季举办。当贡献者们参与并完成一个 [自由开源软件][3] 的编码项目,[谷歌][1] 就会给他们发放 [津贴][2]。谷歌编程之夏于 2005 年推出,于每年 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。 今年,该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬,其 [津贴][4] 的金额取决于他们所在国家/地区的 [购买力平价][5]。 @@ -30,7 +30,7 @@ * 得益于 Zephyrs 的设备支持,用户可以选择标准 Arduino 生态系统更广泛的设备 * 能够重复使用 Arduino 工具,如 Arduino IDE 和丰富的库 -Arduino Core 使用 LGPL 下进行许可,Zephyr 使用 Apache 2 下进行许可。这意味着该项目的开发很可能需要脱离主分支,并在单独的 repo 中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 [#22247][9],有关 Arduino 核心架构之前的早期尝试,请参阅 [soburi/arduino-on-zephyr][10]。 +Arduino Core 使用 LGPL 许可证,Zephyr 使用 Apache 2 许可证。这意味着该项目的开发很可能需要脱离主分支,并在单独的仓库中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 [#22247][9],有关 Arduino 核心架构之前的早期尝试,请参阅 [soburi/arduino-on-zephyr][10]。 **贡献者的任务是:** @@ -40,7 +40,7 @@ Arduino Core 使用 LGPL 下进行许可,Zephyr 使用 Apache 2 下进行许 **导师:** -[Jonathan Beri][12]– Golioth 和 Zephyr TSC 的首席执行官 +[Jonathan Beri][12] – Golioth 和 Zephyr TSC 的首席执行官 [Alvaro Viebrantz][13] – Golioth 和 Google GDE 的创始工程师 **代码许可证:** LGPL @@ -61,7 +61,7 @@ Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入 ### 项目二:Zephyr 的 Apache Thrift 模块 -一个贡献者(350 hours)。 +一个贡献者(350 小时)。 [Apache Thrift][17] 是一个 [IDL][18] 规范、[RPC][19] 框架和代码生成器,它抽象出传输和协议细节,让开发者专注于应用逻辑。它适用于所有主流操作系统,支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初,它于 [2007 年在 Facebook 开发][20],随后与 Apache 软件基金会共享。 @@ -100,7 +100,7 @@ via: https://www.linux.com/news/google-summer-of-code-zephyr-rtos/ 作者:[The Linux Foundation][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/) 荣誉推出 From 57bad23f735aaa3e239c6a6e11592cc85535e577 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 11:00:19 +0800 Subject: [PATCH 0345/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220708=20Do=20You=20Miss=20Firefox=20Send-=20Inter?= =?UTF-8?q?nxt=20Send=20is=20Ready=20as=20a=20Replacement.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Internxt Send is Ready as a Replacement.md | 65 ------------------ ...Internxt Send is Ready as a Replacement.md | 67 +++++++++++++++++++ 2 files changed, 67 insertions(+), 65 deletions(-) delete mode 100644 sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md create mode 100644 translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md diff --git a/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md b/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md deleted file mode 100644 index 21e2bfc8b4..0000000000 --- a/sources/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md +++ /dev/null @@ -1,65 +0,0 @@ -[#]: subject: "Do You Miss Firefox Send? Internxt Send is Ready as a Replacement" -[#]: via: "https://news.itsfoss.com/internxt-send/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Do You Miss Firefox Send? Internxt Send is Ready as a Replacement -====== -A new offering by Internxt lets you send encrypted files to anyone quickly while retaining your privacy. We can only hope that it does not shut down like Firefox Send. - -![internxt][1] - -[Internxt][2] is a fairly new open-source encrypted cloud service that aims to replace the offerings by the big tech. For instance, you can use it as an alternative to Google Photos, and Drive. - -You get 10 GB for free. So, you can sign up for it to test it out. - -Recently, they have also added another product “Internxt Send”, as a replacement to fill the void for Firefox Send. - -Unfortunately, Firefox Send was discontinued, but it was a good tool! - -[Internxt Send][3] lets you send/share images, videos, documents, and other files securely, just like Firefox Send. - -### Internxt Send: A Secure File Sharing Service - -![][4] - -While I couldn’t find the repository on GitHub for Internxt Send, I’ve asked them for clarification. - -As one would expect, you can upload your files to Internxt Send without needing to create an account. - -The file upload limit is 5 GB. And, you cannot increase the limit in any way. - -You can choose to upload the files required and generate a link to share. Or, you can directly send an email to the recipient, where you would also need to share your email address. - -![][5] - -Interestingly, it also lets you add custom text to the email you send with the file uploaded. - -Unlike Firefox Send, you cannot tweak the expiry for the link generated to share the file or set it to stop working after a number of downloads. The link expires in 15 days by default, and you cannot change that. So, that is a bummer. - -But, if you were waiting for an encrypted service that lets you privately share files, this can be an alternative. - -*It is good to have more Firefox Send alternatives I think! What are your thoughts on Internxt Send?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/internxt-send/ - -作者:[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/07/internxt-send-ft-1.jpg -[2]: https://itsfoss.com/internxt-cloud-service/ -[3]: https://send.internxt.com/ -[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-1024x640.png -[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-screenshot-1024x782.png diff --git a/translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md b/translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md new file mode 100644 index 0000000000..54332ac04d --- /dev/null +++ b/translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md @@ -0,0 +1,67 @@ +[#]: subject: "Do You Miss Firefox Send? Internxt Send is Ready as a Replacement" +[#]: via: "https://news.itsfoss.com/internxt-send/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +怀念 Firefox Send 吗?不妨试试 Internxt Send 吧 +====== +Internxt 发布了一个新产品,它可以让你快速地将加密文件发送给任何人,同时保持你的隐私。嗯,我们只能希望它不会像 Firefox Send 那样关闭吧…… + +![Internxt][1] + +[Internxt][2] 是一个相当新的开源加密云服务,旨在取代大型科技公司的产品。例如,你可以把它作为 Google Photos 和 Drive 的替代品。 + +它免费提供 10 GB 的容量。所以,如果感兴趣的话,你可以注册个账号试一试。 + +最近,他们还新增了另一个产品 “Internxt Send”,作为 Firefox Send 的替代品,填补这个空缺。 + +唉,说到这里还挺遗憾的,Firefox Send 已停止服务了,不得不说它是一个很好的工具! + +不过,[Internxt Send][3] 让你可以像 Firefox Send 一样安全地发送/共享图像、视频、文档和其他文件。 + +### Internxt Send:一个安全的文件共享服务 + +![][4] + +我在 GitHub 上找不到 Internxt Send 的存储库,但我已经要求他们澄清了。 + +*LCTT 译注:虽然 Internxt 是在 GitHub 上开源的,但是 GitHub 上没有 Internxt Send 这个产品的存储库,产品的介绍里也没有声称它是开源的。* + +正如你所期望的那样,你无需创建帐户即可将文件上传到 Internxt Send。 + +文件上传限制为 5 GB。而且,你不能以任何方式提高这个限制。 + +你可以选择文件,上传并生成共享链接。或者,你也可以直接向收件人发送电子邮件,那样的话,你需要在邮件里分享你的电子邮件地址。 + +![][5] + +有趣的是,它还允许你在这个电子邮件中添加自定义文本。 + +与 Firefox Send 不同的是,你无法修改文件共享链接的到期时间,或者是让它在多次下载后失效。默认情况下,链接会在 15 天后过期,你无法更改这个时间。嗯,这还挺扫兴的。 + +但是,对于那些正在苦苦等待一个加密的共享文件服务的人来说,这可能是一种替代方案。 + +*我认为有更多的 Firefox Send 替代品是件好事!你对 Internxt Send 有何看法?欢迎在下方评论区里和大家分享。* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/internxt-send/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-ft-1.jpg +[2]: https://itsfoss.com/internxt-cloud-service/ +[3]: https://send.internxt.com/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-1024x640.png +[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/internxt-send-screenshot-1024x782.png From c9bfff8cdbf3185d7e3c84f14283b068f52d35e6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 12 Jul 2022 12:06:35 +0800 Subject: [PATCH 0346/3123] RP @robsean @turbokernel https://linux.cn/article-14819-1.html --- ...20603 How static linking works on Linux.md | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) rename {translated/tech => published}/20220603 How static linking works on Linux.md (62%) diff --git a/translated/tech/20220603 How static linking works on Linux.md b/published/20220603 How static linking works on Linux.md similarity index 62% rename from translated/tech/20220603 How static linking works on Linux.md rename to published/20220603 How static linking works on Linux.md index e7ff13585f..df4d8a2a21 100644 --- a/translated/tech/20220603 How static linking works on Linux.md +++ b/published/20220603 How static linking works on Linux.md @@ -4,41 +4,40 @@ [#]: collector: "lkxed" [#]: translator: "robsean" [#]: reviewer: "turbokernel" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14819-1.html" -Linux 静态链接工作原理 +Linux 上静态链接库工作原理 ====== -学习如何将多个 C 对象object 文件组合到一个带有静态库的单个可执行文件文件之中。 -![Woman using laptop concentrating][1] +![](https://img.linux.net.cn/data/attachment/album/202207/12/120441y0q5a5abfyjyy7ug.jpg) -图片作者:Mapbox Uncharted ERG, [CC-BY 3.0 US][2] +> 学习如何用静态链接库将多个 C 目标文件结合到一个单个的可执行文件之中。 -使用 C 编写的应用程序时,通常有多个源码文件,但最终您需要编译成单个的可执行文件。 +使用 C 编写的应用程序时,通常有多个源码文件,但最终你需要编译成单个的可执行文件。 -你可以通过两种方式来完成这项工作:通过创建一个 静态static 库 或 一个 动态dynamic 库 (也被称为 共享shared 库)。从创建和链接的方式来看,它们是两种不同类型的库。选择使用哪种方式取决于你的的具体场景。 +你可以通过两种方式来完成这项工作:通过创建一个 静态static 库 或 一个 动态dynamic 库(也被称为 共享shared 库)。从创建和链接的方式来看,它们是两种不同类型的库。选择使用哪种方式取决于你的的具体场景。 在 [上一篇文章][3] 中,我演示了如何创建一个动态链接的可执行文件,这是一种更通用的方法。在这篇文章中,我将说明如何创建一个静态链接的可执行文件。 ### 使用静态库链接器 -链接器是一个命令,它将一个程序的多个部分组合,并为它们重新组织存储器分配。 +链接器linker是一个命令,它将一个程序的多个部分结合在一起,并为它们重新组织内存分配。 链接器的功能包括: -* 集成一个程序的所有的部分 -* 装配一个新的存储器结构,以便所有的部分组合在一起 -* 恢复存储器地址,以便程序可以在新的存储器组织下运行 +* 整合一个程序的所有的部分 +* 计算出一个新的内存组织结构,以便所有的部分组合在一起 +* 恢复内存地址,以便程序可以在新的内存组织结构下运行 * 解析符号引用 -经过这些链接器功能,创建了一个名称为可执行文件的一个可运行程序。 +链接器通过这些功能,创建了一个名称为可执行文件的一个可运行程序。 -静态库是通过复制一个程序中的所有依赖库模块到最终的可执行镜像来创建的。链接器将链接静态库作为编译过程的最后一步。可执行文件是通过解析外部引用、库实例程序与程序代码组合来创建的。 +静态库是通过复制一个程序中的所有依赖库模块到最终的可执行镜像来创建的。链接器将链接静态库作为编译过程的最后一步。可执行文件是通过解析外部引用、将库例程与程序代码结合在一起来创建的。 -### 创建对象文件 +### 创建目标文件 -这里是一个静态库的示例,以及其链接过程。首先,创建带有这些函数识别标志的头文件 `mymath.h` : +这里是一个静态库的示例以及其链接过程。首先,创建带有这些函数识别标志的头文件 `mymath.h` : ``` int add(int a, int b); @@ -47,7 +46,7 @@ int mult(int a, int b); int divi(int a, int b); ``` -使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件: +使用这些函数定义来创建 `add.c` 、`sub.c` 、`mult.c` 和 `divi.c` 文件。我将把所有的代码都放置到一个代码块中,请将其分为四个文件,如注释所示: ``` // add.c @@ -71,15 +70,17 @@ return (a/b); } ``` -现在,使用 GCC 来生成对象文件 `add.o` 、`sub.o` 、`mult.o` 和 `divi.o` : +现在,使用 GCC 来生成目标文件 `add.o` 、`sub.o` 、`mult.o` 和 `divi.o`: + +(LCTT 校注:关于“目标文件object file”,有时候也被称作“对象文件”,对此,存在一些译法混乱情形,称之为“目标文件”的译法比较流行,本文采用此译法。) ``` $ gcc -c add.c sub.c mult.c divi.c ``` -`-c` 选项跳过链接步骤,并且只创建对象文件。 +`-c` 选项跳过链接步骤,而只创建目标文件。 -创建一个名称为 `libmymath.a` 的静态库,接下来,移除对象文件,因为它们不再被需要。(注意,使用一个 `trash` 命令比使用一个 `rm` 命令更安全。) +创建一个名称为 `libmymath.a` 的静态库,接下来,移除目标文件,因为它们不再被需要。(注意,使用一个 `trash` 命令比使用一个 `rm` 命令更安全。) ``` $ ar rs libmymath.a add.o sub.o mult.o divi.o @@ -88,7 +89,7 @@ $ ls add.c  divi.c  libmymath.a  mult.c  mymath.h  sub.c ``` -现在,你已经创建了一个简单的名称为 `libmymath` 是数学示例库,你可以在 C 代码中使用它。当然,这里有非常复杂的 C 库,这就是开发者们用于开发最终产品的过程,你和我可以安装这些库并在 C 代码中使用。 +现在,你已经创建了一个名称为 `libmymath` 的简单数学示例库,你可以在 C 代码中使用它。当然,也有非常复杂的 C 库,这就是他们这些开发者来生成最终产品的工艺流程,你和我可以安装这些库并在 C 代码中使用。 接下来,在一些自定义代码中使用你的数学库,然后链接它。 @@ -129,9 +130,9 @@ int main() $ gcc -I . -c mathDemo.c ``` -`-I` 选项告诉 GCC 搜索在其后列出的头文件。在这个实例中,你通过单个点 (`.` ) 来指定当前目录。 +`-I` 选项告诉 GCC 搜索在其后列出的头文件。在这个实例中,你通过单个点(`.`)来指定当前目录。 -连接 `mathDemo.o` 和 `libmymath.a` 来生成最终的可执行文件。这里有两种方法来向 GCC 表达这一点。 +链接 `mathDemo.o` 和 `libmymath.a` 来生成最终的可执行文件。这里有两种方法来向 GCC 告知这一点。 你可以指向文件: @@ -145,7 +146,7 @@ $ gcc -static -o mathDemo mathDemo.o libmymath.a $ gcc -static -o mathDemo -L . mathDemo.o -lmymath ``` -在后面的那个示例中,`-lmymath` 选项告诉链接器来链接随对象文件 `mathDemo.o` 中的对象文件 `libmymath.a` 来生成最终的可执行文件。`-L` 选项指示链接器在下面的参数中查找库 (类似于你使用 `-I` 所做的工作)。 +在后面的那个示例中,`-lmymath` 选项告诉链接器来链接对象文件 `mathDemo.o` 和对象文件 `libmymath.a` 来生成最终的可执行文件。`-L` 选项指示链接器在下面的参数中查找库(类似于你使用 `-I` 所做的工作)。 ### 分析结果 @@ -171,7 +172,7 @@ $ du -h ./mathDemo 932K    ./mathDemo ``` -在我 [前一篇文章][5] 的示例中,动态链接的可执行文件只占有 24K 大小。 +在我 [前一篇文章][3] 的示例中,动态链接的可执行文件只占有 24K 大小。 运行该命令来看看它的工作内容: @@ -193,7 +194,7 @@ Enter two numbers 动态链接可执行文件通常优于静态链接可执行文件,因为动态链接会保持应用程序的组件模块化。假如一个库接收到一次关键安全更新,那么它可以很容易地修补,因为它存在于应用程序的外部。 -当你使用静态链接时,库的代码会 "隐藏" 在你创建的可执行文件之中,意味着在库每次更新时(相信我,你会有更好的东西),仅有的一种修补方法是重新编译和发布一个新的可执行文件。 +当你使用静态链接时,库的代码会“隐藏”在你创建的可执行文件之中,意味着在库每次更新时(相信我,你会有更好的东西),仅有的一种修补方法是重新编译和发布一个新的可执行文件。 不过,如果一个库的代码,要么存在于它正在使用的具有相同代码的可执行文件中,要么存在于不会接收到任何更新的专用嵌入式设备中,那么静态连接将是一种可接受的选项。 @@ -212,6 +213,6 @@ via: https://opensource.com/article/22/6/static-linking-linux [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/article/22/5/dynamic-linking-modular-libraries-linux +[3]: https://linux.cn/article-14813-1.html [4]: https://www.redhat.com/sysadmin/recover-file-deletion-linux [5]: https://opensource.com/article/22/5/dynamic-linking-modular-libraries-linux From 21cfe9ecca22a7d6c2082e75f25c16f9f501cab9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 12 Jul 2022 16:02:49 +0800 Subject: [PATCH 0347/3123] A --- ...asons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md index 8be7344bee..fc2c7c07d3 100644 --- a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md +++ b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/reasons-ubuntu-22-04-secure/" [#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ff6e28f529e4a9254f361b3408dbe41f45016e08 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 16:05:35 +0800 Subject: [PATCH 0348/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220712=20Cutefish=20OS=20Halts=20Development=20and?= =?UTF-8?q?=20Its=20Future=20is=20Uncertain.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Development and Its Future is Uncertain.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md diff --git a/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md b/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md new file mode 100644 index 0000000000..0befc0d601 --- /dev/null +++ b/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md @@ -0,0 +1,83 @@ +[#]: subject: "Cutefish OS Halts Development and Its Future is Uncertain" +[#]: via: "https://www.debugpoint.com/cutefish-os-development-halts/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Cutefish OS Halts Development and Its Future is Uncertain +====== +The famous Cutefish OS, with its Cutefish Desktop development, apparently stopped, which is evident from the GitHub commit history. + +### Cutefish OS Halts Development + +A few months back, we [reviewed][1] the emerging Linux distribution Cutefish OS which comes with its own desktop environment (Cutefish DE). The look and feel, the way it was built from the ground up – was perfect in terms of usability and customization options. + +![Cutefish OS - Application Menu][2] + +Cutefish OS is built primarily for the general users who want a stable Linux Operating system and looks like “macOS” out of the box. Hence the team designed the Cutefish Desktop Environment (DE) with a Global menu, bottom dock, top panel, icon and cursor themes and many such features to fulfil that goal. + +You might think that almost all Linux desktop environments are customizable to look like “mac OS” with some effort. I agree. But that requires some knowledge about how to install a cursor theme, desktop theme, rounded corners, blur and so on. Almost all of these customization doesn’t come by default. + +Moreover, Cutefish OS also brings Debian and Ubuntu as its base, which is a perfect choice considering the average Linux users and their knowledge level. + +With all the promises and some exciting BETA releases, the development seems now completely stalled. A quick walk on [GitHub][3] shows the activities are minimal in terms of feature additions. + +Moreover, the official home page of Cutefish OS, i.e. cutefishos.com, is not reachable (timed-out). + +![The activity in GitHub of Cutefish OS shows a straight line for a few months][4] + +### What’s Next + +In the discussion on [Reddit][5], one of the users pitched the idea of forking the OS. The idea is to carry on with the development. This is the main advantage of community-driven projects in the open-source world. + +![File Manager Global menu in Top bar in Cutefish OS Desktop][6] + +However, it is a fact that maintaining, developing and steering a Linux distribution is a massive effort by itself. And a single person can’t make it a successful one. Hence, I believe a desktop environment fork is a rational choice rather than the entire operating system. A portable DE is easier to maintain and continues its development for a longer term. + +However, as of writing this piece, no one has forked it yet. But I believe it will be soon. + +### An OpenMandriva Fork? + +On the other hand, it looks like the OpenMandriva project is already [continuing][7] with the development of the Cutefish DE (not the OS) for its own OS. For more details, visit the Matrix [discussion page][8]. + +Besides, it’s worth mentioning that Arch Linux already have the Cutefish desktop packages in the community repo. You can even [install it][9] as a standalone DE in Arch Linux with easy steps. + +As you can see, it is easier to maintain the DE to continue its development because the structure is already out there. + +![Cutefish Desktop in Arch Linux][10] + +### Conclusion + +I have tested and [reviewed hundreds of distros][11] for years, and Cutefish OS is the promising one with its stunning desktop environment. It was written from the ground up with QML and C++ and took advantage of KWin. It would have been an attractive desktop as a separate component and could have been another great option besides KDE Plasma or GNOME. + +Many open-source projects are born and die every year, and it’s unfortunate to see the situation of Cutefish OS. I hope an official fork comes up soon, and we all can contribute to it. I think the best way forward is to fork only the Cutefish Desktop Environment and fine-tune the edge cases. + +So, what do you think about the entire situation of Cutefish OS? Let’s have a conversation in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cutefish-os-development-halts/ + +作者:[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/cutefish-os-review-2021/ +[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-Application-Menu-1024x582.jpg +[3]: https://github.com/cutefishos +[4]: https://www.debugpoint.com/wp-content/uploads/2022/07/The-activity-in-GitHub-of-Cutefish-OS-shows-a-straight-line-for-a-few-months.jpg +[5]: https://www.reddit.com/r/linux/comments/vwd0m8/i_am_about_to_fork_cutefishos_and_i_need_your_help/ +[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/File-Manager-Global-menu-in-Top-bar-in-Cutefish-OS-Desktop-1024x577.jpg +[7]: https://abf.openmandriva.org/platforms/cooker/products/43/product_build_lists/1162 +[8]: https://matrix.to/#/#oma:matrix.org +[9]: https://www.debugpoint.com/cutefish-arch-linux-install/ +[10]: https://www.debugpoint.com/wp-content/uploads/2022/02/Cutefish-Desktop-in-Arch-Linux.jpg +[11]: https://www.debugpoint.com/tag/linux-distro-review From 166acb06ba937f87fd71ce4f4c57d2275e547545 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 16:07:03 +0800 Subject: [PATCH 0349/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220712=20List=20Upgradable=20Packages=20With=20apt?= =?UTF-8?q?=20Command=20in=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ble Packages With apt Command in Ubuntu.md | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md diff --git a/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md b/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md new file mode 100644 index 0000000000..de1a1aae8d --- /dev/null +++ b/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md @@ -0,0 +1,184 @@ +[#]: subject: "List Upgradable Packages With apt Command in Ubuntu" +[#]: via: "https://itsfoss.com/apt-list-upgradable/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +List Upgradable Packages With apt Command in Ubuntu +====== + +The [apt command][1] is used for package management in Debian and Ubuntu. While you are probably already familiar with the install and remove options, apt provides a few extra features as well. + +One of them is the ability to see all the upgradable packages on your system. And to display them, all you have to do is to use this command in the terminal: + +``` +apt list --upgradable +``` + +As you can notice, you don’t even need sudo to list the updatable packages. It just lists the packages that can be updated. It doesn’t update them. + +In fact, the apt command adds this hint when you run the `sudo apt update` command to update the local package repository cache. + +``` +Fetched 1,243 kB in 17s (71.4 kB/s) +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +30 packages can be upgraded. Run 'apt list --upgradable' to see them. +``` + +I don’t recall any similar direct option in the older apt-get command to list all the upgradable packages. That’s one of the several new features apt has added on top of the older apt-get command. + +Let’s talk about it in a bit more detail. + +### Listing all the upgradable packages + +What you should know here is that **you only get to list the updates available through the APT package manager.** So, if you have added PPAs or [external repositories][2] to your system’s sources.list, you’ll see the updates from them. + +But you won’t get updates for AppImage, Flatpak, Snap or some other packaging formats here. + +In other words, it works with apt packages only. + +So, to list all the upgradable packages on your Ubuntu or Debian system, you should update the local package cache first: + +``` +sudo apt update +``` + +And then your system will be aware of the available package updates. The apt command tells you how many packages can be upgraded at the end of the update command: + +![The apt command shows the number of upgradable packages at the bottom of the apt update command output][3] + +To see what package can be upgraded, run the command: + +``` +apt list --upgradable +``` + +You should see an output like this: + +``` +[email protected]:~$ apt list --upgradable +Listing... Done +apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2] +brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] +evolution-data-server-common/jammy-updates,jammy-updates 3.44.2-0ubuntu1 all [upgradable from: 3.44.1-0ubuntu2] +evolution-data-server/jammy-updates 3.44.2-0ubuntu1 amd64 [upgradable from: 3.44.1-0ubuntu2] +``` + +![Listing all the upgradable packages][4] + +It **lists all the upgradable packages in alphabetical order** with the information on the currently installed version and the new available package version. + +``` +brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] +``` + +For example, It shows that I have Brave browser version 1.40.107 installed on the system, and version 1.40.113 is available. + +What can you do with this information? Let me share a few things I can think of. + +### Upgrade all the packages + +This is probably what most casual Ubuntu users do. You can upgrade all the upgradable packages with the following command: + +``` +sudo apt upgrade +``` + +It lists what packages will be upgraded and then asks to confirm the upgrade by pressing enter or Y. + +![Upgrade all packages][5] + +If you are sure about upgrading all the packages, you can skip the ‘Do you want to continue’ part by giving it the go ahead by adding -y to the command. + +``` +sudo apt upgrade -y +``` + +### Simulate an upgrade (but don’t upgrade any packages) + +This is what people did before the apt list command. With the simulate option, you don’t actually make any changes. It just shows what packages will be installed or upgraded if you run the upgrade. + +``` +apt -s upgrade +``` + +You don’t need to use sudo (even though I have used it in the screenshot below). + +![Running an upgrade simulation with apt command][6] + +### Upgrade only the selected packages + +If you are managing an Ubuntu server and you don’t want to upgrade all the packages but only one of a few selected ones (like MySQL/Ngnix), you can do that easily with the apt command. + +``` +sudo apt --only-upgrade install package_name +``` + +Actually, if you run the apt install command on an already installed package for which an update is available, it will upgrade the package. + +With the `--only-upgrade` flag, you ensure that a package is only upgraded (if it is already installed). It won’t install the given package if it is not already installed. + +You can also upgrade selected few packages by providing their name: + +``` +sudo apt --only-upgrade install package1 package2 +``` + +You can also do the opposite and [hold selected packages from the upgrade][7]. + +``` +sudo apt-mark hold package_name +``` + +With that, the given package won’t be upgraded when you upgrade all the system packages. + +You can remove the hold with this command: + +``` +sudo apt-mark unhold package_name +``` + +### Does it show the kernel upgrades? + +This is kind of tricky. + +When you run the ‘apt list –upgradable’ command it shows all the packages that can be upgraded. + +But if there are new kernel versions available, they might not be shown since the kernel package name starts with linux-headers-x-y. It’s because the system treats them as new packages, not an upgrade on already installed package linux-headers-a-b. + +However, you would still see “linux-generic-hwe” kind of package in the list of upgradable packages. Because that package will be upgraded (with the newer kernel). + +### Conclusion + +The ability to list upgradable packages is one of the several new features the apt command brought over the older apt-get command. For more on this topic, you can read my article [explaining the difference between the apt and apt-get commands][8]. + +As a desktop user, I don’t always check the packages that can be upgraded. I go for the upgrade straightaway. However, when I am managing a server, I prefer to see what updates are available and then decide whether or not I am going for an upgrade. + +How about you? Do you see a good use for this feature for yourself? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-list-upgradable/ + +作者:[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/apt-command-guide/ +[2]: https://itsfoss.com/adding-external-repositories-ubuntu/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/update-package-cache-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/apt-list-upgradable-packages-ubuntu.webp +[5]: https://itsfoss.com/wp-content/uploads/2022/07/upgrade-all-packages-ubuntu.webp +[6]: https://itsfoss.com/wp-content/uploads/2022/07/run-an-upgrade-simulation-apt-ubuntu.webp +[7]: https://itsfoss.com/prevent-package-update-ubuntu/ +[8]: https://itsfoss.com/apt-vs-apt-get-difference/ From fb465458aae76d79fed55ee7f313ef6496ec5535 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 16:07:46 +0800 Subject: [PATCH 0350/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220712=20eBook=20Manager=20Calibre=206.0=20is=20He?= =?UTF-8?q?re=20With=20Full-Text=20Search=20and=20Other=20Improvements.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Full-Text Search and Other Improvements.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md diff --git a/sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md b/sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md new file mode 100644 index 0000000000..27b164b2a7 --- /dev/null +++ b/sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md @@ -0,0 +1,99 @@ +[#]: subject: "eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements" +[#]: via: "https://news.itsfoss.com/calibre-6-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements +====== +A much-needed upgrade for Calibre has finally landed with improvements and changes. Try it out! + +![calibre 6.0][1] + +Calibre is a popular open-source eBook reader for Linux, macOS, and Windows. It is also available for the ARM platform (Linux). + +It happens to be one of the [best eBook readers for Linux][2]. + +After a year and a half of development, a new major upgrade for Calibre has finally landed. + +### Calibre 6.0: What’s New? + +While it is a big deal to put an end to the 5.x series of updates, you do not get a big list of additions. + +However, the release includes significant improvements and a few feature additions that I will be highlighting here. + +#### Full-Text Search + +![calibre 6.0][3] + +With Calibre 6.0, you can search the entire text of all books in your library collection. + +This should come in handy for users, who want to quickly search for something specific, even though they do not remember the name of a book. + +It will help you find things quickly when you need them. + +#### Support for ARM and Apple Silicon + +Calibre 6.0 adds support for ARM64 on Linux and Apple Silicon. + +It will no longer work with 32-bit systems, considering [Qt 6][4] does not support it. + +#### Easy Dark Mode Switch & Icon Themes + +![calibre 6.0][5] + +You can now easily head to the preferences, and tweak the look/feel settings to toggle the dark mode. + +A quick switch could have helped, but it should be good enough. By default, it respects the system preference, so it should not be an issue for most. + +In addition to this, you also get to choose icon themes for your preferences. + +#### Switch to Qt 6 + +You can expect some unmaintained third-party plugins to no longer work with Qt 6 on Calibre 6.0. + +Essential plugins that have been ported to Qt 6 should work as you would expect. + +### Other Changes + +Along with all the upgrades, you get a few improvements and changes that include: + +* No support for Windows 8. +* The Calibre:// URL scheme is more useful to create links and can be accessed from other programs. +* Improved “Read aloud” button to start reading the book text using OS’s text-to-speech engine. + +You can also check out its [official announcement][6] for more information. + +### Download Calibre 6.0 + +Calibre 6.0 can be downloaded from its [GitHub releases section][7]. You have to download the archived package for Linux (ARM64/AMD64) and extract it to run the executable. + +In either case, you can also install it using the Flatpak package from [Flathub][8]. + +[Calibre 6.0][9] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/calibre-6-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/07/calibre-6-0-release.jpg +[2]: https://itsfoss.com/best-ebook-readers-linux/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/calibre-6.png +[4]: https://news.itsfoss.com/qt-6-released/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/calibre-dark-theme.jpg +[6]: https://calibre-ebook.com/new-in/fifteen +[7]: https://github.com/kovidgoyal/calibre/releases/tag/v6.0.0 +[8]: https://flathub.org/apps/details/com.calibre_ebook.calibre +[9]: https://calibre-ebook.com/ From 89d8f20a1675bee1f3cc8f198dbab2ddd8ae9c18 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 16:11:08 +0800 Subject: [PATCH 0351/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220712=207=20kinds=20of=20garbage=20collection=20f?= =?UTF-8?q?or=20Java.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 7 kinds of garbage collection for Java.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 sources/tech/20220712 7 kinds of garbage collection for Java.md diff --git a/sources/tech/20220712 7 kinds of garbage collection for Java.md b/sources/tech/20220712 7 kinds of garbage collection for Java.md new file mode 100644 index 0000000000..ac81095767 --- /dev/null +++ b/sources/tech/20220712 7 kinds of garbage collection for Java.md @@ -0,0 +1,120 @@ +[#]: subject: "7 kinds of garbage collection for Java" +[#]: via: "https://opensource.com/article/22/7/garbage-collection-java" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 kinds of garbage collection for Java +====== +Learn about the choices you have in Java for memory management. + +An application written using programming languages like C and C++ requires you to program the destruction of objects in memory when they're no longer needed. The more your application grows, the great the probability that you'll overlook releasing unused objects. This leads to a memory leak and eventually the system memory gets used up, and at some point there's no further memory to allocate. This results in a situation where the application fails with an OutOfMemoryError. But in the case of Java, Garbage Collection (GC) happens automatically during application execution, so it alleviates the task of manual deallocation and possible memory leaks. + +Garbage Collection isn't a single task. The Java Virtual Machine (JVM) has eight different kinds of Garbage Collection, and it's useful to understand each one's purpose and strength. + +### 1. Serial GC + +![Serial threaded garbage collection][1] + +A primitive implementation of GC using just a single thread. When Garbage Collection happens, it pauses the application (commonly known as a "stop the world" event.) This is suitable for applications that can withstand small pauses. Garbage Collection has a small footprint, so this is the preferred GC type for embedded applications. This Garbage Collection style can be enabled at runtime: + +``` +$ java -XX:+UseSerialGC +``` + +### 2. Parallel GC + +![Parallel garbage collection][2] + +Like Serial GC, this also uses a "stop the world" method. That means that while GC is happening, application threads are paused. But in this case, there are multiple threads performing GC operation. This type of GC is suitable for applications with medium to large data sets running in a multithreaded and multiprocessor environment. + +This is the default GC in JVM, and is also known as the *Throughput Collector*. Various GC parameters, like throughput, pause time, number of threads, and footprint, can be tuned with suitable JVM flags: + +* Number of threads: `-XX:ParallelGCThreads=` +* Pause time: `-XX:MaxGCPauseMillis=` +* Throughput (time spent for GC compared to actual application execution): `-XX:GCTimeRatio=` +* Maximum heap footprint: `-Xmx` +* Parallel GC can be explicitly enabled: `java -XX:+UseParallelGC`. With this option, minor GC in the young generation is done with multiple threads, but GC and compaction is done with a single thread in the old generation. + +There's also a version of Parallel GC called *Parallel Old GC*, which uses multiple threads for both young and old generations: + +``` +$ java -XX:+UseParallelOldGC +``` + +### 3. Concurrent Mark Sweep (CMS) + +![Concurrent garbage collection][3] + +Concurrent Mark Sweep (CMS) garbage collection is run alongside an application. It uses multiple threads for both minor and major GC. Compaction for live objects isn't performed in CMS GC after deleting the unused objects, so the time paused is less than in other methods. This GC runs concurrently with the application, which slows the response time of the application. This is suitable for applications with low pause time. This GC was deprecated in Java 8u, and completely removed from 14u onwards. If you're still using a Java version that has it, though, you can enable it with: + +``` +$ java -XX:+UseConcMarkSweepGC +``` + +In the case of CMS GC, the application is paused twice. It's paused first when it marks a live object that's directly reachable. This pause is known as the *initial-mark*. It's paused a second time at the end of the CMS GC phase, to account for the objects that were missed during the concurrent cycle, when application threads updated the objects after CMS GC were completed. This is known as the *remark phase*. + +### 4. G1 (Garbage First) GC + +![Garbage first][4] + +Garbage first (G1) was meant to replace CMS. G1 GC is parallel, concurrent, and incrementally compacting, with low pause-time. G1 uses a different memory layout than CMS, dividing the heap memory into equal sized regions. G1 triggers a global mark phase with multiple threads. After the mark phase is complete, G1 knows which region might be mostly empty and chooses that region for a sweep/deletion phase first. + +In the case of G1, an object that's more than half a region size is considered a "humongous object." These objects are placed in the Old generation, in a region appropriately called the *humongous region*. To enable G1: + +``` +$ java -XX:+UseG1GC +``` + +### 5. Epsilon GC + +This GC was introduced in 11u and is a *no-op* (do nothing) GC. Epsilon just manages memory allocation. It doesn’t do any actual memory reclamation. Epsilon is intended only when you know the exact memory footprint of your application, and knows that it is garbage collection free. + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC +``` + +### 6. Shenandoah + +Shenandoah was introduced in JDK 12, and is a CPU intensive GC. It performs compaction, deletes unused objects, and release free space to the OS immediately. All of this happens in parallel with the application thread itself. To enable Shenandoah: + +``` +$ java -XX:+UnlockExperimentalVMOptions \ +-XX:+UseShenandoahGC +``` + +### 7. ZGC + +ZGC is designed for applications that have low latency requirements and use large heaps. ZGC allows a Java application to continue running while it performs all garbage collection operations. ZGC was introduced in JDK 11u and improved in JDK 12. Both Shenandoah and ZGC have been moved out of the experimental stage as of JDK 15. To enable ZGC: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC +``` + +### Flexible garbage collection + +Java provides flexibility for memory management. It's useful to get familiar with the different methods available so you can choose what's best for the application you're developing or running. + +Image by: [Opensource.com][5] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/garbage-collection-java + +作者:[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/2022-07/jaya-java-gc-serial.webp +[2]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-parallel.webp +[3]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-concurrent.webp +[4]: https://opensource.com/sites/default/files/2022-07/g1.png +[5]: https://opensource.com/home-page-new From b6acf8130841daa1f4493c5892c619c6a395952b Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 12 Jul 2022 16:14:59 +0800 Subject: [PATCH 0352/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220712=20OpenWrt,=20an=20open=20source=20alternati?= =?UTF-8?q?ve=20to=20firmware=20for=20home=20routers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lternative to firmware for home routers.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 sources/tech/20220712 OpenWrt, an open source alternative to firmware for home routers.md diff --git a/sources/tech/20220712 OpenWrt, an open source alternative to firmware for home routers.md b/sources/tech/20220712 OpenWrt, an open source alternative to firmware for home routers.md new file mode 100644 index 0000000000..608b34ccc3 --- /dev/null +++ b/sources/tech/20220712 OpenWrt, an open source alternative to firmware for home routers.md @@ -0,0 +1,173 @@ +[#]: subject: "OpenWrt, an open source alternative to firmware for home routers" +[#]: via: "https://opensource.com/article/22/7/openwrt-open-source-firmware" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +OpenWrt, an open source alternative to firmware for home routers +====== +OpenWrt is a Linux-based, open source operating system targeting embedded network devices. + +If you're reading this article from home, you are probably connected with a LTE/5G/DSL/WIFI router. Such devices are usually responsible to route packets between your local devices (smartphone, PC, TV, and so on) and provide access to the world wide web through a built-in modem. Your router at home has most likely a web-based interface for configuration purposes. Such interfaces are often oversimplified as they are made for casual users. + +If you want more configuration options, but don't want to spend for a professional device you should take a look at an alternative firmware such as [OpenWrt][2]. + +### OpenWrt features + +OpenWrt is a Linux-based, open source operating system targeting embedded network devices. It is mainly used as a replacement for the original firmware on home routers of all kinds. OpenWrt comes with all the useful features a good router should have like a DNS server ([dnsmasq][3]), Wifi access point and client functionality, PPP protocol for modem functionality and, unlike with the standard firmware, everything is fully configurable. + +### LuCI Web Interface + +OpenWrt can be configured remotely by command line (SSH) or using [LuCI][4], a GUI configuration interface. LuCI is a lightweight, extensible web GUI written in [Lua][5], which enables an exact configuration of your device. Besides configuration, LuCI provides a lot of additional information like real time graphs, system logs, and network diagnostics. + +![LuCI web interface][6] + +Image by: Stephan Avenwedde, [CC BY-SA][7] + +There are some optional extensions available for LuCI to add even further configuration choices. + +### Writeable file system + +Another highlight is the writeable filesystem. While the stock firmware is usually read-only, OpenWrt comes with a writeable filesystem thanks to a clever solution that combines OverlayFS with SquashFS and JFFS2 filesystems to allow installation of packages to enhance functionality. Find more information about the file system architecture in the [OpenWrt documentation][8]. + +### Extensions + +OpenWrt has an associated package manager, [opkg][9], which allows to install additional services. Some examples are an FTP server, a DLNA media server, an OpenVPN server, a Samba server to enable file sharing, or Asterisk (software to control telephone calls). Of course, some extensions require appropriate resources of the underlying hardware. + +### Motivation + +You might wonder why you should try to replace a router manufacture's firmware, risking irreparable damage to your device and loss of warranty. If your device works the way you want, then you probably shouldn’t. Never touch a running system! But if you want to enhance functionality, or if your device is lacking configuration options, then you should check whether OpenWrt could be a remedy. + +In my case, I wanted a travel router which I can place on an appropriate position when I’m on a campsite in order to get a good connection to the local Wifi access point. The router should connect itself as an ordinary client and broadcasts it’s own access point for my devices. This allows me to configure all my devices to connect with the routers access points and I only have to change the routers client connection when I’m somewhere else. Moreover, on some campsites you only get an access code for one single device, which I can enhance with this setup. + +As my travel router, I choose the TP-Link TL-WR902AC for the following reasons: + +* Small +* Two Wifi antennas +* 5V power supply (USB) +* Low power consumption +* Cost effective (you get it for around $30) + +To get an idea of the size, here it is next to a Raspberry Pi4: + +![TP-Link TL-WR902AC next to a Raspberry Pi][10] + +Image by: Stephan Avenwedde, [CC BY-SA 4.0][11] + +Even though the router brings all hardware capabilities I demand, I relatively quickly found out that the default firmware don’t let me configure it the way I wanted. The router is mainly intended as an Wifi access point, which repeats an existing Wifi network or connects itself to the web over the onboard Ethernet interface. The default firmware is very limited for these use cases. + +Fortunately, the router is capable of running OpenWrt, so I decided to replace the original firmware with it. + +### Installation + +When your LTE/5G/DSL/WIFI router meets the [minimum requirements][12], chances are high that it's possible to run OpenWrt on it. As the next step, you look in the [hardware table][13] and check whether your devices is listed as compatible, and which firmware package you have to choose. The page for the [TP-Link TL-WR902AC][14] also includes the installation instructions which describe how to flash the internal memory. + +The process of flashing the firmware can vary between different devices, so I won’t go into detail on this. In a nutshell, I had to connect the device over  a TFTP server on a network interface with a certain IP address, rename the OpenWrt firmware file and then boot up the device considering pressing the reset button. + +### Configuration + +Once flashing was successfully, your device should now boot up with the new firmware. It may take a bit longer now to boot up as OpenWrt comes with much more features compared to the default firmware. + +OpenWrt acts as a DHCP server, so in order to begin with configuration, make a direct Ethernet connection between your PC and the router, and configure your PC’s Ethernet adapter as a DHCP client. + +On Fedora Linux, to activate the DHCP client mode for your network adapter, first you have to find out the connection UUID by running: + +``` +$ nmcli connection show +NAME          UUID         TYPE      DEVICE +Wired Conn 1  7a96b...27a  ethernet  ens33 +virbr0        360a0...673  bridge   virbr0 +testwifi      2e865...ee8  wifi     -- +virbr0        bd487...227  bridge   -- +Wired Conn 2  16b23...7ba  ethernet -- +``` + +Pick the UUID for the connection you want to modify and then run: + +``` +$ nmcli connection modify ipv4.method auto +``` + +You can find more information about these commands in the [Fedora Networking Wiki][15]. + +After you have a connection to your router, open a web browser and navigate to [http://openwrt/][16]. You should now see LuCI’s login manager: + +![LuCI login][17] + +Use **root** as the username, and leave the password field blank. + +### Configuring Wifi and routing + +To configure your Wifi antennas, click on the **Network** menu and select **Wireless**. + +![LuCI wireless configuration][19] + +On my device, the antenna **radio0** on top operates in 2.4 GHz mode and is connected to the local access point called *MOBILE-INTERNET*. The antenna **radio1** below operates at 5 GHz and has an associated access point with the SSID *OpenWrt_AV*. With a click of the **Edit**button, you can open the device configuration to decide whether the device belongs to the *LAN* or WWAN network. In my case, the access point *OpenWrt_AV* belongs to the LAN network and the client connection *MOBILE-INTERNET* belongs to the WWAN network. + +![LuCI configuration screen][21] + +Configured networks are listed under **Network**, in the **Interfaces** panel. + +![Device list][23] + +In order to get the functionality I want, network traffic must be routed between the LAN and the WWAN network. The routing can be configured in the **Firewall** section of the **Network** panel. I didn’t change anything here because, by default, the traffic is routed between the networks, and incoming packets (from WWAN to LAN) have to pass the firewall. + +So all you need to know is whether an interface belongs to LAN or (W)WAN. This concept makes it relatively easy to configure, especially for beginners. You can find more information in [OpenWrt’s basic networking][25] guide. + +### Captive portals + +Public Wifi access points are often protected by a [captive portal][26] where you have to enter an access code or similar. Usually, such portals show up when you are first connected to the access point and try to open an arbitrary web page. This mechanism is realized by the access point's DNS server. + +By default, OpenWrt has a security feature activated that prevents connected clients from a [DNS rebinding attack][27]. OpenWrt’s rebind protection also prevents captive portals from being forwarded to clients, so you must disable rebind protection so you can reach captive portals. This option is in the **DHCP and DNS** panel of the **Network** menu. + +![Firewall settings][28] + +### Try OpenWrt + +Thanks to an upgrade to OpenWrt, I got a flexible travel router based on commodity hardware. OpenWrt makes your router fully configurable and extensible and, thanks to the well-made web GUI, it's also appropriate for beginners. There are even a few [select routers][30] that ship with OpenWrt already installed. You are also able to enhance your router's functionality with lots of [available packages][31]. For example, I’m using the [vsftp][32] FTP server to host some movies and TV series on a connected USB stick. Take a look at the [projects homepage][33], where you can find many reasons to switch to OpenWrt. + +Image by: Stephan Avenwedde, [CC BY-SA 4.0][7] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/openwrt-open-source-firmware + +作者:[Stephan Avenwedde][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/hansic99 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/OSDC_Internet_Cables_520x292_0614_RD.png +[2]: https://openwrt.org +[3]: https://thekelleys.org.uk/dnsmasq/doc.html +[4]: https://openwrt.org/docs/guide-user/luci/start +[5]: https://opensource.com/article/20/2/lua-cheat-sheet +[6]: https://opensource.com/sites/default/files/2022-07/openwrt_luci_overview_c_0.png +[7]: https://creativecommons.org/licenses/by-sa/4.0/legalcode +[8]: https://openwrt.org/docs/techref/flash.layout +[9]: https://openwrt.org/docs/guide-user/additional-software/opkg +[10]: https://opensource.com/sites/default/files/2022-07/OpenWrt_Comparison_RaspberryPi.jpg +[12]: https://openwrt.org/supported_devices +[13]: https://openwrt.org/toh/start +[14]: https://openwrt.org/toh/tp-link/tl-wr902ac_v3 +[15]: https://fedoraproject.org/wiki/Networking/CLI +[16]: http://openwrt/ +[17]: https://opensource.com/sites/default/files/2022-07/openwrt_luci_login_manager.png +[19]: https://opensource.com/sites/default/files/2022-07/openwrt_luci_wireless_section_c.webp +[21]: https://opensource.com/sites/default/files/2022-07/openwrt_luci_wifi_device_configuration.webp +[23]: https://opensource.com/sites/default/files/2022-07/openwrt_luci_network_devices_0.webp +[25]: https://openwrt.org/docs/guide-user/base-system/basic-networking +[26]: https://en.wikipedia.org/wiki/Captive_portal +[27]: https://en.wikipedia.org/wiki/DNS_rebinding +[28]: https://opensource.com/sites/default/files/2022-07/openwrt_luci_firewall_settings.webp +[30]: https://opensource.com/article/22/1/turris-omnia-open-source-router +[31]: https://openwrt.org/packages/table/start +[32]: https://openwrt.org/docs/guide-user/services/nas/ftp.overview +[33]: https://openwrt.org/reasons_to_use_openwrt From b543c93bf89e897ef8009e183a3d1400639b0792 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 12 Jul 2022 16:58:26 +0800 Subject: [PATCH 0353/3123] TRP @wxy https://linux.cn/article-14820-1.html --- ...2.04 LTS is the Most Secure Release Yet.md | 141 ++++++++++++++++++ ...2.04 LTS is the Most Secure Release Yet.md | 140 ----------------- 2 files changed, 141 insertions(+), 140 deletions(-) create mode 100644 published/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md delete mode 100644 sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md diff --git a/published/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md b/published/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md new file mode 100644 index 0000000000..921d3e23c5 --- /dev/null +++ b/published/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md @@ -0,0 +1,141 @@ +[#]: subject: "7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet" +[#]: via: "https://news.itsfoss.com/reasons-ubuntu-22-04-secure/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14820-1.html" + +Ubuntu 22.04 LTS 是目前最安全的版本的七大原因 +====== + +> Ubuntu 22.04 LTS 是迄今为止最好的 Ubuntu 版本之一。是什么让它如此安全? + +![ubuntu 22.04][1] + +早在今年 4 月就发布了的 [Ubuntu 22.04 LTS][2],是迄今为止最安全的 Ubuntu 版本。 + +其安全更新的延长支持、新的硬件支持和其他林林总总的改进,使它在安全方面远远超过了之前的所有版本。 + +但它是如何做到这一点的呢?还有,是什么让这个版本与以前的版本不同的呢? + +嗯,有几个原因,Canonical 在一篇新的博客文章中为我们重点指出了这些。在这里,让我总结一下,以帮助你了解更多。 + +### 是什么让 Ubuntu 22.04 LTS 变得安全? + +在这个版本中,Ubuntu 团队似乎投入了大量的工作来确保其长期的安全性和可靠性。尽管多年来他们以难以想象的方式做到了这一点,但我将强调其中的几件事: + +* 改进的硬件安全措施支持 +* 更新了安全包 +* 私有家目录 +* OpenSSL 3 +* GCC 11 +* nftables 作为默认的防火墙后端 +* Linux 内核改进 + +#### 1、改进的硬件安全措施支持 + +![][3] + +随着英特尔、AMD 和 ARM 的 CPU/SoC 开始推出更多的安全措施,拥有足够的软件来让这些功能发挥作用就变得越来越重要。 + +截至目前,Ubuntu 22.04 支持三种主要的硬件安全措施。 + +英特尔的 “软件保护扩展Software Guard eXtensions”(SGX)提供了一个安全独立的区域来进行敏感计算。例如,理想情况下,密码处理将在这里进行,因为它确保没有其他应用程序可以访问这些数据。 + +还有 AMD 的“安全加密虚拟化Secure Encrypted Virtualization”(SEV)。这项技术旨在防止主机操作系统干扰正在运行的虚拟机。 + +尽管这与桌面用户的相关性不如其他技术,但要知道,很多数据中心的基础设施都依赖虚拟机来实现应用的容器化。总的来说,此类针对硬件的安全措施应该会加强对桌面和服务器用户的保护。 + +#### 2、Linux 内核安全的改进 + +随着 Ubuntu 的每一次发布,Linux 内核都会得到升级,提供了许多有用的功能和支持。 + +但是,这一次,Canonical 推出了针对不同的平台的优化内核版本。对于 OEM 认证的桌面设备,它提供了 [Linux 内核 5.17][4]。 + +而对于所有的桌面和服务器用户,可以使用 [Linux 内核 5.15 LTS][5]。 + +不仅仅限于这个概念,在 [博文][6] 中提到的一些基本内核安全增强措施包括: + +* 支持 [核心调度][7],它允许进程控制哪些线程可以在 SMT 同级之间调度,以便让它们保护敏感信息,而不泄露给系统中其他不受信任的进程。 +* 内核堆栈随机化提供了一种加固措施,以挫败希望在内核内进行内存破坏攻击的攻击者。 +* BPF 子系统也有一些安全方面的增强,包括默认情况下限制为只有特权进程可以使用,以及对签名的 BPF 程序的初步支持。 +* 新的 Landlock Linux 安全模块的加入为应用程序沙箱提供了另一种机制,可以通过 AppArmor 或 SELinux 与更传统的方式结合使用。 + +总之,所有这些改进使 Ubuntu 22.04 LTS 成为开发者、用户和系统管理员的更安全的选择。 + +#### 3、更新的安全软件包 + +![][8] + +让我们从技术性的安全概念退后一步,回到每个 Ubuntu 用户都应该已经熟悉的概念:软件包。每一个新的 Ubuntu 版本,软件库中的大多数软件包都会更新,以带来更好的安全性和新功能。 + +尽管对于 Ubuntu 22.04 来说,这并不完全是新的东西,但这确实包括了很多安全方面的更新。这方面的例子包括 openSSL 3 和 GCC 11。 + +#### 4、OpenSSL 3 + +OpenSSL 是所有安全通信的支柱。 + +考虑到包括 MD2 和 DES 在内的许多传统算法已经被废弃并默认禁用,OpenSSL 3 作为一个重大的升级特别值得关注。 + +因此,除非用户特别想使用不太安全的算法,否则你将在默认情况下获得最好的安全性。 + +#### 5、GCC 11 + +另一方面,GCC 是许多开发者用来将他们的代码变成可以在你的计算机上运行的程序的编译器。 + +它带来了许多改进,但有一项特别显著地提高了安全性。静态分析得到了极大的加强,使开发人员能够更快地发现软件的漏洞,在第一步就防止有漏洞的代码被发布。 + +这可能不会直接影响到用户,许多开发人员使用 Ubuntu 来开发他们的应用程序。因此,你下载的很多程序,即使在非 Ubuntu 系统上,也应该比以前更安全。 + +#### 6、私有家目录 + +![][9] + +作为一个传统上以桌面为重点的发行版,Ubuntu 经常选择方便而不是安全。然而,随着他们越来越努力地推动云计算的采用,这种情况必须改变。 + +以前,任何有权限进入电脑的人都可以打开并查看任何用户的家目录。然而,你可以想象,这给非桌面用户带来了很多问题。因此,需要改变为私有家目录。 + +对于多用户系统来说,这可能稍显不方便,但这可以相对容易地改变。而且,对于那些不太熟悉技术的人来说,他们不需要做任何事情就可以得到更好的安全保障。 + +#### 7、nftables 作为默认防火墙后端 + +![][10] + +25 年来,防火墙一直是将你的计算机与更广泛的互联网隔离开来的一个关键部分。这些年来,Linux 发行版通常使用两种不同的防火墙解决方案:iptables 和 xtables。 + +然而,近些年来,一种不同的解决方案进入了人们的视野:nftables。它提供了显著的性能和灵活性的改进,使网络管理员能够更好地保护你的设备。 + +### 总结 + +毋庸置疑,Ubuntu 22.04 LTS 做了很多不错的升级。不仅仅是用户体验,它在安全方面也是一个重大的飞跃。 + +当然,还有更多,但上面提到的改进是很好的成就! + +关于更多的技术细节,你可以查看这篇 [Ubuntu 的官方博客文章][11]。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/ubuntu-22-04-is-most-secure-release.jpg +[2]: https://news.itsfoss.com/ubuntu-22-04-release/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/hardware-security-illustration-1024x576.jpg +[4]: https://news.itsfoss.com/linux-kernel-5-17-release/ +[5]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[6]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts +[7]: https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html +[8]: https://news.itsfoss.com/wp-content/uploads/2021/07/open-source-security-illustration-1024x576.png +[9]: https://news.itsfoss.com/wp-content/uploads/2021/04/private-home-directory-ubuntu-21.png +[10]: https://news.itsfoss.com/wp-content/uploads/2022/07/firewall-illustration-1024x576.jpg +[11]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts diff --git a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md b/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md deleted file mode 100644 index fc2c7c07d3..0000000000 --- a/sources/news/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet" -[#]: via: "https://news.itsfoss.com/reasons-ubuntu-22-04-secure/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet -====== -Ubuntu 22.04 LTS is one of the best Ubuntu releases so far. What makes it so secure? - -![ubuntu 22.04][1] - -[Ubuntu 22.04 LTS][2], released back in April, is the most secure Ubuntu release yet. - -Between its extended security updates, new hardware support, and a wide range of other improvements, it far outperforms all previous releases in terms of security. - -But how does it do that? And, what makes this release different from previous ones? Well, there are a few reasons for that, and Canonical has highlighted all the relevant details in a new blog post. - -Here, let me summarise that to help you learn more. - -### What Makes Ubuntu 22.04 LTS Secure? - -With this release, it seems that the Ubuntu team has put a lot of work into ensuring its long-term security and reliability. Although they did this in an unthinkable number of ways over the years, I shall highlight a few things that include: - -* Improved hardware security measure support -* Updated security packages -* Private home directories -* OpenSSL 3 -* GCC 11 -* nftables as the default firewall backend -* Linux Kernel improvements - -#### 1. Improved Hardware Security Measure Support - -![][3] - -As Intel, AMD, and ARM CPUs/SoCs start coming up with more security measures, it is becoming ever more important that adequate software is there to allow these features to be put to use. - -As of now, there are three major hardware security measures Ubuntu 22.04 supports. - -Intel’s Software Guard eXtensions (SGX) provides a secure and independent area to do sensitive computation. For example, password processing would ideally take place here, as it ensures that no other applications can access that data. - -The next includes AMD’s Secure Encrypted Virtualization (SEV). This technology aims to prevent host operating systems from being able to interfere with running virtual machines. - -Although this is not as relevant to desktop users as the other technologies, consider that a lot of data center infrastructure relies on virtual machines for containerizing applications. Overall, such hardware-specific security measures should enhance protection for both desktop and server users. - -#### 2. Linux Kernel Security Improvements - -With every Ubuntu release, Linux Kernel gets an upgrade with many useful features and support. - -But, this time, Canonical introduced optimized kernel versions for different platforms. For OEM-certified desktop devices, [Linux Kernel 5.17][4] has been included. - -And, for all desktop and server users, [Linux Kernel 5.15 LTS][5] will be the one active. - -Not just limited to this concept, some essential kernel security enhancements mentioned in the [blog post][6] include: - -* Support for [core scheduling][7], which allows processes to control which threads will be scheduled across SMT siblings and so can allow them to protect sensitive information from leaking to other untrusted processes on the system. -* Kernel stack randomisation provides a hardening measure to frustrate attackers wishing to perform memory corruption attacks within the kernel. -* The BPF subsystem has also seen a number of security enhancements including restricting its use to only privileged processes by default, as well as including the initial efforts to support signed BPF programs as well -* The inclusion of the new Landlock Linux Security Module provides another mechanism for application sandboxing to go along with the more traditional methods via either AppArmor or SELinux. - -Collectively, all these improvements make Ubuntu 22.04 LTS a safer option for developers, users, and system administrators. - -#### 3. Updated Security Packages - -![][8] - -Stepping back from technical security concepts, we get to a concept every Ubuntu user should be already familiar with: packages. With every new Ubuntu release, most packages in the repositories get updated, bringing improved security and new features. - -Although not exactly something new to Ubuntu 22.04, this does include a lot of security-specific updates. A couple of examples of this include openSSL 3 and GCC 11. - -#### 4. OpenSSL 3 - -OpenSSL is the backbone of all secure communications. - -OpenSSL 3 is particularly interesting as a major upgrade considering many legacy algorithms have been deprecated and disabled by default – including MD2 and DES. - -As a result, unless users specifically want to use the less secure algorithms, you will be getting the best security by default. - -#### 5. GCC 11 - -GCC, on the other hand, is the compiler that many developers use to turn their code into programs that can be run on your computer. - -It brings numerous improvements, but there is one in particular that significantly improves security. Static analysis, which has been significantly enhanced, allows developers to find software vulnerabilities faster, preventing vulnerable code from ever being released in the first place. - -It may not affect users directly, many developers use Ubuntu to develop their applications. Therefore, a lot of the programs you download, even on non-Ubuntu systems, should be more secure than ever. - -#### 6. Private Home Directories - -![][9] - -As a traditionally desktop-focused distribution, Ubuntu has often opted for convenience over security. However, as they push harder and harder for adoption in the cloud, this has had to change. - -Previously, anyone with access to the computer could open and view any user’s home directory. However, as you can imagine, this presented a lot of problems for non-desktop users. Hence, the change to private home directories was required. - -It may be slightly less convenient for multi-user systems, this can be changed relatively easily. And, for the less technically inclined, they get better security without having to do anything! - -#### 7. nftables as the Default Firewall Backend - -![][10] - -For more than 25 years, firewalls have been a key part of keeping your computer isolated from the wider internet. During this time, Linux distros have generally used two different firewall solutions: iptables and xtables. - -However, recently, a different solution has entered the scene: nftables. Offering significant performance and flexibility improvements, it allows network admins to better protect your device. - -### Wrapping Up - -Undoubtedly, a lot of good upgrades made it to Ubuntu 22.04 LTS. Not just limited to the user experience, but it is also a significant leap in terms of security. - -Of course, there’s more to come, but the improvements mentioned above are good achievements! - -For more technical details, you can check out [Ubuntu’s official blog post][11]. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/ubuntu-22-04-is-most-secure-release.jpg -[2]: https://news.itsfoss.com/ubuntu-22-04-release/ -[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/hardware-security-illustration-1024x576.jpg -[4]: https://news.itsfoss.com/linux-kernel-5-17-release/ -[5]: https://news.itsfoss.com/linux-kernel-5-15-release/ -[6]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts -[7]: https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html -[8]: https://news.itsfoss.com/wp-content/uploads/2021/07/open-source-security-illustration-1024x576.png -[9]: https://news.itsfoss.com/wp-content/uploads/2021/04/private-home-directory-ubuntu-21.png -[10]: https://news.itsfoss.com/wp-content/uploads/2022/07/firewall-illustration-1024x576.jpg -[11]: https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-22-04-lts From 042d492a2bfc3b6e7643f0b006fd953575368362 Mon Sep 17 00:00:00 2001 From: ali Date: Tue, 12 Jul 2022 18:28:52 +0800 Subject: [PATCH 0354/3123] 20220115-raspberry-pi --- .../20220115 Why use a Raspberry Pi to power your business.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20220115 Why use a Raspberry Pi to power your business.md b/sources/talk/20220115 Why use a Raspberry Pi to power your business.md index a01a8f45b3..14078e622e 100644 --- a/sources/talk/20220115 Why use a Raspberry Pi to power your business.md +++ b/sources/talk/20220115 Why use a Raspberry Pi to power your business.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/1/raspberry-pi-business" [#]: author: "Giuseppe Cassibba https://opensource.com/users/peppe8o" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: " void-mori" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -75,7 +75,7 @@ via: https://opensource.com/article/22/1/raspberry-pi-business [a]: https://opensource.com/users/peppe8o [b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BIZ_WorkInPublic_4618517_1110_CS_A.png?itok=RwVrWArk (A chair in a field.) +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BIZ_WorkInPublic_4618517_1110_CS_A.png?itok=RwVrWArk "A chair in a field." [2]: https://opensource.com/resources/raspberry-pi [3]: https://enterprisersproject.com/article/2020/11/raspberry-pi-7-enterprise-it-uses [4]: https://peppe8o.com From 00f5201afeee4a79d578c6138de5c9911d4a4e6a Mon Sep 17 00:00:00 2001 From: ZZJ Date: Tue, 12 Jul 2022 21:48:21 +0800 Subject: [PATCH 0355/3123] translating --- sources/tech/20220712 7 kinds of garbage collection for Java.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220712 7 kinds of garbage collection for Java.md b/sources/tech/20220712 7 kinds of garbage collection for Java.md index ac81095767..603cfaa5a8 100644 --- a/sources/tech/20220712 7 kinds of garbage collection for Java.md +++ b/sources/tech/20220712 7 kinds of garbage collection for Java.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/garbage-collection-java" [#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Veryzzj" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6b814756c61eba4ecb5046f9ba69254183dcd6d9 Mon Sep 17 00:00:00 2001 From: Tan Long <2638000368@qq.com> Date: Tue, 12 Jul 2022 23:11:26 +0800 Subject: [PATCH 0356/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?]=2020220527=20Plotting=20Data=20in=20R-=20Graphs.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220527 Plotting Data in R- Graphs.md | 311 ----------------- .../20220527 Plotting Data in R- Graphs.md | 324 ++++++++++++++++++ 2 files changed, 324 insertions(+), 311 deletions(-) delete mode 100644 sources/tech/20220527 Plotting Data in R- Graphs.md create mode 100644 translated/tech/20220527 Plotting Data in R- Graphs.md diff --git a/sources/tech/20220527 Plotting Data in R- Graphs.md b/sources/tech/20220527 Plotting Data in R- Graphs.md deleted file mode 100644 index 38b8decd47..0000000000 --- a/sources/tech/20220527 Plotting Data in R- Graphs.md +++ /dev/null @@ -1,311 +0,0 @@ -[#]: subject: "Plotting Data in R: Graphs" -[#]: via: "https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/" -[#]: author: "Shakthi Kannan https://www.opensourceforu.com/author/shakthi-kannan/" -[#]: collector: "lkxed" -[#]: translator: "tanloong" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Plotting Data in R: Graphs -====== -R has a number of packages for plotting graphs and data visualisation, such as graphics, lattice, and ggplot2. In this ninth article in the R series, we shall explore the various functions to plot data in R. - -![business-man-visulising-graphs][1] - -We will be using R version 4.1.2 installed on Parabola GNU/Linux-libre (x86-64) for the code snippets. - -``` -$ R --version - -R version 4.1.2 (2021-11-01) -- “Bird Hippie” -Copyright (C) 2021 The R Foundation for Statistical Computing -Platform: x86_64-pc-linux-gnu (64-bit) -``` - -R is free software and comes with absolutely no warranty. You are welcome to redistribute it under the terms of the GNU General Public License versions 2 or 3. For more information about these matters, see *https://www.gnu.org/licenses/.* - -### Plot - -Consider the all-India consumer price index (CPI – rural/urban) data set up to November 2021 available at *https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0* for the different states in India. We can read the data from the downloaded file using the read.csv function, as shown below: - -``` -> cpi <- read.csv(file=”CPI.csv”, sep=”,”) - -> head(cpi) -Sector Year Name Andhra.Pradesh Arunachal.Pradesh Assam Bihar -1 Rural 2011 January 104 NA 104 NA -2 Urban 2011 January 103 NA 103 NA -3 Rural+Urban 2011 January 103 NA 104 NA -4 Rural 2011 February 107 NA 105 NA -5 Urban 2011 February 106 NA 106 NA -6 Rural+Urban 2011 February 105 NA 105 NA -Chattisgarh Delhi Goa Gujarat Haryana Himachal.Pradesh Jharkhand Karnataka -1 105 NA 103 104 104 104 105 104 -2 104 NA 103 104 104 103 104 104 -3 104 NA 103 104 104 103 105 104 -4 107 NA 105 106 106 105 107 106 -5 106 NA 105 107 107 105 107 108 -6 105 NA 104 105 106 104 106 106 -... -``` - -Let us aggregate the CPI values per year for the state of Punjab, and plot a line chart using the plot function, as follows: - -``` -> punjab <- aggregate(x=cpi$Punjab, by=list(cpi$Year), FUN=sum) - -> head(punjab) -Group.1 x -1 2011 3881.76 -2 2012 4183.30 -3 2013 4368.40 -4 2014 4455.50 -5 2015 4584.30 -6 2016 4715.80 - -> plot(punjab$Group.1, punjab$x, type=”l”, main=”Punjab Consumer Price Index upto November 2021”, xlab=”Year”, ylab=”Consumer Price Index”) -``` - -The following arguments are supported by the plot function: - -| Argument | Description | -| :- | :- | -| x | A vector for the x-axis | -| y | The vector or list in the y-axis | -| type | ‘p’ for points, ‘l’ for lines, ‘o’ for overplotted plots and lines, ‘s’ for stair steps, ‘h’ for histogram | -| xlim | The x limits of the plot | -| ylim | The y limits of the plot | -| main | The title of the plot | -| sub | The subtitle of the plot | -| xlab | The label for the x-axis | -| ylab | The label for the y-axis | -| axes | Logical value to draw the axes | - -The line chart is shown in Figure 1. - -![Figure 1: Line chart][2] - -The autocorrelation plot can be used to obtain correlation statistics for time series analysis, and the same can be generated using the acf function in R. You can specify the following autocorrelation types: *correlation, covariance*, or partial. Figure 2 shows the ACF chart that represents the CPI values (‘x’ in the chart) for the state of Punjab. - -![Figure 2: ACF chart][3] - -The function*acf* accepts the following arguments: - -| Argument | Description | -| :- | :- | -| x | A univariate or multivariate object or vector or matrix | -| lag.max | The maximum lag to calculate the acf | -| type | Supported values ‘correlation’, ‘covariance’, ‘partial’ | -| plot | The acf is plotted if this value is TRUE | -| i | A set of time difference lags to retain | -| j | A collection of names or numbers to retain | - -### Bar chart - -The barplot function is used to draw a bar chart. The chart for Punjab’s CPI can be generated as follows, and is shown in Figure 3: - -![Figure 3: Line chart of Punjab’s CPI][4] - -``` -> barplot(punjab$x, main=”Punjab Consumer Price Index”, sub=”Upto November 2021”, xlab=”Year”, ylab=”Consumer Price Index”, col=”navy”) -``` - -The function is quite flexible and supports the following arguments: - -| Argument | Description | -| :- | :- | -| height | A numeric vector or matrix that contains the values | -| width | A numeric vector that specifies the widths of the bars | -| space | The amount of space between bars | -| beside | A logical value to specify if the bars should be stacked or next to each other | -| density | A numerical value that specifies the density of the shading lines | -| angle | The angle used to shade the lines | -| border | The colour of the border | -| main | The title of the chart | -| sub | The sub-title of the chart | -| xlab | The label for the x-axis | -| ylab | The label for the y-axis | -| xlim | The limits for the x-axis | -| ylim | The limits for the y-axis | -| axes | A value that specifies whether the axes should be drawn | - -You can get more details on the barplot function using the help command, as shown below: - -``` -> help(barplot) - -acf package:stats R Documentation - -Auto- and Cross- Covariance and -Correlation Function Estimation - -Description: - -The function ‘acf’ computes (and by default plots) estimates of -the autocovariance or autocorrelation function. Function ‘pacf’ -is the function used for the partial autocorrelations. Function -‘ccf’ computes the cross-correlation or cross-covariance of two -univariate series. - -Usage: - -acf(x, lag.max = NULL, -type = c(“correlation”, “covariance”, “partial”), -plot = TRUE, na.action = na.fail, demean = TRUE, ...) - -pacf(x, lag.max, plot, na.action, ...) - -## Default S3 method: -pacf(x, lag.max = NULL, plot = TRUE, na.action = na.fail, -...) - -ccf(x, y, lag.max = NULL, type = c(“correlation”, “covariance”), -plot = TRUE, na.action = na.fail, ...) - -## S3 method for class ‘acf’ -x[i, j] -``` - -### Pie chart - -Pie charts need to be used wisely, as they may not actually show relative differences among the slices. We can generate the Rural, Urban, and Rural+Urban values for the month of January 2021 for Gujarat as follows, using the subset function: - -``` -> jan2021 <- subset(cpi, Name==”January” & Year==”2021”) - -> jan2021$Gujarat -[1] 153.9 151.2 149.1 - -> names <- c(‘Rural’, ‘Urban’, ‘Rural+Urban’) -``` - -![Figure 4: Pie chart][5] - -The pie function can be used to generate the actual pie chart for the state of Gujarat, as shown below: - -``` -> pie(jan2021$Gujarat, names, main=”Gujarat CPI Rural and Urban Pie Chart”) -``` - -The following arguments are supported by the pie function: - -| Argument | Description | -| :- | :- | -| x | Positive numeric values to be plotted | -| label | A vector of character strings for the labels | -| radius | The size of the pie | -| clockwise | A value to indicate if the pie should be drawn clockwise or counter-clockwise | -| density | A value for the density of shading lines per inch | -| angle | The angle that specifies the slope of the shading lines in degrees | -| col | A numeric vector of colours to be used | -| lty | The line type for each slice | -| main | The title of the chart | - -### Boxplot - -A boxplot shows the interquartile range between the 25th and 75th percentile using two ‘whiskers’ for the distribution of a variable. The values outside the range are plotted separately. The boxplot functions take the following arguments: - -| Argument | Description | -| :- | :- | -| data | A data frame or list that is defined | -| x | A vector that contains the values to plot | -| width | The width of the boxes to be plotted | -| outline | A logical value indicating whether to draw the outliers | -| names | The names of the labels for each box plot | -| border | The colour to use for the outline of each box plot | -| range | A maximum numerical amount the whiskers should extend from the boxes | -| plot | The boxes are plotted if this value is TRUE | -| horizontal | A logical value to indicate if the boxes should be drawn horizontally | - -The boxplot for a few states from the CPI data is shown below: - -``` -> names <- c (‘Andaman and Nicobar’, ‘Lakshadweep’, ‘Delhi’, ‘Goa’, ‘Gujarat’, ‘Bihar’) -> boxplot(cpi$Andaman.and.Nicobar, cpi$Lakshadweep, cpi$Delhi, cpi$Goa, cpi$Gujarat, cpi$Bihar, names=names) -``` - -![Figure 5: Box plot][6] - -![Figure 6: Q-Q plot][7] - -### Q-Q plot - -The Quantile-Quantile (Q-Q) plot is a way to compare two data sets. You can also compare a data set with a theoretical distribution. The qqnorm function is a generic function, and we can view the Q-Q plot for the Punjab CPI data as shown below: - -``` -> qqnorm(punjab$x) -``` - -![Figure 7: Volcano][8] - -The*qqline* function adds a theoretical line to a normal, quantile-quantile plot. The following arguments are accepted by these functions: - -| Argument | Description | -| :- | :- | -| x | The first data sample | -| y | The second data sample | -| datax | A logical value indicating if values should be on the x-axis | -| probs | A numerical vector representing probabilities | -| xlab | The label for x-axis | -| ylab | The label for y-axis | -| qtype | The type of quantile computation | - -### Contour plot - -The contour function is useful for plotting three-dimensional data. You can generate a new contour plot, or add contour lines to an existing chart. These are commonly used along with image charts. The volcano data set in R provides information on the Maunga Whau (Mt Eden) volcanic field, and the same can be visualised with the contour function as follows: - -``` -> contour(volcano) -``` - -The contour function accepts the following arguments: - -| Argument | Description | -| :- | :- | -| x,y | The location of the grid for z | -| z | A numeric vector to be plotted | -| nlevels | The number of contour levels | -| labels | A vector of labels for the contour lines | -| xlim | The x limits for the plot | -| ylim | The y limits for the plot | -| zlim | The z limits for the plot | -| axes | A value to indicate to print the axes | -| col | The colour for the contour lines | -| lty | The line type to draw | -| lwd | Width for the lines | -| vfont | The font for the labels | - -The areas between the contour lines can be filled using a solid colour to indicate the levels, as shown below: - -``` -> filled.contour(volcano, asp = 1) -``` - -The same volcano data set with the filled.contour colours is illustrated in Figure 8. - -![Figure 8: Filled volcano][9] - -You are encouraged to explore the other functions and charts in the graphics package in R. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/ - -作者:[Shakthi Kannan][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/shakthi-kannan/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/business-man-visulising-graphs.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Line-chart.jpg -[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-ACF-chart.jpg -[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-Line-chart-of-Punjabs-CPI.jpg -[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-Pie-chart.jpg -[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-ox-plot.jpg -[7]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-6-Q-Q-plot.jpg -[8]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-7-Volcano.jpg -[9]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-8-Filled-volcano.jpg diff --git a/translated/tech/20220527 Plotting Data in R- Graphs.md b/translated/tech/20220527 Plotting Data in R- Graphs.md new file mode 100644 index 0000000000..6f3dbc6e43 --- /dev/null +++ b/translated/tech/20220527 Plotting Data in R- Graphs.md @@ -0,0 +1,324 @@ +[#]: subject: "Plotting Data in R: Graphs" +[#]: via: "https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/" +[#]: author: "Shakthi Kannan https://www.opensourceforu.com/author/shakthi-kannan/" +[#]: collector: "lkxed" +[#]: translator: "tanloong" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +R 语言绘制数据:图表篇 +====== + +R 语言有非常多的绘图和数据可视化的包,比如 graphics、lattice、ggplot2 等。这是 R 语言系列的第 9 篇文章,我们会介绍 R 中用来绘图的各种函数。 + +![business-man-visulising-graphs][1] + +本文使用的 R 是 4.1.2 版本, +运行环境为 Parabola GNU/Linux-libre (x86-64)。 + +```R +$ R --version + +R version 4.1.2 (2021-11-01) -- "Bird Hippie" +Copyright (C) 2021 The R Foundation for Statistical Computing +Platform: x86_64-pc-linux-gnu (64-bit) +``` + +R 是开源软件,没有任何担保责任。 +只要遵守 GNU 通用公共许可证的版本 2 或者版本 3,你就可以对它进行 (修改和) 再分发。 +详情见 [*https://www.gnu.org/licenses/.*](https://www.gnu.org/licenses/.) + +### 折线图 + +我们以印度全境消费者物价指数 (CPI -- 乡村/城市) 数据集为研究对象,它可以从 [*https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0*](https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0) 下载。选择 "截止到 2021 年 11 月" 的版本,用 read.csv 函数读取下载好的文件,如下所示: + +```R +> cpi <- read.csv(file="CPI.csv", sep=",") + +> head(cpi) +Sector Year Name Andhra.Pradesh Arunachal.Pradesh Assam Bihar +1 Rural 2011 January 104 NA 104 NA +2 Urban 2011 January 103 NA 103 NA +3 Rural+Urban 2011 January 103 NA 104 NA +4 Rural 2011 February 107 NA 105 NA +5 Urban 2011 February 106 NA 106 NA +6 Rural+Urban 2011 February 105 NA 105 NA +Chattisgarh Delhi Goa Gujarat Haryana Himachal.Pradesh Jharkhand Karnataka +1 105 NA 103 104 104 104 105 104 +2 104 NA 103 104 104 103 104 104 +3 104 NA 103 104 104 103 105 104 +4 107 NA 105 106 106 105 107 106 +5 106 NA 105 107 107 105 107 108 +6 105 NA 104 105 106 104 106 106 +... +``` + +以 Punjab 州为例,对每年各月份的 CPI 值求和,然后用 plot 函数画一张折线图: + +```R +> punjab <- aggregate(x=cpi$Punjab, by=list(cpi$Year), FUN=sum) + +> head(punjab) +Group.1 x +1 2011 3881.76 +2 2012 4183.30 +3 2013 4368.40 +4 2014 4455.50 +5 2015 4584.30 +6 2016 4715.80 + +> plot(punjab$Group.1, punjab$x, type="l", main="Punjab Consumer Price Index upto November 2021", xlab="Year", ylab="Consumer Price Index") +``` + +plot 函数可以传入如下参数: + +| 参数 | 描述 | +| :- | :- | +| x | 向量类型,用于绘制 x 轴的数据 | +| y | 向量或列表类型,用于绘制 y 轴的数据 | +| type | 设置绘图类型:"p" 画点;"l" 画线;"o" 同时画点和线,且相互重叠;"s" 画阶梯线;"h" 画铅垂线 | +| xlim | x 轴范围 | +| ylim | y 轴范围 | +| main | 标题 | +| sub | 副标题 | +| xlab | x 轴标题 | +| ylab | y 轴标题 | +| axes | 逻辑型,是否绘制坐标轴 | + +结果如图 1。 + +![Figure 1: Line chart][2] + +### 自相关图 + +自相关图能在时序分析中展示一个变量是否具有自相关性,可以用 R 中的 acf 函数绘制。acf 函数可以设置三种自相关类型:*correlation*、*covariance* 或 *partial*。图 2 是 Punjab 州 CPI 值的自相关图,x 表示 CPI。 + +```R +acf(punjab$x,main='x') +``` + +![Figure 2: ACF chart][3] + +acf 函数可以传入以下参数: + +| 参数 | 描述 | +| :- | :- | +| x | 一个单变量或多变量的 time series 对象,或者一个数值向量或数值矩阵 | +| lag.max | 最大滞后阶数 | +| type | 字符型,设置所计算的自相关类型:"correlation"、"covariance" 或 "partial" | +| plot | 逻辑性,若 TRUE 则绘制图像,若 FALSE 则打印传入数据的描述信息 | +| i | 一组要保留的时差滞后 | +| j | 一组要保留的名称或数字 | + +### 柱状图 + +R 中画柱状图的函数是 barplot。下面的代码用来画 Punjab 州 CPI 的柱状图,如图3: + +```R +> barplot(punjab$x, main="Punjab Consumer Price Index", sub="Upto November 2021", xlab="Year", ylab="Consumer Price Index", col="navy") +``` + +![Figure 3: Line chart of Punjab's CPI][4] + +barplot 函数的使用方法非常灵活,可以传入以下参数: + +| 参数 | 描述 | +| :- | :- | +| height | 数值向量或数值矩阵,包含用于绘图的数据 | +| width | 数值向量,用于设置柱宽 | +| space | 柱间距 | +| beside | 逻辑型,若 FALSE 则绘制堆积柱状图,若 TRUE 则绘制并列柱状图 | +| density | 数值型,设置阴影线的填充密度 (条数/英寸),默认为 NULL,即不填充阴影线| +| angle | 数值型,填充线条的角度,默认为 45 | +| border | 柱子边缘的颜色 | +| main | 标题 | +| sub | 副标题 | +| xlab | x 轴标题 | +| ylab | y 轴标题 | +| xlim | x 轴范围 | +| ylim | y 轴范围 | +| axes | 逻辑型,是否绘制坐标轴 | + +用 help 命令可以查看 barplot 函数的详细信息: + +```R +> help(barplot) + +barplot package:graphics R Documentation + +Bar Plots + +Description: + + Creates a bar plot with vertical or horizontal bars. + +Usage: + + barplot(height, ...) + + ## Default S3 method: + barplot(height, width = 1, space = NULL, + names.arg = NULL, legend.text = NULL, beside = FALSE, + horiz = FALSE, density = NULL, angle = 45, + col = NULL, border = par("fg"), + main = NULL, sub = NULL, xlab = NULL, ylab = NULL, + xlim = NULL, ylim = NULL, xpd = TRUE, log = "", + axes = TRUE, axisnames = TRUE, + cex.axis = par("cex.axis"), cex.names = par("cex.axis"), + inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0, + add = FALSE, ann = !add && par("ann"), args.legend = NULL, ...) + + ## S3 method for class 'formula' + barplot(formula, data, subset, na.action, + horiz = FALSE, xlab = NULL, ylab = NULL, ...) +``` + +### 饼图 + +绘制饼图时要多加注意,因为饼图不一定能展示出各扇形间的区别。(LCTT 译注:"根据统计学家和一些心理学家的调查结果,这种以比例展示数据的统计图形 [实际上是很糟糕的可视化方式][10],因此,R 关于饼图的帮助文件中清楚地说明了并不推荐使用饼图,而是使用条形图或点图作为替代。") 用 subset 函数获得 Gujarat 州在 2021 年 1 月 Rural、Urban、Rurual+Urban 的 CPI 值: + +```R +> jan2021 <- subset(cpi, Name=="January" & Year=="2021") + +> jan2021$Gujarat +[1] 153.9 151.2 149.1 + +> names <- c('Rural', 'Urban', 'Rural+Urban') +``` + +使用 pie 函数为 Gujarat 州的 CPI 值生成饼图,如下所示: + +```R +> pie(jan2021$Gujarat, names, main="Gujarat CPI Rural and Urban Pie Chart") +``` + +![Figure 4: Pie chart][5] + +pie 函数可以传入以下参数: + +| 参数 | 描述 | +| :- | :- | +| x | 元素大于 0 的数值向量 | +| label | 字符向量,用于设置每个扇形的标签 | +| radius | 饼图的半径 | +| clockwise | 逻辑型,若 TRUE 则顺时针绘图,若 FALSE 则逆时针绘图 | +| density | 数值型,设置阴影线的填充密度 (条数/英寸),默认为 NULL,即不填充阴影线| +| angle | 数值型,填充线条的角度,默认为 45 | +| col | 数值向量,用于设置颜色 | +| lty | 每个扇形的线条类型 | +| main | 标题 | + +### 箱线图 + +(LCTT 译注:"箱线图主要是 [从四分位数的角度出发][11] 描述数据的分布,它通过最大值 (Q4)、上四分位数 (Q3)、中位数(Q2)、下四分位数 (Q1) 和最小值 (Q0) 五处位置来获取一维数据的分布概况。我们知道,这五处位置之间依次包含了四段数据,每段中数据量均为总数据量的 1/4。通过每一段数据占据的长度,我们可以大致推断出数据的集中或离散趋势 (长度越短,说明数据在该区间上越密集,反之则稀疏。)") + +箱线图能够用“须线” (whiskers) 展示一个变量的四分位距 (Interquartile Range,简称 IQR=Q3-Q1)。用上下四分位数分别加/减内四分位距,再乘以一个人为设定的倍数 range (见下面的参数列表),得到 `range * c(Q1-IQR, Q3+IQR)`,超过这个范围的数据点就被视作离群点,在图中直接以点的形式表示出来。 +boxplot 函数可以传入以下参数: + +| 参数 | 描述 | +| :- | :- | +| data | 数据框或列表,用于参数类型为公式 (formula) 的情况 | +| x | 数值向量或者列表,若为列表则对列表中每一个子对象依次作出箱线图 | +| width | 设置箱子的宽度 | +| outline | 逻辑型,设置是否绘制离群点 | +| names | 设置每个箱子的标签 | +| border | 设置每个箱子的边缘的颜色 | +| range | 延伸倍数,设置箱线图末端 (须) 延伸到什么位置 | +| plot | 逻辑型,设置是否生成图像,若 TRUE 则生成图像,若 FALSE 则打印传入数据的描述信息 | +| horizontal | 逻辑型,设置箱线图是否水平放置 | + +用 boxplot 函数绘制部分州的箱线图: + +```R +> names <- c ('Andaman and Nicobar', 'Lakshadweep', 'Delhi', 'Goa', 'Gujarat', 'Bihar') +> boxplot(cpi$Andaman.and.Nicobar, cpi$Lakshadweep, cpi$Delhi, cpi$Goa, cpi$Gujarat, cpi$Bihar, names=names) +``` + +![Figure 5: Box plot][6] + +### QQ 图 + +QQ 图 (Quantile-Quantile plot) 可以用来对比两个数据集,也可以用来检查数据是否服从某种理论分布。qqnorm 函数能绘制正态分布 QQ 图,可以检验数据是否服从正态分布,用下面的代码绘制 Punjab 州 CPI 数据的 QQ 图: + +```R +> qqnorm(punjab$x) +``` + +![Figure 6: Q-Q plot][7] + +qqline 函数可以向正态分布 QQ 图上添加理论分布曲线,它可以传入以下参数: + +| 参数 | 描述 | +| :- | :- | +| x | 第一个数据样本 | +| y | 第二个数据样本 | +| datax | 逻辑型,设置是否以 x 轴表示理论曲线的值,默认为 FALSE | +| probs | 长度为 2 的数值向量,代表概率 | +| xlab | x 轴标题 | +| ylab | y 轴标题 | +| qtype | [1,9] 内的整数,设置分位计算类型,详情见 help(quantile) 的 "Type" 小节 | + +### 等高图 + +等高图可以描述三维数据,在 R 中对应的函数是 contour,这个函数也可以用来向已有的图表添加等高线。等高图常与其他图表一起使用。我们用 contour 对 R 中的 volcano 数据集 (奥克兰的火山地形信息) 绘制等高图,代码如下: + +```R +> contour(volcano) +``` + +![Figure 7: Volcano][8] + +contour 函数的常用参数如下: + +| 参数 | 描述 | +| :- | :- | +| x,y | z 中数值对应的点在平面上的位置 | +| z | 数值向量 | +| nlevels | 设置等高线的条数,调整等高线的疏密 | +| labels | 等高线上的标记字符串,默认是高度的数值 | +| xlim | 设置 x 轴的范围 | +| ylim | 设置 y 轴的范围 | +| zlim | 设置 z 轴的范围 | +| axes | 设置是否绘制坐标轴 | +| col | 设置等高线的颜色 | +| lty | 设置线条的类型 | +| lwd | 设置线条的粗细 | +| vfont | 设置标签字体 | + +等高线之间的区域可以用颜色填充,每种颜色表示一个高度范围,如下所示: + +```R +> filled.contour(volcano, asp = 1) +# asp 为图形纵横比,即 y 轴上的 1 单位长度和 x 轴上 1 单位长度的比率 +``` +填充结果见图 8。 + +![Figure 8: Filled volcano][9] + +掌握上述内容后,你可以尝试 R 语言 graphics 包中的其他函数和图表 (LCTT 译注:用 help(package=graphics) 可以查看 graphics 包提供的函数列表)。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/ + +作者:[Shakthi Kannan][a] +选题:[lkxed][b] +译者:[tanloong](https://github.com/tanloong) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/shakthi-kannan/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/business-man-visulising-graphs.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Line-chart.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-ACF-chart.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-Line-chart-of-Punjabs-CPI.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-Pie-chart.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-ox-plot.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-6-Q-Q-plot.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-7-Volcano.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-8-Filled-volcano.jpg +[10]: https://bookdown.org/xiangyun/msg/gallery.html#sec:pie +[11]: https://bookdown.org/xiangyun/msg/gallery.html#sec:boxplot From 5b061788eb8ef19ee7e55bb08cc414d248ed89a5 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 13 Jul 2022 00:41:49 +0800 Subject: [PATCH 0357/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20211104=20Beginner-s=20Guide=20to=20Installing=20Arch?= =?UTF-8?q?=20Linux=20on=20VirtualBox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to Installing Arch Linux on VirtualBox.md | 268 ------------------ ... to Installing Arch Linux on VirtualBox.md | 268 ++++++++++++++++++ 2 files changed, 268 insertions(+), 268 deletions(-) delete mode 100644 sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md create mode 100644 translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md diff --git a/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md b/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md deleted file mode 100644 index 46dae5ba9e..0000000000 --- a/sources/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md +++ /dev/null @@ -1,268 +0,0 @@ -[#]: subject: "Beginner’s Guide to Installing Arch Linux on VirtualBox" -[#]: via: "https://itsfoss.com/install-arch-linux-virtualbox/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" -[#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Beginner’s Guide to Installing Arch Linux on VirtualBox -====== - -[Arch Linux is hugely popular][1] in the desktop Linux world. One of the reasons for the popularity is that [installing Arch Linux][2] itself is a complicated task. - -I am not exaggerating. Installing [Ubuntu or Debian][3] is a lot easier task than Arch Linux because it doesn’t have an official GUI based installer. And this is where virtual machines come in. - -You can try installing Arch Linux in VirtualBox first and see if it’s something you would like to run on actual hardware. This way, you get to experience Arch Linux without disturbing your current operating system. - -In this article, I will be guiding you through the steps to install a functional Arch Linux virtual machine. - -### Installing Arch Linux on VirtualBox - -Undoubtedly, you need to first [install VirtualBox on Linux][4] or Windows. On Windows, simply go to the Oracle’s website and download VirtualBox. - -[Download VirtualBox][5] - -If you are using Windows 10 or newer version, please ensure that you have virtualization enabled on your system. - -Once done, you need to head to [Arch Linux’s official website][6] to download the ISO file. You should find options to [download using torrent][7] or download the file directly. - -![][8] - -Hold on to the ISO file when needed, you can delete it to [free space on your system][9] after successful installation. - -Now, let us begin installing Arch Linux on VirtualBox. - -#### Part 1. Creating the Virtual Machine - -**Step 1:** First, you need to set up a few things in VirtualBox. Launch VirtualBox and click on “**New**” to create a virtual machine. - -![][10] - -Note that you can continue creating the virtual machine using the guided mode, but you get more options at a single glance with the expert mode. - -![][11] - -Hence, I recommend using the expert mode to create the virtual machine. - -Fret not, the expert mode is as easy, with just a bit of extra available options and nothing else to worry about. - -**Step 2**: Enter the name of your virtual machine, it should auto-detect the “Type” and “Version” respectively when you type in “**Arch Linux**” in the name field. - -![][12] - -You should increase the memory size to use the virtual machine comfortably. If it is just for minor testing, you can go ahead with the default setting. - -In my case, I allocate ~**4 GB of RAM**. - -Also, make sure to **create a virtual hard disk** under the “Hard disk” option. It should be the selected option by default. - -Now, proceed to set the virtual hard disk size. - -**Step 3:** You can choose a preferred location path for the virtual hard disk and tweak the size as per your requirements. The installation should not be a problem with the minimum allocated size (8 GB), but to be on the safe side, you may want to allocate at least 10-15 GB. - -![][13] - -Next, you need to select the hard disk file type as “**VDI (VirtualBox Disk Image)**” and the storage as “**Dynamically allocated**,” as shown in the image above. - -VDI is the most common hard disk type for the virtual hard disk. - -And, when you select the “**Dynamically allocated**” option for the hard disk storage, it means that the storage space will be utilized as per usage. In other words, 15 GB of space won’t be locked from your disk as soon as the virtual machine is created. - -Now, all you have to do is hit “**Create**” to add the virtual machine. - -#### Part 2. Adding the ISO File to Start Installing Arch Linux - -![][14] - -Once the VM has been listed, you can look at its configuration and select the ISO as the disk drive under the **Storage** option. - -You can also separately head to the virtual machine settings to explore more and choose the ISO file. - -![][15] - -To do that, navigate your way to the “**Storage**” setting of the VM. - -![][16] - -Here, you will have to click on the “**Empty**” device under Controller and then proceed to select the Arch Linux ISO file as the disk file (as shown in the image above). - -![][17] - -Once you select it, hit “**OK**” to save the changes to your setting. - -Here’s how the virtual machine setting should look like with the ISO set as the disk to boot: - -![][18] - -Now, hit “**Start**” to start the VM and get started with the installation. - -#### Part 3. Installing Arch Linux using the Guided Installer - -Arch Linux has made the installation easier by [introducing a guided installer][19], i.e., it gives you all the options you need to set up a full-fledged Arch Linux system. - -So, with the help of a guided installer, you do not have to install a desktop environment and other essential packages yourself separately. All you have to do is follow the onscreen instructions and choose the options suitable for your installation. - -In this article, we focus on the guided installer. If you want to do things yourself, you should follow our [Arch installation guide][2]. - -Moving on to the installation, when you start the VM, you will be looking at this screen: - -![][20] - -The first option is the ideal way of proceeding. If you have a specific requirement, you can choose other options to boot up Arch Linux. - -Now, you should be looking at a terminal window. Here’s how to get started: - -**Step 1**: Type in “**archinstall**” to initiate installation using the guided installer. - -![][21] - -**Step 2:** Choose a keyboard layout as per your requirements, selecting a US layout should be the most common choice. Just type in a number to make the selection, as shown in the image below (for instance, 26). - -![][22] - -**Step 3:** Next, you need to select a region to download packages. - -![][23] - -Choosing a preferred region instead of “Worldwide” is crucial because it downloads many unnecessary packages if you select “**Worldwide**” as your region. - -**Step 4:** Once you select the region, it will ask you to choose the drive for installation. In this case, we already created a virtual drive of ~15 GB displayed as **/dev/sda**. - -Similarly, check for the drive you created as per the size and choose that disk to proceed. Here, I type in **1** as the input; yours can differ. - -![][24] - -**Step 5:** For the next set of steps, you will be asked the following: - - * **Select a filesystem type** - * **Encryption password** (optional) - * **Hostname** - * **Create root password** (optional) - * **Creating a super-user** - * **Choose a pre-programmed profile** - - - -![][25] - -In my test, I chose BTRFS as the filesystem without setting any disk encryption password. - -The hostname can be anything of your choice, but I’d suggest keeping it short. - -You may choose to create a root password, but it shouldn’t be an issue if you do not. However, you need to create a superuser with Sudo privileges. - -I used “**admin**” and “**pass**” as the user and the password, respectively. But, you should not use easy-to-guess credentials if you do not want anyone else to access the VM on your computer. - -And, then, you will be shown a choice to select a profile. In this case, we want a full-fledged Arch Linux desktop. So, we choose “**desktop**” by typing in **0**. - -**Step 6:** Next, you will be asked to choose a desktop environment. I decided to proceed with KDE. You can select anything else you like. - -![][26] - -**Step 7**: To finalize, you will be asked to choose the graphics card driver. Here, we install Arch Linux on VirtualBox, so you can select option 4 as “**VMware/VirtualBox**,” as shown in the image below. - -![][27] - -You may also be asked to choose pipewire instead of PulseAudio for audio with a “Yes (y) or No (no)” response. Any of those should serve the purpose. - -****Step 8:**** Next comes an important step. Here, you can choose to go with **linux-lts** if you need the LTS version of the kernel, or else proceed with the default. - -![][28] - -The installer will prompt you to explicitly install any packages required. In this case, we do not have any specific requirements, so we will leave it blank and press enter to skip. - -**Step 9:** To enable internet access, you will be asked to select the required network adapter. You will have to choose the option: - -**Use network manager to control and manage your internet connection** - -![][29] - -**Step 10:** The timezone needs to be defined in the next step. Choose what applies to you, or continue with the default option. - -**Step 11:** Once done, it will display most of the options you selected as confirmation. Press **Enter** to continue. - -![][30] - -**Step 12:** It will take a few minutes for the installation to complete, depending on your internet connection speed. - -After the installation is complete, it will ask you to **chroot into a newly created installation for post-installation configuration**, but we don’t need that. So, type in “**N**” to complete the installation. - -**Step 13:** Finally, you should see the terminal window again. Type in: - -``` -shutdown now -``` - -This will safely exit the installation and close the virtual machine. - -It’s all set! Before starting the virtual machine with Arch installed, you need to do one more thing – **remove the ISO disk selected as the optical drive**. Similar to how you added the ISO to boot from, you can head to the virtual machine settings and remove it as shown below: - -![][31] - -That’s it! You are done installing Arch Linux on VirtualBox. - -All you have to do is start the virtual machine, and here’s how it looks in my case: - -![virtualbox arch][32] - -Even though it takes a bit of time to go through the options, the new guided installer on Arch Linux saves a lot of time to get the essentials right. - -![][33] - -The same set of steps apply for installing Arch Linux on your computer. You need to [make a separate bootable USB drive using Etcher][34] with the Arch Linux ISO file. - -### Wrapping Up - -[Arch Linux is a popular choice][1] for a variety of reasons. However, if it is your first time installing, or if you want to test it out, a virtual machine is the best way to experience it without disrupting your host computer. - -I hope this helps you install Arch Linux on VirtualBox. Let me know your thoughts in the comments down below. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-arch-linux-virtualbox/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/why-arch-linux/ -[2]: https://itsfoss.com/install-arch-linux/ -[3]: https://itsfoss.com/debian-vs-ubuntu/ -[4]: https://itsfoss.com/install-virtualbox-ubuntu/ -[5]: https://www.virtualbox.org/wiki/Downloads -[6]: https://archlinux.org/download/ -[7]: https://itsfoss.com/best-torrent-ubuntu/ -[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archlinux-downloads.png?resize=800%2C419&ssl=1 -[9]: https://itsfoss.com/free-up-space-ubuntu-linux/ -[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-new.png?resize=800%2C562&ssl=1 -[11]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-expert-mode.png?resize=707%2C438&ssl=1 -[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-create.png?resize=800%2C536&ssl=1 -[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-disk.png?resize=800%2C528&ssl=1 -[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/choose-disk-virtualbox-arch.png?resize=800%2C440&ssl=1 -[15]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-settings-option.png?resize=800%2C551&ssl=1 -[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-choose-iso.png?resize=800%2C314&ssl=1 -[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-arch-iso-select.png?resize=800%2C348&ssl=1 -[18]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-set-start.png?resize=800%2C548&ssl=1 -[19]: https://news.itsfoss.com/arch-linux-easy-install/ -[20]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-archlinux-boot.png?resize=800%2C593&ssl=1 -[21]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/vb-archinstall-guided.png?resize=800%2C400&ssl=1 -[22]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/vb-archinstall-kb-layout.png?resize=800%2C694&ssl=1 -[23]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-region.png?resize=800%2C664&ssl=1 -[24]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-selectdisk.png?resize=800%2C199&ssl=1 -[25]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-desktop-configure.png?resize=800%2C497&ssl=1 -[26]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-virtualbox-desktop-environment.png?resize=800%2C415&ssl=1 -[27]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-environment.png?resize=419%2C173&ssl=1 -[28]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-linux-kernel.png?resize=800%2C692&ssl=1 -[29]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-arch-network-manager.png?resize=800%2C151&ssl=1 -[30]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-confirmation.png?resize=800%2C697&ssl=1 -[31]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/iso-remove-archinstall.png?resize=800%2C286&ssl=1 -[32]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-arch.png?resize=800%2C635&ssl=1 -[33]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/kde-arch-virtualbox.png?resize=800%2C453&ssl=1 -[34]: https://itsfoss.com/install-etcher-linux/ diff --git a/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md b/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md new file mode 100644 index 0000000000..3c272b3dc4 --- /dev/null +++ b/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md @@ -0,0 +1,268 @@ +[#]: subject: "Beginner’s Guide to Installing Arch Linux on VirtualBox" +[#]: via: "https://itsfoss.com/install-arch-linux-virtualbox/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: "hanszhao80" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +VirtualBox 安装 Arch Linux 的新手操作指南 +====== + +[Arch Linux 在桌面 Linux 世界中非常流行][1]。受欢迎的原因之一是 [安装 Arch Linux][2] 本身就是一项复杂的任务。 + +我没有夸大其词。安装 [Ubuntu 或 Debian][3] 比 Arch Linux 容易得多,因为官方没给后者提供图形界面的安装程序。这时虚拟机就派上用场了。 + +你可以先在 VirtualBox 中尝试安装 Arch Linux,看看它是否是你想在实际硬件上运行的系统。通过这种方式,你可以在不打乱当前操作系统的情况下体验 Arch Linux。 + +在本文,我将一步一步指导你完成一个实用的 Arch Linux 虚拟机的安装过程。 + +### 在 VirtualBox 上安装 Arch Linux + +毫无疑问,你需要先 [在 Linux 上安装 VirtualBox][4](或 Windows)。在 Windows 上,只需访问 Oracle 的网站并下载 VirtualBox。 + +[下载 VirtualBox][5] + +如果你使用的是 Windows 10 或更高版本,请确保你的系统已启用虚拟化。 + +完成后,你需要到 [Arch Linux 官方网站][6] 下载 ISO 文件。你应该找到 [使用 torrent 下载][7] 或直接下载文件的选项。 + +![][8] + +你可以保留 ISO 文件以备不时之需,安装成功后也可以将其删除以 [释放系统上的空间][9]。 + +现在,让我们开始在 VirtualBox 上安装 Arch Linux 吧。 + +#### 第一部分 创建虚拟机 + +**第一步**:首先,你需要在 VirtualBox 中设置一下。启动 VirtualBox 并单击 **新建New** 来创建一个虚拟机。 + +![][10] + +注意,你可以使用向导模式guided mode继续创建虚拟机,但使用专家模式expert mode可以一目了然地获得更多选项。 + +![][11] + +因此,我推荐使用专家模式来创建虚拟机。 + +不用担心,专家模式同样简单,只是多了一些额外的可选项,无需担心其他任何事情。 + +**第二步**:输入你的虚拟机名称。当你在名称Name字段中输入 **Arch Linux** 时,它会分别自动检测类型Type版本Version。 + +![][12] + +你应该增加内存大小以舒适地使用虚拟机。如果只是用于小型测试,你可以继续使用默认设置。 + +我在这个例子中分配了 ~**4 GB 的 RAM**。 + +另外,请确保在硬盘Hard disk选项下选择**现在创建虚拟硬盘create a virtual hard disk**。它应该是默认选项。 + +现在,继续设置虚拟硬盘大小。 + +**第三步**:你可以选择虚拟硬盘的存放位置,并根据你的需求调整大小。最小分配大小 (8 GB) 对于安装系统应该不是问题,但安全起见,你可能得分配至少 10 到 15 GB。 + +![][13] + +接下来,你需要将硬盘硬盘文件类型选择为 **VDI (VirtualBox 磁盘镜像Disk Image)** ,将存储选择为 **动态分配Dynamically assigned**,如上图所示。 + +VDI 是虚拟硬盘最常见的硬盘类型。 + +当你为硬盘存储选择 **动态分配** 选项时,这意味着存储空间将根据使用情况进行使用。换言之,当创建虚拟机后,并不会立即将这 15 GB 的空间从你的磁盘中锁定。 + +现在,你所要做的就是点击 **创建Create** 来添加虚拟机。 + +#### 第二部分 添加 ISO 文件以开始安装 Arch Linux + +![][14] + +当虚拟机在左侧列表中出现后,你可以查看其配置并在 **存储Storage** 选项下选择 ISO 文件作为磁盘驱动。 + +你也可以单独前往虚拟机设置以探索更多内容并选择 ISO 文件。 + +![][15] + +为此,你需要导航至虚拟机设置的 **ruby>存储Storage** 页签。 + +![][16] + +在这里,你必须单击 控制器Controller 下的 **没有盘片Empty**,然后继续选择 Arch Linux ISO 文件作为磁盘文件(如上图所示)。 + +![][17] + +完成选择后,点击 **OK** 以保存设置的变更。 + +将 ISO 设置为要引导的磁盘时,虚拟机设置应如下所示: + +![][18] + +现在,点击 **启动Start** 启动虚拟机并开始安装。 + +#### 第三部分 使用引导式安装程序安装 Arch Linux + +使用 [介绍一个引导式安装程序][19] 的方法使安装 Arch Linux 变得更容易,也就是说,它为你提供了设置成熟的 Arch Linux 系统所需的所有选项。 + +因此,在引导式安装程序的帮助下,你不必单独安装桌面环境和其他基本软件包。你所要做的就是按照屏幕上的说明选择适合你的选项。 + +在本文中,我们将重点介绍引导式安装程序。如果你想自己做,你应该遵循我们的 [Arch 安装指南][2]。 + +继续安装流程,当你启动虚拟机时,将看到以下屏幕: + +![][20] + +第一个选项是理想的处理方式。如果你有特定的要求,可以选择其他选项来启动 Arch Linux。 + +现在,你应该正在查看一个终端窗口。以下是如何开始: + +**第一步**:输入 `archinstall` 以使用引导式安装程序启动安装。 + +![][21] + +**第二步**:根据你的要求选择键盘布局,美式布局应该是最常见的选择。简单地输入一个数字即可进行选择,如下图所示(例如,26): + +![][22] + +**第三步**:接下来,你需要选择一个区域来下载包。 + +![][23] + +选择首选地区而不是“全球“Worldwide””。这至关重要,因为如果你选择 **全球** 作为你的地区,它会下载许多不必要的包。 + +**第四步**:选择区域后,它会要求你选择驱动器进行安装。在这个例子中,我们已经创建了一个大约 15 GB 的虚拟驱动器,显示为 **/dev/sda**。 + +类似的,根据大小检查你创建的驱动器,然后选择该磁盘继续。在这里,我输入 `1` 作为输入;你的可能会有所不同。 + +![][24] + +**第五步**:接下来,你将被询问以下内容: + + - **选择文件系统类型** + - **加密密码** (可选的) + - **主机名** + - **创建 root 密码** (可选的) + - **创建超级用户** + - **选择一个预编程的配置文件** + + + +![][25] + +在我的测试中,我选择了 BTRFS 作为文件系统,没有设置任何磁盘加密密码。 + +主机名可随心所欲的设置,但我建议保持简短。 + +你可以选择创建一个 root 密码,即使不这么做也应该没什么问题。不过,你需要创建一个具有 Sudo 权限的超级用户。 + +我使用 **admin/pass** 作为用户名和密码。不过,如果你不想让其他人访问你计算机上的虚拟机,则不应使用易于猜测的密码。 + +然后,你将看到一个选择配置文件的选项。在这种情况下,我们需要一个成熟的 Arch Linux 桌面。因此,我们通过输入 `0` 来选择 **桌面desktop**。 + +**第六步**:接下来,你将被要求选择桌面环境。我决定使用 KDE。你可以选择任何你喜欢的。 + +![][26] + +**第七步**:最后,你将被要求选择显卡驱动程序。由于我们是在 VirtualBox 上安装的 Arch Linux,你可以选择选项 4:**VMware/VirtualBox**,如下图所示: + +![][27] + +你可能还会被要求输入“是(y)或否(no)”选择 pipewire 而不是 PulseAudio 作为音频服务。选任何一个都应该都能达到目的。 + +**第八步**:接下来是重要的一步。在这里,如果你需要内核的 LTS 版本,你可以选择使用 **linux-lts**,或者继续使用默认值。 + +![][28] + +安装程序会提示你输入想安装的软件包。在这里,我们没有任何特殊要求,因此我们将其留空并按回车键跳过。 + +**第九步**:你将被要求选择所需的网络适配器以启用互联网访问。你必须选择以下选项: + +**使用网络管理器来控制和管理你的互联网连接Use network manager to control and manage your internet connection** + +![][29] + +**第十步**:下一步需要定义时区。选择适用于你的时区,或继续使用默认选项。 + +**第十一步**:完成后,它将显示你选择的大部分选项以供确认。按 **回车** 继续。 + +![][30] + +**第十二步**:安装完成需要花费几分钟时间,这取决于你的互联网连接速度。 + +安装完成后,它会要求你**chroot 进入新创建的安装以进行安装后配置**,但我们不需要。因此输入 `N` 以完成安装。 + +**第十三步**:最后,你应该会再次看到终端窗口。输入: + +``` +shutdown now +``` + +这将安全地退出安装并关闭虚拟机。 + +一切就绪!在启动安装了 Arch 的虚拟机之前,你还需要做一件事 —— **移除选择作为光驱的 ISO 磁盘**。与添加启动 ISO 的方式类似,你可以前往虚拟机设置并将其删除,如下所示: + +![][31] + +到此为止你已在 VirtualBox 上安装了 Arch Linux。 + +你所要做的就是启动虚拟机,在我的例子中它是这样的: + +![virtualbox arch][32] + +尽管浏览这些选项需要一些时间,但 Arch Linux 上新的引导式安装程序可以节省大量时间使必填项配置正确。 + +![][33] + +同样的步骤也适用于在你的计算机上安装 Arch Linux。你需要用 Arch Linux ISO 文件 [使用 Etcher 制作单独的可启动 USB 盘][34]。 + +### 总结 + +[Arch Linux 成为一种流行的选择][1] 有多种原因。但是,如果这是你第一次安装,或者你想对其进行测试,那么虚拟机是在不打乱主机的情况下体验它的最佳方式。 + +我希望这可以帮助你在 VirtualBox 上安装 Arch Linux。在下面的评论中让我知道你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-arch-linux-virtualbox/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/why-arch-linux/ +[2]: https://itsfoss.com/install-arch-linux/ +[3]: https://itsfoss.com/debian-vs-ubuntu/ +[4]: https://itsfoss.com/install-virtualbox-ubuntu/ +[5]: https://www.virtualbox.org/wiki/Downloads +[6]: https://archlinux.org/download/ +[7]: https://itsfoss.com/best-torrent-ubuntu/ +[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archlinux-downloads.png?resize=800%2C419&ssl=1 +[9]: https://itsfoss.com/free-up-space-ubuntu-linux/ +[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-new.png?resize=800%2C562&ssl=1 +[11]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-expert-mode.png?resize=707%2C438&ssl=1 +[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-create.png?resize=800%2C536&ssl=1 +[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-disk.png?resize=800%2C528&ssl=1 +[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/choose-disk-virtualbox-arch.png?resize=800%2C440&ssl=1 +[15]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-settings-option.png?resize=800%2C551&ssl=1 +[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-choose-iso.png?resize=800%2C314&ssl=1 +[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-arch-iso-select.png?resize=800%2C348&ssl=1 +[18]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-set-start.png?resize=800%2C548&ssl=1 +[19]: https://news.itsfoss.com/arch-linux-easy-install/ +[20]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-archlinux-boot.png?resize=800%2C593&ssl=1 +[21]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/vb-archinstall-guided.png?resize=800%2C400&ssl=1 +[22]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/vb-archinstall-kb-layout.png?resize=800%2C694&ssl=1 +[23]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-region.png?resize=800%2C664&ssl=1 +[24]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-selectdisk.png?resize=800%2C199&ssl=1 +[25]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-desktop-configure.png?resize=800%2C497&ssl=1 +[26]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-virtualbox-desktop-environment.png?resize=800%2C415&ssl=1 +[27]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-environment.png?resize=419%2C173&ssl=1 +[28]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-linux-kernel.png?resize=800%2C692&ssl=1 +[29]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-arch-network-manager.png?resize=800%2C151&ssl=1 +[30]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/archinstall-confirmation.png?resize=800%2C697&ssl=1 +[31]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/iso-remove-archinstall.png?resize=800%2C286&ssl=1 +[32]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/10/virtualbox-arch.png?resize=800%2C635&ssl=1 +[33]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/10/kde-arch-virtualbox.png?resize=800%2C453&ssl=1 +[34]: https://itsfoss.com/install-etcher-linux/ From c6d6e2290c28c82435ec738f9ebfcb26893878d6 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 13 Jul 2022 00:50:46 +0800 Subject: [PATCH 0358/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20211104=20Beginner-s=20Guide=20to=20Installing=20Arch?= =?UTF-8?q?=20Linux=20on=20VirtualBox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Beginner-s Guide to Installing Arch Linux on VirtualBox.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md b/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md index 3c272b3dc4..3548186695 100644 --- a/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md +++ b/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md @@ -54,7 +54,7 @@ VirtualBox 安装 Arch Linux 的新手操作指南 你应该增加内存大小以舒适地使用虚拟机。如果只是用于小型测试,你可以继续使用默认设置。 -我在这个例子中分配了 ~**4 GB 的 RAM**。 +我在这个例子中分配了 **4 GB 左右的内存**。 另外,请确保在硬盘Hard disk选项下选择**现在创建虚拟硬盘create a virtual hard disk**。它应该是默认选项。 @@ -82,7 +82,7 @@ VDI 是虚拟硬盘最常见的硬盘类型。 ![][15] -为此,你需要导航至虚拟机设置的 **ruby>存储Storage** 页签。 +为此,你需要导航至虚拟机设置的 **存储Storage** 页签。 ![][16] From 065464738ce69fd313f74e3a79c4f1655f3026ea Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Wed, 13 Jul 2022 07:58:50 +0800 Subject: [PATCH 0359/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20210809=20What=20is=20Firefox=20Multi-Account=20Contain?= =?UTF-8?q?ers-=20Why=20and=20How=20to=20Use=20It?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Firefox Multi-Account Containers- Why and How to Use It.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md b/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md index 37de21cd70..38c4bdf10b 100644 --- a/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md +++ b/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/firefox-containers/" [#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "hanszhao80" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -108,7 +108,7 @@ via: https://itsfoss.com/firefox-containers/ 作者:[Hunter Wittenborn][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/) 荣誉推出 From 08bc7e58c54de8d3bb0b38d9313e8f7174ff64d9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 13 Jul 2022 08:23:54 +0800 Subject: [PATCH 0360/3123] translated --- .../20220709 Monitoring tiny web services.md | 143 ------------------ .../20220709 Monitoring tiny web services.md | 143 ++++++++++++++++++ 2 files changed, 143 insertions(+), 143 deletions(-) delete mode 100644 sources/tech/20220709 Monitoring tiny web services.md create mode 100644 translated/tech/20220709 Monitoring tiny web services.md diff --git a/sources/tech/20220709 Monitoring tiny web services.md b/sources/tech/20220709 Monitoring tiny web services.md deleted file mode 100644 index 707775adde..0000000000 --- a/sources/tech/20220709 Monitoring tiny web services.md +++ /dev/null @@ -1,143 +0,0 @@ -[#]: subject: "Monitoring tiny web services" -[#]: via: "https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/" -[#]: author: "Julia Evans https://jvns.ca/" -[#]: collector: "lujun9972" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Monitoring tiny web services -====== - -Hello! I’ve started to run a few more servers recently ([nginx playground][1], [mess with dns][2], [dns lookup][3]), so I’ve been thinking about monitoring. - -It wasn’t initially totally obvious to me how to monitor these websites, so I wanted to quickly write up what how I did it. - -I’m not going to talk about how to monitor Big Serious Mission Critical websites at all, only tiny unimportant websites. - -### goal: spend approximately 0 time on operations - -I want the sites to mostly work, but I also want to spend approximately 0% of my time on the ongoing operations. - -I was initially very wary of running servers at all because at my last job I was on a 24⁄7 oncall rotation for some critical services, and in my mind “being responsible for servers” meant “get woken up at 2am to fix the servers” and “have lots of complicated dashboards”. - -So for a while I only made static websites so that I wouldn’t have to think about servers. - -But eventually I realized that any server I was going to write was going to be very low stakes, if they occasionally go down for 2 hours it’s no big deal, and I could just set up some very simple monitoring to help keep them running. - -### not having monitoring sucks - -At first I didn’t set up any monitoring for my servers at all. This had the extremely predictable outcome of – sometimes the site broke, and I didn’t find out about it until somebody told me! - -### step 1: an uptime checker - -The first step was to set up an uptime checker. There are tons of these out there, the ones I’m using right now are [updown.io][4] and [uptime robot][5]. I like updown’s user interface and [pricing][6] structure more (it’s per request instead of a monthly fee), but uptime robot has a more generous free tier. - -These - - 1. check that the site is up - 2. if it goes down, it emails me - - - -I find that email notifications are a good level for me, I’ll find out pretty quickly if the site goes down but it doesn’t wake me up or anything. - -### step 2: an end-to-end healthcheck - -Next, let’s talk about what “check that the site is up” actually means. - -At first I just made one of my healthcheck endpoints a function that returned `200 OK` no matter what. - -This is kind of useful – it told me that the server was on! - -But unsurprisingly I ran into problems because it wasn’t checking that the API was actually _working_ – sometimes the healthcheck succeeded even though the rest of the service had actually gotten into a bad state. - -So I updated it to actually make a real API request and make sure it succeeded. - -All of my services do very few things (the nginx playground has just 1 endpoint), so it’s pretty easy to set up a healthcheck that actually runs through most of the actions the service is supposed to do. - -Here’s what the end-to-end healthcheck handler for the nginx playground looks like. It’s very basic: it just makes another POST request (to itself) and checks if that request succeeds or fails. - -``` - - func healthHandler(w http.ResponseWriter, r *http.Request) { - // make a request to localhost:8080 with `healthcheckJSON` as the body - // if it works, return 200 - // if it doesn't, return 500 - client := http.Client{} - resp, err := client.Post("http://localhost:8080/", "application/json", strings.NewReader(healthcheckJSON)) - if err != nil { - log.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - if resp.StatusCode != http.StatusOK { - log.Println(resp.StatusCode) - w.WriteHeader(http.StatusInternalServerError) - return - } - w.WriteHeader(http.StatusOK) - } - -``` - -### healthcheck frequency: hourly - -Right now I’m running most of my healthchecks every hour, and some every 30 minutes. - -I run them hourly because updown.io’s pricing is per healthcheck, I’m monitoring 18 different URLs, and I wanted to keep my healthcheck budget pretty minimal at $5/year. - -Taking an hour to find out that one of these websites has gone down seems ok to me – if there is a problem there’s no guarantee I’ll get to fixing it all that quickly anyway. - -If it were free to run them more often I’d probably run them every 5-10 minutes instead. - -### step 3: automatically restart if the healthcheck fails - -Some of my websites are on fly.io, and fly has a pretty standard feature where I can configure a HTTP healthcheck for a service and restart the service if the healthcheck starts failing. - -“Restart a lot” is a very useful strategy to paper over bugs that I haven’t gotten around to fixing yet – for a while the nginx playground had a process leak where `nginx` processes weren’t getting terminated, so the server kept running out of RAM. - -With the healthcheck, the result of this was that every day or so, this would happen: - - * the server ran out of RAM - * the healthcheck started failing - * it get restarted - * everything was fine again - * repeat the whole saga again some number of hours later - - - -Eventually I got around to actually fixing the process leak, but it was nice to have a workaround in place that could keep things running while I was procrastinating fixing the bug. - -These healthchecks to decide whether to restart the service run more often: every 5 minutes or so. - -### this is not the best way to monitor Big Services - -This is probably obvious and I said this already at the beginning, but “write one HTTP healthcheck” is not the best approach for monitoring a large complex service. But I won’t go into that because that’s not what this post is about. - -### it’s been working well so far! - -I originally wrote this post 3 months ago in April, but I waited until now to publish it to make sure that the whole setup was working. - -It’s made a pretty big difference – before I was having some very silly downtime problems, and now for the last few months the sites have been up 99.95% of the time! - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/ - -作者:[Julia Evans][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://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://nginx-playground.wizardzines.com -[2]: https://messwithdns.net -[3]: https://dns-lookup.jvns.ca -[4]: https://updown.io/ -[5]: https://uptimerobot.com/ -[6]: https://updown.io/#pricing diff --git a/translated/tech/20220709 Monitoring tiny web services.md b/translated/tech/20220709 Monitoring tiny web services.md new file mode 100644 index 0000000000..36c3be3ef7 --- /dev/null +++ b/translated/tech/20220709 Monitoring tiny web services.md @@ -0,0 +1,143 @@ +[#]: subject: "Monitoring tiny web services" +[#]: via: "https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +监测微型网络服务 +====== + +你好! 我最近又开始运行一些服务器([nginx playground][1]、[mess with dns][2]、[dns lookup][3]),所以我一直在考虑监控问题。 + +最初我并不完全清楚如何监控这些网站,所以我想快速写下我是如何做到的。 + +我根本不打算谈如何监控大型严肃的关键任务网站,只谈微型的不重要的网站。 + +### 目标:在操作上几乎不花时间 + +我希望网站大部分时间都能正常工作,但我也希望在持续的运营上几乎不花时间。 + +我最初对运行服务器非常警惕,因为在我的上一份工作中,我是 24/7 轮流值班,负责一些关键的服务,在我的印象中,“负责服务器”意味着“在凌晨 2 点被叫起来修理服务器”和“有很多复杂的仪表盘”。 + +所以有一段时间我只做静态网站,这样我就不用考虑服务器的问题。 + +但最终我意识到,我所要写的任何服务器的风险都很低,如果它们偶尔宕机 2 小时也没什么大不了的,我只需设置一些非常简单的监控来帮助它们保持运行。 + +### 没有监控很糟糕 + +起初,我根本没有为我的服务器设置任何监控。这样做的结果是非常可预见的:有时网站坏了,而我却没有发现,直到有人告诉我! + +### 步骤 1:uptime 检查器 + +第一步是建立一个 uptime 检查器。外面有很多这样的东西,我现在使用的是 [updown.io][4] 和 [uptime robot][5]。我更喜欢 updown 的用户界面和[定价][6]结构(它是按请求而不是按月收费),但u ptime robot 有一个更慷慨的免费套餐。 + +它们会: + + 1. 检查网站是否正常 + 2. 如果出现故障,它会给我发电子邮件 + + + +我发现电子邮件通知对我来说是一个很好的级别,如果网站宕机,我会很快发现,但它不会唤醒我或任何东西。 + +### 步骤 2:端到端的健康检查 + +接下来,让我们谈谈“检查网站是否正常”到底是什么意思。 + +起初,我只是把我的健康检查端点之一变成一个函数,无论如何都会返回 `200 OK`。 + +这倒是挺有用的 – 它告诉我服务器是启动着的! + +但不出所料,我遇到了问题,因为它没有检查 API 是否真的在_工作_ – 有时健康检查成功了,尽管服务的其他部分实际上已经进入了一个糟糕的状态。 + +所以我更新了它,让它真正地发出 API 请求,并确保它成功了。 + +我所有的服务都只做了很少的事情(nginx playground 只有一个端点),所以设置一个健康检查是非常容易的,它实际上贯穿了服务应该做的大部分动作。 + +下面是 nginx playground 的端到端健康检查处理程序的样子。它非常基本:它只是发出一个 POST 请求(给自己),并检查该请求是成功还是失败。 + +``` + + func healthHandler(w http.ResponseWriter, r *http.Request) { + // make a request to localhost:8080 with `healthcheckJSON` as the body + // if it works, return 200 + // if it doesn't, return 500 + client := http.Client{} + resp, err := client.Post("http://localhost:8080/", "application/json", strings.NewReader(healthcheckJSON)) + if err != nil { + log.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + if resp.StatusCode != http.StatusOK { + log.Println(resp.StatusCode) + w.WriteHeader(http.StatusInternalServerError) + return + } + w.WriteHeader(http.StatusOK) + } + +``` + +### 健康检查频率:每小时一次 + +现在,我大部分健康检查每小时运行一次,有些每 30 分钟运行一次。 + +我每小时运行一次,因为 updown.io 的定价是按健康检查次数计算的,我正在监控 18 个不同的 URL,而且我想把我的健康检查预算保持在 5 美元/年的最低水平。 + +花一个小时来发现这些网站中的一个出现故障,对我来说是可以的 – 如果有问题,我也不能保证能很快修复它。 + +如果可以更频繁地运行它们,我可能会每 5-10 分钟运行一次。 + +### 步骤 3:第三步:如果健康检查失败,自动重新启动 + +我的一些网站在 fly.io 上,fly 有一个相当标准的功能,我可以为一个服务配置一个 HTTP 健康检查,如果健康检查失败,就重新启动服务。 + +“经常重启”是一个非常有用的策略来弥补我尚未修复的 bug,有一段时间,nginx playground 有一个进程泄漏,`nginx` 进程没有被终止,所以服务器的内存一直在耗尽。 + +通过健康检查,其结果是,每隔一天左右就会发生这样的情况: + + * 服务器的内存用完了 + * 健康检查开始失败 + * 它被重新启动 + * 一切又正常了 + * 几个小时后再次重复整个传奇 + + + +最终,我开始实际修复进程泄漏,但很高兴有一个解决方法可以在我拖延修复 bug 时保持运行。 + +这些用于决定是否重新启动服务的运行状况检查更频繁地运行:每 5 分钟左右。 + +### 这不是监控大型服务的最佳方式 + +这可能很明显,我在一开始就已经说过了,但是“编写一个 HTTP 健康检查”并不是监控大型复杂服务的最佳方法。 但我不会深入讨论,因为这不是这篇文章的主题。 + +### 到目前为止一直运行良好! + +我最初在 3 个月前的四月写了这篇文章,但我一直等到现在才发布它以确保整个设置正常工作。 + +这带来了很大的不同 – 在我遇到一些非常愚蠢的停机问题之前,现在在过去的几个月里,网站的运行时间达到了 99.95%! + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://nginx-playground.wizardzines.com +[2]: https://messwithdns.net +[3]: https://dns-lookup.jvns.ca +[4]: https://updown.io/ +[5]: https://uptimerobot.com/ +[6]: https://updown.io/#pricing From 0d69f0066554d4c14461deb9eef9cd92120da0fe Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 13 Jul 2022 08:29:47 +0800 Subject: [PATCH 0361/3123] translating --- ...220711 Manual Renewal of SSL Certificates- A Simple Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md b/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md index cc623b7906..0bd9f124a5 100644 --- a/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md +++ b/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/" [#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 355a3b8fac2ac1d32461d2f2f32e17270e2c7273 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 13 Jul 2022 10:47:12 +0800 Subject: [PATCH 0362/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lkxed 恭喜,达成 100 篇里程碑! https://linux.cn/article-14822-1.html --- ...nd- Internxt Send is Ready as a Replacement.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) rename {translated/news => published}/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md (83%) diff --git a/translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md b/published/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md similarity index 83% rename from translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md rename to published/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md index 54332ac04d..c1bc131418 100644 --- a/translated/news/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md +++ b/published/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md @@ -3,17 +3,18 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14822-1.html" 怀念 Firefox Send 吗?不妨试试 Internxt Send 吧 ====== -Internxt 发布了一个新产品,它可以让你快速地将加密文件发送给任何人,同时保持你的隐私。嗯,我们只能希望它不会像 Firefox Send 那样关闭吧…… + +> Internxt 发布了一个新产品,它可以让你快速地将加密文件发送给任何人,同时保持你的隐私。嗯,我们只能希望它不会像 Firefox Send 那样关闭吧…… ![Internxt][1] -[Internxt][2] 是一个相当新的开源加密云服务,旨在取代大型科技公司的产品。例如,你可以把它作为 Google Photos 和 Drive 的替代品。 +[Internxt][2] 是一个相当新的开源加密云服务,旨在取代大型科技公司的产品。例如,你可以把它作为谷歌的相册和云端硬盘的替代品。 它免费提供 10 GB 的容量。所以,如果感兴趣的话,你可以注册个账号试一试。 @@ -29,7 +30,7 @@ Internxt 发布了一个新产品,它可以让你快速地将加密文件发 我在 GitHub 上找不到 Internxt Send 的存储库,但我已经要求他们澄清了。 -*LCTT 译注:虽然 Internxt 是在 GitHub 上开源的,但是 GitHub 上没有 Internxt Send 这个产品的存储库,产品的介绍里也没有声称它是开源的。* +(LCTT 译注:虽然 Internxt 是在 GitHub 上开源的,但是 GitHub 上没有 Internxt Send 这个产品的存储库,产品的介绍里也没有声称它是开源的。) 正如你所期望的那样,你无需创建帐户即可将文件上传到 Internxt Send。 @@ -54,7 +55,7 @@ via: https://news.itsfoss.com/internxt-send/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 420d69070518d771d4b3b352d170baabf9a90471 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 13 Jul 2022 11:18:11 +0800 Subject: [PATCH 0363/3123] RP @MjSeven https://linux.cn/article-14823-1.html --- .../20220707 Check disk usage in Linux.md | 69 ++++++++----------- 1 file changed, 27 insertions(+), 42 deletions(-) rename {translated/tech => published}/20220707 Check disk usage in Linux.md (63%) diff --git a/translated/tech/20220707 Check disk usage in Linux.md b/published/20220707 Check disk usage in Linux.md similarity index 63% rename from translated/tech/20220707 Check disk usage in Linux.md rename to published/20220707 Check disk usage in Linux.md index 5198983600..c4448c158c 100644 --- a/translated/tech/20220707 Check disk usage in Linux.md +++ b/published/20220707 Check disk usage in Linux.md @@ -3,31 +3,32 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14823-1.html" 检查 Linux 磁盘使用情况 ====== -du 和 ncdu 两个命令提供了相同信息的两种不同视图,便于我们跟踪存储在计算机上的内容。 -![Data stack in blue][1] +> du 和 ncdu 两个命令提供了相同信息的两种不同视图,便于我们跟踪存储在计算机上的内容。 + +![](https://img.linux.net.cn/data/attachment/album/202207/13/111729faleyal2gmappykc.jpg) 无论你有多少存储空间,了解文件占用了多少磁盘空间都是一个重要的考虑事项。我的笔记本有一个相对较小的 250GB NVME 驱动器,大多数时候都没什么问题,但几年前我开始探索 Linux 上的游戏,情况变得有所不同,安装 Steam 和其他游戏使存储管理更加重要。 ### du 命令 -检查磁盘驱动器上剩余存储空间最简单的方法是 [du 命令][2]。它会估计文件空间使用情况,像其他所有 Linux 工具一样,`du` 非常强大,但知道如何根据你的特定需求使用它会很有帮助。我总是查阅 man 页面来获取实用程序。du 有几个选项,可以为你提供文件存储的最佳快照,以及它们在系统上消耗多少空间。 +检查磁盘驱动器上剩余存储空间最简单的方法是 [du 命令][2]。它会估计文件空间使用情况,像其他所有 Linux 工具一样,`du` 非常强大,但学会如何根据你的特定需求使用它会很有帮助。我总是查阅手册页来掌握实用程序的用法。`du` 有几个选项,可以为你提供文件存储的最佳快照,以及它们在系统上消耗多少空间。 `du` 命令有很多选项,以下是一些常见的: -* -a - 包括文件夹和文件在内的存储信息 -* --apparent-size - 打印自身大小而不是占用磁盘量 -* -h - 人类可读的格式 -* -b - 字节 -* -c -总计 -* -k - 块大小 -* -m - 以兆字节为单位的大小 +* `-a` - 包括文件夹和文件在内的存储信息 +* `--apparent-size` - 打印自身大小而不是占用磁盘量 +* `-h` - 人类可读的格式 +* `-b` - 以字节为单位 +* `-c` - 总计 +* `-k` - 以块为单位 +* `-m` - 以兆字节为单位的大小 务必查看 `du` 手册页获取完整帮助列表。 @@ -41,15 +42,15 @@ du 和 ncdu 两个命令提供了相同信息的两种不同视图,便于我 $ du -a ~/Downloads 4923    ./UNIX_Driver_5-0/UNIX Driver 50 4923    ./UNIX_Driver_5-0 -20     ./epel-release-latest-9.noarch.rpm -12    ./rpmfusion-free-release-9.noarch.rpm +20     ./epel-release-latest-9.noarch.rpm +12     ./rpmfusion-free-release-9.noarch.rpm 2256    ./PZO9297 000 Cover.pdf -8    ./pc.md +8     ./pc.md 2644    ./geckodriver-v0.31.0-linux64.tar.gz 466468 ``` -最左边的数字是以字节为单位的文件大小。我想要一些对我更有帮助的东西,所以我将人类可读格式的选项添加到命令中,结果是 4.8G(千兆字节),这对我来说是一种更有用的数字格式。(to 校正:这个 4.8G 不知道从何而来) +最左边的数字是以字节为单位的文件大小。我想要一些对我更有帮助的东西,所以我将人类可读格式的选项添加到命令中,结果是 456M(兆字节),这对我来说是一种更有用的数字格式。 ``` $ du -ah ~/Downloads @@ -65,21 +66,15 @@ $ du -ah ~/Downloads 与大多数 Linux 命令一样,你可以组合选项,要以人类可读的格式查看 `Downloads` 目录,使用 `du -ah ~/Downloads` 命令。 -**[[ 另请阅读:检查可用磁盘空间的 5 个 Linux 命令 ]][3]** - #### 总和 -`-c` 选项在最后一行提供了磁盘使用总和。我可以使用 `du -ch /home/don` 来显示主目录中的每个文件和目录。这里有很多信息,我只想知道最后一行的信息,所以我将磁盘使用命令通过管道传输给 `tail`。命令是 `du -ch /home/don | tail`。(to 校正:这条命令似乎没卵用,在 Ubuntu 试验过) +`-c` 选项在最后一行提供了磁盘使用总和。我可以使用 `du -ch /home/don` 来显示主目录中的每个文件和目录。这里有很多信息,我只想知道最后一行的信息,所以我将 `du` 命令通过管道传输给 `tail` 来显示最后几行。命令是 `du -ch /home/don | tail`。(LCTT 校注:可以使用 `tail -1` 来仅显示最后一行汇总行。) ![将 du 命令输出通过管道传输到 tail][4] -Image by: - -(Don Watkins, CC BY-SA 4.0) - ### ncdu 命令 -对存储在驱动器上内容感兴趣的 Linux 用户,另一个选择是 [ncdu 命令][5],它代表 *NCurses 磁盘使用情况*。基于你的 Linux 发行版,你可能需要下载并安装它。 +对存储在驱动器上内容感兴趣的 Linux 用户,另一个选择是 [ncdu 命令][5],它代表 “NCurses 磁盘使用情况”。基于你的 Linux 发行版,你可能需要下载并安装它。 在 Linux Mint、Elementary、Pop_OS! 或其它基于 Debian 的发行版上: @@ -99,37 +94,27 @@ $ sudo dnf install ncdu $ sudo pacman -S ncdu ``` -安装后,你可以使用 ncdu 来分析你的文件系统。以下是在我的主目录中发出 `ncdu` 后的示例输出。`ncdu` 的 man 页面指出“ncdu(NCurses Disk Usage)是众所周知的 `du` 基于 curses 的版本,它提供了一种快速查看哪些目录正在使用磁盘空间的方法。” +安装后,你可以使用 `ncdu` 来分析你的文件系统。以下是在我的主目录中发出 `ncdu` 后的示例输出。`ncdu` 的手册页指出 “ncdu(NCurses Disk Usage)是众所周知的 `du` 基于 curses 的版本,它提供了一种快速查看哪些目录正在使用磁盘空间的方法。” ![du 命令输出][6] -Image by: - -(Don Watkins, CC BY-SA 4.0) - -我可以使用方向键上下导航,按下 **Enter** 键进入目录。有趣的是,`du` 报告我的主目录中的总磁盘使用量为 12GB,而 `ncdu` 显示为 11GB。你可以在 `ncdu` 手册页中找到更多信息。 +我可以使用方向键上下导航,按下回车键进入目录。有趣的是,`du` 报告我的主目录中的总磁盘使用量为 12GB,而 `ncdu` 显示为 11GB。你可以在 `ncdu` 手册页中找到更多信息。 你可以将 `ncdu` 指向某个目录来探索特定目录。例如,`ncdu /home/don/Downloads`。 ![ncdu 命令输出][7] -Image by: - -(Don Watkins, CC BY-SA 4.0) - -按 **?** 键显示帮助菜单。 +按 `?` 键显示帮助菜单。 ![ncdu 帮助][8] -Image by: - -(Don Watkins, CC BY-SA 4.0) - ### 总结 `du` 和 `ncdu` 两个命令提供了相同信息的两种不同视图,便于我们跟踪存储在计算机上的内容。 -如果你不习惯使用终端,或者只是在寻找此类信息的另一种试图,查看 [GNOME 磁盘使用分析器][9]。如果你的系统上还没有它,你可以轻松安装和使用它。检查你的发行版是否有 `baobab`,如果你想进行尝试,去安装它。 +如果你不习惯使用终端,或者想寻找此类信息的另一种查看方式,可以看看 [GNOME 磁盘使用分析器][9]。如果你的系统上还没有它,你可以轻松安装和使用它。检查你的发行版是否有 baobab 开发的这个软件,如果你想试试,那就去安装它吧。 + +(文内图片来自于 Don Watkins, CC BY-SA 4.0) -------------------------------------------------------------------------------- @@ -138,7 +123,7 @@ via: https://opensource.com/article/22/7/check-disk-usage-linux 作者:[Don Watkins][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7a617a49ee0ad301ebacd13f86b35e8566532fb7 Mon Sep 17 00:00:00 2001 From: Peaksol <1244050218@qq.com> Date: Wed, 13 Jul 2022 13:53:40 +0800 Subject: [PATCH 0364/3123] =?UTF-8?q?Update=2020220708=20Meet=20Free=20Sof?= =?UTF-8?q?tware=20Foundation=20Executive=20Director=20Zo=C3=AB=20Kooyman.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t Free Software Foundation Executive Director Zoë Kooyman.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md index b2ff2baf47..a45e506e3d 100644 --- a/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md +++ b/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md @@ -66,7 +66,7 @@ via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman 作者:[Seth Kenlon][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Peaksol](https://github.com/TravinDreek) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 11b564efd4e8f5056ceb7d3fa449594368bd1773 Mon Sep 17 00:00:00 2001 From: ali Date: Wed, 13 Jul 2022 16:06:47 +0800 Subject: [PATCH 0365/3123] translated-raspberry-pi-2022-0115 --- ...e a Raspberry Pi to power your business.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 translated/talk/20220115 Why use a Raspberry Pi to power your business.md diff --git a/translated/talk/20220115 Why use a Raspberry Pi to power your business.md b/translated/talk/20220115 Why use a Raspberry Pi to power your business.md new file mode 100644 index 0000000000..c1142469eb --- /dev/null +++ b/translated/talk/20220115 Why use a Raspberry Pi to power your business.md @@ -0,0 +1,84 @@ +[#]: subject: "Why use a Raspberry Pi to power your business" +[#]: via: "https://opensource.com/article/22/1/raspberry-pi-business" +[#]: author: "Giuseppe Cassibba https://opensource.com/users/peppe8o" +[#]: collector: "lujun9972" +[#]: translator: " void-mori" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为何要使用树莓派为你的业务提供动力 +====== +为何小小的单板机是智能工作以及小型办公室的未来 +![A chair in a field.][1] + +随着疫情的大流行,我们的工作方式也正在发生着改变。工作的分散化正在成为所有公司需要面临的一项重要挑战。 + +### 智能办公室 + +即使所有的工厂都能和智能工作搭上一点边,哪怕仅仅是通过VPN来对员工的笔记本电脑进行远程控制,添加evolution而带来一些基本办公服务,尽可能的拉近人与人之间的距离,这些都能够极大降低数据中心的负载,并且提高人们的工作体验。这个方案还有一个额外的影响就是从信息和通信技术上来说消除了许多单点故障。 + +和在公司外部有成百上千的工作场地不同,更像是在世界范围内有着成百上千的小型办公室/分支,这就是所谓的“智能办公室”。 + +这种表述可能会让许多的ICT专家感到恐慌,因为这种文化使得一台大机器(即服务器)关联了每个办公室,即使摊开计算资源的优势非常明显。 + +### 一个不同的角度 + +如果你能够通过一个50美金的小开发板在大服务器上交付服务会怎么样?如果这个小板子只需要一张SD卡和一个普通的USB电源支持,那又会怎么样呢?这就是[Raspberry Pi][2]是最灵活的解决方案的原因所在。 + +树莓派开发板是尺寸非常小的运行Linux的计算机。它有一个由树莓派基金会提供和维护的操作系统—Raspberry Pi OS。它基于Debian,和最知名的Linux发行版共享许多软件包。此外,许多树莓派的开发板能够完美运行最知名的Ubuntu Server,它涵盖了ARM处理器,给予了对低功耗处理器的支持。 + +**[ 阅读下一篇: [在enterprise IT中使用树莓派的7种方式][3] ]** + +但树莓派开发板对小公司来说也是一个很好的机会,以能够承担得起的代价获得大量的(开源)服务。这种情况下,你必须考虑数据丢失的风险,因为你把所有的服务运行在一个小的,消费级的硬件上。不过设置正确的备份/还原程序能够降低这些风险。 + +### 你能从树莓派开发板上提供什么服务? + +大多数服务通常由更昂贵的服务器提供。“大多数”属性取决于一些限制: + + * **ARM处理器:** 一些软件包只支持X86/X64处理器。这是最难克服的挑战之一。另一方面,ARM处理器的市场份额不断增长,使得程序员让他们的软件有兼容ARM处理器的版本。 + * **内存容量:** 这是一个仅限于在复杂应用以复杂的方式进行复杂的计算的情况下讨论的问题。很多时候,只不过是关于重新访问代码,拆分步骤,并保持简单高效的问题。此外,如果一个服务因为少数几个用户而需要大量的内存/CPU,这大概也意味着此服务没有正常工作。这可能是你消除浪费资源的旧问题的一个机会。 最后,最新的树莓派开发板把内存容量升级到了8GB,是一个很大的提升。 + * **对服务器没有经验的用户:** 这是另一个问题,你可以在存储了系统和运行数据的树莓派上使用micro-SD卡中的基础镜像。 + + + +咱就是说,你能够用树莓派做很多有趣的事情。在[我的博客][4]里,我通过运行各种服务进行了测试—从基本的LAMP服务器到复杂的CRM。从简单到复杂系统,全部都是开源的,例如: + + * 代理服务器(也能够添加广告拦截服务) + * 电子邮件服务器 + * 打印服务器 + * [酒店管理][5] + * 联系人关系管理 + * [私人社交网络][6] + * 私人论坛 + * 私有Git门户网站 + * 网络监控服务器 + * [许多其他有用的服务][7] + + + +对树莓派来说,另一个有趣的机会是在你的远程办公室获得提供高级服务的wifi热点,并且可以从它的以太网端口进行控制。  + +最后,[树莓派也能够运行容器][8],这是一个额外的工具,从这个不可思议的开发板中获得一个可用的服务世界。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/1/raspberry-pi-business + +作者:[Giuseppe Cassibba][a] +选题:[lujun9972][b] +译者:[void-mori](https://github.com/void-mori) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/peppe8o +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BIZ_WorkInPublic_4618517_1110_CS_A.png?itok=RwVrWArk "A chair in a field." +[2]: https://opensource.com/resources/raspberry-pi +[3]: https://enterprisersproject.com/article/2020/11/raspberry-pi-7-enterprise-it-uses +[4]: https://peppe8o.com +[5]: https://opensource.com/article/20/4/qloapps-raspberry-pi +[6]: https://opensource.com/article/20/3/raspberry-pi-open-source-social +[7]: https://peppe8o.com/category/raspberrypi/ +[8]: https://opensource.com/article/20/8/kubernetes-raspberry-pi From 92daf167641028ee72514bc39dbe2f710b8585ca Mon Sep 17 00:00:00 2001 From: ali Date: Wed, 13 Jul 2022 17:30:15 +0800 Subject: [PATCH 0366/3123] delete the raspberry pi from sources --- ...e a Raspberry Pi to power your business.md | 85 ------------------- 1 file changed, 85 deletions(-) delete mode 100644 sources/talk/20220115 Why use a Raspberry Pi to power your business.md diff --git a/sources/talk/20220115 Why use a Raspberry Pi to power your business.md b/sources/talk/20220115 Why use a Raspberry Pi to power your business.md deleted file mode 100644 index 14078e622e..0000000000 --- a/sources/talk/20220115 Why use a Raspberry Pi to power your business.md +++ /dev/null @@ -1,85 +0,0 @@ -[#]: subject: "Why use a Raspberry Pi to power your business" -[#]: via: "https://opensource.com/article/22/1/raspberry-pi-business" -[#]: author: "Giuseppe Cassibba https://opensource.com/users/peppe8o" -[#]: collector: "lujun9972" -[#]: translator: " void-mori" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Why use a Raspberry Pi to power your business -====== -Why small, single-board computers can be the future for smart working -and small offices. -![A chair in a field.][1] - -With the pandemic changing the way we're working, job decentralization is becoming an important challenge for all companies. - -### Smart offices - -Even if every factory approached smart working only as remoting the employee notebook through a VPN, adding evolution brings some basic office services as nearest as possible to people. This could drastically reduce the datacenter's load and improve people's working experience. An additional effect is removing many single-point-of-failures from information and communications technology (ICT) in this scenario. - -Instead of hundreds or thousands of workplaces outside the company, it's like having hundreds or thousands of small offices/branches around the world. It's what one might call **smart offices**. - -This statement may frighten many ICT experts because of the culture, which associates a big machine (server) to each office, even if the advantages of spreading computing resources are clear. - -### A different perspective - -What if you could deliver the services of a big server from a tiny US$ 50 board? What if this tiny board requires only an SD card and an ordinary USB power supply? Here's where the [Raspberry Pi][2] is the most flexible solution. - -Raspberry Pi computer boards are very small form factor computers running Linux. They have an OS delivered and maintained from Raspberry Pi Foundation—the Raspberry Pi OS. Based on Debian, it shares many software packages with the most known Linux distributions. Moreover, many Raspberry Pi boards can flawlessly run the most famous Ubuntu server. They include ARM processors, which grant low energy consumption. - -**[ Read next: [7 ways to use Raspberry Pi in enterprise IT][3] ]** - -But Raspberry Pi computer boards are a great opportunity also for small companies, bringing tons of (open source) services at affordable costs. Here, you have to consider data loss risks, as you have all your services in small consumer-grade hardware. But setting up the right backup/restore procedures can reduce these risks. - -### What services can you provide from a Raspberry Pi board? - -Most services usually get delivered from more expensive servers. The "most" attribute depends on some restrictions: - - * **ARM processor:** Some packages are available only for X86/X64 processors. This is one of the hardest challenges to overcome. On the other hand, the increasing market share for ARM processors keeps programmers having ARM-compatible versions of their software. - * **RAM amount:** This is a problem limited to some complex applications running complex calculations in a sophisticated manner. Many times, it's just a matter of revisiting the code, splitting steps, and keeping it simple and efficient. Moreover, if a service requires a lot of RAM/CPU for a few users, this may also mean that the service is not working correctly, and it could be an opportunity for you to remove old problems that are wasting resources. Finally, the latest Raspberry Pi computer boards upgraded the RAM amount up to 8GB, which is a lot. - * **Users who are inexperienced with servers:** This is another problem you can approach with base images inside the micro-SD cards on which Raspberry Pi stores the OS and running data. - - - -That said, you can do many interesting things with a Raspberry Pi. In [my blog][4], I've tested this by running all kinds of services—from a basic LAMP server to a complex CRM. Passing through some complex systems, all open source, like: - - * Proxy server (also capable to add ad-blocker services) - * Email server - * Printing server - * [Hotel management][5] - * Contact relations management - * [Private social network][6] - * Private forum - * Private Git web portal - * Network monitoring server - * [And many other useful services][7] - - - -Another interesting opportunity for Raspberry Pi in your remote office is to get a WiFi hotspot offering advanced services and control from its Ethernet port.  - -Finally, [Raspberry Pi can also run containers][8], an additional tool to get a world of services available from this incredible board. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/1/raspberry-pi-business - -作者:[Giuseppe Cassibba][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/peppe8o -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BIZ_WorkInPublic_4618517_1110_CS_A.png?itok=RwVrWArk "A chair in a field." -[2]: https://opensource.com/resources/raspberry-pi -[3]: https://enterprisersproject.com/article/2020/11/raspberry-pi-7-enterprise-it-uses -[4]: https://peppe8o.com -[5]: https://opensource.com/article/20/4/qloapps-raspberry-pi -[6]: https://opensource.com/article/20/3/raspberry-pi-open-source-social -[7]: https://peppe8o.com/category/raspberrypi/ -[8]: https://opensource.com/article/20/8/kubernetes-raspberry-pi From caf098d04cb6cd0e76ac122dad6b3f7663bdcd3f Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 13 Jul 2022 23:06:36 +0800 Subject: [PATCH 0367/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220713=209=20Rather=20Unknown=20Ways=20of=20Using?= =?UTF-8?q?=20Neofetch=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Unknown Ways of Using Neofetch in Linux.md | 275 ++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 sources/tech/20220713 9 Rather Unknown Ways of Using Neofetch in Linux.md diff --git a/sources/tech/20220713 9 Rather Unknown Ways of Using Neofetch in Linux.md b/sources/tech/20220713 9 Rather Unknown Ways of Using Neofetch in Linux.md new file mode 100644 index 0000000000..07978d5195 --- /dev/null +++ b/sources/tech/20220713 9 Rather Unknown Ways of Using Neofetch in Linux.md @@ -0,0 +1,275 @@ +[#]: subject: "9 Rather Unknown Ways of Using Neofetch in Linux" +[#]: via: "https://itsfoss.com/using-neofetch/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +9 Rather Unknown Ways of Using Neofetch in Linux +====== + +Neofetch is a simple command-line tool that [displays an ASCII logo of the distribution][1] along with a few system information in the terminal. It looks beautiful and you can easily show which distribution, desktop environment, and themes you are using when you share the screenshots of your desktop in various Linux communities. + +![KDE Neon Neofetch][2] + +For most users, that’s all there is to Neofetch. + +But Neofetch is highly customizable. You can display any ASCII logo instead of the distribution’s, filter out the information to display or replace the logos with cowsay messages. + +Interesting, isn’t it? Before I show you how to customize Neofetch, let me quickly go on installing it first, if you haven’t installed it already. + +### Installing Neofetch + +[Neofetch][3] is available in the official repo of all major Linux distributions. To install it in Ubuntu and [Debian-based distros][4], use: + +``` +sudo apt install neofetch +``` + +Fedora and Red Hat users can use the DNF package manager: + +``` +sudo dnf install neofetch +``` + +Arch and Manjaro users can [use the pacman command][5]: + +``` +sudo pacman -S neofetch +``` + +openSUSE users can use the Zypper command: + +``` +sudo zypper install neofetch +``` + +Once you have it installed, let’s see how to use it. + +### Using Neofetch + +In its simplest form, enter the neofetch command in the terminal: + +``` +neofetch +``` + +And it will show you the default output that consists of the ASCII logo of your distribution and some system information. + +![Neofetch output in Ubuntu][6] + +That’s simple. But you can configure it to show some additional information or hide some. + +#### 1. Display logo of another distro + +By default neofetch shows the logo of the current distribution. No surprises there. + +But you can have the ASCII logo of a different distribution than yours. Surprise! + +Here is the Pop!OS logo in Kubuntu system. + +![Displaying Logo of Pop!_OS in Kubuntu][7] + +To do that, you have to use the –ascii_distro flag. + +``` +neofetch --ascii_distro distroname +``` + +You know what! You can even display ASCII logo of Windows in Neofetch. + +![neofetch windows logo][8] + +#### 2. Show a smaller logo + +The list of distros having ASCII art is listed in the man page of Neofetch. Now, there also exists a sublist of distros, which has a small ASCII art. That list can also be found in its man page. + +![neofetch small logo][9] + +To achieve this: + +``` +neofetch --ascii_distro _small +``` + +You can make it permanent by editing the respective line on the config file. + +If a distro logo doesn’t have a small version, it displays the bigger one. And if you made a typo, it shows the Tux logo. + +![Tux logo with Neofetch][10] + +#### 3. Hiding Multiple Infos from view + +In Neofetch, there is a lot of information is shown by default. You don’t have to stick to them if you don’t want to. + +You can hide some information from the display. You can do that in two ways: either by providing options through the command line or by editing the configuration file. + +I will prefer editing the config file, because it is one time and will take effect immediately, and no need to type it repeatedly. + +Open neofetch config with [Vim or Nano][11] or your favorite editor using: + +``` +nano .config/neofetch/config.conf +``` + +![neofetch config file][12] + +Here you can find multiple lines referring to “info”. Comment those that you want to hide and uncomment those to show. To comment, just add # at the beginning of a line. + +Save the file and exit. Next, Neofetch run will be the modified one. + +The same config file can be tweaked to show users in the system, CPU temperatures, battery information, etc. + +![customised neofetch][13] + +#### 4. Hide the logo or the info + +You can tweak Neofetch to display only the system information and hide the ASCII logo. + +``` +neofetch --off +``` + +![neofetch without ascii logo][14] + +Also, you can have Neofetch with only the ASCII logo, without system information: + +``` +neofetch -L +``` + +![neofetch with only ascii logo][15] + +#### 5. Use a custom image as ASCII logo + +Neofetch supports custom images to be applied to the ASCII logo part. This is achieved by several backends. Images can be applied through jp2a, caca, sixel, w3m backends. + +By using jp2a, you can have your own image as an ascii art in neofetch. + +![custom ascii logo in neofetch with jp2a backend][16] + +To do this, use Neofetch like this: + +``` +neofetch --jp2a /path/to/image +``` + +Another type of output that is supported is the caca backend. On the terminal, enter: + +``` +neofetch --caca /path/to/image +``` + +![neofetch image with caca backend][17] + +There are other backends also, which can be found on its man page. + +#### 6. Add gradient colors by using lolcat with Neofetch + +With lolcat, you can have a colorful neofetch. Install lolcat using your distribution’s package manager first: + +``` +sudo apt install lolcat +``` + +Once lolcat is installed, pipe neofetch to lolcat to get a rainbow effect: + +``` +neofetch | lolcat +``` + +![neofetch with lolcat][18] + +#### 7. Use cowsay and fortune instead of logo + +With the latest releases of Neofetch, you can now display cowsay and fortune in place of the ascii logo. For more fancy, the same output can be piped to lolcat. + +``` +neofetch --ascii "$(fortune | cowsay -W 30)" | lolcat +``` + +Cowsay program can also display other animal figures by specifying the cowfile with `-f` flag. + +![neofetch with cowsay and lolcat][19] + +For more fun and if you have some time to invest, type the below code and see an animated neofetch appearing: + +``` +neofetch --ascii "$(fortune | cowsay -f dragon -W 30)" | lolcat -ats 60 +``` + +#### 8. Animate it + +Speaking of animation, you can animate the entire Neofetch output with the pv command. It consumes a lot of time but if you are doing a screencast and want to amuse people, this could do the trick. + +![A Video from YouTube][20] + +With pv command installed on your system, use it in conjugation with Neofetch: + +``` +neofetch | pv -qL 100 +``` + +This will begin typing character by character the neofetch art and info. Adjust the animation speed by changing the value from 100. Higher the value, faster is the animation. + +#### 9. Custom colors for the title, underline and info panel + +You can change the colors for the informational part. The parts of the informational panel are in the order: title, @, underline, subtitle, colon, info. + +You can give a different part to each one of them by adding a color code in their position like this: + +``` +neofetch --colors 3 4 5 6 2 1 +``` + +![neofetch custom color scheme one][21] + +![neofetch custom color scheme two][22] + +### Wrapping Up + +There are many more ways to tweak Neofetch. You can always look into its man page. + +As I said earlier, for most users Neoetch is just a simple, no-option command to pretty display system information and distribution logo in the terminal. + +Even I never bothered to look into customizing Neofetch. It was my teammate Sreenath who likes experimenting with these things and he came up with the idea and I had a feeling that It’s FOSS readers like you might find it amusing. + +Over to you now. Did you find some surprising new usage of Neofetch? Do you know some other cool trick? Share it with us in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/using-neofetch/ + +作者:[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/display-linux-logo-in-ascii/ +[2]: https://itsfoss.com/wp-content/uploads/2021/01/kde-neon-neofetch.png +[3]: https://github.com/dylanaraps/neofetch +[4]: https://itsfoss.com/debian-based-distros/ +[5]: https://itsfoss.com/pacman-command/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-output.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/Changed-logo-of-distribution.png +[8]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-windows-logo-800x490.png +[9]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-small-logo-800x306.png +[10]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-tux-logo.png +[11]: https://itsfoss.com/vim-vs-nano/ +[12]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-config-file-800x419.png +[13]: https://itsfoss.com/wp-content/uploads/2022/07/customised-neofetch-800x164.png +[14]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-without-ascii-logo.png +[15]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-with-only-ascii-logo.png +[16]: https://itsfoss.com/wp-content/uploads/2022/07/custom-ascii-logo-in-neofetch-with-jp2a-backend-800x314.png +[17]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-image-with-caca-backend-800x278.png +[18]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-with-lolcat-800x303.png +[19]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-with-cowsay-and-lolcat-800x240.png +[20]: https://player.vimeo.com/video/727286686 +[21]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-custom-color-scheme-one.png +[22]: https://itsfoss.com/wp-content/uploads/2022/07/neofetch-custom-color-scheme-two.png From 71deda1bc6ca4ed675f87cb5d264f61fe556ce3f Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 13 Jul 2022 23:19:48 +0800 Subject: [PATCH 0368/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220713=20How=20I=20create=20music=20playlists=20on?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3 How I create music playlists on Linux.md | 216 ++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 sources/tech/20220713 How I create music playlists on Linux.md diff --git a/sources/tech/20220713 How I create music playlists on Linux.md b/sources/tech/20220713 How I create music playlists on Linux.md new file mode 100644 index 0000000000..750a0d2caa --- /dev/null +++ b/sources/tech/20220713 How I create music playlists on Linux.md @@ -0,0 +1,216 @@ +[#]: subject: "How I create music playlists on Linux" +[#]: via: "https://opensource.com/article/22/7/c-linux-mp3" +[#]: author: "Rikard Grossman-Nielsen https://opensource.com/users/rikardgn" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I create music playlists on Linux +====== +Use this C program I made on Linux to listen to your favorite songs on the go. + +![Open source software helps artists create music][1] + +Image by: Opensource.com + +I recently wrote a C program in Linux to create a smaller random selection of MP3 files from my extensive MP3 library. The program goes through a directory containing my MP3 library, and then creates a directory with a random, smaller selection of songs. I then copy the MP3 files to my smartphone to listen to them on the go. + +Sweden is a sparsely populated country with many rural areas where you don't have full cell phone coverage. That's one reason for having MP3 files on a smartphone. Another reason is that I don't always have the money for a streaming service, so I like to have my own copies of the songs I enjoy. + +You can download my application from its [Git repository][2]. I wrote it for Linux specifically in part because it's easy to find well-tested file I/O routines on Linux. Many years ago, I tried writing the same program on Windows using proprietary C libraries, and I got stuck trying to get the file copying routing to work. Linux gives the user easy and direct access to the file system. + +In the spirit of open source, it didn't take much searching before I found file I/O code for Linux to inspire me. I also found some code for allocating memory which inspired me. I wrote the code for random number generation. + +The program works as described here: + +1. It asks for the source and destination directory. +2. It asks for the number of files in the directory of MP3 files. +3. It searches for the percentage (from 1.0 to 88.0 percent) of your collection that you wish to copy. You can also enter a number like 12.5%, if you have a collection of 1000 files and wish to copy 125 files from your collection rather than 120 files. I put the cap at 88% because copying more than 88% of your library would mostly generate a collection similar to your base collection. Of course, the code is open source so you can freely modify it to your liking. +4. It allocates memory using pointers and malloc. Memory is required for several actions, including the list of strings representing the files in your music collection. There is also a list to hold the randomly generated numbers. +5. It generates a list of random numbers in the range of all the files (for example, 1 to 1000, if the collection has 1000 files). +6. It copies the files. + +Some of these parts are simpler than others, but the code is only about 100 lines: + +``` +#include +#include +#include +#include /* include necessary header files */ +#include +#include +#include +#include + +#define BUF_SIZE 4096 /* use buffer of 4096 bytes */ +#define OUTPUT_MODE 0700 /*protect output file */ +#define MAX_STR_LEN 256 + +int main(void) { + DIR *d; + struct dirent *dir; + char strTemp[256], srcFile[256], + dstFile[256], srcDir[256], dstDir[256]; + char **ptrFileLst; + + char buffer[BUF_SIZE]; + int nrOfStrs=-1, srcFileDesc, + dstFileDesc, readByteCount, + writeByteCount, numFiles; + int indPtrFileAcc, q; + + float nrFilesCopy; + // vars for generatingRandNumList + int i, k, curRanNum, curLstInd, + numFound, numsToGen, largNumRange; + int *numLst; + + float procFilesCopy; + printf("Enter name of source Directory\n"); + scanf("%s", srcDir); + printf("Enter name of destionation Directory\n"); + scanf("%s", dstDir); + printf("How many files does the directory with mp3 files contain?\n"); + scanf("%d", &numFiles); + printf("What percent of the files do you wish to make a random selection of\n"); + printf("enter a number between 1 and 88\n"); + scanf("%f", &procFilesCopy); + + // allocate memory for filesList, list of random numbers + ptrFileLst= (char**) malloc(numFiles * sizeof(char*)); + + for (i = 0; i < numFiles; i++) { + ptrFileLst[i] = (char*)malloc(MAX_STR_LEN * sizeof(char)); + } + + largNumRange = numFiles; + nrFilesCopy = (procFilesCopy / 100) * numFiles; + + numsToGen = (int)((procFilesCopy / 100) * numFiles); + printf("nrFilesCopy=%f", nrFilesCopy); + printf("NumsToGen=%d", numsToGen); + numLst = malloc(numsToGen * sizeof(int)); + srand(time(0)); + + numLst[0] = rand() % largNumRange + 1; + numFound=0; + do { + curRanNum = (int)rand() % largNumRange + 1; + if (numLst[0] == curRanNum) { + numFound=1; + } + } while(numFound == 1); + + numLst[1] = curRanNum; + getchar(); + curLstInd = 1; + i = 0; + while(1) { + do { + numFound = 0; + curRanNum = (int)rand() % largNumRange + 1; + for (int k = 0; k <= curLstInd; k++){ + if (numLst[k] == curRanNum) + numFound = 1; + } + } while(numFound == 1); + numLst[curLstInd+1] = curRanNum; + curLstInd++; + i++; + // numsToGen=Total numbers to generate minus two + // already generated by the code above this loop + if (i == (numsToGen-2)) + break; + } + + d = opendir(srcDir); + if (d) { + while ( (dir = readdir(d)) != NULL ) { + strcpy(strTemp, dir->d_name); + + if (strTemp[0] != '.') { + nrOfStrs++; + strcpy(ptrFileLst[nrOfStrs], strTemp); + } + } + closedir(d); + } + + for (q = 0; q <= curLstInd; q++) { + indPtrFileAcc = numLst[q]; + strcpy(srcFile, srcDir); + strcat(srcFile, "/"); + strcat(srcFile, ptrFileLst[indPtrFileAcc]); + strcpy(dstFile, dstDir); + strcat(dstFile, "/"); + strcat(dstFile, ptrFileLst[indPtrFileAcc]); + + srcFileDesc = open(srcFile, O_RDONLY); + dstFileDesc = creat(dstFile, OUTPUT_MODE); + + while(1) { + readByteCount = read(srcFileDesc, buffer, BUF_SIZE); + if (readByteCount <= 0) + break; + + writeByteCount = write(dstFileDesc, buffer, readByteCount); + if(writeByteCount <= 0) + exit(4); + } + + //close the files + close(srcFileDesc); + close(dstFileDesc); + } +} +``` + +This code is possibly the most complex: + +``` +while(1) { + readByteCount = read(srcFileDesc, buffer, BUF_SIZE); + if (readByteCount <= 0) + break; + + writeByteCount = write(dstFileDesc, buffer, readByteCount); + if (writeByteCount <= 0) + exit(4); +} +``` + +This reads a number of bytes (readByteCount) from a file specified into the character buffer. The first parameter to the function is the file name (srcFileDesc). The second parameter is a pointer to the character buffer, declared previously in the program. The last parameter of the function is the size of the buffer. + +The program returns the number of the bytes read (in this case, 4 bytes). The first `if` clause breaks out of the loop if a number of 0 or less is returned. + +If the number of read bytes is 0, then all of the writing is done, and the loop breaks to write the next file. If the number of bytes read is less than 0, then an error has occurred and the program exits. + +When the 4 bytes are read, it will write to them.The write function takes three arguments.The first is the file to write to, the second is the character buffer, and the third is the number of bytes to write (4 bytes). The function returns the number of bytes written. + +If 0 bytes are written, then a write error has occurred, so the second `if` clause exits the program. + +The `while` loop reads and copies the file, 4 bytes at a time, until the file is copied. When the copying is done, you can copy the directory of randomly generated mp3 files to your smartphone. + +The copy and write routine are fairly efficient because they use file system calls in Linux. + +### Improving the code + +This program is simple and it could be improved in terms of its user interface, and how flexible it is. You can implement a function that calculates the number of files in the source directory so you don't have to enter it manually, for instance. You can add options so you can pass the percentage and path non-interactively.nBut the code does what I need it to do, and it's a demonstration of the simple efficiency of the C programming language. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/c-linux-mp3 + +作者:[Rikard Grossman-Nielsen][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/rikardgn +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/LIFE_musicinfinity.png +[2]: https://github.com/rikardgn/learnC/blob/main/randMp3Copy.c From aaaba8259e936274cb830b8f5355d3808d3765ef Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 13 Jul 2022 23:31:11 +0800 Subject: [PATCH 0369/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220713=20A=20guide=20to=20productivity=20managemen?= =?UTF-8?q?t=20in=20open=20source=20projects.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...vity management in open source projects.md | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 sources/tech/20220713 A guide to productivity management in open source projects.md diff --git a/sources/tech/20220713 A guide to productivity management in open source projects.md b/sources/tech/20220713 A guide to productivity management in open source projects.md new file mode 100644 index 0000000000..246f1a80f4 --- /dev/null +++ b/sources/tech/20220713 A guide to productivity management in open source projects.md @@ -0,0 +1,124 @@ +[#]: subject: "A guide to productivity management in open source projects" +[#]: via: "https://opensource.com/article/22/7/productivity-management-open-source-projects" +[#]: author: "Thabang Mashologu https://opensource.com/users/tmashologu" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A guide to productivity management in open source projects +====== +Enhance productivity by applying the SPACE framework to open source teams. + +![Working on a team, busy worklife][1] + +Image by: opensource.com + +Open source is one of the most important technology trends of our time. It’s the lifeblood of the digital economy and the preeminent way that software-based innovation happens today. In fact, it’s estimated that over 90% of software released today contains open source libraries. + +There's no doubt the open source model is effective and impactful. But is there still room for improvement? When comparing the broader software industry’s processes to that of open source communities, one big gap stands out: productivity management. + +By and large, open source project leads and maintainers have been slow to adopt modern productivity and project management practices and tools commonly embraced by startups and enterprises to drive the efficiency and predictability of software development processes. It’s time we examine how the application of these approaches and capabilities can improve the management of open source projects for the better. + +### Understanding productivity in open source software development + +The open source model, at its heart, is community-driven. There is no single definition of success for different communities, so a one-size-fits-all approach to measuring success does not exist. And what we have traditionally thought of as productivity measures for software development, like commit velocity, the number of pull requests approved and merged, and even the lines of code delivered, only tell part of the story. + +Open source projects are people-powered. We need to take a holistic and humanistic approach to measuring productivity that goes beyond traditional measures. I think this new approach should focus on the fact that great open source is about communication and coordination among a diverse community of contributors. The level of inclusivity, openness, and transparency within communities impacts how people feel about their participation, resulting in more productive teams. + +These and other dimensions of what contributes to productivity on open source teams can be understood and measured with the SPACE framework, which was developed based on learnings from the proprietary world and research conducted by GitHub, the University of Victoria in Canada, and Microsoft. I believe that the SPACE framework has the potential to provide a balanced view of what is happening in open source projects, which would help to drive and optimize collaboration and participation among project team members. + +### A more accurate productivity framework + +The SPACE framework acronym stands for: + +* Satisfaction and well-being +* Performance +* Activity +* Communication and collaboration +* Efficiency and flow + +Satisfaction and well-being refer to how fulfilled developers feel with the team, their tools, and the environment, as well as how healthy and happy they are. Happiness is somewhat underrated as a factor in the success of teams. Still, there is strong evidence of a direct correlation between the way people feel and their productivity. In the open source industry, surveying contributors, committers, and maintainers about their attitudes, preferences, and priorities about what is being done and how is essential to understanding attitudes and opinions. + +Performance in this context is about evaluating productivity in terms of the outcomes of processes instead of output. Team-level examples are code-review velocity (which captures the speed of reviews) and story points shipped. More holistic measures focus on quality and reliability. For example, was the code written in a way that ensures it will reliably do what it is supposed to do? Are there a lot of bugs in the software? Is industry adoption of the software growing? + +Open source activity focuses on measuring design and development and CI/CD metrics, like build, test, deployments, releases, and infrastructure utilization. Example metrics for open source projects are the number of pull requests, commits, code reviews completed, build releases, and project documents created. + +Communication and collaboration capture how people and teams work together, communicate, and coordinate efforts with high transparency and awareness within and between teams. Metrics in this area focus on the vibrancy of forums, as measured by the number of posts, messages, questions asked and answered, and project meetings held. + +Finally, efficiency and flow refer to the ability to complete work and progress towards it with minimal interruptions and delays. At the individual developer level, this is all about getting into a flow that allows complex tasks to be completed with minimal distractions, interruptions, or context switching. At the project team level, this is about optimizing flow to minimize the delays and handoffs that take place in the steps needed to take software from an idea or feature request to being written into code. Metrics are built around process delays, handoffs, time on task, and the ease of project contributions and integrations. + +### Applying the SPACE framework to open source teams + +Here are some sample metrics to illustrate how the SPACE framework could be used for an open source project. + +#### Satisfaction and well-being + +* Contributor satisfaction +* Community sentiment +* Community growth & diversity + +#### Performance + +* Code review velocity +* Story points shipped +* Absence of bugs +* Industry adoption + +#### Activity + +* number of pull requests +* number of commits +* number of code reviews +* number of builds +* number of releases +* number of docs created + +#### Communication and collaboration + +* Forum posts +* Messages +* Questions asked & answered +* Meetings + +#### Efficiency and flow + +* Code review timing +* Process delays & handoffs +* Ease of contributions/integration + +### Tools for managing open source projects must be fit for purpose + +There is an opportunity to leverage the tools and approaches startups and high-growth organizations use to understand and improve open source development efficiency. All while putting open source’s core tenets, like openness and transparency, into practice. + +Tools used by open source teams should enable maintainers and contributors to be productive and successful, while allowing the projects to be open and welcoming to everyone, including developers who may work in multiple organizations and even competing companies. It is also critical to provide an excellent onboarding experience for new contributors and accelerate their time-to-understanding and time-to-contribution. + +Tools for managing open source projects should transparently manage data and accurately reflect project progress based on where the collaboration happens: in the codebase and repositories. Open source teams should be able to see real-time updates based on updates to issues and pull requests. And, project leads and maintainers should have the flexibility to decide whether access to the project should be completely public or if it should be limited to trusted individuals for issues or information of a more sensitive nature. + +Ideally, tools should allow self-governed project teams to streamline coordination, processes, and workflows and eliminate repetitive tasks through automation. This reduces human friction and empowers maintainers and contributors to focus on what really matters: contributing to the ecosystem or community and delivering releases faster and more reliably. + +The tools teams use should also support collaboration from people wherever they are. Since open source teams work in a remote and asynchronous world, tools should be able to integrate everyone’s contributions wherever and whenever they occur. These efforts should be enabled by great documentation stored in a central and easily accessible place. And finally, the tools should enable continuous improvement based on the types of frameworks and measures of productivity outlined above. + +Features that allow for increased transparency are especially important for open source projects. Tools should help keep community members aligned and working towards a common goal with a project roadmap that shows work is in flight, progress updates, and predicted end dates. + +### Conclusion + +Open source projects are a benefit to us all, and as such, it benefits everyone to make the processes that exist within these projects as productive as possible. + +By leveraging concepts like the SPACE framework and modern tools, we can ditch the spreadsheets and manual ways of tracking, measuring, and improving productivity. We can adapt approaches that power software development in the proprietary world and leverage modern tools that can help increase the quality, reliability, and predictability of open source software releases. Open source is far too important to leave to anything less. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/productivity-management-open-source-projects + +作者:[Thabang Mashologu][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/tmashologu +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png From 78f1a2f83a73ccc1345b9a5f3f12c76467cb076d Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 14 Jul 2022 08:23:21 +0800 Subject: [PATCH 0370/3123] translating --- ...Helper in Arch Linux [Beginner-s Guide].md | 162 ----------------- ...Helper in Arch Linux [Beginner-s Guide].md | 163 ++++++++++++++++++ 2 files changed, 163 insertions(+), 162 deletions(-) delete mode 100644 sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md create mode 100644 translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md diff --git a/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md b/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md deleted file mode 100644 index c95c7e4658..0000000000 --- a/sources/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md +++ /dev/null @@ -1,162 +0,0 @@ -[#]: subject: "How to Install yay AUR Helper in Arch Linux [Beginner’s Guide]" -[#]: via: "https://www.debugpoint.com/install-yay-arch/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install yay AUR Helper in Arch Linux [Beginner’s Guide] -====== -This beginner’s guide explains the steps to install the Yay AUR helper in Arch Linux. - -The yay is an abbreviation of ‘Yet Another Yogurt’. It is technically a [pacman][1] wrapper and AUR helper written in [Go programming languages][2]. It is the most popular [Arch User Repository (AUR)][3] helper available today. With Yay, you can take advantage of a vast Arch User Repository of packages and easily compile and install any software. - -It automates many package management tasks such as searching, resolving dependencies on the fly, compiling and building packages, and, of course, publishing your packages for AUR. - -Let’s look at how you can install Yay in Arch Linux or any Arch-based distro such as Manjaro. Once you install Arch Linux, you can install packages via pacman package manager from three main Arch official repo. But Yay is not installed by default after a fresh Arch Linux installation. Hence you need to install it to take advantage of AUR manually. - -This guide covers the below topics. - -* Install yay in Arch Linux -* Install yay in Manjaro -* How to use yay to install packages in Arch Linux and Manjaro -* Some yay tips - -### Install yay in Arch Linux - -#### Pre-requisite - -Open a terminal and run the below commands. Provide admin password when prompted. These steps require the [base-devel][4] package and git package for compilation and installation. - -``` -sudo pacman -S base-devel -``` - -``` -sudo pacman -S git -``` - -![Install git][5] - -#### Install yay - -The yay package has two versions in the Arch repository, as follows. - -[yay][6] – stable version[yay-git][7]– development version - -For this guide, I have used the stable version. Now, go to “/opt” directory and clone the git repo. - -``` -cd /optsudo git clone https://aur.archlinux.org/yay.git -``` - -![clone the yay repo][8] - -Change the owner of the source directory. Replace “debugpoint” with your user name. - -``` -sudo chown -R debugpoint:users ./yay -``` - -If you are unaware of the user or group, you can find the user and groups using the example below. - -``` -id debugpoint -``` - -Go to the directory and compile. - -``` -cd yay -``` - -``` -makepkg -si -``` - -This completes the installation for yay in Arch Linux. - -![Install yay in Arch Linux][9] - -### Install in yay in Manjaro - -If you are using Manjaro Linux, the yay package is available in the community repo. You can easily install using the following commands in Manjaro. - -``` -pacman -Syyupacman -S yay -``` - -Now, let’s look at how you can install any package using Yay and some basic yay usage. - -### How to use yay to install packages - -The first search on the AUR website to install any application to get the package name. For example, to install [featherpad][10] text editor, run the below command. - -``` -yay -S featherpad -``` - -After installation, you can find the application launcher in the application menu. - -![Install a sample application (featherpad) using yay][11] - -### Some yay tips - -You can also do many tweaks and system operations using yay. Some of the examples are below. - -**Refresh the system packages and upgrade:** - -``` -yay -Syu -``` - -**Use the development versions of packages and upgrade (be careful while running this command)**: - -``` -yay -Syu --devel --timeupdate -``` - -**Remove any packages (for example, featherpad)**: - -``` -yay -Rns featherpad -``` - -**Get a quick system stat:** - -![system stat using yay][12] - -``` -yay -Ps -``` - -I hope this beginner’s guide helped you install yay in [Arch Linux][13], then use yay for installing packages, and perform different system actions. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-yay-arch/ - -作者:[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://wiki.archlinux.org/index.php/pacman -[2]: https://golang.org/ -[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository -[4]: https://aur.archlinux.org/packages/meta-group-base-devel/ -[5]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-git-1024x291.png -[6]: https://aur.archlinux.org/packages/yay/ -[7]: https://aur.archlinux.org/packages/yay-git/ -[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/clone-the-yay-repo-1024x271.png -[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-yay-in-Arch-Linux-1024x460.png -[10]: https://aur.archlinux.org/packages/featherpad-git/ -[11]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-a-sample-application-featherpad-using-yay-1024x620.png -[12]: https://www.debugpoint.com/wp-content/uploads/2021/01/system-stat-using-yay.png -[13]: https://www.debugpoint.com/tag/arch-linux/ diff --git a/translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md b/translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md new file mode 100644 index 0000000000..218c0f9883 --- /dev/null +++ b/translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md @@ -0,0 +1,163 @@ +[#]: subject: "How to Install yay AUR Helper in Arch Linux [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-yay-arch/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中安装 yay AUR 助手(初学者指南) +====== +这个初学者指南解释了在 Arch Linux 中安装 Yay AUR 助手的步骤。 + +yay 是 “Yet Another Yogurt” 的缩写。从技术上讲,它是用 [Go 编程语言][2]编写的 [pacman][1] 封装器和 AUR 助手。它是当今最流行的 [Arch 用户仓库 (AUR)][3]助手。使用 Yay,你可以利用庞大的 Arch 用户软件包库并轻松编译和安装任何软件。 + +它可以自动执行许多包管理任务,例如搜索、动态解决依赖关系、编译和构建包,当然还有在 AUR 发布包。 + +让我们看看如何在 Arch Linux 或任何基于 Arch 的发行版(如 Manjaro)中安装 Yay。安装 Arch Linux 后,你可以通过 pacman 包管理器从三个主要的 Arch 官方仓库安装包。但是在全新的 Arch Linux 安装后,默认情况下不会安装 Yay。因此,你需要手动安装它以利用 AUR。 + +本指南涵盖以下主题。 + +* 在 Arch Linux 中安装 yay +* 在 Manjaro 中安装 yay +* 如何在 Arch Linux 和 Manjaro 中使用 yay 安装包 +* 一些 yay 的提示 + +### 在 Arch Linux 中安装 yay + +#### 先决条件 + +打开终端并运行以下命令。出现提示时提供管理员密码。这些步骤需要 [base-devel][4] 包和 git 包进行编译和安装。 + +``` +sudo pacman -S base-devel +``` + +``` +sudo pacman -S git +``` + +![Install git][5] + +#### 安装 yay + +yay 包在 Arch 仓库中有两个版本,如下所示。 + +[yay][6] – 稳定版 +[yay-git][7]– 开发版 + +对于本指南,我使用了稳定版。现在,进入 “/opt” 目录并克隆 git 仓库。 + +``` +cd /optsudo git clone https://aur.archlinux.org/yay.git +``` + +![clone the yay repo][8] + +更改源目录的所有者。将 “debugpoint” 替换为你的用户名。 + +``` +sudo chown -R debugpoint:users ./yay +``` + +如果你不知道用户或组,可以使用以下示例查找用户和组。 + +``` +id debugpoint +``` + +进入目录并编译。 + +``` +cd yay +``` + +``` +makepkg -si +``` + +这样就完成了 Arch Linux 中 yay 的安装。 + +![Install yay in Arch Linux][9] + +### 在 Manjaro 中安装 yay + +如果你使用 Manjaro Linux,yay 包可以在社区仓库中找到。你可以在 Manjaro 中使用以下命令轻松安装。 + +``` +pacman -Syyupacman -S yay +``` + +现在,让我们看看如何使用 Yay 安装任何软件包以及一些基本的 yay 用法。 + +### 如何使用 yay 安装包 + +首先在 AUR 网站上搜索安装任何应用以获取包名。例如,要安装 [featherpad][10] 文本编辑器,请运行以下命令。 + +``` +yay -S featherpad +``` + +安装后,你可以在应用菜单中找到应用启动器。 + +![Install a sample application (featherpad) using yay][11] + +### 一些 yay 的技巧 + +你还可以使用 yay 进行许多调整和系统操作。下面是一些示例。 + +**刷新系统包并升级**: + +``` +yay -Syu +``` + +**使用包的开发版本并升级(运行此命令时要小心)**: + +``` +yay -Syu --devel --timeupdate +``` + +**删除任何包(例如,featherpad)**: + +``` +yay -Rns featherpad +``` + +**快速获取系统统计信息**: + +![system stat using yay][12] + +``` +yay -Ps +``` + +我希望这个初学者指南能帮助你在 [Arch Linux][13] 中安装 yay,然后使用 yay 安装包,并执行不同的系统操作。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-yay-arch/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://wiki.archlinux.org/index.php/pacman +[2]: https://golang.org/ +[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository +[4]: https://aur.archlinux.org/packages/meta-group-base-devel/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-git-1024x291.png +[6]: https://aur.archlinux.org/packages/yay/ +[7]: https://aur.archlinux.org/packages/yay-git/ +[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/clone-the-yay-repo-1024x271.png +[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-yay-in-Arch-Linux-1024x460.png +[10]: https://aur.archlinux.org/packages/featherpad-git/ +[11]: https://www.debugpoint.com/wp-content/uploads/2021/01/Install-a-sample-application-featherpad-using-yay-1024x620.png +[12]: https://www.debugpoint.com/wp-content/uploads/2021/01/system-stat-using-yay.png +[13]: https://www.debugpoint.com/tag/arch-linux/ From 9b2654194dcda0c6a5db98abfaad013b4607548d Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 14 Jul 2022 08:28:44 +0800 Subject: [PATCH 0371/3123] translating --- ...20712 List Upgradable Packages With apt Command in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md b/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md index de1a1aae8d..b358c3a80a 100644 --- a/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md +++ b/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/apt-list-upgradable/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 35fb84f9c985433243adf84a48564ebcaffaf445 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Thu, 14 Jul 2022 01:20:23 -0500 Subject: [PATCH 0372/3123] Finished tranlating. --- ... - Getting Started With Docker In Linux.md | 749 ----------------- ... - Getting Started With Docker In Linux.md | 751 ++++++++++++++++++ 2 files changed, 751 insertions(+), 749 deletions(-) delete mode 100644 sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md create mode 100644 translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md diff --git a/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md b/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md deleted file mode 100644 index c20745ce6f..0000000000 --- a/sources/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md +++ /dev/null @@ -1,749 +0,0 @@ -[#]: subject: "Docker Commands Tutorial | Getting Started With Docker In Linux" -[#]: via: "https://ostechnix.com/getting-started-with-docker/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Docker Commands Tutorial | Getting Started With Docker In Linux -====== -Essential Docker Commands For beginners - -This detailed Docker tutorial covers the essential **Docker commands**, such as how to create a new container, run the container, remove a container and so on. In addition, this guide also explains how to build your own custom Docker image from an existing container and how to remove containers and images. Without further ado, let us **get started with Docker basics usage**! - -### Docker Installation Steps - -Docker can be installed in most modern Linux operating systems. If you haven't installed Docker yet, refer the following guides: - -* [Install Docker Engine And Docker Compose In AlmaLinux, CentOS, Rocky Linux][1] -* [How to Install Docker And Docker Compose In Ubuntu][2] - -### What Is Docker Image And Docker Container? - -Before getting started with Docker, let me clarify what is a **Docker image** and a **Docker Container**. - -A Docker Image is the file that decides how a Container should behave, and Docker Container is the running or stopped stage of a Docker image. - -The containers are isolated from the rest of host's files. - -When we run a Docker container, it uses an isolated filesystem which provided by a Docker image. The Docker image consists of everything needed to run an application - all dependencies, configuration, scripts, binaries, etc. - -The image also contains other configuration for the container, such as environment variables, a default command to run, and other metadata. - -### Getting Started With Docker In Linux - -All steps given below are tested in Ubuntu 22.04, 20.04 and 18.04 LTS server edition. However, the steps provided in the subsequent sections are common to all Linux platforms. For example, you can run the same commands in a RHEL-based system(E.g. AlmaLinux) too. - -#### 1. Search Docker Images - -We can get the images from either from the official docker library called [Docker hub][3], or create our own. - -For those wondering, Docker hub is an online central repository where all Docker users build, test, and save their Docker images. Docker hub has tens of thousands of Docker images and the number of images is growing everyday. - -You can search for the any Docker images with **"docker search"** command from command line. - -For instance, to search for docker images based on **Alpine** Linux, run: - -``` -$ sudo docker search alpine -``` - -**Sample Output:** - -![Search Docker Images][4] - -To search images based on **Ubuntu**, run: - -``` -$ sudo docker search ubuntu -``` - -You can even search images for any application, for example **Nginx**, like below: - -``` -$ sudo docker search nginx -``` - -Docker hub has a wide range of images. Be it an operating system, application, or combination of multiple applications (E.g. LAMP stack), you will find pre-built Docker images for everything in Docker hub. - -If something you're looking for is not available, you can build it and make it available for public via Docker hub or keep it private for your own use. - -#### 2. Download Docker Images - -To download Docker image for Ubuntu OS, run the following command from the Terminal: - -``` -$ sudo docker pull ubuntu -``` - -The above command will download the latest Ubuntu image from the **Docker hub**. - -**Sample Output:** - -``` -Using default tag: latest -latest: Pulling from library/ubuntu -405f018f9d1d: Pull complete -Digest: sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac -Status: Downloaded newer image for ubuntu:latest -docker.io/library/ubuntu:latest -``` - -You can also download a specific version of Ubuntu image using command: - -``` -$ sudo docker pull ubuntu:20.04 -``` - -Docker allows us to download any images and start the container based on that image regardless of the host OS. - -For example, to download Alpine OS image, run: - -``` -$ sudo docker pull alpine -``` - -![Download Docker Images][5] - -#### 3. List Docker Images - -All downloaded Docker images will be saved in **/var/lib/docker/** directory. - -To view the list of downloaded Docker images, run: - -``` -$ sudo docker images -``` - -**Sample Output:** - -``` -REPOSITORY TAG IMAGE ID CREATED SIZE -ubuntu latest 27941809078c 3 weeks ago 77.8MB -ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB -alpine latest e66264b98777 5 weeks ago 5.52MB -``` - -![List Docker Images][6] - -As you see above, I have downloaded three Docker images - **Ubuntu** **latest**, **Ubuntu 20.04** and **Alpine Linux**. - -Now, let us go ahead and see how to start or run the containers based on the downloaded images. - -#### 4. Run Docker Containers - -We can start a container in two ways - either using its Docker **Image** **TAG** or **Image ID**. - -**TAG** refers to a particular snapshot of the image and the **IMAGE ID** is the corresponding unique identifier for that image. - -Take a look at the following screenshot: - -![Docker Image Tag and ID][7] - -As you see in the above results, the tags are **"latest"** and **"20.04"**. - -* 27941809078c is the IMAGE ID of Ubuntu latest Docker image, -* 20fffa419e3a is the image id of Ubuntu 20.04 Docker image -* and `e66264b98777` is the image id of Alpine latest Docker image. - -##### 4.1. Run Containers Using Tag - -Once you downloaded the Docker images of your choice, run the following command to start a Docker container and connect to it by using its TAG. - -``` -$ sudo docker run -t -i ubuntu:latest /bin/bash -``` - -Or, - -``` -$ sudo docker run -it ubuntu:latest /bin/bash -``` - -Here, - -* -t : Assigns a new Pseudo Terminal inside the Ubuntu container. -* -i : Allows us to make an interactive connection by grabbing the standard in (STDIN) of the container. -* ubuntu:latest : Ubuntu docker image with Tag "latest". -* /bin/bash : BASH shell for the new container. This is optional. If you don't mention the shell, the default shell will be assigned to the container. - -After starting the container, you'll be automatically landed into the Container's shell (Command prompt): - -![Run Containers Using Tag][8] - -The new container based on the Ubuntu latest image has been started now. A unique ID and a name will be given to all the newly containers. As you can see in the above output, the Ubuntu container ID is **2f2a5b826762**. We will see where to find the name of the container in a minute. - -You can now start working in the container. Once you're done with the Container, you can return back to the host system's Terminal (In my case, it is Ubuntu 22.04 LTS) without terminating the Container (guest os). - -##### 4.2. Detach From Running Containers - -To detach from a running container (without terminating it), press **CTRL+P** followed by **CTRL+Q**. - -Now, you are back to your original host computer's terminal window. Please note that the container is still running in the background and we didn't terminate it yet. - -##### 4.3. Run Containers Using IMAGE Id - -The another way to start a container and connect to it is by using the IMAGE ID as shown below: - -``` -$ sudo docker run -it 20fffa419e3a /bin/bash -``` - -Here, - -* 20fffa419e3a - Image id - -To detach from the container and return back to the host system's Terminal, press **CTRL+P** and **CTRL+Q**. Again, we only detached from the container but didn't stop it. The container is still running in the background. - -##### 4.4. Run Containers In Detached Mode - -In the previous sections, we started a container and attached to it immediately. And then we detached from the container once our work with that container is completed. - -You can also start container in detached mode (without automatically attaching it). - -To run a container in the background, run: - -``` -$ sudo docker run -it -d alpine:latest -``` - -**Sample Output:** - -``` -d74f2ceb5f3ad2dbddb0b26e372adb14efff91e75e7763418dbd12d1d227129d -``` - -The first 12 letters in the above output indicates the container ID. - -You can verify if the container is running using `docker ps` command: - -``` -$ sudo docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -d74f2ceb5f3a alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds zen_pascal -``` - -![Run Containers In Background][9] - -As you can see in the above output, we have a created an Alpine container but didn't attach to it. - -If you want to attach it to the container, simply, run: - -``` -$ sudo docker attach d74f2ceb5f3a -``` - -#### 5. View Running Containers - -To view the list running of containers, run the following command: - -``` -$ sudo docker ps -``` - -**Sample Output:** - -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -f7e04eed577e 20fffa419e3a "/bin/bash" 6 minutes ago Up 6 minutes brave_mclean -2f2a5b826762 ubuntu:latest "/bin/bash" 18 minutes ago Up 18 minutes hungry_leavitt -``` - -![View Running Containers][10] - -Here, - -* f7e04eed577e is the ID of the Ubuntu container that is created with image "2f2a5b826762". And, "brave_mclean" is the name of this container. -* 2f2a5b826762 is the ID of the Ubuntu container that is created with image "ubuntu:latest". And, "hungry_leavitt" is the name of this container. - -Whenever a new container is created, a unique ID and name will be given to it, so we can access the container using either its ID or name. - -**Heads Up:** Please note that **Container ID and Docker image ID are different**. - -To list all available (either running or stopped) containers, run: - -``` -$ sudo docker ps -a -``` - -#### 6. Attach To Or Detach From Running Containers - -First, find the name or ID of the container with `docker ps` command. - -``` -$ sudo docker ps -``` - -Next, attach to the running container using `docker attach` command. - -``` -$ sudo docker attach -``` - -For instance, I am going to attach to the container that has the ID "f7e04eed577e" like below: - -``` -$ sudo docker attach f7e04eed577e -``` - -You can also attach to a container using its name as well. - -``` -$ sudo docker attach brave_mclean -``` - -Now you're logged in to the container. - -To detach from the container, simply press **CTRL+P** followed by **CTRL+Q**. - -#### 7. Start, Restart, Pause, And Stop Containers - -You can start, restart, pause or stop a Docker container using its name or container ID. - -First, find the name or ID of the container with `docker ps -a` command. - -![Find Container ID And Name][11] - -Now you can start a container using `docker start` command with name or ID like below. - -``` -$ sudo docker start modest_cray -``` - -``` -$ sudo docker start 10615254bb45 -``` - -You can **start multiple containers** with space-separated like below. - -``` -$ sudo docker start 24b5ee8c3d3a 56faac6d20ad d74f2ceb5f3a -``` - -To gracefully restart a running container, do: - -``` -$ sudo docker start 10615254bb45 -``` - -To pause processes in a running container: - -``` -$ sudo docker pause 10615254bb45 -``` - -To Unpause processes in a running container: - -``` -$ sudo docker unpause 10615254bb45 -``` - -To block a container until others stop: - -``` -$ sudo docker wait 10615254bb45 -``` - -Similarly we can stop a docker container using its name or ID. If you're already inside the container's shell, you can stop the container by simply running the following command: - -``` -# exit -``` - -You can also stop (power off the container) from the Docker host system using the following command: - -``` -$ sudo docker stop 10615254bb45 -``` - -You can exit multiple containers with space-separated as shown below. - -``` -$ sudo docker stop 35b5ee8c3d3a 10615254bb45 -``` - -After exiting the container, verify if it is really stopped by listing the running containers with command: - -``` -$ sudo docker ps -``` - -#### 8. Kill Docker Containers - -The docker stop command will gracefully turn off a running container. Sometimes, you may stuck with an unresponsive container or you want to forcibly shutdown a container. - -To kill a container by sending a `SIGKILL` to a running container, run: - -``` -$ sudo docker kill 10615254bb45 -``` - -#### 9. Automatically Delete Containers After Closing Them - -You may want to test a Container and then delete it once you're done with the Container. If so, you can automatically delete the Container after closing it by using `--rm` flag: - -``` -$ sudo docker run -it --rm debian:latest -``` - -Once you exit from the Container, it will be automatically deleted. - -![Automatically Delete Containers][12] - -As you see in the above output, I created a new Debian container. Once I exit from the container, it is automatically deleted. The `docker ps -a` output shows that the Debian container doesn't exist. - -#### 10. Assign Name To Containers - -If you closely look into the output of previous commands, each container is given a random name when you start a container. If you don't name your Containers, Docker will name them for you automatically. - -Have a look at the following example. - -``` -$ sudo docker run -it -d alpine:latest -2af79e97a825c91bf374b4862b9e7c22fc22acd1598005e8bea3439805ec335d -``` - -``` -$ sudo docker run -it -d alpine:latest -80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a -``` - -``` -$ sudo docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -80b53b7e661d alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds bold_margulis -2af79e97a825 alpine:latest "/bin/sh" 6 seconds ago Up 5 seconds recursing_taussig -``` - -As you see in the above output, even though I have created two containers using the same docker image, they both gets different ID and name. - -If you want to assign a static name to the container, use `--name` flag like below: - -``` -$ sudo docker run -it -d --name ostechnix_alpine alpine:latest -``` - -The above command will create run a new Container called **ostechnix_alpine** in detached mode. - -let us view list of the running Containers: - -``` -$ sudo docker ps -``` - -**Sample Output:** - -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -397111fac537 alpine:latest "/bin/sh" 2 seconds ago Up 2 seconds ostechnix_alpine -80b53b7e661d alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes bold_margulis -2af79e97a825 alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes recursing_taussig -``` - -![Assign Name To Containers][13] - -Did you notice the name of the first Container in the above output? Yes, we've assigned a custom name (i.e. `ostechnix_alpine` ) to the Container. - -Assigning custom names to containers gives us a benefit. We can easily identify what is installed in that container by looking at the name of the container name. - -#### 11. Build Custom Docker Images - -Docker is not just for downloading and using the existing containers. You can create your own custom docker image as well. - -Let us start an Ubuntu container: - -``` -$ sudo docker run -it ubuntu:latest -``` - -Now, you will be in the container's shell. - -Then, install any software or do whatever you want in the container. - -For example, let us install **Apache web server** in the container. - -``` -# apt update -# apt install apache2 -``` - -Similarly, install and test any software of your choice in the Container. - -Once you're done, detach from the container (don't exit it) and return back to the host system's shell. Please do not stop or power-off the Container. To detach from the container without stopping it, press `CTRL+P` followed by `CTRL+Q`. - -From your Docker host terminal, run the following command to find the container ID: - -``` -$ sudo docker ps -``` - -Finally, create a Docker image of the running Container using command: - -``` -$ sudo docker commit 377e6d77ebb5 ostechnix/ubuntu_apache -``` - -**Sample Output:** - -``` -sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 -``` - -Here, - -* 377e6d77ebb5 – Ubuntu container ID. -* ostechnix – Name of the user who created the container. -* ubuntu_apache – Name of the docker image created by user ostechnix. - -Let us check whether the new Docker image is created or not with command: - -``` -$ sudo docker images -``` - -**Sample Output:** - -``` -ostechnix/ubuntu_apache -``` - -![Build Custom Docker Images][14] - -As you see in the above output, the new Docker image has been created in our Docker host system from the running Container. - -Now, you can create a new Container from the newly created Docker image as usual with command: - -``` -$ sudo docker run -it ostechnix/ubuntu_apache -``` - -#### 12. Removing Containers - -Once you're done all R&D with Docker containers, you can delete if you don't want them anymore. - -To do so, First we have to stop (power off) the running Containers. - -Let us find out the running containers with command: - -``` -$ sudo docker ps -``` - -**Sample Output:** - -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -377e6d77ebb5 ubuntu:latest "bash" 7 minutes ago Up 7 minutes elegant_beaver -``` - -Stop the running container by using it's ID: - -``` -$ sudo docker stop 377e6d77ebb5 -``` - -Now, delete the container using command: - -``` -$ sudo docker rm 377e6d77ebb5 -``` - -Similarly, stop all containers and delete them if they are no longer required. - -Deleting multiple containers one by one can be a tedious task. So, we can delete all stopped containers in one go, just run: - -``` -$ sudo docker container prune -``` - -Type **"Y"** and hit `ENTER` key to delete the containers. - -``` -WARNING! This will remove all stopped containers. -Are you sure you want to continue? [y/N] y -Deleted Containers: -397111fac5374921b974721ee646b2d5fbae61ca9c6e8b90fbf47952f382a46b -80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a -[...] -Total reclaimed space: 176B -``` - -![Delete Containers][15] - -This command will work only with latest Docker versions. - -Verify if all the containers are deleted using the command: - -``` -$ sudo docker ps -a -``` - -If you don't see any output, all containers are deleted. - -#### 13. Removing Docker Images - -Remember, first you should remove all the containers before removing all the images from which those containers were created. - -Once you removed containers, you can delete the Docker images that you no longer need. - -To find the list of the Downloaded Docker images: - -``` -$ sudo docker images -``` - -**Sample Output:** - -``` -REPOSITORY TAG IMAGE ID CREATED SIZE -ostechnix/ubuntu_apache latest bc5e5f95ca59 14 minutes ago 229MB -debian latest d2780094a226 11 days ago 124MB -ubuntu latest 27941809078c 3 weeks ago 77.8MB -ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB -alpine latest e66264b98777 5 weeks ago 5.52MB -``` - -As you see above, we have 5 Docker images in our host system. - -Let us delete them by using their IMAGE id: - -``` -$ sudo docker rmi ce5aa74a48f1 -``` - -**Sample Output:** - -``` -Untagged: ostechnix/ubuntu_apache:latest -Deleted: sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 -Deleted: sha256:a8e4797160a2b2d33d8bd1bd67e008260c022b3a53fbcc198b2b74d9eae5961d -``` - -Similarly, delete all other Docker images. - -To remove all stopped containers, all images, build cache, all networks, run: - -``` -$ sudo docker system prune -a -``` - -Be careful while using this command. It will delete all unused containers, networks, images (both dangling and unreferenced). - -![Delete Everything In Docker][16] - -By default, volumes are not removed to prevent important data from being deleted even if there is currently no container using the volume. - -If you want to delete everything including the Volumes, use the `--volumes` flag. - -``` -$ sudo docker system prune -a --volumes -``` - -### Docker Troubleshooting - -Docker won't let you to delete the Docker images if they are used by any running or stopped containers. - -For example, when I try to delete a Docker Image with ID **b72889fa879c**, from one of my old Ubuntu server. I got the following error: - -``` -Error response from daemon: conflict: unable to delete b72889fa879c (must be forced) - image is being used by stopped container dde4dd285377 -``` - -This is because the Docker image that you want to delete is currently being used by another Container. - -So, let us check the running Container using command: - -``` -$ sudo docker ps -``` - -**Sample Output:** - -![Show running docker containers][17] - -Oops! There is no running container. - -Let us again check for all containers (running and stopped) with command: - -``` -$ sudo docker ps -a -``` - -**Sample Output:** - -![Show running and stopped docker containers][18] - -As you see, there are still some stopped containers are using one of the Docker images. So, let us delete all of the containers. - -**Example:** - -``` -$ sudo docker rm 12e892156219 -``` - -Similarly, remove all containers as shown above using their respective container's ID. - -Once you deleted all containers, finally remove the Docker images. - -**Example:** - -``` -$ sudo docker rmi b72889fa879c -``` - -That's it. Now verify if there are any other Docker images in the host with command: - -``` -$ sudo docker images -``` - -You will now probably won't have any docker images. - -### Conclusion - -In this comprehensive **getting started with Docker tutorial**, we explained Docker basics such as creating, running, searching, removing containers and also building own Docker image from a Container. We also explained how to delete Docker containers and images when they are no longer necessary. - -Hope you a got the basic idea about **Docker usage**. - -For more details, refer the official resource links given at the end of this guide or drop a comment in the comment section below. - -**Resources:** - -* [Docker website][19] -* [Docker Documentation][20] - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/getting-started-with-docker/ - -作者:[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-docker-almalinux-centos-rocky-linux/ -[2]: https://ostechnix.com/install-docker-ubuntu/ -[3]: https://hub.docker.com/ -[4]: https://ostechnix.com/wp-content/uploads/2022/07/Search-Docker-Images.png -[5]: https://ostechnix.com/wp-content/uploads/2022/07/Download-Docker-Images.png -[6]: https://ostechnix.com/wp-content/uploads/2022/07/List-Docker-Images.png -[7]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Image-Tag-and-ID.png -[8]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Containers-Using-Tag-1.png -[9]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Containers-In-Background-1.png -[10]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Containers.png -[11]: https://ostechnix.com/wp-content/uploads/2022/07/Find-Container-ID-And-Name.png -[12]: https://ostechnix.com/wp-content/uploads/2022/07/Automatically-Delete-Containers.png -[13]: https://ostechnix.com/wp-content/uploads/2022/07/Assign-Name-To-Containers.png -[14]: https://ostechnix.com/wp-content/uploads/2022/07/Build-Custom-Docker-Images.png -[15]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Containers.png -[16]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Everything-In-Docker.png -[17]: https://ostechnix.com/wp-content/uploads/2016/04/sk@sk-_005-1-1.jpg -[18]: https://ostechnix.com/wp-content/uploads/2016/04/sk@sk-_006-1.jpg -[19]: https://www.docker.com/ -[20]: https://docs.docker.com/ diff --git a/translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md b/translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md new file mode 100644 index 0000000000..ac8e71272d --- /dev/null +++ b/translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md @@ -0,0 +1,751 @@ +[#]: subject: "Docker Commands Tutorial | Getting Started With Docker In Linux" +[#]: via: "https://ostechnix.com/getting-started-with-docker/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "MCGA" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Docker 命令教程 | 在 Linux 中入门 Docker +====== + +初学者的 Docker 基本命令 + +这篇详细的 Docker 教程覆盖了核心的 **Docker 命令**,比如,如何创建新容器,运行容器,删除容器等。另外,这篇教程也解释了如何从已有的容器构建你自己的 Docker 镜像,如何移除容器和镜像。言归正传,现在开始 Docker 的基本用法。 + +### Docker 安装步骤 + +大多数现代 Linux 操作系统都可以安装 Docker。如果还没安装过 Docker,请参考下面的步骤: + +* [在 AlmaLinux,CentOS,Rocky Linux 上安装 Docker Engine 和 Docker Compose][1] +* [如何在 Ubuntu 上安装 Docker 和 Docker Compose][2] + +### 什么是 Docker 镜像和 Docker 容器? + +在开始 Docker 之前,我先说明一下 Docker 镜像和 Docker 容器是什么。 + +Docker 镜像是一个描述容器如何运行的的文件,Docker 容器是 Docker 镜像在运行或被终止时的一个阶段。 + +容器和主机上的其他文件是隔离的。 + +当我们运行一个 Docker 容器的时候,它会使用一个被隔离出来的文件系统,这个文件系统是由一个 Docker 镜像提供的。Docker 镜像包含了运行应用程序所需要的一切东西 - 所有的依赖,配置,脚本,二进制文件等等。 + +镜像也包含容器所需要的其他配置项,比如说环境变量,运行的默认命令,以及其他元数据。 + +### Linux 下的 Docker 入门 + +下面的所有步骤都已在 Ubuntu 22.04,20.04 以及 18.04 LTS 服务器版本中测试通过。后续小节中提供的步骤对于所有 Linux 平台都是通用的。比如,在基于 RHEL 的系统中(比如 AlmaLinux)可以运行相同的命令。 + +#### 1. 搜索 Docker 镜像 + +我们可以从叫做 [Docker hub][3] 的 docker 官方库获得镜像,或者我们也可以制作自己的镜像。 + +有些人可能不清楚,Docker hub 是一个线上的中心化仓库,所有的 Docker 用户在上面构建,测试,然后保存他们的 Docker 镜像。Docker hub 有数以万计的 Docker 镜像,而且这个数字还在每天增长。 + +你可以从命令行通过 **“docker search”** 命令搜索任意 Docker 镜像。 + +比如要搜索基于 **Alpine** Linux 的 docker 镜像,运行: + +``` +$ sudo docker search alpine +``` + +**输出结果:** + +![Search Docker Images][4] + +搜索基于 **Ubuntu** 的镜像,运行: + +``` +$ sudo docker search ubuntu +``` + +你还可以搜索其他任意的应用,比如 **Nginx**,像下面这样: + +``` +$ sudo docker search nginx +``` + +Docker hub 有各种各样的镜像。你能在 Docker hub 上找到一切已构建好的 Docker 镜像,比如说操作系统,应用,或者多个应用的合体(比如 LAMP 栈)。 + +如果你找的东西不在上面,你还可以构建一个镜像,然后通过 Docker hub 向其他人开放,或者只是自己用。 + +#### 2. 下载 Docker 镜像 + +从终端运行下面的命令可以下载 Ubuntu OS 的 Docker 镜像: + +``` +$ sudo docker pull ubuntu +``` + +上面的这个命令会从 Docker hub 下载最新的 Ubuntu 镜像。 + +**输出结果:** + +``` +Using default tag: latest +latest: Pulling from library/ubuntu +405f018f9d1d: Pull complete +Digest: sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac +Status: Downloaded newer image for ubuntu:latest +docker.io/library/ubuntu:latest +``` + +你也可以用下面的命令下载指定版本的 Ubuntu 镜像: + +``` +$ sudo docker pull ubuntu:20.04 +``` + +Docker 允许我们下载任何镜像,并且在那个镜像上创建容器,这些操作与主机的操作系统无关。 + +比如要下载 Alpine 系统的镜像,运行: + +``` +$ sudo docker pull alpine +``` + +![Download Docker Images][5] + +#### 3. 列出 Docker 镜像 + +所有已下载的 Docker 镜像都保存在 **/var/lib/docker** 路径下。 + +要查看所有已下载的 Docker 镜像,运行: + +``` +$ sudo docker images +``` + +**输出结果:** + +``` +REPOSITORY TAG IMAGE ID CREATED SIZE +ubuntu latest 27941809078c 3 weeks ago 77.8MB +ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB +alpine latest e66264b98777 5 weeks ago 5.52MB +``` + +![List Docker Images][6] + +从上面可以看出来,我已经下载了三个 Docker 镜像 - **Ubuntu** **lates**,**Ubuntu 20.04** 和 **Alpine Linux**。 + +现在,我们看一下接下来如何从下载的镜像启动或者运行容器。 + +#### 4. 运行 Docker 容器 + +有两种方法我们可以启动一个容器 - 使用 Docker **镜像** **TAG** 或者 **镜像 IDImage ID**。 + +**TAG** 指的是一个特定的镜像快照,**镜像 IDImage ID** 是那个镜像对应的唯一识别码。 + +可以查看下面这个截图: + +![Docker Image Tag and ID][7] + +从上面的解脱可以看到,标签tags是 **latest** 和 **“20.04”**。 + +* 27941809078c is the IMAGE ID of Ubuntu latest Docker image, +* 27941809078c 是 Ubuntu latest 的 Docker 镜像的镜像 IDIMAGE ID, +* 20fffa419e3a is the image id of Ubuntu 20.04 Docker image +* 20fffa419e3a 是 Ubuntu 20.04 的 Docker 镜像的镜像 ID, +* and `e66264b98777` is the image id of Alpine latest Docker image. +* 而 `e66264b98777` 是 Alpine latest 的 Docker 镜像的镜像 ID。 + +##### 4.1. 使用标签Tag运行容器 + +下载选择好的 Docker 镜像后,运行下面的命令来启动 Docker 容器,并且通过它的标签TAG进行连接。 + +``` +$ sudo docker run -t -i ubuntu:latest /bin/bash +``` + +或者, + +``` +$ sudo docker run -it ubuntu:latest /bin/bash +``` +这里, + +* -t:在 Ubuntu 容器内分配一个伪终端。 +* -i:通过从容器获取一个便准输入(STDIN),允许我们创建一个可交互的连接。 +* ubuntu:latest:标签为“latest”的 Ubuntu docker 镜像。 +* /bin/bash:新容器的 BASH shell。这个是可选项。如果你不加 shell 的话,默认的 shell 会被分配给容器。 + +启动容器后,会自动进入容器的 shell(命令行): + +![Run Containers Using Tag][8] + +基于最新 Ubuntu 镜像的容器现在已经启动了。所有的新容器都会被赋予一个名字和唯一的 ID。从上面的输出可以看到,那个 Ubuntu 容器的 ID 是 **2f2a5b826762**。一会儿我们会看到从哪找到容器的名字。 + +现在就可以在容器里面工作了。当你完成容器内的工作后,你可以回到主机操作系统的终端(在我这个例子中,操作系统是 Ubuntu 22.04 LTS)而不需要关掉容器(客户机)。 + +##### 4.2. 从运行中的容器中分离 + +使用 **CTRL+P** 然后 **CTRL+Q** 就可以从运行中的容器分离(不需要关闭)。 + +现在,你就回到了你原来的主机的终端窗口。请注意,容器还在后台运行中,我们并没有关掉它。 + +##### 4.3. 使用镜像 ID 运行容器 + +另一种启动容器并且连接进去的方式是通过使用镜像 ID,像下面这样: + +``` +$ sudo docker run -it 20fffa419e3a /bin/bash +``` + +这里, + +* 20fffa419e3a - 镜像 id + +按 **CTRL+P** 然后 **CTRL+Q** 可以从当前容器中分离回到主机系统的终端。我们只是从容器中分离,但是没有让它停止。容器仍然在后台运行中。 + +##### 4.4. 在分离模式中运行容器 + +在前面的小结中,我们启动了一个容器并且立刻连接了进去。然后当容器中的工作结束后,我们从容器中分离了出来 + +你也可以在分离模式(不需要自动连接进去)中启动容器 + +在后台运行一个容器,输入命令: + +``` +$ sudo docker run -it -d alpine:latest +``` + +**输出结果:** + +``` +d74f2ceb5f3ad2dbddb0b26e372adb14efff91e75e7763418dbd12d1d227129d +``` + +上面输出结果的前 12 字符代表的是容器的 ID + +通过 `docker ps` 命令,你可以验证容器是否在运行: + +``` +$ sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +d74f2ceb5f3a alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds zen_pascal +``` + +![Run Containers In Background][9] + +从上面个的输出结果中可以看到,我们创建了一个 Alpine 容器,但是还没有连接进去。 + +如果你想连接进去,很简单,运行: + +``` +$ sudo docker attach d74f2ceb5f3a +``` + +#### 5. 查看运行中的容器 + +查看运行中的容器,运行下面的命令: + +``` +$ sudo docker ps +``` + +**输出结果:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +f7e04eed577e 20fffa419e3a "/bin/bash" 6 minutes ago Up 6 minutes brave_mclean +2f2a5b826762 ubuntu:latest "/bin/bash" 18 minutes ago Up 18 minutes hungry_leavitt +``` + +![View Running Containers][10] + +这里, + +* f7e04eed577e 是由镜像 “2f2a5b826762” 创建的 Ubuntu 容器的 ID。并且,“brave_mclean”是这个容器的名字。 +* 2f2a5b826762 是由镜像 “ubuntu:latest” 创建的 Ubuntu 容器的 ID。并且,“hungry_leavitt” 是这个容器的名字。 + +当一个新容器被创建后,一个唯一的 ID 和名字会赋给它,这样我们就能通过它的 ID 和名字来连接它。 + +**注意:** 请注意**容器 ID 和 Docker 镜像 ID 是不同的**。 + +列出所有可用的(运行或者停止)容器,运行: + +``` +$ sudo docker ps -a +``` + +#### 6. 从运行中的容器分离或连接 + +首先,通过 `docker ps` 命令找到容器的 ID。 + +``` +$ sudo docker ps +``` + +然后,运行 `docker attach` 命令连接到运行中的容器。 + +``` +$ sudo docker attach +``` + +比如像下面这样,我要连接到 ID 为 “f7e04eed577e” 的容器: + +``` +$ sudo docker attach f7e04eed577e +``` + +你也可以通过使用它的名字连接到一个容器。 + +``` +$ sudo docker attach brave_mclean +``` + +现在你就登录到这个容器了。 + +想要从容器分离,只要按 **CTRL+P** 然后 **CTRL+Q**。 + +#### 7. 启动,重启,暂停和终止容器。 + +你可以使用容器的名字或 ID 来启动,重启,暂停或者终止一个 Docker 容器。 + +首先,通过 `docker ps -a` 命令找到容器的名字或 ID。 + +![Find Container ID And Name][11] + +现在,通过使用 `docker start` 命令,加上名字或 ID,你可以启动一个容器,像下面这样: + +``` +$ sudo docker start modest_cray +``` + +``` +$ sudo docker start 10615254bb45 +``` + +用空格隔开,就可以**启动多个容器**,像下面这样: + +``` +$ sudo docker start 24b5ee8c3d3a 56faac6d20ad d74f2ceb5f3a +``` + +优雅的重启一个运行中的容器,运行: + +``` +$ sudo docker start 10615254bb45 +``` + +暂停一个运行中的容器: + +``` +$ sudo docker pause 10615254bb45 +``` + +把暂停的容器恢复过来: + +``` +$ sudo docker unpause 10615254bb45 +``` + +直到其它容器都停止前,阻塞一个容器: + +``` +$ sudo docker wait 10615254bb45 +``` + +我们可以很容易地通过使用它的名字或 ID 来终止一个容器。如果你已经在容器的 shell 里了,只需要运行下面的命令就可以非常简单的终止: + +``` +# exit +``` + +你也可以使用下面的命令从 Docker 的主机系统中终止(关闭容器)容器: + +``` +$ sudo docker stop 10615254bb45 +``` + +用空格隔开,你可以退出多个容器,像下面这样。 + +``` +$ sudo docker stop 35b5ee8c3d3a 10615254bb45 +``` + +在退出容器之后,通过列出所有容器的命令来确保它确实被终止了: + +``` +$ sudo docker ps +``` + +#### 8. 强行关闭Kill Docker 容器 + +docker stop 命令可以非常优雅的关掉运行中的容器。有时候,你可能卡在一个没有响应的容器,或者你想强制关掉容器。 + +通过给一个运行中的容器发送 `SIGKILL` 来强行关闭容器,运行: + +``` +$ sudo docker kill 10615254bb45 +``` + +#### 9. 在关闭容器后自动删除他们 + +也许你想测试一个容器,然后当你完成在容器中的工作就把它删掉。如果是这样,通过使用 `--rm` 标签在关闭后自动删掉容器: + +``` +$ sudo docker run -it --rm debian:latest +``` + +当你从容器中退出,它会自动被删掉。 + +![Automatically Delete Containers][12] + +从上面的结果可以看到,我先创建了一个新的 Debian 容器。当我退出这个容器的时候,它就被自动删掉了。`docker ps -a` 命令的输出结果显示,Debian 容器现在不存在。 + +#### 10. 给容器命名 + +如果你再看一下之前命令的输出结果,当你启动一个容器的时候,每个容器都被赋予了一个随机的名字。如果你不命名你的容器,Docker 会自动替你给他们命名。 + +现在看一下下面的例子: + +``` +$ sudo docker run -it -d alpine:latest +2af79e97a825c91bf374b4862b9e7c22fc22acd1598005e8bea3439805ec335d +``` + +``` +$ sudo docker run -it -d alpine:latest +80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a +``` + +``` +$ sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +80b53b7e661d alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds bold_margulis +2af79e97a825 alpine:latest "/bin/sh" 6 seconds ago Up 5 seconds recursing_taussig +``` + +从上面的结果可以看到,尽管我用同一个 docker image 创建了两个容器,它们获得了不同的 ID 和名字。 + +如果你想给容器赋一个不变的名字,使用 `--name` 标签,像下面这样: + +``` +$ sudo docker run -it -d --name ostechnix_alpine alpine:latest +``` + +上面的命令会在分离模式中创建一个叫做 **ostechnix_alpine** 的新容器。 + +我们看一下当前运行的容器列表: + +``` +$ sudo docker ps +``` +**输出结果:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +397111fac537 alpine:latest "/bin/sh" 2 seconds ago Up 2 seconds ostechnix_alpine +80b53b7e661d alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes bold_margulis +2af79e97a825 alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes recursing_taussig +``` + +![Assign Name To Containers][13] + +注意到上面输出结果中的第一个容器的名字了吗?对了,我们给这个容器分配了一个自定义的名字(也就是 `ostechnix_alpine`)。 + +给容器分配自定义的名字可以给我们带来其他好处。只要看一下容器的名字,我们就能很容易的确定那个容器里面安装了什么。 + +#### 11. 构建自定义 Docker 镜像 + +Docker 不仅仅是下载和使用已存在的容器。你也可以创建自己的自定义 docker 镜像。 + +现在我们开始一个 Ubuntu 容器: + +``` +$ sudo docker run -it ubuntu:latest +``` + +现在,你会进入到容器的 shell。 + +然后,在容器中,你可以安装任何的软件或者做你想做的事情。 + +比如,我们在容器中安装 “Apache web server**。 + +``` +# apt update +# apt install apache2 +``` + +相似地,在容器中,可以根据自己的需要安装和测试软件。 + +完成以后,从容器分离(不要退出)回到主机系统的 shell。不要终止或者关闭容器。使用 **CTRL+P** 然后 **CTRL+Q** 从容器中分离,这样不会关闭容器。 + +在你的 Docker 主机的终端,运行下面的命令来找到容器 ID: + +``` +$ sudo docker ps +``` + +最后,创建一个当前运行中的容器的 Docker image,使用命令: + +``` +$ sudo docker commit 377e6d77ebb5 ostechnix/ubuntu_apache +``` + +**输出结果** + +``` +sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 +``` + +这里, + +* 377e6d77ebb5 – Ubuntu 容器的 ID。 +* ostechnix – 创建容器的用户的名字。 +* ubuntu_apache – 用户 ostechnix 创建的 docker image 的名字。 + +现在我们查看一下新的 Docker 镜像是否被创建了,使用下面的命令: + +``` +$ sudo docker images +``` + +**输出结果:** + +``` +ostechnix/ubuntu_apache +``` + +![Build Custom Docker Images][14] + +从上面给的结果中可以看到,从运行中的容器创建的新 Docker 镜像已经在我们的 Docker 主机系统中了。 + +现在你就可以从这个新的 Docker 镜像创建行容器了,用之前的命令: + +``` +$ sudo docker run -it ostechnix/ubuntu_apache +``` + +#### 12. 移除容器 + +当你在 Docker 容器中完成所有开发后,如果你不需要他们了,你可以删掉他们。 + +为此,首先我们需要终止(关闭)运行中的容器。 + +用这个命令来看一下运行中的容器: + +``` +$ sudo docker ps +``` + +**输出结果:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +377e6d77ebb5 ubuntu:latest "bash" 7 minutes ago Up 7 minutes elegant_beaver +``` + +通过使用它的 ID 来终止运行中的容器: + +``` +$ sudo docker stop 377e6d77ebb5 +``` + +现在,使用这个命令删除容器: + +``` +$ sudo docker rm 377e6d77ebb5 +``` + +同样,如果不再需要所有的容器,关闭并删除它们。 + +一个一个的删除多个容器会是一项繁琐的工作。所以,我们可以把所有停止的容器一次性删掉,运行: + +``` +$ sudo docker container prune +``` + +敲 **Y** 然后回车键,这些容器就被删掉了。 + +``` +WARNING! This will remove all stopped containers. +Are you sure you want to continue? [y/N] y +Deleted Containers: +397111fac5374921b974721ee646b2d5fbae61ca9c6e8b90fbf47952f382a46b +80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a +[...] +Total reclaimed space: 176B +``` + +![Delete Containers][15] + +这个命令只有在最新版中有效。 + +使用下面的命令来验证是否所有容器都被删除了: + +``` +$ sudo docker ps -a +``` + +如果看不到任何结果,说明所有容器被删掉了。 + +#### 13. 删除 Docker 镜像 + +记住,在删除所有镜像之前,首先要删掉所有从那些镜像创建的容器。 + +当你删掉容器后,你可以删掉你不需要的 Docker 镜像。 + +列出所有下载的 Docker 镜像: + +``` +$ sudo docker images +``` + +**输出结果:** + +``` +REPOSITORY TAG IMAGE ID CREATED SIZE +ostechnix/ubuntu_apache latest bc5e5f95ca59 14 minutes ago 229MB +debian latest d2780094a226 11 days ago 124MB +ubuntu latest 27941809078c 3 weeks ago 77.8MB +ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB +alpine latest e66264b98777 5 weeks ago 5.52MB +``` + +从上面可以看到,在我们的主机上有 5 个 Docker 镜像。 + +通过使用镜像 ID 来删掉它们: + +``` +$ sudo docker rmi ce5aa74a48f1 +``` + +**输出结果:** + +``` +Untagged: ostechnix/ubuntu_apache:latest +Deleted: sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 +Deleted: sha256:a8e4797160a2b2d33d8bd1bd67e008260c022b3a53fbcc198b2b74d9eae5961d +``` + +同样,删除其他所有 Docker 镜像。 + +删掉所有未运行的容器,所有镜像,构建的缓存,所有网络,运行: + +``` +$ sudo docker system prune -a +``` + +使用这个命令的时候要注意,它会删掉所有没有使用的容器,网络,镜像(挂起dangling未使用unreferenced) + +![Delete Everything In Docker][16] + +默认情况下,即使当前没有容器在使用磁盘容量volumes,为防止重要数据被删除,磁盘容量volumes也不会被删除 + +如果你想删掉所有东西,包括分配的容量,使用 `--volumes` 标签。 + +``` +$ sudo docker system prune -a --volumes +``` + +### Docker 问题汇总 + +Docker 不会允许你删除 Docker 镜像,如果这些镜像正在被运行或停止的容器使用。 + +比如,当我尝试从一个以前的 Ubuntu 服务器上删除 ID 为 **b72889fa879c** 的 Docker 镜像。我会得到下面的错误: + +``` +Error response from daemon: conflict: unable to delete b72889fa879c (must be forced) - image is being used by stopped container dde4dd285377 +``` + +这是因为你想删除的 Docker 镜像正在被另一个容器使用。 + +所以,我们先查看一下运行中的容器,使用命令: + +``` +$ sudo docker ps +``` + +**输出结果:** + +![Show running docker containers][17] + +噢,没有运行中的容器。 + +我们在看一下所有的容器(运行和停止的),用这个命令: + +``` +$ sudo docker ps -a +``` + +**输出结果:** + +![Show running and stopped docker containers][18] + +可以看到,仍然有停止的容器在使用其中一个 Docker 镜像。所以,我们先把所有容器删掉。 + +**比如:** + +``` +$ sudo docker rm 12e892156219 +``` + +类似地,向上面那样,用对应容器的 ID 将他们都删除。 + +当把所有容器删掉后,移除掉 Docker 镜像。 + +**比如:** + +``` +$ sudo docker rmi b72889fa879c +``` + +就这么简单。现在确认是否还有其他 Docker 镜像在主机上,使用命令: + +``` +$ sudo docker images +``` + +你现在应该不再有任何 docker 镜像了。 + +### 总结 + +在这篇全面的 Docker 入门教程中,我们解释了 Docker 的基本操作,比如创建,运行,搜索,删除容器,还有从 Docker 镜像构建你自己的容器。同时,我们也解释了如何在不需要 Docker 容器和镜像的时候删除它们。 + +希望你现在对 **Docker 的使用** 有一个基本的了解 + +更多细节,请参考这篇教程最下面的官方资源链接,或者在下面的评论区进行评论。 + +**相关资料:** + +* [Docker 官网][19] +* [Docker 文档][20] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/getting-started-with-docker/ + +作者:[sk][a] +选题:[lkxed][b] +译者:[MCGA](https://github.com/Yufei-Yan) +校对:[校对者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-docker-almalinux-centos-rocky-linux/ +[2]: https://ostechnix.com/install-docker-ubuntu/ +[3]: https://hub.docker.com/ +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Search-Docker-Images.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Download-Docker-Images.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/List-Docker-Images.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Image-Tag-and-ID.png +[8]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Containers-Using-Tag-1.png +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Containers-In-Background-1.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Containers.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Find-Container-ID-And-Name.png +[12]: https://ostechnix.com/wp-content/uploads/2022/07/Automatically-Delete-Containers.png +[13]: https://ostechnix.com/wp-content/uploads/2022/07/Assign-Name-To-Containers.png +[14]: https://ostechnix.com/wp-content/uploads/2022/07/Build-Custom-Docker-Images.png +[15]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Containers.png +[16]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Everything-In-Docker.png +[17]: https://ostechnix.com/wp-content/uploads/2016/04/sk@sk-_005-1-1.jpg +[18]: https://ostechnix.com/wp-content/uploads/2016/04/sk@sk-_006-1.jpg +[19]: https://www.docker.com/ +[20]: https://docs.docker.com/ From 28019bd96ea673f0d6dd45269bc01a77948e1f08 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 14 Jul 2022 14:53:06 +0800 Subject: [PATCH 0373/3123] RP @mcfd https://linux.cn/article-14826-1.html --- ...tions and reminders from Linux terminal.md | 75 ++++++------------- 1 file changed, 24 insertions(+), 51 deletions(-) rename {translated/tech => published}/20220106 Send desktop notifications and reminders from Linux terminal.md (77%) diff --git a/translated/tech/20220106 Send desktop notifications and reminders from Linux terminal.md b/published/20220106 Send desktop notifications and reminders from Linux terminal.md similarity index 77% rename from translated/tech/20220106 Send desktop notifications and reminders from Linux terminal.md rename to published/20220106 Send desktop notifications and reminders from Linux terminal.md index 57cbcd3dcd..35ed30f1e0 100644 --- a/translated/tech/20220106 Send desktop notifications and reminders from Linux terminal.md +++ b/published/20220106 Send desktop notifications and reminders from Linux terminal.md @@ -3,135 +3,106 @@ [#]: author: "Tomasz Waraksa https://opensource.com/users/tomasz" [#]: collector: "lujun9972" [#]: translator: "mcfd" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14826-1.html" -从 Linux 终端发送桌面通知与提醒 +如何从 Linux 终端发送桌面通知与提醒 ====== -本 Linux 教程演示如何使用脚本命令来发送 -自己的桌面通知与提醒。 -![Person using a laptop][1] + +> 这篇教程演示如何使用脚本命令来发送自己的桌面通知与提醒。 + +![](https://img.linux.net.cn/data/attachment/album/202207/14/145103vawkhy6w506thy6h.jpg) 有时候,来自脚本的视觉回馈是很有用的。例如,当一个脚本或计划任务完成时,一个长期运行的构建任务失败时,或者当脚本执行中出现了紧急问题时。桌面应用程序可以通过弹出通知来做到这一点,但脚本也可以做到这一点!你可以使用脚本命令来给自己发送桌面通知与提醒。 ![Example notification][2] -(Tomasz Waraksa, CC BY-SA 4.0) - 下面的代码是在 Linux 上编写和测试的。它也可以在 macOS 上运行,只需花点功夫。请参见最后一节 [提示与技巧][3]。 ### 从 Linux 终端发送通知 -要从 Linux 终端发送通知,请使用 [`notify-send`][4] 命令。运行 `which ``notify-send`  命令来查看它是否在于你的系统中。如果没有,请使用包管理器来安装它。 +要从 Linux 终端发送通知,请使用 [notify-send][4] 命令。运行 `which notify-send` 命令来查看它是否在于你的系统中。如果没有,请使用包管理器来安装它。 在 Fedora 上,输入: - ``` -`$ sudo dnf install notify-send` +$ sudo dnf install notify-send ``` 在基于 Debian 的发行版上,输入: - ``` -`$ sudo apt install notify-send` +$ sudo apt install notify-send ``` 几个简单的通知示例: - ``` - - $ notify-send "Dinner ready!" $ notify-send "Tip of the Day" "How about a nap?" - ``` 你可以用紧急程度、自定义图标等选项来自定义通知。过 `man notify-send` 了解更多。你也可以在通知正文中使用一小组 HTML 标记,以使消息有一个棒的视觉感受。最重要的是,URL 被呈现为可点击的。例如: - ``` - - $ notify-send -u critical \ -  "Build failed!" \ -  "There were <b>123</b> errors. Click here to see the results: " - + "Build failed!" \ + "There were 123 errors. Click here to see the results: http://buildserver/latest" ``` ![Build fail notification][5] -(Tomasz Waraksa, CC BY-SA 4.0) - 发送的通知会被桌面环境接收,并像其他通知一样显示。它们将具有相同的外观、交互和行为。 ### 将 notify-send 与 at 结合使用 -计划任务通常被用来定期安排命令。`at` 命令安排在一个指定的时间执行一条命令。 如果你像这样运行它,它会以交互模式启动,你可以在其中输入要在指定时间执行的命令: - +计划任务通常被用来定期安排命令。`at` 命令安排在一个指定的时间执行一条命令。如果你像这样运行它,它会以交互模式启动,你可以在其中输入要在指定时间执行的命令: ``` -`$ at 12:00` +$ at 12:00 ``` -这对脚本来说并不有用。幸运的是, `at` 接受来自标准输入的参数,所以我们可以这样使用它: - +这对脚本来说并不有用。幸运的是 `at` 接受来自标准输入的参数,所以我们可以这样使用它: ``` - - $ echo "npm run build" | at now + 1 minute $ echo "backup-db" | at 13:00 - ``` 有许多指定时间的方法。 从绝对时间,如 `10:00`,到相对时间,如 `now + 2 hours` ,再特殊时间,如`noon` 或 `midnight`。我们可以把它和 `notify-send` 结合起来,在未来的某个时间向自己发送提醒。例如: - ``` -`$ echo "notify-send 'Stop it and go home now?' 'Enough work for today.' -u critical" | at now` +$ echo "notify-send 'Stop it and go home now?' 'Enough work for today.' -u critical" | at now ``` ![Stop for the day notification][6] -(Tomasz Waraksa, CC BY-SA 4.0) - ### 提醒的命令 现在,建立一个自定义的 Bash 命令来给自己发送提醒信息。像这样简单且人性化的命令: - ``` - - $ remind "I'm still here" now $ remind "Time to wake up!" in 5 minutes $ remind "Dinner" in 1 hour $ remind "Take a break" at noon $ remind "It's Friday pints time!" at 17:00 - ``` 这比 Alexa 更好!该怎样做? -请看下面的代码。它定义了一个名为 **remind** 的函数,它支持上述语法。实际工作是在最后两行完成的。其余的部分负责显示帮助信息、参数校验等,这与任何大型应用程序中有用的代码与必要的白噪声的比例大致相同。 +请看下面的代码。它定义了一个名为 `remind` 的函数,它支持上述语法。实际工作是在最后两行完成的。其余的部分负责显示帮助信息、参数校验等,这与任何大型应用程序中有用的代码与必要的白噪声的比例大致相同。 把代码保存在某个地方,例如,在 `~/bin/remind` 文件中,并在你的 `.bashrc` 配置文件写入该函数,以便在你登录时加载它: - ``` -`$ source ~/bin/remind` +$ source ~/bin/remind ``` -重新打开终端,然后输入 remind 来查看语法。尽情享受吧! - +重新打开终端,然后输入 `remind` 来查看语法。尽情享受吧! ``` - - #!/usr/bin/env bash function remind () {   local COUNT="$#" @@ -201,7 +172,9 @@ function remind () { * * * -_本文经作者许可改编自原文,详情见[此处][7]。_ +(文内图片来自 Tomasz Waraksa, CC BY-SA 4.0) + +本文经作者许可改编自 [原文][7]。 -------------------------------------------------------------------------------- @@ -210,7 +183,7 @@ via: https://opensource.com/article/22/1/linux-desktop-notifications 作者:[Tomasz Waraksa][a] 选题:[lujun9972][b] 译者:[mcfd](https://github.com/mcfd) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ebcf2995edd4af1de7b7fefd419eca7532a599a2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 14 Jul 2022 15:16:31 +0800 Subject: [PATCH 0374/3123] RP @geekpi https://linux.cn/article-14827-1.html --- ...ee and Open-Source Code Snippet Manager.md | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) rename {translated/tech => published}/20220704 massCode- A Free and Open-Source Code Snippet Manager.md (59%) diff --git a/translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md b/published/20220704 massCode- A Free and Open-Source Code Snippet Manager.md similarity index 59% rename from translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md rename to published/20220704 massCode- A Free and Open-Source Code Snippet Manager.md index f5480747db..4ac978e0aa 100644 --- a/translated/tech/20220704 massCode- A Free and Open-Source Code Snippet Manager.md +++ b/published/20220704 massCode- A Free and Open-Source Code Snippet Manager.md @@ -3,29 +3,32 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14827-1.html" -massCode:一个免费和开源的代码片段管理器 +massCode:一个自由开源的代码片段管理器 ====== -简介:一个开源的代码片段管理器,使你能够涉足代码,提高生产力,并节省时间。 + +![](https://img.linux.net.cn/data/attachment/album/202207/14/151504ti9twf2u5kft2wh2.jpg) + +> massCode 是一个开源的代码片段管理器,使你能够涉足代码,提高生产力,并节省时间。 如果一个工具能让事情变得更快、更有效率,那对许多开发者来说就是救命稻草。 -虽然有不同的服务和平台试图使编码体验更快,但你仍然有其他几个选择可以考虑。 +虽然有各种服务和平台试图使编码体验更快,但你仍然有其他几个选择可以考虑。 -例如,一个代码片段管理器。使用代码片段管理器,你的目的是保存你想快速访问的代码部分。它更像是指定快捷方式,在你的程序中添加所需的代码。 +例如,代码片段管理器。使用代码片段管理器,你的目的是保存你想快速访问的代码片段。它更像是指定快捷方式,在你的程序中添加所需的代码。 这不是一个新的概念,但可用于这项工作的工具可能不完全是开源的。 -幸运的是,我偶然发现了一个不错的项目,它为你提供了一个免费的、开源的片段管理器,即 massCode。 +幸运的是,我偶然发现了一个不错的项目,它为你提供了一个自由开源的片段管理器,即 massCode。 ### massCode:跨平台的开源片段管理器 ![masscode][1] -massCode 是一个有用的片段管理器,具有一些基本功能。 +massCode 是一个有用的代码片段管理器,具有一些基本功能。 它支持广泛的编程语言,还包括对 Markdown 的支持。你可以使用文件夹组织你的代码片段,添加标签等。 @@ -37,30 +40,30 @@ massCode 可用于 Linux、Windows 或 macOS。让我们来看看一些主要功 massCode 包括许多有用的功能。其中一些是: -* 多层次的文件夹组织者 +* 多层次的文件夹结构 * 每个片段都可以存储在片段(标签)中 -* 集成编码编辑器,即 [Ace][3]。 -* 代码格式化或高亮显示。 -* 支持带预览的 Markdown。 -* 能够搜索一个片段。 -* 给你的代码段添加描述,以了解它的用途。 -* 各种深色/浅色主题可用。 -* 能够从 [SnippetsLab][4] 迁移。 -* 自动保存以帮助你保留你的工作。 -* 将其与云同步文件夹整合。 -* 对 VSCode、Raycast 和 Alfred 的扩展支持。 +* 集成的编码编辑器 [Ace][3] +* 代码格式化或高亮显示 +* 支持带预览的 Markdown +* 能够搜索片段 +* 给你的代码段添加描述,以了解它的用途 +* 各种深色/浅色主题可用 +* 能够从 [SnippetsLab][4] 迁移 +* 自动保存以帮助你保留你的工作 +* 将其与云同步文件夹整合 +* 支持 VSCode、Raycast 和 Alfred 的扩展 除了上述所有功能外,你还可以轻松地复制保存代码片段,只需点击一下。 对于自定义,你可以调整字体大小和系列、切换自动换行、高亮显示行、使用单引号或添加尾随命令,这要归功于 [Prettier][5]。 -此外,一份片段可以有多个片段。 因此,它使你有机会将其用于各种用例。 +此外,一份片段可以有多个分片。因此,它使你有机会将其用于各种用例。 如前所述,你也可以通过改变同步文件夹的存储位置将其与你的任何云同步服务整合。 ![masscode migrate preferences][6] -总的来说,它工作得很好,有一些局限性,比如将嵌套文件夹从 SnippetsLab 迁移到 masCode 的能力。 +总的来说,它工作得很好,有一些局限性,比如缺乏将嵌套文件夹从 SnippetsLab 迁移到 masCode 的能力。 ### 在 Linux 上安装 massCode @@ -70,13 +73,13 @@ massCode 有 [Snap 包][7],但不在 Snap 商店中。你可以直接下载该 sudo snap install --dangerous ~/Downloads/masscode_2.6.1_amd64.snap ``` -我们的一份故障排除指南可以帮助你了解更多关于 [dangerous snap 选项][8]。 +我们的一份故障排除指南可以帮助你了解 [snap 的 dangerous 选项][8]。 -你可以通过其[官方网站][9]或 [GitHub 发布区][10]下载 Windows/MacOS 版。 +你可以通过其 [官方网站][9] 或 [GitHub 发布区][10] 下载 Windows/MacOS 版。 -[massCode][11] +> **[massCode][11]** -你试过 massCode 了吗?还有其他可用于 Linux 的代码片段管理器吗?请在下面的评论中告诉我你的想法。 +你试过 massCode 吗?还有其他可用于 Linux 的代码片段管理器吗?请在下面的评论中告诉我你的想法。 -------------------------------------------------------------------------------- @@ -85,7 +88,7 @@ via: https://itsfoss.com/masscode/ 作者:[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/) 荣誉推出 From 8864e55781cbabd9ea23c612a2a0671bc0629501 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Thu, 14 Jul 2022 02:42:31 -0500 Subject: [PATCH 0375/3123] Translating. --- .../20211122 7 key components of observability in Python.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211122 7 key components of observability in Python.md b/sources/tech/20211122 7 key components of observability in Python.md index 79728f9326..9ae46b153c 100644 --- a/sources/tech/20211122 7 key components of observability in Python.md +++ b/sources/tech/20211122 7 key components of observability in Python.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/11/observability-python" [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "MCGA" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From bbefe03828029b5235966506c5fdc727e22bd541 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:21:35 +0800 Subject: [PATCH 0376/3123] teanslated it lacks an URL. --- ...ssary Ubuntu Apps For Everyone [Part 3].md | 209 +++++++++--------- 1 file changed, 109 insertions(+), 100 deletions(-) diff --git a/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md b/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md index 47dca49396..d053ae90da 100644 --- a/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md +++ b/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md @@ -2,253 +2,262 @@ [#]: via: "https://www.debugpoint.com/necessary-ubuntu-apps-2022" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -10 Necessary Ubuntu Apps For Everyone [Part 3] +10 大必备 Ubuntu 应用——第三篇 ====== -This article lists the top 10 necessary Ubuntu apps for your daily workflow. +本文列出了 2022 年可以用于日常工作的 10 个 Ubuntu 必备应用。 -We often forget that thousands of free and open-source applications can compete with other commercial counterparts in their category. Moreover, if you are a Windows user and thinking about getting rid of Windows completely, you should also be aware of such apps beforehand. +我们经常忘记在有成千上万的免费和开源应用能够与同类商业产品相媲美。此外,若你是 Windows 用户并且想完全摆脱 Windows ,你应该提前想到这些应用。 -Hence, in this article series of “necessary Ubuntu apps”, we are featuring ten apps for much-needed awareness among Linux users. +因此,在这一“必备 Ubuntu 应用”文章中,我们为急需的 Linux 用户列举了 10 款应用。 -This is part 3 of this Ubuntu Apps series. If you missed the earlier parts, you can read them here, Or navigate from the Menu above. +这是这个系列的第三篇文章,如果你错过了之前的文章,可以通过以下链接阅读: * [Part 1][1] * [Part 2][2] -### Best Ubuntu Apps in 2022 – Part 3 #### Guake -Ever wanted to quickly open a terminal with a quick keyboard shortcut while you are middle of a vital workflow? This Top-Down terminal app Guake helps you to do that. If you are busy working on an essay, editing a video, debugging a code in your favourite code editor and want to quickly check something in the terminal and then go back to work – Guake can help you do that. Just press F12 and a terminal will pop up, and press F12 again, and it will go away—no need to launch/close a separate terminal instance. +你是否想要在重要工作中使用快捷键打开一个终端?这款自上而下的终端程序 Guake 能够帮你实现。如果你正忙于写文章、剪辑视频、在你最喜欢的代码编辑器中写代码,并想要快速用终端检查一些东西并返回到工作中, Guake 能够帮助你。只用按 F12 终端就会立即出现,再次按 F12 它会消失,不用打开或关闭不同的终端。 + ![Guake Running in Ubuntu][3] -For Ubuntu and other related distros, you can run the below command to install. For further download options, visit [this page][4]. +在 Ubuntu 或其他发行版,你可以使用以下命令安装。如需更多下载选项,请访问 [此页面][4]。 + ``` sudo apt install guake ``` -**More information about Guake:** +**关于 Guake 的更多信息:** -* [Home page][5] -* [Source code][6] +* [主页][5] +* [源码][6] #### Safe Eyes -Eyes are precious, and if you are a user with long work hours on Laptop/Desktop, you should also take care of your eyes. While there are other methods, this app, Safe Eyes, can help reduce and prevent repetitive strain injury. +眼睛很宝贵,如果你是长时间使用平板或电脑的用户,你应该保护好眼睛。这里有一款可以帮助你保护眼睛的应用—— Safe Eyes ,能够帮你减少并预防用眼过度。 -Safe Eyes app gives you pop-up instruction with activities such as ‘rotate your eyes clockwise for 10 seconds’ during your work. +Safe Eyes 这款应用会在你的工作期间为你提供“顺时针转动眼睛 10 秒”等活动的弹出式指令。 + +我认为它是每个人都应该尝试使用的一款 Ubuntu 应用。 -I think it is one of the necessary Ubuntu apps everyone should try. ![Safe Eyes][7] -Installing safe eyes is easy to install in Ubuntu via PPA. You can open a terminal prompt and run the following commands to install this app. +通过 PPA 很容易在 Ubuntu 上安装 Safe Eyes 。你可以打开终端并使用以下命令安装这款应用。 + ``` sudo add-apt-repository ppa:slgobinath/safeeyessudo apt updatesudo apt install safeeyes ``` -For other download, options visit [this page][8]. +更多下载选项,请访问 [此页面][8]。 -**More details:** +**关于 Safe Eyes 的更多信息** -* [Home page][9] -* [Source code][10] +* [主页][9] +* [源码][10] #### Tusk -Note-taking apps are plenty. Moreover, all the Linux distributions, including Ubuntu, always bring a basic text editor. But for advanced note-taking, you need a specialized app. +记笔记的应用有很多。虽然,包括 Ubuntu 在内的所有 Linux 发行版,都带有一个基础文本编辑器,但是想要高级的笔记功能,你需要一个专业应用。 -Tusk is a modern Evernote desktop app available for Ubuntu/Linux. It comes with plenty of themes such as Light, Sepia, and Dark – it is loaded with features such as: +Tusk 是适用于 Ubuntu/Linux 的新款印象笔记桌面应用程序。它带有大量主题,例如浅色、深褐色和深色。它具有以下功能: -* Local and global customizable keyboard shortcuts -* Update notification -* A cross-platform app built on electron -* Scalable interface (zoom-in and out) -* Black, light and sepia themes -* Focus mode and auto night mode -* Export options of notes to HTML, PDF, and mark down files +* 局部和全局自定义快捷键 +* 更新提示 +* 基于 Electron 的跨平台应用 +* 可扩展的界面(放大和缩小) +* 浅色、深褐色和深色主题 +* 对焦模式和自动夜间模式 +* 将笔记导出为 HTML、PDF 和 Markdown 格式 ![Tusk][11] -This application is available as AppImage, Deb and RPM files for Linux distributions. You can download the deb file from the below link and run it to install it in Ubuntu. For other download options, visit [this page][12]. +该应用有 Linux 发行版的 AppImage 、Deb 和 RPM 文件等格式。你可以从以下链接下载 deb 文件并运行它以在 Ubuntu 中安装它。有关其他下载选项,请访问 [此页面][12]。 -[Download Tusk][13] -**More information about Tusk**: +[下载 Tusk][13] -* [Home page][14] -* [Source code][15] +**关于 Tusk 的更多信息**: + +* [主页][14] +* [源码][15] #### Krita -If you are an artist or learning to draw in Linux, your must-have application is Krita. Krita brings a vast selection of drawing tools, including advanced modes such as pressure-sensitive drawing. In addition, you can also use Krita on touch-based tablet devices. Some of its unique features include: +如果你是一个艺术家并学着在 Linux 上绘画,那你一定要用 Krita 。Krita 拥有众多绘画工具,包含诸如压敏绘画等高级模式。此外,你也可以在触屏设备上使 Krita 。它包含一些独特的功能: -* Customizable toolbar and docks -* Save your workspace as a file -* Light and dark theme -* Built-in vector engine, a vast set of brushes -* Brush engine with stabilization -* Support for PhotoShop Document (PSD) -* Full-colour support -* Extend your workflow with Python script +* 自定义工具栏和停靠栏 +* 将工作区另存为文件 +* 明暗主题 +* 内置矢量引擎,海量画笔 +* 带稳定功能的刷子引擎 +* 支持 PhotoShop 文件 (PSD) +* 全彩支持 +* 支持 Python 脚本扩展 ![Krita Drawing Program][16] -Installing Krita is easy because it is available for all Linux distribution’s official repo. For Ubuntu, you can search in Software and install it. If you prefer the terminal, you can also run the following command for installation. +在所有的 Linux 发行版的官方仓库都有 Krita ,所以很容易安装。在 Ubuntu 中,你可以在应用商店里搜索并安装。如果你更喜欢使用终端安装,可以运行如下指令: ``` sudo apt install krita ``` -For more details about Krita, visit the following pages: +浏览以下链接了解 Krita 的更多信息: -* [Home page][17] -* [Documentation and learning][18] -* [Source code][19] +* [主页][17] +* [学习文件][18] +* [源码][19] #### Foliate -When you think about e-book readers, always Calibre comes to mind. But there is another stunning GNOME app – Foliate. Foliate is a modern e-book reader written in GTK which brings exciting features such as custom colours of your pages, brightness, multicolumn support and more. In addition, it supports epub, Amazon Kindle, Fiction book, comic book archive and Mobipocket formats to give you complete control of your collection. +当你想要一个电子书阅读器时,你会情不自禁地想到 Calibre 。不过还有一款杰出的 GNOME 应用—— Foliate 。Foliate 是用 GTK 编写的新颖的电子书阅读器,它带来了令人惊奇的功能,例如页面的自定义颜色、亮度、多列支持等等。此外,它还支持 epub、Amazon Kindle、小说、漫画书存档和 Mobipocket 格式,让你完全控制自己的收藏。 + +如果你想要一个漂亮而优美的电子书阅读器,非它莫属。 -It’s a must-have app if you want a nice and sleek e-book reader. ![Foliate][20] -Installing Foliate is easy, using Flatpak for all Linux distros. First, you need to [set up Flatpak][21] and click on the below button to install. +使用 Linux 发行版的 Flatpak 安装 Foliate 很容易。首先,你需要 [设置 Flatpak][21] 并单击下方链接进行安装。 -[Download Foliate][22] +[下载 Foliate][22] -**More information**: +**更多信息**: -* [Home page][23] -* [Source code][24] +* [主页][23] +* [源码][24] #### Bitwarden -On average, every person has at least 10+ online accounts and passwords. And the more you are tech-savvy, the number of passwords you have to manage increases. Using a password manager is always recommended to protect your data and passwords. Hence the next app in this list is the best password manager available today, i.e. Bitwarden. +平均每个人至少有十个账号和密码。若你精通技术,那么你管理密码的数量肯定会增加。使用密码管理器能够更好的保护你的数据以及密码。那么接下来这款应用,Bitwarden ,是当今管理密码最好的应用 -Bitwarden is a free and open-source password manager that helps you generate, store and protect your online credentials easily. Backed by AES-256 encryption, Bitwarden also syncs passwords among multiple devices such as mobile phones and tabs. +Bitwarden 是一款免费开源的密码管理器,能够轻松帮助你生成、存储并保存密码。基于 AES-256 加密方案, Bitwarden 能够在不同设备,比如手机和平板自动同步密码。 ![Bitwarden Password Manager desktop client][25] -You can download the self-contained executable AppImage file from [this page][26]. Also, if you plan to access it in your favourite browser, you can get it there. +你可以从 [此页面][26] 下载可执行安装包文件。此外,如果你打算在你最喜欢的浏览器中使用它,也可以在该页面中获取。 -More information about Bitwarden: +关于 Bitwarden 更多信息: -* [Home page][27] -* [Help and documentation][28] +* [主页][27] +* [帮助文档][28] #### Brave Browser -Brave is a Chromium-based privacy-centric web browser. It is perfect for users who want complete control of their online activities. Brave comes with a built-in ad blocker, incognito browsing, VPN, and Tor mode for more anonymous browsing. +Brave 是基于 Chromium 的以隐私为中心的浏览器。它非常适合希望完全控制其在线活动的用户。Brave 带有内置广告拦截器、隐身浏览、VPN 和 Tor 模式,可实现更多匿名浏览。 -Recently, Brave browser also introduced an email service, which you can access right from the browser itself. Furthermore, it brings some advantages over Firefox, Google Chrome and Safari. +最近,Brave 推出了电子邮件服务,你可以直接从浏览器访问邮件。此外,它具备一些 Firefox 、 Google Chrome 以及 Safari 没有的优点。 ![Brave Browser][29] -Installing the Brave browser requires additional commands from the terminal for Ubuntu Linux. You can find the detailed download instructions [here][30]. +在 Ubuntu 终端上安装这款浏览器需要额外的命令。你可以 [在此][30] 找到相信的下载教程。 -For more details, visit the official [home page][31]. +更多详细信息,浏览官方 [主页][31] 。 #### Mailspring -If you are looking for a friendly and productive desktop email client for Linux which supports all email protocols, then try Mailspring. +如果你在找一款友好的并且高效的 Linux 桌面电子邮件客户端,并且想要它支持所有的电子邮件协议,那你应该试试 Mailspring 。 -Mailspring brings multiple account support, a unified mailbox, and touch and gesture support. In addition, it supports Microsoft Office 365, one of the best advantages of this email client in Linux systems. Moreover, features such as fast search, translations, undo send (recall), and built-in spell-check make it one of the best email clients. +Mailspring 支持多个账户、统一邮箱并且支持触控和手势。它还支持 Microsoft Office 365 ,这是此电子邮件客户端在 Linux 系统中的最大优势之一。此外,具有快速检索、翻译、取消发送(邮件召回)以及内置的拼写检查等特征,使得它是最好的邮件客户端之一。 -It also comes with a paid version with a minimal monthly fee and additional features such as company profile creation, link tracking, read receipt, templates and insights. The insights feature in the pro version gives details about when you receive more emails during the day. +它还配备了每月最低费用的付费版本和附加功能,例如公司资料创建、链接跟踪、阅读回执、模板和见解。专业版中的洞察功能提供了有关你在白天何时收到更多电子邮件的详细信息。 ![Mailspring Email Client][32] -This application is available as a Snap and Deb file for Ubuntu and related Linux. +这款应用可以通过 Snap 和 Deb 文件在 Ubuntu 或其他相关 Linux 上安装。 -For the Snap package, visit the official Snapcraft page [here][33] and install it. +访问官方 [Snapcraft 页面][33] 获取 Snap 包并安装。 -And for the deb package, click here to download it. After download, you can double-click the deb package to install via Software in Ubuntu. +点击 [这里] **这里缺少链接(译注)** 下载 deb 包。下载后,你可以双击 deb 文件通过 Ubuntu 应用商店程序安装。 -For more details, refer to the following pages. +更多信息请参考以下链接: -* [Home page][34] -* [Other download options][35] (Fedora Linux, Windows and macOS) + +* [主页][34] +* [其他下载选项][35] (Fedora Linux, Windows 以及 macOS) #### Blender -I’m sure you have heard about Blender. Blender is one of the free and open-source professional-grade graphic design software which is capable of doing almost everything that you need for your graphics project. +我确信你听说过 Blender 。 Blender 是一款免费并开源的专业级图形设计软件,几乎可以完成图形项目所需的一切。 ![Blender Video Editor][36] -You can create animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, and computer games. Blender’s features include 3D modelling, UV unwrapping, texturing, raster graphics editing, rigging and skinning, fluid and smoke simulation, particle simulation, soft body simulation, sculpting, animating, match moving, rendering, motion graphics, video editing, and compositing. +你可以创建动画电影、视觉效果、艺术作品、3D 打印模型、动态图形、交互式 3D 应用程序和计算机游戏。 Blender 的功能包括 3D 建模、UV 展开、纹理、光栅图形编辑、绑定和蒙皮、流体和烟雾模拟、粒子模拟、柔体模拟、雕刻、动画、匹配移动、渲染、运动图形、视频编辑和合成。 -It is a professional-grade application which is still free and open-source. +它是一个专业级的应用程序,还是免费和开源的。 -For easy installation in Ubuntu, open Software, search for Blender, and then hit install. Alternatively, you can also open a terminal window and run the following command to install. + +想要在 Ubuntu 中轻松安装,打开应用商店,搜索 Blender,然后点击安装。或者,你也可以打开终端窗口并运行以下命令进行安装。 ``` sudo apt install blender ``` +该软件适用于 Windows、macOS 和其他平台。你可以访问 [官方下载页面][37] 了解更多详情。 -This software is available for Windows, macOS and other platforms. You can visit the [official download page][37] for more details. -**More information:** +**更多信息:** -* [Home page][38] -* [Detailed Feature highlights][39] -* [Documentation][40] +* [主页][38] +* [详细功能亮点][39] +* [文档][40] #### Ungoogled Chromium -If you want a clean browser free from Google apps and services, you should try out the Ungoogled Chromium browser. It’s a drop-in replacement for the stock Chromium experience without the Google integrated services. +如果你想要一个没有 Google 应用和服务的干净浏览器,你应该尝试使用 Ungoogled Chromium 浏览器。在没有 Google 集成服务的情况下,它可以替代现有的 Chromium 体验。 -For example, it is free of all pre-compiled binaries from the code and all Google integration and also disables features requiring manual enabling for better control. +例如,它没有代码中的所有预编译二进制文件和所有 Google 集成,并且还禁用了需要手动启用以获得更好控制的功能。 -Perhaps a well-suited browser is the best Chromium experience. +或许一个合适的浏览器,才会有最好的 Chromium 体验。 ![Ungoogled-Chromium][41] -Installing Ungoogled Chromium is easy using Flatpak. First, set up[Flatpak][42] and install this browser using the following command. +使用 Flatpak 安装 Ungoogled Chromium 很容易。首先设置 [Flatpak][42] 然后使用下列命令安装该浏览器: ``` flatpak install flathub com.github.Eloston.UngoogledChromium ``` +浏览 [官方 GitHub 页面][43] 获取该浏览器更多信息。 -To learn more, visit the [official GitHub page][43] of this browser. #### Tilix ![Tilix Terminal Window][44] -The final app in this necessary Ubuntu apps list is Tilix. Tilix is a tiling window-based terminal emulator which is based on GTK. It comes with custom titles, additional notification support (for command completion) and transparent background image support. In addition, Tilix also enables you to add a custom image background in the terminal window. Finally, you can create multiple terminal panes side-by-side in a single window. +必备 Ubuntu 应用程序列表中的最后一个应用程序是 Tilix 。Tilix 是一个基于 GTK 的基于平铺窗口的终端仿真器。它带有自定义标题、附加通知支持(用于命令完成)和透明背景图像支持。此外,Tilix 还允许你在终端窗口中添加自定义图像背景。最后,你可以在一个窗口中并排创建多个终端窗口。 -An advanced terminal is written in GTK, which you may find productive. +这是一个用 GTK 编写的高级终端,你可能会发现它很有用。 + +所有 Linux 发行版都有安装包。在 Ubuntu 或相关版本,运行以下命令进行安装: -Installation packages are available for all Linux distributions. For Ubuntu and related distros, run the following command to install. ``` sudo apt install tilix ``` -For more details, visit the Tilix [home page][45]. +更多信息请浏览 Tilix [主页][45] 。 -### Closing Notes -This completes part 3 of a 5-part series of best Ubuntu Apps in 2022. I hope you get to install and use some of these applications in Ubuntu and other distros for your daily productive output. Also, let me know which apps you pick from this list as your best in the comment box below. +### 结语 -Finally, stay tuned for part 4 of this Ubuntu apps series. If you missed the other parts, you could read them here: +这是 2022 年 5 篇系列的必备 Ubuntu 应用程序的第 3 篇。我希望你能够在 Ubuntu 或者其他 Linux 发行版上安装,并在你的日常工作中使用这些应用程序。同时,欢迎在下方评论,让我知道你最喜欢哪一款应用。 -* [Part 1][46] -* [Part 2][47] +最后,请继续关注本 Ubuntu 应用程序系列的第 4 部分。如果你错过了其他部分,你可以在这里阅读它们: -Cheers. +* [第一篇][46] +* [第二篇][47] -*Some image credits: Respected app developers/teams.* +干杯! + +*一些图片来源:令人尊敬的应用开发人员或团队* -------------------------------------------------------------------------------- @@ -256,7 +265,7 @@ via: https://www.debugpoint.com/necessary-ubuntu-apps-2022 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 374f271eb05257513c8470a46319c96cc860b9b7 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:29:48 +0800 Subject: [PATCH 0377/3123] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Attention:有个地方缺少一个链接,我在文中添加了译注,将那个缺少的链接可以放入这个链接:https://updates.getmailspring.com/download?platform=linuxDeb 我已检查过原文,那里也没有链接。 --- .../20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md (100%) diff --git a/sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md b/translated/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md similarity index 100% rename from sources/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md rename to translated/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md From 88fea8132c8b29406bef9affea084d14fa56ba46 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 15 Jul 2022 08:40:12 +0800 Subject: [PATCH 0378/3123] translated --- ...wal of SSL Certificates- A Simple Guide.md | 80 ------------------- ...wal of SSL Certificates- A Simple Guide.md | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 80 deletions(-) delete mode 100644 sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md create mode 100644 translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md diff --git a/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md b/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md deleted file mode 100644 index 0bd9f124a5..0000000000 --- a/sources/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Manual Renewal of SSL Certificates: A Simple Guide" -[#]: via: "https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/" -[#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Manual Renewal of SSL Certificates: A Simple Guide -====== - -![SSL-Certificates-Featured-image][1] - -*In the April 2022 issue of this magazine, we read about the different types of SSL certificates and their applications. This article explains how to manually renew an existing SSL certificate, so that it stays updated with the latest security requirements.* - -When visitors interact with your website and share critical details like credit card numbers, they trust that their information has been secured against misuse. So it becomes your responsibility to respect that trust and offer complete protection to all the visitors on your site. Failing to do so can not only cost you the loyalty of customers but may also put you in a legal soup. There have been many instances where websites that couldn’t protect their customers’ data against leakage, theft or misuse were forced to pay hefty penalties, and also lost their reputation. - -#### How does an SSL certificate secure customers’ data? - -One of the best ways to protect sensitive customer information is to secure your site with an SSL (secure sockets layer) certificate. Without going into the technical nitty-gritties, an SSL certificate encrypts the communication between a Web server and the visitor’s browser, and thus makes it technically impossible for hackers or threat actors to steal data in transit. SSL establishes a secure handshake process to decrypt the encrypted information — a process that is too complex to be cracked by humans or even software. - -#### Why do you need to update your SSL certificate? - -While an SSL certificate does offer security against data theft or misuse, you need to update it periodically to ensure the most effective security against the latest threats. This article will list the step-by-step instructions for renewing your SSL certificate in the right way. - -There are quite a few benefits of updating an SSL certificate: - -* Timely renewal authenticates your website’s identity. -* You get updated security. -* A one-year validity promotes the healthy practice of periodically renewing/upgrading the scope of protection, thus eliminating the risks associated with outdated versions. - -> Note: The best practice is to select an auto renewal option that relieves you from the stress of remembering the renewal date or manually following the related steps. | - -#### A bit off topic …a pure open source way to build your own SSL certificate - -Yes, it is absolutely true! With some simplified and compact steps you can actually build your own SSL certificate from scratch! While the entire process is out of the scope of this article, here are a few key open source components and tools that you can use to create your SSL certificate. - -* OpenSSL: This is a highly credible tool to implement TLS and crypto libraries. -* EasyRSA: This command-line tool enables you to build PKI CA and manage it efficiently. -* CFSSL: Cloudflare has finally built a multi-purpose, multi-capability tool for PKI and TLS. -* Lemur: A fair enough TLS producer developed by Netflix. - -### How to renew your SSL certificate - -While the broad process of [SSL][2] renewal remains the same, there could be some minor tweaks and variations depending upon your specific SSL provider. - -The renewal process follows three main steps — CSR (certificate signing request) generation, certificate activation and, finally, the certificate installation. - -**Generating CSR:** For cPanel hosting panels, you can click on the Security tab and search for the *SSL/TLS* option. It will display a screen that shows a link just under the CSR option. This section facilitates new CSR generation for your desired domain name. - -You will be asked detailed contact information for confirming that you are the genuine domain owner. After filling the form, you will get a CSR code that is needed for certificate reactivation. - -*Activating an SSL certificate:* In your dashboard, you can see a quick overview of the SSL certificate, domains and other digital infrastructure products that you own. Click this button to start the SSL renewal process. Enter the CSR generated a while ago and confirm the accuracy of the information. You can now validate the SSL renewal process. - -*Validating the SSL certificate:* You will once again be prompted to confirm domain ownership. Enter your domain-associated email. Upload a file on the Web server where the certificate needs to be installed. Validate the SSL certificate with the help of CNAME records. While there are multiple options, it is best and easiest to validate it with an email. Once you enter the domain associated email, you will get an email containing a specific link followed by another mail that comprises the new certificate file with a .*crt* extension. - -*Installing the SSL certificate:* Your Web hosting provider will either give you an option for communicating with the support team for installing renewed files or provide you with the detailed instructions on how you can do it manually through your cPanel. Keep in mind that different hosts offer different options for renewal. That said, if you are a non-technical person then contacting the support team will be the best option for you. - -For manual updating, visit the *SSL/TLS* section of your cPanel and find the *Manage SSL* sites option. It contains the entire domain list that you own. Corresponding to each domain name you can see the Certificate Renewal option. - -In the screen next to it, enter the details in *Private Key* using the *Autofill* by *Domain* option. Under the *Certificate* option, fill the details of your .*crt file*. You are almost done. Just click the button that reads *Install Certificate*. - -Along with saving the critical data and sensitive information of your users, the SSL certificate also builds trust by reaffirming that data shared on your site is secure. It can also affect your SEO profile positively as Google considers SSL certification a healthy practice. However, to continue enjoying the best security with this certificate, you need to update it periodically. This ensures that your site is fully secured against the data in transit attacks as per the latest security requirements. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/ - -作者:[Jitendra Bhojwani][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/jitendra-bhojwani/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/SSL-Certificates-Featured-image.jpg -[2]: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwitou7xjv_3AhWLRmwGHVZ2BWwQFnoECB0QAQ&url=https%3A%2F%2Fgithub.com%2Fopenssl%2Fopenssl&usg=AOvVaw0niwMRCpb4nN_PtJFMQwWP diff --git a/translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md b/translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md new file mode 100644 index 0000000000..ba8ae5c36d --- /dev/null +++ b/translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md @@ -0,0 +1,80 @@ +[#]: subject: "Manual Renewal of SSL Certificates: A Simple Guide" +[#]: via: "https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/" +[#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +手动续订 SSL 证书:简单指南 +====== + +![SSL-Certificates-Featured-image][1] + +*在本杂志 2022 年 4 月号中,我们了解了不同类型的 SSL 证书及其应用。本文介绍如何手动更新现有 SSL 证书,以使其保持最新的安全要求。* + +当访问者与你的网站互动并分享信用卡号码等关键细节时,他们相信他们的信息已得到保护,不会被滥用。因此,你有责任尊重这种信任并为你网站上的所有访问者提供全面保护。不这样做不仅会使你失去客户的忠诚度,而且还可能使你陷入法律困境。在许多情况下,无法保护客户数据免遭泄露、盗窃或滥用的网站被迫支付巨额罚款,同时也失去了声誉。 + +#### SSL 证书如何保护客户的数据? + +保护敏感客户信息的最佳方法之一是使用 SSL(安全套接字层)证书保护你的站点。在不涉及技术细节的情况下,SSL 证书对 Web 服务器和访问者浏览器之间的通信进行加密,从而使黑客或威胁参与者在技术上不可能窃取传输中的数据。 SSL 建立了一个安全的握手过程来解密加密的信息,这个过程太复杂了,人类甚至软件都无法破解。 + +#### 为什么需要更新 SSL 证书? + +虽然 SSL 证书提供了防止数据盗窃或滥用的安全性,但你需要定期更新它以确保最有效的安全性以抵御最新的威胁。本文将列出以正确方式更新 SSL 证书的分步说明。 + +更新 SSL 证书有很多好处: + +* 及时更新验证您网站的身份。 +* 获得更新的安全性。 +* 一年有效期促进定期更新/升级保护范围的健康实践,从而消除与过时版本相关的风险。 + +> 注意:最佳做法是选择自动续订选项,以减轻你记住续订日期或手动执行相关步骤的压力。 + +#### 有点跑题了,构建你自己的 SSL 证书的纯开源方式 + +是的,这绝对是真的!通过一些简化和紧凑的步骤,你实际上可以从头开始构建自己的 SSL 证书!虽然整个过程超出了本文的范围,但这里有一些可用于创建 SSL 证书的关键开源组件和工具。 + +* OpenSSL:这是实现 TLS 和加密库的高度可信的工具。 +* EasyRSA:此命令行工具使你能够构建 PKI CA 并有效地管理它。 +* CFSSL:Cloudflare 终于为 PKI 和 TLS 构建了一个多用途、多功能的工具。 +* Lemur:由 Netflix 开发的足够公平的 TLS 生成器。 + +### 如何更新你的 SSL 证书 + +虽然 [SSL][2] 更新的一般过程不变,但可能会有一些细微的调整和变化,具体取决于你的特定 SSL 提供商。 + +更新过程遵循三个主要步骤:CSR(证书签名请求)生成、证书激活,最后是证书安装。 + +**生成 CSR:** 对于 cPanel 托管面板,你可以单击安全选项卡并搜索 *SSL/TLS* 选项。它将显示一个页面,显示 CSR 选项下方的链接。这里有助于为你所需的域名生成新的 CSR。 + +系统将询问你详细的联系信息,以确认你是真正的域所有者。填写表格后,你将获得证书重新激活所需的 CSR 代码。 + +*激活 SSL 证书:* 在你的仪表板中,你可以快速查看拥有的 SSL 证书、域和其他数字基础设施产品。单击此按钮开始 SSL 续订过程。输入前段时间生成的 CSR,确认信息的准确性。你现在可以验证 SSL 续订过程。 + +*验证 SSL 证书:* 系统将再次提示你确认域所有权。输入与域相关的电子邮件。在需要安装证书的 Web 服务器上上传文件。借助 CNAME 记录验证 SSL 证书。虽然有多种选择,但最好和最简单的方法是通过电子邮件进行验证。输入与域关联的电子邮件后,你将收到一封包含特定链接的电子邮件,然后是另一封邮件,其中包含带有 .*crt* 扩展名的新证书文件。 + +*安装 SSL 证书:* 你的网络托管服务提供商将为你提供与支持团队沟通以安装更新文件的选项,或为你提供有关如何通过 cPanel 手动执行此操作的详细说明。请记住,不同的主机提供不同的续订选项。也就是说,如果你是非技术人员,那么联系支持团队将是你的最佳选择。 + +如需手动更新,请访问 cPanel 的 *SSL/TLS* 页并找到 *Manage SSL* 站点选项。它包你拥有的整个域列表。对应每个域名,你可以看到证书更新选项。 + +在旁边的页面中,使用 *Domain* 选项的*自动填充*在*私钥*中输入详细信息。在 *Certificate* 选项下,填写您的 .*crt 文件*的详细信息。你快完成了。只需单击显示*安装证书*的按钮。 + +除了保存用户的关键数据和敏感信息外,SSL 证书还通过重申你网站上共享的数据是安全的来建立信任。由于 Google 认为 SSL 认证是一种健康的做法,因此它也会你您的 SEO 资料产生积极影响。但是,要继续享受此证书的最佳安全性,你需要定期更新它。这可确保你的站点根据最新的安全要求完全免受传输中的数据攻击。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a-simple-guide/ + +作者:[Jitendra Bhojwani][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/jitendra-bhojwani/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/SSL-Certificates-Featured-image.jpg +[2]: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwitou7xjv_3AhWLRmwGHVZ2BWwQFnoECB0QAQ&url=https%3A%2F%2Fgithub.com%2Fopenssl%2Fopenssl&usg=AOvVaw0niwMRCpb4nN_PtJFMQwWP From 1574a450b30f8e0027a0735d88eeac973c3a1959 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 15 Jul 2022 08:43:50 +0800 Subject: [PATCH 0379/3123] translating --- sources/tech/20220713 How I create music playlists on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220713 How I create music playlists on Linux.md b/sources/tech/20220713 How I create music playlists on Linux.md index 750a0d2caa..bd81c7295b 100644 --- a/sources/tech/20220713 How I create music playlists on Linux.md +++ b/sources/tech/20220713 How I create music playlists on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/c-linux-mp3" [#]: author: "Rikard Grossman-Nielsen https://opensource.com/users/rikardgn" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2f2fd0e90338f103baf801701838e8ef8dbe8efe Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 15 Jul 2022 12:07:55 +0800 Subject: [PATCH 0380/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220714=20Top=2010=20Linux=20Distros=20for=20Beginn?= =?UTF-8?q?ers=20in=202022=20[Compared].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...istros for Beginners in 2022 [Compared].md | 326 ++++++++++++++++++ 1 file changed, 326 insertions(+) create mode 100644 sources/tech/20220714 Top 10 Linux Distros for Beginners in 2022 [Compared].md diff --git a/sources/tech/20220714 Top 10 Linux Distros for Beginners in 2022 [Compared].md b/sources/tech/20220714 Top 10 Linux Distros for Beginners in 2022 [Compared].md new file mode 100644 index 0000000000..6412eaf59b --- /dev/null +++ b/sources/tech/20220714 Top 10 Linux Distros for Beginners in 2022 [Compared].md @@ -0,0 +1,326 @@ +[#]: subject: "Top 10 Linux Distros for Beginners in 2022 [Compared]" +[#]: via: "https://www.debugpoint.com/linux-distro-beginners/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Linux Distros for Beginners in 2022 [Compared] +====== +We give you the ten best Linux distro(s) for beginners, which can be the perfect starting point and help you to pick the best of the lot. + +### Introduction + +If you are manifesting joining the Linux clan and thinking about it, it’s time. It’s time to ditch Windows for good and save some money by doing so. Also, keep your sanity from monthly Windows updates that are gigabytes in size, save on your internet bill, save precious time watching a dumb blue screen (like below) and so on. The blessing of ditching the Windows list is pretty long. + +And you are in a perfect place to choose your first Linux distro as we prepare this list with much care and your very need. + +![This is how you waste your time by watching this for hours per month, not anymore!][1] + +### Characteristics of ideal beginners’ Linux distro + +There may be mixed opinions about what qualifies a distro for a beginner. From my point of view, I believe a distro is perfect for beginners if it possesses the below criteria: + +* Easy to install +* Well outlined documentation for installation via dual boot (in an OEM installed Windows hardware) +* Easy to get support from communities +* Stable (as in doesn’t crash often) +* Hardware and peripherals (printer, Bluetooth, display, sound) should work out of the box. +* Looks decent before customisation +* Play basic supported games, movies & Netflix/other streaming services + +As you can see, these are pretty basic needs from a computing standpoint for an average user. And these are the distros which I believe are a perfect fit for beginners’ distros. + +### Top 10 Linux Distro for Beginners + +#### 1. Linux Mint + +Over the years, Linux Mint proved itself to be an ideal distro for not only beginners but everyone. You can easily use this operating system for any use case. + +Hence, our first on this list is [Linux Mint][2]. + +Linux Mint comes with three variants based on different [desktop environments][3]. But at its core, it remains the same. It is based on Ubuntu LTS and has a 5-year support plan. + +Moreover, for those five years, you get hardware support, bug fixes and security fixes. This alone makes it to be a perfect beginner distro. + +![Linux Mint Cinnamon Edition][4] + +In addition, a vast friendly community and well-structured documentation is a plus point. If you are a new user and are stuck for any help, you can go to several communication channels to get help from the community. Usually, the Discord server of Linux Mint is ideal for a fast response. + +Another important aspect is that Linux Mint comes with all possible (old and new) hardware support out of the box. So, if you are wondering whether your old printer or any hardware would work or not, then worry not. Try Linux Mint; ideally, the hardware should work out of the box. + +That said, here’s a recap of some advantages and disadvantages of Linux Mint with the download link. + +**Pros: What makes it a great choice?** + +* User-friendly & community support +* Time tested to work as dual-boot with Windows +* Documentation +* Legacy and new hardware support +* Lightweight in nature +* Pre-loads with many apps + +**Cons: But these are some of the constraints** + +* Not much of an eye-candy desktop +* Legacy desktop layout (menu & icons) + +#### 2. Zorin OS + +Zorin OS is the second beginner distro on this list. It is perfect for those who want a good starting point with Linux with stability and good looks together. Powered by a custom desktop environment inspired by Xfce and GNOME 3, it brings several ready-made desktop looks. The desktop looks include macOS and Windows with different variations of panel and taskbar. + +![Zorin OS][5] + +Other than that, Zorin OS is based on Ubuntu LTS (long-term support), which gives you five years’ worth of support and security updates. Finally, it brings three major variants – Pro, Lite and Core edition to cater to various user bases. The Pro version is a paid version (with a minimal fee) which brings additional desktop customisation options and tweaks. + +**Pros: What makes it a great choice?** + +* Looks excellent with themes and pre-loaded customisations +* Best of Xfce and GNOME 3 desktop +* Stable, fast while being eye-candy +* Based on Ubuntu LTS for five years of support + +**Cons: But these are some of the constraints** + +* Additional customisations come only in the Pro edition + +#### 3. Linux Lite + +The third beginner’s distro in this list is Linux Lite. I have included this because millions of Windows 7 or Windows 10 users whose hardware suddenly became obsolete after the Windows 11 hardware requirement. + +But hardware does not become obsolete overnight for specific evil rules imposed by the giants. Linux Lite is perfect for older hardware and also for newer ones. It is powered by Ubuntu LTS releases and comes with a lightweight [Xfce desktop environment][6]. + +![Linux Lite 6 Xfce Desktop][7] + +In addition, it brings several in-house utilities specially designed for new users. For example, a beginner may not know how to use a terminal in Linux or upgrade a system. So, Linux Lite has several graphical utilities to take care of day-to-day system & maintenance work. + +**Pros: What makes it a great choice?** + +* Super lightweight and fast +* Ideal for older hardware which runs Windows 7 or Windows 10 +* Friendly desktop +* Additional utilities for system operations +* Helpful community + +**Cons: But these are some of the constraints** + +* Not a fancy-looking or eye-candy desktop +* Legacy menu-driven desktop + +#### 4. Ubuntu + +Ubuntu Linux is the most used and downloaded Linux operating system. It’s more popular than all the distros in this list combined. Ubuntu Linux (mainly the Long Term Support edition) is used by millions of users, enterprises and real-world business needs. + +The only reason we featured Ubuntu as a beginner distro is its capability, popularity and perhaps most widely used. Because of that, beginner users get massive support from an already established user base, forums and so on. + +![Ubuntu LTS with GNOME][8] + +Moreover, almost all third-party applications, games and other associated critical software targets Ubuntu first as their compatible platform. Hence, it is easier for beginner users to get the software they need without many hurdles. + +**Pros: What makes it a great choice?** + +* Most popular distro among all +* Well-established roadmap for long-term support +* Beautiful using GNOME desktop +* A vast amount of app support +* Enriched community support + +**Cons: But these are some of the constraints** + +* Requires modern hardware for better performance +* Beginner users require more effort to further customise the system +* A minimal set of applications is pre-installed + +#### 5. MX Linux + +[MX Linux][9] is a Debian-based systemd-free Linux distribution which brings several advantages for beginner users. Hence it is 5th on this list. + +For a new user, it doesn’t matter to know what is “systemd” or “init” systems. These are little advanced Linux knowledge in that term. + +The primary reason it is a suitable beginner distro is that it brings a complete operating system with pre-loaded applications, easy-to-use desktops and longer-term support. + +![MX Linux 21 Desktop][10] + +Thanks to Debian, MX Linux officially supports more than 5 years with bug fixes and security updates. In addition, it brings all necessary applications packaged in its installer so that you do not require to perform any further post-install tweaks. + +Also, a wide range of free and proprietary hardware support is available, thanks to Debian. + +Finally, the Xfce desktop environment is faster and easy to navigate. + +**Pros: What makes it a great choice?** + +* Long-term support for more than 10 years +* Wide range of hardware support +* Stable and fast +* Pre-loaded with natively built apps + +**Cons: But these are some of the constraints** + +* Older packages due to Debian for certain apps +* Not a good-looking desktop + +#### 6. Lubuntu + +[Lubuntu][11] is the LXQt-based Linux Distribution based on Ubuntu Linux. It is one of the super lightweight distros that is stable, super-fast and brings a wide range of hardware and software support. + +Thanks to its Ubuntu base, you get all the advantages of being a Ubuntu-based distro which we featured above for Ubuntu. + +![Lubuntu 22.04 LTS Desktop – isn’t it nice and clean][12] + +The LXQt desktop is the most friendly and super fast legacy desktop today. It even outranks Xfce and KDE Plasma in terms of performance. In addition, beginner users do not require to learn anything additional to use this desktop because of its legacy design. + +Hence, I believe it’s a perfect choice for a set of beginner users. + +**Pros: What makes it a great choice?** + +* Lightweight and fast distro +* Supports older hardware +* No learning curve required +* 5 years’ worth of support for the LTS release + +**Cons: But these are some of the constraints** + +* Legacy looking distro +* It doesn’t support advanced features such as gestures, swipes for touch devices + +#### 7. Fedora with KDE Plasma + +Fedora Linux with KDE Plasma desktop can be an ideal distro for new users to power users. There are many reasons for this. Firstly, unlike Ubuntu, Fedora Linux is a little advanced and a pioneer in bringing new emerging technology to you. Hence, if you are a beginner in Linux and have modern hardware, Fedora is a perfect choice. + +Besides that, the KDE Plasma desktop is a powerful desktop with a vast selection of customisation options. A famous tagline perfectly fits KDE Plasma – “Simple by default, powerful when needed”. + +![Fedora KDE Edition][13] + +Hence, the blend of Fedora Linux and KDE Plasma is perhaps the most intuitive and powerful combination for all types of Linux users. + +Finally, a friendly community of Fedora and KDE Plasma must be another reason to choose this distro over others. + +**Pros: What makes it a great choice?** + +* Modern tech support +* Fast and beautiful KDE Plasma desktop +* A wide range of software and application are available via RPM Fusion +* Powerful and friendly community + +**Cons: But these are some of the constraints** + +* A little challenging to use the command line for a new user + +#### 8. Pop OS + +Pop OS is a Linux distribution created by Americal computer manufacturer System76 for its hardware line-up. Although it is primarily designed for its hardware, it is free to download and use. + +The primary reason I think it is perfect for a new user is that it’s designed to be a powerful distro which works well with modern graphics card line-ups and AI-ML workloads. In addition, Pop OS also features a dedicated installer for NVIDIA cards so that you do not require to spend time installing drivers. + +Besides that, it’s customised “[COSMIC Desktop][14]” brings built-in tiling features, well-designed system tray controls and an application repository called “Pop Shop”. + +The Pop Shop is an attractive app which gives you easy access to thousands of apps classified by your use case – Study, Development, Gaming, etc. + +![Pop OS][15] + +Finally, due to its popularity, many leading computer manufacturers such as HP and Lenovo launched several Laptop models with Pop OS as the default operating system instead of Windows. + +Hence, Pop OS is one of the best contenders in this list as a beginner Linux distro. + +**Pros: What makes it a great choice?** + +* Well-designed COSMIC desktop with features +* Built-in support for NVIDIA Cards +* Available to buy Laptops with Pop OS pre-installed + +**Cons: But these are some of the constraints** + +* A little heavy on system resources +* Features non-free software +* It requires some additional tweaks to make it more customisable + +#### 9. elementary OS + +The elementaryOS is famous for its looks and design. It’s the best distro for beginners who wants a mix of aesthetics and stability in Linux. This distro is heavily inspired by macOS and its design principle. IF you are a macOS user and want to jump into the Linux world, this is a perfect distro. + +At its core, it is powered by the Ubuntu long-term support editions, which give you the necessary security and bug fixes for more than 5 years with extended support. + +![elementary OS 6 ODIN Desktop][16] + +One advantage of elementary OS for a beginner is its own “App Center”, which is loaded with curated applications for your daily needs. These apps are designed to work well and give you an immersive experience within the desktop itself. + +Finally, the Pantheon desktop is perhaps the best-designed desktop environment among all the options listed here. + +**Pros: What makes it a great choice?** + +* Beautiful and stunning Pantheon desktop +* Perfect for those looking for a blend of beauty and power +* A vast collection of curated apps from App Center +* Out-of-the-box Flatpak support +* Perfect for touch-based devices + +**Cons: But these are some of the constraints** + +* Heavy to system resources +* Require modern hardware with a larger RAM capacity +* Features and updates arrive late, even after Ubuntu releases + +#### 10. Deepin + +The last Linux distro for beginners in this list is the famous Deepin OS. It features the stunning Deepin desktop environment popular among Windows and macOS users. + +The Deepin desktop is known for its out-of-the-box aesthetics, customisation options and design. At the core, Deepin is powered by a Debian-stable branch, which means the support lifecycle is available for more than five years. + +![Deepin 20 Desktop][17] + +Moreover, Deepin brings its own “App Store”, which features selected applications and is easier to download/install/uninstall software for beginners. + +Deepin also supports advanced features such as face unlock, fingerprint login, etc. + +**Pros: What makes it a great choice?** + +* Beautiful looking Deepin Desktop Environment +* Stability is achieved by Debian stable branch +* Multi-year of security and bug fix support +* Support for fingerprint log, face unlock + +**Cons: But these are some of the constraints** + +* Contains non-free software components and packages +* Developed by a Chinese corporation + +### Wrapping Up + +I hope this list of Linux distro(s) for beginners helps you choose the best one for your needs. The above list comprises a blend of different desktop environments suitable for novice users. I also gave some hints about the advantages & disadvantages of each one of the beginner’s distros (s). Although, the pros and cons are subjective and depend on individual taste. But I tried to keep a balance while featuring those. + +Also, I have not included any distro based on Arch Linux consciously because it is a little difficult for new users. There are many user-friendly Arch-based distros, such as Manjaro Linux, but I firmly believe Arch should not be a starting point for new users in their Linux journey. + +Finally, let me know which one is the best or should be featured on this list in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-distro-beginners/ + +作者:[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/07/This-is-how-you-waste-your-time-and-watch-this-for-hours-per-month.jpg +[2]: https://www.debugpoint.com/linux-mint +[3]: https://www.debugpoint.com/category/desktop-environment/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/Linux-Mint-Cinnamon-Edition.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS.jpg +[6]: https://www.debugpoint.com/tag/xfce +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/Linux-Lite-6-Xfce-Desktop.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ubuntu-LTS-with-GNOME.jpg +[9]: https://www.debugpoint.com/tag/mx-linux +[10]: https://www.debugpoint.com/wp-content/uploads/2021/10/MX-Linux-21-Desktop-1024x576.jpeg +[11]: https://lubuntu.me/ +[12]: https://www.debugpoint.com/wp-content/uploads/2022/04/Lubuntu-22.04-LTS-Desktop-isnt-it-nice-and-clean.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-KDE-Edition.jpg +[14]: https://www.debugpoint.com/tag/cosmic-desktop/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/05/Pop-OS.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2021/08/elementary-OS-6-ODIN-Desktop.jpeg +[17]: https://www.debugpoint.com/wp-content/uploads/2020/09/Deepin-20-Desktop.jpg From 2e0db26a3020af072d5f2cc2b7997058309fc8a5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 15 Jul 2022 12:10:58 +0800 Subject: [PATCH 0381/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220714=205=20ways=20to=20learn=20C=20programming?= =?UTF-8?q?=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 5 ways to learn C programming on Linux.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/tech/20220714 5 ways to learn C programming on Linux.md diff --git a/sources/tech/20220714 5 ways to learn C programming on Linux.md b/sources/tech/20220714 5 ways to learn C programming on Linux.md new file mode 100644 index 0000000000..9c88489d8b --- /dev/null +++ b/sources/tech/20220714 5 ways to learn C programming on Linux.md @@ -0,0 +1,101 @@ +[#]: subject: "5 ways to learn C programming on Linux" +[#]: via: "https://opensource.com/article/22/7/learn-c-linux" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 ways to learn C programming on Linux +====== +Download our new eBook for tips and tricks for C programming on Linux and FreeDOS. + +![Person using a laptop][1] + +There are many theories about why the C programming language has endured for as long as it has. Maybe it's the austerity of its syntax or the simplicity of its vocabulary. Or maybe it's that C is often seen as a utilitarian language, something that's rugged and ready to be used as a building material for something that needs no platform because it's going to be its own foundation. C is clearly a powerful language, and I think its longevity has a little something to do with the way it serves as a springboard for other popular technologies. Here are five of my favorite technologies that utilize and rely upon C, and how they can each help you learn more about C yourself. + +### 1. GObject and GTK + +C is not an object-oriented programming language. It has no `class` type. Some folks use C++ for object-oriented programming, but others stick with C along with the GObject libraries. The GObject subsystem provides a `class` structure for C, and the GTK project famously provides widgets accessible through C. Without GTK, there would be no GIMP (for which GTK was developed), GNOME, and hundreds of other popular open source applications.) + +#### Learn more + +GObject and GTK are excellent ways to start using C for GUI programming. They're well-equipped to get you programming graphical applications using C because they do so much of the "heavy lifting" for you. The classes and data types are defined, the widgets have been made, and all you have to do is put everything together. + +### 2. Ncurses + +If GTK is more than you need, you might decide a terminal user interface (TUI) is more your speed. The ncurses library creates "widgets" in a terminal, creating a kind of graphical application that gets drawn over your terminal window. You can control the interface with your arrow keys, selecting buttons and elements much the same way you might use a GUI application without a mouse. + +#### Learn more + +Get started by writing a [guessing game in C][3] using the ncurses library as your display. + +### 3. Lua and Moonscript + +Lua is a scripting language with access to C libraries through a built-in C API. It's a tiny, fast, and simple language with about 30 functions and just a handful of built-in libraries. You can get started with Lua for system automation, game modding and scripting, game development with a frontend like LÖVE, or general application development (like the [Howl text editor][4]) using GTK. + +#### Learn more + +The nice thing about Lua is that you can start out with it to learn the basic concepts of programming, and then start exploring its C API when you feel brave enough to interface directly with the foundational language. If, on the other hand, you never grow out of Lua, that's OK too. There's a wealth of [extra libraries][5] for Lua to make it a great choice for all manner of development. + +### 4. Cython + +Lua isn't the only language that interfaces with C. [Cython][6] is a compiler and language designed to make writing C extensions for Python as easy as writing Python code. Essentially, you can write Python and end up with C. The simplest possible example: + +``` +print("hello world") +``` + +Create a `setup.py` script: + +``` +from setuptools import setup +from Cython.Build import cythonize + +setup( + ext_modules = cythonize("hello.pyx") +) +``` + +Run the setup script: + +``` +$ python3 ./setup.py +``` + +And you end up with a `hello.c` and `hello.cpython-39-x86_64-linux-gnu.so` file in the same directory. + +#### Learn more + +The [Cython][7] language is a superset of Python with support for C functions, and datatypes. It isn't likely to directly help you learn C, but it opens up new possibilities for the Python developer looking to learn and integrate C code into Python. + +### 5. FreeDOS + +The best way to learn more about C is to write code in C, and there's nothing more exciting than writing code you can actually use. The FreeDOS project is an open source implementation of DOS, the predecessor to Windows. You may have already used FreeDOS, either as a handy open source method of running a BIOS updater, or maybe in an emulator to play a classic computer game. You can do a lot more with FreeDOS than that, though. It makes an ideal platform to learn C with a collection of tools that encourage you to write your own commands and simple (or not-so-simple, if you prefer) applications. Of course you can write C code on any OS, but there's a simplicity to FreeDOS that you might find refreshing. The sky's the limit, but even at ground level, you can do some amazingly fun things with C. + +### Download the eBook + +You can learn more about C in our **[new eBook][8]**, and more about C on FreeDOS in our eBook. These are collections of programming articles to help you learn C and to demonstrate how you can implement C in useful ways. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/learn-c-linux + +作者:[Alan Smithee][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/alansmithee +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/laptop_screen_desk_work_chat_text.png +[2]: https://opensource.com/downloads/guide-c-programming +[3]: https://opensource.com/article/21/8/guess-number-game-ncurses-linux +[4]: https://opensource.com/article/20/12/howl +[5]: https://opensource.com/article/19/11/getting-started-luarocks +[6]: http://cython.org +[7]: https://opensource.com/article/21/4/cython +[8]: https://opensource.com/downloads/guide-c-programming From 41c41c405a8077f4c75ab2c8c8b28ab5abe2a8ae Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 15 Jul 2022 12:12:33 +0800 Subject: [PATCH 0382/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220714=20Fixing=20-Command=20-python-=20not=20foun?= =?UTF-8?q?d-=20Error=20in=20Ubuntu=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ython- not found- Error in Ubuntu Linux.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md diff --git a/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md b/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md new file mode 100644 index 0000000000..66b2e9541a --- /dev/null +++ b/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md @@ -0,0 +1,134 @@ +[#]: subject: "Fixing “Command ‘python’ not found” Error in Ubuntu Linux" +[#]: via: "https://itsfoss.com/python-not-found-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fixing “Command ‘python’ not found” Error in Ubuntu Linux +====== + +How do you run a Python program in the Linux terminal? Like this, right? + +``` +python program.py +``` + +However, if you try to use the `python` command in Ubuntu (and some other distributions), it will throw an error. + +Command ‘python’ not found, did you mean:command ‘python3’ from deb python3command ‘python’ from deb python-is-python3 + +If you pay attention to the error message, it clears a lot of things. **The python command is actually python3 here.** + +If you don’t understand it, no worries. I’ll explain things in detail here. + +### Why there is no python command found on Ubuntu? + +It’s because the Python language is not installed as python but python3 or python2 (in some older Ubuntu versions). + +At some point in time in the distant past, Python was actually available as `python` package/executable. When Python released version 2, Ubuntu and other distros had to provide support for both Python version 1.x and 2.x. + +So, they named the newer Python version `python2` to distinguish between the two. Other applications or libraries also specified python or python2 in their code. + +Eventually, Python version 1 was discontinued completely but the package continued to be named python2. + +Similarly, when Python version 3 was released, distributions started providing both `python2` and `python3` packages. + +Python 2 is no longer supported and Python 3.x is what you get on Ubuntu. The package is still named python3. + +**To summarize, you have Python installed on Ubuntu already. It is available as python3 package.** + +So, what are your options when you see Python [command not found error on Ubuntu][1]? Let me go over them. + +### Make sure you have Python installed on your system + +It should already be installed but no harm in double checking. + +Ubuntu 18.04 had Python 2 as well but 20.04 and higher versions have Python 3 only. Still, which version(s) you have with: + +``` +type python python2 python3 +``` + +As you can see in the screenshot below, I have Python version 3 installed on my system. + +![Checking Python version in Ubuntu][2] + +If you don’t have any Python version installed, you may install Python version 3 with the following command: + +``` +sudo apt install python3 +``` + +### Use python3 instead of python + +If it’s not too much of a trouble for you, use python3 command instead of python wherever required. + +Want to check the installed python version? Use it like this: + +``` +python3 --version +``` + +And you get the version details in the output: + +``` +[email protected]:~$ python3 --version +Python 3.10.4 +``` + +If you have to run a Python program, execute it like this: + +``` +python3 program.py +``` + +This should work for you in most cases. However, if you are using some (old) Python application that expects to run the python executable in its code, you’ll have issues. Don’t worry, you can get around it as well. + +### Link python3 as python + +You can create a permanent alias in your .bashrc file like this: + +``` +alias python='python3' +``` + +This way, you can run the `python` command and your system runs `python3`. + +It will work in most cases unless some program expects to run /usr/bin/python. Now, you may create symlink between /usr/bin/python and /usr/bin/python3 but there exists a simpler option for Ubuntu users. + +For Ubuntu 20.04 and higher versions, you have a package that does all link creation automatically if you install the python-is-python3 package. This is what the original error message has also suggested. + +``` +sudo apt install python-is-python3 +``` + +![install python is python3 ubuntu][3] + +You can see that symlinks have been created and you can use the python command (which actually runs python3) without any issues. + +![checking python ubuntu][4] + +I hope this clears the air on the Python package in Ubuntu. Let me know if you have any questions or suggestions. + +#### Read More Articles + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/python-not-found-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/bash-command-not-found/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/check-python-version-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/07/install-python-is-python3-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/checking-python-ubuntu.png From 6e8b8154d0d33bc1c30b7e9055c0902ebf863018 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 15 Jul 2022 15:21:05 +0800 Subject: [PATCH 0383/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @void-mori 感谢您,完成了第一篇翻译贡献! --- ...e a Raspberry Pi to power your business.md | 48 +++++++++---------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/translated/talk/20220115 Why use a Raspberry Pi to power your business.md b/translated/talk/20220115 Why use a Raspberry Pi to power your business.md index c1142469eb..d1e693ac31 100644 --- a/translated/talk/20220115 Why use a Raspberry Pi to power your business.md +++ b/translated/talk/20220115 Why use a Raspberry Pi to power your business.md @@ -2,62 +2,58 @@ [#]: via: "https://opensource.com/article/22/1/raspberry-pi-business" [#]: author: "Giuseppe Cassibba https://opensource.com/users/peppe8o" [#]: collector: "lujun9972" -[#]: translator: " void-mori" -[#]: reviewer: " " +[#]: translator: "void-mori" +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 为何要使用树莓派为你的业务提供动力 ====== -为何小小的单板机是智能工作以及小型办公室的未来 -![A chair in a field.][1] + +> 为何小小的单板机是智能工作以及小型办公室的未来。 + +![](https://img.linux.net.cn/data/attachment/album/202207/15/152016pcjh4heez4q0oof6.jpg) 随着疫情的大流行,我们的工作方式也正在发生着改变。工作的分散化正在成为所有公司需要面临的一项重要挑战。 ### 智能办公室 -即使所有的工厂都能和智能工作搭上一点边,哪怕仅仅是通过VPN来对员工的笔记本电脑进行远程控制,添加evolution而带来一些基本办公服务,尽可能的拉近人与人之间的距离,这些都能够极大降低数据中心的负载,并且提高人们的工作体验。这个方案还有一个额外的影响就是从信息和通信技术上来说消除了许多单点故障。 +即使工厂认为智能办公仅仅是通过虚拟私有网络来对员工的笔记本电脑进行远程控制,再稍微增加一点进化也可以让一些基本的办公服务离人们更近一点,这些都能够极大降低数据中心的负载,并且提高人们的工作体验。这个方案还有一个额外的影响就是从信息和通信技术(ICT)上来说消除了许多单点故障。 -和在公司外部有成百上千的工作场地不同,更像是在世界范围内有着成百上千的小型办公室/分支,这就是所谓的“智能办公室”。 +与其在公司外部有成百上千的工作场地,不如在世界范围内有着成百上千的小型办公室/分支,这就是所谓的“智能办公室”。 -这种表述可能会让许多的ICT专家感到恐慌,因为这种文化使得一台大机器(即服务器)关联了每个办公室,即使摊开计算资源的优势非常明显。 +这种表述可能会让许多 ICT 专家感到恐慌,因为这种文化使得每个办公室都与一台大机器(即服务器)联系在一起,即使分散计算资源的优势非常明显。 ### 一个不同的角度 -如果你能够通过一个50美金的小开发板在大服务器上交付服务会怎么样?如果这个小板子只需要一张SD卡和一个普通的USB电源支持,那又会怎么样呢?这就是[Raspberry Pi][2]是最灵活的解决方案的原因所在。 +如果你能用一块 50 美元的小开发板提供一个大服务器的服务会怎么样?如果这个小板子只需要一张 SD 卡和一个普通的 USB 电源支持,那又会怎么样呢?这就是 [树莓派][2] 是最灵活的解决方案的原因所在。 -树莓派开发板是尺寸非常小的运行Linux的计算机。它有一个由树莓派基金会提供和维护的操作系统—Raspberry Pi OS。它基于Debian,和最知名的Linux发行版共享许多软件包。此外,许多树莓派的开发板能够完美运行最知名的Ubuntu Server,它涵盖了ARM处理器,给予了对低功耗处理器的支持。 +树莓派开发板是尺寸非常小的运行 Linux 的计算机。它有一个由树莓派基金会提供和维护的操作系统:树莓派操作系统Raspberry Pi OS。它基于 Debian,并与这个最知名的 Linux 发行版共享许多软件包。此外,许多树莓派的开发板能够完美运行最知名的 Ubuntu 服务器,它涵盖了 ARM 处理器支持,提供了对低功耗处理器的支持。 -**[ 阅读下一篇: [在enterprise IT中使用树莓派的7种方式][3] ]** - -但树莓派开发板对小公司来说也是一个很好的机会,以能够承担得起的代价获得大量的(开源)服务。这种情况下,你必须考虑数据丢失的风险,因为你把所有的服务运行在一个小的,消费级的硬件上。不过设置正确的备份/还原程序能够降低这些风险。 +但树莓派开发板对小公司来说也是一个很好的机会,以能够承担得起的代价获得大量的(开源)服务。但这种情况下,你必须考虑数据丢失的风险,因为你把所有的服务运行在一个小的、消费级的硬件上。不过设置正确的备份/恢复程序能够降低这些风险。 ### 你能从树莓派开发板上提供什么服务? -大多数服务通常由更昂贵的服务器提供。“大多数”属性取决于一些限制: +大多数服务通常由更昂贵的服务器提供。这里的“大多数”取决于一些限制: - * **ARM处理器:** 一些软件包只支持X86/X64处理器。这是最难克服的挑战之一。另一方面,ARM处理器的市场份额不断增长,使得程序员让他们的软件有兼容ARM处理器的版本。 - * **内存容量:** 这是一个仅限于在复杂应用以复杂的方式进行复杂的计算的情况下讨论的问题。很多时候,只不过是关于重新访问代码,拆分步骤,并保持简单高效的问题。此外,如果一个服务因为少数几个用户而需要大量的内存/CPU,这大概也意味着此服务没有正常工作。这可能是你消除浪费资源的旧问题的一个机会。 最后,最新的树莓派开发板把内存容量升级到了8GB,是一个很大的提升。 - * **对服务器没有经验的用户:** 这是另一个问题,你可以在存储了系统和运行数据的树莓派上使用micro-SD卡中的基础镜像。 + * **ARM 处理器:** 一些软件包只支持 x86/x64 处理器。这是最难克服的挑战之一。但另一方面,ARM 处理器的市场份额不断增长,使得程序员为他们的软件开发了兼容 ARM 处理器的版本。 + * **内存容量:** 这是一个仅限于在复杂应用以复杂的方式进行复杂的计算的情况下讨论的问题。很多时候,这只不过是关于重新审查代码、拆分步骤,并保持简单高效的问题。此外,如果一个服务虽然只服务少数几个用户,但需要大量的内存/CPU,这大概也意味着此服务没有正常工作。这可能是你消除浪费资源的旧问题的一个机会。最后,最新的树莓派开发板把内存容量升级到了 8GB,这是一个很大的提升。 + * **对服务器没有经验的用户:** 这是另一个问题,你可以在基础镜像所在的树莓派的 micro-SD 卡中存储系统和运行数据。 +也就是说,你能够用树莓派做很多有趣的事情。在 [我的博客][4] 里,我通过运行各种服务进行了测试 —— 从基本的 LAMP 服务器到复杂的 CRM。从简单到复杂系统,全部都是开源的,例如: - -咱就是说,你能够用树莓派做很多有趣的事情。在[我的博客][4]里,我通过运行各种服务进行了测试—从基本的LAMP服务器到复杂的CRM。从简单到复杂系统,全部都是开源的,例如: - - * 代理服务器(也能够添加广告拦截服务) + * 代理服务器(也能够添加广告拦截服务) * 电子邮件服务器 * 打印服务器 * [酒店管理][5] - * 联系人关系管理 + * 联系关系管理(CRM) * [私人社交网络][6] * 私人论坛 - * 私有Git门户网站 + * 私有 Git 门户网站 * 网络监控服务器 * [许多其他有用的服务][7] - - -对树莓派来说,另一个有趣的机会是在你的远程办公室获得提供高级服务的wifi热点,并且可以从它的以太网端口进行控制。  +对树莓派来说,另一个有趣的用法是在你的远程办公室获得提供高级服务的 Wi-Fi 热点,并且可以从它的以太网端口进行控制。  最后,[树莓派也能够运行容器][8],这是一个额外的工具,从这个不可思议的开发板中获得一个可用的服务世界。 @@ -68,7 +64,7 @@ via: https://opensource.com/article/22/1/raspberry-pi-business 作者:[Giuseppe Cassibba][a] 选题:[lujun9972][b] 译者:[void-mori](https://github.com/void-mori) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 024a62c7f409ab7444cceb7e2015928d8c67b147 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 15 Jul 2022 15:21:58 +0800 Subject: [PATCH 0384/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @void-mori 本文首发地址:https://linux.cn/article-14829-1.html 您的 LCTT 专页:https://linux.cn/lctt/void-mori --- .../20220115 Why use a Raspberry Pi to power your business.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20220115 Why use a Raspberry Pi to power your business.md (98%) diff --git a/translated/talk/20220115 Why use a Raspberry Pi to power your business.md b/published/20220115 Why use a Raspberry Pi to power your business.md similarity index 98% rename from translated/talk/20220115 Why use a Raspberry Pi to power your business.md rename to published/20220115 Why use a Raspberry Pi to power your business.md index d1e693ac31..e14dbdcdfb 100644 --- a/translated/talk/20220115 Why use a Raspberry Pi to power your business.md +++ b/published/20220115 Why use a Raspberry Pi to power your business.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "void-mori" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14829-1.html" 为何要使用树莓派为你的业务提供动力 ====== From 7485ab94c2433fab80d59d166098c1aaebf23fc0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 15 Jul 2022 15:54:20 +0800 Subject: [PATCH 0385/3123] R --- .../20220527 Plotting Data in R- Graphs.md | 214 +++++++++--------- 1 file changed, 106 insertions(+), 108 deletions(-) diff --git a/translated/tech/20220527 Plotting Data in R- Graphs.md b/translated/tech/20220527 Plotting Data in R- Graphs.md index 6f3dbc6e43..ce11a6cc40 100644 --- a/translated/tech/20220527 Plotting Data in R- Graphs.md +++ b/translated/tech/20220527 Plotting Data in R- Graphs.md @@ -3,21 +3,20 @@ [#]: author: "Shakthi Kannan https://www.opensourceforu.com/author/shakthi-kannan/" [#]: collector: "lkxed" [#]: translator: "tanloong" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " R 语言绘制数据:图表篇 ====== -R 语言有非常多的绘图和数据可视化的包,比如 graphics、lattice、ggplot2 等。这是 R 语言系列的第 9 篇文章,我们会介绍 R 中用来绘图的各种函数。 +R 语言有非常多的绘图和数据可视化的包,比如 `graphics`、`lattice`、`ggplot2` 等。这是 R 语言系列的第 9 篇文章,我们会介绍 R 中用来绘图的各种函数。 -![business-man-visulising-graphs][1] +![](https://img.linux.net.cn/data/attachment/album/202207/15/155129rsfee22secwyii8w.jpg) -本文使用的 R 是 4.1.2 版本, -运行环境为 Parabola GNU/Linux-libre (x86-64)。 +本文使用的 R 是 4.1.2 版本,运行环境为 Parabola GNU/Linux-libre (x86-64)。 -```R +``` $ R --version R version 4.1.2 (2021-11-01) -- "Bird Hippie" @@ -25,15 +24,13 @@ Copyright (C) 2021 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) ``` -R 是开源软件,没有任何担保责任。 -只要遵守 GNU 通用公共许可证的版本 2 或者版本 3,你就可以对它进行 (修改和) 再分发。 -详情见 [*https://www.gnu.org/licenses/.*](https://www.gnu.org/licenses/.) +R 是自由软件,没有任何担保责任。只要遵守 GNU 通用公共许可证的版本 2 或者版本 3,你就可以对它进行(修改和)再分发。详情见 [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/)。 ### 折线图 -我们以印度全境消费者物价指数 (CPI -- 乡村/城市) 数据集为研究对象,它可以从 [*https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0*](https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0) 下载。选择 "截止到 2021 年 11 月" 的版本,用 read.csv 函数读取下载好的文件,如下所示: +我们以印度全境消费者物价指数(CPI -- 乡村/城市)数据集为研究对象,它可以从 [https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0](https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0) 下载。选择“截止到 2021 年 11 月” 的版本,用 `read.csv` 函数读取下载好的文件,如下所示: -```R +``` > cpi <- read.csv(file="CPI.csv", sep=",") > head(cpi) @@ -54,9 +51,9 @@ Chattisgarh Delhi Goa Gujarat Haryana Himachal.Pradesh Jharkhand Karnataka ... ``` -以 Punjab 州为例,对每年各月份的 CPI 值求和,然后用 plot 函数画一张折线图: +以 Punjab 州为例,对每年各月份的 CPI 值求和,然后用 `plot` 函数画一张折线图: -```R +``` > punjab <- aggregate(x=cpi$Punjab, by=list(cpi$Year), FUN=sum) > head(punjab) @@ -71,20 +68,20 @@ Group.1 x > plot(punjab$Group.1, punjab$x, type="l", main="Punjab Consumer Price Index upto November 2021", xlab="Year", ylab="Consumer Price Index") ``` -plot 函数可以传入如下参数: +`plot` 函数可以传入如下参数: | 参数 | 描述 | | :- | :- | -| x | 向量类型,用于绘制 x 轴的数据 | -| y | 向量或列表类型,用于绘制 y 轴的数据 | -| type | 设置绘图类型:"p" 画点;"l" 画线;"o" 同时画点和线,且相互重叠;"s" 画阶梯线;"h" 画铅垂线 | -| xlim | x 轴范围 | -| ylim | y 轴范围 | -| main | 标题 | -| sub | 副标题 | -| xlab | x 轴标题 | -| ylab | y 轴标题 | -| axes | 逻辑型,是否绘制坐标轴 | +| `x` | 向量类型,用于绘制 x 轴的数据 | +| `y` | 向量或列表类型,用于绘制 y 轴的数据 | +| `type` | 设置绘图类型:`p` 画点;`l` 画线;`o` 同时画点和线,且相互重叠;`s` 画阶梯线;`h` 画铅垂线 | +| `xlim` | x 轴范围 | +| `ylim` | y 轴范围 | +| `main` | 标题 | +| `sub` | 副标题 | +| `xlab` | x 轴标题 | +| `ylab` | y 轴标题 | +| `axes` | 逻辑型,是否绘制坐标轴 | 结果如图 1。 @@ -92,57 +89,57 @@ plot 函数可以传入如下参数: ### 自相关图 -自相关图能在时序分析中展示一个变量是否具有自相关性,可以用 R 中的 acf 函数绘制。acf 函数可以设置三种自相关类型:*correlation*、*covariance* 或 *partial*。图 2 是 Punjab 州 CPI 值的自相关图,x 表示 CPI。 +自相关图能在时序分析中展示一个变量是否具有自相关性,可以用 R 中的 `acf` 函数绘制。`acf` 函数可以设置三种自相关类型:`correlation`、`covariance` 或 `partial`。图 2 是 Punjab 州 CPI 值的自相关图,x 表示 CPI。 -```R +``` acf(punjab$x,main='x') ``` ![Figure 2: ACF chart][3] -acf 函数可以传入以下参数: +`acf` 函数可以传入以下参数: | 参数 | 描述 | | :- | :- | -| x | 一个单变量或多变量的 time series 对象,或者一个数值向量或数值矩阵 | -| lag.max | 最大滞后阶数 | -| type | 字符型,设置所计算的自相关类型:"correlation"、"covariance" 或 "partial" | -| plot | 逻辑性,若 TRUE 则绘制图像,若 FALSE 则打印传入数据的描述信息 | -| i | 一组要保留的时差滞后 | -| j | 一组要保留的名称或数字 | +| `x` | 一个单变量或多变量的时序对象,或者一个数值向量或数值矩阵 | +| `lag.max` | 最大滞后阶数 | +| `type` | 字符型,设置所计算的自相关类型:`correlation`、`covariance` 或 `partial` | +| `plot` | 逻辑性,若 `TRUE` 则绘制图像,若 `FALSE` 则打印传入数据的描述信息 | +| `i` | 一组要保留的时差滞后 | +| `j` | 一组要保留的名称或数字 | ### 柱状图 -R 中画柱状图的函数是 barplot。下面的代码用来画 Punjab 州 CPI 的柱状图,如图3: +R 中画柱状图的函数是 `barplot`。下面的代码用来画 Punjab 州 CPI 的柱状图,如图3: -```R +``` > barplot(punjab$x, main="Punjab Consumer Price Index", sub="Upto November 2021", xlab="Year", ylab="Consumer Price Index", col="navy") ``` ![Figure 3: Line chart of Punjab's CPI][4] -barplot 函数的使用方法非常灵活,可以传入以下参数: +`barplot` 函数的使用方法非常灵活,可以传入以下参数: | 参数 | 描述 | | :- | :- | -| height | 数值向量或数值矩阵,包含用于绘图的数据 | -| width | 数值向量,用于设置柱宽 | -| space | 柱间距 | -| beside | 逻辑型,若 FALSE 则绘制堆积柱状图,若 TRUE 则绘制并列柱状图 | -| density | 数值型,设置阴影线的填充密度 (条数/英寸),默认为 NULL,即不填充阴影线| -| angle | 数值型,填充线条的角度,默认为 45 | -| border | 柱子边缘的颜色 | -| main | 标题 | -| sub | 副标题 | -| xlab | x 轴标题 | -| ylab | y 轴标题 | -| xlim | x 轴范围 | -| ylim | y 轴范围 | -| axes | 逻辑型,是否绘制坐标轴 | +| `height` | 数值向量或数值矩阵,包含用于绘图的数据 | +| `width` | 数值向量,用于设置柱宽 | +| `space` | 柱间距 | +| `beside` | 逻辑型,若 `FALSE` 则绘制堆积柱状图,若 `TRUE` 则绘制并列柱状图 | +| `density` | 数值型,设置阴影线的填充密度(条数/英寸),默认为 `NULL`,即不填充阴影线| +| `angle` | 数值型,填充线条的角度,默认为 45 | +| `border` | 柱形边缘的颜色 | +| `main` | 标题 | +| `sub` | 副标题 | +| `xlab` | x 轴标题 | +| `ylab` | y 轴标题 | +| `xlim` | x 轴范围 | +| `ylim` | y 轴范围 | +| `axes` | 逻辑型,是否绘制坐标轴 | -用 help 命令可以查看 barplot 函数的详细信息: +用 `help` 命令可以查看 `barplot` 函数的详细信息: -```R +``` > help(barplot) barplot package:graphics R Documentation @@ -176,9 +173,9 @@ Usage: ### 饼图 -绘制饼图时要多加注意,因为饼图不一定能展示出各扇形间的区别。(LCTT 译注:"根据统计学家和一些心理学家的调查结果,这种以比例展示数据的统计图形 [实际上是很糟糕的可视化方式][10],因此,R 关于饼图的帮助文件中清楚地说明了并不推荐使用饼图,而是使用条形图或点图作为替代。") 用 subset 函数获得 Gujarat 州在 2021 年 1 月 Rural、Urban、Rurual+Urban 的 CPI 值: +绘制饼图时要多加注意,因为饼图不一定能展示出各扇形间的区别。(LCTT 译注:根据统计学家和一些心理学家的调查结果,这种以比例展示数据的统计图形 [实际上是很糟糕的可视化方式][10],因此,R 关于饼图的帮助文件中清楚地说明了并不推荐使用饼图,而是使用条形图或点图作为替代。) 用 `subset` 函数获得 Gujarat 州在 2021 年 1 月 Rural、Urban、Rurual+Urban 的 CPI 值: -```R +``` > jan2021 <- subset(cpi, Name=="January" & Year=="2021") > jan2021$Gujarat @@ -187,50 +184,51 @@ Usage: > names <- c('Rural', 'Urban', 'Rural+Urban') ``` -使用 pie 函数为 Gujarat 州的 CPI 值生成饼图,如下所示: +使用 `pie` 函数为 Gujarat 州的 CPI 值生成饼图,如下所示: -```R +``` > pie(jan2021$Gujarat, names, main="Gujarat CPI Rural and Urban Pie Chart") ``` ![Figure 4: Pie chart][5] -pie 函数可以传入以下参数: +`pie` 函数可以传入以下参数: | 参数 | 描述 | | :- | :- | -| x | 元素大于 0 的数值向量 | -| label | 字符向量,用于设置每个扇形的标签 | -| radius | 饼图的半径 | -| clockwise | 逻辑型,若 TRUE 则顺时针绘图,若 FALSE 则逆时针绘图 | -| density | 数值型,设置阴影线的填充密度 (条数/英寸),默认为 NULL,即不填充阴影线| -| angle | 数值型,填充线条的角度,默认为 45 | -| col | 数值向量,用于设置颜色 | -| lty | 每个扇形的线条类型 | -| main | 标题 | +| `x | 元素大于 0 的数值向量 | +| `label` | 字符向量,用于设置每个扇形的标签 | +| `radius` | 饼图的半径 | +| `clockwise` | 逻辑型,若 `TRUE` 则顺时针绘图,若 `FALSE` 则逆时针绘图 | +| `density` | 数值型,设置阴影线的填充密度(条数/英寸),默认为 `NULL`,即不填充阴影线| +| `angle` | 数值型,填充线条的角度,默认为 45 | +| `col` | 数值向量,用于设置颜色 | +| `lty` | 每个扇形的线条类型 | +| `main` | 标题 | ### 箱线图 -(LCTT 译注:"箱线图主要是 [从四分位数的角度出发][11] 描述数据的分布,它通过最大值 (Q4)、上四分位数 (Q3)、中位数(Q2)、下四分位数 (Q1) 和最小值 (Q0) 五处位置来获取一维数据的分布概况。我们知道,这五处位置之间依次包含了四段数据,每段中数据量均为总数据量的 1/4。通过每一段数据占据的长度,我们可以大致推断出数据的集中或离散趋势 (长度越短,说明数据在该区间上越密集,反之则稀疏。)") +(LCTT 译注:箱线图主要是 [从四分位数的角度出发][11] 描述数据的分布,它通过最大值(Q4)、上四分位数(Q3)、中位数(Q2)、下四分位数(Q1) 和最小值(Q0)五处位置来获取一维数据的分布概况。我们知道,这五处位置之间依次包含了四段数据,每段中数据量均为总数据量的 1/4。通过每一段数据占据的长度,我们可以大致推断出数据的集中或离散趋势。长度越短,说明数据在该区间上越密集,反之则稀疏。) -箱线图能够用“须线” (whiskers) 展示一个变量的四分位距 (Interquartile Range,简称 IQR=Q3-Q1)。用上下四分位数分别加/减内四分位距,再乘以一个人为设定的倍数 range (见下面的参数列表),得到 `range * c(Q1-IQR, Q3+IQR)`,超过这个范围的数据点就被视作离群点,在图中直接以点的形式表示出来。 -boxplot 函数可以传入以下参数: +箱线图能够用“须线whisker” 展示一个变量的四分位距Interquartile Range(简称 IQR=Q3-Q1)。用上下四分位数分别加/减内四分位距,再乘以一个人为设定的倍数 `range`(见下面的参数列表),得到 `range * c(Q1-IQR, Q3+IQR)`,超过这个范围的数据点就被视作离群点,在图中直接以点的形式表示出来。 + +`boxplot` 函数可以传入以下参数: | 参数 | 描述 | | :- | :- | -| data | 数据框或列表,用于参数类型为公式 (formula) 的情况 | -| x | 数值向量或者列表,若为列表则对列表中每一个子对象依次作出箱线图 | -| width | 设置箱子的宽度 | -| outline | 逻辑型,设置是否绘制离群点 | -| names | 设置每个箱子的标签 | -| border | 设置每个箱子的边缘的颜色 | -| range | 延伸倍数,设置箱线图末端 (须) 延伸到什么位置 | -| plot | 逻辑型,设置是否生成图像,若 TRUE 则生成图像,若 FALSE 则打印传入数据的描述信息 | -| horizontal | 逻辑型,设置箱线图是否水平放置 | +| `data` | 数据框或列表,用于参数类型为公式的情况 | +| `x` | 数值向量或者列表,若为列表则对列表中每一个子对象依次作出箱线图 | +| `width` | 设置箱子的宽度 | +| `outline` | 逻辑型,设置是否绘制离群点 | +| `names` | 设置每个箱子的标签 | +| `border` | 设置每个箱子的边缘的颜色 | +| `range` | 延伸倍数,设置箱线图末端(须)延伸到什么位置 | +| `plot` | 逻辑型,设置是否生成图像,若 TRUE 则生成图像,若 FALSE 则打印传入数据的描述信息 | +| `horizontal` | 逻辑型,设置箱线图是否水平放置 | -用 boxplot 函数绘制部分州的箱线图: +用 `boxplot` 函数绘制部分州的箱线图: -```R +``` > names <- c ('Andaman and Nicobar', 'Lakshadweep', 'Delhi', 'Goa', 'Gujarat', 'Bihar') > boxplot(cpi$Andaman.and.Nicobar, cpi$Lakshadweep, cpi$Delhi, cpi$Goa, cpi$Gujarat, cpi$Bihar, names=names) ``` @@ -239,56 +237,56 @@ boxplot 函数可以传入以下参数: ### QQ 图 -QQ 图 (Quantile-Quantile plot) 可以用来对比两个数据集,也可以用来检查数据是否服从某种理论分布。qqnorm 函数能绘制正态分布 QQ 图,可以检验数据是否服从正态分布,用下面的代码绘制 Punjab 州 CPI 数据的 QQ 图: +QQ 图Quantile-Quantile plot可以用来对比两个数据集,也可以用来检查数据是否服从某种理论分布。`qqnorm` 函数能绘制正态分布 QQ 图,可以检验数据是否服从正态分布,用下面的代码绘制 Punjab 州 CPI 数据的 QQ 图: -```R +``` > qqnorm(punjab$x) ``` ![Figure 6: Q-Q plot][7] -qqline 函数可以向正态分布 QQ 图上添加理论分布曲线,它可以传入以下参数: +`qqline` 函数可以向正态分布 QQ 图上添加理论分布曲线,它可以传入以下参数: | 参数 | 描述 | | :- | :- | -| x | 第一个数据样本 | -| y | 第二个数据样本 | -| datax | 逻辑型,设置是否以 x 轴表示理论曲线的值,默认为 FALSE | -| probs | 长度为 2 的数值向量,代表概率 | -| xlab | x 轴标题 | -| ylab | y 轴标题 | -| qtype | [1,9] 内的整数,设置分位计算类型,详情见 help(quantile) 的 "Type" 小节 | +| `x` | 第一个数据样本 | +| `y` | 第二个数据样本 | +| `datax` | 逻辑型,设置是否以 x 轴表示理论曲线的值,默认为 `FALSE` | +| `probs` | 长度为 2 的数值向量,代表概率 | +| `xlab` | x 轴标题 | +| `ylab` | y 轴标题 | +| `qtype` | `[1,9]` 内的整数,设置分位计算类型,详情见 `help(quantile)` 的类型小节 | ### 等高图 -等高图可以描述三维数据,在 R 中对应的函数是 contour,这个函数也可以用来向已有的图表添加等高线。等高图常与其他图表一起使用。我们用 contour 对 R 中的 volcano 数据集 (奥克兰的火山地形信息) 绘制等高图,代码如下: +等高图可以描述三维数据,在 R 中对应的函数是 `contour`,这个函数也可以用来向已有的图表添加等高线。等高图常与其他图表一起使用。我们用 `contour` 对 R 中的 `volcano` 数据集(奥克兰的火山地形信息)绘制等高图,代码如下: -```R +``` > contour(volcano) ``` ![Figure 7: Volcano][8] -contour 函数的常用参数如下: +`contour` 函数的常用参数如下: | 参数 | 描述 | | :- | :- | -| x,y | z 中数值对应的点在平面上的位置 | -| z | 数值向量 | -| nlevels | 设置等高线的条数,调整等高线的疏密 | -| labels | 等高线上的标记字符串,默认是高度的数值 | -| xlim | 设置 x 轴的范围 | -| ylim | 设置 y 轴的范围 | -| zlim | 设置 z 轴的范围 | -| axes | 设置是否绘制坐标轴 | -| col | 设置等高线的颜色 | -| lty | 设置线条的类型 | -| lwd | 设置线条的粗细 | -| vfont | 设置标签字体 | +| `x,y` | z 中数值对应的点在平面上的位置 | +| `z` | 数值向量 | +| `nlevels` | 设置等高线的条数,调整等高线的疏密 | +| `labels` | 等高线上的标记字符串,默认是高度的数值 | +| `xlim` | 设置 x 轴的范围 | +| `ylim` | 设置 y 轴的范围 | +| `zlim` | 设置 z 轴的范围 | +| `axes` | 设置是否绘制坐标轴 | +| `col` | 设置等高线的颜色 | +| `lty` | 设置线条的类型 | +| `lwd` | 设置线条的粗细 | +| `vfont` | 设置标签字体 | 等高线之间的区域可以用颜色填充,每种颜色表示一个高度范围,如下所示: -```R +``` > filled.contour(volcano, asp = 1) # asp 为图形纵横比,即 y 轴上的 1 单位长度和 x 轴上 1 单位长度的比率 ``` @@ -296,7 +294,7 @@ contour 函数的常用参数如下: ![Figure 8: Filled volcano][9] -掌握上述内容后,你可以尝试 R 语言 graphics 包中的其他函数和图表 (LCTT 译注:用 help(package=graphics) 可以查看 graphics 包提供的函数列表)。 +掌握上述内容后,你可以尝试 R 语言 `graphics` 包中的其他函数和图表(LCTT 译注:用 `help(package=graphics)` 可以查看 graphics 包提供的函数列表)。 -------------------------------------------------------------------------------- @@ -305,7 +303,7 @@ via: https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/ 作者:[Shakthi Kannan][a] 选题:[lkxed][b] 译者:[tanloong](https://github.com/tanloong) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9fcffd9e655297da6e43d7109362c2304cc37d90 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 15 Jul 2022 15:55:03 +0800 Subject: [PATCH 0386/3123] P @tanloong https://linux.cn/article-14830-1.html --- .../tech => published}/20220527 Plotting Data in R- Graphs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220527 Plotting Data in R- Graphs.md (99%) diff --git a/translated/tech/20220527 Plotting Data in R- Graphs.md b/published/20220527 Plotting Data in R- Graphs.md similarity index 99% rename from translated/tech/20220527 Plotting Data in R- Graphs.md rename to published/20220527 Plotting Data in R- Graphs.md index ce11a6cc40..f2877704fc 100644 --- a/translated/tech/20220527 Plotting Data in R- Graphs.md +++ b/published/20220527 Plotting Data in R- Graphs.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "tanloong" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14830-1.html" R 语言绘制数据:图表篇 ====== From a27a1b238e879e3cb0095547e0cc9259d6908158 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 15 Jul 2022 17:41:03 +0800 Subject: [PATCH 0387/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220715=203=20open=20source=20GUI=20disk=20usage=20?= =?UTF-8?q?analyzers=20for=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...urce GUI disk usage analyzers for Linux.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/tech/20220715 3 open source GUI disk usage analyzers for Linux.md diff --git a/sources/tech/20220715 3 open source GUI disk usage analyzers for Linux.md b/sources/tech/20220715 3 open source GUI disk usage analyzers for Linux.md new file mode 100644 index 0000000000..1913366f3b --- /dev/null +++ b/sources/tech/20220715 3 open source GUI disk usage analyzers for Linux.md @@ -0,0 +1,90 @@ +[#]: subject: "3 open source GUI disk usage analyzers for Linux" +[#]: via: "https://opensource.com/article/22/7/gui-disk-usage-analyzers-linux" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 open source GUI disk usage analyzers for Linux +====== +For people who prefer visual representations, these GUI-based tools help you understand how your storage capacity is used. + +![metrics and data shown on a computer screen][1] + +Image by: Opensource.com + +Several great options for checking disk usage on your Linux system have a graphical interface. Sometimes the visual representation of disk utilization is easier or newer users may not be as familiar with the various Linux commands that display storage information. I am a person who comprehends visual representations more easily than the printout on the command line. + +Here are several excellent GUI-based tools to help you understand how your storage capacity is used. + +### GNOME Disk Usage Analyzer + +My Pop!_OS system relies on the [GNOME Disk Usage Analyzer][2], and they call it "Disk Usage Analyzer." + +The GNOME Disk Usage Analyzer is also known as [Baobab][3]. It scans folders and devices, then reports the disk space used by each item. The graphical representation below is a report on my home directory. I can drill down into each directory by clicking on that item to learn more about the details of the files it contains. + +![GNOME Disk Usage Analyzer on my home directory][4] + +I clicked on my `Downloads` directory to display how much space files in that directory are consuming on my system. + +![GNOME Disk Usage Analyzer on my Downloads directory][5] + +GNOME Disk Usage Analyzer is licensed with GPL 2.0. It is under continuous development; the latest release was in September 2021. + +### Filelight + +There is another graphical option for the KDE desktop. It is called [Filelight][6], and it provides an interesting graphic of your Linux system. Initially released in 2004, the project has been under continual development. Its latest release was in December 2021, and the source code is available on [GitHub][7] under the [GNU Free Document License][8]. + +Here is a snapshot of my Linux laptop using Filelight. + +![Filelight disk usage][9] + +### QDirStat + +A third graphical option to consider is [QDirStat][10]. It is licensed with GPL v. 2.0 and can be installed on all Linux systems. + +According to its developers, "QDirStat is a graphical application to show where your disk space has gone and to help you to clean it up." QDirStat is available in [packages][11] for Debian, Ubuntu, Fedora, Arch, Manjaro, and SUSE. + +![QDirState disk usage][12] + +I easily installed QDirStat from the command line. It has an intuitive interface and provides a percentage of utilization of your file system. + +### The terminal + +Of course, if you don't enjoy graphical applications or need text output for a script, there are commands that analyze disk usage, too. The [du][13] and [ncdu][14] commands are easy to use and provide a different view (but the same information) of your file system. + +### Wrap up + +Today's storage devices are immense, but it is still necessary to be aware of how that capacity is used on your system. Whether you prefer command-line utilities or GUI tools, there are plenty of options available for Linux. Don't let storage space issues get you down—start using these tools today! + +Image by: (Don Watkins, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/gui-disk-usage-analyzers-linux + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/metrics_data_dashboard_system_computer_analytics.png +[2]: https://wiki.gnome.org/Apps/DiskUsageAnalyzer +[3]: https://gitlab.gnome.org/GNOME/baobab +[4]: https://opensource.com/sites/default/files/2022-07/GNOME_dua.png +[5]: https://opensource.com/sites/default/files/2022-07/2GDUA-downloads.png +[6]: https://en.wikipedia.org/wiki/Filelight +[7]: https://github.com/KDE/filelight +[8]: https://github.com/KDE/filelight/commit/8f68599cd26515dfaaeef53a5809bae19c502863 +[9]: https://opensource.com/sites/default/files/2022-07/filelight.png +[10]: https://github.com/shundhammer/qdirstat +[11]: https://github.com/shundhammer/qdirstat/blob/master/doc/Pkg-View.md +[12]: https://opensource.com/sites/default/files/2022-07/qdirstat.png +[13]: https://opensource.com/article/21/7/check-disk-space-linux-du +[14]: https://opensource.com/article/21/8/ncdu-check-free-disk-space-linux From b89bfcf44d0d746c5d660db699566699812e1556 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 15 Jul 2022 17:42:08 +0800 Subject: [PATCH 0388/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220715=20The=20Ultimate=20Guide=20to=20Epic=20Game?= =?UTF-8?q?s=20Store=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mate Guide to Epic Games Store on Linux.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20220715 The Ultimate Guide to Epic Games Store on Linux.md diff --git a/sources/tech/20220715 The Ultimate Guide to Epic Games Store on Linux.md b/sources/tech/20220715 The Ultimate Guide to Epic Games Store on Linux.md new file mode 100644 index 0000000000..0783c633a0 --- /dev/null +++ b/sources/tech/20220715 The Ultimate Guide to Epic Games Store on Linux.md @@ -0,0 +1,218 @@ +[#]: subject: "The Ultimate Guide to Epic Games Store on Linux" +[#]: via: "https://itsfoss.com/epic-games-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Ultimate Guide to Epic Games Store on Linux +====== +Epic Games Store is gaining more attention than ever, with some exclusive releases, and attractive discounts for PC gamers. + +While I still prefer Steam to Epic Games Store (or EGS) because the client is superior, and it officially works on Linux without any workarounds. + +Unfortunately, games like **Kena: Bridge of Spirits** and **Immortals Fenyx Rising** cannot be found on Steam. Sure, some are timed exclusives like **Hitman 3**, nevertheless, Epic Games Store has a good collection of games to play. + +So, how do we get started using the Epic Games Store on Linux without official support? + +### 3 Ways to Run Epic Games Store on Linux + +Wine is a popular tool that lets you run Windows apps on Linux. You can use it to launch Epic Games Store, but we will not be focusing on it. + +Instead, I will be highlighting options that utilize Wine and Steam’s Proton (or a compatibility layer) without making a lot of effort. + +You should have no problem following the methods that I tried, considering they are focused on their ease of use. + +I tried games like CONTROL, and a few indie titles that do not require anti-cheat services, and seemed to work pretty well. + +The methods include: + +* Using Heroic Games Launcher +* Using Lutris +* Using Bottles + +### 1. Use Epic Games Store with Heroic Games Launcher + +Heroic Games Launcher is one of the best ways to run Epic Games Store on Linux. You can also access the [GOG][1] library using it. + +It lets you launch Epic Games Store using a free and open-source replacement for the Epic Games Launcher, i.e., [Legendary][2]. + +While Legendary is originally a command-line application, the Heroic Games Launcher provides a GUI to make it easy. + +You get a native-like experience with this method, considering you get a lot of features using the GUI. Some of the features include: + +* Uninstall/Install Games. +* Repair installed games. +* Update games. +* Move games to different folders. +* Launch games using default wine or custom wine configuration. +* Cloud sync save with Epic. +* Import installed game and Sync installed games with existing Epic Games installation. + +#### Install Heroic Games Launcher on Linux + +Heroic Games Launcher is available as a Flatpak, AppImage, .deb package, and a .rpm package. So, it can be installed on any Linux distribution, including Ubuntu, Arch, and Fedora. + +You also get a third-party apt repository and can find it listed in AUR. + +I recommend using the Flatpak package, which you can install it using the software center (or package manager) if you already have Flatpak enabled or enter the following command to proceed: + +``` +flatpak install flathub com.heroicgameslauncher.hgl +``` + +Refer to our [Flatpak guide][3], [AppImage guide][4], [deb installation guide][5], or the [rpm package guide][6] if you are new to Linux and need help to get it installed. + +#### Steps to Launch Epic Games Store on Heroic Games Launcher + +1. Once installed, you just need to launch the program and head to the **Stores** menu, and log in to your Epic Store account as shown in the image. + +![epic game store heroic][7] + +The log in will be web-based, so you will notice the usual login options for the Epic Games Store account. + +Alternatively, you can click on “**Manage Accounts**” at the bottom left section of the screen and check if you have it signed in. + +![heroic manage account][8] + +2. When you are logged in, you can click on “**Library**” to access all your games. It can take a while to refresh. Here’s what it should look like: + +3. In the library, you just have to click on the game you want to install, you will find the download/install size listed. In some cases, you can find the details only after you click on the “**Install**” button. + +![heroic games install epic game][9] + +Of course, Fall Guys is just an example of how it looks. It doesn’t work because it needs aan nti-cheat service. + +4. To proceed, it will prompt you to select the installation path, wineprefix, and wine version you would like to make it work with. + +![heroic game install][10] + +If you are uncertain if the game works properly on Linux, you can head to the “**Tools**” option in the game listing screen, and click on “**Check compatibility**“. This will pull up any records of it from ProtonDB, which indicates if it works well on Linux. + +5. Once you are certain, proceed with installing it, and launch the game when it is done. + +As you can notice, it will use the recommended/default Wine version to run the game. But, if you want something specific, you can head to the “**Wine Manager**” option, and download a specific version that works with the game as per your requirements. + +![heroic launcher epic game store][11] + +### 2. Use Epic Games Store with Lutris + +![lutris epic game store login][12] + +Lutris is yet another client that helps you run Epic Games Store, GOG games, and more while utilizing Wine’s compatibility layer. + +Unlike Heroic Launcher, you may not get a native-like Epic Games Store experience, but you can access Epic Launcher as you would on a Windows machine. + +You can use the same to download/install games, and it just works. You do not get any extra fancy features here. + +#### Install Lutris on Linux + +For Ubuntu-based distros, you can simply add the PPA and get it installed. And, for Pop!_OS, you can find it listed in its software center. + +The commands to add the PPA are: + +``` +sudo add-apt-repository ppa:lutris-team/lutris +``` + +For other Linux distributions, you can try the beta Flatpak repository to get it installed as per the [official instructions][13]. + +#### Steps to Use Epic Games Store on Lutris + +1. Launch Lutris, and then look for the Epic Game Store as a source on the left side of the window. + +![lutris epic game][14] + +Click on it to proceed with the login. + +If it does not show up in your case, you can head to the preferences and enable Epic Games Store from the sources available: + +![lutris preference epic game enable][15] + +You can also enable/disable other sources here. + +2. Once you log in to the Epic account, you can find all your games listed. However, to proceed to install any of the games, it will prompt you to get the Epic Games Store wine package. + +![install egs wine lutris][16] + +You just need to follow the on-screen instructions to install everything it requires. + +![install lutris wine dependencies][17] + +3. When the installation is complete, it will automatically configure the wine configuration for you, and give you the option to launch the Epic Games Store. + +![lutris game epic games][18] + +All you have to do is look for a compatible game in your library, or purchase it, and install it. I tried **CONTROL**, and it works flawlessly. + +### 3. Use Bottles to Access Epic Games Store + +Bottles is yet another impressive program that lets you run Windows applications on Linux. + +It is available as a [Flatpak][19] on [Flathub][20], which is the recommended method for installation. + +You just need to create a Bottle for your use case, for instance, gaming in this case. + +![A Video from YouTube][21] + +You can refer to the official video above for the steps to create a Bottle. It should be self-explanatory, considering the application is very user-friendly. + +Once you create the Bottle, you will have to find the installer for Epic Games Store and download it from within it. Similarly, you can install other game clients as well. + +![bottles epic games installer][22] + +Here’s what it should look like after you’re done. Just launch the Epic Games Store, and you can install/play games effortlessly! + +![bottles gaming dark][23] + +### Wrapping Up + +I tested all these methods using Manjaro and Ubuntu 22.04 LTS, and it worked fine for a couple of games. + +Of course, you need to be sure that the game you want runs well with the compatibility layers. So, make sure to head to ProtonDB before you purchase or download a game. + +As with the current state, even if we do not get native support for Epic Games Store, it should not be an inconvenience. + +Options like Heroic, Lutris, and Bottles have made running Windows-exclusive applications on Linux effortless. You just have to try one of them to get started. + +[Gaming on Linux][24] has certainly come a long way. Don’t you think? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/epic-games-linux/ + +作者:[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://www.gog.com/ +[2]: https://github.com/derrod/legendary +[3]: https://itsfoss.com/flatpak-guide/ +[4]: https://itsfoss.com/use-appimage-linux/ +[5]: https://itsfoss.com/install-deb-files-ubuntu/ +[6]: https://itsfoss.com/install-rpm-files-fedora/ +[7]: https://itsfoss.com/wp-content/uploads/2022/07/epic-game-store-heroic.png +[8]: https://itsfoss.com/wp-content/uploads/2022/07/heroic-manage-account.jpg +[9]: https://itsfoss.com/wp-content/uploads/2022/07/heroic-games-install-epic-game.jpg +[10]: https://itsfoss.com/wp-content/uploads/2022/07/heroic-game-install.png +[11]: https://itsfoss.com/wp-content/uploads/2022/07/heroic-launcher-epic-game-store.png +[12]: https://itsfoss.com/wp-content/uploads/2022/07/lutris-epic-game-store-login.png +[13]: https://lutris.net/downloads +[14]: https://itsfoss.com/wp-content/uploads/2022/07/lutris-epic-game-800x520.png +[15]: https://itsfoss.com/wp-content/uploads/2022/07/lutris-preference-epic-game-enable.png +[16]: https://itsfoss.com/wp-content/uploads/2022/07/install-egs-wine-lutris.png +[17]: https://itsfoss.com/wp-content/uploads/2022/07/install-lutris-wine-dependencies.png +[18]: https://itsfoss.com/wp-content/uploads/2022/07/lutris-game-epic-games.jpg +[19]: https://itsfoss.com/what-is-flatpak/ +[20]: https://flathub.org/apps/details/com.usebottles.bottles +[21]: https://youtu.be/0BQjFlEdSVA +[22]: https://itsfoss.com/wp-content/uploads/2022/07/bottles-epic-games-installer.png +[23]: https://itsfoss.com/wp-content/uploads/2022/07/bottles-gaming-dark.png +[24]: https://itsfoss.com/linux-gaming-guide/ From 1e7e94a1875a911099761e2abc0b0521086d8ac9 Mon Sep 17 00:00:00 2001 From: ali Date: Fri, 15 Jul 2022 20:51:54 +0800 Subject: [PATCH 0389/3123] trans-fix-gedit --- ...gedit in Dark Mode- Here-s What You Can Do.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md b/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md index a037e8b060..20c038f8c2 100644 --- a/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md +++ b/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md @@ -1,11 +1,11 @@ -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do) -[#]: via: (https://itsfoss.com/gedit-dark-mode-problem/) -[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) +[#]: collector: "lujun9972" +[#]: translator: "void-mori " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " +[#]: subject: "Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do" +[#]: via: "https://itsfoss.com/gedit-dark-mode-problem/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do ====== From 6b19a7599b1cbecde7295269e78e9f9056cdb9fd Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 15 Jul 2022 22:30:41 +0800 Subject: [PATCH 0390/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220715=20Microservices=20Collaboration=20with=20Co?= =?UTF-8?q?ntainerised=20Kafka.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Collaboration with Containerised Kafka.md | 369 ++++++++++++++++++ 1 file changed, 369 insertions(+) create mode 100644 sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md diff --git a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md new file mode 100644 index 0000000000..3c9991e28a --- /dev/null +++ b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md @@ -0,0 +1,369 @@ +[#]: subject: "Microservices Collaboration with Containerised Kafka" +[#]: via: "https://www.opensourceforu.com/2022/07/microservices-collaboration-with-containerised-kafka/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microservices Collaboration with Containerised Kafka +====== + +![Microservices-Collaboration-with-Containerised-Kafka-Featured-image][1] + +*Independently deployed microservices need a mechanism to collaborate among themselves asynchronously. Apache Kafka has emerged as the first choice for establishing such an environment. In this part 8 of the series of articles titled ‘The Design Odyssey’, the AddService of the user management system is connected to Kafka on the Docker network.* + +Apache Kafka plays different roles in different use cases. It can act as a message store, a messaging queue, or a stream processing engine. In the enterprise microservices environment, it has been very popular as a messaging queue where the services communicate with each other by producing and consuming messages asynchronously. Apache Kafka makes sure that the messages are delivered from the producers to the consumers with various guarantees. (Refer to the article published in the September 2021 issue of *Open Source For You* for an introduction to Apache Kafka by the author.) + +#### The path covered so far + +Before introducing Kafka into the architecture of the user management system (UMS), let’s look at the big picture once. + +We initially designed the UMS as a monolith system by applying appropriate object-oriented design patterns like Factory, Adapter, Proxy, Observer, etc. Later, we refactored the design by decomposing the monolith into a set of microservices, namely, *AddService*, *SearchService*, *FindService*, and *JournalService* by applying the principles of Domain-Driven Design. We chose to develop REST API for the *AddService* on the Spring Boot platform and integrated it with a JPA database. And in the previous part, the *AddService* was containerised and deployed on the Docker platform. + +We are yet to integrate the *AddService* with the *JournalService*. + +Recollect that the job of the *JournalService* is to log all the activities on UMS into a central location without being a show-stopper. In other words, the *JournalService* must listen to the events published by the*AddService*, *FindService* as well as *SearchService*. Obviously, it requires an implementation of the observer pattern. Apache Kafka is one such implementation when it is used as a messaging infrastructure. + +In our architecture, *JournalService* acts as a consumer whereas *AddService* acts as a producer, along with the *FindService* and *SearchService.* + +#### AddService as Kafka producer + +In order to produce messages to the Kafka broker, the *AddService* requires the Kafka library. Spring Boot comes with a ready-to-use library for Kafka. Add the following snippet as one of the dependencies in the *pom.xml* of the *AddService*. + +``` + + org.springframework.kafka + spring-kafka + +``` + +For ease of use, add the following declaration in the *build* section of the *pom.xml*. It names the resulting package as *ums-add-service*.jar at the end of the build process. + +``` +ums-add-service +``` + +Now, let’s move on to the actual code. Spring Boot makes Kafka integration much simpler by offering a template named KafkaTemplate. Let us inject the template into the *UserController* of the *AddService.* + +``` +@Autowired +private KafkaTemplate template; +``` + +This statement says that we intend to produce a Kafka message with a String as the key and *UserRecord* as the value. + +Then, the following code does the job of actually publishing the message to Kafka broker: + +``` +template.send(“com.glarimy.ums.user.add”, record); +``` + +The first argument is the topic name and the second argument is the message value. We choose com*.glarimy.ums.uesr*.add as the topic name. This topic acts as the virtual channel between the producer (AddService) and the consumer *(JournalService)* to notify the event of user additions. + +Here is the complete code: + +``` +package com.glarimy.ums.app; +import java.util.Set; +import javax.validation.ConstraintViolation; +import javax.validation.Validator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import com.glarimy.ums.domain.Name; +import com.glarimy.ums.domain.PhoneNumber; +import com.glarimy.ums.domain.User; +import com.glarimy.ums.domain.UserRepository; +@RestController +public class UserController { + Logger logger = LoggerFactory.getLogger(UserController.class); + @Autowired + private UserRepository repo; + @Autowired + private Validator validator; + @Autowired + private KafkaTemplate template; + @PostMapping(“/user”) + public ResponseEntity add(@RequestBody NewUser newUser) { + logger.debug(“Received new user”); + Name name = new Name(newUser.name); + PhoneNumber phoneNumber = new PhoneNumber(newUser.phone); + logger.debug(“Building User domain object”); + User user = new User(name, phoneNumber); + logger.debug(“Validating User domain object”); + Set> violations = validator.validate(user); + ResponseEntity response; + if (!violations.isEmpty()) { + violations.forEach(v -> logger.debug(v.getMessage())); + response = new ResponseEntity<>(HttpStatus.BAD_REQUEST); + logger.debug(“Response: “ + response); + } else { + logger.debug(“Saving the User domain object”); + repo.save(user); + logger.debug(“Building the response”); + UserRecord record = new UserRecord(user.getName().getValue(), user.getPhone().getValue(), user.getSince()); + template.send(“com.glarimy.ums.user.add”, record); + response = new ResponseEntity<>(record, HttpStatus.OK); + logger.debug(“Response: “ + response); + } + logger.debug(“returning the response”); + return response; + } +} +``` + +Note that the responsibility of sending event notifications is coded within the controller and not in the domain object, since it is not the primary responsibility of the *AddService.* + +#### Serialisation + +The*UserRecord* is a DTO that we developed in the past. In the above code, we sent the same object as the value in the Kafka message. However, Kafka does not really transport Java objects. It only accepts byte array to remain platform-neutral. We must have a serialiser to convert the *UserRecord* into a byte array so that Kafka transports it. + +Here is the serialiser, which is self-explanatory. + +``` +package com.glarimy.ums.app; +import org.apache.kafka.common.serialization.Serializer; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +public class UserSerializer implements Serializer { + @Override + public byte[] serialize(String topic, UserRecord user) { + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.writeValueAsBytes(user); + } catch (JsonProcessingException e) { + e.printStackTrace(); + return null; + } + } +} +``` + +#### Configuration + +Though we have finished the coding part, it is not sufficient. The template still requires the location of the Kafka cluster and the serialisers to be used for converting the keys and values to byte arrays. The following additions to the *application.properties file* do that job for us: + +``` +spring.kafka.bootstrap-servers=kafka:9092 +spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.value-serializer=com.glarimy.ums.app.UserSerializer +``` + +Note that the above configuration claims that the Kafka broker is listening on port 9092 and is running on the machine with the DNS name *kafka*. So, it is our responsibility to set up Kafka to run accordingly. + +#### Building the Docker image + +Once the above code and configuration are ready, we can build the service and create the Docker image. The*Dockerfile* that was developed in the previous part is still valid. + +``` +FROM maven:3.5-jdk-8 AS build +COPY src /usr/glarimy/src +COPY pom.xml /usr/glarimy +RUN mvn -f /usr/glarimy/pom.xml clean package -DskipTests +EXPOSE 8080 +ENTRYPOINT [“java”,”-jar”,”/usr/glarimy/target/ums-add-service.jar”] +``` + +And the following command builds the Docker image, as in the past: + +``` +sudo docker build -t glarimy/ums-add-service . +``` + +#### Deploying Kafka cluster and services + +Kafka runs as a cluster of one to any number of brokers along with Zookeeper. In other words, to set up the Kafka cluster, we need to run the Zookeeper server and also at least one Kafka broker. Since we want everything to run on the Docker environment, we need the Docker images of Zookeeper and Kafka. The most popular choices are bitnami/zookeeper:3.8 and bitnami/kafka:3.1. + +Since both the images are required to always run together, we can use the *docker-compose* tool to simplify the deployment. Using *docker-compose*, we can deploy multiple services in one go on a dedicated network so that they can access each other using the published names and port numbers. We can also manage the dependencies among the services as well. + +The *docker-compose* tool expects a manifest file named *docker-compose.yml* in which the required list of services, their dependencies, etc, are declared. + +Let’s first declare the zookeeper service: + +``` +zookeeper: + image: docker.io/bitnami/zookeeper:3.8 + ports: + - “2181:2181” + volumes: + - “zookeeper_data:/glarimy” + environment: + - ALLOW_ANONYMOUS_LOGIN=yes + networks: + - glarimy +``` + +This declaration tells the *docker-compose* tool to run a container named *zookeeper* from the specified image on the network named *glarimy.* Also, it tells that the port 2181 of *zookeeper* is to be mapped to the same port number on the network. It mounts a volume and sets up some configuration for the container via *environment*. + +For the above declaration to work, we need to set up the network named *glarimy*. The following does that job. + +``` +networks: + glarimy: + driver: bridge +``` + +With this, any container on the same *glarimy* network can reach the Zookeeper service using the DNS name *zookeeper.* Consequently, if we run the Kafka on the same network, it can connect to the Zookeeper without any issue. + +Just like we declared the Zookeeper, we can also declare the Kafka: + +``` +kafka: + image: docker.io/bitnami/kafka:3.1 + ports: + - “9092:9092” + volumes: + - “kafka_data:/glarimy” + environment: + - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 + - ALLOW_PLAINTEXT_LISTENER=yes + networks: + - glarimy + depends_on: + - zookeeper +``` + +The only additional field in the above declaration that is of interest is the *depends-on*. It tells the *docker-compose* tool to start the kafka container only after the *zookeeper* container is started. + +Why should we limit ourselves only to the Zookeeper and Kafka? We can also deploy the *AddService* along with them in the same *docker-compose* since they have intimacy. + +``` +ums: + image: glarimy/ums-add-service + networks: + - glarimy + depends_on: + - zookeeper +``` + +The above is self-explanatory. Following is the full manifest: + +``` +version: “2” +networks: + glarimy: + driver: bridge +services: + zookeeper: + image: docker.io/bitnami/zookeeper:3.8 + ports: + - “2181:2181” + volumes: + - “zookeeper_data:/glarimy” + environment: + - ALLOW_ANONYMOUS_LOGIN=yes + networks: + - glarimy + kafka: + image: docker.io/bitnami/kafka:3.1 + ports: + - “9092:9092” + volumes: + - “kafka_data:/glarimy” + environment: + - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 + - ALLOW_PLAINTEXT_LISTENER=yes + networks: + - glarimy + depends_on: + - zookeeper +volumes: + zookeeper_data: + driver: local + kafka_data: + driver: local +``` + +Once the Docker images are available, either locally or on the Docker Hub, the following command from the location of *docker-compose.yml* simply deploys them on the Docker environment: + +``` +sudo docker-compose up -d +``` + +Use the following command to see if all the three containers are up and running: + +``` +sudo docker ps --format “table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}” +``` + +It gives an output similar to Figure 1. + +![Figure 1: Running containers][2] + +Now, go to the container where the *AddService* is running: + +``` +sudo docker exec -it f4aa72bcec4a bash +``` + +Once the *bash* terminal of the container is available, run a *CURL* command to post a new user to the *AddService*. + +``` +curl -H “Content-Type: application/json” -d ‘{“name”:”Krishna Mohan”, “phone”:9731423166}’ http://localhost:8080/user +``` + +It gives an output like Figure 2. + +![Figure 2: Posting a new user to the AddService][3] + +You can exit the bash terminal and verify the logs of the container using the following command: + +``` +sudo docker logs f4aa72bcec4a +``` + +You can see that the *AddService* is processing the POST requests by saving the user data and also by sending the notifications to Kafka. + +As the last activity, let us verify that Kafka is indeed receiving the notifications from the *AddService*. First, identify the container ID of the Kafka and log into the container: + +``` +sudo docker exec -it abac64c0c8a4 bash +``` + +Run the following command to start a consumer that listens to the topic on which the *AddService* was writing messages. + +``` +/opt/bitnami/kafka/bin//kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic com.glarimy.ums.user.add --from-beginning +``` + +An output similar to Figure 3 can be observed. + +![Figure 3: Starting a consumer][4] + +Once the job is done, the following command can bring down all the services at once: + +``` +sudo docker-compose down +``` + +#### What did we do? + +We just accomplished two objectives. We were able to create a network and orchestrate multiple Docker containers. We were also able to connect *AddService* and Kafka cluster on Docker. The beauty of this architecture is that the services are not actually aware of each other. It is only through the configuration that we are connecting them. And the producers and consumers of Kafka do not block each other. + +In the next several parts, we will develop and deploy the *FindService* and *SearchService* on the Python and Node environments, orchestrate containers on different machines using Kubernetes, scale them, and also develop the *JournalService* as a Kafka consumer. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/microservices-collaboration-with-containerised-kafka/ + +作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Microservices-Collaboration-with-Containerised-Kafka-Featured-image.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Running-containers.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Posting-a-new-user-to-the-AddService.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Starting-a-consumer.jpg From c31c091a01f1ec7fa984e82920905b36b357965c Mon Sep 17 00:00:00 2001 From: ali Date: Fri, 15 Jul 2022 23:28:18 +0800 Subject: [PATCH 0391/3123] translated-gedit-dark-mode --- ...it in Dark Mode- Here-s What You Can Do.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md diff --git a/translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md b/translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md new file mode 100644 index 0000000000..392493aafa --- /dev/null +++ b/translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md @@ -0,0 +1,84 @@ +[#]: collector: "lujun9972" +[#]: translator: "void-mori " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " +[#]: subject: "Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do" +[#]: via: "https://itsfoss.com/gedit-dark-mode-problem/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" + +Gedit深色模式下高亮文本不可见?以下是你能做的 +====== + +我喜欢 [在Ubuntu中使用深色模式][1]。在我看来深色模式能够缓解视觉疲劳,让系统看起来更加的赏心悦目。 + +我发现了一个 [gedit][2] 文本编辑器的小麻烦,如果你在深色模式下使用它,你也许也会遇到。 + +默认情况下 gedit 高亮当前光标所在的行。这是一个非常有用的功能,但是如果你在LInux系统中开启了深色模式,那么你将会感到痛苦。为什么?因为被高亮的文本将不再变得可读。你自己看吧: + +![Text on the highlighted line is hardly visible][3] + +如果你选择文本,它将变得可读,但这并不是一个让人感到有多么愉快的阅读或者编辑体验。 + +![Selecting the text makes it better but that’s not a convenient thing to do for all lines][4] + +好消息是你不需要再忍受它。我将演示几个步骤让你能够同时享受 gedit 以及系统的深色模式。 + +### 让gedit在深色模式下阅读体验友好 + +你基本上有两个选择: + + 1. 禁用高亮当前行,但也同时意味着你必须清楚地知道你在哪一行。 + 2. 改变默认的颜色设置,但编辑器的颜色会变得稍微有些不同,而且如果你更改系统主题,它不会自动切换到浅色模式。 + + + +在 gedit 或者 GNOME 的开发者解决这个问题之前,这是你必须要做的应变和妥协。 + +#### 选项1: 禁止高亮当前行 + +当你打开 gedit 后,点击汉堡菜单然后选择**首选项**。 + +![Go to Preferences][5] + +在查看选项卡,你应该看到在 “Highlighting” 区域的下方的 “Highlight current line” 选项。取消勾选这个选项,马上就可以看到效果。 + +![Disable highlighting current line][6] + +高亮当前行是一个可用的功能,如果你想继续使用它,请选择第二个选项。 + +#### 选项2: 更改编辑器的颜色主题 + +在首选项窗口,找到 Font & Colors 标签页,然后将颜色主题更改为 Oblivion,Solarized Dark,或者 Cobalt。 + +![Change the color scheme][7] + +正如我前面所提到的,缺点就是当你把系统主题切换为浅色模式时,编辑器将不会自动切换到浅色模式。 + +### 开发者应该修复的一个bug + +这里 [有几个Linux可用的文本编辑器][8] ,但是为了快速阅读或编辑文本文件,我更推荐使用 gedit。尽管如此,小烦恼仍旧是小烦恼。开发者应该在将来的版本中为这个很好的文本编辑器修复这个问题,让我们不再求助于这些应对办法。 + +你呢?你在你的系统上使用深色模式还是浅色模式?你注意到 gedit 的这个问题了吗?你有使用什么方法去解决它吗?欢迎分享你的经验。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/gedit-dark-mode-problem/ + +作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/dark-mode-ubuntu/ +[2]: https://wiki.gnome.org/Apps/Gedit +[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/gedit-dark-mode-problem.png?resize=779%2C367&ssl=1 +[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/gedit-dark-mode-issue.png?resize=779%2C367&ssl=1 +[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/gedit-preference.jpg?resize=777%2C527&ssl=1 +[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/disable-highlight-line-gedit.jpg?resize=781%2C530&ssl=1 +[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-color-scheme-gedit.jpg?resize=785%2C539&ssl=1 +[8]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ From 9e7452cac4594349195d3e514ad0ccb6bf6a47dd Mon Sep 17 00:00:00 2001 From: ali Date: Fri, 15 Jul 2022 23:45:16 +0800 Subject: [PATCH 0392/3123] translated-gedit-fix_delete-sources --- ...it in Dark Mode- Here-s What You Can Do.md | 84 ------------------- 1 file changed, 84 deletions(-) delete mode 100644 sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md diff --git a/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md b/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md deleted file mode 100644 index 20c038f8c2..0000000000 --- a/sources/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md +++ /dev/null @@ -1,84 +0,0 @@ -[#]: collector: "lujun9972" -[#]: translator: "void-mori " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " -[#]: subject: "Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do" -[#]: via: "https://itsfoss.com/gedit-dark-mode-problem/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" - -Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do -====== - -I love [using dark mode in Ubuntu][1]. It’s soothing on the eyes and makes the system look aesthetically more pleasing, in my opinion. - -One minor annoyance I noticed is with [gedit][2] text editor and if you use it with the dark mode in your system, you might have encountered it too. - -By default, gedit highlights the line where your cursor is. That’s a useful feature but it becomes a pain if you are using dark mode in your Linux system. Why? Because the highlighted text is not readable anymore. Have a look at it yourself: - -![Text on the highlighted line is hardly visible][3] - -If you select the text, it becomes readable but it’s not really a pleasant reading or editing experience. - -![Selecting the text makes it better but that’s not a convenient thing to do for all lines][4] - -The good thing is that you don’t have to live with it. I’ll show a couple of steps you can take to enjoy dark mode system and gedit together. - -### Making gedit reader-friendly in dark mode - -You basically have two options: - - 1. Disable highlight the current line but then you’ll have to figure out which line you are at. - 2. Change the default color settings but then the colors of the editor will be slightly different, and it won’t switch to light mode automatically if you change the system theme. - - - -It’s a workaround and compromise that you’ll have to make until the gedit or GNOME developers fix the issue. - -#### Option 1: Disable highlighting current line - -When you have gedit opened, click on the hamburger menu and select **Preferences**. - -![Go to Preferences][5] - -In the View tab, you should see the “Highlight current line” option under Highlighting section. Uncheck this. The effects are visible immediately. - -![Disable highlighting current line][6] - -Highlighting current line is a usable feature and if you want to continue using it, opt for the second option. - -#### Option 2: Change the editor color theme - -In the Preferences window, go to Font & Colors tab and change the color scheme to Oblivion, Solarized Dark or Cobalt. - -![Change the color scheme][7] - -As I mentioned earlier, the drawback is that when you switch the system theme to a light theme, the editor theme isn’t switched automatically to the light theme. - -### A bug that should be fixed by devs - -There are [several text editors available for Linux][8] but for quick reading or editing a text file, I prefer using gedit. It’s a minor annoyance but an annoyance nonetheless. The developers should fix it in future version of this awesome text editor so that we don’t have to resort to these worarounds. - -How about you? Do you use dark mode on your system or light mode? Had you noticed this trouble with gedit? Did you take any steps to fix it? Feel free to share your experience. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/gedit-dark-mode-problem/ - -作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/dark-mode-ubuntu/ -[2]: https://wiki.gnome.org/Apps/Gedit -[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/gedit-dark-mode-problem.png?resize=779%2C367&ssl=1 -[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/gedit-dark-mode-issue.png?resize=779%2C367&ssl=1 -[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/gedit-preference.jpg?resize=777%2C527&ssl=1 -[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/disable-highlight-line-gedit.jpg?resize=781%2C530&ssl=1 -[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-color-scheme-gedit.jpg?resize=785%2C539&ssl=1 -[8]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ From 5d9b52be5341fafb0f21efe51c1a90aa8c5dcbf9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 16 Jul 2022 09:42:50 +0800 Subject: [PATCH 0393/3123] RP @void-mori https://linux.cn/article-14833-1.html --- ...it in Dark Mode- Here-s What You Can Do.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) rename {translated/tech => published}/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md (58%) diff --git a/translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md b/published/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md similarity index 58% rename from translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md rename to published/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md index 392493aafa..a530d5f379 100644 --- a/translated/tech/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md +++ b/published/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md @@ -1,63 +1,63 @@ [#]: collector: "lujun9972" -[#]: translator: "void-mori " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "void-mori" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14833-1.html" [#]: subject: "Highlighted Text Not Visible in gedit in Dark Mode? Here’s What You Can Do" [#]: via: "https://itsfoss.com/gedit-dark-mode-problem/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -Gedit深色模式下高亮文本不可见?以下是你能做的 +gedit 深色模式下高亮文本不可见?以下是你能做的 ====== -我喜欢 [在Ubuntu中使用深色模式][1]。在我看来深色模式能够缓解视觉疲劳,让系统看起来更加的赏心悦目。 +![](https://img.linux.net.cn/data/attachment/album/202207/16/094145b0gdwez5zo0zyuhz.jpg) + +我喜欢 [在 Ubuntu 中使用深色模式][1]。在我看来深色模式能够缓解视觉疲劳,让系统看起来更加的赏心悦目。 我发现了一个 [gedit][2] 文本编辑器的小麻烦,如果你在深色模式下使用它,你也许也会遇到。 -默认情况下 gedit 高亮当前光标所在的行。这是一个非常有用的功能,但是如果你在LInux系统中开启了深色模式,那么你将会感到痛苦。为什么?因为被高亮的文本将不再变得可读。你自己看吧: +默认情况下 gedit 高亮当前光标所在的行。这是一个非常有用的功能,但是如果你在 Linux 系统中开启了深色模式,那么你将会感到痛苦。为什么?因为被高亮的文本将不再变得可读。你自己看吧: ![Text on the highlighted line is hardly visible][3] -如果你选择文本,它将变得可读,但这并不是一个让人感到有多么愉快的阅读或者编辑体验。 +如果你选择文本,它将变得可读,但这并不是一个让人感到有多么愉快的阅读或者编辑体验。(LCTT 校注:在新的 Ubuntu 22.04 中,这一情况已经有所改善,“高亮当前行”已被取消勾选) ![Selecting the text makes it better but that’s not a convenient thing to do for all lines][4] 好消息是你不需要再忍受它。我将演示几个步骤让你能够同时享受 gedit 以及系统的深色模式。 -### 让gedit在深色模式下阅读体验友好 +### 让 gedit 在深色模式下阅读体验友好 你基本上有两个选择: 1. 禁用高亮当前行,但也同时意味着你必须清楚地知道你在哪一行。 2. 改变默认的颜色设置,但编辑器的颜色会变得稍微有些不同,而且如果你更改系统主题,它不会自动切换到浅色模式。 - - 在 gedit 或者 GNOME 的开发者解决这个问题之前,这是你必须要做的应变和妥协。 #### 选项1: 禁止高亮当前行 -当你打开 gedit 后,点击汉堡菜单然后选择**首选项**。 +当你打开 gedit 后,点击汉堡菜单然后选择“首选项Preferences”。 ![Go to Preferences][5] -在查看选项卡,你应该看到在 “Highlighting” 区域的下方的 “Highlight current line” 选项。取消勾选这个选项,马上就可以看到效果。 +在查看选项卡,你应该看到在 “高亮Highlighting” 区域的下方的 “高亮当前行Highlight current line” 选项。取消勾选这个选项,马上就可以看到效果。 ![Disable highlighting current line][6] -高亮当前行是一个可用的功能,如果你想继续使用它,请选择第二个选项。 +“高亮当前行”是一个有用的功能,如果你想继续使用它,请选择第二个选项。 #### 选项2: 更改编辑器的颜色主题 -在首选项窗口,找到 Font & Colors 标签页,然后将颜色主题更改为 Oblivion,Solarized Dark,或者 Cobalt。 +在“首选项Preferences”窗口,找到 “字体与颜色Font & Colors” 标签页,然后将颜色主题更改为 “Oblivion”、“Solarized Dark”,或者 “Cobalt”。 ![Change the color scheme][7] 正如我前面所提到的,缺点就是当你把系统主题切换为浅色模式时,编辑器将不会自动切换到浅色模式。 -### 开发者应该修复的一个bug +### 开发者应该修复的一个 bug -这里 [有几个Linux可用的文本编辑器][8] ,但是为了快速阅读或编辑文本文件,我更推荐使用 gedit。尽管如此,小烦恼仍旧是小烦恼。开发者应该在将来的版本中为这个很好的文本编辑器修复这个问题,让我们不再求助于这些应对办法。 +这里 [有几个 Linux 可用的文本编辑器][8] ,但是为了快速阅读或编辑文本文件,我更推荐使用 gedit。尽管如此,小烦恼仍旧是小烦恼。开发者应该在将来的版本中为这个很好的文本编辑器修复这个问题,让我们不再求助于这些应对办法。 你呢?你在你的系统上使用深色模式还是浅色模式?你注意到 gedit 的这个问题了吗?你有使用什么方法去解决它吗?欢迎分享你的经验。 @@ -67,8 +67,8 @@ via: https://itsfoss.com/gedit-dark-mode-problem/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[void-mori](https://github.com/void-mori) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 67b0eeffc30a229300a7bee59016b5b239c85318 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 16 Jul 2022 10:10:40 +0800 Subject: [PATCH 0394/3123] RP @hanszhao80 https://linux.cn/article-14834-1.html --- ... to Installing Arch Linux on VirtualBox.md | 86 ++++++++++--------- 1 file changed, 44 insertions(+), 42 deletions(-) rename {translated/tech => published}/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md (72%) diff --git a/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md b/published/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md similarity index 72% rename from translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md rename to published/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md index 3548186695..28d6c3f008 100644 --- a/translated/tech/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md +++ b/published/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md @@ -3,26 +3,30 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lujun9972" [#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14834-1.html" -VirtualBox 安装 Arch Linux 的新手操作指南 +在 VirtualBox 安装 Arch Linux 的新手操作指南 ====== +![](https://img.linux.net.cn/data/attachment/album/202207/16/100738bceesesazv6rsxl4.jpg) + [Arch Linux 在桌面 Linux 世界中非常流行][1]。受欢迎的原因之一是 [安装 Arch Linux][2] 本身就是一项复杂的任务。 -我没有夸大其词。安装 [Ubuntu 或 Debian][3] 比 Arch Linux 容易得多,因为官方没给后者提供图形界面的安装程序。这时虚拟机就派上用场了。 +我没有夸大其词。安装 [Ubuntu 或 Debian][3] 比 Arch Linux 容易得多,因为官方没给后者提供图形界面的安装程序。 -你可以先在 VirtualBox 中尝试安装 Arch Linux,看看它是否是你想在实际硬件上运行的系统。通过这种方式,你可以在不打乱当前操作系统的情况下体验 Arch Linux。 +这时虚拟机就派上用场了。 + +你可以先在 VirtualBox 中尝试安装 Arch Linux,看看它是否是你想在实际硬件上运行的系统。通过这种方式,你可以在不弄乱当前操作系统的情况下体验 Arch Linux。 在本文,我将一步一步指导你完成一个实用的 Arch Linux 虚拟机的安装过程。 ### 在 VirtualBox 上安装 Arch Linux -毫无疑问,你需要先 [在 Linux 上安装 VirtualBox][4](或 Windows)。在 Windows 上,只需访问 Oracle 的网站并下载 VirtualBox。 +毫无疑问,你需要先 [在 Linux 上安装 VirtualBox][4](或在 Windows 上)。在 Windows 上,只需访问 Oracle 的网站并下载 VirtualBox。 -[下载 VirtualBox][5] +> **[下载 VirtualBox][5]** 如果你使用的是 Windows 10 或更高版本,请确保你的系统已启用虚拟化。 @@ -36,11 +40,11 @@ VirtualBox 安装 Arch Linux 的新手操作指南 #### 第一部分 创建虚拟机 -**第一步**:首先,你需要在 VirtualBox 中设置一下。启动 VirtualBox 并单击 **新建New** 来创建一个虚拟机。 +**第一步**:首先,你需要在 VirtualBox 中设置一下。启动 VirtualBox 并单击 “新建New” 来创建一个虚拟机。 ![][10] -注意,你可以使用向导模式guided mode继续创建虚拟机,但使用专家模式expert mode可以一目了然地获得更多选项。 +注意,你可以使用 “向导模式guided mode” 继续创建虚拟机,但使用 “专家模式expert mode” 可以一目了然地获得更多选项。 ![][11] @@ -48,7 +52,7 @@ VirtualBox 安装 Arch Linux 的新手操作指南 不用担心,专家模式同样简单,只是多了一些额外的可选项,无需担心其他任何事情。 -**第二步**:输入你的虚拟机名称。当你在名称Name字段中输入 **Arch Linux** 时,它会分别自动检测类型Type版本Version。 +**第二步**:输入你的虚拟机名称。当你在 “名称Name” 字段中输入 “Arch Linux” 时,它会分别自动检测 “类型Type” 和 “版本Version”。 ![][12] @@ -56,47 +60,47 @@ VirtualBox 安装 Arch Linux 的新手操作指南 我在这个例子中分配了 **4 GB 左右的内存**。 -另外,请确保在硬盘Hard disk选项下选择**现在创建虚拟硬盘create a virtual hard disk**。它应该是默认选项。 +另外,请确保在 “硬盘Hard disk”选项下选择 “现在创建虚拟硬盘create a virtual hard disk”。它应该是默认选项。 现在,继续设置虚拟硬盘大小。 -**第三步**:你可以选择虚拟硬盘的存放位置,并根据你的需求调整大小。最小分配大小 (8 GB) 对于安装系统应该不是问题,但安全起见,你可能得分配至少 10 到 15 GB。 +**第三步**:你可以选择虚拟硬盘的存放位置,并根据你的需求调整大小。最小分配大小(8 GB)对于安装系统应该不是问题,但安全起见,你可能得分配至少 10 到 15 GB。 ![][13] -接下来,你需要将硬盘硬盘文件类型选择为 **VDI (VirtualBox 磁盘镜像Disk Image)** ,将存储选择为 **动态分配Dynamically assigned**,如上图所示。 +接下来,你需要将硬盘硬盘文件类型选择为 “VDI(VirtualBox Disk Image)” ,将存储选择为 “动态分配Dynamically assigned”,如上图所示。 VDI 是虚拟硬盘最常见的硬盘类型。 -当你为硬盘存储选择 **动态分配** 选项时,这意味着存储空间将根据使用情况进行使用。换言之,当创建虚拟机后,并不会立即将这 15 GB 的空间从你的磁盘中锁定。 +当你为硬盘存储选择 “动态分配Dynamically allocated” 选项时,这意味着存储空间将根据使用情况进行使用。换言之,当创建虚拟机后,并不会立即将这 15 GB 的空间从你的磁盘中锁定。 -现在,你所要做的就是点击 **创建Create** 来添加虚拟机。 +现在,你所要做的就是点击 “创建Create” 来添加虚拟机。 #### 第二部分 添加 ISO 文件以开始安装 Arch Linux ![][14] -当虚拟机在左侧列表中出现后,你可以查看其配置并在 **存储Storage** 选项下选择 ISO 文件作为磁盘驱动。 +当虚拟机在左侧列表中出现后,你可以查看其配置并在 “存储Storage” 选项下选择 ISO 文件作为磁盘驱动。 你也可以单独前往虚拟机设置以探索更多内容并选择 ISO 文件。 ![][15] -为此,你需要导航至虚拟机设置的 **存储Storage** 页签。 +为此,你需要导航至虚拟机设置的 “存储Storage” 标签页。 ![][16] -在这里,你必须单击 控制器Controller 下的 **没有盘片Empty**,然后继续选择 Arch Linux ISO 文件作为磁盘文件(如上图所示)。 +在这里,你必须单击 “控制器Controller” 下的 “没有盘片Empty”,然后继续选择 Arch Linux ISO 文件作为磁盘文件(如上图所示)。 ![][17] -完成选择后,点击 **OK** 以保存设置的变更。 +完成选择后,点击 “OK” 以保存设置的变更。 将 ISO 设置为要引导的磁盘时,虚拟机设置应如下所示: ![][18] -现在,点击 **启动Start** 启动虚拟机并开始安装。 +现在,点击 “启动Start” 启动虚拟机并开始安装。 #### 第三部分 使用引导式安装程序安装 Arch Linux @@ -126,9 +130,9 @@ VDI 是虚拟硬盘最常见的硬盘类型。 ![][23] -选择首选地区而不是“全球“Worldwide””。这至关重要,因为如果你选择 **全球** 作为你的地区,它会下载许多不必要的包。 +选择首选地区而不是 “全球Worldwide”。这至关重要,因为如果你选择 **全球** 作为你的地区,它会下载许多不必要的包。 -**第四步**:选择区域后,它会要求你选择驱动器进行安装。在这个例子中,我们已经创建了一个大约 15 GB 的虚拟驱动器,显示为 **/dev/sda**。 +**第四步**:选择区域后,它会要求你选择驱动器进行安装。在这个例子中,我们已经创建了一个大约 15 GB 的虚拟驱动器,显示为 `/dev/sda`。 类似的,根据大小检查你创建的驱动器,然后选择该磁盘继续。在这里,我输入 `1` 作为输入;你的可能会有所不同。 @@ -136,38 +140,36 @@ VDI 是虚拟硬盘最常见的硬盘类型。 **第五步**:接下来,你将被询问以下内容: - - **选择文件系统类型** - - **加密密码** (可选的) - - **主机名** - - **创建 root 密码** (可选的) - - **创建超级用户** - - **选择一个预编程的配置文件** - - + - 选择文件系统类型 + - 加密密码(可选的) + - 主机名 + - 创建 root 密码(可选的) + - 创建超级用户 + - 选择一个预编程的配置文件 ![][25] -在我的测试中,我选择了 BTRFS 作为文件系统,没有设置任何磁盘加密密码。 +在我的测试中,我选择了 btrfs 作为文件系统,没有设置任何磁盘加密密码。 主机名可随心所欲的设置,但我建议保持简短。 -你可以选择创建一个 root 密码,即使不这么做也应该没什么问题。不过,你需要创建一个具有 Sudo 权限的超级用户。 +你可以选择创建一个 root 密码,即使不这么做也应该没什么问题。不过,你需要创建一个具有 sudo 权限的超级用户。 -我使用 **admin/pass** 作为用户名和密码。不过,如果你不想让其他人访问你计算机上的虚拟机,则不应使用易于猜测的密码。 +我使用 `admin`/`pass` 作为用户名和密码。不过,如果你不想让其他人访问你计算机上的虚拟机,则不应使用易于猜测的密码。 -然后,你将看到一个选择配置文件的选项。在这种情况下,我们需要一个成熟的 Arch Linux 桌面。因此,我们通过输入 `0` 来选择 **桌面desktop**。 +然后,你将看到一个选择配置文件的选项。在这种情况下,我们需要一个成熟的 Arch Linux 桌面。因此,我们通过输入 `0` 来选择 “桌面desktop”。 **第六步**:接下来,你将被要求选择桌面环境。我决定使用 KDE。你可以选择任何你喜欢的。 ![][26] -**第七步**:最后,你将被要求选择显卡驱动程序。由于我们是在 VirtualBox 上安装的 Arch Linux,你可以选择选项 4:**VMware/VirtualBox**,如下图所示: +**第七步**:最后,你将被要求选择显卡驱动程序。由于我们是在 VirtualBox 上安装的 Arch Linux,你可以选择选项 4:VMware/VirtualBox,如下图所示: ![][27] -你可能还会被要求输入“是(y)或否(no)”选择 pipewire 而不是 PulseAudio 作为音频服务。选任何一个都应该都能达到目的。 +你可能还会被要求输入“是(`y`)或否(`n`)”选择 pipewire 而不是 PulseAudio 作为音频服务。选任何一个都应该都可以。 -**第八步**:接下来是重要的一步。在这里,如果你需要内核的 LTS 版本,你可以选择使用 **linux-lts**,或者继续使用默认值。 +**第八步**:接下来是重要的一步。在这里,如果你需要内核的 LTS 版本,你可以选择使用 “linux-lts”,或者继续使用默认值。 ![][28] @@ -175,19 +177,19 @@ VDI 是虚拟硬盘最常见的硬盘类型。 **第九步**:你将被要求选择所需的网络适配器以启用互联网访问。你必须选择以下选项: -**使用网络管理器来控制和管理你的互联网连接Use network manager to control and manage your internet connection** +“使用网络管理器来控制和管理你的互联网连接Use network manager to control and manage your internet connection” ![][29] **第十步**:下一步需要定义时区。选择适用于你的时区,或继续使用默认选项。 -**第十一步**:完成后,它将显示你选择的大部分选项以供确认。按 **回车** 继续。 +**第十一步**:完成后,它将显示你选择的大部分选项以供确认。按回车键继续。 ![][30] **第十二步**:安装完成需要花费几分钟时间,这取决于你的互联网连接速度。 -安装完成后,它会要求你**chroot 进入新创建的安装以进行安装后配置**,但我们不需要。因此输入 `N` 以完成安装。 +安装完成后,它会要求你 “chroot 进入新创建的安装以进行安装后配置”,但我们不需要。因此输入 `N` 以完成安装。 **第十三步**:最后,你应该会再次看到终端窗口。输入: @@ -226,7 +228,7 @@ via: https://itsfoss.com/install-arch-linux-virtualbox/ 作者:[Ankush Das][a] 选题:[lujun9972][b] 译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 5fbeae61b4febe746723f3af760d16198729a9ac Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 16 Jul 2022 14:25:40 +0800 Subject: [PATCH 0395/3123] RP @geekpi https://linux.cn/article-14835-1.html --- ...iles in your Linux terminal with ranger.md | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) rename {translated/tech => published}/20220704 Manage your files in your Linux terminal with ranger.md (70%) diff --git a/translated/tech/20220704 Manage your files in your Linux terminal with ranger.md b/published/20220704 Manage your files in your Linux terminal with ranger.md similarity index 70% rename from translated/tech/20220704 Manage your files in your Linux terminal with ranger.md rename to published/20220704 Manage your files in your Linux terminal with ranger.md index c5dc19297e..585feda04a 100644 --- a/translated/tech/20220704 Manage your files in your Linux terminal with ranger.md +++ b/published/20220704 Manage your files in your Linux terminal with ranger.md @@ -3,37 +3,38 @@ [#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14835-1.html" 用 ranger 在 Linux 终端管理你的文件 ====== -试试这个轻量级的开源工具,不用离开终端就可以预览文件。 + +> 试试这个轻量级的开源工具,不用离开终端就可以预览文件。 ![Filing cabinet for organization][1] 查看你的文件和文件夹的最基本方法是使用命令 `ls` 和 `ll`。但是有时候,我不仅想看到文件的元数据,还想一目了然地看到文件的内容。为此,我使用 ranger。 -如果你喜欢在控制台中工作,并使用 [Vim][2] 或 Vi,而且你不想因为任何原因离开你的终端,那么 ranger 就是你最好的新朋友。Ranger 是一个最小的文件管理器,它不仅可以让你浏览文件,还可以预览它们。Ranger 与 rifle 捆绑在一起,rifle 是一个文件执行器,可以有效地选择与特定文件类型相关的程序。 +如果你喜欢在控制台中工作,并使用 [Vim][2] 或 Vi,而且你不想因为任何原因离开你的终端,那么 ranger 就是你最好的新朋友。ranger 是一个精简的文件管理器,它不仅可以让你浏览文件,还可以预览它们。ranger 与 rifle 捆绑在一起,rifle 是一个文件执行器,可以有效地选择与特定文件类型相关的程序。 ### 在 Linux 上安装 ranger -Ranger 可以在 Fedora 或任何基于 RPM 的发行版中安装,方法是运行: +ranger 可以在 Fedora 或任何基于 RPM 的发行版中安装,方法是运行: ``` $ sudo dnf install ranger ``` -Ranger 也可以用于[其他发行版和 macOS][3]。 +ranger 也可以用于 [其他发行版和 macOS][3]。 ### 第一次使用 ranger -作为一个用户,你可以在你喜欢的终端上简单地输入 `$ ranger` 来启动 ranger。可以用方向键浏览。这张截图是一个很好的例子,我可以预览存储在 `Kernel-tests` 中的 `config.example` 文件的代码。 +作为一个用户,你可以在你喜欢的终端上简单地输入 `ranger` 来启动 ranger。可以用方向键浏览。这张截图是一个很好的例子,我可以预览存储在 `Kernel-tests` 中的 `config.example` 文件的代码。 ![Screenshot of terminal showing config.example highlighted and a preview of the file in the terminal to the right][4] -选中任何文件并按下 F4 键,就可以打开你的默认编辑器,让你立即编辑这些文件! +选中任何文件并按下 `F4` 键,就可以打开你的默认编辑器,让你立即编辑这些文件! ### 图像和视频怎么办? @@ -41,7 +42,7 @@ Ranger 也可以用于[其他发行版和 macOS][3]。 ![Screenshot of a PNG file preview over a terminal window][6] -在一个图像文件上点击 i 会给用户提供所有的 EXIF 数据。点击 **Shift+Enter** 将打开 PDF 文件。 +在一个图像文件上点击 `i` 会给用户提供所有的 EXIF 数据。点击 `Shift+Enter` 将打开这个 PDF 文件。 ![A screenshot showing a preview of a PDF file (tickets to a museum) floating over the terminal window][7] @@ -53,20 +54,20 @@ Ranger 也可以用于[其他发行版和 macOS][3]。 除非 Vim 用户另有配置,否则下面的键绑定工作良好。 -j:下移 -k:上移 -h: 移动到父目录 -gg:移到列表的顶部 -i:预览文件 -r:打开文件 -zh:查看隐藏文件 -cw:重命名当前文件 -yy:复制文件 -dd:剪切文件 -pp:粘贴文件 -u:撤销 -z:改变设置 -dD:删除文件 +- `j`:下移 +- `k`:上移 +- `h`: 移动到父目录 +- `gg`:移到列表的顶部 +- `i`:预览文件 +- `r`:打开文件 +- `zh`:查看隐藏文件 +- `cw`:重命名当前文件 +- `yy`:复制文件 +- `dd`:剪切文件 +- `pp`:粘贴文件 +- `u`:撤销 +- `z`:改变设置 +- `dD`:删除文件 ### 控制台命令 @@ -76,19 +77,19 @@ dD:删除文件 其他有用的控制台命令包括: -`:openwith`:用你选择的程序打开一个选择的文件 -`:touch FILENAME`:创建一个文件 -`:mkdir FILENAME`:创建一个目录 -`:shell `:在 shell 中运行一个命令 -`:delete`:删除文件 +- `:openwith`:用你选择的程序打开一个选择的文件 +- `:touch FILENAME`:创建一个文件 +- `:mkdir FILENAME`:创建一个目录 +- `:shell `:在 shell 中运行一个命令 +- `:delete`:删除文件 ### 在 tty2/3/4 中能工作吗? 作为一个从事质量保证(QA)工作的人,我发现搜索日志和阅读日志从未如此简单。即使我的 Gnome 显示管理器崩溃了,我也可以切换到我的 tty2,用我的用户名和密码登录,并以超级用户权限启动 ranger,然后我就可以尽情地探索了! -Ranger 是一个很好的工具,可以在不离开终端的情况下处理文件。Ranger 是最小的,也是可定制的,所以不妨一试吧! +ranger 是一个很好的工具,可以在不离开终端的情况下处理文件。ranger 是精简的,也是可定制的,所以不妨一试吧! -图片来源:(Sumantro Mukherjee,CC BY-SA 4.0) +*图片来源:(Sumantro Mukherjee,CC BY-SA 4.0)* -------------------------------------------------------------------------------- @@ -97,7 +98,7 @@ via: https://opensource.com/article/22/7/manage-files-linux-terminal-ranger 作者:[Sumantro Mukherjee][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/) 荣誉推出 From e25924344abfc212afa5ee043ccd7a3108c91a9d Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 20:33:49 +0800 Subject: [PATCH 0396/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20Top=2010=20Linux=20Distributions=20for=20?= =?UTF-8?q?KDE=20Plasma=20[Compared].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Distributions for KDE Plasma [Compared].md | 259 ++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 sources/tech/20220716 Top 10 Linux Distributions for KDE Plasma [Compared].md diff --git a/sources/tech/20220716 Top 10 Linux Distributions for KDE Plasma [Compared].md b/sources/tech/20220716 Top 10 Linux Distributions for KDE Plasma [Compared].md new file mode 100644 index 0000000000..a4ce84883b --- /dev/null +++ b/sources/tech/20220716 Top 10 Linux Distributions for KDE Plasma [Compared].md @@ -0,0 +1,259 @@ +[#]: subject: "Top 10 Linux Distributions for KDE Plasma [Compared]" +[#]: via: "https://www.debugpoint.com/top-linux-distributions-kde-plasma/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Linux Distributions for KDE Plasma [Compared] +====== +Are you planning to adopt a stable KDE Plasma-based desktop in Linux and thinking about it as a daily driver? Well, here we present the top 10 Linux distributions better integrated with KDE Plasma. + +KDE Plasma desktop is used by millions today. And with an active set of developers and community, it is improving every day with new features aligning with technology trends. The KDE technology evolved over the years to reach a point where it is now running on desktops, laptops, tabs, mobile phones and hand-held gaming devices. It’s incredible, isn’t it, for a desktop environment? + +Often I hear or read about bugs in KDE Desktop, or it is being termed as “too many options” compared to GNOME. I agree with that. But we can not ignore the fact that despite all those arguments & opinions – the KDE Plasma desktop is a “go-to” solution for any individual or enterprise use case. It has a well-established road map, built on unique Qt technology that can even run on automobiles and other platforms, Plus a dedicated foundation with a huge set of developers working every day to polish this desktop. + +That brings me to the purpose of writing this article. There are hundreds of Linux distributions featuring the KDE Plasma desktop. But which one to choose? What are their advantages or disadvantages? Which is best for me? We try to cover all these questions in this article and help you decide on your own. + +### Top 10 Linux Distributions for KDE Plasma Desktop + +I have compiled the following list in terms of use cases and not much in technical terms – such as installation, terminal usage, etc. + +#### 1. Kubuntu + +![Kubuntu Desktop][1] + +[Kubuntu][2] is an official KDE Plasma Desktop flavour of the Ubuntu Linux operating system. It uses same set of underlying packages of Ubuntu and follow Ubuntu release schedule. That means it releases a new version when Ubuntu does. As it is based on Ubuntu, you get a huge help and support community that comes with Kubuntu flavour. This official Ubuntu flavour is the most used KDE Plasma desktop today. + +**Pros** + +* Very stable system in terms of bugs – both LTS and non-LTS versions +* LTS versions have 5 years of support +* Huge community-based help system +* Easy to use + +**Cons** + +* Delay of around 6 months to receive latest from KDE Plasma desktop. The reason being stability that Ubuntu requires. + +[Download Kubuntu][3] + +#### 2. KDE Neon + +[KDE Neon][4] is the official Linux distribution which features the latest KDE Plasma Desktop, KDE Framework and KDE Applications from KDE Community. This Linux distribution directly comes from the KDE Development team and is based on Ubuntu. KDE Neon comes with two variants. A User edition and a Developer’s Edition. The User Edition is for everyone who wants to experience the latest KDE Plasma desktop that is tested and ready to use. But it may have some little bugs – but not a dealbreaker, if you ask me. The Developer edition for, as it says – for developers with cutting-edge packages. This is ideal for those who are a little experienced in the Linux platform and have time to get around occasional problems. But this is also reasonably stable. + +![KDE Neon Desktop][5] + +**Pros** + +* Latest KDE Applications, Packages and Framework +* Based on the Ubuntu base +* First to receive new KDE Plasma Versions + +**Cons** + +* It May contain occasional bugs + +[Download KDE Neon][6] + +#### 3. Fedora KDE Edition + +[Fedora Linux][7] is an RPM package manager-based Linux distribution that is community-supported and owned by Red Hat. This free and open-source Linux distribution features leading-edge packages and technology and supports a KDE Plasma edition. Although its official edition features GNOME desktop, but an official KDE Plasma “spin” is available. You get the latest KDE Packages with each Fedora release, which happens twice a year. Ideally, it’s similar to Kubuntu; the only difference is its underlying package management and a different sponsoring company. + +![KDE Plasma in Fedora Linux][8] + +**Pros** + +* Well-designed and stable Linux Distribution +* New KDE Plasma releases twice a year +* Suitable for new and advanced users +* Versatile community support + +**Cons** + +* Fedora Linux with KDE may feel a little complex for absolute new Linux users + +[Download Fedora KDE Edition][9] + +#### 4. OpenSUSE KDE Edition + +The [openSUSE][10] is a complete Linux Distribution targeted for new and experienced users. This is sponsored by SUSE Linux and other companies. It supports KDE Plasma desktop as one of the desktop offerings. With OpenSUSE KDE Edition, you can get a rolling release version (aka Tumbleweed) with the latest KDE technology and a long-term-support version with stable and well-tested KDE Plasma (aka Leap). If you’re a non-Ubuntu, non-Fedora KDE Plasma flavour, then this is the one you should choose. + +![KDE Plasma in OpenSUSE][11] + +**Pros** + +* Well-established Linux Distribution commercially, hence a quality Linux with KDE +* Provides both rolling and long-term-support release +* Support a wide variant of hardware out of the box (single board devices, thin clients terminals, desktops, laptops, PowerPC and more) + +**Cons** + +* Probably a less famous Linux Distribution hence free support via forums might be less + +[Download OpenSUSE KDE Edition (Leap)][12] + +#### 5. Manjaro KDE Edition + +[Manjaro][13] Linux is an Arch Linux-based Linux distribution that follows a rolling release model. It is a very fast, user-friendly desktop operating system which gives several benefits such as automatic hardware detection, multiple Linux Kernel support and well-designed configuration settings. Both Manjaro with KDE Plasma is perfect for those with a little knowledgeable person in Linux who wants to experience Arch Linux with KDE. + +**Pros** + +* Rolling release brings the latest KDE Plasma Desktop packages within a week or two after the official Plasma release +* Provides options to GUI installers for Arch +* Good community support via forums + +**Cons** + +* Arch Linux-based distributions sometimes become buggy and unstable due to continuous package updates +* It May not be suitable for absolutely new users or those aiming for a stable system that runs for multiple years without re-installations + +[Download Manjaro KDE][14] + +#### 6. EndeavourOS KDE Edition + +[EndeavourOS][15] is a fairly new Arch-Linux based Linux distribution that supports KDE Plasma as of their offerings. It provides an easy-to-use installation and pre-configured desktop environment. The one of the best-selling point of this Linux is you get to choose what you install and GUI based desktop-tweak scripts that comes preloaded. A growling Linux distribution which looks promising. + +**Pros** + +* Easy installation for Arch Linux based – KDE Plasma Desktop +* One-click ready-made scripts to perform various desktop actions (such as updates) +* Supports multiple Linux Kernel versions for Arch +* Perfect for new users who wants to experience and learn Arch with KDE Plasma + +**Cons** + +* Fairly new Linux Distribution and community supported +* Difficult to commit to this distribution if you are an organization planning to adopt KDE Plasma with this flavour for multiple installation units. + +[Download EndeavourOS][16] + +#### 7. MX Linux KDE Edition + +[MX Linux][17] is a Linux distribution based on Debian’s Stable branch. Debian is a Universal Linux Operating System, the father of Ubuntu and all derivatives. It’s the core of all those Linux distribution. It rarely breaks and gives you an unstable system. With the power of Debian, MX Linux brings its flavours by providing its in-house utilities and packages. It’s KDE edition is perfect for all users, especially if you want a stable KDE Desktop which runs for years. But you may not get the latest technology immediately, as Debian’s release cycle has been slower in years. That means that to get the latest KDE plasma technology, you may need to wait 1.5 to 2 years. + +**Pros** + +* Stable Linux with well-tested KDE Plasma packages +* It can be suitable for systems where stability trumps the latest features +* Suitable for new users and advanced ones +* Provides good coverage for low-end and older hardware +* One of the best In-house utilities provided by MX Linux for various desktop tasks + +**Cons** + +* It follows Debian’s stable releases. Hence KDE Plasma desktop version upgrades take years to reach you. + +[Download MX Linux KDE Edition][18] + +#### 8. Garuda Linux + +[Garuda Linux][19]is also an Arch-based rolling release distribution that provides KDE Plasma desktop as it’s one of the flavours. It comes with an easy-to-use Calamares installer and other graphical tools to manage your desktop. + +The significant difference between Garuda with other Arch-based distributions is it provides some tools out of the box for managing your system performance. Some of them are zram, CPU Governor, and custom tools for memory management. + +**Pros** + +* Arch-based Linux with custom tools for memory management +* Official KDE Plasma flavour + +**Cons** + +* Very new Linux distribution with its first release on March 2020 +* It requires a relatively high-end hardware to work correctly (Minimum 8GB RAM, 40 GB Storage) + +[Download Garuda Linux][20] + +#### 9. Nitrux + +This is a unique Linux distribution for KDE Plasma. I wanted to add this to this list because of only the out-of-the-box looks it provides. Nitrux is a Linux distribution that is based on Debian’s unstable SID branch. This only provides a customized KDE Plasma desktop that is enhanced with “plasmoids”, Kvantum themes. Technically the desktop is called NX-Desktop, a KDE Plasma variant with all those look and feel changes. This Linux distribution provides the latest KDE Plasma tech as it’s based on Debian unstable branch and uses AppImage for application deployments. + +**Pros** + +* One of the best-customized versions of the KDE Plasma desktop is available out of the box. +* Aesthetically pleasing with Nitrix icons and themes with the power of Kvuntum. +* Support of AppImage + +**Cons** + +* Sometimes it is unstable due to the Debian SID branch +* Complete dependency on AppImage sometimes creates a problem +* Not a suitable distribution for beginners users of KDE Plasma + +[Download Nitrux][21] + +#### 10. KaOS + +The final distribution I would like to mention here is [KaOS][22] because of its uniqueness. KaOS is a specially designed Linux distribution that provides bleeding-edge KDE Plasma desktop with a special focus on Qt and KDE. It is a rolling release Linux distribution and not based on Ubuntu/Fedora. It is an independent Linux distribution. Furthermore, it provides packages via in-house repositories that provides an extra quality over direct packages from Arch Linux. It is only available for 64-bit systems. + +**Pros** + +* Well-designed KDE Plasma ready to use for new users +* Rolling release with in-house repository gives latest KDE Plasma with extra quality in terms of stability + +**Cons** + +* Not so popular, and hence you may get less support in terms of forums, Google search. +* It may not ready yet for absolutely new users, as printing errors may require a little more Linux knowledge. + +[Download KaOS][23] + +### Honorary Mentions of other KDE Plasma-based Linux distributions + +Apart from the above list, you may want to check out vanilla Debian stable with KDE Desktop installed from scratch. That would give you the stability of Debian with the customized KDE packages you want. You can follow our [Debian installation guide][24] to get it going. + +Also, one of the Linux distributions I think needed a mention here – is [Q4OS][25]. The reason is it provides Trinity desktop environment, which is a KDE 3 fork. Not the latest KDE Plasma 5+ series. The earlier KDE 3 version was adorable, with its own set of aesthetics. Those who like earlier KDE Desktop and widgets may want to check out Q4OS. + +### How to find out which is the best KDE Plasma Linux distribution for you? + +Several factors are involved when you decide on a Linux distribution and Desktop environment. For example, you might always need bleeding-edge latest KDE tech, and it’s okay if it’s a little unstable. On the other hand, you might need rock-solid stability and may not require the latest KDE tech. So, holding on to that thought here’s a quick comparison table we prepared for you to help you decide. + +![KDE Plasma with Linux Distributions - Comparison][26] + +### Conclusion + +We have covered a list of the best Linux distributions that feature KDE Plasma desktop. We also listed some pros and cons with comparisons. Now, which is the best for you or your team/school/organization – is up to you to choose. But honestly, that depends on the use case, the situations you are in, or the problem you are trying to solve by adopting the KDE Plasma desktop. + +The choice is subjective, and everyone has a different taste. With that in mind, I hope this gives you some guidance in adopting a KDE Plasma desktop with a perfect Linux distribution. Let me know your opinion on the above list and the comparison in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/top-linux-distributions-kde-plasma/ + +作者:[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/2021/12/Kubuntu-Desktop.jpg +[2]: https://kubuntu.org/ +[3]: https://kubuntu.org/getkubuntu/ +[4]: https://neon.kde.org/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/KDE-Neon-Desktop-1024x576.jpg +[6]: https://neon.kde.org/download +[7]: https://spins.fedoraproject.org/en/kde/ +[8]: https://www.debugpoint.com/wp-content/uploads/2021/12/KDE-Plasma-in-Fedora-Linux-1024x576.jpg +[9]: https://spins.fedoraproject.org/kde/download/index.html +[10]: https://get.opensuse.org/leap/ +[11]: https://www.debugpoint.com/wp-content/uploads/2021/12/KDE-Plasma-in-OpenSUSE-1024x575.jpg +[12]: https://get.opensuse.org/leap/ +[13]: https://manjaro.org/ +[14]: https://manjaro.org/download/ +[15]: https://endeavouros.com/ +[16]: https://endeavouros.com/latest-release/ +[17]: https://mxlinux.org/ +[18]: https://mxlinux.org/download-links/ +[19]: https://garudalinux.org/ +[20]: https://garudalinux.org/downloads.html +[21]: https://nxos.org/ +[22]: https://kaosx.us/ +[23]: https://kaosx.us/pages/download/ +[24]: https://www.debugpoint.com/2021/01/install-debian-buster/ +[25]: https://q4os.org/ +[26]: https://www.debugpoint.com/wp-content/uploads/2021/12/KDE-Plasma-with-Linux-Distributions-Comparison3-1024x216.jpg From 222bd698c74234b9afa77019c3b3c32fa2cd15c0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 20:35:13 +0800 Subject: [PATCH 0397/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20Guide-=20How=20to=20Share=20A=20Folder=20?= =?UTF-8?q?Between=20Ubuntu-Linux=20and=20Windows.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Folder Between Ubuntu-Linux and Windows.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md diff --git a/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md b/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md new file mode 100644 index 0000000000..04679c2ef3 --- /dev/null +++ b/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md @@ -0,0 +1,94 @@ +[#]: subject: "Guide: How to Share A Folder Between Ubuntu/Linux and Windows" +[#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Guide: How to Share A Folder Between Ubuntu/Linux and Windows +====== +This beginner’s guide explains how you can quickly share a folder in Ubuntu/Linux. + +Sharing a folder in Ubuntu/Linux and accessing the same over the network in other OS such as Windows is not that difficult. To perform this, the required packages are not installed by default in Ubuntu. However, you can bring up the install wizard to install the required software automatically to share a folder. + +This [guide][1]applies to all Ubuntu versions (including [22.04][2], 20.04, 18.04, 19.10 and upcoming – unless there are major changes in how this function is designed). + +### Steps to Share a Folder in Ubuntu + +**Step 1:** Open the file manager and right-click on the folder you want to share. Click on the option “Local Network Share” in the context menu. + +![Local Network Share Option][3] + +**Step 2:** Click on the Share this folder checkbox in the Folder Sharing dialog. + +This would install [Samba][4]packages in your system. Samba is used to share files and printers over the network between Windows and Unix systems. + +![Folder Sharing Option - Install Samba][5] + +**Step 3:** After samba installation, do the following to share a folder or directory. + +* Select the checkbox Share this folder. +* Input a share name. This would be the name you would be seeing from another system, e.g. Windows. Try not to use any name with spaces. +* (Optional) You can control the write permission to the shared folder and allow guest access by checking the corresponding option. +* If you allow guest access, people without credentials can access the shared folder. So be cautious. +* If you want your users to enter their usernames and password, open the terminal and run the below command. + +``` +sudo smbpasswd -a Username +``` + +**username** should be a valid user of the respective Ubuntu system. + +You should be all set now to access the folder/directory. + +### How to Access the Shared Folder + +To access the shared folder from Ubuntu/Linux system, you need your system’s IP address/hostname. To do that, open `System Settings -> Wifi -> Get the IP address`. + +![IP Address Settings][6] + +This step may vary if you are running different Linux distribution other than Ubuntu. You may also want to run `ip addr` to get the IP address as below. + +![Finding out IP Address in Linux][7] + +Once you have the address, you can open File Manager in Ubuntu/Linux systems and type below in the address bar. You should change the IP address based on your system. + +You can now see that the shared folder is shown with a tiny shared icon that denotes a network share folder. + +![Share Folder][8] + +To access the shared folder from the **Windows system**, Open Run (Windows Key+R) or open Explorer and enter the below address. You should change the IP address and Folder name based on your system + +``` +\\192.168.43.19\Folder +``` + +You should be able to view the contents of the shared folder and modify it based on permission given. + +### Wrapping Up + +I have shown you how to share a folder from Ubuntu and access Windows systems via IP address. You can also follow the same steps for other Linux distributions. Do let me know in the comment box below if this article helped you. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/ + +作者:[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/category/tutorials/ +[2]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/Local-Network-Share-Option.jpg +[4]: https://en.wikipedia.org/wiki/Samba_(software) +[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Folder-Sharing-Option-Install-Samba-1024x552.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/IP-Address-Settings.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Finding-out-IP-Address-in-Linux.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/Share-Folder-1.jpg From 6c972821c412dcb647bd98937e2710543e36e9d1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 20:36:48 +0800 Subject: [PATCH 0398/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20Top=20Nitrux=20Applications=20-Maui-=20Ev?= =?UTF-8?q?eryone=20Should=20Try.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Applications -Maui- Everyone Should Try.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sources/tech/20220716 Top Nitrux Applications -Maui- Everyone Should Try.md diff --git a/sources/tech/20220716 Top Nitrux Applications -Maui- Everyone Should Try.md b/sources/tech/20220716 Top Nitrux Applications -Maui- Everyone Should Try.md new file mode 100644 index 0000000000..8f4f416914 --- /dev/null +++ b/sources/tech/20220716 Top Nitrux Applications -Maui- Everyone Should Try.md @@ -0,0 +1,185 @@ +[#]: subject: "Top Nitrux Applications (Maui) Everyone Should Try" +[#]: via: "https://www.debugpoint.com/top-nitrux-maui-applications/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +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. + +### What are 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 most beautiful Linux distributions today, giving you the best looks and performance. + +Nitrux is powered by its native [Maui applications][2], specifically designed to work in Nitrux and all form factor devices – a proper form of convergence. That means these Maui applications can run on mobile devices running KDE Plasma mobile OS and desktop Linux while their functionality remains the same. + +**Note:** Some of these applications can run in Android OS as well. + +This article would like to showcase the following Maui applications installed as default in Nitrux OS. + +### Top Nitrix Applications – based on Maui Components + +#### Index – File Manager + +Perhaps the most used app in Nitrux OS is the [Index][3], its default file manager. The Index File Manager looks slightly different from traditional file managers in Linux, such as Dolphin or Nautilus. + +The user interface is neat and clean. The icons are menu options are well organized and visually expressive. It supports advanced features such as split view open in terminal options. The sidebar is a little different with its icon-based grid options, and there is an option to auto-hide the sidebar. + +I would not detail the usual apparent features, such as zoom in/out or view modes. They are similar to the other popular file managers in the Linux ecosystem. + +Some of the unique features I must highlight are as follows. + +The built-in Terminal option is one of the best features to quickly check certain items or do some basic processing if you wish while browsing the file system. + +Another feature I like in this File manager is the preview option of the files. You can preview images, text files, videos and PDFs without opening them. + +![Index file manager showing split view and terminal][4] + +Finally, a unique feature that I believe none of the other File managers currently have is the overview section. The overview section gives you an excellent summary of your file system, with favourites, image thumbnails and search options. This gives you quick access to your files, and you don’t need to always go to the usual directory browsing mode. + +![Index File Manager – overview screen][5] + +#### Nota – Text Editor + +The [Nota][6] is a general-purpose and straightforward text editor. The user interface is clean and concise. That helps you do your development work or allows you to take any quick notes in a much faster way. + +Thanks to the Maui kit, the terminal window option is built-in. If you wish to open a terminal and do some essential work during any workflow, you can do that without leaving the text editor window. + +Other features that make it a most desirable text editors are – + +* Syntax highlighting +* Plugin Support +* Go to the Line number option +* Share and Favorite option +* 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] + +#### Vvave – Music organizer + +The next Nitrux OS app we would like to feature here in this list is [Vvave][10]. This is a music player with full music management features. It can discover music in your local system, network, or cloud services such as Nextcloud. + +Although it is a music player, its primary purpose is music management. You can create playlists, tag your music files and so on. The user interface has several views with album arts, search features and album-only views. + +![Vvave Music player and organizer][11] + +#### Clip Video Player + +The [Clip][12] is the convergence video player for desktop and mobile phones that supports the Maui kit. It is a simple video player that supports limited hardware decoding and playing from internet streaming services. The Clip video player is based on the MPV video player. All the usual features of a video player are supported in Clip. + +##### Quick features of Clip + +* Local, network and internet streaming playback (limited) +* Hardware decoding +* Tagging of videos for management +* Subtitles support +* Based on the MPV video player + +![Clip Video Player][13] + +#### Station – Terminal + +The [Station][14] is a terminal application and my favourite Nitrux application based on the Maui kit. Thanks to the default convergence support, this terminal application can work well on Plasma-based mobile phones. + +It brings a friendly default colour theme and supports split views, tabs, and keyboard shortcuts for touch-based devices. + +Station also supports a distraction-free work environment, where you can hide the top bar to make it a more productive terminal. + +![Station Terminal application][15] + +#### Shelf – Document Viewer + +The [Shelf][16] is the default document viewer for Nitrux OS and operating systems that support the Maui kit. It can read and helps you to annotate documents of several types. Most major file types are supported, such as PDF, ODT, etc. + +One of the unique features of this application is that you can browse the document pages in horizontal mode, other than the usual vertical mode. A nice feature is helpful for users using touch-based devices. + +The annotation feature allows you to annotate with a pen, highlighter and eraser in PDF and other documents and save them. + +![Shelf Document Viewer][17] + +#### Pix + +The final application in this list is [Pix][18], an essential image viewer that supports all types of image formats. The Pix helps you browse the collection of images and tag them for quick discovery. + +You can view the image metadata and basic image edition as well. The image editing features to support the below functionalities – + +* Changing brightness, contrast, saturation, exposure +* Supports layers +* Cropping and rotating + +However, you can not annotate with arrows or add any text to the image. + +![Pix Image Viewer][19] + +### Installing these Maui applications + +All these applications come pre-loaded in Nitrux Linux distribution. However, if you like to install these in Ubuntu or Fedora-based systems, you can use the AppImage standalone executables from the below link. After downloading, make the file executable and run. + +Note: If you are using Android mobile phones, you can also find the official .apk files in the same path mentioned below! + +| Maui application | download path for AppImage and .apk | +| :- | :- | +| Index – File Manager | https://download.kde.org/stable/maui/index/ | +| Nota – Text Editor | https://download.kde.org/stable/maui/nota/ | +| Vvave – Music organizer | https://download.kde.org/stable/maui/vvave/ | +| Clip Video Player | https://download.kde.org/stable/maui/clip/ | +| Station – Terminal | https://download.kde.org/stable/maui/station/ | +| Shelf – Document Viewer | https://download.kde.org/stable/maui/shelf/ | +| Pix | https://download.kde.org/stable/maui/pix/ | + +You can open any of the paths. Then go to the latest version folder and download the AppImage or .apk file as per your need. A sample guide is presented below. + +![Downlaod Nitrux Maui application - appimage and apk files][20] + +### Closing Notes + +I feel most of the above Nitrux or Maui applications have the same essential features, such as tagging and other items. The reason is all of them are based on Maui technology. But that’s fine because all these apps perfectly support convergence and can work on your desktop, tabs and Plasma-based mobile phones. + +Thanks to Maui and KDE technology, I feel the apps look friendly with built-in dark mode supports and features. + +So, what is your favourite application on this list? Let me know in the comment box down below. + +Cheers. + +*Some image credits – Maui, Nitrux team.* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/top-nitrux-maui-applications/ + +作者:[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://nxos.org/ +[2]: https://mauikit.org/apps/ +[3]: https://invent.kde.org/maui/index-fm +[4]: https://www.debugpoint.com/wp-content/uploads/2022/03/Index-file-manager-showing-split-view-and-terminal.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/Index-File-Manager-overview-screen.jpg +[6]: https://mauikit.org/apps/nota/ +[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/Nota-Text-Editor.jpg +[10]: https://mauikit.org/apps/vvave/ +[11]: https://www.debugpoint.com/wp-content/uploads/2022/03/Vvave-Music-player-and-organizer.jpg +[12]: https://mauikit.org/apps/clip/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/03/Clip-Video-Player.jpg +[14]: https://mauikit.org/apps/station/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Station-Terminal-application.jpg +[16]: https://mauikit.org/apps/shelf/ +[17]: https://www.debugpoint.com/wp-content/uploads/2022/03/Shelf-Document-Viewer.jpg +[18]: https://mauikit.org/apps/pix/ +[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/Pix-Image-Viewer.jpg +[20]: https://www.debugpoint.com/wp-content/uploads/2022/03/Downlaod-Nitrux-Maui-application-appimage-and-apk-files-1024x584.jpg From c79593ff40e8889f56f74e9d38a013952dfa7dc9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 20:38:48 +0800 Subject: [PATCH 0399/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=2013=20Ways=20to=20Tweak=20Nautilus=20File?= =?UTF-8?q?=20Manager=20in=20Linux=20to=20Get=20More=20Out=20of=20it.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Manager in Linux to Get More Out of it.md | 302 ++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 sources/tech/20220716 13 Ways to Tweak Nautilus File Manager in Linux to Get More Out of it.md diff --git a/sources/tech/20220716 13 Ways to Tweak Nautilus File Manager in Linux to Get More Out of it.md b/sources/tech/20220716 13 Ways to Tweak Nautilus File Manager in Linux to Get More Out of it.md new file mode 100644 index 0000000000..c7fbed5ef4 --- /dev/null +++ b/sources/tech/20220716 13 Ways to Tweak Nautilus File Manager in Linux to Get More Out of it.md @@ -0,0 +1,302 @@ +[#]: subject: "13 Ways to Tweak Nautilus File Manager in Linux to Get More Out of it" +[#]: via: "https://itsfoss.com/nautilus-tips-tweaks/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +13 Ways to Tweak Nautilus File Manager in Linux to Get More Out of it +====== +Nautilus is GNOME’s default file manager application, and you may have seen it in many Linux distributions. + +It’s a good file manager with plenty of features. However, you can enhance your experience by employing some tweaks and tips. + +I am going to share such tips and tweaks in this article. Some tweaks may require installing additional Nautilus plugins, while some are built-in but lesser-known features. A few tips are purely cosmetic and just change the look and feel. + +### Customizing GNOME’s File Manager + +![customizing gnome nautilus file manager][1] + +GNOME’s default file explorer used to be called [Nautilus][2]. It is now called Files. However, seasoned Linux users still refer to it as Nautilus. I have used both terms here. + +One more thing. **You don’t have to try and install each Nautilus plugin**. Read the article and go with the ones that would be helpful for you. + +I have added the Nautilus extension commands for Ubuntu/Debian. If you are using some other distribution, please use your package manager to install them. + +#### 1. Show number of items in folders + +You can show how many files and folders are inside a folder in GNOME Files. + +![Item Count Inside Folder Visible][3] + +You don’t need to install any plugins for it. It’s a built-in feature. + +Go to the **Preferences** in Nautilus. + +![GNOME Files Preferences][4] + +Under **Icon View Captions**, set the **First** place to **Size**. + +![Nautilus Preferences][5] + +#### 2. Add new document creation option in right click context menu + +This is a feature that can increase your productivity. Right click on an empty place inside a folder and it should you see the option to create a new, empty text file or document. + +It was removed from GNOME a few years back and it is likely to make a come back in the next GNOME release. + +To achieve this, you need to create an empty file and name it **New Document**. Then save this file to the Templates directory to get it in the right-click context menu. + +![Create a template first in the Templates directory][6] + +After this, you should see the option in the right-clikc context menu. + +![Nautilus Right Click New Document][7] + +You can also add Word documents, PPT presentation options, etc in the right-click context menu similarly. + +#### 3. Add a permanent delete option in right-click context menu + +By default, Nautilus provides “Move to trash” option in the right-click context menu. If you want to permanently delete a file or folder, you need to **shift+delete** or empty it from the trash. + +You can enable Delete Permanent button under the right-click context menu from Nautilus **preferences**. + +![Permanent delet option in Nautilus Preferences][8] + +Now you will have an option to delete files and folders permanently in the right-click context menu. + +![Permanent delete option under right click context menu][9] + +#### 4. Completely wipe files and folders from the disk + +Even if you permanently delete a file, chances are that the [data could still be recovered][10]. + +Nautilus provides an extension to wipe files securely and fill the empty places so that data can not be recovered anymore. + +Install the Nautilus extension first. + +``` +sudo apt install nautilus-wipe +``` + +And then restart the file explorer: + +``` +nautilus -q +``` + +![Wipe out files in Nautilus][11] + +#### 5. Enable quick file preview + +Quick preview is rather a handy feature for a file manager. KDE’s Dolphin file manager provides it as a built-in feature. + +You can preview files such as PDF, text, images, audio, etc. You can scroll documents while in preview. + +In Nautilus, you need to install gnome-sushi to get this feature. + +``` +sudo apt install gnome-sushi +``` + +Now, close all instances of file manager and open it again. To see the preview, select a file and press the Space key. + +![Preview Files in Nautilus Using GNOME Sushi][12] + +#### 6. Get the list of recently visited directories + +Nautilus has the feature to show ‘recently accessed files’. But what about the recently visited folders? + +That can also be accessed. On the top left, **right-click on the back arrow** to get the list of previously visited folders. + +![list of directories visited][13] + +#### 7. Bookmark folders to the left sidebar for quick access + +If you frequently access some folders, it would be better to access them from the left sidebar quickly. + +It’s quite simple, actually. Select the folder and drag and drop to the left sidebar. The [folder will be added as a bookmark][14]. + +![Adding a folder as bookmark][15] + +You can remove bookmark the same way. Just drag and drop it from the sidebar. + +#### 8. Rotate and Resize images with a right click + +To enable this functionality, you need to install ImageMagick and nautilus-image-converter. + +``` +sudo apt install imagemagick nautilus-image-converter +``` + +After it is installed, quit nautilus with *nautilus -q* and re-open nautilus. + +Now select the image and [right-click to get resize and rotate images][16]. + +![Rotate and Resize Images with Nautilus][17] + +#### 9. Change the colors of individual folders + +If you want to add some color to your file explorer, how about changing the colors of the folders? + +You can change icons and colors of all folders by using a different icon and theme. + +But you may also opt for just changing the colors of selected few folders. + +![Custom Folder Color in Nautilus File Manager][18] + +For that, install the following package. + +``` +sudo apt install folder-color +``` + +Now, quit Nautilus with **nautilus -q** command. Upon re-opening, select a folder and right-click on it. You will find the option to change the color of the folder. + +![Change Folder Color Right Click Option][19] + +A step further, you can add emblems to files or folders like important, favorite, etc. + +![Folder and File Emblem in Nautilus][20] + +#### 10. Change icons of individual directories + +This one takes me back to the Windows XP era. Nautilus also has the built-in feature to change the icons of selected directories. + +To do that, right-click on a folder and go to properties. + +![properties dialog box of a directory][21] + +From there, select the Icon, browse and choose the image of your choice. + +![Changing Folder Icon][22] + +#### 11. Open any location in the terminal + +No need for any extra steps for this one. From any location in the file manager, just right-click and select ‘Open in terminal’ option. + +![Open the current location in a terminal in Ubuntu][23] + +It will open a new terminal, and you’ll be in the exact location as the Nautilus file manager. + +![location opened in terminal][24] + +This comes in handy when you have to do something in the terminal on the files in a particular location. It saves the effort of typing a long path. + +#### 12. Open files and folder as root from the file manager + +You sometimes want to paste files to restricted directories, like /usr/share/backgrounds. You cannot paste such locations or cannot edit such files unless you are root or use sudo. + +You can easily switch do that in the terminal but what about the file manager? + +With nautilus-admin extension, you can open files as root within Nautilus. No need to open the terminal and perform sudo actions. + +``` +sudo apt install nautilus-admin +``` + +Quit Nautilus after installing the plugin: + +``` +nautilus -q +``` + +You should see the “Open as Administrator” option in the right-click menu now. + +![open as admin in nautilus][25] + +#### 13. Verify hash checksum of files + +There are dedicated tools to [verify checksum of files in Linux][26]. You can also check hashes in the Nautilus file manager with nautilus-gtkhash extension. + +``` +sudo apt install nautilus-gtkhash +``` + +Now quit nautilus using **nautilus -q** and re-open. Select the file to check hash and go to the **Digests** tab in properties. + +![Check Hashes in Nautilus][27] + +Now enter the Hash to check and press Hash. It will start calculating the hash. + +![Nautilus Checking Hash Progress][28] + +After some time, it will show the result (green tick mark if the hash is valid). + +![Nautilus Checking Hash Success][29] + +#### Bonus: Embed a terminal + +In the Nautilus file manager, you can embed a terminal. Each time you change directories, a cd command is initiated and the location in the embedded terminal is also changed. + +Installing it requires getting several Python packages first. Here are the commands, use them one by one: + +``` +sudo apt install python3-nautilus python3-psutil python3-pip libglib2.0-bin dconf-editor +sudo pip3 install nautilus-terminal +sudo nautilus-terminal --install-system +nautilus -q +``` + +![Embedded Terminal in Nautilus][30] + +### There are more Nautilus extensions and tweaks + +There is no end to customizing the GNOME file manager. I could only include a selected few. A few more I could think of are: + +* Opening split view in Nautilus from the hamburger menu +* Showing or hiding the Places panel from preferences +* Integrating various cloud storage platforms like Google Drive, Dropbox, Nextcloud, Owncloud, etc +* Deleting items by dragging them into the trash folder +* Zooming in and out by pressing the Control key and scrolling + +Check out the [guide on tweaking the Ubuntu dock][31] if you want more customization. + +I hope you find a few interesting ones here. Which ones do you like the most? Do you know some other tweak that I didn’t mention here? Share it in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/nautilus-tips-tweaks/ + +作者:[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/07/customizing-GNOME-Nautilus-File-Manager.png +[2]: https://gitlab.gnome.org/GNOME/nautilus +[3]: https://itsfoss.com/wp-content/uploads/2022/07/Item-count-inside-folder-visible.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/GNOME-Nautilus-Preferences-scaled.webp +[5]: https://itsfoss.com/wp-content/uploads/2022/07/Nautilus-preferences.png +[6]: https://itsfoss.com/wp-content/uploads/2022/07/Nautilus-Empty-file-in-Templates-Directory.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/Nautilus-Right-Click-New-Document.png +[8]: https://itsfoss.com/wp-content/uploads/2022/07/Delete-option-in-nautilus-preferences.png +[9]: https://itsfoss.com/wp-content/uploads/2022/07/Delete-option-under-right-click-context-menu.png +[10]: https://itsfoss.com/recover-deleted-files-linux/ +[11]: https://itsfoss.com/wp-content/uploads/2022/07/Secure-wipe-in-nautilus.png +[12]: https://itsfoss.com/wp-content/uploads/2022/07/preview-files-in-nautilus-using-gnome-sushi.png +[13]: https://itsfoss.com/wp-content/uploads/2022/07/List-of-directories-visited.png +[14]: https://itsfoss.com/add-remove-bookmarks-ubuntu/ +[15]: https://itsfoss.com/wp-content/uploads/2022/07/add-folder-as-bookmark-GNOME-Files-scaled.webp +[16]: https://itsfoss.com/resize-images-with-right-click/ +[17]: https://itsfoss.com/wp-content/uploads/2022/07/Rotate-and-Resize-Images-with-nautilus.png +[18]: https://itsfoss.com/wp-content/uploads/2022/07/Custom-Folder-Color-in-nautilus-file-manager-800x280.png +[19]: https://itsfoss.com/wp-content/uploads/2022/07/Change-Folder-Color-Right-Click-Option.png +[20]: https://itsfoss.com/wp-content/uploads/2022/07/Folder-and-File-Emblem-in-Nautilus.png +[21]: https://itsfoss.com/wp-content/uploads/2022/07/properties-dialog-box-of-a-directory-800x527.png +[22]: https://itsfoss.com/wp-content/uploads/2022/07/Changing-Folder-Icon.png +[23]: https://itsfoss.com/wp-content/uploads/2022/07/open-in-terminal-ubuntu-scaled.webp +[24]: https://itsfoss.com/wp-content/uploads/2022/07/location-opened-in-terminal-800x304.png +[25]: https://itsfoss.com/wp-content/uploads/2022/07/open-as-admin-in-nautilus-800x502.png +[26]: https://itsfoss.com/checksum-tools-guide-linux/ +[27]: https://itsfoss.com/wp-content/uploads/2022/07/Check-hashes-in-nautilus.png +[28]: https://itsfoss.com/wp-content/uploads/2022/07/Nautilus-Checking-Hash-Progress.png +[29]: https://itsfoss.com/wp-content/uploads/2022/07/Nautilus-Checking-Hash-Success.png +[30]: https://itsfoss.com/wp-content/uploads/2022/07/Embedded-terminal-in-nautilus.png +[31]: https://itsfoss.com/customize-ubuntu-dock/ From 6a92d98124e9065c1728413059e2064bb44c8e61 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 20:40:50 +0800 Subject: [PATCH 0400/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20Listen=20to=20music=20on=20Linux=20with?= =?UTF-8?q?=20Rhythmbox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Listen to music on Linux with Rhythmbox.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/tech/20220716 Listen to music on Linux with Rhythmbox.md diff --git a/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md b/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md new file mode 100644 index 0000000000..9e0c287c0d --- /dev/null +++ b/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md @@ -0,0 +1,65 @@ +[#]: subject: "Listen to music on Linux with Rhythmbox" +[#]: via: "https://opensource.com/article/22/7/listen-music-rhythmbox-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Listen to music on Linux with Rhythmbox +====== +Here's how I like to listen to streaming music and MP3 playlists with Rhythmbox on GNOME with Linux. + +![Woman programming][1] + +Image by: WOCinTech Chat. Modified by Opensource.com. CC BY-SA 4.0 + +It's hard for me to work in total silence. I need some kind of background noise, preferably some familiar music. My music-listening needs are pretty simple: I just need a music player that plays my library of MP3 music and streams from a few websites I like to listen to. + +I've tried a variety of music players on Linux, but I keep coming back to Rhythmbox. Rhythmbox is a music-playing application for GNOME. If your distribution uses GNOME, it probably also includes Rhythmbox. It's simple and plays my local music library as well as streams from internet radio websites. I like to listen to both streaming music and my own music library with Rhythmbox on Linux. + +### Listen to streaming music on Linux + +Rhythmbox supports listening to music from several streaming services. If you have a Last.fm or Libre.fm account, you can click the tab on the left to log in. Or, if you want to listen to streaming radio stations, click the Radio tab on the left to stream from one of the pre-configured internet radio websites.I usually like to listen to trance music while I'm writing code, and HBR1 Tranceponder is one of my favorite Internet radio stations: + +![Streaming HBR1 Traceponder][2] + +### Listen to my music library on Linux + +I've collected a large MP3 music library over the years. Since the MP3 patents expired in the US several years ago, it is an open music format that plays well with Linux. + +I keep my 20-gigabyte MP3 music library outside my home directory, in `/usr/local/music`. To import music into Rhythmbox, click the **Import** button, select the `/usr/local/music` directory, or wherever you've saved your music library, and let Rhythmbox identify the MP3 music collection. When it's done, click the **Import listed tracks** button to complete the import process. + +![Use the Import button to add music to Rhythmbox][3] + +![Rhythmbox identifies new music files][4] + +Rhythmbox plays my music collection and organizes songs by genre, artist, and album so I can quickly find the music I want to listen to. + +![Listening to a music library in Rhythmbox][5] + +### The beat goes on + +I like Rhythmbox as my music player on Linux because it's simple and stays out of my way. And listening to music helps me tune out everyday noise, making my day go by just a bit faster. + +Image by: Streaming HBR1 Tranceponder in Rhythmbox (image: Jim Hall, license: CC BY SA) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/listen-music-rhythmbox-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png +[2]: https://opensource.com/sites/default/files/2022-07/rhythmbox-hbr1.png +[3]: https://opensource.com/sites/default/files/2022-07/rhythmbox-import1_0.png +[4]: https://opensource.com/sites/default/files/2022-07/rhythmbox-import2.png +[5]: https://opensource.com/sites/default/files/2022-07/rhythmbox-dido-lifeforrent.png From f4c1f0173b6465114e303305edfa9d30257ff8a4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 20:47:41 +0800 Subject: [PATCH 0401/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][news]:=2020220711=20Nokia=20Targets=20An=20Amateur=20Linux=20?= =?UTF-8?q?Phone=20Project=20-NOTKIA-=20for=20a=20Name=20Change.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...An Amateur Linux Phone Project -NOTKIA- for a Name Change.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md index 604ee52c42..d60115708f 100644 --- a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md +++ b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/nokia-notkia/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 79f6cd3dd9d3f83d965edd2b6454b7db1af50a2c Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 21:35:52 +0800 Subject: [PATCH 0402/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][news]:=2020220711=20Nokia=20Targets=20An=20Amateur=20Linux=20?= =?UTF-8?q?Phone=20Project=20-NOTKIA-=20for=20a=20Name=20Change.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hone Project -NOTKIA- for a Name Change.md | 88 ------------------- ...hone Project -NOTKIA- for a Name Change.md | 86 ++++++++++++++++++ 2 files changed, 86 insertions(+), 88 deletions(-) delete mode 100644 sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md create mode 100644 translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md diff --git a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md b/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md deleted file mode 100644 index d60115708f..0000000000 --- a/sources/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: subject: "Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change" -[#]: via: "https://news.itsfoss.com/nokia-notkia/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change -====== -An open-source project wants to bring you a Nokia-like Linux phone, but Nokia does not seem to like the project’s name. - -![nokia][1] - -An open-source project that aims to make a classic Nokia like (small form factor) Linux phone has come under fire, by Nokia. - -The project’s name was originally “**Notkia**“, which Nokia finds similar while potentially affecting its brand reputation, and infringement of Nokia’s rights. - -While it is okay to protect your business, what is it with these companies sending infringement notices to projects that aren’t even a threat to them at its current state? - -### Notkia: Developing a Pocket-Sized Linux Phone - -Thanks to the notice by Nokia, we get to know about an interesting collaborative effort to develop a small Linux phone for basic use, while keeping privacy in mind. - -They aim to design a PCB that fits exactly in the classic Nokia’s phone shell. - -![][2] - -As of now, they have a decent amount of things working with the hardware that includes Bluetooth, and Wi-Fi. - -It is not an Android-based operating system, rather it relies on Mainline Linux Kernel. - -You can learn more about the project and the specifications for the planned phone in their [official blog post][3]. - -The project is waiting for fundraising, and will make early prototypes to available to be purchased separately. - -### Inspired by Nokia, and Noticed by Nokia - -Well, the project clearly states that they have been inspired by Nokia’s classic phones and they do not try to mislead any of their contributors and potential customers. - -The project’s creator shared the email by Nokia on Twitter, mentioning that Nokia should be more sensitive before sending such notices to projects that are led with community interests. - -> After reading the email from [@Nokia][4] one more time, I started to feel angry. This nothing more than a staged accident. Since this is already a collaborative project and contributed by people around the world, I'm going to release the complete email to its "intended recipients". -> -> ![Twitter: @ReimuNotMoe][5] - -[June 30, 2022][6] - -**Also, they confirmed that the project will be changing its name.** - -Of course, as an open-source project, it should not concern Nokia unless they start selling their prototypes/phones while using Nokia’s brand name. - -But, at its current state, this is more of a passion project, and a collaborative effort by a community of open-source enthusiasts. So, it sounds a bit far-fetched to send a notice to them for infringing Nokia’s rights. - -*Right?* - -Of course, this is not surprising for companies, but for Nokia, it seems a bit too overly cautious and anti-competitive. - -Especially, when it is safe to say that the company is not doing as good as you’d expect with their latest smartphone releases. - -Interestingly, there’s also an [IT company][7] with the name “Notkia”, as spotted by a fellow Twitter user. Did they also receive a notice by Nokia? Who knows? - -*What do you think about the open-source project for a pocket-sized phone powered by Linux?* *Share your thoughts in the comments down below.* - -**Via**: [Vice][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/nokia-notkia/ - -作者:[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/07/nokia-targets-linux-phone-notkia.jpg -[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/notkia-nokia-1024x766.jpg -[3]: https://hackaday.io/project/185645-notkia-name-change-planned -[4]: https://twitter.com/nokia?ref_src=twsrc%5Etfw -[5]: https://pbs.twimg.com/media/FWftWyjUYAA49ew?format=jpg&name=large -[6]: https://twitter.com/ReimuNotMoe/status/1542466662154108930?ref_src=twsrc%5Etfw -[7]: https://www.linkedin.com/company/notkia-it/ -[8]: https://www.vice.com/en/article/93awjz/nokia-asks-open-source-notkia-phone-project-to-change-its-name diff --git a/translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md b/translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md new file mode 100644 index 0000000000..faaab071fa --- /dev/null +++ b/translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md @@ -0,0 +1,86 @@ +[#]: subject: "Nokia Targets An Amateur Linux Phone Project ‘NOTKIA’ for a Name Change" +[#]: via: "https://news.itsfoss.com/nokia-notkia/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +诺基亚要求一个开源 Linux 手机项目 “NOTKIA” 改名字 +====== +一个开源项目想要为你带来一款诺基亚风格的 Linux 手机,但诺基亚似乎并不喜欢这个项目的名字。 + +![诺基亚][1] + +近期,一个旨在打造经典诺基亚(小型)Linux 手机的开源项目,遭到了诺基亚的抨击。 + +该项目的名称最初是 “**Notkia**”,然而,诺基亚发现该名称与自己相似,可能会影响自己的品牌声誉,并侵犯到自己的权利。 + +虽然这样做可以保护公司的业务,但这些公司向在当前状态下甚至不构成威胁的项目发送侵权通知是怎么回事? + +### Notkia:开发袖珍 Linux 手机 + +不过还得感谢诺基亚的这个侵权通知,我们才能了解到这个有趣的项目:开发一款满足基本使用、注重隐私的小型 Linux 手机。 + +该项目的目标是设计一个完全适合诺基亚经典手机外壳的 PCB。 + +![][2] + +到目前为止,该项目已经支持许多硬件相关的功能,包括蓝牙和 Wi-Fi。 + +该项目不基于 Android,而是基于主线 Linux 内核。 + +你可以在他们的 [官方博文][3] 中,了解有关该项目和计划手机规格的更多信息。 + +目前,该项目正在等待筹款,并将制作早期原型以供单独购买。 + +### 灵感来自诺基亚,并受到诺基亚的关注 + +嗯,该项目清楚地表明他们受到诺基亚经典手机的启发,他们并没有试图误导任何贡献者和潜在客户。 + +该项目的创建者在推特上分享了诺基亚的电子邮件,同时他提到,诺基亚在将此类通知发送给以社区利益为主导的项目之前,应该更谨慎一些才对。 + +> 再次阅读 [@Nokia][4] 的邮件后,我开始感到愤怒。这无非是一场上演的意外。它已经是一个协作项目,并且得到了世界各地的人们的贡献,因此,我将把完整的电子邮件发布给它的“目标收件人”。 +> +> ![来自推特 @ReimuNotMoe][5] + +**此外,他们确认该项目将更名。** + +当然,作为一个开源项目,它应该和诺基亚是扯不上关系的,除非他们开始销售他们的原型/手机,同时使用诺基亚的品牌名称。 + +但是,在目前的状态下,这更像是一个充满激情的项目,是开源爱好者社区的协作努力。因此,向他们发出侵犯诺基亚权利的通知,听起来实在有些牵强。 + +*对吗?* + +当然,对于一般企业来说,这并不奇怪;但对于诺基亚来说,这未免有点过于谨慎和反竞争了。 + +更何况,我们可以肯定地说,诺基亚的最新的智能手机的表现,并没有达到用户的预期。 + +有趣的是,一位推特用户发现,还有一家名为 “Notkia” 的 [IT 公司][7]。他们是否也收到了诺基亚的通知?呵呵,谁知道呢。 + +*那么,你如何看待这个基于 Linux 的袖珍手机的开源项目呢?在下面的评论中分享你的看法吧!* + +消息来源:[Vice][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/nokia-notkia/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[lkxed](https://github.com/lkxed) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/nokia-targets-linux-phone-notkia.jpg +[2]: https://news.itsfoss.com/wp-content/uploads/2022/07/notkia-nokia-1024x766.jpg +[3]: https://hackaday.io/project/185645-notkia-name-change-planned +[4]: https://twitter.com/nokia?ref_src=twsrc%5Etfw +[5]: https://pbs.twimg.com/media/FWftWyjUYAA49ew?format=jpg&name=large +[6]: https://twitter.com/ReimuNotMoe/status/1542466662154108930?ref_src=twsrc%5Etfw +[7]: https://www.linkedin.com/company/notkia-it/ +[8]: https://www.vice.com/en/article/93awjz/nokia-asks-open-source-notkia-phone-project-to-change-its-name From 6cadafac5d3912b198662aa777ff8eda9b1fd5f0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 23:53:26 +0800 Subject: [PATCH 0403/3123] =?UTF-8?q?2022-07-16=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=BF=87=E6=97=B6=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Ban On Paid for Open Source And WebKit.md | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md diff --git a/sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md b/sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md deleted file mode 100644 index fc1e134b49..0000000000 --- a/sources/news/20220711 Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit.md +++ /dev/null @@ -1,37 +0,0 @@ -[#]: subject: "Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit" -[#]: via: "https://www.opensourceforu.com/2022/07/microsoft-postpones-a-contentious-ban-on-paid-for-open-source-and-webkit/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft Postpones A Contentious Ban On Paid for Open Source And WebKit -====== -![microsoft][1] - -On July 16, the Microsoft Store, an online store for Windows apps and other apps, was supposed to implement new policies prohibiting developers from selling open source apps that are otherwise free and from distributing browser apps that use Apple’s WebKit engine. However, Giorgio Sardo, general manager of the Microsoft Store, stated on Friday that Microsoft will postpone enforcement in response to the developer community’s criticism. The changes, which were announced last month, appear to be aimed at improving the Microsoft Store experience. They include, for example, a section prohibiting apps from disseminating misinformation if they “provide content related to information, news, or current events in the real world.” - -However, the new rules restrict what developers can do with open source software. They forbid Microsoft Store apps from using Apple’s WebKit browser engine, for example. In fact, any web browser engine other than Chromium, Gecko, or EdgeHTML would be prohibited, so it’s not just WebKit that’s forbidden. Apple’s Safari browser, which is based on WebKit, hasn’t been officially supported for Windows since 2012. However, because WebKit is open source, an enterprising developer (or team of developers, because browsers are complicated) could presumably create a browser for Windows. - -What makes this unusual is that Microsoft announced its Open App Store Principles in February to address regulatory concerns about competition stemming from its acquisition of Activision/Blizzard. The Windows behemoth did so fully aware of the global antitrust challenges to Apple’s App Store and Google Play. In fact, Microsoft has backed efforts to force its competitors to relax their own store policies. The App Store browser rule, which requires all iOS browser apps to be based on Apple’s WebKit engine rather than Google’s open source Chromium/Blink or Mozilla’s open source Gecko engine, has been a major source of regulatory pushback against Apple. - -The EU’s Digital Markets Act and Digital Services Act aim to boost competition by removing Apple’s WebKit requirement. The UK Competition and Markets Authority, like the US National Telecommunications and Information Administration (NTIA), is considering a similar rule. As a result, Microsoft declares in Section 10.2.1: “Products that browse the web must use either the Chromium or the Gecko open source engine.” (The company is also making an exception for legacy apps in the Microsoft Store built with its discontinued EdgeHTML engine.) - -Developers appear to be more concerned about Microsoft’s decision to restrict the sale of apps based on open source software. “Not attempt to profit from open source or other software that is otherwise generally available for free, nor be priced irrationally high relative to the features and functionality provided by your product,” says Section 10.8.7 of the revised policy. The policy change comes in the wake of Microsoft’s commercial release of GitHub Copilot, a subscription-based AI code suggestion tool trained on open source code. The Software Freedom Conservancy, an open source advocacy group, accused Microsoft last week of profiting from open source without clarifying whether Copilot complies with licencing terms and urged open source developers to abandon GitHub. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/07/microsoft-postpones-a-contentious-ban-on-paid-for-open-source-and-webkit/ - -作者:[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/07/microsoft-e1657525936852.jpg From f36b9c63e15744ad95edf89fce50bd31940eca75 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 23:55:40 +0800 Subject: [PATCH 0404/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20How=20to=20Install=20Deepin=20Desktop=20i?= =?UTF-8?q?n=20Arch=20Linux=20[Complete=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Desktop in Arch Linux [Complete Guide].md | 297 ++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md b/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..c2aae6dbcf --- /dev/null +++ b/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,297 @@ +[#]: subject: "How to Install Deepin Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/deepin-arch-linux-install-20/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Deepin Desktop in Arch Linux [Complete Guide] +====== +In this guide, we explain the steps required to install the beautiful Deepin Desktop in Arch Linux. + +The first part of the guide explains the steps for installing the base Arch system. The second part is installing the complete Deepin desktop on top of Arch Linux. + +### What is the Deepin Desktop? + +[Deepin][1] is a feature-rich and beautiful desktop environment based on Debian stable branch. Deepin desktop is a homegrown desktop environment by Deepin. It is powered by its own `dde-kwin` Window manager. Deepin desktop comes with nice looking dock and many native Deepin applications pre-loaded. + +This eye candy desktop environment is [available in the Arch repository][2]; this is how you can install Deepin Desktop Environment in Arch Linux. + +This guide installs Deepin 20.1 Desktop Environment. However, the steps should be similar for other versions as well. + +### Install Deepin Desktop in Arch Linux + +#### Part 1: Install Arch Linux + +If you have already Arch Linux installed, you can skip this step and directly go to the install Deepin Desktop section . + +For a quick Arch Linux base installation, follow the below steps. You can also visit [this guide][3] for a complete tutorial on installing Arch Linux as Dual Boot or on a virtual machine. + +##### Download Arch Linux + +Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download it, write the ISO to a USB drive. And then boot from the drive. + +[Download Arch Linux][4] + +If you are planning to install it as a virtual machine image via [GNOME Boxes][5], [virt-manager][6] – then you do not need to write it to a USB drive. + +##### Boot and Configure Partitions + +After you boot from the Arch Linux iso, you have to run a series of commands to install the base system. + +First, run the below command to find out the device identifier. + +``` +fdisk -l +``` + +![fdisk -l before][7] + +Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. + +``` +cfdisk /dev/sda +``` + +Select `label type = dos` the next prompt. + +Select the free space and choose the option NEW from the bottom. In this example, I will create three partitions as per below. + +``` +/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap +``` + +![cfdisk][8] + +In the next screen, provide the partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. + +Repeat the same step for the main root partition of size 5GB. + +![Swap partition type change][9] + +Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. + +![final partition list in cfdisk][10] + +Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write, as this is a permanent change in your system. + +Run the below command to check before you proceed. You can see in this example, that three partitions are listed. + +``` +fdisk -l +``` + +![final partition list in fdisk][11] + +Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. + +``` +mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 +``` + +After completion, mount the system and create the necessary directories. + +``` +mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot +``` + +Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. + +![prepare file system][12] + +##### Install the base system + +I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which the Arch installer automatically configures and detect. If you do not have a wired connection available, follow this guide to configure a wireless or wifi network using the Arch Linux installer. + +Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. + +``` +pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +``` + +![Install base system][13] + +Once complete, generate a file system table without which you can’t boot the system. + +``` +genfstab -U /mnt >> /mnt/etc/fstab +``` + +##### Configure the base system + +Follow the below commands in sequence to configure the base system. This involves setting up your locale and language, adding a login user, and setting up the internet. + +``` +arch-chroot /mntnano /etc/locale.gen +``` + +Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. + +![change locale][14] + +Generate the locale using: + +``` +locale-gen +``` + +Set up the language using the below command. + +``` +echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 +``` + +Set up the local time zone. + +``` +ln -s /usr/share/zoneinfo/America/New_York /etc/localtime +``` + +Again, you can choose them as per your need. You can list the local time zones via the below commands. + +``` +ls /usr/share/zoneinfo +ls /usr/share/zoneinfo/America +``` + +Set up the hardware clock, create a hostname and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. + +``` +hwclock --systohc --utc +echo debugpoint-pc > /etc/hostname +systemctl enable dhcpcd +``` + +The next step is to set up the root user password, create an admin user, and add the user to the sudoers file. + +Follow the below commands in sequence. Make sure to change the user name `debugpoint` to something else as per your need. + +``` +passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint +``` + +![create user][15] + +Open the sudoers file and add the below lines. + +``` +nano /etc/sudoers +``` + +Add the below lines. As you already created the root user, the entry should be there. + +``` +root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL +``` + +![update sudoers file][16] + +Install grub, set up the initial ramdisk environment, and unmount the system using the below commands. + +``` +grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit +``` + +![configure grub][17] + +Then reboot your system. + +``` +umount /mnt/bootumount /mntreboot +``` + +You have now successfully installed the Arch Linux base system. It’s time to install the complete Deepin desktop. + +#### Part 2: Install Deepin Desktop in Arch Linux + +After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install the Xorg server, lightdm display manager and Deepin desktop components. + +For all the commands, use default as package versions, i.e. press enter when asked. + +* Install Xorg and display manager. Approx install size is 80 MB. + +``` +sudo pacman -S --needed xorg lightdm +``` + +* Install additional components and applications (approx 550 MB) + +``` +sudo pacman -S --needed deepin deepin-extra +``` + +After the installation, enable the Deepin greeter by modifying the lightdm configuration file. Follow the below commands. + +``` +nano /etc/lightdm/lightdm.conf +``` + +And add the below line. Save the file (CTRL+O, CTRL+X). + +``` +greeter-session=lightdm-deepin-greeter +``` + +![add deepin-greeter in lightdm login - install Deepin desktop in Arch Linux][18] + +Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd. + +``` +systemctl enable lightdm +systemctl enable NetworkManager +``` + +![Enable lightdm and network][19] + +Reboot the system using the reboot command. + +``` +reboot +``` + +If all goes well, you should see the Deepin desktop login prompt. Login using the credentials you just created in the above steps. You should be greeted with the latest Deepin desktop environment. + +![Deepin 20.1 Login screen in Arch Linux][20] + +![Deepin Desktop 20.1 in Arch Linux][21] + +### Wrapping Up + +I hope this guide helped you to install the Deepin desktop in Arch Linux. Although it is not my daily driver, I feel Deepin’s desktop is somewhat slow in nature. Probably because of too much colour rendering and animation and not properly optimized by `dde-desktop` despite it being built on Qt. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/deepin-arch-linux-install-20/ + +作者:[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/2020/09/deepin-20-review/ +[2]: https://archlinux.org/groups/x86_64/deepin/ +[3]: https://www.debugpoint.com/2020/11/install-arch-linux/ +[4]: https://www.archlinux.org/download/ +[5]: https://www.debugpoint.com/2020/05/install-use-gnome-boxes/ +[6]: https://www.debugpoint.com/2020/11/virt-manager/ +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg +[18]: https://www.debugpoint.com/wp-content/uploads/2021/01/add-deepin-greeter-in-lightdm-login.jpg +[19]: https://www.debugpoint.com/wp-content/uploads/2020/12/Enable-lightdm-and-network-Install-Xfce-Desktop-in-Arch-Linux.jpg +[20]: https://www.debugpoint.com/wp-content/uploads/2021/01/Deepin-20.1-Login-screen-in-Arch-Linux-1024x771.jpg +[21]: https://www.debugpoint.com/wp-content/uploads/2021/01/Deepin-Desktop-20.1-in-Arch-Linux-1024x770.jpg From b677fdaf0d5fe031ecd069b220cb420df9ca9625 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 16 Jul 2022 23:58:48 +0800 Subject: [PATCH 0405/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20Ubuntu=20Studio=2022.04=20LTS=20=E2=80=93?= =?UTF-8?q?=20New=20Features=20and=20Release=20Details.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... LTS – New Features and Release Details.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md diff --git a/sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md b/sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md new file mode 100644 index 0000000000..00fc187265 --- /dev/null +++ b/sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md @@ -0,0 +1,96 @@ +[#]: subject: "Ubuntu Studio 22.04 LTS – New Features and Release Details" +[#]: via: "https://www.debugpoint.com/ubuntu-studio-22-04-lts/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu Studio 22.04 LTS – New Features and Release Details +====== +A list of new features and enhancements of the Ubuntu Studio 22.04 LTS “Jammy Jellyfish”. + +[Ubuntu Studio][1] is the official Ubuntu flavour dedicated to the creators who mainly work with photographs, audio and video. This official distribution brings almost all popular open-source creative software pre-loaded in its ISO image to give you a ready and stable system to kick-start your professional work. + +![Ubuntu Studio 22.04 LTS Desktop][2] + +### Ubuntu Studio 22.04 LTS – New Features + +Like all the official Ubuntu flavours, Ubuntu Studio 22.04 LTS is based on [Ubuntu 22.04 LTS “Jammy Jellyfish][3]“.The Linux Kernel 5.15 LTS powers Ubuntu Studio 22.04, a stable Kernel for all the current range of modern hardware lineups. + +Most creative work usually happens in high-end and modern machines; hence the Kernel version is significant in Ubuntu Studio. The [Linux Kernel 5.15 LTS][4] supports Intel and AMD’s current CPU and GPU lineups. For example, this Kernel brings AMD PTDMA driver for high-bandwidth I/O operations and many more essential updates, which are significant for creative work in modern hardware. + +In addition, the customised [KDE Plasma 5.24][5] with KDE Framework 5.92 brings a friendly user interface with Ubuntu Studio’s native dark theme and icon theme. The KDE Plasma desktop is tweaked with a top panel with shortcuts and necessary system tray widgets to make all the professional work more streamlined. + +Moreover, if you are migrating from Ubuntu Studio 20.04 LTS Focal Fossa to this version, KDE Plasma is a new desktop that the user will experience. Because Ubuntu Studio 20.04 LTS was the last version with the Xfce desktop environment. And since then, Ubuntu Studio has moved on to the KDE Plasma desktop environment for better modern tech and performance support. + +#### Application Stack + +The application stack of Ubuntu Studio 22.04 LTS brings the latest stable releases. The Studio Controls (a native control centre for Ubuntu Studio) bumped to version 2.3.0 with improved mixers and plugins with bug fixes. + +![Studio Controls][6] + +Mainly for Blender, KDenlive and Ardour because these super impressive open-source applications are very active in development. In addition, the graphics, video and audio software suite are updated with their latest stable versions. Moreover, you may notice a massive upgrade of features and enhancements if you make a feature comparison with the last LTS release. + +However, this is not the complete list of the major ones we put up here. + +* Blender v3.0.1 (3D computer graphics) +* KDenlive v21.12.3 (Video editor) +* Krita v5.0.2 (Raster graphics drawing and animation) +* Gimp v2.10.24 (Raster graphics drawing) +* Ardour v6.9 ([Digital audio workstation][7]) +* Scribus v1.5.7 (Desktop publishing) +* Darktable v3.6.0 (RAW image and photographs management) +* Inkscape v1.1.2 (Vector graphics editor) +* Carla v2.4.2 (Audio plugin host) +* Studio Controls v2.3.0 (Audio manager and control) +* OBS Studio v27.2.3 (Streaming application) +* MyPaint v2.0.1 (Simple drawing) + +Besides, one of the significant changes in Jammy Jellyfish is the introduction of [Pipewire][8] 0.3.48 (compared to Focal Fossa). This modern audio and video streaming server tech will help many users with advanced audio controls. But it may require command line tweaks to manage it. I am not sure whether the Studio team would bring additional settings in the Studio Control utility in the future to manage Pipewire. + +Finally, the newly designed logo from the Ubuntu Studio team aligning with Canonical’s branding looks impressive and stands out in this release. + +![Ubuntu Studio New Logo][9] + +### Download and Upgrade + +The above suite of applications makes the Ubuntu Studio 22.04 LTS ISO size to whooping 4GB+ (it won’t fit in a single DVD, use USB). If you want to try it out, you can download the official image using the link below. + +* ISO – [ubuntustudio-22.04-dvd-amd64.iso][10] +* Torrent and other forms of download [https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/][11] + +A word of caution if you plan to upgrade from Ubuntu Studio 20.04 LTS to this new version. Because of the desktop environment change from Xfce to KDE Plasma, you should not upgrade from Ubuntu Studio 20.04 LTS to Ubuntu 22.04 LTS. It is not supported. + +Instead, you should go ahead with a fresh installation. It may be a bit complex and challenging to do a fresh install because you already have a system set up with many plugins, settings and established workflow for your audio and video work. But I recommend it because it allows you to clean up and start fresh with Ubuntu Studio 22.04 LTS with a new set of applications and desktop environment. + +*[Via release notes.][12]* + +*Feature image by Milad Fakurian on Unsplash.* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/ubuntu-studio-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://ubuntustudio.org/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-22.04-LTS-Desktop.jpg +[3]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/ +[4]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/ +[5]: https://www.debugpoint.com/2022/03/kde-plasma-5-24-review/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Studio-Controls.jpg +[7]: https://www.debugpoint.com/2018/08/3-best-daw-digital-audio-workstation-apps-ubuntu-linux/ +[8]: https://gitlab.freedesktop.org/pipewire/pipewire +[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-New-Logo.jpg +[10]: https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/ubuntustudio-22.04-dvd-amd64.iso +[11]: https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/ +[12]: https://ubuntustudio.org/ubuntu-studio-22-04-lts-release-notes/ From a2c4ce86e93d67c4e3fd9ab471a0fa874ad016a5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 17 Jul 2022 00:00:44 +0800 Subject: [PATCH 0406/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=204=20Ways=20to=20Fix=20the=20Laptop=20Brig?= =?UTF-8?q?htness=20Problem=20In=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...the Laptop Brightness Problem In Ubuntu.md | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 sources/tech/20220716 4 Ways to Fix the Laptop Brightness Problem In Ubuntu.md diff --git a/sources/tech/20220716 4 Ways to Fix the Laptop Brightness Problem In Ubuntu.md b/sources/tech/20220716 4 Ways to Fix the Laptop Brightness Problem In Ubuntu.md new file mode 100644 index 0000000000..5076a34691 --- /dev/null +++ b/sources/tech/20220716 4 Ways to Fix the Laptop Brightness Problem In Ubuntu.md @@ -0,0 +1,176 @@ +[#]: subject: "4 Ways to Fix the Laptop Brightness Problem In Ubuntu" +[#]: via: "https://www.debugpoint.com/2-ways-fix-laptop-brightness-problem-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 Ways to Fix the Laptop Brightness Problem In Ubuntu +====== +This article features four quick ways to fix the everlasting Laptop brightness problem in Ubuntu. + +Ubuntu plus most of the [Linux distributions][1] always had issues with Laptop brightness. The default hardware controllers never in the Laptop keyboard worked most of the time after a fresh install. + +![brightness-control-keys-dell][2] + +![brightness-control-keys-samsung][3] + +Follow the below definite steps that worked till now for most laptops based on feedback on this website at our [old article][4]. + +**The described methods worked for the below models (so far). For the complete list of Laptops/Desktops where either of these four methods worked, refer to the list at the bottom of this article.** + +* ASUS G75-VW +* Dell Vostro 3000 Series +* Samsung RV411 Series + +### Fix the Laptop Brightness Problem In Ubuntu + +#### Method 1: Fix Brightness Enabling Laptop Specific Drivers + +* Open the file `/etc/default/grub` using gedit or any other text editor.Find the below line. + +``` +GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" +``` + +* Change the above line to: + +``` +GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor" +``` + +![grub update for brightness control][5] + +This would ensure to load of device-specific drivers before default drivers in Linux. + +* Save the file and close the text editor. +* Open the terminal and run the below command. + +``` +update-grub +``` + +* Reboot. + +After rebooting, try adjusting the brightness using laptop’s dedicated control keys. + +![brightness-control-via-oem-keys][6] + +#### Method 2: Fix Brightness Using a Software + +If the above method does not work, you could try the below method using an app. + +This app, ‘[Brightness Controller][7]‘, can control the display using a simple GUI. It supports multiple displays as well. + +The app is available in PPA. You can run the below command to install Ubuntu 16.10 Yakkety Yak, Ubuntu 16.04 Xenial Xerus, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS or [Ubuntu 22.04 LTS][8]. + +``` +sudo add-apt-repository ppa:apandada1/brightness-controller +sudo apt update +sudo apt install brightness-controller +``` + +For other download options, you can refer to this [page][9]. + +![brightness-controller-running][10] + +After installation, you can find it under the application menu or search for it in the application menu. Once opened, you can see a bar that controls the display brightness, which you can adjust as per your need. + +#### Method 3: Fix Brightness by configuring X11 + +Follow this method if none of the above fixes works. This should be the last resort. + +Open a terminal session. Then browse to the[X11 config file][11] path `/etc/X11/xorg.conf.d` + +``` +cd /etc/X11/xorg.conf.d +``` + +**If you do not find any file in the above path**, check the below path for the configuration. This is mainly for those systems where you have logged in as a local user and not a root user. + +``` +cd /usr/share/X11/xorg.conf.d +``` + +Then list the files via `ls`. You can see something like this below. + +``` +ls +``` + +![X11 Path][12] + +For this example, you can see it has a file named `10-evdev.conf`. For your system, it might be different. So open the file via test editor as root. + +``` +sudo gedit /etc/X11/xorg.conf.d/10-evdev.conf +``` + +Add the below lines entirely at the end of this file and save the file. + +``` +Section "Device" +Identifier "Device0" +Driver "nvidia" +VendorName "NVIDIA Corporation" +Option "RegistryDwords" "EnableBrightnessControl=1" +EndSection +``` + +Sample file below: + +![Editing the conf file][13] + +Once you are done, restart the system. + +You should be able to control the brightness now using the laptop hardware keys. + +#### Method 4: Fix Brightness using xrandr + +If none of the above methods gives you hope, try the following method. This uses xrandr’s properties, the official config utility for X server Resize and Rotate. + +Open a terminal and find out the name of your display using the below command. In the below screenshot, you can see two outputs because, in my test system, two displays are there. + +``` +xrandr | grep " connected" | cut -f1 -d " " +``` + +So, the next is to change the brightness using the display name. So, use the following command by changing the monitor name. In this example, I have used eDP-1, my system’s display. The brightness value range is 0 to 1, where 0 is the dimmest and 1 is the brightest. + +![brightness control using xrandr][14] + +``` +xrandr --output eDP-1 --brightness 0.7 +``` + +To revert, you can use the above command with brightness=1. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/2-ways-fix-laptop-brightness-problem-ubuntu-linux/ + +作者:[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/category/distributions/ +[2]: https://www.debugpoint.com/wp-content/uploads/2016/10/Brightness-Control-Keys-DELL.png +[3]: https://www.debugpoint.com/wp-content/uploads/2016/10/Brightness-Control-Keys-Samsung.png +[4]: http://www.debugpoint.com/2014/10/how-to-fix-brightness-control-in-ubuntu/ +[5]: https://www.debugpoint.com/wp-content/uploads/2014/10/grub-update-for-brightness-control.png +[6]: https://www.debugpoint.com/wp-content/uploads/2016/10/Brightness-Control-Via-OEM-Keys.png +[7]: http://lordamit.github.io/Brightness/ +[8]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[9]: https://github.com/LordAmit/Brightness +[10]: https://www.debugpoint.com/wp-content/uploads/2016/10/Brightness-Controller-Running.png +[11]: https://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml +[12]: https://www.debugpoint.com/wp-content/uploads/2016/10/X11-Path.png +[13]: https://www.debugpoint.com/wp-content/uploads/2016/10/Editing-the-conf-file.png +[14]: https://www.debugpoint.com/wp-content/uploads/2016/10/brightness-control-using-xrandr.jpeg From b721ba9ee2860585edf2bf0f13482ee32bd88bc6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 17 Jul 2022 00:01:46 +0800 Subject: [PATCH 0407/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20How=20to=20Clean=20Up=20Snap=20Versions?= =?UTF-8?q?=20to=20Free=20Up=20Disk=20Space.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Up Snap Versions to Free Up Disk Space.md | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md diff --git a/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md new file mode 100644 index 0000000000..6e1ea02f35 --- /dev/null +++ b/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md @@ -0,0 +1,105 @@ +[#]: subject: "How to Clean Up Snap Versions to Free Up Disk Space" +[#]: via: "https://www.debugpoint.com/clean-up-snap/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Clean Up Snap Versions to Free Up Disk Space +====== +This quick guide with a script helps to clean up old snap versions and free some disk space in your Ubuntu systems. + +I was running out of disk space in my test system with Ubuntu. So I was investigating via GNOME’s Disk Usage Analyser to find out which package is consuming the precious SSD space. Apart from the usual cache and home directory – to my surprise, I found that Snap and Flatpak consume a considerable amount of storage space. + +![Snap size – before cleanup][1] + +Although, I always maintain a rule – not to use Snap or Flatpak unless necessary. This is mainly because of their installation size and other issues. I prefer vanilla deb and rpm packages. Over the years, I have installed and removed a certain amount of Snap packages in this test system. + +The problem arises after uninstallation; Snap keeps some residue files in the system, unknown to the general users. + +So I opened the Snap folder `/var/lib/snapd/snaps` and discovered that Snap is keeping track of older versions of previously installed/uninstalled packages. + +For example, in the below image, you can see GNOME 3.28, 3.34, and Wine – all of these are removed long back. But they are still there. Its happening because of the Snap design which keeps versions of uninstalled packages after a proper uninstallation. + +![Files under snaps directory][2] + +Alternatively, you can get the same in terminal using: + +``` +snap list --all +``` + +![snap list all][3] + +The default value is 3 for several revisions for retention. That means Snap keeps 3 older versions of each package, including the active version. This is okay if you do not have constraints on your disk space. + +But for servers and other use cases, this can easily run into cost issues, consuming your disk space. + +However, you can easily modify the count using the following command. The value can be between 2 to 20. + +``` +sudo snap set system refresh.retain=2 +``` + +### Clean Up Snap Versions + +In a post in SuperUser, Popey, the ex-Engineering Manager at Canonical, [provided a simple script][4] that can clean up old versions of Snaps and keep the latest one. + +Here’s the script we will use to clean the Snap up. + +``` +#!/bin/bash + #Removes old revisions of snaps + #CLOSE ALL SNAPS BEFORE RUNNING THIS + set -eu + LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | + while read snapname revision; do + snap remove "$snapname" --revision="$revision" + done +``` + +Save the above script as .sh in a directory (for example`clean_snap.sh` ), give it executable permission and run. + +``` +chmod +x clean_snap.sh +``` + +When I ran the script, it reduced a lot of disk space. The script would also show the name of the package being removed. + +![Executing the script][5] + +![Snaps size after cleanup][6] + +### Closing Notes + +There are always debates on how efficient Snap’s design is. Many say it is broken by design, bloated, and heavy on systems. Some part of that argument is true, I would not deny it. The whole concept of sandboxing applications is great if implemented and enhanced properly. I believe, Flatpak does a better job compared to Snap. + +That said, I hope this helps you clean up some disk space. Although it is tested in Ubuntu, it should work in all Linux distribution that supports Snap. + +Also, check out our guide on [how to clean up Ubuntu][7] with additional steps. + +Finally, if you are looking for cleaning up **Flatpak** apps, refer [this guide][8]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/clean-up-snap/ + +作者:[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/2021/03/Snap-size-before-cleanup.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/Files-under-snaps-directory.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg +[4]: https://superuser.com/a/1330590 +[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/Executing-the-script.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snaps-size-after-cleanup.jpg +[7]: https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/ +[8]: https://www.debugpoint.com/clean-up-flatpak/ From a99aa6c3d008c1022cd2f5eef9d66641045ce330 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 17 Jul 2022 00:03:16 +0800 Subject: [PATCH 0408/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220716=20Does=20an=20Ethernet=20splitter=20slow=20?= =?UTF-8?q?down=20speed-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s an Ethernet splitter slow down speed-.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20220716 Does an Ethernet splitter slow down speed-.md diff --git a/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md b/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md new file mode 100644 index 0000000000..eb68d4089e --- /dev/null +++ b/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md @@ -0,0 +1,99 @@ +[#]: subject: "Does an Ethernet splitter slow down speed?" +[#]: via: "https://www.debugpoint.com/ethernet-splitter-speed/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Does an Ethernet splitter slow down speed? +====== +This post summarises detailed information about ethernet splitter, their speed, and different FAQ to help you choose the best hardware. + +Switches, hubs, and ethernet splitters are just some of the networking equipment that helps to expand a network. Small ethernet splitters are the most basic of these devices. Ethernet splitters are small network devices that split one Ethernet signal into two. They are cost-effective while being easier to use. These are also some of the simplest networking devices, as they don’t need a power source and don’t have specific buttons or status LEDs on their bodies. There are just three ethernet ports on this tiny gadget, two on one side and one on the other. A short ethernet cable with an [RJ45][1] connection on one end and two ethernet ports on the other is included with some kinds. + +Although splitters have been around for a long time in the networking world, many people still don’t know how to utilize them efficiently. Contrary to popular belief, ethernet splitters should always be purchased in pairs. Directly attaching one end of the splitter to the router and then connecting two devices to the splitter’s two ethernet ports on the other side will not work. There is a correct technique to set up ethernet splitters in a network to function correctly. + +### How to do a Basic Setup using Ethernet Splitter + +Ethernet splitters are handy for connecting two devices located in different rooms from the primary signal source. In most situations, they assist in conserving wires and network wall outlets and provide dependable connections. Ethernet splitters are sold in pairs, as previously stated. One splitter combines two signals from a device (usually the router), while the other separates the signals into two channels, allowing two devices to communicate. + +You have a router in Room A and two PCs in Room B, but each room has just one ethernet wall jack. In this scenario, you’ll need one splitter, two cables connected to the router, the other end of the wires connected to the splitter, and one end of the splitter connected to the wall jack in Room A. This is where the router’s two signals are combined into one. Next, connect the side with one port to Room B’s wall jack via the other splitter. The combined signal from Room A will now be split into two, giving you two ethernet ports for the two devices in Room B. + +The advantage of the splitter is it can significantly reduce the number of wall ports and cables you may require for your setup. It helps you to avoid “cable hell” because it reduces your required ports/cable by a factor of 2. + +![sample diagram using ethernet splitter][2] + +### Does an Ethernet splitter slow down speed? + +Will my network connection become slow? This is one of the common questions that may arise in your mind. Well, the answer depends on the type of network you have. Ideally, splitters are of BASE-T standard, aka [Fast Ethernet][3]. And they support up to Mbps speed. + +To answer, no, the splitters will not slow down the connection if utilized in a 100Mbps network. However, if your router can deliver 1Gbps and you put a splitter in the middle, the bandwidth will be limited to 100Mbps. The splitters did restrict the speed in this case, and the connection will be slower. + +### Advantages and Disadvantages of Ethernet Splitters + +Ethernet splitters can be helpful in some situations, but they also have several disadvantages. For starters, each ethernet port can only give a maximum speed of 100Mbps. Due to this limitation, resources in a network capable of providing more than 100Mbps will not be properly optimized. Furthermore, because the number of devices you may connect to is limited to just two, ethernet splitters are not the most greatest option if you have more than two devices connected. + +Furthermore, if your router has one remaining ethernet port, using the splitters would be impractical; some sacrifices must be made. Furthermore, even though they reduce the number of cables required to join two networks, the arrangement still requires two splitters to function. + +Ethernet splitters, on the other hand, have a few advantages. They are much less expensive than conventional networking devices and do not require a complex setup. Unlike other network devices, they also don’t need any software or configuration. In residential networks with fewer devices connected, such as a maximum of two devices in one room, Ethernet splitters are an excellent choice. Ethernet splitters are the greatest option if you only need a 100Mbps connection and only have two devices to connect. + +Ethernet splitters have been around for a long time, but as simple as they are, there isn’t much that can be done to improve them. They’re still based on the outdated Fast Ethernet standard, which may or may not be as relevant in today’s demand for higher speeds. Even if they have their advantages, they aren’t a realistic solution in most circumstances. With today’s technical advancements, the future of ethernet splitters remains bright. A genius may be able to raise it to a [Gigabit Ethernet][4] standard. + +Now that you get some idea about Ethernet Splitters, here are some of the frequently asked questions (FAQ) about them. + +### Frequently Asked Questions + +#### Can you split an Ethernet cable into two devices? + +This is conceivable if you want to split an Ethernet wire across two devices. This will, however, necessitate the acquisition of an Ethernet cable sharing splitter kit. A splitter kit allows multiple devices to use the same Ethernet cable simultaneously. If you want to connect a PC and a laptop to the same cable or a PC and a game console, this is a good option. + +An Ethernet cable will outperform any other sort of connection when it comes to connection speeds. When you require quick connectivity for activities like gaming, an Ethernet cable is always the best option. + +It’s worth mentioning that you can’t connect two devices with a single Ethernet cable because they’re only designed for one, which is why you’ll need an Ethernet cable splitter. It attaches to an existing Ethernet wire and provides a connection between two devices. + +#### How do I connect two devices to one Ethernet port? + +Two devices can be connected to a single Ethernet port. However, as previously stated, you will require the usage of a cable-sharing kit. This is because each Ethernet connection is dedicated to a single device. + +With an Ethernet cable sharing kit, you may connect many devices to a single Ethernet port, which is very handy for your home network. It’s beneficial if you’re throwing a LAN party and have a few Ethernet connections available. + +It’s also worth mentioning that you could have more than one Ethernet port accessible. If this is the case, using one port for each device is always the best option. When this isn’t possible, a cable sharing kit or splitter is an excellent backup alternative. + +#### What’s the difference between an Ethernet splitter and a switch? + +An Ethernet splitter and a switch perform similar functions but are fundamentally distinct. An Ethernet splitter allows two independent connections to be made over the same Ethernet cable. It does, however, limit you to two connections. If you want to connect one additional device to the Ethernet connection, this is a good option. However, it is not compatible with any other devices. + +If you want to connect many devices to a single Ethernet connection, you’ll need to buy an Ethernet switch. These are similar to Ethernet splitters, except they allow for connecting more than two devices. This is especially handy if you have a lot of devices to connect but only a few Ethernet ports, such as if you’re having a LAN party. + +While they support stacking, it’s worth remembering that they’ll also require power. Another difference between them and a basic Ethernet splitter is that they do not require any electricity and may be attached directly to the Ethernet port. + +#### Do I need an Ethernet switch or splitter? + +The number of devices you want to connect will determine whether you need an Ethernet switch or a splitter. You can use an Ethernet splitter if you need to connect two devices and don’t want to utilize a power source. + +On the other hand, an Ethernet switch is an ideal solution if you need to connect several devices. It allows you to connect several devices to a single Ethernet port, but it requires electricity. + +I hope this guide helps you to get an idea about ethernet splitters and how to use them. You can buy them at any online store at low prices. However, if you need a speed of more than a hundred Mbps, you might need to set up wiring for your network. *[This post is part of our hardware guides.][5]* + +*Featured Photo by Jainath Ponnala on Unsplash* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/ethernet-splitter-speed/ + +作者:[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://en.wikipedia.org/wiki/Registered_jack +[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/sample-diagram-using-ethernet-splitter-1024x896.jpg +[3]: https://en.wikipedia.org/wiki/Fast_Ethernet +[4]: https://en.wikipedia.org/wiki/Gigabit_Ethernet +[5]: https://www.debugpoint.com/category/hardware From 7bf98d7076b8cffbd5c4c104fa230def14a51478 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 17 Jul 2022 00:14:56 +0800 Subject: [PATCH 0409/3123] =?UTF-8?q?2022-07-17=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=BF=87=E6=97=B6=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-NVK- Nouveau Open Source Vulkan Driver.md | 38 --- ...5- Top New Features and Release Details.md | 147 ------------ ...4- Top New Features and Release Details.md | 151 ------------ ...ming – A Case Study of Far Cry 5 -2018-.md | 221 ------------------ ...s in the Upcoming Linux Mint 21 Release.md | 141 ----------- ... LTS – New Features and Release Details.md | 96 -------- 6 files changed, 794 deletions(-) delete mode 100644 sources/tech/20220603 Red Hat Tests The -NVK- Nouveau Open Source Vulkan Driver.md delete mode 100644 sources/tech/20220604 KDE Plasma 5.25- Top New Features and Release Details.md delete mode 100644 sources/tech/20220612 LibreOffice 7.4- Top New Features and Release Details.md delete mode 100644 sources/tech/20220617 Fedora Workstation-s State of Gaming – A Case Study of Far Cry 5 -2018-.md delete mode 100644 sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md delete mode 100644 sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md diff --git a/sources/tech/20220603 Red Hat Tests The -NVK- Nouveau Open Source Vulkan Driver.md b/sources/tech/20220603 Red Hat Tests The -NVK- Nouveau Open Source Vulkan Driver.md deleted file mode 100644 index 413df8c877..0000000000 --- a/sources/tech/20220603 Red Hat Tests The -NVK- Nouveau Open Source Vulkan Driver.md +++ /dev/null @@ -1,38 +0,0 @@ -[#]: subject: "Red Hat Tests The “NVK” Nouveau Open Source Vulkan Driver" -[#]: via: "https://www.opensourceforu.com/2022/06/red-hat-tests-the-nvk-nouveau-open-source-vulkan-driver/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Red Hat Tests The “NVK” Nouveau Open Source Vulkan Driver -====== -![red-hat][1] - -Following the recent news about Nouveau reorganising code to allow their shader compiler to be used outside of Nouveau Gallium3D, Red Hat’s Karol Herbst, a longtime Nouveau developer, has been posting patches for his new “NVK” Nouveau Vulkan driver effort. - -NVK is a brand-new, yet-to-be-merged open source Vulkan driver for NVIDIA graphics hardware. This is a Mesa-based driver that is currently being worked on primarily by Karol Herbst, who joined Red Hat several years ago and has since continued to work heavily on Mesa, including in the areas of OpenCL compute and other features. Aside from NVK, he has recently begun working on Rusticl, a Rust-based OpenCL implementation for Mesa. - -Jason Ekstrand of Collabora, as well as David Airlie of Red Hat, have been making early contributions to NVK. NVK can at least run vulkaninfo, but it is still a work in progress, with the initial code only being committed two weeks ago. - -Aside from performance issues with newer generations of NVIDIA graphics cards, the lack of an open source NVIDIA Vulkan driver has been a major roadblock, given that most Linux games these days are Vulkan-native, and even Steam Play is mostly Vulkan with VKD3D-Proton/DXVK. - -This NVK driver will most likely be updated in the future to support the open source NVIDIA kernel driver as an alternative to the Nouveau DRM driver. The original NVK open source Vulkan driver code is available on [Nouveau’s GitLab repository][2]. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/red-hat-tests-the-nvk-nouveau-open-source-vulkan-driver/ - -作者:[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/06/red-hat-e1654256924226.jpg -[2]: https://gitlab.freedesktop.org/nouveau/mesa/-/commits/nouveau/vk/ diff --git a/sources/tech/20220604 KDE Plasma 5.25- Top New Features and Release Details.md b/sources/tech/20220604 KDE Plasma 5.25- Top New Features and Release Details.md deleted file mode 100644 index a5310fc224..0000000000 --- a/sources/tech/20220604 KDE Plasma 5.25- Top New Features and Release Details.md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "KDE Plasma 5.25: Top New Features and Release Details" -[#]: via: "https://www.debugpoint.com/2022/06/kde-plasma-5-25/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -KDE Plasma 5.25: Top New Features and Release Details -====== -We will give you the feature summary of the KDE Plasma 5.25 desktop environment (upcoming). - -KDE Plasma 5.25 is the 27th version of KDE Plasma desktop, not an LTS release. This release is followed by the prior [5.24 LTS][1], released in February. KDE Plasma 5.25 brings several exciting updates on the desktop UI, polished applets, widgets, a good set of gesture updates for touch-based devices and a massive list of bug fixes. Plasma 5.25 is based on Qt 5.15.2 and KDE Frameworks 5.94. - -KDE Plasma releases on June 14, 2022, but before that following milestones are to be met: - -* Soft feature freeze: May 5, 2022 (Completed) -* Beta: May 19, 2022 (completed) -* Final release: June 14, 2022 - -The list of bug fixes and features is around 400+, and it’s challenging to cover them in a single article. We filtered out in this article some of the essential and visual changes which are more impactful straightaway to the general user base. - -### KDE Plasma 5.25 – Top New Features - -#### Plasma Workspace & Desktop - -Perhaps the most important visual change in KDE Plasma 5.25 is accent colour change based on the Wallpaper. As reported earlier, this change gives the final touch to the entire accent colour functionality and makes it complete with dynamic colour, custom colour and pre-sets. The option is available in the Appearance module. ([MR#1325)][2] - -![KDE Plasma 5.25 - Accent Colour Change Based on wallpaper][3] - -In addition, the accent colour change to the title bar was [also implemented][4] in the Breeze Classic theme and made it more consistent across the desktop. - -Another exciting change that KDE Plasma 5.25 brings is an option for Themes to make the Panel float. When selected, the Panel detaches itself from the bottom of the screen with rounded corners and gives a floating feeling. The option is available in the additional settings in Edit Panel mode. Here’s how it looks. ([MR#714)][5] - -![Floating Panel in Plasma 5.25][6] - -Here’s a quick video we prepared for you to show the above two features in action. - -![KDE Plasma - Dynamic Accent Colour and Floating Panel Demo][7] - -In addition to that, the power profiles menu in the system tray now has [icons][8] with their names in the [tooltip][9]. - -The login and logout screen see a [small UI change][10] to display avatar and profile name with longer user names. - -Also, the spacing between the avatar icon and name with the logout screen action buttons is [increased][11] to give a more consistent look. - -A fix was made to the Plasma Desktop to prevent widgets from [retaining position][12]when resolution changes back from fullscreen gaming. The widgets remember their position for respective resolutions. - -The plasma Workspace module [reverts][13]to the lock screen behaviour on mouse move, which was removed accidentally earlier. - -The Digital Clock “Copy to Clipboard” menu is now [more clean][14] with the removal of duplicate items and separate entries when seconds are enabled. - -#### KWin Updates - -KWin introduces an [option to hide][15] minimised windows in KDE Plasma 5.25. In addition to that, the desktop grid effect is [completely replaced][16] with the QML Version. - -Furthermore, it is now possible to switch between display specific resolutions which are not visible to the operating system in Wayland. The change adds [libxcvt][17] dependency in Kwin, and details of this change can be found [here][18]. - -With this release, the switching between the dark and light mode is more smooth and animated thanks to this [MR][19], inspired by GNOME. It was not smooth earlier and now looks more professional behaviour. - -#### Changes in Discover - -The application page of Discover is now complete with [more focused details][20] at the top with Application metadata and images. The spacing of the app name, ratings and developer with the image at the header section with the summary in the middle. And rest at the bottom. Here’s a side by side comparison of the earlier version with 5.25. - -![The app page gives more clarity in Plasma 5.25][21] - -One tiny yet impactful change in Discover related to Flatpak apps. Discover now [shows][22] a message with an action button to clean Flatpak data for uninstalled apps. - -![Message to clear the app data (Image credit: KDE Team)][23] - -Moreover, Discover now [shows the required permissions][24]of the Flatpak applications before you install them. In addition, if you are planning to install proprietary software, you get a warning message saying the potential consequences of using those (such as Microsoft Teams). - -#### Application and Applet Changes - -The System Monitor (KSystemStats) shows new [information about your window system][25] whether you are running X11 or Wayland. This should also display on the overview screen of the KSysGuard. - -The Open With Dialog of XGD Portal sees a [complete UI rework][26]. The top section label is merged into one single information line for better clarity. Also, the search field is now visible for all modes, and the Show More button is moved up beside Search with better clarity. You can look at the below image (Credit KDE Team) for this change. - -The Plasma Applet for NetworkManager now [shows][27] the WiFi frequency connection details to help distinguish which frequency you are connected to in the same SSID (same Wi-Fi Router). It’s really helpful if both the band have the same Wifi Accent point name and you cannot distinguish between 4G or 5G. - -The cuttlefish icon viewer now helps you [open the file path via the file manager][28] directly of the selected icon. - -Plasma desktop now gives a [more organised view][29]in “Recent Documents” with the ability to show “non-file” items such as RDP or remote connections. - -Moreover, the spell checker module in KRunner now [detects][30] the search language and gives you results. - -![KRunner spell check for non-English (image credit: KDE team)][31] - -When you run into an error, the KInfocenter now gives you [more information][32] about the error. The new design gives you what is the error, why it happened, whether you can fix it by yourself and how to report it to the devs. This is a nifty change that has a more significant impact. Here’s a side by side view of the change. - -![More help on the error on the way (Image credit: KDE Team)][33] - -### Closing Notes - -Along with the above changes, this release improves several gestures for touch devices and a massive list of performance and bug fixes (counting 150+), which will enhance the KDE Plasma 5.25 experience for all of its users. - -If you want to give a hand on testing, read the [contribution guide][34], and you can try the [unstable edition of KDE Neon][35] until the BETA release. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/2022/06/kde-plasma-5-25/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/2022/03/kde-plasma-5-24-review/ -[2]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1325 -[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Plasma-5.25-Accent-Colour-Change-Based-on-wallpaper-1024x611.jpg -[4]: https://invent.kde.org/plasma/breeze/-/merge_requests/182 -[5]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/714 -[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Floating-Panel-in-Plasma-5.25.jpg -[7]: https://youtu.be/npfHwMLXXHs -[8]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1585 -[9]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1668 -[10]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1654 -[11]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1647 -[12]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/608 -[13]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1707 -[14]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1693 -[15]: https://invent.kde.org/plasma/kwin/-/merge_requests/2341 -[16]: https://invent.kde.org/plasma/kwin/-/merge_requests/2327 -[17]: https://gitlab.freedesktop.org/xorg/lib/libxcvt -[18]: https://bugs.kde.org/448398 -[19]: https://invent.kde.org/plasma/kwin/-/merge_requests/2088 -[20]: https://invent.kde.org/plasma/discover/-/merge_requests/246 -[21]: https://www.debugpoint.com/wp-content/uploads/2022/05/App-page-gives-more-clarity-in-Plasma-5.25.jpg -[22]: https://invent.kde.org/plasma/discover/-/merge_requests/297 -[23]: https://www.debugpoint.com/wp-content/uploads/2022/05/Message-to-clear-the-app-data.jpg -[24]: https://invent.kde.org/plasma/discover/-/merge_requests/282 -[25]: https://invent.kde.org/plasma/ksystemstats/-/merge_requests/34 -[26]: https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/94 -[27]: https://invent.kde.org/plasma/plasma-nm/-/merge_requests/112 -[28]: https://invent.kde.org/plasma/plasma-sdk/-/merge_requests/32 -[29]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/551 -[30]: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/122 -[31]: https://www.debugpoint.com/wp-content/uploads/2022/05/KRunner-spell-check-for-non-english.jpg -[32]: https://invent.kde.org/plasma/kinfocenter/-/merge_requests/90 -[33]: https://www.debugpoint.com/wp-content/uploads/2022/05/More-help-on-the-error-on-the-way.jpg -[34]: https://community.kde.org/Get_Involved -[35]: https://neon.kde.org/download diff --git a/sources/tech/20220612 LibreOffice 7.4- Top New Features and Release Details.md b/sources/tech/20220612 LibreOffice 7.4- Top New Features and Release Details.md deleted file mode 100644 index cd0c22d2a7..0000000000 --- a/sources/tech/20220612 LibreOffice 7.4- Top New Features and Release Details.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: subject: "LibreOffice 7.4: Top New Features and Release Details" -[#]: via: "https://www.debugpoint.com/2022/06/libreoffice-7-4/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -LibreOffice 7.4: Top New Features and Release Details -====== -This post contains the top new features of LibreOffice 7.4 (upcoming) across Writer, Calc, Impress and other core modules. - -**This post contains the top new features of LibreOffice 7.4 (upcoming) across Writer, Calc, Impress and other core modules.** - -The LibreOffice team improves the famous free and open-source office product with each iteration. Perhaps the only stable and well-managed open-source project as a replacement to Microsoft Office. - -The LibreOffice 7.4 version (planned in August), bringing regular updates to core modules including Calc, Writer and Impress with features and enhancements. Furthermore, in this release, the compatibility with Microsoft Office improved with changes to the core filters and platform updates. - -Before we round up the new features, here’s a tentative schedule for LibreOffice 7.4: - -### Schedule - -| Milestone | Release Date | -| :- | :- | -| Alpha 1 | May 9, 2022 – May 15, 2022 | -| Feature Freeze | Jun 6, 2022 – Jun 12, 2022 | -| Beta 1 | Jun 6, 2022 – Jun 12, 2022 | -| RC1 | Jul 4, 2022 – Jul 10, 2022 | -| RC2 | Jul 25, 2022 – Jul 31, 2022 | -| RC3 | Aug 8, 2022 – Aug 14, 2022 | -| Release 7.4 | Aug 15, 2022 – Aug 21, 2022 | - -### LibreOffice 7.4 Features - -#### Calc - -First and foremost, the most crucial change coming in 7.4 is the support of 16k columns in LibreOffice Calc. It was available in earlier LibreOffice 7.3 but hidden as an experimental option. Finally, it is open to support 16384 columns, i.e. up to XFD. Additional columns are going to help several high-volume data work. - -![LibreOffice 7.4 Calc now supports 16k columns.][1] - -Second, the Autosum button gets the following [additional functions][2] to improve productivity and save time. - -* COUNTA -* PRODUCT -* STDEV -* STDEVP -* VAR -* VARP - -![Additional options in Autosum button][3] - -Moreover, the height of the formula bar is now part of the *.ods files. Hence, you can see the height retained after saving the file and opening it. Earlier, it was being reset to the default height. It is one of the small changes but has a more significant impact on heavy Calc users. - -![Height of Calc Formula bar][4] - -In addition, a new menu option `Sheet > Navigate > Go to Sheet` shows an entire new dialog which is similar to the Writer’s Go to Page. - -#### Writer - -Firstly, the hyphenation settings get three new options. You can now specify the size of the hyphenation zone, minimum word length and ability to stop hyphenating the last word. - -![New Hyphenation settings][5] - -*Image credit: LibreOffice Team* - -Secondly, the menu item Tools > Update > Update now updates the preview of all OLE objects. Also, if you are importing a DOCX file in LibreOffice 7.4, the paragraph borders bring more clarity. In addition, the import also improves the Rich text and checkbox contents inside the text box for DOCX imports. Moreover, Write 7.4 now supports clearing breaks from Word files improving layout consistency. - -Secondly, the menu item `Tools > Update > Update all` now updates the preview of all OLE objects. - -Also, if you are importing a DOCX file in LibreOffice 7.4, the paragraph borders bring more clarity. In addition, the import also improves the Rich text and checkbox contents inside the text box for DOCX imports. - -Moreover, Writer 7.4 now supports clearing breaks from Word files improving layout consistency. - -#### Impress - -The significant change in Impress is a new Theme tab in the Slide properties for the master slide. It contains several accent colour options which control all the sildes in your presentation. It will be a really neat feature in this version. - -![New Theme option in Slide Master Properties][6] - -### Common Updates (across all modules) - -Firstly, the most important change as a standard feature is LibreOffice now supports WEBP images officially. You can directly export and import WebP images across Writer, Calc, Draw etc. Now you do not need additional software to convert WEBP images, especially in Linux systems. - -Moreover, the support for Windows compressed enhanced meta file (EMZ/WMZ) also lands in this release. - -![New WEBP Image Support][7] - -Secondly, the Fille > Recent Documents can remember the state of the last opened document, whether it was read-only or editable. - -The 3D shapes lighting gets some bug fixes and corrections corresponding to the ODF specifications. - -### Performance Updates - -A bunch of performance boosts also makes this an important release of LibreOffice. Here’s a quick recap of the performance boosts. - -* [The Text Layout performance gets around a 60% boost][8] -* [Calc formula re-calculation][9] -* Improved performance of [VLOOKUP][10], COUNTIF and SUMIF -* [And CSV file import][11] - -That’s not all. LibreOffice 7.4 also brings a huge set of filters (export and import) for Microsoft Office 365 file types, extended PDF export options (such as a sign) via command line, updated language support and API changes. - -### Download LibreOffice 7.4 for Testing - -You can download the development version of LibreOffice 7.4 using the respective links and help to test. - -* [RPM Package for Fedora and related distributions][12] -* [DEB packages for Ubuntu, Linux Mint and others][13] -* [Windows 10, 11 – 64-bit][14] -* [macOS 64 bit][15] -* [Mac OS X – ARM and Apple SIlicon, M1][16] - -If you need assistance, you can refer to our [guide here][17] to install the development version in Linux. Make sure to report any issues or bugs in the [official bug tracker.][18] - -LibreOffice 7.4 is planned for release between Aug 15, 2022, and Aug 21, 2022. - -*[Via Release Notes][19]* - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/2022/06/libreoffice-7-4/ - -作者:[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/06/LibreOffice-7.4-Calc-now-supports-16k-columns.jpg -[2]: https://bugs.documentfoundation.org/show_bug.cgi?id=139602 -[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/Additional-formula-in-Autosum-tool.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/Height-of-Calc-Formula-bar.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-Hyphenation-settings.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-Theme-option-in-Slide-Master-Properties.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-WEBP-Image-Support.jpg -[8]: http://llunak.blogspot.com/2022/04/improving-text-layout-performance.html -[9]: https://bugs.documentfoundation.org/show_bug.cgi?id=119083 -[10]: https://bugs.documentfoundation.org/show_bug.cgi?id=146546 -[11]: https://bugs.documentfoundation.org/show_bug.cgi?id=94677 -[12]: https://www.libreoffice.org/download/download/?type=rpm-x86_64&version=7.4.0&lang=en-US -[13]: https://www.libreoffice.org/download/download/?type=deb-x86_64&version=7.4.0&lang=en-US -[14]: https://www.libreoffice.org/download/download/?type=win-x86_64&version=7.4.0&lang=en-US -[15]: https://www.libreoffice.org/download/download/?type=mac-x86_64&version=7.4.0&lang=en-US -[16]: https://www.libreoffice.org/download/download/?type=mac-aarch64&version=7.4.0&lang=en-US -[17]: https://www.debugpoint.com/2022/06/install-latest-libreoffice-ubuntu-linux/ -[18]: https://bugs.documentfoundation.org/ -[19]: https://wiki.documentfoundation.org/ReleaseNotes/7.4 diff --git a/sources/tech/20220617 Fedora Workstation-s State of Gaming – A Case Study of Far Cry 5 -2018-.md b/sources/tech/20220617 Fedora Workstation-s State of Gaming – A Case Study of Far Cry 5 -2018-.md deleted file mode 100644 index 8980a8501c..0000000000 --- a/sources/tech/20220617 Fedora Workstation-s State of Gaming – A Case Study of Far Cry 5 -2018-.md +++ /dev/null @@ -1,221 +0,0 @@ -[#]: subject: "Fedora Workstation’s State of Gaming – A Case Study of Far Cry 5 (2018)" -[#]: via: "https://fedoramagazine.org/fedora-workstation-state-of-gaming-far-cry-5/" -[#]: author: "Akashdeep Dhar https://fedoramagazine.org/author/t0xic0der/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fedora Workstation’s State of Gaming – A Case Study of Far Cry 5 (2018) -====== -![][1] - -[Liam Dawe/GamingOnLinux, PNG version by Vulphere][2], [CC BY-SA 4.0][3], via Wikimedia Commons - -First-person shooter video games are a great proving ground for strategies that make you finish on the top, reflexes that help you to shoot before getting shot and agility that adjusts you to whatever a situation throws at you. Add the open-ended nature brought in by large intricately-designed worlds into the mix, and it dials the player experience to eleven and, with that, it also becomes great evidence of what a platform is capable of. Needless to say, I have been a great fan of open-world first-person shooter games. And Ubisoft’s Far Cry series happens to be the one which remains closest to my heart. So I tried the (second) most recent release in the long-running series, Far Cry 5 which came out in 2018, on Fedora Workstation 35 to see how it performs. - -Just like in [my previous case study][4], the testing hardware has an AMD RDNA2-based GPU, where the video game was configured to the *highest possible graphical preset* to stress the hardware into performing as much as its limiting factor. To ensure that we have a fair comparison, I set up two environments – one with Windows 10 Pro 21H2 and one with Fedora Workstation 35, both having up-to-date drivers and support software such as MSI Afterburner or MangoHUD for monitoring, Steam or Lutris for video game management and OBS Studio for footage recording. Adding to that, the benchmarks were ensured to be both representatives of a common gameplay scenario and variable enough to address resolution scaling and HD textures. - -![][5] - -Before we get into some actual performance testing and comparison results, I would like to go into detail about the video game that is at the centre of this case study. Far Cry 5 is a first-person action-adventure video game developed by Ubisoft Montreal and Ubisoft Toronto. The player takes the role of an unnamed junior deputy sheriff who is trapped in Hope County, a fictional region based in Montana and has to fight against a doomsday cult to take back the county from the grasp of its charismatic and powerful leader. The video game has been well received for the inclusion of branching storylines, role-playing elements and side quests, and is optimized enough to be a defining showcase of what the underlying hardware and platform are capable of. - -### Preliminary - -#### Framerate - -The first test that was performed had a direct implication on how smooth the playing experience would be across different platforms but on the same hardware configuration. - -##### Without HD textures - -On a default Far Cry 5 installation, I followed the configuration stated above but opted out of the HD textures pack to warm up the platforms with a comparatively easier test. Following are the results. - -![][6] - -1. On average, the video game had around a whopping 59.25% more framerate on Fedora Workstation 35 than on Windows 10 Pro 21H2. -2. To ensure an overall consistent performance, both the minimum and maximum framerates were also noted to monitor dips and rises. -3. The minimum framerates on Fedora Workstation 35 were ahead by a big 49.10% margin as compared to those on Windows 10 Pro 21H2. -4. The maximum framerates on Fedora Workstation 35 were ahead by a big 62.52% margin as compared to those on Windows 10 Pro 21H2. -5. The X11 display server had roughly 0.52% more minimum framerate as compared to Wayland, which can be taken as a margin of error. -6. The Wayland display server had roughly 3.87% more maximum framerate as compared to X11, which can be taken as a margin of error. - -##### With HD textures - -On a default Far Cry 5 installation, I followed the configuration stated above, but this time I enabled the HD textures pack to stress the platforms with a comparatively harder test. Following are the results. - -![][7] - -1. On average, the video game had around a whopping 65.63% more framerate on Fedora Workstation 35 than on Windows 10 Pro 21H2. -2. To ensure an overall consistent performance, both the minimum and maximum framerates were also noted to monitor dips and rises. -3. The minimum framerates on Fedora Workstation 35 were ahead by a big 59.11% margin as compared to those on Windows 10 Pro 21H2. -4. The maximum framerates on Fedora Workstation 35 were ahead by a big 64.21% margin as compared to those on Windows 10 Pro 21H2. -5. The X11 display server had roughly 9.77% more minimum framerate as compared to Wayland, which is big enough to be considered. -6. The Wayland display server had roughly 1.12% more maximum framerate as compared to X11, which can be taken as a margin of error. - -#### Video memory usage - -The second test that was performed had less to do with the playing experience and more with the efficiency of graphical resource usage. Following are the results. - -##### Without HD textures - -On a default Far Cry 5 installation, I followed the configuration stated above but opted out of the HD textures pack to use comparatively lesser video memory across the platforms. Following are the results. - -![][8] - -1. On average, Fedora Workstation 35 uses around 31.94% lesser video memory as compared to Windows 10 Pro 21H2. -2. The Wayland display server uses roughly 1.78% more video memory as compared to X11, which can be taken as a margin of error. -3. The video game usage estimated is closer to the actual readings on Fedora Workstation 35 than they are those on Windows 10 Pro 21H2. -4. Adding this to the previous results speaks about how Fedora Workstation 35 performs better while using fewer resources. - -##### With HD textures - -On a default Far Cry 5 installation, I followed the configuration stated above but this time I enabled the HD textures pack to stress the platforms by occupying more video memory. Following are the results. - -![][9] - -1. On average, Fedora Workstation 35 uses around 22.79% lesser video memory as compared to Windows 10 Pro 21H2. -2. The Wayland display server uses roughly 2.73% more video memory as compared to X11, which can be taken as a margin of error. -3. The video game usage estimated is closer to the actual readings on Fedora Workstation 35 than they are those on Windows 10 Pro 21H2. -4. Adding this to the previous results speaks about how Fedora Workstation 35 performs better while using fewer resources. - -#### System memory usage - -The third test that was performed had less to do with the playing experience and more with how other applications can fit in the available memory while the video game is running. Following are the results. - -##### Without HD textures - -On a default Far Cry 5 installation, I followed the configuration stated above but opted out of the HD textures pack to warm up the platforms with a comparatively easier test. Following are the results. - -![][10] - -1. On average, Fedora Workstation 35 uses around 38.10% lesser system memory as compared to Windows 10 Pro 21H2. -2. The Wayland display server uses roughly 4.17% more system memory as compared to X11, which can be taken as a margin of error. -3. Adding this to the previous results speaks about how Fedora Workstation 35 performs better while using fewer resources. -4. Lesser memory usage by the video game leaves out extra headroom for other applications to run simultaneously with no compromises. - -##### With HD textures - -On a default Far Cry 5 installation, I followed the configuration stated above, but this time I enabled the HD textures pack to stress the platforms with a comparatively harder test. Following are the results. - -![][11] - -1. On average, Fedora Workstation 35 uses around 33.58% lesser system memory as compared to Windows 10 Pro 21H2. -2. The Wayland display server uses roughly 7.28% more system memory as compared to X11, which is big enough to be considered. -3. Adding this to the previous results speaks about how Fedora Workstation 35 performs better while using fewer resources. -4. Lesser memory usage by the video game leaves out extra headroom for other applications to run simultaneously with no compromises. - -### Advanced - -#### Without HD textures - -On a default Far Cry 5 installation, I followed the previously stated configuration without the HD textures pack and ran the tests with varied resolution multipliers. Following are the results. - -##### Minimum framerates recorded - -![][12] - -1. A great deal of inconsistent performance is visible on Fedora Workstation 35 with both display servers in lower resolution scales. -2. The inconsistencies seem to normalize for the resolution multipliers on and beyond the 1.1x resolution scale for Fedora Workstation 35. -3. Resolution multipliers do not seem to have a great effect on the framerate on Windows 10 Pro 21H2 as much as on Fedora Workstation 35. -4. Although Windows 10 Pro 21H2 misses out on potential performance advantages in lower resolution multipliers, it has been consistent. -5. Records on Windows 10 Pro 21H2 in the 2.0x resolution multiplier appear to be marginally better than those on Fedora Workstation 35. - -##### Maximum framerates recorded - -![][13] - -1. A small amount of inconsistent performance is visible on Fedora Workstation 35 with both display servers in lower resolution scales. -2. The inconsistencies seem to normalize for the resolution multipliers on and beyond the 1.1x resolution scale for Fedora Workstation 35. -3. Resolution multipliers change starts noticeably affecting performance on Windows 10 Pro 21H2 on a 1.6x scale, beyond which it falls greatly. -4. Although Windows 10 Pro 21H2 misses out on potential performance advantages in lower resolution multipliers, it has been consistent. -5. Records on Windows 10 Pro 21H2 in the 1.6x resolution multiplier and beyond appear to be better than those on Fedora Workstation 35. - -##### Average framerates recorded - -![][14] - -1. A minor amount of inconsistent performance is visible on Fedora Workstation 35 with both display servers in lower resolution scales. -2. The inconsistencies seem to normalize for the resolution multipliers on and beyond the 1.1x resolution scale for Fedora Workstation 35. -3. Resolution multipliers change starts noticeably affecting performance on Windows 10 Pro 21H2 on a 1.6x scale, beyond which it falls greatly. -4. Although Windows 10 Pro 21H2 misses out on potential performance advantages in lower resolution multipliers, it has been consistent. -5. Records on Windows 10 Pro 21H2 in the 1.9x resolution multiplier and beyond appear to be better than those on Fedora Workstation 35. - -#### With HD textures - -On a default Far Cry 5 installation, I followed the previously stated configuration with the HD textures pack and ran the tests with varied resolution multipliers. Following are the results. - -##### Minimum framerates recorded - -![][15] - -1. A great deal of inconsistent performance is visible on Fedora Workstation 35 with both display servers in lower resolution scales. -2. The inconsistencies seem to normalize for the resolution multipliers on and beyond the 1.5x resolution scale for Fedora Workstation 35. -3. Resolution multipliers do not seem to have a great effect on the framerate on Windows 10 Pro 21H2 as much as on Fedora Workstation 35. -4. Although Windows 10 Pro 21H2 misses out on potential performance advantages in lower resolution multipliers, it has been consistent. -5. Records on Windows 10 Pro 21H2 in the 2.0x resolution multiplier appear to be marginally better than those on Fedora Workstation 35. - -##### Maximum framerates recorded - -![][16] - -1. A great deal of inconsistent performance is visible on Fedora Workstation 35 with both display servers in lower resolution scales. -2. The inconsistencies seem to normalize for the resolution multipliers on and beyond the 1.0x resolution scale for Fedora Workstation 35. -3. Resolution multipliers change starts noticeably affecting performance on Windows 10 Pro 21H2 on a 1.6x scale, beyond which it falls greatly. -4. Although Windows 10 Pro 21H2 misses out on potential performance advantages in lower resolution multipliers, it has been consistent. -5. Records on Windows 10 Pro 21H2 in the 1.6x resolution multiplier and beyond appear to be better than those on Fedora Workstation 35. - -##### Average framerates recorded - -![][17] - -1. A minor amount of inconsistent performance is visible on Fedora Workstation 35 with both display servers in lower resolution scales. -2. The inconsistencies seem to normalize for the resolution multipliers on and beyond the 1.1x resolution scale for Fedora Workstation 35. -3. Resolution multipliers change starts noticeably affecting performance on Windows 10 Pro 21H2 on a 1.6x scale, beyond which it falls greatly. -4. Although Windows 10 Pro 21H2 misses out on potential performance advantages in lower resolution multipliers, it has been consistent. -5. Records on Windows 10 Pro 21H2 in the 1.9x resolution multiplier and beyond appear to be better than those on Fedora Workstation 35. - -### Inferences - -If the test results and observations baffle you, please allow me to tell you that you are not the only one who feels like that. For a video game that was created to run on Windows, it is hard to imagine how it ends up performing way better on Fedora Workstation 35, all while using a much lesser amount of system resources at all times. Special attention has been given to noting down the highest highs and lowest lows of framerates to ensure that consistent performance is made available. - -But wait a minute – how is it that Fedora Workstation 35 manages to make this possible? Well, while I do not have a clear idea of what exactly goes on behind the scenes, I do have a certain number of assumptions that I suspect might be the reasons attributing to such brilliant visuals, great framerates and efficient resource usage. These can potentially act as starting points for us to understand the features of Fedora Workstation 35 for compatibility layers to make use of. - -1. Effective caching of graphical elements and texture assets in the video memory allows for keeping only those data in the memory which are either actively made use of or regularly referenced. The open-source AMD drivers help Fedora Workstation 35 make efficient use of the available frame buffer. -2. Quick and frequent cycling of data elements from the video memory helps to bring down total occupancy per application at any point in time. The memory clocks and shader clocks are left at the application’s disposal by the open-source AMD drivers, and firmware bandwidth limits are all but absent. -3. With AMD Smart Access Memory (SAM) enabled, the CPU is no longer restricted to using only 256MiB of the video memory at a time. A combination of leading-edge kernel and up-to-date drivers makes it available on Fedora Workstation 35 and capable of harnessing the technology to its limits. -4. Extremely low system resource usage by supporting software and background services leaves out a huge majority of them to be used by the applications which need it the most. Fedora Workstation 35 is a lightweight distribution, which does not get in your way and puts the resources on what’s important. -5. Faster loading of data elements to and from the physical storage devices to the system memory is greatly enhanced with the use of high-capacity modern copy-on-write file systems like BTRFS and journaling file systems like EXT4, which happens to be the suggested file system for Fedora Workstation 35. - -Performance improvements like these only make me want to indulge more in testing and finding out what else Fedora Workstation is capable of. Do let me know what you think in the comments section below. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/fedora-workstation-state-of-gaming-far-cry-5/ - -作者:[Akashdeep Dhar][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://fedoramagazine.org/author/t0xic0der/ -[b]: https://github.com/lkxed -[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/gaming-2-816x345.jpg -[2]: https://commons.wikimedia.org/wiki/File:Steam_Deck_(front).png -[3]: https://creativecommons.org/licenses/by-sa/4.0 -[4]: https://fedoramagazine.org/fedora-workstations-state-of-gaming/ -[5]: https://user-images.githubusercontent.com/49605954/172998217-ea8b7adf-1f83-4f46-89d1-9406387542c3.png -[6]: https://user-images.githubusercontent.com/49605954/172686721-eb2469c0-a81f-4e32-a4b3-aabbdb0035a4.svg -[7]: https://user-images.githubusercontent.com/49605954/172686709-8c5a17e6-9e91-4a21-8c8e-95fc9606853c.svg -[8]: https://user-images.githubusercontent.com/49605954/172686723-d03b6a2f-7950-416c-9256-cae1e0a15e2f.svg -[9]: https://user-images.githubusercontent.com/49605954/172686713-2b45753b-92ad-4ecf-801f-b8e5e2bd7778.svg -[10]: https://user-images.githubusercontent.com/49605954/172686727-dc6feb71-30ef-4792-90c6-72a3c1f95da7.svg -[11]: https://user-images.githubusercontent.com/49605954/172686719-6c9f621c-a41b-454e-92b3-7cf9a5f79502.svg -[12]: https://user-images.githubusercontent.com/49605954/172686748-bcba2e85-9f3e-4331-9338-238748424081.svg -[13]: https://user-images.githubusercontent.com/49605954/172686758-36422b22-b66c-4ee5-bb74-b7bdf3d4d02a.svg -[14]: https://user-images.githubusercontent.com/49605954/172686753-f20e057d-c631-4aa7-9366-0d84dd227840.svg -[15]: https://user-images.githubusercontent.com/49605954/172686730-450b7d5b-8e13-49a8-8967-cb820514ec28.svg -[16]: https://user-images.githubusercontent.com/49605954/172686745-1b4fd578-91b9-4080-8049-05736774f484.svg -[17]: https://user-images.githubusercontent.com/49605954/172686739-1139158c-0e85-484c-ba42-d3ddac07419a.svg diff --git a/sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md b/sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md deleted file mode 100644 index 01184f0ba4..0000000000 --- a/sources/tech/20220704 New Features in the Upcoming Linux Mint 21 Release.md +++ /dev/null @@ -1,141 +0,0 @@ -[#]: subject: "New Features in the Upcoming Linux Mint 21 Release" -[#]: via: "https://itsfoss.com/linux-mint-21-features/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -New Features in the Upcoming Linux Mint 21 Release -====== -This is a continually updated article to share the latest features added to the upcoming Linux Mint 21 release. - -You probably already know that Linux Mint is based on the long-term support (LTS) release of Ubuntu. - -Ubuntu 22.04 LTS was released a few months ago. This means that a new major version of Linux Mint is to follow sooner or later. - -And indeed the next major version, Linux Mint 21, is already in development. While there is no official release date announced, you should expect it to arrive by the end of July’22 or early August. - -### Linux Mint 21 is codenamed Venessa - -![linux mint 21][1] - -Every Linux Mint release, be it minor or major, has a codename. It is a female name normally of Greek or Latin release. - -Like Ubuntu, there is a pattern in the codename in Mint also. The codenames are in alphabetically increasing order for the major release but they use the same alphabet for the minor releases. - -For example, Mint 20 was called Ulyana, 20.1 Ulyssa, 20.2 Uma and 20.3 Una. Mint 19 series had codenamed starting with T. - -Mint 21 codename starts with V and the first release of the 21 series is called Venessa. - -There will be at least 3 more minor releases in the Mint 21 series and they will be released every six months until the next Mint major release in 2024. They all will have a codename starting with the letter V. - -### New features in Mint 21 Venessa - -There is not a lot of information available to the public about the features in Linux Mint 21. What I am listing here is based on the official updates, forums and GitHub repositories. I’ll be adding more as I test the beta version when it is released. - -#### New upgrade tool - -Existing Mint 20.3 users should be able to upgrade to Mint 21 relatively easier thanks to the [new upgrade tool][2]. - -![New Mint Upgrade tool in Linux Mint 21][3] - -Earlier, upgrading to a major version involved using the terminal. Now everything should be done with a few mouse clicks in the new GUI tool. - -It will show what packages have been upgraded and which packages won’t be upgraded. It supports several languages. It even checks if your PPA and custom repositories are supported in the new version. - -![New Mint Upgrade tool in Linux Mint 21][4] - -Overall an excellent tool to ease the upgrade process. It’s good to see that Mint focuses on developing graphical tools to help its users. - -#### New Bluetooth application - -Though not developed by the Mint team, Mint 21 will feature the Blueman tool for managing the Bluetooth settings. - -![New Bluetooth settings in Linux Mint 21][5] - -What’s wrong with the existing Blueberry tool? Nothing really. But since it is not compatible with GNOME 42 (which is the base for the next version of Cinnamon desktop). As lead developer, Clem [mentioned][6], “There is also frustration upstream from the GNOME Bluetooth development team who simply does not want to have users from other desktops than GNOME and so Blueberry will probably get discontinued.” - -Blueberry had a simple interface whereas Blueman has plenty of settings you’ll hardly need. - -#### Timeshift becomes a Mint tool - -Mint team has been recommending Timeshift for system settings backups for some time now. It almost felt a part of the Mint applications suite. I actually[mistakenly said that in one of the YouTube videos as well][7]. - -But the good news is that the Mint team has taken over the development of the Timeshift application. It is now part of the XApp and you should see it even more integrated within the Linux Mint ecosystem. - -There are already a few developments to it. For example, in rsync mode, Timeshift now calculates the required space for the next snapshot and skips it if performing that snapshot leads to less than 1GB of free space on the disk. - -![timeshift mint21][8] - -#### WebP image support - -WebP image format is getting popular these days among website owners. They are smaller in size without compromising on quality. - -If you try to download images from the internet and they are in WebP format, they are opened with a web browser. You’ll have to install additional packages for [WebP support in other Linux distributions][9]. - -Mint 21 will have WebP support enabled by default. You can open the WebP images in the image viewer and the images will be displayed with Thumbnail in the Nemo file manager. - -#### No negative impact on dual boot - -It was noticed in Ubuntu 22.04 release that Windows disappeared from the Grub menu in dual boot systems. It was because the os-prober feature was disabled by default in version 2.6 of [Grub bootloader][10]. - -Mint team has correctly decided to enable the os-prober by default. This means that the Grub bootloader with Mint 21 should be able to properly detect Windows (and other OS) as it used to previously. - -#### No surprise killing of applications (like Ubuntu 22.04) - -Ubuntu 22.04 introduced the [systemd-oomd][11], a userspace out-of-memory (OOM) killing service. This service takes “corrective action before an OOM occurs in the kernel space”. - -So when the system is struggling with memory pressure, this service jumps into action to ensure that system keeps running. How does it do that? By killing some running applications. - -But that’s created a problem as[Ubuntu users complained of random closing of running applications][12]. - -For this reason, Mint team has decided against including this ‘performance improving’ feature in the upcoming Mint 21. - -How does that impact you as an end user? Well, if you tried downloading some images from the internet, it might be in - -#### AppImage support as it is - -It looks like Mint 21 is undoing a lot of things that Ubuntu 22.04 have done. The libfuse library has been removed from Ubuntu 22.04 LTS and hence you [cannot run AppImage applications][13] unless you install it explicitly. - -The Mint team takes note of this pain point and has included libfuse2 and libfuse3-3 by default in Mint 21. - -#### Newer software and kernel - -Of course, Mint 21 will have newer versions of many popular applications and Kernel 5.15 LTS. - -The newer version of the Cinnamon desktop environment should bring visual changes as well. More on that when the new version is out. - -#### More to come … - -Mint 21 is under heavy development. While you won’t see regular updates from the Mint team on its development, we’ll have a clearer picture of what’s coming when the beta version is released. - -Meanwhile, do express your views on Linux Mint 21. What kinds of features are you expecting in the new version? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/linux-mint-21-features/ - -作者:[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/07/linux-mint-21.png -[2]: https://github.com/linuxmint/mintupgrade -[3]: https://itsfoss.com/wp-content/uploads/2022/07/mintupgrade.png -[4]: https://itsfoss.com/wp-content/uploads/2022/07/mintupgrade2.png -[5]: https://itsfoss.com/wp-content/uploads/2022/07/blueman-800x458.png -[6]: https://blog.linuxmint.com/?p=4323 -[7]: https://www.youtube.com/watch?v=XWrZvRnAda0&t=45s -[8]: https://itsfoss.com/wp-content/uploads/2022/07/timeshift_mint21-800x648.png -[9]: https://itsfoss.com/webp-ubuntu-linux/ -[10]: https://itsfoss.com/what-is-grub/ -[11]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html -[12]: https://www.omgubuntu.co.uk/2022/06/ubuntu-22-04-systemd-oom-killing-apps -[13]: https://itsfoss.com/cant-run-appimage-ubuntu/ diff --git a/sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md b/sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md deleted file mode 100644 index 00fc187265..0000000000 --- a/sources/tech/20220716 Ubuntu Studio 22.04 LTS – New Features and Release Details.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Ubuntu Studio 22.04 LTS – New Features and Release Details" -[#]: via: "https://www.debugpoint.com/ubuntu-studio-22-04-lts/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu Studio 22.04 LTS – New Features and Release Details -====== -A list of new features and enhancements of the Ubuntu Studio 22.04 LTS “Jammy Jellyfish”. - -[Ubuntu Studio][1] is the official Ubuntu flavour dedicated to the creators who mainly work with photographs, audio and video. This official distribution brings almost all popular open-source creative software pre-loaded in its ISO image to give you a ready and stable system to kick-start your professional work. - -![Ubuntu Studio 22.04 LTS Desktop][2] - -### Ubuntu Studio 22.04 LTS – New Features - -Like all the official Ubuntu flavours, Ubuntu Studio 22.04 LTS is based on [Ubuntu 22.04 LTS “Jammy Jellyfish][3]“.The Linux Kernel 5.15 LTS powers Ubuntu Studio 22.04, a stable Kernel for all the current range of modern hardware lineups. - -Most creative work usually happens in high-end and modern machines; hence the Kernel version is significant in Ubuntu Studio. The [Linux Kernel 5.15 LTS][4] supports Intel and AMD’s current CPU and GPU lineups. For example, this Kernel brings AMD PTDMA driver for high-bandwidth I/O operations and many more essential updates, which are significant for creative work in modern hardware. - -In addition, the customised [KDE Plasma 5.24][5] with KDE Framework 5.92 brings a friendly user interface with Ubuntu Studio’s native dark theme and icon theme. The KDE Plasma desktop is tweaked with a top panel with shortcuts and necessary system tray widgets to make all the professional work more streamlined. - -Moreover, if you are migrating from Ubuntu Studio 20.04 LTS Focal Fossa to this version, KDE Plasma is a new desktop that the user will experience. Because Ubuntu Studio 20.04 LTS was the last version with the Xfce desktop environment. And since then, Ubuntu Studio has moved on to the KDE Plasma desktop environment for better modern tech and performance support. - -#### Application Stack - -The application stack of Ubuntu Studio 22.04 LTS brings the latest stable releases. The Studio Controls (a native control centre for Ubuntu Studio) bumped to version 2.3.0 with improved mixers and plugins with bug fixes. - -![Studio Controls][6] - -Mainly for Blender, KDenlive and Ardour because these super impressive open-source applications are very active in development. In addition, the graphics, video and audio software suite are updated with their latest stable versions. Moreover, you may notice a massive upgrade of features and enhancements if you make a feature comparison with the last LTS release. - -However, this is not the complete list of the major ones we put up here. - -* Blender v3.0.1 (3D computer graphics) -* KDenlive v21.12.3 (Video editor) -* Krita v5.0.2 (Raster graphics drawing and animation) -* Gimp v2.10.24 (Raster graphics drawing) -* Ardour v6.9 ([Digital audio workstation][7]) -* Scribus v1.5.7 (Desktop publishing) -* Darktable v3.6.0 (RAW image and photographs management) -* Inkscape v1.1.2 (Vector graphics editor) -* Carla v2.4.2 (Audio plugin host) -* Studio Controls v2.3.0 (Audio manager and control) -* OBS Studio v27.2.3 (Streaming application) -* MyPaint v2.0.1 (Simple drawing) - -Besides, one of the significant changes in Jammy Jellyfish is the introduction of [Pipewire][8] 0.3.48 (compared to Focal Fossa). This modern audio and video streaming server tech will help many users with advanced audio controls. But it may require command line tweaks to manage it. I am not sure whether the Studio team would bring additional settings in the Studio Control utility in the future to manage Pipewire. - -Finally, the newly designed logo from the Ubuntu Studio team aligning with Canonical’s branding looks impressive and stands out in this release. - -![Ubuntu Studio New Logo][9] - -### Download and Upgrade - -The above suite of applications makes the Ubuntu Studio 22.04 LTS ISO size to whooping 4GB+ (it won’t fit in a single DVD, use USB). If you want to try it out, you can download the official image using the link below. - -* ISO – [ubuntustudio-22.04-dvd-amd64.iso][10] -* Torrent and other forms of download [https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/][11] - -A word of caution if you plan to upgrade from Ubuntu Studio 20.04 LTS to this new version. Because of the desktop environment change from Xfce to KDE Plasma, you should not upgrade from Ubuntu Studio 20.04 LTS to Ubuntu 22.04 LTS. It is not supported. - -Instead, you should go ahead with a fresh installation. It may be a bit complex and challenging to do a fresh install because you already have a system set up with many plugins, settings and established workflow for your audio and video work. But I recommend it because it allows you to clean up and start fresh with Ubuntu Studio 22.04 LTS with a new set of applications and desktop environment. - -*[Via release notes.][12]* - -*Feature image by Milad Fakurian on Unsplash.* - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/ubuntu-studio-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://ubuntustudio.org/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-22.04-LTS-Desktop.jpg -[3]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/ -[4]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/ -[5]: https://www.debugpoint.com/2022/03/kde-plasma-5-24-review/ -[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Studio-Controls.jpg -[7]: https://www.debugpoint.com/2018/08/3-best-daw-digital-audio-workstation-apps-ubuntu-linux/ -[8]: https://gitlab.freedesktop.org/pipewire/pipewire -[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-New-Logo.jpg -[10]: https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/ubuntustudio-22.04-dvd-amd64.iso -[11]: https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/ -[12]: https://ubuntustudio.org/ubuntu-studio-22-04-lts-release-notes/ From dae2380e9396ecc50aaec2bc7eac29f03d505037 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 17 Jul 2022 00:16:17 +0800 Subject: [PATCH 0410/3123] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220524 The Basic Concepts of Shell Scripting.md | 14 +++++++------- ...220602 Creating a GitHub Action from Scratch.md | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sources/tech/20220524 The Basic Concepts of Shell Scripting.md b/sources/tech/20220524 The Basic Concepts of Shell Scripting.md index e3ed827d57..c3c244013e 100644 --- a/sources/tech/20220524 The Basic Concepts of Shell Scripting.md +++ b/sources/tech/20220524 The Basic Concepts of Shell Scripting.md @@ -50,7 +50,7 @@ $man date The redirection operator is really useful when you want to capture the output of a command in a file or redirect to a file. -| - | - | +| Command | Description | | :- | :- | | $ls -l /usr/bin >file | default stdout to file | | $ls -l /usr/bin 2>file | redirects stderr to file | @@ -78,7 +78,7 @@ This creates a directory for 12 months from 2009 to 2011. An environment variable is a dynamic-named value that can affect the way running processes will behave on a computer. This variable is a part of the environment in which a process runs. -| - | - | +| Command | Description | | :- | :- | | printenv | Print part of all of the environment | | set | set shell options | @@ -89,7 +89,7 @@ An environment variable is a dynamic-named value that can affect the way running Network commands are very useful for troubleshooting issues on the network and to check the particular port connecting to the client. -| - | - | +| Command | Description | | :- | :- | | ping | Send ICMP packets | | traceroute | Print route packets to a network | @@ -105,7 +105,7 @@ interface stats | Grep commands are useful to find the errors and debug the logs in the system. It is one of the powerful tools that shell has. -| - | - | +| Command | Description | | :- | :- | | grep -h ‘.zip’ file.list | . is any character | | grep -h ‘^zip’ file.list | starts with zip | @@ -118,7 +118,7 @@ Grep commands are useful to find the errors and debug the logs in the system. It Here are some examples of quantifiers: -| - | - | +| Command | Description | | :- | :- | | ? | match element zero or one time | | * | match an element zero or more times | @@ -129,7 +129,7 @@ Here are some examples of quantifiers: Text processing is another important task in the current IT world. Programmers and administrators can use the commands to dice, cut and process texts. -| - | - | +| Command | Description | | :- | :- | | cat -A $FILE | To find any CTRL character introduced | | sort file1.txt file2.txt file3.txt > @@ -151,7 +151,7 @@ by numeric | In Linux, we can go back to our history of commands by either using simple commands or control options. -| - | - | +| Command | Description | | :- | :- | | clear | clears the screen | | history | stores the history | diff --git a/sources/tech/20220602 Creating a GitHub Action from Scratch.md b/sources/tech/20220602 Creating a GitHub Action from Scratch.md index 550971f29d..66530640b2 100644 --- a/sources/tech/20220602 Creating a GitHub Action from Scratch.md +++ b/sources/tech/20220602 Creating a GitHub Action from Scratch.md @@ -69,7 +69,7 @@ An action has essentially two components (Figure 4). One is a YAML file called a Let us look at what exactly these two components do. -The*action.yml* file stores the metadata about the action you are building. It stores details like the name of the action, what are the inputs it needs and the outputs it delivers. It also defines whether the source code of the action is in JavaScript that can be run using Node12, or is a Docker image. It also contains information about where to find the JavaScript files or the Docker image to run the action. +The *action.yml* file stores the metadata about the action you are building. It stores details like the name of the action, what are the inputs it needs and the outputs it delivers. It also defines whether the source code of the action is in JavaScript that can be run using Node12, or is a Docker image. It also contains information about where to find the JavaScript files or the Docker image to run the action. The source code part of your action contains the actual logic of it. This can be JavaScript files that can run using Node12, a Dockerfile that you are going to build when an action runs, or it can simply be a Docker image that you refer to. It will have access to the event payload that triggered the workflow and also the context of the workflow run through environment variables (ENV). You can easily call GitHub’s APIs or other APIs from within your source code as a part of your logic, to accomplish the action’s task. From bafba54a483674ff6e8bbbd661059a6bba8880dd Mon Sep 17 00:00:00 2001 From: imgradeone Date: Sun, 17 Jul 2022 10:36:52 +0800 Subject: [PATCH 0411/3123] =?UTF-8?q?=E8=AE=A4=E9=A2=86=E6=96=87=E7=AB=A0?= =?UTF-8?q?=20Cutefish=20OS=20Halts=20Development...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Cutefish OS Halts Development and Its Future is Uncertain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md b/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md index 0befc0d601..73831e94a1 100644 --- a/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md +++ b/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/cutefish-os-development-halts/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "imgradeone" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ea2e3c35f992f446b0317778849725d156ebd17c Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 17 Jul 2022 11:28:01 +0800 Subject: [PATCH 0412/3123] Translating --- ...e- How to Share A Folder Between Ubuntu-Linux and Windows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md b/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md index 04679c2ef3..4958aab4d7 100644 --- a/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md +++ b/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f0677ee0a42a8242e953069d41b6fad6566134e9 Mon Sep 17 00:00:00 2001 From: perfiffer Date: Sun, 17 Jul 2022 16:04:14 +0800 Subject: [PATCH 0413/3123] translated by perfiffer --- ...1017 How I use open source to play RPGs.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) rename {sources => translated}/tech/20211017 How I use open source to play RPGs.md (70%) diff --git a/sources/tech/20211017 How I use open source to play RPGs.md b/translated/tech/20211017 How I use open source to play RPGs.md similarity index 70% rename from sources/tech/20211017 How I use open source to play RPGs.md rename to translated/tech/20211017 How I use open source to play RPGs.md index 0c4ebf3b1e..46c558ad2e 100644 --- a/sources/tech/20211017 How I use open source to play RPGs.md +++ b/translated/tech/20211017 How I use open source to play RPGs.md @@ -7,34 +7,34 @@ [#]: publisher: " " [#]: url: " " -How I use open source to play RPGs +我如何使用开源玩 RPG 游戏 ====== -Find an open source tool for almost every element of role-playing games. +为角色扮演游戏的所有元素找到一个开源工具。 ![Dice as a random number generator][1] -I play a lot of tabletop role-playing games (RPGs), in terms of both frequency and variety. Generally, I prefer playing RPGs in person with friends, but over the past two years, I've been playing online. +我玩过很多桌面角色扮演游戏(RPG),无论是频率还是种类。一般来说,我更喜欢和朋友一起玩RPG,但在过去的 2 年里,我一直在玩网络游戏。 -At first, I wasn't sure how to run a long-term game online. I knew there were a lot of tools out there to make it possible, but none of them interested me until I discovered the world of open source online tabletop gaming. With a small collection of open source applications, I've been able to run all my games exclusively on open source. +起初,我不确定如何在线运行长期游戏。我知道有很多的工具可以实现,但直到我发现开源在线桌面游戏的世界之前,我都对此不敢兴趣。通过一小部分开源应用程序,我已经能够在开源平台上运行我的所有游戏。 -It's a good time of year for it, too, because it was recently [Free RPG Day][2]. On FreeRPG Day, publishers across the tabletop role-playing game industry release, free of charge, games to encourage players to try new games and new adventures. Although it was canceled in 2020, it's back this year as a live event with some virtual support by way of free RPG sampler downloads from [Dungeon Crawl Classics][3] and [Paizo][4]. +这也是一年中的好时机,因为最近是[免费 RPG 日][2]。在免费 RPG 日,桌面角色扮演游戏行业的发型商免费发布游戏,鼓励玩家尝试新游戏和新冒险。尽管它在 2020 年被取消,但今年它又作为现场活动回归,并通过 [Dungeon Crawl Classics][3] 和 [Paizo][4] 的免费 RPG 采样器下载提供了一些虚拟支持。 -And if the event's virtual offerings aren't enough, I've compiled a list of [5 open source tabletop RPGs you may not have tried yet][5]. +如果活动的虚拟产品还不够,我整理了一份[你可能尚未尝试过的 5 个开源桌面 RPG 游戏列表][5]。 -When you're ready to start playing, try some of these open source tools and see how much they can enhance your gameplay. +当你准备好开始玩游戏时,请尝试其中一些开源工具,看看它们能在多大程度上增强你的游戏玩法。 -### Chat +### 聊天 +在线 RPG 游戏最基本的(从技术上讲,也是唯一的)要求是交流。这是游戏的媒介:玩家需要一种说话的途径。 -The most basic—and technically speaking, the only—requirement for an RPG game online is communication. It's the medium of the game: players need a way to talk. - -There are a few good options for this. I find that [Mumble][6] is the tool with the lowest demand on bandwidth. It's a voice-only chat application that can use the very efficient Opus codec to get everyone talking for hours at a time without interruption. +有几个不错的选择。我发现 [Mumble][6] 是对带宽需求最低的工具。这是一个纯语音聊天应用程序,可以使用非常高效的 Opus 编解码器让每个人一次交谈数小时而不会中断。 ![Mumble client][7] CC BY-SA Seth Kenlon -There are public instances all around the world, so after downloading the Mumble client, you can join any of them that are open and use it to run a game online. There's a push-to-talk setting, so you can cut out background noise, which is a welcome feature when the rest of your household doesn't halt all of its activity just for your tabletop session. +世界各地都有公共实例,所以下载 Mumble 客户端后,你可以加入其中任何一个开放的实例,并使用它来在线运行游戏。有一个按键通话设置,你可以用此来消除背景噪音,当你的其他家庭成员在进行其它工作而不想被你的桌面会话打扰时,这个功能将会非常实用。 + +还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于无关的聊天,尝试保持口语游戏的主题。 -There's also a text chat client for asides. My gaming groups usually use the chat to post links relevant to the game, but you could also use it for off-topic chatter in an attempt to keep the spoken game on topic. If your players prefer facial cues or are just used to video chat web apps, then [Jitsi][8] is an excellent substitute for in-person gatherings around a table. Jitsi is mostly like every other video chat application you've ever used, except possibly even easier. You can set up a room, invite friends, keep out strangers, and play for hours. Muting and going off-camera are intuitive, the interface is attractive, and new features are being developed and introduced regularly. From 7dc7430ea7d8e8419a7d52ba5aa887439fcc0bce Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 17 Jul 2022 17:03:48 +0800 Subject: [PATCH 0414/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Folder Between Ubuntu-Linux and Windows.md | 94 ------------------- ...Folder Between Ubuntu-Linux and Windows.md | 94 +++++++++++++++++++ 2 files changed, 94 insertions(+), 94 deletions(-) delete mode 100644 sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md create mode 100644 translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md diff --git a/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md b/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md deleted file mode 100644 index 4958aab4d7..0000000000 --- a/sources/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "Guide: How to Share A Folder Between Ubuntu/Linux and Windows" -[#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Guide: How to Share A Folder Between Ubuntu/Linux and Windows -====== -This beginner’s guide explains how you can quickly share a folder in Ubuntu/Linux. - -Sharing a folder in Ubuntu/Linux and accessing the same over the network in other OS such as Windows is not that difficult. To perform this, the required packages are not installed by default in Ubuntu. However, you can bring up the install wizard to install the required software automatically to share a folder. - -This [guide][1]applies to all Ubuntu versions (including [22.04][2], 20.04, 18.04, 19.10 and upcoming – unless there are major changes in how this function is designed). - -### Steps to Share a Folder in Ubuntu - -**Step 1:** Open the file manager and right-click on the folder you want to share. Click on the option “Local Network Share” in the context menu. - -![Local Network Share Option][3] - -**Step 2:** Click on the Share this folder checkbox in the Folder Sharing dialog. - -This would install [Samba][4]packages in your system. Samba is used to share files and printers over the network between Windows and Unix systems. - -![Folder Sharing Option - Install Samba][5] - -**Step 3:** After samba installation, do the following to share a folder or directory. - -* Select the checkbox Share this folder. -* Input a share name. This would be the name you would be seeing from another system, e.g. Windows. Try not to use any name with spaces. -* (Optional) You can control the write permission to the shared folder and allow guest access by checking the corresponding option. -* If you allow guest access, people without credentials can access the shared folder. So be cautious. -* If you want your users to enter their usernames and password, open the terminal and run the below command. - -``` -sudo smbpasswd -a Username -``` - -**username** should be a valid user of the respective Ubuntu system. - -You should be all set now to access the folder/directory. - -### How to Access the Shared Folder - -To access the shared folder from Ubuntu/Linux system, you need your system’s IP address/hostname. To do that, open `System Settings -> Wifi -> Get the IP address`. - -![IP Address Settings][6] - -This step may vary if you are running different Linux distribution other than Ubuntu. You may also want to run `ip addr` to get the IP address as below. - -![Finding out IP Address in Linux][7] - -Once you have the address, you can open File Manager in Ubuntu/Linux systems and type below in the address bar. You should change the IP address based on your system. - -You can now see that the shared folder is shown with a tiny shared icon that denotes a network share folder. - -![Share Folder][8] - -To access the shared folder from the **Windows system**, Open Run (Windows Key+R) or open Explorer and enter the below address. You should change the IP address and Folder name based on your system - -``` -\\192.168.43.19\Folder -``` - -You should be able to view the contents of the shared folder and modify it based on permission given. - -### Wrapping Up - -I have shown you how to share a folder from Ubuntu and access Windows systems via IP address. You can also follow the same steps for other Linux distributions. Do let me know in the comment box below if this article helped you. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/ - -作者:[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/category/tutorials/ -[2]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/Local-Network-Share-Option.jpg -[4]: https://en.wikipedia.org/wiki/Samba_(software) -[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Folder-Sharing-Option-Install-Samba-1024x552.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/IP-Address-Settings.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Finding-out-IP-Address-in-Linux.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/Share-Folder-1.jpg diff --git a/translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md b/translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md new file mode 100644 index 0000000000..c0f81ae26e --- /dev/null +++ b/translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md @@ -0,0 +1,94 @@ +[#]: subject: "Guide: How to Share A Folder Between Ubuntu/Linux and Windows" +[#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +指南:如何在 Ubuntu/Linux 和 Windows 之间共享文件夹 +====== +本初学者指南解释了如何在 Ubuntu/Linux 中快速共享一个文件夹。 + +在 Ubuntu/Linux 中共享一个文件夹并在其他操作系统(如 Windows)中通过网络访问并不难。默认情况下,Ubuntu 并没有安装所需的软件包。但是,你可以打开安装向导来自动安装所需的软件。 + +本[指南][1]适用于所有 Ubuntu 版本(包括 [22.04][2]、20.04、18.04、19.10 以及即将发布的版本 -- 除非此功能的设计发生重大的变化)。 + +### Ubuntu 中共享文件夹的步骤 + +**步骤 1:** 打开文件管理器,右键单击共享的文件夹。点击上下文菜单中的“本地网络共享”选项。 + +![本地网络共享选项][3] + +**步骤 2:** 在文件夹共享对话框中点击共享文件夹复选框。 + +这将在你的系统中安装 [Samba][4] 软件包。Samba 用于在 Windows 和 Unix 系统之间通过网络共享文件和打印机。 + +![文件夹共享选项 - 安装 Samba][5] + +**步骤 3:** 安装 Samba 后,执行以下操作共享文件夹或目录。 + + * 选中共享文件夹复选框。 + * 输入共享名称。这将是你从另一个系统(如 Windows)看到的名称。尽量不要使用任何带有空格的名称。 + * (可选)通过勾选相应选项,你可以控制共享文件夹的写入权限,并允许访客访问。 + * 如果你允许访客访问,则没有凭据的人可以访问共享文件夹。所以要谨慎。 + * 如果你希望用户输入用户名和密码,打开终端并运行以下命令。 + +``` +sudo smbpasswd -a 用户名 +``` + +**用户名** 应该是对应 Ubuntu 系统的有效用户。 + +现在,你应该已经设置好了共享的文件夹或目录。 + +### 如何访问共享文件夹 + +从 Ubuntu/Linux 系统中访问共享文件夹,你需要系统的 IP 地址或主机名。为此,打开`系统设置 -> Wifi -> 获取 IP 地址`。 + +![IP 地址设置][6] + +如果你运行的是 Linux 发行版不是 Ubuntu,此步骤略有不同。你可能想运行 `ip addr` 来获取 IP 地址,如下所示: + +![在 Linux 中查找 IP 地址][7] + +一旦你获得 IP 地址,就可以在 Ubuntu/Linux 系统中打开文件管理器,然后在地址栏中输入以下内容。注意:你应该修改为你系统的 IP 地址。 + +你现在可以看到共享文件夹上面显示了一个小共享图标,表示网络共享文件夹。 + +![共享文件夹][8] + +要在 **Windows 系统**访问共享文件夹,打开运行(Windows 键 + R)或打开资源管理器,输入以下地址。注意:你应该修改为你系统的 IP 地址和文件夹名称。 + +``` +\\192.168.43.19\Folder +``` + +你应该能够查看共享文件夹的内容,并根据授予的权限修改它。 + +### 总结 + +我已经向你展示了如何从 Ubuntu 共享一个件夹,并通过 IP 地址在 Windows 系统中访问。对于其他 Linux 发行版,你也可以执行相同的步骤。如果本文对你有帮助,在下面的评论框中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/tutorials/ +[2]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/Local-Network-Share-Option.jpg +[4]: https://en.wikipedia.org/wiki/Samba_(software) +[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Folder-Sharing-Option-Install-Samba-1024x552.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/IP-Address-Settings.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Finding-out-IP-Address-in-Linux.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/Share-Folder-1.jpg From e39741b8ccd2aa642e390c52e11d92702f648c61 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 17 Jul 2022 17:03:50 +0800 Subject: [PATCH 0415/3123] RP @lkxed https://linux.cn/article-14837-1.html --- ...hone Project -NOTKIA- for a Name Change.md | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) rename {translated/news => published}/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md (66%) diff --git a/translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md b/published/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md similarity index 66% rename from translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md rename to published/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md index faaab071fa..927aaa8b2f 100644 --- a/translated/news/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md +++ b/published/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md @@ -3,25 +3,26 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14837-1.html" -诺基亚要求一个开源 Linux 手机项目 “NOTKIA” 改名字 +诺基亚勒令一个开源 Linux 手机项目 “NOTKIA” 改名字 ====== -一个开源项目想要为你带来一款诺基亚风格的 Linux 手机,但诺基亚似乎并不喜欢这个项目的名字。 + +> 有一个想要为你带来一款诺基亚风格的 Linux 手机的开源项目,但诺基亚似乎并不喜欢这个项目的名字。 ![诺基亚][1] -近期,一个旨在打造经典诺基亚(小型)Linux 手机的开源项目,遭到了诺基亚的抨击。 +近期,一个旨在打造经典诺基亚(小型)的 Linux 手机的开源项目,遭到了诺基亚的抨击。 -该项目的名称最初是 “**Notkia**”,然而,诺基亚发现该名称与自己相似,可能会影响自己的品牌声誉,并侵犯到自己的权利。 +该项目的名称最初是 “**Notkia**”,然而,诺基亚认为该名称与自己相似,可能会影响自己的品牌声誉,并侵犯到自己的权利。 -虽然这样做可以保护公司的业务,但这些公司向在当前状态下甚至不构成威胁的项目发送侵权通知是怎么回事? +虽然这样做可以保护公司的业务,但这些公司向在当前状态下甚至对他们构不成威胁的项目发送侵权通知是怎么回事? -### Notkia:开发袖珍 Linux 手机 +### Notkia:开发一款袖珍 Linux 手机 -不过还得感谢诺基亚的这个侵权通知,我们才能了解到这个有趣的项目:开发一款满足基本使用、注重隐私的小型 Linux 手机。 +不过还得 *感谢* 诺基亚的这个侵权通知,我们才能了解到这个有趣的项目:开发一款满足基本使用、注重隐私的小型 Linux 手机。 该项目的目标是设计一个完全适合诺基亚经典手机外壳的 PCB。 @@ -29,11 +30,11 @@ 到目前为止,该项目已经支持许多硬件相关的功能,包括蓝牙和 Wi-Fi。 -该项目不基于 Android,而是基于主线 Linux 内核。 +该项目不基于安卓,而是基于主线 Linux 内核。 -你可以在他们的 [官方博文][3] 中,了解有关该项目和计划手机规格的更多信息。 +你可以在他们的 [官方博文][3] 中,了解有关该项目和计划中的手机规格。 -目前,该项目正在等待筹款,并将制作早期原型以供单独购买。 +目前,该项目正在等待筹款,以便可以单独购买早期原型机。 ### 灵感来自诺基亚,并受到诺基亚的关注 @@ -41,15 +42,15 @@ 该项目的创建者在推特上分享了诺基亚的电子邮件,同时他提到,诺基亚在将此类通知发送给以社区利益为主导的项目之前,应该更谨慎一些才对。 -> 再次阅读 [@Nokia][4] 的邮件后,我开始感到愤怒。这无非是一场上演的意外。它已经是一个协作项目,并且得到了世界各地的人们的贡献,因此,我将把完整的电子邮件发布给它的“目标收件人”。 +> 再次阅读 [@Nokia][4] 的邮件后,我开始感到愤怒。这无非是一场精心策划的演出。既然它是一个协作项目,并且得到了世界各地的人们的贡献,因此,我将把完整的电子邮件发布给它的“预期收件人”。 > > ![来自推特 @ReimuNotMoe][5] **此外,他们确认该项目将更名。** -当然,作为一个开源项目,它应该和诺基亚是扯不上关系的,除非他们开始销售他们的原型/手机,同时使用诺基亚的品牌名称。 +当然,作为一个开源项目,它应该和诺基亚是扯不上关系的,除非他们使用诺基亚的品牌名称销售他们的原型/手机。 -但是,在目前的状态下,这更像是一个充满激情的项目,是开源爱好者社区的协作努力。因此,向他们发出侵犯诺基亚权利的通知,听起来实在有些牵强。 +但是,在目前的状态下,这更像是一个激情项目,是开源爱好者社区协作努力的成果。因此,向他们发出侵犯诺基亚权利的通知,听起来实在有些牵强。 *对吗?* @@ -70,7 +71,7 @@ via: https://news.itsfoss.com/nokia-notkia/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[lkxed](https://github.com/lkxed) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ad62bdf05089ccf03e0087381dd52c826a534ade Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 17 Jul 2022 19:05:10 +0800 Subject: [PATCH 0416/3123] RP @geekpi https://linux.cn/article-14838-1.html --- ...wal of SSL Certificates- A Simple Guide.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) rename {translated/tech => published}/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md (53%) diff --git a/translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md b/published/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md similarity index 53% rename from translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md rename to published/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md index ba8ae5c36d..fde96a948b 100644 --- a/translated/tech/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md +++ b/published/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md @@ -3,11 +3,11 @@ [#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14838-1.html" -手动续订 SSL 证书:简单指南 +手动续订 SSL 证书的简单指南 ====== ![SSL-Certificates-Featured-image][1] @@ -18,7 +18,7 @@ #### SSL 证书如何保护客户的数据? -保护敏感客户信息的最佳方法之一是使用 SSL(安全套接字层)证书保护你的站点。在不涉及技术细节的情况下,SSL 证书对 Web 服务器和访问者浏览器之间的通信进行加密,从而使黑客或威胁参与者在技术上不可能窃取传输中的数据。 SSL 建立了一个安全的握手过程来解密加密的信息,这个过程太复杂了,人类甚至软件都无法破解。 +保护敏感客户信息的最佳方法之一是使用 SSL(安全套接字层)证书保护你的站点。用不涉及技术细节的话来说,SSL 证书对 Web 服务器和访问者浏览器之间的通信进行加密,从而使黑客或威胁参与者在技术上不可能窃取传输中的数据。 SSL 建立了一个安全的握手过程来解密加密的信息,这个过程太复杂了,人类甚至软件都无法破解。(LCTT 校注:此处言过其实,SSL 加密传输的信息并不是绝对不可截获和破解的,比如中间人攻击等。) #### 为什么需要更新 SSL 证书? @@ -26,11 +26,11 @@ 更新 SSL 证书有很多好处: -* 及时更新验证您网站的身份。 +* 及时更新验证你的网站的身份。 * 获得更新的安全性。 * 一年有效期促进定期更新/升级保护范围的健康实践,从而消除与过时版本相关的风险。 -> 注意:最佳做法是选择自动续订选项,以减轻你记住续订日期或手动执行相关步骤的压力。 +> 注意:最佳做法是选择一种自动续订方式,以减轻你记住续订日期或手动执行相关步骤的压力。 #### 有点跑题了,构建你自己的 SSL 证书的纯开源方式 @@ -39,29 +39,29 @@ * OpenSSL:这是实现 TLS 和加密库的高度可信的工具。 * EasyRSA:此命令行工具使你能够构建 PKI CA 并有效地管理它。 * CFSSL:Cloudflare 终于为 PKI 和 TLS 构建了一个多用途、多功能的工具。 -* Lemur:由 Netflix 开发的足够公平的 TLS 生成器。 +* Lemur:由 Netflix 开发的还不错的 TLS 生成器。 ### 如何更新你的 SSL 证书 -虽然 [SSL][2] 更新的一般过程不变,但可能会有一些细微的调整和变化,具体取决于你的特定 SSL 提供商。 +虽然 [SSL][2] 更新的一般过程保持不变,但可能会有一些细微的调整和变化,具体取决于你的特定 SSL 提供商。 更新过程遵循三个主要步骤:CSR(证书签名请求)生成、证书激活,最后是证书安装。 -**生成 CSR:** 对于 cPanel 托管面板,你可以单击安全选项卡并搜索 *SSL/TLS* 选项。它将显示一个页面,显示 CSR 选项下方的链接。这里有助于为你所需的域名生成新的 CSR。 +**生成 CSR:** 对于 cPanel 托管面板,你可以单击“安全Security”选项卡并搜索 *SSL/TLS* 选项。它将显示一个页面,在 CSR 选项下方有一个链接。这里可以帮助你为所需的域名生成新的 CSR。 系统将询问你详细的联系信息,以确认你是真正的域所有者。填写表格后,你将获得证书重新激活所需的 CSR 代码。 -*激活 SSL 证书:* 在你的仪表板中,你可以快速查看拥有的 SSL 证书、域和其他数字基础设施产品。单击此按钮开始 SSL 续订过程。输入前段时间生成的 CSR,确认信息的准确性。你现在可以验证 SSL 续订过程。 +**激活 SSL 证书:** 在你的仪表板中,你可以快速查看拥有的 SSL 证书、域和其他数字基础设施产品。单击该按钮开始 SSL 续订过程。输入之前生成的 CSR,确认信息的准确性。你现在可以验证 SSL 续订过程。 -*验证 SSL 证书:* 系统将再次提示你确认域所有权。输入与域相关的电子邮件。在需要安装证书的 Web 服务器上上传文件。借助 CNAME 记录验证 SSL 证书。虽然有多种选择,但最好和最简单的方法是通过电子邮件进行验证。输入与域关联的电子邮件后,你将收到一封包含特定链接的电子邮件,然后是另一封邮件,其中包含带有 .*crt* 扩展名的新证书文件。 +**验证 SSL 证书:** 系统将再次提示你确认域所有权 —— 输入与域相关的电子邮件;在需要安装证书的 Web 服务器上上传文件;借助 CNAME 记录验证 SSL 证书等等。虽然有多种选择,但最好和最简单的方法是通过电子邮件进行验证。输入与该域关联的电子邮件后,你将收到一封包含特定链接的电子邮件,然后是另一封邮件,其中包含带有 `.crt` 扩展名的新证书文件。 -*安装 SSL 证书:* 你的网络托管服务提供商将为你提供与支持团队沟通以安装更新文件的选项,或为你提供有关如何通过 cPanel 手动执行此操作的详细说明。请记住,不同的主机提供不同的续订选项。也就是说,如果你是非技术人员,那么联系支持团队将是你的最佳选择。 +**安装 SSL 证书:** 你的主机托管商将为你提供与支持团队沟通的方式,以安装更新文件,或为你提供有关如何通过 cPanel 手动执行此操作的详细说明。请记住,不同的主机提供不同的续订方式。也就是说,如果你是非技术人员,那么联系支持团队将是你的最佳选择。 -如需手动更新,请访问 cPanel 的 *SSL/TLS* 页并找到 *Manage SSL* 站点选项。它包你拥有的整个域列表。对应每个域名,你可以看到证书更新选项。 +如需手动更新,请访问 cPanel 的 “SSL/TLS” 页并找到 “管理 SSL 站点Manage SSL sites”选项。它包含了你拥有的整个域列表。对应每个域名,你可以看到证书更新选项。 -在旁边的页面中,使用 *Domain* 选项的*自动填充*在*私钥*中输入详细信息。在 *Certificate* 选项下,填写您的 .*crt 文件*的详细信息。你快完成了。只需单击显示*安装证书*的按钮。 +在旁边的页面中,使用“按域自动填写Autofill by Domain”选项输入“私钥Private Key”的详细信息。在 “证书Certificate” 选项下,填写你的 `.crt` 文件的详细信息。离完成就剩一步了。只需单击显示“安装证书Install Certificate”的按钮。 -除了保存用户的关键数据和敏感信息外,SSL 证书还通过重申你网站上共享的数据是安全的来建立信任。由于 Google 认为 SSL 认证是一种健康的做法,因此它也会你您的 SEO 资料产生积极影响。但是,要继续享受此证书的最佳安全性,你需要定期更新它。这可确保你的站点根据最新的安全要求完全免受传输中的数据攻击。 +除了保存用户的关键数据和敏感信息外,SSL 证书还通过重申你网站上共享的数据是安全的来建立信任。由于谷歌认为 SSL 认证是一种健康的做法,因此它也会对你的 SEO 产生积极影响。但是,要继续享受此证书的最佳安全性,你需要定期更新它。这可以确保你的网站根据最新的安全要求,充分防止数据传输中的攻击。 -------------------------------------------------------------------------------- @@ -70,7 +70,7 @@ via: https://www.opensourceforu.com/2022/07/manual-renewal-of-ssl-certificates-a 作者:[Jitendra Bhojwani][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/) 荣誉推出 From bd4f84efb93d9f0f1225a7793268df677232169b Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 17 Jul 2022 19:09:01 +0800 Subject: [PATCH 0417/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Development and Its Future is Uncertain.md | 83 ------------------- 1 file changed, 83 deletions(-) delete mode 100644 sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md diff --git a/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md b/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md deleted file mode 100644 index 73831e94a1..0000000000 --- a/sources/news/20220712 Cutefish OS Halts Development and Its Future is Uncertain.md +++ /dev/null @@ -1,83 +0,0 @@ -[#]: subject: "Cutefish OS Halts Development and Its Future is Uncertain" -[#]: via: "https://www.debugpoint.com/cutefish-os-development-halts/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "imgradeone" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Cutefish OS Halts Development and Its Future is Uncertain -====== -The famous Cutefish OS, with its Cutefish Desktop development, apparently stopped, which is evident from the GitHub commit history. - -### Cutefish OS Halts Development - -A few months back, we [reviewed][1] the emerging Linux distribution Cutefish OS which comes with its own desktop environment (Cutefish DE). The look and feel, the way it was built from the ground up – was perfect in terms of usability and customization options. - -![Cutefish OS - Application Menu][2] - -Cutefish OS is built primarily for the general users who want a stable Linux Operating system and looks like “macOS” out of the box. Hence the team designed the Cutefish Desktop Environment (DE) with a Global menu, bottom dock, top panel, icon and cursor themes and many such features to fulfil that goal. - -You might think that almost all Linux desktop environments are customizable to look like “mac OS” with some effort. I agree. But that requires some knowledge about how to install a cursor theme, desktop theme, rounded corners, blur and so on. Almost all of these customization doesn’t come by default. - -Moreover, Cutefish OS also brings Debian and Ubuntu as its base, which is a perfect choice considering the average Linux users and their knowledge level. - -With all the promises and some exciting BETA releases, the development seems now completely stalled. A quick walk on [GitHub][3] shows the activities are minimal in terms of feature additions. - -Moreover, the official home page of Cutefish OS, i.e. cutefishos.com, is not reachable (timed-out). - -![The activity in GitHub of Cutefish OS shows a straight line for a few months][4] - -### What’s Next - -In the discussion on [Reddit][5], one of the users pitched the idea of forking the OS. The idea is to carry on with the development. This is the main advantage of community-driven projects in the open-source world. - -![File Manager Global menu in Top bar in Cutefish OS Desktop][6] - -However, it is a fact that maintaining, developing and steering a Linux distribution is a massive effort by itself. And a single person can’t make it a successful one. Hence, I believe a desktop environment fork is a rational choice rather than the entire operating system. A portable DE is easier to maintain and continues its development for a longer term. - -However, as of writing this piece, no one has forked it yet. But I believe it will be soon. - -### An OpenMandriva Fork? - -On the other hand, it looks like the OpenMandriva project is already [continuing][7] with the development of the Cutefish DE (not the OS) for its own OS. For more details, visit the Matrix [discussion page][8]. - -Besides, it’s worth mentioning that Arch Linux already have the Cutefish desktop packages in the community repo. You can even [install it][9] as a standalone DE in Arch Linux with easy steps. - -As you can see, it is easier to maintain the DE to continue its development because the structure is already out there. - -![Cutefish Desktop in Arch Linux][10] - -### Conclusion - -I have tested and [reviewed hundreds of distros][11] for years, and Cutefish OS is the promising one with its stunning desktop environment. It was written from the ground up with QML and C++ and took advantage of KWin. It would have been an attractive desktop as a separate component and could have been another great option besides KDE Plasma or GNOME. - -Many open-source projects are born and die every year, and it’s unfortunate to see the situation of Cutefish OS. I hope an official fork comes up soon, and we all can contribute to it. I think the best way forward is to fork only the Cutefish Desktop Environment and fine-tune the edge cases. - -So, what do you think about the entire situation of Cutefish OS? Let’s have a conversation in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/cutefish-os-development-halts/ - -作者:[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/cutefish-os-review-2021/ -[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-Application-Menu-1024x582.jpg -[3]: https://github.com/cutefishos -[4]: https://www.debugpoint.com/wp-content/uploads/2022/07/The-activity-in-GitHub-of-Cutefish-OS-shows-a-straight-line-for-a-few-months.jpg -[5]: https://www.reddit.com/r/linux/comments/vwd0m8/i_am_about_to_fork_cutefishos_and_i_need_your_help/ -[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/File-Manager-Global-menu-in-Top-bar-in-Cutefish-OS-Desktop-1024x577.jpg -[7]: https://abf.openmandriva.org/platforms/cooker/products/43/product_build_lists/1162 -[8]: https://matrix.to/#/#oma:matrix.org -[9]: https://www.debugpoint.com/cutefish-arch-linux-install/ -[10]: https://www.debugpoint.com/wp-content/uploads/2022/02/Cutefish-Desktop-in-Arch-Linux.jpg -[11]: https://www.debugpoint.com/tag/linux-distro-review From a86521ce8cba2c84362936bc8318823a7b57a589 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 18 Jul 2022 08:33:43 +0800 Subject: [PATCH 0418/3123] translated --- ...ble Packages With apt Command in Ubuntu.md | 184 ------------------ ...ble Packages With apt Command in Ubuntu.md | 184 ++++++++++++++++++ 2 files changed, 184 insertions(+), 184 deletions(-) delete mode 100644 sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md create mode 100644 translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md diff --git a/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md b/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md deleted file mode 100644 index b358c3a80a..0000000000 --- a/sources/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md +++ /dev/null @@ -1,184 +0,0 @@ -[#]: subject: "List Upgradable Packages With apt Command in Ubuntu" -[#]: via: "https://itsfoss.com/apt-list-upgradable/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -List Upgradable Packages With apt Command in Ubuntu -====== - -The [apt command][1] is used for package management in Debian and Ubuntu. While you are probably already familiar with the install and remove options, apt provides a few extra features as well. - -One of them is the ability to see all the upgradable packages on your system. And to display them, all you have to do is to use this command in the terminal: - -``` -apt list --upgradable -``` - -As you can notice, you don’t even need sudo to list the updatable packages. It just lists the packages that can be updated. It doesn’t update them. - -In fact, the apt command adds this hint when you run the `sudo apt update` command to update the local package repository cache. - -``` -Fetched 1,243 kB in 17s (71.4 kB/s) -Reading package lists... Done -Building dependency tree... Done -Reading state information... Done -30 packages can be upgraded. Run 'apt list --upgradable' to see them. -``` - -I don’t recall any similar direct option in the older apt-get command to list all the upgradable packages. That’s one of the several new features apt has added on top of the older apt-get command. - -Let’s talk about it in a bit more detail. - -### Listing all the upgradable packages - -What you should know here is that **you only get to list the updates available through the APT package manager.** So, if you have added PPAs or [external repositories][2] to your system’s sources.list, you’ll see the updates from them. - -But you won’t get updates for AppImage, Flatpak, Snap or some other packaging formats here. - -In other words, it works with apt packages only. - -So, to list all the upgradable packages on your Ubuntu or Debian system, you should update the local package cache first: - -``` -sudo apt update -``` - -And then your system will be aware of the available package updates. The apt command tells you how many packages can be upgraded at the end of the update command: - -![The apt command shows the number of upgradable packages at the bottom of the apt update command output][3] - -To see what package can be upgraded, run the command: - -``` -apt list --upgradable -``` - -You should see an output like this: - -``` -[email protected]:~$ apt list --upgradable -Listing... Done -apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2] -brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] -evolution-data-server-common/jammy-updates,jammy-updates 3.44.2-0ubuntu1 all [upgradable from: 3.44.1-0ubuntu2] -evolution-data-server/jammy-updates 3.44.2-0ubuntu1 amd64 [upgradable from: 3.44.1-0ubuntu2] -``` - -![Listing all the upgradable packages][4] - -It **lists all the upgradable packages in alphabetical order** with the information on the currently installed version and the new available package version. - -``` -brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] -``` - -For example, It shows that I have Brave browser version 1.40.107 installed on the system, and version 1.40.113 is available. - -What can you do with this information? Let me share a few things I can think of. - -### Upgrade all the packages - -This is probably what most casual Ubuntu users do. You can upgrade all the upgradable packages with the following command: - -``` -sudo apt upgrade -``` - -It lists what packages will be upgraded and then asks to confirm the upgrade by pressing enter or Y. - -![Upgrade all packages][5] - -If you are sure about upgrading all the packages, you can skip the ‘Do you want to continue’ part by giving it the go ahead by adding -y to the command. - -``` -sudo apt upgrade -y -``` - -### Simulate an upgrade (but don’t upgrade any packages) - -This is what people did before the apt list command. With the simulate option, you don’t actually make any changes. It just shows what packages will be installed or upgraded if you run the upgrade. - -``` -apt -s upgrade -``` - -You don’t need to use sudo (even though I have used it in the screenshot below). - -![Running an upgrade simulation with apt command][6] - -### Upgrade only the selected packages - -If you are managing an Ubuntu server and you don’t want to upgrade all the packages but only one of a few selected ones (like MySQL/Ngnix), you can do that easily with the apt command. - -``` -sudo apt --only-upgrade install package_name -``` - -Actually, if you run the apt install command on an already installed package for which an update is available, it will upgrade the package. - -With the `--only-upgrade` flag, you ensure that a package is only upgraded (if it is already installed). It won’t install the given package if it is not already installed. - -You can also upgrade selected few packages by providing their name: - -``` -sudo apt --only-upgrade install package1 package2 -``` - -You can also do the opposite and [hold selected packages from the upgrade][7]. - -``` -sudo apt-mark hold package_name -``` - -With that, the given package won’t be upgraded when you upgrade all the system packages. - -You can remove the hold with this command: - -``` -sudo apt-mark unhold package_name -``` - -### Does it show the kernel upgrades? - -This is kind of tricky. - -When you run the ‘apt list –upgradable’ command it shows all the packages that can be upgraded. - -But if there are new kernel versions available, they might not be shown since the kernel package name starts with linux-headers-x-y. It’s because the system treats them as new packages, not an upgrade on already installed package linux-headers-a-b. - -However, you would still see “linux-generic-hwe” kind of package in the list of upgradable packages. Because that package will be upgraded (with the newer kernel). - -### Conclusion - -The ability to list upgradable packages is one of the several new features the apt command brought over the older apt-get command. For more on this topic, you can read my article [explaining the difference between the apt and apt-get commands][8]. - -As a desktop user, I don’t always check the packages that can be upgraded. I go for the upgrade straightaway. However, when I am managing a server, I prefer to see what updates are available and then decide whether or not I am going for an upgrade. - -How about you? Do you see a good use for this feature for yourself? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/apt-list-upgradable/ - -作者:[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/apt-command-guide/ -[2]: https://itsfoss.com/adding-external-repositories-ubuntu/ -[3]: https://itsfoss.com/wp-content/uploads/2022/07/update-package-cache-ubuntu.png -[4]: https://itsfoss.com/wp-content/uploads/2022/07/apt-list-upgradable-packages-ubuntu.webp -[5]: https://itsfoss.com/wp-content/uploads/2022/07/upgrade-all-packages-ubuntu.webp -[6]: https://itsfoss.com/wp-content/uploads/2022/07/run-an-upgrade-simulation-apt-ubuntu.webp -[7]: https://itsfoss.com/prevent-package-update-ubuntu/ -[8]: https://itsfoss.com/apt-vs-apt-get-difference/ diff --git a/translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md b/translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md new file mode 100644 index 0000000000..b5a866848a --- /dev/null +++ b/translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md @@ -0,0 +1,184 @@ +[#]: subject: "List Upgradable Packages With apt Command in Ubuntu" +[#]: via: "https://itsfoss.com/apt-list-upgradable/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Ubuntu 中使用 apt 命令列出可升级的软件包 +====== + +[apt 命令][1] 用于 Debian 和 Ubuntu 中的包管理。虽然你可能已经熟悉安装和删除选项,但 apt 还提供了一些额外的功能。 + +其中之一是能够查看系统上所有可升级的软件包。要显示它们,你所要做的就是在终端中使用以下命令: + +``` +apt list --upgradable +``` + +如你所见,你甚至不需要 sudo 来列出可更新的包。它只是列出了可以更新的包。它不会更新它们。 + +实际上,当你运行 `sudo apt update` 命令更新本地包仓库缓存时,apt 命令会添加此提示。 + +``` +Fetched 1,243 kB in 17s (71.4 kB/s) +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +30 packages can be upgraded. Run 'apt list --upgradable' to see them. +``` + +我不记得在旧的 apt-get 命令中有任何类似的直接选项来列出所有可升级的包。这是 apt 在旧的 apt-get 命令之上添加的几个新功能之一。 + +让我们更详细地讨论一下。 + +### 列出所有可升级的包 + +你在这里应该知道的是**你只能通过 APT 包管理器列出可用的更新**。 因此,如果你已将 PPA 或[外部仓库][2]添加到系统的 sources.list,你将查看它们的更新。 + +但是你不会在这里获得 AppImage、Flatpak、Snap 或其他一些打包格式的更新。 + +换句话说,它只适用于 apt 包。 + +因此,要列出 Ubuntu 或 Debian 系统上的所有可升级包,你应该首先更新本地包缓存: + +``` +sudo apt update +``` + +然后你的系统将知道可用的软件包更新。 apt 命令告诉你在 update 命令结束时可以升级多少个软件包: + +![The apt command shows the number of upgradable packages at the bottom of the apt update command output][3] +To see what package can be upgraded, run the command: +要查看可以升级的软件包,请运行以下命令: + +``` +apt list --upgradable +``` + +你应该看到这样的输出: + +``` +[email protected]:~$ apt list --upgradable +Listing... Done +apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2] +brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] +evolution-data-server-common/jammy-updates,jammy-updates 3.44.2-0ubuntu1 all [upgradable from: 3.44.1-0ubuntu2] +evolution-data-server/jammy-updates 3.44.2-0ubuntu1 amd64 [upgradable from: 3.44.1-0ubuntu2] +``` + +![Listing all the upgradable packages][4] + +它**按字母顺序列出所有可升级的软件包**以及有关当前安装版本和新可用软件包版本的信息。 + +``` +brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] +``` + +例如,这显示我系统上安装了 Brave 浏览器,版本 1.40.107,并且版本 1.40.113 可用。 + +你能用这些信息做什么?让我分享一些我能想到的事情。 + +### 升级所有包 + +这可能是大多数普通 Ubuntu 用户所做的。你可以使用以下命令升级所有可升级包: + +``` +sudo apt upgrade +``` + +它列出了将要升级的软件包,然后要求按回车或 Y 确认升级。 + +![Upgrade all packages][5] + +如果你确定要升级所有软件包,则可以通过在命令中添加 -y 来跳过 “Do you want to continue” 部分。 + +``` +sudo apt upgrade -y +``` + +### 模拟升级(但不升级任何包) + +这是人们在 apt list 命令之前所做的。使用模拟选项,你实际上不会进行任何更改。它仅显示运行升级时将安装或升级的软件包。 + +``` +apt -s upgrade +``` + +你不需要使用 sudo(即使我在下面的截图中使用了它)。 + +![Running an upgrade simulation with apt command][6] + +### 仅升级选定的包 + +如果你正在管理一个 Ubuntu 服务器,并且你不想升级所有软件包,而只想升级少数选定的软件包中的一个(如 MySQL/Ngnix),你可以使用 apt 命令轻松完成。 + +``` +sudo apt --only-upgrade install package_name +``` + +实际上,如果你在已安装且有可用更新的软件包上运行 apt install 命令,它将升级该软件包。 + +使用 `--only-upgrade` 标志,你可以确保仅升级软件包(如果已安装)。如果尚未安装,它将不会安装给定的包。 + +你还可以通过提供名称来升级选定的几个包: + +``` +sudo apt --only-upgrade install package1 package2 +``` + +你也可以做相反的事情并[保留升级中的选定软件包][7]。 + +``` +sudo apt-mark hold package_name +``` + +这样,当你升级所有系统包时,将不会升级给定的包。 + +你可以使用以下命令删除保留: + +``` +sudo apt-mark unhold package_name +``` + +### 是否显示内核升级? + +这有点棘手。 + +当你运行“apt list –upgradable”命令时,它会显示所有可以升级的包。 + +但是如果有新的内核版本可用,它们可能不会显示,因为内核包名称以 linux-headers-x-y 开头。这是因为系统将它们视为新包,而不是对已安装的包 linux-headers-a-b 的升级。 + +但是,你仍然会在可升级包列表中看到 “linux-generic-hwe” 类型的包。因为该软件包将被升级(使用较新的内核)。 + +### 总结 + +列出可升级包的能力是 apt 命令为旧的 apt-get 命令带来的几个新功能之一。有关此主题的更多信息,你可以阅读我的文章[解释 apt 和 apt-get 命令之间的区别][8]。 + +作为桌面用户,我并不总是检查可以升级的软件包。我直接去升级。但是,当我管理服务器时,我更喜欢查看可用的更新,然后决定是否进行升级。 + +你呢?你觉得这个功能对你自己有用吗? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-list-upgradable/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/apt-command-guide/ +[2]: https://itsfoss.com/adding-external-repositories-ubuntu/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/update-package-cache-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/apt-list-upgradable-packages-ubuntu.webp +[5]: https://itsfoss.com/wp-content/uploads/2022/07/upgrade-all-packages-ubuntu.webp +[6]: https://itsfoss.com/wp-content/uploads/2022/07/run-an-upgrade-simulation-apt-ubuntu.webp +[7]: https://itsfoss.com/prevent-package-update-ubuntu/ +[8]: https://itsfoss.com/apt-vs-apt-get-difference/ From 5fee0d221568aaee78e2c485e01d3acb9ebe9c12 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 18 Jul 2022 08:36:27 +0800 Subject: [PATCH 0419/3123] translating --- ...Fixing -Command -python- not found- Error in Ubuntu Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md b/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md index 66b2e9541a..6c2aa7a48d 100644 --- a/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md +++ b/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/python-not-found-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From aa52e37337e36c41f6ef59a21dc0c1d795fcc244 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 18 Jul 2022 10:59:29 +0800 Subject: [PATCH 0420/3123] RP @geekpi https://linux.cn/article-14840-1.html --- .../20220709 Monitoring tiny web services.md | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220709 Monitoring tiny web services.md (87%) diff --git a/translated/tech/20220709 Monitoring tiny web services.md b/published/20220709 Monitoring tiny web services.md similarity index 87% rename from translated/tech/20220709 Monitoring tiny web services.md rename to published/20220709 Monitoring tiny web services.md index 36c3be3ef7..1b57dfc0d3 100644 --- a/translated/tech/20220709 Monitoring tiny web services.md +++ b/published/20220709 Monitoring tiny web services.md @@ -3,22 +3,24 @@ [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14840-1.html" -监测微型网络服务 +如何监测微型的网站服务 ====== +![](https://img.linux.net.cn/data/attachment/album/202207/18/105829gzviausw5wg7wwxb.jpg) + 你好! 我最近又开始运行一些服务器([nginx playground][1]、[mess with dns][2]、[dns lookup][3]),所以我一直在考虑监控问题。 最初我并不完全清楚如何监控这些网站,所以我想快速写下我是如何做到的。 -我根本不打算谈如何监控大型严肃的关键任务网站,只谈微型的不重要的网站。 +我根本不打算谈如何监控大型的、严肃的关键任务网站,只谈微型的不重要的网站。 ### 目标:在操作上几乎不花时间 -我希望网站大部分时间都能正常工作,但我也希望在持续的运营上几乎不花时间。 +我希望网站大部分时间都能正常工作,但我也希望不用在持续的运营上花费时间。 我最初对运行服务器非常警惕,因为在我的上一份工作中,我是 24/7 轮流值班,负责一些关键的服务,在我的印象中,“负责服务器”意味着“在凌晨 2 点被叫起来修理服务器”和“有很多复杂的仪表盘”。 @@ -32,16 +34,14 @@ ### 步骤 1:uptime 检查器 -第一步是建立一个 uptime 检查器。外面有很多这样的东西,我现在使用的是 [updown.io][4] 和 [uptime robot][5]。我更喜欢 updown 的用户界面和[定价][6]结构(它是按请求而不是按月收费),但u ptime robot 有一个更慷慨的免费套餐。 +第一步是建立一个 uptime 检查器。外面有很多这样的东西,我现在使用的是 [updown.io][4] 和 [uptime robot][5]。我更喜欢 updown 的用户界面和 [定价][6] 结构(它是按请求而不是按月收费),但 uptime 机器人有一个更慷慨的免费套餐。 它们会: 1. 检查网站是否正常 2. 如果出现故障,它会给我发电子邮件 - - -我发现电子邮件通知对我来说是一个很好的级别,如果网站宕机,我会很快发现,但它不会唤醒我或任何东西。 +我发现电子邮件通知对我来说是一个很好的通知级别,如果网站宕机,我会很快发现,但它不会吵醒我或做其它的什么打扰。 ### 步骤 2:端到端的健康检查 @@ -51,7 +51,7 @@ 这倒是挺有用的 – 它告诉我服务器是启动着的! -但不出所料,我遇到了问题,因为它没有检查 API 是否真的在_工作_ – 有时健康检查成功了,尽管服务的其他部分实际上已经进入了一个糟糕的状态。 +但不出所料,我遇到了问题,因为它没有检查 API 是否真的在 _工作_ – 有时健康检查成功了,尽管服务的其他部分实际上已经进入了一个糟糕的状态。 所以我更新了它,让它真正地发出 API 请求,并确保它成功了。 @@ -106,8 +106,6 @@ * 一切又正常了 * 几个小时后再次重复整个传奇 - - 最终,我开始实际修复进程泄漏,但很高兴有一个解决方法可以在我拖延修复 bug 时保持运行。 这些用于决定是否重新启动服务的运行状况检查更频繁地运行:每 5 分钟左右。 @@ -129,7 +127,7 @@ via: https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/ 作者:[Julia Evans][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a8a65389536a5283c2f97bc1fe9cfc9c37f4faf5 Mon Sep 17 00:00:00 2001 From: Peaksol <1244050218@qq.com> Date: Mon, 18 Jul 2022 13:42:26 +0800 Subject: [PATCH 0421/3123] =?UTF-8?q?Update=2020220708=20Meet=20Free=20Sof?= =?UTF-8?q?tware=20Foundation=20Executive=20Director=20Zo=C3=AB=20Kooyman.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...undation Executive Director Zoë Kooyman.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md index a45e506e3d..7dcb4939d2 100644 --- a/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md +++ b/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md @@ -7,58 +7,58 @@ [#]: publisher: " " [#]: url: " " -Meet Free Software Foundation Executive Director Zoë Kooyman +采访自由软件基金会执行董事 Zoë Kooyman ====== -Find out what the Free Software Foundation (FSF) is all about. +了解自由软件基金会(FSF)的一切。 ![Dandelion zoomed in][1] -Image by: Photo by Rob Tiller, CC BY-SA 4.0 +图片署名:由 Rob Tiller 拍摄,以 CC BY-SA 发布 -The [Free Software Foundation (FSF)][2] started promoting the idea of sharing code way back in 1985, and since then it's defended the rights of computer users and developers. The FSF says that the terms "open" and "closed" are not effective words when classifying software, and instead considers programs either *freedom-respecting* ("free" or "libre") or *freedom-trampling* ("non-free" or "proprietary"). Whatever terminology you use, the imperative is that computers must belong, part and parcel, to the users, and not to the corporations that owns the software the computers run. This is why the GNU Project, and the Linux kernel, Freedesktop.org, and so many other open source projects are so important. +早在 1985 年,[自由软件基金会(FSF)][2]就开始提倡源代码共享的理念,并从此打响了为计算机用户和开发者捍卫权利的斗争。FSF 认为,用“开源”和“闭源”这两个词来划分软件,十分具有局限性;于是,在为程序分类时,转而使用了以下词语:*尊重自由*(“自由”)或*践踏自由*(“非自由”或“专有”)。不管用语如何,关键之处在于,计算机必须受用户控制,而不是任由开发了计算机软件的公司来摆布。正因如此,GNU 工程、Linux 内核、Freedesktop.org 等众多自由软件项目,才会如此重要。 -Recently, the FSF has acquired a new executive director, Zoë Kooyman. I met Zoë in 2019 at an [All Things Open][3] conference. She wasn't yet the executive director of the FSF at that time, of course, but was managing their growing list of major events, including [LibrePlanet][4]. I was captivated by her energy and sincerity as she introduced me to a seemingly nonstop roster of people creating the freedom-respecting software I used on a *daily basis*. I had stumbled into an FSF meetup and ended up hanging out with the people who were actively defining the way I lived my digital life. These were the people who ensured that I had what Zoë Kooyman and the FSF calls the [four essential freedoms][5]: +最近,FSF 新上任了一位执行董事,她叫 Zoë Kooyman。我初见 Zoë 时,是在 2019 年的一个 [All Things Open][3] 大会上。当然,那个时候她还不是 FSF 的执行董事,不过已经在管理 FSF 的重大活动列表了——那份列表的活动包括了 [LibrePlant][4], 并且还在不断地增长。她之前递给我了一份自由软件作者的名单,名单长得一眼望不尽,而且那些软件都是我*每天*在用的。由此,我也很受她那充沛的精力和诚恳的态度所打动。我只是偶然参加了一次 FSF 的聚会,但最后却和那些人成了朋友。是他们让我的数字生活有了意义,是他们保障了我能够拥有 Zoë 和 FSF 所说的[四项基本自由][5]: -* The freedom to run the program as you wish, for any purpose (freedom 0). -* The freedom to study how the program works and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. -* The freedom to redistribute copies so you can help others (freedom 2). -* The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this. +* 无论用户出于何种目的,用户必须可以按照自己的意愿,自由地运行该软件(自由之零)。 +* 用户可以自由地学习并修改该软件,这样程序的计算过程才是可控的(自由之一)。作为前提,用户必须可以得到该软件的源代码。 +* 用户可以自由地分发该软件的副本,这样就可以帮助别人(自由之二)。 +* 用户可以自由地分发该软件修改后的副本(自由之三)。借此,用户可以把改进后的软件分享给整个社区,令他人也从中受益。作为前提,用户必须可以得到该软件的源代码。 -When I heard about Zoë's appointment as executive director, I emailed her for an interview and she was kind enough to take some time out of her very busy schedule to have a chat. +听说了 Zoë 受任为执行董事后,我给她发了一封邮件,提出想和她进行一次采访。她十分热心,在百忙之中抽出了一点时间来和我畅谈。 -**Seth Kenlon: You're the executive director of the FSF! How did you get here?** +**Seth Kenlon:你当上 FSF 的执行董事了!你是怎么走到今天的呢?** -**Zoë Kooyman:** In my working life, I started out as an event organizer, traveling the world while producing some of the world's biggest music shows. Working with so many different cultures in ever-changing locations is exciting, as is making all the different elements of production come together, whether that's the show, technique, or the other live elements. It's a juggling game to have everything fall into place at the right moment. I spent a lot of time living and working in different countries, and learning a lot about organization and communication thanks to this work. I also studied, and worked with different forms of media, how they are experienced, and their relationship with society. +**Zoë Kooyman:** 在我的工作生涯中,我最开始是一位活动组织者。我环游世界,举办着一些世界上最大的音乐节目。在不断变更的地点、各具特色的文化中工作,是十分有趣的,因为不管是演出、技艺还是别的现场元素,所有各异的制作元素都结合在一起了。让一切事物都在恰当时候安排到位,就像是耍杂技一样。很多时候,我都是在不同的国家生活和工作。多亏了我的工作,我才能学到这么多的组织和交流技巧。我也对不同形式的媒体有过研究和工作,了解它们的经历,以及它们与社会的关系。 -It was in university that I first learned about copyleft. About how we can use existing structures to our benefit, and drive change. It was also then that media (as well as the Internet, and software) landscapes started changing rapidly with encroachments on freedom as a consequence. Moving to the US changed things for me. In the US, I developed a much stronger sense of urgency for matters of social responsibility, and so I decided to act on it. I was thankful to John Sullivan (the FSF executive director at that time) for hiring me based on what I knew about free software and my organizing experience, and allowed me to bring the two together. +大学时期,我第一次了解到了 copyleft(译注:一种分享软件的思想和方法;简而言之,其目的是保障一款软件对其每一位接收者来说都是自由的),它是关于我们如何才能使用现有的结构来造福自己,并推动变革的。也正是在那时,媒体(以及互联网和软件)的格局开始迅速变化,而这种变化却是以自由为代价的。搬到美国后,我变了许多。在美国,我对社会责任问题有了更加强烈的紧迫感,因此我决定为此付诸行动。我很感激 John Sullivan(当时 FSF 的执行董事),他根据我对自由软件的了解以及我在活动组织方面的经验, 把我招了进来,由此我也得以把这两方面的能力结合到一起。 -**Seth: How did you get into Free Software?** +**Seth:你是如何了解到自由软件的?** -**Zoë:** We tend to expect technical people to be the main people affected by free software, but free software is a movement to defend freedom for anyone using a computer. Actually, software freedom affects members of marginalized communities who are unable to have regular access to a computer. Software shapes their lives as well. +**Zoë:** 我们常常会觉得,自由软件主要影响的是懂技术的人。但是,自由软件运动的目的是捍卫每一位计算机用户的自由。其实,软件自由影响着边缘化社区(译注:因条件受限或受到排斥等,落后于主流社会的发展,而被置于社会边缘的群体)的成员,他们很少有机会使用计算机。而软件也塑造了他们的生活。 -What the concept of copyleft, as well as the GNU Project, has achieved is exceptional. To truly observe the direction society was heading in, and say, "It doesn't have to be this way. We can take matters in our own hands." That changed my outlook on life early on. I started working on the idea of using already existing materials and reintroducing it to different subcultures. In the entertainment industry you see this all the time, the inspiration from and building on other people's work, and the result is a reflection of the time we live in, as well as a nod to history. True progression cannot happen without that freedom. +GNU 工程和 copyleft 的概念,取得的成就是十分卓越的。去真正观察社会发展的方向,然后说:“不一定非得那样才行,我们可以把事情掌握在自己手中。”这在早期改变了我的人生观。我开始有了一种想法,把现有的材料用起来,再把它重新引入不同的亚文化之中。在娱乐行业,这已是家常便饭。从他人的作品中得到灵感,并基于此创造新的作品,其结果就是对我们所处时代的反映,同时也是对历史的致敬。没有这般自由,也不会有真正的进步。 -As a commentary on copyright for film, I spent time working with the National Film Institute in the Netherlands to create a compilation of "orphaned footage" that was shown at a large scale dance event for thousands of young people in an area with a 170m panoramic screen and a live DJ playing to it. They have continued to play it regularly at events like the Dutch *Museumnacht*. +谈谈我对电影版权的看法吧。我曾经与荷兰电影研究所合作,做了一个由许多“孤立的电影片段”组合而成的混剪。然后,在一次有几千名年轻人参加的大型舞蹈活动中,那个混剪就在一个 170 米的全景屏幕上播放了,而且还有现场 DJ 在配合演奏。他们之后也经常在别的活动中播放它,比如说荷兰的 *Museumnacht*。 -Not being a technical person, I expressed these ideas culturally, but over the years, I was confronted with the ideas of free software more and more, and I realized that with the continued integration of software into our lives (and sometimes our bodies), the fight for free software is becoming more relevant every day. In a world where proprietary software prevails, our society will progress in a way that favors profit and the progression of the few over the freedom of many. Without free software, there are so many aspects of life, so many important social causes that cannot truly succeed. +我并不懂技术,于是我通过文化来表达了这些观点。但这些年来,我接触自由软件的思想,接触得越来越频繁了。我于是意识到,随着软件不断融入我们的生活(有时还是身体),自由软件斗争的重要性正日益凸显。在当今的世界,专有软件处于称霸地位,我们社会的发展呈现出以利益驱动、为少数人着想的趋势,而这种趋势是以多数人的自由为代价的。如果没有自由软件,生活中的许多方面、社会的许多重要事业,就不可能真正取得成功。 -**Seth:** When did you start with the FSF? +**Seth:** 你是什么时候加入 FSF 的? -**Zoë:** Early 2019, one week before the last in-person edition of LibrePlanet. +**Zoë:** 在 2019 年初,LibrePlanet 最后一期现场版的前一周(译注:LibrePlant 之后因为疫情而改成了线上活动)。 -**Seth:** What attracted you to the Executive Director role? +**Seth:** 是什么吸引了你去担任执行董事这一职位? -**Zoë:** The FSF is just one organization that is trying to move the needle towards a more equitable, more collaborative, and more software-literate society, but it has been at the core of the movement for a long time. Society is changing rapidly, and most people are not being properly prepared in how to deal with the digital building blocks of today's society i.e. software. This is all incredibly important work, and there are not enough people doing this work. It is important to have an organization that can handle the different challenges that lay ahead. +**Zoë:** 有许多组织都致力于让社会更加公平、更加协作、更加理解软件。FSF 只是其中之一,但它长期以来一直是这场运动的核心。社会正在迅速变化,而许多人却还没准备好如何应对当今社会的数字产物,例如软件。这是一项十分重要的工作,但是去担任这项工作的人还是太少了。能有一个组织来应对未来的各种挑战,这是十分重要的。 -The executive director role, is in a way, merely a facilitating role for the staff and the community to be able to make significant changes toward free software. I believe it is vitally important that we continue to spread the free software message, and with the team we have at the FSF, I believe we can make a real difference. I believe I can use the lessons of working with so many different cultures and people, organizing really challenging projects globally, to help get the best out of all of us. The support I received from staff, management, the community, and the board in this decision, convinced me it was a good decision to take this on. +执行董事这一职位,在某种程度上,不过是辅助了工作人员和社区而已,好让他们为自由软件作出关键的改变。我相信,我们继续传播自由软件的思想,是非常重要的;并且,有了 FSF 的团队协助,我也相信,我能利用好工作在不同文化和人群中的经验,以及组织高挑战性的全球项目的经验,来使我们发挥出最大的潜能。我的这项决定,得到了来自工作人员、管理层和社区的支持,由此我相信,这个决定是正确的。 -**Seth:** What do you see as the biggest challenges in software freedom today? What should the FSF's role be in addressing those challenges? +**Seth:** 你认为当今的软件自由,面临的最大的挑战是什么?FSF 在应对这些挑战的时候,应该承担怎样的使命? -**Zoë:** As software has integrated itself more and more into the basic fabric of society, it's also become more invisible. Software is now so widespread, and we've been conditioned to overlook it. We focus on what a program can do, not how it does it, let alone if it respects you as a user. And in the meantime, software is proliferating more rapidly than ever before. If people don't understand the fabric out of which a program is made, and all they do, all day, is use these programs, then how can we even begin to explain to them that they are being treated unjustly? +**Zoë:** 随着软件越来越多地融入了社会的基本结构,软件也更加无形了。如今,软件存在如此广泛,我们却习惯性地忽视它。我们只关注着程序的功能,却无视了实现这种功能的手段,更别说它尊不尊重你作为一位用户的自由了。而与此同时,软件的发展速度又比以往任何时候都要快。如果人们无法理解程序是如何构成的,而只是整天地用着这些程序,那我们该怎么向他们解释,他们正遭受着不公呢? -The FSF's role is to bring every conversation back to this logic of user freedom, to remind us that the tools we use are not benign. Education and government adoption are important focus areas for that reason. If we get people to focus on the issue of software freedom in those areas, we will truly make a difference. Education will help make sure future generations have a chance at freedom, and free software in government is about protecting citizens from unjust influences through proprietary software (maintaining digital sovereignty). +FSF 的职责就是,让每个人重新谈起用户自由,并提醒人们,我们所使用的工具并没有那么好。因此,教育行业和政府的认可是十分重要的。如果我们让人们关注软件自由在这些领域的问题,那我们必将取得成效。通过教育,我们可以确保后代也有选择自由的权利;而政府采用自由软件,可以保护公民免遭专有软件的不正影响(维护数字主权)。 -We can show people that today's society is teaching us a faulty lesson: that it is normal to be subjected to encroachments on your freedoms for reasons "too complex to understand." If you want convenience, connection, or just to do your job, you need to trust these organizations and abide by their will. That is not true. We have an entire community of people who believe we can have a society that doesn't ask you to surrender your freedoms to function in it. And we have this legal framework that supports our ideas. People of all backgrounds and skill levels join our conversations daily, more and more people care about their freedom, and everyone has their own reasons. We learn new things every day about how we can protect ourselves and others, and I look forward to a freer future. +我们可以告诉人们,当今社会给我们灌输了错误的观点:你的自由受到侵犯是正常的,毕竟事情“太复杂,你理解不了”。如果你想要图个便利,想要相互联系,或者就是想要满足你的需求,那你就得相信这些组织,按照他们的意愿来。这是不对的。我们整个社区都相信,我们能构建一个无需抛弃自由也能处在其中的社会。并且我们也有这样的法律框架来支持我们的观点。每天,不同背景、不同能力的人都加入我们的对话,越来越多的人关心自己的自由,并且每个人都是出于真心的。我们每天都在学习如何去保护自己以及他人,并且我也希望,未来能够更加自由。 -------------------------------------------------------------------------------- From bbff7ff6e7dbeded6ecb572b010253f52e8ebb2b Mon Sep 17 00:00:00 2001 From: Peaksol <1244050218@qq.com> Date: Mon, 18 Jul 2022 13:46:06 +0800 Subject: [PATCH 0422/3123] moved to translated --- ...eet Free Software Foundation Executive Director Zoë Kooyman.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md (100%) diff --git a/sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/translated/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md similarity index 100% rename from sources/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md rename to translated/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md From 14b067997c2a391a688606b7342ff075ddd85425 Mon Sep 17 00:00:00 2001 From: duoluoxiaosheng <554765662@qq.com> Date: Mon, 18 Jul 2022 14:35:41 +0800 Subject: [PATCH 0423/3123] Update 20220716 Listen to music on Linux with Rhythmbox.md --- .../tech/20220716 Listen to music on Linux with Rhythmbox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md b/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md index 9e0c287c0d..2366af1e2c 100644 --- a/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md +++ b/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/listen-music-rhythmbox-linux" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "duoluoxiaosheng" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 64651cc1cf6e4f8f3c80716e3194db104ba8def9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 18 Jul 2022 18:39:02 +0800 Subject: [PATCH 0424/3123] RP @Donkey-Hao https://linux.cn/article-14841-1.html --- ...ssary Ubuntu Apps For Everyone [Part 3].md | 154 ++++++++---------- 1 file changed, 72 insertions(+), 82 deletions(-) rename {translated/tech => published}/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md (53%) diff --git a/translated/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md b/published/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md similarity index 53% rename from translated/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md rename to published/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md index d053ae90da..bfe1119295 100644 --- a/translated/tech/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md +++ b/published/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md @@ -2,57 +2,55 @@ [#]: via: "https://www.debugpoint.com/necessary-ubuntu-apps-2022" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14841-1.html" -10 大必备 Ubuntu 应用——第三篇 +10 大必备 Ubuntu 应用:必备篇 ====== -本文列出了 2022 年可以用于日常工作的 10 个 Ubuntu 必备应用。 -我们经常忘记在有成千上万的免费和开源应用能够与同类商业产品相媲美。此外,若你是 Windows 用户并且想完全摆脱 Windows ,你应该提前想到这些应用。 +![](https://img.linux.net.cn/data/attachment/album/202207/18/183730r55l353ni64aiiu4.jpg) -因此,在这一“必备 Ubuntu 应用”文章中,我们为急需的 Linux 用户列举了 10 款应用。 +> 本文列出了 2022 年可以用于日常工作的 10 个 Ubuntu 必备应用。 + +我们经常忘记,有成千上万的、可以与同类商业产品相媲美的自由开源应用。此外,若你是 Windows 用户,并考虑完全摆脱 Windows ,你也应该事先了解此类应用程序。 + +因此,在这篇“必备的 Ubuntu 应用”文章中,我们为急需这些信息的 Linux 用户列举了 10 款应用。 这是这个系列的第三篇文章,如果你错过了之前的文章,可以通过以下链接阅读: -* [Part 1][1] -* [Part 2][2] +* [第一篇][1] +* [第二篇][2] +### Guake -#### Guake - -你是否想要在重要工作中使用快捷键打开一个终端?这款自上而下的终端程序 Guake 能够帮你实现。如果你正忙于写文章、剪辑视频、在你最喜欢的代码编辑器中写代码,并想要快速用终端检查一些东西并返回到工作中, Guake 能够帮助你。只用按 F12 终端就会立即出现,再次按 F12 它会消失,不用打开或关闭不同的终端。 - +你是否想要在处理重要工作时使用快捷键打开一个终端?这款下拉式的终端程序 Guake 能够帮你实现。如果你正忙于写文章、剪辑视频、在你最喜欢的代码编辑器中写代码,并想要快速用终端检查一些东西并返回到工作中,Guake 能够帮助你。只用按 `F12` 终端就会立即出现,再次按 `F12` 它会消失,不用打开或关闭不同的终端。 ![Guake Running in Ubuntu][3] 在 Ubuntu 或其他发行版,你可以使用以下命令安装。如需更多下载选项,请访问 [此页面][4]。 - ``` sudo apt install guake ``` -**关于 Guake 的更多信息:** +浏览以下链接了解 Guake 的更多信息: * [主页][5] * [源码][6] -#### Safe Eyes +### Safe Eyes -眼睛很宝贵,如果你是长时间使用平板或电脑的用户,你应该保护好眼睛。这里有一款可以帮助你保护眼睛的应用—— Safe Eyes ,能够帮你减少并预防用眼过度。 +眼睛很宝贵,如果你是长时间使用平板或电脑的用户,你应该保护好眼睛。这里有一款可以帮助你保护眼睛的应用 —— Safe Eyes ,能够帮你减少并预防用眼过度。 Safe Eyes 这款应用会在你的工作期间为你提供“顺时针转动眼睛 10 秒”等活动的弹出式指令。 我认为它是每个人都应该尝试使用的一款 Ubuntu 应用。 - ![Safe Eyes][7] -通过 PPA 很容易在 Ubuntu 上安装 Safe Eyes 。你可以打开终端并使用以下命令安装这款应用。 - +通过 PPA 可以很容易在 Ubuntu 上安装 Safe Eyes 。你可以打开终端并使用以下命令安装这款应用。 ``` sudo add-apt-repository ppa:slgobinath/safeeyessudo apt updatesudo apt install safeeyes @@ -60,48 +58,47 @@ sudo add-apt-repository ppa:slgobinath/safeeyessudo apt updatesudo apt install s 更多下载选项,请访问 [此页面][8]。 -**关于 Safe Eyes 的更多信息** +浏览以下链接了解 Safe Eyes 的更多信息: * [主页][9] * [源码][10] -#### Tusk +### Tusk -记笔记的应用有很多。虽然,包括 Ubuntu 在内的所有 Linux 发行版,都带有一个基础文本编辑器,但是想要高级的笔记功能,你需要一个专业应用。 +笔记应用有很多。虽然,包括 Ubuntu 在内的所有 Linux 发行版,都带有一个基础文本编辑器,但是想要高级的笔记功能,你需要一个专业应用。 -Tusk 是适用于 Ubuntu/Linux 的新款印象笔记桌面应用程序。它带有大量主题,例如浅色、深褐色和深色。它具有以下功能: +Tusk 是适用于 Ubuntu/Linux 的新款印象笔记式桌面应用程序。它带有大量主题,例如浅色、深褐色和深色。它具有以下功能: -* 局部和全局自定义快捷键 -* 更新提示 +* 本地和全局自定义快捷键 +* 更新通知 * 基于 Electron 的跨平台应用 -* 可扩展的界面(放大和缩小) +* 可伸缩的界面(放大和缩小) * 浅色、深褐色和深色主题 -* 对焦模式和自动夜间模式 +* 聚焦模式和自动夜间模式 * 将笔记导出为 HTML、PDF 和 Markdown 格式 ![Tusk][11] -该应用有 Linux 发行版的 AppImage 、Deb 和 RPM 文件等格式。你可以从以下链接下载 deb 文件并运行它以在 Ubuntu 中安装它。有关其他下载选项,请访问 [此页面][12]。 +该应用有用于 Linux 发行版的 AppImage 、Deb 和 RPM 文件等格式。你可以从以下链接下载 deb 文件并运行它以在 Ubuntu 中安装它。有关其他下载选项,请访问 [此页面][12]。 +> **[下载 Tusk][13]** -[下载 Tusk][13] - -**关于 Tusk 的更多信息**: +浏览以下链接了解 Tusk 的更多信息: * [主页][14] * [源码][15] -#### Krita +### Krita -如果你是一个艺术家并学着在 Linux 上绘画,那你一定要用 Krita 。Krita 拥有众多绘画工具,包含诸如压敏绘画等高级模式。此外,你也可以在触屏设备上使 Krita 。它包含一些独特的功能: +如果你是一个艺术家并想在 Linux 上学习绘画,那你一定要用 Krita 。Krita 拥有众多绘画工具,包含诸如压感式绘画等高级模式。此外,你也可以在触屏设备上使 Krita 。它包含一些独特的功能: * 自定义工具栏和停靠栏 * 将工作区另存为文件 -* 明暗主题 +* 深浅主题 * 内置矢量引擎,海量画笔 -* 带稳定功能的刷子引擎 -* 支持 PhotoShop 文件 (PSD) -* 全彩支持 +* 带稳定功能的画笔引擎 +* 支持 PhotoShop 文件(PSD) +* 支持全色系 * 支持 Python 脚本扩展 ![Krita Drawing Program][16] @@ -118,58 +115,57 @@ sudo apt install krita * [学习文件][18] * [源码][19] -#### Foliate +### Foliate -当你想要一个电子书阅读器时,你会情不自禁地想到 Calibre 。不过还有一款杰出的 GNOME 应用—— Foliate 。Foliate 是用 GTK 编写的新颖的电子书阅读器,它带来了令人惊奇的功能,例如页面的自定义颜色、亮度、多列支持等等。此外,它还支持 epub、Amazon Kindle、小说、漫画书存档和 Mobipocket 格式,让你完全控制自己的收藏。 +当你想到电子书阅读器时,总是会想到 Calibre 。不过还有一款杰出的 GNOME 应用 —— Foliate 。Foliate 是用 GTK 编写的新颖的电子书阅读器,它带来了令人赞叹的功能,例如自定义页面的颜色、亮度、多栏支持等等。此外,它还支持 Epub、Amazon Kindle、FictionBook、CBA 和 Mobipocket 格式,让你完全控制自己的收藏。 如果你想要一个漂亮而优美的电子书阅读器,非它莫属。 - ![Foliate][20] 使用 Linux 发行版的 Flatpak 安装 Foliate 很容易。首先,你需要 [设置 Flatpak][21] 并单击下方链接进行安装。 -[下载 Foliate][22] +> **[下载 Foliate][22]** -**更多信息**: +浏览以下链接了解 Foliate 的更多信息: * [主页][23] * [源码][24] -#### Bitwarden +### Bitwarden -平均每个人至少有十个账号和密码。若你精通技术,那么你管理密码的数量肯定会增加。使用密码管理器能够更好的保护你的数据以及密码。那么接下来这款应用,Bitwarden ,是当今管理密码最好的应用 +平均而言,每个人至少有十几个在线账号和密码。你越是精通技术,那么你管理密码的数量就会越多。使用密码管理器能够更好的保护你的数据以及密码。那么接下来这款应用,Bitwarden,是当今最好的管理密码的应用。 -Bitwarden 是一款免费开源的密码管理器,能够轻松帮助你生成、存储并保存密码。基于 AES-256 加密方案, Bitwarden 能够在不同设备,比如手机和平板自动同步密码。 +Bitwarden 是一款自由开源的密码管理器,能够轻松帮助你生成、存储并保存密码。在 AES-256 加密的支持下,Bitwarden 能够在不同设备,比如手机和平板自动同步密码。 ![Bitwarden Password Manager desktop client][25] -你可以从 [此页面][26] 下载可执行安装包文件。此外,如果你打算在你最喜欢的浏览器中使用它,也可以在该页面中获取。 +你可以从 [此页面][26] 下载可执行安装包文件。此外,如果你打算在你最喜欢的浏览器中使用它,也可以在该页面中获取扩展。 -关于 Bitwarden 更多信息: +浏览以下链接了解 Bitwarden 更多信息: * [主页][27] * [帮助文档][28] -#### Brave Browser +### Brave Browser -Brave 是基于 Chromium 的以隐私为中心的浏览器。它非常适合希望完全控制其在线活动的用户。Brave 带有内置广告拦截器、隐身浏览、VPN 和 Tor 模式,可实现更多匿名浏览。 +Brave 是一款基于 Chromium 的以隐私为中心的浏览器。它非常适合希望完全控制其在线活动的用户。Brave 带有内置广告拦截器、隐身浏览、VPN 和 Tor 模式,可实现更多匿名浏览。 -最近,Brave 推出了电子邮件服务,你可以直接从浏览器访问邮件。此外,它具备一些 Firefox 、 Google Chrome 以及 Safari 没有的优点。 +最近,Brave 还推出了电子邮件服务,你可以直接从浏览器访问邮件。此外,它具备一些 Firefox 、 Chrome 以及 Safari 所没有的优点。 ![Brave Browser][29] 在 Ubuntu 终端上安装这款浏览器需要额外的命令。你可以 [在此][30] 找到相信的下载教程。 -更多详细信息,浏览官方 [主页][31] 。 +更多详细信息,请浏览官方 [主页][31] 。 -#### Mailspring +### Mailspring -如果你在找一款友好的并且高效的 Linux 桌面电子邮件客户端,并且想要它支持所有的电子邮件协议,那你应该试试 Mailspring 。 +如果你在找一款好用并高效的 Linux 桌面电子邮件客户端,并且想要它支持所有的电子邮件协议,那你应该试试 Mailspring 。 -Mailspring 支持多个账户、统一邮箱并且支持触控和手势。它还支持 Microsoft Office 365 ,这是此电子邮件客户端在 Linux 系统中的最大优势之一。此外,具有快速检索、翻译、取消发送(邮件召回)以及内置的拼写检查等特征,使得它是最好的邮件客户端之一。 +Mailspring 支持多个账户、统一邮箱,并且支持触控和手势。它还支持微软 Office 365 ,这是此电子邮件客户端在 Linux 系统中的最大优势之一。此外,它具有快速检索、翻译、取消发送(邮件召回)以及内置的拼写检查等特征,使得它成为最好的邮件客户端之一。 -它还配备了每月最低费用的付费版本和附加功能,例如公司资料创建、链接跟踪、阅读回执、模板和见解。专业版中的洞察功能提供了有关你在白天何时收到更多电子邮件的详细信息。 +它还有一个付费版本,只需要每月付出少量费用,即可得到更多功能,例如创建公司简介、链接跟踪、阅读回执、模板和洞察力功能。专业版中的洞察力功能提供了你在一天中何时收到更多电子邮件的详细信息。 ![Mailspring Email Client][32] @@ -177,44 +173,42 @@ Mailspring 支持多个账户、统一邮箱并且支持触控和手势。它还 访问官方 [Snapcraft 页面][33] 获取 Snap 包并安装。 -点击 [这里] **这里缺少链接(译注)** 下载 deb 包。下载后,你可以双击 deb 文件通过 Ubuntu 应用商店程序安装。 - -更多信息请参考以下链接: +点击 [这里][33a] 下载 deb 包。下载后,你可以双击 deb 文件通过 Ubuntu 应用商店程序安装。 +浏览以下链接了解 Mailspring 更多信息: * [主页][34] -* [其他下载选项][35] (Fedora Linux, Windows 以及 macOS) +* [其他下载选项][35](Fedora Linux、Windows 以及 macOS) -#### Blender +### Blender -我确信你听说过 Blender 。 Blender 是一款免费并开源的专业级图形设计软件,几乎可以完成图形项目所需的一切。 +我肯定你听说过 Blender 。 Blender 是一款自由开源的专业级图形设计软件,几乎可以完成你的图形项目的一切需求。 ![Blender Video Editor][36] -你可以创建动画电影、视觉效果、艺术作品、3D 打印模型、动态图形、交互式 3D 应用程序和计算机游戏。 Blender 的功能包括 3D 建模、UV 展开、纹理、光栅图形编辑、绑定和蒙皮、流体和烟雾模拟、粒子模拟、柔体模拟、雕刻、动画、匹配移动、渲染、运动图形、视频编辑和合成。 - -它是一个专业级的应用程序,还是免费和开源的。 +你可以创建动画电影、视觉效果、艺术作品、3D 打印模型、动态图形、交互式 3D 应用程序和计算机游戏。 Blender 的功能包括 3D 建模、UV 展开、贴图、光栅图形编辑、套索和蒙皮、流体和烟雾模拟、粒子模拟、柔体模拟、雕刻、动画、匹配移动、渲染、运动图形、视频编辑和合成。 +它是一个专业级的应用程序,还是自由开源的。 想要在 Ubuntu 中轻松安装,打开应用商店,搜索 Blender,然后点击安装。或者,你也可以打开终端窗口并运行以下命令进行安装。 ``` sudo apt install blender ``` + 该软件适用于 Windows、macOS 和其他平台。你可以访问 [官方下载页面][37] 了解更多详情。 - -**更多信息:** +浏览以下链接了解 Blender 更多信息: * [主页][38] * [详细功能亮点][39] * [文档][40] -#### Ungoogled Chromium +### Ungoogled Chromium -如果你想要一个没有 Google 应用和服务的干净浏览器,你应该尝试使用 Ungoogled Chromium 浏览器。在没有 Google 集成服务的情况下,它可以替代现有的 Chromium 体验。 +如果你想要一个没有谷歌的应用和服务的干净浏览器,你应该试试 Ungoogled Chromium 浏览器。它是一个没有谷歌集成服务的,提供了原装 Chromium 体验的替代品。 -例如,它没有代码中的所有预编译二进制文件和所有 Google 集成,并且还禁用了需要手动启用以获得更好控制的功能。 +例如,它去除了代码中的所有预编译二进制文件和所有谷歌集成,并且还禁用了需要手动启用的功能,以获得更好控制。 或许一个合适的浏览器,才会有最好的 Chromium 体验。 @@ -225,19 +219,18 @@ sudo apt install blender ``` flatpak install flathub com.github.Eloston.UngoogledChromium ``` + 浏览 [官方 GitHub 页面][43] 获取该浏览器更多信息。 - -#### Tilix +### Tilix ![Tilix Terminal Window][44] -必备 Ubuntu 应用程序列表中的最后一个应用程序是 Tilix 。Tilix 是一个基于 GTK 的基于平铺窗口的终端仿真器。它带有自定义标题、附加通知支持(用于命令完成)和透明背景图像支持。此外,Tilix 还允许你在终端窗口中添加自定义图像背景。最后,你可以在一个窗口中并排创建多个终端窗口。 +必备 Ubuntu 应用程序列表中的最后一个应用程序是 Tilix 。Tilix 是一个基于 GTK 的,平铺式的终端仿真器。它带有自定义标题、以及通知支持(用于命令补完)和透明背景图像支持。此外,Tilix 还允许你在终端窗口中添加自定义图像背景。最后,你可以在一个窗口中并排创建多个终端窗口。 这是一个用 GTK 编写的高级终端,你可能会发现它很有用。 -所有 Linux 发行版都有安装包。在 Ubuntu 或相关版本,运行以下命令进行安装: - +所有 Linux 发行版上都有它的安装包。在 Ubuntu 或相关发行版,运行以下命令进行安装: ``` sudo apt install tilix @@ -245,15 +238,11 @@ sudo apt install tilix 更多信息请浏览 Tilix [主页][45] 。 - ### 结语 这是 2022 年 5 篇系列的必备 Ubuntu 应用程序的第 3 篇。我希望你能够在 Ubuntu 或者其他 Linux 发行版上安装,并在你的日常工作中使用这些应用程序。同时,欢迎在下方评论,让我知道你最喜欢哪一款应用。 -最后,请继续关注本 Ubuntu 应用程序系列的第 4 部分。如果你错过了其他部分,你可以在这里阅读它们: - -* [第一篇][46] -* [第二篇][47] +最后,请继续关注本 Ubuntu 应用程序系列的第 4 部分。 干杯! @@ -266,7 +255,7 @@ via: https://www.debugpoint.com/necessary-ubuntu-apps-2022 作者:[Arindam][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -305,6 +294,7 @@ via: https://www.debugpoint.com/necessary-ubuntu-apps-2022 [31]: https://brave.com [32]: https://www.debugpoint.com/wp-content/uploads/2022/07/Mailspring-Email-Client.jpg [33]: https://snapcraft.io/mailspring +[33a]: https://updates.getmailspring.com/download?platform=linuxDeb [34]: https://getmailspring.com/ [35]: https://getmailspring.com/download [36]: https://www.debugpoint.com/wp-content/uploads/2019/09/Blender-Video-Editor.jpg From 49cb2df3adc15189e12829e1a5fef39b61b7d045 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 19:57:32 +0800 Subject: [PATCH 0425/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20How=20I=20configure=20a=20DHCP=20server?= =?UTF-8?q?=20on=20my=20personal=20network.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...re a DHCP server on my personal network.md | 464 ++++++++++++++++++ 1 file changed, 464 insertions(+) create mode 100644 sources/tech/20220718 How I configure a DHCP server on my personal network.md diff --git a/sources/tech/20220718 How I configure a DHCP server on my personal network.md b/sources/tech/20220718 How I configure a DHCP server on my personal network.md new file mode 100644 index 0000000000..adb287d97f --- /dev/null +++ b/sources/tech/20220718 How I configure a DHCP server on my personal network.md @@ -0,0 +1,464 @@ +[#]: subject: "How I configure a DHCP server on my personal network" +[#]: via: "https://opensource.com/article/22/7/configure-dhcp-server" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I configure a DHCP server on my personal network +====== +The Dynamic Host Configuration Protocol (DHCP) provides network configuration data to client hosts on a network, allowing for centralized network configuration management. + +![A network diagram][1] + +Image by: Opensource.com + +The Dynamic Host Configuration Protocol (DHCP) provides a centralized and automated method for configuring the network attributes of hosts when they connect to the network. The DHCP server assigns IP addresses to hosts, along with configuration information such as DNS servers, the domain name used for DNS searches, the default gateway, an NTP (Network Time Protocol) server, a server from which a network boot can be performed if necessary, and more. DHCP eliminates the need to configure each network host individually. + +DHCP is also useful for configuring laptops, mobile phones, tablets, and other devices which might connect as unknown guests. This configuration is typical for WiFi access in public places. However, DHCP offers even more advantages when used in a closed, private network to manage static IP address assignments for known hosts using the central DHCP database. + +The DHCP server uses a database of information created by the sysadmin. This database is entirely contained in the `/etc/dhcp/dhcpd.conf` configuration file. DHCPD stands for *DHCP Daemon*, which is the background server process. Like all well-designed Linux configuration files, it is a simple ASCII plain text file. This structure means that it is open and knowable. It can be examined by standard, simple text manipulation tools like `cat` and `grep`, and be modified by any text editor such as EMACS or Vim, or a stream editor such as `sed`. + +The DHCP client is always installed on Linux hosts—at least on Red Hat-based distros and all other distros I have tried—because of the high probability that they will be connected to a network using DHCP and not with a static configuration. + +When a host configured for DHCP boots or its NIC is activated, it sends a broadcast request to the network asking for a DHCP server to respond. The client and the server engage in a bit of conversation, and the server sends the configuration data to the client, which uses it to configure its network connection. Hosts may have multiple NICs connected to different networks. Any or all may be configured using DHCP or a static configuration. I will keep the setup for this article simple with only a few hosts—my own personal network. + +### Network description + +This article uses my own network for illustration. This is much more interesting and realistic than using a set of virtual machines on a virtual network. Each host on my network has the Fedora 36 [Xfce][2] spin installed. Due to my desire to experiment, my network is smaller but contains more complex network configurations than might be found in a standard home or small business network. + +Before setting up DHCP, I created a network address map like the one shown in Figure 1. This diagram includes MAC addresses, IP addresses, and NIC names for each host. The map enabled me to visualize my network's logical structure and determine which hosts needed DHCP configuration and which needed static IP configuration. + +| NIC | MAC | Static/DHCP | IP Address | Comments | +| :- | :- | :- | :- | :- | +| wally1 | | | Primary firewall and router | +| eno1 | 04:d9:f5:1c:d5:c5 | Static | N/A | Disabled due to errors | +| enp1s0 | 84:16:f9:03:e9:89 | Static | 192.168.10.1/24 | SSID Linux Boy | +| enp2s0 | 84:16:f9:03:fd:85 | Static | 192.168.0.254/24 | Inside network | +| enp4s0 | 84:16:f9:04:44:03 | Static | 45.20.209.41/29 | WAN connection | +| | | | | | +| yorktown | | | Main server | +| enp0s31f6 | e0:d5:5e:a2:de:a4 | Static | 192.168.0.52/24 | DHCP, NTP, DNS, HTTP, + | +| | | | | | +| david | | | Main workstation | +| enp0s31f6 | b0:6e:bf:3a:43:1f | DHCP | 192.168.0.1/24 | | +| | | | | | +| bunkerhill | | | Testing workstation | +| eno1 | 2c:f0:5d:26:c2:09 | DHCP | 192.168.0.9/24 | | +| | | | | | +| enterprise | | | Workstation | +| eno1 | 30:9c:23:e9:a4:e6 | DHCP | 192.168.0.2/24 | | +| | | | | | +| essex | | | Testing workstation | +| eno1 | e0:69:95:45:c4:cd | DHCP | 192.168.0.6/24 | | +| intrepid | | | Testing workstation | +| enp0s25 | 00:1e:4f:df:3a:d7 | DHCP | 192.168.0.5/24 | | +| | | | | | +| wasp | | | Testing workstation | +| eno1 | e8:40:f2:3d:0e:a8 | DHCP | 192.168.0.8/24 | | +| | | | | | +| hornet | | | Testing workstation | +| enp0s25 | e0:69:95:3c:07:37 | DHCP | 192.168.0.07/24 | | +| | | | | | +| voyager | | | Laptop | +| enp111s0 | 80:fa:5b:63:37:88 | DHCP | 192.168.0.201/24 | | + +*Figure 1: Network Address Map* + +The **yorktown** server hosts the DHCP service and the rest of my server services. Host **wally** is my firewall and router. The hosts **yorktown** and **wally** both use static network configurations and the rest use DHCP configuration, as shown in Figure 1. + +### Install the DHCP server + +First, I checked the DHP installation status and then installed the DHCP server, as shown in Figure 2. + +``` +[root@yorktown ~]# dnf list installed dhcp* +Installed Packages +dhcp-client.x86_64     12:4.3.6-28.fc29           @anaconda +dhcp-common.noarch     12:4.3.6-28.fc29           @anaconda +dhcp-libs.x86_64       12:4.3.6-28.fc29           @anaconda + +[root@yorktown ~]# +``` + +*Figure 2: Check which DHCP packages are installed on my server.* + +The DHCP server is not installed by default, so I added it myself. This task must be performed as root. The result shows the DHCP client has been installed along with libraries and supporting files common to the client, server, and possibly the DHCP development packages. The DHCP server is not installed, so I installed it using the command in Figure 3. + +``` +[yorktown ~]# dnf install -y dhcp-server +Last metadata expiration check: 2:39:06 ago on Wed 26 Dec 2018 12:19:46 PM EST. +Dependencies resolved. +================================================================================================= + Package                Arch              Version                        Repository         Size +================================================================================================= +Installing: + dhcp-server            x86_64            12:4.3.6-28.fc29               fedora            431 k +[...] +Installed: +  dhcp-server-12:4.3.6-28.fc29.x86_64                                                             + +Complete! +``` + +*Figure 3: Installing the DHCP server package.* + +That was easy, and no reboot of the server was required. + +### Configure the DHCP server + +With the DHCP server installed, the next step is to configure the server. Having more than one DHCP server on the same network can cause problems because one would never know which DHCP server is providing the network configuration data to the client. However, a single DHCP server on one host can listen to multiple networks and provide configuration data to clients on more than one network. + +DHCP can provide DNS names for the gateway and other servers. For example, the NTP server could use that server's hostname (**NTP1**) instead of the IP address. Most of the time, this works well, but this configuration might cause problems if the DNS name services server were to be disabled or my own server does not exist. + +The IP addresses specified in Figure 1 are the ones that DHCP will assign to the hosts on my internal network. I have arbitrarily chosen these IP addresses for my network. + +The details like the values for hostnames, MAC addresses, and IP addresses will be different for your network, but the basic requirements will be the same. + +### The dhcpd.conf file + +As root, you can look at the existing `dhcpd.conf` file, which is non-functional when first installed. Make `/etc/dhcp` the PWD and then `cat` the `dhcpd.conf` file to view the contents. There is not much in the file, but it does point to an example file named `/usr/share/doc/dhcp-server/dhcpd.conf.example` that you can read to understand the main components and syntax of the `dhcpd.conf` file. I strongly suggest you read this example file. + +I started with a previous version of the example file many years ago when I first decided to move to DHCP configuration for my network. The comment I added in this section indicates that it was probably based on the Fedora 18 version of `dhcpd.conf` and my file is still based on that older file. I have left many of the original comments and commented out the default settings in my final file. Since this file is intended as a guide and the basis for a working `dhcpd.conf` configuration, I decided to leave as much intact as possible in case I needed that information later. + +The `dhcpd.conf(5)` man page also has some excellent descriptions of the various configuration statements that are likely to be needed by a DHCP server. + +There are two major sections in any `dhcpd.conf` file. The global section contains settings for all subnets for which this server provides DHCP services. The second section is the subnet declaration. You can use multiple subnet declarations if this server provides DHCP services for multiple networks. + +#### Syntax + +The dhcpd service is very strict in its interpretation of the `dhcpd.conf` file. Each subnet and each host declared within each subnet must begin and end with curly braces (`{}` ), and all statements must end in a semicolon (`;` ). A missing curly brace has caused me much angst and gnashing of teeth more than once in the past. The curly braces for the subnet declaration also surround the host declaration because the host declarations need to be inside the subnet declaration. + +#### The global section + +This global section, shown in Figure 4, contains global configuration items common to the subnets that DHCP serves. I have only a single subnet, but I still placed these statements in the global section because they are likely to be the same for all subnets. If they were to differ for a given subnet, creating a statement with different values in the subnet declaration overrides the global declaration. + +Since I only have one network, I have kept the option declarations found in this section of the sample file because I had no reason to change or delete them. + +``` +# DHCP Server Configuration file. +#   see /usr/share/doc/dhcp*/dhcpd.conf.sample +#   see dhcpd.conf(5) man page +# +# +# Changes based on the sample dhcpd.conf for Fedora 18. +# option definitions common to all supported networks... +# option domain-name "example.org"; +# option domain-name-servers ns1.example.org, ns2.example.org; +# +# All networks get the default lease times +default-lease-time 7200;        # 2 hours +max-lease-time 14400;           # 4 hours + +# Use this to enable / disable dynamic dns updates globally. +ddns-update-style none; +# +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +authoritative; +# +# ignore client-updates; +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +authoritative; +# +``` + +*Figure 4: The global section of the dhcpd.conf file.* + +I made three changes in this section from that of the original file: + +* Default lease time:I set the default lease times in seconds. This setting determines how frequently the client hosts must refresh the lease on the IP address. Shorter times are good if clients connect and disconnect frequently. The default lease time of 10 minutes is pretty short, so I set it for two hours. I also changed the maximum lease time from two hours to four hours. +* Dynamic DNS: I disabled dynamic DNS because I don't use that in my network. +* Authoritative server: I specified that this is the authoritative DHCP server for my network. + +#### The subnet section + +The subnet section of the `dhcpd.conf` file contains two subsections. The first has the values common to all hosts in the defined subnet. The host declaration subsection includes declarations for all hosts specifically managed by DHCP. + +##### The common part of the subnet section + +This common subsection of the subnet section, shown in Figure 5, sets numerous common values for all of the hosts declared in the host subsection of this subnet. I define the subnet in the first line as type C range 192.168.0.0 in the old classful notation, with a subnet mask of 255.255.255.0. This translates to 192.168.0.0/24 in the Classless Inter-Domain Routing (CIDR) network notation. + +I don't see any indication in any documentation that the `dhcpd.conf` file can use [CIDR notation][3] for IPv4 at this time. The `dhcpd.conf` man page indicates that you can use CIDR notation for IPv6. + +This subsection specifies the router IP address and netmask, the domain name, and the DNS domain search name. The domain search name is used when performing searches where no domain name is specified in the query. When a command such as `ping essex` is specified, the DNS search is performed for `essex.both.org` instead. + +Since I don't use [NIS domain names][4], I commented out that option. + +This section also provides a list of [DNS servers][5] to the clients. Clients search these servers in the order they are listed. I use the Google DNS servers as the backup to my internal DNS server, partly because I registered my domain names with Google Domains. + +``` +subnet 192.168.0.0 netmask 255.255.255.0 { + +# --- default gateway +        option routers                  192.168.0.254; +        option subnet-mask              255.255.255.0; + +#       option nis-domain               "both.org"; +        option domain-name              "both.org"; +        option domain-search            "both.org"; +        option domain-name-servers      192.168.0.52, 8.8.8.8, 8.8.4.4; + +        option time-offset              -18000; # Eastern Standard Time +        option ntp-servers              192.168.0.52; +#       option netbios-name-servers     192.168.0.1; +# --- Selects point-to-point node (default is hybrid). Don't change this unless +# -- you understand Netbios very well +#       option netbios-node-type 2; + +################################################################################ +# Dynamic DHCP allocation range for otherwise unknown hosts                    # +################################################################################ +        range dynamic-bootp 192.168.0.220 192.168.0.229; +#       default-lease-time 21600; +#       max-lease-time 43200; +``` + +*Figure 5: The common subsection of the subnet section for my network.* + +I specified my local [Network Time Protocol (NTP)][6] server and the offset from GMT. This service synchronizes the time on all of my hosts. + +Configuring the network settings for guest hosts such as laptops and other mobile devices is also possible with DHCP. I have no information (such as the MAC address) for these computers but must assign an IP address anyway. In most cases, the guest hosts must trust the DHCP service. I dislike having guests on my network, so I usually relegate guest hosts to a second network subnet. This approach protects my primary network because the guest hosts have no access to it. + +The last active line in this part of my `dhcpd.conf` file specifies a small range of IP addresses for devices that might plug into my wired network. For example, I plug laptops and desktop systems into my network when working on them after I have determined that they are not infected—usually only when I have wiped the hard drives and installed Linux. I never, ever connect a Windows computer directly to my network. + +The original sample file used different lease times for this first subnet than I specified in the global section, so I have commented them out. + +##### The host declaration part of the subnet section + +The subnet section shown in Figure 6 is where the individual hosts are declared. Each host requires a name, the MAC address of its NIC, and the fixed address it will always use. + +I use comments in this host declaration subsection to help define and document the address structure for my network. I also use comments in my DNS zone file to record the same information. + +``` +################################################################################ +# The range from 192.168.0.1 - 20 is for my personal hosts and workstations.   # +################################################################################ +        # david +        host david { +                hardware ethernet b0:6e:bf:3a:43:1f; +                fixed-address 192.168.0.1; +        } +        # bunkerhill +        host alice { +                hardware ethernet 30:9C:23:E9:A4:E6; +                fixed-address 192.168.0.2; +        } +        # intrepid +        host intrepid { +                hardware ethernet 00:1e:4f:df:3a:d7; +                fixed-address 192.168.0.5; +        } +        # essex +        host essex { +                hardware ethernet E0:69:95:45:C4:CD; +                fixed-address 192.168.0.6; +        } +        # Hornet +        host hornet { +                hardware ethernet e0:69:95:3c:07:37; +                fixed-address 192.168.0.7; +        } +        # Wasp +        host wasp { +                hardware ethernet e8:40:f2:3d:0e:a8; +                fixed-address 192.168.0.8; +        } +        # bunkerhill +        host bunkerhill { +                hardware ethernet 2c:f0:5d:26:c2:09; +                fixed-address 192.168.0.9; +        } + + +################################################################################ +# IP Addresses between 192.168.0.50 and 192.168.0.59 are for physical servers  # +# which always use static IP addressing.                                       # +################################################################################ + +################################################################################ +# The range from 192.168.0.70 - 80 is for network printers.                    # +################################################################################ +        host brother1 { +                hardware ethernet 30:05:5C:71:F7:7C; +                fixed-address 192.168.0.70; +        } + +################################################################################ +# The range from 192.168.0.91 - 100 is for various hosts under test            # +################################################################################ +        host test1 { +                hardware ethernet 00:1E:4F:B1:EB:78; +                fixed-address 192.168.0.91; +        } +        host admin { +                hardware ethernet 00:22:4d:a6:5c:1b; +                fixed-address 192.168.0.92; +        } +################################################################################ +# The range from 192.168.0.100 to 192.168.0.150 is for most virtual machines.  # +################################################################################ +        host testvm1 { +                hardware ethernet 08:00:27:7B:A7:0C; +                fixed-address 192.168.0.101; +        } +        host testvm2 { +                hardware ethernet 08:00:27:BE:E1:02; +                fixed-address 192.168.0.102; +        } +        host fedora35vm { +                hardware ethernet 08:00:27:A8:E7:4F; +                fixed-address 192.168.0.135; +        } +        host fedora36vm { +                hardware ethernet 08:00:27:07:CD:FE; +                fixed-address 192.168.0.136; +        } + +################################################################################ +# The range from 192.168.0.160 - 192.168.0.179 is reserved                     # +################################################################################ + +################################################################################ +################################################################################ +################################################################################ +# The range from 192.168.0.180 to 192.168.0.189 is for virtual machines used   # +# in book research. These addresses usually connect to a second or third NIC   # +# for those hosts to provide a back-door access.                               # +################################################################################ +################################################################################ +################################################################################ +        # Adapter 2 +        host studentvm1 { +                hardware ethernet 08:00:27:C4:6E:06; +                fixed-address 192.168.0.181; +        } +        # Adapter 2 +        host studentvm2 { +                hardware ethernet 08:00:27:9F:67:CB; +                fixed-address 192.168.0.182; +        } + +################################################################################ +# The range from 192.168.190 - 199 is for windows and other strange stuff      # +################################################################################ +        # Windows10 VM +        host win10 { +                hardware ethernet 08:00:27:8C:79:E8; +                fixed-address 192.168.0.190; +        } +################################################################################ +# The range from 192.168.0.200 - 209 is for mobile and miscellaneous devices   # +################################################################################ +        # voyager (System76 Oryx Pro 4) +        host voyager { +                hardware ethernet 80:fa:5b:63:37:88; +                fixed-address 192.168.0.201; +        } +        # voyager2  (System76 Oryx Pro 6) +        host voyager2 { +                hardware ethernet 80:fa:5b:8d:c6:75; +                fixed-address 192.168.0.202; +        } +} +``` + +*Figure 6: The host declaration section of the dhcpd.conf file.* + +Different option declarations can be made for any subnet or any host within a subnet. For example, one subnet may specify a different router than the rest of the subnets, or one host may use a different router than the other hosts in a subnet. + +To activate the new DHCP configuration, I started, enabled, and verified the DHCP service, as seen in Figure 7. + +``` +[yorktown ~]# systemctl start dhcpd + +[yorktown ~]# systemctl enable dhcpd +Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service. + +[yorktown ~]# systemctl status dhcpd +● dhcpd.service - DHCPv4 Server Daemon +     Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled) +    Drop-In: /etc/systemd/system/dhcpd.service.d +             └─override.conf +     Active: active (running) since Sun 2022-06-26 15:57:12 EDT; 11s ago +       Docs: man:dhcpd(8) +             man:dhcpd.conf(5) +    Process: 1347205 ExecStartPre=/bin/sleep 60 (code=exited, status=0/SUCCESS) +   Main PID: 1347220 (dhcpd) +     Status: "Dispatching packets..." +      Tasks: 1 (limit: 38318) +     Memory: 4.9M +        CPU: 15ms +     CGroup: /system.slice/dhcpd.service +             └─ 1347220 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid + +Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Wrote 10 leases to leases file. +Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Listening on LPF/enp0s31f6/e0:d5:5e:a2:de:a4/192.168.0.0/24 +Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Sending on   LPF/enp0s31f6/e0:d5:5e:a2:de:a4/192.168.0.0/24 +Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Sending on   Socket/fallback/fallback-net +Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Server starting service. +Jun 26 15:57:12 yorktown.both.org systemd[1]: Started dhcpd.service - DHCPv4 Server Daemon. +Jun 26 15:57:16 yorktown.both.org dhcpd[1347220]: DHCPREQUEST for 192.168.0.2 from 30:9c:23:e9:a4:e6 via enp0s31f6 +Jun 26 15:57:16 yorktown.both.org dhcpd[1347220]: DHCPACK on 192.168.0.2 to 30:9c:23:e9:a4:e6 via enp0s31f6 +Jun 26 15:57:17 yorktown.both.org dhcpd[1347220]: DHCPREQUEST for 192.168.0.8 from e8:40:f2:3d:0e:a8 via enp0s31f6 +Jun 26 15:57:17 yorktown.both.org dhcpd[1347220]: DHCPACK on 192.168.0.8 to e8:40:f2:3d:0e:a8 via enp0s31f6 +``` + +*Figure 7: Start and verify that the DHCP server started without errors. You can even see a couple of fulfilled requests in this example.* + +There should be no errors from the status command, but, like my server above, there may be several statements indicating the DHCP daemon is listening on a specific NIC and the MAC address of the NIC. If this information is not correct, verify that the `dhcpd.conf` file is valid and restart the DHCP server. If there are syntactical errors in the configuration, they will appear in the status report. + +I also ran the command shown in Figure 8 on some of my hosts to verify that the network is configured with the correct IP address, router, and DNS servers. This command shows the installed NICs on each host, including the loopback device, lo. + +``` +[essex ~]# nmcli +eno1: connected to Wired connection 1 +        "Intel 82579V" +        ethernet (e1000e), E0:69:95:45:C4:CD, hw, mtu 1500 +        ip4 default +        inet4 192.168.0.6/24 +        route4 192.168.0.0/24 metric 100 +        route4 default via 192.168.0.254 metric 100 +        inet6 fe80::3220:6681:4348:71df/64 +        route6 fe80::/64 metric 1024 + +lo: unmanaged +        "lo" +        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536 + +DNS configuration: +        servers: 192.168.0.52 8.8.8.8 8.8.4.4 +        domains: both.org +        interface: eno1 +``` + +*Figure 8: Verify DHCP provided the correct data to the hosts.* + +### Wrap up + +DHCP provides network configuration data to client hosts on a network, allowing for centralized network configuration management. A DHCP server can provide various configuration options to clients, including many required for Windows hosts that might connect to the network. This configuration data includes gateway routers, NTP servers, DNS servers, PXE boot servers, and much more. + +I use DHCP for most of my hosts because it is less work in the long run than static configurations on each host. The default setup for NetworkManager on newly installed hosts is to use DHCP. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/configure-dhcp-server + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/LAW_fedora_cla.png +[2]: https://opensource.com/article/19/12/xfce-linux-desktop +[3]: https://opensource.com/article/16/12/cidr-network-notation-configuration-linux +[4]: https://en.wikipedia.org/wiki/Network_Information_Service +[5]: https://opensource.com/article/17/4/introduction-domain-name-system-dns +[6]: https://en.wikipedia.org/wiki/Time_server From 641e2d241a04756c5e8a17df23a640e910e04d54 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 19:59:56 +0800 Subject: [PATCH 0426/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20Create=20a=20JavaScript=20API=20in=206=20?= =?UTF-8?q?minutes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...18 Create a JavaScript API in 6 minutes.md | 275 ++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 sources/tech/20220718 Create a JavaScript API in 6 minutes.md diff --git a/sources/tech/20220718 Create a JavaScript API in 6 minutes.md b/sources/tech/20220718 Create a JavaScript API in 6 minutes.md new file mode 100644 index 0000000000..677fcc67f1 --- /dev/null +++ b/sources/tech/20220718 Create a JavaScript API in 6 minutes.md @@ -0,0 +1,275 @@ +[#]: subject: "Create a JavaScript API in 6 minutes" +[#]: via: "https://opensource.com/article/22/7/javascript-api-express" +[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create a JavaScript API in 6 minutes +====== +Express yourself by coding a fun API using Express, a NodeJS minimalist web framework. + +This article demonstrates creating a base API with Express and JavaScript. Express is a NodeJS minimalist web framework. This combination allows for minimal effort to get an API up and running at the speed of light. If you have six minutes of free time, you can get this API working to do something useful. + +### Get started with NodeJS + +What you need for this project is the NodeJS version of your choice. In this example, I use [NodeJS][2] and [HTTPie][3] for testing, a web browser, and a terminal. Once you have those available, you're ready to start. Let's get this show on the road! + +Set up a project directory and install the tools to get started: + +``` +$ mkdir test-api +``` + +The `npm init` command creates the package JSON for our project below. Type `npm init` and press enter several times. The output is shown below: + +``` +$ npm init + +Press ^C at any time to quit. +package name: (test-api) +version: (1.0.0) +description: +entry point: (index.js) +test command: +git repository: +keywords: +author: +license: (ISC) +About to write to /Users/cherrybomb/test-api/package.json: + +{ +  "name": "test-api", +  "version": "1.0.0", +  "description": "", +  "main": "index.js", +  "scripts": { +    "test": "echo \"Error: no test specified\" && exit 1" +  }, +  "author": "", +  "license": "ISC" +} + + +Is this OK? (yes) +``` + +This utility walks you through creating a `package.json` file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields and exactly what they do. + +Use `npm install {pkg}` afterward to install a package and save it as a dependency in the `package.json` file. + +Next, install Express using the [npm CLI][4]: + +``` +$ npm install express Output shown below + +npm WARN cherrybomb No description +npm WARN cherrybomb No repository field. +npm WARN cherrybomb No license field. + ++ express@4.18.1 +added 60 packages from 39 contributors and audited 136 packages in 4.863s + +16 packages are looking for funding +  run `npm fund` for details + +found 0 vulnerabilities +``` + +Finally, create your source directory and your `index.js` file, which is where the application code lives: + +``` +$ mkdir src +$ touch src/index.js +``` + +Time to code! + +### Code an API + +For your first act of coding, make a simple "hello world" API call. In your `index.js` file, add the code snippet below: + +``` +const express = require('express') +const app = express() +const port = 5000 + +app.get('/', (req, res) => { +  res.send('Hello World!') +}) + +app.listen(port, () => { +  console.log(`Example app listening on port ${port}`) +}) +``` + +Each of these constant variables is available in the scopes below. Because you're not using the following scopes within the code, these constants are used without too much extra thought. + +When you call `app.get`, you define the `GET{rest article needed}` endpoint to a forward slash. This also sets the "hello world" response. + +Finally, in the last section, you will start your app on port 5000. The output on your terminal shows your defined message in a file called `console.log`. + +To start your application, run the following command, and see the output as shown: + +``` +$ test-api → node ./src/index.js +Example app listening on port 5000 +``` + +### Test the API + +Now that everything is up and running, make a simple call to ensure your API works. For the first test, just open a browser window and navigate to `localhost:5000`. + +![Express API Hello World][5] + +(Jessica Cherry, CC BY-SA 4.0) + +Next, check out what HTTPie says about the API call: + +``` +HTTP/1.1 200 OK +Connection: keep-alive +Content-Length: 12 +Content-Type: text/html; charset=utf-8 +Date: Tue, 21 Jun 2022 14:31:06 GMT +ETag: W/"c-Lve95gjOVATpfV8EL5X4nxwjKHE" +Keep-Alive: timeout=5 +X-Powered-By: Express + +Hello World! +``` + +And there you have it! One whole working API call. So what's next? Well, you could try some changes to make it more interesting. + +### Make your API fun + +The "hello world" piece is now done, so it's time to do some cool math. You'll do some counts instead of just "hello world." + +Change your code to look like this: + +``` +const express = require('express') +const app = express() +const port = 5000 + +let count = 0; + +app.get('/api', (req, res) => { +res.json({count}) +}) + +app.post('/api', (req, res) => { +++count; +res.json({count}); +}); + +app.listen(port, () => { +console.log(`Example app listening on port ${port}`) +}) +``` + +Aside from a `GET` command in your code, you now have a `POST` to make some changes to your count. With count defined as **0**, the `LET` command allows changes to the `COUNT` variable. + +In `app.get`, you get the count, and in `app.post`, you **++count**, which counts upwards in increments of 1. When you rerun the `GET`, you receive the new number. + +Try out the changes: + +``` +test-api → node ./src/index.js +Example app listening on port 5000 +``` + +Next, use HTTPie to run the `GET` and `POST` operations for a test to confirm it works. Starting with `GET`, you can grab the count: + +``` +test-api → http GET 127.0.0.1:5000/api +HTTP/1.1 200 OK +Connection: keep-alive +Content-Length: 11 +Content-Type: application/json; charset=utf-8 +Date: Tue, 21 Jun 2022 15:23:06 GMT +ETag: W/"b-ch7MNww9+xUYoTgutbGr6VU0GaU" +Keep-Alive: timeout=5 +X-Powered-By: Express + +{ +    "count": 0 +} +``` + +Then do a `POST` a couple of times, and watch the changes: + +``` +test-api → http POST 127.0.0.1:5000/api +HTTP/1.1 200 OK +Connection: keep-alive +Content-Length: 11 +Content-Type: application/json; charset=utf-8 +Date: Tue, 21 Jun 2022 15:28:28 GMT +ETag: W/"b-qA97yBec1rrOyf2eVsYdWwFPOso" +Keep-Alive: timeout=5 +X-Powered-By: Express + +{ +    "count": 1 +} + + +test-api → http POST 127.0.0.1:5000/api +HTTP/1.1 200 OK +Connection: keep-alive +Content-Length: 11 +Content-Type: application/json; charset=utf-8 +Date: Tue, 21 Jun 2022 15:28:34 GMT +ETag: W/"b-hRuIfkAGnfwKvpTzajm4bAWdKxE" +Keep-Alive: timeout=5 +X-Powered-By: Express + +{ +    "count": 2 +} +``` + +As you can see, the count goes up! Run one more `GET` operation and see what the output is: + +``` +test-api → http GET 127.0.0.1:5000/api +HTTP/1.1 200 OK +Connection: keep-alive +Content-Length: 11 +Content-Type: application/json; charset=utf-8 +Date: Tue, 21 Jun 2022 15:29:41 GMT +ETag: W/"b-hRuIfkAGnfwKvpTzajm4bAWdKxE" +Keep-Alive: timeout=5 +X-Powered-By: Express + +{ +    "count": 2 +} +``` + +### The end and the beginning + +I specialize in infrastructure and [Terraform][6], so this was a really fun way to learn and build something quickly in a language I'd never used before. JavaScript moves fast, and it can be annoying to see errors that seem obscure or obtuse. I can see where some personal opinions have judged it harshly as a language, but it's a strong and useful tool. I hope you enjoyed this walkthrough and learned something new and cool along the way. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/javascript-api-express + +作者:[Jessica Cherry][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/cherrybomb +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/OSDC_women_computing_2.png +[2]: https://nodejs.org/en/download/ +[3]: https://opensource.com/article/19/8/getting-started-httpie +[4]: https://github.com/npm/cli +[5]: https://opensource.com/sites/default/files/2022-07/express-api-hello-world.png +[6]: https://opensource.com/article/20/7/terraform-kubernetes From 1170199bca3f419e2a5309c1a0e28b0664fbd6a5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 20:01:20 +0800 Subject: [PATCH 0427/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20Monitor=20your=20Linux=20firewall=20with?= =?UTF-8?q?=20nftwatch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nitor your Linux firewall with nftwatch.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/tech/20220718 Monitor your Linux firewall with nftwatch.md diff --git a/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md b/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md new file mode 100644 index 0000000000..2dabb14029 --- /dev/null +++ b/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md @@ -0,0 +1,82 @@ +[#]: subject: "Monitor your Linux firewall with nftwatch" +[#]: via: "https://opensource.com/article/22/7/nftwatch-linux-firewall" +[#]: author: "Kenneth Aaron https://opensource.com/users/flyingrhino" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Monitor your Linux firewall with nftwatch +====== +I created the Linux nftwatch command to watch firewall traffic stats. + +Netfilter tables ([nftables][4]) is the default firewall shipped with modern Linux distros. It's available on Fedora and RHEL 8, the latest Debian, and many others. It replaces the older iptables that was bundled in earlier distro releases. It's a powerful and worthy replacement for iptables, and as someone who uses it extensively, I appreciate its power and functionality. + +One of the features of nftables is the ability to add counters to many elements, such as rules. These are enabled on demand. You need to explicitly ask for it on a per line basis using the "counter" argument. I have them enabled for specific rules in my firewall, which gives me visibility into those rules. + +This got me thinking. How can I look at these counters in real time? At first I tried "watch" which allows things like refresh rate, but I didn't like the default format and it wasn't scrollable. I found using `head` and `tail` and `awk` less than ideal. A user-friendly solution didn't exist. So I wrote my own, which I'd like to share with the open source community. + +### Introducing nftwatch on Linux + +My solution, which I call nftwatch, does a few things: + +* It reorders and reformats the nftables output to make it more readable. +* It allows scrolling the output up or down. +* Its user-defined refresh rate (can be changed in real time). +* It can pause the display. + +Instead of a dump of a table, you get output that shows activity for each rule: + +![Image of nftwatch][5] + +(Kenneth Aaron, CC BY-SA 4.0) + +You can download it here from its [Git repository][6]. + +It is 100% python, 100% open source, and 100% free. It ticks all the boxes for free, quality programs. + +### Install nftwatch on Linux + +Here are the manual install instructions: + +1. Clone or download the project from the git repository. +2. Copy `nftwatch.yml` to `/etc/nftwatch.yml`. +3. Copy `nftwatch` to `/usr/local/bin/nftwatch` and grant it executable permissions using `chmod a+x`. +4. Use `nftwatch` with no args to run it. +5. See `nftwatch -m` for the man page. + +You can also run nftwatch without the [YAML][7] config file, in which case it uses builtin defaults. + +### Usage + +The nftwatch command displays nftables rules. Most of the controls are designed for this purpose. + +Arrow keys and the equivalent Vim keypresses control scrolling. Use the **F** or **S** key to change the refresh speed. Use the **P** key to pause the display. + +Run `nftwatch -m` for full instructions, and a list of interactive key controls. + +### A new view of your firewall + +Firewalls can seem obtuse and vague even if you spend time to configure them. Aside from extrapolating indicators from log entries, it's hard to tell what kind of activity your firewall is actually seeing. With nftwatch, you can see your firewall at work, and ideally gain a better understanding of the kind of traffic your network has to deal with on a daily basis. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/nftwatch-linux-firewall + +作者:[Kenneth Aaron][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/flyingrhino +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png +[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables?extIdCarryOver=true&sc_cid=701f2000001OH79AAG#getting_started +[5]: https://opensource.com/sites/default/files/2022-07/nftwatch-sample.png +[6]: https://github.com/flyingrhinonz/nftwatch](https://github.com/flyingrhinonz/nftwatch +[7]: https://opensource.com/article/21/9/yaml-cheat-sheet From f1cf92f78f6e4ebfb948bcbc59d54db26f331acd Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 20:03:26 +0800 Subject: [PATCH 0428/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220718=20Tor=20Browser=2011.5=20Adds=20Automatic?= =?UTF-8?q?=20Censorship=20Detection=20With=20HTTPS-Only=20Mode=20as=20Def?= =?UTF-8?q?ault.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tection With HTTPS-Only Mode as Default.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md diff --git a/sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md b/sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md new file mode 100644 index 0000000000..fc0ac1c42c --- /dev/null +++ b/sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md @@ -0,0 +1,93 @@ +[#]: subject: "Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default" +[#]: via: "https://news.itsfoss.com/tor-browser-11-5-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default +====== +Tor Browser 11.5 makes it easy to fight censorship, and makes the browser experience more secure. + +![tor browser][1] + +Tor Browser is the de-facto standard for users looking to utilize Tor network, and want strict privacy settings on their web browsers. + +With the latest 11.5 update, Tor Browser made some major improvements to secure the experience for users. + +### Tor Browser 11.5: What’s New? + +Let me give you a quick overview of the features introduced with this release. + +#### Automatic Censorship Detection and Circumvention + +Tor Browser helps users fight back against censorship. However, not every user can configure or set it up for a hassle-free experience. + +So, to help you with that, Tor Browser 11.5 introduces “**Connection Assist**“, which lets you automatically set a location for the bridge to connect to Tor, resolving any error. + +The developers mention more about it in the official blog post: + +> Connection Assist works by looking up and downloading an up-to-date list of country-specific options to try using your location (with your consent). It manages to do so without needing to connect to the Tor Network first by utilizing [moat][2] – the same domain-fronting tool that Tor Browser uses to request a bridge from torproject.org. + +Sounds good so far! Also, the developers noted that it is just the first version of the feature. So, they will be looking forward to user feedback on this. + +#### Redesigned Tor Network Settings + +While it is good to make things easy, Tor Browser developers know that improving the manual configuration options is equally important. + +![Image Credits: Tor Project Blog][3] + +So, with this update, users who prefer to customize their connection can find some improvements in the settings that include: + +* Renaming Tor Network Settings to “Connection Settings” for clarity. +* The last known connection status can be found at the top of the tab. +* Ability to test your Internet connection without Tor for troubleshooting. +* Connection Assist. +* New bridge cards for the ease of sharing bridges, with a QR code readable by Tor Browser for Android. + +In addition to the bridge cards, you can also notice a new emoji-packed ID to help you identify a bridge + +#### HTTPS-Only Mode + +Starting with Tor Browser 11.5, you will no longer find HTTPS Everywhere plugin bundled. + +Instead, the browser will prefer HTTPS-only connections for every web page, just like Mozilla Firefox. + +#### Other Improvements + +Every Tor Browser update is crucial for users who rely on it for privacy and security. So, naturally, there are various bug fixes and subtle changes along with this update that include: + +* Improved font support. +* Use connection settings in offline mode. +* Manual bundled with the browser for offline viewing. + +You can find the full changelog in the [official blog post][4]. + +### Download Tor Browser 11.5 + +You can get the latest package from its [official website][5]. If you are curious about installation, refer to the [installation documentation][6]. + +[Tor Browser 11.5][7] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/tor-browser-11-5-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/07/tor-browser-11-5-release.jpg +[2]: https://support.torproject.org/glossary/moat/ +[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/connection-settings.png +[4]: https://blog.torproject.org/new-release-tor-browser-115/ +[5]: https://www.torproject.org/download/ +[6]: https://tb-manual.torproject.org/installation/ +[7]: https://www.torproject.org/download/ From bbbe7f96c240b561082001fa3d3c8bb4df6283eb Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 20:13:04 +0800 Subject: [PATCH 0429/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20How=20to=20Make=20LibreOffice=20Look=20Li?= =?UTF-8?q?ke=20Microsoft=20Office.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... LibreOffice Look Like Microsoft Office.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md diff --git a/sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md b/sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md new file mode 100644 index 0000000000..bdd13b3ddd --- /dev/null +++ b/sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md @@ -0,0 +1,112 @@ +[#]: subject: "How to Make LibreOffice Look Like Microsoft Office" +[#]: via: "https://www.debugpoint.com/libreoffice-like-microsoft-office/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Make LibreOffice Look Like Microsoft Office +====== + +We attempted to make the LibreOffice suite look like Microsoft Office. Is it possible? Let’s find out. + +[LibreOffice][1] is a free and open-source office productivity suite that provides you with a complete collection of applications. It consists of a Word processor (Writer), a spreadsheet program (Calc), Presentation (Impress), and a drawing program (Draw). It also gives you a stand-alone database system LibreOffice Base while LibreOffice Math is a program that helps students and researchers write formulas and equations. + +While the widely used [Microsoft Office][2] is a paid office productivity suite that gives you excellent programs to perform almost all tasks related to study, office, and enterprise usage. + +Adopting LibreOffice is sometimes difficult compared to Microsoft Office – although most of the menu items and tools are the same. Both programs are different, but their objective is the same in terms of functionality. Due to its popularity, Microsoft office is used widely and is well known to users. However, many users prefer the free LibreOffice for their work and activities. + +That said, if you can make LibreOffice look like Microsoft Office, it is much easier for first-time users to adopt – mostly coming from a Microsoft Office background. The look and feel play a big part in users’ minds, including their muscle memory, familiarity with colours, and menu items. + +Of course, you can not make it exactly like Microsoft Office because of different icons, fonts, etc. However, you can make it look up to a certain amount. + +### Make LibreOffice Look Like Microsoft Office + +#### 1. User Interface changes + +LibreOffice has a “Ribbon” style toolbar called Tabbed Bar. However, it has many toolbar options (see below). For this guide, I have used the Tabbed bar option. + +* Open LibreOffice and go to `Menu > View > User Interface`. +* Select `Tabbed` from the UI Section. + +![tabbed bar option][3] + +* Click on Apply to All. +* LibreOffice also provides an option to apply the toolbar type-specific to Writer or Calc. If you want a different toolbar type, you can choose that way. But I would recommend using the Apply to All to make it consistent. + +* Now you should have the Microsoft Office-style Ribbon. Although they are not precisely the same, you get the feel of it. + +#### 2. Microsoft Office Icons for LibreOffice + +The Icons in the toolbar play a big part in your workflow. LibreOffice provides some nice icons for your toolbar. The best ones are the – + +* Karasa Jaga +* Colibre +* Elementary + +For this guide, we will use Office 2013 icon set, which an author develops. It is available in Devian Art. + +* Go to the below link and download the LibreOffice extension file (*.oxt). For the newer versions of LibreOffice, you need to use extension files to install icon sets. + +[download office 2013 icon sets for libreoffice][4] + +* After downloading, double-click the .oxt file to open. Or, press CTRL+ALT+E to open the Extension Manager and select the downloaded .oxt file using the Add button. Close the window once done. + +![Import icon sets in Extension Manager][5] + +* Now go to `Tools > Options > View`. From the Icon style, choose Office 2013. + +* Change the icon size via `Icon Size > Notebookbar > Large`. If you feel the icons are small, you can change them. However, I think to make it more Office-like, the large settings work better. + +![Change icons in Options][6] + +And that’s it. Your LibreOffice installation should look like this. + +![Making LibreOffice look like Microsoft Office in KDE Plasma][7] + +![Making LibreOffice look like Microsoft Office in Windows 10][8] + +![Making LibreOffice look like Microsoft Office in GNOME][9] + +Remember, if you are using Ubuntu, KDE Plasma, or any Linux distribution, the looks may be different. But in my opinion, it looks closer to Microsoft Office in KDE Plasma than GNOME. LibreOffice doesn’t look good in GTK-based systems at the moment. + +In Windows, however, it looks better because it uses a system font and colour palette. + +These are some settings that you can use. However, you can play around with more customizations, icons, and themes as you wish. If you fancy dark mode in LibreOffice, you may want to read our tutorial – on [how to enable dark mode in LibreOffice][10]. + +### Closing Notes + +Microsoft Office is undoubtedly the market leader in the Office productivity space. There is a reason for it, it comes with decades of development, and it’s not a free product. The latest Office 365 Home usage price is around ~7 USD per month for 3 to 4 devices, which is a bit pricy if you ask me. + +Whereas LibreOffice is free and community-developed and headed by The Document Foundation. It is not trying to be Microsoft Office, but it allows millions of users, schools, non-profits, colleges, and students to work and learn using a free office suite. Hence, the development is slower, and features arrive late. + +Hence, it is beneficial if it can mimic the basic look and feel to make it like Microsoft Office to increase LibreOffice’s adoption. And I hope this guide serves a little purpose in that direction. + +[Link: Official Feature comparison between LibreOffice and Microsoft Office.][11] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/libreoffice-like-microsoft-office/ + +作者:[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]: http://libreoffice.com +[2]: http://office.com +[3]: https://www.debugpoint.com/wp-content/uploads/2021/06/tabbed-bar-option.jpg +[4]: https://www.deviantart.com/users/outgoing?https://1drv.ms/u/s!ArgKmgFcmBYHhSQkPfyMZRnXX5LJ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/06/Import-icon-sets-in-Extension-Manager.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/06/Change-icons-in-Options-1024x574.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-KDE-Plasma.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-Windows-10.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-GNOME.jpg +[10]: https://www.debugpoint.com/2020/01/how-to-enable-dark-mode-libreoffice/ +[11]: https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office From e9001d6cf4ea6d919b801f049d3f9945678e52a3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 20:24:48 +0800 Subject: [PATCH 0430/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20How=20to=20Install=20Rocky=20Linux=209=20?= =?UTF-8?q?Step=20by=20Step=20with=20Screenshots.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y Linux 9 Step by Step with Screenshots.md | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md diff --git a/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md new file mode 100644 index 0000000000..12750449b4 --- /dev/null +++ b/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md @@ -0,0 +1,213 @@ +[#]: subject: "How to Install Rocky Linux 9 Step by Step with Screenshots" +[#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Rocky Linux 9 Step by Step with Screenshots +====== +In this guide, we will cover how to install Rocky Linux 9 step by step with screenshots. + +Rocky Enterprise Software Foundation has released its latest operating system ‘Rocky Linux 9’. Rocky Linux is free and open-source operating system for workstation and servers. It is considered as drop-in replacement for CentOS Linux. + +‘Blue Onyx’ is the Code name for Rocky Linux 9, it is the clone of RHEL 9. The main difference between Rocky Linux and RHEL is that it has its own open-source build system called ‘Peridot’. + +##### New Updates and Features of Rocky Linux 9 + +* Gnome 40 is the default Desktop Environment. +* Support for Direct Access (DAX) operations on XFS file system +* Updated runtime and compilers like GCC 11.2.1, LLVM (13.0.1), Rust (1.58.1), and Go (1.17.1). +* Updated development tool chain like Python 3.9, Node.js 16, Ruby 3.0.3, Perl 5.32 & PHP 8.0 +* By Default, root user authentication disabled over ssh. +* Updated OpenSSL 3.0 and improved cockpit web console. +* Community support till May 31st, 2032. + +##### Prerequisites + +* 2 GB RAM or more +* 2 CPU Core (1.1 GHz Processor or higher) +* 20 GB hard disk space +* Boot Media (USD or DVD) +* Internet Connectivity (Optional) + +Without any delay, let’s jump into Rocky Linux 9 installation steps, + +### 1) Download Rocky Linux 9 ISO File + +Use the following official URL to download ISO file, + +* [Rocky Linux 9 ISO][1] + +Once you have downloaded the iso file, make a bootable media (USB/DVD) using the downloaded iso. + +In Windows, you can use ‘Rufus’ software to make bootable USB drive using ISO file. In Linux, refer the following + +* [How to Create Bootable USB Drive on Ubuntu / Linux Mint][2] + +### 2) Boot System with Bootable Media + +Head to the system on which you are planning to install Rocky Linux 9, reboot it and change the boot medium from hard disk to USB from its bios settings. + +Once the system boots up with bootable media then we will get the following screen, + +![Select-Install-Rocky-Linux-9-option][3] + +Choose the first option, ‘Install Rocky Linux 9.0’ and hit enter. + +### 3) Choose Preferred Language + +Select your preferred language for the installation and then click on Continue, + +![Preferred-Language-for-RockyLinux9-Installation][4] + +### 4) Installation Summary + +In this step, we will get the following initial installation summary. To begin the installation, first we must complete marked items like ‘Installation Destination’ and ‘User settings’. + +Apart from the marked items, we can also change the existing items, just click on them and change it as per your requirement. + +![Initial-Installation-Summary-Rocky-Linux9][5] + +##### Configure Installation Destination + +In this item, we will specify the partition scheme for Rocky Linux. Click on ‘Installation Destination’. + +Here we can choose either automatic or custom option for storage configuration or partition scheme. + +In automatic option, partitions will be created automatically by installer on the disk whereas custom option allows us to create manual partitions on disk. + +![Choose-custom-Storage-Configuration-Rocky-Linux9][6] + +In this guide, I am going with ‘Custom’ option, Click on ‘Done’ + +![Standard-Partition-Scheme-RockyLinux9][7] + +On the 40 GB disk, we will create following partitions, + +* /boot          :  2GB   (xfs file system) +* /                 : 10 GB  (xfs file system) +* /home         : 25 GB (xfs file system) +* Swap           : 2 GB + +To start creating partitions, choose ‘Standard Partition’ scheme and then click on + symbol. + +Create first partition as /boot of size 2 GB, + +![Boot-Partition-RockyLinux9-Installation][8] + +Click on ‘Add mount point’ + +Similarly create next two partitions / and /home of size 10 GB and 25 GB respectively. + +![Slash-Partition-Rocky-Linux9-installation][9] + +![Home-Partition-Rocky-Linux9-Installation][10] + +Now create last partition as swap of size 2GB, + +![Swap-Partition-RockyLinux9-Installation][11] + +Once you are done with manual partitioning, click on Done to finish this item. + +![Finish-Manual-Partitioning-RockyLinux9-Installation][12] + +Choose ‘Accept Changes‘ to write changes to the disk. It will also take back to installation summary screen. + +![Accept-Changes-to-Write-on-Disk-RockyLinux9][13] + +##### Configure User Settings + +Under User Settings, Click on ‘Root Password’. + +![Set-Root-Password-RockyLinux9-Instalation][14] + +Set the root password and then click on Done, + +From ‘User Settings’ again , click on ‘User Creation’, Specify the local user details like username and password. + +![Local-User-Create-During-RockyLinux9-Installation][15] + +Click on ‘Done’, it will take back to installation summary. + +Now, we are ready to initiate the installation, click on ‘Begin Installation’. + +![Begin-Installation-Option-RockyLinux9][16] + +### 5) Installation Started + +In this step, installation got started and is in progress, + +![RockyLinux9-Installation-Progress][17] + +Once the installation is completed, installer will instruct to reboot the system. + +![Reboot-System-after-RockyLinux9-Installation][18] + +Click on ‘Reboot System’. + +Note: Don’t forget to change the boot medium from USB to hard disk from bios settings. + +### 6) Login Screen and Desktop Environment Post Installation + +When the system boots up after the successful installation, we will get following login screen, + +![RockyLinux9-Loginscreen-Post-Installation][19] + +Use the same user’s credentials that we have created during the installation, press enter to login. + +![Desktop-Env-RockyLinux9][20] + +Open the terminal, run following commands one after the another, + +``` +$ sudo dnf install epel-release -y +$ sudo dnf install neofetch -y +``` + +Now, to verify the system details, run neofetch command, + +``` +$ neofetch +``` + +![neofetch-rockylinux9-post-installation][21] + +That’s all from this guide, I hope you found it useful. Kindly do post your queries and feedback in below comments section. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/ + +作者:[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://rockylinux.org/download +[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/ +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Select-Install-Rocky-Linux-9-option.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Preferred-Language-for-RockyLinux9-Installation.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Initial-Installation-Summary-Rocky-Linux9.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Choose-custom-Storage-Configuration-Rocky-Linux9.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Standard-Partition-Scheme-RockyLinux9.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Boot-Partition-RockyLinux9-Installation.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Slash-Partition-Rocky-Linux9-installation.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Home-Partition-Rocky-Linux9-Installation.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Swap-Partition-RockyLinux9-Installation.png +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Finish-Manual-Partitioning-RockyLinux9-Installation.png +[13]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Accept-Changes-to-Write-on-Disk-RockyLinux9.png +[14]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Set-Root-Password-RockyLinux9-Instalation.png +[15]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Local-User-Create-During-RockyLinux9-Installation.png +[16]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Begin-Installation-Option-RockyLinux9.png +[17]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Installation-Progress.png +[18]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Reboot-System-after-RockyLinux9-Installation.png +[19]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Loginscreen-Post-Installation.png +[20]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Desktop-Env-RockyLinux9.png +[21]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png From e2aa3196af64d19d22594b3ccc8a6935fe069139 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 18 Jul 2022 20:26:01 +0800 Subject: [PATCH 0431/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20AppFlowy-=20An=20Open-Source=20Alternativ?= =?UTF-8?q?e=20to=20Notion.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y- An Open-Source Alternative to Notion.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md diff --git a/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md new file mode 100644 index 0000000000..54a7cba1ca --- /dev/null +++ b/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md @@ -0,0 +1,164 @@ +[#]: subject: "AppFlowy: An Open-Source Alternative to Notion" +[#]: via: "https://itsfoss.com/appflowy/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +AppFlowy: An Open-Source Alternative to Notion +====== +Brief: AppFlowy aims to be an open-source replacement to Notion, providing you with better privacy. Let us explore more about it. + +While Notion (project management/note-taking tool) is exceptionally good in what it does, it is not an open-source solution. Moreover, it is not available for Linux as a desktop client. + +So, what about an alternative that is more transparent, private, and available for Linux? + +That’s where AppFlowy shines! + +Build with Rust and Flutter, AppFlowy follows a minimal approach to simplify things yet with enough room for tweaks. + +### AppFlowy is a Perfect Blend of Privacy and User Experience + +![appflowy][1] + +AppFlowy is fairly new. We [reported][2] its development status last year after its initial launch. + +It is an open-source project that aims to overcome some limitations of [Notion][3] in terms of security and privacy. It helps you manage tasks, add to-do lists, add due dates, track the events, add pages, and format text for your notes/tasks. + +But there’s more to it than security; the user experience also matters. And, AppFlowy does a decent job at it, if not better than Notion. + +Note that the project is still in its **beta phase**. + +Currently, the project’s aim is not for better design and functionality but for data privacy, native experience, and community-driven opportunities. + +#### Notion vs. AppFlowy: What Are Your Priorities? + +While it is meant to replace Notion as an open-source solution, it may not be for everyone. + +So, if you are going to choose AppFlowy over Notion, you will get the following benefits: + +##### Transparency + +AppFlowy is an open-source project, so you are always welcome to view and modify the code. + +##### Privacy + +Notion can directly access your private data in the cloud as closed-source software. Compared to this, you can host AppFlowy as per your preference. + +All your personal data will remain with you, and you’re in total control of it. The developers also mention that they are working on offline mode to bring better support for local installations. + +##### Performance and Native Experience + +AppFlowy is built using Rust and Flutter, which provides a modern user experience while keeping performance in mind. + +Not just limited to that, you also get a good native experience on Linux, which you do not get with Notion. + +### Features of AppFlowy + +![appflowy screenshot 1][4] + +AppFlowy may not be superior in terms of functionality, but it does offer several essential features. + +You can expect more feature additions as the development continues. Some existing highlights include: + +* Native cross-platform support. +* Ability to self-host it or install it on your computer. +* Customizability. +* Data privacy (top priority). +* A single code base for better maintenance. +* Community-driven extensibility. +* Minimalist UI. +* Add to-do list, and manage tasks. +* Highlight texts and essential formatting. +* Keyboard shortcuts for editing cell/grid. +* Dark mode support. + +#### Installing AppFlowy on Linux + +As this is still in the beta phase, it is unavailable in default repositories and doesn’t have any maintained PPAs, nor do you get any Flatpak/Snap packages. + +However, you can easily install AppFlowy through the given commands (Only tested on Ubuntu 20.04 LTS and Arch X86_64): + +``` +wget https://github.com/AppFlowy-IO/AppFlowy/releases/download/0.0.4/AppFlowy-linux-x86.tar.gz +tar -xzvf AppFlowy-linux-x86.tar.gz +cd AppFlowy +``` + +To run AppFlowy, use the given command: + +``` +./app_flowy +``` + +To register AppFlowy in your system menu, you have to perform additional steps as given below: + +First, you have to change the default name of the AppFLowy logo: + +``` +mv flowy_logo.svg app_flowy.svg +``` + +Now, you’ve to copy the temporary Linux desktop file to a usable Linux desktop file. + +``` +cp appflowy.desktop.temp app_flowy.desktop +``` + +It’s time to introduce some changes to the config file. + +``` +sudo nano appflowy.desktop +``` + +Here, you have to replace [CHANGE_THIS] with the path where the icon and executable file has been stored. + +![add location of icon and exec file][5] + +Save changes with CTRL + O and exit with CTRL + X. + +Finally, move the desktop file so your system can pick it up. + +``` +mv app_flowy.desktop ~/.local/share/applications/. +``` + +And here’s what it should look like: + +![appflowy in system menu][6] + +In either case, you can check AppFlowy’s [official documentation][7] to build it from the source. Explore more about it on its official website. + +[AppFlowy][8] + +### Wrapping Up + +If you need a simple Notion-like application with a native Linux experience, AppFlowy is an interesting choice. + +You should expect bugs/issues considering it is under active development and far from being a complete replacement to Notion. + +As an open-source alternative to Notion? It works! You can use it to manage tasks, add notes, and make a to-do list. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/appflowy/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy.png +[2]: https://news.itsfoss.com/appflowy-development/ +[3]: https://www.notion.so/ +[4]: https://itsfoss.com/wp-content/uploads/2022/07/appflowy-screenshot-1.png +[5]: https://itsfoss.com/wp-content/uploads/2022/07/Add-location-of-icon-and-exec-file-800x524.png +[6]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy-in-System-menu-1.png +[7]: https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/environment-setup/building-on-linux +[8]: https://www.appflowy.io/ From a2a85d6b6c0cc0ad787f423870c1711fb6d4f969 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 19 Jul 2022 05:02:53 +0800 Subject: [PATCH 0432/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220718?= =?UTF-8?q?=20Community=20container=20images=20available=20for=20applicati?= =?UTF-8?q?ons=20development?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220718 Community container images available for applications development.md --- ... available for applications development.md | 391 ++++++++++++++++++ 1 file changed, 391 insertions(+) create mode 100644 sources/tech/20220718 Community container images available for applications development.md diff --git a/sources/tech/20220718 Community container images available for applications development.md b/sources/tech/20220718 Community container images available for applications development.md new file mode 100644 index 0000000000..e372d172fc --- /dev/null +++ b/sources/tech/20220718 Community container images available for applications development.md @@ -0,0 +1,391 @@ +[#]: subject: "Community container images available for applications development" +[#]: via: "https://fedoramagazine.org/community-container-images-available-for-applications-development/" +[#]: author: "Petr Hracek https://fedoramagazine.org/author/phracek/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Community container images available for applications development +====== + +![][1] + +Photo by [Paul Teysen][2] on [Unsplash][3] + +This article aims to introduce community containers, where users can pull them from, and use them. The three groups of containers available for use by community users are discussed. These are: Fedora, CentOS, and CentOS Stream. + +### What are the differences between the containers? + +Fedora containers are based on the latest stable Fedora content, and CentOS-7 containers are based on components from the CentOS-7 and related SCLo SIG components. And finally, CentOS Stream containers are based on either CentOS Stream 8 or CentOS Stream 9. + +Each container, e.g. [s2i-php-container][4] or [s2i-perl-container][5], contain the same packages which are available for a given operating system. It means, that from a functionality point of view these example containers provides the PHP interpreter or Perl interpreter,respectively.  + +Differences can be only in versions, which are available for each distribution. For example: + +Fedora PHP containers are available in these versions: + + * [PHP-80][6] for Fedora 35 + + + +CentOS-7 PHP containers are available in these versions: + + * [PHP-73][7] + + + +CentOS Stream 9 PHP containers are available in these versions: + + * [PHP-74][8] + + + +CentOS Stream 8 is not mentioned here for the PHP use case since users can pull it directly from the Red Hat Container Catalog registry as a [UBI][9] image. Containers that are not UBI based have CentOS Stream 8 repositories in the [quay.io/sclorg][10] namespace with repository suffix “-c8s”. + +### Fedora container images moved recently + +The Fedora container images have recently moved to the [quay.io/fedora][11] registry organization. All of them use [Fedora:35][12], and later [Fedora:36 ,][13]as a base image. The CentOS-7 containers are stored in the [quay.][14][io][14][/centos7][14] registry organization. All of them use [CentOS][15][-7][15] as a base image. + +### CentOS Stream container images + +The CentOS Stream containers are stored in the [quay.io/sclorg][10] registry organization. + +The base image used for our CentOS Stream 8 containers is [CentOS Stream 8][16] with the tag “stream8”. + +The base image used for our CentOS Stream 9 containers is [CentOS Stream 9][16] with the tag “stream9”. + +In this registry organization, each container contains a “suffix”, either “c8s”  for CentOS Stream 8 or “c9s” for CentOS Stream 9, respectively. + +See container [PHP-74][8] for CentOS Stream 9. + +### Frequency of container image updates and testing + +The community-based containers are updated in two ways. + +First, when a pull request in the container sources that live under github.com/sclorg organization is merged, the corresponding versions in the GitHub repository are built and pushed into the proper repository. + +Second, an update process is also implemented by GitHub Actions set up in each of our GitHub repositories. The base images, like “s2i-core” and “s2i-base”, are built each Tuesday at 1:00 pm. The rest of the containers are built each Wednesday at 1:00 pm. + +This means every package update or change is updated in the container image within a few days, not later than after a week. + +Each container that is not beyond its end of life is tested by our nightly builds. If we discover or detect an error on some of our containers, we attempt to fix it, but there are no guarantees provided. + +### What container shall I use? + +In the end, what containers are we providing? That’s a great question. All containers live in the GitHub organization + +The list of containers with their upstreams is summarized here: + + * PostgreSQL server – + * Nginx web server – + * Redis server – + * Varnish cache – + * MySQL server – + * MariaDB server – + * Apache HTTPD server – + * PHP application container image – + * Perl application container image – [https://][5][github][5][.com/sclorg/s2i-perl-container][5] + * Ruby application container image – + * Node.js application container image – + * Python application container image – + + + +### How to use the container image I picked? + +All container images are tuned up to be fully functional in the OpenShift (or [OKD][17] and even Kubernetes itself) without any trouble. Some containers support the source-to-image build strategy while some are expected to be used as daemons (like databases, for instance). For specific steps, please, navigate to the GitHub page for the respective container image by following one of the links above. + +### Finally, Some Real examples + +Let’s show how to use PHP container images across all platforms that we support. + +First of all, clone the container GitHub repository using this command: + +``` + + $ git clone https://github.com/sclorg/s2i-php-container + +``` + +Switch to the following directory created by the cloning step: + +``` + + $ cd s2i-php-container/examples/from-dockerfile + +``` + +#### Fedora example + +Start by pulling the Fedora PHP-80 image with this command: + +``` + + $ podman pull quay.io/fedora/php-80 + +``` + +Modify “Dockerfile” so it refers to Fedora php-80 image. “Dockerfile” then looks like: + +``` + + FROM quay.io/fedora/php-80 + + USER 0 + # Add application sources + ADD app-src . + RUN chown -R 1001:0 . + USER 1001 + + # Install the dependencies + RUN TEMPFILE=$(mktemp) && \ + curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \ + php <"$TEMPFILE" && \ + ./composer.phar install --no-interaction --no-ansi --optimize-autoloader + + # Run script uses standard ways to configure the PHP application + # and execs httpd -D FOREGROUND at the end + # See more in /s2i/bin/run in this repository. + # Shortly what the run script does: The httpd daemon and php need to be + # configured, so this script prepares the configuration based on the container + # parameters (e.g. available memory) and puts the configuration files into + # the appropriate places. + # This can obviously be done differently, and in that case, the final CMD + # should be set to "CMD httpd -D FOREGROUND" instead. + CMD /usr/libexec/s2i/run + +``` + +##### Check if the application works properly + +Build it by using this command: + +``` + + $ podman build -f Dockerfile -t cakephp-app-80 + +``` + +Now run the application using this command: + +``` + + $ podman run -ti --rm -p 8080:8080 cakephp-app-80 + +``` + +To check the PHP version use these commands: + +``` + + $ podman run -it –rm cakephp-app-80 bash + $ php –version + +``` + +To check if everything works properly use this command: + +``` + + $ curl -s -w ‘%{http_code}’ localhost:8080 + +``` + +This should return HTTP code 200. If you would like to see a web page enter “localhost:8080” in your browser. + +#### CentOS 7 example + +Start by pulling the CentOS-7 PHP-73 image using this command: + +``` + + $ podman pull quay.io/centos7/php-73-centos7 + +``` + +Modify “Dockerfile” so it refers to CentOS php-73 image. + +“Dockerfile” then looks like this: + +``` + + FROM quay.io/centos7/php-73-centos7 + + USER 0 + # Add application sources + ADD app-src . + RUN chown -R 1001:0 . + USER 1001 + + # Install the dependencies + RUN TEMPFILE=$(mktemp) && \ + curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \ + php <"$TEMPFILE" && \ + ./composer.phar install --no-interaction --no-ansi --optimize-autoloader + + # Run script uses standard ways to configure the PHP application + # and execs httpd -D FOREGROUND at the end + # See more in /s2i/bin/run in this repository. + # Shortly what the run script does: The httpd daemon and php needs to be + # configured, so this script prepares the configuration based on the container + # parameters (e.g. available memory) and puts the configuration files into + # the appropriate places. + # This can obviously be done differently, and in that case, the final CMD + # should be set to "CMD httpd -D FOREGROUND" instead. + CMD /usr/libexec/s2i/run + +``` + +##### Check if the application works properly + +Build it using this command: + +``` + + $ podman build -f Dockerfile -t cakephp-app-73 + +``` + +Now run the application using this command: + +``` + + $ podman run -ti --rm -p 8080:8080 cakephp-app-73 + +``` + +To check the PHP version us these commands: + +``` + + $ podman run -it –rm cakephp-app-73 bash + $ php –version + +``` + +To check if everything works properly use this command: + +``` + + curl -s -w ‘%{http_code}’ localhost:8080 + +``` + +which should return HTTP code 200. If you would like to see a web page enter localhost:8080 in your browser. + +#### RHEL 9 UBI 9 real example + +Start by pulling the RHEL9 UBI-based PHP-80 image using the command: + +``` + + $ podman pull registry.access.redhat.com/ubi9/php-80 + +``` + +Modify “Dockerfile” so it refers to the RHEL9 ubi9 php-80 image. + +“Dockerfile” then looks like: + +``` + + FROM registry.access.redhat.com/ubi9/php-80 + + USER 0 + # Add application sources + ADD app-src . + RUN chown -R 1001:0 . + USER 1001 + + # Install the dependencies + RUN TEMPFILE=$(mktemp) && \ + curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \ + php <"$TEMPFILE" && \ + ./composer.phar install --no-interaction --no-ansi --optimize-autoloader + + # Run script uses standard ways to configure the PHP application + # and execs httpd -D FOREGROUND at the end + # See more in /s2i/bin/run in this repository. + # Shortly what the run script does: The httpd daemon and php needs to be + # configured, so this script prepares the configuration based on the container + # parameters (e.g. available memory) and puts the configuration files into + # the appropriate places. + # This can obviously be done differently, and in that case, the final CMD + # should be set to "CMD httpd -D FOREGROUND" instead. + CMD /usr/libexec/s2i/run + +``` + +##### Check if the application works properly + +Build it using this command: + +``` + + $ podman build -f Dockerfile -t cakephp-app-80-ubi9 + +``` + +Now run the application using this command: + +``` + + $ podman run -ti --rm -p 8080:8080 cakephp-app-80-ubi9 + +``` + +To check the PHP version use these commands: + +``` + + $ podman run -it –rm cakephp-app-80-ubi9 bash + $ php –version + +``` + +To check if everything works properly use this command: + +``` + + curl -s -w ‘%{http_code}’ localhost:8080 + +``` + +which should return HTTP code 200. If you would like to see a web page enter localhost:8080 in your browser. + +### What to do in the case of a bug or enhancement + +Just file a bug (known as an “issue” in GitHub) or even a pull request with a fix, to one of the GitHub repositories mentioned in the previous section. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/community-container-images-available-for-applications-development/ + +作者:[Petr Hracek][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/phracek/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2022/07/RHSCL_containers-816x345.jpg +[2]: https://unsplash.com/@hooverpaul55?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/container-port?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://github.com/sclorg/s2i-php-container +[5]: https://github.com/sclorg/s2i-perl-container +[6]: https://quay.io/repository/fedora/php-80 +[7]: https://quay.io/repository/centos7/php-73-centos7 +[8]: https://quay.io/repository/sclorg/php-74-c9s +[9]: https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image +[10]: https://quay.io/organization/sclorg +[11]: https://quay.io/organization/fedora +[12]: http://quay.io/fedora/fedora:35 +[13]: http://quay.io/fedora/fedora:36 +[14]: https://quay.io/organization/centos7 +[15]: http://quay.io/centos/centos:centos7 +[16]: https://quay.io/repository/centos/centos +[17]: https://developers.redhat.com/blog/2018/08/03/okd-renaming-of-openshift-origin-with-3-10-release# From 4be3a2922ca773c0d54cb1df14b53292184ff3b0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 19 Jul 2022 08:35:13 +0800 Subject: [PATCH 0433/3123] translated --- ...3 How I create music playlists on Linux.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) rename {sources => translated}/tech/20220713 How I create music playlists on Linux.md (50%) diff --git a/sources/tech/20220713 How I create music playlists on Linux.md b/translated/tech/20220713 How I create music playlists on Linux.md similarity index 50% rename from sources/tech/20220713 How I create music playlists on Linux.md rename to translated/tech/20220713 How I create music playlists on Linux.md index bd81c7295b..4b43793dea 100644 --- a/sources/tech/20220713 How I create music playlists on Linux.md +++ b/translated/tech/20220713 How I create music playlists on Linux.md @@ -7,32 +7,32 @@ [#]: publisher: " " [#]: url: " " -How I create music playlists on Linux +如何在 Linux 上创建音乐播放列表 ====== -Use this C program I made on Linux to listen to your favorite songs on the go. +使用我在 Linux 上制作的这个 C 程序在旅途中聆听你喜爱的歌曲。 ![Open source software helps artists create music][1] -Image by: Opensource.com +图片来源:Opensource.com -I recently wrote a C program in Linux to create a smaller random selection of MP3 files from my extensive MP3 library. The program goes through a directory containing my MP3 library, and then creates a directory with a random, smaller selection of songs. I then copy the MP3 files to my smartphone to listen to them on the go. +我最近在 Linux 中编写了一个 C 程序,从我广泛的 MP3 库中创建一个较小的随机 MP3 文件选择。该程序会遍历一个包含我的 MP3 库的目录,然后创建一个包含随机的、较小的歌曲选择的目录。然后我将 MP3 文件复制到我的智能手机上,以便随时随地收听。 -Sweden is a sparsely populated country with many rural areas where you don't have full cell phone coverage. That's one reason for having MP3 files on a smartphone. Another reason is that I don't always have the money for a streaming service, so I like to have my own copies of the songs I enjoy. +瑞典是一个人口稀少的国家,有许多农村地区没有完整的手机覆盖。这就是在智能手机上拥有 MP3 文件的原因之一。另一个原因是我并不总是有钱购买流媒体服务,所以我喜欢拥有自己喜欢的歌曲的副本。 -You can download my application from its [Git repository][2]. I wrote it for Linux specifically in part because it's easy to find well-tested file I/O routines on Linux. Many years ago, I tried writing the same program on Windows using proprietary C libraries, and I got stuck trying to get the file copying routing to work. Linux gives the user easy and direct access to the file system. +你可以从它的 [Git 仓库][2]下载我的应用。我专门为 Linux 编写了它,部分原因是在 Linux 上很容易找到经过良好测试的文件 I/O 例程。多年前,我尝试使用专有的 C 库在 Windows 上编写相同的程序,但在尝试文件复制时遇到了困难。 Linux 使用户可以轻松直接地访问文件系统。 -In the spirit of open source, it didn't take much searching before I found file I/O code for Linux to inspire me. I also found some code for allocating memory which inspired me. I wrote the code for random number generation. +本着开源的精神,我没费多少力气就找到了 Linux 的文件 I/O 代码来激发我的灵感。我还发现了一些启发了我的分配内存的代码。我编写了随机数生成的代码。 -The program works as described here: +该程序的工作方式如下所述: -1. It asks for the source and destination directory. -2. It asks for the number of files in the directory of MP3 files. -3. It searches for the percentage (from 1.0 to 88.0 percent) of your collection that you wish to copy. You can also enter a number like 12.5%, if you have a collection of 1000 files and wish to copy 125 files from your collection rather than 120 files. I put the cap at 88% because copying more than 88% of your library would mostly generate a collection similar to your base collection. Of course, the code is open source so you can freely modify it to your liking. -4. It allocates memory using pointers and malloc. Memory is required for several actions, including the list of strings representing the files in your music collection. There is also a list to hold the randomly generated numbers. -5. It generates a list of random numbers in the range of all the files (for example, 1 to 1000, if the collection has 1000 files). -6. It copies the files. +1. 请求源目录和目标目录。 +2. 请求 MP3 文件目录下的文件个数。 +3. 搜索你希望复制的收藏的百分比(从 1.0% 到 88.0%)。如果你有 1000 个文件的集合并希望从你的集合中复制 125 个文件而不是 120 个文件,你也可以输入 12.5% 之类的数字。我将上限设置为 88%,因为复制超过 88% 的库将基本生成与你的基础库相似的库。当然,代码是开源的,因此你可以根据自己的喜好自由修改。 +4. 使用指针和 malloc 分配内存。一些操作需要内存,包括代表音乐收藏中文件的字符串列表。还有一个列表来保存随机生成的数字。 +5. 生成所有文件范围内的随机数列表(例如,如果集合有 1000 个文件,则为 1 到 1000)。 +6. 复制文件。 -Some of these parts are simpler than others, but the code is only about 100 lines: +其中一些部分比其他部分更简单,但代码只有大约 100 行: ``` #include @@ -167,7 +167,7 @@ int main(void) { } ``` -This code is possibly the most complex: +这段代码可能是最复杂的: ``` while(1) { @@ -181,23 +181,23 @@ while(1) { } ``` -This reads a number of bytes (readByteCount) from a file specified into the character buffer. The first parameter to the function is the file name (srcFileDesc). The second parameter is a pointer to the character buffer, declared previously in the program. The last parameter of the function is the size of the buffer. +这将从指定的文件中读取多个字节 (readByteCount) 到字符缓冲区中。该函数的第一个参数是文件名(srcFileDesc)。第二个参数是一个指向字符缓冲区的指针,这之前在程序中声明过。该函数的最后一个参数是缓冲区的大小。 -The program returns the number of the bytes read (in this case, 4 bytes). The first `if` clause breaks out of the loop if a number of 0 or less is returned. +程序返回读取的字节数(在本例中为 4 个字节)。如果返回的数字为 0 或更少,则第一个 `if` 子句会跳出循环。 -If the number of read bytes is 0, then all of the writing is done, and the loop breaks to write the next file. If the number of bytes read is less than 0, then an error has occurred and the program exits. +如果读取字节数为 0,则所有写入完成,循环中断以写入下一个文件。如果读取的字节数小于 0,则发生错误并退出程序。 -When the 4 bytes are read, it will write to them.The write function takes three arguments.The first is the file to write to, the second is the character buffer, and the third is the number of bytes to write (4 bytes). The function returns the number of bytes written. +当读取 4 个字节时,它会写入它们。write 函数接受三个参数。第一个是要写入的文件,第二个是字符缓冲区,第三个是要写入的字节数(4 个字节) .该函数返回写入的字节数。 -If 0 bytes are written, then a write error has occurred, so the second `if` clause exits the program. +如果写入了 0 个字节,则发生了写入错误,因此第二个 `if` 子句退出程序。 -The `while` loop reads and copies the file, 4 bytes at a time, until the file is copied. When the copying is done, you can copy the directory of randomly generated mp3 files to your smartphone. +`while` 循环读取并复制文件,一次 4 个字节,直到文件被复制。复制完成后,你可以将随机生成的 mp3 文件的目录复制到你的智能手机。 -The copy and write routine are fairly efficient because they use file system calls in Linux. +复制和写入例程相当有效,因为它们使用 Linux 中的文件系统调用。 -### Improving the code +### 改进代码 -This program is simple and it could be improved in terms of its user interface, and how flexible it is. You can implement a function that calculates the number of files in the source directory so you don't have to enter it manually, for instance. You can add options so you can pass the percentage and path non-interactively.nBut the code does what I need it to do, and it's a demonstration of the simple efficiency of the C programming language. +该程序很简单,可以在用户界面和灵活性方面进行改进。例如,你可以实现一个计算源目录中文件数量的函数,这样你就不必手动输入它。你可以添加选项,这样你就可以非交互地传递百分比和路径。但是代码做了我需要它做的事情,它是 C 编程语言简单效率的演示。 -------------------------------------------------------------------------------- @@ -205,7 +205,7 @@ via: https://opensource.com/article/22/7/c-linux-mp3 作者:[Rikard Grossman-Nielsen][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 4a75b3749d11c8ffa658c0d7beb6fb1c02d30db8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 19 Jul 2022 08:37:42 +0800 Subject: [PATCH 0434/3123] translating --- .../tech/20220718 Monitor your Linux firewall with nftwatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md b/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md index 2dabb14029..9f623afde7 100644 --- a/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md +++ b/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/nftwatch-linux-firewall" [#]: author: "Kenneth Aaron https://opensource.com/users/flyingrhino" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d2d27705012066cea5fbbd6d2a4cc9d43116f187 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 19 Jul 2022 14:22:36 +0800 Subject: [PATCH 0435/3123] RP @hanszhao80 https://linux.cn/article-14843-1.html --- ...el By Default in Ubuntu and Other Linux.md | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md (79%) diff --git a/translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md b/published/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md similarity index 79% rename from translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md rename to published/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md index a0718cfe42..6e74655d55 100644 --- a/translated/tech/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md +++ b/published/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md @@ -3,19 +3,22 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14843-1.html" -如何给 Ubuntu 等 Linux 系统的旧内核设置默认启动 +如何默认启动到 Linux 系统的旧内核 ====== + +![](https://img.linux.net.cn/data/attachment/album/202207/19/142100e4ympeo7y5w6pwvo.jpg) + 这是一个可能的情景。你的系统收到了内核更新,但不知何故,事情不像以前那样顺利。 你意识到,如果你启动到较旧的内核(是的,你可以降级内核),一切都会恢复正常。 高兴之余你会觉得有点儿不爽。因为你不得不在每次启动时手动选择较旧的内核。 -一位年长的 It's FOSS 读者遇到了这个问题。[Linux Mint][1] 中的新内核更新没有按预期工作。启动到较旧的内核“修复”了问题,但麻烦的是在每次启动时要去手动选择较旧的内核。 +一位年长的读者遇到了这个问题。[Linux Mint][1] 中的新内核更新没有按预期工作。启动到较旧的内核“修复”了问题,但麻烦的是在每次启动时要去手动选择较旧的内核。 删除新内核而使用旧内核不是一个好主意,因为新内核将会在下一次系统更新时被安装使用。 @@ -31,11 +34,11 @@ apt list --installed | grep linux-image 当你升级系统时会获得一个新版本的内核,这时你的系统会自动选择启动至最新的可用内核。 -在 [grub][3] 屏幕中,你可以 **转到高级选项Advanced option**(或较旧的 Linux 版本): +在 [grub][3] 屏幕中,你可以转到高级选项Advanced option(较旧的 Linux 版本): ![ubuntu grub][4] -在这里,你可以看到要启动的可用内核。选择较旧的(不带恢复选项recovery option): +在这里,你可以看到要启动的可用内核。选择较旧的(不带恢复选项recovery option 的条目): ![grub 高级选项][5] @@ -45,14 +48,14 @@ apt list --installed | grep linux-image ### 使旧内核成为默认启动项 -如果你乐于使用 Linux 终端和命令,你可以修改 /etc/default/grub 文件并在其中添加以下行: +如果你乐于使用 Linux 终端和命令,你可以修改 `/etc/default/grub` 文件并在其中添加以下行: ``` GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true ``` -然后使用如下命令 [更新 grub][6]: +然后使用如下命令 [更新 GRUB][6]: ``` sudo update-grub @@ -82,7 +85,7 @@ sudo apt install grub-customizer 在这里你有两个选择。 -**选择一:** 选择所需的内核项并使用箭头(显示在顶部菜单上)将其向上移动。 +**选择一:** 选择所需的内核项并使用箭头按钮(显示在顶部菜单上)将其向上移动。 ![在 Ubuntu grub 将旧内核向上移动][10] @@ -92,11 +95,11 @@ sudo apt install grub-customizer 我建议使用第二个选择,因为即使有新的内核更新它也可以工作。 -这样你就可以在 Ubuntu 或其他发行版中降级内核,甚至无需删除旧内核版本。 +这样你就可以在 Ubuntu 或其他发行版中降级内核,甚至无需删除新内核版本。 请注意,像 Ubuntu 这样的发行版大部分一次只保留两个内核版本。因此,最终你首选的旧内核将在新的内核版本释出时被删除。 -这个巧妙的技巧曾助我脱困。当时我 [在 Ubuntu 中安装最新的 Linux 内核][12] ,由于某种原因它与我的音频系统有问题。 +这个巧妙的技巧曾助我脱困。当时我 [在 Ubuntu 中安装最新的 Linux 内核][12] ,由于某种原因它与我的音频系统有些兼容问题。 无论是什么原因,你现在都知道如何自动启动到旧内核。 @@ -104,12 +107,12 @@ sudo apt install grub-customizer -------------------------------------------------------------------------------- -via: https://itsfoss.c择m/boot-older-kernel-default/ +via: https://itsfoss.com/boot-older-kernel-default/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6413aa7c3342c42ccb9056d6b076ad618094822a Mon Sep 17 00:00:00 2001 From: perfiffer Date: Tue, 19 Jul 2022 14:35:37 +0800 Subject: [PATCH 0436/3123] translated by perfiffer --- ...1017 How I use open source to play RPGs.md | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/translated/tech/20211017 How I use open source to play RPGs.md b/translated/tech/20211017 How I use open source to play RPGs.md index 46c558ad2e..b83db974fe 100644 --- a/translated/tech/20211017 How I use open source to play RPGs.md +++ b/translated/tech/20211017 How I use open source to play RPGs.md @@ -33,52 +33,51 @@ CC BY-SA Seth Kenlon 世界各地都有公共实例,所以下载 Mumble 客户端后,你可以加入其中任何一个开放的实例,并使用它来在线运行游戏。有一个按键通话设置,你可以用此来消除背景噪音,当你的其他家庭成员在进行其它工作而不想被你的桌面会话打扰时,这个功能将会非常实用。 -还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于无关的聊天,尝试保持口语游戏的主题。 +还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于离题的交谈,试图让口头游戏保持主题。 - -If your players prefer facial cues or are just used to video chat web apps, then [Jitsi][8] is an excellent substitute for in-person gatherings around a table. Jitsi is mostly like every other video chat application you've ever used, except possibly even easier. You can set up a room, invite friends, keep out strangers, and play for hours. Muting and going off-camera are intuitive, the interface is attractive, and new features are being developed and introduced regularly. +如果你的玩家更喜欢面部表情,或者只是习惯于视频聊天网页应用。那么 [Jitsi][8] 是面对面围坐在桌子旁聚会的绝佳替代品。Jitsi 和你曾经使用过的其它视频聊天软件几乎一样,甚至更简单。你可以设置一个房间,邀请朋友,将陌生人拒之门外,并玩上几个小时。静音和离机很直观,界面很吸引人,并且定期开发和推出新功能。 ![Jitsi][9] CC BY-SA Seth Kenlon -Both Mumble and Jitsi have clients for both desktop and mobiles, so anyone can play no matter what device they're on. +Mumble 和 Jitsi 都有适用于台式机和移动设备的客户端,因此任何人都可以在任何设备上使用。 -### Character sheets +### 字符表 -I've already posted about my [digital character sheet][10] solutions, but any RPG player knows that there's more to managing a character than just stats. +我已经发布了我的[数字角色表][10]解决方案,但任何 RPG 玩家都知道管理角色不仅仅是统计数据。 -During a game online that spanned several sessions, I found there was a lot of downtime between games. It occurred to me that, while I found it unreasonable to demand that my players calculate encumbrance during a live pen-and-paper game, it's pretty easy to request them to track encumbrance when everything's digital. +在跨越多个会话的在线游戏中,我发现游戏之间有很多的停机时间。我突然想到,虽然我发现要求我的玩家在现场纸笔游戏中计算负担是不合理的,但当一切都是数字化时,要求他们跟踪负担很容易。 -There are plenty of spreadsheets available online, but the open source option is [Ethercalc][11]. With instances all over the world, it's easy to find a free Ethercalc host. Alternately, you can use Podman or Docker to easily install and run your own instance. +网上有很多可用的电子表格,但开源选项是 [Ethercalc][11]。由于实例遍布世界各地,因此很容易找到免费的 Ethercalc 主机。或者,你可以使用 Podman 或者 Docker 轻松安装和运行你自己的实例。 ![Ethercalc spreadsheet of inventory][12] Seth Kenlon, CC-BY-SA 4.0 -Ethercalc provides the essentials: a shared ledger so players can track the items their party is carrying (and who's holding one at any given time), the weight of each item, and the value. Items get entered as the party collects loot during the game, so they know when they're too burdened to pick up something new. +Etherclac 提供了一些基本要素:一个共享的账本,这样玩家就可以跟踪他们的团队所携带的物品(以及在任何给定的时间持有物品的人)、每件物品的重量和价值。当队伍在游戏过程中收集战利品时,物品就会进入,所以他们知道什么自己何时会因为负担过重而无法获得新内容。 -Between sessions, the shared spreadsheet can be referenced and organized so that the PCs know what to sell or stuff into a bag of holding or what they can safely drop when better loot presents itself next session. +在会话之间,可以引用和组织共享的电子表格,以便 PC 知道要出售什么或将什么东西放入一个袋子中,或者当更好的战利品出现在下一个会话时,他们可以安全地丢弃什么。 -### Maps +### 地图 -Mythic Table is an open source shared mapping system for tabletop games. That means you can load an image to serve as the map of your game and move digital tokens on the map to represent where players' characters are located. +Mythic Table 是一款开源的桌面游戏共享地图系统。这意味着你可以加载图片作为游戏地图,并在地图上移动数字标记以表示玩家角色所在的位置。 -Since [last I wrote about Mythic Table][13], it's run a successful Kickstarter campaign to ensure its continued development. It's also gained several new features, most notably a "fog of war" feature that allows the dungeon master to blank out the map and reveal only the parts that players have explored. +自从[上次我写了关于 Mythic Table][13]以来,它已经成功地在 Kickstarter 上进行了一次活动,以确保它的持续发展。它还获得了一些新功能,其中最引人注目的是“战争迷雾”功能,它允许地下城主将地图留白并仅显示玩家探索过的部分。 ![A dungeon map rendered by Mythic Table and user interface choices for chat, maps, and characters][14] Seth Kenlon, CC-BY-SA 4.0 -I've been running two games on Mythic Table for the past few months, and it's been an excellent and straightforward map system. Conveniently, it also features a digital dice roller, so if your players lack dice or you prefer to roll dice in the open, you have a shared dice pool. +在过去的几个月里,我一直在 Mythic Table 上运行两款游戏,这是一款优秀且直观的地图系统。它还提供了一个数字掷骰子器,所以如果你的玩家没有骰子,或者你更喜欢在公开场合掷骰子,你就有了一个共享的骰子池。 -You can try Mythic Table at [mythictable.com][15] or visit their code repository on [Github][16]. +你可以在 [mythictable.com][15] 上试用 Mythic Table,或者访问他们在 [Github][16] 上的代码库。 -### Open gaming on open source +### 在开源上开放游戏 -The open source tools I use are universal, so they work with whatever game system you decide to play. Because they're all open source, they can be used online by all your players regardless of what OS they use, and they can all be self-hosted. +我使用的开源工具是通用的,因为它们适用于你决定玩的任何游戏系统。因为它们都是开源的,所以无论你的玩家使用什么操作系统,他们都可以在线使用,并且它们都可以自托管。 -If you're a programmer as well as a gamer, visit their Git repositories and see if there's anything you can contribute. If you're a gamer or a gamemaster, try the tools out the next time you sit down at a digital game table. You might be surprised at just how few online accounts you actually need to have to use some of the best applications available for gaming. +如果你既是程序员又是游戏玩家,请访问他们的 Git 代码仓库,看看是否有任何你可以贡献的东西。如果你是游戏玩家或者游戏大师,请在下次坐在数字游戏桌前尝试使用这些工具。你可能会惊讶于你只需要很少的在线账户就可以使用一些可用于游戏的最佳应用程序。 -------------------------------------------------------------------------------- @@ -86,7 +85,7 @@ via: https://opensource.com/article/21/10/open-source-rpgs 作者:[Seth Kenlon][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[译者ID](https://github.com/perfiffer) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 652425a87474a47dbb59dcf30a0487fe853ce3df Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 19 Jul 2022 15:17:54 +0800 Subject: [PATCH 0437/3123] RP @TravinDreek https://linux.cn/article-14844-1.html --- ...undation Executive Director Zoë Kooyman.md | 79 ++++++++++++++++++ ...undation Executive Director Zoë Kooyman.md | 80 ------------------- 2 files changed, 79 insertions(+), 80 deletions(-) create mode 100644 published/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md delete mode 100644 translated/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md diff --git a/published/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/published/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md new file mode 100644 index 0000000000..15f63616b7 --- /dev/null +++ b/published/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md @@ -0,0 +1,79 @@ +[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman" +[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "TravinDreek" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14844-1.html" + +自由软件基金会执行董事 Zoë Kooyman 专访 +====== + +![](https://img.linux.net.cn/data/attachment/album/202207/19/151615wnr8m4l8yotr6hp8.jpg) + +> 了解一下自由软件基金会(FSF)。 + +早在 1985 年,[自由软件基金会][2](FSF)就开始提倡源代码共享的理念,并从此打响了为计算机用户和开发者捍卫权利的斗争。FSF 认为,用“开放Open”和“封闭Closed”这两个词来划分软件,十分具有局限性;于是,在为程序分类时,转而使用了以下词语:*尊重自由*(这个“自由free”或这个“自由Libre”)或*践踏自由*(“非自由non-free”或“专有proprietary”)。不管用语如何,关键之处在于,计算机必须受用户控制,而不是任由开发了计算机软件的公司来摆布。正因如此,GNU 工程、Linux 内核、Freedesktop.org 等众多自由软件项目,才会如此重要。 + +最近,FSF 新上任了一位执行董事,她叫 Zoë Kooyman。我初见 Zoë 时,是在 2019 年的一个 [All Things Open][3] 大会上。当然,那个时候她还不是 FSF 的执行董事,不过已经在管理 FSF 不断增长的重大活动了 —— 包括 [LibrePlant][4]。她之前递给我了一份自由软件作者的名单,名单长得一眼望不尽,而且那些软件都是我*每天*在用的。由此,我也很受她那充沛的精力和诚恳的态度所打动。我只是偶然参加了一次 FSF 的聚会,但最后却和那些人成了朋友。是他们让我的数字生活有了意义,是他们保障了我能够拥有 Zoë 和 FSF 所说的 [四项基本自由][5]: + +* 无论用户出于何种目的,用户必须可以按照自己的意愿,自由地运行该软件(自由之零)。 +* 用户可以自由地学习并修改该软件,使它按照你的意愿进行计算(自由之一)。作为前提,用户必须可以得到该软件的源代码。 +* 用户可以自由地分发该软件的副本,这样就可以帮助别人(自由之二)。 +* 用户可以自由地分发该软件修改后的副本(自由之三)。借此,用户可以把改进后的软件分享给整个社区,令他人也从中受益。作为前提,用户必须可以得到该软件的源代码。 + +听说了 Zoë 受任为执行董事后,我给她发了一封邮件,提出想和她进行一次采访。她十分热心,在百忙之中抽出了一点时间来和我畅谈。 + +**Seth Kenlon:你当上 FSF 的执行董事了!你是怎么走到今天的呢?** + +**Zoë Kooyman:** 在我的工作生涯中,我最开始是一位活动组织者。我环游世界,举办着一些世界上最大的音乐节目。在不断变更的地点、各具特色的文化中工作,是十分有趣的,因为不管是演出、技艺还是别的现场元素,所有各异的制作元素都结合在一起了。让一切事物都在恰当时候安排到位,就像是耍杂技一样。很多时候,我都是在不同的国家生活和工作。多亏了我的工作,我才能学到这么多的组织和交流的技巧。我也对不同形式的媒体有过研究和工作,了解它们的体验,以及它们与社会的关系。 + +大学时期,我第一次了解到了“左版copyleft”(LCTT 译注:与版权copyright相对。是一种分享软件的思想和方法;简而言之,其目的是保障一款软件对其每一位接收者来说都是自由的),它是关于我们如何才能使用现有的结构来造福自己,并推动变革的。也正是在那时,媒体(以及互联网和软件)的格局开始迅速变化,而这种变化却是以自由为代价的。搬到美国后,我的生活变了许多。在美国,我对社会责任问题有了更加强烈的紧迫感,因此我决定为此付诸行动。我很感激 John Sullivan(时任 FSF 执行董事),他根据我对自由软件的了解以及我在活动组织方面的经验聘任了我,由此我也得以把这两方面的能力结合到一起。 + +**Seth:你是如何了解到自由软件的?** + +**Zoë:** 我们常常会觉得,自由软件主要影响的是懂技术的人。但是,自由软件运动的目的是捍卫每一位计算机用户的自由。其实,软件自由影响着边缘化社区(LCTT 译注:因条件受限或受到排斥等,落后于主流社会的发展,而被置于社会边缘的群体)的成员,他们很少有机会使用计算机。而软件也塑造了他们的生活。 + +GNU 工程和左版的概念所取得的成就是十分卓越的。去真正观察社会发展的方向,然后说:“不一定非得那样才行,我们可以把事情掌握在自己手中。”这在早期改变了我的人生观。我开始有了一种想法,把现有的材料用起来,再把它重新引入不同的亚文化之中。在娱乐行业,这已是家常便饭。从他人的作品中得到灵感,并基于此创造新的作品,其结果就是对我们所处时代的反映,同时也是对历史的致敬。没有这般自由,也不会有真正的进步。 + +谈谈我对电影版权的看法吧。我曾经与荷兰电影研究所合作,做了一个由许多“孤立的电影片段”组合而成的混剪。然后,在一次有几千名年轻人参加的大型舞蹈活动中,那个混剪就在一个 170 米的全景屏幕上播放了,而且还有现场 DJ 在配合演奏。他们之后也经常在别的活动中播放它,比如说荷兰的 博物馆之夜Museumnacht。 + +我并不懂技术,于是我通过文化来表达了这些观点。但这些年来,我越来越多地接触到了自由软件的思想。我于是意识到,随着软件不断融入我们的生活(有时还是身体),为自由软件而战的重要性正日益凸显。在当今的世界,专有软件处于称霸地位,我们社会的发展呈现出以利益驱动、为少数人着想的趋势,而这种趋势是以多数人的自由为代价的。如果没有自由软件,生活中的许多方面、社会的许多重要事业,就不可能真正取得成功。 + +**Seth:** 你是什么时候加入 FSF 的? + +**Zoë:** 在 2019 年初,LibrePlanet 最后一期现场版的前一周(LCTT 译注:LibrePlant 之后因为疫情而改成了线上活动)。 + +**Seth:** 是什么吸引了你去担任执行董事这一职位? + +**Zoë:** FSF 只是一个致力于让社会更加公平、更加协作、更加理解软件的组织,但它长期以来一直是这场运动的核心。社会正在迅速变化,而许多人却还没准备好如何应对当今社会的数字产物,例如软件。这是一项十分重要的工作,但是去做这项工作的人还是太少了。能有一个组织来应对未来的各种挑战,这是十分重要的。 + +执行董事这一职位,在某种程度上,不过是辅助工作人员和社区的角色,好让他们为自由软件作出关键的改变。我相信,我们继续传播自由软件的思想,是非常重要的;并且,有了 FSF 的团队协助,我也相信,我能利用好工作在不同文化和人群中的经验,以及组织高挑战性的全球项目的经验,来使我们发挥出最大的潜能。我的这项决定,得到了来自工作人员、管理层和社区和董事会的支持,由此我相信,这个决定是正确的。 + +**Seth:** 你认为当今的软件自由,面临的最大的挑战是什么?FSF 在应对这些挑战的时候,应该承担怎样的使命? + +**Zoë:** 随着软件越来越多地融入了社会的基本结构,软件也更加无形了。如今,软件的存在是如此的广泛,我们却习惯性地忽视它。我们只关注着程序的功能,却无视了实现这种功能的手段,更别说它尊不尊重你作为一位用户的自由了。而与此同时,软件又比以往任何时候都更快的扩散。如果人们无法理解程序是如何构成的,而只是整天地用着这些程序,那我们该怎么向他们解释,他们正遭受着不公呢? + +FSF 的职责就是,让每个人重新谈起用户自由,并提醒人们,我们所使用的工具并没有那么好。因此,教育行业和政府的认可是十分重要的。如果我们让人们关注软件自由在这些领域的问题,那我们必将取得成效。通过教育,我们可以确保后代也有选择自由的权利;而政府采用自由软件,可以保护公民免遭专有软件的不正影响(维护数字主权)。 + +我们可以告诉人们,当今社会给我们灌输了错误的观点:你的自由受到侵犯是正常的,毕竟事情“太复杂,你理解不了”。如果你想要图个便利,想要相互联系,或者就是想要满足你的需求,那你就得相信这些组织,按照他们的意愿来。这是不对的。我们整个社区都相信,我们能构建一个无需抛弃自由也能处在其中的社会。并且我们也有这样的法律框架来支持我们的观点。每天,不同背景、不同能力的人都加入我们的对话,越来越多的人关心自己的自由,并且每个人都是出于真心的。我们每天都在学习如何去保护自己以及他人,并且我也希望,未来能够更加自由。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[Peaksol](https://github.com/TravinDreek) +校对:[wxy](https://github.com/wxy) + +本文由 [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/dandelion_zoom.jpg +[2]: https://www.fsf.org/ +[3]: https://www.allthingsopen.org/ +[4]: https://libreplanet.org +[5]: https://www.gnu.org/philosophy/free-sw.en.html diff --git a/translated/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/translated/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md deleted file mode 100644 index 7dcb4939d2..0000000000 --- a/translated/talk/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman" -[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -采访自由软件基金会执行董事 Zoë Kooyman -====== -了解自由软件基金会(FSF)的一切。 - -![Dandelion zoomed in][1] - -图片署名:由 Rob Tiller 拍摄,以 CC BY-SA 发布 - -早在 1985 年,[自由软件基金会(FSF)][2]就开始提倡源代码共享的理念,并从此打响了为计算机用户和开发者捍卫权利的斗争。FSF 认为,用“开源”和“闭源”这两个词来划分软件,十分具有局限性;于是,在为程序分类时,转而使用了以下词语:*尊重自由*(“自由”)或*践踏自由*(“非自由”或“专有”)。不管用语如何,关键之处在于,计算机必须受用户控制,而不是任由开发了计算机软件的公司来摆布。正因如此,GNU 工程、Linux 内核、Freedesktop.org 等众多自由软件项目,才会如此重要。 - -最近,FSF 新上任了一位执行董事,她叫 Zoë Kooyman。我初见 Zoë 时,是在 2019 年的一个 [All Things Open][3] 大会上。当然,那个时候她还不是 FSF 的执行董事,不过已经在管理 FSF 的重大活动列表了——那份列表的活动包括了 [LibrePlant][4], 并且还在不断地增长。她之前递给我了一份自由软件作者的名单,名单长得一眼望不尽,而且那些软件都是我*每天*在用的。由此,我也很受她那充沛的精力和诚恳的态度所打动。我只是偶然参加了一次 FSF 的聚会,但最后却和那些人成了朋友。是他们让我的数字生活有了意义,是他们保障了我能够拥有 Zoë 和 FSF 所说的[四项基本自由][5]: - -* 无论用户出于何种目的,用户必须可以按照自己的意愿,自由地运行该软件(自由之零)。 -* 用户可以自由地学习并修改该软件,这样程序的计算过程才是可控的(自由之一)。作为前提,用户必须可以得到该软件的源代码。 -* 用户可以自由地分发该软件的副本,这样就可以帮助别人(自由之二)。 -* 用户可以自由地分发该软件修改后的副本(自由之三)。借此,用户可以把改进后的软件分享给整个社区,令他人也从中受益。作为前提,用户必须可以得到该软件的源代码。 - -听说了 Zoë 受任为执行董事后,我给她发了一封邮件,提出想和她进行一次采访。她十分热心,在百忙之中抽出了一点时间来和我畅谈。 - -**Seth Kenlon:你当上 FSF 的执行董事了!你是怎么走到今天的呢?** - -**Zoë Kooyman:** 在我的工作生涯中,我最开始是一位活动组织者。我环游世界,举办着一些世界上最大的音乐节目。在不断变更的地点、各具特色的文化中工作,是十分有趣的,因为不管是演出、技艺还是别的现场元素,所有各异的制作元素都结合在一起了。让一切事物都在恰当时候安排到位,就像是耍杂技一样。很多时候,我都是在不同的国家生活和工作。多亏了我的工作,我才能学到这么多的组织和交流技巧。我也对不同形式的媒体有过研究和工作,了解它们的经历,以及它们与社会的关系。 - -大学时期,我第一次了解到了 copyleft(译注:一种分享软件的思想和方法;简而言之,其目的是保障一款软件对其每一位接收者来说都是自由的),它是关于我们如何才能使用现有的结构来造福自己,并推动变革的。也正是在那时,媒体(以及互联网和软件)的格局开始迅速变化,而这种变化却是以自由为代价的。搬到美国后,我变了许多。在美国,我对社会责任问题有了更加强烈的紧迫感,因此我决定为此付诸行动。我很感激 John Sullivan(当时 FSF 的执行董事),他根据我对自由软件的了解以及我在活动组织方面的经验, 把我招了进来,由此我也得以把这两方面的能力结合到一起。 - -**Seth:你是如何了解到自由软件的?** - -**Zoë:** 我们常常会觉得,自由软件主要影响的是懂技术的人。但是,自由软件运动的目的是捍卫每一位计算机用户的自由。其实,软件自由影响着边缘化社区(译注:因条件受限或受到排斥等,落后于主流社会的发展,而被置于社会边缘的群体)的成员,他们很少有机会使用计算机。而软件也塑造了他们的生活。 - -GNU 工程和 copyleft 的概念,取得的成就是十分卓越的。去真正观察社会发展的方向,然后说:“不一定非得那样才行,我们可以把事情掌握在自己手中。”这在早期改变了我的人生观。我开始有了一种想法,把现有的材料用起来,再把它重新引入不同的亚文化之中。在娱乐行业,这已是家常便饭。从他人的作品中得到灵感,并基于此创造新的作品,其结果就是对我们所处时代的反映,同时也是对历史的致敬。没有这般自由,也不会有真正的进步。 - -谈谈我对电影版权的看法吧。我曾经与荷兰电影研究所合作,做了一个由许多“孤立的电影片段”组合而成的混剪。然后,在一次有几千名年轻人参加的大型舞蹈活动中,那个混剪就在一个 170 米的全景屏幕上播放了,而且还有现场 DJ 在配合演奏。他们之后也经常在别的活动中播放它,比如说荷兰的 *Museumnacht*。 - -我并不懂技术,于是我通过文化来表达了这些观点。但这些年来,我接触自由软件的思想,接触得越来越频繁了。我于是意识到,随着软件不断融入我们的生活(有时还是身体),自由软件斗争的重要性正日益凸显。在当今的世界,专有软件处于称霸地位,我们社会的发展呈现出以利益驱动、为少数人着想的趋势,而这种趋势是以多数人的自由为代价的。如果没有自由软件,生活中的许多方面、社会的许多重要事业,就不可能真正取得成功。 - -**Seth:** 你是什么时候加入 FSF 的? - -**Zoë:** 在 2019 年初,LibrePlanet 最后一期现场版的前一周(译注:LibrePlant 之后因为疫情而改成了线上活动)。 - -**Seth:** 是什么吸引了你去担任执行董事这一职位? - -**Zoë:** 有许多组织都致力于让社会更加公平、更加协作、更加理解软件。FSF 只是其中之一,但它长期以来一直是这场运动的核心。社会正在迅速变化,而许多人却还没准备好如何应对当今社会的数字产物,例如软件。这是一项十分重要的工作,但是去担任这项工作的人还是太少了。能有一个组织来应对未来的各种挑战,这是十分重要的。 - -执行董事这一职位,在某种程度上,不过是辅助了工作人员和社区而已,好让他们为自由软件作出关键的改变。我相信,我们继续传播自由软件的思想,是非常重要的;并且,有了 FSF 的团队协助,我也相信,我能利用好工作在不同文化和人群中的经验,以及组织高挑战性的全球项目的经验,来使我们发挥出最大的潜能。我的这项决定,得到了来自工作人员、管理层和社区的支持,由此我相信,这个决定是正确的。 - -**Seth:** 你认为当今的软件自由,面临的最大的挑战是什么?FSF 在应对这些挑战的时候,应该承担怎样的使命? - -**Zoë:** 随着软件越来越多地融入了社会的基本结构,软件也更加无形了。如今,软件存在如此广泛,我们却习惯性地忽视它。我们只关注着程序的功能,却无视了实现这种功能的手段,更别说它尊不尊重你作为一位用户的自由了。而与此同时,软件的发展速度又比以往任何时候都要快。如果人们无法理解程序是如何构成的,而只是整天地用着这些程序,那我们该怎么向他们解释,他们正遭受着不公呢? - -FSF 的职责就是,让每个人重新谈起用户自由,并提醒人们,我们所使用的工具并没有那么好。因此,教育行业和政府的认可是十分重要的。如果我们让人们关注软件自由在这些领域的问题,那我们必将取得成效。通过教育,我们可以确保后代也有选择自由的权利;而政府采用自由软件,可以保护公民免遭专有软件的不正影响(维护数字主权)。 - -我们可以告诉人们,当今社会给我们灌输了错误的观点:你的自由受到侵犯是正常的,毕竟事情“太复杂,你理解不了”。如果你想要图个便利,想要相互联系,或者就是想要满足你的需求,那你就得相信这些组织,按照他们的意愿来。这是不对的。我们整个社区都相信,我们能构建一个无需抛弃自由也能处在其中的社会。并且我们也有这样的法律框架来支持我们的观点。每天,不同背景、不同能力的人都加入我们的对话,越来越多的人关心自己的自由,并且每个人都是出于真心的。我们每天都在学习如何去保护自己以及他人,并且我也希望,未来能够更加自由。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[Peaksol](https://github.com/TravinDreek) -校对:[校对者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/dandelion_zoom.jpg -[2]: https://www.fsf.org/ -[3]: https://www.allthingsopen.org/ -[4]: https://libreplanet.org -[5]: https://www.gnu.org/philosophy/free-sw.en.html From 3278b63f13a2f7b8e0738eea1c189187c81cfcb3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:49:18 +0800 Subject: [PATCH 0438/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=20Top=2010=20Best=20Professional=20Video=20?= =?UTF-8?q?Editors=20in=202022.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Best Professional Video Editors in 2022.md | 257 ++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 sources/tech/20220718 Top 10 Best Professional Video Editors in 2022.md diff --git a/sources/tech/20220718 Top 10 Best Professional Video Editors in 2022.md b/sources/tech/20220718 Top 10 Best Professional Video Editors in 2022.md new file mode 100644 index 0000000000..20bdcab63f --- /dev/null +++ b/sources/tech/20220718 Top 10 Best Professional Video Editors in 2022.md @@ -0,0 +1,257 @@ +[#]: subject: "Top 10 Best Professional Video Editors in 2022" +[#]: via: "https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Best Professional Video Editors in 2022 +====== +We list the top 10 best and most free video editors for Linux and Windows. Have a look. + +[Video editors][1] are costly software, especially those that are more advanced such as Adobe Premiere Pro. However, there are plenty of known/unknown Video Editors available, which are free of cost and open source. Here we list ten free video editors which might be helpful for you and your use case. + +### Top 10 Professional and Free Video Editors + +#### 1. Blender + +[Blender][2]is a free and open-source video editor and 3D modelling software used to create movies, animated films, renders, simulations, motion tracking and many more. Blender is a popular tool used and contributed by hundreds of people worldwide. Primarily used by studios and individual artists, professionals and hobbyists, scientists, students, VFX experts, animators, game artists, modders, and the list goes on. + +![Blender Video Editor][3] + +Blender’s feature list is enormous; however, here are some noteworthy features. + +* Modelling +* Sculpting +* Animation & Rigging +* Grease Pencil +* Rendering +* Simulation +* Video Editing +* Scripting +* VFX +* Interface +* Pipeline + +[Download Blender][4] + +#### 2. Lightworks + +[Lightworks][5]is a freemium video editor capable of editing videos for social media, 4K videos and movies. Lightworks has been used in some famous Hollywood movie editing as well. This non-linear video editor is free to download, and you might have to pay for additional features. + +![Lightworks Video Editor][6] + +Here’s a quick sneak peek of its features: + +* Simple & intuitive User Interface +* Access excellent royalty-free audio & video content +* Easy timeline editing & trimming +* Lo-Res Proxy workflows for 4K +* Real-time ready-to-use audio & video FX +* Export video for YouTube/Vimeo, SD/HD, up to 4K +* Broad file format support, including variable frame rate media +* Grade your sequence professionally utilising up to 32bit GPU precision and histogram tool + +[Download Lightworks][7] + +#### 3. Shotcut + +[Shotcut][8]is another free, open source and cross-platform video editor loaded with features. Primary features include support for a wide range of formats; no import required, meaning native timeline editing; Blackmagic Design support for input and preview monitoring; and resolution support to 4k. + +![Shotcut Video Editor][9] + +Notable features of Shotcut: + +* Support for 4K resolutions +* Audio, Video, and Webcam capture +* Wide range of file format support +* $K resolution support +* Plugins +* Audio and Video filters + +[Download Shotcut][10] + +#### 4. Avidemux + +[Avidemux][11] is ideal for you if you are just a beginner in Video editing, learning, or a hobbyist. This free and open-source video editor is designed for simple cut, filter and encoding tasks. Being a basic video editor, it supports a wide range of file formats. Also, you can automate tasks using projects, job queues and powerful scripting capabilities. + +![Avidemux Video Editor][12] + +[Download Avidemux][13] + +#### 5. HitFilm Express + +[HitFilm Express][14] is an excellent video editor – freely available for download – as the name says – the express version. Loaded with features and developed professionally, HitFilm express is an ideal video editor for beginners, YouTube creators and movie makers. However, it is only available for Windows and Mac. Linux version is not yet profitable, as per the development team, considering the low user base. + +![Hitfilm Express Video Editor][15] + +Having said that, if you are still looking for a free and professional video editor, you can try HitFilm express. Please note that you may have to pay if you opt for a different version of the product with more features. + +[Download HitFilm Express][16] + +#### 6. DaVinci Resolve + +This is the most professional video editor capable of 8K editing. Available for Linux, Mac and Windows, DaVinci Resolve is a Proprietary commercial software. It comes with a studio version, and a paid variant with additional features such as more plugins, addons, etc. However, you can still use the free version of the software, which is more than enough if you are a standard user. + +![DaVinci Resolve Video Editor][17] + +Here’s a quick feature guide. + +* Dual Timeline +* Source Tape +* Dedicated Trim Interface +* Intelligent Edit Modes +* Fast Review +* Transform, Retime and Stabilise +* Quick Export +* Media Import +* Portable Editing +* Custom Timeline Settings +* Adjustment Clips +* Facial Recognition +* Speed Warp Retiming +* Image Stabilisation +* Keyframe Curve Editor +* Tape Style Audio Scrubbing +* Faster, Smarter Encoding + +[Download DaVinci Resolve][18] + +#### 7. OpenShot + +If you are looking for a simple UI-based free video editor yet powerful, [OpenShot][19]is the choice. Designed with a mindset with a low learning curve for video editing – it is available for Windows, Linux and Mac. + +![OpenShot Video Editor][20] + +Here’s a quick rundown on its features: + +* Cross-Platform +* Quickly trim down your videos +* Using the robust animation framework, you can fade, slide, bounce, and animate anything in your video project +* Add as many layers as you need for watermarks, background videos, audio tracks +* Video effects engine, remove the background from your video, invert the colours, adjust brightness +* Audio Waveforms +* Title editor with templates +* Render beautiful 3D animated titles and effects, such as snow, lens flares, or flying text. +* Control the power of time, reversing, slowing down, and speeding up video +* Use a preset or animate the playback speed and direction. +* Drag and drop video, audio, or images from your file manager +* 70+ Languages +* Simple User Interface + +If you are a beginner in Video Editing and trying it out the first time, this is the editor you should be using to get a feel of it. + +[Download OpenShot][21] + +#### 8. KDenlive + +[KDenlive][22]is a 15+ years old video editor application. KDenlive is a free and open-source video editor built upon the QT framework, powered by some of the best FFMpeg, frei0r, movie, ladspa, and sox frameworks. This video editor is for average users with some additional advanced features – but not too much to absorb and learn. + +Some of its features include: + +* Multi-track video editing +* Use any audio/video format +* Configurable interface and shortcuts +* Titler with 2D Title +* Many effects and transitions +* Audio and video scopes +* Proxy editing +* Automatic backup +* Online resources downloaded directly from UI +* Timeline preview +* Keyframeable effects +* Theme interface + +![KDenlive Video Editor][23] + +[Download KDenlive][24] + +#### 9. Flowblade + +“FAST, PRECISE and STABLE” – is the tagline of [Flowblade][25]video editor, which explains its target users. Flowblade is a non-linear video editor loaded with features such as – + +* Edit tools +* Timeline features +* Compositors +* Filters +* Range log +* Proxy editing +* Batch render queue +* G’mic effects tool +* Audio mixer +* Media relinker +* Titler +* Misc. Features +* Rendering +* MLT supported video and audio codecs + +![Flowblade Video Editor][26] + +Flowblade is only available for Linux Systems and not for Windows or Mac. + +[Download Flowblade][27] + +#### 10. Olive + +[Olive][28]is a free non-linear video editor aiming to provide a fully-featured alternative to high-end professional video editing software. It is being developed at the moment and in the ALPHA stage. Looking at the interests, it[seems promising][29], and users are creating videos via Olive. However, being an ALPHA version, it is not recommended for professional work at the moment, but you can still give it a try. + +![Olive Video Editor][30] + +Available for Windows, Linux and Mac, you can download it via the below link. + +[Download Olive Video Editor][31] + +### Wrap up + +Video editors are complex software. Many professional editors are costly. With that said, here we featured the top 10 professional-grade video editors for you. Some are perfect if used correctly and can replace any professional program. For example, Blender, KDenlive and DaVinci Resolve – are perfect for creating professional-grade videos or movies. + +So, which is the top professional grade video editor, in your opinion? Let me know in the comment box below. + +*Image Credits: Respective applications.* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/ + +作者:[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/tag/video-editors-in-ubuntu/ +[2]: https://www.blender.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2019/09/Blender-Video-Editor.jpg +[4]: https://www.blender.org/download/ +[5]: https://www.lwks.com/ +[6]: https://www.debugpoint.com/wp-content/uploads/2019/09/Lightworks-Video-Editor-1024x557.jpg +[7]: https://www.lwks.com/index.php?option=com_lwks&view=download&Itemid=206 +[8]: https://shotcut.org +[9]: https://www.debugpoint.com/wp-content/uploads/2019/09/Shotcut-Video-Editor-1024x644.jpg +[10]: https://shotcut.org/download/ +[11]: http://avidemux.sourceforge.net/ +[12]: https://www.debugpoint.com/wp-content/uploads/2019/09/Avidemux-Video-Editor.png +[13]: http://avidemux.sourceforge.net/download.html +[14]: https://fxhome.com/hitfilm-express +[15]: https://www.debugpoint.com/wp-content/uploads/2019/09/Hitfilm-Express-Video-Editor-1024x572.jpg +[16]: https://fxhome.com/hitfilm-express +[17]: https://www.debugpoint.com/wp-content/uploads/2019/09/DaVinci-Resolve-Video-Editor.jpg +[18]: https://www.blackmagicdesign.com/products/davinciresolve/ +[19]: https://www.openshot.org/ +[20]: https://www.debugpoint.com/wp-content/uploads/2019/09/OpenShot-Video-Editor.jpg +[21]: https://www.openshot.org/download/ +[22]: https://kdenlive.org +[23]: https://www.debugpoint.com/wp-content/uploads/2019/09/KDenlive-Video-Editor--1024x579.jpg +[24]: https://kdenlive.org/en/download/ +[25]: https://jliljebl.github.io/flowblade/ +[26]: https://www.debugpoint.com/wp-content/uploads/2019/09/Flowblade-Video-Editor-1024x579.jpg +[27]: https://jliljebl.github.io/flowblade/download.html +[28]: https://www.olivevideoeditor.org +[29]: https://www.debugpoint.com/olive-0-2-video-editor-review/ +[30]: https://www.debugpoint.com/wp-content/uploads/2019/09/Olive-Video-Editor-1024x576.jpg +[31]: https://www.olivevideoeditor.org/download.php From ac3a43e92a4e7a7060ac1cd1d65764bfb88bc117 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:50:26 +0800 Subject: [PATCH 0439/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220718=205=20Best=20and=20Free=20Desktop=20Email?= =?UTF-8?q?=20Clients=20for=20Linux=20and=20Windows.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...top Email Clients for Linux and Windows.md | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 sources/tech/20220718 5 Best and Free Desktop Email Clients for Linux and Windows.md diff --git a/sources/tech/20220718 5 Best and Free Desktop Email Clients for Linux and Windows.md b/sources/tech/20220718 5 Best and Free Desktop Email Clients for Linux and Windows.md new file mode 100644 index 0000000000..3cf8cd2ef7 --- /dev/null +++ b/sources/tech/20220718 5 Best and Free Desktop Email Clients for Linux and Windows.md @@ -0,0 +1,192 @@ +[#]: subject: "5 Best and Free Desktop Email Clients for Linux and Windows" +[#]: via: "https://www.debugpoint.com/best-email-client-linux-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Best and Free Desktop Email Clients for Linux and Windows +====== +If you are looking for free Email clients for Linux and Windows – here are 5 of them we list that you can try and consider for casual or professional uses. + +Web-based email is popular today and can be accessed via browsers or mobile apps. However, in big and medium enterprises, generic users still prefer native desktop email clients for heavy and office uses. Microsoft Outlook is the most popular desktop email client, which is, of course, not free, and you have to pay a huge licence fee to use it. + +There are multiple options for free desktop email clients available. Here are the best 5 free and open source email clients you can try and then deploy for your needs. + +### Quick Snapshot + +Here is a quick glimpse of 5 email desktop clients before you read the features and choose yourself. + +| Best Email Client Programs | Price | Platforms | Snap | Flatpak | +| :- | :- | :- | :- | :- | +| Thunderbird | FREE | Linux, Mac and Windows | Yes | Yes | +| Evolution | FREE | Linux | No | Yes | +| Geary | FREE | Linux | No | Yes | +| Claws Mail | FREE | Linux, Mac and Windows | Yes | No | +| SeaMonkey | FREE | Linux, Mac and Windows | No | No | + +### 5 Best Free Email Clients for Linux + +#### 1. Thunderbird + +Mozilla Foundation developed Thunderbird is the best free, open-source, cross-platform email client available today. It comes with email, chat support, an RSS reader and other features. + +![Thunderbird email client][1] + +A quick summary of Thunderbird’s features: + +##### Features + +* Email with POP, IMAP, and LDAP support +* Fast Search, Saved Search +* Spam filtering +* Security support via TLS/SSL connection to mail servers +* Secure email support via S/MIME +* Calendar Support via Lightning extension – Can integrate Google Calendar +* Microsoft Exchange Server integration with Paid extensions Owl +* HTML support in emails +* Desktop Notification +* Feature addition via Extensions +* Theme Support +* Multiple Language support + +##### How to Download + +You can download Thunderbird from the official page. + +[Download Thunderbird][2] + +#### 2. Evolution + +[Evolution][3], the GNOME project, combines email, address book, calendar, and task manager features. Evolution is free and open-source software available for Linux systems. + +![Evolution email client][4] + +Here are some of its features: + +##### Features + +* POP, IMAP and SMTP Support +* Secure network connection with SSL, TLS +* Automatic spam filtering +* Advanced email search +* Exchange server support using plug-ins +* Calendar support using Google Calendar and iCalendar +* Contact management with local address books and Google address books + +##### How to Download and install + +In Ubuntu-based Linux systems, you can install Evolution from the below commands from the terminal. Or from Software. Run the below commands from terminal to install Evolution in Ubuntu-based systems: + +``` +sudo apt install evolution evolution-ews +``` + +Note: evolution-ews is to connect to Microsoft Exchange. + +#### 3. Geary + +[Geary][5] is a free and open-source email client for Linux. Written in Vala with WebKitGtk, Geary is different from other desktop email clients. + +![Geary email client][6] + +##### Features + +* Conversation View for emails +* Supports IMAP servers – GMAIL, Yahoo! Mail, Outlook.com +* Send as another identity +* HTML Support in email +* Search with options +* Desktop notifications + +##### How to Download + +Geary is available for Linux only. For Ubuntu-based systems, search ‘geary’ in software and click install. You can also install via command line using below commands in Ubuntu based systems. + +``` +sudo apt install geary +``` + +#### 4. Claws Mail + +[Claws Mail][7] is a free and open source GTK+ based email client with easy configuration and many features. It supports and stores email in MH mailbox format. Claws email is available for Windows and Linux. + +![Claws email][8] + +##### Features + +* Secured email client with SSL and GPG support +* Search and filtering +* Customizable toolbar and themes support +* Templates and plug-in +* Support for PDF viewer, HTML, Calendar, Anti-spam filtering using plug-ins + +##### How to Download + +All download options for Windows and Linux are available in the link below via the official website. + +[Download Claws mail][9] + +#### 5. SeaMonkey + +[SeaMonkey][10] is a free and open-source internet suite, and SeaMonkey mail is a component of the same. It keeps the traditional looks of an email client, and it is available in Windows, Linux and Mac. SeaMonkey mail shares code from Mozilla Thunderbird. + +![Sea Monkey][11] + +Here are some of its features. + +##### Features + +* Multiple email account support +* Junk email detection +* HTML support in email messages +* Message filters +* Address books + +##### How to download + +Download SeaMonkey via below link via the official website. + +[Download SeaMonkey][12] + +### Summary + +While wrapping up the best email clients for Linux, I would recommend Thunderbird for serious work and enterprise-wide deployment, if needed, along with casual users. However, you can still try other four as per your need and choice. + +I purposefully did not include several below email clients in this article due to ‘not-so-good’ user feedback and some of them are ‘not free’. + +* Sylpheed +* Zimbra +* Mutt +* Mailspring +* Hiri (paid) + +So, what are the best email clients for Linux? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-email-client-linux-windows/ + +作者:[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/2019/06/Thunderbird.png +[2]: https://www.thunderbird.net/ +[3]: https://wiki.gnome.org/Apps/Evolution +[4]: https://www.debugpoint.com/wp-content/uploads/2019/06/Evolution.png +[5]: https://wiki.gnome.org/Apps/Geary +[6]: https://www.debugpoint.com/wp-content/uploads/2019/06/Geary.png +[7]: https://www.claws-mail.org/ +[8]: https://www.debugpoint.com/wp-content/uploads/2019/06/Claws-mail.png +[9]: https://www.claws-mail.org/downloads.php?section=downloads +[10]: http://www.seamonkey-project.org/ +[11]: https://www.debugpoint.com/wp-content/uploads/2019/06/SeaMonkey-Mail.png +[12]: http://www.seamonkey-project.org/releases/ From 64ae82c0e9496cdc2bc54cac23742ea85e1094cd Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:52:47 +0800 Subject: [PATCH 0440/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220719=20How=20to=20Install=20Discord=20on=20Manja?= =?UTF-8?q?ro=20and=20Other=20Arch=20Linux=20Derivatives.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...anjaro and Other Arch Linux Derivatives.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md diff --git a/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md b/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md new file mode 100644 index 0000000000..444ea26d90 --- /dev/null +++ b/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md @@ -0,0 +1,116 @@ +[#]: subject: "How to Install Discord on Manjaro and Other Arch Linux Derivatives" +[#]: via: "https://itsfoss.com/install-discord-arch-manjaro/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Discord on Manjaro and Other Arch Linux Derivatives +====== + +[Discord][1] is a cross-platform application that can be used for voice calling, video calling, text messaging, and sharing media and files. + +It is extremely popular among gamers and streamers. Although, many open source projects have started using it for hosting their community discussion. You can find [official Discord servers][2] for such open source communities. + +Discord can be accessed straight from your web browser. Installing the official desktop client gives you system notifications and focused communication rather than fumbling for the Discord tab among multiple opened tabs. + +While Discord provides Deb files for Ubuntu, there is no such ready-to-use package for Arch Linux. + +Fret not. In this tutorial, I will show you two methods to install Discord on [Arch Linux][3] and its derivatives. + +* Installing Discord via [Pacman][4] (CLI method, valid for all Arch-based distributions) +* Installing Discord via [Pamac][5] (GUI method, valid for Manjaro and some other Arch-based distros that use Pamac tool) + +### Method 1: Installing Discord via pacman command + +First, update your system as it is a rolling release distribution and [do not support partial upgrades][6]. + +Enter the following [pacman command][7] in the terminal to [update your Arch Linux system][8]. + +``` +sudo pacman -Syu +``` + +Now you can install Discord package via the following command. + +``` +sudo pacman -S discord +``` + +Once installed, just launch the application from the application menu and login to start using Discord. + +![Discord client in Arch Linux][9] + +**If you want to install the Nightly version of Discord** to test upcoming new features, use the following command. Do note that it may not be stable so think again if you want this version. + +``` +sudo pacman -S discord-canary +``` + +#### Removing Discord + +If you want to remove Discord, use the command below to remove it along with its dependencies and configuration files: + +``` +sudo pacman -Rns discord +``` + +If you had opted for the Nightly version, remove it using: + +``` +sudo pacman -Rns discord-canary +``` + +That’s neat. Now for folks who dislike using the terminal, there is an alternative. I will discuss that in the next section. + +### Method 2: Installing Discord via Pamac + +If you are using Arch Linux derivatives like [Manjaro Linux][10], [Garuda Linux][11], etc you have a graphical software center called Pamac. + +With this graphical tool, you can easily install new applications or remove existing ones without going into the terminal. + +Launch Pamac (Add/Remove Software) from the application menu. + +![pamac menu][12] + +Click on Updates to update your system. + +![pamac update][13] + +Now click on Browse and search for discord using the search button on the top left. Then, select the package and click apply to install. + +![Installing Discord from Pamac][14] + +You can use Pamac to uninstall the package the same way you installed it. + +I hope you find this quick tip on installing Discord on Arch-based Linux distros helpful. Let me know if you have any questions or suggestions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-discord-arch-manjaro/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://discord.com/ +[2]: https://discord.com/open-source +[3]: https://archlinux.org/ +[4]: https://archlinux.org/pacman/ +[5]: https://gitlab.manjaro.org/applications/pamac +[6]: https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported +[7]: https://itsfoss.com/pacman-command/ +[8]: https://itsfoss.com/update-arch-linux/ +[9]: https://itsfoss.com/wp-content/uploads/2022/06/discord.png +[10]: https://manjaro.org/ +[11]: https://garudalinux.org/ +[12]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-menu.png +[13]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-update.png +[14]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-discord.png From 8b8de8dd3fa7aee522f3ccf51ac4a8d192203a33 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:53:43 +0800 Subject: [PATCH 0441/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220719=20Ubuntu=2021.10=20Has=20Reached=20End-of-L?= =?UTF-8?q?ife,=20Upgrade=20Now!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 Has Reached End-of-Life, Upgrade Now!.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md diff --git a/sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md b/sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md new file mode 100644 index 0000000000..a8707cc715 --- /dev/null +++ b/sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md @@ -0,0 +1,90 @@ +[#]: subject: "Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!" +[#]: via: "https://news.itsfoss.com/ubuntu-21-10-eol/" +[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now! +====== +Ubuntu 21.10 has reached end-of-life on 14th of July. Backup your files before starting an upgrade! + +![ubuntu 22 10][1] + +While [Ubuntu 21.10][2]was the only way to experience GNOME 40 back then, it brought a newer kernel and high-quality Bluetooth codecs. + +Unfortunately, it reached end-of-life on the **14th of July**, meaning you will no longer receive any updates for it. + +So it’s time to upgrade! + +I know, for some, it’s not much time since you switched to Ubuntu 21.10, but it’s not an LTS release. So, it had only nine months of support after its release. + +If you want to know about the release and update cycles, you can check out our [guide on end-of-life][3]. + +When writing this article, there’s only one option available: **[Ubuntu 22.04 LTS.][4]** + +[Ubuntu 22.04 LTS is different from Ubuntu 20.04][5] in several ways and offers a bunch of new features. + +### Upgrading to Ubuntu 22.04 LTS + +Unless you are going to use your system completely offline, you must upgrade to Ubuntu 22.04 as it would protect you against the latest security vulnerabilities. + +In fact, Ubuntu 22.04 LTS is the [most secure release yet][6]. + +There are plenty of other reasons why you should upgrade, including user experience improvements, better performance, and newer hardware support. + +Not to forget, [Long-Term Support Release][7] edition gives you up to 5 years of software updates, and 10 years of maintenance updates, ensuring the stability you need for production. + +Whether you use your system/server for personal or commercial use. + +**Here’s how to upgrade:** + +You can look for **“Software Updater**” from the app menu and click on it to proceed with the latest upgrade. + +If you prefer the terminal, type in the command to start the update manager: + +``` +update-manager -c +``` + +In either case, type in the following from the terminal: + +``` +sudo do-release-upgrade +``` + +You will be informed that your system is out of support and will be upgraded to Ubuntu 22.04 LTS. Just click on the upgrade button, and the update manager will take care of it. + +### Ubuntu 22.04 Upgrade and Beyond + +As always, there are plenty of alternatives to Ubuntu 22.04 LTS, including [official Ubuntu flavors][8]. And, if you want something different in Ubuntu space, I highly recommend [Pop!_OS 22.04 LTS.][9] + +With the upgrade, you should enjoy the new GNOME 42 experience, a newer kernel, and a better user experience compared to 21.10 and bundled with [new features.][10] + +Sure, you are not going to be disappointed! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-21-10-eol/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/ubuntu-22-10-eol.jpg +[2]: https://news.itsfoss.com/ubuntu-21-10-release/ +[3]: https://itsfoss.com/end-of-life-ubuntu/ +[4]: https://news.itsfoss.com/ubuntu-22-04-release/ +[5]: https://itsfoss.com/ubuntu-20-04-vs-22-04/ +[6]: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/ +[7]: https://itsfoss.com/long-term-support-lts/ +[8]: https://itsfoss.com/which-ubuntu-install/ +[9]: https://news.itsfoss.com/pop-os-22-04-release/ +[10]: https://itsfoss.com/ubuntu-22-04-release-features/ From 091bb0616d108a5928278ebad925029f53399e63 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:55:00 +0800 Subject: [PATCH 0442/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220719=20Event-driven=20architecture=20explained?= =?UTF-8?q?=20in=20a=20coloring=20book.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...chitecture explained in a coloring book.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20220719 Event-driven architecture explained in a coloring book.md diff --git a/sources/tech/20220719 Event-driven architecture explained in a coloring book.md b/sources/tech/20220719 Event-driven architecture explained in a coloring book.md new file mode 100644 index 0000000000..022ed0b490 --- /dev/null +++ b/sources/tech/20220719 Event-driven architecture explained in a coloring book.md @@ -0,0 +1,100 @@ +[#]: subject: "Event-driven architecture explained in a coloring book" +[#]: via: "https://opensource.com/article/22/7/event-driven-architecture-coloring-book" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Event-driven architecture explained in a coloring book +====== +Event-driven architecture is no small topic. A coloring book is a perfect way to explain its complexity in a friendly manner. Download this coloring book about event-driven architecture + +"Explain it to me like I'm five." + +When you want someone to get to the point as efficiently and as clearly as possible, that's what you say. Following that logic, you might be compelled to ponder the most powerful tool the average, everyday 5-year old wields: coloring books. What better way than a coloring book to transform a droll slideshow presentation into a fun and educational journey? + +That's what artists Máirín Duffy and Madeline Peck thought, anyway, and it has turned out to be accurate. In the past, Máirín has helped produce [five open source coloring books][2] to help explain advanced topics including SELinux, Containers, Ansible, and more. It's a fun and easy way to learn about emerging technology, and you can either color your lessons yourself or hand it over to a resident specialist (an actual 5-year old) for project completion. + +The latest coloring book in the series is all about [event driven architecture (EDA)][3]. As with all the previous coloring books, this one's not only free to download, but it's also open source. You can download the sources and assemble it yourself, or learn from the files so you can build your own about topics important to you. + +Event-driven architecture is no small topic, so I sat down with Máirín and Madeline to discover how and why they took on the challenge. + +**Q**: Presumably, you don't spend your days developing KNative serverless applications and pipelines. How do you learn so much about such a complex topic? + +**Máirín Duffy**: I wrote the script for the coloring book. I have a lot of experience with OS-level technology, and I have experience working in teams that deploy applications as a service, but I do not have as much experience working with running and managing Kubernetes directly. And the concept of "serverless" was one I only knew of in passing. + +Our colleague Kamesh Sampath gave a presentation he called [Knative and the Three Dwarves][4]. + +That gave us the idea to relate our story to Snow White. In fact, we use material from Kamesh's talk to serve as the basic scope of the technologies and technical scenarios we wanted to talk about. +All of the coloring books use an analogy of some form to help readers new to the technology relate to it using concepts they are likely to understand already or be familiar with. + +For the EDA coloring book, we used the familiar fairy tale of Snow White and the Seven Dwarves and the analogy of running a bakery to explain the concepts of what it means to be serverless, and what the specific Kubernetes serverless components [Tekton][5], Serve Knative, and Event Knative are, and what they do. + +In preparing to write a script for the book, I watched Kamesh's presentation, wrote out the questions I had, and met with Kamesh. He is a very gifted teacher and was able to answer all of my questions and help me feel comfortable about the subject matter. I formed an informal technical review board for the book. We have access to a lot of amazingly smart technology experts through Fedora and Red Hat, and they were excited about having a book like this available, so we got quite a few volunteers. + +I bounced ideas off of them. I spent a lot of time pestering Langdon White, and we narrowed down on the concept of Snow White running a bakery and the scenarios of demonstrating auto-scaling (scaling the production of different baked goodies up and down based on the holidays), self-healing based on events (ordering new eggs when the supply is low), shutting down an app that isn't being used and spinning it up on demand (the cupcake decorator scenario), rolling back issues in production (the poisoned apple detector.) + +I wrote up an initial draft, and then the technical review board reviewed it and provided a ton of suggestions and tweaks. We did another round, and I finalized the script so that Madeline could start illustrating. + +**Madeline Peck**: That's where I come in. I was lucky: I was presented with the finished version of the script, so the coloring book taught me what I needed to know. The great technical writers who helped give feedback on the script and visuals correlating were a great help with this admittedly complex topic. + +**Máirín Duffy**: And as Madeline completed storyboards, and then the initial draft of the fully illustrated book, we had a couple more technical board reviews to make sure it still all made sense. + +**Q**: That's a lot more work than I realized. So how long does it take to create a coloring book? + +**Madeline Peck**: This one took a lot longer because it was the first coloring book I had worked on. Mo has been churning them out for some time now, and has a great grasp on all the open source programs like [Inkscape][6] and [Scribus][7] that we use, as well as the connections and knowledge for topics that can be expanded upon in a simple but informative manner. This book started when I was an intern, and it's taught me a lot about each step in the process, as well as all the ways open source matters for projects like these. + +**Q**: What tools do you use when you draw? + +**Madeline Peck**: When I draw digitally, I use variations of different ink pens. But on paper, traditionally I use a color erase red pencil for sketching, a Pigma Micron 01 pen for inking (because it's water proof), and occasionally I add color with watercolors from Mijello. + +**Q**: I don't work with physical materials often, and I don't have a kid to do the coloring in for me, but I'm enjoying using this as a digital coloring book. I've imported pages into Krita and it's given me the opportunity to experiment with different brushes and color mixing techniques. + +**Madeline Peck**: I think Krita is a great coloring application! There's a great variety of brushes and tools. I used Krita for all the primary sketching for the frames in the coloring book. If people don't know, when you import PNGs into programs like Krita, you can set the layer mode with the image to multiply instead of normal. Then you can add a layer below it, and it's just like coloring in below the lines without the white background. + +**Q**: Is it harder to draw things without considering color and shading? Does it feel incomplete to you? + +**Madeline Peck**: I don't think so! There's a lot of gorgeous art in the world where artists only rely on line work. The weight of the lines, the way they interact — it's just another technique. It doesn't feel incomplete because I know there's going to be lots of people who are going to share pages of the book colored in their own way, which is really exciting! + +**Q:** Who's this really meant for? Can people actually learn about going serverless from a coloring book? + +**Máirín Duffy**: Another good question. We started this whole "coloring books to explain technology" thing when Dan Walsh came into my cube at Red Hat Westford almost 10 years ago and asked if I could draw him some illustrations for his [SELinux dogfood analogy][8]. He had come up with this analogy having had to explain how SELinux concepts worked repeatedly. He also found it to be an effective analogy in many presentations. + +That coloring book was super basic compared to the EDA coloring book, but the bones are the same — making complex technology concepts less intimidating and more approachable with simple analogies and narrative. We have gotten overwhelming feedback over a long period of time that these coloring books have been very helpful in teaching about the technology. I've had customers tell me that they've been able to use specific coloring books to help explain the technology to their managers, and that they are a really non-intimidating way to get a good initial understanding. + +**Madeline Peck**: I agree. The coloring books are meant for a variety of readers, with a wide range of prior knowledge on the subject. They can be used for people who have friends and family who work on serverless applications, for those working on the actual teams, or people who work adjacent to those developers. + +**Máirín Duffy**: They also make a great handout on a conference expo floor, at talks, and even virtually as PDFs. Even if EDA isn't your thing, you can pick it up and your kids can have fun coloring the characters. I really do hope people can read this book and better understand what serverless is and that it could spark an interest for them to look more in depth into serverless and EDA processes. + +### Get your copy + +I love that there are free and open source coloring books that appeal to both kids needing something fun to color in, and the older crowd looking for clear and simple explanations of complex tech topics. + +A lot of creativity goes into making these coloring books, but as with most open source endeavours, it inspires yet more creativity once it's in the hands of users. + +Grab your copy of the Event-driven Architecture coloring book today! Download the PDF directly [here][9]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/event-driven-architecture-coloring-book + +作者:[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/EDUCATION_crayons.png +[2]: https://github.com/FOSS-Coloring-Books +[3]: https://github.com/FOSS-Coloring-Books/eda +[4]: https://www.youtube.com/watch?v=w-BBOxu8tqs +[5]: https://opensource.com/article/21/11/cicd-pipeline-kubernetes-tekton +[6]: https://opensource.com/article/21/12/linux-draw-inkscape +[7]: https://opensource.com/article/21/12/desktop-publishing-scribus +[8]: https://opensource.com/business/13/11/selinux-policy-guide +[9]: https://raw.githubusercontent.com/FOSS-Coloring-Books/eda/master/EDA%20and%20the%20Three%20Dwarves%20web%20version.pdf From 907adef77991d35765bbc60bbd752ffe9371ae69 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:56:54 +0800 Subject: [PATCH 0443/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220719=20Code=20your=20first=20React=20UI=20app.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220719 Code your first React UI app.md | 228 ++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 sources/tech/20220719 Code your first React UI app.md diff --git a/sources/tech/20220719 Code your first React UI app.md b/sources/tech/20220719 Code your first React UI app.md new file mode 100644 index 0000000000..9d795ade2e --- /dev/null +++ b/sources/tech/20220719 Code your first React UI app.md @@ -0,0 +1,228 @@ +[#]: subject: "Code your first React UI app" +[#]: via: "https://opensource.com/article/22/7/code-first-react-app" +[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Code your first React UI app +====== +Learn to make back-end and front-end development work together with this JavaScript tutorial. + +Who wants to create their first UI app? I do, and if you're reading this article, I assume you do, too. In today's example, I'll use some JavaScript and the [API with Express][2] I demonstrated in my previous article. First, let me explain some of the tech you're about to use. + +### What is React? + +React is a JavaScript library for building a user interface (UI). However, you need more than just the UI library for a functional UI. Here are the important components of the JavaScript web app you're about to create: + +* npx: This package is for executing npm packages. +* axios: A promise-based HTTP client for the browser and node.js. A promise is a value that an API endpoint will provide. +* http-proxy-middleware: Configures proxy middleware with ease. A proxy is middleware that helps deal with messaging back and forth from the application endpoint to the requester. + +### Preconfiguration + +If you haven't already, look at my [previous article][3]. You'll use that code as part of this React app. In this case, you'll add a service to use as part of the app. As part of this application, you have to use the `npx` package to create the new folder structure and application: + +``` +$ npx create-react-app count-ui +npx: installed 67 in 7.295s + +Creating a new React app in /Users/cherrybomb/count-ui. + +Installing packages. This might take a couple of minutes. +Installing react, react-dom, and react-scripts with cra-template... +[...] +Installing template dependencies using npm... ++ @testing-library/jest-dom@5.16.4 ++ @testing-library/user-event@13.5.0 ++ web-vitals@2.1.4 ++ @testing-library/react@13.3.0 +added 52 packages from 109 contributors in 9.858s +[...] +Success! Created count-ui at /Users/cherrybomb/count-ui +[...] +We suggest that you begin by typing: + +  cd count-ui +  npm start +``` + +As you can see, the `npx` command has created a new template with a folder structure, an awesome `README` file, and a Git repository. Here's the structure: + +``` +$ cd count-ui/ +/Users/cherrybomb/count-ui + +$ ls -A -1 +.git +.gitignore +README.md +node_modules +package-lock.json +package.json +public +src +``` + +This process also initialized the Git repo and set the branch to master, which is a pretty cool trick. Next, install the `npm` packages: + +``` +$ npm install axios http-proxy-middleware +[...] +npm WARN @apideck/better-ajv-errors@0.3.4 requires a peer of ajv@>=8 but none is installed. You must install peer dependencies yourself. ++ http-proxy-middleware@2.0.6 ++ axios@0.27.2 +added 2 packages from 2 contributors, updated 1 package and audited 1449 packages in 5.886s +``` + +Now that those are set up, add your `services`, and `main.js` file: + +``` +$ mkdir src/services +src/services + +$ touch src/services/main.js +``` + +Preconfiguration is now complete, so you can now work on coding. + +### Code a UI from start to finish + +Now that you have everything preconfigured, you can put together the service for your application. Add the following code to the `main.js` file: + +``` +import axios from 'axios'; +const baseURL = 'http://localhost:5001/api'; +export const get = async () => await axios.get(`${baseURL}/`); +export const increment = async () => await axios.post(`${baseURL}/`); +export default { +    get, +    increment +} +``` + +This process creates a JavaScript file that interacts with the API you created in my previous article. + +### Set up the proxy + +Next, you must set up a proxy middleware by creating a new file in the `src` directory. + +``` +$ touch src/setupProxy.js +``` + +Configure the proxy with this code in `setupProxy.js` : + +``` +const { createProxyMiddleware } = require('http-proxy-middleware'); +module.exports = function(app) { +  app.use( +    '/api', +    createProxyMiddleware({ +      target: 'http://localhost:5000', +      changeOrigin: true, +    }) +  ); +}; +``` + +In this code, the `app.use` function specifies the service to use as `/api` when connecting to the existing API project. However, nothing defines `api` in the code. This is where a proxy comes in. With a proxy, you can define the `api` function on the proxy level to interact with your Express API. This middleware registers requests between both applications because the UI and API use the same host with different ports. They require a proxy to transfer internal traffic. + +### JavaScript imports + +In your base `src` directory, you see that the original template created an `App.js`, and you must add `main.js` (in the `services` directory) to your imports in the `App.js` file. You also need to import React on the very first line, as it is external to the project: + +``` +import React from 'react' +import main from './services/main'; +``` + +### Add the rendering function + +Now that you have your imports, you must add a render function. In the **App()** function of `App.js`, add the first section of definitions for **react** and **count** before the **return** section. This section gets the **count** from the API and puts it on the screen. In the **return** function, a button provides the ability to increment the count. + +``` +function App() { +const [count, setCount] = React.useState(0); +React.useEffect(()=>{ +  async function fetchCount(){ +    const newCount = (await main.get()).data.count; +    setCount(newCount); +  } +  fetchCount(); +}, [setCount]); +return (   +   
+     
+       

+          {count} +       

+        +     
+   
+  ); +} +``` + +To start and test the app, run `npm run start`. You should see the output below. Before running the application, confirm your API is running from the Express app by running node `./src/index.js`. + +``` +$ npm run start +> count-ui@0.1.0 start /Users/cherrybomb/count-ui +> react-scripts start + +[HPM] Proxy created: /  -> http://localhost:5000 +(node:71729) [DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning: 'onAfterSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option. +(Use `node --trace-deprecation ...` to show where the warning was created) +(node:71729) [DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning: 'onBeforeSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option. +Starting the development server... +``` + +Once everything is running, open your browser to `localhost:5000` to see the front end has a nice, admittedly minimal, page with a button: + +![Counter at zero][4] + +Image by: + +(Jessica Cherry, CC BY-SA 4.0) + +What happens when you press the button? (Or, in my case, press the button several times.) + +![Counter at four][5] + +Image by: + +(Jessica Cherry, CC BY-SA 4.0) + +The counter goes up! + +Congratulations, you now have a React app that uses your new API. + +### Web apps and APIs + +This exercise is a great way to learn how to make a back end and a front end work together. It's noteworthy to say that if you're using two hosts, you don't need the proxy section of this article. Either way, JavaScript and React are a quick, templated way to get a front end up and running with minimal steps. Hopefully, you enjoyed this walk-through. Tell us your thoughts on learning how to code in JavaScript. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/code-first-react-app + +作者:[Jessica Cherry][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/cherrybomb +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-window-focus.png +[2]: https://opensource.com/article/22/7/javascript-api-express +[3]: https://opensource.com/article/22/7/javascript-api-express +[4]: https://opensource.com/sites/default/files/2022-07/counter0.png +[5]: https://opensource.com/sites/default/files/2022-07/counter4.png From 86f3c617b5d12a8f4bf1b2f717a1a1ef43c03a46 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 18:58:02 +0800 Subject: [PATCH 0444/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220719=20Turn=20your=20Python=20script=20into=20a?= =?UTF-8?q?=20command-line=20application.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... script into a command-line application.md | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 sources/tech/20220719 Turn your Python script into a command-line application.md diff --git a/sources/tech/20220719 Turn your Python script into a command-line application.md b/sources/tech/20220719 Turn your Python script into a command-line application.md new file mode 100644 index 0000000000..c703b2b61f --- /dev/null +++ b/sources/tech/20220719 Turn your Python script into a command-line application.md @@ -0,0 +1,221 @@ +[#]: subject: "Turn your Python script into a command-line application" +[#]: via: "https://opensource.com/article/22/7/bootstrap-python-command-line-application" +[#]: author: "Mark Meyer https://opensource.com/users/ofosos" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Turn your Python script into a command-line application +====== +With scaffold and click in Python, you can level up even a simple utility into a full-fledged command-line interface tool. + +![Python programming language logo and Tux the Penguin logo for Linux][1] + +Image by: Opensource.com + +I've written, used, and seen a lot of loose scripts in my career. They start with someone that needs to semi-automate some task. After a while, they grow. They can change hands many times in their lifetime. I've often wished for a more command-line *tool-like* feeling in those scripts. But how hard is it really to bump the quality level from a one-off script to a proper tool? It turns out it's not that hard in Python. + +### Scaffolding + +In this article, I start with a little Python snippet. I'll drop it into a `scaffold` module, and extend it with `click` to accept command-line arguments. + +``` +#!/usr/bin/python + +from glob import glob +from os.path import join, basename +from shutil import move +from datetime import datetime +from os import link, unlink + +LATEST = 'latest.txt' +ARCHIVE = '/Users/mark/archive' +INCOMING = '/Users/mark/incoming' +TPATTERN = '%Y-%m-%d' + +def transmogrify_filename(fname): +    bname = basename(fname) +    ts = datetime.now().strftime(TPATTERN) +    return '-'.join([ts, bname]) + +def set_current_latest(file): +    latest = join(ARCHIVE, LATEST) +    try: +        unlink(latest) +    except: +        pass +    link(file, latest) + +def rotate_file(source): +    target = join(ARCHIVE, transmogrify_filename(source)) +    move(source, target) +    set_current_latest(target) + +def rotoscope(): +    file_no = 0 +    folder = join(INCOMING, '*.txt') +    print(f'Looking in {INCOMING}') +    for file in glob(folder): +        rotate_file(file) +        print(f'Rotated: {file}') +        file_no = file_no + 1 +    print(f'Total files rotated: {file_no}') + +if __name__ == '__main__': +    print('This is rotoscope 0.4.1. Bleep, bloop.') +    rotoscope() +``` + +All non-inline code samples in this article refer to a specific version of the code you can find at [https://codeberg.org/ofosos/rotoscope][2]. Every commit in that repo describes some meaningful step in the course of this how-to article. + +This snippet does a few things: + +* Check whether there are any text files in the path specified in `INCOMING` +* If it exists, it creates a new filename with the current timestamp and moves the file to `ARCHIVE` +* Delete the current `ARCHIVE/latest.txt` link and create a new one pointing to the file just added + +As an example, this is pretty small, but it gives you an idea of the process. + +### Create an application with pyscaffold + +First, you need to install the `scaffold`, `click`, and [tox Python modules][3]. + +``` +$ python3 -m pip install scaffold click tox +``` + +After installing `scaffold`, change to the directory where the example `rotoscope` project resides, and then execute the following command: + +``` +$ putup rotoscope -p rotoscope \ +--force --no-skeleton -n rotoscope \ +-d 'Move some files around.' -l GLWT \ +-u http://codeberg.org/ofosos/rotoscope \ +--save-config --pre-commit --markdown +``` + +Pyscaffold overwrote my `README.md`, so restore it from Git: + +``` +$ git checkout README.md +``` + +Pyscaffold set up a complete sample project in the docs hierarchy, which I won't cover here but feel free to explore it later. Besides that, Pyscaffold can also provide you with continuous integration (CI) templates in your project. + +* packaging: Your project is now PyPi enabled, so you can upload it to a repo and install it from there. +* documentation: Your project now has a complete docs folder hierarchy, based on Sphinx and including a readthedocs.org builder. +* testing: Your project can now be used with the tox test runner, and the tests folder contains all necessary boilerplate to run pytest-based tests. +* dependency management: Both the packaging and test infrastructure need a way to manage dependencies. The `setup.cfg` file solves this and includes dependencies. +* pre-commit hook: This includes the Python source formatter "black" and the "flake8" Python style checker. + +Take a look into the tests folder and run the `tox` command in the project directory. It immediately outputs an error. The packaging infrastructure cannot find your package. + +Now create a Git tag (for instance, `v0.2` ) that the tool recognizes as an installable version. Before committing the changes, take a pass through the auto-generated `setup.cfg` and edit it to suit your use case. For this example, you might adapt the `LICENSE` and project descriptions. Add those changes to Git's staging area, I have to commit them with the pre-commit hook disabled. Otherwise, I'd run into an error because flake8, Python style checker, complains about lousy style. + +``` +$ PRE_COMMIT_ALLOW_NO_CONFIG=1 git commit +``` + +It would also be nice to have an entry point into this script that users can call from the command line. Right now, you can only run it by finding the `.py` file and executing it manually. Fortunately, Python's packaging infrastructure has a nice "canned" way to make this an easy configuration change. Add the following to the `options.entry_points` section of your `setup.cfg` : + +``` +console_scripts = +    roto = rotoscope.rotoscope:rotoscope +``` + +This change creates a shell command called `roto`, which you can use to call the rotoscope script. Once you install rotoscope with `pip`, you can use the `roto` command. + +That's that. You have all the packaging, testing, and documentation setup for free from Pyscaffold. You also got a pre-commit hook to keep you (mostly) honest. + +### CLI tooling + +Right now, there are values hardcoded into the script that would be more convenient as command [arguments][4]. The `INCOMING` constant, for instance, would be better as a command-line parameter. + +First, import the [click][5] library. Annotate the `rotoscope()` method with the command annotation provided by Click, and add an argument that Click passes to the `rotoscope` function. Click provides a set of validators, so add a path validator to the argument. Click also conveniently uses the function's here-string as part of the command-line documentation. So you end up with the following method signature: + +``` +@click.command() +@click.argument('incoming', type=click.Path(exists=True)) +def rotoscope(incoming): +    """ +    Rotoscope 0.4 - Bleep, blooop. +    Simple sample that move files. +    """ +``` + +The main section calls `rotoscope()`, which is now a Click command. It doesn't need to pass any parameters. + +Options can get filled in automatically by [environment variables][6], too. For instance, change the `ARCHIVE` constant to an option: + +``` +@click.option('archive', '--archive', default='/Users/mark/archive', envvar='ROTO_ARCHIVE', type=click.Path()) +``` + +The same path validator applies again. This time, let Click fill in the environment variable, defaulting to the old constant's value if nothing's provided by the environment. + +Click can do many more things. It has colored console output, prompts, and subcommands that allow you to build complex CLI tools. Browsing through the Click documentation reveals more of its power. + +Now add some tests to the mix. + +### Testing + +Click has some advice on [running end-to-end tests][7] using the CLI runner. You can use this to implement a complete test (in the [sample project][8], the tests are in the `tests` folder.) + +The test sits in a method of a testing class. Most of the conventions follow what I'd use in any other Python project very closely, but there are a few specifics because rotoscope uses `click`. In the `test` method, I create a `CliRunner`. The test uses this to run the command in an isolated file system. Then the test creates `incoming` and `archive` directories and a dummy `incoming/test.txt` file within the isolated file system. Then it invokes the CliRunner just like you'd invoke a command-line application. After the run completes, the test examines the isolated filesystem and verifies that `incoming` is empty, and that `archive` contains two files (the latest link and the archived file.) + +``` +from os import listdir, mkdir +from click.testing import CliRunner +from rotoscope.rotoscope import rotoscope + +class TestRotoscope: +    def test_roto_good(self, tmp_path): +        runner = CliRunner() + +        with runner.isolated_filesystem(temp_dir=tmp_path) as td: +            mkdir("incoming") +            mkdir("archive") +            with open("incoming/test.txt", "w") as f: +                f.write("hello") + +            result = runner.invoke(rotoscope, ["incoming", "--archive", "archive"]) +            assert result.exit_code == 0 + +            print(td) +            incoming_f = listdir("incoming") +            archive_f = listdir("archive") +            assert len(incoming_f) == 0 +            assert len(archive_f) == 2 +``` + +To execute these tests on my console, run `tox` in the project's root directory. + +During implementing the tests, I found a bug in my code. When I did the Click conversion, rotoscope just unlinked the latest file, whether it was present or not. The tests started with a fresh file system (not my home folder) and promptly failed. I can prevent this kind of bug by running in a nicely isolated and automated test environment. That'll avoid a lot of "it works on my machine" problems. + +### Scaffolding and modules + +This completes our tour of advanced things you can do with `scaffold` and `click`. There are many possibilities to level up a casual Python script, and make even your simple utilities into full-fledged CLI tools. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/bootstrap-python-command-line-application + +作者:[Mark Meyer][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/ofosos +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/python_linux_tux_penguin_programming.png +[2]: https://codeberg.org/ofosos/rotoscope +[3]: https://opensource.com/article/19/5/python-tox +[4]: https://opensource.com/article/21/8/linux-terminal#argument +[5]: https://click.palletsprojects.com +[6]: https://opensource.com/article/19/8/what-are-environment-variables +[7]: https://click.palletsprojects.com/en/8.1.x/testing +[8]: https://codeberg.org/ofosos/rotoscope/commit/dfa60c1bfcb1ac720ad168e5e98f02bac1fde17d From 743e2aff08ba7733e98fa73764b69f93ac25f048 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 23:16:19 +0800 Subject: [PATCH 0445/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220719=20How=20to=20Uninstall=20Deb=20Packages=20i?= =?UTF-8?q?n=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...How to Uninstall Deb Packages in Ubuntu.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md diff --git a/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md b/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md new file mode 100644 index 0000000000..e25185723d --- /dev/null +++ b/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md @@ -0,0 +1,132 @@ +[#]: subject: "How to Uninstall Deb Packages in Ubuntu" +[#]: via: "https://itsfoss.com/uninstall-deb-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Uninstall Deb Packages in Ubuntu +====== +Installing applications from a deb file is quite simple. You double click on it and it opens in the Software Center application and you install it from there. + +[Installing applications from a deb file][1] is quite simple. You double click on it and it opens in the Software Center application and you install it from there. + +But what about uninstalling a .deb package in Ubuntu or Debian? How do you remove the package you installed some time back. + +While there are several ifs and buts around it, the simplest and most reliable way of deleting a deb file is by using the apt remove command. + +``` +sudo apt remove program_name +``` + +As you can see, **you need to know the exact package name here**. This may not always be straightforward. For example, if you install Google Chrome on Ubuntu, the program is known as ‘google-chrome-stable’ in the command line. Did you already know that? I guess not. + +In this tutorial, I’ll go into detail about finding the exact package name and then using it to remove the application. I’ll also discuss using a graphical method for deleting .deb packages. + +### Removing package installed via deb files from Ubuntu + +Before I show you how to remove deb packages from the command line, let’s just quickly look at it in the Software Center application. + +#### Method 1: Check if the application can be removed from the software center + +Ubuntu has the Software Center GUI application that allows to search for applications, install them and remove them. + +The Software Center may not show the application installed when you search for it. + +![Searching for installed applications may not show any results in Ubuntu Software Center][2] + +However, you may still find it under the “Installed” section if you scroll down. The external applications are usually displayed without their logo. + +![Some installed applications can be found in the ‘installed’ tab of the Software Center][3] + +If you find it, you can remove the application by clicking the trash icon or remove button. + +![Removing applications from the Ubuntu software center][4] + +**Bottom line: Check if the application can be removed from the software center.** + +#### Method 2: Delete applications using apt command + +I am presuming that you don’t know the exact name of the application command. It is only natural that you may not know that Google Chrome is installed as google-chrome-stable and Edge is installed as microsoft-edge-stable. + +The tab completion may help if you have the first few letters. Otherwise, you can [list the installed applications with apt command][5] and use grep to search for the application name: + +``` +apt list --installed | grep -i possible_package_name +``` + +For example, you can intelligently guess that the Google Chrome package should have chrome in its name. You may search it like this: + +``` +apt list --installed | grep -i chrome +``` + +You may get more than one result in some cases. + +![check if google chrome installed in ubuntu][6] + +If you are not sure what the packages do, you can always get their details with: + +``` +apt info exact_package_name +``` + +Once you have the exact package name, you can delete it using the apt remove command. + +``` +sudo apt remove exact_package_name +``` + +You can also use apt-get remove or dpkg uninstall commands. + +![Removing applications installed via deb files using the apt command][7] + +#### Method 3: Use Synaptic Package Manager to remove deb applications + +Another method is to use the [Synaptic Package Manager][8]. Before GNOME created its graphical package manager in the form of the Software Center, Synaptic was the default GUI package manager in Ubuntu and many other distributions. + +It is still the recommended tool on the [Xfce desktop environment][9]. + +Install it first: + +``` +sudo apt install synaptic +``` + +Open Synaptic and search for the package name. Look for the installed packages that are marked green. Right-click on them and click on ‘mark for removal’. Hit apply after that. + +![Removing Deb packages using Synaptic package manager][10] + +### Did it help you? + +I am more than comfortable using the apt command to remove the packages installed from .deb files. But I can understand that not everyone is comfortable using the command line. + +I find the Software Center lacking when it comes to the removal of applications installed from external deb files. It could do a better job here. + +I hope you have a better understanding of removing deb packages now. Let me know if you have any questions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/uninstall-deb-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/install-deb-files-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/search-for-installed-applications-ubuntu-software-center.png +[3]: https://itsfoss.com/wp-content/uploads/2022/07/installed-applications-in-ubuntu-software-center-scaled.webp +[4]: https://itsfoss.com/wp-content/uploads/2022/07/removing-applications-from-ubuntu-software-center-scaled.webp +[5]: https://itsfoss.com/list-installed-packages-ubuntu/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/check-if-google-chrome-installed-in-Ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-applications-ubuntu.png +[8]: https://itsfoss.com/synaptic-package-manager/ +[9]: https://www.xfce.org/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-using-synaptic-scaled.webp From 83135e9107ec04185b1c26505ad4f505b5207c35 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 23:17:28 +0800 Subject: [PATCH 0446/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220719=20Microsoft=20Opens=20Up=20The=20Microsoft?= =?UTF-8?q?=20Store=20To=20-Usually=20Free-=20And=20Open=20Source=20Applic?= =?UTF-8?q?ations.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ally Free- And Open Source Applications.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md diff --git a/sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md b/sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md new file mode 100644 index 0000000000..3e8fe5c0ca --- /dev/null +++ b/sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md @@ -0,0 +1,35 @@ +[#]: subject: "Microsoft Opens Up The Microsoft Store To ‘Usually Free’ And Open Source Applications" +[#]: via: "https://www.opensourceforu.com/2022/07/microsoft-opens-up-the-microsoft-store-to-usually-free-and-open-source-applications/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft Opens Up The Microsoft Store To ‘Usually Free’ And Open Source Applications +====== +![microsoft][1] + +Microsoft has altered its store policies to assist some developers in making money from their programs. Following clarification from Microsoft, app developers are now permitted to upload open source and generally free apps to the Microsoft Store, provided that they were created by the party who would be using them or have obtained the necessary permission. + +Apps cannot “try to profit from open source or other software that is usually generally available for free, nor be priced arbitrarily high relative to the features and capabilities supplied by your product,” according to an earlier version of the Microsoft Store regulations. The section of the policies that dealt with open source or free applications has been removed. To reflect its position on free and open source software in the Microsoft Store, Microsoft amended policy 11.2. Currently, it says (opens in new tab): + +“All content in your product and associated metadata must be either originally created by the application provider, appropriately licensed from the third-party rights holder, used as permitted by the rights holder, or used as otherwise permitted by law. Reporting infringement complaints can be done via our online form.” + +Microsoft claims that this was always the company’s intention. Giorgio Sardo, general manager of apps, partners, and the Microsoft Store at Microsoft, stated that the company wants to encourage open-source developers after developers and community members objected to the initial policy change. According to a Microsoft representative, “We’ve been working hard over the past year to improve consumer experiences while keeping the Store available to all developers. This policy update is an extension of that effort and is intended to give developers more options while enhancing the user experience.” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/microsoft-opens-up-the-microsoft-store-to-usually-free-and-open-source-applications/ + +作者:[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/07/microsoft-1-e1658233374530.jpg From 0538ba9c9e39486a01dd14ffe30c5c40e6bef3d9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 19 Jul 2022 23:19:23 +0800 Subject: [PATCH 0447/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220719=20Top=2010=20Features=20of=20Linux=20Mint?= =?UTF-8?q?=2021=20-Vanessa-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 10 Features of Linux Mint 21 -Vanessa-.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md diff --git a/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md new file mode 100644 index 0000000000..07414785ff --- /dev/null +++ b/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md @@ -0,0 +1,189 @@ +[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" +[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Features of Linux Mint 21 “Vanessa” +====== +We round up the top features of the upcoming Linux Mint 21 “Vanessa”. Find out what’s in store for you. + +![Linux Mint 21 Cinnamon Desktop][1] + +Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. + +I have summarized all of them in this list of top features of Linux Mint 21. + +### Top Features of Linux Mint 21 “Vanessa” + +#### 1. Ubuntu 22.04 and associated updates + +Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. + +Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. + +#### 2. Major changes in the Timeshift backup tool + +A few months back, the Mint team [announced][5] that they are taking over the development of the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? + +Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. + +![Timeshift creating snapshot][7] + +With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. + +#### 3. WebP Support + +WebP image is a reasonably new image format created by Google for the web. It beings better compression and reduced size while maintaining good quality than traditional JPEG or PNG images. + +WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. + +That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always think about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu, etc. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: + +* ePub +* MP3 with Album Arts +* RAW Images +* AppImage + +#### 4. Process Monitor + +A small but handy tool called process monitor will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. In those situations, your system may become slow, and this nifty icon can show you why. + +#### 5. Improved printing support + +Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. + +In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. + +All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. + +It’s good to see that the mint team contributed to this critical functionality. + +#### 6. Window Animation updates + +There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, there were separate sections which gave more granular control of the animations. + +Here’s a side-by-side view. + +![][12] + +![][13] + +Secondly, the mapping windows and desktop effects options are removed. + +Third, a new control arrives to change the overall animation speed from slower to faster. + +Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. + +I believe this is a well-designed dialog and advanced options for better clarity. + +#### 7. Mutter rebase + +Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). + +Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. + +Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. + +#### 8. Window manager and GTK Themes + +With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. + +Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. + +Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. + +On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. + +#### 9. Package Management updates + +Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. + +When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. + +If found, you get an error message that stops you from going further. + +On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. + +#### 10. Disable the Systemd OOMD (out-of-memory daemon) service + +The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. + +In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. + +With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. + +![Systemd OOMD service is not enabled][20] + +#### 11. Other Changes + +Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. + +* The default document reader app Xreader is now capable of minor annotation. This is a handy feature. +* The WebApp manager now brings custom browser parameters. +* Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. +* Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. + +![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] + +* The bulk renamer app Thingy gets some UI improvements. +* The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). +* The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. +* Finally, new wallpapers for your new desktop arrive in this release. + +![New Wallpapers in Linux Mint 21][23] + +### Things that are NOT changing + +From a very high level, you might feel that most of the Linux Mint 21 remains the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. + +### Wrapping Up + +Overall, a good set of features is beneficial for end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. + +The BETA testing is in progress, and there are a [few bugs reported][24]. The final release is due soon, within a few weeks from now. + +You can download/update to Linux Mint 21 when released. Also, stay tuned for our detailed distro review of Linux Mint 21 after the official release. + +What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-mint-21-features/ + +作者:[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/07/Linux-Mint-21-Cinnamon-Desktop.jpg +[2]: https://www.debugpoint.com/linux-mint/ +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/linux-kernel-5-15/ +[5]: https://blog.linuxmint.com/?p=4323 +[6]: https://teejeetech.com/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg +[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ +[9]: https://github.com/linuxmint/xapp-thumbnailers +[10]: https://datatracker.ietf.org/doc/html/rfc8011 +[11]: https://www.debugpoint.com/tag/linux-distro-review/ +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg +[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 +[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ +[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ +[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 +[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html +[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ +[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg +[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ +[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg +[24]: https://github.com/linuxmint/mint21-beta/issues From ee1933642abaf9493ba4aa60341cdf7c8736af3d Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 20 Jul 2022 02:37:22 +0800 Subject: [PATCH 0448/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0611 How to use the FreeDOS text editor.md | 96 ------------------- ...0611 How to use the FreeDOS text editor.md | 95 ++++++++++++++++++ 2 files changed, 95 insertions(+), 96 deletions(-) delete mode 100644 sources/tech/20210611 How to use the FreeDOS text editor.md create mode 100644 translated/tech/20210611 How to use the FreeDOS text editor.md diff --git a/sources/tech/20210611 How to use the FreeDOS text editor.md b/sources/tech/20210611 How to use the FreeDOS text editor.md deleted file mode 100644 index 4afe36aa36..0000000000 --- a/sources/tech/20210611 How to use the FreeDOS text editor.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: (How to use the FreeDOS text editor) -[#]: via: (https://opensource.com/article/21/6/freedos-text-editor) -[#]: author: (Jim Hall https://opensource.com/users/jim-hall) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -How to use the FreeDOS text editor -====== -FreeDOS provides a user-friendly text editor called FreeDOS Edit. -![Person using a laptop][1] - -Editing files is a staple on any operating system. Whether you want to make a note about something, write a letter to a friend, or update a system configuration file—you need an editor. And FreeDOS provides a user-friendly text editor called (perhaps unimaginatively) "FreeDOS Edit." - -### Editing files - -The simplest invocation of FreeDOS Edit is just `EDIT`. This brings up an empty editor window. The patterned background suggests an empty "desktop"—a reminder that you aren't editing any files. - -![FreeDOS Edit][2] - -FreeDOS Edit without any files loaded -Jim Hall, CC-BY SA 4.0 - -Like most DOS applications, you can access the menus in Edit by tapping the Alt key once on your keyboard. This activates the menu. After hitting Alt, Edit will switch to "menu" access and will highlight the "File" menu. If you want to access a different menu on the menu bar, use the left and right arrow keys. Press the down arrow or hit the Enter key to go "into" the menu. - -![FreeDOS Edit menu][3] - -Highlighting the menu -Jim Hall, CC-BY SA 4.0 - -Do you notice that the first letter for each menu title is a different color? This highlight indicates a shortcut. For example, the "F" in the "File" menu is highlighted in red. So you could instead press Alt+F (Alt and F at the same time) and Edit will bring up the "File" menu. - -![File menu][4] - -The File menu -Jim Hall, CC-BY SA 4.0 - -You can use the "File" menu to either start a new (empty) file, or open an existing file. Let's start a new file by using the arrow keys to move down to "New" and pressing the Enter key. You can also start a new file by pressing Ctrl+N (Ctrl and N at the same time): - -![new file][5] - -Editing a new file -Jim Hall, CC-BY SA 4.0 - -Editing files should be pretty straightforward after that. Most of the familiar keyboard shortcuts exist in FreeDOS Edit: Ctrl+C to copy text, Ctrl+X to cut text, and Ctrl+V to paste copied or cut text into a new location. If you need to find specific text in a long document, press Ctrl+F. To save your work, use Ctrl+S to commit changes back to the disk. - -### Programming in Edit - -If you're a programmer, you may find the extended ASCII table a useful addition. DOS systems supported an "extended" ASCII character set commonly referred to as "code page 437." The standard characters between 0 and 127 include the letters A through Z (uppercase and lowercase), numbers, and special symbols like punctuation. However, the DOS extended characters from code 128 to code 255 included foreign language characters and "line drawing" elements. DOS programmers often made use of these extended ASCII characters, so FreeDOS Edit makes it easy to view a table of all the ASCII codes and their associated characters. - -To view the ASCII table, use the "Utilities" menu and select the "ASCII Table" entry. This brings up a window containing a table. - -![utilities menu - ascii table][6] - -Find the ASCII Table in the Utilities menu -Jim Hall, CC-BY SA 4.0 - -Along the left, the table shows the hexadecimal values "00" through "F0," and the top shows the single values "0" through "F." These provide a quick reference to the hexadecimal code for each character. For example, the item in the first row (00) and the first column (0) has the hexadecimal value 00 + 0, or 0x00 (the "NULL" value). And the character in the fifth row (40) and the second column (1) has the value 40 + 1, or 0x41 (the letter "A"). - -![utilities menu - ascii table][7] - -The ASCII Table provides a handy reference for extended characters -Jim Hall, CC-BY SA 4.0 - -As you move the cursor through the table to highlight different characters, you'll see the values at the bottom of the table change to show the character's code in decimal, hexadecimal, and octal. For example, moving the cursor to highlight the "line intersection" character at row C0 and column 5 shows this extended character code as 197 (dec), 0xc5 (hex), and 305 (oct). In a program, you might reference this extended character by typing the hex value `0xc5`, or the octal "escape code" `\305`. - -![ASCII 0xc5][8] - -The "line intersection" character is 197 (dec), 0xc5 (hex), and 305 (oct) -Jim Hall, CC-BY SA 4.0 - -Feel free to explore the menus in Edit to discover other neat features. For example, the "Options" menu allows you to change the behavior and appearance of Edit. If you prefer to use a more dense display, you can use the "Display" menu (under "Options") to set Edit to 25, 43, or 50 lines. You can also force Edit to display in monochrome (white on black) or reversed mode (black on white). - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/freedos-text-editor - -作者:[Jim Hall][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD (Person using a laptop) -[2]: https://opensource.com/sites/default/files/uploads/edit.png (FreeDOS Edit without any files loaded) -[3]: https://opensource.com/sites/default/files/uploads/edit-menu.png (Highlighting the menu) -[4]: https://opensource.com/sites/default/files/uploads/edit-file.png (The File menu) -[5]: https://opensource.com/sites/default/files/uploads/edit-new.png (Editing a new file) -[6]: https://opensource.com/sites/default/files/uploads/utilities-ascii.png (Find the ASCII Table in the Utilities menu) -[7]: https://opensource.com/sites/default/files/uploads/ascii-table-0x00.png (The ASCII Table provides a handy reference for extended characters) -[8]: https://opensource.com/sites/default/files/uploads/ascii-0xc5.png (The "line intersection" character is 197 (dec), 0xc5 (hex), and 305 (oct)) diff --git a/translated/tech/20210611 How to use the FreeDOS text editor.md b/translated/tech/20210611 How to use the FreeDOS text editor.md new file mode 100644 index 0000000000..8d937b7048 --- /dev/null +++ b/translated/tech/20210611 How to use the FreeDOS text editor.md @@ -0,0 +1,95 @@ +[#]: subject: (How to use the FreeDOS text editor) +[#]: via: (https://opensource.com/article/21/6/freedos-text-editor) +[#]: author: (Jim Hall https://opensource.com/users/jim-hall) +[#]: collector: (lujun9972) +[#]: translator: (yjacks) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +如何使用FreeDOS Edit +====== +FreeDOS提供了一个叫做 FreeDOS Edit 的用户友好的文本编辑器 +![Person using a laptop][1] + +在任何操作系统中,编辑文件都是一项常有的任务。当你想去做一个某事的笔记、写封信给朋友或升级一个系统配置——你需要一个文本编辑器。FreeFOS提供了一个用户友好的文本编辑器(也许你难以想象)叫做”FreeDOS Edit。“ +### 编辑文件 + +最简单的启用 FreeDOS Edit 的方式就只是`EDIT`。它提供一个空的编辑器窗口。图案背景显示为一个空的“桌面”——提醒您没有编辑任何文件。 + +![FreeDOS Edit][2] + +FreeDOS Edit未加载任何文件 +Jim Hall, CC-BY SA 4.0 + +就像多数 DOS 程式,你可以轻击你键盘上的 Alt 键一次来启动菜单。这将激活这个菜单。在你轻击 Alt 后,编辑器将转为“menu”并将高亮“File”菜单。如果你想要启用一个别的菜单从菜单栏上,使用左与右方向键。按下下方向键或击打回车键去“进入”菜单。 + +![FreeDOS Edit menu][3] + +高亮菜单 +Jim Hall, CC-BY SA 4.0 + +你注意到所有菜单标题的第一个字母是不同的颜色么?高亮字母显示了一条捷径。例如,"F"在"File"菜单高亮为红色。所以你可以通过按下 Alt+F (Alt 和 F 在同一个瞬间),编辑器会显示“File”菜单。 + +![File menu][4] + +文件菜单 +Jim Hall, CC-BY SA 4.0 + +你可以使用“File”菜单来原则开始一个新(空)文件,或打开一个存在的文件。让我们开始一个新文件使用方向键移动到“New“然后按下回车键。你也可以用 Ctrl+N (Ctrl 和 N 在相同的时间)启动一个新文件。 + +![new file][5] + +编辑一个新的文件 +Jim Hall, CC-BY SA 4.0 + +在那之后编辑文件应该非常简单。大多快捷键都存在于 FreeDOS 中。编辑器:Ctrl+C以复制文本,Ctrl+X 以剪贴文本,和 Ctrl+V 以粘贴复制的或剪贴的文本到新的地方。如果你需要寻找一个特殊文本在一个长文档中,按 Ctrl+F。保存你的工作成果,使用 Ctrl+S 以推送变更回到硬碟。 + +### 编辑器中的编程 + +如果你是个程序员,你也许需要寻找 ASCII 拓展表——一个有用的拓展。DOS 系统支援一个”拓展的“ASCII字符集通常援引自“code page 437.”。标准的字符包含字母 A 到 Z(大写与小写)、数字和特殊字符像是标点符号。但是,DOS 拓展字符自编码 128 到编码 255 包含拉丁语言字符和“行绘画”元素。DOS 程序员有时需要使用这些拓展 ASCII 字符,所以 FreeDOS Edit 将它变得简单去检视一个表表示所有 ASCII 码和它们的相关字符。 + +查看 ASCII 表,请使用“工具”菜单,选择“ASCII表”选项,这将显示一个窗口包含一个表。 + +![utilities menu - ascii table][6] + +找寻 ASCII 表在工具菜单 +Jim Hall, CC-BY SA 4.0 + +沿着左边,这张表显示十六进制值"00"到"F0",顶部展示值“0”到“F”。这提供一个快速的十六进制码参考予每个字符。例如,在第一行(00)和第一列(0)的东西为值 00+0,或者说 0x00(“NULL”值)。字符在第五行(40)和第二列(1)的值为40+1,或者说0x41(字母“A”)。 + +![utilities menu - ascii table][7] + +ASCII 表提供一个易用的参考予扩展字符 +Jim Hall, CC-BY SA 4.0 + +当你移动光标通过表去高亮不同的字符,你见到值在表的中间变化来展示字符的十进制、十六进制和八进制编码。例如,移动光标以高亮“线路交点”字符在C0行和列5展示拓展的字符值为 197(十进制)、0xc5(十六进制)和 305(八进制)。再一个程序中,你也许参考这些拓展字符以输入十六进值`0xc5`,或者十进制“转译码”`\305`。 + +![ASCII 0xc5][8] + +“线路交点”字符是 197(十进制)、0xc5(十六进制)和 305(八进制) +Jim Hall, CC-BY SA 4.0 + +请随意浏览Edit中的菜单,以发现其他简洁的功能。例如,“选项”菜单允许您更改编辑的行为和外观。如果您喜欢使用更密集的显示,可以使用“显示”菜单(在“选项”下)将“编辑”设置为 25、43或 50 行。您还可以强制编辑以单色(黑底白字)或反转模式(白底白字)显示。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/freedos-text-editor + +作者:[Jim Hall][a] +选题:[lujun9972][b] +译者:[yjacks](https://github.com/yjacks) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD (Person using a laptop) +[2]: https://opensource.com/sites/default/files/uploads/edit.png (FreeDOS Edit without any files loaded) +[3]: https://opensource.com/sites/default/files/uploads/edit-menu.png (Highlighting the menu) +[4]: https://opensource.com/sites/default/files/uploads/edit-file.png (The File menu) +[5]: https://opensource.com/sites/default/files/uploads/edit-new.png (Editing a new file) +[6]: https://opensource.com/sites/default/files/uploads/utilities-ascii.png (Find the ASCII Table in the Utilities menu) +[7]: https://opensource.com/sites/default/files/uploads/ascii-table-0x00.png (The ASCII Table provides a handy reference for extended characters) +[8]: https://opensource.com/sites/default/files/uploads/ascii-0xc5.png (The "line intersection" character is 197 (dec), 0xc5 (hex), and 305 (oct)) From 57794e917cf3e579e615373283f7ac86a3e714ab Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 20 Jul 2022 08:31:23 +0800 Subject: [PATCH 0449/3123] translated --- ...ython- not found- Error in Ubuntu Linux.md | 134 ------------------ ...ython- not found- Error in Ubuntu Linux.md | 134 ++++++++++++++++++ 2 files changed, 134 insertions(+), 134 deletions(-) delete mode 100644 sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md create mode 100644 translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md diff --git a/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md b/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md deleted file mode 100644 index 6c2aa7a48d..0000000000 --- a/sources/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md +++ /dev/null @@ -1,134 +0,0 @@ -[#]: subject: "Fixing “Command ‘python’ not found” Error in Ubuntu Linux" -[#]: via: "https://itsfoss.com/python-not-found-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fixing “Command ‘python’ not found” Error in Ubuntu Linux -====== - -How do you run a Python program in the Linux terminal? Like this, right? - -``` -python program.py -``` - -However, if you try to use the `python` command in Ubuntu (and some other distributions), it will throw an error. - -Command ‘python’ not found, did you mean:command ‘python3’ from deb python3command ‘python’ from deb python-is-python3 - -If you pay attention to the error message, it clears a lot of things. **The python command is actually python3 here.** - -If you don’t understand it, no worries. I’ll explain things in detail here. - -### Why there is no python command found on Ubuntu? - -It’s because the Python language is not installed as python but python3 or python2 (in some older Ubuntu versions). - -At some point in time in the distant past, Python was actually available as `python` package/executable. When Python released version 2, Ubuntu and other distros had to provide support for both Python version 1.x and 2.x. - -So, they named the newer Python version `python2` to distinguish between the two. Other applications or libraries also specified python or python2 in their code. - -Eventually, Python version 1 was discontinued completely but the package continued to be named python2. - -Similarly, when Python version 3 was released, distributions started providing both `python2` and `python3` packages. - -Python 2 is no longer supported and Python 3.x is what you get on Ubuntu. The package is still named python3. - -**To summarize, you have Python installed on Ubuntu already. It is available as python3 package.** - -So, what are your options when you see Python [command not found error on Ubuntu][1]? Let me go over them. - -### Make sure you have Python installed on your system - -It should already be installed but no harm in double checking. - -Ubuntu 18.04 had Python 2 as well but 20.04 and higher versions have Python 3 only. Still, which version(s) you have with: - -``` -type python python2 python3 -``` - -As you can see in the screenshot below, I have Python version 3 installed on my system. - -![Checking Python version in Ubuntu][2] - -If you don’t have any Python version installed, you may install Python version 3 with the following command: - -``` -sudo apt install python3 -``` - -### Use python3 instead of python - -If it’s not too much of a trouble for you, use python3 command instead of python wherever required. - -Want to check the installed python version? Use it like this: - -``` -python3 --version -``` - -And you get the version details in the output: - -``` -[email protected]:~$ python3 --version -Python 3.10.4 -``` - -If you have to run a Python program, execute it like this: - -``` -python3 program.py -``` - -This should work for you in most cases. However, if you are using some (old) Python application that expects to run the python executable in its code, you’ll have issues. Don’t worry, you can get around it as well. - -### Link python3 as python - -You can create a permanent alias in your .bashrc file like this: - -``` -alias python='python3' -``` - -This way, you can run the `python` command and your system runs `python3`. - -It will work in most cases unless some program expects to run /usr/bin/python. Now, you may create symlink between /usr/bin/python and /usr/bin/python3 but there exists a simpler option for Ubuntu users. - -For Ubuntu 20.04 and higher versions, you have a package that does all link creation automatically if you install the python-is-python3 package. This is what the original error message has also suggested. - -``` -sudo apt install python-is-python3 -``` - -![install python is python3 ubuntu][3] - -You can see that symlinks have been created and you can use the python command (which actually runs python3) without any issues. - -![checking python ubuntu][4] - -I hope this clears the air on the Python package in Ubuntu. Let me know if you have any questions or suggestions. - -#### Read More Articles - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/python-not-found-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/abhishek/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/bash-command-not-found/ -[2]: https://itsfoss.com/wp-content/uploads/2022/07/check-python-version-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/07/install-python-is-python3-ubuntu.png -[4]: https://itsfoss.com/wp-content/uploads/2022/07/checking-python-ubuntu.png diff --git a/translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md b/translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md new file mode 100644 index 0000000000..376f049a57 --- /dev/null +++ b/translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md @@ -0,0 +1,134 @@ +[#]: subject: "Fixing “Command ‘python’ not found” Error in Ubuntu Linux" +[#]: via: "https://itsfoss.com/python-not-found-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +修复 Ubuntu Linux 中 “Command ‘python’ not found” 的错误 +====== + +如何在 Linux 终端中运行一个 Python 程序?像这样,对吗? + +``` +python program.py +``` + +然而,如果你试图在 Ubuntu(和其他一些发行版)中使用 `python` 命令,它会抛出一个错误。 + +command ‘python’ not found, did you mean: +command ‘python3’ from deb python3 +command ‘python’ from deb python-is-python3 + +如果你注意这个错误信息,它可以清除很多东西。**这里的 python 命令实际上是 python3**。 + +如果你不理解,不用担心。我将在这里详细解释。 + +### 为什么在 Ubuntu 上没有发现 python 命令? + +这是因为 Python 语言不是以 python 的形式安装的,而是以 python3 或 python2 的形式安装的(在一些老的 Ubuntu 版本中)。 + +在遥远的过去的某个时间点,Python 实际上是作为 `python` 包/可执行文件提供的。当 Python 发布第二版时,Ubuntu 和其他发行版不得不同时支持 Python 1.x 和 2.x 版本。 + +因此,他们将较新的 Python 版本命名为 `python2`,以区分这两个版本。其他应用或库也在其代码中指定 python 或 python2。 + +最终,Python 1 版本被完全停用,但软件包继续被命名为 python2。 + +类似地,当 Python 3 版本发布时,发行版开始同时提供 `python2` 和 `python3` 包。 + +Python 2 不再被支持,Python 3.x 是你在 Ubuntu 上安装的版本。该软件包仍被命名为 python3。 + +**总结一下,你已经在 Ubuntu 上安装了 Python。它可以作为 python3 软件包使用。** + +那么,当你[在 Ubuntu 上看到 Python command not found 的错误][1]时,你有什么选择?让我来介绍一下。 + +### 确保你的系统中已经安装了 Python + +它应该已经安装了,但仔细检查一下也无妨。 + +Ubuntu 18.04 也有 Python 2,但 20.04 及更高版本只有 Python 3。不过,你有哪个版本: + +``` +type python python2 python3 +``` + +正如你在下面的截图中看到的,我的系统上安装了 Python 3 版本。 + +![Checking Python version in Ubuntu][2] + +如果你没有安装任何 Python 版本,你可以用以下命令安装 Python 3 版本。 + +``` +sudo apt install python3 +``` + +### 使用 python3 而不是 python + +如果对你来说不是太麻烦,在需要的地方使用 python3 命令而不是 python。 + +想检查已安装的 Python 版本吗?请这样输入: + +``` +python3 --version +``` + +然后你会在输出中得到版本的详细信息: + +``` +[email protected]:~$ python3 --version +Python 3.10.4 +``` + +如果你必须运行一个 Python 程序,请像这样执行它: + +``` +python3 program.py +``` + +这在大多数情况下应该对你有用。但是,如果你使用的是一些(旧的)Python 应用,期望在其代码中运行 Python 可执行文件,你就会有问题。别担心,你也可以绕过它。 + +### 将 python3 链接为 python + +你可以在你的 .bashrc 文件中创建一个永久别名,像这样: + +``` +alias python='python3' +``` + +这样,你可以运行 `python` 命令,而你的系统运行 `python3`。 + +这在大多数情况下都会起作用,除非某些程序期望运行 /usr/bin/python。现在,你可以在 /usr/bin/python 和 /usr/bin/python3 之间建立符号链接,但对于 Ubuntu 用户来说,存在一个更简单的选择。 + +对于 Ubuntu 20.04 和更高版本,如果你安装了 python-is-python3 软件包,你有一个软件包可以自动完成所有链接创建。这也是原始错误信息所提示的。 + +``` +sudo apt install python-is-python3 +``` + +![install python is python3 ubuntu][3] + +你可以看到符号链接已经被创建,你可以使用 python 命令(实际上是运行 python3),没有任何问题。 + +![checking python ubuntu][4] + +我希望这能澄清 Ubuntu 中 Python 软件包的问题。如果你有任何问题或建议,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/python-not-found-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/bash-command-not-found/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/check-python-version-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/07/install-python-is-python3-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/07/checking-python-ubuntu.png From 80603c67fe96ae1bb25ff23e4c2e999596968027 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 20 Jul 2022 08:33:57 +0800 Subject: [PATCH 0450/3123] translating --- ...stall Discord on Manjaro and Other Arch Linux Derivatives.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md b/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md index 444ea26d90..e24c92fc3b 100644 --- a/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md +++ b/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-discord-arch-manjaro/" [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b74612a41e438b830dadc6db36f471ac150995d6 Mon Sep 17 00:00:00 2001 From: duoluoxiaosheng <554765662@qq.com> Date: Wed, 20 Jul 2022 14:55:43 +0800 Subject: [PATCH 0451/3123] Translated 20220716 Listen to music on Linux with Rhythmbox.md (#6) * Update 20220716 Listen to music on Linux with Rhythmbox.md * Update 20220716 Listen to music on Linux with Rhythmbox.md * Create 20220716 Listen to music on Linux with Rhythmbox.md * Update 20220716 Listen to music on Linux with Rhythmbox.md * Rename sources/tech/20220716 Listen to music on Linux with Rhythmbox.md to translated/tech/20220716 Listen to music on Linux with Rhythmbox.md --- ...Listen to music on Linux with Rhythmbox.md | 65 ------------------- ...Listen to music on Linux with Rhythmbox.md | 65 +++++++++++++++++++ 2 files changed, 65 insertions(+), 65 deletions(-) delete mode 100644 sources/tech/20220716 Listen to music on Linux with Rhythmbox.md create mode 100644 translated/tech/20220716 Listen to music on Linux with Rhythmbox.md diff --git a/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md b/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md deleted file mode 100644 index 2366af1e2c..0000000000 --- a/sources/tech/20220716 Listen to music on Linux with Rhythmbox.md +++ /dev/null @@ -1,65 +0,0 @@ -[#]: subject: "Listen to music on Linux with Rhythmbox" -[#]: via: "https://opensource.com/article/22/7/listen-music-rhythmbox-linux" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "duoluoxiaosheng" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Listen to music on Linux with Rhythmbox -====== -Here's how I like to listen to streaming music and MP3 playlists with Rhythmbox on GNOME with Linux. - -![Woman programming][1] - -Image by: WOCinTech Chat. Modified by Opensource.com. CC BY-SA 4.0 - -It's hard for me to work in total silence. I need some kind of background noise, preferably some familiar music. My music-listening needs are pretty simple: I just need a music player that plays my library of MP3 music and streams from a few websites I like to listen to. - -I've tried a variety of music players on Linux, but I keep coming back to Rhythmbox. Rhythmbox is a music-playing application for GNOME. If your distribution uses GNOME, it probably also includes Rhythmbox. It's simple and plays my local music library as well as streams from internet radio websites. I like to listen to both streaming music and my own music library with Rhythmbox on Linux. - -### Listen to streaming music on Linux - -Rhythmbox supports listening to music from several streaming services. If you have a Last.fm or Libre.fm account, you can click the tab on the left to log in. Or, if you want to listen to streaming radio stations, click the Radio tab on the left to stream from one of the pre-configured internet radio websites.I usually like to listen to trance music while I'm writing code, and HBR1 Tranceponder is one of my favorite Internet radio stations: - -![Streaming HBR1 Traceponder][2] - -### Listen to my music library on Linux - -I've collected a large MP3 music library over the years. Since the MP3 patents expired in the US several years ago, it is an open music format that plays well with Linux. - -I keep my 20-gigabyte MP3 music library outside my home directory, in `/usr/local/music`. To import music into Rhythmbox, click the **Import** button, select the `/usr/local/music` directory, or wherever you've saved your music library, and let Rhythmbox identify the MP3 music collection. When it's done, click the **Import listed tracks** button to complete the import process. - -![Use the Import button to add music to Rhythmbox][3] - -![Rhythmbox identifies new music files][4] - -Rhythmbox plays my music collection and organizes songs by genre, artist, and album so I can quickly find the music I want to listen to. - -![Listening to a music library in Rhythmbox][5] - -### The beat goes on - -I like Rhythmbox as my music player on Linux because it's simple and stays out of my way. And listening to music helps me tune out everyday noise, making my day go by just a bit faster. - -Image by: Streaming HBR1 Tranceponder in Rhythmbox (image: Jim Hall, license: CC BY SA) - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/listen-music-rhythmbox-linux - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png -[2]: https://opensource.com/sites/default/files/2022-07/rhythmbox-hbr1.png -[3]: https://opensource.com/sites/default/files/2022-07/rhythmbox-import1_0.png -[4]: https://opensource.com/sites/default/files/2022-07/rhythmbox-import2.png -[5]: https://opensource.com/sites/default/files/2022-07/rhythmbox-dido-lifeforrent.png diff --git a/translated/tech/20220716 Listen to music on Linux with Rhythmbox.md b/translated/tech/20220716 Listen to music on Linux with Rhythmbox.md new file mode 100644 index 0000000000..145e63d2a2 --- /dev/null +++ b/translated/tech/20220716 Listen to music on Linux with Rhythmbox.md @@ -0,0 +1,65 @@ +[#]: subject: "Listen to music on Linux with Rhythmbox" +[#]: via: "https://opensource.com/article/22/7/listen-music-rhythmbox-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "duoluoxiaosheng" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 上使用 Rhythbox 听音乐 +====== +下面我将介绍我是如何在 Linux 的 GNOME 桌面上使用 Rhythmbox 听在线音乐和 MP3 列表的。 + +![Woman programming][1] + +Image by: WOCinTech Chat. Modified by Opensource.com. CC BY-SA 4.0 + +对我来说,在完全安静的环境下工作是很困难的。我需要某种背景音,最好是一些熟悉的音乐。我在音乐上的需求很简单:我只需要一个音乐播放器,可以播放我的 MP3 音乐库和少数几个我喜欢的网站的在线音乐。 + +我在 Linux 上尝试了多个音乐播放器,最终我还是选择了 Rhythmbox。 Rhythmbox 是一个 GNOME 桌面音乐播放器。如果你的 Linux 发行版使用的是 GNOME 桌面,很可能它已经安装了 Rhythmbox。它很简单,用来播放我本地的音乐库和广播网站的在线音乐。我很乐意在 Linux 上使用 Rhythmbox 收听在线音乐和我自己的音乐库。 + +### 在 Linux 上收听在线音乐 + +Rhythmbox 支持多个在线音乐服务商。如果你拥有一个 Last.fm 或者 Libre.fm 的帐号,你可以点击左侧的标签登录。或者,你想收听在线广播,点击左侧的广播标签,在预设的广播网站中选择一个。在我写代码的时候我通常喜欢听迷幻舞曲,HBR1 Tranceponder 是我最喜欢的一个在线广播网站。 + +![Streaming HBR1 Traceponder][2] + +### 在 Linux 上播放我的音乐库 + +在过去的几年中,我收集了大量的 MP3 音乐。由于几年前 MP3 的专利在美国已经到期,它在 Linux 是一种很好用的开放的音乐格式。 + +我把我 20GB 的 MP3 音乐保存在我的主目录之外,在 `/usr/local/music` 。要把音乐导入 Rhythmbox,点击 **导入** 按钮,选择 `usr/local/music` 目录,或者任何你保存音乐的目录,让 Rhythmbox 去识别 MP3 音乐。结束以后点击 **导入列出的曲目** 按钮导入就完成了。 + +![Use the Import button to add music to Rhythmbox][3] + +![Rhythmbox identifies new music files][4] + +Rhythmbox 播放我的音乐,并通过类型,艺术家和专辑组织歌曲,所以我可以很容易找到我想听的音乐。 + +![Listening to a music library in Rhythmbox][5] + +### 旋律永存 + +我愿意在 Linux 上使用 Rhythmbox 作为我的音乐播放器,它是如此简洁,不会影响到我。而且听音乐可以帮我和谐掉日常的噪音,让我每一天都可以过的快一点。 + +Image by: Streaming HBR1 Tranceponder in Rhythmbox (image: Jim Hall, license: CC BY SA) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/listen-music-rhythmbox-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png +[2]: https://opensource.com/sites/default/files/2022-07/rhythmbox-hbr1.png +[3]: https://opensource.com/sites/default/files/2022-07/rhythmbox-import1_0.png +[4]: https://opensource.com/sites/default/files/2022-07/rhythmbox-import2.png +[5]: https://opensource.com/sites/default/files/2022-07/rhythmbox-dido-lifeforrent.png From 89af1f2e5848c0360b37b031dbe91bb6bab36d75 Mon Sep 17 00:00:00 2001 From: yjacks Date: Wed, 20 Jul 2022 16:06:54 +0800 Subject: [PATCH 0452/3123] Update 20210602 Establish an SSH connection between Windows and Linux.md --- ...2 Establish an SSH connection between Windows and Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md b/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md index 2d76592dc7..75c4cbce2d 100644 --- a/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md +++ b/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/ssh-windows) [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (yjacks) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -203,7 +203,7 @@ via: https://opensource.com/article/21/6/ssh-windows 作者:[Stephan Avenwedde][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[yjacks](https://github.com/yjacks) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 26ebf0a59d82b86c6d19fd95dcc742c80e39b5f8 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 20 Jul 2022 16:21:05 +0800 Subject: [PATCH 0453/3123] Revert "Update 20210602 Establish an SSH connection between Windows and Linux.md" This reverts commit 89af1f2e5848c0360b37b031dbe91bb6bab36d75. --- ...2 Establish an SSH connection between Windows and Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md b/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md index 75c4cbce2d..2d76592dc7 100644 --- a/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md +++ b/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/ssh-windows) [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) -[#]: translator: (yjacks) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -203,7 +203,7 @@ via: https://opensource.com/article/21/6/ssh-windows 作者:[Stephan Avenwedde][a] 选题:[lujun9972][b] -译者:[yjacks](https://github.com/yjacks) +译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ff02db027abaf58ad81e35c313789936543cc559 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 20 Jul 2022 16:42:22 +0800 Subject: [PATCH 0454/3123] RP @geekpi https://linux.cn/article-14846-1.html --- ...Helper in Arch Linux [Beginner-s Guide].md | 58 ++++++++++--------- 1 file changed, 31 insertions(+), 27 deletions(-) rename {translated/tech => published}/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md (66%) diff --git a/translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md b/published/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md similarity index 66% rename from translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md rename to published/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md index 218c0f9883..71da71927e 100644 --- a/translated/tech/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md +++ b/published/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md @@ -3,28 +3,31 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14846-1.html" -如何在 Arch Linux 中安装 yay AUR 助手(初学者指南) +初级:如何在 Arch Linux 中安装 Yay AUR 助手 ====== -这个初学者指南解释了在 Arch Linux 中安装 Yay AUR 助手的步骤。 -yay 是 “Yet Another Yogurt” 的缩写。从技术上讲,它是用 [Go 编程语言][2]编写的 [pacman][1] 封装器和 AUR 助手。它是当今最流行的 [Arch 用户仓库 (AUR)][3]助手。使用 Yay,你可以利用庞大的 Arch 用户软件包库并轻松编译和安装任何软件。 +![](https://www.debugpoint.com/wp-content/uploads/2021/01/yay2021.jpg) + +> 这个初学者指南解释了在 Arch Linux 中安装 Yay AUR 助手的步骤。 + +Yay 是 “Yet Another Yogurt” 的缩写(LCTT 校注:Yogurt 是另外一个已经停止维护的 AUR 助手)。从技术上讲,它是用 [Go 编程语言][2] 编写的 [pacman][1] 封装器和 AUR 助手。它是当今最流行的 [Arch 用户仓库(AUR)][3] 助手。使用 Yay,你可以利用庞大的 Arch 用户软件包库并轻松编译和安装任何软件。 它可以自动执行许多包管理任务,例如搜索、动态解决依赖关系、编译和构建包,当然还有在 AUR 发布包。 让我们看看如何在 Arch Linux 或任何基于 Arch 的发行版(如 Manjaro)中安装 Yay。安装 Arch Linux 后,你可以通过 pacman 包管理器从三个主要的 Arch 官方仓库安装包。但是在全新的 Arch Linux 安装后,默认情况下不会安装 Yay。因此,你需要手动安装它以利用 AUR。 -本指南涵盖以下主题。 +本指南涵盖以下主题: -* 在 Arch Linux 中安装 yay -* 在 Manjaro 中安装 yay -* 如何在 Arch Linux 和 Manjaro 中使用 yay 安装包 -* 一些 yay 的提示 +* 在 Arch Linux 中安装 Yay +* 在 Manjaro 中安装 Yay +* 如何在 Arch Linux 和 Manjaro 中使用 Yay 安装包 +* 一些 Yay 的技巧 -### 在 Arch Linux 中安装 yay +### 在 Arch Linux 中安装 Yay #### 先决条件 @@ -40,22 +43,23 @@ sudo pacman -S git ![Install git][5] -#### 安装 yay +#### 安装 Yay -yay 包在 Arch 仓库中有两个版本,如下所示。 +`yay` 包在 Arch 仓库中有两个版本,如下所示。 -[yay][6] – 稳定版 -[yay-git][7]– 开发版 +- [yay][6] – 稳定版 +- [yay-git][7]– 开发版 -对于本指南,我使用了稳定版。现在,进入 “/opt” 目录并克隆 git 仓库。 +对于本指南,我使用了稳定版。现在,进入 `/opt` 目录并克隆 git 仓库。 ``` -cd /optsudo git clone https://aur.archlinux.org/yay.git +cd /opt +sudo git clone https://aur.archlinux.org/yay.git ``` ![clone the yay repo][8] -更改源目录的所有者。将 “debugpoint” 替换为你的用户名。 +更改源目录的所有者。将 `debugpoint` 替换为你的用户名。 ``` sudo chown -R debugpoint:users ./yay @@ -77,21 +81,21 @@ cd yay makepkg -si ``` -这样就完成了 Arch Linux 中 yay 的安装。 +这样就完成了 Arch Linux 中 Yay 的安装。 ![Install yay in Arch Linux][9] -### 在 Manjaro 中安装 yay +### 在 Manjaro 中安装 Yay -如果你使用 Manjaro Linux,yay 包可以在社区仓库中找到。你可以在 Manjaro 中使用以下命令轻松安装。 +如果你使用 Manjaro Linux,`yay` 包可以在社区仓库中找到。你可以在 Manjaro 中使用以下命令轻松安装。 ``` pacman -Syyupacman -S yay ``` -现在,让我们看看如何使用 Yay 安装任何软件包以及一些基本的 yay 用法。 +现在,让我们看看如何使用 Yay 安装任何软件包,以及一些基本的 `yay` 用法。 -### 如何使用 yay 安装包 +### 如何使用 Yay 安装包 首先在 AUR 网站上搜索安装任何应用以获取包名。例如,要安装 [featherpad][10] 文本编辑器,请运行以下命令。 @@ -103,7 +107,7 @@ yay -S featherpad ![Install a sample application (featherpad) using yay][11] -### 一些 yay 的技巧 +### 一些 Yay 的技巧 你还可以使用 yay 进行许多调整和系统操作。下面是一些示例。 @@ -133,7 +137,7 @@ yay -Rns featherpad yay -Ps ``` -我希望这个初学者指南能帮助你在 [Arch Linux][13] 中安装 yay,然后使用 yay 安装包,并执行不同的系统操作。 +我希望这个初学者指南能帮助你在 [Arch Linux][13] 中安装 Yay,然后使用 Yay 安装包,并执行不同的系统操作。 -------------------------------------------------------------------------------- @@ -142,7 +146,7 @@ via: https://www.debugpoint.com/install-yay-arch/ 作者:[Arindam][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/) 荣誉推出 From e29730625ece0ebd9c6420c81b7fbe4aa89f41f2 Mon Sep 17 00:00:00 2001 From: Maisie-x <109048712+Maisie-x@users.noreply.github.com> Date: Wed, 20 Jul 2022 17:24:55 +0800 Subject: [PATCH 0455/3123] =?UTF-8?q?Maisie=20x=20=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E8=AF=91=E6=96=87=20(#26518)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Rename sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md to translated/tech/Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md * Rename Update 20210107 A hands-on tutorial for using the GNU Project Debugger.md to 20210107 A hands-on tutorial for using the GNU Project Debugger.md --- ...rial for using the GNU Project Debugger.md | 548 ------------------ ...rial for using the GNU Project Debugger.md | 548 ++++++++++++++++++ 2 files changed, 548 insertions(+), 548 deletions(-) delete mode 100644 sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md create mode 100644 translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md diff --git a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md deleted file mode 100644 index 1966777133..0000000000 --- a/sources/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md +++ /dev/null @@ -1,548 +0,0 @@ -[#]: subject: "A hands-on tutorial for using the GNU Project Debugger" -[#]: via: "https://opensource.com/article/21/1/gnu-project-debugger" -[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" -[#]: collector: "lkxed" -[#]: translator: "Maisie-x" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A hands-on tutorial for using the GNU Project Debugger -====== -The GNU Project Debugger is a powerful tool for finding bugs in programs. - -![magnifying glass on computer screen, finding a bug in the code][1] - -Image by: Opensource.com - -If you're a programmer and you want to put a certain functionality in your software, you start by thinking of ways to implement it—such as writing a method, defining a class, or creating new data types. Then you write the implementation in a language that the compiler or interpreter can understand. But what if the compiler or interpreter does not understand the instructions as you had them in mind, even though you're sure you did everything right? What if the software works fine most of the time but causes bugs in certain circumstances? In these cases, you have to know how to use a debugger correctly to find the source of your troubles. - -The GNU Project Debugger ([GDB][2]) is a powerful tool for finding bugs in programs. It helps you uncover the reason for an error or crash by tracking what is going on inside the program during execution. - -This article is a hands-on tutorial on basic GDB usage. To follow along with the examples, open the command line and clone this repository: - -``` -git clone https://github.com/hANSIc99/core_dump_example.git -``` - -### Shortcuts - -Every command in GDB can be shortened. For example, `info break`, which shows the set breakpoints, can be shortened to `i break`. You might see those abbreviations elsewhere, but in this article, I will write out the entire command so that it is clear which function is used. - -### Command-line parameters - -You can attach GDB to every executable. Navigate to the repository you cloned, and compile it by running `make`. You should now have an executable called **coredump**. (See my article on [Creating and debugging Linux dump files][3] for more information.. - -To attach GDB to the executable, type: `gdb coredump`. - -Your output should look like this: - -![gdb coredump output][4] - - -It says no debugging symbols were found. - -Debugging information is part of the object file (the executable) and includes data types, function signatures, and the relationship between the source code and the opcode. At this point, you have two options: - -* Continue debugging the assembly (see "Debug without symbols" below) -* Compile with debug information using the information in the next section - -### Compile with debug information - -To include debug information in the binary file, you have to recompile it. Open the **Makefile** and remove the hashtag (`#` ) from line 9: - -``` -CFLAGS =-Wall -Werror -std=c++11 -g -``` - -The `g` option tells the compiler to include the debug information. Run `make clean` followed by `make` and invoke GDB again. You should get this output and can start debugging the code: - -![GDB output with symbols][5] - -The additional debugging information will increase the size of the executable. In this case, it increases the executable by 2.5 times (from 26,088 byte to 65,480 byte). - -Start the program with the `-c1` switch by typing `run -c1`. The program will start and crash when it reaches `State_4` : - -![gdb output crash on c1 switch][6] - -You can retrieve additional information about the program. The command `info source` provides information about the current file: - -![gdb info source output][7] - - -* 101 lines -* Language: C++ -* Compiler (version, tuning, architecture, debug flag, language standard) -* Debugging format: [DWARF 2][8] -* No preprocessor macro information available (when compiled with GCC, macros are available only when [compiled with the `-g3` flag][9]). - -The command `info shared` prints a list of dynamic libraries with their addresses in the virtual address space that was loaded on startup so that the program will execute: - -![gdb info shared output][10] - -If you want to learn about library handling in Linux, see my article [How to handle dynamic and static libraries in Linux][11]. - -### Debug the program - -You may have noticed that you can start the program inside GDB with the `run` command. The `run` command accepts command-line arguments like you would use to start the program from the console. The `-c1` switch will cause the program to crash on stage 4. To run the program from the beginning, you don't have to quit GDB; simply use the `run` command again. Without the `-c1` switch, the program executes an infinite loop. You would have to stop it with **Ctrl+C**. - -![gdb output stopped by sigint][12] - -You can also execute a program step by step. In C/C++, the entry point is the `main` function. Use the command `list main` to open the part of the source code that shows the `main` function: - -![gdb output list main][13] - -The `main` function is on line 33, so add a breakpoint there by typing `break 33` : - -![gdb output breakpoint added][14] - -Run the program by typing `run`. As expected, the program stops at the `main` function. Type `layout src` to show the source code in parallel: - -![gdb output break at main][15] - -You are now in GDB's text user interface (TUI) mode. Use the Up and Down arrow keys to scroll through the source code. - -GDB highlights the line to be executed. By typing `next` (n), you can execute the commands line by line. GBD executes the last command if you don't specify a new one. To step through the code, just hit the **Enter** key. - -From time to time, you will notice that TUI's output gets a bit corrupted: - -![gdb output corrupted][16] - -If this happens, press **Ctrl+L** to reset the screen. - -Use **Ctrl+X+A** to enter and leave TUI mode at will. You can find [other key bindings][17] in the manual. - -To quit GDB, simply type `quit`. - -### Watchpoints - -The heart of this example program consists of a state machine running in an infinite loop. The variable `n_state` is a simple enum that determines the current state: - -``` -while(true){ -        switch(n_state){ -        case State_1: -                std::cout << "State_1 reached" << std::flush; -                n_state = State_2; -                break; -        case State_2: -                std::cout << "State_2 reached" << std::flush; -                n_state = State_3; -                break; -        -        (.....) -        -        } -} -``` - -You want to stop the program when `n_state` is set to the value `State_5`. To do so, stop the program at the `main` function and set a watchpoint for `n_state` : - -``` -watch n_state == State_5 -``` - -Setting watchpoints with the variable name works only if the desired variable is available in the current context. - -When you continue the program's execution by typing `continue`, you should get output like: - -![gdb output stop on watchpoint_1][18] - -If you continue the execution, GDB will stop when the watchpoint expression evaluates to `false` : - -![gdb output stop on watchpoint_2][19] - -You can specify watchpoints for general value changes, specific values, and read or write access. - -### Altering breakpoints and watchpoints - -Type `info watchpoints` to print a list of previously set watchpoints: - -![gdb output info watchpoints][20] - -#### Delete breakpoints and watchpoints - -As you can see, watchpoints are numbers. To delete a specific watchpoint, type `delete` followed by the number of the watchpoint. For example, my watchpoint has the number 2; to remove this watchpoint, enter `delete 2`. - -*Caution:* If you use `delete` without specifying a number, *all* watchpoints and breakpoints will be deleted. - -The same applies to breakpoints. In the screenshot below, I added several breakpoints and printed a list of them by typing `info breakpoint` : - -![gdb output info breakpoints][21] - -To remove a single breakpoint, type `delete` followed by its number. Alternatively, you can remove a breakpoint by specifying its line number. For example, the command `clear 78` will remove breakpoint number 7, which is set on line 78. - -#### Disable or enable breakpoints and watchpoints - -Instead of removing a breakpoint or watchpoint, you can disable it by typing `disable` followed by its number. In the following, breakpoints 3 and 4 are disabled and are marked with a minus sign in the code window: - -![disabled breakpoints][22] - -It is also possible to modify a range of breakpoints or watchpoints by typing something like `disable 2 - 4`. If you want to reactivate the points, type `enable` followed by their numbers. - -### Conditional breakpoints - -First, remove all breakpoints and watchpoints by typing `delete`. You still want the program to stop at the `main` function, but instead of specifying a line number, add a breakpoint by naming the function directly. Type `break main` to add a breakpoint at the `main` function. - -Type `run` to start the execution from the beginning, and the program will stop at the `main` function. - -The `main` function includes the variable `n_state_3_count`, which is incremented when the state machine hits state 3. - -To add a conditional breakpoint based on the value of `n_state_3_count` type: - -``` -break 54 if n_state_3_count == 3 -``` - -![Set conditional breakpoint][23] - -Continue the execution. The program will execute the state machine three times before it stops at line 54. To check the value of `n_state_3_count`, type: - -``` -print n_state_3_count -``` - -![print variable][24] - -#### Make breakpoints conditional - -It is also possible to make an existing breakpoint conditional. Remove the recently added breakpoint with `clear 54`, and add a simple breakpoint by typing `break 54`. You can make this breakpoint conditional by typing: - -``` -condition 3 n_state_3_count == 9 -``` - -The `3` refers to the breakpoint number. - -![modify breakpoint][25] - -#### Set breakpoints in other source files - -If you have a program that consists of several source files, you can set breakpoints by specifying the file name before the line number, e.g., `break main.cpp:54`. - -#### Catchpoints - -In addition to breakpoints and watchpoints, you can also set catchpoints. Catchpoints apply to program events like performing syscalls, loading shared libraries, or raising exceptions. - -To catch the `write` syscall, which is used to write to STDOUT, enter: - -``` -catch syscall write -``` - -![catch syscall write output][26] - -Each time the program writes to the console output, GDB will interrupt execution. - -In the manual, you can find a whole chapter [covering break-, watch-, and catchpoints][27]. - -### Evaluate and manipulate symbols - -Printing the values of variables is done with the `print` command. The general syntax is `print `. The value of a variable can be modified by typing: - -``` -set variable . -``` - -In the screenshot below, I gave the variable `n_state_3_count` the value *123*. - -![catch syscall write output][28] - -The `/x` expression prints the value in hexadecimal; with the `&` operator, you can print the address within the virtual address space. - -If you are not sure of a certain symbol's data type, you can find it with `whatis` : - -![whatis output][29] - -If you want to list all variables that are available in the scope of the `main` function, type `info scope main` : - -![info scope main output][30] - -The `DW_OP_fbreg` values refer to the stack offset based on the current subroutine. - -Alternatively, if you are already inside a function and want to list all variables on the current stack frame, you can use `info locals` : - -![info locals output][31] - -Check the manual to learn more about [examining symbols][32]. - -### Attach to a running process - -The command `gdb attach ` allows you to attach to an already running process by specifying the process ID (PID). Luckily, the `coredump` program prints its current PID to the screen, so you don't have to manually find it with [ps][33] or [top][34]. - -Start an instance of the coredump application: - -``` -./coredump -``` - -![coredump application][35] - -The operating system gives the PID `2849`. Open a separate console window, move to the coredump application's source directory, and attach GDB: - -``` -gdb attach 2849 -``` - -![attach GDB to coredump][36] - -GDB immediately stops the execution when you attach it. Type `layout src` and `backtrace` to examine the call stack: - -![layout src and backtrace output][37] - -The output shows the process interrupted while executing the `std::this_thread::sleep_for<...>(...)` function that was called in line 92 of `main.cpp`. - -As soon as you quit GDB, the process will continue running. - -You can find more information about [attaching to a running process][38] in the GDB manual. - -#### Move through the stack - -Return to the program by using `up` two times to move up in the stack to `main.cpp` : - -![moving up the stack to main.cpp][39] - -Usually, the compiler will create a subroutine for each function or method. Each subroutine has its own stack frame, so moving upwards in the stackframe means moving upwards in the callstack. - -You can find out more about [stack evaluation][40] in the manual. - -#### Specify the source files - -When attaching to an already running process, GDB will look for the source files in the current working directory. Alternatively, you can specify the source directories manually with the [directory command][41]. - -### Evaluate dump files - -Read [Creating and debugging Linux dump files][42] for information about this topic. - -TL;DR: - -1. I assume you're working with a recent version of Fedora -2. Invoke coredump with the c1 switch: `coredump -c1` -3. Load the latest dumpfile with GDB: `coredumpctl debug` -4. Open TUI mode and enter `layout src` - -![Crash meme][44] - -![coredump output][45] - -The output of `backtrace` shows that the crash happened five stack frames away from `main.cpp`. Enter to jump directly to the faulty line of code in `main.cpp` : - -![up 5 output][46] - -A look at the source code shows that the program tried to free a pointer that was not returned by a memory management function. This results in undefined behavior and caused the `SIGABRT`. - -### Debug without symbols - -If there are no sources available, things get very hard. I had my first experience with this when trying to solve reverse-engineering challenges. It is also useful to have some knowledge of [assembly language][47]. - -Check out how it works with this example. - -Go to the source directory, open the **Makefile**, and edit line 9 like this: - -``` -CFLAGS =-Wall -Werror -std=c++11 #-g -``` - -To recompile the program, run `make clean`  followed by `make` and start GDB. The program no longer has any debugging symbols to lead the way through the source code. - -![no debugging symbols][48] - -The command `info file` reveals the memory areas and entry point of the binary: - -![info file output][49] - -The entry point corresponds with the beginning of the `.text` area, which contains the actual opcode. To add a breakpoint at the entry point, type `break *0x401110` then start execution by typing `run` : - -![breakpoint at the entry point][50] - -To set up a breakpoint at a certain address, specify it with the dereferencing operator `*`. - -#### Choose the disassembler flavor - -Before digging deeper into assembly, you can choose which [assembly flavor][51] to use. GDB's default is AT&T, but I prefer the Intel syntax. Change it with: - -``` -set disassembly-flavor intel -``` - -![changing assembly flavor][52] - -Now open the assembly and register the window by typing `layout asm` and `layout reg`. You should now see output like this: - -![layout asm and layout reg output][53] - -#### Save configuration files - -Although you have already entered many commands, you haven't actually started debugging. If you are heavily debugging an application or trying to solve a reverse-engineering challenge, it can be useful to save your GDB-specific settings in a file. - -The [config file gdbinit][54] in this project's GitHub repository contains the recently used commands: - -``` -set disassembly-flavor intel -set write on -break *0x401110 -run -c2 -layout asm -layout reg -``` - -The `set write on` command enables you to modify the binary during execution. - -Quit GDB and reopen it with the configuration file: `gdb -x gdbinit coredump`. - -#### Read instructions - -With the `c2` switch applied, the program will crash. The program stops at the entry function, so you have to write `continue` to proceed with execution: - -![continuing execution after crash][55] - -The `idiv` instruction performs an integer division with the dividend in the `RAX` register and the divisor specified as an argument. The quotient is loaded into the `RAX` register, and the remainder is loaded into `RDX`. - -From the register overview, you can see the `RAX` contains *5*, so you have to find out which value is stored on the stack at position `RBP-0x4`. - -#### Read memory - -To read raw memory content, you must specify a few more parameters than for reading symbols. When you scroll up a bit in the assembly output, you can see the division of the stack: - -![stack division output][56] - -You're most interested in the value of `rbp-0x4` because this is the position where the argument for `idiv` is stored. From the screenshot, you can see that the next variable is located at `rbp-0x8`, so the variable at `rbp-0x4` is 4 bytes wide. - -In GDB, you can use the `x` command to *examine* any memory content: - -> `x/` < optional parameter `n` `f` `u` > < memory address `addr` > - -Optional parameters: - -* n: Repeat count (default: 1) refers to the unit size -* f: Format specifier, like in [printf][57] -* u: Unit size - * b: `b`ytes -h: `h`alf `w`ords (2 bytes) -w: word (4 bytes)(default) - * g: `g`iant word (8 bytes) - -To print out the value at `rbp-0x4`, type `x/u $rbp-4` : - -![print value][58] - -If you keep this pattern in mind, it's straightforward to examine the memory. Check the [examining memory][59] section in the manual. - -#### Manipulate the assembly - -The arithmetic exception happened in the subroutine `zeroDivide()`. When you scroll a bit upward with the Up arrow key, you can find this pattern: - -``` -0x401211 <_Z10zeroDividev>              push   rbp -0x401212 <_Z10zeroDividev+1>            mov    rbp,rsp -``` - -This is called the [function prologue][60]: - -1. The base pointer (rbp) of the calling function is stored on the stack -2. The value of the stack pointer (rsp) is loaded to the base pointer (rbp) - -Skip this subroutine completely. You can check the call stack with `backtrace`. You are only one stack frame ahead of your `main` function, so you can go back to `main` with a single `up` : - -![Callstack assembly][61] - -In your `main` function, you can find this pattern: - -``` -0x401431     cmp    BYTE PTR [rbp-0x12],0x0 -0x401435     je     0x40145f -0x401437     call   0x401211<_Z10zeroDividev> -``` - -The subroutine `zeroDivide()` is entered only when `jump equal (je)` evaluates to `true`. You can easily replace this with a `jump-not-equal (jne)` instruction, which has the opcode `0x75` (provided you are on an x86/64 architecture; the opcodes are different on other architectures). Restart the program by typing `run`. When the program stops at the entry function, manipulate the opcode by typing: - -``` -set *(unsigned char*)0x401435 = 0x75 -``` - -Finally, type `continue`. The program will skip the subroutine `zeroDivide()` and won't crash anymore. - -### Conclusion - -You can find GDB working in the background in many integrated development environments (IDEs), including Qt Creator and the [Native Debug][62] extension for VSCodium. - -![GDB in VSCodium][63] - -It's useful to know how to leverage GDB's functionality. Usually, not all of GDB's functions can be used from the IDE, so you benefit from having experience using GDB from the command line. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/1/gnu-project-debugger - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/mistake_bug_fix_find_error.png -[2]: https://www.gnu.org/software/gdb/ -[3]: https://opensource.com/article/20/8/linux-dump -[4]: https://opensource.com/sites/default/files/uploads/gdb_output_no_dbg_symbols.png -[5]: https://opensource.com/sites/default/files/uploads/gdb_output_with_symbols.png -[6]: https://opensource.com/sites/default/files/uploads/gdb_output_crash_on_c1_switch.png -[7]: https://opensource.com/sites/default/files/uploads/gdb_output_info_source.png -[8]: http://dwarfstd.org/ -[9]: https://sourceware.org/gdb/current/onlinedocs/gdb/Compilation.html#Compilation -[10]: https://opensource.com/sites/default/files/uploads/gdb_output_info_shared.png -[11]: https://opensource.com/article/20/6/linux-libraries -[12]: https://opensource.com/sites/default/files/uploads/gdb_output_stopped_by_sigint.png -[13]: https://opensource.com/sites/default/files/uploads/gdb_output_list_main.png -[14]: https://opensource.com/sites/default/files/uploads/gdb_output_breakpoint_added.png -[15]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_main.png -[16]: https://opensource.com/sites/default/files/images/gdb_output_screen_corrupted.png -[17]: https://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys -[18]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_1.png -[19]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_2.png -[20]: https://opensource.com/sites/default/files/uploads/gdb_output_info_watchpoints.png -[21]: https://opensource.com/sites/default/files/uploads/gdb_output_info_breakpoints.png -[22]: https://opensource.com/sites/default/files/uploads/gdb_output_disabled_breakpoints.png -[23]: https://opensource.com/sites/default/files/uploads/gdb_output_set_conditional_breakpoint.png -[24]: https://opensource.com/sites/default/files/uploads/gdb_output_print_variable.png -[25]: https://opensource.com/sites/default/files/uploads/gdb_output_modify_breakpoint.png -[26]: https://opensource.com/sites/default/files/uploads/gdb_output_syscall_catch.png -[27]: https://sourceware.org/gdb/current/onlinedocs/gdb/Breakpoints.html#Breakpoints -[28]: https://opensource.com/sites/default/files/uploads/gdb_output_print_and_modify.png -[29]: https://opensource.com/sites/default/files/uploads/gdb_output_whatis.png -[30]: https://opensource.com/sites/default/files/uploads/gdb_output_info_scope_main.png -[31]: https://opensource.com/sites/default/files/uploads/gdb_output_info_locals_main.png -[32]: https://sourceware.org/gdb/current/onlinedocs/gdb/Symbols.html -[33]: https://man7.org/linux/man-pages/man1/ps.1.html -[34]: https://man7.org/linux/man-pages/man1/top.1.html -[35]: https://opensource.com/sites/default/files/uploads/coredump_running.png -[36]: https://opensource.com/sites/default/files/uploads/gdb_output_attaching_to_process.png -[37]: https://opensource.com/sites/default/files/uploads/gdb_output_backtrace.png -[38]: https://sourceware.org/gdb/current/onlinedocs/gdb/Attach.html#Attach -[39]: https://opensource.com/sites/default/files/uploads/gdb_output_stackframe_up.png -[40]: https://sourceware.org/gdb/current/onlinedocs/gdb/Stack.html#Stack -[41]: https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_48.html#SEC49 -[42]: https://opensource.com/article/20/8/linux-dump -[43]: https://creativecommons.org/licenses/by-sa/4.0/ -[44]: https://opensource.com/sites/default/files/uploads/crash.png -[45]: https://opensource.com/sites/default/files/uploads/gdb_output_coredump.png -[46]: https://opensource.com/sites/default/files/uploads/gdb_output_up_five.png -[47]: https://en.wikipedia.org/wiki/Assembly_language -[48]: https://opensource.com/sites/default/files/uploads/gdb_output_no_debugging_symbols.png -[49]: https://opensource.com/sites/default/files/uploads/gdb_output_info_file.png -[50]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_start.png -[51]: https://en.wikipedia.org/wiki/X86_assembly_language#Syntax -[52]: https://opensource.com/sites/default/files/uploads/gdb_output_disassembly_flavor.png -[53]: https://opensource.com/sites/default/files/uploads/gdb_output_layout_reg_asm.png -[54]: https://github.com/hANSIc99/core_dump_example/blob/master/gdbinit -[55]: https://opensource.com/sites/default/files/uploads/gdb_output_asm_div_zero.png -[56]: https://opensource.com/sites/default/files/uploads/gdb_output_stack_division.png -[57]: https://en.wikipedia.org/wiki/Printf_format_string#Type_field -[58]: https://opensource.com/sites/default/files/uploads/gdb_output_examine_1.png -[59]: https://sourceware.org/gdb/current/onlinedocs/gdb/Memory.html -[60]: https://en.wikipedia.org/wiki/Function_prologue -[61]: https://opensource.com/sites/default/files/uploads/gdb_output_callstack_assembly_0.png -[62]: https://github.com/WebFreak001/code-debug -[63]: https://opensource.com/sites/default/files/uploads/vs_codium_native_debug.png diff --git a/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md new file mode 100644 index 0000000000..15894077ac --- /dev/null +++ b/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md @@ -0,0 +1,548 @@ +[#]: subject: "A hands-on tutorial for using the GNU Project Debugger" +[#]: via: "https://opensource.com/article/21/1/gnu-project-debugger" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: "Maisie-x" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +手把手教你使用 GNU 调试器 +====== +GNU 调试器是一个发现程序缺陷的强大工具。 + +![magnifying glass on computer screen, finding a bug in the code][1] + +图片来源:Opensource.com + +如果您是一个想在您的软件增加某些功能的程序员,您首先考虑实现它的方法:例如写一个method、定义一个class或者创建新的数据类型。然后您用一种编译器或解释器可以理解的编程语言来实现这个功能。但是,如果您觉得您所有代码都正确,但是编译器或解释器依然无法理解您的指令怎么办?如果软件大多数情况下都运行良好,但是在某些环境下出现缺陷怎么办?这种情况下,您得知道如何正确使用调试器找到问题的根源。 + +GNU调试器([GDB][2]) 是一个发现项目缺陷的强大工具。它通过追踪程序运行过程中发生了什么来帮助您发现程序错误或崩溃的原因。 + +本文是GDB使用的基础教程。请跟随示例,打开命令行并克隆此仓库: + +``` +git clone https://github.com/hANSIc99/core_dump_example.git +``` + +### 快捷方式 + +GDB的每条命令都可以缩短。例如:`info break` ,表示设置断点,可以被缩短为 `i break`。您可能在其他地方看到过这种缩写,但在本文中,为了清晰展现使用的函数,我将所写出所有命令。 + +### 命令行参数 + +您可以将GDB附加到每个可执行文件。进入您克隆的仓库(core_dump_example),运行 `make`进行编译。您现在能看到一个名为**coredump**的可执行文件。(更多信息,请参考我的文章 [创建和调试Linux的dump文件][3] 。) + +要将GDB附加到执行文件,请输入: `gdb coredump`。 + +您的输出应如下所示: + +![gdb coredump output][4] + + +返回结果显示没有找到调试符号。 + +调试信息是目标文件(可执行文件)的组成部分,调试信息包括数据类型、函数签名、源代码和操作码之间的关系。此时,您有两种选择: + +* 继续调试程序集(参见下文[无符号调试](#Debug_without_symbols)) +* 使用调试信息进行编译,参见下一节内容 + +### 使用调试信息进行编译 + +为了在二进制文件中包含调试信息,您必须重新编译。打开**Makefile**,删除第9行的(`#`) 标签后结果如下: + +``` +CFLAGS =-Wall -Werror -std=c++11 -g +``` + +`g`表示编译器包含调试信息。运行`make clean`,接着运行 `make`,然后再次调用GDB。您得到如下输出后就可以调试代码了: + +![GDB output with symbols][5] + +新增的调试信息会增加可执行文件的大小。在这种情况下,执行文件增加了2.5倍(从26,088 字节 增加到 65,480 字节)。 + +输入`run -c1`,使用`-c1`开关启动程序。当程序为 `State_4` 时,程序将启动并崩溃: + +![gdb output crash on c1 switch][6] + +您可以检索有关程序的其他信息, `info source`命令提供了当前文件的信息: + +![gdb info source output][7] + +* 101 行 +* 语言: C++ +* 编译器(版本、调优、架构、调试标志、语言标准) +* 调试格式:[DWARF 2][8] +* 没有预处理器宏指令(使用 GCC 编译时,宏仅在 [使用 `-g3` 标志编译][9] 时可用)。 + + `info shared`命令在启动时加载的虚拟地址空间中打印动态库列表及动态库地址,以便程序运行: + +![gdb info shared output][10] + +如果你想了解Linux库处理,请参见我的文章 [如何在Linux中处理动态库和静态库][11]。 + +### 调试程序 + +您可能已经注意到,您可以在 GDB 中使用 `run` 命令启动程序。 `run` 命令接受命令行参数,就像从控制台启动程序一样。 `-c1` 开关会导致程序在第 4 阶段崩溃。要从头开始运行程序,您不用退出 GDB,只需再次运行'run'命令。如果没有 `-c1` 开关,程序将陷入死循环,您必须使用 **Ctrl+C** 来结束死循环。 + +![gdb output stopped by sigint][12] + +您也可以一步一步运行程序。在 C/C++ 中,入口是 `main` 函数。使用 `list main`命令打开显示部分 `main` 函数的源代码: + +![gdb output list main][13] + +`main` 函数在第 33 行,因此输入`break 33` 在33行添加断点: + +![gdb output breakpoint added][14] + +输入 `run` 运行程序。正如预期的那样,程序在 `main` 函数处停止。输入 `layout src` 并行查看源代码: + +![gdb output break at main][15] + +您现在处于 GDB 的文本用户界面 (TUI) 模式。使用键盘向上和向下箭头键滚动查看源代码。 + +GDB 高亮显示当前行。通过输入 `next` (n),您可以输入 `next` (n)命令逐行查看命令。如果您一直输入`next` (n)命令,GBD 会一直高亮显示到最后一个命令。要逐行运行代码,只需按 **Enter** 键。 + +有时,您会发现文本的输出有点显示不正常: + +![gdb output corrupted][16] + +如果发生这种情况,请按 **Ctrl+L** 重置屏幕。 + +使用**Ctrl+X+A**随意进入和退出TUI模式。您可以在手册中找到[绑定其他键][17] 。 + +要退出 GDB,只需输入 `quit`。 + +### 设置监察点 + +这个示例程序的核心是一个在无限循环中运行的状态机。 `n_state`变量枚举了当前所有状态: + +``` +while(true){ +        switch(n_state){ +        case State_1: +                std::cout << "State_1 reached" << std::flush; +                n_state = State_2; +                break; +        case State_2: +                std::cout << "State_2 reached" << std::flush; +                n_state = State_3; +                break; +        +        (.....) +        +        } +} +``` + +如果您想`n_state` 为 `State_5` 值时停止程序。为此,请在 `main` 函数处停止程序并为 `n_state` 设置监察点: + +``` +watch n_state == State_5 +``` + +只有当所需的变量在当前上下文中可用时,使用变量名设置监察点才有效。 + +当您输入 `continue` 继续运行程序时,您会得到如下输出: + +![gdb output stop on watchpoint_1][18] + +如果您继续运行程序,当监察点表达式评估为 `false` 时 GDB 将停止: + +![gdb output stop on watchpoint_2][19] + +您可以自定义监察点的一般值、特定值,读取或写入权限。 + +### 更改断点和监察点 + +输入 `info watchpoints` 打印先前设置的监察点列表: + +![gdb output info watchpoints][20] + +#### 删除断点和监察点 + +如您所见,监察点就是数字。要删除特定的监察点,请先输入`delete`后输入监察点的编号。例如,我的监察点编号为 2;要删除此监察点,输入 `delete 2`。 + +*注意:* 如果您使用 `delete` 而没有指定数字,*所有* 监察点和断点将被删除。 + +这同样适用于断点。在下面的截屏中,我添加了几个断点,输入 `info breakpoint` 打印断点列表: + +![gdb output info breakpoints][21] + +要删除单个断点,请先输入`delete`后输入监察点的编号。另外一种方式:您可以通过指定断点的行号来删除断点。例如,`clear 78`命令将删除第 78 行设置的断点号 7。 + +#### 禁用或启用断点和监察点 + +除了删除断点或监察点之外,您可以通过先输入`disable`,后输入编号禁用断点或监察点。在下文中,断点 3 和 4 被禁用,并在代码窗口中用减号标记: + +![disabled breakpoints][22] + +也可以通过输入类似 `disable 2 - 4`修改某个范围内的断点或监察点。如果要重新激活这些点,请先输入`enable`,然后输入它们的编号。 + +### 条件断点 + +首先,输入 `delete` 删除所有断点和监察点。如果您不想指定行号而是通过直接命名函数来添加断点这种方式使程序在 `main` 函数处停止。输入 `break main` 从而在 `main` 函数处添加断点。 + +输入`run`从头开始运行程序,程序将在`main`函数处停止。 + +`main` 函数包括变量 `n_state_3_count`,当状态机达到状态 3 时,该变量会递增。 + +基于 `n_state_3_count` 的值添加条件断点,请输入: + +``` +break 54 if n_state_3_count == 3 +``` + +![Set conditional breakpoint][23] + +继续运行程序。程序将在第 54 行停止之前运行状态机 3 次。要检查 `n_state_3_count` 的值,请输入: + +``` +print n_state_3_count +``` + +![print variable][24] + +#### 使断点成为条件断点 + +您也可以使现有断点成为条件断点。用 `clear 54` 命令删除最近添加的断点,并通过输入 `break 54`命令添加一个简单的断点。您可以输入以下内容使此断点成为条件断点: + +``` +condition 3 n_state_3_count == 9 +``` + +`3` 指的是断点编号。 + +![modify breakpoint][25] + +#### 在其他源文件中设置断点 + +如果您的程序由多个源文件组成,您可以在行号前指定文件名来设置断点,例如,`break main. cpp:54`。 + +#### 捕捉断点 + +除了断点和监察点之外,您还可以设置捕获点。捕获点适用于执行系统调用、加载共享库或引发异常等事件。 + +要捕获用于写入 STDOUT 的 `write` 系统调用,请输入: + +``` +catch syscall write +``` + +![catch syscall write output][26] + +每当程序写入控制台输出时,GDB将中断执行。 + +在手册中,您可以找到一整章 [断点、监察点和捕捉点][27] 的内容。 + +### 评估和操作符号 + +用`print`命令打印变量的值。一般语法是`print <表达式> <值>`。修改变量的值,请输入: + +``` +set variable . +``` + +在下面的截屏中,我将变量 `n_state_3_count` 的值设为 *123*。 + +![catch syscall write output][28] + +`/x` 表达式以十六进制打印值;使用 `&` 运算符,您可以打印虚拟地址空间内的地址。 + +如果您不确定某个符号的数据类型,可以使用 `whatis` 来查明。 + +![whatis output][29] + +如果您要列出 `main` 函数范围内可用的所有变量,请输入`info scope main` : + +![info scope main output][30] + +`DW_OP_fbreg` 值是指基于当前子程序的堆栈偏移量。 + +或者,如果您已经在一个函数中并且想要列出当前堆栈帧上的所有变量,您可以使用 `info locals` : + +![info locals output][31] + +查看手册以了解更多[检查符号][32]的内容。 + +### 调试正在运行的进程 + +`gdb attach `命令允许您通过指定进程ID(PID)调试已经在运行的进程。幸运的是,`coredump` 程序将其当前 PID 打印到屏幕上,因此您不必使用 [ps][33] 或 [top][34] 手动查找PID。 + +启动 coredump 应用程序的一个实例: + +``` +./coredump +``` + +![coredump application][35] + +操作系统显示PID为 `2849`。打开一个单独的控制台窗口,移动到 coredump 应用程序的根目录,然后调试GDB: +``` +gdb attach 2849 +``` + +![attach GDB to coredump][36] + +当你调试 GDB 时,GDB会立即停止运行。输入 `layout src` 和 `backtrace` 来检查调用堆栈: + +![layout src and backtrace output][37] + +输出显示在`main.cpp`第92行运行 `std::this_thread::sleep_for<...>(. ..) `函数时进程中断。 + +只要您退出 GDB,该进程将继续运行。 + +您可以在 GDB 手册中找到有关 [调试正在运行的进程][38] 的更多信息。 + +#### 在堆栈中移动 + +在命令窗口,输入`up` 两次可以在堆栈中向上移动到 `main.cpp` : + +![moving up the stack to main.cpp][39] + +通常,编译器将为每个函数或方法创建一个子程序。每个子程序都有自己的栈帧,所以在栈帧中向上移动意味着在调用栈中向上移动。 + +您可以在手册中找到有关 [堆栈计算][40] 的更多信息。 + +#### 指定源文件 + +当调试一个已经在运行的进程时,GDB 将在当前工作目录中寻找源文件。您也可以使用 [目录命令][41] 手动指定源目录。 + +### 评估dump文件 + +阅读 [创建和调试Linux的dump文件][42] 了解有关此主题的信息。 + +参考文章太长,没看的看下文: + +1. 假设您使用的是最新版本的 Fedora +2. 使用 c1 开关调用 coredump:`coredump -c1` + +![Crash meme][44] + +3. 使用 GDB 加载最新的dump文件:`coredumpctl debug` +4. 打开 TUI 模式并输入 `layout src` + +![coredump output][45] + +`backtrace` 的输出显示崩溃发生在距离 `main.cpp` 五个堆栈帧之外。回车直接跳转到`main.cpp`中的错误代码行: + +![up 5 output][46] + +看源码发现程序试图释放一个内存管理函数没有返回的指针。这会导致未定义的行为并引起`SIGABRT`。 + +### 无符号调试 + +如果没有可用的资源,事情会变得非常困难。当我在尝试解决逆向工程的挑战时,我第一次体验到了这一点。了解一些 [汇编语言][47] 的知识会很有用。 + +我们用例子看看它是如何运行的。 + +找到根目录,打开 **Makefile**,然后像下面一样编辑第 9 行: + +``` +CFLAGS =-Wall -Werror -std=c++11 #-g +``` + +要重新编译程序,先运行 `make clean` ,再运行 `make` ,最后启动 GDB。该程序不再有任何调试符号来引导源代码。 + +![no debugging symbols][48] + +`info file`命令显示二进制文件的内存区域和入口点: + +![info file output][49] + +`.text`区段始终从入口点开始,其中包含实际的操作码。要在入口点添加断点,输入 `break *0x401110` 然后输入 `run` 开始运行程序: + +![breakpoint at the entry point][50] + +要在某个地址设置断点,使用取消引用运算符`*`指定地址。 + +#### 选择反汇编程序风格 + +在深入研究汇编之前,您可以选择要使用的 [汇编风格][51] 。 GDB 默认是 AT&T,但我更喜欢 Intel 语法。变更风格如下: + +``` +set disassembly-flavor intel +``` +![changing assembly flavor][52] + +现在输入 `layout asm` 调出汇编代码窗口,输入 `layout reg` 调出寄存器窗口。您现在应该看到如下输出: + +![layout asm and layout reg output][53] + +#### 保存配置文件 + +尽管您已经输入了许多命令,但实际上还没有开始调试。如果您正在大量调试应用程序或尝试解决逆向工程的难题,则将 GDB 特定设置保存在文件中会很有用。 + +该项目的 GitHub 存储库中的 [config file gdbinit][54] 包含最近使用的命令: + +``` +set disassembly-flavor intel +set write on +break *0x401110 +run -c2 +layout asm +layout reg +``` + +`set write on` 命令使您能够在程序运行期间修改二进制文件。 + +退出 GDB 并使用配置文件重新启动 GDB : `gdb -x gdbinit coredump` + +#### 阅读指令 + +应用 `c2` 开关后,程序将崩溃。程序在入口函数处停止,因此您必须编写 `continue` 才能继续运行: + +![continuing execution after crash][55] + +`idiv` 指令进行整数除法运算: `RAX` 寄存器中为被除数,指定参数为除数。商被加载到 `RAX` 寄存器中,余数被加载到 `RDX` 中。 + +从寄存器角度,您可以看到 `RAX` 包含 *5*,因此您必须找出存储堆栈中位置为 `RBP-0x4` 的值。 + +#### 读取内存 + +要读取原始内存内容,您必须指定比读取符号更多的参数。在汇编输出中向上滚动一点,可以看到堆栈的划分: + +![stack division output][56] + +您最感兴趣的应该是 `rbp-0x4` 的值,因为它是 `idiv` 的存储参数。您可以从截图中看到`rbp-0x8`位置的下一个变量,所以`rbp-0x4`位置的变量是4字节宽。 + +在 GDB 中,您可以使用 `x` 命令*检查*任何内存内容: + + +> `x/` < 可选参数 `n` `f` `u` > < 内存地址 `addr` > + +可选参数: + +* n: 单元大小的重复计数(默认值:1) +* f:格式说明符,如 [printf][57] +* u:单元大小 + * b:字节 + * h:2个字节 + * w: 4个字节(默认) + * g: 8个字节 + +要打印 `rbp-0x4` 的值,请输入 `x/u $rbp-4` : + +![print value][58] + +如果您能记住这种模式,则可以直接检查内存。检查手册中的 [查看内存][59] 部分。 + +#### 操作程序集 + +子程序 `zeroDivide()` 发生运算异常。当你用向上箭头键向上滚动一点时,您会找到下面信息: + +``` +0x401211 <_Z10zeroDividev>              push   rbp +0x401212 <_Z10zeroDividev+1>            mov    rbp,rsp +``` + +这被称为 [函数前言][60 ]: + +1. 调用函数的基指针(rbp)存放在栈上 +2. 栈指针(rsp)的值被加载到基指针(rbp) + +完全跳过这个子程序。您可以使用 `backtrace` 检查调用堆栈。在 `main` 函数之前只有一个堆栈帧,所以您可以用一次 `up` 回到 `main` : + +![Callstack assembly][61] + +在您的 `main` 函数中,你会找到下面信息: + +``` +0x401431     cmp    BYTE PTR [rbp-0x12],0x0 +0x401435     je     0x40145f +0x401437     call   0x401211<_Z10zeroDividev> +``` + +子程序 `zeroDivide()` 仅在 `jump equal (je)` 为 `true` 时输入。您可以轻松地将其替换为 `jump-not-equal (jne)` 指令,该指令的操作码为“0x75”(假设您使用的是 x86/64 架构;其他架构上的操作码不同)。输入 `run` 重新启动程序。当程序在入口函数处停止时,设置操作码: + +``` +set *(unsigned char*)0x401435 = 0x75 +``` + +最后,输入 `continue` 。该程序将跳过子程序 `zeroDivide()` 并且不会再崩溃。 + +### 总结 + +您会在许多集成开发环境 (IDE) 中发现 GDB 在后台运行,包括 Qt Creator 和 VSCodium 的扩展 [本地调试][62] 。 + +![GDB in VSCodium][63] + +了解如何充分利用 GDB 的功能很有用。一般情况下,并非所有 GDB 的功能都可以在 IDE 中使用,因此您可以从命令行使用 GDB 的经验中受益。 + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/1/gnu-project-debugger + +作者:[Stephan Avenwedde][a] +选题:[lkxed][b] +译者:[Maisie-x](https://github.com/Maisie-x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/mistake_bug_fix_find_error.png +[2]: https://www.gnu.org/software/gdb/ +[3]: https://opensource.com/article/20/8/linux-dump +[4]: https://opensource.com/sites/default/files/uploads/gdb_output_no_dbg_symbols.png +[5]: https://opensource.com/sites/default/files/uploads/gdb_output_with_symbols.png +[6]: https://opensource.com/sites/default/files/uploads/gdb_output_crash_on_c1_switch.png +[7]: https://opensource.com/sites/default/files/uploads/gdb_output_info_source.png +[8]: http://dwarfstd.org/ +[9]: https://sourceware.org/gdb/current/onlinedocs/gdb/Compilation.html#Compilation +[10]: https://opensource.com/sites/default/files/uploads/gdb_output_info_shared.png +[11]: https://opensource.com/article/20/6/linux-libraries +[12]: https://opensource.com/sites/default/files/uploads/gdb_output_stopped_by_sigint.png +[13]: https://opensource.com/sites/default/files/uploads/gdb_output_list_main.png +[14]: https://opensource.com/sites/default/files/uploads/gdb_output_breakpoint_added.png +[15]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_main.png +[16]: https://opensource.com/sites/default/files/images/gdb_output_screen_corrupted.png +[17]: https://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys +[18]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_1.png +[19]: https://opensource.com/sites/default/files/uploads/gdb_output_stop_on_watchpoint_2.png +[20]: https://opensource.com/sites/default/files/uploads/gdb_output_info_watchpoints.png +[21]: https://opensource.com/sites/default/files/uploads/gdb_output_info_breakpoints.png +[22]: https://opensource.com/sites/default/files/uploads/gdb_output_disabled_breakpoints.png +[23]: https://opensource.com/sites/default/files/uploads/gdb_output_set_conditional_breakpoint.png +[24]: https://opensource.com/sites/default/files/uploads/gdb_output_print_variable.png +[25]: https://opensource.com/sites/default/files/uploads/gdb_output_modify_breakpoint.png +[26]: https://opensource.com/sites/default/files/uploads/gdb_output_syscall_catch.png +[27]: https://sourceware.org/gdb/current/onlinedocs/gdb/Breakpoints.html#Breakpoints +[28]: https://opensource.com/sites/default/files/uploads/gdb_output_print_and_modify.png +[29]: https://opensource.com/sites/default/files/uploads/gdb_output_whatis.png +[30]: https://opensource.com/sites/default/files/uploads/gdb_output_info_scope_main.png +[31]: https://opensource.com/sites/default/files/uploads/gdb_output_info_locals_main.png +[32]: https://sourceware.org/gdb/current/onlinedocs/gdb/Symbols.html +[33]: https://man7.org/linux/man-pages/man1/ps.1.html +[34]: https://man7.org/linux/man-pages/man1/top.1.html +[35]: https://opensource.com/sites/default/files/uploads/coredump_running.png +[36]: https://opensource.com/sites/default/files/uploads/gdb_output_attaching_to_process.png +[37]: https://opensource.com/sites/default/files/uploads/gdb_output_backtrace.png +[38]: https://sourceware.org/gdb/current/onlinedocs/gdb/Attach.html#Attach +[39]: https://opensource.com/sites/default/files/uploads/gdb_output_stackframe_up.png +[40]: https://sourceware.org/gdb/current/onlinedocs/gdb/Stack.html#Stack +[41]: https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_48.html#SEC49 +[42]: https://opensource.com/article/20/8/linux-dump +[43]: https://creativecommons.org/licenses/by-sa/4.0/ +[44]: https://opensource.com/sites/default/files/uploads/crash.png +[45]: https://opensource.com/sites/default/files/uploads/gdb_output_coredump.png +[46]: https://opensource.com/sites/default/files/uploads/gdb_output_up_five.png +[47]: https://en.wikipedia.org/wiki/Assembly_language +[48]: https://opensource.com/sites/default/files/uploads/gdb_output_no_debugging_symbols.png +[49]: https://opensource.com/sites/default/files/uploads/gdb_output_info_file.png +[50]: https://opensource.com/sites/default/files/uploads/gdb_output_break_at_start.png +[51]: https://en.wikipedia.org/wiki/X86_assembly_language#Syntax +[52]: https://opensource.com/sites/default/files/uploads/gdb_output_disassembly_flavor.png +[53]: https://opensource.com/sites/default/files/uploads/gdb_output_layout_reg_asm.png +[54]: https://github.com/hANSIc99/core_dump_example/blob/master/gdbinit +[55]: https://opensource.com/sites/default/files/uploads/gdb_output_asm_div_zero.png +[56]: https://opensource.com/sites/default/files/uploads/gdb_output_stack_division.png +[57]: https://en.wikipedia.org/wiki/Printf_format_string#Type_field +[58]: https://opensource.com/sites/default/files/uploads/gdb_output_examine_1.png +[59]: https://sourceware.org/gdb/current/onlinedocs/gdb/Memory.html +[60]: https://en.wikipedia.org/wiki/Function_prologue +[61]: https://opensource.com/sites/default/files/uploads/gdb_output_callstack_assembly_0.png +[62]: https://github.com/WebFreak001/code-debug +[63]: https://opensource.com/sites/default/files/uploads/vs_codium_native_debug.png From f5a5cd15e9582737423340a760b4f727f0241e29 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 20 Jul 2022 17:32:21 +0800 Subject: [PATCH 0456/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yjacks 感谢您,完成了第一篇翻译。 不过,这篇翻译的质量并不好。请注意改进。不要使用辅助翻译软件直接翻译后就提交上来,最起码你得润色,得自己读起来通顺。 --- ...0611 How to use the FreeDOS text editor.md | 75 ++++++++----------- 1 file changed, 30 insertions(+), 45 deletions(-) diff --git a/translated/tech/20210611 How to use the FreeDOS text editor.md b/translated/tech/20210611 How to use the FreeDOS text editor.md index 8d937b7048..b3d4abe4d9 100644 --- a/translated/tech/20210611 How to use the FreeDOS text editor.md +++ b/translated/tech/20210611 How to use the FreeDOS text editor.md @@ -3,74 +3,59 @@ [#]: author: (Jim Hall https://opensource.com/users/jim-hall) [#]: collector: (lujun9972) [#]: translator: (yjacks) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -如何使用FreeDOS Edit +如何使用 FreeDOS Edit ====== -FreeDOS提供了一个叫做 FreeDOS Edit 的用户友好的文本编辑器 -![Person using a laptop][1] -在任何操作系统中,编辑文件都是一项常有的任务。当你想去做一个某事的笔记、写封信给朋友或升级一个系统配置——你需要一个文本编辑器。FreeFOS提供了一个用户友好的文本编辑器(也许你难以想象)叫做”FreeDOS Edit。“ +> FreeDOS 提供了一个叫做 FreeDOS Edit 的用户友好的文本编辑器。 + +![](https://img.linux.net.cn/data/attachment/album/202207/20/173027t6ctk5cwf9u988p9.jpg) + +在任何操作系统中,编辑文件都是一项常有的任务。当你想去做一个某事的笔记、写封信给朋友或升级一个系统配置 —— 你需要一个文本编辑器。FreeDOS 提供了一个用户友好的文本编辑器(也许没啥想象力)叫做 “FreeDOS Edit”。 + ### 编辑文件 -最简单的启用 FreeDOS Edit 的方式就只是`EDIT`。它提供一个空的编辑器窗口。图案背景显示为一个空的“桌面”——提醒您没有编辑任何文件。 +最简单的启用 FreeDOS Edit 的方式就就是输入 `EDIT`。它提供一个空的编辑器窗口。图案背景显示为一个空的“桌面”——提醒你没有编辑任何文件。 -![FreeDOS Edit][2] +![FreeDOS Edit:未加载任何文件][2] -FreeDOS Edit未加载任何文件 -Jim Hall, CC-BY SA 4.0 +就像多数 DOS 应用程序一样,你可以按下你键盘上的 `Alt` 键来访问 Edit 的菜单。这就激活了这个菜单。在你按下 `Alt` 后,Edit 将切换到“菜单”访问方式,并高亮 “文件File” 菜单。如果你想要访问菜单栏上的一个不同的菜单,可以使用左右方向键。按向下的方向键并按下回车键来“进入”菜单。 -就像多数 DOS 程式,你可以轻击你键盘上的 Alt 键一次来启动菜单。这将激活这个菜单。在你轻击 Alt 后,编辑器将转为“menu”并将高亮“File”菜单。如果你想要启用一个别的菜单从菜单栏上,使用左与右方向键。按下下方向键或击打回车键去“进入”菜单。 +![高亮菜单][3] -![FreeDOS Edit menu][3] +你注意到所有菜单标题的第一个字母是不同的颜色么?这种高亮字母显示了一种快捷方式。例如,“文件File”菜单的“F”高亮为红色。所以你可以按下 `Alt+F`(`Alt` 和 `F` 同时按下),Edit 会显示“文件File”菜单。 -高亮菜单 -Jim Hall, CC-BY SA 4.0 +![文件菜单][4] -你注意到所有菜单标题的第一个字母是不同的颜色么?高亮字母显示了一条捷径。例如,"F"在"File"菜单高亮为红色。所以你可以通过按下 Alt+F (Alt 和 F 在同一个瞬间),编辑器会显示“File”菜单。 +你可以使用“文件File”菜单来开始一个新的(空)文件,或打开一个存在的文件。让我们开始一个新文件,使用方向键移动到“新建New“然后按下回车键。你也可以用 `Ctrl+N` (`Ctrl` 和 `N` 同时按下)打开一个新文件。 -![File menu][4] +![编辑一个新的文件][5] -文件菜单 -Jim Hall, CC-BY SA 4.0 +此后,编辑文件应该非常简单。大多数熟悉的快捷键都可以在 FreeDOS Edit 中使用:`Ctrl+C` 复制文本,`Ctrl+X` 剪贴文本,和 `Ctrl+V` 将复制的或剪贴的文本粘贴到新的地方。如果你需要在一个长文档中寻找一个特殊文本,按下 `Ctrl+F`。保存你的工作成果,请使用 `Ctrl+S` 以将变更提交到硬盘。 -你可以使用“File”菜单来原则开始一个新(空)文件,或打开一个存在的文件。让我们开始一个新文件使用方向键移动到“New“然后按下回车键。你也可以用 Ctrl+N (Ctrl 和 N 在相同的时间)启动一个新文件。 +### 在 Edit 中编程 -![new file][5] +如果你是个程序员,你也许会发现扩展的 ASCII 表是一个有用的工具。DOS 系统支持“拓展的” ASCII字符集,通常被称之为“代码页 437”。0 到 127 的标准字符包括字母 A 到 Z(大写和小写)、数字和特殊字符,如标点符号。但是,从 128 到 255 的 DOS 拓展字符包括其它语言字符和“画线”元素。DOS 程序员有时需要使用这些拓展 ASCII 字符,所以 FreeDOS Edit 可以很容易地查看所有 ASCII 码和它们的相关字符的表格。 -编辑一个新的文件 -Jim Hall, CC-BY SA 4.0 +要查看这个 ASCII 表,请使用“工具Utilities”菜单,选择“ASCII 表ASCII Table”菜单项,这将显示一个包含该表格的窗口。 -在那之后编辑文件应该非常简单。大多快捷键都存在于 FreeDOS 中。编辑器:Ctrl+C以复制文本,Ctrl+X 以剪贴文本,和 Ctrl+V 以粘贴复制的或剪贴的文本到新的地方。如果你需要寻找一个特殊文本在一个长文档中,按 Ctrl+F。保存你的工作成果,使用 Ctrl+S 以推送变更回到硬碟。 +![在工具菜单找到 ASCII 表][6] -### 编辑器中的编程 +沿着左边,这张表显示十六进制值“00”到“F0”,顶部展示了单一值“0”到“F”。这些为每个字符的十六进制代码提供了一个快速参考。例如,第一行(00)和第一列(0)中的项目具有十六进制值 00 + 0,即0x00(“NULL”值)。而第五行(40)和第二列(1)中的字符,其数值为 40 + 1,即 0x41(字母 “A”)。 -如果你是个程序员,你也许需要寻找 ASCII 拓展表——一个有用的拓展。DOS 系统支援一个”拓展的“ASCII字符集通常援引自“code page 437.”。标准的字符包含字母 A 到 Z(大写与小写)、数字和特殊字符像是标点符号。但是,DOS 拓展字符自编码 128 到编码 255 包含拉丁语言字符和“行绘画”元素。DOS 程序员有时需要使用这些拓展 ASCII 字符,所以 FreeDOS Edit 将它变得简单去检视一个表表示所有 ASCII 码和它们的相关字符。 +![ASCII 表提供一个便于参考的扩展字符表][7] -查看 ASCII 表,请使用“工具”菜单,选择“ASCII表”选项,这将显示一个窗口包含一个表。 +当你在表格内移动光标高亮不同的字符时,你会看到表格底部的值发生变化,展示了字符的十进制、十六进制和八进制编码。例如,移动光标以高亮在 C0 行和第 5 列的“行交叉”字符,显示这个扩展字符的代码为 197(十进制)、0xc5(十六进制)和 305(八进制)。在一个程序中,你可以通过输入十六进制值 0xc5 或八进制“转义代码” \305 来引用这个扩展字符。 -![utilities menu - ascii table][6] +![“行交叉”字符是 197(十进制)、0xc5(十六进制)和 305(八进制)][8] -找寻 ASCII 表在工具菜单 -Jim Hall, CC-BY SA 4.0 +请随意浏览 Edit 中的菜单,以发现其他不错的功能。例如,“选项Options”菜单允许你更改 Edit 的行为和外观。如果你喜欢使用更密集的显示,可以使用“显示Display”菜单(在“选项Options”下)将 Edit + 设置为 25、43 或 50 行。你还可以强制 Edit 以单色(黑底白字)或反转模式(白底黑字)显示。 -沿着左边,这张表显示十六进制值"00"到"F0",顶部展示值“0”到“F”。这提供一个快速的十六进制码参考予每个字符。例如,在第一行(00)和第一列(0)的东西为值 00+0,或者说 0x00(“NULL”值)。字符在第五行(40)和第二列(1)的值为40+1,或者说0x41(字母“A”)。 - -![utilities menu - ascii table][7] - -ASCII 表提供一个易用的参考予扩展字符 -Jim Hall, CC-BY SA 4.0 - -当你移动光标通过表去高亮不同的字符,你见到值在表的中间变化来展示字符的十进制、十六进制和八进制编码。例如,移动光标以高亮“线路交点”字符在C0行和列5展示拓展的字符值为 197(十进制)、0xc5(十六进制)和 305(八进制)。再一个程序中,你也许参考这些拓展字符以输入十六进值`0xc5`,或者十进制“转译码”`\305`。 - -![ASCII 0xc5][8] - -“线路交点”字符是 197(十进制)、0xc5(十六进制)和 305(八进制) -Jim Hall, CC-BY SA 4.0 - -请随意浏览Edit中的菜单,以发现其他简洁的功能。例如,“选项”菜单允许您更改编辑的行为和外观。如果您喜欢使用更密集的显示,可以使用“显示”菜单(在“选项”下)将“编辑”设置为 25、43或 50 行。您还可以强制编辑以单色(黑底白字)或反转模式(白底白字)显示。 +(文内图片来自 Jim Hall,CC-BY SA 4.0) -------------------------------------------------------------------------------- @@ -79,7 +64,7 @@ via: https://opensource.com/article/21/6/freedos-text-editor 作者:[Jim Hall][a] 选题:[lujun9972][b] 译者:[yjacks](https://github.com/yjacks) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -92,4 +77,4 @@ via: https://opensource.com/article/21/6/freedos-text-editor [5]: https://opensource.com/sites/default/files/uploads/edit-new.png (Editing a new file) [6]: https://opensource.com/sites/default/files/uploads/utilities-ascii.png (Find the ASCII Table in the Utilities menu) [7]: https://opensource.com/sites/default/files/uploads/ascii-table-0x00.png (The ASCII Table provides a handy reference for extended characters) -[8]: https://opensource.com/sites/default/files/uploads/ascii-0xc5.png (The "line intersection" character is 197 (dec), 0xc5 (hex), and 305 (oct)) +[8]: https://opensource.com/sites/default/files/uploads/ascii-0xc5.png From 3e60c792112cd493a54aa2a5c3a96b70cb9e4cf9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 20 Jul 2022 17:33:57 +0800 Subject: [PATCH 0457/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yjacks 本文首发地址:https://linux.cn/article-14847-1.html 您的 LCTT 专页:https://linux.cn/lctt/yjacks --- .../20210611 How to use the FreeDOS text editor.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210611 How to use the FreeDOS text editor.md (98%) diff --git a/translated/tech/20210611 How to use the FreeDOS text editor.md b/published/20210611 How to use the FreeDOS text editor.md similarity index 98% rename from translated/tech/20210611 How to use the FreeDOS text editor.md rename to published/20210611 How to use the FreeDOS text editor.md index b3d4abe4d9..43f6816f64 100644 --- a/translated/tech/20210611 How to use the FreeDOS text editor.md +++ b/published/20210611 How to use the FreeDOS text editor.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (yjacks) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14847-1.html) 如何使用 FreeDOS Edit ====== From 3af84570fcdac54f436726e86def5b884efce407 Mon Sep 17 00:00:00 2001 From: Maisie-x <109048712+Maisie-x@users.noreply.github.com> Date: Wed, 20 Jul 2022 18:26:26 +0800 Subject: [PATCH 0458/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20220614 Build a Smart Parking System for a Metro Station.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md b/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md index 8bb8c21ae6..45b3dbdb8b 100644 --- a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md +++ b/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/" [#]: author: "Dr Maheswari R. https://www.opensourceforu.com/author/dr-maheswari-r/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Maisie-x " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ec83b5f24835abd7fe8494eb3354ccc85e5b0257 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 21 Jul 2022 02:01:55 +0800 Subject: [PATCH 0459/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220720=20Update=20a=20Single=20Package=20With=20ap?= =?UTF-8?q?t=20Command=20in=20Ubuntu=20and=20Debian.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e With apt Command in Ubuntu and Debian.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md diff --git a/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md new file mode 100644 index 0000000000..cf6b1e5bfc --- /dev/null +++ b/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md @@ -0,0 +1,96 @@ +[#]: subject: "Update a Single Package With apt Command in Ubuntu and Debian" +[#]: via: "https://itsfoss.com/apt-upgrade-single-package/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Update a Single Package With apt Command in Ubuntu and Debian +====== + +How do you [update your Ubuntu system in the command line][1]? You use the apt update (to refresh the package cache) and apt upgrade commands. + +``` +sudo apt update && sudo apt upgrade +``` + +It updates all the installed apt packages that can be upgraded at once. This includes the Linux kernel version, too. + +This seems like a good thing, especially for desktop users. That may not be the case for Ubuntu server users where you have crucial web services running. + +If you want to be selective about the updates and **only want to upgrade a single package**, use this command: + +``` +sudo apt install --only-upgrade package_name +``` + +Let’s see it in a bit more detail. + +### Upgrade single package using apt command + +The first step is to update the local package repository cache so that your system knows about the availability of new package versions. + +``` +sudo apt update +``` + +**This is optional**. Check if the package you want to upgrade is in the [list of upgradable packages][2]. + +``` +apt list --upgradable +``` + +If the desired package has a new version available, you can choose to upgrade only this single package with this command: + +``` +sudo apt install --only-upgrade package_name +``` + +If you run the apt install command on an already installed package, it will be upgraded to the next available version. + +But if the package is not installed already, the apt command will also install it. + +This is why the `--only-upgrade` part is necessary. With that option, the apt command will only upgrade an already installed package. It will not install the package if it is not already installed. + +Not the best-suited example for Ubuntu server users, but you can still see how I upgraded only one of the seven upgradable packages in the below screenshot. + +![Update only a single package in Ubuntu][3] + +### Upgrade selected packages only + +If you want to upgrade a selected few packages, you don’t have to update them one by one. Just provide the package names with the command mentioned earlier. + +``` +sudo apt install --only-upgrade package1 package2 package3 +``` + +Here’s an example. + +![Upgrade selected packages in Ubuntu][4] + +### Conclusion + +When you are faced with a situation where you have to upgrade selected packages, you can use the apt install command with –only-upgrade option. + +I recommend reading on [using apt command to use it more effectively][5]. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-upgrade-single-package/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/update-ubuntu/ +[2]: https://itsfoss.com/apt-list-upgradable/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/update-single-package-ubuntu-scaled.webp +[4]: https://itsfoss.com/wp-content/uploads/2022/07/upgrade-selected-packages-ubuntu.png +[5]: https://itsfoss.com/apt-command-guide/ From 64a6d38fe6dd0830cbca59ccfc5e9629a2156c03 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 21 Jul 2022 02:02:49 +0800 Subject: [PATCH 0460/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220720=20Newly=20Released=20Cat=20Game=20-STRAY-?= =?UTF-8?q?=20Works=20Pretty=20Good=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Game -STRAY- Works Pretty Good on Linux.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md diff --git a/sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md b/sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md new file mode 100644 index 0000000000..284f23ce08 --- /dev/null +++ b/sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md @@ -0,0 +1,65 @@ +[#]: subject: "Newly Released Cat Game ‘STRAY’ Works Pretty Good on Linux" +[#]: via: "https://news.itsfoss.com/stray-linux/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Newly Released Cat Game ‘STRAY’ Works Pretty Good on Linux +====== +Want to play a cat game? Well, you certainly can, and you should not miss the chance! + +![stray][1] + +*Meow.* + +STRAY is currently one of the trending indie games and a unique one where you get to explore a cyberpunk-themed world as a stray cat. + +It is a third-person adventure-puzzle game involving a lot of *meows*. Well, maybe because it gives you a “**Meow**” button that you can’t get to stop using throughout the game. + +The game includes a pinch of action along with fascinating cyberpunk elements. It isn’t meant to be challenging but an exciting concept where the indie devs managed to present something beautiful. + +Officially, it is available for Windows (**Steam**) and PlayStation. + +### STRAY on Linux Desktop + +![STRAY | Launch Trailer][2] + +In case you did not know, STRAY was already *Steam Deck verified* before its launch. So, if you are using a Steam Deck, you should try the game. + +And, **what’s better?** + +It works just fine on a Linux desktop system as well! + +I tested it on **Manjaro Linux** with **Proton Experimental**, running at **1440p** resolution. And, it worked out of the box without any tweaks needed. + +The graphics card equipped on my system is an **NVIDIA RTX 3060ti**. So, if you are an NVIDIA graphics user, I do not think it would be a problem. + +While I did not notice any major framerate issues with the gameplay so far, there were some micro stutters when I moved the camera in the game. This wasn’t an issue when I tried it on Windows. + +Maybe you won’t notice it with a lower refresh rate screen, or it won’t be an issue for you. In any case, with a different distribution/driver, you could have a different experience. + +Also, there’s an option to adjust the motion blur and enable V-Sync; you could balance it out with that particular setting. + +Can’t wait to try out the game? Head to its [Steam store page][3] and purchase it to get started. The game is available for **$29.99** and also offers regional pricing. So, it could be cheaper for different countries, just like I grabbed it for **$8**. + +Have you tried the game already? How do you like it so far? Feel free to share your thoughts in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/stray-linux/ + +作者:[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/07/stray.jpg +[2]: https://www.youtube.com/watch?v=4uP2MyUL49s +[3]: https://store.steampowered.com/app/1332010/Stray/?snr=1_4_4__118 From ead0bc21c6d9f1e41be33afdc9001abd8f021a30 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 21 Jul 2022 02:03:57 +0800 Subject: [PATCH 0461/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220720=20How=20much=20JavaScript=20do=20you=20need?= =?UTF-8?q?=20to=20know=20before=20learning=20ReactJS-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...u need to know before learning ReactJS-.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md diff --git a/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md b/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md new file mode 100644 index 0000000000..1aea98bbbd --- /dev/null +++ b/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md @@ -0,0 +1,74 @@ +[#]: subject: "How much JavaScript do you need to know before learning ReactJS?" +[#]: via: "https://opensource.com/article/22/7/learn-javascript-before-reactjs" +[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How much JavaScript do you need to know before learning ReactJS? +====== +The main idea is to be good in JavaScript so you can reduce the complexity of your ReactJS journey. + +React is a UI framework built on top of HTML, CSS, and JavaScript, where JavaScript (JS) is responsible for most of the logic. If you have knowledge of variables, data types, array functions, callbacks, scopes, string methods, loops, and other JS DOM manipulation-related topics, these will tremendously speed up the pace of learning ReactJS. + +Your concept of modern JavaScript will dictate the pace of how soon you can get going with ReactJS. You don't need to be a JavaScript expert to start your ReactJS journey, but just as knowledge of ingredients is a must for any chef hoping to master cooking, the same is true for learning ReactJS. It's a modern JavaScript UI library, so you need to know some JavaScript. The question is, how much? + +### Example explanation + +Suppose I'm asked to write an essay about a "cow" in English, but that I know nothing about the language. In this case, for me to successfully complete the task, I should not only have an idea about the topic but also the specified language. + +Assuming that I acquire some knowledge about the topic (a cow), how can I calculate the amount of English I need to know to be able to write about the proscribed topic? What if I have to write an essay on some other complex topics in English? + +It’s difficult to figure that out, isn’t it? I don’t know what things I'm going to write about the topic, but it could be anything. So to get started, I have to have a proper knowledge of the English language, but it doesn't end there. + +### Extreme reality + +The same is true for the amount of JavaScript required before getting started with ReactJS. According to my example scenario, ReactJS is the topic "cow" while JavaScript is the English language. It's important to have a strong grasp of JavaScript to be successful in ReactJS. One is very unlikely to master ReactJS professionally without having the proper foundation of JavaScript. No matter how much knowledge I might have about the topic, I won’t be able to express myself properly if I don't know the fundamentals of the language. + +### How much is enough? + +In my experience, when you start your ReactJS journey, you should already be familiar with: + +* variables +* data types +* string methods +* loops +* conditionals + +You should be familiar with these specifically in JavaScript. But these are just the bare minimum prerequisites. When you try to create a simple React app, you'll inevitably need to handle events. So, the concept of normal functions, function expressions, statements, arrow function, the difference between an arrow function and a regular function, and the lexical scoping of `this` keyword in both types of function is really important. + +But the question is, what if I have to create a complex app using ReactJS? + +### Get inspired + +Handling events, spread operators, destructuring, named imports, and default imports in JavaScript will help you understand the working mechanism of React code. + +Most importantly, you must understand the core concepts behind JavaScript itself. JavaScript is asynchronous by design. Don't be surprised when code appearing at the bottom of a file executes before code at the top of the file does. Constructs like promises, callbacks, async-await, map, filter, and reduce, are the most common methods and concepts in ReactJS, especially when developing complex applications. + +The main idea is to be good in JavaScript so you can reduce the complexity of your ReactJS journey. + +### Getting good + +It's easy for me to say what you need to know, but it's something else entirely for you to go learn it. Practicing a lot of JavaScript is essential, but you might be surprised that I don't think it means you necessarily have to wait until you master it. There are certain concepts that are important beforehand, but there's a lot you can learn as you go. Part of practicing is learning, so you get started with JavaScript and even with some of the basics of React, as long as you move at a comfortable pace and understand that doing your "homework" is a requirement before you attempt anything serious. + +### Get started with JavaScript now + +Don't bother waiting until you cover all aspects of JavaScript. That's never going to happen. If you do that, you'll get trapped in that forever-loop of learning JavaScript. And you all know how constantly evolving and rapidly changing the tech field is. If you want to start learning JavaScript, try reading Mandy Kendall's introductory article [Learn JavaScript by writing a guessing game][2]. It's a great way to get started quickly, and once you see what's possible I think you're likely to find it difficult to stop. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/learn-javascript-before-reactjs + +作者:[Sachin Samal][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/sacsam005 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/OSDC_women_computing_5.png +[2]: https://opensource.com/article/21/1/learn-javascript From ffa51544fb6cf72ed0c6ba0519447ac6b7e385ef Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 21 Jul 2022 02:07:21 +0800 Subject: [PATCH 0462/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220720=20A=20Beginners=20Manual=20To=20Docker=20De?= =?UTF-8?q?sktop=20For=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ners Manual To Docker Desktop For Linux.md | 770 ++++++++++++++++++ 1 file changed, 770 insertions(+) create mode 100644 sources/tech/20220720 A Beginners Manual To Docker Desktop For Linux.md diff --git a/sources/tech/20220720 A Beginners Manual To Docker Desktop For Linux.md b/sources/tech/20220720 A Beginners Manual To Docker Desktop For Linux.md new file mode 100644 index 0000000000..1b4cad73ad --- /dev/null +++ b/sources/tech/20220720 A Beginners Manual To Docker Desktop For Linux.md @@ -0,0 +1,770 @@ +[#]: subject: "A Beginners Manual To Docker Desktop For Linux" +[#]: via: "https://ostechnix.com/docker-desktop-for-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A Beginners Manual To Docker Desktop For Linux +====== +How to use Docker Desktop to create and manage containers in Linux + +This comprehensive guide explains **what is Docker Desktop** and how to **install Docker Desktop in Linux** and how to **use Docker Desktop to create and manage containers** in Linux. + +### Introduction + +The use of virtualization technologies is rapidly increasing every year. There are two main types of virtualization technologies. They are **Container-based** virtualization and **Hypervisor-based** virtualization. + +Of these two types, Container-based virtualization is able to provide a more lightweight and efficient virtual environment. + +**[Docker][1]** is a most popular Container-based, OS-level virtualization platform that allows you to build, ship, and run any app, anywhere. + +Before Docker came along, the development process consists of various tools and it was bit difficult to manage and maintain. Thanks to Docker, the development task is a breeze now. + +Initially the Docker was available as a command-line program only. It is now also available as GUI version called **"Docker Desktop"**(i.e. Docker GUI). + +### What Is Docker Desktop? + +Docker Desktop is a graphical program used to create, run and manage Docker containers. Using Docker Desktop, we can setup a complete Docker development environment easily and quickly, with couple mouse clicks. + +Docker Desktop GUI provides a few important advantages. Docker Desktop for Linux runs a virtual machine. You might wonder why is that. Here are a few reasons. + +Docker Desktop for Linux runs a VM to provide **consistent experience** across different OSs. Since it runs a VM, it is possible to **use new Kernel features**. + +Another advantage is **enhanced security**. Some users may intentionally push malicious images in public repositories and trick the users to pull such images. Since Docker Desktop runs a VM, the malware is restricted to the VM and also the malware has no way to access the host. + +Docker Desktop VM uses `virtiofs`, a shared filesystem that allows the containers to access a shared directory in the host system. The developers of Docker Desktop claims that near **native file system performance** can be achieved with virtiofs when you allocate right resources to the VM. + +Docker Desktop consist of the following components: + +* Docker Engine, +* Docker CLI Client, +* Docker Compose, +* Latest version of [Kubernetes][2], +* Credential helper to keep Docker login credentials safe. + +Docker Desktop is a cross-platform application that works under Linux, macOS and Windows. + +### Docker Desktop Features + +The following are the important key features of Docker Desktop. + +* Setup complete Docker development environment, +* Containerize and share any app on any cloud platforms, in different languages and frameworks, +* Built-in latest Kubernetes version, +* Automatic updates, +* Toggle between Linux and Windows dev environments to build apps on Windows platforms, +* Fast performance, +* Supports volume mounting for persistent data storage and sharing code, +* Cross-platform. + +### Docker Desktop Requirements + +To install and configure Docker Desktop, your Linux system must meet the following minimum requirements. + +1. 64 bit Linux. +2. The Kernel version should be 3.10 or above. +3. An user account with `sudo` privileges. +4. VT (virtualization technology) support enabled on your system BIOS. [Read: [How To Find If A CPU Supports Virtualization Technology (VT)][3]] +5. Your system should be connected to Internet. + +#### Check Linux kernel Version And Architecture + +To view the Kernel and architecture details, run the following command from the Terminal: + +``` +$ uname -a +``` + +**Sample Output:** + +``` +Linux ubuntu2204 5.15.0-41-generic #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux +``` + +As you see in the above output, my Ubuntu system's kernel version is **5.15.0-41-generic**and my Ubuntu system's architecture is **64 bit** (**x86_64 x86_64 x86_64 GNU/Linux**). Check the bold letters in the above result. + +Well, the Kernel version is higher than the minimum requirement, and the arch is 64 bit. So, we can install and use Docker desktop without any problems. + +#### Enable KVM Virtualization Support (VT-X) + +If your host system supports VT-X, the kvm module will be automatically loaded. + +If it is not loaded for any reason, you can manually load the KVM kernel module using the following commands: + +On Intel CPU: + +``` +$ modprobe kvm_intel +``` + +On AMD CPU: + +``` +$ modprobe kvm_amd +``` + +To check if KVM modules are enabled, run: + +``` +$ kvm-okINFO: /dev/kvm existsKVM acceleration can be used +``` + +You can also do the same using `lsmod` and `grep` commands like below: + +``` +$ lsmod | grep kvm +kvm_intel 364544 0 +kvm 1003520 1 kvm_intel +``` + +Finally, we must do one last thing. We should add our user to `kvm` group in order to access the `/dev/kvm` device. To do so, run: + +``` +$ sudo usermod -aG kvm $USER +``` + +Reboot your system to take effect the changes. + +Let us check the current ownership of /dev/kvm using command: + +``` +$ ls -al /dev/kvm +crw-rw----+ 1 root kvm 10, 232 Jul 14 13:31 /dev/kvm +``` + +That's it. We've done all prerequisites for Docker desktop installation. Let us go ahead and install Docker Desktop in Ubuntu Linux. + +### Install Docker Desktop In Linux + +Docker Desktop is currently packaged for DEB and RPM-based systems. Here, we will see how to install Docker Desktop in Debian 11, Fedora 36 and Ubuntu 22.04 LTS desktop editions. + +#### 1. Install Docker Desktop In Debian 11 + +First of all, update your Debian system. + +##### 1.1. Update Debian + +Open your Terminal window and run the following commands: + +``` +$ sudo apt update +``` + +``` +$ sudo apt full-upgrade +``` + +##### 1.2. Add Docker Repository + +Install the necessary certificates to allow apt package manager to use a repository over HTTPS. + +To do so, run: + +``` +$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release +``` + +Next, add Docker's official GPG key by running the following commands: + +``` +$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +``` + +Add the Docker official repository: + +``` +$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +Update Debian sources list using command: + +``` +$ sudo apt update +``` + +##### 1.3. Install Docker Desktop For Linux + +Download latest Docker Desktop DEB package from the official **[release][4]** page. + +``` +$ wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-amd64.deb +``` + +And then install Docker Desktop on Debian using command: + +``` +$ sudo apt install ./docker-desktop-4.10.1-amd64.deb +``` + +##### 1.4. Start Docker Desktop Service + +Run the following commands to allow Docker Desktop service to start automatically at every system reboot. + +``` +$ systemctl --user enable docker-desktop +``` + +``` +$ systemctl --user start docker-desktop +``` + +The first command will enable the docker-desktop service to start automatically on system reboot. The second command will start the service if it is not started already. + +##### 1.5. Check Docker Version + +Docker Desktop bundle installs both Docker Engine and Compose. Let us check its version docker engine version. + +To check docker version, run: + +``` +$ docker --version +Docker version 20.10.17, build 100c701 +``` + +To display the detailed output, run: + +``` +$ docker version +``` + +**Sample output:** + +``` +Client: Docker Engine - Community + Cloud integration: v1.0.24 + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c701 + Built: Mon Jun 6 23:02:46 2022 + OS/Arch: linux/amd64 + Context: desktop-linux + Experimental: true + +Server: Docker Desktop 4.10.1 (82475) + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b842 + Built: Mon Jun 6 23:01:23 2022 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: v1.1.2-0-ga916309 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +``` + +Check Docker compose version: + +``` +$ docker compose version +Docker Compose version v2.6.1 +``` + +![Check Docker Engine And Docker Compose Version][5] + +Please note that you will get the details of Docker Desktop only after starting it. + +#### 2. Install Docker Desktop In Fedora 36 + +Make sure you are running an up-to-date Fedora 36 version. + +##### 2.1. Update Fedora + +To update Fedora, open your Terminal window and run the following command: + +``` +$ sudo dnf --refresh update +``` + +##### 2.2. Add Docker Repository + +Install the `dnf-plugins-core` package (which provides the commands to manage your DNF repositories) and set up the repository. + +``` +$ sudo dnf -y install dnf-plugins-core +``` + +``` +$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo +``` + +##### 2.3. Install Docker Desktop For Linux + +Download the latest Docker Desktop RPM package from the official **[release][6]** page. + +``` +$ wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-x86_64.rpm +``` + +And then install Docker Desktop on Fedora using command: + +``` +$ sudo dnf install ./docker-desktop-4.10.1-x86_64.rpm +``` + +##### 2.4. Start Docker Desktop Service + +Allow Docker Desktop service to start automatically at every system reboot by running the following commands: + +``` +$ systemctl --user enable docker-desktop +``` + +``` +$ systemctl --user start docker-desktop +``` + +The first command will enable the docker-desktop service to start automatically on system reboot. The second command will start the service if it is not started already. + +##### 2.5. Check Docker Version + +To check docker version, run: + +``` +$ docker --version +``` + +To display the detailed output, run: + +``` +$ docker version +``` + +Please note that you will get the details of Docker Desktop only after starting it. + +Check Docker compose version: + +``` +$ docker compose version +``` + +#### 3. Install Docker Desktop In Ubuntu 22.04 LTS + +The following steps are tested in Ubuntu 22.04 LTS desktop edition. + +##### 3.1. Update Ubuntu + +Open your Terminal, and run the following commands one by one: + +``` +$ sudo apt update +``` + +``` +$ sudo apt full-upgrade +``` + +##### 3.2. Add Docker Repository + +Install the necessary certificates and to allow apt package manager to use a repository over HTTPS using command: + +``` +$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release +``` + +Next, add Docker's official GPG key by running the following commands: + +``` +$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +``` + +Add the Docker official repository: + +``` +$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +Update Ubuntu sources list using command: + +``` +$ sudo apt update +``` + +##### 3.3. Install Docker Desktop + +Download latest Docker Desktop DEB package from the official **[release][7]** page. + +``` +$ wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-amd64.deb +``` + +Run the following command to install Docker Desktop: + +``` +$ sudo apt install ./docker-desktop-4.10.1-amd64.deb +``` + +At the end of the installation, you will receive an error message like below. + +``` +[...] +N: Download is performed unsandboxed as root as file '/home/ostechnix/docker-desktop-4.10.1-amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) +``` + +You can safely ignore this error and continue the subsequent steps. + +##### 3.4. Start Docker Desktop Service + +Run the following commands to allow Docker Desktop service to start automatically at every system reboot. + +``` +$ systemctl --user enable docker-desktop +``` + +``` +$ systemctl --user start docker-desktop +``` + +The first command will enable the docker-desktop service to start automatically on system reboot. The second command will start the service if it is not started already. + +##### 5.5. Check Docker Version + +To check docker version, run: + +``` +$ docker --version +``` + +If you want to display detailed output, run: + +``` +$ docker version +``` + +Please note that you will get the details of Docker Desktop only after starting it. + +Check Docker compose version: + +``` +$ docker compose version +``` + +### Getting Started With Docker Desktop + +Launch Docker Desktop either from Dash or Menu. + +When you launch the Docker Desktop for the first time, you will prompted to accept the Docker desktop service agreement. + +![Accept Docker Desktop Service Agreement][8] + +Give Docker a few seconds to start all necessary services. After a few seconds, you will be pleased with the Docker Desktop interface. + +This is how Docker Desktop main dashboard looks like in my Ubuntu 22.04 LTS desktop. + +![Docker Desktop Dashboard][9] + +You will also see the Docker menu icon in the task bar. Just click on the Docker menu icon to display the drop-down menu. + +![Docker Menu][10] + +From the Docker menu, you can + +* View the running state of Docker Desktop, +* Open the Docker dashboard, +* Sign-in to Docker Hub, +* Access Docker Desktop settings, +* Check for Docker Desktop updates, +* Troubleshoot Docker Desktop, +* View Docker Desktop basic information, +* Display Docker Desktop documentation, +* Display Docker Desktop quick start guide, +* Access Docker Hub, +* Pause, Restart and Quit Docker Desktop. + +#### Understanding Docker Desktop Interface + +Docker Desktop UI is very simple and easy to understand. + +##### Top Pane + +On the **top pane**, you will see the following tabs: + +* Troubleshooting Docker Desktop, +* Docker Desktop Settings, +* Sign-in option to Docker hub. + +![Docker Desktop Top Pane][11] + +**Troubleshooting Section:** + +In this section, you will have the options to, + +* Restart Docker Desktop, +* Get help with Docker Desktop, +* Reset Kubernetes cluster, +* Clean/purge data, +* Reset Docker Desktop to factory defaults. + +![Troubleshooting Section][12] + +**Settings Section:** + +The Settings section is divided into a few sub-sections. + +![Docker Desktop Settings][13] + +Under each section, you can adjust or set various important settings as listed below. + +* General - In this section, you can enable or disable the following options by checking the respective check boxes. * Start Docker Desktop at user log in. * Send Docker Desktop usage statistics. * Show weekly tips related to Docker Desktop usage. * Open Docker Desktop Dashboard at startup. * Enable Docker Compose v1/V2 compatibility mode. +* Resources - In this section, you can configure the following options. * Set number of CPU cores, RAM size, SWAP size, Disk image size and Disk image location etc. * Add shared folders. By default, /home/user directory is allowed to mount into the Docker containers. * Configure proxy settings. * Configure Docker network. Docker uses IPv4 for internal network connection between contianers. The default subnet for Docker containers is 192.168.65.0/24. +* Docker Engine - In this section, you can configure the Docker daemon. +* Experimental Features - Sign-up for experimental features and developer preview program. +* Kubernetes - Docker Desktop includes a standalone Kubernetes. In this section, you can enable/disable Kubernetes cluster. +* Software Updates - Configure software updates. +* Extensions - In this section, you can do the following: * Enable/disable Docker extensions, * Allow only extensions distributed through Docker marketplace, * Show Docker Desktop Extensions system containers when using Docker commands. + +**Sign-in Section:** + +This section allows you to sign to the Docker hub. Before signing in to the Docker hub, you must initialize credential store. The details on initializing credential store are found [here][14]. + +##### Left Pane + +On the left pane, you will see the following tabs: + +* Containers - Shows the running containers. +* Images - Shows the list of Dockers images on your local disk. +* Volumes - Shows List of Docker volumes for persistent storage. +* Dev Environments - Create development environments instantly and share code with your team. It is good for team collaboration. This feature is still in beta. +* Add Extensions - Install third-party extensions to extend the functionality of Docker Desktop. + +![Docker Desktop Left Pane][15] + +##### Bottom Pane + +The bottom pane shows the details of Docker engine status(running or stopped), version, RAM and CPU usage. And also whether you're logged into the Docker Hub. + +#### Run A Sample Container + +We haven't downloaded any Docker images yet. Let us download a docker image and create a container based on the downloaded image. + +Open your Terminal and run the following command: + +``` +$ docker run -d -p 80:80 docker/getting-started +``` + +This will pull the container named "getting-started" from the official docker repository. + +Here, + +* -d - Run container in detached mode(in the background). +* -p 80:80 - Map port 80 of the host to port 80 in container. +* getting-started - name of the docker image. + +Now go back to the Docker dashboard. Under the Containers section (on left pane), you will see the new container is running. + +![Run Container In Docker Desktop][16] + +From here, you can stop, restart, stop, and delete container. No need to run commands in Terminal! Everything can be done via the Docker Desktop dashboard. + +#### View Docker Images + +You can view all Docker images that you've downloaded under the **Images** section. + +![View Docker Images][17] + +The three horizontal dots button shows the additional menu options to inspect, pull, push to hub and remove the Docker image. To display or view the buttons, either select the Image or hover over the Image. + +![View Menu Options For Docker Images][18] + +#### Create A New Docker Container + +To create a new Docker Container from an existing Docker image, go to the Images section and simply hover the mouse over any listed Docker images under the Images section, and click the "Run" button. + +You can fill up the optional values such as the name of the Container, the host port that you want to map to container port, the Volume and Container path, and enter the environment variables etc. + +![Create New Docker Container][19] + +Once the Container is created, you can access it under Containers section. + +#### Delete Containers + +Go to the Containers section. Hover over or select the image you want to delete and click the "Delete" button. + +![Delete Docker Container][20] + +#### Delete Docker Images + +Make sure the images you're about to delete is not used by any running container. + +Go to the Images section and select or hover over the Docker Image, and click the three horizontal dots and choose "Remove". + +![Delete Docker Image][21] + +### Login To Docker Hub + +Docker Hub is a centralized place where you can build, share and run secure applications. Before signing in to Docker Hub, you must initialize credentials store. + +Docker Desktop uses **pass** to store credentials in gpg2-encrypted files. + +Generate a gpg key using command: + +``` +$ gpg --generate-key +``` + +Enter the Real name, Email id and a Passphrase to protect the gpg key. Once the key is generated, you will see an output like the following: + +``` +[...] +public and secret key created and signed. + +pub rsa3072 2022-07-15 [SC] [expires: 2024-07-14] + F2TF3R7GG3961252CA9BB628824DDDD883F652786 +uid Senthilkumar +sub rsa3072 2022-07-15 [E] [expires: 2024-07-14] +``` + +Make a note of this pub key - **F2TF3R7GG3961252CA9BB628824DDDD883F652786** + +Now initialize `pass` by running the following command: + +``` +$ pass init F2TF3R7GG3961252CA9BB628824DDDD883F652786 +mkdir: created directory '/home/ostechnix/.password-store/' +Password store initialized for F2TF3R7GG3961252CA9BB628824DDDD883F652786 +``` + +Once the pass is initialized, click the Sign in button on the Docker Desktop to login to your Docker hub account. A new browser window will open. Enter your Docker username and password and click Continue. + +![Login To Docker Hub][22] + +Click Open Link to allow Docker Hub site to open Docker Desktop. + +![Allow Docker Hub Site To Open Docker Desktop Application][23] + +That's it. You're now logged into your Docker Hub account. + +![Logged-in To Docker Hub][24] + +### Install Extensions + +The extensions are used to extend the functionality of Docker Desktop. The extensions are nothing but some third-party tools such as Portainer, Tailscale etc. + +To install an extension, click "Add Extensions" button on left pane. You will be redirected to the Extensions marketplace where you can find the list of available extensions. Simply click "Install" button next to the respective extension. + +![Install Docker Extension][25] + +You will be prompted to enter the passphrase of the GPG key that you generated when signing in to the Docker Hub in the previous step. Just enter it and wait a few seconds to complete the installation. + +Once the extension is installed, you will see under the "Add Extensions" section. + +![Portainer Extension In Docker Desktop][26] + +Click "Open" to setup Portainer. By default, the local Docker environment which Portainer is running in is connected. If you want to connect to different environment(E.g. Azure or Kubernetes), choose "Add Environments" button. I go with the default local Docker environment. + +![Select Local Environment][27] + +That's it. Now you can start using Portainer to manage your Docker Images, containers, volumes and perform other container management operations via Portainer UI. + +![Portainer GUI][28] + +### Upgrade Docker Desktop + +When a new Docker Desktop version is available, the Docker UI will display a notification. + +To upgrade Docker Desktop to latest available version, simply download the new version and install it like below. + +``` +$ sudo apt-get install ./docker-desktop--.deb +``` + +On RPM-based systems, first remove the existing version and then download the new version and install it. + +``` +$ sudo dnf remove docker-desktop + +$ sudo dnf install ./docker-desktop--.rpm +``` + +### Uninstall Docker Desktop + +To remove Docker Desktop on RPM-based systems, run: + +``` +$ sudo dnf remove docker-desktop +``` + +On DEB-based systems: + +``` +$ sudo apt remove docker-desktop +``` + +``` +$ sudo apt purge docker-desktop +``` + +Finally, remove the unwanted configuration and data files, docker-cli symlink and purge the remaining systemd service files. + +``` +$ rm -r $HOME/.docker/desktop +``` + +``` +$ sudo rm /usr/local/bin/com.docker.cli +``` + +### Conclusion + +In this Docker Desktop manual, we discussed what is Docker Desktop, its features and how to install Docker Desktop in Debian, Fedora and Ubuntu operating systems. We also looked at how to use Docker Desktop to create, run and manage Docker containers. + +Even though Docker CLI is easy to use, some users, especially the newbies, might prefer Docker GUI to manage the Docker containers. If you're one of them, Docker Desktop is a perfect choice. + +**Resource:** + +* [Docker Desktop Official Documentation][29] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/docker-desktop-for-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/getting-started-with-docker/ +[2]: https://ostechnix.com/introduction-to-kubernetes/ +[3]: https://ostechnix.com/how-to-find-if-a-cpu-supports-virtualization-technology-vt/ +[4]: https://docs.docker.com/desktop/release-notes/ +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Check-Docker-Engine-And-Docker-Compose-Version.png +[6]: https://docs.docker.com/desktop/release-notes/ +[7]: https://docs.docker.com/desktop/release-notes/ +[8]: https://ostechnix.com/wp-content/uploads/2022/07/Accept-Docker-Desktop-Service-Agreement.png +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Desktop-Dashboard.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Menu.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Desktop-Top-Pane.png +[12]: https://ostechnix.com/wp-content/uploads/2022/07/Troubleshooting-Section.png +[13]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Desktop-Settings.png +[14]: https://docs.docker.com/desktop/linux/#credentials-management +[15]: https://ostechnix.com/wp-content/uploads/2022/07/Docker-Desktop-Left-Pane.png +[16]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Container-In-Docker-Desktop.png +[17]: https://ostechnix.com/wp-content/uploads/2022/07/View-Docker-Images.png +[18]: https://ostechnix.com/wp-content/uploads/2022/07/View-Menu-Options-For-Docker-Images.png +[19]: https://ostechnix.com/wp-content/uploads/2022/07/Create-New-Docker-Container.png +[20]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Docker-Container.png +[21]: https://ostechnix.com/wp-content/uploads/2022/07/Delete-Docker-Image.png +[22]: https://ostechnix.com/wp-content/uploads/2022/07/Login-To-Docker-Hub.png +[23]: https://ostechnix.com/wp-content/uploads/2022/07/Allow-Docker-Hub-Site-To-Open-Docker-Desktop-Application.png +[24]: https://ostechnix.com/wp-content/uploads/2022/07/Logged-in-To-Docker-Hub.png +[25]: https://ostechnix.com/wp-content/uploads/2022/07/Install-Docker-Extension.png +[26]: https://ostechnix.com/wp-content/uploads/2022/07/Portainer-Extension-In-Docker-Desktop.png +[27]: https://ostechnix.com/wp-content/uploads/2022/07/Select-Local-Environment.png +[28]: https://ostechnix.com/wp-content/uploads/2022/07/Portainer-GUI.png +[29]: https://docs.docker.com/desktop/ From 22227517b0f728ecde5a6e1a1a8c20afaba8310e Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 05:02:39 +0800 Subject: [PATCH 0463/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220720?= =?UTF-8?q?=20Fedora=20and=20Parental=20Controls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220720 Fedora and Parental Controls.md --- .../20220720 Fedora and Parental Controls.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 sources/tech/20220720 Fedora and Parental Controls.md diff --git a/sources/tech/20220720 Fedora and Parental Controls.md b/sources/tech/20220720 Fedora and Parental Controls.md new file mode 100644 index 0000000000..f068be7a53 --- /dev/null +++ b/sources/tech/20220720 Fedora and Parental Controls.md @@ -0,0 +1,120 @@ +[#]: subject: "Fedora and Parental Controls" +[#]: via: "https://fedoramagazine.org/fedora-36-and-parental-controls/" +[#]: author: "Kevin Degeling https://fedoramagazine.org/author/eonfge/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora and Parental Controls +====== + +![Two cudly penguins][1] + +Photo by [Torsten Dederichs][2] on [Unsplash][3], font is [josefin-slab][4] + +We all have people around us, whom we hold dear. Some of them might even rely on you to keep them save. And since the world is constantly changing, that can be a challenge. No more is this apparent than with children, and Linux has long been lacking simple tools to help parents. But that is changing, and here we’ll talk about the new parental controls that Fedora Linux provides. + +### Users and permissions + +First, it’s important to know that any Linux system has a lot of options for user, group, and permission management. Many of these advanced tools are aimed at [professional users][5], though, and we won’t be talking about those here. In this article we’ll focus on home users. + +Additionally, parental controls are not just useful for parents. You can use them when helping family members who are technically illiterate. Or perhaps you want to configure a basic workstation for simple administrative tasks. Either way, parental control can offer many security and reliability benefits. + +#### Creating users + +From the _Settings_ panel, you can navigate to _Users_ and from there you can select _Add User…_ (after unlocking) to add a new user. You can give them a personal name, a username and their own icon. You can even decide if somebody else should also be an administrator. + +![Adding a user to your machine is as simple as going to settings, users, and clicking Add User…][6] + +You can also set a default password, or even allow a computer to automatically log in. You should help others understand digital security and the value of passwords, but for some people it might be better to just auto-login. + +#### Admin rights + +When you give somebody administrator rights, that user will have the same powers as you have on the system. They will be able to make any system change they prefer, and they can also add and remove users themselves. + +Users who do not have admin rights, will not be able to make fundamental changes to the computer. They can still use all applications that are already on the system, and they can even download applications from the internet to their home folder. Still, they are ultimately blocked from doing anything that could damage the system. + +![Accessing the user-directories of others. Only administrator users will be able to do this.][7] + +Don’t forget that as an administrator, you can always reset a password. You can also enter another user’s home directory in case you have to. As with all ‘sudo’ rights, you should be careful and you should be considerate of other’s privacy. + +### Application control + +Once one or multiple users are created, you can choose to tweak and control what applications somebody can use. This is done from within _Settings > Users_ by selecting the new user then selecting _Parental Controls_ and then _Restrict Applications._ Other options are available there, as well. + +![changing Parental Controls for a single user.][8] + +### However, there is a big caveat + +Parental controls come with a big caveat: If you want a simple home-user solution, you MUST use Flatpaks. + +The problem is as follows. The existing Linux application landscape is quite complex, and it would be almost impossible to introduce a new user-friendly application-control system this late into its life cycle. Thus, the second best solution is to ensure that the next generation of packaging has such functionality from the start. + +To use Flatpaks, you can use the Fedora’s repository, or the [Flathub repository][9]. If you want to know all the fine details about those projects, then don’t forget to read this [recent comparison][10]. + +### Compromise and limitations + +No article would be complete without mentioning the inherit limitations of the parental controls. Besides all the obvious limits of computers not knowing right from wrong, there are also some technical limits to parental controls. + +#### Parental Control’s limits + +The security that Parental Controls provides will only work as long as Fedora Linux is running in working order. One could easily bypass all controls by flashing Fedora on a USB stick and starting from a clean, root-powered, installation image. At this point, human supervision is still superior to the machine’s rules. + +Adding to that, there are the obvious issues of browsers, store fronts like Steam, and other on-line applications. You can’t block just parts of these applications. Minecraft is a great game for children, but it also allows direct communication with other people. Thus, you’ll have to constantly juggle permissions. Here too, it is better to focus on the human element instead of relying to much on the tools. + +Finally, don’t forget about protecting the privacy and well-being of others online. Blocking bad actors with [Ublock Origin][11] and/or a [DNS based blocker][12] will also help a lot. + +#### Legacy applications + +As mentioned before, Fedora and Parental Controls only work with Flatpaks. Every application that is already on the system can be started by users who otherwise don’t have the permissions. + +As a rule of thumb; If you want to share a computer with vulnerable family members, don’t install any software that’s inappropriate using the RPM Repositories. Instead, consider using a Flatpak. + +![Starting the system-wide installation of Firefox from the Terminal. The Flatpak version of Firefox though, will not start.][13] + +### Summary + +There is much that you can do to help those who are less experienced with computers. By simply giving these users their own account and using Flatpaks, you can make their lives a lot easier. Age restrictions can even offer additional benefits. But it’s not all perfect, and good communication and supervision will still be important. + +The Parental Controls will improve over time. They have been given more priority in the past few years and there are additional plans. Time-tracking is, for example planned. As the migration to Flatpaks continues, you can expect that more software will respect age-restrictions in the future. + +#### Additional US and UK resources + + * + * + + + +![Sharing Fedora Linux with Parental Controls][14] + +_So, let’s start a small collaboration here. We’ve all been younger, so how did you escape your parents’ scrutiny? And for those who are taking care of others… how are you helping others? Let’s see what we can learn from each other._ + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/fedora-36-and-parental-controls/ + +作者:[Kevin Degeling][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/eonfge/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2022/07/fedora-and-parental-control-816x345.jpg +[2]: https://unsplash.com/photos/3dDa9p4FU9U +[3]: https://unsplash.com +[4]: https://fonts.google.com/specimen/Josefin+Slab +[5]: https://fedoramagazine.org/managing-user-accounts-with-cockpit/ +[6]: https://fedoramagazine.org/wp-content/uploads/2022/07/Composition_01-1024x586.png +[7]: https://fedoramagazine.org/wp-content/uploads/2022/07/Screenshot-from-2022-07-13-19-56-52.png +[8]: https://fedoramagazine.org/wp-content/uploads/2022/07/Composition_02-1.png +[9]: https://flathub.org/home +[10]: https://fedoramagazine.org/comparison-of-fedora-flatpaks-and-flathub-remotes/ +[11]: https://ublockorigin.com/ +[12]: https://avoidthehack.com/best-dns-privacy +[13]: https://fedoramagazine.org/wp-content/uploads/2022/07/Screenshot-from-2022-07-13-19-39-12-1024x524.png +[14]: https://fedoramagazine.org/wp-content/uploads/2022/07/desktop-1024x524.png From 0fcf680823436483764d2bd360700de45d542eb9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 21 Jul 2022 08:27:28 +0800 Subject: [PATCH 0464/3123] translated --- ...nitor your Linux firewall with nftwatch.md | 82 ------------------- ...nitor your Linux firewall with nftwatch.md | 82 +++++++++++++++++++ 2 files changed, 82 insertions(+), 82 deletions(-) delete mode 100644 sources/tech/20220718 Monitor your Linux firewall with nftwatch.md create mode 100644 translated/tech/20220718 Monitor your Linux firewall with nftwatch.md diff --git a/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md b/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md deleted file mode 100644 index 9f623afde7..0000000000 --- a/sources/tech/20220718 Monitor your Linux firewall with nftwatch.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Monitor your Linux firewall with nftwatch" -[#]: via: "https://opensource.com/article/22/7/nftwatch-linux-firewall" -[#]: author: "Kenneth Aaron https://opensource.com/users/flyingrhino" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Monitor your Linux firewall with nftwatch -====== -I created the Linux nftwatch command to watch firewall traffic stats. - -Netfilter tables ([nftables][4]) is the default firewall shipped with modern Linux distros. It's available on Fedora and RHEL 8, the latest Debian, and many others. It replaces the older iptables that was bundled in earlier distro releases. It's a powerful and worthy replacement for iptables, and as someone who uses it extensively, I appreciate its power and functionality. - -One of the features of nftables is the ability to add counters to many elements, such as rules. These are enabled on demand. You need to explicitly ask for it on a per line basis using the "counter" argument. I have them enabled for specific rules in my firewall, which gives me visibility into those rules. - -This got me thinking. How can I look at these counters in real time? At first I tried "watch" which allows things like refresh rate, but I didn't like the default format and it wasn't scrollable. I found using `head` and `tail` and `awk` less than ideal. A user-friendly solution didn't exist. So I wrote my own, which I'd like to share with the open source community. - -### Introducing nftwatch on Linux - -My solution, which I call nftwatch, does a few things: - -* It reorders and reformats the nftables output to make it more readable. -* It allows scrolling the output up or down. -* Its user-defined refresh rate (can be changed in real time). -* It can pause the display. - -Instead of a dump of a table, you get output that shows activity for each rule: - -![Image of nftwatch][5] - -(Kenneth Aaron, CC BY-SA 4.0) - -You can download it here from its [Git repository][6]. - -It is 100% python, 100% open source, and 100% free. It ticks all the boxes for free, quality programs. - -### Install nftwatch on Linux - -Here are the manual install instructions: - -1. Clone or download the project from the git repository. -2. Copy `nftwatch.yml` to `/etc/nftwatch.yml`. -3. Copy `nftwatch` to `/usr/local/bin/nftwatch` and grant it executable permissions using `chmod a+x`. -4. Use `nftwatch` with no args to run it. -5. See `nftwatch -m` for the man page. - -You can also run nftwatch without the [YAML][7] config file, in which case it uses builtin defaults. - -### Usage - -The nftwatch command displays nftables rules. Most of the controls are designed for this purpose. - -Arrow keys and the equivalent Vim keypresses control scrolling. Use the **F** or **S** key to change the refresh speed. Use the **P** key to pause the display. - -Run `nftwatch -m` for full instructions, and a list of interactive key controls. - -### A new view of your firewall - -Firewalls can seem obtuse and vague even if you spend time to configure them. Aside from extrapolating indicators from log entries, it's hard to tell what kind of activity your firewall is actually seeing. With nftwatch, you can see your firewall at work, and ideally gain a better understanding of the kind of traffic your network has to deal with on a daily basis. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/nftwatch-linux-firewall - -作者:[Kenneth Aaron][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/flyingrhino -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png -[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables?extIdCarryOver=true&sc_cid=701f2000001OH79AAG#getting_started -[5]: https://opensource.com/sites/default/files/2022-07/nftwatch-sample.png -[6]: https://github.com/flyingrhinonz/nftwatch](https://github.com/flyingrhinonz/nftwatch -[7]: https://opensource.com/article/21/9/yaml-cheat-sheet diff --git a/translated/tech/20220718 Monitor your Linux firewall with nftwatch.md b/translated/tech/20220718 Monitor your Linux firewall with nftwatch.md new file mode 100644 index 0000000000..c20c2a32b8 --- /dev/null +++ b/translated/tech/20220718 Monitor your Linux firewall with nftwatch.md @@ -0,0 +1,82 @@ +[#]: subject: "Monitor your Linux firewall with nftwatch" +[#]: via: "https://opensource.com/article/22/7/nftwatch-linux-firewall" +[#]: author: "Kenneth Aaron https://opensource.com/users/flyingrhino" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 nftwatch 监控你的 Linux 防火墙 +====== +我创建了 Linux nftwatch 命令来观察防火墙的流量统计。 + +Netfilter 表([nftables][4])是现代 Linux 发行版中的默认防火墙。它在 Fedora 和 RHEL 8、最新的 Debian 和许多其他版本上都有。它取代了早期发行版中捆绑的旧版 iptables。它是一个强大的、值得替代的 iptables,作为一个广泛使用它的人,我欣赏它的能力和功能。 + +nftables 的一个特点是能够为许多元素添加计数器,例如规则。这些都是按需启用的。你需要使用 “counter” 参数,在每一行明确地要求它。我为我的防火墙中的特定规则启用了这些计数器,这使我能够看到这些规则。 + +这让我开始思考。我怎样才能实时查看这些计数器?一开始我尝试了 “watch”,它允许诸如刷新率之类的东西,但我不喜欢默认格式,而且它不能滚动。我发现使用 `head` 和 `tail` 以及 `awk` 并不理想。一个用户友好的解决方案并不存在。所以我自己写了一个,我想与开源社区分享。 + +### Linux 上的 nftwatch 介绍 + +我的解决方案,我称之为 nftwatch,做了几件事。 + +* 它对 nftables 的输出进行重新排序和改写,使其更具有可读性。 +* 它允许向上或向下滚动输出。 +* 它的用户定义的刷新率(可以实时改变)。 +* 它可以暂停显示。 + +你得到的不是一个表格的转储,而是显示每个规则活动的输出。 + +![Image of nftwatch][5] + +(Kenneth Aaron,CC BY-SA 4.0) + +你可以从它的 [Git 仓库][6]下载它。 + +它是 100% 的 Python,100% 的开源,100% 的免费。它满足了所有免费的高质量程序的要求。 + +### 在 Linux 上安装 nftwatch + +以下是手动安装说明: + +1. 克隆或从 git 仓库下载该项目。 +2. 将 `nftwatch.yml` 复制到 `/etc/nftwatch.yml`。 +3. 将 `nftwatch` 复制到 `/usr/local/bin/nftwatch` 并使用 `chmod a+x` 授予其可执行权限。 +4. 使用 `nftwatch`,不带任何参数来运行它。 +5. 参见 `nftwatch -m` 的手册。 + +你也可以在没有 [YAML][7] 配置文件的情况下运行 nftwatch,在这种情况下它使用内置的默认值。 + +### 使用 + +nftwatch 命令显示 nftables 规则。大多数控制都是为此目的而设计的。 + +箭头键和相当于 Vim 的按键控制滚动。使用 **F** 或 **S** 键来改变刷新速度。使用 **P** 键来暂停显示。 + +运行 `nftwatch -m` 以获得完整的说明,以及交互式按键控制的列表。 + +### 防火墙的新观点 + +即使你花时间去配置防火墙,它也会显得晦涩难懂和模糊不清。除了从日志条目中推断指标外,很难判断你的防火墙实际看到的活动类型。 使用 nftwatch,你可以看到你的防火墙在工作,并且可以更好地了解你的网络每天需要处理的流量类型。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/nftwatch-linux-firewall + +作者:[Kenneth Aaron][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/flyingrhino +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png +[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables?extIdCarryOver=true&sc_cid=701f2000001OH79AAG#getting_started +[5]: https://opensource.com/sites/default/files/2022-07/nftwatch-sample.png +[6]: https://github.com/flyingrhinonz/nftwatch](https://github.com/flyingrhinonz/nftwatch +[7]: https://opensource.com/article/21/9/yaml-cheat-sheet From c16a1755822f55a39f37859a19ef13d93618b8f8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 21 Jul 2022 08:28:31 +0800 Subject: [PATCH 0465/3123] translating --- .../tech/20220719 How to Uninstall Deb Packages in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md b/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md index e25185723d..7405ebbfdc 100644 --- a/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md +++ b/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/uninstall-deb-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 0cd65cd090a53a0f3b8336031640b13a5ddbdaa0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 21 Jul 2022 08:31:09 +0800 Subject: [PATCH 0466/3123] translated --- ...anjaro and Other Arch Linux Derivatives.md | 116 ------------------ ...anjaro and Other Arch Linux Derivatives.md | 116 ++++++++++++++++++ 2 files changed, 116 insertions(+), 116 deletions(-) delete mode 100644 sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md create mode 100644 translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md diff --git a/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md b/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md deleted file mode 100644 index e24c92fc3b..0000000000 --- a/sources/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md +++ /dev/null @@ -1,116 +0,0 @@ -[#]: subject: "How to Install Discord on Manjaro and Other Arch Linux Derivatives" -[#]: via: "https://itsfoss.com/install-discord-arch-manjaro/" -[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Discord on Manjaro and Other Arch Linux Derivatives -====== - -[Discord][1] is a cross-platform application that can be used for voice calling, video calling, text messaging, and sharing media and files. - -It is extremely popular among gamers and streamers. Although, many open source projects have started using it for hosting their community discussion. You can find [official Discord servers][2] for such open source communities. - -Discord can be accessed straight from your web browser. Installing the official desktop client gives you system notifications and focused communication rather than fumbling for the Discord tab among multiple opened tabs. - -While Discord provides Deb files for Ubuntu, there is no such ready-to-use package for Arch Linux. - -Fret not. In this tutorial, I will show you two methods to install Discord on [Arch Linux][3] and its derivatives. - -* Installing Discord via [Pacman][4] (CLI method, valid for all Arch-based distributions) -* Installing Discord via [Pamac][5] (GUI method, valid for Manjaro and some other Arch-based distros that use Pamac tool) - -### Method 1: Installing Discord via pacman command - -First, update your system as it is a rolling release distribution and [do not support partial upgrades][6]. - -Enter the following [pacman command][7] in the terminal to [update your Arch Linux system][8]. - -``` -sudo pacman -Syu -``` - -Now you can install Discord package via the following command. - -``` -sudo pacman -S discord -``` - -Once installed, just launch the application from the application menu and login to start using Discord. - -![Discord client in Arch Linux][9] - -**If you want to install the Nightly version of Discord** to test upcoming new features, use the following command. Do note that it may not be stable so think again if you want this version. - -``` -sudo pacman -S discord-canary -``` - -#### Removing Discord - -If you want to remove Discord, use the command below to remove it along with its dependencies and configuration files: - -``` -sudo pacman -Rns discord -``` - -If you had opted for the Nightly version, remove it using: - -``` -sudo pacman -Rns discord-canary -``` - -That’s neat. Now for folks who dislike using the terminal, there is an alternative. I will discuss that in the next section. - -### Method 2: Installing Discord via Pamac - -If you are using Arch Linux derivatives like [Manjaro Linux][10], [Garuda Linux][11], etc you have a graphical software center called Pamac. - -With this graphical tool, you can easily install new applications or remove existing ones without going into the terminal. - -Launch Pamac (Add/Remove Software) from the application menu. - -![pamac menu][12] - -Click on Updates to update your system. - -![pamac update][13] - -Now click on Browse and search for discord using the search button on the top left. Then, select the package and click apply to install. - -![Installing Discord from Pamac][14] - -You can use Pamac to uninstall the package the same way you installed it. - -I hope you find this quick tip on installing Discord on Arch-based Linux distros helpful. Let me know if you have any questions or suggestions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-discord-arch-manjaro/ - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://discord.com/ -[2]: https://discord.com/open-source -[3]: https://archlinux.org/ -[4]: https://archlinux.org/pacman/ -[5]: https://gitlab.manjaro.org/applications/pamac -[6]: https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported -[7]: https://itsfoss.com/pacman-command/ -[8]: https://itsfoss.com/update-arch-linux/ -[9]: https://itsfoss.com/wp-content/uploads/2022/06/discord.png -[10]: https://manjaro.org/ -[11]: https://garudalinux.org/ -[12]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-menu.png -[13]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-update.png -[14]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-discord.png diff --git a/translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md b/translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md new file mode 100644 index 0000000000..de3c307db8 --- /dev/null +++ b/translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md @@ -0,0 +1,116 @@ +[#]: subject: "How to Install Discord on Manjaro and Other Arch Linux Derivatives" +[#]: via: "https://itsfoss.com/install-discord-arch-manjaro/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Manjaro 和其他 Arch Linux 衍生品上安装 Discord +====== + +[Discord][1] 是一个跨平台的应用,可用于语音通话、视频通话、文本消息,以及分享媒体和文件。 + +它在游戏玩家和主播中非常流行。虽然,许多开源项目已经开始使用它来主持他们的社区讨论。你可以为这类开源社区找到[官方 Discord 服务器][2]。 + +Discord 可以直接从你的网络浏览器访问。安装官方桌面客户端可以让你获得系统通知和集中交流,而不是在多个打开的标签中摸索 Discord 标签。 + +虽然 Discord 为 Ubuntu 提供了 Deb 文件,但在 Arch Linux 上却没有这样的即用型软件包。 + +别担心。在本教程中,我将向你展示两种在 [Arch Linux][3] 及其衍生版本上安装 Discord 的方法。 + +* 通过 [Pacman][4] 安装 Discord(命令行方法,对所有基于 Arch 的发行版有效)。 +* 通过 [Pamac][5] 安装 Discord(GUI 方法,对 Manjaro 和其他一些使用 Pamac 工具的基于 Arch 的发行版有效)。 + +### 方法 1: 通过 pacman 命令安装 Discord + +首先,更新你的系统,因为它是一个滚动发布的版本,[不支持部分升级][6]。 + +在终端输入以下 [pacman 命令][7]来[更新你的 Arch Linux 系统][8]。 + +``` +sudo pacman -Syu +``` + +现在你可以通过以下命令安装 Discord 包。 + +``` +sudo pacman -S discord +``` + +安装后,只需从应用菜单中启动应用,然后登录就可以开始使用 Discord。 + +![Discord client in Arch Linux][9] + +**如果你想安装 Discord 的 Nightly 版本**来测试即将到来的新功能,请使用以下命令。请注意,它可能并不稳定,所以如果你想要这个版本,请再考虑一下。 + +``` +sudo pacman -S discord-canary +``` + +#### 删除 Discord + +如果你想删除 Discord,使用下面的命令来删除它以及它的依赖关系和配置文件: + +``` +sudo pacman -Rns discord +``` + +如果你选择的是 Nightly 版本,请使用以下命令将其删除: + +``` +sudo pacman -Rns discord-canary +``` + +这很不错。现在对于不喜欢使用终端的人来说,有一个替代方案。我将在下一节讨论这个问题。 + +### 方法 2:通过 Pamac 安装 Discord + +如果你使用 Arch Linux 的衍生产品,如 [Manjaro Linux][10]、[Garuda Linux][11] 等,你就有一个叫做 Pamac 的图形化软件中心。 + +有了这个图形化的工具,你可以轻松地安装新的应用程序或删除现有的应用,而不必进入终端。 + +从应用程序菜单中启动 Pamac(添加/删除软件)。 + +![pamac menu][12] + +点击更新来更新你的系统。 + +![pamac update][13] + +现在点击浏览,使用左上方的搜索按钮搜索 discord。然后,选择软件包并点击应用来安装。 + +![Installing Discord from Pamac][14] + +你可以用 Pamac 来卸载软件包,就像你安装它一样。 + +我希望这个关于在基于 Arch 的 Linux 发行版上安装 Discord 的快速技巧对你有帮助。如果你有任何问题或建议,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-discord-arch-manjaro/ + +作者:[Anuj Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/anuj/ +[b]: https://github.com/lkxed +[1]: https://discord.com/ +[2]: https://discord.com/open-source +[3]: https://archlinux.org/ +[4]: https://archlinux.org/pacman/ +[5]: https://gitlab.manjaro.org/applications/pamac +[6]: https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported +[7]: https://itsfoss.com/pacman-command/ +[8]: https://itsfoss.com/update-arch-linux/ +[9]: https://itsfoss.com/wp-content/uploads/2022/06/discord.png +[10]: https://manjaro.org/ +[11]: https://garudalinux.org/ +[12]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-menu.png +[13]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-update.png +[14]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-discord.png From db01ea0201313951b5f1c011e44161b2990e3d54 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 21 Jul 2022 08:51:28 +0800 Subject: [PATCH 0467/3123] translating --- .../20220718 AppFlowy- An Open-Source Alternative to Notion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md index 54a7cba1ca..f642a15f21 100644 --- a/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md +++ b/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/appflowy/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 81832ac5b5fd103e2682b2fa3cd56075bf5f8c32 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 21 Jul 2022 10:14:24 +0800 Subject: [PATCH 0468/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Yufei-Yan https://linux.cn/article-14849-1.html 辛苦了! --- ... - Getting Started With Docker In Linux.md | 202 +++++++++--------- 1 file changed, 101 insertions(+), 101 deletions(-) rename {translated/tech => published}/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md (72%) diff --git a/translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md b/published/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md similarity index 72% rename from translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md rename to published/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md index ac8e71272d..189134dae8 100644 --- a/translated/tech/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md +++ b/published/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md @@ -2,23 +2,25 @@ [#]: via: "https://ostechnix.com/getting-started-with-docker/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Yufei-Yan" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14849-1.html" -Docker 命令教程 | 在 Linux 中入门 Docker +Linux 下的 Docker 入门教程 ====== -初学者的 Docker 基本命令 +![](https://img.linux.net.cn/data/attachment/album/202207/21/101143uuwylyrrglzjfwj7.jpg) -这篇详细的 Docker 教程覆盖了核心的 **Docker 命令**,比如,如何创建新容器,运行容器,删除容器等。另外,这篇教程也解释了如何从已有的容器构建你自己的 Docker 镜像,如何移除容器和镜像。言归正传,现在开始 Docker 的基本用法。 +> 面向初学者的 Docker 基本命令指南。 + +这篇详细的 Docker 教程覆盖了核心的 **Docker 命令**,比如,如何创建新容器、运行容器、删除容器等。另外,这篇教程也解释了如何从已有的容器构建你自己的 Docker 镜像,如何移除容器和镜像。言归正传,现在开始 Docker 的基本用法。 ### Docker 安装步骤 大多数现代 Linux 操作系统都可以安装 Docker。如果还没安装过 Docker,请参考下面的步骤: -* [在 AlmaLinux,CentOS,Rocky Linux 上安装 Docker Engine 和 Docker Compose][1] +* [在 AlmaLinux、CentOS、Rocky Linux 上安装 Docker Engine 和 Docker Compose][1] * [如何在 Ubuntu 上安装 Docker 和 Docker Compose][2] ### 什么是 Docker 镜像和 Docker 容器? @@ -29,29 +31,29 @@ Docker 镜像是一个描述容器如何运行的的文件,Docker 容器是 Do 容器和主机上的其他文件是隔离的。 -当我们运行一个 Docker 容器的时候,它会使用一个被隔离出来的文件系统,这个文件系统是由一个 Docker 镜像提供的。Docker 镜像包含了运行应用程序所需要的一切东西 - 所有的依赖,配置,脚本,二进制文件等等。 +当我们运行一个 Docker 容器的时候,它会使用一个被隔离出来的文件系统,这个文件系统是由一个 Docker 镜像提供的。Docker 镜像包含了运行应用程序所需要的一切东西 - 所有的依赖、配置、脚本、二进制文件等等。 -镜像也包含容器所需要的其他配置项,比如说环境变量,运行的默认命令,以及其他元数据。 +镜像也包含容器所需要的其他配置项,比如说环境变量、默认运行的命令,以及其他元数据。 ### Linux 下的 Docker 入门 -下面的所有步骤都已在 Ubuntu 22.04,20.04 以及 18.04 LTS 服务器版本中测试通过。后续小节中提供的步骤对于所有 Linux 平台都是通用的。比如,在基于 RHEL 的系统中(比如 AlmaLinux)可以运行相同的命令。 +下面的所有步骤都已在 Ubuntu 22.04、20.04 以及 18.04 LTS 服务器版本中测试通过。后续小节中提供的步骤对于所有 Linux 平台都是通用的。比如,在基于 RHEL 的系统中(比如 AlmaLinux)可以运行相同的命令。 -#### 1. 搜索 Docker 镜像 +#### 1、搜索 Docker 镜像 -我们可以从叫做 [Docker hub][3] 的 docker 官方库获得镜像,或者我们也可以制作自己的镜像。 +我们可以从叫做 [Docker hub][3] 的 Docker 官方库获得镜像,或者我们也可以制作自己的镜像。 -有些人可能不清楚,Docker hub 是一个线上的中心化仓库,所有的 Docker 用户在上面构建,测试,然后保存他们的 Docker 镜像。Docker hub 有数以万计的 Docker 镜像,而且这个数字还在每天增长。 +有些人可能不清楚,Docker hub 是一个线上的中心化仓库,Docker 用户们在上面构建、测试、然后保存他们的 Docker 镜像。Docker hub 有数以万计的 Docker 镜像,而且这个数字还在每天增长。 -你可以从命令行通过 **“docker search”** 命令搜索任意 Docker 镜像。 +你可以从命令行通过 ``docker search` 命令搜索任意 Docker 镜像。 -比如要搜索基于 **Alpine** Linux 的 docker 镜像,运行: +比如要搜索基于 **Alpine** Linux 的 Docker 镜像,运行: ``` $ sudo docker search alpine ``` -**输出结果:** +输出结果: ![Search Docker Images][4] @@ -67,11 +69,11 @@ $ sudo docker search ubuntu $ sudo docker search nginx ``` -Docker hub 有各种各样的镜像。你能在 Docker hub 上找到一切已构建好的 Docker 镜像,比如说操作系统,应用,或者多个应用的合体(比如 LAMP 栈)。 +Docker hub 有各种各样的镜像。你能在 Docker hub 上找到各种已构建好的 Docker 镜像,比如说操作系统、应用,或者多个应用的合体(比如 LAMP 栈)。 如果你找的东西不在上面,你还可以构建一个镜像,然后通过 Docker hub 向其他人开放,或者只是自己用。 -#### 2. 下载 Docker 镜像 +#### 2、下载 Docker 镜像 从终端运行下面的命令可以下载 Ubuntu OS 的 Docker 镜像: @@ -81,7 +83,7 @@ $ sudo docker pull ubuntu 上面的这个命令会从 Docker hub 下载最新的 Ubuntu 镜像。 -**输出结果:** +输出结果: ``` Using default tag: latest @@ -108,9 +110,9 @@ $ sudo docker pull alpine ![Download Docker Images][5] -#### 3. 列出 Docker 镜像 +#### 3、列出 Docker 镜像 -所有已下载的 Docker 镜像都保存在 **/var/lib/docker** 路径下。 +所有已下载的 Docker 镜像都保存在 `/var/lib/docker` 路径下。 要查看所有已下载的 Docker 镜像,运行: @@ -118,7 +120,7 @@ $ sudo docker pull alpine $ sudo docker images ``` -**输出结果:** +输出结果: ``` REPOSITORY TAG IMAGE ID CREATED SIZE @@ -129,32 +131,29 @@ alpine latest e66264b98777 5 weeks ago 5.52MB ![List Docker Images][6] -从上面可以看出来,我已经下载了三个 Docker 镜像 - **Ubuntu** **lates**,**Ubuntu 20.04** 和 **Alpine Linux**。 +从上面可以看出来,我已经下载了三个 Docker 镜像 - Ubuntu latest、Ubuntu 20.04 和 Alpine Linux。 现在,我们看一下接下来如何从下载的镜像启动或者运行容器。 -#### 4. 运行 Docker 容器 +#### 4、运行 Docker 容器 -有两种方法我们可以启动一个容器 - 使用 Docker **镜像** **TAG** 或者 **镜像 IDImage ID**。 +有两种方法我们可以启动一个容器 - 使用 Docker 镜像的标签TAG 或者 镜像 IDImage ID。 -**TAG** 指的是一个特定的镜像快照,**镜像 IDImage ID** 是那个镜像对应的唯一识别码。 +标签指的是一个特定的镜像快照,镜像 IDImage ID 是那个镜像对应的唯一识别码。 可以查看下面这个截图: ![Docker Image Tag and ID][7] -从上面的解脱可以看到,标签tags是 **latest** 和 **“20.04”**。 +从上面的解脱可以看到,标签是 `latest` 和 `20.04`。 -* 27941809078c is the IMAGE ID of Ubuntu latest Docker image, -* 27941809078c 是 Ubuntu latest 的 Docker 镜像的镜像 IDIMAGE ID, -* 20fffa419e3a is the image id of Ubuntu 20.04 Docker image -* 20fffa419e3a 是 Ubuntu 20.04 的 Docker 镜像的镜像 ID, -* and `e66264b98777` is the image id of Alpine latest Docker image. -* 而 `e66264b98777` 是 Alpine latest 的 Docker 镜像的镜像 ID。 +* `27941809078c` 是 Ubuntu latest 的 Docker 镜像的镜像 ID, +* `20fffa419e3a` 是 Ubuntu 20.04 的 Docker 镜像的镜像 ID, +* 而 `e66264b98777` 是 Alpine latest 的 Docker 镜像的镜像 ID。 -##### 4.1. 使用标签Tag运行容器 +##### 4.1、使用标签运行容器 -下载选择好的 Docker 镜像后,运行下面的命令来启动 Docker 容器,并且通过它的标签TAG进行连接。 +下载选择好的 Docker 镜像后,运行下面的命令来启动 Docker 容器,并且通过它的标签进行连接。 ``` $ sudo docker run -t -i ubuntu:latest /bin/bash @@ -165,28 +164,29 @@ $ sudo docker run -t -i ubuntu:latest /bin/bash ``` $ sudo docker run -it ubuntu:latest /bin/bash ``` + 这里, -* -t:在 Ubuntu 容器内分配一个伪终端。 -* -i:通过从容器获取一个便准输入(STDIN),允许我们创建一个可交互的连接。 -* ubuntu:latest:标签为“latest”的 Ubuntu docker 镜像。 -* /bin/bash:新容器的 BASH shell。这个是可选项。如果你不加 shell 的话,默认的 shell 会被分配给容器。 +* `-t`:在 Ubuntu 容器内分配一个伪终端。 +* `-i`:通过从容器获取一个标准输入(STDIN),允许我们创建一个可交互的连接。 +* `ubuntu:latest`:标签为 `latest` 的 Ubuntu Docker 镜像。 +* `/bin/bash`:新容器的 BASH shell。这个是可选项。如果你不加 shell 的话,会分配默认的 shell 给容器。 启动容器后,会自动进入容器的 shell(命令行): ![Run Containers Using Tag][8] -基于最新 Ubuntu 镜像的容器现在已经启动了。所有的新容器都会被赋予一个名字和唯一的 ID。从上面的输出可以看到,那个 Ubuntu 容器的 ID 是 **2f2a5b826762**。一会儿我们会看到从哪找到容器的名字。 +基于最新 Ubuntu 镜像的容器现在已经启动了。所有的新容器都会被赋予一个名字和唯一的 ID。从上面的输出可以看到,那个 Ubuntu 容器的 ID 是 `2f2a5b826762`。一会儿我们会看到从哪找到容器的名字。 现在就可以在容器里面工作了。当你完成容器内的工作后,你可以回到主机操作系统的终端(在我这个例子中,操作系统是 Ubuntu 22.04 LTS)而不需要关掉容器(客户机)。 -##### 4.2. 从运行中的容器中分离 +##### 4.2、从运行中的容器中脱离 -使用 **CTRL+P** 然后 **CTRL+Q** 就可以从运行中的容器分离(不需要关闭)。 +使用 `CTRL+P` 然后 `CTRL+Q` 就可以从运行中的容器脱离(不需要关闭)。 现在,你就回到了你原来的主机的终端窗口。请注意,容器还在后台运行中,我们并没有关掉它。 -##### 4.3. 使用镜像 ID 运行容器 +##### 4.3、使用镜像 ID 运行容器 另一种启动容器并且连接进去的方式是通过使用镜像 ID,像下面这样: @@ -196,15 +196,15 @@ $ sudo docker run -it 20fffa419e3a /bin/bash 这里, -* 20fffa419e3a - 镜像 id +* `20fffa419e3a` - 镜像 ID -按 **CTRL+P** 然后 **CTRL+Q** 可以从当前容器中分离回到主机系统的终端。我们只是从容器中分离,但是没有让它停止。容器仍然在后台运行中。 +按 `CTRL+P` 然后 `CTRL+Q` 可以从当前容器中脱离回到主机系统的终端。我们只是从容器中脱离,但是没有让它停止。容器仍然在后台运行中。 -##### 4.4. 在分离模式中运行容器 +##### 4.4. 在脱离模式中运行容器 -在前面的小结中,我们启动了一个容器并且立刻连接了进去。然后当容器中的工作结束后,我们从容器中分离了出来 +在前面的小结中,我们启动了一个容器并且立刻连接了进去。然后当容器中的工作结束后,我们从容器中脱离了出来。 -你也可以在分离模式(不需要自动连接进去)中启动容器 +你也可以在脱离模式(不需要自动连接进去)中启动容器。 在后台运行一个容器,输入命令: @@ -212,13 +212,13 @@ $ sudo docker run -it 20fffa419e3a /bin/bash $ sudo docker run -it -d alpine:latest ``` -**输出结果:** +输出结果: ``` d74f2ceb5f3ad2dbddb0b26e372adb14efff91e75e7763418dbd12d1d227129d ``` -上面输出结果的前 12 字符代表的是容器的 ID +上面输出结果的前 12 字符代表的是容器的 ID。 通过 `docker ps` 命令,你可以验证容器是否在运行: @@ -238,7 +238,7 @@ d74f2ceb5f3a alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds $ sudo docker attach d74f2ceb5f3a ``` -#### 5. 查看运行中的容器 +#### 5、查看运行中的容器 查看运行中的容器,运行下面的命令: @@ -246,7 +246,7 @@ $ sudo docker attach d74f2ceb5f3a $ sudo docker ps ``` -**输出结果:** +输出结果: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES @@ -258,12 +258,12 @@ f7e04eed577e 20fffa419e3a "/bin/bash" 6 minutes ago Up 6 minutes 这里, -* f7e04eed577e 是由镜像 “2f2a5b826762” 创建的 Ubuntu 容器的 ID。并且,“brave_mclean”是这个容器的名字。 -* 2f2a5b826762 是由镜像 “ubuntu:latest” 创建的 Ubuntu 容器的 ID。并且,“hungry_leavitt” 是这个容器的名字。 +* `f7e04eed577e` 是由镜像 `2f2a5b826762` 创建的 Ubuntu 容器的 ID。并且,`brave_mclean` 是这个容器的名字。 +* `2f2a5b826762` 是由镜像 “ubuntu:latest” 创建的 Ubuntu 容器的 ID。并且,`hungry_leavitt` 是这个容器的名字。 -当一个新容器被创建后,一个唯一的 ID 和名字会赋给它,这样我们就能通过它的 ID 和名字来连接它。 +当一个新容器被创建后,会赋给它一个唯一的 ID 和名字,这样我们就能通过它的 ID 和名字来连接它。 -**注意:** 请注意**容器 ID 和 Docker 镜像 ID 是不同的**。 +**注意:请注意容器 ID 和 Docker 镜像 ID 是不同的**。 列出所有可用的(运行或者停止)容器,运行: @@ -271,7 +271,7 @@ f7e04eed577e 20fffa419e3a "/bin/bash" 6 minutes ago Up 6 minutes $ sudo docker ps -a ``` -#### 6. 从运行中的容器分离或连接 +#### 6、从运行中的容器脱离或连接 首先,通过 `docker ps` 命令找到容器的 ID。 @@ -285,7 +285,7 @@ $ sudo docker ps $ sudo docker attach ``` -比如像下面这样,我要连接到 ID 为 “f7e04eed577e” 的容器: +比如像下面这样,我要连接到 ID 为 `f7e04eed577e` 的容器: ``` $ sudo docker attach f7e04eed577e @@ -299,9 +299,9 @@ $ sudo docker attach brave_mclean 现在你就登录到这个容器了。 -想要从容器分离,只要按 **CTRL+P** 然后 **CTRL+Q**。 +想要从容器脱离,只要按 `CTRL+P` 然后 `CTRL+Q`。 -#### 7. 启动,重启,暂停和终止容器。 +#### 7、启动、重启、暂停和终止容器 你可以使用容器的名字或 ID 来启动,重启,暂停或者终止一个 Docker 容器。 @@ -373,9 +373,9 @@ $ sudo docker stop 35b5ee8c3d3a 10615254bb45 $ sudo docker ps ``` -#### 8. 强行关闭Kill Docker 容器 +#### 8、强行关闭 Docker 容器 -docker stop 命令可以非常优雅的关掉运行中的容器。有时候,你可能卡在一个没有响应的容器,或者你想强制关掉容器。 +`docker stop` 命令可以非常优雅的关掉运行中的容器。有时候,你可能卡在一个没有响应的容器,或者你想强制关掉容器。 通过给一个运行中的容器发送 `SIGKILL` 来强行关闭容器,运行: @@ -383,7 +383,7 @@ docker stop 命令可以非常优雅的关掉运行中的容器。有时候, $ sudo docker kill 10615254bb45 ``` -#### 9. 在关闭容器后自动删除他们 +#### 9、在关闭容器后自动删除他们 也许你想测试一个容器,然后当你完成在容器中的工作就把它删掉。如果是这样,通过使用 `--rm` 标签在关闭后自动删掉容器: @@ -397,7 +397,7 @@ $ sudo docker run -it --rm debian:latest 从上面的结果可以看到,我先创建了一个新的 Debian 容器。当我退出这个容器的时候,它就被自动删掉了。`docker ps -a` 命令的输出结果显示,Debian 容器现在不存在。 -#### 10. 给容器命名 +#### 10、给容器命名 如果你再看一下之前命令的输出结果,当你启动一个容器的时候,每个容器都被赋予了一个随机的名字。如果你不命名你的容器,Docker 会自动替你给他们命名。 @@ -420,7 +420,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS 2af79e97a825 alpine:latest "/bin/sh" 6 seconds ago Up 5 seconds recursing_taussig ``` -从上面的结果可以看到,尽管我用同一个 docker image 创建了两个容器,它们获得了不同的 ID 和名字。 +从上面的结果可以看到,尽管我用同一个 Docker 镜像创建了两个容器,它们获得了不同的 ID 和名字。 如果你想给容器赋一个不变的名字,使用 `--name` 标签,像下面这样: @@ -428,14 +428,14 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS $ sudo docker run -it -d --name ostechnix_alpine alpine:latest ``` -上面的命令会在分离模式中创建一个叫做 **ostechnix_alpine** 的新容器。 +上面的命令会在脱离模式中创建一个叫做 `ostechnix_alpine` 的新容器。 我们看一下当前运行的容器列表: ``` $ sudo docker ps ``` -**输出结果:** +输出结果: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES @@ -446,13 +446,13 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS ![Assign Name To Containers][13] -注意到上面输出结果中的第一个容器的名字了吗?对了,我们给这个容器分配了一个自定义的名字(也就是 `ostechnix_alpine`)。 +注意到上面输出结果中的第一个容器的名字了吗?对了,我们给这个容器分配了一个自定义的名字(也就是 `ostechnix_alpine`)。 给容器分配自定义的名字可以给我们带来其他好处。只要看一下容器的名字,我们就能很容易的确定那个容器里面安装了什么。 -#### 11. 构建自定义 Docker 镜像 +#### 11、构建自定义 Docker 镜像 -Docker 不仅仅是下载和使用已存在的容器。你也可以创建自己的自定义 docker 镜像。 +Docker 不仅仅是下载和使用已存在的容器。你也可以创建自己的自定义 Docker 镜像。 现在我们开始一个 Ubuntu 容器: @@ -464,7 +464,7 @@ $ sudo docker run -it ubuntu:latest 然后,在容器中,你可以安装任何的软件或者做你想做的事情。 -比如,我们在容器中安装 “Apache web server**。 +比如,我们在容器中安装 Apache Web 服务器。 ``` # apt update @@ -473,7 +473,7 @@ $ sudo docker run -it ubuntu:latest 相似地,在容器中,可以根据自己的需要安装和测试软件。 -完成以后,从容器分离(不要退出)回到主机系统的 shell。不要终止或者关闭容器。使用 **CTRL+P** 然后 **CTRL+Q** 从容器中分离,这样不会关闭容器。 +完成以后,从容器脱离(不要退出)回到主机系统的 shell。不要终止或者关闭容器。使用 `CTRL+P` 然后 `CTRL+Q` 从容器中脱离,这样不会关闭容器。 在你的 Docker 主机的终端,运行下面的命令来找到容器 ID: @@ -481,13 +481,13 @@ $ sudo docker run -it ubuntu:latest $ sudo docker ps ``` -最后,创建一个当前运行中的容器的 Docker image,使用命令: +最后,创建一个当前运行中的容器的 Docker 镜像,使用命令: ``` $ sudo docker commit 377e6d77ebb5 ostechnix/ubuntu_apache ``` -**输出结果** +输出结果: ``` sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 @@ -495,9 +495,9 @@ sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 这里, -* 377e6d77ebb5 – Ubuntu 容器的 ID。 -* ostechnix – 创建容器的用户的名字。 -* ubuntu_apache – 用户 ostechnix 创建的 docker image 的名字。 +* `377e6d77ebb5` – Ubuntu 容器的 ID。 +* `ostechnix` – 创建容器的用户的名字。 +* `ubuntu_apache` – 用户 `ostechnix` 创建的 Docker 镜像的名字。 现在我们查看一下新的 Docker 镜像是否被创建了,使用下面的命令: @@ -505,7 +505,7 @@ sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1 $ sudo docker images ``` -**输出结果:** +输出结果: ``` ostechnix/ubuntu_apache @@ -521,9 +521,9 @@ ostechnix/ubuntu_apache $ sudo docker run -it ostechnix/ubuntu_apache ``` -#### 12. 移除容器 +#### 12、移除容器 -当你在 Docker 容器中完成所有开发后,如果你不需要他们了,你可以删掉他们。 +当你在 Docker 容器中完成所有开发后,如果你不需要它们了,你可以删掉它们。 为此,首先我们需要终止(关闭)运行中的容器。 @@ -533,7 +533,7 @@ $ sudo docker run -it ostechnix/ubuntu_apache $ sudo docker ps ``` -**输出结果:** +输出结果: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES @@ -560,7 +560,7 @@ $ sudo docker rm 377e6d77ebb5 $ sudo docker container prune ``` -敲 **Y** 然后回车键,这些容器就被删掉了。 +敲 `Y` 然后回车键,这些容器就被删掉了。 ``` WARNING! This will remove all stopped containers. @@ -584,7 +584,7 @@ $ sudo docker ps -a 如果看不到任何结果,说明所有容器被删掉了。 -#### 13. 删除 Docker 镜像 +#### 13、删除 Docker 镜像 记住,在删除所有镜像之前,首先要删掉所有从那些镜像创建的容器。 @@ -596,7 +596,7 @@ $ sudo docker ps -a $ sudo docker images ``` -**输出结果:** +输出结果: ``` REPOSITORY TAG IMAGE ID CREATED SIZE @@ -615,7 +615,7 @@ alpine latest e66264b98777 5 weeks ago 5.52MB $ sudo docker rmi ce5aa74a48f1 ``` -**输出结果:** +输出结果: ``` Untagged: ostechnix/ubuntu_apache:latest @@ -625,19 +625,19 @@ Deleted: sha256:a8e4797160a2b2d33d8bd1bd67e008260c022b3a53fbcc198b2b74d9eae5961d 同样,删除其他所有 Docker 镜像。 -删掉所有未运行的容器,所有镜像,构建的缓存,所有网络,运行: +删掉所有未运行的容器、所有镜像、构建的缓存、所有网络,运行: ``` $ sudo docker system prune -a ``` -使用这个命令的时候要注意,它会删掉所有没有使用的容器,网络,镜像(挂起dangling未使用unreferenced) +使用这个命令的时候要注意,它会删掉所有没有使用的容器、网络、镜像(包括 挂起dangling未使用unreferenced 的) ![Delete Everything In Docker][16] -默认情况下,即使当前没有容器在使用磁盘容量volumes,为防止重要数据被删除,磁盘容量volumes也不会被删除 +默认情况下,即使当前没有容器在使用磁盘卷volumes,为防止重要数据被删除,磁盘卷也不会被删除。 -如果你想删掉所有东西,包括分配的容量,使用 `--volumes` 标签。 +如果你想删掉所有东西,包括分配的卷,使用 `--volumes` 标签。 ``` $ sudo docker system prune -a --volumes @@ -645,9 +645,9 @@ $ sudo docker system prune -a --volumes ### Docker 问题汇总 -Docker 不会允许你删除 Docker 镜像,如果这些镜像正在被运行或停止的容器使用。 +如果 Docker 镜像正在被运行或停止的容器使用,Docker 不会允许你删除这些镜像。 -比如,当我尝试从一个以前的 Ubuntu 服务器上删除 ID 为 **b72889fa879c** 的 Docker 镜像。我会得到下面的错误: +比如,当我尝试从一个以前的 Ubuntu 服务器上删除 ID 为 `b72889fa879c` 的 Docker 镜像。我会得到下面的错误: ``` Error response from daemon: conflict: unable to delete b72889fa879c (must be forced) - image is being used by stopped container dde4dd285377 @@ -661,7 +661,7 @@ Error response from daemon: conflict: unable to delete b72889fa879c (must be for $ sudo docker ps ``` -**输出结果:** +输出结果: ![Show running docker containers][17] @@ -673,23 +673,23 @@ $ sudo docker ps $ sudo docker ps -a ``` -**输出结果:** +输出结果: ![Show running and stopped docker containers][18] 可以看到,仍然有停止的容器在使用其中一个 Docker 镜像。所以,我们先把所有容器删掉。 -**比如:** +比如: ``` $ sudo docker rm 12e892156219 ``` -类似地,向上面那样,用对应容器的 ID 将他们都删除。 +类似地,向上面那样,用对应容器的 ID 将它们都删除。 当把所有容器删掉后,移除掉 Docker 镜像。 -**比如:** +比如: ``` $ sudo docker rmi b72889fa879c @@ -705,13 +705,13 @@ $ sudo docker images ### 总结 -在这篇全面的 Docker 入门教程中,我们解释了 Docker 的基本操作,比如创建,运行,搜索,删除容器,还有从 Docker 镜像构建你自己的容器。同时,我们也解释了如何在不需要 Docker 容器和镜像的时候删除它们。 +在这篇全面的 Docker 入门教程中,我们解释了 Docker 的基本操作,比如创建、运行、搜索、删除容器,还有从 Docker 镜像构建你自己的容器。同时,我们也解释了如何在不需要 Docker 容器和镜像的时候删除它们。 -希望你现在对 **Docker 的使用** 有一个基本的了解 +希望你现在对 **Docker 的使用** 有一个基本的了解。 更多细节,请参考这篇教程最下面的官方资源链接,或者在下面的评论区进行评论。 -**相关资料:** +### 相关资料 * [Docker 官网][19] * [Docker 文档][20] @@ -723,7 +723,7 @@ via: https://ostechnix.com/getting-started-with-docker/ 作者:[sk][a] 选题:[lkxed][b] 译者:[MCGA](https://github.com/Yufei-Yan) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From aeb7d87acd65d50f7469a7753e104d4f9dffc79e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 21 Jul 2022 10:50:35 +0800 Subject: [PATCH 0469/3123] RP @MjSeven https://linux.cn/article-14850-1.html --- ...Folder Between Ubuntu-Linux and Windows.md | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md (71%) diff --git a/translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md b/published/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md similarity index 71% rename from translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md rename to published/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md index c0f81ae26e..6e5fa9d287 100644 --- a/translated/tech/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md +++ b/published/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md @@ -3,35 +3,38 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14850-1.html" -指南:如何在 Ubuntu/Linux 和 Windows 之间共享文件夹 +如何在 Ubuntu/Linux 和 Windows 之间共享文件夹 ====== -本初学者指南解释了如何在 Ubuntu/Linux 中快速共享一个文件夹。 + +![](https://img.linux.net.cn/data/attachment/album/202207/21/104750kh3y9craf6s6nasj.jpg) + +> 本初学者指南解释了如何在 Ubuntu/Linux 中快速共享一个文件夹。 在 Ubuntu/Linux 中共享一个文件夹并在其他操作系统(如 Windows)中通过网络访问并不难。默认情况下,Ubuntu 并没有安装所需的软件包。但是,你可以打开安装向导来自动安装所需的软件。 -本[指南][1]适用于所有 Ubuntu 版本(包括 [22.04][2]、20.04、18.04、19.10 以及即将发布的版本 -- 除非此功能的设计发生重大的变化)。 +本 [指南][1] 适用于所有 Ubuntu 版本(包括 [22.04][2]、20.04、18.04、19.10 以及即将发布的版本 —— 除非此功能的设计发生重大的变化)。 ### Ubuntu 中共享文件夹的步骤 -**步骤 1:** 打开文件管理器,右键单击共享的文件夹。点击上下文菜单中的“本地网络共享”选项。 +**步骤 1:** 打开文件管理器,右键单击共享的文件夹。点击上下文菜单中的“本地网络共享”选项。 ![本地网络共享选项][3] -**步骤 2:** 在文件夹共享对话框中点击共享文件夹复选框。 +**步骤 2:** 在文件夹共享对话框中点击共享文件夹复选框。 这将在你的系统中安装 [Samba][4] 软件包。Samba 用于在 Windows 和 Unix 系统之间通过网络共享文件和打印机。 ![文件夹共享选项 - 安装 Samba][5] -**步骤 3:** 安装 Samba 后,执行以下操作共享文件夹或目录。 +**步骤 3:** 安装 Samba 后,执行以下操作共享文件夹或目录。 * 选中共享文件夹复选框。 * 输入共享名称。这将是你从另一个系统(如 Windows)看到的名称。尽量不要使用任何带有空格的名称。 - * (可选)通过勾选相应选项,你可以控制共享文件夹的写入权限,并允许访客访问。 + * (可选)通过勾选相应选项,你可以控制共享文件夹的写入权限,以及允许访客访问。 * 如果你允许访客访问,则没有凭据的人可以访问共享文件夹。所以要谨慎。 * 如果你希望用户输入用户名和密码,打开终端并运行以下命令。 @@ -39,13 +42,13 @@ sudo smbpasswd -a 用户名 ``` -**用户名** 应该是对应 Ubuntu 系统的有效用户。 +`用户名` 应该是对应 Ubuntu 系统的有效用户。 现在,你应该已经设置好了共享的文件夹或目录。 ### 如何访问共享文件夹 -从 Ubuntu/Linux 系统中访问共享文件夹,你需要系统的 IP 地址或主机名。为此,打开`系统设置 -> Wifi -> 获取 IP 地址`。 +从 Ubuntu/Linux 系统中访问共享文件夹,你需要系统的 IP 地址或主机名。为此,打开“系统设置System Settings -> Wi-Fi -> 获取 IP 地址Get the IP address”。 ![IP 地址设置][6] @@ -59,7 +62,7 @@ sudo smbpasswd -a 用户名 ![共享文件夹][8] -要在 **Windows 系统**访问共享文件夹,打开运行(Windows 键 + R)或打开资源管理器,输入以下地址。注意:你应该修改为你系统的 IP 地址和文件夹名称。 +要在 **Windows 系统** 访问共享文件夹,打开运行(按下 `Windows + R`)或打开资源管理器,输入以下地址。注意:你应该修改为你系统的 IP 地址和文件夹名称。 ``` \\192.168.43.19\Folder @@ -78,7 +81,7 @@ via: https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-wind 作者:[Arindam][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f78698c305d35e1d90b570e57fe9b4fa2af5d982 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 21 Jul 2022 11:04:58 +0800 Subject: [PATCH 0470/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Full-Text Search and Other Improvements.md | 99 ------------------- ...tection With HTTPS-Only Mode as Default.md | 93 ----------------- ...ally Free- And Open Source Applications.md | 35 ------- 3 files changed, 227 deletions(-) delete mode 100644 sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md delete mode 100644 sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md delete mode 100644 sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md diff --git a/sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md b/sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md deleted file mode 100644 index 27b164b2a7..0000000000 --- a/sources/news/20220712 eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements" -[#]: via: "https://news.itsfoss.com/calibre-6-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -eBook Manager Calibre 6.0 is Here With Full-Text Search and Other Improvements -====== -A much-needed upgrade for Calibre has finally landed with improvements and changes. Try it out! - -![calibre 6.0][1] - -Calibre is a popular open-source eBook reader for Linux, macOS, and Windows. It is also available for the ARM platform (Linux). - -It happens to be one of the [best eBook readers for Linux][2]. - -After a year and a half of development, a new major upgrade for Calibre has finally landed. - -### Calibre 6.0: What’s New? - -While it is a big deal to put an end to the 5.x series of updates, you do not get a big list of additions. - -However, the release includes significant improvements and a few feature additions that I will be highlighting here. - -#### Full-Text Search - -![calibre 6.0][3] - -With Calibre 6.0, you can search the entire text of all books in your library collection. - -This should come in handy for users, who want to quickly search for something specific, even though they do not remember the name of a book. - -It will help you find things quickly when you need them. - -#### Support for ARM and Apple Silicon - -Calibre 6.0 adds support for ARM64 on Linux and Apple Silicon. - -It will no longer work with 32-bit systems, considering [Qt 6][4] does not support it. - -#### Easy Dark Mode Switch & Icon Themes - -![calibre 6.0][5] - -You can now easily head to the preferences, and tweak the look/feel settings to toggle the dark mode. - -A quick switch could have helped, but it should be good enough. By default, it respects the system preference, so it should not be an issue for most. - -In addition to this, you also get to choose icon themes for your preferences. - -#### Switch to Qt 6 - -You can expect some unmaintained third-party plugins to no longer work with Qt 6 on Calibre 6.0. - -Essential plugins that have been ported to Qt 6 should work as you would expect. - -### Other Changes - -Along with all the upgrades, you get a few improvements and changes that include: - -* No support for Windows 8. -* The Calibre:// URL scheme is more useful to create links and can be accessed from other programs. -* Improved “Read aloud” button to start reading the book text using OS’s text-to-speech engine. - -You can also check out its [official announcement][6] for more information. - -### Download Calibre 6.0 - -Calibre 6.0 can be downloaded from its [GitHub releases section][7]. You have to download the archived package for Linux (ARM64/AMD64) and extract it to run the executable. - -In either case, you can also install it using the Flatpak package from [Flathub][8]. - -[Calibre 6.0][9] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/calibre-6-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/07/calibre-6-0-release.jpg -[2]: https://itsfoss.com/best-ebook-readers-linux/ -[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/calibre-6.png -[4]: https://news.itsfoss.com/qt-6-released/ -[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/calibre-dark-theme.jpg -[6]: https://calibre-ebook.com/new-in/fifteen -[7]: https://github.com/kovidgoyal/calibre/releases/tag/v6.0.0 -[8]: https://flathub.org/apps/details/com.calibre_ebook.calibre -[9]: https://calibre-ebook.com/ diff --git a/sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md b/sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md deleted file mode 100644 index fc0ac1c42c..0000000000 --- a/sources/news/20220718 Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: subject: "Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default" -[#]: via: "https://news.itsfoss.com/tor-browser-11-5-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default -====== -Tor Browser 11.5 makes it easy to fight censorship, and makes the browser experience more secure. - -![tor browser][1] - -Tor Browser is the de-facto standard for users looking to utilize Tor network, and want strict privacy settings on their web browsers. - -With the latest 11.5 update, Tor Browser made some major improvements to secure the experience for users. - -### Tor Browser 11.5: What’s New? - -Let me give you a quick overview of the features introduced with this release. - -#### Automatic Censorship Detection and Circumvention - -Tor Browser helps users fight back against censorship. However, not every user can configure or set it up for a hassle-free experience. - -So, to help you with that, Tor Browser 11.5 introduces “**Connection Assist**“, which lets you automatically set a location for the bridge to connect to Tor, resolving any error. - -The developers mention more about it in the official blog post: - -> Connection Assist works by looking up and downloading an up-to-date list of country-specific options to try using your location (with your consent). It manages to do so without needing to connect to the Tor Network first by utilizing [moat][2] – the same domain-fronting tool that Tor Browser uses to request a bridge from torproject.org. - -Sounds good so far! Also, the developers noted that it is just the first version of the feature. So, they will be looking forward to user feedback on this. - -#### Redesigned Tor Network Settings - -While it is good to make things easy, Tor Browser developers know that improving the manual configuration options is equally important. - -![Image Credits: Tor Project Blog][3] - -So, with this update, users who prefer to customize their connection can find some improvements in the settings that include: - -* Renaming Tor Network Settings to “Connection Settings” for clarity. -* The last known connection status can be found at the top of the tab. -* Ability to test your Internet connection without Tor for troubleshooting. -* Connection Assist. -* New bridge cards for the ease of sharing bridges, with a QR code readable by Tor Browser for Android. - -In addition to the bridge cards, you can also notice a new emoji-packed ID to help you identify a bridge - -#### HTTPS-Only Mode - -Starting with Tor Browser 11.5, you will no longer find HTTPS Everywhere plugin bundled. - -Instead, the browser will prefer HTTPS-only connections for every web page, just like Mozilla Firefox. - -#### Other Improvements - -Every Tor Browser update is crucial for users who rely on it for privacy and security. So, naturally, there are various bug fixes and subtle changes along with this update that include: - -* Improved font support. -* Use connection settings in offline mode. -* Manual bundled with the browser for offline viewing. - -You can find the full changelog in the [official blog post][4]. - -### Download Tor Browser 11.5 - -You can get the latest package from its [official website][5]. If you are curious about installation, refer to the [installation documentation][6]. - -[Tor Browser 11.5][7] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/tor-browser-11-5-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/07/tor-browser-11-5-release.jpg -[2]: https://support.torproject.org/glossary/moat/ -[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/connection-settings.png -[4]: https://blog.torproject.org/new-release-tor-browser-115/ -[5]: https://www.torproject.org/download/ -[6]: https://tb-manual.torproject.org/installation/ -[7]: https://www.torproject.org/download/ diff --git a/sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md b/sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md deleted file mode 100644 index 3e8fe5c0ca..0000000000 --- a/sources/news/20220719 Microsoft Opens Up The Microsoft Store To -Usually Free- And Open Source Applications.md +++ /dev/null @@ -1,35 +0,0 @@ -[#]: subject: "Microsoft Opens Up The Microsoft Store To ‘Usually Free’ And Open Source Applications" -[#]: via: "https://www.opensourceforu.com/2022/07/microsoft-opens-up-the-microsoft-store-to-usually-free-and-open-source-applications/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft Opens Up The Microsoft Store To ‘Usually Free’ And Open Source Applications -====== -![microsoft][1] - -Microsoft has altered its store policies to assist some developers in making money from their programs. Following clarification from Microsoft, app developers are now permitted to upload open source and generally free apps to the Microsoft Store, provided that they were created by the party who would be using them or have obtained the necessary permission. - -Apps cannot “try to profit from open source or other software that is usually generally available for free, nor be priced arbitrarily high relative to the features and capabilities supplied by your product,” according to an earlier version of the Microsoft Store regulations. The section of the policies that dealt with open source or free applications has been removed. To reflect its position on free and open source software in the Microsoft Store, Microsoft amended policy 11.2. Currently, it says (opens in new tab): - -“All content in your product and associated metadata must be either originally created by the application provider, appropriately licensed from the third-party rights holder, used as permitted by the rights holder, or used as otherwise permitted by law. Reporting infringement complaints can be done via our online form.” - -Microsoft claims that this was always the company’s intention. Giorgio Sardo, general manager of apps, partners, and the Microsoft Store at Microsoft, stated that the company wants to encourage open-source developers after developers and community members objected to the initial policy change. According to a Microsoft representative, “We’ve been working hard over the past year to improve consumer experiences while keeping the Store available to all developers. This policy update is an extension of that effort and is intended to give developers more options while enhancing the user experience.” - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/07/microsoft-opens-up-the-microsoft-store-to-usually-free-and-open-source-applications/ - -作者:[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/07/microsoft-1-e1658233374530.jpg From a32c8de72ce62ba63cad62a814bf6af70ebd598c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 16:24:21 +0800 Subject: [PATCH 0471/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220720?= =?UTF-8?q?=20What=20happens=20when=20you=20press=20a=20key=20in=20your=20?= =?UTF-8?q?terminal=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220720 What happens when you press a key in your terminal.md --- ...s when you press a key in your terminal.md | 317 ++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 sources/tech/20220720 What happens when you press a key in your terminal.md diff --git a/sources/tech/20220720 What happens when you press a key in your terminal.md b/sources/tech/20220720 What happens when you press a key in your terminal.md new file mode 100644 index 0000000000..8225823e69 --- /dev/null +++ b/sources/tech/20220720 What happens when you press a key in your terminal.md @@ -0,0 +1,317 @@ +[#]: subject: "What happens when you press a key in your terminal?" +[#]: via: "https://jvns.ca/blog/2022/07/20/pseudoterminals/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What happens when you press a key in your terminal? +====== + +I’ve been confused about what’s going on with terminals for a long time. + +But this past week I was using [xterm.js][1] to display an interactive terminal in a browser and I finally thought to ask a pretty basic question: when you press a key on your keyboard in a terminal (like `Delete`, or `Escape`, or `a`), which bytes get sent? + +As usual we’ll answer that question by doing some experiments and seeing what happens :) + +### remote terminals are very old technology + +First, I want to say that displaying a terminal in the browser with `xterm.js` might seem like a New Thing, but it’s really not. In the 70s, computers were expensive. So many employees at an institution would share a single computer, and each person could have their own “terminal” to that computer. + +For example, here’s a photo of a VT100 terminal from the 70s or 80s. This looks like it could be a computer (it’s kind of big!), but it’s not – it just displays whatever information the actual computer sends it. + +[![DEC VT100 terminal][2]][3] + +Of course, in the 70s they didn’t use websockets for this, but the information being sent back and forth is more or less the same as it was then. + +(the terminal in that photo is from the [Living Computer Museum][4] in Seattle which I got to visit once and write FizzBuzz in `ed` on a very old Unix system, so it’s possible that I’ve actually used that machine or one of its siblings! I really hope the Living Computer Museum opens again, it’s very cool to get to play with old computers.) + +### what information gets sent? + +It’s obvious that if you want to connect to a remote computer (with `ssh` or using `xterm.js` and a websocket, or anything else), then some information needs to be sent between the client and the server. + +Specifically: + + * the **client** needs to send the keystrokes that the user typed in (like `ls -l`) + * the **server** needs to tell the client what to display on the screen + + + +Let’s look at a real program that’s running a remote terminal in a browser and see what information gets sent back and forth! + +### we’ll use `goterm` to experiment + +I found this tiny program on GitHub called [goterm][5] that runs a Go server that lets you interact with a terminal in the browser using `xterm.js`. This program is very insecure but it’s simple and great for learning. + +I [forked it][6] to make it work with the latest xterm.js, since it was last updated 6 years ago. Then I added some logging statements to print out every time bytes are sent/received over the websocket. + +Let’s look at sent and received during a few different terminal interactions! + +### example: `ls` + +First, let’s run `ls`. Here’s what I see on the `xterm.js` terminal: + +``` + + [email protected]:/play$ ls + file + [email protected]:/play$ + +``` + +and here’s what gets sent and received: (in my code, I log `sent: [bytes]` every time the client sends bytes and `recv: [bytes]` every time it receives bytes from the server) + +``` + + sent: "l" + recv: "l" + sent: "s" + recv: "s" + sent: "\r" + recv: "\r\n\x1b[?2004l\r" + recv: "file\r\n" + recv: "\x1b[[email protected]:/play$ " + +``` + +I noticed 3 things in this output: + + 1. Echoing: The client sends `l` and then immediately receives an `l` sent back. I guess the idea here is that the client is really dumb – it doesn’t know that when I type an `l`, I want an `l` to be echoed back to the screen. It has to be told explicitly by the server process to display it. + 2. The newline: when I press enter, it sends a `\r` (carriage return) symbol and not a `\n` (newline) + 3. Escape sequences: `\x1b` is the ASCII escape character, so `\x1b[?2004h` is telling the terminal to display something or other. I think this is a colour sequence but I’m not sure. We’ll talk a little more about escape sequences later. + + + +Okay, now let’s do something slightly more complicated. + +### example: `Ctrl+C` + +Next, let’s see what happens when we interrupt a process with `Ctrl+C`. Here’s what I see in my terminal: + +``` + + [email protected]:/play$ cat + ^C + [email protected]:/play$ + +``` + +And here’s what the client sends and receives. + +``` + + sent: "c" + recv: "c" + sent: "a" + recv: "a" + sent: "t" + recv: "t" + sent: "\r" + recv: "\r\n\x1b[?2004l\r" + sent: "\x03" + recv: "^C" + recv: "\r\n" + recv: "\x1b[?2004h" + recv: "[email protected]:/play$ " + +``` + +When I press `Ctrl+C`, the client sends `\x03`. If I look up an ASCII table, `\x03` is “End of Text”, which seems reasonable. I thought this was really cool because I’ve always been a bit confused about how Ctrl+C works – it’s good to know that it’s just sending an `\x03` character. + +I believe the reason `cat` gets interrupted when we press `Ctrl+C` is that the Linux kernel on the server side receives this `\x03` character, recognizes that it means “interrupt”, and then sends a `SIGINT` to the process that owns the pseudoterminal’s process group. So it’s handled in the kernel and not in userspace. + +### example: `Ctrl+D` + +Let’s try the exact same thing, except with `Ctrl+D`. Here’s what I see in my terminal: + +``` + + [email protected]:/play$ cat + [email protected]:/play$ + +``` + +And here’s what gets sent and received: + +``` + + sent: "c" + recv: "c" + sent: "a" + recv: "a" + sent: "t" + recv: "t" + sent: "\r" + recv: "\r\n\x1b[?2004l\r" + sent: "\x04" + recv: "\x1b[?2004h" + recv: "[email protected]:/play$ " + +``` + +It’s very similar to `Ctrl+C`, except that `\x04` gets sent instead of `\x03`. Cool! `\x04` corresponds to ASCII “End of Transmission”. + +### what about Ctrl + another letter? + +Next I got curious about – if I send `Ctrl+e`, what byte gets sent? + +It turns out that it’s literally just the number of that letter in the alphabet, like this: + + * `Ctrl+a` => 1 + * `Ctrl+b` => 2 + * `Ctrl+c` => 3 + * `Ctrl+d` => 4 + * … + * `Ctrl+z` => 26 + + + +Also, `Ctrl+Shift+b` does the exact same thing as `Ctrl+b` (it writes `0x2`). + +What about other keys on the keyboard? Here’s what they map to: + + * Tab -> 0x9 (same as Ctrl+I, since I is the 9th letter) + * Escape -> `\x1b` + * Backspace -> `\x7f` + * Home -> `\x1b[H` + * End: `\x1b[F` + * Print Screen: `\x1b\x5b\x31\x3b\x35\x41` + * Insert: `\x1b\x5b\x32\x7e` + * Delete -> `\x1b\x5b\x33\x7e` + * My `Meta` key does nothing at all + + + +What about Alt? From my experimenting (and some Googling), it seems like `Alt` is literally the same as “Escape”, except that pressing `Alt` by itself doesn’t send any characters to the terminal and pressing `Escape` by itself does. So: + + * alt + d => `\x1bd` (and the same for every other letter) + * alt + shift + d => `\x1bD` (and the same for every other letter) + * etcetera + + + +Let’s look at one more example! + +### example: `nano` + +Here’s what gets sent and received when I run the text editor `nano`: + +``` + + recv: "\r\x1b[[email protected]:/play$ " + sent: "n" [[]byte{0x6e}] + recv: "n" + sent: "a" [[]byte{0x61}] + recv: "a" + sent: "n" [[]byte{0x6e}] + recv: "n" + sent: "o" [[]byte{0x6f}] + recv: "o" + sent: "\r" [[]byte{0xd}] + recv: "\r\n\x1b[?2004l\r" + recv: "\x1b[?2004h" + recv: "\x1b[?1049h\x1b[22;0;0t\x1b[1;16r\x1b(B\x1b[m\x1b[4l\x1b[?7h\x1b[39;49m\x1b[?1h\x1b=\x1b[?1h\x1b=\x1b[?25l" + recv: "\x1b[39;49m\x1b(B\x1b[m\x1b[H\x1b[2J" + recv: "\x1b(B\x1b[0;7m GNU nano 6.2 \x1b[44bNew Buffer \x1b[53b \x1b[1;123H\x1b(B\x1b[m\x1b[14;38H\x1b(B\x1b[0;7m[ Welcome to nano. For basic help, type Ctrl+G. ]\x1b(B\x1b[m\r\x1b[15d\x1b(B\x1b[0;7m^G\x1b(B\x1b[m Help\x1b[15;16H\x1b(B\x1b[0;7m^O\x1b(B\x1b[m Write Out \x1b(B\x1b[0;7m^W\x1b(B\x1b[m Where Is \x1b(B\x1b[0;7m^K\x1b(B\x1b[m Cut\x1b[15;61H" + +``` + +You can see some text from the UI in there like “GNU nano 6.2”, and these `\x1b[27m` things are escape sequences. Let’s talk about escape sequences a bit! + +### ANSI escape sequences + +These `\x1b[` things above that `nano` is sending the client are called “escape sequences” or “escape codes”. This is because they all start with `\x1b`, the “escape” character. . They change the cursor’s position, make text bold or underlined, change colours, etc. [Wikipedia has some history][7] if you’re interested. + +As a simple example: if you run + +``` + + echo -e '\e[0;31mhi\e[0m there' + +``` + +in your terminal, it’ll print out “hi there” where “hi” is in red and “there” is in black. [This page][8] has some nice examples of escape codes for colors and formatting. + +I think there are a few different standards for escape codes, but my understanding is that the most common set of escape codes that people use on Unix come from the VT100 (that old terminal in the picture at the top of the blog post), and hasn’t really changed much in the last 40 years. + +Escape codes are why your terminal can get messed up if you `cat` a bunch of binary to your screen – usually you’ll end up accidentally printing a bunch of random escape codes which will mess up your terminal – there’s bound to be a `0x1b` byte in there somewhere if you `cat` enough binary to your terminal. + +### can you type in escape sequences manually? + +A few sections back, we talked about how the `Home` key maps to `\x1b[H`. Those 3 bytes are `Escape + [ + H` (because Escape is `\x1b`). + +And if I manually type Escape, then [, then H in the `xterm.js` terminal, I end up at the beginning of the line, exactly the same as if I’d pressed `Home`. + +I noticed that this didn’t work in `fish` on my computer though – if I typed `Escape` and then `[`, it just printed out `[` instead of letting me continue the escape sequence. I asked my friend Jesse who has written [a bunch of Rust terminal code][9] about this and Jesse told me that a lot of programs implement a **timeout** for escape codes – if you don’t press another key after some minimum amount of time, it’ll decide that it’s actually not an escape code anymore. + +Apparently this is configurable in fish with `fish_escape_delay_ms`, so I ran `set fish_escape_delay_ms 1000` and then I was able to type in escape codes by hand. Cool! + +### terminal encoding is kind of weird + +I want to pause here for a minute here and say that the way the keys you get pressed get mapped to bytes is pretty weird. Like, if we were designing the way keys are encoded from scratch today, we would probably not set it up so that: + + * `Ctrl + a` does the exact same thing as `Ctrl + Shift + a` + * `Alt` is the same as `Escape` + * control sequences (like colours / moving the cursor around) use the same byte as the `Escape` key, so that you need to rely on timing to determine if it was a control sequence of the user just meant to press `Escape` + + + +But all of this was designed in the 70s or 80s or something and then needed to stay the same forever for backwards compatibility, so that’s what we get :) + +### changing window size + +Not everything you can do in a terminal happens via sending bytes back and forth. For example, when the terminal gets resized, we have to tell Linux that the window size has changed in a different way. + +Here’s what the Go code in [goterm][10] to do that looks like: + +``` + + syscall.Syscall( + syscall.SYS_IOCTL, + tty.Fd(), + syscall.TIOCSWINSZ, + uintptr(unsafe.Pointer(&resizeMessage)), + ) + +``` + +This is using the `ioctl` system call. My understanding of `ioctl` is that it’s a system call for a bunch of random stuff that isn’t covered by other system calls, generally related to IO I guess. + +`syscall.TIOCSWINSZ` is an integer constant which which tells `ioctl` which particular thing we want it to to in this case (change the window size of a terminal). + +### this is also how xterm works + +In this post we’ve been talking about remote terminals, where the client and the server are on different computers. But actually if you use a terminal emulator like `xterm`, all of this works the exact same way, it’s just harder to notice because the bytes aren’t being sent over a network connection. + +### that’s all for now! + +There’s defimitely a lot more to know about terminals (we could talk more about colours, or raw vs cooked mode, or unicode support, or the Linux pseudoterminal interface) but I’ll stop here because it’s 10pm, this is getting kind of long, and I think my brain cannot handle more new information about terminals today. + +Thanks to [Jesse Luehrs][11] for answering a billion of my questions about terminals, all the mistakes are mine :) + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/07/20/pseudoterminals/ + +作者:[Julia Evans][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://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://xtermjs.org/ +[2]: https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/DEC_VT100_terminal.jpg/512px-DEC_VT100_terminal.jpg +[3]: https://commons.wikimedia.org/wiki/File:DEC_VT100_terminal.jpg (Jason Scott, CC BY 2.0 , via Wikimedia Commons) +[4]: https://livingcomputers.org/ +[5]: https://github.com/freman/goterm +[6]: https://github.com/jvns/goterm +[7]: https://en.wikipedia.org/wiki/ANSI_escape_code +[8]: https://misc.flogisoft.com/bash/tip_colors_and_formatting +[9]: https://github.com/doy/vt100-rust +[10]: https://github.com/freman/goterm/blob/a644c10e180ce8af789ea3e4e4892dcf078e97e2/main.go#L110-L115 +[11]: https://github.com/doy/ From 791f3fc9c3aafc56c0115bee8b6a82dcd50d169d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 16:25:13 +0800 Subject: [PATCH 0472/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220619?= =?UTF-8?q?=20simple=20note=20taking?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220619 simple note taking.md --- sources/tech/20220619 simple note taking.md | 117 ++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20220619 simple note taking.md diff --git a/sources/tech/20220619 simple note taking.md b/sources/tech/20220619 simple note taking.md new file mode 100644 index 0000000000..7540ce66bb --- /dev/null +++ b/sources/tech/20220619 simple note taking.md @@ -0,0 +1,117 @@ +[#]: subject: "simple note taking" +[#]: via: "https://jao.io/blog/2022-06-19-simple-note-taking.html" +[#]: author: "jao https://jao.io" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +simple note taking +====== + +I was just watching [Prot's explanation][1] of his new package _denote_, a very elegant note-taking system with a stress on simplicity and, as the author puts it, low-tech requirements. Now, those are excellent qualities in my book, and i think i'd quickly become a _denote_ user if it weren't for the fact that i already have a homegrown set of utilities following a similar philosophy. Inevitably, they differ in some details, as is to be expected from software that has grown with me, as Prot's with him, during more than a decade, but they are similar in important ways. + +I've had in mind writing a brief note on my notes utilities for a while, so i guess this is a good time for it: i can, after showing you mine, point you to a polished package following a similar philosophy and sidestep any temptation of doing anything similar with my little functions :) + +![][2] + +As you'll see in a moment, in some ways, my note taking system is even simpler than Prot's, while in others i rely on more sophisticated software, essentially meaning that where _denote_ is happy to use dired and filenames, i am using grep over the front-matter of the notes. So if you loved the filename-as-metadata idea in _denote_, you can skip the rest of this post! + +These are the main ideas around which i built my note-taking workflow: + + * Personally, i have such a dislike for non-human readable identifiers, that i cannot even stand those 20221234T142312 prefixes (for some reason, i find them quite hard to read and distracting). When i evolved my notes collection, i wanted my files to be named by their title and nothing more. I am also pretty happy to limit myself to org-mode files. So i wanted a directory of (often short) notes with names like `the-lisp-machine.org`, `david-foster-wallace.org` or `combinator-parsing-a-short-tutorial.org`.[1][3] + * I like tags, so all my notes, besides a title, are going to have attached a list of them (_denote_ puts them in the filename and inside the file's headers; i'm content with the latter, because, as you'll see in a moment, i have an easy way of searching through that contents). + * I'm not totally averse to hierarchies: besides tagging, i put my notes in a subdirectory indicating their broad category. I can then quickly narrow my searches to a general _theme_ if needed[2][4]. + * As mentioned, i want to be able to search by the title and tag (besides more broadly by contents) of my notes. Since that's all information available in plain text in the files, `grep` and family (via their emacs lovely helpers) are all that is needed; but i can easily go a step further and use other indexers of plain text like, say, recoll (via my [consult-recoll package][5]). + * It must be easy to quickly create notes that link to any contents i'm seeing in my emacs session, be it text, web, pdf, email, or any other. That comes for free thanks to org and `org-capture`. + * I want the code i have to write to accomplish all the above to be short and sweet, let's say well below two hundred lines of code. + + + +Turns out that i was able to write a little emacs lisp library doing all the above, thanks to the magic of org-mode and consult: you can find it over at my repo by the name of [jao-org-notes.el][6]. The implementation is quite simple and is based on having all note files in a parent directory (`jao-org-notes-dir`) with a subfolder for each of the main top-level categories, and, inside each of them, note files in org mode with a preamble that has the structure of this example: + +``` + + #+title: magit tips + #+date: <2021-07-22 Thu> + #+filetags: git tips + +``` + +The header above corresponds to the note in the file `emacs/magit-tips.org`. Now, it's very easy to write a new command to ask for a top-level category and a list of tags and insert a header like that in a new file: it's called [jao-org-notes-open-or-create][7] in my little lib, and with it one can define a new org template: + +``` + + ("N" "Note" plain (file jao-org-notes-open-or-create) + "\n- %a\n %i" + :jump-to-captured t) + +``` + +that one can then add to `org-capture-templates` (above, i'm using "N" as its shortcut; in the package, this is done by [jao-org-notes-setup][8], which takes the desired shortcut as a parameter). I maintain a simple list of possible tags in the variable `jao-org-notes--tags`, whose value is persisted in the file denoted by the value `jao-org-notes-tags-cache-file`, so that we can remember newly-added tags; with that and the magic of emacs's completing read, handling tags is a breeze. + +Now for search. These are text files, so if i want to search for contents, i just need grepping, for instance with `M-x rgrep` or, even better, `M-x consult-ripgrep`. That is what the command [jao-org-notes-grep][9] does. + +But it is also very useful to be able to limit searches to the title and tags of the notes: that's what the command [jao-org-notes-open][10] does using `consult` and `ripgrep` by the very simple device of searching for regular expressions in the first few lines of each file that start with either `#+title:` or `#+filetags:` followed by the terms we're looking for. That's something one could already do with `rgrep` alone; what consult adds to the party is the ability of displaying the matching results nicely formatted: + +![][11] + +Links between notes are simply org `file:` links, and having a simple "backlinks" command is, well, simple if you don't want anything fancy[3][12]. A command to insert a new link to another note is so boring to almost not meriting mention (okay, almost: [jao-org-notes-insert-link][13]). + +And that's about it. With those simple commands and in about 160 lines of code i find myself comfortably managing plain text notes, and easily finding contents within them. I add a bit of icing by asking [Recoll][14] to index my notes directory (as well as my email and PDFs): it is clever enough to parse org files, and give you back pointers to the sections in the files, and then issue queries with the comfort of a consult asynchronous command thanks to [consult-recoll][5] (the screenshot in the introduction is just me using it). It's a nice use case of how having little, uncomplicated packages that don't try to be too sophisticated and center on the functionality one really needs makes it very easy to combine solutions in beatiful ways[4][15]. + +### Footnotes: + +[1][16] + +I also hate with a passion those `:PROPERTIES:` drawers and other metadata embellishments so often used in org files, and wanted to avoid them as much as possible, so i settled with the only mildly annoying `#+title` and friends at the beginning of the files and nothing more. The usual caveat that that makes it more difficult to have unique names has proven a non-problem to me over the years. + +[2][17] + +Currently i use `work`, `books`, `computers`, `emacs`, `letters`, `maths`, and `physics`: as you see, i am not making a great effort on finding the perfect ontology of all knowledge; rather, i just use the first broad breakdown of the themes that interest me most at the moment. + +[3][18] + +Just look for the regular expression matching "[[file:" followed by the name of the current file. I find myself seldom needing this apparently very popular functionality, but it should be pretty easy to present the search results in a separate buffer if needed. + +[4][19] + +Another example would be how easy it becomes to incorporate web contents nicely formatted as text when one uses eww as a browser. Or how how seamless it is taking notes on PDFs one's reading in emacs, or even externally zathura (that's for a future blog post though! :)). + +[Tags][20]: [emacs][21] + +-------------------------------------------------------------------------------- + +via: https://jao.io/blog/2022-06-19-simple-note-taking.html + +作者:[jao][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://jao.io +[b]: https://github.com/lujun9972 +[1]: https://www.youtube.com/watch?v=mLzFJcLpDFI +[2]: https://jao.io/img/consult-recoll.png +[3]: tmp.xKXexbfGmW#fn.1 +[4]: tmp.xKXexbfGmW#fn.2 +[5]: https://codeberg.org/jao/consult-recoll +[6]: https://codeberg.org/jao/elibs/src/main/lib/doc/jao-org-notes.el +[7]: https://codeberg.org/jao/elibs/src/main/lib/doc/jao-org-notes.el#L133 +[8]: https://codeberg.org/jao/elibs/src/main/lib/doc/jao-org-notes.el#L174 +[9]: https://codeberg.org/jao/elibs/src/main/lib/doc/jao-org-notes.el#L143 +[10]: https://codeberg.org/jao/elibs/src/main/lib/doc/jao-org-notes.el#L126 +[11]: https://jao.io/img/org-notes.png +[12]: tmp.xKXexbfGmW#fn.3 +[13]: https://codeberg.org/jao/elibs/src/main/lib/doc/jao-org-notes.el#L161 +[14]: https://www.lesbonscomptes.com/recoll/ +[15]: tmp.xKXexbfGmW#fn.4 +[16]: tmp.xKXexbfGmW#fnr.1 +[17]: tmp.xKXexbfGmW#fnr.2 +[18]: tmp.xKXexbfGmW#fnr.3 +[19]: tmp.xKXexbfGmW#fnr.4 +[20]: https://jao.io/blog/tags.html +[21]: https://jao.io/blog/tag-emacs.html From 199f76534c9ed14ed742220aaa6c4e4cb6dab4ad Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 16:25:34 +0800 Subject: [PATCH 0473/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220608?= =?UTF-8?q?=20slimmer=20emacs=20with=20kitty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220608 slimmer emacs with kitty.md --- .../tech/20220608 slimmer emacs with kitty.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/tech/20220608 slimmer emacs with kitty.md diff --git a/sources/tech/20220608 slimmer emacs with kitty.md b/sources/tech/20220608 slimmer emacs with kitty.md new file mode 100644 index 0000000000..a74b3a287e --- /dev/null +++ b/sources/tech/20220608 slimmer emacs with kitty.md @@ -0,0 +1,94 @@ +[#]: subject: "slimmer emacs with kitty" +[#]: via: "https://jao.io/blog/2022-06-08-slimmer-emacs-with-kitty.html" +[#]: author: "jao https://jao.io" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +slimmer emacs with kitty +====== + +A problem of using Emacs as my operating system is that any otherwise minor friction with its interface quickly becomes an irritant, and i thus find myself needed a truly smooth emacs-human interaction; or, to be more precise _emacs-jao_ interaction: my must needs are going to be, sometimes, triffles to you, and the other way round. + +During the last year, a perceived sluggishness in Emacs's X11 display performance, together with a very noticeably increased RAM consumption have become one of those irritants, and i decided that enough is enough, and moved (for the time being at least) from exwm to, essentially, using xmonad and kitty as my Emacs's display engine. + +![][1] + +For several years now, i've been using exwm as my main desktop, and been quite happy with it. One of the reasons is that i almost don't get bit by blocking external programs because, well, i don't use many external programs. It's still a bit annoying when every now and then emacs gets stuck in a busy loop and i have to wait to regain control of my computer (since emacs is single threaded), and for that reason, i also have an [xmonad configuration][2] tailored to essentially use emacs for everything, with an occasional detour to a web browser or maybe a video player. That way, if emacs gets stuck, i can do something else, and, also, i don't need to restart my desktop when i recompile Emacs. + +Before that, i had been using emacs as a daemon and `emacsclient -t` in an `rxvt` terminal as my primary emacs interface for many years. The limitations weren't many for my use cases: one cannot display images, but it's very easy to set up things so that one gets a, say, `feh` pop up when needed (which is not often) or open an `eww` buffer in Firefox instead; and one cannot display PDFs inside Emacs. That last one was harder, because i keep my notes (using a [very simple library of mine][3]) in org mode with links to PDFs and need to be able to easily go from one to the other. I found a good (for my needs) solution for the latter too, but well, running Emacs under X11 (or even under wayland in sway) also worked and was convenient, so i thoght my terminal days were just a fond memory. + +Until a year or so ago, when i started noticing my X11 Emacs instance consuming considerably more RAM (as in, 5 times what it used to need for long running sessions… still more or less what a "modern" browser takes, i know, but i don't want my Emacs to resemble a browser in any way). I normally run Emacs compiled from master, so hiccups happen and i didn't panic: there probably was some accidental leak that would be fixed and i could even help locating it. Unfortunately, with the release of Emacs 28, this higher memory needs seem consolidated (and no, i don't use native compilation, so they don't come from there), as is the tendency to eat more memory as the session grows longer (without changes in my usage patterns, the RSS footprint of the process tends to increase at least 500Mb per day). And, even more unfortunately, i seem to be the only person on earth suffering from this: i haven't found yet any fellow emacser observing the problem, and, although i've tried, i couldn't find a single package (or combination thereof) causing this issue. Except, that is, for the X11 display mode. + +Fact is, if i run emacs in a terminal with the same packages as normal and with the same usage patterns (which are essentially the same as when i use it in X11), there is no memory leak. Once i load the standard set of packages i use (chats, eww, notmuch, cider, that kind of thing, plush all [my customizations][4]), an X11 emacs will take around 500Mb RAM, while a terminal one is happy with 250Mb. And that's fair enough. Problem is, after 3 or 4 days using the X11 version, RAM is consumption jumping to 3 or 4 Gb, while a terminal-based emacs used in essentially the same way will typically be around 500Mb. + +Thanks to the experiment above, i'm reasonably sure that the graphical interface is at the root of my memory woes. That by itself would have already been enough to seriously consider a return to my emacs daemon days, but there was more: using emacs in an X terminal after all this time, really made me realize how slow the rendering in X11 Emacs is by comparison. I mean, rendering in X11 is not slow in absolute terms, it's perfectly usable in my experience; but, in a terminal? let me tell you, it's _fast_, an a real pleasure to use. + +So all i needed was to smooth out a few wrinkles and it'd be a done deal. First thing was to try with [kitty][5] as terminal emulator, just because it's the one i use these days and i like how it's developed. It took a bit of wrestling to make sure that my usual keybindings (or slight modifications of them) would work, and also some documentation reading to come up with a good configuration, but it wasn't too hard: you can find my `kitty.conf` [here][6]. A point worth making is that running Emacs with kitty as a graphical frontend is, for practical purposes, very close to running Emacs in "graphical mode"; for instance, kitty has background transparency, uses the same font rendering engine ([HarfBuzz][7]) as X11 Emacs, and it's perfectly able to display things like emojis; it just does all that faster! One only needs to get rid of the discontinuous vertical separators in Emacs: + +``` + + (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?│)) + +``` + +and also clean up the end of the modeline: + +``` + + (setq mode-line-end-spaces nil) + +``` + +and then you get the screenshot above of some random buffers in and emacs running with the config above (and my regular color theme): as you can see, hard to distinguish from an X session. + +Also, i definitely needed to interact seamlessly with the X clipboard, as you'd do in X11 Emacs: + +``` + + (use-package xclip + :ensure t) + + (unless (display-graphic-p) (xclip-mode 1)) + +``` + +As mentioned, i delegate image display to `feh` and `firefox` in the few cases i need it, and interplay with `zathura` to handle PDFs and my associated notes, but that's stuff for a future post[1][8]. With that in place, i'm finding myself pretty comfortable living in terminal Emacs most of my time. + +Speedy hacking! + +### Footnotes: + +[1][9] + +The gist of it is pretty simple though, and it's basically distilled in [this section][10] of my configuration. + +[Tags][11]: [emacs][12] + +-------------------------------------------------------------------------------- + +via: https://jao.io/blog/2022-06-08-slimmer-emacs-with-kitty.html + +作者:[jao][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://jao.io +[b]: https://github.com/lujun9972 +[1]: https://jao.io/img/emacs-kitty.png +[2]: https://codeberg.org/jao/xmonad-config +[3]: https://codeberg.org/jao/elibs/src/branch/main/lib/doc/jao-org-notes.el +[4]: https://codeberg.org/jao/elibs/src/branch/main +[5]: https://sw.kovidgoyal.net/kitty/ +[6]: https://codeberg.org/jao/elibs/src/branch/main/data/kitty.conf +[7]: https://en.wikipedia.org/wiki/HarfBuzz +[8]: tmp.aRLm0IGxe1#fn.1 +[9]: tmp.aRLm0IGxe1#fnr.1 +[10]: https://codeberg.org/jao/elibs/src/main/init.el#L1595 +[11]: https://jao.io/blog/tags.html +[12]: https://jao.io/blog/tag-emacs.html From ef80554a37b13b124fcfccef77b14247a1abd9df Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 16:26:17 +0800 Subject: [PATCH 0474/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020211109?= =?UTF-8?q?=20relaying=20mail=20to=20multiple=20smarthosts=20with=20opensm?= =?UTF-8?q?tpd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md --- ...l to multiple smarthosts with opensmtpd.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md diff --git a/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md b/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md new file mode 100644 index 0000000000..f0d165e51a --- /dev/null +++ b/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md @@ -0,0 +1,85 @@ +[#]: subject: "relaying mail to multiple smarthosts with opensmtpd" +[#]: via: "https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html" +[#]: author: "jao https://jao.io" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +relaying mail to multiple smarthosts with opensmtpd +====== + +I like to use a local smtp daemon for sending email from my laptop, because that way i can send emails even while disconnected and, even when the network is up, because i don't have to wait for the network protocol to be completed with a remote smarthost. Oh, and i also need local mail delivery. + +For many years i've used postfix to those ends; it has an acceptably simply-ish configuration; but recently i've become fond of VPNs ([mullvad][1], if you want to know), and was annoyed by its getting confused when `/etc/resolv.conf` changes (for instance, because you get the VPN up after postfix's service has started). I've found a pleasantly simple alternative: [OpenSMTPD][2]. + +Say i want to use the SMTP server fencepost.gnu.org when sending an email as [jao@gnu.org][3] and smtp.jao.io when writing with [mail@jao.io][4] or [news@xmobar.org][5] in my `From` header. OpenSMTPD let's you do that with a very simple configuration file in `/etc/smtpd.conf`[1][6]: + +``` + + table aliases file:/etc/aliases + table secrets db:/etc/mail/secrets.db + + table sendergnu { jao@gnu.org } + table senderjao { mail@jao.io, news@xmobar.org } + + listen on localhost + + action "local" mbox alias + action "relaygnu" relay host smtp+tls://gnu@fencepost.gnu.org:587 auth + action "relayjao" relay host smtps://jao@smtp.jao.io:465 auth + + match for local action "local" + match for any from mail-from action "relaygnu" + match for any from mail-from action "relaygan" + +``` + +where we have also configured local delivery for a good measure. That's the full configuration file! The only other thing needed is generating the `secrets.db` file with the users and passwords corresponding to the keys `gnu` and `jao` (those are just arbitrary names). To that end, we create a plain text file with them, using entries of the form ` :`: + +``` + + gnu jao:my fencepost password + jao mail@jao.io:xxxxxxxxxxxxxxxxx + +``` + +where my user for `fencepost.gnu.org` is `jao` and for `smtp.jao.io` is `mail@jao.io` (you see there's no need of escaping spaces or ats). Then we use the program `makemap` to create the secrets db: + +``` + + makemap secrets && rm secrets + +``` + +### Footnotes: + +[1][7] + +That's the default configuration file in my debian box; other popular alternative is `/etc/openstmpd.conf`. + +[Tags][8]: [sundry][9] + +-------------------------------------------------------------------------------- + +via: https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html + +作者:[jao][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://jao.io +[b]: https://github.com/lujun9972 +[1]: https://en.wikipedia.org/wiki/Mullvad +[2]: https://www.opensmtpd.org/ +[3]: mailto:jao@gnu.org +[4]: mailto:mail@jao.io +[5]: mailto:news@xmobar.org +[6]: tmp.zHAc8OxDnm#fn.1 +[7]: tmp.zHAc8OxDnm#fnr.1 +[8]: https://jao.io/blog/tags.html +[9]: https://jao.io/blog/tag-sundry.html From c6608826891a4b0602b245446c06563ce9d2d827 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 16:27:44 +0800 Subject: [PATCH 0475/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210517?= =?UTF-8?q?=20reading=20and=20searching=20gmane=20with=20gnus,=20fast?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210517 reading and searching gmane with gnus, fast.md --- ...ing and searching gmane with gnus, fast.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20210517 reading and searching gmane with gnus, fast.md diff --git a/sources/tech/20210517 reading and searching gmane with gnus, fast.md b/sources/tech/20210517 reading and searching gmane with gnus, fast.md new file mode 100644 index 0000000000..51816eac6c --- /dev/null +++ b/sources/tech/20210517 reading and searching gmane with gnus, fast.md @@ -0,0 +1,91 @@ +[#]: subject: "reading and searching gmane with gnus, fast" +[#]: via: "https://jao.io/blog/2021-05-17-reading-and-searching-gmane-with-gnus-fast.html" +[#]: author: "jao https://jao.io" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +reading and searching gmane with gnus, fast +====== + +Reading mailing lists via Gnus by pointing it to the usenet service news.gmane.io is a well-known trick among emacsers. It has a couple of drawbacks, though: network latency and no search. The two problems have, as almost always with almost any problem in Emacs land, a cure. The names of the game are, in this case, leafnode and notmuch. + +I've been using [leafnode][1] since i was young to avoid network latency issues when Gnus fetches news from remote usenet servers. [Leafnode][1] is a store & forward NNTP proxy that can be used to give a regular newsreader off-line functionality. It works by fetching in the background news articles from a number of configured remote servers (gmane.io in our case), storing them locally and offering a local NNTP server to Gnus (or any other newsreader, for that matter). That way, one configures Gnus to fetch news from localhost, which is fast and will never block, even when one is disconnected from the interwebs. Leafnode's server implements the full protocol, so one can also post to the remote servers. + +For our case, leafnode's configuration file is very simple: + +``` + + ## Unread articles will be deleted after this many days + expire = 365 + + ## This is the NNTP server leafnode fetches its news from. + ## You need read and post access to it. Mandatory. + server = news.gmane.io + + ## Fetch only a few articles when we subscribe a new newsgroup. The + ## default is to fetch all articles. + initialfetch = 100 + +``` + +With leafnode in place, i've rarely needed to subscribe to a mailing list[1][2], and all their messages are available with the Gnus interface that we all know and love. + +With one caveat: one can search over e-mails, using either IMAP (i like dovecot's lucene indexes) or (even better) notmuch. Can we do the same with those messages we access through leafnode? Well, it turns out that, using notmuch, you can! + +First of all, leafnode stores its articles in a format recognised by notmuch's indexer. In my debian installation, the live in the directory `/var/spool/news/gmane`. On the other hand, my notmuch configuration points to `~/var/mail` as the parent directory where my mailboxes are to be found. I just created a symlink in the latter to the former and voila, notmuch is indexing all the messages retrieved by leafnode and i can search over them![2][3] + +With the version of Gnus in current emacs master, it's even better. I can tell Gnus that the search engine for the news server is notmuch: + +``` + + (setq gnus-select-method + '(nntp "localhost" + (gnus-search-engine gnus-search-notmuch + (remove-prefix "/home/jao/var/mail/")))) + +``` + +and perform searches directly in Gnus using the notmuch indexes. Or, if you prefer, you can use directly notmuch.el to find and read those usenet articles: they look just like good old email[3][4] :) + +### Footnotes: + +[1][5] + +Actually, gmane also includes _gwene_ groups that mirror RSS feeds as usenet messages, so you could extend the trick to feeds too. I however use [rss2email][6] to read RSS feeds as email, for a variety of reasons best left to a separate post. + +[2][7] + +With the `expire` parameter in leafnode's configuration set to 365, i keep locally an indexed archive of the mailing list posts less than a year old: in this age of cheap storage, one can make that much longer. One can also play with `initialfetch`. + +[3][8] + +I am not a mu4e user, but i am pretty sure one can play the same trick if that's your email indexer and reader. + +[Tags][9]: [emacs][10] + +-------------------------------------------------------------------------------- + +via: https://jao.io/blog/2021-05-17-reading-and-searching-gmane-with-gnus-fast.html + +作者:[jao][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://jao.io +[b]: https://github.com/lujun9972 +[1]: https://leafnode.sourceforge.io/ +[2]: tmp.gr7aQUOwRH#fn.1 +[3]: tmp.gr7aQUOwRH#fn.2 +[4]: tmp.gr7aQUOwRH#fn.3 +[5]: tmp.gr7aQUOwRH#fnr.1 +[6]: https://wiki.archlinux.org/title/Rss2email +[7]: tmp.gr7aQUOwRH#fnr.2 +[8]: tmp.gr7aQUOwRH#fnr.3 +[9]: https://jao.io/blog/tags.html +[10]: https://jao.io/blog/tag-emacs.html From 59f771e526438ad704edf80c12b8ed6101e549b9 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 21 Jul 2022 16:29:04 +0800 Subject: [PATCH 0476/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210111?= =?UTF-8?q?=20an=20even=20better=20video=20wharf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210111 an even better video wharf.md --- .../20210111 an even better video wharf.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/tech/20210111 an even better video wharf.md diff --git a/sources/tech/20210111 an even better video wharf.md b/sources/tech/20210111 an even better video wharf.md new file mode 100644 index 0000000000..d42ace0d0b --- /dev/null +++ b/sources/tech/20210111 an even better video wharf.md @@ -0,0 +1,121 @@ +[#]: subject: "an even better video wharf" +[#]: via: "https://jao.io/blog/2021-01-11-an-even-better-video-wharf.html" +[#]: author: "jao https://jao.io" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +an even better video wharf +====== + +A couple of days ago, [i was writing][1] about [embark][2] and my first experiment defining a new embarking to play remote video streams. Omar Antolín Camarena, embark's author, has been kind enough to not only read it, but comment on a couple of significant improvements that i think well deserve this follow-up. + +First, you'll remember that we were defining a function to detect a video URL: + +``` + + (defun jao-video-finder () + "Check whether we're looking at a video URL. + Return (video-url . ) if so." + (when-let ((url (thing-at-point-url-at-point))) + (when (string-match-p jao-video-url-rx url) + (cons 'video-url url)))) + +``` + +Once we've got a non-null `url` value, even if it's not a video URL, it's still certainly a URL, and embark has a `url` category, so we could save a new parsing by the default URL finder by saying: + +``` + + (when-let ((url (thing-at-point-url-at-point))) + (cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url)) + +``` + +This has the potential drawback that we're overriding embark's finder, `embark-target-url-at-point`, and we might prefer to keep the latter. + +Turns out that we can do that thanks to embark's _target transformers_. One can add to `embark-transformers-alist` an arbitrary function to be applied to a target of any given category, and embark will apply its actions to the transformed value. Omar calls this process, very aptly, a refinement of the target; here's how we would do it: + +``` + + (defun jao-refine-url-type (url) + "Refine type of URL in case it is a video." + (cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url)) + + (add-to-list 'embark-transformer-alist '(url . jao-refine-url-type)) + +``` + +With this strategy, we don't need `jao-video-finder` at all, and it also makes lots of sense, conceptually, to have our `video-url` defined as a refinement rather than a new target[1][3]. Omar's second suggestion is also in line with this concept: surely we want all actions available for `url` also for our `video-url`, don't we? Well, that's exactly the reason why the `embark-define-keymap` macro we used to define our actions can inherit all the actions already defined in another keymap, using the `:parent` keyword[2][4]: + +``` + + (embark-define-keymap jao-video-url-map + "Actions on URLs pointing to remote video streams." + :parent embark-url-map + ("p" jao-play-video-url)) + + (add-to-list 'embark-keymap-alist '(video-url . jao-video-url-map)) + +``` + +It is worth noting that this ability to inherit a keymap is not really an embark add-on: vanilla Emacs keymaps already have it, via the standard function `set-keymap-parent`. You could actually define `jao-video-url-map` without using `embark-define-keymap` at all, and it'd work exactly the same. + +So, our code has become shorter and more featureful: thanks, Omar! + +### Footnotes: + +[1][5] + +There's a scenario where keeping jao-video-finder could make sense, namely, if we want to alter the URL detection function. For instance, i use emacs-w3m, and there often a URL is stored as a text property (the actual text being the link text). To retrieve the URL at point there, one needs to call `w3m-anchor`, and `embark-target-url-at-point` will miss it. For that scenario, i ended up writing (and using) `jao-video-finder` defined with: + +``` + + (when-let ((url (or (w3m-anchor) (thing-at-point-url-at-point)))) + (cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url)) + +``` + +Another way of accomplishing the same thing (with another tip of the hat to Omar) would be to add a specific finder for w3m anchors (and keep using the transformer for video-url): + +``` + + (defun jao-w3m-url-finder () + (when-let ((url (w3m-anchor))) + (cons 'url url))) + + (add-to-list 'embark-target-finders #'jao-w3m-url-finder) + +``` + +This way is more modular and, depending on your taste, more elegant. These functions are small and there's not a big difference between the two approaches, but if one keeps adding finders, things can easily get uglier with the former approach. + +[2][6] + +In my original example, i was adding also `browse-url` and `browse-url-firefox` to the video map. The former is no longer necessary, because it's already present in `embark-url-map`. If we wanted to make `browse-url-firefox` available to _all_ URLs, we could add it to `embark-url-map` (remember, embark's keymaps are just Emacs keymaps). That's yet another simple way of extending embark. + +[Tags][7]: [emacs][8] + +-------------------------------------------------------------------------------- + +via: https://jao.io/blog/2021-01-11-an-even-better-video-wharf.html + +作者:[jao][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://jao.io +[b]: https://github.com/lujun9972 +[1]: https://jao.io/blog/2021-01-09-embarking-videos.html +[2]: https://github.com/oantolin/embark +[3]: tmp.VUqMT3Yft2#fn.1 +[4]: tmp.VUqMT3Yft2#fn.2 +[5]: tmp.VUqMT3Yft2#fnr.1 +[6]: tmp.VUqMT3Yft2#fnr.2 +[7]: https://jao.io/blog/tags.html +[8]: https://jao.io/blog/tag-emacs.html From edc653515eb338f9a7b32bc00e005c2f57cccf18 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Thu, 21 Jul 2022 20:45:23 +0800 Subject: [PATCH 0477/3123] translated --- ... And Docker Compose In Ubuntu 22.04 LTS.md | 391 ----------------- ... And Docker Compose In Ubuntu 22.04 LTS.md | 395 ++++++++++++++++++ 2 files changed, 395 insertions(+), 391 deletions(-) delete mode 100644 sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md create mode 100644 translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md diff --git a/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md b/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md deleted file mode 100644 index a6e46dfa75..0000000000 --- a/sources/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md +++ /dev/null @@ -1,391 +0,0 @@ -[#]: subject: "How to Install Docker And Docker Compose In Ubuntu 22.04 LTS" -[#]: via: "https://ostechnix.com/install-docker-ubuntu/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Docker And Docker Compose In Ubuntu 22.04 LTS -====== -A Step By Step Guide To Install Docker Engine With Docker Compose In Ubuntu. - -In this guide, we will see what is **Docker**, how to **install Docker Engine in Ubuntu** Linux. In addition, we will also see how to **install Docker compose**, a tool to define and run multi-container Docker applications. - -This guide has been officially tested on Ubuntu 22.04 LTS. However, it should work on older versions such as 20.04 LTS, and 18.04 LTS. For better security and stability, I recommend you to use the most recent Ubuntu 22.04 LTS version. - -### What Is Docker? - -**Docker** is a fast, lightweight and OS level virtualization technology for developers and system administrators who wants to build an application with all of required dependencies, and ship it out as only one package. - -Unlike other Virtualization methods, such as VMWare, Xen and VirtualBox, there is no need of separate guest operating system for each virtual machine. - -All Docker containers efficiently share the host operating system's Kernel. Each container will run in an isolated userspace in the same operating system. - -Docker containers will also run on any Linux variant. Let us say you're working in Fedora, and I am using Ubuntu. We can still develop, share and distribute the Docker images with each other. - -You don't have to worry about the OS, software, customized settings, or anything. We can continue the development as  long as we have Docker installed in our host system. Simply put, Docker will work everywhere! - -You read two terms in the above paragraphs namely **Docker images** and **Docker containers**. You might wonder, what they are and what is the difference between them. - -In layman's terms, a Docker image is a file which describes how a Container should behave, whereas Docker container is the running (or stopped) state of the Docker image. - -Hope you got a basic idea about Docker. Refer official Docker user guide for more details. The link is attached at the end of this guide. - -### Docker Requirements - -To install and configure Docker, your system must meet the following minimum requirements. - -1. 64 bit Linux or Windows operating systems. -2. If you're on Linux, the Kernel version should be 3.10 or above. -3. An user account with `sudo` privileges. -4. VT (virtualization technology) support enabled on your system BIOS. [Read: [How To Find If A CPU Supports Virtualization Technology (VT)][1]] -5. Your system should be connected to Internet. - -In Linux, to verify the Kernel and architecture details, run the following command from the Terminal: - -``` -$ uname -a -``` - -**Sample Output:** - -``` -Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux -``` - -As you see in the above output, my Ubuntu system's kernel version is **5.15.35-3-pve**and my Ubuntu system's architecture is **64 bit** (**x86_64 x86_64 x86_64 GNU/Linux**). Check the bold letters in the above result. - -**Heads Up:** Here, I am using Ubuntu 22.04 container in **[Proxmox][2]**. This is why you see word "pve" in the kernel version in the above output. If you're using Ubuntu physical (or virtual) machine, you will see **5.15.35-3-generic** as kernel version. - -Well, the Kernel version is higher than the minimum requirement, and the arch is 64 bit. So, we can install and use Docker without any problems. - -Please note that it doesn't matter which Ubuntu OS you use. Also, It doesn't matter whether you use Ubuntu Desktop or Ubuntu Server edition or any other Ubuntu variants such as Lubuntu, Kubuntu, Xubuntu. - -Docker will work just fine as long as your system has the Kernel version 3.10+, and your system's arch is 64 bit. - -### Install Docker In Ubuntu 22.04 LTS - -First of all, update your Ubuntu system. - -#### 1. Update Ubuntu - -Open your Terminal, and run the following commands one by one: - -``` -$ sudo apt update -``` - -``` -$ sudo apt upgrade -``` - -``` -$ sudo apt full-upgrade -``` - -#### 2. Add Docker Repository - -First of all, install the necessary certificates and to allow apt package manager to use a repository over HTTPS using command: - -``` -$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -``` - -Next, add Docker's official GPG key by running the following commands: - -``` -$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -``` - -Add the Docker official repository: - -``` -$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -``` - -Update Ubuntu sources list using command: - -``` -$ sudo apt update -``` - -#### 3. Install Docker - -Finally, run the following command to install latest Docker CE in Ubuntu 22.04 LTS server: - -``` -$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -``` - -![Install Docker In Ubuntu][3] - -You can, of course, install a specific Docker version as well. To check the list of available Docker versions, run: - -``` -$ apt-cache madison docker-ce -``` - -**Sample output:** - -``` -docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages -docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages -docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages -docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages -docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages -``` - -You can pick any available version from the above list and install it. For instance, to install version **5:20.10.16~3-0~ubuntu-jammy**, run: - -``` -$ sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io -``` - -Once it is installed, verify if the Docker service is running with command: - -``` -$ systemctl status docker -``` - -You'll see an output something like below. - -``` -* docker.service - Docker Application Container Engine - Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) - Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago -TriggeredBy: * docker.socket - Docs: https://docs.docker.com - Main PID: 2208 (dockerd) - Tasks: 8 - Memory: 29.6M - CPU: 126ms - CGroup: /system.slice/docker.service - `-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock - -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:> -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" > -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start." -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a> -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done." -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c> -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over> -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization" -Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine. -Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock" -``` - -Great! Docker service is up and running! - -If it is not started already, run the following command to start Docker service. - -``` -$ sudo systemctl start docker -``` - -Enable Docker service to start automatically on every reboot: - -``` -$ sudo systemctl enable docker -``` - -The installed Docker version can be found using command: - -``` -$ sudo docker version -``` - -**Sample Output:** - -``` -Client: Docker Engine - Community - Version: 20.10.17 - API version: 1.41 - Go version: go1.17.11 - Git commit: 100c701 - Built: Mon Jun 6 23:02:46 2022 - OS/Arch: linux/amd64 - Context: default - Experimental: true - -Server: Docker Engine - Community - Engine: - Version: 20.10.17 - API version: 1.41 (minimum version 1.12) - Go version: go1.17.11 - Git commit: a89b842 - Built: Mon Jun 6 23:00:51 2022 - OS/Arch: linux/amd64 - Experimental: false - containerd: - Version: 1.6.6 - GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 - runc: - Version: 1.1.2 - GitCommit: v1.1.2-0-ga916309 - docker-init: - Version: 0.19.0 - GitCommit: de40ad0 -``` - -![Check Docker Version][4] - -#### 4. Testing Docker - -Let us go ahead, and test whether Docker is working or not. - -To do so, run: - -``` -$ sudo docker run hello-world -``` - -The above command will download a test Docker image, and execute a sample **hello_world** program inside the container. - -If you see an output something like below, congratulations! Docker is working fine in our Ubuntu system. - -``` -Unable to find image 'hello-world:latest' locally -latest: Pulling from library/hello-world -2db29710123e: Pull complete -Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651 -Status: Downloaded newer image for hello-world:latest - -Hello from Docker! -This message shows that your installation appears to be working correctly. - -To generate this message, Docker took the following steps: - 1. The Docker client contacted the Docker daemon. - 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. - (amd64) - 3. The Docker daemon created a new container from that image which runs the - executable that produces the output you are currently reading. - 4. The Docker daemon streamed that output to the Docker client, which sent it - to your terminal. - -To try something more ambitious, you can run an Ubuntu container with: - $ docker run -it ubuntu bash - -Share images, automate workflows, and more with a free Docker ID: - https://hub.docker.com/ - -For more examples and ideas, visit: - https://docs.docker.com/get-started/ -``` - -![Run Hello World Docker Container][5] - -Great! Docker is ready to use. - -#### 5. Run Docker As Non-root User In Linux (Optional) - -By default, the Docker daemon binds to a Unix socket instead of a TCP port. Since that **Unix socket is owned by the root** user, the Docker daemon will only run as the root user. Hence, the normal users can't perform most Docker commands. - -If you want to run Docker as non-root user in Linux, refer the following guide: - -* [How To Run Docker As Non-root User In Linux][6] - -I personally do not use this and **do not recommend it** as well. If you don't expose your system to Internet, it is fine. However, do not run Docker as non-root user in production system. - -### Install Docker Compose In Ubuntu - -**Docker Compose** is a tool that can be used to define and run multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you can create and start all the services from your configuration. - -We can install Docker Compose using any one of the following methods. - -#### Method 1 - Install Docker Compose Using Binary - -Download the latest Docker Compose from [here][7]. - -As of writing this, the latest version was **2.6.1**. - -Run the following command to download latest stable Docker compose file: - -``` -$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose -``` - -If a new version is available, just replace the number **v2.6.1** in the above command with the new version number. Please don't forget to preface **"v"** before the version number. - -Finally, apply executable permissions to the binary using command: - -``` -$ sudo chmod +x /usr/local/bin/docker-compose -``` - -To check installed docker composer version, run: - -``` -$ docker-compose version -Docker Compose version v2.6.1 -``` - -#### Method 2 - Install Docker Compose Using PiP - -Alternatively, we can install Docker Compose using **PIP**. Pip is a python package manager used to install applications written in Python programming language. - -Refer the following guide to install Pip on your system. - -* [How To Manage Python Packages Using Pip][8] - -Once pip installed, run the following command to install docker compose. The following command is same for all Linux distributions! - -``` -$ pip install docker-compose -``` - -After installing Docker Compose, you can check the version with command: - -``` -$ docker-compose --version -``` - -You will see an output something like below. - -``` -docker-compose version 2.6.1, build 8a1c60f6 -``` - -Congratulations! We have successfully installed Docker Community Edition and Docker Compose. - -I installed Docker, now what? Check the next article in this series to learn the Docker basics. - -* [Getting started with Docker][9] - -To install Docker in RPM based systems such as RHEL, Fedora, CentOS, AlmaLinux, Rocky Linux and openSUSE, check the following link. - -* [Install Docker in CentOS][10] - -### Conclusion - -In this guide, we discussed what is Docker and how to install Docker in Ubuntu 22.04 LTS Jammy Jellyfish. Then we learned how to test docker installation by running a hello-world docker image. Finally, we concluded the tutorial by installing Docker compose using two different ways. - -**Resource:** - -* [Docker website][11] - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/install-docker-ubuntu/ - -作者:[sk][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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-find-if-a-cpu-supports-virtualization-technology-vt/ -[2]: https://ostechnix.com/install-proxmox-ve/ -[3]: https://ostechnix.com/wp-content/uploads/2022/06/Install-Docker-In-Ubuntu.png -[4]: https://ostechnix.com/wp-content/uploads/2022/06/Check-Docker-Version.png -[5]: https://ostechnix.com/wp-content/uploads/2022/06/Run-Hello-World-Docker-Container.png -[6]: https://ostechnix.com/how-to-run-docker-as-non-root-user-in-linux/ -[7]: https://github.com/docker/compose/releases -[8]: https://ostechnix.com/manage-python-packages-using-pip/ -[9]: https://ostechnix.com/getting-started-with-docker/ -[10]: https://ostechnix.com/install-docker-centos/ -[11]: https://www.docker.com/ diff --git a/translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md b/translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md new file mode 100644 index 0000000000..cd27e0a7c9 --- /dev/null +++ b/translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md @@ -0,0 +1,395 @@ +[#]: subject: "How to Install Docker And Docker Compose In Ubuntu 22.04 LTS" +[#]: via: "https://ostechnix.com/install-docker-ubuntu/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose +====== +在 Ubuntu 中使用 Docker Compose 安装 Docker 引擎详细指导 + +在这篇文章中,我们将会明白 **Docker** 是什么,如何 **在 Ubuntu 中安装 Docker 引擎** 。此外,我们也将会明白如何 **安装 Docker Compose** ,它是一个定义并运行多容器的 Docker 应用。 + +我们已经在 Ubuntu 22.04 LTS 中正式的测试了这份指南。然而,它也应该对旧版本如 20.04 LTS 和 18.04 LTS 有效。为了更好的安全性和稳定性,我推荐你使用最新的版本—— Ubuntu 22.04 LTS 。 + + +### 什么是 Docker ? + +**Docker** 是一个快捷,轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。 + +Docker 与其他如 VMWare 、Xen 、以及 VirtualBox 等工具的虚拟化方式不同,每个虚拟机不需要单独的客户操作系统。 + +所有的 Docker 容器有效地共享主机系统内核。每个容器都在同一操作系统中的隔离用户空间中运行。 + +Docker 容器可以在任何 Linux 版本上运行。比如说你使用 Fedora ,我用 Ubuntu 。我们能相互开发、共享并分发 Docker 镜像。 + +你无需担心操作系统、软件以及自定义设置,任何事都不用担心。只要我们的主机安装了 Docker ,就能持续开发。简言之,Docker 能够在任何地方运行! + +前文中你读到了两个词:**Docker 镜像** 和 **Docker 容器** ,或许你在想它们的区别。 + +通俗地说,Docker 镜像是一个描述容器应该如何表现的文件,而 Docker 容器是 Docker 镜像的运行(或停止)状态。 + +希望你能够理解 Docker 的基础概念。更多细节,你可以参考文章末尾的 Docker 官方指导手册。 + +### Docker 依赖项 + +为了安装并配置 Docker ,你的系统必须满足下列最低要求: + + +1. 64 位 Linux 或 Windows 系统 +2. 如果使用 Linux ,内核版本必须不低于 3.10 +3. 能够使用 `sudo` 权限的用户 +4. 在你系统 BIOS 上启用了 VT(虚拟化技术)支持 on your system BIOS. [参考: [如何查看 CPU 支持 虚拟化技术(VT)][1]] +5. 你的系统应该联网 + +在 Linux ,在终端上运行以下命令验证内核以及架构详细信息: + +``` +$ uname -a +``` + +**输出样例:** + +``` +Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux +``` + +正如上面你看到的那样,我的 Ubuntu 系统内核版本是 **5.15.35-3-pve** 并且系统架构是 **64 位**(**x86_64 x86_64 x86_64 GNU/Linux**)。查看上方结果的黑体字。 + +**注意:** 这里,我在 **[Proxmox][2]** 中使用 Ubuntu 22.04 容器。这是你看到上方内核版本中有 “pve” 字符的原因。如果你正在使用 Ubuntu 实体(或者虚拟)机,你将看到系统版本为 **5.15.35-3-generic** 。 + +内核版本需要不低于最低要求的版本,并且是 64 位机器。这样不会有任何问题,我们能顺利安装并使用 Docker 。 + +请注意你使用哪一个 Ubuntu 系统不重要。并且你使用 Ubuntu 桌面或服务器版本,亦或者其他 Ubuntu 变种如 Lubuntu 、Kubuntu 、Xubuntu ,都不重要。 + +Docker 会正常运行,只要你的系统内核版本不低于 3.10 ,并且是 64 位系统。 + +### 在 Ubuntu 22.04 LTS 中安装 Docker + +首先,更新你的 Ubuntu 系统。 + +#### 1. 更新 Ubuntu + +打开终端,依次运行下列命令: + +``` +$ sudo apt update +``` + +``` +$ sudo apt upgrade +``` + +``` +$ sudo apt full-upgrade +``` + +#### 2. 添加 Docker 库 + +首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库: + +``` +$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release +``` + +然后,运行下列命令添加 Docker 的官方 GPG 密钥: + +``` +$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +``` + +添加 Docker 官方库: + +``` +$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +使用命令更新 Ubuntu 源列表: + +``` +$ sudo apt update +``` + +#### 3. 安装 Docker + +最后,运行下列命令在 Ubuntu 22.04 LTS 服务器中安装最新 Docker CE 。 + +``` +$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin +``` + +![Install Docker In Ubuntu][3] + +当然你也可以安装其他版本 Docker 。运行下列命令检查可以安装的 Docker 版本: + +``` +$ apt-cache madison docker-ce +``` + +**输出样例:** + +``` +docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages +``` + +你可以挑选上面列表中的任何版本进行安装。例如,安装 **5:20.10.16~ 3-0 ~ubuntu-jammy** 这个版本,运行: + +``` +$ sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io +``` + +安装完成后,运行如下命令验证 Docker 服务是否在运行: + +``` +$ systemctl status docker +``` + +你会看到类似下面的输出: + +``` +* docker.service - Docker Application Container Engine + Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) + Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago +TriggeredBy: * docker.socket + Docs: https://docs.docker.com + Main PID: 2208 (dockerd) + Tasks: 8 + Memory: 29.6M + CPU: 126ms + CGroup: /system.slice/docker.service + `-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock + +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" > +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start." +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done." +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over> +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization" +Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine. +Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock" +``` + +好极了!Docker 服务已启动并运行! + +如果没有运行,运行以下命令运行 Docker 服务: + +``` +$ sudo systemctl start docker +``` + +使 Docker 服务在每次重启时自动启动: + +``` +$ sudo systemctl enable docker +``` + +可以使用以下命令查看已安装的 Docker 版本: + +``` +$ sudo docker version +``` + +**输出样例:** + +``` +Client: Docker Engine - Community + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c701 + Built: Mon Jun 6 23:02:46 2022 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b842 + Built: Mon Jun 6 23:00:51 2022 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: v1.1.2-0-ga916309 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +``` + +![Check Docker Version][4] + +#### 4. 测试 Docker + +让我们继续,测试 Docker 是否运行正常: + +运行: + +``` +$ sudo docker run hello-world +``` + +上述命令会下载一个 Docker 测试镜像,并在容器内执行一个 **hello_world** 样例程序。 + +如果你看到类似下方的输出,那么祝贺你!Docker 正常运行在你的 Ubuntu 系统中。 + +``` +Unable to find image 'hello-world:latest' locally +latest: Pulling from library/hello-world +2db29710123e: Pull complete +Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651 +Status: Downloaded newer image for hello-world:latest + +Hello from Docker! +This message shows that your installation appears to be working correctly. + +To generate this message, Docker took the following steps: + 1. The Docker client contacted the Docker daemon. + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. + (amd64) + 3. The Docker daemon created a new container from that image which runs the + executable that produces the output you are currently reading. + 4. The Docker daemon streamed that output to the Docker client, which sent it + to your terminal. + +To try something more ambitious, you can run an Ubuntu container with: + $ docker run -it ubuntu bash + +Share images, automate workflows, and more with a free Docker ID: + https://hub.docker.com/ + +For more examples and ideas, visit: + https://docs.docker.com/get-started/ +``` + +![Run Hello World Docker Container][5] + +很好!可以使用 Docker 了。 + +#### 5. 作为非 root 用户运行 Docker (选做) + +默认情况下,Docker 守护进程(Docker daemon)绑定到 Unix 套接字而不是 TCP 端口。由于 **Unix 套接字由 root** 用户拥有,Docker 守护程序将仅以 root 用户身份运行。因此,普通用户无法执行大多数 Docker 命令。 + +如果你想要在 Linux 中作为非 root 用户运行 Docker ,参考下方链接: + +* [如何在 Linux 中作为非 root 用户运行 Docker][6] + +我个人不这样做也**不推荐**你这么做。如果你不会在互联网上暴露你的系统,那没问题。然而,不要在生产系统中以非 root 用户身份运行 Docker 。 + +### 在 Ubuntu 中安装 Docker Compose + +**Docker Compose** 是一个可用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,你可以使用 Compose 文件来配置应用程序的服务。然后,使用单个命令,你可以从配置中创建和启动所有服务。 + +下列任何方式都可以安装 Docker Compose 。 + +#### 方式 1 - 使用二进制文件安装 Docker Compose + +从 [这里][7] 下载最新 Docker Compose 。 + +当我在写这篇文章时,最新版本是 **2.6.1** 。 + +运行下列命令安装最新稳定的 Docker Compose 文件: + +``` +$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +``` + +如果有更新版本,只需要将上述命令中的 **v2.6.1** 替换为最新的版本号即可。请不要忘记数字前的 **"v"** 。 + +最后,使用下列命令赋予二进制文件可执行权限: + +``` +$ sudo chmod +x /usr/local/bin/docker-compose +``` + +运行下列命令检查安装的 Docker Composer 版本: + +``` +$ docker-compose version +Docker Compose version v2.6.1 +``` + +#### 方式 2 - 使用 PiP 安装 Docker Compose + +或许,我们可以使用 **PIP** 安装 Docker Compose 。Pip 是 Python 包管理器,用来安装使用 Python 编写的应用程序。 + +参考下列链接安装 Pip 。 + +* [如何使用 Pip 管理 Python 包][8] + +安装 pip 后,运行以下命令安装 Docker Compose。下列命令对于所有 Linux 发行版都是相同的! + +``` +$ pip install docker-compose +``` + +安装 Docker Compose 后,使用下列命令检查版本: + +``` +$ docker-compose --version +``` + +你将会看到类似下方的输出: + +``` +docker-compose version 2.6.1, build 8a1c60f6 +``` + +恭喜你!我们已经成功安装了 Docker Community 版本和 Docker Compose 。 + + +安装了 Docker,然后呢?查看本系列的下一篇文章,了解 Docker 基础知识。 + +* [开始使用 Docker][9] + +要在基于 RPM 的系统(例如 RHEL、Fedora、CentOS、AlmaLinux、Rocky Linux 和 openSUSE)中安装 Docker,请参考以下链接。 + +* [在 CentOS 中安装 Docker][10] + +### 总结 + +在这篇教程中,我们讨论了 Docker 是什么,如何在 Ubuntu 22.04 LTS Jammy Jellyfish 中安装 Docker 。然后学习了如何通过运行 hello-world Docker 镜像测试 Docker 是否成功安装。最后,我们通过使用两种不同的方式安装 Docker Compose 作为本教程的结尾。 + +**资料:** + +* [Docker 主页][11] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/install-docker-ubuntu/ + +作者:[sk][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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-find-if-a-cpu-supports-virtualization-technology-vt/ +[2]: https://ostechnix.com/install-proxmox-ve/ +[3]: https://ostechnix.com/wp-content/uploads/2022/06/Install-Docker-In-Ubuntu.png +[4]: https://ostechnix.com/wp-content/uploads/2022/06/Check-Docker-Version.png +[5]: https://ostechnix.com/wp-content/uploads/2022/06/Run-Hello-World-Docker-Container.png +[6]: https://ostechnix.com/how-to-run-docker-as-non-root-user-in-linux/ +[7]: https://github.com/docker/compose/releases +[8]: https://ostechnix.com/manage-python-packages-using-pip/ +[9]: https://ostechnix.com/getting-started-with-docker/ +[10]: https://ostechnix.com/install-docker-centos/ +[11]: https://www.docker.com/ From 3840a0c7e48aab241776433e48ac87db6f6cbd11 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 22 Jul 2022 00:08:16 +0800 Subject: [PATCH 0478/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220721=20How=20I=20use=20the=20Linux=20fmt=20comma?= =?UTF-8?q?nd=20to=20format=20text.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...se the Linux fmt command to format text.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/tech/20220721 How I use the Linux fmt command to format text.md diff --git a/sources/tech/20220721 How I use the Linux fmt command to format text.md b/sources/tech/20220721 How I use the Linux fmt command to format text.md new file mode 100644 index 0000000000..6c20109d86 --- /dev/null +++ b/sources/tech/20220721 How I use the Linux fmt command to format text.md @@ -0,0 +1,94 @@ +[#]: subject: "How I use the Linux fmt command to format text" +[#]: via: "https://opensource.com/article/22/7/fmt-trivial-text-formatter" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use the Linux fmt command to format text +====== +The fmt command is a trivial text formatter. Here's how I use it to format text and email replies. + +When I write documentation for a project, I often write the Readme file and Install instructions in plain text. I don't need to use markup languages like HTML or Markdown to describe what a project does or how to compile it. But maintaining this documentation can be a pain. If I need to update the middle of a sentence in my `Readme` text file, I need to reformat the text so I don't end up with a really long or short line in the middle of my other text that's otherwise formatted to 75 columns. Some editors include a feature that will automatically reformat text to fill paragraphs, but not all do. That's where the Linux `fmt` command comes to the rescue. + +### Format text with Linux fmt + +The `fmt` command is a trivial text formatter; it collects words and fills paragraphs, but doesn't apply any other text styling such as italics or bold. It's all just plain text. With `fmt`, you can quickly adjust text so it's easier to read. Let's say I start with this familiar sample text: + +``` +$ cat trek.txt +Space: the final +frontier. These are the voyages +of the starship Enterprise. Its +continuing mission: to explore +strange new worlds. To +seek out new life and new +civilizations. To boldly go +where no one has gone before! +``` + +In this sample file, lines have different lengths, and they are broken up in an odd way. You might have similar odd line breaks if you make lots of changes to a plain text file. To reformat this text, you can use the `fmt` command to fill the lines of the paragraph to a uniform length: + +``` +$ fmt trek.txt +Space: the final frontier. These are the voyages of the starship +Enterprise. Its continuing mission: to explore strange new worlds. To +seek out new life and new civilizations. To boldly go where no one has +gone before! +``` + +By default, `fmt` will format text to 75 columns wide, but you can change that with the -w or --width option: + +``` +$ fmt -w 60 trek.txt +Space: the final frontier. These are the voyages of +the starship Enterprise. Its continuing mission: to +explore strange new worlds. To seek out new life and new +civilizations. To boldly go where no one has gone before! +``` + +### Format email replies with Linux fmt + +I participate in an email list where we prefer plain text emails. That makes archiving emails on the list server much easier. But the reality is not everyone sends emails in plain text. And sometimes, when I reply to those emails as plain text, my email client puts an entire paragraph on one line. That makes it difficult to "quote" a reply in an email. + +Here's a simple example. When I'm replying to an email as plain text, my email client "quotes" the other person's email by adding a > character before each line. For a short message, that might look like this: + +``` +> I like the idea of the interim development builds. +``` + +A long line that doesn't get "wrapped" properly will not display correctly in my plain text email reply, because it will be just one long line with a > character at the front, like this: + +``` +> I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with. +``` + +To fix this, I bring up a terminal and copy and paste the quoted text into a new file. Then I use the -p or --prefix option to tell `fmt` what character to use as a "prefix" before each line. + +``` +$ cat > email.txt +> I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with. +^D +$ fmt -p '>' email.txt +> I like the idea of the interim development builds. This should be a +> great way to test new changes that everyone can experiment with. +``` + +The`fmt` command is a very simple text formatter, but it can do lots of useful things that help in writing and updating documentation in plain text. Explore the other options such as -c or --crown-margin to match the indentation of the first two lines of a paragraph, such as bullet lists. Also try -t or --tagged-paragraph to preserve the indentation of the first line in a paragraph, like indented paragraphs. And the -u or --uniform-spacing option to use one space between words and two spaces between sentences. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/fmt-trivial-text-formatter + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/osdc-docdish-typewriterkeys-3-series.png From 1d636091f243bb0a506c68c44e367b5efed8a58d Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 22 Jul 2022 00:09:19 +0800 Subject: [PATCH 0479/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220721=20Dell=20XPS=2013=20Plus=20-Developer=20Edi?= =?UTF-8?q?tion-=20Gets=20Certified=20for=20Ubuntu=2022.04=20LTS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...on- Gets Certified for Ubuntu 22.04 LTS.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md diff --git a/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md b/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md new file mode 100644 index 0000000000..3da479ac40 --- /dev/null +++ b/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md @@ -0,0 +1,75 @@ +[#]: subject: "Dell XPS 13 Plus (Developer Edition) Gets Certified for Ubuntu 22.04 LTS" +[#]: via: "https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Dell XPS 13 Plus (Developer Edition) Gets Certified for Ubuntu 22.04 LTS +====== +Dell’s XPS 13 Plus gets a developer edition, which may be the first certified laptop for Ubuntu 22.04 LTS. + +![xps 13 dev][1] + +Dell XPS is a premium lineup of laptops suitable for professionals and business users. + +And it is also one of the most preferred laptops to run Linux. But, if you have always wanted to get a Dell XPS laptop tailored for Ubuntu’s latest and greatest, the **Dell XPS 13 Plus Developer Edition** is for you. + +The developer edition for the 13-inch XPS laptop is now certified to work with Ubuntu 22.04 LTS. + +Certified devices are tested for the best experience, ensuring that every laptop function works as expected. + +In other words, you can find the premium laptop available pre-installed with [Ubuntu 22.04 LTS][2] and do not have to worry about its out-of-the-box experience. And, if you already have an XPS 13 Plus laptop, you can install Ubuntu 22.04 manually to get the same optimized experience. + +The laptop should be an excellent alternative to [TUXEDO Pulse 15][3] and [HP Dev One][4]. + +### Dell’s Premium Laptop With a Hassle-Free Ubuntu Experience + +While we can always install a Linux distribution on any laptop, it may not be a convenient experience all the time. + +Ranging from Wi-Fi compatibility issues to fingerprint authentication, anything can go wrong. Unless a device is officially compatible with an operating system, you can only try with chances of failure. + +However, Dell is well-known in the Ubuntu space for offering laptops that work completely fine with Ubuntu’s latest releases. Dell’s XPS 13 Plus Developer Edition is its newest offering certified by Canonical for Ubuntu 22.04 LTS. + +You can check out our [Ubuntu 22.04 LTS feature][5] article to explore what you can expect from it. + +Dell’s product manager shared some insights on their long-standing association with Canonical: + +> “XPS is an innovation portal for Dell – from its application of cutting-edge technology to experimentation of new user interfaces and experiential design,” said Jaewook Woo, Product Manager, Linux Operating System, Dell Technologies. “By bringing the enhanced performance and power management features of Ubuntu 22.04 LTS to our most advanced premium laptop, Dell and Canonical reinforce our joint commitment to continue delivering the best computing experience for developers using Ubuntu.” + +![][6] + +Dell XPS 13 Plus Developer Edition offers exciting specifications that include: + +* Quad speaker design +* Up to 4K+ resolution OLED display +* M.2 PCIe Gen 4 NVMe SSD +* Up to 32 GB, LPDDR5, 5200 MHz RAM + +The laptop will be available with Ubuntu 22.04 LTS pre-installed from August 2022 in the U.S, Canada, and select European countries. If you fancy getting one, you may want to keep an eye on [Dell’s XPS 13 Plus product page][7]. + +[Dell XPS 13 Plus][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/ + +作者:[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/07/dell-xps-13-dev-edition-with-ubuntu-22-04.jpg +[2]: https://news.itsfoss.com/ubuntu-22-04-release/ +[3]: https://news.itsfoss.com/tuxedo-pulse-gen-2/ +[4]: https://news.itsfoss.com/hp-dev-one-system76/ +[5]: https://itsfoss.com/ubuntu-22-04-release-features/ +[6]: https://news.itsfoss.com/wp-content/uploads/2022/07/dell-xps-13-plus-dev-1.jpg +[7]: https://www.dell.com/en-us/shop/dell-laptops/xps-13-plus-laptop/spd/xps-13-9320-laptop +[8]: https://www.dell.com/en-us/shop/dell-laptops/xps-13-plus-laptop/spd/xps-13-9320-laptop From f57508da3153d55f70484fe2339fdf769bce5cdf Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 22 Jul 2022 00:11:26 +0800 Subject: [PATCH 0480/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220721=20Hands-on=20With=20openSUSE=20MicroOS=20?= =?UTF-8?q?=E2=80=93=20Adaptable=20Linux=20Platform=20[First=20Look].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...– Adaptable Linux Platform [First Look].md | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 sources/tech/20220721 Hands-on With openSUSE MicroOS – Adaptable Linux Platform [First Look].md diff --git a/sources/tech/20220721 Hands-on With openSUSE MicroOS – Adaptable Linux Platform [First Look].md b/sources/tech/20220721 Hands-on With openSUSE MicroOS – Adaptable Linux Platform [First Look].md new file mode 100644 index 0000000000..2551424010 --- /dev/null +++ b/sources/tech/20220721 Hands-on With openSUSE MicroOS – Adaptable Linux Platform [First Look].md @@ -0,0 +1,133 @@ +[#]: subject: "Hands-on With openSUSE MicroOS – Adaptable Linux Platform [First Look]" +[#]: via: "https://www.debugpoint.com/opensuse-microos-alp-first-look/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Hands-on With openSUSE MicroOS – Adaptable Linux Platform [First Look] +====== +We tried the openSUSE MicroOS in a virtual machine. Here’s how it looks. + +![][0] + +![openSUSE MicroOS – ALP – KDE Plasma Desktop][1] + +### Context + +A while back, I [wrote][2] about the Adaptable Linux Platform (ALP) from openSUSE, which may replace the current long-term-support version of openSUSE Leap. + +During that time, little information was available on what exactly ALP is? How does it look? + +That said, we now have a test ISO to try additional detail about openSUSE MicroOS. And I did a quick spin and listed down the findings. + +Read on. + +### What is an Adaptable Linux Platform? + +By definition, openSUSE Micro OS via ALP introduces an atomic and transactional-based Linux operating system with a read-only root partition (via the [btrfs file system][3]). Targeted to host container workloads, it gives several advantages over traditional Linux Operating systems. + +Your root file system remains intact in every boot over your installation’s life cycle. The OS updates happen via HTTPS, and it’s atomic in nature. Via btrfs, the MicroOS creates multiple subvolumes – read-only and writable. This is one of the great advantages of btrfs, which Fedora Linux adopted as a default file system last year. + +You might be wondering, what about the software or apps you install. Well, when you install applications in MicroOS, it gets installed in a container completely separate from the root file system. It gives you advantages of early rollback, safe for harmful scripts and easy recovery for a failed system. + +To compare, it’s more like [Fedora Silverblue][4] or [Fedora Kinoite][5], which have the same atomic concept. + +### What is the future of openSUSE Leap? + +Although it is not clear about the future of openSUSE Leap but looks like the final release of openSUSE Leap would be 15.5, which is due on 2023. And after that, MicroOS gets the “Leap” version of openSUSE. + +“SUSE Linux Enterprise 15 is using the tick-tock model, where 15 SP4 would be the feature release while 15 SP5 would be more of a bug fix or perhaps it better to say *maintenance* release” says Lubos Kocman in an earlier [email][6]. + +### openSUSE MicroOS – Test Drive + +#### Download and Installation + +Almost all the necessary types of MicroOS images are available, classified by CPU architecture and platforms. So, you have the traditional 64-bit ISO image with Desktop Environments for desktops, laptops, and then the other container, cloud and VM images. + +For Laptops and desktops, the available options at the moment are GNOME & KDE Plasma. And it supports only KVM for virtual machines (such as [virt-manager][7]). + +I downloaded the KDE Plasma edition with a full DVD image of around 3+ GB in size. You can find the download links [here][8]. + +The installer is the same as the openSUSE installer. However, there are specific settings for the type of MicroOS installation you want to perform. For example, before installation, you need to choose whether the installation is for desktops, containers, remote attestations and others. + +![openSUSE MicroOS Installation options][9] + +Thus, a default installation, for example, KDE Plasma, takes approx 2 GB of disk space. + +The installation went fine, with no problem whatsoever. + +Let’s explore. + +#### Inner Workings of openSUSE MicroOS + +From an average user standpoint, you may not find any difference between a normal openSUSE install and a MicroOS installation. The same Login screens, desktops and apps. + +But there are differences in how it is configured. + +Firstly, the installation partition has several subvolumes. As you can see in the below image, it has several volumes, including a .snapshot directory. This directory stores snapshots of your system, as mentioned above. It’s a complete file system copy. + +![Subvolume structure in MicroOS][10] + +The .snapshot directory is further expanded with the snapshot#, which increments by 1 starting with 1. As you can see in the image below, the first snapshot 1 has a complete filesystem copy. + +![Snapshot contents][11] + +Since the system is read-only, you can’t do much. That’s the idea of an atomic system. But it is difficult for an average user to try it out if they don’t have a concept of a container or usage of the Toolbox. For example, there are no browser or Yast packages to install. Since I have used KDE Plasma, Discover won’t let me install any apps. + +And Zypper is also not allowing it to. + +But the [Toolbox][12] worked as it was supposed to. Initially, I thought it was not installed by default. + +The default installation of the Toolbox worked perfectly; it created a container by default with the username. + +![Toolbox creating a container in MicroOS][13] + +I managed to install a sample package to test the container in MicroOS. + +![Installing apps in a container in MicroOS][14] + +### Wrapping Up + +I hope this helps you to understand and get an idea about the openSUSE MicroOS and its inner workings. Since it is still under development, many changes may arrive in the future. + +If you are an openSUSE Leap user, you must try it and see how it’s falling into your current workflow. Because at a certain point in future, Leap shall not be available anymore. So, you may want to adopt MicroOS or Tumbleweed. + +Hence, the team is also looking for your feedback, comments or suggestions while you try this dev build and help to steer its development and decisions. You can create a post on the [official mailing list][15] with your feedback and questions. + +Finally, what do you think about MicroOS and Leap’s future? Does it beneficial for the sysadmins and average users? Let me know in the comment box below. + +*[Via openSUSE Blog][16]* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/opensuse-microos-alp-first-look/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/07/opensusehead1.jpg +[1]: https://www.debugpoint.com/wp-content/uploads/2022/07/openSUSE-MicroOS-ALP-KDE-Plasma-Desktop.jpg +[2]: https://debugpointnews.com/alp-opensuse-announcement/ +[3]: https://btrfs.wiki.kernel.org/index.php/Main_Page +[4]: https://silverblue.fedoraproject.org/ +[5]: https://kinoite.fedoraproject.org/ +[6]: https://lists.opensuse.org/archives/list/project@lists.opensuse.org/thread/SHINA373OTC7M4CVICCKXDUXN5C3MYX3/ +[7]: https://www.debugpoint.com/virt-manager/ +[8]: https://get.opensuse.org/microos/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/openSUSE-MicroOS-Installation-options.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/07/Subvolume-structure-in-MicroOS.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/Snapshot-contents.jpg +[12]: https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Toolbox-creating-a-container-in-MicroOS1.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2022/07/Installing-apps-in-container-in-MicroOS.jpg +[15]: https://lists.opensuse.org/archives/list/alp-community-wg@lists.opensuse.org/ +[16]: https://news.opensuse.org/2022/07/19/microos-desktop-use-to-help-with-alp-feedback/ From c7e2159e8651260e26cd80bfde8acd96a1fac363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Fri, 22 Jul 2022 08:09:07 +0800 Subject: [PATCH 0481/3123] Translating --- ...ow to Install Rocky Linux 9 Step by Step with Screenshots.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md index 12750449b4..543d84038f 100644 --- a/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md +++ b/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e5b2ffa8a3bcf57920336c6e5c8b2df3cdd8b174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Fri, 22 Jul 2022 08:10:09 +0800 Subject: [PATCH 0482/3123] Translating --- .../tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md index 07414785ff..49495b5065 100644 --- a/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md +++ b/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/linux-mint-21-features/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3c42b65f8b43ef6bf5f896e9b435ce753424a96c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 22 Jul 2022 09:40:12 +0800 Subject: [PATCH 0483/3123] A --- ...s -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md b/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md index 3da479ac40..f1f048a035 100644 --- a/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md +++ b/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f5c697d5e2b3264ee65599df83a1a8e866374dca Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 22 Jul 2022 09:56:59 +0800 Subject: [PATCH 0484/3123] ALL @wxy https://linux.cn/article-14852-1.html --- ...on- Gets Certified for Ubuntu 22.04 LTS.md | 76 +++++++++++++++++++ ...on- Gets Certified for Ubuntu 22.04 LTS.md | 75 ------------------ 2 files changed, 76 insertions(+), 75 deletions(-) create mode 100644 published/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md delete mode 100644 sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md diff --git a/published/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md b/published/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md new file mode 100644 index 0000000000..1917a11a33 --- /dev/null +++ b/published/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md @@ -0,0 +1,76 @@ +[#]: subject: "Dell XPS 13 Plus (Developer Edition) Gets Certified for Ubuntu 22.04 LTS" +[#]: via: "https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14852-1.html" + +戴尔 XPS 13 Plus 开发者版获得 Ubuntu 22.04 LTS 认证 +====== + +> 戴尔的 XPS 13 Plus 开发者版可能是第一款为 Ubuntu 22.04 LTS 认证的笔记本电脑。 + +![xps 13 dev][1] + +戴尔 XPS 是一个适合专业人士和商业用户的高端笔记本电脑系列。 + +而且它也是运行 Linux 的最受欢迎的笔记本电脑之一。如果你一直想得到一台为最新的 Ubuntu 量身定做的戴尔 XPS 笔记本电脑,那么 **戴尔 XPS 13 Plus 开发者版** 就是为你准备的。 + +13 英寸 XPS 笔记本电脑的开发者版现在已经通过认证,可以使用 Ubuntu 22.04 LTS 完美工作。 + +这些经过认证的设备都经过了测试,以获得最佳体验,确保每台笔记本电脑的功能都能按预期工作。 + +换句话说,你可以找到预装 [Ubuntu 22.04 LTS][2] 的优质笔记本电脑,不必担心其开箱即用的体验。而且,如果你已经有一台 XPS 13 Plus 笔记本电脑,你也可以手动安装 Ubuntu 22.04 来获得同样的优化体验。 + +这款笔记本应该是 [TUXEDO Pulse 15][3] 和 [HP Dev One][4] 的绝佳替代品。 + +### 戴尔的高级笔记本电脑拥有顺滑的 Ubuntu 体验 + +虽然我们可以在任何笔记本电脑上安装 Linux 发行版,但可能并不总是一种方便的体验。 + +从 Wi-Fi 兼容性问题到指纹认证,任何事情都可能出错。除非一个设备与一个操作系统正式兼容,否则你只能带着失败的几率去尝试。 + +然而,戴尔在 Ubuntu 领域是非常有名的,它提供的笔记本电脑在 Ubuntu 的最新版本中完全可以正常工作。戴尔的 XPS 13 Plus 开发者版运行的是经 Canonical 认证的最新推出的 Ubuntu 22.04 LTS。 + +你可以查看我们的 [Ubuntu 22.04 LTS 特色][5] 文章,探索你可以从它那里得到什么。 + +戴尔的产品经理就他们与 Canonical 的长期合作分享了一些见解。 + +> “XPS 是戴尔的创新门户 —— 从对尖端技术的应用,到新用户界面和体验式设计的实验。”戴尔技术公司的 Linux 操作系统产品经理 Jaewook Woo 说:“通过将 Ubuntu 22.04 LTS 的增强性能和电源管理功能引入我们最先进的高端笔记本电脑,戴尔和 Canonical 加强了我们的共同承诺,即继续为使用 Ubuntu 的开发者提供最佳的计算体验。” + +![][6] + +戴尔 XPS 13 Plus 开发者版提供了令人兴奋的规格,包括: + +* 四扬声器设计 +* 高达 4K+ 分辨率的 OLED 显示屏 +* M.2 PCIe Gen 4 NVMe SSD +* 高达 32GB、LPDDR5 5200MHz 内存 + +这款笔记本电脑将于 2022 年 8 月在美国、加拿大和部分欧洲国家预装 Ubuntu 22.04 LTS 发售。如果你想买一台,你可能想关注一下 [戴尔的 XPS 13 Plus 产品页面][7]。 + +> **[Dell XPS 13 Plus][8]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/ + +作者:[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/07/dell-xps-13-dev-edition-with-ubuntu-22-04.jpg +[2]: https://news.itsfoss.com/ubuntu-22-04-release/ +[3]: https://news.itsfoss.com/tuxedo-pulse-gen-2/ +[4]: https://news.itsfoss.com/hp-dev-one-system76/ +[5]: https://itsfoss.com/ubuntu-22-04-release-features/ +[6]: https://news.itsfoss.com/wp-content/uploads/2022/07/dell-xps-13-plus-dev-1.jpg +[7]: https://www.dell.com/en-us/shop/dell-laptops/xps-13-plus-laptop/spd/xps-13-9320-laptop +[8]: https://www.dell.com/en-us/shop/dell-laptops/xps-13-plus-laptop/spd/xps-13-9320-laptop diff --git a/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md b/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md deleted file mode 100644 index f1f048a035..0000000000 --- a/sources/news/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "Dell XPS 13 Plus (Developer Edition) Gets Certified for Ubuntu 22.04 LTS" -[#]: via: "https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Dell XPS 13 Plus (Developer Edition) Gets Certified for Ubuntu 22.04 LTS -====== -Dell’s XPS 13 Plus gets a developer edition, which may be the first certified laptop for Ubuntu 22.04 LTS. - -![xps 13 dev][1] - -Dell XPS is a premium lineup of laptops suitable for professionals and business users. - -And it is also one of the most preferred laptops to run Linux. But, if you have always wanted to get a Dell XPS laptop tailored for Ubuntu’s latest and greatest, the **Dell XPS 13 Plus Developer Edition** is for you. - -The developer edition for the 13-inch XPS laptop is now certified to work with Ubuntu 22.04 LTS. - -Certified devices are tested for the best experience, ensuring that every laptop function works as expected. - -In other words, you can find the premium laptop available pre-installed with [Ubuntu 22.04 LTS][2] and do not have to worry about its out-of-the-box experience. And, if you already have an XPS 13 Plus laptop, you can install Ubuntu 22.04 manually to get the same optimized experience. - -The laptop should be an excellent alternative to [TUXEDO Pulse 15][3] and [HP Dev One][4]. - -### Dell’s Premium Laptop With a Hassle-Free Ubuntu Experience - -While we can always install a Linux distribution on any laptop, it may not be a convenient experience all the time. - -Ranging from Wi-Fi compatibility issues to fingerprint authentication, anything can go wrong. Unless a device is officially compatible with an operating system, you can only try with chances of failure. - -However, Dell is well-known in the Ubuntu space for offering laptops that work completely fine with Ubuntu’s latest releases. Dell’s XPS 13 Plus Developer Edition is its newest offering certified by Canonical for Ubuntu 22.04 LTS. - -You can check out our [Ubuntu 22.04 LTS feature][5] article to explore what you can expect from it. - -Dell’s product manager shared some insights on their long-standing association with Canonical: - -> “XPS is an innovation portal for Dell – from its application of cutting-edge technology to experimentation of new user interfaces and experiential design,” said Jaewook Woo, Product Manager, Linux Operating System, Dell Technologies. “By bringing the enhanced performance and power management features of Ubuntu 22.04 LTS to our most advanced premium laptop, Dell and Canonical reinforce our joint commitment to continue delivering the best computing experience for developers using Ubuntu.” - -![][6] - -Dell XPS 13 Plus Developer Edition offers exciting specifications that include: - -* Quad speaker design -* Up to 4K+ resolution OLED display -* M.2 PCIe Gen 4 NVMe SSD -* Up to 32 GB, LPDDR5, 5200 MHz RAM - -The laptop will be available with Ubuntu 22.04 LTS pre-installed from August 2022 in the U.S, Canada, and select European countries. If you fancy getting one, you may want to keep an eye on [Dell’s XPS 13 Plus product page][7]. - -[Dell XPS 13 Plus][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/dell-xps-13-plus-dev-ubuntu-certified/ - -作者:[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/07/dell-xps-13-dev-edition-with-ubuntu-22-04.jpg -[2]: https://news.itsfoss.com/ubuntu-22-04-release/ -[3]: https://news.itsfoss.com/tuxedo-pulse-gen-2/ -[4]: https://news.itsfoss.com/hp-dev-one-system76/ -[5]: https://itsfoss.com/ubuntu-22-04-release-features/ -[6]: https://news.itsfoss.com/wp-content/uploads/2022/07/dell-xps-13-plus-dev-1.jpg -[7]: https://www.dell.com/en-us/shop/dell-laptops/xps-13-plus-laptop/spd/xps-13-9320-laptop -[8]: https://www.dell.com/en-us/shop/dell-laptops/xps-13-plus-laptop/spd/xps-13-9320-laptop From a46b8a78a15097c96831a6337998ec537e155fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 22 Jul 2022 10:09:45 +0800 Subject: [PATCH 0485/3123] =?UTF-8?q?Revert=20"[=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E9=80=89=E9=A2=98][tech]:=2020220718=20How=20to=20Make=20Libre?= =?UTF-8?q?Office=20Look=20Like=20Microsoft=20Office.md"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... LibreOffice Look Like Microsoft Office.md | 112 ------------------ 1 file changed, 112 deletions(-) delete mode 100644 sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md diff --git a/sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md b/sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md deleted file mode 100644 index bdd13b3ddd..0000000000 --- a/sources/tech/20220718 How to Make LibreOffice Look Like Microsoft Office.md +++ /dev/null @@ -1,112 +0,0 @@ -[#]: subject: "How to Make LibreOffice Look Like Microsoft Office" -[#]: via: "https://www.debugpoint.com/libreoffice-like-microsoft-office/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Make LibreOffice Look Like Microsoft Office -====== - -We attempted to make the LibreOffice suite look like Microsoft Office. Is it possible? Let’s find out. - -[LibreOffice][1] is a free and open-source office productivity suite that provides you with a complete collection of applications. It consists of a Word processor (Writer), a spreadsheet program (Calc), Presentation (Impress), and a drawing program (Draw). It also gives you a stand-alone database system LibreOffice Base while LibreOffice Math is a program that helps students and researchers write formulas and equations. - -While the widely used [Microsoft Office][2] is a paid office productivity suite that gives you excellent programs to perform almost all tasks related to study, office, and enterprise usage. - -Adopting LibreOffice is sometimes difficult compared to Microsoft Office – although most of the menu items and tools are the same. Both programs are different, but their objective is the same in terms of functionality. Due to its popularity, Microsoft office is used widely and is well known to users. However, many users prefer the free LibreOffice for their work and activities. - -That said, if you can make LibreOffice look like Microsoft Office, it is much easier for first-time users to adopt – mostly coming from a Microsoft Office background. The look and feel play a big part in users’ minds, including their muscle memory, familiarity with colours, and menu items. - -Of course, you can not make it exactly like Microsoft Office because of different icons, fonts, etc. However, you can make it look up to a certain amount. - -### Make LibreOffice Look Like Microsoft Office - -#### 1. User Interface changes - -LibreOffice has a “Ribbon” style toolbar called Tabbed Bar. However, it has many toolbar options (see below). For this guide, I have used the Tabbed bar option. - -* Open LibreOffice and go to `Menu > View > User Interface`. -* Select `Tabbed` from the UI Section. - -![tabbed bar option][3] - -* Click on Apply to All. -* LibreOffice also provides an option to apply the toolbar type-specific to Writer or Calc. If you want a different toolbar type, you can choose that way. But I would recommend using the Apply to All to make it consistent. - -* Now you should have the Microsoft Office-style Ribbon. Although they are not precisely the same, you get the feel of it. - -#### 2. Microsoft Office Icons for LibreOffice - -The Icons in the toolbar play a big part in your workflow. LibreOffice provides some nice icons for your toolbar. The best ones are the – - -* Karasa Jaga -* Colibre -* Elementary - -For this guide, we will use Office 2013 icon set, which an author develops. It is available in Devian Art. - -* Go to the below link and download the LibreOffice extension file (*.oxt). For the newer versions of LibreOffice, you need to use extension files to install icon sets. - -[download office 2013 icon sets for libreoffice][4] - -* After downloading, double-click the .oxt file to open. Or, press CTRL+ALT+E to open the Extension Manager and select the downloaded .oxt file using the Add button. Close the window once done. - -![Import icon sets in Extension Manager][5] - -* Now go to `Tools > Options > View`. From the Icon style, choose Office 2013. - -* Change the icon size via `Icon Size > Notebookbar > Large`. If you feel the icons are small, you can change them. However, I think to make it more Office-like, the large settings work better. - -![Change icons in Options][6] - -And that’s it. Your LibreOffice installation should look like this. - -![Making LibreOffice look like Microsoft Office in KDE Plasma][7] - -![Making LibreOffice look like Microsoft Office in Windows 10][8] - -![Making LibreOffice look like Microsoft Office in GNOME][9] - -Remember, if you are using Ubuntu, KDE Plasma, or any Linux distribution, the looks may be different. But in my opinion, it looks closer to Microsoft Office in KDE Plasma than GNOME. LibreOffice doesn’t look good in GTK-based systems at the moment. - -In Windows, however, it looks better because it uses a system font and colour palette. - -These are some settings that you can use. However, you can play around with more customizations, icons, and themes as you wish. If you fancy dark mode in LibreOffice, you may want to read our tutorial – on [how to enable dark mode in LibreOffice][10]. - -### Closing Notes - -Microsoft Office is undoubtedly the market leader in the Office productivity space. There is a reason for it, it comes with decades of development, and it’s not a free product. The latest Office 365 Home usage price is around ~7 USD per month for 3 to 4 devices, which is a bit pricy if you ask me. - -Whereas LibreOffice is free and community-developed and headed by The Document Foundation. It is not trying to be Microsoft Office, but it allows millions of users, schools, non-profits, colleges, and students to work and learn using a free office suite. Hence, the development is slower, and features arrive late. - -Hence, it is beneficial if it can mimic the basic look and feel to make it like Microsoft Office to increase LibreOffice’s adoption. And I hope this guide serves a little purpose in that direction. - -[Link: Official Feature comparison between LibreOffice and Microsoft Office.][11] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/libreoffice-like-microsoft-office/ - -作者:[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]: http://libreoffice.com -[2]: http://office.com -[3]: https://www.debugpoint.com/wp-content/uploads/2021/06/tabbed-bar-option.jpg -[4]: https://www.deviantart.com/users/outgoing?https://1drv.ms/u/s!ArgKmgFcmBYHhSQkPfyMZRnXX5LJ -[5]: https://www.debugpoint.com/wp-content/uploads/2021/06/Import-icon-sets-in-Extension-Manager.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/06/Change-icons-in-Options-1024x574.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-KDE-Plasma.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-Windows-10.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-GNOME.jpg -[10]: https://www.debugpoint.com/2020/01/how-to-enable-dark-mode-libreoffice/ -[11]: https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office From 62ff323113ce5a8253142aaa91319e5c696eb117 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 22 Jul 2022 12:23:24 +0800 Subject: [PATCH 0486/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Maisie-x 感谢您,完成了第一篇贡献!而且还是这么长的一篇。 --- ...rial for using the GNU Project Debugger.md | 239 +++++++++--------- 1 file changed, 119 insertions(+), 120 deletions(-) diff --git a/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md index 15894077ac..1f58ea4baa 100644 --- a/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md +++ b/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md @@ -3,23 +3,22 @@ [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lkxed" [#]: translator: "Maisie-x" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 手把手教你使用 GNU 调试器 ====== -GNU 调试器是一个发现程序缺陷的强大工具。 -![magnifying glass on computer screen, finding a bug in the code][1] +![](https://img.linux.net.cn/data/attachment/album/202207/22/122211c2fgo53m9tw3xe2p.jpg) -图片来源:Opensource.com +> GNU 调试器是一个发现程序缺陷的强大工具。 -如果您是一个想在您的软件增加某些功能的程序员,您首先考虑实现它的方法:例如写一个method、定义一个class或者创建新的数据类型。然后您用一种编译器或解释器可以理解的编程语言来实现这个功能。但是,如果您觉得您所有代码都正确,但是编译器或解释器依然无法理解您的指令怎么办?如果软件大多数情况下都运行良好,但是在某些环境下出现缺陷怎么办?这种情况下,您得知道如何正确使用调试器找到问题的根源。 +如果你是一个程序员,想在你的软件增加某些功能,你首先考虑实现它的方法:例如写一个方法、定义一个类,或者创建新的数据类型。然后你用编译器或解释器可以理解的编程语言来实现这个功能。但是,如果你觉得你所有代码都正确,但是编译器或解释器依然无法理解你的指令怎么办?如果软件大多数情况下都运行良好,但是在某些环境下出现缺陷怎么办?这种情况下,你得知道如何正确使用调试器找到问题的根源。 -GNU调试器([GDB][2]) 是一个发现项目缺陷的强大工具。它通过追踪程序运行过程中发生了什么来帮助您发现程序错误或崩溃的原因。 +GNU 调试器GNU Project Debugger([GDB][2])是一个发现项目缺陷的强大工具。它通过追踪程序运行过程中发生了什么来帮助你发现程序错误或崩溃的原因。(LCTT 校注:GDB 全程是“GNU Project Debugger”,即 “GNU 项目调试器”,但是通常我们简称为“GNU 调试器”) -本文是GDB使用的基础教程。请跟随示例,打开命令行并克隆此仓库: +本文是 GDB 基本用法的实践教程。请跟随示例,打开命令行并克隆此仓库: ``` git clone https://github.com/hANSIc99/core_dump_example.git @@ -27,95 +26,94 @@ git clone https://github.com/hANSIc99/core_dump_example.git ### 快捷方式 -GDB的每条命令都可以缩短。例如:`info break` ,表示设置断点,可以被缩短为 `i break`。您可能在其他地方看到过这种缩写,但在本文中,为了清晰展现使用的函数,我将所写出所有命令。 +GDB 的每条命令都可以缩短。例如:显示设定的断点的 `info break` 命令可以被缩短为 `i break`。你可能在其他地方看到过这种缩写,但在本文中,为了清晰展现使用的函数,我将所写出整个命令。 ### 命令行参数 -您可以将GDB附加到每个可执行文件。进入您克隆的仓库(core_dump_example),运行 `make`进行编译。您现在能看到一个名为**coredump**的可执行文件。(更多信息,请参考我的文章 [创建和调试Linux的dump文件][3] 。) +你可以将 GDB 附加到每个可执行文件。进入你克隆的仓库(`core_dump_example`),运行 `make` 进行编译。你现在能看到一个名为 `coredump` 的可执行文件。(更多信息,请参考我的文章《[创建和调试 Linux 的转储文件][3]》。) -要将GDB附加到执行文件,请输入: `gdb coredump`。 +要将 GDB 附加到这个可执行文件,请输入: `gdb coredump`。 -您的输出应如下所示: +你的输出应如下所示: ![gdb coredump output][4] - 返回结果显示没有找到调试符号。 -调试信息是目标文件(可执行文件)的组成部分,调试信息包括数据类型、函数签名、源代码和操作码之间的关系。此时,您有两种选择: +调试信息是目标文件object file(可执行文件)的组成部分,调试信息包括数据类型、函数签名、源代码和操作码之间的关系。此时,你有两种选择: -* 继续调试程序集(参见下文[无符号调试](#Debug_without_symbols)) +* 继续调试汇编代码(参见下文“无符号调试”) * 使用调试信息进行编译,参见下一节内容 ### 使用调试信息进行编译 -为了在二进制文件中包含调试信息,您必须重新编译。打开**Makefile**,删除第9行的(`#`) 标签后结果如下: +为了在二进制文件中包含调试信息,你必须重新编译。打开 `Makefile`,删除第 9 行的注释标签(`#`)后重新编译: ``` CFLAGS =-Wall -Werror -std=c++11 -g ``` -`g`表示编译器包含调试信息。运行`make clean`,接着运行 `make`,然后再次调用GDB。您得到如下输出后就可以调试代码了: +`-g` 告诉编译器包含调试信息。运行 `make clean`,接着运行 `make`,然后再次调用 GDB。你得到如下输出后就可以调试代码了: ![GDB output with symbols][5] -新增的调试信息会增加可执行文件的大小。在这种情况下,执行文件增加了2.5倍(从26,088 字节 增加到 65,480 字节)。 +新增的调试信息会增加可执行文件的大小。在这种情况下,执行文件增加了 2.5 倍(从 26,088 字节 增加到 65,480 字节)。 -输入`run -c1`,使用`-c1`开关启动程序。当程序为 `State_4` 时,程序将启动并崩溃: +输入 `run -c1`,使用 `-c1` 开关启动程序。当程序运行到达 `State_4` 时将崩溃: ![gdb output crash on c1 switch][6] -您可以检索有关程序的其他信息, `info source`命令提供了当前文件的信息: +你可以检索有关程序的其他信息,`info source` 命令提供了当前文件的信息: ![gdb info source output][7] -* 101 行 +* 101 行代码 * 语言: C++ -* 编译器(版本、调优、架构、调试标志、语言标准) +* 编译器(版本、调优、架构、调试标志、语言标准) * 调试格式:[DWARF 2][8] -* 没有预处理器宏指令(使用 GCC 编译时,宏仅在 [使用 `-g3` 标志编译][9] 时可用)。 +* 没有预处理器宏指令(使用 GCC 编译时,宏仅在 [使用 -g3 标志编译][9] 时可用)。 - `info shared`命令在启动时加载的虚拟地址空间中打印动态库列表及动态库地址,以便程序运行: +`info shared` 命令打印了动态库列表机器在虚拟地址空间的地址,它们在启动时被加载到该地址,以便程序运行: ![gdb info shared output][10] -如果你想了解Linux库处理,请参见我的文章 [如何在Linux中处理动态库和静态库][11]。 +如果你想了解 Linux 中的库处理方式,请参见我的文章 [在 Linux 中如何处理动态库和静态库][11]。 ### 调试程序 -您可能已经注意到,您可以在 GDB 中使用 `run` 命令启动程序。 `run` 命令接受命令行参数,就像从控制台启动程序一样。 `-c1` 开关会导致程序在第 4 阶段崩溃。要从头开始运行程序,您不用退出 GDB,只需再次运行'run'命令。如果没有 `-c1` 开关,程序将陷入死循环,您必须使用 **Ctrl+C** 来结束死循环。 +你可能已经注意到,你可以在 GDB 中使用 `run` 命令启动程序。`run` 命令接受命令行参数,就像从控制台启动程序一样。`-c1` 开关会导致程序在第 4 阶段崩溃。要从头开始运行程序,你不用退出 GDB,只需再次运行 `run` 命令。如果没有 `-c1` 开关,程序将陷入死循环,你必须使用 `Ctrl+C` 来结束死循环。 ![gdb output stopped by sigint][12] -您也可以一步一步运行程序。在 C/C++ 中,入口是 `main` 函数。使用 `list main`命令打开显示部分 `main` 函数的源代码: +你也可以一步一步运行程序。在 C/C++ 中,入口是 `main` 函数。使用 `list main` 命令打开显示 `main` 函数的部分源代码: ![gdb output list main][13] -`main` 函数在第 33 行,因此输入`break 33` 在33行添加断点: +`main` 函数在第 33 行,因此可以输入 `break 33` 在 33 行添加断点: ![gdb output breakpoint added][14] -输入 `run` 运行程序。正如预期的那样,程序在 `main` 函数处停止。输入 `layout src` 并行查看源代码: +输入 `run` 运行程序。正如预期的那样,程序在 `main` 函数处停止。输入 `layout src` 并排查看源代码: ![gdb output break at main][15] -您现在处于 GDB 的文本用户界面 (TUI) 模式。使用键盘向上和向下箭头键滚动查看源代码。 +你现在处于 GDB 的文本用户界面(TUI)模式。可以使用键盘向上和向下箭头键滚动查看源代码。 -GDB 高亮显示当前行。通过输入 `next` (n),您可以输入 `next` (n)命令逐行查看命令。如果您一直输入`next` (n)命令,GBD 会一直高亮显示到最后一个命令。要逐行运行代码,只需按 **Enter** 键。 +GDB 高亮显示当前执行行。你可以输入 `next`(`n`)命令逐行执行命令。如果你没有指定新的命令,GBD 会执行上一条命令。要逐行运行代码,只需按回车键。 -有时,您会发现文本的输出有点显示不正常: +有时,你会发现文本的输出有点显示不正常: ![gdb output corrupted][16] -如果发生这种情况,请按 **Ctrl+L** 重置屏幕。 +如果发生这种情况,请按 `Ctrl+L` 重置屏幕。 -使用**Ctrl+X+A**随意进入和退出TUI模式。您可以在手册中找到[绑定其他键][17] 。 +使用 `Ctrl+X+A` 可以随时进入和退出 TUI 模式。你可以在手册中找到 [其他的键绑定][17] 。 要退出 GDB,只需输入 `quit`。 ### 设置监察点 -这个示例程序的核心是一个在无限循环中运行的状态机。 `n_state`变量枚举了当前所有状态: +这个示例程序的核心是一个在无限循环中运行的状态机。`n_state` 变量枚举了当前所有状态: ``` while(true){ @@ -135,7 +133,7 @@ while(true){ } ``` -如果您想`n_state` 为 `State_5` 值时停止程序。为此,请在 `main` 函数处停止程序并为 `n_state` 设置监察点: +如果你希望当 `n_state` 的值为 `State_5` 时停止程序。为此,请在 `main` 函数处停止程序并为 `n_state` 设置监察点: ``` watch n_state == State_5 @@ -143,15 +141,15 @@ watch n_state == State_5 只有当所需的变量在当前上下文中可用时,使用变量名设置监察点才有效。 -当您输入 `continue` 继续运行程序时,您会得到如下输出: +当你输入 `continue` 继续运行程序时,你会得到如下输出: ![gdb output stop on watchpoint_1][18] -如果您继续运行程序,当监察点表达式评估为 `false` 时 GDB 将停止: +如果你继续运行程序,当监察点表达式评估为 `false` 时 GDB 将停止: ![gdb output stop on watchpoint_2][19] -您可以自定义监察点的一般值、特定值,读取或写入权限。 +你可以为一般的值变化、特定的值、读取或写入时来设置监察点。 ### 更改断点和监察点 @@ -161,33 +159,33 @@ watch n_state == State_5 #### 删除断点和监察点 -如您所见,监察点就是数字。要删除特定的监察点,请先输入`delete`后输入监察点的编号。例如,我的监察点编号为 2;要删除此监察点,输入 `delete 2`。 +如你所见,监察点就是数字。要删除特定的监察点,请先输入 `delete` 后输入监察点的编号。例如,我的监察点编号为 2;要删除此监察点,输入 `delete 2`。 -*注意:* 如果您使用 `delete` 而没有指定数字,*所有* 监察点和断点将被删除。 +*注意:* 如果你使用 `delete` 而没有指定数字,*所有* 监察点和断点将被删除。 这同样适用于断点。在下面的截屏中,我添加了几个断点,输入 `info breakpoint` 打印断点列表: ![gdb output info breakpoints][21] -要删除单个断点,请先输入`delete`后输入监察点的编号。另外一种方式:您可以通过指定断点的行号来删除断点。例如,`clear 78`命令将删除第 78 行设置的断点号 7。 +要删除单个断点,请先输入 `delete` 后输入断点的编号。另外一种方式:你可以通过指定断点的行号来删除断点。例如,`clear 78` 命令将删除第 78 行设置的断点号 7。 #### 禁用或启用断点和监察点 -除了删除断点或监察点之外,您可以通过先输入`disable`,后输入编号禁用断点或监察点。在下文中,断点 3 和 4 被禁用,并在代码窗口中用减号标记: +除了删除断点或监察点之外,你可以通过输入 `disable`,后输入编号禁用断点或监察点。在下文中,断点 3 和 4 被禁用,并在代码窗口中用减号标记: ![disabled breakpoints][22] -也可以通过输入类似 `disable 2 - 4`修改某个范围内的断点或监察点。如果要重新激活这些点,请先输入`enable`,然后输入它们的编号。 +也可以通过输入类似 `disable 2 - 4` 修改某个范围内的断点或监察点。如果要重新激活这些点,请输入 `enable`,然后输入它们的编号。 ### 条件断点 -首先,输入 `delete` 删除所有断点和监察点。如果您不想指定行号而是通过直接命名函数来添加断点这种方式使程序在 `main` 函数处停止。输入 `break main` 从而在 `main` 函数处添加断点。 +首先,输入 `delete` 删除所有断点和监察点。你仍然想使程序停在 `main` 函数处,如果你不想指定行号,可以通过直接指明该函数来添加断点。输入 `break main` 从而在 `main` 函数处添加断点。 -输入`run`从头开始运行程序,程序将在`main`函数处停止。 +输入 `run` 从头开始运行程序,程序将在 `main` 函数处停止。 `main` 函数包括变量 `n_state_3_count`,当状态机达到状态 3 时,该变量会递增。 -基于 `n_state_3_count` 的值添加条件断点,请输入: +基于 `n_state_3_count` 的值添加一个条件断点,请输入: ``` break 54 if n_state_3_count == 3 @@ -195,7 +193,7 @@ break 54 if n_state_3_count == 3 ![Set conditional breakpoint][23] -继续运行程序。程序将在第 54 行停止之前运行状态机 3 次。要检查 `n_state_3_count` 的值,请输入: +继续运行程序。程序将在第 54 行停止之前运行状态机 3 次。要查看 `n_state_3_count` 的值,请输入: ``` print n_state_3_count @@ -205,7 +203,7 @@ print n_state_3_count #### 使断点成为条件断点 -您也可以使现有断点成为条件断点。用 `clear 54` 命令删除最近添加的断点,并通过输入 `break 54`命令添加一个简单的断点。您可以输入以下内容使此断点成为条件断点: +你也可以使现有断点成为条件断点。用 `clear 54` 命令删除最近添加的断点,并通过输入 `break 54` 命令添加一个简单的断点。你可以输入以下内容使此断点成为条件断点: ``` condition 3 n_state_3_count == 9 @@ -217,11 +215,11 @@ condition 3 n_state_3_count == 9 #### 在其他源文件中设置断点 -如果您的程序由多个源文件组成,您可以在行号前指定文件名来设置断点,例如,`break main. cpp:54`。 +如果你的程序由多个源文件组成,你可以在行号前指定文件名来设置断点,例如,`break main. cpp:54`。 -#### 捕捉断点 +#### 捕捉点 -除了断点和监察点之外,您还可以设置捕获点。捕获点适用于执行系统调用、加载共享库或引发异常等事件。 +除了断点和监察点之外,你还可以设置捕获点。捕获点适用于执行系统调用、加载共享库或引发异常等事件。 要捕获用于写入 STDOUT 的 `write` 系统调用,请输入: @@ -231,45 +229,45 @@ catch syscall write ![catch syscall write output][26] -每当程序写入控制台输出时,GDB将中断执行。 +每当程序写入控制台输出时,GDB 将中断执行。 -在手册中,您可以找到一整章 [断点、监察点和捕捉点][27] 的内容。 +在手册中,你可以找到一整章关于 [断点、监察点和捕捉点][27] 的内容。 ### 评估和操作符号 -用`print`命令打印变量的值。一般语法是`print <表达式> <值>`。修改变量的值,请输入: +用 `print` 命令可以打印变量的值。一般语法是 `print <表达式> <值>`。修改变量的值,请输入: ``` set variable . ``` -在下面的截屏中,我将变量 `n_state_3_count` 的值设为 *123*。 +在下面的截屏中,我将变量 `n_state_3_count` 的值设为 `123`。 ![catch syscall write output][28] -`/x` 表达式以十六进制打印值;使用 `&` 运算符,您可以打印虚拟地址空间内的地址。 +`/x` 表达式以十六进制打印值;使用 `&` 运算符,你可以打印虚拟地址空间内的地址。 -如果您不确定某个符号的数据类型,可以使用 `whatis` 来查明。 +如果你不确定某个符号的数据类型,可以使用 `whatis` 来查明。 ![whatis output][29] -如果您要列出 `main` 函数范围内可用的所有变量,请输入`info scope main` : +如果你要列出 `main` 函数范围内可用的所有变量,请输入 `info scope main` : ![info scope main output][30] `DW_OP_fbreg` 值是指基于当前子程序的堆栈偏移量。 -或者,如果您已经在一个函数中并且想要列出当前堆栈帧上的所有变量,您可以使用 `info locals` : +或者,如果你已经在一个函数中并且想要列出当前堆栈帧上的所有变量,你可以使用 `info locals` : ![info locals output][31] -查看手册以了解更多[检查符号][32]的内容。 +查看手册以了解更多 [检查符号][32] 的内容。 -### 调试正在运行的进程 +### 附加调试到一个正在运行的进程 -`gdb attach `命令允许您通过指定进程ID(PID)调试已经在运行的进程。幸运的是,`coredump` 程序将其当前 PID 打印到屏幕上,因此您不必使用 [ps][33] 或 [top][34] 手动查找PID。 +`gdb attach <进程 ID>` 命令允许你通过指定进程 ID(PID)附加到一个已经在运行的进程进行调试。幸运的是,`coredump` 程序将其当前 PID 打印到屏幕上,因此你不必使用 [ps][33] 或 [top][34] 手动查找 PID。 -启动 coredump 应用程序的一个实例: +启动 `coredump` 应用程序的一个实例: ``` ./coredump @@ -277,103 +275,105 @@ set variable . ![coredump application][35] -操作系统显示PID为 `2849`。打开一个单独的控制台窗口,移动到 coredump 应用程序的根目录,然后调试GDB: +操作系统显示 PID 为 `2849`。打开一个单独的控制台窗口,移动到 `coredump` 应用程序的根目录,然后用 GDB 附加到该进程进行调试: + ``` gdb attach 2849 ``` ![attach GDB to coredump][36] -当你调试 GDB 时,GDB会立即停止运行。输入 `layout src` 和 `backtrace` 来检查调用堆栈: +当你用 GDB 附加到进程时,GDB 会立即停止进程运行。输入 `layout src` 和 `backtrace` 来检查调用堆栈: ![layout src and backtrace output][37] -输出显示在`main.cpp`第92行运行 `std::this_thread::sleep_for<...>(. ..) `函数时进程中断。 +输出显示在 `main.cpp` 第 92 行调用 `std::this_thread::sleep_for<...>(. ..)` 函数时进程中断。 -只要您退出 GDB,该进程将继续运行。 +只要你退出 GDB,该进程将继续运行。 -您可以在 GDB 手册中找到有关 [调试正在运行的进程][38] 的更多信息。 +你可以在 GDB 手册中找到有关 [附加调试正在运行的进程][38] 的更多信息。 #### 在堆栈中移动 -在命令窗口,输入`up` 两次可以在堆栈中向上移动到 `main.cpp` : +在命令窗口,输入 `up` 两次可以在堆栈中向上移动到 `main.cpp` : ![moving up the stack to main.cpp][39] 通常,编译器将为每个函数或方法创建一个子程序。每个子程序都有自己的栈帧,所以在栈帧中向上移动意味着在调用栈中向上移动。 -您可以在手册中找到有关 [堆栈计算][40] 的更多信息。 +你可以在手册中找到有关 [堆栈计算][40] 的更多信息。 #### 指定源文件 -当调试一个已经在运行的进程时,GDB 将在当前工作目录中寻找源文件。您也可以使用 [目录命令][41] 手动指定源目录。 +当调试一个已经在运行的进程时,GDB 将在当前工作目录中寻找源文件。你也可以使用 [目录命令][41] 手动指定源目录。 -### 评估dump文件 +### 评估转储文件 -阅读 [创建和调试Linux的dump文件][42] 了解有关此主题的信息。 +阅读 [创建和调试 Linux 的转储文件][42] 了解有关此主题的信息。 -参考文章太长,没看的看下文: +参考文章太长,简单来说就是: -1. 假设您使用的是最新版本的 Fedora -2. 使用 c1 开关调用 coredump:`coredump -c1` +1. 假设你使用的是最新版本的 Fedora +2. 使用 `-c1` 开关调用 coredump:`coredump -c1` -![Crash meme][44] + ![Crash meme][44] -3. 使用 GDB 加载最新的dump文件:`coredumpctl debug` +3. 使用 GDB 加载最新的转储文件:`coredumpctl debug` 4. 打开 TUI 模式并输入 `layout src` ![coredump output][45] -`backtrace` 的输出显示崩溃发生在距离 `main.cpp` 五个堆栈帧之外。回车直接跳转到`main.cpp`中的错误代码行: +`backtrace` 的输出显示崩溃发生在距离 `main.cpp` 五个栈帧之外。回车直接跳转到 `main.cpp` 中的错误代码行: ![up 5 output][46] -看源码发现程序试图释放一个内存管理函数没有返回的指针。这会导致未定义的行为并引起`SIGABRT`。 +看源码发现程序试图释放一个内存管理函数没有返回的指针。这会导致未定义的行为并引起 `SIGABRT`。 -### 无符号调试 +### 无符号调试 -如果没有可用的资源,事情会变得非常困难。当我在尝试解决逆向工程的挑战时,我第一次体验到了这一点。了解一些 [汇编语言][47] 的知识会很有用。 +如果没有源代码,调试就会变得非常困难。当我在尝试解决逆向工程的挑战时,我第一次体验到了这一点。了解一些 [汇编语言][47] 的知识会很有用。 我们用例子看看它是如何运行的。 -找到根目录,打开 **Makefile**,然后像下面一样编辑第 9 行: +找到根目录,打开 `Makefile`,然后像下面一样编辑第 9 行: ``` CFLAGS =-Wall -Werror -std=c++11 #-g ``` -要重新编译程序,先运行 `make clean` ,再运行 `make` ,最后启动 GDB。该程序不再有任何调试符号来引导源代码。 +要重新编译程序,先运行 `make clean`,再运行 `make`,最后启动 GDB。该程序不再有任何调试符号来引导源代码的走向。 ![no debugging symbols][48] -`info file`命令显示二进制文件的内存区域和入口点: +`info file` 命令显示二进制文件的内存区域和入口点: ![info file output][49] -`.text`区段始终从入口点开始,其中包含实际的操作码。要在入口点添加断点,输入 `break *0x401110` 然后输入 `run` 开始运行程序: +`.text` 区段始终从入口点开始,其中包含实际的操作码。要在入口点添加断点,输入 `break *0x401110` 然后输入 `run` 开始运行程序: ![breakpoint at the entry point][50] -要在某个地址设置断点,使用取消引用运算符`*`指定地址。 +要在某个地址设置断点,使用取消引用运算符 `*` 来指定地址。 #### 选择反汇编程序风格 -在深入研究汇编之前,您可以选择要使用的 [汇编风格][51] 。 GDB 默认是 AT&T,但我更喜欢 Intel 语法。变更风格如下: +在深入研究汇编之前,你可以选择要使用的 [汇编风格][51]。 GDB 默认是 AT&T,但我更喜欢 Intel 语法。变更风格如下: ``` set disassembly-flavor intel ``` + ![changing assembly flavor][52] -现在输入 `layout asm` 调出汇编代码窗口,输入 `layout reg` 调出寄存器窗口。您现在应该看到如下输出: +现在输入 `layout asm` 调出汇编代码窗口,输入 `layout reg` 调出寄存器窗口。你现在应该看到如下输出: ![layout asm and layout reg output][53] #### 保存配置文件 -尽管您已经输入了许多命令,但实际上还没有开始调试。如果您正在大量调试应用程序或尝试解决逆向工程的难题,则将 GDB 特定设置保存在文件中会很有用。 +尽管你已经输入了许多命令,但实际上还没有开始调试。如果你正在大量调试应用程序或尝试解决逆向工程的难题,则将 GDB 特定设置保存在文件中会很有用。 -该项目的 GitHub 存储库中的 [config file gdbinit][54] 包含最近使用的命令: +该项目的 GitHub 存储库中的 [gdbinit][54] 配置文件包含最近使用的命令: ``` set disassembly-flavor intel @@ -384,68 +384,68 @@ layout asm layout reg ``` -`set write on` 命令使您能够在程序运行期间修改二进制文件。 +`set write on` 命令使你能够在程序运行期间修改二进制文件。 -退出 GDB 并使用配置文件重新启动 GDB : `gdb -x gdbinit coredump` +退出 GDB 并使用配置文件重新启动 GDB : `gdb -x gdbinit coredump`。 #### 阅读指令 -应用 `c2` 开关后,程序将崩溃。程序在入口函数处停止,因此您必须编写 `continue` 才能继续运行: +应用 `c2` 开关后,程序将崩溃。程序在入口函数处停止,因此你必须写入 `continue` 才能继续运行: ![continuing execution after crash][55] -`idiv` 指令进行整数除法运算: `RAX` 寄存器中为被除数,指定参数为除数。商被加载到 `RAX` 寄存器中,余数被加载到 `RDX` 中。 +`idiv` 指令进行整数除法运算:`RAX` 寄存器中为被除数,指定参数为除数。商被加载到 `RAX` 寄存器中,余数被加载到 `RDX` 中。 -从寄存器角度,您可以看到 `RAX` 包含 *5*,因此您必须找出存储堆栈中位置为 `RBP-0x4` 的值。 +从寄存器角度,你可以看到 `RAX` 包含 `5`,因此你必须找出存储堆栈中位置为 `rbp-0x4` 的值。 #### 读取内存 -要读取原始内存内容,您必须指定比读取符号更多的参数。在汇编输出中向上滚动一点,可以看到堆栈的划分: +要读取原始内存内容,你必须指定比读取符号更多的参数。在汇编输出中向上滚动一点,可以看到堆栈的划分: ![stack division output][56] -您最感兴趣的应该是 `rbp-0x4` 的值,因为它是 `idiv` 的存储参数。您可以从截图中看到`rbp-0x8`位置的下一个变量,所以`rbp-0x4`位置的变量是4字节宽。 +你最感兴趣的应该是 `rbp-0x4` 的值,因为它是 `idiv` 的存储参数。你可以从截图中看到`rbp-0x8` 位置的下一个变量,所以 `rbp-0x4` 位置的变量是 4 字节宽。 -在 GDB 中,您可以使用 `x` 命令*检查*任何内存内容: +在 GDB 中,你可以使用 `x` 命令*查看*任何内存内容: -> `x/` < 可选参数 `n` `f` `u` > < 内存地址 `addr` > +> `x/` < 可选参数 `n`、`f`、`u` > < 内存地址 `addr` > 可选参数: -* n: 单元大小的重复计数(默认值:1) -* f:格式说明符,如 [printf][57] -* u:单元大小 - * b:字节 - * h:2个字节 - * w: 4个字节(默认) - * g: 8个字节 +* `n`:单元大小的重复计数(默认值:1) +* `f`:格式说明符,如 [printf][57] +* `u`:单元大小 + * `b`:字节 + * `h`:半字(2 个字节) + * w: 字(4 个字节)(默认) + * g: 双字(8 个字节) 要打印 `rbp-0x4` 的值,请输入 `x/u $rbp-4` : ![print value][58] -如果您能记住这种模式,则可以直接检查内存。检查手册中的 [查看内存][59] 部分。 +如果你能记住这种模式,则可以直接查看内存。参见手册中的 [查看内存][59] 部分。 -#### 操作程序集 +#### 操作汇编 -子程序 `zeroDivide()` 发生运算异常。当你用向上箭头键向上滚动一点时,您会找到下面信息: +子程序 `zeroDivide()` 发生运算异常。当你用向上箭头键向上滚动一点时,你会找到下面信息: ``` 0x401211 <_Z10zeroDividev>              push   rbp 0x401212 <_Z10zeroDividev+1>            mov    rbp,rsp ``` -这被称为 [函数前言][60 ]: +这被称为 [函数前言][60]: -1. 调用函数的基指针(rbp)存放在栈上 -2. 栈指针(rsp)的值被加载到基指针(rbp) +1. 调用函数的基指针(`rbp`)存放在栈上 +2. 栈指针(`rsp`)的值被加载到基指针(`rbp`) -完全跳过这个子程序。您可以使用 `backtrace` 检查调用堆栈。在 `main` 函数之前只有一个堆栈帧,所以您可以用一次 `up` 回到 `main` : +完全跳过这个子程序。你可以使用 `backtrace` 查看调用堆栈。在 `main` 函数之前只有一个堆栈帧,所以你可以用一次 `up` 回到 `main` : ![Callstack assembly][61] -在您的 `main` 函数中,你会找到下面信息: +在你的 `main` 函数中,你会找到下面信息: ``` 0x401431     cmp    BYTE PTR [rbp-0x12],0x0 @@ -453,7 +453,7 @@ layout reg 0x401437     call   0x401211<_Z10zeroDividev> ``` -子程序 `zeroDivide()` 仅在 `jump equal (je)` 为 `true` 时输入。您可以轻松地将其替换为 `jump-not-equal (jne)` 指令,该指令的操作码为“0x75”(假设您使用的是 x86/64 架构;其他架构上的操作码不同)。输入 `run` 重新启动程序。当程序在入口函数处停止时,设置操作码: +子程序 `zeroDivide()` 仅在 `jump equal (je)` 为 `true` 时进入。你可以轻松地将其替换为 `jump-not-equal (jne)` 指令,该指令的操作码为 `0x75`(假设你使用的是 x86/64 架构;其他架构上的操作码不同)。输入 `run` 重新启动程序。当程序在入口函数处停止时,设置操作码: ``` set *(unsigned char*)0x401435 = 0x75 @@ -463,12 +463,11 @@ set *(unsigned char*)0x401435 = 0x75 ### 总结 -您会在许多集成开发环境 (IDE) 中发现 GDB 在后台运行,包括 Qt Creator 和 VSCodium 的扩展 [本地调试][62] 。 +你会在许多集成开发环境(IDE)中发现 GDB 运行在后台,包括 Qt Creator 和 VSCodium 的 [本地调试][62] 扩展。 ![GDB in VSCodium][63] -了解如何充分利用 GDB 的功能很有用。一般情况下,并非所有 GDB 的功能都可以在 IDE 中使用,因此您可以从命令行使用 GDB 的经验中受益。 - +了解如何充分利用 GDB 的功能很有用。一般情况下,并非所有 GDB 的功能都可以在 IDE 中使用,因此你可以从命令行使用 GDB 的经验中受益。 -------------------------------------------------------------------------------- @@ -477,7 +476,7 @@ via: https://opensource.com/article/21/1/gnu-project-debugger 作者:[Stephan Avenwedde][a] 选题:[lkxed][b] 译者:[Maisie-x](https://github.com/Maisie-x) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b9fdf1687c4093e2ebb5e2f1100fb7d993bcb9c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 22 Jul 2022 12:24:23 +0800 Subject: [PATCH 0487/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Maisie-x 本文首发地址:https://linux.cn/article-14853-1.html 您的 LCTT 专页:https://linux.cn/lctt/Maisie-x --- ... A hands-on tutorial for using the GNU Project Debugger.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210107 A hands-on tutorial for using the GNU Project Debugger.md (99%) diff --git a/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/published/20210107 A hands-on tutorial for using the GNU Project Debugger.md similarity index 99% rename from translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md rename to published/20210107 A hands-on tutorial for using the GNU Project Debugger.md index 1f58ea4baa..d4efbf9e65 100644 --- a/translated/tech/20210107 A hands-on tutorial for using the GNU Project Debugger.md +++ b/published/20210107 A hands-on tutorial for using the GNU Project Debugger.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Maisie-x" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14853-1.html" 手把手教你使用 GNU 调试器 ====== From ba36643a3bcc6ac06bb3652f0b64eb3e390c2d2a Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 22 Jul 2022 16:23:45 +0800 Subject: [PATCH 0488/3123] Final Translate --- ...SH connection between Windows and Linux.md | 230 ----------------- ...SH connection between Windows and Linux.md | 241 ++++++++++++++++++ 2 files changed, 241 insertions(+), 230 deletions(-) delete mode 100644 sources/tech/20210602 Establish an SSH connection between Windows and Linux.md create mode 100644 translated/tech/20210602 Establish an SSH connection between Windows and Linux.md diff --git a/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md b/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md deleted file mode 100644 index 2d76592dc7..0000000000 --- a/sources/tech/20210602 Establish an SSH connection between Windows and Linux.md +++ /dev/null @@ -1,230 +0,0 @@ -[#]: subject: (Establish an SSH connection between Windows and Linux) -[#]: via: (https://opensource.com/article/21/6/ssh-windows) -[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Establish an SSH connection between Windows and Linux -====== -Use the open source tool, PuTTY to establish an SSH connection from a -Windows machine to a Linux system. -![clouds in windows][1] - -The secure shell protocol (SSH) is the most common method for controlling remote machines over the command line in the Linux world. SSH is a true Linux original, and it is also gaining popularity in the Windows world. There is even official [Windows documentation for SSH][2], which covers controlling Windows machines using [OpenSSH][3]. - -This article describes how to establish an SSH connection from a Windows machine to a Fedora 33 Linux system using the popular open source tool [PuTTY][4]. - -### Ways to use SSH - -SSH uses a client-server architecture, where an SSH client establishes a connection to an SSH server. The SSH server is usually running as a system daemon, so it is often called SSHD. You can hardly find a Linux distribution that does not come with the SSH daemon. In Fedora 33, the SSH daemon is installed but not activated. - -You can use SSH to control almost any Linux machine, whether it's running as a virtual machine or as a physical device on your network. A common use case is the headless configuration of embedded devices, including the Raspberry Pi. SSH can also be used to tunnel other network services. Because SSH traffic is encrypted, you can use SSH as a transport layer for any protocol that does not provide encryption by default. - -In this article, I'll explain four ways to use SSH: 1. how to configure the SSH daemon on the Linux side, 2. how to set up a remote console connection, 3. how to copy files over the network, and 4. how to tunnel a certain protocol over SSH. - -### 1\. Configure SSHD - -The Linux system (Fedora 33 in my case) acts as the SSH server that allows the PuTTY SSH client to connect. First, check the daemon's SSH configuration. The configuration file is located at `/etc/ssh/sshd_config` and contains a lot of switches that can be activated by commenting out related lines: - - -``` -#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ - -# This is the sshd server system-wide configuration file.  See -# sshd_config(5) for more information. - -# This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin - -# The strategy used for options in the default sshd_config shipped with -# OpenSSH is to specify options with their default value where -# possible, but leave them commented.  Uncommented options override the -# default value. - -Include /etc/ssh/sshd_config.d/*.conf - -#Port 22 -#AddressFamily any -#ListenAddress 0.0.0.0 -#ListenAddress :: -``` - -The default configuration, where no line is uncommented, should work for this example. Check whether the SSH daemon is already running by typing `systemctl status sshd`: - - -``` -$ systemctl status sshd -● sshd.service - OpenSSH server daemon -   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) -   Active: active (running) since Fri 2018-06-22 11:12:05 UTC; 2 years 11 months ago -     Docs: man:sshd(8) -           man:sshd_config(5) - Main PID: 577 (sshd) -    Tasks: 1 (limit: 26213) -   CGroup: /system.slice/sshd.service -           └─577 /usr/sbin/sshd -D -oCiphers=[aes256-gcm@openssh.com][5],chacha20-[...] -``` - -If it's inactive, start it with the `systemctl start sshd` command. - -### 2\. Set up a remote console - -On Windows, [download the PuTTY installer][6], then install and open it. You should see a window like this: - -![PuTTY configuration screen][7] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -In the **Host Name (or IP address)** input field, enter the connection information for your Linux system. In this example, I set up a Fedora 33 virtual machine with a bridged network adapter that I can use to contact the system at the IP address `192.168.1.60`. Click **Open**, and a window like this should open: - -![PutTTY security alert][9] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -This is an SSH security mechanism to prevent a [man-in-the-middle attack][10]. The fingerprint in the message should match the key on the Linux system at `/etc/ssh/ssh_host_ed25519_key.pub.`. PuTTY prints the key as an [MD5 hash][11]. To check its authenticity, switch to the Linux system, open a command shell, and enter: - - -``` -`ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub` -``` - -The output should match the fingerprint shown by PuTTY: - - -``` -$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub -256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519) -``` - -Confirm the PuTTY Security Alert by clicking **Yes**. The host system's fingerprint is now in PuTTYs trust list, which is located in the Windows registry under: - - -``` -`HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys` -``` - -Enter your correct login credentials, and you should be on the console in your home directory: - -![Logged in to SSH][12] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -### 3\. Copy files over the network - -In addition to the remote console, you can use PuTTY to transfer files via SSH. Look in the installation folder under `C:\\Program Files (x86)\\PuTTY` and find `pscp.exe`. You can use this to copy files to and from a Linux system. - -Open a command prompt with **Windows + R** and enter **cmd**. Copy the file `MyFile.txt` from your Linux user home directory to your Windows home directory by entering: - - -``` -`C:\"Program Files (x86)"\PuTTY\pscp.exe stephan@192.168.1.60:/home/stephan/MyFile.txt .` -``` - -To copy a file from the Windows home directory to the Linux user home directory, enter: - - -``` -`C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt stephan@192.168.1.60:/home/stephan/` -``` - -As you may have already figured out, the copy command's general structure is: - - -``` -`pscp.exe ` -``` - -### 4\. Tunnel a protocol - -Imagine you have a Linux machine that is running an HTTP-based service for some arbitrary application. You want to access this HTTP service from your Windows machine over the internet. Of course, you cannot expose the related TCP port to the public because: - - 1. The server is running HTTP, not HTTPS - 2. There is no user management nor login at all - - - -At first glance, it looks like an impossible task to set up this architecture without producing a horrible security flaw. But SSH makes it relatively easy to set up a safe solution for this scenario. - -I will demonstrate this procedure with my software project [Pythonic][13]. Running as a container, Pythonic exposes two TCP ports: TCP port 7000 (main editor) and TCP port 8000 (the [code-server][14] source-code editor). - -To install Pythonic on a Linux machine, run: - - -``` -podman pull pythonicautomation/pythonic -podman run -d -p 7000:7000 -p 8000:8000 pythonic -``` - -Switch to your Windows machine, open PuTTY, and navigate to **Connection -> SSH -> Tunnels**. Add the two TCP ports you want to forward: - - * Source: `7000` / Destination: `localhost:7000` - * Source: `8000` / Destination: `localhost:8000` - - - -![Port forwarding in PuTTY][15] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Then go back to the **Session** section, and establish an SSH connection as you did before. Open a browser and navigate to `http://localhost:7000`; you should see a screen like this: - -![Pythonic][16] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -You have successfully configured port forwarding! - -**Warning**: If you expose TCP Port 22 to the public, don't use easy-to-guess login credentials. You will receive login attempts from all over the world trying to access your Linux machine with common, standard credentials. Instead, permit only known clients to log in. This login restriction can be achieved using [public-key cryptography][17], which uses a key pair in which the public key is stored on the SSH host machine, and the private key remains at the client. - -### Debugging - -If you are struggling to connect to your Linux machine, you can follow the processes in your SSH daemon with: - - -``` -`journalctl -f -u sshd` -``` - -This is how an ordinary log-in process looks like with LogLevel DEBUG : - -![LogLevel DEBUG output][18] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -### Learn more - -This article barely scratched the surface about ways to use SSH. If you are looking for information about a specific use case, you can probably find it among the tons of SSH tutorials on the internet. I use PuTTY heavily at work because its easy configuration and good interoperability between operating systems make it a Swiss Army knife tool for connectivity solutions. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/ssh-windows - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/cloud-windows-building-containers.png?itok=0XvZLZ8k (clouds in windows) -[2]: https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview -[3]: https://www.openssh.com/ -[4]: https://www.putty.org/ -[5]: mailto:aes256-gcm@openssh.com -[6]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html -[7]: https://opensource.com/sites/default/files/uploads/putty_connection_settings.png (PuTTY configuration screen) -[8]: https://creativecommons.org/licenses/by-sa/4.0/ -[9]: https://opensource.com/sites/default/files/uploads/putty_host_key.png (PutTTY security alert) -[10]: https://en.wikipedia.org/wiki/Man-in-the-middle_attack -[11]: https://en.wikipedia.org/wiki/MD5 -[12]: https://opensource.com/sites/default/files/uploads/ssh_successfull_login.png (Logged in to SSH) -[13]: https://github.com/hANSIc99/Pythonic -[14]: https://github.com/cdr/code-server -[15]: https://opensource.com/sites/default/files/uploads/ssh_port_forwarding.png (Port forwarding in PuTTY) -[16]: https://opensource.com/sites/default/files/uploads/pythonic_screen.png (Pythonic) -[17]: https://opensource.com/article/21/4/encryption-decryption-openssl -[18]: https://opensource.com/sites/default/files/uploads/sshd_debug_log.png (LogLevel DEBUG output) diff --git a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md b/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md new file mode 100644 index 0000000000..ab7dc159af --- /dev/null +++ b/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md @@ -0,0 +1,241 @@ +[#]: subject: (Establish an SSH connection between Windows and Linux) +[#]: via: (https://opensource.com/article/21/6/ssh-windows) +[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) +[#]: collector: (lujun9972) +[#]: translator: (yjacks) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +创建一个Windows与Linux间的SSH连接 + +====== +使用开源的PuTTY创建Windows与Linux间的SSH连接。 +![clouds in windows][1] + +安全外壳协议(SSH)在 Linux 世界中,是最为常用的的,基于命令行的远程计算机连接方案。SSH 是由 Linux 原创的,但是它同样在 Windows 世界中流行。甚至有一份官方的 [Windows 的 SSH 文档][2],一种在Windows中使用 SSH 的方式: [OpenSSH][3]。 + +这篇文章展示了如何从 Windows 创建 SSH 连接到 Fedora 33 Linux 系统,使用流行的开源工具 [PuTTY][4]。 + +### 使用 SSH 的方法 + +SSH 使用客户-服务器架构,当SSH 客户端创建了到 SSH 服务端的连接,SSH 服务端通常会运行为守护进程,所以它常被称为 SSHD。你很难找到一个 Linux 发行版不自带 SSH 守护进程。在 Fedora 33 中,SSH 守护进程已被安装,但是并未激活。 + +在几乎所有的 Linux 机器上,你都可以使用 SSH 协议。如果它是作为虚拟机或你的网络上的实体机。一个常见的用例是无头配置的嵌入式设备,包括树莓派。SSH 也可以用为一个连接其它网络服务的隧道。因为 SSH 连接是加密的,你可以使用 SSH 作为一个所有的其它默认未提供加密协议的中继。 + +在这篇文章中,我将提供四个方式使用 SSH:1. 如何在 Linux 端配置 SSH 守护进程,2. 如何设置远程命令行连接,3. 如何复制文件通过网络,4. 如何将 SSH 作为某些协议的通道。 + +### 1\. 配置 SSHD + +Linux 系统 (例子为 Fedora 33) 作为 SSH 服务器,允许 PuTTY SSH 客户端连接。 首先,检查守护进程的 SSH 配置。配置文件放在`/etc/ssh/sshd_config`,它包含了许多选项可被激活——通过取消掉相关行的注释: + + +``` +#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ + +# This is the sshd server system-wide configuration file.  See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented.  Uncommented options override the +# default value. + +Include /etc/ssh/sshd_config.d/*.conf + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: +``` + + +默认的配置中没有行是取消注释的,你需要修改这个示例。要检查 SSH 守护进程是否已经运行,输入`systemctl status sshd`: + + +``` +$ systemctl status sshd +● sshd.service - OpenSSH server daemon +   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) +   Active: active (running) since Fri 2018-06-22 11:12:05 UTC; 2 years 11 months ago +     Docs: man:sshd(8) +           man:sshd_config(5) + Main PID: 577 (sshd) +    Tasks: 1 (limit: 26213) +   CGroup: /system.slice/sshd.service +           └─577 /usr/sbin/sshd -D -oCiphers=[aes256-gcm@openssh.com][5],chacha20-[...] +``` + + +假如它处于未激活状态,使用`systemctl start sshd`命令启动它启动它。 + +### 2\. Set up a remote console + +Windows 下, [下载 PuTTY 安装程序][6], 然后安装并打开它,你应看到一个像这样的窗口: + +![PuTTY configuration screen][7] + +(Stephan Avenwedde, [CC BY-SA 4.0][8]) + +在**主机名(或 IP 地址)**输入框,进入你的 Linux 系统的“连接信息”。在这个例子中,我设置了一个 Fedora 33 虚拟机,它使用桥接网络适配器,使我可以由 IP 地址 `192.168.1.60` 连接这个系统。点击**开启**,一个窗口如图示应打开: + +![PutTTY security alert][9] + +(Stephan Avenwedde, [CC BY-SA 4.0][8]) + +这是 SSH 的安全方式之一,是为了防止[中间人攻击man-in-the-middle attack][10]. 信息中的指纹应该匹配 Linux 系统中放在`/etc/ssh/ssh_host_ed25519_key.pub`的密钥。PuTTY打印这个密钥为[MD5 哈希][11]。为检查它的真实性,切换到 Linux 系统,打开一个命令行,然后输入: + + +``` +`ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub` +``` + +输出应该对上 PuTTY 展示的指纹: + + +``` +$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub +256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519) +``` + + +按**是**以设置 PuTTY 的安全警报。主系统的指纹在 PuTTY的信任列表中,其位于 Windows 的注册表中的: + + + +``` +`HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys` +``` + + +输入你正确的登录凭证,然后你应该进入终端了,位置在你的用户主目录。 + + +![Logged in to SSH][12] + +(Stephan Avenwedde, [CC BY-SA 4.0][8]) + + +### 3\. 通过网络传输文件 + +除了远程命令行,你也可以使用 PuTTY 通过 SSH来传输文件。安装目录在`C:\\Program Files (x86)\\PuTTY`,寻找`ppscp.exe`。你可以使用它来拷贝文件自 Linux 系统,或是到 Linux 系统。 + +使用**Windows + R**打开命令提示符并输入**cmd**,复制“MYFile.txt”从你的 Linux 用户主目录到你的 Windows 主目录,输入: + + +``` +`C:\"Program Files (x86)"\PuTTY\pscp.exe stephan@192.168.1.60:/home/stephan/MyFile.txt .` +``` + + +为复制文件从 Windows 主目录到 Linux 用户主目录,输入: + + +``` +`C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt stephan@192.168.1.60:/home/stephan/` +``` + + +就像你也许已经发现的那样,复制的命令通常构造为: + + +``` +`pscp.exe ` +``` + +### 4\. 隧道协议 + + +假设你拥有一个 Linux 机器,运营一个基于 HTTP 的服务为一些应用。你想通过网络从 Windows 机器访问这个 HTTP 服务。而且,你不能将相关的TCP端口暴露在公网,因为: + + + 1. 这个服务通过 HTTP 而非 HTTPS 运行 + 2. 根本没有任何用户在管理或登录 + + +乍一看,不产生一个可怕的漏洞而建立这种架构似乎是一项不可能的任务。但是 SSH 将为这种情况建立一个安全的解决方案变得简单了。 + +我将用我的软件项目[Pythonic][13]来证明它。在容器中运行。Pythonic 开放两个 TCP 端口:TCP 端口7000(主要编辑者)和 TCP 端口 8000([code-server][14] 代码编辑器) + +要安装 Pythonic 在一个 Linux 机器上,运行: + + +``` +podman pull pythonicautomation/pythonic +podman run -d -p 7000:7000 -p 8000:8000 pythonic +``` + + +转向你的 Windows 机器,打开 PuTTy,转到 **连接 -> SSH -> 隧道**。加入两个 TCP 前端端口: + + * Source: `7000` / Destination: `localhost:7000` + * Source: `8000` / Destination: `localhost:8000` + + + +![Port forwarding in PuTTY][15] + +(Stephan Avenwedde, [CC BY-SA 4.0][8]) + +然后返回 **会话**选项,并建立一个 SSH 链接,像你之前做的那样。打开网络浏览器然后转到`http://localhost:7000`;你应该看见像这样的窗口: + +![Pythonic][16] + +(Stephan Avenwedde, [CC BY-SA 4.0][8]) + +你成功的设置了前端端口! + +**警告**: 如果你选择开放 TCP 端口 22 到公网,不要使用易于猜测的登录凭证。你将接受来自全世界的登录请求,它们使用常见的、标准的登录凭证以尝试登录你的 Linux 机器。相反,只允许已知的用户登录。 这种登录限制可以通过以下方式实现:[公钥加密法][17], 它使用一个密钥对,其中公钥存储在SSH主机上,而私钥保留在客户端。 + +### 调试 + +如果你难以连接你的 Linux 机器,你可以在你的SSH守护进程中使用: + + +``` +`journalctl -f -u sshd` +``` + +这是一个普通的登录进程,但是其日志级别为DEBUG,它看起来是这样的 : + +![LogLevel DEBUG output][18] + +(Stephan Avenwedde, [CC BY-SA 4.0][8]) + +### 了解更多 + +这篇文章只阐述了使用 SSH 的其中一个方式。如果你正在寻找关于特别的用例的信息,你也许可以在互联网中找到无数的教程。我使用 PuTTY 在工作中,因为它易于设置,在两个操作系统间又具有良好的可操作性,使得它的连接解决方案像是卡尔埃·尔森纳的瑞士军刀。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/ssh-windows + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[yjacks](https://github.com/yjacks) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/cloud-windows-building-containers.png?itok=0XvZLZ8k (clouds in windows) +[2]: https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview +[3]: https://www.openssh.com/ +[4]: https://www.putty.org/ +[5]: mailto:aes256-gcm@openssh.com +[6]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html +[7]: https://opensource.com/sites/default/files/uploads/putty_connection_settings.png (PuTTY configuration screen) +[8]: https://creativecommons.org/licenses/by-sa/4.0/ +[9]: https://opensource.com/sites/default/files/uploads/putty_host_key.png (PutTTY security alert) +[10]: https://en.wikipedia.org/wiki/Man-in-the-middle_attack +[11]: https://en.wikipedia.org/wiki/MD5 +[12]: https://opensource.com/sites/default/files/uploads/ssh_successfull_login.png (Logged in to SSH) +[13]: https://github.com/hANSIc99/Pythonic +[14]: https://github.com/cdr/code-server +[15]: https://opensource.com/sites/default/files/uploads/ssh_port_forwarding.png (Port forwarding in PuTTY) +[16]: https://opensource.com/sites/default/files/uploads/pythonic_screen.png (Pythonic) +[17]: https://opensource.com/article/21/4/encryption-decryption-openssl +[18]: https://opensource.com/sites/default/files/uploads/sshd_debug_log.png (LogLevel DEBUG output) From 4a8889b646b97cd2b2b2efdf5597d6c139366ed1 Mon Sep 17 00:00:00 2001 From: yjacks Date: Fri, 22 Jul 2022 20:34:46 +0800 Subject: [PATCH 0489/3123] Update 20210602 Establish an SSH connection between Windows and Linux.md --- ...SH connection between Windows and Linux.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md b/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md index ab7dc159af..58ee218c40 100644 --- a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md +++ b/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md @@ -13,21 +13,21 @@ 使用开源的PuTTY创建Windows与Linux间的SSH连接。 ![clouds in windows][1] -安全外壳协议(SSH)在 Linux 世界中,是最为常用的的,基于命令行的远程计算机连接方案。SSH 是由 Linux 原创的,但是它同样在 Windows 世界中流行。甚至有一份官方的 [Windows 的 SSH 文档][2],一种在Windows中使用 SSH 的方式: [OpenSSH][3]。 +安全外壳协议(SSH)在 Linux 世界中是最为常用的、基于命令行的远程计算机连接方案。SSH 是 Linux 原创的,但是它在 Windows 世界中同样流行。甚至有了一份官方的 [Windows 的 SSH 文档][2],那篇文档阐述了一种在 Windows 中使用 SSH 的方式: [OpenSSH][3]。 -这篇文章展示了如何从 Windows 创建 SSH 连接到 Fedora 33 Linux 系统,使用流行的开源工具 [PuTTY][4]。 +这篇文章展示了如何从 Windows 创建一个 SSH 连接到 Fedora 33 Linux 系统,使用了流行的开源工具 [PuTTY][4]。 ### 使用 SSH 的方法 -SSH 使用客户-服务器架构,当SSH 客户端创建了到 SSH 服务端的连接,SSH 服务端通常会运行为守护进程,所以它常被称为 SSHD。你很难找到一个 Linux 发行版不自带 SSH 守护进程。在 Fedora 33 中,SSH 守护进程已被安装,但是并未激活。 +SSH 使用客户服务器模式,当 SSH 客户端创建了到 SSH 服务端的连接,SSH 服务端通常会运行为守护进程,所以它常被称为 SSHD。你很难找到一个 Linux 发行版不自带 SSH 守护进程。在 Fedora 33 中,SSH 守护进程已被安装,但是并未激活。 -在几乎所有的 Linux 机器上,你都可以使用 SSH 协议。如果它是作为虚拟机或你的网络上的实体机。一个常见的用例是无头配置的嵌入式设备,包括树莓派。SSH 也可以用为一个连接其它网络服务的隧道。因为 SSH 连接是加密的,你可以使用 SSH 作为一个所有的其它默认未提供加密协议的中继。 +在几乎所有的 Linux 机器上,你都可以使用 SSH 协议。如果它是作为虚拟机或你的网络上的实体机,包括树莓派,一个常见的用例是无头配置的嵌入式设备,SSH 也可以用为一个连接其它网络服务的隧道。因为 SSH 连接是加密的,所以你可以使用 SSH 作为一个所有的其它默认未提供加密协议的中继。 -在这篇文章中,我将提供四个方式使用 SSH:1. 如何在 Linux 端配置 SSH 守护进程,2. 如何设置远程命令行连接,3. 如何复制文件通过网络,4. 如何将 SSH 作为某些协议的通道。 +在这篇文章中,我将提供四个方式使用 SSH:1. 如何在 Linux 端配置 SSH 守护进程,2. 如何设置远程控制台连接,3. 如何通过网络复制文件,4. 如何将 SSH 作为某些协议的通道。 ### 1\. 配置 SSHD -Linux 系统 (例子为 Fedora 33) 作为 SSH 服务器,允许 PuTTY SSH 客户端连接。 首先,检查守护进程的 SSH 配置。配置文件放在`/etc/ssh/sshd_config`,它包含了许多选项可被激活——通过取消掉相关行的注释: +将Linux 系统 (文中是 Fedora 33) 作为 SSH 服务器,其允许 PuTTY SSH 客户端连接。首先,检查守护进程的 SSH 配置。配置文件放在`/etc/ssh/sshd_config`,它包含了许多选项,通过取消掉相关行的注释就可以激活: ``` @@ -52,7 +52,7 @@ Include /etc/ssh/sshd_config.d/*.conf ``` -默认的配置中没有行是取消注释的,你需要修改这个示例。要检查 SSH 守护进程是否已经运行,输入`systemctl status sshd`: +因为默认的配置中没有行的注释被取消,所以你需要修改这个示例。要检查 SSH 守护进程是否已经运行,输入`systemctl status sshd`: ``` @@ -69,9 +69,9 @@ $ systemctl status sshd ``` -假如它处于未激活状态,使用`systemctl start sshd`命令启动它启动它。 +假如它处于未激活状态,使用`systemctl start sshd`命令启动它。 -### 2\. Set up a remote console +### 2\. 设置远程控制台 Windows 下, [下载 PuTTY 安装程序][6], 然后安装并打开它,你应看到一个像这样的窗口: @@ -79,20 +79,20 @@ Windows 下, [下载 PuTTY 安装程序][6], 然后安装并打开它,你应 (Stephan Avenwedde, [CC BY-SA 4.0][8]) -在**主机名(或 IP 地址)**输入框,进入你的 Linux 系统的“连接信息”。在这个例子中,我设置了一个 Fedora 33 虚拟机,它使用桥接网络适配器,使我可以由 IP 地址 `192.168.1.60` 连接这个系统。点击**开启**,一个窗口如图示应打开: +在**主机名(或 IP 地址)**输入框,进入你的 Linux 系统的“连接信息”。本文设置了一个 Fedora 33 虚拟机,它使用桥接网络适配器,使我可以由 IP 地址 `192.168.1.60` 连接这个系统。点击**开启**,应会如图示的打开一个窗口: ![PutTTY security alert][9] (Stephan Avenwedde, [CC BY-SA 4.0][8]) -这是 SSH 的安全方式之一,是为了防止[中间人攻击man-in-the-middle attack][10]. 信息中的指纹应该匹配 Linux 系统中放在`/etc/ssh/ssh_host_ed25519_key.pub`的密钥。PuTTY打印这个密钥为[MD5 哈希][11]。为检查它的真实性,切换到 Linux 系统,打开一个命令行,然后输入: +这是 SSH 的安全措施之一,是为了防止[中间人攻击man-in-the-middle attack][10]. 信息中的指纹应该匹配 Linux 系统中放在`/etc/ssh/ssh_host_ed25519_key.pub`的密钥。PuTTY将这个密钥打印为[MD5 哈希值][11]。要检查它的真实性,切换到 Linux 系统并打开一个控制台,然后输入: ``` `ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub` ``` -输出应该对上 PuTTY 展示的指纹: +输出应该和 PuTTY 展示的指纹一致: ``` @@ -101,7 +101,7 @@ $ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub ``` -按**是**以设置 PuTTY 的安全警报。主系统的指纹在 PuTTY的信任列表中,其位于 Windows 的注册表中的: +按**是**以设置 PuTTY 的安全警报。主系统的指纹在 PuTTY 的信任列表中,其位于 Windows 的注册表中的: @@ -110,7 +110,7 @@ $ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub ``` -输入你正确的登录凭证,然后你应该进入终端了,位置在你的用户主目录。 +输入正确的登录凭证,然后你应该进入控制台了,位置在你的用户主目录。 ![Logged in to SSH][12] @@ -120,9 +120,9 @@ $ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub ### 3\. 通过网络传输文件 -除了远程命令行,你也可以使用 PuTTY 通过 SSH来传输文件。安装目录在`C:\\Program Files (x86)\\PuTTY`,寻找`ppscp.exe`。你可以使用它来拷贝文件自 Linux 系统,或是到 Linux 系统。 +除了远程控制台,你同样可以使用 PuTTY 通过 SSH 来传输文件。PuTTY 的安装目录在`C:\\Program Files (x86)\\PuTTY`,在目录下寻找`ppscp.exe`。你既可以使用它来复制文件自 Linux 系统,也可以复制文件到到 Linux 系统。 -使用**Windows + R**打开命令提示符并输入**cmd**,复制“MYFile.txt”从你的 Linux 用户主目录到你的 Windows 主目录,输入: +使用**Windows + R**打开命令提示符,然后输入**cmd**,复制“MYFile.txt”从你的 Linux 用户主目录到你的 Windows 主目录,输入: ``` @@ -152,12 +152,12 @@ $ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub 1. 这个服务通过 HTTP 而非 HTTPS 运行 - 2. 根本没有任何用户在管理或登录 + 2. 根本没有任何人在管理或登录 -乍一看,不产生一个可怕的漏洞而建立这种架构似乎是一项不可能的任务。但是 SSH 将为这种情况建立一个安全的解决方案变得简单了。 +乍一看,不产生一个可怕的漏洞而建立这种架构似乎是一项不可能的任务。但是 SSH 可简单的为这种情况建立一个安全的解决方案。 -我将用我的软件项目[Pythonic][13]来证明它。在容器中运行。Pythonic 开放两个 TCP 端口:TCP 端口7000(主要编辑者)和 TCP 端口 8000([code-server][14] 代码编辑器) +我将用我的软件项目[Pythonic][13]来证明它。在容器中运行。Pythonic 开放两个 TCP 端口:TCP 端口7000(主要编辑器)和 TCP 端口 8000([code-server][14] 代码编辑器) 要安装 Pythonic 在一个 Linux 机器上,运行: @@ -206,7 +206,7 @@ podman run -d -p 7000:7000 -p 8000:8000 pythonic ### 了解更多 -这篇文章只阐述了使用 SSH 的其中一个方式。如果你正在寻找关于特别的用例的信息,你也许可以在互联网中找到无数的教程。我使用 PuTTY 在工作中,因为它易于设置,在两个操作系统间又具有良好的可操作性,使得它的连接解决方案像是卡尔埃·尔森纳的瑞士军刀。 +这篇文章只阐述了使用 SSH 的其中一个方式。如果你正在寻找关于特别的用例的信息,你也许可以在互联网中找到无数的教程。我在工作中使用 PuTTY ,因为它易于设置,在两个操作系统间又具有良好的可操作性,使得它的连接解决方案像是卡尔埃·尔森纳的瑞士军刀。 -------------------------------------------------------------------------------- From 2f1c9dc8f496226297401d4c6d95d61902fd98c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 23 Jul 2022 11:02:53 +0800 Subject: [PATCH 0490/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yjacks 润色之后有了进步,看得出用心了。再给你提一个建议,中文的语序倒装句比较少用,而英文这种情况非常多。所以我们翻译时,要整理语序,使之符合中文习惯。 --- ...SH connection between Windows and Linux.md | 130 +++++++----------- 1 file changed, 48 insertions(+), 82 deletions(-) diff --git a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md b/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md index 58ee218c40..67bc9936d5 100644 --- a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md +++ b/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md @@ -3,32 +3,32 @@ [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) [#]: translator: (yjacks) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -创建一个Windows与Linux间的SSH连接 - +如何从 Windows 上用 SSH 连接到 Linux ====== -使用开源的PuTTY创建Windows与Linux间的SSH连接。 -![clouds in windows][1] -安全外壳协议(SSH)在 Linux 世界中是最为常用的、基于命令行的远程计算机连接方案。SSH 是 Linux 原创的,但是它在 Windows 世界中同样流行。甚至有了一份官方的 [Windows 的 SSH 文档][2],那篇文档阐述了一种在 Windows 中使用 SSH 的方式: [OpenSSH][3]。 +> 使用开源的 PuTTY 工具,从 Windows 建立到 Linux 的 SSH 连接。 -这篇文章展示了如何从 Windows 创建一个 SSH 连接到 Fedora 33 Linux 系统,使用了流行的开源工具 [PuTTY][4]。 +![](https://img.linux.net.cn/data/attachment/album/202207/23/110039pjbd9jbbc84gbz2f.jpg) + +在 Linux 世界中,安全外壳secure shell(SSH)协议是最为常用的、通过命令行控制远程计算机的方式。SSH 是真正的 Linux 原创,但是它在 Windows 世界中也越来越流行。甚至有了一份官方的 [Windows 的 SSH 文档][2],那篇文档阐述了使用 [OpenSSH][3] 控制 Windows 的方法。 + +这篇文章展示了如何使用了流行的开源工具 [PuTTY][4],建立一个从 Windows 到 Fedora 33 Linux 系统的 SSH 连接。 ### 使用 SSH 的方法 -SSH 使用客户服务器模式,当 SSH 客户端创建了到 SSH 服务端的连接,SSH 服务端通常会运行为守护进程,所以它常被称为 SSHD。你很难找到一个 Linux 发行版不自带 SSH 守护进程。在 Fedora 33 中,SSH 守护进程已被安装,但是并未激活。 +SSH 使用客户端-服务器模式,即 SSH 客户端会创建到 SSH 服务端的连接。SSH 服务器通常会作为守护进程Daemon运行,所以它常被称为 SSHD。你很难找到一个不自带 SSH 守护进程的 Linux 发行版。在 Fedora 33 中,已安装了 SSH 守护进程,但是并未激活。 -在几乎所有的 Linux 机器上,你都可以使用 SSH 协议。如果它是作为虚拟机或你的网络上的实体机,包括树莓派,一个常见的用例是无头配置的嵌入式设备,SSH 也可以用为一个连接其它网络服务的隧道。因为 SSH 连接是加密的,所以你可以使用 SSH 作为一个所有的其它默认未提供加密协议的中继。 +你可以使用 SSH 控制几乎所有的 Linux 机器,无论它是作为虚拟机还是作为网络上的物理设备运行。一个常见的用例是无头headless配置的嵌入式设备,如树莓派。SSH 也可以用做一个其它网络服务的隧道。因为 SSH 连接是加密的,所以你可以使用 SSH 作为一个任何默认不提供加密的协议的传输层。 -在这篇文章中,我将提供四个方式使用 SSH:1. 如何在 Linux 端配置 SSH 守护进程,2. 如何设置远程控制台连接,3. 如何通过网络复制文件,4. 如何将 SSH 作为某些协议的通道。 +在这篇文章中,我将解释使用 SSH 的四个方式:1、如何在 Linux 端配置 SSH 守护进程;2、如何设置远程控制台连接;3、如何通过网络复制文件,4. 如何将 SSH 作为某些协议的隧道。 -### 1\. 配置 SSHD - -将Linux 系统 (文中是 Fedora 33) 作为 SSH 服务器,其允许 PuTTY SSH 客户端连接。首先,检查守护进程的 SSH 配置。配置文件放在`/etc/ssh/sshd_config`,它包含了许多选项,通过取消掉相关行的注释就可以激活: +### 1、配置 SSHD +将 Linux 系统(文中是 Fedora 33)作为 SSH 服务器,允许 PuTTY SSH 客户端进行连接。首先,检查守护进程的 SSH 配置。配置文件放在 `/etc/ssh/sshd_config`,它包含了许多选项,通过取消掉相关行的注释就可以激活: ``` #       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ @@ -51,9 +51,7 @@ Include /etc/ssh/sshd_config.d/*.conf #ListenAddress :: ``` - -因为默认的配置中没有行的注释被取消,所以你需要修改这个示例。要检查 SSH 守护进程是否已经运行,输入`systemctl status sshd`: - +没有取消任何注释的默认配置在这个示例中应该是可以工作的。要检查 SSH 守护进程是否已经运行,输入 `systemctl status sshd`: ``` $ systemctl status sshd @@ -68,145 +66,113 @@ $ systemctl status sshd            └─577 /usr/sbin/sshd -D -oCiphers=[aes256-gcm@openssh.com][5],chacha20-[...] ``` +如果它处于未激活inactive状态,使用 `systemctl start sshd` 命令启动它。 -假如它处于未激活状态,使用`systemctl start sshd`命令启动它。 +### 2、设置远程控制台 -### 2\. 设置远程控制台 - -Windows 下, [下载 PuTTY 安装程序][6], 然后安装并打开它,你应看到一个像这样的窗口: +在 Windows 下 [下载 PuTTY 安装程序][6],然后安装并打开它。你应看到一个像这样的窗口: ![PuTTY configuration screen][7] -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -在**主机名(或 IP 地址)**输入框,进入你的 Linux 系统的“连接信息”。本文设置了一个 Fedora 33 虚拟机,它使用桥接网络适配器,使我可以由 IP 地址 `192.168.1.60` 连接这个系统。点击**开启**,应会如图示的打开一个窗口: +在“主机名(或 IP 地址)Host Name (or IP address)”输入框,键入你的 Linux 系统的连接信息。本文设置了一个 Fedora 33 虚拟机,它使用桥接网络适配器,使我可以由 IP 地址 `192.168.1.60` 连接这个系统。点击“打开Open”,应会如图示的打开一个窗口: ![PutTTY security alert][9] -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -这是 SSH 的安全措施之一,是为了防止[中间人攻击man-in-the-middle attack][10]. 信息中的指纹应该匹配 Linux 系统中放在`/etc/ssh/ssh_host_ed25519_key.pub`的密钥。PuTTY将这个密钥打印为[MD5 哈希值][11]。要检查它的真实性,切换到 Linux 系统并打开一个控制台,然后输入: - +这是 SSH 的安全措施之一,是为了防止[中间人攻击][10]man-in-the-middle attack。消息中的指纹应该匹配 Linux 系统中放在 `/etc/ssh/ssh_host_ed25519_key.pub` 的密钥。PuTTY 将这个密钥以 [MD5 哈希值][11] 的方式打印出来。要检查它的真实性,切换到 Linux 系统并打开一个控制台,然后输入: ``` -`ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub` +ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub ``` 输出应该和 PuTTY 展示的指纹一致: - ``` $ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub 256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519) ``` - -按**是**以设置 PuTTY 的安全警报。主系统的指纹在 PuTTY 的信任列表中,其位于 Windows 的注册表中的: - - +点击“Yes”以确认 PuTTY 的安全提示。主机系统的指纹现在存储在 PuTTY 的信任列表中,其位于 Windows 的注册表中的: ``` -`HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys` +HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys ``` - 输入正确的登录凭证,然后你应该进入控制台了,位置在你的用户主目录。 - ![Logged in to SSH][12] -(Stephan Avenwedde, [CC BY-SA 4.0][8]) +### 3、通过网络复制文件 +除了远程控制台,你同样可以使用 PuTTY 通过 SSH 来传输文件。PuTTY 的安装目录在 `C:\Program Files (x86)\PuTTY`,在该目录下寻找 `ppscp.exe`。你既可以使用它从 Linux 系统复制文件,也可以复制文件到 Linux 系统。 -### 3\. 通过网络传输文件 - -除了远程控制台,你同样可以使用 PuTTY 通过 SSH 来传输文件。PuTTY 的安装目录在`C:\\Program Files (x86)\\PuTTY`,在目录下寻找`ppscp.exe`。你既可以使用它来复制文件自 Linux 系统,也可以复制文件到到 Linux 系统。 - -使用**Windows + R**打开命令提示符,然后输入**cmd**,复制“MYFile.txt”从你的 Linux 用户主目录到你的 Windows 主目录,输入: - +使用 `Windows + R` 然后输入 `cmd` 来打开命令提示符,从你的 Linux 用户主目录复制 `MYFile.txt` 到你的 Windows 主目录,输入: ``` -`C:\"Program Files (x86)"\PuTTY\pscp.exe stephan@192.168.1.60:/home/stephan/MyFile.txt .` +C:\"Program Files (x86)"\PuTTY\pscp.exe stephan@192.168.1.60:/home/stephan/MyFile.txt . ``` - -为复制文件从 Windows 主目录到 Linux 用户主目录,输入: - +要从 Windows 主目录复制文件到 Linux 用户主目录,输入: ``` -`C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt stephan@192.168.1.60:/home/stephan/` +C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt stephan@192.168.1.60:/home/stephan/ ``` - 就像你也许已经发现的那样,复制的命令通常构造为: - ``` -`pscp.exe ` +pscp.exe ``` -### 4\. 隧道协议 - - -假设你拥有一个 Linux 机器,运营一个基于 HTTP 的服务为一些应用。你想通过网络从 Windows 机器访问这个 HTTP 服务。而且,你不能将相关的TCP端口暴露在公网,因为: +### 4、隧道化一个协议 +假设你拥有一个 Linux 机器,为某些特别的应用运行一个基于 HTTP 的服务。你想从你的 Windows 机器通过互联网访问这个 HTTP 服务。而且,你不能将相关的 TCP 端口暴露在公网,因为: 1. 这个服务通过 HTTP 而非 HTTPS 运行 - 2. 根本没有任何人在管理或登录 + 2. 根本没有用户管理和登录系统 +乍一看,建立这种架构不产生可怕的漏洞似乎是不可能的。但是 SSH 可简单的为这种情况建立一个安全的解决方案。 -乍一看,不产生一个可怕的漏洞而建立这种架构似乎是一项不可能的任务。但是 SSH 可简单的为这种情况建立一个安全的解决方案。 - -我将用我的软件项目[Pythonic][13]来证明它。在容器中运行。Pythonic 开放两个 TCP 端口:TCP 端口7000(主要编辑器)和 TCP 端口 8000([code-server][14] 代码编辑器) - -要安装 Pythonic 在一个 Linux 机器上,运行: +我将用我的软件项目 [Pythonic][13] 来演示这个过程。在容器中运行。Pythonic 作为容器运行,开放两个 TCP 端口:TCP 端口 7000(主要编辑器)和 TCP 端口 8000([code-server][14] 代码编辑器)。 +要在一个 Linux 机器上安装 Pythonic ,运行: ``` podman pull pythonicautomation/pythonic podman run -d -p 7000:7000 -p 8000:8000 pythonic ``` +转向你的 Windows 机器,打开 PuTTy,转到 “连接Connection -> SSH -> 隧道Tunnels”。加入你要转发的两个 TCP 端口: -转向你的 Windows 机器,打开 PuTTy,转到 **连接 -> SSH -> 隧道**。加入两个 TCP 前端端口: - - * Source: `7000` / Destination: `localhost:7000` - * Source: `8000` / Destination: `localhost:8000` - - + * 源:`7000` / 目标:`localhost:7000` + * 源:`8000` / 目标:`localhost:8000` ![Port forwarding in PuTTY][15] -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -然后返回 **会话**选项,并建立一个 SSH 链接,像你之前做的那样。打开网络浏览器然后转到`http://localhost:7000`;你应该看见像这样的窗口: +然后返回 “会话Session” 部分,并像之前那样建立一个 SSH 链接。打开网页浏览器,然后转到 `http://localhost:7000`;你应该看见像这样的窗口: ![Pythonic][16] -(Stephan Avenwedde, [CC BY-SA 4.0][8]) +你成功的设置了端口转发! -你成功的设置了前端端口! - -**警告**: 如果你选择开放 TCP 端口 22 到公网,不要使用易于猜测的登录凭证。你将接受来自全世界的登录请求,它们使用常见的、标准的登录凭证以尝试登录你的 Linux 机器。相反,只允许已知的用户登录。 这种登录限制可以通过以下方式实现:[公钥加密法][17], 它使用一个密钥对,其中公钥存储在SSH主机上,而私钥保留在客户端。 +**警告**: 如果你选择在公网上暴露 TCP 端口 22 ,不要使用易于猜测的登录凭证。你将接受来自全世界的登录请求,它们使用常见的、标准的登录凭证以尝试登录你的 Linux 机器。相反,只允许已知的用户登录。这种登录限制可以通过 [公钥加密][17] 来实现,它使用一个密钥对,其中公钥存储在 SSH 主机上,而私钥保留在客户端。 ### 调试 -如果你难以连接你的 Linux 机器,你可以在你的SSH守护进程中使用: - +如果你难以连接你的 Linux 机器,你可以跟踪你的 SSH 守护进程的处理过程: ``` -`journalctl -f -u sshd` +journalctl -f -u sshd ``` -这是一个普通的登录进程,但是其日志级别为DEBUG,它看起来是这样的 : +这是一个普通的登录进程,但是其日志级别为 DEBUG,它看起来是这样的 : ![LogLevel DEBUG output][18] -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - ### 了解更多 -这篇文章只阐述了使用 SSH 的其中一个方式。如果你正在寻找关于特别的用例的信息,你也许可以在互联网中找到无数的教程。我在工作中使用 PuTTY ,因为它易于设置,在两个操作系统间又具有良好的可操作性,使得它的连接解决方案像是卡尔埃·尔森纳的瑞士军刀。 +这篇文章几乎没有涉及到使用 SSH 的方法。如果你正在寻找一个特定用例的信息,你也许可以在互联网中找到无数的教程。我在工作中使用 PuTTY ,因为它易于设置,在两个操作系统间又具有良好的可操作性,使得它成为连接解决方案里的瑞士军刀。 + +(文内图片来自:Stephan Avenwedde,[CC BY-SA 4.0][8]) -------------------------------------------------------------------------------- @@ -215,7 +181,7 @@ via: https://opensource.com/article/21/6/ssh-windows 作者:[Stephan Avenwedde][a] 选题:[lujun9972][b] 译者:[yjacks](https://github.com/yjacks) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c12b730ea3e498a4d85307b57644cbc86c52d1ab Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 23 Jul 2022 11:03:32 +0800 Subject: [PATCH 0491/3123] P @yjacks https://linux.cn/article-14855-1.html --- ...2 Establish an SSH connection between Windows and Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210602 Establish an SSH connection between Windows and Linux.md (99%) diff --git a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md b/published/20210602 Establish an SSH connection between Windows and Linux.md similarity index 99% rename from translated/tech/20210602 Establish an SSH connection between Windows and Linux.md rename to published/20210602 Establish an SSH connection between Windows and Linux.md index 67bc9936d5..edc6789ac8 100644 --- a/translated/tech/20210602 Establish an SSH connection between Windows and Linux.md +++ b/published/20210602 Establish an SSH connection between Windows and Linux.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (yjacks) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-14855-1.html) 如何从 Windows 上用 SSH 连接到 Linux ====== From 66715dd777dec354ab17e1e9ae8822a2ae9b3c11 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sat, 23 Jul 2022 15:16:00 +0800 Subject: [PATCH 0492/3123] PR translating --- sources/tech/20220714 5 ways to learn C programming on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220714 5 ways to learn C programming on Linux.md b/sources/tech/20220714 5 ways to learn C programming on Linux.md index 9c88489d8b..4d517f42a6 100644 --- a/sources/tech/20220714 5 ways to learn C programming on Linux.md +++ b/sources/tech/20220714 5 ways to learn C programming on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/learn-c-linux" [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 57f4d77f5e8f5612f307ceb5ad630d7d939e6d4c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 23 Jul 2022 18:17:47 +0800 Subject: [PATCH 0493/3123] RP @geekpi https://linux.cn/article-14856-1.html --- ...anjaro and Other Arch Linux Derivatives.md | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) rename {translated/tech => published}/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md (78%) diff --git a/translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md b/published/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md similarity index 78% rename from translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md rename to published/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md index de3c307db8..23b855c07d 100644 --- a/translated/tech/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md +++ b/published/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md @@ -3,18 +3,20 @@ [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14856-1.html" -如何在 Manjaro 和其他 Arch Linux 衍生品上安装 Discord +如何在 Manjaro 和其他 Arch Linux 衍生品上安装 Discord 客户端 ====== +![](https://img.linux.net.cn/data/attachment/album/202207/23/181625i62zdef7iufup2e6.jpg) + [Discord][1] 是一个跨平台的应用,可用于语音通话、视频通话、文本消息,以及分享媒体和文件。 -它在游戏玩家和主播中非常流行。虽然,许多开源项目已经开始使用它来主持他们的社区讨论。你可以为这类开源社区找到[官方 Discord 服务器][2]。 +它在游戏玩家和主播中非常流行。虽然,许多开源项目已经开始使用它来主持他们的社区讨论。你可以找到这类开源社区的 [官方 Discord 服务器][2]。 -Discord 可以直接从你的网络浏览器访问。安装官方桌面客户端可以让你获得系统通知和集中交流,而不是在多个打开的标签中摸索 Discord 标签。 +Discord 可以直接从你的网页浏览器访问。安装官方桌面客户端可以让你获得系统通知和集中交流,而不是在多个打开的标签中摸索 Discord 标签。 虽然 Discord 为 Ubuntu 提供了 Deb 文件,但在 Arch Linux 上却没有这样的即用型软件包。 @@ -27,7 +29,7 @@ Discord 可以直接从你的网络浏览器访问。安装官方桌面客户端 首先,更新你的系统,因为它是一个滚动发布的版本,[不支持部分升级][6]。 -在终端输入以下 [pacman 命令][7]来[更新你的 Arch Linux 系统][8]。 +在终端输入以下 [pacman 命令][7] 来 [更新你的 Arch Linux 系统][8]。 ``` sudo pacman -Syu @@ -43,7 +45,7 @@ sudo pacman -S discord ![Discord client in Arch Linux][9] -**如果你想安装 Discord 的 Nightly 版本**来测试即将到来的新功能,请使用以下命令。请注意,它可能并不稳定,所以如果你想要这个版本,请再考虑一下。 +**如果你想安装 Discord 的每日构建版本** 来测试即将到来的新功能,请使用以下命令。请注意,它可能并不稳定,所以如果你想要这个版本,请再考虑一下。 ``` sudo pacman -S discord-canary @@ -57,7 +59,7 @@ sudo pacman -S discord-canary sudo pacman -Rns discord ``` -如果你选择的是 Nightly 版本,请使用以下命令将其删除: +如果你选择的是每日构建版本,请使用以下命令将其删除: ``` sudo pacman -Rns discord-canary @@ -75,11 +77,11 @@ sudo pacman -Rns discord-canary ![pamac menu][12] -点击更新来更新你的系统。 +点击“更新Updates”来更新你的系统。 ![pamac update][13] -现在点击浏览,使用左上方的搜索按钮搜索 discord。然后,选择软件包并点击应用来安装。 +现在点击“浏览Browse”,使用左上方的搜索按钮搜索 “discord”。然后,选择软件包并点击“应用Apply”来安装。 ![Installing Discord from Pamac][14] @@ -94,7 +96,7 @@ via: https://itsfoss.com/install-discord-arch-manjaro/ 作者:[Anuj Sharma][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/) 荣誉推出 From 7913fec0ab80276cf8eb2810bfaae19df7004068 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 24 Jul 2022 06:57:02 +0800 Subject: [PATCH 0494/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 Has Reached End-of-Life, Upgrade Now!.md | 90 ------------------- ...Game -STRAY- Works Pretty Good on Linux.md | 65 -------------- 2 files changed, 155 deletions(-) delete mode 100644 sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md delete mode 100644 sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md diff --git a/sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md b/sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md deleted file mode 100644 index a8707cc715..0000000000 --- a/sources/news/20220719 Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!" -[#]: via: "https://news.itsfoss.com/ubuntu-21-10-eol/" -[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now! -====== -Ubuntu 21.10 has reached end-of-life on 14th of July. Backup your files before starting an upgrade! - -![ubuntu 22 10][1] - -While [Ubuntu 21.10][2]was the only way to experience GNOME 40 back then, it brought a newer kernel and high-quality Bluetooth codecs. - -Unfortunately, it reached end-of-life on the **14th of July**, meaning you will no longer receive any updates for it. - -So it’s time to upgrade! - -I know, for some, it’s not much time since you switched to Ubuntu 21.10, but it’s not an LTS release. So, it had only nine months of support after its release. - -If you want to know about the release and update cycles, you can check out our [guide on end-of-life][3]. - -When writing this article, there’s only one option available: **[Ubuntu 22.04 LTS.][4]** - -[Ubuntu 22.04 LTS is different from Ubuntu 20.04][5] in several ways and offers a bunch of new features. - -### Upgrading to Ubuntu 22.04 LTS - -Unless you are going to use your system completely offline, you must upgrade to Ubuntu 22.04 as it would protect you against the latest security vulnerabilities. - -In fact, Ubuntu 22.04 LTS is the [most secure release yet][6]. - -There are plenty of other reasons why you should upgrade, including user experience improvements, better performance, and newer hardware support. - -Not to forget, [Long-Term Support Release][7] edition gives you up to 5 years of software updates, and 10 years of maintenance updates, ensuring the stability you need for production. - -Whether you use your system/server for personal or commercial use. - -**Here’s how to upgrade:** - -You can look for **“Software Updater**” from the app menu and click on it to proceed with the latest upgrade. - -If you prefer the terminal, type in the command to start the update manager: - -``` -update-manager -c -``` - -In either case, type in the following from the terminal: - -``` -sudo do-release-upgrade -``` - -You will be informed that your system is out of support and will be upgraded to Ubuntu 22.04 LTS. Just click on the upgrade button, and the update manager will take care of it. - -### Ubuntu 22.04 Upgrade and Beyond - -As always, there are plenty of alternatives to Ubuntu 22.04 LTS, including [official Ubuntu flavors][8]. And, if you want something different in Ubuntu space, I highly recommend [Pop!_OS 22.04 LTS.][9] - -With the upgrade, you should enjoy the new GNOME 42 experience, a newer kernel, and a better user experience compared to 21.10 and bundled with [new features.][10] - -Sure, you are not going to be disappointed! - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-21-10-eol/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/ubuntu-22-10-eol.jpg -[2]: https://news.itsfoss.com/ubuntu-21-10-release/ -[3]: https://itsfoss.com/end-of-life-ubuntu/ -[4]: https://news.itsfoss.com/ubuntu-22-04-release/ -[5]: https://itsfoss.com/ubuntu-20-04-vs-22-04/ -[6]: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/ -[7]: https://itsfoss.com/long-term-support-lts/ -[8]: https://itsfoss.com/which-ubuntu-install/ -[9]: https://news.itsfoss.com/pop-os-22-04-release/ -[10]: https://itsfoss.com/ubuntu-22-04-release-features/ diff --git a/sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md b/sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md deleted file mode 100644 index 284f23ce08..0000000000 --- a/sources/news/20220720 Newly Released Cat Game -STRAY- Works Pretty Good on Linux.md +++ /dev/null @@ -1,65 +0,0 @@ -[#]: subject: "Newly Released Cat Game ‘STRAY’ Works Pretty Good on Linux" -[#]: via: "https://news.itsfoss.com/stray-linux/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Newly Released Cat Game ‘STRAY’ Works Pretty Good on Linux -====== -Want to play a cat game? Well, you certainly can, and you should not miss the chance! - -![stray][1] - -*Meow.* - -STRAY is currently one of the trending indie games and a unique one where you get to explore a cyberpunk-themed world as a stray cat. - -It is a third-person adventure-puzzle game involving a lot of *meows*. Well, maybe because it gives you a “**Meow**” button that you can’t get to stop using throughout the game. - -The game includes a pinch of action along with fascinating cyberpunk elements. It isn’t meant to be challenging but an exciting concept where the indie devs managed to present something beautiful. - -Officially, it is available for Windows (**Steam**) and PlayStation. - -### STRAY on Linux Desktop - -![STRAY | Launch Trailer][2] - -In case you did not know, STRAY was already *Steam Deck verified* before its launch. So, if you are using a Steam Deck, you should try the game. - -And, **what’s better?** - -It works just fine on a Linux desktop system as well! - -I tested it on **Manjaro Linux** with **Proton Experimental**, running at **1440p** resolution. And, it worked out of the box without any tweaks needed. - -The graphics card equipped on my system is an **NVIDIA RTX 3060ti**. So, if you are an NVIDIA graphics user, I do not think it would be a problem. - -While I did not notice any major framerate issues with the gameplay so far, there were some micro stutters when I moved the camera in the game. This wasn’t an issue when I tried it on Windows. - -Maybe you won’t notice it with a lower refresh rate screen, or it won’t be an issue for you. In any case, with a different distribution/driver, you could have a different experience. - -Also, there’s an option to adjust the motion blur and enable V-Sync; you could balance it out with that particular setting. - -Can’t wait to try out the game? Head to its [Steam store page][3] and purchase it to get started. The game is available for **$29.99** and also offers regional pricing. So, it could be cheaper for different countries, just like I grabbed it for **$8**. - -Have you tried the game already? How do you like it so far? Feel free to share your thoughts in the comments. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/stray-linux/ - -作者:[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/07/stray.jpg -[2]: https://www.youtube.com/watch?v=4uP2MyUL49s -[3]: https://store.steampowered.com/app/1332010/Stray/?snr=1_4_4__118 From 9a146ea6eea8443401fda001de3ab6f8e6c5da54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 24 Jul 2022 07:08:55 +0800 Subject: [PATCH 0495/3123] RP @geekpi https://linux.cn/article-14858-1.html --- ...nitor your Linux firewall with nftwatch.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) rename {translated/tech => published}/20220718 Monitor your Linux firewall with nftwatch.md (58%) diff --git a/translated/tech/20220718 Monitor your Linux firewall with nftwatch.md b/published/20220718 Monitor your Linux firewall with nftwatch.md similarity index 58% rename from translated/tech/20220718 Monitor your Linux firewall with nftwatch.md rename to published/20220718 Monitor your Linux firewall with nftwatch.md index c20c2a32b8..468fb0b8c5 100644 --- a/translated/tech/20220718 Monitor your Linux firewall with nftwatch.md +++ b/published/20220718 Monitor your Linux firewall with nftwatch.md @@ -3,38 +3,39 @@ [#]: author: "Kenneth Aaron https://opensource.com/users/flyingrhino" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14858-1.html" 用 nftwatch 监控你的 Linux 防火墙 ====== -我创建了 Linux nftwatch 命令来观察防火墙的流量统计。 -Netfilter 表([nftables][4])是现代 Linux 发行版中的默认防火墙。它在 Fedora 和 RHEL 8、最新的 Debian 和许多其他版本上都有。它取代了早期发行版中捆绑的旧版 iptables。它是一个强大的、值得替代的 iptables,作为一个广泛使用它的人,我欣赏它的能力和功能。 +![](https://img.linux.net.cn/data/attachment/album/202207/24/070724d542rvbbg3af3o9p.jpg) -nftables 的一个特点是能够为许多元素添加计数器,例如规则。这些都是按需启用的。你需要使用 “counter” 参数,在每一行明确地要求它。我为我的防火墙中的特定规则启用了这些计数器,这使我能够看到这些规则。 +> 我创建了 Linux nftwatch 命令来观察防火墙的流量统计。 -这让我开始思考。我怎样才能实时查看这些计数器?一开始我尝试了 “watch”,它允许诸如刷新率之类的东西,但我不喜欢默认格式,而且它不能滚动。我发现使用 `head` 和 `tail` 以及 `awk` 并不理想。一个用户友好的解决方案并不存在。所以我自己写了一个,我想与开源社区分享。 +Netfilter 表([nftables][4])是现代 Linux 发行版中的默认防火墙。它在 Fedora 和 RHEL 8、最新的 Debian 和许多其他版本上都有。它取代了早期发行版中捆绑的旧版 iptables。它是一个强大的、值得的 iptables 替代品,作为一个广泛使用它的人,我欣赏它的能力和功能。 + +nftables 的一个特点是能够为许多元素添加计数器,例如规则。这些都是按需启用的。你需要使用 `counter` 参数,在每一行明确地要求它。我为我的防火墙中的特定规则启用了这些计数器,这使我能够看到这些规则。 + +这让我开始思考。我怎样才能实时查看这些计数器?一开始我尝试了 `watch`,它允许诸如刷新率之类的东西,但我不喜欢默认格式,而且它不能滚动。我发现使用 `head` 和 `tail` 以及 `awk` 也不理想,并不存在一个用户友好的解决方案。所以我自己写了一个,我想与开源社区分享。 ### Linux 上的 nftwatch 介绍 -我的解决方案,我称之为 nftwatch,做了几件事。 +我的解决方案,我称之为 `nftwatch`,做了几件事: * 它对 nftables 的输出进行重新排序和改写,使其更具有可读性。 * 它允许向上或向下滚动输出。 -* 它的用户定义的刷新率(可以实时改变)。 +* 可以由用户定义的刷新率(可以实时改变)。 * 它可以暂停显示。 你得到的不是一个表格的转储,而是显示每个规则活动的输出。 ![Image of nftwatch][5] -(Kenneth Aaron,CC BY-SA 4.0) - 你可以从它的 [Git 仓库][6]下载它。 -它是 100% 的 Python,100% 的开源,100% 的免费。它满足了所有免费的高质量程序的要求。 +它是 100% 的 Python 代码,100% 的开源,100% 的免费。它满足了所有免费的高质量程序的要求。 ### 在 Linux 上安装 nftwatch @@ -50,15 +51,17 @@ nftables 的一个特点是能够为许多元素添加计数器,例如规则 ### 使用 -nftwatch 命令显示 nftables 规则。大多数控制都是为此目的而设计的。 +`nftwatch` 命令显示 nftables 规则。大多数控制都是为此目的而设计的。 -箭头键和相当于 Vim 的按键控制滚动。使用 **F** 或 **S** 键来改变刷新速度。使用 **P** 键来暂停显示。 +箭头键和等效的 Vim 的按键控制滚动。使用 `F` 或 `S` 键来改变刷新速度。使用 `P` 键来暂停显示。 运行 `nftwatch -m` 以获得完整的说明,以及交互式按键控制的列表。 ### 防火墙的新观点 -即使你花时间去配置防火墙,它也会显得晦涩难懂和模糊不清。除了从日志条目中推断指标外,很难判断你的防火墙实际看到的活动类型。 使用 nftwatch,你可以看到你的防火墙在工作,并且可以更好地了解你的网络每天需要处理的流量类型。 +即使你花费了时间去配置防火墙,它也会显得晦涩难懂和模糊不清。除了从日志条目中推断指标外,很难判断你的防火墙实际看到的活动类型。 使用 `nftwatch`,你可以看到你的防火墙在工作,并且可以更好地了解你的网络每天需要处理的流量类型。 + +*(文内图片来自 Kenneth Aaron,CC BY-SA 4.0)* -------------------------------------------------------------------------------- @@ -67,7 +70,7 @@ via: https://opensource.com/article/22/7/nftwatch-linux-firewall 作者:[Kenneth Aaron][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/) 荣誉推出 @@ -78,5 +81,5 @@ via: https://opensource.com/article/22/7/nftwatch-linux-firewall [3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText [4]: https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables?extIdCarryOver=true&sc_cid=701f2000001OH79AAG#getting_started [5]: https://opensource.com/sites/default/files/2022-07/nftwatch-sample.png -[6]: https://github.com/flyingrhinonz/nftwatch](https://github.com/flyingrhinonz/nftwatch +[6]: https://github.com/flyingrhinonz/nftwatch [7]: https://opensource.com/article/21/9/yaml-cheat-sheet From 35348baeeed46789954ee43ffc434e66c5872b4f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 24 Jul 2022 07:55:55 +0800 Subject: [PATCH 0496/3123] RP @perfiffer https://linux.cn/article-14859-1.html --- ...1017 How I use open source to play RPGs.md | 107 +++++++++++++++++ ...1017 How I use open source to play RPGs.md | 110 ------------------ 2 files changed, 107 insertions(+), 110 deletions(-) create mode 100644 published/20211017 How I use open source to play RPGs.md delete mode 100644 translated/tech/20211017 How I use open source to play RPGs.md diff --git a/published/20211017 How I use open source to play RPGs.md b/published/20211017 How I use open source to play RPGs.md new file mode 100644 index 0000000000..b8ec151f5e --- /dev/null +++ b/published/20211017 How I use open source to play RPGs.md @@ -0,0 +1,107 @@ +[#]: subject: "How I use open source to play RPGs" +[#]: via: "https://opensource.com/article/21/10/open-source-rpgs" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lujun9972" +[#]: translator: "perfiffer" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14859-1.html" + +我如何使用开源玩 RPG 游戏 +====== + +> 为角色扮演游戏的所有元素找到一个开源工具。 + +![](https://img.linux.net.cn/data/attachment/album/202207/24/075445ymf5nvigh4t4htfd.jpg) + +我玩过很多桌面角色扮演游戏(RPG),无论是从频率还是种类来说。一般来说,我更喜欢和朋友一起玩 RPG,但在过去的 2 年里,我一直在玩网络游戏。(LCTT 校注:这里的 RPG 游戏指的是那种“传统”的面对面的桌面游戏,而非很多人最初接触的 RPG 电子游戏。) + +起初,我不确定如何在线长期的进行游戏。我知道有很多的工具可以实现,但直到我发现在线桌面游戏的开源世界之前,这些工具没有一个引起我的兴趣。通过一小部分开源应用程序,我已经能够在开源平台上进行我的所有游戏。 + +这也是一年中的好时机,因为最近是 [免费 RPG 日][2](LCTT 校注:今年的这个节日在 7 月 23 日举办)。在免费 RPG 日,桌面角色扮演游戏行业的发行商们会免费发放游戏,鼓励玩家尝试新游戏和新冒险。尽管它在 2020 年被取消了,但今年它又作为现场活动回归,并通过 [Dungeon Crawl Classics][3] 和 [Paizo][4] 的免费 RPG 示例下载提供了一些虚拟支持。 + +如果这个活动提供的虚拟产品还不够,我还整理了一份 [你可能尚未尝试过的 5 个开源桌面 RPG 游戏列表][5]。 + +当你准备好开始玩游戏时,请尝试其中一些开源工具,看看它们能在多大程度上增强你的游戏体验。 + +### 聊天 + +在线 RPG 游戏最基本的(从技术上讲,也是唯一的)要求是交流。这是游戏的媒介:玩家需要一种说话的途径。 + +有几个不错的选择。我发现 [Mumble][6] 是对带宽需求最低的工具。这是一个纯语音聊天应用程序,可以使用非常高效的 Opus 编解码器让每个人一次交谈数小时而不会中断。 + +![Mumble client][7] + +它在世界各地都运行有公共实例,所以下载 Mumble 客户端后,你可以加入其中任何一个开放的实例,并使用它来在线运行游戏。有一个“按下通话”设置,你可以用此来消除背景噪音,当你的其他家庭成员在进行其它工作而不想被你的桌面会话打扰时,这个功能将会非常实用。 + +还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于其它无关内容的交谈,而让口头游戏保持在主题上。 + +如果你的玩家更喜欢看到面部表情,或者只是习惯于视频聊天网页应用。那么 [Jitsi][8] 是面对面围坐在桌子旁聚会的绝佳替代品。Jitsi 和你曾经使用过的其它视频聊天软件几乎一样,甚至更简单。你可以设置一个“房间”,邀请朋友,将陌生人拒之门外,并玩上几个小时。静音和关闭摄像都很直观,界面很吸引人,并且还定期开发和推出了新功能。 + +![Jitsi][9] + +Mumble 和 Jitsi 都有适用于台式机和移动设备的客户端,因此任何人都可以在任何设备上使用。 + +### 角色表 + +我发布了我的 [数字角色表][10] 解决方案,但任何 RPG 玩家都知道管理角色不仅仅是统计数据。 + +在延续多个会话的在线游戏中,我发现每次游戏之间有很长的停止时间。我突然想到,虽然我发现要求我的玩家在现场纸笔游戏中计算损耗是不合理的,但当一切都是数字化时,要求他们跟踪损耗很容易。 + +网上有很多可用的电子表格,但开源的选择是 [Ethercalc][11]。由于其实例遍布世界各地,因此很容易找到免费的 Ethercalc 主机。或者,你可以使用 Podman 或者 Docker 轻松安装和运行你自己的实例。 + +![Ethercalc spreadsheet of inventory][12] + +Etherclac 提供了一些基本要素:一个共享的账本,这样玩家就可以跟踪他们的团队所携带的物品(以及在任何给定的时间持有该物品的人)、每件物品的重量和价值。当队伍在游戏过程中收集到战利品时,就会输入该物品,所以他们知道什么自己何时会因为负担过重而无法拿起新物品。 + +在不同的游戏会话之间,可以引用和整理这份共享的电子表格,以便玩家(PC)知道哪些物品可以卖掉,哪些物品可以放入储物袋,哪些物品可以在下一次会话发现更好的战利品时安全的丢弃。 + +### 地图 + +Mythic Table 是一款开源的桌面游戏共享地图系统。这意味着你可以加载图片作为游戏地图,并在地图上移动数字标记以表示玩家角色所在的位置。 + +自从 [上次我介绍了关于 Mythic Table][13] 以来,它已经在 Kickstarter 上成功地进行了一次众筹,以确保它的持续发展。它还增加了一些新功能,其中最引人注目的是“战争迷雾”功能,它允许地下城主掩盖地图并仅显示玩家探索过的部分。 + +![A dungeon map rendered by Mythic Table and user interface choices for chat, maps, and characters][14] + +在过去的几个月里,我一直在 Mythic Table 上运行两款游戏,这是一款优秀且直观的地图系统。它还提供了一个数字骰子筒,所以如果你的玩家没有骰子,或者你更喜欢在公开场合掷骰子,你就可以用它作为共享的骰子池。 + +你可以在 [mythictable.com][15] 上试用 Mythic Table,或者访问他们在 [Github][16] 上的代码库。 + +### 开源的开放游戏 + +我使用的开源工具是通用的,因此它们适用于你想玩的任何游戏系统。因为它们都是开源的,所以无论你的玩家使用什么操作系统,他们都可以在线使用,并且它们都可以自托管。 + +如果你既是程序员又是游戏玩家,请访问他们的 Git 代码仓库,看看是否有任何你可以贡献的东西。如果你是游戏玩家或者游戏管理员,在下次坐在数字版的游戏桌前请尝试使用一下这些工具。你可能会惊讶于你只需要很少的在线账户就可以使用一些可用于游戏的最佳应用程序。 + +*(文内图片来自:Seth Kenlon,CC-BY-SA 4.0)* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/10/open-source-rpgs + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[perfiffer](https://github.com/perfiffer) +校对:[wxy](https://github.com/wxy) + +本文由 [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/header_dice.png?itok=dOMrHopO (Dice as a random number generator) +[2]: https://www.freerpgday.com/ +[3]: https://goodman-games.com/blog/2021/10/06/pdf-previews-of-our-free-rpg-day-releases/ +[4]: https://paizo.com/community/blog/v5748dyo6shte +[5]: https://opensource.com/article/21/10/rpg-tabletop-games +[6]: http://mumble.info/ +[7]: https://opensource.com/sites/default/files/mumble-client.png (Mumble client) +[8]: https://jitsi.org/ +[9]: https://opensource.com/sites/default/files/jitsi-client.jpg (Jitsi) +[10]: https://opensource.com/article/21/10/3-ways-manage-your-character-sheets-open-source +[11]: http://ethercalc.net/ +[12]: https://opensource.com/sites/default/files/uploads/ethercalc.jpeg (Ethercalc) +[13]: https://opensource.com/article/20/11/open-source-battle-maps +[14]: https://opensource.com/sites/default/files/uploads/mythic.jpeg (Mythic Table) +[15]: http://mythictable.com/ +[16]: https://gitlab.com/mythicteam/mythictable diff --git a/translated/tech/20211017 How I use open source to play RPGs.md b/translated/tech/20211017 How I use open source to play RPGs.md deleted file mode 100644 index b83db974fe..0000000000 --- a/translated/tech/20211017 How I use open source to play RPGs.md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: subject: "How I use open source to play RPGs" -[#]: via: "https://opensource.com/article/21/10/open-source-rpgs" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lujun9972" -[#]: translator: "perfiffer" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -我如何使用开源玩 RPG 游戏 -====== -为角色扮演游戏的所有元素找到一个开源工具。 -![Dice as a random number generator][1] - -我玩过很多桌面角色扮演游戏(RPG),无论是频率还是种类。一般来说,我更喜欢和朋友一起玩RPG,但在过去的 2 年里,我一直在玩网络游戏。 - -起初,我不确定如何在线运行长期游戏。我知道有很多的工具可以实现,但直到我发现开源在线桌面游戏的世界之前,我都对此不敢兴趣。通过一小部分开源应用程序,我已经能够在开源平台上运行我的所有游戏。 - -这也是一年中的好时机,因为最近是[免费 RPG 日][2]。在免费 RPG 日,桌面角色扮演游戏行业的发型商免费发布游戏,鼓励玩家尝试新游戏和新冒险。尽管它在 2020 年被取消,但今年它又作为现场活动回归,并通过 [Dungeon Crawl Classics][3] 和 [Paizo][4] 的免费 RPG 采样器下载提供了一些虚拟支持。 - -如果活动的虚拟产品还不够,我整理了一份[你可能尚未尝试过的 5 个开源桌面 RPG 游戏列表][5]。 - -当你准备好开始玩游戏时,请尝试其中一些开源工具,看看它们能在多大程度上增强你的游戏玩法。 - -### 聊天 -在线 RPG 游戏最基本的(从技术上讲,也是唯一的)要求是交流。这是游戏的媒介:玩家需要一种说话的途径。 - -有几个不错的选择。我发现 [Mumble][6] 是对带宽需求最低的工具。这是一个纯语音聊天应用程序,可以使用非常高效的 Opus 编解码器让每个人一次交谈数小时而不会中断。 - -![Mumble client][7] - -CC BY-SA Seth Kenlon - -世界各地都有公共实例,所以下载 Mumble 客户端后,你可以加入其中任何一个开放的实例,并使用它来在线运行游戏。有一个按键通话设置,你可以用此来消除背景噪音,当你的其他家庭成员在进行其它工作而不想被你的桌面会话打扰时,这个功能将会非常实用。 - -还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于离题的交谈,试图让口头游戏保持主题。 - -如果你的玩家更喜欢面部表情,或者只是习惯于视频聊天网页应用。那么 [Jitsi][8] 是面对面围坐在桌子旁聚会的绝佳替代品。Jitsi 和你曾经使用过的其它视频聊天软件几乎一样,甚至更简单。你可以设置一个房间,邀请朋友,将陌生人拒之门外,并玩上几个小时。静音和离机很直观,界面很吸引人,并且定期开发和推出新功能。 - -![Jitsi][9] - -CC BY-SA Seth Kenlon - -Mumble 和 Jitsi 都有适用于台式机和移动设备的客户端,因此任何人都可以在任何设备上使用。 - -### 字符表 - -我已经发布了我的[数字角色表][10]解决方案,但任何 RPG 玩家都知道管理角色不仅仅是统计数据。 - -在跨越多个会话的在线游戏中,我发现游戏之间有很多的停机时间。我突然想到,虽然我发现要求我的玩家在现场纸笔游戏中计算负担是不合理的,但当一切都是数字化时,要求他们跟踪负担很容易。 - -网上有很多可用的电子表格,但开源选项是 [Ethercalc][11]。由于实例遍布世界各地,因此很容易找到免费的 Ethercalc 主机。或者,你可以使用 Podman 或者 Docker 轻松安装和运行你自己的实例。 - -![Ethercalc spreadsheet of inventory][12] - -Seth Kenlon, CC-BY-SA 4.0 - -Etherclac 提供了一些基本要素:一个共享的账本,这样玩家就可以跟踪他们的团队所携带的物品(以及在任何给定的时间持有物品的人)、每件物品的重量和价值。当队伍在游戏过程中收集战利品时,物品就会进入,所以他们知道什么自己何时会因为负担过重而无法获得新内容。 - -在会话之间,可以引用和组织共享的电子表格,以便 PC 知道要出售什么或将什么东西放入一个袋子中,或者当更好的战利品出现在下一个会话时,他们可以安全地丢弃什么。 - -### 地图 - -Mythic Table 是一款开源的桌面游戏共享地图系统。这意味着你可以加载图片作为游戏地图,并在地图上移动数字标记以表示玩家角色所在的位置。 - -自从[上次我写了关于 Mythic Table][13]以来,它已经成功地在 Kickstarter 上进行了一次活动,以确保它的持续发展。它还获得了一些新功能,其中最引人注目的是“战争迷雾”功能,它允许地下城主将地图留白并仅显示玩家探索过的部分。 - -![A dungeon map rendered by Mythic Table and user interface choices for chat, maps, and characters][14] - -Seth Kenlon, CC-BY-SA 4.0 - -在过去的几个月里,我一直在 Mythic Table 上运行两款游戏,这是一款优秀且直观的地图系统。它还提供了一个数字掷骰子器,所以如果你的玩家没有骰子,或者你更喜欢在公开场合掷骰子,你就有了一个共享的骰子池。 - -你可以在 [mythictable.com][15] 上试用 Mythic Table,或者访问他们在 [Github][16] 上的代码库。 - -### 在开源上开放游戏 - -我使用的开源工具是通用的,因为它们适用于你决定玩的任何游戏系统。因为它们都是开源的,所以无论你的玩家使用什么操作系统,他们都可以在线使用,并且它们都可以自托管。 - -如果你既是程序员又是游戏玩家,请访问他们的 Git 代码仓库,看看是否有任何你可以贡献的东西。如果你是游戏玩家或者游戏大师,请在下次坐在数字游戏桌前尝试使用这些工具。你可能会惊讶于你只需要很少的在线账户就可以使用一些可用于游戏的最佳应用程序。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/10/open-source-rpgs - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/perfiffer) -校对:[校对者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/header_dice.png?itok=dOMrHopO (Dice as a random number generator) -[2]: https://www.freerpgday.com/ -[3]: https://goodman-games.com/blog/2021/10/06/pdf-previews-of-our-free-rpg-day-releases/ -[4]: https://paizo.com/community/blog/v5748dyo6shte -[5]: https://opensource.com/article/21/10/rpg-tabletop-games -[6]: http://mumble.info/ -[7]: https://opensource.com/sites/default/files/mumble-client.png (Mumble client) -[8]: https://jitsi.org/ -[9]: https://opensource.com/sites/default/files/jitsi-client.jpg (Jitsi) -[10]: https://opensource.com/article/21/10/3-ways-manage-your-character-sheets-open-source -[11]: http://ethercalc.net/ -[12]: https://opensource.com/sites/default/files/uploads/ethercalc.jpeg (Ethercalc) -[13]: https://opensource.com/article/20/11/open-source-battle-maps -[14]: https://opensource.com/sites/default/files/uploads/mythic.jpeg (Mythic Table) -[15]: http://mythictable.com/ -[16]: https://gitlab.com/mythicteam/mythictable From 5656196381db7dc0be09811b8b31ec1f36d6b2ae Mon Sep 17 00:00:00 2001 From: perfiffer Date: Sun, 24 Jul 2022 09:57:18 +0800 Subject: [PATCH 0497/3123] translating by perfiffer --- .../20220721 How I use the Linux fmt command to format text.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220721 How I use the Linux fmt command to format text.md b/sources/tech/20220721 How I use the Linux fmt command to format text.md index 6c20109d86..0a357669ee 100644 --- a/sources/tech/20220721 How I use the Linux fmt command to format text.md +++ b/sources/tech/20220721 How I use the Linux fmt command to format text.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/fmt-trivial-text-formatter" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "perfiffer" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 189141fc2c09ed5ab56a4e89bee0d638526bd529 Mon Sep 17 00:00:00 2001 From: zzj Date: Sun, 24 Jul 2022 17:56:23 +0800 Subject: [PATCH 0498/3123] translated --- ... 7 kinds of garbage collection for Java.md | 120 ----------------- ... 7 kinds of garbage collection for Java.md | 121 ++++++++++++++++++ 2 files changed, 121 insertions(+), 120 deletions(-) delete mode 100644 sources/tech/20220712 7 kinds of garbage collection for Java.md create mode 100644 translated/tech/20220712 7 kinds of garbage collection for Java.md diff --git a/sources/tech/20220712 7 kinds of garbage collection for Java.md b/sources/tech/20220712 7 kinds of garbage collection for Java.md deleted file mode 100644 index 603cfaa5a8..0000000000 --- a/sources/tech/20220712 7 kinds of garbage collection for Java.md +++ /dev/null @@ -1,120 +0,0 @@ -[#]: subject: "7 kinds of garbage collection for Java" -[#]: via: "https://opensource.com/article/22/7/garbage-collection-java" -[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" -[#]: collector: "lkxed" -[#]: translator: "Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 kinds of garbage collection for Java -====== -Learn about the choices you have in Java for memory management. - -An application written using programming languages like C and C++ requires you to program the destruction of objects in memory when they're no longer needed. The more your application grows, the great the probability that you'll overlook releasing unused objects. This leads to a memory leak and eventually the system memory gets used up, and at some point there's no further memory to allocate. This results in a situation where the application fails with an OutOfMemoryError. But in the case of Java, Garbage Collection (GC) happens automatically during application execution, so it alleviates the task of manual deallocation and possible memory leaks. - -Garbage Collection isn't a single task. The Java Virtual Machine (JVM) has eight different kinds of Garbage Collection, and it's useful to understand each one's purpose and strength. - -### 1. Serial GC - -![Serial threaded garbage collection][1] - -A primitive implementation of GC using just a single thread. When Garbage Collection happens, it pauses the application (commonly known as a "stop the world" event.) This is suitable for applications that can withstand small pauses. Garbage Collection has a small footprint, so this is the preferred GC type for embedded applications. This Garbage Collection style can be enabled at runtime: - -``` -$ java -XX:+UseSerialGC -``` - -### 2. Parallel GC - -![Parallel garbage collection][2] - -Like Serial GC, this also uses a "stop the world" method. That means that while GC is happening, application threads are paused. But in this case, there are multiple threads performing GC operation. This type of GC is suitable for applications with medium to large data sets running in a multithreaded and multiprocessor environment. - -This is the default GC in JVM, and is also known as the *Throughput Collector*. Various GC parameters, like throughput, pause time, number of threads, and footprint, can be tuned with suitable JVM flags: - -* Number of threads: `-XX:ParallelGCThreads=` -* Pause time: `-XX:MaxGCPauseMillis=` -* Throughput (time spent for GC compared to actual application execution): `-XX:GCTimeRatio=` -* Maximum heap footprint: `-Xmx` -* Parallel GC can be explicitly enabled: `java -XX:+UseParallelGC`. With this option, minor GC in the young generation is done with multiple threads, but GC and compaction is done with a single thread in the old generation. - -There's also a version of Parallel GC called *Parallel Old GC*, which uses multiple threads for both young and old generations: - -``` -$ java -XX:+UseParallelOldGC -``` - -### 3. Concurrent Mark Sweep (CMS) - -![Concurrent garbage collection][3] - -Concurrent Mark Sweep (CMS) garbage collection is run alongside an application. It uses multiple threads for both minor and major GC. Compaction for live objects isn't performed in CMS GC after deleting the unused objects, so the time paused is less than in other methods. This GC runs concurrently with the application, which slows the response time of the application. This is suitable for applications with low pause time. This GC was deprecated in Java 8u, and completely removed from 14u onwards. If you're still using a Java version that has it, though, you can enable it with: - -``` -$ java -XX:+UseConcMarkSweepGC -``` - -In the case of CMS GC, the application is paused twice. It's paused first when it marks a live object that's directly reachable. This pause is known as the *initial-mark*. It's paused a second time at the end of the CMS GC phase, to account for the objects that were missed during the concurrent cycle, when application threads updated the objects after CMS GC were completed. This is known as the *remark phase*. - -### 4. G1 (Garbage First) GC - -![Garbage first][4] - -Garbage first (G1) was meant to replace CMS. G1 GC is parallel, concurrent, and incrementally compacting, with low pause-time. G1 uses a different memory layout than CMS, dividing the heap memory into equal sized regions. G1 triggers a global mark phase with multiple threads. After the mark phase is complete, G1 knows which region might be mostly empty and chooses that region for a sweep/deletion phase first. - -In the case of G1, an object that's more than half a region size is considered a "humongous object." These objects are placed in the Old generation, in a region appropriately called the *humongous region*. To enable G1: - -``` -$ java -XX:+UseG1GC -``` - -### 5. Epsilon GC - -This GC was introduced in 11u and is a *no-op* (do nothing) GC. Epsilon just manages memory allocation. It doesn’t do any actual memory reclamation. Epsilon is intended only when you know the exact memory footprint of your application, and knows that it is garbage collection free. - -``` -$ java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -``` - -### 6. Shenandoah - -Shenandoah was introduced in JDK 12, and is a CPU intensive GC. It performs compaction, deletes unused objects, and release free space to the OS immediately. All of this happens in parallel with the application thread itself. To enable Shenandoah: - -``` -$ java -XX:+UnlockExperimentalVMOptions \ --XX:+UseShenandoahGC -``` - -### 7. ZGC - -ZGC is designed for applications that have low latency requirements and use large heaps. ZGC allows a Java application to continue running while it performs all garbage collection operations. ZGC was introduced in JDK 11u and improved in JDK 12. Both Shenandoah and ZGC have been moved out of the experimental stage as of JDK 15. To enable ZGC: - -``` -$ java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -``` - -### Flexible garbage collection - -Java provides flexibility for memory management. It's useful to get familiar with the different methods available so you can choose what's best for the application you're developing or running. - -Image by: [Opensource.com][5] - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/garbage-collection-java - -作者:[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/2022-07/jaya-java-gc-serial.webp -[2]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-parallel.webp -[3]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-concurrent.webp -[4]: https://opensource.com/sites/default/files/2022-07/g1.png -[5]: https://opensource.com/home-page-new diff --git a/translated/tech/20220712 7 kinds of garbage collection for Java.md b/translated/tech/20220712 7 kinds of garbage collection for Java.md new file mode 100644 index 0000000000..22d32ce7fd --- /dev/null +++ b/translated/tech/20220712 7 kinds of garbage collection for Java.md @@ -0,0 +1,121 @@ +[#]: subject: "7 kinds of garbage collection for Java" +[#]: via: "https://opensource.com/article/22/7/garbage-collection-java" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: "Veryzzj" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +七种 Java 的垃圾收集器 +====== + +了解 Java 中的内存管理。 + +用 C 或 C++ 这样的编程语言写一个应用时,需要编码来销毁内存中不再需要的对象。当应用程序越进行扩展,未使用对象被忽略释放的可能性就越大。这会导致内存泄露,最终内存耗尽,在某个时刻将没有更多的内存可以分配。结果就是应用程序运行失败并出现 OutOfMemoryError。但在 Java 中,垃圾收集器(GC)会在程序执行过程中自动运行,减轻了手动分配内存和可能的内存泄漏的任务。 + +垃圾收集器并不只有一种,Java 虚拟机( JVM)有八种不同的垃圾收集器,了解每种垃圾收集器的目的和优点是很有用的。 + +### 1. Serial 收集器 + +![Serial threaded garbage collection][1] + +使用单线程的垃圾收集器的原始实现。当垃圾收集器运行时,会停止应用程序(通常称为“stop the world”事件)。使用用能够承受短暂停顿的应用程序。该垃圾收集器占用内存空间比较小,因此这是嵌入式应用程序的首选垃圾收集器类型。在运行时使用以下命令启用该垃圾收集器: + +``` +$ java -XX:+UseSerialGC +``` + +### 2. Parallel 收集器 + +![Parallel garbage collection][2] + +像 Serial 收集器一样,Parallel 收集器也使用”stop the world”方法。这意味着,当垃圾收集器运行时,应用程序线程会停止。但是不同的是,Parallel 收集器运行时有多个线程执行垃圾收集操作。这种类型的垃圾收集器适用于在多线程和多处理器环境中运行中到大型数据集的应用程序。 + +这是 JVM 中的默认垃圾收集器,也被称为*吞吐量收集器*。使用该垃圾收集器时通过使用各种合适的 JVM 参数进行调优,例如吞吐量、暂停时间、线程数和内存占用。命令如下: + +* 线程数:`-XX:ParallelGCThreads=` +* 暂停时间:`-XX:MaxGCPauseMillis=` +* 吞吐量(垃圾收集花费的时间与实际应用程序执行的时间相比):`-XX:GCTimeRatio=` +* 最大堆内存:`-Xmx` +* Parallel 收集器可以使用该命令显式启用:`java -XX:+UseParallelGC` 。使用这个命令,指定在新生代中通过多个线程进行垃圾回收,而老年代中的垃圾收集和内存压缩仍使用单个线程完成的。 + +还有一个版本的的 Parallel 收集器叫做 *Parallel Old GC*,它对新生代和老年代都使用多线程,启用命令如下: + +``` +$ java -XX:+UseParallelOldGC +``` + +### 3. Concurrent Mark Sweep(CMS)收集器 + +![Concurrent garbage collection][3] + +Concurrent Mark Sweep(CMS) 垃圾收集器与应用程序并行运行。对于新生代和老年代都使用了多线程。在CMS垃圾收集器删除无用对象后,不会对存活对象进行内存压缩。该垃圾收集器和应用程序并行运行,会降低应用程序的响应时间,适用于停顿时间较短的应用程序。这个收集器在 Java8 已过时,并在 Java14 中被移除。如果你仍在使用有这个垃圾收集器的 Java 版本,可以使用如下命令启用: + +``` +$ java -XX:+UseConcMarkSweepGC +``` + +在 CMS 垃圾收集器使用过程中,应用程序将暂停两次。首次暂停发生在标记可直接访问的存活对象时,这个暂停被称为*初始标记*。第二次暂停发生在 CMS 收集器结束时期,来修正在并发标记过程中,应用程序线程在 CMS 垃圾回收完成后更新对象时被遗漏的对象。这就是所谓的*重新标记*。 + +### 4. G1 收集器 + +![Garbage first][4] + +G1垃圾收集器旨在替代 GMS。G1 垃圾收集器具备并行、并发以及增量压缩,且暂停时间较短。与 CMS 收集器使用的内存布局不同,G1 收集器将堆内存划分为大小相同的区域,通过多个线程触发全局标记阶段。标记阶段完成后,G1 知道哪个区域可能大部分是空的,并首选该区域作为清除/删除阶段。 + + 在 G1 收集器中,一个对象如果大小超过半个区域容量会被认为是一个“大对象” 。这些对象被放置在老年代中,在一个被称为*humongous region*的区域中。 启用 G1 收集器的命令如下: + +``` +$ java -XX:+UseG1GC +``` + +### 5. Epsilon 收集器 + +该垃圾收集器是在 Java11 中引入的,是一个 *no-op*(无操作)收集器。它不做任何实际的内存回收,只负责管理内存分配。Epsilon 只在当你知道应用程序的确切内存占用情况并且不需要垃圾回收时使用。启用命令如下: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC +``` + +### 6. Shenandoah 收集器 + +Shenandoah 是在 JDK12 中引入的,是一种CPU密集型垃圾收集器。它会进行内存压缩,立即删除无用对象并释放操作系统的空间。所有的这一切与应用程序线程并行发生。启用命令如下: + +``` +$ java -XX:+UnlockExperimentalVMOptions \ +-XX:+UseShenandoahGC +``` + +### 7. ZGC收集器 + +ZGC 为低延迟需要和大量堆空间使用而设计,允许当垃圾回收器运行时 Java 应用程序继续运行。 ZGC 收集器在 JDK11 引入,在 JDK12 改进。在 JDK15,ZGC 和 Shenandoah 都被移出了实验阶段。启用 ZGC 收集器使用如下命令: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC +``` + +### 灵活的垃圾收集器 + +Java 为我们提供了灵活的内存管理方式,熟悉不同的可用方法有助于为正在开发或运行的应用程序选择最合适的内存管理方式。 + +Image by: [Opensource.com][5] + +-------------------------------------------------------------------------------- + + via: https://opensource.com/article/22/7/garbage-collection-java + +作者:[Jayashree Huttanagoudar][a] +选题:[lkxed][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jayashree-huttanagoudar +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-serial.webp +[2]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-parallel.webp +[3]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-concurrent.webp +[4]: https://opensource.com/sites/default/files/2022-07/g1.png +[5]: https://opensource.com/home-page-new From defb38d1d250fbffbfef8b6560583fdcfc21f760 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 24 Jul 2022 23:17:46 +0800 Subject: [PATCH 0499/3123] RP @geekpi https://linux.cn/article-14861-1.html --- ...ble Packages With apt Command in Ubuntu.md | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) rename {translated/tech => published}/20220712 List Upgradable Packages With apt Command in Ubuntu.md (63%) diff --git a/translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md b/published/20220712 List Upgradable Packages With apt Command in Ubuntu.md similarity index 63% rename from translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md rename to published/20220712 List Upgradable Packages With apt Command in Ubuntu.md index b5a866848a..2e4c7f3ed0 100644 --- a/translated/tech/20220712 List Upgradable Packages With apt Command in Ubuntu.md +++ b/published/20220712 List Upgradable Packages With apt Command in Ubuntu.md @@ -3,14 +3,16 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14861-1.html" 在 Ubuntu 中使用 apt 命令列出可升级的软件包 ====== -[apt 命令][1] 用于 Debian 和 Ubuntu 中的包管理。虽然你可能已经熟悉安装和删除选项,但 apt 还提供了一些额外的功能。 +![](https://img.linux.net.cn/data/attachment/album/202207/24/230954qjko0c0sn55ohjf0.jpg) + +[apt 命令][1] 用于 Debian 和 Ubuntu 中的包管理。虽然你可能已经熟悉安装和删除选项,但 `apt` 还提供了一些额外的功能。 其中之一是能够查看系统上所有可升级的软件包。要显示它们,你所要做的就是在终端中使用以下命令: @@ -18,9 +20,9 @@ apt list --upgradable ``` -如你所见,你甚至不需要 sudo 来列出可更新的包。它只是列出了可以更新的包。它不会更新它们。 +如你所见,你甚至不需要使用 `sudo` 来列出可更新的包。它只是列出了可以更新的包,而不会更新它们。 -实际上,当你运行 `sudo apt update` 命令更新本地包仓库缓存时,apt 命令会添加此提示。 +实际上,当你运行 `sudo apt update` 命令更新本地包仓库缓存时,`apt` 命令会添加此提示。 ``` Fetched 1,243 kB in 17s (71.4 kB/s) @@ -30,17 +32,17 @@ Reading state information... Done 30 packages can be upgraded. Run 'apt list --upgradable' to see them. ``` -我不记得在旧的 apt-get 命令中有任何类似的直接选项来列出所有可升级的包。这是 apt 在旧的 apt-get 命令之上添加的几个新功能之一。 +我不记得在旧的 `apt-get` 命令中有任何类似的直接选项来列出所有可升级的包。这是 `apt` 在旧的 `apt-get` 命令之上添加的几个新功能之一。 让我们更详细地讨论一下。 ### 列出所有可升级的包 -你在这里应该知道的是**你只能通过 APT 包管理器列出可用的更新**。 因此,如果你已将 PPA 或[外部仓库][2]添加到系统的 sources.list,你将查看它们的更新。 +你在这里应该知道的是**你只能列出通过 APT 包管理器可用的更新**。因此,如果你已将 PPA 或 [外部仓库][2] 添加到系统的 `sources.list`,你也将看到来自它们的更新。 -但是你不会在这里获得 AppImage、Flatpak、Snap 或其他一些打包格式的更新。 +但是你不会在这里获得 AppImage、Flatpak、Snap 或一些其他打包格式的更新。 -换句话说,它只适用于 apt 包。 +换句话说,它只适用于 APT 包。 因此,要列出 Ubuntu 或 Debian 系统上的所有可升级包,你应该首先更新本地包缓存: @@ -48,10 +50,10 @@ Reading state information... Done sudo apt update ``` -然后你的系统将知道可用的软件包更新。 apt 命令告诉你在 update 命令结束时可以升级多少个软件包: +然后你的系统将知道可用的软件包更新。`apt` 命令告诉你在 update 命令结束时可以升级多少个软件包: ![The apt command shows the number of upgradable packages at the bottom of the apt update command output][3] -To see what package can be upgraded, run the command: + 要查看可以升级的软件包,请运行以下命令: ``` @@ -61,7 +63,7 @@ apt list --upgradable 你应该看到这样的输出: ``` -[email protected]:~$ apt list --upgradable +~$ apt list --upgradable Listing... Done apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2] brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] @@ -89,11 +91,11 @@ brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107] sudo apt upgrade ``` -它列出了将要升级的软件包,然后要求按回车或 Y 确认升级。 +它列出了将要升级的软件包,然后要求按回车或 `Y` 确认升级。 ![Upgrade all packages][5] -如果你确定要升级所有软件包,则可以通过在命令中添加 -y 来跳过 “Do you want to continue” 部分。 +如果你确定要升级所有软件包,则可以通过在命令中添加 `-y` 来跳过 “Do you want to continue” 部分。 ``` sudo apt upgrade -y @@ -101,27 +103,27 @@ sudo apt upgrade -y ### 模拟升级(但不升级任何包) -这是人们在 apt list 命令之前所做的。使用模拟选项,你实际上不会进行任何更改。它仅显示运行升级时将安装或升级的软件包。 +这是人们在 `apt list` 命令之前所做的。使用模拟选项,你实际上不会进行任何更改。它仅显示运行升级时将安装或升级的软件包。 ``` apt -s upgrade ``` -你不需要使用 sudo(即使我在下面的截图中使用了它)。 +你不需要使用 `sudo`(即使我在下面的截图中使用了它)。 ![Running an upgrade simulation with apt command][6] ### 仅升级选定的包 -如果你正在管理一个 Ubuntu 服务器,并且你不想升级所有软件包,而只想升级少数选定的软件包中的一个(如 MySQL/Ngnix),你可以使用 apt 命令轻松完成。 +如果你正在管理一个 Ubuntu 服务器,并且你不想升级所有软件包,而只想升级少数选定的软件包中的一个(如 MySQL/Ngnix),你可以使用 `apt` 命令轻松完成。 ``` sudo apt --only-upgrade install package_name ``` -实际上,如果你在已安装且有可用更新的软件包上运行 apt install 命令,它将升级该软件包。 +实际上,如果你在已安装且有可用更新的软件包上运行 `apt install` 命令,它将升级该软件包。 -使用 `--only-upgrade` 标志,你可以确保仅升级软件包(如果已安装)。如果尚未安装,它将不会安装给定的包。 +使用 `--only-upgrade` 标志,你可以确保**仅升级**软件包(如果已安装)。如果尚未安装,它将不会安装给定的包。 你还可以通过提供名称来升级选定的几个包: @@ -129,7 +131,7 @@ sudo apt --only-upgrade install package_name sudo apt --only-upgrade install package1 package2 ``` -你也可以做相反的事情并[保留升级中的选定软件包][7]。 +你也可以做相反的事情,[升级时保留选定的软件包][7]。 ``` sudo apt-mark hold package_name @@ -137,7 +139,7 @@ sudo apt-mark hold package_name 这样,当你升级所有系统包时,将不会升级给定的包。 -你可以使用以下命令删除保留: +你可以使用以下命令删除保留设置: ``` sudo apt-mark unhold package_name @@ -147,15 +149,15 @@ sudo apt-mark unhold package_name 这有点棘手。 -当你运行“apt list –upgradable”命令时,它会显示所有可以升级的包。 +当你运行 `apt list –upgradable` 命令时,它会显示所有可以升级的包。 -但是如果有新的内核版本可用,它们可能不会显示,因为内核包名称以 linux-headers-x-y 开头。这是因为系统将它们视为新包,而不是对已安装的包 linux-headers-a-b 的升级。 +但是如果有新的内核版本可用,它们可能不会显示,因为内核包名称以 `linux-headers-x-y` 开头。这是因为系统将它们视为新包,而不是对已安装的包 `linux-headers-a-b` 的升级。 -但是,你仍然会在可升级包列表中看到 “linux-generic-hwe” 类型的包。因为该软件包将被升级(使用较新的内核)。 +但是,你仍然会在可升级包列表中看到 `linux-generic-hwe` 类型的包,因为该软件包将被升级(使用较新的内核)。 ### 总结 -列出可升级包的能力是 apt 命令为旧的 apt-get 命令带来的几个新功能之一。有关此主题的更多信息,你可以阅读我的文章[解释 apt 和 apt-get 命令之间的区别][8]。 +列出可升级包的能力是 `apt` 命令为旧的 `apt-get` 命令带来的几个新功能之一。有关此主题的更多信息,你可以阅读我 [解释 apt 和 apt-get 命令之间的区别][8] 的文章。 作为桌面用户,我并不总是检查可以升级的软件包。我直接去升级。但是,当我管理服务器时,我更喜欢查看可用的更新,然后决定是否进行升级。 @@ -168,7 +170,7 @@ via: https://itsfoss.com/apt-list-upgradable/ 作者:[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/) 荣誉推出 From 80bbb22004e87c5b1b2a5f97b192218149d87c1c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Mon, 25 Jul 2022 05:02:40 +0800 Subject: [PATCH 0500/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220724?= =?UTF-8?q?=20Wayland=20Core=20Protocol=20is=20Tailored=20Only=20for=20GNO?= =?UTF-8?q?ME=20and=20That=E2=80=99s=20Not=20a=20Good=20Thing=20[Opinion]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md --- ...ME and That-s Not a Good Thing -Opinion.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md diff --git a/sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md b/sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md new file mode 100644 index 0000000000..858773a3e6 --- /dev/null +++ b/sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md @@ -0,0 +1,142 @@ +[#]: subject: "Wayland Core Protocol is Tailored Only for GNOME and That’s Not a Good Thing [Opinion]" +[#]: via: "https://news.itsfoss.com/wayland-core-protocol-issue/" +[#]: author: "Community https://news.itsfoss.com/author/team/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wayland Core Protocol is Tailored Only for GNOME and That’s Not a Good Thing [Opinion] +====== + +Wayland is a display server system based on the idea of [protocols][1]. That means that there is no Wayland display server that clients need to talk to. Instead, Wayland defines a protocol for creating display servers. Any client application that is programmed to use this protocol can work on any display server(or compositor) that fully supports this protocol. It’s like the [world wide web protocols][2], where any website can work on any browser as long as the browser is completely supporting the web protocols. So you don’t create websites for specific browsers. + +That also means that the functions defined in the protocol decide what applications (aka clients) can do & what they can’t do. Returning to the example of the website, if the protocol doesn’t define necessary functions, it will limit the web developers. Take CSS as an example; if it wasn’t available in the web protocols, all websites would have looked the same and boring. So the protocol must include all necessary basics in a way that doesn’t limit developers to a few cases and uses. + +When Wayland developers started defining the protocol, they had to decide what functionalities to include in the protocol. Their decision was to make the protocol as minimal as possible, and compositors shall create new protocols for their specific use cases if they desire to offer more functionality not included in the main protocol. The main protocol was called [Wayland Core protocol][3], and other protocols are called [protocol extensions][4]. All compositors are expected to support the core protocol, and they may not support other protocol extensions. That means that applications that depend on certain functionality defined in one of the protocol extensions will not work on all compositors. + +All of the above is what Wayland developers intended for the Wayland world to be. Now let’s delve into more detail. How much is Wayland core protocol minimal? In other words, what determines what shall be in the core protocol and what shall not be? In this article, I’m going to give you an answer to this question based on my opinion, which is in turn based on a group of simple facts. + +_**My opinion is that Wayland’s Core protocol is tailored only for GNOME needs.**_ + +I mean that the functionalities which exist in Wayland’s core protocol are the bare minimum required for GNOME desktop and apps to work on Wayland. + +That’s bad (still in my opinion) because it’s simply not enough for other desktop environments and apps other than GNOME desktop and apps, as I will show you in this article. + +### 1\. The core protocol requires that desktop visual components be drawn by the compositor + +First, let’s explain something. In most desktop environments, desktop components (like dock, panel, wallpaper, desktop icons, etc.) are regular clients. For those components to work, they need certain functions to be implemented by the compositor; those functions include: + + * Ability to move the window + * Ability to tell the compositor to not draw decorations around said windows. + * Ability to keep it above all windows(in case of the panel) or keep it below all windows (in case of the background). + * In addition to some other functionalities. + + + +On X11, those were defined in the ICCCM specification, which allows X11 clients to tell the compositor to do any of the above. On Wayland, there is not anything in the core protocol that allows that. This means that desktop environment creators have to draw all these in the compositor. + +GNOME is the only desktop that does that, while many other desktops (KDE, XFCE, Lxqt, etc.) draw their components outside the compositor (an exception to that is Cinnamon because it started as a fork of GNOME 3). The situation is even worse. Apps like [plank dock][5], [latte dock][6] and other independent desktop components can’t exist in Wayland. There are protocol extensions that fix that, and I will discuss them later. + +In summary, the situation is: + + * Desktop environments have to draw everything in the compositor. + * It’s impossible to create cross-desktop desktop components like Plank and Latte dock + + + +### 2\. CSD is implementable, although clients can’t move their window + +We have known before that the core protocol doesn’t define a way for clients to move their windows. So how is CSD implemented? Well, there is a [function in the protocol][7] that tells the compositor to start dragging the window. So instead of having a function for moving the window, which would had been useful in many cases, they resorted to having a function only helpful in implementing CSD. + +### 3\. CSD is a must in Wayland core protocol + +On X11, the situation was that apps expect to get decorated by the compositor (which is SSD) and if they wish to decorate themselves (by CSD) they tell the compositor to not draw its decorations. On Wayland, compositors are free to draw their decorations if they wish. + +The problem is that there is no way (inside the core protocol) for apps to know whether they are being decorated or not. In other words, clients can’t tell the compositor whether they prefer CSD or SSD, which is problematic for both CSD and SSD (in theory). But in practice, GNOME decided not to decorate clients at all. So apps have to assume that they are not decorated due to GNOME’s decision, so they must go for CSD. Again, there is a protocol extension that fixes that; more on that later. + +### To summarize + +The above three facts regarding the core protocol in summary are: + + 1. Desktop components need to be drawn by the compositor + 2. CSD is a must. + 3. CSD is implementable, although clients can’t move their windows. + + + +According to these 3 facts, I’ve concluded my opinion that Wayland’s core protocol is tailored only for GNOME needs. + +What if you wanted some functionalities not available in the core protocol. Wayland or GNOME developers’ answer to this is Wayland’s protocol extensions. That simply means that compositors can offer extra functionality by creating new protocols. The problem with this approach is that means that some apps may work on some compositors and may not work on the rest of the compositors (that’s if it needs some of the protocol extensions). That may have resulted in severe fragmentation in theory, but the reality is less than worse thanks to the efforts of [wlroots project][8] and KDE. + +### Wlroots has mostly saved the situation + +[Wlroots][8] is a library created by [Sway compositor][9] developers. It enables developers to create Wayland/X11 compositors easily. Their main focus is Wayland. There are already many compositors available based on wlroots. What is interesting though is the protocol extensions that wlroots implement. + +Wlroots has many protocol extensions, including: + + * [LayerShell][10] protocol + * [xdg-decoration][11] protocol + + + +The LayerShell protocol enables desktop components to be drawn outside the compositor. Which also makes it possible to create independent cross-desktop desktop components. Many projects utilize this protocol that you can explore in the following repositories: + + * [nwg-shell][12] + * [wf-shell][13] + * [awesome-wayland][14] + + + +Also, have a look at [GtkLayerShell library][15]. Which is a library for writing Gtk apps with LayerShell protocol. +Because LayerShell protocol is not a part of the core protocol apps using it work on wlroots based compositors and KDE, it’s not supported only on GNOME. + +The second protocol is xdg-decoration protocol. Made by wlroots and KDE, it enables apps to choose between CSD and SSD. + +These protocols work on wlroots compositor and KDE. The only obstacle preventing the unification of Linux desktop is GNOME. They have decided not to implement any of these protocol extensions. Which put all apps that use SSD in a situation where they have to use SSD in supporting environments and CSD in gnome. The people actually feeling the pain are toolkits developers. To give you more context, have a look at the “CSD initiative” started by Tobias Bernard from GNOME, and this blog post from Martin’s blog (kwin’s developer). Also, have a look at this issue. The situation is mostly solved by now, that Qt and Gtk draw CSD always on GNOME and utilize the xdg-decoration on other environments. However, in my opinion, that is not good because it makes the platform less standardized/unified for no good reason. After all, in the future, toolkits developers may decide to just go for CSD to avoid the pain. + +### The root of all these problems + +The root of all these is GNOME or Wayland developers’ decision to have the core as minimum as possible and require the creation of protocol extensions. + +Imagine if the web worked in a similar way. That means that websites would not be able to target the standardized (minimal) protocols because they are not enough and will rely on protocols created by certain browsers. So websites would target specific browsers, not the core protocol. That would had been a nightmare, right? Well, that’s the current Wayland situation. + +### What is the solution? + +The solution, in my opinion, is to put all these protocol extensions in the core protocol, or that might not be necessary if GNOME implements the above protocols (Which is not likely to happen anytime soon.) +In simple words, GNOME is the root cause of the problem, and it can solve the problem if it decides to do so. + +Author Info: This article has been contributed by It’s FOSS reader Hamza Algohary. Hamza is a computer engineering student and a Linux and open source enthusiast. He also develops apps for Linux desktop. You can find his work on [his GitHub profile][16]. + +_The views and opinions expressed are those of the authors and do not necessarily reflect the official policy or position of It’s FOSS._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/wayland-core-protocol-issue/ + +作者:[Community][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/team/ +[b]: https://github.com/lujun9972 +[1]: https://wayland.freedesktop.org/docs/html/ch04.html +[2]: https://www.w3.org/standards/ +[3]: https://wayland.app/protocols/wayland +[4]: https://wayland.app/protocols/ +[5]: https://github.com/ricotz/plank +[6]: https://github.com/KDE/latte-dock +[7]: https://wayland-book.com/xdg-shell-in-depth/interactive.html +[8]: https://gitlab.freedesktop.org/wlroots/wlroots +[9]: https://swaywm.org/ +[10]: https://wayland.app/protocols/wlr-layer-shell-unstable-v1 +[11]: https://wayland.app/protocols/xdg-decoration-unstable-v1 +[12]: https://github.com/nwg-piotr/nwg-shell +[13]: https://github.com/WayfireWM/wf-shell +[14]: https://github.com/natpen/awesome-wayland +[15]: https://github.com/wmww/gtk-layer-shell +[16]: https://github.com/hamza-Algohary From 4f810fff42c3f2e4e616ccf00f8ffd0202ef1c1e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 25 Jul 2022 08:02:27 +0800 Subject: [PATCH 0501/3123] RP @Veryzzj https://linux.cn/article-14862-1.html --- ... 7 kinds of garbage collection for Java.md | 121 ++++++++++++++++++ ... 7 kinds of garbage collection for Java.md | 121 ------------------ 2 files changed, 121 insertions(+), 121 deletions(-) create mode 100644 published/20220712 7 kinds of garbage collection for Java.md delete mode 100644 translated/tech/20220712 7 kinds of garbage collection for Java.md diff --git a/published/20220712 7 kinds of garbage collection for Java.md b/published/20220712 7 kinds of garbage collection for Java.md new file mode 100644 index 0000000000..e353e8dba1 --- /dev/null +++ b/published/20220712 7 kinds of garbage collection for Java.md @@ -0,0 +1,121 @@ +[#]: subject: "7 kinds of garbage collection for Java" +[#]: via: "https://opensource.com/article/22/7/garbage-collection-java" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: "Veryzzj" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14862-1.html" + +Java 的七种垃圾收集器 +====== + +![](https://img.linux.net.cn/data/attachment/album/202207/25/075744nw0c9c4vtvkgiuct.jpg) + +> 了解 Java 中的内存管理。 + +用 C 或 C++ 这样的编程语言写一个应用时,需要编写代码来销毁内存中不再需要的对象。当应用程序扩展得越来越复杂时,未使用对象被忽略释放的可能性就越大。这会导致内存泄露,最终内存耗尽,在某个时刻将没有更多的内存可以分配。结果就是应用程序运行失败并出现 OutOfMemoryError 错误。但在 Java 中,垃圾收集器Garbage Collection(GC)会在程序执行过程中自动运行,减轻了手动分配内存和可能的内存泄漏的任务。 + +垃圾收集器并不只有一种,Java 虚拟机(JVM)有七种不同的垃圾收集器,了解每种垃圾收集器的目的和优点是很有用的。 + +### 1、Serial 收集器 + +![Serial threaded garbage collection][1] + +垃圾收集器的原始实现,使用单线程。当垃圾收集器运行时,会停止应用程序(通常称为“stop the world”事件)。适用于能够承受短暂停顿的应用程序。该垃圾收集器占用内存空间比较小,因此这是嵌入式应用程序的首选垃圾收集器类型。在运行时使用以下命令启用该垃圾收集器: + +``` +$ java -XX:+UseSerialGC +``` + +### 2、Parallel 收集器 + +![Parallel garbage collection][2] + +像 Serial 收集器一样,Parallel 收集器也使用“stop the world”方法。这意味着,当垃圾收集器运行时,应用程序线程会停止。但是不同的是,Parallel 收集器运行时有多个线程执行垃圾收集操作。这种类型的垃圾收集器适用于在多线程和多处理器环境中运行中到大型数据集的应用程序。 + +这是 JVM 中的默认垃圾收集器,也被称为*吞吐量收集器*。使用该垃圾收集器时可以通过使用各种合适的 JVM 参数进行调优,例如吞吐量、暂停时间、线程数和内存占用。如下: + +* 线程数:`-XX:ParallelGCThreads=` +* 暂停时间:`-XX:MaxGCPauseMillis=` +* 吞吐量(垃圾收集花费的时间与实际应用程序执行的时间相比):`-XX:GCTimeRatio=` +* 最大堆内存:`-Xmx` + +Parallel 收集器可以使用该命令显式启用:`java -XX:+UseParallelGC` 。使用这个命令,指定在新生代中通过多个线程进行垃圾回收,而老年代中的垃圾收集和内存压缩仍使用单个线程完成的。 + +还有一个版本的的 Parallel 收集器叫做 “Parallel Old GC”,它对新生代和老年代都使用多线程,启用命令如下: + +``` +$ java -XX:+UseParallelOldGC +``` + +### 3、Concurrent Mark Sweep(CMS)收集器 + +![Concurrent garbage collection][3] + +Concurrent Mark Sweep(CMS)垃圾收集器与应用程序并行运行。对于新生代和老年代都使用了多线程。在 CMS 垃圾收集器删除无用对象后,不会对存活对象进行内存压缩。该垃圾收集器和应用程序并行运行,会降低应用程序的响应时间,适用于停顿时间较短的应用程序。这个收集器在 Java8 已过时,并在 Java14 中被移除。如果你仍在使用有这个垃圾收集器的 Java 版本,可以使用如下命令启用: + +``` +$ java -XX:+UseConcMarkSweepGC +``` + +在 CMS 垃圾收集器使用过程中,应用程序将暂停两次。首次暂停发生在标记可直接访问的存活对象时,这个暂停被称为*初始标记*。第二次暂停发生在 CMS 收集器结束时期,来修正在并发标记过程中,应用程序线程在 CMS 垃圾回收完成后更新对象时被遗漏的对象。这就是所谓的*重新标记*。 + +### 4、G1 收集器 + +![Garbage first][4] + +G1 垃圾收集器旨在替代 GMS。G1 垃圾收集器具备并行、并发以及增量压缩,且暂停时间较短。与 CMS 收集器使用的内存布局不同,G1 收集器将堆内存划分为大小相同的区域,通过多个线程触发全局标记阶段。标记阶段完成后,G1 知道哪个区域可能大部分是空的,并首选该区域作为清除/删除阶段。 + +在 G1 收集器中,一个对象如果大小超过半个区域容量会被认为是一个“大对象” 。这些对象被放置在老年代中,在一个被称为“humongous region”的区域中。 启用 G1 收集器的命令如下: + +``` +$ java -XX:+UseG1GC +``` + +### 5、Epsilon 收集器 + +该垃圾收集器是在 Java11 中引入的,是一个 *no-op*(无操作)收集器。它不做任何实际的内存回收,只负责管理内存分配。Epsilon 只在当你知道应用程序的确切内存占用情况并且不需要垃圾回收时使用。启用命令如下: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC +``` + +### 6、Shenandoah 收集器 + +Shenandoah 是在 JDK12 中引入的,是一种 CPU 密集型垃圾收集器。它会进行内存压缩,立即删除无用对象并释放操作系统的空间。所有的这一切与应用程序线程并行发生。启用命令如下: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC +``` + +### 7、ZGC 收集器 + +ZGC 为低延迟需要和大量堆空间使用而设计,允许当垃圾回收器运行时 Java 应用程序继续运行。ZGC 收集器在 JDK11 引入,在 JDK12 改进。在 JDK15,ZGC 和 Shenandoah 都被移出了实验阶段。启用 ZGC 收集器使用如下命令: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC +``` + +### 灵活的垃圾收集器 + +Java 为我们提供了灵活的内存管理方式,熟悉不同的可用方法有助于为正在开发或运行的应用程序选择最合适的内存管理方式。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/garbage-collection-java + +作者:[Jayashree Huttanagoudar][a] +选题:[lkxed][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jayashree-huttanagoudar +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-serial.webp +[2]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-parallel.webp +[3]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-concurrent.webp +[4]: https://opensource.com/sites/default/files/2022-07/g1.png +[5]: https://opensource.com/home-page-new diff --git a/translated/tech/20220712 7 kinds of garbage collection for Java.md b/translated/tech/20220712 7 kinds of garbage collection for Java.md deleted file mode 100644 index 22d32ce7fd..0000000000 --- a/translated/tech/20220712 7 kinds of garbage collection for Java.md +++ /dev/null @@ -1,121 +0,0 @@ -[#]: subject: "7 kinds of garbage collection for Java" -[#]: via: "https://opensource.com/article/22/7/garbage-collection-java" -[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" -[#]: collector: "lkxed" -[#]: translator: "Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -七种 Java 的垃圾收集器 -====== - -了解 Java 中的内存管理。 - -用 C 或 C++ 这样的编程语言写一个应用时,需要编码来销毁内存中不再需要的对象。当应用程序越进行扩展,未使用对象被忽略释放的可能性就越大。这会导致内存泄露,最终内存耗尽,在某个时刻将没有更多的内存可以分配。结果就是应用程序运行失败并出现 OutOfMemoryError。但在 Java 中,垃圾收集器(GC)会在程序执行过程中自动运行,减轻了手动分配内存和可能的内存泄漏的任务。 - -垃圾收集器并不只有一种,Java 虚拟机( JVM)有八种不同的垃圾收集器,了解每种垃圾收集器的目的和优点是很有用的。 - -### 1. Serial 收集器 - -![Serial threaded garbage collection][1] - -使用单线程的垃圾收集器的原始实现。当垃圾收集器运行时,会停止应用程序(通常称为“stop the world”事件)。使用用能够承受短暂停顿的应用程序。该垃圾收集器占用内存空间比较小,因此这是嵌入式应用程序的首选垃圾收集器类型。在运行时使用以下命令启用该垃圾收集器: - -``` -$ java -XX:+UseSerialGC -``` - -### 2. Parallel 收集器 - -![Parallel garbage collection][2] - -像 Serial 收集器一样,Parallel 收集器也使用”stop the world”方法。这意味着,当垃圾收集器运行时,应用程序线程会停止。但是不同的是,Parallel 收集器运行时有多个线程执行垃圾收集操作。这种类型的垃圾收集器适用于在多线程和多处理器环境中运行中到大型数据集的应用程序。 - -这是 JVM 中的默认垃圾收集器,也被称为*吞吐量收集器*。使用该垃圾收集器时通过使用各种合适的 JVM 参数进行调优,例如吞吐量、暂停时间、线程数和内存占用。命令如下: - -* 线程数:`-XX:ParallelGCThreads=` -* 暂停时间:`-XX:MaxGCPauseMillis=` -* 吞吐量(垃圾收集花费的时间与实际应用程序执行的时间相比):`-XX:GCTimeRatio=` -* 最大堆内存:`-Xmx` -* Parallel 收集器可以使用该命令显式启用:`java -XX:+UseParallelGC` 。使用这个命令,指定在新生代中通过多个线程进行垃圾回收,而老年代中的垃圾收集和内存压缩仍使用单个线程完成的。 - -还有一个版本的的 Parallel 收集器叫做 *Parallel Old GC*,它对新生代和老年代都使用多线程,启用命令如下: - -``` -$ java -XX:+UseParallelOldGC -``` - -### 3. Concurrent Mark Sweep(CMS)收集器 - -![Concurrent garbage collection][3] - -Concurrent Mark Sweep(CMS) 垃圾收集器与应用程序并行运行。对于新生代和老年代都使用了多线程。在CMS垃圾收集器删除无用对象后,不会对存活对象进行内存压缩。该垃圾收集器和应用程序并行运行,会降低应用程序的响应时间,适用于停顿时间较短的应用程序。这个收集器在 Java8 已过时,并在 Java14 中被移除。如果你仍在使用有这个垃圾收集器的 Java 版本,可以使用如下命令启用: - -``` -$ java -XX:+UseConcMarkSweepGC -``` - -在 CMS 垃圾收集器使用过程中,应用程序将暂停两次。首次暂停发生在标记可直接访问的存活对象时,这个暂停被称为*初始标记*。第二次暂停发生在 CMS 收集器结束时期,来修正在并发标记过程中,应用程序线程在 CMS 垃圾回收完成后更新对象时被遗漏的对象。这就是所谓的*重新标记*。 - -### 4. G1 收集器 - -![Garbage first][4] - -G1垃圾收集器旨在替代 GMS。G1 垃圾收集器具备并行、并发以及增量压缩,且暂停时间较短。与 CMS 收集器使用的内存布局不同,G1 收集器将堆内存划分为大小相同的区域,通过多个线程触发全局标记阶段。标记阶段完成后,G1 知道哪个区域可能大部分是空的,并首选该区域作为清除/删除阶段。 - - 在 G1 收集器中,一个对象如果大小超过半个区域容量会被认为是一个“大对象” 。这些对象被放置在老年代中,在一个被称为*humongous region*的区域中。 启用 G1 收集器的命令如下: - -``` -$ java -XX:+UseG1GC -``` - -### 5. Epsilon 收集器 - -该垃圾收集器是在 Java11 中引入的,是一个 *no-op*(无操作)收集器。它不做任何实际的内存回收,只负责管理内存分配。Epsilon 只在当你知道应用程序的确切内存占用情况并且不需要垃圾回收时使用。启用命令如下: - -``` -$ java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -``` - -### 6. Shenandoah 收集器 - -Shenandoah 是在 JDK12 中引入的,是一种CPU密集型垃圾收集器。它会进行内存压缩,立即删除无用对象并释放操作系统的空间。所有的这一切与应用程序线程并行发生。启用命令如下: - -``` -$ java -XX:+UnlockExperimentalVMOptions \ --XX:+UseShenandoahGC -``` - -### 7. ZGC收集器 - -ZGC 为低延迟需要和大量堆空间使用而设计,允许当垃圾回收器运行时 Java 应用程序继续运行。 ZGC 收集器在 JDK11 引入,在 JDK12 改进。在 JDK15,ZGC 和 Shenandoah 都被移出了实验阶段。启用 ZGC 收集器使用如下命令: - -``` -$ java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -``` - -### 灵活的垃圾收集器 - -Java 为我们提供了灵活的内存管理方式,熟悉不同的可用方法有助于为正在开发或运行的应用程序选择最合适的内存管理方式。 - -Image by: [Opensource.com][5] - --------------------------------------------------------------------------------- - - via: https://opensource.com/article/22/7/garbage-collection-java - -作者:[Jayashree Huttanagoudar][a] -选题:[lkxed][b] -译者:[Veryzzj](https://github.com/Veryzzj) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jayashree-huttanagoudar -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-serial.webp -[2]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-parallel.webp -[3]: https://opensource.com/sites/default/files/2022-07/jaya-java-gc-concurrent.webp -[4]: https://opensource.com/sites/default/files/2022-07/g1.png -[5]: https://opensource.com/home-page-new From d422a9537ac47e0b864e3855124811bc46663c83 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 25 Jul 2022 08:10:28 +0800 Subject: [PATCH 0502/3123] A --- ...220720 What happens when you press a key in your terminal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220720 What happens when you press a key in your terminal.md b/sources/tech/20220720 What happens when you press a key in your terminal.md index 8225823e69..1f2b936cc0 100644 --- a/sources/tech/20220720 What happens when you press a key in your terminal.md +++ b/sources/tech/20220720 What happens when you press a key in your terminal.md @@ -2,7 +2,7 @@ [#]: via: "https://jvns.ca/blog/2022/07/20/pseudoterminals/" [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From db45a553d930061fcd627be2301833c816678bd2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 25 Jul 2022 08:27:55 +0800 Subject: [PATCH 0503/3123] translated --- ...How to Uninstall Deb Packages in Ubuntu.md | 132 ------------------ ...How to Uninstall Deb Packages in Ubuntu.md | 130 +++++++++++++++++ 2 files changed, 130 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md create mode 100644 translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md diff --git a/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md b/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md deleted file mode 100644 index 7405ebbfdc..0000000000 --- a/sources/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "How to Uninstall Deb Packages in Ubuntu" -[#]: via: "https://itsfoss.com/uninstall-deb-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Uninstall Deb Packages in Ubuntu -====== -Installing applications from a deb file is quite simple. You double click on it and it opens in the Software Center application and you install it from there. - -[Installing applications from a deb file][1] is quite simple. You double click on it and it opens in the Software Center application and you install it from there. - -But what about uninstalling a .deb package in Ubuntu or Debian? How do you remove the package you installed some time back. - -While there are several ifs and buts around it, the simplest and most reliable way of deleting a deb file is by using the apt remove command. - -``` -sudo apt remove program_name -``` - -As you can see, **you need to know the exact package name here**. This may not always be straightforward. For example, if you install Google Chrome on Ubuntu, the program is known as ‘google-chrome-stable’ in the command line. Did you already know that? I guess not. - -In this tutorial, I’ll go into detail about finding the exact package name and then using it to remove the application. I’ll also discuss using a graphical method for deleting .deb packages. - -### Removing package installed via deb files from Ubuntu - -Before I show you how to remove deb packages from the command line, let’s just quickly look at it in the Software Center application. - -#### Method 1: Check if the application can be removed from the software center - -Ubuntu has the Software Center GUI application that allows to search for applications, install them and remove them. - -The Software Center may not show the application installed when you search for it. - -![Searching for installed applications may not show any results in Ubuntu Software Center][2] - -However, you may still find it under the “Installed” section if you scroll down. The external applications are usually displayed without their logo. - -![Some installed applications can be found in the ‘installed’ tab of the Software Center][3] - -If you find it, you can remove the application by clicking the trash icon or remove button. - -![Removing applications from the Ubuntu software center][4] - -**Bottom line: Check if the application can be removed from the software center.** - -#### Method 2: Delete applications using apt command - -I am presuming that you don’t know the exact name of the application command. It is only natural that you may not know that Google Chrome is installed as google-chrome-stable and Edge is installed as microsoft-edge-stable. - -The tab completion may help if you have the first few letters. Otherwise, you can [list the installed applications with apt command][5] and use grep to search for the application name: - -``` -apt list --installed | grep -i possible_package_name -``` - -For example, you can intelligently guess that the Google Chrome package should have chrome in its name. You may search it like this: - -``` -apt list --installed | grep -i chrome -``` - -You may get more than one result in some cases. - -![check if google chrome installed in ubuntu][6] - -If you are not sure what the packages do, you can always get their details with: - -``` -apt info exact_package_name -``` - -Once you have the exact package name, you can delete it using the apt remove command. - -``` -sudo apt remove exact_package_name -``` - -You can also use apt-get remove or dpkg uninstall commands. - -![Removing applications installed via deb files using the apt command][7] - -#### Method 3: Use Synaptic Package Manager to remove deb applications - -Another method is to use the [Synaptic Package Manager][8]. Before GNOME created its graphical package manager in the form of the Software Center, Synaptic was the default GUI package manager in Ubuntu and many other distributions. - -It is still the recommended tool on the [Xfce desktop environment][9]. - -Install it first: - -``` -sudo apt install synaptic -``` - -Open Synaptic and search for the package name. Look for the installed packages that are marked green. Right-click on them and click on ‘mark for removal’. Hit apply after that. - -![Removing Deb packages using Synaptic package manager][10] - -### Did it help you? - -I am more than comfortable using the apt command to remove the packages installed from .deb files. But I can understand that not everyone is comfortable using the command line. - -I find the Software Center lacking when it comes to the removal of applications installed from external deb files. It could do a better job here. - -I hope you have a better understanding of removing deb packages now. Let me know if you have any questions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/uninstall-deb-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/install-deb-files-ubuntu/ -[2]: https://itsfoss.com/wp-content/uploads/2022/07/search-for-installed-applications-ubuntu-software-center.png -[3]: https://itsfoss.com/wp-content/uploads/2022/07/installed-applications-in-ubuntu-software-center-scaled.webp -[4]: https://itsfoss.com/wp-content/uploads/2022/07/removing-applications-from-ubuntu-software-center-scaled.webp -[5]: https://itsfoss.com/list-installed-packages-ubuntu/ -[6]: https://itsfoss.com/wp-content/uploads/2022/07/check-if-google-chrome-installed-in-Ubuntu.png -[7]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-applications-ubuntu.png -[8]: https://itsfoss.com/synaptic-package-manager/ -[9]: https://www.xfce.org/ -[10]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-using-synaptic-scaled.webp diff --git a/translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md b/translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md new file mode 100644 index 0000000000..13cd2ae86e --- /dev/null +++ b/translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md @@ -0,0 +1,130 @@ +[#]: subject: "How to Uninstall Deb Packages in Ubuntu" +[#]: via: "https://itsfoss.com/uninstall-deb-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 中卸载 Deb 包 +====== +[从 deb 文件安装应用][1]非常简单。双击它,它会在软件中心中打开,然后从那里安装它。 + +但是如何在 Ubuntu 或 Debian 中卸载 .deb 包呢?你如何删除一段时间前安装的软件包。 + +虽然这有几个如果和但是,但删除 deb 文件的最简单和最可靠的方法是使用 apt remove 命令。 + +``` +sudo apt remove program_name +``` + +如你所见,**你需要在这里知道确切的包名称**。这可能并不总是直截了当的。例如,如果你在 Ubuntu 上安装 Google Chrome,则该程序在命令行中称为 “google-chrome-stable”。你已经知道了吗?我猜不是。 + +在本教程中,我将详细介绍如何找到确切的包名称,然后使用它来删除应用。我还将讨论使用图形方法删除 .deb 包。 + +### 从 Ubuntu 中删除通过 deb 文件安装的软件包 + +在我向你展示如何从命令行删除 deb 包之前,让我们在软件中心应用中快速查看它。 + +#### 方法 1:检查应用是否可以从软件中心移除 + +Ubuntu 有软件中心 GUI 应用,允许搜索、安装和删除应用。 + +搜索时,软件中心可能不会显示已安装的应用。 + +![Searching for installed applications may not show any results in Ubuntu Software Center][2] + +但是,如果向下滚动,你仍可能在“已安装”部分下找到它。外部应用通常不带 logo 显示。 + +![Some installed applications can be found in the ‘installed’ tab of the Software Center][3] + +如果找到它,你可以通过单击垃圾桶图标或删除按钮来删除该应用。 + +![Removing applications from the Ubuntu software center][4] + +**一句话:检查是否可以从软件中心删除应用。** + +#### 方法 2:使用 apt 命令删除应用 + +我假设你不知道应用命令的确切名称。你可能不知道 Google Chrome 安装为 google-chrome-stable 而 Edge 安装为 microsoft-edge-stable,这是很自然的。 + +如果你有前几个字母,那么 tab 补全可能会有所帮助。否则,你可以[使用 apt 命令列出已安装的应用][5] 并使用 grep 搜索应用程序名称: + +``` +apt list --installed | grep -i possible_package_name +``` + +例如,你可以智能地猜测 Google Chrome 包的名称中应该包含 chrome。你可以这样搜索: + +``` +apt list --installed | grep -i chrome +``` + +在某些情况下,你可能会得到多个结果。 + +![check if google chrome installed in ubuntu][6] + +如果你不确定这些软件包的作用,你可以随时通过以下方式获取它们的详细信息: + +``` +apt info exact_package_name +``` + +获得确切的软件包名称后,你可以使用 apt remove 命令将其删除。 + +``` +sudo apt remove exact_package_name +``` + +你还可以使用 apt-get remove 或 dpkg uninstall 命令。 + +![Removing applications installed via deb files using the apt command][7] + +#### 方法 3:使用 Synaptic 包管理器删除 deb 应用 + +另一种方法是使用 [Synaptic 包管理器][8]。在 GNOME 以软件中心的形式创建其图形包管理器之前,Synaptic 是 Ubuntu 和许多其他发行版中的默认 GUI 包管理器。 + +它仍然是 [Xfce 桌面环境][9]上的推荐工具。 + +首先安装它: + +``` +sudo apt install synaptic +``` + +打开 Synaptic 并搜索包名称。查找标记为绿色的已安装软件包。右键单击它们,然后单击“标记为删除”。之后点击应用。 + +![Removing Deb packages using Synaptic package manager][10] + +### 对你有帮助吗? + +我非常乐意使用 apt 命令删除从 .deb 文件中安装的软件包。但我可以理解,并不是每个人都喜欢使用命令行。 + +在删除从外部 deb 文件安装的应用时,我发现软件中心中缺失。它可以在这里做得更好。 + +我希望你现在对删除 deb 包有更好的了解。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/uninstall-deb-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/install-deb-files-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/search-for-installed-applications-ubuntu-software-center.png +[3]: https://itsfoss.com/wp-content/uploads/2022/07/installed-applications-in-ubuntu-software-center-scaled.webp +[4]: https://itsfoss.com/wp-content/uploads/2022/07/removing-applications-from-ubuntu-software-center-scaled.webp +[5]: https://itsfoss.com/list-installed-packages-ubuntu/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/check-if-google-chrome-installed-in-Ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-applications-ubuntu.png +[8]: https://itsfoss.com/synaptic-package-manager/ +[9]: https://www.xfce.org/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-using-synaptic-scaled.webp From 216684667f9bffe3e79211c06ad3b4119e9c47c2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 25 Jul 2022 08:30:12 +0800 Subject: [PATCH 0504/3123] translating --- ...11109 relaying mail to multiple smarthosts with opensmtpd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md b/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md index f0d165e51a..6cc0c4d237 100644 --- a/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md +++ b/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md @@ -2,7 +2,7 @@ [#]: via: "https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html" [#]: author: "jao https://jao.io" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 9316efab2ff6e66dad1d223c8e83b09877c3c211 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 25 Jul 2022 11:03:16 +0800 Subject: [PATCH 0505/3123] ALL @wxy https://linux.cn/article-14863-1.html --- ...s when you press a key in your terminal.md | 289 ++++++++++++++++ ...s when you press a key in your terminal.md | 317 ------------------ 2 files changed, 289 insertions(+), 317 deletions(-) create mode 100644 published/20220720 What happens when you press a key in your terminal.md delete mode 100644 sources/tech/20220720 What happens when you press a key in your terminal.md diff --git a/published/20220720 What happens when you press a key in your terminal.md b/published/20220720 What happens when you press a key in your terminal.md new file mode 100644 index 0000000000..777f436d96 --- /dev/null +++ b/published/20220720 What happens when you press a key in your terminal.md @@ -0,0 +1,289 @@ +[#]: subject: "What happens when you press a key in your terminal?" +[#]: via: "https://jvns.ca/blog/2022/07/20/pseudoterminals/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14863-1.html" + +当你在终端上按下一个键时会发生什么? +====== + +![](https://img.linux.net.cn/data/attachment/album/202207/25/110217dlbzqvm9lltkq244.jpg) + +我对终端Terminal是怎么回事困惑了很久。 + +但在上个星期,我使用 [xterm.js][1] 在浏览器中显示了一个交互式终端,我终于想到要问一个相当基本的问题:当你在终端中按下键盘上的一个键(比如 `Delete`,或 `Escape`,或 `a`),发送了哪些字节? + +像往常一样,我们将通过做一些实验来回答这个问题,看看会发生什么 : ) + +### 远程终端是非常古老的技术 + +首先,我想说的是,用 `xterm.js` 在浏览器中显示一个终端可能看起来像一个新事物,但它真的不是。在 70 年代,计算机很昂贵。因此,一个机构的许多员工会共用一台电脑,每个人都可以有自己的 “终端” 来连接该电脑。 + +例如,这里有一张 70 年代或 80 年代的 VT100 终端的照片。这看起来像是一台计算机(它有点大!),但它不是 —— 它只是显示实际计算机发送的任何信息。 + +[![DEC VT100终端][2]][3] + +当然,在 70 年代,他们并没有使用 Websocket 来做这个,但来回发送的信息的方式和当时差不多。 + +(照片中的终端是来自西雅图的 [活电脑博物馆][4] Living Computer Museum,我曾经去过那里,并在一个非常老的 Unix 系统上用 `ed` 编写了 FizzBuzz,所以我有可能真的用过那台机器或它的一个兄弟姐妹!我真的希望活电脑博物馆能再次开放,能玩到老式电脑是非常酷的。) + +### 发送了什么信息? + +很明显,如果你想连接到一个远程计算机(用 `ssh` 或使用 `xterm.js` 和 Websocket,或其他任何方式),那么需要在客户端和服务器之间发送一些信息。 + +具体来说: + + **客户端** 需要发送用户输入的键盘信息(如 `ls -l`)。 + **服务器** 需要告诉客户端在屏幕上显示什么。 + +让我们看看一个真正的程序,它在浏览器中运行一个远程终端,看看有哪些信息会被来回发送! + +### 我们将使用 goterm 来进行实验 + +我在 GitHub 上发现了这个叫做 [goterm][5] 的小程序,它运行一个 Go 服务器,可以让你在浏览器中使用 `xterm.js` 与终端进行交互。这个程序非常不安全,但它很简单,很适合学习。 + +我 [复刻了它][6],使它能与最新的 `xterm.js` 一起工作,因为它最后一次更新是在 6 年前。然后,我添加了一些日志语句,以打印出每次通过 WebSocket 发送/接收的字节数。 + +让我们来看看在几个不同的终端交互过程中的发送和接收情况吧! + +### 示例:ls + +首先,让我们运行 `ls`。下面是我在 `xterm.js` 终端上看到的情况: + +``` +~:/play$ ls +file +~:/play$ +``` + +以下是发送和接收的内容:(在我的代码中,我记录了每次客户端发送的字节:`sent: [bytes]`,每次它从服务器接收的字节:`recv: [bytes]`) + +``` +sent: "l" +recv: "l" +sent: "s" +recv: "s" +sent: "\r" +recv: "\r\n\x1b[?2004l\r" +recv: "file\r\n" +recv: "\x1b[~:/play$ " +``` + +我在这个输出中注意到 3 件事: + +1. 回显:客户端发送 `l`,然后立即收到一个 `l` 发送回来。我想这里的意思是,客户端真的很笨 —— 它不知道当我输入`l` 时,我想让 `l` 被回显到屏幕上。它必须由服务器进程明确地告诉它来显示它。 +2. 换行:当我按下回车键时,它发送了一个 `\r'(回车)符号,而不是 `\n'(换行)。 +3. 转义序列:`\x1b` 是 ASCII 转义字符,所以 `\x1b[?2004h` 是告诉终端显示什么或其他东西。我想这是一个颜色序列,但我不确定。我们稍后会详细讨论转义序列。 + +好了,现在我们来做一些稍微复杂的事情。 + +### 示例:Ctrl+C + +接下来,让我们看看当我们用 `Ctrl+C` 中断一个进程时会发生什么。下面是我在终端中看到的情况: + +``` +~:/play$ cat +^C +~:/play$ +``` + +而这里是客户端发送和接收的内容。 + +``` +sent: "c" +recv: "c" +sent: "a" +recv: "a" +sent: "t" +recv: "t" +sent: "\r" +recv: "\r\n\x1b[?2004l\r" +sent: "\x03" +recv: "^C" +recv: "\r\n" +recv: "\x1b[?2004h" +recv: "~:/play$ " +``` + +当我按下 `Ctrl+C` 时,客户端发送了 `\x03`。如果我查 ASCII 表,`\x03` 是 “文本结束”,这似乎很合理。我认为这真的很酷,因为我一直对 `Ctrl+C` 的工作原理有点困惑 —— 很高兴知道它只是在发送一个 `\x03` 字符。 + +我相信当我们按 `Ctrl+C` 时,`cat` 被中断的原因是服务器端的 Linux 内核收到这个 `\x03` 字符,识别出它意味着 “中断”,然后发送一个 `SIGINT` 到拥有伪终端的进程组。所以它是在内核而不是在用户空间处理的。 + +### 示例:Ctrl+D + +让我们试试完全相同的事情,只是用 `Ctrl+D`。下面是我在终端看到的情况: + +``` +~:/play$ cat +~:/play$ +``` + +而这里是发送和接收的内容: + +``` +sent: "c" +recv: "c" +sent: "a" +recv: "a" +sent: "t" +recv: "t" +sent: "\r" +recv: "\r\n\x1b[?2004l\r" +sent: "\x04" +recv: "\x1b[?2004h" +recv: "~:/play$ " +``` + +它与 `Ctrl+C` 非常相似,只是发送 `\x04` 而不是 `\x03`。很好!`\x04` 对应于 ASCII “传输结束”。 + +### Ctrl + 其它字母呢? + +接下来我开始好奇 —— 如果我发送 `Ctrl+e`,会发送什么字节? + +事实证明,这只是该字母在字母表中的编号,像这样。 + + * `Ctrl+a` => 1 + * `Ctrl+b` => 2 + * `Ctrl+c` => 3 + * `Ctrl+d` => 4 + * ... + * `Ctrl+z` => 26 + +另外,`Ctrl+Shift+b` 的作用与 `Ctrl+b` 完全相同(它写的是`0x2`)。 + +键盘上的其他键呢?下面是它们的映射情况: + + * `Tab` -> 0x9(与 `Ctrl+I` 相同,因为 I 是第 9 个字母) + * `Escape` -> `\x1b` + * `Backspace` -> `\x7f` + * `Home` -> `\x1b[H` + * `End` -> `\x1b[F` + * `Print Screen` -> `\x1b\x5b\x31\x3b\x35\x41` + * `Insert` -> `\x1b\x5b\x32\x7e` + * `Delete` -> `\x1b\x5b\x33\x7e` + * 我的 `Meta` 键完全没有作用 + +那 `Alt` 呢?根据我的实验(和一些搜索),似乎 `Alt` 和 `Escape` 在字面上是一样的,只是按 `Alt` 本身不会向终端发送任何字符,而按 `Escape` 本身会。所以: + + * `alt + d` => `\x1bd`(其他每个字母都一样) + * `alt + shift + d` => `\x1bD`(其他每个字母都一样) + * 诸如此类 + +让我们再看一个例子! + +### 示例:nano + +下面是我运行文本编辑器 `nano` 时发送和接收的内容: + +``` +recv: "\r\x1b[~:/play$ " +sent: "n" [[]byte{0x6e}] +recv: "n" +sent: "a" [[]byte{0x61}] +recv: "a" +sent: "n" [[]byte{0x6e}] +recv: "n" +sent: "o" [[]byte{0x6f}] +recv: "o" +sent: "\r" [[]byte{0xd}] +recv: "\r\n\x1b[?2004l\r" +recv: "\x1b[?2004h" +recv: "\x1b[?1049h\x1b[22;0;0t\x1b[1;16r\x1b(B\x1b[m\x1b[4l\x1b[?7h\x1b[39;49m\x1b[?1h\x1b=\x1b[?1h\x1b=\x1b[?25l" +recv: "\x1b[39;49m\x1b(B\x1b[m\x1b[H\x1b[2J" +recv: "\x1b(B\x1b[0;7m GNU nano 6.2 \x1b[44bNew Buffer \x1b[53b \x1b[1;123H\x1b(B\x1b[m\x1b[14;38H\x1b(B\x1b[0;7m[ Welcome to nano. For basic help, type Ctrl+G. ]\x1b(B\x1b[m\r\x1b[15d\x1b(B\x1b[0;7m^G\x1b(B\x1b[m Help\x1b[15;16H\x1b(B\x1b[0;7m^O\x1b(B\x1b[m Write Out \x1b(B\x1b[0;7m^W\x1b(B\x1b[m Where Is \x1b(B\x1b[0;7m^K\x1b(B\x1b[m Cut\x1b[15;61H" +``` + +你可以看到一些来自用户界面的文字,如 “GNU nano 6.2”,而这些 `\x1b[27m` 的东西是转义序列。让我们来谈谈转义序列吧! + +### ANSI 转义序列 + +上面这些 `nano` 发给客户端的 `\x1b[` 东西被称为“转义序列”或 “转义代码”。这是因为它们都是以 “转义”字符 `\x1b` 开头。它们可以改变光标的位置,使文本变成粗体或下划线,改变颜色,等等。[维基百科介绍了一些历史][7],如果你有兴趣的话可以去看看。 + +举个简单的例子:如果你在终端运行 + +``` +echo -e '\e[0;31mhi\e[0m there' +``` + +它将打印出 “hi there”,其中 “hi” 是红色的,“there” 是黑色的。[本页][8] 有一些关于颜色和格式化的转义代码的例子。 + +我认为有几个不同的转义代码标准,但我的理解是,人们在 Unix 上使用的最常见的转义代码集来自 VT100(博客文章顶部图片中的那个老终端),在过去的 40 年里没有真正改变。 + +转义代码是为什么你的终端会被搞乱的原因,如果你 `cat` 一些二进制数据到你的屏幕上 —— 通常你会不小心打印出一堆随机的转义代码,这将搞乱你的终端 —— 如果你 `cat` 足够多的二进制数据到你的终端,那里一定会有一个 `0x1b` 的字节。 + +### 可以手动输入转义序列吗? + +在前面几节中,我们谈到了 `Home` 键是如何映射到 `\x1b[H` 的。这 3 个字节是 `Escape + [ + H`(因为 `Escape` 是`\x1b`)。 + +如果我在 `xterm.js` 终端手动键入 `Escape` ,然后是 `[`,然后是 `H`,我就会出现在行的开头,与我按下 `Home` 完全一样。 + +我注意到这在我的电脑上的 Fish shell 中不起作用 —— 如果我键入 `Escape`,然后输入 `[`,它只是打印出 `[`,而不是让我继续转义序列。我问了我的朋友 Jesse,他写过 [一堆 Rust 终端代码][9],Jesse 告诉我,很多程序为转义代码实现了一个 **超时** —— 如果你在某个最小的时间内没有按下另一个键,它就会决定它实际上不再是一个转义代码了。 + +显然,这在 Fish shell 中可以用 `fish_escape_delay_ms` 来配置,所以我运行了 `set fish_escape_delay_ms 1000`,然后我就能用手输入转义代码了。工作的很好! + +### 终端编码有点奇怪 + +我想在这里暂停一下,我觉得你按下的键被映射到字节的方式是非常奇怪的。比如,如果我们今天从头开始设计按键的编码方式,我们可能不会把它设置成这样: + + * `Ctrl + a` 和 `Ctrl + Shift + a` 做的事情完全一样。 + * `Alt` 与 `Escape` 是一样的 + * 控制序列(如颜色/移动光标)使用与 `Escape` 键相同的字节,因此你需要依靠时间来确定它是一个控制序列还是用户只是想按 `Escape`。 + +但所有这些都是在 70 年代或 80 年代或什么时候设计的,然后需要永远保持不变,以便向后兼容,所以这就是我们得到的东西 :) + +### 改变窗口大小 + +在终端中,并不是所有你能做的事情都是通过来回发送字节发生的。例如,当终端被调整大小时,我们必须以不同的方式告诉 Linux 窗口大小已经改变。 + +下面是 [goterm][10] 中用来做这件事的 Go 代码的样子: + +``` +syscall.Syscall( + syscall.SYS_IOCTL, + tty.Fd(), + syscall.TIOCSWINSZ, + uintptr(unsafe.Pointer(&resizeMessage)), +) +``` + +这是在使用 `ioctl` 系统调用。我对 `ioctl` 的理解是,它是一个系统调用,用于处理其他系统调用没有涉及到的一些随机的东西,通常与 IO 有关,我猜。 + +`syscall.TIOCSWINSZ` 是一个整数常数,它告诉 `ioctl` 我们希望它在本例中做哪件事(改变终端的窗口大小)。 + +### 这也是 xterm 的工作方式。 + +在这篇文章中,我们一直在讨论远程终端,即客户端和服务器在不同的计算机上。但实际上,如果你使用像 xterm 这样的终端模拟器,所有这些工作方式都是完全一样的,只是很难注意到,因为这些字节并不是通过网络连接发送的。 + +### 文章到此结束啦 + +关于终端,肯定还有很多东西要了解(我们可以讨论更多关于颜色,或者原始与熟化模式,或者 Unicode 支持,或者 Linux 伪终端界面),但我将在这里停止,因为现在是晚上 10 点,这篇文章有点长,而且我认为我的大脑今天无法处理更多关于终端的新信息。 + +感谢 [Jesse Luehrs][11] 回答了我关于终端的十亿个问题,所有的错误都是我的 :) + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/07/20/pseudoterminals/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://xtermjs.org/ +[2]: https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/DEC_VT100_terminal.jpg/512px-DEC_VT100_terminal.jpg +[3]: https://commons.wikimedia.org/wiki/File:DEC_VT100_terminal.jpg (Jason Scott, CC BY 2.0 , via Wikimedia Commons) +[4]: https://livingcomputers.org/ +[5]: https://github.com/freman/goterm +[6]: https://github.com/jvns/goterm +[7]: https://en.wikipedia.org/wiki/ANSI_escape_code +[8]: https://misc.flogisoft.com/bash/tip_colors_and_formatting +[9]: https://github.com/doy/vt100-rust +[10]: https://github.com/freman/goterm/blob/a644c10e180ce8af789ea3e4e4892dcf078e97e2/main.go#L110-L115 +[11]: https://github.com/doy/ diff --git a/sources/tech/20220720 What happens when you press a key in your terminal.md b/sources/tech/20220720 What happens when you press a key in your terminal.md deleted file mode 100644 index 1f2b936cc0..0000000000 --- a/sources/tech/20220720 What happens when you press a key in your terminal.md +++ /dev/null @@ -1,317 +0,0 @@ -[#]: subject: "What happens when you press a key in your terminal?" -[#]: via: "https://jvns.ca/blog/2022/07/20/pseudoterminals/" -[#]: author: "Julia Evans https://jvns.ca/" -[#]: collector: "lujun9972" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What happens when you press a key in your terminal? -====== - -I’ve been confused about what’s going on with terminals for a long time. - -But this past week I was using [xterm.js][1] to display an interactive terminal in a browser and I finally thought to ask a pretty basic question: when you press a key on your keyboard in a terminal (like `Delete`, or `Escape`, or `a`), which bytes get sent? - -As usual we’ll answer that question by doing some experiments and seeing what happens :) - -### remote terminals are very old technology - -First, I want to say that displaying a terminal in the browser with `xterm.js` might seem like a New Thing, but it’s really not. In the 70s, computers were expensive. So many employees at an institution would share a single computer, and each person could have their own “terminal” to that computer. - -For example, here’s a photo of a VT100 terminal from the 70s or 80s. This looks like it could be a computer (it’s kind of big!), but it’s not – it just displays whatever information the actual computer sends it. - -[![DEC VT100 terminal][2]][3] - -Of course, in the 70s they didn’t use websockets for this, but the information being sent back and forth is more or less the same as it was then. - -(the terminal in that photo is from the [Living Computer Museum][4] in Seattle which I got to visit once and write FizzBuzz in `ed` on a very old Unix system, so it’s possible that I’ve actually used that machine or one of its siblings! I really hope the Living Computer Museum opens again, it’s very cool to get to play with old computers.) - -### what information gets sent? - -It’s obvious that if you want to connect to a remote computer (with `ssh` or using `xterm.js` and a websocket, or anything else), then some information needs to be sent between the client and the server. - -Specifically: - - * the **client** needs to send the keystrokes that the user typed in (like `ls -l`) - * the **server** needs to tell the client what to display on the screen - - - -Let’s look at a real program that’s running a remote terminal in a browser and see what information gets sent back and forth! - -### we’ll use `goterm` to experiment - -I found this tiny program on GitHub called [goterm][5] that runs a Go server that lets you interact with a terminal in the browser using `xterm.js`. This program is very insecure but it’s simple and great for learning. - -I [forked it][6] to make it work with the latest xterm.js, since it was last updated 6 years ago. Then I added some logging statements to print out every time bytes are sent/received over the websocket. - -Let’s look at sent and received during a few different terminal interactions! - -### example: `ls` - -First, let’s run `ls`. Here’s what I see on the `xterm.js` terminal: - -``` - - [email protected]:/play$ ls - file - [email protected]:/play$ - -``` - -and here’s what gets sent and received: (in my code, I log `sent: [bytes]` every time the client sends bytes and `recv: [bytes]` every time it receives bytes from the server) - -``` - - sent: "l" - recv: "l" - sent: "s" - recv: "s" - sent: "\r" - recv: "\r\n\x1b[?2004l\r" - recv: "file\r\n" - recv: "\x1b[[email protected]:/play$ " - -``` - -I noticed 3 things in this output: - - 1. Echoing: The client sends `l` and then immediately receives an `l` sent back. I guess the idea here is that the client is really dumb – it doesn’t know that when I type an `l`, I want an `l` to be echoed back to the screen. It has to be told explicitly by the server process to display it. - 2. The newline: when I press enter, it sends a `\r` (carriage return) symbol and not a `\n` (newline) - 3. Escape sequences: `\x1b` is the ASCII escape character, so `\x1b[?2004h` is telling the terminal to display something or other. I think this is a colour sequence but I’m not sure. We’ll talk a little more about escape sequences later. - - - -Okay, now let’s do something slightly more complicated. - -### example: `Ctrl+C` - -Next, let’s see what happens when we interrupt a process with `Ctrl+C`. Here’s what I see in my terminal: - -``` - - [email protected]:/play$ cat - ^C - [email protected]:/play$ - -``` - -And here’s what the client sends and receives. - -``` - - sent: "c" - recv: "c" - sent: "a" - recv: "a" - sent: "t" - recv: "t" - sent: "\r" - recv: "\r\n\x1b[?2004l\r" - sent: "\x03" - recv: "^C" - recv: "\r\n" - recv: "\x1b[?2004h" - recv: "[email protected]:/play$ " - -``` - -When I press `Ctrl+C`, the client sends `\x03`. If I look up an ASCII table, `\x03` is “End of Text”, which seems reasonable. I thought this was really cool because I’ve always been a bit confused about how Ctrl+C works – it’s good to know that it’s just sending an `\x03` character. - -I believe the reason `cat` gets interrupted when we press `Ctrl+C` is that the Linux kernel on the server side receives this `\x03` character, recognizes that it means “interrupt”, and then sends a `SIGINT` to the process that owns the pseudoterminal’s process group. So it’s handled in the kernel and not in userspace. - -### example: `Ctrl+D` - -Let’s try the exact same thing, except with `Ctrl+D`. Here’s what I see in my terminal: - -``` - - [email protected]:/play$ cat - [email protected]:/play$ - -``` - -And here’s what gets sent and received: - -``` - - sent: "c" - recv: "c" - sent: "a" - recv: "a" - sent: "t" - recv: "t" - sent: "\r" - recv: "\r\n\x1b[?2004l\r" - sent: "\x04" - recv: "\x1b[?2004h" - recv: "[email protected]:/play$ " - -``` - -It’s very similar to `Ctrl+C`, except that `\x04` gets sent instead of `\x03`. Cool! `\x04` corresponds to ASCII “End of Transmission”. - -### what about Ctrl + another letter? - -Next I got curious about – if I send `Ctrl+e`, what byte gets sent? - -It turns out that it’s literally just the number of that letter in the alphabet, like this: - - * `Ctrl+a` => 1 - * `Ctrl+b` => 2 - * `Ctrl+c` => 3 - * `Ctrl+d` => 4 - * … - * `Ctrl+z` => 26 - - - -Also, `Ctrl+Shift+b` does the exact same thing as `Ctrl+b` (it writes `0x2`). - -What about other keys on the keyboard? Here’s what they map to: - - * Tab -> 0x9 (same as Ctrl+I, since I is the 9th letter) - * Escape -> `\x1b` - * Backspace -> `\x7f` - * Home -> `\x1b[H` - * End: `\x1b[F` - * Print Screen: `\x1b\x5b\x31\x3b\x35\x41` - * Insert: `\x1b\x5b\x32\x7e` - * Delete -> `\x1b\x5b\x33\x7e` - * My `Meta` key does nothing at all - - - -What about Alt? From my experimenting (and some Googling), it seems like `Alt` is literally the same as “Escape”, except that pressing `Alt` by itself doesn’t send any characters to the terminal and pressing `Escape` by itself does. So: - - * alt + d => `\x1bd` (and the same for every other letter) - * alt + shift + d => `\x1bD` (and the same for every other letter) - * etcetera - - - -Let’s look at one more example! - -### example: `nano` - -Here’s what gets sent and received when I run the text editor `nano`: - -``` - - recv: "\r\x1b[[email protected]:/play$ " - sent: "n" [[]byte{0x6e}] - recv: "n" - sent: "a" [[]byte{0x61}] - recv: "a" - sent: "n" [[]byte{0x6e}] - recv: "n" - sent: "o" [[]byte{0x6f}] - recv: "o" - sent: "\r" [[]byte{0xd}] - recv: "\r\n\x1b[?2004l\r" - recv: "\x1b[?2004h" - recv: "\x1b[?1049h\x1b[22;0;0t\x1b[1;16r\x1b(B\x1b[m\x1b[4l\x1b[?7h\x1b[39;49m\x1b[?1h\x1b=\x1b[?1h\x1b=\x1b[?25l" - recv: "\x1b[39;49m\x1b(B\x1b[m\x1b[H\x1b[2J" - recv: "\x1b(B\x1b[0;7m GNU nano 6.2 \x1b[44bNew Buffer \x1b[53b \x1b[1;123H\x1b(B\x1b[m\x1b[14;38H\x1b(B\x1b[0;7m[ Welcome to nano. For basic help, type Ctrl+G. ]\x1b(B\x1b[m\r\x1b[15d\x1b(B\x1b[0;7m^G\x1b(B\x1b[m Help\x1b[15;16H\x1b(B\x1b[0;7m^O\x1b(B\x1b[m Write Out \x1b(B\x1b[0;7m^W\x1b(B\x1b[m Where Is \x1b(B\x1b[0;7m^K\x1b(B\x1b[m Cut\x1b[15;61H" - -``` - -You can see some text from the UI in there like “GNU nano 6.2”, and these `\x1b[27m` things are escape sequences. Let’s talk about escape sequences a bit! - -### ANSI escape sequences - -These `\x1b[` things above that `nano` is sending the client are called “escape sequences” or “escape codes”. This is because they all start with `\x1b`, the “escape” character. . They change the cursor’s position, make text bold or underlined, change colours, etc. [Wikipedia has some history][7] if you’re interested. - -As a simple example: if you run - -``` - - echo -e '\e[0;31mhi\e[0m there' - -``` - -in your terminal, it’ll print out “hi there” where “hi” is in red and “there” is in black. [This page][8] has some nice examples of escape codes for colors and formatting. - -I think there are a few different standards for escape codes, but my understanding is that the most common set of escape codes that people use on Unix come from the VT100 (that old terminal in the picture at the top of the blog post), and hasn’t really changed much in the last 40 years. - -Escape codes are why your terminal can get messed up if you `cat` a bunch of binary to your screen – usually you’ll end up accidentally printing a bunch of random escape codes which will mess up your terminal – there’s bound to be a `0x1b` byte in there somewhere if you `cat` enough binary to your terminal. - -### can you type in escape sequences manually? - -A few sections back, we talked about how the `Home` key maps to `\x1b[H`. Those 3 bytes are `Escape + [ + H` (because Escape is `\x1b`). - -And if I manually type Escape, then [, then H in the `xterm.js` terminal, I end up at the beginning of the line, exactly the same as if I’d pressed `Home`. - -I noticed that this didn’t work in `fish` on my computer though – if I typed `Escape` and then `[`, it just printed out `[` instead of letting me continue the escape sequence. I asked my friend Jesse who has written [a bunch of Rust terminal code][9] about this and Jesse told me that a lot of programs implement a **timeout** for escape codes – if you don’t press another key after some minimum amount of time, it’ll decide that it’s actually not an escape code anymore. - -Apparently this is configurable in fish with `fish_escape_delay_ms`, so I ran `set fish_escape_delay_ms 1000` and then I was able to type in escape codes by hand. Cool! - -### terminal encoding is kind of weird - -I want to pause here for a minute here and say that the way the keys you get pressed get mapped to bytes is pretty weird. Like, if we were designing the way keys are encoded from scratch today, we would probably not set it up so that: - - * `Ctrl + a` does the exact same thing as `Ctrl + Shift + a` - * `Alt` is the same as `Escape` - * control sequences (like colours / moving the cursor around) use the same byte as the `Escape` key, so that you need to rely on timing to determine if it was a control sequence of the user just meant to press `Escape` - - - -But all of this was designed in the 70s or 80s or something and then needed to stay the same forever for backwards compatibility, so that’s what we get :) - -### changing window size - -Not everything you can do in a terminal happens via sending bytes back and forth. For example, when the terminal gets resized, we have to tell Linux that the window size has changed in a different way. - -Here’s what the Go code in [goterm][10] to do that looks like: - -``` - - syscall.Syscall( - syscall.SYS_IOCTL, - tty.Fd(), - syscall.TIOCSWINSZ, - uintptr(unsafe.Pointer(&resizeMessage)), - ) - -``` - -This is using the `ioctl` system call. My understanding of `ioctl` is that it’s a system call for a bunch of random stuff that isn’t covered by other system calls, generally related to IO I guess. - -`syscall.TIOCSWINSZ` is an integer constant which which tells `ioctl` which particular thing we want it to to in this case (change the window size of a terminal). - -### this is also how xterm works - -In this post we’ve been talking about remote terminals, where the client and the server are on different computers. But actually if you use a terminal emulator like `xterm`, all of this works the exact same way, it’s just harder to notice because the bytes aren’t being sent over a network connection. - -### that’s all for now! - -There’s defimitely a lot more to know about terminals (we could talk more about colours, or raw vs cooked mode, or unicode support, or the Linux pseudoterminal interface) but I’ll stop here because it’s 10pm, this is getting kind of long, and I think my brain cannot handle more new information about terminals today. - -Thanks to [Jesse Luehrs][11] for answering a billion of my questions about terminals, all the mistakes are mine :) - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2022/07/20/pseudoterminals/ - -作者:[Julia Evans][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://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://xtermjs.org/ -[2]: https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/DEC_VT100_terminal.jpg/512px-DEC_VT100_terminal.jpg -[3]: https://commons.wikimedia.org/wiki/File:DEC_VT100_terminal.jpg (Jason Scott, CC BY 2.0 , via Wikimedia Commons) -[4]: https://livingcomputers.org/ -[5]: https://github.com/freman/goterm -[6]: https://github.com/jvns/goterm -[7]: https://en.wikipedia.org/wiki/ANSI_escape_code -[8]: https://misc.flogisoft.com/bash/tip_colors_and_formatting -[9]: https://github.com/doy/vt100-rust -[10]: https://github.com/freman/goterm/blob/a644c10e180ce8af789ea3e4e4892dcf078e97e2/main.go#L110-L115 -[11]: https://github.com/doy/ From 431e6a5fad469678f1ed54461f8b0d428184cb5f Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Mon, 25 Jul 2022 16:38:54 +0800 Subject: [PATCH 0506/3123] translating --- .../20210823 Write a chess game using bit-fields and masks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210823 Write a chess game using bit-fields and masks.md b/sources/tech/20210823 Write a chess game using bit-fields and masks.md index 0b0ee7c631..6804f4d6bf 100644 --- a/sources/tech/20210823 Write a chess game using bit-fields and masks.md +++ b/sources/tech/20210823 Write a chess game using bit-fields and masks.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/8/binary-bit-fields-masks" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "FYJNEVERFOLLOWS" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -156,7 +156,7 @@ via: https://opensource.com/article/21/8/binary-bit-fields-masks 作者:[Jim Hall][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cf38126e960b31910edac8ee5aa7d8f7f0524ef7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 25 Jul 2022 23:47:42 +0800 Subject: [PATCH 0507/3123] RP @duoluoxiaosheng https://linux.cn/article-14865-1.html --- ...Listen to music on Linux with Rhythmbox.md | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) rename {translated/tech => published}/20220716 Listen to music on Linux with Rhythmbox.md (66%) diff --git a/translated/tech/20220716 Listen to music on Linux with Rhythmbox.md b/published/20220716 Listen to music on Linux with Rhythmbox.md similarity index 66% rename from translated/tech/20220716 Listen to music on Linux with Rhythmbox.md rename to published/20220716 Listen to music on Linux with Rhythmbox.md index 145e63d2a2..f2b1d6807d 100644 --- a/translated/tech/20220716 Listen to music on Linux with Rhythmbox.md +++ b/published/20220716 Listen to music on Linux with Rhythmbox.md @@ -3,25 +3,24 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "duoluoxiaosheng" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14865-1.html" 在 Linux 上使用 Rhythbox 听音乐 ====== -下面我将介绍我是如何在 Linux 的 GNOME 桌面上使用 Rhythmbox 听在线音乐和 MP3 列表的。 -![Woman programming][1] +![](https://img.linux.net.cn/data/attachment/album/202207/25/234644f4rgrx1vrpgfk86n.jpg) -Image by: WOCinTech Chat. Modified by Opensource.com. CC BY-SA 4.0 +> 下面我将介绍我是如何在 Linux 的 GNOME 桌面上使用 Rhythmbox 听在线音乐和 MP3 列表的。 对我来说,在完全安静的环境下工作是很困难的。我需要某种背景音,最好是一些熟悉的音乐。我在音乐上的需求很简单:我只需要一个音乐播放器,可以播放我的 MP3 音乐库和少数几个我喜欢的网站的在线音乐。 -我在 Linux 上尝试了多个音乐播放器,最终我还是选择了 Rhythmbox。 Rhythmbox 是一个 GNOME 桌面音乐播放器。如果你的 Linux 发行版使用的是 GNOME 桌面,很可能它已经安装了 Rhythmbox。它很简单,用来播放我本地的音乐库和广播网站的在线音乐。我很乐意在 Linux 上使用 Rhythmbox 收听在线音乐和我自己的音乐库。 +我在 Linux 上尝试了多个音乐播放器,最终我还是选择了 Rhythmbox。 Rhythmbox 是一个 GNOME 桌面音乐播放器。如果你的 Linux 发行版使用的是 GNOME 桌面,很可能已经安装了 Rhythmbox。它很简单,用来播放我本地的音乐库和广播网站的在线音乐。我很乐意在 Linux 上使用 Rhythmbox 收听在线音乐和我自己的音乐库。 ### 在 Linux 上收听在线音乐 -Rhythmbox 支持多个在线音乐服务商。如果你拥有一个 Last.fm 或者 Libre.fm 的帐号,你可以点击左侧的标签登录。或者,你想收听在线广播,点击左侧的广播标签,在预设的广播网站中选择一个。在我写代码的时候我通常喜欢听迷幻舞曲,HBR1 Tranceponder 是我最喜欢的一个在线广播网站。 +Rhythmbox 支持多个在线音乐服务商。如果你拥有一个 Last.fm 或者 Libre.fm 的帐号,你可以点击左侧的标签登录。或者,你想收听在线广播,点击左侧的“广播Radio”标签,在预设的广播网站中选择一个。在我写代码的时候我通常喜欢听迷幻舞曲,HBR1 Tranceponder 是我最喜欢的一个在线广播网站。 ![Streaming HBR1 Traceponder][2] @@ -29,21 +28,21 @@ Rhythmbox 支持多个在线音乐服务商。如果你拥有一个 Last.fm 或 在过去的几年中,我收集了大量的 MP3 音乐。由于几年前 MP3 的专利在美国已经到期,它在 Linux 是一种很好用的开放的音乐格式。 -我把我 20GB 的 MP3 音乐保存在我的主目录之外,在 `/usr/local/music` 。要把音乐导入 Rhythmbox,点击 **导入** 按钮,选择 `usr/local/music` 目录,或者任何你保存音乐的目录,让 Rhythmbox 去识别 MP3 音乐。结束以后点击 **导入列出的曲目** 按钮导入就完成了。 +我把我 20GB 的 MP3 音乐保存在我的主目录之外,在 `/usr/local/music` 。要把音乐导入 Rhythmbox,点击 “导入Import” 按钮,选择 `usr/local/music` 目录,或者任何你保存音乐的目录,让 Rhythmbox 去识别 MP3 音乐。结束以后点击 “导入列出的曲目Import listed tracks” 按钮导入就完成了。 ![Use the Import button to add music to Rhythmbox][3] ![Rhythmbox identifies new music files][4] -Rhythmbox 播放我的音乐,并通过类型,艺术家和专辑组织歌曲,所以我可以很容易找到我想听的音乐。 +Rhythmbox 可以播放我的音乐,并通过类型,艺术家和专辑组织歌曲,所以我可以很容易找到我想听的音乐。 ![Listening to a music library in Rhythmbox][5] -### 旋律永存 +### 旋律永存 我愿意在 Linux 上使用 Rhythmbox 作为我的音乐播放器,它是如此简洁,不会影响到我。而且听音乐可以帮我和谐掉日常的噪音,让我每一天都可以过的快一点。 -Image by: Streaming HBR1 Tranceponder in Rhythmbox (image: Jim Hall, license: CC BY SA) +*(文内图片来自 Jim Hall,CC BY SA)* -------------------------------------------------------------------------------- @@ -52,7 +51,7 @@ via: https://opensource.com/article/22/7/listen-music-rhythmbox-linux 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0baf6c011fdd66b799f95d90b10a5c515a7be143 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 07:22:11 +0800 Subject: [PATCH 0508/3123] R --- published/20220716 Listen to music on Linux with Rhythmbox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220716 Listen to music on Linux with Rhythmbox.md b/published/20220716 Listen to music on Linux with Rhythmbox.md index f2b1d6807d..2fa8c8a204 100644 --- a/published/20220716 Listen to music on Linux with Rhythmbox.md +++ b/published/20220716 Listen to music on Linux with Rhythmbox.md @@ -7,7 +7,7 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-14865-1.html" -在 Linux 上使用 Rhythbox 听音乐 +在 Linux 上使用 Rhythmbox 听音乐 ====== ![](https://img.linux.net.cn/data/attachment/album/202207/25/234644f4rgrx1vrpgfk86n.jpg) From 16ca8f9fafc6b6bf9b7106334e587b01fb43a071 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 26 Jul 2022 08:26:06 +0800 Subject: [PATCH 0509/3123] translated --- ...y- An Open-Source Alternative to Notion.md | 164 ------------------ ...y- An Open-Source Alternative to Notion.md | 164 ++++++++++++++++++ 2 files changed, 164 insertions(+), 164 deletions(-) delete mode 100644 sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md create mode 100644 translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md diff --git a/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md deleted file mode 100644 index f642a15f21..0000000000 --- a/sources/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md +++ /dev/null @@ -1,164 +0,0 @@ -[#]: subject: "AppFlowy: An Open-Source Alternative to Notion" -[#]: via: "https://itsfoss.com/appflowy/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -AppFlowy: An Open-Source Alternative to Notion -====== -Brief: AppFlowy aims to be an open-source replacement to Notion, providing you with better privacy. Let us explore more about it. - -While Notion (project management/note-taking tool) is exceptionally good in what it does, it is not an open-source solution. Moreover, it is not available for Linux as a desktop client. - -So, what about an alternative that is more transparent, private, and available for Linux? - -That’s where AppFlowy shines! - -Build with Rust and Flutter, AppFlowy follows a minimal approach to simplify things yet with enough room for tweaks. - -### AppFlowy is a Perfect Blend of Privacy and User Experience - -![appflowy][1] - -AppFlowy is fairly new. We [reported][2] its development status last year after its initial launch. - -It is an open-source project that aims to overcome some limitations of [Notion][3] in terms of security and privacy. It helps you manage tasks, add to-do lists, add due dates, track the events, add pages, and format text for your notes/tasks. - -But there’s more to it than security; the user experience also matters. And, AppFlowy does a decent job at it, if not better than Notion. - -Note that the project is still in its **beta phase**. - -Currently, the project’s aim is not for better design and functionality but for data privacy, native experience, and community-driven opportunities. - -#### Notion vs. AppFlowy: What Are Your Priorities? - -While it is meant to replace Notion as an open-source solution, it may not be for everyone. - -So, if you are going to choose AppFlowy over Notion, you will get the following benefits: - -##### Transparency - -AppFlowy is an open-source project, so you are always welcome to view and modify the code. - -##### Privacy - -Notion can directly access your private data in the cloud as closed-source software. Compared to this, you can host AppFlowy as per your preference. - -All your personal data will remain with you, and you’re in total control of it. The developers also mention that they are working on offline mode to bring better support for local installations. - -##### Performance and Native Experience - -AppFlowy is built using Rust and Flutter, which provides a modern user experience while keeping performance in mind. - -Not just limited to that, you also get a good native experience on Linux, which you do not get with Notion. - -### Features of AppFlowy - -![appflowy screenshot 1][4] - -AppFlowy may not be superior in terms of functionality, but it does offer several essential features. - -You can expect more feature additions as the development continues. Some existing highlights include: - -* Native cross-platform support. -* Ability to self-host it or install it on your computer. -* Customizability. -* Data privacy (top priority). -* A single code base for better maintenance. -* Community-driven extensibility. -* Minimalist UI. -* Add to-do list, and manage tasks. -* Highlight texts and essential formatting. -* Keyboard shortcuts for editing cell/grid. -* Dark mode support. - -#### Installing AppFlowy on Linux - -As this is still in the beta phase, it is unavailable in default repositories and doesn’t have any maintained PPAs, nor do you get any Flatpak/Snap packages. - -However, you can easily install AppFlowy through the given commands (Only tested on Ubuntu 20.04 LTS and Arch X86_64): - -``` -wget https://github.com/AppFlowy-IO/AppFlowy/releases/download/0.0.4/AppFlowy-linux-x86.tar.gz -tar -xzvf AppFlowy-linux-x86.tar.gz -cd AppFlowy -``` - -To run AppFlowy, use the given command: - -``` -./app_flowy -``` - -To register AppFlowy in your system menu, you have to perform additional steps as given below: - -First, you have to change the default name of the AppFLowy logo: - -``` -mv flowy_logo.svg app_flowy.svg -``` - -Now, you’ve to copy the temporary Linux desktop file to a usable Linux desktop file. - -``` -cp appflowy.desktop.temp app_flowy.desktop -``` - -It’s time to introduce some changes to the config file. - -``` -sudo nano appflowy.desktop -``` - -Here, you have to replace [CHANGE_THIS] with the path where the icon and executable file has been stored. - -![add location of icon and exec file][5] - -Save changes with CTRL + O and exit with CTRL + X. - -Finally, move the desktop file so your system can pick it up. - -``` -mv app_flowy.desktop ~/.local/share/applications/. -``` - -And here’s what it should look like: - -![appflowy in system menu][6] - -In either case, you can check AppFlowy’s [official documentation][7] to build it from the source. Explore more about it on its official website. - -[AppFlowy][8] - -### Wrapping Up - -If you need a simple Notion-like application with a native Linux experience, AppFlowy is an interesting choice. - -You should expect bugs/issues considering it is under active development and far from being a complete replacement to Notion. - -As an open-source alternative to Notion? It works! You can use it to manage tasks, add notes, and make a to-do list. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/appflowy/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy.png -[2]: https://news.itsfoss.com/appflowy-development/ -[3]: https://www.notion.so/ -[4]: https://itsfoss.com/wp-content/uploads/2022/07/appflowy-screenshot-1.png -[5]: https://itsfoss.com/wp-content/uploads/2022/07/Add-location-of-icon-and-exec-file-800x524.png -[6]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy-in-System-menu-1.png -[7]: https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/environment-setup/building-on-linux -[8]: https://www.appflowy.io/ diff --git a/translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md new file mode 100644 index 0000000000..8ca1a8041e --- /dev/null +++ b/translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md @@ -0,0 +1,164 @@ +[#]: subject: "AppFlowy: An Open-Source Alternative to Notion" +[#]: via: "https://itsfoss.com/appflowy/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +AppFlowy:Notion 的开源替代品 +====== +简介:AppFlowy 旨在成为 Notion 的开源替代品,为你提供更好的隐私。让我们更多地探索它。 + +虽然 Notion(项目管理/笔记工具)的功能非常出色,但它并不是一个开源解决方案。此外,它没有 Linux 桌面客户端。 + +那么,对于 Linux 来说,更透明、更私密和可用的替代方案是什么? + +这就是 AppFlowy 大放异彩的地方! + +AppFlowy 使用 Rust 和 Flutter 构建,遵循一种最小的方式来简化事情,但有足够的空间进行调整。 + +### AppFlowy 是隐私和用户体验的完美结合 + +![appflowy][1] + +AppFlowy 是相当新的。我们在去年首次推出后[报告][2]了它的发展状况。 + +这是一个开源项目,旨在克服 [Notion][3] 在安全和隐私方面的一些限制。它可以帮助你管理任务、添加待办事项列表、添加截止日期、跟踪事件、添加页面以及为你的笔记/任务设置文本格式。 + +但不仅仅是安全性。用户体验也很重要。而且,AppFlowy 在这方面做得很好,甚至比 Notion 更好。 + +请注意,该项目仍处于**测试阶段**。 + +目前,该项目的目标不是更好的设计和功能,而是数据隐私、原生体验和社区驱动的机会。 + +#### Notion 与 AppFlowy:你的优先事项是什么? + +虽然它旨在取代 Notion 作为开源解决方案,但它可能并不适合所有人。 + +因此,如果你要选择 AppFlowy 而不是 Notion,你将获得以下好处: + +##### 透明度 + +AppFlowy 是一个开源项目,因此随时欢迎你查看和修改代码。 + +##### 隐私 + +Notion 可以作为闭源软件直接访问你在云中的私有数据。与此相比,你可以根据自己的喜好托管 AppFlowy。 + +你的所有个人数据都将保留在你身边,你可以完全控制它。开发人员还提到他们正在使用离线模式来为本地安装带来更好的支持。 + +##### 性能和原生体验 + +AppFlowy 使用 Rust 和 Flutter 构建,在提供现代用户体验的同时牢记性能。 + +不仅限于此,你还可以在 Linux 上获得良好的原生体验,这是 Notion 所没有的。 + +### AppFlowy 的特点 + +![appflowy screenshot 1][4] + +AppFlowy 在功能方面可能并不优越,但它确实提供了几个基本功能。 + +随着开发的继续,您可以期待更多的功能添加。一些现有的亮点包括: + +* 原生跨平台支持。 +* 能够自行托管或将其安装在你的计算机上。 +* 可定制性。 +* 数据隐私(重中之重)。 +* 单一代码库,便于更好地维护。 +* 社区驱动的可扩展性。 +* 简约的用户界面。 +* 添加待办事项,管理任务。 +* 高亮文本和基本格式。 +* 用于编辑单元格/网格的键盘快捷键。 +* 深色模式支持。 + +#### 在 Linux 上安装 AppFlowy + +由于这仍处于测试阶段,它在默认仓库中不可用,并且没有任何维护的 PPA,也没有任何 Flatpak/Snap 包。 + +但是,你可以通过给定的命令轻松安装 AppFlowy(仅在 Ubuntu 20.04 LTS 和 Arch X86_64 上测试): + +``` +wget https://github.com/AppFlowy-IO/AppFlowy/releases/download/0.0.4/AppFlowy-linux-x86.tar.gz +tar -xzvf AppFlowy-linux-x86.tar.gz +cd AppFlowy +``` + +要运行 AppFlowy,请使用给定的命令: + +``` +./app_flowy +``` + +要在你的系统菜单中注册 AppFlowy,你必须执行以下附加步骤: + +首先,你必须更改 AppFlowy logo 的默认名称: + +``` +mv flowy_logo.svg app_flowy.svg +``` + +现在,你必须将临时 Linux 桌面文件复制到可用的 Linux 桌面文件中。 + +``` +cp appflowy.desktop.temp app_flowy.desktop +``` + +是时候对配置文件进行一些更改了。 + +``` +sudo nano appflowy.desktop +``` + +在这里,你必须将 [CHANGE_THIS] 替换为图标和可执行文件的路径。 + +![add location of icon and exec file][5] + +使用 CTRL + O 保存更改并使用 CTRL + X 退出。 + +最后,移动 desktop 文件,以便你的系统可以读取它。 + +``` +mv app_flowy.desktop ~/.local/share/applications/. +``` + +它应该是这样的: + +![appflowy in system menu][6] + +无论哪种情况,你都可以查看 AppFlowy 的 [官方文档][7] 以从源代码构建它。在其官方网站上探索更多关于它的信息。 + +[AppFlowy][8] + +### 总结 + +如果你需要具有原生 Linux 体验的简单的类 Notion 应用,AppFlowy 是一个有趣的选择。 + +考虑到它正在积极开发中并且远非 Notion 的完全替代品,你应该预期会出现错误/问题。 + +作为 Notion 的开源替代品?它可以工作!你可以使用它来管理任务、添加笔记和制作待办事项列表。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/appflowy/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy.png +[2]: https://news.itsfoss.com/appflowy-development/ +[3]: https://www.notion.so/ +[4]: https://itsfoss.com/wp-content/uploads/2022/07/appflowy-screenshot-1.png +[5]: https://itsfoss.com/wp-content/uploads/2022/07/Add-location-of-icon-and-exec-file-800x524.png +[6]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy-in-System-menu-1.png +[7]: https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/environment-setup/building-on-linux +[8]: https://www.appflowy.io/ From 22c2e40c0307b103a25f2fef0f12f3c0a420475f Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 26 Jul 2022 08:30:32 +0800 Subject: [PATCH 0510/3123] translating --- ...h JavaScript do you need to know before learning ReactJS-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md b/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md index 1aea98bbbd..400aef110e 100644 --- a/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md +++ b/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/learn-javascript-before-reactjs" [#]: author: "Sachin Samal https://opensource.com/users/sacsam005" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f7035643c5dcee2040763db41e3664ac6533c684 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 09:24:17 +0800 Subject: [PATCH 0511/3123] A --- ... to Install Deepin Desktop in Arch Linux [Complete Guide].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md b/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md index c2aae6dbcf..8ebc490a32 100644 --- a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md +++ b/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/deepin-arch-linux-install-20/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 0c49dbf61b3a8da8030578d2a3ec9a1ddb6c023f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 10:02:05 +0800 Subject: [PATCH 0512/3123] TR --- ... Desktop in Arch Linux [Complete Guide].md | 189 ++++++++++-------- 1 file changed, 102 insertions(+), 87 deletions(-) diff --git a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md b/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md index 8ebc490a32..bbedc44be9 100644 --- a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md +++ b/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md @@ -7,156 +7,165 @@ [#]: publisher: " " [#]: url: " " -How to Install Deepin Desktop in Arch Linux [Complete Guide] +如何在 Arch Linux 中安装深度桌面(DDE) ====== -In this guide, we explain the steps required to install the beautiful Deepin Desktop in Arch Linux. -The first part of the guide explains the steps for installing the base Arch system. The second part is installing the complete Deepin desktop on top of Arch Linux. +> 在本指南中,我们将解释在 Arch Linux 中安装漂亮的深度桌面(DDE)所需的步骤。 -### What is the Deepin Desktop? +指南的第一部分解释了安装 Arch 基本系统的步骤。第二部分是在 Arch Linux 的基础上安装完整的深度桌面。 -[Deepin][1] is a feature-rich and beautiful desktop environment based on Debian stable branch. Deepin desktop is a homegrown desktop environment by Deepin. It is powered by its own `dde-kwin` Window manager. Deepin desktop comes with nice looking dock and many native Deepin applications pre-loaded. +### 什么是深度桌面(DDE)? -This eye candy desktop environment is [available in the Arch repository][2]; this is how you can install Deepin Desktop Environment in Arch Linux. +[深度操作系统][1] 是一个基于 Debian 稳定分支的、功能丰富且漂亮的桌面环境。深度桌面环境(DDE)是深度操作系统自主开发的桌面环境。它由它自己的 dde-kwin 窗口管理器驱动。深度桌面带有漂亮的停靠区和许多预装的深度原生的应用程序。 -This guide installs Deepin 20.1 Desktop Environment. However, the steps should be similar for other versions as well. +这个令人眼花缭乱的桌面环境 [可在 Arch 仓库中找到][2];这篇文章介绍了你如何在 Arch Linux 中安装深度桌面。 -### Install Deepin Desktop in Arch Linux +本指南安装深度桌面环境 20.1。然而,其他版本的步骤也应该是类似的。 -#### Part 1: Install Arch Linux +### 第一部分:安装 Arch Linux -If you have already Arch Linux installed, you can skip this step and directly go to the install Deepin Desktop section . +如果你已经安装了 Arch Linux,你可以跳过这一步,直接进入安装深度桌面部分。 -For a quick Arch Linux base installation, follow the below steps. You can also visit [this guide][3] for a complete tutorial on installing Arch Linux as Dual Boot or on a virtual machine. +要快速安装基本的 Arch Linux,请按照以下步骤进行。你也可以访问 [本指南][3] 了解以双启动或在虚拟机上安装 Arch Linux 的完整教程。 -##### Download Arch Linux +#### 下载 Arch Linux -Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download it, write the ISO to a USB drive. And then boot from the drive. +从下面的链接下载 Arch Linux 的 .iso 文件。这里有磁力链和 BT 链接。一旦你下载好了,就把 ISO 写入 U 盘。然后从该驱动器启动。 -[Download Arch Linux][4] +> **[下载 Arch Linux][4]** -If you are planning to install it as a virtual machine image via [GNOME Boxes][5], [virt-manager][6] – then you do not need to write it to a USB drive. +如果你打算通过 [GNOME Boxes][5]、[virt-manager][6] 将其安装为虚拟机镜像 —— 那么你不需要将其写入 U 盘。 -##### Boot and Configure Partitions +#### 启动和配置分区 -After you boot from the Arch Linux iso, you have to run a series of commands to install the base system. +从 Arch Linux ISO 启动后,你必须运行一系列的命令来安装基本系统。 -First, run the below command to find out the device identifier. +首先,运行下面的命令,找出设备的标识符。 ``` fdisk -l ``` -![fdisk -l before][7] +![fdisk -l 之前的分区][7] -Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. +然后用此设备标识符,运行下面的命令,开始对你的磁盘进行分区。请确保根据你的系统而修改下面的 `/dev/sda` 参数。 ``` cfdisk /dev/sda ``` -Select `label type = dos` the next prompt. +在下一个提示中选择 `label type = dos`。 -Select the free space and choose the option NEW from the bottom. In this example, I will create three partitions as per below. +选择可用空间,并从底部选择 “NEW” 选项。在这个例子中,我将创建三个分区,如下所示: ``` -/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap +/dev/sda1 - 1G - for /boot +/dev/sda2 - 5G - for root +/dev/sda3 - 1G - for swap ``` ![cfdisk][8] -In the next screen, provide the partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. +在下一个屏幕中,提供启动分区(`/boot`)的大小(在这个例子中,我给出了 1GB)。选择它作为主分区。 -Repeat the same step for the main root partition of size 5GB. +对 5GB 大小的主根分区(`/`)重复同样的步骤。 -![Swap partition type change][9] +![改变交换分区的类型][9] -Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. +用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变大小)。创建交换分区后,确保在底部选择类型,并将其标记为 “Linux Swap/Solaris” 选项的交换分区。 -![final partition list in cfdisk][10] +![cfdisk 的最终分区列表][10] -Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write, as this is a permanent change in your system. +完成后,用底部的 “Write” 选项将变化写到磁盘上。确保你在写之前做一个备份,因为这是你系统中的一个永久性的改变。 -Run the below command to check before you proceed. You can see in this example, that three partitions are listed. +在你继续之前,运行下面的命令来检查。在这个例子中,你可以看到,列出了三个分区。 ``` fdisk -l ``` -![final partition list in fdisk][11] +![fdisk 中的最终分区列表][11] -Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. +依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2` 参数。 ``` -mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 +mkfs.ext4 /dev/sda1 +mkfs.ext4 /dev/sda2 +mkswap /dev/sda3 +swapon /dev/sda3 ``` -After completion, mount the system and create the necessary directories. +完成后,挂载系统并创建必要的目录。 ``` -mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot +mount /dev/sda2 /mnt +mkdir /mnt/boot /mnt/var /mnt/home +mount /dev/sda1 /mnt/boot ``` -Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. +同样,确保你根据你的系统改变 `/dev/sda1`、`/dev/sda2` 和 `/dev/sda3` 参数。 -![prepare file system][12] +![准备文件系统][12] -##### Install the base system +#### 安装基本系统 -I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which the Arch installer automatically configures and detect. If you do not have a wired connection available, follow this guide to configure a wireless or wifi network using the Arch Linux installer. +我希望你已经连接到互联网了。如果没有,请尝试使用 USB 网卡或有线网络连接,Arch 安装程序会自动配置和检测。如果你没有可用的有线连接,请按照本指南使用 Arch Linux 安装程序配置无线 Wi-Fi 网络。 -Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. +依次运行下面的命令,将基本系统安装到挂载的分区中。下载的大小约为 400MB。 ``` -pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +pacman -Syy +pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub ``` -![Install base system][13] +![安装基本系统][13] -Once complete, generate a file system table without which you can’t boot the system. +一旦完成,生成一个文件系统表,没有这个表你就无法启动系统。 ``` genfstab -U /mnt >> /mnt/etc/fstab ``` -##### Configure the base system +#### 配置基本系统 -Follow the below commands in sequence to configure the base system. This involves setting up your locale and language, adding a login user, and setting up the internet. +依次按照下面的命令来配置基本系统。这包括设置你的地区和语言,添加一个登录用户,以及设置互联网。 ``` -arch-chroot /mntnano /etc/locale.gen +arch-chroot /mnt +nano /etc/locale.gen ``` -Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. +去掉开头的 `#`,取消对你选择的语言环境的注释。在本指南中,我选择了 `en_US.UTF-8 UTF-8`。按 `CTRL+O`、回车和 `CTRL+X` 退出 nano。 -![change locale][14] +![改变 locale][14] -Generate the locale using: +使用以下方法生成语言环境数据。 ``` locale-gen ``` -Set up the language using the below command. +使用下面的命令设置语言。 ``` -echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 +echo LANG=en_US.UTF-8 > /etc/locale.conf +export LANG=en_US.UTF-8 ``` -Set up the local time zone. +设置本地时区。 ``` ln -s /usr/share/zoneinfo/America/New_York /etc/localtime ``` -Again, you can choose them as per your need. You can list the local time zones via the below commands. +同样,你可以根据你的需要来选择它们。你可以通过以下命令列出本地时区。 ``` ls /usr/share/zoneinfo ls /usr/share/zoneinfo/America ``` -Set up the hardware clock, create a hostname and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. +依次使用下面的命令设置硬件时钟、创建主机名并启用互联网的 DHCP。你可以根据你的想法把 `debugpoint-pc` 改为任何主机名。 ``` hwclock --systohc --utc @@ -164,102 +173,108 @@ echo debugpoint-pc > /etc/hostname systemctl enable dhcpcd ``` -The next step is to set up the root user password, create an admin user, and add the user to the sudoers file. +下一步是设置 `root` 用户的密码、创建一个管理员用户,并将该用户添加到 `sudoers` 文件中。 -Follow the below commands in sequence. Make sure to change the user name `debugpoint` to something else as per your need. +按照下面的命令依次进行。确保根据你的需要将用户名`debugpoint` 改为其他名称。 ``` passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint ``` -![create user][15] +![创建用户][15] -Open the sudoers file and add the below lines. +打开 `sudoers` 文件,添加以下几行。 ``` nano /etc/sudoers ``` -Add the below lines. As you already created the root user, the entry should be there. +添加下面几行。由于你已经创建了 `root` 用户,该条目应该已经有了。 ``` -root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL +root ALL=(ALL) ALL +debugpoint ALL=(ALL) ALL ``` -![update sudoers file][16] +![更新 sudoers 文件][16] -Install grub, set up the initial ramdisk environment, and unmount the system using the below commands. +安装 GRUB,建立初始的 Ramdisk 环境,并使用下面的命令卸载系统。 ``` -grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit +grub-install /dev/sda +grub-mkconfig -o /boot/grub/grub.cfg +mkinitcpio -p linux +exit ``` -![configure grub][17] +![配置 GRUB][17] -Then reboot your system. +然后重新启动你的系统。 ``` -umount /mnt/bootumount /mntreboot +umount /mnt/boot +umount /mnt +reboot ``` -You have now successfully installed the Arch Linux base system. It’s time to install the complete Deepin desktop. +现在你已经成功地安装了 Arch Linux 基本系统。现在是安装完整的深度桌面的时候了。 -#### Part 2: Install Deepin Desktop in Arch Linux +### 第二部分:在 Arch Linux 中安装深度桌面 -After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install the Xorg server, lightdm display manager and Deepin desktop components. +重新启动后,从 GRUB 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、Lightdm 显示管理器和深度桌面组件。 -For all the commands, use default as package versions, i.e. press enter when asked. +对于所有的命令,使用默认的包版本,即在询问时按回车。 -* Install Xorg and display manager. Approx install size is 80 MB. +安装 Xorg 和显示管理器。大约安装大小为 80 MB。 ``` -sudo pacman -S --needed xorg lightdm +sudo pacman -S --need xorg lightdm ``` -* Install additional components and applications (approx 550 MB) +安装额外的组件和应用程序(约 550 MB)。 ``` -sudo pacman -S --needed deepin deepin-extra +sudo pacman -S --need deepin deepin-extra ``` -After the installation, enable the Deepin greeter by modifying the lightdm configuration file. Follow the below commands. +安装完成后,通过修改 Lightdm 配置文件启用深度欢迎页。按照下面的命令。 ``` nano /etc/lightdm/lightdm.conf ``` -And add the below line. Save the file (CTRL+O, CTRL+X). +并添加下面这一行。保存该文件(`CTRL+O`、`CTRL+X`)。 ``` greeter-session=lightdm-deepin-greeter ``` -![add deepin-greeter in lightdm login - install Deepin desktop in Arch Linux][18] +![在 Lightdm 登录页中添加深度欢迎欢迎页][18] -Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd. +现在是时候把显示管理器和网络管理器作为服务启用了。这样,下次登录时,它们就可以由 systemd 自动运行。 ``` systemctl enable lightdm systemctl enable NetworkManager ``` -![Enable lightdm and network][19] +![启用 Lightdm 和网络][19]。 -Reboot the system using the reboot command. +使用 `reboot` 命令重新启动系统。 ``` reboot ``` -If all goes well, you should see the Deepin desktop login prompt. Login using the credentials you just created in the above steps. You should be greeted with the latest Deepin desktop environment. +如果一切顺利,你应该看到深度桌面的登录提示。使用你刚刚在上面的步骤中创建的凭证登录。你应该会看到最新的深度桌面环境。 -![Deepin 20.1 Login screen in Arch Linux][20] +![Arch Linux 中的深度 20.1 登录屏幕][20] -![Deepin Desktop 20.1 in Arch Linux][21] +![Arch Linux中的深度桌面 20.1][21] -### Wrapping Up +### 总结 -I hope this guide helped you to install the Deepin desktop in Arch Linux. Although it is not my daily driver, I feel Deepin’s desktop is somewhat slow in nature. Probably because of too much colour rendering and animation and not properly optimized by `dde-desktop` despite it being built on Qt. +我希望这个指南能帮助你在 Arch Linux 中安装深度桌面。虽然它不是我的日常环境,我觉得深度的桌面在本质上有些慢。可能是因为有太多的颜色渲染和动画,而且尽管它是建立在 Qt 上的,但没有为深度桌面进行适当的优化。 -------------------------------------------------------------------------------- @@ -267,8 +282,8 @@ via: https://www.debugpoint.com/deepin-arch-linux-install-20/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From adad282ccbe6170ef8e029786a1b8be68826eef3 Mon Sep 17 00:00:00 2001 From: Maisie-x Date: Tue, 26 Jul 2022 11:18:26 +0800 Subject: [PATCH 0513/3123] Update 20220614 Build a Smart Parking System for a Metro Station.md --- ...mart Parking System for a Metro Station.md | 75 ++++++++++--------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md b/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md index 45b3dbdb8b..c36752af5e 100644 --- a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md +++ b/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md @@ -7,103 +7,106 @@ [#]: publisher: " " [#]: url: " " -Build a Smart Parking System for a Metro Station +为地铁站构建智能停车系统 ====== -This article will help you design a Web based application that automates a smart parking system for cars in a metro station using Node-RED. +本文将帮助你设计一个基于 Web 的应用程序,该应用程序使用 Node-RED 为地铁站的汽车自动实现智能停车系统。 ![Smart car parking][1] -A Web application is software that gets executed on a Web server. Every Web application is accessed by the end user through a Web browser. These Web applications are programmed using a client-server architecture, where the user (client) is provided services through a remotely located server that might be hosted by a third-party. A Web API (application programming interface) is available across the Web and can be accessed by the user using the HTTP protocol, as shown in Figure 1. +Web应用程序是在Web服务器上运行的软件。终端用户通过Web浏览器访问每个Web应用程序。Web应用程序使用客户端—服务器架构进行编程,该架构是用户(客户端)通过可能由第三方托管的远程服务器提供服务。Web API(应用程序编程接口)在Web上可用,用户可以通过HTTP协议访问该接口,如图1所示。 -This article will demonstrate how to design a Web based application for an automated smart parking system for cars in a metro station. It is designed using open source Node-RED. This system creates an interactive and stylish user login form using a template node, where HTML and CSS are coded to get car owner details to automate the parking system. We can see the login and submission form flow diagrams in Figures 2 and 3. +本文将演示如何为地铁设计一个基于Web的汽车自动智能停车系统。 它是使用开源的Node-RED设计。该系统使用模板节点创建了一个互动式且时尚的用户登录表单,该模板用HTML和CSS编码以获取车主详细,从而实现停车系统的自动化。我们可以在图2和图3看到登录表单和提交表单的流程图。 -The nodes used are as follows: +使用的节点如下: -**[Metro smart parking node flow design][2]** -Node-RED is triggered using the command ‘node-red’. Through the URL *http://127.0.0.1:1880/*, the node-RED UI flow browser is enabled. We have considered that the Node-RED setup is done and working. +**[地铁智能停车节点流程设计][2]** +Node-RED是使用’node-red‘命令激活。通过网址 *http://127.0.0.1:1880/*可以访问Node-RED的用户界面流程图的浏览器。我们认为Node-RED设置已完成并且可以正常工作了。 ![table function][3] ![Figure 1: Web API][4] -Follow the steps given below to create the login and submission forms. +按照下面给出的步骤创建登录表单和提交表单。 ![Figure 2: Login form flow diagram][5] ![Figure 3: Submission form flow diagram][6] -*Login form* -1) From the node palette, drag and drop http in node, which creates an HTTP end point for creating Web services. -2) Connect http in node to function node. The latter helps to code JavaScript functions to run against the messages being received by the node. +**登录表单** + +1) 在节点画布中,拖放http in节点,这会为创建Web服务创建一个HTTP访问点。 +2) 将http in节点连接到函数function节点。函数节点有助于编写JavaScripts函数处理节点接收到的消息。 ![Figure 4: Login form for smart parking for cars][7] -3) Connect function node to template node, where the latter creates a Web API based on the provided template. -4) Connect template node to http response node; the latter sends responses back to requests received from an http input node. +3) 将函数function节点连接到模板template节点,模板节点基于提供的模板创建一个Web API。 +4) 将模板template节点连接到http 响应response节点,响应节点将响应http输入节点的请求。 ![Figure 5: Submission form for smart parking for cars][8] -**Submission form** -1) Drag and drop http in node and connect it to json node, which converts and communicates the data as JSON string. -2) Connect http in node to debug node, which gives output in a debug monitor. -3) Place and connect json node to function node and connect the latter to http response node. +**提交表单** -After the creation of a complete flow, click on the Deploy button in the top right corner of the Node-RED window. To view the user interface, go to the link*127.0.0.1:1880/ui/.* -Once you enter and then click Submit, it will take you to the next page where you can read all the news articles. +1) 拖放http in节点并将其连接到json节点,json节点将数据转换为JSON字符串进行通信。 +2) 将http in节点连接到调试debug节点,调试节点的调试监控器会输出结果。 +3) 将json节点放置并连接到函数function节点,将函数节点连接到http响应节点。 -**Node-RED workflow** -In a single flow of Node-RED, you can create both the login form and submission form, as shown in Figures 4 and 5. +创建完整流程后,单击Node-RED窗口右上角的部署Deploy按钮。访问*127.0.0.1:1880/ui/*这个链接查看用户界面。 -Now we will configure the Node properties. +输入链接然后单击提交Submit后,该链接会跳转到下一页,您可以在该页面阅读所有新闻。 -*Login form:* Edit the http in property by choosing the method ‘Get’ and set the URL to ‘/MetroStation’ and configure the name as ‘Smart Parking’. +**Node-RED工作流程** +在单个Node-RED流程中,您可以创建登录表单和提交表单,如图4和图5所示。 + +现在我们将配置节点属性。 + +**登录表单**:编辑http in属性:方法method选择 ‘Get’,网址URL设为‘/MetroStation’ ,名称name配置为 “智能停车系统Smart Parking”。(译注:下文http响应节点的名称为Smart parking,p字母小写,为了区分,此处中文翻译成智能停车系统。) ![Figure 6: Http in node property configurations][9] | - | | :- | -| Note: The URL can be any user defined local variable. | +| 注意:任何用户可以定义网址URL为本地变量。 | -Now select the function node and edit its properties by coding the ‘msg.url = project’ and configure the name field with ‘Project Submission’. +现在选择函数节点,编辑函数节点属性:输入代码 ‘msg.url = project’ ,并配置代码名称name字段为 “项目提交Project Submission”。 ![Figure 7: Function node property configurations][10] -In the Property window of the template node, configure the appropriate HTML code required for the login form and specify the name as ‘Display panel’. The Mustache template format is being used in this flow. Mustache is a simple Web template system that is described as a logicless template engine. It does not have any explicit control flow statements, such as ‘if’ and ‘else’ conditionals or ‘for’ loops. Looping and conditional evaluation can be achieved using section tags processing lists and lambdas. +在模板节点的属性窗口,为登录表单配置相应的HTML代码,并将代码名称name命名为 “显示面板Display panel”。猜此流程使用了Mustache(译注:Mustache是胡子的意思,因为它的嵌入标记{{ }}非常像胡子)模板格式。Mustache是一个简单的Web模板系统,被描述为无逻辑的模板引擎。Mustache没有任何显式的控制流语句,例如 ‘if’ 和 ‘else’条件和‘for’ 循环。可以通过使用块标签处理列表和lambdas来实现循环和条件评估。 ![Figure 8: Template node property configurations][11] -Configure the edit property of http response node with the name ‘Smart Parking’ (Figure 9). +配置编辑http响应response节点的属性,名称name设为 "智能停车Smart parking"(图9) 。 ![Figure 9: Http response node property configurations][12] -*Submission form:*In the edit property window of http in node, choose the method ‘POST’ and the URL ‘/project’. +**提交表单**:在http in节点的编辑属性窗口,方法method选择‘POST’ ,网址URL设为 ‘/project’。 ![Figure 10: Http in node property configurations][13] -In the JSON node edit window, set *Action* as ‘Convert between JSON String & Object’. Refer to Figure 11. +在JSON节点的编辑窗口,操作Action设为‘JSON字符串与对象互转Convert between JSON String & Object’,参考图11。 ![Figure 11: JSON node property configurations][14] -The function node is configured as specified in Figure 12. +函数节点的配置如图12所示。 ![Figure 12: Function node property configurations][15] -In http response node, edit the property name as ‘Project Submitted’. +在http响应response节点,编辑属性名称name为“已提交项目Project Submitted”。 ![Figure 13: Http response node property configurations][16] | - | | :- | -| Note: Also add the comment node with comments as ‘Login Form’ and ‘Submission Form’ | +| 注意:添加带有评论的评论节点作为 “登录表单” 和 “提交表单”。 | ![Figure 14: Debug node property configurations][17] -**Dashboard UI Web page** -When the user clicks on Submit, the data given will be displayed in the UI and the debug node. If Reset is clicked, the details will be cleared, allowing the user to enter new details (Figure 15). +**用户界面的控制面板** +当用户单击提交Submit,给出的数据将显示在用户界面和调试节点。如果单击重置Reset,详细信息将被清除,允许用户输入新的详细信息(图15)。 ![Figure 15: User login UI][18] -Metro parking rates are provided through a hyperlink, and the tariff output is displayed in the UI. So the smart parking for cars is automated with appropriate hyperlinks to exhibit the parking tariff at the metro station. The final outputs of this automated system are retrieved and displayed in the Node-RED dashboard UI and debug monitor. +地铁停车费通过超链接提供,收费表在用户界面显示。因此,汽车智能停车系统通过适当的超链接实现自动化,展示地铁站的停车费。该自动化系统的最终输出可以在Node-RED控制面板的用户界面和调试监控器调取和展示。 ![Figure 16: Metro parking tariff][19] @@ -113,7 +116,7 @@ via: https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-m 作者:[Dr Maheswari R.][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Maisie-x](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ec0b066799b4d93e4d9a7e6fe56beaa40d25a32c Mon Sep 17 00:00:00 2001 From: Maisie-x <109048712+Maisie-x@users.noreply.github.com> Date: Tue, 26 Jul 2022 14:19:03 +0800 Subject: [PATCH 0514/3123] Update 20220614 Build a Smart Parking System for a Metro Station.md --- ...4 Build a Smart Parking System for a Metro Station.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md b/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md index c36752af5e..0fb3b50f69 100644 --- a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md +++ b/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md @@ -19,11 +19,12 @@ Web应用程序是在Web服务器上运行的软件。终端用户通过Web浏 使用的节点如下: -**[地铁智能停车节点流程设计][2]** -Node-RED是使用’node-red‘命令激活。通过网址 *http://127.0.0.1:1880/*可以访问Node-RED的用户界面流程图的浏览器。我们认为Node-RED设置已完成并且可以正常工作了。 - ![table function][3] +**地铁智能停车节点流程设计** + +Node-RED是使用’node-red‘命令激活。通过网址http://127.0.0.1:1880/ 可以访问Node-RED的用户界面流程图的浏览器。我们认为Node-RED设置已完成并且可以正常工作了。 + ![Figure 1: Web API][4] 按照下面给出的步骤创建登录表单和提交表单。 @@ -55,6 +56,7 @@ Node-RED是使用’node-red‘命令激活。通过网址 *http://127.0.0.1:188 输入链接然后单击提交Submit后,该链接会跳转到下一页,您可以在该页面阅读所有新闻。 **Node-RED工作流程** + 在单个Node-RED流程中,您可以创建登录表单和提交表单,如图4和图5所示。 现在我们将配置节点属性。 @@ -102,6 +104,7 @@ Node-RED是使用’node-red‘命令激活。通过网址 *http://127.0.0.1:188 ![Figure 14: Debug node property configurations][17] **用户界面的控制面板** + 当用户单击提交Submit,给出的数据将显示在用户界面和调试节点。如果单击重置Reset,详细信息将被清除,允许用户输入新的详细信息(图15)。 ![Figure 15: User login UI][18] From 0d976cda4e71f5790e798fe6c9841ccdb6963b0f Mon Sep 17 00:00:00 2001 From: Maisie-x <109048712+Maisie-x@users.noreply.github.com> Date: Tue, 26 Jul 2022 14:27:50 +0800 Subject: [PATCH 0515/3123] Rename sources/tech/20220614 Build a Smart Parking System for a Metro Station.md to translated/20220614 Build a Smart Parking System for a Metro Station.md --- .../20220614 Build a Smart Parking System for a Metro Station.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources/tech => translated}/20220614 Build a Smart Parking System for a Metro Station.md (100%) diff --git a/sources/tech/20220614 Build a Smart Parking System for a Metro Station.md b/translated/20220614 Build a Smart Parking System for a Metro Station.md similarity index 100% rename from sources/tech/20220614 Build a Smart Parking System for a Metro Station.md rename to translated/20220614 Build a Smart Parking System for a Metro Station.md From 7b16e59577c412cabf2dab6505ad2c634561b895 Mon Sep 17 00:00:00 2001 From: Maisie-x <109048712+Maisie-x@users.noreply.github.com> Date: Tue, 26 Jul 2022 14:36:14 +0800 Subject: [PATCH 0516/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 变更目录路径 --- .../20220614 Build a Smart Parking System for a Metro Station.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translated/{ => tech}/20220614 Build a Smart Parking System for a Metro Station.md (100%) diff --git a/translated/20220614 Build a Smart Parking System for a Metro Station.md b/translated/tech/20220614 Build a Smart Parking System for a Metro Station.md similarity index 100% rename from translated/20220614 Build a Smart Parking System for a Metro Station.md rename to translated/tech/20220614 Build a Smart Parking System for a Metro Station.md From 8d7c21b48a1c684287057924709d6da10b850d8b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 17:17:29 +0800 Subject: [PATCH 0517/3123] RP @wxy https://linux.cn/article-14867-1.html --- ...eepin Desktop in Arch Linux [Complete Guide].md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) rename {sources/tech => published}/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md (97%) diff --git a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md b/published/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md similarity index 97% rename from sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md rename to published/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md index bbedc44be9..aca08fc6d4 100644 --- a/sources/tech/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md +++ b/published/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md @@ -3,13 +3,15 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14867-1.html" 如何在 Arch Linux 中安装深度桌面(DDE) ====== +![](https://img.linux.net.cn/data/attachment/album/202207/26/170414x01pmevoo8o8b6ob.jpg) + > 在本指南中,我们将解释在 Arch Linux 中安装漂亮的深度桌面(DDE)所需的步骤。 指南的第一部分解释了安装 Arch 基本系统的步骤。第二部分是在 Arch Linux 的基础上安装完整的深度桌面。 @@ -18,7 +20,7 @@ [深度操作系统][1] 是一个基于 Debian 稳定分支的、功能丰富且漂亮的桌面环境。深度桌面环境(DDE)是深度操作系统自主开发的桌面环境。它由它自己的 dde-kwin 窗口管理器驱动。深度桌面带有漂亮的停靠区和许多预装的深度原生的应用程序。 -这个令人眼花缭乱的桌面环境 [可在 Arch 仓库中找到][2];这篇文章介绍了你如何在 Arch Linux 中安装深度桌面。 +这个令人眼花缭乱的桌面环境 [可在 Arch 仓库中找到][2];这篇文章介绍了如何在 Arch Linux 中安装深度桌面。 本指南安装深度桌面环境 20.1。然而,其他版本的步骤也应该是类似的。 @@ -137,7 +139,7 @@ nano /etc/locale.gen 去掉开头的 `#`,取消对你选择的语言环境的注释。在本指南中,我选择了 `en_US.UTF-8 UTF-8`。按 `CTRL+O`、回车和 `CTRL+X` 退出 nano。 -![改变 locale][14] +![改变语言环境][14] 使用以下方法生成语言环境数据。 @@ -258,7 +260,7 @@ systemctl enable lightdm systemctl enable NetworkManager ``` -![启用 Lightdm 和网络][19]。 +![启用 Lightdm 和网络][19] 使用 `reboot` 命令重新启动系统。 From 1b0222c4c870b2853bf60626ffbeb58060a034e7 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 26 Jul 2022 21:00:34 +0800 Subject: [PATCH 0518/3123] translated --- ... 5 ways to learn C programming on Linux.md | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/sources/tech/20220714 5 ways to learn C programming on Linux.md b/sources/tech/20220714 5 ways to learn C programming on Linux.md index 4d517f42a6..fc653a8b4f 100644 --- a/sources/tech/20220714 5 ways to learn C programming on Linux.md +++ b/sources/tech/20220714 5 ways to learn C programming on Linux.md @@ -7,47 +7,47 @@ [#]: publisher: " " [#]: url: " " -5 ways to learn C programming on Linux +在 Linux 上学习 C 语言的五种方式 ====== -Download our new eBook for tips and tricks for C programming on Linux and FreeDOS. +请下载我们的电子书获得在 Linux 和 FreeDOS 上 C 语言编程的提示和技巧 ![Person using a laptop][1] -There are many theories about why the C programming language has endured for as long as it has. Maybe it's the austerity of its syntax or the simplicity of its vocabulary. Or maybe it's that C is often seen as a utilitarian language, something that's rugged and ready to be used as a building material for something that needs no platform because it's going to be its own foundation. C is clearly a powerful language, and I think its longevity has a little something to do with the way it serves as a springboard for other popular technologies. Here are five of my favorite technologies that utilize and rely upon C, and how they can each help you learn more about C yourself. +有许多关于为什么 C 语言能够经久不衰的说法。或许是因为它语法简单明了。又或许是因为它常被认为是实用的语言,因为它不基于其他高级语言,得已在任何平台上编译运行。C 已然成为强大的语言,并且我认为它经久不衰与它作为其他技术的基础的方式相关。这里有 5 项我喜爱的基于 C 语言的技术,希望它们能够帮助你更多的了解 C 语言。 -### 1. GObject and GTK +### 1. GObject 和 GTK -C is not an object-oriented programming language. It has no `class` type. Some folks use C++ for object-oriented programming, but others stick with C along with the GObject libraries. The GObject subsystem provides a `class` structure for C, and the GTK project famously provides widgets accessible through C. Without GTK, there would be no GIMP (for which GTK was developed), GNOME, and hundreds of other popular open source applications.) +C 语言不是面向对象编程的语言。它没有 `class` 关键字。 一些人用 C++ 进行面向对象编程,但是还有一些人坚持用 C 和 GObject 库。GObject 库为 C 语言提供了一个 `class` 结构体,GTK 项目以提供可通过 C 访问的工具包而闻名。没有 GTK ,就没有 GIMP (为此开发了 GTK),GNOME ,以及其他成千上百流行的开源应用。 -#### Learn more +#### 了解更多 -GObject and GTK are excellent ways to start using C for GUI programming. They're well-equipped to get you programming graphical applications using C because they do so much of the "heavy lifting" for you. The classes and data types are defined, the widgets have been made, and all you have to do is put everything together. +GObject 和 GTK 是使用 C 开始进行 GUI 编程的绝佳方式。它们“装备精良”,可以让你用 C 语言进行图形应用编程,因为开发者为你做了许多“繁重工作”。他们定义了类和数据类型,创建了工具包,你所要做的就是将所有东西放在一起。 ### 2. Ncurses -If GTK is more than you need, you might decide a terminal user interface (TUI) is more your speed. The ncurses library creates "widgets" in a terminal, creating a kind of graphical application that gets drawn over your terminal window. You can control the interface with your arrow keys, selecting buttons and elements much the same way you might use a GUI application without a mouse. +如果 GTK 超过了你的需求,你或许认为一个终端用户界面(TUI,terminal user interface)更适合你。Ncurses 在终端库创建“小部件”,创建一种在终端窗口上绘制图形的应用程序。你可以使用方向键控制界面,就像不用鼠标来使用 GUI 应用一样来选择按钮和元素。 -#### Learn more +#### 了解更多 -Get started by writing a [guessing game in C][3] using the ncurses library as your display. +利用 Ncurses 库使用 C 语言写一个 [猜数字][3] 游戏。 -### 3. Lua and Moonscript +### 3. Lua 和 Moonscript -Lua is a scripting language with access to C libraries through a built-in C API. It's a tiny, fast, and simple language with about 30 functions and just a handful of built-in libraries. You can get started with Lua for system automation, game modding and scripting, game development with a frontend like LÖVE, or general application development (like the [Howl text editor][4]) using GTK. +Lua 是使用内置 C 语言 API 访问 C 语言库的一款脚本语言。它十分精巧、快捷以及简单,拥有约 30 个函数和少量内置库。你可以使用 Lua 进行系统自动化、游戏修改和脚本编写、使用 LÖVE 之类的前端进行游戏开发,或者使用 GTK 进行一般应用程序开发(例如 [Howl 文本编辑器][4])。 -#### Learn more +#### 了解更多 -The nice thing about Lua is that you can start out with it to learn the basic concepts of programming, and then start exploring its C API when you feel brave enough to interface directly with the foundational language. If, on the other hand, you never grow out of Lua, that's OK too. There's a wealth of [extra libraries][5] for Lua to make it a great choice for all manner of development. +Lua 十分好的一点是你可以从它开始掌握基本编程理念,然后当你有足够勇气直面基础编程语言时,开始探索它的 C 语言 API 。另一方面,如果你只会 Lua ,那也没事儿。Lua 有很多的 [外部库][5] ,使其成为各种开发方式的绝佳选择。 ### 4. Cython -Lua isn't the only language that interfaces with C. [Cython][6] is a compiler and language designed to make writing C extensions for Python as easy as writing Python code. Essentially, you can write Python and end up with C. The simplest possible example: +Lua 不是唯一以 C 为接口的编程语言。[Cython][6] 是一种编译器和编程语言,旨在使为 Python 编写 C 扩展就像编写 Python 代码一样容易。本质上,你可以编写 Python 并最终使用 C。最简单的示例: ``` print("hello world") ``` -Create a `setup.py` script: +创建一个 `setup.py` 脚本: ``` from setuptools import setup @@ -58,25 +58,25 @@ setup( ) ``` -Run the setup script: +运行该 setup 脚本: ``` $ python3 ./setup.py ``` -And you end up with a `hello.c` and `hello.cpython-39-x86_64-linux-gnu.so` file in the same directory. +最后你会在同一个目录中得到一个 `hello.c` 和 `hello.cpython-39-x86_64-linux-gnu.so` 文件。 -#### Learn more +#### 了解更多 -The [Cython][7] language is a superset of Python with support for C functions, and datatypes. It isn't likely to directly help you learn C, but it opens up new possibilities for the Python developer looking to learn and integrate C code into Python. +[Cython][7] 是支持 C 语言函数和数据类型的 Python 的超集。它不可能帮你学习 C,但它为希望学习 C 代码并将其集成到 Python 中的 Python 开发人员开辟了新的可能性。 ### 5. FreeDOS -The best way to learn more about C is to write code in C, and there's nothing more exciting than writing code you can actually use. The FreeDOS project is an open source implementation of DOS, the predecessor to Windows. You may have already used FreeDOS, either as a handy open source method of running a BIOS updater, or maybe in an emulator to play a classic computer game. You can do a lot more with FreeDOS than that, though. It makes an ideal platform to learn C with a collection of tools that encourage you to write your own commands and simple (or not-so-simple, if you prefer) applications. Of course you can write C code on any OS, but there's a simplicity to FreeDOS that you might find refreshing. The sky's the limit, but even at ground level, you can do some amazingly fun things with C. +了解更多 C 语言的最好方式是编写 C 代码,并且没有什么比写你可以真正使用的代码更激动的了。FreeDOS 项目是 DOS 的开源实现,Windows 的祖先。或许你已经会用 FreeDOS 了,或者作为运行 BIOS 更新程序的便捷开源方法,或者在模拟器中玩经典电脑游戏。你可以用 FreeDOS 做更多事情。它是学习 C 语言的理想平台,其中包含一系列工具,鼓励你编写自己的命令和简单(或不那么简单,如果你愿意)应用程序。当然你可以在任何系统上写 C 代码,但是 FreeDOS 的便利在于你可以发现令你耳目一新的东西。天空有极限,但即使在地面上,你也可以用 C 做一些非常有趣的事情。 -### Download the eBook +### 下载电子书 -You can learn more about C in our **[new eBook][8]**, and more about C on FreeDOS in our eBook. These are collections of programming articles to help you learn C and to demonstrate how you can implement C in useful ways. +你可以从我们编写的 **[电子书][8]** 中学到更多 C 语言,并在我们的电子书中了解有关 FreeDOS 上 C 语言的更多信息。这些是编程文章的集合,可帮助你学习 C 并演示如何以有用的方式实现 C。 -------------------------------------------------------------------------------- @@ -84,7 +84,7 @@ via: https://opensource.com/article/22/7/learn-c-linux 作者:[Alan Smithee][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1bbf01e06ac7012446aae93ba7a80a56b3e60cd7 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 26 Jul 2022 21:08:50 +0800 Subject: [PATCH 0519/3123] translated --- .../tech/20220714 5 ways to learn C programming on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220714 5 ways to learn C programming on Linux.md (100%) diff --git a/sources/tech/20220714 5 ways to learn C programming on Linux.md b/translated/tech/20220714 5 ways to learn C programming on Linux.md similarity index 100% rename from sources/tech/20220714 5 ways to learn C programming on Linux.md rename to translated/tech/20220714 5 ways to learn C programming on Linux.md From c3a454d9d032b64a15c1ac37e131f41d7e37abc8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 22:34:36 +0800 Subject: [PATCH 0520/3123] RP @wxy https://linux.cn/article-14867-1.html --- ...3 How I create music playlists on Linux.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220713 How I create music playlists on Linux.md (76%) diff --git a/translated/tech/20220713 How I create music playlists on Linux.md b/published/20220713 How I create music playlists on Linux.md similarity index 76% rename from translated/tech/20220713 How I create music playlists on Linux.md rename to published/20220713 How I create music playlists on Linux.md index 4b43793dea..44e98c8273 100644 --- a/translated/tech/20220713 How I create music playlists on Linux.md +++ b/published/20220713 How I create music playlists on Linux.md @@ -3,32 +3,31 @@ [#]: author: "Rikard Grossman-Nielsen https://opensource.com/users/rikardgn" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -如何在 Linux 上创建音乐播放列表 +如何编写 C 程序在 Linux 上创建音乐播放列表 ====== -使用我在 Linux 上制作的这个 C 程序在旅途中聆听你喜爱的歌曲。 -![Open source software helps artists create music][1] +![](https://img.linux.net.cn/data/attachment/album/202207/26/223349t4yiqd1yikb9k117.jpg) -图片来源:Opensource.com +> 使用我在 Linux 上制作的这个 C 程序在旅途中聆听你喜爱的歌曲。 -我最近在 Linux 中编写了一个 C 程序,从我广泛的 MP3 库中创建一个较小的随机 MP3 文件选择。该程序会遍历一个包含我的 MP3 库的目录,然后创建一个包含随机的、较小的歌曲选择的目录。然后我将 MP3 文件复制到我的智能手机上,以便随时随地收听。 +我最近在 Linux 中编写了一个 C 程序,从我广泛的 MP3 库中创建一个较小的随机 MP3 文件选集。该程序会遍历一个包含我的 MP3 库的目录,然后创建一个包含随机的、较小的歌曲选集的目录。然后我将这些 MP3 文件复制到我的智能手机上,以便随时随地收听。 瑞典是一个人口稀少的国家,有许多农村地区没有完整的手机覆盖。这就是在智能手机上拥有 MP3 文件的原因之一。另一个原因是我并不总是有钱购买流媒体服务,所以我喜欢拥有自己喜欢的歌曲的副本。 -你可以从它的 [Git 仓库][2]下载我的应用。我专门为 Linux 编写了它,部分原因是在 Linux 上很容易找到经过良好测试的文件 I/O 例程。多年前,我尝试使用专有的 C 库在 Windows 上编写相同的程序,但在尝试文件复制时遇到了困难。 Linux 使用户可以轻松直接地访问文件系统。 +你可以从它的 [Git 仓库][2] 下载我的应用。我专门为 Linux 编写了它,部分原因是在 Linux 上很容易找到经过良好测试的文件 I/O 例程。多年前,我尝试使用专有的 C 库在 Windows 上编写相同的程序,但在尝试文件复制时遇到了困难。Linux 使用户可以轻松直接地访问文件系统。 本着开源的精神,我没费多少力气就找到了 Linux 的文件 I/O 代码来激发我的灵感。我还发现了一些启发了我的分配内存的代码。我编写了随机数生成的代码。 该程序的工作方式如下所述: -1. 请求源目录和目标目录。 -2. 请求 MP3 文件目录下的文件个数。 -3. 搜索你希望复制的收藏的百分比(从 1.0% 到 88.0%)。如果你有 1000 个文件的集合并希望从你的集合中复制 125 个文件而不是 120 个文件,你也可以输入 12.5% 之类的数字。我将上限设置为 88%,因为复制超过 88% 的库将基本生成与你的基础库相似的库。当然,代码是开源的,因此你可以根据自己的喜好自由修改。 -4. 使用指针和 malloc 分配内存。一些操作需要内存,包括代表音乐收藏中文件的字符串列表。还有一个列表来保存随机生成的数字。 +1. 询问源目录和目标目录。 +2. 询问存放 MP3 文件的目录下的文件个数。 +3. 搜索你希望复制的收藏的百分比(从 1.0% 到 88.0%)。如果你有 1000 个文件的集合,并希望从你的集合中复制 125 个文件而不是 120 个文件,你也可以输入 12.5% 之类的数字。我将上限设置为 88%,因为复制超过 88% 的库将基本生成与你的基础库相似的库。当然,代码是开源的,因此你可以根据自己的喜好自由修改。 +4. 使用指针和 `malloc` 分配内存。一些操作需要内存,包括代表音乐收藏中文件的字符串列表。还有一个列表来保存随机生成的数字。 5. 生成所有文件范围内的随机数列表(例如,如果集合有 1000 个文件,则为 1 到 1000)。 6. 复制文件。 @@ -181,13 +180,13 @@ while(1) { } ``` -这将从指定的文件中读取多个字节 (readByteCount) 到字符缓冲区中。该函数的第一个参数是文件名(srcFileDesc)。第二个参数是一个指向字符缓冲区的指针,这之前在程序中声明过。该函数的最后一个参数是缓冲区的大小。 +这将从指定的文件中读取多个字节(`readByteCount`)到字符缓冲区中。该函数的第一个参数是文件名(`srcFileDesc`)。第二个参数是一个指向字符缓冲区的指针,这之前在程序中声明过。该函数的最后一个参数是缓冲区的大小。 程序返回读取的字节数(在本例中为 4 个字节)。如果返回的数字为 0 或更少,则第一个 `if` 子句会跳出循环。 如果读取字节数为 0,则所有写入完成,循环中断以写入下一个文件。如果读取的字节数小于 0,则发生错误并退出程序。 -当读取 4 个字节时,它会写入它们。write 函数接受三个参数。第一个是要写入的文件,第二个是字符缓冲区,第三个是要写入的字节数(4 个字节) .该函数返回写入的字节数。 +当读取 4 个字节时,它会写入它们。`write` 函数接受三个参数。第一个是要写入的文件,第二个是字符缓冲区,第三个是要写入的字节数(4 个字节) .该函数返回写入的字节数。 如果写入了 0 个字节,则发生了写入错误,因此第二个 `if` 子句退出程序。 @@ -206,7 +205,7 @@ via: https://opensource.com/article/22/7/c-linux-mp3 作者:[Rikard Grossman-Nielsen][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/) 荣誉推出 From f7bdf995cebfc5b8d4c718aafad6095e5af7018e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 22:36:45 +0800 Subject: [PATCH 0521/3123] P --- published/20220713 How I create music playlists on Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20220713 How I create music playlists on Linux.md b/published/20220713 How I create music playlists on Linux.md index 44e98c8273..708acec8c8 100644 --- a/published/20220713 How I create music playlists on Linux.md +++ b/published/20220713 How I create music playlists on Linux.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "geekpi" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14868-1.html" 如何编写 C 程序在 Linux 上创建音乐播放列表 ====== From 136c7abfb7ca8bf242ae454fe1d84ac3e72cf6f8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 23:22:24 +0800 Subject: [PATCH 0522/3123] RP @Donkey-Hao https://linux.cn/article-14869-1.html --- ... 5 ways to learn C programming on Linux.md | 104 ++++++++++++++++++ ... 5 ways to learn C programming on Linux.md | 101 ----------------- 2 files changed, 104 insertions(+), 101 deletions(-) create mode 100644 published/20220714 5 ways to learn C programming on Linux.md delete mode 100644 translated/tech/20220714 5 ways to learn C programming on Linux.md diff --git a/published/20220714 5 ways to learn C programming on Linux.md b/published/20220714 5 ways to learn C programming on Linux.md new file mode 100644 index 0000000000..36be3e4f60 --- /dev/null +++ b/published/20220714 5 ways to learn C programming on Linux.md @@ -0,0 +1,104 @@ +[#]: subject: "5 ways to learn C programming on Linux" +[#]: via: "https://opensource.com/article/22/7/learn-c-linux" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14869-1.html" + +在 Linux 上学习 C 语言的五种方式 +====== + +![](https://img.linux.net.cn/data/attachment/album/202207/26/232122wc4c5g55363bgj5g.jpg) + +> 请下载我们的电子书获得在 Linux 和 FreeDOS 上 C 语言编程的提示和技巧。 + +有许多关于为什么 C 语言能够经久不衰的说法。或许是因为它语法简单明了。又或许是因为它常被认为是实用的语言,因为它不基于其他高级语言,可以在任何平台上编译运行。C 显然是一种强大的语言,并且我认为它经久不衰与它作为其他技术的基础的方式相关。这里有 5 项我喜爱的基于 C 语言的技术,希望它们能够帮助你更多的了解 C 语言。 + +### 1、GObject 和 GTK + +C 语言不是面向对象编程的语言。它没有 `class` 关键字。 一些人用 C++ 进行面向对象编程,但是还有一些人坚持用 C 和 GObject 库。GObject 库为 C 语言提供了一个 `class` 结构体,GTK 项目以提供可通过 C 访问的工具包而闻名。没有 GTK ,就没有 GIMP (GTK 就是为此开发的)、GNOME 和其他成千上百流行的开源应用。 + +#### 了解更多 + +GObject 和 GTK 是使用 C 开始进行 GUI 编程的绝佳方式。它们“装备精良”,可以让你用 C 语言进行图形应用的编程,因为开发者为你做了许多“繁重工作”。他们定义了类和数据类型,创建了工具包,你所要做的就是将所有东西放在一起。 + +### 2、Ncurses + +如果 GTK 超过了你的需求,你或许认为一个终端用户界面terminal user interface(TUI)更适合你。Ncurses 库可以在终端创建“小部件”,创建一种在终端窗口上绘制图形的应用程序。你可以使用方向键控制界面,选择按钮和元素,就像不用鼠标来使用 GUI 应用一样。 + +#### 了解更多 + +利用 Ncurses 库使用 C 语言写一个 [猜数字][3] 游戏。 + +### 3、Lua 和 Moonscript + +Lua 是一种脚本语言,它可以使用内置的 C API 访问 C 语言库。它十分精巧、快捷以及简单,拥有约 30 个函数和少量内置库。你可以使用 Lua 进行系统自动化、游戏修改和脚本编写、使用 LÖVE 之类的前端进行游戏开发,或者使用 GTK 进行一般应用程序开发(例如 [Howl 文本编辑器][4])。 + +#### 了解更多 + +Lua 十分好的一点是你可以从它开始学习掌握基本的编程理念,然后当你有足够勇气直面基础编程语言时,再探索它的 C 语言 API 。另一方面,如果你只会 Lua ,那也没事儿。Lua 有很多的 [外部库][5] ,使其成为各种开发方式的绝佳选择。 + +### 4、Cython + +Lua 不是唯一带有 C 接口的编程语言。[Cython][6] 是一种编译器和编程语言,旨在使为 Python 编写 C 扩展就像编写 Python 代码一样容易。本质上,你可以编写 Python 并最终得到 C 语言程序。最简单的示例: + +``` +print("hello world") +``` + +创建一个 `setup.py` 脚本: + +``` +from setuptools import setup +from Cython.Build import cythonize + +setup( + ext_modules = cythonize("hello.pyx") +) +``` + +运行该 `setup` 脚本: + +``` +$ python3 ./setup.py +``` + +最后你会在同一个目录中得到一个 `hello.c` 和 `hello.cpython-39-x86_64-linux-gnu.so` 文件。 + +#### 了解更多 + +[Cython][7] 是 Python 的一个超集,支持 C 语言的函数和数据类型。它不可能帮你直接学习 C 语言,但它为希望学习 C 代码并将其集成到 Python 中的 Python 开发人员开辟了新的可能性。 + +### 5、FreeDOS + +了解更多 C 语言的最好方式是编写 C 代码,没有什么比写你可以真正使用的代码更令人激动的了。FreeDOS 项目是 DOS 的开源实现, 而 DOS 是 Windows 的前身。或许你已经用过 FreeDOS 了,或者作为运行 BIOS 更新程序的便捷开源方法,或者在模拟器中玩经典的计算机游戏。你可以用 FreeDOS 做更多事情。它是学习 C 语言的理想平台,其中包含一系列工具,鼓励你编写自己的命令和简单(或不那么简单,如果你愿意)的应用程序。当然你可以在任何系统上写 C 代码,但是 FreeDOS 的便利可能会让你感到耳目一新。天空有极限,但即使在地面上,你也可以用 C 做一些非常有趣的事情。 + +### 下载电子书 + +你可以从我们编写的新 [电子书][8] 中学到更多 C 语言,并在我们的电子书中了解有关 FreeDOS 上 C 语言的更多信息。这些是编程文章的集合,可帮助你学习 C 语言,并演示如何以有用的方式用 C 写一些代码。 + +> [电子书][8] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/learn-c-linux + +作者:[Alan Smithee][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/alansmithee +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/laptop_screen_desk_work_chat_text.png +[2]: https://opensource.com/downloads/guide-c-programming +[3]: https://opensource.com/article/21/8/guess-number-game-ncurses-linux +[4]: https://opensource.com/article/20/12/howl +[5]: https://opensource.com/article/19/11/getting-started-luarocks +[6]: http://cython.org +[7]: https://opensource.com/article/21/4/cython +[8]: https://opensource.com/downloads/guide-c-programming diff --git a/translated/tech/20220714 5 ways to learn C programming on Linux.md b/translated/tech/20220714 5 ways to learn C programming on Linux.md deleted file mode 100644 index fc653a8b4f..0000000000 --- a/translated/tech/20220714 5 ways to learn C programming on Linux.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: subject: "5 ways to learn C programming on Linux" -[#]: via: "https://opensource.com/article/22/7/learn-c-linux" -[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在 Linux 上学习 C 语言的五种方式 -====== -请下载我们的电子书获得在 Linux 和 FreeDOS 上 C 语言编程的提示和技巧 - -![Person using a laptop][1] - -有许多关于为什么 C 语言能够经久不衰的说法。或许是因为它语法简单明了。又或许是因为它常被认为是实用的语言,因为它不基于其他高级语言,得已在任何平台上编译运行。C 已然成为强大的语言,并且我认为它经久不衰与它作为其他技术的基础的方式相关。这里有 5 项我喜爱的基于 C 语言的技术,希望它们能够帮助你更多的了解 C 语言。 - -### 1. GObject 和 GTK - -C 语言不是面向对象编程的语言。它没有 `class` 关键字。 一些人用 C++ 进行面向对象编程,但是还有一些人坚持用 C 和 GObject 库。GObject 库为 C 语言提供了一个 `class` 结构体,GTK 项目以提供可通过 C 访问的工具包而闻名。没有 GTK ,就没有 GIMP (为此开发了 GTK),GNOME ,以及其他成千上百流行的开源应用。 - -#### 了解更多 - -GObject 和 GTK 是使用 C 开始进行 GUI 编程的绝佳方式。它们“装备精良”,可以让你用 C 语言进行图形应用编程,因为开发者为你做了许多“繁重工作”。他们定义了类和数据类型,创建了工具包,你所要做的就是将所有东西放在一起。 - -### 2. Ncurses - -如果 GTK 超过了你的需求,你或许认为一个终端用户界面(TUI,terminal user interface)更适合你。Ncurses 在终端库创建“小部件”,创建一种在终端窗口上绘制图形的应用程序。你可以使用方向键控制界面,就像不用鼠标来使用 GUI 应用一样来选择按钮和元素。 - -#### 了解更多 - -利用 Ncurses 库使用 C 语言写一个 [猜数字][3] 游戏。 - -### 3. Lua 和 Moonscript - -Lua 是使用内置 C 语言 API 访问 C 语言库的一款脚本语言。它十分精巧、快捷以及简单,拥有约 30 个函数和少量内置库。你可以使用 Lua 进行系统自动化、游戏修改和脚本编写、使用 LÖVE 之类的前端进行游戏开发,或者使用 GTK 进行一般应用程序开发(例如 [Howl 文本编辑器][4])。 - -#### 了解更多 - -Lua 十分好的一点是你可以从它开始掌握基本编程理念,然后当你有足够勇气直面基础编程语言时,开始探索它的 C 语言 API 。另一方面,如果你只会 Lua ,那也没事儿。Lua 有很多的 [外部库][5] ,使其成为各种开发方式的绝佳选择。 - -### 4. Cython - -Lua 不是唯一以 C 为接口的编程语言。[Cython][6] 是一种编译器和编程语言,旨在使为 Python 编写 C 扩展就像编写 Python 代码一样容易。本质上,你可以编写 Python 并最终使用 C。最简单的示例: - -``` -print("hello world") -``` - -创建一个 `setup.py` 脚本: - -``` -from setuptools import setup -from Cython.Build import cythonize - -setup( - ext_modules = cythonize("hello.pyx") -) -``` - -运行该 setup 脚本: - -``` -$ python3 ./setup.py -``` - -最后你会在同一个目录中得到一个 `hello.c` 和 `hello.cpython-39-x86_64-linux-gnu.so` 文件。 - -#### 了解更多 - -[Cython][7] 是支持 C 语言函数和数据类型的 Python 的超集。它不可能帮你学习 C,但它为希望学习 C 代码并将其集成到 Python 中的 Python 开发人员开辟了新的可能性。 - -### 5. FreeDOS - -了解更多 C 语言的最好方式是编写 C 代码,并且没有什么比写你可以真正使用的代码更激动的了。FreeDOS 项目是 DOS 的开源实现,Windows 的祖先。或许你已经会用 FreeDOS 了,或者作为运行 BIOS 更新程序的便捷开源方法,或者在模拟器中玩经典电脑游戏。你可以用 FreeDOS 做更多事情。它是学习 C 语言的理想平台,其中包含一系列工具,鼓励你编写自己的命令和简单(或不那么简单,如果你愿意)应用程序。当然你可以在任何系统上写 C 代码,但是 FreeDOS 的便利在于你可以发现令你耳目一新的东西。天空有极限,但即使在地面上,你也可以用 C 做一些非常有趣的事情。 - -### 下载电子书 - -你可以从我们编写的 **[电子书][8]** 中学到更多 C 语言,并在我们的电子书中了解有关 FreeDOS 上 C 语言的更多信息。这些是编程文章的集合,可帮助你学习 C 并演示如何以有用的方式实现 C。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/learn-c-linux - -作者:[Alan Smithee][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/alansmithee -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/laptop_screen_desk_work_chat_text.png -[2]: https://opensource.com/downloads/guide-c-programming -[3]: https://opensource.com/article/21/8/guess-number-game-ncurses-linux -[4]: https://opensource.com/article/20/12/howl -[5]: https://opensource.com/article/19/11/getting-started-luarocks -[6]: http://cython.org -[7]: https://opensource.com/article/21/4/cython -[8]: https://opensource.com/downloads/guide-c-programming From 740788db0481fec776e872ec46cdc293f1a85ac5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 23:26:12 +0800 Subject: [PATCH 0523/3123] R --- published/20220714 5 ways to learn C programming on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220714 5 ways to learn C programming on Linux.md b/published/20220714 5 ways to learn C programming on Linux.md index 36be3e4f60..4b7cc34de2 100644 --- a/published/20220714 5 ways to learn C programming on Linux.md +++ b/published/20220714 5 ways to learn C programming on Linux.md @@ -79,7 +79,7 @@ $ python3 ./setup.py 你可以从我们编写的新 [电子书][8] 中学到更多 C 语言,并在我们的电子书中了解有关 FreeDOS 上 C 语言的更多信息。这些是编程文章的集合,可帮助你学习 C 语言,并演示如何以有用的方式用 C 写一些代码。 -> [电子书][8] +> **[下载电子书][8]** -------------------------------------------------------------------------------- From e6a11a52d3a20e6d2a22a48846c431a40e7bdd6c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 27 Jul 2022 05:02:38 +0800 Subject: [PATCH 0524/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220726?= =?UTF-8?q?=20Debian=20May=20Consider=20Including=20Non-Free=20Firmware=20?= =?UTF-8?q?in=20Official=20Releases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md --- ... Non-Free Firmware in Official Releases.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md diff --git a/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md b/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md new file mode 100644 index 0000000000..0ce825d8be --- /dev/null +++ b/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md @@ -0,0 +1,68 @@ +[#]: subject: "Debian May Consider Including Non-Free Firmware in Official Releases" +[#]: via: "https://news.itsfoss.com/debian-non-free/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Debian May Consider Including Non-Free Firmware in Official Releases +====== + +Debian is one of the most loved Linux distributions for its approach to stability and a balance between new features. + +Also, it does not come with any non-free firmware. + +However, that is becoming an issue for users who want to use Debian on newer hardware. + +Most of the latest devices and configurations need non-free firmware to make things work, which includes Wi-Fi, graphics, and more. + +And to address that, **Steve McIntyre**, a Debian developer and a former Debian project leader, has been actively discussing the issue for a while. + +At the **DebConf 22 conference**, Steve recently talked about fixing the firmware mess to highlight this better to users and developers, as spotted by [Geeker’s Digest][1]. + +### Including Non-Free Firmware in Official Releases + +As for the current situation, you can find an unofficial Debian image with non-free firmware. + +However, not every user is aware of it, and even if it is promoted on Debian’s download page, “unofficial” is not something a user will prefer over the recommended image. + +Also, it is counter-intuitive to expect users to install non-free firmware when they can choose any Ubuntu-based distribution or Ubuntu as an alternative. + +Not just limited to these issues, Steve mentions a few other problems with it in his [blog][2] that include: + + * Maintaining separate non-free images is time-consuming. + * The official images are not preferred by many users because of the lack of non-free firmware. + + + +Steve proposes that this mess be fixed sooner than later if we want more users to use Debian on common hardware. + +Potentially through a prompt in the installer for users to install non-free firmware, similar to what Ubuntu does. + +Furthermore, in his talk at DebConf 22, it seems that most of the developers voted to add non-free firmware in official Debian images. + +And with the recent highlight, Steve has gotten more attention from users/developers to find a solution to this problem as a community. + +**The easy/convenient way out**: adding non-free firmware in official release images. + +_So, will Debian finally add support for non-free firmware in its newer releases? Will Debian 12 make this a reality?_ + +_Share your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/debian-non-free/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ +[2]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do From d07a04caf8e5ac91ae8f48c87393751aafc89a15 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 27 Jul 2022 08:38:50 +0800 Subject: [PATCH 0525/3123] translated --- ...l to multiple smarthosts with opensmtpd.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) rename {sources => translated}/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md (51%) diff --git a/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md b/translated/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md similarity index 51% rename from sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md rename to translated/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md index 6cc0c4d237..4a92dabbf4 100644 --- a/sources/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md +++ b/translated/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md @@ -7,14 +7,14 @@ [#]: publisher: " " [#]: url: " " -relaying mail to multiple smarthosts with opensmtpd +使用 opensmtpd 将邮件中继到多个 smarthost ====== -I like to use a local smtp daemon for sending email from my laptop, because that way i can send emails even while disconnected and, even when the network is up, because i don't have to wait for the network protocol to be completed with a remote smarthost. Oh, and i also need local mail delivery. +我喜欢使用本地 smtp 守护进程从我的笔记本电脑发送电子邮件,因为这样我即使在断开连接的情况下也可以发送电子邮件,而且,即使是在网络正常的情况下,因为我不需要等待网络协议在远程 smarthost 上完成。哦,我还需要本地邮件发送。 -For many years i've used postfix to those ends; it has an acceptably simply-ish configuration; but recently i've become fond of VPNs ([mullvad][1], if you want to know), and was annoyed by its getting confused when `/etc/resolv.conf` changes (for instance, because you get the VPN up after postfix's service has started). I've found a pleasantly simple alternative: [OpenSMTPD][2]. +多年来,我一直使用后缀来达到这些目的。它具有可接受的简单配置。但最近我开始喜欢 VPN([mullvad][1],如果你想知道的话),并且在 `/etc/resolv.conf` 更改时会感到困惑(例如,因为你在 postfix 的服务启动后启动了 VPN)。我找到了一个非常简单的替代方案:[OpenSMTPD][2]。 -Say i want to use the SMTP server fencepost.gnu.org when sending an email as [jao@gnu.org][3] and smtp.jao.io when writing with [mail@jao.io][4] or [news@xmobar.org][5] in my `From` header. OpenSMTPD let's you do that with a very simple configuration file in `/etc/smtpd.conf`[1][6]: +假设我想在使用 [jao@gnu.org][3] 发送电子邮件时使用 SMTP 服务器 fencepost.gnu.org,而在我的 `From` 头中使用 [mail@jao.io][4] 或 [news@xmobar.org][5] 时使用 smtp.jao.io。OpenSMTPD 让你通过一个非常简单的配置文件 `/etc/smtpd.conf`[1][6] 来实现: ``` @@ -36,7 +36,7 @@ Say i want to use the SMTP server fencepost.gnu.org when sending an email as [ja ``` -where we have also configured local delivery for a good measure. That's the full configuration file! The only other thing needed is generating the `secrets.db` file with the users and passwords corresponding to the keys `gnu` and `jao` (those are just arbitrary names). To that end, we create a plain text file with them, using entries of the form ` :`: +我们还为此配置了本地投递。这是完整的配置文件!唯一需要的另一件事是生成 `secrets.db` 文件,其中包含与键 `gnu` 和 `jao` 对应的用户和密码(这些只是任意名称)。为此,我们使用它们创建一个纯文本文件,使用形式为 ` :` 的条目: ``` @@ -45,7 +45,7 @@ where we have also configured local delivery for a good measure. That's the full ``` -where my user for `fencepost.gnu.org` is `jao` and for `smtp.jao.io` is `mail@jao.io` (you see there's no need of escaping spaces or ats). Then we use the program `makemap` to create the secrets db: +`fencepost.gnu.org` 用户是 `jao`,`smtp.jao.io` 的用户是 `mail@jao.io`(你看,不需要转义空格或 ats)。然后我们使用程序 `makemap` 来创建密钥数据库: ``` @@ -53,13 +53,12 @@ where my user for `fencepost.gnu.org` is `jao` and for `smtp.jao.io` is `mail@ja ``` -### Footnotes: +### 脚注: [1][7] That's the default configuration file in my debian box; other popular alternative is `/etc/openstmpd.conf`. - -[Tags][8]: [sundry][9] +这是我的 debian 机器中的默认配置文件。另一个流行的替代方案是 `/etc/openstmpd.conf`。 -------------------------------------------------------------------------------- @@ -67,7 +66,7 @@ via: https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html 作者:[jao][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cac991e8f07eec334fc0810521418ba157aca38f Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 27 Jul 2022 08:42:25 +0800 Subject: [PATCH 0526/3123] translating --- ...te a Single Package With apt Command in Ubuntu and Debian.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md index cf6b1e5bfc..2a3ae5ea22 100644 --- a/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md +++ b/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/apt-upgrade-single-package/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 46d99aa08e447e22595166c32fb049cd372a19d4 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Wed, 27 Jul 2022 10:13:59 +0800 Subject: [PATCH 0527/3123] Update 20220707 Use secret keyboard keys on Linux.md --- sources/tech/20220707 Use secret keyboard keys on Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220707 Use secret keyboard keys on Linux.md b/sources/tech/20220707 Use secret keyboard keys on Linux.md index 05aadb7731..80c9ba5851 100644 --- a/sources/tech/20220707 Use secret keyboard keys on Linux.md +++ b/sources/tech/20220707 Use secret keyboard keys on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/linux-compose-key-cheat-sheet" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -137,7 +137,7 @@ via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet 作者:[Seth Kenlon][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9574a176c2468f7d68f443ce92baca80ad4f6eef Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:20:08 +0800 Subject: [PATCH 0528/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220722=20Fixing=20the=20-Pending=20Update=20of=20F?= =?UTF-8?q?irefox=20snap-=20Error=20in=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Update of Firefox snap- Error in Ubuntu.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md diff --git a/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md new file mode 100644 index 0000000000..33b4e9bf1e --- /dev/null +++ b/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md @@ -0,0 +1,115 @@ +[#]: subject: "Fixing the “Pending Update of Firefox snap” Error in Ubuntu" +[#]: via: "https://itsfoss.com/pending-update-firefox-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fixing the “Pending Update of Firefox snap” Error in Ubuntu +====== + +If you are using Ubuntu 22.04, you might have received this notification. + +![Notification about pending Firefox app][1] + +It notifies you that the Firefox update is pending and asks you to close the app to avoid disruption. + +So, like a good obedient Ubuntu user, you close the Firefox browser when you have saved or finished your work. + +You think that Firefox was updated in the background and restarting the browser will run the newer version. + +Only, that is not the case here. + +**Even after you restart your browser or even your computer, it may still show the same “pending update of Firefox” notification.** + +Frustrating? I can relate. + +Let me explain why it is happening and what you can do to ‘fix’ it. + +### Fixing the ‘pending update of Firefox snap’ problem + +Earlier, Firefox used to update in the background and then required you to restart the browser. It would not have let you [open any website until you restarted the browser][2]. + +![Firefox forced restart in the past][3] + +After switching the [Firefox browser to Snap packaging by default][4], the Ubuntu team made some changes to the update process. + +This notification is part of that ‘improved user experience.’ Here, Firefox is not stopping you from browsing anymore. It asks you to restart the browser at your convenience to update. + +But why does it keep showing the notification even after your restart the browser or the system? + +Because it’s a poor notification message that doesn’t give you the complete information. + +#### Firefox update hasn’t even begun + +When you see the ‘pending Firefox update’ you wrongly presume that the application has been updated in the background and restart will upgrade it to the newer version. + +That’s the case here. The snap packages in Ubuntu refresh (update) automatically once or a couple of times a day. To avoid disruption of work where Firefox doesn’t let you browse anything until you restart to install the updates, Ubuntu doesn’t even update the Firefox Snap package in the background. + +Instead, when the Snap package refresh takes place, **it shows the notification and expects you to close the browser immediately**so it can be updated with other Snap packages. + +But that’s not what users like you and me can do, right? See the notification, and close the browser immediately? Not very convenient. + +But when you get the time to close the browser, the Snap refresh is not taking place to update the browser. + +You can see that a newer Snap version of Firefox is available but it won’t be installed automatically as long as Firefox is running. + +![Firefox snap won’t be updated automatically if the browser is running][5] + +#### Updating Firefox Snap + +Here’s what you need to do to get rid of the update notification that keeps on appearing daily. + +* Close the Firefox browser +* Manually run the Snap refresh (update the installed snap packages) + +Make sure that your work in the Firefox browser is saved. Now, close all the Firefox browsers using your mouse or run this command in the terminal: + +``` +sudo killall firefox +``` + +Now that Firefox is not running anymore, update the Snap package(s): + +``` +sudo snap refresh +``` + +You’ll see that it starts downloading the newer Firefox package. + +![Firefox is being updated with Snap][6] + +Once the update is finished, you’ll see the summary that Firefox has been upgraded to a newer version. + +![Updated Firefox snap version][7] + +### Conclusion + +Installing a non-Snap version of Firefox could also be the solution here but not everyone can go down that road. + +Firefox and Snap developers must come together to improve this ambiguous update process. They should provide a better mechanism that doesn’t only show the notification on pending updates but also gives the option to start the update. + +This is one of the many weird things we have seen with Ubuntu recently. This must change to make Ubuntu a beginner-friendly distribution (again). + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/pending-update-firefox-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/07/pending-update-firefox-ubuntu.png +[2]: https://news.itsfoss.com/mozilla-annoying-new-tab/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/firefox-restart.webp +[4]: https://news.itsfoss.com/ubuntu-firefox-snap-default/ +[5]: https://itsfoss.com/wp-content/uploads/2022/07/pending-Firefox-update-issue-Ubuntu.png +[6]: https://itsfoss.com/wp-content/uploads/2022/07/updating-firefox-snap-package-ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/firefox-snap-update-ubuntu.png From 65f8d3bde364f0e096163bc2a961a1671a24357e Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:21:30 +0800 Subject: [PATCH 0529/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220723=20Top=2010=20Best=20Music=20Players=20for?= =?UTF-8?q?=20Linux=20in=202022.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...10 Best Music Players for Linux in 2022.md | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 sources/tech/20220723 Top 10 Best Music Players for Linux in 2022.md diff --git a/sources/tech/20220723 Top 10 Best Music Players for Linux in 2022.md b/sources/tech/20220723 Top 10 Best Music Players for Linux in 2022.md new file mode 100644 index 0000000000..6027b80543 --- /dev/null +++ b/sources/tech/20220723 Top 10 Best Music Players for Linux in 2022.md @@ -0,0 +1,204 @@ +[#]: subject: "Top 10 Best Music Players for Linux in 2022" +[#]: via: "https://itsfoss.com/best-music-players-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Best Music Players for Linux in 2022 +====== + +While many of us rely on music streaming services, several users prefer to use the good-old music player on their Linux system. + +Of course, you already get a music player program pre-installed with every Linux distribution. + +However, depending on your requirements, you might want to try a variety of music players, providing you with more features or a better user experience. + +You could save time organizing your collections, sorting the best playlist, and other things. + +So, to save you from trouble, I highlight the best music player applications for Ubuntu and other Linux distributions. + +### 1. Amberol + +![amberol music player interface][1] + +Looking for something to simply play music with no fancy features? + +Amberol is your best bet. It provides a super intuitive user experience and offers essential music controls to shuffle, have a playlist, navigate through the song, and more. + +We also have a dedicated article on [Amberol][2], if you want to explore more about it. + +[Amberol][3] + +### 2. Elisa + +![elisa music player][4] + +Elisa is a fantastic music player developed by KDE. Primarily, it is tailored for KDE-powered distributions, but it should work fine on other Linux distributions. I tried it with Ubuntu 22.04 LTS GNOME. + +Elisa could be the perfect candidate for you if you wanted a fast, good-looking, and feature-rich music player. It gives you some control over the layout, allowing you to choose to access all the options available or switch to an immersive mode to focus on playing music. + +It is available for Linux, BSD derivatives, and Windows. For Linux, you can find it available in the official repositories of major distributions and install it via the terminal. + +Furthermore, you can find it listed in the software center of respective distributions. + +[Elisa][5] + +### 3. Rythmbox + +![rythmbox][6] + +Rythmbox is a popular music player considering it comes pre-installed with many Linux distributions, including Ubuntu. + +It is a simple feature-rich player where you can access internet radio, manage a music library, and stream music services like Last.fm and Magnatune. + +Moreover, you can expand its capabilities with plugins. + +The best way to get it installed is to use the Flatpak package from Flathub, and you can also find it in the software center. + +[Rythmbox][7] + +### 4. Sayonara Player + +![sayonara player 2022][8] + +Sayonara Player is an underrated option if you are looking for a customizable and lightweight music player focused on performance. + +Even though the user interface is simple, it supports multiple libraries, album view, directory view, genre organization, dynamic playback, equalizer, lyrics, internet streams, podcasts, and more. + +You can install it using the official PPA, AppImage file, Snap package, or explore other options on its download page. + +[Sayonara Player][9] + +### 5. Strawberry Music Player + +![strawberry music player][10] + +Strawberry Music Player is a fork of Clementine (which was a popular music player but hasn’t seen any new releases since 2016). + +It supports various music file formats and easily lets you organize/manage playlists. You can also edit tags on audio files and get album cover art support. + +Additionally, it offers an audio analyzer and equalizer. + +It is available for Linux, Windows, and macOS. For Linux, you can use its official PPA or grab the deb package from its [GitHub releases section][11]. + +[Strawberry Music Player][12] + +### 6. DeaDBeef Player + +![deadbeef 2022][13] + +DeaDBeef Player is one of the oldest options that is still actively maintained for multiple platforms, including Linux, Windows, and macOS. + +You can edit music tags, read all the details, play all kinds of files, and install additional plugins to enhance your experience. It also lets you split albums into tracks and helps you manage multiple playlists. + +Interestingly, you can also use it to transcode files to other formats. + +For Ubuntu, you can download the deb package from its official website and get it installed. If you have Arch Linux or any other distro, explore the available packages on its website. + +[DeaDBeef Player][14] + +### 7. cmus (Terminal Music Player) + +![cmus 2022][15] + +Fret not, if you would rather not leave the terminal for anything else, cmus is an option. + +It gets you all the essential features right from the command line. You will have to browse for the correct directory and set it up to start using the music player. + +It may not be easy for new users. So, you will have to explore its built-in tutorial and refer to our dedicated article on [cmus music player][16] to know how to add a playlist, manage tracks, and more. It is available in the official repositories, so you can find it in the software center or install it through the terminal on Ubuntu. + +[cmus][17] + +### 8. VLC Media Player + +![vlc linux][18] + +VLC Media Player is one of the most popular options for any platform, including Linux. + +You know what it does if you are already a fan of it. It supports many file formats and has excellent features like transcoding. Unlike other options, it is not just a music player but also supports videos, DVDs, and some streaming protocols. It is primarily a video player but it can also handle music files pretty well. + +VLC provides packages for almost every popular Linux distribution, including Debian, Ubuntu, openSUSE, Arch, and Fedora. You can find the packages on its [official download page][19]. + +Alternatively, you can easily [install VLC media player][20] from the terminal. + +[VLC][21] + +### 9. Museeks + +![museeks][22] + +Museeks is a cross-platform music player with a clean user interface. It supports the major file formats and helps you manage playlists, queues, loops, album covers, and more. + +It does support a dark mode theme along with playback speed controls. + +Additionally, it supports .m3u import/export. You can find packages for Linux (deb/rpm/AppImage) in its [GitHub releases section][23]. + +[Museeks][24] + +### 10. Audacious + +![audacious player][25] + +Audacious is another music player that has existed for over a decade and is available for Linux and Windows. + +It utilizes Qt to offer a responsive user interface without affecting much of your system resources. Interestingly, you get to equip some Winamp Classic skins as well. In any case, the user experience is rather straightforward. + +Audacious supports a few plugins for lyrics, VU meter, and more. You can install it directly through the official repositories via the terminal or search for it in the software center. + +[Audacious][26] + +### Wrapping Up + +Music players are here to stay, even if we switch to streaming applications. + +Unfortunately, some native Linux applications like [Mellow Player][27], [Nuvola][28], and [Nuclear][29], that allowed access to streaming services are no longer actively maintained. So, if you are thinking of accessing Spotify/SoundCloud on Linux, you should look for any of their official/unofficial clients available. + +Music players are perfect for users who want to play around with their local collection, organize playlists, and customize their native desktop experience while protecting their privacy! + +Did we miss any of your favorite music players? Let us know in the comments! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-music-players-linux/ + +作者:[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/wp-content/uploads/2022/06/amberol-music-player-interface-800x693.png +[2]: https://itsfoss.com/amberol-music-player/ +[3]: https://gitlab.gnome.org/World/amberol +[4]: https://itsfoss.com/wp-content/uploads/2022/07/elisa-music-player.png +[5]: https://elisa.kde.org/en-gb/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/rythmbox-2022-800x626.png +[7]: https://wiki.gnome.org/Apps/Rhythmbox +[8]: https://itsfoss.com/wp-content/uploads/2022/07/sayonara-player-2022.png +[9]: https://sayonara-player.com/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/strawberry-music-player.png +[11]: https://github.com/strawberrymusicplayer/strawberry/releases +[12]: https://www.strawberrymusicplayer.org/ +[13]: https://itsfoss.com/wp-content/uploads/2022/07/deadbeef-2022.png +[14]: https://deadbeef.sourceforge.io/ +[15]: https://itsfoss.com/wp-content/uploads/2022/07/cmus-2022.png +[16]: https://itsfoss.com/cmus-linux-terminal-music-player/ +[17]: https://cmus.github.io/ +[18]: https://itsfoss.com/wp-content/uploads/2022/07/vlc-linux.png +[19]: https://www.videolan.org/vlc/#download +[20]: https://itsfoss.com/install-latest-vlc/ +[21]: https://www.videolan.org/ +[22]: https://itsfoss.com/wp-content/uploads/2022/07/museeks.png +[23]: https://github.com/martpie/museeks/releases +[24]: https://museeks.io +[25]: https://itsfoss.com/wp-content/uploads/2022/07/audacious-player.png +[26]: https://audacious-media-player.org/ +[27]: https://colinduquesnoy.gitlab.io/MellowPlayer/ +[28]: https://nuvola.tiliado.eu/ +[29]: https://github.com/nukeop/nuclear From 371354701b3925022211503ce1829c5bf094c55d Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:23:29 +0800 Subject: [PATCH 0530/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220727=20How=20to=20Install=20Pamac=20GUI=20Packag?= =?UTF-8?q?e=20Manager=20in=20Arch=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Pamac GUI Package Manager in Arch Linux.md | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 sources/tech/20220727 How to Install Pamac GUI Package Manager in Arch Linux.md diff --git a/sources/tech/20220727 How to Install Pamac GUI Package Manager in Arch Linux.md b/sources/tech/20220727 How to Install Pamac GUI Package Manager in Arch Linux.md new file mode 100644 index 0000000000..1fdf998079 --- /dev/null +++ b/sources/tech/20220727 How to Install Pamac GUI Package Manager in Arch Linux.md @@ -0,0 +1,155 @@ +[#]: subject: "How to Install Pamac GUI Package Manager in Arch Linux" +[#]: via: "https://itsfoss.com/install-pamac-arch-linux/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Pamac GUI Package Manager in Arch Linux +====== + +[Pamac][1] is the package manager of [Manjaro][2] based on [libalpm][3] which also supports Appstream, [AUR][4], [Flatpak][5] and [Snaps][6]. Being an alternative to [pacman][7] it focuses on providing an easy-to-use interface whether it is GUI or CLI. + +Arch Linux relies on the [pacman commands for package management][8]. You may get a GUI-based software center from your desktop environment. + +However, if you want to install the fabulous Pamac package manager in Arch Linux, you could do that. + +In this tutorial, I’ll show you two methods to do that: + +* Installing from the AUR +* Installing from the [Chaotic-AUR][9] (Recommended as the developers of Garuda Linux sign packages) + +Both are command line methods, but you are an Arch user, and I believe you can handle the command line a bit, can you not? + +### Method 1: Installing Pamac from the AUR + +If you have an AUR helper like Yay installed already, getting Pamac is really easy. + +``` +yay -S pamac-aur +``` + +**Otherwise, you’ll have to go the challenging route.** + +First, update your system as Arch is a rolling release distribution and [do not support partial upgrades][10]. Enter the following command in the terminal to [update your Arch Linux system][11]. + +``` +sudo pacman -Syu +``` + +Then you need to install all the packages of the [base-devel][12] package group and [git][13] by entering the command below. + +``` +sudo pacman -S --needed base-devel git +``` + +Now you need to build and install [archlinux-appstream-data-pamac][14], [libpamac-aur][15] and [pamac-aur][16] respectively. + +Enter the following commands replacing the package name with packages you want to install for all the 3 packages. + +``` +git clone https://aur.archlinux.org/archlinux-appstream-data-pamac.git +cd archlinux-appstream-data-pamac +makepkg -si +``` + +In this case, the AUR package `pamac-aur` have other AUR packages as dependencies. So you have to build and install them before installing the main package. This hassle can be avoided by using an [AUR helper][17]. + +Building and installing packages from AUR may fail due to outdated [PKGBUILD][18] and there are plenty of them in the AUR. Also, you need to manually update AUR packages if there is an update, as AUR packages don’t update when you update your system with Pacman. + +In my opinion, you should use the next method. You don’t have to bother building and updating Pamac manually when there is an update. + +### Method 2: Installing Pamac from the Chaotic-AUR (Recommended) + +Chaotic-AUR is a repository for Arch Linux maintained by the developers of [Garuda Linux][19]. Packages of this repo are signed and can be trusted. When you add this repo, you can install Pamac using Pacman directly. + +Let’s add the repo by entering the following commands. + +``` +sudo pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com +sudo pacman-key --lsign-key FBA220DFC880C036 +sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' +``` + +The above command just installs the keyring and mirrorlist for the repo. You also have to add the repo to the end of */etc/pacman.conf*. Here I will use nano to edit the file. + +``` +sudo nano /etc/pacman.conf +``` + +The resulting file should look something like this. + +``` +... +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist +``` + +Now update your system using Pacman and install Pamac by the entering the following command. + +``` +sudo pacman -Syu pamac-aur +``` + +Once installed, you can access the GUI from Application Menu and CLI using the pamac command. + +![Pamac GUI][20] + +![Pamac CLI][21] + +In case you don’t like Pamac, you can remove it along with its dependencies and configuration files using pacman via the following command: + +``` +sudo pacman -Rns pamac-aur +``` + +### Conclusion + +When I started using Arch Linux, I was also very skeptical about installing AUR packages as they took a long time to build and many times refused to build due to outdated PKGBUILD. I wish we had Chaotic-AUR earlier kudos to the Garuda Linux developers. + +Note that there are other variants of Pamac available in the AUR which support Flatpak and Snaps. But in this tutorial, I have mentioned the variant with only Appstream and AUR support. + +What’s your opinion on adding a 3rd party repos like Chaotic-AUR on Arch Linux? Which method would you use to install Pamac? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-pamac-arch-linux/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://wiki.manjaro.org/index.php/Pamac +[2]: https://manjaro.org/ +[3]: https://man.archlinux.org/man/libalpm.3.en +[4]: https://aur.archlinux.org +[5]: http://flatpak.org +[6]: https://snapcraft.io/ +[7]: https://wiki.archlinux.org/title/Pacman +[8]: https://itsfoss.com/pacman-command/ +[9]: https://aur.chaotic.cx/ +[10]: https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported +[11]: https://itsfoss.com/update-arch-linux/ +[12]: https://archlinux.org/groups/x86_64/base-devel/ +[13]: https://git-scm.com/ +[14]: https://aur.archlinux.org/packages/archlinux-appstream-data-pamac +[15]: https://aur.archlinux.org/packages/libpamac-aur +[16]: https://aur.archlinux.org/packages/pamac-aur +[17]: https://wiki.archlinux.org/title/AUR_helpers +[18]: https://wiki.archlinux.org/title/PKGBUILD +[19]: http://garudalinux.org +[20]: https://itsfoss.com/wp-content/uploads/2022/07/pamac-gui.png +[21]: https://itsfoss.com/wp-content/uploads/2022/07/pamac-cli-terminal.png From 535f084e565739524b047b1b525bbde7270daeb8 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:24:39 +0800 Subject: [PATCH 0531/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220725=20Koodo=20is=20an=20All-in-one=20Open=20Sou?= =?UTF-8?q?rce=20eBook=20Reader=20App=20for=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Open Source eBook Reader App for Linux.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md diff --git a/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md new file mode 100644 index 0000000000..4eb3d9c6d7 --- /dev/null +++ b/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md @@ -0,0 +1,106 @@ +[#]: subject: "Koodo is an All-in-one Open Source eBook Reader App for Linux" +[#]: via: "https://itsfoss.com/koodo-ebook-reader/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Koodo is an All-in-one Open Source eBook Reader App for Linux +====== + +There are [several ebook readers available for desktop Linux users][1]. + +Almost all distributions come with a document reader that can open PDF files. It may also support other file formats like epub or Mobi, but that’s not guaranteed. + +This is why specialized applications like [Foliate][2] and Calibre are needed to read and manage ebooks in various formats. + +Recently, I came across another open source software that boasts several exciting features for an ebook reader. + +### Koodo: It has all you can think of + +[Koodo][3] is an all-in-one open source ebook reader with features to help you better manage and read your ebooks. It is a cross-platform app you can download on Linux, Windows, and macOS. You can even [use it in a web browser][4]. + +The user interface looks modern, probably because it is an Electron app. You’ll have to import the books and add them to Koodo. It doesn’t import books by folders. You can select multiple files for import, though. Got too many books? Add some to your favorites for quick access. + +![Koodo ebook reader interface][5] + +I used the AppImage format, and for reasons unknown, it didn’t show the thumbnails for the file. + +![Koodo ebook reader dark mode interface][6] + +It supports popular ebook file formats like PDF, Mobi, and Epub. But it doesn’t end here. It also supports comic book formats like CBR, CBZ, and CBT. There is more. It can also read FictionBooks (.fb2), Markdown, and Rich Text Format (RTF), along with MS Office word documents (Docx). + +Apart from supporting the huge number of file formats, it also provides several features to improve your reading experience. + +You can highlight texts and annotate them with text notes. You can also search for selected text in the current document or on Google. + +![Annotate, highlight or translate selected text][7] + +The highlighted text and notes can be accessed from the sidebar in the main application window. + +There are options for text-to-speech and translating selected text. However, neither of the two features worked in my testing. I used the AppImage version of Koodo. + +Koodo supports various layouts. You can read the documents in single-column, two-column, or continuous scrolling layouts. For ePub and Mobi format, it automatically opens in a two-column layout. For PDF, single column layout is selected by default. + +You can customize the UI as per your liking. Change the fonts, size, paragraph spacing, text color, background color, line spacing, brightness, and more. + +![koodo additional features][8] + +Koodo supports night reading mode along with five different themes. You can switch between the themes as per your preference. + +You can also synchronize your books and reading data (like highlights, notes, etc.) across devices with Dropbox or other [cloud services][9] that support Webdav protocol. + +![You can backup your data in your preferred cloud service][10] + +### Getting Koodo on Linux + +If you want to experience Koodo for experimentation, you can try its online version. You get to use Koodo in a web browser. Your data is stored locally in the browser, and if you clean the browser cache, you lose the data (highlights, notes, etc. but not the books stored on your computer). + +[Try Koodo Online][11] + +If you like its features, you can opt to install Koodo on your computer. + +There are several options available for Linux users. You have deb file for Debian and Ubuntu-based distributions, RPM for Red Hat and Fedora and Snap, AppImage and ex file for all distributions. + +You can get the installer of your choice from the project’s homepage. + +[Download Koodo][12] + +### Conclusion + +Koodo is not perfect. It has a huge list of features, but not everything works flawlessly, as I found in my testing. + +Still, it’s a good application that has the potential to become popular among users. There are only a few applications that package so many features. + +Kudos to Koodo developer for creating a promising open source application for desktop users. + +You can [visit the project’s repository][13] to look into source code, report bugs, or show some love to developers by starring the project. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/koodo-ebook-reader/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-ebook-readers-linux/ +[2]: https://itsfoss.com/foliate-ebook-viewer/ +[3]: https://koodo.960960.xyz/en +[4]: https://reader.960960.xyz/#/manager/empty +[5]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-ebook-reader-interface.webp +[6]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-interface.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/koobo-ebook-reader-features.webp +[8]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-additional-features.webp +[9]: https://itsfoss.com/cloud-services-linux/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-backup-restore-feature.png +[11]: https://reader.960960.xyz/ +[12]: https://koodo.960960.xyz/en +[13]: https://github.com/troyeguo/koodo-reader From 88337805cbc4f1e7563e08b0be06becf6fe34b21 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:29:28 +0800 Subject: [PATCH 0532/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220727=206=20Tips=20and=20Tools=20to=20Enhance=20Y?= =?UTF-8?q?our=20Flatpak=20Experience=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nhance Your Flatpak Experience in Linux.md | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 sources/tech/20220727 6 Tips and Tools to Enhance Your Flatpak Experience in Linux.md diff --git a/sources/tech/20220727 6 Tips and Tools to Enhance Your Flatpak Experience in Linux.md b/sources/tech/20220727 6 Tips and Tools to Enhance Your Flatpak Experience in Linux.md new file mode 100644 index 0000000000..1363de2605 --- /dev/null +++ b/sources/tech/20220727 6 Tips and Tools to Enhance Your Flatpak Experience in Linux.md @@ -0,0 +1,192 @@ +[#]: subject: "6 Tips and Tools to Enhance Your Flatpak Experience in Linux" +[#]: via: "https://itsfoss.com/flatpak-tips-tweaks/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +6 Tips and Tools to Enhance Your Flatpak Experience in Linux +====== + +Slowly and steadily, [Flatpak][1] has a growing acceptance in the desktop Linux world. + +It is well integrated into Fedora and many other distributions like Linux Mint, elementary, Solus, etc. prefer it over Ubuntu’s Snap. + +If you love using Flatpak applications, let me share a few tips, tools, and tweaks to make your Flatpak experience better and smoother. + +### 1. Use Flathub to explore new Flatpak applications + +This one goes without saying. + +If you are looking for new applications in Flatpak packaging, browse the [Flathub website][2]. + +This is the official website from the Flatpak project and it lists and distributes a huge number of Flatpak applications. + +You can look for recommended apps in the “Editor’s choice” section, recently updated apps, new apps and popular apps. + +![Flathub website homepage][3] + +You can have the application screenshots, description, developer information, and installation instructions on the individual application webpages. + +**Bonus tip**: Make sure to add the Flathub repo in your system. Otherwise, you’ll see [“no remote refs found similar to flathub][4]” error while installing applications from Flathub. + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +### 2. Use Flatline extension to install Flatpak from the browser + +The Flathub website provides command line instructions to install the application. + +There is also an Install button but it doesn’t install the application for you. It downloads a .flatpakref file and then you’ll have to use the command line to install from the flatpakref file. + +![The install button doesn’t provide a quick installation by default][5] + +If you have to use the command line ultimately, it doesn’t make sense to download the fltapakref file. + +You can make things better by using [Flatline][6]. It’s a Mozilla Firefox extension and it makes that Install button useful by converting it into appstream link. One more reason to use Firefox? + +![Flatline browser extension][7] + +This way, when you click on the Install button for any application on the Flathub website, it will ask you to open the link in an XDG application like the Software Center. + +![You can choose to install Flatpak package in software center][8] + +This also means that you should have the Fltapak support integrated into the software center. + +### 3. Integrate Flatpak with the software center (for GNOME) + +Apart from Fedora, a handful of distributions provide Flatpak support by default. You can find and install Flatpak apps from the graphical software manager. + +Not all distros have that. If you are running some other distribution with GNOME desktop environment, you can enable Flatpak support in the software center. + +``` +sudo apt install gnome-software-plugin-flatpak +``` + +Note that Ubuntu has switched to Snap for the software center. The above command will also install a deb version of GNOME Software Center. You’ll have two software center applications in the system. + +If you enable the Flatpak support in the software, you can couple it with Flatline and install Fltapak apps from the web browser directly. + +Recently, there was an independent, standalone Flatpak app store called [Souk][9]. However, it is no longer actively developed. + +![Souk GUI software manager for Flatpak][10] + +There is also [Bauh][11] that can manage Flatpak, Snap and AppImages from a single interface. + +### 4. Manage Flatpak permissions graphically With Flatseal + +[Flatseal][12] is a graphical utility to review and modify your Flatpak applications’ permissions. This makes things a lot easier than going through the commands. + +![Control permissions of individual Flatpak apps][13] + +It lists all the installed Flatpak applications and shows what kind of permissions the selected application has. + +You may enable or disable the permissions. Please bear in mind that disabling some permissions might impact the normal functioning of the application. You should know what you are doing. + +You can install Flatseal using Flatpak, of course. + +``` +flatpak install flathub com.github.tchx84.Flatseal +``` + +### 5. Apply GTK system themes to Flatpak applications + +You might have already noticed that most Flatpak apps don’t change their appearance as per the current system theme. + +Why? Because Flatpak apps run inside a ‘container’ and don’t have access to the host filesystem, network, or physical devices. + +You can choose to install themes as Flatpak to solve this issue. However, your favorite theme might not be available in Flatpak format. + +Alternatively, you can make some manual effort and force the Flatpak applications to use a given theme. Here’s how to do that. + +**Step 1**: Give Flatpak access to the folder where theme files are kept: + +``` +sudo flatpak override --filesystem=$HOME/.themes +``` + +**Step 2**: List all the themes available in ~/.themes location and then provide the folder name of the selected theme to Flatpak: + +``` +sudo flatpak override --env=GTK_THEME=chosen-theme +``` + +![flatpak adwaita][14] + +![flatpak canta dark][15] + +If you change the system theme later, you can change the theme for Flatpak in the same manner. + +You can revert the changes using this command: + +``` +sudo flatpak override --reset +``` + +Read more about [applying GTK theme to Flatpak apps in this article][16]. + +### 6. Update Flatpak apps and clean them + +This is more for Flatpak unfriendly distributions like Ubuntu. If your distro doesn’t come baked in with Flatpak and you don’t have it integrated with the Software center, your installed Flatpak apps won’t be updated with system updates. + +You can update all your installed Flatpak apps simultaneously with: + +``` +flatpak update +``` + +![Update Flatpak applications][17] + +Not only it will update the applications, but it will also [remove any unused runtimes][18]. You**don’t need to run this command manually anymore**. + +``` +flatpak uninstall –unused +``` + +**Bonus tip**: While removing a Flatpak application, you can make it remove personal application data that are usually left behind in the home directory. + +``` +flatpak uninstall --delete-data package_name +``` + +### Conclusion + +I deliberately didn’t add [more Flatpak command tips][19] though I was tempted to. Probably there are a few more applications and tweaks for Flatpak packages. I shared my favorite ones. + +If you know any good tips related to Flatpak packages, do share them with us in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/flatpak-tips-tweaks/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/what-is-flatpak/ +[2]: https://flathub.org/home +[3]: https://itsfoss.com/wp-content/uploads/2022/07/flathub-website.png +[4]: https://itsfoss.com/no-remote-ref-found-flatpak/ +[5]: https://itsfoss.com/wp-content/uploads/2022/07/apps-on-flathub.png +[6]: https://addons.mozilla.org/en-US/firefox/addon/flatline-flatpak/ +[7]: https://itsfoss.com/wp-content/uploads/2022/07/flatline-extension.png +[8]: https://itsfoss.com/wp-content/uploads/2022/07/installing-flatpak-from-web-browser.png +[9]: https://gitlab.gnome.org/haecker-felix/souk +[10]: https://itsfoss.com/wp-content/uploads/2022/07/souk-app-details.png +[11]: https://itsfoss.com/bauh-package-manager/ +[12]: https://flathub.org/apps/details/com.github.tchx84.Flatseal +[13]: https://itsfoss.com/wp-content/uploads/2021/11/flatpak-permission-control-flatseal.png +[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/flatpak-adwaita.webp?ssl=1 +[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/flatpak-canta-dark.webp?ssl=1 +[16]: https://itsfoss.com/flatpak-app-apply-theme/ +[17]: https://itsfoss.com/wp-content/uploads/2022/07/update-flatpak-applications.png +[18]: https://blogs.gnome.org/mwleeds/2021/01/11/cleaning-up-unused-flatpak-runtimes/ +[19]: https://docs.flatpak.org/en/latest/tips-and-tricks.html From 52aef6a9f110c691789bdd256ccd7fc31692bca7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:34:55 +0800 Subject: [PATCH 0533/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220725=20In=20light=20Of=20The=20Log4j=20Incident,?= =?UTF-8?q?=20Google=20Supports=20Calls=20For=20Better=20Open=20Source=20S?= =?UTF-8?q?ecurity.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s Calls For Better Open Source Security.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md diff --git a/sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md b/sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md new file mode 100644 index 0000000000..9eb404d449 --- /dev/null +++ b/sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md @@ -0,0 +1,42 @@ +[#]: subject: "In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security" +[#]: via: "https://www.opensourceforu.com/2022/07/in-light-of-the-log4j-incident-google-supports-calls-for-better-open-source-security/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security +====== +![google][1] + +In response to recent recommendations from the US government to take action against risks connected to the Log4j vulnerability, Google said it supports the advisories and detailed its own defence strategy. In a recent assessment on the Log4j vulnerability, the U.S. Department of Homeland Security (DHS) asked the entire sector to band together and strengthen cybersecurity precautions, warning that it might remain undetected on unpatched endpoints for up to 10 years. + +“We welcome the U.S. Government’s work to improve the nation’s cybersecurity, including through establishment of the CSRB to review incidents like log4j,” Google said in a [blog post][2]. + +The report, among other things, provided three recommendations for the industry’s future actions: promoting the adoption of best practises; improving the software ecosystem; and making long-term investments in digital security. Google stated that it will continue to make security a “cornerstone of our product strategy” and that it will share its internal frameworks and best practises with others in order to advance current security hygiene best practises. + +In an effort to spur industry-wide discussion and advancement on the security and sustainability of the open-source ecosystem, the company stated “We partner closely with industry stakeholders to identify and address vulnerabilities in the ecosystem, and share best practises on how to address the latest security threats”. + +When it comes to creating a better software environment, Google sees itself as a market leader, claiming that it promotes, instigates, and funds initiatives and programmes that allow everyone to participate in and contribute to the global open source ecosystem. + +And lastly, Google has significant investment intentions for the future. It promised a $10 billion investment in cybersecurity last year that will span five years and include a $100 million investment in outside organisations like OpenSSF. + +“We welcome the chance to participate in future review board processes, and look forward to working alongside others to continue to protect the nation’s software supply chain ecosystem,” the announcement concludes. “It’s clear that public and private sector stakeholders learned a great deal from log4j and the report provides an in-depth review of shared challenges and potential solutions. Now, we must act on those learnings to improve the security of the entire ecosystem.” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/in-light-of-the-log4j-incident-google-supports-calls-for-better-open-source-security/ + +作者:[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/07/google-e1658741796206.jpg +[2]: https://cloud.google.com/blog/products/identity-security/google-supports-csrb-call-improve-open-source-security From 8c399f00af7a5590759c03e45b63fa342e8f12a2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:36:10 +0800 Subject: [PATCH 0534/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220726=20Open=20Source=20Software-=20Is=20There=20?= =?UTF-8?q?an=20Easy=20Path=20to=20Success-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ware- Is There an Easy Path to Success-.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md diff --git a/sources/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md b/sources/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md new file mode 100644 index 0000000000..b9c7838853 --- /dev/null +++ b/sources/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md @@ -0,0 +1,100 @@ +[#]: subject: "Open Source Software: Is There an Easy Path to Success?" +[#]: via: "https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/" +[#]: author: "Jules Graybill https://www.opensourceforu.com/author/jules-graybill/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open Source Software: Is There an Easy Path to Success? +====== +There’s so much that goes on behind the scenes while developing open source software. So how does one make an open source project successful? Is there a shortcut? This article indicates there isn’t one. + +![team work working together][1] + +Open source has become all the rage now. Many entrepreneurs are drawn to it by the allure of quick success. But the truth is, there is no easy path to such success. There is no one thing that you can do to get all of open source right. + +In fact, a lot of the challenges that companies face early on are not technology challenges, but are people and cultural challenges. + +There are many layers of open source that need to be worked on to build a project that can become a hit in the market. And maintaining that success is an ongoing process. But at the crux of it all lies finding the right answer to a very basic question: what exactly is open source? + +### Open source is the code + +For many new users who may not be fully aware of the layers that make open source, the answer is fairly simple: open source is software! And that is not wrong, of course, since that is how most of us are using it. But there’s just so much more to open source than merely being touted as software. + +The essence of any open source project still remains the code. It is what makes the project special and useful for the user. When you’re working in open source, the code is just as much a part of the product as the software. + +Developing a project from the ground up, or even creating a fork of an existing project, requires thousands and thousands of lines of code to be written, even while handling such a large and complex codebase. Especially in the case of creating a fork, care must be taken to remove any prior licences, marketing material, or anything that might not be useful for the user anymore. After all, it is the features of a project that attract its user base and what retains it. When end users are deciding whether to use open source software, they will read the source code, and what they see there should be something that builds their confidence. + +### Open source is the community + +How you engage with the community is also a part of the task of building a product. Building a community and maintaining a healthy relationship with it is one of the most crucial aspects of open source, but is also often the hardest for most leaders as there is very little one can do to control it. One can try to lay the foundation and can be supportive but, ultimately, it’s the people who decide whether they want to join a community. + +It is important to maintain a level of transparency with the community and keep it in the loop. The community can get involved at any step that it wants to. It’s really important that you show most of your work to the community while you are doing it, apart from things that need to be done confidentially, like setting up security, signing certificates, branding, and so on. This helps in winning its trust because, in the end, it is the community that you are liable to, and it can make or break your project. This may make the project work a lot more deliberate, slower and exposed, but it works well in the end. + +Making your work-in-progress so open can seem daunting, especially when you are worried about the repercussions of a delay in updates or having a bug. Yet, making the community members privy to your moves will not only help you build a trustful relationship with them, but also make them feel appreciated. + +However, making your workflow public will also invite scrutiny from the community members, who will often have their opinions and offer you their feedback. Taking note of this feedback is important, because that is how you can make your open source project truly for them. They are the end users and their feedback will reflect how they see your project panning out for them in the long run, and ultimately, how successful and mainstream your software becomes. + +As an example, when we are thinking about a new feature, we publish a request for comments at RFC. We get a lot of feedback, and we have to think hard about how we can incorporate it. + +Since open source is a largely collaborative work, there will be initiatives by the community to offer their support in making the project the best version possible. Not all of it will work out. But as long you are listening, the community will feel involved. + +Engaging with the community has its pitfalls too. There may be differences of opinion within the community, and also between the maintainer and the community, especially when it comes to the matter of governance. Governance is something which is really important for an open source project to have. That is why it is important to have clear documented governance practices, which also include the community. + +Community governance is a tough, but essential, nut to crack. Delegation in itself requires a lot of trust. For a project with millions of lines of code, it can be cumbersome to find someone in the community who can meaningfully lead it. But open source projects often consist of smaller sub-projects, which are better left handled by someone from the community. This helps the community to be more closely involved too. + +| - | +| :- | +| Building a community always has its highs and lows. Let me list some of the tricks that helped maintain a healthy balance between the community’s and my team’s vision. +State your principle: Especially in the early stage of the open source project when the source code is still coming together and things are not exactly going perfectly, it is hard for somebody coming from outside to really understand why you are making the decisions that you are making. Communicating the principles on which you take actions helps you to be upfront about your thought process so that the community does not interpret things incorrectly. +This practice is really helpful. It is also important to follow through and show that when you make a decision, it is guided by one of these principles. +Decide how you are going to collaborate: This may be through channels like Discord, Slack, or simply emails. But if you try to use all of them, you will immediately diffuse the community. People will be communicating with each other all over the place. Choose one or two collaboration tools, and really invest in them for synchronised communication. +Treasure the feedback: Listen to feedback from the community and act on it. Show tat you care about what the community says, even if it requires you to make tough decisions. +Maintain a code of conduct: If you interact with a community, you need to define what is going to be acceptable conduct. Having that in place helps warn people in case they go out of line. You can avoid a lot of trouble if you can just define this early on. +Think about how you will distribute your project: There may be instances when you may not be willing to make your project available to the public because you do not have a certain component in place, or you have features you may not want to make accessible to everyone. Creating distribution terms that suit your preference without compromising on what the user wants is key, so that people who want certain features can access these while those who can do without them also have the option to start using the project without having to compromise. +Avoid polls as much as you can: This is because, often, certain members vote for an option that may not be what the majority goes with. This can create a sense of failure in these members and make them feel excluded from the project. Instead, try asking them what problems they would like to be solved, and then try to invent a solution that does not involve trade-offs. | + +**State your principle:** Especially in the early stage of the open source project when the source code is still coming together and things are not exactly going perfectly, it is hard for somebody coming from outside to really understand why you are making the decisions that you are making. Communicating the principles on which you take actions helps you to be upfront about your thought process so that the community does not interpret things incorrectly. + +This practice is really helpful. It is also important to follow through and show that when you make a decision, it is guided by one of these principles. + +*Decide how you are going to collaborate:* This may be through channels like Discord, Slack, or simply emails. But if you try to use all of them, you will immediately diffuse the community. People will be communicating with each other all over the place. Choose one or two collaboration tools, and really invest in them for synchronised communication. + +*Treasure the feedback:* Listen to feedback from the community and act on it. Show tat you care about what the community says, even if it requires you to make tough decisions. + +**Maintain a code of conduct:** If you interact with a community, you need to define what is going to be acceptable conduct. Having that in place helps warn people in case they go out of line. You can avoid a lot of trouble if you can just define this early on. + +*Think about how you will distribute your project:* There may be instances when you may not be willing to make your project available to the public because you do not have a certain component in place, or you have features you may not want to make accessible to everyone. Creating distribution terms that suit your preference without compromising on what the user wants is key, so that people who want certain features can access these while those who can do without them also have the option to start using the project without having to compromise. + +*Avoid polls as much as you can:* This is because, often, certain members vote for an option that may not be what the majority goes with. This can create a sense of failure in these members and make them feel excluded from the project. Instead, try asking them what problems they would like to be solved, and then try to invent a solution that does not involve trade-offs. + +### Open source is licensing + +Open source is about giving your users autonomy over how they want to use your software, and licensing provides just that. What’s great about an open source licence is that regardless of what you as a maintainer do, all your end users and stakeholders can always maintain a certain set of forks, which are important forks. + +Licensing gives people the option to take the project into a different direction if they deem it fit. They have the right to create a fork, which results in a lot of amazing software being developed. Maintainers have more responsibility to listen to their community members and to run the project in a way that works for them. + +It’s advisable to make use of the many licences available instead of setting your own terms separately, simply because stakeholders and users are usually familiar with commonly used licences, so you do not have to waste time explaining them. This also helps you to focus your energy on the other parts of the project. + +### Finally, open source is a movement + +Open source involves many, many dimensions and people. Most importantly, it is about understanding what these people want and creating an environment that encourages collaboration and transparency. It is about building communities that help to build the open source project the way they want it to be. The more opportunity maintainers create to let them do that, the better the product is and the more successful it gets. + +Open source is all of these things and the more expansive view you take, the better you can leverage it. Think about how you can excel in every dimension of open source because, at the end of the day, there is no easy path to open source success. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/ + +作者:[Jules Graybill][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/jules-graybill/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/07/team-work-working-together-1.jpg From eba503e00f543f440c3b42cfe0c14863256a794e Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:38:26 +0800 Subject: [PATCH 0535/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220727=20An=20Introduction=20to=20Sentiment=20Anal?= =?UTF-8?q?ysis=20Using=20NLP=20and=20ML.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to Sentiment Analysis Using NLP and ML.md | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 sources/tech/20220727 An Introduction to Sentiment Analysis Using NLP and ML.md diff --git a/sources/tech/20220727 An Introduction to Sentiment Analysis Using NLP and ML.md b/sources/tech/20220727 An Introduction to Sentiment Analysis Using NLP and ML.md new file mode 100644 index 0000000000..e2ab6ad78c --- /dev/null +++ b/sources/tech/20220727 An Introduction to Sentiment Analysis Using NLP and ML.md @@ -0,0 +1,283 @@ +[#]: subject: "An Introduction to Sentiment Analysis Using NLP and ML" +[#]: via: "https://www.opensourceforu.com/2022/07/an-introduction-to-sentiment-analysis-using-nlp-and-ml/" +[#]: author: "Mir H.S. Quadri https://www.opensourceforu.com/author/shah-quadri/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An Introduction to Sentiment Analysis Using NLP and ML +====== +Would you like to understand how Google uses NLP and ML for creating brilliant apps such as Google Translate? Would you like to build the ‘next big thing’ in the natural language understanding space? Then this article is for you. It introduces you to sentiment analysis of text based data with a case study, which will help you get started with building your own language understanding models. + +![An-Introduction-to-Sentiment-Analysis-Using-NLP-and-ML][1] + +We live in the age of Big Data. There is no shortage of text based data. If anything, one can argue that we have too much of it. Everything, from tweets on Twitter to comments on YouTube to customer reviews on Amazon, can be considered as text based data. As human beings, it’s easy for us to read a piece of text in a language that we are familiar with, and understand what emotions are being expressed and what specifications are being shared. However, it’s not as simple for a machine such as a computer to do the same. + +### Natural language understanding + +While computers have been able to deconstruct and analyse syntactic rules of a language for decades, with software such as MS Word being able to recognise spelling and punctuation errors, semantic understanding of a language is a whole different ball game. This is where natural language processing (NLP) and machine learning come into the picture. For decades, researchers have been working hard to make machines that are able to understand what is being expressed and the underlying emotions that are being exhibited in a human language. Although the techniques for creating such a technology have been known for quite a while, i.e., smart algorithms that can learn from data, what was lacking was the real-time ‘data’ required to train the algorithms. Additionally, there was an element of computational complexity that required smarter devices with faster processing speed to be able to analyse a piece of text in real-time and share the results instantly. + +In 2022, we have the data, the speed, and the algorithms to finally make this happen. The past decade (2010 onwards) has been monumental for natural language processing. With the advent of cloud technology, coupled with Big Data frameworks, scientists have made immense strides in achieving ‘natural language understanding’. This has been achieved by using natural language processing in conjunction with smart machine learning algorithms that can work with both structured and unstructured data. + +### Sentiment analysis of text + +In the field of natural language processing of textual data, sentiment analysis is the process of understanding the sentiments being expressed in a piece of text. As humans, we communicate both the facts as well as our emotions relating to it by the way we structure a sentence and the words that we use. This is a complex process that, albeit seems simple to us, is not as easy for a computer to deconstruct and analyse. Sentiment analysis of text requires using sophisticated natural language processing techniques coupled with advanced machine learning algorithms that have the ability to learn from structured as well as unstructured data. + +There is huge economic value in solving the problem of sentiment analysis in text. Companies that sell products hugely depend on the customer reviews. If there are tools and mechanisms in place by which they are able to analyse the customer’s sentiments, the sellers can get a granular look at the issues that their product is facing. This removes a lot of the human labour involved in tasks such as this, and also optimises the process for a myriad of other features such as product recommendations, increasing user acquisition while decreasing user attrition rate. For social media companies, natural language understanding is crucial in identifying posts with abuse, hate-speech, inciteful content and spam. + +### Types of sentiment analysis for text based data + +Sentiment analysis of text is a broad based term that covers many different techniques used for specific types of sentiment analysis. In general, it focuses on understanding the polarity of a given piece of text, i.e., positivity, negativity or neutrality conveyed in the text. However, there can be more depth to understanding the sentiments conveyed in the text. + +*Graded sentiment analysis:* Graded sentiment analysis takes the generalised search for polarity in text to a deeper level. For example, let us say A and B are two sample texts. It is possible that both convey a negative sentiment. But it is also possible that A is more negative than B. In such a case, graded sentiment analysis can be used to not only understand the polarity of a piece of text but also grade it for the level of polarity it holds, such as: + +* Very negative +* Negative +* Somewhat negative +* Somewhat neutral +* Neutral +* Very neutral +* Somewhat positive +* Positive +* Very positive + +*Emotion and sentiment analysis:* In some cases, understanding the polarity of a text is not enough. You may also like to understand the specific emotions that are being conveyed in it. For instance, a text can be negative but, specifically, it may express more sadness than anger or vice versa. This can be crucial when trying to detect hate speech on social media or to understand how your product made your customer feel on an e-commerce platform. + +Emotion detection in sentiment analysis can be done to understand emotions expressed in text such as: + +* Anger (Negative) +* Sadness (Negative) +* Joy (Positive) +* Happiness (Positive) +* Gratitude (Neutral) +* Honesty (Neutral + +*Aspect based sentiment analysis:* In certain cases, it is not enough to understand the polarity and emotion in a piece of text; we also require some context in the form of aspects or features. For instance, it isn’t enough for a seller selling a washing machine on Amazon to know whether a user review contained negativity and anger. The seller would instead like to know the specific features or aspects of the product that actually caused the anger or frustration in the customer. Was it the new ‘timer system’ or the ‘product size’ or the ‘product design’ that caused the issue for the customer? These are all aspects of the washing machine, and if the computer is able to understand not just the sentiments of the customer but also the reasons for the sentiment, this can provide the seller with a lot more context. Amazon reviews are one of many use cases for aspect based sentiment analysis. + +*Multilingual sentiment analysis:* Things can get very complicated very fast for machine learning algorithms when you introduce more than one language into the mix. Every language has its own set of rules and methods of expression. There may be overlap in certain regards but every language brings its own unique baggage. For instance, both Spanish and French have their roots in Latin. However, sentence construction and the spelling of words have their own methods and rules. How is a computer supposed to understand the sentiments of a text when a bilingual user uses some words in French and other words in Spanish? In India we tend to write ‘Hindi’ and ‘Urdu’ using the English alphabet. From texting to making comments on YouTube, this is a very common practice in India. To understand such a piece of text can be extremely challenging. This is where multilingual sentiment analysis comes in. Breakthroughs are being made every day but there is a lot that still needs to be done in this particular field. + +### How to use NLP and ML for sentiment analysis of text based data + +Now that we have a clear understanding of what NLP is and why it is a crucial field of research in AI and ML, we shall now shift our focus to discussing how you as a beginner in NLP and ML can get started by building your own language understanding models. + +In sentiment analysis using AI, building a language understanding model requires three things: + +1. A specific problem to solve +2. A relevant data set +3. An appropriate machine learning algorithm + +In this article, we will use a case study to show how you can get started with NLP and ML. The example used below is super simple and easy to follow. But before we get started with the case study, let me introduce you to the Multinomial Naïve Bayes algorithm that we shall be using to build our machine learning model. + +### The Multinomial Naïve Bayes algorithm + +The Naïve Bayes algorithm is a probabilistic classifier used for predictive analysis. It is simpler as compared to other algorithms and has been known to have a higher success rate. Naïve Bayes makes the assumption that all input attributes are conditionally independent. It is highly scalable and works on the principle of learning by doing. + +It takes preprocessed data with the extracted features required as input for training. Once trained, it can be used to provide polarity of a given input text, i.e., if the text is positive, negative or neutral. + +Bayes theorem states that the posterior probability P(A|B) is calculated from P(A), P(B), and P(B|A). Naive Bayes classifiers assume that the effect of the value of a predictor (y) on a given class (X) is independent of the values of other predictors. What makes Naïve Bayes distinct from the more traditional Bayes Belief Networks (BBN) is that it assumes complete conditional independence of all input attributes. The Bayes theorem is given as: + +![Equation][2] + +where A and B are two events that are independent of each other and make an equal contribution to the outcome. + +If we generalise the Naïve Bayes algorithm, we get: + +![][3] + +where y is the class variable and X is the feature vector of size ‘n’, i.e., X = (x1, x2, x3, …, xn). + +In sentiment analysis, for certain cases, finding the word frequency or discrete count can be beneficial in increasing the accuracy of the machine learning model. In such cases, Multinomial Naïve Bayes, a variant of the standard Naïve Bayes can be used. In MNB, the assumption is that the distribution of each feature, i.e., P(fi|C), is a multinomial distribution. + +Multinomial distribution is defined as: + +![][4] + +where n is the total number of events, n1 … nx are the number of outcomes for each event, and P1 … Px are the probabilities of the occurrence of each event. + +### Case study: Sentiment analysis of statements made in ‘finance’ related news using the Multinomial Naïve Bayes algorithm + +For the purpose of this case study, I have made use of a data set that is freely available on Kaggle. This is a simple data set that is extremely ideal for beginners who are just getting started with sentiment analysis. It contains two features, namely, the sentences and their corresponding sentiments. The sentiment for each sentence can either be positive, negative or neutral. This data set contains 5322 unique sentences, which are plenty for training and testing our algorithm. + +You can download the data set for free from *https://www.kaggle.com/code/turankeskin/financialsenti/data*. Now place it in the same folder as your notebook or Python file to make things easier. + +*Step 1:* We will start by importing the Python libraries necessary for this project: + +``` +import numpy as np +import pandas as pd +import seaborn as sns +import matplotlib.pyplot as plt +import re +import string +import nltk + +nltk.download(‘stopwords’) +nltk.download(‘punkt’) +nltk.download(‘wordnet’) +nltk.download(‘averaged_perceptron_tagger’) +nltk.download(‘maxent_ne_chunker’) +nltk.download(‘words’) + +from wordcloud import WordCloud + +from nltk.tokenize import sent_tokenize, word_tokenize +from nltk.corpus import stopwords +from nltk.stem import WordNetLemmatizer, PorterStemmer +from nltk import pos_tag, ne_chunk +from nltk.chunk import tree2conlltags + +import warnings +warnings.filterwarnings(“ignore”) +``` + +*Step 2:* Using pandas, we will read the *csv* file and create an instance: + +``` +Data = pd.read_csv(“/kaggle/input/financial-sentiment-analysis/data.csv”) +df = data.copy() +``` + +*Step 3:* To get an idea of how many positive, negative and neutral sentences we have in the data set, we are going to plot the data into a bar chart: + +``` +print(df[“Sentiment”].value_counts()) +sns.countplot(x=”Sentiment”,data=df); +``` + +Figure 1 shows the distribution of positive, negative and neutral sentences in the data set. + +![Figure 1: Distribution of positive, negative and neutral sentences in the data set][5] + +*Step 4:* Next, we will start with cleaning and pre-processing the text before applying the MNB algorithm to boost the accuracy and precision of the training data: + +``` +stop_words = set(stopwords.words(“english”)) +df[“Sentence”] = df[“Sentence”].str.replace(“\d”,””) +def cleaner(data): + + # Tokens + tokens = word_tokenize(str(data).replace(“’”, “”).lower()) + + # Remove Puncs + without_punc = [w for w in tokens if w.isalpha()] + + # Stopwords + without_sw = [t for t in without_punc if t not in stop_words] + + # Lemmatize + text_len = [WordNetLemmatizer().lemmatize(t) for t in without_sw] + # Stem + text_cleaned = [PorterStemmer().stem(w) for w in text_len] + + return “ “.join(text_cleaned) +df[“Sentence”] = df[“Sentence”].apply(cleaner) +``` + +*Step 5:* Now we need to filter out the rare words that are used in the sentences. + +``` +rare_words = pd.Series(“ “.join(df[“Sentence”]).split()).value_counts() +rare_words = rare_words[rare_words <= 2] + +df[“Sentence”] = df[“Sentence”].apply(lambda x: “ “.join([i for i in x.split() if i not in rare_words.index])) +``` + +*Step 6:* As a next step, we can generate a word cloud to see the most commonly occurring words in the text. This is an option step and more for our own understanding of the data set than anything else. Figure 2 shows the word cloud generated as a result of the code in Step 6. + +![Figure 2: Word cloud showing 500 most commonly used terms in the data set][6] + +``` +plt.figure(figsize=(16,12)) +wordcloud = WordCloud(background_color=”black”,max_words=500, width=1500, height=1000).generate(‘ ‘.join(df[‘Sentence’])) +plt.imshow(wordcloud, interpolation=’bilinear’) +plt.axis(“off”) +plt.show() +``` + +*Step 7:* Before we execute the algorithm, we need to divide the data set into two parts. One part will be used for training the algorithm and the other for testing it. + +``` +from sklearn.model_selection import train_test_split +from sklearn.metrics import confusion_matrix,classification_report,accuracy_score +from sklearn.naive_bayes import MultinomialNB + +X = df[“Sentence”] +y = df[“Target”] + +X_train,X_test,y_train,y_test = train_test_split(X,y, test_size = 0.25,random_state= 42,stratify=y) +``` + +*Step 8:* Finally, we will execute the Multinomial Naïve Bayes algorithm on the training data: + +``` +nb_model = MultinomialNB() +nb_model.fit(X_train_count,y_train) +``` + +*Step 9:* Let us evaluate the performance of the trained MNB algorithm using the test data: + +``` +nb_pred = nb_model.predict(X_test_count) +nb_train_pred = nb_model.predict(X_train_count) +print(“X Test”) +print(classification_report(y_test,nb_pred)) +print(“X Train”) +print(classification_report(y_train,nb_train_pred)) +``` + +The output of the code above has been shown in Figure 3. We have successfully trained and tested the Multinomial Naïve Bayes algorithm on the data set, which can now predict the sentiment of a statement from financial news with 80 per cent accuracy. + +![Figure 3: Results from testing the trained MNB algorithm][7] + +*Step 10:*We can visualise these results in the form of a heat map for more clarity: + +``` +plt.figure(figsize=(8,8)) +sns.heatmap(confusion_matrix(y_test,nb_pred),annot = True,fmt = “d”) +``` + +Figure 4 shows the results of the MNB algorithm in the form of a heat map. + +![Figure 4: MNB algorithm accuracy for data set][8] + +*Step 11:* We can also visualise these results using a precision-recall curve: + +``` +from yellowbrick.classifier import PrecisionRecallCurve +viz = PrecisionRecallCurve(MultinomialNB(), + classes=nb_model.classes_, + per_class=True, + cmap=”Set1”) +viz.fit(X_train_count,y_train) +viz.score(X_test_count, y_test) +viz.show(); +``` + +Figure 5 shows the precision-recall curve of the MNB algorithm. + +![Figure 5: Precision-recall curve of the MNB algorithm][9] + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/an-introduction-to-sentiment-analysis-using-nlp-and-ml/ + +作者:[Mir H.S. Quadri][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/shah-quadri/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/An-Introduction-to-Sentiment-Analysis-Using-NLP-and-ML.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Equation.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Equation-2-3.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Equation-3.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Distribution-of-positive-negative-and-neutral-sentences-in-the-data-set-3.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Word-cloud-showing-500-most-commonly-used-terms-in-the-data-set.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Results-from-testing-the-trained-MNB-algorithm.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-4-MNB-algorithm-accuracy-for-data-set.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-5-Precision-recall-curve-of-the-MNB-algorithm.jpg From 898bb6f4b8854edcbcbf911c338c938ddecb815b Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:39:49 +0800 Subject: [PATCH 0536/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220725=20Feren=20OS=20Review-=20Clever=20KDE=20Dis?= =?UTF-8?q?tro=20for=20Easy=20Migration=20from=20Windows.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Distro for Easy Migration from Windows.md | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 sources/tech/20220725 Feren OS Review- Clever KDE Distro for Easy Migration from Windows.md diff --git a/sources/tech/20220725 Feren OS Review- Clever KDE Distro for Easy Migration from Windows.md b/sources/tech/20220725 Feren OS Review- Clever KDE Distro for Easy Migration from Windows.md new file mode 100644 index 0000000000..9407901e3e --- /dev/null +++ b/sources/tech/20220725 Feren OS Review- Clever KDE Distro for Easy Migration from Windows.md @@ -0,0 +1,141 @@ +[#]: subject: "Feren OS Review: Clever KDE Distro for Easy Migration from Windows" +[#]: via: "https://www.debugpoint.com/feren-os-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Feren OS Review: Clever KDE Distro for Easy Migration from Windows +====== +A review of Feren OS – a KDE Plasma and Ubuntu fusion, specially designed for Windows users to help them migrate. + +Over the years, many readers commented about Feren OS and its advantages on this website. I never got a chance to try this distribution in terms of its benefits and why it stands out among hundreds of distros. + +So, here’s a review of the great Feren OS. + +### Feren OS Review + +First and foremost, its creators designed and marketed it as an ideal replacement for Windows and macOS. At its core, it’s based on Ubuntu LTS with a base KDE Plasma desktop and additional tweaks. However, it does bring several goodies specially designed for Windows users. A lot on that a little later. Let’s download and install it. + +#### Download and Install + +The Feren OS (20.04) ISO file is about 2.5 GB, and it has only one variant for KDE Plasma – which is the only offering. However, the download took around 6 hours from SourceForge. + +A few interesting things happened when I booted this up in a VM ([virt-manager][1]). During my years of [distro review][2], I haven’t seen any distro do this. + +First, the LIVE medium understood that I was using the virtual machine and changed the compositor by itself to Xrender for better performance in VM. Second, it also gave the option to install guest additions for VirtualBox and VM Tools for VM Ware for additional functionalities. + +![Virtual Machine detected by Feren OS installer][3] + +Moreover, Feren OS gave options to transfer files from the Windows partition before installing the system! And an option to choose the desktop layout if you are installing it on a touch-based device. + +![You can take backups of Windows data before install][4] + +The installer is Calamares and not Ubuntu’s Ubiquity, although it depends on Ubuntu LTS. While installing the system, Feren OS doesn’t do the account creation, keyboard and other selections. It prompts you for user account creation and additional info after the first reboot and post-installation. Fedora Linux workstation edition does this via the Anaconda installer. + +Apparently, it is probably nothing. But from a Windows user’s perspective, an “easy install” experience is important, and I believe the team made an excellent decision on this. + +Finally, the installation went smooth, and no such surprises there. + +#### First boot and looks + +During the first boot, you need to set up the user accounts and other initial settings. The wizard gives you options to choose the light/dark theme, desktop layouts and different initial configs. This is a nice touch and looks professional. + +The KDE Plasma desktop is nice and clean with the pre-configured taskbar and the Breeze theme. The taskbar has the application menu on the left side. In the middle of the taskbar, you find the shortcut to Vivaldi, File manager and homegrown Store. And at the right is a traditional system tray. + +![Feren OS Desktop][5] + +Feren OS pre-loads a good set of Plasma Global Themes other than the usual Breeze variants. All of them are perfect and give your desktop a nice touch with just one click. As of the current version, you get Feren OS, Hooman, Dooars and Mac n’ Cheese theme. In addition, you also can get the Tablet and Classic settings of the desktop. It also features the Inspire icon theme and DMZ cursor theme by default. + +#### Workspaces and Full-screen Application View + +One of the unique features I want to highlight is the default workspace configuration that Feren OS brings. By default, there are four desktops to work with. At the taskbar, there is an icon which brings up the new workspaces in the KDE Plasma desktop. + +![Feren OS – Default four desktops][6] + +If you apply the pre-defined macOS theme, the application view is quite spectacular (which is a KDE widget, btw). It even searches the apps and individual settings when you start typing. See the image below. + +![Fullscreen app menu with dynamic search][7] + +Also, the global menu gives you the extra edge and precious screen space for your workflow. + +#### Native and Installed Applications + +Let’s talk about some exciting app choices that Feren OS installs by default. + +Although it’s based on KDE Plasma, some apps are chosen carefully based on their features and performances. For example, the file manager is Nemo instead of Dolphin, which is a good choice since Nemo is an awesome file manager. + +In addition, Feren OS packages Geary [email desktop client][8], GDebi package manager, Timeshift backup utility, and VLC Media player – some of the essential non-KDE Apps. + +The native apps are quite interesting. + +A native app called “Store” manages application search, installation and uninstall. It’s a homegrown tool which looks similar to GNOME’s Software. It supports usual categories and one-click installation. However, it seems it doesn’t support managing software sources. I belives that’s the reason Synaptic package manager is installed by default. + +![Natively designed Store manager][9] + +Other than that, there is an app, “Web Browser Manager”, which lets you install additional browsers with just one click. It’s interesting to see a dedicated app to manage just the web browsers. + +#### A note about the Transfer Tool + +Since its target audiences are Windows users, it brings a dedicated tool to transfer data from your Windows partitions and helps you to take backups to a custom target drive or device. The tool can easily detect generic Windows folders such as Documents, Users, Pictures, Videos etc. + +![Feren OS Transfer Tool][10] + +It’s a handy tool if you want a quick backup of your Windows partition. More importantly, you can use this in a LIVE medium without installing Feren OS. + +#### Performance + +You might have guessed about FerenOS’s performance as it’s based on Ubuntu LTS and KDE Plasma desktop. The performance, in simple words, is the same as that of Kubuntu. + +In an idle state (i.e. desktop is boot and kept inactive), it consumes around 1.8 GB of memory, and the CPU is at 4% to 8%. The latte dock consumes most system resources and plasma desktop, followed by the KWin. This is when the macOS theme is enabled. + +![Feren OS – Performance at Idle State][11] + +Next, I make it run through heavy workload situations with one instance each for File manager, media player, Vivaldi browser, image editor, LibreOffice and Console application. At this heavy performance stage, Feren OS consumes around 2.1 GB of system memory, and the CPU is hovering at 8 to 10 %. + +![Feren OS – Performance at Heavy workload State][12] + +I think it’s an impressive performance metric in the heavy workflow state. I was expecting a little higher memory and CPU consumption. + +The only reason I believe the performance is better in a heavy workflow state is not to use Firefox or Chrome. Vivaldi is performing better in the memory utilization space than that Firefox or Chrome. + +### Wrapping Up + +Feren OS is one of those Linux distros which packs a default look with Stability together. It’s one of the “not-so-popular” & mainstream distros with many prospects. Its unique way of implementing several critical items, from installation to the first experience for a new or migrated Windows user, is a great touch. + +Besides, its in-house apps and utilities are one of the best implementations for a distro targeted at Windows users. And the Ubuntu LTS base gives them an edge over the players. + +The only drawback I can see is the major release is a little delayed. For example, the Ubuntu 22.04 LTS version is not yet out. Perhaps the delay is because of a small dev team. + +But, besides that, it’s a perfect and ready-to-use daily driver. You may give it a try. + +You can download Feren OS from the [official website][13]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/feren-os-review/ + +作者:[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/virt-manager/ +[2]: https://www.debugpoint.com/tag/linux-distro-review +[3]: https://www.debugpoint.com/wp-content/uploads/2022/07/Virtual-Machine-detected-by-Feren-OS-installer.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/07/You-can-take-backups-of-Windows-data-before-install.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Desktop.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Default-four-desktops.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Fullscreen-app-menu-with-dynamic-search.jpg +[8]: https://www.debugpoint.com/best-email-client-linux-windows/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/Natively-designed-Store-manager.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Transfer-Tool.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Performance-at-Idle-State.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Performance-at-Heavy-workload-State.jpg +[13]: https://ferenos.weebly.com/get-feren-os.html From b3bd364685dc338db4331cdc7216f796c282cbd4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:41:34 +0800 Subject: [PATCH 0537/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220724=20Wayland=20Core=20Protocol=20is=20Tailored?= =?UTF-8?q?=20Only=20for=20GNOME=20and=20That-s=20Not=20a=20Good=20Thing?= =?UTF-8?q?=20[Opinion].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...E and That-s Not a Good Thing [Opinion].md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 sources/talk/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing [Opinion].md diff --git a/sources/talk/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing [Opinion].md b/sources/talk/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing [Opinion].md new file mode 100644 index 0000000000..1a373cc32e --- /dev/null +++ b/sources/talk/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing [Opinion].md @@ -0,0 +1,135 @@ +[#]: subject: "Wayland Core Protocol is Tailored Only for GNOME and That’s Not a Good Thing [Opinion]" +[#]: via: "https://news.itsfoss.com/wayland-core-protocol-issue/" +[#]: author: "Community https://news.itsfoss.com/author/team/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wayland Core Protocol is Tailored Only for GNOME and That’s Not a Good Thing +====== +And the idea of protocol extensions doesn’t work + +![Wayland GNOME][1] + +Wayland is a display server system based on the idea of [protocols][2]. That means that there is no Wayland display server that clients need to talk to. Instead, Wayland defines a protocol for creating display servers. Any client application that is programmed to use this protocol can work on any display server(or compositor) that fully supports this protocol. It’s like the [world wide web protocols][3], where any website can work on any browser as long as the browser is completely supporting the web protocols. So you don’t create websites for specific browsers. + +That also means that the functions defined in the protocol decide what applications (aka clients) can do & what they can’t do. Returning to the example of the website, if the protocol doesn’t define necessary functions, it will limit the web developers. Take CSS as an example; if it wasn’t available in the web protocols, all websites would have looked the same and boring. So the protocol must include all necessary basics in a way that doesn’t limit developers to a few cases and uses. + +When Wayland developers started defining the protocol, they had to decide what functionalities to include in the protocol. Their decision was to make the protocol as minimal as possible, and compositors shall create new protocols for their specific use cases if they desire to offer more functionality not included in the main protocol. The main protocol was called [Wayland Core protocol][4], and other protocols are called [protocol extensions][5]. All compositors are expected to support the core protocol, and they may not support other protocol extensions. That means that applications that depend on certain functionality defined in one of the protocol extensions will not work on all compositors. + +All of the above is what Wayland developers intended for the Wayland world to be. Now let’s delve into more detail. How much is Wayland core protocol minimal? In other words, what determines what shall be in the core protocol and what shall not be? In this article, I’m going to give you an answer to this question based on my opinion, which is in turn based on a group of simple facts. + +**My opinion is that Wayland’s Core protocol is tailored only for GNOME needs.** + +I mean that the functionalities which exist in Wayland’s core protocol are the bare minimum required for GNOME desktop and apps to work on Wayland. + +That’s bad (still in my opinion) because it’s simply not enough for other desktop environments and apps other than GNOME desktop and apps, as I will show you in this article. + +### 1. The core protocol requires that desktop visual components be drawn by the compositor + +First, let’s explain something. In most desktop environments, desktop components (like dock, panel, wallpaper, desktop icons, etc.) are regular clients. For those components to work, they need certain functions to be implemented by the compositor; those functions include: + +* Ability to move the window +* Ability to tell the compositor to not draw decorations around said windows. +* Ability to keep it above all windows(in case of the panel) or keep it below all windows (in case of the background). +* In addition to some other functionalities. + +On X11, those were defined in the ICCCM specification, which allows X11 clients to tell the compositor to do any of the above. On Wayland, there is not anything in the core protocol that allows that. This means that desktop environment creators have to draw all these in the compositor. + +GNOME is the only desktop that does that, while many other desktops (KDE, XFCE, Lxqt, etc.) draw their components outside the compositor (an exception to that is Cinnamon because it started as a fork of GNOME 3). The situation is even worse. Apps like [plank dock][6], [latte dock][7] and other independent desktop components can’t exist in Wayland. There are protocol extensions that fix that, and I will discuss them later. + +In summary, the situation is: + +* Desktop environments have to draw everything in the compositor. +* It’s impossible to create cross-desktop desktop components like Plank and Latte dock + +### 2. CSD is implementable, although clients can’t move their window + +We have known before that the core protocol doesn’t define a way for clients to move their windows. So how is CSD implemented? Well, there is a [function in the protocol][8] that tells the compositor to start dragging the window. So instead of having a function for moving the window, which would had been useful in many cases, they resorted to having a function only helpful in implementing CSD. + +### 3. CSD is a must in Wayland core protocol + +On X11, the situation was that apps expect to get decorated by the compositor (which is SSD) and if they wish to decorate themselves (by CSD) they tell the compositor to not draw its decorations. On Wayland, compositors are free to draw their decorations if they wish. + +The problem is that there is no way (inside the core protocol) for apps to know whether they are being decorated or not. In other words, clients can’t tell the compositor whether they prefer CSD or SSD, which is problematic for both CSD and SSD (in theory). But in practice, GNOME decided not to decorate clients at all. So apps have to assume that they are not decorated due to GNOME’s decision, so they must go for CSD. Again, there is a protocol extension that fixes that; more on that later. + +### To summarize + +The above three facts regarding the core protocol in summary are: + +1. Desktop components need to be drawn by the compositor +2. CSD is a must. +3. CSD is implementable, although clients can’t move their windows. + +According to these 3 facts, I’ve concluded my opinion that Wayland’s core protocol is tailored only for GNOME needs. + +What if you wanted some functionalities not available in the core protocol. Wayland or GNOME developers’ answer to this is Wayland’s protocol extensions. That simply means that compositors can offer extra functionality by creating new protocols. The problem with this approach is that means that some apps may work on some compositors and may not work on the rest of the compositors (that’s if it needs some of the protocol extensions). That may have resulted in severe fragmentation in theory, but the reality is less than worse thanks to the efforts of [wlroots project][9] and KDE. + +### Wlroots has mostly saved the situation + +[Wlroots][10] is a library created by [Sway compositor][11] developers. It enables developers to create Wayland/X11 compositors easily. Their main focus is Wayland. There are already many compositors available based on wlroots. What is interesting though is the protocol extensions that wlroots implement. + +Wlroots has many protocol extensions, including: + +* [LayerShell][12] protocol +* [xdg-decoration][13] protocol + +The LayerShell protocol enables desktop components to be drawn outside the compositor. Which also makes it possible to create independent cross-desktop desktop components. Many projects utilize this protocol that you can explore in the following repositories: + +* [nwg-shell][14] +* [wf-shell][15] +* [awesome-wayland][16] + +Also, have a look at [GtkLayerShell library][17]. Which is a library for writing Gtk apps with LayerShell protocol.Because LayerShell protocol is not a part of the core protocol apps using it work on wlroots based compositors and KDE, it’s not supported only on GNOME. + +The second protocol is xdg-decoration protocol. Made by wlroots and KDE, it enables apps to choose between CSD and SSD. + +These protocols work on wlroots compositor and KDE. The only obstacle preventing the unification of Linux desktop is GNOME. They have decided not to implement any of these protocol extensions. Which put all apps that use SSD in a situation where they have to use SSD in supporting environments and CSD in gnome. The people actually feeling the pain are toolkits developers. To give you more context, have a look at the “CSD initiative” started by Tobias Bernard from GNOME, and this blog post from Martin’s blog (kwin’s developer). Also, have a look at this issue. The situation is mostly solved by now, that Qt and Gtk draw CSD always on GNOME and utilize the xdg-decoration on other environments. However, in my opinion, that is not good because it makes the platform less standardized/unified for no good reason. After all, in the future, toolkits developers may decide to just go for CSD to avoid the pain. + +### The root of all these problems + +The root of all these is GNOME or Wayland developers’ decision to have the core as minimum as possible and require the creation of protocol extensions. + +Imagine if the web worked in a similar way. That means that websites would not be able to target the standardized (minimal) protocols because they are not enough and will rely on protocols created by certain browsers. So websites would target specific browsers, not the core protocol. That would had been a nightmare, right? Well, that’s the current Wayland situation. + +### What is the solution? + +The solution, in my opinion, is to put all these protocol extensions in the core protocol, or that might not be necessary if GNOME implements the above protocols (Which is not likely to happen anytime soon.)In simple words, GNOME is the root cause of the problem, and it can solve the problem if it decides to do so. + +Author Info: This article has been contributed by It’s FOSS reader Hamza Algohary. Hamza is a computer engineering student and a Linux and open source enthusiast. He also develops apps for Linux desktop. You can find his work on [his GitHub profile][18]. + +*The views and opinions expressed are those of the authors and do not necessarily reflect the official policy or position of It’s FOSS.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/wayland-core-protocol-issue/ + +作者:[Community][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/team/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/wayland-core-protocol-gnome.png +[2]: https://wayland.freedesktop.org/docs/html/ch04.html +[3]: https://www.w3.org/standards/ +[4]: https://wayland.app/protocols/wayland +[5]: https://wayland.app/protocols/ +[6]: https://github.com/ricotz/plank +[7]: https://github.com/KDE/latte-dock +[8]: https://wayland-book.com/xdg-shell-in-depth/interactive.html +[9]: https://gitlab.freedesktop.org/wlroots/wlroots +[10]: https://gitlab.freedesktop.org/wlroots/wlroots +[11]: https://swaywm.org/ +[12]: https://wayland.app/protocols/wlr-layer-shell-unstable-v1 +[13]: https://wayland.app/protocols/xdg-decoration-unstable-v1 +[14]: https://github.com/nwg-piotr/nwg-shell +[15]: https://github.com/WayfireWM/wf-shell +[16]: https://github.com/natpen/awesome-wayland +[17]: https://github.com/wmww/gtk-layer-shell +[18]: https://github.com/hamza-Algohary From 03576b582ce7683d5b83d47edda72e409e35591e Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:42:15 +0800 Subject: [PATCH 0538/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220726=20Debian=20May=20Consider=20Including=20Non?= =?UTF-8?q?-Free=20Firmware=20in=20Official=20Releases.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Non-Free Firmware in Official Releases.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md b/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md index 0ce825d8be..627ed5b2ab 100644 --- a/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md +++ b/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md @@ -1,7 +1,7 @@ [#]: subject: "Debian May Consider Including Non-Free Firmware in Official Releases" [#]: via: "https://news.itsfoss.com/debian-non-free/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" +[#]: collector: "lkxed" [#]: translator: " " [#]: reviewer: " " [#]: publisher: " " @@ -9,6 +9,9 @@ Debian May Consider Including Non-Free Firmware in Official Releases ====== +Will Debian consider adding non-free firmware in official releases? It seems like a possibility, if they want to fix the issues highlighted by Debian’s developer. + +![debian][1] Debian is one of the most loved Linux distributions for its approach to stability and a balance between new features. @@ -20,7 +23,7 @@ Most of the latest devices and configurations need non-free firmware to make thi And to address that, **Steve McIntyre**, a Debian developer and a former Debian project leader, has been actively discussing the issue for a while. -At the **DebConf 22 conference**, Steve recently talked about fixing the firmware mess to highlight this better to users and developers, as spotted by [Geeker’s Digest][1]. +At the**DebConf 22 conference**, Steve recently talked about fixing the firmware mess to highlight this better to users and developers, as spotted by [Geeker’s Digest][2]. ### Including Non-Free Firmware in Official Releases @@ -30,12 +33,10 @@ However, not every user is aware of it, and even if it is promoted on Debian’s Also, it is counter-intuitive to expect users to install non-free firmware when they can choose any Ubuntu-based distribution or Ubuntu as an alternative. -Not just limited to these issues, Steve mentions a few other problems with it in his [blog][2] that include: - - * Maintaining separate non-free images is time-consuming. - * The official images are not preferred by many users because of the lack of non-free firmware. - +Not just limited to these issues, Steve mentions a few other problems with it in his [blog][3] that include: +* Maintaining separate non-free images is time-consuming. +* The official images are not preferred by many users because of the lack of non-free firmware. Steve proposes that this mess be fixed sooner than later if we want more users to use Debian on common hardware. @@ -47,22 +48,23 @@ And with the recent highlight, Steve has gotten more attention from users/develo **The easy/convenient way out**: adding non-free firmware in official release images. -_So, will Debian finally add support for non-free firmware in its newer releases? Will Debian 12 make this a reality?_ +*So, will Debian finally add support for non-free firmware in its newer releases? Will Debian 12 make this a reality?* -_Share your thoughts in the comments down below._ +*Share your thoughts in the comments down below.* -------------------------------------------------------------------------------- via: https://news.itsfoss.com/debian-non-free/ 作者:[Ankush Das][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://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ -[2]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/debian-non-free-firmware.jpg +[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ +[3]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do From b25913a0e78b1ee7b6429e28a12c5b7244003af6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:42:55 +0800 Subject: [PATCH 0539/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220727=20Pop!=5FOS=2022.04=20Linux=20Distro=20is?= =?UTF-8?q?=20Finally=20Adding=20Raspberry=20Pi=204=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s Finally Adding Raspberry Pi 4 Support.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md diff --git a/sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md b/sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md new file mode 100644 index 0000000000..30ff323f94 --- /dev/null +++ b/sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md @@ -0,0 +1,69 @@ +[#]: subject: "Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support" +[#]: via: "https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support +====== +System76 is finally adding Raspberry Pi 4 support for its latest Pop!_OS 22.04 LTS. + +![pop os][1] + +Pop!_OS is one of the [best beginner-friendly Linux distributions][2]. + +It is based on Ubuntu, and obviously, Pop!_OS 22.04 LTS is based on [Ubuntu 22.04 LTS][3]. + +However, unlike Ubuntu, Pop!_OS 22.04 did not officially support Raspberry Pi at the time of release. + +So, it only makes sense to expect for Raspberry Pi support with [Pop!_OS 22.04 LTS][4] release. + +If you recall, System76 added support for Raspberry Pi with **Pop!_OS 21.10** for the first time. We also [reported][5] it while it was being tested. + +And, it looks like System76’s latest Pop!_OS release is now gearing up to support Raspberry Pi 4, as revealed by System76’s Principal Engineer **Jeremy Soller.** + +### Pop!_OS 22.04 LTS for Raspberry Pi 4 + +This is excellent news for you if you have been hanging in with Pop!_OS 21.10 on your Raspberry Pi 4. + +And, for anyone wanting to try Pop!_OS on Raspberry Pi 4, we will finally be getting an LTS edition for it. + +As of now, the ISO is available as a **tech preview**. So, you should expect bugs and usability issues if you would like to take it for a test drive. Note that this is **only limited to Raspberry Pi 4** and does not support other Raspberry Pi devices, which is a bummer. + +We do not know if System76 plans to support other Raspberry Pi boards for this LTS release, or if they stick to Raspberry Pi 4. + +However, considering Raspberry Pi 4 is pretty popular nowadays, it should be a good development for many tinkerers out there seeking an [alternative operating system for Raspberry Pi][6] replacing Ubuntu. + +With Pop!_OS 22.04 LTS, Raspberry Pi 4 users should be able to experience some of the most exciting upgrades along with a newer [Linux Kernel 5.15 LTS][7]. + +To download the tech preview, head to Pop!_OS’s **[official website][8]**and click on the download button to find the option: + +![pop os][9] + +*What do you expect with Pop!_OS 22.04 on Raspberry Pi 4? Kindly let us know your thoughts in the comments down below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/ + +作者:[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/07/pop-os-raspberry-pi-4.jpg +[2]: https://itsfoss.com/best-linux-beginners/ +[3]: https://news.itsfoss.com/ubuntu-22-04-release/ +[4]: https://news.itsfoss.com/pop-os-22-04-release/ +[5]: https://news.itsfoss.com/pop-os-raspberry-pi-coming-soon/ +[6]: https://itsfoss.com/raspberry-pi-os/ +[7]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[8]: https://pop.system76.com/ +[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/pop-os-raspberry-pi-4-download-1024x526.png From d028e8fca3eae741595b45518c27ee97ca9d9641 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:44:22 +0800 Subject: [PATCH 0540/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220723=20Nala=20=E2=80=93=20A=20Feature-rich=20Com?= =?UTF-8?q?mandline=20Frontend=20For=20APT=20Package=20Manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mandline Frontend For APT Package Manager.md | 561 ++++++++++++++++++ 1 file changed, 561 insertions(+) create mode 100644 sources/tech/20220723 Nala – A Feature-rich Commandline Frontend For APT Package Manager.md diff --git a/sources/tech/20220723 Nala – A Feature-rich Commandline Frontend For APT Package Manager.md b/sources/tech/20220723 Nala – A Feature-rich Commandline Frontend For APT Package Manager.md new file mode 100644 index 0000000000..f941cf9e1d --- /dev/null +++ b/sources/tech/20220723 Nala – A Feature-rich Commandline Frontend For APT Package Manager.md @@ -0,0 +1,561 @@ +[#]: subject: "Nala – A Feature-rich Commandline Frontend For APT Package Manager" +[#]: via: "https://ostechnix.com/nala-commandline-frontend-for-apt/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Nala – A Feature-rich Commandline Frontend For APT Package Manager +====== +Nala is a feature-rich package management tool for Debian, Ubuntu and its derivatives + +**Apt**, stands for "**A**dvanced **P**ackage **T**ool", is the default, command line package manager for Debian, Ubuntu and its derivatives such as Elementary OS, Linux Mint and Pop!_OS. Using apt, we can search, install, update, upgrade and remove packages in a DEB-based system. There are a few APT frontends exists. Two popular APT front-ends are Aptitude and Synaptic. Today, we will talk about yet another APT frontend tool called **"Nala"**. + +### What Is Nala? + +Nala is a commandline frontend for the APT package manager. Nala uses `python-apt` api to interact with APT. + +The main goal of Nala is to format the output better, use colors to show what will happen with a package during install, removal, and upgrade. + +The functionality of Nala is same as APT, however Nala includes a few additional features. The developer of Nala took the inspiration from DNF package manager and implemented some of its features in Nala. + +Nala formats the output to be more human readable i.e. **prettier output**. Also, Nala hides unnecessary redundant messages that you will see in APT output. + +Nala supports the **history function**, just like Fedora's `dnf history` feature. Using the Nala's history function, we can see the past transactions and easily undo or redo them. You can easily undo the previous transaction and/or rollback to previous working version when something goes wrong. + +Another notable feature of Nala is **Parallel downloads**. As far as I know, APT package manager doesn't has this feature yet. We should rely on third-party tools like **["Apt-fast"][1]** to speed up the package downloads in Ubuntu. Fortunately, the parallel download feature is enabled by default in Nala. So package download process is bit faster when using Nala. + +The other useful feature included in Nala is **fetching fastest APT mirrors**. Currently, we can use Synaptic or some third-party tools to **[choose the best APT mirror][2]** in Ubuntu. If you use Nala, you don't need to rely on any external tools. By default, Nala will help you to choose the fastest mirrors and write them in a file. + +In summary, Nala ships with the following distinct features out of the box. + +* Pretty output formatting, +* History function, +* Parallel downloads, +* Fetch fastest mirror. + +Nala is an opensource program written in **Python**. The code is freely hosted in GitLab. + +### How To Install Nala + +We can install Nala from a PPA, or using Pacstall or apt/dpkg package managers. + +#### Install Nala Using PPA + +Nala can be installed from **Volian Scar repository** in Debian, Ubuntu and its variants such as Linux Mint, Pop!_OS. + +To add Volian Scar repo in Debian, Ubuntu and its derivatives, run the following command: + +``` +$ echo "deb http://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list +``` + +Add the GPG key: + +``` +$ wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null +``` + +Update the sources list: + +``` +$ sudo apt update +``` + +And install Nala in Ubuntu 22.04 / Debian Sid and newer using command: + +``` +$ sudo apt install nala +``` + +For Debian 11 stable, Ubuntu 21.04 and older versions, you need to install the `nala-legacy` package + +``` +$ sudo apt install nala-legacy +``` + +**Heads Up:** It looks like Nala is added to the Debian [Testing] repository and the default repositories of Debian Sid. I don't have Debian Sid, so I can't confirm it though. + +#### Install Nala Using Pacstall + +Nala developer has created a pacscript for **[Pacstall][3]**. + +First, install Pacstall as described in the link above. + +Once that is complete, simply run the following command to install Nala. + +``` +$ pacstall -I nala-deb +``` + +#### Install Nala From Binaries + +Download Nala latest `.deb` file from the **[releases][4]** page. + +And install it locally through `apt` or `dpkg`. + +``` +$ sudo apt install /path/to/nala_version_arch.deb +$ sudo apt install -f +``` + +Or + +``` +$ sudo dpkg -i /path/to/nala_version_arch.deb$ sudo apt install -f +``` + +### Nala Commands Usage + +As stated already, Nala usage is pretty much same as Apt. The Nala commands are identical to the apt variant, but the output is formatted differently. + +Let us start by displaying Nala help manual. + +#### View Nala Help + +To display nala command help section, use `-h` or `--help` flag like below: + +``` +$ nala --help +``` + +**Sample output:** + +``` +Usage: nala [OPTIONS] COMMAND [ARGS]... + + Each command has its own help page. + + For Example: `nala history --help` + +Options: + --version Show program's version number and exit. + --license Reads the GPLv3 which Nala is licensed under. + --install-completion Install completion for the current shell. + --show-completion Show completion for the current shell, to copy it or + customize the installation. + -h, --help Show this message and exit. + +Commands: + autopurge Autopurge packages that are no longer needed. + autoremove Autoremove packages that are no longer needed. + clean Clear out the local archive of downloaded package files. + fetch Fetch fast mirrors to speed up downloads. + history Show transaction history. + install Install packages. + list List packages based on package names. + purge Purge packages. + remove Remove packages. + search Search package names and descriptions. + show Show package details. + update Update package list. + upgrade Update package list and upgrade the system. +``` + +As you can see in the above output, Nala has all essential commands for basic package management operations in Debian-based systems. + +Each Nala sub-command has its own help section. For instance, to view the help section of the `update` command, you can use the following command: + +``` +$ nala update -h +``` + +#### Update Repositories + +To update the software repositories using Nala, run: + +``` +$ sudo nala update +``` + +**Sample output:** + +``` +$ sudo nala update +╭─ Updating Package List ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│No Change: http://in.archive.ubuntu.com/ubuntu jammy InRelease │ +│No Change: https://download.docker.com/linux/ubuntu jammy InRelease │ +│No Change: http://in.archive.ubuntu.com/ubuntu jammy-updates InRelease │ +│No Change: http://in.archive.ubuntu.com/ubuntu jammy-backports InRelease │ +│No Change: http://deb.volian.org/volian scar InRelease │ +│Updated: http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] │ +│No Change: https://ppa.launchpadcontent.net/flexiondotorg/quickemu/ubuntu jammy InRelease │ +│No Change: https://ppa.launchpadcontent.net/yannick-mauray/quickgui/ubuntu jammy InRelease │ +│Fetched 110 kB in 6s (2555 B/s) │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +1 packages can be upgraded. Run 'nala list --upgradable' to see them. +``` + +![Nala Update Command][5] + +Now, run the actual `apt update` command and compare the output of both commands: + +``` +$ sudo apt update +``` + +![Nala Update Vs Apt Update Command][6] + +Did you get the difference? The `nala update` command's output is more human-friendly than the `apt update` command's output. + +Nala displays a title to describe the actual purpose of the given command. As you in the above output, Nala displays "Updating Package List" on the top. The user will easily understand know what the given command will do. + +The other minor difference is Nala displays "No change" message if the repository is not changed or updated. It also eliminates the following lines from the output. + +``` +[...] +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +[...] +``` + +Apt will display these three lines in all commands. + +#### Upgrade Packages + +To upgrade your Debian or Ubuntu system, run: + +``` +$ sudo nala upgrade +``` + +**Sample output:** + +``` +╭─ Updating Package List ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│No Change: http://in.archive.ubuntu.com/ubuntu jammy InRelease │ +│Updated: https://download.docker.com/linux/ubuntu jammy InRelease [48.9 kB] │ +│No Change: http://in.archive.ubuntu.com/ubuntu jammy-updates InRelease │ +│No Change: http://in.archive.ubuntu.com/ubuntu jammy-backports InRelease │ +│Updated: http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] │ +│No Change: http://deb.volian.org/volian scar InRelease │ +│No Change: https://ppa.launchpadcontent.net/flexiondotorg/quickemu/ubuntu jammy InRelease │ +│No Change: https://ppa.launchpadcontent.net/yannick-mauray/quickgui/ubuntu jammy InRelease │ +│Fetched 159 kB in 0s (0 B/s) │ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +================================================================================================================================================== + Upgrading +================================================================================================================================================== + Package: Old Version: New Version: Size: + libfreetype6 2.11.1+dfsg-1build1 2.11.1+dfsg-1ubuntu0.1 389 kB + +================================================================================================================================================== + Summary +================================================================================================================================================== + Upgrade 1 Packages + + +Do you want to continue? [Y/n] y +╭─ Updating Packages ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│Unpacking: libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.1) over (2.11.1+dfsg-1build1) │ +│Setting up: libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.1) │ +│Processing: triggers for libc-bin (2.35-0ubuntu3) │ +│╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ +││✔ Running dpkg … ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0% • 0:00:00 • 3/3││ +│╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯│ +╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +Finished Successfully +``` + +![Nala Upgrade Command][7] + +The output is quite descriptive and self-explanatory, right? Indeed! You won't see these details in Apt command. + +Nala will display a descriptive title for each action, for example "Updating Package List", "Downloading", "Installing Packages" etc. + +#### Install Packages + +To install a package using Nala, for example **Vim**, simply run: + +``` +$ sudo nala install vim +``` + +**Sample output:** + +![Nala Install Command][8] + +To view the usage of and available options in `nala install` command, simply run: + +``` +$ nala install -h +``` + +#### List Packages + +You can list all packages or specific packages based on their name with `nala list` command. + +To list all packages, simply run `nala list` without any flags. + +``` +$ nala list +``` + +You can also list only the packages that are installed with `-i` , `--installed` flag. + +``` +$ nala list -i +``` + +What if you want to list only the packages that are **explicitly** installed with Nala? That's also possible. Use `-N`, `--nala-installed` flag. + +``` +$ nala list -N +``` + +**Sample output:** + +``` +vim 2:8.2.3995-1ubuntu2 [Ubuntu/jammy main] +├── is installed +└── Vi IMproved - enhanced vi editor +``` + +To view only packages that are upgradable, use `-u`, `--upgradable` option. + +``` +$ nala list -u +``` + +To show all versions of a given package, you can use `-a`, `--all-versions` flag. + +``` +$ nala list -a +``` + +#### Search Packages + +You can search package names and descriptions using a word or REGEX. This command has the same options as the `nala list` command. The only additional flag it has is `-A`, `--all-arches` flag which shows all architectures of a package. + +To search for packages that has "vim" in their name, run: + +``` +$ nala search vim +``` + +When you run nala search without any options, it will show both package names and descriptions. + +To search only the names, use `-n`, `--names` flag. + +``` +$ nala search -n vim +``` + +To show all architectures of a given package, use `-A` (Note it is Uppercase A). + +``` +$ nala search -n -A vim +``` + +Similarly, you can use `-i` to list only the installed packages, use `-N` to list only packages explicitly with Nala, use `-u` to list only upgradable packages. + +You can view all supported options from the `nala search` help section by running the following command. + +``` +$ nala search -h +``` + +#### Show Package Details + +The `show` command displays the information about the given package such as the name, version and dependencies etc. + +``` +$ nala show vim +``` + +![Nala Show Command][9] + +As you see, the `nala show` command is very similar to `apt show` except the package information is highlighted for better readability. + +#### Parallel Downloads + +This is an useful feature of Nala. + +Currently, Apt package manager doesn't has parallel downloads support. However, we can enhance the Apt download speed using a third-party tool called **Apt-fast**. The Apt-fast application is used to **[speed up downloading of packages in Ubuntu][10]** and its derivatives. + +Nala supports parallel downloads out of the box. So we don't need any external tools. By default, Nala will **download 3 packages per unique mirror** in your `sources.list` file. + +#### Fetch Fastest Mirrors + +The another useful addition in Nala features list is fetching the fastest APT mirror. The `nala fetch` command works very similar to **apt-select**, **apt-smart**, **netselect**, and **netselect-apt** CLI tools. + +Before I know about Nala, I used the aforementioned tools to **[find the best and fastest APT mirror][11]** in my Ubuntu systems. Fortunately, Nala has included this feature by default. + +First, Nala will check if your distribution is either Debian or Ubuntu. And then, it get all the mirrors from the respective master list. After getting the master list, it will test the latency and score each mirror. + +Depending on the latency and speed, Nala will list the fastest 16 mirrors. Type the index number of the mirrors (separated by space) that you want to keep and hit ENTER key + +![List Fastest APT Mirrors With Nala][12] + +Nala will display a confirmation message. If you're OK with the selected mirrors, press Y to confirm and ENTER. + +![Confirm Selected Mirrors][13] + +The selected sources will be written to `/etc/apt/sources.list.d/nala-sources.list` file. + +Update the sources list by running the following command: + +``` +$ sudo nala update +``` + +If you don't want the mirrors selected by Nala, simply delete it. + +``` +$ sudo rm /etc/apt/sources.list.d/nala-sources.list +``` + +#### Show Transaction History + +This is one of the flagship feature of Nala package manager. This feature is actually inspired by the **history** function from the **[DNF][14]** package manager. + +Using the `nala history` command, we can easily undo or redo previous APT transactions. + +Whenever, you install, remove or upgrade packages, the APT transaction is stored in `/var/lib/nala/history.json` file with a unique **ID** number. + +Let us view the current history using command: + +``` +$ nala history + ID Command Date and Time Altered Requested-By + 1 upgrade libfreetype6 2022-07-22 18:14:55 IST 1 ostechnix (1000) + 2 install vim 2022-07-22 18:20:11 IST 2 ostechnix (1000) +``` + +As you can see, we have done two APT transactions using Nala. Here, 1 and 2 are the transaction IDs. + +You can show information about a specific transaction using `nala history info [ID]` command. + +``` +$ nala history info 2 +``` + +**Sample output:** + +``` +================================================================================================================================================== + Installed +================================================================================================================================================== + Package: Version: Size: + vim 2:8.2.3995-1ubuntu2 1.7 MB + vim-runtime 2:8.2.3995-1ubuntu2 6.8 MB + +================================================================================================================================================== + Summary +================================================================================================================================================== + Installed 2 Packages +``` + +![View Apt Transaction Details][15] + +Now let me undo the installation Vim package. + +To do so, simply run: + +``` +$ sudo nala history undo 2 +``` + +Here, 2 is the index of the "install vim" command. + +![Nala History Undo Command][16] + +See? We just undo the Vim installation. In other words, we simply removed the Vim package. + +Let us run the history command again: + +``` +$ nala history + ID Command Date and Time Altered Requested-By + 1 upgrade libfreetype6 2022-07-22 18:14:55 IST 1 ostechnix (1000) + 2 install vim 2022-07-22 18:20:11 IST 2 ostechnix (1000) + 3 history undo 2 2022-07-23 17:12:34 IST 2 ostechnix (1000) +``` + +![Nala History Command][17] + +As you see in the above output, we have a new entry (i.e. `history undo 2` ) in the `nala history` output. + +Let us install the vim package again. To put it another way, let us **redo** the "install vim" command. + +To redo the "install vim" transaction, run: + +``` +$ sudo nala history redo 2 +``` + +![Nala History Redo Command][18] + +Now, the Vim package is installed again. + +If you don't want any transaction in the history, you can remove it using `nala history clear` command: + +``` +$ sudo nala history clear 3 +``` + +#### Remove Packages + +To remove or purge an installed package that are no longer needed with Nala, run: + +``` +$ sudo nala purge vim +``` + +Or, + +``` +$ sudo nala remove --purge vim +``` + +if you want to automatically remove any packages that are no longer needed, add `--autoremove` flag. + +``` +$ sudo nala purge vim --autoremove +``` + +### Conclusion + +Using Nala, we can have prettier output, faster downloads of packages, and a history! If you do only a basic package management operations, such as install, update, upgrade, list, search, and remove etc., you can use Nala. For other advanced package management operations, use Apt. + +The developer of Nala has also planned to rewrite Nala in **Rust** programming language. Let us hope it will be out soon and with more features. + +**Resource:** + +* [Nala GitLab Repository][19] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/nala-commandline-frontend-for-apt/ + +作者:[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/apt-fast-speed-up-downloading-of-packages-in-ubuntu/ +[2]: https://ostechnix.com/how-to-find-best-ubuntu-apt-repository-mirror/ +[3]: https://github.com/pacstall/pacstall +[4]: https://gitlab.com/volian/nala/-/releases +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-Update-Command.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-Update-Vs-Apt-Update-Command.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-Upgrade-Command.png +[8]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-Install-Command.png +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-Show-Command.png +[10]: https://ostechnix.com/how-to-speed-up-dnf-package-manager-in-fedora/ +[11]: https://ostechnix.com/how-to-find-best-ubuntu-apt-repository-mirror/ +[12]: https://ostechnix.com/wp-content/uploads/2022/07/List-Fastest-APT-Mirrors-With-Nala.png +[13]: https://ostechnix.com/wp-content/uploads/2022/07/Confirm-Selected-Mirrors.png +[14]: https://ostechnix.com/dnf-command-examples-beginners/ +[15]: https://ostechnix.com/wp-content/uploads/2022/07/View-Apt-Transaction-Details.png +[16]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-History.png +[17]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-History-Command.png +[18]: https://ostechnix.com/wp-content/uploads/2022/07/Nala-History-Redo-Command.png +[19]: https://gitlab.com/volian/nala From 5a18e5b01750ad6aa5b3ca1c9e1552712b67cb3c Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:45:21 +0800 Subject: [PATCH 0541/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220726=20How=20To=20Change=20GRUB=20Theme=20In=20L?= =?UTF-8?q?inux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20726 How To Change GRUB Theme In Linux.md | 356 ++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 sources/tech/20220726 How To Change GRUB Theme In Linux.md diff --git a/sources/tech/20220726 How To Change GRUB Theme In Linux.md b/sources/tech/20220726 How To Change GRUB Theme In Linux.md new file mode 100644 index 0000000000..c776737071 --- /dev/null +++ b/sources/tech/20220726 How To Change GRUB Theme In Linux.md @@ -0,0 +1,356 @@ +[#]: subject: "How To Change GRUB Theme In Linux" +[#]: via: "https://ostechnix.com/change-grub-theme-in-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Change GRUB Theme In Linux +====== +Install And Apply Modern, Beautiful GRUB Themes In Linux + +**GRUB**, stands for **GR**and **U**nified **B**ootloader, is default boot loader for most Linux operating systems. GRUB boot loader is the first program that runs when the computer starts. As you may noticed, the default theme of the GRUB menu is bland. It's just a black background with white characters on it. Some of you may not like the default GRUB theme. In this tutorial, I will demonstrate how to **change GRUB theme** or apply gorgeous themes in-order to make your GRUB menu more beautiful and elegant in Linux. + +A few years ago, we published a guide that explained how to **[configure GRUB2 bootloader settings][1]** in Ubuntu. In that article, we showed you how to change the GRUB background. + +But, changing background is not the real customization. In this guide, we are going to change not only the wallpaper but also the fonts, theme and the overall design of GRUB. + +**Disclaimer:** Installing GRUB themes may break you system. I strongly recommend you to try and test a theme in a VM and see if it works without any issues. And then install the theme in the actual system. + +### Introduction + +There are many Community-developed GRUB themes available on Internet. However, they are all scattered across different websites. So finding a good GRUB theme might be little difficult and time-consuming. + +One of the notable contributor for GRUB themes is **Pling** website. But the majority of the themes in Pling are either very basic or outdated. + +Fortunately, I've come across a project called **"Gorgeous GRUB"**, a place for finding various elegant GRUB themes. Trust me, the author has put a good effort to collect these themes and you will definitely like one of them. + +### Gorgeous GRUB - A Place To Find Decent GRUB Themes + +**Gorgeous GRUB** is a collection of decent GRUB community themes created by various users. The developer of this project has hand-picked beautiful GRUB themes from **Pling**, **/r/unixporn** and many other forums and put them all together to make it easy for the users to browse them. + +As stated already, so many themes in Pling are just crappy and outdated. The author of Gorgeous GRUB repository dug through the entire GRUB section of Pling, and a few other forums and put together all good GRUB theme in one place. + +FYI, these aren't some low-quality, poorly made themes. They had a fair amount of effort put into them, with custom backgrounds, fonts, and colours. + +Please note that Gorgeous GRUB isn't an application to install your favorite GRUB theme. It is just a curated list of decent working GRUB themes. + +This project is hosted in GitHub. If you've any cool GRUB theme, you can add it to the Gorgeous GRUB theme list as well. + +### How To Change GRUB Theme + +Applying or changing GRUB themes is not that difficult. + +Go to the **[Gorgeous GRUB GitHub page][2]** and click on the title of any theme you want to apply. And then you will be taken to the theme's actual home page. Some themes are hosted in **Pling** and some are hosted in **GitHub**. We will see how to install GRUB themes from Pling and GitHub. + +First, let use see how to apply **Descent** theme, which is hosted in Pling. + +#### 1. Install GRUB Theme From Pling + +If the themes are hosted in Pling site, follow these instructions. + +From the theme home page, click the **Files** tab. You will find this tab right under the image preview. Click on the file link to download it. + +![Download GRUB Theme From Pling][3] + +Go to the download location and extract the archive file. + +``` +$ tar xzf 173860-20150926\ descent.tar.gz +``` + +The contents of the archive will be extracted to a directory called **"descent"** in the current working directory. + +Copy the "descent" directory to `/boot/grub/themes/` directory using the following command. + +``` +$ sudo cp -r descent/ /boot/grub/themes/ +``` + +If the "themes" directory is not available, just create it. + +``` +$ sudo mkdir /boot/grub/themes +``` + +And assign proper ownership to the "themes" directory. + +``` +$ sudo chown $USER /boot/grub/themes/ +``` + +And then copy the contents of the "descent" directory to "themes" directory as shown above. + +You should now have a folder in the themes directory named after the theme. + +``` +$ ls /boot/grub/themes/ +descent +``` + +And that theme folder (i.e. descent) should include the `theme.txt` and any other relevant files (e.g. background image, customization files) that theme came with. + +``` +$ ls /boot/grub/themes/descent/ +background1280x800.png descent_score_14.pf2 menu_ne.png menu_s.png progresshigh_c.png scrollframe_c.png scroll_thumb_n.png +background_original.jpg descent_score_18.pf2 menu_n.png menu_sw.png progresshigh_e.png scrollframe_n.png scroll_thumb_s.png +copyright menu_c.png menu_nw.png menu_w.png progresshigh_w.png scrollframe_s.png select_os.png +descent_logo_bold_18.pf2 menu_e.png menu_se.png progressbar_c.png readme scroll_thumb_c.png theme.txt +``` + +After copying the downloaded theme to `/boot/grub/themes/` directory, edit `/etc/default/grub` file. + +Before any changes, please backup the grub file, just in case: + +``` +$ sudo cp /etc/default/grub /etc/default/grub.bak +``` + +Now edit the file with your preferred editor: + +``` +$ sudo nano /etc/default/grub +``` + +Find the `GRUB_THEME=` line and add the path to the `theme.txt` of the theme you want to use. And also, uncomment the `GRUB_GFXMODE=` line and enter the background image resolution. Usually, the filename of background image contains its resolution (e.g. background1280x800.png). + +``` +[...] +GRUB_THEME=/boot/grub/themes/descent/theme.txt +GRUB_GFXMODE=1280x800 +[...] +``` + +![Enter Theme Txt File Path And Background Image Resolution][4] + +Again, if those lines does not exist, simply add them. Press **CTRL+O** and **CTRL+X** to save the changes and close the file. + +Now, apply the changes to the GRUB using command: + +``` +$ sudo update-grub +``` + +**Sample output:** + +``` +Sourcing file `/etc/default/grub' +Sourcing file `/etc/default/grub.d/init-select.cfg' +Generating grub configuration file ... +Found theme: /boot/grub/themes/descent/theme.txt +Found linux image: /boot/vmlinuz-5.15.0-41-generic +Found initrd image: /boot/initrd.img-5.15.0-41-generic +Found linux image: /boot/vmlinuz-5.15.0-39-generic +Found initrd image: /boot/initrd.img-5.15.0-39-generic +Found memtest86+ image: /boot/memtest86+.elf +Found memtest86+ image: /boot/memtest86+.bin +Warning: os-prober will not be executed to detect other bootable partitions. +Systems on them will not be added to the GRUB boot configuration. +Check GRUB_DISABLE_OS_PROBER documentation entry. +done +``` + +![Update GRUB][5] + +If you're on RPM-based systems (E.g. Fedora), run the following command to update GRUB: + +``` +$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead +``` + +Reboot your system. You will be pleased with the updated GRUB theme. If the GRUB menu doesn't appear, power on the system and immediately hit the ESC key until the boot menu appears. + +This is the default GRUB menu in my Ubuntu 22.04 LTS desktop. + +![Ubuntu Default Grub Menu][6] + +And here is the updated GRUB menu with Descent theme. + +![Updated GRUB Menu With Descent Theme][7] + +Cool, yeah? + +##### 1.1. Remove GRUB Theme + +To remove a theme, simply delete the theme folder: + +``` +$ sudo rm -fr /boot/grub/themes/descent/ +``` + +And then edit `/etc/default/grub` file: + +``` +$ sudo nano /etc/default/grub +``` + +Remove the following lines: + +``` +[...] +GRUB_THEME=/boot/grub/themes/descent/theme.txt +GRUB_GFXMODE=1280x800 +[...] +``` + +Save the file and close it. + +Finally, apply the changes to the GRUB and reboot your system: + +``` +$ sudo update-grub +``` + +``` +$ sudo reboot +``` + +#### 2. Install GRUB Themes From GitHub + +If a GRUB theme is hosted in GitHub, it will probably has the installer and uninstaller scripts. Let us take **[Modern GRUB Themes][8]** as an example. It is hosted in GitHub. + +Git clone the project's GitHub repository: + +``` +$ git clone https://github.com/vinceliuice/grub2-themes.git +``` + +Go to the project's folder: + +``` +$ cd grub2-themes/ +``` + +Run the installer script: + +``` +$ sudo ./install.sh +``` + +Select your preferred GRUB theme background (E.g. tela). + +![Choose GRUB Theme Background][9] + +Select icon style: + +![Choose Icon Style][10] + +Select your display resolution. + +![Choose Display Resolution][11] + +Now the chosen GRUB theme will be installed and applied. + +``` +Checking for the existence of themes directory... + + Installing tela color 1080p theme... + + Setting tela as default... + + Updating grub config... + +Sourcing file `/etc/default/grub' +Sourcing file `/etc/default/grub.d/init-select.cfg' +Generating grub configuration file ... +Found theme: /usr/share/grub/themes/tela/theme.txt +Found linux image: /boot/vmlinuz-5.15.0-41-generic +Found initrd image: /boot/initrd.img-5.15.0-41-generic +Found linux image: /boot/vmlinuz-5.15.0-39-generic +Found initrd image: /boot/initrd.img-5.15.0-39-generic +Found memtest86+ image: /boot/memtest86+.elf +Found memtest86+ image: /boot/memtest86+.bin +Warning: os-prober will not be executed to detect other bootable partitions. +Systems on them will not be added to the GRUB boot configuration. +Check GRUB_DISABLE_OS_PROBER documentation entry. +done + + * All done! + + * At the next restart of your computer you will see your new Grub theme: 'tela' +``` + +![Install Tela Modern Grub Theme][12] + +Reboot your system to see the changes. + +![Tela GRUB Theme][13] + +This is one of the pretty GRUB theme ever I've seen. + +You can also explicitly give the name of the theme with screen resolution like below. + +``` +$ sudo ./install.sh -t whitesur -s 1080p +``` + +This will apply a theme called "Whitesur" with 1080p screen resolution. You can mention other resolutions, for example 2k, 4k, ultrawide, ultrawide2k. If you don't mention the resolution, 1080p will be applied by default. + +Install Tela theme to `/boot/grub/themes` folder: + +``` +$ sudo ./install.sh -b -t whitesur +``` + +Reboot your system to see the changes. + +![Whitesur GRUB Theme][14] + +##### 2.1. Remove GRUB Themes + +To remove an installed theme, go to the project's cloned directory: + +``` +$ cd grub2-themes/ +``` + +And, run: + +``` +$ sudo ./install.sh -r -t tela +``` + +Replace "tela" with the name of your installed theme. + +Please note that the installation instructions for each theme might be different. Refer the project's respective GitHub page carefully and install the theme accordingly. + +### Conclusion + +Some people prefer to use stylized Linux distributions. They feel good and took pride in beautifying their Linux distributions. If you're one of them, you can look into the Gorgeous GRUB project to beautify your GRUB menu. + +Got to the Gorgeous GRUB theme site, pick your favorite theme from the list and follow the instructions provided in the respective project's home page to install and apply the GRUB theme. + +**Resource:** + +* [Gorgeous GRUB GitHub Repository][15] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/change-grub-theme-in-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/configure-grub-2-boot-loader-settings-ubuntu-16-04/ +[2]: https://github.com/jacksaur/Gorgeous-GRUB +[3]: https://ostechnix.com/wp-content/uploads/2022/07/Download-GRUB-Theme-From-Pling.png +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Enter-Theme-Txt-File-Path-And-Background-Image-Resolution.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Update-GRUB.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/Ubuntu-Default-Grub-Menu.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Updated-GRUB-Menu.png +[8]: https://github.com/vinceliuice/grub2-themes +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-GRUB-Theme-Background.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-Icon-Style.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-Display-Resolution.png +[12]: https://ostechnix.com/wp-content/uploads/2022/07/Install-Tela-Modern-Grub-Theme.png +[13]: https://ostechnix.com/wp-content/uploads/2022/07/Tela-GRUB-Theme.png +[14]: https://ostechnix.com/wp-content/uploads/2022/07/Whitesur-GRUB-Theme-1.png +[15]: https://github.com/jacksaur/Gorgeous-GRUB From 3582f2fb177ad0da6b44ee67d5fbb210ca060334 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:48:02 +0800 Subject: [PATCH 0542/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220727=20How=20To=20Automatically=20Update=20Runni?= =?UTF-8?q?ng=20Docker=20Containers=20Using=20Watchtower.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ning Docker Containers Using Watchtower.md | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md diff --git a/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md new file mode 100644 index 0000000000..06b041b281 --- /dev/null +++ b/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md @@ -0,0 +1,180 @@ +[#]: subject: "How To Automatically Update Running Docker Containers Using Watchtower" +[#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Automatically Update Running Docker Containers Using Watchtower +====== +Automating Docker container base image updates using Watchtower + +Keeping the Docker containers up-to-date is one of the important job of a DevOps engineer. Manually updating Docker containers is a quite time consuming task. This guide explains what is **Watchtower**, how to install Watchtower, and how to **automatically update running Docker containers using Watchtower** in Linux. + +### What Is Watchtower? + +**Watchtower** is a free, open source application that allows you to monitor the running Docker containers and updates them automatically when it finds any changes in their base images. + +When watchtower finds if a running container needs to be updated, it will gracefully stop the running container by sending it a SIGTERM signal. + +It will then download the new image, and finally restart the Container with the same options that were used when it was deployed initially. Everything will be done automatically on the background, so the user intervention is not required. I + +n this guide, we will see how to automatically update running Docker containers using Watchtower in Unix-like operating systems. + +I tested this guide in CentOS and Ubuntu system, however the procedure is same for all Linux distributions. + +### Install Watchtower In Linux + +Watchtower itself is available as a Docker image. So, deploying it is not a big deal. Install Docker on your Linux box, and start running Watchtower to monitor the Docker containers in no time. + +Refer the following guides to install Docker on RPM-based and DEB-based systems. + +* [How To Install Docker In CentOS][1] +* [How To Install Docker In Ubuntu][2] +* [A Beginners Manual To Docker Desktop For Linux][3] + +Once Docker installed, you can deploy the Watchtower container using the following command as **root** user: + +``` +# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower +``` + +If you have installed Docker Desktop, run the Watchtower container as normal user. + +``` +$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower +``` + +This command will pull the latest image of watchtower, and start watchtower container. + +**Sample output:** + +``` +Unable to find image 'containrrr/watchtower:latest' locally +latest: Pulling from containrrr/watchtower +1045b2f97fda: Pull complete +35a104a262d3: Pull complete +1a0671483169: Pull complete +Digest: sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3 +Status: Downloaded newer image for containrrr/watchtower:latest +91c104ef0e9896e8cd5ff30d9f13e728dbfad66443830ec2ac85dde6d7d37564 +``` + +![Run Watchtower Docker Container][4] + +### Automatically Update Running Docker Containers Using Watchtower + +Watchtower has now started with other running containers on your system. You can view the list of running Docker containers using command: + +``` +$ docker ps +``` + +**Sample output:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower +f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 +``` + +As you see in the above output, Watchtower container is running along with another container named **"ostechnix-wordpress-1"**. From now on, Watchtower will start watching this container every few minutes. + +If it finds any changes in the this container's base image, it will gracefully shutdown the "ostechnix-wordpress-1" container, and restart it with new image with same options that were used when it was started initially. + +Similarly, it will automatically check for updates for all running containers every few minutes, and updates them automatically. + +### How Does Watchtower Update Multiple-linked Containers? + +Watchtower is smart enough when it comes to monitoring multiple linked containers. + +Let us say we are running two containers now. + +``` +$ docker ps +``` + +**Sample output:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower +f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 +a895f082438a bitnami/mariadb:10.6 "/opt/bitnami/script…" 20 minutes ago Up 19 minutes 3306/tcp ostechnix-mariadb-1 +``` + +![View Running Docker Containers][5] + +As you see in the above output, we are running two containers i.e. "ostechnix-wordpress-1" and "ostechnix-mariadb-1". The mariadb container is linked to wordpress container. + +If Watchtower finds an update for "wordpress" container, it will first shutdown the linked container i.e "mariadb", and then stop the wordpress container. + +After updating the wordpress container, Watchtower will restart both containers in correct order with the same options that were used when they were deployed initially, so that the application comes back up correctly. In our case, the mariadb container will be started first, followed by wordpress container to ensure that the link continued to work. + +### Monitor A Specific Container + +By default, Watchtower will monitor all Docker containers running within the Docker daemon to which it is pointed. + +However, you can limit watchtower to monitor a particular Docker container by specifying the container's name as shown below. + +``` +$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1 +``` + +In the above example, watchtower will only monitor the container named "ostechnix-wordpress-1" for updates, and other running containers will be ignored. + +If you don't specify any arguments, then watchtower will monitor all running Docker Containers as usual. + +### Sending Notifications + +You may want to receive a notification whenever the containers are updated. You can send notifications via Email, Slack, MSTeams, and Gotify etc. + +The following example shows how to send notification via Email. I assume you already have setup SMTP server. + +``` +docker run -d \ + --name watchtower \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -e WATCHTOWER_NOTIFICATIONS=email \ + -e WATCHTOWER_NOTIFICATION_EMAIL_FROM=fromaddress@gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_TO=toaddress@gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=fromaddress@gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \ + -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \ + containrrr/watchtower +``` + +For more details, refer the Watchtower GitHub repository and Watchtower official website links provided below. + +**Resources:** + +* [Watchtower GitHub][6] +* [Watchtower Website][7] + +> **Recommended Download** - [Free eBook: "Docker Containerization Cookbook"][8] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/automatically-update-running-docker-containers/ + +作者:[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-docker-centos/ +[2]: https://ostechnix.com/install-docker-ubuntu/ +[3]: https://ostechnix.com/docker-desktop-for-linux/ +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Watchtower-Docker-Container.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Docker-Containers.png +[6]: https://github.com/v2tec/watchtower +[7]: https://containrrr.dev/watchtower/ +[8]: https://ostechnix.tradepub.com/free/w_java39/prgm.cgi From 57223e29012097cf7e56a50200f8516c307ea781 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:48:43 +0800 Subject: [PATCH 0543/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220722=20Create=20conditional=20pipelines=20with?= =?UTF-8?q?=20CEL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2 Create conditional pipelines with CEL.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20220722 Create conditional pipelines with CEL.md diff --git a/sources/tech/20220722 Create conditional pipelines with CEL.md b/sources/tech/20220722 Create conditional pipelines with CEL.md new file mode 100644 index 0000000000..aee4430708 --- /dev/null +++ b/sources/tech/20220722 Create conditional pipelines with CEL.md @@ -0,0 +1,152 @@ +[#]: subject: "Create conditional pipelines with CEL" +[#]: via: "https://opensource.com/article/22/7/conditional-tekton-pipelines-cel" +[#]: author: "Camilla Conte https://opensource.com/users/spotlesstofu" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create conditional pipelines with CEL +====== +Control when automated builds happen in Tekton with CEL. + +![Plumbing tubes in many directions][1] + +You just followed a guide to start your Tekton pipeline (or task) when a merge request is created or updated on your GitLab project. So you configured GitLab to send merge request **events** as **webhooks**. And you deployed some **Tekton** components: + +* EventListener: receives webhooks from GitLab +* Trigger: starts your Pipeline every time the EventListener receives a new webhook from GitLab +* Pipeline: fetches the source code from GitLab and builds it + +Then you notice that any event in your merge request (a new comment, a tag change) triggers the pipeline. That's not the behavior you desire. You don't need to build a comment or a tag, after all. You only want the pipeline to run when there is actual new code to build. Here's how I use Tekton's CEL Interceptor to create conditionals for my pipelines. + +### Have your trigger ready + +I expect you have a trigger already defined. It's probably something similar to the snippet below. + +The trigger's interceptor rejects anything that's not coming from a merge request. Still, the interceptor is not able to differentiate between code and non-code updates (like new comments). + +``` +apiVersion: triggers.tekton.dev/v1beta1 +kind: Trigger +metadata: +  name: webhook-listener-trigger +spec: +  interceptors: +    # reject any payload that's not a merge request webhook +    - name: "filter-event-types" +      ref: +        name: "gitlab" +        kind: ClusterInterceptor +      params: +        - name: eventTypes +          value: +            - "Merge Request Hook" +  bindings: +    - ref: binding +  template: +    ref: template +``` + +### Add a CEL interceptor + +Here comes the `cel` interceptor. This interceptor filters the webhook payload using the CEL expression language. If the filter expression evaluates to `true`, the pipeline starts. + +Here I'm checking for the `object_attributes.oldrev` field to exist in the JSON body of the webhook payload. If `object_attributes.oldrev` exists, then that means this event is about a code change. If there wasn't a code change, there's no previous revision (`oldrev` ) to refer to. + +``` +spec: +  interceptors: +    - name: "allow-code-changes-only" +      ref: +        name: cel +        kind: ClusterInterceptor +      params: +        - name: filter +          value: > +            has(body.object_attributes.oldrev) +``` + +Add the new interceptor to your trigger. Now your trigger looks like this: + +``` +apiVersion: triggers.tekton.dev/v1beta1 +kind: Trigger +metadata: +  name: gitlab-listener-trigger +spec: +  interceptors: +    - name: "verify-gitlab-payload" +      ref: +        name: "gitlab" +        kind: ClusterInterceptor +      params: +        - name: eventTypes +          value: +            - "Merge Request Hook" +    - name: "allow-code-changes-only" +      ref: +        name: "cel" +        kind: ClusterInterceptor +      params: +        - name: filter +          value: > +            has(body.object_attributes.oldrev) +  bindings: +    - ref: binding +  template: +    ref: template +``` + +Deploy this new version of the trigger and enjoy the powers of automation. From now on, your pipeline only starts if there is some new code to build. + +### Tips + +There are no limits to the conditions you can set in a CEL filter. + +You may check that the merge request is currently open: + +``` +body.object_attributes.state in ['opened'] +``` + +You can make sure the contributor finished their work on the code: + +``` +body.object_attributes.work_in_progress == false +``` + +You just have to concatenate multiple conditions correctly: + +``` +- name: filter +  value: > +    has(body.object_attributes.oldrev) && +    body.object_attributes.state in ['opened'] && +    body.object_attributes.work_in_progress == false +``` + +Check out the [merge request events][2] documentation to get inspired to write your own conditions. + +You may need the [CEL language definition][3] to know how to translate your thoughts into code. + +To evaluate types other than strings, you want to know the [mapping between JSON and CEL][4] types. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/conditional-tekton-pipelines-cel + +作者:[Camilla Conte][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/spotlesstofu +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/plumbing_pipes_tutorial_how_behind_scenes.png +[2]: https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#merge-request-events +[3]: https://github.com/google/cel-spec/blob/master/doc/langdef.md +[4]: https://github.com/google/cel-spec/blob/master/doc/langdef.md#json-data-conversion From 7befd25b7db367128011c2d8ff1e11379ae09390 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:51:12 +0800 Subject: [PATCH 0544/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220723=20Why=20Design=20Thinking=20is=20a=20box=20?= =?UTF-8?q?office=20hit=20for=20open=20source=20teams.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... a box office hit for open source teams.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sources/talk/20220723 Why Design Thinking is a box office hit for open source teams.md diff --git a/sources/talk/20220723 Why Design Thinking is a box office hit for open source teams.md b/sources/talk/20220723 Why Design Thinking is a box office hit for open source teams.md new file mode 100644 index 0000000000..0802c68ce1 --- /dev/null +++ b/sources/talk/20220723 Why Design Thinking is a box office hit for open source teams.md @@ -0,0 +1,56 @@ +[#]: subject: "Why Design Thinking is a box office hit for open source teams" +[#]: via: "https://opensource.com/article/22/7/design-thinking-open-source-teams" +[#]: author: "Aoife Moloney https://opensource.com/users/aoifemoloney4" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why Design Thinking is a box office hit for open source teams +====== +You need the freedom to express your opinion at work. Why should planning processes try to box us into silos and acquiescence? + +![4 hot skills for Linux pros in 2017][1] + +Image by: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0 + +For the past several years, Design Thinking has been providing a way to enhance problem solving within teams, to ensure learning goals are met, and to increase team engagement. In our [previous article][2], we discussed how we used movie posters to "pitch" our projects to stakeholders. In this article, we're going to review the many lessons we've learned from Design Thinking. + +### The box office reviews + +"If you love what you do, then you’ll never work a day in your life" was the angle we were going for when we decided to break our self-imposed ceiling of needing to be formal and business-like to be able to both plan and deliver work. Our planning team was loving the reaction and engagement we were getting from our stakeholders and wider team from using the movie posters instead of documents. It was at this point that we began to realize how we created this arduous and quite frankly boring way of planning our team's work. We had imposed requirements on ourselves of needing to write up documents, transpose that information into a spreadsheet, and then (yes, a third time) into a slide deck. Product owners and planning teams have to do this four times a year, and the cycle was starting to feel heavy and burdensome to us. + +It's crucial for a product owner or a manager (or whoever is planning a development team's work) to present information about what their team could potentially deliver to stakeholders so that the best decision on where to invest time and resources can be made. But that information had begun to feel like it was just text on a page or screen. Stakeholders weren't really buying into what our planning team was half-heartedly selling. If we didn't enjoy talking about our projects, how could we expect our stakeholders to enjoy discussing them? Our project planning team quickly realized we not only needed to introduce the movie posters for the wider teams' and stakeholders' best interests, but for our own sense of enjoyment in our roles, too. We needed to Kill Bill. + +So with Uma Thurman leading the way in our new concept of using movie posters as cover stories, we found ourselves getting excited about creating new ones for each project request. We were going into each call looking forward to the few moments when the movie posters were unveiled, and those on the calls got a laugh about what was chosen. If they hadn't seen a particular movie before, they often shared that, which resulted in a side conversation where people shared movie trivia and began getting to know each other better. All of this from a software project brief in the style of a *Kill Bill Vol. 2* movie poster. It was incredible to watch the interactions happen and relationships form. The conversations in those calls were freeform, unreserved, and extremely valuable to our planning team. Movie posters got everyone talking, which made it easier for participants on the call to ask for more detail about the project, too. + +Our new and improved planning calls were a "box office smash" and the results spoke for themselves. Our quarterly planning calls went from being 90 plus minutes to under 45 minutes, with both team and stakeholders commenting on how included they felt in the decision making process. A lot of this came from developing and expanding on the requirements and insight gathering sessions we'd conducted in the run up to our quarterly planning calls. This was the last remnant of our formal, stiff approach but there was no denying how useful the information gained from those sessions could be to our projects. So we kept it simple again, and started to introduce the movie posters during what we coined the "insight sessions" instead. Our insight sessions were making a big difference by providing space for people to meet and converse about technical details, potential blockers, risks, and opportunities to leverage one piece of technology against another. This was all happening naturally. The ice had been broken with a reveal of a *Ghostbusters* poster or *A Bugs Life*. People turned on cameras and mics to get involved in the conversation about whether they had seen the movies, the remakes, or the original. It became easy for our planning team to guide the already flowing conversations back to the work at hand. + +### That's a wrap + +We were now delivering valuable, enjoyable, and important calls that were generating a lot of success for our team. Our project delivery success rate hit, and stayed at, 100%. We have never, for three years now, had to halt or drop a project once it's been actioned from quarterly planning. We attribute the high engagement levels on our calls, and we believe people are engaged because our calls are novel and fun while still being informative. We're capturing crucial information about each project before it even begins development, so our teams are able to hit the ground running. + +Yes, planning needs to be considered and measured and thorough, but it's to no one's benefit when only one person is doing the thinking, talking, and measuring. It's important to create a culture of open communication and trust for product owners and project managers, so that they can plan work for their teams and bring real value to their stakeholders and end users. It's even more critical for development teams to have the space and tools to plan openly and collaboratively, both with each other and with adjacent teams. + +You need the freedom to express your opinion at work. Why should planning processes try to box us into silos and acquiescence? That's a quick way to lose friends and gain robots. + +Our team is of the firm belief that people deliver projects. We made some changes when we realized that we needed people, with all of their personalities and perspectives, to see what each project meant to them. Then we could determine which ones to work on. We needed the heart and spirit of Agile methodologies in a process that was open, collaborative, and fun for everyone. + +This way of planning and working together is based on using visuals, and trying to enjoy the work we do and the time we spend together at work. It's a means to promote discussion and move those in planning roles from drivers to facilitators so that a unanimous decision can be reached through shared understanding of the work, and the potential trade-offs that comes with it. We chose movie posters, but the concept can be expanded to just about anything! This is our whole point. You don't have to limit your creativity to plan work. If you like music, make an album! Comics? Design one! Or maybe TV shows are more your speed. Take your pick, my friend—it's your cover story. Tell it in the way you enjoy the most, and enjoy not only the informative projects you will generate for your team, but also the sense of camaraderie everyone will feel from having the freedom and safety to grab a coffee or tea, join a call, and talk amongst friends about movies and technology. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/design-thinking-open-source-teams + +作者:[Aoife Moloney][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/aoifemoloney4 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/lightbulb-idea-think-yearbook-lead.png +[2]: https://opensource.com/article/22/7/design-thinking-engagement-movie-poster From 74e9fc143b33611c15fa0f723ca711b5f3d2184b Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:51:53 +0800 Subject: [PATCH 0545/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220725=20How=20to=20use=20LibreOffice=20Writer=20t?= =?UTF-8?q?emplates.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...How to use LibreOffice Writer templates.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/tech/20220725 How to use LibreOffice Writer templates.md diff --git a/sources/tech/20220725 How to use LibreOffice Writer templates.md b/sources/tech/20220725 How to use LibreOffice Writer templates.md new file mode 100644 index 0000000000..4748e290d5 --- /dev/null +++ b/sources/tech/20220725 How to use LibreOffice Writer templates.md @@ -0,0 +1,101 @@ +[#]: subject: "How to use LibreOffice Writer templates" +[#]: via: "https://opensource.com/article/22/7/libreoffice-writer-templates" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to use LibreOffice Writer templates +====== +Get started writing on Linux in a flash by using a LibreOffice template. + +![Typewriter in the grass][1] + +Image by: Original photo by jetheriot. Modified by Rikki Endsley. CC BY-SA 2.0. + +A staple in any office software suite is the word processor. Whether your needs are small or large, from jotting down a note to writing a book, the word processor gets the job done. Most Linux distributions include the [LibreOffice][2] suite, and I use LibreOffice Writer as my word processor. + +LibreOffice Writer provides lots of flexibility through its toolbar, keyboard shortcuts, and menus. But if you just want to start a document without too much hassle, you can use one of the pre-loaded templates. Here's how to use LibreOffice Writer templates to make your work easier. + +### Start a new document + +LibreOffice Writer starts with a blank document. Most folks just begin writing, but this is also the place to create a new document from a template. + +First, open the **File** menu, then select **New** and **Templates**. This option opens the **Templates** selection: + +![Open templates from the File menu][3] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +The **Templates** selection dialog shows the different templates available on your system. The default LibreOffice Writer installation includes templates for different kinds of business letters, resumes, and other documents. You can browse the list or narrow the results with the filter options at the top of the dialog. + +![Select a template][4] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +Click on the template you want and click **Open** to start a new Writer document using this template. Some templates include boilerplate text or other sample material you can use to get started in your new document. For example, the **Modern business letter** consists of this "lorem ipsum" sample text: + +![Modern business letter template][5] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +Other document templates just give you a starting point in an empty document with some nice-looking defaults. For example, the **Modern** document template uses a sans-serif font (such as Carlito on Linux systems) for the text body: + +![Modern template][6] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +### Download a template + +You can download a suitable document template from LibreOffice's website if you don't find the template you're looking for in the built-in choices. Navigate to [LibreOffice Extensions][7] to start working with the LibreOffice extensions and templates library. + +![Templates and extensions options][8] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +Enter a search term in the box to find the document template you need. For example, students might search for "APA" to find document templates already set up for APA style, a common style for academic papers. + +![APA format template][9] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +### Wrap up + +If you need to write a document, explore the LibreOffice templates to find one that works for you. Using templates means you spend less time setting up a document to look a certain way and instead get to work faster. Look for other document templates in the LibreOffice extensions and templates library that support your work. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/libreoffice-writer-templates + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/doc-dish-lead.png +[2]: https://www.libreoffice.org/ +[3]: https://opensource.com/sites/default/files/2022-07/1new-file-template.png +[4]: https://opensource.com/sites/default/files/2022-07/2templates-selection.png +[5]: https://opensource.com/sites/default/files/2022-07/3modern-bus-letter.png +[6]: https://opensource.com/sites/default/files/2022-07/4modern-template.png +[7]: https://templates.libreoffice.org/ +[8]: https://opensource.com/sites/default/files/2022-07/5temps-and-extensions.png +[9]: https://opensource.com/sites/default/files/2022-07/6apa-template.png From f16af3b472565cc471bf8f50960ad3128ab65135 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:53:00 +0800 Subject: [PATCH 0546/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220726=20Shrink=20PDFs=20with=20this=20Linux=20too?= =?UTF-8?q?l.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220726 Shrink PDFs with this Linux tool.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/tech/20220726 Shrink PDFs with this Linux tool.md diff --git a/sources/tech/20220726 Shrink PDFs with this Linux tool.md b/sources/tech/20220726 Shrink PDFs with this Linux tool.md new file mode 100644 index 0000000000..76785afd37 --- /dev/null +++ b/sources/tech/20220726 Shrink PDFs with this Linux tool.md @@ -0,0 +1,95 @@ +[#]: subject: "Shrink PDFs with this Linux tool" +[#]: via: "https://opensource.com/article/22/7/shrink-pdfs-minuimus-linux" +[#]: author: "Howard Fosdick https://opensource.com/users/howtech" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Shrink PDFs with this Linux tool +====== +Minuimus is an open source program used to reduce PDF storage space by 10% to 20% without altering the data. + +![Filing cabinet for organization][1] + +Excluding HTML, PDF files are probably the most popular document format on the web. Unfortunately, they're not compact. For example, I like to download free eBooks. A quick glance at my eBook directory shows that its 75 PDF files consume about 500 megabytes. On average, that's over 6.6 MB for each PDF file. + +Couldn't I save some storage space by compressing those files? What if I want to send a bundle of them through email? Or host them for download on a website? The transmission would be faster if these files were made smaller. This article shows a simple way to reduce PDF file size. The benefit is that it shrinks your PDFs transparently without altering the data content in any way. Plus, you can also compact many PDF files with a single command. + +Compare this to the alternatives. You could upload your PDF files to one of the many online file compression websites. Several are free, but you risk the privacy of your documents by uploading them to an unknown website. More importantly, most websites shrink PDFs by tampering with the images they contain. They either change their resolution or their sizes. So you trade lower image quality to get smaller PDF files. That's the same trade-off you face using interactive apps like LibreOffice, or Ghostscript line commands like`gs` and `ps2pdf`. The technique we'll illustrate in this article compacts PDFs without altering either the images they contain or their data content. And you can reduce many PDFs with a single line command. Let's get started. + +### Identify and delete big unused PDFs on Linux + +Before you spend time and effort compacting PDF files, identify your largest ones and delete those you don't need. This command lists the 50 biggest PDFs in its directory tree, ordered by descending size: + +``` +$ find  -type f  -exec  du -Sh {} +  |  grep .pdf | sort -rh  |  head -n 50 +``` + +From the output, you can easily identify and eliminate duplicates. You can also delete obsolete files. Getting rid of these space hogs yields big benefits. Now you know which PDFs are the high payback candidates for the reduction technique we'll now cover. + +### Transparently compact PDFs + +We'll use the open source [Minuimus][2] program to compact PDFs. Minuimus is a generalized command-line utility that performs all sorts of useful file conversions and compressions. To shrink PDFs, Minuimus unloads and then rebuilds them, gaining numerous efficiencies along the way. It does this transparently, without altering your data in any way. + +To use Minuimus, download its [zip file.][3] Then install it as its documentation explains, with these commands: + +``` +$ make deps      # Installs all required supporting packages +$ make all       # Compiles helper binaries +$ make install   # Copies all needed files to /usr/bin +``` + +Minuimus is a Perl script, so you run it like this: + +``` +$ minuimus.pl  input_file.pdf    # replaces the input file with compressed output +``` + +When it runs, Minuimus immediately makes a backup of your original input file. It only replaces the input file with its compacted version after it fully verifies data accuracy by comparing before and after bitmaps representing the data. + +A big benefit to Minuimus is that it validates any PDF file it works on. I've found that it gives intelligent, helpful error messages if it encounters any problems. For example, on one of my computers, Minuimus said that it couldn't properly invoke a utility it uses called `leanify`. Yet it still shrunk the PDFs and ran to successful completion. + +Here's how to compact many files in one command. This compresses all the PDF files in a directory: + +``` +$ minuimus.pl *.pdf +``` + +If you have lots of PDFs to convert, Minuimus might process for a while. So if you're converting hundreds of PDFs, for example, you might want to run Minuimus as a background job. Schedule it for off-hours through your GUI scheduler or as a Cron job. + +Be sure to redirect its output from the terminal to files so that you can easily review it later: + +``` +$ minuimus.pl *.pdf  1>output_messages.txt  2>error_messages.txt +``` + +### How much space will you reclaim? + +Unfortunately, there's no way to predict how much space Minuimus can save. That's because PDFs contain anything from text to images of all different kinds. They vary enormously. I ran Minuimus on my download directory of PDF books. The directory contained 75 PDFs consuming about 500 MB. Minuimus reduced it by about 11%, to about 445 MB. That's impressive for an algorithm that doesn't change the data. + +Across a large group of PDFs, size reduction of 10% to 20% appears common. The biggest files often shrink the most. Processing a collection of big PDFs often reclaims much more space than processing many small PDFs. Some PDF files show really dramatic space savings. That's because some applications create absolutely hideous PDFs. I call those files "PDF monsters." You can slay them with a single Minuimus command. + +For example, while writing this article, Minuimus knocked an 85 megabyte PDF down to 32 meg. That's just 38% of its original size. The program slimmed several other monsters by 50%, recovering tens of megabytes. This is why I began this article by introducing a command to list your biggest PDF files. If Minuimus identifies a few monsters you can slay, you can reclaim major disk space for free. + +### Shrink PDFs with Minuimus + +PDF files are useful and ubiquitous. But they often consume a good deal of storage space. Minuimus makes it easy to reduce PDF storage space by 10% to 20% without altering the data. Perhaps its biggest benefit is identifying and transforming malformed "PDF monsters" into smaller, more manageable files. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/shrink-pdfs-minuimus-linux + +作者:[Howard Fosdick][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/howtech +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/files_documents_organize_letter.png +[2]: http://birds-are-nice.me/software/minuimus.html +[3]: http://birds-are-nice.me/software/minuimus.zip From 8d40a48c68a2bb05349e56b74d4517618b90d363 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:53:45 +0800 Subject: [PATCH 0547/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220726=20How=20I=20use=20Bash=20to=20automate=20ta?= =?UTF-8?q?sks=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...w I use Bash to automate tasks on Linux.md | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sources/tech/20220726 How I use Bash to automate tasks on Linux.md diff --git a/sources/tech/20220726 How I use Bash to automate tasks on Linux.md b/sources/tech/20220726 How I use Bash to automate tasks on Linux.md new file mode 100644 index 0000000000..0a3635e515 --- /dev/null +++ b/sources/tech/20220726 How I use Bash to automate tasks on Linux.md @@ -0,0 +1,143 @@ +[#]: subject: "How I use Bash to automate tasks on Linux" +[#]: via: "https://opensource.com/article/22/7/use-bash-automate-tasks-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use Bash to automate tasks on Linux +====== +Bash has a few handy automation features that make my life easier when working with files on Linux. + +![bash logo on green background][1] + +Image by: Opensource.com + +The Bash command line is a great way to automate tasks. Whether you are running Linux on a server and need to manipulate log files or other data, or you're a desktop user who just wants to keep files tidy, you can use a few automation features in Bash to make your work easier. + +### Linux for command: Automate tasks on a files + +If you have a bunch of files to work on at once, and you need to do the same thing with every file, use the `for` command. This command iterates across a list of files, and executes one or more commands. The `for` command looks like this: + +``` +for variable in list +do +    commands +done +``` + +I've added some extra spacing in there to help separate the different parts of the `for` command. That multi-line command might look difficult to run on the command line, but you can use `;` to put everything on one line, like this: + +``` +for variable in list ; do commands ; done +``` + +Let's see it in action. One way I use the `for` command is to rename a bunch of files. Most recently, I had a bunch of screenshots that I wanted to rename. The screenshots had names like `filemgr.png` or `terminal.png` and I wanted to put `screenshot` before each name instead. I ran a single `for` command to rename thirty files at once. Here's an example with just two files: + +``` +$ ls +filemgr.png  terminal.png +$ for f in *.png ; do mv $f screenshot-$f ; done +$ ls +screenshot-filemgr.png  screenshot-terminal.png +``` + +The `for` command makes it easy to perform one or more actions on a set of files. You can use a variable name that is meaningful to you, such as `image` or `screenshot`, or you can use a "shorthand" variable like `f`, as I did in my example. When I write scripts that use a `for` loop, I try to use meaningful variable names. But when I'm using `for` on the command line, I'll usually use a short variable name like `f` for files or `d` for directories. + +Whatever name you choose for your variable, be sure to reference the variable using `$` in the command. This expands the variable to the name of the file you are acting on. Type `help for` at your Bash prompt to learn more about the `for` command. + +### Linux conditional execution (if) + +Looping across a set of files with `for` is helpful when you need to do the same thing with every file. But what if you need to do something different for certain files? For that, you need conditional execution with the `if` statement. The `if` statement looks like this: + +``` +if test +then +    commands +fi +``` + +You can also do *if/else* tests by using the `else` keyword: + +``` +if test +then +    commands +else +    commands +fi +``` + +For more complicated processing, you can use *if/else-if/else* evaluations. I might use this in a script, when I need to automate a job to process a collection of files at once: + +``` +if test +then +    commands +elif test2 +then +    commands +elif test3 +then +    commands +else +    commands +fi +``` + +The `if` command allows you to perform many different tests, such as *if* a file is really a file, or *if* a file is empty (zero size). Type `help test` at your Bash prompt to see the different kinds of tests you can use in an `if` statement. + +For example, let's say I wanted to clean up a log directory that had several dozen files in it. A common task in log management is to delete any empty logs, and compress the other logs. The easiest way to tackle this is to just delete the empty files. There isn't an `if` test that exactly matches that, but we have `-s` file to test *if* something is a file, and *if* the file is not empty (it has a size). That's the opposite of what we want, but we can negate the test with `!` to see *if* something is not a file or is empty. + +Let's look at an example to see this at work. I've created two test files: one is empty, and the other contains some data. We can use `if` to print the message "empty" *if* the file is empty: + +``` +$ ls +datafile  emptyfile +$ if [ ! -s datafile ] ; then echo "empty" ; fi +$ if [ ! -s emptyfile ] ; then echo "empty" ; fi +empty +``` + +We can combine this with for to examine a list of log files to delete the empty files for us: + +``` +$ ls -l +total 20 +-rw-rw-r--. 1 jhall jhall 2 Jul  1 01:02 log.1 +-rw-rw-r--. 1 jhall jhall 2 Jul  2 01:02 log.2 +-rw-rw-r--. 1 jhall jhall 2 Jul  3 01:02 log.3 +-rw-rw-r--. 1 jhall jhall 0 Jul  4 01:02 log.4 +-rw-rw-r--. 1 jhall jhall 2 Jul  5 01:02 log.5 +-rw-rw-r--. 1 jhall jhall 0 Jul  6 01:02 log.6 +-rw-rw-r--. 1 jhall jhall 2 Jul  7 01:02 log.7 +$ for f in log.* ; do if [ ! -s $f ] ; then rm -v $f ; fi ; done +removed 'log.4' +removed 'log.6' +$ ls -l +total 20 +-rw-rw-r--. 1 jhall jhall 2 Jul  1 01:02 log.1 +-rw-rw-r--. 1 jhall jhall 2 Jul  2 01:02 log.2 +-rw-rw-r--. 1 jhall jhall 2 Jul  3 01:02 log.3 +-rw-rw-r--. 1 jhall jhall 2 Jul  5 01:02 log.5 +-rw-rw-r--. 1 jhall jhall 2 Jul  7 01:02 log.7 +``` + +Using the `if` command can add some intelligence to scripts, to perform actions only when needed. I often use `if` in scripts when I need to test *if* a file does or does not exist on my system, or *if* the entry the script is examining is a file or directory. Using `if` allows my script to take different actions as needed. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/use-bash-automate-tasks-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png From 23c13c5a11f40bff6556623546ae9fca556caf44 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:54:29 +0800 Subject: [PATCH 0548/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220727=20My=20honest=20review=20of=20the=20HP=20De?= =?UTF-8?q?v=20One.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0727 My honest review of the HP Dev One.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/talk/20220727 My honest review of the HP Dev One.md diff --git a/sources/talk/20220727 My honest review of the HP Dev One.md b/sources/talk/20220727 My honest review of the HP Dev One.md new file mode 100644 index 0000000000..fce898e82d --- /dev/null +++ b/sources/talk/20220727 My honest review of the HP Dev One.md @@ -0,0 +1,121 @@ +[#]: subject: "My honest review of the HP Dev One" +[#]: via: "https://opensource.com/article/22/7/hp-dev-one-review" +[#]: author: "Anderson Silva https://opensource.com/users/ansilva" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +My honest review of the HP Dev One +====== +Here are my first impressions of the hardware, running the pre-installed Pop!_OS, and running Fedora on HP's new Linux-based laptop. + +![Working from home at a laptop][1] + +Image by: + +Opensource.com + +A few weeks ago, HP joined the bandwagon of major laptop manufacturers releasing a Linux-based laptop, the [HP Dev One][2]. The brand joins others such as Lenovo and Dell, offering a laptop with a pre-installed distribution of Linux in the US market. HP joined forces with smaller Linux-based laptop brand System76 to pre-install Pop!_OS as their distribution of choice on the device. Pop!_OS is a Ubuntu-based distribution, which System76 started (and is currently the primary maintainer) to maximize the features of its own laptops sold on its website. + +This article is a quick look at the HP Dev One, including first impressions of the hardware itself and running the pre-installed Pop!_OS and then Fedora on it after a few days. It is not about comparing them, just a few notes on how well they did on the HP Dev One. + +### HP Dev One hardware + +I haven’t owned an HP laptop in over a decade. I don’t even remember why I distanced myself from the brand, but somehow it just happened. So, when I read about the HP Dev One, several things sparked my interest. Here’s a list of them. Some may be silly or nit-picking, but they still carried some weight in my decision: + +* The most obvious reason was it came with Linux and not Windows. +* I have never used Pop!_OS, so the fact that HP chose Pop!_OS made me curious to use it. +* I have never owned an AMD-based laptop. The HP Dev One comes with an AMD RYZEN™ 7 PRO 5850U Processor with eight cores and 16 threads. +* The specs versus price seemed good. The price is $1099 USD, which is very reasonable compared to other brands with similar specs. +* No Windows key on the keyboard. Instead, it says “super,” which I think is cool. +* Upgradeable RAM. The laptop comes with 16 GB of RAM, but unlike so many laptops nowadays, it is not soldered on the board, so you can upgrade it (more on upgrading below). +* The laptop was in stock with a commitment for fast shipping. +* Reviews were favorable. + +For all of the reasons above, I ordered it, and two days later, I had the HP Dev One on my doorstep. + +![HP Dev One super key][3] + +Image by: + +(Anderson Silva, CC BY-SA 4.0) + +By the time the laptop arrived, the extra 64 GB of RAM I had ordered had also arrived, so the first thing I wanted to do was upgrade the RAM. It turned out that the bottom plate of the HP Dev One has very small, special (yet not proprietary) screws, so I had to run to the hardware store to get the proper screwdriver. + +![HP Dev One RAM upgrade][4] + +Image by: + +(Anderson Silva, CC BY-SA 4.0) + +I agree with [other online reviews][5] regarding the quality of the laptop. It does feel sturdy. The trackpad feel is good enough, and I had no issue with it. I found the keyboard not to be as good as some other reviewers claim. To me, the keys are a little heavy, and they feel almost a bit like silicone or rubber. I didn't find it terribly comfortable. In fact, I am typing this article in the HP Dev One, and I almost feel like I need to take a break here and there to let my fingertips rest. + +The 1080p screen is bright, but also very reflective. If you are a Thinkpad trackpoint fan, you will definitely enjoy this feature on the HP Dev One. The backlit keyboard is nice, and the built-in camera cover is something more laptops should adopt. + +![HP Dev One top view][6] + +Image by: + +(Anderson Silva, CC BY-SA 4.0) + +One question or possible issue I have with the HP Dev One is the fact that their website talks about the one-year customer service and warranty on the machine, but I haven’t been able to find a way to extend that warranty or even upgrade to something more premium like an onsite or next day part replacement in case I were ever to need it. + +### Pop!_OS on HP Dev One + +As previously mentioned, I’ve never used Pop!_OS. I’ve used Ubuntu and many other distributions, but to me, Pop!_OS was a relatively familiar yet new experience. Here are a few notes: + +#### The good + +* Coming from a Fedora and mostly vanilla GNOME background, the four-finger gesture in Pop!_OS took a little getting used to, but once I got into it, it made navigating their implementation of GNOME borderline fun. +* The Pop!_OS’s software shop is called Pop!_Shop. It contains a great variety of software without any need to enable special repositories. It is easy to use, and installation is fast. +* The integration between Pop!_OS and the hardware really is well done. Congratulations to both System76 and HP engineers for putting this machine together. +* Pop!_OS has a nice built-in feature for backup and restoring your installation w/o destroying your home directory. +* I installed Steam and a few games, and it worked pretty well. +* I ran a couple of test containers with podman, and it worked very nicely as well. +* I installed a virtual machine, and it ran very smoothly, too. + +#### The not so good + +* The default wallpaper that comes with the HP Dev One looks a bit fuzzy to me. For such a nice machine, it feels like the wallpaper is running at the wrong resolution. To be fair, there are other wallpapers to choose from in the Settings. +* The out-of-the-box fonts for Pop!_OS could be better. I find them hard to read, and in my opinion, it makes the UI too crammed. +* Adding the USB-C powered 4K monitor worked OK, but my eyes noticed slight flickering in some parts of the screen. Could this be an X11 issue, given that Pop!_OS defaults to X11? + +### Fedora on HP Dev One + +I played around with Pop!_OS for about two days before deciding to boot into Fedora using a live USB media. I did that first to see what type of hardware detection Fedora could do out of the box. To my surprise, everything worked right away. That’s when I decided to wipe the entire 1 TB SSD and install Fedora on the HP Dev One. As promised, this is not a Fedora vs. Pop!_OS comparison article; it is merely a few notes on both distributions running on this Linux-focused hardware. + +In case you haven’t read my bio in this article, and for the sake of transparency, I am a Fedora contributor, so it is fair for me to say that I am biased towards the Fedora distribution, but don’t let that make you think I recommend Fedora over Pop!_OS on the HP Dev One. They are both great distributions, and they both run very nicely on it. Take your pick! + +I can tell you that Fedora runs smoothly on the HP Dev One, and although there may be some performance tuning to match some of the benchmark numbers against Pop!_OS, I have been very pleased with its performance. Using the three-finger gestures to move between virtual desktops is a lot more natural to me than the four-finger ones in Pop!_OS, and I’ve been able to run Steam and Proton-based games on Fedora just like Pop!_OS. + +The only comparison I will make is that when using the secondary USB-C 4K monitor with Fedora, I did not experience any flickering. Was it because of Wayland? + +### Final thoughts + +I’ve had the HP Dev One for a little over four days now, and I’ve run Pop!_OS and Fedora on it so far. I even restored Pop!_OS after a full Fedora installation, which was a very easy process. Somehow, Pop!_OS detected it was an HP Dev One and did all the needed installation, including the HP-based wallpapers, without me having to do any extra steps. + +As I finished this article, yet again, I went back to Fedora (force of habit), but I wouldn’t have any issue staying on Pop!_OS on the HP Dev One. Who knows, maybe I might even try different distributions in the future. + +At the end of the day, the HP Dev One is a solid Linux laptop without a Windows key and no AMD, Intel, or Windows stickers on it. It is fast, feels well built, and is reasonably priced especially given how quickly it ships to you (US only). I would love to see HP provide more documentation on their website about extending the warranty, and I hope they will be able to make this laptop available in other parts of the world. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/hp-dev-one-review + +作者:[Anderson Silva][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/ansilva +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png +[2]: https://hpdevone.com/ +[3]: https://opensource.com/sites/default/files/2022-07/superkey.jpg +[4]: https://opensource.com/sites/default/files/2022-07/ram.jpg +[5]: https://www.techrepublic.com/article/system76-hp-perfect-dev-one/ +[6]: https://opensource.com/sites/default/files/2022-07/topview.jpg From eb647f20d59458f603a99800dca3c49fe6f4284b Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 27 Jul 2022 23:55:09 +0800 Subject: [PATCH 0549/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220727=20How=20I=20manage=20files=20from=20the=20L?= =?UTF-8?q?inux=20command=20line.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...anage files from the Linux command line.md | 191 ++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 sources/tech/20220727 How I manage files from the Linux command line.md diff --git a/sources/tech/20220727 How I manage files from the Linux command line.md b/sources/tech/20220727 How I manage files from the Linux command line.md new file mode 100644 index 0000000000..27f076ba08 --- /dev/null +++ b/sources/tech/20220727 How I manage files from the Linux command line.md @@ -0,0 +1,191 @@ +[#]: subject: "How I manage files from the Linux command line" +[#]: via: "https://opensource.com/article/22/7/manage-files-linux-command-line" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I manage files from the Linux command line +====== +If you prefer to interact with your system through the terminal, check out my favorite Linux commands for managing files. + +![Files in a folder][1] + +Managing files in a graphical desktop like GNOME or KDE is an exercise in point-and-click. To move a file into a folder, you click and drag the icon to its new home. To remove a file, you drag it into the “Trash” icon. The graphical interface makes desktop computing easy to use. + +But we don't always interact with Linux systems with a graphical interface. If you work on a server, you likely need to use the command line to get around. Even desktop users like me might prefer to interact with their system through a terminal and command line. I tend to rely on a few commands to manage my files from the command line: + +### List files with Linux ls + +``` +ls +``` + +For anyone who uses the command line, you can't get far without seeing what's there. The [ls command][2] lists the contents of a directory. For example, to look at what's in a web server's document root in `/var/www/html`, you can type: + +``` +ls /var/www/html +``` + +Most of the time, I use `ls` to look at the directory I'm in. To do that, just type `ls` to list everything. For example, when I'm in the root directory of my web project, I might see this: + +``` +$ ls +about fontawesome fonts index.php styles +docs fontawesome.zip images prism +``` + +The `ls` command has about 60 command line options that can list files and directories in all kinds of ways. One useful option is `-l` to provide a long or detailed listing, including permissions, file size, and owner: + +``` +$ ls -l + +total 6252 +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 about +drwxr-xr-x. 2 jhall jhall 4096 Jun 25 16:35 docs +drwxr-xr-x. 2 jhall jhall 4096 Jun 7 00:00 fontawesome +-rw-r--r--. 1 jhall jhall 6365962 Jun 2 16:26 fontawesome.zip +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 fonts +drwxr-xr-x. 2 jhall jhall 4096 Jun 25 13:03 images +-rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 prism +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 styles +``` + +File sizes are shown in bytes, which may not be useful if you are looking at very large files. To see file sizes in a format that is helpful to humans, add the `-h` or `--human-readable` option to print sizes with `G` for Gigabyte, `M` for Megabyte, and `K` for Kilobyte: + +``` +$ ls -l --human-readable +total 6.2M +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 about +drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 16:35 docs +drwxr-xr-x. 2 jhall jhall 4.0K Jun 7 00:00 fontawesome +-rw-r--r--. 1 jhall jhall 6.1M Jun 2 16:26 fontawesome.zip +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 fonts +drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 13:03 images +-rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 prism +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 styles +``` + +Rather than `6365962` for the file size, `ls` now displays the zip file as `6.1M` or just over 6 MB in size. + +### View files with Linux cat, head, and tail + +``` +cat +``` + +``` +head +``` + +``` +tail +``` + +The next step after listing files is examining what each file contains. For that, I use a few commands. Starting with the `docs` directory on my web server: + +``` +$ ls docs +chapter1.tex chapter4.tex chapter7.tex lorem.txt +chapter2.tex chapter5.tex chapter8.tex readme.txt +chapter3.tex chapter6.tex chapter9.tex workbook.tex +``` + +What are these files? Fortunately, this directory has a `readme.txt` file, which I might assume contains a description of the files in this project directory. If the file is not too long, I can view it using the `cat` command: + +``` +$ cat docs/readme.txt +This is the workbook for the C programming self-paced +video series. The main file is the workbook.tex file, +which includes the other chapters. +``` + +If a file is very long, I can look at just the first few lines using the `head` command. This displays a certain number of lines from the file, usually the first 10 lines unless you tell `head` otherwise with the `-n` or `--lines` option. For example, these two versions of the `head` command examine the first three lines of the `lorem.txt` file: + +``` +$ head -n 3 docs/lorem.txt +Lorem ipsum dolor sit amet, consectetur adipiscing +elit. Nullam at ligula eget nunc feugiat pharetra. Nullam +nec vulputate augue. Suspendisse tincidunt aliquet +$ head --lines=3 docs/lorem.txt +Lorem ipsum dolor sit amet, consectetur adipiscing +elit. Nullam at ligula eget nunc feugiat pharetra. Nullam +nec vulputate augue. Suspendisse tincidunt aliquet +``` + +If I instead wanted to see the last few lines of a file, I can use the `tail` command in the same way. Again, these two `tail` commands each show the last three lines of the `lorem.txt` file: + +``` +$ tail -n 3 docs/lorem.txt +egestas sodales. Vivamus tincidunt ex sed tellus tincidunt +varius. Nunc commodo volutpat risus, vitae luctus lacus +malesuada tempor. Nulla facilisi. +$ tail --lines=3 docs/lorem.txt +egestas sodales. Vivamus tincidunt ex sed tellus tincidunt +varius. Nunc commodo volutpat risus, vitae luctus lacus +malesuada tempor. Nulla facilisi. +``` + +Using `head` and `tail` are also useful when examining log files on a server. I have a small web server I run on my at-home network to test websites before I make them live. I recently discovered that the web server's log is quite long, and I wondered how old it was. Using `head`, I printed just the first line to see that the log file was created in December 2020: + +``` +$ ls -l --human-readable /var/log/httpd +total 13M +-rw-r--r--. 1 root root 13M Jun 25 16:23 access_log +-rw-r--r--. 1 root root 45K Jun 2 00:00 error_log +$ sudo head -n 1 /var/log/httpd/access_log +10.0.0.177 - - [05/Dec/2020:14:58:35 -0600] "GET / HTTP/1.1" 403 5564 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" +``` + +**[[ Related read: Getting started with the Linux cat command ]][3]** + +### Delete files with Linux rm + +``` +rm +``` + +In my directory with the sample text files, the `lorem.txt` file contains *Lorem Ipsum* text. This is just dummy text used in the printing industry, so the `lorem.txt` file doesn't really belong in this project. Let's delete it. The `rm` command removes a file like this: + +``` +$ ls docs +chapter1.tex chapter4.tex chapter7.tex lorem.txt +chapter2.tex chapter5.tex chapter8.tex readme.txt +chapter3.tex chapter6.tex chapter9.tex workbook.tex +$ rm docs/lorem.txt +$ ls docs +chapter1.tex chapter4.tex chapter7.tex readme.txt +chapter2.tex chapter5.tex chapter8.tex workbook.tex +chapter3.tex chapter6.tex chapter9.tex +``` + +The `rm` command is dangerous, because it removes a file without the intervention of a trash or recycle bin. It's much safer to install a trash command, such as [trashy][4] or [trash-cli][5]. Then you can send files to a staging area before deleting them forever: + +``` +$ rm docs/lorem.txt +``` + +Managing files on the command line requires only a few commands. The `ls` command lists the contents of a directory, and `cat`, `head` and `tail` show the contents of files. Use `rm` or a safe "trash" command to remove files you don't need. These five commands will help you manage your files on any Linux system. To learn more, including the options available, use the `--help` option to see a summary of how to use each command, such as `ls --help` to see how to use the `ls` command. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/manage-files-linux-command-line + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/files_documents_paper_folder.png +[2]: https://opensource.com/article/19/7/master-ls-command +[3]: https://opensource.com/article/19/2/getting-started-cat-command +[4]: https://gitlab.com/trashy/trashy +[5]: https://github.com/andreafrancia/trash-cli From 29eb5b69dfd55601a5efadd2ae2fab0e3efeec7b Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 28 Jul 2022 08:31:15 +0800 Subject: [PATCH 0550/3123] translated --- ...u need to know before learning ReactJS-.md | 74 ------------------ ...u need to know before learning ReactJS-.md | 75 +++++++++++++++++++ 2 files changed, 75 insertions(+), 74 deletions(-) delete mode 100644 sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md create mode 100644 translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md diff --git a/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md b/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md deleted file mode 100644 index 400aef110e..0000000000 --- a/sources/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "How much JavaScript do you need to know before learning ReactJS?" -[#]: via: "https://opensource.com/article/22/7/learn-javascript-before-reactjs" -[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How much JavaScript do you need to know before learning ReactJS? -====== -The main idea is to be good in JavaScript so you can reduce the complexity of your ReactJS journey. - -React is a UI framework built on top of HTML, CSS, and JavaScript, where JavaScript (JS) is responsible for most of the logic. If you have knowledge of variables, data types, array functions, callbacks, scopes, string methods, loops, and other JS DOM manipulation-related topics, these will tremendously speed up the pace of learning ReactJS. - -Your concept of modern JavaScript will dictate the pace of how soon you can get going with ReactJS. You don't need to be a JavaScript expert to start your ReactJS journey, but just as knowledge of ingredients is a must for any chef hoping to master cooking, the same is true for learning ReactJS. It's a modern JavaScript UI library, so you need to know some JavaScript. The question is, how much? - -### Example explanation - -Suppose I'm asked to write an essay about a "cow" in English, but that I know nothing about the language. In this case, for me to successfully complete the task, I should not only have an idea about the topic but also the specified language. - -Assuming that I acquire some knowledge about the topic (a cow), how can I calculate the amount of English I need to know to be able to write about the proscribed topic? What if I have to write an essay on some other complex topics in English? - -It’s difficult to figure that out, isn’t it? I don’t know what things I'm going to write about the topic, but it could be anything. So to get started, I have to have a proper knowledge of the English language, but it doesn't end there. - -### Extreme reality - -The same is true for the amount of JavaScript required before getting started with ReactJS. According to my example scenario, ReactJS is the topic "cow" while JavaScript is the English language. It's important to have a strong grasp of JavaScript to be successful in ReactJS. One is very unlikely to master ReactJS professionally without having the proper foundation of JavaScript. No matter how much knowledge I might have about the topic, I won’t be able to express myself properly if I don't know the fundamentals of the language. - -### How much is enough? - -In my experience, when you start your ReactJS journey, you should already be familiar with: - -* variables -* data types -* string methods -* loops -* conditionals - -You should be familiar with these specifically in JavaScript. But these are just the bare minimum prerequisites. When you try to create a simple React app, you'll inevitably need to handle events. So, the concept of normal functions, function expressions, statements, arrow function, the difference between an arrow function and a regular function, and the lexical scoping of `this` keyword in both types of function is really important. - -But the question is, what if I have to create a complex app using ReactJS? - -### Get inspired - -Handling events, spread operators, destructuring, named imports, and default imports in JavaScript will help you understand the working mechanism of React code. - -Most importantly, you must understand the core concepts behind JavaScript itself. JavaScript is asynchronous by design. Don't be surprised when code appearing at the bottom of a file executes before code at the top of the file does. Constructs like promises, callbacks, async-await, map, filter, and reduce, are the most common methods and concepts in ReactJS, especially when developing complex applications. - -The main idea is to be good in JavaScript so you can reduce the complexity of your ReactJS journey. - -### Getting good - -It's easy for me to say what you need to know, but it's something else entirely for you to go learn it. Practicing a lot of JavaScript is essential, but you might be surprised that I don't think it means you necessarily have to wait until you master it. There are certain concepts that are important beforehand, but there's a lot you can learn as you go. Part of practicing is learning, so you get started with JavaScript and even with some of the basics of React, as long as you move at a comfortable pace and understand that doing your "homework" is a requirement before you attempt anything serious. - -### Get started with JavaScript now - -Don't bother waiting until you cover all aspects of JavaScript. That's never going to happen. If you do that, you'll get trapped in that forever-loop of learning JavaScript. And you all know how constantly evolving and rapidly changing the tech field is. If you want to start learning JavaScript, try reading Mandy Kendall's introductory article [Learn JavaScript by writing a guessing game][2]. It's a great way to get started quickly, and once you see what's possible I think you're likely to find it difficult to stop. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/learn-javascript-before-reactjs - -作者:[Sachin Samal][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/sacsam005 -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/OSDC_women_computing_5.png -[2]: https://opensource.com/article/21/1/learn-javascript diff --git a/translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md b/translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md new file mode 100644 index 0000000000..c79bf15c83 --- /dev/null +++ b/translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md @@ -0,0 +1,75 @@ +[#]: subject: "How much JavaScript do you need to know before learning ReactJS?" +[#]: via: "https://opensource.com/article/22/7/learn-javascript-before-reactjs" +[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +学习 ReactJS 之前,你需要了解多少 JavaScript? +====== +主要的想法是精通 JavaScript,这样你就可以减少 ReactJS 之旅的复杂性。 + +React 是一个建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 JavaScript(JS)负责大部分的逻辑。如果你对变量、数据类型、数组函数、回调、作用域、字符串方法、循环和其他 JS DOM 操作相关的主题有一定了解,这些将极大地加快学习 ReactJS 的步伐。 + +你对现代 JavaScript 的概念将决定你能多快地掌握 ReactJS 的步伐。你不需要成为一个 JavaScript 专家来开始你的 ReactJS 之旅,但就像对食材的了解是任何希望掌握烹饪的厨师所必须的一样,学习 ReactJS 也是如此。它是一个现代的 JavaScript UI 库,所以你需要了解一些 JavaScript。问题是,需要多少? + +### 示例解释 + +假设我被要求用英语写一篇关于“牛”的文章,但我对这种语言一无所知。在这种情况下,为了让我成功地完成任务,我不仅要对主题有概念,还要对指定的语言有概念。 + +假设我获得了一些关于主题(牛)的知识,我如何计算我需要知道多少英语才能写出规定的主题?如果我必须用英语写一篇关于其他复杂话题的文章呢? + +这很难搞清楚,不是吗?我不知道我要写关于这个话题的什么东西,但它可能是任何东西。所以要想开始,我必须要有适当的英语知识,但这还没有结束。 + +### 极端现实 + +在开始使用 ReactJS 之前,所需的 JavaScript 数量也是如此。根据我的例子情景,ReactJS 是话题“牛”,而 JavaScript 是英语。要想在 ReactJS 中获得成功,对 JavaScript 的掌握很重要。如果没有适当的 JavaScript 基础,一个人是很难专业地掌握 ReactJS 的。无论我对这个主题有多少知识,如果我不知道语言的基础,我就不能正确地表达自己。 + +### 多少才算够? + +根据我的经验,当你开始你的 ReactJS 之旅时,你应该已经熟悉了: + +* 变量 +* 数据类型 +* 字符串方法 +* 循环 +* 条件式 + +你应该对这些具体的 JavaScript 熟悉。但这些只是最基本的先决条件。当你试图创建一个简单的 React 应用时,你将不可避免地需要处理事件。所以,普通函数、函数表达式、语句、箭头函数的概念,箭头函数和普通函数的区别,以及两类函数中 `this` 关键字的词义范围,这确实很重要。 + +但问题是,如果我必须使用 ReactJS 创建一个复杂的应用怎么办? + +### 获得启发 + +在 JavaScript 中处理事件、传播操作符、解构、命名导入和默认导入将帮助你理解 React 代码的工作机制。 + +最重要的是,你必须了解 JavaScript 本身背后的核心概念。JavaScript 在设计上是异步的。当出现在文件底部的代码在文件顶部的代码之前执行时,不要惊讶。像 promise、callback、async-await、map、filter 和 reduce 这样的结构,是 ReactJS 中最常见的方法和概念,尤其是在开发复杂的应用时。 + +The main idea is to be good in JavaScript so you can reduce the complexity of your ReactJS journey. +主要的想法是精通 JavaScript,这样你可以减少 ReactJS 之旅的复杂性。 + +### 越来越好 + +我很容易说出你需要知道的东西,但你去学习它完全是另一回事。大量练习 JavaScript 是必不可少的,但你可能会感到惊讶,我认为这并不意味着你必须等到掌握它。有些概念事先很重要,但你可以在学习过程中学到很多东西。练习的一部分是学习,所以你可以开始使用 JavaScript,甚至是 React 的一些基础知识,只要你以舒适的速度移动并理解在你尝试任何严肃的事情之前做你的“家庭作业”是一个要求。 + +### 立即开始使用 JavaScript + +不要费心等到你涵盖了 JavaScript 的所有方面。那永远不会发生。如果这样做,你将陷入学习 JavaScript 的永远循环中。你们都知道技术领域是如何不断发展和迅速变化的。如果你想开始学习 JavaScript,请尝试阅读 Mandy Kendall 的介绍性文章[通过编写猜谜游戏学习 JavaScript][2]。这是一种快速入门的好方法,当你看到了可能的情况,我认为你可能会发现很难停下来。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/learn-javascript-before-reactjs + +作者:[Sachin Samal][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/sacsam005 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/OSDC_women_computing_5.png +[2]: https://opensource.com/article/21/1/learn-javascript From 8409f2318dcdbd9e4fe66627e4e0d3e7232b63d1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 28 Jul 2022 08:36:26 +0800 Subject: [PATCH 0551/3123] translating --- ...20716 How to Clean Up Snap Versions to Free Up Disk Space.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md index 6e1ea02f35..4b3e8d4978 100644 --- a/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md +++ b/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/clean-up-snap/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 103decb5dcd98fc2beed701172eab8412c0c95b9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 28 Jul 2022 13:25:20 +0800 Subject: [PATCH 0552/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220728=20LibreOffice=20vs=20OpenOffice-=20All=20Yo?= =?UTF-8?q?u=20Need=20to=20Know-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ce vs OpenOffice- All You Need to Know-.md | 207 ++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 sources/tech/20220728 LibreOffice vs OpenOffice- All You Need to Know-.md diff --git a/sources/tech/20220728 LibreOffice vs OpenOffice- All You Need to Know-.md b/sources/tech/20220728 LibreOffice vs OpenOffice- All You Need to Know-.md new file mode 100644 index 0000000000..f63fa208eb --- /dev/null +++ b/sources/tech/20220728 LibreOffice vs OpenOffice- All You Need to Know-.md @@ -0,0 +1,207 @@ +[#]: subject: "LibreOffice vs OpenOffice: All You Need to Know?" +[#]: via: "https://itsfoss.com/libreoffice-vs-openoffice/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +LibreOffice vs OpenOffice: All You Need to Know? +====== + +LibreOffice and OpenOffice are two popular [open-source alternatives to Microsoft Office][1]. + +Any of them can be recommended if you are looking for an open-source office suite with a word processor, spreadsheet, presentation, and a few other programs. + +However, to make the best of an office suite, you should know the differences between them to decide what’s best for you. + +Should you use LibreOffice or OpenOffice? What are the differences? Here, I explore more about that. + +### LibreOffice vs. OpenOffice: Origins + +![libreoffice vs openoffice][2] + +OpenOffice.org was a project developed by Sun Microsystems. It was introduced as an open-source version of StarOffice (acquired by them initially) to compete with Microsoft Office. + +Later, Oracle acquired Sun Microsystems and eventually ditched OpenOffice.org while submitting the code base to Apache. + +When Apache started maintaining it, the name of the office suite was tweaked to “OpenOffice” or Apache OpenOffice. + +During this transition period, The Document Foundation forked OpenOffice.org to create LibreOffice, fearing that Oracle would discontinue the project. + +So, LibreOffice was created as a replacement for OpenOffice.org. + +But, now that OpenOffice still exists and is actively maintained, why should you choose LibreOffice? Isn’t OpenOffice good enough? What are the similarities between them? + +### What’s Common in LibreOffice and Apache OpenOffice? + +LibreOffice and OpenOffice have a few things in common. + +You can use any of them if all you need is to create a basic document, spreadsheet, or presentation without requiring any complex operations or shortcuts to improve productivity. + +Simply put, you can count on both if you require an open-source office suite on Linux, Windows, and macOS. + +LibreOffice and OpenOffice are capable enough to open various file formats that include Microsoft’s DOCX, PPT, and more. + +Unfortunately, the similarities fade away as you look for **various features, user interface, file format compatibility, export capabilities**, and other characteristics. + +Of course, if you start using them extensively, you shall notice the differences. + +But, to save you from the trouble, let me highlight the differences here: + +### Installation and Platform Availability + +The first step to the user experience is the installation procedure and platform availability. + +The program is a big let-down if it is tricky to install and not supported for multiple platforms. + +In this case, LibreOffice and Apache OpenOffice are officially available for **Linux, Windows, and macOS**. + +When it comes to mobile platforms, you can find [Collabora Office][3] (based on LibreOffice) on the Play Store (Android) and the App Store (iOS). It comes close to an official port of LibreOffice, considering Collabora is its commercial partner. + +While you can also use them or any other community/third-party port as a replacement for OpenOffice on mobiles, **it has no official ports available**. + +Now that you know the supported platforms, how easy is it to install them? + +**For Linux,**LibreOffice is available in the official repositories and listed in the software center and package managers. So, you are a couple of clicks away from setting it up on your Linux system. + +![libreoffice software center][4] + +Unfortunately, OpenOffice is a hassle to install. It is not available in the repositories, nor you can find it in the software center. Moreover, if you already have LibreOffice pre-installed, you will have to remove any traces before attempting to install OpenOffice (to avoid installation conflict). + +You will have to download the official packages (per your Linux distribution) from its website, extract it, and use a couple of commands to [install OpenOffice on Linux][5]. + +![openoffice debs linux][6] + +**For Windows and macOS**, the installation is easy, where [you download the installer package][7] and follow the on-screen instructions. + +[LibreOffice also offers an alternative way][8] (through its partners) to get it, using the Microsoft Store and the Mac App Store. You will have to pay for them, though. Part of it is donated to the Document Foundation and part of it helps the development of LibreOffice. + +Not to forget, LibreOffice can also be used on Chromebooks, thanks to [Collabora Office][9]. + +**To sum up, LibreOffice provides better platform availability and easier installation procedure, which can make OpenOffice a tough choice to recommend.** + +### User Experience + +LibreOffice presents a pleasing user interface that blends in with modern standards. LibreOffice should look fine on most modern hardware, whether you have a 2K display or a 4K display. + +![libreoffice home 1][10] + +You can access all the tools quickly from its main launcher, which is a good experience. The Writer Document, Spreadsheet, and other programs offer an easy-to-use interface that looks well-organized. + +![libreoffice writer][11] + +Apache OpenOffice provides a dated user interface. So, if you are looking for a modern open-source office suite, LibreOffice takes the cake. + +![openoffice home][12] + +Of course, some users prefer the classic user interface, considering they are quite familiar with it, and their usage is limited on older hardware. + +![openoffice writer][13] + +In other words, OpenOffice is still usable, but it may not be an intuitive experience for most modern users. + +If you closely compare the user interface elements, it will vary based on the latest version available at the time you are reading this article; hence, we avoid making specific visual comparisons. + +### Features + +The need for a robust feature-set depends on the type of files you work with. + +By default, you get the following programs with OpenOffice and LibreOffice: + +* Math (Scientific formula) +* Writer (Documents) +* Impress (Presentations) +* Draw (Drawings, Flow Charts, etc.) +* Calc (Spreadsheets) +* Base (Database) + +Whether you utilize the word processor (Writer), spreadsheet (Calc), or presentations, you get all the same standard features. + +However, LibreOffice gets the edge if you work with complex documents requiring access to **more templates, functions, import/export options, and advanced formatting**. + +### File Format Compatibility + +![file format illustration][14] + +OpenOffice supports almost all the same file extensions you can expect with LibreOffice. + +However, LibreOffice also supports exporting in some of the same file formats, which OpenOffice does not. + +For instance, you can open a **.DOCX** file with OpenOffice without hiccups, but you cannot save it/export the document preserving the file extension. + +You can only save it as .odt/.doc./.ott and a few similar file formats. + +Similarly, you do not get support for .xslx and .pptx, modern file formats usually used for spreadsheets and presentations. + +Sure, if you do not rely on these file formats, you can try using OpenOffice. Still, when collaborating with a user with a newer file format, you will encounter compatibility/formatting issues that could affect your work. + +Considering OpenOffice lacks numerous features, it may not be wise to depend on it to access newer file formats; you could lose significant details due to bad compatibility. + +### Updates + +![software update illustration][15] + +To improve your productivity with the program and get enhanced performance, newer features, and security fixes, opting for a software tool that gets regular updates is recommended. + +Technically, both receive regular updates. But, OpenOffice is limited to bug fixes and minor updates. + +LibreOffice has more development activity, frequent bug fixes/minor updates, regular major upgrades with newer features, and improved user experience. + +No wonder why [LibreOffice wrote an open letter to Apache][16] to discontinue OpenOffice and divert those resources to help LibreOffice development. + +### Enterprise Support and Online Collaboration Options + +![enterprise illustration][17] + +Thanks to [Collabora Office][18], you can get enterprise support while being able to use LibreOffice at your workplace. You can also deploy LibreOffice on your servers for a collaborative workspace, thanks to [Collabora Online][19]. + +Unfortunately, Apache OpenOffice does not have any enterprise support options. So, it is best suited for home users, if at all. + +### Licensing + +There are no licensing issues that would stop you or discourage you from using any of these programs. However, this information could be useful for contributors to the project. + +LibreOffice utilizes Mozilla Public License v2.0 while Apache OpenOffice is available under the Apache License 2.0. + +### LibreOffice vs. OpenOffice: What Should You Pick? + +LibreOffice is an easy choice to recommend for its modern design, more functionalities, and support for newer file formats. + +OpenOffice can be a solution for users acquainted with older office suite interfaces and who want it to work without hiccups in their 32-bit systems. Otherwise, it should remain an alternative solution in cases where LibreOffice fails to work for some reason. + +We could tell you that the choice depends on your personal preferences, but I’d be lying if I do not mention LibreOffice is the better choice if you regularly work with documents. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/libreoffice-vs-openoffice/ + +作者:[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/best-free-open-source-alternatives-microsoft-office/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/libreoffice-vs-openoffice.jpg +[3]: https://www.collaboraoffice.com/ +[4]: https://itsfoss.com/wp-content/uploads/2022/07/libreoffice-software-center.png +[5]: https://itsfoss.com/install-openoffice-ubuntu-linux/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/openoffice-debs-linux.png +[7]: https://www.libreoffice.org/download/download/ +[8]: https://www.libreoffice.org/download/libreoffice-from-microsoft-and-mac-app-stores/ +[9]: https://www.collaboraoffice.com/press-releases/collabora-office-ships-for-chromebooks/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/libreoffice-home-1.png +[11]: https://itsfoss.com/wp-content/uploads/2022/07/libreoffice-writer.png +[12]: https://itsfoss.com/wp-content/uploads/2022/07/openoffice-home.png +[13]: https://itsfoss.com/wp-content/uploads/2022/07/openoffice-writer.png +[14]: https://itsfoss.com/wp-content/uploads/2022/07/file-format-illustration.jpg +[15]: https://itsfoss.com/wp-content/uploads/2022/07/software-update-illustration.jpg +[16]: https://itsfoss.com/libreoffice-letter-openoffice/ +[17]: https://itsfoss.com/wp-content/uploads/2022/07/enterprise-illustration.jpg +[18]: https://www.collaboraoffice.com/ +[19]: https://www.collaboraoffice.com/collabora-online/ From 7a59527f44475809599cbc7c82938e6341b43110 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 28 Jul 2022 14:27:20 +0800 Subject: [PATCH 0553/3123] RP @Donkey-Hao https://linux.cn/article-14871-1.html --- ... And Docker Compose In Ubuntu 22.04 LTS.md | 77 +++++++++---------- 1 file changed, 35 insertions(+), 42 deletions(-) rename {translated/tech => published}/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md (85%) diff --git a/translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md b/published/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md similarity index 85% rename from translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md rename to published/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md index cd27e0a7c9..0c483c7203 100644 --- a/translated/tech/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md +++ b/published/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md @@ -2,28 +2,29 @@ [#]: via: "https://ostechnix.com/install-docker-ubuntu/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14871-1.html" 如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose ====== -在 Ubuntu 中使用 Docker Compose 安装 Docker 引擎详细指导 -在这篇文章中,我们将会明白 **Docker** 是什么,如何 **在 Ubuntu 中安装 Docker 引擎** 。此外,我们也将会明白如何 **安装 Docker Compose** ,它是一个定义并运行多容器的 Docker 应用。 +![](https://img.linux.net.cn/data/attachment/album/202207/28/142549iwrj25mw9turhc9o.jpg) -我们已经在 Ubuntu 22.04 LTS 中正式的测试了这份指南。然而,它也应该对旧版本如 20.04 LTS 和 18.04 LTS 有效。为了更好的安全性和稳定性,我推荐你使用最新的版本—— Ubuntu 22.04 LTS 。 +> 在 Ubuntu 中使用 Docker Compose 安装 Docker 引擎的分步指导。 +在这篇文章中,我们将会明白 Docker 是什么,如何 **在 Ubuntu 中安装 Docker 引擎** 。此外,我们也将会明白如何 **安装 Docker Compose** ,它是一个定义并运行多容器的 Docker 应用。 + +我们已经在 Ubuntu 22.04 LTS 中正式的测试了这份指南。然而,它也应该对旧版本如 20.04 LTS 和 18.04 LTS 有效。为了更好的安全性和稳定性,我推荐你使用最新的版本 —— Ubuntu 22.04 LTS 。 ### 什么是 Docker ? -**Docker** 是一个快捷,轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。 +**Docker** 是一个快捷、轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。 Docker 与其他如 VMWare 、Xen 、以及 VirtualBox 等工具的虚拟化方式不同,每个虚拟机不需要单独的客户操作系统。 -所有的 Docker 容器有效地共享主机系统内核。每个容器都在同一操作系统中的隔离用户空间中运行。 +所有的 Docker 容器有效地共享同一个主机系统内核。每个容器都在同一个操作系统中的隔离用户空间中运行。 Docker 容器可以在任何 Linux 版本上运行。比如说你使用 Fedora ,我用 Ubuntu 。我们能相互开发、共享并分发 Docker 镜像。 @@ -39,11 +40,10 @@ Docker 容器可以在任何 Linux 版本上运行。比如说你使用 Fedora 为了安装并配置 Docker ,你的系统必须满足下列最低要求: - 1. 64 位 Linux 或 Windows 系统 2. 如果使用 Linux ,内核版本必须不低于 3.10 3. 能够使用 `sudo` 权限的用户 -4. 在你系统 BIOS 上启用了 VT(虚拟化技术)支持 on your system BIOS. [参考: [如何查看 CPU 支持 虚拟化技术(VT)][1]] +4. 在你系统 BIOS 上启用了 VT(虚拟化技术)支持 on your system BIOS(参考: [如何查看 CPU 支持 虚拟化技术(VT)][1]) 5. 你的系统应该联网 在 Linux ,在终端上运行以下命令验证内核以及架构详细信息: @@ -52,43 +52,37 @@ Docker 容器可以在任何 Linux 版本上运行。比如说你使用 Fedora $ uname -a ``` -**输出样例:** +输出样例: ``` Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux ``` -正如上面你看到的那样,我的 Ubuntu 系统内核版本是 **5.15.35-3-pve** 并且系统架构是 **64 位**(**x86_64 x86_64 x86_64 GNU/Linux**)。查看上方结果的黑体字。 +正如上面你看到的那样,我的 Ubuntu 系统内核版本是 **5.15.35-3-pve** 并且系统架构是 **64 位**(**x86_64 x86_64 x86_64 GNU/Linux**)。 -**注意:** 这里,我在 **[Proxmox][2]** 中使用 Ubuntu 22.04 容器。这是你看到上方内核版本中有 “pve” 字符的原因。如果你正在使用 Ubuntu 实体(或者虚拟)机,你将看到系统版本为 **5.15.35-3-generic** 。 +> **注意:** 这里,我在 [Proxmox][2] 中使用 Ubuntu 22.04 容器。这是你看到上方内核版本中有 “pve” 字符的原因。如果你正在使用 Ubuntu 实体(或者虚拟)机,你将看到系统版本为 **5.15.35-3-generic** 。 内核版本需要不低于最低要求的版本,并且是 64 位机器。这样不会有任何问题,我们能顺利安装并使用 Docker 。 请注意你使用哪一个 Ubuntu 系统不重要。并且你使用 Ubuntu 桌面或服务器版本,亦或者其他 Ubuntu 变种如 Lubuntu 、Kubuntu 、Xubuntu ,都不重要。 -Docker 会正常运行,只要你的系统内核版本不低于 3.10 ,并且是 64 位系统。 +只要你的系统内核版本不低于 3.10 ,并且是 64 位系统,Docker 都会正常运行。 ### 在 Ubuntu 22.04 LTS 中安装 Docker 首先,更新你的 Ubuntu 系统。 -#### 1. 更新 Ubuntu +#### 1、更新 Ubuntu 打开终端,依次运行下列命令: ``` $ sudo apt update -``` - -``` $ sudo apt upgrade -``` - -``` $ sudo apt full-upgrade ``` -#### 2. 添加 Docker 库 +#### 2、添加 Docker 库 首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库: @@ -114,9 +108,9 @@ $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/doc $ sudo apt update ``` -#### 3. 安装 Docker +#### 3、安装 Docker -最后,运行下列命令在 Ubuntu 22.04 LTS 服务器中安装最新 Docker CE 。 +最后,运行下列命令在 Ubuntu 22.04 LTS 服务器中安装最新 Docker CE: ``` $ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin @@ -130,7 +124,7 @@ $ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ apt-cache madison docker-ce ``` -**输出样例:** +输出样例: ``` docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages @@ -199,7 +193,7 @@ $ sudo systemctl enable docker $ sudo docker version ``` -**输出样例:** +输出样例: ``` Client: Docker Engine - Community @@ -234,7 +228,7 @@ Server: Docker Engine - Community ![Check Docker Version][4] -#### 4. 测试 Docker +#### 4、测试 Docker 让我们继续,测试 Docker 是否运行正常: @@ -244,9 +238,9 @@ Server: Docker Engine - Community $ sudo docker run hello-world ``` -上述命令会下载一个 Docker 测试镜像,并在容器内执行一个 **hello_world** 样例程序。 +上述命令会下载一个 Docker 测试镜像,并在容器内执行一个 “hello_world” 样例程序。 -如果你看到类似下方的输出,那么祝贺你!Docker 正常运行在你的 Ubuntu 系统中。 +如果你看到类似下方的输出,那么祝贺你!Docker 正常运行在你的 Ubuntu 系统中了。 ``` Unable to find image 'hello-world:latest' locally @@ -281,9 +275,9 @@ For more examples and ideas, visit: 很好!可以使用 Docker 了。 -#### 5. 作为非 root 用户运行 Docker (选做) +#### 5、作为非 root 用户运行 Docker (选做) -默认情况下,Docker 守护进程(Docker daemon)绑定到 Unix 套接字而不是 TCP 端口。由于 **Unix 套接字由 root** 用户拥有,Docker 守护程序将仅以 root 用户身份运行。因此,普通用户无法执行大多数 Docker 命令。 +默认情况下,Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。由于 **Unix 套接字由 root 用户拥有**,Docker 守护程序将仅以 root 用户身份运行。因此,普通用户无法执行大多数 Docker 命令。 如果你想要在 Linux 中作为非 root 用户运行 Docker ,参考下方链接: @@ -297,7 +291,7 @@ For more examples and ideas, visit: 下列任何方式都可以安装 Docker Compose 。 -#### 方式 1 - 使用二进制文件安装 Docker Compose +#### 方式 1、使用二进制文件安装 Docker Compose 从 [这里][7] 下载最新 Docker Compose 。 @@ -317,22 +311,22 @@ $ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docke $ sudo chmod +x /usr/local/bin/docker-compose ``` -运行下列命令检查安装的 Docker Composer 版本: +运行下列命令检查安装的 Docker Compose 版本: ``` $ docker-compose version Docker Compose version v2.6.1 ``` -#### 方式 2 - 使用 PiP 安装 Docker Compose +#### 方式 2、使用 Pip 安装 Docker Compose -或许,我们可以使用 **PIP** 安装 Docker Compose 。Pip 是 Python 包管理器,用来安装使用 Python 编写的应用程序。 +或许,我们可以使用 **Pip** 安装 Docker Compose 。Pip 是 Python 包管理器,用来安装使用 Python 编写的应用程序。 参考下列链接安装 Pip 。 * [如何使用 Pip 管理 Python 包][8] -安装 pip 后,运行以下命令安装 Docker Compose。下列命令对于所有 Linux 发行版都是相同的! +安装 Pip 后,运行以下命令安装 Docker Compose。下列命令对于所有 Linux 发行版都是相同的! ``` $ pip install docker-compose @@ -350,8 +344,7 @@ $ docker-compose --version docker-compose version 2.6.1, build 8a1c60f6 ``` -恭喜你!我们已经成功安装了 Docker Community 版本和 Docker Compose 。 - +恭喜你!我们已经成功安装了 Docker 社区版和 Docker Compose 。 安装了 Docker,然后呢?查看本系列的下一篇文章,了解 Docker 基础知识。 @@ -365,7 +358,7 @@ docker-compose version 2.6.1, build 8a1c60f6 在这篇教程中,我们讨论了 Docker 是什么,如何在 Ubuntu 22.04 LTS Jammy Jellyfish 中安装 Docker 。然后学习了如何通过运行 hello-world Docker 镜像测试 Docker 是否成功安装。最后,我们通过使用两种不同的方式安装 Docker Compose 作为本教程的结尾。 -**资料:** +### 资料 * [Docker 主页][11] @@ -376,7 +369,7 @@ via: https://ostechnix.com/install-docker-ubuntu/ 作者:[sk][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7d8a7540ce19e01ded87839b2c65c48eb43d1bc0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 28 Jul 2022 16:14:10 +0800 Subject: [PATCH 0554/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220728=20Use=20this=20nifty=20Unix=20tool=20to=20p?= =?UTF-8?q?rocess=20text=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ifty Unix tool to process text on Linux.md | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 sources/tech/20220728 Use this nifty Unix tool to process text on Linux.md diff --git a/sources/tech/20220728 Use this nifty Unix tool to process text on Linux.md b/sources/tech/20220728 Use this nifty Unix tool to process text on Linux.md new file mode 100644 index 0000000000..ade2a7defa --- /dev/null +++ b/sources/tech/20220728 Use this nifty Unix tool to process text on Linux.md @@ -0,0 +1,213 @@ +[#]: subject: "Use this nifty Unix tool to process text on Linux" +[#]: via: "https://opensource.com/article/22/7/process-text-linux-pr" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use this nifty Unix tool to process text on Linux +====== +The pr tool prepares text documents for printing. + +![5 trends in open source documentation][1] + +Image by: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0 + +Unix has always excelled at processing text, and Linux is no different. And the tools to work with and transform text files still exist on all Linux systems. + +Like other computer systems, early Unix printed on paper, using a typewriter-style printing device. These printers provided limited formatting options, but with clever application of Unix tools, you could prepare professional-looking documents. + +One such tool was the `pr` tool, to prepare text documents for printing. Let's explore how to use standard Unix tools, such as the `pr` processor and the `fmt` text formatter, to prepare text files for printing on a typewriter-style printer. + +### Printing a plain text file + +Let's say we wanted to print the MIT license, stored in a file called mit.txt. This file is already formatted for optimal screen display; lines are almost 80 columns wide, which fits well on a standard terminal. + +``` +$ cat mit.txt +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +![Image of standard 80 column terminal][3] + +Image by: (Jim Hall, CC BY-SA 40) + +Printer paper is also 80 columns wide, at least on the classic printers. So we can also print the file to our printer using a command like `lpr`. But that's not a very interesting way to print the file, and it won't be very nice to read. For example, the document will start on the first line of the printed page, and immediately on the left edge of the paper. + +We can make the document easier to read by using the `pr` command to add a top margin. By default, `pr` includes the date and time, the name of the file, and the page number in the top header. For example, the top of our file might look like this: + +``` +$ pr mit.txt | head + + +2022-06-24 18:27 mit.txt Page 1 + + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +``` + +In this example, I've used the `head` command to look at just the first ten lines of the `pr` output. The `pr` command also adds extra blank lines at the bottom of the page, to provide a bottom margin. The old-style typewriter printers used 66 lines per page, so the `pr` output assumes that too. But this file prints on one page, so I don't need to show the bottom of the file; it's just some blank lines. + +### Adding a left and right margin + +Adding the top margin makes the document easier to read, but we can do better by adding space on the left and right of the printed page. This effectively adds a left and right margin to our document. + +The first step is to use the `fmt` command to reformat the text file to a different width. Using `fmt -w 70` reformats the text file to use lines that are 70 columns wide. We can add some blank space on the left of the document to create a left margin. Using `pr -o 5` adds 5 spaces to the start of each line of the output. With the narrower text, we'll also have about 5 spaces in the right margin. + +``` +$ fmt -w 70 mit.txt | pr -o 5 | head + + + 2022-06-24 18:35 Page 1 + + + Copyright (c) + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including +``` + +This is how Unix users printed plain text files. You can use the same set of commands to print text files on a modern laser printer, but your printer may *expect a page feed* command instead of using blank lines. To do that, add the `-f` option to the `pr` command, like this: + +``` +$ fmt -w 70 mit.txt | pr -f -o 5 | lpr +``` + +I'll omit the `-f` in the rest of this article, but remember to add `-f` to the `pr` command if you want to print documents to a modern laser printer. + +### Changing the header + +You may notice that when we redirect the output of `fmt` to the `pr` command, the `pr` output no longer shows the name of the file. That's because when we chain several commands together like this, the `pr` command doesn't know the filename, so it's left blank. We can add the filename to the header by using the `-h` option: + +``` +$ fmt -w 70 mit.txt | pr -h 'mit.txt' -o 5 | head + + + 2022-06-24 18:45 mit.txt Page 1 + + + Copyright (c) + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including +``` + +You can make other changes to the header, such as the -D option to change the date and time format, or replace it with new text. + +``` +$ fmt -w 70 mit.txt | pr -D '6/24/2022' -h 'mit.txt' -o 5 | head -30 + + + 6/24/2022 mit.txt Page 1 + + + Copyright (c) + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject + to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +``` + +### Printing two columns + +What if you wanted to make a text document look really fancy on the printed page? Certain documents such as technical articles might need to be printed in a two-column layout. The `pr` command can print text in multiple columns. For example, `-2` prints in two columns and -3 will print in three columns. + +However, be careful when printing text in multiple columns. If the lines are too long, `pr` may simply overlap one column with another, effectively losing text in the output. But we can leverage the `fmt` command to reformat the text to a narrower width, suitable for printing in two column format. + +Let's do the math: If the printed page is 80 columns wide, and we've left 5 spaces on the left and right as page margins, that leaves 70 columns for our text. Using `fmt -w 35` would cut the text neatly in half for two columns, but we may not leave much space between the columns. Instead, let's use `fmt -w 33` to reformat the text width to 33 before sending the output to the `pr` command: + +``` +$ fmt -w 33 mit.txt | pr -2 -D '6/24/2022' -h 'mit.txt' -o 5 | head -30 + + + 6/24/2022 mit.txt Page 1 + + + Copyright (c) substantial portions of the + Software. + Permission is hereby granted, + free of charge, to any person THE SOFTWARE IS PROVIDED + obtaining a copy of this "AS IS", WITHOUT WARRANTY OF + software and associated ANY KIND, EXPRESS OR IMPLIED, + documentation files (the INCLUDING BUT NOT LIMITED TO THE + "Software"), to deal in the WARRANTIES OF MERCHANTABILITY, + Software without restriction, FITNESS FOR A PARTICULAR PURPOSE + including without limitation the AND NONINFRINGEMENT. IN NO + rights to use, copy, modify, EVENT SHALL THE AUTHORS OR + merge, publish, distribute, COPYRIGHT HOLDERS BE LIABLE + sublicense, and/or sell copies FOR ANY CLAIM, DAMAGES OR OTHER + of the Software, and to permit LIABILITY, WHETHER IN AN ACTION + persons to whom the Software is OF CONTRACT, TORT OR OTHERWISE, + furnished to do so, subject to ARISING FROM, OUT OF OR IN + the following conditions: CONNECTION WITH THE SOFTWARE + OR THE USE OR OTHER DEALINGS IN + The above copyright notice and THE SOFTWARE. + this permission notice shall + + + + +$ +``` + +Unix is a great platform for processing text. While we use other tools today, including HTML in web browsers and PDF for printable content, it's nice to know how to use the existing Unix tools to create professional plain text documents. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/process-text-linux-pr + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/documentation-type-keys-yearbook.png +[2]: https://opensource.com/article/22/7/fmt-trivial-text-formatter +[3]: https://opensource.com/sites/default/files/2022-07/Imageofstandardterminal.png From 709bdec4fe170d1613fd7fb2f5d1ce59d6006c6b Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 29 Jul 2022 05:02:36 +0800 Subject: [PATCH 0555/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220728?= =?UTF-8?q?=20A=20toy=20remote=20login=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220728 A toy remote login server.md --- .../20220728 A toy remote login server.md | 444 ++++++++++++++++++ 1 file changed, 444 insertions(+) create mode 100644 sources/tech/20220728 A toy remote login server.md diff --git a/sources/tech/20220728 A toy remote login server.md b/sources/tech/20220728 A toy remote login server.md new file mode 100644 index 0000000000..4d5bda2cfd --- /dev/null +++ b/sources/tech/20220728 A toy remote login server.md @@ -0,0 +1,444 @@ +[#]: subject: "A toy remote login server" +[#]: via: "https://jvns.ca/blog/2022/07/28/toy-remote-login-server/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A toy remote login server +====== + +Hello! The other day we talked about [what happened when you press a key in your terminal][1]. + +As a followup, I thought it might be fun to implement a program that’s like a tiny ssh server, but without the security. You can find it [on github here][2], and I’ll explain how it works in this blog post. + +### the goal: “ssh” to a remote computer + +Our goal is to be able to login to a remote computer and run commands, like you do with SSH or telnet. + +The biggest difference between this program and SSH is that there’s literally no security (not even a password) – anyone who can make a TCP connection to the server can get a shell and run commands. + +Obviously this is not a useful program in real life, but our goal is to learn a little more about how terminals works, not to write a useful program. + +(I will run a version of it on the public internet for the next week though, you can see how to connect to it at the end of this blog post) + +### let’s start with the server! + +We’re also going to write a client, but the server is the interesting part, so let’s start there. We’re going to write a server that listens on a TCP port (I picked 7777) and creates remote terminals for any client that connects to it to use. + +When the server receives a new connection it needs to: + + 1. create a pseudoterminal for the client to use + 2. start a `bash` shell process for the client to use + 3. connect `bash` to the pseudoterminal + 4. continuously copy information back and forth between the TCP connection and the pseudoterminal + + + +I just said the word “pseudoterminal” a lot, so let’s talk about what that means. + +### what’s a pseudoterminal? + +Okay, what the heck is a pseudoterminal? + +A pseudoterminal is a lot like a bidirectional pipe or a socket – you have two ends, and they can both send and receive information. You can read more about the information being sent and received in [what happens if you press a key in your terminal][1] + +Basically the idea is that on one end, we have a TCP connection, and on the other end, we have a `bash` shell. So we need to hook one part of the pseudoterminal up to the TCP connection and the other end to bash. + +The two parts of the pseudoterminal are called: + + * the “pseudoterminal master”. This is the end we’re going to hook up to the TCP connection. + * the “slave pseudoterminal device”. We’re going to set our bash shell’s `stdout`, `stderr`, and `stdin` to this. + + + +Once they’re conected, we can communicate with `bash` over our TCP connection and we’ll have a remote shell! + +### why do we need this “pseudoterminal” thing anyway? + +You might be wondering – Julia, if a pseudoterminal is kind of like a socket, why can’t we just set our bash shell’s `stdout` / `stderr` / `stdin` to the TCP socket? + +And you can! We could write a TCP connection handler like this that does exactly that, it’s not a lot of code ([server-notty.go][3]). + +``` + + func handle(conn net.Conn) { + tty, _ := conn.(*net.TCPConn).File() + // start bash with tcp connection as stdin/stdout/stderr + cmd := exec.Command("bash") + cmd.Stdin = tty + cmd.Stdout = tty + cmd.Stderr = tty + cmd.Start() + } + +``` + +It even kind of works – if we connect to it with `nc localhost 7778`, we can run commands and look at their output. + +But there are a few problems. I’m not going to list all of them, just two. + +**problem 1: Ctrl + C doesn’t work** + +The way Ctrl + C works in a remote login session is + + * you press ctrl + c + * That gets translated to `0x03` and sent through the TCP connection + * The terminal receives it + * the Linux kernel on the other end notes “hey, that was a Ctrl + C!” + * Linux sends a `SIGINT` to the appropriate process (more on what the “appropriate process” is exactly later) + + + +If the “terminal” is just a TCP connection, this doesn’t work, because when you send `0x04` to a TCP connection, Linux won’t magically send `SIGINT` to any process. + +**problem 2: `top` doesn’t work** + +When I try to run `top` in this shell, I get the error message `top: failed tty get`. If we strace it, we see this system call: + +``` + + ioctl(2, TCGETS, 0x7ffec4e68d60) = -1 ENOTTY (Inappropriate ioctl for device) + +``` + +So `top` is running an `ioctl` on its output file descriptor (2) to get some information about the terminal. But Linux is like “hey, this isn’t a terminal!” and returns an error. + +There are a bunch of other things that go wrong, but hopefully at this point you’re convinced that we actually need to set bash’s stdout/stderr to be a terminal, not some other thing like a socket. + +So let’s start looking at the server code and see what creating a pseudoterminal actually looks like. + +### step 1: create a pseudoterminal + +Here’s some Go code to create a pseudoterminal on Linux. This is copied from [github.com/creack/pty][4], but I removed some of the error handling to make the logic a bit easier to follow: + +``` + + pty, _ := os.OpenFile("/dev/ptmx", os.O_RDWR, 0) + sname := ptsname(p) + unlockpt(p) + tty, _ := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0) + +``` + +In English, what we’re doing is: + + * open `/dev/ptmx` to get the “pseudoterminal master” Again, that’s the part we’re going to hook up to the TCP connection + * get the filename of the “slave pseudoterminal device”, which is going to be `/dev/pts/13` or something. + * “unlock” the pseudoterminal so that we can use it. I have no idea what the point of this is (why is it locked to begin with?) but you have to do it for some reason + * open `/dev/pts/13` (or whatever number we got from `ptsname`) to get the “slave pseudoterminal device” + + + +What do those `ptsname` and `unlockpt` functions do? They just make some `ioctl` system calls to the Linux kernel. All of the communication with the Linux kernel about terminals seems to be through various `ioctl` system calls. + +Here’s the code, it’s pretty short: (again, I just copied it from [creack/pty][5]) + +``` + + func ptsname(f *os.File) string { + var n uint32 + ioctl(f.Fd(), syscall.TIOCGPTN, uintptr(unsafe.Pointer(&n))) + return "/dev/pts/" + strconv.Itoa(int(n)) + } + + func unlockpt(f *os.File) { + var u int32 + // use TIOCSPTLCK with a pointer to zero to clear the lock + ioctl(f.Fd(), syscall.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))) + } + +``` + +### step 2: hook the pseudoterminal up to `bash` + +The next thing we have to do is connect the pseudoterminal to `bash`. Luckily, that’s really easy – here’s the Go code for it! We just need to start a new process and set the stdin, stdout, and stderr to `tty`. + +``` + + cmd := exec.Command("bash") + cmd.Stdin = tty + cmd.Stdout = tty + cmd.Stderr = tty + cmd.SysProcAttr = &syscall.SysProcAttr{ + Setsid: true, + } + cmd.Start() + +``` + +Easy! Though – why do we need this `Setsid: true` thing, you might ask? Well, I tried commenting out that code to see what went wrong. It turns out that what goes wrong is – Ctrl + C doesn’t work anymore! + +`Setsid: true` creates a new **session** for the new bash process. But why does that make `Ctrl + C` work? How does Linux know which process to send `SIGINT` to when you press `Ctrl + C`, and what does that have to do with sessions? + +### how does Linux know which process to send Ctrl + C to? + +I found this pretty confusing, so I reached for my favourite book for learning about this kind of thing: [the linux programming interface][6], specifically chapter 34 on process groups and sessions. + +That chapter contains a few key facts: (#3, #4, and #5 are direct quotes from the book) + + 1. Every process has a **session id** and a **process group id** (which may or may not be the same as its PID) + 2. A session is made up of multiple process groups + 3. All of the processes in a session share a single controlling terminal. + 4. A terminal may be the controlling terminal of at most one session. + 5. At any point in time, one of the process groups in a session is the **foreground process group** for the terminal, and the others are background process groups. + 6. When you press `Ctrl+C` in a terminal, SIGINT gets sent to all the processes in the foreground process group + + + +What’s a process group? Well, my understanding is that: + + * processes in the same pipe `x | y | z` are in the same process group + * processes you start on the same shell line (`x && y && z`) are in the same process group + * child processes are by default in the same process group, unless you explicitly decide otherwise + + + +I didn’t know most of this (I had no idea processes had a session ID!) so this was kind of a lot to absorb. I tried to draw a sketchy ASCII art diagram of the situation + +``` + + (maybe) terminal --- session --- process group --- process + | |- process + | |- process + |- process group + | + |- process group + +``` + +So when we press Ctrl+C in a terminal, here’s what I think happens: + + * `\x04` gets written to the “pseudotermimal master” of a terminal + * Linux finds the **session** for that terminal (if it exists) + * Linux find the **foreground process group** for that session + * Linux sends `SIGINT` + + + +If we don’t create a new session for our new bash process, our new pseudoterminal actually won’t have **any** session associated with it, so nothing happens when we press `Ctrl+C`. But if we do create a new session, then the new pseudoterminal will have the new session associated with it. + +### how to get a list of all your sessions + +As a quick aside, if you want to get a list of all the sessions on your Linux machine, grouped by session, you can run: + +``` + + $ ps -eo user,pid,pgid,sess,cmd | sort -k3 + +``` + +This includes the PID, process gruoup ID, and session ID. As an example of the output, here are the two processes in the pipeline: + +``` + + bork 58080 58080 57922 ps -eo user,pid,pgid,sess,cmd + bork 58081 58080 57922 sort -k3 + +``` + +You can see that they share the same process group ID and session ID, but of course they have different PIDs. + +That was kind of a lot but that’s all we’re going to say about sessions and process groups in this post. Let’s keep going! + +### step 3: set the window size + +We need to tell the terminal how big to be! + +Again, I just copied this from `creack/pty`. I decided to hardcode the size to 80x24. + +``` + + Setsize(tty, &Winsize{ + Cols: 80, + Rows: 24, + }) + +``` + +Like with getting the terminal’s pts filename and unlocking it, setting the size is just one `ioctl` system call: + +``` + + func Setsize(t *os.File, ws *Winsize) { + ioctl(t.Fd(), syscall.TIOCSWINSZ, uintptr(unsafe.Pointer(ws))) + } + +``` + +Pretty simple! We could do something smarter and get the real window size, but I’m too lazy. + +### step 4: copy information between the TCP connection and the pseudoterminal + +As a reminder, our rough steps to set up this remote login server were: + + 1. create a pseudoterminal for the client to use + 2. start a `bash` shell process + 3. connect `bash` to the pseudoterminal + 4. continuously copy information back and forth between the TCP connection and the pseudoterminal + + + +We’ve done 1, 2, and 3, now we just need to ferry information between the TCP connection and the pseudoterminal. + +There are two `io.Copy` calls, one to copy the input _from_ the tcp connection, and one to copy the output _to_ the TCP connection. Here’s what the code looks like: + +``` + + go func() { + io.Copy(pty, conn) + }() + io.Copy(conn, pty) + +``` + +The first one is in a goroutine just so they can both run in parallel. + +Pretty simple! + +### step 5: exit when we’re done + +I also added a little bit of code to close the TCP connection when the command exits + +``` + + go func() { + cmd.Wait() + conn.Close() + }() + +``` + +And that’s it for the server! You can see all of the Go code here: [server.go][2]. + +### next: write a client + +Next, we have to write a client. This is a lot than the server because we don’t need to do quite as much terminal setup. there are just 3 steps: + + 1. Put the terminal into raw mode + 2. copy stdin/stdout to the TCP connection + 3. reset the terminal + + + +### client step 1: put the terminal into “raw” mode + +We need to put the client terminal into “raw” mode so that every time you press a key, it gets sent to the TCP connection immediately. If we don’t do this, everything will only get sent when you press enter. + +“Raw mode” isn’t actually a single thing, it’s a bunch of flags that you want to turn off. There’s a good tutorial explaining all the flags we have to turn off called [Entering raw mode][7]. + +Like everything else with terminals, this requires `ioctl` system calls. In this case we get the terminal’s current settings, modify them, and save the old settings so that we can restore them later. + +I figured out how to do this in Go by going to and typing in `syscall.TCSETS` to find some other Go code that was doing the same thing. + +``` + + func MakeRaw(fd uintptr) syscall.Termios { + // from https://github.com/getlantern/lantern/blob/devel/archive/src/golang.org/x/crypto/ssh/terminal/util.go + var oldState syscall.Termios + ioctl(fd, syscall.TCGETS, uintptr(unsafe.Pointer(&oldState))) + + newState := oldState + newState.Iflag &^= syscall.ISTRIP | syscall.INLCR | syscall.ICRNL | syscall.IGNCR | syscall.IXON | syscall.IXOFF + newState.Lflag &^= syscall.ECHO | syscall.ICANON | syscall.ISIG + ioctl(fd, syscall.TCSETS, uintptr(unsafe.Pointer(&newState))) + return oldState + } + +``` + +### client step 2: copy stdin/stdout to the TCP connection + +This is exactly like what we did with the server. It’s very little code: + +``` + + go func() { + io.Copy(conn, os.Stdin) + }() + io.Copy(os.Stdout, conn) + +``` + +### client step 3: restore the terminal’s state + +We can put the terminal back into the mode it started in like this (another `ioctl`!): + +``` + + func Restore(fd uintptr, oldState syscall.Termios) { + ioctl(fd, syscall.TCSETS, uintptr(unsafe.Pointer(&oldState))) + } + +``` + +### we did it! + +We have written a tiny remote login server that lets anyone log in! Hooray! + +Obviously this has zero security so I’m not going to talk about that aspect. + +### it’s running on the public internet! you can try it out! + +For the next week or so I’m going to run a demo of this on the internet at `tetris.jvns.ca`. It runs tetris instead of a shell because I wanted to avoid abuse, but if you want to try it with a shell you can run it on your own computer :). + +If you want to try it out, you can use `netcat` as a client instead of the custom Go client program we wrote, because copying information to/from a TCP connection is what netcat does. Here’s how: + +``` + + stty raw -echo && nc tetris.jvns.ca 7777 && stty sane + +``` + +This will let you play a terminal tetris game called `tint`. + +You can also use the [client.go program][8] and run `go run client.go tetris.jvns.ca 7777`. + +### this is not a good protocol + +This protocol where we just copy bytes from the TCP connection to the terminal and nothing else is not good because it doesn’t allow us to send over information information like the terminal or the actual window size of the terminal. + +I thought about implementing telnet’s protocol so that we could use telnet as a client, but I didn’t feel like figuring out how telnet works so I didn’t. (the server 30% works with telnet as is, but a lot of things are broken, I don’t quite know why, and I didn’t feel like figuring it out) + +### it’ll mess up your terminal a bit + +As a warning: using this server to play tetris will probably mess up your terminal a bit because it sets the window size to 80x24. To fix that I just closed the terminal tab after running that command. + +If we wanted to fix this for real, we’d need to restore the window size after we’re done, but then we’d need a slightly more real protocol than “just blindly copy bytes back and forth with TCP” and I didn’t feel like doing that. + +Also it sometimes takes a second to disconnect after the program exits for some reason, I’m not sure why that is. + +### other tiny projects + +That’s all! There are a couple of other similar toy implementations of programs I’ve written here: + + * [toy tls 1.3 implementation][9] + * [toy dns resolver][10] + + + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/07/28/toy-remote-login-server/ + +作者:[Julia Evans][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://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://jvns.ca/blog/2022/07/20/pseudoterminals/ +[2]: https://github.com/jvns/tiny-remote-login/blob/main/server.go +[3]: https://github.com/jvns/tiny-remote-login/blob/main/server-notty.go +[4]: https://github.com/creack/pty/blob/7de28cee0d53510e719c1aeb1850af0fa647c343/pty_linux.go +[5]: https://github.com/creack/pty/blob/7de28cee0d53510e719c1aeb1850af0fa647c343/pty_linux.go#L41-L54 +[6]: https://man7.org/tlpi/ +[7]: https://viewsourcecode.org/snaptoken/kilo/02.enteringRawMode.html +[8]: https://github.com/jvns/tiny-remote-login/blob/main/client.go +[9]: https://jvns.ca/blog/2022/03/23/a-toy-version-of-tls/ +[10]: https://jvns.ca/blog/2022/02/01/a-dns-resolver-in-80-lines-of-go/ From 8d218b6dfd63c3b3d7dc270bf21e16b76fb92c2d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 29 Jul 2022 05:02:47 +0800 Subject: [PATCH 0556/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220728?= =?UTF-8?q?=20It=E2=80=99s=20Time=20to=20Ditch=2032-Bit=20Linux=20for=2064?= =?UTF-8?q?-Bit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md --- ...s Time to Ditch 32-Bit Linux for 64-Bit.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md diff --git a/sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md b/sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md new file mode 100644 index 0000000000..137690d5ae --- /dev/null +++ b/sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md @@ -0,0 +1,82 @@ +[#]: subject: "It’s Time to Ditch 32-Bit Linux for 64-Bit" +[#]: via: "https://news.itsfoss.com/64-bit-linux/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +It’s Time to Ditch 32-Bit Linux for 64-Bit +====== + +We have plenty of [Linux distributions tailored for 32-bit systems][1]. + +So, why do I want to discourage using 32-bit and upgrade to 64-bit Linux instead? + +There are a couple of reasons, and one of the biggest reasons came to the spotlight this week. + +### 32-Bit: Ancient Hardware for E-Waste? + +Of course, Linux distros allow you to re-use older hardware, unlike any other operating system. + +You get the possibility to convert a system to a [media server][2], a storage server, and whatnot. + +Here, I’m not giving you the idea to contribute more e-waste. It is always good to utilize your hardware as long as possible without replacing them. + +However, the reasons not to use 32-bit systems may be more compelling than ever. The key highlight would be in terms of security and maintenance. + +### Improved Security With 64-bit Linux + +Spectre vulnerability made the buzz in 2018 as a dangerous security issue for processors. While it was fixed for Intel and AMD processors, it was not a pretty situation. + +Unfortunately, a new exploit, **Retbleed**, a variant of Spectre, is here affecting Intel and AMD chips. + +You can see it in action in the video below shared by the researchers who discovered it: + +![][3] + +So, naturally, we need appropriate measures to address a fix for this new security vulnerability. + +**Here comes the shocker**: 64-bit Linux kernels have received a fix for it to protect the necessary Intel/AMD processors in question. But, Linux 32-bit kernels remain vulnerable to Retbleed, as reported by [Phoronix][4]. + +Pawan Gupta (Intel) responded to the concerns in the [kernel mailing list][5] by mentioning: + +> Intel is not aware of production environments that use 32-bit mode on Skylake-gen CPUs. So this should not be a concern. + +Also, it is rare to see any efforts for 32-bit maintenance. So, it should not come as a surprise. + +Hence, if you use your system for any tasks that a security issue can disrupt, you should steer clear of 32-bit kernels. + +Of course, exceptions can include that you have an entirely offline setup. So, it would be up to you, but it is not recommended. + +### Don’t Care About Security? + +Even if you do not have a problem with not getting critical security fixes like Retbleed, there will be more trouble with 32-bit systems in 2022. + +Software maintainers aeventually giveup on tools and Linux distribution updates to work well with 32-bit systems. + +So, you may not be left with actively maintained programs for your 32-bit Linux system very soon. + +Hence, it would be a good idea to make the switch (and upgrade) now. + +_Do you still use 32-bit Linux? What do you think about it? Share your thoughts in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/64-bit-linux/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/32-bit-linux-distributions/ +[2]: https://itsfoss.com/best-linux-media-server/ +[3]: https://i.ytimg.com/vi/dmSPvJxPm80/hqdefault.jpg +[4]: https://www.phoronix.com/news/Linux-x86-Retbleed +[5]: https://lore.kernel.org/lkml/20220715221901.xm3c4w4idqt67uja@desk/ From f786aa4204d4b49d035346d69f0647c9ee4e67b0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 29 Jul 2022 07:52:14 +0800 Subject: [PATCH 0557/3123] ALL @wxy https://linux.cn/article-14873-1.html --- ... Non-Free Firmware in Official Releases.md | 71 +++++++++++++++++++ ... Non-Free Firmware in Official Releases.md | 70 ------------------ 2 files changed, 71 insertions(+), 70 deletions(-) create mode 100644 published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md delete mode 100644 sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md diff --git a/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md b/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md new file mode 100644 index 0000000000..3bf533d5b9 --- /dev/null +++ b/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md @@ -0,0 +1,71 @@ +[#]: subject: "Debian May Consider Including Non-Free Firmware in Official Releases" +[#]: via: "https://news.itsfoss.com/debian-non-free/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14873-1.html" + +Debian 可能会考虑在官方版本中包含非自由固件 +====== + +> Debian 会考虑在官方版本中添加非自由固件吗?如果他们想解决 Debian 开发人员重点提出的问题,这似乎是一种可能性。 + +![debian][1] + +由于 Debian 的稳定性和新功能之间的平衡,它是最受欢迎的 Linux 发行版之一。 + +此外,它不附带任何非自由固件。 + +但是,对于想要在较新硬件上使用 Debian 的用户来说,这已成为一个问题。 + +大多数最新的设备和配置都需要非自由固件才能正常工作,其中包括 Wi-Fi、图形等。 + +为了解决这个问题,Debian 开发人员、前 Debian 项目负责人 Steve McIntyre 已经积极讨论了一段时间。 + +正如 [Geeker's Digest][2] 所发现的,在 DebConf 22 会议上,Steve 最近向用户和开发人员着重谈到了修复固件混乱这件事。 + +### 在官方版本中包含非免费固件 + +至于目前的情况,你可以找到带有非自由固件的非官方 Debian 镜像。 + +然而,并不是每个用户都知道它,即使它在 Debian 的下载页面上被宣传,“非官方”也不是用户更喜欢推荐的镜像的东西。 + +此外,当用户可以选择 Ubuntu 或任何基于 Ubuntu 的发行版作为替代方案时,期望用户安装非自由固件也是违反直觉的。 + +不仅限于这些问题,Steve 在他的 [博客][3] 中还提到了其他一些问题,包括: + +* 维护单独的非自由镜像非常耗时。 +* 由于缺乏非自由固件,许多用户不喜欢官方镜像。 + +如果我们希望更多用户在通用硬件上使用 Debian,Steve 建议尽早解决这个问题。 + +可能会通过安装程序中的提示让用户安装非自由固件,类似于 Ubuntu 所做的。 + +此外,在他在 DebConf 22 的演讲中,似乎大多数开发人员投票支持在官方 Debian 镜像中添加非自由固件。 + +随着他重点提出这件事,Steve 得到了寻找解决这个问题的社区用户/开发人员的更多关注。 + +**简单/方便的出路**:在官方发布的镜像中添加非自由固件。 + +那么,Debian 最终会在其新版本中添加对非自由固件的支持吗? Debian 12 会让这成为现实吗? + +在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/debian-non-free/ + +作者:[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/07/debian-non-free-firmware.jpg +[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ +[3]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do diff --git a/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md b/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md deleted file mode 100644 index 627ed5b2ab..0000000000 --- a/sources/news/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md +++ /dev/null @@ -1,70 +0,0 @@ -[#]: subject: "Debian May Consider Including Non-Free Firmware in Official Releases" -[#]: via: "https://news.itsfoss.com/debian-non-free/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Debian May Consider Including Non-Free Firmware in Official Releases -====== -Will Debian consider adding non-free firmware in official releases? It seems like a possibility, if they want to fix the issues highlighted by Debian’s developer. - -![debian][1] - -Debian is one of the most loved Linux distributions for its approach to stability and a balance between new features. - -Also, it does not come with any non-free firmware. - -However, that is becoming an issue for users who want to use Debian on newer hardware. - -Most of the latest devices and configurations need non-free firmware to make things work, which includes Wi-Fi, graphics, and more. - -And to address that, **Steve McIntyre**, a Debian developer and a former Debian project leader, has been actively discussing the issue for a while. - -At the**DebConf 22 conference**, Steve recently talked about fixing the firmware mess to highlight this better to users and developers, as spotted by [Geeker’s Digest][2]. - -### Including Non-Free Firmware in Official Releases - -As for the current situation, you can find an unofficial Debian image with non-free firmware. - -However, not every user is aware of it, and even if it is promoted on Debian’s download page, “unofficial” is not something a user will prefer over the recommended image. - -Also, it is counter-intuitive to expect users to install non-free firmware when they can choose any Ubuntu-based distribution or Ubuntu as an alternative. - -Not just limited to these issues, Steve mentions a few other problems with it in his [blog][3] that include: - -* Maintaining separate non-free images is time-consuming. -* The official images are not preferred by many users because of the lack of non-free firmware. - -Steve proposes that this mess be fixed sooner than later if we want more users to use Debian on common hardware. - -Potentially through a prompt in the installer for users to install non-free firmware, similar to what Ubuntu does. - -Furthermore, in his talk at DebConf 22, it seems that most of the developers voted to add non-free firmware in official Debian images. - -And with the recent highlight, Steve has gotten more attention from users/developers to find a solution to this problem as a community. - -**The easy/convenient way out**: adding non-free firmware in official release images. - -*So, will Debian finally add support for non-free firmware in its newer releases? Will Debian 12 make this a reality?* - -*Share your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/debian-non-free/ - -作者:[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/07/debian-non-free-firmware.jpg -[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ -[3]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do From 294ecf8a82dc1841179cd3d2d7efc9f26c2a502f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 29 Jul 2022 08:22:06 +0800 Subject: [PATCH 0558/3123] RP @geekpi https://linux.cn/article-14874-1.html --- ...u need to know before learning ReactJS-.md | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) rename {translated/tech => published}/20220720 How much JavaScript do you need to know before learning ReactJS-.md (84%) diff --git a/translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md b/published/20220720 How much JavaScript do you need to know before learning ReactJS-.md similarity index 84% rename from translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md rename to published/20220720 How much JavaScript do you need to know before learning ReactJS-.md index c79bf15c83..7369b9a6b1 100644 --- a/translated/tech/20220720 How much JavaScript do you need to know before learning ReactJS-.md +++ b/published/20220720 How much JavaScript do you need to know before learning ReactJS-.md @@ -3,13 +3,16 @@ [#]: author: "Sachin Samal https://opensource.com/users/sacsam005" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14874-1.html" 学习 ReactJS 之前,你需要了解多少 JavaScript? ====== -主要的想法是精通 JavaScript,这样你就可以减少 ReactJS 之旅的复杂性。 + +![](https://img.linux.net.cn/data/attachment/album/202207/29/082104d5zn1xn77r1n8p1n.jpg) + +> 最主要的是要精通 JavaScript,这样你就可以减少 ReactJS 之旅的复杂性。 React 是一个建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 JavaScript(JS)负责大部分的逻辑。如果你对变量、数据类型、数组函数、回调、作用域、字符串方法、循环和其他 JS DOM 操作相关的主题有一定了解,这些将极大地加快学习 ReactJS 的步伐。 @@ -21,7 +24,7 @@ React 是一个建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 假设我获得了一些关于主题(牛)的知识,我如何计算我需要知道多少英语才能写出规定的主题?如果我必须用英语写一篇关于其他复杂话题的文章呢? -这很难搞清楚,不是吗?我不知道我要写关于这个话题的什么东西,但它可能是任何东西。所以要想开始,我必须要有适当的英语知识,但这还没有结束。 +这很难搞清楚,不是吗?我不知道我要写关于这个话题的什么东西,但它可能是任何东西。所以要想开始,我必须要有适当的英语知识,但还不止于此。 ### 极端现实 @@ -37,7 +40,7 @@ React 是一个建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 * 循环 * 条件式 -你应该对这些具体的 JavaScript 熟悉。但这些只是最基本的先决条件。当你试图创建一个简单的 React 应用时,你将不可避免地需要处理事件。所以,普通函数、函数表达式、语句、箭头函数的概念,箭头函数和普通函数的区别,以及两类函数中 `this` 关键字的词义范围,这确实很重要。 +你应该对这些具体的 JavaScript 熟悉。但这些只是最基本的先决条件。当你试图创建一个简单的 React 应用时,你将不可避免地需要处理事件。所以,普通函数、函数表达式、语句、箭头函数的概念,箭头函数和普通函数的区别,以及这两类函数中 `this` 关键字的词义范围,这确实很重要。 但问题是,如果我必须使用 ReactJS 创建一个复杂的应用怎么办? @@ -47,8 +50,7 @@ React 是一个建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 最重要的是,你必须了解 JavaScript 本身背后的核心概念。JavaScript 在设计上是异步的。当出现在文件底部的代码在文件顶部的代码之前执行时,不要惊讶。像 promise、callback、async-await、map、filter 和 reduce 这样的结构,是 ReactJS 中最常见的方法和概念,尤其是在开发复杂的应用时。 -The main idea is to be good in JavaScript so you can reduce the complexity of your ReactJS journey. -主要的想法是精通 JavaScript,这样你可以减少 ReactJS 之旅的复杂性。 +最主要的是要精通 JavaScript,这样你可以减少 ReactJS 之旅的复杂性。 ### 越来越好 @@ -56,7 +58,7 @@ The main idea is to be good in JavaScript so you can reduce the complexity of yo ### 立即开始使用 JavaScript -不要费心等到你涵盖了 JavaScript 的所有方面。那永远不会发生。如果这样做,你将陷入学习 JavaScript 的永远循环中。你们都知道技术领域是如何不断发展和迅速变化的。如果你想开始学习 JavaScript,请尝试阅读 Mandy Kendall 的介绍性文章[通过编写猜谜游戏学习 JavaScript][2]。这是一种快速入门的好方法,当你看到了可能的情况,我认为你可能会发现很难停下来。 +不要费心等到你了解了 JavaScript 的所有方面。那永远不会发生。如果这样做,你将陷入学习 JavaScript 的永远循环中。你们都知道技术领域是如何不断发展和迅速变化的。如果你想开始学习 JavaScript,请尝试阅读 Mandy Kendall 的介绍性文章 [通过编写猜谜游戏学习 JavaScript][2]。这是一种快速入门的好方法,当你看到了可能的情况,我认为你可能会发现很难停下来。 -------------------------------------------------------------------------------- @@ -65,7 +67,7 @@ via: https://opensource.com/article/22/7/learn-javascript-before-reactjs 作者:[Sachin Samal][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/) 荣誉推出 From 684a000136f38ca706043e9bc161b63a69ec42da Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 29 Jul 2022 08:32:42 +0800 Subject: [PATCH 0559/3123] translated --- ...e With apt Command in Ubuntu and Debian.md | 96 ------------------- ...e With apt Command in Ubuntu and Debian.md | 96 +++++++++++++++++++ 2 files changed, 96 insertions(+), 96 deletions(-) delete mode 100644 sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md create mode 100644 translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md diff --git a/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md deleted file mode 100644 index 2a3ae5ea22..0000000000 --- a/sources/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Update a Single Package With apt Command in Ubuntu and Debian" -[#]: via: "https://itsfoss.com/apt-upgrade-single-package/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Update a Single Package With apt Command in Ubuntu and Debian -====== - -How do you [update your Ubuntu system in the command line][1]? You use the apt update (to refresh the package cache) and apt upgrade commands. - -``` -sudo apt update && sudo apt upgrade -``` - -It updates all the installed apt packages that can be upgraded at once. This includes the Linux kernel version, too. - -This seems like a good thing, especially for desktop users. That may not be the case for Ubuntu server users where you have crucial web services running. - -If you want to be selective about the updates and **only want to upgrade a single package**, use this command: - -``` -sudo apt install --only-upgrade package_name -``` - -Let’s see it in a bit more detail. - -### Upgrade single package using apt command - -The first step is to update the local package repository cache so that your system knows about the availability of new package versions. - -``` -sudo apt update -``` - -**This is optional**. Check if the package you want to upgrade is in the [list of upgradable packages][2]. - -``` -apt list --upgradable -``` - -If the desired package has a new version available, you can choose to upgrade only this single package with this command: - -``` -sudo apt install --only-upgrade package_name -``` - -If you run the apt install command on an already installed package, it will be upgraded to the next available version. - -But if the package is not installed already, the apt command will also install it. - -This is why the `--only-upgrade` part is necessary. With that option, the apt command will only upgrade an already installed package. It will not install the package if it is not already installed. - -Not the best-suited example for Ubuntu server users, but you can still see how I upgraded only one of the seven upgradable packages in the below screenshot. - -![Update only a single package in Ubuntu][3] - -### Upgrade selected packages only - -If you want to upgrade a selected few packages, you don’t have to update them one by one. Just provide the package names with the command mentioned earlier. - -``` -sudo apt install --only-upgrade package1 package2 package3 -``` - -Here’s an example. - -![Upgrade selected packages in Ubuntu][4] - -### Conclusion - -When you are faced with a situation where you have to upgrade selected packages, you can use the apt install command with –only-upgrade option. - -I recommend reading on [using apt command to use it more effectively][5]. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/apt-upgrade-single-package/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/update-ubuntu/ -[2]: https://itsfoss.com/apt-list-upgradable/ -[3]: https://itsfoss.com/wp-content/uploads/2022/07/update-single-package-ubuntu-scaled.webp -[4]: https://itsfoss.com/wp-content/uploads/2022/07/upgrade-selected-packages-ubuntu.png -[5]: https://itsfoss.com/apt-command-guide/ diff --git a/translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md new file mode 100644 index 0000000000..7c430e4caf --- /dev/null +++ b/translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md @@ -0,0 +1,96 @@ +[#]: subject: "Update a Single Package With apt Command in Ubuntu and Debian" +[#]: via: "https://itsfoss.com/apt-upgrade-single-package/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Ubuntu 和 Debian 中使用 apt 命令更新单个软件包 +====== + +你如何[在命令行中更新你的 Ubuntu 系统][1]?你使用 apt update(刷新包缓存)和 apt upgrade 命令。 + +``` +sudo apt update && sudo apt upgrade +``` + +它会更新所有可以立即升级的已安装 apt 包。这也包括 Linux 内核版本。 + +这似乎是一件好事,尤其是对于桌面用户。对于运行关键 Web 服务的 Ubuntu 服务器用户而言,情况可能并非如此。 + +如果你想对更新有选择性并且**只想升级单个软件包**,请使用以下命令: + +``` +sudo apt install --only-upgrade package_name +``` + +让我们更详细地了解一下。 + +### 使用 apt 命令升级单个包 + +第一步是更新本地包仓库缓存,以便你的系统知道新包版本的可用性。 + +``` +sudo apt update +``` + +**这是可选的**。检查你要升级的软件包是否在[可升级软件包列表][2]中。 + +``` +apt list --upgradable +``` + +如果所需的软件包有可用的新版本,你可以选择使用以下命令仅升级该单个软件包: + +``` +sudo apt install --only-upgrade package_name +``` + +如果你对已安装的软件包运行 apt install 命令,它将升级到下一个可用版本。 + +但如果该软件包尚未安装,apt 命令也会安装它。 + +这就是为什么 `--only-upgrade` 部分是必要的。使用该选项,apt 命令只会升级已安装的软件包。如果尚未安装,它将不会安装该软件包。 + +这不是最适合 Ubuntu 服务器用户的示例,但你仍然可以在下面的截图中看到我如何只升级了七个可升级包中的一个。 + +![Update only a single package in Ubuntu][3] + +### 仅升级选定的软件包 + +如果要升级选定的几个软件包,那么不必一一更新。只需使用前面提到的命令提供包名称。 + +``` +sudo apt install --only-upgrade package1 package2 package3 +``` + +这是一个例子。 + +![Upgrade selected packages in Ubuntu][4] + +### 总结 + +当你面临必须升级选定软件包的情况时,你可以使用带有 –only-upgrade 选项的 apt install 命令。 + +我建议阅读[更有效地使用 apt 命令][5]。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-upgrade-single-package/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/update-ubuntu/ +[2]: https://itsfoss.com/apt-list-upgradable/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/update-single-package-ubuntu-scaled.webp +[4]: https://itsfoss.com/wp-content/uploads/2022/07/upgrade-selected-packages-ubuntu.png +[5]: https://itsfoss.com/apt-command-guide/ From 0dca130d6f6e1c329d9b2231e00120ca1c954a31 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 29 Jul 2022 08:36:22 +0800 Subject: [PATCH 0560/3123] translating --- ...xing the -Pending Update of Firefox snap- Error in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md index 33b4e9bf1e..86e38cf325 100644 --- a/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md +++ b/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/pending-update-firefox-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From a82984e96d2783a3f722734213bc304251488e01 Mon Sep 17 00:00:00 2001 From: ZZJ Date: Fri, 29 Jul 2022 15:03:08 +0800 Subject: [PATCH 0561/3123] Update 20211115 Linux tips for using cron to schedule tasks.md --- .../20211115 Linux tips for using cron to schedule tasks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211115 Linux tips for using cron to schedule tasks.md b/sources/tech/20211115 Linux tips for using cron to schedule tasks.md index 7366456bd1..293343467d 100644 --- a/sources/tech/20211115 Linux tips for using cron to schedule tasks.md +++ b/sources/tech/20211115 Linux tips for using cron to schedule tasks.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/11/cron-linux" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "Veryzzj" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8e955743610f7aa1c3e6ba1e4eff555f24d1e57c Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 29 Jul 2022 17:22:19 +0800 Subject: [PATCH 0562/3123] translating --- ...0715 Microservices Collaboration with Containerised Kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {sources => translated}/tech/20220715 Microservices Collaboration with Containerised Kafka.md (99%) diff --git a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md b/translated/tech/20220715 Microservices Collaboration with Containerised Kafka.md similarity index 99% rename from sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md rename to translated/tech/20220715 Microservices Collaboration with Containerised Kafka.md index 3c9991e28a..dc502fd7c2 100644 --- a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md +++ b/translated/tech/20220715 Microservices Collaboration with Containerised Kafka.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/07/microservices-collaboration-with-containerised-kafka/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yjacks" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e01f44c51b56ebf1f51ac0e29b40d3db54e81d75 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 29 Jul 2022 21:09:20 +0800 Subject: [PATCH 0563/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220728=20How=20To=20Build=20Custom=20Docker=20Imag?= =?UTF-8?q?e=20Using=20Dockerfile.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ld Custom Docker Image Using Dockerfile.md | 304 ++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md diff --git a/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md b/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md new file mode 100644 index 0000000000..50e49255a1 --- /dev/null +++ b/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md @@ -0,0 +1,304 @@ +[#]: subject: "How To Build Custom Docker Image Using Dockerfile" +[#]: via: "https://ostechnix.com/a-brief-introduction-to-dockerfile/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Build Custom Docker Image Using Dockerfile +====== +Explaining Dockerfile With Example + +In this guide, we will see a brief introduction to **Dockerfile** and how to use Dockerfile to automate the process of **building custom docker images** in Linux. + +#### Contents + +1. What Is Dockerfile? +2. Understanding Dockerfile Format +3. Creating a Dockerfile +4. Build Docker Image Using Dockerfile + +### What Is Dockerfile? + +Dockerfile is a simple text file with instructions to build docker image. It contains all the commands a user could call on the command line to build an image. + +We can use the dockerfile to create our own custom images. We can then share these custom Docker images via Docker Hub. + +For those wondering, Docker Hub is a hosted repository service provided by Docker for finding and sharing container images with your team and of course with anyone in the world. + +Imagine this scenario. Earlier if we want to use **Nginx**, then we need to install and configure the Nginx with many steps involved. Thanks to Dockerhub, we can now download and run the prebuilt container image of Nginx in couple minutes. + +![Nginx Docker Image In Dockerhub][1] + +To pull Nginx image from DockerHub, run: + +``` +# docker pull nginx +``` + +Once we pulled the docker images, we can use it by running the image using command: + +``` +# docker run -it -d -p 8080:8080 nginx +``` + +It is that simple! + +To know more about Docker usage, refer the following guide. + +* [Getting Started With Docker][2] + +There are over 100,000 container images from software vendors, open-source projects, and the community available in Dockerhub. + +You can search and download any container image of your choice from Dockerhub and start using it immediately as shown above. + +### Understanding Dockerfile Format + +Docker can build images automatically by reading the **instructions** from a Dockerfile. + +A typical Dockerfile contains the following instructions: + +**1.** **FROM** - It will set the base image of the container. + +**Example:** + +``` +FROM ubuntu:22.04 +``` + +It will set the base image of the container as Ubuntu. If tag 22.04 is not specified, it will take a tag as "latest". + +**2.** **LABEL** - It is a key-value pair used to specify metadata information of the image. + +**Example:** + +``` +LABEL ENV=”DEVELOPMENT” +``` + +**3.** **RUN** - It is used to execute the command on the base image and it will create a new layer. + +**Example:** + +``` +RUN apt-get update +RUN apt-get install tomcat +``` + +**4.** **CMD** - It is used to set a command to execute first when the container starts. + +**Example:** + +``` +CMD [“java”, “-jar”, “app.jar”] +``` + +**5.** **EXPOSE** - It will expose the port to access the container. Container will listen on this network port. We can access the output using this port. + +**Example:** + +``` +EXPOSE 8080 +``` + +**6.** **MAINTAINER** - It will give the detail of the author who created this Docker image. + +**Example:** + +``` +MAINTAINER info@ostechnix.com +``` + +**7.** **ENV** - It is used to set environment variables in the key-value pair. These variables are set during the image build and are available after container created. + +**Example:** + +``` +ENV DB_NAME=”MySQL” +ENV DB_VERSION=”8.0” +``` + +**8.** **COPY** - It is used to copy local files to the container. + +**Example:** + +``` +COPY /target/devops.jar devops.jar +``` + +**9.** **ADD** - It works same as copy but having some more feature like we can extract local tar and add remote URL. + +**Example:** + +``` +ADD devops.tar.xz / . +ADD http://example.com/abc.git /usr/local/devops/ +``` + +**10.** **ENTRYPOINT** - It is used to set the main command for the image. It works as same as CMD instruction. The only difference between CMD and ENTRYPOINT is instructions are not overwritten in ENTRYPOINT. + +**Example:** + +``` +ENTRYPOINT [“java”, “-jar”, “app.jar”] +``` + +**11.** **VOLUME** - It will creates a mount point with the specified name. + +**Example:** + +``` +VOLUME /app/devops +``` + +**12.** **USER** - It will sets the user name and user group to use when running the image. + +**Example:** + +``` +USER dhruv +USER admin +``` + +**13.** **WORKDIR** - It will set the working directory. It will create the directory if not present. + +**Example:** + +``` +WORKDIR /var/lib/ +``` + +Here is a sample Dockerfile for your reference. + +``` +FROM ubuntu:latest +MAINTAINER Senthilkumar Palani "info@ostechnix.com" +RUN apt-get install -y software-properties-common python +RUN add-apt-repository ppa:chris-lea/node.js +RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ jammy universe" >> +/etc/apt/sources.list +RUN apt-get update +RUN apt-get install -y nodejs +RUN mkdir /var/www +ADD app.js /var/www/app.js +CMD ["/usr/bin/node", "/var/www/app.js"] +``` + +Allow me to show you a simple example to create a sample Dockerfile and build an image using it. + +### Creating a Dockerfile + +Create a file named **Dockerfile**, : + +``` +# nano dockerfile +``` + +Add the following lines. In the this example, we are updating and installing the **vim** and **curl** packages. + +``` +FROM alpine + +RUN apk update +RUN apk add vim +RUN apk add curl +``` + +![Dockerfile For Alpine Linux][3] + +Press **CTRL+O** and **CTRL+X** to save the file and close it. + +Now we have the Dockerfile in place. Let us go ahead and build an image using the Dockerfile. + +**Heads Up:** If you use **[Docker Desktop][4]**, you can run docker commands as normal user. + +### Build Docker Image Using Dockerfile + +To build an image from the Dockerfile, simply run: + +``` +# docker build -t alpine . +``` + +Please note the **dot** (.) at the end. + +**Sample output:** + +``` +[+] Building 51.2s (8/8) FINISHED + => [internal] load build definition from Dockerfile 0.1s + => => transferring dockerfile: 104B 0.0s + => [internal] load .dockerignore 0.1s + => => transferring context: 2B 0.0s + => [internal] load metadata for docker.io/library/alpine:latest 38.8s + => [1/4] FROM docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a 2.7s + => => resolve docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a 0.0s + => => sha256:d7d3d98c851ff3a95dbcb70ce09d186c9aaf7e25d48 1.47kB / 1.47kB 0.0s + => => sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379 2.80MB / 2.80MB 2.4s + => => sha256:7580ece7963bfa863801466c0a488f11c86f85d9988 1.64kB / 1.64kB 0.0s + => => sha256:9b2a28eb47540823042a2ba401386845089bb7b62a9637d 528B / 528B 0.0s + => => extracting sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379cbf2b 0.2s + => [2/4] RUN apk update 4.3s + => [3/4] RUN apk add vim 3.5s + => [4/4] RUN apk add curl 1.3s + => exporting to image 0.4s + => => exporting layers 0.4s + => => writing image sha256:14231deceb6e8e6105d2e551799ff174c184e8d9be8af 0.0s + => => naming to docker.io/library/alpine 0.0s + +Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them +``` + +As per the above command, Docker will start to build images automatically by reading the instructions from the **Dockerfile** saved in the current working directory. Remember, we have defined `apk update`, `apk add vim` and `apk add curl` commands in the dockerfile? These actions will be automatically performed as well. + +If the Dockerfile is saved in somewhere else, you can mention its path using **-f** flag like below. + +``` +# docker build -f /path/to/a/Dockerfile . +``` + +After creating the image, we can run it using command: + +``` +# docker run -it alpine +``` + +This command will start the Alpine container and attach to it. + +``` +/ # uname -a +Linux 8890fec82de8 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022 x86_64 Linux +/ # cat /etc/alpine-release +3.16.1 +/ # +``` + +If you have Docker Desktop, you can view the running container under the Containers tab. + +![View Containers In Docker Desktop][5] + +This is how one can build a custom container images using Dockerfile. + +We've only covered the basics. There is a lot more you can do with Dockerfile. I recommend you to refer the official [Dockerfile reference][6] guide to learn more about it. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/a-brief-introduction-to-dockerfile/ + +作者:[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/07/Nginx-Docker-Image-In-Dockerhub.png +[2]: https://ostechnix.com/getting-started-with-docker/ +[3]: https://ostechnix.com/wp-content/uploads/2022/07/Dockerfile-For-Alpine-Linux.png +[4]: https://ostechnix.com/docker-desktop-for-linux/ +[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Containers-In-Docker-Desktop-1024x524.png +[6]: https://docs.docker.com/engine/reference/builder/ From 3998ee24c4c7d721a1fc0ea27a46af2045666041 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 29 Jul 2022 21:13:55 +0800 Subject: [PATCH 0564/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220728=20Top=2010=2032-Bit=20Linux=20Distributions?= =?UTF-8?q?=20in=202022=20[Compared].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Linux Distributions in 2022 [Compared].md | 257 ++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 sources/tech/20220728 Top 10 32-Bit Linux Distributions in 2022 [Compared].md diff --git a/sources/tech/20220728 Top 10 32-Bit Linux Distributions in 2022 [Compared].md b/sources/tech/20220728 Top 10 32-Bit Linux Distributions in 2022 [Compared].md new file mode 100644 index 0000000000..d7f1d4e2d2 --- /dev/null +++ b/sources/tech/20220728 Top 10 32-Bit Linux Distributions in 2022 [Compared].md @@ -0,0 +1,257 @@ +[#]: subject: "Top 10 32-Bit Linux Distributions in 2022 [Compared]" +[#]: via: "https://www.debugpoint.com/32-bit-linux-distributions/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 32-Bit Linux Distributions in 2022 [Compared] +====== +We list the best 32-bit Linux distributions that still support ancient systems. + +![][0] + +### What is happening with 32-bit Linux Distros? + +Linux always supports older hardware, thanks to the community. But more and more Linux operating systems are dropping support for 32-bit systems mainly because it takes additional testing effort to keep another build apart from 64-bit, and the number of 32-bit systems is reducing daily. + +Most of the older hardware manufactured before 2007 has 32-bit architecture-based CPUs, which we mostly know as i386, i586, i486 and x86. However, the hardware manufactured after 2007 are primarily 64-bit and may term as modern. + +Recently, many famous and lightweight Linux distros dropped support for 32-bit architecture. But some projects are still strong and provide users with an option to run the older machines with full functionality. + +I will list the ten best Linux distros that still support 32-bit systems. + +### Top 10 32-bit Linux distros in 2022 + +#### 1. Debian + +Debian Linux is the foundation of hundreds of Linux distributions across multiple architectures. Millions use it as a desktop and server operating system. Debian is a “universal operating system” because it supports x86-64, arm64, armel,armhf, i386, mips, mipsel, mips64el, ppc64el, s390x architectures with work in progress for riscv64. + +In addition, it supports a wide range of hardware and includes free and non-free packages. On the desktop side, all the major [desktop environments][1] are available for you to install on your older hardware. + +Perhaps, it is the safest choice if you are looking for a vanilla 32-bit Linux distro experience. + +![Debian Logo][2] + +#### Why is Debian the best 32-bit distro? + +* Most popular and widely used +* Dependable and used by millions +* Well documentation, tutorials and user guides +* Proper framed future roadmap +* [Support for all architectures and platforms][3] + +[Download Debian][4] + +#### 2. MX Linux + +MX Linux is a systemd-free distro based on Debian stable branch. It is recently trending among users who want a clean system that supports older to modern hardware. + +MX Linux is popular because it’s carefully created to give you a perfect and stable system with its native applications and tools. + +![MX Linux][5] + +The team behind it gives a lot of thought while packaging the applications in this distro. Besides that, it is also based on antiX components and comes with KDE Plasma desktop, Xfce and Fluxbox. + +MX Linux is probably the best choice in this list because it is easy to download and use in older systems. + +![mx linux logo][6] + +#### Why is MX Linux the best? + +* Systemd free, hence faster +* Based on Debian stable, it gives a more stable system +* Unique in-house applications to help users with generic tasks +* 3 desktop flavour options to choose from +* Well-supported community and user-base + +[Download MX Linux][7] + +#### 3. Q4OS + +The third 32-bit Linux distro in this list is Q4OS. Q4OS is a unique Linux operating system based on Debian and brings KDE and Trinity desktop environments. It comes with a 32-bit installer which can be used to install. In addition, Q4OS also features a Windows installer where you can parallel run this distro inside WIndows. + +An exciting and related trivia about Q4OS is that it was created as an alternative to Windows XP when Microsoft discontinued it on 2014. And it’s still going strong and providing a stable 32-bit alternative to many users. + +![Q4OS Logo][8] + +#### Here are some of the critical advantages of Q4OS + +* Well-defined roadmap and unlikely to be discontinued +* Based on Debian and long-term support has been available for more than five years +* Provides KDE and Trinity desktop both (for those who like KDE 3) +* The unique installer gives the ability to install it inside Windows and take advantage of the entire hardware (not like in VM) +* Themes, Software centre, and third-party app installers are available + +[Download Q4OS][9] + +#### 4. NixOS + +The fourth Linux distro in this list of 32-bit distributions is NixOS, built on top of the Nix Package manager. This independent Linux distribution is perfect for DevOps and deployment pipeline tasks and supports atomic updates. It uses a configuration script for several tasks, including installation. + +That said, NixOS is not for the beginner or average Linux users, although it functions like other Linux distributions. It’s not designed to be an end-user Linux operating system. + +However, since it provides a 32-bit variant, it’s perfect for some use cases where you need to set up a remote server or pipeline in older hardware. You can learn more and download using the below link. + +[Download NixOS][10] + +#### 5. Void Linux + +Void Linux is an independent Linux distro (not depending on Debian or Fedora, etc.) which follows a unique rolling release model. It comes with X Binary Package System (XBPS), which helps you to install apps and packages directly from sources. In addition, it uses run unit as init system, instead of systemd. + +Void Linux provides a 32-bit installer with the latest packages alongside the usual 64-bit and ARM installation methods. Hence, you can quickly try it out on your older hardware. Moreover, Void Linux also support all major desktop environments, such as Xfce, Cinnamon, LXDE, LXQt and more. + +![Void Linux Logo][11] + +#### Here are some of the advantages of Void Linux + +* Independent distribution and free from Debian, Ubuntu or Fedora base +* Well-defined path for future updates and continuity +* Excellent XBPS package management system +* A rolling release-based distro which is stable +* All major desktop environments supported + +[Download Void Linux][12] + +#### 6. Zorin OS Lite 15.3 + +Zorin OS is an excellent and popular Linux distribution, a fusion of Xfce and GNOME 3 desktop. It comes with a Pro and Lite version. The Zorin OS Lite version provides a 32-bit installer at the moment. + +![Zorin OS][13] + +But there is a catch. Currently, the Zorin OS 15.3 Lite version only supports the 32-bit version. And its support ends on April 2023. + +After that, Zorin OS will not be supporting the 32-bit version anymore. The reason is it is based on Ubuntu LTS. And Ubuntu discontinued the 32-bit image from Ubuntu 20.04 LTS Focal Fossa version. + +Hence, you can use Zorin OS 15.3 Lite until April 2023 and take advantage of its beautiful desktop and additional features. + +[Download Zorin OS 15.3 Lite (32 bit)][14] + +#### 7. Porteus + +If you are a fan of the Old-KDE desktop and looking for a 32-bit operating system, then you can try Porteus Linux. Porteus is a Slackware Linux spin that features a KDE 4.0+ desktop environment. It is based on bleeding edge Slackware Linux and provides a fast desktop experience. Moreover, it can run from a Live USB/CD. The installer size is 300 MB, perfect for CD-based older hardware. + +![Porteus Logo][15] + +#### The reason why Porteus can be an ideal 32-bit Linux OS + +* Based on bleeding-edge Slackware Linux +* Enjoy the simplicity of Slackware +* Installer size can fit into a CD (300 MB only) +* Legacy KDE 4.0 Desktop support +* Can run off a USB or CD + +[Download Porteus Linux][16] + +#### 8. antiX + +The antiX Linux is slightly different on the desktop level than other 32-bit distros in this list. It is a lightweight Linux distribution based on Debian stable branch and brings some exciting features. First and foremost, it comes with a 32-bit installer, which has four variants – Full, Core, Base and Net. Secondly, it features famous primarily Windows Managers and Not desktop environments. Hence it is faster. + +The antiX Linux features IceWM, Fluxbox, and ROX desktop options. In addition, it is free of systemd and uses sysVinit & runit as init system. + +A perfect 32-bit Linux distribution that brings window manager, sydtemd-free and Debian base. + +![Antix Logo][17] + +#### Why is antiX an excellent 32-bit distro? + +* Provides stability with Debian stable branch +* Provides a 32-bit installer with four variants +* Systemd free distribution +* Window manager support, rather than desktops + +[Download antiX][18] + +#### 9. BunsenLabs Linux + +Remember the famous Crunchbang project? The BunsenLabs Linux is a successor of the Crunchbang project based on the Debian stable branch. Like antiX, it also features Windows Manager rather than desktop environments. It brings Openbox Window manager with an excellent tin2 panel at its core. In addition, some goodies such as Conky presets, jgmenu makes it a well-designed 32-bit distro for that ancient hardware. + +![BunsenLabs Logo][19] + +#### Why is BunsenLabs the best? + +* Powered by Debian stable branch +* Openbox Window manager is for the desktop experience +* Pre-configured Concky with tin2 panel, jgmenu +* A good amount of help and support is available + +[Download BunsenLabs][20] + +#### 10. Alpine Linux + +A list of 32-bit Linux distributions is incomplete without Alpine Linux. Alpine Linux is an almost two-decade-old Linux distro created for developers and power users. It’s unique and provides a 32-bit variant among other architectures. + +At its core, it uses musl and BusyBox instead of GNU tools and packages. Also, Alpine uses OpenRC as init system. + +This independent Linux is perfect for containers and hypervisors and boasts about its security. Perhaps, not so suitable for usual desktop usage. However, the popular PostmarketOS mobile Linux OS platform is based on Alpine Linux. + +![Alpine Logo][21] + +#### Alpine Linux advantages + +* Independent Linux distro +* Not based on GNU toolchain (uses musl and BusyBox) +* APK package manager +* Suitable for containers and Hypervisors +* Well secured at the core level + +[Download AlpineLinux][22] + +### List of significant distros that dropped support of 32-bit recently + +Since you went thru the above list, it’s always to remember that a bunch of distros which depended on Ubuntu dropped their 32-bit support. From the version Ubuntu 20.04 Focal Fossa, Ubuntu officially closed the support for 32-bit. Hence all the Ubuntu-LTS variants are also forced to follow this decision. + +Here’s a brief list of awesome distros which unfortunately discontinued the 32-bit support in the recent past. + +* Linux Mint 20 and above +* Puppy Linux 9.5 and above +* Ubuntu 20.04 LTS Focal Fossa and above +* All the official Ubuntu flavours (such as Lubuntu and Xubuntu) from 20.04 onwards + +### Closing Notes + +You can rest assured that there will always be support for 32-bit Linux distributions to support older hardware. If a day comes when all distro stops support, Debian will always support all hardware possible. That’s the beauty of Debian. + +Also, other niche distros, such as Puppy and Void Linux – will continue to support 32-bit hardware in the coming days. Because they are built with this purpose only. + +Finally, I hope this list helps you to pick the best 32-bit distro for your PC or hardware. Also, don’t forget to check out the [best lightweight distros][23] for older hardware which contain 64-bit distros for older hardware. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/32-bit-linux-distributions/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/07/32bitdistrohd.jpg +[1]: https://www.debugpoint.com/category/desktop-environment +[2]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_debian.png +[3]: https://www.debugpoint.com/install-debian-buster/ +[4]: https://www.debian.org/distrib/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/mx-linux-logo-2.png +[7]: https://mxlinux.org/download-links/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_q4os_lightblue.png +[9]: https://www.q4os.org/downloads1.html +[10]: https://nixos.org/ +[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_void.png +[12]: https://voidlinux.org/download/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS.jpg +[14]: https://zorin.com/os/download/15/lite/32/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/07/Porteus-Logo.png +[16]: http://www.porteus.org/ +[17]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_antix.png +[18]: https://antixlinux.com/download/ +[19]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_bunsenlabs_yellow_black.png +[20]: https://www.bunsenlabs.org/installation.html +[21]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_alpine.png +[22]: https://alpinelinux.org/downloads/ +[23]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ From 45c3e22ed6f394a36df6132b0ed735e642bd1256 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 29 Jul 2022 21:17:30 +0800 Subject: [PATCH 0565/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220729=207=20Docks=20to=20Customize=20Your=20Linux?= =?UTF-8?q?=20Desktop.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7 Docks to Customize Your Linux Desktop.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 sources/tech/20220729 7 Docks to Customize Your Linux Desktop.md diff --git a/sources/tech/20220729 7 Docks to Customize Your Linux Desktop.md b/sources/tech/20220729 7 Docks to Customize Your Linux Desktop.md new file mode 100644 index 0000000000..8312558944 --- /dev/null +++ b/sources/tech/20220729 7 Docks to Customize Your Linux Desktop.md @@ -0,0 +1,188 @@ +[#]: subject: "7 Docks to Customize Your Linux Desktop" +[#]: via: "https://itsfoss.com/best-linux-docks/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Docks to Customize Your Linux Desktop +====== +A dock has been an important part of the Linux desktop experience for decades. It provides a handy way of quickly accessing your favorite, frequently used applications. + +Unfortunately, the popular desktop environment GNOME doesn’t provide a dock. + +Fret not. You can always install a Docking application on your Linux desktop. + +And this is not just limited to GNOME. If you don’t like the dock provided by your distribution and the [desktop environment][1], you can replace it with another one of your choices. + +Speaking of choices, let me share some of my favorite docks that will help you change the default look of your desktop Linux. + +I have added installation instructions for Ubuntu. You may find these docks in your distribution’s repositories and install it using your distribution’s package manager. + +### 1. Plank + +![plank][2] + +Plank is the default dock in Elementary OS, one of the most [beautiful Linux distros][3]. But this was not the only reason why Plank exists on this list. + +It gives you the simplest dock you can get for its functionality. + +Hence, it is also light on system resources, so pairing it with your favorite window manager can be a good idea (sadly, you won’t get many customization options). + +You can also experience the fine implementation of Plank dock in other distros such as Ubuntu MATE and others. + +To install Plank on Ubuntu derivatives, use the given command: + +``` +sudo apt install plank +``` + +[Plank][4] + +### 2. Latte + +![Latte Dock][5] + +Being part of the KDE ecosystem, Latte is one of the most configurable docks available. From having various custom profiles to changing the behavior of each element, Latte surely deserves to be on this list. + +The only drawback of Latte is dependencies. Latte can be a bit heavy on system resources as it will be bundled with various KDE apps by default and Wayland is still not supported. + +But if you are already using some apps from KDE or if dependencies don’t concern you, Latte will be good for its looks and customization options. + +You can [install Latte on Ubuntu-based distributions][6] using: + +``` +sudo apt install latte +``` + +[Latte][7] + +### 3. Dash to Dock + +![Dash to Dock on Ubuntu][8] + +A popular GNOME extension that allows users to change the behavior of how the default dash on GNOME behaves. + +As an extension, it is easy to install, and you do not have much to worry about regarding dependencies at all. Extensions are extremely light on resources. You can use the [Extension Manager][9] or follow our guide to [install the GNOME extension][10]. + +For more information, you can visit their [official GNOME extension page][11]. + +[Dash to Dock][12] + +### 4. Cairo + +![Cairo Dock on Ubuntu][13] + +If you prefer old-school animation and theming like myself, nothing beats Cairo! This may look a bit outdated but by default, you get various themes pre-installed to match your desktop. + +Rather than compiling each customization option in a single menu, we get subsections for customizing one element at a time and trust me, it nails it. + +Unlike other options in the list, you get various add-ons and sections from which you can enhance the functionality of the dock and also get some pre-installed themes to start with. + +It’s a bit heavy on system resources as it will constantly utilize animations. To install Cairo on an Ubuntu-based system, use the given command: + +``` +sudo apt install cairo-dock cairo-dock-plug-ins +``` + +[Cairo][14] + +### 5. DockbarX + +![DockbarX][15] + +**Note:** The last release was in 2019. + +So if you are looking for a dock that can also function in panel mode, DockbarX can be your next dock, especially if you are using Xfce DE. + +It is a simple dock you can try with any desktop environment. + +DockbarX is one of those docks which enables you to tweak the way you interact with it. From the dock’s background, and themes to notifications, everything can be tweaked. + +The installation is basic, and if you are using an Ubuntu-based distro, you can easily install DockbarX by using the given command: + +``` +sudo apt install dockbarx-themes-extra +``` + +[DockbarX][16] + +### 6. KSmoothDock + +![KSmoothDock][17] + +If you want something that adds a glassy-finish/premium touch to your Linux desktop, KSmoothDock is what you’re looking for. + +KSmoothDock is meant to be paired with KDE Plasma, but it blends quite well with GNOME too. It brings a parabolic effect similar to macOS and has an application launcher, pages, and other helpful features for daily usage. + +The major disadvantage of KSmoothDock is that it requires a modern set of software and will not work on old kernels. Installation is complex, especially if you are not using Debian derivatives. + +To download the .deb file, visit their [official download page][18]. In either case, you can choose to compile it from scratch if you’re comfortable. + +[KSmoothDock][19] + +### 7. Tint2: Dock for Window Managers + +![Tint2 Dock][20] + +**Note:** Its last release was in 2019. + +Tint2 is a widely used dock/panel, when coupled with window managers, and in terms of customization, probably no one comes close to this. + +This might not be a good choice if you are a beginner but suitable for advanced users who love to tinker with each element available on DE. + +You will find Tint2 in default repositories of almost every Linux distribution and if you are still confused about how to install Tint2 on Ubuntu, type the following command: + +``` +sudo apt install tint2 +``` + +To reduce your efforts in customization, I found a set of pre-defined themes on [Github][21] which is created by considering each type of user in mind. + +[Tint2][22] + +### What’s Your Favorite Linux Dock? + +Docks are one of the several ways you can customize your desktop. Other methods include using different icons and themes, wallpapers, terminal colors, extensions and more. + +I have listed the best Linux docks, in my opinion. Some of the popular options haven’t seen a new release in the last few years but they may still be found in your distribution’s repositories. + +What do you prefer to use among the listed Linux docks? Did we miss any of your favorites? Please let me know your thoughts in the comments below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-linux-docks/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/what-is-desktop-environment/ +[2]: https://itsfoss.com/wp-content/uploads/2022/07/Plank.png +[3]: https://itsfoss.com/beautiful-linux-distributions/ +[4]: https://github.com/ricotz/plank +[5]: https://itsfoss.com/wp-content/uploads/2022/07/Latte.png +[6]: https://itsfoss.com/install-use-latte-dock-ubuntu/ +[7]: https://github.com/KDE/latte-dock +[8]: https://itsfoss.com/wp-content/uploads/2022/07/desk-to-dock.png +[9]: https://itsfoss.com/extension-manager/ +[10]: https://itsfoss.com/gnome-shell-extensions/ +[11]: https://extensions.gnome.org/extension/307/dash-to-dock/ +[12]: https://github.com/micheleg/dash-to-dock +[13]: https://itsfoss.com/wp-content/uploads/2022/07/cairo.png +[14]: https://glx-dock.org/ +[15]: https://itsfoss.com/wp-content/uploads/2022/07/dockbarx-1.png +[16]: https://github.com/M7S/dockbarx +[17]: https://itsfoss.com/wp-content/uploads/2022/07/KsmoothDOck.png +[18]: https://store.kde.org/p/1081169/ +[19]: https://store.kde.org/p/1081169/ +[20]: https://itsfoss.com/wp-content/uploads/2022/07/Tint2.png +[21]: https://github.com/addy-dclxvi/tint2-theme-collections +[22]: https://github.com/o9000/tint2/blob/master/doc/tint2.md From 50c1c2e34160c0c7093797c8ef4776d509ce3eb2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 29 Jul 2022 21:20:27 +0800 Subject: [PATCH 0566/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220728=20A=20Few=20Tools=20that=20Help=20Machines?= =?UTF-8?q?=20to=20Learn.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...A Few Tools that Help Machines to Learn.md | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 sources/tech/20220728 A Few Tools that Help Machines to Learn.md diff --git a/sources/tech/20220728 A Few Tools that Help Machines to Learn.md b/sources/tech/20220728 A Few Tools that Help Machines to Learn.md new file mode 100644 index 0000000000..f0bee339ac --- /dev/null +++ b/sources/tech/20220728 A Few Tools that Help Machines to Learn.md @@ -0,0 +1,141 @@ +[#]: subject: "A Few Tools that Help Machines to Learn" +[#]: via: "https://www.opensourceforu.com/2022/07/a-few-tools-that-help-machines-to-learn/" +[#]: author: "Dr Anand Nayyar https://www.opensourceforu.com/author/anand-nayyar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A Few Tools that Help Machines to Learn +====== +Artificial intelligence, machine learning, and deep learning have evolved over decades to help computers perform tasks in the way humans do. This article briefly describes three open source machine learning frameworks — OpenCV, PyTorch and OpenNN – in the context of these technologies. + +![Machine-learning-tools][1] + +Artificial intelligence (AI) aims to mimic the functions of the human brain using computers. It uses mathematical and statistical models (e.g., probability) to do so. Machine learning (ML) improves the behaviour of AI models using programming models of brain functions, and storing the results of these models for future predictions. + +These technologies are inspired by the human neural network, which is the core storage layer of our brain. The processing efficiency of these neural network based solutions is improved by implementing a distributed model for faster processing, as well as simulation of various brain functions like object detection, analytical ability, etc. + +Genetic algorithms improve deep learning models. These have a self-learning ability and are intuitive, hence maximising the applications of AIML (artificial intelligence modelling language) models and reducing the effort in training them. They improve the knowledge base in neural networks. + +![Figure 1: AIML model functions][2] + +All these technologies are helping computer based applications to improve their ability to come closer to human-like thinking, while reducing the effort needed to build and train models. + +### Common features of AIML tools + +Many tech giants are investing large sums in deep learning projects. These include Facebook, Intel and Google, to name a few. Google Brain is the AI research team in Google, which was first formed in early 2010 to design deep learning solutions using Google platforms. The first software built by this team was DistBelief. Later, it was instrumental in releasing many popular projects like TensorFlow, Google Analytics and Google Translate. + +There are many popular machine learning frameworks available in the market, many of which are open source. However, we cannot blindly select a machine learning tool or framework based on convenience. We need to look at the problem scenario, data requirements, data volume to process, training data availability, trainability, algorithm support, visualisation and reporting facility, capability to auto-build the knowledge or training model, processing speed required (CPU/GPU), to name a few, before we make a choice. + +In machine learning, building the model is a time consuming task as a lot of training is needed to get higher accuracy in processing the model for the given problem. For example, a lot of training needs to be done to build the neural network of data sets to get greater accuracy in recognising images. + +![Figure 2: Cognitive intelligence types][3] + +Computational problems are largely solved using a traditional approach like statistical and scientific algorithms. However, some of these problems prove to be costly in terms of time and effort if solved in this way. Pretrained machine learning models can handle such problems using less time and money. + +### Vision API, image API and face detection + +AI grew in importance from the early 1950s to the late 1980s, when engineers developed intelligent machines and programs to address particular problems. + +Since training AI models was costly and time consuming, and the accuracy rate or efficiency of the AI algorithms remained static, ML evolved in the 1980s as a subset of AI. ML models learn by themselves without being explicitly programmed, as a self-training capability is slowly built into them. They address specific problems and can be used for image or speech recognition with higher accuracy. + +Deep learning (DL) is a subset of ML, which uses a multi-layered neural network and improves accuracy and efficiency by learning from its experience (called historical data). It builds a model based on the history, and is very efficient for large volumes of data. Deep learning started to emerge in the late 2010s and is widely used in speech recognition, image or pattern recognition, object detection in videos and images, and language translation, to name a few. + +![Figure 3: Machine learning API types][4] + +Cognitive services help to quickly develop AI models for applications to manage human-like decision making services such as pattern recognition, speech recognition and search facilities. Machine learning cognitive services can be grouped into five major categories of activities, as given below. + +*Vision API:* This service helps to handle image and video processing in face detection, object detection, and pattern recognition with specific use case features like celebrity/landmark detection, handwritten character recognition and OCR activities. + +*Language API:* This service handles sentiment analysis, language understanding (termed as LUIS), bot facilities for answering questions from the knowledge base, language detection, language translation, phonetic analysis, etc. + +*Speech API:*This service handles speech-to-text and text-to-speech translation, real-time speech translation and transcribing, custom voice moderation, etc. + +*Knowledge API:* This service facilitates bot services, contact centre AI facilities for knowledge base creation, QA extraction from textual documentation, self-training from voice answers, content customisation, personalised learning, semantic matching, anomaly detection in content search, etc. + +**Search API:** Based on Bing or Google search APIs, this service offers a search facility for images, videos, text and audio content; image identification, extraction and classification; lead generation based on search results, etc. + +### OpenCV + +OpenCV is one of the most popular vision API facilitated open source machine learning frameworks. It provides various libraries and hardware simulators for building, deploying and testing machine learning models. One of the most important implementers of OpenCV is the Microsoft Azure platform, which uses it for its MMLSpark framework for advanced Big Data services. + +Microsoft has contributed to the Apache Spark framework by introducing the Microsoft Machine Learning for Apache Spark (MMLSpark) framework. MMLSpark expands the distributed machine learning solution of Apache Spark by adding OpenCV, Microsoft Cognitive Toolkit (CNTK) and many other machine learning framework capabilities to the Spark framework in Big Data processing using the enterprise data lake solution. + +MMLSpark comprises a group of machine learning libraries. These are listed below. + +1. Vowpal Wabbit: Library services for machine learning to enable text analytics like sentiment analysis in tweets. +2. Cognitive services on Spark: These combine the features of Microsoft cognitive services in SparkML pipelines in order to get a solution design for cognitive data modelling services like anomaly detection. +3. LightBGM: Machine learning model to enable training for predictive analysis like face ID detection. +4. Spark Serving: Provides a REST API facility to use Spark streaming resources at ease. +5. HTTP on Spark: Enables distributed microservices orchestration in integrating Spark and HTTP protocol based accessibility. +6. Cognitive Toolkit (CNTK): Deep learning framework from Microsoft to enable a Spark solution for data validation in streaming data. +7. Lime: Classifier and modelling solution for distributed models in Spark streaming data. +8. Spark Binding Auto-generation: Enables PySpark (Python) and SparklyR (R programming) coding facility for modelling Spark streaming data models. + +MMLSpark enables data processing with Spark for modelling solutions using machine learning libraries for image processing, video analytics, text analytics, etc. + +*Latest version:* 4.5.5 +*Official website:* *https://opencv.org/* + +### PyTorch + +PyTorch is an open source machine learning framework based on the Torch library and is primarily used for computer vision and natural language processing (NLP). Developed by the Facebook AI Research Lab, it facilitates building deep learning models and allows them to be expressed in idiomatic Python. It is an optimised tensor library for deep learning using GPUs and CPUs. Functionality can be extended with common Python libraries such as NumPy and SciPy. The easiest way to get started with PyTorch is to use NGC containers. The PyTorch NGC container comes with all the dependencies that are useful to design applications for conversational AI, natural language processing, recommendation systems and computer vision. + +It has two good features: + +* Tensor computations with strong GPU acceleration. +* Deep neural networks are built on a tape-based autograd system. + +The PyTorch library comprises the following components: + +* Torch: This is considered a tensor library like NumPy. +* Torch.autograd: This is a tape based automatic differentiation library. +* Torch.jit: Torch script to create serialisable and optimisable models from code. +* Torch.nm: This is a neural network library. +* Torch.multiprocessing: Python multiprocessing and useful for data loading and Hogwild training. +* Torch.utils: Miscellaneous utilities for developers for using code. + +*Features:* + +1. Production ready: Easy to use and has flexibility to integrate code in runtime environments. +2. Torchserve: Strong tool for deploying PyTorch in an easy manner. +3. Mobile support: Supports end-to-end workflow — from Python to deployment on iOS and Android environments. +4. Robustness in integration of tools and libraries. +5. With a C++ frontend, design and architecture becomes easy to understand, and has low latency. +6. Cloud computing ready: PyTorch is well supported for cloud API-based seamless integration. + +*Latest version:* 1.11.0 +*Website: https://pytorch.org/* + +### OpenNN + +OpenNN is a C++ based software library designed for advanced analytics and implements neural networks. The library is stable and very fast in memory allocation. It is constantly optimised and parallelised to attain efficiency in code. It implements data mining methods. + +**Features:** + +a. High processing speed +b. Easy design and implementation +c. Proof-of-concept +d. C++ oriented + +*Website:* *https://www.opennn.net/* + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/07/a-few-tools-that-help-machines-to-learn/ + +作者:[Dr Anand Nayyar][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/anand-nayyar/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Machine-learning-tools.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-AIML-model-functions-3.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Cognitive-intelligence-types-1.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Machine-learning-API-types-1.jpg From 53263ea45f7e10209896acee577ea513ceddfc1d Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 29 Jul 2022 21:22:20 +0800 Subject: [PATCH 0567/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220729=20Fix=20bugs=20in=20Bash=20scripts=20by=20p?= =?UTF-8?q?rinting=20a=20stack=20trace.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Bash scripts by printing a stack trace.md | 254 ++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 sources/tech/20220729 Fix bugs in Bash scripts by printing a stack trace.md diff --git a/sources/tech/20220729 Fix bugs in Bash scripts by printing a stack trace.md b/sources/tech/20220729 Fix bugs in Bash scripts by printing a stack trace.md new file mode 100644 index 0000000000..2199fc74f0 --- /dev/null +++ b/sources/tech/20220729 Fix bugs in Bash scripts by printing a stack trace.md @@ -0,0 +1,254 @@ +[#]: subject: "Fix bugs in Bash scripts by printing a stack trace" +[#]: via: "https://opensource.com/article/22/7/print-stack-trace-bash-scripts" +[#]: author: "Evan "Hippy" Slatis https://opensource.com/users/hippyod" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fix bugs in Bash scripts by printing a stack trace +====== +Automatically printing a stack trace on unhandled errors in your scripts can make finding and fixing bugs in your code much easier. + +![Bug tracking magnifying glass on computer screen][1] + +Image by: Pixabay, testbytes, CC0 + +No one wants to write bad code, but inevitably bugs will be created. Most modern languages like Java, JavaScript, Python, etc., automatically print a stack trace when they encounter an unhandled exception, but not shell scripts. It would make it much easier to find and fix bugs in shell scripts if you could print a stack trace, and, with a little work, you can. + +Shell scripts can span multiple files, and well-written code is further broken down into functions. Tracing issues when something goes wrong in a shell script can be difficult when these scripts get large enough. A stack trace that walks the code backward from the error to the beginning can show you where your code failed and give you a better understanding of why so you can fix it properly. + +To implement the stack trace, I use the [trap][2] in the following manner at the beginning of my script: + +``` +set -E + +trap 'ERRO_LINENO=$LINENO' ERR +trap '_failure' EXIT +``` + +This example accomplishes a few things, but I'll address the second one, **trap 'ERRO_LINENO=$LINENO' ERR**, first. This line ensures the script traps all commands that exit with a non-zero exit code (i.e., an error), and saves the line number of the command in the file where the error was signaled. This is not captured on exit. + +The first line above (**set -E**) ensures that the error trap is inherited throughout the script. Without this, whenever you drop into an **if** or **until** block, for example, you'd lose track of the correct line number. + +The second trap captures the exit signal from the script and sends it to the **_failure** function, which I'll define in a moment. But why on exit and not error if you're trying to debug the script? In bash scripts, command failures are often used in control logic or can be ignored outright as unimportant by design. For example, say at the beginning of your script, you're looking to see if a particular program is already installed before asking the user whether they'd like you to install it for them: + +``` +if [[ ! -z $(command -v some_command) ]] +then +   # CAPTURE LOCATION OF some_command +   SOME_COMMAND_EXEC=$(which some_command) +else +   # echo $? would give us a non-zero value here; i.e. an error code +   # IGNORE ERR: ASK USER IF THEY WANT TO INSTALL some_command +fi +``` + +If you were to stop processing on every error and some_command is not installed, this would prematurely end the script, which is obviously not what you want to do here, so in general, you only want to log an error and stack trace when the script has exited unintentionally because of an error. + +To force your script to exit whenever there's an unexpected error, use the **set -e** option: + +``` +set -e +# SCRIPT WILL EXIT IF ANY COMMAND RETURNS A NON-ZERO CODE +# WHILE set -e IS IN FORCE +set +e +# COMMANDS WITH ERRORS WILL NOT CAUSE THE SCRIPT TO EXIT HERE +``` + +The next question is, what are some examples where you would probably like your script to exit and highlight a failure? Common examples include the following: + +1. An unreachable remote system +2. Authentication to a remote system fail +3. Syntax errors in config or script files being sourced +4. Docker image builds +5. Compiler errors + +Combing through many pages of logs after a script completes looking for any possible errors that may be hard to spot can be extremely frustrating. It's even more frustrating when you discover something is wrong long past the time you ran the script and now have to comb through multiple sets of logs to find what might have gone wrong and where. Worst is when the error has been around for a while, and you only discover it at the worst possible time. In any case, pinpointing the problem as quickly as possible and fixing it is always the priority. + +Look at the sample stack trace code (available for [download here][3]): + +``` +# Sample code for generating a stack trace on catastrophic failure + +set -E + +trap 'ERRO_LINENO=$LINENO' ERR +trap '_failure' EXIT + +_failure() { +  ERR_CODE=$? # capture last command exit code +  set +xv # turns off debug logging, just in case +  if [[  $- =~ e && ${ERR_CODE} != 0 ]] +  then +      # only log stack trace if requested (set -e) +      # and last command failed +      echo +      echo "========= CATASTROPHIC COMMAND FAIL =========" +      echo +      echo "SCRIPT EXITED ON ERROR CODE: ${ERR_CODE}" +      echo +      LEN=${#BASH_LINENO[@]} +      for (( INDEX=0; INDEX<$LEN-1; INDEX++ )) +      do +          echo '---' +          echo "FILE: $(basename ${BASH_SOURCE[${INDEX}+1]})" +          echo "  FUNCTION: ${FUNCNAME[${INDEX}+1]}" +          if [[ ${INDEX} > 0 ]] +          then +           # commands in stack trace +              echo "  COMMAND: ${FUNCNAME[${INDEX}]}" +              echo "  LINE: ${BASH_LINENO[${INDEX}]}" +          else +              # command that failed +              echo "  COMMAND: ${BASH_COMMAND}" +              echo "  LINE: ${ERRO_LINENO}" +          fi +      done +      echo +      echo "======= END CATASTROPHIC COMMAND FAIL =======" +      echo +  fi +} + +# set working directory to this directory for duration of this test +cd "$(dirname ${0})" + +echo 'Beginning stacktrace test' + +set -e +source ./testfile1.sh +source ./testfile2.sh +set +e + +_file1_function1 +``` + +In the `stacktrace.sh` above, the first thing the **_failure** function does is capture the exit code of the last command using the built-in shell value **$?**. It then checks whether the exit was unexpected by checking the output of **$-**, a built-in shell value that holds the current bash shell settings, to see if **set -e** is in force. If the script exited on an error and the error was unexpected, the stack trace is output to the console. + +The following built-in shell values are used to build the stack trace: + +1. BASH_SOURCE: Array of filenames where each command was called back to the main script. +2. FUNCNAME: Array of line numbers matching each file in BASH_SOURCE. +3. BASH_LINENO: Array of line numbers per file matching BASH_SOURCE. +4. BASH_COMMAND: Last command executed with flags and arguments. + +If the script exits with an error in an unexpected manner, it loops over the above variables and outputs each one in order so a stack trace can be built. The line number of the failed command is not held in the above arrays, but that's why you captured the line number each time a command failed with the first trap statement above. + +### Putting it all together + +Create the following two files to support the test, so you can see how the information is gathered across multiple files. First, `testfile1.sh` : + +``` +_file1_function1() { +   echo +   echo "executing in _file1_function1" +   echo + +   _file2_function1 +} + +# adsfadfaf + +_file1_function2() { +   echo +   echo "executing in _file1_function2" +   echo +  +   set -e +   curl this_curl_will_fail_and_CAUSE_A_STACK_TRACE + +   # function never called +   _file2_does_not_exist +} +``` + +And next, `testfile2.sh` : + +``` +_file2_function1() { +   echo +   echo "executing in _file2_function1" +   echo + +   curl this_curl_will_simply_fail + +   _file1_function2 +} +``` + +NOTE: If you create these files yourself, make sure to make the `stacktrace.sh` file executable. + +Executing `stacktrace.sh` will output the following: + +``` +~/shell-stack-trace-example$./stracktrace.sh +Beginning stacktrace test + +executing in _file1_function1 + +executing in _file2_function1 +curl: (6) Could not resolve host: this_curl_will_simply_fail + +executing in _file1_function2 +curl: (6) Could not resolve host: this_curl_will_fail_and_CAUSE_A_STACK_TRACE + +========= CATASTROPHIC COMMAND FAIL ========= + +SCRIPT EXITED ON ERROR CODE: 6 + +--- +FILE: testfile1.sh +  FUNCTION: _file1_function2 +  COMMAND: curl this_curl_will_fail_and_CAUSE_A_STACK_TRACE +  LINE: 15 +--- +FILE: testfile2.sh +  FUNCTION: _file2_function1 +  COMMAND: _file1_function2 +  LINE: 7 +--- +FILE: testfile1.sh +  FUNCTION: _file1_function1 +  COMMAND: _file2_function1 +  LINE: 5 +--- +FILE: stracktrace.sh +  FUNCTION: main +  COMMAND: _file1_function1 +  LINE: 53 + +======= END CATASTROPHIC COMMAND FAIL ======= +``` + +For extra credit, try uncommenting the line in `testfile1.sh` and executing `stacktrace.sh` again: + +``` +# adsfadfaf +``` + +Then re-comment the line, and instead comment out the following line in `testfile1.sh` that caused a stack trace and run `stacktrace.sh` one last time: + +``` +curl this_curl_will_fail_and_CAUSE_A_STACK_TRACE +``` + +This exercise should give you an idea of the output and when it occurs if you have typos in your scripts. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/print-stack-trace-bash-scripts + +作者:[Evan "Hippy" Slatis][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/hippyod +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bug_software_issue_tracking_computer_screen.jpg +[2]: https://man7.org/linux/man-pages/man1/trap.1p.html +[3]: https://github.com/hippyod-labs/shell-stack-trace-example From deaa2d23195da20ea651f57a40a9d78ad9ceceb1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 29 Jul 2022 21:24:18 +0800 Subject: [PATCH 0568/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220729=20Learn=20Rust=20by=20debugging=20Rust.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220729 Learn Rust by debugging Rust.md | 242 ++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 sources/tech/20220729 Learn Rust by debugging Rust.md diff --git a/sources/tech/20220729 Learn Rust by debugging Rust.md b/sources/tech/20220729 Learn Rust by debugging Rust.md new file mode 100644 index 0000000000..0abe7c217e --- /dev/null +++ b/sources/tech/20220729 Learn Rust by debugging Rust.md @@ -0,0 +1,242 @@ +[#]: subject: "Learn Rust by debugging Rust" +[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings" +[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Rust by debugging Rust +====== +Rustlings is an open source project by the Rust team that helps you learn Rust through the process of debugging. + +![Ferris the crab under the sea, unofficial logo for Rust programming language][1] + +Image by: Opensource.com + +In my previous [article about rustup][2], I showed you how to install the Rust toolchain. Well, what good is the toolchain if you won’t be using it to get more hands-on with Rust? Learning any language involves reading existing code and writing a lot of sample programs. That's a good way to become proficient in a language. However, there's a third way: debugging code. + +Learning through debugging involves trying to compile a pre-written (buggy) sample program, understanding the errors generated by the compiler, fixing the sample code, and then re-compiling it. Repeat that process until the code successfully compiles and runs. + +[Rustlings][3] is an open source project by the Rust team that helps you learn Rust through the process of debugging. It also provides you with a lot of hints along the way. If you're a beginner to Rust and have either started or completed reading the Rust book, then rustlings is the ideal next step. Rustlings helps you apply what you've learned from the book, and move to working on bigger projects. + +### Installing rustlings + +I'm using (and recommend) a Fedora machine to try rustlings, but any Linux distribution works. To install rustlings, you must download and run its install script. It's recommended that you do this as a normal user (not root) without any special privileges. + +Remember, for you to be able to use rustlings, you need the Rust toolchain available on your system. If you don't have that already, please refer to my [article on rustup][4]. + +Once you're ready, download the installation script: + +``` +$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh  > rustlings_install.sh +$ file rustlings_install.sh +rustlings_install.sh: Bourne-Again shell script, ASCII text executable +``` + +Inspect the script to learn what it does: + +``` +$ less rustlings_install.sh +``` + +And then run it to install: + +``` +$ bash rustlings_install.sh +[...] +Installing /home/tux/.cargo/bin/rustlings +Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`) +All done! +``` + +Run 'rustlings' to get started. + +### Rustlings exercises + +The installation provides you with the `rustlings` command. Run it along with the `--help` flag to see what options are available. + +``` +$ rustlings --help +``` + +The installation script also clones the rustlings Git repository, and installs all the dependencies required to run the sample programs. You can view the sample programs within the exercises directory under `rustlings` : + +``` +$ cd rustlings +$ pwd +/home/tux/rustlings +$ ls +AUTHORS.md  Cargo.toml        CONTRIBUTING.md  info.toml install.sh README.md  target Cargo.lock  CHANGELOG.md  exercises install.ps1  LICENSE src tests +$ ls -m exercises/ +advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs, +modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md, +standard_library_types, strings, structs, tests, threads, traits, variables +``` + +### List all exercises from the command line + +The `rustlings` command provides you with a `list` command which displays each sample program, its complete path, and the status (which defaults to **pending**.) + +``` +$ rustlings list +Name         Path                                 Status +intro1       exercises/intro/intro1.rs            Pending +intro2       exercises/intro/intro2.rs            Pending +variables1   exercises/variables/variables1.rs    Pending +variables2   exercises/variables/variables2.rs    Pending +variables3   exercises/variables/variables3.rs    Pending +[...] +``` + +Near the end of the output, you're given a progress report so you can track your work. + +``` +Progress: You completed 0 / 84 exercises (0.00 %). +``` + +### View sample programs + +The `rustings list` command shows you what programs are available, so at any time you can view the code of those programs by copying the complete paths into your terminal as an argument for the [cat][5] or [less][6] commands: + +``` +$ cat exercises/intro/intro1.rs +``` + +### Verify your programs + +Now you can start debugging programs. You can do that using the `verify` command. Notice that rustlings chooses the first program in the list (`intro1.rs` ), tries to compile it, and succeeds: + +``` +$ rustlings verify +Progress: [-----------------------------------] 0/84 +✅ Successfully ran exercises/intro/intro1.rs! + +You can keep working on this exercise, +or jump into the next one by removing the `I AM NOT DONE` comment: + + 6 |  // Execute the command `rustlings hint intro1` for a hint. + 7 |   + 8 |  // I AM NOT DONE + 9 | +``` + +As you can see from the output, even though the sample code compiles, there's work yet to be done. Each sample program has the following comment in its source file: + +``` +$ grep "NOT DONE" exercises/intro/intro1.rs +// I AM NOT DONE +``` + +Although the compilation of the first program worked fine, rustlings won't move to the next program until you remove the `I AM NOT DONE` comment. + +### Moving to the next exercise + +Once you have removed the comment from `intro1.rs`, you can move to the next exercise by running the `rustlings verify` command again. This time, you may notice that rustlings tries to compile the next program (`intro2.rs` ) in the series, but runs into an error. You're expected to debug that issue, fix it, and then move forward. This is a critical step, allowing you to understand why Rust says a program has bugs. + +``` +$ rustlings verify +Progress: [>------------------------] 1/84 +⚠️  Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output: +error: 1 positional argument in format string, but no arguments were given + --> exercises/intro/intro2.rs:8:21 +  | +8 |         println!("Hello {}!"); +  |                         ^^ + +error: aborting due to previous error +``` + +### Getting a hint + +Rustlings has a handy `hint` argument, which tells you exactly what's wrong with the sample program, and how to fix it. You can think of it as an add-on help option, in addition to what the compiler error message tells you. + +``` +$ rustlings hint intro2 +Add an argument after the format string. +``` + +Based on the above hint, fixing the program is easy. All you need to do is add an additional argument to the `println` statement. This diff should help you understand the changes: + +``` +< println!("Hello {}!", "world"); +--- +> println!("Hello {}!"); +``` + +Once you make that change, and removed the `NOT DONE` comment from the source code, you can run `rustlings verify` again to compile and run the code. + +``` +$ rustlings verify +Progress: [>-------------------------------------] 1/84 +✅ Successfully ran exercises/intro/intro2.rs! +``` + +### Track progress + +You aren't going to finish all of the exercises in a day, and it's easy to lose track of where you left off. You can run the `list` command to see the status of your work. + +``` +$ rustlings list +Name         Path                                  Status +intro1       exercises/intro/intro1.rs             Done   +intro2       exercises/intro/intro2.rs             Done   +variables1   exercises/variables/variables1.rs     Pending +variables2   exercises/variables/variables2.rs     Pending +variables3   exercises/variables/variables3.rs     Pending +[...] +``` + +### Run specific exercises + +If you don't want to start from the beginning and skip a few exercises, rustlings allows you to focus on specific exercises using the `rustlings run` command. This runs a specific program without requiring the previous lesson to be verified. For example: + +``` +$ rustlings run intro2 +Hello world! +✅ Successfully ran exercises/intro/intro2.rs +$ rustlings run variables1 +``` + +Typing exercise names can become tedious, but rustlings provides you with a handy `next` command so you can move to the next exercise in the series. + +``` +$ rustlings run next +``` + +### Alternative watch command + +If you don't want to keep typing `verify` after each modification you make, you can run the `watch` command in a terminal window, and then keep modifying the source code to fix issues. The `watch` command detects these modifications, and keeps re-compiling the program to see whether the issue has been fixed. + +``` +$ rustlings watch +``` + +### Learn by debugging + +The Rust compiler is known to provide very meaningful error messages, which helps you understand issues in your code. This usually leads to faster debugging. Rustlings is a great way to practice Rust, to get used to reading error messages, and understand the Rust language. Check out the recent features of Rustlings 5.0.0 on [GitHub][7]. + +**[[ Practice programming with Rust. Download our Rust cheat sheet. ]][8]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/learn-rust-rustlings + +作者:[Gaurav Kamathe][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/gkamathe +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png +[2]: https://opensource.com/article/22/6/rust-toolchain-rustup +[3]: https://github.com/rust-lang/rustlings +[4]: https://opensource.com/article/22/6/rust-toolchain-rustup +[5]: https://opensource.com/article/19/2/getting-started-cat-command +[6]: https://opensource.com/article/18/4/using-less-view-text-files-command-line +[7]: https://github.com/rust-lang/rustlings/releases/tag/5.0.0 +[8]: https://opensource.com/downloads/rust-cheat-sheet From b4745fffaad9e33313ef2423108bd7e67792e757 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 29 Jul 2022 21:54:36 +0800 Subject: [PATCH 0569/3123] R --- ...Consider Including Non-Free Firmware in Official Releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md b/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md index 3bf533d5b9..ac911d46d4 100644 --- a/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md +++ b/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md @@ -26,7 +26,7 @@ Debian 可能会考虑在官方版本中包含非自由固件 正如 [Geeker's Digest][2] 所发现的,在 DebConf 22 会议上,Steve 最近向用户和开发人员着重谈到了修复固件混乱这件事。 -### 在官方版本中包含非免费固件 +### 在官方版本中包含非自由固件 至于目前的情况,你可以找到带有非自由固件的非官方 Debian 镜像。 From 08d1ae95335318bac4e07709775b4e44d2e116ea Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 29 Jul 2022 22:26:44 +0800 Subject: [PATCH 0570/3123] ALL @wxy https://linux.cn/article-14876-1.html --- ...s Time to Ditch 32-Bit Linux for 64-Bit.md | 86 +++++++++++++++++++ ...s Time to Ditch 32-Bit Linux for 64-Bit.md | 82 ------------------ 2 files changed, 86 insertions(+), 82 deletions(-) create mode 100644 published/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md delete mode 100644 sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md diff --git a/published/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md b/published/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md new file mode 100644 index 0000000000..594a70e68d --- /dev/null +++ b/published/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md @@ -0,0 +1,86 @@ +[#]: subject: "It’s Time to Ditch 32-Bit Linux for 64-Bit" +[#]: via: "https://news.itsfoss.com/64-bit-linux/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14876-1.html" + +是时候抛弃 32 位的 Linux,改用 64 位的了 +====== + +> 如果你想获得安全的体验,你可能不会再继续使用 32 位 Linux 内核。 + +![](https://news.itsfoss.com/wp-content/uploads/2022/07/linux-64-bit.jpg) + +我们有很多 [为 32 位系统定制的 Linux 发行版][1]。 + +那么,为什么我想要不鼓励使用 32 位,而升级到 64 位 Linux 呢? + +有几个原因,其中一个最大的原因,在本周引发了很多关注。 + +### 32 位:古老的电子垃圾硬件? + +没错,与其他操作系统不同的是,Linux 发行版允许你重新利用旧硬件。 + +你能够将一个老机器转换为 [媒体服务器][2]、存储服务器,等等。 + +在这里,我并不是要给你一些如何贡献更多的电子垃圾的思路。尽可能长地利用你的硬件,而不更换它们总是好的。 + +然而,不使用 32 位系统的理由可能比以往更有说服力。关键的问题是在安全和维护方面。 + +### 利用 64 位 Linux 提高安全性 + +2018 年,危险的处理器安全问题 Spectre 漏洞引发了热议。虽然英特尔和 AMD 对这个漏洞进行了修复,但情况并不乐观。 + +不幸的是,一个新的漏洞 Retbleed,它是 Spectre 的一个变种,正在影响英特尔和 AMD 芯片。 + +你可以在下面由发现它的研究人员分享的视频中看到它的情况。 + +![][3] + +因此,我们自然需要适当的措施来解决这个新的安全漏洞的修复问题。 + +**令人震惊的事情来了**。64 位 Linux 内核已经收到了对它的修复,以保护有关的英特尔/AMD 的处理器。但是,正如 [Phoronix][4] 所报道的,Linux 32 位内核仍然容易受到 Retbleed 漏洞的影响。 + +英特尔的 Pawan Gupta 在 [内核邮件列表][5] 中回应了这些担忧,他提到: + +> 英特尔不知道还有谁在 Skylake 那一代的 CPU 上使用 32 位模式的生产环境。所以这不应该是一个问题。 + +另外,很少看到为 32 位维护所做的任何努力。所以,这应该不算什么意外。 + +因此,如果你使用你的系统进行任何可能受到安全问题影响的任务,你应该避开 32 位内核。 + +当然,如果你有一个完全离线的环境可以算做例外。所以,你可以这样做,但不建议这样做。 + +### 不关心安全问题? + +即使你认为得不到像 Retbleed 这样的关键安全修复没有关系,2022 年的 32 位系统也会有更多的麻烦。 + +软件维护者们最终会放弃对 32 位系统上的工具和 Linux 发行版的更新。 + +因此,你的 32 位 Linux 系统可能很快就不会再有积极维护的程序了。 + +因此,现在进行转换(和升级)将是一个好主意。 + +_你还在使用 32 位的 Linux 吗?你对此有什么看法?在下面的评论中分享你的想法。_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/64-bit-linux/ + +作者:[Ankush Das][a] +选题:[lujun9972][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/lujun9972 +[1]: https://itsfoss.com/32-bit-linux-distributions/ +[2]: https://itsfoss.com/best-linux-media-server/ +[3]: https://i.ytimg.com/vi/dmSPvJxPm80/hqdefault.jpg +[4]: https://www.phoronix.com/news/Linux-x86-Retbleed +[5]: https://lore.kernel.org/lkml/20220715221901.xm3c4w4idqt67uja@desk/ diff --git a/sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md b/sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md deleted file mode 100644 index 137690d5ae..0000000000 --- a/sources/news/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "It’s Time to Ditch 32-Bit Linux for 64-Bit" -[#]: via: "https://news.itsfoss.com/64-bit-linux/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -It’s Time to Ditch 32-Bit Linux for 64-Bit -====== - -We have plenty of [Linux distributions tailored for 32-bit systems][1]. - -So, why do I want to discourage using 32-bit and upgrade to 64-bit Linux instead? - -There are a couple of reasons, and one of the biggest reasons came to the spotlight this week. - -### 32-Bit: Ancient Hardware for E-Waste? - -Of course, Linux distros allow you to re-use older hardware, unlike any other operating system. - -You get the possibility to convert a system to a [media server][2], a storage server, and whatnot. - -Here, I’m not giving you the idea to contribute more e-waste. It is always good to utilize your hardware as long as possible without replacing them. - -However, the reasons not to use 32-bit systems may be more compelling than ever. The key highlight would be in terms of security and maintenance. - -### Improved Security With 64-bit Linux - -Spectre vulnerability made the buzz in 2018 as a dangerous security issue for processors. While it was fixed for Intel and AMD processors, it was not a pretty situation. - -Unfortunately, a new exploit, **Retbleed**, a variant of Spectre, is here affecting Intel and AMD chips. - -You can see it in action in the video below shared by the researchers who discovered it: - -![][3] - -So, naturally, we need appropriate measures to address a fix for this new security vulnerability. - -**Here comes the shocker**: 64-bit Linux kernels have received a fix for it to protect the necessary Intel/AMD processors in question. But, Linux 32-bit kernels remain vulnerable to Retbleed, as reported by [Phoronix][4]. - -Pawan Gupta (Intel) responded to the concerns in the [kernel mailing list][5] by mentioning: - -> Intel is not aware of production environments that use 32-bit mode on Skylake-gen CPUs. So this should not be a concern. - -Also, it is rare to see any efforts for 32-bit maintenance. So, it should not come as a surprise. - -Hence, if you use your system for any tasks that a security issue can disrupt, you should steer clear of 32-bit kernels. - -Of course, exceptions can include that you have an entirely offline setup. So, it would be up to you, but it is not recommended. - -### Don’t Care About Security? - -Even if you do not have a problem with not getting critical security fixes like Retbleed, there will be more trouble with 32-bit systems in 2022. - -Software maintainers aeventually giveup on tools and Linux distribution updates to work well with 32-bit systems. - -So, you may not be left with actively maintained programs for your 32-bit Linux system very soon. - -Hence, it would be a good idea to make the switch (and upgrade) now. - -_Do you still use 32-bit Linux? What do you think about it? Share your thoughts in the comments below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/64-bit-linux/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/32-bit-linux-distributions/ -[2]: https://itsfoss.com/best-linux-media-server/ -[3]: https://i.ytimg.com/vi/dmSPvJxPm80/hqdefault.jpg -[4]: https://www.phoronix.com/news/Linux-x86-Retbleed -[5]: https://lore.kernel.org/lkml/20220715221901.xm3c4w4idqt67uja@desk/ From 420d3eb283b65822a590a7c75ac3f273cef99bb7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 30 Jul 2022 07:17:37 +0800 Subject: [PATCH 0571/3123] RP @geekpi https://linux.cn/article-14878-1.html --- ...ython- not found- Error in Ubuntu Linux.md | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) rename {translated/tech => published}/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md (69%) diff --git a/translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md b/published/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md similarity index 69% rename from translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md rename to published/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md index 376f049a57..9531c34ad2 100644 --- a/translated/tech/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md +++ b/published/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md @@ -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-14878-1.html" 修复 Ubuntu Linux 中 “Command ‘python’ not found” 的错误 ====== +![](https://img.linux.net.cn/data/attachment/album/202207/30/071627r176w1k1y5dkkw6w.jpg) + 如何在 Linux 终端中运行一个 Python 程序?像这样,对吗? ``` @@ -18,31 +20,33 @@ python program.py 然而,如果你试图在 Ubuntu(和其他一些发行版)中使用 `python` 命令,它会抛出一个错误。 +``` command ‘python’ not found, did you mean: command ‘python3’ from deb python3 command ‘python’ from deb python-is-python3 +``` -如果你注意这个错误信息,它可以清除很多东西。**这里的 python 命令实际上是 python3**。 +如果你注意这个错误信息,它说明了很多东西。**这里的 `python` 命令实际上是 `python3`**。 如果你不理解,不用担心。我将在这里详细解释。 ### 为什么在 Ubuntu 上没有发现 python 命令? -这是因为 Python 语言不是以 python 的形式安装的,而是以 python3 或 python2 的形式安装的(在一些老的 Ubuntu 版本中)。 +这是因为 Python 语言不是以 `python` 的形式安装的,而是以 `python3` 或 `python2` 的形式安装的(在一些老的 Ubuntu 版本中)。 在遥远的过去的某个时间点,Python 实际上是作为 `python` 包/可执行文件提供的。当 Python 发布第二版时,Ubuntu 和其他发行版不得不同时支持 Python 1.x 和 2.x 版本。 -因此,他们将较新的 Python 版本命名为 `python2`,以区分这两个版本。其他应用或库也在其代码中指定 python 或 python2。 +因此,他们将较新的 Python 版本命名为 `python2`,以区分这两个版本。其他应用或库也在其代码中指定 `python` 或 `python2`。 -最终,Python 1 版本被完全停用,但软件包继续被命名为 python2。 +最终,Python 1 版本被完全停用,但软件包继续被命名为 `python2`。 类似地,当 Python 3 版本发布时,发行版开始同时提供 `python2` 和 `python3` 包。 -Python 2 不再被支持,Python 3.x 是你在 Ubuntu 上安装的版本。该软件包仍被命名为 python3。 +Python 2 不再被支持,Python 3.x 是你在 Ubuntu 上安装的版本。该软件包仍被命名为 `python3`。 -**总结一下,你已经在 Ubuntu 上安装了 Python。它可以作为 python3 软件包使用。** +**总结一下,你已经在 Ubuntu 上安装了 Python。它是以 `python3` 软件包方式使用的。** -那么,当你[在 Ubuntu 上看到 Python command not found 的错误][1]时,你有什么选择?让我来介绍一下。 +那么,当你 [在 Ubuntu 上看到 “Python command not found” 的错误][1] 时,你有什么选择?让我来介绍一下。 ### 确保你的系统中已经安装了 Python @@ -66,7 +70,7 @@ sudo apt install python3 ### 使用 python3 而不是 python -如果对你来说不是太麻烦,在需要的地方使用 python3 命令而不是 python。 +如果对你来说不是太麻烦,在需要的地方使用 `python3` 命令而不是 `python`。 想检查已安装的 Python 版本吗?请这样输入: @@ -77,7 +81,7 @@ python3 --version 然后你会在输出中得到版本的详细信息: ``` -[email protected]:~$ python3 --version +~$ python3 --version Python 3.10.4 ``` @@ -91,7 +95,7 @@ python3 program.py ### 将 python3 链接为 python -你可以在你的 .bashrc 文件中创建一个永久别名,像这样: +你可以在你的 `.bashrc` 文件中创建一个永久别名,像这样: ``` alias python='python3' @@ -99,9 +103,9 @@ alias python='python3' 这样,你可以运行 `python` 命令,而你的系统运行 `python3`。 -这在大多数情况下都会起作用,除非某些程序期望运行 /usr/bin/python。现在,你可以在 /usr/bin/python 和 /usr/bin/python3 之间建立符号链接,但对于 Ubuntu 用户来说,存在一个更简单的选择。 +这在大多数情况下都会起作用,除非某些程序期望运行 `/usr/bin/python`。现在,你可以在 `/usr/bin/python` 和 `/usr/bin/python3` 之间建立符号链接,但对于 Ubuntu 用户来说,存在一个更简单的选择。 -对于 Ubuntu 20.04 和更高版本,如果你安装了 python-is-python3 软件包,你有一个软件包可以自动完成所有链接创建。这也是原始错误信息所提示的。 +对于 Ubuntu 20.04 和更高版本,如果你安装了 `python-is-python3` 软件包,你有一个软件包可以自动完成所有链接创建。这也是原始错误信息所提示的。 ``` sudo apt install python-is-python3 @@ -109,7 +113,7 @@ sudo apt install python-is-python3 ![install python is python3 ubuntu][3] -你可以看到符号链接已经被创建,你可以使用 python 命令(实际上是运行 python3),没有任何问题。 +你可以看到符号链接已经被创建,你可以使用 `python` 命令(实际上是运行 `python3`),没有任何问题。 ![checking python ubuntu][4] @@ -122,7 +126,7 @@ via: https://itsfoss.com/python-not-found-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/) 荣誉推出 From 7751608e3a2e928c0ebc95bc8fe0aa016c3ef37b Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sat, 30 Jul 2022 13:41:50 +0800 Subject: [PATCH 0572/3123] translated --- ...20707 Use secret keyboard keys on Linux.md | 151 ------------------ ...20707 Use secret keyboard keys on Linux.md | 151 ++++++++++++++++++ 2 files changed, 151 insertions(+), 151 deletions(-) delete mode 100644 sources/tech/20220707 Use secret keyboard keys on Linux.md create mode 100644 translated/tech/20220707 Use secret keyboard keys on Linux.md diff --git a/sources/tech/20220707 Use secret keyboard keys on Linux.md b/sources/tech/20220707 Use secret keyboard keys on Linux.md deleted file mode 100644 index 80c9ba5851..0000000000 --- a/sources/tech/20220707 Use secret keyboard keys on Linux.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: subject: "Use secret keyboard keys on Linux" -[#]: via: "https://opensource.com/article/22/7/linux-compose-key-cheat-sheet" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Use secret keyboard keys on Linux -====== -With a compose key, you're not limited to what's on your keyboard. Download the cheat sheet. - -![Linux keys on the keyboard for a desktop computer][1] - -A typical computer keyboard has only about 100 keys on it. - -Most keys double up on characters, also called glyphs, thanks to the Shift key. Glyphs are frequently used to type letters with accents and umlauts, to produce characters used in mathematic or monetary expressions, or just to add fun emojis. In some regions there are even three glyphs available on select keys. - -Regardless of your region, however, some glyphs don't make it onto your keyboard. Fortunately, Linux provides access to these through a compose key. - -There's no compose key on your keyboard, at least not by default, but you can designate a key you're not otherwise using as your compose key. I use the Alt key to the right of the spacebar on my desktop keyboard and the Menu key on my laptop. - -**[[ Download the cheat sheet: Linux compose key ]][2]** - -### Setting a Compose key in GNOME - -![A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.][3] - -Image by: - -(Seth Kenlon, CC BY-SA 4.0) - -On the GNOME desktop, install the Tweaks application from your software repository. You can also install it from a terminal (use `apt` for Debian-based distributions, `dnf` for Fedora and similar): - -``` -$ sudo dnf install gnome-tweaks -``` - -After you launch Tweaks: - -1. Click on the Keyboard & Mouse category in the left column. -2. Locate the Compose key setting and choose a key to designate. -3. Close Tweaks. - -### Setting a Compose key in KDE Plasma Desktop - -![A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.][4] - -Image by: - -(Seth Kenlon, CC BY-SA 4.0) - -On the KDE Plasma Desktop, open System Settings and navigate to the Input Devices control panel. Then: - -1. In the Input Devices panel, click the Advanced tab. -2. Find the Compose key list item and choose a key to designate. -3. Click the Apply button in the bottom right corner of the window and then close System Settings. - -### Using compose sequences - -To enter a hidden character, press the compose key and then release it. You're now in compose mode. While in compose mode, you can press and release one key and then another to combine characters. - -For instance: - -1. Press the compose key and release it. You are now in compose mode. -2. Press an apostrophe (') and then release it. -3. Press the letter E and then release it. This is a valid combination, so you are now out of compose mode. - -You've just typed the letter É! - -Some compose sequences are a combination of just two keys, while others require three keys, and at least one special glyph uses a series of four key presses. - -### The secret glyphs - -It's a small world, so there's a good chance you've got friends whose names use glyphs that aren't native to your keyboard. You can now stop skipping over diacritics and type names using the appropriate modifiers. - -Here's a sample list of compose sequences for common diacritics: - -* ' + = á é í ó ú ć ń ý j́́ ẃ ź -* ` + = à è ì ò ù ǹ ỳ ẁ -* ~ + = ã ẽ ĩ õ ũ ñ ỹ -* ^ + = â ê î ô û ĉ ŷ ĵ ŵ ẑ -* u + = ă ĕ ĭ ŏ ŭ -* c + c = č -* - + = ā ē ī ō ū đ -* , + = ą ę į ǫ ų ç ḑ ţ - -That's not a complete list, but it covers a lot of the common ones. - -#### Currency - -International banking gets a little easier thanks to the compose key, too: - -* - + Y = ¥ -* - + L = £ -* = + E = € -* = + L = ₤ -* = + N = ₦ -* = + R = ₹ -* = + W = ₩ -* / + m = ₥ -* R + s = ₨ -* C + r = ₢ -* F + r = ₣ - -Once again, that's not a complete list, but it's a good start. - -#### Fun glyphs - -Diacritics and currency are useful, but the compose key can be used just for fun, too. - -* < + 3 = ♥ -* < + > = ⋄ -* # + q = ♩ -* : + ) = ☺ -* : + ( = ☹ -* p + o + o = 💩 - -#### Live long and prosper - -My favorite "secret" glyph in Linux is the traditional Vulcan salutation, "Live long and prosper." - -* L + L + A + P = 🖖 - -### Finding all the glyphs - -There are many more glyphs available through the compose key, and you can have fun discovering new ones by pressing random compose sequences. A more methodical method for finding glyphs is to refer to the `Compose` file, located in `/usr/share/X11/locale/en_US.UTF-8` (adjust the exact path depending on the locale your keyboard uses). - -That file can admittedly be overwhelming, as it consists of over 6,000 lines of compose sequences, many of which are complex combinations of ASCII and Unicode. For a quick and easy reference of common and foundational sequences, you can [download our compose key cheat sheet][5]. It provides sequences covering mathematics, typography, music, arrows, diacritics, currency, and more. - -Now that you're in on the secret, your range of expression just got a whole lot bigger. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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/linux_keyboard_desktop.png -[2]: https://opensource.com/downloads/linux-compose-key-cheat-sheet -[3]: https://opensource.com/sites/default/files/2022-04/gnome-tweaks-compose.jpeg -[4]: https://opensource.com/sites/default/files/2022-04/kde-settings-input-advanced-compose.jpeg -[5]: https://opensource.com/downloads/linux-compose-key-cheat-sheet diff --git a/translated/tech/20220707 Use secret keyboard keys on Linux.md b/translated/tech/20220707 Use secret keyboard keys on Linux.md new file mode 100644 index 0000000000..1d80536e9f --- /dev/null +++ b/translated/tech/20220707 Use secret keyboard keys on Linux.md @@ -0,0 +1,151 @@ +[#]: subject: "Use secret keyboard keys on Linux" +[#]: via: "https://opensource.com/article/22/7/linux-compose-key-cheat-sheet" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 中使用隐藏键 +====== + +使用组合键,你不会被键盘所限制住。请下载速查表。 + +![Linux keys on the keyboard for a desktop computer][1] + +典型的键盘只有约 100 个键位。 + +由于 Shift 键,许多键得以有两个字符,也称之为字形。字形常用于键入带有重音和变音符号的字母,生成数学公式或者货币中的符号,或者添加有趣的表情符号。在一些地区,选择键甚至有三个字形。 + +然而,不论你身处何处,一些字形不会出现在你的键盘上。幸运的是,Linux 提供了使用组合键来获取这些字形。 + +默认情况下你的键盘上没有组合键,但是你可以设定一个你不用的键作为组合键。我在电脑上使用空格键旁边的 Alt 键,而在平板上使用菜单键,来作为组合键。 + +**[请下载 Linux 组合键速查表][2]** + +### 在 GNOME 中设置组合键 + +![A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.][3] + +图片源自: +(Seth Kenlon, CC BY-SA 4.0) + +在 GNOME 桌面,从软件库中安装 Tweas 应用。你也可以从终端安装(基于 Debian 发行版用 `apt` 命令, `dnf` 用于 Fedora ): + +``` +$ sudo dnf install gnome-tweaks +``` + +启动 Tweaks 后: + +1. 单击左侧栏中的键盘和鼠标类别 +2. 找到组合键设置并指定一个键 +3. 关闭 Tweaks + +### 在 KDE Plasma 桌面设置组合键 + +![A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.][4] + +图片源自: +(Seth Kenlon, CC BY-SA 4.0) + +在 KDE Plasma 桌面上,打开系统设置,找到输入设备控制界面。然后: + +1. 在输入设备界面,点击 “高级” +2. 找到组合键列表项并指定一个键 +3. 点击右下角 “应用” 按钮,然后关闭系统设置 + + +### 使用组合序列 + +为了输入隐藏字符,需要按下组合键后松开。这样就可以进入组合模式。处于组合模式,你按下然后松开键,然后再按下一个键来组合字符。 + +例如: + +1. 按下组合键并释放,你会进入组合模式 +2. 按下单引号 ( ' ) 并松开 +3. 按下 E 并松开,这是一个有效的组合,因为你现在退出了组合模式 + +你输入了一个字符:É! + +一些组合序列需要两个键的组合,然而还有一些需要三个键,并且至少一个特殊字符要按下四次键。 + +### 变音字符 + +这是一个很小众的世界,所以你的朋友的名字很有可能使用的字形不是你的键盘原生的。你现在可以跳过变音符号并使用适当的修饰符输入名字。 + +以下是常见变音符号的组合序列示例: + +* ' + <字母> = á é í ó ú ć ń ý j́́ ẃ ź +* ` + <字母> = à è ì ò ù ǹ ỳ ẁ +* ~ + <字母> = ã ẽ ĩ õ ũ ñ ỹ +* ^ + <字母> = â ê î ô û ĉ ŷ ĵ ŵ ẑ +* u + <字母> = ă ĕ ĭ ŏ ŭ +* c + c = č +* \- \+ <字母> = ā ē ī ō ū đ +* , + <字母> = ą ę į ǫ ų ç ḑ ţ + +这里仅仅罗列了常见的几个,并不是所有的组合。 + +#### 货币符号 + +得益于组合键,国际银行业务也变得容易: + +* \- + Y = ¥ +* \- + L = £ +* = + E = € +* = + L = ₤ +* = + N = ₦ +* = + R = ₹ +* = + W = ₩ +* / + m = ₥ +* R + s = ₨ +* C + r = ₢ +* F + r = ₣ + +重申,这不是完整的列表,但是一个好的开始。 + +#### 有趣的字形 + +变音符号和货币符号具有实用性,但是组合键也可以用来娱乐: + +* < + 3 = ♥ +* < + > = ⋄ +* \# + q = ♩ +* : + ) = ☺ +* : + ( = ☹ +* p + o + o = 💩 + +#### 长寿和繁荣 + +在 Linux 中我最喜欢的“秘密”字形是传统的 Vulcan 称呼,“长寿和繁荣”。 + +* L + L + A + P = 🖖 + +### 找到所有的字形 + +通过组合键可以使用更多字形,你可以通过按随机组合序列来发现新的字形。查找字形的一种更有条理的方法是参考位于 `/usr/share/X11/locale/en_US.UTF-8` 中的 `Compose` 文件(需要根据你键盘使用的语言环境调整绝对路径)。 + +该文件令人崩溃,因为它包含超过 6000 行的组合序列,其中许多是 ASCII 和 Unicode 的复杂组合。要快速轻松地参考常见和基础序列,你可以[下载我们的组合键速查表][5]。它提供涵盖数学、排版、音乐、箭头、变音符号、货币等的序列。 + +现在你知道了这个秘密,你可以表达更多内容了。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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/linux_keyboard_desktop.png +[2]: https://opensource.com/downloads/linux-compose-key-cheat-sheet +[3]: https://opensource.com/sites/default/files/2022-04/gnome-tweaks-compose.jpeg +[4]: https://opensource.com/sites/default/files/2022-04/kde-settings-input-advanced-compose.jpeg +[5]: https://opensource.com/downloads/linux-compose-key-cheat-sheet From ec1e5a8ba7c83c95b5aa73cb5e0745f98f03c0e3 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Sat, 30 Jul 2022 04:33:12 -0500 Subject: [PATCH 0573/3123] Finish translating. --- ...y components of observability in Python.md | 188 ------------------ ...y components of observability in Python.md | 182 +++++++++++++++++ 2 files changed, 182 insertions(+), 188 deletions(-) delete mode 100644 sources/tech/20211122 7 key components of observability in Python.md create mode 100644 translated/tech/20211122 7 key components of observability in Python.md diff --git a/sources/tech/20211122 7 key components of observability in Python.md b/sources/tech/20211122 7 key components of observability in Python.md deleted file mode 100644 index 9ae46b153c..0000000000 --- a/sources/tech/20211122 7 key components of observability in Python.md +++ /dev/null @@ -1,188 +0,0 @@ -[#]: subject: "7 key components of observability in Python" -[#]: via: "https://opensource.com/article/21/11/observability-python" -[#]: author: "Moshe Zadka https://opensource.com/users/moshez" -[#]: collector: "lujun9972" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 key components of observability in Python -====== -Learn why observability is important for Python and how to implement it -into your software development lifecycle. -![Searching for code][1] - -The applications you write execute a lot of code, in a way that's essentially invisible. So how can you know: - - * Is the code working? - * Is it working well? - * Who's using it, and how? - - - -Observability is the ability to look at data that tells you what your code is doing. In this context, the main problem area is server code in distributed systems. It's not that observability isn't important for client applications; it's that clients tend not to be written in Python. It's not that observability does not matter for, say, data science; it's that tooling for observability in data science (mostly Juptyter and quick feedback) is different. - -### Why observability matters - -So why does observability matter? Observability is a vital part of the software development life cycle (SDLC). - -Shipping an application is not the end; it is the beginning of a new cycle. In that cycle, the first stage is to confirm that the new version is running well. Otherwise, a rollback is probably needed. Which features are working well? Which ones have subtle bugs? You need to know what's going on to know what to work on next. Things fail in weird ways. Whether it's a natural disaster, a rollout of underlying infrastructure, or an application getting into a strange state, things can fail at any time, for any reason. - -Outside of the standard SDLC, you need to know that everything is still running. If it's not running, it's essential to have a way to know how it is failing. - -### Feedback - -The first part of observability is getting feedback. When code gives information about what it is doing, feedback can help in many ways. In a staging or testing environment, feedback helps find problems and, more importantly, triage them in a faster way. This improves the tooling and communication around the validation step. - -When doing a canary deployment or changing a feature flag, feedback is also important to let you know whether to continue, wait longer, or roll it back. - -### Monitor - -Sometimes you suspect that something has gone wrong. Maybe a dependent service is having issues, or maybe social media is barraging you with questions about your site. Maybe there's a complicated operation in a related system, and you want to make sure your system is handling it well. In those cases, you want to aggregate the data from your observability system into dashboards. - -When writing an application, these dashboards need to be part of the design criteria. The only way they have data to display is when your application shares it with them. - -### Alerts - -Watching dashboards for more than 15 minutes at a time is like watching paint dry. No human should be subjected to this. For that task, we have alerting systems. Alerting systems compare the observability data to the expected data and send a notification when it doesn't match up. Fully delving into incident management is beyond the scope of this article. However, observable applications are alert-friendly in two ways: - - * They produce enough data, with enough quality, that high-quality alerts can be sent. - * The alert has enough data, or the receiver can easily get the data, to help triage the source. - - - -High-quality alerts have three properties: - - * Low false alarms: If there's an alert, there's definitely a problem. - * Low missing alarms: When there's a problem, an alert is triggered. - * Timely: An alert is sent quickly to minimize time to recovery. - - - -These three properties are in a three-way conflict. You can reduce false alarms by raising the threshold of detection at the cost of increasing missing alarms. You can reduce missing alarms by lowering the threshold of detection at the expense of increasing false alarms. You can reduce both false alarms and missing alarms by collecting more data at the cost of timeliness. - -Improving all three parameters is harder. This is where the quality of observability data comes in. Higher quality data can reduce all three. - -### Logging - -Some people like to make fun of print-based debugging. But in a world where most software runs on not-your-local-PC, print debugging is all you can do. Logging is a formalization of print debugging. The Python logging library, for all of its faults, allows standardized logging. Most importantly, it means you can log from libraries. - -The application is responsible for configuring which logs go where. Ironically, after many years where applications were literally responsible for configuration, this is less and less true. Modern applications in a modern container orchestration environment log to standard error and standard output and trust the orchestration system to manage the log properly. - -However, you should not rely on it in libraries, or pretty much anywhere. If you want to let the operator know what's going on, _use logging, not print_. - -#### Logging levels - -One of the most important features of logging is _logging levels_. Logging levels allow you to filter and route logs appropriately. But this can only be done if logging levels are consistent. At the very least, you should make them consistent across your applications. - -With a little help, libraries that choose incompatible semantics can be retroactively fixed by appropriate configuration at the application level. Do this by using the most important universal convention in Python: using the `getLogger(__name-_)`. - -Most reasonable libraries follow this convention. Filters can modify logging objects in place before they are emitted. You can attach a filter to the handler that will modify the messages based on the name to have appropriate levels. - - -``` - - -import logging - -LOGGER=logging.getLogger(__name__) - -``` - -With this in mind, you now have to actually specify semantics for logging levels. There are a lot of options, but the following are my favorite: - - * Error: This sends an immediate alert. The application is in a state that requires operator attention. (This means that Critical and Error are folded.) - * Warning: I like to call these “Business hours alerts.” Someone should look at this within one business day. - * Info: This is emitted during normal flow. It's designed to help people understand what the application is doing if they already suspect a problem. - * Debug: This is not emitted in the production environment by default. It might or might not be emitted in development or staging, and it can be turned on explicitly in production if more information is needed. - - - -In no case should you include PII (Personal Identifiable Information) or passwords in logs. This is true regardless of levels. Levels change, debug levels are activated, and so on. Logging aggregation systems are rarely PII-safe, especially with evolving PII regulation (HIPAA, GDPR, and others). - -#### Log aggregation - -Modern systems are almost always distributed. Redundancy, scaling, and sometimes jurisdictional needs mean horizontal distribution. Microservices mean vertical distribution. Logging into each machine to check the logs is no longer realistic. It is often a bad idea for proper control reasons: allowing developers to log into machines gives them too many privileges. - -All logs should be sent into an aggregator. There are commercial offerings, you can configure an ELK stack, or you can use any other database (SQL or no-SQL). As a really low-tech solution, you can write the logs to files and ship them to an object storage. There are too many solutions to explain, but the most important thing is choosing one and aggregating everything. - -#### Logging queries - -After logging everything to one place, there are too many logs. The specific aggregator defines how to write queries, but whether it's grepping through storage or writing NoSQL queries, logging queries to match source and details are useful. - -### Metric scraping - -Metrics scraping is a server pull model. The metrics server connects to the application periodically and pulls the metrics. - -At the very least, this means the server needs connectivity and discovery for all relevant application servers. - -#### Prometheus as a standard - -The [Prometheus][2] format as an endpoint is useful if your metrics aggregator is Prometheus. But it is also useful if it is not! Almost all systems contain a compatibility shim for Prometheus endpoints. - -Adding a Prometheus shim to your application using the client Python library allows it to be scraped by most metrics aggregators. Prometheus expects to find, once it discovers the server, a metrics endpoint. This is often part of the application routing, often at `/metrics`. Regardless of the platform of the web application, if you can serve a custom byte stream with a custom content type at a given endpoint, you can be scraped by Prometheus. - -For the most popular framework, there is also a middleware plugin or something equivalent that automatically collects some metrics, like latency and error rates. This is not usually enough. You want to collect custom application data: for example, cache hit/miss rates per endpoint, database latency, and so on. - -#### Using counters - -Prometheus supports several data types. One important and subtle type is the counter. Counters always advance—with one caveat. - -When the application resets, the counter goes back to zero. These “epochs” in counters are managed by having the counter “creation time” sent as metadata. Prometheus will know not to compare counters from two different epochs. - -#### Using gauges - -Gauges are much simpler: They measure instantaneous values. Use them for measurements that go up and down: for example, total allocated memory, size of cache, and so on. - -#### Using enums - -Enums are useful for states of the application as a whole, although they can be collected on a more granular basis. For example, if you are using a feature-gating framework, a feature that can have several states (e.g., in use, disabled, shadowing) might be useful to have as an enum. - -### Analytics - -Analytics are different from metrics in that they correspond to coherent events. For example, in network servers, an event is one outside request and its resulting work. In particular, the analytics event cannot be sent until the event is finished. - -An event contains specific measurements: latency, number and possibly details of resulting requests to other services, and so on. - -#### Structured Logging - -One current possible option is structured logging. The send event is just sending a log with a properly formatted payload. This data can be queried from the log aggregator, parsed, and ingested into an appropriate system for allowing visibility into it. - -### Error tracking - -You can use logs to track errors, and you can use analytics to track errors. But a dedicated error system is worthwhile. A system optimized for errors can afford to send more data since errors are rare. It can send the right data, and it can do smart things with the data. Error-tracking systems in Python usually hook into a generic exception handler, collect data, and send it to a dedicated error aggregator. - -#### Using Sentry - -In many cases, running Sentry yourself is the right thing to do. When an error has occurred, something has gone wrong. Reliably removing sensitive data is not possible, since these are precisely the cases where the sensitive data might have ended up somewhere it shouldn't. - -It is often not a big load: exceptions are supposed to be rare. Finally, this is not a system that needs high-quality, high-reliability backups. Yesterday's errors are already fixed, hopefully, and if they are not—you'll know! - -### Fast, safe, repeatable: choose all three - -Observable systems are faster to develop since they give you feedback. They are safer to run since, when they go wrong, they let you know sooner. Finally, observability lends itself to building repeatable processes around it since there is a feedback loop. Observability gives you knowledge about your application. And knowing is half the battle. - -#### Upfront investment pays off - -Building all the observability layers is hard work. It also often feels like wasted work, or at least like “nice to have but not urgent.” - -Can you build it later? Maybe, but you shouldn't. Building it right lets you speed up the rest of development so much at all stages: testing, monitoring, and even onboarding new people. In an industry with as much churn as tech, just reducing the overhead of onboarding a new person is worth it. - -The fact is, observability is important, so write it in early in the process and maintain it throughout. In turn, it will help you maintain your software. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/11/observability-python - -作者:[Moshe Zadka][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/moshez -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/search_find_code_python_programming.png?itok=ynSL8XRV (Searching for code) -[2]: https://opensource.com/article/21/7/run-prometheus-home-container diff --git a/translated/tech/20211122 7 key components of observability in Python.md b/translated/tech/20211122 7 key components of observability in Python.md new file mode 100644 index 0000000000..4e69902fc4 --- /dev/null +++ b/translated/tech/20211122 7 key components of observability in Python.md @@ -0,0 +1,182 @@ +[#]: subject: "7 key components of observability in Python" +[#]: via: "https://opensource.com/article/21/11/observability-python" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lujun9972" +[#]: translator: "MCGA" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +Python 中可观测性的 7 个关键组件 +====== + +学习为什么 Python 中的可观测行很重要,以及如何在你的软件开发生命周期中实现它。 +![Searching for code][1] + +你写的应用会执行很多代码,以一种看不到的方式。所以你是怎么知道: + + * 代码是否在运行? + * 是不是在正常工作? + * 谁在使用它,如何使用? + + +可观测性是一种可以通过查看数据来告诉你,你的代码在做什么的一种能力。在这篇文章中,主要关注的问题是分布式系统中的服务器代码。并不是说客户端应用代码的可观测性不重要,只是说客户端往往不是用 Python 写的。也不是说可观测性对数据科学不重要,而是在数据科学领域的可观测性工具(大多是 Juptyter 和快速反馈)是不同的。 + +### 为什么可观测性很重要 + +所以,为什么可观测性重要呢?在软件开发生命周期(SDLC)中,可观测性是一个关键的部分。 + +交付一个应用不是结束;这只是一个新周期的开始。在这个周期中,第一个阶段是确认这个新版本运行正常。否则的话,很有可能就需要回滚。哪个功能正常运行?哪些功能有小 bug?你需要知道发生了什么才能知道接下来要怎么做。这些东西有时候会以奇怪的方式不能正常运行。不管是天灾,还是底层基础设施的回滚,或者应用进入了一种奇怪的状态,这些东西可能在任何时间以任何理由停止工作。 + +在标准 SDLC 之外,你需要知道一切都在运行中。如果没有,有办法知道是怎么不能运行的,这是非常关键的。 + +### 反馈 + +可观测性的第一部分是获得反馈。当代码给出它正在做什么的信息时,反馈可以在很多方面提供帮助。在模拟环境或测试环境中,反馈有助于发现问题,更重要的是,以更快的方式对它们进行分类。这可以改善在验证步骤中的工具和交流。 + +当进行金丝雀部署canary deployment或更改特性标志时,你需要知道是否要继续,还是等更长时间,或者回滚,反馈就显得很重要了。 + +### 监控 + +有时候你怀疑有些东西不太对。也许是一个依赖服务有问题,或者是社交网站有大量关于你的网站的问题。也许在相关的系统中有复杂的操作,然后你想确保你的系统能完美处理。在这些情况下,你就想把可观测性系统的数据整合到控制面板上。 + +当写一个应用的时候,这些控制面板需要是设计标准的一部分。只有当你的应用能把数据共享给这些控制面板,它们才会把这些数据显示出来。 + +### 警报 + +每次看控制面板超过 15 分钟就像看油漆变干一样。任何人都不应该遭受这种折磨。对于这种任务,我们要有报警系统。报警系统将可观测性数据与预期数据进行对比,当它们不匹配的时候就发出通知。完全深入研究时间管理超出了本文的范围。然而,从两方面来说,可观测应用是报警友好的alert-friendly: + + * 它们有足够多,足够好的数据,发出的警报才是高质量的。 + * 警报有足够的数据,或者接收者可以很容易的得到数据,这样有助于找到源头 + + +高质量警报有三个特点: + + * 较少的错报:如果有警报,那一定是有问题了。 + * 较少的漏报:如果有问题,那一定有警报触发。 + * 及时性:警报会迅速发出以减少恢复时间。 + +这三个特点是互相有冲突的。你可以通过提高监测的标准来减少错误警报,代价是增加了漏报。你也可以通过降低监测的门槛来减少漏报,代价是增加错报。通过收集更多数据,你也可以同时减少错报和漏报,而代价是降低了及时性。 + +同时改善这三个参数就更难了。这就要求高质量的可观测性数据。更高质量的数据可以同时改善这三个特点。 + +### 日志 + +有的人喜欢嘲笑用打印来调试的方法。但是,在一个大多数软件都不在你本机运行的世界里,你所能做的只有打印调试。日志记录就是打印调试的一种形式。对于它的所有错误,Python 日志库允许标准话的日志记录。更重要的是,它意味着你可以通过这些库去记录日志。 + +应用程序要对配置日志如何记录负责。讽刺地是,在应用程序对配置日志负责了多年以后,现在越来越不是这样了。在现代容器编排orchestration环境中,现代应用程序记录标准错误和标准输出,并且信任编排orchestration系统可以合理的处理日志。 + +然而,你不应该依赖库,或者说,其他任何地方。如果你想让操作的人知道发生了什么,_使用日志,而不是打印_ + +#### 日志级别 + +日志记录的一个最重要功能就是 _日志级别_。不同的日志级别可以让你过滤并找到合适的日志。但是这只能在日志级别保持一致的情况下完成。最后,你应该在整个应用程序中保持日志级别的一致性。 + +在应用层面通过合理的配置,只需要这一点帮助,那些选择了不兼容语义的库就可以被修复。通过使用 Python 中最重要的通用风格:使用 `getLogger(__name-_)`。 + +大多数合理的库都会遵循这个约定。筛选器Filters可以在发出日志对象之前就地修改它们。你可以将筛选器附加到处理程序,这个处理程序会根据名称修改消息,使其具有合适的级别。 + +``` + +import logging + +LOGGER=logging.getLogger(__name__) + +``` + + +考虑到这一点,你现在必须明确日志级别的语义。这其中有很多选项,但是下面这些是我的最爱: + + * Error:立即发送一个警告。应用程序处于一个需要操作人员引起注意的状态。(这意味着有致命问题和错误) + * Warning:我喜欢把这些称作“工作时间警报”。这种情况下,应该有人在一个工作日内关注一下。 + * Info:这是在正常工作流程中发出的。如果怀疑有问题的时候,这个是用来帮助人们了解应用程序在做什么的。 + * Debug:默认情况下,这个不应该在生产环境中出现。在模拟环境或开发环境下,可以发出来,也可以不发。如果需要更多的信息,在生产环境也可以特地被打开。 + +任何情况下都不要在日志中包含个人信心(PII:Personal Identifiable Information)或密码。无论日志级别是什么,都要这么做,比如级别更改,激活调试级别等等。日志聚合系统很少是 PII 安全PII-safe的,特别是随着 PII 管理的进步(HIPAA,GDPR,以及其他的)。 + +#### 日志聚合 + +现代系统几乎都是分布式的。冗余redundancy扩展性scaling,有时是管辖权jurisdictional需要更多的水平分布。微服务意味着垂直分布。登录到每个机器去查看日志已经是不现实的了。出于合理的控制原因,允许开发人员登录到机器中会给予他们他多特权,这不是个好主意。 + +所有的日志都应该被发到一个聚合模块。有一些商业的方案,你可以配置一个 ELK 栈,或者也可以使用其他的数据库(SQL 或则 no-SQL)。作为一个技术含量很低的解决方案,你可以将日志写入文件,然后将他们发送到对象存储中。有很多解决方案,但是最重要的事情是选择一个并且将所有东西聚合到一起。 + +#### 日志查询 + +在将所有东西记录到一个地方后,会有很多日志。特定的聚合模块可以定义如何写查询,但是它是通过从存储中搜索还是写 NoSQL 的查询,日志查询以匹配源和详细信息是很有用的。 + +### 度量抓取Metric Scraping + +度量抓取是一个服务器拉取server pull模型。度量服务器定时和应用程序连接,并且拉取度量。 + +最后,这意味着服务器需要连接并且找到所有相关的应用服务器。 + +#### 以 Prometheus 为标准 + +如果你的度量聚合模块是 Prometheus,[Prometheus][2] 格式做为一个端点endpoint是很有用的。但是,即使聚合模块不是 Prometheus,也是很有用的。几乎所有的系统都包含与 Prometheus 端点兼容的垫片shim + +使用客户端 Python 库给你的应用程序加一个 Prometheus 垫片,这将使他能够被大多数的度量聚合器所抓取。当 Prometheus 发现一个服务器,它就期望找到一个度量端点。这经常是应用程序路由的一部分,通常在 `/metrics` 路径下。不管 web 应用的平台是什么,如果你能在一个端点下运行一个定制类型的定制字节流,Prometheus 就可以将它抓取。 + +对于大多数流行的框架,总有一个中间件插件或者类似的东西收集度量,像延迟和错误率。通常这还不够。你需要收集定制的应用数据:比如,每个端点的缓存命中/缺失hit/miss率,数据库延迟,等等。 + +#### 使用计数器 + +Prometheus 支持多个数据类型。一个重要且巧妙的类型就是计数器。计数器总是会现有一个警告。 + +当应用重置,计数器会归零。计数器中的这些“时期epochs”通过将计数器“创建时间”作为元数据发送来管理。Prometheus 知道不去比较两个时期epochs的计数器 + +#### 使用仪表 + +仪表会简单很多:他们测量瞬时值。用它们来测量会上下起伏的数据:比如,所有分配的内存,缓存大小,等等。 + +#### 使用枚举 + +枚举对于整个应用程序的状态是很有用的,尽管它们可以以更精细的方式被收集。比如,你正使用一个功能限制feature-gating框架,一个有多个状态(比如,使用中,关闭,屏蔽shadowing)的功能,也许使用枚举会更有用。 + +### 分析 + +分析不同于度量,因为它们要对应连续的事件。比如,在网络服务器中,一个事件是在请求和所有工作都完成之后的。特别是事件分析在事件完成之前是不能被发送的。 + +一个事件包含特定的度量:延迟,对其他服务请求的数量和可能的细节,等等。 + +#### 结构化日志 + +现在一个可能的选择是将日志结构化。发送事件只发送带有正确格式负载payload的日志。这个数据可以从日志聚合器请求,然后解析,并且放入一个合适的系统,这样可以对它进行可视化。 + +### 错误追踪 + +你可以使用日志去追踪错误,然后你可以用分析方法去追踪错误。但是一个专门的错误系统还是值得的。一个为错误优化的系统可以发送更多的错误,因为错误毕竟还是不多。这样它就可以发送正确的数据,并且用这些数据,它能做更多智能的事情。Python 中的错误追踪系统通常和一般的异常处理关联,然后收集数据,并且把它发到一个专门的错误聚合器。 + +#### 使用 Sentry + +很多情况下,自己运行 Sentry 是一个正确的事情。当一个错误发生时,有些东西就出问题了。可靠地删除敏感数据是不可能的,因为一定有会出现敏感数据被发送到不应该的地方。 + +通常,这种工作量并不会很大:异常并不常出现。最后,这个系统并不需要很高的质量,也不需要高可靠性的备份。但愿昨天的错误已经修复了,如果没有,你还会发现的! + +### 快速,安全,可重复:三者都要 + +可观测的系统可以开发的更快,因为它们可以给你提供反馈。它们运行起来也更安全,因为当出问题的时候,它们也会更早的让你知道。最后,因为有反馈循环,可观测性也有助于围绕它构建可重复的过程。可观测性可以让你了解你的应用程序。而更了解它们,就胜利了一半。 + +#### 前期的投入总会有回报 + +构建所有的可观测层是一件困难的事情。总会让人感觉是在浪费工作,或者更像是“可以有,但是不急”。 + +之后再做这个可以吗?也许吧,但是不应该。正确的构建可观测性可以加速后面所有阶段的开发:测试,监控,甚至是培训新人。在一个和科技行业一样动荡的行业,减少培训新人的工作量绝对是值得的。 + +事实上,可观测性很重要,所以尽早把它写出来,然后就可以在整个过程中进行维护。反过来,它也会帮你维护你的软件。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/11/observability-python + +作者:[Moshe Zadka][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[Yufei-Yan](https://github.com/Yufei-Yan) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/moshez +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/search_find_code_python_programming.png?itok=ynSL8XRV (Searching for code) +[2]: https://opensource.com/article/21/7/run-prometheus-home-container From 91f21ac17b1b2093f61f3055a49559bd95a2bcfa Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Sat, 30 Jul 2022 19:09:41 +0800 Subject: [PATCH 0574/3123] Translated --- ...Using Binary Space Partitioning in Doom.md | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index 38496565a4..fe25d972d5 100644 --- a/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -7,116 +7,116 @@ [#]: publisher: " " [#]: url: " " -How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom? +在《毁灭战士》中应用二叉空间分割技术是何等天才之举? ====== -In 1993, id Software released the first-person shooter _Doom_, which quickly became a phenomenon. The game is now considered one of the most influential games of all time. +1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 _《毁灭战士》_,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 -A decade after _Doom_’s release, in 2003, journalist David Kushner published a book about id Software called _Masters of Doom_, which has since become the canonical account of _Doom_’s creation. I read _Masters of Doom_ a few years ago and don’t remember much of it now, but there was one story in the book about lead programmer John Carmack that has stuck with me. This is a loose gloss of the story (see below for the full details), but essentially, early in the development of _Doom_, Carmack realized that the 3D renderer he had written for the game slowed to a crawl when trying to render certain levels. This was unacceptable, because _Doom_ was supposed to be action-packed and frenetic. So Carmack, realizing the problem with his renderer was fundamental enough that he would need to find a better rendering algorithm, started reading research papers. He eventually implemented a technique called “binary space partitioning,” never before used in a video game, that dramatically sped up the _Doom_ engine. +_《毁灭战士》_ 发行之后的第十年(2003 年),记者大卫·库什纳出版了一本关于 id Software 的书,书名为 _《Doom 启示录》_,后被奉为记录 _Doom_ 创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员约翰·卡马克的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在 _《毁灭战士》_ 开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时,出现速度缓慢的问题。对于 _《毁灭战士》_ 这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关文献。最后,他采用“二叉空间分割”技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 -That story about Carmack applying cutting-edge academic research to video games has always impressed me. It is my explanation for why Carmack has become such a legendary figure. He deserves to be known as the archetypal genius video game programmer for all sorts of reasons, but this episode with the academic papers and the binary space partitioning is the justification I think of first. +一直以来,我对这个故事的印象十分深刻。卡马克将学术前沿研究运用于电子游戏之中,我觉得这正是他之所以成为传奇人物的原因。无论从哪个角度来看,卡马克都应该是电子游戏行业中人尽皆知的典型天才程序员,只不过上面这个故事是我最先能够想到的理由。 -Obviously, the story is impressive because “binary space partitioning” sounds like it would be a difficult thing to just read about and implement yourself. I’ve long assumed that what Carmack did was a clever intellectual leap, but because I’ve never understood what binary space partitioning is or how novel a technique it was when Carmack decided to use it, I’ve never known for sure. On a spectrum from Homer Simpson to Albert Einstein, how much of a genius-level move was it really for Carmack to add binary space partitioning to _Doom_? +显而易见,“二叉空间分割”这个术语听起来就是难度相当高的课题,能够自行阅读文献并将其付诸实施实属不易,所以这个故事给我留下了深刻的印象。我一直认为卡马克的做法十分具有创见性,不过由于我既不懂二叉空间分割到底是怎样的一项技术,也不晓得这项技术在当时究竟有多么革新,所以我也并不确定自己的观点是否正确。如果按照从荷马·辛普森到爱因斯坦的顺序为天才列出一套级别体系,那么卡马克将二叉空间分割技术运用于 _《毁灭战士》_ 的做法究竟属于什么级别的天才之举呢? -I’ve also wondered where binary space partitioning first came from and how the idea found its way to Carmack. So this post is about John Carmack and _Doom_, but it is also about the history of a data structure: the binary space partitioning tree (or BSP tree). It turns out that the BSP tree, rather interestingly, and like so many things in computer science, has its origins in research conducted for the military. +同时,我也在想,二叉空间分割这个概念最初是从哪儿来的,又是怎样吸引到卡马克的?因此,本篇文章不仅仅会讲述约翰·卡马克和 _《毁灭战士》_ 的故事,也会探讨二叉空间分割树(BSP 树)数据结构的发展历史。有意思的是,BSP 树和计算机科学领域其他许多技术一样,最初都起源于军事研究领域。 -That’s right: E1M1, the first level of _Doom_, was brought to you by the US Air Force. +没错,_《毁灭战士》_ 的第一关卡 E1M1 就受到了美国空军的启发。 -### The VSD Problem +### VSD 难题 -The BSP tree is a solution to one of the thorniest problems in computer graphics. In order to render a three-dimensional scene, a renderer has to figure out, given a particular viewpoint, what can be seen and what cannot be seen. This is not especially challenging if you have lots of time, but a respectable real-time game engine needs to figure out what can be seen and what cannot be seen at least 30 times a second. +BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举个例子,为了渲染出三维场景,渲染器必须能够区分可见物体和不可见物体。如果渲染时间比较充足,这一要求也算不上大问题;但是理想来说,实时游戏引擎在 1 秒内至少需要完成 30 次区分任务。 -This problem is sometimes called the problem of visible surface determination. Michael Abrash, a programmer who worked with Carmack on _Quake_ (id Software’s follow-up to _Doom_), wrote about the VSD problem in his famous _Graphics Programming Black Book_: +这一问题有时被称为可见表面检测问题。当时,卡马克与迈克尔·亚伯拉什携手合作,一起开发 _《雷神之锤》_(id Software 继 _《毁灭战士》_ 之后开发的游戏)。关于可见表面检测问题,亚伯拉什在自己的著作 _《图形程序开发人员指南》_ 中写道: -> I want to talk about what is, in my opinion, the toughest 3-D problem of all: visible surface determination (drawing the proper surface at each pixel), and its close relative, culling (discarding non-visible polygons as quickly as possible, a way of accelerating visible surface determination). In the interests of brevity, I’ll use the abbreviation VSD to mean both visible surface determination and culling from now on. +> 我想探讨一下在我看来 3D 中最棘手的一个问题:可见表面检测问题(在每个像素点上绘制合适的表面)以及与之密切相关的隐面消除问题(迅速去除不可见的多边形,用于加快可见表面检测速度)。简略起见,我将在下文采用缩写 VSD 来表示可见表面检测和隐面消除。 -> Why do I think VSD is the toughest 3-D challenge? Although rasterization issues such as texture mapping are fascinating and important, they are tasks of relatively finite scope, and are being moved into hardware as 3-D accelerators appear; also, they only scale with increases in screen resolution, which are relatively modest. +> 为什么我会认为 VSD 是 3D 中最棘手的问题呢?尽管纹理映射等光栅化问题更让人感兴趣而且也更重要,但是相对而言,这些问题比较容易解决。随着 3D 加速器的出现,它们逐渐被归为硬件范围内的问题。同时,它们只受到屏幕分辨率的影响,而这种影响相对较为稳定。 -> In contrast, VSD is an open-ended problem, and there are dozens of approaches currently in use. Even more significantly, the performance of VSD, done in an unsophisticated fashion, scales directly with scene complexity, which tends to increase as a square or cube function, so this very rapidly becomes the limiting factor in rendering realistic worlds.[1][1] +> 相反,VSD 却像是一个无底洞,目前应对方案也有很多。但实际上,在采用简单的方法处理 VSD 时,其性能会直接受到场景复杂程度的影响,而场景的复杂程度通常会以平方级或立方级的形式增大。所以在渲染过程中,VSD 很快就会成为制约因素。[1][1] -Abrash was writing about the difficulty of the VSD problem in the late ’90s, years after _Doom_ had proved that regular people wanted to be able to play graphically intensive games on their home computers. In the early ’90s, when id Software first began publishing games, the games had to be programmed to run efficiently on computers not designed to run them, computers meant for word processing, spreadsheet applications, and little else. To make this work, especially for the few 3D games that id Software published before _Doom_, id Software had to be creative. In these games, the design of all the levels was constrained in such a way that the VSD problem was easier to solve. +_《毁灭战士》_ 这款游戏告诉我们,普通人盼望着能用自家电脑玩很吃图形配置的游戏。之后数年,即上个世纪九十年代,亚伯拉什讨论了复杂的 VSD 问题。同时代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在 _《毁灭战士》_ 之前发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都施加了一定的限制,以便更容易解决 VSD 问题。 -For example, in _Wolfenstein 3D_, the game id Software released just prior to _Doom_, every level is made from walls that are axis-aligned. In other words, in the Wolfenstein universe, you can have north-south walls or west-east walls, but nothing else. Walls can also only be placed at fixed intervals on a grid—all hallways are either one grid square wide, or two grid squares wide, etc., but never 2.5 grid squares wide. Though this meant that the id Software team could only design levels that all looked somewhat the same, it made Carmack’s job of writing a renderer for _Wolfenstein_ much simpler. +例如,在 _《毁灭战士》_ 之前,id Software 发行了 _《德军总部 3D》_,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 _《德军总部 3D》_ 编写渲染器的工作简单了不少。 -The _Wolfenstein_ renderer solved the VSD problem by “marching” rays into the virtual world from the screen. Usually a renderer that uses rays is a “raycasting” renderer—these renderers are often slow, because solving the VSD problem in a raycaster involves finding the first intersection between a ray and something in your world, which in the general case requires lots of number crunching. But in _Wolfenstein_, because all the walls are aligned with the grid, the only location a ray can possibly intersect a wall is at the grid lines. So all the renderer needs to do is check each of those intersection points. If the renderer starts by checking the intersection point nearest to the player’s viewpoint, then checks the next nearest, and so on, and stops when it encounters the first wall, the VSD problem has been solved in an almost trivial way. A ray is just marched forward from each pixel until it hits something, which works because the marching is so cheap in terms of CPU cycles. And actually, since all walls are the same height, it is only necessary to march a single ray for every _column_ of pixels. +通过将屏幕上的光线“齐射”入虚拟游戏世界,_《德军总部》_ 的渲染器解决了 VSD 问题。通常来说,使用光线的渲染器叫做“光线投射”渲染器。这种渲染器的速度一般较慢,因为解决内部的 VSD 问题涉及到在光线和游戏中的物体之间找到第一个交点,这通常需要进行大量的计算。但在 _《德军总部》_,由于所有的墙壁都与网格平齐,所以光线与墙壁相交的位置只能在网格线上。如此一来,渲染器只需逐个检查这些交点即可。如果渲染器先从离玩家视角最近的交点开始检查,接着检查下一个最近的交点,以此类推,最后遇到第一面墙壁时停止检查。这样,VSD 问题便轻而易举地得到了解决。光线从每一个像素点向前投射,与画面物体接触时停止运动,这一方法是可行的。因为结合 CPU 周期来看,投射的成本很低。事实上,由于每面墙壁高度相同,因此针对同列的像素点,投射的光线只需一条。 -This rendering shortcut made _Wolfenstein_ fast enough to run on underpowered home PCs in the era before dedicated graphics cards. But this approach would not work for _Doom_, since the id team had decided that their new game would feature novel things like diagonal walls, stairs, and ceilings of different heights. Ray marching was no longer viable, so Carmack wrote a different kind of renderer. Whereas the _Wolfenstein_ renderer, with its ray for every column of pixels, is an “image-first” renderer, the _Doom_ renderer is an “object-first” renderer. This means that rather than iterating through the pixels on screen and figuring out what color they should be, the _Doom_ renderer iterates through the objects in a scene and projects each onto the screen in turn. +尽管当时还没有专业的图形显卡,_《德军总部》_ 凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于 _《毁灭战士》_。id Software 为这款新游戏增添了许多新元素——倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。_《德军总部》_ 的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 _《毁灭战士》_ 关注的则是物体。换句话说,_《毁灭战士》_ 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 -In an object-first renderer, one easy way to solve the VSD problem is to use a z-buffer. Each time you project an object onto the screen, for each pixel you want to draw to, you do a check. If the part of the object you want to draw is closer to the player than what was already drawn to the pixel, then you can overwrite what is there. Otherwise you have to leave the pixel as is. This approach is simple, but a z-buffer requires a lot of memory, and the renderer may still expend a lot of CPU cycles projecting level geometry that is never going to be seen by the player. +对于强调物体的渲染器来说,可以使用 Z 缓冲器来解决 VSD 问题,比较简单。每次将物体投射到屏幕上时,需要对每个用于绘制的像素点进行检查。如果你想绘制出的物体的部分和已经绘制在目标像素点上的物体相比更加接近玩家,可以将其覆盖。否则,必须保持像素不变。尽管办法很简单,但是 Z 缓冲器对内存的要求较高,投射关卡几何图形时渲染器仍会消耗大量的 CPU 资源,虽然玩家无法看到这些几何图形。 -In the early 1990s, there was an additional drawback to the z-buffer approach: On IBM-compatible PCs, which used a video adapter system called VGA, writing to the output frame buffer was an expensive operation. So time spent drawing pixels that would only get overwritten later tanked the performance of your renderer. +在 20 世纪 90 年代,使用 Z 缓冲器的方法还存在着其他缺陷:与 IBM 公司机器兼容的个人电脑搭载了显示适配器系统 VGA,在这类电脑上,将图像写入帧缓冲器的成本非常之高。因此,消耗在绘制像素点上的大量时间可能会让渲染器崩溃,而且像素点经过绘制后,只能在后期才能覆盖。 -Since writing to the frame buffer was so expensive, the ideal renderer was one that started by drawing the objects closest to the player, then the objects just beyond those objects, and so on, until every pixel on screen had been written to. At that point the renderer would know to stop, saving all the time it might have spent considering far-away objects that the player cannot see. But ordering the objects in a scene this way, from closest to farthest, is tantamount to solving the VSD problem. Once again, the question is: What can be seen by the player? +考虑到将图像写入帧缓冲器的成本非常之高,理想的渲染器需要首先绘制离玩家最近的物体,接着是比较近的物体,以此类推,直到屏幕上每个像素点都写入了信息。这时,渲染器会停止运行,大幅缩短远处不可见物体的渲染时间。这种由近及远对物体进行排序的方法也可以解决 VSD 问题。那么问题又来了:什么才是玩家可以看到的? -Initially, Carmack tried to solve this problem by relying on the layout of _Doom_’s levels. His renderer started by drawing the walls of the room currently occupied by the player, then flooded out into neighboring rooms to draw the walls in those rooms that could be seen from the current room. Provided that every room was convex, this solved the VSD issue. Rooms that were not convex could be split into convex “sectors.” You can see how this rendering technique might have looked if run at extra-slow speed [in this video][2], where YouTuber Bisqwit demonstrates a renderer of his own that works according to the same general algorithm. This algorithm was successfully used in Duke Nukem 3D, released three years after _Doom_, when CPUs were more powerful. But, in 1993, running on the hardware then available, the _Doom_ renderer that used this algorithm struggled with complicated levels—particularly when sectors were nested inside of each other, which was the only way to create something like a circular pit of stairs. A circular pit of stairs led to lots of repeated recursive descents into a sector that had already been drawn, strangling the game engine’s speed. +最初,卡马克打算依靠 _《毁灭战士》_ 的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果玩家移动速度非常慢,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D》当中,这款游戏在 _《毁灭战士》_ 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的 _《毁灭战士》_ 渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 -Around the time that the id team realized that the _Doom_ game engine might be too slow, id Software was asked to port _Wolfenstein 3D_ to the Super Nintendo. The Super Nintendo was even less powerful than the IBM-compatible PCs of the day, and it turned out that the ray-marching _Wolfenstein_ renderer, simple as it was, didn’t run fast enough on the Super Nintendo hardware. So Carmack began looking for a better algorithm. It was actually for the Super Nintendo port of _Wolfenstein_ that Carmack first researched and implemented binary space partitioning. In _Wolfenstein_, this was relatively straightforward because all the walls were axis-aligned; in _Doom_, it would be more complex. But Carmack realized that BSP trees would solve _Doom_’s speed problems too. +在 id Software 团队意识到 _《毁灭战士》_ 游戏引擎的速度可能过慢时,公司还面临着其他任务:将 _《德军总部 3D》_ 移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比兼容 IBM 公司机器的个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将 _《德军总部》_ 移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于 _《德军总部》_ 的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是 _《毁灭战士》_ 的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决 _《毁灭战士》_ 速度过慢的问题。 -### Binary Space Partitioning +### 二叉空间分割 -Binary space partitioning makes the VSD problem easier to solve by splitting a 3D scene into parts ahead of time. For now, you just need to grasp why splitting a scene is useful: If you draw a line (really a plane in 3D) across your scene, and you know which side of the line the player or camera viewpoint is on, then you also know that nothing on the other side of the line can obstruct something on the viewpoint’s side of the line. If you repeat this process many times, you end up with a 3D scene split into many sections, which wouldn’t be an improvement on the original scene except now you know more about how different parts of the scene can obstruct each other. +二叉空间分割会提前将 3D 场景分割为若干部分,借以解决 VSD 问题。讲到这里,你需要先了解一下为什么分割场景可以奏效:如果你在场景上画条线(对应 3D 空间里的一个平面),你就可以指出玩家或者摄像机视角在这条线的哪一侧,在这条线另一侧的物体无法遮挡玩家所在一侧的物体。如果多次重复这一操作,该 3D 场景最终会被分割为多个区域。最后,你要明白场景中不同的部分是会相互遮挡的,这样才能理解为什么这些区域可以起到优化原来场景的作用。 -The first people to write about dividing a 3D scene like this were researchers trying to establish for the US Air Force whether computer graphics were sufficiently advanced to use in flight simulators. They released their findings in a 1969 report called “Study for Applying Computer-Generated Images to Visual Simulation.” The report concluded that computer graphics could be used to train pilots, but also warned that the implementation would be complicated by the VSD problem: +首次阐述上述 3D 场景分割的是美国空军的研究员,他们曾尝试向美国空军证明计算机图形已经非常先进,可以应用到飞行模拟器领域。1969 年,他们将研究发现发表在一份题为《计算机生成图像在图形仿真中的应用研究》的报告中。该报告的总结部分指出,计算机图形可用于训练飞行员,但其实际应用可能会受制于 VSD 问题: -> One of the most significant problems that must be faced in the real-time computation of images is the priority, or hidden-line, problem. In our everyday visual perception of our surroundings, it is a problem that nature solves with trivial ease; a point of an opaque object obscures all other points that lie along the same line of sight and are more distant. In the computer, the task is formidable. The computations required to resolve priority in the general case grow exponentially with the complexity of the environment, and soon they surpass the computing load associated with finding the perspective images of the objects.[2][3] +> 实时图像处理需要解决的一个关键问题就是优先级问题或者隐藏线问题。在我们平时用眼睛观察外界时,大自然替我们轻易地解决了这一问题:注视不透明物体上一点时,同一视觉方向的物体以及距离较远的物体就会变得模糊。但在计算机中,这项任务却非常困难。图像处理通常需要解决优先级问题,随着环境复杂程度的增加,计算量会呈指数级增长,随即就会超过绘制物体透视图所需得计算负载。[2][3] -One solution these researchers mention, which according to them was earlier used in a project for NASA, is based on creating what I am going to call an “occlusion matrix.” The researchers point out that a plane dividing a scene in two can be used to resolve “any priority conflict” between objects on opposite sides of the plane. In general you might have to add these planes explicitly to your scene, but with certain kinds of geometry you can just rely on the faces of the objects you already have. They give the example in the figure below, where \\(p_1\\), \\(p_2\\), and \\(p_3\\) are the separating planes. If the camera viewpoint is on the forward or “true” side of one of these planes, then \\(p_i\\) evaluates to 1. The matrix shows the relationships between the three objects based on the three dividing planes and the location of the camera viewpoint—if object \\(a_i\\) obscures object \\(a_j\\), then entry \\(a_{ij}\\) in the matrix will be a 1. +他们在报告中提出了一项基于构造“遮挡矩阵”的方案,这一方案早些时候曾被应用于 NASA 的项目当中。研究员指出,平面将场景一分为二,可用来解决平面两侧物体之间存在的“任何优先级问题”】。通常情况下,可能需要将实实在在的平面添加到场景中,但是有了几何图形,只需借助几何物体的表面即可。他们举了一个例子,如下图:\\(p_1\\)、\\(p_2\\) 以及 \\(p_3\\) 是三个不同的平面,如果摄像机视角位于其中一个平面的前方或“正”面,\\(p_i\\) 的值就等于 1。这种矩阵展示出基于三个不同平面和摄像机视角位置的三个物体之间的关系——如果物体 \\(a_i\\) 遮挡了物体 \\(a_j\\),那么 \\(a_{ij}\\) 在此矩阵中的数值等于 1。 ![][4] -The researchers propose that this matrix could be implemented in hardware and re-evaluated every frame. Basically the matrix would act as a big switch or a kind of pre-built z-buffer. When drawing a given object, no video would be output for the parts of the object when a 1 exists in the object’s column and the corresponding row object is also being drawn. +研究员指出,这种矩阵可以应用到硬件中,对每一帧进行重新评估。该矩阵基本上可以用作大型交换器,或者一种预置的 Z 缓冲器。在绘制给定的物体时,如果在物体所在列上得出数值 1,并且所在行已经在绘制中,那么物体被遮挡的部分就不会绘制出来。 -The major drawback with this matrix approach is that to represent a scene with \\(n\\) objects you need a matrix of size \\(n^2\\). So the researchers go on to explore whether it would be feasible to represent the occlusion matrix as a “priority list” instead, which would only be of size \\(n\\) and would establish an order in which objects should be drawn. They immediately note that for certain scenes like the one in the figure above no ordering can be made (since there is an occlusion cycle), so they spend a lot of time laying out the mathematical distinction between “proper” and “improper” scenes. Eventually they conclude that, at least for “proper” scenes—and it should be easy enough for a scene designer to avoid “improper” cases—a priority list could be generated. But they leave the list generation as an exercise for the reader. It seems the primary contribution of this 1969 study was to point out that it should be possible to use partitioning planes to order objects in a scene for rendering, at least _in theory_. +不过,该矩阵方法的主要缺点在于,为了在场景中表示出 \\(n\\) 个物体,需要将矩阵的尺寸调整为 \\(n^2\\)。于是,研究员们继续深入,探究使用遮挡矩阵作为“优先级顺序表”的可行性。遮挡矩阵的尺寸还是 \\(n\\),可确定物体绘制的顺序。他们随即发现,诸如上图此类场景根本无法确定顺序(因为它存在循环阻塞的现象)。因此,他们不遗余力,讲明“合适”与“不合适”场景之间在数学方面的区别。最后,他们得出了一个结论:在“合适的”场景下,优先级顺序表是可以制作出来的;而对场景设计师来说,避免设计出“不合适”的场景也不是一件难事。但是,他们并没有说明如何生成顺序表。可以说,这份研究的首要贡献在于提出了可以采用平面分割的方法,对场景中的物体进行渲染排顺。至少,这在 _理论上_ 是可行的。 -It was not until 1980 that a paper, titled “On Visible Surface Generation by A Priori Tree Structures,” demonstrated a concrete algorithm to accomplish this. The 1980 paper, written by Henry Fuchs, Zvi Kedem, and Bruce Naylor, introduced the BSP tree. The authors say that their novel data structure is “an alternative solution to an approach first utilized a decade ago but due to a few difficulties, not widely exploited”—here referring to the approach taken in the 1969 Air Force study.[3][5] A BSP tree, once constructed, can easily be used to provide a priority ordering for objects in the scene. +直到 1980 年,一份题为《基于优先级树结构的可见表面生成》的论文提出了解决该问题的具体算法。在这份论文中,作者亨利·福克斯、泽维·凯德姆以及布鲁斯·内勒介绍了 BSP 树。他们指出这种新的数据结构“可以替代十年前首次使用但由于一些问题未得到广泛发展的方案”(此处即前文 1969 年美国空军相关研究中的方案)。[3][5] BSP 树一经生成,即可用于确定场景中物体的优先级顺序。 -Fuchs, Kedem, and Naylor give a pretty readable explanation of how a BSP tree works, but let me see if I can provide a less formal but more concise one. +三人在论文中详细明了地解释了 BSP 树的工作原理。在本文,我将尝试使用更加通俗具体的语言,介绍给大家。 -You begin by picking one polygon in your scene and making the plane in which the polygon lies your partitioning plane. That one polygon also ends up as the root node in your tree. The remaining polygons in your scene will be on one side or the other of your root partitioning plane. The polygons on the “forward” side or in the “forward” half-space of your plane end up in the left subtree of your root node, while the polygons on the “back” side or in the “back” half-space of your plane end up in the right subtree. You then repeat this process recursively, picking a polygon from your left and right subtrees to be the new partitioning planes for their respective half-spaces, which generates further half-spaces and further sub-trees. You stop when you run out of polygons. +首先,在场景中选定一个多边形,将该多边形所在的平面作为分割平面。同时,该多边形充当树的根节点。场景中剩下的多边形会分散在分割平面的两侧。位于分割表面“前方”或者与分割平面相交后位于“前”半部分的多边形落在了根节点左侧的左子树上;位于分割表面“后方”或者与分割平面相交后位于“后”半部分的多边形落在了右子树上。接着,递归重复这一过程:在左子树和右子树上各选定一个多边形,作为各自空间新的分割平面,继而二分出来更多的子空间和子树。等到全部的多边形均选定之后,二叉空间分割也就结束了。 -Say you want to render the geometry in your scene from back-to-front. (This is known as the “painter’s algorithm,” since it means that polygons further from the camera will get drawn over by polygons closer to the camera, producing a correct rendering.) To achieve this, all you have to do is an in-order traversal of the BSP tree, where the decision to render the left or right subtree of any node first is determined by whether the camera viewpoint is in either the forward or back half-space relative to the partitioning plane associated with the node. So at each node in the tree, you render all the polygons on the “far” side of the plane first, then the polygon in the partitioning plane, then all the polygons on the “near” side of the plane—”far” and “near” being relative to the camera viewpoint. This solves the VSD problem because, as we learned several paragraphs back, the polygons on the far side of the partitioning plane cannot obstruct anything on the near side. +由后向前将场景中的几何图形进行渲染就是所谓的“画家算法”。因为在绘制时,距离摄像机较远的多边形会被距离摄像机较近的多边形所覆盖,借此正确进行渲染任务。如果想要实现这一算法,必须按中序遍历 BSP 树,左右子树的渲染顺序由摄像机视角与节点所在分割平面的位置关系决定的。因此,针对树上的每个节点,首先渲染距离分割平面较“远”一侧的所有多边形,接着是位于平面上的多边形,最后是距离平面较“近”一侧的所有多边形——“远”与“近”相对于摄像机视角而言。根据前文,距离分割平面较远一侧的多边形无法遮挡近侧的物体,所以这种方法可以解决 VSD 问题。 -The following diagram shows the construction and traversal of a BSP tree representing a simple 2D scene. In 2D, the partitioning planes are instead partitioning lines, but the basic idea is the same in a more complicated 3D scene. +下图表示一个简单的 2D 场景的 BSP 树的构造与遍历过程。在 2D 中,分割平面变成了分割线,但就基本原理而言,与复杂的 3D 场景并无二质。 -![][6] _Step One: The root partitioning line along wall D splits the remaining geometry into two sets._ +![][6] _第一步:根分割线落在 D 墙上,将剩下的几何图形分为两组。_ -![][7] _Step Two: The half-spaces on either side of D are split again. Wall C is the only wall in its half-space so no split is needed. Wall B forms the new partitioning line in its half-space. Wall A must be split into two walls since it crosses the partitioning line._ +![][7] _第二步:继续分割位于 D 墙两侧的空间。C 墙是其中一侧的唯一一堵墙壁,因此无需再分。另一侧,B 墙形成新的分割平面。因为 A 墙与新的分割平面相交,所以必须将其分割为两堵墙。_ -![][8] _A back-to-front ordering of the walls relative to the viewpoint in the top-right corner, useful for implementing the painter’s algorithm. This is just an in-order traversal of the tree._ +![][8] _第三步:参照右上方视角,由后向前对墙壁进行排序,对执行画家算法很有帮助。这就是树的中序遍历过程。_ -The really neat thing about a BSP tree, which Fuchs, Kedem, and Naylor stress several times, is that it only has to be constructed once. This is somewhat surprising, but the same BSP tree can be used to render a scene no matter where the camera viewpoint is. The BSP tree remains valid as long as the polygons in the scene don’t move. This is why the BSP tree is so useful for real-time rendering—all the hard work that goes into constructing the tree can be done beforehand rather than during rendering. +福克斯、凯德姆以及内勒多次强调了 BSP 树的优势:无需重复构建。可能有些难以置信,但实际上无论摄像机视角位于何处,场景的渲染只需一棵 BSP 树。只要场景中的多边形没有移动,BSP 树就不会失效。因此,BSP 树在实时渲染任务中非常实用——构建树时的所有艰巨任务都可以在渲染工作开展之前完成。 -One issue that Fuchs, Kedem, and Naylor say needs further exploration is the question of what makes a “good” BSP tree. The quality of your BSP tree will depend on which polygons you decide to use to establish your partitioning planes. I skipped over this earlier, but if you partition using a plane that intersects other polygons, then in order for the BSP algorithm to work, you have to split the intersected polygons in two, so that one part can go in one half-space and the other part in the other half-space. If this happens a lot, then building a BSP tree will dramatically increase the number of polygons in your scene. +同时,三人也提到了一项需要进一步深入研究的问题:究竟怎样才能构建出一棵“高质量的” BSP 树?BSP 树的质量取决于用作分割平面的多边形的选择。我在前文跳过了这一问题,不过如果用作分割平面的多边形与其他多边形相交,那么为了避免 BSP 算法失效,必须将相交的多边形一分为二,这样两部分就可以分在不同的空间。但是如果这种现象反复出现,BSP 树的构建势必会大幅增加场景中多边形的数量。 -Bruce Naylor, one of the authors of the 1980 paper, would later write about this problem in his 1993 paper, “Constructing Good Partitioning Trees.” According to John Romero, one of Carmack’s fellow id Software co-founders, this paper was one of the papers that Carmack read when he was trying to implement BSP trees in _Doom_.[4][9] +内勒后来在其 1993 年的论文《构建高质量的分割树Constructing Good Partitioning Trees》中提及这一问题。与卡马克一同建立 id Software 的约翰·罗梅洛指出,这篇论文是卡马克在 _《毁灭战士》_ 中引入 BSP 树时读到的论文之一。[4][9] -### BSP Trees in Doom +### 《毁灭战士》中的 BSP 树 -Remember that, in his first draft of the _Doom_ renderer, Carmack had been trying to establish a rendering order for level geometry by “flooding” the renderer out from the player’s current room into neighboring rooms. BSP trees were a better way to establish this ordering because they avoided the issue where the renderer found itself visiting the same room (or sector) multiple times, wasting CPU cycles. +别忘了,卡马克首次为 _《毁灭战士》_ 设计渲染器时,通过让渲染器渲染玩家所在房间之外的临近房间,试图为关卡几何图形建立一套渲染顺序。对此,BSP 树是个不错的选择,因为在玩家进入之前的房间(区域)时,BSP 树能够避免让渲染器重复劳动,从而节省 CPU 资源。 -“Adding BSP trees to _Doom_” meant, in practice, adding a BSP tree generator to the _Doom_ level editor. When a level in _Doom_ was complete, a BSP tree was generated from the level geometry. According to Fabien Sanglard, the generation process could take as long as eight seconds for a single level and 11 minutes for all the levels in the original _Doom_.[5][10] The generation process was lengthy in part because Carmack’s BSP generation algorithm tries to search for a “good” BSP tree using various heuristics. An eight-second delay would have been unforgivable at runtime, but it was not long to wait when done offline, especially considering the performance gains the BSP trees brought to the renderer. The generated BSP tree for a single level would have then ended up as part of the level data loaded into the game when it starts. +实际上,“将 BSP 树引入 _《毁灭战士》_”意味着将 BSP 树生成器引入 _《毁灭战士》_ 的关卡编辑器中。_《毁灭战士》_ 的关卡制作完成之时,BSP 树就会在关卡几何图形的基础上生成。根据程序员法比安·桑格勒德的说法,在原版 _《毁灭战士》_ 中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [5][10]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出“高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是在线下等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 -Carmack put a spin on the BSP tree algorithm outlined in the 1980 paper, because once _Doom_ is started and the BSP tree for the current level is read into memory, the renderer uses the BSP tree to draw objects front-to-back rather than back-to-front. In the 1980 paper, Fuchs, Kedem, and Naylor show how a BSP tree can be used to implement the back-to-front painter’s algorithm, but the painter’s algorithm involves a lot of over-drawing that would have been expensive on an IBM-compatible PC. So the _Doom_ renderer instead starts with the geometry closer to the player, draws that first, then draws the geometry farther away. This reverse ordering is easy to achieve using a BSP tree, since you can just make the opposite traversal decision at each node in the tree. To ensure that the farther-away geometry is not drawn over the closer geometry, the _Doom_ renderer uses a kind of implicit z-buffer that provides much of the benefit of a z-buffer with a much smaller memory footprint. There is one array that keeps track of occlusion in the horizontal dimension, and another two arrays that keep track of occlusion in the vertical dimension from the top and bottom of the screen. The _Doom_ renderer can get away with not using an actual z-buffer because _Doom_ is not technically a fully 3D game. The cheaper data structures work because certain things never appear in _Doom_: The horizontal occlusion array works because there are no sloping walls, and the vertical occlusion arrays work because no walls have, say, two windows, one above the other. +卡马克非常赞赏 1980 年论文中提出的 BSP 树算法,因为在 _《毁灭战士》_ 开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯、凯德姆以及内勒在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于与 IBM 机器兼容的个人电脑来说负担较大。因此,_毁灭战士_ 的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。采用这种相反的顺序,更有利于 BSP 树的应用,因为在树的每个节点都可以进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,_《毁灭战士》_ 的渲染器使用了一种内置的 Z 缓冲器,这种缓冲器不仅具备普通 Z 缓冲器的优势,而且对内存的要求也较低。Z 缓冲器有两组数组,一组记录水平方向的遮挡关系,另一组自屏幕由上及下记录垂直方向的遮挡关系。_《毁灭战士》_ 的渲染器就算不使用真正的 Z 缓冲器也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于 _《毁灭战士》_ 不会发生以下问题:水平方向的遮挡数组能够运行,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够运行,是因为该游戏不存在有着一上一下两扇窗户的墙体。 -The only other tricky issue left is how to incorporate _Doom_’s moving characters into the static level geometry drawn with the aid of the BSP tree. The enemies in _Doom_ cannot be a part of the BSP tree because they move; the BSP tree only works for geometry that never moves. So the _Doom_ renderer draws the static level geometry first, keeping track of the segments of the screen that were drawn to (with yet another memory-efficient data structure). It then draws the enemies in back-to-front order, clipping them against the segments of the screen that occlude them. This process is not as optimal as rendering using the BSP tree, but because there are usually fewer enemies visible than there is level geometry in a level, speed isn’t as much of an issue here. +剩下比较棘手的问题是如何将 _《毁灭战士》_ 中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度问题并没有那么重要。 -Using BSP trees in _Doom_ was a major win. Obviously it is pretty neat that Carmack was able to figure out that BSP trees were the perfect solution to his problem. But was it a _genius_-level move? +将 BSP 树应用到 _《毁灭战士》_ 中可谓一大成功。卡马克能够想到 BSP 树是解决 VSD 问题的最佳方案,无疑非常高明。但是这可以称得上是天才之举吗? -In his excellent book about the _Doom_ game engine, Fabien Sanglard quotes John Romero saying that Bruce Naylor’s paper, “Constructing Good Partitioning Trees,” was mostly about using BSP trees to cull backfaces from 3D models.[6][11] According to Romero, Carmack thought the algorithm could still be useful for _Doom_, so he went ahead and implemented it. This description is quite flattering to Carmack—it implies he saw that BSP trees could be useful for real-time video games when other people were still using the technique to render static scenes. There is a similarly flattering story in _Masters of Doom_: Kushner suggests that Carmack read Naylor’s paper and asked himself, “what if you could use a BSP to create not just one 3D image but an entire virtual world?”[7][12] +桑格勒德在其关于 _《毁灭战士》_ 游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[6][11] 根据罗梅洛所言,卡马克认为这种算法对 _《毁灭战士》_ 依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味——意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在 _《Doom 启示录》_ 也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [7][12]。 -This framing ignores the history of the BSP tree. When those US Air Force researchers first realized that partitioning a scene might help speed up rendering, they were interested in speeding up _real-time_ rendering, because they were, after all, trying to create a flight simulator. The flight simulator example comes up again in the 1980 BSP paper. Fuchs, Kedem, and Naylor talk about how a BSP tree would be useful in a flight simulator that pilots use to practice landing at the same airport over and over again. Since the airport geometry never changes, the BSP tree can be generated just once. Clearly what they have in mind is a real-time simulation. In the introduction to their paper, they even motivate their research by talking about how real-time graphics systems must be able to create an image in at least 1/30th of a second. +这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时想要开发出飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:重复将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此介绍了他们的研究动机。 -So Carmack was not the first person to think of using BSP trees in a real-time graphics simulation. Of course, it’s one thing to anticipate that BSP trees might be used this way and another thing to actually do it. But even in the implementation Carmack may have had more guidance than is commonly assumed. The [Wikipedia page about BSP trees][13], at least as of this writing, suggests that Carmack consulted a 1991 paper by Chen and Gordon as well as a 1990 textbook called _Computer Graphics: Principles and Practice_. Though no citation is provided for this claim, it is probably true. The 1991 Chen and Gordon paper outlines a front-to-back rendering approach using BSP trees that is basically the same approach taken by _Doom_, right down to what I’ve called the “implicit z-buffer” data structure that prevents farther polygons being drawn over nearer polygons. The textbook provides a great overview of BSP trees and some pseudocode both for building a tree and for displaying one. (I’ve been able to skim through the 1990 edition thanks to my wonderful university library.) _Computer Graphics: Principles and Practice_ is a classic text in computer graphics, so Carmack might well have owned it. +因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象中的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年陈和戈登的一篇论文以及 1990 年的一本教材 _《计算机图形学:原理及实践》_。尽管该页面并未提供引用信息,但是基本上不会出错。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与 _《毁灭战士》_ 用到的方法基本一致,还包括我称之为“内置缓冲器”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。_《计算机图形学:原理及实践》_ 详细介绍了 BSP 树以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材的 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 -Still, Carmack found himself faced with a novel problem—”How can we make a first-person shooter run on a computer with a CPU that can’t even do floating-point operations?”—did his research, and proved that BSP trees are a useful data structure for real-time video games. I still think that is an impressive feat, even if the BSP tree had first been invented a decade prior and was pretty well theorized by the time Carmack read about it. Perhaps the accomplishment that we should really celebrate is the _Doom_ game engine as a whole, which is a seriously nifty piece of work. I’ve mentioned it once already, but Fabien Sanglard’s book about the _Doom_ game engine (_Game Engine Black Book: DOOM_) is an excellent overview of all the different clever components of the game engine and how they fit together. We shouldn’t forget that the VSD problem was just one of many problems that Carmack had to solve to make the _Doom_ engine work. That he was able, on top of everything else, to read about and implement a complicated data structure unknown to most programmers speaks volumes about his technical expertise and his drive to perfect his craft. +然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个 _《毁灭战士》_ 的游戏引擎,毕竟它的确非常精致。我在前文也提及过,但是桑格勒德的 _《游戏引擎黑皮书:毁灭战士》_ 很好地讲解了这款游戏引擎的非凡之处以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写 _《毁灭战士》_ 游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][14] on Twitter or subscribe to the [RSS feed][15] to make sure you know when a new post is out._ +_如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][14],也可通过 [RSS feed][15] 订阅,获取最新文章(每四周更新一篇)。_ -_Previously on TwoBitHistory…_ +_TwoBitHistory 文章回顾……_ -> I've wanted to learn more about GNU Readline for a while, so I thought I'd turn that into a new blog post. Includes a few fun facts from an email exchange with Chet Ramey, who maintains Readline (and Bash): -> -> — TwoBitHistory (@TwoBitHistory) [August 22, 2019][16] +> 我曾想花上一段时间深入了解 GNU Readline,所以我以此为主题写了一篇新博客,包括在与 Readline 库(以及 Bash)的维护者切特·雷米通过邮件交流时了解到的一些趣事: +> +> — TwoBitHistory (@TwoBitHistory) [2019 年 8 月 22 日][16] 1. Michael Abrash, “Michael Abrash’s Graphics Programming Black Book,” James Gregory, accessed November 6, 2019, . [↩︎][17] From 25fd9973bc89b4d7428242be0a21dc46f4906f2b Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Sat, 30 Jul 2022 19:10:44 +0800 Subject: [PATCH 0575/3123] Translated --- ...nius-Level Move Was Using Binary Space Partitioning in Doom.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md (100%) diff --git a/sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md similarity index 100% rename from sources/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md rename to translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md From 6b09f19abf1f1c62894dbee622b5b274703bdb0d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 31 Jul 2022 08:22:48 +0800 Subject: [PATCH 0576/3123] ALL @wxy https://linux.cn/article-14880-1.html --- ...s Finally Adding Raspberry Pi 4 Support.md | 70 +++++++++++++++++++ ...s Finally Adding Raspberry Pi 4 Support.md | 69 ------------------ 2 files changed, 70 insertions(+), 69 deletions(-) create mode 100644 published/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md delete mode 100644 sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md diff --git a/published/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md b/published/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md new file mode 100644 index 0000000000..ac4bd0efb9 --- /dev/null +++ b/published/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md @@ -0,0 +1,70 @@ +[#]: subject: "Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support" +[#]: via: "https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14880-1.html" + +Pop!_OS 22.04 Linux 发行版现在支持树莓派 4 了 +====== + +> System76 终于为其最新的 Pop!_OS 22.04 LTS 增加了对树莓派 4 的支持。 + +![Pop os][1] + +Pop!_OS 是 [最好的初学者友好的 Linux 发行版][2] 之一。 + +它基于 Ubuntu,显然,Pop!_OS 22.04 LTS 是基于 [Ubuntu 22.04 LTS][3] 的。 + +然而,与 Ubuntu 不同,Pop!_OS 22.04 在发布时并没有正式支持树莓派。 + +因此,期待 [Pop!_OS 22.04 LTS][4] 版本对树莓派的支持是合理的。 + +如果你还记得,System76 在 **Pop!_OS 21.10** 中首次增加了对树莓派的支持。我们在测试时也 [报道过][5]。 + +而且,据 System76 的首席工程师 Jeremy Soller 透露, System76 最新的 Pop!_OS 版本现在正准备支持树莓派 4。 + +### Pop!_OS 22.04 LTS for Raspberry Pi 4 + +如果你一直在你的树莓派 4 上使用 Pop!_OS 21.10,这对你来说是个好消息。 + +而且,对于任何想在树莓派 4 上尝试 Pop!_OS 的人来说,它终于有了一个 LTS 版本。 + +截至目前,该 ISO 是作为技术预览版提供的。因此,如果你想试试它,你应该有出现错误和可用性问题的心理预期。请注意,目前还 **只限于树莓派 4**,不支持其他树莓派设备,这是个遗憾。 + +我们不知道 System76 是否计划在这个 LTS 版本中支持其他树莓派板,或者他们是否坚持只支持树莓派 4。 + +然而,考虑到树莓派 4 现在相当流行,对于许多寻求替代 Ubuntu 的 [树莓派的替代操作系统][6] 的爱好者们来说,这应该是一个很好的进展。 + +有了 Pop!_OS 22.04 LTS,树莓派 4 的用户应该能够体验到一些最令人兴奋的升级,以及更新的 [Linux 内核 5.15 LTS][7]。 + +要下载该技术预览版,请前往 Pop!_OS 的 [官方网站][8],点击下载按钮,找到该选项。 + +![Pop OS][9] + +你对树莓派 4 上的 Pop!_OS 22.04 有什么期望?请在下面的评论中告诉我们你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/ + +作者:[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/07/pop-os-raspberry-pi-4.jpg +[2]: https://itsfoss.com/best-linux-beginners/ +[3]: https://news.itsfoss.com/ubuntu-22-04-release/ +[4]: https://news.itsfoss.com/pop-os-22-04-release/ +[5]: https://news.itsfoss.com/pop-os-raspberry-pi-coming-soon/ +[6]: https://itsfoss.com/raspberry-pi-os/ +[7]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[8]: https://pop.system76.com/ +[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/pop-os-raspberry-pi-4-download-1024x526.png diff --git a/sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md b/sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md deleted file mode 100644 index 30ff323f94..0000000000 --- a/sources/news/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support" -[#]: via: "https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support -====== -System76 is finally adding Raspberry Pi 4 support for its latest Pop!_OS 22.04 LTS. - -![pop os][1] - -Pop!_OS is one of the [best beginner-friendly Linux distributions][2]. - -It is based on Ubuntu, and obviously, Pop!_OS 22.04 LTS is based on [Ubuntu 22.04 LTS][3]. - -However, unlike Ubuntu, Pop!_OS 22.04 did not officially support Raspberry Pi at the time of release. - -So, it only makes sense to expect for Raspberry Pi support with [Pop!_OS 22.04 LTS][4] release. - -If you recall, System76 added support for Raspberry Pi with **Pop!_OS 21.10** for the first time. We also [reported][5] it while it was being tested. - -And, it looks like System76’s latest Pop!_OS release is now gearing up to support Raspberry Pi 4, as revealed by System76’s Principal Engineer **Jeremy Soller.** - -### Pop!_OS 22.04 LTS for Raspberry Pi 4 - -This is excellent news for you if you have been hanging in with Pop!_OS 21.10 on your Raspberry Pi 4. - -And, for anyone wanting to try Pop!_OS on Raspberry Pi 4, we will finally be getting an LTS edition for it. - -As of now, the ISO is available as a **tech preview**. So, you should expect bugs and usability issues if you would like to take it for a test drive. Note that this is **only limited to Raspberry Pi 4** and does not support other Raspberry Pi devices, which is a bummer. - -We do not know if System76 plans to support other Raspberry Pi boards for this LTS release, or if they stick to Raspberry Pi 4. - -However, considering Raspberry Pi 4 is pretty popular nowadays, it should be a good development for many tinkerers out there seeking an [alternative operating system for Raspberry Pi][6] replacing Ubuntu. - -With Pop!_OS 22.04 LTS, Raspberry Pi 4 users should be able to experience some of the most exciting upgrades along with a newer [Linux Kernel 5.15 LTS][7]. - -To download the tech preview, head to Pop!_OS’s **[official website][8]**and click on the download button to find the option: - -![pop os][9] - -*What do you expect with Pop!_OS 22.04 on Raspberry Pi 4? Kindly let us know your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/ - -作者:[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/07/pop-os-raspberry-pi-4.jpg -[2]: https://itsfoss.com/best-linux-beginners/ -[3]: https://news.itsfoss.com/ubuntu-22-04-release/ -[4]: https://news.itsfoss.com/pop-os-22-04-release/ -[5]: https://news.itsfoss.com/pop-os-raspberry-pi-coming-soon/ -[6]: https://itsfoss.com/raspberry-pi-os/ -[7]: https://news.itsfoss.com/linux-kernel-5-15-release/ -[8]: https://pop.system76.com/ -[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/pop-os-raspberry-pi-4-download-1024x526.png From 5200297c368782dc6bb25714716eaef7dc894710 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 31 Jul 2022 09:05:04 +0800 Subject: [PATCH 0577/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220730=20Top=2010=20Kdenlive=20Features=20for=20Fa?= =?UTF-8?q?ster=20Video=20Editing=20[Beginner-s=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Faster Video Editing [Beginner-s Guide].md | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 sources/tech/20220730 Top 10 Kdenlive Features for Faster Video Editing [Beginner-s Guide].md diff --git a/sources/tech/20220730 Top 10 Kdenlive Features for Faster Video Editing [Beginner-s Guide].md b/sources/tech/20220730 Top 10 Kdenlive Features for Faster Video Editing [Beginner-s Guide].md new file mode 100644 index 0000000000..b01954ca1f --- /dev/null +++ b/sources/tech/20220730 Top 10 Kdenlive Features for Faster Video Editing [Beginner-s Guide].md @@ -0,0 +1,201 @@ +[#]: subject: "Top 10 Kdenlive Features for Faster Video Editing [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/kdenlive-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Kdenlive Features for Faster Video Editing [Beginner’s Guide] +====== +In this article, I will show you how easy to learn Kdenlive features and create awesome videos. + +![][0] + +Kdenlive is a free and open-source video editor for Linux, Windows and macOS. It’s a [KDE application][1] and is considered one of the best feature-rich video editors. Although other excellent contenders exist in the [free video editor][2] space, such as Blender and Da Vinci Resolve, Kdenlive is the “OG” of all. I think it has all the features you get for free instead of buying costly licenses from commercial video editors. + +Basic video editing in Kdenlive is easy if you know how to do it. Each of these Kdenlive features probably takes less than a minute to learn. + +In this article, I will show you some basic video editing operations in Kdenlive in the easiest way. + +### Top 10 Kdenlive Features + +#### 1. Create Title + +Titles are labels or simple texts which show on top of videos. They are similar to subtitles to explain the context of a frame or scene. It’s straightforward to create a custom title. + +From the menu, select `Project > Add Title Clip`. In the title clip window, you should see a canvas. It’s the size of your video. Now, you can write anything for your title. Moreover, you can change font, colour, size and other text attributes from the right pane. You can add a background via the custom shapes at the top if you wish to add a background. + +Once done, you can click the `Create Title` button, which should be added to your video. Now you can drag the title to the timeline for further manipulation. + +If you want to change something on the Title again, you can `Right-Click` on the title and select `Edit Clip`. + +![Create Title Clip in Kdenlive][3] + +#### 2. Animation in titles + +Suppose you want to do some basic animations of titles, such as zoom-in, zoom-out, and vertical/horizontal scrolling. In that case, it’s super easy via the Animation tab in the edit title dialogue. + +The Animation tab has two main buttons – `Edit Start viewport` and `Edit End viewport`. You can use these two buttons to animate your title. + +For example, click the Edit Start Viewport if you want to scroll a text from bottom to top. It will give you GREEN Canvas. Using the mouse, drag the canvas to the top of the screen. + +Similarly, click on the Edit End Viewport and drag the RED canvas to the bottom, as shown below. + +![Basic Title Animation in Kdenlive][4] + +Now, press Update TItle to change it. The animation happens as if the camera is moving from Start (top) to the End viewport (Bottom) – effectively making your title go from bottom to top. + +![Sample Animation with the above example viewport][5] + +Now you can also play around with several options, such as the duration of the animation. In addition, if you want to zoom in or out, you can change the aspect ratio as well similarly. Moreover, you can also rotate the titles via the X, Y and Z axis as well. + +Finally, you can use all the above features to get the desired animations. + +#### 3. One-click transition (fade in and fade out) + +In Kdenlive, you can easily apply the fade-in and fade-out transition in any clip with just one click. Select any clip (video, audio or title) and mouseover. On the left top section, you should see a green circle. Drag that green circle to the right on how long you want the transition. + +Similarly, on the right-top, you should see a red circle. And you can repeat the steps easily. + +See the below image. + +![How easy to add fade-in and fade-out in Kdenlive][6] + +Additionally, you can further change the time or ‘fade to black’ effect in your transitions with settings on the right side. + +![Fade-in and Fade-out example][7] + +See how easy it is to add a transition? + +#### 4. Cut video, audio & anything + +The most used operation in any video editing is cutting the clips. Kdenlive makes it so easy for you. It is required for better storytelling and composition. + +To cut a clip, simple use the `Razor tool` or press `X` after selecting the clip. Then click on the timestamp where you want it to happen. And that’s it. You can now use the pointer tool to move around the clipped part or delete them. + +See it in action below. + +![Slicing the clips is super easy in Kdenlive][8] + +#### 5. Moving a section of blocks + +When working on a complex edit, such as movies or short films, you create hundreds of small clips across tracks in the timeline. Moving them as a single or a group might feel tedious at first. But Kdenlive makes it easy. + +You can quickly move a single clip, or a set of clips together left or right via the `spacer tool` or by pressing `M` from the keyboard. Click on the spacer tool and drag your mouse for easy movement. Keep the mouse pointer in the proper place to move them around. + +In addition, you can also press Left Shift from the keyboard and select a select of clips to move. + +![Moving the clips using the spacer tool][9] + +#### 6. Reusing a title + +Reusing stuff saves time and money for everyone. Especially when you spend some hours creating that stunning title animation, and next time, you can import it to your next project and use it. + +So to save a title animation, open the `Edit Title Clip` window and click on the `Save As` button in the toolbar. Then give a name and save it. The file saves in your home `Videos > Titles` folder. + +Next time, you can open `Project Bin > Add Template Title` and select the one you saved. + +![Saving the title clips][10] + +It’s super easy. Also, you may want to download a massive list of pre-made titles from the [Kde Store][11]! + +#### 7. Changing colour profiles + +Colour grading is an important aspect of movie making or video editing. It often comes during the post-production phase. Kdenlive brings a vast list of colour effects you can combine and use for your target story. + +To apply the colour effects, go to the `Effects` tab in the project Bin. Then drag any `Colour and Image Correction` effect to the target clip. And now, you can apply or tweak various settings for that effect using the right panel. + +All the changes are live in the canvas for easy preview. + +![Colour Grading in Kdenlive][12] + +#### 8. Audio volume controls + +Similar to video or colour profiles, audio is also an essential item to consider in storytelling. The actual camera footage may have noises or volume problems. In Kdenlive, you can easily change the volume decibels. Select the audio track; on the right side, you should see the left and right channels. Also, the master control allows you to change the audio channels’ decibels. + +You can also add various effects to the Audio from the effects tab. + +![Changing Audio track properties][13] + +#### 9. Pan and Zoom + +The Pan and Zoom effect is easy to apply if you know how to use it in Kdenlive. Here’s how you can apply a zoom animation to a video section. + +* Drag the Transform, `Distort and Perspective > Transform` effect to the clip. +* Move the pointer to a position where you want the zoom to effect (say up to 200%). +* Click on `add Keyframe`. On this, the keyframe changes its size to 200%. +* Now, if you play from the beginning, you should see the video zooming in to 200%. + +* Similarly, if you want to Pan, move the pointer to the specific position. Then click add a keyframe. +* On the preview canvas, there is a red circle in the centre. Drag the circle to the position where you want to pan into. And that’s it. + +If you play it now, you can see the video pans into your keyframe timestamp. + +Now there are various options such as X, Y and Z axis change of the clip, keyframe interpolation and compositing, which you can play around with. + +Here’s a quick video demonstrating the above two pan and zoom methods – the easiest way. + +![][14] + +#### 10. Freeze frame + +If you want a still frame from a video, you can also do that using Kdenlive. To do that, go to the video timestamp you want to freeze. `Right-click` on the preview and select `Extract Frame to Project`. It creates a jpg file of the frame of the video and adds it to the project bin. + +Once done, you can cut the clip using the Razor tool, drag the image down and append the rest of the clips. So, effectively you now have a freeze frame of a single moment in your video. + +![][15] + +### Bonus Tip: Create vertical videos for Instagram Reels and others + +The entire world’s concentration time narrowed down to 30 seconds of vertical videos. And that’s why Instagram, Tiktok and other social feeds or reels are becoming popular. + +Using Kdenlive, you can easily create these vertical videos. + +Create a new project, and select the Settings tab in the project settings window. Various project profiles are available for your project or target resolutions inside the settings. Select Custom > Vertical HD 60fps. You can also change the pre-sets and create a new profile. And then, you can create titles and animations like any other videos. + +![Project Settings in Kdenlive][16] + +### Wrapping Up + +If you went through all the Kdenlive features above, then I guess you are ready to create incredible videos for YouTube or streaming platforms. They are super easy to use and help you to save time for faster video creation. + +Remember that the above list of features is just scratching the surface since it’s for beginners only. There are hundreds of features of Kdenlive if you want to learn. + +Once you know the basics, you can learn & experience more to create stunning videos and movies. + +That’s why I said Kdenlive is an underrated tool and “OG” of all video editors. Finally, I hope this article helps you learn KDenlive quickly. + +Also, do you want similar articles or deep-dive in each feature for other open-source apps? Let me know the names in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kdenlive-features/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/07/kdenlive-head.jpg +[1]: https://www.debugpoint.com/tag/kde-apps +[2]: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/07/Create-Title-Clip-in-Kdenlive.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/07/Basic-Title-Animation-in-Kdenlive.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/07/Sample-Animation-with-above-example-viewport.gif +[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/How-easy-to-add-fade-in-and-fade-out-in-Kdenlive.gif +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Fade-in-and-Fade-out-example.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/07/Slicing-the-clips-are-super-easy-in-Kdenlive.gif +[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/Moving-the-clips-using-spacer-tool.gif +[10]: https://www.debugpoint.com/wp-content/uploads/2022/07/Saving-the-title-clips.png +[11]: https://store.kde.org/browse?cat=335 +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Colour-Grading-in-Kdenlive.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Changing-Audio-track-properties.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2022/07/How-to-Pan-and-Zoom-in-Kdenlive-easy-way.mp4 +[15]: https://www.debugpoint.com/wp-content/uploads/2022/07/Freeze-frame-in-Kdenlive.mp4 +[16]: https://www.debugpoint.com/wp-content/uploads/2022/07/Project-Settings-in-Kdenlive.jpg From c432718d5b9036b6f877673ca1b0f81cef400e56 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 31 Jul 2022 09:06:15 +0800 Subject: [PATCH 0578/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220730=20SpiralLinux-=20The=20New=20Distro=20Makin?= =?UTF-8?q?g=20Debian=20Easier=20for=20Beginners.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...stro Making Debian Easier for Beginners.md | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 sources/tech/20220730 SpiralLinux- The New Distro Making Debian Easier for Beginners.md diff --git a/sources/tech/20220730 SpiralLinux- The New Distro Making Debian Easier for Beginners.md b/sources/tech/20220730 SpiralLinux- The New Distro Making Debian Easier for Beginners.md new file mode 100644 index 0000000000..e3d21f6092 --- /dev/null +++ b/sources/tech/20220730 SpiralLinux- The New Distro Making Debian Easier for Beginners.md @@ -0,0 +1,199 @@ +[#]: subject: "SpiralLinux: The New Distro Making Debian Easier for Beginners" +[#]: via: "https://itsfoss.com/spirallinux-review/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +SpiralLinux: The New Distro Making Debian Easier for Beginners +====== +SpiralLinux is a new entrant in the world of desktop-focused Linux distributions. + +It is based on Debian Linux and created by the unnamed developer of [GeckoLinux][1]. + +Gecko what? [GeckoLinux][2] is a derivative of openSUSE and focuses on providing out-of-the-box usability to desktop users. + +The aim for [SpiralLinux][3] is also the same. Provide an out-of-the-box usable Debian experience to desktop users. + +Is Debian really that complex? While Debian is considered the most stable distro, the vanilla Debian often overwhelms new users with multiple download options. The focus on FOSS-only software by default policy also makes things difficult for beginners. It requires various tweaks after the first boot to make it useful. + +And those are the areas where SpiralLinux shines! + +Through this article, I’m going to walk you through the features of SpiralLinux and share my experience, so you can have a better idea of what to expect from SpiralLinux. + +### SpiralLinux: Debian simplified + +The first question that will come to your mind is why another [Debian-based distro][4]? The core idea behind SpiralLinux is to get you a well-tuned Debian that can be used out of the box. + +If you [try installing Debian][5], you’ll notice a number of download options but they do not include proprietary drivers and codecs which are necessary for modern hardware (including mine). Getting the right ISO itself is the first struggle. + +Not to forget that you’ll have to further tweak your vanilla Debian system to make it work with your hardware. + +SpiralLinux aims to address those pain points by providing several pre-installed software, performance tweaks and proprietary drivers and codecs support. + +Some key highlighting features are as follows: + +* Ships with a wide range of drivers to support a variety of hardware +* zRAM is enabled by default for better performance +* It can be upgraded to Debian testing Unstable branches with just a few clicks +* It uses Linux kernel 5.18 out of the box to support the most recent hardware +* Proprietary media codecs are pre-installed +* Third-party Debian repositories are enabled by default +* ISOs available for Cinnamon, Xfce, GNOME, KDE, MATE, Budgie, and LXQt desktop environments +* An experimental “builder” ISO for experts + +![SpiralLinux DE offerings][6] + +#### System Requirements + +There’s no mention of 32-bit or ARM support in the official documentation. You only get a single download option for a 64-bit system. + +As SpiralLinux is entirely based on Debian stable, these are the standard system requirements for 64-bit machines: + +* RAM: 2 GB or higher (Depends on the [desktop environment][7] you choose) +* Processor: Dual-core or higher +* Disk: 15 GB or higher + +#### Installation + +![Calamares installer for SpiralLinux][8] + +As you expect from any easy-to-use Linux distro, SpiralLinux provides a graphical installer. Avid distrohoppers can easily see that it uses Calamares installer. + +The installer has all the necessary features you expect such as manual/auto partitioning, disk encryption, changing bootloader location, and so on. + +You can choose Btrfs as the default file system while installing SpiralLinux. + +### My Experience with SpiralLinux + +Experience. This is what really matters in the end because adding tons of features can only reduce steps after the first boot. + +Like any other thing in the world, SpiralLinux has some good and some bad points. I’ll be addressing both pros and cons so that you can have a better idea. + +#### Positives + +Let’s start this review with positives, which includes the parts which I enjoyed. + +##### Hardware support + +My system is equipped with modern hardware and requires a modern kernel. By far, I never thought I would be able to boot into Debian 11, but this changed my mind. + +By default, you get Linux Kernel 5.18, which is newer than what you get on vanilla Debian (5.10 series) and works well on my 12th gen Intel CPU. + +![Linux kernel 5.18][9] + +##### Non-free repositories + +![Non-free repos][10] + +Once in a while, we all need to install proprietary packages that are not available in default repositories. + +These non-free repositories include closed-source firmware and drivers, which will help install proprietary microcodes and other software unavailable in the default repository. + +##### Switching from Stable to Sid and Testing + +![Using Debian Sid][11] + +This is my favorite feature from the entire catalog. Just imagine, you can switch between stable, unstable, and testing branches without using a single command. + +The best part is that users are given simple instructions on how they can switch between branches. You can access them from [here.][12] + +##### Performance + +SpiralLinux is well optimized in terms of RAM consumption and makes it an ideal choice for low-end hardware if you choose the right desktop environment. + +I’ll show you what you can expect from [different desktop environments][13]. So if you are someone with decent hardware, you can opt for Cinnamon, as it only consumes around 900 MB of RAM in idle usage. + +![idle ram consumption on cinnamon de][14] + +But what if you are looking for something lighter? change your current DE to Xfce and as we already know, it is one of the most lightweight DEs; idle RAM consumption will only be around 600 MB. + +![Idle ram consumption on Xfce de][15] + +Either way, I didn’t encounter any performance issues, and things went well. + +#### Negatives + +SpiralLinux shines in various scenarios but I also encountered a few hiccups. Let me share them with you. + +##### Hardware Acceleration Issue in VM + +Once you boot into a VM without any hardware acceleration, you will be advised to enable it, as you may experience poor performance and high CPU usage. + +![Requires hardware acceleration for better performance][16] + +And once you enable hardware acceleration, you will find your VM is often crashing while booting. It’s no minor crash and makes your VM unstable. + +![VM Hardware acceleration issue][17] + +You can easily use SpiralLinux without enabling any hardware acceleration. I found no issues at all while using it without any acceleration enabled. + +##### Snap Issues + +While Snaps are not my go-to choice, I use them when I want to get away from building packages from source. But this was a below-average experience with snaps in SpiralLinux. + +I had two issues. One is that many of the snap packages were not even working. I even tried switching between other branches. + +This was the issue with the fresh installation, without even changing a single config file. I noticed that many of my favorite apps, such as Spotify and Slack were not working in Snap form. + +Some packages did work though. I use Shutter for screenshots and when I installed it using snaps, I was introduced to a quite outdated UI. + +![Shutter][18] + +The second problem was that any installed snap packed are not listed in the system menu by default. You can easily solve that issue by utilizing the given command: + +``` +sudo cp /var/lib/snapd/desktop/applications/*.desktop ~/.local/share/applications/ +``` + +But this was only with Snap packages. Flatpaks were working quite smoothly and none of the problems I mentioned above were faced with Flatpaks. + +### Final Thoughts + +I like the imagination of the developer. GeckoLinux is based on openSUSE. Since openSUSE logo/mascot is a chameleon, the developer named it Gecko (a type of lizard). + +The logo of Debian is a swirl, so the developer named the Debian variant SpiralLinux. + +Both have the intention of simplifying the experience of their popular parent distro. + +[Many other Debian-based distributions][19] have the same purpose as SpiralLinux. Linux Mint Debian Edition ([LMDE][20]) is one such example. + +Personally, I would prefer using the main distribution instead of its derivative. But I understand that a few users may find it more convenient to use these derivatives. + +I leave the comments open for you now. Do you think SpiralLinux has the potential to carve out a niche for itself or is it one of those distributions that will be lost in oblivion? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/spirallinux-review/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/geckolinux-review/ +[2]: https://geckolinux.github.io/ +[3]: https://spirallinux.github.io/ +[4]: https://itsfoss.com/debian-based-distros/ +[5]: https://itsfoss.com/install-debian-easily/ +[6]: https://itsfoss.com/wp-content/uploads/2022/07/spirallinux-flavors.png +[7]: https://itsfoss.com/what-is-desktop-environment/ +[8]: https://itsfoss.com/wp-content/uploads/2022/07/Calamares-installer-1.png +[9]: https://itsfoss.com/wp-content/uploads/2022/07/Linux-Kernel-5.18-1.png +[10]: https://itsfoss.com/wp-content/uploads/2022/07/Non-free-repos.png +[11]: https://itsfoss.com/wp-content/uploads/2022/07/Using-Debian-sid.png +[12]: https://github.com/SpiralLinux/SpiralLinux-project/wiki#switching-from-debian-stable-to-the-testing-or-unstable-branch +[13]: https://itsfoss.com/best-linux-desktop-environments/ +[14]: https://itsfoss.com/wp-content/uploads/2022/07/idle-RAM-consumption-on-Cinnamon-DE.png +[15]: https://itsfoss.com/wp-content/uploads/2022/07/idle-RAM-consumption-on-Xfce-DE.png +[16]: https://itsfoss.com/wp-content/uploads/2022/07/Reuires-hardware-acceleration-for-better-performance.png +[17]: https://itsfoss.com/wp-content/uploads/2022/07/VM-3D-acceleration-issue.png +[18]: https://itsfoss.com/wp-content/uploads/2022/07/Shutter.png +[19]: https://itsfoss.com/debian-based-distros/ +[20]: https://linuxmint.com/download_lmde.php From 916f8f96b918b1ebbced5856719af51d98792af3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 31 Jul 2022 09:08:50 +0800 Subject: [PATCH 0579/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220730=20How=20to=20Install=20Latest=20Vim=209.0?= =?UTF-8?q?=20on=20Ubuntu=20Based=20Linux=20Distributions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...9.0 on Ubuntu Based Linux Distributions.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md diff --git a/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md new file mode 100644 index 0000000000..34950f3d10 --- /dev/null +++ b/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md @@ -0,0 +1,119 @@ +[#]: subject: "How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions" +[#]: via: "https://itsfoss.com/install-latest-vim-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions +====== +Brief: This quick tutorial shows the steps for installing the latest version of Vim on Ubuntu Linux. + +Vim is one of the most [popular terminal-based text editors][1]. However, it is not installed by default on Ubuntu. + +Ubuntu uses Nano as the default terminal editor. Nano is also an excellent tool and I am not going into [Nano vs Vim debate][2]. + +If you have already spent some time mastering the Vim shortcuts, you don’t have to forget them and start using a new editor. + +You can install Vim on Ubuntu using the following command in the terminal: + +``` +sudo apt install vim +``` + +That’s quite simple, right? This approach’s major problem is that you won’t get the latest Vim version. + +You can check the installed Vim version with the following command: + +``` +vim --version +``` + +And if you check the [Vim website][3], you’ll find that Vim has newer versions released already. + +At the time of writing this article, [Vim 9.0 is released][4] but is not available in Ubuntu repositories yet. + +The good news is that you can install the latest Vim using an [unofficial but actively maintained PPA][5]. + +### Install Vim 9 on Ubuntu using a PPA + +If you have specific Vim configuration files, there is no harm in making a backup for them. + +Now, to install the latest Vim version, add the PPA repository first: + +``` +sudo add-apt-repository ppa:jonathonf/vim +``` + +![Adding the PPA to get the latest Vim version][6] + +You don’t need to update the package cache on Ubuntu but other distributions like Mint may still require it: + +``` +sudo apt update +``` + +Now, use the command below to install the latest Vim version offered by the PPA: + +``` +sudo apt install vim +``` + +If you had already an older Vim version installed, it would be upgraded. You can check the installed Vim version using: + +``` +vim --version +``` + +![Checking installed Vim version][7] + +This is a very well-maintained PPA and is available for all active Ubuntu versions. + +If you are new to this PPA thing, I have a detailed guide on this topic. You should read to learn more about the [concept of PPA in Ubuntu][8]. + +### Downgrade or remove it + +If you want to go back to the older Vim version provided by Ubuntu, you should remove the existing version, remove the PPA and install it again. + +Before removing Vim, you should copy the vimrc or other such config file if you had made custom changes and plan to use Vim again. + +Alright. Open a terminal and use the following command: + +``` +sudo apt remove vim +``` + +Now delete the PPA otherwise you’ll get the latest Vim again (if you try installing Vim for the older version): + +``` +sudo add-apt-repository -r ppa:jonathonf/vim +``` + +Now, if you want the old, official Ubuntu version of Vim, just install it again [using the apt command][9]. + +Enjoy Vim on Ubuntu. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-latest-vim-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/command-line-text-editors-linux/ +[2]: https://itsfoss.com/vim-vs-nano/ +[3]: https://www.vim.org/ +[4]: https://news.itsfoss.com/vim-9-0-release/ +[5]: https://launchpad.net/~jonathonf/+archive/ubuntu/vim +[6]: https://itsfoss.com/wp-content/uploads/2022/07/install-latest-vim-on-ubuntu-using-ppa.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/vim-9-ubuntu.png +[8]: https://itsfoss.com/ppa-guide/ +[9]: https://itsfoss.com/apt-command-guide/ From 38f293eb9a136817182a6dd44024181665e0578b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 31 Jul 2022 09:22:09 +0800 Subject: [PATCH 0580/3123] RP @Marisie-x https://linux.cn/article-14881-1.html --- ...mart Parking System for a Metro Station.md | 158 ++++++++++++++++++ ...mart Parking System for a Metro Station.md | 147 ---------------- 2 files changed, 158 insertions(+), 147 deletions(-) create mode 100644 published/20220614 Build a Smart Parking System for a Metro Station.md delete mode 100644 translated/tech/20220614 Build a Smart Parking System for a Metro Station.md diff --git a/published/20220614 Build a Smart Parking System for a Metro Station.md b/published/20220614 Build a Smart Parking System for a Metro Station.md new file mode 100644 index 0000000000..f218f0956a --- /dev/null +++ b/published/20220614 Build a Smart Parking System for a Metro Station.md @@ -0,0 +1,158 @@ +[#]: subject: "Build a Smart Parking System for a Metro Station" +[#]: via: "https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/" +[#]: author: "Dr Maheswari R. https://www.opensourceforu.com/author/dr-maheswari-r/" +[#]: collector: "lkxed" +[#]: translator: "Maisie-x" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14881-1.html" + +为地铁站构建一个智能停车系统 +====== + +> 本文将帮助你设计一个基于 Web 的应用程序,使用 Node-RED 为地铁站的汽车提供一个自动智能停车系统。 + +![Smart car parking][1] + +Web 应用程序是在 Web 服务器上运行的软件。终端用户通过 Web 浏览器访问 Web 应用程序。Web 应用程序使用客户端—服务器(C/S)架构进行编程,该架构是用户(客户端)通过远程服务器(可能由第三方托管)提供服务。Web API(应用程序编程接口)在整个 Web 上是可用的,用户可以通过 HTTP 协议访问该接口,如图 1 所示。 + +![Figure 1: Web API][4] + +本文将演示如何为地铁设计一个基于 Web 的汽车自动智能停车系统。 它是使用开源的 Node-RED 设计。该系统使用模板节点创建了一个交互式的、时尚的用户登录表单,用 HTML 和 CSS 编码以获取车主的详细信息,从而实现停车系统的自动化。我们可以在图 2 和图 3 看到登录表单和提交表单的流程图。 + +使用的节点如下: + +![table function][3] + +### 地铁智能停车节点流程设计 + +Node-RED 由 `node-red` 命令激活。访问网址 `http://127.0.0.1:1880/` 可以看到 Node-RED 用户界面流程浏览器已经启用,可以认为 Node-RED 设置已完成,可以正常工作了。 + +按照下面给出的步骤创建登录表单和提交表单。 + +![Figure 2: Login form flow diagram][5] + +![Figure 3: Submission form flow diagram][6] + +### 登录表单 + +1、在节点画布中,拖放 http 输入http in 节点,这会为创建 Web 服务创建一个 HTTP 访问点。 + +2、将 http 输入http in 节点连接到 函数function 节点。函数节点有助于编写 JavaScript 函数处理节点接收到的消息。 + +![Figure 4: Login form for smart parking for cars][7] + +3、将 函数function 节点连接到 模板template 节点,模板节点基于提供的模板创建一个 Web API。 + +4、将 模板template 节点连接到 http 响应http response 节点,它将响应 http 输入http in 节点的请求。 + +![Figure 5: Submission form for smart parking for cars][8] + +### 提交表单 + +1、拖放 http 输入http in 节点并将其连接到 json 节点,json 节点将数据转换为 JSON 字符串进行通信。 + +2、将 http 输入http in 节点连接到 调试debug 节点,调试节点的调试监控器会输出结果。 + +3、将 json 节点放置并连接到 函数function 节点,将后者连接到 http 响应http response 节点。 + +创建完整流程后,单击 Node-RED 窗口右上角的 部署Deploy 按钮。访问 `http://127.0.0.1:1880/ui/` 这个链接查看用户界面。 + +输入链接然后单击 提交Submit 后,该链接会跳转到下一页,你可以在该页面阅读所有新闻。 + +### Node-RED 工作流程 + +在单个 Node-RED 流程中,你可以创建登录表单和提交表单,如图 4 和图 5 所示。 + +现在我们将配置节点属性。 + +#### 登录表单 + +编辑 http 输入http in 属性: + +- 方法method 选择 “Get” +- 网址URL 设为 `/MetroStation` +- 名称name 配置为 “智能停车系统Smart Parking”。 + +(LCTT 译注:下文 http 响应节点的名称为 Smart parking,p 字母小写,为了区分,此处中文翻译成智能停车系统。) + +![Figure 6: Http in node property configurations][9] + +> 注意:URL 可以使用任何用户定义的本地变量。 + +现在选择 函数function 节点,编辑函数节点属性:输入代码 `msg.url = project` ,并配置代码 名称name 字段为 “项目提交Project Submission”。 + +![Figure 7: Function node property configurations][10] + +在 模板template 节点的属性窗口,为登录表单配置相应的 HTML 代码,并将代码 名称name 命名为 “显示面板Display panel”。在此流程使用了 Mustache 模板格式(LCTT 译注:Mustache 是胡子的意思,因为它的嵌入标记 `{{ }}` 非常像胡子)。Mustache 是一个简单的 Web 模板系统,被描述为无逻辑的模板引擎。Mustache 没有任何显式的控制流语句,例如 `if` 和 `else` 条件和 `for` 循环。可以通过使用块标签处理列表和lambdas 来实现循环和条件评估。 + +![Figure 8: Template node property configurations][11] + +配置编辑 http 响应http response 节点的属性,名称name 设为 “智能停车Smart parking”(图 9) 。 + +![Figure 9: Http response node property configurations][12] + +#### 提交表单 + +在 http 输入http in 节点的编辑属性窗口,方法method 选择 “POST” ,网址URL 设为 `/project`。 + +![Figure 10: Http in node property configurations][13] + +在 JSON 节点的编辑窗口,操作Action设为 “JSON字符串与对象互转Convert between JSON String & Object”,参考图 11。 + +![Figure 11: JSON node property configurations][14] + +函数function 节点的配置如图 12 所示。 + +![Figure 12: Function node property configurations][15] + +在 http 响应http response 节点,编辑属性 名称name 为 “已提交项目Project Submitted”。 + +![Figure 13: Http response node property configurations][16] + +> 注意:添加带有评论的评论节点作为 “登录表单” 和 “提交表单”。 + +![Figure 14: Debug node property configurations][17] + +### 用户界面的控制面板 + +当用户单击 提交Submit,给出的数据将显示在用户界面和调试节点。如果单击 重置Reset,详细信息将被清除,允许用户输入新的详细信息(图15)。 + +![Figure 15: User login UI][18] + +地铁停车费率通过超链接提供,收费表在用户界面显示。因此,汽车智能停车系统通过适当的超链接实现自动化,展示地铁站的停车费。该自动化系统的最终输出可以在 Node-RED 控制面板的用户界面和调试监控器调取和展示。 + +![Figure 16: Metro parking tariff][19] + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/ + +作者:[Dr Maheswari R.][a] +选题:[lkxed][b] +译者:[Maisie-x](https://github.com/Maisie-x) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/dr-maheswari-r/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Smart-car-parking.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/table-function-node-red.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/table-function-node-red.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Web-Application-Programming-Interface300.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Login-Form-Flow-Diagram300.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-Submission-Form-Flow-Diagram300.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-Login-Form-of-Metro-Smart-Car-Parking300.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-Submission-Form-of-Metro-Smart-Car-Parking300.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-6-Http-in-Node-Property-Configurations300.jpg +[10]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-7-Function-Node-Property-Configurations300.jpg +[11]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-8-Template-Node-Property-Configurations300.jpg +[12]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-9-Template-Node-Property-Configurations300.jpg +[13]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-10-Http-in-Node-Property-Configurations300.jpg +[14]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-11-Json-Node-Property-Configurations300.jpg +[15]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-12-Function-Node-Property-Configurations300.jpg +[16]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-13-Http-Response-Node-Property-Configurations300.jpg +[17]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-14-Debug-Node-Property-Configurations300.jpg +[18]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-15-User-Login-UI300.jpg +[19]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-16-Parking-Tariff-Metro300.jpg diff --git a/translated/tech/20220614 Build a Smart Parking System for a Metro Station.md b/translated/tech/20220614 Build a Smart Parking System for a Metro Station.md deleted file mode 100644 index 0fb3b50f69..0000000000 --- a/translated/tech/20220614 Build a Smart Parking System for a Metro Station.md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "Build a Smart Parking System for a Metro Station" -[#]: via: "https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/" -[#]: author: "Dr Maheswari R. https://www.opensourceforu.com/author/dr-maheswari-r/" -[#]: collector: "lkxed" -[#]: translator: "Maisie-x " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -为地铁站构建智能停车系统 -====== -本文将帮助你设计一个基于 Web 的应用程序,该应用程序使用 Node-RED 为地铁站的汽车自动实现智能停车系统。 - -![Smart car parking][1] - -Web应用程序是在Web服务器上运行的软件。终端用户通过Web浏览器访问每个Web应用程序。Web应用程序使用客户端—服务器架构进行编程,该架构是用户(客户端)通过可能由第三方托管的远程服务器提供服务。Web API(应用程序编程接口)在Web上可用,用户可以通过HTTP协议访问该接口,如图1所示。 - -本文将演示如何为地铁设计一个基于Web的汽车自动智能停车系统。 它是使用开源的Node-RED设计。该系统使用模板节点创建了一个互动式且时尚的用户登录表单,该模板用HTML和CSS编码以获取车主详细,从而实现停车系统的自动化。我们可以在图2和图3看到登录表单和提交表单的流程图。 - -使用的节点如下: - -![table function][3] - -**地铁智能停车节点流程设计** - -Node-RED是使用’node-red‘命令激活。通过网址http://127.0.0.1:1880/ 可以访问Node-RED的用户界面流程图的浏览器。我们认为Node-RED设置已完成并且可以正常工作了。 - -![Figure 1: Web API][4] - -按照下面给出的步骤创建登录表单和提交表单。 - -![Figure 2: Login form flow diagram][5] - -![Figure 3: Submission form flow diagram][6] - -**登录表单** - -1) 在节点画布中,拖放http in节点,这会为创建Web服务创建一个HTTP访问点。 -2) 将http in节点连接到函数function节点。函数节点有助于编写JavaScripts函数处理节点接收到的消息。 - -![Figure 4: Login form for smart parking for cars][7] - -3) 将函数function节点连接到模板template节点,模板节点基于提供的模板创建一个Web API。 -4) 将模板template节点连接到http 响应response节点,响应节点将响应http输入节点的请求。 - -![Figure 5: Submission form for smart parking for cars][8] - -**提交表单** - -1) 拖放http in节点并将其连接到json节点,json节点将数据转换为JSON字符串进行通信。 -2) 将http in节点连接到调试debug节点,调试节点的调试监控器会输出结果。 -3) 将json节点放置并连接到函数function节点,将函数节点连接到http响应节点。 - -创建完整流程后,单击Node-RED窗口右上角的部署Deploy按钮。访问*127.0.0.1:1880/ui/*这个链接查看用户界面。 - -输入链接然后单击提交Submit后,该链接会跳转到下一页,您可以在该页面阅读所有新闻。 - -**Node-RED工作流程** - -在单个Node-RED流程中,您可以创建登录表单和提交表单,如图4和图5所示。 - -现在我们将配置节点属性。 - -**登录表单**:编辑http in属性:方法method选择 ‘Get’,网址URL设为‘/MetroStation’ ,名称name配置为 “智能停车系统Smart Parking”。(译注:下文http响应节点的名称为Smart parking,p字母小写,为了区分,此处中文翻译成智能停车系统。) - -![Figure 6: Http in node property configurations][9] - -| - | -| :- | -| 注意:任何用户可以定义网址URL为本地变量。 | - -现在选择函数节点,编辑函数节点属性:输入代码 ‘msg.url = project’ ,并配置代码名称name字段为 “项目提交Project Submission”。 - -![Figure 7: Function node property configurations][10] - -在模板节点的属性窗口,为登录表单配置相应的HTML代码,并将代码名称name命名为 “显示面板Display panel”。猜此流程使用了Mustache(译注:Mustache是胡子的意思,因为它的嵌入标记{{ }}非常像胡子)模板格式。Mustache是一个简单的Web模板系统,被描述为无逻辑的模板引擎。Mustache没有任何显式的控制流语句,例如 ‘if’ 和 ‘else’条件和‘for’ 循环。可以通过使用块标签处理列表和lambdas来实现循环和条件评估。 - -![Figure 8: Template node property configurations][11] - -配置编辑http响应response节点的属性,名称name设为 "智能停车Smart parking"(图9) 。 - -![Figure 9: Http response node property configurations][12] - -**提交表单**:在http in节点的编辑属性窗口,方法method选择‘POST’ ,网址URL设为 ‘/project’。 - -![Figure 10: Http in node property configurations][13] - -在JSON节点的编辑窗口,操作Action设为‘JSON字符串与对象互转Convert between JSON String & Object’,参考图11。 - -![Figure 11: JSON node property configurations][14] - -函数节点的配置如图12所示。 - -![Figure 12: Function node property configurations][15] - -在http响应response节点,编辑属性名称name为“已提交项目Project Submitted”。 - -![Figure 13: Http response node property configurations][16] - -| - | -| :- | -| 注意:添加带有评论的评论节点作为 “登录表单” 和 “提交表单”。 | - -![Figure 14: Debug node property configurations][17] - -**用户界面的控制面板** - -当用户单击提交Submit,给出的数据将显示在用户界面和调试节点。如果单击重置Reset,详细信息将被清除,允许用户输入新的详细信息(图15)。 - -![Figure 15: User login UI][18] - -地铁停车费通过超链接提供,收费表在用户界面显示。因此,汽车智能停车系统通过适当的超链接实现自动化,展示地铁站的停车费。该自动化系统的最终输出可以在Node-RED控制面板的用户界面和调试监控器调取和展示。 - -![Figure 16: Metro parking tariff][19] - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/ - -作者:[Dr Maheswari R.][a] -选题:[lkxed][b] -译者:[Maisie-x](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/dr-maheswari-r/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Smart-car-parking.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/table-function-node-red.jpg -[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/table-function-node-red.jpg -[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Web-Application-Programming-Interface300.jpg -[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Login-Form-Flow-Diagram300.jpg -[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-Submission-Form-Flow-Diagram300.jpg -[7]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-Login-Form-of-Metro-Smart-Car-Parking300.jpg -[8]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-Submission-Form-of-Metro-Smart-Car-Parking300.jpg -[9]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-6-Http-in-Node-Property-Configurations300.jpg -[10]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-7-Function-Node-Property-Configurations300.jpg -[11]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-8-Template-Node-Property-Configurations300.jpg -[12]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-9-Template-Node-Property-Configurations300.jpg -[13]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-10-Http-in-Node-Property-Configurations300.jpg -[14]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-11-Json-Node-Property-Configurations300.jpg -[15]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-12-Function-Node-Property-Configurations300.jpg -[16]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-13-Http-Response-Node-Property-Configurations300.jpg -[17]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-14-Debug-Node-Property-Configurations300.jpg -[18]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-15-User-Login-UI300.jpg -[19]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-16-Parking-Tariff-Metro300.jpg From d900f7dfe14dce8a91c1606406aa0ddd32f56659 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 31 Jul 2022 09:56:57 +0800 Subject: [PATCH 0581/3123] RP @Donkey-Hao https://linux.cn/article-14882-1.html --- ...20707 Use secret keyboard keys on Linux.md | 146 +++++++++++++++++ ...20707 Use secret keyboard keys on Linux.md | 151 ------------------ 2 files changed, 146 insertions(+), 151 deletions(-) create mode 100644 published/20220707 Use secret keyboard keys on Linux.md delete mode 100644 translated/tech/20220707 Use secret keyboard keys on Linux.md diff --git a/published/20220707 Use secret keyboard keys on Linux.md b/published/20220707 Use secret keyboard keys on Linux.md new file mode 100644 index 0000000000..93cb065735 --- /dev/null +++ b/published/20220707 Use secret keyboard keys on Linux.md @@ -0,0 +1,146 @@ +[#]: subject: "Use secret keyboard keys on Linux" +[#]: via: "https://opensource.com/article/22/7/linux-compose-key-cheat-sheet" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14882-1.html" + +在 Linux 中使用组合键输入隐藏的字形 +====== + +> 使用组合键,你不会被键盘所限制住。 + +![](https://img.linux.net.cn/data/attachment/album/202207/31/095532p72762ekberw7eb6.jpg) + +典型的键盘只有约 100 个键位。 + +由于 `Shift` 键,许多键得以有两个字符(也称之为 字形glyph)。字形常用于键入带有重音和变音符号的字母,生成数学公式或者货币中的符号,或者添加有趣的表情符号。在一些地区,有些键甚至有三个字形。 + +然而,不论你身处何处,有一些字形不会出现在你的键盘上。幸运的是,Linux 提供了使用 组合键Compose Key 来获取这些字形。 + +在你的键盘上没有组合键这个键,至少默认情况下没有,但是你可以设定一个你不用的键作为组合键。我在电脑上使用空格键旁边的 `Alt` 键,而在平板上使用菜单键,来作为组合键。 + +> **[下载 Linux 组合键速查表][2]** + +### 在 GNOME 中设置组合键 + +![A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.][3] + +在 GNOME 桌面,从软件库中安装 优化Tweaks 应用。你也可以从终端安装(基于 Debian 发行版用 `apt` 命令,Fedora 用 `dnf`): + +``` +$ sudo dnf install gnome-tweaks +``` + +启动优化应用后: + +1. 单击左侧栏中的 键盘和鼠标Keyboard & Mouse类别 +2. 找到 组合键Compose key 设置并指定一个键 +3. 关闭优化应用 + +### 在 KDE Plasma 桌面设置组合键 + +![A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.][4] + +在 KDE Plasma 桌面上,打开 系统设置System Settings,找到 输入设备Input Devices 控制界面。然后: + +1. 在 输入设备Input Devices 界面,点击 “高级Advanced” 标签 +2. 找到 组合键Compose key 列表项并指定一个键 +3. 点击右下角 “应用Apply” 按钮,然后关闭 系统设置System Settings + +### 使用组合序列 + +为了输入隐藏字符,需要按下组合键后松开。这样就可以进入组合模式。处于组合模式,你按下然后松开键,然后再按下一个键来组合字符。 + +例如: + +1. 按下组合键并释放,你会进入组合模式 +2. 按下单引号(`'`)并松开 +3. 按下 `E` 并松开,这是一个有效的组合,所以现在退出了组合模式 + +你输入了一个字符:`É`! + +一些组合序列只需要两个键的组合,然而还有一些需要三个键,并且至少有一个特殊字符要按四次键。 + +### 变音字符 + +这是一个很小众的世界,所以你的朋友的名字很有可能使用的字形不是你的键盘原生的字形。你现在可以跳过变音符号并使用适当的修饰符输入名字。 + +以下是常见变音符号的组合序列示例: + +* `' + <字母>` = `á é í ó ú ć ń ý j́́ ẃ ź` +* "\` + <字母>" = `à è ì ò ù ǹ ỳ ẁ` +* `~ + <字母>` = `ã ẽ ĩ õ ũ ñ ỹ` +* `^ + <字母>` = `â ê î ô û ĉ ŷ ĵ ŵ ẑ` +* `u + <字母>` = `ă ĕ ĭ ŏ ŭ` +* `c + c` = `č` +* `- + <字母>` = `ā ē ī ō ū đ` +* `, + <字母>` = `ą ę į ǫ ų ç ḑ ţ` + +这里仅仅罗列了常见的几个,并不是所有的组合。 + +#### 货币符号 + +得益于组合键,国际银行业务也变得容易: + +* `- + Y` = `¥` +* `- + L` = `£` +* `= + E` = `€` +* `= + L` = `₤` +* `= + N` = `₦` +* `= + R` = `₹` +* `= + W` = `₩` +* `/ + m` = `₥` +* `R + s` = `₨` +* `C + r` = `₢` +* `F + r` = `₣` + +重申,这不是完整的列表,但是一个好的开始。 + +#### 有趣的字形 + +变音符号和货币符号具有实用性,但是组合键也可以用来娱乐: + +* `< + 3` = `♥` +* `< + >` = `⋄` +* `# + q` = `♩` +* `: + )` = `☺` +* `: + (` = `☹` +* `p + o + o` = `💩` + +#### 长寿和繁荣 + +在 Linux 中我最喜欢的“秘密”字形是传统的 Vulcan 称呼,“长寿和繁荣”。 + +* `L + L + A + P` = `🖖` + +### 找到所有的字形 + +通过组合键可以使用更多字形,你可以通过按随机组合序列来发现新的字形。查找字形的一种更有条理的方法是参考位于 `/usr/share/X11/locale/en_US.UTF-8` 中的 `Compose` 文件(需要根据你键盘使用的语言环境调整绝对路径)。 + +这个文件令人崩溃,因为它包含超过 6000 行的组合序列,其中许多是 ASCII 和 Unicode 的复杂组合。要快速轻松地参考常见和基础序列,你可以 [下载我们的组合键速查表][5]。它提供涵盖数学、排版、音乐、箭头、变音符号、货币等的序列。 + +现在你知道了这个秘密,你可以表达更多内容了。 + +*(图片源自:Seth Kenlon, CC BY-SA 4.0)* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[wxy](https://github.com/wxy) + +本文由 [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/linux_keyboard_desktop.png +[2]: https://opensource.com/downloads/linux-compose-key-cheat-sheet +[3]: https://opensource.com/sites/default/files/2022-04/gnome-tweaks-compose.jpeg +[4]: https://opensource.com/sites/default/files/2022-04/kde-settings-input-advanced-compose.jpeg +[5]: https://opensource.com/downloads/linux-compose-key-cheat-sheet diff --git a/translated/tech/20220707 Use secret keyboard keys on Linux.md b/translated/tech/20220707 Use secret keyboard keys on Linux.md deleted file mode 100644 index 1d80536e9f..0000000000 --- a/translated/tech/20220707 Use secret keyboard keys on Linux.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: subject: "Use secret keyboard keys on Linux" -[#]: via: "https://opensource.com/article/22/7/linux-compose-key-cheat-sheet" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在 Linux 中使用隐藏键 -====== - -使用组合键,你不会被键盘所限制住。请下载速查表。 - -![Linux keys on the keyboard for a desktop computer][1] - -典型的键盘只有约 100 个键位。 - -由于 Shift 键,许多键得以有两个字符,也称之为字形。字形常用于键入带有重音和变音符号的字母,生成数学公式或者货币中的符号,或者添加有趣的表情符号。在一些地区,选择键甚至有三个字形。 - -然而,不论你身处何处,一些字形不会出现在你的键盘上。幸运的是,Linux 提供了使用组合键来获取这些字形。 - -默认情况下你的键盘上没有组合键,但是你可以设定一个你不用的键作为组合键。我在电脑上使用空格键旁边的 Alt 键,而在平板上使用菜单键,来作为组合键。 - -**[请下载 Linux 组合键速查表][2]** - -### 在 GNOME 中设置组合键 - -![A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.][3] - -图片源自: -(Seth Kenlon, CC BY-SA 4.0) - -在 GNOME 桌面,从软件库中安装 Tweas 应用。你也可以从终端安装(基于 Debian 发行版用 `apt` 命令, `dnf` 用于 Fedora ): - -``` -$ sudo dnf install gnome-tweaks -``` - -启动 Tweaks 后: - -1. 单击左侧栏中的键盘和鼠标类别 -2. 找到组合键设置并指定一个键 -3. 关闭 Tweaks - -### 在 KDE Plasma 桌面设置组合键 - -![A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.][4] - -图片源自: -(Seth Kenlon, CC BY-SA 4.0) - -在 KDE Plasma 桌面上,打开系统设置,找到输入设备控制界面。然后: - -1. 在输入设备界面,点击 “高级” -2. 找到组合键列表项并指定一个键 -3. 点击右下角 “应用” 按钮,然后关闭系统设置 - - -### 使用组合序列 - -为了输入隐藏字符,需要按下组合键后松开。这样就可以进入组合模式。处于组合模式,你按下然后松开键,然后再按下一个键来组合字符。 - -例如: - -1. 按下组合键并释放,你会进入组合模式 -2. 按下单引号 ( ' ) 并松开 -3. 按下 E 并松开,这是一个有效的组合,因为你现在退出了组合模式 - -你输入了一个字符:É! - -一些组合序列需要两个键的组合,然而还有一些需要三个键,并且至少一个特殊字符要按下四次键。 - -### 变音字符 - -这是一个很小众的世界,所以你的朋友的名字很有可能使用的字形不是你的键盘原生的。你现在可以跳过变音符号并使用适当的修饰符输入名字。 - -以下是常见变音符号的组合序列示例: - -* ' + <字母> = á é í ó ú ć ń ý j́́ ẃ ź -* ` + <字母> = à è ì ò ù ǹ ỳ ẁ -* ~ + <字母> = ã ẽ ĩ õ ũ ñ ỹ -* ^ + <字母> = â ê î ô û ĉ ŷ ĵ ŵ ẑ -* u + <字母> = ă ĕ ĭ ŏ ŭ -* c + c = č -* \- \+ <字母> = ā ē ī ō ū đ -* , + <字母> = ą ę į ǫ ų ç ḑ ţ - -这里仅仅罗列了常见的几个,并不是所有的组合。 - -#### 货币符号 - -得益于组合键,国际银行业务也变得容易: - -* \- + Y = ¥ -* \- + L = £ -* = + E = € -* = + L = ₤ -* = + N = ₦ -* = + R = ₹ -* = + W = ₩ -* / + m = ₥ -* R + s = ₨ -* C + r = ₢ -* F + r = ₣ - -重申,这不是完整的列表,但是一个好的开始。 - -#### 有趣的字形 - -变音符号和货币符号具有实用性,但是组合键也可以用来娱乐: - -* < + 3 = ♥ -* < + > = ⋄ -* \# + q = ♩ -* : + ) = ☺ -* : + ( = ☹ -* p + o + o = 💩 - -#### 长寿和繁荣 - -在 Linux 中我最喜欢的“秘密”字形是传统的 Vulcan 称呼,“长寿和繁荣”。 - -* L + L + A + P = 🖖 - -### 找到所有的字形 - -通过组合键可以使用更多字形,你可以通过按随机组合序列来发现新的字形。查找字形的一种更有条理的方法是参考位于 `/usr/share/X11/locale/en_US.UTF-8` 中的 `Compose` 文件(需要根据你键盘使用的语言环境调整绝对路径)。 - -该文件令人崩溃,因为它包含超过 6000 行的组合序列,其中许多是 ASCII 和 Unicode 的复杂组合。要快速轻松地参考常见和基础序列,你可以[下载我们的组合键速查表][5]。它提供涵盖数学、排版、音乐、箭头、变音符号、货币等的序列。 - -现在你知道了这个秘密,你可以表达更多内容了。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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/linux_keyboard_desktop.png -[2]: https://opensource.com/downloads/linux-compose-key-cheat-sheet -[3]: https://opensource.com/sites/default/files/2022-04/gnome-tweaks-compose.jpeg -[4]: https://opensource.com/sites/default/files/2022-04/kde-settings-input-advanced-compose.jpeg -[5]: https://opensource.com/downloads/linux-compose-key-cheat-sheet From 7ab633b40e77963271cbee691823d5b2c53d9940 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sun, 31 Jul 2022 11:47:14 +0800 Subject: [PATCH 0582/3123] PR --- ...20728 How To Build Custom Docker Image Using Dockerfile.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md b/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md index 50e49255a1..4dc0f38ffc 100644 --- a/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md +++ b/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/a-brief-introduction-to-dockerfile/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -289,7 +289,7 @@ via: https://ostechnix.com/a-brief-introduction-to-dockerfile/ 作者:[sk][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 768001747bae7a009fc4c2ebe0d5be448da7474c Mon Sep 17 00:00:00 2001 From: SongLing GU <63730344+Return7g@users.noreply.github.com> Date: Sun, 31 Jul 2022 13:40:36 +0800 Subject: [PATCH 0583/3123] Applying by Return7g --- ...ntu vs Manjaro- Comparing the Different Linux Experiences.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md index caee2de033..ab8d128bf9 100644 --- a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md +++ b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/ubuntu-vs-manjaro/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Return7g" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6ce6125a8c43f842bc802442ccfb4a9370b6a68e Mon Sep 17 00:00:00 2001 From: SongLing GU <63730344+Return7g@users.noreply.github.com> Date: Sun, 31 Jul 2022 14:00:54 +0800 Subject: [PATCH 0584/3123] part --- ...tu vs Manjaro- Comparing the Different Linux Experiences.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md index ab8d128bf9..b7f84b65a5 100644 --- a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md +++ b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md @@ -8,10 +8,13 @@ [#]: url: " " Ubuntu vs Manjaro: Comparing the Different Linux Experiences +对比 Ubuntu 和 Manjaro :比较不同 Linux 发行版体验 ====== Ubuntu is the most popular Debian-based Linux distribution for desktops and servers. +Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版 And Manjaro Linux is an Arch-based distro tailored for desktops. +Manjaro Linux 是基于 Arch 量身定制的桌面发行版 Both are entirely different when it comes to user experience and features. From 441fb8fe0f366b864282212d4cbf78ffa6813a98 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Sun, 31 Jul 2022 02:00:04 -0500 Subject: [PATCH 0585/3123] Translating. --- .../tech/20220716 Does an Ethernet splitter slow down speed-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md b/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md index eb68d4089e..b830d33f57 100644 --- a/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md +++ b/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/ethernet-splitter-speed/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MCGA" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 23f35cd8f7b23d738a09ffc8409fbc6d7a70ceb2 Mon Sep 17 00:00:00 2001 From: perfiffer Date: Sun, 31 Jul 2022 20:07:01 +0800 Subject: [PATCH 0586/3123] translated by perfifer --- ...se the Linux fmt command to format text.md | 94 ------------------ ...se the Linux fmt command to format text.md | 96 +++++++++++++++++++ 2 files changed, 96 insertions(+), 94 deletions(-) delete mode 100644 sources/tech/20220721 How I use the Linux fmt command to format text.md create mode 100644 translated/tech/20220721 How I use the Linux fmt command to format text.md diff --git a/sources/tech/20220721 How I use the Linux fmt command to format text.md b/sources/tech/20220721 How I use the Linux fmt command to format text.md deleted file mode 100644 index 0a357669ee..0000000000 --- a/sources/tech/20220721 How I use the Linux fmt command to format text.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "How I use the Linux fmt command to format text" -[#]: via: "https://opensource.com/article/22/7/fmt-trivial-text-formatter" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "perfiffer" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How I use the Linux fmt command to format text -====== -The fmt command is a trivial text formatter. Here's how I use it to format text and email replies. - -When I write documentation for a project, I often write the Readme file and Install instructions in plain text. I don't need to use markup languages like HTML or Markdown to describe what a project does or how to compile it. But maintaining this documentation can be a pain. If I need to update the middle of a sentence in my `Readme` text file, I need to reformat the text so I don't end up with a really long or short line in the middle of my other text that's otherwise formatted to 75 columns. Some editors include a feature that will automatically reformat text to fill paragraphs, but not all do. That's where the Linux `fmt` command comes to the rescue. - -### Format text with Linux fmt - -The `fmt` command is a trivial text formatter; it collects words and fills paragraphs, but doesn't apply any other text styling such as italics or bold. It's all just plain text. With `fmt`, you can quickly adjust text so it's easier to read. Let's say I start with this familiar sample text: - -``` -$ cat trek.txt -Space: the final -frontier. These are the voyages -of the starship Enterprise. Its -continuing mission: to explore -strange new worlds. To -seek out new life and new -civilizations. To boldly go -where no one has gone before! -``` - -In this sample file, lines have different lengths, and they are broken up in an odd way. You might have similar odd line breaks if you make lots of changes to a plain text file. To reformat this text, you can use the `fmt` command to fill the lines of the paragraph to a uniform length: - -``` -$ fmt trek.txt -Space: the final frontier. These are the voyages of the starship -Enterprise. Its continuing mission: to explore strange new worlds. To -seek out new life and new civilizations. To boldly go where no one has -gone before! -``` - -By default, `fmt` will format text to 75 columns wide, but you can change that with the -w or --width option: - -``` -$ fmt -w 60 trek.txt -Space: the final frontier. These are the voyages of -the starship Enterprise. Its continuing mission: to -explore strange new worlds. To seek out new life and new -civilizations. To boldly go where no one has gone before! -``` - -### Format email replies with Linux fmt - -I participate in an email list where we prefer plain text emails. That makes archiving emails on the list server much easier. But the reality is not everyone sends emails in plain text. And sometimes, when I reply to those emails as plain text, my email client puts an entire paragraph on one line. That makes it difficult to "quote" a reply in an email. - -Here's a simple example. When I'm replying to an email as plain text, my email client "quotes" the other person's email by adding a > character before each line. For a short message, that might look like this: - -``` -> I like the idea of the interim development builds. -``` - -A long line that doesn't get "wrapped" properly will not display correctly in my plain text email reply, because it will be just one long line with a > character at the front, like this: - -``` -> I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with. -``` - -To fix this, I bring up a terminal and copy and paste the quoted text into a new file. Then I use the -p or --prefix option to tell `fmt` what character to use as a "prefix" before each line. - -``` -$ cat > email.txt -> I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with. -^D -$ fmt -p '>' email.txt -> I like the idea of the interim development builds. This should be a -> great way to test new changes that everyone can experiment with. -``` - -The`fmt` command is a very simple text formatter, but it can do lots of useful things that help in writing and updating documentation in plain text. Explore the other options such as -c or --crown-margin to match the indentation of the first two lines of a paragraph, such as bullet lists. Also try -t or --tagged-paragraph to preserve the indentation of the first line in a paragraph, like indented paragraphs. And the -u or --uniform-spacing option to use one space between words and two spaces between sentences. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/fmt-trivial-text-formatter - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/osdc-docdish-typewriterkeys-3-series.png diff --git a/translated/tech/20220721 How I use the Linux fmt command to format text.md b/translated/tech/20220721 How I use the Linux fmt command to format text.md new file mode 100644 index 0000000000..fd8db7c9b7 --- /dev/null +++ b/translated/tech/20220721 How I use the Linux fmt command to format text.md @@ -0,0 +1,96 @@ +[#]: subject: "How I use the Linux fmt command to format text" +[#]: via: "https://opensource.com/article/22/7/fmt-trivial-text-formatter" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "perfiffer" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我是如何使用 Linux fmt 命令来格式化文本 + +====== +fmt 命令是一个简单的文本格式化程序。我将在这里展示如何使用它来格式化文本和邮件回复。 + +当我为项目编写文档时,我经常以纯文本的形式编写自述文件和安装说明。我不需要使用 HTML 或者 Markdown 之类的标记语言来描述项目的功能或如何编译它。但是维护此文档可能会很痛苦。如果我需要在我的 `Readme` 文件中更新一个句子的中间位置,我需要重新格式化文本,这样我就不会在我的其它文本中间出现一个很长或很短的行,否则它会被格式化为 75 列。一些编辑器包含可以自动重新格式化文本以填充段落的功能,但并非所有的编辑器都这样做。这就是 Linux `fmt` 命令的用武之地。 + +### 使用 Linux fmt 命令格式化文本 + +`fmt` 命令是一个简单的文本格式化程序;它收集单词并填充段落,但不应用任何其它文本样式,例如斜体或粗体。这一切都是纯文本。使用 `fmt` 命令,你可以快速调整文本,使其更易于阅读。让我们从这个熟悉的示例文本开始: + +``` +$ cat trek.txt +Space: the final +frontier. These are the voyages +of the starship Enterprise. Its +continuing mission: to explore +strange new worlds. To +seek out new life and new +civilizations. To boldly go +where no one has gone before! +``` + +在这个实例文件中,每行都有不同的长度,并且它们以一种奇怪的方式被分割。如果你对纯文本文件进行大量更改,你可以会遇到类似的奇怪的换行。要重新格式化此文本,你可以使用 `fmt` 命令将段落的行填充为统一长度: + + +``` +$ fmt trek.txt +Space: the final frontier. These are the voyages of the starship +Enterprise. Its continuing mission: to explore strange new worlds. To +seek out new life and new civilizations. To boldly go where no one has +gone before! +``` + +默认情况下,`fmt` 会将文本格式化为 75 的列宽大小,但你可以使用 `-w` 或 `--width` 选项进行更改: + +``` +$ fmt -w 60 trek.txt +Space: the final frontier. These are the voyages of +the starship Enterprise. Its continuing mission: to +explore strange new worlds. To seek out new life and new +civilizations. To boldly go where no one has gone before! +``` + +### 使用 Linux fmt 命令格式化电子邮件回复 + +我参与了一个邮件列表,我们更喜欢纯文本电子邮件。这使得在列表服务器上归档电子邮件变得更加容易。但现实并非每个人都以纯文本形式发送电子邮件。有时候,当我以纯文本形式回复这些电子邮件时,我的电子邮件客户端会将整个段落放在一行中。这使得在电子邮件中“引用”回复变得困难。 + +这是一个简单的例子。当我以纯文本形式回复电子邮件时,我的电子邮件客户端通过在每行前添加 `>` 字符来”引用“对方的电子邮件。对于一条短消息,可能如下所示: + +``` +> I like the idea of the interim development builds. +``` + +没有正确“换行”的长行将无法在我的纯文本电子邮件回复中正确显示,因为它只是前面带有 `>` 字符的长行,如下所示: + +``` +> I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with. +``` + +为了解决这个问题,我打开了一个终端并将引用的文本复制并粘贴到一个新文件中。然后我使用 `-p` 或 `--prefix` 选项来告诉 `fmt` 在每一行之前使用什么字符作为“前缀”。 + +``` +$ cat > email.txt +> I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with. +^D +$ fmt -p '>' email.txt +> I like the idea of the interim development builds. This should be a +> great way to test new changes that everyone can experiment with. +``` + +`fmt` 命令是一个非常简单的文本格式化程序,但它可以做很多有用的事情,有助于以纯文本形式编写和更新文档。探索其它选项,例如 `-c` 或 `--crown-margin` 以匹配段落前两行缩进,例如项目符合列表。还可以尝试使用 `-t` 或者 `--tagged-paragraph` 来保留段落中第一行的缩进,就像缩进的段落一样。`-u` 或 `--uniform-spacing` 选项在单词之间使用一个空格,在句子之间使用两个空格。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/fmt-trivial-text-formatter + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/perfiffer) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/osdc-docdish-typewriterkeys-3-series.png From 66b1d0d14f93ceaa83a6896e3a751fad8b4b3f93 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 00:04:19 +0800 Subject: [PATCH 0587/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220731=20The=20Much=20Awaited=20Linux=20Mint=2021?= =?UTF-8?q?=20is=20Released=20and=20Available=20to=20Download.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1 is Released and Available to Download.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md diff --git a/sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md b/sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md new file mode 100644 index 0000000000..9040360ead --- /dev/null +++ b/sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md @@ -0,0 +1,127 @@ +[#]: subject: "The Much Awaited Linux Mint 21 is Released and Available to Download" +[#]: via: "https://news.itsfoss.com/linux-mint-21-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Much Awaited Linux Mint 21 is Released and Available to Download +====== +Linux Mint finally shifts its base to Ubuntu 22.04 LTS with “Vanessa” and includes a lot of helpful upgrades. + +![linux mint 21][1] + +Linux Mint is [one of the most popular Linux distros][2] out there. Moreover, it uses Ubuntu as its base and particularly the [Long Term Support][3] releases for up to 5 years of software support. + +Now, we have a new version upgrade, i.e. **Linux Mint 21 “Vanessa”** based on the latest [Ubuntu 22.04 LTS release][4], which was released in April. Thus, users can expect security updates until 2027. + +Let’s take a look at the highlights of this release. + +### Linux Mint 21 Vanessa: What’s New? + +![linux mint][5] + +Along with the stable and improved [Linux 5.15 LTS kernel][6], Linux Mint 21 brings in a host of new additions, changes, and refinements. + +#### Upgrade Tool for Existing Users + +![Source: Linux Mint][7] + +Existing Mint 20.3 users can easily update their system using the new GUI-based upgrade tool. + +Users will be shown a list of new packages to be installed/upgraded. This also includes a check for third-party PPA repositories which you may have added manually. + +#### New Bluetooth Manager + +![Source: Linux Mint][8] + +Blueman will now replace the GUI for GNOME Bluetooth manager i.e Blueberry. + +The switch was done basically because Blueman simply offered more features, connectivity options, and better support for multiple desktop environments. Moreover, Blueman’s UI blends in perfectly well with Linux Mint. + +Blueman includes some advanced options that may be irrelevant to most users, but it is a good tool. + +#### New Process Monitor Tray icon + +![linux mint][9] + +A very useful feature for both power and basic users is the introduction of a new tray icon that monitors processes! + +The tray icon will notify users if any automated processes like updates and system snapshots are running in the background. + +Mint users will easily know where to look whenever their system gets slow! + +#### Enhanced Thumbnail Support + +![Source: Linux Mint][10] + +Previously, some file types did not have any thumbnails displayed. This wasn’t great for the user experience. + +To address it, this release introduces a new project *xapp-thumbnails*, and brings thumbnail support for file types that include AppImage, ePub, MP3, RAW pictures, and WebP. + +#### XApp Improvements + +The ever-present Timeshift, the backup utility, is now a XApp and is officially maintained by the Mint team. In addition, the required space for the next snapshot is calculated and skipped if the snapshot leads to less than 1GB of free space on the disk in rsync mode. + +Other improvements were also made to Xviewer, Warpinator, Thingy, and WebApp manager. + +#### Cinnamon 5.4.2 + +Linux Mint’s flagship desktop environment—Cinnamon—has received good under-the-hood upgrades. + +The default windows manager, Muffin, is now re-based on the newer Mutter 3.36 codebase. + +There were also subtle improvements to the window UI, including theming and animations. + +![Source: Linux Mint][11] + +### Other Feature Additions and Improvements + +Some other changes include: + +* Improved support for AppImage, unlike Ubuntu 22.04 +* A new set of beautiful wallpapers in the catalog. + +You can explore more about its new highlights in our dedicated [Linux Mint 21 features][12] article. + +### Getting Linux Mint 21 + +If you are using Mint 20.3, you should be able to upgrade to Mint 21 in a few days. A graphical update process should be revealed in a few days. + +You can opt for a fresh installation of Linux Mint by grabbing the ISO from its download page. + +[Get Linux Mint 21][13] + +You can also [get torrent links][14] if you have slow or inconsistent internet. + +Enjoy fresh Mint 🙂 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-mint-21-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-mint-21-release.jpg +[2]: https://itsfoss.com/best-linux-distributions/ +[3]: https://itsfoss.com/long-term-support-lts/ +[4]: https://news.itsfoss.com/ubuntu-22-04-release/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-mint-21-new.jpg +[6]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[7]: https://news.itsfoss.com/wp-content/uploads/2022/07/upgradetool.webp +[8]: https://news.itsfoss.com/wp-content/uploads/2022/07/blueman.png +[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/monitor.png +[10]: https://news.itsfoss.com/wp-content/uploads/2022/07/thumbnails.png +[11]: https://news.itsfoss.com/wp-content/uploads/2022/07/animations.png +[12]: https://itsfoss.com/linux-mint-21-features/ +[13]: https://linuxmint.com/download.php +[14]: https://linuxmint.com/torrents/ From ff9280e2e2a7efc4fbdf35f6ca710bcebd7a4753 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 00:06:01 +0800 Subject: [PATCH 0588/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220731=20Top=2010=20Features=20of=20Linux=20Mint?= =?UTF-8?q?=2021=20-Vanessa-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 10 Features of Linux Mint 21 -Vanessa-.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md diff --git a/sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md b/sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md new file mode 100644 index 0000000000..ecf4f83c5b --- /dev/null +++ b/sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md @@ -0,0 +1,190 @@ +[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" +[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Features of Linux Mint 21 “Vanessa” +====== +We round up the top features of the upcoming Linux Mint 21 “Vanessa”. Find out what’s in store for you. + +![][0] + +![Linux Mint 21 Cinnamon Desktop][1] + +Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. + +I have summarized all of them in this list of top features of Linux Mint 21. + +### Top Features of Linux Mint 21 “Vanessa” + +#### 1. Ubuntu 22.04 and associated updates + +Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. + +Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. + +#### 2. Major changes in the Timeshift backup tool + +A few months back, the Mint team [announced][5] that they are taking over developing the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? + +Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. + +![Timeshift creating snapshot][7] + +With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. + +#### 3. WebP Support + +WebP image is a reasonably new image format created by Google for the web. It brings better compression and reduced size while maintaining good quality to traditional JPEG or PNG images. + +WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. + +That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always thinks about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: + +* ePub +* MP3 with Album Arts +* RAW Images +* AppImage + +#### 4. Process Monitor + +A small but handy process monitor tool will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. Your system may become slow in those situations, and this nifty icon can show you why. + +#### 5. Improved printing support + +Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. + +In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. + +All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. + +It’s good to see that the mint team contributed to this critical functionality. + +#### 6. Window Animation updates + +There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, separate sections gave more granular control of the animations. + +Here’s a side-by-side view. + +![][12] + +![][13] + +Secondly, the mapping windows and desktop effects options are removed. + +Third, a new control changes the animation speed from slower to faster. + +Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. + +I believe this is a well-designed dialog and advanced options for better clarity. + +#### 7. Mutter rebase + +Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). + +Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. + +Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. + +#### 8. Window manager and GTK Themes + +With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. + +Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. + +Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. + +On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. + +#### 9. Package Management updates + +Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. + +When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. + +If found, you get an error message that stops you from going further. + +On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. + +#### 10. Disable the Systemd OOMD (out-of-memory daemon) service + +The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. + +In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. + +With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. + +![Systemd OOMD service is not enabled][20] + +#### 11. Other Changes + +Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. + +* The default document reader app Xreader is now capable of minor annotation. This is a handy feature. +* The WebApp manager now brings custom browser parameters. +* Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. +* Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to the Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. + +![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] + +* The bulk renamer app Thingy gets some UI improvements. +* The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). +* The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. +* Finally, new wallpapers for your new desktop arrive in this release. + +![New Wallpapers in Linux Mint 21][23] + +### Things that are NOT changing + +From a very high level, you might feel that most of the Linux Mint 21 remains the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. + +### Wrapping Up + +Overall, a good set of features benefitting end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. + +You can download/update Linux Mint 21 from the [official website][24]. Also, stay tuned for our detailed distro review of Linux Mint 21 soon. + +What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-mint-21-features/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/07/mint21feature.jpg +[1]: https://www.debugpoint.com/wp-content/uploads/2022/07/Linux-Mint-21-Cinnamon-Desktop.jpg +[2]: https://www.debugpoint.com/linux-mint/ +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/linux-kernel-5-15/ +[5]: https://blog.linuxmint.com/?p=4323 +[6]: https://teejeetech.com/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg +[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ +[9]: https://github.com/linuxmint/xapp-thumbnailers +[10]: https://datatracker.ietf.org/doc/html/rfc8011 +[11]: https://www.debugpoint.com/tag/linux-distro-review/ +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg +[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 +[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ +[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ +[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 +[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html +[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ +[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg +[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ +[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg +[24]: https://www.linuxmint.com/download.php From 7d91f73f3c1ee0ddaace8124dc32c96660ecae1e Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 1 Aug 2022 08:31:42 +0800 Subject: [PATCH 0589/3123] translated --- ... Up Snap Versions to Free Up Disk Space.md | 105 ------------------ ... Up Snap Versions to Free Up Disk Space.md | 105 ++++++++++++++++++ 2 files changed, 105 insertions(+), 105 deletions(-) delete mode 100644 sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md create mode 100644 translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md diff --git a/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md deleted file mode 100644 index 4b3e8d4978..0000000000 --- a/sources/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md +++ /dev/null @@ -1,105 +0,0 @@ -[#]: subject: "How to Clean Up Snap Versions to Free Up Disk Space" -[#]: via: "https://www.debugpoint.com/clean-up-snap/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Clean Up Snap Versions to Free Up Disk Space -====== -This quick guide with a script helps to clean up old snap versions and free some disk space in your Ubuntu systems. - -I was running out of disk space in my test system with Ubuntu. So I was investigating via GNOME’s Disk Usage Analyser to find out which package is consuming the precious SSD space. Apart from the usual cache and home directory – to my surprise, I found that Snap and Flatpak consume a considerable amount of storage space. - -![Snap size – before cleanup][1] - -Although, I always maintain a rule – not to use Snap or Flatpak unless necessary. This is mainly because of their installation size and other issues. I prefer vanilla deb and rpm packages. Over the years, I have installed and removed a certain amount of Snap packages in this test system. - -The problem arises after uninstallation; Snap keeps some residue files in the system, unknown to the general users. - -So I opened the Snap folder `/var/lib/snapd/snaps` and discovered that Snap is keeping track of older versions of previously installed/uninstalled packages. - -For example, in the below image, you can see GNOME 3.28, 3.34, and Wine – all of these are removed long back. But they are still there. Its happening because of the Snap design which keeps versions of uninstalled packages after a proper uninstallation. - -![Files under snaps directory][2] - -Alternatively, you can get the same in terminal using: - -``` -snap list --all -``` - -![snap list all][3] - -The default value is 3 for several revisions for retention. That means Snap keeps 3 older versions of each package, including the active version. This is okay if you do not have constraints on your disk space. - -But for servers and other use cases, this can easily run into cost issues, consuming your disk space. - -However, you can easily modify the count using the following command. The value can be between 2 to 20. - -``` -sudo snap set system refresh.retain=2 -``` - -### Clean Up Snap Versions - -In a post in SuperUser, Popey, the ex-Engineering Manager at Canonical, [provided a simple script][4] that can clean up old versions of Snaps and keep the latest one. - -Here’s the script we will use to clean the Snap up. - -``` -#!/bin/bash - #Removes old revisions of snaps - #CLOSE ALL SNAPS BEFORE RUNNING THIS - set -eu - LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | - while read snapname revision; do - snap remove "$snapname" --revision="$revision" - done -``` - -Save the above script as .sh in a directory (for example`clean_snap.sh` ), give it executable permission and run. - -``` -chmod +x clean_snap.sh -``` - -When I ran the script, it reduced a lot of disk space. The script would also show the name of the package being removed. - -![Executing the script][5] - -![Snaps size after cleanup][6] - -### Closing Notes - -There are always debates on how efficient Snap’s design is. Many say it is broken by design, bloated, and heavy on systems. Some part of that argument is true, I would not deny it. The whole concept of sandboxing applications is great if implemented and enhanced properly. I believe, Flatpak does a better job compared to Snap. - -That said, I hope this helps you clean up some disk space. Although it is tested in Ubuntu, it should work in all Linux distribution that supports Snap. - -Also, check out our guide on [how to clean up Ubuntu][7] with additional steps. - -Finally, if you are looking for cleaning up **Flatpak** apps, refer [this guide][8]. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/clean-up-snap/ - -作者:[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/2021/03/Snap-size-before-cleanup.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/Files-under-snaps-directory.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg -[4]: https://superuser.com/a/1330590 -[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/Executing-the-script.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snaps-size-after-cleanup.jpg -[7]: https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/ -[8]: https://www.debugpoint.com/clean-up-flatpak/ diff --git a/translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md new file mode 100644 index 0000000000..14c4dca432 --- /dev/null +++ b/translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md @@ -0,0 +1,105 @@ +[#]: subject: "How to Clean Up Snap Versions to Free Up Disk Space" +[#]: via: "https://www.debugpoint.com/clean-up-snap/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何清理 Snap 版本以释放磁盘空间 +====== +这个带有脚本的快速指南有助于清理旧的 snap 版本并释放 Ubuntu 系统中的一些磁盘空间。 + +我的 Ubuntu 测试系统中出现磁盘空间不足。因此,我通过 GNOME 的磁盘使用分析器进行调查,以找出哪个软件包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录,令我惊讶的是,我发现 Snap 和 Flatpak 消耗了大量的存储空间。 + +![Snap size – before cleanup][1] + +尽管如此,我始终坚持一个规则:除非必要,否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢原生 deb 和 rpm 包。多年来,我在这个测试系统中安装和移除了一定数量的 Snap 包。 + +卸载后出现问题。Snap 在系统中保留了一些残留文件,一般用户不知道。 + +所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`,发现 Snap 正在跟踪以前安装/卸载的软件包的旧版本。 + +例如,在下图中,你可以看到 GNOME 3.28、3.34 和 Wine 这些都被删除了。但他们还在那里。这是因为 Snap 设计在正确卸载后保留已卸载软件包的版本。 + +![Files under snaps directory][2] + +或者,你可以在终端中使用: + +``` +snap list --all +``` + +![snap list all][3] + +对于保留的多个版本,默认值为 3。这意味着 Snap 会保留每个软件包的 3 个旧版本,包括活动版本。如果你对磁盘空间没有限制,这是可以的。 + +但是对于服务器和其他场景,这很容易遇到成本问题,消耗你的磁盘空间。 + +但是,你可以使用以下命令轻松修改计数。该值可以在 2 到 20 之间。 + +``` +sudo snap set system refresh.retain=2 +``` + +### 清理 Snap 版本 + +在 SuperUser 的一篇文章中,Canonical 的前工程经理 Popey [提供了一个简单的脚本][4]可以清理旧的 Snap 版本并保留最新版本。 + +这是我们将用来清理 Snap 的脚本。 + +``` +#!/bin/bash + #Removes old revisions of snaps + #CLOSE ALL SNAPS BEFORE RUNNING THIS + set -eu + LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | + while read snapname revision; do + snap remove "$snapname" --revision="$revision" + done +``` + +将上述脚本以 .sh 格式保存在目录中(例如 `clean_snap.sh`),赋予其可执行权限并运行。 + +``` +chmod +x clean_snap.sh +``` + +当我运行脚本时,它减少了很多磁盘空间。该脚本还将显示要删除的包的名称。 + +![Executing the script][5] + +![Snaps size after cleanup][6] + +### 结束语 + +关于 Snap 的设计效率如何,人们总是争论不休。许多人说,它的设计是坏的,是臃肿的,且消耗系统资源。该论点的某些部分是正确的,我不会否认。如果正确实施和增强,沙盒应用的整个概念就很棒。我相信,与 Snap 相比,Flatpak 做得更好。 + +也就是说,我希望这可以帮助你清理一些磁盘空间。尽管它在 Ubuntu 中进行了测试,但它应该适用于所有支持 Snap 的 Linux 发行版。 + +此外,请查看我们关于[如何清理 Ubuntu][7] 的指南以及其他步骤。 + +最后,如果你正在寻找清理 **Flatpak** 应用,请参阅[这个指南][8]。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/clean-up-snap/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snap-size-before-cleanup.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/Files-under-snaps-directory.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg +[4]: https://superuser.com/a/1330590 +[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/Executing-the-script.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snaps-size-after-cleanup.jpg +[7]: https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/ +[8]: https://www.debugpoint.com/clean-up-flatpak/ From 8c0637cfd8dd3a42ff51baa73a8f9839d05980b7 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 1 Aug 2022 08:37:35 +0800 Subject: [PATCH 0590/3123] translating --- ...nstall Latest Vim 9.0 on Ubuntu Based Linux Distributions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md index 34950f3d10..cd2956e21e 100644 --- a/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md +++ b/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-latest-vim-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 48dccbed335afb654e323f10ddcf4c2c66bbac5f Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Mon, 1 Aug 2022 09:16:18 +0800 Subject: [PATCH 0591/3123] Being translated --- sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md index 6469a1de35..82e24065cf 100644 --- a/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md +++ b/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md @@ -2,7 +2,7 @@ [#]: via: "https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/" [#]: author: "Sirko Kemter https://fedoramagazine.org/author/gnokii/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "aREversez" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -173,7 +173,7 @@ via: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/ 作者:[Sirko Kemter][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[aREversez](https://github.com/aREversez) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9633eb44a2c16183047c43131be2ad058e0bdbe6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Aug 2022 16:23:45 +0800 Subject: [PATCH 0592/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...A Code Generator and Templating Language Inspired by Jinja2.md | 0 ...0107 A hands-on tutorial for using the GNU Project Debugger.md | 0 ...t Not Visible in gedit in Dark Mode- Here-s What You Can Do.md | 0 published/{ => 202207}/20210511 What is fog computing.md | 0 published/{ => 202207}/20210511 What is the OSI model.md | 0 ...10602 Establish an SSH connection between Windows and Linux.md | 0 .../{ => 202207}/20210611 How to use the FreeDOS text editor.md | 0 ...w to Convert File Formats With Pandoc in Linux -Quick Guide.md | 0 .../{ => 202207}/20211017 How I use open source to play RPGs.md | 0 ...104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md | 0 .../20211203 Should Businesses Opt for Serverless Computing-.md | 0 ...end desktop notifications and reminders from Linux terminal.md | 0 .../20220115 Why use a Raspberry Pi to power your business.md | 0 .../{ => 202207}/20220214 A guide to Kubernetes architecture.md | 0 .../20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md | 0 published/{ => 202207}/20220527 Plotting Data in R- Graphs.md | 0 ...31 How dynamic linking for modular libraries works on Linux.md | 0 .../{ => 202207}/20220603 How static linking works on Linux.md | 0 .../20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md | 0 .../20220614 Build a Smart Parking System for a Metro Station.md | 0 ...t into an Older Kernel By Default in Ubuntu and Other Linux.md | 0 ...220625 Download YouTube Videos with VLC -Because, Why Not--.md | 0 ...ow to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md | 0 ...uro- An Unofficial Microsoft To-Do Desktop Client for Linux.md | 0 .../20220627 Make a temporary file on Linux with Bash.md | 0 ... HandBrake- Free Tool for Converting Videos from Any Format.md | 0 ...er-s IP Address -Default Gateway- in Ubuntu and Other Linux.md | 0 ...0 6 New Changes Coming to Nautilus File Manager in GNOME 43.md | 0 ...20630 Hide Files and Folders in Linux Without Renaming Them.md | 0 .../20220630 The Top Trends Changing The Data Center Industry.md | 0 ...eb is Slowly Becoming an Attractive Option on Desktop Linux.md | 0 .../20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md | 0 ....0 is Here with a Revamped UI and Improved Color Saturation.md | 0 ...er Commands Tutorial - Getting Started With Docker In Linux.md | 0 ...res with metadata for snap- Error in Ubuntu and other Linux.md | 0 ...220704 Manage your files in your Linux terminal with ranger.md | 0 ...20704 massCode- A Free and Open-Source Code Snippet Manager.md | 0 ... A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md | 0 .../20220705 Why I love Tig for visualizing my Git workflows.md | 0 published/{ => 202207}/20220707 Check disk usage in Linux.md | 0 .../{ => 202207}/20220707 Google Summer of Code + Zephyr RTOS.md | 0 ...elopers Joining Microsoft, Systemd Creator Adds to the List.md | 0 .../20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md | 0 .../{ => 202207}/20220707 Use secret keyboard keys on Linux.md | 0 ... Miss Firefox Send- Internxt Send is Ready as a Replacement.md | 0 ...eet Free Software Foundation Executive Director Zoë Kooyman.md | 0 ...del That Helps Overcome Language Barrier Is Now Open-Source.md | 0 published/{ => 202207}/20220709 Monitoring tiny web services.md | 0 ... to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md | 0 ...Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md | 0 ...20220711 Manual Renewal of SSL Certificates- A Simple Guide.md | 0 ...s An Amateur Linux Phone Project -NOTKIA- for a Name Change.md | 0 .../20220712 7 kinds of garbage collection for Java.md | 0 ...0220712 List Upgradable Packages With apt Command in Ubuntu.md | 0 .../20220713 How I create music playlists on Linux.md | 0 .../20220714 5 ways to learn C programming on Linux.md | 0 ...4 Fixing -Command -python- not found- Error in Ubuntu Linux.md | 0 ...ide- How to Share A Folder Between Ubuntu-Linux and Windows.md | 0 ...ow to Install Deepin Desktop in Arch Linux [Complete Guide].md | 0 .../20220716 Listen to music on Linux with Rhythmbox.md | 0 .../20220718 Monitor your Linux firewall with nftwatch.md | 0 ...Install Discord on Manjaro and Other Arch Linux Derivatives.md | 0 ...uch JavaScript do you need to know before learning ReactJS-.md | 0 ...20220720 What happens when you press a key in your terminal.md | 0 ...lus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md | 0 ...y Consider Including Non-Free Firmware in Official Releases.md | 0 ...22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md | 0 .../20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md | 0 68 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202207}/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md (100%) rename published/{ => 202207}/20210107 A hands-on tutorial for using the GNU Project Debugger.md (100%) rename published/{ => 202207}/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md (100%) rename published/{ => 202207}/20210511 What is fog computing.md (100%) rename published/{ => 202207}/20210511 What is the OSI model.md (100%) rename published/{ => 202207}/20210602 Establish an SSH connection between Windows and Linux.md (100%) rename published/{ => 202207}/20210611 How to use the FreeDOS text editor.md (100%) rename published/{ => 202207}/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md (100%) rename published/{ => 202207}/20211017 How I use open source to play RPGs.md (100%) rename published/{ => 202207}/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md (100%) rename published/{ => 202207}/20211203 Should Businesses Opt for Serverless Computing-.md (100%) rename published/{ => 202207}/20220106 Send desktop notifications and reminders from Linux terminal.md (100%) rename published/{ => 202207}/20220115 Why use a Raspberry Pi to power your business.md (100%) rename published/{ => 202207}/20220214 A guide to Kubernetes architecture.md (100%) rename published/{ => 202207}/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md (100%) rename published/{ => 202207}/20220527 Plotting Data in R- Graphs.md (100%) rename published/{ => 202207}/20220531 How dynamic linking for modular libraries works on Linux.md (100%) rename published/{ => 202207}/20220603 How static linking works on Linux.md (100%) rename published/{ => 202207}/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md (100%) rename published/{ => 202207}/20220614 Build a Smart Parking System for a Metro Station.md (100%) rename published/{ => 202207}/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md (100%) rename published/{ => 202207}/20220625 Download YouTube Videos with VLC -Because, Why Not--.md (100%) rename published/{ => 202207}/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md (100%) rename published/{ => 202207}/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md (100%) rename published/{ => 202207}/20220627 Make a temporary file on Linux with Bash.md (100%) rename published/{ => 202207}/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md (100%) rename published/{ => 202207}/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md (100%) rename published/{ => 202207}/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md (100%) rename published/{ => 202207}/20220630 Hide Files and Folders in Linux Without Renaming Them.md (100%) rename published/{ => 202207}/20220630 The Top Trends Changing The Data Center Industry.md (100%) rename published/{ => 202207}/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md (100%) rename published/{ => 202207}/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md (100%) rename published/{ => 202207}/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md (100%) rename published/{ => 202207}/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md (100%) rename published/{ => 202207}/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md (100%) rename published/{ => 202207}/20220704 Manage your files in your Linux terminal with ranger.md (100%) rename published/{ => 202207}/20220704 massCode- A Free and Open-Source Code Snippet Manager.md (100%) rename published/{ => 202207}/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md (100%) rename published/{ => 202207}/20220705 Why I love Tig for visualizing my Git workflows.md (100%) rename published/{ => 202207}/20220707 Check disk usage in Linux.md (100%) rename published/{ => 202207}/20220707 Google Summer of Code + Zephyr RTOS.md (100%) rename published/{ => 202207}/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md (100%) rename published/{ => 202207}/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md (100%) rename published/{ => 202207}/20220707 Use secret keyboard keys on Linux.md (100%) rename published/{ => 202207}/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md (100%) rename published/{ => 202207}/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md (100%) rename published/{ => 202207}/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md (100%) rename published/{ => 202207}/20220709 Monitoring tiny web services.md (100%) rename published/{ => 202207}/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md (100%) rename published/{ => 202207}/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md (100%) rename published/{ => 202207}/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md (100%) rename published/{ => 202207}/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md (100%) rename published/{ => 202207}/20220712 7 kinds of garbage collection for Java.md (100%) rename published/{ => 202207}/20220712 List Upgradable Packages With apt Command in Ubuntu.md (100%) rename published/{ => 202207}/20220713 How I create music playlists on Linux.md (100%) rename published/{ => 202207}/20220714 5 ways to learn C programming on Linux.md (100%) rename published/{ => 202207}/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md (100%) rename published/{ => 202207}/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md (100%) rename published/{ => 202207}/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md (100%) rename published/{ => 202207}/20220716 Listen to music on Linux with Rhythmbox.md (100%) rename published/{ => 202207}/20220718 Monitor your Linux firewall with nftwatch.md (100%) rename published/{ => 202207}/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md (100%) rename published/{ => 202207}/20220720 How much JavaScript do you need to know before learning ReactJS-.md (100%) rename published/{ => 202207}/20220720 What happens when you press a key in your terminal.md (100%) rename published/{ => 202207}/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md (100%) rename published/{ => 202207}/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md (100%) rename published/{ => 202207}/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md (100%) rename published/{ => 202207}/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md (100%) diff --git a/published/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md b/published/202207/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md similarity index 100% rename from published/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md rename to published/202207/20210101 Djinn- A Code Generator and Templating Language Inspired by Jinja2.md diff --git a/published/20210107 A hands-on tutorial for using the GNU Project Debugger.md b/published/202207/20210107 A hands-on tutorial for using the GNU Project Debugger.md similarity index 100% rename from published/20210107 A hands-on tutorial for using the GNU Project Debugger.md rename to published/202207/20210107 A hands-on tutorial for using the GNU Project Debugger.md diff --git a/published/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md b/published/202207/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md similarity index 100% rename from published/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md rename to published/202207/20210120 Highlighted Text Not Visible in gedit in Dark Mode- Here-s What You Can Do.md diff --git a/published/20210511 What is fog computing.md b/published/202207/20210511 What is fog computing.md similarity index 100% rename from published/20210511 What is fog computing.md rename to published/202207/20210511 What is fog computing.md diff --git a/published/20210511 What is the OSI model.md b/published/202207/20210511 What is the OSI model.md similarity index 100% rename from published/20210511 What is the OSI model.md rename to published/202207/20210511 What is the OSI model.md diff --git a/published/20210602 Establish an SSH connection between Windows and Linux.md b/published/202207/20210602 Establish an SSH connection between Windows and Linux.md similarity index 100% rename from published/20210602 Establish an SSH connection between Windows and Linux.md rename to published/202207/20210602 Establish an SSH connection between Windows and Linux.md diff --git a/published/20210611 How to use the FreeDOS text editor.md b/published/202207/20210611 How to use the FreeDOS text editor.md similarity index 100% rename from published/20210611 How to use the FreeDOS text editor.md rename to published/202207/20210611 How to use the FreeDOS text editor.md diff --git a/published/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md b/published/202207/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md similarity index 100% rename from published/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md rename to published/202207/20210627 How to Convert File Formats With Pandoc in Linux -Quick Guide.md diff --git a/published/20211017 How I use open source to play RPGs.md b/published/202207/20211017 How I use open source to play RPGs.md similarity index 100% rename from published/20211017 How I use open source to play RPGs.md rename to published/202207/20211017 How I use open source to play RPGs.md diff --git a/published/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md b/published/202207/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md similarity index 100% rename from published/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md rename to published/202207/20211104 Beginner-s Guide to Installing Arch Linux on VirtualBox.md diff --git a/published/20211203 Should Businesses Opt for Serverless Computing-.md b/published/202207/20211203 Should Businesses Opt for Serverless Computing-.md similarity index 100% rename from published/20211203 Should Businesses Opt for Serverless Computing-.md rename to published/202207/20211203 Should Businesses Opt for Serverless Computing-.md diff --git a/published/20220106 Send desktop notifications and reminders from Linux terminal.md b/published/202207/20220106 Send desktop notifications and reminders from Linux terminal.md similarity index 100% rename from published/20220106 Send desktop notifications and reminders from Linux terminal.md rename to published/202207/20220106 Send desktop notifications and reminders from Linux terminal.md diff --git a/published/20220115 Why use a Raspberry Pi to power your business.md b/published/202207/20220115 Why use a Raspberry Pi to power your business.md similarity index 100% rename from published/20220115 Why use a Raspberry Pi to power your business.md rename to published/202207/20220115 Why use a Raspberry Pi to power your business.md diff --git a/published/20220214 A guide to Kubernetes architecture.md b/published/202207/20220214 A guide to Kubernetes architecture.md similarity index 100% rename from published/20220214 A guide to Kubernetes architecture.md rename to published/202207/20220214 A guide to Kubernetes architecture.md diff --git a/published/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md b/published/202207/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md similarity index 100% rename from published/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md rename to published/202207/20220519 Top 10 Essential Ubuntu Apps For Everyone in 2022.md diff --git a/published/20220527 Plotting Data in R- Graphs.md b/published/202207/20220527 Plotting Data in R- Graphs.md similarity index 100% rename from published/20220527 Plotting Data in R- Graphs.md rename to published/202207/20220527 Plotting Data in R- Graphs.md diff --git a/published/20220531 How dynamic linking for modular libraries works on Linux.md b/published/202207/20220531 How dynamic linking for modular libraries works on Linux.md similarity index 100% rename from published/20220531 How dynamic linking for modular libraries works on Linux.md rename to published/202207/20220531 How dynamic linking for modular libraries works on Linux.md diff --git a/published/20220603 How static linking works on Linux.md b/published/202207/20220603 How static linking works on Linux.md similarity index 100% rename from published/20220603 How static linking works on Linux.md rename to published/202207/20220603 How static linking works on Linux.md diff --git a/published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md b/published/202207/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md similarity index 100% rename from published/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md rename to published/202207/20220606 10 Best Ubuntu Apps for Everyone in 2022 [Part 2].md diff --git a/published/20220614 Build a Smart Parking System for a Metro Station.md b/published/202207/20220614 Build a Smart Parking System for a Metro Station.md similarity index 100% rename from published/20220614 Build a Smart Parking System for a Metro Station.md rename to published/202207/20220614 Build a Smart Parking System for a Metro Station.md diff --git a/published/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md b/published/202207/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md similarity index 100% rename from published/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md rename to published/202207/20220623 How to Boot into an Older Kernel By Default in Ubuntu and Other Linux.md diff --git a/published/20220625 Download YouTube Videos with VLC -Because, Why Not--.md b/published/202207/20220625 Download YouTube Videos with VLC -Because, Why Not--.md similarity index 100% rename from published/20220625 Download YouTube Videos with VLC -Because, Why Not--.md rename to published/202207/20220625 Download YouTube Videos with VLC -Because, Why Not--.md diff --git a/published/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md b/published/202207/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md similarity index 100% rename from published/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md rename to published/202207/20220627 How to Install Docker And Docker Compose In Ubuntu 22.04 LTS.md diff --git a/published/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md b/published/202207/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md similarity index 100% rename from published/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md rename to published/202207/20220627 Kuro- An Unofficial Microsoft To-Do Desktop Client for Linux.md diff --git a/published/20220627 Make a temporary file on Linux with Bash.md b/published/202207/20220627 Make a temporary file on Linux with Bash.md similarity index 100% rename from published/20220627 Make a temporary file on Linux with Bash.md rename to published/202207/20220627 Make a temporary file on Linux with Bash.md diff --git a/published/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md b/published/202207/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md similarity index 100% rename from published/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md rename to published/202207/20220628 HandBrake- Free Tool for Converting Videos from Any Format.md diff --git a/published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md b/published/202207/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md similarity index 100% rename from published/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md rename to published/202207/20220629 Finding Your Router-s IP Address -Default Gateway- in Ubuntu and Other Linux.md diff --git a/published/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md b/published/202207/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md similarity index 100% rename from published/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md rename to published/202207/20220630 6 New Changes Coming to Nautilus File Manager in GNOME 43.md diff --git a/published/20220630 Hide Files and Folders in Linux Without Renaming Them.md b/published/202207/20220630 Hide Files and Folders in Linux Without Renaming Them.md similarity index 100% rename from published/20220630 Hide Files and Folders in Linux Without Renaming Them.md rename to published/202207/20220630 Hide Files and Folders in Linux Without Renaming Them.md diff --git a/published/20220630 The Top Trends Changing The Data Center Industry.md b/published/202207/20220630 The Top Trends Changing The Data Center Industry.md similarity index 100% rename from published/20220630 The Top Trends Changing The Data Center Industry.md rename to published/202207/20220630 The Top Trends Changing The Data Center Industry.md diff --git a/published/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md b/published/202207/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md similarity index 100% rename from published/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md rename to published/202207/20220630 With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux.md diff --git a/published/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md b/published/202207/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md similarity index 100% rename from published/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md rename to published/202207/20220703 10 Necessary Ubuntu Apps For Everyone [Part 3].md diff --git a/published/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md b/published/202207/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md similarity index 100% rename from published/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md rename to published/202207/20220704 Darktable 4.0.0 is Here with a Revamped UI and Improved Color Saturation.md diff --git a/published/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md b/published/202207/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md similarity index 100% rename from published/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md rename to published/202207/20220704 Docker Commands Tutorial - Getting Started With Docker In Linux.md diff --git a/published/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md b/published/202207/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md similarity index 100% rename from published/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md rename to published/202207/20220704 Fixing -cannot find signatures with metadata for snap- Error in Ubuntu and other Linux.md diff --git a/published/20220704 Manage your files in your Linux terminal with ranger.md b/published/202207/20220704 Manage your files in your Linux terminal with ranger.md similarity index 100% rename from published/20220704 Manage your files in your Linux terminal with ranger.md rename to published/202207/20220704 Manage your files in your Linux terminal with ranger.md diff --git a/published/20220704 massCode- A Free and Open-Source Code Snippet Manager.md b/published/202207/20220704 massCode- A Free and Open-Source Code Snippet Manager.md similarity index 100% rename from published/20220704 massCode- A Free and Open-Source Code Snippet Manager.md rename to published/202207/20220704 massCode- A Free and Open-Source Code Snippet Manager.md diff --git a/published/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md b/published/202207/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md similarity index 100% rename from published/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md rename to published/202207/20220705 StarFighter- A Linux Laptop with a 4K 10-bit IPS Display is Coming Soon.md diff --git a/published/20220705 Why I love Tig for visualizing my Git workflows.md b/published/202207/20220705 Why I love Tig for visualizing my Git workflows.md similarity index 100% rename from published/20220705 Why I love Tig for visualizing my Git workflows.md rename to published/202207/20220705 Why I love Tig for visualizing my Git workflows.md diff --git a/published/20220707 Check disk usage in Linux.md b/published/202207/20220707 Check disk usage in Linux.md similarity index 100% rename from published/20220707 Check disk usage in Linux.md rename to published/202207/20220707 Check disk usage in Linux.md diff --git a/published/20220707 Google Summer of Code + Zephyr RTOS.md b/published/202207/20220707 Google Summer of Code + Zephyr RTOS.md similarity index 100% rename from published/20220707 Google Summer of Code + Zephyr RTOS.md rename to published/202207/20220707 Google Summer of Code + Zephyr RTOS.md diff --git a/published/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md b/published/202207/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md similarity index 100% rename from published/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md rename to published/202207/20220707 More Linux Developers Joining Microsoft, Systemd Creator Adds to the List.md diff --git a/published/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md b/published/202207/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md similarity index 100% rename from published/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md rename to published/202207/20220707 Raspberry Pi 4 Support is Coming to Fedora Linux.md diff --git a/published/20220707 Use secret keyboard keys on Linux.md b/published/202207/20220707 Use secret keyboard keys on Linux.md similarity index 100% rename from published/20220707 Use secret keyboard keys on Linux.md rename to published/202207/20220707 Use secret keyboard keys on Linux.md diff --git a/published/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md b/published/202207/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md similarity index 100% rename from published/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md rename to published/202207/20220708 Do You Miss Firefox Send- Internxt Send is Ready as a Replacement.md diff --git a/published/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md b/published/202207/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md similarity index 100% rename from published/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md rename to published/202207/20220708 Meet Free Software Foundation Executive Director Zoë Kooyman.md diff --git a/published/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md b/published/202207/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md similarity index 100% rename from published/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md rename to published/202207/20220708 Meta-s AI Model That Helps Overcome Language Barrier Is Now Open-Source.md diff --git a/published/20220709 Monitoring tiny web services.md b/published/202207/20220709 Monitoring tiny web services.md similarity index 100% rename from published/20220709 Monitoring tiny web services.md rename to published/202207/20220709 Monitoring tiny web services.md diff --git a/published/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md b/published/202207/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md similarity index 100% rename from published/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md rename to published/202207/20220710 How to Install yay AUR Helper in Arch Linux [Beginner-s Guide].md diff --git a/published/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md b/published/202207/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md similarity index 100% rename from published/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md rename to published/202207/20220711 7 Reasons Why Ubuntu 22.04 LTS is the Most Secure Release Yet.md diff --git a/published/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md b/published/202207/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md similarity index 100% rename from published/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md rename to published/202207/20220711 Manual Renewal of SSL Certificates- A Simple Guide.md diff --git a/published/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md b/published/202207/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md similarity index 100% rename from published/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md rename to published/202207/20220711 Nokia Targets An Amateur Linux Phone Project -NOTKIA- for a Name Change.md diff --git a/published/20220712 7 kinds of garbage collection for Java.md b/published/202207/20220712 7 kinds of garbage collection for Java.md similarity index 100% rename from published/20220712 7 kinds of garbage collection for Java.md rename to published/202207/20220712 7 kinds of garbage collection for Java.md diff --git a/published/20220712 List Upgradable Packages With apt Command in Ubuntu.md b/published/202207/20220712 List Upgradable Packages With apt Command in Ubuntu.md similarity index 100% rename from published/20220712 List Upgradable Packages With apt Command in Ubuntu.md rename to published/202207/20220712 List Upgradable Packages With apt Command in Ubuntu.md diff --git a/published/20220713 How I create music playlists on Linux.md b/published/202207/20220713 How I create music playlists on Linux.md similarity index 100% rename from published/20220713 How I create music playlists on Linux.md rename to published/202207/20220713 How I create music playlists on Linux.md diff --git a/published/20220714 5 ways to learn C programming on Linux.md b/published/202207/20220714 5 ways to learn C programming on Linux.md similarity index 100% rename from published/20220714 5 ways to learn C programming on Linux.md rename to published/202207/20220714 5 ways to learn C programming on Linux.md diff --git a/published/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md b/published/202207/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md similarity index 100% rename from published/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md rename to published/202207/20220714 Fixing -Command -python- not found- Error in Ubuntu Linux.md diff --git a/published/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md b/published/202207/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md similarity index 100% rename from published/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md rename to published/202207/20220716 Guide- How to Share A Folder Between Ubuntu-Linux and Windows.md diff --git a/published/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md b/published/202207/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md similarity index 100% rename from published/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md rename to published/202207/20220716 How to Install Deepin Desktop in Arch Linux [Complete Guide].md diff --git a/published/20220716 Listen to music on Linux with Rhythmbox.md b/published/202207/20220716 Listen to music on Linux with Rhythmbox.md similarity index 100% rename from published/20220716 Listen to music on Linux with Rhythmbox.md rename to published/202207/20220716 Listen to music on Linux with Rhythmbox.md diff --git a/published/20220718 Monitor your Linux firewall with nftwatch.md b/published/202207/20220718 Monitor your Linux firewall with nftwatch.md similarity index 100% rename from published/20220718 Monitor your Linux firewall with nftwatch.md rename to published/202207/20220718 Monitor your Linux firewall with nftwatch.md diff --git a/published/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md b/published/202207/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md similarity index 100% rename from published/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md rename to published/202207/20220719 How to Install Discord on Manjaro and Other Arch Linux Derivatives.md diff --git a/published/20220720 How much JavaScript do you need to know before learning ReactJS-.md b/published/202207/20220720 How much JavaScript do you need to know before learning ReactJS-.md similarity index 100% rename from published/20220720 How much JavaScript do you need to know before learning ReactJS-.md rename to published/202207/20220720 How much JavaScript do you need to know before learning ReactJS-.md diff --git a/published/20220720 What happens when you press a key in your terminal.md b/published/202207/20220720 What happens when you press a key in your terminal.md similarity index 100% rename from published/20220720 What happens when you press a key in your terminal.md rename to published/202207/20220720 What happens when you press a key in your terminal.md diff --git a/published/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md b/published/202207/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md similarity index 100% rename from published/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md rename to published/202207/20220721 Dell XPS 13 Plus -Developer Edition- Gets Certified for Ubuntu 22.04 LTS.md diff --git a/published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md b/published/202207/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md similarity index 100% rename from published/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md rename to published/202207/20220726 Debian May Consider Including Non-Free Firmware in Official Releases.md diff --git a/published/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md b/published/202207/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md similarity index 100% rename from published/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md rename to published/202207/20220727 Pop!_OS 22.04 Linux Distro is Finally Adding Raspberry Pi 4 Support.md diff --git a/published/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md b/published/202207/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md similarity index 100% rename from published/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md rename to published/202207/20220728 It-s Time to Ditch 32-Bit Linux for 64-Bit.md From f32908596f16b72ca767e8902e490f3977e4b200 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Aug 2022 17:09:51 +0800 Subject: [PATCH 0593/3123] ALL @wxy https://linux.cn/article-14884-1.html --- ...1 is Released and Available to Download.md | 128 ++++++++++++++++++ ...1 is Released and Available to Download.md | 127 ----------------- 2 files changed, 128 insertions(+), 127 deletions(-) create mode 100644 published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md delete mode 100644 sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md diff --git a/published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md b/published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md new file mode 100644 index 0000000000..e4c491c54c --- /dev/null +++ b/published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md @@ -0,0 +1,128 @@ +[#]: subject: "The Much Awaited Linux Mint 21 is Released and Available to Download" +[#]: via: "https://news.itsfoss.com/linux-mint-21-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14884-1.html" + +期待已久的 Linux Mint 21 发布 +====== + +> Linux Mint 终于发布了基于 Ubuntu 22.04 LTS 的 “Vanessa”,并带来了很多有用的改进。 + +![linux mint 21][1] + +Linux Mint 是 [最受欢迎的 Linux 发行版之一][2]。它使用 Ubuntu 作为其基础,特别是它基于 [长期支持][3] 的 Ubuntu 版本,以获得长达 5 年的软件支持。 + +现在,我们有一个新的版本升级,即 **Linux Mint 21 “Vanessa”**,它基于 4 月份最新发布的 [Ubuntu 22.04 LTS 版本][4]。因此,用户可以预期它的安全更新可以支持到 2027 年。 + +让我们来看看这个版本的亮点。 + +### Linux Mint 21 Vanessa 的新亮点 + +![][5] + +它采用了稳定的、改进的 [Linux 5.15 LTS 内核][6],Linux Mint 21 带来了一系列新的增加、变化和完善。 + +#### 现有用户的升级工具 + +![][7] + +现有的 Mint 20.3 用户可以使用新的基于 GUI 的升级工具轻松更新他们的系统。 + +用户会看到一个需要安装或升级的新软件包的列表,这也包括了对你可能手动添加的第三方 PPA 库的检查。 + +#### 新的蓝牙管理器 + +![][8] + +Blueman 现在取代了图形界面的 GNOME 蓝牙管理器 Blueberry。 + +之所以这样做,主要是因为 Blueman 提供了更多的功能和连接选项,以及对多种桌面环境的更好支持。此外,Blueman 的用户界面与 Linux Mint 完美地融合在一起。 + +Blueman 包括一些高级选项,可能大多数用户用不到,但它是一个好工具。 + +#### 新的进程监控托盘图标 + +![][9] + +不管是对于资深用户还是初级用户来说,一个非常有用的功能是引入了一个新的托盘图标,可以监控进程! + +这个托盘图标将通知用户是否有任何自动化进程(如更新和系统快照)在后台运行。 + +当系统变得缓慢时,Mint 用户将很容易知道该去哪里找到问题! + +#### 增强的缩略图支持 + +![][10] + +以前,一些文件类型没有任何缩略图显示,这样的用户体验不是很好。 + +为了解决这个问题,这个版本引入了一个新的项目 *xapp-thumbnails*,并为包括 AppImage、ePub、MP3、RAW 图片和 WebP 在内的文件类型带来了缩略图支持。 + +#### XApp 的改进 + +以前的 Timeshift 备份工具现在成为了一个 XApp,并由 Mint 团队正式维护。此外,在 rsync 模式下,如果快照导致磁盘上的可用空间少于 1GB,则会计算出下一次快照所需的空间并跳过下一次快照。 + +Xviewer、Warpinator、Thingy 和 WebApp 管理器也有了其他改进。 + +#### Cinnamon 5.4.2 + +Linux Mint 的旗舰桌面环境 Cinnamon 得到了良好的内部升级。 + +默认的窗口管理器 Muffin 现在重新基于较新的 Mutter 3.36 代码库开发。 + +窗口 UI 也有一些细微的改进,包括主题和动画。 + +![][11] + +### 其他增加的功能和改进 + +其他一些变化包括: + +* 改进了对 AppImage 的支持,这与 Ubuntu 22.04 不同 +* 目录中出现了一组新的漂亮的壁纸 + +你可以在我们专门的 [Linux Mint 21 功能][12] 文章中探索更多关于它的新亮点。 + +### 获取 Linux Mint 21 + +如果你正在使用 Mint 20.3,你应该能在几天内升级到 Mint 21。图形化的更新过程应该会在几天后出现。 + +你可以选择从 Linux Mint 的下载页面下载 ISO,进行全新安装。 + +> **[获取 Linux Mint 21][13]** + +如果你的网络速度慢或不稳定,你也可以 [用这个种子链接][14]。 + +享受新鲜的 Mint 吧 🙂 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-mint-21-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-mint-21-release.jpg +[2]: https://itsfoss.com/best-linux-distributions/ +[3]: https://itsfoss.com/long-term-support-lts/ +[4]: https://news.itsfoss.com/ubuntu-22-04-release/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-mint-21-new.jpg +[6]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[7]: https://news.itsfoss.com/wp-content/uploads/2022/07/upgradetool.webp +[8]: https://news.itsfoss.com/wp-content/uploads/2022/07/blueman.png +[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/monitor.png +[10]: https://news.itsfoss.com/wp-content/uploads/2022/07/thumbnails.png +[11]: https://news.itsfoss.com/wp-content/uploads/2022/07/animations.png +[12]: https://itsfoss.com/linux-mint-21-features/ +[13]: https://linuxmint.com/download.php +[14]: https://linuxmint.com/torrents/ diff --git a/sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md b/sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md deleted file mode 100644 index 9040360ead..0000000000 --- a/sources/news/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "The Much Awaited Linux Mint 21 is Released and Available to Download" -[#]: via: "https://news.itsfoss.com/linux-mint-21-release/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The Much Awaited Linux Mint 21 is Released and Available to Download -====== -Linux Mint finally shifts its base to Ubuntu 22.04 LTS with “Vanessa” and includes a lot of helpful upgrades. - -![linux mint 21][1] - -Linux Mint is [one of the most popular Linux distros][2] out there. Moreover, it uses Ubuntu as its base and particularly the [Long Term Support][3] releases for up to 5 years of software support. - -Now, we have a new version upgrade, i.e. **Linux Mint 21 “Vanessa”** based on the latest [Ubuntu 22.04 LTS release][4], which was released in April. Thus, users can expect security updates until 2027. - -Let’s take a look at the highlights of this release. - -### Linux Mint 21 Vanessa: What’s New? - -![linux mint][5] - -Along with the stable and improved [Linux 5.15 LTS kernel][6], Linux Mint 21 brings in a host of new additions, changes, and refinements. - -#### Upgrade Tool for Existing Users - -![Source: Linux Mint][7] - -Existing Mint 20.3 users can easily update their system using the new GUI-based upgrade tool. - -Users will be shown a list of new packages to be installed/upgraded. This also includes a check for third-party PPA repositories which you may have added manually. - -#### New Bluetooth Manager - -![Source: Linux Mint][8] - -Blueman will now replace the GUI for GNOME Bluetooth manager i.e Blueberry. - -The switch was done basically because Blueman simply offered more features, connectivity options, and better support for multiple desktop environments. Moreover, Blueman’s UI blends in perfectly well with Linux Mint. - -Blueman includes some advanced options that may be irrelevant to most users, but it is a good tool. - -#### New Process Monitor Tray icon - -![linux mint][9] - -A very useful feature for both power and basic users is the introduction of a new tray icon that monitors processes! - -The tray icon will notify users if any automated processes like updates and system snapshots are running in the background. - -Mint users will easily know where to look whenever their system gets slow! - -#### Enhanced Thumbnail Support - -![Source: Linux Mint][10] - -Previously, some file types did not have any thumbnails displayed. This wasn’t great for the user experience. - -To address it, this release introduces a new project *xapp-thumbnails*, and brings thumbnail support for file types that include AppImage, ePub, MP3, RAW pictures, and WebP. - -#### XApp Improvements - -The ever-present Timeshift, the backup utility, is now a XApp and is officially maintained by the Mint team. In addition, the required space for the next snapshot is calculated and skipped if the snapshot leads to less than 1GB of free space on the disk in rsync mode. - -Other improvements were also made to Xviewer, Warpinator, Thingy, and WebApp manager. - -#### Cinnamon 5.4.2 - -Linux Mint’s flagship desktop environment—Cinnamon—has received good under-the-hood upgrades. - -The default windows manager, Muffin, is now re-based on the newer Mutter 3.36 codebase. - -There were also subtle improvements to the window UI, including theming and animations. - -![Source: Linux Mint][11] - -### Other Feature Additions and Improvements - -Some other changes include: - -* Improved support for AppImage, unlike Ubuntu 22.04 -* A new set of beautiful wallpapers in the catalog. - -You can explore more about its new highlights in our dedicated [Linux Mint 21 features][12] article. - -### Getting Linux Mint 21 - -If you are using Mint 20.3, you should be able to upgrade to Mint 21 in a few days. A graphical update process should be revealed in a few days. - -You can opt for a fresh installation of Linux Mint by grabbing the ISO from its download page. - -[Get Linux Mint 21][13] - -You can also [get torrent links][14] if you have slow or inconsistent internet. - -Enjoy fresh Mint 🙂 - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-mint-21-release/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-mint-21-release.jpg -[2]: https://itsfoss.com/best-linux-distributions/ -[3]: https://itsfoss.com/long-term-support-lts/ -[4]: https://news.itsfoss.com/ubuntu-22-04-release/ -[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-mint-21-new.jpg -[6]: https://news.itsfoss.com/linux-kernel-5-15-release/ -[7]: https://news.itsfoss.com/wp-content/uploads/2022/07/upgradetool.webp -[8]: https://news.itsfoss.com/wp-content/uploads/2022/07/blueman.png -[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/monitor.png -[10]: https://news.itsfoss.com/wp-content/uploads/2022/07/thumbnails.png -[11]: https://news.itsfoss.com/wp-content/uploads/2022/07/animations.png -[12]: https://itsfoss.com/linux-mint-21-features/ -[13]: https://linuxmint.com/download.php -[14]: https://linuxmint.com/torrents/ From 98780240f9ebdbdff0307fca004f36a4e3c6dd29 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Aug 2022 18:18:00 +0800 Subject: [PATCH 0594/3123] RP @geekpi https://linux.cn/article-14885-1.html --- ...How to Uninstall Deb Packages in Ubuntu.md | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) rename {translated/tech => published}/20220719 How to Uninstall Deb Packages in Ubuntu.md (64%) diff --git a/translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md b/published/20220719 How to Uninstall Deb Packages in Ubuntu.md similarity index 64% rename from translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md rename to published/20220719 How to Uninstall Deb Packages in Ubuntu.md index 13cd2ae86e..0ebafe6d07 100644 --- a/translated/tech/20220719 How to Uninstall Deb Packages in Ubuntu.md +++ b/published/20220719 How to Uninstall Deb Packages in Ubuntu.md @@ -3,27 +3,28 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14885-1.html" -如何在 Ubuntu 中卸载 Deb 包 +如何在 Ubuntu 中卸载 deb 包 ====== -[从 deb 文件安装应用][1]非常简单。双击它,它会在软件中心中打开,然后从那里安装它。 -但是如何在 Ubuntu 或 Debian 中卸载 .deb 包呢?你如何删除一段时间前安装的软件包。 +[从 .deb 文件安装应用][1] 非常简单。双击它,它会在软件中心中打开,然后从那里安装它。 -虽然这有几个如果和但是,但删除 deb 文件的最简单和最可靠的方法是使用 apt remove 命令。 +但是如何在 Ubuntu 或 Debian 中卸载 deb 包呢?如何删除一段时间前安装的软件包呢。 + +虽然这有几个如果和但是,但删除 .deb 文件的最简单和最可靠的方法是使用 `apt remove` 命令。 ``` sudo apt remove program_name ``` -如你所见,**你需要在这里知道确切的包名称**。这可能并不总是直截了当的。例如,如果你在 Ubuntu 上安装 Google Chrome,则该程序在命令行中称为 “google-chrome-stable”。你已经知道了吗?我猜不是。 +如你所见,**你需要在这里知道确切的包名称**。这可能并不总是显而易见的。例如,如果你在 Ubuntu 上安装 Google Chrome,则该程序在命令行中称为 “google-chrome-stable”。你已经知道了吗?我猜你不知道。 -在本教程中,我将详细介绍如何找到确切的包名称,然后使用它来删除应用。我还将讨论使用图形方法删除 .deb 包。 +在本教程中,我将详细介绍如何找到确切的包名称,然后使用它来删除应用。我还将讨论使用图形方法删除 deb 包。 -### 从 Ubuntu 中删除通过 deb 文件安装的软件包 +### 从 Ubuntu 中删除通过 .deb 文件安装的软件包 在我向你展示如何从命令行删除 deb 包之前,让我们在软件中心应用中快速查看它。 @@ -35,11 +36,11 @@ Ubuntu 有软件中心 GUI 应用,允许搜索、安装和删除应用。 ![Searching for installed applications may not show any results in Ubuntu Software Center][2] -但是,如果向下滚动,你仍可能在“已安装”部分下找到它。外部应用通常不带 logo 显示。 +但是,如果向下滚动,你仍可能在“已安装”部分下找到它。外部应用通常不带徽标显示。 ![Some installed applications can be found in the ‘installed’ tab of the Software Center][3] -如果找到它,你可以通过单击垃圾桶图标或删除按钮来删除该应用。 +如果找到它,你可以通过单击“垃圾桶”图标或“删除”按钮来删除该应用。 ![Removing applications from the Ubuntu software center][4] @@ -47,9 +48,9 @@ Ubuntu 有软件中心 GUI 应用,允许搜索、安装和删除应用。 #### 方法 2:使用 apt 命令删除应用 -我假设你不知道应用命令的确切名称。你可能不知道 Google Chrome 安装为 google-chrome-stable 而 Edge 安装为 microsoft-edge-stable,这是很自然的。 +我假设你不知道该应用命令的确切名称。你可能不知道 Google Chrome 安装为 google-chrome-stable 而 Edge 安装为 microsoft-edge-stable,这很正常。 -如果你有前几个字母,那么 tab 补全可能会有所帮助。否则,你可以[使用 apt 命令列出已安装的应用][5] 并使用 grep 搜索应用程序名称: +如果你知道前几个字母,那么 tab 补全可能会有所帮助。否则,你可以 [使用 apt 命令列出已安装的应用][5] 并使用 `grep` 搜索应用程序名称: ``` apt list --installed | grep -i possible_package_name @@ -71,21 +72,21 @@ apt list --installed | grep -i chrome apt info exact_package_name ``` -获得确切的软件包名称后,你可以使用 apt remove 命令将其删除。 +获得确切的软件包名称后,你可以使用 `apt remove` 命令将其删除。 ``` sudo apt remove exact_package_name ``` -你还可以使用 apt-get remove 或 dpkg uninstall 命令。 +你还可以使用 `apt-get remove` 或 `dpkg uninstall` 命令来删除。 -![Removing applications installed via deb files using the apt command][7] +![Removing applications installed via .deb files using the apt command][7] #### 方法 3:使用 Synaptic 包管理器删除 deb 应用 -另一种方法是使用 [Synaptic 包管理器][8]。在 GNOME 以软件中心的形式创建其图形包管理器之前,Synaptic 是 Ubuntu 和许多其他发行版中的默认 GUI 包管理器。 +另一种方法是使用 [Synaptic 包管理器][8]。在 GNOME 以“软件中心”的形式创建其图形包管理器之前,Synaptic 是 Ubuntu 和许多其他发行版中的默认 GUI 包管理器。 -它仍然是 [Xfce 桌面环境][9]上的推荐工具。 +它仍然是 [Xfce 桌面环境][9] 上的推荐工具。 首先安装它: @@ -99,9 +100,9 @@ sudo apt install synaptic ### 对你有帮助吗? -我非常乐意使用 apt 命令删除从 .deb 文件中安装的软件包。但我可以理解,并不是每个人都喜欢使用命令行。 +我非常乐意使用 `apt` 命令删除从 .deb 文件中安装的软件包。但我可以理解,并不是每个人都喜欢使用命令行。 -在删除从外部 deb 文件安装的应用时,我发现软件中心中缺失。它可以在这里做得更好。 +在删除从外部 .deb 文件安装的应用时,我发现软件中心中找不到它。软件中心还可以做的更好一些。 我希望你现在对删除 deb 包有更好的了解。如果你有任何问题,请告诉我。 @@ -112,7 +113,7 @@ via: https://itsfoss.com/uninstall-deb-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/) 荣誉推出 From e0c8d5868d238f5c5c2a7705a7c085b8a8bdf564 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Aug 2022 18:18:51 +0800 Subject: [PATCH 0595/3123] R --- published/20220719 How to Uninstall Deb Packages in Ubuntu.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/published/20220719 How to Uninstall Deb Packages in Ubuntu.md b/published/20220719 How to Uninstall Deb Packages in Ubuntu.md index 0ebafe6d07..5f4040f977 100644 --- a/published/20220719 How to Uninstall Deb Packages in Ubuntu.md +++ b/published/20220719 How to Uninstall Deb Packages in Ubuntu.md @@ -10,6 +10,8 @@ 如何在 Ubuntu 中卸载 deb 包 ====== +![](https://img.linux.net.cn/data/attachment/album/202208/01/180906afaqifcsqqsfsxyq.jpg) + [从 .deb 文件安装应用][1] 非常简单。双击它,它会在软件中心中打开,然后从那里安装它。 但是如何在 Ubuntu 或 Debian 中卸载 deb 包呢?如何删除一段时间前安装的软件包呢。 From 98229aaf9f2dadf111aedd8f195f76fa6ecb5f78 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 1 Aug 2022 18:44:13 +0800 Subject: [PATCH 0596/3123] RP @perfiffer https://linux.cn/article-14886-1.html --- ...se the Linux fmt command to format text.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) rename {translated/tech => published}/20220721 How I use the Linux fmt command to format text.md (68%) diff --git a/translated/tech/20220721 How I use the Linux fmt command to format text.md b/published/20220721 How I use the Linux fmt command to format text.md similarity index 68% rename from translated/tech/20220721 How I use the Linux fmt command to format text.md rename to published/20220721 How I use the Linux fmt command to format text.md index fd8db7c9b7..878a820f83 100644 --- a/translated/tech/20220721 How I use the Linux fmt command to format text.md +++ b/published/20220721 How I use the Linux fmt command to format text.md @@ -3,16 +3,18 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "perfiffer" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14886-1.html" 我是如何使用 Linux fmt 命令来格式化文本 - ====== -fmt 命令是一个简单的文本格式化程序。我将在这里展示如何使用它来格式化文本和邮件回复。 -当我为项目编写文档时,我经常以纯文本的形式编写自述文件和安装说明。我不需要使用 HTML 或者 Markdown 之类的标记语言来描述项目的功能或如何编译它。但是维护此文档可能会很痛苦。如果我需要在我的 `Readme` 文件中更新一个句子的中间位置,我需要重新格式化文本,这样我就不会在我的其它文本中间出现一个很长或很短的行,否则它会被格式化为 75 列。一些编辑器包含可以自动重新格式化文本以填充段落的功能,但并非所有的编辑器都这样做。这就是 Linux `fmt` 命令的用武之地。 +![](https://img.linux.net.cn/data/attachment/album/202208/01/184300zbyfjayeyqa5pmcb.jpg) + +> fmt 命令是一个简单的文本格式化程序。我将在这里展示如何使用它来格式化文本和邮件回复。 + +当我为项目编写文档时,我经常以纯文本的形式编写自述文件和安装说明。我不需要使用 HTML 或者 Markdown 之类的标记语言来描述项目的功能或如何编译它。但是维护这样的文档可能会很痛苦。如果我需要更新我的 `Readme` 文件中的一个句子的中间位置,我需要重新格式化文本,以避免在我的其它文本中间出现一个很长或很短的行,而其它的行的格式是整整齐齐的 75 列。一些编辑器包含可以自动重新格式化文本以填充段落的功能,但并非所有的编辑器都这样做。这就是 Linux `fmt` 命令的用武之地。 ### 使用 Linux fmt 命令格式化文本 @@ -30,8 +32,7 @@ civilizations. To boldly go where no one has gone before! ``` -在这个实例文件中,每行都有不同的长度,并且它们以一种奇怪的方式被分割。如果你对纯文本文件进行大量更改,你可以会遇到类似的奇怪的换行。要重新格式化此文本,你可以使用 `fmt` 命令将段落的行填充为统一长度: - +在这个实例文件中,每行都有不同的长度,并且它们以一种奇怪的方式换行。如果你对纯文本文件进行大量更改,你可以会遇到类似的奇怪的换行。要重新格式化此文本,你可以使用 `fmt` 命令将段落的行填充为统一长度: ``` $ fmt trek.txt @@ -53,9 +54,9 @@ civilizations. To boldly go where no one has gone before! ### 使用 Linux fmt 命令格式化电子邮件回复 -我参与了一个邮件列表,我们更喜欢纯文本电子邮件。这使得在列表服务器上归档电子邮件变得更加容易。但现实并非每个人都以纯文本形式发送电子邮件。有时候,当我以纯文本形式回复这些电子邮件时,我的电子邮件客户端会将整个段落放在一行中。这使得在电子邮件中“引用”回复变得困难。 +我加入了一个邮件列表,这里更喜欢纯文本电子邮件,这使得在列表服务器上归档电子邮件变得更加容易。但现实是并非每个人都以纯文本形式发送电子邮件。有时候,当我以纯文本形式回复这些电子邮件时,我的电子邮件客户端会将整个段落放在一行中。这使得在电子邮件中“引用”回复变得困难。 -这是一个简单的例子。当我以纯文本形式回复电子邮件时,我的电子邮件客户端通过在每行前添加 `>` 字符来”引用“对方的电子邮件。对于一条短消息,可能如下所示: +这是一个简单的例子。当我以纯文本形式回复电子邮件时,我的电子邮件客户端通过在每行前添加 `>` 字符来“引用”对方的电子邮件。对于一条短消息,可能如下所示: ``` > I like the idea of the interim development builds. @@ -78,7 +79,7 @@ $ fmt -p '>' email.txt > great way to test new changes that everyone can experiment with. ``` -`fmt` 命令是一个非常简单的文本格式化程序,但它可以做很多有用的事情,有助于以纯文本形式编写和更新文档。探索其它选项,例如 `-c` 或 `--crown-margin` 以匹配段落前两行缩进,例如项目符合列表。还可以尝试使用 `-t` 或者 `--tagged-paragraph` 来保留段落中第一行的缩进,就像缩进的段落一样。`-u` 或 `--uniform-spacing` 选项在单词之间使用一个空格,在句子之间使用两个空格。 +`fmt` 命令是一个非常简单的文本格式化程序,但它可以做很多有用的事情,可以帮助以纯文本形式编写和更新文档。要了解其它选项,例如 `-c` 或 `--crown-margin` 以匹配段落前两行缩进,例如项目列表。还可以尝试使用 `-t` 或者 `--tagged-paragraph` 来保留段落中第一行的缩进,就像缩进的段落一样。`-u` 或 `--uniform-spacing` 选项在单词之间使用一个空格,在句子之间使用两个空格。 -------------------------------------------------------------------------------- @@ -86,8 +87,8 @@ via: https://opensource.com/article/22/7/fmt-trivial-text-formatter 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/perfiffer) -校对:[校对者ID](https://github.com/校对者ID) +译者:[perfiffer](https://github.com/perfiffer) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a9dc4bfeb97212a5dd2a0ceedb9af3da934c4480 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 20:19:12 +0800 Subject: [PATCH 0597/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 10 Features of Linux Mint 21 -Vanessa-.md | 190 ------------------ 1 file changed, 190 deletions(-) delete mode 100644 sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md diff --git a/sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md b/sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md deleted file mode 100644 index ecf4f83c5b..0000000000 --- a/sources/tech/20220731 Top 10 Features of Linux Mint 21 -Vanessa-.md +++ /dev/null @@ -1,190 +0,0 @@ -[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" -[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Features of Linux Mint 21 “Vanessa” -====== -We round up the top features of the upcoming Linux Mint 21 “Vanessa”. Find out what’s in store for you. - -![][0] - -![Linux Mint 21 Cinnamon Desktop][1] - -Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. - -I have summarized all of them in this list of top features of Linux Mint 21. - -### Top Features of Linux Mint 21 “Vanessa” - -#### 1. Ubuntu 22.04 and associated updates - -Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. - -Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. - -#### 2. Major changes in the Timeshift backup tool - -A few months back, the Mint team [announced][5] that they are taking over developing the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? - -Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. - -![Timeshift creating snapshot][7] - -With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. - -#### 3. WebP Support - -WebP image is a reasonably new image format created by Google for the web. It brings better compression and reduced size while maintaining good quality to traditional JPEG or PNG images. - -WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. - -That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always thinks about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: - -* ePub -* MP3 with Album Arts -* RAW Images -* AppImage - -#### 4. Process Monitor - -A small but handy process monitor tool will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. Your system may become slow in those situations, and this nifty icon can show you why. - -#### 5. Improved printing support - -Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. - -In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. - -All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. - -It’s good to see that the mint team contributed to this critical functionality. - -#### 6. Window Animation updates - -There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, separate sections gave more granular control of the animations. - -Here’s a side-by-side view. - -![][12] - -![][13] - -Secondly, the mapping windows and desktop effects options are removed. - -Third, a new control changes the animation speed from slower to faster. - -Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. - -I believe this is a well-designed dialog and advanced options for better clarity. - -#### 7. Mutter rebase - -Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). - -Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. - -Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. - -#### 8. Window manager and GTK Themes - -With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. - -Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. - -Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. - -On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. - -#### 9. Package Management updates - -Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. - -When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. - -If found, you get an error message that stops you from going further. - -On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. - -#### 10. Disable the Systemd OOMD (out-of-memory daemon) service - -The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. - -In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. - -With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. - -![Systemd OOMD service is not enabled][20] - -#### 11. Other Changes - -Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. - -* The default document reader app Xreader is now capable of minor annotation. This is a handy feature. -* The WebApp manager now brings custom browser parameters. -* Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. -* Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to the Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. - -![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] - -* The bulk renamer app Thingy gets some UI improvements. -* The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). -* The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. -* Finally, new wallpapers for your new desktop arrive in this release. - -![New Wallpapers in Linux Mint 21][23] - -### Things that are NOT changing - -From a very high level, you might feel that most of the Linux Mint 21 remains the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. - -### Wrapping Up - -Overall, a good set of features benefitting end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. - -You can download/update Linux Mint 21 from the [official website][24]. Also, stay tuned for our detailed distro review of Linux Mint 21 soon. - -What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/linux-mint-21-features/ - -作者:[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 -[0]: https://www.debugpoint.com/wp-content/uploads/2022/07/mint21feature.jpg -[1]: https://www.debugpoint.com/wp-content/uploads/2022/07/Linux-Mint-21-Cinnamon-Desktop.jpg -[2]: https://www.debugpoint.com/linux-mint/ -[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/linux-kernel-5-15/ -[5]: https://blog.linuxmint.com/?p=4323 -[6]: https://teejeetech.com/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg -[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ -[9]: https://github.com/linuxmint/xapp-thumbnailers -[10]: https://datatracker.ietf.org/doc/html/rfc8011 -[11]: https://www.debugpoint.com/tag/linux-distro-review/ -[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg -[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 -[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ -[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ -[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 -[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html -[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ -[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg -[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ -[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg -[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg -[24]: https://www.linuxmint.com/download.php From 6a8e0e23a5787c11d9cf19066646e138c8946d27 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 20:22:15 +0800 Subject: [PATCH 0598/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220801=20AI,=20ML=20and=20DL-=20What-s=20the=20Dif?= =?UTF-8?q?ference-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1 AI, ML and DL- What-s the Difference-.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 sources/tech/20220801 AI, ML and DL- What-s the Difference-.md diff --git a/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md b/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md new file mode 100644 index 0000000000..c8ccee2162 --- /dev/null +++ b/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md @@ -0,0 +1,62 @@ +[#]: subject: "AI, ML and DL: What’s the Difference?" +[#]: via: "https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/" +[#]: author: "Bala Kalavala https://www.opensourceforu.com/author/bala-kalavala/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +AI, ML and DL: What’s the Difference? +====== +We often use the terms artificial intelligence, machine learning and deep learning interchangeably, even though we read or hear about them almost each day. This article explains how these technologies evolved and in what ways they differ. + +![AI ML and DL What’s the Difference][1] + +Artificial intelligence (AI), machine learning (ML), and deep learning (DL) are often used interchangeably; however, they are not quite the same things. AI is the broadest concept of all, and gives a machine the ability to imitate human behaviour. ML is the application of AI into a system or machine, which helps it to self-learn and improve continually. Lastly, DL uses complex algorithms and deep neural networks to repetitively train a specific model or pattern. + +Let’s look at the evolution and journey of each term to get a better understanding of what AI, ML and DL actually refer to. + +#### Artificial intelligence + +AI has a come a long way since the last 70-odd years, infiltrating into every aspect of our life, whether we know it, and like it or not. Advancements in machine learning and deep learning over the last decade have created an AI boom across industries and organisations of all sizes. Cloud service providers have added to the momentum by developing open source services that are available for free and by offering new use cases. + +![Figure 1: Overview of AI, ML and DL][2] + +AI is perhaps the most worked upon concept since 1956. By 2015, the wide availability of GPUs made parallel processing faster, powerful and cheaper. Cheaper options led to humongous storage of Big Data (plain text to images, to mapping, etc). This created the need for data analytics, more popularly known as data science, leading to the evolution of machine learning as an approach to achieving artificial intelligence. + +#### Machine learning + +ML is the use of algorithms to process, learn and make sense or predict the pattern of available data. More recently, the low-code and no-code concepts of software development are being used in machine learning as self-learning processes that give specific instructions to accomplish particular tasks. The machine is ‘trained’ by using data and algorithms, giving it the ability to learn how to perform the task and, more importantly, apply the learning to evolve continuously. + +![Figure 2: Evolution of AI, ML and DL][3] + +ML was evolved when the developer community focused on AI, and then developed algorithmic decision-tree learning, logic programming, clustering, parallel processing and reinforcement learning. ML was evolved when the developer community focused on AI, and then developed algorithmic decision-tree learning, logic programming, clustering, parallel processing and reinforcement learning. These were all good steps in the right direction but not enough to solve use cases that were of interest to the world. + +#### Deep learning + +DL is an evolution of neural networks and machine learning, and the brainchild of the AI community. It learns about how the human mind works in specific scenarios, and then gets better at that job than humans! As an example, IBM’s Watson played chess against itself and improved at the game so much to eventually beat the world champion. Google’s AlphaGo also learnt how to play the Go board game by playing it over and over to better itself, and became the champion. + +AI, ML and DL are evolving continuously. It’s the intent of everyone involved with data science to advance these concepts to better our daily lives.  The good thing is that the open source community, private enterprises, scientists, and government agencies are all working together for this. + +![Figure 3: Types of AI, ML and DL][4] + +To conclude, while AI helps to create smart intelligent machines, ML helps to build AI-driven applications. DL is a subset of ML; it trains a specific model by leveraging complex algorithms for large volumes of data.  As narrow AI is extremely difficult to develop, ML is addressing the opportunities in this space with rigid computing. DL helps to bring AI and ML together, at least for realising general AI. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/ + +作者:[Bala Kalavala][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/bala-kalavala/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/AIML-and-DL-Whats-the-Difference.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Overview-of-AI-ML-and-DL.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Evolution-of-AI-ML-and-DL.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Types-of-AI-ML-and-DL.jpg From e19f5020e89dfc8f978901e5af10621128dfad5f Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 20:23:57 +0800 Subject: [PATCH 0599/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220801=20What=20Made=20Fedora=20Choose=20To=20Use?= =?UTF-8?q?=20CC0=20Licensed=20Code=20As=20The=20Boot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...se To Use CC0 Licensed Code As The Boot.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md diff --git a/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md new file mode 100644 index 0000000000..cb08fb17d5 --- /dev/null +++ b/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md @@ -0,0 +1,49 @@ +[#]: subject: "What Made Fedora Choose To Use CC0 Licensed Code As The Boot" +[#]: via: "https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What Made Fedora Choose To Use CC0 Licensed Code As The Boot +====== +![fedora-1024x614][1] + +Open source is a challenging concept. Many people interpret this to mean that they can use a specific piece of software however they choose and that it is free to download. The actual rights you as a user are granted, however, depend largely on which licence the developers chose to share their code under. Open source software can be expensive, can restrict how you can use it, and in rare circumstances, can even land you in legal trouble. + +The Fedora Project recently decided to reject all code that is licenced under the Creative Commons “Public Domain Dedication” CC0 licence in an effort to avoid precisely this situation. CC0 will soon be removed from the list of permissible code licences for all new submissions, however it will still be permitted for material like artwork and there might even be exceptions made for current packages on a case-by-case basis. + +It wouldn’t ordinarily make the news if Fedora objected to a software licence. In fact, the project rejects a number of licences that are on a fairly extensive list. The unexpected aspect of this situation is that CC0 was originally regarded as a valid licence, and is only now being reclassified as a result of a shift in perspective within the greater free and open source (FOSS) community. + +What exactly is wrong with CC0 that Fedora decided to stop supporting it, and does this indicate you shouldn’t use the licence for your own projects? + +The part of this narrative that may surprise those who are familiar with Creative Commons and its family of licences the most is that the Fedora Project formerly approved CC0 for software in the first place. After all, the goal from the beginning was to develop a range of licences expressly for artistic works. The organization’s mission and licence requirements are stated in the name itself. + +To “overcome legal hurdles to the sharing of information and creativity” by offering a free framework under which people and organisations might share things like music, artwork, or educational material, Creative Commons, the forerunner of the previous Open Content Project, was established in 2001. Software, however, was never a factor. Why might that be? At that time, important software licences like the MIT License and the GNU General Public License had already been around for more than ten years. + +It seems obvious that you should probably believe a company if they go out of their way to warn you that something they have made is unsuitable for a particular use. The Creative Commons FAQ lists a number of compelling arguments against using their licences for software, but one in particular jumps out for users like the Fedora Project: patent rights. + +This may seem contradictory given that the CC0 licence is meant for works in the public domain and that by using it, the creator expressly “waives all of his or her rights to the work globally under copyright law.” However, the issue is that copyright legislation does not apply to patents. In fact, a review of the license’s complete wording reveals that it directly tackles this in a worrying section that reads, “No trademark or patent rights held by Affirmer are waived, abandoned, relinquished, leased or otherwise modified by this document.” + +In other words, even while the author of something that has been licenced under CC0 may be willing to give up the rights to it, they are still free to patent it. What’s even worse is that they still retain the ability to use that patent however they see fit. Theoretically, this means that the creator of a piece of source code that was first made available under CC0 may later assert that anyone who utilised the code violated their patent and could demand royalties. + +It’s very obvious why something like this would worry the Fedora Project. Consider a scenario where CC0-licensed code is incorporated into a system’s core package and then made available to millions of users. Out of nowhere, the original creator appears, alleges patent violation, and wants payment. Could Red Hat’s or Fedora’s attorneys refute such a claim? Maybe. Is it worth it to use CC0 code in order to find out for sure? Zero chance. + +It’s important to note that this is not at anyway a new issue. In fact, back in 2012, the patent clause prevented the Open Source Initiative’s (OSI) License Review Committee from conclusively determining if CC0 genuinely complied with their definition of an open source licence. The Committee was unable to come to an agreement because its members believed that included such terms in a software licence would create a risky precedent. Fedora’s decision to ever accept CC0 in the first place is even more puzzling given its turbulent history. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/ + +作者:[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/08/fedora-1024x614-1-e1659346500461.jpg From c43f0bc77fe11b317ddbf5ceab59d580ff7856ac Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 20:26:05 +0800 Subject: [PATCH 0600/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220801=20Padloc-=20An=20Intuitive=20Open-Source=20?= =?UTF-8?q?Password=20Manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Intuitive Open-Source Password Manager.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md diff --git a/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md new file mode 100644 index 0000000000..78ac23caf3 --- /dev/null +++ b/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md @@ -0,0 +1,114 @@ +[#]: subject: "Padloc: An Intuitive Open-Source Password Manager" +[#]: via: "https://itsfoss.com/padloc/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Padloc: An Intuitive Open-Source Password Manager +====== +Brief: Exploring an open-source password manager with a pleasing user interface, available cross-platform. + +There are plenty of free and premium password managers for individuals and teams. + +However, when it comes to open-source solutions, it is often limited to a couple of good ones like [Seahorse][1], [KeePassXC][2], and [Bitwarden][3]. + +If you have read through our list of the [best password managers for Linux][4], you might already know some of them. + +I stumbled upon another interesting open-source password manager that could make it to that list for its user experience, i.e., **Padloc**. + +### Padloc: A Secure Cross-Platform Password Manager App + +![padloc screenshot][5] + +While Padloc is not super popular, it is not just another open-source password manager. + +You get a refreshing user experience with the app and end-to-end encryption to secure passwords. It aims to provide a clean and simple interface to work with. + +![padloc light mode][6] + +Free to start with, but offers paid subscriptions to unlock most features. + +And it supports all the major platforms, including Linux, Windows, macOS, Android, and iOS. + +You also get browser extensions for Mozilla Firefox and Google Chrome with all the available applications. So, you can always choose to access/use it on the web browser as well. + +Interestingly, the project did not see any major updates for almost two years until recently. But, it is an actively maintained open-source project. + +### Features of Padloc + +![padloc active sessions][7] + +Padloc offers a range of free and premium features. As per your requirements, you can choose to upgrade with a paid subscription. + +Some features include: + +* Unlimited vault items +* Unlimited devices +* Two-factor authentication via email +* Add tags +* Generate unique passwords +* Favicon support to identify vault items +* Dark/light mode theme +* Active session management +* Import/Export functionality (encrypted container/ CSV) +* Team support (paid) +* Multi-Factor Authentication (paid) +* Note-taking (paid) +* Document attachments (paid) +* Security report (paid) + +Technically, you get all the essential features. But, to make the most out of it, you will need the premium subscription that starts at **$3.49 per month or $34.9 per year**. + +### Install Padloc on Linux + +![padloc app screenshot 1][8] + +Padloc gives you multiple options for Linux. You can download the AppImage, .deb, Snap, or the Flatpak package. + +Furthermore, you can download a non-electron desktop client version, which is nice! + +I tested the AppImage file, and it worked well. You can follow our guide to [use AppIma][9][ge, set up Flatpak][10], or [install deb packages][11] to get started. + +You can check out its [official website][12] or [GitHub page][13] for more information. + +[Padloc][14] + +### A Slightly Expensive Password Manager for a Good User Experience + +I was impressed with its user interface and the overall experience you get with it. + +If you prioritize the user interface, minimalism, and open-source tech, Padloc can be a useful option, whether you decide to use it for free or pay. + +Of course, if you want something value for money (or cheaper), you can always pick something like [Bitwarden][15]. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/padloc/ + +作者:[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/seahorse/ +[2]: https://itsfoss.com/keepassxc/ +[3]: https://itsfoss.com/bitwarden/ +[4]: https://itsfoss.com/password-managers-linux/ +[5]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-screenshot.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-light-mode.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-active-sessions.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-app-screenshot-1.png +[9]: https://itsfoss.com/use-appimage-linux/ +[10]: https://itsfoss.com/flatpak-guide/ +[11]: https://itsfoss.com/install-deb-files-ubuntu/ +[12]: https://padloc.app/ +[13]: https://github.com/padloc/padloc +[14]: https://padloc.app/ +[15]: https://itsfoss.com/bitwarden/ From d372b8e766318f94b1a827751d30853d19dd232a Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 1 Aug 2022 20:27:30 +0800 Subject: [PATCH 0601/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220801=20Linus=20Torvalds=20Uses=20Apple=20MacBook?= =?UTF-8?q?=20Hardware=20to=20Release=20Linux=20Kernel=205.19.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...k Hardware to Release Linux Kernel 5.19.md | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md diff --git a/sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md b/sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md new file mode 100644 index 0000000000..59aaf1fb9b --- /dev/null +++ b/sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md @@ -0,0 +1,124 @@ +[#]: subject: "Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19" +[#]: via: "https://news.itsfoss.com/linux-kernel-5-19-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19 +====== +Linux Kernel 5.19 is introducing support for a new CPU architecture, along with improvements for next-gen components from Intel and AMD. + +![linux kernel][1] + +Three months after the [last kernel release][2], Linux Kernel 5.19 is finally here. This exciting release brings plenty of improvements to every aspect of the kernel and opens up opportunities with new hardware. + +The most interesting part is that the Linux creator Linus Torvalds used an Apple MacBook, the Arm version, to announce this release. + +Don’t get your pitchfork out just yet. Torvalds used [Asahi Linux][3], a project dedicated to adding Linux support to Apple’s Arm-based Silicon Macbooks. + +> On a personal note, the most interesting part here is that I did the release (and am writing this) on an arm64 laptop. It’s something I’ve been waiting for for a *loong* time, and it’s finally reality, thanks to the Asahi team. We’ve had arm64 hardware around running Linux for a long time, but none of it has really been usable as a development platform until now. + +That’s interesting. And this is the [third time][4] Torvalds used Apple hardware for Linux development. + +### Linux Kernel 5.19: What’s New? + +As with all previous releases, Linux Kernel 5.19 has a lot of technical changes. However, there are only a few major ones that will have a direct impact on users, so we will focus on those here. + +If you are interested in all the low-level code changes, you can refer to the official changelog. + +#### LoongArch CPU Architecture Support + +Over the past few years, it has been interesting to see Chinese chip manufacturers attempt to catch up to Intel and AMD. One way they have tried to do this is by creating their architectures, which are generally compatible with existing architectures. + +One of the more successful of these companies is **Loongson**. However, due to their new architecture, the software support for these CPUs was pretty limited. + +Starting with this release, these CPUs have initial support (it won’t work for booting) and will likely soon have packages ported to them. + +We should see more progress on this with Linux Kernel 5.20. + +#### 32-bit RISC-V Apps on 64-bit RISC-V + +As has been the case for the recent releases, Linux Kernel 5.19 greatly improves support for the open-source RISC-V architecture. This time, this comes in the form of allowing 32-bit RISC-V apps to run on 64-bit RISC-V systems. + +Very few 32-bit RISC-V CPUs can run Linux, meaning very few Linux packages are designed for them. And those packages already have 64-bit counterparts. + +Even if its usefulness is limited, it is good to see RISC-V being treated as a first-class architecture and getting more improvements to bring it closer to mainstream feasibility. + +#### Improved Arc Alchemist Support + +It’s no surprise that Intel’s initial Arc Alchemist GPU launch is a disaster so far, Linux Kernel 5.19 is the first release where you could assume these GPUs are usable on Linux. + +This release finally brings compute support to the Linux kernel. It is somewhat surprising this code was not merged earlier, but at least the support exists now. + +The other major Arc improvement is significantly better power management. This comes in the form of a small tweak in Linux’s PCIe subsystem that treats the Arc GPUs as unlimited, enabling PCI Express Active State Power Management in far more configurations. + +In essence, this change means that the GPU can now be put into an extremely low power mode when not in use, yielding some significant power savings. + +#### Improved ARM SoC Support + +This release brings support to several new ARM SoCs. This time around, 7 new SoCs have been added to the list, specifically: + +* Renesas RZ/G2UL (R9A07G043) +* Renesas RZ/V2M (R9A09G011) +* Renesas R-Car V4H (R8A779G0) +* Broadcom BCM47622 +* Corstone1000 +* Mediatek MT8195 (Kompanio 1200) +* NXP i.MXRT1050 + +In addition, Apple’s M1 chip also gained some improved support. This comes from a new driver for the on-chip NVMe controller. Now, users wanting to be able of NVMe storage on their Apple Silicon Macs are able to do so, thanks to the contribution by the Asahi Linux project. + +#### Significantly Reduced Boot Times For Azure VMs + +Azure users, you are in for a good improvement. Thanks to a contribution by Microsoft, Azure VMs using multiple GPUs can have as many as 3 minutes shaved off their boot times! + +To achieve this, Microsoft changed their PCI Hyper-V driver to avoid setting “PCI_COMMAND_MEMORY”, which stops the driver sending/receiving heaps of unnecessary data from each GPU, saving around 14 seconds of boot time per GPU. + +### Other Changes + +In addition to the ones I mentioned above, Linux Kernel 5.19 also includes + +* Raspberry Pi Sense Hat joystick driver +* Various BTRFS improvements +* New Intel IFS driver +* Intel Raptor Lake P graphics support. +* Alder lake improvements. +* Initial support for AMD RDNA3 graphics. +* Performance optimizations as reported by [Phoronix][5]. + +Overall, these changes make up for a pretty decent release. Although there aren’t any major changes, Linux Kernel 5.19 continues to build on the great work of the past few Linux releases. + +### How to Install Linux Kernel 5.19? + +If you are using Arch Linux or Fedora, you can easily upgrade shortly. But, if you are using other Linux distributions (Pop!_OS can be an exception to some extent), you may not receive an upgrade. + +So, if you are feeling adventurous (and know what you are doing), you can find the newer kernel listed on [Linux Kernel Archives][6]. You can download the [tarball][7] to test it out. + +However, we recommend waiting for your Linux distribution to push an update if you do not want to take any chances. It is best to stick to what’s being offered for your Linux distribution by default. + +[Linux Kernel Archives][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-5-19-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-kernel-5-19-released.jpg +[2]: https://news.itsfoss.com/linux-kernel-5-18-release/ +[3]: https://news.itsfoss.com/asahi-linux-alpha/ +[4]: https://lore.kernel.org/lkml/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/T/#u +[5]: https://www.phoronix.com/news/Linux-5.19-Features +[6]: https://www.kernel.org/ +[7]: https://git.kernel.org/torvalds/t/linux-5.19.tar.gz +[8]: https://www.kernel.org/ From 4cdb79449cb5072711b165abcc97a838463493d9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 2 Aug 2022 08:31:23 +0800 Subject: [PATCH 0602/3123] translated --- ...Update of Firefox snap- Error in Ubuntu.md | 115 ------------------ ...Update of Firefox snap- Error in Ubuntu.md | 115 ++++++++++++++++++ 2 files changed, 115 insertions(+), 115 deletions(-) delete mode 100644 sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md create mode 100644 translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md diff --git a/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md deleted file mode 100644 index 86e38cf325..0000000000 --- a/sources/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md +++ /dev/null @@ -1,115 +0,0 @@ -[#]: subject: "Fixing the “Pending Update of Firefox snap” Error in Ubuntu" -[#]: via: "https://itsfoss.com/pending-update-firefox-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fixing the “Pending Update of Firefox snap” Error in Ubuntu -====== - -If you are using Ubuntu 22.04, you might have received this notification. - -![Notification about pending Firefox app][1] - -It notifies you that the Firefox update is pending and asks you to close the app to avoid disruption. - -So, like a good obedient Ubuntu user, you close the Firefox browser when you have saved or finished your work. - -You think that Firefox was updated in the background and restarting the browser will run the newer version. - -Only, that is not the case here. - -**Even after you restart your browser or even your computer, it may still show the same “pending update of Firefox” notification.** - -Frustrating? I can relate. - -Let me explain why it is happening and what you can do to ‘fix’ it. - -### Fixing the ‘pending update of Firefox snap’ problem - -Earlier, Firefox used to update in the background and then required you to restart the browser. It would not have let you [open any website until you restarted the browser][2]. - -![Firefox forced restart in the past][3] - -After switching the [Firefox browser to Snap packaging by default][4], the Ubuntu team made some changes to the update process. - -This notification is part of that ‘improved user experience.’ Here, Firefox is not stopping you from browsing anymore. It asks you to restart the browser at your convenience to update. - -But why does it keep showing the notification even after your restart the browser or the system? - -Because it’s a poor notification message that doesn’t give you the complete information. - -#### Firefox update hasn’t even begun - -When you see the ‘pending Firefox update’ you wrongly presume that the application has been updated in the background and restart will upgrade it to the newer version. - -That’s the case here. The snap packages in Ubuntu refresh (update) automatically once or a couple of times a day. To avoid disruption of work where Firefox doesn’t let you browse anything until you restart to install the updates, Ubuntu doesn’t even update the Firefox Snap package in the background. - -Instead, when the Snap package refresh takes place, **it shows the notification and expects you to close the browser immediately**so it can be updated with other Snap packages. - -But that’s not what users like you and me can do, right? See the notification, and close the browser immediately? Not very convenient. - -But when you get the time to close the browser, the Snap refresh is not taking place to update the browser. - -You can see that a newer Snap version of Firefox is available but it won’t be installed automatically as long as Firefox is running. - -![Firefox snap won’t be updated automatically if the browser is running][5] - -#### Updating Firefox Snap - -Here’s what you need to do to get rid of the update notification that keeps on appearing daily. - -* Close the Firefox browser -* Manually run the Snap refresh (update the installed snap packages) - -Make sure that your work in the Firefox browser is saved. Now, close all the Firefox browsers using your mouse or run this command in the terminal: - -``` -sudo killall firefox -``` - -Now that Firefox is not running anymore, update the Snap package(s): - -``` -sudo snap refresh -``` - -You’ll see that it starts downloading the newer Firefox package. - -![Firefox is being updated with Snap][6] - -Once the update is finished, you’ll see the summary that Firefox has been upgraded to a newer version. - -![Updated Firefox snap version][7] - -### Conclusion - -Installing a non-Snap version of Firefox could also be the solution here but not everyone can go down that road. - -Firefox and Snap developers must come together to improve this ambiguous update process. They should provide a better mechanism that doesn’t only show the notification on pending updates but also gives the option to start the update. - -This is one of the many weird things we have seen with Ubuntu recently. This must change to make Ubuntu a beginner-friendly distribution (again). - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/pending-update-firefox-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/07/pending-update-firefox-ubuntu.png -[2]: https://news.itsfoss.com/mozilla-annoying-new-tab/ -[3]: https://itsfoss.com/wp-content/uploads/2022/07/firefox-restart.webp -[4]: https://news.itsfoss.com/ubuntu-firefox-snap-default/ -[5]: https://itsfoss.com/wp-content/uploads/2022/07/pending-Firefox-update-issue-Ubuntu.png -[6]: https://itsfoss.com/wp-content/uploads/2022/07/updating-firefox-snap-package-ubuntu.png -[7]: https://itsfoss.com/wp-content/uploads/2022/07/firefox-snap-update-ubuntu.png diff --git a/translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md new file mode 100644 index 0000000000..f697251778 --- /dev/null +++ b/translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md @@ -0,0 +1,115 @@ +[#]: subject: "Fixing the “Pending Update of Firefox snap” Error in Ubuntu" +[#]: via: "https://itsfoss.com/pending-update-firefox-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +修复 Ubuntu 中的 “Pending Update of Firefox snap” 错误 +====== + +如果你使用的是 Ubuntu 22.04,你可能已收到此通知。 + +![Notification about pending Firefox app][1] + +它会通知你 Firefox 更新正在等待中,并要求你关闭应用以避免中断。 + +因此,就像一个听话的 Ubuntu 用户一样,你在保存或完成工作后关闭 Firefox 浏览器。 + +你认为 Firefox 已在后台更新,重启浏览器将运行较新版本。 + +只是,这里不是这样。 + +**即使在你重启浏览器甚至计算机后,它仍可能显示相同的 “pending update of Firefox” 通知**。 + +令人沮丧么?我可以联系起来。 + +让我解释一下为什么会发生这种情况,以及你可以做些什么来“修复”它。 + +### 修复 “pending update of Firefox snap” 问题 + +早些时候,Firefox 曾经在后台更新,然后要求你重启浏览器。它不会让你[在重启浏览器之前打开任何网站][2]。 + +![Firefox forced restart in the past][3] + +在将 [Firefox 浏览器切换为默认 Snap 打包][4]后,Ubuntu 团队对更新流程进行了一些改动。 + +此通知是“改进的用户体验”的一部分。在这里,Firefox 不再阻止你浏览。它要求你在方便时重新启动浏览器以进行更新。 + +但是为什么即使在你重新启动浏览器或系统后它仍然显示通知? + +因为这是一条糟糕的通知消息,无法为你提供完整的信息。 + +#### Firefox 更新还没有开始 + +当你看到 “pending Firefox update” 时,你错误地认为应用已在后台更新,重启会将其升级到较新的版本。 + +这就是这里的情况。 Ubuntu 中的 snap 包每天会自动刷新(更新)一次或几次。为了避免在重新启动安装更新之前 Firefox 不允许你浏览任何内容而导致工作中断,Ubuntu 甚至不会在后台更新 Firefox Snap 包。 + +相反,当 Snap 包刷新时,**它会显示通知并希望你立即关闭浏览器**以便可以使用其他 Snap 包进行更新。 + +但这不是像你我这样的用户能做到的,对吧?看到通知,立即关闭浏览器?不是很方便。 + +但是,当你有时间关闭浏览器时,不会进行 Snap 刷新来更新浏览器。 + +你可以看到更新的 Snap 版本的 Firefox 可用,但只要 Firefox 正在运行,它就不会自动安装。 + +![Firefox snap won’t be updated automatically if the browser is running][5] + +#### 更新 Firefox Snap + +这是你摆脱每天不断出现的更新通知所需要做的事情。 + +* 关闭 Firefox 浏览器 +* 手动运行 Snap 刷新(更新已安装的 snap 包) + +确保你在 Firefox 浏览器中的工作已保存。现在,使用鼠标关闭所有 Firefox 浏览器或在终端中运行以下命令: + +``` +sudo killall firefox +``` + +现在 Firefox 不再运行,更新 Snap 软件包: + +``` +sudo snap refresh +``` + +你会看到它开始下载更新的 Firefox 包。 + +![Firefox is being updated with Snap][6] + +更新完成后,你将看到 Firefox 已升级到更新版本的摘要。 + +![Updated Firefox snap version][7] + +### 总结 + +安装非 Snap 版本的 Firefox 也可能是解决方案,但不是每个人都可以走这条路。 + +Firefox 和 Snap 的开发人员必须齐心协力改进这个模棱两可的更新过程。他们应该提供更好的机制,不仅显示待处理更新的通知,还提供启动更新的选项。 + +这是我们最近在 Ubuntu 上看到的许多奇怪的事情之一。这必须改变以使 Ubuntu 成为一个对初学者友好的发行版(再次)。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/pending-update-firefox-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/07/pending-update-firefox-ubuntu.png +[2]: https://news.itsfoss.com/mozilla-annoying-new-tab/ +[3]: https://itsfoss.com/wp-content/uploads/2022/07/firefox-restart.webp +[4]: https://news.itsfoss.com/ubuntu-firefox-snap-default/ +[5]: https://itsfoss.com/wp-content/uploads/2022/07/pending-Firefox-update-issue-Ubuntu.png +[6]: https://itsfoss.com/wp-content/uploads/2022/07/updating-firefox-snap-package-ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/firefox-snap-update-ubuntu.png From 45087a37319cd99f125bbda128809c25d34aee31 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 2 Aug 2022 08:33:35 +0800 Subject: [PATCH 0603/3123] translating --- ...o is an All-in-one Open Source eBook Reader App for Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md index 4eb3d9c6d7..1f2eab42f8 100644 --- a/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md +++ b/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/koodo-ebook-reader/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1269ae502d78e33d0a79323131473d8cf3addc32 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 2 Aug 2022 10:24:02 +0800 Subject: [PATCH 0604/3123] RP @geekpi https://linux.cn/article-14888-1.html --- ...y- An Open-Source Alternative to Notion.md | 91 ++++++++++--------- 1 file changed, 47 insertions(+), 44 deletions(-) rename {translated/tech => published}/20220718 AppFlowy- An Open-Source Alternative to Notion.md (50%) diff --git a/translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/published/20220718 AppFlowy- An Open-Source Alternative to Notion.md similarity index 50% rename from translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md rename to published/20220718 AppFlowy- An Open-Source Alternative to Notion.md index 8ca1a8041e..3775e83c7f 100644 --- a/translated/tech/20220718 AppFlowy- An Open-Source Alternative to Notion.md +++ b/published/20220718 AppFlowy- An Open-Source Alternative to Notion.md @@ -3,83 +3,86 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14888-1.html" AppFlowy:Notion 的开源替代品 ====== -简介:AppFlowy 旨在成为 Notion 的开源替代品,为你提供更好的隐私。让我们更多地探索它。 -虽然 Notion(项目管理/笔记工具)的功能非常出色,但它并不是一个开源解决方案。此外,它没有 Linux 桌面客户端。 +![](https://img.linux.net.cn/data/attachment/album/202208/02/102316f1g6p369uyeeybgo.jpg) -那么,对于 Linux 来说,更透明、更私密和可用的替代方案是什么? +> AppFlowy 旨在成为 Notion 的开源替代品,为你提供更好的隐私保护。让我们了解一下它。 + +虽然项目管理/笔记工具 Notion 功能非常出色,但它并不是一个开源解决方案。此外,它没有 Linux 桌面客户端。 + +那么,对于 Linux 用户来说,更透明、更私密和可用的替代方案是什么? 这就是 AppFlowy 大放异彩的地方! -AppFlowy 使用 Rust 和 Flutter 构建,遵循一种最小的方式来简化事情,但有足够的空间进行调整。 +AppFlowy 使用 Rust 和 Flutter 构建,遵循极简原则,但提供了足够的调整空间。 ### AppFlowy 是隐私和用户体验的完美结合 ![appflowy][1] -AppFlowy 是相当新的。我们在去年首次推出后[报告][2]了它的发展状况。 +AppFlowy 是相当新的。在它去年首次推出后,我们曾 [报告][2] 了它的发展状况。 -这是一个开源项目,旨在克服 [Notion][3] 在安全和隐私方面的一些限制。它可以帮助你管理任务、添加待办事项列表、添加截止日期、跟踪事件、添加页面以及为你的笔记/任务设置文本格式。 +这是一个开源项目,旨在克服 [Notion][3] 在安全和隐私方面的一些限制。它可以帮助你管理任务、添加待办事项列表、截止日期、跟踪事件、添加页面,以及为你的笔记/任务设置文本格式。 -但不仅仅是安全性。用户体验也很重要。而且,AppFlowy 在这方面做得很好,甚至比 Notion 更好。 +不仅仅是安全性。用户体验也很重要。而 AppFlowy 在这方面做得很好,甚至比 Notion 更好。 -请注意,该项目仍处于**测试阶段**。 +请注意,该项目仍处于 **测试阶段**。 -目前,该项目的目标不是更好的设计和功能,而是数据隐私、原生体验和社区驱动的机会。 +目前,该项目的目标不是提供更好的设计和功能,而是数据隐私、原生体验和社区驱动。 -#### Notion 与 AppFlowy:你的优先事项是什么? +### Notion 与 AppFlowy,如何选择? -虽然它旨在取代 Notion 作为开源解决方案,但它可能并不适合所有人。 +虽然它旨在作为取代 Notion 的开源解决方案,但它可能并不适合所有人。 因此,如果你要选择 AppFlowy 而不是 Notion,你将获得以下好处: -##### 透明度 +#### 透明度 -AppFlowy 是一个开源项目,因此随时欢迎你查看和修改代码。 +AppFlowy 是一个开源项目,因此你可以随时查看和修改代码。 -##### 隐私 +#### 隐私 -Notion 可以作为闭源软件直接访问你在云中的私有数据。与此相比,你可以根据自己的喜好托管 AppFlowy。 +作为闭源软件,Notion 可以直接访问你在云中的私有数据。与之相比,你可以根据自己的喜好自行托管 AppFlowy。 -你的所有个人数据都将保留在你身边,你可以完全控制它。开发人员还提到他们正在使用离线模式来为本地安装带来更好的支持。 +你的所有个人数据都将保留在你身边,你可以完全控制它。开发人员还提到他们正在使用离线模式来更好的支持本地安装。 -##### 性能和原生体验 +#### 性能和原生体验 -AppFlowy 使用 Rust 和 Flutter 构建,在提供现代用户体验的同时牢记性能。 +AppFlowy 使用 Rust 和 Flutter 构建,在提供现代用户体验的同时将性能置于优先位置。 不仅限于此,你还可以在 Linux 上获得良好的原生体验,这是 Notion 所没有的。 -### AppFlowy 的特点 +### AppFlowy 的功能 ![appflowy screenshot 1][4] -AppFlowy 在功能方面可能并不优越,但它确实提供了几个基本功能。 +AppFlowy 在功能方面可能并不优越,但它确实提供了基本的功能。 -随着开发的继续,您可以期待更多的功能添加。一些现有的亮点包括: +随着开发的继续,你可以期待它会添加更多的功能。一些现有的功能包括: -* 原生跨平台支持。 -* 能够自行托管或将其安装在你的计算机上。 -* 可定制性。 +* 原生的跨平台支持。 +* 能够自行托管或将其安装在你的本地计算机上。 +* 可定制。 * 数据隐私(重中之重)。 * 单一代码库,便于更好地维护。 * 社区驱动的可扩展性。 * 简约的用户界面。 -* 添加待办事项,管理任务。 -* 高亮文本和基本格式。 +* 可以添加待办事项、管理任务。 +* 文本高亮和基本的格式化。 * 用于编辑单元格/网格的键盘快捷键。 -* 深色模式支持。 +* 支持深色模式。 #### 在 Linux 上安装 AppFlowy -由于这仍处于测试阶段,它在默认仓库中不可用,并且没有任何维护的 PPA,也没有任何 Flatpak/Snap 包。 +由于它仍处于测试阶段,在默认仓库中还不可用,并且没有维护任何 PPA,也没有 Flatpak/Snap 包。 -但是,你可以通过给定的命令轻松安装 AppFlowy(仅在 Ubuntu 20.04 LTS 和 Arch X86_64 上测试): +但是,你可以通过给定的命令轻松安装 AppFlowy(仅在 Ubuntu 20.04 LTS 和 Arch X86_64 上测试过): ``` wget https://github.com/AppFlowy-IO/AppFlowy/releases/download/0.0.4/AppFlowy-linux-x86.tar.gz @@ -87,7 +90,7 @@ tar -xzvf AppFlowy-linux-x86.tar.gz cd AppFlowy ``` -要运行 AppFlowy,请使用给定的命令: +要运行 AppFlowy,请使用该命令: ``` ./app_flowy @@ -95,31 +98,31 @@ cd AppFlowy 要在你的系统菜单中注册 AppFlowy,你必须执行以下附加步骤: -首先,你必须更改 AppFlowy logo 的默认名称: +首先,你必须更改 AppFlowy 徽标的默认名称: ``` mv flowy_logo.svg app_flowy.svg ``` -现在,你必须将临时 Linux 桌面文件复制到可用的 Linux 桌面文件中。 +现在,你必须将 Linux 桌面文件模板复制为正式的 Linux 桌面文件。 ``` cp appflowy.desktop.temp app_flowy.desktop ``` -是时候对配置文件进行一些更改了。 +然后对配置文件进行一些更改。 ``` sudo nano appflowy.desktop ``` -在这里,你必须将 [CHANGE_THIS] 替换为图标和可执行文件的路径。 +在这里,你必须将 `[CHANGE_THIS]` 替换为图标和可执行文件的对应路径。 ![add location of icon and exec file][5] -使用 CTRL + O 保存更改并使用 CTRL + X 退出。 +使用 `CTRL + O` 保存更改并使用 `CTRL + X` 退出。 -最后,移动 desktop 文件,以便你的系统可以读取它。 +最后,移动桌面文件,以便你的系统可以读取它。 ``` mv app_flowy.desktop ~/.local/share/applications/. @@ -129,17 +132,17 @@ mv app_flowy.desktop ~/.local/share/applications/. ![appflowy in system menu][6] -无论哪种情况,你都可以查看 AppFlowy 的 [官方文档][7] 以从源代码构建它。在其官方网站上探索更多关于它的信息。 +无论哪种情况,你都可以查看 AppFlowy 的 [官方文档][7] 以从源代码构建它。在其官方网站上了解更多关于它的信息。 -[AppFlowy][8] +> **[AppFlowy][8]** ### 总结 如果你需要具有原生 Linux 体验的简单的类 Notion 应用,AppFlowy 是一个有趣的选择。 -考虑到它正在积极开发中并且远非 Notion 的完全替代品,你应该预期会出现错误/问题。 +考虑到它正在积极开发中,并且远非 Notion 的完全替代品,肯定会出现一些错误/问题。 -作为 Notion 的开源替代品?它可以工作!你可以使用它来管理任务、添加笔记和制作待办事项列表。 +作为 Notion 的开源替代品?它可以的!你可以使用它来管理任务、添加笔记和制作待办事项列表。 -------------------------------------------------------------------------------- @@ -148,7 +151,7 @@ via: https://itsfoss.com/appflowy/ 作者:[Sagar Sharma][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/) 荣誉推出 From c6386d2dfc5520506a84da090025870d1c4076ec Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 2 Aug 2022 11:58:07 +0800 Subject: [PATCH 0605/3123] RP @Yufei-Yan https://linux.cn/article-14889-1.html --- ...y components of observability in Python.md | 176 +++++++++++++++++ ...y components of observability in Python.md | 182 ------------------ 2 files changed, 176 insertions(+), 182 deletions(-) create mode 100644 published/20211122 7 key components of observability in Python.md delete mode 100644 translated/tech/20211122 7 key components of observability in Python.md diff --git a/published/20211122 7 key components of observability in Python.md b/published/20211122 7 key components of observability in Python.md new file mode 100644 index 0000000000..d577b7f35b --- /dev/null +++ b/published/20211122 7 key components of observability in Python.md @@ -0,0 +1,176 @@ +[#]: subject: "7 key components of observability in Python" +[#]: via: "https://opensource.com/article/21/11/observability-python" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lujun9972" +[#]: translator: "Yufei-Yan" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14889-1.html" + +Python 中可观测性的 7 个关键部分 +====== + +> 学习为什么 Python 中的可观测性很重要,以及如何在你的软件开发生命周期中实现它。 + +![](https://img.linux.net.cn/data/attachment/album/202208/02/115713cbml51nooltb21bx.jpg) + +你写的应用会执行很多代码,而且是以一种基本上看不到的方式执行。所以你是怎么知道: + + * 代码是否在运行? + * 是不是在正常工作? + * 谁在使用它,如何使用? + +可观测性是一种能力,可以通过查看数据来告诉你,你的代码在做什么。在这篇文章中,主要关注的问题是分布式系统中的服务器代码。并不是说客户端应用代码的可观测性不重要,只是说客户端往往不是用 Python 写的。也不是说可观测性对数据科学不重要,而是在数据科学领域的可观测性工具(大多是 Juptyter 和快速反馈)是不同的。 + +### 为什么可观测性很重要 + +所以,为什么可观测性重要呢?在软件开发生命周期(SDLC)中,可观测性是一个关键的部分。 + +交付一个应用不是结束,这只是一个新周期的开始。在这个周期中,第一个阶段是确认这个新版本运行正常。否则的话,很有可能需要回滚。哪些功能正常运行?哪些功能有细微的错误?你需要知道发生了什么,才能知道接下来要怎么做。这些东西有时候会以奇怪的方式不能正常运行。不管是天灾,还是底层基础设施的问题,或者应用进入了一种奇怪的状态,这些东西可能在任何时间以任何理由停止工作。 + +在标准 SDLC 之外,你需要知道一切都在运行中。如果没有,有办法知道是怎么不能运行的,这是非常关键的。 + +### 反馈 + +可观测性的第一部分是获得反馈。当代码给出它正在做什么的信息时,反馈可以在很多方面提供帮助。在模拟环境或测试环境中,反馈有助于发现问题,更重要的是,以更快的方式对它们进行分类。这可以改善在验证步骤中的工具和交流。 + +当进行金丝雀部署canary deployment或更改特性标志时,你需要知道是否要继续,还是等更长时间,或者回滚,反馈就显得很重要了。 + +### 监控 + +有时候你怀疑有些东西不太对。也许是一个依赖服务有问题,或者是社交网站爆出了大量你的网站的问题。也许在相关的系统中有复杂的操作,然后你想确保你的系统能完美处理。在这些情况下,你就想把可观测性系统的数据整合到控制面板上。 + +当写一个应用的时候,这些控制面板需要是设计标准的一部分。只有当你的应用能把数据共享给这些控制面板,它们才会把这些数据显示出来。 + +### 警报 + +看控制面板超过 15 分钟就像看着油漆变干一样。任何人都不应该遭受这种折磨。对于这种任务,我们要有报警系统。报警系统将可观测性数据与预期数据进行对比,当它们不匹配的时候就发出通知。完全深入研究时间管理超出了本文的范围。然而,从两方面来说,可观测应用是报警友好的alert-friendly: + + * 它们有足够多,足够好的数据,发出的警报才是高质量的。 + * 警报有足够的数据,或者接收者可以很容易的得到数据,这样有助于找到源头。 + +高质量警报有三个特点: + + * 较少的错报:如果有警报,那一定是有问题了。 + * 较少的漏报:如果有问题,那一定有警报触发。 + * 及时性:警报会迅速发出以减少恢复时间。 + +这三个特点是互相有冲突的。你可以通过提高监测的标准来减少错误警报,代价是增加了漏报。你也可以通过降低监测的门槛来减少漏报,代价是增加错报。通过收集更多数据,你也可以同时减少错报和漏报,而代价是降低了及时性。 + +同时改善这三个参数就更难了。这就要求高质量的可观测性数据。更高质量的数据可以同时改善这三个特点。 + +### 日志 + +有的人喜欢嘲笑用打印来调试的方法。但是,在一个大多数软件都不在你本机运行的世界里,你所能做的只有打印调试。日志记录就是打印调试的一种形式。尽管它有很多缺点,但 Python 日志库提供了标准化的日志记录。更重要的是,它意味着你可以通过这些库去记录日志。 + +应用程序要负责配置日志的记录方式。讽刺地是,在应用程序对配置日志负责了多年以后,现在越来越不是这样了。在现代容器编排orchestration环境中,现代应用程序记录标准错误和标准输出,并且信任编排orchestration系统可以合理的处理日志。 + +然而,你不应该依赖库,或者说,其他任何地方。如果你想让操作的人知道发生了什么,_使用日志,而不是打印_。 + +#### 日志级别 + +日志记录的一个最重要功能就是 _日志级别_。不同的日志级别可以让你合理的过滤并分流日志。但是这只有在日志级别保持一致的情况下才能做到。最后,你应该在整个应用程序中保持日志级别的一致性。 + +选择不兼容语义的库可以通过在应用层面的适当配置来追溯修复,这只需要通过使用 Python 中最重要的通用风格做到:`getLogger(__name-_)`。 + +大多数合理的库都会遵循这个约定。过滤器Filters可以在日志对象发出之前就地修改它们。你可以给处理程序附加一个过滤器,这个处理程序会根据名称修改消息,使其具有合适的级别。 + +``` +import logging +LOGGER=logging.getLogger(__name__) +``` + +考虑到这一点,你现在必须明确日志级别的语义。这其中有很多选项,但是下面这些是我的最爱: + + * `Error`:发送一个即时警告。应用程序处于一个需要操作人员引起注意的状态。(这意味着包含 `Critical` 和 `Error`) + * `Warning`:我喜欢把这些称作“工作时间警报”。这种情况下,应该有人在一个工作日内关注一下。 + * `Info`:这是在正常工作流程中发出的。如果怀疑有问题的时候,这个是用来帮助人们了解应用程序在做什么的。 + * `Debug`:默认情况下,这个不应该在生产环境中出现。在模拟环境或开发环境下,可以发出来,也可以不发。如果需要更多的信息,在生产环境也可以特地被打开。 + +任何情况下都不要在日志中包含个人身份信息Personal Identifiable Information(PII)或密码。无论日志级别是什么,都是如此,比如级别更改,激活调试级别等等。日志聚合系统很少是 PII 安全PII-safe的,特别是随着 PII 法规的不断发展(HIPAA、GDPR 等等)。 + +#### 日志聚合 + +现代系统几乎都是分布式的。冗余redundancy扩展性scaling,有时是管辖权jurisdictional需要更多的水平分布。微服务意味着垂直分布。登录到每个机器去查看日志已经是不现实的了。出于合理的控制原因,允许开发人员登录到机器中会给予他们更多的权限,这不是个好主意。 + +所有的日志都应该被发到一个聚合器。有一些商业的方案,你可以配置一个 ELK 栈,或者也可以使用其他的数据库(SQL 或则 no-SQL)。作为一个真正的低技术解决方案,你可以将日志写入文件,然后将它们发送到对象存储中。有很多解决方案,但是最重要的事情是选择一个,并且将所有东西聚合到一起。 + +#### 记录查询 + +在将所有东西记录到一个地方后,会有很多日志。具体的聚合器可以定义如何写查询,但是无论是通过从存储中搜索还是写 NoSQL 查询,记录查询以匹配源和细节都是很有用的。 + +### 指标抓取 + +指标抓取Metric Scraping是一个服务器拉取server pull模型。指标服务器定时和应用程序连接,并且拉取指标。 + +最后,这意味着服务器需要连接和找到所有相关的应用服务器。 + +#### 以 Prometheus 为标准 + +如果你的指标聚合器是 Prometheus,那么 [Prometheus][2] 格式做为一个端点endpoint是很有用的。但是,即使聚合器不是 Prometheus,也是很有用的。几乎所有的系统都包含与 Prometheus 端点兼容的垫片shim + +使用客户端 Python 库给你的应用程序加一个 Prometheus 垫片,这将使它能够被大多数的指标聚合器所抓取。当 Prometheus 发现一个服务器,它就期望找到一个指标端点。这经常是应用程序路由的一部分,通常在 `/metrics` 路径下。不管 Web 应用的平台是什么,如果你能在一个端点下运行一个定制类型的定制字节流,Prometheus 就可以将它抓取。 + +对于大多数流行的框架,总有一个中间件插件或者类似的东西收集指标,如延迟和错误率。通常这还不够。你需要收集定制的应用数据:比如,每个端点的缓存命中/缺失hit/miss率,数据库延迟,等等。 + +#### 使用计数器 + +Prometheus 支持多个数据类型。一个重要且巧妙的类型就是计数器。计数器总是在前进 —— 但有一点需要注意。 + +当应用重置,计数器会归零。计数器中的这些“历时epochs”通过将计数器“创建时间”作为元数据发送来管理。Prometheus 知道不去比较两个不同历时epochs的计数器。 + +#### 使用仪表值 + +仪表值会简单很多:它们测量瞬时值。用它们来测量会上下起伏的数据:比如,分配的总内存大小,缓存大小,等等。 + +#### 使用枚举值 + +枚举值对于整个应用程序的状态是很有用的,尽管它们可以以更精细的方式被收集。比如,你正使用一个功能门控feature-gating框架,一个有多个状态(比如,使用中、关闭、屏蔽shadowing 等)的功能,也许使用枚举会更有用。 + +### 分析 + +分析不同于指标,因为它们要对应连续的事件。比如,在网络服务器中,事件是一个外部请求及其产生的工作。特别是,在事件完成之前事件分析是不能被发送的。 + +事件包含特定的指标:延迟,数量,以及可能产生的对其他服务请求的细节,等等。 + +#### 结构化日志 + +现在一个可能的选择是将日志结构化。发送事件只发送带有正确格式的有效载荷payload的日志。这个数据可以从日志聚合器请求,然后解析,并且放入一个合适的系统,这样可以对它的可见性。 + +### 错误追踪 + +你可以使用日志来追踪错误,也可以用分析来追踪错误。但是一个专门的错误系统还是值得的。一个为错误而优化的系统可以发送更多的错误,因为错误毕竟还是罕见的。这样它就可以发送正确的数据,并且用这些数据,它能做更多智能的事情。Python 中的错误追踪系统通常和一般的异常处理关联,然后收集数据,并且把它发到一个专门的错误聚合器。 + +#### 使用 Sentry + +很多情况下,自己运行 Sentry 是正确的做法。当错误发生时,就说明有些东西就出问题了。可靠地删除敏感数据是不可能的,因为一定有会出现敏感数据被发送到不应该的地方。 + +通常,这种工作量并不会很大:异常并不常出现。最后,这个系统并不需要很高的质量,也不需要高可靠性的备份。昨天的错误应该已经修复了,希望如此,如果没有,你还会发现的! + +### 快速、安全、可重复:三者都要 + +可观测的系统开发起来更快,因为它们可以给你提供反馈。它们运行起来也更安全,因为当出问题的时候,它们也会更早的让你知道。最后,因为有反馈回路,可观测性也有助于围绕它构建可重复的过程。可观测性可以让你了解你的应用程序。而更了解它们,就胜利了一半。 + +#### 磨刀不误砍柴功 + +构建所有的可观测层是一件困难的事情。总会让人感觉是在浪费的工作,或者更像是“可以有,但是不急”。 + +之后再做这个可以吗?也许吧,但是不应该。正确的构建可观测性可以加速后面所有阶段的开发:测试、监控,甚至是培训新人。在一个和科技行业一样动荡的行业,减少培训新人的工作量绝对是值得的。 + +事实上,可观测性很重要,所以尽早把它写出来,然后就可以在整个过程中进行维护。反过来,它也会帮你维护你的软件。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/11/observability-python + +作者:[Moshe Zadka][a] +选题:[lujun9972][b] +译者:[MCGA](https://github.com/Yufei-Yan) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/moshez +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/search_find_code_python_programming.png?itok=ynSL8XRV (Searching for code) +[2]: https://opensource.com/article/21/7/run-prometheus-home-container diff --git a/translated/tech/20211122 7 key components of observability in Python.md b/translated/tech/20211122 7 key components of observability in Python.md deleted file mode 100644 index 4e69902fc4..0000000000 --- a/translated/tech/20211122 7 key components of observability in Python.md +++ /dev/null @@ -1,182 +0,0 @@ -[#]: subject: "7 key components of observability in Python" -[#]: via: "https://opensource.com/article/21/11/observability-python" -[#]: author: "Moshe Zadka https://opensource.com/users/moshez" -[#]: collector: "lujun9972" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -Python 中可观测性的 7 个关键组件 -====== - -学习为什么 Python 中的可观测行很重要,以及如何在你的软件开发生命周期中实现它。 -![Searching for code][1] - -你写的应用会执行很多代码,以一种看不到的方式。所以你是怎么知道: - - * 代码是否在运行? - * 是不是在正常工作? - * 谁在使用它,如何使用? - - -可观测性是一种可以通过查看数据来告诉你,你的代码在做什么的一种能力。在这篇文章中,主要关注的问题是分布式系统中的服务器代码。并不是说客户端应用代码的可观测性不重要,只是说客户端往往不是用 Python 写的。也不是说可观测性对数据科学不重要,而是在数据科学领域的可观测性工具(大多是 Juptyter 和快速反馈)是不同的。 - -### 为什么可观测性很重要 - -所以,为什么可观测性重要呢?在软件开发生命周期(SDLC)中,可观测性是一个关键的部分。 - -交付一个应用不是结束;这只是一个新周期的开始。在这个周期中,第一个阶段是确认这个新版本运行正常。否则的话,很有可能就需要回滚。哪个功能正常运行?哪些功能有小 bug?你需要知道发生了什么才能知道接下来要怎么做。这些东西有时候会以奇怪的方式不能正常运行。不管是天灾,还是底层基础设施的回滚,或者应用进入了一种奇怪的状态,这些东西可能在任何时间以任何理由停止工作。 - -在标准 SDLC 之外,你需要知道一切都在运行中。如果没有,有办法知道是怎么不能运行的,这是非常关键的。 - -### 反馈 - -可观测性的第一部分是获得反馈。当代码给出它正在做什么的信息时,反馈可以在很多方面提供帮助。在模拟环境或测试环境中,反馈有助于发现问题,更重要的是,以更快的方式对它们进行分类。这可以改善在验证步骤中的工具和交流。 - -当进行金丝雀部署canary deployment或更改特性标志时,你需要知道是否要继续,还是等更长时间,或者回滚,反馈就显得很重要了。 - -### 监控 - -有时候你怀疑有些东西不太对。也许是一个依赖服务有问题,或者是社交网站有大量关于你的网站的问题。也许在相关的系统中有复杂的操作,然后你想确保你的系统能完美处理。在这些情况下,你就想把可观测性系统的数据整合到控制面板上。 - -当写一个应用的时候,这些控制面板需要是设计标准的一部分。只有当你的应用能把数据共享给这些控制面板,它们才会把这些数据显示出来。 - -### 警报 - -每次看控制面板超过 15 分钟就像看油漆变干一样。任何人都不应该遭受这种折磨。对于这种任务,我们要有报警系统。报警系统将可观测性数据与预期数据进行对比,当它们不匹配的时候就发出通知。完全深入研究时间管理超出了本文的范围。然而,从两方面来说,可观测应用是报警友好的alert-friendly: - - * 它们有足够多,足够好的数据,发出的警报才是高质量的。 - * 警报有足够的数据,或者接收者可以很容易的得到数据,这样有助于找到源头 - - -高质量警报有三个特点: - - * 较少的错报:如果有警报,那一定是有问题了。 - * 较少的漏报:如果有问题,那一定有警报触发。 - * 及时性:警报会迅速发出以减少恢复时间。 - -这三个特点是互相有冲突的。你可以通过提高监测的标准来减少错误警报,代价是增加了漏报。你也可以通过降低监测的门槛来减少漏报,代价是增加错报。通过收集更多数据,你也可以同时减少错报和漏报,而代价是降低了及时性。 - -同时改善这三个参数就更难了。这就要求高质量的可观测性数据。更高质量的数据可以同时改善这三个特点。 - -### 日志 - -有的人喜欢嘲笑用打印来调试的方法。但是,在一个大多数软件都不在你本机运行的世界里,你所能做的只有打印调试。日志记录就是打印调试的一种形式。对于它的所有错误,Python 日志库允许标准话的日志记录。更重要的是,它意味着你可以通过这些库去记录日志。 - -应用程序要对配置日志如何记录负责。讽刺地是,在应用程序对配置日志负责了多年以后,现在越来越不是这样了。在现代容器编排orchestration环境中,现代应用程序记录标准错误和标准输出,并且信任编排orchestration系统可以合理的处理日志。 - -然而,你不应该依赖库,或者说,其他任何地方。如果你想让操作的人知道发生了什么,_使用日志,而不是打印_ - -#### 日志级别 - -日志记录的一个最重要功能就是 _日志级别_。不同的日志级别可以让你过滤并找到合适的日志。但是这只能在日志级别保持一致的情况下完成。最后,你应该在整个应用程序中保持日志级别的一致性。 - -在应用层面通过合理的配置,只需要这一点帮助,那些选择了不兼容语义的库就可以被修复。通过使用 Python 中最重要的通用风格:使用 `getLogger(__name-_)`。 - -大多数合理的库都会遵循这个约定。筛选器Filters可以在发出日志对象之前就地修改它们。你可以将筛选器附加到处理程序,这个处理程序会根据名称修改消息,使其具有合适的级别。 - -``` - -import logging - -LOGGER=logging.getLogger(__name__) - -``` - - -考虑到这一点,你现在必须明确日志级别的语义。这其中有很多选项,但是下面这些是我的最爱: - - * Error:立即发送一个警告。应用程序处于一个需要操作人员引起注意的状态。(这意味着有致命问题和错误) - * Warning:我喜欢把这些称作“工作时间警报”。这种情况下,应该有人在一个工作日内关注一下。 - * Info:这是在正常工作流程中发出的。如果怀疑有问题的时候,这个是用来帮助人们了解应用程序在做什么的。 - * Debug:默认情况下,这个不应该在生产环境中出现。在模拟环境或开发环境下,可以发出来,也可以不发。如果需要更多的信息,在生产环境也可以特地被打开。 - -任何情况下都不要在日志中包含个人信心(PII:Personal Identifiable Information)或密码。无论日志级别是什么,都要这么做,比如级别更改,激活调试级别等等。日志聚合系统很少是 PII 安全PII-safe的,特别是随着 PII 管理的进步(HIPAA,GDPR,以及其他的)。 - -#### 日志聚合 - -现代系统几乎都是分布式的。冗余redundancy扩展性scaling,有时是管辖权jurisdictional需要更多的水平分布。微服务意味着垂直分布。登录到每个机器去查看日志已经是不现实的了。出于合理的控制原因,允许开发人员登录到机器中会给予他们他多特权,这不是个好主意。 - -所有的日志都应该被发到一个聚合模块。有一些商业的方案,你可以配置一个 ELK 栈,或者也可以使用其他的数据库(SQL 或则 no-SQL)。作为一个技术含量很低的解决方案,你可以将日志写入文件,然后将他们发送到对象存储中。有很多解决方案,但是最重要的事情是选择一个并且将所有东西聚合到一起。 - -#### 日志查询 - -在将所有东西记录到一个地方后,会有很多日志。特定的聚合模块可以定义如何写查询,但是它是通过从存储中搜索还是写 NoSQL 的查询,日志查询以匹配源和详细信息是很有用的。 - -### 度量抓取Metric Scraping - -度量抓取是一个服务器拉取server pull模型。度量服务器定时和应用程序连接,并且拉取度量。 - -最后,这意味着服务器需要连接并且找到所有相关的应用服务器。 - -#### 以 Prometheus 为标准 - -如果你的度量聚合模块是 Prometheus,[Prometheus][2] 格式做为一个端点endpoint是很有用的。但是,即使聚合模块不是 Prometheus,也是很有用的。几乎所有的系统都包含与 Prometheus 端点兼容的垫片shim - -使用客户端 Python 库给你的应用程序加一个 Prometheus 垫片,这将使他能够被大多数的度量聚合器所抓取。当 Prometheus 发现一个服务器,它就期望找到一个度量端点。这经常是应用程序路由的一部分,通常在 `/metrics` 路径下。不管 web 应用的平台是什么,如果你能在一个端点下运行一个定制类型的定制字节流,Prometheus 就可以将它抓取。 - -对于大多数流行的框架,总有一个中间件插件或者类似的东西收集度量,像延迟和错误率。通常这还不够。你需要收集定制的应用数据:比如,每个端点的缓存命中/缺失hit/miss率,数据库延迟,等等。 - -#### 使用计数器 - -Prometheus 支持多个数据类型。一个重要且巧妙的类型就是计数器。计数器总是会现有一个警告。 - -当应用重置,计数器会归零。计数器中的这些“时期epochs”通过将计数器“创建时间”作为元数据发送来管理。Prometheus 知道不去比较两个时期epochs的计数器 - -#### 使用仪表 - -仪表会简单很多:他们测量瞬时值。用它们来测量会上下起伏的数据:比如,所有分配的内存,缓存大小,等等。 - -#### 使用枚举 - -枚举对于整个应用程序的状态是很有用的,尽管它们可以以更精细的方式被收集。比如,你正使用一个功能限制feature-gating框架,一个有多个状态(比如,使用中,关闭,屏蔽shadowing)的功能,也许使用枚举会更有用。 - -### 分析 - -分析不同于度量,因为它们要对应连续的事件。比如,在网络服务器中,一个事件是在请求和所有工作都完成之后的。特别是事件分析在事件完成之前是不能被发送的。 - -一个事件包含特定的度量:延迟,对其他服务请求的数量和可能的细节,等等。 - -#### 结构化日志 - -现在一个可能的选择是将日志结构化。发送事件只发送带有正确格式负载payload的日志。这个数据可以从日志聚合器请求,然后解析,并且放入一个合适的系统,这样可以对它进行可视化。 - -### 错误追踪 - -你可以使用日志去追踪错误,然后你可以用分析方法去追踪错误。但是一个专门的错误系统还是值得的。一个为错误优化的系统可以发送更多的错误,因为错误毕竟还是不多。这样它就可以发送正确的数据,并且用这些数据,它能做更多智能的事情。Python 中的错误追踪系统通常和一般的异常处理关联,然后收集数据,并且把它发到一个专门的错误聚合器。 - -#### 使用 Sentry - -很多情况下,自己运行 Sentry 是一个正确的事情。当一个错误发生时,有些东西就出问题了。可靠地删除敏感数据是不可能的,因为一定有会出现敏感数据被发送到不应该的地方。 - -通常,这种工作量并不会很大:异常并不常出现。最后,这个系统并不需要很高的质量,也不需要高可靠性的备份。但愿昨天的错误已经修复了,如果没有,你还会发现的! - -### 快速,安全,可重复:三者都要 - -可观测的系统可以开发的更快,因为它们可以给你提供反馈。它们运行起来也更安全,因为当出问题的时候,它们也会更早的让你知道。最后,因为有反馈循环,可观测性也有助于围绕它构建可重复的过程。可观测性可以让你了解你的应用程序。而更了解它们,就胜利了一半。 - -#### 前期的投入总会有回报 - -构建所有的可观测层是一件困难的事情。总会让人感觉是在浪费工作,或者更像是“可以有,但是不急”。 - -之后再做这个可以吗?也许吧,但是不应该。正确的构建可观测性可以加速后面所有阶段的开发:测试,监控,甚至是培训新人。在一个和科技行业一样动荡的行业,减少培训新人的工作量绝对是值得的。 - -事实上,可观测性很重要,所以尽早把它写出来,然后就可以在整个过程中进行维护。反过来,它也会帮你维护你的软件。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/11/observability-python - -作者:[Moshe Zadka][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[Yufei-Yan](https://github.com/Yufei-Yan) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/moshez -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/search_find_code_python_programming.png?itok=ynSL8XRV (Searching for code) -[2]: https://opensource.com/article/21/7/run-prometheus-home-container From d2bbe65fab180f4744c3cb1d0c0ec256b8323ad4 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 3 Aug 2022 05:02:38 +0800 Subject: [PATCH 0606/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220802?= =?UTF-8?q?=20Secure=20Boot=20Disabled=3F=20GNOME=20Will=20Soon=20Warn=20Y?= =?UTF-8?q?ou=20About=20it!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md --- ...bled- GNOME Will Soon Warn You About it.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md diff --git a/sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md b/sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md new file mode 100644 index 0000000000..8008de4c85 --- /dev/null +++ b/sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md @@ -0,0 +1,89 @@ +[#]: subject: "Secure Boot Disabled? GNOME Will Soon Warn You About it!" +[#]: via: "https://news.itsfoss.com/gnome-secure-boot-warning/" +[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Secure Boot Disabled? GNOME Will Soon Warn You About it! +====== + +When you install Linux on your UEFI-enabled computer, you have to disable _Secure Boot_ because the live USB will refuse to boot with the option enabled. + +Some mainstream Linux distributions support Secure Boot, but it is still challenging to set up for many other distributions (and with Nvidia hardware onboard). + +While things may not have improved over the years, Secure Boot is an essential protection feature in general. + +So, for the sake of convenience and make users aware of it, GNOME and Red Hat developers are working on notifying (or warning) the user if **Secure Boot** is disabled, as spotted by [Phoronix][1]. + +### How is it Useful? + +UEFI/Secure boot has been criticized for the DRM as it takes away the freedom from users. Many in the open source community still disagree with the implementation of UEFI/Secure Boot and TPM as it came as an inconvenience. This has given birth to projects like [Coreboot][2], flourishing in the open-source world. + +Of course, I would advise you to purchase new hardware with Coreboot support if you daily drive Linux, which is a different story. + +That said, it is safe to mention that Secure Boot is the easy way out. + +Secure Boot’s security is still debatable, considering the proprietary firmware bundled. But, it is a fundamental protection mechanism to secure the system’s firmware. + +So, the developers are preparing to show the warnings in [Plymouth][3] (boot splash screen), **GNOME Display Manager** (GDM), and **GNOME Control Center**. + +![Image Credits: GNOME Blog][4] + +One of the GNOME developers shared more details on it in a [blog post][5] while sharing some of these screenshots. + +![][6] + +A **Red Hat developer** mentions in the [merge request][7]: + +> Secure boot is used against several security threats when malware tries to infect the firmware of the system. Users may inadvertently disable or software may intentionally disable the secure boot. Consequently, the system is running on an insecure platform with incorrect configuration. If Plymouth could offer a warning to the user, the user could reboot and reconfigure their system or asks for help immediately. + +So, as a GNOME user, I think it should be interesting to see the difference it makes when it gets to the final release of GNOME 43 or any future releases. + +If you are curious, you can find this option under the **Device Security** section of the **Privacy** tab in GNOME Control Center, as shown in the screenshot below of my system running GNOME 43 alpha on Arch Linux: + +![][8] + +The menu can also show TPM, Intel BootGuard, and IOMMU protection details: + +![][9] + +It seems my system is not as secure as I thought… But maybe that’s the point of this feature? + +If you only used UEFI mode with your Linux distribution and had the protection features disabled for convenience, _could this make you aware of it?_ + +Probably. But, looking at the state of Linux distributions and the issues with enabling secure boot. I’m not confident if it would be that big of a deal. We shall find out soon. + +### How to Disable the Warnings? + +As mentioned in the [merge request][10] on GNOME Gitlab, adding `sb-check=false` to your kernel parameters will disable all these warnings. + +You do not need to worry about it as an end-user, though. + +_What do you think about this upcoming feature addition to GNOME 43 or later? What is your opinion about UEFI/Secure Boot?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-secure-boot-warning/ + +作者:[Anuj Sharma][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/anuj/ +[b]: https://github.com/lujun9972 +[1]: https://www.phoronix.com/news/GNOME-Secure-Boot-Warning +[2]: https://www.coreboot.org/ +[3]: https://gitlab.freedesktop.org/plymouth +[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxOSIgd2lkdGg9IjYxMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= +[5]: https://blogs.gnome.org/hughsie/2022/07/29/emulated-host-profiles-in-fwupd/ +[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjM1MiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ +[7]: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/176 +[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjcwOCIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ +[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3MiIgd2lkdGg9IjYyMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= +[10]: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2333 From 72b3ca29a755fbc7c5e9365a1f802011632581e9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 3 Aug 2022 08:26:19 +0800 Subject: [PATCH 0607/3123] translated --- ...9.0 on Ubuntu Based Linux Distributions.md | 119 ------------------ ...9.0 on Ubuntu Based Linux Distributions.md | 119 ++++++++++++++++++ 2 files changed, 119 insertions(+), 119 deletions(-) delete mode 100644 sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md create mode 100644 translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md diff --git a/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md deleted file mode 100644 index cd2956e21e..0000000000 --- a/sources/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions" -[#]: via: "https://itsfoss.com/install-latest-vim-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions -====== -Brief: This quick tutorial shows the steps for installing the latest version of Vim on Ubuntu Linux. - -Vim is one of the most [popular terminal-based text editors][1]. However, it is not installed by default on Ubuntu. - -Ubuntu uses Nano as the default terminal editor. Nano is also an excellent tool and I am not going into [Nano vs Vim debate][2]. - -If you have already spent some time mastering the Vim shortcuts, you don’t have to forget them and start using a new editor. - -You can install Vim on Ubuntu using the following command in the terminal: - -``` -sudo apt install vim -``` - -That’s quite simple, right? This approach’s major problem is that you won’t get the latest Vim version. - -You can check the installed Vim version with the following command: - -``` -vim --version -``` - -And if you check the [Vim website][3], you’ll find that Vim has newer versions released already. - -At the time of writing this article, [Vim 9.0 is released][4] but is not available in Ubuntu repositories yet. - -The good news is that you can install the latest Vim using an [unofficial but actively maintained PPA][5]. - -### Install Vim 9 on Ubuntu using a PPA - -If you have specific Vim configuration files, there is no harm in making a backup for them. - -Now, to install the latest Vim version, add the PPA repository first: - -``` -sudo add-apt-repository ppa:jonathonf/vim -``` - -![Adding the PPA to get the latest Vim version][6] - -You don’t need to update the package cache on Ubuntu but other distributions like Mint may still require it: - -``` -sudo apt update -``` - -Now, use the command below to install the latest Vim version offered by the PPA: - -``` -sudo apt install vim -``` - -If you had already an older Vim version installed, it would be upgraded. You can check the installed Vim version using: - -``` -vim --version -``` - -![Checking installed Vim version][7] - -This is a very well-maintained PPA and is available for all active Ubuntu versions. - -If you are new to this PPA thing, I have a detailed guide on this topic. You should read to learn more about the [concept of PPA in Ubuntu][8]. - -### Downgrade or remove it - -If you want to go back to the older Vim version provided by Ubuntu, you should remove the existing version, remove the PPA and install it again. - -Before removing Vim, you should copy the vimrc or other such config file if you had made custom changes and plan to use Vim again. - -Alright. Open a terminal and use the following command: - -``` -sudo apt remove vim -``` - -Now delete the PPA otherwise you’ll get the latest Vim again (if you try installing Vim for the older version): - -``` -sudo add-apt-repository -r ppa:jonathonf/vim -``` - -Now, if you want the old, official Ubuntu version of Vim, just install it again [using the apt command][9]. - -Enjoy Vim on Ubuntu. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-latest-vim-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/command-line-text-editors-linux/ -[2]: https://itsfoss.com/vim-vs-nano/ -[3]: https://www.vim.org/ -[4]: https://news.itsfoss.com/vim-9-0-release/ -[5]: https://launchpad.net/~jonathonf/+archive/ubuntu/vim -[6]: https://itsfoss.com/wp-content/uploads/2022/07/install-latest-vim-on-ubuntu-using-ppa.png -[7]: https://itsfoss.com/wp-content/uploads/2022/07/vim-9-ubuntu.png -[8]: https://itsfoss.com/ppa-guide/ -[9]: https://itsfoss.com/apt-command-guide/ diff --git a/translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md new file mode 100644 index 0000000000..3b3d4910e0 --- /dev/null +++ b/translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md @@ -0,0 +1,119 @@ +[#]: subject: "How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions" +[#]: via: "https://itsfoss.com/install-latest-vim-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在基于 Ubuntu 的 Linux 发行版上安装最新的 Vim 9.0 +====== +简介:这个快速教程展示了在 Ubuntu Linux 上安装最新版本的 Vim 的步骤。 + +Vim 是最[流行的基于终端的文本编辑器][1]之一。然而,它在 Ubuntu 上没有被默认安装。 + +Ubuntu 使用 Nano 作为默认的终端编辑器。Nano 也是一个优秀的工具,我不打算参与 [Nano 与 Vim 的辩论][2]。 + +如果你已经花了一些时间掌握了 Vim 的快捷键,你就不必忘记它们,而开始使用一个新的编辑器。 + +你可以在终端使用以下命令在 Ubuntu 上安装 Vim: + +``` +sudo apt install vim +``` + +这很简单,对吗?这种方法的主要问题是,你不会得到最新的Vim版本。 + +你可以用以下命令检查已安装的 Vim 版本: + +``` +vim --version +``` + +而如果你查看 [Vim 网站][3],你会发现 Vim 已经有较新的版本发布。 + +在写这篇文章的时候,[Vim 9.0 已经发布][4],但在 Ubuntu 仓库中还没有。 + +好消息是,你可以使用一个[非官方但积极维护的 PPA][5] 安装最新的 Vim。 + +### 使用 PPA 在 Ubuntu 上安装 Vim 9 + +如果你有特定的 Vim 配置文件,为它们做个备份也无妨。 + +现在,要安装最新的 Vim 版本,先添加 PPA 仓库: + +``` +sudo add-apt-repository ppa:jonathonf/vim +``` + +![Adding the PPA to get the latest Vim version][6] + +你不需要在 Ubuntu 上更新软件包缓存,但其他发行版如 Mint 可能仍然需要: + +``` +sudo apt update +``` + +现在,使用下面的命令来安装 PPA 提供的最新 Vim 版本: + +``` +sudo apt install vim +``` + +如果你已经安装了一个较早的 Vim 版本,它将被升级。你可以用以下方法检查已安装的 Vim 版本: + +``` +vim --version +``` + +![Checking installed Vim version][7] + +这是一个维护得非常好的 PPA,适用于所有活跃的 Ubuntu 版本。 + +如果你是 PPA 的新手,我有一个关于这个主题的详细指南。你应该阅读以了解更多关于 [Ubuntu 中 PPA 的概念][8]。 + +### 降级或删除 + +如果你想回到 Ubuntu 提供的旧版 Vim,你应该删除现有的版本,删除 PPA 并重新安装它。 + +在删除 Vim 之前,如果你做了自定义修改并打算再次使用 Vim,你应该复制 vimrc 或其他类似的配置文件。 + +好的。打开一个终端,使用以下命令: + +``` +sudo apt remove vim +``` + +现在删除 PPA,否则你会再次得到最新的 Vim(如果你尝试安装旧版本的 Vim): + +``` +sudo add-apt-repository -r ppa:jonathonf/vim +``` + +现在,如果你想要旧的、官方的 Ubuntu 版本的 Vim,只需再次[使用 apt 命令][9]安装它。 + +享受 Ubuntu 上的 Vim 吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-latest-vim-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/command-line-text-editors-linux/ +[2]: https://itsfoss.com/vim-vs-nano/ +[3]: https://www.vim.org/ +[4]: https://news.itsfoss.com/vim-9-0-release/ +[5]: https://launchpad.net/~jonathonf/+archive/ubuntu/vim +[6]: https://itsfoss.com/wp-content/uploads/2022/07/install-latest-vim-on-ubuntu-using-ppa.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/vim-9-ubuntu.png +[8]: https://itsfoss.com/ppa-guide/ +[9]: https://itsfoss.com/apt-command-guide/ From acff16a214be4f6f1e2894d169042851457ea800 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 3 Aug 2022 08:27:28 +0800 Subject: [PATCH 0608/3123] translating --- ...0220801 Padloc- An Intuitive Open-Source Password Manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md index 78ac23caf3..2cdbfe04f3 100644 --- a/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md +++ b/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/padloc/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1ade0579793f26a79bd63ee044040f69234b5c3c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Aug 2022 16:29:11 +0800 Subject: [PATCH 0609/3123] RP @geekpi https://linux.cn/article-14891-1.html --- ...l to multiple smarthosts with opensmtpd.md | 61 ++++++++----------- 1 file changed, 26 insertions(+), 35 deletions(-) rename {translated/tech => published}/20211109 relaying mail to multiple smarthosts with opensmtpd.md (56%) diff --git a/translated/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md b/published/20211109 relaying mail to multiple smarthosts with opensmtpd.md similarity index 56% rename from translated/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md rename to published/20211109 relaying mail to multiple smarthosts with opensmtpd.md index 4a92dabbf4..5b9a69799c 100644 --- a/translated/tech/20211109 relaying mail to multiple smarthosts with opensmtpd.md +++ b/published/20211109 relaying mail to multiple smarthosts with opensmtpd.md @@ -3,63 +3,54 @@ [#]: author: "jao https://jao.io" [#]: collector: "lujun9972" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14891-1.html" -使用 opensmtpd 将邮件中继到多个 smarthost +使用 OpenSMTPD 将邮件中继到多个 smarthost ====== -我喜欢使用本地 smtp 守护进程从我的笔记本电脑发送电子邮件,因为这样我即使在断开连接的情况下也可以发送电子邮件,而且,即使是在网络正常的情况下,因为我不需要等待网络协议在远程 smarthost 上完成。哦,我还需要本地邮件发送。 +![](https://img.linux.net.cn/data/attachment/album/202208/03/162813rc900xbgx3xggxxg.jpg) -多年来,我一直使用后缀来达到这些目的。它具有可接受的简单配置。但最近我开始喜欢 VPN([mullvad][1],如果你想知道的话),并且在 `/etc/resolv.conf` 更改时会感到困惑(例如,因为你在 postfix 的服务启动后启动了 VPN)。我找到了一个非常简单的替代方案:[OpenSMTPD][2]。 +我喜欢使用本地 SMTP 守护进程从我的笔记本电脑发送电子邮件,因为这样我即使在断开连接的情况下也可以发送电子邮件,而且,即使是在网络正常的情况下,因为我不需要等待网络协议在远程 smarthost 上完成。哦,我还需要本地邮件投递。 -假设我想在使用 [jao@gnu.org][3] 发送电子邮件时使用 SMTP 服务器 fencepost.gnu.org,而在我的 `From` 头中使用 [mail@jao.io][4] 或 [news@xmobar.org][5] 时使用 smtp.jao.io。OpenSMTPD 让你通过一个非常简单的配置文件 `/etc/smtpd.conf`[1][6] 来实现: +多年来,我一直使用 Postfix 来达到这些目的。它具有可接受的简单配置。但最近我开始喜欢 VPN([mullvad][1],如果你想知道的话),而在 `/etc/resolv.conf` 发生变化时会变得混乱(例如,你在 Postfix 的服务启动后才启动 VPN)。我找到了一个非常简单的替代方案:[OpenSMTPD][2]。 + +假设我想在使用 [jao@gnu.org][3] 发送电子邮件时使用 SMTP 服务器 fencepost.gnu.org,而在我的 `From` 头中使用 [mail@jao.io][4] 或 [news@xmobar.org][5] 时使用 smtp.jao.io。OpenSMTPD 让你通过一个非常简单的配置文件 `/etc/smtpd.conf` 来实现: + +(这是我的 Debian 机器中的默认配置文件。另一个流行的替代方案是 `/etc/openstmpd.conf`)。 ``` +table aliases file:/etc/aliases +table secrets db:/etc/mail/secrets.db - table aliases file:/etc/aliases - table secrets db:/etc/mail/secrets.db +table sendergnu { jao@gnu.org } +table senderjao { mail@jao.io, news@xmobar.org } - table sendergnu { jao@gnu.org } - table senderjao { mail@jao.io, news@xmobar.org } +listen on localhost - listen on localhost - - action "local" mbox alias - action "relaygnu" relay host smtp+tls://gnu@fencepost.gnu.org:587 auth - action "relayjao" relay host smtps://jao@smtp.jao.io:465 auth - - match for local action "local" - match for any from mail-from action "relaygnu" - match for any from mail-from action "relaygan" +action "local" mbox alias +action "relaygnu" relay host smtp+tls://gnu@fencepost.gnu.org:587 auth +action "relayjao" relay host smtps://jao@smtp.jao.io:465 auth +match for local action "local" +match for any from mail-from action "relaygnu" +match for any from mail-from action "relaygan" ``` 我们还为此配置了本地投递。这是完整的配置文件!唯一需要的另一件事是生成 `secrets.db` 文件,其中包含与键 `gnu` 和 `jao` 对应的用户和密码(这些只是任意名称)。为此,我们使用它们创建一个纯文本文件,使用形式为 ` :` 的条目: ``` - - gnu jao:my fencepost password - jao mail@jao.io:xxxxxxxxxxxxxxxxx - +gnu jao:my fencepost password +jao mail@jao.io:xxxxxxxxxxxxxxxxx ``` `fencepost.gnu.org` 用户是 `jao`,`smtp.jao.io` 的用户是 `mail@jao.io`(你看,不需要转义空格或 ats)。然后我们使用程序 `makemap` 来创建密钥数据库: ``` - - makemap secrets && rm secrets - +makemap secrets && rm secrets ``` -### 脚注: - -[1][7] - -That's the default configuration file in my debian box; other popular alternative is `/etc/openstmpd.conf`. -这是我的 debian 机器中的默认配置文件。另一个流行的替代方案是 `/etc/openstmpd.conf`。 - -------------------------------------------------------------------------------- via: https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html @@ -67,7 +58,7 @@ via: https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html 作者:[jao][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e1b5cae4e819ff481e28b8be6cd641f3cbf19a6e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Aug 2022 16:43:52 +0800 Subject: [PATCH 0610/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ME and That-s Not a Good Thing -Opinion.md | 142 ------------------ ...s Calls For Better Open Source Security.md | 42 ------ ...k Hardware to Release Linux Kernel 5.19.md | 124 --------------- 3 files changed, 308 deletions(-) delete mode 100644 sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md delete mode 100644 sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md delete mode 100644 sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md diff --git a/sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md b/sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md deleted file mode 100644 index 858773a3e6..0000000000 --- a/sources/news/20220724 Wayland Core Protocol is Tailored Only for GNOME and That-s Not a Good Thing -Opinion.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "Wayland Core Protocol is Tailored Only for GNOME and That’s Not a Good Thing [Opinion]" -[#]: via: "https://news.itsfoss.com/wayland-core-protocol-issue/" -[#]: author: "Community https://news.itsfoss.com/author/team/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Wayland Core Protocol is Tailored Only for GNOME and That’s Not a Good Thing [Opinion] -====== - -Wayland is a display server system based on the idea of [protocols][1]. That means that there is no Wayland display server that clients need to talk to. Instead, Wayland defines a protocol for creating display servers. Any client application that is programmed to use this protocol can work on any display server(or compositor) that fully supports this protocol. It’s like the [world wide web protocols][2], where any website can work on any browser as long as the browser is completely supporting the web protocols. So you don’t create websites for specific browsers. - -That also means that the functions defined in the protocol decide what applications (aka clients) can do & what they can’t do. Returning to the example of the website, if the protocol doesn’t define necessary functions, it will limit the web developers. Take CSS as an example; if it wasn’t available in the web protocols, all websites would have looked the same and boring. So the protocol must include all necessary basics in a way that doesn’t limit developers to a few cases and uses. - -When Wayland developers started defining the protocol, they had to decide what functionalities to include in the protocol. Their decision was to make the protocol as minimal as possible, and compositors shall create new protocols for their specific use cases if they desire to offer more functionality not included in the main protocol. The main protocol was called [Wayland Core protocol][3], and other protocols are called [protocol extensions][4]. All compositors are expected to support the core protocol, and they may not support other protocol extensions. That means that applications that depend on certain functionality defined in one of the protocol extensions will not work on all compositors. - -All of the above is what Wayland developers intended for the Wayland world to be. Now let’s delve into more detail. How much is Wayland core protocol minimal? In other words, what determines what shall be in the core protocol and what shall not be? In this article, I’m going to give you an answer to this question based on my opinion, which is in turn based on a group of simple facts. - -_**My opinion is that Wayland’s Core protocol is tailored only for GNOME needs.**_ - -I mean that the functionalities which exist in Wayland’s core protocol are the bare minimum required for GNOME desktop and apps to work on Wayland. - -That’s bad (still in my opinion) because it’s simply not enough for other desktop environments and apps other than GNOME desktop and apps, as I will show you in this article. - -### 1\. The core protocol requires that desktop visual components be drawn by the compositor - -First, let’s explain something. In most desktop environments, desktop components (like dock, panel, wallpaper, desktop icons, etc.) are regular clients. For those components to work, they need certain functions to be implemented by the compositor; those functions include: - - * Ability to move the window - * Ability to tell the compositor to not draw decorations around said windows. - * Ability to keep it above all windows(in case of the panel) or keep it below all windows (in case of the background). - * In addition to some other functionalities. - - - -On X11, those were defined in the ICCCM specification, which allows X11 clients to tell the compositor to do any of the above. On Wayland, there is not anything in the core protocol that allows that. This means that desktop environment creators have to draw all these in the compositor. - -GNOME is the only desktop that does that, while many other desktops (KDE, XFCE, Lxqt, etc.) draw their components outside the compositor (an exception to that is Cinnamon because it started as a fork of GNOME 3). The situation is even worse. Apps like [plank dock][5], [latte dock][6] and other independent desktop components can’t exist in Wayland. There are protocol extensions that fix that, and I will discuss them later. - -In summary, the situation is: - - * Desktop environments have to draw everything in the compositor. - * It’s impossible to create cross-desktop desktop components like Plank and Latte dock - - - -### 2\. CSD is implementable, although clients can’t move their window - -We have known before that the core protocol doesn’t define a way for clients to move their windows. So how is CSD implemented? Well, there is a [function in the protocol][7] that tells the compositor to start dragging the window. So instead of having a function for moving the window, which would had been useful in many cases, they resorted to having a function only helpful in implementing CSD. - -### 3\. CSD is a must in Wayland core protocol - -On X11, the situation was that apps expect to get decorated by the compositor (which is SSD) and if they wish to decorate themselves (by CSD) they tell the compositor to not draw its decorations. On Wayland, compositors are free to draw their decorations if they wish. - -The problem is that there is no way (inside the core protocol) for apps to know whether they are being decorated or not. In other words, clients can’t tell the compositor whether they prefer CSD or SSD, which is problematic for both CSD and SSD (in theory). But in practice, GNOME decided not to decorate clients at all. So apps have to assume that they are not decorated due to GNOME’s decision, so they must go for CSD. Again, there is a protocol extension that fixes that; more on that later. - -### To summarize - -The above three facts regarding the core protocol in summary are: - - 1. Desktop components need to be drawn by the compositor - 2. CSD is a must. - 3. CSD is implementable, although clients can’t move their windows. - - - -According to these 3 facts, I’ve concluded my opinion that Wayland’s core protocol is tailored only for GNOME needs. - -What if you wanted some functionalities not available in the core protocol. Wayland or GNOME developers’ answer to this is Wayland’s protocol extensions. That simply means that compositors can offer extra functionality by creating new protocols. The problem with this approach is that means that some apps may work on some compositors and may not work on the rest of the compositors (that’s if it needs some of the protocol extensions). That may have resulted in severe fragmentation in theory, but the reality is less than worse thanks to the efforts of [wlroots project][8] and KDE. - -### Wlroots has mostly saved the situation - -[Wlroots][8] is a library created by [Sway compositor][9] developers. It enables developers to create Wayland/X11 compositors easily. Their main focus is Wayland. There are already many compositors available based on wlroots. What is interesting though is the protocol extensions that wlroots implement. - -Wlroots has many protocol extensions, including: - - * [LayerShell][10] protocol - * [xdg-decoration][11] protocol - - - -The LayerShell protocol enables desktop components to be drawn outside the compositor. Which also makes it possible to create independent cross-desktop desktop components. Many projects utilize this protocol that you can explore in the following repositories: - - * [nwg-shell][12] - * [wf-shell][13] - * [awesome-wayland][14] - - - -Also, have a look at [GtkLayerShell library][15]. Which is a library for writing Gtk apps with LayerShell protocol. -Because LayerShell protocol is not a part of the core protocol apps using it work on wlroots based compositors and KDE, it’s not supported only on GNOME. - -The second protocol is xdg-decoration protocol. Made by wlroots and KDE, it enables apps to choose between CSD and SSD. - -These protocols work on wlroots compositor and KDE. The only obstacle preventing the unification of Linux desktop is GNOME. They have decided not to implement any of these protocol extensions. Which put all apps that use SSD in a situation where they have to use SSD in supporting environments and CSD in gnome. The people actually feeling the pain are toolkits developers. To give you more context, have a look at the “CSD initiative” started by Tobias Bernard from GNOME, and this blog post from Martin’s blog (kwin’s developer). Also, have a look at this issue. The situation is mostly solved by now, that Qt and Gtk draw CSD always on GNOME and utilize the xdg-decoration on other environments. However, in my opinion, that is not good because it makes the platform less standardized/unified for no good reason. After all, in the future, toolkits developers may decide to just go for CSD to avoid the pain. - -### The root of all these problems - -The root of all these is GNOME or Wayland developers’ decision to have the core as minimum as possible and require the creation of protocol extensions. - -Imagine if the web worked in a similar way. That means that websites would not be able to target the standardized (minimal) protocols because they are not enough and will rely on protocols created by certain browsers. So websites would target specific browsers, not the core protocol. That would had been a nightmare, right? Well, that’s the current Wayland situation. - -### What is the solution? - -The solution, in my opinion, is to put all these protocol extensions in the core protocol, or that might not be necessary if GNOME implements the above protocols (Which is not likely to happen anytime soon.) -In simple words, GNOME is the root cause of the problem, and it can solve the problem if it decides to do so. - -Author Info: This article has been contributed by It’s FOSS reader Hamza Algohary. Hamza is a computer engineering student and a Linux and open source enthusiast. He also develops apps for Linux desktop. You can find his work on [his GitHub profile][16]. - -_The views and opinions expressed are those of the authors and do not necessarily reflect the official policy or position of It’s FOSS._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/wayland-core-protocol-issue/ - -作者:[Community][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/team/ -[b]: https://github.com/lujun9972 -[1]: https://wayland.freedesktop.org/docs/html/ch04.html -[2]: https://www.w3.org/standards/ -[3]: https://wayland.app/protocols/wayland -[4]: https://wayland.app/protocols/ -[5]: https://github.com/ricotz/plank -[6]: https://github.com/KDE/latte-dock -[7]: https://wayland-book.com/xdg-shell-in-depth/interactive.html -[8]: https://gitlab.freedesktop.org/wlroots/wlroots -[9]: https://swaywm.org/ -[10]: https://wayland.app/protocols/wlr-layer-shell-unstable-v1 -[11]: https://wayland.app/protocols/xdg-decoration-unstable-v1 -[12]: https://github.com/nwg-piotr/nwg-shell -[13]: https://github.com/WayfireWM/wf-shell -[14]: https://github.com/natpen/awesome-wayland -[15]: https://github.com/wmww/gtk-layer-shell -[16]: https://github.com/hamza-Algohary diff --git a/sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md b/sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md deleted file mode 100644 index 9eb404d449..0000000000 --- a/sources/news/20220725 In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security.md +++ /dev/null @@ -1,42 +0,0 @@ -[#]: subject: "In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security" -[#]: via: "https://www.opensourceforu.com/2022/07/in-light-of-the-log4j-incident-google-supports-calls-for-better-open-source-security/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -In light Of The Log4j Incident, Google Supports Calls For Better Open Source Security -====== -![google][1] - -In response to recent recommendations from the US government to take action against risks connected to the Log4j vulnerability, Google said it supports the advisories and detailed its own defence strategy. In a recent assessment on the Log4j vulnerability, the U.S. Department of Homeland Security (DHS) asked the entire sector to band together and strengthen cybersecurity precautions, warning that it might remain undetected on unpatched endpoints for up to 10 years. - -“We welcome the U.S. Government’s work to improve the nation’s cybersecurity, including through establishment of the CSRB to review incidents like log4j,” Google said in a [blog post][2]. - -The report, among other things, provided three recommendations for the industry’s future actions: promoting the adoption of best practises; improving the software ecosystem; and making long-term investments in digital security. Google stated that it will continue to make security a “cornerstone of our product strategy” and that it will share its internal frameworks and best practises with others in order to advance current security hygiene best practises. - -In an effort to spur industry-wide discussion and advancement on the security and sustainability of the open-source ecosystem, the company stated “We partner closely with industry stakeholders to identify and address vulnerabilities in the ecosystem, and share best practises on how to address the latest security threats”. - -When it comes to creating a better software environment, Google sees itself as a market leader, claiming that it promotes, instigates, and funds initiatives and programmes that allow everyone to participate in and contribute to the global open source ecosystem. - -And lastly, Google has significant investment intentions for the future. It promised a $10 billion investment in cybersecurity last year that will span five years and include a $100 million investment in outside organisations like OpenSSF. - -“We welcome the chance to participate in future review board processes, and look forward to working alongside others to continue to protect the nation’s software supply chain ecosystem,” the announcement concludes. “It’s clear that public and private sector stakeholders learned a great deal from log4j and the report provides an in-depth review of shared challenges and potential solutions. Now, we must act on those learnings to improve the security of the entire ecosystem.” - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/07/in-light-of-the-log4j-incident-google-supports-calls-for-better-open-source-security/ - -作者:[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/07/google-e1658741796206.jpg -[2]: https://cloud.google.com/blog/products/identity-security/google-supports-csrb-call-improve-open-source-security diff --git a/sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md b/sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md deleted file mode 100644 index 59aaf1fb9b..0000000000 --- a/sources/news/20220801 Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19.md +++ /dev/null @@ -1,124 +0,0 @@ -[#]: subject: "Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19" -[#]: via: "https://news.itsfoss.com/linux-kernel-5-19-release/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linus Torvalds Uses Apple MacBook Hardware to Release Linux Kernel 5.19 -====== -Linux Kernel 5.19 is introducing support for a new CPU architecture, along with improvements for next-gen components from Intel and AMD. - -![linux kernel][1] - -Three months after the [last kernel release][2], Linux Kernel 5.19 is finally here. This exciting release brings plenty of improvements to every aspect of the kernel and opens up opportunities with new hardware. - -The most interesting part is that the Linux creator Linus Torvalds used an Apple MacBook, the Arm version, to announce this release. - -Don’t get your pitchfork out just yet. Torvalds used [Asahi Linux][3], a project dedicated to adding Linux support to Apple’s Arm-based Silicon Macbooks. - -> On a personal note, the most interesting part here is that I did the release (and am writing this) on an arm64 laptop. It’s something I’ve been waiting for for a *loong* time, and it’s finally reality, thanks to the Asahi team. We’ve had arm64 hardware around running Linux for a long time, but none of it has really been usable as a development platform until now. - -That’s interesting. And this is the [third time][4] Torvalds used Apple hardware for Linux development. - -### Linux Kernel 5.19: What’s New? - -As with all previous releases, Linux Kernel 5.19 has a lot of technical changes. However, there are only a few major ones that will have a direct impact on users, so we will focus on those here. - -If you are interested in all the low-level code changes, you can refer to the official changelog. - -#### LoongArch CPU Architecture Support - -Over the past few years, it has been interesting to see Chinese chip manufacturers attempt to catch up to Intel and AMD. One way they have tried to do this is by creating their architectures, which are generally compatible with existing architectures. - -One of the more successful of these companies is **Loongson**. However, due to their new architecture, the software support for these CPUs was pretty limited. - -Starting with this release, these CPUs have initial support (it won’t work for booting) and will likely soon have packages ported to them. - -We should see more progress on this with Linux Kernel 5.20. - -#### 32-bit RISC-V Apps on 64-bit RISC-V - -As has been the case for the recent releases, Linux Kernel 5.19 greatly improves support for the open-source RISC-V architecture. This time, this comes in the form of allowing 32-bit RISC-V apps to run on 64-bit RISC-V systems. - -Very few 32-bit RISC-V CPUs can run Linux, meaning very few Linux packages are designed for them. And those packages already have 64-bit counterparts. - -Even if its usefulness is limited, it is good to see RISC-V being treated as a first-class architecture and getting more improvements to bring it closer to mainstream feasibility. - -#### Improved Arc Alchemist Support - -It’s no surprise that Intel’s initial Arc Alchemist GPU launch is a disaster so far, Linux Kernel 5.19 is the first release where you could assume these GPUs are usable on Linux. - -This release finally brings compute support to the Linux kernel. It is somewhat surprising this code was not merged earlier, but at least the support exists now. - -The other major Arc improvement is significantly better power management. This comes in the form of a small tweak in Linux’s PCIe subsystem that treats the Arc GPUs as unlimited, enabling PCI Express Active State Power Management in far more configurations. - -In essence, this change means that the GPU can now be put into an extremely low power mode when not in use, yielding some significant power savings. - -#### Improved ARM SoC Support - -This release brings support to several new ARM SoCs. This time around, 7 new SoCs have been added to the list, specifically: - -* Renesas RZ/G2UL (R9A07G043) -* Renesas RZ/V2M (R9A09G011) -* Renesas R-Car V4H (R8A779G0) -* Broadcom BCM47622 -* Corstone1000 -* Mediatek MT8195 (Kompanio 1200) -* NXP i.MXRT1050 - -In addition, Apple’s M1 chip also gained some improved support. This comes from a new driver for the on-chip NVMe controller. Now, users wanting to be able of NVMe storage on their Apple Silicon Macs are able to do so, thanks to the contribution by the Asahi Linux project. - -#### Significantly Reduced Boot Times For Azure VMs - -Azure users, you are in for a good improvement. Thanks to a contribution by Microsoft, Azure VMs using multiple GPUs can have as many as 3 minutes shaved off their boot times! - -To achieve this, Microsoft changed their PCI Hyper-V driver to avoid setting “PCI_COMMAND_MEMORY”, which stops the driver sending/receiving heaps of unnecessary data from each GPU, saving around 14 seconds of boot time per GPU. - -### Other Changes - -In addition to the ones I mentioned above, Linux Kernel 5.19 also includes - -* Raspberry Pi Sense Hat joystick driver -* Various BTRFS improvements -* New Intel IFS driver -* Intel Raptor Lake P graphics support. -* Alder lake improvements. -* Initial support for AMD RDNA3 graphics. -* Performance optimizations as reported by [Phoronix][5]. - -Overall, these changes make up for a pretty decent release. Although there aren’t any major changes, Linux Kernel 5.19 continues to build on the great work of the past few Linux releases. - -### How to Install Linux Kernel 5.19? - -If you are using Arch Linux or Fedora, you can easily upgrade shortly. But, if you are using other Linux distributions (Pop!_OS can be an exception to some extent), you may not receive an upgrade. - -So, if you are feeling adventurous (and know what you are doing), you can find the newer kernel listed on [Linux Kernel Archives][6]. You can download the [tarball][7] to test it out. - -However, we recommend waiting for your Linux distribution to push an update if you do not want to take any chances. It is best to stick to what’s being offered for your Linux distribution by default. - -[Linux Kernel Archives][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-5-19-release/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/linux-kernel-5-19-released.jpg -[2]: https://news.itsfoss.com/linux-kernel-5-18-release/ -[3]: https://news.itsfoss.com/asahi-linux-alpha/ -[4]: https://lore.kernel.org/lkml/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/T/#u -[5]: https://www.phoronix.com/news/Linux-5.19-Features -[6]: https://www.kernel.org/ -[7]: https://git.kernel.org/torvalds/t/linux-5.19.tar.gz -[8]: https://www.kernel.org/ From 086d3bd842ee1c8ef68fefc1f6d9d87116c19f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Wed, 3 Aug 2022 17:13:54 +0800 Subject: [PATCH 0611/3123] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 好像翻译完成的时间晚了很多,Linux-Mint-21已经发布好几天了 --- ... 10 Features of Linux Mint 21 -Vanessa-.md | 189 ----------------- ... 10 Features of Linux Mint 21 -Vanessa-.md | 190 ++++++++++++++++++ 2 files changed, 190 insertions(+), 189 deletions(-) delete mode 100644 sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md create mode 100644 translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md diff --git a/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md deleted file mode 100644 index 49495b5065..0000000000 --- a/sources/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md +++ /dev/null @@ -1,189 +0,0 @@ -[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" -[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Features of Linux Mint 21 “Vanessa” -====== -We round up the top features of the upcoming Linux Mint 21 “Vanessa”. Find out what’s in store for you. - -![Linux Mint 21 Cinnamon Desktop][1] - -Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. - -I have summarized all of them in this list of top features of Linux Mint 21. - -### Top Features of Linux Mint 21 “Vanessa” - -#### 1. Ubuntu 22.04 and associated updates - -Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. - -Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. - -#### 2. Major changes in the Timeshift backup tool - -A few months back, the Mint team [announced][5] that they are taking over the development of the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? - -Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. - -![Timeshift creating snapshot][7] - -With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. - -#### 3. WebP Support - -WebP image is a reasonably new image format created by Google for the web. It beings better compression and reduced size while maintaining good quality than traditional JPEG or PNG images. - -WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. - -That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always think about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu, etc. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: - -* ePub -* MP3 with Album Arts -* RAW Images -* AppImage - -#### 4. Process Monitor - -A small but handy tool called process monitor will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. In those situations, your system may become slow, and this nifty icon can show you why. - -#### 5. Improved printing support - -Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. - -In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. - -All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. - -It’s good to see that the mint team contributed to this critical functionality. - -#### 6. Window Animation updates - -There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, there were separate sections which gave more granular control of the animations. - -Here’s a side-by-side view. - -![][12] - -![][13] - -Secondly, the mapping windows and desktop effects options are removed. - -Third, a new control arrives to change the overall animation speed from slower to faster. - -Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. - -I believe this is a well-designed dialog and advanced options for better clarity. - -#### 7. Mutter rebase - -Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). - -Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. - -Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. - -#### 8. Window manager and GTK Themes - -With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. - -Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. - -Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. - -On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. - -#### 9. Package Management updates - -Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. - -When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. - -If found, you get an error message that stops you from going further. - -On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. - -#### 10. Disable the Systemd OOMD (out-of-memory daemon) service - -The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. - -In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. - -With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. - -![Systemd OOMD service is not enabled][20] - -#### 11. Other Changes - -Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. - -* The default document reader app Xreader is now capable of minor annotation. This is a handy feature. -* The WebApp manager now brings custom browser parameters. -* Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. -* Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. - -![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] - -* The bulk renamer app Thingy gets some UI improvements. -* The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). -* The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. -* Finally, new wallpapers for your new desktop arrive in this release. - -![New Wallpapers in Linux Mint 21][23] - -### Things that are NOT changing - -From a very high level, you might feel that most of the Linux Mint 21 remains the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. - -### Wrapping Up - -Overall, a good set of features is beneficial for end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. - -The BETA testing is in progress, and there are a [few bugs reported][24]. The final release is due soon, within a few weeks from now. - -You can download/update to Linux Mint 21 when released. Also, stay tuned for our detailed distro review of Linux Mint 21 after the official release. - -What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/linux-mint-21-features/ - -作者:[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/07/Linux-Mint-21-Cinnamon-Desktop.jpg -[2]: https://www.debugpoint.com/linux-mint/ -[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/linux-kernel-5-15/ -[5]: https://blog.linuxmint.com/?p=4323 -[6]: https://teejeetech.com/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg -[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ -[9]: https://github.com/linuxmint/xapp-thumbnailers -[10]: https://datatracker.ietf.org/doc/html/rfc8011 -[11]: https://www.debugpoint.com/tag/linux-distro-review/ -[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg -[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 -[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ -[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ -[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 -[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html -[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ -[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg -[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ -[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg -[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg -[24]: https://github.com/linuxmint/mint21-beta/issues diff --git a/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md new file mode 100644 index 0000000000..4c6eb05050 --- /dev/null +++ b/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md @@ -0,0 +1,190 @@ +[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" +[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint 21 “Vanessa” 的 10 大顶级特色功能 +====== + +我们总结了即将到来的 Linux Mint 21 “Vanessa” 的 10 大顶级特色功能。找出为你准备了什么。 + +![Linux Mint 21 Cinnamon Desktop][1] + +Linux Mint 21 “Vanessa” 是 [Linux Mint][2] 的第 36 个发布版本,它带来了一份特色功能的列表和桌面上的一些有用改善。特色功能散落在 Cinnamon 桌面、内核更改、Xapps 更新等处。 + +我已经在这份 Linux Mint 21 顶级特色功能列表中总结出来了。 + +### Linux Mint 21 “Vanessa” 的顶级特色功能 + +#### 1. Ubuntu 22.04 及其相关更新 + +也许最重要的变化就是Linux Mint 21 的基础,它现在基于 [Ubuntu 22.04 “Jammy Jellyfish”][3] 。上一次的主要发布版本,例如 Linux Mint 20 “Ulyana” ,是基于四年前发布的 Ubuntu 20.04 “Focal Fossa” 。沧海桑田,2020 年的世界状态与现在完全不同。 + +因此,很对软件包、版本升级、新的性能改善 – 所有的这些底层更新都涉及到了 Linux Mint 21 。这包括最新的 LTS [Linux Kernel 5.15][4] ,这带来了更多硬件系列的支持、以及针对编程、开发和网络的工具链的更新。 + +#### 2. Timeshift 备份工具的主要变化 + +几个月前,Mint 开发组 [宣布][5] :他们正在接管著名的备份工具 Timeshift 的开发,并将其继续开发为一个 “XApps” 。因此,这是一个重要的变化。为什么,你可能会询问? + +好吧,Timeshift 工具的开发组,Tony George ,正忙于其它的项目。你可能听说过针对于 Linux 的 “[TeeJeeTech][6]” 应用程序。它是由 Tony 创建的,并且有一些很快的应用程序。因此,他没有足够多的时间来专注于 Timeshift 的开发和增强。 + +![Timeshift creating snapshot][7] + +话虽如此,不过,现在有了 Linux Mint 来维护它,一些新的特色功能出现在这个发布版本之中,例如,Timeshift 现在可以在 rsync 模式 (而非 btrfs 模式) 下准确计算出下一次备份时所需要的磁盘空间。此外,如果它看到磁盘空间在备份后小于 1 GB ,它将会停止备份过程。 + +#### 3. WebP 支持 + +WebP 图像是谷歌针对网络创建的一种相当新的图像格式。It beings better compression and reduced size while maintaining good quality than traditional JPEG or PNG images. + +在 Linux 桌面中支持 WebP (查看图像、缩略图或编辑) 需要一些 [额外安装][8] 的软件包。看着流行的 Linux Mint 开发组在桌面应用程序和衍生程序上带来开箱即用的 WebP 支持 + +这意味着,在 Nemo 文件管理器中可以显示 WebP 图像的缩略图,并可以在 xviewer 中查看它们。mint 开发组总是优先考虑最终用户的处境,这是因为其它的发行版仍然不默认支持 WebP ,例如 Ubuntu 等等。不仅如此,新的应用程序 [xapp-thumbnailers][9] 现在还能帮助 Nemo 文件管理器来预览文件类型: + +* ePub +* 带有专辑封面的 MP3 +* RAW 图像 +* AppImage + +#### 4. 进程监视器 + +一个名称为 进程监视器 process monitor 的小巧方便的工具,将会告知你,在你的系统中正在发生什么。在你的系统正在通过 Timeshift 来自动更新或备份时,在系统托盘处的这个小图标将会显示。在这些情况下,你的系统可能会变慢,这些漂亮的图标可以告诉你答案。 + +#### 5. 改善打印支持 + +Linux Mint 针对硬件设备配置了各种驱动程序,默认情况下就支持打印机。 这个版本的 Mint 带来 [网络打印协议Internet Printing Protocol (IPP)][10] ,可以无线驱动打印机和扫描仪。 + +另外,也默认安装了 HP 的启动程序 HPLIP 的最新版本 (3.21.12) 。 + +所有的这些变化都提高了打印机和扫描仪的使用效率。像你这样的最终用户可以轻松地享受打印和扫描。它是一个 Linux 发行版的一个重要的方面,但是它并不是总是有效的。在 [评价很多发行版][11] 时,我发现很多发行版不能自动地检测出打印机,甚至不能使用打印机。 + +很高兴看到 mint 开发组贡献这个重要的功能。 + +#### 6. 窗口动画更新 + +在窗口和桌面动画效果中有一些相当大的变化。第一,现在合并了窗口和桌面的效果设置。先前,效果设置是一些单独的组区,可以对动画进行微观化的控制。 + +这里是并排对比视图。 + +![][12] + +![][13] + +第二,移除了映射窗口和桌面效果选项。 + +第三,带来一个新的控件,用于更改整体动画的快慢速度。 + +最后,一个禁用或启用在整个桌面上的所有动画的全局开关,给予你更多的控制选项。 + +我相信这是一个精心设计的对话框和一些更简洁清晰的高级选项。 + +#### 7. Mutter 重新构建 + +让我们讨论一下 [Cinnamon 桌面环境版本 5.4][14] ,它随 Linux Mint 21 而来。它是最新的 Cinnamon 发布版本,Mint 是第一个将其带给用户的的发行版 (而不是传统观念上的 Arch Linux 用户,他们要获取它还有 [一点早][15]) 。 + +最后,开发者对其窗口管理器 Mutter 完成了重新构建,在 Cinnamon 5.4 中是 Muffin 。即使有一些后期移植的变化,但是由于 Muffin 的原始版本是从 Mutter 复刻出来的,所以它总是落后于上游的 Mutter 特色功能。为使尽可能地接近 Mutter 代码基础。在包含的特色功能、错误修复及清理方面付出了大量的努力。 + +因此,在未来,在 Muffin 需要的时候很容易从 Mutter 上游移植回来和清理东西。 + +#### 8. 窗口管理器和 GTK 主题 + +伴随着 Muffin 的变化,开发组也将 gnomes 控制中心的一些显示设置移动到了 cinnamon 控制中心。此外,在 Cinnamon 5.4 中,也来自 csd-xrandr 的显示配置移动到了 Muffin 窗口管理器。很显然,你不可能在显示设置窗口中看任何的差异。不过,在缩放显示或在高分辨率窗口中时,你可能会看到一些性能的提升和更少的错误或重大问题。 + +另外一个重大的变化,Mint 开发组通过 Cinnamon 5.4 来尝试在应用程序中实现 GTK 窗口的统一渲染。先前,如果一个 GTK 应用程序使用一个标题栏,那么对话框会是一个 CSD (客户端样式) 和 GTK 主题的混合体. + +现在随着 Cinnamon 5.4 的到来,使用的窗口都使用 GTK 主题进行渲染,而不再与它们的设计相关联。于是,传统的 Metacity 主题也被抛弃。 + +顺便说一句,我喜欢 Metacity 及其 “传统外观” ,在 GNOME 的早期时 [它们是一种东西][16] 。 + +#### 9. 软件包管理器更新 + +遵循 Debian、KDE Plasma 桌面的发展趋势,Linux Mint 也开始保护你的系统不会卸载重要的依赖关系软件包。 + +当你尝试卸载时,Mint 现在会检查依赖关系,并检查重要的桌面软件包是否将会被移除。 + +如果发现这种情况,你将会得到一条阻止你继续卸载软件包的错误信息。 + +在另一方面,当成功地卸载一个软件包时,它会清理所有与之同时安装的依赖关系软件包。 + +#### 10. 禁用 Systemd OOMD (内存溢出守护进程) 服务 + +自从 Ubuntu 22.04 LTS 发布以来,系统内存溢出守护进程systemd-oomd” 有一些不好的反馈。访问网络的用户 [报告][17] :在没有任何警告或用户交互干涉的情况下,会突然关闭应用程序 (例如 Firefox) 。进一步的调查指明是系统内存溢出守护进程服务的实现“不如预期的好”。 + +按照理论上来说,[systemd-oomd.service][18] 监视你的系统的内存溢出情况,并且它有权杀死任何多过消耗系统资源的进程。Ubuntu 开发组并没有重要地强调这一点,最后导致了不愉快的用户的体验。 + +有了这些经验,Linux Mint 21 决定 [不提供][19] 这种服务,并禁用它。因为 Linux Mint 的用户群体是普通用户、学生等等,如果应用程序意外关闭,对用户来说将是一种不好的体验。 + +![Systemd OOMD service is not enabled][20] + +#### 11. 其它变化 + +最后,让我们归纳一些微小却富有冲击力的变化来总结 Linux Mint 21 特色功能。 + +* 默认文档阅读器应用程序 Xreader 现在能够进行少量的注释。这是一个很方便的特色功能。 +* WebApp 管理器现在可以提供一些自定义的浏览器参数。 +* Warpinator 文件传输器实用工具现在可以向你显示来自 Windows 、Android 和 iOS 设备上的其它的源文件。 +* Mint 打包 Firefox 网络浏览器为 .deb 版本,而不是在 Ubuntu 22.04 LTS 中的默认 .Snap 版本。感谢 Mint 开发组,用户不必为卸载 Jammy 中的 Firefox 的 .Snap 版本的 [复杂命令集][21] 而忧心。 + +![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] + +* 批量重命名应用程序 Thingy 获得一些用户界面上的改善。 +* 操作系统侦察引导启动器 GRUB2 现在能够侦察出在你的硬件系统上所有的操作系统 (对双操作系统启动或多操作系统启动有用) 。 +* 蓝牙管理器 Blueman 取代了 Blueberry ,为连接和管理你的蓝牙设备带来了其它的特色功能。 +* 最后,为你的新桌面而准备的新壁纸也将在这个发布版本中到来。 + +![New Wallpapers in Linux Mint 21][23] + +### 未变化的东西 + +从一个非常高的层次来看,你可能会觉着 Linux Mint 21 的绝大部分功能与先前的版本相同。默认桌面外观和默认壁纸保存相同。Xfce 和 MATE 桌面没有任何的重要功能的发布。因此,它们是完全一样的。此外,默认图标主题、应用程序菜单等等都可能会给你一种似曾相识燕归来的感觉。 + +### 总结 + +总体来说,最终用户需要的是一套完好的特色功能,而不是金玉其外败絮其中的东西。鉴如此,对初学者或最终用户来说,Linux Mint 是当今最好的 Linux 发行版。至此,Linux Mint 21 的特色功能就总结结束了. + +正在进行 BETA 版本测试,这里有 [一些错误报告][24] 。最后的发布版本即将在未来几周内到来。 + +当发布后,你可以下载/更新到 Linux Mint 21 。此外,在官方发布后,也敬请期待我们对于 Linux Mint 21 的详细评价。 + +你认为 Linux mint 21 的新的特色功能怎么样?在这个发布版本中,是否有一些你所求而未得的特色功能?让我们在下面的评论区讨论这个问题。 + +-------------------------------------------------------------------------------- + +via: + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/07/Linux-Mint-21-Cinnamon-Desktop.jpg +[2]: https://www.debugpoint.com/linux-mint/ +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/linux-kernel-5-15/ +[5]: https://blog.linuxmint.com/?p=4323 +[6]: https://teejeetech.com/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg +[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ +[9]: https://github.com/linuxmint/xapp-thumbnailers +[10]: https://datatracker.ietf.org/doc/html/rfc8011 +[11]: https://www.debugpoint.com/tag/linux-distro-review/ +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg +[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 +[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ +[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ +[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 +[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html +[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ +[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg +[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ +[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg +[24]: https://github.com/linuxmint/mint21-beta/issues From c4f75f8fd4730a8b7c5ad21cd998861e41130a5f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 3 Aug 2022 18:25:22 +0800 Subject: [PATCH 0612/3123] ALL @wxy https://linux.cn/article-14892-1.html --- ...bled- GNOME Will Soon Warn You About it.md | 93 +++++++++++++++++++ ...bled- GNOME Will Soon Warn You About it.md | 89 ------------------ 2 files changed, 93 insertions(+), 89 deletions(-) create mode 100644 published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md delete mode 100644 sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md diff --git a/published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md b/published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md new file mode 100644 index 0000000000..a4fd67ff80 --- /dev/null +++ b/published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md @@ -0,0 +1,93 @@ +[#]: subject: "Secure Boot Disabled? GNOME Will Soon Warn You About it!" +[#]: via: "https://news.itsfoss.com/gnome-secure-boot-warning/" +[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" +[#]: collector: "lujun9972" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14892-1.html" + +如果禁用了安全启动,GNOME 就会发出警告 +====== + +> GNOME 正计划通知用户其固件安全状态,来保护不安全的硬件。 + +![](https://news.itsfoss.com/wp-content/uploads/2022/08/gnome-secure-boot-warning.jpg) + +当你在支持 UEFI 的电脑上安装 Linux 时,你必须禁用“安全启动Secure Boot”,因为启用该选项后,不能使用现场 USBLive USB 启动。 + +一些主流的 Linux 发行版支持安全启动,但对于许多其他发行版(以及板载的 Nvidia 硬件)来说,它的设置仍然具有挑战性。 + +虽然一年又一年,情况似乎并没有改善,但总的来说,安全启动是一个必不可少的保护功能。 + +因此,正如 [Phoronix][1] 所发现的,为了方便和让用户意识到这一点,GNOME 和红帽的开发者正在努力在安全启动被禁用时通知(或警告)用户。 + +### 它有什么用? + +UEFI/安全启动被批评为 DRM,因为它剥夺了用户的自由。开源社区的许多人仍然不赞同实施 UEFI/安全启动和 TPM,因为它带来了不便。这就催生了像 [Coreboot][2] 这样的项目在开源世界中蓬勃发展。 + +当然,如果你每天都用 Linux,我会建议你购买支持 Coreboot 的新硬件,这是一个不同的故事。 + +话虽如此,但可以肯定的是,安全启动是最简单的方法。 + +考虑到捆绑的专有固件,安全启动的安全性仍然值得商榷。但是,它是一个确保系统的固件安全的基本保护机制。 + +所以,开发者准备在启动闪屏([Plymouth][3])、GNOME 显示管理器(GDM)和 GNOME 控制中心显示警告。 + +![图片来源:GNOME 博客][4] + +GNOME 的一位开发者在 [博客文章][5] 中分享了它的更多细节,同时给出了其中的一些屏幕截图。 + +![][6] + +一位来自红帽的开发者在 [合并请求][7] 中提到。 + +> 安全启动被用来对付一些恶意软件试图感染系统的固件的安全威胁。用户可能会无意中禁用或软件可能会有意禁用安全启动。因此,配置不正确的话,系统就运行在一个不安全的平台上。如果启动闪屏能向用户提供一个警告,用户可以重新启动并重新配置他们的系统,或者立即寻求帮助。 + +所以,作为一个 GNOME 用户,当它进入 GNOME 43 的最终版本或任何未来的版本时,我乐于看到它所带来的变化。 + +如果你也想看看,你可以在 GNOME 控制中心的“隐私Privacy”标签下的“设备安全Device Security”部分找到这个选项,如下图所示,我的机器在 Arch Linux 上运行 GNOME 43 alpha。 + +![][8] + +该菜单还可以显示 TPM、英特尔 BootGuard 和 IOMMU 保护的细节。 + +![][9] + +看来我的系统并不像我想象的那么安全……但也许这就是这个功能的意义所在? + +如果你只在你的 Linux 发行版上使用 UEFI 模式,并且为了方便而关闭了安全保护功能,这能让你意识到这一点吗? + +有可能。但是,看看 Linux 发行版的状况和启用安全启动的问题。我不觉得这可能会是一个大问题。我们很快就会知道了。 + +### 如何禁用这个警告? + +正如在 GNOME Gitlab 的 [合并请求][10] 中提到的,在你的内核参数中添加 `sb-check=false` 就可以禁用这些警告。 + +不过,作为终端用户,你不需要担心这个问题。 + +你对即将在 GNOME 43 或更高版本中增加的这个功能有什么看法?你对 UEFI/安全启动有什么看法? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-secure-boot-warning/ + +作者:[Anuj Sharma][a] +选题:[lujun9972][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/anuj/ +[b]: https://github.com/lujun9972 +[1]: https://www.phoronix.com/news/GNOME-Secure-Boot-Warning +[2]: https://www.coreboot.org/ +[3]: https://gitlab.freedesktop.org/plymouth +[4]: https://news.itsfoss.com/wp-content/uploads/2022/08/gnome-secure-boot-mockup.png +[5]: https://blogs.gnome.org/hughsie/2022/07/29/emulated-host-profiles-in-fwupd/ +[6]: https://news.itsfoss.com/wp-content/uploads/2022/08/boot-security.png +[7]: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/176 +[8]: https://news.itsfoss.com/wp-content/uploads/2022/07/secure-boot-gnome.png +[9]: https://news.itsfoss.com/wp-content/uploads/2022/07/secure-boot-gnome1.png +[10]: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2333 diff --git a/sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md b/sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md deleted file mode 100644 index 8008de4c85..0000000000 --- a/sources/news/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "Secure Boot Disabled? GNOME Will Soon Warn You About it!" -[#]: via: "https://news.itsfoss.com/gnome-secure-boot-warning/" -[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Secure Boot Disabled? GNOME Will Soon Warn You About it! -====== - -When you install Linux on your UEFI-enabled computer, you have to disable _Secure Boot_ because the live USB will refuse to boot with the option enabled. - -Some mainstream Linux distributions support Secure Boot, but it is still challenging to set up for many other distributions (and with Nvidia hardware onboard). - -While things may not have improved over the years, Secure Boot is an essential protection feature in general. - -So, for the sake of convenience and make users aware of it, GNOME and Red Hat developers are working on notifying (or warning) the user if **Secure Boot** is disabled, as spotted by [Phoronix][1]. - -### How is it Useful? - -UEFI/Secure boot has been criticized for the DRM as it takes away the freedom from users. Many in the open source community still disagree with the implementation of UEFI/Secure Boot and TPM as it came as an inconvenience. This has given birth to projects like [Coreboot][2], flourishing in the open-source world. - -Of course, I would advise you to purchase new hardware with Coreboot support if you daily drive Linux, which is a different story. - -That said, it is safe to mention that Secure Boot is the easy way out. - -Secure Boot’s security is still debatable, considering the proprietary firmware bundled. But, it is a fundamental protection mechanism to secure the system’s firmware. - -So, the developers are preparing to show the warnings in [Plymouth][3] (boot splash screen), **GNOME Display Manager** (GDM), and **GNOME Control Center**. - -![Image Credits: GNOME Blog][4] - -One of the GNOME developers shared more details on it in a [blog post][5] while sharing some of these screenshots. - -![][6] - -A **Red Hat developer** mentions in the [merge request][7]: - -> Secure boot is used against several security threats when malware tries to infect the firmware of the system. Users may inadvertently disable or software may intentionally disable the secure boot. Consequently, the system is running on an insecure platform with incorrect configuration. If Plymouth could offer a warning to the user, the user could reboot and reconfigure their system or asks for help immediately. - -So, as a GNOME user, I think it should be interesting to see the difference it makes when it gets to the final release of GNOME 43 or any future releases. - -If you are curious, you can find this option under the **Device Security** section of the **Privacy** tab in GNOME Control Center, as shown in the screenshot below of my system running GNOME 43 alpha on Arch Linux: - -![][8] - -The menu can also show TPM, Intel BootGuard, and IOMMU protection details: - -![][9] - -It seems my system is not as secure as I thought… But maybe that’s the point of this feature? - -If you only used UEFI mode with your Linux distribution and had the protection features disabled for convenience, _could this make you aware of it?_ - -Probably. But, looking at the state of Linux distributions and the issues with enabling secure boot. I’m not confident if it would be that big of a deal. We shall find out soon. - -### How to Disable the Warnings? - -As mentioned in the [merge request][10] on GNOME Gitlab, adding `sb-check=false` to your kernel parameters will disable all these warnings. - -You do not need to worry about it as an end-user, though. - -_What do you think about this upcoming feature addition to GNOME 43 or later? What is your opinion about UEFI/Secure Boot?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-secure-boot-warning/ - -作者:[Anuj Sharma][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/anuj/ -[b]: https://github.com/lujun9972 -[1]: https://www.phoronix.com/news/GNOME-Secure-Boot-Warning -[2]: https://www.coreboot.org/ -[3]: https://gitlab.freedesktop.org/plymouth -[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxOSIgd2lkdGg9IjYxMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= -[5]: https://blogs.gnome.org/hughsie/2022/07/29/emulated-host-profiles-in-fwupd/ -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjM1MiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ -[7]: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/176 -[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjcwOCIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+ -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3MiIgd2lkdGg9IjYyMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= -[10]: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2333 From c597cfe67b28370ba6ec1ac4d20c05d600e8d8ff Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 3 Aug 2022 19:25:29 +0800 Subject: [PATCH 0613/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220802=20Pandas-=20The=20Popular=20Python=20Librar?= =?UTF-8?q?y=20for=20Data=20Analysis=20and=20Data=20Science.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rary for Data Analysis and Data Science.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md new file mode 100644 index 0000000000..a7a8859ec7 --- /dev/null +++ b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -0,0 +1,100 @@ +[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" +[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" +[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pandas: The Popular Python Library for Data Analysis and Data Science +====== + +*Pandas is a popular Python library. This article describes a few features and functions available in this library, and encourages readers to use it for practical business problems.* + +Pandas provides fundamental and high-level building blocks for practical, real world data analysis in Python. It is one of the most powerful and flexible open source tools for data analysis and manipulation, and provides data structures for modelling and manipulating tabular data (data in rows and columns). + +Pandas has two primary data structures. The first is a ‘series’ data structure that helps to retrieve data from the array or dictionary of Python objects. Data can be retrieved either by position or by specifying the index name. The second is the ‘dataframes’ data structure to store data in rows and columns. Columns have column names and rows are accessed using indexes. Columns can have different types of data including lists, dictionaries, pandas series, another dataframe, NumPy arrays, etc. + +### Processing various file types + +Data is often available in various formats. It is imperative that the tool used for data analysis is able to provide a wide range of methods for handling it. + +With Pandas, one can read various file types like CSV, JSON, XML, Parquet, SQL (see Table 1). + +| | Write | Read | +| :- | :- | :- | +| CSV | to_csv | read_csv | +| JSON | to_json | Read_json | +| Parquet | to_parquet | read_parquet | +| SQL | to_sql | read_sql, read_sql_query, read_sql_table | +| XML | to_xml | read_xml | + +### Data cleansing using Pandas + +In real-world scenarios, data is often incomplete and includes bad data. It is sometimes duplicated. Also, data includes sensitive and confidential information, which needs to be masked. Pandas offers ways to handle bad data by using methods like cleaning, dropping, replacing, masking, etc. + +a.  Empty rows can be removed with the *df.dropna(inplace=True)* operation. + +b.  Empty values can be replaced with *df.fillna(, inplace=True)*. We can specify the column name to be placed in a particular column. + +c. You can mask the values for sensitive and non-public data for all items NOT satisfying the condition *my_list.where(my_list < 5)*. Masking of values satisfying the condition can be done with*my_list.mask(my_list < 5)*. + +d. Duplicates can be dropped from a dataframe using: + +``` +df.drop_duplicates(‘’, keep = False) +df.drop_duplicates(‘’, keep = ‘first’) +df.drop_duplicates(‘’, keep = ‘last’) +``` + +### Data analysis using Pandas + +Table 2 lists the various functions in Pandas that perform data analysis as well as the syntax for usage. (Note: df stands for dataframe.) + +| Function | Description | Syntax | +| :- | :- | :- | +| Head | Head() function returns the first five rows | df.head(x) | +| tail | tail() function returns the last five rows by default | df.tail(x) | +| Loc | Loc function returns a particular row. Slicing of the data is also possible | loc(x:y) | +| Groupby | Groups data on a particular column | groupby(‘’) | +| Sum | Sum of values in a particular column | df[‘column’].sum() | +| Mean | Average of values in a particular column | df[‘column’]. mean() | +| Min | Minimum value in a particular column | df[‘column’].min() | +| Max | Maximum value in a particular column | df[‘column’].max() | +| Sort | Sorts dataframe in a column | df.sort_values([‘column’]) | +| Size | Rows * columns | df.size | +| Describe | Describes details of the dataframe | df.describe | +| Crosstab | Creates a frequency tabulation of rows and columns | pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | +| Duplicated | Returns True or False based on duplicate values in Column1 and Column2 | df.duplicated([column1, ‘column2’]) | + +### Advantages of Pandas + +* It supports multi-index (hierarchical index) used for easy analysis of data having a large number of dimensions. +* It supports the creation of pivot tables, stack and unstack operations. +* Categorical data containing finite values can be processed with Pandas. +* It supports grouping and aggregations. +* Sorting can be explicitly disabled. +* It supports filtering at both row-level (gets the rows satisfying the filter condition) and column-level (selects only the required columns). +* Helps in reshaping of data sets. You can also transpose the values of the array and convert to a List. When you are processing data using Python, you can convert the Pandas dataframe to a multi-dimensional NumPy array; the values member variable is used for this. +* Supports label-oriented slicing of data. + +### The disadvantages + +The code and syntax of Pandas is different from Python, which leads to a steep learning curve for some users. Also, a few concepts like three dimensional data are better handled in other libraries like NumPy. + +Pandas really elevates the data analysis process in an efficient manner. Its compatibility with other libraries makes it very conducive for use in various scenarios. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ + +作者:[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 From bf1863aff11e4c8390435243e9c87e822075c08d Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 3 Aug 2022 22:27:20 +0800 Subject: [PATCH 0614/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220802=20How=20I=20use=20the=20Linux=20sed=20comma?= =?UTF-8?q?nd=20to=20automate=20file=20edits.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...inux sed command to automate file edits.md | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 sources/tech/20220802 How I use the Linux sed command to automate file edits.md diff --git a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md new file mode 100644 index 0000000000..fec2299637 --- /dev/null +++ b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md @@ -0,0 +1,176 @@ +[#]: subject: "How I use the Linux sed command to automate file edits" +[#]: via: "https://opensource.com/article/22/8/automate-file-edits-sed-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use the Linux sed command to automate file edits +====== +Here are some tips and tricks to automating file edits from the Linux command line. + +![computer screen][1] + +Image by: Opensource.com + +When I use the Linux command line, whether I'm writing a new program on my desktop computer or managing a website on my web server, I often need to process text files. Linux provides powerful tools that I leverage to get my work done. I frequently use `sed`, an editor that can modify text according to a pattern. + +`sed` stands for *stream editor*, and it edits text in a file and prints the results. One way to use `sed` is to identify several occurrences of one string in a file and replace them with a different string. You can use `sed` to process text files to a seemingly endless degree, but I'd like to share a few ways I use `sed` to help me manage files. + +### Search and replace text in a file on Linux + +To use `sed`, you need to use a *regular expression*. A regular expression is a set of special characters that define a pattern. My most frequent example of using `sed` is replacing text in a file. The syntax for replacing text looks like this: `s/originaltext/newtext/`. The `s` tells sed to perform text replacement or swap occurrences of text. Provide the original text and new text between slashes. + +This syntax will only replace the first occurrence of `originaltext` on each line. To replace every occurrence, even if the original text appears more than once on a line, append `g` to the end of the expression. Here is an example: `s/originaltext/newtext/g`. + +To use this with `sed`, specify this regular expression with the `-e` option: + +``` +$ sed -e 's/originaltext/newtext/g' +``` + +For example, let's say I have a Makefile for a program called **game**, which simulates Conway's Game of Life: + +``` +.PHONY: all run clean + +all: game + +game: game.o +        $(CC) $(CFLAGS) -o game game.o $(LDFLAGS) + +run: game +        ./game + +clean: +        $(RM) *~ +        $(RM) *.o +        $(RM) game +``` + +The name **game** isn't very descriptive, so I might choose to rename it **life**. Renaming the `game.c` source file to `life.c` is easy enough, but now I need to modify the Makefile to use the new name. I can use `sed` to change every occurrence of **game** to **life**: + +``` +$ sed -e 's/game/life/g' Makefile +.PHONY: all run clean + +all: life + +life: life.o +        $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) + +run: life +        ./life + +clean: +        $(RM) *~ +        $(RM) *.o +        $(RM) life +``` + +This prints the `sed` output to the screen, which is a good way to check if the text replacement will do what you want. To make these changes to the Makefile, first, make a backup of the file, then run `sed` and save the output to the original filename: + +``` +$ cp Makefile Makefile.old +$ sed -e 's/game/life/g' Makefile.old > Makefile +``` + +If you are confident that your changes are exactly what you want, use the `-i` or `--in-place` option to edit the file in place. However, I recommend adding a backup filename suffix like `--in-place=.old` to save a copy of the original file in case you need to restore it later. It looks like this: + +``` +$ sed --in-place=.old -e 's/game/life/g' Makefile +$ ls Makefile* +Makefile  Makefile.old +``` + +### Quoting files with sed on Linux + +You can use other features of regular expressions to match specific instances of text. For example, you might need to replace text that occurs at the start of a line. With `sed`, you can match the beginning of a line with **^**, the caret character. + +One way I use "start of line" in replacing text is when I need to quote a file in an email. Let's say I want to share my Makefile in an email, but I don't want to include it as a file attachment. Instead, I prefer to "quote" the file in the body of an email, using **>** before each line. I can use the following `sed` command to print out an edited version to my terminal, which I can copy and paste into a new email: + +``` +$ sed -e 's/^/>/' Makefile +>.PHONY: all run clean +> +>all: life +> +>life: life.o +>       $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) +> +>run: life +>       ./life +> +>clean: +>       $(RM) *~ +>       $(RM) *.o +>       $(RM) life +``` + +The `s/^/>/` regular expression matches the start of each line (**^**) and places a **>** there. Effectively, this starts each line with the **>** symbol. + +The tabs might not show up correctly in an email, but I can replace all tabs in the Makefile with a few spaces by adding another regular expression: + +``` +$ sed -e 's/^/>/' -e 's/\t/  /g' Makefile +>.PHONY: all run clean +> +>all: life +> +>life: life.o +>  $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) +> +>run: life +>  ./life +> +>clean: +>  $(RM) *~ +>  $(RM) *.o +>  $(RM) life +``` + +The `\t` indicates a literal tab, so `s/\t/ /g` tells sed to replace all tabs in the input with two spaces in the output. + +If you need to apply lots of edits to files, you can save your `-e` commands in a file and use `-f` to tell `sed` to use that file as a "script." This approach is especially useful if you need to make the same edits frequently. I might have prepared the Makefile for quoting in email using a script file called `quotemail.sed` : + +``` +$ cat quotemail.sed +s/^/>/ +s/\t/  /g +$ sed -f quotemail.sed Makefile +>.PHONY: all run clean +> +>all: life +> +>life: life.o +>  $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) +> +>run: life +>  ./life +> +>clean: +>  $(RM) *~ +>  $(RM) *.o +>  $(RM) life +``` + +### Learn to work with sed on Linux + +`sed` is a great tool to keep in your Linux command-line toolkit. Explore the `sed` manual page and learn more about how to use it. Type `man sed` at the command line to get complete documentation about the different command line options and how to use `sed` to process text files. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/automate-file-edits-sed-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/features_solutions_command_data.png From baea823209608c9e4047f94fbef458044b0039b5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 3 Aug 2022 22:29:04 +0800 Subject: [PATCH 0615/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220803=20A=20sysadmin-s=20guide=20to=20network=20i?= =?UTF-8?q?nterface=20configuration=20files.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o network interface configuration files.md | 284 ++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 sources/tech/20220803 A sysadmin-s guide to network interface configuration files.md diff --git a/sources/tech/20220803 A sysadmin-s guide to network interface configuration files.md b/sources/tech/20220803 A sysadmin-s guide to network interface configuration files.md new file mode 100644 index 0000000000..bce8ab3cf6 --- /dev/null +++ b/sources/tech/20220803 A sysadmin-s guide to network interface configuration files.md @@ -0,0 +1,284 @@ +[#]: subject: "A sysadmin's guide to network interface configuration files" +[#]: via: "https://opensource.com/article/22/8/network-configuration-files" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A sysadmin's guide to network interface configuration files +====== +Simplify the complex world of interface configuration files with this handy tutorial. + +![Why the operating system matters even more in 2017][1] + +Image by: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0 + +In the first article of this series, [Get started with NetworkManager on Linux][2], I looked at what NetworkManager does and some of the tools it provides for viewing network connections and devices. I discussed using the `nmcli` command to view the status of network devices and connections on a host. I also mentioned that NetworkManager does not need interface configuration files for most hosts. However, it can create its own INI-style connection configuration files, and it recognizes the older and now deprecated network interface configuration files. + +This article explores three questions: + +* Why do I not use interface configuration files? +* Why do I use interface configuration files? +* Why do I use the old network interface configuration files? + +Sound confusing? Read on. + +### My network philosophy + +I talk about philosophy a lot. I even wrote a book, [The Linux Philosophy for SysAdmins][3], which has tenets that apply to the design and structure of computers, operating systems, and networks. I won't bore you with all the details, but there are some things to consider when designing–or redesigning–a network. + +As a "Lazy SysAdmin," I like to "Find the Simplicity"–yes, those are two of the tenets–and create an elegant network design. This is not just about the physical design and layout of the network components and wiring, although the best, most elegant, and easiest networks to work on are well laid out physically and look good. However, this discussion is about the logical structure of the network. + +### Why I don't use interface configuration files? + +I don't use interface configuration files on my network mostly because each host is dynamically configured at boot time using the [Dynamic Host Configuration Protocol (DHCP) server][4]. This allows centralized configuration and management of a few computers up to hundreds or even thousands of systems. The bottom line is that all the configuration data necessary for each host is stored in the DHCP configuration file, `/etc/dhcp/dhcpd.conf`, where it is centrally managed. + +I impose simplicity on my network by using tools that provide central management for most of the connected hosts–all except for hosts that work as routers and provide server services. The idea is that using DHCP to provide all of the network configuration data needed by most of the network hosts simplifies my job and allows me to be the "Lazy SysAdmin." Suppose something changes on the network, such as the IP address to the default gateway or the primary name server? Changing that information in a single location, the `dhcpd.conf` file, is much less work than changing a static configuration on ten or a thousand hosts. + +NetworkManager does not need local configuration files when DHCP provides the network configuration information. By default, all Fedora and Red Hat hosts obtain their network configuration from a DHCP server. This makes installing new hosts on a network easy and simple. All you need is a DHCP server. + +For most networks with a single host, such as in a home office with one or two laptops and a few other devices, the wireless router provided by the ISP contains the DHCP server required to offer a complete set of configuration data to all your devices. The router's DHCP server provides the network configuration data even if you use the 4-port wired switch on the back of most wireless routers to connect a wired desktop computer. + +### Why I do use interface configuration files? + +Most of my network hosts don't need static network configurations and use DHCP. + +However, there are two hosts on which I do use static network configuration: My network server–the one that runs the DHCP server–and the Linux host I use for my network/firewall. These two hosts are best configured using static setups that don't depend upon external configurations. + +Think about this for a minute. If the DHCP server must have an IP address to send network configuration information, including an IP address, to itself… Well, that just won't work—sort of the network equivalent of the chicken and egg situation. + +DHCP clients request network configuration using a broadcast on the network, and the server responds to that request using the MAC address of the requesting client. The DHCP server cannot also be a DHCP client, so this just won't work. + +Even if using the DHCP server to set its own IP address–and other network configuration attributes–could be made to work, all of the recommendations I see on the Internet suggest that it would be a really terrible idea and that no good administrator would even consider doing such a thing. + +The Linux host I use for a router and firewall has four network interfaces, three of which are currently active, and one on the motherboard, which is defective. It also has a set of forwarding and routing rules that must always be consistent. This configuration is best dealt with using static network settings. + +For example, one interface on my router connects to the WAN side of my wireless router. The wireless router provides an internal DHCP server for hosts connected to its LAN and WiFi side but depends upon either static or DHCP configuration on the WAN side. So I configure both the WAN side of the wireless router and the NIC that connects it to my Linux router using a static setup. + +Another interface on that Linux router connects to the outside world via a static IP address provided by my ISP. If I set that interface to be configured by DHCP, the ISP's router would serve it one of the remaining other IP addresses in the eight-address block I have been assigned. + +Any type of static network configuration, as opposed to DHCP, requires network configuration files. + +### Why I still use the old style ifcfg- files + +The answer to this is really simple. I just have not gotten around to making the switch. These files are located in the `/etc/sysconfig/network-scripts` directory, and–fortunately for me–NetworkManager will still search for and use these if it has none of its own network connection files. There won't be any network connection files because they do not get created automatically, and I have not needed to create them. + +I intend to make the switch in Part 3 of this series and bring my network up to current configuration practices. For now, however, it is still a good idea to know about the old-style network configuration files because there are still a lot of them around. + +### What I have now + +I'll review the current state of the network on my router. Aside from the local loop (`lo` )–which is always present on Unix and Linux hosts–this host currently has three active network interface cards (NICs). Due to the problems with the on-board NIC described in Part 1 of this series, I deactivated it in UEFI/BIOS of this host so that it no longer shows up. I have also [disabled IPv6][5] on my network as I don't need it. + +The following is the `nmcli` command showing the state of the NICs on my router/firewall host: + +``` +[root@wally ~]# nmcli +np4s0: connected to enp4s0 +        "Realtek RTL8111/8168/8411" +        ethernet (r8169), 84:16:F9:04:44:03, hw, mtu 1500 +        ip4 default +        inet4 45.20.209.41/29 +        route4 45.20.209.40/29 metric 102 +        route4 default via 45.20.209.46 metric 102 +  +enp1s0: connected to enp1s0 +        "Realtek RTL8111/8168/8411" +        ethernet (r8169), 84:16:F9:03:E9:89, hw, mtu 1500 +        inet4 192.168.10.1/24 +        route4 192.168.10.0/24 metric 101 +  +enp2s0: connected to enp2s0 +        "Realtek RTL8111/8168/8411" +        ethernet (r8169), 84:16:F9:03:FD:85, hw, mtu 1500 +        inet4 192.168.0.254/24 +        route4 192.168.0.0/24 metric 100 +  +lo: unmanaged +        "lo" +        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536 +  +DNS configuration: +        servers: 192.168.0.52 8.8.8.8 8.8.4.4 +        interface: enp4s0 +  +        servers: 192.168.0.52 8.8.8.8 +        interface: enp2s0 +  +        servers: 192.168.0.52 8.8.8.8 +        interface: enp1s0 +``` + +Each of these NICs has an interface configuration file in the `/etc/sysconfig/network-scripts/` directory. This is because they were originally installed at a time when NetworkManager—or the earlier network service—created those files automatically during installation. Since NetworkManager continues to recognize these files, there is no pressing need for me to do anything different. + +### Interface configuration file naming + +Fortunately, most of you missed out on some of the fun all us old-time sysadmins used to have when adding, removing, or just moving the NIC hardware in hosts with multiple NICs. It seemed like all of the NICs would get renamed whenever anything changed. That meant I would need to determine which name each NIC was given and modify the interface configuration files to match the correct names. + +There are now very consistent NIC naming conventions based on the NIC's logical position on the PCIe or USB data busses. This convention was created around 2009 to eliminate those problems. + +#### How it works–sort of + +The `udev` device manager detects when a new device has been added to the system, such as a new NIC, and creates a rule to identify and name it if one does not already exist. During the early part of the startup phase, the Linux kernel uses `udev` to identify connected devices, including network interface controllers. At this stage, the devices are still known by their traditional names of **ethX**. Shortly after that, `systemd` renames the devices according to a series of hierarchical naming schemes. + +I used my firewall system as an example of a system with multiple network connections. You can also do this on your own Linux hosts. + +``` +[root@wally ~]# dmesg | grep eth +[    2.081738] r8169 0000:01:00.0 eth0: RTL8168e/8111e, 84:16:f9:03:e9:89, XID 2c2, IRQ 126 +[    2.081830] r8169 0000:01:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko] +[    2.089218] r8169 0000:02:00.0 eth1: RTL8168e/8111e, 84:16:f9:03:fd:85, XID 2c2, IRQ 127 +[    2.089303] r8169 0000:02:00.0 eth1: jumbo features [frames: 9194 bytes, tx checksumming: ko] +[    2.094383] r8169 0000:04:00.0 eth2: RTL8168e/8111e, 84:16:f9:04:44:03, XID 2c2, IRQ 128 +[    2.094467] r8169 0000:04:00.0 eth2: jumbo features [frames: 9194 bytes, tx checksumming: ko] +[    2.142068] r8169 0000:01:00.0 enp1s0: renamed from eth0 +[    2.152128] r8169 0000:04:00.0 enp4s0: renamed from eth2 +[    2.161346] r8169 0000:02:00.0 enp2s0: renamed from eth1 + +[root@wally ~]# +``` + +This example shows that a little over two seconds into the Linux startup sequence, the **ethX** network devices were located, and less than a second later, they were renamed **enpXs0**. + +All current releases of RHEL, CentOS, and Fedora use the newest NIC naming conventions. Most other distros also use this naming convention. + +The NIC naming convention for these distributions is described in detail in the RHEL 7 document, "Networking Guide," with an explanation of how the names are derived. Using the NetworkManager tools to manage networking is covered in the RHEL 8 document, "Configuring and Managing Networking." + +The following is an excerpt from Chapter 11 of the RHEL 7 "Networking Guide": + +* Scheme 1: Names incorporating Firmware or BIOS provided index numbers for on-board devices (example: eno1), are applied if that information from the firmware or BIOS is applicable and available, else falling back to scheme 2. +* Scheme 2: Names incorporating Firmware or BIOS provided PCI Express hotplug slot index numbers (example: ens1) are applied if that information from the firmware or BIOS is applicable and available, else falling back to scheme 3. +* Scheme 3: Names incorporating physical location of the connector of the hardware (example: enp2s0), are applied if applicable, else falling directly back to scheme 5 in all other cases. +* Scheme 4: Names incorporating interface's MAC address (example: enx78e7d1ea46da), is not used by default, but is available if the user chooses. +* Scheme 5: The traditional unpredictable kernel naming scheme, is used if all other methods fail (example: eth0). + +The primary function of the revised naming schemes is to provide a consistent set of NIC names so that installing a new NIC or even just a reboot would not cause the NIC names to change. This by itself is well worth the changes. I have had plenty of opportunities to fight with the apparently random renaming of multiple **ethX** devices on a single host. That was much less fun than learning the revised naming schemes. + +### Understanding interface configuration files + +These interface configuration files are easy to create and modify. The following configuration files on my firewall/router host are all located in the `/etc/sysconfig/network-scripts` directory. This directory previously contained all of the scripts used to manage the network connections, but NetworkManager has made them obsolete. Only the deprecated interface configuration files might remain in this directory. + +``` +-rw-r--r-- 1 root root 381 Jan 11 +2021 ifcfg-enp1s0 +-rw-r--r-- 1 root root 507 Jul 27 +2020 ifcfg-enp2s0 +-rw-r--r-- 1 root root 924 Mar 31 14:24 ifcfg-enp4s0 +``` + +This is the configuration file for the interface that connects the firewall host to my home network, as you can see from the comment: + +``` +[root@wally network-scripts]# cat ifcfg-enp2s0 +# Interface configuration file for enp2s0 / 192.168.0.254 +# This interface is for the internal network +# Correct as of 20220711 +HWADDR=84:16:f9:03:fd:85 +NAME="enp2s0" +TYPE=Ethernet +ONBOOT=yes +BOOTPROTO=static +IPADDR=192.168.0.254 +PREFIX=24 +DNS1=192.168.0.52 +DNS2=8.8.8.8 +DEFROUTE=no +PEERDNS=yes +PEERROUTES=no +IPV4_FAILURE_FATAL=no +``` + +This file is for a fairly simple static configuration that provides the IP address, the CIDR prefix, and two DNS server IP addresses. No default route (gateway) IP address is specified as that is configured in one of the other interface configuration files. + +The code block below shows the interface configuration file for the connection from my Linux router to the ISP's router. It uses one of the static IP addresses provided to me by my ISP. + +``` +############################################################################## +# Interface configuration file for enp4s0 / 45.20.209.41 +# This NIC was installed to circumvent problems with motherboard NIC, eno1. +------------------------------------------------------------------------------ +# This interface is for the WAN - the AT&T fiber optic external network +# Correct as of 20220711 +############################################################################## +TYPE= "Ethernet" +BOOTPROTO="static" +NM_CONTROLLED= "yes" +DEFROUTE= "yes" +NAME=enp4s0 +UUID="fa2117dd-6c7a-44e0-9c9d-9c662716a352" +ONBOOT= "yes" +HWADDR=84:16:f9:04:44:03 +IPADDR=45.20.209.41 +PREFIX=29 +GATEWAY=45.20.209.46 +DNS1=192.168.0.52 +DNS2=8.8.8.8 +DNS3=8.8.4.4 +PEERDNS=no +IPv6INIT=no +IPv6_AUTOCONF=no +IPv6_DEFROUTE=no +``` + +Since I don't use IPv6 and have disabled it, I could delete the IPv6 statement in both files. + +#### Network configuration variables + +The table below lists the most common network configuration variables, along with some brief explanations for each. Many IPv6 options are functionally equivalent to the similarly named IPv4 ones. Local configuration variable settings override those provided by a DHCP server. You can use DHCP for configuring a host but use an interface configuration file to override one or more of the DHCP configuration variables. + +| Configuration variable | Description | +| :- | :- | +| TYPE | Type of network such as Ethernet or token ring. | +| PROXY_METHOD | Proxy configuration method. "none" means no proxy is in use. | +| BROWSER_ONLY | Whether a proxy configuration is for browsers only. | +| BOOTPROTO | Options are dhcp, bootp, none, and static. The "none" option implies DHCP. | +| DEFROUTE | This interface is the default route for this host to the outside world. | +| IPv4_FAILURE_FATAL | If this is set to "no" failure to obtain an IPv4 connection will not affect any attempt to make an IPv6 connection. | +| NAME | The interface name, such as enp0s3. This should match the interface name in the interface configuration file name. | +| UUID | A Universally Unique Identifier for the interface. It is created with a hash of the interface name. The HWADDR is an older means of bonding the file to the hardware interface, and I have found that the UUID can be commented out or deleted without issues. | +| DEVICE | The name of the interface to which this configuration file is bound. | +| ONBOOT | If yes, this starts the interface at boot (really startup time). If set to no, the interface is not started until a user logs in at the GUI or manually starts the interface. | +| HWADDR | The MAC address of the interface. This is one of the more important fields in the file as it is used to bond the file to the correct hardware interface. The UUID is a more recent addition and can also be used, but the HWADDR was first and is more widely used. | +| DNS1, DNS2 | Up to two name servers may be specified. | +| USERCTL | Specifies whether non-privileged users may start and stop this interface. Options are yes/no. | +| IPADDR | The IP Address assigned to this NIC. | +| BROADCAST | The broadcast address for this network such as 10.0.2.255. | +| NETMASK | The netmask for this subnet such as 255.255.255.0. Use either NETMASK or PREFIX but not both. | +| PREFIX | The CIDR prefix for the network such as 24. Use either NETMASK or PREFIX but not both. | +| NETWORK | The network ID for this subnet such as 10.0.2.0. | +| SEARCH | The DNS domain name to search when doing lookups on unqualified hostnames such as using studentvm1 instead of studentvm1.example.com. | +| GATEWAY | The network router or default gateway for this subnet, such as 10.0.2.1. | +| PEERDNS | The yes value indicates that /etc/resolv.conf is to be modified by inserting the DNS server entries specified by DNS1 and DNS2 options in this file. No means do not alter the resolv.conf file. Yes is the default when DHCP is specified in the BOOTPROTO line. | +| IPv6INIT | Whether to initialize IPv6 or not. The default is yes. | +| IPv6_AUTOCONF | Yes means use DHCP for configuration of IPv6 on this interface. | +| IPv6_DEFROUTE | This interface is the IPv6 default route for this host to the outside world. | +| IPv6_FAILURE_FATAL | If this is set to "no" failure to obtain an IPv6 connection will not affect any attempt to make an IPv4 connection. | +| IPv6_ADDR_GEN_MODE | Configure IPv6 Stable Privacy addressing. | + +There are many more configuration variables than are listed here, but these are the ones that are most frequently used. + +### Final thoughts + +There are still plenty of Linux hosts around that use the interface configuration files described in this article. Despite being deprecated, NetworkManager still recognizes these files and can use them to configure network interfaces. However, most modern Linux systems use NetworkManager, so no configuration files are needed unless they serve a special use case, like a server or a router. + +I have a few hosts that require more than just the standard NetworkManager configuration. For me, it has just not been a priority to change from the old interface configuration files to the current connection configuration files used by NetworkManager. To prevent future problems with my network, I need to switch to the NetworkManager network connection files. The next article in this series will describe how I make that switch. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/network-configuration-files + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/yearbook-haff-rx-linux-file-lead_0.png +[2]: https://opensource.com/article/22/4/networkmanager-linux +[3]: http://www.both.org/?p=855 +[4]: https://opensource.com/article/22/7/configure-dhcp-server +[5]: https://opensource.com/article/22/8/disable-ipv6 From 2a6d6f2dc8b604eabf29bfa5bc82775489897c4d Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 3 Aug 2022 22:37:23 +0800 Subject: [PATCH 0616/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220803=20GNOME=2043=20Plans=20to=20Introduce=20Red?= =?UTF-8?q?esigned=20Quick=20Settings.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to Introduce Redesigned Quick Settings.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md diff --git a/sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md b/sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md new file mode 100644 index 0000000000..5756f556d7 --- /dev/null +++ b/sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md @@ -0,0 +1,109 @@ +[#]: subject: "GNOME 43 Plans to Introduce Redesigned Quick Settings" +[#]: via: "https://www.debugpoint.com/gnome-43-quick-settings/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME 43 Plans to Introduce Redesigned Quick Settings +====== +The upcoming GNOME 43 release changes the system tray menu completely. Here’s how it looks. + +![][0] + +Among all the attractive changes coming to GNOME 43, the redesigned quick settings menu is the most visible revamp. The quick settings or system tray menu remained the same for a long time. There were minor tweaks, such as earlier consolidation of menu items. But we never got to experience a complete overhaul before. + +![Complex Quick Settings View – GNOME 43][1] + +### GNOME 43 Quick Settings + +So, GNOME 43 quick settings look, menu items are changing to look below. + +![GNOME 43 quick settings – side-by-side basic view][2] + +Firstly, the individual menu items are now more visible with “pill-shaped” buttons. These buttons perform dual functions when applied. You click on them to enable/disable the function (i.e. quick toggles). Also, if you click on the small arrow, you get additional options. + +Secondly, the ‘pill-buttons’ appearance indicates whether the option is enabled or disabled by changing its colour. + +The submenu, which opens up after you bring up more settings for a function, can draw itself on top of the earlier menu items. This eliminates another additional click. + +Another interesting change which I feel is super helpful is the active indicator of privacy-related functions. For example, if an app currently uses your mic or you are having a screen-sharing session with your colleagues/friends, the quick settings give you additional colour identification to appraise you. + +In addition, the batter indicator is also coming up as more descriptive inside the quick settings menu with an icon and the available power capacity. + +### When the quick settings would be available? + +The merge request is currently open ([MR 2392][3]) as of publishing this page. + +What does that mean? + +It means that GNOME devs and contributors will test and review the changes in design and functionality. So, I guess in a few weeks, it might get merged. + +GNOME 43 release candidate and hard code freeze due a month from now, i.e. September 3rd, 2022. If all goes well, it should be available for you to test via GNOME nightly OS. + +Here are the mock-up images and sample videos (credit to the GNOME team) to treat your eyes which I organized in a single place. + +A caution note is that all these are still subject to change in the final release. + +* ![Quick toggles -2][3a] +* ![Quick toggles -1][3b] +* ![Complex Quick Settings View - GNOME 43][3c] +* ![GNOME 43 quick settings - side-by-side view][3d] + +![quick-toggles-4][4] + +![Quick toggles -2][5] + +![Quick toggles -1][6] + +![Complex Quick Settings View - GNOME 43][7] + +![GNOME 43 quick settings - side-by-side view][8] + +![][9] + +### Does it resemble anything? + +Do you remember when I [reviewed dahliaOS earlier][10] based on Google’s Fuchsia operating system? When I first saw these mock-ups, I remember they looked somewhat similar to dahliaOS’s tray menu. See below. Although it’s at the bottom and looks a little wider – you can see the resemblance. + +![System Tray of dahliaOS][11] + +Anywho. + +### Thoughts? + +If you ask me, I guess it’s refreshing and probably a long due. An overall nice and intuitive design requires no additional learning from the new users. Finally, GNOME 43 is shaping to be a powerful release after all. + +**Now you**: What do you think about this design change that impacts all the users? Let’s discuss in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-43-quick-settings/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/gnome43-head-q.jpg +[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/Complex-Quick-Settings-View-GNOME-43.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/GNOME-43-quick-settings-side-by-side-view.jpg +[3]: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2392 +[3a]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-2-1600x950.jpg +[3b]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-1-1600x877.jpg +[3c]: https://www.debugpoint.com/wp-content/uploads/2022/08/Complex-Quick-Settings-View-GNOME-43.jpg +[3d]: https://www.debugpoint.com/wp-content/uploads/2022/08/GNOME-43-quick-settings-side-by-side-view-545x320.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/quick-toggles-4-1024x1024.png +[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-2-1024x608.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-1-1024x561.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Complex-Quick-Settings-View-GNOME-43-1024x576.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/GNOME-43-quick-settings-side-by-side-view.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/08/quicksettings-submenu.webm +[10]: https://www.debugpoint.com/dahlia-os-alpha/ +[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/System-Tray.jpg From 988326bf78b3fb88d7e32d62c40ebd7cc83330f7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 3 Aug 2022 22:38:24 +0800 Subject: [PATCH 0617/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220803=20Play=20Crossword=20Puzzle=20Games=20on=20?= =?UTF-8?q?Linux=20Desktop=20With=20this=20Brand=20New=20GNOME=20App.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...x Desktop With this Brand New GNOME App.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/tech/20220803 Play Crossword Puzzle Games on Linux Desktop With this Brand New GNOME App.md diff --git a/sources/tech/20220803 Play Crossword Puzzle Games on Linux Desktop With this Brand New GNOME App.md b/sources/tech/20220803 Play Crossword Puzzle Games on Linux Desktop With this Brand New GNOME App.md new file mode 100644 index 0000000000..e72ff605f6 --- /dev/null +++ b/sources/tech/20220803 Play Crossword Puzzle Games on Linux Desktop With this Brand New GNOME App.md @@ -0,0 +1,121 @@ +[#]: subject: "Play Crossword Puzzle Games on Linux Desktop With this Brand New GNOME App" +[#]: via: "https://itsfoss.com/crosswords/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Play Crossword Puzzle Games on Linux Desktop With this Brand New GNOME App +====== +I suck at word games. + +Scrabble, spelling bees, and crosswords are certainly not my cup of tea. + +But I know people who are crazy about these games. People who like to spend their tea time solving crossword puzzles. + +You’ll love this new GNOME app if you are one of those [cruciverbalists][1]. + +### Crosswords: GNOME app for solving crossword puzzles + +As reported by [LWN][2], longtime GNOME contributor Jonathan Blandford is developing a new crossword puzzle game for Linux users. It’s called Crosswords, no surprises there. + +There are a few puzzles provided by the game. In addition to that, you can download and play puzzles from popular news outlets like Atlantic, Guardian, etc. You can also open .ipuz and .puz files to play the puzzles you have downloaded or created. + +![crosswords interface][3] + +When you choose the puzzles from a news outlet, Crosswords downloads the puzzle for the current day. + +![Crossword puzzles from The Atlantic][4] + +While there is no scope for downloading the puzzles for the days in the past, your downloaded puzzles are saved in the game, and you can revisit them anytime. + +![Downloaded puzzles are saved for each outlet][5] + +So, all you have to do is download the crossword puzzles daily. You can visit them later if you don’t get time to play it the same day. + +Do note that puzzles may not be downloaded for all the outlets. It showed me an error when I tried downloading from The New Yorker. + +![Crosswords may not be able to download puzzles all the time][6] + +If you are stuck, you can take hints or show incorrect guesses. The ? in the top menu gives you a few options in that regard. + +![Hints are also available][7] + +Your games are saved automatically. You can close the game and resume playing it whenever you get time. + +Sounds promising? Let’s see how you can install it in your Linux distribution. + +### Installing Crosswords + +**The application is under development and you may notice a few issues**. For some reason, the application interface prefers the portrait mode. When I resized the application window, hitting the back button to select some other puzzle made the interface switch to vertical, portrait mode. + +If you can get past this annoyance, you can enjoy Crosswords. + +It is available in Flatpak packing format. If your [distribution has Flatpak support enabled][8], you can install it using the following commands. + +Add the Flathub repository first. + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +Install the package now. + +``` +flatpak install flathub org.gnome.Crosswords +``` + +![crosswords installed linux][9] + +Once installed, you can look for the game in the menu and start it. + +![crossword puzzle game linux][10] + +#### Removing Crosswords + +If you don’t like Crosswords, you can remove it from your system using the following command: + +``` +flatpak uninstall org.gnome.Crosswords +``` + +Press Y when you are asked to confirm. + +![Removing Crosswords][11] + +### Conclusion + +There are plenty of puzzle and board games available for Linux users. [Wordle][12], [2048][13], Sudoku, Mahjong, or even the classic Solitaire game are there for you when you want to kill some time to exercise your brain. + +Tiny games like these do not require heavy graphics and system resources. It’s good to see one more addition to the list of such games. + +If you try Crosswords, don’t forget to share your experience in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/crosswords/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://www.dictionary.com/browse/cruciverbalist +[2]: https://lwn.net/Articles/903475/ +[3]: https://itsfoss.com/wp-content/uploads/2022/08/crosswords-interface.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/daily-corssword-puzzle.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/downloaded-puzzles-crosswords.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/problem-downloading-crossword-puzzle-from-new-yorker.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/hints-crosswords.png +[8]: https://itsfoss.com/flatpak-guide/ +[9]: https://itsfoss.com/wp-content/uploads/2022/08/crosswords-installed-linux.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/crossword-puzzle-game-linux.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/uninstall-crosswords.png +[12]: https://itsfoss.com/wordle-game-linux/ +[13]: https://itsfoss.com/2048-game/ From 6547c45abb658004aad4bc84ea75b7c1e3786b6f Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 3 Aug 2022 22:39:25 +0800 Subject: [PATCH 0618/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220803=20Linux=20Kernel=206.0=20is=20Likely=20the?= =?UTF-8?q?=20Next=20Version=20Upgrade=20With=20Initial=20Rust=20Code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Version Upgrade With Initial Rust Code.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md diff --git a/sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md b/sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md new file mode 100644 index 0000000000..937e1491b9 --- /dev/null +++ b/sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md @@ -0,0 +1,80 @@ +[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" +[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal/" +[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code +====== +Linux Kernel’s next upgrade is going to be 6.0, instead of Linux 5.20. That’s what Linus Torvalds is going with. Sounds good! + +![linux kernel][1] + +You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][2]. + +But, the news wasn’t limited to one interesting observation. + +Linus Torvalds also mentioned at the end of the [release announcement][3] that he might call the next version upgrade of Linux Kernel as 6.0. + +### Linux Version Numbers Decoded: Why 6.0? + +So, why the change in version numbers for an upgrade? + +To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). + +If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: + +``` +uname -r +``` + +* The first number ‘5’ represents the major version +* The second number, ’18’ represents the series of minor updates. +* The third number, ’15,’ represents the patch version + +The Linux Kernel usually follows the [Semantic Versioning][4] (A versioning system used in open source software). + +However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. + +So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. + +Linus Torvalds mentioned the same for changing the version number in the mailing list: + +> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. + +### New Features Coming to Linux 6.0 + +If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: + +* Inclusion of Rust code (early phase) +* Real-time Kernel building support +* New Hardware support +* Usual Improvements to various Filesystems +* Scheduler changes + +Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. + +But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. + +*So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-6-0-reveal/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/08/linux-kernel-6-0.jpg +[2]: https://news.itsfoss.com/linux-kernel-5-19-release/ +[3]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ +[4]: https://semver.org/ From f055bce7940991ebb7e5aa48f088853e94277043 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Wed, 3 Aug 2022 23:31:38 +0800 Subject: [PATCH 0619/3123] translated --- ...ld Custom Docker Image Using Dockerfile.md | 304 ------------------ ...ld Custom Docker Image Using Dockerfile.md | 304 ++++++++++++++++++ 2 files changed, 304 insertions(+), 304 deletions(-) delete mode 100644 sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md create mode 100644 translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md diff --git a/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md b/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md deleted file mode 100644 index 4dc0f38ffc..0000000000 --- a/sources/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md +++ /dev/null @@ -1,304 +0,0 @@ -[#]: subject: "How To Build Custom Docker Image Using Dockerfile" -[#]: via: "https://ostechnix.com/a-brief-introduction-to-dockerfile/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How To Build Custom Docker Image Using Dockerfile -====== -Explaining Dockerfile With Example - -In this guide, we will see a brief introduction to **Dockerfile** and how to use Dockerfile to automate the process of **building custom docker images** in Linux. - -#### Contents - -1. What Is Dockerfile? -2. Understanding Dockerfile Format -3. Creating a Dockerfile -4. Build Docker Image Using Dockerfile - -### What Is Dockerfile? - -Dockerfile is a simple text file with instructions to build docker image. It contains all the commands a user could call on the command line to build an image. - -We can use the dockerfile to create our own custom images. We can then share these custom Docker images via Docker Hub. - -For those wondering, Docker Hub is a hosted repository service provided by Docker for finding and sharing container images with your team and of course with anyone in the world. - -Imagine this scenario. Earlier if we want to use **Nginx**, then we need to install and configure the Nginx with many steps involved. Thanks to Dockerhub, we can now download and run the prebuilt container image of Nginx in couple minutes. - -![Nginx Docker Image In Dockerhub][1] - -To pull Nginx image from DockerHub, run: - -``` -# docker pull nginx -``` - -Once we pulled the docker images, we can use it by running the image using command: - -``` -# docker run -it -d -p 8080:8080 nginx -``` - -It is that simple! - -To know more about Docker usage, refer the following guide. - -* [Getting Started With Docker][2] - -There are over 100,000 container images from software vendors, open-source projects, and the community available in Dockerhub. - -You can search and download any container image of your choice from Dockerhub and start using it immediately as shown above. - -### Understanding Dockerfile Format - -Docker can build images automatically by reading the **instructions** from a Dockerfile. - -A typical Dockerfile contains the following instructions: - -**1.** **FROM** - It will set the base image of the container. - -**Example:** - -``` -FROM ubuntu:22.04 -``` - -It will set the base image of the container as Ubuntu. If tag 22.04 is not specified, it will take a tag as "latest". - -**2.** **LABEL** - It is a key-value pair used to specify metadata information of the image. - -**Example:** - -``` -LABEL ENV=”DEVELOPMENT” -``` - -**3.** **RUN** - It is used to execute the command on the base image and it will create a new layer. - -**Example:** - -``` -RUN apt-get update -RUN apt-get install tomcat -``` - -**4.** **CMD** - It is used to set a command to execute first when the container starts. - -**Example:** - -``` -CMD [“java”, “-jar”, “app.jar”] -``` - -**5.** **EXPOSE** - It will expose the port to access the container. Container will listen on this network port. We can access the output using this port. - -**Example:** - -``` -EXPOSE 8080 -``` - -**6.** **MAINTAINER** - It will give the detail of the author who created this Docker image. - -**Example:** - -``` -MAINTAINER info@ostechnix.com -``` - -**7.** **ENV** - It is used to set environment variables in the key-value pair. These variables are set during the image build and are available after container created. - -**Example:** - -``` -ENV DB_NAME=”MySQL” -ENV DB_VERSION=”8.0” -``` - -**8.** **COPY** - It is used to copy local files to the container. - -**Example:** - -``` -COPY /target/devops.jar devops.jar -``` - -**9.** **ADD** - It works same as copy but having some more feature like we can extract local tar and add remote URL. - -**Example:** - -``` -ADD devops.tar.xz / . -ADD http://example.com/abc.git /usr/local/devops/ -``` - -**10.** **ENTRYPOINT** - It is used to set the main command for the image. It works as same as CMD instruction. The only difference between CMD and ENTRYPOINT is instructions are not overwritten in ENTRYPOINT. - -**Example:** - -``` -ENTRYPOINT [“java”, “-jar”, “app.jar”] -``` - -**11.** **VOLUME** - It will creates a mount point with the specified name. - -**Example:** - -``` -VOLUME /app/devops -``` - -**12.** **USER** - It will sets the user name and user group to use when running the image. - -**Example:** - -``` -USER dhruv -USER admin -``` - -**13.** **WORKDIR** - It will set the working directory. It will create the directory if not present. - -**Example:** - -``` -WORKDIR /var/lib/ -``` - -Here is a sample Dockerfile for your reference. - -``` -FROM ubuntu:latest -MAINTAINER Senthilkumar Palani "info@ostechnix.com" -RUN apt-get install -y software-properties-common python -RUN add-apt-repository ppa:chris-lea/node.js -RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ jammy universe" >> -/etc/apt/sources.list -RUN apt-get update -RUN apt-get install -y nodejs -RUN mkdir /var/www -ADD app.js /var/www/app.js -CMD ["/usr/bin/node", "/var/www/app.js"] -``` - -Allow me to show you a simple example to create a sample Dockerfile and build an image using it. - -### Creating a Dockerfile - -Create a file named **Dockerfile**, : - -``` -# nano dockerfile -``` - -Add the following lines. In the this example, we are updating and installing the **vim** and **curl** packages. - -``` -FROM alpine - -RUN apk update -RUN apk add vim -RUN apk add curl -``` - -![Dockerfile For Alpine Linux][3] - -Press **CTRL+O** and **CTRL+X** to save the file and close it. - -Now we have the Dockerfile in place. Let us go ahead and build an image using the Dockerfile. - -**Heads Up:** If you use **[Docker Desktop][4]**, you can run docker commands as normal user. - -### Build Docker Image Using Dockerfile - -To build an image from the Dockerfile, simply run: - -``` -# docker build -t alpine . -``` - -Please note the **dot** (.) at the end. - -**Sample output:** - -``` -[+] Building 51.2s (8/8) FINISHED - => [internal] load build definition from Dockerfile 0.1s - => => transferring dockerfile: 104B 0.0s - => [internal] load .dockerignore 0.1s - => => transferring context: 2B 0.0s - => [internal] load metadata for docker.io/library/alpine:latest 38.8s - => [1/4] FROM docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a 2.7s - => => resolve docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a 0.0s - => => sha256:d7d3d98c851ff3a95dbcb70ce09d186c9aaf7e25d48 1.47kB / 1.47kB 0.0s - => => sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379 2.80MB / 2.80MB 2.4s - => => sha256:7580ece7963bfa863801466c0a488f11c86f85d9988 1.64kB / 1.64kB 0.0s - => => sha256:9b2a28eb47540823042a2ba401386845089bb7b62a9637d 528B / 528B 0.0s - => => extracting sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379cbf2b 0.2s - => [2/4] RUN apk update 4.3s - => [3/4] RUN apk add vim 3.5s - => [4/4] RUN apk add curl 1.3s - => exporting to image 0.4s - => => exporting layers 0.4s - => => writing image sha256:14231deceb6e8e6105d2e551799ff174c184e8d9be8af 0.0s - => => naming to docker.io/library/alpine 0.0s - -Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them -``` - -As per the above command, Docker will start to build images automatically by reading the instructions from the **Dockerfile** saved in the current working directory. Remember, we have defined `apk update`, `apk add vim` and `apk add curl` commands in the dockerfile? These actions will be automatically performed as well. - -If the Dockerfile is saved in somewhere else, you can mention its path using **-f** flag like below. - -``` -# docker build -f /path/to/a/Dockerfile . -``` - -After creating the image, we can run it using command: - -``` -# docker run -it alpine -``` - -This command will start the Alpine container and attach to it. - -``` -/ # uname -a -Linux 8890fec82de8 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022 x86_64 Linux -/ # cat /etc/alpine-release -3.16.1 -/ # -``` - -If you have Docker Desktop, you can view the running container under the Containers tab. - -![View Containers In Docker Desktop][5] - -This is how one can build a custom container images using Dockerfile. - -We've only covered the basics. There is a lot more you can do with Dockerfile. I recommend you to refer the official [Dockerfile reference][6] guide to learn more about it. - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/a-brief-introduction-to-dockerfile/ - -作者:[sk][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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/07/Nginx-Docker-Image-In-Dockerhub.png -[2]: https://ostechnix.com/getting-started-with-docker/ -[3]: https://ostechnix.com/wp-content/uploads/2022/07/Dockerfile-For-Alpine-Linux.png -[4]: https://ostechnix.com/docker-desktop-for-linux/ -[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Containers-In-Docker-Desktop-1024x524.png -[6]: https://docs.docker.com/engine/reference/builder/ diff --git a/translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md b/translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md new file mode 100644 index 0000000000..dae4df3b25 --- /dev/null +++ b/translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md @@ -0,0 +1,304 @@ +[#]: subject: "How To Build Custom Docker Image Using Dockerfile" +[#]: via: "https://ostechnix.com/a-brief-introduction-to-dockerfile/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何使用 Dockerfile 创建自定义 Docker 镜像 +====== + + +在这份指南中,我们将看到 **Dockerfile** 的简要介绍以及如何在 Linux 中使用 Dockerfile 来自动的 **创建自定义 Docker 镜像** 。 + +#### 目录 + +1. 什么是 Dockerfile ? +2. 理解 Dockerfile 格式 +3. 创建一个 Dockerfile +4. 使用 Dockerfile 创建 Docker 镜像 + +### 什么是 Dockerfile ? + +Dockerfile 是附有构建 Docker 镜像说明的易于理解的文本文件。它囊括了用户在创建镜像时可以调用的所有命令。 + +我们可以使用 Dockerfile 创建我们自定义的镜像。可以通过 Docker Hub 分享的自定义 Docker 镜像。 + +对于好奇的人来说,Docker Hub 是 Docker 提供的托管存储库服务,用于团队查找和共享容器镜像,当然世界上任何人也都可以访问。 + +想象一下,早期如果我们想用 **Nginx**,我们要通过很多步骤,才能安装和配置好 Nginx 。得益于 DockerHub ,现在我们可以在几分钟内,下载并运行 Nginx 的预置容器镜像。 + +![Nginx Docker Image In Dockerhub][1] + +运行如下命令从 DockerHub 上拉取 Nginx 镜像: + +``` +# docker pull nginx +``` + +一旦我们拉取了 Docker 镜像,可以运行如下命令使用它: + +``` +# docker run -it -d -p 8080:8080 nginx +``` + +就这样,十分简单! + +参考下方链接,了解更多使用 Docker 的方式: + +* [开始使用 Docker][2] + +Dockerhub 上有超过十万个来自软件供应商、开源项目以及社区的容器镜像。 + +你可以从 Dockerhub 上下载你选择的镜像,并且使用上面的命令开始使用它。 + +### 理解 Dockerfile 格式 + +Docker 可以读取 Dockerfile 中的 **指令** 来自动的创建镜像。 + +典型的 Dockerfile 包含如下指令: + +**1.** **FROM** —— 这会设置容器的基础镜像。 + +**例如:** + +``` +FROM ubuntu:22.04 +``` + +这会将容器的基础镜像设置为 Ubuntu 。如果 ‘22.04’ 这个标志没有特指,则会设为 “最新版本”。 + +**2.** **LABEL** —— 这是用来明确镜像的元数据信息的键值对。 + +**例如:** + +``` +LABEL ENV=“DEVELOPMENT” +``` + +**3.** **RUN** —— 这会在基础镜像中执行指令并创建一个新层。 + +**例如:** + +``` +RUN apt-get update +RUN apt-get install tomcat +``` + +**4.** **CMD** —— 这用来设置容器启动后先执行的命令。 + +**例如:** + +``` +CMD [“java”, “-jar”, “app.jar”] +``` + +**5.** **EXPOSE** —— 设置用于访问容器的端口。容器将会监听该端口。我们可以用来获得输出。 + +**例如:** + +``` +EXPOSE 8080 +``` + +**6.** **MAINTAINER** —— 显示创建镜像作者的信息。 + +**例如:** + +``` +MAINTAINER info@ostechnix.com +``` + +**7.** **ENV** —— 用来设置环境变量的键值对。改变量在镜像创建的时候设置,并在容器创建好后可以使用。 + +**例如:** + +``` +ENV DB_NAME=”MySQL” +ENV DB_VERSION=”8.0” +``` + +**8.** **COPY** —— 用来拷贝本地文件至容器中。 + +**例如:** + +``` +COPY /target/devops.jar devops.jar +``` + +**9.** **ADD** —— 具有与拷贝相同的功能,不过更进一步还可以提取本地的 tar 文件或者从 URL 拷贝文件。 + +**例如:** + +``` +ADD devops.tar.xz / . +ADD http://example.com/abc.git /usr/local/devops/ +``` + +**10.** **ENTRYPOINT** —— 用来设置镜像的主要命令。与 CMD 指令功能相同。不同的是 ENTRYPOINT 中的指令不会被重写。 + +**例如:** + +``` +ENTRYPOINT [“java”, “-jar”, “app.jar”] +``` + +**11.** **VOLUME** —— 该指令用来创建指定位置的挂载点。 + +**例如:** + +``` +VOLUME /app/devops +``` + +**12.** **USER** —— 将设置运行镜像并使用的用户名称以及用户组 + +**例如:** + +``` +USER dhruv +USER admin +``` + +**13.** **WORKDIR** —— 这会设置工作目录。如果目录不存在,则会创建。 + +**例如:** + +``` +WORKDIR /var/lib/ +``` + +这是一个 Dockerfile 的样本,可以参考一下: + +``` +FROM ubuntu:latest +MAINTAINER Senthilkumar Palani "info@ostechnix.com" +RUN apt-get install -y software-properties-common python +RUN add-apt-repository ppa:chris-lea/node.js +RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ jammy universe" >> +/etc/apt/sources.list +RUN apt-get update +RUN apt-get install -y nodejs +RUN mkdir /var/www +ADD app.js /var/www/app.js +CMD ["/usr/bin/node", "/var/www/app.js"] +``` + +我将向你展示创建一个 Dockerfile 、创建并使用镜像的简单例子。 + +### 创建一个 Dockerfile + +创建一个名为 **dockerfile** 的文件: + +``` +# nano dockerfile +``` + +添加下面几行命令。我们将更新并安装 **vim** 和 **curl** 包: + +``` +FROM alpine + +RUN apk update +RUN apk add vim +RUN apk add curl +``` + +![Dockerfile For Alpine Linux][3] + +按下 **CTRL+O** 和 **CTRL+X** 键保存文件并关闭。 + +现在 Dockerfile 已经就位。让我们继续,用该 Dockerfile 创建一个镜像。 + +**注意:** 如果你在使用 **[桌面版 Docker][4]**,你可以像一个普通用户一样运行 docker 命令。 + +### 使用 Dockerfile 创建 Docker 镜像 + +只需运行以下命令,便可以使用 Dockerfile 创建 Docker 镜像: + +``` +# docker build -t alpine . +``` + +请注意最后有一个 **点** (**.**) + +**输出示例:** + +``` +[+] Building 51.2s (8/8) FINISHED + => [internal] load build definition from Dockerfile 0.1s + => => transferring dockerfile: 104B 0.0s + => [internal] load .dockerignore 0.1s + => => transferring context: 2B 0.0s + => [internal] load metadata for docker.io/library/alpine:latest 38.8s + => [1/4] FROM docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a 2.7s + => => resolve docker.io/library/alpine@sha256:7580ece7963bfa863801466c0a 0.0s + => => sha256:d7d3d98c851ff3a95dbcb70ce09d186c9aaf7e25d48 1.47kB / 1.47kB 0.0s + => => sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379 2.80MB / 2.80MB 2.4s + => => sha256:7580ece7963bfa863801466c0a488f11c86f85d9988 1.64kB / 1.64kB 0.0s + => => sha256:9b2a28eb47540823042a2ba401386845089bb7b62a9637d 528B / 528B 0.0s + => => extracting sha256:530afca65e2ea04227630ae746e0c85b2bd1a179379cbf2b 0.2s + => [2/4] RUN apk update 4.3s + => [3/4] RUN apk add vim 3.5s + => [4/4] RUN apk add curl 1.3s + => exporting to image 0.4s + => => exporting layers 0.4s + => => writing image sha256:14231deceb6e8e6105d2e551799ff174c184e8d9be8af 0.0s + => => naming to docker.io/library/alpine 0.0s + +Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them +``` + +按照上面的命令, Docker 会通过保存在当前工作目录中的 **Dockerfile** 中的命令开始自动的创建镜像。还记得我们在 Dockerfile 中保存的 `apk update`, `apk add vim` 和 `apk add curl` 命令吗?这些命令也将会自动的执行。 + +如果 Dockerfile 保存在其他目录,你可以使用 **-f** 标志来指定路径,例如: + +``` +# docker build -f /path/to/a/Dockerfile . +``` + +创建好镜像后,我们可以使用如下命令运行它: + +``` +# docker run -it alpine +``` + +该命令会启动这个 Alpine 容器并连接到它。 + +``` +/ # uname -a +Linux 8890fec82de8 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022 x86_64 Linux +/ # cat /etc/alpine-release +3.16.1 +/ # +``` + +如果你使用桌面版 Docker ,你可以通过容器选项(Containers tab)界面来查看运行中的容器。 + +![View Containers In Docker Desktop][5] + +这就是使用 Dockerfile 构建自定义容器映像的方式。 + +我们仅仅讲了基础内容。你可以用 Dockerfile 做到很多东西。建议你参考一下官方 [Dockerfile 参考][6] ,以了解更多内容。 + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/a-brief-introduction-to-dockerfile/ + +作者:[sk][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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/07/Nginx-Docker-Image-In-Dockerhub.png +[2]: https://ostechnix.com/getting-started-with-docker/ +[3]: https://ostechnix.com/wp-content/uploads/2022/07/Dockerfile-For-Alpine-Linux.png +[4]: https://ostechnix.com/docker-desktop-for-linux/ +[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Containers-In-Docker-Desktop-1024x524.png +[6]: https://docs.docker.com/engine/reference/builder/ From f6fc110e55728258a9d492315f925485f7dbc141 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 4 Aug 2022 08:32:56 +0800 Subject: [PATCH 0620/3123] translating --- ... Open Source eBook Reader App for Linux.md | 106 ------------------ ... Open Source eBook Reader App for Linux.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md create mode 100644 translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md diff --git a/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md deleted file mode 100644 index 1f2eab42f8..0000000000 --- a/sources/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Koodo is an All-in-one Open Source eBook Reader App for Linux" -[#]: via: "https://itsfoss.com/koodo-ebook-reader/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Koodo is an All-in-one Open Source eBook Reader App for Linux -====== - -There are [several ebook readers available for desktop Linux users][1]. - -Almost all distributions come with a document reader that can open PDF files. It may also support other file formats like epub or Mobi, but that’s not guaranteed. - -This is why specialized applications like [Foliate][2] and Calibre are needed to read and manage ebooks in various formats. - -Recently, I came across another open source software that boasts several exciting features for an ebook reader. - -### Koodo: It has all you can think of - -[Koodo][3] is an all-in-one open source ebook reader with features to help you better manage and read your ebooks. It is a cross-platform app you can download on Linux, Windows, and macOS. You can even [use it in a web browser][4]. - -The user interface looks modern, probably because it is an Electron app. You’ll have to import the books and add them to Koodo. It doesn’t import books by folders. You can select multiple files for import, though. Got too many books? Add some to your favorites for quick access. - -![Koodo ebook reader interface][5] - -I used the AppImage format, and for reasons unknown, it didn’t show the thumbnails for the file. - -![Koodo ebook reader dark mode interface][6] - -It supports popular ebook file formats like PDF, Mobi, and Epub. But it doesn’t end here. It also supports comic book formats like CBR, CBZ, and CBT. There is more. It can also read FictionBooks (.fb2), Markdown, and Rich Text Format (RTF), along with MS Office word documents (Docx). - -Apart from supporting the huge number of file formats, it also provides several features to improve your reading experience. - -You can highlight texts and annotate them with text notes. You can also search for selected text in the current document or on Google. - -![Annotate, highlight or translate selected text][7] - -The highlighted text and notes can be accessed from the sidebar in the main application window. - -There are options for text-to-speech and translating selected text. However, neither of the two features worked in my testing. I used the AppImage version of Koodo. - -Koodo supports various layouts. You can read the documents in single-column, two-column, or continuous scrolling layouts. For ePub and Mobi format, it automatically opens in a two-column layout. For PDF, single column layout is selected by default. - -You can customize the UI as per your liking. Change the fonts, size, paragraph spacing, text color, background color, line spacing, brightness, and more. - -![koodo additional features][8] - -Koodo supports night reading mode along with five different themes. You can switch between the themes as per your preference. - -You can also synchronize your books and reading data (like highlights, notes, etc.) across devices with Dropbox or other [cloud services][9] that support Webdav protocol. - -![You can backup your data in your preferred cloud service][10] - -### Getting Koodo on Linux - -If you want to experience Koodo for experimentation, you can try its online version. You get to use Koodo in a web browser. Your data is stored locally in the browser, and if you clean the browser cache, you lose the data (highlights, notes, etc. but not the books stored on your computer). - -[Try Koodo Online][11] - -If you like its features, you can opt to install Koodo on your computer. - -There are several options available for Linux users. You have deb file for Debian and Ubuntu-based distributions, RPM for Red Hat and Fedora and Snap, AppImage and ex file for all distributions. - -You can get the installer of your choice from the project’s homepage. - -[Download Koodo][12] - -### Conclusion - -Koodo is not perfect. It has a huge list of features, but not everything works flawlessly, as I found in my testing. - -Still, it’s a good application that has the potential to become popular among users. There are only a few applications that package so many features. - -Kudos to Koodo developer for creating a promising open source application for desktop users. - -You can [visit the project’s repository][13] to look into source code, report bugs, or show some love to developers by starring the project. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/koodo-ebook-reader/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/best-ebook-readers-linux/ -[2]: https://itsfoss.com/foliate-ebook-viewer/ -[3]: https://koodo.960960.xyz/en -[4]: https://reader.960960.xyz/#/manager/empty -[5]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-ebook-reader-interface.webp -[6]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-interface.png -[7]: https://itsfoss.com/wp-content/uploads/2022/07/koobo-ebook-reader-features.webp -[8]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-additional-features.webp -[9]: https://itsfoss.com/cloud-services-linux/ -[10]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-backup-restore-feature.png -[11]: https://reader.960960.xyz/ -[12]: https://koodo.960960.xyz/en -[13]: https://github.com/troyeguo/koodo-reader diff --git a/translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md new file mode 100644 index 0000000000..3b3aa3775a --- /dev/null +++ b/translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md @@ -0,0 +1,106 @@ +[#]: subject: "Koodo is an All-in-one Open Source eBook Reader App for Linux" +[#]: via: "https://itsfoss.com/koodo-ebook-reader/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Koodo 是一款适用于 Linux 的一体化开源电子书阅读器应用 +====== + +[有几个可供桌面 Linux 用户使用的电子书阅读器][1]。 + +几乎所有发行版都带有可以打开 PDF 文件的文档阅读器。它还可能支持其他文件格式,例如 epub 或 Mobi,但这不能保证。 + +这就是为什么需要像 [Foliate][2] 和 Calibre 这样的专门应用来阅读和管理各种格式的电子书的原因。 + +最近,我遇到了另一个开源软件,它为电子书阅读器提供了几个令人兴奋的功能。 + +### Koodo:它有你能想到的一切 + +[Koodo][3] 是一款多合一的开源电子书阅读器,具有帮助你更好地管理和阅读电子书的功能。它是一个跨平台应用,你可以在 Linux、Windows 和 macOS 上下载。你甚至可以[在网络浏览器中使用它][4]。 + +用户界面看起来很现代,可能是因为它是一个 Electron 应用。你必须导入书籍并将它们添加到 Koodo。它不按文件夹导入书籍。不过,你可以选择多个文件进行导入。书太多了?将一些添加到你的收藏夹以便快速访问。 + +![Koodo ebook reader interface][5] + +我使用了 AppImage 格式,但由于未知原因,它没有显示文件的缩略图。 + +![Koodo ebook reader dark mode interface][6] + +它支持流行的电子书文件格式,如 PDF、Mobi 和 Epub。但这并没有结束。它还支持 CBR、CBZ 和 CBT 漫画书格式,它还支持更多。它还可以阅读 FictionBooks (.fb2)、Markdown 和富文本格式 (RTF) 以及 MS Office word 文档 (Docx)。 + +除了支持海量文件格式外,它还提供了多种功能来改善你的阅读体验。 + +你可以高亮显示文本并使用文本注释对其进行注释。你还可以在当前文档或 Google 上搜索选定的文本。 + +![Annotate, highlight or translate selected text][7] + +可以从主应用窗口的侧边栏中访问高亮显示的文本和注释。 + +有文本到语音和翻译选定文本的选项。但是,这两个功能在我的测试中都不起作用。我使用了 Koodo 的 AppImage 版本。 + +Koodo 支持各种布局。你可以以单列、双列或连续滚动布局阅读文档。对于 ePub 和 Mobi 格式,它会自动以双列布局打开。对于 PDF,默认选择单列布局。 + +你可以根据自己的喜好自定义 UI。更改字体、大小、段落间距、文本颜色、背景颜色、行间距、亮度等。 + +![koodo additional features][8] + +Koodo 支持夜间阅读模式以及五个不同的主题。你可以根据自己的喜好在主题之间切换。 + +你还可以使用 Dropbox 或其他支持 Webdav 协议的[云服务][9]跨设备同步你的书籍和阅读数据(如高亮、笔记等)。 + +![You can backup your data in your preferred cloud service][10] + +### 在 Linux 上获取 Koodo + +如果你想体验 Koodo 进行实验,你可以试试它的在线版本。你可以在网络浏览器中使用 Koodo。你的数据本地存储在浏览器中,如果你清理浏览器缓存,你会丢失数据(高亮、笔记等,但不会丢失计算机上存储的书籍)。 + +[在线尝试 Koodo][11] + +如果你喜欢它的功能,你可以选择在您的计算机上安装 Koodo。 + +Linux 用户有多种选择。你有 Debian 和基于 Ubuntu 的发行版的 deb 文件、Red Hat 和 Fedora 的 RPM 以及所有发行版的 Snap、AppImage 和可执行文件。 + +你可以从项目主页获取你选择的安装程序。 + +[下载 Koodo][12] + +### 总结 + +Koodo 并不完美。它有大量功能,但并非所有功能都能完美运行,正如我在测试中发现的那样。 + +尽管如此,它仍然是一个很好的应用,有可能在用户中流行起来。只有少数几个应用包含如此多的功能。 + +感谢 Koodo 开发人员为桌面用户创建了一个有前途的开源应用。 + +你可以[访问项目的仓库][13]来查看源代码、报告 bug 或者通过给项目加星来向开发者表达一些喜爱。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/koodo-ebook-reader/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-ebook-readers-linux/ +[2]: https://itsfoss.com/foliate-ebook-viewer/ +[3]: https://koodo.960960.xyz/en +[4]: https://reader.960960.xyz/#/manager/empty +[5]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-ebook-reader-interface.webp +[6]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-interface.png +[7]: https://itsfoss.com/wp-content/uploads/2022/07/koobo-ebook-reader-features.webp +[8]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-additional-features.webp +[9]: https://itsfoss.com/cloud-services-linux/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/koodo-backup-restore-feature.png +[11]: https://reader.960960.xyz/ +[12]: https://koodo.960960.xyz/en +[13]: https://github.com/troyeguo/koodo-reader From 0ecefae7d7beb0f9c203ac58a95d6e0ff64a78ad Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 4 Aug 2022 08:35:27 +0800 Subject: [PATCH 0621/3123] translating --- .../tech/20220725 How to use LibreOffice Writer templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220725 How to use LibreOffice Writer templates.md b/sources/tech/20220725 How to use LibreOffice Writer templates.md index 4748e290d5..d6a1ac176f 100644 --- a/sources/tech/20220725 How to use LibreOffice Writer templates.md +++ b/sources/tech/20220725 How to use LibreOffice Writer templates.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/libreoffice-writer-templates" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8aa0d80f32c3aa3e5d46dd97bd43b95ecbc60676 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Thu, 4 Aug 2022 09:57:08 +0800 Subject: [PATCH 0622/3123] Rename sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md to sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md --- ...20803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md (100%) diff --git a/sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md b/sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md similarity index 100% rename from sources/tech/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md rename to sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md From 3d9ef330dca63e6f6738861e986500996640cc0f Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Thu, 4 Aug 2022 10:46:50 +0800 Subject: [PATCH 0623/3123] Update 20220727 How To Automatically Update Running Docker Containers Using Watchtower.md --- ...cally Update Running Docker Containers Using Watchtower.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md index 06b041b281..c8c4c0f08c 100644 --- a/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md +++ b/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -163,7 +163,7 @@ via: https://ostechnix.com/automatically-update-running-docker-containers/ 作者:[sk][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8149c6bf762c75f08196a267aa59778e0dd68ccc Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 4 Aug 2022 14:36:28 +0800 Subject: [PATCH 0624/3123] . --- ...220715 Microservices Collaboration with Containerised Kafka.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated => sources}/tech/20220715 Microservices Collaboration with Containerised Kafka.md (100%) diff --git a/translated/tech/20220715 Microservices Collaboration with Containerised Kafka.md b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md similarity index 100% rename from translated/tech/20220715 Microservices Collaboration with Containerised Kafka.md rename to sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md From 8228285456f114c810fb326e4c4961a74987b3ec Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 4 Aug 2022 14:38:03 +0800 Subject: [PATCH 0625/3123] . --- ...0715 Microservices Collaboration with Containerised Kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md index dc502fd7c2..4c0bdb3f03 100644 --- a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md +++ b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/07/microservices-collaboration-with-containerised-kafka/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: "yjacks" +[#]: translator: "" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 30fc95534a7e1eab314b4874c8f2ad0199e53b71 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 4 Aug 2022 15:57:52 +0800 Subject: [PATCH 0626/3123] R @robsean --- ... 10 Features of Linux Mint 21 -Vanessa-.md | 140 +++++++++--------- 1 file changed, 69 insertions(+), 71 deletions(-) diff --git a/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md index 4c6eb05050..cb54482ec9 100644 --- a/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md +++ b/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md @@ -3,162 +3,160 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Linux Mint 21 “Vanessa” 的 10 大顶级特色功能 +Linux Mint 21 “Vanessa” 的 10 大特色 ====== -我们总结了即将到来的 Linux Mint 21 “Vanessa” 的 10 大顶级特色功能。找出为你准备了什么。 +> 我们总结了 Linux Mint 21 “Vanessa” 的 10 大特色,你可以看看有哪些是为你而准备的。 + +![](https://www.debugpoint.com/wp-content/uploads/2022/07/mint21feature.jpg) + +Linux Mint 21 “Vanessa” 是 [Linux Mint][2] 的第 36 个发布版本,它带来了一系列特色,以及对桌面上的有用改善。这些特色散落在 Cinnamon 桌面、内核变化、Xapps 更新等处。 + +我在这份 Linux Mint 21 的重要特色列表对它们做了个总结。 + +### Linux Mint 21 “Vanessa” 的重要特色 ![Linux Mint 21 Cinnamon Desktop][1] -Linux Mint 21 “Vanessa” 是 [Linux Mint][2] 的第 36 个发布版本,它带来了一份特色功能的列表和桌面上的一些有用改善。特色功能散落在 Cinnamon 桌面、内核更改、Xapps 更新等处。 +#### 1、Ubuntu 22.04 及其相关更新 -我已经在这份 Linux Mint 21 顶级特色功能列表中总结出来了。 +也许最重要的变化就是 Linux Mint 21 的基础了,它现在基于 [Ubuntu 22.04 “Jammy Jellyfish”][3] 。上一次的主要版本,即 Linux Mint 20 “Ulyana” ,是基于四年前发布的 Ubuntu 20.04 “Focal Fossa” 。沧海桑田,现在与 2020 年的世界已然完全不同。 -### Linux Mint 21 “Vanessa” 的顶级特色功能 +因此,大量的软件包、版本升级、新的性能改善 —— 所有的这些底层更新都来到了 Linux Mint 21 。这包括最新的长期支持的 [Linux 内核 5.15][4] ,这带来了更多硬件系列的支持、以及针对编程、开发和网络的工具链的更新。 -#### 1. Ubuntu 22.04 及其相关更新 +#### 2、Timeshift 备份工具的重大变化 -也许最重要的变化就是Linux Mint 21 的基础,它现在基于 [Ubuntu 22.04 “Jammy Jellyfish”][3] 。上一次的主要发布版本,例如 Linux Mint 20 “Ulyana” ,是基于四年前发布的 Ubuntu 20.04 “Focal Fossa” 。沧海桑田,2020 年的世界状态与现在完全不同。 +几个月前,Mint 开发团队 [宣布][5] :他们将接管著名的备份工具 Timeshift,并将其作为一个 “XApps” 继续开发。这是一个重大变化。你可能会问为什么? -因此,很对软件包、版本升级、新的性能改善 – 所有的这些底层更新都涉及到了 Linux Mint 21 。这包括最新的 LTS [Linux Kernel 5.15][4] ,这带来了更多硬件系列的支持、以及针对编程、开发和网络的工具链的更新。 - -#### 2. Timeshift 备份工具的主要变化 - -几个月前,Mint 开发组 [宣布][5] :他们正在接管著名的备份工具 Timeshift 的开发,并将其继续开发为一个 “XApps” 。因此,这是一个重要的变化。为什么,你可能会询问? - -好吧,Timeshift 工具的开发组,Tony George ,正忙于其它的项目。你可能听说过针对于 Linux 的 “[TeeJeeTech][6]” 应用程序。它是由 Tony 创建的,并且有一些很快的应用程序。因此,他没有足够多的时间来专注于 Timeshift 的开发和增强。 +好吧,Timeshift 工具的开发者 Tony George 正忙于其它的项目。你可能听说过 Linux 的 “[TeeJeeTech][6]” 应用。它是由 Tony 创建的,并且有一些很酷的应用。因此,他没有足够多的时间来专注于 Timeshift 的开发和改进。 ![Timeshift creating snapshot][7] -话虽如此,不过,现在有了 Linux Mint 来维护它,一些新的特色功能出现在这个发布版本之中,例如,Timeshift 现在可以在 rsync 模式 (而非 btrfs 模式) 下准确计算出下一次备份时所需要的磁盘空间。此外,如果它看到磁盘空间在备份后小于 1 GB ,它将会停止备份过程。 +说到这里,由于 Linux Mint 现在在维护它,这个发布版本带来了一些新的功能,例如,在 rsync 模式(不是 btrfs 模式)时,现在 Timeshift 可以确定进行下一次备份需要多少磁盘空间。此外,如果它看到磁盘空间在备份后小于 1 GB ,会停止备份过程。 -#### 3. WebP 支持 +#### 3、WebP 支持 -WebP 图像是谷歌针对网络创建的一种相当新的图像格式。It beings better compression and reduced size while maintaining good quality than traditional JPEG or PNG images. +WebP 图像是谷歌为 Web 创建的一种相当新的图像格式。它带来了更好的压缩率,在保持与传统的 JPEG 和 PNG 图片相当的良好质量的同时,减少了文件大小。 -在 Linux 桌面中支持 WebP (查看图像、缩略图或编辑) 需要一些 [额外安装][8] 的软件包。看着流行的 Linux Mint 开发组在桌面应用程序和衍生程序上带来开箱即用的 WebP 支持 +在 Linux 桌面支持 WebP(如查看图像、缩略图或编辑)需要 [额外安装][8] 一些软件包。考虑到其流行程度,Linux Mint 开发团队为桌面应用及这个衍生发行版带来了开箱即用的 WebP 支持。 -这意味着,在 Nemo 文件管理器中可以显示 WebP 图像的缩略图,并可以在 xviewer 中查看它们。mint 开发组总是优先考虑最终用户的处境,这是因为其它的发行版仍然不默认支持 WebP ,例如 Ubuntu 等等。不仅如此,新的应用程序 [xapp-thumbnailers][9] 现在还能帮助 Nemo 文件管理器来预览文件类型: +这意味着,在 Nemo 文件管理器中可以显示 WebP 图像的缩略图,并可以在 xviewer 中查看它们。Mint 开发团队总是优先考虑到最终用户,而诸如 Ubuntu 之类的其它发行版在默认支持 WebP 方面仍然落后。不仅如此,新的应用程序 [xapp-thumbnailers][9] 现在还能帮助 Nemo 文件管理器预览更多的文件类型,如: * ePub * 带有专辑封面的 MP3 * RAW 图像 * AppImage -#### 4. 进程监视器 +#### 4、进程监视器 -一个名称为 进程监视器 process monitor 的小巧方便的工具,将会告知你,在你的系统中正在发生什么。在你的系统正在通过 Timeshift 来自动更新或备份时,在系统托盘处的这个小图标将会显示。在这些情况下,你的系统可能会变慢,这些漂亮的图标可以告诉你答案。 +一个名称为 进程监视器process monitor 的小巧方便的工具,将会告知你系统中正在发生什么。当你的系统正在自动更新或通过 Timeshift 备份时,系统托盘上的这个小图标就会显示出来。在这些情况下,你的系统可能会变慢,而这个漂亮的图标可以告诉你原因。 -#### 5. 改善打印支持 +#### 5、改善打印支持 -Linux Mint 针对硬件设备配置了各种驱动程序,默认情况下就支持打印机。 这个版本的 Mint 带来 [网络打印协议Internet Printing Protocol (IPP)][10] ,可以无线驱动打印机和扫描仪。 +Linux Mint 针对硬件设备配置了各种驱动程序,默认情况下就支持打印机。这个版本的 Mint 带来 [网络打印协议][10]Internet Printing Protocol(IPP)支持,可以免驱动进行打印和扫描。 -另外,也默认安装了 HP 的启动程序 HPLIP 的最新版本 (3.21.12) 。 +另外,它也默认安装了 HP 的驱动程序 HPLIP 的最新版本 3.21.12 。 -所有的这些变化都提高了打印机和扫描仪的使用效率。像你这样的最终用户可以轻松地享受打印和扫描。它是一个 Linux 发行版的一个重要的方面,但是它并不是总是有效的。在 [评价很多发行版][11] 时,我发现很多发行版不能自动地检测出打印机,甚至不能使用打印机。 +所有的这些变化都简化了打印机和扫描仪的使用,而像你这样的最终用户可以轻松地打印和扫描。这是一个 Linux 发行版的一个重要的方面,但并不是总是能顺利工作的。在 [点评过很多发行版][11] 后,我发现很多发行版无法检测到打印机,乃至不能打印。 -很高兴看到 mint 开发组贡献这个重要的功能。 +很高兴看到 Mint 开发团队对这个关键功能做出了贡献。 -#### 6. 窗口动画更新 +#### 6、窗口动画更新 -在窗口和桌面动画效果中有一些相当大的变化。第一,现在合并了窗口和桌面的效果设置。先前,效果设置是一些单独的组区,可以对动画进行微观化的控制。 +窗口和桌面动画效果有一些相当大的变化。首先,合并了窗口和桌面的效果设置。先前,是在不同的部分对动画进行细微的控制。 -这里是并排对比视图。 +这里是对比视图: ![][12] ![][13] -第二,移除了映射窗口和桌面效果选项。 +其次,取消了映射窗口和桌面效果选项。 第三,带来一个新的控件,用于更改整体动画的快慢速度。 -最后,一个禁用或启用在整个桌面上的所有动画的全局开关,给予你更多的控制选项。 +最后,还有一个可以禁用或启用在整个桌面上的所有动画的全局开关,给予你更多的控制选项。 -我相信这是一个精心设计的对话框和一些更简洁清晰的高级选项。 +我相信这是一个经过精心设计的、可以让人更清楚地了解的对话框和高级选项。 -#### 7. Mutter 重新构建 +#### 7、Mutter 重新构建 -让我们讨论一下 [Cinnamon 桌面环境版本 5.4][14] ,它随 Linux Mint 21 而来。它是最新的 Cinnamon 发布版本,Mint 是第一个将其带给用户的的发行版 (而不是传统观念上的 Arch Linux 用户,他们要获取它还有 [一点早][15]) 。 +让我们来看一下随 Linux Mint 21 而来的 [Cinnamon 桌面环境版本 5.4][14]。它是最新的 Cinnamon 发布版本,Mint 是第一个将其带给用户的的发行版(除了传统的 Arch Linux 用户,他们得到它 [有点超早][15])。 -最后,开发者对其窗口管理器 Mutter 完成了重新构建,在 Cinnamon 5.4 中是 Muffin 。即使有一些后期移植的变化,但是由于 Muffin 的原始版本是从 Mutter 复刻出来的,所以它总是落后于上游的 Mutter 特色功能。为使尽可能地接近 Mutter 代码基础。在包含的特色功能、错误修复及清理方面付出了大量的努力。 +最后,开发团队对 Cinnamon 5.4 中的窗口管理器 Muffin 根据上游的 Mutter 进行了重新构建。由于 Muffin 最初是从 Mutter 复刻出来的,所以它总是落后于上游的 Mutter 的功能,即使是有一些后期移植的改变。为使 Muffin 尽可能地接近 Mutter 代码库,团队在包含的特色功能、错误修复及清理方面付出了大量的努力。 -因此,在未来,在 Muffin 需要的时候很容易从 Mutter 上游移植回来和清理东西。 +因此,在未来,更容易从 Mutter 上游移植变化和在需要的时候清理 Muffin。 -#### 8. 窗口管理器和 GTK 主题 +#### 8、窗口管理器和 GTK 主题 -伴随着 Muffin 的变化,开发组也将 gnomes 控制中心的一些显示设置移动到了 cinnamon 控制中心。此外,在 Cinnamon 5.4 中,也来自 csd-xrandr 的显示配置移动到了 Muffin 窗口管理器。很显然,你不可能在显示设置窗口中看任何的差异。不过,在缩放显示或在高分辨率窗口中时,你可能会看到一些性能的提升和更少的错误或重大问题。 +伴随着 Muffin 的变化,开发团队也将 GNOME 控制中心的一些显示设置移动到了 Cinnamon 控制中心。此外,在 Cinnamon 5.4 中,来自 csd-xrandr 的显示配置移动到了 Muffin 窗口管理器中。显然,你不会在显示设置窗口中看到什么不同。不过,在缩放显示或在高分辨率窗口中时,你可能会发现一些性能的提升,以及错误或问题更少一些。 -另外一个重大的变化,Mint 开发组通过 Cinnamon 5.4 来尝试在应用程序中实现 GTK 窗口的统一渲染。先前,如果一个 GTK 应用程序使用一个标题栏,那么对话框会是一个 CSD (客户端样式) 和 GTK 主题的混合体. +Mint 开发团队在 Cinnamon 5.4 引入的另外一个关键变化是,在应用程序中实现 GTK 窗口的统一渲染。先前,如果一个 GTK 应用程序使用了标题栏,那么对话框会是一个 CSD (客户端样式)和 GTK 主题的混合体. -现在随着 Cinnamon 5.4 的到来,使用的窗口都使用 GTK 主题进行渲染,而不再与它们的设计相关联。于是,传统的 Metacity 主题也被抛弃。 +现在随着 Cinnamon 5.4 的到来,所有的窗口都使用 GTK 主题进行渲染,而不再与它们的设计相关联。于是,传统的 Metacity 主题也被抛弃。 -顺便说一句,我喜欢 Metacity 及其 “传统外观” ,在 GNOME 的早期时 [它们是一种东西][16] 。 +顺便说一句,我喜欢 Metacity 及其 “传统外观”,它们是 GNOME 的早期 [产物][16] 。 -#### 9. 软件包管理器更新 +#### 9、软件包管理器更新 -遵循 Debian、KDE Plasma 桌面的发展趋势,Linux Mint 也开始保护你的系统不会卸载重要的依赖关系软件包。 +跟随 Debian、KDE Plasma 桌面的趋势,Linux Mint 也开始保护你的系统不会卸载重要的依赖关系软件包。 -当你尝试卸载时,Mint 现在会检查依赖关系,并检查重要的桌面软件包是否将会被移除。 +当你尝试卸载软件包时,Mint 现在会检查依赖关系,并检查重要的桌面软件包是否将会被移除。 如果发现这种情况,你将会得到一条阻止你继续卸载软件包的错误信息。 -在另一方面,当成功地卸载一个软件包时,它会清理所有与之同时安装的依赖关系软件包。 +在另一方面,当成功地卸载一个软件包时,它会清理所有与之同时安装的依赖软件包。 -#### 10. 禁用 Systemd OOMD (内存溢出守护进程) 服务 +#### 10、禁用 systemd OOMD 服务 -自从 Ubuntu 22.04 LTS 发布以来,系统内存溢出守护进程systemd-oomd” 有一些不好的反馈。访问网络的用户 [报告][17] :在没有任何警告或用户交互干涉的情况下,会突然关闭应用程序 (例如 Firefox) 。进一步的调查指明是系统内存溢出守护进程服务的实现“不如预期的好”。 +自从 Ubuntu 22.04 LTS 发布以来,有一些对内存不足守护进程(`systemd-oomd`)不好的反馈。网上的很多用户都 [报告][17] 说:在没有任何警告或用户干预的情况下,会突然关闭应用程序(例如 Firefox)。进一步的调查表明,`systemd-oomd` 的实现情况“不是很好”。 -按照理论上来说,[systemd-oomd.service][18] 监视你的系统的内存溢出情况,并且它有权杀死任何多过消耗系统资源的进程。Ubuntu 开发组并没有重要地强调这一点,最后导致了不愉快的用户的体验。 +理论上说,[systemd-oomd.service][18] 会监视你的系统的内存不足的情况,并且它有权杀死任何多过消耗系统资源的进程。Ubuntu 开发团队并没有和用户强调这一点,最后导致了不愉快的用户的体验。 -有了这些经验,Linux Mint 21 决定 [不提供][19] 这种服务,并禁用它。因为 Linux Mint 的用户群体是普通用户、学生等等,如果应用程序意外关闭,对用户来说将是一种不好的体验。 +基于这一认识,Linux Mint 21 决定 [不提供][19] 这种服务,禁用它。因为 Linux Mint 的用户群体是普通用户、学生等,如果应用程序意外关闭,对用户来说将是一种不好的体验。 ![Systemd OOMD service is not enabled][20] -#### 11. 其它变化 +#### 11、其它变化 -最后,让我们归纳一些微小却富有冲击力的变化来总结 Linux Mint 21 特色功能。 +最后,让我们归纳一些微小却有影响的变化来结束这篇 Linux Mint 21 特色介绍。 -* 默认文档阅读器应用程序 Xreader 现在能够进行少量的注释。这是一个很方便的特色功能。 -* WebApp 管理器现在可以提供一些自定义的浏览器参数。 +* 默认的文档阅读器应用程序 Xreader 现在能够进行微小注释。这是一个很方便的功能。 +* WebApp 管理器现在带来了一些自定义的浏览器参数。 * Warpinator 文件传输器实用工具现在可以向你显示来自 Windows 、Android 和 iOS 设备上的其它的源文件。 -* Mint 打包 Firefox 网络浏览器为 .deb 版本,而不是在 Ubuntu 22.04 LTS 中的默认 .Snap 版本。感谢 Mint 开发组,用户不必为卸载 Jammy 中的 Firefox 的 .Snap 版本的 [复杂命令集][21] 而忧心。 +* Mint 将 Firefox 浏览器打包为 .deb 版本,而不是 Ubuntu 22.04 LTS 中的默认 .Snap 版本。感谢 Mint 开发团队,用户不必为卸载 Jammy 中的 Firefox 的 .Snap 版本的而运行 [一套复杂的命令][21]。 -![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] + ![Firefox 102 in Linux Mint 21 – Exclusively packaged as deb executable][22] -* 批量重命名应用程序 Thingy 获得一些用户界面上的改善。 -* 操作系统侦察引导启动器 GRUB2 现在能够侦察出在你的硬件系统上所有的操作系统 (对双操作系统启动或多操作系统启动有用) 。 -* 蓝牙管理器 Blueman 取代了 Blueberry ,为连接和管理你的蓝牙设备带来了其它的特色功能。 -* 最后,为你的新桌面而准备的新壁纸也将在这个发布版本中到来。 +* 批量重命名应用程序 Thingy 在用户界面上做了一些改善。 +* GRUB2 的操作系统检测程序(`os-prober`)现在能够检测出你的硬件系统上所有的操作系统(对双启动或多启动有用)。 +* 蓝牙管理器 Blueman 取代了 Blueberry ,为连接和管理你的蓝牙设备带来了其它的功能。 +* 最后,在这个发布版本中也有为你的新桌面而准备的新壁纸。 -![New Wallpapers in Linux Mint 21][23] + ![New Wallpapers in Linux Mint 21][23] -### 未变化的东西 +### 没有变化的部分 -从一个非常高的层次来看,你可能会觉着 Linux Mint 21 的绝大部分功能与先前的版本相同。默认桌面外观和默认壁纸保存相同。Xfce 和 MATE 桌面没有任何的重要功能的发布。因此,它们是完全一样的。此外,默认图标主题、应用程序菜单等等都可能会给你一种似曾相识燕归来的感觉。 +从表明上来看,你可能会觉着 Linux Mint 21 的绝大部分功能与先前的版本相同。默认桌面外观和默认壁纸保持不变。Xfce 和 MATE 桌面也没有发布任何重要的功能。因此,它们是完全一样的。此外,默认图标主题、应用程序菜单等等都可能会给你一种似曾相识的感觉。 ### 总结 -总体来说,最终用户需要的是一套完好的特色功能,而不是金玉其外败絮其中的东西。鉴如此,对初学者或最终用户来说,Linux Mint 是当今最好的 Linux 发行版。至此,Linux Mint 21 的特色功能就总结结束了. +总体来说,最终用户需要的是一套完好的特色功能,而不是花哨的手势之类的东西。鉴于此,对初学者或最终用户来说,Linux Mint 是当今最好的 Linux 发行版。至此,这篇 Linux Mint 21 特色的总结就此结束了。 -正在进行 BETA 版本测试,这里有 [一些错误报告][24] 。最后的发布版本即将在未来几周内到来。 - -当发布后,你可以下载/更新到 Linux Mint 21 。此外,在官方发布后,也敬请期待我们对于 Linux Mint 21 的详细评价。 - -你认为 Linux mint 21 的新的特色功能怎么样?在这个发布版本中,是否有一些你所求而未得的特色功能?让我们在下面的评论区讨论这个问题。 +你认为 Linux mint 21 的新特色怎么样?在这个发布版本中,是否有一些你所求而未得的特色?让我们在下面的评论区讨论这个问题。 -------------------------------------------------------------------------------- -via: +via: https://www.debugpoint.com/linux-mint-21-features/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f670905426ecf31cbf9e35b744087f3dc393a14f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 4 Aug 2022 15:58:25 +0800 Subject: [PATCH 0627/3123] P @robsean https://linux.cn/article-14894-1.html --- .../20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md (99%) diff --git a/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md similarity index 99% rename from translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md rename to published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md index cb54482ec9..651a28a227 100644 --- a/translated/tech/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md +++ b/published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "robsean" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14894-1.html" Linux Mint 21 “Vanessa” 的 10 大特色 ====== From bdb772c46e874ad11a38a30d15ef70c985a4552f Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Thu, 4 Aug 2022 16:21:39 +0800 Subject: [PATCH 0628/3123] Update 20220715 Microservices Collaboration with Containerised Kafka.md --- ...0715 Microservices Collaboration with Containerised Kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md index 4c0bdb3f03..3c9991e28a 100644 --- a/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md +++ b/sources/tech/20220715 Microservices Collaboration with Containerised Kafka.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/07/microservices-collaboration-with-containerised-kafka/" [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" -[#]: translator: "" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 416d992a9bf66227f55269b03fce9a6396b22296 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 4 Aug 2022 17:00:50 +0800 Subject: [PATCH 0629/3123] RP @geekpi https://linux.cn/article-14895-1.html --- ...e With apt Command in Ubuntu and Debian.md | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md (65%) diff --git a/translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md similarity index 65% rename from translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md rename to published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md index 7c430e4caf..30d11e48d2 100644 --- a/translated/tech/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md +++ b/published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md @@ -3,14 +3,16 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14895-1.html" 在 Ubuntu 和 Debian 中使用 apt 命令更新单个软件包 ====== -你如何[在命令行中更新你的 Ubuntu 系统][1]?你使用 apt update(刷新包缓存)和 apt upgrade 命令。 +![](https://img.linux.net.cn/data/attachment/album/202208/04/165705li66yephvx464ivt.jpg) + +如何 [在命令行中更新你的 Ubuntu 系统][1]?你可以使用 `apt update`(刷新包缓存)和 `apt upgrade` 命令。 ``` sudo apt update && sudo apt upgrade @@ -18,9 +20,9 @@ sudo apt update && sudo apt upgrade 它会更新所有可以立即升级的已安装 apt 包。这也包括 Linux 内核版本。 -这似乎是一件好事,尤其是对于桌面用户。对于运行关键 Web 服务的 Ubuntu 服务器用户而言,情况可能并非如此。 +这似乎是一件好事,尤其是对于桌面用户。但对于运行关键 Web 服务的 Ubuntu 服务器用户而言,情况可能并非如此。 -如果你想对更新有选择性并且**只想升级单个软件包**,请使用以下命令: +如果你想对更新有选择性,并且**只想升级单个软件包**,请使用以下命令: ``` sudo apt install --only-upgrade package_name @@ -30,13 +32,13 @@ sudo apt install --only-upgrade package_name ### 使用 apt 命令升级单个包 -第一步是更新本地包仓库缓存,以便你的系统知道新包版本的可用性。 +第一步是更新本地包仓库缓存,以便你的系统知道有新版本的软件包可用。 ``` sudo apt update ``` -**这是可选的**。检查你要升级的软件包是否在[可升级软件包列表][2]中。 +**这是可选的**。查看一下你要升级的软件包是否在 [可升级软件包列表][2] 中。 ``` apt list --upgradable @@ -48,11 +50,11 @@ apt list --upgradable sudo apt install --only-upgrade package_name ``` -如果你对已安装的软件包运行 apt install 命令,它将升级到下一个可用版本。 +如果你对已安装的软件包运行 `apt install` 命令,它将升级到下一个可用版本。 -但如果该软件包尚未安装,apt 命令也会安装它。 +但如果该软件包尚未安装,`apt` 命令也会安装它。 -这就是为什么 `--only-upgrade` 部分是必要的。使用该选项,apt 命令只会升级已安装的软件包。如果尚未安装,它将不会安装该软件包。 +这就是为什么 `--only-upgrade` 部分是必要的。使用该选项,`apt` 命令只会升级已安装的软件包。如果尚未安装,它将不会安装该软件包。 这不是最适合 Ubuntu 服务器用户的示例,但你仍然可以在下面的截图中看到我如何只升级了七个可升级包中的一个。 @@ -72,9 +74,9 @@ sudo apt install --only-upgrade package1 package2 package3 ### 总结 -当你面临必须升级选定软件包的情况时,你可以使用带有 –only-upgrade 选项的 apt install 命令。 +当你面临必须升级选定软件包的情况时,你可以使用带有 `–only-upgrade` 选项的 `apt install` 命令。 -我建议阅读[更有效地使用 apt 命令][5]。 +我建议阅读 [如何更有效地使用 apt 命令][5]。 -------------------------------------------------------------------------------- @@ -83,7 +85,7 @@ via: https://itsfoss.com/apt-upgrade-single-package/ 作者:[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/) 荣誉推出 From 822d7455efb4a38343fa59026bdbeeae746c83ce Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 4 Aug 2022 17:21:03 +0800 Subject: [PATCH 0630/3123] RP @Donkey-Hao https://linux.cn/article-14896-1.html --- ...ld Custom Docker Image Using Dockerfile.md | 106 +++++++++--------- 1 file changed, 50 insertions(+), 56 deletions(-) rename {translated/tech => published}/20220728 How To Build Custom Docker Image Using Dockerfile.md (64%) diff --git a/translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md b/published/20220728 How To Build Custom Docker Image Using Dockerfile.md similarity index 64% rename from translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md rename to published/20220728 How To Build Custom Docker Image Using Dockerfile.md index dae4df3b25..f6a94145d7 100644 --- a/translated/tech/20220728 How To Build Custom Docker Image Using Dockerfile.md +++ b/published/20220728 How To Build Custom Docker Image Using Dockerfile.md @@ -2,37 +2,31 @@ [#]: via: "https://ostechnix.com/a-brief-introduction-to-dockerfile/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14896-1.html" 如何使用 Dockerfile 创建自定义 Docker 镜像 ====== +![](https://img.linux.net.cn/data/attachment/album/202208/04/172001acb136363vi6vcgk.jpg) 在这份指南中,我们将看到 **Dockerfile** 的简要介绍以及如何在 Linux 中使用 Dockerfile 来自动的 **创建自定义 Docker 镜像** 。 -#### 目录 - -1. 什么是 Dockerfile ? -2. 理解 Dockerfile 格式 -3. 创建一个 Dockerfile -4. 使用 Dockerfile 创建 Docker 镜像 - ### 什么是 Dockerfile ? Dockerfile 是附有构建 Docker 镜像说明的易于理解的文本文件。它囊括了用户在创建镜像时可以调用的所有命令。 -我们可以使用 Dockerfile 创建我们自定义的镜像。可以通过 Docker Hub 分享的自定义 Docker 镜像。 +我们可以使用 Dockerfile 创建自定义的镜像。可以通过 Docker Hub 分享的自定义 Docker 镜像。 -对于好奇的人来说,Docker Hub 是 Docker 提供的托管存储库服务,用于团队查找和共享容器镜像,当然世界上任何人也都可以访问。 +如果你还不知道,Docker Hub 是 Docker 提供的托管存储库服务,用于团队查找和共享容器镜像,当然世界上任何人也都可以访问。 -想象一下,早期如果我们想用 **Nginx**,我们要通过很多步骤,才能安装和配置好 Nginx 。得益于 DockerHub ,现在我们可以在几分钟内,下载并运行 Nginx 的预置容器镜像。 +想象一下,早期如果我们想用 **Nginx**,我们要通过很多步骤,才能安装和配置好 Nginx 。得益于 Docker Hub ,现在我们可以在几分钟内,下载并运行 Nginx 的预置容器镜像。 ![Nginx Docker Image In Dockerhub][1] -运行如下命令从 DockerHub 上拉取 Nginx 镜像: +运行如下命令从 Docker Hub 上拉取 Nginx 镜像: ``` # docker pull nginx @@ -50,9 +44,9 @@ Dockerfile 是附有构建 Docker 镜像说明的易于理解的文本文件。 * [开始使用 Docker][2] -Dockerhub 上有超过十万个来自软件供应商、开源项目以及社区的容器镜像。 +Docker Hub 上有超过十万个来自软件供应商、开源项目以及社区的容器镜像。 -你可以从 Dockerhub 上下载你选择的镜像,并且使用上面的命令开始使用它。 +你可以从 Docker Hub 上下载你选择的镜像,并且使用上面的命令开始使用它。 ### 理解 Dockerfile 格式 @@ -60,111 +54,111 @@ Docker 可以读取 Dockerfile 中的 **指令** 来自动的创建镜像。 典型的 Dockerfile 包含如下指令: -**1.** **FROM** —— 这会设置容器的基础镜像。 +1、`FROM` —— 这会设置容器的基础镜像。 -**例如:** +例如: ``` FROM ubuntu:22.04 ``` -这会将容器的基础镜像设置为 Ubuntu 。如果 ‘22.04’ 这个标志没有特指,则会设为 “最新版本”。 +这会将容器的基础镜像设置为 Ubuntu 。如果 ‘22.04’ 这个标志没有特别指明,则会设为最新版本(`latest`)。 -**2.** **LABEL** —— 这是用来明确镜像的元数据信息的键值对。 +2、`LABEL` —— 这是用来明确镜像的元数据信息的键值对。 -**例如:** +例如: ``` LABEL ENV=“DEVELOPMENT” ``` -**3.** **RUN** —— 这会在基础镜像中执行指令并创建一个新层。 +3、`RUN` —— 这会在基础镜像中执行指令并创建一个新层。 -**例如:** +例如: ``` RUN apt-get update RUN apt-get install tomcat ``` -**4.** **CMD** —— 这用来设置容器启动后先执行的命令。 +4、`CMD` —— 这用来设置容器启动后先执行的命令。 -**例如:** +例如: ``` -CMD [“java”, “-jar”, “app.jar”] +CMD ["java", "-jar", "app.jar"] ``` -**5.** **EXPOSE** —— 设置用于访问容器的端口。容器将会监听该端口。我们可以用来获得输出。 +5、`EXPOSE` —— 设置用于访问容器的端口。容器将会监听该端口。我们可以用来获得输出。 -**例如:** +例如: ``` EXPOSE 8080 ``` -**6.** **MAINTAINER** —— 显示创建镜像作者的信息。 +6、``MAINTAINER` —— 显示创建镜像作者的信息。 -**例如:** +例如: ``` MAINTAINER info@ostechnix.com ``` -**7.** **ENV** —— 用来设置环境变量的键值对。改变量在镜像创建的时候设置,并在容器创建好后可以使用。 +7、`ENV` —— 用来设置环境变量的键值对。这些变量在镜像创建的时候设置,并在容器创建好后可以使用。 -**例如:** +例如: ``` ENV DB_NAME=”MySQL” ENV DB_VERSION=”8.0” ``` -**8.** **COPY** —— 用来拷贝本地文件至容器中。 +8、`COPY` —— 用来拷贝本地文件至容器中。 -**例如:** +例如: ``` COPY /target/devops.jar devops.jar ``` -**9.** **ADD** —— 具有与拷贝相同的功能,不过更进一步还可以提取本地的 tar 文件或者从 URL 拷贝文件。 +9、`ADD` —— 具有与拷贝相同的功能,不过更进一步还可以提取本地的 tar 文件或者从 URL 拷贝文件。 -**例如:** +例如: ``` ADD devops.tar.xz / . ADD http://example.com/abc.git /usr/local/devops/ ``` -**10.** **ENTRYPOINT** —— 用来设置镜像的主要命令。与 CMD 指令功能相同。不同的是 ENTRYPOINT 中的指令不会被重写。 +10、`ENTRYPOINT` —— 用来设置镜像的主要命令。与 CMD 指令功能相同。不同的是 `ENTRYPOINT` 中的指令不会被重写。 -**例如:** +例如: ``` -ENTRYPOINT [“java”, “-jar”, “app.jar”] +ENTRYPOINT ["java", "-jar", "app.jar"] ``` -**11.** **VOLUME** —— 该指令用来创建指定位置的挂载点。 +11、`VOLUME` —— 该指令用来创建指定位置的挂载点。 -**例如:** +例如: ``` VOLUME /app/devops ``` -**12.** **USER** —— 将设置运行镜像并使用的用户名称以及用户组 +12、`USER` —— 将设置运行镜像并使用的用户名称以及用户组。 -**例如:** +例如: ``` USER dhruv USER admin ``` -**13.** **WORKDIR** —— 这会设置工作目录。如果目录不存在,则会创建。 +13、`WORKDIR` —— 这会设置工作目录。如果目录不存在,则会创建。 -**例如:** +例如: ``` WORKDIR /var/lib/ @@ -190,13 +184,13 @@ CMD ["/usr/bin/node", "/var/www/app.js"] ### 创建一个 Dockerfile -创建一个名为 **dockerfile** 的文件: +创建一个名为 `dockerfile` 的文件: ``` # nano dockerfile ``` -添加下面几行命令。我们将更新并安装 **vim** 和 **curl** 包: +添加下面几行命令。我们将更新并安装 `vim` 和 `curl` 包: ``` FROM alpine @@ -208,11 +202,11 @@ RUN apk add curl ![Dockerfile For Alpine Linux][3] -按下 **CTRL+O** 和 **CTRL+X** 键保存文件并关闭。 +按下 `CTRL+O` 和 `CTRL+X` 键保存文件并关闭。 现在 Dockerfile 已经就位。让我们继续,用该 Dockerfile 创建一个镜像。 -**注意:** 如果你在使用 **[桌面版 Docker][4]**,你可以像一个普通用户一样运行 docker 命令。 +> **注意:** 如果你在使用 [Docker 桌面版][4],你可以以一个普通用户运行 `docker` 命令。 ### 使用 Dockerfile 创建 Docker 镜像 @@ -222,9 +216,9 @@ RUN apk add curl # docker build -t alpine . ``` -请注意最后有一个 **点** (**.**) +请注意最后有一个 **点**(`.`)。 -**输出示例:** +输出示例: ``` [+] Building 51.2s (8/8) FINISHED @@ -251,9 +245,9 @@ RUN apk add curl Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them ``` -按照上面的命令, Docker 会通过保存在当前工作目录中的 **Dockerfile** 中的命令开始自动的创建镜像。还记得我们在 Dockerfile 中保存的 `apk update`, `apk add vim` 和 `apk add curl` 命令吗?这些命令也将会自动的执行。 +按照上面的命令, Docker 会通过保存在当前工作目录中的 Dockerfile 中的命令开始自动的创建镜像。还记得我们在 Dockerfile 中保存的 `apk update`、`apk add vim` 和 `apk add curl` 命令吗?这些命令也将会自动的执行。 -如果 Dockerfile 保存在其他目录,你可以使用 **-f** 标志来指定路径,例如: +如果 Dockerfile 保存在其他目录,你可以使用 `-f` 标志来指定路径,例如: ``` # docker build -f /path/to/a/Dockerfile . @@ -275,7 +269,7 @@ Linux 8890fec82de8 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022 x86_64 / # ``` -如果你使用桌面版 Docker ,你可以通过容器选项(Containers tab)界面来查看运行中的容器。 +如果你使用 Docker 桌面版,你可以通过容器Containers标签页界面来查看运行中的容器。 ![View Containers In Docker Desktop][5] @@ -290,7 +284,7 @@ via: https://ostechnix.com/a-brief-introduction-to-dockerfile/ 作者:[sk][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 463bb1f556a0433fd52eec1bfdca545042dc2e48 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 5 Aug 2022 05:02:36 +0800 Subject: [PATCH 0631/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220804?= =?UTF-8?q?=20GitLab=20Plans=20to=20Save=20Up=20to=20$1M=20by=20Deleting?= =?UTF-8?q?=20Inactive=20Projects=20by=20Free=20Users?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md --- ...eleting Inactive Projects by Free Users.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md diff --git a/sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md b/sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md new file mode 100644 index 0000000000..b093e79313 --- /dev/null +++ b/sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md @@ -0,0 +1,71 @@ +[#]: subject: "GitLab Plans to Save Up to $1M by Deleting Inactive Projects by Free Users" +[#]: via: "https://news.itsfoss.com/gitlab-inactive-projects-policy/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GitLab Plans to Save Up to $1M by Deleting Inactive Projects by Free Users +====== + +Right after Microsoft acquired GitHub, many users migrated to GitLab and other [GitHub alternatives][1]. + +Considering many popular open-source projects can be found on GitLab, it has a good reputation with developers and project maintainers. + +Now, there has been an interesting development at GitLab, as reported by [The Register][2]. + +### GitLab to Remove Inactive Projects in Free Accounts + +As per _The Register_, sources who requested anonymity revealed that a new policy is scheduled to come into force in September 2022, which will result in removing several inactive projects on GitLab. + +In other words, if you are a free tier user on GitLab and have an idle project with no recent updates in **12 months**, _it will be auto-deleted_. + +Apparently, this move cuts GitLab’s hosting costs and saves up to **$1 million a year**. + +While that sounds like a sizable saving, it does not make things appear better. + +The report also states that a single comment, commit, or issue for a project during 12 months will ensure that it does not get deleted. + +In addition to the new policy, you can expect GitLab to provide users weeks or months as a warning before deleting any of their work. + +### A Valid Excuse: Is it? + +GitLab deleting projects to save disk space is a big deal. + +The entire point of offering free services was to let users host code on their platform, whether the project remains active or not. One can agree that everyone should encourage projects to have some activity. But why should that be a requirement to host your code on a platform that promises free services? + +A developer can simply choose to make a simple tool/program and keep it at GitLab for anyone to find and fork it, with no aim to maintain/update it. Sometimes, the developer may no longer be available or have access to add activity to their projects. + +**For example**, we have plenty of GitHub projects that haven’t seen any activity for years, but people still rely on it, fork it, and use it. + +So, I’m sure you will come across several hundred projects that do not have any activity but are helpful or have a working fork. + +**I think** GitLab should manage its pricing plans and finances better to keep up with the free tier offerings. + +### GitLab is Taking the Easy Way Out + +If the report is accurate and GitLab proceeds to enforce this kind of policy later this year, it will not have a good impact. + +The free tier accounts have access to 5 GB of storage. We could lose access to various small creators’ incredible tools/projects. + +GitLab hasn’t made any public statements regarding this situation. We’ll make sure to update our coverage if something pops up. + +_What do you think about GitLab’s auto-deletion policy? What should GitLab do about it? Kindly let me know your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gitlab-inactive-projects-policy/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/github-alternatives/ +[2]: https://www.theregister.com/2022/08/04/gitlab_data_retention_policy/ From 30bbc030491ec0e1fc74efe6565f3ad13abea6c2 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 5 Aug 2022 05:02:45 +0800 Subject: [PATCH 0632/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220804?= =?UTF-8?q?=20Peppermint=20OS=20Now=20Also=20Offers=20a=20Systemd-free=20D?= =?UTF-8?q?evuan=20Variant!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md --- ...so Offers a Systemd-free Devuan Variant.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md diff --git a/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md b/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md new file mode 100644 index 0000000000..3f4fae41c7 --- /dev/null +++ b/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md @@ -0,0 +1,69 @@ +[#]: subject: "Peppermint OS Now Also Offers a Systemd-free Devuan Variant!" +[#]: via: "https://news.itsfoss.com/peppermint-os-devuan/" +[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Peppermint OS Now Also Offers a Systemd-free Devuan Variant! +====== + +Peppermint OS, one of the [most lightweight and flexible Linux distros][1], is now offering a Devuan-based ISO for advanced users to have more control over their system. + +With their release of Peppermint OS 11, [they dropped using Ubuntu][2] as the base for Debian to make Peppermint OS more stable and reliable. + +### Peppermint OS Based on Devuan + +![][3] + +So, what is Devuan in the first place? + +Devuan is a fork of Debian without systemd, so users can have portability and freedom of choice. + +Running a computer with systemd is often debated, which is why we have a list of [Systemd-free Linux distros][4], but only a few of them can provide a polished experience out of the box. + +Now, a Devuan-based edition of Peppermint OS should be an exciting addition to the list. + +If you want a systemd-free distribution, giving you more freedom on your operating system, this should be a good one to try. + +Fret not, the Debian edition of Peppermint OS is here to stay. So, you can expect both Devuan-based and Debian-based ISOs available for use. + +### Do You Need More Systemd-free Options? + +Systemd is an init system (an initialization system). Init system is one of the first programs that start, when you boot your Linux machine, and will run until you’re working with your computer. + +But [systemd is more than just an init system][5] and contains other software such as logind, networkd, etc., which is used to manage different aspects of the Linux system. + +Overall, it evolved into a complex init module. While it made many things easy, it appeared as a bloated solution to some users. + +Hence, users started to like options like Devuan. And, Peppermint OS devs are now trying to improvise the experience with Devuan by using it as a base for another edition for desktop users. + +### Download Devuan-based Peppermint OS + +It is an excellent choice for users who are used to systemd-free system. + +But, if you have never tried something without systemd, it may not be a wise idea to make a switch unless you know what you’re doing. + +[Peppermint OS (Devuan)][6] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/peppermint-os-devuan/ + +作者:[Sagar Sharma][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/sagar/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/lightweight-linux-beginners/ +[2]: https://news.itsfoss.com/peppermint-11-release/ +[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjYwMyIgd2lkdGg9IjgyMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= +[4]: https://itsfoss.com/systemd-free-distros/#systemd-or-not +[5]: https://freedesktop.org/wiki/Software/systemd/ +[6]: https://peppermintos.com/2022/08/peppermint-os-releases-for-08-02-2022/ From 3ca805fa9d358dd7fcc8ff1691293b9f919ed71c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 5 Aug 2022 05:02:54 +0800 Subject: [PATCH 0633/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220804?= =?UTF-8?q?=20Slax=20Linux=20Re-Introduces=20a=20Slackware=20Variant=20Wit?= =?UTF-8?q?h=20Slax=2015=20Release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md --- ... Slackware Variant With Slax 15 Release.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md diff --git a/sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md b/sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md new file mode 100644 index 0000000000..71ce5e3112 --- /dev/null +++ b/sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md @@ -0,0 +1,68 @@ +[#]: subject: "Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release" +[#]: via: "https://news.itsfoss.com/slax-15-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release +====== + +Slax is one of the most interesting [lightweight Linux distributions][1]. + +It was also a suitable option for 32-bit systems, considering it is based on Slackware. If you are curious, Slackware is the oldest active Linux distribution and witnessed a major upgrade after 6 years, i.e, [Slackware 15][2]. + +Slax also offered an alternative edition based on Debian, which is being actively maintained. Unfortunately, as mentioned by the creator in the blog post, the Slackware-based version (**Slax 14**) did not see an update for a long time (9 years). + +So, it is refreshing to see a major upgrade finally to it in the form of **Slax 15.0**, along with a minor update to its Debian edition, i.e, **Slax 11.4.0**. + +Interestingly, the release was available to its supporters back in July 2022. And now, it is available for everyone to download and try out. + +Let me highlight what’s new. + +### Slax 15.0 and Slax 11.4 Release + +To address the key upgrade, Slax 15.0 brings along the improvements added to Slackware 15.0. + +That should include the addition of [Linux Kernel 5.15 LTS][3], which should add enhanced NTFS driver support, and refinements for Intel/AMD processors. You may want to check the kernel flavors offered to get more built-in drivers, or the generic option to save memory and boot time warnings. + +The release supports slackpkg with its plugin, which means you can install software from various repositories, including the official Slackware repo and a SlackOnly repo. + +Slax 15.0 also involves an updated shutdown procedure with refined handling to unmount devices. + +Considering Slax is no more a KDE-based distribution. So, you can expect a Fluxbox-based edition when you download the ISO for its Slackware or Debian-based edition. + +When it comes to the Debian edition, you will find it based on **Debian 11.4** “Bullseye” update. + +### Download Slax 15.0 and Slax 11.4 + +You cannot find a 32-bit version for the Slackware-based release, but only for the Debian-based ISO. + +The ISO files are available to download on its official website. Optional purchase options are available as well if you want to support the project in a way. + +[Slax 15.0][4] + +In either case, you can head to its [Patreon page][5] to show support. + +_What do you think about the Slax 15.0 release? Have you tried it yet?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/slax-15-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/lightweight-linux-beginners/ +[2]: https://news.itsfoss.com/slackware-15-release/ +[3]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[4]: https://www.slax.org/ +[5]: https://patreon.com/slax/ From fff95e2a537c9ecba7406fc402de5f1617221248 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 5 Aug 2022 08:27:47 +0800 Subject: [PATCH 0634/3123] translated --- ... Intuitive Open-Source Password Manager.md | 114 ------------------ ... Intuitive Open-Source Password Manager.md | 114 ++++++++++++++++++ 2 files changed, 114 insertions(+), 114 deletions(-) delete mode 100644 sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md create mode 100644 translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md diff --git a/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md deleted file mode 100644 index 2cdbfe04f3..0000000000 --- a/sources/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md +++ /dev/null @@ -1,114 +0,0 @@ -[#]: subject: "Padloc: An Intuitive Open-Source Password Manager" -[#]: via: "https://itsfoss.com/padloc/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Padloc: An Intuitive Open-Source Password Manager -====== -Brief: Exploring an open-source password manager with a pleasing user interface, available cross-platform. - -There are plenty of free and premium password managers for individuals and teams. - -However, when it comes to open-source solutions, it is often limited to a couple of good ones like [Seahorse][1], [KeePassXC][2], and [Bitwarden][3]. - -If you have read through our list of the [best password managers for Linux][4], you might already know some of them. - -I stumbled upon another interesting open-source password manager that could make it to that list for its user experience, i.e., **Padloc**. - -### Padloc: A Secure Cross-Platform Password Manager App - -![padloc screenshot][5] - -While Padloc is not super popular, it is not just another open-source password manager. - -You get a refreshing user experience with the app and end-to-end encryption to secure passwords. It aims to provide a clean and simple interface to work with. - -![padloc light mode][6] - -Free to start with, but offers paid subscriptions to unlock most features. - -And it supports all the major platforms, including Linux, Windows, macOS, Android, and iOS. - -You also get browser extensions for Mozilla Firefox and Google Chrome with all the available applications. So, you can always choose to access/use it on the web browser as well. - -Interestingly, the project did not see any major updates for almost two years until recently. But, it is an actively maintained open-source project. - -### Features of Padloc - -![padloc active sessions][7] - -Padloc offers a range of free and premium features. As per your requirements, you can choose to upgrade with a paid subscription. - -Some features include: - -* Unlimited vault items -* Unlimited devices -* Two-factor authentication via email -* Add tags -* Generate unique passwords -* Favicon support to identify vault items -* Dark/light mode theme -* Active session management -* Import/Export functionality (encrypted container/ CSV) -* Team support (paid) -* Multi-Factor Authentication (paid) -* Note-taking (paid) -* Document attachments (paid) -* Security report (paid) - -Technically, you get all the essential features. But, to make the most out of it, you will need the premium subscription that starts at **$3.49 per month or $34.9 per year**. - -### Install Padloc on Linux - -![padloc app screenshot 1][8] - -Padloc gives you multiple options for Linux. You can download the AppImage, .deb, Snap, or the Flatpak package. - -Furthermore, you can download a non-electron desktop client version, which is nice! - -I tested the AppImage file, and it worked well. You can follow our guide to [use AppIma][9][ge, set up Flatpak][10], or [install deb packages][11] to get started. - -You can check out its [official website][12] or [GitHub page][13] for more information. - -[Padloc][14] - -### A Slightly Expensive Password Manager for a Good User Experience - -I was impressed with its user interface and the overall experience you get with it. - -If you prioritize the user interface, minimalism, and open-source tech, Padloc can be a useful option, whether you decide to use it for free or pay. - -Of course, if you want something value for money (or cheaper), you can always pick something like [Bitwarden][15]. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/padloc/ - -作者:[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/seahorse/ -[2]: https://itsfoss.com/keepassxc/ -[3]: https://itsfoss.com/bitwarden/ -[4]: https://itsfoss.com/password-managers-linux/ -[5]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-screenshot.png -[6]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-light-mode.png -[7]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-active-sessions.png -[8]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-app-screenshot-1.png -[9]: https://itsfoss.com/use-appimage-linux/ -[10]: https://itsfoss.com/flatpak-guide/ -[11]: https://itsfoss.com/install-deb-files-ubuntu/ -[12]: https://padloc.app/ -[13]: https://github.com/padloc/padloc -[14]: https://padloc.app/ -[15]: https://itsfoss.com/bitwarden/ diff --git a/translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md new file mode 100644 index 0000000000..a0bcdc61da --- /dev/null +++ b/translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md @@ -0,0 +1,114 @@ +[#]: subject: "Padloc: An Intuitive Open-Source Password Manager" +[#]: via: "https://itsfoss.com/padloc/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Padloc:一个直观的开源密码管理器 +====== +简介:探索具有令人愉悦的用户界面、跨平台可用的开源密码管理器。 + +有大量适用于个人和团队的免费和高级密码管理器。 + +然而,当谈到开源方案时,它通常仅限于几个好的方案,如 [Seahorse][1]、[KeePassXC][2] 和 [Bitwarden][3]。 + +如果您已阅读我们的 [Linux 最佳密码管理器][4]列表,你可能已经知道其中的一些。 + +我偶然发现了另一个有趣的开源密码管理器,它可以因其用户体验而进入该列表,即 **Padloc**。 + +### Padloc:安全的跨平台密码管理器应用 + +![padloc screenshot][5] + +虽然 Padloc 不是超级流行,但它不仅仅是另一个开源密码管理器。 + +你可以通过应用和端到端加密来保护密码,从而获得令人耳目一新的用户体验。它旨在提供一个干净简单的界面来使用。 + +![padloc light mode][6] + +免费开始,但提供付费订阅以解锁大多数功能。 + +它支持所有主要平台,包括 Linux、Windows、macOS、Android 和 iOS。 + +你还可以获得 Mozilla Firefox 和 Google Chrome 的浏览器扩展以及所有可用的应用。因此,你也可以随时选择在网络浏览器上访问/使用它。 + +有趣的是,直到最近,该项目近两年都没有看到任何重大更新。但是,它是一个积极维护的开源项目。 + +### Padloc 的特点 + +![padloc active sessions][7] + +Padloc 提供一系列免费和高级功能。根据你的要求,你可以选择使用付费订阅进行升级。 + +一些功能包括: + +* 无限保管库项目 +* 无限设备 +* 通过电子邮件进行两因素身份验证 +* 添加标签 +* 生成唯一密码 +* Favicon 支持识别保管库项目 +* 暗/亮模式主题 +* 主动会话管理 +* 导入/导出功能(加密容器/CSV) +* 团队支持(付费) +* 多重身份验证(付费) +* 记笔记(付费) +* 文件附件(付费) +* 安全报告(付费) + +从技术上讲,你可以获得所有基本功能。但是,要充分利用它,你需要订阅起价为**每月 3.49 美元或每年 34.9 美元**的高级订阅。 + +### 在 Linux 上安装 Padloc + +![padloc app screenshot 1][8] + +Padloc 为你提供了多种适用于 Linux 的选项。你可以下载 AppImage、.deb、Snap 或 Flatpak 包。 + +此外,你可以下载非 electron 桌面客户端版本,这很好! + +我测试了 AppImage 文件,它运行良好。你可以按照我们的指南[使用 AppImage][9]、[设置 Flatpak][10] 或[安装 deb 包][11]开始使用。 + +你可以查看其[官方网站][12]或 [GitHub 页面][13]了解更多信息。 + +[Padloc][14] + +### 一个略显昂贵的密码管理器带来良好的用户体验 + +它的用户界面和你使用它的整体体验给我留下了深刻的印象。 + +如果你优先考虑用户界面、极简主义和开源技术,无论你决定免费使用还是付费使用,Padloc 都是一个有用的选择。 + +当然,如果你想要物有所值(或更便宜)的东西,你可以随时选择 [Bitwarden][15] 之类的东西。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/padloc/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/seahorse/ +[2]: https://itsfoss.com/keepassxc/ +[3]: https://itsfoss.com/bitwarden/ +[4]: https://itsfoss.com/password-managers-linux/ +[5]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-screenshot.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-light-mode.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-active-sessions.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/padloc-app-screenshot-1.png +[9]: https://itsfoss.com/use-appimage-linux/ +[10]: https://itsfoss.com/flatpak-guide/ +[11]: https://itsfoss.com/install-deb-files-ubuntu/ +[12]: https://padloc.app/ +[13]: https://github.com/padloc/padloc +[14]: https://padloc.app/ +[15]: https://itsfoss.com/bitwarden/ From f860ac650f8090fa86609855fac21019e423aa1e Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 5 Aug 2022 08:33:20 +0800 Subject: [PATCH 0635/3123] translating --- sources/tech/20220801 AI, ML and DL- What-s the Difference-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md b/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md index c8ccee2162..e6bd5be065 100644 --- a/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md +++ b/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/" [#]: author: "Bala Kalavala https://www.opensourceforu.com/author/bala-kalavala/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 47ac01597f9651b28b4d120c293a6c2c9e20ccad Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 12:40:21 +0800 Subject: [PATCH 0636/3123] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Offers a Systemd-free Devuan Variant!.md} | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) rename sources/news/{20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md => 20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md} (72%) diff --git a/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md b/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md similarity index 72% rename from sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md rename to sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md index 3f4fae41c7..0cae6c07b8 100644 --- a/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant.md +++ b/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md @@ -1,7 +1,7 @@ [#]: subject: "Peppermint OS Now Also Offers a Systemd-free Devuan Variant!" [#]: via: "https://news.itsfoss.com/peppermint-os-devuan/" [#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" -[#]: collector: "lujun9972" +[#]: collector: "lkxed" [#]: translator: " " [#]: reviewer: " " [#]: publisher: " " @@ -9,20 +9,23 @@ Peppermint OS Now Also Offers a Systemd-free Devuan Variant! ====== +Peppermint OS based on Devuan could be an exciting new addition to systemd-free distros. Sounds good? -Peppermint OS, one of the [most lightweight and flexible Linux distros][1], is now offering a Devuan-based ISO for advanced users to have more control over their system. +![peppermint][1] -With their release of Peppermint OS 11, [they dropped using Ubuntu][2] as the base for Debian to make Peppermint OS more stable and reliable. +Peppermint OS, one of the [most lightweight and flexible Linux distros][2], is now offering a Devuan-based ISO for advanced users to have more control over their system. + +With their release of Peppermint OS 11, [they dropped using Ubuntu][3] as the base for Debian to make Peppermint OS more stable and reliable. ### Peppermint OS Based on Devuan -![][3] +![Peppermint OS devuan][4] So, what is Devuan in the first place? Devuan is a fork of Debian without systemd, so users can have portability and freedom of choice. -Running a computer with systemd is often debated, which is why we have a list of [Systemd-free Linux distros][4], but only a few of them can provide a polished experience out of the box. +Running a computer with systemd is often debated, which is why we have a list of [Systemd-free Linux distros][5], but only a few of them can provide a polished experience out of the box. Now, a Devuan-based edition of Peppermint OS should be an exciting addition to the list. @@ -34,7 +37,7 @@ Fret not, the Debian edition of Peppermint OS is here to stay. So, you can expec Systemd is an init system (an initialization system). Init system is one of the first programs that start, when you boot your Linux machine, and will run until you’re working with your computer. -But [systemd is more than just an init system][5] and contains other software such as logind, networkd, etc., which is used to manage different aspects of the Linux system. +But [systemd is more than just an init system][6] and contains other software such as logind, networkd, etc., which is used to manage different aspects of the Linux system. Overall, it evolved into a complex init module. While it made many things easy, it appeared as a bloated solution to some users. @@ -46,24 +49,25 @@ It is an excellent choice for users who are used to systemd-free system. But, if you have never tried something without systemd, it may not be a wise idea to make a switch unless you know what you’re doing. -[Peppermint OS (Devuan)][6] +[Peppermint OS (Devuan)][7] -------------------------------------------------------------------------------- via: https://news.itsfoss.com/peppermint-os-devuan/ 作者:[Sagar Sharma][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://news.itsfoss.com/author/sagar/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/lightweight-linux-beginners/ -[2]: https://news.itsfoss.com/peppermint-11-release/ -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjYwMyIgd2lkdGg9IjgyMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= -[4]: https://itsfoss.com/systemd-free-distros/#systemd-or-not -[5]: https://freedesktop.org/wiki/Software/systemd/ -[6]: https://peppermintos.com/2022/08/peppermint-os-releases-for-08-02-2022/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/08/peppermint-devuan.jpg +[2]: https://itsfoss.com/lightweight-linux-beginners/ +[3]: https://news.itsfoss.com/peppermint-11-release/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/08/Peppermint-OS-Devuan-edition.png +[5]: https://itsfoss.com/systemd-free-distros/#systemd-or-not +[6]: https://freedesktop.org/wiki/Software/systemd/ +[7]: https://peppermintos.com/2022/08/peppermint-os-releases-for-08-02-2022/ From 864c96aa99d1e57d355311879b1bdf1e0880db33 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 5 Aug 2022 17:50:00 +0800 Subject: [PATCH 0637/3123] RP @geekpi https://linux.cn/article-14899-1.html --- ...9.0 on Ubuntu Based Linux Distributions.md | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) rename {translated/tech => published}/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md (77%) diff --git a/translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md similarity index 77% rename from translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md rename to published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md index 3b3d4910e0..1e7e201821 100644 --- a/translated/tech/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md +++ b/published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md @@ -3,17 +3,20 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14899-1.html" 如何在基于 Ubuntu 的 Linux 发行版上安装最新的 Vim 9.0 ====== -简介:这个快速教程展示了在 Ubuntu Linux 上安装最新版本的 Vim 的步骤。 -Vim 是最[流行的基于终端的文本编辑器][1]之一。然而,它在 Ubuntu 上没有被默认安装。 +![](https://img.linux.net.cn/data/attachment/album/202208/05/174903f3zu3nqrrnwclwrz.jpg) -Ubuntu 使用 Nano 作为默认的终端编辑器。Nano 也是一个优秀的工具,我不打算参与 [Nano 与 Vim 的辩论][2]。 +> 这个快速教程展示了在 Ubuntu Linux 上安装最新版本的 Vim 的步骤。 + +Vim 是最 [流行的基于终端的文本编辑器][1] 之一。然而,它在 Ubuntu 上没有被默认安装。 + +Ubuntu 使用 Nano 作为默认的终端编辑器。Nano 也是一个优秀的工具,我并不打算参与 [Nano 与 Vim 孰优孰劣的辩论][2]。 如果你已经花了一些时间掌握了 Vim 的快捷键,你就不必忘记它们,而开始使用一个新的编辑器。 @@ -23,7 +26,7 @@ Ubuntu 使用 Nano 作为默认的终端编辑器。Nano 也是一个优秀的 sudo apt install vim ``` -这很简单,对吗?这种方法的主要问题是,你不会得到最新的Vim版本。 +这很简单,对吗?这种方法的主要问题是,你不会得到最新的 Vim 版本。 你可以用以下命令检查已安装的 Vim 版本: @@ -31,11 +34,11 @@ sudo apt install vim vim --version ``` -而如果你查看 [Vim 网站][3],你会发现 Vim 已经有较新的版本发布。 +而如果你查看 [Vim 网站][3],你会发现 Vim 已经发布了更新的版本。 在写这篇文章的时候,[Vim 9.0 已经发布][4],但在 Ubuntu 仓库中还没有。 -好消息是,你可以使用一个[非官方但积极维护的 PPA][5] 安装最新的 Vim。 +好消息是,你可以使用一个 [非官方的,但积极维护的 PPA][5] 安装最新的 Vim。 ### 使用 PPA 在 Ubuntu 上安装 Vim 9 @@ -71,7 +74,7 @@ vim --version 这是一个维护得非常好的 PPA,适用于所有活跃的 Ubuntu 版本。 -如果你是 PPA 的新手,我有一个关于这个主题的详细指南。你应该阅读以了解更多关于 [Ubuntu 中 PPA 的概念][8]。 +如果你是 PPA 的新手,我有一个关于这个主题的详细指南。你应该阅读以对 [Ubuntu 中 PPA 的概念][8] 了解更多。 ### 降级或删除 @@ -79,7 +82,7 @@ vim --version 在删除 Vim 之前,如果你做了自定义修改并打算再次使用 Vim,你应该复制 vimrc 或其他类似的配置文件。 -好的。打开一个终端,使用以下命令: +那么,打开一个终端,使用以下命令: ``` sudo apt remove vim @@ -91,7 +94,7 @@ sudo apt remove vim sudo add-apt-repository -r ppa:jonathonf/vim ``` -现在,如果你想要旧的、官方的 Ubuntu 版本的 Vim,只需再次[使用 apt 命令][9]安装它。 +现在,如果你想要旧的、官方的 Ubuntu 版本的 Vim,只需再次 [使用 apt 命令][9] 安装它。 享受 Ubuntu 上的 Vim 吧。 @@ -102,7 +105,7 @@ via: https://itsfoss.com/install-latest-vim-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/) 荣誉推出 From 8298b7d7d79ab2efd2e64be00fb232dbd0e74f09 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 5 Aug 2022 19:42:30 +0800 Subject: [PATCH 0638/3123] ALL @wxy https://linux.cn/article-14900-1.html --- ... Slackware Variant With Slax 15 Release.md | 72 +++++++++++++++++++ ... Slackware Variant With Slax 15 Release.md | 68 ------------------ 2 files changed, 72 insertions(+), 68 deletions(-) create mode 100644 published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md delete mode 100644 sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md diff --git a/published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md b/published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md new file mode 100644 index 0000000000..491d1d0b2c --- /dev/null +++ b/published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md @@ -0,0 +1,72 @@ +[#]: subject: "Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release" +[#]: via: "https://news.itsfoss.com/slax-15-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14900-1.html" + +Slax Linux 的 Slackware 变体重新复活 +====== + +> 基于 Slackware 的 Slax 版本在 Slackware 15.0 的基础上进行了升级,并带来一些基本的改进。 + +![](https://news.itsfoss.com/wp-content/uploads/2022/08/slax-15.jpg) + +Slax 是最有趣的 [轻量级 Linux 发行版][1] 之一。 + +它是基于 Slackware 的,是 32 位系统的一个合适选择。如果你尚不知道,Slackware 是最古老的、活跃的 Linux 发行版,并在 6 年后见证了一次重大版本升级,即 [Slackware 15][2] 的发布。 + +此外,Slax 还提供了一个基于 Debian 的替代版本,该版本正在积极维护。正如创作者在博文中提到的,这是由于基于 Slackware 的版本(Slax 14)在很长一段时间内(9 年)没有得到更新。 + +因此,看到最终以 **Slax 15.0** 的形式发布了重大升级版本,以及也对其 Debian 版本(即 **Slax 11.4.0**)进行小幅更新,还是令人感动。 + +有趣的是,这个版本早在 2022 年 7 月就向其支持者提供了。而现在,所有人都可以下载和试用了。 + +让我来介绍一下新的变化。 + +### Slax 15.0 和 Slax 11.4 发布 + +为了解决关键的升级问题,Slax 15.0 带来了 Slackware 15.0 中添加的改进。 + +这应该包括增加了 [Linux 内核 5.15 LTS][3],即增强的 NTFS 驱动支持,以及对英特尔/AMD 处理器的支持改进。你可以看看这个内核变体,提供了更多内置驱动程序,或者了解一下节省内存和启动时警告的通用选项。 + +该个发布版本通过插件支持 slackpkg,这意味着你可以从各种软件库中安装软件,包括官方的 Slackware 仓库和 SlackOnly 仓库。 + +Slax 15.0 还涉及到一个更新的关机程序,对设备的卸载处理更加完善。 + +考虑到 Slax 不再是一个基于 KDE 的发行版。因此,当你下载 Slackware 或 Debian 版本的 ISO 时,你得到的是一个基于 Fluxbox 的版本。 + +而对于 Debian 版本,你会发现它的更新是基于 **Debian 11.4** “Bullseye” 的。 + +### 下载 Slax 15.0 和 Slax 11.4 + +你无法找到基于 Slackware 的版本的 32 位版本,而只能找到基于 Debian 的。 + +其 ISO 文件可以在其官方网站上下载。如果你想以某种方式支持该项目,也可以选择购买。 + +> **[Slax 15.0][4]** + +无论哪种情况,你都可以前往其 [Patreon 页面][5] 以示支持。 + +你对 Slax 15.0 的发布有什么看法?你试过了吗? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/slax-15-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][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/lujun9972 +[1]: https://itsfoss.com/lightweight-linux-beginners/ +[2]: https://news.itsfoss.com/slackware-15-release/ +[3]: https://news.itsfoss.com/linux-kernel-5-15-release/ +[4]: https://www.slax.org/ +[5]: https://patreon.com/slax/ diff --git a/sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md b/sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md deleted file mode 100644 index 71ce5e3112..0000000000 --- a/sources/news/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md +++ /dev/null @@ -1,68 +0,0 @@ -[#]: subject: "Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release" -[#]: via: "https://news.itsfoss.com/slax-15-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release -====== - -Slax is one of the most interesting [lightweight Linux distributions][1]. - -It was also a suitable option for 32-bit systems, considering it is based on Slackware. If you are curious, Slackware is the oldest active Linux distribution and witnessed a major upgrade after 6 years, i.e, [Slackware 15][2]. - -Slax also offered an alternative edition based on Debian, which is being actively maintained. Unfortunately, as mentioned by the creator in the blog post, the Slackware-based version (**Slax 14**) did not see an update for a long time (9 years). - -So, it is refreshing to see a major upgrade finally to it in the form of **Slax 15.0**, along with a minor update to its Debian edition, i.e, **Slax 11.4.0**. - -Interestingly, the release was available to its supporters back in July 2022. And now, it is available for everyone to download and try out. - -Let me highlight what’s new. - -### Slax 15.0 and Slax 11.4 Release - -To address the key upgrade, Slax 15.0 brings along the improvements added to Slackware 15.0. - -That should include the addition of [Linux Kernel 5.15 LTS][3], which should add enhanced NTFS driver support, and refinements for Intel/AMD processors. You may want to check the kernel flavors offered to get more built-in drivers, or the generic option to save memory and boot time warnings. - -The release supports slackpkg with its plugin, which means you can install software from various repositories, including the official Slackware repo and a SlackOnly repo. - -Slax 15.0 also involves an updated shutdown procedure with refined handling to unmount devices. - -Considering Slax is no more a KDE-based distribution. So, you can expect a Fluxbox-based edition when you download the ISO for its Slackware or Debian-based edition. - -When it comes to the Debian edition, you will find it based on **Debian 11.4** “Bullseye” update. - -### Download Slax 15.0 and Slax 11.4 - -You cannot find a 32-bit version for the Slackware-based release, but only for the Debian-based ISO. - -The ISO files are available to download on its official website. Optional purchase options are available as well if you want to support the project in a way. - -[Slax 15.0][4] - -In either case, you can head to its [Patreon page][5] to show support. - -_What do you think about the Slax 15.0 release? Have you tried it yet?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/slax-15-release/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/lightweight-linux-beginners/ -[2]: https://news.itsfoss.com/slackware-15-release/ -[3]: https://news.itsfoss.com/linux-kernel-5-15-release/ -[4]: https://www.slax.org/ -[5]: https://patreon.com/slax/ From 54ea9730046dc874ef7faaf804af700eae5d9d5e Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 21:25:50 +0800 Subject: [PATCH 0639/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220804=20How=20to=20Install=20Linux=20Mint=2021=20?= =?UTF-8?q?Xfce=20Edition=20Step-by-Step.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Linux Mint 21 Xfce Edition Step-by-Step.md | 224 ++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 sources/tech/20220804 How to Install Linux Mint 21 Xfce Edition Step-by-Step.md diff --git a/sources/tech/20220804 How to Install Linux Mint 21 Xfce Edition Step-by-Step.md b/sources/tech/20220804 How to Install Linux Mint 21 Xfce Edition Step-by-Step.md new file mode 100644 index 0000000000..c95603a78a --- /dev/null +++ b/sources/tech/20220804 How to Install Linux Mint 21 Xfce Edition Step-by-Step.md @@ -0,0 +1,224 @@ +[#]: subject: "How to Install Linux Mint 21 Xfce Edition Step-by-Step" +[#]: via: "https://www.linuxtechi.com/how-to-install-linux-mint-21-xfce-edition/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Linux Mint 21 Xfce Edition Step-by-Step +====== +Are you looking for an easy guide for Linux Mint 21 Installation? + +The step-by-step guide on this page will show you how to install Linux Mint 21 Xfce Edition along with screenshots. + +The much-awaited Linux Mint 21 operating system has been released, this is a LTS release (Long Term Support) and will get support and updates until 2027. Vanessa is the code name for Linux Mint 21, it is based on Ubuntu 22.04 and comes with three different desktop environments like Cinnamon, Mate and Xfce. + +##### Linux Mint 21 Features & Updates + +* New Linux Kernel 5.15 +* Introduction of Blueman for connecting Bluetooth devices +* Improved Thumbnails +* Artwork Improvements +* Sticky notes support duplicate notes +* Timeshift is maintained as XApp. + +##### System Requirements for Linux Mint 21 + +* 2 GB RAM or more +* 20 GB free hard disk space or more +* 64-bit Dual core processor or more +* Bootable Media (USB Stick) +* Internet Connectivity (Optional) + +Without any further delay, let’s jump into Linux Mint 21 Xfce Edition installation steps. + +### Step 1) Download Linux Mint 21 Xfce Edition ISO file + +Use the following official web portal to download ISO file. + +* [Download Linux Mint 21 Xfce Edition][1] + +Once ISO file is downloaded, make a bootable USB stick using the ISO file. On Linux desktop use following to create bootable USB, + +* [How to Create Bootable USB Drive on Ubuntu / Linux Mint][2] + +On windows system, use Rufus software to make bootable USB using ISO file. + +### Step 2) Boot System using Bootable USB Stick + +Reboot the system on which you want to install Linux Mint 21, change the boot medium from hard disk to USB from it’s bios settings. + +When the system boots up with bootable USB stick, we will get following beneath screen. + +![Choose-Option-Start-LinuxMint21-Xfce][3] + +Select the first option ‘Start Linux Mint 21 Xfce 64-bit’ and press enter then we will be presented the following screen, + +![Double-click-on-Install-LinuxMint][4] + +Double Click on ‘Install Linux Mint’ + +### Step 3) Choose Language for Installation + +Choose your preferred language and click Continue + +![Language-Selection-for-LinuxMint21-Installation][5] + +### Step 4) Select Keyboard Layout + +Select the keyboard layout as per your setup and then click on Continue + +![Select-Keyboard-Layout-LinuxMint21-Installation][6] + +### Step 5) Install Multimedia Codecs + +This step is optional if you want to install multimedia codecs and system is connected to internet then click on the checkbox, else you can skip it. + +![Install-Multimedia-codecs-LinuxMint21-Installation][7] + +Click on Continue to proceed further + +### Step 6) Choose Installation Type + +On this step, you are required to choose the installation type, basically there are two types, + +* Erase disk and Install Linux Mint: In this type, installer will erase all the data on disk and will create partitions automatically for you. +* Something else: Using this, we can create manual partitions as per our need. + +![Something-Else-Installation-type-Linux-Mint21][8] + +In this guide, we will go with something else option and will create following partitions on 40 GB hard disk. + +* /boot      : 2 GB (xfs file system) +* /              : 10 GB (xfs file system) +* /home     : 25 GB (xfs file system) +* Swap       : 2 GB + +Before start creating partitions, first create a partition table, + +![New-Partition-Table-Linux-Mint21-Installation][9] + +First click on ‘New Partition Table’ and then click Continue + +Now start creating first partition as /boot, select the free space and then click on ‘+’ symbol. + +![Boot-Partition-During-Linux-Mint21-Installation][10] + +Click on OK to finish /boot partition creation. + +In the same way, create next two partitions / and /home of 10G and 25G respectively. + +![mSlash-Partition-During-LinuxMint21-Installation][11] + +![Home-Partition-During-LinuxMint21-Installation][12] + +Create Swap partition of size 2G + +![Swap-Partition-LinuxMint21-Installation][13] + +Click on Ok, + +Note : When you are using UEFI mode then you must create following two additional partitions: + +* EFI System Partition: 100 – 550 MB +* Reserved BIOS Boot Area: 1 MB (This is used to store bootloader code) + +![EFI-System-Partition-Linux-Mint21-Installation][14] + +![Reserved-Bios-Boot-Area-Linux-Mint21-Installation][15] + +Click on OK. + +Once you are done with manual partitions then click on ‘Install Now’ + +![Click-On-Install-Now-Option-Linux-Mint21-Installation][16] + +Click Continue to write changes to disk and to proceed further with installation. + +![Write-changes-to-Disk-Linux-Mint21-Installation][17] + +### Step 7) Choose Your Preferred Timezone + +As per geographical location of your system choose the location and click continue + +![Geographical-Location-Linux-Mint21-Installation][18] + +### Step 8) Enter Local User Details + +In this step, you are requested to enter local user details along with hostname of your system. So, fill in the details as per requirements, + +![Enter-Local-User-Details-LinuxMint21-Installation][19] + +Click Continue to begin the actual installation. + +### Step 8) Linux Mint 21 Installation Started + +As we can see that Linux Mint 21 installation is started and is in progress, + +![Linux-Mint21-Installation-Progress][20] + +Once the installation is completed then installer will instruct you to reboot the system. + +![Restart-Post-Linux-Mint21-Installation][21] + +Click on “Restart Now” + +Note : During the reboot don’t forget to change boot medium from USB to hard disk via bios settings. + +### Step 9) Login Screen and Desktop Environment + +When the system rebooted post installation then we will get following login screen. Use the same user credentials that you have created during the installation. + +![Linux-Mint21-Login-Screen-Post-Installation][22] + +After entering the credentials, following desktop environment screen will appear, + +![Desktop-screen-Linux-Mint21][23] + +Open the terminal and run neofetch command to verify the installation. + +![Neofetch-Command-Verify-Linux-Mint21-Installation][24] + +Great, above output confirms that we have successfully installed Linux Mint 21 Xfce Edition. + +That’s all from this guide, kindly post your queries and feedback in below comments section. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-linux-mint-21-xfce-edition/ + +作者:[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://linuxmint.com/download.php +[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/ +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Choose-Option-Start-LinuxMint21-Xfce.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Double-click-on-Install-LinuxMint.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Language-Selection-for-LinuxMint21-Installation.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Select-Keyboard-Layout-LinuxMint21-Installation.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Install-Multimedia-codecs-LinuxMint21-Installation.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Something-Else-Installation-type-Linux-Mint21.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/08/New-Partition-Table-Linux-Mint21-Installation.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Boot-Partition-During-Linux-Mint21-Installation.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Slash-Partition-During-LinuxMint21-Installation.png +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Home-Partition-During-LinuxMint21-Installation.png +[13]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Swap-Partition-LinuxMint21-Installation.png +[14]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EFI-System-Partition-Linux-Mint21-Installation.png +[15]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Reserved-Bios-Boot-Area-Linux-Mint21-Installation.png +[16]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Click-On-Install-Now-Option-Linux-Mint21-Installation.png +[17]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Write-changes-to-Disk-Linux-Mint21-Installation.png +[18]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Geographical-Location-Linux-Mint21-Installation.png +[19]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Enter-Local-User-Details-LinuxMint21-Installation.png +[20]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Linux-Mint21-Installation-Progress.png +[21]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Restart-Post-Linux-Mint21-Installation.png +[22]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Linux-Mint21-Login-Screen-Post-Installation.png +[23]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Desktop-screen-Linux-Mint21.png +[24]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Neofetch-Command-Verify-Linux-Mint21-Installation.png From 68522bfb11ae160ec5bd1a2e86be7fa056eade58 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 21:34:47 +0800 Subject: [PATCH 0640/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220805=20Delete=20the=20local=20reference=20to=20a?= =?UTF-8?q?=20remote=20branch=20in=20Git.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cal reference to a remote branch in Git.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20220805 Delete the local reference to a remote branch in Git.md diff --git a/sources/tech/20220805 Delete the local reference to a remote branch in Git.md b/sources/tech/20220805 Delete the local reference to a remote branch in Git.md new file mode 100644 index 0000000000..8a6b8cae4d --- /dev/null +++ b/sources/tech/20220805 Delete the local reference to a remote branch in Git.md @@ -0,0 +1,99 @@ +[#]: subject: "Delete the local reference to a remote branch in Git" +[#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git" +[#]: author: "Agil Antony https://opensource.com/users/agantony" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Delete the local reference to a remote branch in Git +====== +Follow a few simple steps to keep your Git repository tidy. + +![A diagram of a branching process][1] + +Image by: Opensource.com + +After you merge a GitLab or GitHub pull request, you usually delete the topic branch in the remote repository to maintain repository hygiene. However, this action deletes the topic branch only in the remote repository. Your local Git repository also benefits from routine cleanup. + +To synchronize the information in your local repository with the remote repository, you can execute the `git prune` command to delete the local reference to a remote branch in your local repository. + +Follow these three simple steps: + +### 1. Checkout the central branch of your repository (such as main or master) + +``` +$ git checkout +``` + +### 2. List all the remote and local branches + +``` +$ git branch -a +``` + +Example output: + +``` +4.10.z +* master +  remotes/mydata/4.9-stage +  remotes/mydata/4.9.z +  remotes/mydata/test-branch +``` + +In this example, `test-branch` is the name of the topic branch that you deleted in the remote repository. + +### 3. Delete the local reference to the remote branch + +First, list all the branches that you can delete or prune on your local repository: + +``` +$ git remote prune origin --dry-run +``` + +Example output: + +``` +Pruning origin +URL: git@example.com:myorg/mydata-4.10.git +* [would prune] origin/test-branch +``` + +Next, prune the local reference to the remote branch: + +``` +$ git remote prune origin +``` + +Example output: + +``` +Pruning origin +URL: git@example.com:myorg/mydata-4.10.git +* [pruned] origin/test-branch +``` + +That's it! + +### Maintaining your Git repository + +Keeping your Git repository tidy may not seem urgent at first, but the more a repository grows, the more important it becomes to prune unnecessary data. Don't slow yourself down by forcing yourself to sift through data you no longer need. + +Regularly deleting local references to remote branches is a good practice for maintaining a usable Git repository. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-git + +作者:[Agil Antony][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/agantony +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/freesoftwareway_law3.png From 40452b94c14ea91edc7220cbe09b69254d369f8f Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 21:46:01 +0800 Subject: [PATCH 0641/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220804=203=20ways=20to=20take=20screenshots=20on?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...804 3 ways to take screenshots on Linux.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sources/tech/20220804 3 ways to take screenshots on Linux.md diff --git a/sources/tech/20220804 3 ways to take screenshots on Linux.md b/sources/tech/20220804 3 ways to take screenshots on Linux.md new file mode 100644 index 0000000000..8cddcdd757 --- /dev/null +++ b/sources/tech/20220804 3 ways to take screenshots on Linux.md @@ -0,0 +1,71 @@ +[#]: subject: "3 ways to take screenshots on Linux" +[#]: via: "https://opensource.com/article/22/8/screenshots-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 ways to take screenshots on Linux +====== +Save time by taking screenshots on Linux with one of my favorite tools. + +![Digital creative of a browser on the internet][1] + +When writing about open source software, I prefer to show a few screenshots to help demonstrate what I'm talking about. As the old saying goes, a picture is worth a thousand words. If you can show a thing, that's often better than merely trying to describe it. + +There are a few ways you can take screenshots in Linux. Here are three methods I use to capture screenshots on Linux: + +### 1. GNOME + +GNOME has a great built-in screenshot tool. Just hit the **PrtScr** key on your keyboard, and GNOME displays a screenshot dialog: + +![Image of GNOME screenshot tool][2] + +The default action is to grab a screenshot of a region. This is an incredibly useful way to crop a screenshot as you make it. Just move the highlight box to where you need it, and use the "grab" corners to change the size. Or select one of the other icons to take a screenshot of the entire screen, or just a single window on your system. Click the circle icon to take the screenshot, similar to the "take photo" button on mobile phones. The GNOME screenshot tool saves screenshots in a Screenshots folder inside your Pictures folder. + +### 2. GIMP + +If you need more options for screenshots, you can grab a screenshot using GIMP, the popular image editor. To take a screenshot, go to **File**and choose the **Create**submenu, and then choose **Screenshot**. + +![Image of the GIMP screenshot menu][3] + +The dialog allows you to take a screenshot of a single window, the entire screen, or just a region. I like that this tool lets you set a delay: how long until you select the window, and how long after that to take the screenshot. I use this feature a lot when I want to grab a screenshot of a menu action, so I have enough time to go to the window and open the menu. + +GIMP opens the screenshot as a new image, which you can edit and save to your preferred location. + +### 3. Firefox + +If you need to take a screenshot of a website, try Firefox's built-in screenshot utility. Right-click anywhere in the web page body, and select **Take Screenshot** from the menu: + +![Image of screenshot utility][4] +​ +Firefox switches to a modal display and prompts you to click or drag on the page to select a region, or use one of the icons to save a copy of the full page or just what's visible in the browser: + +![Image of Firefox modal display][5] + +As you move your mouse around the screen, you may notice that Firefox highlights certain areas. These are block elements on the page, such as a  `
` or another block element. Click on the element to take a screenshot of it. Firefox saves the screenshot to your **Downloads** folder, or wherever you have set as your "download" location. + +If you're trying to document a process, a screenshot can save you a lot of time. Try using one of these methods to take a screenshot on Linux. + +Image by: (Jim Hall, CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/screenshots-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png +[2]: https://opensource.com/sites/default/files/2022-07/screenshot-gnome.png +[3]: https://opensource.com/sites/default/files/2022-07/gimp-screenshot.png +[4]: https://opensource.com/sites/default/files/2022-07/firefox-screenshot_cropped_0.png +[5]: https://opensource.com/sites/default/files/2022-07/firefox-screenshot_1.png From f2535eb3c5e0994d667948811ba62ca888b79c78 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 21:46:53 +0800 Subject: [PATCH 0642/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220804=20Lengthen=20the=20life=20of=20your=20hardw?= =?UTF-8?q?are=20with=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...en the life of your hardware with Linux.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 sources/tech/20220804 Lengthen the life of your hardware with Linux.md diff --git a/sources/tech/20220804 Lengthen the life of your hardware with Linux.md b/sources/tech/20220804 Lengthen the life of your hardware with Linux.md new file mode 100644 index 0000000000..5d938dc594 --- /dev/null +++ b/sources/tech/20220804 Lengthen the life of your hardware with Linux.md @@ -0,0 +1,64 @@ +[#]: subject: "Lengthen the life of your hardware with Linux" +[#]: via: "https://opensource.com/article/22/8/lengthen-hardware-linux" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Lengthen the life of your hardware with Linux +====== +Keep hardware out of landfills by using an operating system that stretches the usable life of your devices. + +![How Linux became my job][1] + +Image by: Opensource.com + +Sustainability is an increasingly important problem when it comes to computing. Reduce, reuse, recycle is a popular motto for environmentally responsible consumption, but applying that to your computer hardware can be challenging. + +Many proprietary operating systems essentially force a hardware upgrade upon you long before your old hardware is used up. If you own a computer with Windows, you've probably needed to purchase a new one to upgrade because your old one didn't meet the hardware requirements of the latest OS. Apple doesn't do any better, either. A MacBook Air I owned was essentially rendered obsolete by an upgrade to macOS Mojave in 2019. + +By contrast, I run Linux on my three-and-a-half-year-old laptop, and it still runs like new. Because the Linux kernel is more efficient with resources than either Windows or macOS, it can run successfully on older hardware. I've never been forced to purchase new hardware in order to upgrade Linux. + +The advantage of Linux is that it is free and open source. With a few notable exceptions, most Linux distributions are available free of charge, and they are not the product of a large technology company with profit in mind. Even businesses that offer Linux products know that profitability doesn't lie in selling software and forcing updates but in stellar support of what their customers are trying to do with that software. + +Simply put, Linux is the best bet for a [sustainable operating system][2]. + +### Making Linux accessible + +There was a time when Linux users were required to be more technologically savvy than the average computer user, but those days are a thing of the past. Most Linux distributions are as plug-and-play as their proprietary counterparts. Better yet, computers that are 10 or more years old can easily run any of the popular Linux distributions without modification. Instead of defining a computer's lifespan with the arbitrary benchmark of operating system support, you can measure it instead by the life of the hardware itself. That's how it should be. Hardware, like everything else, eventually fails, but software we can control. + +This improved sustainability doesn't impede my workflow, either. I have access to a wide range of free and open source software and cloud-based systems that afford me ample opportunities to be creative while keeping my aging hardware out of the landfill. + +### Reuse hardware, reduce electronic waste + +When deciding to refurbish an older computer, first [determine how it will be used][3]. You don't need lots of processing power if you are just surfing the web and writing with a word processor. But if you are working from home and using your computer for [video conferencing][4] with Jitsi or one of the proprietary solutions, you will need more RAM and processing power. In that case, I suggest (based on what's available in 2022) looking for an Intel i5 or AMD Ryzen 5 with at least 8 GB of RAM. + +I put this concept to the test with that old MacBook Air I mentioned earlier. That system was given new life when [I installed Linux][5] in January 2020. + +### Hardware purchases + +If you're not refurbishing and just need a computer, using Linux frees you from purchasing the latest hardware. It's easy to find serviceable laptops and desktops on [FreeGeek][6] and elsewhere that provide good hosts for Linux distributions. If you buy a computer from FreeGeek, it comes with Linux preinstalled and tested, and you're contributing to a community whose mission is "to sustainably reuse technology, enable digital access, and provide education to create a community that empowers people to realize their potential." + +However you get to Linux, it's well worth learning and supporting. It's a sustainable OS that puts you in control of your data, your purchases, and the way you affect the environment. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/lengthen-hardware-linux + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/linux_penguin_green.png +[2]: https://opensource.com/article/22/1/linux-sustainable-os +[3]: https://opensource.com/article/20/8/linux-laptop-video-conferencing +[4]: https://opensource.com/article/20/5/open-source-video-conferencing +[5]: https://opensource.com/article/20/2/macbook-linux-elementary +[6]: https://opensource.com/article/21/4/linux-free-geek From 2331fcd3aa489f23b27fb3a534e4f39948b28fe5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 21:48:01 +0800 Subject: [PATCH 0643/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220804=20Install=20Spotify=20on=20Manjaro=20and=20?= =?UTF-8?q?Other=20Arch=20Linux=20Based=20Distros.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...jaro and Other Arch Linux Based Distros.md | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md diff --git a/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md new file mode 100644 index 0000000000..23cd04b73b --- /dev/null +++ b/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md @@ -0,0 +1,158 @@ +[#]: subject: "Install Spotify on Manjaro and Other Arch Linux Based Distros" +[#]: via: "https://itsfoss.com/install-spotify-arch/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Install Spotify on Manjaro and Other Arch Linux Based Distros +====== +Spotify needs no introduction. It is the most popular music streaming service. + +You can [play Spotify in a web browser][1], but using the desktop application would be a better option if you use it extensively. + +Why? Because you can control the playback with the media key, get notifications for the songs, and don’t need to worry about accidentally closing the browser tab or window. The desktop client gives a wholesome experience. + +Spotify [provides a repository][2] for Ubuntu and Debian. But what about installing Spotify on Arch Linux? + +Actually, it is even simpler to get the Spotify desktop application on Arch Linux. Just use this command: + +``` +sudo pacman -Syu spotify-launcher +``` + +That’s one of the many ways of installing Spotify on Arch-based Linux distros like Manjaro, [Endeavour OS][3], [Garuda Linux][4], etc. + +In this tutorial, I’ll discuss the following methods of installing Spotify: + +* Using [pacman][5] (you already saw it above but we’ll dig deeper) +* Installing using [Pamac][6] (the package manager from Manjaro) +* Installing using [Flatpak][7] (the universal packaging format) +* Using Snap (official package by the Spotify team) + +### Method 1: Install Spotify using pacman + +Spotify is [available][8] from the Community repository of Arch Linux. It’s actually a Rust implementation of the APT repository provided by Spotify. + +Open your terminal and [use the pacman command][9] in the following manner: + +``` +sudo pacman -Syu spotify-launcher +``` + +Once installed, launch it from the Application Menu and log in to start listening. + +![Spotify on Arch Linux][10] + +Enter the following command to remove it along with its dependencies and config files. + +``` +sudo pacman -Rns spotify-launcher +``` + +### Method 2: Install Spotify using Pamac + +If you are using Manjaro or [have installed Pamac in your system][11], you can use it to install Spotify graphically. + +Open Add/Remove Software from Applications menu. Click on the search icon on the top left and search for Spotify. Then, select the package named `spotify-launcher` and click Apply to install as shown below. + +![Using Pamac to install Spotify][12] + +You can also deselect the package when installed and click Apply to remove it. + +#### Using Pamac CLI + +yes, Pamac also has a command line interface and you can use it in the following manner to get Spotify. + +``` +pamac install spotify-launcher +``` + +And to remove later, use: + +``` +pamac remove spotify-launcher +``` + +### Method 3: Install Spotify using Flatpak + +Many users prefer to install proprietary applications using Flatpak for the sandbox it provides. + +Enter the following command in the terminal to update your system and install Flatpak (if you don’t have it already). + +``` +sudo pacman -Syu flatpak +``` + +Then, enable [Flathub repository][13] using the following command. + +``` +flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo +``` + +Now, install Spotify by entering the command below. + +``` +flatpak install spotify +``` + +To remove the Flatpak for Spotify you can use the command below. + +``` +flatpak remove spotify +``` + +### Method 4: Install Spotify using Snap + +I understand that many people have a strong dislike for the Snap packaging format for its ‘closed’ nature. However, Spotify provides a Snap package officially. You are getting it from the Spotify developers themselves. + +If you have Snap package support on your system, use the following command: + +``` +sudo snap install spotify +``` + +If you want to remove it later, use this command: + +``` +sudo snap remove spotify +``` + +#### Conclusion + +The Arch package discussed in the first method is developed and maintained by [kpcyrd][14]. You can check out the source code for the same [here][15]. + +Please consider donating to the project if you like Arch Linux and want to support it. All the work is done by the community members, who are unpaid volunteers. + +Let me know if you have any issues installing Spotify on Arch. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-spotify-arch/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://open.spotify.com/ +[2]: https://www.spotify.com/us/download/linux/ +[3]: https://endeavouros.com/ +[4]: https://garudalinux.org/ +[5]: https://wiki.archlinux.org/title/Pacman +[6]: https://wiki.manjaro.org/index.php/Pamac +[7]: https://itsfoss.com/what-is-flatpak/ +[8]: https://archlinux.org/packages/community/x86_64/spotify-launcher/ +[9]: https://itsfoss.com/pacman-command/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/spotify-e1658764973807.png +[11]: https://itsfoss.com/install-pamac-arch-linux/ +[12]: https://itsfoss.com/wp-content/uploads/2022/07/pamac-spotify-e1658764946532.png +[13]: https://flathub.org +[14]: https://github.com/kpcyrd +[15]: https://github.com/kpcyrd/spotify-launcher From 32d64ffa02fbf6dc3fc2a366e4e1e07f6110cf09 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 5 Aug 2022 21:51:30 +0800 Subject: [PATCH 0644/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220805=20Keep=20IT=20Services=20Up=20and=20Running?= =?UTF-8?q?=20with=20AI=20Based=20Digital=20Assistants.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...unning with AI Based Digital Assistants.md | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 sources/tech/20220805 Keep IT Services Up and Running with AI Based Digital Assistants.md diff --git a/sources/tech/20220805 Keep IT Services Up and Running with AI Based Digital Assistants.md b/sources/tech/20220805 Keep IT Services Up and Running with AI Based Digital Assistants.md new file mode 100644 index 0000000000..7d83b0659d --- /dev/null +++ b/sources/tech/20220805 Keep IT Services Up and Running with AI Based Digital Assistants.md @@ -0,0 +1,178 @@ +[#]: subject: "Keep IT Services Up and Running with AI Based Digital Assistants" +[#]: via: "https://www.opensourceforu.com/2022/08/keep-it-services-up-and-running-with-ai-based-digital-assistants/" +[#]: author: "K. Narasimha Sekhar https://www.opensourceforu.com/author/k-narasimha-sekhar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Keep IT Services Up and Running with AI Based Digital Assistants +====== +*There are many ways AI based digital assistants help in IT operations. Traditionally, they have been deployed to improve helpdesk services. Today you can use them to reduce the mean time to repair (MTTR) of an IT service.* + +enterprises deploy many IT services such as microservices, line of business services, virtual desktop services, and database services for their customers, business groups and employees. In case critical IT services break down, there is a huge negative impact in terms of enterprise revenue, and loss of productivity and reputation. Many of these services are hosted in the enterprise data centre, and can go down due to infrastructure, process, or human failures. Even in the case of public cloud hosting, enterprise integration is a weak link in the chain. + +### Need of the hour + +When a critical IT service is down, IT teams are under enormous pressure to restore it as quickly as possible. Faster root cause analysis is the need of the hour. Teams from various verticals — infrastructure, security, network, storage, and other relevant teams — get into the war room to find the root cause. Tons of logs, event sources, and traces are collected. It is a humongous task for the team to analyse huge data in a short time under panic conditions. Teams need reliable, intelligent, and faster tools to analyse data and provide dependable conclusions. Artificial intelligence based assistants can help in this situation. + +Table 1 lists the typical questions teams need to answer during root cause analysis of IT operations after a critical service becomes unavailable. + +### AI powered digital assistants + +A digital assistant, also called virtual assistant, is an application program that understands natural language voice or chat commands and completes tasks for the user. In the context of root cause analysis or IT operations, the tasks are complex. To execute these tasks, virtual assistants adopt artificial intelligence. + +Administrators, instead of logging in to individual layer consoles, pulling data manually and analysing it, can take the help of digital assistants. These assistants can do all the heavy lifting for IT staff. They assist in accelerating the process, thereby reducing mean time to repair (MTTR). + +Typically, virtual assistants can do the following: + +* On-demand interaction +* Context-driven recommendation +* Automated task execution +* Real-time reporting +* Pull the requested data quickly from multiple sources +* Remove noise and highlight contextual information +* Apply AI algorithms to find required results +* Search for anomaly patterns in huge data +* Correlate events from multiple sources to find relations and cumulative issues +* Enable automation at scale +* Run audit scripts and eliminate false negatives +* Analyse time series data for variations +* Analyse segment failures + +AI based digital assistants can improve regular IT operations as well. They can: + +* Estimate future capacity requirements based on current trends +* Enable automated rolling updates and roll-backs +* Automate mundane admin tasks +* Find anomalies + +| IT phase | Inquiries/Functions/Operations | +| :- | :- | +| Root cause analysis | What is the scope and impact of the issue? +Is the issue specific to one client, group of clients, entire site, or many locations? +Is there any common pattern with respect to the failed devices? +Are there any X, Y, Z events recorded in server logs? +How is the storage performance while users face performance degradation? +Are there any suspicious patterns in CPU, RAM, resource utilisation time series data, etc? +Were there any patches applied on any component in the past 24 hours? +Did new firewall configurations block critical ports? +How many connection failures were there in west region sites? +When X event occurred in component N, what was the database response time? | +| Regular IT operations | Create an upgrade schedule for all regions. +Where should I host the new desktop/app among the available 20 host servers? +How many extra servers are needed in the next quarter? +I am starting patching, informing active users, and sending reminders till they log off. +Detect anomalies. +With API driven interfaces, trigger external tasks like creating a helpdesk ticket, without manual intervention. +Create a management report. | + +* What is the scope and impact of the issue? +* Is the issue specific to one client, group of clients, entire site, or many locations? +* Is there any common pattern with respect to the failed devices? +* Are there any X, Y, Z events recorded in server logs? +* How is the storage performance while users face performance degradation? +* Are there any suspicious patterns in CPU, RAM, resource utilisation time series data, etc? +* Were there any patches applied on any component in the past 24 hours? +* Did new firewall configurations block critical ports? +* How many connection failures were there in west region sites? +* When X event occurred in component N, what was the database response time? + +* Create an upgrade schedule for all regions. +* Where should I host the new desktop/app among the available 20 host servers? +* How many extra servers are needed in the next quarter? +* I am starting patching, informing active users, and sending reminders till they log off. +* Detect anomalies. +* With API driven interfaces, trigger external tasks like creating a helpdesk ticket, without manual intervention. +* Create a management report. + +Table 1 + +### Architecture layers + +Figure 1 shows the blueprint of a typical digital assistant. + +Teams can give commands or query the virtual assistant by voice. The non-linguistic platforms available today are mature enough to understand user utterances and translate them into meaningful intents. A conversational engine can be built with advanced cognitive computing technology that allows virtual assistants to understand and carry out multi-step requests. + +The AI layer is the core part. It understands the intent and structures, and triggers the workflow to capture the required data. It applies suitable AI algorithms to analyse the data, the results of which are communicated back to the user. + +![Figure 1: Digital assistant layers][1] + +IT services are complex and composed of many heterogeneous components. To integrate with these components, virtual assistants must implement different types of interfaces. The widely used interfaces are PowerShell, REST, OData, SQL, SNMP, etc. + +| Inquiry | AI algorithms in scope | +| :- | :- | +| Translate utterances to intents (Conversational engine) | NLP | +| When X event occurred in server N, how was the dependant storage service performance? | Log, event analysis | +| Data stream analysis | Statistical analysis | +| Identify causes of issues by calculating highest probability of the issue occurring | Bayesian algorithm | +| Prioritise root cause options | Bayesian algorithm | +| Find anomaly patterns in resource utilisation | Time series analysis (e.g.,ARIMA) | +| Classify issues | Text analysis | +| Find out optimal resource groups | Segmentation (e.g.,K-Means) | +| IT operations accelerators | Automation | + +Table 2 + +Table 2 summarises the AI algorithms that are suitable for responding to typical inquiries that get triggered during a typical IT service root cause analysis and IT operations. The AI algorithms mentioned are indicative. There are a lot of algorithms available in each segment. We need to choose the right algorithm based on context. A detailed explanation of AI algorithms is beyond the scope of this article. Tons of reference literature is available publicly about AI algorithms. + +![Figure 2: Digital assistant for virtual desktop service][2] + +Figure 2 gives an illustration of how to build a digital assistant for a virtual desktop service. This service consists of many layers, and each one has different types of interfaces. Digital assistants should implement interfaces to interact with all these layers. + +### Advanced auto-heal AI assistant + +Digital assistants can be extended to detect, analyse and auto-heal issues arising during regular operations. In this case no human interaction is needed. Figure 3 shows logical layers of the auto-heal assistant. We need to use many AI algorithms to analyse the issues and trigger correct resolutions. We can make use of neural networks to learn and adapt to dynamic changes. + +![Figure 3: Logical design of an auto-heal assistant][3] + +*State/Condition:* This part defines the rule. The rule is evaluated and if the condition is true, then the state is generated. State can be evaluated when a condition occurs, and is checked on a periodic basis. For example, when an application or system event occurs, then it will be evaluated. If the condition is evaluated as true, the state is processed. In another case, the performance metrics are checked on a periodic basis (for example, once in a minute), the condition is evaluated and state is generated based on the result. + +*Action:* This part defines what action is to be taken in case the trigger occurs. Typically, these are remedial actions (such as restarting a service, increasing resource allocation, etc) to rectify an issue and heal it automatically without human intervention. In case self-healing is not available or it fails, then the administrator can be notified and the service tickets raised automatically. + +| Function | Open source modules | Cloud native deployments | +| :- | :- | :- | +| Chatbot, NLP engine | ChatSDK, +ChatterBot, NTLK | Azure BOT Service, Amazon Lex, Alexa | +| Automation | Ansible, Python, +PowerShell scripts | Serverless functions | +| Visualisation | D3.js, Grafana | Power BI | +| Tracing, Dependency analysis | Jaeger | Azure Monitor, AWS CloudWatch | +| Telemetry | Prometheus, Istio | Azure Monitor, AWS CloudWatch | +| Security | Python libraries | AWS Security Hub, Azure Sentinel, Security Center | +| Infrastructure automation | Ansible, Terraform, Jenkins, Chef, Selenium | ARM, Cloud Foundation | +| AIOPs | Seldon, Logilizer, Aiopstools, Whylogs | Vendor SaaS services | + +Table 3 + +### Challenges + +There are multiple challenges teams can face in implementing and deploying AI based virtual assistants. + +Cost could be a major factor. There are many commercial tools available in the market, but they are expensive. Additionally, we need to buy plugins to interface with enterprise systems. One commercial tool may not be sufficient. For small- and medium-sized companies this cost can be a challenge. Open source modules, and customised orchestration engines suitable for specific enterprise needs, can help reduce these costs. Table 3 lists the recommended open source modules for on-premises deployments. In case of public cloud deployments, we can consider utilising native SaaS services from the cloud provider. + +Integrating virtual assistants into your existing systems and applications can be a challenge as some level of in-house development effort is required. Home-grown scripts need to be maintained and updated as and when systems change. The return on investment of these efforts is high and justifiable. + +Overcoming resistance can be another challenge. Team members may think AI can pose a risk to their jobs. But AI is all about relieving employees of repetitive work and freeing them up to be more creative and perform to their real potential. + +The reasons for each IT service failure can be unique and root cause analysis might yield unexpected results. AI assistants help to analyse data systematically, learn from earlier failures and provide a quick resolution. They help in accelerating root cause analysis and restoring IT services that fail. In addition, these assistants help to fast-track IT admin operations with less manual intervention. Small companies can use open source platforms to build AI digital assistants. + +*Disclaimer:* *The views expressed in this article are that of the author and Wipro does not subscribe to the substance, veracity or truthfulness of the said opinion.* + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/keep-it-services-up-and-running-with-ai-based-digital-assistants/ + +作者:[K. Narasimha Sekhar][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/k-narasimha-sekhar/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-Digital-assistant.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Digital-assistant-for-virtual-desktop-service.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-3-Logical-design-of-an-auto-heal-assistant.jpg From 39fdadf56aa6a6801a8f7cc8217d232cb4ba3a92 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 6 Aug 2022 03:30:42 +0800 Subject: [PATCH 0645/3123] translating --- ...project that opens the internet for all.md | 60 ------------------- 1 file changed, 60 deletions(-) delete mode 100644 sources/tech/20220626 An open source project that opens the internet for all.md diff --git a/sources/tech/20220626 An open source project that opens the internet for all.md b/sources/tech/20220626 An open source project that opens the internet for all.md deleted file mode 100644 index 4f4e509eab..0000000000 --- a/sources/tech/20220626 An open source project that opens the internet for all.md +++ /dev/null @@ -1,60 +0,0 @@ -[#]: subject: "An open source project that opens the internet for all" -[#]: via: "https://opensource.com/article/22/6/equalify-open-internet-accessibility" -[#]: author: "Blake Bertuccelli https://opensource.com/users/blake" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -An open source project that opens the internet for all -====== -Equalify is an open source project with the goal of making the open internet more accessible. - -![Plumeria by Bernard Spragg][1] - -Image by: "Plumeria (Frangipani)" by Bernard Spragg is marked with CC0 1.0. - -Accessibility is key to promoting an open society. - -We learn online. We bank online. Political movements are won and lost online. Most importantly, the information we access online inspires us to make a better world. When we ignore accessibility requirements, people born without sight or who lost limbs in war are restricted from online information that others enjoy. - -*We must ensure that everyone has access to the open internet*, and I am doing my part to work toward that goal by building [Equalify][2]. - -### What is Equalify? - -Equalify is "the accessibility platform." - -The platform allows users to run multiple accessibility scans on thousands of websites. With our latest version, users can also filter millions of alerts to create a dashboard of statistics that are meaningful to them. - -The project is just getting started. Equalify aims to open source all the premium features that expensive services like SiteImprove provide. With better tools, we can ensure that the internet is more accessible and our society is more open. - -### How do we judge website accessibility? - -W3C's Web Accessibility publishes the Web Content Accessibility Guideline (WCAG) report that sets standards for accessibility. Equalify, and others, including the US Federal Government, use WCAG to meter website accessibility. The more websites we scan, the more we can understand the shortcomings and potentials of WCAG standards. - -### How do I use Equalify? - -Take a few minutes to browse our GitHub and learn more about the product. Specifically, the [README][3] provides steps on how to begin supporting and using Equalify. - -### Our goal - -Our ultimate goal is to make the open internet more accessible. 96.8% of homepages do not meet WCAG guidelines, according to [The WebAIM Million][4]. As more people build and use Equalify, we combat inaccessible pages. Everyone deserves equal access to the open internet. Equalify is working toward that goal as we work toward building a stronger and more open society for all. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/equalify-open-internet-accessibility - -作者:[Blake Bertuccelli][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/blake -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/2022-06/plumeria-frangipani-bernard-spragg.jpg -[2]: https://equalify.app/ -[3]: https://github.com/bbertucc/equalify -[4]: https://webaim.org/projects/million/ From 43e895d5390dd72517a20f782b013c94f88a9ea0 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 6 Aug 2022 03:31:51 +0800 Subject: [PATCH 0646/3123] finally translating --- ...project that opens the internet for all.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 translated/tech/20220626 An open source project that opens the internet for all.md diff --git a/translated/tech/20220626 An open source project that opens the internet for all.md b/translated/tech/20220626 An open source project that opens the internet for all.md new file mode 100644 index 0000000000..eb5d096ccd --- /dev/null +++ b/translated/tech/20220626 An open source project that opens the internet for all.md @@ -0,0 +1,61 @@ +[#]: subject: "An open source project that opens the internet for all" +[#]: via: "https://opensource.com/article/22/6/equalify-open-internet-accessibility" +[#]: author: "Blake Bertuccelli https://opensource.com/users/blake" +[#]: collector: "lkxed" +[#]: translator: "yjacks" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An open source project that opens the internet for all +一个为了使因特网开放向所有人的开源项目 +====== +Equalify 是一个为了让因特网更加无障碍的开源项目。 + +![Plumeria by Bernard Spragg][1] + +Image by: "Plumeria (Frangipani)" by Bernard Spragg is marked with CC0 1.0. + +易于使用的因特网是一把促进社会更加开放的的钥匙。 + +我们在线学习。我们在线记录。政治运动都在线上胜利或失败。信息是一个向更好地世界的在线通道,这是最为重要的关键之处。当我们放弃无障碍要求时,出生时失去光明,或在战争中失去四肢的人们都将只能被阻挡在他人可以享受的在线信息外。 + +*我们必须确保每个人都有到开放互联网的通道*,所以我在做我那份的工作,通过开发[Equalify][2],来达到那个目标。 + +### 什么是 Equalify? + +Equalify 是“更无障碍的平台” + +这个平台允许使用者们运行大量的无障碍操作在数以千计的网页。通过用最新的版本,用户还可以过滤无数的警告,创建一个对他们来说有意义的统计仪表盘。 + +这个项目方兴未艾。Equalify 的目的是开源所有的收费服务的高级特性,例如 SiteImprove 提供的。和更好地工具,我们可以保证因特网更加的无障碍、我们的社会更加开放。 + +### 我们如何判断网页是否无障碍化? + +W3C 的网页设计无障碍化指南(WCAG)设定了无障碍标准。Equalify 和其它的组织,包括合众国政府US Federal Government,使用 WCAG 来定义望远的无障碍化。我们审视的的网站越多,我们就越能理解WCAG标准的缺点和潜力。 + +### 我如何使用 Equalify? + +花点时间看我们的Github,这样你能更多的了解这个产品。[README][3]提供了分布教程,它关于如何开始维护和使用 Equalify。 + +### 我们的目标 + +我们的最终目标是让开放互联网更加无障碍化。96.8%的主页面不满足 WCAG 指南,通过[The WebAIM Million][4]。更多的人们开发和使用 Equalify,我们与有障碍的页面斗争。万物都因在开放因特网被平等对待。Equalify 正在朝着这个目标努力,我们正在朝着为所有人建设一个更强大、更开放的社会而努力。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/equalify-open-internet-accessibility + +作者:[Blake Bertuccelli][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/yjacks) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/blake +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-06/plumeria-frangipani-bernard-spragg.jpg +[2]: https://equalify.app/ +[3]: https://github.com/bbertucc/equalify +[4]: https://webaim.org/projects/million/ From 9b00586a296a90b498af166ebbabf897bb35ce57 Mon Sep 17 00:00:00 2001 From: yjacks Date: Sat, 6 Aug 2022 03:33:38 +0800 Subject: [PATCH 0647/3123] Update 20220626 An open source project that opens the internet for all.md --- ...6 An open source project that opens the internet for all.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/translated/tech/20220626 An open source project that opens the internet for all.md b/translated/tech/20220626 An open source project that opens the internet for all.md index eb5d096ccd..2b4e2dde6f 100644 --- a/translated/tech/20220626 An open source project that opens the internet for all.md +++ b/translated/tech/20220626 An open source project that opens the internet for all.md @@ -7,7 +7,6 @@ [#]: publisher: " " [#]: url: " " -An open source project that opens the internet for all 一个为了使因特网开放向所有人的开源项目 ====== Equalify 是一个为了让因特网更加无障碍的开源项目。 @@ -48,7 +47,7 @@ via: https://opensource.com/article/22/6/equalify-open-internet-accessibility 作者:[Blake Bertuccelli][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/yjacks) +译者:[yjacks](https://github.com/yjacks) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From def2e571ac5ff1c210d754d9aa89d38d79967153 Mon Sep 17 00:00:00 2001 From: yjacks Date: Sat, 6 Aug 2022 03:39:03 +0800 Subject: [PATCH 0648/3123] Update 20220626 An open source project that opens the internet for all.md --- ...26 An open source project that opens the internet for all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20220626 An open source project that opens the internet for all.md b/translated/tech/20220626 An open source project that opens the internet for all.md index 2b4e2dde6f..038ebafef1 100644 --- a/translated/tech/20220626 An open source project that opens the internet for all.md +++ b/translated/tech/20220626 An open source project that opens the internet for all.md @@ -27,7 +27,7 @@ Equalify 是“更无障碍的平台” 这个平台允许使用者们运行大量的无障碍操作在数以千计的网页。通过用最新的版本,用户还可以过滤无数的警告,创建一个对他们来说有意义的统计仪表盘。 -这个项目方兴未艾。Equalify 的目的是开源所有的收费服务的高级特性,例如 SiteImprove 提供的。和更好地工具,我们可以保证因特网更加的无障碍、我们的社会更加开放。 +这个项目方兴未艾。Equalify 的目的是开源所有的收费服务的高级特性,例如 SiteImprove 提供的,和更好地工具,我们可以保证因特网更加的无障碍、我们的社会更加开放。 ### 我们如何判断网页是否无障碍化? From 9b36d07f8be8549c7890cbca8635ac11b04d8c07 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Fri, 5 Aug 2022 18:48:53 -0500 Subject: [PATCH 0649/3123] Finished translating. --- ...s an Ethernet splitter slow down speed-.md | 99 ----------------- ...s an Ethernet splitter slow down speed-.md | 100 ++++++++++++++++++ 2 files changed, 100 insertions(+), 99 deletions(-) delete mode 100644 sources/tech/20220716 Does an Ethernet splitter slow down speed-.md create mode 100644 translated/tech/20220716 Does an Ethernet splitter slow down speed-.md diff --git a/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md b/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md deleted file mode 100644 index b830d33f57..0000000000 --- a/sources/tech/20220716 Does an Ethernet splitter slow down speed-.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "Does an Ethernet splitter slow down speed?" -[#]: via: "https://www.debugpoint.com/ethernet-splitter-speed/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Does an Ethernet splitter slow down speed? -====== -This post summarises detailed information about ethernet splitter, their speed, and different FAQ to help you choose the best hardware. - -Switches, hubs, and ethernet splitters are just some of the networking equipment that helps to expand a network. Small ethernet splitters are the most basic of these devices. Ethernet splitters are small network devices that split one Ethernet signal into two. They are cost-effective while being easier to use. These are also some of the simplest networking devices, as they don’t need a power source and don’t have specific buttons or status LEDs on their bodies. There are just three ethernet ports on this tiny gadget, two on one side and one on the other. A short ethernet cable with an [RJ45][1] connection on one end and two ethernet ports on the other is included with some kinds. - -Although splitters have been around for a long time in the networking world, many people still don’t know how to utilize them efficiently. Contrary to popular belief, ethernet splitters should always be purchased in pairs. Directly attaching one end of the splitter to the router and then connecting two devices to the splitter’s two ethernet ports on the other side will not work. There is a correct technique to set up ethernet splitters in a network to function correctly. - -### How to do a Basic Setup using Ethernet Splitter - -Ethernet splitters are handy for connecting two devices located in different rooms from the primary signal source. In most situations, they assist in conserving wires and network wall outlets and provide dependable connections. Ethernet splitters are sold in pairs, as previously stated. One splitter combines two signals from a device (usually the router), while the other separates the signals into two channels, allowing two devices to communicate. - -You have a router in Room A and two PCs in Room B, but each room has just one ethernet wall jack. In this scenario, you’ll need one splitter, two cables connected to the router, the other end of the wires connected to the splitter, and one end of the splitter connected to the wall jack in Room A. This is where the router’s two signals are combined into one. Next, connect the side with one port to Room B’s wall jack via the other splitter. The combined signal from Room A will now be split into two, giving you two ethernet ports for the two devices in Room B. - -The advantage of the splitter is it can significantly reduce the number of wall ports and cables you may require for your setup. It helps you to avoid “cable hell” because it reduces your required ports/cable by a factor of 2. - -![sample diagram using ethernet splitter][2] - -### Does an Ethernet splitter slow down speed? - -Will my network connection become slow? This is one of the common questions that may arise in your mind. Well, the answer depends on the type of network you have. Ideally, splitters are of BASE-T standard, aka [Fast Ethernet][3]. And they support up to Mbps speed. - -To answer, no, the splitters will not slow down the connection if utilized in a 100Mbps network. However, if your router can deliver 1Gbps and you put a splitter in the middle, the bandwidth will be limited to 100Mbps. The splitters did restrict the speed in this case, and the connection will be slower. - -### Advantages and Disadvantages of Ethernet Splitters - -Ethernet splitters can be helpful in some situations, but they also have several disadvantages. For starters, each ethernet port can only give a maximum speed of 100Mbps. Due to this limitation, resources in a network capable of providing more than 100Mbps will not be properly optimized. Furthermore, because the number of devices you may connect to is limited to just two, ethernet splitters are not the most greatest option if you have more than two devices connected. - -Furthermore, if your router has one remaining ethernet port, using the splitters would be impractical; some sacrifices must be made. Furthermore, even though they reduce the number of cables required to join two networks, the arrangement still requires two splitters to function. - -Ethernet splitters, on the other hand, have a few advantages. They are much less expensive than conventional networking devices and do not require a complex setup. Unlike other network devices, they also don’t need any software or configuration. In residential networks with fewer devices connected, such as a maximum of two devices in one room, Ethernet splitters are an excellent choice. Ethernet splitters are the greatest option if you only need a 100Mbps connection and only have two devices to connect. - -Ethernet splitters have been around for a long time, but as simple as they are, there isn’t much that can be done to improve them. They’re still based on the outdated Fast Ethernet standard, which may or may not be as relevant in today’s demand for higher speeds. Even if they have their advantages, they aren’t a realistic solution in most circumstances. With today’s technical advancements, the future of ethernet splitters remains bright. A genius may be able to raise it to a [Gigabit Ethernet][4] standard. - -Now that you get some idea about Ethernet Splitters, here are some of the frequently asked questions (FAQ) about them. - -### Frequently Asked Questions - -#### Can you split an Ethernet cable into two devices? - -This is conceivable if you want to split an Ethernet wire across two devices. This will, however, necessitate the acquisition of an Ethernet cable sharing splitter kit. A splitter kit allows multiple devices to use the same Ethernet cable simultaneously. If you want to connect a PC and a laptop to the same cable or a PC and a game console, this is a good option. - -An Ethernet cable will outperform any other sort of connection when it comes to connection speeds. When you require quick connectivity for activities like gaming, an Ethernet cable is always the best option. - -It’s worth mentioning that you can’t connect two devices with a single Ethernet cable because they’re only designed for one, which is why you’ll need an Ethernet cable splitter. It attaches to an existing Ethernet wire and provides a connection between two devices. - -#### How do I connect two devices to one Ethernet port? - -Two devices can be connected to a single Ethernet port. However, as previously stated, you will require the usage of a cable-sharing kit. This is because each Ethernet connection is dedicated to a single device. - -With an Ethernet cable sharing kit, you may connect many devices to a single Ethernet port, which is very handy for your home network. It’s beneficial if you’re throwing a LAN party and have a few Ethernet connections available. - -It’s also worth mentioning that you could have more than one Ethernet port accessible. If this is the case, using one port for each device is always the best option. When this isn’t possible, a cable sharing kit or splitter is an excellent backup alternative. - -#### What’s the difference between an Ethernet splitter and a switch? - -An Ethernet splitter and a switch perform similar functions but are fundamentally distinct. An Ethernet splitter allows two independent connections to be made over the same Ethernet cable. It does, however, limit you to two connections. If you want to connect one additional device to the Ethernet connection, this is a good option. However, it is not compatible with any other devices. - -If you want to connect many devices to a single Ethernet connection, you’ll need to buy an Ethernet switch. These are similar to Ethernet splitters, except they allow for connecting more than two devices. This is especially handy if you have a lot of devices to connect but only a few Ethernet ports, such as if you’re having a LAN party. - -While they support stacking, it’s worth remembering that they’ll also require power. Another difference between them and a basic Ethernet splitter is that they do not require any electricity and may be attached directly to the Ethernet port. - -#### Do I need an Ethernet switch or splitter? - -The number of devices you want to connect will determine whether you need an Ethernet switch or a splitter. You can use an Ethernet splitter if you need to connect two devices and don’t want to utilize a power source. - -On the other hand, an Ethernet switch is an ideal solution if you need to connect several devices. It allows you to connect several devices to a single Ethernet port, but it requires electricity. - -I hope this guide helps you to get an idea about ethernet splitters and how to use them. You can buy them at any online store at low prices. However, if you need a speed of more than a hundred Mbps, you might need to set up wiring for your network. *[This post is part of our hardware guides.][5]* - -*Featured Photo by Jainath Ponnala on Unsplash* - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/ethernet-splitter-speed/ - -作者:[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://en.wikipedia.org/wiki/Registered_jack -[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/sample-diagram-using-ethernet-splitter-1024x896.jpg -[3]: https://en.wikipedia.org/wiki/Fast_Ethernet -[4]: https://en.wikipedia.org/wiki/Gigabit_Ethernet -[5]: https://www.debugpoint.com/category/hardware diff --git a/translated/tech/20220716 Does an Ethernet splitter slow down speed-.md b/translated/tech/20220716 Does an Ethernet splitter slow down speed-.md new file mode 100644 index 0000000000..5efe411d77 --- /dev/null +++ b/translated/tech/20220716 Does an Ethernet splitter slow down speed-.md @@ -0,0 +1,100 @@ +[#]: subject: "Does an Ethernet splitter slow down speed?" +[#]: via: "https://www.debugpoint.com/ethernet-splitter-speed/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "MCGA" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +以太网分离器会降低网速吗? +====== + +这批文章详细总结了以太网分离器,以及它们的速度,还有常见问题等信息,来帮助你选择最合适的硬件。 + +交换机Switch集线器Hub,还有以太网分离器Ethernet Splitter是用来帮助扩展网络的网络设备。这其中,最基础的设备就是小巧的以太网分离器了。它们是可以将一个以太网信号分成两个的小型设备。它们简单易用,并且还便宜。这可以算是最简单的网络设备之一了,因为他们不需要提供电源,也不需要特定的按键或者 LED 灯来提示状态。只是在一个小设备上有三个以太网端口,其中两个在一侧,另一个在另一侧。有些品种是在一侧有带着一小段 [RJ45][1] 网线的连接,另一侧是两个以太网端口。 + +尽管在网络世界中,分离器已经存在了相当长一段时间了,很多人还是不知道如何有效使用它们。与普遍的看法相反的是,以太网分离器应该总是成对购买。直接把分离器的一端和路由器连接,再把两个设备与分离器的两个端口连接,这样是不行的。想让分离器在网络中正常工作,是有一个正确的设置技巧的。 + +### 如何使用以太网分离器进行一个基本的设置 + +要从主信号源连接两个在不同房间的设备,以太网分离器是非常方便的。大多数情况下,它们可以节约网线、墙上的网络出口,以及提供可靠的连接 。就像之前说的,以太网分离器是成对卖的。一个分离器把信号从设备(通常是路由器)上合并,然后另一个把信号分成两个信道,这样就可以让两个设备通信了。 + +路由器在房间 A,两个 PC 在房间 B,但是每个房间的墙上只有一个以太网接口。这种情况下,就需要一个分离器,两条网线网线连到路由器上,网线的另外一端连到分离器上,然后分离器的另一端连到房间 A 墙上的接口。这样路由器的两个信号就合并到一起了。接下来,另一个分离器只有一个端口的那一端接到房间 B 墙上的接口上。从房间 A 合并的信号现在就会分成两个,这样在房间 B 里面,你就可以有两个以太网端口了。 + +分离器的优势是它可以大量减少墙上的接口,也会大量减少你这种情况下所需的网线。它会帮你避免“网线地狱”,因为这样会以 2 的倍数降低所需要的端口/网线。 + +![sample diagram using ethernet splitter][2] + +### 以太网分离器会降低网速吗? + +网络连接会变慢吗?这可能是你想到的常见问题之一。好吧,答案取决于你的网络类型。理想情况下,分离器是 BASE-T 标准,也就是快速以太网Fast Ethernet。它们可以支持高达 Mbps 的速度。 + +答案是不,如果分离器在一个 100Mbps 的网络中使用,它是不会降低网速的。然而,如果你的路由器可以传输 1Gbps,然后你在中间用了一个分离器,那么带宽将被限制在 100Mbps。这种情况下,分离器确实会限制速度,连接会变慢。 + +### 以太网分离器的优势和劣势 + +以太网分离器在一些情况下很有用,但是它们也有一些缺点。对于小白来说,每个以太网端口只能提供最高 100Mbps 的速度。因为这个限制,网络中能够提供高于 100Mbps 的资源就不能被合理优化了。另外,因为你能连接的设备数量被限制在两个,如果你有两个以上的设备,以太网分离器并不是最佳选择。 + +此外,如果路由器只剩下一个以太网端口,使用分离器是不现实的;这时候就只能做一些牺牲了。然后,尽管它们可以减少把两个网络合并所需要的网线,这种方式需要两个分离器才能工作。 + +相反的,以太网分离器也有一些优势。它们比起常见的网络设备要便宜,也不需要复杂的设置。不像其他网络设备,它们也不需要软件和其他配置。在设备不多的家庭网络中,比如说一个房间最多两个设备,以太网分离器是一个绝佳的选择。如果你只需要 100Mbps 的网络,只有两个设备要连接,以太网分离器是最好的选项。 + +以太网分离器出现已经很长时间了,但是由于非常简单,也没有太多可以改进的空间。它们仍然是基于过时的快速以太网Fast Ethernet标准,这也许和今天高速网络的需求有点格格不入。尽管有它们的优势,大多数情况下,它们还真不是一个现实的解决方案。随着现在技术的进步,以太网分离器的前景依然光明。也许某个天才可以让他用在千兆以太网Gigabit Ethernet标准上。 + +现在你已经对以太网分离器有一些了解了,下面是一些常见问题(FAQ)。 + +### 常见问题 + +#### 可以把一条以太网线分到两个设备上吗? + +如果你想把一条以太网线分到两个设备上,这是可以想象的。然而,这就需要买一个以太网线共享分离套件。分离器套件可以让多个设备同时使用同一条网线。如果你想把 PC 和笔记本,或者 PC 和游戏主机,同时连到同一个网线上,这是个不错的选择。 + +说到连接速度,以太网线会超过其他连接方式。当有些东西需要快速连接,比如说游戏,以太网线通常都是最好的选择。 + +需要指出的是,你不能用一个网线连接两个设备,因为它们只是为一个设备而设计的,这也就是为什么你需要一个以太网分离器。它会连到一个已有的网线上,然后为两个设备提供连接。 + +#### 我怎么把两个设备连到一个以太网端口? + +两个设备可以连到一个以太网端口。然而,就像之前说的,你需要使用网线共享套件。这是因为每个以太网连接是为一个单个设备设计的。 + +有了以太网线共享套件,你就可以给一个以太网端口连上多个设备了,这对于家庭网络来说是非常方便的。如果你有几个以太网连接可用,然后需要很多的 LAN 连接,这肯定有用。 + +还需要说的一点是,如果你有多余的以太网端口可用,如果是这种情况,最好的选择是给每个设备分配一个端口。当这种情况不行的时候,网线共享套件或者分离器是一个完美的备选方案。 + +#### 以太网分离器和交换机有什么区别? + +以太网分离器和交换机工作起来差不多,但是从根本上是不同的。以太网分离器可以在同一根以太网线上运行两个独立的连接。然而,这最多就是两个连接。如果你只想要一个另外的设备连到这个以太网上,这是个不错的选择。但是,再有其他设备就不行了。 + +如果你想往一个以太网连接上连很多个设备,就需要买一个以太网交换机。除了可以允许多于两个设备连接外,交换机和以太网分离起相似。如果有很多要连接的设备,但是只有几个以太网端口,交换机是非常方便的,比如说你正在连接很多设备到 LAN。 + +在他们支持多个设备的时候,需要记住的是,它们也需要供电。交换机和分离器的另一个不同是,分离器不要供电,可以直接连到以太网端口。 + +#### 我需要以太网交换机还是分离器? + +你要连接的设备的数量决定了是需要一个交换机还是分离器。如果只需要连两个设备,可以用以太网分离器,也不用给他供电。 + +相反的,如果需要连好几设备,以太网交换机是一个理想的解决方案。它可以连接几个设备到同一个以太网端口,但是它需要供电。 + +我希望这篇指南能帮你了解以太网分离器以及如果使用它们。从网上可以以很低的价格买到。然而,如果需要超过 100Mbps 的速度,也许你需要给你的网络配置一下线路。 *[这篇文章是我们硬件指南的一部分。][5]* + +*Featured Photo by Jainath Ponnala on Unsplash* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/ethernet-splitter-speed/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[Yufei-Yan](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://en.wikipedia.org/wiki/Registered_jack +[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/sample-diagram-using-ethernet-splitter-1024x896.jpg +[3]: https://en.wikipedia.org/wiki/Fast_Ethernet +[4]: https://en.wikipedia.org/wiki/Gigabit_Ethernet +[5]: https://www.debugpoint.com/category/hardware From b315bdac7cb8ab0a05218e38e0acfd2e97a582cc Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 6 Aug 2022 17:13:40 +0800 Subject: [PATCH 0650/3123] =?UTF-8?q?=E5=8E=9F=E6=96=87=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=8C=E8=B7=9F=E8=BF=9B=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eleting Inactive Projects by Free Users.md | 92 +++++++++++++++++++ ...eleting Inactive Projects by Free Users.md | 71 -------------- 2 files changed, 92 insertions(+), 71 deletions(-) create mode 100644 sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md delete mode 100644 sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md diff --git a/sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md b/sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md new file mode 100644 index 0000000000..973d1e66f8 --- /dev/null +++ b/sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md @@ -0,0 +1,92 @@ +[#]: subject: "GitLab Backtracks On Deleting Inactive Projects by Free Users" +[#]: via: "https://news.itsfoss.com/gitlab-inactive-projects-policy/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GitLab Backtracks On Deleting Inactive Projects by Free Users +====== +GitLab almost turned into a villain we never expected with this new policy change. What are your thoughts on it? + +![gitlab][1] + +Right after Microsoft acquired GitHub, many users migrated to GitLab and other [GitHub alternatives][2]. + +Considering many popular open-source projects can be found on GitLab, it has a good reputation with developers and project maintainers. + +**Update, Aug 5:** Originally reported by [The Register][3], GitLab planned to remove inactive projects by free user accounts. Now, GitLab seems to have [dropped the idea][4] after netizens expressed their concerns about it. + +> We discussed internally what to do with inactive repositories. \ +> We reached a decision to move unused repos to object storage. \ +> Once implemented, they will still be accessible but take a bit longer to access after a long period of inactivity. + +[@gitlab's tweet][5] + +### GitLab Will Move Inactive Repos to Object Storage + +GitLab shared a statement sharing that they will no longer delete inactive projects. Instead, they will move those projects to object storage, making them slower to access. + +GitLab’s Co-founder and CEO, **Sid Sijbrandij**, further clarified that those projects would remain visible to everyone. + +> Archived projects [https://t.co/4rOeJHNilh][6] is a user activated state that signals intent. We're not sure yet but very likely the storage type used is orthogonal to that. Our current plan for object storage [https://t.co/fLRl2TY744][7] would keep the repos visible to everyone. + +[@sytses's tweet][8] + +As per *The Register*, sources who requested anonymity revealed that a new policy was scheduled to come into force in September 2022, which would have resulted in removing several inactive projects on GitLab. + +This move would have helped GitLab save up to **$1 million** yearly in hosting costs. + +Now that they will no longer be deleting those projects, will they save hosting costs by moving projects to object storage? + +*The Register* mentions that there have been internal discussions about the possibility of moving unused repos to object storage, where GitLab’s cost of maintaining it may increase due to required redundant backups. + +**So, what changed in GitLab’s policy now?** Without official clarification by GitLab, we remain clueless. + +### More Decisions to Make + +GitLab hasn’t made any public statements regarding the entire situation. But, **GitLab’s CEO** mentioned the following when it comes to identifying inactive projects: + +> We’re not sure yet. Probably all write operations would keep a project active, creating an issue, a merge request, pushing changes to a branch, etc. We might also keep it active as long as people are doing read operations such as cloning, forking, etc. + +While we no longer have to worry about deleted projects, more clarity on this will be added to this in the coming days. + +### A Valid Excuse: Was it? + +GitLab deleting projects to save disk space was a big deal. + +The entire point of offering free services was to let users host code on their platform, whether the project remains active or not. One can agree that everyone should encourage projects to have some activity. But why should that be a requirement to host your code on a platform that promises free services? + +A developer can simply choose to make a simple tool/program and keep it at GitLab for anyone to find and fork it, with no aim to maintain/update it. Sometimes, the developer may no longer be available or have access to add activity to their projects. + +**For example**, we have plenty of GitHub projects that haven’t seen any activity for years, but people still rely on it, fork it, and use it. + +So, I’m sure you will come across several hundred projects that do not have any activity but are helpful or have a working fork. + +**I think** GitLab, as a company with a good reputation shouldn’t have even thought about such an idea, to begin with. + +*What do you think about GitLab’s original report on auto-deletion policy? Is object storage the perfect alternative for saving old repos? Kindly let me know your thoughts in the comments down below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gitlab-inactive-projects-policy/ + +作者:[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/08/gitlab-backdrop-warning.jpg +[2]: https://itsfoss.com/github-alternatives/ +[3]: https://www.theregister.com/2022/08/04/gitlab_data_retention_policy/ +[4]: https://www.theregister.com/2022/08/05/gitlab_reverses_deletion_policy/ +[5]: https://twitter.com/gitlab/status/1555325376687226883?ref_src=twsrc%5Etfw +[6]: https://docs.gitlab.com/ee/user/project/settings/ +[7]: https://gitlab.com/groups/gitlab-org/-/epics/4959 +[8]: https://twitter.com/sytses/status/1555344675761819648?ref_src=twsrc%5Etfw diff --git a/sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md b/sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md deleted file mode 100644 index b093e79313..0000000000 --- a/sources/news/20220804 GitLab Plans to Save Up to -1M by Deleting Inactive Projects by Free Users.md +++ /dev/null @@ -1,71 +0,0 @@ -[#]: subject: "GitLab Plans to Save Up to $1M by Deleting Inactive Projects by Free Users" -[#]: via: "https://news.itsfoss.com/gitlab-inactive-projects-policy/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GitLab Plans to Save Up to $1M by Deleting Inactive Projects by Free Users -====== - -Right after Microsoft acquired GitHub, many users migrated to GitLab and other [GitHub alternatives][1]. - -Considering many popular open-source projects can be found on GitLab, it has a good reputation with developers and project maintainers. - -Now, there has been an interesting development at GitLab, as reported by [The Register][2]. - -### GitLab to Remove Inactive Projects in Free Accounts - -As per _The Register_, sources who requested anonymity revealed that a new policy is scheduled to come into force in September 2022, which will result in removing several inactive projects on GitLab. - -In other words, if you are a free tier user on GitLab and have an idle project with no recent updates in **12 months**, _it will be auto-deleted_. - -Apparently, this move cuts GitLab’s hosting costs and saves up to **$1 million a year**. - -While that sounds like a sizable saving, it does not make things appear better. - -The report also states that a single comment, commit, or issue for a project during 12 months will ensure that it does not get deleted. - -In addition to the new policy, you can expect GitLab to provide users weeks or months as a warning before deleting any of their work. - -### A Valid Excuse: Is it? - -GitLab deleting projects to save disk space is a big deal. - -The entire point of offering free services was to let users host code on their platform, whether the project remains active or not. One can agree that everyone should encourage projects to have some activity. But why should that be a requirement to host your code on a platform that promises free services? - -A developer can simply choose to make a simple tool/program and keep it at GitLab for anyone to find and fork it, with no aim to maintain/update it. Sometimes, the developer may no longer be available or have access to add activity to their projects. - -**For example**, we have plenty of GitHub projects that haven’t seen any activity for years, but people still rely on it, fork it, and use it. - -So, I’m sure you will come across several hundred projects that do not have any activity but are helpful or have a working fork. - -**I think** GitLab should manage its pricing plans and finances better to keep up with the free tier offerings. - -### GitLab is Taking the Easy Way Out - -If the report is accurate and GitLab proceeds to enforce this kind of policy later this year, it will not have a good impact. - -The free tier accounts have access to 5 GB of storage. We could lose access to various small creators’ incredible tools/projects. - -GitLab hasn’t made any public statements regarding this situation. We’ll make sure to update our coverage if something pops up. - -_What do you think about GitLab’s auto-deletion policy? What should GitLab do about it? Kindly let me know your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gitlab-inactive-projects-policy/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/github-alternatives/ -[2]: https://www.theregister.com/2022/08/04/gitlab_data_retention_policy/ From 0a09dc9cac35668e283bc0bd9b0352046d341722 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 6 Aug 2022 17:36:14 +0800 Subject: [PATCH 0651/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220806=20Old-school=20technical=20writing=20with?= =?UTF-8?q?=20groff.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Old-school technical writing with groff.md | 209 ++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 sources/tech/20220806 Old-school technical writing with groff.md diff --git a/sources/tech/20220806 Old-school technical writing with groff.md b/sources/tech/20220806 Old-school technical writing with groff.md new file mode 100644 index 0000000000..2825c07f35 --- /dev/null +++ b/sources/tech/20220806 Old-school technical writing with groff.md @@ -0,0 +1,209 @@ +[#]: subject: "Old-school technical writing with groff" +[#]: via: "https://opensource.com/article/22/8/old-school-technical-writing-groff" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Old-school technical writing with groff +====== +Take a trip back in time to experience text formatting from a bygone era. + +![Compute like it's 1989][1] + +Image by: LSE Library. Modified by Opensource.com. CC BY-SA 4.0 + +One of my favorite stories about Unix is how it turned into a text processing system. Brian Kernighan [tells the story in his book][2] Unix: A History and a Memoir (chapter 3) but to summarize: The Unix team at Bell Labs ran the original Unix on a PDP-7 computer, but it was a tiny system and didn't have sufficient resources to support new work. So Ken Thompson and others lobbied to purchase a new PDP-11 computer. Management denied the request. Around the same time, the Patents department planned to buy a new computer platform to produce patent applications using proprietary document formatting software. The Unix group proposed that the Patents department instead buy a new PDP-11 for the Unix team, and the Unix team would create formatting software for them. + +That new formatting system was called `nroff`, short for "New Roff," an updated version of a text formatting program called Roff from a 1960s computer system. The name Roff came from the old expression, "I'll run off a document." + +### Basic formatting with nroff + +By default, `nroff`  collects words and fills paragraphs. When `nroff`  encounters a blank line, it starts a new paragraph. For example, start with this article's introduction, which is only a few paragraphs long: + +``` +$ cat intro +Old-school technical writing with groff +Jim Hall +  +One of my favorite stories about Unix is how it turned +into a text processing system. Brian Kernighan tells the +story in his book Unix: A History and a Memoir (chapter 3) +but to summarize: +The Unix team at Bell Labs ran the original Unix on +a PDP-7 computer, but it was a tiny system and didn't +have sufficient resources to support new work. So Ken +Thompson and others lobbied to purchase a new PDP-11 +computer. Management denied the request. Around the same +time, the Patents department planned to buy a new computer +platform to produce patent applications using proprietary +document formatting software. The Unix group proposed +that the Patents department instead buy a new PDP-11 for +the Unix team, and the Unix team would create formatting +software for them. +  +That new formatting system was called nroff, short for +"New Roff," an updated version of a text formatting program +called Roff from a 1960s computer system. The name Roff +came from the old expression, "I'll run off a document." +``` + +If you process this file with `nroff`, lines are "glued" together so the output is paragraphs with full justification. Using `nroff` also hyphenates words, if that helps balance lines in the text: + +``` +$ nroff intro | head +Old‐school technical writing with groff Jim Hall +  +One  of  my  favorite  stories about Unix is how it turned into a +text processing system. Brian Kernighan tells the  story  in  his +book  Unix:  A History and a Memoir (chapter 3) but to summarize: +The Unix team at Bell Labs ran the original Unix on a PDP‐7  com‐ +puter,  but  it  was a tiny system and didn’t have sufficient re‐ +sources to support new work. So Ken Thompson and  others  lobbied +to purchase a new PDP‐11 computer. Management denied the request. +Around the same time, the Patents department planned to buy a new +``` + +Original Unix systems used a typewriter-style printer that used 66 lines of 80 columns on a US Letter page, and `nroff` makes the same assumptions. It also adds empty lines so each page of output is 66 lines per page, but I've used the `head` command to show just the first few lines of output because my sample text isn't very long. + +### Breaking lines and centering text + +The first two lines were meant to be separate lines of text. You can insert a formatting instruction to tell `nroff` to add a line break. All `nroff` instructions start with a dot, followed by a brief command. To add a line break, use the `.br` instruction between the first and second line: + +``` +Old-school technical writing with groff +.br +Jim Hall +``` + +When you process this new file, `nroff` prints the title and author on separate lines: + +``` +$ nroff intro | head +Old‐school technical writing with groff +Jim Hall +  +One  of  my  favorite  stories about Unix is how it turned into a +text processing system. Brian Kernighan tells the  story  in  his +book  Unix:  A History and a Memoir (chapter 3) but to summarize: +The Unix team at Bell Labs ran the original Unix on a PDP‐7  com‐ +puter,  but  it  was a tiny system and didn’t have sufficient re‐ +sources to support new work. So Ken Thompson and  others  lobbied +to purchase a new PDP‐11 computer. Management denied the request. +``` + +You can add other formatting to make this document look better. To center the top two lines, use the `.ce` formatting request. This takes a number argument, to indicate how many lines `nroff` should center. Here, you can center the top two output lines with the `.ce 2` request: + +``` +.ce 2 +Old-school technical writing with groff +.br +Jim Hall +``` + +With this added instruction, `nroff`  correctly centers the first two lines: + +``` +$ nroff intro | head +             Old‐school technical writing with groff +                            Jim Hall +  +One  of  my  favorite  stories about Unix is how it turned into a +text processing system. Brian Kernighan tells the  story  in  his +book  Unix:  A History and a Memoir (chapter 3) but to summarize: +The Unix team at Bell Labs ran the original Unix on a PDP‐7  com‐ +puter,  but  it  was a tiny system and didn’t have sufficient re‐ +sources to support new work. So Ken Thompson and  others  lobbied +to purchase a new PDP‐11 computer. Management denied the request. +``` + +### Adding page margins + +Printing this to a printer results in text starting on the first line of the page, and against the left edge. To add a few lines of extra space from the top of the page, use the `.sp` request, with the number of blank lines to add: + +``` +.sp 5 +.ce 2 +Old-school technical writing with groff +.br +Jim Hall +``` + +By default, `nroff` formats the output so each line is 65 columns wide. Printing to an 80 column US Letter page leaves 15 empty columns. Adding 7 spaces on the left side neatly balances the output with equal left and right page margins. You can create this page offset using the `.po 7` request: + +``` +.po 7 +.sp 5 +.ce 2 +Old-school technical writing with groff +.br +Jim Hall +``` + +Processing the new file with `nroff` produces a plain text page that's ready to print: + +``` +$ nroff intro | head + + + + + + Old‐school technical writing with groff + Jim Hall + + One of my favorite stories about Unix is how it turned into a + text processing system. Brian Kernighan tells the story in his +``` + +### Printing to a laser printer + +Later, the Unix team at Bell Labs acquired a phototypesetting machine, capable of producing printed text similar to a laser printer. To support the typesetter's new capabilities, the Unix team updated `nroff` to become the typesetter-specific `troff` program, and a few years later updated it again to become `ditroff`, the device-independent version of `troff`. + +Linux systems provide modern versions of `nroff` and `troff` using the GNU `groff` program. You can still use the old `nroff` program name to generate plain text output, or `troff` to produce `ditroff` compatible output. Using the `groff` program, you can also prepare documents for other kinds of output files, such as Postscript. + +You can process the same input file using `groff` to print on a Postscript-compatible laser printer by selecting a suitable output type using the `-T` option, such as `-Tps` to generate a Postscript file. For example, I can print to a printer with the [lpr command][3] and the `HP_LaserJet_CP1525nw` device, because that's how my Linux system [recognizes my laser printer][4]: + +``` +$ groff -Tps intro | lpr -P "HP_LaserJet_CP1525nw" +``` + +### Generating other kinds of output + +If you instead want to save the output as a PDF file, you can convert the Postscript using the `ps2pdf` tool: + +``` +$ groff -Tps intro | ps2pdf - > intro.pdf +``` + +To generate a web page from the same file, use `-Thtml` to set the output type to HTML: + +``` +$ groff -Thtml intro > index.html +``` + +The `groff` command supports lots of other built-in formatting requests to provide other kinds of document formatting. If you want to learn the other default formatting requests available to you in the GNU `groff` implementations of `nroff` and `troff`, refer to chapter 5 in the [The GNU Troff Manual][5]. + +Formatting documents using these built-in commands takes a lot of effort to keep everything looking the same. Technical writers who use `groff` instead use a collection of formatting requests called *macros*, which provide their own commands to generate section headings, paragraphs, block quotes, footnotes, lists, and other useful document formatting. To learn more about one popular macro package, read [How to format academic papers on Linux with groff -me][6] on Opensource.com. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/old-school-technical-writing-groff + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/1980s-computer-yearbook.png +[2]: https://opensource.com/article/20/8/unix-history +[3]: https://opensource.com/article/21/9/print-files-linux +[4]: https://opensource.com/article/18/3/print-server-raspberry-pi +[5]: https://www.gnu.org/software/groff/manual/groff.html#gtroff-Reference +[6]: https://opensource.com/article/18/2/writing-academic-papers-groff-me From bf11881647a9f16ef6ed9511c36de9cff40b9f56 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 6 Aug 2022 18:09:52 +0800 Subject: [PATCH 0652/3123] Translating --- ...9 Turn your Python script into a command-line application.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220719 Turn your Python script into a command-line application.md b/sources/tech/20220719 Turn your Python script into a command-line application.md index c703b2b61f..28a1a1e933 100644 --- a/sources/tech/20220719 Turn your Python script into a command-line application.md +++ b/sources/tech/20220719 Turn your Python script into a command-line application.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/bootstrap-python-command-line-application" [#]: author: "Mark Meyer https://opensource.com/users/ofosos" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d0f713fea0adde97420527d73c8e9149ef134889 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 6 Aug 2022 18:49:13 +0800 Subject: [PATCH 0653/3123] Start. --- ...t Made Fedora Choose To Use CC0 Licensed Code As The Boot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md index cb08fb17d5..ad268c7547 100644 --- a/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md +++ b/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/" [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yjacks" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5b18310094ad3196c26248ccb86c9814ac423d88 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 6 Aug 2022 20:04:13 +0800 Subject: [PATCH 0654/3123] RP @geekpi https://linux.cn/article-14902-1.html --- ... Open Source eBook Reader App for Linux.md | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) rename {translated/tech => published}/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md (59%) diff --git a/translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md similarity index 59% rename from translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md rename to published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md index 3b3aa3775a..42f7201a9a 100644 --- a/translated/tech/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md +++ b/published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md @@ -3,16 +3,18 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14902-1.html" -Koodo 是一款适用于 Linux 的一体化开源电子书阅读器应用 +Koodo:一款适用于 Linux 的一体化开源电子书阅读器应用 ====== -[有几个可供桌面 Linux 用户使用的电子书阅读器][1]。 +![](https://img.linux.net.cn/data/attachment/album/202208/06/200116wwgeawub7ge0tard.jpg) -几乎所有发行版都带有可以打开 PDF 文件的文档阅读器。它还可能支持其他文件格式,例如 epub 或 Mobi,但这不能保证。 +有几个可供桌面 Linux 用户使用的 [电子书阅读器][1]。 + +几乎所有发行版都带有可以打开 PDF 文件的文档阅读器。它还可能支持其他文件格式,例如 epub 或 Mobi,但不一定。 这就是为什么需要像 [Foliate][2] 和 Calibre 这样的专门应用来阅读和管理各种格式的电子书的原因。 @@ -20,27 +22,27 @@ Koodo 是一款适用于 Linux 的一体化开源电子书阅读器应用 ### Koodo:它有你能想到的一切 -[Koodo][3] 是一款多合一的开源电子书阅读器,具有帮助你更好地管理和阅读电子书的功能。它是一个跨平台应用,你可以在 Linux、Windows 和 macOS 上下载。你甚至可以[在网络浏览器中使用它][4]。 +[Koodo][3] 是一款多合一的开源电子书阅读器,具有帮助你更好地管理和阅读电子书的功能。它是一个跨平台应用,你可以在 Linux、Windows 和 macOS 上下载。你甚至可以 [在浏览器中使用它][4]。 -用户界面看起来很现代,可能是因为它是一个 Electron 应用。你必须导入书籍并将它们添加到 Koodo。它不按文件夹导入书籍。不过,你可以选择多个文件进行导入。书太多了?将一些添加到你的收藏夹以便快速访问。 +它的用户界面看起来很现代,可能是因为它是一个 Electron 应用。你必须导入书籍并将它们添加到 Koodo。它不按文件夹导入书籍。不过,你可以选择多个文件进行导入。书太多了?可以将一些添加到你的收藏夹以便快速访问。 ![Koodo ebook reader interface][5] -我使用了 AppImage 格式,但由于未知原因,它没有显示文件的缩略图。 +我使用了 AppImage 格式的软件包,但由于未知原因,它没有显示文件的缩略图。 ![Koodo ebook reader dark mode interface][6] -它支持流行的电子书文件格式,如 PDF、Mobi 和 Epub。但这并没有结束。它还支持 CBR、CBZ 和 CBT 漫画书格式,它还支持更多。它还可以阅读 FictionBooks (.fb2)、Markdown 和富文本格式 (RTF) 以及 MS Office word 文档 (Docx)。 +它支持流行的电子书文件格式,如 PDF、Mobi 和 Epub。但不止这些,它还支持 CBR、CBZ 和 CBT 等漫画书格式,它还支持更多。它还可以阅读 FictionBooks(.fb2)、Markdown 和富文本格式(RTF)以及微软 Office Word 文档(.docx)。 -除了支持海量文件格式外,它还提供了多种功能来改善你的阅读体验。 +除了支持很多文件格式外,它还提供了多种功能来改善你的阅读体验。 -你可以高亮显示文本并使用文本注释对其进行注释。你还可以在当前文档或 Google 上搜索选定的文本。 +你可以高亮显示文本并使用文本注释对其进行注释。你还可以在当前文档或谷歌上搜索选定的文本。 ![Annotate, highlight or translate selected text][7] -可以从主应用窗口的侧边栏中访问高亮显示的文本和注释。 +你可以从主应用窗口的侧边栏中访问高亮显示的文本和注释。 -有文本到语音和翻译选定文本的选项。但是,这两个功能在我的测试中都不起作用。我使用了 Koodo 的 AppImage 版本。 +也有文本到语音和翻译选定文本的选项。但是,这两个功能在我的测试中都不起作用。我使用的是 Koodo 的 AppImage 版本。 Koodo 支持各种布局。你可以以单列、双列或连续滚动布局阅读文档。对于 ePub 和 Mobi 格式,它会自动以双列布局打开。对于 PDF,默认选择单列布局。 @@ -50,23 +52,23 @@ Koodo 支持各种布局。你可以以单列、双列或连续滚动布局阅 Koodo 支持夜间阅读模式以及五个不同的主题。你可以根据自己的喜好在主题之间切换。 -你还可以使用 Dropbox 或其他支持 Webdav 协议的[云服务][9]跨设备同步你的书籍和阅读数据(如高亮、笔记等)。 +你还可以使用 Dropbox 或其他支持 Webdav 协议的 [云服务][9] 跨设备同步你的书籍和阅读数据(如高亮、笔记等)。 ![You can backup your data in your preferred cloud service][10] ### 在 Linux 上获取 Koodo -如果你想体验 Koodo 进行实验,你可以试试它的在线版本。你可以在网络浏览器中使用 Koodo。你的数据本地存储在浏览器中,如果你清理浏览器缓存,你会丢失数据(高亮、笔记等,但不会丢失计算机上存储的书籍)。 +如果你想体验一下 Koodo,你可以试试它的在线版本。你可以在浏览器中使用 Koodo。你的数据本地存储在浏览器中,如果你清理浏览器缓存,你会丢失数据(高亮、笔记等,但不会丢失计算机上存储的书籍)。 -[在线尝试 Koodo][11] +> **[在线尝试 Koodo][11]** -如果你喜欢它的功能,你可以选择在您的计算机上安装 Koodo。 +如果你喜欢它的功能,可以选择在您的计算机上安装 Koodo。 -Linux 用户有多种选择。你有 Debian 和基于 Ubuntu 的发行版的 deb 文件、Red Hat 和 Fedora 的 RPM 以及所有发行版的 Snap、AppImage 和可执行文件。 +Linux 用户有多种选择。你有 Debian 和基于 Ubuntu 的发行版的 deb 文件、Red Hat 和 Fedora 的 RPM,以及面向所有发行版的 Snap、AppImage 和可执行文件。 你可以从项目主页获取你选择的安装程序。 -[下载 Koodo][12] +> **[下载 Koodo][12]** ### 总结 @@ -76,7 +78,7 @@ Koodo 并不完美。它有大量功能,但并非所有功能都能完美运 感谢 Koodo 开发人员为桌面用户创建了一个有前途的开源应用。 -你可以[访问项目的仓库][13]来查看源代码、报告 bug 或者通过给项目加星来向开发者表达一些喜爱。 +你可以 [访问该项目的仓库][13] 来查看源代码、报告 bug 或者通过给项目加星来向开发者表达喜爱。 -------------------------------------------------------------------------------- @@ -85,7 +87,7 @@ via: https://itsfoss.com/koodo-ebook-reader/ 作者:[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/) 荣誉推出 From 20112924bc96317bc9c2f9ef83d3fe2aa8901e98 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 6 Aug 2022 20:58:38 +0800 Subject: [PATCH 0655/3123] . --- ...source project that opens the internet for all.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/translated/tech/20220626 An open source project that opens the internet for all.md b/translated/tech/20220626 An open source project that opens the internet for all.md index 038ebafef1..8ff0aad2ab 100644 --- a/translated/tech/20220626 An open source project that opens the internet for all.md +++ b/translated/tech/20220626 An open source project that opens the internet for all.md @@ -7,7 +7,7 @@ [#]: publisher: " " [#]: url: " " -一个为了使因特网开放向所有人的开源项目 +一个为了使因特网向所有人开放的开源项目 ====== Equalify 是一个为了让因特网更加无障碍的开源项目。 @@ -25,21 +25,21 @@ Image by: "Plumeria (Frangipani)" by Bernard Spragg is marked with CC0 1.0. Equalify 是“更无障碍的平台” -这个平台允许使用者们运行大量的无障碍操作在数以千计的网页。通过用最新的版本,用户还可以过滤无数的警告,创建一个对他们来说有意义的统计仪表盘。 +这个平台允许使用者们在数以千计的网页上运行大量的无障碍操作。通过用最新的版本,用户还可以过滤无数的警告,创建一个对他们来说有意义的统计仪表盘。 -这个项目方兴未艾。Equalify 的目的是开源所有的收费服务的高级特性,例如 SiteImprove 提供的,和更好地工具,我们可以保证因特网更加的无障碍、我们的社会更加开放。 +这个项目方兴未艾。Equalify 的目的是开源所有的收费服务的高级特性,例如 SiteImprove 提供的,以及更好地工具,让我们可以保证因特网更加的无障碍、我们的社会更加开放。 ### 我们如何判断网页是否无障碍化? -W3C 的网页设计无障碍化指南(WCAG)设定了无障碍标准。Equalify 和其它的组织,包括合众国政府US Federal Government,使用 WCAG 来定义望远的无障碍化。我们审视的的网站越多,我们就越能理解WCAG标准的缺点和潜力。 +W3C 的网页设计无障碍化指南(WCAG)设定了无障碍标准。Equalify 和其它的组织,包括合众国政府US Federal Government,使用 WCAG 来定义望远的无障碍化。我们审视的的网站越多,我们就越能理解WCAG标准的缺点和潜力。 ### 我如何使用 Equalify? -花点时间看我们的Github,这样你能更多的了解这个产品。[README][3]提供了分布教程,它关于如何开始维护和使用 Equalify。 +花点时间看我们的 Github,这样你能更多的了解这个产品。[README][3] 提供了分步教程,它关于如何开始维护和使用 Equalify。 ### 我们的目标 -我们的最终目标是让开放互联网更加无障碍化。96.8%的主页面不满足 WCAG 指南,通过[The WebAIM Million][4]。更多的人们开发和使用 Equalify,我们与有障碍的页面斗争。万物都因在开放因特网被平等对待。Equalify 正在朝着这个目标努力,我们正在朝着为所有人建设一个更强大、更开放的社会而努力。 +我们的最终目标是让开放互联网更加无障碍化。96.8% 的主页面不满足 WCAG 标准,通过[The WebAIM Million][4]。更多的人们开发和使用 Equalify,我们与有障碍的页面斗争。万物都因在开放因特网被平等对待。Equalify 正在朝着这个目标努力,我们正在朝着为所有人建设一个更强大、更开放的社会而努力。 -------------------------------------------------------------------------------- From 14f20c5397ccc83990c6f5fe6891a0a776135874 Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Sat, 6 Aug 2022 21:57:25 +0800 Subject: [PATCH 0656/3123] translated chess game --- ...a chess game using bit-fields and masks.md | 94 +++++++++---------- 1 file changed, 44 insertions(+), 50 deletions(-) diff --git a/sources/tech/20210823 Write a chess game using bit-fields and masks.md b/sources/tech/20210823 Write a chess game using bit-fields and masks.md index 6804f4d6bf..4705bd475a 100644 --- a/sources/tech/20210823 Write a chess game using bit-fields and masks.md +++ b/sources/tech/20210823 Write a chess game using bit-fields and masks.md @@ -7,13 +7,12 @@ [#]: publisher: " " [#]: url: " " -Write a chess game using bit-fields and masks +使用位字段和掩码写一个国际象棋游戏 ====== -Using bit-fields and masks is a common method to combine data without -using structures. +使用位字段和掩码是不用数据结构组合数据的常用方法。 ![Chess pieces on a chess board][1] -Let's say you were writing a chess game in C. One way to track the pieces on the board is by defining a structure that defines each possible piece on the board, and its color, so every square contains an element from that structure. For example, you might have a structure that looks like this: +假设你在用 C 语言写一个国际象棋游戏。追踪棋盘上棋子的一种方法是定义一个结构,该结构定义了棋盘上每个可能的棋子及其颜色,因此每个格子都包含该结构中的一个元素。例如,你可以将结构定义成下面这样: ``` @@ -23,53 +22,54 @@ struct chess_pc { } ``` -With this programming structure, your program will know what piece is in every square and its color. You can quickly identify if the piece is a pawn, rook, knight, bishop, queen, or king—and if the piece is black or white. But there's a more straightforward way to track the same information while using less data and memory. Rather than storing a structure of two `int` values for every square on a chessboard, we can store a single `int` value and use binary _bit-fields_ and _masks_ to identify the pieces and color in each square. +有了这个数据结构,你的程序就会知道每个格子里是什么棋子及棋子的颜色。你可以快速识别出棋子是兵、车、马、象、后还是王,以及棋子是黑还是白。但是,有一种更直接的方法来跟踪这些信息,同时只用更少的数据和内存。与为棋盘上的每个方格存储两个 `int` 值的结构不同,我们可以存储单个 `int` 值,并使用二进制位字段和掩码来标识每个方格中的棋子和颜色。 -### Bits and binary -When using bit-fields to represent data, it helps to think like a computer. Let's start by listing the possible chess pieces and assigning a number to each. I'll help us along to the next step by representing the number in its binary form, the way the computer would track it. Remember that binary numbers are made up of _bits_, which are either zero or one. +### 比特和二进制 - * `00000000:` empty (0) - * `00000001:` pawn (1) - * `00000010:` rook (2) - * `00000011:` knight (3) - * `00000100:` bishop (4) - * `00000101:` queen (5) - * `00000110:` king (6) +当使用位字段表示数据时,我们最好像计算机一样思考。让我们从列出可能的棋子开始,并为每个棋子分配一个数字。我将帮助我们进入下一个步骤,用二进制表示这个数字,也就是按照计算机追踪它的方式。记住,二进制数是由比特组成的,比特要么是 0,要么是 1。 + + * `00000000:` 空 (0) + * `00000001:` 兵 (1) + * `00000010:` 车 (2) + * `00000011:` 马 (3) + * `00000100:` 象 (4) + * `00000101:` 后 (5) + * `00000110:` 王 (6) -To list all pieces on a chessboard, we only need the three bits that represent (from right to left) the values 1, 2, and 4. For example, the number 6 is binary `110`. All of the other bits in the binary representation of 6 are zeroes. +要列出一个棋盘上的所有棋子,我们只需要三个比特从右到左依次代表值 1、2 和 4。例如,数字 6 是二进制的 110。6 的二进制表示中的其他所有位都是 0。 -And with a bit of cleverness, we can use one of those extra always-zero bits to track if a piece is black or white. We can use the number 8 (binary `00001000`) to indicate if a piece is black. If this bit is 1, it's black; if it's 0, it's white. That's called a _bit-field_, which we can pull out later using a binary _mask_. +一个聪明一点的方法:我们可以使用那些额外的总为零的比特来跟踪一个棋子是黑还是白。我们可以使用数字 8(二进制 `00001000`)来表示棋子是否为黑色。如果这一位是 1,则代表该棋子是黑色;如果是 0,则代表该棋子是白色。这被称为**位字段**,稍后我们可以使用二进制**掩码**将其取出。 -### Storing data with bit-fields +### 用位字段存储数据 -To write a chess program using bit-fields and masks, we might start with these definitions: +要编写一个使用位字段和掩码的国际象棋程序,我们可以从以下定义开始: ``` -/* game pieces */ +/* 棋子 */ -#define EMPTY 0 -#define PAWN 1 -#define ROOK 2 -#define KNIGHT 3 -#define BISHOP 4 -#define QUEEN 5 -#define KING 6 +#define EMPTY 0 // 空 +#define PAWN 1 // 兵 +#define ROOK 2 // 车 +#define KNIGHT 3 // 马 +#define BISHOP 4 // 象 +#define QUEEN 5 // 后 +#define KING 6 // 王 -/* piece color (bit-field) */ +/* 棋色 */ -#define BLACK 8 -#define WHITE 0 +#define BLACK 8 // 黑 +#define WHITE 0 // 白 -/* piece only (mask) */ +/* 掩码 */ #define PIECE 7 ``` -When you assign a value to a square, such as when initializing the chessboard, you can assign a single `int` value to track both the piece and its color. For example, to store a black rook in position 0,0 of an array, you would use this code: +当你为一个棋格赋值时,比如初始化棋盘,你可以赋一个 `int` 类型的值来跟踪棋子及其颜色。例如,要在棋盘的 0,0 位置存储棋子黑车,你可以使用下面的代码: ``` @@ -79,8 +79,7 @@ When you assign a value to a square, such as when initializing the chessboard, y   board[0][0] = BLACK | ROOK; ``` - -The `|` is a binary OR, which means the computer will combine the bits from two numbers. For every bit position, if that bit from _either_ number is 1, the result for that bit position is also 1. Binary OR of the value `BLACK` (8, or binary `00001000`) and the value `ROOK` (2, or binary `00000010`) is binary `00001010`, or 10: +`|` 是二进制或符号,这意味着计算机将合并两个数字的比特。对于每个比特的位置,如果**任意一个**数字的比特为 1,该位置比特的结果也是 1。`BLACK` 的值(8,即二进制下的 `00001000`)和 `ROOK` 的值(2,即二进制下的 `00000010`)的二进制或结果是二进制下的 `00001010`,即 10: ``` @@ -90,14 +89,13 @@ The `|` is a binary OR, which means the computer will combine the bits from two     00001010 = 10 ``` -Similarly, to store a white pawn in position 6,0 of the array, you could use this: +类似地,要在棋盘的 6,0 位置存储一个白色兵,你可以这样做: ``` -`  board[6][0] = WHITE | PAWN;` +  board[6][0] = WHITE | PAWN; ``` - -This stores the value 1 because the binary OR of `WHITE` (0) and `PAWN` (1) is just 1: +这样存储的值就是 `WHITE` (0) 和 `PAWN` (1) 的二进制或的结果,也即是 1。 ``` @@ -107,11 +105,11 @@ This stores the value 1 because the binary OR of `WHITE` (0) and `PAWN` (1) is j     00000001 = 1 ``` -### Getting data out with masks +### 用掩码获取数据 -During the chess game, the program will need to know what piece is in a square and its color. We can separate the piece using a binary mask. +在下棋过程中,程序需要知道棋格中的棋子和它的颜色。我们可以使用二进制掩码来分离这部分。 -For example, the program might need to know the contents of a specific square on the board during the chess game, such as the array element at `board[5][3]`. What piece is there, and is it black or white? To identify the chess piece, combine the element's value with the `PIECE` mask using the binary AND: +举个例子,程序可能需要知道棋局中棋盘上特定棋格的内容,例如位于 `board[5][3]` 的数组元素。这个是什么棋子,是黑的还是白的?为了识别棋子,使用二进制和 (AND) 将元素的值与掩码 `PIECE` 结合起来: ``` @@ -120,10 +118,9 @@ For example, the program might need to know the contents of a specific square on .. -  piece = board[5][3] & PIECE; +  piece = board[5][3] & PIECE; ``` - -The binary AND operator (`&`) combines two binary values so that for any bit position, if that bit in _both_ numbers is 1, then the result is also 1. For example, if the value of `board[5][3]` is 11 (binary `00001011`), then the binary AND of 11 and the mask PIECE (7, or binary `00000111`) is binary `00000011`, or 3. This is a knight, which also has the value 3. +二进制与 (AND) 操作符 (`&`) 将两个二进制值结合,这样对于任意位,如果两个数字中的那个位**都是** 1,那么结果也是 1。例如,如果 `board[5][3]` 的值是 11(二进制下的 `00001011`),那么 11 和 掩码 `PIECE`(7,二进制下的 `00000111`)二进制与的结果为二进制下的 `00000011`,也即 3。这代表马,马的值是 3。 ``` @@ -132,8 +129,7 @@ AND 00000111 = 7     ________     00000011 = 3 ``` - -Separating the piece's color is a simple matter of using binary AND with the value and the `BLACK` bit-field. For example, you might write this as a function called `is_black` to determine if a piece is either black or white: +解析棋子的颜色是一个简单的事情,只需要将棋子的值与 `BLACK` 位字段进行二进制与操作。比如,你可以写一个名为 `is_black` 的函数来确定棋子是黑还是白: ``` @@ -143,12 +139,10 @@ is_black(int piece)   return (piece & BLACK); } ``` +这样之所以有效,是因为 `BLACK` 的值为 8(二进制下的 `00001000`)。在 C 语言中,任何非零值都被视为 True,零总是 False。所以如果 `5,3` 处的棋子是黑色的,则 `is_black(board[5][3])` 返回 True 值 (8);如果是白色的,则返回 False 值 (0)。 -This works because the value `BLACK` is 8, or binary `00001000`. And in the C programming language, any non-zero value is treated as True, and zero is always False. So `is_black(board[5][3])` will return a True value (8) if the piece in array element `5,3` is black and will return a False value (0) if it is white. - -### Bit fields - -Using bit-fields and masks is a common method to combine data without using structures. They are worth adding to your programmer's "tool kit." While data structures are a valuable tool for ordered programming where you need to track related data, using separate elements to track single On or Off values (such as the colors of chess pieces) is less efficient. In these cases, consider using bit-fields and masks to combine your data more efficiently. +### 位字段 +使用位字段和掩码是不使用结构组合数据的常用方法。它们值得被程序员收藏到“工具包”中。虽然数据结构对于需要跟踪相关数据的有序编程是一种有价值的工具,但是使用单独的元素来跟踪单个的 On 或 Off 值(例如棋子的颜色)的效率较低。在这些情况下,可以考虑使用位字段和掩码来更高效地组合数据。 -------------------------------------------------------------------------------- From 1f9ef854f5874d069d73d3d8ca774f8fba43fc37 Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Sat, 6 Aug 2022 22:32:27 +0800 Subject: [PATCH 0657/3123] move --- .../20210823 Write a chess game using bit-fields and masks.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210823 Write a chess game using bit-fields and masks.md (100%) diff --git a/sources/tech/20210823 Write a chess game using bit-fields and masks.md b/translated/tech/20210823 Write a chess game using bit-fields and masks.md similarity index 100% rename from sources/tech/20210823 Write a chess game using bit-fields and masks.md rename to translated/tech/20210823 Write a chess game using bit-fields and masks.md From 2df8ff0f4cbe3f8647a6f0f555e8bde8fe2280fd Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Sat, 6 Aug 2022 14:51:51 -0500 Subject: [PATCH 0658/3123] Translating. --- ...0805 Delete the local reference to a remote branch in Git.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220805 Delete the local reference to a remote branch in Git.md b/sources/tech/20220805 Delete the local reference to a remote branch in Git.md index 8a6b8cae4d..97761d700d 100644 --- a/sources/tech/20220805 Delete the local reference to a remote branch in Git.md +++ b/sources/tech/20220805 Delete the local reference to a remote branch in Git.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git" [#]: author: "Agil Antony https://opensource.com/users/agantony" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MCGA" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5dad1b86a9cddcb77c161c516f54f143a31864e6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 7 Aug 2022 11:00:56 +0800 Subject: [PATCH 0659/3123] RP @geekpi https://linux.cn/article-14904-1.html --- ... Up Snap Versions to Free Up Disk Space.md | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) rename {translated/tech => published}/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md (63%) diff --git a/translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md similarity index 63% rename from translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md rename to published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md index 14c4dca432..22831f875e 100644 --- a/translated/tech/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md +++ b/published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md @@ -3,25 +3,28 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14904-1.html" -如何清理 Snap 版本以释放磁盘空间 +如何清理 Snap 保留的旧软件包以释放磁盘空间 ====== -这个带有脚本的快速指南有助于清理旧的 snap 版本并释放 Ubuntu 系统中的一些磁盘空间。 + +![](https://img.linux.net.cn/data/attachment/album/202208/07/105824nyac4m66a6886x6q.jpg) + +> 这个带有脚本的快速指南有助于清理旧的 Snap 软件包,并释放 Ubuntu 系统中的一些磁盘空间。 我的 Ubuntu 测试系统中出现磁盘空间不足。因此,我通过 GNOME 的磁盘使用分析器进行调查,以找出哪个软件包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录,令我惊讶的是,我发现 Snap 和 Flatpak 消耗了大量的存储空间。 ![Snap size – before cleanup][1] -尽管如此,我始终坚持一个规则:除非必要,否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢原生 deb 和 rpm 包。多年来,我在这个测试系统中安装和移除了一定数量的 Snap 包。 +我始终坚持一个规则:除非必要,否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装大小和一些其他问题。我更喜欢原生 deb 和 rpm 包。多年来,我在这个测试系统中安装和移除了一些 Snap 包。 -卸载后出现问题。Snap 在系统中保留了一些残留文件,一般用户不知道。 +问题出现在卸载后。Snap 在系统中保留了一些残留文件,而一般用户不知道。 -所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`,发现 Snap 正在跟踪以前安装/卸载的软件包的旧版本。 +所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`,发现 Snap 会保留以前安装/卸载的软件包的旧版本。 -例如,在下图中,你可以看到 GNOME 3.28、3.34 和 Wine 这些都被删除了。但他们还在那里。这是因为 Snap 设计在正确卸载后保留已卸载软件包的版本。 +例如,在下图中,你可以看到 GNOME 3.28、3.34 和 Wine 这些都被删除了。但它们还在那里。这是因为 Snap 设计上在正确卸载后保留已卸载软件包的版本。 ![Files under snaps directory][2] @@ -33,11 +36,11 @@ snap list --all ![snap list all][3] -对于保留的多个版本,默认值为 3。这意味着 Snap 会保留每个软件包的 3 个旧版本,包括活动版本。如果你对磁盘空间没有限制,这是可以的。 +对于保留的版本数量,默认值为 3。这意味着 Snap 会保留每个软件包的 3 个旧版本,包括当前安装版本。如果你对磁盘空间没有限制,这是可以的。 但是对于服务器和其他场景,这很容易遇到成本问题,消耗你的磁盘空间。 -但是,你可以使用以下命令轻松修改计数。该值可以在 2 到 20 之间。 +不过,你可以使用以下命令轻松修改计数。该值可以在 2 到 20 之间。 ``` sudo snap set system refresh.retain=2 @@ -45,7 +48,7 @@ sudo snap set system refresh.retain=2 ### 清理 Snap 版本 -在 SuperUser 的一篇文章中,Canonical 的前工程经理 Popey [提供了一个简单的脚本][4]可以清理旧的 Snap 版本并保留最新版本。 +在 SuperUser 的一篇文章中,Canonical 的前工程经理 Popey [提供了一个简单的脚本][4] 可以清理旧的 Snap 版本并保留最新版本。 这是我们将用来清理 Snap 的脚本。 @@ -74,13 +77,13 @@ chmod +x clean_snap.sh ### 结束语 -关于 Snap 的设计效率如何,人们总是争论不休。许多人说,它的设计是坏的,是臃肿的,且消耗系统资源。该论点的某些部分是正确的,我不会否认。如果正确实施和增强,沙盒应用的整个概念就很棒。我相信,与 Snap 相比,Flatpak 做得更好。 +关于 Snap 的设计效率如何,人们总是争论不休。许多人说,它的设计是糟糕的,是臃肿的,且消耗系统资源。该论点的某些部分是正确的,我不会否认。如果正确实施和增强,沙盒应用的整个概念就很棒。我相信,与 Snap 相比,Flatpak 做得更好。 -也就是说,我希望这可以帮助你清理一些磁盘空间。尽管它在 Ubuntu 中进行了测试,但它应该适用于所有支持 Snap 的 Linux 发行版。 +也就是说,我希望这可以帮助你清理一些磁盘空间。尽管它只在 Ubuntu 中进行了测试,但它应该适用于所有支持 Snap 的 Linux 发行版。 -此外,请查看我们关于[如何清理 Ubuntu][7] 的指南以及其他步骤。 +此外,请查看我们关于 [如何清理 Ubuntu][7] 的指南以及其他步骤。 -最后,如果你正在寻找清理 **Flatpak** 应用,请参阅[这个指南][8]。 +最后,如果你正在寻找清理 **Flatpak** 应用,请参阅 [这个指南][8]。 -------------------------------------------------------------------------------- From ae0b3468d17f9fe5cb7d4743e6b793167fe60e3b Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Sun, 7 Aug 2022 11:28:28 +0800 Subject: [PATCH 0660/3123] fix translated article --- .../20210823 Write a chess game using bit-fields and masks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20210823 Write a chess game using bit-fields and masks.md b/translated/tech/20210823 Write a chess game using bit-fields and masks.md index 4705bd475a..93acc16746 100644 --- a/translated/tech/20210823 Write a chess game using bit-fields and masks.md +++ b/translated/tech/20210823 Write a chess game using bit-fields and masks.md @@ -136,7 +136,7 @@ AND 00000111 = 7 int is_black(int piece) { -  return (piece & BLACK); +  return (piece & BLACK); } ``` 这样之所以有效,是因为 `BLACK` 的值为 8(二进制下的 `00001000`)。在 C 语言中,任何非零值都被视为 True,零总是 False。所以如果 `5,3` 处的棋子是黑色的,则 `is_black(board[5][3])` 返回 True 值 (8);如果是白色的,则返回 False 值 (0)。 From 06dd63be9b82f73c240fbd88560fa926fcdf4132 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 7 Aug 2022 11:49:25 +0800 Subject: [PATCH 0661/3123] RP @yjacks https://linux.cn/article-14905-1.html --- ...project that opens the internet for all.md | 59 ++++++++++++++++++ ...project that opens the internet for all.md | 60 ------------------- 2 files changed, 59 insertions(+), 60 deletions(-) create mode 100644 published/20220626 An open source project that opens the internet for all.md delete mode 100644 translated/tech/20220626 An open source project that opens the internet for all.md diff --git a/published/20220626 An open source project that opens the internet for all.md b/published/20220626 An open source project that opens the internet for all.md new file mode 100644 index 0000000000..f63538723f --- /dev/null +++ b/published/20220626 An open source project that opens the internet for all.md @@ -0,0 +1,59 @@ +[#]: subject: "An open source project that opens the internet for all" +[#]: via: "https://opensource.com/article/22/6/equalify-open-internet-accessibility" +[#]: author: "Blake Bertuccelli https://opensource.com/users/blake" +[#]: collector: "lkxed" +[#]: translator: "yjacks" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14905-1.html" + +Equalify:让每一个人都可以无障碍访问互联网 +====== + +> Equalify 是一个为了让互联网更易于使用的开源项目。 + +![](https://img.linux.net.cn/data/attachment/album/202208/07/114828xkk55krbsprkx7kk.jpg) + +无障碍访问Accessibility 是一把促进社会更加开放的的钥匙。 + +我们在网上学习,我们在网上花钱,也在网上吵吵嚷嚷。更重要的是,我们在网上获取的信息激励我们创造一个更好的世界。当我们忽视无障碍访问的要求时,出生时失去光明,或在战争中失去四肢的人们都将只能被阻挡在他人可以享受的网上信息之外。 + +*我们必须确保每个人都有通往开放互联网的通道*,而我正在通过开发 [Equalify][2],为实现这一目标而努力。 + +### 什么是 Equalify? + +Equalify 是“无障碍访问平台”。 + +这个平台允许使用者们对数以千计的网站进行多种无障碍访问的扫描。通过使用我们的最新版本,用户还可以过滤无数的警告,创建一个对他们来说有意义的统计仪表盘。 + +这个项目才刚刚开始。Equalify 的目的是开源像 SiteImprove 这样的昂贵服务所提供的各种收费服务。有了更好的工具,我们可以确保互联网更容易访问、我们的社会更开放。 + +### 如何判断网站的无障碍访问? + +W3C 的网络无障碍访问组织发布了《网络内容无障碍访问指南(WCAG)》,为无障碍访问设定了标准。Equalify 和包括美国联邦政府在内的其它机构,都使用 WCAG 来定义网站的无障碍访问。我们扫描的的网站越多,我们就越能了解 WCAG 标准的不足和潜力。 + +### 如何使用 Equalify? + +花点时间查看一下我们的 GitHub,这样你能更多的了解这个产品。[README][3] 提供了如何开始支持和使用 Equalify 的分步教程。 + +### 我们的目标 + +我们的最终目标是让开放的互联网更易于使用。根据 [The WebAIM Million][4] 的数据,96.8% 的网站主页不满足 WCAG 标准。随着越来越多的人们开发和使用 Equalify,我们将与有障碍的页面斗争。每个人都应该有平等的机会进入开放的互联网。在我们朝着为所有人建设一个更强大、更开放的社会而努力时,Equalify 也正在朝着这个目标努力。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/equalify-open-internet-accessibility + +作者:[Blake Bertuccelli][a] +选题:[lkxed][b] +译者:[yjacks](https://github.com/yjacks) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/blake +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-06/plumeria-frangipani-bernard-spragg.jpg +[2]: https://equalify.app/ +[3]: https://github.com/bbertucc/equalify +[4]: https://webaim.org/projects/million/ diff --git a/translated/tech/20220626 An open source project that opens the internet for all.md b/translated/tech/20220626 An open source project that opens the internet for all.md deleted file mode 100644 index 8ff0aad2ab..0000000000 --- a/translated/tech/20220626 An open source project that opens the internet for all.md +++ /dev/null @@ -1,60 +0,0 @@ -[#]: subject: "An open source project that opens the internet for all" -[#]: via: "https://opensource.com/article/22/6/equalify-open-internet-accessibility" -[#]: author: "Blake Bertuccelli https://opensource.com/users/blake" -[#]: collector: "lkxed" -[#]: translator: "yjacks" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -一个为了使因特网向所有人开放的开源项目 -====== -Equalify 是一个为了让因特网更加无障碍的开源项目。 - -![Plumeria by Bernard Spragg][1] - -Image by: "Plumeria (Frangipani)" by Bernard Spragg is marked with CC0 1.0. - -易于使用的因特网是一把促进社会更加开放的的钥匙。 - -我们在线学习。我们在线记录。政治运动都在线上胜利或失败。信息是一个向更好地世界的在线通道,这是最为重要的关键之处。当我们放弃无障碍要求时,出生时失去光明,或在战争中失去四肢的人们都将只能被阻挡在他人可以享受的在线信息外。 - -*我们必须确保每个人都有到开放互联网的通道*,所以我在做我那份的工作,通过开发[Equalify][2],来达到那个目标。 - -### 什么是 Equalify? - -Equalify 是“更无障碍的平台” - -这个平台允许使用者们在数以千计的网页上运行大量的无障碍操作。通过用最新的版本,用户还可以过滤无数的警告,创建一个对他们来说有意义的统计仪表盘。 - -这个项目方兴未艾。Equalify 的目的是开源所有的收费服务的高级特性,例如 SiteImprove 提供的,以及更好地工具,让我们可以保证因特网更加的无障碍、我们的社会更加开放。 - -### 我们如何判断网页是否无障碍化? - -W3C 的网页设计无障碍化指南(WCAG)设定了无障碍标准。Equalify 和其它的组织,包括合众国政府US Federal Government,使用 WCAG 来定义望远的无障碍化。我们审视的的网站越多,我们就越能理解WCAG标准的缺点和潜力。 - -### 我如何使用 Equalify? - -花点时间看我们的 Github,这样你能更多的了解这个产品。[README][3] 提供了分步教程,它关于如何开始维护和使用 Equalify。 - -### 我们的目标 - -我们的最终目标是让开放互联网更加无障碍化。96.8% 的主页面不满足 WCAG 标准,通过[The WebAIM Million][4]。更多的人们开发和使用 Equalify,我们与有障碍的页面斗争。万物都因在开放因特网被平等对待。Equalify 正在朝着这个目标努力,我们正在朝着为所有人建设一个更强大、更开放的社会而努力。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/equalify-open-internet-accessibility - -作者:[Blake Bertuccelli][a] -选题:[lkxed][b] -译者:[yjacks](https://github.com/yjacks) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/blake -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/2022-06/plumeria-frangipani-bernard-spragg.jpg -[2]: https://equalify.app/ -[3]: https://github.com/bbertucc/equalify -[4]: https://webaim.org/projects/million/ From 21e882c788803102dd868fdeebd5dc5368cf4de3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 7 Aug 2022 12:25:51 +0800 Subject: [PATCH 0662/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220806=20Fixing=20Could=20not=20get=20lock=20-var-?= =?UTF-8?q?lib-dpkg-lock=20Error=20in=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lock -var-lib-dpkg-lock Error in Ubuntu.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/tech/20220806 Fixing Could not get lock -var-lib-dpkg-lock Error in Ubuntu.md diff --git a/sources/tech/20220806 Fixing Could not get lock -var-lib-dpkg-lock Error in Ubuntu.md b/sources/tech/20220806 Fixing Could not get lock -var-lib-dpkg-lock Error in Ubuntu.md new file mode 100644 index 0000000000..a78da5dde7 --- /dev/null +++ b/sources/tech/20220806 Fixing Could not get lock -var-lib-dpkg-lock Error in Ubuntu.md @@ -0,0 +1,131 @@ +[#]: subject: "Fixing Could not get lock /var/lib/dpkg/lock Error in Ubuntu" +[#]: via: "https://www.debugpoint.com/could-not-get-lock/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fixing Could not get lock /var/lib/dpkg/lock Error in Ubuntu +====== +We explain some steps and methods by which you can quickly fix the Could not get lock /var/lib/dpkg/lock error, which is common in Ubuntu Linux. + +![][0] + +### The Backstory + +It happens more than you can imagine. One fine morning you boot up your shiny Ubuntu Linux and try to install something or upgrade your system. And you run into this error – `"Could not get lock /var/lib/dpkg/lock ....".` + +Reason? The reason is simple and happens with the “[Advanced Package Tool (apt)][1]“. The apt package tool is busy doing other operations while you asked it to do something. When apt does some package operation, it creates a lock file to prevent this scenario. As per OS principle, a critical resource should be locked while performing system upgrades/updates so that no other process can access it. This is to prevent any unwanted system behaviour. + +There are several variations of this error. But the root cause is the same what I described above. + +Here are some of the errors. + +### Some Sample Errors + +``` +E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? +``` + +``` +Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 10162 (unattended-upgr) +``` + +``` +E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)E: Unable to lock directory /var/lib/apt/lists/ +``` + +![Sample Could Not Get Lock Error][2] + +### How to Fix: Could not get lock Error + +#### Method 1 (recommended) + +The safest and recommended way to fix this is to wait. Since the apt is running in the background, it’s better you wait for a few minutes. And then, you can try to perform the operation. Most of the time, it resolves the issue by letting the system take care of it. + +#### Method 2 + +The second method is to remove the lock file manually. This requires admin privileges. Open a terminal prompt and run the following command to clear the lock. + +After you run the command, try to perform the operation which caused the error. And you should be fine. + +``` +sudo rm -f /var/lib/dpkg/lock +``` + +#### Method 3 + +The third method is to manually find the process ID of apt, holding the lock and terminate it. + +You can filter all the processes which have apt using the command below. + +``` +ps aux | grep apt +``` + +![process id and process list for apt][3] + +Once you do that, you can get the process ID (2nd column in the above image) and kill it using the following sample command. + +``` +kill -9 processnumber +``` + +#### Method 4 + +The fourth method is to disable the daily auto update check timer [systemd][4] service to try your operation. To do that, open a terminal and disable the service using the following command. + +``` +sudo systemctl stop apt-daily.timer +``` + +Now, reboot the system and try your operation. If you are all set and the error is gone, you can enable the timer service again using the following command. And you should be all set. + +``` +sudo systemctl start apt-daily.timer +``` + +#### Method 5 + +The final method is specific to additional errors which come with apt lock file. + +If the error contains a line like – “E: Unable to lock directory /var/lib/apt/lists/”, then try the following command. + +``` +sudo rm /var/lib/apt/lists/* -vf +``` + +Finally, if nothing works, try cleaning the apt archive lock using the following command. + +``` +sudo rm -f /var/cache/apt/archives/lock +``` + +So, that’s all. + +### Wrapping Up + +In this article, I have explained various ways to resolve this typical error in Ubuntu Linux and related distributions. I am sure any one of the methods should work for you. + +Do let me know in the comment box which command worked out for you for the benefit of others. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/could-not-get-lock/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/could-not-head.jpg +[1]: https://wiki.debian.org/Apt +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Sample-Could-Not-Get-Lock-Error-1024x547.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2018/07/ps-aux.png +[4]: https://www.debugpoint.com/tag/systemd/ From 86a92f297e3919c177c72f4232a8afbbb4a3a31f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 7 Aug 2022 15:05:22 +0800 Subject: [PATCH 0663/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A7=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to Introduce Redesigned Quick Settings.md | 109 ------------------ ... Version Upgrade With Initial Rust Code.md | 80 ------------- ...eleting Inactive Projects by Free Users.md | 92 --------------- 3 files changed, 281 deletions(-) delete mode 100644 sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md delete mode 100644 sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md delete mode 100644 sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md diff --git a/sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md b/sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md deleted file mode 100644 index 5756f556d7..0000000000 --- a/sources/news/20220803 GNOME 43 Plans to Introduce Redesigned Quick Settings.md +++ /dev/null @@ -1,109 +0,0 @@ -[#]: subject: "GNOME 43 Plans to Introduce Redesigned Quick Settings" -[#]: via: "https://www.debugpoint.com/gnome-43-quick-settings/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GNOME 43 Plans to Introduce Redesigned Quick Settings -====== -The upcoming GNOME 43 release changes the system tray menu completely. Here’s how it looks. - -![][0] - -Among all the attractive changes coming to GNOME 43, the redesigned quick settings menu is the most visible revamp. The quick settings or system tray menu remained the same for a long time. There were minor tweaks, such as earlier consolidation of menu items. But we never got to experience a complete overhaul before. - -![Complex Quick Settings View – GNOME 43][1] - -### GNOME 43 Quick Settings - -So, GNOME 43 quick settings look, menu items are changing to look below. - -![GNOME 43 quick settings – side-by-side basic view][2] - -Firstly, the individual menu items are now more visible with “pill-shaped” buttons. These buttons perform dual functions when applied. You click on them to enable/disable the function (i.e. quick toggles). Also, if you click on the small arrow, you get additional options. - -Secondly, the ‘pill-buttons’ appearance indicates whether the option is enabled or disabled by changing its colour. - -The submenu, which opens up after you bring up more settings for a function, can draw itself on top of the earlier menu items. This eliminates another additional click. - -Another interesting change which I feel is super helpful is the active indicator of privacy-related functions. For example, if an app currently uses your mic or you are having a screen-sharing session with your colleagues/friends, the quick settings give you additional colour identification to appraise you. - -In addition, the batter indicator is also coming up as more descriptive inside the quick settings menu with an icon and the available power capacity. - -### When the quick settings would be available? - -The merge request is currently open ([MR 2392][3]) as of publishing this page. - -What does that mean? - -It means that GNOME devs and contributors will test and review the changes in design and functionality. So, I guess in a few weeks, it might get merged. - -GNOME 43 release candidate and hard code freeze due a month from now, i.e. September 3rd, 2022. If all goes well, it should be available for you to test via GNOME nightly OS. - -Here are the mock-up images and sample videos (credit to the GNOME team) to treat your eyes which I organized in a single place. - -A caution note is that all these are still subject to change in the final release. - -* ![Quick toggles -2][3a] -* ![Quick toggles -1][3b] -* ![Complex Quick Settings View - GNOME 43][3c] -* ![GNOME 43 quick settings - side-by-side view][3d] - -![quick-toggles-4][4] - -![Quick toggles -2][5] - -![Quick toggles -1][6] - -![Complex Quick Settings View - GNOME 43][7] - -![GNOME 43 quick settings - side-by-side view][8] - -![][9] - -### Does it resemble anything? - -Do you remember when I [reviewed dahliaOS earlier][10] based on Google’s Fuchsia operating system? When I first saw these mock-ups, I remember they looked somewhat similar to dahliaOS’s tray menu. See below. Although it’s at the bottom and looks a little wider – you can see the resemblance. - -![System Tray of dahliaOS][11] - -Anywho. - -### Thoughts? - -If you ask me, I guess it’s refreshing and probably a long due. An overall nice and intuitive design requires no additional learning from the new users. Finally, GNOME 43 is shaping to be a powerful release after all. - -**Now you**: What do you think about this design change that impacts all the users? Let’s discuss in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-43-quick-settings/ - -作者:[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 -[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/gnome43-head-q.jpg -[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/Complex-Quick-Settings-View-GNOME-43.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/GNOME-43-quick-settings-side-by-side-view.jpg -[3]: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2392 -[3a]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-2-1600x950.jpg -[3b]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-1-1600x877.jpg -[3c]: https://www.debugpoint.com/wp-content/uploads/2022/08/Complex-Quick-Settings-View-GNOME-43.jpg -[3d]: https://www.debugpoint.com/wp-content/uploads/2022/08/GNOME-43-quick-settings-side-by-side-view-545x320.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/quick-toggles-4-1024x1024.png -[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-2-1024x608.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-toggles-1-1024x561.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Complex-Quick-Settings-View-GNOME-43-1024x576.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/GNOME-43-quick-settings-side-by-side-view.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/08/quicksettings-submenu.webm -[10]: https://www.debugpoint.com/dahlia-os-alpha/ -[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/System-Tray.jpg diff --git a/sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md b/sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md deleted file mode 100644 index 937e1491b9..0000000000 --- a/sources/news/20220803 Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" -[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal/" -[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code -====== -Linux Kernel’s next upgrade is going to be 6.0, instead of Linux 5.20. That’s what Linus Torvalds is going with. Sounds good! - -![linux kernel][1] - -You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][2]. - -But, the news wasn’t limited to one interesting observation. - -Linus Torvalds also mentioned at the end of the [release announcement][3] that he might call the next version upgrade of Linux Kernel as 6.0. - -### Linux Version Numbers Decoded: Why 6.0? - -So, why the change in version numbers for an upgrade? - -To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). - -If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: - -``` -uname -r -``` - -* The first number ‘5’ represents the major version -* The second number, ’18’ represents the series of minor updates. -* The third number, ’15,’ represents the patch version - -The Linux Kernel usually follows the [Semantic Versioning][4] (A versioning system used in open source software). - -However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. - -So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. - -Linus Torvalds mentioned the same for changing the version number in the mailing list: - -> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. - -### New Features Coming to Linux 6.0 - -If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: - -* Inclusion of Rust code (early phase) -* Real-time Kernel building support -* New Hardware support -* Usual Improvements to various Filesystems -* Scheduler changes - -Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. - -But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. - -*So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-6-0-reveal/ - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/08/linux-kernel-6-0.jpg -[2]: https://news.itsfoss.com/linux-kernel-5-19-release/ -[3]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ -[4]: https://semver.org/ diff --git a/sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md b/sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md deleted file mode 100644 index 973d1e66f8..0000000000 --- a/sources/news/20220804 GitLab Backtracks On Deleting Inactive Projects by Free Users.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: "GitLab Backtracks On Deleting Inactive Projects by Free Users" -[#]: via: "https://news.itsfoss.com/gitlab-inactive-projects-policy/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GitLab Backtracks On Deleting Inactive Projects by Free Users -====== -GitLab almost turned into a villain we never expected with this new policy change. What are your thoughts on it? - -![gitlab][1] - -Right after Microsoft acquired GitHub, many users migrated to GitLab and other [GitHub alternatives][2]. - -Considering many popular open-source projects can be found on GitLab, it has a good reputation with developers and project maintainers. - -**Update, Aug 5:** Originally reported by [The Register][3], GitLab planned to remove inactive projects by free user accounts. Now, GitLab seems to have [dropped the idea][4] after netizens expressed their concerns about it. - -> We discussed internally what to do with inactive repositories. \ -> We reached a decision to move unused repos to object storage. \ -> Once implemented, they will still be accessible but take a bit longer to access after a long period of inactivity. - -[@gitlab's tweet][5] - -### GitLab Will Move Inactive Repos to Object Storage - -GitLab shared a statement sharing that they will no longer delete inactive projects. Instead, they will move those projects to object storage, making them slower to access. - -GitLab’s Co-founder and CEO, **Sid Sijbrandij**, further clarified that those projects would remain visible to everyone. - -> Archived projects [https://t.co/4rOeJHNilh][6] is a user activated state that signals intent. We're not sure yet but very likely the storage type used is orthogonal to that. Our current plan for object storage [https://t.co/fLRl2TY744][7] would keep the repos visible to everyone. - -[@sytses's tweet][8] - -As per *The Register*, sources who requested anonymity revealed that a new policy was scheduled to come into force in September 2022, which would have resulted in removing several inactive projects on GitLab. - -This move would have helped GitLab save up to **$1 million** yearly in hosting costs. - -Now that they will no longer be deleting those projects, will they save hosting costs by moving projects to object storage? - -*The Register* mentions that there have been internal discussions about the possibility of moving unused repos to object storage, where GitLab’s cost of maintaining it may increase due to required redundant backups. - -**So, what changed in GitLab’s policy now?** Without official clarification by GitLab, we remain clueless. - -### More Decisions to Make - -GitLab hasn’t made any public statements regarding the entire situation. But, **GitLab’s CEO** mentioned the following when it comes to identifying inactive projects: - -> We’re not sure yet. Probably all write operations would keep a project active, creating an issue, a merge request, pushing changes to a branch, etc. We might also keep it active as long as people are doing read operations such as cloning, forking, etc. - -While we no longer have to worry about deleted projects, more clarity on this will be added to this in the coming days. - -### A Valid Excuse: Was it? - -GitLab deleting projects to save disk space was a big deal. - -The entire point of offering free services was to let users host code on their platform, whether the project remains active or not. One can agree that everyone should encourage projects to have some activity. But why should that be a requirement to host your code on a platform that promises free services? - -A developer can simply choose to make a simple tool/program and keep it at GitLab for anyone to find and fork it, with no aim to maintain/update it. Sometimes, the developer may no longer be available or have access to add activity to their projects. - -**For example**, we have plenty of GitHub projects that haven’t seen any activity for years, but people still rely on it, fork it, and use it. - -So, I’m sure you will come across several hundred projects that do not have any activity but are helpful or have a working fork. - -**I think** GitLab, as a company with a good reputation shouldn’t have even thought about such an idea, to begin with. - -*What do you think about GitLab’s original report on auto-deletion policy? Is object storage the perfect alternative for saving old repos? Kindly let me know your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gitlab-inactive-projects-policy/ - -作者:[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/08/gitlab-backdrop-warning.jpg -[2]: https://itsfoss.com/github-alternatives/ -[3]: https://www.theregister.com/2022/08/04/gitlab_data_retention_policy/ -[4]: https://www.theregister.com/2022/08/05/gitlab_reverses_deletion_policy/ -[5]: https://twitter.com/gitlab/status/1555325376687226883?ref_src=twsrc%5Etfw -[6]: https://docs.gitlab.com/ee/user/project/settings/ -[7]: https://gitlab.com/groups/gitlab-org/-/epics/4959 -[8]: https://twitter.com/sytses/status/1555344675761819648?ref_src=twsrc%5Etfw From 8a0a0b869e0abd016d062892876fadcbdec1e31f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 7 Aug 2022 15:18:35 +0800 Subject: [PATCH 0664/3123] ALL @wxy https://linux.cn/article-14906-1.html --- ...o Offers a Systemd-free Devuan Variant!.md | 74 +++++++++++++++++++ ...o Offers a Systemd-free Devuan Variant!.md | 73 ------------------ 2 files changed, 74 insertions(+), 73 deletions(-) create mode 100644 published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md delete mode 100644 sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md diff --git a/published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md b/published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md new file mode 100644 index 0000000000..15704a4724 --- /dev/null +++ b/published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md @@ -0,0 +1,74 @@ +[#]: subject: "Peppermint OS Now Also Offers a Systemd-free Devuan Variant!" +[#]: via: "https://news.itsfoss.com/peppermint-os-devuan/" +[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14906-1.html" + +Peppermint OS 现在也提供无 systemd 的 Devuan 变体了! +====== + +> 基于 Devuan 的 Peppermint OS 可能是无 systemd 发行版中一个令人振奋的新成员。听起来不错吧? + +![peppermint][1] + +作为 [最轻量级和最灵活的 Linux 发行版之一][2],Peppermint OS 现在提供一个基于 Devuan 的 ISO,可以让高级用户对他们的系统有更多的控制。 + +随着他们发布了 Peppermint OS 11,[他们放弃使用 Ubuntu][3] 作为基础,而使用 Debian,使 Peppermint OS 更加稳定和可靠。 + +### 基于 Devuan 的 Peppermint OS + +![Peppermint OS devuan][4] + +那么,首先 Devuan 是什么? + +Devuan 是 Debian 的一个分叉,没有 systemd,所以用户可以拥有移植性和选择的自由。 + +是否使用 systemd 经常发生争论,这就是为什么我们有一个 [无 systemd 的 Linux 发行版][5] 的列表,但只有少数几个可以提供开箱即用的精良体验。 + +现在,基于 Devuan 的 Peppermint OS 版本应该是这个列表中令人振奋的补充。 + +如果你想要一个无 systemd 的发行版,给你的操作系统更多的自由,这应该是一个不错的尝试。 + +别担心,Peppermint OS 的 Debian 版将会继续存在。所以,你可以期待基于 Devuan 和基于 Debian 的 ISO 都可以使用。 + +### 你需要无 systemd 发行版吗? + +systemd 是一个初始化系统。当你启动你的 Linux 机器时,初始化系统是最先启动的程序之一,并将一直运行到你使用电脑为止。 + +但 [systemd 不仅仅是一个初始系统][6],它还包含其他软件,如 logind、networkd 等,用于管理 Linux 系统的不同方面。 + +总的来说,它演变成了一个复杂的初始模块。虽然它使许多事情变得简单,但在一些用户看来,它是一个臃肿的解决方案。 + +因此,有用户开始喜欢 Devuan 这样的选项。而且,Peppermint OS 的开发者现在正试图通过使用 Devuan 作为另一个版本的基础,来改善桌面用户的体验。 + +### 下载基于 Devuan 的 Peppermint OS + +对于习惯于无 systemd 的用户来说,这是一个很好的选择。 + +但是,如果你从来没有尝试过无 systemd 的发行版,除非你知道自己在做什么,否则进行切换可能不是一个明智的主意。 + +> **[Peppermint OS (Devuan)][7]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/peppermint-os-devuan/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/08/peppermint-devuan.jpg +[2]: https://itsfoss.com/lightweight-linux-beginners/ +[3]: https://news.itsfoss.com/peppermint-11-release/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/08/Peppermint-OS-Devuan-edition.png +[5]: https://itsfoss.com/systemd-free-distros/#systemd-or-not +[6]: https://freedesktop.org/wiki/Software/systemd/ +[7]: https://peppermintos.com/2022/08/peppermint-os-releases-for-08-02-2022/ diff --git a/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md b/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md deleted file mode 100644 index 0cae6c07b8..0000000000 --- a/sources/news/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md +++ /dev/null @@ -1,73 +0,0 @@ -[#]: subject: "Peppermint OS Now Also Offers a Systemd-free Devuan Variant!" -[#]: via: "https://news.itsfoss.com/peppermint-os-devuan/" -[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Peppermint OS Now Also Offers a Systemd-free Devuan Variant! -====== -Peppermint OS based on Devuan could be an exciting new addition to systemd-free distros. Sounds good? - -![peppermint][1] - -Peppermint OS, one of the [most lightweight and flexible Linux distros][2], is now offering a Devuan-based ISO for advanced users to have more control over their system. - -With their release of Peppermint OS 11, [they dropped using Ubuntu][3] as the base for Debian to make Peppermint OS more stable and reliable. - -### Peppermint OS Based on Devuan - -![Peppermint OS devuan][4] - -So, what is Devuan in the first place? - -Devuan is a fork of Debian without systemd, so users can have portability and freedom of choice. - -Running a computer with systemd is often debated, which is why we have a list of [Systemd-free Linux distros][5], but only a few of them can provide a polished experience out of the box. - -Now, a Devuan-based edition of Peppermint OS should be an exciting addition to the list. - -If you want a systemd-free distribution, giving you more freedom on your operating system, this should be a good one to try. - -Fret not, the Debian edition of Peppermint OS is here to stay. So, you can expect both Devuan-based and Debian-based ISOs available for use. - -### Do You Need More Systemd-free Options? - -Systemd is an init system (an initialization system). Init system is one of the first programs that start, when you boot your Linux machine, and will run until you’re working with your computer. - -But [systemd is more than just an init system][6] and contains other software such as logind, networkd, etc., which is used to manage different aspects of the Linux system. - -Overall, it evolved into a complex init module. While it made many things easy, it appeared as a bloated solution to some users. - -Hence, users started to like options like Devuan. And, Peppermint OS devs are now trying to improvise the experience with Devuan by using it as a base for another edition for desktop users. - -### Download Devuan-based Peppermint OS - -It is an excellent choice for users who are used to systemd-free system. - -But, if you have never tried something without systemd, it may not be a wise idea to make a switch unless you know what you’re doing. - -[Peppermint OS (Devuan)][7] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/peppermint-os-devuan/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/08/peppermint-devuan.jpg -[2]: https://itsfoss.com/lightweight-linux-beginners/ -[3]: https://news.itsfoss.com/peppermint-11-release/ -[4]: https://news.itsfoss.com/wp-content/uploads/2022/08/Peppermint-OS-Devuan-edition.png -[5]: https://itsfoss.com/systemd-free-distros/#systemd-or-not -[6]: https://freedesktop.org/wiki/Software/systemd/ -[7]: https://peppermintos.com/2022/08/peppermint-os-releases-for-08-02-2022/ From 8b4314008066a73d2458d9b5238404bfac547012 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 7 Aug 2022 16:00:14 +0800 Subject: [PATCH 0665/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220807=20Why=20we=20chose=20the=20Clojure=20progra?= =?UTF-8?q?mming=20language=20for=20Penpot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Clojure programming language for Penpot.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20220807 Why we chose the Clojure programming language for Penpot.md diff --git a/sources/tech/20220807 Why we chose the Clojure programming language for Penpot.md b/sources/tech/20220807 Why we chose the Clojure programming language for Penpot.md new file mode 100644 index 0000000000..118fdcf967 --- /dev/null +++ b/sources/tech/20220807 Why we chose the Clojure programming language for Penpot.md @@ -0,0 +1,152 @@ +[#]: subject: "Why we chose the Clojure programming language for Penpot" +[#]: via: "https://opensource.com/article/22/7/why-we-chose-clojure-penpot" +[#]: author: "Andrey Antukh https://opensource.com/users/niwinz" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why we chose the Clojure programming language for Penpot +====== +Though it is not a mainstream language, Clojure was the right language for Penpot to choose because of its key features: stability, backwards compatibility, and syntactic abstraction. + +![Person using a laptop][1] + +"Why Clojure?" is probably the question we've been asked the most at Penpot. We have a vague explanation on our FAQ page, so with this article, I'll explain the motivations and spirit behind our decision. + +It all started in a *PIWEEK*. Of course! + +During one of our [Personal Innovation Weeks (PIWEEK)][2] in 2015, a small team had the idea to create an open source prototyping tool. They started work immediately, and were able to release a working prototype after a week of hard work (and lots of fun). This was the first static prototype, without a backend. + +I was not part of the initial team, but there were many reasons to choose [ClojureScript][3] back then. Building a prototype in just a one-week hackathon isn't easy and ClojureScript certainly helped with that, but I think the most important reason it was chosen was because it's fun. It offered a functional paradigm (in the team, there was a lot of interest in functional languages). + +It also provided a fully interactive development environment. I’m not referring to post-compilation browser auto-refresh. I mean refreshing the code *at runtime* without doing a page refresh and without losing state! Technically, you could be developing a game, and change the behavior of the game while you are still playing it, just by touching a few lines in your editor. With ClojureScript (and Clojure) you don't need anything fancy. The language constructs are already designed with hot reload in mind from the ground up. + +![Image of the first version of UXBOX (Penpot's original concept) in 2016][4] + +I know, today (in 2022), you can also have something similar with React on plain JavaScript, and probably with other frameworks that I’m not familiar with. Then again, it's also probable that this capability support is limited and fragile, because of intrinsic limitations in the language, sealed modules, the lack of a proper REPL. + +### About REPL + +In other dynamic languages, like JavaScript, Python, [Groovy][5] (and so on), REPL features are added as an afterthought. As a result, they often have issues with hot reloading. The language patterns are fine in real code, but they aren't suitable in the REPL (for example, a `const` in JavaScript evaluates the same code twice in a REPL). + +These REPLs are usually used to test code snippets made for the REPL. In contrast, REPL usage in Clojure rarely involves typing or copying into the REPL directly, and it is much more common to evaluate small code snippets from the actual source files. These are frequently left in the code base as comment blocks, so you can use the snippets in the REPL again when you change the code in the future. + +In the Clojure REPL, you can develop an entire application without any limitations. The Clojure REPL doesn't behave differently from the compiler itself. You're able to do all kinds of runtime introspection and hot replacement of specific functions in any namespace in an already running application. In fact, it's not uncommon to find backend applications in a production environment exposing REPL on a local socket to be able to inspect the runtime and, when necessary, patch specific functions without even having to restart the service. + +### From prototype to the usable application + +After PIWEEK in 2015, Juan de la Cruz (a designer at Penpot, and the original author of the project idea) and I started working on the project in our spare time. We rewrote the entire project using all the lessons learned from the first prototype. At the beginning of 2017, we internally released what could be called the second functional prototype, this time with a backend. And the thing is, we were still using Clojure and ClojureScript! + +The initial reasons were still valid and relevant, but the motivation for such an important time investment reveals other reasons. It's a very long list, but I think the most important features of all were: stability, backwards compatibility, and syntactic abstraction (in the form of macros). + +![Image of the current Penpot interface][6] + +### Stability and backwards compatibility + +Stability and backwards compatibility are one of the most important goals of the Clojure language. There's usually not much of a rush to include all the trendy stuff into the language without having tested its real usefulness. It's not uncommon to see people running production on top of an alpha version of the Clojure compiler, because it's rare to have instability issues even on alpha releases. + +In Clojure or ClojureScript, if a library doesn't have commits for some time, it's most likely fine as is. It needs no further development. It works perfectly, and there's no use in changing something that functions as intended. Contrarily, in the JavaScript world, when you see a library that hasn't had commits in several months, you tend to get the feeling that the library is abandoned or unmaintained. + +There are numerous times when I've downloaded a JavaScript project that has not been touched in 6 months only to find that more than half of the code is already deprecated and unmaintained. On other occasions, it doesn’t even compile because some dependencies have not respected semantic versioning. + +This is why each dependency of [Penpot][7] is carefully chosen, with continuity, stability, and backwards compatibility in mind. Many of them have been developed in-house. We delegate to third party libraries only when they have proven to have the same properties, or when the effort to time ratio of doing it in-house wasn't worth it. + +I think a good summary is that we try to have the minimum necessary external dependencies. React is probably a good example of a big external dependency. Over time, it has shown that they have a real concern with backwards compatibility. Each major release incorporates changes gradually and with a clear path for migration, allowing for old and new code to coexist. + +### Syntactic abstractions + +Another reason I like Clojure is its clear syntactic abstractions (macros). It's one of those characteristics that, as a general rule, can be a double-edged sword. You must use it carefully and not abuse it. But with the complexity of Penpot as a project, having the ability to extract certain common or verbose constructs has helped us simplify the code. These statements cannot be generalized, and the possible value they provide must be seen on a case-by-case basis. Here are a couple of important instances that have made a significant difference for Penpot: + +* When we began building Penpot, React only had components as a class. But those components were modeled as functions and decorators in a [rumext library][8]. When React released versions with hooks that greatly enhanced the functional components, we only had to change the implementation of the macro and 90% of Penpot's components could be kept unmodified. Subsequently, we've gradually moved from decorators to hooks completely without the need for a laborious migration. This reinforces the same idea of the previous paragraphs: stability and backwards compatibility. +* The second most important case is the ease of using native language constructs (vectors and maps) to define the structure of the virtual DOM, instead of using a JSX-like custom DSL. Using those native language constructs would make a macro end up generating the corresponding calls to `React.createElement` at compile time, still leaving room for additional optimizations. Obviously, the fact that the language is expression-oriented makes it all more idiomatic. + +Here's a simple example in JavaScript, based on examples from React documentation: + +``` +function MyComponent({isAuth, options}) { +    let button; +    if (isAuth) { +        button = ; +    } else { +        button = ; +    } + +    return ( +       
+          {button} +         
    +            {Array(props.total).fill(1).map((el, i) => +             
  • {{item + i}}
  • +            )} +         
+       
+    ); +} +``` + +Here's the equivalent in ClojureScript: + +``` +(defn my-component [{:keys [auth? options]}] +  [:div +   (if auth? +     [:& logout-button {}] +     [:& login-button {}]) +   [:ul +    (for [[i item] (map-indexed vector options)] +      [:li {:key i} item])]]) +``` + +All these data structures used to represent the virtual DOM are converted into the appropriate `React.createElement` calls at compile time. + +The fact that Clojure is so data-oriented made using the same native data structures of the language to represent the virtual DOM a natural and logical process. Clojure is a dialect of [LISP][9], where the syntax and AST of the language use the same data structures and can be processed with the same mechanisms. + +For me, working with React through ClojureScript feels more natural than working with it in JavaScript. All the extra tools added to React to use it comfortably, such as JSX, immutable data structures, or tools to work with data transformations, and state handling, are just a part of the ClojureScript language. + +### Guest Language + +Finally, one of the fundamentals of Clojure and ClojureScript ​​is that they were built as *Guest Languages*. That is, they work on top of an existing platform or runtime. In this case, Clojure is built on top of the JVM and ClojureScript on top of JavaScript, which means that interoperability between the language and the runtime is very efficient. This allowed us to take advantage of the entire ecosystem of both Clojure plus everything that's done in Java (the same is true for ClojureScript and JavaScript). + +There are also pieces of code that are easier to write when they're written in imperative languages, like Java or JavaScript. Clojure can coexist with them in the same code base without any problems. + +There's also an ease of sharing code between frontend and backend, even though each one can be running in a completely different runtime (JavaScript and JVM). For Penpot, almost all the most important logic for managing a file's data is written in code and executed both in the frontend and in the backend. + +Perhaps you could say we have chosen what some people call a "boring" technology, but without it actually being boring at all. + +### Trade-offs + +Obviously, every decision has trade-offs. The choice to use Clojure and ClojureScript is not an exception. From a business perspective, the choice of Clojure could be seen as risky because it's not a mainstream language, it has a relatively small community compared to Java or JavaScript, and finding developers is inherently more complicated. + +But in my opinion, the learning curve is much lower than it might seem at first glance. Once you get rid of the *it's different* fear (or as I jokingly call it: *fear of the parentheses*), you start to gain fluency with the language very quickly. There are tons of learning resources, including books and training courses. + +The real obstacle I have noticed is the paradigm shift, rather than the language itself. With Penpot, the necessary and inherent complexity of the project makes the programming language the least of our problems when facing development: building a design platform is no small feat. + +*[This article originally appeared on the Kaleidos blog and has been republished with permission.][10]* + +Image by: (Andrey Antukh, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/why-we-chose-clojure-penpot + +作者:[Andrey Antukh][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/niwinz +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/laptop_screen_desk_work_chat_text.png +[2]: https://piweek.com/ +[3]: https://clojurescript.org/ +[4]: https://opensource.com/sites/default/files/2022-07/First%20version%20of%20UXBOX%20%28Penpot%E2%80%99s%20original%20concept%29%20in%202016.png +[5]: https://opensource.com/article/20/12/groovy +[6]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png +[7]: https://github.com/penpot/penpot +[8]: https://github.com/funcool/rumext +[9]: https://opensource.com/article/21/5/learn-lisp +[10]: https://blog.kaleidos.net/penpot-chose-clojure-as-its-language-and-here-is-why/ From 1669171ed82bfdce116deaafdfdc32796524d57b Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 7 Aug 2022 16:01:40 +0800 Subject: [PATCH 0666/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220807=20How=20to=20Upgrade=20to=20Linux=20Mint=20?= =?UTF-8?q?21=20[Step=20by=20Step=20Tutorial].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o Linux Mint 21 [Step by Step Tutorial].md | 411 ++++++++++++++++++ 1 file changed, 411 insertions(+) create mode 100644 sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md diff --git a/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md new file mode 100644 index 0000000000..6a3c8e3e60 --- /dev/null +++ b/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md @@ -0,0 +1,411 @@ +[#]: subject: "How to Upgrade to Linux Mint 21 [Step by Step Tutorial]" +[#]: via: "https://itsfoss.com/upgrade-linux-mint-version/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Upgrade to Linux Mint 21 [Step by Step Tutorial] +====== +This is a regularly updated guide for upgrading an existing Linux Mint install to a new available version. + +There are three sections in this article that show the steps for upgrading between various major versions of Linux Mint: + +* Section 1 is about upgrading to Mint 21 from Mint 20.3 (GUI upgrade tool) +* Section 2 is about upgrading to Mint 20 from Mint 19.3 (Command-line based upgrader) +* Section 3 is about upgrading to Mint 19 from Mint 18.3 (if someone is still using it) + +You can follow the appropriate steps based on your current Mint version and requirement. + +This is a regularly updated guide for upgrading an existing Linux Mint install to a new available version. + +The guide has been updated with the steps for upgrading to Linux Mint 21 from Mint 20.3. Linux Mint now has a GUI tool to upgrade to the latest version. + +### Things to know before you upgrade to Linux Mint 21 + +Before you go on upgrading to Linux Mint 21, you should consider the following: + +* Do you really need to upgrade? Linux Mint 20.x is supported for several more years. +* You’ll need a good speed internet connection to download upgrades of around 1.4 GB. +* It may take a couple of hours to complete the upgrade procedure based on your internet speed. You must have patience. +* It is a good idea to make a live USB of Linux Mint 21 and try it in a live session to see if it is compatible with your hardware. Newer kernels might have issues with older hardware, so testing it before the real upgrade or install can save you a lot of frustration. +* A fresh installation is always better than a major version upgrade but installing Linux Mint 21 from scratch would mean losing your existing data. You must take backup on an external disk. +* Though upgrades are mostly safe, it’s not 100% failproof. You must have system snapshots and proper backups. +* You can upgrade to Linux Mint 21 only from Linux Mint 20.3 Cinnamon, Xfce and MATE. [Check your Linux Mint version][1] first. If you are using Linux Mint 20.2 or 20.1, you need to upgrade to 20.3 first from the Update Manager. If you are using Linux Mint 19, I advise you to go for a fresh installation rather than upgrading to several Mint versions. + +Once you know what you will do, let’s see how to upgrade to Linux Mint 21. + +### Upgrading to Linux Mint 21 from 20.3 + +Check your Linux Mint version and ensure that you are using Mint 20.3. You cannot upgrade to Mint 21 from Mint 20.1 or 20.2. + +#### Step 1: Update your system by installing any available updates + +Launch the Update Manager with Menu -> Administration -> Update Manager. Check if there are any package updates available. If yes, install all the software updates first. + +![Check for Pending Software Updates][2] + +You may also use this command in the terminal for this step: + +``` +sudo apt update && sudo apt upgrade -y +``` + +#### Step 2: Make a backup of your files on an external disk [Optional yet recommended] + +Timeshift is a good tool for creating system snapshots, but it’s not the ideal tool for your documents, pictures, and other such non-system, personal files. I advise making a backup on an external disk. It’s just for the sake of data safety. + +When I say making a backup on an external disk, I mean to simply copy and paste your Pictures, Documents, Downloads, and Videos directory on an external USB disk. + +If you don’t have a disk of that much size, at least copy the most important files you cannot afford to lose. + +#### Step 3: Install the upgrade tool + +Now that your system is updated, you are ready to upgrade to Linux Mint 21. Linux Mint team provides a GUI tool called [mintupgrade][3] for upgrading Linux Mint 20.3 to Linux Mint 21. + +You can install this tool using the command below: + +``` +sudo apt install mintupgrade +``` + +#### Step 4: Run GUI Tool from the terminal + +You cannot find the new GUI tool listed in the App menu. To launch, you need to enter the following command in the terminal: + +``` +sudo mintupgrade +``` + +This simple yet comprehensive tool takes you through the upgrading process. + +![Mint Upgrade Tool Home Page][4] + +After some initial tests, it will prompt for a Timeshift Backup. If you already have a backup created, you are good to go. + +![Upgrade Tool Prompting No Timeshift Snapshots][5] + +Else, you need to [create a backup][6] here since it is mandatory to continue. + +![Taking Snapshot With Timeshift][7] + +Some PPAs might be already available for Ubuntu 22.04 and thus for Mint 21. But if the PPA or repository is not available for the new version, it may impact the upgrade procedure with broken dependencies. You will be prompted the same within the upgrade tool. + +![Kazam PPA Does Not Support Jammy][8] + +Here, I used [Kazam latest versio][9]n through its PPA. The same PPA is supported only up to Impish, showing the error since Linux Mint 21 is based on Jammy. + +You will be given the option to disable the PPAs through Software Sources within the upgrade tool. + +![Disable Unsupported PPAs in Software Sources][10] + +Since the PPA is disabled, the package becomes ‘foreign’ because the version available from the repository doesn’t match the ones from Mint repositories. So you need to downgrade the packages to a version available on the repository. + +![Downgrade Package to Avoid Conflicts][11] + +The upgrade tool now lists the changes that need to be carried out. + +![List Changes That Need to be Done][12] + +Upon accepting, the tool will start downloading packages. + +![Phase 2 – Simulation and Package Download][13] + +![Package Downloading][14] + +![Upgrading Phase][15] + +It will list orphan packages, that can be removed. You can either remove the whole suggestions by pressing the “Fix” button or will keep certain packages. + +#### Keep Certain Orphan packages + +In order to keep packages from the orphan packages list, you need to go to the preferences from the hamburger menu on top left. + +![Selecting Orphan Packages You Want to Keep with Preferences][16] + +From the preference dialog box, you need to go to **Orphan Packages** and use the “plus” symbol to add packages by name. + +![Specify Name of the Package to Keep][17] + +Once done, it will continue upgrading and after some time, you will be prompted a successful update notification. + +![Upgrade Successful][18] + +At this point, you need to reboot your system. Upon rebooting, you will be in the new Linux Mint 21. + +![Neofetch Output Linux Mint 21][19] + +### How to upgrade to Linux Mint 20 + +Before you go on upgrading to Linux Mint 20, you should consider the following: + +* Do you really need to upgrade? Linux Mint 19.x is supported till 2023. +* If you [have a 32-bit system][20], you cannot install or upgrade to Mint 20. +* You’ll need a good speed internet connection to download upgrades of around 1.4 GB in size. +* Based on your internet speed, it may take a couple of hours to complete the upgrade procedure. You must have patience. +* It is a good idea to make a live USB of Linux Mint 20 and try it in a live session to see if it is compatible with your hardware. Newer kernels might have issues with older hardware and hence testing it before the real upgrade or install can save you a lot of frustration. +* A fresh installation is always better than a major version upgrade but [installing Linux Mint][21] 20 from scratch would mean you’ll lose your existing data. You must take backup on an external disk. +* Though upgrades are mostly safe, it’s not 100% fail proof. You must have system snapshots and proper backups. +* You can upgrade to Linux Mint 20 only from Linux Mint 19.3 Cinnamon, Xfce and MATE. [Check your Linux Mint version][22] first. If you are using Linux Mint 19.2 or 19.1, you need to upgrade to 19.3 first from the Update Manager. If you are using Linux Mint 18, I advise you go for a fresh installation rather than upgrading to several Mint versions. +* The upgrade process is done via command line utility. If you don’t like using terminal and commands, avoid upgrading and go for a fresh installation. + +Once you know what you are going to do, let’s see how to upgrade to Linux Mint 20. + +![A Video from YouTube][23] + +[Subscribe to our YouTube channel for more Linux videos][24] + +#### Step 1: Make sure you have a 64-bit system + +Linux Mint 20 is a 64-bit only system. If you have a 32-bit Mint 19 installed, you cannot upgrade to Linux Mint 20. + +In a terminal, use the following command to see whether you are using 64-bit operating system or not. + +``` +dpkg --print-architecture +``` + +![Mint 20 Upgrade Check Architecture][25] + +#### Step 2: Update your system by installing any available updates + +Launch the Update Manager with Menu -> Administration -> Update Manager. Check if there are any package updates available. If yes, install all the software updates first. + +![Check for pending software updates][26] + +You may also use this command in the terminal for this step: + +``` +sudo apt update && sudo apt upgrade -y +``` + +#### Step 3: Create a system snapshot with Timeshift [Optional yet recommended] + +[Creating a system snapshot with Timeshift][27] will save you if your upgrade procedure is interrupted or if you face any other issue. **You can even revert to Mint 19.3 this way**. + +Suppose your upgrade failed for power interruption or some other reason and you end up with a broken, unusable Linux Mint 19. You can plug in a live Linux Mint USB and run Timeshift from the live environment. It will automatically locate your backup location and will allow you to restore your broken Mint 19 system. + +This also means that you should keep a live Linux Mint 19 USB handy specially if you don’t have access to a working computer that you can use to create live Linux Mint USB in the rare case the upgrade fails. + +![Create a system snapshot in Linux Mint][28] + +#### Step 4: Make a backup of your files on an external disk [Optional yet recommended] + +Timeshift is a good tool for creating system snapshots but it’s not the ideal tool for your documents, pictures and other such non-system, personal files. I advise making a backup on an external disk. It’s just for the sake of data safety. + +When I say making a backup on an external disk, I mean to simply copy and paste your Pictures, Documents, Downloads, Videos directory on an external USB disk. + +If you don’t have a disk of that much of a size, at least copy the most important files that you cannot afford to lose. + +#### Step 5: Disable PPAs and third-party repositories [Optional yet recommended] + +It’s natural that you might have installed applications using some [PPA][29] or other repositories. + +Some PPAs might be already available for Ubuntu 20.04 and thus for Mint 20. But if the PPA or repository is not available for the new version, it may impact the upgrade procedure with broken dependencies. + +For this reason, it is advised that you disable the PPAs and third-party repositories. You may also delete the applications installed via such external sources if it is okay with you and doesn’t result in config data loss. + +In the Software Sources tool, disable additional repositories, disable PPAs. + +![Disable Ppa Mint Upgrade][30] + +You should also **downgrade and then remove foreign packages** available in the maintenance tab. + +For example, I installed Shutter using a PPA. I disabled its PPA. Now the package becomes ‘foreign’ because the version available from the repository doesn’t match the ones from Mint repositories. + +![Foreign Package Linux Mint][31] + +#### Step 6: Install the upgrade tool + +Now that your system is updated, you are ready for upgrading to Linux Mint 20. Linux Mint team provides a command line tool called [mintupgrade][32] for the sole purpose of upgrading Linux Mint 19.3 to Linux Mint 20. + +You can install this tool using the command below: + +``` +sudo apt install mintupgrade +``` + +#### Step 7: Run an upgrade sanity check + +The mintupgrade tool lets you run a sanity check by simulating initial part of the upgrade. + +You can run this check to see what kind of changes will be made to your system, which packages will be upgraded. It will also show the packages that cannot be upgraded and must be removed. + +``` +mintupgrade check +``` + +There won’t be any real changes on your system yet (even if it feels like it is going to make some changes). + +This step is important and helpful in determining whether your system can be upgrade to Mint 20 or not. + +![Mint Upgrade Check][33] + +If this steps fails half-way through type **mintupgrade restore-sources** to go back to your original APT configuration. + +#### Step 8: Download package upgrades + +Once you are comfortable with the output of mintupgrade check, you can download the Mint 20 upgrade packages. + +Depending on your internet connection, it may take some time in downloading these upgrades. Make sure your system is connected to a power source. + +While the packages are being downloaded, you can continue using your system for regular work. + +``` +mintupgrade download +``` + +![Mint 20 Upgrade Download][34] + +Note that this command points your system to the Linux Mint 20 repositories. If you want to go back to Linux Mint 19.3 after using this command, you still can do that with the command “**mintupgrade restore-sources**“. + +#### Step 9: Install the Upgrades [Point of no return] + +Now that you have everything ready, you can upgrade to Linux Mint 20 using this command: + +``` +mintupgrade upgrade +``` + +Give it some time to install the new packages and upgrade your Mint to the newer version. Once the procedure finishes, it will ask you to reboot. + +![Linux Mint 20 Upgrade Finish][35] + +#### Enjoy Linux Mint 20 + +Once you reboot your system, you’ll see the Mint 20 welcome screen. Enjoy the new version. + +![Welcome To Linux Mint 20][36] + +### Upgrading to Mint 19 from Mint 18 + +The steps for upgrading to Linux Mint 19 from 18.3 is pretty much the same as the steps you saw for Mint 20. The only change is in checking for display manager. + +I’ll quickly mention the steps here. If you want more details, you can refer to Mint 20 upgrade procedure. + +**Step1:** Create a system snapshot with Timeshift [Optional yet recommended] + +**Step2:** Make a backup of your files on an external disk [Optional yet recommended] + +**Step 3: Make sure you are using LightDM** + +You must use [LightDM display manager][37] for Mint 19. To check which display manager you are using, type the command: + +``` +cat /etc/X11/default-display-manager +``` + +If the result is “/usr/sbin/**lightdm**“, you have LightDM and you are good to go. + +![LightDM Display Manager in Linux Mint][38] + +On the other hand, if the result is “/usr/sbin/**mdm**“, you need to install LightDM, [switch to LightDM][39] and removing MDM. Use this command to install LightDM: + +``` +apt install lightdm lightdm-settings slick-greeter +``` + +While installing, it will ask you to choose the display manager. You need to select LightDM. + +Once you have set LightDM as your display manager, remove MDM and reboot using these commands: + +``` +apt remove --purge mdm mint-mdm-themes* +sudo dpkg-reconfigure lightdm +sudo reboot +``` + +**Step 4: Update your system by installing any available updates** + +``` +sudo apt update && sudo apt upgrade -y +``` + +**Step 5: Install the upgrade tool** + +``` +sudo apt install mintupgrade +``` + +**Step 6: Check upgrade** + +``` +mintupgrade check +``` + +**Step 7: Download package upgrades** + +``` +mintupgrade download +``` + +**Step 8: Apply upgrades** + +``` +mintupgrade upgrade +``` + +Enjoy Linux Mint 19. + +### Did you upgrade to Linux Mint 21? + +Upgrading to Linux Mint 20 might not be a friendly experience but upgrading to Mint 21 is made a lot more simple with the new dedicated GUI upgrade tool. + +I hope you find the tutorial helpful. Did you upgrade to Linux Mint 21 or you opted for a fresh installation? + +If you faced any issues or if you have any questions about the upgrade procedure, please feel free to ask in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/upgrade-linux-mint-version/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/check-linux-mint-version/ +[2]: https://itsfoss.com/wp-content/uploads/2022/08/check-for-pending-software-updates.png +[3]: https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade +[4]: https://itsfoss.com/wp-content/uploads/2022/08/mint-upgrade-tool-home-page.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/upgrade-tool-prompting-no-timeshift-snapshots.png +[6]: https://itsfoss.com/backup-restore-linux-timeshift/ +[7]: https://itsfoss.com/wp-content/uploads/2022/08/taking-snapshot-with-timeshift.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/kazam-ppa-does-not-support-jammy.png +[9]: https://itsfoss.com/kazam-screen-recorder/ +[10]: https://itsfoss.com/wp-content/uploads/2022/08/disable-unsupported-ppas-in-software-sources.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/downgrade-package-to-avoid-conflicts.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/list-changes-that-need-to-be-done.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/phase-2-simulation-and-package-download-.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/package-downloading.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/upgrading-phase.png +[16]: https://itsfoss.com/wp-content/uploads/2022/08/selecting-orphan-packages-you-want-to-keep-with-preferences.png +[17]: https://itsfoss.com/wp-content/uploads/2022/08/specify-name-of-the-package-to-keep.png +[18]: https://itsfoss.com/wp-content/uploads/2022/08/upgrade-successful-800x494.png +[19]: https://itsfoss.com/wp-content/uploads/2022/08/neofetch-output-linux-mint-21.png +[20]: https://itsfoss.com/32-bit-64-bit-ubuntu/ +[21]: https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/ +[22]: https://itsfoss.com/check-linux-mint-version/ +[23]: https://youtu.be/LYnXEaiAjsk +[24]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 +[25]: https://itsfoss.com/wp-content/uploads/2020/07/mint-20-upgrade-check-architecture.jpg +[26]: https://itsfoss.com/wp-content/uploads/2020/07/update-manager-linux-mint.jpg +[27]: https://itsfoss.com/backup-restore-linux-timeshift/ +[28]: https://itsfoss.com/wp-content/uploads/2018/07/snapshot-linux-mint-timeshift.jpeg +[29]: https://itsfoss.com/ppa-guide/ +[30]: https://itsfoss.com/wp-content/uploads/2020/07/disable-ppa-mint-upgrade.jpg +[31]: https://itsfoss.com/wp-content/uploads/2020/07/foreign-package-linux-mint.jpg +[32]: https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade +[33]: https://itsfoss.com/wp-content/uploads/2020/07/mint-upgrade-check.jpg +[34]: https://itsfoss.com/wp-content/uploads/2020/07/mint-upgrade-download.jpg +[35]: https://itsfoss.com/wp-content/uploads/2020/07/linux-mint-20-upgrade-finish.jpg +[36]: https://itsfoss.com/wp-content/uploads/2020/07/welcome-to-linux-mint-20.jpg +[37]: https://wiki.archlinux.org/index.php/LightDM +[38]: https://itsfoss.com/wp-content/uploads/2018/07/lightdm-linux-mint.jpeg +[39]: https://itsfoss.com/switch-gdm-and-lightdm-in-ubuntu-14-04/ From c7faecf5af829ac46deb27f230480e92624355c9 Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Sun, 7 Aug 2022 21:31:46 +0800 Subject: [PATCH 0667/3123] Translated --- ...10 MAKE MORE with Inkscape - Ink-Stitch.md | 212 ------------------ ...10 MAKE MORE with Inkscape - Ink-Stitch.md | 212 ++++++++++++++++++ 2 files changed, 212 insertions(+), 212 deletions(-) delete mode 100644 sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md create mode 100644 translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md diff --git a/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md deleted file mode 100644 index 82e24065cf..0000000000 --- a/sources/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md +++ /dev/null @@ -1,212 +0,0 @@ -[#]: subject: "MAKE MORE with Inkscape – Ink/Stitch" -[#]: via: "https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/" -[#]: author: "Sirko Kemter https://fedoramagazine.org/author/gnokii/" -[#]: collector: "lujun9972" -[#]: translator: "aREversez" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -MAKE MORE with Inkscape – Ink/Stitch -====== - -![MAKE more with Inkscape - Ink/Stitch][1] - -Inkscape, the most used and loved tool of Fedora’s Design Team, is not just a program for doing nice vector graphics. With vector graphics (in our case SVG) a lot more can be done. Many programs can import this format. Also, Inkscape can do a lot more than just graphics. The first article of this [series][2] showed how to [produce GCode with Inkscape][3]. This article will examine another Inkscape extension – [Ink/Stitch][4]. Ink/Stitch is an extension for designing embroidery with Inkscape. - -### DIY Embroidery - -In the last few years the do-it-yourself or maker scene has experienced a boom. You could say it all began with the inexpensive option of [3D printing][5]; followed by also not expensive [CNC][6] machines and laser cutters/engravers. Also the prices for more _“_traditional_”_ machines such as embroidery machines have fallen during recent years. [Home embroidery machines are now available for 500 US dollars][7]. - -If you don’t want to or can’t buy one yourself, the nearest [MakerSpace][8] often has one. Even the prices for commercial single-head embroidery machines are down to 5,000 US dollars. They are an investment that can pay off quickly. - -### Software for Embroidery Design - -Some of the home machines include their own software for designing embroidery. But most, if not all, of these applications are Windows-only. Also, the most used manufacturer-independent software of this area – [Embird][9] – is only available for Windows. But you could run it in Wine. - -Another solution for Linux – [Embroidermodde][10] – is not really developed anymore. And this is after having had a fundraising campaign. - -Today, only one solution is left – [Ink/Stitch][4] - -![The logo of the Ink/Stitch project][11] - -### Open Source and Embroidery Design - -Ink/Stitch started out using [libembroidery][12]. Today [pyembroidery][13] is used. The manufacturers can’t be blamed for the prices of these machines and the number of Linux users. It is hardly worthwhile to develop applications for Linux. - -#### The Embroidery File Format Problem - -There is a problem with the proliferation of file formats for embroidery machines; especially among manufacturers that cook their own file format for their machines. In some cases, even a single manufacturer may use several different file formats. - - * **.10o** – Toyota embroidery machines - * **.100** – Toyota embroidery machines - * **.CSD** – Poem, Huskygram, and Singer EU embroidery home sewing machines. - * **.DSB** – Baruda embroidery machines - * **.JEF** – MemoryCraft 10000 machines. - * **.SEW** – MemoryCraft 5700, 8000, and 9000 machines. - * **.PES** – Brother and Babylock embroidery home sewing machines. - * **.PEC** – Brother and Babylock embroidery home sewing machines. - * **.HUS** – Husqvarna/Viking embroidery home sewing machines. - * **.PCS** – Pfaff embroidery home sewing machines. - * **.VIP** – old Pfaff format also used by Husqvarna machines. - * **.VP3** – newer Pfaff embroidery home sewing machines. - * **.DST** – Tajima commercial embroidery sewing machines. - * **.EXP** – Melco commercial embroidery sewing machines. - * **.XXX** – Compucon, Singer embroidery home sewing machines. - * **.ZSK** – ZSK machines on the american market - - - -This is just a small selection of the file formats that are available for embroidery. You can find a more complete list [here][14]. If you are interested in [deeper knowledge about these file formats, see here for more information][15]. - -#### File Formats of Ink/Stitch - -Ink/Stitch can currently read the following file formats: 100, 10o, BRO, DAT, DSB, DST, DSZ, EMD, EXP, EXY, FXY, GT, INB, JEF, JPX, KSM, MAX, MIT, NEW, PCD, PCM, PCQ, PCS, PEC, PES, PHB, PHC, SEW, SHV, STC, STX, TAP, TBF, U01, VP3, XXX, ZXY and also GCode as TXT file. - -For the more important task of writing/saving your work, Ink/Stitch supports far fewer formats: DST, EXP, JEF, PEC, PES, U01, VP3 and of course SVG, CSV and GCode as TXT - -Besides the problem of all these file formats, there are other problems that a potential stitch program has to overcome. - -Working with the different kinds of stitches is one difficulty. The integration of tools for drawing and lettering is another. But why invent such a thing from scratch? Why not take an existing vector program and just add the functions for embroidery to it? That was the idea behind the [Ink/Stitch project][4] over three years ago. - -### Install Ink/Stitch - -Ink/Stitch is an [extension for Inkscape][16]. Inkscape’s new functionality for downloading and installing extensions is still experimental. And you will not find Ink/Stitch among the extensions that are offered there. You must [download][17] the extension manually. After it is downloaded, unzip the package into your directory for Inkscape extensions. The default location is _~/.config/Inkscape/extensions_ (or _/usr/share/inkscape/extensions_ for system-wide availability). If you have changed the defaults, you may need to check Inkscape’s settings to find the location of the extensions directory. - -### Customization – Install Add-ons for Ink/Stitch - -The Ink/Stitch extension provides a function called Install Add-Ons for Inkscape, which you should run first. - -The execution of this function – _Extensions > Ink/Stitch > Thread Color Management > Install thread color palettes for Inkscape_ – will take a while. - -Do not become nervous as there is no progress bar or a similar thing to see. - -This function will install 70 color palettes of various yarn manufacturers and a symbol library for Ink/Stitch. - -![Inkscape with the swatches dialogue open, which shows the Madeira Rayon color palette][18] - -If you use the download from Github version 2.0.0, the ZIP-file contains the color palette files. You only need to unpack them into the right directory (_~/.config/inkscape/palettes/_). If you need a [hoop template, you can download][19] one and save it to _~/.config/inkscape/templates_. - -The next time you start Inkscape, you will find it under _File > New From Template_. - -### Lettering with Ink/Stitch - -The way that is by far the easiest and most widely used, is to get a embroidery design using the _Lettering_ function of Ink/Stitch. It is located under _Extensions > Ink/Stitch > Lettering_. Lettering for embroidery is not simple. What you expect are so called satin stitched letters. For this, special font settings are needed. - -![Inkscape with a “Chopin” glyph for satin stitching defined for the Lettering function][20] - -You can convert paths to satin stitching. But this is more work intensive than using the Lettering function. Thanks to the work of an active community, the May 2021 release of Ink/Stitch 2.0 brought more predefined fonts for this. An English tutorial on how to create such fonts can be found [here][21]. - -Version 2.0 also brings functions (_Extensions > Ink/Stitch > Font Management_) to make managing these kinds of fonts easier. There are also functions for creating these kinds of fonts. But you will need knowledge about font design with Inkscape to do so. First, you create an an entire SVG font. It is then feed through a JSON script which converts the SVG font into the type of files that Ink/Stitch’s font management function works with. - -![On the left side the Lettering dialogue and on the right the preview of this settings][22] - -The function will open a dialogue window where you just have to put in your text, choose the size and font, and then it will render a preview. - -### Embroider Areas/Path-Objects - -The easiest thing with Ink/Stitch, is to embroider areas or paths. Just draw your path. When you use shapes then you have to convert them and then run _Extensions > Ink/Stitch > Fill Tools > Break Apart Fill Objects…_ - -This breaks apart the path into its different parts. You have to use this function. The _Path > Break apart_ function of Inkscape won’t work for this. - -Next, you can run Ink/Stitch’s built-in simulator: _Extensions > Ink/Stitch > Visualise and Export > Simulator/Realistic Preview_. - -![The new Fedora logo as Stitch Plan Preview][23] - -Be careful with the simulator. It takes a lot system resources and it will take a while to start. You may find it easier to use the function _Extensions > Ink/Stitch > Visualise and Export > Stitch Plan Preview_. The latter renders the threading of the embroidery outside of the document. - -![Nicubunu’s Fedora hat icon as embroidery. The angles for the stitches of the head part and the brim are different so that it looks more realistic. The outline is done in Satin stitching][24] - -### Simple Satin and Satin Embroidery - -Ink/Stitch will convert each stroke with a continuous line (no dashes) to what they call Zig-Zag or Simple Satin. Stitches are created along the path using the stroke width you have specified. This will work as long there aren’t too many curves on the path. - -![Parameter setting dialogue and on the right the Fedora logo shape embroidered as Zig-Zag line][25] - -This is simple. But it is by far not the best way. It is better to use the Satin Tools for this. The functions for the Satin embroidery can be found under _Extensions > Satin Tools_. The most important is the conversion function which converts paths to satin strokes. - -![Fedora logo shape as Satin Line embroidery][26] - -You can also reverse the stitch direction using _Extensions > Satin Tools > Flip Satin Column Rails_. This underlines the 3D effect satin embroidery gets, especially when you make puff embroidery. For machines that have this capability, you can also set the markings for the trims of jump stitches. To visualize these trims, Ink/Stitch uses the symbols that where installed from its own symbol library. - -### The Ink/Stitch Stitch Library - -What is called the stitch library is simply the kind of stitches that Ink/Stitch can create. The Fill Stitch and Zig-Zag/Satin Stitch have already been introduced. But there are more. - - * **Running Stitches**: These are used for doing outline designs. The running stitch produces a series of small stitches following a line or curve. Each dashed line will be converted into a Running Stitch. The size of the dashes does not matter. - - - -![A running stitch – each dashed line will be converted in such one][27] - - * **Bean Stitches**: These can also be used for outline designs or add details to a design. The bean stitch describes a repetition of running stitches back and forth. This results in thicker threading. - - - -![Bean Stitches – creating a thicker line][28] - - * **Manual Stitch**: In this mode, Ink/Stitch will use each node of a path as a needle penetration point; exactly as they are placed. - - - -![In manual mode – each node will be the needle penetration point][29] - - * **E-Stitch**: The main use for e-stitch is a simple but strong cover stitch for applique items. It is often used for baby cloths because their skin tends to be more sensitive. - - - -![E-Stitch mostly used for applications on baby cloths, soft but strong connection][30] - -### Embroidery Thread List - -Some embroidery machines (especially those designed for commercial use) allow different threads to be fitted in advance according to what will be needed for the design. These machines will automatically switch to the right thread when needed. Some file formats for embroidery support this feature. But some do not. Ink/Stitch can apply custom thread lists to an embroidery design. - -If you want to work on an existing design, you can import a thread list: _Extensions > Ink/Stitch > Import Threadlist_. Thread lists can also be exported: _Save As different file formats as *.zip_. You can also print them: _Extensions > Ink/Stitch > Visualise and Export > Print PDF_. - -### Conclusion - -Writing software for embroidery design is not easy. Many functions are needed and diverse (sometimes closed-source) file formats make the task difficult. Ink/Stitch has managed to create a useful tool with many functions. It enables the user to get started with basic embroidery design. Some things could be done a little better. But it is definitely a good tool as-is and I expect that it will become better over time. Machine embroidery can be an interesting hobby and with Ink/Stitch the Fedora Linux user can begin designing breathtaking things. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/ - -作者:[Sirko Kemter][a] -选题:[lujun9972][b] -译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/gnokii/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2021/08/drawing2-816x345.png -[2]: https://fedoramagazine.org/series/make-more/ -[3]: https://fedoramagazine.org/make-more-with-inkscape-g-code-tools/ -[4]: https://inkstitch.org/ -[5]: https://fedoramagazine.org/3d-printing-in-fedora-from-an-idea-to-the-thing/ -[6]: https://en.wikipedia.org/wiki/Numerical_control -[7]: https://www.amazon.com/-/de/dp/B07VZ2YBLL/ref=sr_1_11?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1MFJJWXMKQD6R&dchild=1&keywords=home+embroidery+machine&qid=1628388092&rnid=2941120011&s=arts-crafts&sprefix=home+embroider+%2Caps%2C-1&sr=1-11 -[8]: https://www.fablabs.io/labs/map -[9]: https://www.embird.net/ -[10]: https://embroidermodder.org/ -[11]: https://fedoramagazine.org/wp-content/uploads/2021/08/inkstitch_logo.png -[12]: https://github.com/Embroidermodder/libembroidery -[13]: https://github.com/inkstitch/pyembroidery -[14]: http://www.needlework.ru/page/embroidery.htm -[15]: http://edutechwiki.unige.ch/en/Embroidery_format -[16]: https://inkscape.org/~wwderw/%E2%98%85inkstitch-embroidery-extension -[17]: https://github.com/inkstitch/inkstitch/releases/tag/v2.0.0 -[18]: https://fedoramagazine.org/wp-content/uploads/2021/08/swatches-1024x556.png -[19]: https://inkstitch.org/assets/images/tutorials/templates/hoop-template.svg -[20]: https://fedoramagazine.org/wp-content/uploads/2021/08/satinfont-1024x556.png -[21]: https://inkstitch.org/tutorials/font-creation/ -[22]: https://fedoramagazine.org/wp-content/uploads/2021/08/lettering-1024x523.png -[23]: https://fedoramagazine.org/wp-content/uploads/2021/08/stitch-preview-1024x556.png -[24]: https://fedoramagazine.org/wp-content/uploads/2021/08/nicu-stitch.gif -[25]: https://fedoramagazine.org/wp-content/uploads/2021/08/zigzag-1024x463.png -[26]: https://fedoramagazine.org/wp-content/uploads/2021/08/satin.png -[27]: https://fedoramagazine.org/wp-content/uploads/2021/08/running-stitch-detail.jpg -[28]: https://fedoramagazine.org/wp-content/uploads/2021/08/bean-stitch-detail.jpg -[29]: https://fedoramagazine.org/wp-content/uploads/2021/08/manual-stitch-detail.png -[30]: https://fedoramagazine.org/wp-content/uploads/2021/08/e-stitch-detail.jpg diff --git a/translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md new file mode 100644 index 0000000000..40211cb668 --- /dev/null +++ b/translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md @@ -0,0 +1,212 @@ +[#]: subject: "MAKE MORE with Inkscape – Ink/Stitch" +[#]: via: "https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/" +[#]: author: "Sirko Kemter https://fedoramagazine.org/author/gnokii/" +[#]: collector: "lujun9972" +[#]: translator: "aREversez" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +MAKE MORE with Inkscape – Ink/Stitch +====== + +![MAKE more with Inkscape - Ink/Stitch][1] + +Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不止于制作精美的矢量图形。矢量图形(也就是 SVG 文件)可以帮助实现更多操作,许多软件也支持这一格式。不过,Inkscape 还有其他功能有待发掘。[本系列][2] 第一篇文章介绍了如何 [使用 Inkscape 生成 GCode 文件][3];本篇文章将探索 Inkscape 的另一项拓展功能:用于绣花设计的 [Ink/Stitch][4]。 + +### 绣花 DIY + +在过去数年里,DIY 风靡一时。可以说,这一现象始于廉价的 [3D 打印][5] 技术,以及后来的 [数控][6] 机床与激光切割机、激光雕刻机。这些设备都算不上非常昂贵。同时,绣花机等“传统”机器的价格也有下降。[家用绣花机现在只需 500 美元就能买到了][7]。 + +如果你不想买或者买不到绣花机,离你最近的 [创客空间][8] 一般也会有。即便是一台商用单头绣花机,价格也下降到了 5000 美元。对于购置绣花机这种投资来说,一般很快就能看到回报。 + +### 绣花设计软件 + +一些家用绣花机附有配套的绣花设计软件,不过大部分都只能在 Windows 系统上运行,就算该领域最常用的、独立于各绣花机制造商的软件 [Embird][9] 也是如此。不过,你也可以通过 Wine 来运行这些软件。 + +在 Linux 上,另一个办法就是使用 [Embroidermodde][10]。不过,该软件在 2014 年的募捐活动之后,就停止了开发活动。 + +到今天,只剩下一个办法:[Ink/Stitch][4] + +![The logo of the Ink/Stitch project][11] + +### 开源与绣花设计 + +绣花机价格高以及 Linux 用户少都怪不得制造商,毕竟为 Linux 开发应用的确不太值得。 + +#### 绣花文件格式问题 + +绣花机所用文件格式大量涌现,甚至还有一些制造商为自家机器定制了文件格式。在某些情况下,即便是一家制造商,可能也会使用多种文件格式。 + + * **.10o** – 丰田绣花机 + * **.100** – 丰田绣花机 + * **.CSD** – Poem,Huskygram 和胜家家用绣花缝纫机 + * **.DSB** – 百灵达绣花机 + * **.JEF** – 车乐美 MemoryCraft 10000 + * **.SEW** – 车乐美 MemoryCraft 5700, 8000, and 9000 + * **.PES** – 兄弟和 Babylock 家用绣花缝纫机 + * **.PEC** – 兄弟和 Babylock 家用绣花缝纫机 + * **.HUS** – 好时运家用绣花缝纫机 + * **.PCS** – 百福家用绣花缝纫机 + * **.VIP** – 百福旧格式 & 好时运格式 + * **.VP3** – 百福家用缝纫机新格式 + * **.DST** – 田岛商用绣花缝纫机 + * **.EXP** – 美高商用绣花缝纫机 + * **.XXX** – Compucon 和 胜家家用绣花缝纫机 + * **.ZSK** – 美国市场的 ZSK 绣花机 + + + +关于绣花机会用到的文件格式,上面列出来的只是九牛一毛,可 [在此][14] 查看全部格式。如果你想进一步了解这些文件格式,可点击 [此处][15] 获取更多信息。 + +#### Ink/Stitch 文件格式 + +Ink/Stitch 最初使用的是 [libembroidery][12] 库,现在则使用 [pyembroidery][13] 库。在 pyembroidery 库的支持下,Ink/Stitch 目前可以读取以下格式:100, 10o, BRO, DAT, DSB, DST, DSZ, EMD, EXP, EXY, FXY, GT, INB, JEF, JPX, KSM, MAX, MIT, NEW, PCD, PCM, PCQ, PCS, PEC, PES, PHB, PHC, SEW, SHV, STC, STX, TAP, TBF, U01, VP3, XXX, ZXY 以及 TXT(内容为 GCode 代码)。 + +不过,Ink/Stitch 支持的储存格式则比较少:DST, EXP, JEF, PEC, PES, U01, VP3 and of course SVG, CSV 以及 TXT(内容为 GCode 代码)。 + +除了文件格式,绣花缝纫软件还需解决其它一些问题。 + +支持繁杂多样的线迹类型是一个难题,绘制工具与缝制工具的搭配使用又是另一个难题。不过,为什么非要从无到有搞出一套新应用?为什么不依赖现有的矢量软件?这样一来,开发者只需要在其基础上增添绣花拓展功能即可。后者就是 [Ink/Stitch 项目][4] 过去四年来的设计理念。 + +### 安装 Ink/Stitch + +Ink/Stitch 是 [Inkscape 的一个拓展功能][16]。不过,由于 Inkscape 下载安装拓展的新功能还处于测试阶段,在其提供的拓展功能中可能无法找到 Ink/Stitch。因此,你需要自行手动 [下载][17] 该拓展。下载后,将压缩包解压到 Inkscape 拓展所在路径,默认路径为 _~/.config/Inkscape/extensions_(或者放置在系统全局路径:_/usr/share/inkscape/extensions_)。若你改变了默认路径,则需检查 Inkscape 设置选项,找到拓展文件的存放位置。 + +### 自定义:为 Ink/Stitch 安装插件 + +Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行这一功能。 + +依次点击如下选项:_扩展Extensions > Ink/Stitch > 线条颜色管理Thread Color Management > 为 Inkscape 安装线条调色板Install thread color palettes for Inkscape_,之后等待片刻。 + +虽然这一过程不会出现进度条之类的提示,不过也无需着急。 + +该功能执行后,将会安装来自不同纱线制造商的 70 套色板,以及一套符号库。 + +![Inkscape with the swatches dialogue open, which shows the Madeira Rayon color palette][18] + +如果你使用的 Ink/Stitch 是从 Github 下载的 2.0.0 版本,那么下载下来的 ZIP 文件里就包括了色板文件。你只需将其解压到正确的路径:_~/.config/inkscape/palettes/_。如果你需要环形模板,可以点击 [此处][19] 下载,并将其保存到 _~/.config/inkscape/templates_ 目录下. + +重新启动 Inkscape,可在 _文件File > 由模板新建New From Template_ 下找到该模板。 + +### Ink/Stitch 绣字 + +到目前为止,绣花设计最简单也最常用的方法就是使用 Ink/Stitch 的 _文字缝制Lettering_ 功能。该功能位于 _拓展Extensions > Ink/Stitch > 文字缝制Lettering_。绣花文字缝制可不是一件简单事儿,它其实就是所谓的缎面绣字,需要做好特殊的文字设置。 + +![Inkscape with a “Chopin” glyph for satin stitching defined for the Lettering function][20] + +你可以将路径转换为缎面绣,但是这种方法比使用文字缝制功能还要繁琐许多。多亏了社区的活跃,2021 年 5 月份发布的 Ink/Stitch 2.0 版本预置了更多的字体。2.0 版本还增加了 _拓展Extensions > Ink/Stitch > 字体管理Font Management_ 功能,让用户更方便地管理这些字体。 + +此外,还有制作字体的功能,但是你需要了解如何使用 Inkscape 设计字体,可在 [此处][21] 浏览相关英文教程。这里只给出大概的介绍:首先创建一个 SVG 字体,接着将其储存在 JSON 文件中,这样便可以在 Ink/Stitch 字体管理功能中使用。 + +![On the left side the Lettering dialogue and on the right the preview of this settings][22] + +该功能将打开一个对话窗口,你可以把文字输进去,调整字体及其大小,然后即可将输入的文字渲染出来。 + +### 绣制区域、路径等对象 + +Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:_拓展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…_,将路径分割成若干部分。 + +虽然 Inkscape 也有 _路径Path > 分离Break apart_ 功能,但是在这种情况下并不可行。 + +接下来,运行 Ink/Stitch 内置模拟器:_拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 模拟器/实际预览Simulator/Realistic Preview_. + +![The new Fedora logo as Stitch Plan Preview][23] + +注意,模拟器运行时需要占用大量的系统资源,而且启动时间也比较长。其实,以下功能操作起来会更加简便:_拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 线迹计划预览Stitch Plan Preview_。该功能会在文件外部对线条进行渲染。 + +![Nicubunu’s Fedora hat icon as embroidery. The angles for the stitches of the head part and the brim are different so that it looks more realistic. The outline is done in Satin stitching][24] + +### 简单的缎面及缎面绣 + +Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字形或简单的缎面。依照预先设置好的描边宽度,沿着路径绣出线迹。只要路径上没有过多的曲线,使用这一方法就没问题。 + +![Parameter setting dialogue and on the right the Fedora logo shape embroidered as Zig-Zag line][25] + +这个方法虽然简单,但绝不是最好的选择。最好的选择是使用缎面工具,该功能可以在 _拓展Extensions > 缎面工具Satin Tools_ 找到。其中,转换功能又是重中之重,它可以将路径转换为缎面笔画。 + +![Fedora logo shape as Satin Line embroidery][26] + +通过 _拓展Extensions > 缎面工具Satin Tools > 旋转缎纹路径Flip Satin Column Rails_,你还可以改变线迹的方向。这样做可以凸显缎面绣的立体感,典型的例子就是泡芙刺绣(一种非常具有立体感的刺绣)。支持这种功能的机器还可以为绣花时产生的多余的连线线迹标记出修剪记号。这些记号正是从 Ink/Stitch 自身符号库里安装得到的符号。 + +### Ink/Stitch 线迹库 + +线迹库包括了 Ink/Stitch 可以创建的线迹类型。在前文,填充式线迹和之字形/缎纹线迹已经介绍过了,不过其他还有很多。 + + * **平针**:平针用于边缘装饰,沿直线或曲线缝制出一排短小的线迹,由此组成的一条条虚线就是平针。虚线的尺寸可大可小。 + + + +![A running stitch – each dashed line will be converted in such one][27] + + * **豆针**:豆针可用于边缘装饰或添加设计细节。使用平针来回缝制就是豆针,这种缝法会增加线迹的厚度。 + + + +![Bean Stitches – creating a thicker line][28] + + * **手工针**:在该模式下,Ink/Stitch 会将路径的每个节点当作穿针点;这些节点也正是针穿入的位置。 + + + +![In manual mode – each node will be the needle penetration point][29] + + * **E 字针**:E 字针是一种简单但十分好用的绷缝线迹,用于贴花织物。这种线迹多用于婴儿装,因为婴儿的皮肤比较敏感。 + + + +![E-Stitch mostly used for applications on baby cloths, soft but strong connection][30] + +### 绣花用线列表 + +有些绣花机,尤其是商用的绣花机,根据设计的需要,可以提前适配不同的针线。必要时,这类机器会自动切换使用合适的针线。有些绣花文件格式支持这一功能,但有些并不支持。Ink/Stitch 可以将用户设置好的线条列表应用到绣花设计中。 + +如果你想在现有的设计上导入线条列表,可执行如下操作:_拓展Extensions > Ink/Stitch > 导入线条列表Import Threadlist_。同样的,线条列表也可以导出:_另存为 zip 文件,打包多种不同的文件格式Save As different file formats as *.zip_。当然,也可以将其打印出来:_拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF_。 + +### 结语 + +为绣花设计编写软件可不是一件简单的事儿,软件需要支持很多功能,还要应对不同文件格式(有些属于闭源文件格式)带来的难题。Ink/Stitch 已经做得很好了,尽力打造出了一款功能多样的绣花工具,让用户能够进行基础的绣花设计。当然,它也不是完美的,有些功能还需要完善。但是,Ink/Stitch 绝对是一款十分优秀的工具,我也希望它能越来越好。绣花是个不错的兴趣爱好,有了 Ink/Stitch,Fedora Linux 用户便可开启天马行空的设计之门。 + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/ + +作者:[Sirko Kemter][a] +选题:[lujun9972][b] +译者:[aREversez](https://github.com/aREversez) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/gnokii/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/08/drawing2-816x345.png +[2]: https://fedoramagazine.org/series/make-more/ +[3]: https://fedoramagazine.org/make-more-with-inkscape-g-code-tools/ +[4]: https://inkstitch.org/ +[5]: https://fedoramagazine.org/3d-printing-in-fedora-from-an-idea-to-the-thing/ +[6]: https://en.wikipedia.org/wiki/Numerical_control +[7]: https://www.amazon.com/-/de/dp/B07VZ2YBLL/ref=sr_1_11?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1MFJJWXMKQD6R&dchild=1&keywords=home+embroidery+machine&qid=1628388092&rnid=2941120011&s=arts-crafts&sprefix=home+embroider+%2Caps%2C-1&sr=1-11 +[8]: https://www.fablabs.io/labs/map +[9]: https://www.embird.net/ +[10]: https://embroidermodder.org/ +[11]: https://fedoramagazine.org/wp-content/uploads/2021/08/inkstitch_logo.png +[12]: https://github.com/Embroidermodder/libembroidery +[13]: https://github.com/inkstitch/pyembroidery +[14]: http://www.needlework.ru/page/embroidery.htm +[15]: http://edutechwiki.unige.ch/en/Embroidery_format +[16]: https://inkscape.org/~wwderw/%E2%98%85inkstitch-embroidery-extension +[17]: https://github.com/inkstitch/inkstitch/releases/tag/v2.0.0 +[18]: https://fedoramagazine.org/wp-content/uploads/2021/08/swatches-1024x556.png +[19]: https://inkstitch.org/assets/images/tutorials/templates/hoop-template.svg +[20]: https://fedoramagazine.org/wp-content/uploads/2021/08/satinfont-1024x556.png +[21]: https://inkstitch.org/tutorials/font-creation/ +[22]: https://fedoramagazine.org/wp-content/uploads/2021/08/lettering-1024x523.png +[23]: https://fedoramagazine.org/wp-content/uploads/2021/08/stitch-preview-1024x556.png +[24]: https://fedoramagazine.org/wp-content/uploads/2021/08/nicu-stitch.gif +[25]: https://fedoramagazine.org/wp-content/uploads/2021/08/zigzag-1024x463.png +[26]: https://fedoramagazine.org/wp-content/uploads/2021/08/satin.png +[27]: https://fedoramagazine.org/wp-content/uploads/2021/08/running-stitch-detail.jpg +[28]: https://fedoramagazine.org/wp-content/uploads/2021/08/bean-stitch-detail.jpg +[29]: https://fedoramagazine.org/wp-content/uploads/2021/08/manual-stitch-detail.png +[30]: https://fedoramagazine.org/wp-content/uploads/2021/08/e-stitch-detail.jpg From 204ad9709a537d3f3c85f591d732d4fc59760647 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 8 Aug 2022 08:27:07 +0800 Subject: [PATCH 0668/3123] translating --- ...How to use LibreOffice Writer templates.md | 101 ----------------- ...How to use LibreOffice Writer templates.md | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 101 deletions(-) delete mode 100644 sources/tech/20220725 How to use LibreOffice Writer templates.md create mode 100644 translated/tech/20220725 How to use LibreOffice Writer templates.md diff --git a/sources/tech/20220725 How to use LibreOffice Writer templates.md b/sources/tech/20220725 How to use LibreOffice Writer templates.md deleted file mode 100644 index d6a1ac176f..0000000000 --- a/sources/tech/20220725 How to use LibreOffice Writer templates.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: subject: "How to use LibreOffice Writer templates" -[#]: via: "https://opensource.com/article/22/7/libreoffice-writer-templates" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to use LibreOffice Writer templates -====== -Get started writing on Linux in a flash by using a LibreOffice template. - -![Typewriter in the grass][1] - -Image by: Original photo by jetheriot. Modified by Rikki Endsley. CC BY-SA 2.0. - -A staple in any office software suite is the word processor. Whether your needs are small or large, from jotting down a note to writing a book, the word processor gets the job done. Most Linux distributions include the [LibreOffice][2] suite, and I use LibreOffice Writer as my word processor. - -LibreOffice Writer provides lots of flexibility through its toolbar, keyboard shortcuts, and menus. But if you just want to start a document without too much hassle, you can use one of the pre-loaded templates. Here's how to use LibreOffice Writer templates to make your work easier. - -### Start a new document - -LibreOffice Writer starts with a blank document. Most folks just begin writing, but this is also the place to create a new document from a template. - -First, open the **File** menu, then select **New** and **Templates**. This option opens the **Templates** selection: - -![Open templates from the File menu][3] - -Image by: - -(Jim Hall, CC BY-SA 4.0) - -The **Templates** selection dialog shows the different templates available on your system. The default LibreOffice Writer installation includes templates for different kinds of business letters, resumes, and other documents. You can browse the list or narrow the results with the filter options at the top of the dialog. - -![Select a template][4] - -Image by: - -(Jim Hall, CC BY-SA 4.0) - -Click on the template you want and click **Open** to start a new Writer document using this template. Some templates include boilerplate text or other sample material you can use to get started in your new document. For example, the **Modern business letter** consists of this "lorem ipsum" sample text: - -![Modern business letter template][5] - -Image by: - -(Jim Hall, CC BY-SA 4.0) - -Other document templates just give you a starting point in an empty document with some nice-looking defaults. For example, the **Modern** document template uses a sans-serif font (such as Carlito on Linux systems) for the text body: - -![Modern template][6] - -Image by: - -(Jim Hall, CC BY-SA 4.0) - -### Download a template - -You can download a suitable document template from LibreOffice's website if you don't find the template you're looking for in the built-in choices. Navigate to [LibreOffice Extensions][7] to start working with the LibreOffice extensions and templates library. - -![Templates and extensions options][8] - -Image by: - -(Jim Hall, CC BY-SA 4.0) - -Enter a search term in the box to find the document template you need. For example, students might search for "APA" to find document templates already set up for APA style, a common style for academic papers. - -![APA format template][9] - -Image by: - -(Jim Hall, CC BY-SA 4.0) - -### Wrap up - -If you need to write a document, explore the LibreOffice templates to find one that works for you. Using templates means you spend less time setting up a document to look a certain way and instead get to work faster. Look for other document templates in the LibreOffice extensions and templates library that support your work. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/libreoffice-writer-templates - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/doc-dish-lead.png -[2]: https://www.libreoffice.org/ -[3]: https://opensource.com/sites/default/files/2022-07/1new-file-template.png -[4]: https://opensource.com/sites/default/files/2022-07/2templates-selection.png -[5]: https://opensource.com/sites/default/files/2022-07/3modern-bus-letter.png -[6]: https://opensource.com/sites/default/files/2022-07/4modern-template.png -[7]: https://templates.libreoffice.org/ -[8]: https://opensource.com/sites/default/files/2022-07/5temps-and-extensions.png -[9]: https://opensource.com/sites/default/files/2022-07/6apa-template.png diff --git a/translated/tech/20220725 How to use LibreOffice Writer templates.md b/translated/tech/20220725 How to use LibreOffice Writer templates.md new file mode 100644 index 0000000000..ca58a612b5 --- /dev/null +++ b/translated/tech/20220725 How to use LibreOffice Writer templates.md @@ -0,0 +1,102 @@ +[#]: subject: "How to use LibreOffice Writer templates" +[#]: via: "https://opensource.com/article/22/7/libreoffice-writer-templates" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何使用 LibreOffice Writer 模板 +====== +使用 LibreOffice 模板快速开始在 Linux 上写作。 + +![Typewriter in the grass][1] + +图片来源:jetheriot 提供原始照片。由 Rikki Endsley 修改。 CC BY-SA 2.0。 + +任何办公软件套件中的主要部件都是文字处理器。无论你的需求是大是小,从记笔记到写书,文字处理器都能完成工作。大多数 Linux 发行版都包含 [LibreOffice][2] 套件,我使用 LibreOffice Writer 作为我的文字处理器。 + +LibreOffice Writer 通过其工具栏、键盘快捷键和菜单提供了很大的灵活性。但是,如果你只是想轻松地开始一个文档,你可以使用其中一个预加载的模板。以下是如何使用 LibreOffice Writer 模板让你的工作更轻松。 + +### 开始一个新文档 + +LibreOffice Writer 从一个空白文档开始。大多数人刚开始写作,但这也是从模板创建新文档的地方。 + +首先,打开**文件**菜单,然后选择**新建**和**模板**。此选项会打开**模板**选项: + +![Open templates from the File menu][3] + +图片来源: + +(Jim Hall,CC BY-SA 4.0) + +**模板**选择对话框显示系统上可用的不同模板。默认的 LibreOffice Writer 安装包括用于不同类型的商务信函、简历和其他文档的模板。你可以使用对话框顶部的过滤器选项浏览列表或缩小结果范围。 + +![Select a template][4] + +图片来源: + +(Jim Hall,CC BY-SA 4.0) + +Click on the template you want and click **Open** to start a new Writer document using this template. Some templates include boilerplate text or other sample material you can use to get started in your new document. For example, the **Modern business letter** consists of this "lorem ipsum" sample text: +单击你想要的模板,然后单击**打开**以使用此模板开始一个新的 Writer 文档。一些模板包括样板文本或其他示例材料,你可以使用这些材料开始编写新文档。例如,**现代商务信函**由以下 “lorem ipsum” 示例文本组成: + +![Modern business letter template][5] + +图片来源: + +(Jim Hall,CC BY-SA 4.0) + +其他文档模板只是为你提供了一个具有一些漂亮默认设置的空文档的起点。例如,**现代**文档模板对文本正文使用无衬线字体(例如 Linux 系统上的 Carlito): + +![Modern template][6] + +图片来源: + +(Jim Hall,CC BY-SA 4.0) + +### 下载模板 + +如果你在内置选项中没有找到所需的模板,你可以从 LibreOffice 的网站下载合适的文档模板。进入 [LibreOffice 扩展][7]以开始使用 LibreOffice 扩展和模板库。 + +![Templates and extensions options][8] + +图片来源: + +(Jim Hall,CC BY-SA 4.0) + +在框中输入搜索词以查找你需要的文档模板。例如,学生可能会搜索 “APA” 来查找已经为 APA 样式设置的文档模板,这是学术论文的常见样式。 + +![APA format template][9] + +图片来源: + +(Jim Hall,CC BY-SA 4.0) + +### 总结 + +如果你需要编写文档,请浏览 LibreOffice 模板以找到适合你的模板。使用模板意味着你可以花费更少的时间来设置文档以使其具有某种外观,并且可以更快地工作。在支持你的工作的 LibreOffice 扩展和模板库中查找其他文档模板。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/libreoffice-writer-templates + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/doc-dish-lead.png +[2]: https://www.libreoffice.org/ +[3]: https://opensource.com/sites/default/files/2022-07/1new-file-template.png +[4]: https://opensource.com/sites/default/files/2022-07/2templates-selection.png +[5]: https://opensource.com/sites/default/files/2022-07/3modern-bus-letter.png +[6]: https://opensource.com/sites/default/files/2022-07/4modern-template.png +[7]: https://templates.libreoffice.org/ +[8]: https://opensource.com/sites/default/files/2022-07/5temps-and-extensions.png +[9]: https://opensource.com/sites/default/files/2022-07/6apa-template.png From 87cfb9e4d6c6c09c472111097aead20a14ebc2e5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 8 Aug 2022 08:29:42 +0800 Subject: [PATCH 0669/3123] translating --- sources/tech/20220804 3 ways to take screenshots on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220804 3 ways to take screenshots on Linux.md b/sources/tech/20220804 3 ways to take screenshots on Linux.md index 8cddcdd757..93a4a48ca3 100644 --- a/sources/tech/20220804 3 ways to take screenshots on Linux.md +++ b/sources/tech/20220804 3 ways to take screenshots on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/screenshots-linux" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3aeda531484fa88b407ad424aec09f8a9003e2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Mon, 8 Aug 2022 09:25:43 +0800 Subject: [PATCH 0670/3123] Translated --- ...y Linux 9 Step by Step with Screenshots.md | 213 ------------------ ...y Linux 9 Step by Step with Screenshots.md | 213 ++++++++++++++++++ 2 files changed, 213 insertions(+), 213 deletions(-) delete mode 100644 sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md create mode 100644 translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md diff --git a/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md deleted file mode 100644 index 543d84038f..0000000000 --- a/sources/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md +++ /dev/null @@ -1,213 +0,0 @@ -[#]: subject: "How to Install Rocky Linux 9 Step by Step with Screenshots" -[#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/" -[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Rocky Linux 9 Step by Step with Screenshots -====== -In this guide, we will cover how to install Rocky Linux 9 step by step with screenshots. - -Rocky Enterprise Software Foundation has released its latest operating system ‘Rocky Linux 9’. Rocky Linux is free and open-source operating system for workstation and servers. It is considered as drop-in replacement for CentOS Linux. - -‘Blue Onyx’ is the Code name for Rocky Linux 9, it is the clone of RHEL 9. The main difference between Rocky Linux and RHEL is that it has its own open-source build system called ‘Peridot’. - -##### New Updates and Features of Rocky Linux 9 - -* Gnome 40 is the default Desktop Environment. -* Support for Direct Access (DAX) operations on XFS file system -* Updated runtime and compilers like GCC 11.2.1, LLVM (13.0.1), Rust (1.58.1), and Go (1.17.1). -* Updated development tool chain like Python 3.9, Node.js 16, Ruby 3.0.3, Perl 5.32 & PHP 8.0 -* By Default, root user authentication disabled over ssh. -* Updated OpenSSL 3.0 and improved cockpit web console. -* Community support till May 31st, 2032. - -##### Prerequisites - -* 2 GB RAM or more -* 2 CPU Core (1.1 GHz Processor or higher) -* 20 GB hard disk space -* Boot Media (USD or DVD) -* Internet Connectivity (Optional) - -Without any delay, let’s jump into Rocky Linux 9 installation steps, - -### 1) Download Rocky Linux 9 ISO File - -Use the following official URL to download ISO file, - -* [Rocky Linux 9 ISO][1] - -Once you have downloaded the iso file, make a bootable media (USB/DVD) using the downloaded iso. - -In Windows, you can use ‘Rufus’ software to make bootable USB drive using ISO file. In Linux, refer the following - -* [How to Create Bootable USB Drive on Ubuntu / Linux Mint][2] - -### 2) Boot System with Bootable Media - -Head to the system on which you are planning to install Rocky Linux 9, reboot it and change the boot medium from hard disk to USB from its bios settings. - -Once the system boots up with bootable media then we will get the following screen, - -![Select-Install-Rocky-Linux-9-option][3] - -Choose the first option, ‘Install Rocky Linux 9.0’ and hit enter. - -### 3) Choose Preferred Language - -Select your preferred language for the installation and then click on Continue, - -![Preferred-Language-for-RockyLinux9-Installation][4] - -### 4) Installation Summary - -In this step, we will get the following initial installation summary. To begin the installation, first we must complete marked items like ‘Installation Destination’ and ‘User settings’. - -Apart from the marked items, we can also change the existing items, just click on them and change it as per your requirement. - -![Initial-Installation-Summary-Rocky-Linux9][5] - -##### Configure Installation Destination - -In this item, we will specify the partition scheme for Rocky Linux. Click on ‘Installation Destination’. - -Here we can choose either automatic or custom option for storage configuration or partition scheme. - -In automatic option, partitions will be created automatically by installer on the disk whereas custom option allows us to create manual partitions on disk. - -![Choose-custom-Storage-Configuration-Rocky-Linux9][6] - -In this guide, I am going with ‘Custom’ option, Click on ‘Done’ - -![Standard-Partition-Scheme-RockyLinux9][7] - -On the 40 GB disk, we will create following partitions, - -* /boot          :  2GB   (xfs file system) -* /                 : 10 GB  (xfs file system) -* /home         : 25 GB (xfs file system) -* Swap           : 2 GB - -To start creating partitions, choose ‘Standard Partition’ scheme and then click on + symbol. - -Create first partition as /boot of size 2 GB, - -![Boot-Partition-RockyLinux9-Installation][8] - -Click on ‘Add mount point’ - -Similarly create next two partitions / and /home of size 10 GB and 25 GB respectively. - -![Slash-Partition-Rocky-Linux9-installation][9] - -![Home-Partition-Rocky-Linux9-Installation][10] - -Now create last partition as swap of size 2GB, - -![Swap-Partition-RockyLinux9-Installation][11] - -Once you are done with manual partitioning, click on Done to finish this item. - -![Finish-Manual-Partitioning-RockyLinux9-Installation][12] - -Choose ‘Accept Changes‘ to write changes to the disk. It will also take back to installation summary screen. - -![Accept-Changes-to-Write-on-Disk-RockyLinux9][13] - -##### Configure User Settings - -Under User Settings, Click on ‘Root Password’. - -![Set-Root-Password-RockyLinux9-Instalation][14] - -Set the root password and then click on Done, - -From ‘User Settings’ again , click on ‘User Creation’, Specify the local user details like username and password. - -![Local-User-Create-During-RockyLinux9-Installation][15] - -Click on ‘Done’, it will take back to installation summary. - -Now, we are ready to initiate the installation, click on ‘Begin Installation’. - -![Begin-Installation-Option-RockyLinux9][16] - -### 5) Installation Started - -In this step, installation got started and is in progress, - -![RockyLinux9-Installation-Progress][17] - -Once the installation is completed, installer will instruct to reboot the system. - -![Reboot-System-after-RockyLinux9-Installation][18] - -Click on ‘Reboot System’. - -Note: Don’t forget to change the boot medium from USB to hard disk from bios settings. - -### 6) Login Screen and Desktop Environment Post Installation - -When the system boots up after the successful installation, we will get following login screen, - -![RockyLinux9-Loginscreen-Post-Installation][19] - -Use the same user’s credentials that we have created during the installation, press enter to login. - -![Desktop-Env-RockyLinux9][20] - -Open the terminal, run following commands one after the another, - -``` -$ sudo dnf install epel-release -y -$ sudo dnf install neofetch -y -``` - -Now, to verify the system details, run neofetch command, - -``` -$ neofetch -``` - -![neofetch-rockylinux9-post-installation][21] - -That’s all from this guide, I hope you found it useful. Kindly do post your queries and feedback in below comments section. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/ - -作者:[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://rockylinux.org/download -[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/ -[3]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Select-Install-Rocky-Linux-9-option.png -[4]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Preferred-Language-for-RockyLinux9-Installation.png -[5]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Initial-Installation-Summary-Rocky-Linux9.png -[6]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Choose-custom-Storage-Configuration-Rocky-Linux9.png -[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Standard-Partition-Scheme-RockyLinux9.png -[8]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Boot-Partition-RockyLinux9-Installation.png -[9]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Slash-Partition-Rocky-Linux9-installation.png -[10]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Home-Partition-Rocky-Linux9-Installation.png -[11]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Swap-Partition-RockyLinux9-Installation.png -[12]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Finish-Manual-Partitioning-RockyLinux9-Installation.png -[13]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Accept-Changes-to-Write-on-Disk-RockyLinux9.png -[14]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Set-Root-Password-RockyLinux9-Instalation.png -[15]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Local-User-Create-During-RockyLinux9-Installation.png -[16]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Begin-Installation-Option-RockyLinux9.png -[17]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Installation-Progress.png -[18]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Reboot-System-after-RockyLinux9-Installation.png -[19]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Loginscreen-Post-Installation.png -[20]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Desktop-Env-RockyLinux9.png -[21]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png diff --git a/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md new file mode 100644 index 0000000000..3d0311e8b3 --- /dev/null +++ b/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md @@ -0,0 +1,213 @@ +[#]: subject: "How to Install Rocky Linux 9 Step by Step with Screenshots" +[#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +图解 Rocky Linux 9 安装步骤 +====== +这篇教程中,我们将图解 Rocky Linux 9 安装步骤。 + +Rocky 企业软件基金会已经发布了它的最新的操作系统 ‘Rocky Linux 9’ 。Rocky Linux 是针对工作站和服务器的自由和开放源文件的操作系统。它被认为是 CentOS Linux 的继承者。 + +‘Blue Onyx’ 是 Rocky Linux 9 的代码名称,它的 RHEL 9 的复制品。Rocky Linux 和 RHEL 之间的主要不同是,它有它自己的开放源文件构建系统,名称为 ‘Peridot’ 。 + +##### Rocky Linux 9 的新的更新和特色功能 + +* Gnome 40 是默认的桌面环境 +* 在 XFS 文件系统上支持直接访问 (DAX) 操作 +* 更新运行时和编译器,像 GCC 11.2.1 、LLVM (13.0.1) 、Rust (1.58.1) 和 Go (1.17.1) +* 更新开发工具链,像 Python 3.9 、Node.js 16 、Ruby 3.0.3 、Perl 5.32 和 PHP 8.0 +* 默认情况下,通过 ssh 禁用 root 用户身份验证 +* 更新 OpenSSL 3.0 和改善 cockpit web console +* 社区支持到 2032 年 05 月 31 日 + +##### 必要条件 + +* 2 GB RAM 或更多 +* 2 个 CPU 核心 (1.1 GHz 处理器或更高) +* 20 GB 硬盘空间 +* 可启动媒介盘 (USD 或 DVD) +* 因特网连接 (可选) + +不再耽误时间,让我们跳入 Rocky Linux 9 的安装步骤 + +### 1) 下载 Rocky Linux 9 的 ISO 文件 + +使用下面的官方网址来下载 ISO 文件 + +* [Rocky Linux 9 ISO][1] + +在你下载 iso 文件后,使用已下载的 ISO 文件制作一个可启动媒介盘 (USB/DVD) + +在 Windows 中,你可以利用 ‘Rufus’ 软件来使用 ISO 文件来制作可启动 USB 驱动器。在 Linux 中,参考下面的内容 + +* [在 Ubuntu / Linux Mint 上,如何创建可启动 USB 驱动器][2] + +### 2) 使用可启动媒介盘启动系统 + +前往你计划安装 Rocky Linux 9 的硬件系统,并在 BIOS 设置中将可启动介质从硬盘驱动器更改为 USB 驱动器, 重新启动它。 + +在硬件系统使用可启动介质启动后,我们将获得下面的屏幕, + +![Select-Install-Rocky-Linux-9-option][3] + +选择第一个选项, 安装 Rocky Linux 9.0Install Rocky Linux 9.0 ,并按下 回车enter 按键 + +### 3) 选择首选语言 + +选择安装过程的首选语言,然后单击 继续Continue 按钮 + +![Preferred-Language-for-RockyLinux9-Installation][4] + +### 4) 安装过程摘要 + +在这个步骤中,我们将获得下面的初始安装摘要。为开始安装,首先,我们必须完成标记项目T,像 安装目标Installation Destination用户设置User settings + +除了已标记的项目外,我们也可以更改现有的项目,只需要按照你的要求单击它们就可以进行更改。 + +![Initial-Installation-Summary-Rocky-Linux9][5] + +##### 配置安装目标 + +在这个项目中,我们将为 Rocky Linux 具体指定分区方案。单击 安装目标Installation Destination + +在这里,我们可以为 存储配置storage configuration分区方案partition scheme 选择 自动automatic 选项或 自定义custom 选项。 + +在自动选项中,安装程序将在磁盘上自动地创建分区,然而,自定义选项将允许我们在磁盘上手动创建分区。 + +![Choose-custom-Storage-Configuration-Rocky-Linux9][6] + +在这篇指南中,我将使用 自定义Custom 选项,单击 执行Done 按钮。 + +![Standard-Partition-Scheme-RockyLinux9][7] + +在该 40 GB 的磁盘上,我们将创建以下分区, + +* /boot          :  2GB   (xfs file system) +* /                 : 10 GB  (xfs file system) +* /home         : 25 GB (xfs file system) +* Swap           : 2 GB + +为开始创建分区,选择 标准分区Standard Partition 方案,然后单击 + 符号。 + +创建第一个分区,大小为 2 GB 的 /boot 分区, + +![Boot-Partition-RockyLinux9-Installation][8] + +单击 添加挂载点Add mount point 按钮。 + +类似地,接下来分别创建大小为 10 GB 的 / 分区和 25 GB 的 /home 分区 + +![Slash-Partition-Rocky-Linux9-installation][9] + +![Home-Partition-Rocky-Linux9-Installation][10] + +现在,创建最后一个分区,大小为 2 GB 的 swap 分区, + +![Swap-Partition-RockyLinux9-Installation][11] + +在你完成手动分区后,单击 执行Done 按钮来完成这个项目。 + +![Finish-Manual-Partitioning-RockyLinux9-Installation][12] + +选择 接受更改Accept Changes 按钮来将这些更改写入磁盘。它也将返回到安装摘要屏幕。 + +![Accept-Changes-to-Write-on-Disk-RockyLinux9][13] + +##### 配置用户设置 + +在用户设置User Settings下,单击 root 密码Root Password 按钮。 + +![Set-Root-Password-RockyLinux9-Instalation][14] + +设置 root 用户的密码,并单击执行Done 按钮, + +再次回到 用户设置User Settings 下,单击 用户创建User Creation 按钮,具体指定本地用户是详细信息,例如用户名称和密码。 + +![Local-User-Create-During-RockyLinux9-Installation][15] + +单击 执行Done 按钮,它也将返回到安装摘要。 + +现在,我们准备开始安装,单击开始安装Begin Installation 按钮, + +![Begin-Installation-Option-RockyLinux9][16] + +### 5) 安装过程开始 + +在这一步骤中,安装程序已经开始了,并在正在进行中, + +![RockyLinux9-Installation-Progress][17] + +在安装过程完成后,安装程序将提示你来重新启动系统。 + +![Reboot-System-after-RockyLinux9-Installation][18] + +单击 重新启动系统Reboot System 按钮, + +注意:不要忘记在 BIOS 设置中将可启动介质从 USB 启动更改为硬盘驱动器启动 + +### 6) 安装后的登录屏幕和桌面环境 + +在成功安装后,当系统启动时,我们将获得下面的登录屏幕, + +![RockyLinux9-Loginscreen-Post-Installation][19] + +使用我们在安装期间创建的用户名称和密码,按下 回车enter 按键来登录。 + +![Desktop-Env-RockyLinux9][20] + +打开终端,依次运行下面的命令, + +``` +$ sudo dnf install epel-release -y +$ sudo dnf install neofetch -y +``` + +现在,来验证系统的详细信息,运行 neofetch 命令, + +``` +$ neofetch +``` + +![neofetch-rockylinux9-post-installation][21] + +这就这篇指南的全部内容,我希望你发现它是有用的。请在下面的评论区贴出你的疑问和反馈。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/ + +作者:[Pradeep Kumar][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://www.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed +[1]: https://rockylinux.org/download +[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/ +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Select-Install-Rocky-Linux-9-option.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Preferred-Language-for-RockyLinux9-Installation.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Initial-Installation-Summary-Rocky-Linux9.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Choose-custom-Storage-Configuration-Rocky-Linux9.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Standard-Partition-Scheme-RockyLinux9.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Boot-Partition-RockyLinux9-Installation.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Slash-Partition-Rocky-Linux9-installation.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Home-Partition-Rocky-Linux9-Installation.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Swap-Partition-RockyLinux9-Installation.png +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Finish-Manual-Partitioning-RockyLinux9-Installation.png +[13]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Accept-Changes-to-Write-on-Disk-RockyLinux9.png +[14]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Set-Root-Password-RockyLinux9-Instalation.png +[15]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Local-User-Create-During-RockyLinux9-Installation.png +[16]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Begin-Installation-Option-RockyLinux9.png +[17]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Installation-Progress.png +[18]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Reboot-System-after-RockyLinux9-Installation.png +[19]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Loginscreen-Post-Installation.png +[20]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Desktop-Env-RockyLinux9.png +[21]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png From bc2bd79cc36f8169d4bf4bae6f151068012366ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Mon, 8 Aug 2022 09:32:07 +0800 Subject: [PATCH 0671/3123] Translating --- sources/tech/20220726 How To Change GRUB Theme In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220726 How To Change GRUB Theme In Linux.md b/sources/tech/20220726 How To Change GRUB Theme In Linux.md index c776737071..1ed6a50c75 100644 --- a/sources/tech/20220726 How To Change GRUB Theme In Linux.md +++ b/sources/tech/20220726 How To Change GRUB Theme In Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/change-grub-theme-in-linux/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7fcfc726ae8249a5f5e4c82880afb8be146f496c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Mon, 8 Aug 2022 09:33:39 +0800 Subject: [PATCH 0672/3123] Translating --- ...7 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md index 6a3c8e3e60..c0d0688386 100644 --- a/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md +++ b/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/upgrade-linux-mint-version/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 007994be8ad8050f5e1de81b90cc98dc1e57ad61 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 8 Aug 2022 15:50:04 +0800 Subject: [PATCH 0673/3123] RP @geekpi https://linux.cn/article-14908-1.html --- ...Update of Firefox snap- Error in Ubuntu.md | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) rename {translated/tech => published}/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md (67%) diff --git a/translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md similarity index 67% rename from translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md rename to published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md index f697251778..8ff9757d64 100644 --- a/translated/tech/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md +++ b/published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md @@ -3,42 +3,44 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14908-1.html" 修复 Ubuntu 中的 “Pending Update of Firefox snap” 错误 ====== -如果你使用的是 Ubuntu 22.04,你可能已收到此通知。 +![](https://img.linux.net.cn/data/attachment/album/202208/08/154842wquoflgffwyyn2cw.jpg) + +如果你使用的是 Ubuntu 22.04,你可能已收到过此通知。 ![Notification about pending Firefox app][1] 它会通知你 Firefox 更新正在等待中,并要求你关闭应用以避免中断。 -因此,就像一个听话的 Ubuntu 用户一样,你在保存或完成工作后关闭 Firefox 浏览器。 +因此,就像一个听话的 Ubuntu 用户一样,你在保存或完成工作后关闭了 Firefox 浏览器。 你认为 Firefox 已在后台更新,重启浏览器将运行较新版本。 -只是,这里不是这样。 +只是,并非如此。 **即使在你重启浏览器甚至计算机后,它仍可能显示相同的 “pending update of Firefox” 通知**。 -令人沮丧么?我可以联系起来。 +令人沮丧么?我可以告诉你发生了什么。 让我解释一下为什么会发生这种情况,以及你可以做些什么来“修复”它。 ### 修复 “pending update of Firefox snap” 问题 -早些时候,Firefox 曾经在后台更新,然后要求你重启浏览器。它不会让你[在重启浏览器之前打开任何网站][2]。 +早些时候,Firefox 曾经在后台更新,然后要求你重启浏览器。在你重启浏览器之前 [不能][2] 打开任何网站。 ![Firefox forced restart in the past][3] -在将 [Firefox 浏览器切换为默认 Snap 打包][4]后,Ubuntu 团队对更新流程进行了一些改动。 +在将 [Firefox 浏览器切换为默认 Snap 包格式][4] 后,Ubuntu 团队对更新流程进行了一些改动。 -此通知是“改进的用户体验”的一部分。在这里,Firefox 不再阻止你浏览。它要求你在方便时重新启动浏览器以进行更新。 +此通知是“改进的用户体验”的一部分。现在,Firefox 不再阻止你浏览。你可以在方便时重新启动浏览器以进行更新。 -但是为什么即使在你重新启动浏览器或系统后它仍然显示通知? +但是为什么即使在你重新启动浏览器或系统后它仍然显示这个通知? 因为这是一条糟糕的通知消息,无法为你提供完整的信息。 @@ -46,13 +48,13 @@ 当你看到 “pending Firefox update” 时,你错误地认为应用已在后台更新,重启会将其升级到较新的版本。 -这就是这里的情况。 Ubuntu 中的 snap 包每天会自动刷新(更新)一次或几次。为了避免在重新启动安装更新之前 Firefox 不允许你浏览任何内容而导致工作中断,Ubuntu 甚至不会在后台更新 Firefox Snap 包。 +而对于现在这种情况,Ubuntu 中的 Snap 包每天会自动刷新(更新)一次或几次。为了避免在重新启动安装更新之前 Firefox 不允许你浏览任何内容而导致工作中断,Ubuntu 甚至不会在后台更新 Firefox Snap 包。 -相反,当 Snap 包刷新时,**它会显示通知并希望你立即关闭浏览器**以便可以使用其他 Snap 包进行更新。 +相反,当 Snap 包刷新时,**它会显示通知并希望你立即关闭浏览器**,以便可以使用其他 Snap 包进行更新。 -但这不是像你我这样的用户能做到的,对吧?看到通知,立即关闭浏览器?不是很方便。 +但像你我这样的用户不能这样做,对吧?看到通知,立即关闭浏览器?并不是很方便。 -但是,当你有时间关闭浏览器时,不会进行 Snap 刷新来更新浏览器。 +而当你有时间关闭浏览器时,Snap 刷新却不会马上更新浏览器。 你可以看到更新的 Snap 版本的 Firefox 可用,但只要 Firefox 正在运行,它就不会自动安装。 @@ -63,7 +65,7 @@ 这是你摆脱每天不断出现的更新通知所需要做的事情。 * 关闭 Firefox 浏览器 -* 手动运行 Snap 刷新(更新已安装的 snap 包) +* 手动运行 Snap 刷新(更新已安装的 Snap 包) 确保你在 Firefox 浏览器中的工作已保存。现在,使用鼠标关闭所有 Firefox 浏览器或在终端中运行以下命令: @@ -81,17 +83,17 @@ sudo snap refresh ![Firefox is being updated with Snap][6] -更新完成后,你将看到 Firefox 已升级到更新版本的摘要。 +更新完成后,你将看到 Firefox 已升级到更新版本的摘要信息。 ![Updated Firefox snap version][7] ### 总结 -安装非 Snap 版本的 Firefox 也可能是解决方案,但不是每个人都可以走这条路。 +安装非 Snap 版本的 Firefox 也可能是个解决方案,但不是每个人都可以走这条路。 Firefox 和 Snap 的开发人员必须齐心协力改进这个模棱两可的更新过程。他们应该提供更好的机制,不仅显示待处理更新的通知,还提供启动更新的选项。 -这是我们最近在 Ubuntu 上看到的许多奇怪的事情之一。这必须改变以使 Ubuntu 成为一个对初学者友好的发行版(再次)。 +这是我们最近在 Ubuntu 上看到的许多奇怪的事情之一。这必须改变才能使 Ubuntu (再次)成为一个对初学者友好的发行版。 -------------------------------------------------------------------------------- @@ -100,7 +102,7 @@ via: https://itsfoss.com/pending-update-firefox-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/) 荣誉推出 From 63de06473d39ee36b0d6066a633413833acf96c8 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Mon, 8 Aug 2022 03:29:53 -0500 Subject: [PATCH 0674/3123] Finished translating. --- ...cal reference to a remote branch in Git.md | 99 ----------------- ...cal reference to a remote branch in Git.md | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 99 deletions(-) delete mode 100644 sources/tech/20220805 Delete the local reference to a remote branch in Git.md create mode 100644 translated/tech/20220805 Delete the local reference to a remote branch in Git.md diff --git a/sources/tech/20220805 Delete the local reference to a remote branch in Git.md b/sources/tech/20220805 Delete the local reference to a remote branch in Git.md deleted file mode 100644 index 97761d700d..0000000000 --- a/sources/tech/20220805 Delete the local reference to a remote branch in Git.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "Delete the local reference to a remote branch in Git" -[#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git" -[#]: author: "Agil Antony https://opensource.com/users/agantony" -[#]: collector: "lkxed" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Delete the local reference to a remote branch in Git -====== -Follow a few simple steps to keep your Git repository tidy. - -![A diagram of a branching process][1] - -Image by: Opensource.com - -After you merge a GitLab or GitHub pull request, you usually delete the topic branch in the remote repository to maintain repository hygiene. However, this action deletes the topic branch only in the remote repository. Your local Git repository also benefits from routine cleanup. - -To synchronize the information in your local repository with the remote repository, you can execute the `git prune` command to delete the local reference to a remote branch in your local repository. - -Follow these three simple steps: - -### 1. Checkout the central branch of your repository (such as main or master) - -``` -$ git checkout -``` - -### 2. List all the remote and local branches - -``` -$ git branch -a -``` - -Example output: - -``` -4.10.z -* master -  remotes/mydata/4.9-stage -  remotes/mydata/4.9.z -  remotes/mydata/test-branch -``` - -In this example, `test-branch` is the name of the topic branch that you deleted in the remote repository. - -### 3. Delete the local reference to the remote branch - -First, list all the branches that you can delete or prune on your local repository: - -``` -$ git remote prune origin --dry-run -``` - -Example output: - -``` -Pruning origin -URL: git@example.com:myorg/mydata-4.10.git -* [would prune] origin/test-branch -``` - -Next, prune the local reference to the remote branch: - -``` -$ git remote prune origin -``` - -Example output: - -``` -Pruning origin -URL: git@example.com:myorg/mydata-4.10.git -* [pruned] origin/test-branch -``` - -That's it! - -### Maintaining your Git repository - -Keeping your Git repository tidy may not seem urgent at first, but the more a repository grows, the more important it becomes to prune unnecessary data. Don't slow yourself down by forcing yourself to sift through data you no longer need. - -Regularly deleting local references to remote branches is a good practice for maintaining a usable Git repository. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-git - -作者:[Agil Antony][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/agantony -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/freesoftwareway_law3.png diff --git a/translated/tech/20220805 Delete the local reference to a remote branch in Git.md b/translated/tech/20220805 Delete the local reference to a remote branch in Git.md new file mode 100644 index 0000000000..3e4428acae --- /dev/null +++ b/translated/tech/20220805 Delete the local reference to a remote branch in Git.md @@ -0,0 +1,102 @@ +[#]: subject: "Delete the local reference to a remote branch in Git" +[#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git" +[#]: author: "Agil Antony https://opensource.com/users/agantony" +[#]: collector: "lkxed" +[#]: translator: "MCGA" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +删除 Git 上远程分支的本地引用 +====== + +遵循几个简单的步骤来保持 Git 仓库的整洁 + +![A diagram of a branching process][1] + +Image by: Opensource.com + +图片来源:Opensource.com + +在合并一个 GibLab 或 GitHub 的 pull request 后,通常需要从远程仓库中删掉这个主题分支来保持仓库的整洁。然而,这只会删掉远程仓库的主题分支。本地 Git 仓库也会从例行清理中收益。 + +要同步本地仓库和远程仓库的信息,可以执行 `git prune` 命令来删除本地仓库中远程分支的本地引用。 + +按照以下三个简单的步骤: + +### 1. 检出仓库中的核心分支(比如 main 或者 master) + +``` +$ git checkout +``` + +### 2. 列出所有远程和本地分支 + +``` +$ git branch -a +``` + +示例输出: + +``` +4.10.z +* master +  remotes/mydata/4.9-stage +  remotes/mydata/4.9.z +  remotes/mydata/test-branch +``` + +在这个例子中,`test-branch` 是从远程仓库中删除的主题分支的名字。 + +### 3. 删除远程分支的本地引用 + +首先,列出所有可以从本地仓库中删除的分支: + +``` +$ git remote prune origin --dry-run +``` + +示例输出: + +``` +Pruning origin +URL: git@example.com:myorg/mydata-4.10.git +* [would prune] origin/test-branch +``` + +然后,删除远程分支的本地引用: + +``` +$ git remote prune origin +``` + +示例输出: + +``` +Pruning origin +URL: git@example.com:myorg/mydata-4.10.git +* [pruned] origin/test-branch +``` + +就是这样! + +### 维护 Git 仓库 + +保持 Git 仓库的整洁,一开始似乎并不紧急,但是随着仓库规模的增长,删除不必要的数据就变得更为重要。不要因为需要从无用的数据中挣脱出来而降低你的节奏。 + +经常删除远程分支的本地引用,对于维护一个可用的 Git 仓库是一个非常好的习惯。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-git + +作者:[Agil Antony][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/agantony +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/freesoftwareway_law3.png From 06eef766c224bb30edaece49652f7cec7b2cf16c Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Mon, 8 Aug 2022 03:38:56 -0500 Subject: [PATCH 0675/3123] Add my ID. --- ...05 Delete the local reference to a remote branch in Git.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20220805 Delete the local reference to a remote branch in Git.md b/translated/tech/20220805 Delete the local reference to a remote branch in Git.md index 3e4428acae..eabe45aa6b 100644 --- a/translated/tech/20220805 Delete the local reference to a remote branch in Git.md +++ b/translated/tech/20220805 Delete the local reference to a remote branch in Git.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/delete-local-reference-remote-branch-git" [#]: author: "Agil Antony https://opensource.com/users/agantony" [#]: collector: "lkxed" -[#]: translator: "MCGA" +[#]: translator: "Yufei-Yan" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -92,7 +92,7 @@ via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-gi 作者:[Agil Antony][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[https://github.com/Yufei-Yan](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0dbabe21117e5dd780aabf8f7fc8f0776ec887a8 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Mon, 8 Aug 2022 17:08:55 +0800 Subject: [PATCH 0676/3123] translated --- ...ning Docker Containers Using Watchtower.md | 180 ----------------- ...ning Docker Containers Using Watchtower.md | 181 ++++++++++++++++++ 2 files changed, 181 insertions(+), 180 deletions(-) delete mode 100644 sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md create mode 100644 translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md diff --git a/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md deleted file mode 100644 index c8c4c0f08c..0000000000 --- a/sources/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md +++ /dev/null @@ -1,180 +0,0 @@ -[#]: subject: "How To Automatically Update Running Docker Containers Using Watchtower" -[#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How To Automatically Update Running Docker Containers Using Watchtower -====== -Automating Docker container base image updates using Watchtower - -Keeping the Docker containers up-to-date is one of the important job of a DevOps engineer. Manually updating Docker containers is a quite time consuming task. This guide explains what is **Watchtower**, how to install Watchtower, and how to **automatically update running Docker containers using Watchtower** in Linux. - -### What Is Watchtower? - -**Watchtower** is a free, open source application that allows you to monitor the running Docker containers and updates them automatically when it finds any changes in their base images. - -When watchtower finds if a running container needs to be updated, it will gracefully stop the running container by sending it a SIGTERM signal. - -It will then download the new image, and finally restart the Container with the same options that were used when it was deployed initially. Everything will be done automatically on the background, so the user intervention is not required. I - -n this guide, we will see how to automatically update running Docker containers using Watchtower in Unix-like operating systems. - -I tested this guide in CentOS and Ubuntu system, however the procedure is same for all Linux distributions. - -### Install Watchtower In Linux - -Watchtower itself is available as a Docker image. So, deploying it is not a big deal. Install Docker on your Linux box, and start running Watchtower to monitor the Docker containers in no time. - -Refer the following guides to install Docker on RPM-based and DEB-based systems. - -* [How To Install Docker In CentOS][1] -* [How To Install Docker In Ubuntu][2] -* [A Beginners Manual To Docker Desktop For Linux][3] - -Once Docker installed, you can deploy the Watchtower container using the following command as **root** user: - -``` -# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -``` - -If you have installed Docker Desktop, run the Watchtower container as normal user. - -``` -$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -``` - -This command will pull the latest image of watchtower, and start watchtower container. - -**Sample output:** - -``` -Unable to find image 'containrrr/watchtower:latest' locally -latest: Pulling from containrrr/watchtower -1045b2f97fda: Pull complete -35a104a262d3: Pull complete -1a0671483169: Pull complete -Digest: sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3 -Status: Downloaded newer image for containrrr/watchtower:latest -91c104ef0e9896e8cd5ff30d9f13e728dbfad66443830ec2ac85dde6d7d37564 -``` - -![Run Watchtower Docker Container][4] - -### Automatically Update Running Docker Containers Using Watchtower - -Watchtower has now started with other running containers on your system. You can view the list of running Docker containers using command: - -``` -$ docker ps -``` - -**Sample output:** - -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower -f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 -``` - -As you see in the above output, Watchtower container is running along with another container named **"ostechnix-wordpress-1"**. From now on, Watchtower will start watching this container every few minutes. - -If it finds any changes in the this container's base image, it will gracefully shutdown the "ostechnix-wordpress-1" container, and restart it with new image with same options that were used when it was started initially. - -Similarly, it will automatically check for updates for all running containers every few minutes, and updates them automatically. - -### How Does Watchtower Update Multiple-linked Containers? - -Watchtower is smart enough when it comes to monitoring multiple linked containers. - -Let us say we are running two containers now. - -``` -$ docker ps -``` - -**Sample output:** - -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower -f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 -a895f082438a bitnami/mariadb:10.6 "/opt/bitnami/script…" 20 minutes ago Up 19 minutes 3306/tcp ostechnix-mariadb-1 -``` - -![View Running Docker Containers][5] - -As you see in the above output, we are running two containers i.e. "ostechnix-wordpress-1" and "ostechnix-mariadb-1". The mariadb container is linked to wordpress container. - -If Watchtower finds an update for "wordpress" container, it will first shutdown the linked container i.e "mariadb", and then stop the wordpress container. - -After updating the wordpress container, Watchtower will restart both containers in correct order with the same options that were used when they were deployed initially, so that the application comes back up correctly. In our case, the mariadb container will be started first, followed by wordpress container to ensure that the link continued to work. - -### Monitor A Specific Container - -By default, Watchtower will monitor all Docker containers running within the Docker daemon to which it is pointed. - -However, you can limit watchtower to monitor a particular Docker container by specifying the container's name as shown below. - -``` -$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1 -``` - -In the above example, watchtower will only monitor the container named "ostechnix-wordpress-1" for updates, and other running containers will be ignored. - -If you don't specify any arguments, then watchtower will monitor all running Docker Containers as usual. - -### Sending Notifications - -You may want to receive a notification whenever the containers are updated. You can send notifications via Email, Slack, MSTeams, and Gotify etc. - -The following example shows how to send notification via Email. I assume you already have setup SMTP server. - -``` -docker run -d \ - --name watchtower \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -e WATCHTOWER_NOTIFICATIONS=email \ - -e WATCHTOWER_NOTIFICATION_EMAIL_FROM=fromaddress@gmail.com \ - -e WATCHTOWER_NOTIFICATION_EMAIL_TO=toaddress@gmail.com \ - -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \ - -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \ - -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=fromaddress@gmail.com \ - -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \ - -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \ - containrrr/watchtower -``` - -For more details, refer the Watchtower GitHub repository and Watchtower official website links provided below. - -**Resources:** - -* [Watchtower GitHub][6] -* [Watchtower Website][7] - -> **Recommended Download** - [Free eBook: "Docker Containerization Cookbook"][8] - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/automatically-update-running-docker-containers/ - -作者:[sk][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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-docker-centos/ -[2]: https://ostechnix.com/install-docker-ubuntu/ -[3]: https://ostechnix.com/docker-desktop-for-linux/ -[4]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Watchtower-Docker-Container.png -[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Docker-Containers.png -[6]: https://github.com/v2tec/watchtower -[7]: https://containrrr.dev/watchtower/ -[8]: https://ostechnix.tradepub.com/free/w_java39/prgm.cgi diff --git a/translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md new file mode 100644 index 0000000000..91d72d7886 --- /dev/null +++ b/translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md @@ -0,0 +1,181 @@ +[#]: subject: "How To Automatically Update Running Docker Containers Using Watchtower" +[#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何使用 Watchtower 自动更新正在运行的 Docker 容器 +====== +使用 Watchtower 自动更新 Docker 容器基础镜像 + +对开发运维人员来说,保持 Docker 容器为最新版本是重要工作之一。手动更新 Docker 容器是一项耗时的工作。这篇文章解释了 **Watchtower** 是什么,如何安装它,以及在 Linux 中如何 **使用 Watchtower 自动更新正在运行的 Docker 容器** 。 + +### Watchtower 是什么? + +**Watchtower** 是一款免费、开源的应用,用来监控运行中的 Docker 容器,并且当它发现基础镜像被更改后,可以自动的更新容器。 + +若 watchtower 发现一个运行中的容器需要更新,它会以发送 SIGTERM 信号的方式,优雅的结束运行中容器的运行。 + +它会下载新镜像,然后以最初部署时使用的方式,重启容器。所有文件会在后台自动下载,因此不需要用户的介入。 + +在这份指南中,我们将会明白如何在类 Unix 系统中使用 Watchtower 自动更新正在运行的 Docker 容器。 + +我已经在 CentOS 和 Ubuntu 中测试了这份指南,所有的 Linux 发行版中操作过程都一样。 + +### 在 Linux 中安装 Watchtower + +可以通过 Docker 镜像的方式下载 Watchtower 。因此,部署它小事一桩。在你的 Linux 中安装 Docker 镜像,然后运行 Watchtower 立即开始监控 Docker 容器。 + +参考下方指导在基于 PRM 和 DEB 包管理系统中安装 Docker + +* [如何在 CentOS 中安装 Docker][1] +* [如何在 Ubuntu 中安装 Docker][2] +* [适用于 Linux 的 Docker 桌面初学者手册][3] + + +安装 Docker 后,你可以使用以下命令以 **root** 用户身份部署 Watchtower 容器: + +``` +# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower +``` + +如果你已经安装了 Docker 桌面版,以普通用户运行 Watchtower 容器。 + +``` +$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower +``` + +该命令会拉取最新版的 watchtower 镜像,并运行 watchtower 容器。 + +**输出样例:** + +``` +Unable to find image 'containrrr/watchtower:latest' locally +latest: Pulling from containrrr/watchtower +1045b2f97fda: Pull complete +35a104a262d3: Pull complete +1a0671483169: Pull complete +Digest: sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3 +Status: Downloaded newer image for containrrr/watchtower:latest +91c104ef0e9896e8cd5ff30d9f13e728dbfad66443830ec2ac85dde6d7d37564 +``` + +![Run Watchtower Docker Container][4] + +### 使用 Watchtower 自动更新 Docker 容器 + +你系统上,Watchtower 正在和其他容器一起运行。你可以使用一下命令查看运行中的 Docker 容器列表: + +``` +$ docker ps +``` + +**输出样例:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower +f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 +``` + +正如上方输出所示,watchtower 容器正在和名为 **"ostechnix-wordpress-1"** 的容器一起运行。从现在开始,watchtower 会每隔几分钟会检查该容器。 + +如果 watchtower 发现该容器的基础镜像的任何变化,它会优雅的关闭 "ostechnix-wordpress-1" 容器,然后使用与最初启动它时使用的相同方式,启动新的镜像。 + +类似的,它会自动地每隔几分钟检查所有的运行中容器,并自动更新它们。 + +### Watchtower 如何更新多连接的容器? + +在监视多连接容器时,Watchtower 十分智能。 + +假设我们现在运行两个容器。 + +``` +$ docker ps +``` + +**输出样例:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +91c104ef0e98 containrrr/watchtower "/watchtower" 14 minutes ago Up 14 minutes 8080/tcp watchtower +f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 +a895f082438a bitnami/mariadb:10.6 "/opt/bitnami/script…" 20 minutes ago Up 19 minutes 3306/tcp ostechnix-mariadb-1 +``` + +![View Running Docker Containers][5] + +正如你看到的,我们正在运行 "ostechnix-wordpress-1" 和 "ostechnix-mariadb-1" 这两个容器。Mariadb 容器链接到 wordpress 容器。 + +如果 Watchtower 发现 "wordpress" 容器有个新版本,它会先关闭与之相连接的 "mariadb" 容器 ,然后才会关闭 "wordpress" 容器。 + +更新 wordpress 容器后,Watchtower 会以正确的顺序,且与最初启动它们时使用的相同方式,重启这两个容器,以便应用程序正确恢复。在我们的例子中,首先启动的是 mariadb 容器,然后是 wordpress 容器,以确保连接能够继续运行。 + +### 监控特定容器 + +默认情况下,Watchtower 将监控在它所指向的 Docker 守护进程中运行的所有 Docker 容器。 + +不过,你可以像下面这样,通过指定容器名称限制 watchtower 监视特定的 Docker 容器。 + +``` +$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1 +``` + +在上方的例子中,watchtower 会忽略其他容器,只监视名为 "ostechnix-wordpress-1" 的容器更新情况。 + +如果你不指定任何参数,watchtower 会照常监视所有运行中的 Docker 容器。 + +### 发送提示 Sending Notifications + +或许你想收到容器更新的通知。你可以通过电子邮件、Slack 、MSTeams 以及 Gotify 发送通知。 + +下面这个例子展示了如何通过电子邮件发送通知。假设你已经设置了 SMTP 服务器。 + +``` +docker run -d \ + --name watchtower \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -e WATCHTOWER_NOTIFICATIONS=email \ + -e WATCHTOWER_NOTIFICATION_EMAIL_FROM=fromaddress@gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_TO=toaddress@gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=fromaddress@gmail.com \ + -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \ + -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \ + containrrr/watchtower +``` + +参考下方 Watchtower Github 仓库和 Watchtower 官方主页获取更多信息: + +**资料** + +* [Watchtower GitHub][6] +* [Watchtower 主页][7] + +> **推荐下载** — [免费电子书: "Docker Containerization Cookbook"][8] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/automatically-update-running-docker-containers/ + +作者:[sk][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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-docker-centos/ +[2]: https://ostechnix.com/install-docker-ubuntu/ +[3]: https://ostechnix.com/docker-desktop-for-linux/ +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Run-Watchtower-Docker-Container.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/View-Running-Docker-Containers.png +[6]: https://github.com/v2tec/watchtower +[7]: https://containrrr.dev/watchtower/ +[8]: https://ostechnix.tradepub.com/free/w_java39/prgm.cgi From d04b5ea25deaea3415d5b01e4dabdb237e78e012 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 8 Aug 2022 17:29:34 +0800 Subject: [PATCH 0677/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @robsean 👍 --- ...y Linux 9 Step by Step with Screenshots.md | 113 +++++++++--------- 1 file changed, 58 insertions(+), 55 deletions(-) diff --git a/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md index 3d0311e8b3..d99569cc8a 100644 --- a/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md +++ b/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md @@ -3,81 +3,84 @@ [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 图解 Rocky Linux 9 安装步骤 ====== -这篇教程中,我们将图解 Rocky Linux 9 安装步骤。 -Rocky 企业软件基金会已经发布了它的最新的操作系统 ‘Rocky Linux 9’ 。Rocky Linux 是针对工作站和服务器的自由和开放源文件的操作系统。它被认为是 CentOS Linux 的继承者。 +![](https://img.linux.net.cn/data/attachment/album/202208/08/172822s7zwhj7wuzzjfm25.jpg) -‘Blue Onyx’ 是 Rocky Linux 9 的代码名称,它的 RHEL 9 的复制品。Rocky Linux 和 RHEL 之间的主要不同是,它有它自己的开放源文件构建系统,名称为 ‘Peridot’ 。 +> 这篇教程中,我们将图解 Rocky Linux 9 安装步骤。 -##### Rocky Linux 9 的新的更新和特色功能 +Rocky 企业软件基金会Rocky Enterprise Software Foundation 已经发布了它的最新的操作系统 “Rocky Linux 9”。Rocky Linux 是针对工作站和服务器的自由而开源的操作系统。它被认为是 CentOS Linux 的继承者。 + +Rocky Linux 9 是 RHEL 9 的复制品,其开发代号是“Blue Onyx”。Rocky Linux 和 RHEL 之间的主要不同是,它有它自己的名为 “Peridot” 的开源构建系统。 + +### Rocky Linux 9 的更新和特色 * Gnome 40 是默认的桌面环境 -* 在 XFS 文件系统上支持直接访问 (DAX) 操作 -* 更新运行时和编译器,像 GCC 11.2.1 、LLVM (13.0.1) 、Rust (1.58.1) 和 Go (1.17.1) -* 更新开发工具链,像 Python 3.9 、Node.js 16 、Ruby 3.0.3 、Perl 5.32 和 PHP 8.0 -* 默认情况下,通过 ssh 禁用 root 用户身份验证 -* 更新 OpenSSL 3.0 和改善 cockpit web console -* 社区支持到 2032 年 05 月 31 日 +* 在 XFS 文件系统上支持直接访问Direct Access(DAX)操作 +* 更新了运行时和编译器,如 GCC 11.2.1 、LLVM 13.0.1 、Rust 1.58.1 和 Go 1.17.1 +* 更新了开发工具链,如 Python 3.9 、Node.js 16 、Ruby 3.0.3 、Perl 5.32 和 PHP 8.0 +* ssh 默认禁用了 root 用户身份验证 +* 更新了 OpenSSL 3.0,改进了 Cockpit 网页主控台 +* 社区提供支持到 2032 年 05 月 31 日 -##### 必要条件 +### 前置条件 -* 2 GB RAM 或更多 -* 2 个 CPU 核心 (1.1 GHz 处理器或更高) +* 2 GB 及更多的内存 +* 2 个 CPU 核心(1.1 GHz 及更高) * 20 GB 硬盘空间 -* 可启动媒介盘 (USD 或 DVD) -* 因特网连接 (可选) +* 可启动介质(USD 或 DVD) +* 互联网连接(可选) -不再耽误时间,让我们跳入 Rocky Linux 9 的安装步骤 +不再耽误时间,让我们直接进入 Rocky Linux 9 的安装步骤: -### 1) 下载 Rocky Linux 9 的 ISO 文件 +### 1、下载 Rocky Linux 9 的 ISO 文件 使用下面的官方网址来下载 ISO 文件 -* [Rocky Linux 9 ISO][1] +> **[Rocky Linux 9 ISO][1]** -在你下载 iso 文件后,使用已下载的 ISO 文件制作一个可启动媒介盘 (USB/DVD) +在你下载 ISO 文件后,使用已下载的 ISO 文件制作一个可启动介质(USB/DVD)。 -在 Windows 中,你可以利用 ‘Rufus’ 软件来使用 ISO 文件来制作可启动 USB 驱动器。在 Linux 中,参考下面的内容 +在 Windows 中,你可以利用 Rufus 软件来使用 ISO 文件来制作可启动 USB 驱动器。在 Linux 中,参考下面的内容: -* [在 Ubuntu / Linux Mint 上,如何创建可启动 USB 驱动器][2] +> **[在 Ubuntu / Linux Mint 上,如何创建可启动 USB 驱动器][2]** -### 2) 使用可启动媒介盘启动系统 +### 2、使用可启动媒介盘启动系统 -前往你计划安装 Rocky Linux 9 的硬件系统,并在 BIOS 设置中将可启动介质从硬盘驱动器更改为 USB 驱动器, 重新启动它。 +在你计划安装 Rocky Linux 9 的硬件系统上,BIOS 设置中将可启动介质从硬盘驱动器更改为 USB 驱动器, 重新启动它。 -在硬件系统使用可启动介质启动后,我们将获得下面的屏幕, +在硬件系统使用可启动介质启动后,我们将看到下面的屏幕, ![Select-Install-Rocky-Linux-9-option][3] -选择第一个选项, 安装 Rocky Linux 9.0Install Rocky Linux 9.0 ,并按下 回车enter 按键 +选择第一个选项, 安装 Rocky Linux 9.0Install Rocky Linux 9.0 ,并按下 回车enter 按键。 -### 3) 选择首选语言 +### 3、选择首选语言 -选择安装过程的首选语言,然后单击 继续Continue 按钮 +选择**安装过程**的首选语言,然后单击 继续Continue 按钮, ![Preferred-Language-for-RockyLinux9-Installation][4] -### 4) 安装过程摘要 +### 4、安装过程摘要 -在这个步骤中,我们将获得下面的初始安装摘要。为开始安装,首先,我们必须完成标记项目T,像 安装目标Installation Destination用户设置User settings +在这个步骤中,我们将看到如下的初始安装摘要。要开始安装,首先,我们必须完成标记项目,如 安装目标Installation Destination用户设置User settings。 除了已标记的项目外,我们也可以更改现有的项目,只需要按照你的要求单击它们就可以进行更改。 ![Initial-Installation-Summary-Rocky-Linux9][5] -##### 配置安装目标 +#### 配置安装目标 -在这个项目中,我们将为 Rocky Linux 具体指定分区方案。单击 安装目标Installation Destination +在这个项目中,我们将为 Rocky Linux 具体指定分区方案。单击 安装目标Installation Destination。 在这里,我们可以为 存储配置storage configuration分区方案partition scheme 选择 自动automatic 选项或 自定义custom 选项。 -在自动选项中,安装程序将在磁盘上自动地创建分区,然而,自定义选项将允许我们在磁盘上手动创建分区。 +在自动选项中,安装程序将在磁盘上自动地创建分区,而自定义选项允许我们在磁盘上手动创建分区。 ![Choose-custom-Storage-Configuration-Rocky-Linux9][6] @@ -87,26 +90,26 @@ Rocky 企业软件基金会已经发布了它的最新的操作系统 ‘Rocky L 在该 40 GB 的磁盘上,我们将创建以下分区, -* /boot          :  2GB   (xfs file system) -* /                 : 10 GB  (xfs file system) -* /home         : 25 GB (xfs file system) -* Swap           : 2 GB +* `/boot`:2GB(xfs 文件系统) +* `/`:10 GB(xfs 文件系统) +* `/home`:25 GB(xfs 文件系统) +* 交换分区:2 GB -为开始创建分区,选择 标准分区Standard Partition 方案,然后单击 + 符号。 +开始创建分区,选择 标准分区Standard Partition 方案,然后单击 “+” 符号。 -创建第一个分区,大小为 2 GB 的 /boot 分区, +创建第一个分区,大小为 2 GB 的 `/boot` 分区, ![Boot-Partition-RockyLinux9-Installation][8] 单击 添加挂载点Add mount point 按钮。 -类似地,接下来分别创建大小为 10 GB 的 / 分区和 25 GB 的 /home 分区 +类似地,接下来分别创建大小为 10 GB 的 `/` 分区和 25 GB 的 `/home` 分区。 ![Slash-Partition-Rocky-Linux9-installation][9] ![Home-Partition-Rocky-Linux9-Installation][10] -现在,创建最后一个分区,大小为 2 GB 的 swap 分区, +现在,创建最后一个分区,大小为 2 GB 的交换分区,(LCTT 校注:如果你的内存非常多,你可以选择不创建交换分区。另外,对于生产环境,建议将存储数据的目录单独划分分区。) ![Swap-Partition-RockyLinux9-Installation][11] @@ -118,15 +121,15 @@ Rocky 企业软件基金会已经发布了它的最新的操作系统 ‘Rocky L ![Accept-Changes-to-Write-on-Disk-RockyLinux9][13] -##### 配置用户设置 +#### 配置用户设置 -在用户设置User Settings下,单击 root 密码Root Password 按钮。 +在 用户设置User Settings 下,单击 root 密码 Root Password 按钮。 ![Set-Root-Password-RockyLinux9-Instalation][14] -设置 root 用户的密码,并单击执行Done 按钮, +设置 root 用户的密码,并单击 执行Done 按钮。 -再次回到 用户设置User Settings 下,单击 用户创建User Creation 按钮,具体指定本地用户是详细信息,例如用户名称和密码。 +再次回到 用户设置User Settings 下,单击 用户创建User Creation 按钮,具体指定本地用户的详细信息,例如用户名称和密码。 ![Local-User-Create-During-RockyLinux9-Installation][15] @@ -136,23 +139,23 @@ Rocky 企业软件基金会已经发布了它的最新的操作系统 ‘Rocky L ![Begin-Installation-Option-RockyLinux9][16] -### 5) 安装过程开始 +### 5、安装过程开始 在这一步骤中,安装程序已经开始了,并在正在进行中, ![RockyLinux9-Installation-Progress][17] -在安装过程完成后,安装程序将提示你来重新启动系统。 +在安装过程完成后,安装程序将提示你重新启动系统。 ![Reboot-System-after-RockyLinux9-Installation][18] -单击 重新启动系统Reboot System 按钮, +单击 重新启动系统Reboot System 按钮。 -注意:不要忘记在 BIOS 设置中将可启动介质从 USB 启动更改为硬盘驱动器启动 +注意:不要忘记在 BIOS 设置中将可启动介质从 USB 启动更改为硬盘驱动器启动。 -### 6) 安装后的登录屏幕和桌面环境 +### 6、安装后的登录屏幕和桌面环境 -在成功安装后,当系统启动时,我们将获得下面的登录屏幕, +在成功安装后,当系统启动时,我们将看到下面的登录屏幕: ![RockyLinux9-Loginscreen-Post-Installation][19] @@ -160,14 +163,14 @@ Rocky 企业软件基金会已经发布了它的最新的操作系统 ‘Rocky L ![Desktop-Env-RockyLinux9][20] -打开终端,依次运行下面的命令, +打开终端,依次运行下面的命令: ``` $ sudo dnf install epel-release -y $ sudo dnf install neofetch -y ``` -现在,来验证系统的详细信息,运行 neofetch 命令, +现在,来验证系统的详细信息,运行 `neofetch` 命令: ``` $ neofetch @@ -175,7 +178,7 @@ $ neofetch ![neofetch-rockylinux9-post-installation][21] -这就这篇指南的全部内容,我希望你发现它是有用的。请在下面的评论区贴出你的疑问和反馈。 +这就是这篇指南的全部内容,我希望它对你有用。请在下面的评论区贴出你的疑问和反馈。 -------------------------------------------------------------------------------- @@ -184,7 +187,7 @@ via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 65251dc5dee00cb0bc9605e467146071e17e393e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 8 Aug 2022 17:30:42 +0800 Subject: [PATCH 0678/3123] RP @robsean https://linux.cn/article-14909-1.html --- ... to Install Rocky Linux 9 Step by Step with Screenshots.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md (99%) diff --git a/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md similarity index 99% rename from translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md rename to published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md index d99569cc8a..077a9f1326 100644 --- a/translated/tech/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md +++ b/published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "robsean" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14909-1.html" 图解 Rocky Linux 9 安装步骤 ====== From 399941de6c1b995de68d21eddd6ec3438c7f9d86 Mon Sep 17 00:00:00 2001 From: hanszhao80 <155320754@qq.com> Date: Mon, 8 Aug 2022 17:48:09 +0800 Subject: [PATCH 0679/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][tech]20210809=20What=20is=20Firefox=20Multi-Account=20Contain?= =?UTF-8?q?ers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...count Containers- Why and How to Use It.md | 130 ------------------ ...count Containers- Why and How to Use It.md | 127 +++++++++++++++++ 2 files changed, 127 insertions(+), 130 deletions(-) delete mode 100644 sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md create mode 100644 translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md diff --git a/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md b/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md deleted file mode 100644 index 38c4bdf10b..0000000000 --- a/sources/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md +++ /dev/null @@ -1,130 +0,0 @@ -[#]: subject: "What is Firefox Multi-Account Containers? Why and How to Use It?" -[#]: via: "https://itsfoss.com/firefox-containers/" -[#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/" -[#]: collector: "lujun9972" -[#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What is Firefox Multi-Account Containers? Why and How to Use It? -====== - -As the needs of users who use various programs on their devices becomes increasingly complex, the programs themselves are also needing to follow suit to keep up with the demand that users are wanting and expecting. - -Something that I find I need on a daily basis is an easy way to be able to stay logged in to multiple accounts inside my web browser at the same time. I _could_ just log in and out of each of my accounts as needed, but this becomes extremely tedious when I’m moving across multiple accounts in a short period of time. - -Originally, I was using Google Chrome’s ability to have multiple accounts, which worked, but was a tad too tedious to manage, and it felt a bit clunky to create an entire new Google account just to do what I considered something that should be able to be done from a _single_ account. - -This is the point where I moved to Firefox’s Multi-Account Containers feature. Not only is it so much more flexible than my setup on Google Chrome, but I am also using something that is created by my browser’s developers themselves, making for an overall smoother and simpler experience. - -![Illustration of containers in Firefox][1] - -### What is Multi-Account Container in Firefox? - -Mutli-Account Containers also works tremendously well if you want to separate parts of your digital life from each other. When you are using containers, your browsing activity from one container is not shared with other containers. This isolation means that you can log into two separate accounts on the same website in different containers. Your login session, site preference and tracking data will be confined to the container where you used a certain website. - -What other advantage does it have? Imagine you were shopping on Amazon or some other e-commerce. You browsed a few items but did not buy anything. Now if you browse the web, you’ll see ads related to products you browsed. Some websites show ads despite ad-blockers. With containers, you can separate your shopping websites with other websites. - -Let me share another example with you. Firefox provides a Facebook container by default. This container includes Facebook, Messenger and Instagram websites by default. This means when you open any of these three websites, they are opened in ‘Facebook container’. Thus, Facebook won’t be able to track your activity on other websites. - -This is one of the [Firefox features that not many people know or use][2]. - -### Using Multi-Account Containers - -Installing Firefox Multi-Account containers is an extremely simple process, and only takes a few clicks. - -First, head over to the [extension’s page][3] on the Firefox Add-ons website. The only thing you need to do after that is click the `Add to Firefox` button. - -![][4] - -And you’re done! Now we can get straight into actually using the new extension. - -If you didn’t notice already, there should now be a new icon to the right of your search bar: - -![][5] - -This is the icon that you’ll use to interact with Firefox Multi-Account containers. If you then click the icon, you’ll be greeted with a little menu: - -![][6] - -With that, let’s try some examples out so we can see how Multi-Account Containers actually works. - -#### Setting up the container - -First off, we need to make a container. We can do this by going to `Manage Containers -> New Container` in the Multi-Account Containers menu. - -![][7] - -![][8] - -Next, enter the name for the new container, and select a color and icon. Then, hit `OK` to save the new container. - -![][9] - -And that’s it! We can now go back to the main menu to open a new tab inside the new container: - -![][10] - -You will also notice that the new tab has some styling to denote that it’s running inside of a container: - -![][11] - -#### Watching the container work in action - -Let’s now look at what the container actually does when you use it. - -We’re going to go to the Linode manager website in a normal browser tab, where I’m currently signed in: - -![][12] - -Let’s now try opening the same page inside our Firefox container, at which point I’m redirected to the Linode login screen: - -![][13] - -Why was I redirected? Because now I am not logged in. That’s one of the joys of Firefox containers: be able to be signed in inside of one browser session, and then enter a container, and it’s like you’ve never visited the site before. - -If you were to sign in to a website within the container however, you would stay signed in while vising websites from the container. You could also use this feature to sign in to a website from inside the container, thus keeping all the data from that site away from your normal browser data. - -Note - -Things like your browser history itself will still be exposed to your normal browser session. The container feature simply provides a way to separate things like signed-in accounts as mentioned in this article. - -### Wrapping Up - -Mutli-Account Containers prove to be a wonderful feature for those who are conscious about their privacy, or just want to really try to get stringent on the security of their systems. - -For example, you could sign in to your Google account inside of a container, and Google would never know who you whenever you aren’t inside the container. - -And then lastly, this extension is just a great choice for people who want to sign into to multiple accounts at once, without resorting to making separate browser accounts for each thing you want to use. - -And there you go, that’s the premise of Firefox’s Multi-Account Containers. - -Need any help getting everything going, or just got a general question? Feel free to leave any of it in the comments below. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/firefox-containers/ - -作者:[Hunter Wittenborn][a] -选题:[lujun9972][b] -译者:[hanszhao80](https://github.com/hanszhao80) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/hunter/ -[b]: https://github.com/lujun9972 -[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/Firefox-container.png?resize=800%2C450&ssl=1 -[2]: https://itsfoss.com/firefox-useful-features/ -[3]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search -[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-install-page.png?resize=800%2C366&ssl=1 -[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-searchbar-icon-1.png?resize=800%2C48&ssl=1 -[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-main-menu.png?resize=302%2C474&ssl=1 -[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-manage-containers-1.png?resize=291%2C402&ssl=1 -[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container.png?resize=290%2C399&ssl=1 -[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-itsfoss.png?resize=292%2C401&ssl=1 -[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-opening-new-container.png?resize=290%2C398&ssl=1 -[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-styling.png?resize=800%2C370&ssl=1 -[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode.png?resize=800%2C114&ssl=1 -[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode-login.png?resize=800%2C405&ssl=1 diff --git a/translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md b/translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md new file mode 100644 index 0000000000..081ce8e41f --- /dev/null +++ b/translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md @@ -0,0 +1,127 @@ +[#]: subject: "What is Firefox Multi-Account Containers? Why and How to Use It?" +[#]: via: "https://itsfoss.com/firefox-containers/" +[#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/" +[#]: collector: "lujun9972" +[#]: translator: "hanszhao80" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +浅议 Firefox 多账户容器 +====== + +随着在设备上使用各种程序的用户的需求变得越来越复杂,程序本身也需要跟上用户的现实需求和未来期望。 + +我发现我每天都需要的东西是用一个简便的方法在网页浏览器保持登录多个账号。我 _可以_ 根据需要对我的每个账号进行登录和注销操作,但在短时间内切换多个账号时,这变得非常乏味。 + +最初,我使用谷歌浏览器,它拥有管理多个帐户的能力。这很有效,但管理起来略显繁琐,而且明明只需 _一个_ 账号就能搞定的事却要创建一个新的谷歌账号来完成,这显得有点儿笨拙。 + +这是我转而使用 Firefox 多账户容器Multi-Account Containers 功能的原因。它不仅比我在谷歌 Chrome 浏览器上的设置灵活得多,而且我还使用了由我的浏览器开发者自己创建的工具,从而在整体上获得了更流畅和更简单的体验。 + +![Firefox 中的容器图示][1] + +### Firefox 中的多帐户容器是什么? + +如果你想将数字生活的各个部分彼此分开,多账户容器也非常有效。当你使用容器时,你在一个容器中的浏览活动不会与其他容器共享。这种隔离意味着你可以在不同容器中登录同一网站上的两个不同帐户。你的登录会话、网站偏好和跟踪数据将被限制在你使用某个网站的容器中。 + +它还有什么其他优势?想象一下,你在亚马逊或其他电子商务网站上购物。你浏览了一些商品,但没有购买任何东西。现在,如果你浏览网络,你会看到与你浏览的产品相关的广告。尽管有广告拦截器,一些网站仍会显示广告。使用容器,你可以将你的购物网站与其他网站分开。 + +再给大家分享一个例子。Firefox 默认提供一个 Facebook 容器。默认情况下,此容器包括 Facebook、Messenger 和 Instagram 网站。这意味着当你打开这三个网站中的任何一个时,它们都只会在“Facebook 容器”中打开。因此,Facebook 将无法跟踪你在其他网站上的活动。 + +这是 [很少有人知道或使用的 Firefox 功能][2] 之一。 + +### 使用多账户容器 + +安装 Firefox 多账户容器是一个非常简单的过程,只需点击几下。 + +首先,前往 Firefox 附加组件网站上的 [扩展程序页面][3]。之后你唯一需要做的就是单击 `添加到 Firefox` 按钮。 + +![][4] + +安装完成!现在我们可以实际使用一下这个新的扩展。 + +可能你还没有注意到,你的搜索栏右侧应该会出现一个新图标: + +![][5] + +这是你将用于与 Firefox 多帐户容器交互的图标。如果你单击该图标,你将看到一个小菜单: + +![][6] + +让我们使用这个扩展尝试一些例子,看看多账户容器是如何工作的。 + +#### 设置容器 + +首先,我们需要生成一个容器。点击多账户容器菜单中的 `管理容器Manage Containers,然后点击 新建容器New Container。 + +![][7] + +![][8] + +接着输入新容器的名称,选择颜色和图标。然后,点击 `OK` 保存新容器。 + +![][9] + +大功告成!我们现在可以返回主菜单在新容器中打开一个新选项卡: + +![][10] + +你还会注意到新选项卡有一些样式,表示它正在容器内运行: + +![][11] + +#### 观察容器工作 + +现在让我们看看容器在使用时实际做了什么。 + +我们将在一个普通的浏览器选项卡中访问 Linode 管理网站,我已经在其中登录: + +![][12] + +现在让我们尝试在 Firefox 容器中打开相同的页面,此时我被重定向到 Linode 登录页面: + +![][13] + +为什么我被重定向了?因为现在我没有登录。这就是 Firefox 容器的乐趣之一:在一个浏览器会话中登录后,再进入一个容器,就好像你以前从未访问过该站点一样。 + +如果你在容器内完成对某个网站的登录,你从容器中访问该网站时将会保持登录状态。你还可以使用此功能从容器内登录网站,从而使该网站的所有数据远离你的正常浏览器数据。 + +注意:你的浏览器历史记录本身之类的内容仍会暴露给你的正常浏览器会话。容器功能只是提供了一种方法来分离本文中提到的登录帐户等内容。 + +### 总结 + +对于那些在乎自己的隐私,或者只是想真正尝试对其系统的安全性进行严格控制的人来说,多账户容器被证明是一个很棒的功能。 + +例如,你可以在容器内登录你的 Google 帐户,Google 永远不会知悉你在容器外的信息。 +个帐户的人来说,此扩展程序是一个不错的选择。有了它无需为你要使用的每样东西创建单独的浏览器帐户。 + +好了,这就是 Firefox 的多帐户容器的基本知识。 + +需要任何帮助,或者只是有一个一般的问题?请随时在评论区指出。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/firefox-containers/ + +作者:[Hunter Wittenborn][a] +选题:[lujun9972][b] +译者:[hanszhao80](https://github.com/hanszhao80) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/hunter/ +[b]: https://github.com/lujun9972 +[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/Firefox-container.png?resize=800%2C450&ssl=1 +[2]: https://itsfoss.com/firefox-useful-features/ +[3]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search +[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-install-page.png?resize=800%2C366&ssl=1 +[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-searchbar-icon-1.png?resize=800%2C48&ssl=1 +[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-main-menu.png?resize=302%2C474&ssl=1 +[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-manage-containers-1.png?resize=291%2C402&ssl=1 +[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container.png?resize=290%2C399&ssl=1 +[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-itsfoss.png?resize=292%2C401&ssl=1 +[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-opening-new-container.png?resize=290%2C398&ssl=1 +[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-new-container-styling.png?resize=800%2C370&ssl=1 +[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode.png?resize=800%2C114&ssl=1 +[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/firefox-containers-linode-login.png?resize=800%2C405&ssl=1 From 16d70f6ead6be2d0ded1c0c9ff61a64000a0d0e2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 8 Aug 2022 20:41:40 +0800 Subject: [PATCH 0680/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220807=20List=20Files=20and=20Directories=20in=20S?= =?UTF-8?q?tyle=20Using=20lsd=20and=20exa.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Directories in Style Using lsd and exa.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md diff --git a/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md b/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md new file mode 100644 index 0000000000..3c9bca92ed --- /dev/null +++ b/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md @@ -0,0 +1,157 @@ +[#]: subject: "List Files and Directories in Style Using lsd and exa" +[#]: via: "https://www.debugpoint.com/list-files-directories-style/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +List Files and Directories in Style Using lsd and exa +====== +Reimagine and style your file and directories list using two ls utilities – lsd and exa. + +![][0] + +The ls command in Linux is the most used command. This command lists files and directories in the terminal. So, as you can see, it’s pretty popular and perhaps used by everyone. + +But the command outputs a large set of information, and it’s sometimes easier to view them colourfully. + +For example, if you run the ls command in the most basic way, it should look somewhat like this. + +![The default list files and directories view via ls command][1] + +It seems a little bland, isn’t it? What if you can style it a bit so that it becomes more readable while looking nice? + +### List Files and Directories in Style + +#### lsd + +The first application I want to show you is called “lsd” aka “LSDeluxe”. It’s a rewrite of the GNU `ls` command with additional features such as column heading, colours for various items, font and icon support. + +Here’s how it looks after installation. + +``` +lsd -l --header +``` + +![lsd command showing list of files][2] + +As you can see, it looks stunning with different colour codes for permission, file types, and folders and even adds icons beside a file name. + +The application is full of features such as tree view (see below) which even gives you a list of files inside a folder as well in a single command. + +``` +lsd -l --header --tree +``` + +![lsd command showing a tree view][3] + +You can learn more about its feature on the [official GitHub page][4]. + +I’m sure you are excited. Let’s see how you can install it. + +You can download the deb file from here for Ubuntu and related distribution. And after that, simply run dpkg to install. + +``` +sudo dpkg -i lsd_vvvv_amd64.deb +``` + +For Fedora Linux, use the following command. + +``` +sudo dnf install lsd +``` + +And Arch Linux users can get it using the below command. + +``` +pacman -S lsd +``` + +The application is also available for other distros, macOS, BSD and Windows. For those instructions, you can [find them here][5]. + +For a better experience, use it with the [Zsh shell with Oh My Zsh][6] program. + +#### exa + +The next program is `exa`, similar to `lsd` but with more features. The `exa` command can colourize your ls output, detect various file types in Unix systems, headings, tree view and many more features. + +Exa is a single binary and has a small resource footprint. Here’s how it looks with some sample commands. + +``` +exa -al +``` + +``` +exa -abghHliS +``` + +``` +exa -abghHliS --long --tree +``` + +![Various exa commands][7] + +You can learn more about exa parameters and switches on [GitHub][8]. + +Installation of exa is easy and requires just one command. For Ubuntu and related distributions, you can install it using the below command. + +``` +sudo apt install exa +``` + +For Fedora and Arch Linux, use the following commands, respectively. + +``` +sudo dnf install exa +``` + +``` +pacman -S exa +``` + +Likewise, all other installation instructions for various OSes can be [found here][9]. + +### Copying from the terminal as HTML + +One of the interesting tips is that all the above colourful lists can be copied as HTML via the default Ubuntu terminal. And you can use it for your web pages or documents. + +For example, I copied a sample from the above to a LibreOffice Writer document. + +It’s one of the best features, although it depends on the terminal program and NOT the above utilities. + +![Exporting the command output as HTML][10] + +### Wrapping Up + +I explained the inner workings of two programs – ls and exa to list files and directories in style. I hope you get to use them for different needs. + +Do let me know in the comment box if you like them, Or if you know any such utility. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/list-files-directories-style/ + +作者:[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 +[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/cool-ls.jpg +[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/The-default-list-files-and-directories-view-via-ls-command.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-list-of-files-2.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-a-tree-view.jpg +[4]: https://github.com/Peltoche/lsd +[5]: https://github.com/Peltoche/lsd#installation +[6]: https://www.debugpoint.com/install-use-zsh/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Various-exa-commands.jpg +[8]: https://github.com/ogham/exa#command-line-options +[9]: https://github.com/ogham/exa#installation +[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/Exporting-the-command-output-as-HTML.jpg From f26203bcd38a290882e46257151178fb2aacd59d Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 8 Aug 2022 20:45:44 +0800 Subject: [PATCH 0681/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220808=20Sunamu-=20Display=20Lyrics=20for=20Curren?= =?UTF-8?q?tly=20Playing=20Music=20on=20the=20Desktop=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y Playing Music on the Desktop in Linux.md | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md diff --git a/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md new file mode 100644 index 0000000000..975ba657ca --- /dev/null +++ b/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md @@ -0,0 +1,141 @@ +[#]: subject: "Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux" +[#]: via: "https://itsfoss.com/sunamu-music-widget/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux +====== + +Being an eye candy **music widget** (or controller). + +That’s the only focus of Sunamu, and it does its job pretty well. + +Sunamu is an intriguing tool. It is not a music player but lets you display the music you’re playing and control it. + +I’m not a fan of having a floating widget on my primary workspace, but Sunamu’s minimal yet elegant approach changed my mind! + +So, I will walk you through its features, installation, configuration tweaks, and my experience with it. + +### Sunamu: An Open-Source Music Controller + +![playing music with sunamu][1] + +As you can notice in the screenshot above, it looks like a pretty nice way to display the music being played, with the lyrics, while having the basic controls. + +You can play/pause, go to the next/previous track, shuffle, and enable a loop. + +Sunamu supports a wide range of audio platforms, including Spotify. It also detects music from your local collection, supporting some of the [best music players][2] available for Linux. + +Additionally, it supports Windows. So, if you are streaming something through the Microsoft Edge browser on Windows, it should work well. + +You can check the [compatibility list][3] on its GitHub page to learn more about the supported players and browsers. + +Fortunately, you do not have to be limited by what it offers by default. It provides an easy way to tweak the config file (learn more about it on its [GitHub page][4]). This makes it possible for newbies to tweak some settings and have fun. + +I’ll mention a few tips about it in the later section of this article. + +### Features of Sunamu + +![Sunamu on empty workspace][5] + +Sunamu comes with a set of promising features, and some of them are: + +* Detects and display the song that is currently playing. +* Fetch color schemes from the album art and use the same color palette for better visuals. +* Customizable through its config file. +* Integrates well with Discord. +* Consumes minimal system resources. + +### Install Sunamu on Linux + +![Disable lyrics in sunamu][6] + +It provides AppImage, deb, and rpm packages for easy installation across various Linux distributions. I used AppImage for testing, and it worked like a charm. + +You can also benefit from our guide on [how to use AppImage][7] or [install deb packages][8] and [rpm packages][9], if you are new to Linux. + +Interestingly, Sunamu is one of the few open-source music tools that provide direct support for ARM-based machines. + +Visit their [GitHub releases page][10] to download packages or build it from the source. + +**Let me show you a quick installation method** for a Debian-based distro via the terminal. Just follow the given instructions, and you’ll be good to go: + +First, let’s download the .deb package using wget command as follows: + +``` +wget https://github.com/NyaomiDEV/Sunamu/releases/download/v2.0.0/sunamu_2.0.0_amd64.deb +``` + +Once you are done downloading the package, use the given command for installation: + +``` +sudo dpkg -i sunamu_2.0.0_amd64.deb +``` + +![install sunamu in ubuntu][11] + +### Tip: Tweak the Configuration file + +By default, Sunamu won’t fetch colors from the album art but show the lyrics for each song. And like many others, I like to avoid reading lyrics. + +Config file of Sunamu is usually located at **~/.config/sunamu/config.json5**. + +To open the Sunamu config file, type the given command: + +``` +nano ~/.config/sunamu/config.json5 +``` + +Make changes in the electron section as given below (to enable colors and disable lyrics): + +``` +electron: { + type: 'electron', + widgetMode: true, + colors: true, + font: '', + theme: 'default', + showLyrics: false, + } +``` + +Here’s what the final config file should look like: + +![modify config file of sunamu][12] + +### Final Thoughts + +Unless you are someone who avoids electron-based apps, Sunamu is a good enough app to enhance your music experience on Linux. After, [Amberol][13], this is the second Music-related app I have liked recently. + +If you try it, don’t forget to share your experience in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/sunamu-music-widget/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu.png +[2]: https://itsfoss.com/best-music-players-linux/ +[3]: https://github.com/NyaomiDEV/Sunamu/blob/master/COMPATIBILITY.md +[4]: https://github.com/NyaomiDEV/Sunamu/blob/master/assets/config.json5 +[5]: https://itsfoss.com/wp-content/uploads/2022/08/song-with-no-lyrics-min.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu-inclusing-lyrics-min1.png +[7]: https://itsfoss.com/use-appimage-linux/ +[8]: https://itsfoss.com/install-deb-files-ubuntu/ +[9]: https://itsfoss.com/install-rpm-files-fedora/ +[10]: https://github.com/NyaomiDEV/Sunamu/releases/tag/v2.0.0 +[11]: https://itsfoss.com/wp-content/uploads/2022/08/install-sunamu-in-ubuntu.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/modified-config-file-of-sunamu.png +[13]: https://itsfoss.com/amberol-music-player/ From cc8f5ddb99ff52327cb03178a33f4a9d2e8ea1e2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 8 Aug 2022 20:47:56 +0800 Subject: [PATCH 0682/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220808=20How=20open=20organizations=20can=20harnes?= =?UTF-8?q?s=20energy=20disruptions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...izations can harness energy disruptions.md | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 sources/talk/20220808 How open organizations can harness energy disruptions.md diff --git a/sources/talk/20220808 How open organizations can harness energy disruptions.md b/sources/talk/20220808 How open organizations can harness energy disruptions.md new file mode 100644 index 0000000000..795d39d2f0 --- /dev/null +++ b/sources/talk/20220808 How open organizations can harness energy disruptions.md @@ -0,0 +1,168 @@ +[#]: subject: "How open organizations can harness energy disruptions" +[#]: via: "https://opensource.com/open-organization/22/8/energy-disruption" +[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How open organizations can harness energy disruptions +====== +Learn strategies for communities on the use of electric vehicles over internal combustion engined cars, the use of self-driving vehicles over human-driving vehicles, and the use of solar power generation over nuclear power generation. + +![Solar panels][1] + +Image by: Photo by Jason Hibbets + +Many people talk a lot about the values of [Open Organization Principles][2], but in many ways, they require people to change how they do things, which can be difficult. That is true for businesses and industries as well. Disruption in many sectors is coming. How do we use Open Principles to address them? This article looks at what's happening in industries related to energy and transportation when it comes to drastic costing changes that will lead to industrial disruption. + +Business disruption is happening through new technology or methods, which will slash costs. This is forcing industrial change. Consider the oil, coal, natural gas, nuclear, petroleum, biofuels, and charcoal (the primary energy in many developing countries) industries. All these industries are grouped in the fossil fuel-burning energy-generating industry. Imagine them all becoming obsolete and totally replaced by the solar and wind industries in the next decade or so because of costs. That is industrial disruption. + +As a resource, I have read, [Clean Disruption of Energy and Transportation,][3] by Tony Seba. + +The book was written before 2014, but many of his concepts are valid today. In his book, Seba presents an energy-usage case for electric vehicles (EV) replacing internal combustion engine vehicles (ICE), and the entire automotive industry shrinking with autonomous (self-driving) car disruption strictly on cost factors. If this is true, adapting to those changes will be required, and Open Organization Principles can be helpful. + +He also builds a case for current electrical power generation being completely replaced in the years ahead by solar and wind with battery storage based strictly on cost competitive advantages. I discussed this in my article on [Jeremy Rifkin's][4] book [The Zero Marginal Cost Society: The Internet of Things, the Collaborative Commons, and the Eclipse of Capitalism.][5] + +Seba's book reminds me too of [Michael E Porter's five competitive forces the force of substitutes][6]. + +For example, automobiles replaced the horse and carriage in about a decade in the early 1900s, and digital cameras replaced all film cameras on the market. This replacement was due to: + +1. A cost advantage with prices coming down at exponential rates (from dollars to pennies like computer sizes to computing capacity) through increased innovation, scale, and competition. +2. Superior product features. +3. Added new product features, +4. Central control replaced by distributed/shared control. + +For these reasons, in the past, products became obsolete by something innovative. They were disrupted. + +Imagine wanting to make an open organization community that can produce its own electricity instead of being forced to buy electricity at much higher prices. Could such a community be formed? Throughout his book, Seba makes a case that this is possible using the four above factors. + +This article is the first of a two-part series on this topic. This article gives strategies for open organization communities on the use of electric vehicles over internal combustion engined (ICE) cars, the use of self-driving vehicles over human-driving vehicles, and the use of solar power generation over nuclear power generation. I'll give more in the second part of this series. + +### A question of power + +Seba assumes that electrical power is a commodity with no distinct quality difference and that there is no such thing as high-quality and low-quality electricity to the user. The only difference is the price of electricity at a given time. + +The price of electricity fluctuates greatly. He also assumes that the automotive industry only has one quality, the movement of goods and people. Therefore, Seba's whole book looks at the cost (particularly end-user price) of both electricity (in kilowatt/hours) and movement (miles/kilometers over the life of a vehicle). He does a wonderful job of breaking down indirect and direct costs in great detail, including many costs I had never considered. This seems to be the same conclusion Jeremy Rifkin came to, calling it marginal costs in his book, *The Zero Marginal Cost Society* (cited above). + +By providing general cost breakdowns, Seba enables readers to seriously consider how they and their community might use solar and wind electric power generation. One could build an open organization community based on the information this book makes available. + +Coincidentally, I've just read Bill Gates' book, [How to Avoid a Climate Disaster][7]. Gates' book has one primary goal: To remove 51 billion tons of greenhouse gases from the atmosphere by 2050. Gates would love it if Seba's prediction comes true. + +Seba believes that by 2030, all electricity generation and vehicles on the road will be carbon-free. Seba believes that over a 10-15 year period disruptive forces will penetrate industries in an "S" shaped growth. They will start slowly while the users adjust to this new purchasing option. + +Then, once several success stories are in operation, disruption will take off like a rocket, making all old technology and processes obsolete. After several decades, the demand will flatten when the disruptive technology fully serves the market. + +![S demand chart relating growth and time][8] + +Image by: + +(Ronald McFarland, CC BY-SA 4.0) + +Here is how the "S" demand works for electrical energy according to Seba: + +1. Some solar and wind systems are accepted in the market, making capital more available and less costly. +2. More creative financing plans are developed and offered. +3. Local, distributed energy generation increases. +4. The business structure of energy flips from centralized to distributed. +5. Enabling technologies, such as sensors, artificial intelligence, big data, and mobile communications, improve exponentially. Sensors, smaller and more energy efficient than ever before, will have more information on energy usage than any conventional utility could ever obtain. +6. The increasing cost of resource-based energy will push more people away from them. +7. Complementary markets, such as wind power generation, electric vehicles, and self-driving cars will increase exponentially. +8. Investments in other storage technologies for shared solar facilities, wind operations, electric vehicles, and self-driving cars will increase. +9. The business environment of energy will become more and more distributed. +10. The conventional command-and-control energy business model will enter a vicious cycle of rising prices and obsolete assets. + +Seba writes, "World demand for energy is expected to be 16.9 TW by 2030, according to the US Energy Information Agency." That may seem dire, but Seba adds, "Should solar continue on its exponential trajectory, the energy generation will be 100% solar by 2030." + +I'm sure that Gates would be delighted if that turns out to be true, but he is taking no chances on just those predictions. Gates is investing in future nuclear power plants and carbon capture systems for current fossil fuel burning plants to reduce carbon dioxide emissions further. + +### Building a community + +Assume we want to build an open organization community to introduce three things: + +* The use of electric vehicles (EV) over internal combustion engined (ICE) vehicles. +* Self-driving vehicles over human-driven vehicles. +* Solar power generation over nuclear power generation. + +Here is additional detail on Seba's arguments for each. + +#### 1. Use of electric over internal combustion engined vehicles + +Consider the following attributes of EV over ICE vehicles: + +* Seba presents that an electric vehicle is inexpensive to operate. An EV is five times more efficient in energy use than ICE vehicles. That makes an EV 10 times cheaper than ICE. +* An electric vehicle is cheaper to maintain because it contains few moving parts. +* In the future, there will be wireless charging stations along the road, so vehicles need not stop to charge. ICE vehicles will always have to stop at filling stations. +* Electric vehicles are safer, with more safety sensors. +* By 2025, EVs will likely be cheaper to purchase than ICE, with battery costs coming down rapidly. +* Battery performance and range are increasing with new developments. +* Electric vehicles can gather driving data in real-time for added safety, performance analytics, and future improvements. +* Electric vehicles can use excess electricity in the owners' home solar system or sell the excess to the local utility company. +* An EV company can offer free fuel and maintenance for five years if it wants to. No ICE vehicle manufacturer can do this. + +#### 2. Use of self-driving vehicles over human-driving vehicles + +Young people are moving away from owning vehicles in favor of Uber or Lyft services. It is becoming cheaper in the long term. Ride-sharing offers many advantages, including: + +* Each Uber/Lyft vehicle on the road is estimated to replace around 15 cars purchased. This result shrinks the overall vehicle numbers, impacting the need for parking lots and vehicle insurance. +* Owning an asset used less than 10% of the time is not practical. Most cars are parked most of the time, except for commercial vehicles that operate during work hours. + +The next step is self-driving cars, according to Seba. When self-driving cars are fully in the market, there will be disruption in the automotive, transportation, logistics, and oil industries. Self-driving cars will be mainly purchased, owned, and operated by corporations with fleets, not individuals. + +Self-driving cars provide many advantages, a few of which are listed here: + +* Self-driving cars expand the transportation of people. Children, the elderly, and those with disabilities will be new customers. +* The benefits of self-driving cars include: + * Save lives (no human error, advanced machine learning, and sensing). + * Save time (less time on the road with less congestion or looking for parking spaces). + * Save space (fewer roads, garages, and parking spaces required). + * Save energy (lower fuel consumption). + * Save money (in purchasing, operating, maintaining, and insuring for transportation). +* The cost of transportation will be cheaper, safer, and easier. + +#### 3. Use of solar power generation over nuclear power generation + +Solar power generation pricing is falling rapidly and is projected to continue falling with more use. This is where the Internet of Things (IoT) comes in. While nuclear power costs will also come down, it's not competitive, particularly as decommissioning is extremely expensive. + +Here are some considerations for solar power generation: + +* Solar cost has improved by 1,540 times since 1970. Based on Seba's research, solar costs are expected to come down by another two-thirds by 2020 (at the time the book was written in 2014). +* Currently, operating nuclear power plants' costs are increasing and are continually over budget in cost. If their costs don't come down, they will phase out. Bill Gates is betting on improved low-cost designs. +* Solar panel costs have dropped by a factor of US$100/Wh (Watt-hour) to 65¢/Wh from 1970 to around 2012, far lower than nuclear prices. +* New nuclear power plants are expected to provide electricity at 25¢/kWh-30¢/kWh. That is not competitive, with solar being around 12.5¢/kWh. In the United States, residential customers pay around 12.5¢/kWh, and some solar power suppliers expect to reach 5.79¢/kWh soon. +* Nuclear power generation uses twice as much water as natural gas, which is 10,000 times more than solar. This places added stress on the freshwater supply. +* There are now solar manufacturing companies providing power 24 hours/day. [Torresol Gemasolar][9] is a company in Spain putting one of these facilities into operation. They use safer and cheaper molten salt thermal energy storage. This energy storage method is a tenth of the cost of Li-on batteries. +* Seba says, "Large, centralized, top-down, supplier-centric energy is on the way out. It is being replaced by modular, distributed, bottom-up, open, knowledge-based, consumer-centric energy." For solar, many users will also be producers and sharers of electricity and information. +* Solar now regularly provides 20-35% of Germany's power. That will continue with improved battery storage, especially as Germany moves away from Russian oil and gas due to the war in Ukraine. Both for residential and commercial solar plants, tens of thousands of power generation units are being installed in the United States, Europe, and Australia. +* In 2014, 430 reactors in 31 countries provided 370 GW of nuclear power capacity, mainly in France, Japan, Russia, and the United States. These most likely will be replaced with solar, wind, or [4th generation][10] nuclear, which uses waste as fuel. Europe will shut down 80% of its 186 nuclear power plants by 2030 ([Global Data][11]). Many current nuclear power plants are close to their shutdown age. +* Nuclear power plants are not insurable at any premium, so only governments protect them. + +### Wrap up + +In the second part of this series, I'll discuss ideas regarding the use of solar power generation over oil power generation, the use of solar power generation over natural gas (with methane) power generation, the use of solar power generation over biofuels power generation, the use of solar power generation over coal power generation, and distributed electricity generation (small and simple) over conventional large utilities. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/22/8/energy-disruption + +作者:[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/LIFE_solar_panels_520x292_JH.png +[2]: https://theopenorganization.org/definition/open-organization-definition/ +[3]: https://www.amazon.co.jp/Clean-Disruption-Energy-Transportation-Conventional/dp/B00RWNDUZA +[4]: https://en.wikipedia.org/wiki/Jeremy_Rifkin +[5]: https://www.goodreads.com/book/show/18594514-the-zero-marginal-cost-society +[6]: https://www.youtube.com/watch?v=mYF2_FBCvXw +[7]: https://www.gatesnotes.com/Energy/My-new-climate-book-is-finally-here +[8]: https://opensource.com/sites/default/files/2022-07/s-demand.png +[9]: https://www.youtube.com/watch?v=QN-8DMZLpyI +[10]: https://en.wikipedia.org/wiki/Generation_IV_reactor +[11]: https://www.globaldata.com/ From f26a6b640c67ed62d603ebf5e61011743e3d59d9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 8 Aug 2022 20:49:03 +0800 Subject: [PATCH 0683/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220808=20Fix=20file=20permission=20errors=20on=20L?= =?UTF-8?q?inux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...808 Fix file permission errors on Linux.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/tech/20220808 Fix file permission errors on Linux.md diff --git a/sources/tech/20220808 Fix file permission errors on Linux.md b/sources/tech/20220808 Fix file permission errors on Linux.md new file mode 100644 index 0000000000..eafdca17a7 --- /dev/null +++ b/sources/tech/20220808 Fix file permission errors on Linux.md @@ -0,0 +1,75 @@ +[#]: subject: "Fix file permission errors on Linux" +[#]: via: "https://opensource.com/article/22/8/fix-file-permission-errors-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fix file permission errors on Linux +====== +Don't let file permissions slow you down. Here's how to manage them on Linux and macOS. + +![open source button on keyboard][1] + +Image by: Opensource.com + +If you're sharing files between two users over the network or "sneaker net" (saving a file to a hard drive and copying it to a computer), you may encounter permission errors when you try to read or write the file. Even if you understand the concept of , you may not know exactly how to diagnose the problem or solve it. I used to perform data migration as a service, so I've run into my fair share of permission errors and ownership conflicts. Here's how I fix them fast. + +### 1. Determine the correct user + +Before you can fix a permission error, you must determine who requires permission. You might think you already know that, but what you may not realize is that the user *name* isn't the most definitive attribute of user identity. Your computer doesn't see you as a person so much as it sees you as a number. To learn your number, take a look at your user ID: + +``` +$ id --user +1005 +``` + +### 2. Get the current owner + +Next, determine the owner of the file you're unable to interact with. Because there's a file permission problem happening, you may need to use the `sudo` command to see the information about the file: + +``` +$ sudo ls --numeric-uid-gid +-rw------- 1 1000 100  23041 Aug  2 05:26 bar +-rw------- 1 1000 100  54281 Aug  2 04:58 baz +-rw------- 1 1000 100    822 Aug  2 08:19 foo +``` + +In this example, the user owning the files is identified as user ID 1000, and that's why user ID 1005 can't interact with them. Worse yet, the files are marked as readable and writable only by the user that owns them, so not even members of the same group can interact with the files. + +### 3. Change permissions to match + +You know the user requiring permission, so you can change the current owner to match your current user: + +``` +$ sudo chown 1005 foo +``` + +You can also grant members of your group, and possibly other users on the system, access to the files by changing the file mode. For instance, to maintain read and write permissions (7) while granting read permissions (4) to the group and any other user: + +``` +$ sudo chmod 744 foo +``` + +### Learn more + +File permissions can seem tricky when you're not comfortable with them. For more information on how file ownership works, read [Introduction to chown][2]. For more information on how file permissions work, read [Introduction to chmod][3]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/fix-file-permission-errors-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/button_push_open_keyboard_file_organize.png +[2]: https://opensource.com/article/19/8/linux-chown-command +[3]: https://opensource.com/article/19/8/linux-chmod-command From 6f7c3772d7cb8c34c6b080f25417232f5634e69a Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 9 Aug 2022 08:39:01 +0800 Subject: [PATCH 0684/3123] translated --- ...1 AI, ML and DL- What-s the Difference-.md | 62 ------------------- ...1 AI, ML and DL- What-s the Difference-.md | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+), 62 deletions(-) delete mode 100644 sources/tech/20220801 AI, ML and DL- What-s the Difference-.md create mode 100644 translated/tech/20220801 AI, ML and DL- What-s the Difference-.md diff --git a/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md b/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md deleted file mode 100644 index e6bd5be065..0000000000 --- a/sources/tech/20220801 AI, ML and DL- What-s the Difference-.md +++ /dev/null @@ -1,62 +0,0 @@ -[#]: subject: "AI, ML and DL: What’s the Difference?" -[#]: via: "https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/" -[#]: author: "Bala Kalavala https://www.opensourceforu.com/author/bala-kalavala/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -AI, ML and DL: What’s the Difference? -====== -We often use the terms artificial intelligence, machine learning and deep learning interchangeably, even though we read or hear about them almost each day. This article explains how these technologies evolved and in what ways they differ. - -![AI ML and DL What’s the Difference][1] - -Artificial intelligence (AI), machine learning (ML), and deep learning (DL) are often used interchangeably; however, they are not quite the same things. AI is the broadest concept of all, and gives a machine the ability to imitate human behaviour. ML is the application of AI into a system or machine, which helps it to self-learn and improve continually. Lastly, DL uses complex algorithms and deep neural networks to repetitively train a specific model or pattern. - -Let’s look at the evolution and journey of each term to get a better understanding of what AI, ML and DL actually refer to. - -#### Artificial intelligence - -AI has a come a long way since the last 70-odd years, infiltrating into every aspect of our life, whether we know it, and like it or not. Advancements in machine learning and deep learning over the last decade have created an AI boom across industries and organisations of all sizes. Cloud service providers have added to the momentum by developing open source services that are available for free and by offering new use cases. - -![Figure 1: Overview of AI, ML and DL][2] - -AI is perhaps the most worked upon concept since 1956. By 2015, the wide availability of GPUs made parallel processing faster, powerful and cheaper. Cheaper options led to humongous storage of Big Data (plain text to images, to mapping, etc). This created the need for data analytics, more popularly known as data science, leading to the evolution of machine learning as an approach to achieving artificial intelligence. - -#### Machine learning - -ML is the use of algorithms to process, learn and make sense or predict the pattern of available data. More recently, the low-code and no-code concepts of software development are being used in machine learning as self-learning processes that give specific instructions to accomplish particular tasks. The machine is ‘trained’ by using data and algorithms, giving it the ability to learn how to perform the task and, more importantly, apply the learning to evolve continuously. - -![Figure 2: Evolution of AI, ML and DL][3] - -ML was evolved when the developer community focused on AI, and then developed algorithmic decision-tree learning, logic programming, clustering, parallel processing and reinforcement learning. ML was evolved when the developer community focused on AI, and then developed algorithmic decision-tree learning, logic programming, clustering, parallel processing and reinforcement learning. These were all good steps in the right direction but not enough to solve use cases that were of interest to the world. - -#### Deep learning - -DL is an evolution of neural networks and machine learning, and the brainchild of the AI community. It learns about how the human mind works in specific scenarios, and then gets better at that job than humans! As an example, IBM’s Watson played chess against itself and improved at the game so much to eventually beat the world champion. Google’s AlphaGo also learnt how to play the Go board game by playing it over and over to better itself, and became the champion. - -AI, ML and DL are evolving continuously. It’s the intent of everyone involved with data science to advance these concepts to better our daily lives.  The good thing is that the open source community, private enterprises, scientists, and government agencies are all working together for this. - -![Figure 3: Types of AI, ML and DL][4] - -To conclude, while AI helps to create smart intelligent machines, ML helps to build AI-driven applications. DL is a subset of ML; it trains a specific model by leveraging complex algorithms for large volumes of data.  As narrow AI is extremely difficult to develop, ML is addressing the opportunities in this space with rigid computing. DL helps to bring AI and ML together, at least for realising general AI. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/ - -作者:[Bala Kalavala][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/bala-kalavala/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/AIML-and-DL-Whats-the-Difference.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Overview-of-AI-ML-and-DL.jpg -[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Evolution-of-AI-ML-and-DL.jpg -[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Types-of-AI-ML-and-DL.jpg diff --git a/translated/tech/20220801 AI, ML and DL- What-s the Difference-.md b/translated/tech/20220801 AI, ML and DL- What-s the Difference-.md new file mode 100644 index 0000000000..5774b2fc3d --- /dev/null +++ b/translated/tech/20220801 AI, ML and DL- What-s the Difference-.md @@ -0,0 +1,62 @@ +[#]: subject: "AI, ML and DL: What’s the Difference?" +[#]: via: "https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/" +[#]: author: "Bala Kalavala https://www.opensourceforu.com/author/bala-kalavala/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +人工智能、机器学习和深度学习:有什么区别? +====== +我们经常交替使用人工智能、机器学习和深度学习这些术语,尽管我们几乎每天都阅读或听到它们。本文解释了这些技术是如何演变的以及它们有何不同。 + +![AI ML and DL What’s the Difference][1] + +人工智能 (AI)、机器学习 (ML) 和深度学习 (DL) 通常可以互换使用。但是,它们并不完全相同。人工智能是最广泛的概念,它赋予机器模仿人类行为的能力。机器学习是将人工智能应用到系统或机器中,帮助其自我学习和不断改进。最后,深度学习使用复杂的算法和深度神经网络来重复训练特定的模型或模式。 + +让我们看看每个术语的演变和历程,以更好地理解人工智能、机器学习和深度学习实际指的是什么。 + +#### 人工智能 + +自过去 70 多年以来,人工智能已经取得了长足的进步,它渗透到我们生活的方方面面,无论我们是否知道,也不管喜欢与否。在过去十年中,机器学习和深度学习的进步已经在各种规模的行业和组织中创造了人工智能热潮。云服务提供商通过开发免费的开源服务和提供新的场景来增加势头。 + +![Figure 1: Overview of AI, ML and DL][2] + +人工智能可能是自 1956 年以来最受关注的概念。到 2015 年,GPU 的广泛使用使并行处理更快、更强大、更便宜。更便宜的选择导致大数据的大量存储(纯文本到图像、映射等)。这产生了对数据分析的需求,更普遍地称为数据科学,导致机器学习发展为实现人工智能的方法。 + +#### 机器学习 + +机器学习是使用算法来处理、学习和理解或预测可用数据的模式。最近,软件开发的低代码和无代码概念被用作机器学习中的自学习过程,它给出了完成特定任务的特定指令。通过使用数据和算法对机器进行“训练”,使其能够学习如何执行任务,更重要的是,将学习应用到不断发展的过程中。 + +![Figure 2: Evolution of AI, ML and DL][3] + +机器学习是在开发者社区专注于 AI 时发展起来的,然后发展了算法决策树学习、逻辑编程、聚类、并行处理和强化学习。这些都是朝着正确方向迈出的良好一步,但不足以解决世界感兴趣的场景。 + +#### 深度学习 + +深度学习是神经网络和机器学习的进化,是人工智能社区的创意。它了解人类思维在特定场景中的工作方式,然后在这项工作上比人类做得更好!例如,IBM 的 Watson 与自己下国际象棋,并在游戏中取得了很大进步,最终击败了世界冠军。谷歌的 AlphaGo 也学会了如何玩围棋游戏,一遍又一遍地玩它以提高自己,并成为冠军。 + +人工智能、机器学习和深度学习正在不断发展。参与数据科学的每个人都希望推进这些概念以改善我们的日常生活。好在开源社区、私营企业、科学家和政府机构都在为此共同努力。 + +![Figure 3: Types of AI, ML and DL][4] + +总而言之,虽然 AI 有助于创建智能机器,但机器学习有助于构建 AI 驱动的应用。 深度学习是机器学习的一个子集。它通过利用复杂算法处理大量数据来训练特定模型。由于狭义 AI 极难开发,机器学习正在通过刚性计算解决这一领域的机遇。 至少对于实现通用 AI,深度学习有助于将 AI 和机器学习结合在一起。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/ + +作者:[Bala Kalavala][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/bala-kalavala/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/AIML-and-DL-Whats-the-Difference.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Overview-of-AI-ML-and-DL.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Evolution-of-AI-ML-and-DL.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Types-of-AI-ML-and-DL.jpg From 1d0a6ff0aab850d696fa24d4c14e92c73854fe3a Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 9 Aug 2022 08:41:28 +0800 Subject: [PATCH 0685/3123] translating --- sources/tech/20220808 Fix file permission errors on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220808 Fix file permission errors on Linux.md b/sources/tech/20220808 Fix file permission errors on Linux.md index eafdca17a7..a8e6a7e6ba 100644 --- a/sources/tech/20220808 Fix file permission errors on Linux.md +++ b/sources/tech/20220808 Fix file permission errors on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/fix-file-permission-errors-linux" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 981c43b6a197e33865f2243338b5c870bae1c4a8 Mon Sep 17 00:00:00 2001 From: perfiffer Date: Tue, 9 Aug 2022 09:42:46 +0800 Subject: [PATCH 0686/3123] translating by perfiffer --- ...02 How I use the Linux sed command to automate file edits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md index fec2299637..6da228a981 100644 --- a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md +++ b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/automate-file-edits-sed-linux" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "perfiffer" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 483ecadde01267af441e967651273d17b9f9a9a2 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 9 Aug 2022 11:24:11 +0800 Subject: [PATCH 0687/3123] . --- ...se To Use CC0 Licensed Code As The Boot.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md diff --git a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md new file mode 100644 index 0000000000..8e8dd66b48 --- /dev/null +++ b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md @@ -0,0 +1,49 @@ +[#]: subject: "What Made Fedora Choose To Use CC0 Licensed Code As The Boot" +[#]: via: "https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "yjacks" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " +什么让 Fedora 一开始选择 CC0 许可证释出 +====== + +![fedora-1024x614][1] + +开源这个概念是具有挑战性的。许多认为,开源意味着可以任意的使用软件中的部分,或是免费下载。这实际上取决于你如何被许可,这主要取决于开发者使用何种许可分享他们的代码。开源软件可以使收费的,可以限你如何去使用它,甚至使你陷入法律麻烦。 + +Fedora 项目最近决定拒绝所有使用 CC "公共领域贡献" CC0 许可证,以避免 CC0 许可的代码的出现。CC0 将从对所有新提交的允许的代码许可证列表中剔除,然而,像艺术品这样的部分仍将被允许,甚至可能对目前的软件包逐一进行处理。 + +CC0 是因为什么让 Fedora 决定停止支持它,这又是不是表示你不能在你自己的项目中使用它呢? + +这一叙述中最让熟悉 CC 及其许可系列的人感到惊讶的部分是,Fedora项目最初就批准了CC0的软件。毕竟,从一开始的目标就是为艺术作品开发一系列明确的许可证。该组织的使命和许可证要求在其名称中就有说明。 + +为了"克服分享信息和创造力的法律障碍",他们提供了一个在人们与组织分享如音乐、医术或教育材料的自由的框架,知识共享的前身——开放内容项目Open Content Project,创建于2001年。然而,软件从来不是一个因素。为什么呢?那时,如 MIT 、 GPL 一类的重要的软件许可证已经出现了十几年。 + +很明显,在一些特定的领域,你也许需要相信一个公司的创造是无害的。CC FAQ 列出了说些反对使用他们的软件许可证的令人信服的论据,但对于像Fedora项目这样的用户来说,有一个问题特别突出:专利权。 + +也许是很明显的,使用 CC0 许可证意味着在公共领域使用它,它很明确的表示“在全球范围内放弃他或她根据版权法对该作品的所有权利。”但是,问题在于,版权法并不适用于专利。事实上,仔细审视许可证的完整措辞后可以发现,它在一个令人担忧的部分直接解决了这个问题,该部分内容如下“宣告者拥有的任何商标或专利权都没有被放弃、抛弃、放弃、租赁或以其他方式被本文件修改。” + +在别的措辞中,甚至当授权于 CC0 协议时——这意味着可能将放弃放弃对它的一切权力,他们仍然可以自由的为它申请专利。更糟糕的是,他们仍然保留着以他们认为合适的方式使用该专利的能力。 + +理论上来说,这意味着最初在CC0下提供的源代码的人在发布了代码之后,他们可以断言任何使用该代码的人侵犯了他们的专利,并要求支付专利费。 + +这显然会让像 Fedora 这样的项目担忧。考虑到 CC0 授权的场景是组成系统的核心包,然后将被用于数以百万计的用户。不知道从哪里冒出来的原创作者,声称侵犯了专利权,并要求付款。红帽或 Fedora 的律师可以驳倒这种说法么?也许吧。那么,有使用 CC0 代码的价值么?没有。 + +要着重提到的是,这完全不是一个新问题。实际上,回到 2012 年,专利法阻止了开源倡议(OSI)许可证的审查委员会。因此,他们无法最终确定CC0是否真正符合他们对开放源代码许可的定义。委员会未能达成一致意见,因为其成员认为将此类条款纳入软件许可将创造一个危险的先例。考虑到Fedora动荡的历史,它最初接受CC0的决定着实让人费解。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[yjacks](https://github.com/yjacks) +校对:[校对者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/08/fedora-1024x614-1-e1659346500461.jpg From c68aa815f9f3b1e0ce5cf508a6ac926b8709fab1 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 9 Aug 2022 11:29:01 +0800 Subject: [PATCH 0688/3123] Update 20220727 How I manage files from the Linux command line.md --- ...20220727 How I manage files from the Linux command line.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220727 How I manage files from the Linux command line.md b/sources/tech/20220727 How I manage files from the Linux command line.md index 27f076ba08..4a4f08940a 100644 --- a/sources/tech/20220727 How I manage files from the Linux command line.md +++ b/sources/tech/20220727 How I manage files from the Linux command line.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/manage-files-linux-command-line" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -177,7 +177,7 @@ via: https://opensource.com/article/22/7/manage-files-linux-command-line 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7c23d3128555bde8afbf2a58fed9e2d46356ff60 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 9 Aug 2022 15:41:37 +0800 Subject: [PATCH 0689/3123] R PART 1 --- ...Using Binary Space Partitioning in Doom.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index fe25d972d5..b227e2cea1 100644 --- a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -3,30 +3,30 @@ [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" [#]: translator: "aREversez" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 在《毁灭战士》中应用二叉空间分割技术是何等天才之举? ====== -1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 _《毁灭战士》_,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 +1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 《毁灭战士DOOM》,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 -_《毁灭战士》_ 发行之后的第十年(2003 年),记者大卫·库什纳出版了一本关于 id Software 的书,书名为 _《Doom 启示录》_,后被奉为记录 _Doom_ 创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员约翰·卡马克的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在 _《毁灭战士》_ 开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时,出现速度缓慢的问题。对于 _《毁灭战士》_ 这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关文献。最后,他采用“二叉空间分割”技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 +《毁灭战士》发行之后的第十年(2003 年),记者大卫·库什纳David Kushner出版了一本关于 id Software 的书,书名为 《Doom 启示录Masters of Doom》,后被奉为记录毁灭战士创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员约翰·卡马克John Carmack的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在 《毁灭战士》 开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时慢得像爬一样。对于 《毁灭战士》 这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关论文。最后,他实现了一种叫做“二叉空间分割binary space partitioning”的技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 -一直以来,我对这个故事的印象十分深刻。卡马克将学术前沿研究运用于电子游戏之中,我觉得这正是他之所以成为传奇人物的原因。无论从哪个角度来看,卡马克都应该是电子游戏行业中人尽皆知的典型天才程序员,只不过上面这个故事是我最先能够想到的理由。 +一直以来,我对这个故事的印象十分深刻。卡马克将学术前沿研究运用于电子游戏之中,我觉得这正是他之所以成为传奇人物的原因。无论从哪个角度来看,卡马克都应该是电子游戏行业中人尽皆知的典型的天才程序员,只不过上面这个故事是我最先能够想到的理由。 -显而易见,“二叉空间分割”这个术语听起来就是难度相当高的课题,能够自行阅读文献并将其付诸实施实属不易,所以这个故事给我留下了深刻的印象。我一直认为卡马克的做法十分具有创见性,不过由于我既不懂二叉空间分割到底是怎样的一项技术,也不晓得这项技术在当时究竟有多么革新,所以我也并不确定自己的观点是否正确。如果按照从荷马·辛普森到爱因斯坦的顺序为天才列出一套级别体系,那么卡马克将二叉空间分割技术运用于 _《毁灭战士》_ 的做法究竟属于什么级别的天才之举呢? +显而易见,“二叉空间分割”这个术语听起来就是难度相当高的课题,能够自行阅读论文并将其付诸实施实属不易,所以这个故事给我留下了深刻的印象。我一直认为卡马克的做法十分具有创见性,不过由于我既不懂二叉空间分割到底是怎样的一项技术,也不晓得这项技术在当时究竟有多么革新,所以我也并不确定自己的观点是否正确。如果按照从霍默·辛普森Homer Simpson(LCTT 译注:《辛普森一家人》中的那个老爹)到阿尔伯特·爱因斯坦Albert Einstein的顺序为天才列出一套级别体系,那么卡马克将二叉空间分割技术运用于 《毁灭战士》 的做法究竟属于什么级别的天才之举呢? -同时,我也在想,二叉空间分割这个概念最初是从哪儿来的,又是怎样吸引到卡马克的?因此,本篇文章不仅仅会讲述约翰·卡马克和 _《毁灭战士》_ 的故事,也会探讨二叉空间分割树(BSP 树)数据结构的发展历史。有意思的是,BSP 树和计算机科学领域其他许多技术一样,最初都起源于军事研究领域。 +同时,我也在想,二叉空间分割这个概念最初是从哪儿来的,又是怎样吸引到卡马克的?因此,本篇文章不仅仅会讲述约翰·卡马克和 《毁灭战士》 的故事,也会探讨二叉空间分割树(BSP 树)数据结构的发展历史。有意思的是,BSP 树和计算机科学领域其他许多技术一样,最初都起源于军事研究领域。 -没错,_《毁灭战士》_ 的第一关卡 E1M1 就受到了美国空军的启发。 +没错,《毁灭战士》 的第一关卡 E1M1 就受到了美国空军的启发。 ### VSD 难题 BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举个例子,为了渲染出三维场景,渲染器必须能够区分可见物体和不可见物体。如果渲染时间比较充足,这一要求也算不上大问题;但是理想来说,实时游戏引擎在 1 秒内至少需要完成 30 次区分任务。 -这一问题有时被称为可见表面检测问题。当时,卡马克与迈克尔·亚伯拉什携手合作,一起开发 _《雷神之锤》_(id Software 继 _《毁灭战士》_ 之后开发的游戏)。关于可见表面检测问题,亚伯拉什在自己的著作 _《图形程序开发人员指南》_ 中写道: +这一问题有时被称为可见表面检测问题。当时,卡马克与迈克尔·亚伯拉什携手合作,一起开发 _《雷神之锤》_(id Software 继 《毁灭战士》 之后开发的游戏)。关于可见表面检测问题,亚伯拉什在自己的著作 _《图形程序开发人员指南》_ 中写道: > 我想探讨一下在我看来 3D 中最棘手的一个问题:可见表面检测问题(在每个像素点上绘制合适的表面)以及与之密切相关的隐面消除问题(迅速去除不可见的多边形,用于加快可见表面检测速度)。简略起见,我将在下文采用缩写 VSD 来表示可见表面检测和隐面消除。 @@ -34,13 +34,13 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 > 相反,VSD 却像是一个无底洞,目前应对方案也有很多。但实际上,在采用简单的方法处理 VSD 时,其性能会直接受到场景复杂程度的影响,而场景的复杂程度通常会以平方级或立方级的形式增大。所以在渲染过程中,VSD 很快就会成为制约因素。[1][1] -_《毁灭战士》_ 这款游戏告诉我们,普通人盼望着能用自家电脑玩很吃图形配置的游戏。之后数年,即上个世纪九十年代,亚伯拉什讨论了复杂的 VSD 问题。同时代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在 _《毁灭战士》_ 之前发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都施加了一定的限制,以便更容易解决 VSD 问题。 +《毁灭战士》 这款游戏告诉我们,普通人盼望着能用自家电脑玩很吃图形配置的游戏。之后数年,即上个世纪九十年代,亚伯拉什讨论了复杂的 VSD 问题。同时代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在 《毁灭战士》 之前发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都施加了一定的限制,以便更容易解决 VSD 问题。 -例如,在 _《毁灭战士》_ 之前,id Software 发行了 _《德军总部 3D》_,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 _《德军总部 3D》_ 编写渲染器的工作简单了不少。 +例如,在 《毁灭战士》 之前,id Software 发行了 _《德军总部 3D》_,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 _《德军总部 3D》_ 编写渲染器的工作简单了不少。 通过将屏幕上的光线“齐射”入虚拟游戏世界,_《德军总部》_ 的渲染器解决了 VSD 问题。通常来说,使用光线的渲染器叫做“光线投射”渲染器。这种渲染器的速度一般较慢,因为解决内部的 VSD 问题涉及到在光线和游戏中的物体之间找到第一个交点,这通常需要进行大量的计算。但在 _《德军总部》_,由于所有的墙壁都与网格平齐,所以光线与墙壁相交的位置只能在网格线上。如此一来,渲染器只需逐个检查这些交点即可。如果渲染器先从离玩家视角最近的交点开始检查,接着检查下一个最近的交点,以此类推,最后遇到第一面墙壁时停止检查。这样,VSD 问题便轻而易举地得到了解决。光线从每一个像素点向前投射,与画面物体接触时停止运动,这一方法是可行的。因为结合 CPU 周期来看,投射的成本很低。事实上,由于每面墙壁高度相同,因此针对同列的像素点,投射的光线只需一条。 -尽管当时还没有专业的图形显卡,_《德军总部》_ 凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于 _《毁灭战士》_。id Software 为这款新游戏增添了许多新元素——倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。_《德军总部》_ 的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 _《毁灭战士》_ 关注的则是物体。换句话说,_《毁灭战士》_ 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 +尽管当时还没有专业的图形显卡,_《德军总部》_ 凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于 《毁灭战士》。id Software 为这款新游戏增添了许多新元素——倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。_《德军总部》_ 的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 《毁灭战士》 关注的则是物体。换句话说,《毁灭战士》 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 对于强调物体的渲染器来说,可以使用 Z 缓冲器来解决 VSD 问题,比较简单。每次将物体投射到屏幕上时,需要对每个用于绘制的像素点进行检查。如果你想绘制出的物体的部分和已经绘制在目标像素点上的物体相比更加接近玩家,可以将其覆盖。否则,必须保持像素不变。尽管办法很简单,但是 Z 缓冲器对内存的要求较高,投射关卡几何图形时渲染器仍会消耗大量的 CPU 资源,虽然玩家无法看到这些几何图形。 @@ -48,9 +48,9 @@ _《毁灭战士》_ 这款游戏告诉我们,普通人盼望着能用自家 考虑到将图像写入帧缓冲器的成本非常之高,理想的渲染器需要首先绘制离玩家最近的物体,接着是比较近的物体,以此类推,直到屏幕上每个像素点都写入了信息。这时,渲染器会停止运行,大幅缩短远处不可见物体的渲染时间。这种由近及远对物体进行排序的方法也可以解决 VSD 问题。那么问题又来了:什么才是玩家可以看到的? -最初,卡马克打算依靠 _《毁灭战士》_ 的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果玩家移动速度非常慢,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D》当中,这款游戏在 _《毁灭战士》_ 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的 _《毁灭战士》_ 渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 +最初,卡马克打算依靠 《毁灭战士》 的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果玩家移动速度非常慢,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D》当中,这款游戏在 《毁灭战士》 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的 《毁灭战士》 渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 -在 id Software 团队意识到 _《毁灭战士》_ 游戏引擎的速度可能过慢时,公司还面临着其他任务:将 _《德军总部 3D》_ 移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比兼容 IBM 公司机器的个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将 _《德军总部》_ 移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于 _《德军总部》_ 的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是 _《毁灭战士》_ 的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决 _《毁灭战士》_ 速度过慢的问题。 +在 id Software 团队意识到 《毁灭战士》 游戏引擎的速度可能过慢时,公司还面临着其他任务:将 _《德军总部 3D》_ 移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比兼容 IBM 公司机器的个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将 _《德军总部》_ 移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于 _《德军总部》_ 的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是 《毁灭战士》 的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决 《毁灭战士》 速度过慢的问题。 ### 二叉空间分割 @@ -88,27 +88,27 @@ _《毁灭战士》_ 这款游戏告诉我们,普通人盼望着能用自家 同时,三人也提到了一项需要进一步深入研究的问题:究竟怎样才能构建出一棵“高质量的” BSP 树?BSP 树的质量取决于用作分割平面的多边形的选择。我在前文跳过了这一问题,不过如果用作分割平面的多边形与其他多边形相交,那么为了避免 BSP 算法失效,必须将相交的多边形一分为二,这样两部分就可以分在不同的空间。但是如果这种现象反复出现,BSP 树的构建势必会大幅增加场景中多边形的数量。 -内勒后来在其 1993 年的论文《构建高质量的分割树Constructing Good Partitioning Trees》中提及这一问题。与卡马克一同建立 id Software 的约翰·罗梅洛指出,这篇论文是卡马克在 _《毁灭战士》_ 中引入 BSP 树时读到的论文之一。[4][9] +内勒后来在其 1993 年的论文《构建高质量的分割树Constructing Good Partitioning Trees》中提及这一问题。与卡马克一同建立 id Software 的约翰·罗梅洛指出,这篇论文是卡马克在 《毁灭战士》 中引入 BSP 树时读到的论文之一。[4][9] ### 《毁灭战士》中的 BSP 树 -别忘了,卡马克首次为 _《毁灭战士》_ 设计渲染器时,通过让渲染器渲染玩家所在房间之外的临近房间,试图为关卡几何图形建立一套渲染顺序。对此,BSP 树是个不错的选择,因为在玩家进入之前的房间(区域)时,BSP 树能够避免让渲染器重复劳动,从而节省 CPU 资源。 +别忘了,卡马克首次为 《毁灭战士》 设计渲染器时,通过让渲染器渲染玩家所在房间之外的临近房间,试图为关卡几何图形建立一套渲染顺序。对此,BSP 树是个不错的选择,因为在玩家进入之前的房间(区域)时,BSP 树能够避免让渲染器重复劳动,从而节省 CPU 资源。 -实际上,“将 BSP 树引入 _《毁灭战士》_”意味着将 BSP 树生成器引入 _《毁灭战士》_ 的关卡编辑器中。_《毁灭战士》_ 的关卡制作完成之时,BSP 树就会在关卡几何图形的基础上生成。根据程序员法比安·桑格勒德的说法,在原版 _《毁灭战士》_ 中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [5][10]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出“高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是在线下等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 +实际上,“将 BSP 树引入 《毁灭战士》”意味着将 BSP 树生成器引入 《毁灭战士》 的关卡编辑器中。《毁灭战士》 的关卡制作完成之时,BSP 树就会在关卡几何图形的基础上生成。根据程序员法比安·桑格勒德的说法,在原版 《毁灭战士》 中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [5][10]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出“高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是在线下等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 -卡马克非常赞赏 1980 年论文中提出的 BSP 树算法,因为在 _《毁灭战士》_ 开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯、凯德姆以及内勒在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于与 IBM 机器兼容的个人电脑来说负担较大。因此,_毁灭战士_ 的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。采用这种相反的顺序,更有利于 BSP 树的应用,因为在树的每个节点都可以进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,_《毁灭战士》_ 的渲染器使用了一种内置的 Z 缓冲器,这种缓冲器不仅具备普通 Z 缓冲器的优势,而且对内存的要求也较低。Z 缓冲器有两组数组,一组记录水平方向的遮挡关系,另一组自屏幕由上及下记录垂直方向的遮挡关系。_《毁灭战士》_ 的渲染器就算不使用真正的 Z 缓冲器也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于 _《毁灭战士》_ 不会发生以下问题:水平方向的遮挡数组能够运行,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够运行,是因为该游戏不存在有着一上一下两扇窗户的墙体。 +卡马克非常赞赏 1980 年论文中提出的 BSP 树算法,因为在 《毁灭战士》 开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯、凯德姆以及内勒在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于与 IBM 机器兼容的个人电脑来说负担较大。因此,_毁灭战士_ 的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。采用这种相反的顺序,更有利于 BSP 树的应用,因为在树的每个节点都可以进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》 的渲染器使用了一种内置的 Z 缓冲器,这种缓冲器不仅具备普通 Z 缓冲器的优势,而且对内存的要求也较低。Z 缓冲器有两组数组,一组记录水平方向的遮挡关系,另一组自屏幕由上及下记录垂直方向的遮挡关系。《毁灭战士》 的渲染器就算不使用真正的 Z 缓冲器也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于 《毁灭战士》 不会发生以下问题:水平方向的遮挡数组能够运行,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够运行,是因为该游戏不存在有着一上一下两扇窗户的墙体。 -剩下比较棘手的问题是如何将 _《毁灭战士》_ 中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度问题并没有那么重要。 +剩下比较棘手的问题是如何将 《毁灭战士》 中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度问题并没有那么重要。 -将 BSP 树应用到 _《毁灭战士》_ 中可谓一大成功。卡马克能够想到 BSP 树是解决 VSD 问题的最佳方案,无疑非常高明。但是这可以称得上是天才之举吗? +将 BSP 树应用到 《毁灭战士》 中可谓一大成功。卡马克能够想到 BSP 树是解决 VSD 问题的最佳方案,无疑非常高明。但是这可以称得上是天才之举吗? -桑格勒德在其关于 _《毁灭战士》_ 游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[6][11] 根据罗梅洛所言,卡马克认为这种算法对 _《毁灭战士》_ 依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味——意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在 _《Doom 启示录》_ 也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [7][12]。 +桑格勒德在其关于 《毁灭战士》 游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[6][11] 根据罗梅洛所言,卡马克认为这种算法对 《毁灭战士》 依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味——意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在 _《Doom 启示录》_ 也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [7][12]。 这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时想要开发出飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:重复将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此介绍了他们的研究动机。 -因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象中的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年陈和戈登的一篇论文以及 1990 年的一本教材 _《计算机图形学:原理及实践》_。尽管该页面并未提供引用信息,但是基本上不会出错。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与 _《毁灭战士》_ 用到的方法基本一致,还包括我称之为“内置缓冲器”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。_《计算机图形学:原理及实践》_ 详细介绍了 BSP 树以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材的 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 +因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象中的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年陈和戈登的一篇论文以及 1990 年的一本教材 _《计算机图形学:原理及实践》_。尽管该页面并未提供引用信息,但是基本上不会出错。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与 《毁灭战士》 用到的方法基本一致,还包括我称之为“内置缓冲器”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。_《计算机图形学:原理及实践》_ 详细介绍了 BSP 树以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材的 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 -然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个 _《毁灭战士》_ 的游戏引擎,毕竟它的确非常精致。我在前文也提及过,但是桑格勒德的 _《游戏引擎黑皮书:毁灭战士》_ 很好地讲解了这款游戏引擎的非凡之处以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写 _《毁灭战士》_ 游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 +然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个 《毁灭战士》 的游戏引擎,毕竟它的确非常精致。我在前文也提及过,但是桑格勒德的 _《游戏引擎黑皮书:毁灭战士》_ 很好地讲解了这款游戏引擎的非凡之处以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写 《毁灭战士》 游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 _如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][14],也可通过 [RSS feed][15] 订阅,获取最新文章(每四周更新一篇)。_ From 0a4bf00de121fcab8f6a17ea38cea8e9a2f8675d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 9 Aug 2022 16:04:02 +0800 Subject: [PATCH 0690/3123] RP @hanszhao80 https://linux.cn/article-14911-1.html --- ...count Containers- Why and How to Use It.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) rename {translated/tech => published}/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md (77%) diff --git a/translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md b/published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md similarity index 77% rename from translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md rename to published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md index 081ce8e41f..b3529800f5 100644 --- a/translated/tech/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md +++ b/published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md @@ -3,18 +3,18 @@ [#]: author: "Hunter Wittenborn https://itsfoss.com/author/hunter/" [#]: collector: "lujun9972" [#]: translator: "hanszhao80" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14911-1.html" 浅议 Firefox 多账户容器 ====== 随着在设备上使用各种程序的用户的需求变得越来越复杂,程序本身也需要跟上用户的现实需求和未来期望。 -我发现我每天都需要的东西是用一个简便的方法在网页浏览器保持登录多个账号。我 _可以_ 根据需要对我的每个账号进行登录和注销操作,但在短时间内切换多个账号时,这变得非常乏味。 +我发现我每天需要的东西是一个在网页浏览器保持登录多个账号的简单方法。我 _可以_ 根据需要对我的每个账号进行登录和注销操作,但在短时间内切换多个账号时,这变得非常乏味。 -最初,我使用谷歌浏览器,它拥有管理多个帐户的能力。这很有效,但管理起来略显繁琐,而且明明只需 _一个_ 账号就能搞定的事却要创建一个新的谷歌账号来完成,这显得有点儿笨拙。 +最初,我使用谷歌浏览器,它拥有管理多个帐户的能力。这很有效,但管理起来略显繁琐,而且明明只需 _一个_ 谷歌账号就能搞定的事却要创建一个新的谷歌账号来完成,这显得有点儿笨拙。 这是我转而使用 Firefox 多账户容器Multi-Account Containers 功能的原因。它不仅比我在谷歌 Chrome 浏览器上的设置灵活得多,而且我还使用了由我的浏览器开发者自己创建的工具,从而在整体上获得了更流畅和更简单的体验。 @@ -22,9 +22,9 @@ ### Firefox 中的多帐户容器是什么? -如果你想将数字生活的各个部分彼此分开,多账户容器也非常有效。当你使用容器时,你在一个容器中的浏览活动不会与其他容器共享。这种隔离意味着你可以在不同容器中登录同一网站上的两个不同帐户。你的登录会话、网站偏好和跟踪数据将被限制在你使用某个网站的容器中。 +如果你想将数字生活的各个部分彼此分开,多账户容器也非常有效。通过使用容器,你在一个容器中的浏览活动不会与其他容器共享。这种隔离意味着你可以在不同容器中登录同一网站上的两个不同帐户。你的登录会话、网站偏好和跟踪数据将被限制在你使用某个网站的容器中。 -它还有什么其他优势?想象一下,你在亚马逊或其他电子商务网站上购物。你浏览了一些商品,但没有购买任何东西。现在,如果你浏览网络,你会看到与你浏览的产品相关的广告。尽管有广告拦截器,一些网站仍会显示广告。使用容器,你可以将你的购物网站与其他网站分开。 +它还有什么其他优势?想象一下,你在亚马逊或其他电子商务网站上购物。你浏览了一些商品,但没有购买任何东西。现在,如果你浏览网络,你会看到与你浏览的产品相关的广告。尽管有广告拦截器,一些网站仍会显示广告。使用容器,你可以将你的购物网站与其他网站分开。(LCTT 校注:甚至根据你的浏览历史,你再次访问同一网站时看到的价格可能会被“宰熟”——反复浏览代表了你的购买倾向。) 再给大家分享一个例子。Firefox 默认提供一个 Facebook 容器。默认情况下,此容器包括 Facebook、Messenger 和 Instagram 网站。这意味着当你打开这三个网站中的任何一个时,它们都只会在“Facebook 容器”中打开。因此,Facebook 将无法跟踪你在其他网站上的活动。 @@ -34,7 +34,7 @@ 安装 Firefox 多账户容器是一个非常简单的过程,只需点击几下。 -首先,前往 Firefox 附加组件网站上的 [扩展程序页面][3]。之后你唯一需要做的就是单击 `添加到 Firefox` 按钮。 +首先,前往 Firefox 附加组件网站上的 [扩展程序页面][3]。之后你唯一需要做的就是单击 “添加到 Firefox” 按钮。 ![][4] @@ -58,7 +58,7 @@ ![][8] -接着输入新容器的名称,选择颜色和图标。然后,点击 `OK` 保存新容器。 +接着输入新容器的名称,选择颜色和图标。然后,点击 “OK” 保存新容器。 ![][9] @@ -84,20 +84,20 @@ 为什么我被重定向了?因为现在我没有登录。这就是 Firefox 容器的乐趣之一:在一个浏览器会话中登录后,再进入一个容器,就好像你以前从未访问过该站点一样。 -如果你在容器内完成对某个网站的登录,你从容器中访问该网站时将会保持登录状态。你还可以使用此功能从容器内登录网站,从而使该网站的所有数据远离你的正常浏览器数据。 +如果你在容器内完成对某个网站的登录,你从容器中访问该网站时将会保持登录状态。你还可以使用此功能从容器内登录网站,从而使该网站的所有数据与你的正常浏览器数据相隔开。 -注意:你的浏览器历史记录本身之类的内容仍会暴露给你的正常浏览器会话。容器功能只是提供了一种方法来分离本文中提到的登录帐户等内容。 +> 注意:你的浏览器历史记录本身之类的内容仍会暴露给你的正常浏览器会话。容器功能只是提供了一种方法来分离本文中提到的登录帐户等内容。 ### 总结 对于那些在乎自己的隐私,或者只是想真正尝试对其系统的安全性进行严格控制的人来说,多账户容器被证明是一个很棒的功能。 -例如,你可以在容器内登录你的 Google 帐户,Google 永远不会知悉你在容器外的信息。 -个帐户的人来说,此扩展程序是一个不错的选择。有了它无需为你要使用的每样东西创建单独的浏览器帐户。 +例如,你可以在容器内登录你的谷歌帐户,谷歌永远不会知悉你在容器外的信息。 +对拥有多个帐户的人来说,此扩展程序是一个不错的选择。有了它无需为你要使用的每样东西创建单独的浏览器帐户。 好了,这就是 Firefox 的多帐户容器的基本知识。 -需要任何帮助,或者只是有一个一般的问题?请随时在评论区指出。 +需要任何帮助,或者只是有点问题?请随时在评论区指出。 -------------------------------------------------------------------------------- From 990eb4872868be1dcd2e30d120f473d3cd08332a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 9 Aug 2022 17:07:15 +0800 Subject: [PATCH 0691/3123] RP @geekpi https://linux.cn/article-14913-1.html --- ... Intuitive Open-Source Password Manager.md | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) rename {translated/tech => published}/20220801 Padloc- An Intuitive Open-Source Password Manager.md (59%) diff --git a/translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/published/20220801 Padloc- An Intuitive Open-Source Password Manager.md similarity index 59% rename from translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md rename to published/20220801 Padloc- An Intuitive Open-Source Password Manager.md index a0bcdc61da..bd21eb943d 100644 --- a/translated/tech/20220801 Padloc- An Intuitive Open-Source Password Manager.md +++ b/published/20220801 Padloc- An Intuitive Open-Source Password Manager.md @@ -3,59 +3,62 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14913-1.html" Padloc:一个直观的开源密码管理器 ====== -简介:探索具有令人愉悦的用户界面、跨平台可用的开源密码管理器。 -有大量适用于个人和团队的免费和高级密码管理器。 +![](https://img.linux.net.cn/data/attachment/album/202208/09/170622fcpzpcjmzxauwexw.jpg) + +> 让我们了解一下这个具有令人愉悦的用户界面、跨平台可用的开源密码管理器。 + +有大量适用于个人和团队的免费的和收费的密码管理器。 然而,当谈到开源方案时,它通常仅限于几个好的方案,如 [Seahorse][1]、[KeePassXC][2] 和 [Bitwarden][3]。 -如果您已阅读我们的 [Linux 最佳密码管理器][4]列表,你可能已经知道其中的一些。 +如果你已阅读过我们的 [Linux 最佳密码管理器][4]列表,你可能已经知道其中的一些。 -我偶然发现了另一个有趣的开源密码管理器,它可以因其用户体验而进入该列表,即 **Padloc**。 +我偶然发现了另一个有趣的开源密码管理器 **Padloc**,它可以因其用户体验而进入该列表。 ### Padloc:安全的跨平台密码管理器应用 ![padloc screenshot][5] -虽然 Padloc 不是超级流行,但它不仅仅是另一个开源密码管理器。 +虽然 Padloc 并不是特别流行,但它可不仅仅是又一个开源密码管理器。 -你可以通过应用和端到端加密来保护密码,从而获得令人耳目一新的用户体验。它旨在提供一个干净简单的界面来使用。 +你可以通过该应用和端到端加密来保护密码,从而获得令人耳目一新的用户体验。它旨在提供一个干净简单的界面来使用。 ![padloc light mode][6] -免费开始,但提供付费订阅以解锁大多数功能。 +提供免费版本,但提供付费订阅以解锁大多数功能。 它支持所有主要平台,包括 Linux、Windows、macOS、Android 和 iOS。 -你还可以获得 Mozilla Firefox 和 Google Chrome 的浏览器扩展以及所有可用的应用。因此,你也可以随时选择在网络浏览器上访问/使用它。 +你还可以获得 Mozilla Firefox 和谷歌 Chrome 的浏览器扩展以及所有可用的应用。因此,你也可以随时选择在浏览器上访问/使用它。 -有趣的是,直到最近,该项目近两年都没有看到任何重大更新。但是,它是一个积极维护的开源项目。 +有趣的是,直到最近,该项目近两年都没有看到任何重大更新。但是,这个开源项目一直在修修补补。 ### Padloc 的特点 ![padloc active sessions][7] -Padloc 提供一系列免费和高级功能。根据你的要求,你可以选择使用付费订阅进行升级。 +Padloc 提供一系列免费和收费功能。根据你的要求,你可以选择升级到付费订阅。 一些功能包括: -* 无限保管库项目 -* 无限设备 -* 通过电子邮件进行两因素身份验证 +* 保管库项目无限制 +* 设备数量无限制 +* 通过电子邮件进行双因素身份验证 * 添加标签 -* 生成唯一密码 -* Favicon 支持识别保管库项目 -* 暗/亮模式主题 +* 生成独特的密码 +* 支持使用 Favicon 来识别保管库项目 +* 深/浅模式主题 * 主动会话管理 * 导入/导出功能(加密容器/CSV) * 团队支持(付费) -* 多重身份验证(付费) +* 多因素身份验证(付费) * 记笔记(付费) * 文件附件(付费) * 安全报告(付费) @@ -68,17 +71,17 @@ Padloc 提供一系列免费和高级功能。根据你的要求,你可以选 Padloc 为你提供了多种适用于 Linux 的选项。你可以下载 AppImage、.deb、Snap 或 Flatpak 包。 -此外,你可以下载非 electron 桌面客户端版本,这很好! +此外,你可以下载非 electron 的桌面客户端版本,这很好! -我测试了 AppImage 文件,它运行良好。你可以按照我们的指南[使用 AppImage][9]、[设置 Flatpak][10] 或[安装 deb 包][11]开始使用。 +我测试了 AppImage 文件,它运行良好。你可以按照我们的指南 [使用 AppImage][9]、[设置 Flatpak][10] 或 [安装 deb 包][11] 开始使用。 -你可以查看其[官方网站][12]或 [GitHub 页面][13]了解更多信息。 +你可以查看其 [官方网站][12] 或 [GitHub 页面][13] 了解更多信息。 -[Padloc][14] +> **[Padloc][14]** ### 一个略显昂贵的密码管理器带来良好的用户体验 -它的用户界面和你使用它的整体体验给我留下了深刻的印象。 +它的用户界面和使用它的整体体验给我留下了深刻的印象。 如果你优先考虑用户界面、极简主义和开源技术,无论你决定免费使用还是付费使用,Padloc 都是一个有用的选择。 @@ -91,7 +94,7 @@ via: https://itsfoss.com/padloc/ 作者:[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/) 荣誉推出 From ca28d260fcd64c87b1aa01aadf142f21632a09a3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 9 Aug 2022 18:27:54 +0800 Subject: [PATCH 0692/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220809=20Github=20Takes=20Action=20To=20Prevent=20?= =?UTF-8?q?Supply=20Chain=20Attacks=20On=20Open=20Source.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ent Supply Chain Attacks On Open Source.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md diff --git a/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md new file mode 100644 index 0000000000..24495eaa18 --- /dev/null +++ b/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -0,0 +1,38 @@ +[#]: subject: "Github Takes Action To Prevent Supply Chain Attacks On Open Source" +[#]: via: "https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Github Takes Action To Prevent Supply Chain Attacks On Open Source +====== +A series of further software supply chain breaches have highlighted the essential need to secure software chains of custody in the wake of the 2020 SolarWinds cyberespionage campaign, in which Russian hackers infiltrated a widely used IT management platform and snuck contaminated upgrades into it. And since open source initiatives are fundamentally decentralised and frequently ad hoc activities, the problem is especially urgent in this context. After a slew of unsettling hacks of widely used JavaScript software packages from GitHub’s well-known “npm” registry, the business unveiled a strategy this week to provide improved open source security protections. + +The code-signing platform Sigstore will be supported by GitHub, which is owned by Microsoft, for npm software packages. Code signing is akin to a digital wax seal. In order to make it considerably simpler for open source maintainers to confirm that the code they produce is the same code that ultimately ends up in the software packages that are actually being downloaded by people globally, cross-industry collaboration led to the creation of the tool. + +GitHub is not the only part of the open source ecosystem, but Dan Lorenc, CEO of Chainguard, which is a co-developer of Sigstore, notes that it is a vital hub for the community because it is where the great majority of projects store and share their source code. However, developers usually visit a package management when they truly want to download open source software or tools. + +By making Sigstore available to package managers, developers may handle cryptographic checks and requirements as software goes through the supply chain with the help of the Sigstore tools. This increases transparency throughout every stage of the product’s journey. Many individuals, according to Lorenc, are astounded to learn that these integrity checks haven’t been implemented yet and that a sizable portion of the open source ecosystem has long relied on blind faith. The Biden White House released an executive order in May 2021 that dealt primarily with software supply chain security. + +The Linux Foundation, Google, Red Hat, Purdue University, and Chainguard all contributed to the development of Sigstore. There is now official software for signing Python package distributions using Sigstore, and Kubernetes, an open source environment for developing software, now supports it. + +Sigstore relies on being free and simple to use to encourage adoption, much as the major industry push to promote HTTPS web encryption, which was made possible in large part by tools like Let’s Encrypt from the nonprofit Internet Security Research Group. According to Github, the project will begin with a proposal on how Sigstore will be implemented for npm and an open comment period to get community input on the precise deployment strategy for the tool. However, the ultimate objective is to make such code signing available to as many open source projects as possible to make supply chain attacks considerably more challenging. + +“We want to see a world where eventually all software artifacts are signed and linked back to the source code,” GitHub’s Hutchings says. “That is why it is so important to build on an open technology stack like Sigstore that other packaging repositories can adopt as well.” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/ + +作者:[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 From da362006ea0c546d3cdd85145ef2a92df584d0ec Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 9 Aug 2022 18:28:43 +0800 Subject: [PATCH 0693/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220809=207=20Best=20Distributions=20Based=20on=20F?= =?UTF-8?q?edora=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...est Distributions Based on Fedora Linux.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md diff --git a/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md b/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md new file mode 100644 index 0000000000..6732a5a4c1 --- /dev/null +++ b/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md @@ -0,0 +1,148 @@ +[#]: subject: "7 Best Distributions Based on Fedora Linux" +[#]: via: "https://itsfoss.com/best-fedora-linux-distributions/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Best Distributions Based on Fedora Linux +====== + +There are dozens of Ubuntu-based distributions available out there. Ranging from [distributions for beginners][1] to [beautiful ones][2], Ubuntu dominates the Linux desktop space. + +You will also find some [weird Ubuntu-based distributions][3] if general distributions weren’t enough already. + +I am not going into [Ubuntu vs Fedora][4] debate. I am just saying that I will list some options if you want to try something in the Fedora domain. + +Please remember that I am not going towards the server-oriented Linux distributions. The list here is for **desktop Linux users**. + +The list is in no particular ranking order, and the options mentioned may not always be a good fit for a new user. So, make sure that you explore the documentation before installing any Fedora-based distro for the first time. + +### 1. Fedora spins + +![screenshot fedora cinnamon][5] + +There are plenty of Fedora spins, but not as many as Ubuntu has. + +[Fedora Spins][6] aren’t separate Fedora-based distributions but just different editions of Fedora with a [different desktop environment][7] or a tiling window manager. + +If you do not like the default GNOME desktop environment, you may download one of these spins. + +Some of the available options are: + +* Fedora KDE Plasma +* Fedora i3 Tiling Window Manager +* Fedora LXQt +* Fedora LXDE +* Fedora MATE-COMPIZ +* Fedora Cinnamon edition + +#### 2. Nobara + +![nobara][8] + +Once you start looking for [gaming distros][9], the chances of the list will be dominated by Debian and Arch derivatives are pretty high. So if you are looking for a gaming distro based on Fedora with the same polish, [Nobara][10] is all you need. + +Nobara is a gaming distro made by the maintainer of Proton GE who is also a member of the Lutris development team, so you can expect a next-level gaming experience out of the box! + +To bring a better experience, Nobara comes with 30+ pre-applied patches over Fedora and a set of gaming tools including Lutris, GOverlay, Stream, and ProtonUp. + +#### 3. Ultramarine + +![ultramarine][11] + +A Fedora-based distro that just works out of the box for a general audience that’s what you call [Ultramarine!][12] + +Ultramarine comes pre-installed with a bunch of tools, including Flathub, RPM fusion, and their own dedicated repository. + +You get a pre-configured desktop to make it look pleasant to the eyes, so you would no longer need to spare extra time for tweaks. + +Also, Ultramarine is the perfect option for those who are looking for fine-tuned experience with Pantheon and Budgie Desktop environments over Fedora base. + +#### 4. RisiOS + +![risios][13] + +A web-ready Fedora. + +That’s one way to describe [RisiOS,][14] but wait, there’s more to talk about. + +From getting users GUI for bash scripts to a welcome screen by which you can get your system ready in a few clicks, RisiOS has made using Fedora even easier! + +RisiOS also gets you the same web app manager that you get in Linux Mint, and it’s phenomenal. + +But before you jump to the download section, one thing to keep in mind is that RisiOS is still in beta (Big beta as the site says) and you may encounter some glitches. + +#### 5. Qubes OS + +![Qubes Os][15] + +[Qubes OS][16] is an interesting Linux distribution that gives you the freedom to choose what operating system you want to use as a base. It offers a Fedora template as well, and they regularly maintain it. + +In fact, Qubes OS is also a [privacy-focused Linux distribution][17]. So, you get cutting-edge tech while using something based on Fedora with complete freedom. + +It is worth noting that Qubes OS needs significant system resources with at least **8-16 GB** of RAM to work with and presents a challenging learning curve. + +#### 6. Berry Linux + +![berry linux][18] + +[Berry Linux][19] is a simple Fedora-based distribution that you can directly boot from a CD or any other medium. It supports automatic hardware detection and seems to be regularly maintained. + +Berry Linux offers support for both English and Japanese language. It comes pre-installed with some media players, photo editing applications, and basic applications. + +#### 7. ClearOS + +![clear os community edition][20] + +It isn’t the [Clear Linux project from Intel][21], though it sounds similar. + +[ClearOS][22] is a Fedora-based distribution tailored for the server environment or to help you run IT-related tasks and stream music/videos on your home network backed by HP. You must purchase both the home/business edition as per your requirements. + +There’s also a community edition if you do not want to purchase and can manage by yourself. + +### Thoughts? + +Long-time Linux users may remember Korora and Chapeau distros. They were popular among Fedora users once but the projects have been discontinued since then. + +While Fedora is awesome in itself, I am not against derivative distributions. Look at the success of Linux Mint. It is a derivative of Ubuntu but has garnered such a good userbase. Who knows if one of these Fedora-based distros get popular like Mint? + +Did I miss any Fedora-based active distros? What do you think about Fedora derivatives and its spin editions? Let me know in the comments below! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-fedora-linux-distributions/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-linux-beginners/ +[2]: https://itsfoss.com/beautiful-linux-distributions/ +[3]: https://itsfoss.com/weird-ubuntu-based-linux-distributions/ +[4]: https://itsfoss.com/ubuntu-vs-fedora/ +[5]: https://itsfoss.com/wp-content/uploads/2021/05/screenshot-fedora-cinnamon.jpg +[6]: https://spins.fedoraproject.org/ +[7]: https://itsfoss.com/best-linux-desktop-environments/ +[8]: https://itsfoss.com/wp-content/uploads/2022/08/nobara.png +[9]: https://itsfoss.com/linux-gaming-distributions/ +[10]: https://nobaraproject.org/ +[11]: https://itsfoss.com/wp-content/uploads/2022/08/ultramarine.png +[12]: https://ultramarine-linux.org/ +[13]: https://itsfoss.com/wp-content/uploads/2022/08/risios.png +[14]: https://risi.io/ +[15]: https://itsfoss.com/wp-content/uploads/2020/03/qubes-os.jpg +[16]: https://www.qubes-os.org/ +[17]: https://itsfoss.com/privacy-focused-linux-distributions/ +[18]: https://itsfoss.com/wp-content/uploads/2021/05/berry-linux.png +[19]: https://berry-lab.net/eberry.html +[20]: https://itsfoss.com/wp-content/uploads/2021/05/clear-os-community-edition.png +[21]: https://itsfoss.com/clear-linux/ +[22]: https://www.clearos.com From b5a452d4d6745ac079f206bd9f24a222c294935b Mon Sep 17 00:00:00 2001 From: yjacks Date: Tue, 9 Aug 2022 22:12:11 +0800 Subject: [PATCH 0694/3123] Delete 20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md --- ...se To Use CC0 Licensed Code As The Boot.md | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md diff --git a/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md deleted file mode 100644 index ad268c7547..0000000000 --- a/sources/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md +++ /dev/null @@ -1,49 +0,0 @@ -[#]: subject: "What Made Fedora Choose To Use CC0 Licensed Code As The Boot" -[#]: via: "https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: "yjacks" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What Made Fedora Choose To Use CC0 Licensed Code As The Boot -====== -![fedora-1024x614][1] - -Open source is a challenging concept. Many people interpret this to mean that they can use a specific piece of software however they choose and that it is free to download. The actual rights you as a user are granted, however, depend largely on which licence the developers chose to share their code under. Open source software can be expensive, can restrict how you can use it, and in rare circumstances, can even land you in legal trouble. - -The Fedora Project recently decided to reject all code that is licenced under the Creative Commons “Public Domain Dedication” CC0 licence in an effort to avoid precisely this situation. CC0 will soon be removed from the list of permissible code licences for all new submissions, however it will still be permitted for material like artwork and there might even be exceptions made for current packages on a case-by-case basis. - -It wouldn’t ordinarily make the news if Fedora objected to a software licence. In fact, the project rejects a number of licences that are on a fairly extensive list. The unexpected aspect of this situation is that CC0 was originally regarded as a valid licence, and is only now being reclassified as a result of a shift in perspective within the greater free and open source (FOSS) community. - -What exactly is wrong with CC0 that Fedora decided to stop supporting it, and does this indicate you shouldn’t use the licence for your own projects? - -The part of this narrative that may surprise those who are familiar with Creative Commons and its family of licences the most is that the Fedora Project formerly approved CC0 for software in the first place. After all, the goal from the beginning was to develop a range of licences expressly for artistic works. The organization’s mission and licence requirements are stated in the name itself. - -To “overcome legal hurdles to the sharing of information and creativity” by offering a free framework under which people and organisations might share things like music, artwork, or educational material, Creative Commons, the forerunner of the previous Open Content Project, was established in 2001. Software, however, was never a factor. Why might that be? At that time, important software licences like the MIT License and the GNU General Public License had already been around for more than ten years. - -It seems obvious that you should probably believe a company if they go out of their way to warn you that something they have made is unsuitable for a particular use. The Creative Commons FAQ lists a number of compelling arguments against using their licences for software, but one in particular jumps out for users like the Fedora Project: patent rights. - -This may seem contradictory given that the CC0 licence is meant for works in the public domain and that by using it, the creator expressly “waives all of his or her rights to the work globally under copyright law.” However, the issue is that copyright legislation does not apply to patents. In fact, a review of the license’s complete wording reveals that it directly tackles this in a worrying section that reads, “No trademark or patent rights held by Affirmer are waived, abandoned, relinquished, leased or otherwise modified by this document.” - -In other words, even while the author of something that has been licenced under CC0 may be willing to give up the rights to it, they are still free to patent it. What’s even worse is that they still retain the ability to use that patent however they see fit. Theoretically, this means that the creator of a piece of source code that was first made available under CC0 may later assert that anyone who utilised the code violated their patent and could demand royalties. - -It’s very obvious why something like this would worry the Fedora Project. Consider a scenario where CC0-licensed code is incorporated into a system’s core package and then made available to millions of users. Out of nowhere, the original creator appears, alleges patent violation, and wants payment. Could Red Hat’s or Fedora’s attorneys refute such a claim? Maybe. Is it worth it to use CC0 code in order to find out for sure? Zero chance. - -It’s important to note that this is not at anyway a new issue. In fact, back in 2012, the patent clause prevented the Open Source Initiative’s (OSI) License Review Committee from conclusively determining if CC0 genuinely complied with their definition of an open source licence. The Committee was unable to come to an agreement because its members believed that included such terms in a software licence would create a risky precedent. Fedora’s decision to ever accept CC0 in the first place is even more puzzling given its turbulent history. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/ - -作者:[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/08/fedora-1024x614-1-e1659346500461.jpg From 2d1bd580411bf348fe56d5a8ac139e8b7be81d3a Mon Sep 17 00:00:00 2001 From: yjacks Date: Wed, 10 Aug 2022 02:32:03 +0800 Subject: [PATCH 0695/3123] Update 20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md --- ...ose To Use CC0 Licensed Code As The Boot.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md index 8e8dd66b48..83d091a93f 100644 --- a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md +++ b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md @@ -6,32 +6,32 @@ [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -什么让 Fedora 一开始选择 CC0 许可证释出 +为什么 Fedora 一开始允许使用 CC0 许可证 ====== ![fedora-1024x614][1] -开源这个概念是具有挑战性的。许多认为,开源意味着可以任意的使用软件中的部分,或是免费下载。这实际上取决于你如何被许可,这主要取决于开发者使用何种许可分享他们的代码。开源软件可以使收费的,可以限你如何去使用它,甚至使你陷入法律麻烦。 +开源是一个具有挑战性的概念。许多人认为,开源意味着可以任意的使用软件,亦或者是免费下载。这实际上取决于你如何被许可——开发者分享代码时使用的许可证决定了它。开源软件可以是收费的,也可以限制你如何去使用它,甚至让你陷入法律麻烦。 -Fedora 项目最近决定拒绝所有使用 CC "公共领域贡献" CC0 许可证,以避免 CC0 许可的代码的出现。CC0 将从对所有新提交的允许的代码许可证列表中剔除,然而,像艺术品这样的部分仍将被允许,甚至可能对目前的软件包逐一进行处理。 +Fedora 项目最近决定拒绝所有使用 知识共享Creative Commons "公共领域贡献" CC0 许可证开放的代码,以避免 CC0 许可的代码的出现。CC0 将从新提交代码中准许使用的许可证列表中剔除,但是,像艺术品一类的贡献仍被允许,甚至可能对目前的包进行逐一的处理。 -CC0 是因为什么让 Fedora 决定停止支持它,这又是不是表示你不能在你自己的项目中使用它呢? +CC0 是因为什么让 Fedora 决定停止支持它,这又是不是意味着你不能在你自己的项目中使用它呢? -这一叙述中最让熟悉 CC 及其许可系列的人感到惊讶的部分是,Fedora项目最初就批准了CC0的软件。毕竟,从一开始的目标就是为艺术作品开发一系列明确的许可证。该组织的使命和许可证要求在其名称中就有说明。 +这一段描述让最熟悉 CC 及其许可系列的人惊讶的是,Fedora 最初允许了 CC0 的软件。毕竟, CC 从一开始的目标是为艺术作品提供一系列明确的许可证。该组织的使命和许可证的要求在其名称——知识共享中就有体现。 -为了"克服分享信息和创造力的法律障碍",他们提供了一个在人们与组织分享如音乐、医术或教育材料的自由的框架,知识共享的前身——开放内容项目Open Content Project,创建于2001年。然而,软件从来不是一个因素。为什么呢?那时,如 MIT 、 GPL 一类的重要的软件许可证已经出现了十几年。 +为了"克服分享信息和创造力的法律障碍",他们提供了一个自由框架来为人们组织分享如音乐、医学或教育材料的资源,知识共享的前身——开放内容项目Open Content Project,创建于2001年。然而,软件从来不是组成它的要素。为什么呢?因为那时,如 MIT 、 GPL 一类的重要的软件许可证已经出现了十几年。 很明显,在一些特定的领域,你也许需要相信一个公司的创造是无害的。CC FAQ 列出了说些反对使用他们的软件许可证的令人信服的论据,但对于像Fedora项目这样的用户来说,有一个问题特别突出:专利权。 -也许是很明显的,使用 CC0 许可证意味着在公共领域使用它,它很明确的表示“在全球范围内放弃他或她根据版权法对该作品的所有权利。”但是,问题在于,版权法并不适用于专利。事实上,仔细审视许可证的完整措辞后可以发现,它在一个令人担忧的部分直接解决了这个问题,该部分内容如下“宣告者拥有的任何商标或专利权都没有被放弃、抛弃、放弃、租赁或以其他方式被本文件修改。” +也许是很明显的,使用 CC0 许可证意味着在公共领域使用它,它很明确的表示“在全球范围内放弃他或她根据版权法对该作品的所有权利。”但是,问题在于,版权法并不适用于专利。事实上,仔细审视许可证的完整措辞后可以发现,它在一个令人担忧的部分解决了这个问题,该部分内容如下:“宣告者拥有的任何商标或专利权都没有被放弃、抛弃、放弃、租赁或以其他方式被本文件修改。” -在别的措辞中,甚至当授权于 CC0 协议时——这意味着可能将放弃放弃对它的一切权力,他们仍然可以自由的为它申请专利。更糟糕的是,他们仍然保留着以他们认为合适的方式使用该专利的能力。 +在别的措辞中,甚至当授权在 CC0 许可证下时——这意味着可能将放弃放弃对它的一切权力,开发者仍然可以自由的为它申请专利。更糟糕的是,他们仍然保留着以他们认为合适的方式使用该专利的能力。 理论上来说,这意味着最初在CC0下提供的源代码的人在发布了代码之后,他们可以断言任何使用该代码的人侵犯了他们的专利,并要求支付专利费。 这显然会让像 Fedora 这样的项目担忧。考虑到 CC0 授权的场景是组成系统的核心包,然后将被用于数以百万计的用户。不知道从哪里冒出来的原创作者,声称侵犯了专利权,并要求付款。红帽或 Fedora 的律师可以驳倒这种说法么?也许吧。那么,有使用 CC0 代码的价值么?没有。 -要着重提到的是,这完全不是一个新问题。实际上,回到 2012 年,专利法阻止了开源倡议(OSI)许可证的审查委员会。因此,他们无法最终确定CC0是否真正符合他们对开放源代码许可的定义。委员会未能达成一致意见,因为其成员认为将此类条款纳入软件许可将创造一个危险的先例。考虑到Fedora动荡的历史,它最初接受CC0的决定着实让人费解。 +要着重提到的是,这完全不是一个新问题。实际上,回到 2012 年,专利法阻止了开源倡议(OSI)许可证的审查委员会。因此,他们无法最终确定 CC0 是否真正符合他们对开放源代码许可的定义。委员会未能达成一致意见,因为其成员认为将此类条款纳入软件许可将创造一个危险的先例。考虑到 Fedora 动荡的历史,它最初接受 CC0 的决定着实让人费解。 -------------------------------------------------------------------------------- From 8dbcd7dafaac6b91ea8f14fae6d70c9ec95d375a Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 10 Aug 2022 08:33:10 +0800 Subject: [PATCH 0696/3123] translated --- ...804 3 ways to take screenshots on Linux.md | 71 ------------------- ...804 3 ways to take screenshots on Linux.md | 71 +++++++++++++++++++ 2 files changed, 71 insertions(+), 71 deletions(-) delete mode 100644 sources/tech/20220804 3 ways to take screenshots on Linux.md create mode 100644 translated/tech/20220804 3 ways to take screenshots on Linux.md diff --git a/sources/tech/20220804 3 ways to take screenshots on Linux.md b/sources/tech/20220804 3 ways to take screenshots on Linux.md deleted file mode 100644 index 93a4a48ca3..0000000000 --- a/sources/tech/20220804 3 ways to take screenshots on Linux.md +++ /dev/null @@ -1,71 +0,0 @@ -[#]: subject: "3 ways to take screenshots on Linux" -[#]: via: "https://opensource.com/article/22/8/screenshots-linux" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -3 ways to take screenshots on Linux -====== -Save time by taking screenshots on Linux with one of my favorite tools. - -![Digital creative of a browser on the internet][1] - -When writing about open source software, I prefer to show a few screenshots to help demonstrate what I'm talking about. As the old saying goes, a picture is worth a thousand words. If you can show a thing, that's often better than merely trying to describe it. - -There are a few ways you can take screenshots in Linux. Here are three methods I use to capture screenshots on Linux: - -### 1. GNOME - -GNOME has a great built-in screenshot tool. Just hit the **PrtScr** key on your keyboard, and GNOME displays a screenshot dialog: - -![Image of GNOME screenshot tool][2] - -The default action is to grab a screenshot of a region. This is an incredibly useful way to crop a screenshot as you make it. Just move the highlight box to where you need it, and use the "grab" corners to change the size. Or select one of the other icons to take a screenshot of the entire screen, or just a single window on your system. Click the circle icon to take the screenshot, similar to the "take photo" button on mobile phones. The GNOME screenshot tool saves screenshots in a Screenshots folder inside your Pictures folder. - -### 2. GIMP - -If you need more options for screenshots, you can grab a screenshot using GIMP, the popular image editor. To take a screenshot, go to **File**and choose the **Create**submenu, and then choose **Screenshot**. - -![Image of the GIMP screenshot menu][3] - -The dialog allows you to take a screenshot of a single window, the entire screen, or just a region. I like that this tool lets you set a delay: how long until you select the window, and how long after that to take the screenshot. I use this feature a lot when I want to grab a screenshot of a menu action, so I have enough time to go to the window and open the menu. - -GIMP opens the screenshot as a new image, which you can edit and save to your preferred location. - -### 3. Firefox - -If you need to take a screenshot of a website, try Firefox's built-in screenshot utility. Right-click anywhere in the web page body, and select **Take Screenshot** from the menu: - -![Image of screenshot utility][4] -​ -Firefox switches to a modal display and prompts you to click or drag on the page to select a region, or use one of the icons to save a copy of the full page or just what's visible in the browser: - -![Image of Firefox modal display][5] - -As you move your mouse around the screen, you may notice that Firefox highlights certain areas. These are block elements on the page, such as a  `
` or another block element. Click on the element to take a screenshot of it. Firefox saves the screenshot to your **Downloads** folder, or wherever you have set as your "download" location. - -If you're trying to document a process, a screenshot can save you a lot of time. Try using one of these methods to take a screenshot on Linux. - -Image by: (Jim Hall, CC BY-SA 40) - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/screenshots-linux - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png -[2]: https://opensource.com/sites/default/files/2022-07/screenshot-gnome.png -[3]: https://opensource.com/sites/default/files/2022-07/gimp-screenshot.png -[4]: https://opensource.com/sites/default/files/2022-07/firefox-screenshot_cropped_0.png -[5]: https://opensource.com/sites/default/files/2022-07/firefox-screenshot_1.png diff --git a/translated/tech/20220804 3 ways to take screenshots on Linux.md b/translated/tech/20220804 3 ways to take screenshots on Linux.md new file mode 100644 index 0000000000..9d3b1e0e60 --- /dev/null +++ b/translated/tech/20220804 3 ways to take screenshots on Linux.md @@ -0,0 +1,71 @@ +[#]: subject: "3 ways to take screenshots on Linux" +[#]: via: "https://opensource.com/article/22/8/screenshots-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 上截屏的 3 种方法 +====== +通过使用我最喜欢的工具之一在 Linux 上截屏来节省时间。 + +![Digital creative of a browser on the internet][1] + +在写开源软件时,我更喜欢展示一些截图来帮助演示我在说什么。古语有云,一图胜千言。如果你能展示一件事,那通常比仅仅试图描述它要好。 + +有几种方法可以在 Linux 中截图。以下是我在 Linux 上用于捕获截图的三种方法: + +### 1. GNOME + +GNOME 有一个很棒的内置截图工具。只需按下键盘上的 **PrtScr** 键,GNOME 就会显示一个截图对话框: + +![Image of GNOME screenshot tool][2] + +默认操作是抓取区域的截图。这是一种在你制作截图时裁剪截图的非常有用的方法。只需将高亮显示框移动到你需要的位置,然后使用“抓取”角来更改大小。或选择其他图标之一以截取整个屏幕或系统上的单个窗口。点击圆圈图标进行截图,类似于手机上的“拍照”按钮。 GNOME 截图工具将截图保存在图片文件夹内的截图文件夹中。 + +### 2. GIMP + +如果你需要更多截图选项,你可以使用流行的图像编辑器 GIMP 截图。要进行截图,请选择**文件**并选择**创建**子菜单,然后选择**截图**。 + +![Image of the GIMP screenshot menu][3] + +该对话框允许你截取单个窗口、整个屏幕或仅一个区域的屏幕截图。我喜欢这个工具可以让你设置一个延迟:多长时间直到你选择窗口,多长时间之后截图。当我想截取菜单操作的截图时,我经常使用此功能,因此我有足够的时间去窗口打开菜单。 + +GIMP 将截图作为新图像打开,你可以对其进行编辑并保存到你喜欢的位置。 + +### 3. Firefox + +如果你需要截取网站的截图,请尝试使用 Firefox 的内置截图程序。右键单击网页正文中的任意位置,然后从菜单中选择**截图**: + +![Image of screenshot utility][4] + +Firefox 切换到模态显示并提示你单击或拖动页面以选择区域,或使用其中一个图标保存整个页面的副本或仅在浏览器中可见的内容: + +![Image of Firefox modal display][5] + +当你在屏幕上移动鼠标时,你可能会注意到 Firefox 会高亮显示某些区域。这些是页面上的块元素,例如 `
` 或其他块元素。单击该元素以对其进行截图。 Firefox 将截图保存到你的**下载**文件夹,或你设置为“下载”位置的任何位置。 + +如果你尝试记录流程,那么截图可以为你节省大量时间。尝试使用其中一种方法在 Linux 上截图。 + +图片来源:(Jim Hall,CC BY-SA 40) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/screenshots-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png +[2]: https://opensource.com/sites/default/files/2022-07/screenshot-gnome.png +[3]: https://opensource.com/sites/default/files/2022-07/gimp-screenshot.png +[4]: https://opensource.com/sites/default/files/2022-07/firefox-screenshot_cropped_0.png +[5]: https://opensource.com/sites/default/files/2022-07/firefox-screenshot_1.png From 83e17140d39fe012130e6a94862ecad673a98e62 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 10 Aug 2022 08:34:52 +0800 Subject: [PATCH 0697/3123] translating --- ...807 List Files and Directories in Style Using lsd and exa.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md b/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md index 3c9bca92ed..783e48f7bc 100644 --- a/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md +++ b/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/list-files-directories-style/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 86e3f18877ac7f0428498d8ef776c2f13560b95b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 10 Aug 2022 10:51:03 +0800 Subject: [PATCH 0698/3123] RP @Yufei-Yan https://linux.cn/article-14915-1.html --- ...s an Ethernet splitter slow down speed-.md | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) rename {translated/tech => published}/20220716 Does an Ethernet splitter slow down speed-.md (54%) diff --git a/translated/tech/20220716 Does an Ethernet splitter slow down speed-.md b/published/20220716 Does an Ethernet splitter slow down speed-.md similarity index 54% rename from translated/tech/20220716 Does an Ethernet splitter slow down speed-.md rename to published/20220716 Does an Ethernet splitter slow down speed-.md index 5efe411d77..fd3d0fc56c 100644 --- a/translated/tech/20220716 Does an Ethernet splitter slow down speed-.md +++ b/published/20220716 Does an Ethernet splitter slow down speed-.md @@ -2,45 +2,47 @@ [#]: via: "https://www.debugpoint.com/ethernet-splitter-speed/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: "MCGA" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Yufei-Yan" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14915-1.html" 以太网分离器会降低网速吗? ====== -这批文章详细总结了以太网分离器,以及它们的速度,还有常见问题等信息,来帮助你选择最合适的硬件。 +![](https://img.linux.net.cn/data/attachment/album/202208/10/104845ishhhse3meqzuamd.jpg) -交换机Switch集线器Hub,还有以太网分离器Ethernet Splitter是用来帮助扩展网络的网络设备。这其中,最基础的设备就是小巧的以太网分离器了。它们是可以将一个以太网信号分成两个的小型设备。它们简单易用,并且还便宜。这可以算是最简单的网络设备之一了,因为他们不需要提供电源,也不需要特定的按键或者 LED 灯来提示状态。只是在一个小设备上有三个以太网端口,其中两个在一侧,另一个在另一侧。有些品种是在一侧有带着一小段 [RJ45][1] 网线的连接,另一侧是两个以太网端口。 +> 这篇文章详细总结了以太网分离器,以及它们的速度,还有各种常见问题等信息,来帮助你选择最合适的硬件。 + +交换机Switch集线器Hub,还有以太网分离器Ethernet Splitter 是用来帮助扩展网络的网络设备。这其中,最基础的设备就是小巧的以太网分离器了。它们是一种小型设备,可以将一个以太网信号分成两个。它们简单易用,并且还便宜。这可以算是最简单的网络设备之一了,因为它们不需要提供电源,也没有特定的按键或者 LED 灯来提示状态。只是在一个小设备上有三个以太网端口,其中两个在一侧,另一个在另一侧。有些品种是在一侧有带着一小段 [RJ45][1] 接口的网线,另一侧是两个以太网端口。 尽管在网络世界中,分离器已经存在了相当长一段时间了,很多人还是不知道如何有效使用它们。与普遍的看法相反的是,以太网分离器应该总是成对购买。直接把分离器的一端和路由器连接,再把两个设备与分离器的两个端口连接,这样是不行的。想让分离器在网络中正常工作,是有一个正确的设置技巧的。 ### 如何使用以太网分离器进行一个基本的设置 -要从主信号源连接两个在不同房间的设备,以太网分离器是非常方便的。大多数情况下,它们可以节约网线、墙上的网络出口,以及提供可靠的连接 。就像之前说的,以太网分离器是成对卖的。一个分离器把信号从设备(通常是路由器)上合并,然后另一个把信号分成两个信道,这样就可以让两个设备通信了。 +要让不同房间的两个设备连接到主信号源,以太网分离器是非常方便的。大多数情况下,它们可以节约网线、墙上的网络插座,并提供了可靠的连接。就像之前说的,以太网分离器是成对出售的。一个分离器将来自设备(通常是路由器)上的信号合并,然后另一个把信号分成两个信道,这样就可以让两个设备通信了。 -路由器在房间 A,两个 PC 在房间 B,但是每个房间的墙上只有一个以太网接口。这种情况下,就需要一个分离器,两条网线网线连到路由器上,网线的另外一端连到分离器上,然后分离器的另一端连到房间 A 墙上的接口。这样路由器的两个信号就合并到一起了。接下来,另一个分离器只有一个端口的那一端接到房间 B 墙上的接口上。从房间 A 合并的信号现在就会分成两个,这样在房间 B 里面,你就可以有两个以太网端口了。 +路由器在房间 A,两个 PC 在房间 B,但是每个房间的墙上只有一个以太网插座。这种情况下,就需要一个分离器,两条网线连到路由器上,网线的另外一端连到分离器上,然后分离器的另一端连到房间 A 墙上的接口。这样路由器的两个信号就合并到一起了。接下来,另一个分离器只有一个端口的那一端接到房间 B 墙上的接口上。从房间 A 合并的信号现在就会分成两个,这样在房间 B 里面,你就可以有两个以太网端口了。 -分离器的优势是它可以大量减少墙上的接口,也会大量减少你这种情况下所需的网线。它会帮你避免“网线地狱”,因为这样会以 2 的倍数降低所需要的端口/网线。 +分离器的优势是它可以大量减少墙上的接口,也会大量减少你这种情况下所需的网线。它会帮你避免“网线地狱”,因为这样会将所需要的端口/网线降低两倍。 ![sample diagram using ethernet splitter][2] ### 以太网分离器会降低网速吗? -网络连接会变慢吗?这可能是你想到的常见问题之一。好吧,答案取决于你的网络类型。理想情况下,分离器是 BASE-T 标准,也就是快速以太网Fast Ethernet。它们可以支持高达 Mbps 的速度。 +网络连接会变慢吗?这可能是你想到的常见问题之一。好吧,答案取决于你的网络类型。理想情况下,分离器是 BASE-T 标准,也就是快速以太网Fast Ethernet。它们可以支持高达 Mbps 级的速度。 -答案是不,如果分离器在一个 100Mbps 的网络中使用,它是不会降低网速的。然而,如果你的路由器可以传输 1Gbps,然后你在中间用了一个分离器,那么带宽将被限制在 100Mbps。这种情况下,分离器确实会限制速度,连接会变慢。 +如果分离器在一个 100Mbps 的网络中使用,答案是否定的,它是不会降低网速的。然而,如果你的路由器可以提供 1Gbps 传输速率,然后你在中间用了一个分离器,那么带宽将被限制在 100Mbps。这种情况下,分离器确实会限制速度,连接会变慢。 ### 以太网分离器的优势和劣势 -以太网分离器在一些情况下很有用,但是它们也有一些缺点。对于小白来说,每个以太网端口只能提供最高 100Mbps 的速度。因为这个限制,网络中能够提供高于 100Mbps 的资源就不能被合理优化了。另外,因为你能连接的设备数量被限制在两个,如果你有两个以上的设备,以太网分离器并不是最佳选择。 +以太网分离器在一些情况下很有用,但是它们也有一些缺点。首先,每个以太网端口只能提供最高 100Mbps 的速度。因为这个限制,网络中能够提供高于 100Mbps 的资源就不能被合理优化了。另外,因为你能连接的设备数量被限制在两个,如果你有两个以上的设备,以太网分离器并不是最佳选择。 此外,如果路由器只剩下一个以太网端口,使用分离器是不现实的;这时候就只能做一些牺牲了。然后,尽管它们可以减少把两个网络合并所需要的网线,这种方式需要两个分离器才能工作。 -相反的,以太网分离器也有一些优势。它们比起常见的网络设备要便宜,也不需要复杂的设置。不像其他网络设备,它们也不需要软件和其他配置。在设备不多的家庭网络中,比如说一个房间最多两个设备,以太网分离器是一个绝佳的选择。如果你只需要 100Mbps 的网络,只有两个设备要连接,以太网分离器是最好的选项。 +另一方面,以太网分离器也有一些优势。它们比起传统的网络设备要便宜,也不需要复杂的设置。不像其他网络设备,它们也不需要软件和其他配置。在设备不多的家庭网络中,比如说一个房间最多两个设备,以太网分离器是一个很好的选择。如果你只需要 100Mbps 的网络,只有两个设备要连接,以太网分离器是最好的选项。 -以太网分离器出现已经很长时间了,但是由于非常简单,也没有太多可以改进的空间。它们仍然是基于过时的快速以太网Fast Ethernet标准,这也许和今天高速网络的需求有点格格不入。尽管有它们的优势,大多数情况下,它们还真不是一个现实的解决方案。随着现在技术的进步,以太网分离器的前景依然光明。也许某个天才可以让他用在千兆以太网Gigabit Ethernet标准上。 +以太网分离器出现已经很长时间了,但是由于非常简单,也没有太多可以改进的空间。它们仍然是基于过时的 快速以太网Fast Ethernet 标准,这也许和今天高速网络的需求有点格格不入。尽管有它们的优势,大多数情况下,它们还真不是一个现实的解决方案。随着现在技术的进步,以太网分离器的前景依然光明。也许某个天才可以让它用在 千兆以太网Gigabit Ethernet 标准上。 现在你已经对以太网分离器有一些了解了,下面是一些常见问题(FAQ)。 @@ -48,7 +50,7 @@ #### 可以把一条以太网线分到两个设备上吗? -如果你想把一条以太网线分到两个设备上,这是可以想象的。然而,这就需要买一个以太网线共享分离套件。分离器套件可以让多个设备同时使用同一条网线。如果你想把 PC 和笔记本,或者 PC 和游戏主机,同时连到同一个网线上,这是个不错的选择。 +如果你想把一条以太网线分到两个设备上,这是很正常的想法。然而,这就需要买一个以太网线共享分离套件。分离器套件可以让多个设备同时使用同一条网线。如果你想把 PC 和笔记本,或者 PC 和游戏主机,同时连到同一个网线上,这是个不错的选择。 说到连接速度,以太网线会超过其他连接方式。当有些东西需要快速连接,比如说游戏,以太网线通常都是最好的选择。 @@ -58,7 +60,7 @@ 两个设备可以连到一个以太网端口。然而,就像之前说的,你需要使用网线共享套件。这是因为每个以太网连接是为一个单个设备设计的。 -有了以太网线共享套件,你就可以给一个以太网端口连上多个设备了,这对于家庭网络来说是非常方便的。如果你有几个以太网连接可用,然后需要很多的 LAN 连接,这肯定有用。 +有了以太网线共享套件,你就可以给一个以太网端口连上多个设备了,这对于家庭网络来说是非常方便的。如果你有不多的几个以太网连接可用,然后需要很多的 LAN 连接,这肯定有用。 还需要说的一点是,如果你有多余的以太网端口可用,如果是这种情况,最好的选择是给每个设备分配一个端口。当这种情况不行的时候,网线共享套件或者分离器是一个完美的备选方案。 @@ -66,17 +68,19 @@ 以太网分离器和交换机工作起来差不多,但是从根本上是不同的。以太网分离器可以在同一根以太网线上运行两个独立的连接。然而,这最多就是两个连接。如果你只想要一个另外的设备连到这个以太网上,这是个不错的选择。但是,再有其他设备就不行了。 -如果你想往一个以太网连接上连很多个设备,就需要买一个以太网交换机。除了可以允许多于两个设备连接外,交换机和以太网分离起相似。如果有很多要连接的设备,但是只有几个以太网端口,交换机是非常方便的,比如说你正在连接很多设备到 LAN。 +如果你想往一个以太网连接上连很多个设备,就需要买一个以太网交换机。除了可以允许多于两个设备连接外,交换机和以太网分离器相似。如果有很多要连接的设备,但是只有几个以太网端口,交换机是非常方便的,比如说你正在连接很多设备到 LAN。 -在他们支持多个设备的时候,需要记住的是,它们也需要供电。交换机和分离器的另一个不同是,分离器不要供电,可以直接连到以太网端口。 +虽然它们支持堆叠,但需要记住的是,它们也需要供电。交换机和分离器的另一个不同是,分离器不要供电,可以直接连到以太网端口。 #### 我需要以太网交换机还是分离器? 你要连接的设备的数量决定了是需要一个交换机还是分离器。如果只需要连两个设备,可以用以太网分离器,也不用给他供电。 -相反的,如果需要连好几设备,以太网交换机是一个理想的解决方案。它可以连接几个设备到同一个以太网端口,但是它需要供电。 +相反的,如果需要连几个设备,以太网交换机是一个理想的解决方案。它可以连接几个设备到同一个以太网端口,但是它需要供电。 -我希望这篇指南能帮你了解以太网分离器以及如果使用它们。从网上可以以很低的价格买到。然而,如果需要超过 100Mbps 的速度,也许你需要给你的网络配置一下线路。 *[这篇文章是我们硬件指南的一部分。][5]* +我希望这篇指南能帮你了解以太网分离器以及如果使用它们。从网上可以以很低的价格买到。然而,如果需要超过 100Mbps 的速度,也许你需要给你的网络配置一下线路。 + +[这篇文章是我们硬件指南的一部分。][5] *Featured Photo by Jainath Ponnala on Unsplash* @@ -86,7 +90,7 @@ via: https://www.debugpoint.com/ethernet-splitter-speed/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[Yufei-Yan](https://github.com/译者ID) +译者:[MCGA](https://github.com/Yufei-Yan) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e2dd3de53c5b50d3958328d2228c549b3e0d7305 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 10 Aug 2022 11:47:11 +0800 Subject: [PATCH 0699/3123] RP @FYJNEVERFOLLOWS https://linux.cn/article-14916-1.html --- ...a chess game using bit-fields and masks.md | 82 +++++++++---------- 1 file changed, 37 insertions(+), 45 deletions(-) rename {translated/tech => published}/20210823 Write a chess game using bit-fields and masks.md (58%) diff --git a/translated/tech/20210823 Write a chess game using bit-fields and masks.md b/published/20210823 Write a chess game using bit-fields and masks.md similarity index 58% rename from translated/tech/20210823 Write a chess game using bit-fields and masks.md rename to published/20210823 Write a chess game using bit-fields and masks.md index 93acc16746..db02788dab 100644 --- a/translated/tech/20210823 Write a chess game using bit-fields and masks.md +++ b/published/20210823 Write a chess game using bit-fields and masks.md @@ -3,18 +3,19 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lujun9972" [#]: translator: "FYJNEVERFOLLOWS" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14916-1.html" 使用位字段和掩码写一个国际象棋游戏 ====== -使用位字段和掩码是不用数据结构组合数据的常用方法。 -![Chess pieces on a chess board][1] + +> 使用位字段和掩码是不用数据结构组合数据的常用方法。 + +![](https://img.linux.net.cn/data/attachment/album/202208/10/114605qzfzztj2uupb7zuw.jpg) 假设你在用 C 语言写一个国际象棋游戏。追踪棋盘上棋子的一种方法是定义一个结构,该结构定义了棋盘上每个可能的棋子及其颜色,因此每个格子都包含该结构中的一个元素。例如,你可以将结构定义成下面这样: - ``` struct chess_pc {    int piece; @@ -24,63 +25,56 @@ struct chess_pc { 有了这个数据结构,你的程序就会知道每个格子里是什么棋子及棋子的颜色。你可以快速识别出棋子是兵、车、马、象、后还是王,以及棋子是黑还是白。但是,有一种更直接的方法来跟踪这些信息,同时只用更少的数据和内存。与为棋盘上的每个方格存储两个 `int` 值的结构不同,我们可以存储单个 `int` 值,并使用二进制位字段和掩码来标识每个方格中的棋子和颜色。 - ### 比特和二进制 -当使用位字段表示数据时,我们最好像计算机一样思考。让我们从列出可能的棋子开始,并为每个棋子分配一个数字。我将帮助我们进入下一个步骤,用二进制表示这个数字,也就是按照计算机追踪它的方式。记住,二进制数是由比特组成的,比特要么是 0,要么是 1。 - - * `00000000:` 空 (0) - * `00000001:` 兵 (1) - * `00000010:` 车 (2) - * `00000011:` 马 (3) - * `00000100:` 象 (4) - * `00000101:` 后 (5) - * `00000110:` 王 (6) - +当使用位字段表示数据时,我们最好像计算机一样思考。让我们从列出可能的棋子开始,并为每个棋子分配一个数字。让我们进入下一个步骤,用二进制表示这个数字,也就是按照计算机追踪它的方式。记住,二进制数是由比特组成的,比特要么是 0,要么是 1。 + * `00000000:` 空(0) + * `00000001:` 兵(1) + * `00000010:` 车(2) + * `00000011:` 马(3) + * `00000100:` 象(4) + * `00000101:` 后(5) + * `00000110:` 王(6) 要列出一个棋盘上的所有棋子,我们只需要三个比特从右到左依次代表值 1、2 和 4。例如,数字 6 是二进制的 110。6 的二进制表示中的其他所有位都是 0。 -一个聪明一点的方法:我们可以使用那些额外的总为零的比特来跟踪一个棋子是黑还是白。我们可以使用数字 8(二进制 `00001000`)来表示棋子是否为黑色。如果这一位是 1,则代表该棋子是黑色;如果是 0,则代表该棋子是白色。这被称为**位字段**,稍后我们可以使用二进制**掩码**将其取出。 +一个聪明一点的方法:我们可以使用那些额外的总是为零的比特来跟踪一个棋子是黑还是白。我们可以使用数字 8(二进制 `00001000`)来表示棋子是否为黑色。如果这一位是 1,则代表该棋子是黑色;如果是 0,则代表该棋子是白色。这被称为**位字段**,稍后我们可以使用二进制**掩码**将其取出。 ### 用位字段存储数据 要编写一个使用位字段和掩码的国际象棋程序,我们可以从以下定义开始: - ``` /* 棋子 */ -#define EMPTY 0 // 空 -#define PAWN 1 // 兵 -#define ROOK 2 // 车 -#define KNIGHT 3 // 马 -#define BISHOP 4 // 象 -#define QUEEN 5 // 后 -#define KING 6 // 王 +#define EMPTY 0 // 空 +#define PAWN 1 // 兵 +#define ROOK 2 // 车 +#define KNIGHT 3 // 马 +#define BISHOP 4 // 象 +#define QUEEN 5 // 后 +#define KING 6 // 王 /* 棋色 */ -#define BLACK 8 // 黑 -#define WHITE 0 // 白 +#define BLACK 8 // 黑 +#define WHITE 0 // 白 /* 掩码 */ #define PIECE 7 ``` -当你为一个棋格赋值时,比如初始化棋盘,你可以赋一个 `int` 类型的值来跟踪棋子及其颜色。例如,要在棋盘的 0,0 位置存储棋子黑车,你可以使用下面的代码: - +当你为一个棋格赋值时,比如初始化棋盘,你可以赋一个 `int` 类型的值来跟踪棋子及其颜色。例如,要在棋盘的 `0,0` 位置存储棋子黑车,你可以使用下面的代码: ```   int board[8][8]; - .. -   board[0][0] = BLACK | ROOK; ``` -`|` 是二进制或符号,这意味着计算机将合并两个数字的比特。对于每个比特的位置,如果**任意一个**数字的比特为 1,该位置比特的结果也是 1。`BLACK` 的值(8,即二进制下的 `00001000`)和 `ROOK` 的值(2,即二进制下的 `00000010`)的二进制或结果是二进制下的 `00001010`,即 10: +`|` 是二进制“或”(`OR`)操作符,这意味着计算机将合并两个数字的比特。对于每个比特的位置,如果**任意一个**数字的比特为 1,该位置比特的结果也是 1。`BLACK` 的值(8,即二进制下的 `00001000`)和 `ROOK` 的值(2,即二进制下的 `00000010`)的二进制或结果是二进制下的 `00001010`,即 10: ```     00001000 = 8 @@ -89,14 +83,13 @@ struct chess_pc {     00001010 = 10 ``` -类似地,要在棋盘的 6,0 位置存储一个白色兵,你可以这样做: - +类似地,要在棋盘的 `6,0` 位置存储一个白色兵,你可以这样做: ```   board[6][0] = WHITE | PAWN; ``` -这样存储的值就是 `WHITE` (0) 和 `PAWN` (1) 的二进制或的结果,也即是 1。 +这样存储的值就是 `WHITE`(0)和 `PAWN`(1)的二进制或的结果,也即是 1。 ```     00000000 = 0 @@ -109,19 +102,16 @@ struct chess_pc { 在下棋过程中,程序需要知道棋格中的棋子和它的颜色。我们可以使用二进制掩码来分离这部分。 -举个例子,程序可能需要知道棋局中棋盘上特定棋格的内容,例如位于 `board[5][3]` 的数组元素。这个是什么棋子,是黑的还是白的?为了识别棋子,使用二进制和 (AND) 将元素的值与掩码 `PIECE` 结合起来: - +举个例子,程序可能需要知道棋局中棋盘上特定棋格的内容,例如位于 `board[5][3]` 的数组元素。这个是什么棋子,是黑的还是白的?为了识别棋子,使用二进制“与”(`AND`)操作符将元素的值与掩码 `PIECE` 结合起来: ```   int board[8][8];   int piece; - .. -   piece = board[5][3] & PIECE; ``` -二进制与 (AND) 操作符 (`&`) 将两个二进制值结合,这样对于任意位,如果两个数字中的那个位**都是** 1,那么结果也是 1。例如,如果 `board[5][3]` 的值是 11(二进制下的 `00001011`),那么 11 和 掩码 `PIECE`(7,二进制下的 `00000111`)二进制与的结果为二进制下的 `00000011`,也即 3。这代表马,马的值是 3。 +二进制“与”(`AND`)操作符(`&`)将两个二进制值结合,这样对于任意位,如果两个数字中的那个位**都是** 1,那么结果也是 1。例如,如果 `board[5][3]` 的值是 11(二进制下的 `00001011`),那么 11 和 掩码 `PIECE`(7,二进制下的 `00000111`)二进制与的结果为二进制下的 `00000011`,也即 3。这代表马,马的值是 3。 ```     00001011 = 11 @@ -129,8 +119,8 @@ AND 00000111 = 7     ________     00000011 = 3 ``` -解析棋子的颜色是一个简单的事情,只需要将棋子的值与 `BLACK` 位字段进行二进制与操作。比如,你可以写一个名为 `is_black` 的函数来确定棋子是黑还是白: +解析棋子的颜色是一个简单的事情,只需要将棋子的值与 `BLACK` 位字段进行二进制与操作。比如,你可以写一个名为 `is_black` 的函数来确定棋子是黑还是白: ``` int @@ -139,10 +129,12 @@ is_black(int piece)   return (piece & BLACK); } ``` -这样之所以有效,是因为 `BLACK` 的值为 8(二进制下的 `00001000`)。在 C 语言中,任何非零值都被视为 True,零总是 False。所以如果 `5,3` 处的棋子是黑色的,则 `is_black(board[5][3])` 返回 True 值 (8);如果是白色的,则返回 False 值 (0)。 + +之所以可以这样,是因为 `BLACK` 的值为 8(二进制下的 `00001000`)。在 C 语言中,任何非零值都被视为 `True`,零总是 `False`。所以如果 `5,3` 处的棋子是黑色的,则 `is_black(board[5][3])` 返回 True 值(8);如果是白色的,则返回 False 值(0)。 ### 位字段 -使用位字段和掩码是不使用结构组合数据的常用方法。它们值得被程序员收藏到“工具包”中。虽然数据结构对于需要跟踪相关数据的有序编程是一种有价值的工具,但是使用单独的元素来跟踪单个的 On 或 Off 值(例如棋子的颜色)的效率较低。在这些情况下,可以考虑使用位字段和掩码来更高效地组合数据。 + +使用位字段和掩码是不使用结构组合数据的常用方法。它们值得被程序员收藏到“工具包”中。虽然数据结构对于需要跟踪相关数据的有序编程是一种有价值的工具,但是使用单独的元素来跟踪单个的开或闭值(例如棋子的颜色)的效率较低。在这些情况下,可以考虑使用位字段和掩码来更高效地组合数据。 -------------------------------------------------------------------------------- @@ -151,7 +143,7 @@ via: https://opensource.com/article/21/8/binary-bit-fields-masks 作者:[Jim Hall][a] 选题:[lujun9972][b] 译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 583f468e6426973c6edadced5884323bb8316f0a Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Wed, 10 Aug 2022 01:03:21 -0500 Subject: [PATCH 0700/3123] Translating. --- sources/tech/20210921 3 ways to test your API with Python.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210921 3 ways to test your API with Python.md b/sources/tech/20210921 3 ways to test your API with Python.md index a996dfc7a4..f1464864f9 100644 --- a/sources/tech/20210921 3 ways to test your API with Python.md +++ b/sources/tech/20210921 3 ways to test your API with Python.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/9/unit-test-python" [#]: author: "Miguel Brito https://opensource.com/users/miguendes" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "Yufei-Yan" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 13666bb9ced61463fcf21d332a39ceed0df1f2cf Mon Sep 17 00:00:00 2001 From: yjacks Date: Wed, 10 Aug 2022 17:38:36 +0800 Subject: [PATCH 0701/3123] Update 20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md --- ... Fedora Choose To Use CC0 Licensed Code As The Boot.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md index 83d091a93f..9725c45697 100644 --- a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md +++ b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md @@ -17,17 +17,17 @@ Fedora 项目最近决定拒绝所有使用 知识共享Creative Commo CC0 是因为什么让 Fedora 决定停止支持它,这又是不是意味着你不能在你自己的项目中使用它呢? -这一段描述让最熟悉 CC 及其许可系列的人惊讶的是,Fedora 最初允许了 CC0 的软件。毕竟, CC 从一开始的目标是为艺术作品提供一系列明确的许可证。该组织的使命和许可证的要求在其名称——知识共享中就有体现。 +这一段描述让最熟悉 CC 及其许可系列的人惊讶的是,Fedora 最初允许了 CC0 的软件。毕竟, 知识共享从一开始的目标是为艺术作品提供一系列明确的许可证。该组织的使命和许可证的要求在其名称——知识共享中就有体现。 -为了"克服分享信息和创造力的法律障碍",他们提供了一个自由框架来为人们组织分享如音乐、医学或教育材料的资源,知识共享的前身——开放内容项目Open Content Project,创建于2001年。然而,软件从来不是组成它的要素。为什么呢?因为那时,如 MIT 、 GPL 一类的重要的软件许可证已经出现了十几年。 +为了"克服分享信息和创造力的法律障碍",他们提供了一个自由框架来为人们组织分享如音乐、医学或教育材料的资源,知识共享组织的前身——开放内容项目Open Content Project,创建于2001年。然而,软件从来不是组成它的要素。为什么呢?因为那时,如 MIT 、 GPL 一类的重要的软件许可证已经出现了十几年。 -很明显,在一些特定的领域,你也许需要相信一个公司的创造是无害的。CC FAQ 列出了说些反对使用他们的软件许可证的令人信服的论据,但对于像Fedora项目这样的用户来说,有一个问题特别突出:专利权。 +很明显,在一些特定的领域,你也许需要相信一个公司的创造是无害的。CC FAQ 列出了说些反对使用他们的软件许可证的令人信服的论据,但对于像 Fedora 项目这样的用户来说,有一个问题特别突出:专利权。 也许是很明显的,使用 CC0 许可证意味着在公共领域使用它,它很明确的表示“在全球范围内放弃他或她根据版权法对该作品的所有权利。”但是,问题在于,版权法并不适用于专利。事实上,仔细审视许可证的完整措辞后可以发现,它在一个令人担忧的部分解决了这个问题,该部分内容如下:“宣告者拥有的任何商标或专利权都没有被放弃、抛弃、放弃、租赁或以其他方式被本文件修改。” 在别的措辞中,甚至当授权在 CC0 许可证下时——这意味着可能将放弃放弃对它的一切权力,开发者仍然可以自由的为它申请专利。更糟糕的是,他们仍然保留着以他们认为合适的方式使用该专利的能力。 -理论上来说,这意味着最初在CC0下提供的源代码的人在发布了代码之后,他们可以断言任何使用该代码的人侵犯了他们的专利,并要求支付专利费。 +理论上来说,这意味着最初在 CC0 下提供的源代码的人在发布了代码之后,他们可以断言任何使用该代码的人侵犯了他们的专利,并要求支付专利费。 这显然会让像 Fedora 这样的项目担忧。考虑到 CC0 授权的场景是组成系统的核心包,然后将被用于数以百万计的用户。不知道从哪里冒出来的原创作者,声称侵犯了专利权,并要求付款。红帽或 Fedora 的律师可以驳倒这种说法么?也许吧。那么,有使用 CC0 代码的价值么?没有。 From b160f1fa283ead4b0e34a0ad4ef5b262d4bb0f74 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 11 Aug 2022 05:02:47 +0800 Subject: [PATCH 0702/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220810?= =?UTF-8?q?=20Hibernation=20in=20Fedora=20Workstation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220810 Hibernation in Fedora Workstation.md --- ...20810 Hibernation in Fedora Workstation.md | 269 ++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 sources/tech/20220810 Hibernation in Fedora Workstation.md diff --git a/sources/tech/20220810 Hibernation in Fedora Workstation.md b/sources/tech/20220810 Hibernation in Fedora Workstation.md new file mode 100644 index 0000000000..816ab3205f --- /dev/null +++ b/sources/tech/20220810 Hibernation in Fedora Workstation.md @@ -0,0 +1,269 @@ +[#]: subject: "Hibernation in Fedora Workstation" +[#]: via: "https://fedoramagazine.org/hibernation-in-fedora-36-workstation/" +[#]: author: "Alexander Wellbrock https://fedoramagazine.org/author/w4tsn/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Hibernation in Fedora Workstation +====== + +![][1] + +Photo by [Beth Jnr][2] on [Unsplash][3] + +This article walks you through the manual setup for hibernation in Fedora Linux 36 Workstation using BTRFS and is based on a [gist by eloylp on github][4]. + +### Goal and Rationale + +Hibernation stores the current runtime state of your machine – effectively the contents of your RAM, onto disk and does a clean shutdown. Upon next boot this state is restored from disk to memory such that everything, including open programs, is how you left it. + +Fedora Workstation uses ZRAM. This is a sophisticated approach to swap using compression inside a portion of your RAM to avoid the slower on-disk swap files. Unfortunately this means you don’t have persistent space to move your RAM upon hibernation when powering off your machine. + +### How it works + +The technique configures _systemd_ and _dracut_ to store and restore the contents of your RAM in a temporary swap file on disk. The swap file is created just before and removed right after hibernation to avoid trouble with ZRAM. A persistent swap file is not recommended in conjunction with ZRAM, as it creates some confusing problems compromising your systems stability. + +### A word on compatibility and expectations + +Hibernation following this guide might not work flawless on your particular machine(s). Due to possible shortcomings of certain drivers you might experience glitches like non-working wifi or display after resuming from hibernation. In that case feel free to reach out to the comment section of the [gist on github][4], or try the tips from the troubleshooting section at the bottom of this article. + +The changes introduced in this article are linked to the systemd hibernation.service and hibernation.target units and hence won’t execute on their own nor interfere with your system if you don’t initiate a hibernation. That being said, if it does not work it still adds some small bloat which you might want to remove. + +### Hibernation in Fedora Workstation + +The first step is to create a btrfs sub volume to contain the swap file. + +``` + + $ btrfs subvolume create /swap + +``` + +In order to calculate the size of your swap file use _swapon_ to get the size of your _zram_ device. + +``` + + $ swapon + NAME TYPE SIZE USED PRIO + /dev/zram0 partition 8G 0B 100 + +``` + +In this example the machine has 16G of RAM and a 8G zram device. ZRAM stores roughly double the amount of system RAM compressed in a portion of your RAM. Let that sink in for a moment. This means that in total the memory of this machine can hold 8G * 2 + 8G of RAM which equals 24G uncompressed data. Create and configure the swapfile using the following commands. + +``` + + $ touch /swap/swapfile + # Disable Copy On Write on the file + $ chattr +C /swap/swapfile + $ fallocate --length 24G /swap/swapfile + $ chmod 600 /swap/swapfile + $ mkswap /swap/swapfile + +``` + +Modify the dracut configuration and rebuild your initramfs to include the + +resume + +module, so it can later restore the state at boot. + +``` + + $ cat <<-EOF | sudo tee /etc/dracut.conf.d/resume.conf + add_dracutmodules+=" resume " + EOF + $ dracut -f + +``` + +In order to configure grub to tell the kernel to resume from hibernation using the swapfile, you need the UUID and the physical offset. + +Use the following command to determine the UUID of the swap file and take note of it. + +``` + + $ findmnt -no UUID -T /swap/swapfile + dbb0f71f-8fe9-491e-bce7-4e0e3125ecb8 + +``` + +Calculate the correct offset. In order to do this you’ll unfortunately need _gcc_ and the [source of the btrfs_map_physical tool][5], which computes the physical offset of the swapfile on disk. Invoke gcc in the directory you placed the source in and run the tool. + +``` + + $ gcc -O2 -o btrfs_map_physical btrfs_map_physical.c + $ ./btrfs_map_physical /path/to/swapfile + + FILE OFFSET EXTENT TYPE LOGICAL SIZE LOGICAL OFFSET PHYSICAL SIZE DEVID PHYSICAL OFFSET + 0 regular 4096 2927632384 268435456 1 <4009762816> + 4096 prealloc 268431360 2927636480 268431360 1 4009766912 + 268435456 prealloc 268435456 3251634176 268435456 1 4333764608 + 536870912 prealloc 268435456 3520069632 268435456 1 4602200064 + 805306368 prealloc 268435456 3788505088 268435456 1 4870635520 + 1073741824 prealloc 268435456 4056940544 268435456 1 5139070976 + 1342177280 prealloc 268435456 4325376000 268435456 1 5407506432 + 1610612736 prealloc 268435456 4593811456 268435456 1 5675941888 + +``` + +The first value in the _PHYSICAL OFFSET_ column is the relevant one. In the above example it is **4009762816**. + +Take note of the _pagesize_ you get from _getconf PAGESIZE_. + +Calculate the kernel _resume_offset_ through division of _physical offset_ by the _pagesize_. In this example that is _4009762816 / 4096 = 978946_. + +Update your grub configuration file and add the _resume_ and _resume_offset_ kernel cmdline parameters. + +``` + + grubby --args="resume=UUID=dbb0f71f-8fe9-491e-bce7-4e0e3125ecb8 resume_offset=2459934" --update-kernel=ALL + +``` + +The created _swapfile_ is only used in the hibernation stage of system shutdown and boot hence not configured in _fstab_. Systemd units control this behavior, so create the two units _hibernate-preparation.service_ and _hibernate-resume.service_. + +``` + + $ cat <<-EOF | sudo tee /etc/systemd/system/hibernate-preparation.service + [Unit] + Description=Enable swap file and disable zram before hibernate + Before=systemd-hibernate.service + + [Service] + User=root + Type=oneshot + ExecStart=/bin/bash -c "/usr/sbin/swapon /swap/swapfile && /usr/sbin/swapoff /dev/zram0" + + [Install] + WantedBy=systemd-hibernate.service + EOF + $ systemctl enable hibernate-preparation.service + $ cat <<-EOF | sudo tee /etc/systemd/system/hibernate-resume.service + [Unit] + Description=Disable swap after resuming from hibernation + After=hibernate.target + + [Service] + User=root + Type=oneshot + ExecStart=/usr/sbin/swapoff /swap/swapfile + + [Install] + WantedBy=hibernate.target + EOF + $ systemctl enable hibernate-resume.service + +``` + +Systemd does memory checks on login and hibernation. In order to avoid issues when moving the memory back and forth between _swapfile_ and _zram_ disable some of them. + +``` + + $ mkdir -p /etc/systemd/system/systemd-logind.service.d/ + $ cat <<-EOF | sudo tee /etc/systemd/system/systemd-logind.service.d/override.conf + [Service] + Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1 + EOF + $ mkdir -p /etc/systemd/system/systemd-hibernate.service.d/ + $ cat <<-EOF | sudo tee /etc/systemd/system/systemd-hibernate.service.d/override.conf + [Service] + Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1 + EOF + +``` + +**Reboot your machine for the changes to take effect**. The following SELinux configuration won’t work if you don’t reboot first. + +SELinux won’t like hibernation attempts just yet. Change that with a new policy. An easy although “brute” approach is to initiate hibernation and use the audit log of this failed attempt via _audit2allow_. The following command will fail, returning you to a login prompt. + +``` + + systemctl hibernate + +``` + +After you’ve logged in again check the audit log, compile a policy and install it. The _-b_ option filters for audit log entries from last boot. The _-M_ option compiles all filtered rules into a module, which is then installed using _semodule -i_. + +``` + + $ audit2allow -b + #============= systemd_sleep_t ============== + allow systemd_sleep_t unlabeled_t:dir search; + $ cd /tmp + $ audit2allow -b -M systemd_sleep + $ semodule -i systemd_sleep.pp + +``` + +Check that hibernation is working via _systemctl hibernate_ again. After resume check that ZRAM is indeed the only active swap device. + +``` + + $ swapon + NAME TYPE SIZE USED PRIO + /dev/zram0 partition 8G 0B 100 + +``` + +You now have hibernation configured. + +### GNOME Shell hibernation integration + +You might want to add a hibernation button to the GNOME Shell “Power Off / Logout” section. Check out the extension [Hibernate Status Button][6] to do so. + +### Troubleshooting + +A first place to troubleshoot any problems is through _journalctl -b_. Have a look around the end of the log, after trying to hibernate, to pin-point log entries that tell you what might be wrong. + +Another source of information on errors is the Problem Reporting tool. Especially problems, that are not common but more specific to your hardware configuration. Have a look at it before and after attempting hibernation and see if something comes up. Follow up on any issues via BugZilla and see if others experience similar problems. + +### Revert the changes + +To reverse the changes made above, follow this check-list: + + * remove the swapfile + * remove the swap subvolume + * remove the dracut configuration and rebuild dracut + * remove kernel cmdline args via _grubby –remove-args=_ + * disable and remove hibernation preparation and resume services + * remove systemd overrides for _systemd-logind.service_ and _systemd-hibernation.service_ + * remove SELinux module via _semodule -r systemd_sleep_ + + + +### Credits and Additional Resources + +This article is a community effort based primarily on the work of eloylp. As author of this article I’d like to make transparent that I’ve participated in the discussion to advance the gist behind this but many more minds contributed to make this work. Make certain to check out the [discussion on github][7]. + +There are already some _ansible_ playbooks and shell scripts to automate the process depicted in this guide. For example check out the shell scripts by [krokwen][8] and [pietryszak][9] or the _ansible_ playbook by [jorp][10] + +See the [arch wiki][11] for the full guide on how to calculate the swapfile offset. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/hibernation-in-fedora-36-workstation/ + +作者:[Alexander Wellbrock][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/w4tsn/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2022/08/Hibernation_in_Fedora_Workstation-816x345.jpg +[2]: https://unsplash.com/@bthjnr?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/late-night-on-the-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://gist.github.com/eloylp/b0d64d3c947dbfb23d13864e0c051c67 +[5]: https://github.com/osandov/osandov-linux/blob/master/scripts/btrfs_map_physical.c +[6]: https://github.com/arelange/gnome-shell-extension-hibernate-status +[7]: https://gist.github.com/eloylp/b0d64d3c947dbfb23d13864e0c051c67?permalink_comment_id=3889734#gistcomment-3889734 +[8]: https://pastebin.com/nLSkaMQZ +[9]: https://github.com/pietryszak/fedora-hibernation +[10]: https://github.com/jorp/fedora_hibernate +[11]: https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file_on_Btrfs From c42d75e10256ac67aef6456386dd4620adc3b76b Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 11 Aug 2022 05:03:02 +0800 Subject: [PATCH 0703/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020220810?= =?UTF-8?q?=20Kali=20Linux=202022.3=20Introduces=20a=20Test=20Lab=20Enviro?= =?UTF-8?q?nment=20and=20New=20VirtualBox=20Image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md --- ...ab Environment and New VirtualBox Image.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md diff --git a/sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md b/sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md new file mode 100644 index 0000000000..a69443f2e8 --- /dev/null +++ b/sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md @@ -0,0 +1,98 @@ +[#]: subject: "Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image" +[#]: via: "https://news.itsfoss.com/kali-linux-2022-3-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image +====== + +Kali Linux is back with exciting additions for its third upgrade in 2022. + +As usual, you can expect new tools and refinements across the board. In addition, there are a few key highlights, including a **new test lab environment** and a **VirtualBox image**. + +Here, let me give you more details on the release. + +### Kali Linux 2022.3: What’s New? + +Kali Linux 2022.3 release marks the start of their **new Discord server**, allowing the community to get together and chat all about Kali Linux. + +Along with the community getting a Discord server, things that should grab your attention for the upgrade include: + + * **A new test lab environment for easy testing.** + * **Opening kali-tools repository for community submissions.** + * **New releases in NetHunter store.** + * **A new VirtualBox image format.** + * **Bunch of new tools.** + + + +### Test Lab Environment + +Kali Linux is tailored for security researchers to test and learn. But, to enhance the experience and make it effortless for anyone to build a test lab, Kali Linux now adds easy-to-install packages like [DVWA][1], and [Juice Shop][2]. + +The developers also mention that there will be more packages available in the near future. + +### New Tools + +The new upgrade includes five interesting tools, they are: + + * **BruteShark** (Network Analysis Tool) + * **DefectDojo** (Open-source application vulnerability) + * **phpsploit** (Stealth post-exploitation framework) + * **shellfire** (Exploiting command injection vulnerabilities) + * **SprayingToolkit** (Password attacks) + + + +You can explore the tools to learn more about it. + +### Enhanced VirtualBox Support + +While Kali Linux was already available for VMware and VirtualBox, we now have a new image format for VirtualBox users. + +You can now download a **VDI** disk image and a **.vbox** metadata file for VirtualBox. It is the native format for VirtualBox images, and faster to download, considering a better compression ratio. + +For users looking to be on the latest and greatest, Kali Linux has made **weekly builds of VM images available**, built from its rolling branch. + +Additionally, if you need to build your custom VM images, Kali Linux has made some scripts available on [GitLab][3]. + +### Other Improvements + +Kali Linux 2022.3 adds several significant upgrades to the table. Some include: + + * Linux Kernel 5.15 update for Raspberry Pi devices. + * Technical improvements for ARM devices. + * Documentation updates with new pages. + * Maintenance work for network repository. + * Numerous updates to the NetHunter store along with imminent Android 12 support. + + + +### Download Kali Linux 2022.3 + +You can find the latest Kali Linux 2022.3 ISO on its [official download page][4], along with the new VirtualBox image file and weekly update packages. + +[Kali Linux 2022.3][5] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kali-linux-2022-3-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://www.kali.org/tools/dvwa/ +[2]: https://www.kali.org/tools/juice-shop/ +[3]: https://gitlab.com/kalilinux/build-scripts/kali-vm +[4]: https://www.kali.org/get-kali/ +[5]: https://www.kali.org/get-kali/#kali-platforms From 3091bf16bd73e589b994d67980e3df82ff827c68 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 11 Aug 2022 09:06:13 +0800 Subject: [PATCH 0704/3123] translated --- ...808 Fix file permission errors on Linux.md | 75 ------------------- ...808 Fix file permission errors on Linux.md | 74 ++++++++++++++++++ 2 files changed, 74 insertions(+), 75 deletions(-) delete mode 100644 sources/tech/20220808 Fix file permission errors on Linux.md create mode 100644 translated/tech/20220808 Fix file permission errors on Linux.md diff --git a/sources/tech/20220808 Fix file permission errors on Linux.md b/sources/tech/20220808 Fix file permission errors on Linux.md deleted file mode 100644 index a8e6a7e6ba..0000000000 --- a/sources/tech/20220808 Fix file permission errors on Linux.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "Fix file permission errors on Linux" -[#]: via: "https://opensource.com/article/22/8/fix-file-permission-errors-linux" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fix file permission errors on Linux -====== -Don't let file permissions slow you down. Here's how to manage them on Linux and macOS. - -![open source button on keyboard][1] - -Image by: Opensource.com - -If you're sharing files between two users over the network or "sneaker net" (saving a file to a hard drive and copying it to a computer), you may encounter permission errors when you try to read or write the file. Even if you understand the concept of , you may not know exactly how to diagnose the problem or solve it. I used to perform data migration as a service, so I've run into my fair share of permission errors and ownership conflicts. Here's how I fix them fast. - -### 1. Determine the correct user - -Before you can fix a permission error, you must determine who requires permission. You might think you already know that, but what you may not realize is that the user *name* isn't the most definitive attribute of user identity. Your computer doesn't see you as a person so much as it sees you as a number. To learn your number, take a look at your user ID: - -``` -$ id --user -1005 -``` - -### 2. Get the current owner - -Next, determine the owner of the file you're unable to interact with. Because there's a file permission problem happening, you may need to use the `sudo` command to see the information about the file: - -``` -$ sudo ls --numeric-uid-gid --rw------- 1 1000 100  23041 Aug  2 05:26 bar --rw------- 1 1000 100  54281 Aug  2 04:58 baz --rw------- 1 1000 100    822 Aug  2 08:19 foo -``` - -In this example, the user owning the files is identified as user ID 1000, and that's why user ID 1005 can't interact with them. Worse yet, the files are marked as readable and writable only by the user that owns them, so not even members of the same group can interact with the files. - -### 3. Change permissions to match - -You know the user requiring permission, so you can change the current owner to match your current user: - -``` -$ sudo chown 1005 foo -``` - -You can also grant members of your group, and possibly other users on the system, access to the files by changing the file mode. For instance, to maintain read and write permissions (7) while granting read permissions (4) to the group and any other user: - -``` -$ sudo chmod 744 foo -``` - -### Learn more - -File permissions can seem tricky when you're not comfortable with them. For more information on how file ownership works, read [Introduction to chown][2]. For more information on how file permissions work, read [Introduction to chmod][3]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/fix-file-permission-errors-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/button_push_open_keyboard_file_organize.png -[2]: https://opensource.com/article/19/8/linux-chown-command -[3]: https://opensource.com/article/19/8/linux-chmod-command diff --git a/translated/tech/20220808 Fix file permission errors on Linux.md b/translated/tech/20220808 Fix file permission errors on Linux.md new file mode 100644 index 0000000000..db6f61a2cc --- /dev/null +++ b/translated/tech/20220808 Fix file permission errors on Linux.md @@ -0,0 +1,74 @@ +[#]: subject: "Fix file permission errors on Linux" +[#]: via: "https://opensource.com/article/22/8/fix-file-permission-errors-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +修复 Linux 上的文件权限错误 +====== +不要让文件权限减慢你的速度。以下是在 Linux 和 macOS 上管理它们的方法。 + +![open source button on keyboard][1] + +图片来源:Opensource.com + +如果你通过网络或“跑腿网络”(将文件保存到硬盘并将其复制到计算机)在两个用户之间共享文件,那么在尝试读取或写入文件时可能会遇到权限错误。即使你了解它的概念,你也可能不知道该如何诊断或解决问题。我曾经将数据迁移作为一项服务执行,因此我遇到了相当多的权限错误和所有权冲突。这是我快速修复它们的方法。 + +### 1. 确定正确的用户 + +在修复权限错误之前,你必须确定谁需要权限。你可能认为你已经知道这一点,但你可能没有意识到*用户名*并不是用户身份的最确定属性。你的计算机不会将你视为一个人,而是将你视为一个数字。要了解你的号码,请查看您的用户 ID: + +``` +$ id --user +1005 +``` + +### 2. 获取当前所有者 + +接下来,确定你无法与之交互的文件的所有者。由于发生了文件权限问题,你可能需要使用 `sudo` 命令查看有关文件的信息: + +``` +$ sudo ls --numeric-uid-gid +-rw------- 1 1000 100 23041 Aug 2 05:26 bar +-rw------- 1 1000 100 54281 Aug 2 04:58 baz +-rw------- 1 1000 100 822 Aug 2 08:19 foo +``` + +在此示例中,拥有文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与它们交互的原因。更糟糕的是,这些文件仅由拥有它们的用户标记为可读和可写,因此即使是同一组的成员也不能与这些文件进行交互。 + +### 3. 更改权限以匹配 + +你知道需要权限的用户,因此你可以更改当前所有者以匹配你当前的用户: + +``` +$ sudo chown 1005 foo +``` + +你还可以通过更改文件模式授予你的组成员以及系统上可能的其他用户对文件的访问权限。例如,在向组和任何其他用户授予读取权限 (4) 的同时保持读取和写入权限 (7): + +``` +$ sudo chmod 744 foo +``` + +### 了解更多 + +当你对文件权限不熟悉时,它们似乎很棘手。有关文件所有权如何工作的更多信息,请阅读 [chown 简介][2]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/fix-file-permission-errors-linux + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/button_push_open_keyboard_file_organize.png +[2]: https://opensource.com/article/19/8/linux-chown-command \ No newline at end of file From 86f40b4effa41a283bcfc71da9d64487586700bc Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 11 Aug 2022 09:12:35 +0800 Subject: [PATCH 0705/3123] translating --- ...02 How I use the Linux sed command to automate file edits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md index 6da228a981..e70e689651 100644 --- a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md +++ b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md @@ -3,7 +3,7 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "perfiffer" -[#]: reviewer: " " +[#]: reviewer: "geekpi" [#]: publisher: " " [#]: url: " " From 394b92b59774a16d2fe572af8103fb11429245b5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 11 Aug 2022 09:50:45 +0800 Subject: [PATCH 0706/3123] Revert "translating" This reverts commit 86f40b4effa41a283bcfc71da9d64487586700bc. --- ...02 How I use the Linux sed command to automate file edits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md index e70e689651..6da228a981 100644 --- a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md +++ b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md @@ -3,7 +3,7 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "perfiffer" -[#]: reviewer: "geekpi" +[#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6f900afc91f1080a9a7ef38c3aaff0afbd996090 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 11 Aug 2022 09:52:38 +0800 Subject: [PATCH 0707/3123] translating --- ...yrics for Currently Playing Music on the Desktop in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md index 975ba657ca..c32bb92d67 100644 --- a/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md +++ b/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/sunamu-music-widget/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b0e6fad2ddb309b4e6181fe5b271b95277ce317e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 11 Aug 2022 14:48:49 +0800 Subject: [PATCH 0708/3123] RP @geekpi https://linux.cn/article-14918-1.html --- ...1 AI, ML and DL- What-s the Difference-.md | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) rename {translated/tech => published}/20220801 AI, ML and DL- What-s the Difference-.md (51%) diff --git a/translated/tech/20220801 AI, ML and DL- What-s the Difference-.md b/published/20220801 AI, ML and DL- What-s the Difference-.md similarity index 51% rename from translated/tech/20220801 AI, ML and DL- What-s the Difference-.md rename to published/20220801 AI, ML and DL- What-s the Difference-.md index 5774b2fc3d..d2d7776bcb 100644 --- a/translated/tech/20220801 AI, ML and DL- What-s the Difference-.md +++ b/published/20220801 AI, ML and DL- What-s the Difference-.md @@ -3,27 +3,28 @@ [#]: author: "Bala Kalavala https://www.opensourceforu.com/author/bala-kalavala/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14918-1.html" -人工智能、机器学习和深度学习:有什么区别? +人工智能(AI)、机器学习(ML)和深度学习(DL):有什么区别? ====== -我们经常交替使用人工智能、机器学习和深度学习这些术语,尽管我们几乎每天都阅读或听到它们。本文解释了这些技术是如何演变的以及它们有何不同。 + +> 我们经常交替使用人工智能(AI)、机器学习(ML)和深度学习(DL)这些术语,尽管我们几乎每天都阅读或听到它们。本文解释了这些技术是如何演变的以及它们有何不同。 ![AI ML and DL What’s the Difference][1] -人工智能 (AI)、机器学习 (ML) 和深度学习 (DL) 通常可以互换使用。但是,它们并不完全相同。人工智能是最广泛的概念,它赋予机器模仿人类行为的能力。机器学习是将人工智能应用到系统或机器中,帮助其自我学习和不断改进。最后,深度学习使用复杂的算法和深度神经网络来重复训练特定的模型或模式。 +人工智能Artificial Intelligence(AI)、机器学习Machine Learning(ML)和深度学习Deep Learning(DL)通常可以互换使用。但是,它们并不完全相同。人工智能是最广泛的概念,它赋予机器模仿人类行为的能力。机器学习是将人工智能应用到系统或机器中,帮助其自我学习和不断改进。最后,深度学习使用复杂的算法和深度神经网络来重复训练特定的模型或模式。 让我们看看每个术语的演变和历程,以更好地理解人工智能、机器学习和深度学习实际指的是什么。 #### 人工智能 -自过去 70 多年以来,人工智能已经取得了长足的进步,它渗透到我们生活的方方面面,无论我们是否知道,也不管喜欢与否。在过去十年中,机器学习和深度学习的进步已经在各种规模的行业和组织中创造了人工智能热潮。云服务提供商通过开发免费的开源服务和提供新的场景来增加势头。 +自过去 70 多年以来,人工智能已经取得了长足的进步。无论我们是否知道,也不管喜欢与否,,它已经渗透到了我们生活的方方面面。在过去十年中,机器学习和深度学习的进步已经在各种规模的行业和组织中创造了人工智能热潮。云服务提供商通过开发免费的开源服务和提供新的场景进一步推动的这种势头。 ![Figure 1: Overview of AI, ML and DL][2] -人工智能可能是自 1956 年以来最受关注的概念。到 2015 年,GPU 的广泛使用使并行处理更快、更强大、更便宜。更便宜的选择导致大数据的大量存储(纯文本到图像、映射等)。这产生了对数据分析的需求,更普遍地称为数据科学,导致机器学习发展为实现人工智能的方法。 +人工智能可能是自 1956 年以来最受关注的概念。到 2015 年,GPU 的广泛使用使并行处理更快、更强大、更便宜。而愈加廉价的存储可以大规模地存储大数据(从纯文本到图像、映射等)。这产生了对数据分析的需求,它被更普遍地称为数据科学data science,导致机器学习发展为实现人工智能的方法。 #### 机器学习 @@ -35,13 +36,13 @@ #### 深度学习 -深度学习是神经网络和机器学习的进化,是人工智能社区的创意。它了解人类思维在特定场景中的工作方式,然后在这项工作上比人类做得更好!例如,IBM 的 Watson 与自己下国际象棋,并在游戏中取得了很大进步,最终击败了世界冠军。谷歌的 AlphaGo 也学会了如何玩围棋游戏,一遍又一遍地玩它以提高自己,并成为冠军。 +深度学习是神经网络和机器学习的进化,是人工智能社区的创意。它学习了人类思维在特定场景中的工作方式,然后在这项工作上比人类做得更好!例如,IBM 的 Watson 与自己下国际象棋,并在游戏中取得了很大进步,最终击败了世界冠军。谷歌的 AlphaGo 也学会了如何玩围棋游戏,一遍又一遍地玩它以提高自己,并成为冠军。 -人工智能、机器学习和深度学习正在不断发展。参与数据科学的每个人都希望推进这些概念以改善我们的日常生活。好在开源社区、私营企业、科学家和政府机构都在为此共同努力。 +人工智能、机器学习和深度学习正在不断发展。参与数据科学的每个人都希望推进这些概念以改善我们的日常生活。而开源社区、私营企业、科学家和政府机构都在为此共同努力。 ![Figure 3: Types of AI, ML and DL][4] -总而言之,虽然 AI 有助于创建智能机器,但机器学习有助于构建 AI 驱动的应用。 深度学习是机器学习的一个子集。它通过利用复杂算法处理大量数据来训练特定模型。由于狭义 AI 极难开发,机器学习正在通过刚性计算解决这一领域的机遇。 至少对于实现通用 AI,深度学习有助于将 AI 和机器学习结合在一起。 +总而言之,虽然 AI 有助于创建智能机器,但机器学习有助于构建 AI 驱动的应用。深度学习是机器学习的一个子集。它通过利用复杂算法处理大量数据来训练特定模型。由于狭义 AI 极难开发,机器学习正在通过刚性计算解决这一领域的机遇。至少对于实现通用 AI,深度学习有助于将 AI 和机器学习结合在一起。 -------------------------------------------------------------------------------- @@ -50,7 +51,7 @@ via: https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/ 作者:[Bala Kalavala][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/) 荣誉推出 From 822150e7bce0d562a055c5c468223b07873cc5f2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 11 Aug 2022 15:07:16 +0800 Subject: [PATCH 0709/3123] RP @Yufei-Yan https://linux.cn/article-14919-1.html --- ...cal reference to a remote branch in Git.md | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) rename {translated/tech => published}/20220805 Delete the local reference to a remote branch in Git.md (65%) diff --git a/translated/tech/20220805 Delete the local reference to a remote branch in Git.md b/published/20220805 Delete the local reference to a remote branch in Git.md similarity index 65% rename from translated/tech/20220805 Delete the local reference to a remote branch in Git.md rename to published/20220805 Delete the local reference to a remote branch in Git.md index eabe45aa6b..afa9dc3749 100644 --- a/translated/tech/20220805 Delete the local reference to a remote branch in Git.md +++ b/published/20220805 Delete the local reference to a remote branch in Git.md @@ -3,34 +3,30 @@ [#]: author: "Agil Antony https://opensource.com/users/agantony" [#]: collector: "lkxed" [#]: translator: "Yufei-Yan" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14919-1.html" -删除 Git 上远程分支的本地引用 +删除 Git 远程分支的本地引用 ====== -遵循几个简单的步骤来保持 Git 仓库的整洁 +![](https://img.linux.net.cn/data/attachment/album/202208/11/150612dv5diwgve5k2cobk.jpg) -![A diagram of a branching process][1] +> 遵循几个简单的步骤来保持 Git 仓库的整洁 -Image by: Opensource.com - -图片来源:Opensource.com - -在合并一个 GibLab 或 GitHub 的 pull request 后,通常需要从远程仓库中删掉这个主题分支来保持仓库的整洁。然而,这只会删掉远程仓库的主题分支。本地 Git 仓库也会从例行清理中收益。 +在合并一个 GibLab 的合并请求(MR)或 GitHub 的拉取请求(PR)后,你通常需要从远程仓库中删掉这个主题分支来保持仓库的整洁。然而,这只会删掉远程仓库的主题分支。本地 Git 仓库也会从例行清理中收益。 要同步本地仓库和远程仓库的信息,可以执行 `git prune` 命令来删除本地仓库中远程分支的本地引用。 按照以下三个简单的步骤: -### 1. 检出仓库中的核心分支(比如 main 或者 master) +1、检出仓库中的核心分支(比如 `main` 或者 `master`): ``` $ git checkout ``` -### 2. 列出所有远程和本地分支 +2、列出所有远程和本地分支: ``` $ git branch -a @@ -48,7 +44,7 @@ $ git branch -a 在这个例子中,`test-branch` 是从远程仓库中删除的主题分支的名字。 -### 3. 删除远程分支的本地引用 +3、删除远程分支的本地引用: 首先,列出所有可以从本地仓库中删除的分支: @@ -82,9 +78,9 @@ URL: git@example.com:myorg/mydata-4.10.git ### 维护 Git 仓库 -保持 Git 仓库的整洁,一开始似乎并不紧急,但是随着仓库规模的增长,删除不必要的数据就变得更为重要。不要因为需要从无用的数据中挣脱出来而降低你的节奏。 +保持 Git 仓库的整洁,一开始似乎并不紧急,但是随着仓库规模的增长,删除不必要的数据就变得更为重要。不要让从无用的数据筛选而拖慢你。 -经常删除远程分支的本地引用,对于维护一个可用的 Git 仓库是一个非常好的习惯。 +经常删除远程分支的本地引用,是维护一个可用的 Git 仓库是一个好方法。 -------------------------------------------------------------------------------- @@ -92,8 +88,8 @@ via: https://opensource.com/article/22/8/delete-local-reference-remote-branch-gi 作者:[Agil Antony][a] 选题:[lkxed][b] -译者:[https://github.com/Yufei-Yan](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Yufei-Yan](https://github.com/Yufei-Yan) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 14f329c8bf08d7dc8ae1770d47baf3606c679d23 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 18:56:48 +0800 Subject: [PATCH 0710/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220810=20Cutefish=20OS=20Development=20Restarts=20?= =?UTF-8?q?with=20A=20Revised=20Vision.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...elopment Restarts with A Revised Vision.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md diff --git a/sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md b/sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md new file mode 100644 index 0000000000..68fbc2bd1b --- /dev/null +++ b/sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md @@ -0,0 +1,72 @@ +[#]: subject: "Cutefish OS Development Restarts with A Revised Vision" +[#]: via: "https://www.debugpoint.com/cutefish-development-restarts/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Cutefish OS Development Restarts with A Revised Vision +====== +After a month of possible discussions, talks and threads, Cutefish OS officially restarts its development. + +A while back, I wrote that [Cutefish OS stopped development][1], and there is no activity on GitHub. Well, it looks like the developers resurrected the project on GitHub with some vision of the future of the OS. + +On July 31st, the main GitHub repo of Cutefish OS is updated with the following: + +> Your Favorite CutefishOS are back now!New website in the works (coming soon) + +Not only that, but the team also gave a brief about the roadmap of this project. + +![Cutefish OS - Application Menu][2] + +### Cutefish OS Development – Upcoming Milestones + +Firstly, the primary object is the official website preparation. + +Secondly, the next release would probably be based on [Ubuntu 22.04 LTS][3], as per the note on GitHub. Cutefish OS was available with different spins, such as Ubuntu and Debian. Also, you could install only the [Cutefish Desktop in Arch Linux][4]. + +Thirdly, the team aims to assess current issues and start accepting pull requests. After completing this exercise, it would be easier to prioritize the items that needed fixing. And finally, planning for the new features for future releases. + +Not only that but there is also a possibility of a new Cutefish flavour with openEuler Linux. The [openEuler Linux][5] is a distribution created by Huawei for commercial and enterprise uses. + +![Current Cutefish OS Plan][6] + +### A New Name? + +When I was looking for additional information, I found that the team registered a new domain with a new name, i.e. [openfish.org][7]. The desktop environment or entire OS would be renamed to openfish. It’s just a guess from my side at this point. + +The old domain cutefishos.com was probably taken over by someone else, hence the decision. + +But, in my opinion, “openfish” is a better branding name than “cutefish”. + +### What’s Next + +The last version of version 0.8 had several issues related to the Keyboard, settings windows, Flatpak apps, etc. The best way is to fix those as a first step with the last baseline. Then probably a version 1.0 with additional features. + +Hopefully, we will get to see more updates on the development in the coming weeks. If you want to be heard and ask about expectations or feature requests, [create a post on GitHub][8]. + +Welcome back, Cutefish OS. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cutefish-development-restarts/ + +作者:[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/cutefish-os-development-halts/ +[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-Application-Menu-1024x582.jpg +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/cutefish-arch-linux-install/ +[5]: https://www.openeuler.org/en/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Current-Cutefish-OS-Plan.jpg +[7]: http://openfish.org/ +[8]: https://github.com/cutefishos/cutefishos/issues From 6ce5a3a536decf6006fecdc85487f355f3e6f947 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 18:58:02 +0800 Subject: [PATCH 0711/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220810=20Using=20Machine=20Learning=20to=20Identif?= =?UTF-8?q?y=20Reefs=20in=20the=20Ocean.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Learning to Identify Reefs in the Ocean.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/tech/20220810 Using Machine Learning to Identify Reefs in the Ocean.md diff --git a/sources/tech/20220810 Using Machine Learning to Identify Reefs in the Ocean.md b/sources/tech/20220810 Using Machine Learning to Identify Reefs in the Ocean.md new file mode 100644 index 0000000000..ea992561ad --- /dev/null +++ b/sources/tech/20220810 Using Machine Learning to Identify Reefs in the Ocean.md @@ -0,0 +1,159 @@ +[#]: subject: "Using Machine Learning to Identify Reefs in the Ocean" +[#]: via: "https://www.opensourceforu.com/2022/08/using-machine-learning-to-identify-reefs-in-the-ocean/" +[#]: author: "Geetali Saha https://www.opensourceforu.com/author/geetali-saha/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Using Machine Learning to Identify Reefs in the Ocean +====== + +*Various data and image processing techniques, along with machine learning algorithms, make it possible to study, analyse, understand and identify unknown and lesser-known facts via supervised or unsupervised learning. This article explains the use of PyQGIS to identify reefs in the Indian coastal region.* + +It was in the middle of the last century that mankind started exploring regions beyond the earth through satellites and space missions. This exploration is broadly classified into in situ or onsite observation and remote sensing. The in situ observations are limited and the major challenge is to reach out to parts of the Earth and space for monitoring the physical characteristics by acquiring information through reflected and emitted radiation. These can be achieved with the help of sensors and cameras on board satellites, aircraft, unmanned aerial vehicles and drones. Passive remote sensing involves the use of charge coupled devices, radiometers, film photography and infrared. Radars and LiDARs are active remote sensing elements that emit energy, and scan locations/objects based on the radiation that is reflected or back scattered from the target. The observations are either some data or image. + +Geographic information systems (GIS) integrate data, location, maps and information, thereby providing a platform to understand geographical patterns. Popular open source GIS tools are quantum GIS (QGIS), geographic resources analysis support systems (GRASS GIS), system for automated geoscientific analyses (SAGA GIS) and MapWindow. Machine learning owes its popularity to open source programming/GUI choices like WEKA, KNIME, R and Python programming. The merger of GIS and machine learning has opened new avenues in research to explore beyond what is visible through sensors. + +| | Raster maps | Vector maps | +| :- | :- | :- | +| Created by | Created with pixels | Created with mathematical formulae | +| Scaling | Quality loss when scaling is done | Scalable to any size | +| Programs used | Adobe Photoshop, Corel Painter, Gimp, Artweaver, Pixlr X | Adobe Illustrator, Sketch, Coreldraw, Affinity Designer, Inkscape | +| Comprise | Raster data is made up of pixels (also grid cells). These are usually regularly spaced and square | Real-world features in maps are represented as points, lines, and polygons (areas) | +| File types | .jpg, .png, .gif, .tiff, .psd, .bmp | .ai, .eps, .cdr, .svg, .pdf, .dfx | +| Advantages | The inherent nature of raster maps, e.g., one attribute maps, is ideally suited for mathematical modelling and quantitative analysis. | Topology rules can help data integrity with vector data models. Network analysis and proximity operations use such an approach. | +| Drawback | Raster maps reflect only one attribute or characteristic for an area. Processing of diverse characteristics becomes cumbersome | Vector data is processing intensive. Any feature edits require updates on topology. With many features, vector manipulation algorithms are complex | + +resources analysis support systems (GRASS GIS), system for automated geoscientific analyses (SAGA GIS) and MapWindow. Machine learning owes its popularity to open source programming/GUI choices like WEKA, KNIME, R and Python programming. The merger of GIS and machine learning has opened new avenues in research to explore beyond what is visible through sensors. + +In this article we are using the Python console of the quantum GIS platform — PyQGIS. + +Maps are available either in raster or vector form for study and we can choose them depending on our task, software and region of interest. Vector data is focused on modelling discrete features with precise shapes and boundaries. Raster data is more about modelling continuous phenomena of the earth and images. The same can be imported to the Project template of the QGIS window. + +The map used in the present setup is downloaded from [https://www.naturalearthdata.com.][1] Natural Earth Vector comes in ESRI shapefile format, the de facto standard for vector geodata. Character encoding is UTF-8. Natural Earth Raster comes in TIFF format with a TFW world file. All Natural Earth data uses the geographic coordinate system (projection), WGS84 datum. Natural Earth shapefile character encoding is specified in the code page flag in the shapefile’s DBF file; for additional compatibility it is also specified in the CPG file. Natural Earth’s WGS84 projection is specified in shapefile’s PRJ file. + +![Figure 1: PyQGIS process flow][2] + +Natural Earth is a public domain map data set available at 1:10m, 1:50m, and 1:110m scales. Featuring tightly integrated vector and raster data, with Natural Earth you can make a variety of visually pleasing, well-crafted maps with cartography or GIS software. Natural Earth was built through a collaboration of many volunteers and is supported by NACIS (North American Cartographic Information Society). It is free for use in any type of project. + +The present map belongs to a category of most detailed maps — major coral reefs from WDB2 or World Data Bank 2. I am using QGIS 3.22 Białowieża version and working using its Python console. I have modified the reefs data set by appending the names of the nearest island and limited the entire list to 98 reefs along the western coast of India, including other countries. + +*Step 1:* Open a new project in QGIS and select ‘HCMGIS > BaseMap > Google Satellite Hybrid’. + +*Step 2:* This should load the previously geo-referenced global map on the Project view. The moment this is done, Layers (left lower section) will show the Google satellite hybrid image. Pan to the western water bodies of India and zoom on the location, as seen in Figure 2. + +![Figure 2: Project view of QGIS][3] + +*Step 3:* Select all the map files related to the desired features and convert them to .kml using any tool freely available online. You can set the output reference settings to Lat long Wgs 84 standard and choose to convert. Download the .kml file once conversion is completed. We did it using the tool at [https://products.aspose.app/gis/en/conversion/shapefile-to-kml.][4] + +*Step 4:* Select layers that can be superimposed to this Google satellite hybrid image (refer Figure 3). + +![Figure 3: Layer selection in QGIS][5] + +*Step 5:* Open the data source manager vector file addition option from the menu. + +*Step 6:* Provide the correct path to obtain the .kml file from the download location and add it. + +*Step 7:* Open the concerned .kml file into the Data Source Manager-Vector mode and select the Add option (middle button on the right bottom). It should display the list of eligible files that can be added to it (refer Figure 4). + +![Figure 4: Data source manager][6] + +**Step 8:** Click Add layers (which you wish to include in the map to view). + +Close the data source manager. You should be able to locate two files on the Layers window: + +* The reef details file +* Google satellite hybrid image file + +Remember to put the reef details in first position followed by the Google satellite hybrid image, else the reef details won’t be visible at the desired locations. + +Zoom on to your region of interest or make sure you select only those reefs and islands that you wish to study. You should be able to identify specific locations that are in the Arabian Sea. They presently appear with a yellow background (see Figure 5). + +![Figure 5: View of the reef details][7] + +You can access the properties with a right click on the reefs layer for other options. + +Now, if you wish, you may alter the colour and the boundary of the symbols and change their representation. + +A typical outline of the reefs located on specific islands is shown in Figure 6. + +![Figure 6: Reefs located on specific islands][8] + +### Moving on to the Python console + +Python was first introduced in QGIS 0.9, and Python codes can be implemented in the QGIS environment using the following ways: + +* Issue commands in the Python console within QGIS (the most popular choice and also widely implemented) +* Create and use plugins +* Automatically run Python code when QGIS starts +* Create processing algorithms +* Create functions for expressions in QGIS +* Create custom applications based on the QGIS API + +![Figure 7: A typical QGIS Python console][9] + +A wonderful resource for learning common task execution is to download the existing plugins from the plugin repository. QGIS provides an integrated Python console for scripting. It can be accessed from the *Plugins ► Python Console* menu. + +QGIS essentially works as a layer based approach, and hence it becomes vital to obtain the currently selected layer in the layer list on the top. The ID visibility is optional. If the current layer happens to be a vector layer, the features are the most vital components and so is the feature count. In the QGIS environment, the iface variable, an instance of *QgisInterface*, allows the user to access the map canvas, menus, toolbars and other parts of the QGIS application. + +The *iface.activeLayer()* method gives us the currently selected layer. + +``` +>>>layer = iface.activeLayer() +>>>dir(layer) + +for f in layer.getFeatures(): +print (f) +``` + +Executing the code in the console will provide the output, as shown in Figure 8. + +![Figure 8: Output][10] + +``` +for f in layer.getFeatures(): +print (f[‘fid’], f[‘NAME’]) +output_file = open(‘d:/Geetali/Reefs_WestCoastIndian.txt’, ‘w’) +``` + +This will generate a *.txt* document at the desired location with the desired name. +Finally we will execute the code below to display the names of the reefs + +``` +for f in layer.getFeatures(): +geom = f.geometry() +line = ‘%s, %s\n’ % (f[‘fid’], f[‘NAME’]) +output_file.write(line) +output_file.close() +``` + +Figure 9 shows that after complete execution of the Python code, we have successfully loaded the names of the 98 reefs on the western coast of India. + +![Figure 9: Names of the 98 reefs on the western coast of India][11] + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/using-machine-learning-to-identify-reefs-in-the-ocean/ + +作者:[Geetali Saha][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/geetali-saha/ +[b]: https://github.com/lkxed +[1]: https://www.naturalearthdata.com. +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-PyQGIS-process-flow.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Project-view-of-QGIS.jpg +[4]: https://products.aspose.app/gis/en/conversion/shapefile-to-kml. +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Layer-selection-in-QGIS.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-4-Data-source-manager.jpg +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-5-View-of-the-reef-details-3.jpg +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-6-Reefs-located-on-specific-islands-3.jpg +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-7-A-typical-QGIS-Python-console-1.jpg +[10]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-8-Output.jpg +[11]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-9-Names-of-the-98-reefs-on-the-western-coast-of-India-1.jpg From 6d604fb137e03ec043ffa05e05a6cd9575a1e911 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 19:37:05 +0800 Subject: [PATCH 0712/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220811=20What=20is=20the=20Difference=20Between=20?= =?UTF-8?q?macOS=20and=20Linux-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...the Difference Between macOS and Linux-.md | 294 ++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 sources/talk/20220811 What is the Difference Between macOS and Linux-.md diff --git a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md new file mode 100644 index 0000000000..f7a3d0ca91 --- /dev/null +++ b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md @@ -0,0 +1,294 @@ +[#]: subject: "What is the Difference Between macOS and Linux?" +[#]: via: "https://itsfoss.com/mac-linux-difference/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What is the Difference Between macOS and Linux? +====== + +We often[compare Linux with Windows][1], but what about comparing it with macOS? + +While the differences between Linux and Windows are quite obvious, Linux and macOS may seem similar to many. + +Both can run Unix commands in the terminal, and the user experience is vastly different from Windows. And not all Windows applications and games are available for macOS and Linux. + +This is why some people even think Apple’s macOS is based on Linux. But that is not the case. macOS is not Linux despite the similarities. + +There are plenty of differences between the two UNIX-like operating systems and I shall highlight both the similarities and the differences in this article. + +So, let’s compare Apple and Orange Penguin. + +### macOS vs. Linux: Origins + +macOS has a fascinating history. The foundation of it was built by Steve Jobs’s NeXT computer company when he wasn’t at Apple. Technically, it was based on the [Mach Kernel][2] and the UNIX-derived BSD. + +Back then, a [NeXTSTEP][3] operating system was created to power the devices/computers built by **NeXT**. While it got some attention, it wasn’t a big success. Apple later acquired NeXT and brought back Steve onboard as part of the deal, making NeXTSTEP OS the base for macOS. + +This is why macOS has a combination of Unix components along with Apple’s proprietary technologies. + +**On the contrary**, Linux (the kernel) was built as a free and open-source replacement for Unix. + +Linux is not an operating system but needs different components like [desktop environments][4] to form an operating system. There are [hundreds of Linux-based operating systems][5] called distributions. + +For simplicity, we tend to address it as **Linux** OS instead of a specific Linux distribution. + +### macOS kernel vs Linux kernel + +The macOS kernel is officially known as XNU. The [acronym][6] stands for “XNU is Not Unix.” According to [Apple’s Github page][7], XNU is “a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and C++ API for writing drivers”. The BSD subsystem part of the code is [“typically implemented as user-space servers in microkernel systems”][8]. The Mach part is responsible for low-level work, such as multitasking, protected memory, virtual memory management, kernel debugging support, and console I/O. + +While the macOS kernel combines the feature of a microkernel ([Mach][9])) and a monolithic kernel ([BSD][10]), Linux is solely a monolithic kernel. A [monolithic kernel][11] is responsible for managing the CPU, memory, inter-process communication, device drivers, file system, and system server calls. + +### Here’s What They Have in Common + +macOS utilizes Unix components, and Linux was built as an alternative to Unix. So, what do we have in common here? + +Both give access to **Unix commands, bash/zsh, and other shells**. + +The [default shell][12] can be different, but you can always change it as per your preferences. + +That’s about it. I can’t think of anything else similar between the two. + +Probably a decade back, we could say that both Linux/macOS offered fewer applications. + +But that’s not the case anymore. + +The software ecosystem and game support for both have evolved over the years, which we will discuss later in this article. + +### Codebase: Proprietary vs. Open-Source + +![open source proprietary illustration][13] + +macOS is a proprietary operating system, meaning you cannot view the complete operating system’s source code. + +Sure, you have [part of the macOS (mostly GNU) libraries’ source code available][14]. There is also the [XNU kernel code][15] used in the development of macOS and iOS operating systems. But [you cannot just take this code and build a macOS clone][16] to be installed on any hardware. + +It’s not the end of the world without the source code, but you get **less transparency** on Apple’s claims and practices to secure and enhance your computer experience. + +Some might argue that proprietary code remains hidden for security reasons. However, both proprietary and open-source software remain vulnerable to threats. + +**The difference between them** is: that open-source software often gets fixed sooner because of community participation by several developers, compared to limited employees working on macOS. + +Unless you trust Apple without questions, Linux’s open-source model gets an edge. + +### Purpose and Usage: macOS vs. Linux + +macOS is tailored for desktop and laptop usage. It is well-suited for **video editing, graphics designing, and audio editing**. + +When it comes to Linux, you get a host of possibilities. You can use Linux for: + +* Desktop +* Toaster (yes! I hope you know about [IoT][17]) +* Single Board Computers +* Server + +Of course, it is not the same experience when using it on various platforms, but Linux can run for various use-cases. + +So, if you like Linux, you can choose to continue using it on other platforms for a comfortable experience. + +### macOS vs Linux: User Experience + +When it comes to user experience, it comes down to personal preferences. + +macOS offers a **pleasing user interface**. It is visually appealing with subtle animations and high-resolution wallpapers/icons. + +![macOS Monterey][18] + +You can expect an easy and seamless experience across the platform. + +With Linux, you can get an equally pleasing user interface that is easy to use. + +![Zorin OS 16 Pro][19] + +**Unfortunately**, the user experience slightly varies because of the distribution you decide to install and the desktop environment it comes along with. + +You can explore some of the [best desktop environments][20] listed. You can even opt for [macOS-like Linux distributions][21]. + +For instance, if you are using **Pop!_OS, Ubuntu, Zorin OS, or elementary OS**, you could have an excellent user experience. + +![Pop!_OS 22.04 LTS][22] + +If you end up using something like MX Linux, or different, the user experience may not be comparable to macOS. + +![MX Linux][23] + +Overall, the out-of-the-box experience with Linux is inconsistent, but it is capable enough if you know what you are doing. + +And if you are coming from Windows, the interface could be confusing initially. + +### Customizability + +![customizability][24] + +If you want an operating system that lets you tinker with every aspect of it, macOS is not for you. + +While Apple’s designs could be aesthetically pleasing by default, not everyone likes them. + +If you want to personalize, take control, and heavily customize the operating system’s nuts and bolts, Linux should be the perfect pick. + +You can choose to customize the user interface as much as you want, with a wide range of different elements, and go wild with your preferences. To get started, look at our [KDE customization][25] guide to explore the possibilities. + +While that is good, it could backfire when customizing things on a Linux system. So, you need to learn/explore what you want to customize. + +### Hardware Requirements to run macOS vs Linux + +![hardware illustration][26] + +This is where macOS suffers a solid defeat. + +If you want access to macOS and have a good experience with it, you need to purchase Apple hardware, which is costly. + +For example, the base configurations for macOS-powered laptops start with **8 GB of RAM** and **256 GB of storage**, available for **$1200** or more. + +Unless you want to constantly use the swap space for multitasking and already have a cloud storage space, it would be a terrible idea to get one for yourself. + +In contrast, if you would rather not spend a lot but still want a decent configuration for your system (PC/laptop), it is easy to get a device with 16 GB RAM + 512 GB SSD to run Linux for around 800 USD. + +**A personal note**: I’m used to 32 Gigs of RAM + 500 GB of SSD storage. To get that kind of multitasking headroom (without using the swap), I will have to pay a premium to Apple. + +Some skilled tinkerers try running macOS on non-Apple hardware. Such a system is called [Hackintosh][27] but it is certainly nowhere close to the comfort of running Linux on a regular computer. + +### Software Ecosystem + +macOS offers a **top-notch native experience** with macOS-exclusive applications or tools made by Apple. + +Yes, you may have to purchase those applications. However, unlike some subscription options, you get one-time purchase alternatives with macOS for professional applications. + +![Final Cut Pro on macOS][28] + +For users who want to design, edit videos, edit photos, and have a creative workflow, macOS’s software suite should be a great choice if you do not mind investing in it. + +The free Apple tools like iMovie, Keynote, etc. are good themselves. Couple them with premium tools like Final Cut Pro, Affinity Designer, and more and you get world-class editing experience. Not to forget that creative tools like Adobe are also available on macOS. + +Additionally, Apple has strict guidelines for applications available for its platform that enhance the native experience with third-party apps (free or paid). + +This is why many designers and editors prefer using macOS over any other operating systems. + +For the Linux platform, you have **great FOSS alternatives** to some macOS-only apps. Unless you like or have experience with macOS-specific applications, you should not have trouble with software available for Linux. + +![kdenlive editor][29] + +The native app experience depends on the Linux distribution you use. + +![Planner (To-do list app for Linux)][30] + +It may not be as seamless as macOS, but if you are not a professional-grade video/graphics editor, you should not have any issues. + +### Gaming on Linux and macOS + +![gaming illustration][31] + +While Apple’s making good progress on making its new M1/M2 chips as capable as possible, macOS currently has poor support for games. + +A handful of games work, and most aren’t supported officially. To be honest, investing in a Mac for gaming is not what it is for. + +Regarding Linux, numerous AAA games and Indie titles work fine. Sure, there are some hiccups with certain games. But, with Valve’s push towards official game support for Steam Deck, even the latest releases like “**Spider-Man: Remastered**” are Steam Deck verified. + +Ultimately, helping improve the game support for the Linux platform. + +Additionally, considering that the PC graphics card market is almost back to normal (near or below MSRP), you can get a sweet PC build or laptop without worrying about performance bottlenecks. + +Would you spend upwards of **$1800 for a Mac with 16 GB of RAM and 512 GB of SSD** or get a PC/laptop with 32 GB RAM (or more), and at least 1 TB SSD (or more)? + +That’s your call. + +### Package Manager + +![package manager illustration new][32] + +A package manager helps you quickly find, install, and remove software in your operating system. + +Linux has been the superior force in package management compared to anything out there. + +You get options like [Flatpak][33], [Snap][34], [Synaptic][35], and more out of the box. + +But, Mac users do not have anything to rely on by default. Fortunately, an option like [Homebrew][36] makes life easier for macOS users. + +It also supports Linux. So, you can use it across multiple devices to make things easy. + +### Operating System Updates + +![software update illustration][37] + +Apple does not share specific timelines for software updates to the operating system. + +For instance, **macOS Ventura** (the upcoming version upgrade at the time of writing) suddenly ditched all the Mac devices before 2017. + +Interestingly, the previous operating system versions had average support for about **seven years**, but with newer changes, it seems to be about **five** now. + +With Apple silicons, it may not be a straightforward answer. But, it is safe to assume at least 4-5 years of software support. + +Linux gives you options. If you want a stable operating system without feature upgrades but focused on maintenance and security, [LTS editions][38] of Linux distributions give you up to **five years** of updates for free. This is primarily true for [Ubuntu][39] or Ubuntu-based distributions like Linux Mint. + +Furthermore, there’s a subscription plan for Ubuntu, where you can continue receiving security updates for up to **10 years**. + +And, it does not end there; you can also opt for [rolling-release distributions][40] that get constant bleeding-edge updates with no timeline for an end. As long as your hardware is competent enough, you should be able to update the operating system with no issues. + +### macOS vs. Linux: What Should You Pick? + +macOS can be well worth the price tag if you need it. + +It is not an easy recommendation for users who just need to surf the web, send emails, and perform some tasks that are possible on any platform. + +macOS remains a niche pick. + +However, Linux has improved to become a usable choice for former Windows/macOS users, computer science students, developers, creative professionals (like us) and a wide range of potential users. + +There are many reasons to pick Linux over macOS, but not the other way around (I think). What are your thoughts on macOS vs. Linux? You are welcome to share your thoughts in the comments down below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/mac-linux-difference/ + +作者:[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/linux-better-than-windows/ +[2]: https://en.wikipedia.org/wiki/Mach_(kernel) +[3]: https://en.wikipedia.org/wiki/NeXTSTEP +[4]: https://itsfoss.com/what-is-desktop-environment/ +[5]: https://itsfoss.com/what-is-linux/ +[6]: https://github.com/apple/darwin-xnu +[7]: https://github.com/apple/darwin-xnu +[8]: http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html +[9]: https://en.wikipedia.org/wiki/Mach_(kernel +[10]: https://en.wikipedia.org/wiki/FreeBSD +[11]: https://www.howtogeek.com/howto/31632/what-is-the-linux-kernel-and-what-does-it-do/ +[12]: https://linuxhandbook.com/change-shell-linux/ +[13]: https://itsfoss.com/wp-content/uploads/2022/08/open-source-proprietary-illustration.jpg +[14]: https://opensource.apple.com/releases/ +[15]: https://github.com/apple/darwin-xnu +[16]: https://www.techrepublic.com/article/why-apple-open-sourcing-mac-os-x-isnt-terribly-exciting/ +[17]: https://www.ibm.com/blogs/internet-of-things/what-is-the-iot/ +[18]: https://itsfoss.com/wp-content/uploads/2022/08/macos-monterey-screenshot.jpg +[19]: https://itsfoss.com/wp-content/uploads/2021/12/zorin-os-16-mac.png +[20]: https://itsfoss.com/best-linux-desktop-environments/ +[21]: https://itsfoss.com/macos-like-linux-distros/ +[22]: https://itsfoss.com/wp-content/uploads/2022/08/pop-os-screenshot-2022.png +[23]: https://itsfoss.com/wp-content/uploads/2022/07/10.-MX-Linux.jpg +[24]: https://itsfoss.com/wp-content/uploads/2022/08/customizability-illustration.jpg +[25]: https://itsfoss.com/kde-customization/ +[26]: https://itsfoss.com/wp-content/uploads/2022/08/hardware-illustration-800x450.jpg +[27]: https://www.freecodecamp.org/news/build-a-hackintosh/ +[28]: https://itsfoss.com/wp-content/uploads/2022/08/final-cut-pro-mac.jpg +[29]: https://itsfoss.com/wp-content/uploads/2022/08/kdenlive-editor.jpg +[30]: https://itsfoss.com/wp-content/uploads/2021/08/planner-board-view.png +[31]: https://itsfoss.com/wp-content/uploads/2022/08/gaming-illustration.jpg +[32]: https://itsfoss.com/wp-content/uploads/2022/08/package-manager-illustration-new.jpg +[33]: https://itsfoss.com/what-is-flatpak/ +[34]: https://itsfoss.com/use-snap-packages-ubuntu-16-04/ +[35]: https://itsfoss.com/synaptic-package-manager/ +[36]: https://itsfoss.com/homebrew-linux/ +[37]: https://itsfoss.com/wp-content/uploads/2022/07/software-update-illustration.jpg +[38]: https://itsfoss.com/long-term-support-lts/ +[39]: https://itsfoss.com/getting-started-with-ubuntu/ +[40]: https://itsfoss.com/best-rolling-release-distros/ From 3688458fbc221aef0612798d1cfa91dd1238bc36 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 19:38:06 +0800 Subject: [PATCH 0713/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220810=20How=20to=20Record=20Streaming=20Audio=20i?= =?UTF-8?q?n=20Ubuntu=20and=20other=20Linux=20Distributions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...in Ubuntu and other Linux Distributions.md | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md diff --git a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md new file mode 100644 index 0000000000..8620d214f8 --- /dev/null +++ b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md @@ -0,0 +1,187 @@ +[#]: subject: "How to Record Streaming Audio in Ubuntu and other Linux Distributions" +[#]: via: "https://itsfoss.com/record-streaming-audio/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Record Streaming Audio in Ubuntu and other Linux Distributions +====== +How to record audio in Ubuntu and other Linux distributions? + +If you want to record a voice over through the microphone of your computer, you can use GNOME Sound recorder or Audacity. + +Using GNOME Sound Recorder is easy but it lacks features. Audacity could be overwhelming initially but it has plenty of features for professional level recording. However, I am not going into that detail in this tutorial. + +GNOME Sound Recorder works with the microphone. There is another tool called Audio recorder and you can use it to record streaming music (from Sptify, YouTube, internet radio, Skype and most other sources) apart from microphone input. + +To summarize, I’ll show you the steps: + +* To record sound using GNOME Sound Recorder +* To record streaming audio using Audio Recorder + +### Using Sound Recorder to record audio from the microphone + +GNOME desktop environment has a good variety of useful applications. Sound Recorder is one of them. + +You can install the [Sound Recorder][1] from the Ubuntu Software Center. + +![Sound Recorder can be installed from the Ubuntu Software Center][2] + +Or, you can use this command in the terminal to install it: + +``` +sudo apt install gnome-sound-recorder +``` + +Once installed, you can find it in the system menu and start from there. + +![GNOME Sound Recorder][3] + +Before you start using it, you should ensure that you have the correct input source chosen in the system settings. GNOME Sound Recorder + +![Ensure that you have chosen correct input in system settings][4] + +Once you open the Sound Recorder application, it will show an interface like the one below. + +![Hit the Record button to start audio recording][5] + +Hit on the record button and it starts recording audio instantly. While recording, you get options to pause, stop or discord the recording. + +![Options while recording audio][6] + +Your recordings are saved and available from the application interface itself. Click on the saved recordings to highlight it. + +You can replay the recordings or delete it. You can choose to save it to another location by clicking the save/download button. You may also rename the recordings using the edit button. + +![Saved recordings][7] + +That’s quite convenient, right? You can choose to record in MP3, FLAC and a couple of more formats. + +#### Removing GNOME Sound Recorder + +Don’t like it or find it lacking in terms of features? + +You can remove GNOME Sound Recorder from the Ubuntu Software Center or use the following command: + +``` +sudo apt remove gnome-sound-recorder +``` + +The application of GNOME Sound recorder is limited. It only records from the microphone and this is not what you would want in certain situations. + +Imagin you want to record a Skype call or something which is playing in an application or web browser? The nifty Audio Recorder helps in such cases. + +### Using Audio Recorder to record streaming audio + +You can watch this video to see how to use Audio Recorder. It’s a bit old but the steps are the same. + +![A Video from YouTube][8] + +[Subscribe to our YouTube channel for more Linux videos][9] + +You can use the [official PPA][10] to install Audio Recorder in Ubuntu and Linux Mint. Use the following commands in the terminal (Ctrl+Alt+T) one by one: + +``` +sudo apt-add-repository ppa:audio-recorder/ppa +sudo apt update +sudo apt install audio-recorder +``` + +Alternatively, you can download the source code from [launchpad][11]. Once installed, you can start the application from the Activity Overview: + +![Audio Recorder][12] + +#### Record all kinds of sound from various sources + +Audio Recorder records all kinds of sounds your computer makes. + +It records audio played through your system’s soundcard, microphones, browsers, webcams and more. + +In other words, it records even if your system sneezes (given that you want to record it). It allows you to select the recording device such as webcam, microphone, Skype, etc. + +To record the streaming music, select the appropriate source. For example, if you are playing streaming radio in Rhythmbox, then select Rythmbox. + +![Audio-Recorder Audio Settings][13] + +#### Record at your convenience + +Audio Recorder also gives you the option of setting timer. You can start, stop or pause recording at a given clock time or at a pre-defined interval. You can also set the limit on the recorded file size. + +Moreover, you can pause (and stop) when there is no audio (or very low sound) and resume it when sound comes back. + +All you have to do is to edit the text in the Timer panel. Comment out the “rules” you don’t want to apply and edit the ones per your requirement. + +![Audio-recorder Timer Settings][14] + +It provides additional settings like auto start at login, show tray icon and other record settings. + +![Audio-recorder Additional Settings][15] + +#### Save the recorded music file in various file formats + +Another gem. You can save the recorded file in your favourite file format. Supported file formats are OGG audio, Flac, MP3, SPX and WAV. I prefer MP3 for my recordings. + +The **recorded files are stored in ~/Audio** i.e., in the Audio folder inside your home directory. + +![Audio-recorder Audio Formats][16] + +#### How good is Audio Recorder? + +I used Audio Recorder in Ubuntu to [record the music played on YouTube][17]. I saved a 2-minute video in MP3 format that took 934 KB of space. But I must say I was not expecting the recorded sound quality to be so good. Honestly, I could not distinguish it from the original YouTube song. + +#### Removing Audio Recorder + +If you don’t find Audio Recorder to your liking, you can remove it using the following commands: + +``` +sudo apt remove audio-recorder +``` + +It will be a good idea to [remove the PPA as well][18]: + +``` +sudo apt-add-repository -r ppa:audio-recorder/ppa +``` + +### Conclusion + +There are probably several other tools for audio recording in Linux. Like GNOME, other desktop environments may also have sound recording apps. I know Deepin has one for sure. + +GNOME Sound Recorder is a decent tool for recording sound from your microphone. For recording sound from various sources, Audio Recorder is a good choice. + +I hope it helps with your audio recording needs. Let me know if you have any suggestions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/record-streaming-audio/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://wiki.gnome.org/Apps/SoundRecorder +[2]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/microphone-settings-ubuntu.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/using-sound-recorder-linux.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recording-with-sound-recorder.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-interface.png +[8]: https://youtu.be/o7Ia2QGeB7Q +[9]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 +[10]: https://launchpad.net/~audio-recorder/+archive/ubuntu/ppa +[11]: https://launchpad.net/audio-recorder +[12]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-in-overview.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-settings.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-timer-settings.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-additional-settings.png +[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png +[17]: https://itsfoss.com/youtube-dl-audio-only/ +[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ From 5468c58576f706e1c08f4ee809ff08faa1980641 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 19:40:11 +0800 Subject: [PATCH 0714/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220810=20Create=20beautiful=20PDFs=20in=20LaTeX.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20220810 Create beautiful PDFs in LaTeX.md | 229 ++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 sources/tech/20220810 Create beautiful PDFs in LaTeX.md diff --git a/sources/tech/20220810 Create beautiful PDFs in LaTeX.md b/sources/tech/20220810 Create beautiful PDFs in LaTeX.md new file mode 100644 index 0000000000..bd6cea2fc6 --- /dev/null +++ b/sources/tech/20220810 Create beautiful PDFs in LaTeX.md @@ -0,0 +1,229 @@ +[#]: subject: "Create beautiful PDFs in LaTeX" +[#]: via: "https://opensource.com/article/22/8/pdf-latex" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create beautiful PDFs in LaTeX +====== +Use the LaTeX markup language to compose documents. + +The LaTeX document preparation system has an interesting history. When programmer Don Knuth wrote his first book, The Art of Computer Programming, in 1968, it was produced using an old-style printing press method. When he published the second edition in 1976, the publisher had moved to modern phototypesetting. + +Knuth was unhappy with how the new edition looked. Addressing the problem from a programmer's perspective, Knuth decided to create his own text processing system so his future books could be formatted to look the same way, for every book in the series. And so it was that Don Knuth wrote the first version of TeX in 1978. + +A few years later, Leslie Lamport created a set of macros that help authors write complex documents more easily. Lamport's macro extensions, LaTeX, essentially extends TeX to easily produce all kinds of documents. For example, many academic organizations use LaTeX to publish journals and proceedings. + +### Writing documents in LaTeX + +It's easy to learn the basics of LaTeX by writing a short article. Let's start by borrowing from the [About Opensource.com][4] page to create this sample input file: + +``` +$ cat about.tex +\documentclass{article} +\begin{document} + +Opensource.com is a premier, daily publication focused on +open source and Linux tutorials, stories, and resources. + +We're a diverse and inviting group, made up of staff +editors, Correspondents, contributors, and readers. We +value differences in skills, talents, backgrounds, and +experiences. There are a few different ways to get involved +as a reader or a writer. + +\end{document} +``` + +Like other document formatting programs, LaTeX collects words and fills paragraphs. That means you can add new text in the middle of a paragraph and not worry about how the final document will look. As long as you don't add a blank line in the middle of a paragraph, LaTeX creates fully justified paragraphs. When it finds a blank line, LaTeX starts a new paragraph. + +LaTeX needs a few control statements to define the document. Every LaTeX document should start with a declaration of the document's *class*. LaTeX supports several kinds of documents, including letters, books, and articles. For this example, I used `\documentclass{article}` to set the *article* class. + +Tell LaTeX where the text begins and ends with the `\begin{document}` and `\end{document}` statements. If you add text before the `\begin{document}`, LaTeX generates an error. Any text after `\end{document}` is ignored. + +Process this document using LaTeX with the `latex` command: + +``` +$ latex about.tex +This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=latex) + restricted \write18 enabled. +entering extended mode +(./about.tex +LaTeX2e <2020-10-01> patch level 4 +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2020/04/10 v1.4m Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-dvips.def) +No file about.aux. +[1] (./about.aux) ) +Output written on about.dvi (1 page, 736 bytes). +Transcript written on about.log. +``` + +LaTeX produces a lot of text so you can see what it is doing. If your document contains errors, LaTeX prints a message, and possibly prompt for what it should do. In most cases, you can type `exit` at the prompt to force LaTeX to quit. + +If LaTeX was successful in generating a document, it produces a file with a `.dvi` extension. The *DVI* stands for *Device Independent* because you can use a variety of tools to create other kinds of output. For example, the **dvipdf** program converts the DVI file to a PDF file. + +``` +$ dvipdf about.dvi +``` + +![LaTeX output][5] + +### Adding lists + +LaTeX supports two kinds of lists: an *enumerated* list where each item starts with a number, and an *itemized* or "bullet" list. Add a short enumerated list after the second paragraph to list the ways that folks can get involved with Opensource.com: + +``` +\begin{enumerate} +\item Be a writer +\item Be a reader +\end{enumerate} +``` + +Similar to how you need to provide `\begin` and `\end` statements around a document definition, you also need to provide `\begin` and `\end` statements around a list. Within the list, start each new item with an `\item` command. When you process this new file with LaTeX and convert it to PDF format, you see your list formatted as a numbered list: + +![LaTeX output][6] + +You can also add lists within a list. This is a neat feature if you need to provide a list with several options for each item. For example, you can add a few different resources for folks who want to become writers at Opensource.com. The embedded list uses its own `\begin` and `\end` statements. I'll add some extra space around this example so it's easier to see, but LaTeX doesn't really care about the blank lines and extra spaces: + +``` +\begin{enumerate} +\item Be a writer + +  \begin{itemize} +  \item Resources for writers +  \item Contributor Club +  \item Correspondent Program +  \end{itemize} + +\item Be a reader +\end{enumerate} +``` + +The new list is inserted as an embedded list inside item number 1 because you added the list between the two original `\item` statements. You could have instead inserted this list after item number 2 by adding the new list before the `\end{enumerate}` statement. + +![LaTeX output][7] + +### Sections and subsections + +You can make a long document easier to read by breaking it up into sections. To add a section title to a LaTeX document, use the `\section{...}` statement, and write the section's title inside the braces. For example, you can add a new section titled "About Opensource.com" to the top of the document with this: + +``` +$ head about.tex +\documentclass{article} +\begin{document} + +\section{About Opensource.com} + +Opensource.com is a premier, daily publication focused on +open source and Linux tutorials, stories, and resources. + +We're a diverse and inviting group, made up of staff +editors, Correspondents, contributors, and readers. We +``` + +The *article* document class adds a number before each major section, and increases the font size so it stands out in the document. + +![LaTeX output][8] + +For documents that require more organization, you can add subsections using the `\subsection{...}` command. Like the `\section{...}` command, enter the subsection's title between the curly braces. + +``` +$ head about.tex +\documentclass{article} +\begin{document} + +\section{About Opensource.com} + +Opensource.com is a premier, daily publication focused on +open source and Linux tutorials, stories, and resources. + +\subsection{Welcome to the Opensource.com community} +``` + +![LaTeX output][9] + +### Title and author + +Scientific articles meant for publication require a title, author, and publication date. LaTeX provides a method to add this information by inserting commands that define each, then generates the article's title with a separate `\maketitle` command. + +Add "About Us" as the article's title, "Opensource.com Editors" for the author, and "July 10, 2022" as the publication date. You must enter this block after the `\begin{document}` and before the rest of the content, such as the first section: + +``` +\title{About Us} +\author{Opensource.com Editors} +\date{July 10, 2022} +\maketitle +``` + +When you process the document, LaTeX adds the title, author, and date to the top of the artcle: + +![LaTeX output][10] + +### Adding emphasis + +Scientific and other technical documents often include terms and phrases that need to carry special emphasis. LaTeX provides several font effects you can use in technical documents, including emphasis text (usually displayed in italics), bold text, and small caps. + +Update your LaTeX document to put the phrase "staff editors, Correspondents, contributors, and readers" in italics text, and the specific words "reader" and "writer" later in the paragraph in emphasis text. You can also put the phrase "skills, talents, backgrounds, and experiences" in bold. And while it's not the correct way to style it, you can use small caps to type "Linux." + +``` +$ head -20 about.tex +\documentclass{article} +\begin{document} + +\title{About Us} +\author{Opensource.com Editors} +\date{July 10, 2022} +\maketitle + +\section{About Opensource.com} + +Opensource.com is a premier, daily publication focused on +open source and \textsc{Linux} tutorials, stories, and resources. + +\subsection{Welcome to the Opensource.com community} + +We're a diverse and inviting group, made up of \textit{staff +editors, Correspondents, contributors, and readers}. We +value differences in \textbf{skills, talents, backgrounds, and +experiences}. There are a few different ways to get involved +as a \emph{reader} or a \emph{writer}. +``` + +This sample shows different ways to apply different styles to text. When you need to add emphasis, use the `\emph{...}` command, with the word or phrase between the curly braces. To display text in italics, boldface, or small caps, use a variation of the `\text` command: `\textit{...}` for italics, `\textbf{...}` for boldface, and `\textsc{...}` for small caps. LaTeX supports lots of other ways to style text, but these styles get you pretty far in writing scientific documents. + +![LaTeX output][11] + +### Using LaTeX + +I've only touched on a few ways to write scientific and technical documents in LaTeX. Depending on your needs, you can also use LaTeX to insert footnotes and typeset mathematical equations and expressions. To explore other ways to use LaTeX for scientific writing, also read [A introduction to creating documents in LaTeX][12] here on Opensource.com. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/pdf-latex + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png +[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://opensource.com/about +[5]: https://opensource.com/sites/default/files/2022-08/latex-output.jpg +[6]: https://opensource.com/sites/default/files/2022-08/latex-output-list.jpg +[7]: https://opensource.com/sites/default/files/2022-08/latex-output-list-2.jpg +[8]: https://opensource.com/sites/default/files/2022-08/latex-output-heading.jpg +[9]: https://opensource.com/sites/default/files/2022-08/latex-output-subheading.jpg +[10]: https://opensource.com/sites/default/files/2022-08/latex-output-about.jpg +[11]: https://opensource.com/sites/default/files/2022-08/latex-output-emphasis.jpg +[12]: https://opensource.com/article/17/6/introduction-latex From 936c50f4761efd2e63dd43e5dd6156f9447ef530 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 19:41:13 +0800 Subject: [PATCH 0715/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220810=20Our=20favorite=20Linux=20replacements=20f?= =?UTF-8?q?or=20antiquated=20open=20source=20tools.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ements for antiquated open source tools.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sources/tech/20220810 Our favorite Linux replacements for antiquated open source tools.md diff --git a/sources/tech/20220810 Our favorite Linux replacements for antiquated open source tools.md b/sources/tech/20220810 Our favorite Linux replacements for antiquated open source tools.md new file mode 100644 index 0000000000..2c3419b61b --- /dev/null +++ b/sources/tech/20220810 Our favorite Linux replacements for antiquated open source tools.md @@ -0,0 +1,164 @@ +[#]: subject: "Our favorite Linux replacements for antiquated open source tools" +[#]: via: "https://opensource.com/article/22/8/replace-antiquated-linux-tools" +[#]: author: "Opensource.com https://opensource.com/users/admin" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Our favorite Linux replacements for antiquated open source tools +====== +We asked our community of contributors what open source tools they are using in place of those that feel outdated or antiquated. + +Here at [Opensource.com][2], we thought it would be interesting to survey some of our authors to get a feel for what tools they feel are antiquated (but perhaps still useful!) and what they think of the replacement utilities. What follows is a series of responses and a bit of fun, too. + +We sent out the following prompt: + +* Have you discovered some of your favorite tools have become outdated or deprecated? Or maybe you just switched it up for something new? +* What do you use now? Tell us a little about how you feel it is helpful to have made the switch. + +### Firewalls + +A biggie for me is iptables. I sweated blood learning how to use iptables, and ebtables, and arptables, and how to manipulate MAC addresses, and more. I built dozens of firewalls around scripts to set up rulesets, and I eventually got pretty good at it. Now nftables makes all that obsolete. The fun never stops. I still think somebody with marketing clout could make software-defined boundaries work. —[Greg Scott][3] + +#### +1 on iptables + +I have been using iptables since I first learned Linux 25+ years ago. The newest tool is firewalld, but that and all other firewall tools I have seen for Red Hat-based distros are still based on and wrap around the kernel-level netfilter modules. I find the [firewalld][4] tool creates huge sets of rules that don't do anything more for me than the older iptables. I am sure some large environments need those complex rulesets, but they could also be implemented using iptables or scripts like Greg's. + +I do like `nmcli`, but it is taking me some time to learn it. In fact, I prefer it to the old `ifcfg` and `ip` commands. It feels more integrated into the system than the older ones. But I do like the older `ifcfg-` interface configuration files. Those are easy to create and understand. They don't require the INI-style format that requires section headers. In fact, the old-style files are not even sequence sensitive. —[David Both][5] + +#### ipchains? + +To further underscore this example, are you sure you weren't using ipchains back then? (The ipfirewall and ipfwadm successor, ipchains wasn't supplanted by iptables until around 2001.) —[Jeremy Stanley][6] + +*In response to Jeremy. ^^* + +My very first firewall was ipchains, circa late 1999. Everything after that was iptables. Back then, I had to build my own kernel to get all the netfilter modules I needed. Modern conveniences like flat-panel monitors and DSL were science fiction in those days. And don't even think about fiber. I had to ride a horse uphill through blizzards every day to visit customers. And then it was uphill back home, too. —[Greg Scott][7] + +### Text editing + +I just have to ask—who's still using troff (groff) and who has moved on to... hmm, shall we say, LibreOffice or AsciiDoctor or...? + +I have a dear friend who continues with a troff-based product on his Sun SPARCStation V. —[Chris Hermansen][8] + +**[[ Related read Old-school technical writing with groff ]][9]** + +#### Editing man pages + +*^^ In response to Chris* + +Anyone maintaining man pages! Though lots of people are probably generating those from other markup these days. Some folks (like me) do still compose or edit the troff files directly instead. —[Jeremy Stanley][10] + +#### Markup stacks + +There are always people who use older things, but there are superior tools nowadays. I wouldn't use LibreOffice for the kind of stuff you'd use troff/groff for—if you are writing at that level, you probably depend on a text editor you know well, source-control for managing your inputs, and you are comfortable with markup languages. + +That means you want to use a markup stack. There are many, including: + +* Sphinx + ReST + GitHub Actions + GitHub Pages +* MkDocs + Markdown + GitLab CI + GitLab Pages +* Nikola + Jupyter Notebooks + Jenkins + (AWS S3 + CloudFront) + +What is common to all the stacks is: + +* A thing that pulls different input files into one coherent whole (Sphinx/MkDocs/Nikola) +* A reasonably high-level text markup language (ReST/Markdown/MD embedded in Jupyter Notebooks) +* A CI pipeline to transform those into the output format (usually a tree of HTML files, but sometimes a PDF or something) +* A place where people can download the published version (GitHub Pages, GitLab Pages, AWS S3 + CloudFront) + +I'll note that these are pretty much orthogonal choices. Any reasonable generator can take any input (even MkDocs, for which it is least true, has the mkdocs-gen-files plugin so you can use Pandoc to convert stuff to Markdown). Any reasonable CI can run any generator and push to any target. + +So even with the list above, there are 81 stacks available. + +(Sphinx/MkDocs/Nikola) x (ReST/Markdown/Jupyter Notebooks) x (GHA/GitLab CI/Jenkins) x (GHP/GLP/S3+CF) + +Because Pandoc understands troff (ms/man), you can plug troff+ms or troff+man into the "markup" slot if you really want to. You can probably install Jenkins on the Sun SPARCStation V and keep using the same machine and format. But why? :) + +There's probably an article for OSDC there: "How I converted troff docs to a modern stack using mkdocs+mkdocs-gen-files and GitLab CI." —[Moshe Zadka][11] + +#### Other groff examples + +Actually, I'm writing an article right now about "Old school technical writing with groff" (part of a larger series I'm writing about tech writing tools). I don't use groff for serious tech writing, but it's in my toolkit of things I learned and will probably never forget. And I review groff when I teach "Writing with Digital Technologies." + +While writing the article, I recalled that when I installed Linux in 1993, there weren't *any* writing apps on Linux. No word processors, just groff and LaTeX. I used LaTeX to write my physics lab reports (because it could do math easily) and groff to write papers for other classes (because I could opt to print to a line printer instead, which I thought was a clever way to make my paper look longer). If I wanted to write with a word processor, I had to dual-boot back to DOS to run WordPerfect or Galaxy Write. StarOffice came out for Linux in 1996. I bought StarOffice. + +Interestingly, Brian Kernighan still writes all his books in groff. "Unix: A History and a Memoir" (2020) and "Understanding the Digital World" (2021) were both completely processed in groff. —[Jim Hall][12] + +### Revisiting the fmt command + +I use the `fmt` command a lot these days. It's really handy for a ton of stuff. If you write Readme documentation (or other docs) in plain text, you know the pain when you insert some new text in the middle of a line, and then the lines don't end at the same column. You can run `fmt` to clean that up. + +More commonly, I'm on an email list where list members prefer to receive emails in plain text, so my email client is set for plain text most of the time. If I need to reply to someone's list email (and they didn't send it in plain text), a paragraph is usually just one long line, and my email client doesn't correctly line-wrap when I reply. It's just `>` at the start of a long sentence. + +So I do this: + +``` +$ fmt -p '>' > /tmp/f +{copy & paste ">" quoted text} +^D +``` + +And then: + +``` +$ cat /tmp/f +``` + +And then copy and paste the result into my email. —[Jim Hall][13] + +### Changes to bootloaders + +Just when your *foo* is sufficiently sharp, there are reasonable odds the tools will be replaced. + +LILO to GRUB was painful until my GRUB-foo reached a sufficient level. GRUB2 is awesome, but a new learning curve. + +Muscle memory is also an issue — `ipconfig`, `nslookup`, and `netstat` are on auto-pilot. Plus, if you're using other Linux environments, like Tiny Core Linux, you might not always have the latest and greatest tools. + +Switching from `if-cfg` -style scripts to `nmcli` is the new learning curve, so this never really ends. —[Steven Ellis][14] + +**[[ Related read 6 deprecated Linux commands and the tools you should be using instead ]][15]** + +### Quick FIPS set up + +Often things change for the better; my two cents. The question was asked, *Have you discovered some of your favorite tools have become outdated or deprecated? Or maybe you just switched it up for something new?* + +A colleague recently asked me how to enable FIPS on Linux, and it's something I had not done in a while. I remember how arcane this process was, which involved enabling a repo, installing a package (dracut-fips), running commands (`dracut` ) to regenerate initramfs, modifying the GRUB bootloader config file (fips=1), etc. + +Also, *What do you use now? Tell us a little about how you feel it is helpful to have made the switch.* + +Luckily on RHEL9, the above has been replaced by the `fips-mode-setup` command with two handy flags, `--check` and `--setup`. That's it! Run those commands, reboot the system, and your machine boots up with FIPS enabled. Super easy! —[Gaurav Kamathe][16] + +### Old and comfortable + +Clearly, both the fun of open source and the strong opinions are still present, as is the variety of tools and the freedom to choose what works best for you. Perhaps these tools and others like them are old—even antiquated—but they may still serve a purpose. Some of these older utilities inspired more modern solutions without losing their own inherent value. Finally, there's something to be said for user comfort and familiarity. With open source, all those hours spent developing your foo need not be lost just because some vendor decided it was time for a new release. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/replace-antiquated-linux-tools + +作者:[Opensource.com][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/admin +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/GOV_2dot0.png +[2]: https://opensource.com/ +[3]: https://opensource.com/users/greg-scott +[4]: https://www.redhat.com/sysadmin/secure-linux-network-firewall-cmd +[5]: https://opensource.com/users/dboth +[6]: https://opensource.com/users/fungi +[7]: https://opensource.com/users/greg-scott +[8]: https://opensource.com/users/clhermansen +[9]: https://opensource.com/article/22/8/old-school-technical-writing-groff +[10]: https://opensource.com/users/fungi +[11]: https://opensource.com/users/moshez +[12]: https://opensource.com/users/jim-hall +[13]: https://opensource.com/users/jim-hall +[14]: https://opensource.com/users/steven-ellis +[15]: https://www.redhat.com/sysadmin/deprecated-linux-command-replacements?intcmp=7013a000002qLH8AAM +[16]: https://opensource.com/users/gkamathe From 1ff49d011fbcb31a94d78fc6012689ffa4801667 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 11 Aug 2022 19:42:10 +0800 Subject: [PATCH 0716/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220811=20A=20gentle=20introduction=20to=20HTML.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220811 A gentle introduction to HTML.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20220811 A gentle introduction to HTML.md diff --git a/sources/tech/20220811 A gentle introduction to HTML.md b/sources/tech/20220811 A gentle introduction to HTML.md new file mode 100644 index 0000000000..b711b5a753 --- /dev/null +++ b/sources/tech/20220811 A gentle introduction to HTML.md @@ -0,0 +1,218 @@ +[#]: subject: "A gentle introduction to HTML" +[#]: via: "https://opensource.com/article/22/8/gentle-introduction-html" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A gentle introduction to HTML +====== +Learn the markup language of the web. + +![Digital creative of a browser on the internet][1] + +I feel confident in claiming that HTML is the most widely used markup language ever. While other markup languages exist, including , LaTeX, and [Markdown][2], no other markup language is as widespread as the Hyper Text Markup Language. HTML is the de facto language of the Web. First implemented in web browsers in 1994, the language continues to evolve. Yet the basics of HTML remain the same. + +If you are just getting started in HTML, I wanted to offer this gentle introduction to learning HTML. I focus on the essentials of HTML to build a basic understanding of how HTML works. You can use this as a starting point to learn more about HTML. + +### Collect words to fill a paragraph + +Let's start with a basic understanding of HTML and how client applications like web browsers display HTML documents. At its core, HTML *collects* words in a file and *fills* a paragraph. That means if you don't add instructions (called markup) to an HTML file, and just leave it as plain text, a web browser turns all that text into a single paragraph. + +Start with this sample text, saved in a plain text file called `index.html`. This is a paragraph from the old *King's Toaster* story, an Internet fable about how you might build a toaster out of a microcontroller: + +``` +The engineer replied, + +"Using a four-bit microcontroller, I would write a simple +program that reads the darkness knob and quantizes its +position to one of 16 shades of darkness, from snow white +to coal black. + +The program would use that darkness level as the index to +a 16-element table of initial timer values. + +Then it would turn on the heating elements and start the +timer with the initial value selected from the table. + +At the end of the time delay, it would turn off the heat +and pop up the toast. + +Come back next week, and I'll show you a working +prototype." +``` + +You can put this file on a web server and access it like you would any website, or you can save it to your local disk and open it directly in a web browser. How you get the file into the web browser doesn't really matter. But you should name the file with an `.html` extension, which web browsers recognize by default as an HTML file. + +In this case, I've written the file on separate lines. I've also added some blank lines, to demonstrate that HTML doesn't care about extra white space. This extra space may help humans read the HTML code, but the web browser just treats it as one block by default. Viewed on a web browser, this file looks like this: + +![The HTML page as displayed in a web browser][3] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +### Inline and block elements + +At the core of HTML is the concept of *inline* and *block* elements. You can think of block elements as *always filling a rectangle*. Inline elements *follow only the inline text*. + +The basic block element is called the *division*, and uses the `
` tag. The basic inline element is the *span*, with the `` tag. Most HTML tags are some kind of block element or inline element, so it helps to start with just these two to understand how they work. + +Add some `
` and `` tags to your HTML document to see what block and inline elements look like: + +``` +
+The engineer replied, + +"Using a four-bit microcontroller, I would write a simple +program that reads the darkness knob and quantizes its +position to one of 16 shades of darkness, from snow white +to coal black. + + +The program would use that darkness level as the index to +a 16-element table of initial timer values. + + +Then it would turn on the heating elements and start the +timer with the initial value selected from the table. + +At the end of the time delay, it would turn off the heat +and pop up the toast. + +Come back next week, and I'll show you a working +prototype." +
+``` + +I've added a `
` block element around the whole paragraph, and a `` around just one sentence. Notice that when I start an HTML element like `
` or ``, I need to provide its corresponding *closing* tag like `
` and `
`. Most HTML elements are formed like this, with an opening and closing tag. + +The web browser uses these tags to display HTML content in a certain way, but because `
` and `` don't really define any special formatting on their own, you can't see that anything has changed. Your sample paragraph looks the same as before: + +![This really is a different screenshot than the one above, but it looks exactly the same because <div> and <span> do not add extra styling to the web page][4] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +You can include *direct styling* in these tags with a style instruction, so you can see how the block and inline elements behave. To make the boundaries of each element stand out, let's use a light blue background for the `
` block and a pink background for the `` : + +``` +
+The engineer replied, + +"Using a four-bit microcontroller, I would write a simple +program that reads the darkness knob and quantizes its +position to one of 16 shades of darkness, from snow white +to coal black. + + +The program would use that darkness level as the index to +a 16-element table of initial timer values. + + +Then it would turn on the heating elements and start the +timer with the initial value selected from the table. + +At the end of the time delay, it would turn off the heat +and pop up the toast. + +Come back next week, and I'll show you a working +prototype." +
+``` + +With these changes, the entire paragraph has a light blue background. The `
` block element is a rectangle, so the blue fills even the empty space after the last sentence ends. Meanwhile, the second sentence has a pink background. This highlight follows the sentence because `` is an inline element. + +![Adding colors helps us see the difference between block elements (blue) and inline elements (pink)][5] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +Most HTML elements are either block or inline. The only difference is these other elements carry some default styles, depending on what they are. For example, `

` is a block element that has extra space above and below the block. The heading tags, `

` through `

`, are also block elements defined at different font sizes and text styles like italics and bold. The `` tag is an inline element that displays text in a **bold** weight. Similarly, `` is also an inline element that sets the text in an *italics* style. + +### Finishing an HTML page + +Some HTML elements are required. While the sample HTML file you have used display correctly on any web browser, it is not technically a *correct* HTML page. There are a few elements you need to add: + +Every HTML document should provide a document type declaration. Use the single tag `` on the first line of the HTML file to define an HTML document. The HTML standard also expects you to wrap the document text in two block elements: `` to define the full page, and `` to define the document body. + +``` + + + +
+The engineer replied, +... +
+ + +``` + +HTML documents also need a `` block before the `` that provides *meta information* about the page. The only required meta information is the title of the document, defined by the `` element: + +``` +<!DOCTYPE html> +<html> +<head> +<title>The King's Toaster + + +
+The engineer replied, + +"Using a four-bit microcontroller, I would write a simple +program that reads the darkness knob and quantizes its +position to one of 16 shades of darkness, from snow white +to coal black. + + +The program would use that darkness level as the index to +a 16-element table of initial timer values. + + +Then it would turn on the heating elements and start the +timer with the initial value selected from the table. + +At the end of the time delay, it would turn off the heat +and pop up the toast. + +Come back next week, and I'll show you a working +prototype." +
+ + +``` + +The supporting tags like ``, ``, and `` do not change how the HTML page appears in a web browser, but they are required for a technically correct HTML document: + +![Adding colors helps us see the difference between block elements (blue) and inline elements (pink)][6] + +Image by: + +(Jim Hall, CC BY-SA 4.0) + +This gentle introduction to HTML provides just the essentials of HTML, but now that you understand block and inline elements, you're well on your way to learning how to write HTML documents using other HTML tags. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/gentle-introduction-html + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png +[2]: https://opensource.com/%20https%3A//opensource.com/article/19/9/introduction-markdown +[3]: https://opensource.com/sites/default/files/2022-08/html-plain-text.webp +[4]: https://opensource.com/sites/default/files/2022-08/html-text-div-span.webp +[5]: https://opensource.com/sites/default/files/2022-08/html-text-div-span-color.webp +[6]: https://opensource.com/sites/default/files/2022-08/html-text-div-span-color.webp From 67958194baab61e785abf4aa768a53b8b5f817fc Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 12 Aug 2022 08:34:14 +0800 Subject: [PATCH 0717/3123] translated --- ... Directories in Style Using lsd and exa.md | 157 ------------------ ... Directories in Style Using lsd and exa.md | 157 ++++++++++++++++++ 2 files changed, 157 insertions(+), 157 deletions(-) delete mode 100644 sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md create mode 100644 translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md diff --git a/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md b/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md deleted file mode 100644 index 783e48f7bc..0000000000 --- a/sources/tech/20220807 List Files and Directories in Style Using lsd and exa.md +++ /dev/null @@ -1,157 +0,0 @@ -[#]: subject: "List Files and Directories in Style Using lsd and exa" -[#]: via: "https://www.debugpoint.com/list-files-directories-style/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -List Files and Directories in Style Using lsd and exa -====== -Reimagine and style your file and directories list using two ls utilities – lsd and exa. - -![][0] - -The ls command in Linux is the most used command. This command lists files and directories in the terminal. So, as you can see, it’s pretty popular and perhaps used by everyone. - -But the command outputs a large set of information, and it’s sometimes easier to view them colourfully. - -For example, if you run the ls command in the most basic way, it should look somewhat like this. - -![The default list files and directories view via ls command][1] - -It seems a little bland, isn’t it? What if you can style it a bit so that it becomes more readable while looking nice? - -### List Files and Directories in Style - -#### lsd - -The first application I want to show you is called “lsd” aka “LSDeluxe”. It’s a rewrite of the GNU `ls` command with additional features such as column heading, colours for various items, font and icon support. - -Here’s how it looks after installation. - -``` -lsd -l --header -``` - -![lsd command showing list of files][2] - -As you can see, it looks stunning with different colour codes for permission, file types, and folders and even adds icons beside a file name. - -The application is full of features such as tree view (see below) which even gives you a list of files inside a folder as well in a single command. - -``` -lsd -l --header --tree -``` - -![lsd command showing a tree view][3] - -You can learn more about its feature on the [official GitHub page][4]. - -I’m sure you are excited. Let’s see how you can install it. - -You can download the deb file from here for Ubuntu and related distribution. And after that, simply run dpkg to install. - -``` -sudo dpkg -i lsd_vvvv_amd64.deb -``` - -For Fedora Linux, use the following command. - -``` -sudo dnf install lsd -``` - -And Arch Linux users can get it using the below command. - -``` -pacman -S lsd -``` - -The application is also available for other distros, macOS, BSD and Windows. For those instructions, you can [find them here][5]. - -For a better experience, use it with the [Zsh shell with Oh My Zsh][6] program. - -#### exa - -The next program is `exa`, similar to `lsd` but with more features. The `exa` command can colourize your ls output, detect various file types in Unix systems, headings, tree view and many more features. - -Exa is a single binary and has a small resource footprint. Here’s how it looks with some sample commands. - -``` -exa -al -``` - -``` -exa -abghHliS -``` - -``` -exa -abghHliS --long --tree -``` - -![Various exa commands][7] - -You can learn more about exa parameters and switches on [GitHub][8]. - -Installation of exa is easy and requires just one command. For Ubuntu and related distributions, you can install it using the below command. - -``` -sudo apt install exa -``` - -For Fedora and Arch Linux, use the following commands, respectively. - -``` -sudo dnf install exa -``` - -``` -pacman -S exa -``` - -Likewise, all other installation instructions for various OSes can be [found here][9]. - -### Copying from the terminal as HTML - -One of the interesting tips is that all the above colourful lists can be copied as HTML via the default Ubuntu terminal. And you can use it for your web pages or documents. - -For example, I copied a sample from the above to a LibreOffice Writer document. - -It’s one of the best features, although it depends on the terminal program and NOT the above utilities. - -![Exporting the command output as HTML][10] - -### Wrapping Up - -I explained the inner workings of two programs – ls and exa to list files and directories in style. I hope you get to use them for different needs. - -Do let me know in the comment box if you like them, Or if you know any such utility. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/list-files-directories-style/ - -作者:[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 -[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/cool-ls.jpg -[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/The-default-list-files-and-directories-view-via-ls-command.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-list-of-files-2.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-a-tree-view.jpg -[4]: https://github.com/Peltoche/lsd -[5]: https://github.com/Peltoche/lsd#installation -[6]: https://www.debugpoint.com/install-use-zsh/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Various-exa-commands.jpg -[8]: https://github.com/ogham/exa#command-line-options -[9]: https://github.com/ogham/exa#installation -[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/Exporting-the-command-output-as-HTML.jpg diff --git a/translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md b/translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md new file mode 100644 index 0000000000..c954281b0d --- /dev/null +++ b/translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md @@ -0,0 +1,157 @@ +[#]: subject: "List Files and Directories in Style Using lsd and exa" +[#]: via: "https://www.debugpoint.com/list-files-directories-style/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 lsd 和 exa 以样式列出文件和目录 +====== +使用两个 ls 程序: lsd 和 exa 来重新想象和设计你的文件和目录列表。 + +![][0] + +Linux 中的 ls 命令是最常用的命令。此命令列出终端中的文件和目录。因此,如你所见,它非常流行,也许每个人都在使用。 + +但该命令输出的信息量很大,有时用彩色的方式查看它们会更方便。 + +例如,如果你以最基本的方式运行 ls 命令,它应该看起来有点像这样。 + +![The default list files and directories view via ls command][1] + +这似乎有点乏味,不是吗?如果你可以对其进行一些样式设置,以便在看起来不错的同时变得更具可读性如何? + +### 以样式列出文件和目录 + +#### lsd + +我想向你展示的第一个应用叫做 “lsd”,也就是 “LSDeluxe”。它是对 GNU `ls` 命令的重写,具有列标题、各种项目的颜色、字体和图标支持等附加功能。 + +这是安装后的样子。 + +``` +lsd -l --header +``` + +![lsd command showing list of files][2] + +正如你所看到的,它看起来非常漂亮,用不同的颜色代码表示权限、文件类型和文件夹,甚至在文件名旁边添加图标。 + +该应用充满了诸如树视图(见下文)之类的功能,它甚至可以在单个命令中为你提供文件夹内的文件列表。 + +``` +lsd -l --header --tree +``` + +![lsd command showing a tree view][3] + +你可以在[官方 GitHub 页面][4]上了解有关其功能的更多信息。 + +我相信你很兴奋。让我们看看如何安装它。 + +你可以从此处下载用于 Ubuntu 和相关发行版的 deb 文件。之后,只需运行 dpkg 即可安装。 + +``` +sudo dpkg -i lsd_vvvv_amd64.deb +``` + +对于 Fedora Linux,使用以下命令。 + +``` +sudo dnf install lsd +``` + +Arch Linux 用户可以使用以下命令获取它。 + +``` +pacman -S lsd +``` + +该应用也可用于其他发行版、macOS、BSD 和 Windows。对于这些说明,你可以[在此处找到它们][5]。 + +为了获得更好的体验,请将其与[装有 Oh My Zsh 的 Zsh shell][6] 一起使用。 + +#### exa + +下一个程序是 `exa`,类似于 `lsd` 但具有更多功能。 `exa` 命令可以为你的 ls 输出着色,检测 Unix 系统中的各种文件类型、标题、树视图等更多功能。 + +Exa 是一个单一的二进制文件,占用的资源很小。以下是一些示例命令。 + +``` +exa -al +``` + +``` +exa -abghHliS +``` + +``` +exa -abghHliS --long --tree +``` + +![Various exa commands][7] + +你可以在 [GitHub][8] 上了解有关 exa 参数和选项的更多信息。 + +exa 的安装很简单,只需要一个命令。对于 Ubuntu 和相关发行版,你可以使用以下命令安装它。 + +``` +sudo apt install exa +``` + +对于 Fedora 和 Arch Linux,分别使用以下命令。 + +``` +sudo dnf install exa +``` + +``` +pacman -S exa +``` + +同样,各种操作系统的所有其他安装说明都可以[在此处找到][9]。 + +### 从终端复制为 HTML + +一个有趣的技巧是,以上所有彩色列表都可以通过默认的 Ubuntu 终端复制为 HTML。你可以将它用于你的网页或文档。 + +例如,我将上面的示例复制到 LibreOffice Writer 文档中。 + +它是最好的功能之一,尽管它取决于终端程序而不是上面的程序。 + +![Exporting the command output as HTML][10] + +### 总结 + +我解释了两个程序的内部工作 – ls 和 exa 以样式列出文件和目录。我希望你能将它们用于不同的需求。 + +如果你喜欢它们,或者如果你知道任何此类程序,请在评论栏中告诉我。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/list-files-directories-style/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[0]: https://www.debugpoint.com/wp-content/uploads/2022/08/cool-ls.jpg +[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/The-default-list-files-and-directories-view-via-ls-command.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-list-of-files-2.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/lsd-command-showing-a-tree-view.jpg +[4]: https://github.com/Peltoche/lsd +[5]: https://github.com/Peltoche/lsd#installation +[6]: https://www.debugpoint.com/install-use-zsh/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Various-exa-commands.jpg +[8]: https://github.com/ogham/exa#command-line-options +[9]: https://github.com/ogham/exa#installation +[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/Exporting-the-command-output-as-HTML.jpg From ca172f386b95687fecab1baaa4c5147f67731a8e Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 12 Aug 2022 08:37:06 +0800 Subject: [PATCH 0718/3123] translating --- ...all Spotify on Manjaro and Other Arch Linux Based Distros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md index 23cd04b73b..72663de196 100644 --- a/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md +++ b/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-spotify-arch/" [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 0c2da7249b828eb1191c1aadfc23229ccfcfed80 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 12 Aug 2022 11:39:26 +0800 Subject: [PATCH 0719/3123] R PART 2 --- ...Using Binary Space Partitioning in Doom.md | 52 ++++++++----------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index b227e2cea1..7212ac8e09 100644 --- a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -24,33 +24,33 @@ ### VSD 难题 -BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举个例子,为了渲染出三维场景,渲染器必须能够区分可见物体和不可见物体。如果渲染时间比较充足,这一要求也算不上大问题;但是理想来说,实时游戏引擎在 1 秒内至少需要完成 30 次区分任务。 +BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举个例子,为了渲染出三维场景,渲染器必须能够区分在一个特定角度下的可见物体和不可见物体。如果渲染时间比较充足,这一要求也算不上大问题;但是就理想情况来说,实时游戏引擎在 1 秒内至少需要完成 30 次区分任务。 -这一问题有时被称为可见表面检测问题。当时,卡马克与迈克尔·亚伯拉什携手合作,一起开发 _《雷神之锤》_(id Software 继 《毁灭战士》 之后开发的游戏)。关于可见表面检测问题,亚伯拉什在自己的著作 _《图形程序开发人员指南》_ 中写道: +这一问题有时被称为 可见面检测visible surface determination(VSD)问题。后来与卡马克合作开发《雷神之锤》(id Software 继《毁灭战士》之后开发的游戏)的程序员 迈克尔·亚伯拉什Michael Abrash,在自己的著作《图形程序开发人员指南Graphics Programming Black Book》 中写道: -> 我想探讨一下在我看来 3D 中最棘手的一个问题:可见表面检测问题(在每个像素点上绘制合适的表面)以及与之密切相关的隐面消除问题(迅速去除不可见的多边形,用于加快可见表面检测速度)。简略起见,我将在下文采用缩写 VSD 来表示可见表面检测和隐面消除。 +> 我想探讨一下在我看来 3D 中最棘手的一个问题:可见面检测问题(在每个像素点上绘制合适的表面)以及与之密切相关的隐面消除问题(迅速去除不可见的多边形,用于加快可见表面检测速度)。简略起见,我将在下文采用缩写 VSD 来表示可见面检测和隐面消除。 +> +> 为什么我会认为 VSD 是 3D 中最棘手的问题呢?尽管纹理映射等光栅化问题更让人感兴趣而且也更重要,但是相对而言,它们是范围相对有限的任务。随着 3D 加速器的出现,它们逐渐被转移到硬件中。同时,它们只随着屏幕分辨率的增加而增加,而分辨率的增加是相对温和的。 +> +> 相反,VSD 却像是一个无底洞,目前应对方案也有很多。但实际上,在采用简单的方法处理 VSD 时,其性能会直接受到场景复杂程度的影响,而场景的复杂程度通常会以平方级或立方级的形式增大。所以在渲染过程中,VSD 很快就会成为制约因素。[^1] -> 为什么我会认为 VSD 是 3D 中最棘手的问题呢?尽管纹理映射等光栅化问题更让人感兴趣而且也更重要,但是相对而言,这些问题比较容易解决。随着 3D 加速器的出现,它们逐渐被归为硬件范围内的问题。同时,它们只受到屏幕分辨率的影响,而这种影响相对较为稳定。 +《毁灭战士》 这款游戏告诉我们,普通人盼望着能用自家电脑玩很吃图形配置的游戏。之后数年,即上个世纪九十年代,亚伯拉什讨论了复杂的 VSD 问题。同时代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在 《毁灭战士》 之前 id Software 发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都受到了一定限制,以便更容易解决 VSD 问题。 -> 相反,VSD 却像是一个无底洞,目前应对方案也有很多。但实际上,在采用简单的方法处理 VSD 时,其性能会直接受到场景复杂程度的影响,而场景的复杂程度通常会以平方级或立方级的形式增大。所以在渲染过程中,VSD 很快就会成为制约因素。[1][1] +例如,在 《毁灭战士》 之前,id Software 发行了 《德军总部 3DWolfenstein 3D》,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 _《德军总部 3D》_ 编写渲染器的工作简单了不少。 -《毁灭战士》 这款游戏告诉我们,普通人盼望着能用自家电脑玩很吃图形配置的游戏。之后数年,即上个世纪九十年代,亚伯拉什讨论了复杂的 VSD 问题。同时代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在 《毁灭战士》 之前发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都施加了一定的限制,以便更容易解决 VSD 问题。 +通过将屏幕上的光线“齐射”入虚拟游戏世界,《德军总部 3D》 的渲染器解决了 VSD 问题。通常来说,使用光线的渲染器叫做“光线投射”渲染器。这种渲染器的速度一般较慢,因为解决内部的 VSD 问题涉及到在光线和游戏中的物体之间找到第一个交点,这通常需要进行大量的计算。但在 《德军总部 3D》,由于所有的墙壁都与网格平齐,所以光线与墙壁相交的位置只能在网格线上。如此一来,渲染器只需逐个检查这些交点即可。如果渲染器先从离玩家视角最近的交点开始检查,接着检查下一个最近的交点,以此类推,最后遇到第一面墙壁时停止检查。这样,VSD 问题便轻而易举地得到了解决。光线从每一个像素点向前投射,与画面物体接触时停止,这一方法是可行的。因为从 CPU 资源来看,投射的成本很低。事实上,由于每面墙壁高度相同,因此针对同列的像素点,投射的光线只需一条。 -例如,在 《毁灭战士》 之前,id Software 发行了 _《德军总部 3D》_,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 _《德军总部 3D》_ 编写渲染器的工作简单了不少。 +尽管当时还没有专业的图形显卡,《德军总部 3D》 凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于《毁灭战士》。因为 id Software 为这款新游戏增添了许多新元素——倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。《德军总部 3D》 的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 《毁灭战士》 关注的则是物体。换句话说,《毁灭战士》 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 -通过将屏幕上的光线“齐射”入虚拟游戏世界,_《德军总部》_ 的渲染器解决了 VSD 问题。通常来说,使用光线的渲染器叫做“光线投射”渲染器。这种渲染器的速度一般较慢,因为解决内部的 VSD 问题涉及到在光线和游戏中的物体之间找到第一个交点,这通常需要进行大量的计算。但在 _《德军总部》_,由于所有的墙壁都与网格平齐,所以光线与墙壁相交的位置只能在网格线上。如此一来,渲染器只需逐个检查这些交点即可。如果渲染器先从离玩家视角最近的交点开始检查,接着检查下一个最近的交点,以此类推,最后遇到第一面墙壁时停止检查。这样,VSD 问题便轻而易举地得到了解决。光线从每一个像素点向前投射,与画面物体接触时停止运动,这一方法是可行的。因为结合 CPU 周期来看,投射的成本很低。事实上,由于每面墙壁高度相同,因此针对同列的像素点,投射的光线只需一条。 +对于强调物体的渲染器来说,可以使用 Z 缓冲区来解决 VSD 问题,比较简单。每次将物体投射到屏幕上时,需要对每个用于绘制的像素点进行检查。如果你想绘制出的物体的部分和已经绘制在目标像素点上的物体相比更加靠近玩家,可以将其覆盖。否则,必须保持像素不变。尽管办法很简单,但是 Z 缓冲区对内存的要求较高,而且渲染器可能仍然要花费大量的 CPU 资源来投射玩家永远不会看到的水平几何体。 -尽管当时还没有专业的图形显卡,_《德军总部》_ 凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于 《毁灭战士》。id Software 为这款新游戏增添了许多新元素——倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。_《德军总部》_ 的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 《毁灭战士》 关注的则是物体。换句话说,《毁灭战士》 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 +在 20 世纪 90 年代,使用 Z 缓冲区的方法还存在着其他缺陷:与 IBM 公司机器兼容的个人电脑搭载的是一种叫 VGA 的显示适配器系统,在这类电脑上,将图像写入帧缓冲区的成本非常之高。因此,在绘制只会在以后被覆盖的像素上花费的时间拖慢了渲染器的性能。 -对于强调物体的渲染器来说,可以使用 Z 缓冲器来解决 VSD 问题,比较简单。每次将物体投射到屏幕上时,需要对每个用于绘制的像素点进行检查。如果你想绘制出的物体的部分和已经绘制在目标像素点上的物体相比更加接近玩家,可以将其覆盖。否则,必须保持像素不变。尽管办法很简单,但是 Z 缓冲器对内存的要求较高,投射关卡几何图形时渲染器仍会消耗大量的 CPU 资源,虽然玩家无法看到这些几何图形。 +考虑到将图像写入帧缓冲区的成本非常之高,理想的渲染器需要首先绘制离玩家最近的物体,接着是比较近的物体,以此类推,直到屏幕上每个像素点都写入了信息。这时,渲染器会停止运行,大幅缩短远处不可见物体的渲染时间。这种由近及远对物体进行排序的方法也可以解决 VSD 问题。那么问题又来了:什么才是玩家可以看到的? -在 20 世纪 90 年代,使用 Z 缓冲器的方法还存在着其他缺陷:与 IBM 公司机器兼容的个人电脑搭载了显示适配器系统 VGA,在这类电脑上,将图像写入帧缓冲器的成本非常之高。因此,消耗在绘制像素点上的大量时间可能会让渲染器崩溃,而且像素点经过绘制后,只能在后期才能覆盖。 +最初,卡马克打算依靠 《毁灭战士》 的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果以超慢的速度运行,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D》当中,这款游戏在 《毁灭战士》 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的 《毁灭战士》 渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 -考虑到将图像写入帧缓冲器的成本非常之高,理想的渲染器需要首先绘制离玩家最近的物体,接着是比较近的物体,以此类推,直到屏幕上每个像素点都写入了信息。这时,渲染器会停止运行,大幅缩短远处不可见物体的渲染时间。这种由近及远对物体进行排序的方法也可以解决 VSD 问题。那么问题又来了:什么才是玩家可以看到的? - -最初,卡马克打算依靠 《毁灭战士》 的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果玩家移动速度非常慢,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D》当中,这款游戏在 《毁灭战士》 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的 《毁灭战士》 渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 - -在 id Software 团队意识到 《毁灭战士》 游戏引擎的速度可能过慢时,公司还面临着其他任务:将 _《德军总部 3D》_ 移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比兼容 IBM 公司机器的个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将 _《德军总部》_ 移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于 _《德军总部》_ 的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是 《毁灭战士》 的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决 《毁灭战士》 速度过慢的问题。 +在 id Software 团队意识到 《毁灭战士》 游戏引擎的速度可能过慢时,公司还面临着其他任务:将 《德军总部 3D》 移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比兼容 IBM 公司机器的个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将 《德军总部》 移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于 《德军总部》 的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是 《毁灭战士》 的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决 《毁灭战士》 速度过慢的问题。 ### 二叉空间分割 @@ -118,19 +118,13 @@ _TwoBitHistory 文章回顾……_ > > — TwoBitHistory (@TwoBitHistory) [2019 年 8 月 22 日][16] - 1. Michael Abrash, “Michael Abrash’s Graphics Programming Black Book,” James Gregory, accessed November 6, 2019, . [↩︎][17] - - 2. R. Schumacher, B. Brand, M. Gilliland, W. Sharp, “Study for Applying Computer-Generated Images to Visual Simulation,” Air Force Human Resources Laboratory, December 1969, accessed on November 6, 2019, . [↩︎][18] - - 3. Henry Fuchs, Zvi Kedem, Bruce Naylor, “On Visible Surface Generation By A Priori Tree Structures,” ACM SIGGRAPH Computer Graphics, July 1980. [↩︎][19] - - 4. Fabien Sanglard, Game Engine Black Book: DOOM (CreateSpace Independent Publishing Platform, 2018), 200. [↩︎][20] - - 5. Sanglard, 206. [↩︎][21] - - 6. Sanglard, 200. [↩︎][22] - - 7. David Kushner, Masters of Doom (Random House Trade Paperbacks, 2004), 142. [↩︎][23] +[^1]: Michael Abrash, “Michael Abrash’s Graphics Programming Black Book,” James Gregory, accessed November 6, 2019, .  +[^2]: R. Schumacher, B. Brand, M. Gilliland, W. Sharp, “Study for Applying Computer-Generated Images to Visual Simulation,” Air Force Human Resources Laboratory, December 1969, accessed on November 6, 2019, .  +[^3]: Henry Fuchs, Zvi Kedem, Bruce Naylor, “On Visible Surface Generation By A Priori Tree Structures,” ACM SIGGRAPH Computer Graphics, July 1980.  +[^4]: Fabien Sanglard, Game Engine Black Book: DOOM (CreateSpace Independent Publishing Platform, 2018), 200.  +[^5]: Sanglard, 206.  +[^6]: Sanglard, 200.  +[^7]: David Kushner, Masters of Doom (Random House Trade Paperbacks, 2004), 142.  From 01dca82bba1bafb7dfe702d4bdffbccdb1cbd8d8 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Fri, 12 Aug 2022 13:31:22 +0800 Subject: [PATCH 0720/3123] translated --- ...anage files from the Linux command line.md | 191 ----------------- ...anage files from the Linux command line.md | 196 ++++++++++++++++++ 2 files changed, 196 insertions(+), 191 deletions(-) delete mode 100644 sources/tech/20220727 How I manage files from the Linux command line.md create mode 100644 translated/tech/20220727 How I manage files from the Linux command line.md diff --git a/sources/tech/20220727 How I manage files from the Linux command line.md b/sources/tech/20220727 How I manage files from the Linux command line.md deleted file mode 100644 index 4a4f08940a..0000000000 --- a/sources/tech/20220727 How I manage files from the Linux command line.md +++ /dev/null @@ -1,191 +0,0 @@ -[#]: subject: "How I manage files from the Linux command line" -[#]: via: "https://opensource.com/article/22/7/manage-files-linux-command-line" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How I manage files from the Linux command line -====== -If you prefer to interact with your system through the terminal, check out my favorite Linux commands for managing files. - -![Files in a folder][1] - -Managing files in a graphical desktop like GNOME or KDE is an exercise in point-and-click. To move a file into a folder, you click and drag the icon to its new home. To remove a file, you drag it into the “Trash” icon. The graphical interface makes desktop computing easy to use. - -But we don't always interact with Linux systems with a graphical interface. If you work on a server, you likely need to use the command line to get around. Even desktop users like me might prefer to interact with their system through a terminal and command line. I tend to rely on a few commands to manage my files from the command line: - -### List files with Linux ls - -``` -ls -``` - -For anyone who uses the command line, you can't get far without seeing what's there. The [ls command][2] lists the contents of a directory. For example, to look at what's in a web server's document root in `/var/www/html`, you can type: - -``` -ls /var/www/html -``` - -Most of the time, I use `ls` to look at the directory I'm in. To do that, just type `ls` to list everything. For example, when I'm in the root directory of my web project, I might see this: - -``` -$ ls -about fontawesome fonts index.php styles -docs fontawesome.zip images prism -``` - -The `ls` command has about 60 command line options that can list files and directories in all kinds of ways. One useful option is `-l` to provide a long or detailed listing, including permissions, file size, and owner: - -``` -$ ls -l - -total 6252 -drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 about -drwxr-xr-x. 2 jhall jhall 4096 Jun 25 16:35 docs -drwxr-xr-x. 2 jhall jhall 4096 Jun 7 00:00 fontawesome --rw-r--r--. 1 jhall jhall 6365962 Jun 2 16:26 fontawesome.zip -drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 fonts -drwxr-xr-x. 2 jhall jhall 4096 Jun 25 13:03 images --rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php -drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 prism -drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 styles -``` - -File sizes are shown in bytes, which may not be useful if you are looking at very large files. To see file sizes in a format that is helpful to humans, add the `-h` or `--human-readable` option to print sizes with `G` for Gigabyte, `M` for Megabyte, and `K` for Kilobyte: - -``` -$ ls -l --human-readable -total 6.2M -drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 about -drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 16:35 docs -drwxr-xr-x. 2 jhall jhall 4.0K Jun 7 00:00 fontawesome --rw-r--r--. 1 jhall jhall 6.1M Jun 2 16:26 fontawesome.zip -drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 fonts -drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 13:03 images --rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php -drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 prism -drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 styles -``` - -Rather than `6365962` for the file size, `ls` now displays the zip file as `6.1M` or just over 6 MB in size. - -### View files with Linux cat, head, and tail - -``` -cat -``` - -``` -head -``` - -``` -tail -``` - -The next step after listing files is examining what each file contains. For that, I use a few commands. Starting with the `docs` directory on my web server: - -``` -$ ls docs -chapter1.tex chapter4.tex chapter7.tex lorem.txt -chapter2.tex chapter5.tex chapter8.tex readme.txt -chapter3.tex chapter6.tex chapter9.tex workbook.tex -``` - -What are these files? Fortunately, this directory has a `readme.txt` file, which I might assume contains a description of the files in this project directory. If the file is not too long, I can view it using the `cat` command: - -``` -$ cat docs/readme.txt -This is the workbook for the C programming self-paced -video series. The main file is the workbook.tex file, -which includes the other chapters. -``` - -If a file is very long, I can look at just the first few lines using the `head` command. This displays a certain number of lines from the file, usually the first 10 lines unless you tell `head` otherwise with the `-n` or `--lines` option. For example, these two versions of the `head` command examine the first three lines of the `lorem.txt` file: - -``` -$ head -n 3 docs/lorem.txt -Lorem ipsum dolor sit amet, consectetur adipiscing -elit. Nullam at ligula eget nunc feugiat pharetra. Nullam -nec vulputate augue. Suspendisse tincidunt aliquet -$ head --lines=3 docs/lorem.txt -Lorem ipsum dolor sit amet, consectetur adipiscing -elit. Nullam at ligula eget nunc feugiat pharetra. Nullam -nec vulputate augue. Suspendisse tincidunt aliquet -``` - -If I instead wanted to see the last few lines of a file, I can use the `tail` command in the same way. Again, these two `tail` commands each show the last three lines of the `lorem.txt` file: - -``` -$ tail -n 3 docs/lorem.txt -egestas sodales. Vivamus tincidunt ex sed tellus tincidunt -varius. Nunc commodo volutpat risus, vitae luctus lacus -malesuada tempor. Nulla facilisi. -$ tail --lines=3 docs/lorem.txt -egestas sodales. Vivamus tincidunt ex sed tellus tincidunt -varius. Nunc commodo volutpat risus, vitae luctus lacus -malesuada tempor. Nulla facilisi. -``` - -Using `head` and `tail` are also useful when examining log files on a server. I have a small web server I run on my at-home network to test websites before I make them live. I recently discovered that the web server's log is quite long, and I wondered how old it was. Using `head`, I printed just the first line to see that the log file was created in December 2020: - -``` -$ ls -l --human-readable /var/log/httpd -total 13M --rw-r--r--. 1 root root 13M Jun 25 16:23 access_log --rw-r--r--. 1 root root 45K Jun 2 00:00 error_log -$ sudo head -n 1 /var/log/httpd/access_log -10.0.0.177 - - [05/Dec/2020:14:58:35 -0600] "GET / HTTP/1.1" 403 5564 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" -``` - -**[[ Related read: Getting started with the Linux cat command ]][3]** - -### Delete files with Linux rm - -``` -rm -``` - -In my directory with the sample text files, the `lorem.txt` file contains *Lorem Ipsum* text. This is just dummy text used in the printing industry, so the `lorem.txt` file doesn't really belong in this project. Let's delete it. The `rm` command removes a file like this: - -``` -$ ls docs -chapter1.tex chapter4.tex chapter7.tex lorem.txt -chapter2.tex chapter5.tex chapter8.tex readme.txt -chapter3.tex chapter6.tex chapter9.tex workbook.tex -$ rm docs/lorem.txt -$ ls docs -chapter1.tex chapter4.tex chapter7.tex readme.txt -chapter2.tex chapter5.tex chapter8.tex workbook.tex -chapter3.tex chapter6.tex chapter9.tex -``` - -The `rm` command is dangerous, because it removes a file without the intervention of a trash or recycle bin. It's much safer to install a trash command, such as [trashy][4] or [trash-cli][5]. Then you can send files to a staging area before deleting them forever: - -``` -$ rm docs/lorem.txt -``` - -Managing files on the command line requires only a few commands. The `ls` command lists the contents of a directory, and `cat`, `head` and `tail` show the contents of files. Use `rm` or a safe "trash" command to remove files you don't need. These five commands will help you manage your files on any Linux system. To learn more, including the options available, use the `--help` option to see a summary of how to use each command, such as `ls --help` to see how to use the `ls` command. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/manage-files-linux-command-line - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/files_documents_paper_folder.png -[2]: https://opensource.com/article/19/7/master-ls-command -[3]: https://opensource.com/article/19/2/getting-started-cat-command -[4]: https://gitlab.com/trashy/trashy -[5]: https://github.com/andreafrancia/trash-cli diff --git a/translated/tech/20220727 How I manage files from the Linux command line.md b/translated/tech/20220727 How I manage files from the Linux command line.md new file mode 100644 index 0000000000..587e4b9d43 --- /dev/null +++ b/translated/tech/20220727 How I manage files from the Linux command line.md @@ -0,0 +1,196 @@ +[#]: subject: "**How I manage files from the Linux command lin**e" +[#]: via: "https://opensource.com/article/22/7/manage-files-linux-command-line" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 中如何使用命令行管理文件 +====== +如果你更喜欢用终端与系统交互,请查看我最喜欢的管理文件的命令。 + +![Files in a folder][1] + +在如 GNOME 或 KDE 等图形桌面中使用鼠标点击管理文件。你点击文件的图标将它移动到另一个文件夹中,或者移动到回收站里。图形交互使得桌面计算 (desktop computing) 方便使用。 + +但是在 Linux 中,我们并不总是与图形界面交互。如果你在服务器上工作,那么你可能需要使用命令行来解决问题。即使像我这样使用桌面的用户,可能也更喜欢使用终端和命令行和系统交互。我倾向于通过命令行运行命令来管理我的文件: + +### 使用 ls 显示文件 + +``` +ls +``` + +对任何使用命令行的人来说,如果不知道有什么文件,工作将很难进行下去。[ls 命令][2] 会罗列出文件夹中的文件。例如,要查看 Web 服务器的文档根目录 `/var/www/html` 中的内容,你可以键入: + +``` +ls /var/www/html +``` + +大多数情况,我使用 `ls` 命令查看当前文件夹内的文件。只需要输入 `ls` 即可查看所有文件。例如,当我在我的网页项目的根目录时,输入 `ls` 后可以看到这些: + +``` +$ ls +about fontawesome fonts index.php styles +docs fontawesome.zip images prism +``` + +`ls` 命令包含 60 种选项,可以以任意方式显示文件和目录。`-l` 是一个很有用的选项,可以详细的显示文件,包含权限、文件大小以及所有者等信息。 + +``` +$ ls -l + +total 6252 +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 about +drwxr-xr-x. 2 jhall jhall 4096 Jun 25 16:35 docs +drwxr-xr-x. 2 jhall jhall 4096 Jun 7 00:00 fontawesome +-rw-r--r--. 1 jhall jhall 6365962 Jun 2 16:26 fontawesome.zip +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 fonts +drwxr-xr-x. 2 jhall jhall 4096 Jun 25 13:03 images +-rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 prism +drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 styles +``` + +上方的文件大小是以字节为单位,或许看起来有点吃力。想要以方便我们阅读的格式查看文件大小,只需要添加 `-h` 或 `--human-readable` 选项,可以以 `G` 、`M` 、`K` 为单位显示文件大小。 + +``` +$ ls -l --human-readable +total 6.2M +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 about +drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 16:35 docs +drwxr-xr-x. 2 jhall jhall 4.0K Jun 7 00:00 fontawesome +-rw-r--r--. 1 jhall jhall 6.1M Jun 2 16:26 fontawesome.zip +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 fonts +drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 13:03 images +-rw-rw-r--. 1 jhall jhall 327 Jun 22 16:38 index.php +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 prism +drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 styles +``` + +现在,`ls` 将 zip 文件显示为 `6.1M` 或刚刚超过 6 MB 的文件大小,而不是 `6365962`。 + +### 使用 cat ,head 和 tail 命令查看文件 + +``` +cat +``` + +``` +head +``` + +``` +tail +``` + +当显示出文件后,需要检查文件夹中的内容。使用很少一些命令即可。以我的 Web 服务器中的 `docs` 文件夹为例: + +``` +$ ls docs +chapter1.tex chapter4.tex chapter7.tex lorem.txt +chapter2.tex chapter5.tex chapter8.tex readme.txt +chapter3.tex chapter6.tex chapter9.tex workbook.tex +``` + +这些文件是什么?我不知道,幸运的是该目录中有一个 `readme.txt` 文件,我猜它包含了这个项目目录中文件的描述。如果该文件不是很长,那我可以使用 `cat` 命令查看它: + +``` +$ cat docs/readme.txt +This is the workbook for the C programming self-paced +video series. The main file is the workbook.tex file, +which includes the other chapters. +``` + +如果这个文件很长,则可以使用 `head` 命令查看文件的前几行。该命令通常显示前 10 行的内容,不过你也可以使用 `-n` 或者 `--lines` 选项来指定行数。例如,使用这两个 `head` 命令的选项查看 `lorem.txt` 文件的前三行: + +``` +$ head -n 3 docs/lorem.txt +Lorem ipsum dolor sit amet, consectetur adipiscing +elit. Nullam at ligula eget nunc feugiat pharetra. Nullam +nec vulputate augue. Suspendisse tincidunt aliquet + +$ head --lines=3 docs/lorem.txt +Lorem ipsum dolor sit amet, consectetur adipiscing +elit. Nullam at ligula eget nunc feugiat pharetra. Nullam +nec vulputate augue. Suspendisse tincidunt aliquet +``` + +如果我想要查看文件的最后几行的内容,可以以相同方式使用 `tail` 命令。同样,这两个 `tail` 命令分别显示 `lorem.txt` 文件的最后三行: + +``` +$ tail -n 3 docs/lorem.txt +egestas sodales. Vivamus tincidunt ex sed tellus tincidunt +varius. Nunc commodo volutpat risus, vitae luctus lacus +malesuada tempor. Nulla facilisi. + +$ tail --lines=3 docs/lorem.txt +egestas sodales. Vivamus tincidunt ex sed tellus tincidunt +varius. Nunc commodo volutpat risus, vitae luctus lacus +malesuada tempor. Nulla facilisi. +``` + +使用 `head` 和 `tail` 命令在服务器中查看日志文件十分有用。我有一个小型 Web 服务器运行在家庭网络,用于在网站上线前的测试。最近我发现 Web 服务器的日志很长,我好奇它存在多久了。使用 `head` 命令,我只打印第一行,可以看到该日志文件是在 2020 年 12 月创建的: + +``` +$ ls -l --human-readable /var/log/httpd +total 13M +-rw-r--r--. 1 root root 13M Jun 25 16:23 access_log +-rw-r--r--. 1 root root 45K Jun 2 00:00 error_log + +$ sudo head -n 1 /var/log/httpd/access_log +10.0.0.177 - - [05/Dec/2020:14:58:35 -0600] "GET / HTTP/1.1" 403 5564 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" +``` + +**[[ 相关阅读:Linux cat 命令入门 ]][3]** + +### 使用 rm 命令删除文件 + +``` +rm +``` + +在包含示例文本文件的目录中,`lorem.txt` 文件中包含 “乱数假文” (`Lorem Ipsum`) 文本。这只是印刷行业中使用的虚拟文本,因此 "lorem.txt" 文件并不属于该项目。让我们用 `rm` 命令删除这样的文件: + +``` +$ ls docs +chapter1.tex chapter4.tex chapter7.tex lorem.txt +chapter2.tex chapter5.tex chapter8.tex readme.txt +chapter3.tex chapter6.tex chapter9.tex workbook.tex + +$ rm docs/lorem.txt + +$ ls docs +chapter1.tex chapter4.tex chapter7.tex readme.txt +chapter2.tex chapter5.tex chapter8.tex workbook.tex +chapter3.tex chapter6.tex chapter9.tex +``` + +由于用 `rm` 命令删除的文件会直接删除,而不会放入回收站,因此它很危险。安装 trash 命令比较安全,例如 [trashy][4] 或 [trash-cli][5] 命令。这样你可以在文件永久删除前,将其放入暂存区。 + +``` +$ rm docs/lorem.txt +``` + +只需很少的命令即可在命令行中管理文件。使用 `ls` 命令显示目录中的文件,使用 `cat` 、`head` 和 `tail` 命令查看文件中的内容。使用 `rm` 或者安全的 `trash` 命令将不需要的文件删除。这五个命令足以帮你在 Linux 中管理文件。想要了解更多,可以使用 `--hep` 选项来查看如何使用这些命令。例如使用 `ls --help` 查看 `ls` 命令如何使用。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/manage-files-linux-command-line + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/files_documents_paper_folder.png +[2]: https://opensource.com/article/19/7/master-ls-command +[3]: https://opensource.com/article/19/2/getting-started-cat-command +[4]: https://gitlab.com/trashy/trashy +[5]: https://github.com/andreafrancia/trash-cli From d03e7ee3f9003ae884b73b20c6df456e8825c4b1 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Fri, 12 Aug 2022 13:36:35 +0800 Subject: [PATCH 0721/3123] trasnlated --- ...20220727 How I manage files from the Linux command line.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20220727 How I manage files from the Linux command line.md b/translated/tech/20220727 How I manage files from the Linux command line.md index 587e4b9d43..b8c901977d 100644 --- a/translated/tech/20220727 How I manage files from the Linux command line.md +++ b/translated/tech/20220727 How I manage files from the Linux command line.md @@ -54,7 +54,7 @@ drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:18 prism drwxrwxr-x. 2 jhall jhall 4096 Jun 22 16:17 styles ``` -上方的文件大小是以字节为单位,或许看起来有点吃力。想要以方便我们阅读的格式查看文件大小,只需要添加 `-h` 或 `--human-readable` 选项,可以以 `G` 、`M` 、`K` 为单位显示文件大小。 +上方的文件大小是以字节为单位,或许看起来有点吃力。想要以方便我们阅读的格式查看文件大小,只需要添加 `-h` 或 `--human-readable` 选项,能以 `G` 、`M` 、`K` 为单位显示文件大小。 ``` $ ls -l --human-readable @@ -86,7 +86,7 @@ head tail ``` -当显示出文件后,需要检查文件夹中的内容。使用很少一些命令即可。以我的 Web 服务器中的 `docs` 文件夹为例: +当显示出文件后,需要检查文件夹中的内容。使用很少一些命令即可做到。以我的 Web 服务器中的 `docs` 文件夹为例: ``` $ ls docs From 6752fa10a73d293318960c8a3152d262421a064e Mon Sep 17 00:00:00 2001 From: zhaoxu_Lee <67046056+lzx916@users.noreply.github.com> Date: Fri, 12 Aug 2022 14:52:43 +0800 Subject: [PATCH 0722/3123] Update 20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md translating --- ...kes Action To Prevent Supply Chain Attacks On Open Source.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md index 24495eaa18..5b9f332b4b 100644 --- a/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ b/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/" [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lzx916" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b5bba875ec1a3e57bf1ac06e97518b85dd5e4d9f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 12 Aug 2022 16:08:46 +0800 Subject: [PATCH 0723/3123] RP @yjacks https://linux.cn/article-14921-1.html --- ...se To Use CC0 Licensed Code As The Boot.md | 52 +++++++++++++++++++ ...se To Use CC0 Licensed Code As The Boot.md | 49 ----------------- 2 files changed, 52 insertions(+), 49 deletions(-) create mode 100644 published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md delete mode 100644 translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md diff --git a/published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md new file mode 100644 index 0000000000..4adc494f31 --- /dev/null +++ b/published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md @@ -0,0 +1,52 @@ +[#]: subject: "What Made Fedora Choose To Use CC0 Licensed Code As The Boot" +[#]: via: "https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "yjacks" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14921-1.html" + +为什么 Fedora 一开始允许使用 CC0 许可证 +====== + +![](https://img.linux.net.cn/data/attachment/album/202208/12/160739j1eqft2cpw7srssz.png) + +开源是一个具有挑战性的概念。许多人认为,开源意味着可以任意的使用软件,并且可以免费下载。这实际上取决于你如何被许可 —— 开发者分享代码时使用的许可证决定了它。开源软件可以是收费的,也可以限制你如何去使用它,在极少数情况下,甚至让你陷入法律纠纷。 + +Fedora 项目最近决定拒绝所有使用 知识共享Creative Commons “公共领域专用” CC0 许可证的代码,以避免这种情况的出现。CC0 将从新提交代码中准许使用的许可证列表中剔除,但是,像艺术品一类的贡献仍被允许所以它,甚至可能在个案的情况下对当前的软件包进行逐一的处理。 + +如果 Fedora 反对一个软件许可证,通常不会成为新闻。事实上,在那么多的许可证当中,该项目拒绝了许多许可证。这种情况的意外之处在于,CC0 最初被认为是一个有效的许可证,现在只是由于更大的自由及开源(FOSS)社区内的观点转变而被重新分类。 + +CC0 是因为什么让 Fedora 决定停止支持它,这又是否意味着你不能在你自己的项目中使用它呢? + +这一段描述让最熟悉知识共享及其许可系列的人惊讶的是,Fedora 最初批准了 CC0 的软件。毕竟,知识共享从一开始的目标是为艺术作品提供一系列明确的许可证。该组织的使命和许可证的要求在其名称“知识共享”中就有所体现。 + +为了“克服分享信息和创造力的法律障碍”,提供一个自由的框架来为人们组织分享如音乐、医学或教育材料的资源,知识共享组织的前身——开放内容项目Open Content Project,于 2001 年成立。然而,软件从来不是它的组成要素。为什么呢?因为那时,如 MIT、GPL 一类的重要的软件许可证已经出现了十几年。 + +很明显,如果一家公司不遗余力地警告你他们制造的东西不适合某种特定用途,你也许应该相信他们。知识共享的 FAQ 列出了一些反对在软件上使用他们的许可证的令人信服的论据,但对于像 Fedora 项目这样的用户来说,其中一个问题特别突出:专利权。 + +鉴于 CC0 许可证是为公共领域的作品准备的,而且通过使用它,创作者明确地“放弃了他或她在版权法下对作品的所有权利”,这似乎矛盾的。但是,问题在于,版权法并不适用于专利。事实上,仔细审视许可证的完整措辞后可以发现,它在一个令人担忧的部分解决了这个问题,该部分内容如下:“宣告者拥有的任何商标或专利权都没有被本文本放弃、抛弃、交出、租赁或以其他方式修改。” + +换言之,即使被 CC0 许可的东西的作者可能愿意放弃对它的权力,但他们仍然可以自由的为它申请专利。更糟糕的是,他们仍然保留着以他们认为合适的方式使用该专利的能力。 + +理论上来说,这意味着最初在 CC0 下提供的源代码的人在发布了代码之后,他们可能会在之后断言任何使用该代码的人侵犯了他们的专利,并要求支付专利费。 + +这显然会让像 Fedora 这样的项目担忧。考虑一下这样的情形:CC0 许可的代码进入到一个系统的核心,然后被提供给数以百万计的用户。突然间,不知道从哪里冒出来的原创作者,声称侵犯了专利权,并要求付款。红帽或 Fedora 的律师可以驳倒这种说法么?也许吧。那么,为了查明真相而使用 CC0 代码值得么?不值得。 + +要着重提到的是,这完全不是一个新问题。实际上,早在 2012 年,专利条款就阻止了开源倡议(OSI)许可证的审查委员会,他们无法最终确定 CC0 是否真正符合他们对开源许可证的定义。委员会未能达成一致意见,因为其成员认为将此类条款纳入软件许可将创造一个危险的先例。考虑到 Fedora 动荡的历史,它最初接受 CC0 的决定着实让人费解。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[yjacks](https://github.com/yjacks) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/08/fedora-1024x614-1-e1659346500461.jpg diff --git a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md deleted file mode 100644 index 9725c45697..0000000000 --- a/translated/talk/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md +++ /dev/null @@ -1,49 +0,0 @@ -[#]: subject: "What Made Fedora Choose To Use CC0 Licensed Code As The Boot" -[#]: via: "https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: "yjacks" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " -为什么 Fedora 一开始允许使用 CC0 许可证 -====== - -![fedora-1024x614][1] - -开源是一个具有挑战性的概念。许多人认为,开源意味着可以任意的使用软件,亦或者是免费下载。这实际上取决于你如何被许可——开发者分享代码时使用的许可证决定了它。开源软件可以是收费的,也可以限制你如何去使用它,甚至让你陷入法律麻烦。 - -Fedora 项目最近决定拒绝所有使用 知识共享Creative Commons "公共领域贡献" CC0 许可证开放的代码,以避免 CC0 许可的代码的出现。CC0 将从新提交代码中准许使用的许可证列表中剔除,但是,像艺术品一类的贡献仍被允许,甚至可能对目前的包进行逐一的处理。 - -CC0 是因为什么让 Fedora 决定停止支持它,这又是不是意味着你不能在你自己的项目中使用它呢? - -这一段描述让最熟悉 CC 及其许可系列的人惊讶的是,Fedora 最初允许了 CC0 的软件。毕竟, 知识共享从一开始的目标是为艺术作品提供一系列明确的许可证。该组织的使命和许可证的要求在其名称——知识共享中就有体现。 - -为了"克服分享信息和创造力的法律障碍",他们提供了一个自由框架来为人们组织分享如音乐、医学或教育材料的资源,知识共享组织的前身——开放内容项目Open Content Project,创建于2001年。然而,软件从来不是组成它的要素。为什么呢?因为那时,如 MIT 、 GPL 一类的重要的软件许可证已经出现了十几年。 - -很明显,在一些特定的领域,你也许需要相信一个公司的创造是无害的。CC FAQ 列出了说些反对使用他们的软件许可证的令人信服的论据,但对于像 Fedora 项目这样的用户来说,有一个问题特别突出:专利权。 - -也许是很明显的,使用 CC0 许可证意味着在公共领域使用它,它很明确的表示“在全球范围内放弃他或她根据版权法对该作品的所有权利。”但是,问题在于,版权法并不适用于专利。事实上,仔细审视许可证的完整措辞后可以发现,它在一个令人担忧的部分解决了这个问题,该部分内容如下:“宣告者拥有的任何商标或专利权都没有被放弃、抛弃、放弃、租赁或以其他方式被本文件修改。” - -在别的措辞中,甚至当授权在 CC0 许可证下时——这意味着可能将放弃放弃对它的一切权力,开发者仍然可以自由的为它申请专利。更糟糕的是,他们仍然保留着以他们认为合适的方式使用该专利的能力。 - -理论上来说,这意味着最初在 CC0 下提供的源代码的人在发布了代码之后,他们可以断言任何使用该代码的人侵犯了他们的专利,并要求支付专利费。 - -这显然会让像 Fedora 这样的项目担忧。考虑到 CC0 授权的场景是组成系统的核心包,然后将被用于数以百万计的用户。不知道从哪里冒出来的原创作者,声称侵犯了专利权,并要求付款。红帽或 Fedora 的律师可以驳倒这种说法么?也许吧。那么,有使用 CC0 代码的价值么?没有。 - -要着重提到的是,这完全不是一个新问题。实际上,回到 2012 年,专利法阻止了开源倡议(OSI)许可证的审查委员会。因此,他们无法最终确定 CC0 是否真正符合他们对开放源代码许可的定义。委员会未能达成一致意见,因为其成员认为将此类条款纳入软件许可将创造一个危险的先例。考虑到 Fedora 动荡的历史,它最初接受 CC0 的决定着实让人费解。 - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/what-made-fedora-choose-to-use-cc0-licensed-code-as-the-boot/ - -作者:[Laveesh Kocher][a] -选题:[lkxed][b] -译者:[yjacks](https://github.com/yjacks) -校对:[校对者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/08/fedora-1024x614-1-e1659346500461.jpg From 9c91a820e49a363e24de148485edef2c93861dce Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 12 Aug 2022 18:51:29 +0800 Subject: [PATCH 0724/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220811=20Heroic=20Games=20Launcher=202.4.0=20Relea?= =?UTF-8?q?sed=20With=20Epic=20Overlay,=20GOG=20Cloud=20Save=20Support,=20?= =?UTF-8?q?and=20Anti-cheat=20Runtime.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ud Save Support, and Anti-cheat Runtime.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md diff --git a/sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md b/sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md new file mode 100644 index 0000000000..b8364f2f88 --- /dev/null +++ b/sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md @@ -0,0 +1,114 @@ +[#]: subject: "Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime" +[#]: via: "https://news.itsfoss.com/heroic-games-launcher-2-4-0-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime +====== +Heroic Games Launcher is adding solid features for Linux gamers. If you haven’t used it yet, try out its new release. + +![heroic games][1] + +As [gaming on Linux][2] continues to improve, so do the tools we use to play those games. Heroic Games Launcher is a great example of such a tool, as it gives users a native way to access and play Epic Games Store games on their Linux machines. + +One of its older releases, [Heroic 2.0.0][3], brought major UI improvements, and this release further builds on those. + +### Heroic Games Launcher 2.4.0: What’s New? + +Heroic Games Launcher 2.4.0 brings numerous major upgrades, including: + +* GOG Cloud Save support +* Epic overlay support +* EAC and BattleEYE runtime +* Anti-cheat information on the game page +* Add game shortcut to Steam option + +### GOG Cloud Save Support + +![][4] + +When moving between devices, cloud saves quickly become an essential feature. However, until recently, this has been noticeably missing from Heroic when playing GOG games. This changes with the 2.4.0 release. + +Now, GOG cloud save works on all supported platforms. Note that the Linux-native games on GOG do not support cloud saves, so you can only expect it with Windows games running through Wine/Proton. + +### Epic Overlay Support + +The Epic Overlay, a feature similar to the Steam overlay, now has full support from within Heroic Launcher. This is possible thanks to the new DXVK version (Vulkan-based implementation of Direct 3D), which also fixed several bugs in games. + +You can enable it by going to the Heroic settings and finding it among the tools. As initial feature support, it may not work flawlessly. You should test it out for yourself. + +### Anti-Cheat Information Via Game Page + +![][5] + +Anti-cheat software has always been problematic when it comes to gaming on Linux. In fact, a lot of anti-cheat software only started supporting Linux when the Steam Deck was released. However, they remain a problem until now. + +Fortunately, the community has built a plethora of resources to help share information on how well games work on Wine and Proton. + +While you can rely on [ProtonDB][6], it may not be the most convenient option. + +Now, you get the necessary information on anti-cheat on the game status page using data pulled from *areweanticheatyet.com*. + +### Add To Steam Option + +![][7] + +We are all familiar with the pain of juggling between launchers to access our games. There are different pieces of software have tried to overcome this over the years, but Steam remains the most popular game launcher. + +With that in mind, Heroic Games Launcher 2.4.0 now lets you directly add your games to your Steam library. While the Heroic Games Launcher still runs in the background, it gives a better experience for users comfortable with Steam. + +Note that this support is still experimental and may not work with portable games. + +### Other Improvements + +![][8] + +Alongside the ones previously mentioned, Heroic 2.4.0 brings in several refinements that include: + +* An easier way to add environmental variables or wrappers. +* Find the current download/update(s) on the sidebar. +* Added auto-complete feature to the search bar. +* Added information boxes for things such as VKD3D and DXVK. +* Officially signed setup files for Windows to prevent Malware warnings. +* Ability to use HTTP instead of HTTPS when downloading games. +* Ability to force a game update (a feature sorely missing from the official Epic Games Launcher). +* Heroic will now use libraries from its downloaded version for Proton/Wine games instead of system libraries. You can change the setting if needed. +* Updated Electron framework. + +For a full list of changes, I encourage you to take a look at the [release notes][9]. + +### Wrapping Up + +With all these exciting improvements, I can’t wait to see what the next upgrade will have in store for us. You can grab the AppImage file for this release and get started on any Linux distribution. + +Alternatively, if you’re using a mainstream distro, there is probably a package available to download from their GitHub releases page. + +[Download Heroic Game Launcher][10] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/heroic-games-launcher-2-4-0-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-games-launcher-2-4-0.jpg +[2]: https://itsfoss.com/linux-gaming-guide/ +[3]: https://news.itsfoss.com/heroic-games-launcher-2-release/ +[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-2.4.0-gog-backups.png +[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-2.4.0-anticheat.png +[6]: https://www.protondb.com/ +[7]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-2.4.0-add-to-steam-1024x509.png +[8]: https://news.itsfoss.com/wp-content/uploads/2022/08/heroic-games-launcher-shot-1.jpg +[9]: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.4.0 +[10]: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases From 09bfe4eb5b46416e6be42a89f3c111b34804ded1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 12 Aug 2022 18:56:07 +0800 Subject: [PATCH 0725/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220812=205=20Tools=20to=20Protect=20Your=20Email?= =?UTF-8?q?=20Address=20From=20Websites=20and=20Newsletters.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...l Address From Websites and Newsletters.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20220812 5 Tools to Protect Your Email Address From Websites and Newsletters.md diff --git a/sources/tech/20220812 5 Tools to Protect Your Email Address From Websites and Newsletters.md b/sources/tech/20220812 5 Tools to Protect Your Email Address From Websites and Newsletters.md new file mode 100644 index 0000000000..08cb4f59f2 --- /dev/null +++ b/sources/tech/20220812 5 Tools to Protect Your Email Address From Websites and Newsletters.md @@ -0,0 +1,144 @@ +[#]: subject: "5 Tools to Protect Your Email Address From Websites and Newsletters" +[#]: via: "https://itsfoss.com/protect-email-address/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Tools to Protect Your Email Address From Websites and Newsletters +====== +It is important to hide your email address from various third-party applications and web services. + +You create free accounts with some seemingly cool web service or subscribe to newsletters. This is the general practice and that’s what most people do. + +But imagine if there is a database breach on the web or newsletter service. Your email address is exposed to all kinds of scammers and spammers. Such email databases are sold on the dark web all the time. + +In some cases, spurious websites also collect email addresses just to send spam messages. + +You are no stranger to spam, are you? + +Now, some people have dedicated email addresses for these kinds of random, non-work, unimportant emails. But there are better ways to prevent spam emails. + +![Simplelogin Details][1] + +You can use specialized tools that give you dummy email addresses to share with third parties. Emails coming to these dummy addresses are forwarded to your actual email address. Your actual email address is not exposed here (except to the tool you are using). + +Do you want to stop receiving emails from certain sources? You can block it even before it reaches your inbox. + +Here, I focus on listing some of the most interesting open-source tools that provide email aliases to help hide your real email address + +**In case you’re looking for more privacy tools** (*browsers, VPN, messaging, etc*.): refer to our [list of easy privacy tools][2] to enhance your digital experience. + +### 1. SimpleLogin by Proton + +![simple login 2022][3] + +If you have been following us for a while, you may have read about [SimpleLogin][4] during its initial launch days. + +Since then, a lot has changed, and it is now a part of Proton. In case you’re curious, ProtonMail [rebranded to Proton][5] earlier this year. + +**The one thing that stands out here**: if you already have a paid ProtonMail account, you can use SimpleLogin premium for free. + +It is an **open-source**anonymousemail solution that lets you generate email aliases for free. + +The free plan is limited to 10 aliases (unlimited bandwidth) and one mailbox. So, if you want unlimited aliases, and the ability to add more email addresses for protection, you can opt for its premium plans that cost **$30** per year. + +You get access to the service through the web, a browser extension, and mobile apps (Android and iOS). + +Additionally, you can self-host it for total control of the email aliases and get the ability to customize your experience with it. + +[SimpleLogin][6] + +### 2. Firefox Relay + +![firefox relay 2022][7] + +Firefox Relay is an entirely free service, with paid options available to certain regions of users. It is best to [use Firefox as your web browser][8] if you opt to use Firefox Relay for seamless integration. + +In either case, you can also use Firefox Relay on Chromium-based browsers like Brave and Vivaldi. Explore the differences between them in our [Brave vs Vivaldi comparison][9] article. + +You will be limited to five email aliases for free. If you want a couple of email aliases, have them redirect to your inbox, it should be a good option. + +Note that you will not be getting access to any mobile apps here. So, you can only access it using the mobile web browser or the desktop browser extension. + +[Firefox Relay][10] + +#### 3. AnonAddy + +![anonaddy 2022][11] + +AnonAddy is a similar offering to SimpleLogin in terms of features available. + +The pricing plans could help you pick either of them, considering AnonAddy provides unlimited standard aliases with a monthly bandwidth limit. + +You can also self-host AnonAddy as well for enhanced privacy. + +Not to forget, you get browser extension support for Chrome and Firefox. It also offers mobile clients for on-the-go usage (Android and iOS). + +[AnonAddy][12] + +### 4. Booya Web Extension + +![A Video from YouTube][13] + +Booya is an interesting service that encourages you to purchase a domain of your choice, and then configure it by using its browser extension for email aliases. + +It is a free and open-source project. + +While that sounds exciting, it may not be a convenient option for many users. Not everyone prefers to purchase a domain from a registrar they do not know. If you do not have an issue with that, you can proceed with it. + +[Booya][14] + +### 5. DuckDuckGo Email Protection + +![duckduckgo email protection][15] + +If you are using DuckDuckGo mobile browser, you can take advantage of its beta email protection service, where you get an email alias (example**@duck.com**) that you can use to hide your real email address. + +At the time of writing, you need to sign up for a waitlist to get access. You should receive the invite in a few months if it is still in beta. But, I don’t think it will be long before it is available to all. + +Unfortunately, as of now, you cannot delete the duck address (or generate a new one) by yourself. You will have to contact DuckDuckGo’s support to get help with it. + +### What Tool Do You Need to Protect Your Email? + +I’m confident that an email address will remain a vital point of contact for everything, even after decades. + +However, with various services and platforms to sign up, it can be risky to share your real email address while keeping privacy in mind. + +These privacy tools should help you protect your email address without needing to make lots of effort. + +By the way, it would be a good time to check whether your email address has been exposed. + +[Check if your email address has been in a data breach][16] + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/protect-email-address/ + +作者:[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/wp-content/uploads/2020/01/simplelogin-details.png +[2]: https://itsfoss.com/privacy-tools/ +[3]: https://itsfoss.com/wp-content/uploads/2022/08/simple-login-2022.png +[4]: https://itsfoss.com/simplelogin/ +[5]: https://news.itsfoss.com/protonmail-now-proton/ +[6]: https://simplelogin.io/ +[7]: https://itsfoss.com/wp-content/uploads/2022/08/firefox-relay-2022.jpg +[8]: https://news.itsfoss.com/why-mozilla-firefox/ +[9]: https://itsfoss.com/brave-vs-vivaldi/ +[10]: https://relay.firefox.com/ +[11]: https://itsfoss.com/wp-content/uploads/2022/08/anonaddy-2022.jpg +[12]: https://anonaddy.com/ +[13]: https://youtu.be/c03B4-jBl_Q +[14]: https://booya.email/ +[15]: https://itsfoss.com/wp-content/uploads/2022/08/duckduckgo-email-protection.png +[16]: https://monitor.firefox.com/ From 92e50676b5afba49f421233bb50db5dd1e3adc1c Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 12 Aug 2022 18:59:25 +0800 Subject: [PATCH 0726/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220812=20How=20I=20get=20students=20excited=20abou?= =?UTF-8?q?t=20math=20with=20Python=20and=20Raspberry=20Pi.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...about math with Python and Raspberry Pi.md | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 sources/tech/20220812 How I get students excited about math with Python and Raspberry Pi.md diff --git a/sources/tech/20220812 How I get students excited about math with Python and Raspberry Pi.md b/sources/tech/20220812 How I get students excited about math with Python and Raspberry Pi.md new file mode 100644 index 0000000000..f61c10a61f --- /dev/null +++ b/sources/tech/20220812 How I get students excited about math with Python and Raspberry Pi.md @@ -0,0 +1,141 @@ +[#]: subject: "How I get students excited about math with Python and Raspberry Pi" +[#]: via: "https://opensource.com/article/22/8/math-python-raspberry-pi" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I get students excited about math with Python and Raspberry Pi +====== +Reimagine math with the help of these open source technologies. + +I am teaching Python using [Raspberry Pi 400][2] computers in a local library for the second year in a row. A couple of this year's students have not experienced success with mathematics in their school. One asked me if she needed algebra to attend our class. I told her I had failed algebra, geometry, and trigonometry in school. She was relieved. Another student rushed in the door a bit late because she was taking geometry in summer school after failing to pass the course during the school year. I shared my own story of learned helplessness and my distress at the thought of math tests. My own bad experiences impacted my high school and early college years. + +I like Python, and in particular, the `turtle` module, because of an experience in graduate school in the early 1990s. The exercise used Apple's logo to teach students geometry, leading to an epiphany that completely changed my attitude toward mathematics. This week's class has four eighth-grade students. Two have math backgrounds, and two have math phobias. On the first day of class in the Olean Public Library, we started with a brief explanation of the RaspberryPi 400 and how to connect each of those computers to old VGA monitors that came from storage. I gave the students a brief overview and tour of the ports, peripheral mouse, and microHDMI cable we would use. We proceeded, step by step, to assemble the parts of the Raspberry Pi 400 units and connect them to the monitors. We powered up the units, and I assisted the students as they properly configured their computers for the United States and the Eastern Time Zone. We connected to the library's wireless network and were ready to begin. + +I gave the students a brief overview of all the software on their computers. Then I introduced them to the [Mu-Editor][3] that comes pre-installed on their computers. We reviewed the [Read-Evaluate-Print-Loop][4] (REPL). I explained that while we could execute code in the REPL, they would find it easier to write the code in the Mu-Editor and then save their code with a `.py` extension to ensure that the system could execute it properly. I explained how our code needed comments and how to add and save them properly. + +``` +# first program +print("Hello World") +``` + +Then I introduced them to the `turtle` module. We talked about the elements of a square; that squares are made up of four equal sides and contain 90-degree angles. We wrote the following code together, saved our work, and executed it. + +``` +# First Turtle Square +import turtle +turtle.forward(200) +turtle.right(90) +turtle.forward(200) +turtle.right(90) +turtle.forward(200) +turtle.right(90) +turtle.forward(200) +turtle.right(90) +``` + +I explained how to change the code and add features like a different pen color and a different color background. + +``` +# First Turtle Square +import turtle +turtle.pencolor("blue") +turtle.bgcolor("yellow") +turtle.forward(200) +turtle.right(90) +turtle.forward(200) +turtle.right(90) +turtle.forward(200) +turtle.right(90) +turtle.forward(200) +turtle.right(90) +``` + +I introduced them to the `turtle.shape` to change from the default to look more like a turtle. I encouraged them to save each time and to iterate. They had fun sharing their results. + +In our second session, I demonstrated how to use a *for* loop to draw a square and how to clean up the code by assigning the "turtle" to a specific letter. Then I ran the code. + +``` +#For Loop +import turtle as t +for x in range(4): + t.forward(200) + t.right(91) +``` + +One of the students who had experienced mathematics problems in the past said, "That square looks crooked." + +I said, "You're right. What's wrong with it?" + +She let me know that my `t.right` should be `90` and not `91`. I corrected the error and reran the code. It looked perfect, and she was proud to have experienced some success with mathematics. + +We changed our code, and I introduced them to new possibilities within the turtle module, including speed, pen color, and background color. They enjoyed it when I demonstrated how we could easily create a square spiral using the following code: + +``` +# square spiral +import turtle as t +t.speed(0) +t.bgcolor("blue") +t.pencolor("yellow") +for x in range(200): + t.forward(x) + t.right(91) +``` + +We changed our code again to make circle spirals. The students were leaning into the learning, and our ninety-minute class came to an end. One of the students is in summer school re-taking geometry which she failed during the school year, and each day she runs a block and a half to make it to our class, where she excels at constructing geometric shapes. She has a great eye for detail and regularly helps the other students identify errors in their code. Her watchful eye inspired me to discuss the value of open source software and the power of many eyes on the code with the group. + +![circle spirals rendered by python code][5] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +``` +# circle spiral +import turtle as t +t.speed(0) +t.bgcolor("blue") +t.pencolor("yellow") +for x in range(100): + t.circle(x*2) + t.right(91) +t.setpos(60,75) + +for x in range(100): + t.circle(x) + t.right(91) +``` + +![blue spiral of squares rendered from Python code][6] + +Image by: + +(Don Watkins, CC BY-SA 4.0) + +Using Python with open source hardware and software to facilitate mathematics instruction amazes me. With a little ingenuity, it's possible to reimagine mathematics education. Each student who participated in our class will receive the Raspberry Pi 400 they worked on to take home and use. They'll have to find a display to connect to, but for a bit over one hundred dollars per unit, we are investing in their future. You can have the same effect in your community if you are willing to donate your time. Public libraries are great spaces for extracurricular activities, and some of the resources I have used as the basis for my classes come from library books. One of those books is [Teach Your Kids to Code][7]. Another is [Python for Kids][8] and [A Simple Turtle Tutorial][9] by Al Sweigart is available online. We used Raspberry PI 400 kits with VGA monitors and microHDMI to VGA adapters. You could easily adapt this instruction using refurbished Linux laptops, Windows, and/or macOS laptops. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/math-python-raspberry-pi + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/osdc_520x292_opendata_0613mm.png +[2]: https://opensource.com/article/21/6/teach-python-raspberry-pi +[3]: https://opensource.com/article/20/9/teach-python-mu +[4]: https://learn.adafruit.com/welcome-to-circuitpython/the-repl +[5]: https://opensource.com/sites/default/files/2022-08/yellow.jpg +[6]: https://opensource.com/sites/default/files/2022-08/blue.jpg +[7]: https://opensource.com/education/15/9/review-bryson-payne-teach-your-kids-code +[8]: https://opensource.com/education/13/1/python-for-kids +[9]: https://github.com/asweigart/simple-turtle-tutorial-for-python/blob/master/simple_turtle_tutorial.md From 2c85962414f07cf9a7fea3e63ec0eb0f6dcacd85 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 12 Aug 2022 19:01:58 +0800 Subject: [PATCH 0727/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220812=20Writing=20project=20documentation=20in=20?= =?UTF-8?q?HTML.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2 Writing project documentation in HTML.md | 317 ++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 sources/tech/20220812 Writing project documentation in HTML.md diff --git a/sources/tech/20220812 Writing project documentation in HTML.md b/sources/tech/20220812 Writing project documentation in HTML.md new file mode 100644 index 0000000000..def1112b5e --- /dev/null +++ b/sources/tech/20220812 Writing project documentation in HTML.md @@ -0,0 +1,317 @@ +[#]: subject: "Writing project documentation in HTML" +[#]: via: "https://opensource.com/article/22/8/writing-project-documentation-html" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Writing project documentation in HTML +====== +HyperText has more features than plain text to level up your documentation. + +![5 trends in open source documentation][1] + +Image by: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0 + +Documentation is an important part of any technical project. Good documentation tells the end user how to run the program, how to use it, or how to compile it. For many projects, plain text documentation is the standard. After all, every system can display plain text files. + +However, plain text is limiting. Plain text files lack formatting elements like italics text, bold text, and titles. To add these elements, we can leverage HTML. HyperText Markup Language (HTML) is the markup language used in all web browsers. And with a little extra effort, you can use HTML to write project documentation that can be read by everyone. + +HTML uses a series of tags enclosed in angle brackets to control how different parts of a document should be displayed. These tags define *elements* in an HTML document, such as document headings, paragraphs, italics text, bold text, and other kinds of text. Almost every tag comes in a pair: an *opening* tag, like

to start a paragraph, and a *closing* tag to end the element, such as

to end a paragraph. When using these tags, remember this rule: *if you open a tag, you need to close it*. Not closing a tag properly can result in the web browser incorrectly. + +Some tags define a *block* within the HTML document, while others are *inline*. For more information about block and inline elements, read my other article about [a gentle introduction to HTML][2]. + +### Start an empty document + +Begin by creating a boilerplate empty HTML document. Every HTML document should provide a document type declaration. Use the single tag on the first line of the HTML file to define an HTML document. The HTML standard also requires that pages wrap the document text in two block elements: to define the HTML document, and to define the body text. While HTML doesn't require *indenting* each new code block, but I add it anyway so you can see that is actually "inside" the block: + +``` + + +  +  +  + +``` + +HTML documents also need a block before the that provides extra information called *metadata* about the page. The only required metadata is the title of the document, defined by the element. An empty document might look like this: + +``` +<!DOCTYPE html> +<html> +  <head> +    <title>Title of the document +  +  +  +  + +``` + +### Add the text + +Let's exercise some HTML knowledge by adapting an existing plain text "Readme" file to HTML. For this example, I'm using part of the documentation about how to play an open source board game, called Simple Senet: + +``` +HOW TO PLAY SIMPLE SENET + +The game will automatically "throw" the throwing sticks for you, and +display the results in the lower-right corner of the screen. + +If the "throw" is zero, then you lose your turn. + +When it's your turn, the game will automatically select your first +piece on the board. You may or may not be able to make a move with +this piece, so select your piece to move, and hit Space (or Enter) to +move it. You can select using several different methods: + +-  Up/down/left/right to navigate to a specific square. + +-  Plus (+) or minus (-) to navigate "left" and "right" on the +   board. Note that this will automatically follow the "backwards S" +   shape of the board. + +-  Tab to select your next piece on the board. + +To quit the game at any time, press Q (uppercase Q) or hit Esc, and +the game will prompt if you want to forfeit the game. + +You win if you move all of your pieces off the board before your +opponent. It takes a combination of luck and strategy! +``` + +Start by adding this Readme text into your empty HTML file. The main content of an HTML page is the , so that's where you put the text: + +``` + + +  +    Title of the document +  +  +    HOW TO PLAY SIMPLE SENET +    +    The game will automatically "throw" the throwing sticks for you, and +    display the results in the lower-right corner of the screen. +    +    If the "throw" is zero, then you lose your turn. +    +    When it's your turn, the game will automatically select your first +    piece on the board. You may or may not be able to make a move with +    this piece, so select your piece to move, and hit Space (or Enter) to +    move it. You can select using several different methods: +    +    - Up/down/left/right to navigate to a specific square. +    +    - Plus (+) or minus (-) to navigate "left" and "right" on the +      board. Note that this will automatically follow the "backwards S" +      shape of the board. +    +    - Tab to select your next piece on the board. +    +    To quit the game at any time, press Q (uppercase Q) or hit Esc, and +    the game will prompt if you want to forfeit the game. +    +    You win if you move all of your pieces off the board before your +    opponent. It takes a combination of luck and strategy! +  + +``` + +Without further changes, this HTML document looks completely wrong when you view it in a web browser. That's because HTML, like most markup systems, collects *words* from the input file and fills *paragraphs* in the output. Because you have not yet added other markup, a web browser displays the text in a single paragraph: + +![This is how a web browser displays our bare HTML file.][3] + +### Body paragraphs + +Your first step in updating this Readme file to HTML is to mark every paragraph so the web browser can display it properly. The tag to define a paragraph is

. While not everything in this file is actually a paragraph, start by wrapping everything in

and

tags: + +``` + + +  +    Title of the document +  +  +   

HOW TO PLAY SIMPLE SENET

+    +   

The game will automatically "throw" the throwing sticks for you, and +    display the results in the lower-right corner of the screen.

+    +   

If the "throw" is zero, then you lose your turn.

+    +   

When it's your turn, the game will automatically select your first +    piece on the board. You may or may not be able to make a move with +    this piece, so select your piece to move, and hit Space (or Enter) to +    move it. You can select using several different methods:

+    +   

- Up/down/left/right to navigate to a specific square.

+    +   

- Plus (+) or minus (-) to navigate "left" and "right" on the +         board. Note that this will automatically follow the "backwards S" +         shape of the board.

+    +   

- Tab to select your next piece on the board.

+    +   

To quit the game at any time, press Q (uppercase Q) or hit Esc, and +    the game will prompt if you want to forfeit the game.

+    +   

You win if you move all of your pieces off the board before your +    opponent. It takes a combination of luck and strategy!

+  + +``` + +This makes the Readme look more like a document you want to read. When you view the new document in a web browser, every paragraph starts on a new line, with some extra space above and below. The paragraph is the most common example of a block element. + +![Our first step is to define everything as paragraphs.][4] + +### Headings and subheadings + +The first line in your content is your document's title, so you should make this into a heading. HTML provides six levels of headings, from

to

. In most documents, you might use

to define the title of the document, and

for major subsections. Make this change in your sample Readme document. Use the name of the program ("Simple Senet") as the main section title, and "How to Play" as a subsection in the document. + +Note that in this example, I've also updated the in the document metadata to use the same title as the <h1> heading. This doesn't actually change how browsers display the document, but it is a good practice to use: + +``` +<!DOCTYPE html> +<html> +  <head> +    <title>Simple Senet +  +  +   

Simple Senet

+   

How to Play

+    ... +  + +``` + +By adding these section headings, you've made the document easier to read: + +![By itself, HTML will display headings and subheadings in a different style than the paragraphs.][5] + +### Ordered and unordered lists + +Your document includes a list of different ways to navigate the board game. Because this document started out as a plain text file, each item in the list starts with a hyphen. But you can use HTML to define these three paragraphs as list items. + +HTML supports two kinds of lists: *ordered* and *unordered* lists. An ordered list
    is a numbered series, which you might use to define a sequence of steps. An unordered list
      defines a list of items that may or may not be related, but are generally not done in order. Both lists use list items
    • for entries within the list. + +Update the Readme document to use an ordered list instead of paragraphs. This presents the three navigation options in a numbered list: + +``` +
        +     
      1. Up/down/left/right to navigate to a specific square.
      2. + +     
      3. Plus (+) or minus (-) to navigate "left" and "right" on the +          board. Note that this will automatically follow the "backwards S" +          shape of the board.
      4. +    +     
      5. Tab to select your next piece on the board.
      6. +   
      +``` + +This presents the three options in a numbered list: + +![The three options are in an ordered list, numbered 1, 2, and 3.][6] + +However, these three items aren't really a sequence of steps, but different options to move the selection in the Simple Senet game. So instead of an ordered list, we want to use an unordered list. This requires updating the
        to
          in the document: + +``` +
            +     
          • Up/down/left/right to navigate to a specific square.
          • + +     
          • Plus (+) or minus (-) to navigate "left" and "right" on the +          board. Note that this will automatically follow the "backwards S" +          shape of the board.
          • +    +     
          • Tab to select your next piece on the board.
          • +   
          +``` + +The unordered list uses bullets for each list item, because the entries are not part of a sequence: + +![The three options are in an unordered or bulleted list.][7] + +### Bold and italics + +You can highlight certain information in the document by applying **bold** and *italics* styles. These are very common text styles in technical writing. You might use bold to highlight important information, or italics to emphasize key phrases and new terms. + +The bold tag was originally defined as , but newer versions of the HTML standard prefer the tag to indicate strong importance, such as key steps in a set of instructions. Both tags are valid, but are semantically slightly different. now means "bring attention to." + +Similarly, the original HTML standard used for italics text. Later versions of HTML instead prefer to bring emphasis to parts of the text. Instead, now identifies idiomatic text or technical terms. + +For this example, use bold to identify the single-letter keypresses, and italics to indicate special keys on a keyboard like *Enter* and *Space*. For simplicity, use and tags here (but you could use and tags instead to get the same effect:) + +``` + + +  +    Simple Senet +  +  +   

          Simple Senet

          +   

          How to Play

          +    +   

          The game will automatically "throw" the throwing sticks for you, and +    display the results in the lower-right corner of the screen.

          +    +   

          If the "throw" is zero, then you lose your turn.

          +    +   

          When it's your turn, the game will automatically select your first +    piece on the board. You may or may not be able to make a move with +    this piece, so select your piece to move, and hit Space (or Enter) to +    move it. You can select using several different methods:

          + +   
            +     
          • Up/down/left/right to navigate to a specific square.
          • + +     
          • Plus (+) or minus (-) to navigate "left" and "right" on the +          board. Note that this will automatically follow the "backwards S" +          shape of the board.
          • +    +     
          • Tab to select your next piece on the board.
          • +   
          + +   

          To quit the game at any time, press Q (uppercase Q) or hit Esc, and +    the game will prompt if you want to forfeit the game.

          +    +   

          You win if you move all of your pieces off the board before your +    opponent. It takes a combination of luck and strategy!

          +  + +``` + +These extra styles help special items to stand out in the text: + +![The extra formatting makes these gameplay instructions easier to read.][8] + +The point of writing documentation is for users to understand how to use the software, so every open source project should make the effort to write documentation in a way that is easy to read. With a few basic HTML tags, you can write documentation that presents the information more clearly to your users. + +For more information on using HTML to write documentation, check out the complete [HyperText Markup Language reference][9] at MDN, the Mozilla Developer Network, hosted by the Mozilla web project. + +Image by: (Jim Hall, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/writing-project-documentation-html + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/documentation-type-keys-yearbook.png +[2]: https://opensource.com/article/22/8/gentle-introduction-html +[3]: https://opensource.com/sites/default/files/2022-08/html-senet-1.webp +[4]: https://opensource.com/sites/default/files/2022-08/html-senet-2.webp +[5]: https://opensource.com/sites/default/files/2022-08/html-senet-3.webp +[6]: https://opensource.com/sites/default/files/2022-08/html-senet-4.webp +[7]: https://opensource.com/sites/default/files/2022-08/html-senet-5.webp +[8]: https://opensource.com/sites/default/files/2022-08/html-senet-6.webp +[9]: https://developer.mozilla.org/en-US/docs/Web/HTML From ab9a7c755ff7509d157c13f67c2917bf737e3c35 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 12 Aug 2022 21:06:58 +0800 Subject: [PATCH 0728/3123] RP @geekpi https://linux.cn/article-14923-1.html --- ... Directories in Style Using lsd and exa.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) rename {translated/tech => published}/20220807 List Files and Directories in Style Using lsd and exa.md (60%) diff --git a/translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md b/published/20220807 List Files and Directories in Style Using lsd and exa.md similarity index 60% rename from translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md rename to published/20220807 List Files and Directories in Style Using lsd and exa.md index c954281b0d..717d784a85 100644 --- a/translated/tech/20220807 List Files and Directories in Style Using lsd and exa.md +++ b/published/20220807 List Files and Directories in Style Using lsd and exa.md @@ -3,21 +3,22 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14923-1.html" -使用 lsd 和 exa 以样式列出文件和目录 +重新想象和设计你的文件和目录列表 ====== -使用两个 ls 程序: lsd 和 exa 来重新想象和设计你的文件和目录列表。 + +> 使用两个 ls 程序: lsd 和 exa 来重新想象和设计你的文件和目录列表。 ![][0] -Linux 中的 ls 命令是最常用的命令。此命令列出终端中的文件和目录。因此,如你所见,它非常流行,也许每个人都在使用。 +Linux 中的 `ls` 命令是最常用的命令。此命令列出终端中的文件和目录。因此,如你所见,它非常流行,也许每个人都在使用。 但该命令输出的信息量很大,有时用彩色的方式查看它们会更方便。 -例如,如果你以最基本的方式运行 ls 命令,它应该看起来有点像这样。 +例如,如果你以最基本的方式运行 `ls` 命令,它应该看起来有点像这样: ![The default list files and directories view via ls command][1] @@ -27,9 +28,9 @@ Linux 中的 ls 命令是最常用的命令。此命令列出终端中的文件 #### lsd -我想向你展示的第一个应用叫做 “lsd”,也就是 “LSDeluxe”。它是对 GNU `ls` 命令的重写,具有列标题、各种项目的颜色、字体和图标支持等附加功能。 +我想向你展示的第一个应用叫做 `lsd`,也就是 “LSDeluxe” 的缩写。它是对 GNU `ls` 命令的重写,具有列标题、各种项目的颜色、字体和图标支持等附加功能。 -这是安装后的样子。 +这是安装后的样子: ``` lsd -l --header @@ -39,7 +40,7 @@ lsd -l --header 正如你所看到的,它看起来非常漂亮,用不同的颜色代码表示权限、文件类型和文件夹,甚至在文件名旁边添加图标。 -该应用充满了诸如树视图(见下文)之类的功能,它甚至可以在单个命令中为你提供文件夹内的文件列表。 +该应用充满了诸如树视图(见下文)之类的功能,它甚至可以在单个命令中为你提供文件夹内的文件列表: ``` lsd -l --header --tree @@ -47,37 +48,37 @@ lsd -l --header --tree ![lsd command showing a tree view][3] -你可以在[官方 GitHub 页面][4]上了解有关其功能的更多信息。 +你可以在其 [官方 GitHub 页面][4] 上了解有关其功能的更多信息。 我相信你很兴奋。让我们看看如何安装它。 -你可以从此处下载用于 Ubuntu 和相关发行版的 deb 文件。之后,只需运行 dpkg 即可安装。 +你可以从 [此处下载][11] 用于 Ubuntu 和相关发行版的 deb 文件。之后,只需运行 `dpkg` 即可安装: ``` sudo dpkg -i lsd_vvvv_amd64.deb ``` -对于 Fedora Linux,使用以下命令。 +对于 Fedora Linux,使用以下命令: ``` sudo dnf install lsd ``` -Arch Linux 用户可以使用以下命令获取它。 +Arch Linux 用户可以使用以下命令获取它: ``` pacman -S lsd ``` -该应用也可用于其他发行版、macOS、BSD 和 Windows。对于这些说明,你可以[在此处找到它们][5]。 +该应用也可用于其他发行版、macOS、BSD 和 Windows。对于这些说明,你可以 [在此处找到它们][5]。 -为了获得更好的体验,请将其与[装有 Oh My Zsh 的 Zsh shell][6] 一起使用。 +为了获得更好的体验,请将其与 [带有 Oh My Zsh 的 Zsh shell][6] 一起使用。 #### exa -下一个程序是 `exa`,类似于 `lsd` 但具有更多功能。 `exa` 命令可以为你的 ls 输出着色,检测 Unix 系统中的各种文件类型、标题、树视图等更多功能。 +下一个程序是 `exa`,类似于 `lsd` 但具有更多功能。`exa` 命令可以为你的 `ls` 输出着色,检测 Unix 系统中的各种文件类型、标题、树视图等更多功能。 -Exa 是一个单一的二进制文件,占用的资源很小。以下是一些示例命令。 +`exa` 是一个单一的二进制文件,占用的资源很小。以下是一些示例命令: ``` exa -al @@ -93,15 +94,15 @@ exa -abghHliS --long --tree ![Various exa commands][7] -你可以在 [GitHub][8] 上了解有关 exa 参数和选项的更多信息。 +你可以在 [GitHub][8] 上了解有关 `exa` 参数和选项的更多信息。 -exa 的安装很简单,只需要一个命令。对于 Ubuntu 和相关发行版,你可以使用以下命令安装它。 +`exa` 的安装很简单,只需要一个命令。对于 Ubuntu 和相关发行版,你可以使用以下命令安装它: ``` sudo apt install exa ``` -对于 Fedora 和 Arch Linux,分别使用以下命令。 +对于 Fedora 和 Arch Linux,分别使用以下命令: ``` sudo dnf install exa @@ -111,7 +112,7 @@ sudo dnf install exa pacman -S exa ``` -同样,各种操作系统的所有其他安装说明都可以[在此处找到][9]。 +同样,所有其他操作系统的安装说明都可以 [在此处找到][9]。 ### 从终端复制为 HTML @@ -119,18 +120,16 @@ pacman -S exa 例如,我将上面的示例复制到 LibreOffice Writer 文档中。 -它是最好的功能之一,尽管它取决于终端程序而不是上面的程序。 +这是最好的功能之一,尽管它取决于终端程序而不是上面的程序。 ![Exporting the command output as HTML][10] ### 总结 -我解释了两个程序的内部工作 – ls 和 exa 以样式列出文件和目录。我希望你能将它们用于不同的需求。 +我解释了两个程序的内部工作 – `lsd` 和 `exa` 以样式列出文件和目录。我希望你能将它们用于不同的需求。 如果你喜欢它们,或者如果你知道任何此类程序,请在评论栏中告诉我。 -干杯。 - -------------------------------------------------------------------------------- via: https://www.debugpoint.com/list-files-directories-style/ @@ -138,7 +137,7 @@ via: https://www.debugpoint.com/list-files-directories-style/ 作者:[Arindam][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/) 荣誉推出 @@ -155,3 +154,4 @@ via: https://www.debugpoint.com/list-files-directories-style/ [8]: https://github.com/ogham/exa#command-line-options [9]: https://github.com/ogham/exa#installation [10]: https://www.debugpoint.com/wp-content/uploads/2022/08/Exporting-the-command-output-as-HTML.jpg +[11]: https://github.com/Peltoche/lsd/releases \ No newline at end of file From d494d13ed056504e6194ac07feb22ee4a166677e Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Sat, 13 Aug 2022 08:56:37 +0800 Subject: [PATCH 0729/3123] Being translated --- .../talk/20200202 Bulletin Board Systems- The VICE Exposé.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md b/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md index c2a93b6f40..e15a44fb36 100644 --- a/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md +++ b/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2020/02/02/bbs.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "aREversez" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -102,7 +102,7 @@ via: https://twobithistory.org/2020/02/02/bbs.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[aREversez](https://github.com/aREversez) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 4276533fc1bbc50aa2c5b03b5239c235683b6a72 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 13 Aug 2022 12:16:04 +0800 Subject: [PATCH 0730/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220809=20Top=2010=20Great=20Ubuntu=20Apps=20for=20?= =?UTF-8?q?Everyone=20[Part=204].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Great Ubuntu Apps for Everyone [Part 4].md | 271 ++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 sources/tech/20220809 Top 10 Great Ubuntu Apps for Everyone [Part 4].md diff --git a/sources/tech/20220809 Top 10 Great Ubuntu Apps for Everyone [Part 4].md b/sources/tech/20220809 Top 10 Great Ubuntu Apps for Everyone [Part 4].md new file mode 100644 index 0000000000..4fd7561d50 --- /dev/null +++ b/sources/tech/20220809 Top 10 Great Ubuntu Apps for Everyone [Part 4].md @@ -0,0 +1,271 @@ +[#]: subject: "Top 10 Great Ubuntu Apps for Everyone [Part 4]" +[#]: via: "https://www.debugpoint.com/great-ubuntu-apps-part-4/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Great Ubuntu Apps for Everyone [Part 4] +====== +This article lists the top 10 essential Ubuntu apps for various use cases in 2022. + +Continuing with the Ubuntu apps series, I will feature the next set of great Ubuntu apps across various functionalities in this article. These apps cater for text editors, sneaky image editors and more. + +This article is part 4 of the series. If you have missed reading the other parts, you can find them in the link below. + +* [Part 1][1] +* [Part 2][2] +* [Part 3][3] + +### Great Ubuntu Apps: Part 4 + +#### 1. Notepadqq + +If you are looking for a replacement for the famous Notepad++ text editor and development tool, try Notepadqq. It is a lightweight editor, primarily used for development and gives you options to analyze all types of texts. Obviously, you can use it for taking notes and other regular tasks. + +![Notepadqq][4] + +If you are a developer, you probably know how important it is to analyze huge texts or server logs. Some of the noteworthy features of Notepadqq are multiline selection, block selection, and multiline editing. In addition, for developers, it supports syntax highlighting for 100+ languages. + +It is one of the best text editors for day-to-day development and generic work. + +You can download Notepadqq using the following commands for various Linux distros. To learn more, visit the [official website][5]. + +| Installation Type | Command(s), link(s) | +| :- | :- | +| Ubuntu and derivatives | sudo apt install notepadqq | +| Arch Linux | sudo pacman -S notepadqq | +| Flatpak (All distributions) | flatpak install flathub com.notepadqq.Notepadqq | + +| Additional Info | Link(s) | +| :- | :- | +| Available as | deb, Flatpak, Snap | +| License | GPL 3.0 | +| Type | Free and open-source | +| Source Code | GitHub | + +#### 2. Cheese + +If you are looking for an app for a quick picture snap from your webcam, try Cheese. Cheese is a lightweight and easy-to-use application which is capable of capturing not only stills but also small videos. In addition, you can capture videos or photos by applying pre-set filters. + +Cheese is based on GTK and provides timer options and resolution selections for photos and videos. + +![Cheese with filters][6] + +You can install Cheese using the following commands in popular distros. + +For Ubuntu and related distributions: + +``` +sudo apt install cheese +``` + +Fedora Linux and corresponding distributions: + +``` +sudo dnf install cheese +``` + +To learn more, visit the official [website][7]. + +#### 3. Speedy + +Before you go ahead and learn about Speedy duplicate finder, you should know that it’s a closed source. And the free version comes with limited functionality. + +Speedy Duplicate Finder helps you to find duplicate files in your system with its unique GUI. Although its free version is limited with features, you can still use it to find duplicate files and free up some disk space. + +![Speedy Duplicate Finder][8] + +Before you initiate a search, you need to add a folder that automatically searches for duplicates and gives you a graphical representation with details. + +Installing this app is only possible using Snap, unfortunately. So you can install it in your Linux distro using the following Snap commands. + +``` +sudo apt updatesudo apt install snapdsudo snap install speedy-duplicate-finder +``` + +Learn more about this utility on the [official homepage][9]. + +**Note:** If you need a complete open-source utility to find duplicates, try rmlint, which [we featured here][10]. + +#### 4. Okular + +The next app on this list is Okular, one of the [best KDE apps][11] developed by the KDE team. It’s a document viewer for your Ubuntu desktop, which can read all popular document formats such as PDF, ePub, CHM help files, DjVu and ps files. + +In addition, it also supports minor annotation while you read the document. You can add comments or highlight certain lines for better collaboration. + +Okular is perfect for studying, where you can highlight and take notes using a touch-based laptop or device. + +![Okular is one of the best Ubuntu App][12] + +Installing Okular is easy in Ubuntu and related distributions using the following command(s). + +| Installation Type | Command(s), link(s) | +| :- | :- | +| Ubuntu and derivatives | sudo apt install okular | +| Arch Linux (after yay setup) | yay -S okular | +| Flatpak (All distributions) | flatpak install flathub org.kde.okular | +| Fedora | sudo dnf install okular | + +Visit the [official website][13] for more details about Okular. + +#### 5. KDE Connect + +A seamless integration between your mobile phones and Laptop/desktop is useful for specific use cases. KDE Connet allows you to get your mobile phone notifications, messages, incoming call and other information in your KDE desktop’s system tray. + +Your mobile phone and laptop/desktop require the same Wi-Fi connection for KDE Connect to work. However, you need that one-time set-up to use this service. Once set up, you can also use it for other additional services. + +A word of caution, do not use KDE Connect on GNOME-based desktops. Because it is supposed to work well on the KDE Plasma desktop, use [GS Connect][14]if you need a similar app for GNOME. + +![KDE Connect after successful pairing][15] + +You can install KDE Connect using the following command for Ubuntu and similar derivatives. + +``` +sudo apt install kdeconnect +``` + +You can learn more about KDE Connect & its features in our [featured article][16]. + +#### 6. Filezilla + +For any file transfer, you can always rely on the Filezilla client. Filezilla is an all-in-one FTP and SFTP client application which brings all the necessary features to the table. You can use it for personal or professional usage without concerns because it is time-tested and enterprise-grade software. + +Filezilla supports FTP, SFTP, transfer queue, and multiple tabs and is cross-platform. You can easily download and upload files to the FTP servers, which support traditional upload and the drag-and-drop feature. Also, using Filezilla, you can connect to remote FTP or SFTP servers and browse the directories. + +Filezilla is available in all major Linux distro’s default repo. Here’s how you can install it. + +| Installation Type | Command(s), link(s) | +| :- | :- | +| Ubuntu and derivatives | sudo apt install filezilla | +| Arch Linux | pacman -S okular | +| Flatpak (All distributions) | flatpak install flathub org.filezillaproject.Filezilla | +| Fedora | sudo dnf install filezilla | + +You can learn more about Filezilla on the [official homepage][17]. + +#### 7. 4k Video Downloader + +The easiest way to download high-definition videos using a graphical utility is using the 4k Video Downloader. + +The 4k video downloader can easily download videos and playlists from MP4, MKV, MP3, and other popular streaming sites. The user interface gives you additional options and settings to tweak your download. + +This is a close source application with a 30 download per day limit for free usage. + +![4k Video Downloader][18] + +This application comes with a deb installer package for Ubuntu Linux and related distributions, which you can install. + +[Download 4K Video Downloader][19] + +if you are an Arch Linux user, you can [setup yay AUR helper][20] and install it using the following command. + +``` +yay -S 4kvideodownloader +``` + +To learn more, visit the [official website][21]. + +#### 8. Wallpaper Selector + +Wallpaper Selector is a rust-based application which gives you easy access to hundreds of Anime and other nice wallpapers. With its simple user interface, you can easily browse and apply the wallpapers directly on the Ubuntu desktop. This application is currently under development, but you can still use it. + +However, it works on GNOME-based desktops at the moment. + +![Wallpaper Selector][22] + +Wallpaper Selector is available as Flathub, which you can install using the following command from the terminal after [setting up Flatpak][23]. + +``` +flatpak install flathub io.github.davidoc26.wallpaper_selector +``` + +#### 9. Plume Creator + +If you are a writer looking for an app that allows you to write and manage large books and novels, then try Plume Creator. + +Plume Creator is a free and open-source writing app which brings several features. For example, you can easily create a Chapter, Scene in a hierarchical manner. You can also manage your stories’ characters, places and items with their unique features. + +Moreover, usual formatting tools are also available, which you need to draft your novel and stories. + +![Plume Creator][24] + +You can install Plume creator using the following command in Ubuntu. + +``` +sudo apt install plume-creator +``` + +#### 10. Blackbox + +Are you bored with the distro-provided terminals such as gnome-terminal or Konsole? Then try out this nifty, modern terminal application Blackbox. It comes with a simple-to-use terminal window with thin borders and additional customization options. + +Some notable features of Blackbox include a tabbed window, theme selection, custom font, floating controls and many more. + +I believe Blackbox is one of the most fantastic console apps for Ubuntu and other Linux distros. + +![Blackbox][25] + +Installing Blackbox is easy with Flatpak using the following commands after you set up Flatpak. + +``` +flatpak install flathub com.raggesilver.BlackBox +``` + +### Closing Notes + +This concludes part 4 of a 5-part series of great Ubuntu app(s). In this article, we covered apps that are helpful to average users, writers, to power users. The apps are also spread across various use cases. + +Stay tuned for the final part in a few days. + +You can always go over all the parts using the following links. + +* [Part 1][26] +* [Part 2][27] +* [Part 3][28] + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/great-ubuntu-apps-part-4/ + +作者:[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/essential-ubuntu-apps-2022-part-1/ +[2]: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ +[3]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Notepadqq.jpg +[5]: https://notepadqq.com/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Cheese-with-filters.jpg +[7]: https://help.gnome.org/users/cheese/stable/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/Speedy-Duplicate-Finder.jpg +[9]: https://qiplex.com/software/speedy-duplicate-finder/ +[10]: https://www.debugpoint.com/useful-linux-command#rmlint +[11]: https://www.debugpoint.com/tag/kde-apps +[12]: https://www.debugpoint.com/wp-content/uploads/2022/08/Okular-is-one-of-the-best-Ubuntu-App.jpg +[13]: https://apps.kde.org/okular/ +[14]: https://extensions.gnome.org/extension/1319/gsconnect/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/01/KDE-Connect-after-successful-pairing.jpg +[16]: https://www.debugpoint.com/kde-connect-guide/ +[17]: https://filezilla-project.org/index.php +[18]: https://www.debugpoint.com/wp-content/uploads/2022/08/running-4k-video-downloader.jpg +[19]: https://www.4kdownload.com/products/videodownloader +[20]: https://www.debugpoint.com/install-yay-arch/ +[21]: https://www.4kdownload.com/products/videodownloader/ +[22]: https://www.debugpoint.com/wp-content/uploads/2022/08/Wallpaper-Selector.jpg +[23]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[24]: https://www.debugpoint.com/wp-content/uploads/2022/08/Plume-Creator.jpg +[25]: https://www.debugpoint.com/wp-content/uploads/2022/08/stu-Blackbox.png +[26]: https://www.debugpoint.com/essential-ubuntu-apps-2022-part-1/ +[27]: https://www.debugpoint.com/best-ubuntu-apps-2022-part2/ +[28]: https://www.debugpoint.com/necessary-ubuntu-apps-2022/ From 2d1746ee6880b8b6d348b9609761305f0842af8c Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 13 Aug 2022 12:20:11 +0800 Subject: [PATCH 0731/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220809=20Artificial=20Intelligence-=20Explaining?= =?UTF-8?q?=20the=20Basics.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ial Intelligence- Explaining the Basics.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/tech/20220809 Artificial Intelligence- Explaining the Basics.md diff --git a/sources/tech/20220809 Artificial Intelligence- Explaining the Basics.md b/sources/tech/20220809 Artificial Intelligence- Explaining the Basics.md new file mode 100644 index 0000000000..35c321560e --- /dev/null +++ b/sources/tech/20220809 Artificial Intelligence- Explaining the Basics.md @@ -0,0 +1,114 @@ +[#]: subject: "Artificial Intelligence: Explaining the Basics" +[#]: via: "https://www.opensourceforu.com/2022/08/artificial-intelligence-explaining-the-basics/" +[#]: author: "Deepu Benson https://www.opensourceforu.com/author/deepu-benson/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Artificial Intelligence: Explaining the Basics +====== +*If you are a student or professional interested in the latest trends in the computing world, you would have heard of terms like artificial intelligence, data science, machine learning, deep learning, etc. The first article in this series on artificial intelligence explains these terms, and sets the platform for a simple tutorial that will help beginners get started with AI.* + +Today it is absolutely necessary for any student or professional in the field of computer science to learn at least the basics of AI, data science, machine learning and deep learning. However, where does one begin to do so? + +To answer this question, I have gone through a number of textbooks and tutorials that teach AI. Some start at a theoretical level (a lot of maths), some teach you AI in a language-agnostic way (they don’t care whether you know C, C++, Java, Python, or some other programming language), and yet others assume you are an expert in linear algebra, probability, statistics, etc. In my opinion, all of them are useful to a great extent. But the important question remains — where should an absolute beginner interested in AI begin his or her journey? + +Frankly, there are many fine ways to begin your AI journey. However, I have a few concerns regarding many of them. Too much maths is a distraction while too little is like a driver who doesn’t know where his/her car’s engine is placed. Starting with advanced concepts is really effective if the potential AI engineer or data scientist is good in linear algebra, probability, statistics, etc. Starting with the very basics and ending at the middle of nowhere is fine only if the potential AI learner wants to end the journey at that particular point. Considering all these facts, I believe an AI tutorial for beginners should start at the very basics and end with a real AI project (small, yet one that will outperform any conventional program capable of performing the same task). + +This series on AI will start from the very basics and will reach up to an intermediate level. But in addition to discussing topics in AI, I also want to ‘cut the clutter’ (the name of a popular Indian news show) about the topics involved since there is a lot of confusion among people where terms like AI, machine learning, data science, etc, are concerned. AI based applications are often necessary due to the huge volume of data being produced every single day. A cursory search on the Internet will tell you that about 2.5 quintillion bytes of data are produced a day (quintillion is the enormous number 1018). However, do remember that most of this data is absolutely irrelevant to us, including tons of YouTube videos with no merit, emails sent without a second thought, reports on trivial matters on newspapers, and so on and so forth. However, this vast ocean of data also contains invaluable knowledge which often is priceless. Conventional software programs cannot carry out the Herculean task of processing such data. AI is one of the few technologies that can handle this information overload. + +We also need to distinguish between fact and fiction as far as the power of AI is concerned. I remember a talk by an expert in the field of AI a few years back. He talked about an AI based image recognition system that was able to classify the images of Siberian Huskies (a breed of dogs) and Siberian snow wolves with absolute or near absolute accuracy. Search the Internet and you will see how similar the two animals look. Had the system been so accurate, it would have been considered a triumph of AI. Sadly, this was not the case. The image recognition system was only classifying the background images of the two animals. Images of Siberian Huskies (since they are domestic animals) almost always had some rectangular or round objects in the background, whereas the images of Siberian snow wolves (being wild animals located in Siberia) had snow in the background. Such examples have led to the need for AI with some guarantee for accuracy in recent years. + +Indeed, AI has shown some of its true power in recent years. A simple example is the suggestions we get from a lot of websites like YouTube, Amazon, etc. Many times, I have been astonished by the suggestions I have received as it almost felt as if AI was able to read my mind. Whether such suggestions are good or bad for us in the long run is a hot topic of debate. Then there is the critical question, “Is AI good or bad?” I believe that a ‘Terminator’ movie sort of future, where machines attack humans deliberately is far, far away in the future. However, the word ‘deliberately’ in the previous sentence is very important. AI based systems at present could malfunction and accidentally hurt humans. However, many systems that claim the powers of AI are conventional software programs with a large number of ‘if’ and ‘for’ statements with no magic of AI in it. Thus, it is safe to say that we are yet to see the real power of AI in our daily lives. But whether that impact will be good (like curing cancer) or bad (deepfake videos of world leaders leading to riots and war) is yet to be seen. On a personal level, I believe AI is a boon and will drastically improve the quality of life of the coming generations. + +### What is AI? + +So, before we proceed any further, let us try to understand how AI, machine learning, deep learning, data science, etc, are related yet distinct from each other. Very often these terms are used (erroneously) as synonyms. First, let us consider a Venn diagram that represents the relationship between AI, machine learning, deep learning and data science (Figure 1). Please keep in mind that this is not the only such Venn diagram. Indeed, it is very plausible that you may find other Venn diagrams showing different relationships between the four different entities shown in Figure 1. However, in my opinion, Figure 1 is the most authentic diagram that captures the interrelationship between the different fields in question to the maximum extent. + +![Figure 1: The AI hierarchy and data science][1] + +First of all, let me make a disclaimer. Many of the definitions of the terms involved in this first article in this series on AI may not be mathematically the most accurate. I believe that formally defining every term with utmost precision at this level of our discussion is counterproductive and a wastage of time. However, in the subsequent articles in this series we will revisit these terms and formally define them. At this point in time of our discussion, consider AI as a set of programs that can mimic human intelligence to some extent. But what do I mean by human intelligence? + +Imagine your AI program is a one-year old baby. As usual, this baby will learn his/her mother tongue simply by listening to the people speaking around him/her. He/she will soon learn to identify shapes, colours, objects, etc, without any difficulty at all. Further, he/she will be able to respond to the emotions of people around him. For example, any 3-year-old baby will know how to sweet talk his/her parents into giving him/her all the chocolates and lollipops he/she wants. Similarly, an AI program too will be able to sense and adapt to its surroundings, just like the baby. However, such true AI applications will be achieved only in the far future (if at all). + +Figure 1 shows that machine learning is a strict subset of AI and as such one of the many techniques used to implement artificially intelligent systems. Machine learning involves techniques in which large data sets are used to train programs so that the necessary task can be carried out effectively. Further, the accuracy of performing a particular task increases with larger and larger training data sets. Notice that there are other techniques used to develop artificially intelligent systems like Boolean logic based systems, fuzzy logic based systems, genetic programming based systems, etc. However, nowadays machine learning is the most vibrant technology used to implement AI based systems. Figure 1 also shows that deep learning is a strict subset of machine learning, making it just one of the many machine learning techniques. However, here again I need to inform you that, currently, in practice, most of the serious machine learning techniques involve deep learning. At this point, I refrain even from trying to define deep learning. Just keep in mind that deep learning involves the use of large artificial neural networks. + +Now, what is data science (the red circle) doing in Figure 1? Well, data science is a discipline of computer science/mathematics which deals with the processing and interpretation of large sets of data. By large, how large do I mean? Some of the corporate giants like Facebook claimed that their servers could handle a few petabytes of data as far back in 2010. So, when we say huge data, we mean terabytes and petabytes and not gigabytes of data. A lot of data science applications involve the use of AI, machine learning and deep learning techniques. Hence, it is a bit difficult to ignore data science when we discuss AI. However, data science involves a lot of conventional programming and database management techniques like the use of Apache Hadoop for Big Data analysis. + +Henceforth, I will be using the abbreviations AI, ML, DL and DS as shown in Figure 1. The discussions in this series will mainly focus on AI and ML with frequent additional references to data science. + +### The beginning of our journey and a few difficult choices to make + +Now that we know the topics that will be covered in this series of articles, let us discuss the prerequisites for joining this tutorial. I plan to cover the content in such a way that any person who can operate a Linux machine (a person who can operate an MS Windows or a macOS machine is also fine, but some of the installation steps might require additional help) along with basic knowledge of mathematics and computer programming will definitely appreciate the power of AI, once he or she has meticulously gone through this series. + +It is possible to learn AI in a language-agnostic way without worrying much about programming languages. However, our discussion will involve a lot of programming and will be executed based on a single programming language. So, before we fix our (programming) language of communication, let us review the top programming languages used for AI, ML, DL and DS applications. One of the earliest languages used for developing AI based applications was Lisp, a functional programming language. Prolog, a logic programming language, was used in the 1970s for the same purpose. We will discuss more about Lisp and Prolog in the coming articles when we focus on the history of AI. + +Nowadays, programming languages like Java, C, C++, Scala, Haskell, MATLAB, R, Julia, etc, are also used for developing AI based applications. However, the huge popularity and widespread use of Python in developing AI based applications almost made the choice unanimous. Hence, from this point onwards we will proceed with our discussion on AI based on Python. However, let me caution you. From here onwards, we make a number of choices (or rather I am making the choices for you). The choices mostly depend on ease of use, popularity, and (on a few occasions) on my own comfort and familiarity with a software/technique as well as the best of my intentions to make this tutorial highly effective. However, I encourage you to explore any other potential programming language, software or tool we may not have chosen. Sometimes such an alternative choice may be the best for you in the long run. + +Now we need to make another immediate choice — whether to use Python 2 or Python 3? Considering the youth and the long career ahead of many of the potential readers of this series, I will stick with Python 3. First, let us install Python 3 in our systems. Execute the command ‘sudo apt install python3’ in the Linux terminal to install the latest version of Python 3 in your Ubuntu system (Python 3 is probably already installed in your system). The installation of Python 3 in other Linux distributions is also very easy. It can be easily installed in MS Windows and macOS operating systems too. The following command will show you the version of Python 3 installed in your system: + +``` +python3 --version +Python 3.8.10 +``` + +We need to install a lot of Python packages as we proceed through the series. Hence, we need to install a package management system. Some of the choices include pip, Conda, Mamba, etc. I chose pip as our package management system for this tutorial because it is relatively simple as well as the recommended installation tool for Python. Personally, I am of the opinion that both Conda and Mamba are more powerful than pip and you are welcome to try them out. However, I will stick with pip. The command ‘sudo apt install python3-pip’ will install pip in an Ubuntu system. Notice that pip, Conda and Mamba are cross-platform software and can be installed in Linux, Windows and macOS systems. The command ‘pip3 –version’ shows the version of pip installed in your system, as shown below: + +``` +pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8) +``` + +Now we need to install an integrated development environment (IDE) for Python. IDEs help programmers write, compile, debug and execute code very easily. There are many contenders for this position also. PyCharm, IDLE, Spyder, etc, are popular Python IDEs. However, since our primary aim is to develop AI and data science based applications, we consider two other heavy contenders — JupyterLab and Google Colab. Strictly speaking, they are not just IDEs; rather, they are very powerful Web based interactive development environments. Both work on Web browsers and offer immense power. JupyterLab is free and open source software supported by Project Jupyter, a non-profit organisation. Google Colab follows the freemium model, where the basic model is free and for any additional features a payment is required. I am of the opinion that Google Colab is more powerful and has more features than JupyterLab. However, the freemium model of Google Colab and my relative inexperience with it made me choose JupyterLab over Google Colab for this tutorial. But I strongly encourage you to get familiar with Google Colab at some point in your AI journey. + +JupyterLab can be installed locally using the command ‘pip3 install jupyterlab’. The command ‘jupyter-lab’ will execute JupyterLab in the default Web browser of your system. An older and similar Web based system called Jupyter Notebook is also provided by Project Jupyter. Jupyter Notebook can be locally installed with the command ‘pip3 install notebook’ and can be executed using the command ‘jupyter notebook’. However, Jupyter Notebook is less powerful than JupyterLab, and it is now official that JupyterLab will eventually replace Jupyter Notebook. Hence, in this tutorial we will be using JupyterLab when the time comes. However, in the beginning stages of this tutorial we will be using the Linux terminal to run Python programs, and hence the immediate need for pip, the package management system. + +Anaconda is a very popular distribution of Python and R programming languages for machine learning and data science applications. As potential AI engineers and data scientists, it is a good idea to get familiar with Anaconda also. + +Now, we need to fix the most important aspect of this tutorial — the style in which we will cover the topics. There are a large number of Python libraries to support the development of AI based applications. Some of them are NumPy, SciPy, Pandas, Matplotlib, Seaborn, TensorFlow, Keras, Scikit-learn, PyTorch, etc. Many of the textbooks and tutorials on AI, machine learning and data science are based on complete coverage of one or more of these packages. Though such coverage of the features of a particular package is effective, I have planned a more maths-oriented tutorial. We will first discuss a maths concept required for developing AI applications, and then follow the discussion by introducing the necessary Python basics and the details of the Python libraries required. Thus, unlike most other tutorials, we will revisit Python libraries again and again to explore the features necessary for the implementation of certain maths concepts. However, at times, I will also request you to learn some basic concepts of Python and mathematics on your own. That settles the final question about the nature of this tutorial. + +After all this buildup, it would be a sin if we stop this article at this point without discussing even a single line of Python code or a mathematical object necessary for AI. Hence, we move on to learn one of the most important topics in mathematics required for conquering AI and machine learning. + +#### Vectors and matrices + +A matrix is a rectangular array of numbers, symbols or mathematical expressions arranged in rows and columns. Figure 2 shows a 2 x 3 (pronounced ‘2 by 3’) matrix having 2 rows and 3 columns. If you are familiar with programming, this matrix can be represented as a two-dimensional array in many popular programming languages. A matrix with only one row is called a row vector and a matrix with only one column is called a column vector. The vector [11, 22, 33] is an example of a row vector. + +![Figure 2: A 2 x 3 matrix][2] + +But why are matrices and vectors so important in a discussion on AI and machine learning? Well, they are the core of linear algebra, a branch of mathematics. Linear algebraic techniques are heavily used in AI and machine learning. Mathematicians have studied the properties and applications of matrices and vectors for centuries. Mathematicians like Gauss, Euler, Leibniz, Cayley, Cramer, and Hamilton have a theorem named after them in the fields of linear algebra and matrix theory. Thus, over the years, a lot of techniques have been developed in linear algebra to analyse the properties of matrices and vectors. + +Complex data can often easily be represented in the form of a vector or a matrix. Let us see a simple example. Consider a person working in the field of medical transcription. From the medical records of a person named P, details of the age, height in centimetres, weight in kilograms, systolic blood pressure, diastolic blood pressure and fasting blood sugar level in milligrams/decilitres can be obtained. Further, such information can easily be represented as the row vector. As an example, P = [60, 160, 90, 130, 95, 160]. But here comes the first challenge in AI and machine learning. What if there are a billion health records. The task will be incomplete even if tens of thousands of professionals work to manually extract data from these billion health records. Hence, AI and machine learning applications try to extract data from these records using programs. + +The second challenge in AI and machine learning is data interpretation. This is a vast field and there are a number of techniques worth exploring. We will go through the most relevant of them in the coming articles in this series. AI and machine learning based applications also face hardware challenges, in addition to mathematical/computational challenges. With the huge amount of data being processed, data storage, processor speed, power consumption, etc, also become a major challenge for AI based applications. Challenges apart, I believe it is time for us to write the first line of AI code. + +We will write a simple Python script to add two vectors. For that, we use a Python library called NumPy. This is a Python library that supports multi-dimensional matrices (arrays) and a lot of mathematical functions to operate on them. The command ‘pip3 install numpy’ will install the package NumPy for Python 3. Notice that NumPy would have been preinstalled if you were using JupyterLab, Google Colab or Anaconda. However, we will operate from the Linux terminal for the first few articles in this series on AI for ease of use. Execute the command ‘python3’ on the Linux terminal to work from the Python console. This console is software that allows line-by-line execution of Python code. Figure 3 shows the line-by-line execution of the Python code to add two vectors and show the output on the terminal. + +![Figure 3: Python code to find the sum of two row vectors][3] + +First, let us try to understand the code. An important note before we proceed any further. Since this tutorial assumes very little programming experience, I will label lines of code as either (basic) or (AI). Lines labelled (basic) are part of classical Python code, whereas lines labelled (AI) are part of the Python code for developing AI applications. I know such a classification is not necessary or very meaningful. However, I want to distinguish between basic Python and advanced Python so that programmers with both basic and intermediate skills in programming will find this tutorial useful. + +The line of code import numpy as np (basic) imports the library NumPy and names it as np. The import statement in Python is similar to the #include statement of C/C++ to use header files and the import statement of Java to use packages. The lines of code a = np.array([11, 22, 33]) and b = np.array([44, 55, 66]) (AI) create two one-dimensional arrays named ‘a’ and ‘b’. Let me do one more simplification for the sake of understanding. For the time being, assume a vector is equivalent to a one-dimensional array. The line of code c = np.add(a, b) (AI) adds the two vectors named ‘a’ and ‘b’ and stores the result in a vector named ‘c’. Of course, naming variables as ‘a’, ‘b’, ‘c’, etc, is a bad programming practice, but mathematicians tend to differ and name vectors as ‘u’, ‘v’, ‘w’, etc. If you are an absolute beginner in Python programming, please learn how variables in Python work. + +Finally, the line of code print(c) (basic) prints the value of the object, the vector [55 77 99], on the terminal. This is a line of basic Python code. The vector c = [55=11+44 77=22+55 99=33+66] gives you a hint about vector and matrix addition. However, if you want to formally learn how vectors and matrices are added, and if you don’t have any good mathematical textbooks on the topic available at your disposal, I suggest you go through the Wikipedia article on matrix addition. A quick search on the Internet will show you that a classic C, C++ or Java program to add two vectors takes a lot more of code. This itself shows how suitable Python is for handling vectors and matrices, the lifeline of linear algebra. The strength of Python will be further appreciated as we perform more and more complex vector operations. + +Before we conclude this article, I want to make two disclaimers. First, the programming example just discussed above deals with the addition of two row vectors (1 x 3 matrices to be precise). But a real machine learning application might be dealing with a 1000000 X 1000000 matrix. However, with practice and patience we will be able to handle these. The second disclaimer is that many of the definitions given in this article involve gross simplifications and some hand-waving. But, as mentioned earlier, I will give formal definitions for any term I have defined loosely before the conclusion of this series. + +Now it is time for us to wind up this article. I request all of you to install the necessary software mentioned in this article and run each and every line of code discussed here. We will begin the next article in this series by discussing the history, scope and future of AI, and then proceed deeper into matrix theory, the backbone of linear algebra. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/artificial-intelligence-explaining-the-basics/ + +作者:[Deepu Benson][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/deepu-benson/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1-The-AI-hierarchy-and-data-science.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-A-2-X-3-matrix.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-3-Python-code-to-find-the-sum-of-two-row-vectors.jpg From 17c3b66070ed7a5b531eac19482e1194eabbd417 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 13 Aug 2022 12:26:26 +0800 Subject: [PATCH 0732/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220809=20A=20guide=20to=20JVM=20interpretation=20a?= =?UTF-8?q?nd=20compilation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e to JVM interpretation and compilation.md | 506 ++++++++++++++++++ 1 file changed, 506 insertions(+) create mode 100644 sources/tech/20220809 A guide to JVM interpretation and compilation.md diff --git a/sources/tech/20220809 A guide to JVM interpretation and compilation.md b/sources/tech/20220809 A guide to JVM interpretation and compilation.md new file mode 100644 index 0000000000..c74131c3bd --- /dev/null +++ b/sources/tech/20220809 A guide to JVM interpretation and compilation.md @@ -0,0 +1,506 @@ +[#]: subject: "A guide to JVM interpretation and compilation" +[#]: via: "https://opensource.com/article/22/8/interpret-compile-java" +[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A guide to JVM interpretation and compilation +====== +Use interpretation, just-in-time compilation, and ahead-of-time compilation efficiently by understanding the differences among them. + +Java is a platform-independent language. Programs are converted to *bytecode* after compilation. This bytecode gets converted to *machine code* at runtime. An interpreter emulates the execution of bytecode instructions for the abstract machine on a specific physical machine. Just-in-time (JIT) compilation happens at some point during execution, and ahead-of-time (AOT) compilation happens during build time. + +This article explains when an interpreter comes into play and when JIT and AOT will occur. I also discuss the trade-offs between JIT and AOT. + +### Source code, bytecode, machine code + +Applications are generally written using a programming language like C, C++, or Java. The set of instructions written using high-level programming languages is called source code. Source code is human readable. To execute it on the target machine, source code needs to be converted to machine code, which is machine readable. Source code is typically converted into machine code by a compiler. + +In Java, however, the source code is first converted into an intermediate form called *bytecode*. This bytecode is platform independent, which is why Java is well known as a platform-independent programming language. The primary Java compiler `javac` converts the Java source code into bytecode. Then, the bytecode is interpreted by the interpreter. + +Here is a small `Hello.java` program: + +``` +//Hello.java +public class Hello { +    public static void main(String[] args) { +         System.out.println("Inside Hello World!"); +    } +} +``` + +Compile it using `javac` to generate a `Hello.class` file containing the bytecode. + +``` +$ javac Hello.java +$ ls +Hello.class  Hello.java +``` + +Now, use `javap` to disassemble the content of the `Hello.class` file. The output of `javap` depends on the options used. If you don't choose any options, it prints basic information, including which source file this class file is compiled from, the package name, public and protected fields, and methods of the class. + +``` +$ javap Hello.class +Compiled from "Hello.java" +public class Hello { +  public Hello(); +  public static void main(java.lang.String[]); +} +``` + +To see the bytecode content in the `.class` file, use the `-c` option: + +``` +$ javap -c Hello.class +Compiled from "Hello.java" +public class Hello { +  public Hello(); +        Code: +           0: aload_0 +           1: invokespecial #1                      // Method java/lang/Object."":()V +           4: return + +  public static void main(java.lang.String[]); +        Code: +           0: getstatic         #2                      // Field java/lang/System.out:Ljava/io/PrintStream; +           3: ldc               #3                      // String Inside Hello World! +           5: invokevirtual #4                      // Method     +java/io/PrintStream.println:(Ljava/lang/String;)V +           8: return +} +``` + +To get more detailed information, use the `-v` option: + +``` +$ javap -v Hello.class +``` + +### Interpreter, JIT, AOT + +The interpreter is responsible for emulating the execution of bytecode instructions for the abstract machine on a specific physical machine. When compiling source code using `javac` and executing using the `java` command, the interpreter operates during runtime and serves its purpose. + +``` +$ javac Hello.java +$ java Hello +Inside Hello World! +``` + +The JIT compiler also operates at runtime. When the interpreter interprets a Java program, another component, called a runtime profiler, is silently monitoring the program's execution to observe which portion of the code is getting interpreted and how many times. These statistics help detect the *hotspots* of the program, that is, those portions of code frequently being interpreted. Once they're interpreted above a set threshold, they are eligible to be converted into machine code directly by the JIT compiler. The JIT compiler is also known as a profile-guided compiler. Conversion of bytecode to native code happens on the fly, hence the name just-in-time. JIT reduces overhead of the interpreter emulating the same set of instructions to machine code. + +The AOT compiler compiles code during build time. Generating frequently interpreted and JIT-compiled code at build time improves the warm-up time of the Java Virtual Machine (JVM). This compiler was introduced in Java 9 as an experimental feature. The `jaotc` tool uses the Graal compiler, which is itself written in Java, for AOT compilation. + +Here's a sample use case for a Hello program: + +``` +//Hello.java +public class Hello { +    public static void main(String[] args) { +        System.out.println("Inside Hello World!"); +    } +} + + +$ javac Hello.java +$ jaotc --output libHello.so Hello.class +$ java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libHello.so Hello +Inside Hello World! +``` + +### When do interpreting and compiling come into play: an example + +This example illustrates when Java uses an interpreter and when JIT and AOT pitch in. Consider a simple Java program, `Demo.java` : + +``` +//Demo.java +public class Demo { + public int square(int i) throws Exception { + return(i*i); + } + + + public static void main(String[] args) throws Exception { + for (int i = 1; i <= 10; i++) { + System.out.println("call " + Integer.valueOf(i)); + long a = System.nanoTime(); + Int r = new Demo().square(i); + System.out.println("Square(i) = " + r); + long b = System.nanoTime(); + System.out.println("elapsed= " + (b-a)); + System.out.println("--------------------------------"); + } + } +} +``` + +This simple program has a `main` method that creates a `Demo` object instance, and calls the method `square`, which displays the square root of the `for` loop iteration value. Now, compile and run the code: + +``` +$ javac Demo.java +$ java Demo +1 iteration +Square(i) = 1 +Time taken= 8432439 +-------------------------------- +2 iteration +Square(i) = 4 +Time taken= 54631 +-------------------------------- +. +. +. +-------------------------------- +10 iteration +Square(i) = 100 +Time taken= 66498 +-------------------------------- +``` + +The question now is whether the output is a result of the interpreter, JIT, or AOT. In this case, it's wholly interpreted. How did I conclude that? Well, to get JIT to contribute to the compilation, the hotspots of the code must be interpreted above a defined threshold. Then and only then are those pieces of code queued for JIT compilation. To find the threshold for JDK 11: + +``` +$ java -XX:+PrintFlagsFinal -version | grep CompileThreshold + intx CompileThreshold     = 10000                                      {pd product} {default} +[...] +openjdk version "11.0.13" 2021-10-19 +OpenJDK Runtime Environment 18.9 (build 11.0.13+8) +OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8, mixed mode, sharing) +``` + +The above output demonstrates that a particular piece of code should be interpreted 10,000 times to be eligible for JIT compilation. Can this threshold be manually tuned, and is there some JVM flag that indicates whether a method is JIT compiled? Yes, there are multiple options to serve this purpose. + +One option for learning whether a method is JIT compiled is `-XX:+PrintCompilation`. Along with this option, the flag `-Xbatch` provides the output in a more readable way. If both interpretation and JIT are happening in parallel, the `-Xbatch` flag helps distinguish the output of both. Use these flags as follows: + +``` +$ java -Xbatch  -XX:+PrintCompilation  Demo +         34        1        b  3           java.util.concurrent.ConcurrentHashMap::tabAt (22 bytes) +         35        2         n 0           jdk.internal.misc.Unsafe::getObjectVolatile (native)    +         35        3        b  3           java.lang.Object:: (1 bytes) +[...] + 210  269         n 0           java.lang.reflect.Array::newArray (native)   (static) +        211  270        b  3           java.lang.String::substring (58 bytes) +[...] +-------------------------------- +10 iteration +Square(i) = 100 +Time taken= 50150 +-------------------------------- +``` + +The output of the above command is too lengthy, so I've truncated the middle portion. Note that along with the Demo program code, the JDKs internal class functions are also getting compiled. This is why the output is so lengthy. Because my focus is `Demo.java` code, I'll use an option that can minimize the output by excluding the internal package functions. The command -`XX:CompileCommandFile` disables JIT for internal classes: + +``` +$ java -Xbatch -XX:+PrintCompilation -XX:CompileCommandFile=hotspot_compiler Demo +``` + +The file `hotspot_compiler` referenced by `-XX:CompileCommandFile` contains this code to exclude specific packages: + +``` +$ cat hotspot_compiler +quiet +exclude java/* * +exclude jdk/* * +exclude sun/* * +``` + +In the first line, `quiet` instructs the JVM not to write anything about excluded classes. To tune the JIT threshold, use `-XX:CompileThreshold` with the value set to 5, meaning that after interpreting five times, it's time for JIT: + +``` +$ java -Xbatch -XX:+PrintCompilation -XX:CompileCommandFile=hotspot_compiler \ +-XX:CompileThreshold=5 Demo +        47      1       n 0     java.lang.invoke.MethodHandle::linkToStatic(LLLLLL)L (native)   +           (static) +        47      2       n 0     java.lang.invoke.MethodHandle::invokeBasic(LLLLL)L (native)   +        47      3       n 0     java.lang.invoke.MethodHandle::linkToSpecial(LLLLLLL)L (native)   +           (static) +        48      4       n 0     java.lang.invoke.MethodHandle::linkToStatic(L)I (native)   (static) +        48      5       n 0     java.lang.invoke.MethodHandle::invokeBasic()I (native)   +        48      6       n 0     java.lang.invoke.MethodHandle::linkToSpecial(LL)I (native)   +           (static) +[...] +        1 iteration +        69   40         n 0     java.lang.invoke.MethodHandle::linkToStatic(ILIIL)I (native)   +           (static) +[...] +Square(i) = 1 +        78   48         n 0     java.lang.invoke.MethodHandle::linkToStatic(ILIJL)I (native)   +(static) +        79   49         n 0     java.lang.invoke.MethodHandle::invokeBasic(ILIJ)I (native)   +[...] +        86   54         n 0     java.lang.invoke.MethodHandle::invokeBasic(J)L (native)   +        87   55         n 0     java.lang.invoke.MethodHandle::linkToSpecial(LJL)L (native)   +(static) +Time taken= 8962738 +-------------------------------- +2 iteration +Square(i) = 4 +Time taken= 26759 +-------------------------------- + +10 iteration +Square(i) = 100 +Time taken= 26492 +-------------------------------- +``` + +The output is still not different from interpreted output! This is because, as per Oracle's documentation, the `-XX:CompileThreshold` flag is effective only when `TieredCompilation` is disabled: + +``` +$ java -Xbatch -XX:+PrintCompilation -XX:CompileCommandFile=hotspot_compiler \ +-XX:-TieredCompilation -XX:CompileThreshold=5 Demo +124     1       n       java.lang.invoke.MethodHandle::linkToStatic(LLLLLL)L (native)   (static) +127     2       n       java.lang.invoke.MethodHandle::invokeBasic(LLLLL)L (native)   +[...] +1 iteration +        187   40        n       java.lang.invoke.MethodHandle::linkToStatic(ILIIL)I (native)   (static) +[...] +(native)   (static) +        212   54        n       java.lang.invoke.MethodHandle::invokeBasic(J)L (native)   +        212   55        n       java.lang.invoke.MethodHandle::linkToSpecial(LJL)L (native)   (static) +Time taken= 12337415 +[...] +-------------------------------- +4 iteration +Square(i) = 16 +Time taken= 37183 +-------------------------------- +5 iteration +        214   56        b       Demo:: (5 bytes) +        215   57        b       Demo::square (16 bytes) +Square(i) = 25 +Time taken= 983002 +-------------------------------- +6 iteration +Square(i) = 36 +Time taken= 81589 +[...] +10 iteration +Square(i) = 100 +Time taken= 52393 +``` + +This section of code is now JIT compiled after the fifth interpretation: + +``` +-------------------------------- +5 iteration +        214   56        b       Demo:: (5 bytes) +        215   57        b       Demo::square (16 bytes) +Square(i) = 25 +Time taken= 983002 +-------------------------------- +``` + +Along with the `square()` method, the constructor is also getting JIT compiled because there is a Demo instance inside the `for` loop before calling `square()`. Hence, it will also reach the threshold and be JIT compiled. This example illustrates when JIT comes into play after interpretation. + +To see the compiled version of the code, use the `-XX:+PrintAssembly flag`, which works only if there is a disassembler in the library path. For OpenJDK, use the `hsdis` disassembler. Download a suitable disassembler library— in this case, `hsdis-amd64.so` — and place it under `Java_HOME/lib/server`. Make sure to use `-XX:+UnlockDiagnosticVMOptions` before `-XX:+PrintAssembly`. Otherwise, JVM will give you a warning. + +The entire command is as follows: + +``` +$ java -Xbatch -XX:+PrintCompilation -XX:CompileCommandFile=hotspot_compiler \ -XX:-TieredCompilation -XX:CompileThreshold=5 -XX:+UnlockDiagnosticVMOptions \ -XX:+PrintAssembly Demo +[...] +5 iteration +        178   56        b       Demo:: (5 bytes) +Compiled method (c2)    178   56                Demo:: (5 bytes) + total in heap  [0x00007fd4d08dad10,0x00007fd4d08dafe0] = 720 + relocation     [0x00007fd4d08dae88,0x00007fd4d08daea0] = 24 +[...] + handler table  [0x00007fd4d08dafc8,0x00007fd4d08dafe0] = 24 +[...] + dependencies   [0x00007fd4d08db3c0,0x00007fd4d08db3c8] = 8 + handler table  [0x00007fd4d08db3c8,0x00007fd4d08db3f8] = 48 +---------------------------------------------------------------------- +Demo.square(I)I  [0x00007fd4d08db1c0, 0x00007fd4d08db2b8]  248 bytes +[Entry Point] +[Constants] +  # {method} {0x00007fd4b841f4b0} 'square' '(I)I' in 'Demo' +  # this:       rsi:rsi   = 'Demo' +  # parm0:      rdx     = int +  #             [sp+0x20]  (sp of caller) +[...] +[Stub Code] +  0x00007fd4d08db280: movabs $0x0,%rbx          ;   {no_reloc} +  0x00007fd4d08db28a: jmpq   0x00007fd4d08db28a  ;   {runtime_call} +  0x00007fd4d08db28f: movabs $0x0,%rbx          ;   {static_stub} +  0x00007fd4d08db299: jmpq   0x00007fd4d08db299  ;   {runtime_call} +[Exception Handler] +  0x00007fd4d08db29e: jmpq   0x00007fd4d08bb880  ;   {runtime_call ExceptionBlob} +[Deopt Handler Code] +  0x00007fd4d08db2a3: callq  0x00007fd4d08db2a8 +  0x00007fd4d08db2a8: subq   $0x5,(%rsp) +  0x00007fd4d08db2ad: jmpq   0x00007fd4d08a01a0  ;   {runtime_call DeoptimizationBlob} +  0x00007fd4d08db2b2: hlt     +  0x00007fd4d08db2b3: hlt     +  0x00007fd4d08db2b4: hlt     +  0x00007fd4d08db2b5: hlt     +  0x00007fd4d08db2b6: hlt     +  0x00007fd4d08db2b7: hlt     +ImmutableOopMap{rbp=NarrowOop }pc offsets: 96 +ImmutableOopMap{}pc offsets: 112 +ImmutableOopMap{rbp=Oop }pc offsets: 148 Square(i) = 25 +Time taken= 2567698 +-------------------------------- +6 iteration +Square(i) = 36 +Time taken= 76752 +[...] +-------------------------------- +10 iteration +Square(i) = 100 +Time taken= 52888 +``` + +The output is lengthy, so I've included only the output related to `Demo.java`. + +Now it's time for AOT compilation. This option was introduced in JDK9. AOT is a static compiler to generate the `.so` library. With AOT, the interested classes can be compiled to create an `.so` library that can be directly executed instead of interpreting or JIT compiling. If JVM doesn't find any AOT-compiled code, the usual interpretation and JIT compilation takes place. + +The command used for AOT compilation is as follows: + +``` +$ jaotc --output=libDemo.so Demo.class +``` + +To see the symbols in the shared library, use the following: + +``` +$ nm libDemo.so +``` + +To use the generated `.so` library, use `-XX:AOTLibrary` along with `-XX:+UnlockExperimentalVMOptions` as follows: + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libDemo.so Demo +1 iteration +Square(i) = 1 +Time taken= 7831139 +-------------------------------- +2 iteration +Square(i) = 4 +Time taken= 36619 +[...] +10 iteration +Square(i) = 100 +Time taken= 42085 +``` + +This output looks as if it is an interpreted version itself. To make sure that the AOT compiled code is utilized, use `-XX:+PrintAOT` : + +``` +$ java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libDemo.so -XX:+PrintAOT Demo +         28        1         loaded        ./libDemo.so  aot library +         80        1         aot[ 1]   Demo.main([Ljava/lang/String;)V +         80        2         aot[ 1]   Demo.square(I)I +         80        3         aot[ 1]   Demo.()V +1 iteration +Square(i) = 1 +Time taken= 7252921 +-------------------------------- +2 iteration +Square(i) = 4 +Time taken= 57443 +[...] +10 iteration +Square(i) = 100 +Time taken= 53586 +``` + +Just to make sure that JIT compilation hasn't happened, use the following: + +``` +$ java -XX:+UnlockExperimentalVMOptions -Xbatch -XX:+PrintCompilation \ -XX:CompileCommandFile=hotspot_compiler -XX:-TieredCompilation \ -XX:CompileThreshold=3 -XX:AOTLibrary=./libDemo.so -XX:+PrintAOT Demo +         19        1         loaded        ./libDemo.so  aot library +         77        1         aot[ 1]   Demo.square(I)I +         77        2         aot[ 1]   Demo.main([Ljava/lang/String;)V +         77        3         aot[ 1]   Demo.()V +         77        2         aot[ 1]   Demo.main([Ljava/lang/String;)V   made not entrant +[...] +4 iteration +Square(i) = 16 +Time taken= 43366 +[...] +10 iteration +Square(i) = 100 +Time taken= 59554 +``` + +If any small change is made to the source code subjected to AOT, it's important to ensure that the corresponding `.so` is created again. Otherwise, the stale AOT-compiled `.so` won't have any effect. For example, make a small change to the square function such that now it's calculating cube: + +``` +//Demo.java +public class Demo { + +  public int square(int i) throws Exception { +        return(i*i*i); +  } + +  public static void main(String[] args) throws Exception { +        for (int i = 1; i <= 10; i++) { +          System.out.println("" + Integer.valueOf(i)+" iteration"); +          long start = System.nanoTime(); +          int r= new Demo().square(i); +          System.out.println("Square(i) = " + r); +          long end = System.nanoTime(); +          System.out.println("Time taken= " + (end-start)); +          System.out.println("--------------------------------"); +        } +  } +} +``` + +Now, compile `Demo.java` again: + +``` +$ java Demo.java +``` + +But, don't create `libDemo.so` using `jaotc`. Instead, use this command: + +``` +$ java -XX:+UnlockExperimentalVMOptions -Xbatch -XX:+PrintCompilation -XX:CompileCommandFile=hotspot_compiler -XX:-TieredCompilation -XX:CompileThreshold=3 -XX:AOTLibrary=./libDemo.so -XX:+PrintAOT Demo +         20        1         loaded        ./libDemo.so  aot library +         74        1         n           java.lang.invoke.MethodHandle::linkToStatic(LLLLLL)L (native)   (static) +2 iteration +sqrt(i) = 8 +Time taken= 43838 +-------------------------------- +3 iteration +        137   56        b            Demo:: (5 bytes) +        138   57        b            Demo::square (6 bytes) +sqrt(i) = 27 +Time taken= 534649 +-------------------------------- +4 iteration +sqrt(i) = 64 +Time taken= 51916 +[...] +10 iteration +sqrt(i) = 1000 +Time taken= 47132 +``` + +Though the old version of `libDemo.so` is loaded, JVM detected it as a stale one. Every time a `.class` file is created, a fingerprint goes into the class file, and a class fingerprint is kept in the AOT library. Because the class fingerprint is different from the one in the AOT library, AOT-compiled native code is not used. Instead, the method is now JIT compiled, because the `-XX:CompileThreshold` is set to 3. + +### AOT or JIT? + +If you are aiming to reduce the warm-up time of the JVM, use AOT, which reduces the burden during runtime. The catch is that AOT will not have enough data to decide which piece of code needs to be precompiled to native code.  By contrast, JIT pitches in during runtime and impacts the warm-up time. However, it will have enough profiling data to compile and decompile the code more efficiently. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/interpret-compile-java + +作者:[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/studying-books-java-couch-education.png +[2]: https://www.wocintechchat.com/ +[3]: https://creativecommons.org/licenses/by/2.0/ From 21c6a52e6a125aa2a871f5de5f1455066e708cfc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 13 Aug 2022 12:39:57 +0800 Subject: [PATCH 0733/3123] ALL @wxy https://linux.cn/article-14924-1.html --- ...elopment Restarts with A Revised Vision.md | 79 +++++++++++++++++++ ...elopment Restarts with A Revised Vision.md | 72 ----------------- 2 files changed, 79 insertions(+), 72 deletions(-) create mode 100644 published/20220810 Cutefish OS Development Restarts with A Revised Vision.md delete mode 100644 sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md diff --git a/published/20220810 Cutefish OS Development Restarts with A Revised Vision.md b/published/20220810 Cutefish OS Development Restarts with A Revised Vision.md new file mode 100644 index 0000000000..6705682fad --- /dev/null +++ b/published/20220810 Cutefish OS Development Restarts with A Revised Vision.md @@ -0,0 +1,79 @@ +[#]: subject: "Cutefish OS Development Restarts with A Revised Vision" +[#]: via: "https://www.debugpoint.com/cutefish-development-restarts/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14924-1.html" + +Cutefish OS 开发重启 +====== + +![](https://img.linux.net.cn/data/attachment/album/202208/13/123818nek1wzveuzx1iuv6.jpg) + +经过了一个月,可能是在讨论、会谈和对话之后,Cutefish OS 正式重启了开发。 + +不久前,我们报道了 [Cutefish OS 停止开发][1],而且 GitHub 上没有任何活动。好吧,看起来开发者在 GitHub 上复活了这个项目,并对该操作系统的未来有了一些设想。 + +7 月 31 日,Cutefish OS 的 GitHub 主仓库进行了更新,内容如下: + +> 你喜欢的 CutefishOS 现在回来了!新网站正在建设中(即将推出) + +不仅如此,该团队还简要介绍了这个项目的路线图。 + +![Cutefish OS - 应用程序菜单][2] + +### Cutefish OS 的开发:即将到来的里程碑 + +首先,主要目标是官方网站的准备工作。 + +其次,根据 GitHub 上的说明,下一个版本可能会基于 [Ubuntu 22.04 LTS][3]。Cutefish OS 有不同的桌面定制版,如 Ubuntu 和 Debian。另外,你可以在 [Arch Linux 上只安装Cutefish 桌面][4]。 + +第三,该团队旨在评估当前的问题并开始接受拉取请求。完成这项工作后,将更容易确定需要修复的项目的优先次序。最后,为未来版本的新功能进行规划。 + +不仅如此,还有一种可能性,即用 openEuler Linux 开发新的 Cutefish 桌面定制版。[openEuler Linux][5] 是华为为商业和企业用途而创建的一个发行版。 + +![当前 Cutefish 操作系统计划][6] + +(LCTT 译注:但是从 GitHub 仓库来看,最近并没有任何实质动作。) + +### 一个新的名字? + +当我在寻找更多的信息时,我发现该团队注册了一个新的域名,有一个新的名字,即 [openfish.org][7](LCTT 译注:因无备案,展示无法访问)。桌面环境或整个操作系统将被重新命名为 openfish。在这一点上,我有一个猜测: + +旧的域名 cutefishos.com 可能被别人接管了,因此这样决定。 + +但是,在我看来,“openfish” 是一个比 “cutefish” 更好的品牌名称。 + +(LCTT 译注:究竟是原班人马中的部分人决定重启,还是整个团队复活,目前不得而知,从改名上看,似乎新的团队并没有 cutefish 相关的品牌控制权。) + +### 下一步是什么 + +最新的 0.8 版有几个与键盘、设置窗口、Flatpak 应用程序等有关的问题。最好的办法是在最后的基线上首先解决这些问题。然后可能是带有额外功能的 1.0 版本。 + +希望在未来几周内,我们能看到更多关于开发的更新。如果你想发表意见,询问有关期望或功能要求,[在 GitHub 上创建一个帖子][8]。 + +欢迎回来,Cutefish OS。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cutefish-development-restarts/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/cutefish-os-development-halts/ +[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-Application-Menu-1024x582.jpg +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/cutefish-arch-linux-install/ +[5]: https://www.openeuler.org/en/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Current-Cutefish-OS-Plan.jpg +[7]: http://openfish.org/ +[8]: https://github.com/cutefishos/cutefishos/issues diff --git a/sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md b/sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md deleted file mode 100644 index 68fbc2bd1b..0000000000 --- a/sources/news/20220810 Cutefish OS Development Restarts with A Revised Vision.md +++ /dev/null @@ -1,72 +0,0 @@ -[#]: subject: "Cutefish OS Development Restarts with A Revised Vision" -[#]: via: "https://www.debugpoint.com/cutefish-development-restarts/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Cutefish OS Development Restarts with A Revised Vision -====== -After a month of possible discussions, talks and threads, Cutefish OS officially restarts its development. - -A while back, I wrote that [Cutefish OS stopped development][1], and there is no activity on GitHub. Well, it looks like the developers resurrected the project on GitHub with some vision of the future of the OS. - -On July 31st, the main GitHub repo of Cutefish OS is updated with the following: - -> Your Favorite CutefishOS are back now!New website in the works (coming soon) - -Not only that, but the team also gave a brief about the roadmap of this project. - -![Cutefish OS - Application Menu][2] - -### Cutefish OS Development – Upcoming Milestones - -Firstly, the primary object is the official website preparation. - -Secondly, the next release would probably be based on [Ubuntu 22.04 LTS][3], as per the note on GitHub. Cutefish OS was available with different spins, such as Ubuntu and Debian. Also, you could install only the [Cutefish Desktop in Arch Linux][4]. - -Thirdly, the team aims to assess current issues and start accepting pull requests. After completing this exercise, it would be easier to prioritize the items that needed fixing. And finally, planning for the new features for future releases. - -Not only that but there is also a possibility of a new Cutefish flavour with openEuler Linux. The [openEuler Linux][5] is a distribution created by Huawei for commercial and enterprise uses. - -![Current Cutefish OS Plan][6] - -### A New Name? - -When I was looking for additional information, I found that the team registered a new domain with a new name, i.e. [openfish.org][7]. The desktop environment or entire OS would be renamed to openfish. It’s just a guess from my side at this point. - -The old domain cutefishos.com was probably taken over by someone else, hence the decision. - -But, in my opinion, “openfish” is a better branding name than “cutefish”. - -### What’s Next - -The last version of version 0.8 had several issues related to the Keyboard, settings windows, Flatpak apps, etc. The best way is to fix those as a first step with the last baseline. Then probably a version 1.0 with additional features. - -Hopefully, we will get to see more updates on the development in the coming weeks. If you want to be heard and ask about expectations or feature requests, [create a post on GitHub][8]. - -Welcome back, Cutefish OS. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/cutefish-development-restarts/ - -作者:[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/cutefish-os-development-halts/ -[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-Application-Menu-1024x582.jpg -[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/cutefish-arch-linux-install/ -[5]: https://www.openeuler.org/en/ -[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Current-Cutefish-OS-Plan.jpg -[7]: http://openfish.org/ -[8]: https://github.com/cutefishos/cutefishos/issues From 3b481dfd9995b0808c2f1e44b10871d2a54c9b75 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 13 Aug 2022 17:01:00 +0800 Subject: [PATCH 0734/3123] RP @geekpi https://linux.cn/article-14925-1.html --- ...How to use LibreOffice Writer templates.md | 54 ++++++------------- 1 file changed, 15 insertions(+), 39 deletions(-) rename {translated/tech => published}/20220725 How to use LibreOffice Writer templates.md (53%) diff --git a/translated/tech/20220725 How to use LibreOffice Writer templates.md b/published/20220725 How to use LibreOffice Writer templates.md similarity index 53% rename from translated/tech/20220725 How to use LibreOffice Writer templates.md rename to published/20220725 How to use LibreOffice Writer templates.md index ca58a612b5..3ca137d39f 100644 --- a/translated/tech/20220725 How to use LibreOffice Writer templates.md +++ b/published/20220725 How to use LibreOffice Writer templates.md @@ -3,81 +3,57 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14925-1.html" 如何使用 LibreOffice Writer 模板 ====== -使用 LibreOffice 模板快速开始在 Linux 上写作。 -![Typewriter in the grass][1] +![](https://img.linux.net.cn/data/attachment/album/202208/13/165957bxrcv4lnxttdtc5c.jpg) -图片来源:jetheriot 提供原始照片。由 Rikki Endsley 修改。 CC BY-SA 2.0。 +> 使用 LibreOffice 模板快速开始在 Linux 上写作。 -任何办公软件套件中的主要部件都是文字处理器。无论你的需求是大是小,从记笔记到写书,文字处理器都能完成工作。大多数 Linux 发行版都包含 [LibreOffice][2] 套件,我使用 LibreOffice Writer 作为我的文字处理器。 +任何办公软件套件中的主要部件都是文字处理器。无论你的需求如何,从记笔记到写书,文字处理器都能完成工作。大多数 Linux 发行版都包含 [LibreOffice][2] 套件,我使用 LibreOffice Writer 作为我的文字处理器。 LibreOffice Writer 通过其工具栏、键盘快捷键和菜单提供了很大的灵活性。但是,如果你只是想轻松地开始一个文档,你可以使用其中一个预加载的模板。以下是如何使用 LibreOffice Writer 模板让你的工作更轻松。 ### 开始一个新文档 -LibreOffice Writer 从一个空白文档开始。大多数人刚开始写作,但这也是从模板创建新文档的地方。 +LibreOffice Writer 从一个空白文档开始。大多数人就从这里开始写作,但这也是从模板创建新文档的地方。 -首先,打开**文件**菜单,然后选择**新建**和**模板**。此选项会打开**模板**选项: +首先,打开“文件File”菜单,然后选择“新建New”、“模板Templetes”。此选项会打开模板选择对话框: ![Open templates from the File menu][3] -图片来源: - -(Jim Hall,CC BY-SA 4.0) - -**模板**选择对话框显示系统上可用的不同模板。默认的 LibreOffice Writer 安装包括用于不同类型的商务信函、简历和其他文档的模板。你可以使用对话框顶部的过滤器选项浏览列表或缩小结果范围。 +模板选择对话框显示系统上可用的不同模板。默认的 LibreOffice Writer 安装包括用于不同类型的商务信函、简历和其他文档的模板。你可以使用对话框顶部的过滤器选项浏览列表或缩小结果范围。 ![Select a template][4] -图片来源: - -(Jim Hall,CC BY-SA 4.0) - -Click on the template you want and click **Open** to start a new Writer document using this template. Some templates include boilerplate text or other sample material you can use to get started in your new document. For example, the **Modern business letter** consists of this "lorem ipsum" sample text: -单击你想要的模板,然后单击**打开**以使用此模板开始一个新的 Writer 文档。一些模板包括样板文本或其他示例材料,你可以使用这些材料开始编写新文档。例如,**现代商务信函**由以下 “lorem ipsum” 示例文本组成: +单击你想要的模板,然后单击“打开Open”以使用此模板开始一个新的 Writer 文档。一些模板包括样板文本或其他示例材料,你可以使用这些材料开始编写新文档。例如,**现代商务信函**由以下 “lorem ipsum” 示例文本组成: ![Modern business letter template][5] -图片来源: - -(Jim Hall,CC BY-SA 4.0) - -其他文档模板只是为你提供了一个具有一些漂亮默认设置的空文档的起点。例如,**现代**文档模板对文本正文使用无衬线字体(例如 Linux 系统上的 Carlito): +其他文档模板只是为你提供了一个具有一些漂亮的默认设置的空文档的起点。例如,**现代**文档模板对文本正文使用无衬线字体(例如 Linux 系统上的 Carlito): ![Modern template][6] -图片来源: - -(Jim Hall,CC BY-SA 4.0) - ### 下载模板 如果你在内置选项中没有找到所需的模板,你可以从 LibreOffice 的网站下载合适的文档模板。进入 [LibreOffice 扩展][7]以开始使用 LibreOffice 扩展和模板库。 ![Templates and extensions options][8] -图片来源: - -(Jim Hall,CC BY-SA 4.0) - -在框中输入搜索词以查找你需要的文档模板。例如,学生可能会搜索 “APA” 来查找已经为 APA 样式设置的文档模板,这是学术论文的常见样式。 +在框中输入搜索词以查找你需要的文档模板。例如,学生可能会搜索 “APA” 来查找为 APA 样式设置的文档模板,这是学术论文的常见样式。 ![APA format template][9] -图片来源: - -(Jim Hall,CC BY-SA 4.0) - ### 总结 如果你需要编写文档,请浏览 LibreOffice 模板以找到适合你的模板。使用模板意味着你可以花费更少的时间来设置文档以使其具有某种外观,并且可以更快地工作。在支持你的工作的 LibreOffice 扩展和模板库中查找其他文档模板。 +(图片来源:Jim Hall,CC BY-SA 4.0) + -------------------------------------------------------------------------------- via: https://opensource.com/article/22/7/libreoffice-writer-templates @@ -85,7 +61,7 @@ via: https://opensource.com/article/22/7/libreoffice-writer-templates 作者:[Jim Hall][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/) 荣誉推出 From e2eb2e3417e72b66e632daee8877291973a66957 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 13 Aug 2022 17:18:05 +0800 Subject: [PATCH 0735/3123] RP @Donkey-Hao https://linux.cn/article-14926-1.html --- ...ning Docker Containers Using Watchtower.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) rename {translated/tech => published}/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md (72%) diff --git a/translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md similarity index 72% rename from translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md rename to published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md index 91d72d7886..0a08bef22c 100644 --- a/translated/tech/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md +++ b/published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md @@ -2,22 +2,25 @@ [#]: via: "https://ostechnix.com/automatically-update-running-docker-containers/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14926-1.html" 如何使用 Watchtower 自动更新正在运行的 Docker 容器 ====== -使用 Watchtower 自动更新 Docker 容器基础镜像 + +![](https://img.linux.net.cn/data/attachment/album/202208/13/171633bitrd5imi953bbbi.jpg) + +> 使用 Watchtower 自动更新 Docker 容器基础镜像 对开发运维人员来说,保持 Docker 容器为最新版本是重要工作之一。手动更新 Docker 容器是一项耗时的工作。这篇文章解释了 **Watchtower** 是什么,如何安装它,以及在 Linux 中如何 **使用 Watchtower 自动更新正在运行的 Docker 容器** 。 ### Watchtower 是什么? -**Watchtower** 是一款免费、开源的应用,用来监控运行中的 Docker 容器,并且当它发现基础镜像被更改后,可以自动的更新容器。 +**Watchtower** 是一款自由开源的应用,用来监控运行中的 Docker 容器,并且当它发现基础镜像被更改后,可以自动的更新容器。 -若 watchtower 发现一个运行中的容器需要更新,它会以发送 SIGTERM 信号的方式,优雅的结束运行中容器的运行。 +若 Watchtower 发现一个运行中的容器需要更新,它会以发送 SIGTERM 信号的方式,优雅的结束运行中容器的运行。 它会下载新镜像,然后以最初部署时使用的方式,重启容器。所有文件会在后台自动下载,因此不需要用户的介入。 @@ -27,7 +30,7 @@ ### 在 Linux 中安装 Watchtower -可以通过 Docker 镜像的方式下载 Watchtower 。因此,部署它小事一桩。在你的 Linux 中安装 Docker 镜像,然后运行 Watchtower 立即开始监控 Docker 容器。 +可以通过 Docker 镜像的方式下载 Watchtower 。因此,部署它是小事一桩。在你的 Linux 中安装 Docker 镜像,然后运行 Watchtower 立即开始监控 Docker 容器。 参考下方指导在基于 PRM 和 DEB 包管理系统中安装 Docker @@ -35,8 +38,7 @@ * [如何在 Ubuntu 中安装 Docker][2] * [适用于 Linux 的 Docker 桌面初学者手册][3] - -安装 Docker 后,你可以使用以下命令以 **root** 用户身份部署 Watchtower 容器: +安装 Docker 后,你可以使用以下命令以 `root` 用户身份部署 Watchtower 容器: ``` # docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower @@ -48,9 +50,9 @@ $ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ``` -该命令会拉取最新版的 watchtower 镜像,并运行 watchtower 容器。 +该命令会拉取最新版的 `watchtower` 镜像,并运行 `watchtower` 容器。 -**输出样例:** +输出样例: ``` Unable to find image 'containrrr/watchtower:latest' locally @@ -67,13 +69,13 @@ Status: Downloaded newer image for containrrr/watchtower:latest ### 使用 Watchtower 自动更新 Docker 容器 -你系统上,Watchtower 正在和其他容器一起运行。你可以使用一下命令查看运行中的 Docker 容器列表: +在你的系统上,Watchtower 正在和其他容器一起运行。你可以使用一下命令查看运行中的 Docker 容器列表: ``` $ docker ps ``` -**输出样例:** +输出样例: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES @@ -81,9 +83,9 @@ CONTAINER ID IMAGE COMMAND CREATED f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes ago Up 19 minutes 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp ostechnix-wordpress-1 ``` -正如上方输出所示,watchtower 容器正在和名为 **"ostechnix-wordpress-1"** 的容器一起运行。从现在开始,watchtower 会每隔几分钟会检查该容器。 +正如上方输出所示,`watchtower` 容器正在和名为 `ostechnix-wordpress-1` 的容器一起运行。从现在开始,`watchtower` 会每隔几分钟会检查该容器。 -如果 watchtower 发现该容器的基础镜像的任何变化,它会优雅的关闭 "ostechnix-wordpress-1" 容器,然后使用与最初启动它时使用的相同方式,启动新的镜像。 +如果 Watchtower 发现该容器的基础镜像的任何变化,它会优雅的关闭 `ostechnix-wordpress-1` 容器,然后使用与最初启动它时使用的相同方式,启动新的镜像。 类似的,它会自动地每隔几分钟检查所有的运行中容器,并自动更新它们。 @@ -97,7 +99,7 @@ f90b462b0712 bitnami/wordpress-nginx:6 "/opt/bitnami/script…" 19 minutes $ docker ps ``` -**输出样例:** +输出样例: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES @@ -108,27 +110,27 @@ a895f082438a bitnami/mariadb:10.6 "/opt/bitnami/script…" 20 minutes ![View Running Docker Containers][5] -正如你看到的,我们正在运行 "ostechnix-wordpress-1" 和 "ostechnix-mariadb-1" 这两个容器。Mariadb 容器链接到 wordpress 容器。 +正如你看到的,我们正在运行 `ostechnix-wordpress-1` 和 `ostechnix-mariadb-1` 这两个容器。`ostechnix-mariadb-1` 容器链接到 `ostechnix-wordpress-1` 容器。 -如果 Watchtower 发现 "wordpress" 容器有个新版本,它会先关闭与之相连接的 "mariadb" 容器 ,然后才会关闭 "wordpress" 容器。 +如果 Watchtower 发现 `ostechnix-wordpress-1` 容器有个新版本,它会先关闭与之相连接的 `ostechnix-mariadb-1` 容器 ,然后才会关闭 `ostechnix-wordpress-1` 容器。 -更新 wordpress 容器后,Watchtower 会以正确的顺序,且与最初启动它们时使用的相同方式,重启这两个容器,以便应用程序正确恢复。在我们的例子中,首先启动的是 mariadb 容器,然后是 wordpress 容器,以确保连接能够继续运行。 +更新 `ostechnix-wordpress-1` 容器后,Watchtower 会以正确的顺序,且与最初启动它们时使用的相同方式,重启这两个容器,以便应用程序正确恢复。在我们的例子中,首先启动的是 `ostechnix-mariadb-1` 容器,然后是 `ostechnix-wordpress-1` 容器,以确保连接能够继续运行。 ### 监控特定容器 默认情况下,Watchtower 将监控在它所指向的 Docker 守护进程中运行的所有 Docker 容器。 -不过,你可以像下面这样,通过指定容器名称限制 watchtower 监视特定的 Docker 容器。 +不过,你可以像下面这样,通过指定容器名称限制 Watchtower 监视特定的 Docker 容器。 ``` $ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1 ``` -在上方的例子中,watchtower 会忽略其他容器,只监视名为 "ostechnix-wordpress-1" 的容器更新情况。 +在上方的例子中,`watchtower` 会忽略其他容器,只监视名为 `ostechnix-wordpress-1` 的容器更新情况。 -如果你不指定任何参数,watchtower 会照常监视所有运行中的 Docker 容器。 +如果你不指定任何参数,Watchtower 会照常监视所有运行中的 Docker 容器。 -### 发送提示 Sending Notifications +### 发送提示 或许你想收到容器更新的通知。你可以通过电子邮件、Slack 、MSTeams 以及 Gotify 发送通知。 @@ -151,13 +153,11 @@ docker run -d \ 参考下方 Watchtower Github 仓库和 Watchtower 官方主页获取更多信息: -**资料** +### 资料 * [Watchtower GitHub][6] * [Watchtower 主页][7] -> **推荐下载** — [免费电子书: "Docker Containerization Cookbook"][8] - -------------------------------------------------------------------------------- via: https://ostechnix.com/automatically-update-running-docker-containers/ @@ -165,7 +165,7 @@ via: https://ostechnix.com/automatically-update-running-docker-containers/ 作者:[sk][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From bd2f16bc336a5952228ccd21334f05153bcf4c97 Mon Sep 17 00:00:00 2001 From: perfiffer Date: Sat, 13 Aug 2022 18:30:09 +0800 Subject: [PATCH 0736/3123] translated by perfiffer --- ...inux sed command to automate file edits.md | 176 ------------------ ...inux sed command to automate file edits.md | 176 ++++++++++++++++++ 2 files changed, 176 insertions(+), 176 deletions(-) delete mode 100644 sources/tech/20220802 How I use the Linux sed command to automate file edits.md create mode 100644 translated/tech/20220802 How I use the Linux sed command to automate file edits.md diff --git a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md b/sources/tech/20220802 How I use the Linux sed command to automate file edits.md deleted file mode 100644 index 6da228a981..0000000000 --- a/sources/tech/20220802 How I use the Linux sed command to automate file edits.md +++ /dev/null @@ -1,176 +0,0 @@ -[#]: subject: "How I use the Linux sed command to automate file edits" -[#]: via: "https://opensource.com/article/22/8/automate-file-edits-sed-linux" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "perfiffer" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How I use the Linux sed command to automate file edits -====== -Here are some tips and tricks to automating file edits from the Linux command line. - -![computer screen][1] - -Image by: Opensource.com - -When I use the Linux command line, whether I'm writing a new program on my desktop computer or managing a website on my web server, I often need to process text files. Linux provides powerful tools that I leverage to get my work done. I frequently use `sed`, an editor that can modify text according to a pattern. - -`sed` stands for *stream editor*, and it edits text in a file and prints the results. One way to use `sed` is to identify several occurrences of one string in a file and replace them with a different string. You can use `sed` to process text files to a seemingly endless degree, but I'd like to share a few ways I use `sed` to help me manage files. - -### Search and replace text in a file on Linux - -To use `sed`, you need to use a *regular expression*. A regular expression is a set of special characters that define a pattern. My most frequent example of using `sed` is replacing text in a file. The syntax for replacing text looks like this: `s/originaltext/newtext/`. The `s` tells sed to perform text replacement or swap occurrences of text. Provide the original text and new text between slashes. - -This syntax will only replace the first occurrence of `originaltext` on each line. To replace every occurrence, even if the original text appears more than once on a line, append `g` to the end of the expression. Here is an example: `s/originaltext/newtext/g`. - -To use this with `sed`, specify this regular expression with the `-e` option: - -``` -$ sed -e 's/originaltext/newtext/g' -``` - -For example, let's say I have a Makefile for a program called **game**, which simulates Conway's Game of Life: - -``` -.PHONY: all run clean - -all: game - -game: game.o -        $(CC) $(CFLAGS) -o game game.o $(LDFLAGS) - -run: game -        ./game - -clean: -        $(RM) *~ -        $(RM) *.o -        $(RM) game -``` - -The name **game** isn't very descriptive, so I might choose to rename it **life**. Renaming the `game.c` source file to `life.c` is easy enough, but now I need to modify the Makefile to use the new name. I can use `sed` to change every occurrence of **game** to **life**: - -``` -$ sed -e 's/game/life/g' Makefile -.PHONY: all run clean - -all: life - -life: life.o -        $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) - -run: life -        ./life - -clean: -        $(RM) *~ -        $(RM) *.o -        $(RM) life -``` - -This prints the `sed` output to the screen, which is a good way to check if the text replacement will do what you want. To make these changes to the Makefile, first, make a backup of the file, then run `sed` and save the output to the original filename: - -``` -$ cp Makefile Makefile.old -$ sed -e 's/game/life/g' Makefile.old > Makefile -``` - -If you are confident that your changes are exactly what you want, use the `-i` or `--in-place` option to edit the file in place. However, I recommend adding a backup filename suffix like `--in-place=.old` to save a copy of the original file in case you need to restore it later. It looks like this: - -``` -$ sed --in-place=.old -e 's/game/life/g' Makefile -$ ls Makefile* -Makefile  Makefile.old -``` - -### Quoting files with sed on Linux - -You can use other features of regular expressions to match specific instances of text. For example, you might need to replace text that occurs at the start of a line. With `sed`, you can match the beginning of a line with **^**, the caret character. - -One way I use "start of line" in replacing text is when I need to quote a file in an email. Let's say I want to share my Makefile in an email, but I don't want to include it as a file attachment. Instead, I prefer to "quote" the file in the body of an email, using **>** before each line. I can use the following `sed` command to print out an edited version to my terminal, which I can copy and paste into a new email: - -``` -$ sed -e 's/^/>/' Makefile ->.PHONY: all run clean -> ->all: life -> ->life: life.o ->       $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) -> ->run: life ->       ./life -> ->clean: ->       $(RM) *~ ->       $(RM) *.o ->       $(RM) life -``` - -The `s/^/>/` regular expression matches the start of each line (**^**) and places a **>** there. Effectively, this starts each line with the **>** symbol. - -The tabs might not show up correctly in an email, but I can replace all tabs in the Makefile with a few spaces by adding another regular expression: - -``` -$ sed -e 's/^/>/' -e 's/\t/  /g' Makefile ->.PHONY: all run clean -> ->all: life -> ->life: life.o ->  $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) -> ->run: life ->  ./life -> ->clean: ->  $(RM) *~ ->  $(RM) *.o ->  $(RM) life -``` - -The `\t` indicates a literal tab, so `s/\t/ /g` tells sed to replace all tabs in the input with two spaces in the output. - -If you need to apply lots of edits to files, you can save your `-e` commands in a file and use `-f` to tell `sed` to use that file as a "script." This approach is especially useful if you need to make the same edits frequently. I might have prepared the Makefile for quoting in email using a script file called `quotemail.sed` : - -``` -$ cat quotemail.sed -s/^/>/ -s/\t/  /g -$ sed -f quotemail.sed Makefile ->.PHONY: all run clean -> ->all: life -> ->life: life.o ->  $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) -> ->run: life ->  ./life -> ->clean: ->  $(RM) *~ ->  $(RM) *.o ->  $(RM) life -``` - -### Learn to work with sed on Linux - -`sed` is a great tool to keep in your Linux command-line toolkit. Explore the `sed` manual page and learn more about how to use it. Type `man sed` at the command line to get complete documentation about the different command line options and how to use `sed` to process text files. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/automate-file-edits-sed-linux - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/features_solutions_command_data.png diff --git a/translated/tech/20220802 How I use the Linux sed command to automate file edits.md b/translated/tech/20220802 How I use the Linux sed command to automate file edits.md new file mode 100644 index 0000000000..ac8e94ae0c --- /dev/null +++ b/translated/tech/20220802 How I use the Linux sed command to automate file edits.md @@ -0,0 +1,176 @@ +[#]: subject: "How I use the Linux sed command to automate file edits" +[#]: via: "https://opensource.com/article/22/8/automate-file-edits-sed-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "perfiffer" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我是如何使用 Linux sed 命令自动进行文件编辑 +====== +以下是从 Linux 命令行自动编辑文件的一些提示和技巧。 + +![computer screen][1] + +Image by: Opensource.com + +当我使用 Linux 命令行时,无论是在台式机上编写新程序还是在 Web 服务器上管理网站,我经常需要处理文本文件。Linux 提供了强大的工具,我可以利用这些工具来完成我的工作。我经常使用 `sed`,一个可以根据模式修改文本的编辑器。 + +`sed` 代表 *流编辑器 (stream editor)*,它编辑文件中的文本并打印结果。使用 `sed` 的一种方法是识别一个字符串在文件中出现的次数,并将它们替换为不同的字符串。你可以使用 `sed` 来处理文本文件,其程度似乎无穷无尽,但我想分享一些使用 `sed` 来帮助我管理文件的方法。 + +### 在 Linux 上搜索和替换文件中的文本 + +要使用 `sed`,你需要使用一个*正则表达式*。正则表达式是定义模式的一组特殊字符。我最常使用 `sed` 的例子是替换文件中的文本。替换文本的语法如下:`s/originaltext/newtext`。`s` 告诉 `sed` 执行文本替换或交换出现的文本。在斜线之间提供原始文本和新文本。 + +此语法将仅替换每行中第一次出现的 *原始文本 (originaltext)*。要替换每个匹配项,即使在一行中原始文本出现了不止一次,也要将 `g` 追加到表达式的末尾。例如:`s/originaltext/newtext/g`。 + +要在 `sed` 中使用此表达式,请使用 `-e` 选项指定此正则表达式: + +``` +$ sed -e 's/originaltext/newtext/g' +``` + +例如,假设我有一个名为 **game** 的 Makefile 文件,它模拟了 Conway 的生命游戏: + +``` +.PHONY: all run clean + +all: game + +game: game.o +        $(CC) $(CFLAGS) -o game game.o $(LDFLAGS) + +run: game +        ./game + +clean: +        $(RM) *~ +        $(RM) *.o +        $(RM) game +``` + +**game** 这个名字并不是很有描述性,所以我可能会把它改名为 **life**。将 `game.c` 源文件重命名为 `life.c` 非常简单,但现在我需要修改 Makefile 以使用新名称。我可以使用 `sed` 来将所有的 **game** 更改为 **life**: + +``` +$ sed -e 's/game/life/g' Makefile +.PHONY: all run clean + +all: life + +life: life.o +        $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) + +run: life +        ./life + +clean: +        $(RM) *~ +        $(RM) *.o +        $(RM) life +``` + +`sed` 会将输出打印到屏幕上,这是检查文本替换是否符合你要求的好方法。要对 Makefile 进行这些更改,首先,备份文件,然后运行 `sed` 并将输出保存到原始文件名: + +``` +$ cp Makefile Makefile.old +$ sed -e 's/game/life/g' Makefile.old > Makefile +``` + +如果你确信你的更改正是你想要的,请使用 `-i` 或 `--in-place` 选项来编辑文件。但是,我建议添加一个备份文件后缀,类似于 `--in-place=.old`,用来备份原始文件,以备日后需要恢复时使用。它看起来像这样: + +``` +$ sed --in-place=.old -e 's/game/life/g' Makefile +$ ls Makefile* +Makefile  Makefile.old +``` + +### 在 Linux 上使用 sed 引用文件 + +你可以使用正则表达式的其它功能来匹配特定的文本实例。例如,你可能需要替换出现在行首的文本。使用 `sed`,你可以将行的开头与插入字符 **^** 匹配。 + +我使用“行首”来替换文本的一种方式是当我需要在电子邮件中引用一个文件时。假设我想在电子邮件中共享我的 Makefile,但我不想将其作为文件附件包含在内。相反,我更喜欢在电子邮件正文中“引用”文件,在每行之前使用 **>**。我可以使用以下 `sed` 命令将编辑后的版本打印到我的终端,并将其复制粘贴到新的电子邮件中: + +``` +$ sed -e 's/^/>/' Makefile +>.PHONY: all run clean +> +>all: life +> +>life: life.o +>       $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) +> +>run: life +>       ./life +> +>clean: +>       $(RM) *~ +>       $(RM) *.o +>       $(RM) life +``` + +`s/^/>/` 正则表达式匹配每行的开头(**^**),并在那里放置一个 **>**。实际上,这相当于每行都以 **>** 符号开始。 + +制表符可能无法在电子邮件中正确显示,但我可以通过添加另一个正则表达式将 Makefile 中的所有制表符替换为几个空格: + +``` +$ sed -e 's/^/>/' -e 's/\t/  /g' Makefile +>.PHONY: all run clean +> +>all: life +> +>life: life.o +>  $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) +> +>run: life +>  ./life +> +>clean: +>  $(RM) *~ +>  $(RM) *.o +>  $(RM) life +``` + +`\t` 表示文字制表符,因此 `s/\t/ /g` 告诉 `sed` 用输出中的两个空格替换输入中的所有制表符。 + +如果你需要对文件进行大量编辑,你可以将 `-e` 命令保存在文件中并使用 `-f` 选项来告诉 `sed` 将该文件用作"脚本"。如果你需要经常进行相同的编辑,这种方法特别有用。我已经准备了 `quotemail.sed` 的脚本文件来在我的电子邮件中引用 Makefile: + +``` +$ cat quotemail.sed +s/^/>/ +s/\t/  /g +$ sed -f quotemail.sed Makefile +>.PHONY: all run clean +> +>all: life +> +>life: life.o +>  $(CC) $(CFLAGS) -o life life.o $(LDFLAGS) +> +>run: life +>  ./life +> +>clean: +>  $(RM) *~ +>  $(RM) *.o +>  $(RM) life +``` + +### 学习在 Linux 上使用 sed + +`sed` 是一个很好的工具,可以保存在你的 Linux 命令行工具包中。浏览 `sed` 手册页并了解有关如何使用它的更多信息。在命令行中键入 `man sed` 以获取有关不同命令行选项的完整文档,以及如何使用 `sed` 处理文本文件。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/automate-file-edits-sed-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[perfiffer](https://github.com/perfiffer) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/features_solutions_command_data.png From 544bd6029a14fec21c23cdce516e7d7c559c57fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 13 Aug 2022 23:47:15 +0800 Subject: [PATCH 0737/3123] This post is collected by lkxed. --- sources/tech/Test.md | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 sources/tech/Test.md diff --git a/sources/tech/Test.md b/sources/tech/Test.md new file mode 100644 index 0000000000..170f99a23e --- /dev/null +++ b/sources/tech/Test.md @@ -0,0 +1,76 @@ +[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" +[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal" +[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code +====== + +You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][1]. + +But, the news wasn’t limited to one interesting observation. + +Linus Torvalds also mentioned at the end of the [release announcement][2] that he might call the next version upgrade of Linux Kernel as 6.0. + +#### Linux Version Numbers Decoded: Why 6.0? + +So, why the change in version numbers for an upgrade? + +To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). + +If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: + +``` +uname -r +``` + +- The first number ‘5’ represents the major version +- The second number, ’18’ represents the series of minor updates. +- The third number, ’15,’ represents the patch version + +The Linux Kernel usually follows the [Semantic Versioning][3] (A versioning system used in open source software). + +However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. + +So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. + +Linus Torvalds mentioned the same for changing the version number in the mailing list: + +> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. + +#### New Features Coming to Linux 6.0 + +If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: + +- Inclusion of Rust code (early phase) +- Real-time Kernel building support +- New Hardware support +- Usual Improvements to various Filesystems +- Scheduler changes + +Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. + +But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. + +_So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-6-0-reveal + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/linux-kernel-5-19-release/ +[2]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ +[3]: https://semver.org/ From ff771be1de0965f35fed85a9fab8624c61065e64 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 14 Aug 2022 09:35:20 +0800 Subject: [PATCH 0738/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220813=20Level=20up=20your=20HTML=20document=20wit?= =?UTF-8?q?h=20CSS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...13 Level up your HTML document with CSS.md | 280 ++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 sources/tech/20220813 Level up your HTML document with CSS.md diff --git a/sources/tech/20220813 Level up your HTML document with CSS.md b/sources/tech/20220813 Level up your HTML document with CSS.md new file mode 100644 index 0000000000..86d62b943b --- /dev/null +++ b/sources/tech/20220813 Level up your HTML document with CSS.md @@ -0,0 +1,280 @@ +[#]: subject: "Level up your HTML document with CSS" +[#]: via: "https://opensource.com/article/22/8/css-html-project-documentation" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Level up your HTML document with CSS +====== +Use CSS to bring style to your HTML project documentation. + +When you write documentation, whether that's for an open source project or a technical writing project, you should have two goals: The document should be written well, and the document should be easy to read. The first is addressed by clear writing skills and technical editing. The second can be addressed with a few simple changes to an HTML document. + +HyperText Markup Language, or HTML, is the backbone of the internet. Since the dawn of the "World Wide Web" in 1994, every web browser uses HTML to display documents and websites. And for almost as long, HTML has supported the *stylesheet*, a special addition to an HTML document that defines how the text should appear on the screen. + +You can write project documentation in plain HTML, and that gets the job done. However, plain HTML styling may feel a little spartan. Instead, try adding a few simple styles to an HTML document to add a little pizzazz to documentation, and make your documents clearer and easier to read. + +### Defining an HTML document + +Let's start with a plain HTML document and explore how to add styles to it. An empty HTML document contains the definition at the top, followed by an block to define the document itself. Within the element, you also need to include a document header that contains metadata about the document, such as its title. The contents of the document body go inside a block within the parent block. + +You can define a blank page with this HTML code: + +``` + + +  +    This is a new document +  +  + +  + +``` + +In another article about [Writing project documentation in HTML][2], I updated a Readme file from an open source board game from plain text to an HTML document, using a few basic HTML tags like

          and

          for heading and subheadings,

          for paragraphs, and and for bold and italic text. Let's pick up where we left off with that article: + +``` + + +  +    Simple Senet +  +  +   

          Simple Senet

          +   

          How to Play

          +    +   

          The game will automatically "throw" the throwing sticks +    for you, and display the results in the lower-right corner +    of the screen.

          +    +   

          If the "throw" is zero, then you lose your turn.

          +    +   

          When it's your turn, the game will automatically select +    your first piece on the board. You may or may not be +    able to make a move with this piece, so select your piece +    to move, and hit Space (or Enter) to move +    it. You can select using several different methods:

          +    +   
            +     
          • Up/down/left/right to +      navigate to a specific square.
          • +    +     
          • Plus (+) or minus (-) to navigate "left" +      and "right" on the board. Note that this will automatically +      follow the "backwards S" shape of the board.
          • +    +     
          • Tab to select your next piece on the +      board.
          • +   
          +    +   

          To quit the game at any time, press Q (uppercase +    Q) or hit Esc, and the game will prompt if you want +    to forfeit the game.

          +    +   

          You win if you move all of your pieces off the board +    before your opponent. It takes a combination of luck and +    strategy!

          +  + +``` + +This HTML document demonstrates a few common block and inline elements used by technical writers who write with HTML. Block elements define a rectangle around text. Paragraphs and headings are examples of block elements, because they extend from the left to the right edges of the document. For example,

          encloses an invisible rectangle around a paragraph. In contrast, inline elements follow the text where they are used. If you use on some text within a paragraph, only the text surrounded by and becomes bold. + +You can apply direct styling to this document to change the font, colors, and other text styles, but a more efficient way to modify the document's appearance is to apply a *stylesheet* to the document itself. You can do that in the element, with other metadata. You can reference a file for the style sheet, but for this example, use a +  +  +    ... +  + +``` + +### Defining styles + +Since you're just starting to learn about stylesheets, let's demonstrate a basic style: background color. I like to start with the background color because it helps to demonstrate block and inline elements. Let's apply a somewhat gaudy stylesheet that sets a *light blue* background color for all

          paragraphs, and a *light green* background for the

            unordered list. Use a *yellow* background for any bold text, and a *pink* background for any italics text. + +You define these using styles in the +``` + +Note that each style ends with a semicolon. + +If you view this HTML document in a web browser, you can see how the

            and

              block elements are filled in as rectangles, and the and inline elements highlight only the bold and italics text. This use of contrasting colors may not be pretty to look at, but I think you can see the block and inline elements: + +![My eyes! But the colors do help us see block and inline elements.][3] + +### Applying styles + +You can use styles to make this Readme document easier to read. You're just starting to learn about styles, you'll stick to a few simple style elements: + +* background-color to set the background color +* color to set the text color +* font-family to use a different text font +* margin-top to add space above an element +* margin-bottom to add space below an element +* text-align to change how the text is displayed, such as to the left, to the right, or centered + +Let's start over with your stylesheet and apply these new styles to your document. To begin, use a more pleasing font for your document. If your HTML document does not specify a font, the web browser picks one for you. Depending on how the browser is set up, this could be a *serif* font, like the font used in my screenshot, or a *sans-serif* font. Serif fonts have a small stroke added to each letter, which makes these fonts much easier to read in print. Sans-serif fonts lack this extra stroke, which makes text appear sharper on a computer display. Common serif fonts include Garamond or Times New Roman. Popular sans-serif fonts include Roboto and Arial. + +For example, to set the document body font to Roboto, use this style: + +``` +body { font-family: Roboto; } +``` + +By setting a font, you assume the person viewing your document also has that font installed. Some fonts have become so common they are considered de facto "Web safe" fonts. These include sans-serif fonts like Arial and serif fonts such as Times New Roman. Roboto is a newer font and may not be available everywhere. So instead of listing just one font, web designers usually put one or more "backup" fonts. You can add these alternative fonts by separating them with a comma. For example, if the user doesn't have the Roboto font on their system, you can instead use Arial for the text body by using this style definition: + +``` +body { font-family: Roboto, Arial; } +``` + +All web browsers define a default serif and sans-serif font that you can reference with those names. Users can change which font they prefer to use for serif and sans-serif, so aren't likely to be the same for everyone, but using serif or sans-serif in a font list is usually a good idea. By adding that font, at least the user gets some approximation of how you want the HTML document to appear: + +``` +body { font-family: Roboto, Arial, sans-serif; } +``` + +If your font name is more than one word, you have to put quotes around it. HTML allows you to use either single quotes or double quotes here. Define a few serif fonts for the heading and subheading, including Times New Roman: + +``` +h1 { font-family: "Times New Roman", Garamond, serif; } +h2 { font-family: "Times New Roman", Garamond, serif; } +``` + +Note that the h1 heading and h2 subheading use exactly the same font definition. If you want to avoid the extra typing, you can use a stylesheet shortcut to use the same style definition for both h1 and h2: + +``` +h1, h2 { font-family: "Times New Roman", Garamond, serif; } +``` + +When writing documentation, many technical writers prefer to center the main title on the page. You can use text-align on a block element, such as the h1 heading, to center just the title: + +``` +h1 { text-align: center; } +``` + +To help bold and italics text to stand out, put them in a slightly different color. For certain documents, I might use *dark blue* for bold text, and *dark green* for italics text. These are pretty close to black, but with just enough subtle difference that the color grabs the reader's attention. + +``` +b { color: darkblue; } +i { color: darkgreen; } +``` + +Finally, I prefer to add extra spacing around my list elements, to make these easier to read. If each list item was only a few words, the extra space might not matter. But the middle item  in my example text is quite long and wraps to a second line. The extra space helps the reader see each item in this list more clearly. You can use the margin style to add space above and below a block element: + +``` +li { margin-top: 10px; margin-bottom: 10px; } +``` + +This style defines a distance, which I've indicated here as 10px (ten *pixels*) above and below each list element. You can use several different measures for distance. Ten pixels is literally the space of ten pixels on your screen, whether that's a desktop monitor, a laptop display, or a phone or tablet screen. + +Assuming you really just want to add an extra blank line between the list elements, you can also use em for my measurement. An *em* is an old typesetting term that is exactly the width of capital **M** if you refer to left and right spacing, or the height of a capital **M** for vertical spacing. So you can instead write the margin style using 1em: + +``` +li { margin-top: 1em; margin-bottom: 1em; } +``` + +The complete list of styles in your HTML document looks like this: + +``` + + +  +    Simple Senet +    +  +  +   

              Simple Senet

              +   

              How to Play

              +    +   

              The game will automatically "throw" the throwing sticks +    for you, and display the results in the lower-right corner +    of the screen.

              +    +   

              If the "throw" is zero, then you lose your turn.

              +    +   

              When it's your turn, the game will automatically select +    your first piece on the board. You may or may not be +    able to make a move with this piece, so select your piece +    to move, and hit Space (or Enter) to move +    it. You can select using several different methods:

              +    +   
                +     
              • Up/down/left/right to +      navigate to a specific square.
              • +    +     
              • Plus (+) or minus (-) to navigate "left" +      and "right" on the board. Note that this will automatically +      follow the "backwards S" shape of the board.
              • +    +     
              • Tab to select your next piece on the +      board.
              • +   
              +    +   

              To quit the game at any time, press Q (uppercase +    Q) or hit Esc, and the game will prompt if you want +    to forfeit the game.

              +    +   

              You win if you move all of your pieces off the board +    before your opponent. It takes a combination of luck and +    strategy!

              +  + +``` + +When viewed on a web browser, you see your Readme document in a sans-serif font, with serif fonts for the heading and subheading. The page title is centered. The bold and italics text use a slightly different color that calls the reader's attention without being distracting. Finally, your list items have extra space around them, making each item easier to read. + +![By adding a few styles, we've made this Readme much easier to read.][4] + +This is a simple introduction to using styles in technical writing. Having mastered the basics, you might be interested in [Mozilla's HTML Guide][5]. This includes some great beginner's tutorials so you can learn how to create your own web pages. + +For more information on how CSS styling works, I recommend [Mozilla's CSS Guide][6]. + +Image by: (Jim Hall, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/css-html-project-documentation + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/painting_computer_screen_art_design_creative.png +[2]: https://opensource.com/article/22/8/writing-project-documentation-html +[3]: https://opensource.com/sites/default/files/2022-08/style-html-1.png +[4]: https://opensource.com/sites/default/files/2022-08/style-html-2.png +[5]: https://developer.mozilla.org/en-US/docs/Web/HTML +[6]: https://developer.mozilla.org/en-US/docs/Web/CSS From 4081bcc21b7cfe02671c117e10d379360da5fbc4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 14 Aug 2022 09:36:23 +0800 Subject: [PATCH 0739/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220814=20How=20to=20Apply=20Accent=20Colour=20in?= =?UTF-8?q?=20Ubuntu=20Desktop.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o Apply Accent Colour in Ubuntu Desktop.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md diff --git a/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md b/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md new file mode 100644 index 0000000000..9125a1e856 --- /dev/null +++ b/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md @@ -0,0 +1,79 @@ +[#]: subject: "How to Apply Accent Colour in Ubuntu Desktop" +[#]: via: "https://www.debugpoint.com/ubuntu-accent-colour/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Apply Accent Colour in Ubuntu Desktop +====== +It’s easy to apply accent colour on Ubuntu desktop, thanks to recent developments. Here’s how. + +Every Linux distribution has its default theme, bringing a dominant colour. The Accent colours are used to highlight the dominant colour in any setup. Generally, the primary and Accent colours should contrast or complement each other. + +With the recent revamp of the GNOME desktop, the Ubuntu desktop introduced Accent colour in the Ubuntu 22.04 LTS release. + +Since it’s pretty obvious how to apply it, but for the sake of new buds in Linux, I will explain how to use Accent colour on an Ubuntu desktop. + +### Apply Accent Colour on Ubuntu desktop + +1. Open system settings from the application menu. +2. Go to the Appearance tab. +3. Under Style, you should see a set of pre-defined colours. +4. Select one of them to change the Accent colour. + +Once changed, the accent colour will be applied to the GTK app selections, GTK controls such as toggle buttons and the default look of the folders. + +The default accent colour is Orange, with ten colours available per the following. As of Ubuntu 22.04 LTS, you can not choose the custom accent colour of your choice. + +* Orange +* Bark +* Sage +* Olive +* Viridian +* Prussian Green +* Blue +* Purple +* Magenta +* Red + +![Accent Colour in Ubuntu][1] + +You should remember that the Light and Dark theme with accent colour combination may change your desktop’s overall appearance. + +The above feature is only present in Ubuntu with GNOME and not in vanilla GNOME offerings in other distros such as Fedora Workstation because this is something developed by the Ubuntu team and not merged back to GNOEM upstream. + +### Accent Colour in Kubuntu + +Using Kubuntu with KDE Plasma desktop, you can also easily use an accent colour. KDE Plasma provides preset colours with custom colour chooser options as well. Also, from KDE Plasma 5.25 onwards, the accent colour can change based on the wallpaper. + +To change it in Kubuntu, follow the below steps. + +* Open settings from the application menu. +* Go to appearance> Global Theme > Colours Tab. +* And choose your accent colour. + +![KDE Plasma 5.25 - Accent Colour Change Based on wallpaper][2] + +I know that Lubuntu and Xubuntu do not have this feature yet. And it’s unlikely to arrive any time soon. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/ubuntu-accent-colour/ + +作者:[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/08/Accent-Colour-in-Ubuntu.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Plasma-5.25-Accent-Colour-Change-Based-on-wallpaper-1024x611.jpg +[3]: https://t.me/debugpoint From ce1ec3eff3e4636c0387fb2b3ad7dd9c80d795ee Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 14 Aug 2022 10:09:45 +0800 Subject: [PATCH 0740/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220813=20How=20To=20Create=20And=20Manage=20Btrfs?= =?UTF-8?q?=20Snapshots=20With=20Snapper=20In=20openSUSE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...trfs Snapshots With Snapper In openSUSE.md | 548 ++++++++++++++++++ 1 file changed, 548 insertions(+) create mode 100644 sources/tech/20220813 How To Create And Manage Btrfs Snapshots With Snapper In openSUSE.md diff --git a/sources/tech/20220813 How To Create And Manage Btrfs Snapshots With Snapper In openSUSE.md b/sources/tech/20220813 How To Create And Manage Btrfs Snapshots With Snapper In openSUSE.md new file mode 100644 index 0000000000..9fd767057f --- /dev/null +++ b/sources/tech/20220813 How To Create And Manage Btrfs Snapshots With Snapper In openSUSE.md @@ -0,0 +1,548 @@ +[#]: subject: "How To Create And Manage Btrfs Snapshots With Snapper In openSUSE" +[#]: via: "https://ostechnix.com/btrfs-snapshots-snapper/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Create And Manage Btrfs Snapshots With Snapper In openSUSE +====== +Use Snapper To Automate Btrfs Snapshots + +**Btrfs** is a Linux filesystem that has been adopted as the default filesystem in popular Linux distributions such as openSUSE and Fedora. It has many unique features that are not available in other filesystems. It is based on **copy-on-write**, allowing for efficient filesystem snapshots and clones. In this guide we will see whats is **Snapper**, and how to **create Btrfs filesystem snapshots with Snapper** on openSUSE Linux. + +### What Is Snapper? + +Snapper is a Linux filesystem snapshot management tool created by **Arvin Schnell**, a software developer at SUSE. Using Snapper, you can easily create, delete, compare, and undo changes between Btrfs filesystem snapshots. + +Snapper is integrated into YaST and zypper to create and manage Btrfs snapshots in SUSE-based Linux systems. It can also be integrated with other distribution's package manager (E.g. DNF) using a plugin. + +Snapper can automatically create a pair of snapshots before and after running YaST or zypper. You can also manually create a single snapshot from command line or using the YaST. + +You can compare two snapshots and restore the previous snapshot when there is a problem. To put it in other words, Snapper can be used to view older versions of files and rollback to previous working system state if something goes wrong. + +Snapper automatically creates the timeline of snapshots, so you can easily know when a snapshot is taken. The older snapshots are automatically cleaned up to save the disk space. + +Snapper has both CLI and GUI interface (YaST module). So you can use Snapper on servers as well as desktops to snapshot the Btrfs filesystems. + +Snapper is initially developed for SUSE and openSUSE only. Now, it works on any Linux distribution that supports Btrfs filesystem and thin-provisioned LVM based logical volumes. + +Snapper supported EXT4 filesystem in the past, but it is discontinued now. Using Snapper on EXT4 filesystems is highly discouraged! + +### Install Snapper In Linux + +In order to use Snapper, the partitions should have Btrfs filesystems. + +By default, SUSE and openSUSE use Btrfs filesystem for the **root** partition. If you choose to use Btrfs for your root filesystem during fresh **[openSUSE installation][1]**, Snapper will be automatically configured for YaST2 and Zypper. So whenever you use YaST2 or Zypper, the snapshots will be automatically taken. You can also manually take snapshots at any time. + +On other Linux distributions, you may need to install Snapper and configure it with the distribution's default package manager. + +To install Snapper in Arch Linux and its variants such as EndeavourOS and Manjaro Linux, run: + +``` +$ sudo pacman -S snapper +``` + +Install Snapper on Fedora: + +``` +$ sudo dnf install snapper +``` + +Install Snapper in Debian, Ubuntu: + +``` +$ sudo apt install snapper +``` + +It is also available for various other Linux distributions as well. Head over to **[Snapper download link][2]** and get the required version for your Linux version and install it. + +As stated already, Snapper is integrated into YaST2 and Zypper, so the snapshot of root filesystem is automatically taken when each YaST/Zypper transaction is completed. + +For other Linux distributions, you may need to install snapper plugins to integrate Snapper with your package managers. + +For example, if you use Fedora, you can install **DNF snapper plugin** to snapshot filesystem automatically when running dnf command. + +``` +$ sudo dnf install snapper python3-dnf-plugin-snapper +``` + +### Create Btrfs Filesystem Snapshots With Snapper + +All commands given below are tested on a latest openSUSE Tumbleweed edition. + +#### 1. View Snapper Configuration + +By default, YaST creates a snapper config called "root" for your root file system. You can list the existing snapshot configuration using command: + +``` +$ sudo snapper list-configs +``` + +**Sample output:** + +``` +Config | Subvolume +-------+---------- +root | / +``` + +![List Snapper Configuration][3] + +The above command will + +* create a new configuration file at `/etc/snapper/configs/root` based on the default template from `/usr/share/snapper/config-templates`. +* create a new subvolume at `/.snapshots` directory and store the future snapshots for the root configuration in this directory. + +The snapper configuration for root is now active. From now on, Snapper will take automatic timeline snapshots at regular time intervals if automatic timeline snapshot feature is enabled. + +#### 3. Configure Automatic Timeline Snapshots + +Taking snapshots is automatically enabled if the root partition (/) is big enough (approximately **more than 16 GB**). If the root partition is smaller than 16 GB, all Snapper features and automatic snapshots are disabled to prevent a full `/` partition. + +To check if automatic snapshots is enabled, edit `/etc/snapper/configs/root` file: + +``` +$ sudo nano /etc/snapper/configs/root +``` + +Make sure the following option is set to "yes". + +``` +TIMELINE_CREATE="yes" +``` + +If timeline is enabled, Snapper will create a snapshot once an hour by default. + +To disable automatic timeline snapshots feature, simply set the above feature to "no". + +``` +TIMELINE_CREATE="no" +``` + +When automatic timeline snapshots feature is enabled, Snapper will keep a specific number of hourly, daily, weekly, monthly, and yearly snapshots based on the configuration settings defined in `/etc/snapper/configs/root` file. + +Let us check current configuration settings: + +``` +[...] +TIMELINE_MIN_AGE="1800" +TIMELINE_LIMIT_HOURLY="10" +TIMELINE_LIMIT_DAILY="10" +TIMELINE_LIMIT_WEEKLY="0" +TIMELINE_LIMIT_MONTHLY="10" +TIMELINE_LIMIT_YEARLY="10" +[...] +``` + +As per the above configuration, Snapper will keep 100 hourly, 10 daily, 10 monthly, and 10 yearly snapshots if the automatic timeline snapshots feature is enabled. + +#### 4. List Snapshots + +To list the available snapshots using Snapper, run: + +``` +$ sudo snapper list +``` + +**Sample output:** + +``` +# | Type | Pre # | Date | User | Used Space | Cleanup | Description | Userdata +----+--------+-------+-------------------------------------+------+------------+---------+-----------------------+-------------- + 0 | single | | | root | | | current | + 1* | single | | Thursday 04 August 2022 12:54:37 PM | root | 13.82 MiB | | first root filesystem | + 2 | single | | Thursday 04 August 2022 05:16:07 PM | root | 20.25 MiB | number | after installation | important=yes + 3 | pre | | Thursday 04 August 2022 05:28:12 PM | root | 1.64 MiB | number | zypp(packagekitd) | important=yes + 4 | post | 3 | Thursday 04 August 2022 05:29:38 PM | root | 27.98 MiB | number | | important=yes +11 | pre | | Friday 05 August 2022 02:07:22 PM | root | 4.12 MiB | number | zypp(zypper) | important=no +12 | post | 11 | Friday 05 August 2022 02:09:07 PM | root | 33.29 MiB | number | | important=no +13 | pre | | Friday 05 August 2022 02:33:19 PM | root | 176.00 KiB | number | yast snapper | +14 | pre | | Friday 05 August 2022 02:39:30 PM | root | 128.00 KiB | number | zypp(zypper) | important=no +15 | post | 14 | Friday 05 August 2022 02:39:48 PM | root | 5.65 MiB | number | | important=no +16 | post | 13 | Friday 05 August 2022 04:11:00 PM | root | 32.00 KiB | number | | +17 | pre | | Friday 05 August 2022 04:11:27 PM | root | 64.00 KiB | number | yast snapper | +20 | post | 17 | Friday 05 August 2022 06:48:50 PM | root | 2.33 MiB | number | | +``` + +![List Snapshots][4] + +As you can see in the above output, There are three types of snapshots. They are known as **single**, **pre** and **post** respectively. + +Each snapshot has an index number and the exact date and time of snapshot creation. The snapshot `#0` always refers to the current system. + +The **single** snapshots are used for storing the file system state in a certain time. The single snapshots have no special relationship to other snapshots. + +A pair of snapshots of root filesystem is created during each YaST or Zypper transaction. These snapshots are called **pre** and **post**. + +One snapshot is created just before the transaction run (Pre). This means after a successful transaction check and successful transaction test. And another snapshot is created when the transaction has finished (Post). + +Each "pre" snapshots belongs to a specific "post" snapshot. The post snapshots knows which pre snapshots belongs to it. + +By having a pre and post snapshot, we can see what changes happened to the file system while YaST/Zypper was running. + +How do you know Snapper actually snapshots the filesystem? Easy! Open YaST and do some configuration changes or install/remove a package using Zypper package manager. Snapper will automatically snapshot the filesystem during each transaction. + +For example, I am going to install "gedit" package using zypper: + +``` +$ sudo zypper install gedit +``` + +Now list the snapshots using command: + +``` +$ sudo snapper list +``` + +**Sample output:** + +``` +# | Type | Pre # | Date | User | Used Space | Cleanup | Description | Userdata +----+--------+-------+-------------------------------------+------+------------+---------+-----------------------+-------------- + 0 | single | | | root | | | current | + 1* | single | | Thursday 04 August 2022 12:54:37 PM | root | 56.28 MiB | | first root filesystem | + 2 | single | | Thursday 04 August 2022 05:16:07 PM | root | 20.25 MiB | number | after installation | important=yes + 3 | pre | | Thursday 04 August 2022 05:28:12 PM | root | 1.64 MiB | number | zypp(packagekitd) | important=yes + 4 | post | 3 | Thursday 04 August 2022 05:29:38 PM | root | 27.98 MiB | number | | important=yes +11 | pre | | Friday 05 August 2022 02:07:22 PM | root | 4.12 MiB | number | zypp(zypper) | important=no +12 | post | 11 | Friday 05 August 2022 02:09:07 PM | root | 33.29 MiB | number | | important=no +13 | pre | | Friday 05 August 2022 02:33:19 PM | root | 176.00 KiB | number | yast snapper | +14 | pre | | Friday 05 August 2022 02:39:30 PM | root | 128.00 KiB | number | zypp(zypper) | important=no +15 | post | 14 | Friday 05 August 2022 02:39:48 PM | root | 5.65 MiB | number | | important=no +16 | post | 13 | Friday 05 August 2022 04:11:00 PM | root | 32.00 KiB | number | | +17 | pre | | Friday 05 August 2022 04:11:27 PM | root | 64.00 KiB | number | yast snapper | +20 | post | 17 | Friday 05 August 2022 06:48:50 PM | root | 2.74 MiB | number | | +21 | pre | | Tuesday 09 August 2022 04:10:44 PM | root | 992.00 KiB | number | zypp(zypper) | important=no +22 | post | 21 | Tuesday 09 August 2022 04:10:49 PM | root | 1.64 MiB | number | | important=no +``` + +There it is! Snapper has taken a pre and post snapshots before and after zypper command is executed. + +#### 5. View Snapshot Status + +We can verify what has changed while YaST or Zypper was running. + +To do so, simply run the following command with the index number of pre and post snapshots: + +``` +$ sudo snapper status 21..22 +``` + +You will see whole list of newly added/removed files during the transaction. + +``` +[...] +c..... /usr/share/icons/hicolor/icon-theme.cache ++..... /usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg ++..... /usr/share/icons/hicolor/symbolic/apps/org.gnome.gedit-symbolic.svg ++..... /usr/share/licenses/gedit ++..... /usr/share/licenses/gedit/COPYING ++..... /usr/share/man/man1/gedit.1.gz ++..... /usr/share/metainfo/org.gnome.gedit.appdata.xml +``` + +Here, + +* 'c' means a file is modified. +* '+' means a file is added. +* '-' indicates a file is removed. + +#### 6. View Snapshot Difference + +We can also see the difference between pre and post snapshots. + +``` +$ sudo snapper diff 21..22 +``` + +Or pass the "less" option to view the output page by page. + +``` +$ sudo snapper diff 21..22 | less +``` + +![View Snapshots Difference][5] + +#### 7. Revert Or Undo Changes + +If you don't like the changes made by YaST or Zypper, you can revert back to the previous system state by using command: + +``` +$ sudo snapper undochange 21..22 +``` + +Snapper will revert all files (text and binary) including permissions, ownership and extended attributes and also remove and recreate files and directories. File timestamps are not reverted. Some files are excluded, e.g. `/etc/mtab`. + +You need to reboot your system to take effect the changes. Because Snapper will not notify the Kernel about the changes like YaST or Zypper does. + +#### 8. Manually Create Btrfs Snapshots + +Snapper creates snapshots automatically. You can, however, manually create Btrfs snapshots as well. + +To create a new snapshot, simply run: + +``` +$ sudo snapper create --desc "Snapshot After Fresh Installation" +``` + +Here, `--desc` indicates the description of the snapshot. + +Let us check if the snapshot is created by listing the available snapshots. + +``` +$ sudo snapper list +``` + +**Sample output:** + +``` +# | Type | Pre # | Date | User | Used Space | Cleanup | Description | Userdata +----+--------+-------+-------------------------------------+------+------------+---------+-----------------------------------+-------------- + 0 | single | | | root | | | current | + 1* | single | | Thursday 04 August 2022 12:54:37 PM | root | 16.00 KiB | | first root filesystem | + 2 | single | | Thursday 04 August 2022 05:16:07 PM | root | 20.25 MiB | number | after installation | important=yes + 3 | pre | | Thursday 04 August 2022 05:28:12 PM | root | 1.64 MiB | number | zypp(packagekitd) | important=yes + 4 | post | 3 | Thursday 04 August 2022 05:29:38 PM | root | 27.98 MiB | number | | important=yes +11 | pre | | Friday 05 August 2022 02:07:22 PM | root | 4.12 MiB | number | zypp(zypper) | important=no +12 | post | 11 | Friday 05 August 2022 02:09:07 PM | root | 33.29 MiB | number | | important=no +13 | pre | | Friday 05 August 2022 02:33:19 PM | root | 176.00 KiB | number | yast snapper | +14 | pre | | Friday 05 August 2022 02:39:30 PM | root | 128.00 KiB | number | zypp(zypper) | important=no +15 | post | 14 | Friday 05 August 2022 02:39:48 PM | root | 5.65 MiB | number | | important=no +16 | post | 13 | Friday 05 August 2022 04:11:00 PM | root | 32.00 KiB | number | | +17 | pre | | Friday 05 August 2022 04:11:27 PM | root | 64.00 KiB | number | yast snapper | +20 | post | 17 | Friday 05 August 2022 06:48:50 PM | root | 2.33 MiB | number | | +21 | single | | Tuesday 09 August 2022 03:50:04 PM | root | 16.00 KiB | | Snapshot After Fresh Installation | +``` + +![Create Btrfs Snapshots][6] + +#### 9. View Contents Of Snapshots + +All the snapshots are kept under `/.snapshots` directory for root configuration. Each snapshot is stored in a separate directory. If you move into the snapshot directory, you will see the complete root filesystem. + +``` +$ sudo ls /.snapshots/17/snapshot +bin boot dev etc home lib lib64 mnt opt proc root run sbin srv sys tmp usr var +``` + +![View Contents Of Filesystem Snapshots][7] + +#### 10. Setup Snapper Config For HOME Directory + +in SUSE/openSUSE, YaST doesn't setup Snapper for your `/home` directory. By default, it setup Snapper config for root filesystem only. + +You to need to manually setup Snapper config for your HOME directory. To do so, run: + +``` +$ sudo snapper -c home create-config /home +``` + +The above command will + +* create a new configuration file at `/etc/snapper/configs/home` based on the default template from `/usr/share/snapper/config-templates`. +* create a new subvolume at `/home/.snapshots` directory and store the future snapshots for the home configuration in this directory. + +Verify if the configuration file for `/home` directory is created by listing the Snapper config files: + +``` +$ sudo snapper list-configs +Config | Subvolume +-------+---------- +home | /home +root | / +``` + +Yes, it is created! From now on, you can view the list of snapshots for `/home` directory. + +``` +$ sudo snapper -c home list + # | Type | Pre # | Date | User | Used Space | Cleanup | Description | Userdata +---+--------+-------+------------------------------------+------+------------+----------+-------------+--------- +0 | single | | | root | | | current | +1 | single | | Tuesday 09 August 2022 05:00:26 PM | root | 16.00 KiB | timeline | timeline | +``` + +**Heads Up:** Please note that whenever you want to use Snapper for `/home` directory, you must use `-c home` option in all commands. + +To manually create a snapshot for /home directory, run: + +``` +$ sudo snapper -c home create --description "First snapshot for /home directory" +``` + +#### 11. Rollback From Bootable Snapshots + +Restoring your Linux system to previous known working state with Snapper is a quite helpful feature. + +When you unknowingly misconfigured something or ended up with a broken system after system upgrade, you can easily rollback to previous state without losing any data. + +Reboot your system. In the boot menu, choose **"Start bootloader from a read-only snapshot"** option. + +![Start Bootloader From Read-only Snapshot][8] + +The list of snapshots is listed by date in the next window. The most recent snapshot is listed first. Select the snapshot you want to boot and hit Enter to login. + +![Select The Snapshot To Boot][9] + +Log in to the system. Carefully check whether everything works as expected. Please note that you cannot write to any directory that is part of the snapshot. Data you write to other directories will not get lost, regardless of what you do next. + +If **everything is OK** as expected, perform a rollback by running the following command from your Terminal. + +``` +$ sudo snapper rollback +``` + +**Sample output:** + +``` +Ambit is classic. +Creating read-only snapshot of default subvolume. (Snapshot 32.) +Creating read-write snapshot of current subvolume. (Snapshot 33.) +Setting default subvolume to snapshot 33. +``` + +![Rollback Snapshot][10] + +Once the rollback is completed, reboot your system. On the boot screen, choose the default boot entry to reboot into the reinstated system. A snapshot of the file system status before the rollback is created. The default subvolume for root will be replaced with a fresh read-write snapshot. + +You can optionally add a description for the snapshot with the `-d` option. This is useful to easily remember when you've done the rollback. For example: + +``` +New file system root since rollback on 13/08/2022 +``` + +If your system is in a **state where you do not want to do a rollback**, don't anything. Just reboot to boot into the current system state. And then choose a different snapshot, or start the rescue system. + +Please note that this feature supports only the root configuration. + +#### 12. Delete Snapshots + +To delete a snapshot, simply specify the configuration name and the snapshot number like below. The following commands will delete the snapshot 17 of root configuration: + +``` +$ sudo snapper -c root delete 17 +``` + +Similarly, to **delete a snapshot of home configuration**, the command would be: + +``` +$ sudo snapper -c home delete +``` + +To delete multiple snapshots (E.g. 10 and 11) at once, specify the snapshots nos with space separated like below: + +``` +$ sudo snapper -c root delete 10 11 +``` + +**Heads Up:** After deleting a pre snapshot, you should always delete the corresponding post snapshot and vice versa. + +You can also delete a range of snapshots, for example snapshots 10 to 20 of home configuration, run: + +``` +$ sudo snapper -c home delete 10-20 +``` + +To free the disk space used by the snapshot(s) immediately, use `--sync` option: + +``` +$ sudo snapper -c root delete --sync 30 +``` + +### Troubleshooting - Reduce I/O Load + +Snapper creates two snapshots and compares them during each YaST/Zypper transaction. This will cause high I/O load. + +To reduce the I/O load, edit `/etc/snapper/configs/root` file: + +``` +$ sudo nano /etc/snapper/configs/root +``` + +Set **"no"** to the following parameters. + +``` +[...] +BACKGROUND_COMPARISON="no" +[...] +EMPTY_PRE_POST_CLEANUP="no" +``` + +![Reduce I/O Load][11] + +The first line disables the background comparison and the second line disables daily cleanups. Save the file and close it. + +### Snapper GUI + +Snapper also has a graphical user interface where you can create and manage Btrfs filesystem snapshots with couple mouse clicks. + +Launch Snapper from Menu. In openSUSE, it is available under different name called "YaST Filesystem Snapshots". + +This is how Snapper GUI looks in openSUSE. + +![Snapper Interface][12] + +The above window shows the list of available snapshots under root configuration. You can switch to different configuration (E.g. home) from the "Current Configuration" drop-down box. + +![Switch Configuration In Snapper GUI][13] + +From here, you can create new snapshots, modify them and delete snapshots if they are no longer required. + +#### Revert Changes Via Snapper GUI + +To restore a snapshot, choose the snapshot of your choice from the list and click **"Show Changes"** button. + +![Select Snapshot][14] + +In the next window, choose the files and folders in the original snapshot to restore and finally click "Restore Selected" Button. You will be asked a confirmation to restore the snapshot. Click "Yes" to continue. + +![Restore Snapshot][15] + +The snapshot is restored! + +### Conclusion + +In this guide, we discussed what is Snapper and how can we use Snapper to create a Btrfs snapshot before and after running YaST or zypper, compare the two snapshots and revert between the two snapshots in openSUSE. We also looked at how to rollback from bootable read-only snapshot to restore your system to previous working state. + +Finally, we learned how to use Snapper GUI tool to do all snapshot management operations via a graphical interface. + +Snapper is an underrated tool that handles the filesystem snapshots like a breeze. You don't need any third-party filesystem snapshot tool if the underlying filesystem is Btrfs. + +**Resources:** + +* [Snapper GitHub Repository][16] +* [Snapper Website][17] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/btrfs-snapshots-snapper/ + +作者:[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-opensuse-leap/ +[2]: http://download.opensuse.org/repositories/filesystems:/snapper/ +[3]: https://ostechnix.com/wp-content/uploads/2022/08/List-Snapper-Configuration.png +[4]: https://ostechnix.com/wp-content/uploads/2022/08/List-Snapshots.png +[5]: https://ostechnix.com/wp-content/uploads/2022/08/View-Snapshots-Difference.png +[6]: https://ostechnix.com/wp-content/uploads/2022/08/Create-Btrfs-Snapshots.png +[7]: https://ostechnix.com/wp-content/uploads/2022/08/View-Contents-Of-Filesystem-Snapshots.png +[8]: https://ostechnix.com/wp-content/uploads/2022/08/Start-Bootloader-From-Read-only-Snapshot.png +[9]: https://ostechnix.com/wp-content/uploads/2022/08/Select-The-Snapshot-To-Boot.png +[10]: https://ostechnix.com/wp-content/uploads/2022/08/Rollback-Snapshot.png +[11]: https://ostechnix.com/wp-content/uploads/2022/08/Reduce-IO-Load.png +[12]: https://ostechnix.com/wp-content/uploads/2022/08/Snapper-Interface.png +[13]: https://ostechnix.com/wp-content/uploads/2022/08/Switch-Configuration-In-Snapper-GUI.png +[14]: https://ostechnix.com/wp-content/uploads/2022/08/Select-Snapshot.png +[15]: https://ostechnix.com/wp-content/uploads/2022/08/Restore-Snapshot.png +[16]: https://github.com/openSUSE/snapper +[17]: http://snapper.io/ From a1810c9a12f6839ef84a26c39467d2649c166d90 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 14 Aug 2022 10:12:42 +0800 Subject: [PATCH 0741/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220813=20What=20is=20PDB=20in=20Kubernetes-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220813 What is PDB in Kubernetes-.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20220813 What is PDB in Kubernetes-.md diff --git a/sources/tech/20220813 What is PDB in Kubernetes-.md b/sources/tech/20220813 What is PDB in Kubernetes-.md new file mode 100644 index 0000000000..71d6784534 --- /dev/null +++ b/sources/tech/20220813 What is PDB in Kubernetes-.md @@ -0,0 +1,104 @@ +[#]: subject: "What is PDB in Kubernetes?" +[#]: via: "https://kerneltalks.com/virtualization/what-is-pdb-in-kubernetes/" +[#]: author: "kerneltalks https://www.facebook.com/kerneltalks/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What is PDB in Kubernetes? +====== +Ever wondered what is PDB i.e. Pod Disruption Budget in the Kubernetes world? Then this small post is just for you! + +![][1] + +PDB i.e. Pod Disruption Budget is a method to make sure the minimum number of Pods are always available for a certain application in the Kubernetes cluster. That is a kind of one-liner for explaining PDB 🙂 Let’s dive deeper and understand what is PDB. What does PDB offer? Should I define PDB for my applications? etc. + +#### What is Pod Disruption Budget? + +The Replicaset in Kubernetes helps us to keep multiple replicas of the same Pod to handle the load or add an extra layer of availability in containerized applications. But, those replicas are tossed during cluster maintenance or scaling actions if you don’t tell the control plane (Kubernetes master/ Kubernetes API server) how they should be terminated. + +The PDB is a way to let control plane how the Pods in a certain Replicaset should be terminated. The PDB is a Kubernetes kind that should be associated with the Deployment kind. + +#### How PDB is defined? + +It’s a very small kind and offers only three fields to configure: + +* spec.selector: Defines the Pods to which PDB will be applied +* spec.minAvailable: An absolute number or percentage. It’s the number of Pods that should always remain in a running state during evictions. +* spec.maxUnavailable: An absolute number or percentage. It’s the maximum number of Pods that can be unavailable during evictions. +* You can only specify either `spec.minAvailable` or `spec.maxUnavailable` + +A sample Kubernetes manifest for PDB looks like this – + +``` +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: sample-pdb + namespace: #optional + Annotations: #optional + key: value + labels: #optional + key: value +spec: + minAvailable: 1 + selector: + matchLabels: + app: web +``` + +Here – + +* metadata: The PDB name, the namespace in which PDB lives, annotations and labels that are applied to the PDB itself. +* spec: It’s a PDB config we discussed above. + +#### How does PDB work? + +Let’s look at how this configuration takes into effect. For better understanding, we will consider a simple application that has 5 replicas. + +Case 1: PDB is configured with minAvailable to be 3. + +This means we are telling the control plane that it can evict at most (5 running – 3 minavailable) 2 Pods at a time. That means we are allowing 2 disruptions at a time. This value is also called *disruptionsAllowed*. So, in a situation where the control plane needs to move all the 5 Pods, it will evict 2 Pods first then once those 2 evicted Pods, respawns on the new node and goes into the `Running` state, it will evict the next 2 and lastly 1. In a process, it makes sure that there are always 3 Pods in the `Running` state. + +Case 2: PDB is configured with maxUnavailable to be 2 + +It’s the same effect as above! Basically, you are telling the control plane at any given point of time 2 Pods can be evicted meaning 5-2 = 3 Pods should be running! + +The `Allowed Disruptions` is calculated on the fly. It always considers the Pods in `Running` state only. Continuing with the above example, if out of 5 Pods, 2 Pods are not in a `Running` state (for maybe some reason) then *disruptionsAllowed*is calculated as 3-3=0. This means only 3 Pods are in the `Running` state and all 3 should not be evicted since PDB says it wants a minimum of 3 Pods in the `Running` state all the time. + +In a nutshell: *disruptionsAllowed = Number of RUNNING Pods – minAvailable value* + +#### How to check Pod Disruption Budget? + +One can use the below command to check the PDB – + +``` +$ kubectl get poddisruptionbudgets -n +``` + +Then, `kubectl describe` can be used to get the details of each PDB fetched in the output of the previous command. + +#### Should I define PDB for my applications? + +Yes, you should! It’s a good practice to calculate and properly define the PDB to make your application resilient to Cluster maintenance/scaling activities. + +The minimum number is to have minAvailable as 1 and replicas 2. Or make sure that minAvailable is always less than the replica count. The wrongly configured PDB will not allow Pod evictions and may disturb the cluster activities. Obviously, cluster admins can force their way in but then it means downtime in your applications. + +You can also implement cluster constraints for PDB so that new applications won’t be allowed to deploy unless they have PDB manifest as well in the code. + +-------------------------------------------------------------------------------- + +via: https://kerneltalks.com/virtualization/what-is-pdb-in-kubernetes/ + +作者:[kerneltalks][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.facebook.com/kerneltalks/ +[b]: https://github.com/lkxed +[1]: https://z5.kerneltalks.com/wp-content/uploads/2022/08/pod-disruption-budget.png From e3ef09f4c7a2ab28f6c24814c634cebaabd09233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 14 Aug 2022 10:41:10 +0800 Subject: [PATCH 0742/3123] Delete Test.md --- sources/tech/Test.md | 76 -------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 sources/tech/Test.md diff --git a/sources/tech/Test.md b/sources/tech/Test.md deleted file mode 100644 index 170f99a23e..0000000000 --- a/sources/tech/Test.md +++ /dev/null @@ -1,76 +0,0 @@ -[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" -[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal" -[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code -====== - -You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][1]. - -But, the news wasn’t limited to one interesting observation. - -Linus Torvalds also mentioned at the end of the [release announcement][2] that he might call the next version upgrade of Linux Kernel as 6.0. - -#### Linux Version Numbers Decoded: Why 6.0? - -So, why the change in version numbers for an upgrade? - -To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). - -If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: - -``` -uname -r -``` - -- The first number ‘5’ represents the major version -- The second number, ’18’ represents the series of minor updates. -- The third number, ’15,’ represents the patch version - -The Linux Kernel usually follows the [Semantic Versioning][3] (A versioning system used in open source software). - -However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. - -So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. - -Linus Torvalds mentioned the same for changing the version number in the mailing list: - -> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. - -#### New Features Coming to Linux 6.0 - -If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: - -- Inclusion of Rust code (early phase) -- Real-time Kernel building support -- New Hardware support -- Usual Improvements to various Filesystems -- Scheduler changes - -Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. - -But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. - -_So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-6-0-reveal - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/linux-kernel-5-19-release/ -[2]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ -[3]: https://semver.org/ From 57b1fac6cdc57352fb6fea20400bb120ac448e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 14 Aug 2022 10:41:46 +0800 Subject: [PATCH 0743/3123] Delete Test.md --- sources/tech/Test.md | 76 -------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 sources/tech/Test.md diff --git a/sources/tech/Test.md b/sources/tech/Test.md deleted file mode 100644 index 170f99a23e..0000000000 --- a/sources/tech/Test.md +++ /dev/null @@ -1,76 +0,0 @@ -[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" -[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal" -[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code -====== - -You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][1]. - -But, the news wasn’t limited to one interesting observation. - -Linus Torvalds also mentioned at the end of the [release announcement][2] that he might call the next version upgrade of Linux Kernel as 6.0. - -#### Linux Version Numbers Decoded: Why 6.0? - -So, why the change in version numbers for an upgrade? - -To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). - -If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: - -``` -uname -r -``` - -- The first number ‘5’ represents the major version -- The second number, ’18’ represents the series of minor updates. -- The third number, ’15,’ represents the patch version - -The Linux Kernel usually follows the [Semantic Versioning][3] (A versioning system used in open source software). - -However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. - -So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. - -Linus Torvalds mentioned the same for changing the version number in the mailing list: - -> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. - -#### New Features Coming to Linux 6.0 - -If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: - -- Inclusion of Rust code (early phase) -- Real-time Kernel building support -- New Hardware support -- Usual Improvements to various Filesystems -- Scheduler changes - -Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. - -But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. - -_So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-6-0-reveal - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/linux-kernel-5-19-release/ -[2]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ -[3]: https://semver.org/ From 1776ab84032af7fb91c9b88c5b8843d8ab65be0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 14 Aug 2022 10:42:10 +0800 Subject: [PATCH 0744/3123] Delete Test.md --- sources/tech/Test.md | 76 -------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 sources/tech/Test.md diff --git a/sources/tech/Test.md b/sources/tech/Test.md deleted file mode 100644 index 170f99a23e..0000000000 --- a/sources/tech/Test.md +++ /dev/null @@ -1,76 +0,0 @@ -[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" -[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal" -[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code -====== - -You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][1]. - -But, the news wasn’t limited to one interesting observation. - -Linus Torvalds also mentioned at the end of the [release announcement][2] that he might call the next version upgrade of Linux Kernel as 6.0. - -#### Linux Version Numbers Decoded: Why 6.0? - -So, why the change in version numbers for an upgrade? - -To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). - -If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: - -``` -uname -r -``` - -- The first number ‘5’ represents the major version -- The second number, ’18’ represents the series of minor updates. -- The third number, ’15,’ represents the patch version - -The Linux Kernel usually follows the [Semantic Versioning][3] (A versioning system used in open source software). - -However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. - -So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. - -Linus Torvalds mentioned the same for changing the version number in the mailing list: - -> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. - -#### New Features Coming to Linux 6.0 - -If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: - -- Inclusion of Rust code (early phase) -- Real-time Kernel building support -- New Hardware support -- Usual Improvements to various Filesystems -- Scheduler changes - -Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. - -But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. - -_So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-6-0-reveal - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/linux-kernel-5-19-release/ -[2]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ -[3]: https://semver.org/ From a12d6f052e19bbc4375aa3d1f795d58539005f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 14 Aug 2022 10:42:38 +0800 Subject: [PATCH 0745/3123] Delete Test.md --- sources/tech/Test.md | 76 -------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 sources/tech/Test.md diff --git a/sources/tech/Test.md b/sources/tech/Test.md deleted file mode 100644 index 170f99a23e..0000000000 --- a/sources/tech/Test.md +++ /dev/null @@ -1,76 +0,0 @@ -[#]: subject: "Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code" -[#]: via: "https://news.itsfoss.com/linux-kernel-6-0-reveal" -[#]: author: "Anuj Sharma https://news.itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.0 is Likely the Next Version Upgrade With Initial Rust Code -====== - -You might be aware of the fact that Linus Torvalds used an Apple MacBook hardware to release [Linux Kernel 5.19][1]. - -But, the news wasn’t limited to one interesting observation. - -Linus Torvalds also mentioned at the end of the [release announcement][2] that he might call the next version upgrade of Linux Kernel as 6.0. - -#### Linux Version Numbers Decoded: Why 6.0? - -So, why the change in version numbers for an upgrade? - -To understand the versioning scheme, let us take an example of **Linux Kernel 5.18.5** (that’s what I’m running on my system). - -If you want to check the Linux Kernel version on your system, simply head to the terminal and type in: - -``` -uname -r -``` - -- The first number ‘5’ represents the major version -- The second number, ’18’ represents the series of minor updates. -- The third number, ’15,’ represents the patch version - -The Linux Kernel usually follows the [Semantic Versioning][3] (A versioning system used in open source software). - -However, when it comes to major upgrades, the developers seem to avoid numbers that seem too big. - -So, instead of going with Linux Kernel 5.20, it will just be Linux Kernel 6.0 (or Linux 6.0). There’s no hard rule on this, only when Linus Torvalds gets worried with the number, we have a shorter version number. - -Linus Torvalds mentioned the same for changing the version number in the mailing list: - -> I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again. - -#### New Features Coming to Linux 6.0 - -If you are curious, here are some features that might be a part of the Linux Kernel 6.0 release: - -- Inclusion of Rust code (early phase) -- Real-time Kernel building support -- New Hardware support -- Usual Improvements to various Filesystems -- Scheduler changes - -Most of the anticipated feature additions are likely to be technical changes, so you may not have enough to get excited about as an end-user. - -But, it should be huge if the initial Rust code arrives with the next Linux Kernel upgrade. - -_So, what do you think about the upcoming Linux Kernel 6.0? Do you wish to see Rust kernel code land?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-6-0-reveal - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/linux-kernel-5-19-release/ -[2]: https://lore.kernel.org/all/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/ -[3]: https://semver.org/ From bcdcdb45e5552f85466d1c263b50b543764fcd57 Mon Sep 17 00:00:00 2001 From: ZZJ Date: Sun, 14 Aug 2022 11:22:41 +0800 Subject: [PATCH 0746/3123] translated --- ...x tips for using cron to schedule tasks.md | 219 ------------------ ...x tips for using cron to schedule tasks.md | 183 +++++++++++++++ 2 files changed, 183 insertions(+), 219 deletions(-) delete mode 100644 sources/tech/20211115 Linux tips for using cron to schedule tasks.md create mode 100644 translated/tech/20211115 Linux tips for using cron to schedule tasks.md diff --git a/sources/tech/20211115 Linux tips for using cron to schedule tasks.md b/sources/tech/20211115 Linux tips for using cron to schedule tasks.md deleted file mode 100644 index 293343467d..0000000000 --- a/sources/tech/20211115 Linux tips for using cron to schedule tasks.md +++ /dev/null @@ -1,219 +0,0 @@ -[#]: subject: "Linux tips for using cron to schedule tasks" -[#]: via: "https://opensource.com/article/21/11/cron-linux" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lujun9972" -[#]: translator: "Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux tips for using cron to schedule tasks -====== -Schedule backups, file cleanups, and other tasks by using this simple -yet powerful Linux command-line tool. Download our new cron cheat sheet. -![Linux keys on the keyboard for a desktop computer][1] - -Making things happen on a regular and predictable schedule is important on computers. It's important because, as humans, we can sometimes be bad at remembering to do things reliably because we get distracted, have too much on our minds, or we're on holiday. Computers are really good at doing things on a schedule, but a human has to program the computer before the computer takes action. - -In a way, the `cron` system is an easy and rudimentary introduction to programming. You can make your computer do what you want it to do just by editing a file. You don't even have to know where the file is kept. You have only to type in a simple command, enter the "recipe" you want your computer to follow, and save your work. From then on, your computer executes your instructions at the specified time until it is told to stop. - -By design, `cron` is not a complex system. Here's what you need to know about it. - -### What is cron? - -The `cron` command is so ubiquitous in Linux and Unix, and it's been mimicked and reinvented so often that it's almost a generic term for _something that happens on a schedule_. It's a form of automation, and although there are different implementations of it (Dillon's cron, Vixie's cron, chrony, and others), and variations like [`anacron`][2] and [systemd timers][3], the syntax and workflow has remained essentially the same for decades. - -Cron works on a "spool" system, much like printers and email. If you didn't know that printers and email use a spool, that's okay because the point of a spool file is that you aren't supposed to think about it much. On a Linux system, the directory `/var/spool` is designed as a central hub for important but low-level files that the user isn't meant to interact with directly. One of the spools managed in `/var/spool` is `cron` tables or "crontab" for short. Every user—yourself included—on a Linux system has a crontab. Users can edit, view, and remove their own crontab. In addition, users can use their crontab to schedule tasks. The `cron` system itself monitors crontabs and ensures that any job listed in a crontab is executed at its specified time. - -### Edit cron settings - -You can edit your crontab using the `crontab` command along with the `-e` (for _edit_) option. By default, most systems invoke the `vim` text editor. If you, like me, don't use Vim, then you can set a different editor for yourself in your `~/.bashrc` file. I set mine to Emacs, but you might also try [Nano][4], [Kate][5], or whatever your favorite editor happens to be. The **EDITOR** environment variable defines what text editor you use in your terminal, while the **VISUAL** variable defines what editor you use in a graphical mode: - - -``` - - -export EDITOR=nano -export VISUAL=kate - -``` - -Refresh your shell session with your new settings: - - -``` -`$ source ~/.bashrc` -``` - -Now you can edit your crontab with your preferred editor: - - -``` -`$ crontab -e` -``` - -#### Schedule a task - -The `cron` system is essentially a calendaring system. You can tell `cron` how frequently you want a job to run by using five different attributes: minute, hour, date, month, weekday. The order of these attributes is strict and not necessarily intuitive, but you can think of them as filters or masks. By default, you might think of everything being set to _always_ or _every_. This entry would run `touch /tmp/hello` at the top of every minute during every hour of every day all year long: - - -``` -`* * * * * touch /tmp/hello` -``` - -You can restrict this all-encompassing schedule by setting specific definitions for each attribute. To make the job run on the half-hour mark of each hour, set the minutes to **30**: - - -``` -`30 * * * * touch /tmp/hello` -``` - -You can further constrain this instruction with a specific hour. This job runs at 3:30 AM every morning: - - -``` -`30 3 * * * touch /tmp/hello` -``` - -You can also make the job run only on the first of each month: - - -``` -`30 3 1 * * touch /tmp/hello` -``` - -You can set a month using 1 for January up to 12 for December, and you can set a day using 0 for Sunday up to 6 for Saturday. This job runs at 3:15 during the month of April, only on Mondays: - - -``` -`15 3 * 4 1 touch /tmp/hello` -``` - -### Set increments - -All of these settings match a value _exactly_. You can also use `cron` notation to run jobs after a set passage of time. For instance, you can run a job every 15 minutes: - - -``` -`*/15 * * * * touch /tmp/hello` -``` - -You could run a job at 10 AM every three days: - - -``` -`* 10 */3 * * touch /tmp/hello` -``` - -You could run a job every six hours: - - -``` -`* */6 * * * touch /tmp/hello` -``` - -### Cron shorthand - -Modern `cron` implementations have added a convenient shorthand for common schedules. These are: - - * `@hourly` - * `@daily` - * `@weekly` - * `@monthly` - * `@yearly or @annually` - - - -### List cron jobs - -Using the `crontab` command, you can see a list of your scheduled `cron` jobs: - - -``` - - -$ crontab -l -15 3 * 4 1 touch /tmp/hello - -``` - -### Remove a crontab - -When you're done with a crontab, you can remove it with the `-r` option: - - -``` -`$ crontab -r -i` -``` - -The `-i` option stands for _interactive_. It prompts you for confirmation before deleting the file. - -### What cron can do - -It's one thing to know how to use `cron`, but it's another thing to know what to use it for. The classic use case is a good backup plan. If your computer is on for most of the day or all day and all night, then you can schedule a routine backup of an important partition. I run a backup application called `rdiff-backup` on my primary data partition daily at 3AM: - - -``` - - -$ crontab -l | grep rdiff -* 3 * * * rdiff-backup /data/ /vault/ - -``` - -Another common use is system maintenance. On my Slackware desktop, I update my local repository catalog every Friday afternoon: - - -``` - - -$ crontab -l | grep slack -* 14 * * 5 sudo slackpkg update - -``` - -I could also run an Ansible script at 15:00 every three days to [tidy up my Downloads folder][6]: - - -``` - - -$ crontab -l | grep ansible -* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml - -``` - -A little investment in the health of your computing environment goes a long way. There are de-duplication scripts, file size and `/tmp` directory monitors, photo resizers, file movers, and many more menial tasks you could schedule to run in the background to help keep your system uncluttered. With `cron`, your computer can take care of itself in ways I only wish my physical apartment would. - -### Remember cron settings - -Besides coming up with _why_ you need `cron`, the hardest thing about `cron` in my experience has been remembering its syntax. Repeat this to yourself, over and over until you've committed it to memory: - -_Minutes, hours, date, month, weekday._ - -_Minutes, hours, date, month, weekday._ - -_Minutes, hours, date, month, weekday._ - -Better yet, go [download our free cheatsheet][7] so you have the key close at hand when you need it the most! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/11/cron-linux - -作者:[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/linux_keyboard_desktop.png?itok=I2nGw78_ (Linux keys on the keyboard for a desktop computer) -[2]: https://opensource.com/article/21/2/linux-automation -[3]: https://opensource.com/article/20/7/systemd-timers -[4]: https://opensource.com/article/20/12/gnu-nano -[5]: https://opensource.com/article/20/12/kate-text-editor -[6]: https://opensource.com/article/21/9/keep-folders-tidy-ansible -[7]: https://opensource.com/downloads/linux-cron-cheat-sheet diff --git a/translated/tech/20211115 Linux tips for using cron to schedule tasks.md b/translated/tech/20211115 Linux tips for using cron to schedule tasks.md new file mode 100644 index 0000000000..81ccbfa80a --- /dev/null +++ b/translated/tech/20211115 Linux tips for using cron to schedule tasks.md @@ -0,0 +1,183 @@ +[#]: subject: "Linux tips for using cron to schedule tasks" +[#]: via: "https://opensource.com/article/21/11/cron-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lujun9972" +[#]: translator: "Veryzzj" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " +使用 cron 定时任务的 Linux 小技巧 +====== + +通过使用这个简单而强大的 Linux 命令行工具,来安排备份、文件清理以及其他任务。下载我们新版 cron 速查表。 +![Linux keys on the keyboard for a desktop computer][1] + +在计算机上让任务按照有规律并且可预测的时间表运行很重要。作为人类,我们有时会因为分心、脑子里想太多或是度假而记不住要做的事情。计算机真的很擅长按计划做事,但在计算机采取行动之前,人类必须对计算机进行编程。 + +在某种程度上,`cron`系统是编程的初级简单入门。通过编辑一个文件就可以让计算机做你想让它做的事。你甚至不需要知道文件保存在哪里。只需键入一个简单的命令,输入你希望电脑遵循的 “recipe”,并保存。从那时起,计算机会在指定时间执行你的指令,直到被告知停止。 + +从设计上来看,`cron`不是一个复杂的系统。这里有一些你需要了解的内容。 + +### cron 是什么? + +Cron 在一个 ”假脱机“系统上工作,像打印机和电子邮件一样。如果不你知道打印机和电子邮件使用假脱机也没关系,因为假脱机文件的意义在于,你不需要想太多。在 Linux 系统中,`/var/spool`目录被设计为重要但低级的文件的中心枢纽,用户不需要直接与之交互。 在`/var/spool`中管理的一个假脱机是 `cron`表或简称“crontab”。 包括你在内的每个用户在 Linux 系统中都有一个 crontab。用户可以编辑、查看和删除自己的 crontab。除此之外,用户可以使用 crontab 来安排任务。`cron`系统监控 crontabs,并确保一个 crontab 中列出的任何工作都能在其指定时间执行。 + +### 编辑 cron 设置 + +你可以使用`crontab`命令和`-e`(代表_edit_)选项来编辑你的 contab。默认情况下,大多数系统会调用`vim`文本编辑器。 如果你和我一样,不使用Vim,那么你可以在`~/.bashrc`文件中为自己设置一个不同的编辑器。我把我的设置为Emacs,但你也可以试试[Nano][4]、[Kate][5],或者任何你喜欢的编辑器。**EDITOR**环境变量定义了你在终端使用的文本编辑器,而**VISUAL**变量定义了你在图形模式下使用的编辑器: + +``` +export EDITOR=nano +export VISUAL=kate +``` + +更新设置后刷新你的shell会话: + +``` +`$ source ~/.bashrc` +``` + +现在你可以用喜欢的编辑器编辑 crontab: + +``` +`$ crontab -e` +``` + +#### 为任务执行安排时间 + + `cron`系统本质上是一个日历系统。可以通过五个不同的属性告诉`cron` 需要让一个任务多长时间运行一次:分、时、日、月、工作日。这些属性的顺序是固定的并且不一定是直观的,你可以把它们看作是过滤器或掩码。默认情况下,你可以理解为所有东西都被设置为_always_或者_every_。此命令将在全年的每一天每小时每分钟运行`touch /tmp/hello`: + +``` +`* * * * * touch /tmp/hello` +``` + +You can restrict this all-encompassing schedule by setting specific definitions for each attribute.可以通过设置每个属性的具体定义来限制这个包罗万象的时间安排表。使任务在每个小时的30分钟标志运行,将分钟设置为**30**: + +``` +`30 * * * * touch /tmp/hello` +``` + +You can further constrain this instruction with a specific hour. This job runs at 3:30 AM every morning: 可以通过一个具体的小时来进一步约束这个指令。使任务在每个凌晨3:30运行: + +``` +`30 3 * * * touch /tmp/hello` +``` + +你也可以让这个任务只在每个月的第一天运行: + +``` +`30 3 1 * * touch /tmp/hello` +``` + +你可以用1至12表示1至12月来设置月份,用0至6表示周日至周六来设置日。这项任务在4月份的周一的3:15运行: + +``` +`15 3 * 4 1 touch /tmp/hello` +``` + +### 设置增量 + +所有这些设置都与一个固定时间_完全_匹配。使用 `cron` 符号设置在特定时间段后运行任务,例如,每15分钟运行一个任务: + +``` +`*/15 * * * * touch /tmp/hello` +``` + +每三天在上午10点运行任务: + +``` +`* 10 */3 * * touch /tmp/hello` +``` + +每六小时运行一次任务: + +``` +`* */6 * * * touch /tmp/hello` +``` + +### Cron 速记 + +现代的 `cron`实现已经为常见的时间安排表添加了方便的速记,包括: + +* `@hourly` +* `@daily` +* `@weekly` +* `@monthly` +* `@yearly or @annually` + +### 列表中的 cron 任务 + +使用`crontab`命令,查看计划中的`cron`任务列表: + +``` +$ crontab -l +15 3 * 4 1 touch /tmp/hello +``` + +### 删除一个 crontab + +当用完一个crontab后,可以使用`-r`选项来删除它: + +``` +`$ crontab -r -i` +``` + +`-i`选项代表_交互式_。它在删除文件之前会提示你进行确认。 + +### Cron 可以做什么 + +知道如何使用 `cron`是一回事,但但知道它的用途是另一回事。经典用例就是备份计划。如果你的电脑一天中大部分时间都是开着的,或者整天整夜地开着,那么可以为重要分区进行例行备份。我会在每天凌晨3点在主要数据分区上运行一个名为`rdiff-backup`的备份程序: + +``` +$ crontab -l | grep rdiff +* 3 * * * rdiff-backup /data/ /vault/ +``` + +另一个常见的用途是系统维护。在我的 Slackware 桌面上,每周五下午会更新本地版本库目录: + +``` +$ crontab -l | grep slack +* 14 * * 5 sudo slackpkg update +``` + +我还会每三天在15:00运行一个Ansible脚本来 [清理我的下载文件夹][6] : + +``` +$ crontab -l | grep ansible +* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml +``` + +有一些重复数据删除脚本、文件大小和`/tmp`目录监视器、照片调整器、文件移动器以及很多琐碎的任务,你可以安排在后台运行,以帮助保持系统不受干扰。有了 `cron`,计算机就能以我只希望我的公寓能达到的程度进行自我管理。 + +### 记住 cron 的设置 + +除了想明白你为什么需要 `cron`之外,根据我的经验, `cron`最难的事情是记住它的语法。重复这句话给自己听,反反复复,直到你记牢它: + +_Minutes, hours, date, month, weekday._ + +_Minutes, hours, date, month, weekday._ + +_Minutes, hours, date, month, weekday._ + +更好的做法是,去 [下载我们免费的速查表][7] ,这样当你最需要它时,它触手可及! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/11/cron-linux + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[校对者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/linux_keyboard_desktop.png?itok=I2nGw78_ "Linux keys on the keyboard for a desktop computer" +[2]: https://opensource.com/article/21/2/linux-automation +[3]: https://opensource.com/article/20/7/systemd-timers +[4]: https://opensource.com/article/20/12/gnu-nano +[5]: https://opensource.com/article/20/12/kate-text-editor +[6]: https://opensource.com/article/21/9/keep-folders-tidy-ansible +[7]: https://opensource.com/downloads/linux-cron-cheat-sheet From 0e05bc0e22ef12be59414d22988b70a2a19032b7 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Sun, 14 Aug 2022 11:36:52 +0800 Subject: [PATCH 0747/3123] PR --- sources/tech/20220810 Create beautiful PDFs in LaTeX.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220810 Create beautiful PDFs in LaTeX.md b/sources/tech/20220810 Create beautiful PDFs in LaTeX.md index bd6cea2fc6..55d9e32bff 100644 --- a/sources/tech/20220810 Create beautiful PDFs in LaTeX.md +++ b/sources/tech/20220810 Create beautiful PDFs in LaTeX.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/pdf-latex" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -208,7 +208,7 @@ via: https://opensource.com/article/22/8/pdf-latex 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b9c1d11d4efe15316932f61ef5f7fbf114c26f6d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 14 Aug 2022 17:08:55 +0800 Subject: [PATCH 0748/3123] RP @geekpi https://linux.cn/article-14929-1.html --- ...808 Fix file permission errors on Linux.md | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) rename {translated/tech => published}/20220808 Fix file permission errors on Linux.md (58%) diff --git a/translated/tech/20220808 Fix file permission errors on Linux.md b/published/20220808 Fix file permission errors on Linux.md similarity index 58% rename from translated/tech/20220808 Fix file permission errors on Linux.md rename to published/20220808 Fix file permission errors on Linux.md index db6f61a2cc..ba3aaa5c52 100644 --- a/translated/tech/20220808 Fix file permission errors on Linux.md +++ b/published/20220808 Fix file permission errors on Linux.md @@ -3,30 +3,29 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14929-1.html" 修复 Linux 上的文件权限错误 ====== -不要让文件权限减慢你的速度。以下是在 Linux 和 macOS 上管理它们的方法。 -![open source button on keyboard][1] +![](https://img.linux.net.cn/data/attachment/album/202208/14/170711zy6zskat0kj21y2h.jpg) -图片来源:Opensource.com +> 不要让文件权限拖你后腿。以下是在 Linux 和 macOS 上管理它们的方法。 -如果你通过网络或“跑腿网络”(将文件保存到硬盘并将其复制到计算机)在两个用户之间共享文件,那么在尝试读取或写入文件时可能会遇到权限错误。即使你了解它的概念,你也可能不知道该如何诊断或解决问题。我曾经将数据迁移作为一项服务执行,因此我遇到了相当多的权限错误和所有权冲突。这是我快速修复它们的方法。 +如果你通过网络或“跑腿网络”(将文件保存到硬盘,以将其复制到一台计算机)在两个用户之间共享文件,那么在尝试读取或写入文件时可能会遇到权限错误。即使你了解它的概念,你也可能不知道该如何诊断或解决问题。我曾经将数据迁移作为一项服务执行,因此我遇到了相当多的权限错误和所有权冲突。这是我快速修复它们的方法。 -### 1. 确定正确的用户 +### 1、确定正确的用户 -在修复权限错误之前,你必须确定谁需要权限。你可能认为你已经知道这一点,但你可能没有意识到*用户名*并不是用户身份的最确定属性。你的计算机不会将你视为一个人,而是将你视为一个数字。要了解你的号码,请查看您的用户 ID: +在修复权限错误之前,你必须确定需要权限的人是谁。你可能认为你已经知道这一点,但你可能没有意识到*用户名*并不是用户身份的最确定属性。你的计算机不会将你视为一个人,而是将你视为一个数字。要了解你的号码,请查看你的用户 ID: ``` $ id --user 1005 ``` -### 2. 获取当前所有者 +### 2、获取当前所有者 接下来,确定你无法与之交互的文件的所有者。由于发生了文件权限问题,你可能需要使用 `sudo` 命令查看有关文件的信息: @@ -37,9 +36,9 @@ $ sudo ls --numeric-uid-gid -rw------- 1 1000 100 822 Aug 2 08:19 foo ``` -在此示例中,拥有文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与它们交互的原因。更糟糕的是,这些文件仅由拥有它们的用户标记为可读和可写,因此即使是同一组的成员也不能与这些文件进行交互。 +在此示例中,拥有文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与它们交互的原因。更糟糕的是,这些文件标记为仅由拥有它们的用户可读和可写,因此即使是同一组的成员也不能与这些文件进行交互。 -### 3. 更改权限以匹配 +### 3、更改权限以匹配 你知道需要权限的用户,因此你可以更改当前所有者以匹配你当前的用户: @@ -47,7 +46,7 @@ $ sudo ls --numeric-uid-gid $ sudo chown 1005 foo ``` -你还可以通过更改文件模式授予你的组成员以及系统上可能的其他用户对文件的访问权限。例如,在向组和任何其他用户授予读取权限 (4) 的同时保持读取和写入权限 (7): +你还可以通过更改文件模式授予你的组成员以及系统上可能的其他用户对文件的访问权限。例如,在向组和任何其他用户授予读取权限(4)的同时保持读取和写入权限(7): ``` $ sudo chmod 744 foo @@ -55,7 +54,7 @@ $ sudo chmod 744 foo ### 了解更多 -当你对文件权限不熟悉时,它们似乎很棘手。有关文件所有权如何工作的更多信息,请阅读 [chown 简介][2]。 +当你对文件权限不熟悉时,它们似乎很棘手。有关文件所有权如何工作的更多信息,请阅读 [chown 简介][2]。 -------------------------------------------------------------------------------- @@ -64,7 +63,7 @@ via: https://opensource.com/article/22/8/fix-file-permission-errors-linux 作者:[Seth Kenlon][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/) 荣誉推出 From a890a8d0f4cc12fbac7e07ae38eaaa8d9a9b2f3c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 14 Aug 2022 17:26:58 +0800 Subject: [PATCH 0749/3123] RP @Donkey-Hao https://linux.cn/article-14930-1.html --- ...anage files from the Linux command line.md | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) rename {translated/tech => published}/20220727 How I manage files from the Linux command line.md (86%) diff --git a/translated/tech/20220727 How I manage files from the Linux command line.md b/published/20220727 How I manage files from the Linux command line.md similarity index 86% rename from translated/tech/20220727 How I manage files from the Linux command line.md rename to published/20220727 How I manage files from the Linux command line.md index b8c901977d..4c7a72fb91 100644 --- a/translated/tech/20220727 How I manage files from the Linux command line.md +++ b/published/20220727 How I manage files from the Linux command line.md @@ -2,18 +2,19 @@ [#]: via: "https://opensource.com/article/22/7/manage-files-linux-command-line" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14930-1.html" 在 Linux 中如何使用命令行管理文件 ====== -如果你更喜欢用终端与系统交互,请查看我最喜欢的管理文件的命令。 -![Files in a folder][1] +> 如果你更喜欢用终端与系统交互,请了解一下我最喜欢的管理文件的命令。 -在如 GNOME 或 KDE 等图形桌面中使用鼠标点击管理文件。你点击文件的图标将它移动到另一个文件夹中,或者移动到回收站里。图形交互使得桌面计算 (desktop computing) 方便使用。 +![](https://img.linux.net.cn/data/attachment/album/202208/14/172405m2wa2tbiq6qtpw2p.jpg) + +在如 GNOME 或 KDE 等图形桌面中使用鼠标点击管理文件。你点击文件的图标,将它移动到另一个文件夹中,或者移动到回收站里。图形交互使得桌面计算机便于使用。 但是在 Linux 中,我们并不总是与图形界面交互。如果你在服务器上工作,那么你可能需要使用命令行来解决问题。即使像我这样使用桌面的用户,可能也更喜欢使用终端和命令行和系统交互。我倾向于通过命令行运行命令来管理我的文件: @@ -72,7 +73,7 @@ drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 styles 现在,`ls` 将 zip 文件显示为 `6.1M` 或刚刚超过 6 MB 的文件大小,而不是 `6365962`。 -### 使用 cat ,head 和 tail 命令查看文件 +### 使用 cat、head 和 tail 命令查看文件 ``` cat @@ -86,7 +87,7 @@ head tail ``` -当显示出文件后,需要检查文件夹中的内容。使用很少一些命令即可做到。以我的 Web 服务器中的 `docs` 文件夹为例: +当显示出文件后,需要检查文件夹中的内容。使用很少几个命令即可做到。以我的 Web 服务器中的 `docs` 文件夹为例: ``` $ ls docs @@ -144,15 +145,13 @@ $ sudo head -n 1 /var/log/httpd/access_log 10.0.0.177 - - [05/Dec/2020:14:58:35 -0600] "GET / HTTP/1.1" 403 5564 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" ``` -**[[ 相关阅读:Linux cat 命令入门 ]][3]** - ### 使用 rm 命令删除文件 ``` rm ``` -在包含示例文本文件的目录中,`lorem.txt` 文件中包含 “乱数假文” (`Lorem Ipsum`) 文本。这只是印刷行业中使用的虚拟文本,因此 "lorem.txt" 文件并不属于该项目。让我们用 `rm` 命令删除这样的文件: +在包含示例文本文件的目录中,`lorem.txt` 文件中包含 “乱数假文Lorem Ipsum” 文本。这只是印刷行业中使用的虚拟文本,因此 `lorem.txt` 文件并不属于该项目。让我们用 `rm` 命令删除这样的文件: ``` $ ls docs @@ -168,13 +167,13 @@ chapter2.tex chapter5.tex chapter8.tex workbook.tex chapter3.tex chapter6.tex chapter9.tex ``` -由于用 `rm` 命令删除的文件会直接删除,而不会放入回收站,因此它很危险。安装 trash 命令比较安全,例如 [trashy][4] 或 [trash-cli][5] 命令。这样你可以在文件永久删除前,将其放入暂存区。 +由于用 `rm` 命令删除的文件会直接删除,而不会放入回收站,因此它很危险。安装 `trash` 命令比较安全,例如 [trashy][4] 或 [trash-cli][5] 命令。这样你可以在文件永久删除前,将其放入暂存区。 ``` $ rm docs/lorem.txt ``` -只需很少的命令即可在命令行中管理文件。使用 `ls` 命令显示目录中的文件,使用 `cat` 、`head` 和 `tail` 命令查看文件中的内容。使用 `rm` 或者安全的 `trash` 命令将不需要的文件删除。这五个命令足以帮你在 Linux 中管理文件。想要了解更多,可以使用 `--hep` 选项来查看如何使用这些命令。例如使用 `ls --help` 查看 `ls` 命令如何使用。 +只需很少的命令即可在命令行中管理文件。使用 `ls` 命令显示目录中的文件,使用 `cat` 、`head` 和 `tail` 命令查看文件中的内容。使用 `rm` 或者安全的 `trash` 命令将不需要的文件删除。这五个命令足以帮你在 Linux 中管理文件。想要了解更多,可以使用 `--help` 选项来查看如何使用这些命令。例如使用 `ls --help` 查看 `ls` 命令如何使用。 -------------------------------------------------------------------------------- @@ -183,7 +182,7 @@ via: https://opensource.com/article/22/7/manage-files-linux-command-line 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7319543d61126ea766f64e3ac5625d8adc59244c Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 00:20:35 +0800 Subject: [PATCH 0750/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220814=20How=20to=20Record=20Audio=20in=20Linux=20?= =?UTF-8?q?With=20Audacity=20-and=20Reduce=20Noise-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Linux With Audacity -and Reduce Noise-.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md diff --git a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md new file mode 100644 index 0000000000..b32cba6876 --- /dev/null +++ b/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md @@ -0,0 +1,131 @@ +[#]: subject: "How to Record Audio in Linux With Audacity (and Reduce Noise)" +[#]: via: "https://itsfoss.com/audacity-recording/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Record Audio in Linux With Audacity (and Reduce Noise) +====== + +[Audacity][1] is a free and open source cross-platform [audio editor][2]. Professionals use it for the tone of features it provides in such a small package. + +You don’t have to be a professional and use all of its features. You can use it to record audio from your microphone and do some basics like background noise removal. + +I will show you how to do that in this tutorial. + +### Installing Audacity on Linux + +Installing Audacity on Linux is quite a straightforward process. Because of its popularity, it is available in the official repositories of most Linux distributions. + +You can search for it in your distribution’s software center or package manager. + +As a terminal fan, let me share the commands for the common distros. + +For Debian or Ubuntu-based distributions: + +``` +sudo apt install audacity +``` + +For RHEL or Fedora-based distributions: + +``` +sudo dnf install audacity +``` + +If you use an Arch-based distribution: + +``` +sudo pacman -Syu audacity +``` + +**Note** that installing via the official repositories may not give you the [latest version][3]. To get the latest version, you may use the AppImage, or Flatpak/Snap packages. + +### Recording audio using Audacity + +Once Audacity is installed, open it from the application menu or launch it from the terminal. You will be greeted with something like this: + +![Audacity Interface][4] + +It is easy to start recording by clicking on the **record** button (the red dot). When you are done, click on the **stop** button (square icon) to finish. You also get a waveform preview of your recording, as shown below: + +![record audio with audacity][5] + +Then, you can check what was recorded by clicking the **play** button (the green icon). + +In case you do not see any waveform it indicates that nothing has been recorded. Probably, you have not set up your input correctly. Ensure that you have selected the correct microphone and it is not muted in the **system settings**. You can also access this from the Audacity interface. + +The recordings are not saved automatically as MP3 or other formats. **To save the recording**, you can go to File → Export and select **Export as MP3** (or any other preferred format). + +### Reducing background noise with Audacity + +There is another fantastic feature available in Audacity which you can use to reduce white noise in recorded audio. + +The best practice would be to not say anything for the first five seconds when you start recording with Audacity. This should give you desired background noise. + +On the waveform of your audio recording, select the part you think is the background noise. + +![Background noise][6] + +With the noise part selected, go to **Effects → Noise Reduction** from the top file menu. + +It will open a pop-up window like this. Click on the “**Get Noise Profile**” here. + +![Noise Reduction Effect Popup Window][7] + +Now, you have got the noise profile set. Now you have to use it to reduce it from the recording. + +Press Ctrl + A shortcut key to select the entire recording. You may also select part of it, noise will be reduced from the selected portion only. + +With the audio track selected, again go to **Effect → Noise Reduction**. + +**Don’t click** on ‘Get Noise Profile’ this time. This time, you should be able to press the **OK** button. + +Just press the OK button and this will apply the noise reduction effect to your recording, which gets reflected on the waveform as shown below: + +![Audio Waveform after Noise Reduction][8] + +Now the recorded audio will have less noise as compared. You can fine-tune the noise filtering while selecting the Noise Reduction effect. + +To summarize: + +* Select the noise part, go to Effect->Noise Reduction and then click “Get Noise Profile” +* Press Ctrl+A to select entire audio recording, go to Effect->Noise Reduction and press OK this time + +Note that you cannot remove every type of noise, but this should help nonetheless. + +### Audacity can do a lot more + +Recording audio with Audacity may not seem as easy as using GNOME Sound Recorder, but it’s not overly complicated. The noise reduction feature comes in handy if you are recording voiceovers. + +Audacity has a lot more features, and it is not possible to cover all of them in a single tutorial. This is why I’ll keep this short and simple. + +If you have a problem with [Audacity’s privacy policy adjustments][9] (in 2021), try out some of the available forks. + +I hope this little tutorial helps you use Audacity for audio recording. Let me know if you have questions or suggestions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/audacity-recording/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://github.com/audacity/audacity +[2]: https://itsfoss.com/best-audio-editors-linux/ +[3]: https://github.com/audacity/audacity/releases +[4]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-interface.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/record-audio-with-audacity.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduction.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-steps.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduced.png +[9]: https://news.itsfoss.com/audacity-fiasco-fork/ From 65af17721402658e6737dd15395b1258ff65abce Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 00:25:01 +0800 Subject: [PATCH 0751/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220814=20How=20to=20Monitor=20Log=20Files=20in=20R?= =?UTF-8?q?eal=20Time=20in=20Linux=20[Desktop=20and=20Server].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Real Time in Linux [Desktop and Server].md | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md diff --git a/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md new file mode 100644 index 0000000000..7e2e7c8d8c --- /dev/null +++ b/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md @@ -0,0 +1,126 @@ +[#]: subject: "How to Monitor Log Files in Real Time in Linux [Desktop and Server]" +[#]: via: "https://www.debugpoint.com/monitor-log-files-real-time/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Monitor Log Files in Real Time in Linux [Desktop and Server] +====== +This tutorial explains how you can monitor Linux log files (desktop, server or applications) in real-time for diagnosis and troubleshooting purposes. + +When you run into problems in your Linux desktop, server or any application, you first look into the separate log files. The log files are generally a text stream and messages from applications with a timestamp. It helps you to narrow down specific instances and enables you to find the cause of any problem. It can also help to get assistance from the web as well. + +In general, all log files are located in `/var/log`. This directory contains log files with extensions `.log` for specific applications and services, and it also contains separate other directories which contain their log files. + +![log files in var-log][1] + +So, if you want to monitor a bunch of log files Or a specific one, here are some ways you can do it. + +### Monitor Log Files in real-time – Linux + +#### Using tail command + +The `tail` command is the most basic way of following a log file in real time. Especially if you are in a server with only a terminal and no GUI. This is very helpful. + +Examples: + +**Basic Syntax** + +``` +tail /path/to/log/file +``` + +**Usage** + +![Monitoring multiple log files via tail][2] + +Use the switch `-f` to follow the log file, which updates in real-time. For example, if you want to follow syslog, you can use the following command. + +``` +tail -f /var/log/syslog +``` + +You can monitor multiple log files using a single command using – + +``` +tail -f /var/log/syslog /var/log/dmesg +``` + +If you want to monitor HTTP or sftp or any server, you can use their respective log files in this command. + +Remember, the above commands require admin privileges. + +#### Using lnav (The Logfile Navigator) + +![lnav Running][3] + +The lnav is an excellent utility which you can use to monitor log files in a more structured way with colour-coded messages. This is not installed by default in Linux systems. You can install it using the below command: + +``` +sudo apt install lnav (Ubuntu)sudo dnf install lnav (Fedora) +``` + +The good thing about lnav is that if you do not want to install it, you can download its pre-compiled executable and run it anywhere, even from a USB stick. No setup is required, plus loaded with features. Using lnav you can query the log files via SQL, among other cool features you can learn on its [official website][4]. + +Once installed, you can run lnav from a terminal with admin privilege, and it will show all the logs from `/var/log` by default and start monitoring in real-time. + +#### A note about journalctl of systemd + +All modern Linux distributions today use systemd, mostly. The systemd provides a basic framework and components which runs Linux operating system in general. The systemd provides journal services via journalctl, which helps to manage logs from all systemd services. You can also monitor respective systemd services and logs in real-time using the following command. + +``` +journalctl -f +``` + +Here are some specific journalctl commands you can use for several cases. You can combine these with the -f switch above to start monitoring in real-time. + +* For emergency system messages, use: + +``` +journalctl -p 0 +``` + +* Show errors with explanations: + +``` +journalctl -xb -p 3 +``` + +* Use time controls to filter out: + +``` +journalctl --since "2022-12-04 06:00:00" +journalctl --since "2022-12-03" --until "2022-12-05 03:00:00" +journalctl --since yesterday +journalctl --since 09:00 --until "1 hour ago" +``` + +If you want to learn more about and find out details about journalctl – I have written a [guide here][5]. + +### Closing Notes + +I hope these commands and tricks help you find the root cause of your problem/errors in your desktop or servers. For more details, you can always refer to the man pages and play around with various switches. Let me know if you have any comments or thoughts about this article using the comment box below. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/monitor-log-files-real-time/ + +作者:[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/2021/08/log-files-in-var-log-1024x312.jpeg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/08/Monitoring-multiple-log-files-via-tail.jpeg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/lnav-Running.jpeg +[4]: https://lnav.org/features +[5]: https://www.debugpoint.com/2020/12/systemd-journalctl/ From 6542305b9540fcb75e2011cf6dedb565990c6d16 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 00:26:18 +0800 Subject: [PATCH 0752/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220814=20New=20GNOME=20Text=20Editor=20=E2=80=93?= =?UTF-8?q?=20Everything=20You=20Need=20to=20Know.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...xt Editor – Everything You Need to Know.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sources/tech/20220814 New GNOME Text Editor – Everything You Need to Know.md diff --git a/sources/tech/20220814 New GNOME Text Editor – Everything You Need to Know.md b/sources/tech/20220814 New GNOME Text Editor – Everything You Need to Know.md new file mode 100644 index 0000000000..c62e487ad1 --- /dev/null +++ b/sources/tech/20220814 New GNOME Text Editor – Everything You Need to Know.md @@ -0,0 +1,148 @@ +[#]: subject: "New GNOME Text Editor – Everything You Need to Know" +[#]: via: "https://www.debugpoint.com/gnome-text-editor/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +New GNOME Text Editor – Everything You Need to Know +====== +We give you details about GNOME’s new default text editor – the Gnome Text Editor. + +A text editor is an essential tool for any Linux distribution or desktop. You use it almost daily for small to complex tasks while working, studying, etc. + +Most mainstream Linux desktops have a text editor that integrates well. For example, KDE has Kate or KWrite, and GNOME has Gedit. + +### So, Why a new Text Editor for GNOME? + +GNOME 42 version onwards, Gedit is replaced with a new editor – Gnome Text Editor. So the distributions which are based on GNOME should not have the new editor. The old Gedit may co-exist with this new editor until users are comfortable. + +You might ask why. + +What is wrong with Gedit? Gedit is a mighty text editor that supports many advanced functionalities other than being a simple text editor. Nothing is wrong in that sense. We covered some cool features of Gedit [here][1]; you might want to look. + +The primary reason for putting effort into creating another text editor is the libadwaita library adaptation necessary for GNOME Shell. The libadwaita and associated libhandy library provide advanced GUI features such as animation, UI widgets, built-in dark mode, responsive UI and others. + +Adapting libadwaita and its features to an existing application running for decades is a complex process. It is more cost-effective to develop a brand-new application with the latest libraries than to debug and change an old one. + +The Gedit is a two-decade-old application, with its first release in Feb 1999. Now you can comprehend what kind of complexity is built already inside its code base. + +### GNOME Text Editor + +At first look, [GNOME’s new text editor][2] looks the same. See the image below. + +![GNOME Text Editor][3] + +The first difference you would see in the looks. The title bar, action buttons and fonts are different. And they look neat overall. There is a slight gradient of the logo in the title bar itself, which you may notice. That is cool, indeed. + +The Open menu has a search bar with an option to open the open file dialog. The title bar has the line and column numbers at the top, unlike in Gedit, where it was at the bottom. + +When you start modifying a file, it gives you a dot instead of an Asterix indicator showing that it has been changed. + +In the editor itself, the line numbers are shown on the left side. The context menu is almost the same as Gedit’s. + +At the top right, there is no Save button like in Gedit. However, you have two options. The first view button gives you detailed settings about the Margin, Indentation, Wrapping and other options. + +![Menu 1][4] + +The main difference is in the hamburger menu and its preference dialog. + +The hamburger menu provides the dark and light mode out-of-the-box, which is accessible from this menu itself. Thanks to the libadwaita library, you can experience it with its default installation without any additional plugins. + +![GNOME Text Editor - Hamburger Menu][5] + +![GNOME Text Editor in Dark Mode][6] + +The preference dialog is entirely new. The new text editor provides the following themes preloaded – + +* Adwaita +* Kate +* Tango +* Classic +* Solarized Light + +![Preference Window][7] + +Also, new features such as Grid pattern in the entire editor window, highlighting current lines and overview map are excellent additions to this editor. + +A built-in session restoration behaviour is bound to help you when you work in this text editor. + +One of the nifty features is the save as dialog box. It gives you a nice little list of unsaved files with an option to select which ones you want to save. This is, indeed, next-level UI design. + +![New Save Changes Popup][8] + +### Comparison to Gedit + +If you compare this new editor to Gedit, there are many differences from the feature standpoint. The default Gedit was powerful because of its Plugins. It had plugins for grammar and spelling check, a built-in Python compiler and many others – and they are part of the default installation. + +As this editor is still in a very early stage of writing this guide, I hope more features drop in. Plugin support is welcome; if existing Gedit plugins can be used, nothing like it. + +So, that’s about its features. Here’s how you can install it. + +### How to Install + +#### Using Flatpak + +Set up your system to use Flatpack and use the following command to install. + +``` +flatpak install flathub org.gnome.TextEditor +``` + +#### Using apt (for Ubuntu, Linux Mint and others) + +You can also install it using the apt package manager as the below command. + +``` +sudo apt install gnome-text-editor +``` + +#### For Fedora and related distros using dnf + +``` +sudo dnf install gnome-text-editor +``` + +#### Usage + +Remember those commands which you used to run using gedit? For example: + +``` +sudo gedit somefile.txt +``` + +Now that you have a new editor. You should start using it. And the above command looks like the one below. + +``` +sudo gnome-text-editor somefile.txt +``` + +### Closing Notes + +I hope Gedit and GNOME Text Editor can co-exist as default packaging in future GNOME releases. A new editor is acceptable regarding look and feel, but how often do you care about how an app looks right? Because many users have already established their workflow with Gedit and its plugins. + +So, do you like the new Text Editor of GNOME? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-text-editor/ + +作者:[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/2021/04/gedit-features/ +[2]: https://gitlab.gnome.org/GNOME/gnome-text-editor +[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/GNOME-Text-Editor-1024x576.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/12/Menu-1.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/GNOME-Text-Editor-Hamburger-Menu.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/GNOME-Text-Editor-in-Dark-Mode.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/12/Preference-Window.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/12/New-Save-Changes-Popup.jpg From f894fcde2fbea05f0a7d052c15c72870feb0f9e0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 00:28:12 +0800 Subject: [PATCH 0753/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220814=20Create=20Your=20Own=20Custom=20Light=20an?= =?UTF-8?q?d=20Dark=20Wallpaper=20for=20GNOME.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...stom Light and Dark Wallpaper for GNOME.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md diff --git a/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md new file mode 100644 index 0000000000..44ffdbfdab --- /dev/null +++ b/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md @@ -0,0 +1,107 @@ +[#]: subject: "Create Your Own Custom Light and Dark Wallpaper for GNOME" +[#]: via: "https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create Your Own Custom Light and Dark Wallpaper for GNOME +====== +An easy guide on creating your custom light and dark wallpaper for the GNOME desktop. + +[GNOME 42][1]introduces the much-awaited light and dark theme to GNOME Desktop. It also brings the light and dark version of wallpaper, which automatically changes when you switch between light and dark themes. + +So, by default, GNOME gives you a few sets of pre-configured light and dark wallpapers. + +But what if you want a different wallpaper that changes automatically when the theme changes? + +Here’s how to configure and create your custom wallpaper for light and dark themes in GNOME. + +### How to create custom light and dark wallpaper for GNOME + +Firstly, make sure you have two versions of wallpaper handy with you. In general, they should be standard PNG or JPG images. For example, we used below two wallpapers for this demo. + +![Sample light and dark wallpaper for demo][2] + +But if you do not have proper light and dark wallpaper and looking for more, I will let you know how to get them or prepare your own at the end of this guide. + +Stay with me. + +Second, we need to create a schema file for our own. The automatic changing of wallpaper is handled by an XML file called adwaita.xml, which defines specific light and dark background tags. So, we will create our XML file for the wallpapers. + +To do that, copy the contents of adwaita.xml from GitLab and create a new XML file (the link is down below). You should see two tags inside this file – “filename” and “filename-dark”. These two XML tags contain the fully qualified path of both wallpapers. Add the path to your images under these two tags, as shown below. + +[Download the XML file from here (adwaita.xml.in)][3] + +![Change the XML file][4] + +Third, save this file to **/home/your_name/.local/share/gnome-background-properties** with any name you want. If the “gnome-background-properties” are not there, create them. For this example, I used my_cool_backgrounds.xml. + +![Save the file][5] + +And you are all set. Finally, open the settings and go to the Appearance tab, and you should see the new wallpapers visible as an option. + +Select your custom light and dark wallpaper and enjoy. + +![The appearance tab now has your custom light and dark wallpaper][6] + +### How to download or make your dynamic wallpaper + +You must think, “who has the time to find and create both day and night versions of wallpaper”? Several websites give you dynamic wallpapers ready-made that you can easily download and install. + +One website I would recommend is [dynamicwallpaper.club][7] which has some excellent high-quality wallpapers up to 6K for macOS. And you can easily download them. + +Additionally, if you plan to download from the above website, remember that the site’s images are in [heic format][8]because the website is for macOS. The High-Efficiency Video Coding (HEIC) is Apple’s proprietary version of the HEIF or High-Efficiency Image File format. + +You need a driver to view and convert the dynamic heic images in Ubuntu or Fedora Linux. So, how do you convert them to Linux systems? Open a terminal and run the below commands to install the driver. + +**Ubuntu** **users** – + +``` +sudo apt install heif-gdk-pixbuf +``` + +Fedora users – + +``` +sudo dnf install libheif +``` + +**For Fedora/Ubuntu with KDE Plasma Only** (without this plugin, Plasma apps can’t open heic images) + +``` +sudo apt install qt-heif-image-pluginsudo dnf install qt-heif-image-plugin +``` + +Finally, open the heic image with your favourite image viewer and save it as JPG/PNG. + +![Custom Light and Dark wallpaper in GNOME – transition][9] + +Lastly, don’t forget to let me know below in the comment section whether you can create your own custom dark and light wallpaper for GNOME. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2022/03/gnome-42-release/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sample-light-and-dark-wallpaper-for-demo.jpg +[3]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/tree/main/backgrounds +[4]: https://www.debugpoint.com/?attachment_id=9376 +[5]: https://www.debugpoint.com/?attachment_id=9375 +[6]: https://www.debugpoint.com/?attachment_id=9374 +[7]: https://dynamicwallpaper.club +[8]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format +[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Custom-Light-and-Dark-wallpaper-in-GNOME-transition.gif From e52d54ebfb6cb693a180167c6622310ed491c15c Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 00:30:17 +0800 Subject: [PATCH 0754/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220814=20Best=205=20Alternatives=20to=20Microsoft?= =?UTF-8?q?=20Office=20[Compared].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rnatives to Microsoft Office [Compared].md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/tech/20220814 Best 5 Alternatives to Microsoft Office [Compared].md diff --git a/sources/tech/20220814 Best 5 Alternatives to Microsoft Office [Compared].md b/sources/tech/20220814 Best 5 Alternatives to Microsoft Office [Compared].md new file mode 100644 index 0000000000..a211293a50 --- /dev/null +++ b/sources/tech/20220814 Best 5 Alternatives to Microsoft Office [Compared].md @@ -0,0 +1,65 @@ +[#]: subject: "Best 5 Alternatives to Microsoft Office [Compared]" +[#]: via: "https://www.debugpoint.com/best-alternatives-microsoft-office-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Best 5 Alternatives to Microsoft Office [Compared] +====== +Here we give you the five best alternatives to Microsoft Office. We compare them based on features, are easy to use and provide you with a guide to choosing the one you need. + +We all agree that Microsoft Office is one of the best software developed by Mircosoft. It has a presence almost everywhere in the entire world in nearly every business. It is a fine piece of software that evolved over a few decades. + +And obviously, it doesn’t have a Linux native installer and comes with a significant price. The current Microsoft Office 365 subscription pricing is a little higher if you are a business owner or a personal user. And not everyone can afford that price bucket for a longer time. + +Then what are the alternatives? You can try other options that relatively get the job done for most users or businesses. + +This article gives you the five best alternatives to Microsoft Office. + +### Best Alternatives to Microsoft Office + +### 1. LibreOffice + +![LibreOffice][1] + +The first alternative we highlight here is [LibreOffice][2]. The Document Foundation develops and manages the entire LibreOffice free and open-source office suite, available for Linux, macOS and Windows. + +Firstly, it comes with a spreadsheet ([Calc][3]), word processor (Writer), presentation (Impress), drawing (Draw) and a database program (Base). + +Secondly, this project is actively developed, and compatibility with Microsoft Office documents is improved in every release iteration. If appropriately used, LibreOffice can effectively do all the work that a Mircosoft office program does. In addition, a massive set of documentation and communities can help you adopt LibreOffice in no time. + +You don’t need to pay for the software if you are a small or large corporation. But paid deployment and support are also available at minimal cost if you require them for your critical work. + +However, LibreOffice does not come with an Outlook-like email program. This might be one of the minor drawbacks, but you can access emails from web browsers today for all email service providers. + +**More details about LibreOffice** + +* [Home page][4] +* [For Business][5] +* [Download for general-purpose personal use][6] +* [Help and Documentation][7] +* [Official support forum][8] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-alternatives-microsoft-office-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/03/LibreOffice.jpg +[2]: https://www.libreoffice.org/discover/libreoffice/ +[3]: https://www.debugpoint.com/category/libreoffice/libreoffice-calc/ +[4]: https://www.libreoffice.org/discover/libreoffice/ +[5]: https://www.libreoffice.org/download/libreoffice-in-business/ +[6]: https://www.libreoffice.org/download/download/ +[7]: https://help.libreoffice.org/latest/en-US/text/shared/05/new_help.html From 8ae2cde7c51f2addc5de034d271b45e607627a63 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 15 Aug 2022 08:26:29 +0800 Subject: [PATCH 0755/3123] translated --- ...y Playing Music on the Desktop in Linux.md | 141 ------------------ ...y Playing Music on the Desktop in Linux.md | 141 ++++++++++++++++++ 2 files changed, 141 insertions(+), 141 deletions(-) delete mode 100644 sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md create mode 100644 translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md diff --git a/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md deleted file mode 100644 index c32bb92d67..0000000000 --- a/sources/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md +++ /dev/null @@ -1,141 +0,0 @@ -[#]: subject: "Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux" -[#]: via: "https://itsfoss.com/sunamu-music-widget/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux -====== - -Being an eye candy **music widget** (or controller). - -That’s the only focus of Sunamu, and it does its job pretty well. - -Sunamu is an intriguing tool. It is not a music player but lets you display the music you’re playing and control it. - -I’m not a fan of having a floating widget on my primary workspace, but Sunamu’s minimal yet elegant approach changed my mind! - -So, I will walk you through its features, installation, configuration tweaks, and my experience with it. - -### Sunamu: An Open-Source Music Controller - -![playing music with sunamu][1] - -As you can notice in the screenshot above, it looks like a pretty nice way to display the music being played, with the lyrics, while having the basic controls. - -You can play/pause, go to the next/previous track, shuffle, and enable a loop. - -Sunamu supports a wide range of audio platforms, including Spotify. It also detects music from your local collection, supporting some of the [best music players][2] available for Linux. - -Additionally, it supports Windows. So, if you are streaming something through the Microsoft Edge browser on Windows, it should work well. - -You can check the [compatibility list][3] on its GitHub page to learn more about the supported players and browsers. - -Fortunately, you do not have to be limited by what it offers by default. It provides an easy way to tweak the config file (learn more about it on its [GitHub page][4]). This makes it possible for newbies to tweak some settings and have fun. - -I’ll mention a few tips about it in the later section of this article. - -### Features of Sunamu - -![Sunamu on empty workspace][5] - -Sunamu comes with a set of promising features, and some of them are: - -* Detects and display the song that is currently playing. -* Fetch color schemes from the album art and use the same color palette for better visuals. -* Customizable through its config file. -* Integrates well with Discord. -* Consumes minimal system resources. - -### Install Sunamu on Linux - -![Disable lyrics in sunamu][6] - -It provides AppImage, deb, and rpm packages for easy installation across various Linux distributions. I used AppImage for testing, and it worked like a charm. - -You can also benefit from our guide on [how to use AppImage][7] or [install deb packages][8] and [rpm packages][9], if you are new to Linux. - -Interestingly, Sunamu is one of the few open-source music tools that provide direct support for ARM-based machines. - -Visit their [GitHub releases page][10] to download packages or build it from the source. - -**Let me show you a quick installation method** for a Debian-based distro via the terminal. Just follow the given instructions, and you’ll be good to go: - -First, let’s download the .deb package using wget command as follows: - -``` -wget https://github.com/NyaomiDEV/Sunamu/releases/download/v2.0.0/sunamu_2.0.0_amd64.deb -``` - -Once you are done downloading the package, use the given command for installation: - -``` -sudo dpkg -i sunamu_2.0.0_amd64.deb -``` - -![install sunamu in ubuntu][11] - -### Tip: Tweak the Configuration file - -By default, Sunamu won’t fetch colors from the album art but show the lyrics for each song. And like many others, I like to avoid reading lyrics. - -Config file of Sunamu is usually located at **~/.config/sunamu/config.json5**. - -To open the Sunamu config file, type the given command: - -``` -nano ~/.config/sunamu/config.json5 -``` - -Make changes in the electron section as given below (to enable colors and disable lyrics): - -``` -electron: { - type: 'electron', - widgetMode: true, - colors: true, - font: '', - theme: 'default', - showLyrics: false, - } -``` - -Here’s what the final config file should look like: - -![modify config file of sunamu][12] - -### Final Thoughts - -Unless you are someone who avoids electron-based apps, Sunamu is a good enough app to enhance your music experience on Linux. After, [Amberol][13], this is the second Music-related app I have liked recently. - -If you try it, don’t forget to share your experience in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/sunamu-music-widget/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu.png -[2]: https://itsfoss.com/best-music-players-linux/ -[3]: https://github.com/NyaomiDEV/Sunamu/blob/master/COMPATIBILITY.md -[4]: https://github.com/NyaomiDEV/Sunamu/blob/master/assets/config.json5 -[5]: https://itsfoss.com/wp-content/uploads/2022/08/song-with-no-lyrics-min.png -[6]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu-inclusing-lyrics-min1.png -[7]: https://itsfoss.com/use-appimage-linux/ -[8]: https://itsfoss.com/install-deb-files-ubuntu/ -[9]: https://itsfoss.com/install-rpm-files-fedora/ -[10]: https://github.com/NyaomiDEV/Sunamu/releases/tag/v2.0.0 -[11]: https://itsfoss.com/wp-content/uploads/2022/08/install-sunamu-in-ubuntu.png -[12]: https://itsfoss.com/wp-content/uploads/2022/08/modified-config-file-of-sunamu.png -[13]: https://itsfoss.com/amberol-music-player/ diff --git a/translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md new file mode 100644 index 0000000000..9ec1079cc5 --- /dev/null +++ b/translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md @@ -0,0 +1,141 @@ +[#]: subject: "Sunamu: Display Lyrics for Currently Playing Music on the Desktop in Linux" +[#]: via: "https://itsfoss.com/sunamu-music-widget/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Sunamu:在 Linux 桌面上显示当前播放音乐的歌词 +====== + +作为一个吸睛的**音乐小部件**(或控制器)。 + +这是 Sunamu 的唯一专注,它工作得很好。 + +Sunamu 是一个有趣的工具。它不是音乐播放器,但可让你显示正在播放的音乐并对其进行控制。 + +我不喜欢在我的主要工作区使用浮动小部件,但 Sunamu 简约而优雅的方法改变了我的想法! + +因此,我将向你介绍它的功能、安装、配置调整以及我的使用经验。 + +### Sunamu:开源音乐控制器 + +![playing music with sunamu][1] + +正如你在上面的截图中所注意到的,它看起来是一种非常好的方式来显示正在播放的音乐,带有歌词,同时具有基本的控件。 + +你可以播放/暂停、转到下一首/上一首曲目、随机播放和启用循环。 + +Sunamu 支持多种音频平台,包括 Spotify。它还检测本地收藏中的音乐,支持一些可用于 Linux 的[最佳音乐播放器][2]。 + +此外,它还支持 Windows。因此,如果你通过 Windows 上的 Microsoft Edge 浏览器流式传输某些内容,它应该可以正常工作。 + +你可以查看其 GitHub 页面上的[兼容性列表][3]以了解有关支持的播放器和浏览器的更多信息。 + +幸运的是,你不必受限于它默认提供的功能。它提供了一种调整配置文件的简单方法(在其 [GitHub 页面][4]上了解更多信息)。这使得新手可以调整一些设置并获得乐趣。 + +我将在本文的后面部分提到一些关于它的提示。 + +### Sunamu 的特点 + +![Sunamu on empty workspace][5] + +Sunamu 具有一些不错的特性,其中一些是: + +* 检测并显示当前正在播放的歌曲。 +* 从专辑封面中获取配色方案并使用相同的调色板以获得更好的视觉效果。 +* 可通过配置文件进行定制。 +* 与 Discord 完美集成。 +* 消耗最少的系统资源。 + +### 在 Linux 上安装 Sunamu + +![Disable lyrics in sunamu][6] + +它提供 AppImage、deb 和 rpm 包,以便在各种 Linux 发行版中轻松安装。我使用 AppImage 进行测试,并且非常好用。 + +如果你是 Linux 新手,你还可以从我们关于[如何使用 AppImage][7] 或[安装 deb 包][8]和 [rpm 包][9]的指南中受益。 + +有趣的是,Sunamu 是少数为基于 ARM 的机器提供直接支持的开源音乐工具之一。 + +访问他们的 [GitHub 发布页面][10]下载包或从源代码构建它。 + +**让我通过终端向你展示基于 Debian 的发行版的快速安装方法**。只需按照给定的说明进行操作,你就可以开始使用了: + +首先,让我们使用 wget 命令下载 .deb 包,如下所示: + +``` +wget https://github.com/NyaomiDEV/Sunamu/releases/download/v2.0.0/sunamu_2.0.0_amd64.deb +``` + +下载完包后,使用给定的命令进行安装: + +``` +sudo dpkg -i sunamu_2.0.0_amd64.deb +``` + +![install sunamu in ubuntu][11] + +### 提示:调整配置文件 + +默认情况下,Sunamu 不会从专辑封面中获取颜色,而是显示每首歌曲的歌词。和许多其他人一样,我喜欢避免阅读歌词。 + +Sunamu 的配置文件通常位于**\~/.config/sunamu/config.json5**。 + +要打开 Sunamu 配置文件,请输入给定的命令: + +``` +nano ~/.config/sunamu/config.json5 +``` + +如下所示在 electron 部分进行更改(启用颜色和禁用歌词): + +``` +electron: { + type: 'electron', + widgetMode: true, + colors: true, + font: '', + theme: 'default', + showLyrics: false, + } +``` + +这是最终配置文件的样子: + +![modify config file of sunamu][12] + +### 最后的想法 + +除非你是避免使用基于 electron 应用的人,否则 Sunamu 是一款足以增强你在 Linux 上的音乐体验的应用。继 [Amberol][13] 之后,这是我最近喜欢的第二款音乐相关应用。 + +如果你尝试过,请不要忘记在评论部分分享你的经验。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/sunamu-music-widget/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu.png +[2]: https://itsfoss.com/best-music-players-linux/ +[3]: https://github.com/NyaomiDEV/Sunamu/blob/master/COMPATIBILITY.md +[4]: https://github.com/NyaomiDEV/Sunamu/blob/master/assets/config.json5 +[5]: https://itsfoss.com/wp-content/uploads/2022/08/song-with-no-lyrics-min.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/playing-music-with-sunamu-inclusing-lyrics-min1.png +[7]: https://itsfoss.com/use-appimage-linux/ +[8]: https://itsfoss.com/install-deb-files-ubuntu/ +[9]: https://itsfoss.com/install-rpm-files-fedora/ +[10]: https://github.com/NyaomiDEV/Sunamu/releases/tag/v2.0.0 +[11]: https://itsfoss.com/wp-content/uploads/2022/08/install-sunamu-in-ubuntu.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/modified-config-file-of-sunamu.png +[13]: https://itsfoss.com/amberol-music-player/ From 53f887092aef3c0c7f196a8f735e78d107dae055 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 15 Aug 2022 08:30:19 +0800 Subject: [PATCH 0756/3123] translated --- .../tech/20220809 7 Best Distributions Based on Fedora Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md b/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md index 6732a5a4c1..8bf211e683 100644 --- a/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md +++ b/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/best-fedora-linux-distributions/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6f53de08ec00c33e5b1081825913a178615ab5b1 Mon Sep 17 00:00:00 2001 From: FelixYFZ <33593534+FelixYFZ@users.noreply.github.com> Date: Mon, 15 Aug 2022 10:51:56 +0800 Subject: [PATCH 0757/3123] Update 20220509 Cloud service providers- How to keep your options open.md Felix is translating --- ...09 Cloud service providers- How to keep your options open.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220509 Cloud service providers- How to keep your options open.md b/sources/talk/20220509 Cloud service providers- How to keep your options open.md index 4283550c9f..e841709c76 100644 --- a/sources/talk/20220509 Cloud service providers- How to keep your options open.md +++ b/sources/talk/20220509 Cloud service providers- How to keep your options open.md @@ -6,7 +6,7 @@ [#]: reviewer: " " [#]: publisher: " " [#]: url: " " - +FelixYFZ is translating Cloud service providers: How to keep your options open ====== No matter what level of openness your cloud service operates on, you have choices for your own environment. From 2fb12abd6307154c380cb40cedd631bc9677c0ff Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 15 Aug 2022 11:02:09 +0800 Subject: [PATCH 0758/3123] R PART 3 --- ...Using Binary Space Partitioning in Doom.md | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index 7212ac8e09..8235192a40 100644 --- a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -12,7 +12,7 @@ 1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 《毁灭战士DOOM》,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 -《毁灭战士》发行之后的第十年(2003 年),记者大卫·库什纳David Kushner出版了一本关于 id Software 的书,书名为 《Doom 启示录Masters of Doom》,后被奉为记录毁灭战士创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员约翰·卡马克John Carmack的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在 《毁灭战士》 开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时慢得像爬一样。对于 《毁灭战士》 这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关论文。最后,他实现了一种叫做“二叉空间分割binary space partitioning”的技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 +《毁灭战士》发行之后的第十年(2003 年),记者大卫·库什纳David Kushner出版了一本关于 id Software 的书,书名为 《Doom 启示录Masters of Doom》,后被奉为记录毁灭战士创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员约翰·卡马克John Carmack的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在 《毁灭战士》 开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时慢得像爬一样。对于 《毁灭战士》 这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关论文。最后,他实现了一种叫做“二叉空间分割binary space partitioning(BSP)”的技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 一直以来,我对这个故事的印象十分深刻。卡马克将学术前沿研究运用于电子游戏之中,我觉得这正是他之所以成为传奇人物的原因。无论从哪个角度来看,卡马克都应该是电子游戏行业中人尽皆知的典型的天才程序员,只不过上面这个故事是我最先能够想到的理由。 @@ -54,41 +54,47 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 ### 二叉空间分割 -二叉空间分割会提前将 3D 场景分割为若干部分,借以解决 VSD 问题。讲到这里,你需要先了解一下为什么分割场景可以奏效:如果你在场景上画条线(对应 3D 空间里的一个平面),你就可以指出玩家或者摄像机视角在这条线的哪一侧,在这条线另一侧的物体无法遮挡玩家所在一侧的物体。如果多次重复这一操作,该 3D 场景最终会被分割为多个区域。最后,你要明白场景中不同的部分是会相互遮挡的,这样才能理解为什么这些区域可以起到优化原来场景的作用。 +二叉空间分割binary space partitioning(BSP)会提前将 3D 场景分割为若干部分,使 VSD 问题易于解决。讲到这里,你需要先了解一下为什么分割场景可以奏效:如果你在场景上画条线(对应 3D 空间里的一个平面),你就可以指出玩家或者摄像机视角在这条线的哪一侧,在这条线另一侧的物体无法遮挡玩家所在一侧的物体。如果多次重复这一操作,该 3D 场景最终会被分割为多个区域,这并不是对原始场景的改进,只是现在你知道了更多关于场景的不同部分如何相互阻挡。 -首次阐述上述 3D 场景分割的是美国空军的研究员,他们曾尝试向美国空军证明计算机图形已经非常先进,可以应用到飞行模拟器领域。1969 年,他们将研究发现发表在一份题为《计算机生成图像在图形仿真中的应用研究》的报告中。该报告的总结部分指出,计算机图形可用于训练飞行员,但其实际应用可能会受制于 VSD 问题: +首次阐述上述 3D 场景分割的是美国空军的研究员,他们曾尝试向美国空军证明计算机图形已经非常先进,可以应用到飞行模拟器领域。1969 年,他们将研究发现发表在一份题为《计算机生成图像在图形仿真中的应用研究》的报告中。该报告的总结部分指出,计算机图形可用于训练飞行员,但也警告说,其实际应用可能会受制于 VSD 问题: -> 实时图像处理需要解决的一个关键问题就是优先级问题或者隐藏线问题。在我们平时用眼睛观察外界时,大自然替我们轻易地解决了这一问题:注视不透明物体上一点时,同一视觉方向的物体以及距离较远的物体就会变得模糊。但在计算机中,这项任务却非常困难。图像处理通常需要解决优先级问题,随着环境复杂程度的增加,计算量会呈指数级增长,随即就会超过绘制物体透视图所需得计算负载。[2][3] +> 实时图像处理需要解决的一个关键问题就是优先级问题,或称隐藏线问题。在我们平时用眼睛观察外界时,大自然替我们轻易地解决了这一问题:不透明物体上的一个点,掩盖了同一视觉方向上,且距离较远的所有其它物体。但在计算机中,这项任务却非常困难。图像处理需要解决的优先级问题,随着环境复杂程度的增加,计算量会呈指数级增长,随即就会超过绘制物体透视图所需得计算负载。[^2] -他们在报告中提出了一项基于构造“遮挡矩阵”的方案,这一方案早些时候曾被应用于 NASA 的项目当中。研究员指出,平面将场景一分为二,可用来解决平面两侧物体之间存在的“任何优先级问题”】。通常情况下,可能需要将实实在在的平面添加到场景中,但是有了几何图形,只需借助几何物体的表面即可。他们举了一个例子,如下图:\\(p_1\\)、\\(p_2\\) 以及 \\(p_3\\) 是三个不同的平面,如果摄像机视角位于其中一个平面的前方或“正”面,\\(p_i\\) 的值就等于 1。这种矩阵展示出基于三个不同平面和摄像机视角位置的三个物体之间的关系——如果物体 \\(a_i\\) 遮挡了物体 \\(a_j\\),那么 \\(a_{ij}\\) 在此矩阵中的数值等于 1。 +他们在报告中提出了一项基于构造“遮挡矩阵”的方案,这一方案据说早些时候曾被应用于 NASA 的项目当中。研究员指出,平面将场景一分为二,可用来解决平面两侧物体之间存在的“任何优先级问题”。通常情况下,可能需要明确将这些平面添加到场景中,但对某些几何体,只需借助你已经拥有的几何体的表面即可。他们举了一个例子,如下图:p~1~、p~2~ 以及 p~3~ 是三个不同的平面,如果摄像机视角位于其中一个平面的前方,即“正”面,p~i~ 的值就等于 1。这种矩阵展示出基于三个不同平面和摄像机视角位置的三个物体之间的关系 —— 如果物体 a~i~ 遮挡了物体 a~j~,那么 a~ij~ 在此矩阵中的数值等于 1。 ![][4] -研究员指出,这种矩阵可以应用到硬件中,对每一帧进行重新评估。该矩阵基本上可以用作大型交换器,或者一种预置的 Z 缓冲器。在绘制给定的物体时,如果在物体所在列上得出数值 1,并且所在行已经在绘制中,那么物体被遮挡的部分就不会绘制出来。 +研究人员指出,这种矩阵可以应用到硬件中,对每一帧进行重新评估。该矩阵基本上可以用作大型的开关,或者一种预置的 Z 缓冲区。在绘制给定的物体时,如果在物体所在列上得出数值 1,并且所在行已经在绘制中,那么物体被遮挡的部分就不会绘制出来。 -不过,该矩阵方法的主要缺点在于,为了在场景中表示出 \\(n\\) 个物体,需要将矩阵的尺寸调整为 \\(n^2\\)。于是,研究员们继续深入,探究使用遮挡矩阵作为“优先级顺序表”的可行性。遮挡矩阵的尺寸还是 \\(n\\),可确定物体绘制的顺序。他们随即发现,诸如上图此类场景根本无法确定顺序(因为它存在循环阻塞的现象)。因此,他们不遗余力,讲明“合适”与“不合适”场景之间在数学方面的区别。最后,他们得出了一个结论:在“合适的”场景下,优先级顺序表是可以制作出来的;而对场景设计师来说,避免设计出“不合适”的场景也不是一件难事。但是,他们并没有说明如何生成顺序表。可以说,这份研究的首要贡献在于提出了可以采用平面分割的方法,对场景中的物体进行渲染排顺。至少,这在 _理论上_ 是可行的。 +不过,该矩阵方法的主要缺点在于,为了在场景中表示出 n 个物体,你需要一个尺寸为 n^2^ 的矩阵。于是,研究人员们继续深入,探究将遮挡矩阵表示为“优先级列表”的可行性,该列表的尺寸是 n,可确定物体绘制的顺序。他们随即发现,诸如上图此类场景根本无法确定顺序(因为它存在循环阻塞的现象)。因此,他们花了很多时间来阐明“合适”与“不合适”场景之间的数学区别。最后,他们得出了一个结论:至少对于“合适的”场景下,优先级列表是可以制作出来的;而对场景设计师来说,避免设计出“不合适”的场景也不是一件难事。但是,他们并没有说明如何生成该列表。可以说,这份 1969 年的研究的首要贡献在于提出了,至少,在 _理论上_,可以采用平面分割的方法,对场景中的物体进行渲染排序。 -直到 1980 年,一份题为《基于优先级树结构的可见表面生成》的论文提出了解决该问题的具体算法。在这份论文中,作者亨利·福克斯、泽维·凯德姆以及布鲁斯·内勒介绍了 BSP 树。他们指出这种新的数据结构“可以替代十年前首次使用但由于一些问题未得到广泛发展的方案”(此处即前文 1969 年美国空军相关研究中的方案)。[3][5] BSP 树一经生成,即可用于确定场景中物体的优先级顺序。 +直到 1980 年,一份题为《基于优先级树结构的可见表面生成》的论文提出了解决该问题的具体算法。在这份论文中,作者亨利·福克斯Henry Fuchs泽维·凯德姆Zvi Kedem以及布鲁斯·内勒Bruce Naylor介绍了 BSP 树。他们指出,这种新的数据结构“可以替代十年前首次使用,但由于一些问题未得到广泛发展的方案”(即前文 1969 年美国空军相关研究中的方案)。[^3] BSP 树一经生成,即可用于确定场景中物体的优先级顺序。 -三人在论文中详细明了地解释了 BSP 树的工作原理。在本文,我将尝试使用更加通俗具体的语言,介绍给大家。 +三人在论文中对 BSP 树的工作原理给出了相当可读的解释。但在本文,我将尝试使用更加通俗的语言,介绍给大家。 首先,在场景中选定一个多边形,将该多边形所在的平面作为分割平面。同时,该多边形充当树的根节点。场景中剩下的多边形会分散在分割平面的两侧。位于分割表面“前方”或者与分割平面相交后位于“前”半部分的多边形落在了根节点左侧的左子树上;位于分割表面“后方”或者与分割平面相交后位于“后”半部分的多边形落在了右子树上。接着,递归重复这一过程:在左子树和右子树上各选定一个多边形,作为各自空间新的分割平面,继而二分出来更多的子空间和子树。等到全部的多边形均选定之后,二叉空间分割也就结束了。 -由后向前将场景中的几何图形进行渲染就是所谓的“画家算法”。因为在绘制时,距离摄像机较远的多边形会被距离摄像机较近的多边形所覆盖,借此正确进行渲染任务。如果想要实现这一算法,必须按中序遍历 BSP 树,左右子树的渲染顺序由摄像机视角与节点所在分割平面的位置关系决定的。因此,针对树上的每个节点,首先渲染距离分割平面较“远”一侧的所有多边形,接着是位于平面上的多边形,最后是距离平面较“近”一侧的所有多边形——“远”与“近”相对于摄像机视角而言。根据前文,距离分割平面较远一侧的多边形无法遮挡近侧的物体,所以这种方法可以解决 VSD 问题。 +假设你想由后向前将场景中的几何图形进行渲染。(这就是所谓的“画家算法”。因为在绘制时,距离摄像机较远的多边形会被距离摄像机较近的多边形所覆盖,借此正确进行渲染任务。)如果想要实现这一算法,必须按顺序遍历 BSP 树,左右子树的渲染顺序由摄像机视角与节点所在分割平面的位置关系决定的。因此,针对树上的每个节点,首先渲染距离分割平面较“远”一侧的所有多边形,接着是位于平面上的多边形,最后是距离平面较“近”一侧的所有多边形 —— “远”与“近”相对于摄像机视角而言。根据前文,距离分割平面较远一侧的多边形无法遮挡近侧的物体,所以这种方法可以解决 VSD 问题。 下图表示一个简单的 2D 场景的 BSP 树的构造与遍历过程。在 2D 中,分割平面变成了分割线,但就基本原理而言,与复杂的 3D 场景并无二质。 -![][6] _第一步:根分割线落在 D 墙上,将剩下的几何图形分为两组。_ +![][6] -![][7] _第二步:继续分割位于 D 墙两侧的空间。C 墙是其中一侧的唯一一堵墙壁,因此无需再分。另一侧,B 墙形成新的分割平面。因为 A 墙与新的分割平面相交,所以必须将其分割为两堵墙。_ +第一步:根分割线落在 D 墙上,将剩下的几何图形分为两组。 -![][8] _第三步:参照右上方视角,由后向前对墙壁进行排序,对执行画家算法很有帮助。这就是树的中序遍历过程。_ +![][7] -福克斯、凯德姆以及内勒多次强调了 BSP 树的优势:无需重复构建。可能有些难以置信,但实际上无论摄像机视角位于何处,场景的渲染只需一棵 BSP 树。只要场景中的多边形没有移动,BSP 树就不会失效。因此,BSP 树在实时渲染任务中非常实用——构建树时的所有艰巨任务都可以在渲染工作开展之前完成。 +第二步:继续分割位于 D 墙两侧的空间。C 墙是其中一侧的唯一一堵墙壁,因此无需再分。另一侧,B 墙形成新的分割平面。因为 A 墙与新的分割平面相交,所以必须将其分割为两堵墙。 -同时,三人也提到了一项需要进一步深入研究的问题:究竟怎样才能构建出一棵“高质量的” BSP 树?BSP 树的质量取决于用作分割平面的多边形的选择。我在前文跳过了这一问题,不过如果用作分割平面的多边形与其他多边形相交,那么为了避免 BSP 算法失效,必须将相交的多边形一分为二,这样两部分就可以分在不同的空间。但是如果这种现象反复出现,BSP 树的构建势必会大幅增加场景中多边形的数量。 +![][8] -内勒后来在其 1993 年的论文《构建高质量的分割树Constructing Good Partitioning Trees》中提及这一问题。与卡马克一同建立 id Software 的约翰·罗梅洛指出,这篇论文是卡马克在 《毁灭战士》 中引入 BSP 树时读到的论文之一。[4][9] +第三步:参照右上方视角,由后向前对墙壁进行排序,对执行画家算法很有帮助。这就是树的中序遍历过程。 + +福克斯、凯德姆以及内勒多次强调了 BSP 树的优势:它只需构建一次。可能有些难以置信,但实际上无论摄像机视角位于何处,同一棵 BSP 树都可以用来渲染一个场景。只要场景中的多边形没有移动,BSP 树就不会失效。因此,BSP 树在实时渲染任务中非常实用 —— 构建树时的所有艰巨任务都可以在渲染工作开展之前完成。 + +同时,三人也提到了一项需要进一步深入研究的问题:究竟怎样才能构建出一棵“高质量的” BSP 树?BSP 树的质量取决于用作分割平面的多边形的选择。我在前文跳过了这一问题,不过如果用作分割平面的多边形与其他多边形相交,那么为了让 BSP 算法发挥作用,必须将相交的多边形一分为二,这样两部分就可以分在不同的空间。但是如果这种现象反复出现,BSP 树的构建势必会大幅增加场景中多边形的数量。 + +内勒后来在其 1993 年的论文《构建高质量的分割树》中提及这一问题。卡马克的同事,id Software 的共同创始人约翰·罗梅洛John Romero指出,这篇论文是卡马克在 《毁灭战士》 中引入 BSP 树时读到的论文之一。[^4] ### 《毁灭战士》中的 BSP 树 From 3080ab7213ef07b39767fc4e6a7e488d7d57dc99 Mon Sep 17 00:00:00 2001 From: FelixYFZ <33593534+FelixYFZ@users.noreply.github.com> Date: Mon, 15 Aug 2022 13:28:28 +0800 Subject: [PATCH 0759/3123] Update 20210709 What you need to know about security policies.md Translating by FelixYFZ --- .../20210709 What you need to know about security policies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210709 What you need to know about security policies.md b/sources/tech/20210709 What you need to know about security policies.md index 43920a4927..7e4c981e53 100644 --- a/sources/tech/20210709 What you need to know about security policies.md +++ b/sources/tech/20210709 What you need to know about security policies.md @@ -6,7 +6,7 @@ [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) - +Translating by FelixYFZ What you need to know about security policies ====== Learn about protecting your personal computer, server, and cloud systems From 7e405f68ad3ea2efed09da3179dde039629cec8d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 15 Aug 2022 15:12:47 +0800 Subject: [PATCH 0760/3123] RP @Veryzzj https://linux.cn/article-14932-1.html --- ...x tips for using cron to schedule tasks.md | 189 ++++++++++++++++++ ...x tips for using cron to schedule tasks.md | 183 ----------------- 2 files changed, 189 insertions(+), 183 deletions(-) create mode 100644 published/20211115 Linux tips for using cron to schedule tasks.md delete mode 100644 translated/tech/20211115 Linux tips for using cron to schedule tasks.md diff --git a/published/20211115 Linux tips for using cron to schedule tasks.md b/published/20211115 Linux tips for using cron to schedule tasks.md new file mode 100644 index 0000000000..18f7eb0335 --- /dev/null +++ b/published/20211115 Linux tips for using cron to schedule tasks.md @@ -0,0 +1,189 @@ +[#]: subject: "Linux tips for using cron to schedule tasks" +[#]: via: "https://opensource.com/article/21/11/cron-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lujun9972" +[#]: translator: "Veryzzj" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14932-1.html" + +使用 cron 定时任务的小技巧 +====== + +> 通过使用这个简单而强大的 Linux 命令行工具,来安排备份、文件清理以及其他任务。 + +![](https://img.linux.net.cn/data/attachment/album/202208/15/151143fjdses6bdj2nj1j5.jpg) + +在计算机上让任务按照有规律并且可预测的时间表运行很重要。作为人类,我们有时会因为分心、脑子里想太多,或是度假而记不住要做的事情。计算机真的很擅长按计划做事,但在计算机采取行动之前,人类必须对计算机进行编程。 + +在某种程度上,cron 系统是编程的初级简单入门。通过编辑一个文件就可以让计算机做你想让它做的事。你甚至不需要知道文件保存在哪里。只需键入一个简单的命令,输入你希望电脑遵循的 “配方”,并保存。从那时起,计算机会在指定时间执行你的指令,直到被告知停止。 + +从设计上来看,cron 不是一个复杂的系统。这里有一些你需要了解的内容。 + +### cron 是什么? + +cron 命令在 Linux 和 Unix 中无处不在,而且它经常被模仿和重塑,以至于它几乎成了按计划发生的事情的一个通用术语。它是自动化的一种形式,尽管有不同的实现方式(比如 Dillon's cron、Vixie's cron、chrony 和其他),以及像 anacron 和 systemd 定时器这样的变化,但其语法和工作流程几十年来一直保持着基本一致。 + +cron 在一个 “假脱机spool” 系统上工作,像打印机和电子邮件一样。如果不你知道打印机和电子邮件使用假脱机也没关系,因为假脱机文件的意义在于,你不需要想太多。在 Linux 系统中,`/var/spool` 目录被设计为重要但低级的文件的中心枢纽,用户不需要直接与之交互。 在 `/var/spool` 中管理的一个假脱机是 cron 表(简称为 “crontab”)。 包括你在内的每个用户在 Linux 系统中都有一个 crontab。用户可以编辑、查看和删除自己的 crontab。除此之外,用户可以使用 crontab 来安排任务。cron 系统监控 crontab,并确保一个 crontab 中列出的任何工作都能在其指定时间执行。 + +### 编辑 cron 设置 + +你可以使用 `crontab` 命令和 `-e`(代表“编辑”)选项来编辑你的 crontab。默认情况下,大多数系统会调用 `vim` 文本编辑器。如果你和我一样,不使用 Vim,那么你可以在 `~/.bashrc` 文件中为自己设置一个不同的编辑器。我把我的设置为 Emacs,但你也可以试试 [Nano][4]、[Kate][5],或者任何你喜欢的编辑器。`EDITOR` 环境变量定义了你在终端使用的文本编辑器,而 `VISUAL` 变量定义了你在图形模式下使用的编辑器: + +``` +export EDITOR=nano +export VISUAL=kate +``` + +更新设置后刷新你的 shell 会话: + +``` +$ source ~/.bashrc +``` + +现在你可以用喜欢的编辑器编辑 crontab: + +``` +$ crontab -e +``` + +#### 为任务执行安排时间 + +cron 系统本质上是一个日历系统。可以通过五个不同的属性告诉 cron 需要让一个任务多长时间运行一次:分、时、日、月、星期。这些属性的顺序是固定的,并且不一定是直观的,你可以把它们看作是过滤器或掩码。默认情况下,你可以理解为所有东西都被设置为“总是”或者“每一个”。此命令将在全年的每一天每小时每分钟运行 `touch /tmp/hello`: + +``` +* * * * * touch /tmp/hello +``` + +可以通过设置每个属性的具体定义来限制这个包罗万象的时间安排表。使任务在每个小时的 30 分钟时运行,将分钟设置为 `30`: + +``` +30 * * * * touch /tmp/hello +``` + +可以通过一个具体的小时来进一步约束这个指令。使任务在每个凌晨 3:30 运行: + +``` +30 3 * * * touch /tmp/hello +``` + +你也可以让这个任务只在每个月的第一天运行: + +``` +30 3 1 * * touch /tmp/hello +``` + +你可以用 `1` 至 `12` 表示 1 至 12 月来设置月份,用 `0` 至 `6` 表示周日至周六来设置星期。这项任务在 4 月份的周一的 3:15 运行: + +``` +15 3 * 4 1 touch /tmp/hello +``` + +### 设置增量 + +所有这些设置都与一个固定时间 _完全_ 匹配。使用 cron 符号设置可以在特定时间段后运行任务,例如,每 15 分钟运行一个任务: + +``` +*/15 * * * * touch /tmp/hello +``` + +每三天在上午 10 点运行任务: + +``` +* 10 */3 * * touch /tmp/hello +``` + +每 6 小时运行一次任务: + +``` +* */6 * * * touch /tmp/hello +``` + +### Cron 速记符 + +现代的 cron 实现已经为常见的时间安排表添加了方便的速记符,包括: + +* `@hourly`:每小时 +* `@daily`:每天 +* `@weekly`:每周 +* `@monthly`:每月 +* `@yearly` 或 `@annually`:每年 + +### 列出 cron 任务 + +使用 `crontab` 命令,查看计划中的 cron 任务列表: + +``` +$ crontab -l +15 3 * 4 1 touch /tmp/hello +``` + +### 删除一个 crontab + +当一个 crontab 任务不需要时,可以使用 `-r` 选项来删除它: + +``` +$ crontab -r -i +``` + +`-i` 选项代表 _交互式_。它在删除文件之前会提示你进行确认。 + +### Cron 可以做什么 + +知道如何使用 cron 是一回事,但但知道它的用途是另一回事。经典用例就是备份计划。如果你的电脑一天中大部分时间都是开着的,或者整天整夜地开着,那么可以为重要分区进行例行备份。我会在每天凌晨 3 点在主要数据分区上运行一个名为 `rdiff-backup` 的备份程序: + +``` +$ crontab -l | grep rdiff +* 3 * * * rdiff-backup /data/ /vault/ +``` + +另一个常见的用途是系统维护。在我的 Slackware 桌面上,每周五下午会更新本地版本库目录: + +``` +$ crontab -l | grep slack +* 14 * * 5 sudo slackpkg update +``` + +我还会每 3 天在 15:00 运行一个 Ansible 脚本来 [清理我的下载文件夹][6] : + +``` +$ crontab -l | grep ansible +* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml +``` + +有一些重复数据删除脚本、文件大小和 `/tmp` 目录的监视器、照片调整器、文件移动工具以及很多琐碎的任务,你可以安排在后台运行,以帮助保持系统不受干扰。有了 cron,计算机可以以我希望我的实体公寓能够做到的方式来照顾自己。 + +### 记住 cron 的设置 + +除了想明白你为什么需要 cron 之外,根据我的经验,cron 最难的事情是记住它的语法。重复这句话给自己听,反反复复,直到你记牢它: + +> 分、时、日、月、星 +> +> 分、时、日、月、星 +> +> 分、时、日、月、星 + +更好的做法是,去 [下载我们免费的速查表][7] ,这样当你最需要它时,它触手可及! + +> **[Cron 速查表][7]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/11/cron-linux + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[wxy](https://github.com/wxy) + +本文由 [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/linux_keyboard_desktop.png?itok=I2nGw78_ "Linux keys on the keyboard for a desktop computer" +[2]: https://opensource.com/article/21/2/linux-automation +[3]: https://opensource.com/article/20/7/systemd-timers +[4]: https://opensource.com/article/20/12/gnu-nano +[5]: https://opensource.com/article/20/12/kate-text-editor +[6]: https://opensource.com/article/21/9/keep-folders-tidy-ansible +[7]: https://opensource.com/downloads/linux-cron-cheat-sheet diff --git a/translated/tech/20211115 Linux tips for using cron to schedule tasks.md b/translated/tech/20211115 Linux tips for using cron to schedule tasks.md deleted file mode 100644 index 81ccbfa80a..0000000000 --- a/translated/tech/20211115 Linux tips for using cron to schedule tasks.md +++ /dev/null @@ -1,183 +0,0 @@ -[#]: subject: "Linux tips for using cron to schedule tasks" -[#]: via: "https://opensource.com/article/21/11/cron-linux" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lujun9972" -[#]: translator: "Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " -使用 cron 定时任务的 Linux 小技巧 -====== - -通过使用这个简单而强大的 Linux 命令行工具,来安排备份、文件清理以及其他任务。下载我们新版 cron 速查表。 -![Linux keys on the keyboard for a desktop computer][1] - -在计算机上让任务按照有规律并且可预测的时间表运行很重要。作为人类,我们有时会因为分心、脑子里想太多或是度假而记不住要做的事情。计算机真的很擅长按计划做事,但在计算机采取行动之前,人类必须对计算机进行编程。 - -在某种程度上,`cron`系统是编程的初级简单入门。通过编辑一个文件就可以让计算机做你想让它做的事。你甚至不需要知道文件保存在哪里。只需键入一个简单的命令,输入你希望电脑遵循的 “recipe”,并保存。从那时起,计算机会在指定时间执行你的指令,直到被告知停止。 - -从设计上来看,`cron`不是一个复杂的系统。这里有一些你需要了解的内容。 - -### cron 是什么? - -Cron 在一个 ”假脱机“系统上工作,像打印机和电子邮件一样。如果不你知道打印机和电子邮件使用假脱机也没关系,因为假脱机文件的意义在于,你不需要想太多。在 Linux 系统中,`/var/spool`目录被设计为重要但低级的文件的中心枢纽,用户不需要直接与之交互。 在`/var/spool`中管理的一个假脱机是 `cron`表或简称“crontab”。 包括你在内的每个用户在 Linux 系统中都有一个 crontab。用户可以编辑、查看和删除自己的 crontab。除此之外,用户可以使用 crontab 来安排任务。`cron`系统监控 crontabs,并确保一个 crontab 中列出的任何工作都能在其指定时间执行。 - -### 编辑 cron 设置 - -你可以使用`crontab`命令和`-e`(代表_edit_)选项来编辑你的 contab。默认情况下,大多数系统会调用`vim`文本编辑器。 如果你和我一样,不使用Vim,那么你可以在`~/.bashrc`文件中为自己设置一个不同的编辑器。我把我的设置为Emacs,但你也可以试试[Nano][4]、[Kate][5],或者任何你喜欢的编辑器。**EDITOR**环境变量定义了你在终端使用的文本编辑器,而**VISUAL**变量定义了你在图形模式下使用的编辑器: - -``` -export EDITOR=nano -export VISUAL=kate -``` - -更新设置后刷新你的shell会话: - -``` -`$ source ~/.bashrc` -``` - -现在你可以用喜欢的编辑器编辑 crontab: - -``` -`$ crontab -e` -``` - -#### 为任务执行安排时间 - - `cron`系统本质上是一个日历系统。可以通过五个不同的属性告诉`cron` 需要让一个任务多长时间运行一次:分、时、日、月、工作日。这些属性的顺序是固定的并且不一定是直观的,你可以把它们看作是过滤器或掩码。默认情况下,你可以理解为所有东西都被设置为_always_或者_every_。此命令将在全年的每一天每小时每分钟运行`touch /tmp/hello`: - -``` -`* * * * * touch /tmp/hello` -``` - -You can restrict this all-encompassing schedule by setting specific definitions for each attribute.可以通过设置每个属性的具体定义来限制这个包罗万象的时间安排表。使任务在每个小时的30分钟标志运行,将分钟设置为**30**: - -``` -`30 * * * * touch /tmp/hello` -``` - -You can further constrain this instruction with a specific hour. This job runs at 3:30 AM every morning: 可以通过一个具体的小时来进一步约束这个指令。使任务在每个凌晨3:30运行: - -``` -`30 3 * * * touch /tmp/hello` -``` - -你也可以让这个任务只在每个月的第一天运行: - -``` -`30 3 1 * * touch /tmp/hello` -``` - -你可以用1至12表示1至12月来设置月份,用0至6表示周日至周六来设置日。这项任务在4月份的周一的3:15运行: - -``` -`15 3 * 4 1 touch /tmp/hello` -``` - -### 设置增量 - -所有这些设置都与一个固定时间_完全_匹配。使用 `cron` 符号设置在特定时间段后运行任务,例如,每15分钟运行一个任务: - -``` -`*/15 * * * * touch /tmp/hello` -``` - -每三天在上午10点运行任务: - -``` -`* 10 */3 * * touch /tmp/hello` -``` - -每六小时运行一次任务: - -``` -`* */6 * * * touch /tmp/hello` -``` - -### Cron 速记 - -现代的 `cron`实现已经为常见的时间安排表添加了方便的速记,包括: - -* `@hourly` -* `@daily` -* `@weekly` -* `@monthly` -* `@yearly or @annually` - -### 列表中的 cron 任务 - -使用`crontab`命令,查看计划中的`cron`任务列表: - -``` -$ crontab -l -15 3 * 4 1 touch /tmp/hello -``` - -### 删除一个 crontab - -当用完一个crontab后,可以使用`-r`选项来删除它: - -``` -`$ crontab -r -i` -``` - -`-i`选项代表_交互式_。它在删除文件之前会提示你进行确认。 - -### Cron 可以做什么 - -知道如何使用 `cron`是一回事,但但知道它的用途是另一回事。经典用例就是备份计划。如果你的电脑一天中大部分时间都是开着的,或者整天整夜地开着,那么可以为重要分区进行例行备份。我会在每天凌晨3点在主要数据分区上运行一个名为`rdiff-backup`的备份程序: - -``` -$ crontab -l | grep rdiff -* 3 * * * rdiff-backup /data/ /vault/ -``` - -另一个常见的用途是系统维护。在我的 Slackware 桌面上,每周五下午会更新本地版本库目录: - -``` -$ crontab -l | grep slack -* 14 * * 5 sudo slackpkg update -``` - -我还会每三天在15:00运行一个Ansible脚本来 [清理我的下载文件夹][6] : - -``` -$ crontab -l | grep ansible -* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml -``` - -有一些重复数据删除脚本、文件大小和`/tmp`目录监视器、照片调整器、文件移动器以及很多琐碎的任务,你可以安排在后台运行,以帮助保持系统不受干扰。有了 `cron`,计算机就能以我只希望我的公寓能达到的程度进行自我管理。 - -### 记住 cron 的设置 - -除了想明白你为什么需要 `cron`之外,根据我的经验, `cron`最难的事情是记住它的语法。重复这句话给自己听,反反复复,直到你记牢它: - -_Minutes, hours, date, month, weekday._ - -_Minutes, hours, date, month, weekday._ - -_Minutes, hours, date, month, weekday._ - -更好的做法是,去 [下载我们免费的速查表][7] ,这样当你最需要它时,它触手可及! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/11/cron-linux - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[Veryzzj](https://github.com/Veryzzj) -校对:[校对者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/linux_keyboard_desktop.png?itok=I2nGw78_ "Linux keys on the keyboard for a desktop computer" -[2]: https://opensource.com/article/21/2/linux-automation -[3]: https://opensource.com/article/20/7/systemd-timers -[4]: https://opensource.com/article/20/12/gnu-nano -[5]: https://opensource.com/article/20/12/kate-text-editor -[6]: https://opensource.com/article/21/9/keep-folders-tidy-ansible -[7]: https://opensource.com/downloads/linux-cron-cheat-sheet From b679f27f4de758327b33336e2be69546e8ff8aa2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 15 Aug 2022 15:46:31 +0800 Subject: [PATCH 0761/3123] ALL @wxy https://linux.cn/article-14933-1.html --- ...ab Environment and New VirtualBox Image.md | 96 ++++++++++++++++++ ...ab Environment and New VirtualBox Image.md | 98 ------------------- 2 files changed, 96 insertions(+), 98 deletions(-) create mode 100644 published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md delete mode 100644 sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md diff --git a/published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md b/published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md new file mode 100644 index 0000000000..9f6ac7ef1f --- /dev/null +++ b/published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md @@ -0,0 +1,96 @@ +[#]: subject: "Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image" +[#]: via: "https://news.itsfoss.com/kali-linux-2022-3-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lujun9972" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14933-1.html" + +Kali Linux 2022.3 发布 +====== + +> Kali Linux 2022.3 在引入了新的 VirtualBox 镜像格式的同时,也使测试变得更加方便。不要忘了试试新的工具! + +![](https://news.itsfoss.com/wp-content/uploads/2022/08/kali-2022-3.jpg) + +Kali Linux 在 2022 年的第三次升级中带着激动人心的新内容回来了。 + +像往常一样,你可以期待新的工具和全面的改进。此外,还有一些关键的亮点,包括新的 **测试实验室环境** 和 **VirtualBox 镜像**。 + +在这里,让我给你介绍一下这个版本的细节。 + +### Kali Linux 2022.3 有什么新内容? + +Kali Linux 2022.3 的发布标志着他们开始启用了 **新的 Discord 服务器**,使社区能够聚集在一起,谈论关于 Kali Linux 的事情。 + +除了社区有了 Discord 服务器之外,应该引起你对升级的关注的事情包括: + + * 一个便于测试的新测试实验室环境 + * 开放 kali-tools 资源库,以供社区提交 + * NetHunter 商店中的新软件 + * 一个新的 VirtualBox 镜像格式 + * 大量的新工具 + +### 测试实验室环境 + +Kali Linux 是为安全研究人员量身定做的,可以用于测试和学习。但是,为了增强体验,使任何人都能毫不费力地建立一个测试实验室,Kali Linux 现在增加了易于安装的软件包,如 [DVWA][1] 和 [Juice Shop][2]。 + +开发者还提到,在不久的将来会有更多的软件包。 + +### 新工具 + +新的升级包括了五个有趣的工具,它们是: + + * BruteShark(网络分析工具) + * DefectDojo(开源的应用程序漏洞工具) + * phpsploit(隐蔽的破解后应用框架) + * shellfire(利用命令注入漏洞) + * SprayingToolkit(密码攻击) + +你可以探索这些工具以了解更多信息。 + +### 增强的 VirtualBox 支持 + +虽然 Kali Linux 已经可以用于 VMware 和 VirtualBox,但现在为 VirtualBox 用户提供了一种新的镜像格式。 + +你现在可以下载用于 VirtualBox 的 VDI 磁盘镜像和 .vbox 元数据文件。它是原生的 VirtualBox 镜像格式,具有更好的压缩率,下载速度更快。 + +对于希望使用最新和最先进工具的用户,Kali Linux 提供了按周构建的虚拟机镜像,构建自其滚动分支。 + +此外,如果你需要构建你的自定义虚拟机镜像,Kali Linux 已经在 [GitLab][3] 上提供了一些脚本。 + +### 其他改进 + +Kali Linux 2022.3 增加了几个重要的升级。其中包括: + + * 针对树莓派设备的 Linux 内核 5.15 更新。 + * 针对 ARM 设备的技术改进。 + * 文档更新,有一些新页面。 + * 网络存储库的维护工作。 + * NetHunter 商店的大量更新,以及对即将到来的 Android 12 支持。 + +### 下载 Kali Linux 2022.3 + +你可以在其 [官方下载页面][4] 找到最新的 Kali Linux 2022.3 ISO,以及新的 VirtualBox 镜像文件和每周更新包。 + +> **[Kali Linux 2022.3][5]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kali-linux-2022-3-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][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/lujun9972 +[1]: https://www.kali.org/tools/dvwa/ +[2]: https://www.kali.org/tools/juice-shop/ +[3]: https://gitlab.com/kalilinux/build-scripts/kali-vm +[4]: https://www.kali.org/get-kali/ +[5]: https://www.kali.org/get-kali/#kali-platforms diff --git a/sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md b/sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md deleted file mode 100644 index a69443f2e8..0000000000 --- a/sources/news/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md +++ /dev/null @@ -1,98 +0,0 @@ -[#]: subject: "Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image" -[#]: via: "https://news.itsfoss.com/kali-linux-2022-3-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image -====== - -Kali Linux is back with exciting additions for its third upgrade in 2022. - -As usual, you can expect new tools and refinements across the board. In addition, there are a few key highlights, including a **new test lab environment** and a **VirtualBox image**. - -Here, let me give you more details on the release. - -### Kali Linux 2022.3: What’s New? - -Kali Linux 2022.3 release marks the start of their **new Discord server**, allowing the community to get together and chat all about Kali Linux. - -Along with the community getting a Discord server, things that should grab your attention for the upgrade include: - - * **A new test lab environment for easy testing.** - * **Opening kali-tools repository for community submissions.** - * **New releases in NetHunter store.** - * **A new VirtualBox image format.** - * **Bunch of new tools.** - - - -### Test Lab Environment - -Kali Linux is tailored for security researchers to test and learn. But, to enhance the experience and make it effortless for anyone to build a test lab, Kali Linux now adds easy-to-install packages like [DVWA][1], and [Juice Shop][2]. - -The developers also mention that there will be more packages available in the near future. - -### New Tools - -The new upgrade includes five interesting tools, they are: - - * **BruteShark** (Network Analysis Tool) - * **DefectDojo** (Open-source application vulnerability) - * **phpsploit** (Stealth post-exploitation framework) - * **shellfire** (Exploiting command injection vulnerabilities) - * **SprayingToolkit** (Password attacks) - - - -You can explore the tools to learn more about it. - -### Enhanced VirtualBox Support - -While Kali Linux was already available for VMware and VirtualBox, we now have a new image format for VirtualBox users. - -You can now download a **VDI** disk image and a **.vbox** metadata file for VirtualBox. It is the native format for VirtualBox images, and faster to download, considering a better compression ratio. - -For users looking to be on the latest and greatest, Kali Linux has made **weekly builds of VM images available**, built from its rolling branch. - -Additionally, if you need to build your custom VM images, Kali Linux has made some scripts available on [GitLab][3]. - -### Other Improvements - -Kali Linux 2022.3 adds several significant upgrades to the table. Some include: - - * Linux Kernel 5.15 update for Raspberry Pi devices. - * Technical improvements for ARM devices. - * Documentation updates with new pages. - * Maintenance work for network repository. - * Numerous updates to the NetHunter store along with imminent Android 12 support. - - - -### Download Kali Linux 2022.3 - -You can find the latest Kali Linux 2022.3 ISO on its [official download page][4], along with the new VirtualBox image file and weekly update packages. - -[Kali Linux 2022.3][5] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kali-linux-2022-3-release/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://www.kali.org/tools/dvwa/ -[2]: https://www.kali.org/tools/juice-shop/ -[3]: https://gitlab.com/kalilinux/build-scripts/kali-vm -[4]: https://www.kali.org/get-kali/ -[5]: https://www.kali.org/get-kali/#kali-platforms From 04dfb0b7beeec4f5a86c221dad383c9870f5a124 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 23:43:40 +0800 Subject: [PATCH 0762/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220815=20Try=20Asciidoc=20instead=20of=20Markdown.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220815 Try Asciidoc instead of Markdown.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 sources/tech/20220815 Try Asciidoc instead of Markdown.md diff --git a/sources/tech/20220815 Try Asciidoc instead of Markdown.md b/sources/tech/20220815 Try Asciidoc instead of Markdown.md new file mode 100644 index 0000000000..a3d979ea0e --- /dev/null +++ b/sources/tech/20220815 Try Asciidoc instead of Markdown.md @@ -0,0 +1,188 @@ +[#]: subject: "Try Asciidoc instead of Markdown" +[#]: via: "https://opensource.com/article/22/8/drop-markdown-asciidoc" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Try Asciidoc instead of Markdown +====== +Next time you write, use Asciidoc and Asciidoctor as alternatives to Markdown. + +![Person using a laptop][1] + +I'm a happy user of the XML-based [Docbook][2] markup language. To me, it's a precise, explicit, and detailed system that allows me to have contextual and domain-specific metadata in what I write. Best of all, though, it can be transformed (that's what XML users call it when XML is converted into another format) into nearly any format, including HTML, EPUB, FO for PDF, plain text, and more. With great power comes a lot of typing, though, and sometimes Docbook feels like it's surplus to requirements. Luckily, there's [Asciidoc][3], a system of writing plain text with the same markup-less feel of Markdown, but that transforms to Docbook to take advantage of its precision and flexibility. + +### Asciidoc rules + +Like Markdown, one of the goals of Asciidoc is that you don't really have to *learn* it. Instead, it aims to be intuitive and natural. You may well have written snippets of valid Asciidoc without realizing it if you've ever added a little style to a plain text document for readability. For instance, if you habitually separate paragraphs with a blank line, then you've written the equivalent of the HTML `

              ` or Docbook `` tag. It seems obvious, and yet in academia separating paragraphs with blank lines isn't generally done, so even this simple convention is technically markup. + +Here's the most common syntax. + +#### Text styles + +Text styles include the basics such as bold, italics, and code font. Most of the notation is relatively intuitive, with the possible exception of italics. + +***Bold*** + +*_Italics_* + +**_Bold and italic_** + +``Monospace or code`` + +#### Code + +Code is marked with backticks or by explicit declaration of a code block. + +``Monospace or code`` + +``` +[source,python] +---- +print('a whole code block') +---- +``` + +#### Headlines + +Headings are marked with leading equal signs (`=` ): + += Heading 1 (`

              ` ) + +== Heading 2 (`

              ` ) + +=== Heading 3 (`

              ` ) + +==== Heading 4 (`

              ` ) + +===== Heading 5 (`

              ` ) + +====== Heading 6 (`
              ` ) + +#### Links + +Hyperlinks favor the link first, followed by the word or phrase used to "disguise" the link as text. + +This is a [http://example.com[hyperlink][4]] that leads to the example.com site. + +I don't find this as elegant as Markdown's link notation, but then it's a lot more flexible. For instance, you can add attributes in Asciidoc links: + +This is a [https://example.com[link,role=external,window=_blank][5]] with the `target="_blank"` attribute set. + +#### Lots more + +Asciidoc also features internal links so you can link from one section to another, a standard for document headers, automatic table of content generation, the ability to include other documents within another, and much much more. + +But best of all, Asciidoc is actually *standardized*. Not everyone knows it, but the term "Markdown" doesn't refer to one markup-light language. Different organizations and groups regularly customize and alter Markdown for their own use, so when you use Markdown you really ought to verify *which* markdown you're meant to use. Many of the conventions you might have learned from one website using Markdown don't carry over to another site using Markdown. There's essentially no standard for Markdown, and that's resulted in such confusion that the [Commonmark.org][6] project has been formed in an attempt to assemble a standardized definition. + +Asciidoc was designed from the start with a standard definition, so the tool or website that claims to parse Asciidoc actually does parse all valid Asciidoc, because there's only one valid Asciidoc. + +### Asciidoc to anything + +The point of writing in a markup-light language like Asciidoc is to ensure predictability and consistency when text is parsed. You want a person to write a script, or to run an application someone else has written, to be able to transform your plain text into whatever format works best for them. Sometimes that's HTML (incidentally Markdown's native output format, and fallback language when there's something missing from its own syntax.) Other times it's an EPUB, or a PDF for printing, Docbook, a LibreOffice document, or any number of possible output formats. + +There are several tools to help you transform Asciidoc to another format. A popular command is [Asciidoctor][7], which you can install using your package manager. For instance, on Fedora, CentOS, or RHEL: + +``` +$ sudo dnf install asciidoctor +``` + +On Debian-based systems: + +``` +$ sudo apt install asciidoctor +``` + +Alternately, you can install it on any OS with Ruby: + +``` +$ gem install asciidoctor +``` + +Here's a simple example of an Asciidoc document, which you can create using any or even a word processor (like ) as long as you save the file as plain text. Most applications expect a plain text document to use the extension `.txt`, and while it's a convention use the extension `.adoc` for Asciidoc, it's not necessary. Asciidoctor doesn't require any special extension. + +``` += This is my example document + +It's not written in _Markdown_, nor _reStructured Text_. +This is *Asciidoc*. + +It can be transformed into nearly any format using the tool `Asciidoctor` and other similar parsers. +Try it for yourself! +``` + +To transform an Asciidoc document to HTML, run `asciidoctor` : + +``` +$ asciidoctor example.adoc +``` + +The file `example.adoc` is transformed into HTML5 by default, but you can use different backends to gain access to more formats. + +### From Asciidoc to XML + +My favourite is the Docbook backend, because it transforms my Asciidoc to Docbook XML, allowing me to use my existing Docbook toolchain (custom Makefiles, Apache FOP, `xsltproc`, `xmlto`, and so on) to complete my work: + +``` +$ asciidoctor --backend docbook5 example.adoc +``` + +This outputs Docbook XML. The final two built-in backends are `xhtml5` and `manpage`. + +### From Asciidoc to EPUB + +If you want to turn your writing into an ebook, you can install the EPUB3 backend: + +``` +$ gem install asciidoctor-epub3 +``` + +Transform your Asciidoc into EPUB: + +``` +$ asciidoctor-epub3 example.adoc +``` + +### From Asciidoc to PDF + +You can transform Asciidoc directly to PDF, too: + +``` +$ gem install asciidoctor-pdf +$ asciidoctor-pdf example.adoc +``` + +![Asciidoctor-pdf][8] + +Image by: + +(Seth Kenlon, CC BY-SA 4.0) + +### Who should use Asciidoc + +Asciidoc is excellent for technical writers and writers who have precise requirements for how they want text to be organized and parsed. It's a clear and strictly defined markup format that eliminates the confusion of competing Markdown formats, and it transforms to all the major formats. Asciidoc is admittedly more verbose and possibly less intuitive than Markdown, but it's still just plain text so you can author on anything, and Asciidoctor makes processing easy. Next time you write a document for any purpose, consider trying Asciidoc. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/drop-markdown-asciidoc + +作者:[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/laptop_screen_desk_work_chat_text.png +[2]: https://opensource.com/article/17/9/docbook +[3]: http://asciidoc.org +[4]: http://example.com[hyperlink +[5]: https://example.com[link,role=external,window=_blank +[6]: http://commonmark.org +[7]: https://asciidoctor.org +[8]: https://opensource.com/sites/default/files/2022-08/asciidoc-pdf.webp From ce5b16e5409d1531a6bbea43e97d4d457958b78f Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 23:44:37 +0800 Subject: [PATCH 0763/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220815=20How=20ODT=20files=20are=20structured.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220815 How ODT files are structured.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20220815 How ODT files are structured.md diff --git a/sources/tech/20220815 How ODT files are structured.md b/sources/tech/20220815 How ODT files are structured.md new file mode 100644 index 0000000000..1e8ef0c0f5 --- /dev/null +++ b/sources/tech/20220815 How ODT files are structured.md @@ -0,0 +1,117 @@ +[#]: subject: "How ODT files are structured" +[#]: via: "https://opensource.com/article/22/8/odt-files" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How ODT files are structured +====== +Because OpenDocument Format (ODF) are based on open standards, you can use other tools to examine them and even extract data from them. You just need to know where to start. + +Word processing files used to be closed, proprietary formats. In some older word processors, the document file was essentially a memory dump from the word processor. While this made for faster loading of the document into the word processor, it also made the document file format an opaque mess. + +Around 2005, the Organization for the Advancement of Structured Information Standards (OASIS) group defined an open format for office documents of all types, the Open Document Format for Office Applications (ODF). You may also see ODF referred to as simply "OpenDocument Format" because it is an open standard based on the [OpenOffice.org's][4] XML file specification. ODF includes several file types, including ODT for OpenDocument Text documents. There's a lot to explore in an ODT file, and it starts with a zip file. + +### Zip structure + +Like all ODF files, ODT is actually an XML document and other files wrapped in a zip file container. Using zip means files take less room on disk, but it also means you can use standard zip tools to examine an ODF file. + +I have an article about IT leadership called "Nibbled to death by ducks" that I saved as an ODT file. Since this is an ODF file, which is a zip file container, you can use unzip from the command line to examine it: + +``` +$ unzip -l 'Nibbled to death by ducks.odt' +Archive: Nibbled to death by ducks.odt +Length Date Time Name +39 07-15-2022 22:18 mimetype +12713 07-15-2022 22:18 Thumbnails/thumbnail.png +915001 07-15-2022 22:18 Pictures/10000201000004500000026DBF6636B0B9352031.png +10879 07-15-2022 22:18 content.xml +20048 07-15-2022 22:18 styles.xml +9576 07-15-2022 22:18 settings.xml +757 07-15-2022 22:18 meta.xml +260 07-15-2022 22:18 manifest.rdf +0 07-15-2022 22:18 Configurations2/accelerator/ +0 07-15-2022 22:18 Configurations2/toolpanel/ +0 07-15-2022 22:18 Configurations2/statusbar/ +0 07-15-2022 22:18 Configurations2/progressbar/ +0 07-15-2022 22:18 Configurations2/toolbar/ +0 07-15-2022 22:18 Configurations2/popupmenu/ +0 07-15-2022 22:18 Configurations2/floater/ +0 07-15-2022 22:18 Configurations2/menubar/ +1192 07-15-2022 22:18 META-INF/manifest.xml +970465 17 files +``` + +I want to highlight a few elements of the zip file structure: + +1. The `mimetype` file contains a single line that defines the ODF document. Programs that process ODT files, such as a word processor, can use this file to verify the `MIME` type of the document. For an ODT file, this should always be: + +``` +application/vnd.oasis.opendocument.text +``` + +1. The `META-INF` directory has a single `manifest.xml` file in it. This file contains all the information about where to find other components of the ODT file. Any program that reads ODT files starts with this file to locate everything else. For example, the `manifest.xml` file for my ODT document contains this line that defines where to find the main content: + +``` + +``` + +1. The `content.xml` file contains the actual content of the document. +2. My document includes a single screenshot, which is contained in the `Pictures` directory. + +### Extracting files from an ODT file + +Because the ODT document is just a zip file with a specific structure to it, you can extract files from it. You can start by unzipping the entire ODT file, such as with this unzip command: + +``` +$ unzip -q 'Nibbled to death by ducks.odt' -d Nibbled +``` + +A colleague recently asked for a copy of the image that I included in my article. I was able to locate the exact location of any embedded image by looking in the `META-INF/manifest.xml` file. The `grep` command can display any lines that describe an image: + +``` +$ cd Nibbled +$ grep image META-INF/manifest.xml + + Date: Mon, 15 Aug 2022 23:45:35 +0800 Subject: [PATCH 0764/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220815=20How=20To=20Check=20Disk=20Space=20Usage?= =?UTF-8?q?=20In=20Linux=20Using=20Ncdu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ck Disk Space Usage In Linux Using Ncdu.md | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 sources/tech/20220815 How To Check Disk Space Usage In Linux Using Ncdu.md diff --git a/sources/tech/20220815 How To Check Disk Space Usage In Linux Using Ncdu.md b/sources/tech/20220815 How To Check Disk Space Usage In Linux Using Ncdu.md new file mode 100644 index 0000000000..e16645b531 --- /dev/null +++ b/sources/tech/20220815 How To Check Disk Space Usage In Linux Using Ncdu.md @@ -0,0 +1,220 @@ +[#]: subject: "How To Check Disk Space Usage In Linux Using Ncdu" +[#]: via: "https://ostechnix.com/check-disk-space-usage-linux-using-ncdu/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Check Disk Space Usage In Linux Using Ncdu +====== +Ncdu - A disk usage analyzer with an ncurses interface. + +This guide explains what is **Ncdu**, how to install Ncdu in various Linux distributions and how to **use Ncdu to check disk space usage in Linux and Unix** operating systems with examples. + +### What Is Ncdu? + +Ncdu, acronym of **NC**urses  **D**isk **U**sage, is a curses-based version of the well-known ‘du’ command. It provides a fast way to see what directories are using the disk space. + +Even though there are plenty of tools and ways to analyze the disk usage in Linux, the developer of Ncdu utility is not satisfied with all of them. So, he developed Ncdu using **C** programming language with an ncurses interface. + +Ncdu is simple and fast disk usage analyzer which is used to find which directories or files are taking up more space either on a local or remote systems. + +Without further ado, let us go ahead and see how to install Ncdu in Linux and learn commonly used Ncdu commands with examples to check disk usage in Linux and Unix-like operating systems. + +### Install Ncdu In Linux + +**Ncdu** is available in the default repositories of most Linux distributions. So, you can install it using the distribution's default package manager. + +To install Ncdu in Alpine Linux: + +``` +$ sudo apk add ncdu +``` + +To install Ncdu in Arch Linux, EndevourOS, Manjaro Linux, run:: + +``` +$ sudo pacman -S ncdu +``` + +To install Ncdu on Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux: + +``` +$ sudo dnf install ncdu +``` + +In older RHEL-based systems, use `yum` instead `dnf` : + +``` +$ sudo yum install ncdu +``` + +To install Ncdu on SUSE, openSUSE: + +``` +$ sudo zypper in ncdu +``` + +To install Ncdu in Debian, Ubuntu, Linux Mint, Pop OS: + +``` +$ sudo apt install ncdu +``` + +### Check Disk Space Usage In Linux Using Ncdu + +Once installed, run Ncdu command without any options to analyze the disk space usage of your $HOME directory in your Linux box. + +``` +$ ncdu +``` + +This command will analyze your HOME directory. After analyzing, it will show you disk usage report, sorted in descending order. Larger items will be displayed on top. + +**Sample output:** + +![Check Disk Space Usage With Ncdu][1] + +Use UP/DOWN arrows (Or **k** and **j** in the keyboard) to move between items. + +Press **"i"** to view the details of the selected item. + +![Show Information About Selected Item][2] + +Press "i" again to close this window. + +To view the items inside the selected directory, press **"Right"** arrow or **ENTER** key. It will display the list of files and directories inside the selected directory. + +![View Items Inside A Directory][3] + +To go back to the parent directory, press **"Left"** arrow. + +#### Display Directory Size + +As I stated already, when we run Ncdu without any flags, it will show us the disk space usage of the HOME directory. We can also display size of a particular directory by specifying its actual path like below. + +``` +$ ncdu Downloads/ +``` + +To analyze entire root (/) file system, run: + +``` +$ sudo ncdu -x / +``` + +Here, **-x** indicates that only count files and directories on the same filesystem as the directory being scanned. It will avoid scanning the mounted devices. + +#### Run Ncdu In Quiet Mode + +By default, ncdu will update the output screen **10 times a second** while scanning the directory. This might consume more bandwidth if you are analyzing the disk usage of a remote system. + +Fortunately, this will be decreased to once every 2 seconds in **quiet mode**. We can use this feature to save bandwidth over remote connections. + +To run the ncdu in quiet mode, use **-q** flag as shown below. + +``` +$ ncdu -q +``` + +#### Save Results In A File + +Some times, you might want to save the the scanning report and view it later. In such cases, scan a directory and export the results in any archive format for later viewing like below. + +``` +$ ncdu -1xo- / | gzip >export.gz +``` + +This command will scan the HOME directory and save the scanning report in a file called **export.gz**. + +**Sample output:** + +``` +/usr/lib/locale/zh_CN.gbk/LC_MESSAGES/SYS_LC_MESSAGES 188375 files +``` + +You can view it later by running the following command: + +``` +$ zcat export.gz | ncdu -f- +``` + +It is also possible to export to a file and browse it once scanning is done: + +``` +$ ncdu -o- | tee export.file | ncdu -f- +``` + +#### Analyze Disk Usage Of Remote Linux Systems + +To scan a remote system, but browse through the files locally, run: + +``` +$ ssh -C ostechnix@192.168.1.60 ncdu -o- / | ncdu -f- +``` + +Here, + +* ostechnix is the user name of my remote system. +* 192.168.1.60 is the remote system's IP address. +* -C switch enables compression. + +To quit ncdu, press **q**. + +### Ncdu Keybindings + +Here is the list of available key options in ncdu utility. + +* up, k  - Move cursor up. +* down, j  - Move cursor down. +* Right arrow, ENTER key - Open selected directory. +* Left arrow, <, h  - Open parent directory. +* n - Sort by name (ascending/descending). +* s - Sort by size (ascending/descending). +* C - Sort by items (ascending/descending). +* d - Delete selected file or directory. +* t - Toggle dirs before files when sorting. +* g - Show percentage and/or graph. +* a - Toggle between apparent size and disk usage. +* c - Toggle display of child item counts. +* e - Show/hide hidden or excluded files. +* i - Show information about selected item. +* r - Recalculate the current directory. +* b - Spawn shell in current directory. +* q - Quit ncdu. + +For more details, read the man pages. + +``` +$ man ncdu +``` + +### Conclusion + +Now, you know how to analyze and track the disk space usage in Linux using Ncdu. Ncdu is a quite fast utility to check which directories are occupying most in space in your Linux system. + +If you find certain directory or file is consuming more space on your hard drive, you can delete or move them safely to another drive to free up the disk space. + +**Resource:** + +* [Ncdu website][4] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/check-disk-space-usage-linux-using-ncdu/ + +作者:[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/08/Check-Disk-Space-Usage-With-Ncdu.png +[2]: https://ostechnix.com/wp-content/uploads/2022/08/Show-Information-About-Selected-Item.png +[3]: https://ostechnix.com/wp-content/uploads/2022/08/View-Items-Inside-A-Directory.png +[4]: https://dev.yorhel.nl/ncdu From 57c1b4083f6903537fce4e61079a123f5a8bbfa1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 15 Aug 2022 23:47:21 +0800 Subject: [PATCH 0765/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220815=20Handling=20-apt-key=20is=20deprecated.=20?= =?UTF-8?q?Manage=20keyring=20files=20in=20trusted.gpg.d=20instead-=20in?= =?UTF-8?q?=20Ubuntu=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... trusted.gpg.d instead- in Ubuntu Linux.md | 256 ++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 sources/tech/20220815 Handling -apt-key is deprecated. Manage keyring files in trusted.gpg.d instead- in Ubuntu Linux.md diff --git a/sources/tech/20220815 Handling -apt-key is deprecated. Manage keyring files in trusted.gpg.d instead- in Ubuntu Linux.md b/sources/tech/20220815 Handling -apt-key is deprecated. Manage keyring files in trusted.gpg.d instead- in Ubuntu Linux.md new file mode 100644 index 0000000000..891bc5b77f --- /dev/null +++ b/sources/tech/20220815 Handling -apt-key is deprecated. Manage keyring files in trusted.gpg.d instead- in Ubuntu Linux.md @@ -0,0 +1,256 @@ +[#]: subject: "Handling “apt-key is deprecated. Manage keyring files in trusted.gpg.d instead” in Ubuntu Linux" +[#]: via: "https://itsfoss.com/apt-key-deprecated/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Handling “apt-key is deprecated. Manage keyring files in trusted.gpg.d instead” in Ubuntu Linux +====== + +Installing a package from an [external repository in Ubuntu][1] consists of three steps: + +* Adding the repository’s GPG key to the system +* Adding the external repository to the system +* Installing the package from this external repository + +But lately, you would notice a message about ‘apt-key being deprecated’ when you try installing packages from third-party repositories. + +Take the [installation of Spotify on Ubuntu][2] for example. When I add the GPG key to the system, it complains. + +``` +curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add - +[sudo] password for abhishek: +Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). +OK +``` + +It’s a warning, not an error. It doesn’t stop the process. The GPG key is added to your system and you can continue adding the external repository. + +However, it will create further warnings (again, not errors). In the example here, if I continue adding the external repository, it shows me this message. + +``` +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +All packages are up to date. +W: http://repository.spotify.com/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. +``` + +It doesn’t stop the installation of the package, though. In the example, I was able to install the spotify-client package afterward. + +If it’s not an error, do you need to be worried about it? Probably not. Not now, at least. However, it would be better to understand future changes coming to this external repo mechanism. + +### Understanding the apt-key deprecation and trusted.gpg issue + +There are two parts to this message: + +* apt-key is deprecated +* Manage keyring files in trusted.gpg.d + +I’ll come to both points in a moment. + +When you add the keys (.gpg or .asc) of a repository, your system trusts the packages (signed with that key) coming from the repository. If you don’t add the key of a repository, your system won’t allow installing packages from it. + +For a long time, the apt-key command line tool has been used for managing the repository keys to Debian and other distros using apt package management. You can add, list, update, and remove the keys with this command. + +#### Problem with the way apt-key works + +It works by adding the keys to the /etc/apt/trusted.gpg file. The apt package manager trusts the keys inside this file. + +Sounds good, right? However, it was discovered to be a potential security issue. Your system trusts those keys completely, not just for the packages you added them for. + +Imagine that you added keys to repository A to get package AA and to repo B to get package BB. Your system will gladly accept package BB signed by the key of repo A. It cannot relate the keys to their respective packages. + +Now, it’s easier said than done because there are other factors in play like apt policy and preferences but it opens an attack surface. + +This is the reason why apt-key is being deprecated. That’s the first part of the warning message. + +#### Ubuntu wants you to separate GPG keys + +Coming to the second part of the warning message; “Manage keyring files in trusted.gpg.d”. + +Ubuntu doesn’t want you to add all the signature keys in the single /etc/apt/trusted.gpg file. It suggests using a separate file that are located in the /etc/apt/trusted.gpg.d directory. + +It’s the same mechanism it uses for the sources list where external repository sources are listed in their own file under /etc/apt/sources.list.d instead of keeping everything under the /etc/apt/sources.list file. It makes managing the external repos a bit easier. + +This means that instead of using the apt-key in this fashion: + +``` +curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add - +``` + +You should use it like this: + +``` +curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/spotify.gpg +``` + +Which is basically adding the key to its dedicated file under /etc/apt/trusted.d directory. Ubuntu won’t complain anymore. + +Although this doesn’t fix the original concern of cross-signing the packages. The [proper way][3] to fix is to add the key location to the sources list file of the repository. I’ll discuss both methods in the next section. + +### Solution 1: Adding the GPG keys to the system to keep Ubuntu happy (relatively easier but not proper way) + +Unfortunately, there is no easy way around this. You’ll have to use the command line and you should figure out correct parameters. There is no ‘run this and you are done’ thing here. + +The idea here is to add the GPG key under its dedicated file in /etc/apt/trusted.gpg.d. + +There are couple of scenarios here. + +#### You have already added the key in /etc/apt/trusted.gpg file + +In this case, list the keys with this command: + +``` +sudo apt-key list +``` + +There should be a way to identify the repository. You should have its name or developers name. + +In my case, I am handling the Spotify repository: + +``` +[email protected]:~$ sudo apt-key list +[sudo] password for abhishek: +Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). +/etc/apt/trusted.gpg +-------------------- +pub rsa4096 2021-10-27 [SC] [expires: 2023-01-20] + F9A2 1197 6ED6 62F0 0E59 361E 5E3C 45D7 B312 C643 +uid [ unknown] Spotify Public Repository Signing Key <[email protected]> +``` + +Copy the last 8 characters of the second line under pub. In my case, it is `B312 C643`. You’ll have to remove the space between the numbers and use it like this: + +``` +sudo apt-key export B312C643 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/spotify.gpg +``` + +The output file could be named anything but it is better to use a name that is associated with the package or repository. + +The `gpg --dearmour` part is important because the mechanism expects you to have the keys in binary format. + +#### You haven’t added the external keys yet + +Well, in that case, get the keys and add it to your trsuted.gpg.d directory. + +If only it was that simple. The keys can be in several file formats like .asc, .gpg etc. And then those keys can be [armored][4]. + +An armored GPG file is encrypted but shows random text instead of being in binary format. An armored GPG key starts with: + +``` +-----BEGIN PGP PUBLIC KEY BLOCK----- +``` + +But your GPG key should not be ‘armored’. It should be in binary format (if you try to read it, it shows gibberish). + +``` +ay`�����?o;���Lh����҇�^j?�,4�@8�Xh�]�j�F��Q��W�ă|,%C�n��nG�t���׺���b%/Ka����i��� +``` + +This is why it is important to use `sudo gpg --dearmour` while handling the keys. If the added keys are not in the binary format, you’ll start seeing this message in the output of apt update command: + +``` +The key(s) in the keyring /etc/apt/trusted.gpg.d/spotify.gpg are ignored as the file has an unsupported filetype. +``` + +You may also [use the file command][5] to check if the key is armored or not. + +``` +file repo-key.gpg +``` + +and if the output is like ‘PGP public key block’, it is armored file and needs to be converted to binary. + +``` +[email protected]:~$ file /etc/apt/trusted.gpg.d/spotify.gpg +/etc/apt/trusted.gpg.d/spotify.gpg: PGP public key block Public-Key (old) +``` + +So, the steps here involve: + +* Downloading the keys and checking if it is armored or not +* If the file is armored, it needs to be dearmored in binary format +* And then the dearmored key is added to its own file under /etc/apt/trusted.gpg.d directory + +You may combine all in one single command like this given that you know that it is an armored key. + +``` +curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/spotify.gpg +``` + +As I mentioned earlier, this is relatively easier but not the proper way. What’s the proper way? Let’s discuss that. + +### Solution 2: Adding the GPG keys to the system to the proper way + +This is similar to what you have seen in the previous section but it has one more step of adding the key’s location to the repository’s sources list file. + +* Downloading the keys and checking if it is armored or not +* If the file is armored, it needs to be dearmored in binary format +* And then the dearmored key is added to its own file under /usr/share/keyrings directory +* The location of the key file is added to the sources list file of the repository + +In the same example, let’s add the key of the Spotify repository in /usr/share/keyrings directory. + +``` +curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/spotify.gpg +``` + +Now, comes the next part. Normally, the content of the sources list file are like this: + +``` +deb URL_of_the_repo stable non-free +``` + +You should edit it and add the location of the key file like this: + +``` +deb [signed-by=/usr/share/keyrings/key-file.gpg] URL_of_the_repo stable non-free +``` + +This way, you are linking the package to a specific key. Now, this key cannot be used to download any other package. No more cross-signing. + +In the Spotify example, I modified the command this way so that the sources list also contains the signed by information. + +``` +echo "deb [signed-by=/usr/share/keyrings/spotify.gpg] http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list +``` + +### What next? + +As you can see, there is no easy-to-use mechanism in place to replace the apt-key command. It requires a lot of manual effort and it should not be like this. + +Since it is the transitioning phase, the ‘apt-key is deprecated’ message is a warning but things could be more strict in future versions of Ubuntu. + +For now, even if you ignore this warning, you can continue using the external repository. + +In my opinion, the onus lies on the external repository provider. They should be the one providing the correct way of adding their repository. + +I see that [Brave browser provides the correct, moder][6][n][7][instructions][8] but many others, like Spotify, don’t do it. The change should come from developer’s side. The user should not be fiddling around the warning and error messages. + +It’s not one of my best articles as it has too many moving points and it leaves a lot of things for you figure out. I have a feeling that the article may not clear all things. If that’s the case, please leave your questions and suggestions in the comment section and I’ll try explaining it further. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-key-deprecated/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/adding-external-repositories-ubuntu/ +[2]: https://itsfoss.com/install-spotify-ubuntu-linux/ +[3]: https://wiki.debian.org/DebianRepository/UseThirdParty +[4]: https://www.techopedia.com/definition/23150/ascii-armor +[5]: https://linuxhandbook.com/file-command/ +[6]: https://brave.com/linux/ +[7]: https://brave.com/linux/ +[8]: https://brave.com/linux/ From 66de4929b6ba04bae0b5e30bf4971aa97d7aada9 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 16 Aug 2022 08:27:31 +0800 Subject: [PATCH 0766/3123] translated --- ...jaro and Other Arch Linux Based Distros.md | 158 ------------------ ...jaro and Other Arch Linux Based Distros.md | 158 ++++++++++++++++++ 2 files changed, 158 insertions(+), 158 deletions(-) delete mode 100644 sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md create mode 100644 translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md diff --git a/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md deleted file mode 100644 index 72663de196..0000000000 --- a/sources/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md +++ /dev/null @@ -1,158 +0,0 @@ -[#]: subject: "Install Spotify on Manjaro and Other Arch Linux Based Distros" -[#]: via: "https://itsfoss.com/install-spotify-arch/" -[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Install Spotify on Manjaro and Other Arch Linux Based Distros -====== -Spotify needs no introduction. It is the most popular music streaming service. - -You can [play Spotify in a web browser][1], but using the desktop application would be a better option if you use it extensively. - -Why? Because you can control the playback with the media key, get notifications for the songs, and don’t need to worry about accidentally closing the browser tab or window. The desktop client gives a wholesome experience. - -Spotify [provides a repository][2] for Ubuntu and Debian. But what about installing Spotify on Arch Linux? - -Actually, it is even simpler to get the Spotify desktop application on Arch Linux. Just use this command: - -``` -sudo pacman -Syu spotify-launcher -``` - -That’s one of the many ways of installing Spotify on Arch-based Linux distros like Manjaro, [Endeavour OS][3], [Garuda Linux][4], etc. - -In this tutorial, I’ll discuss the following methods of installing Spotify: - -* Using [pacman][5] (you already saw it above but we’ll dig deeper) -* Installing using [Pamac][6] (the package manager from Manjaro) -* Installing using [Flatpak][7] (the universal packaging format) -* Using Snap (official package by the Spotify team) - -### Method 1: Install Spotify using pacman - -Spotify is [available][8] from the Community repository of Arch Linux. It’s actually a Rust implementation of the APT repository provided by Spotify. - -Open your terminal and [use the pacman command][9] in the following manner: - -``` -sudo pacman -Syu spotify-launcher -``` - -Once installed, launch it from the Application Menu and log in to start listening. - -![Spotify on Arch Linux][10] - -Enter the following command to remove it along with its dependencies and config files. - -``` -sudo pacman -Rns spotify-launcher -``` - -### Method 2: Install Spotify using Pamac - -If you are using Manjaro or [have installed Pamac in your system][11], you can use it to install Spotify graphically. - -Open Add/Remove Software from Applications menu. Click on the search icon on the top left and search for Spotify. Then, select the package named `spotify-launcher` and click Apply to install as shown below. - -![Using Pamac to install Spotify][12] - -You can also deselect the package when installed and click Apply to remove it. - -#### Using Pamac CLI - -yes, Pamac also has a command line interface and you can use it in the following manner to get Spotify. - -``` -pamac install spotify-launcher -``` - -And to remove later, use: - -``` -pamac remove spotify-launcher -``` - -### Method 3: Install Spotify using Flatpak - -Many users prefer to install proprietary applications using Flatpak for the sandbox it provides. - -Enter the following command in the terminal to update your system and install Flatpak (if you don’t have it already). - -``` -sudo pacman -Syu flatpak -``` - -Then, enable [Flathub repository][13] using the following command. - -``` -flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo -``` - -Now, install Spotify by entering the command below. - -``` -flatpak install spotify -``` - -To remove the Flatpak for Spotify you can use the command below. - -``` -flatpak remove spotify -``` - -### Method 4: Install Spotify using Snap - -I understand that many people have a strong dislike for the Snap packaging format for its ‘closed’ nature. However, Spotify provides a Snap package officially. You are getting it from the Spotify developers themselves. - -If you have Snap package support on your system, use the following command: - -``` -sudo snap install spotify -``` - -If you want to remove it later, use this command: - -``` -sudo snap remove spotify -``` - -#### Conclusion - -The Arch package discussed in the first method is developed and maintained by [kpcyrd][14]. You can check out the source code for the same [here][15]. - -Please consider donating to the project if you like Arch Linux and want to support it. All the work is done by the community members, who are unpaid volunteers. - -Let me know if you have any issues installing Spotify on Arch. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-spotify-arch/ - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://open.spotify.com/ -[2]: https://www.spotify.com/us/download/linux/ -[3]: https://endeavouros.com/ -[4]: https://garudalinux.org/ -[5]: https://wiki.archlinux.org/title/Pacman -[6]: https://wiki.manjaro.org/index.php/Pamac -[7]: https://itsfoss.com/what-is-flatpak/ -[8]: https://archlinux.org/packages/community/x86_64/spotify-launcher/ -[9]: https://itsfoss.com/pacman-command/ -[10]: https://itsfoss.com/wp-content/uploads/2022/07/spotify-e1658764973807.png -[11]: https://itsfoss.com/install-pamac-arch-linux/ -[12]: https://itsfoss.com/wp-content/uploads/2022/07/pamac-spotify-e1658764946532.png -[13]: https://flathub.org -[14]: https://github.com/kpcyrd -[15]: https://github.com/kpcyrd/spotify-launcher diff --git a/translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md new file mode 100644 index 0000000000..299bd8e304 --- /dev/null +++ b/translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md @@ -0,0 +1,158 @@ +[#]: subject: "Install Spotify on Manjaro and Other Arch Linux Based Distros" +[#]: via: "https://itsfoss.com/install-spotify-arch/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Manjaro 和其他基于 Arch Linux 的发行版上安装 Spotify +====== +Spotify 不需要介绍。它是最流行的音乐流媒体服务。 + +你可以[在 web 浏览器中播放 Spotify][1],但如果你经常使用它,使用桌面应用会是一个更好的选择。 + +为什么呢?因为你可以用媒体键控制播放,得到歌曲的通知,而且不需要担心不小心关闭浏览器标签或窗口。桌面客户端给人一种完整的体验。 + +Spotify 为 Ubuntu 和 Debian [提供了一个仓库][2]。但在 Arch Linux 上安装 Spotify 呢? + +实际上,在 Arch Linux 上获得 Spotify 的桌面应用更加简单。只需使用这个命令: + +``` +sudo pacman -Syu spotify-launcher +``` + +这就是在基于 Arch 的 Linux 发行版上安装 Spotify 的众多方法之一,如 Manjaro、[Endeavour OS][3]、[Garuda Linux][4] 等。 + +在本教程中,我将讨论以下安装 Spotify 的方法: + +* 使用 [pacman][5](你已经在上面看到了,但我们会更深入地挖掘)。 +* 使用 [Pamac][6](Manjaro的软件包管理器)进行安装 +* 使用 [Flatpak][7](通用打包格式)进行安装 +* 使用 Snap(Spotify 团队的官方包)。 + +### 方法 1:使用 pacman 安装 Spotify + +Spotify 可在 Arch Linux 的社区仓库中[访问][8]。它实际上是 Spotify 提供的 APT 仓库的 Rust 实现。 + +打开你的终端,按以下方式[使用 pacman 命令][9]: + +``` +sudo pacman -Syu spotify-launcher +``` + +安装后,从应用菜单中启动它,并登录开始收听。 + +![Spotify on Arch Linux][10] + +输入下面的命令,将其连同其依赖关系和配置文件一起删除。 + +``` +sudo pacman -Rns spotify-launcher +``` + +### 方法 2:使用 Pamac 安装 Spotify + +如果你使用 Manjaro 或者[在你的系统中安装了 Pamac][11],你可以用它来图形化安装 Spotify。 + +从应用菜单中打开添加/删除软件。点击左上角的搜索图标,搜索 Spotify。然后,选择名为 `spotify-launcher` 的软件包,并点击应用进行安装,如下图所示。 + +![Using Pamac to install Spotify][12] + +你也可以在安装后取消选择该软件包,并点击应用来删除它。 + +#### 使用 Pamac CLI + +是的,Pamac 也有一个命令行界面,你可以通过以下方式使用它来获得 Spotify。 + +``` +pamac install spotify-launcher +``` + +要删除,使用: + +``` +pamac remove spotify-launcher +``` + +### 方法 3:使用 Flatpak 安装 Spotify + +许多用户喜欢使用 Flatpak 安装专有应用,因为它提供了沙盒。 + +在终端输入以下命令来更新你的系统并安装 Flatpak(如果你还没有)。 + +``` +sudo pacman -Syu flatpak +``` + +然后,使用下面的命令启用 [Flathub 仓库][13]。 + +``` +flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo +``` + +现在,通过输入下面的命令安装 Spotify。 + +``` +flatpak install spotify +``` + +要删除 Spotify 的 Flatpak 包,你可以使用下面的命令。 + +``` +flatpak remove spotify +``` + +### 方法 4:使用 Snap 安装 Spotify + +我知道很多人对 Snap 打包格式的“封闭性”非常反感。然而,Spotify 官方提供了一个 Snap 包。你从 Spotify 的开发者那里得到它。 + +如果你的系统支持 Snap 包,请使用以下命令: + +``` +sudo snap install spotify +``` + +如果你以后想删除它,使用这个命令: + +``` +sudo snap remove spotify +``` + +#### 总结 + +第一个方法中讨论的 Arch 包是由 [kpcyrd][14] 开发和维护的。你可以在[这里][15]查看源代码。 + +如果你喜欢 Arch Linux 并想支持它,请考虑向该项目捐款。所有的工作都是由社区成员完成的,他们是无偿的志愿者。 + +如果你在 Arch 上安装 Spotify 有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-spotify-arch/ + +作者:[Anuj Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/anuj/ +[b]: https://github.com/lkxed +[1]: https://open.spotify.com/ +[2]: https://www.spotify.com/us/download/linux/ +[3]: https://endeavouros.com/ +[4]: https://garudalinux.org/ +[5]: https://wiki.archlinux.org/title/Pacman +[6]: https://wiki.manjaro.org/index.php/Pamac +[7]: https://itsfoss.com/what-is-flatpak/ +[8]: https://archlinux.org/packages/community/x86_64/spotify-launcher/ +[9]: https://itsfoss.com/pacman-command/ +[10]: https://itsfoss.com/wp-content/uploads/2022/07/spotify-e1658764973807.png +[11]: https://itsfoss.com/install-pamac-arch-linux/ +[12]: https://itsfoss.com/wp-content/uploads/2022/07/pamac-spotify-e1658764946532.png +[13]: https://flathub.org +[14]: https://github.com/kpcyrd +[15]: https://github.com/kpcyrd/spotify-launcher From 4dc7ca3621edba42ebb13122e95ba10cadc31a72 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 16 Aug 2022 08:34:32 +0800 Subject: [PATCH 0767/3123] translating --- ...Create Your Own Custom Light and Dark Wallpaper for GNOME.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md index 44ffdbfdab..20632cbbad 100644 --- a/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md +++ b/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8fa4c88f51ca119835cec697b53046bee7493d6f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 16 Aug 2022 11:03:08 +0800 Subject: [PATCH 0768/3123] RP @aREversez https://linux.cn/article-14935-1.html --- ...10 MAKE MORE with Inkscape - Ink-Stitch.md | 60 ++++++++----------- 1 file changed, 26 insertions(+), 34 deletions(-) rename {translated/tech => published}/20210910 MAKE MORE with Inkscape - Ink-Stitch.md (73%) diff --git a/translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md similarity index 73% rename from translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md rename to published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md index 40211cb668..5842090f81 100644 --- a/translated/tech/20210910 MAKE MORE with Inkscape - Ink-Stitch.md +++ b/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md @@ -3,17 +3,19 @@ [#]: author: "Sirko Kemter https://fedoramagazine.org/author/gnokii/" [#]: collector: "lujun9972" [#]: translator: "aREversez" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14935-1.html" -MAKE MORE with Inkscape – Ink/Stitch +Inkscape 拓展应用:Ink/Stitch ====== ![MAKE more with Inkscape - Ink/Stitch][1] Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不止于制作精美的矢量图形。矢量图形(也就是 SVG 文件)可以帮助实现更多操作,许多软件也支持这一格式。不过,Inkscape 还有其他功能有待发掘。[本系列][2] 第一篇文章介绍了如何 [使用 Inkscape 生成 GCode 文件][3];本篇文章将探索 Inkscape 的另一项拓展功能:用于绣花设计的 [Ink/Stitch][4]。 +(LCTT 校注:Extension 这个词我们一般翻译为“扩展”,但在 Inkscape 中被翻译为了“拓展”,为了和应用软件一致,此处采用了“拓展”的译法。) + ### 绣花 DIY 在过去数年里,DIY 风靡一时。可以说,这一现象始于廉价的 [3D 打印][5] 技术,以及后来的 [数控][6] 机床与激光切割机、激光雕刻机。这些设备都算不上非常昂贵。同时,绣花机等“传统”机器的价格也有下降。[家用绣花机现在只需 500 美元就能买到了][7]。 @@ -40,10 +42,10 @@ Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不 * **.10o** – 丰田绣花机 * **.100** – 丰田绣花机 - * **.CSD** – Poem,Huskygram 和胜家家用绣花缝纫机 + * **.CSD** – Poem、Huskygram 和胜家家用绣花缝纫机 * **.DSB** – 百灵达绣花机 * **.JEF** – 车乐美 MemoryCraft 10000 - * **.SEW** – 车乐美 MemoryCraft 5700, 8000, and 9000 + * **.SEW** – 车乐美 MemoryCraft 5700、8000 和 9000 * **.PES** – 兄弟和 Babylock 家用绣花缝纫机 * **.PEC** – 兄弟和 Babylock 家用绣花缝纫机 * **.HUS** – 好时运家用绣花缝纫机 @@ -55,8 +57,6 @@ Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不 * **.XXX** – Compucon 和 胜家家用绣花缝纫机 * **.ZSK** – 美国市场的 ZSK 绣花机 - - 关于绣花机会用到的文件格式,上面列出来的只是九牛一毛,可 [在此][14] 查看全部格式。如果你想进一步了解这些文件格式,可点击 [此处][15] 获取更多信息。 #### Ink/Stitch 文件格式 @@ -71,13 +71,13 @@ Ink/Stitch 最初使用的是 [libembroidery][12] 库,现在则使用 [pyembro ### 安装 Ink/Stitch -Ink/Stitch 是 [Inkscape 的一个拓展功能][16]。不过,由于 Inkscape 下载安装拓展的新功能还处于测试阶段,在其提供的拓展功能中可能无法找到 Ink/Stitch。因此,你需要自行手动 [下载][17] 该拓展。下载后,将压缩包解压到 Inkscape 拓展所在路径,默认路径为 _~/.config/Inkscape/extensions_(或者放置在系统全局路径:_/usr/share/inkscape/extensions_)。若你改变了默认路径,则需检查 Inkscape 设置选项,找到拓展文件的存放位置。 +Ink/Stitch 是 [Inkscape 的一个拓展功能][16]。不过,由于 Inkscape 下载安装拓展的新功能还处于测试阶段,在其提供的拓展功能中可能无法找到 Ink/Stitch。因此,你需要自行手动 [下载][17] 该拓展。下载后,将压缩包解压到 Inkscape 拓展所在路径,默认路径为 `~/.config/Inkscape/extensions`(或者放置在系统全局路径:`/usr/share/inkscape/extensions`)。若你改变了默认路径,则需检查 Inkscape 设置选项,找到拓展文件的存放位置。 ### 自定义:为 Ink/Stitch 安装插件 Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行这一功能。 -依次点击如下选项:_扩展Extensions > Ink/Stitch > 线条颜色管理Thread Color Management > 为 Inkscape 安装线条调色板Install thread color palettes for Inkscape_,之后等待片刻。 +依次点击如下选项:拓展Extensions > Ink/Stitch > 线条颜色管理Thread Color Management > 为 Inkscape 安装线条调色板Install thread color palettes for Inkscape,之后等待片刻。 虽然这一过程不会出现进度条之类的提示,不过也无需着急。 @@ -85,17 +85,17 @@ Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行 ![Inkscape with the swatches dialogue open, which shows the Madeira Rayon color palette][18] -如果你使用的 Ink/Stitch 是从 Github 下载的 2.0.0 版本,那么下载下来的 ZIP 文件里就包括了色板文件。你只需将其解压到正确的路径:_~/.config/inkscape/palettes/_。如果你需要环形模板,可以点击 [此处][19] 下载,并将其保存到 _~/.config/inkscape/templates_ 目录下. +如果你使用的 Ink/Stitch 是从 Github 下载的 2.0.0 版本,那么下载下来的 ZIP 文件里就包括了色板文件。你只需将其解压到正确的路径:`~/.config/inkscape/palettes/`。如果你需要环形模板,可以点击 [此处][19] 下载,并将其保存到 `~/.config/inkscape/templates` 目录下。 -重新启动 Inkscape,可在 _文件File > 由模板新建New From Template_ 下找到该模板。 +重新启动 Inkscape,可在 文件File > 由模板新建New From Template 下找到该模板。 ### Ink/Stitch 绣字 -到目前为止,绣花设计最简单也最常用的方法就是使用 Ink/Stitch 的 _文字缝制Lettering_ 功能。该功能位于 _拓展Extensions > Ink/Stitch > 文字缝制Lettering_。绣花文字缝制可不是一件简单事儿,它其实就是所谓的缎面绣字,需要做好特殊的文字设置。 +到目前为止,绣花设计最简单也最常用的方法就是使用 Ink/Stitch 的 文字缝制Lettering 功能。该功能位于 拓展Extensions > Ink/Stitch > 文字缝制Lettering。绣花文字缝制可不是一件简单事儿,它其实就是所谓的缎面绣字,需要做好特殊的文字设置。 ![Inkscape with a “Chopin” glyph for satin stitching defined for the Lettering function][20] -你可以将路径转换为缎面绣,但是这种方法比使用文字缝制功能还要繁琐许多。多亏了社区的活跃,2021 年 5 月份发布的 Ink/Stitch 2.0 版本预置了更多的字体。2.0 版本还增加了 _拓展Extensions > Ink/Stitch > 字体管理Font Management_ 功能,让用户更方便地管理这些字体。 +你可以将路径转换为缎面绣,但是这种方法比使用文字缝制功能还要繁琐许多。多亏了社区的活跃,2021 年 5 月份发布的 Ink/Stitch 2.0 版本预置了更多的字体。2.0 版本还增加了 拓展Extensions > Ink/Stitch > 字体管理Font Management 功能,让用户更方便地管理这些字体。 此外,还有制作字体的功能,但是你需要了解如何使用 Inkscape 设计字体,可在 [此处][21] 浏览相关英文教程。这里只给出大概的介绍:首先创建一个 SVG 字体,接着将其储存在 JSON 文件中,这样便可以在 Ink/Stitch 字体管理功能中使用。 @@ -105,15 +105,15 @@ Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行 ### 绣制区域、路径等对象 -Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:_拓展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…_,将路径分割成若干部分。 +Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:拓展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…,将路径分割成若干部分。 -虽然 Inkscape 也有 _路径Path > 分离Break apart_ 功能,但是在这种情况下并不可行。 +虽然 Inkscape 也有 路径Path > 分离Break apart 功能,但是在这种情况下并不可行。 -接下来,运行 Ink/Stitch 内置模拟器:_拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 模拟器/实际预览Simulator/Realistic Preview_. +接下来,运行 Ink/Stitch 内置模拟器:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 模拟器/实际预览Simulator/Realistic Preview。 ![The new Fedora logo as Stitch Plan Preview][23] -注意,模拟器运行时需要占用大量的系统资源,而且启动时间也比较长。其实,以下功能操作起来会更加简便:_拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 线迹计划预览Stitch Plan Preview_。该功能会在文件外部对线条进行渲染。 +注意,模拟器运行时需要占用大量的系统资源,而且启动时间也比较长。其实,以下功能操作起来会更加简便:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 线迹计划预览Stitch Plan Preview。该功能会在文件外部对线条进行渲染。 ![Nicubunu’s Fedora hat icon as embroidery. The angles for the stitches of the head part and the brim are different so that it looks more realistic. The outline is done in Satin stitching][24] @@ -123,11 +123,11 @@ Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字 ![Parameter setting dialogue and on the right the Fedora logo shape embroidered as Zig-Zag line][25] -这个方法虽然简单,但绝不是最好的选择。最好的选择是使用缎面工具,该功能可以在 _拓展Extensions > 缎面工具Satin Tools_ 找到。其中,转换功能又是重中之重,它可以将路径转换为缎面笔画。 +这个方法虽然简单,但绝不是最好的选择。最好的选择是使用缎面工具,该功能可以在 拓展Extensions > 缎面工具Satin Tools 找到。其中,转换功能又是重中之重,它可以将路径转换为缎面笔画。 ![Fedora logo shape as Satin Line embroidery][26] -通过 _拓展Extensions > 缎面工具Satin Tools > 旋转缎纹路径Flip Satin Column Rails_,你还可以改变线迹的方向。这样做可以凸显缎面绣的立体感,典型的例子就是泡芙刺绣(一种非常具有立体感的刺绣)。支持这种功能的机器还可以为绣花时产生的多余的连线线迹标记出修剪记号。这些记号正是从 Ink/Stitch 自身符号库里安装得到的符号。 +通过 拓展Extensions > 缎面工具Satin Tools > 旋转缎纹路径Flip Satin Column Rails,你还可以改变线迹的方向。这样做可以凸显缎面绣的立体感,典型的例子就是泡芙刺绣(一种非常具有立体感的刺绣)。支持这种功能的机器还可以为绣花时产生的多余的连线线迹标记出修剪记号。这些记号正是从 Ink/Stitch 自身符号库里安装得到的符号。 ### Ink/Stitch 线迹库 @@ -135,33 +135,25 @@ Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字 * **平针**:平针用于边缘装饰,沿直线或曲线缝制出一排短小的线迹,由此组成的一条条虚线就是平针。虚线的尺寸可大可小。 - - -![A running stitch – each dashed line will be converted in such one][27] + ![A running stitch – each dashed line will be converted in such one][27] * **豆针**:豆针可用于边缘装饰或添加设计细节。使用平针来回缝制就是豆针,这种缝法会增加线迹的厚度。 - - -![Bean Stitches – creating a thicker line][28] + ![Bean Stitches – creating a thicker line][28] * **手工针**:在该模式下,Ink/Stitch 会将路径的每个节点当作穿针点;这些节点也正是针穿入的位置。 - - -![In manual mode – each node will be the needle penetration point][29] + ![In manual mode – each node will be the needle penetration point][29] * **E 字针**:E 字针是一种简单但十分好用的绷缝线迹,用于贴花织物。这种线迹多用于婴儿装,因为婴儿的皮肤比较敏感。 - - -![E-Stitch mostly used for applications on baby cloths, soft but strong connection][30] + ![E-Stitch mostly used for applications on baby cloths, soft but strong connection][30] ### 绣花用线列表 有些绣花机,尤其是商用的绣花机,根据设计的需要,可以提前适配不同的针线。必要时,这类机器会自动切换使用合适的针线。有些绣花文件格式支持这一功能,但有些并不支持。Ink/Stitch 可以将用户设置好的线条列表应用到绣花设计中。 -如果你想在现有的设计上导入线条列表,可执行如下操作:_拓展Extensions > Ink/Stitch > 导入线条列表Import Threadlist_。同样的,线条列表也可以导出:_另存为 zip 文件,打包多种不同的文件格式Save As different file formats as *.zip_。当然,也可以将其打印出来:_拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF_。 +如果你想在现有的设计上导入线条列表,可执行如下操作:拓展Extensions > Ink/Stitch > 导入线条列表Import Threadlist。同样的,线条列表也可以导出:另存为 zip 文件,打包多种不同的文件格式Save As different file formats as *.zip。当然,也可以将其打印出来:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF。 ### 结语 @@ -174,7 +166,7 @@ via: https://fedoramagazine.org/make-more-with-inkscape-ink-stitch/ 作者:[Sirko Kemter][a] 选题:[lujun9972][b] 译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b119412a7f06c4e87cd362fdba653a275ac437d5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 16 Aug 2022 11:12:33 +0800 Subject: [PATCH 0769/3123] R --- published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md index 5842090f81..d813578580 100644 --- a/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md +++ b/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md @@ -105,7 +105,7 @@ Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行 ### 绣制区域、路径等对象 -Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:拓展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…,将路径分割成若干部分。 +Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:拓展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…,将路径分割成若干部分。 虽然 Inkscape 也有 路径Path > 分离Break apart 功能,但是在这种情况下并不可行。 @@ -153,7 +153,7 @@ Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字 有些绣花机,尤其是商用的绣花机,根据设计的需要,可以提前适配不同的针线。必要时,这类机器会自动切换使用合适的针线。有些绣花文件格式支持这一功能,但有些并不支持。Ink/Stitch 可以将用户设置好的线条列表应用到绣花设计中。 -如果你想在现有的设计上导入线条列表,可执行如下操作:拓展Extensions > Ink/Stitch > 导入线条列表Import Threadlist。同样的,线条列表也可以导出:另存为 zip 文件,打包多种不同的文件格式Save As different file formats as *.zip。当然,也可以将其打印出来:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF。 +如果你想在现有的设计上导入线条列表,可执行如下操作:拓展Extensions > Ink/Stitch > 导入线条列表Import Threadlist。同样的,线条列表也可以导出:另存为Save As 不同的文件格式,如 *.zip。当然,也可以将其打印出来:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF。 ### 结语 From 41a7fca3791404db787a596b5f1046f4cdee1944 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 16 Aug 2022 14:43:15 +0800 Subject: [PATCH 0770/3123] R @aREversez --- ...10 MAKE MORE with Inkscape - Ink-Stitch.md | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md index d813578580..882fabf739 100644 --- a/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md +++ b/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md @@ -7,14 +7,12 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-14935-1.html" -Inkscape 拓展应用:Ink/Stitch +Inkscape 扩展应用:Ink/Stitch ====== ![MAKE more with Inkscape - Ink/Stitch][1] -Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不止于制作精美的矢量图形。矢量图形(也就是 SVG 文件)可以帮助实现更多操作,许多软件也支持这一格式。不过,Inkscape 还有其他功能有待发掘。[本系列][2] 第一篇文章介绍了如何 [使用 Inkscape 生成 GCode 文件][3];本篇文章将探索 Inkscape 的另一项拓展功能:用于绣花设计的 [Ink/Stitch][4]。 - -(LCTT 校注:Extension 这个词我们一般翻译为“扩展”,但在 Inkscape 中被翻译为了“拓展”,为了和应用软件一致,此处采用了“拓展”的译法。) +Inkscape 是 Fedora 设计团队最喜爱最常用的软件,它的功能可不止于制作精美的矢量图形。矢量图形(也就是 SVG 文件)可以帮助实现更多操作,许多软件也支持这一格式。不过,Inkscape 还有其他功能有待发掘。[本系列][2] 第一篇文章介绍了如何 [使用 Inkscape 生成 GCode 文件][3];本篇文章将探索 Inkscape 的另一项扩展功能:用于绣花设计的 [Ink/Stitch][4]。 ### 绣花 DIY @@ -67,17 +65,17 @@ Ink/Stitch 最初使用的是 [libembroidery][12] 库,现在则使用 [pyembro 除了文件格式,绣花缝纫软件还需解决其它一些问题。 -支持繁杂多样的线迹类型是一个难题,绘制工具与缝制工具的搭配使用又是另一个难题。不过,为什么非要从无到有搞出一套新应用?为什么不依赖现有的矢量软件?这样一来,开发者只需要在其基础上增添绣花拓展功能即可。后者就是 [Ink/Stitch 项目][4] 过去四年来的设计理念。 +支持繁杂多样的线迹类型是一个难题,绘制工具与缝制工具的搭配使用又是另一个难题。不过,为什么非要从无到有搞出一套新应用?为什么不依赖现有的矢量软件?这样一来,开发者只需要在其基础上增添绣花扩展功能即可。后者就是 [Ink/Stitch 项目][4] 过去四年来的设计理念。 ### 安装 Ink/Stitch -Ink/Stitch 是 [Inkscape 的一个拓展功能][16]。不过,由于 Inkscape 下载安装拓展的新功能还处于测试阶段,在其提供的拓展功能中可能无法找到 Ink/Stitch。因此,你需要自行手动 [下载][17] 该拓展。下载后,将压缩包解压到 Inkscape 拓展所在路径,默认路径为 `~/.config/Inkscape/extensions`(或者放置在系统全局路径:`/usr/share/inkscape/extensions`)。若你改变了默认路径,则需检查 Inkscape 设置选项,找到拓展文件的存放位置。 +Ink/Stitch 是 [Inkscape 的一个扩展功能][16]。不过,由于 Inkscape 下载安装扩展的新功能还处于测试阶段,在其提供的扩展功能中可能无法找到 Ink/Stitch。因此,你需要自行手动 [下载][17] 该扩展。下载后,将压缩包解压到 Inkscape 扩展所在路径,默认路径为 `~/.config/Inkscape/extensions`(或者放置在系统全局路径:`/usr/share/inkscape/extensions`)。若你改变了默认路径,则需检查 Inkscape 设置选项,找到扩展文件的存放位置。 ### 自定义:为 Ink/Stitch 安装插件 Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行这一功能。 -依次点击如下选项:拓展Extensions > Ink/Stitch > 线条颜色管理Thread Color Management > 为 Inkscape 安装线条调色板Install thread color palettes for Inkscape,之后等待片刻。 +依次点击如下选项:扩展Extensions > Ink/Stitch > 线条颜色管理Thread Color Management > 为 Inkscape 安装线条调色板Install thread color palettes for Inkscape,之后等待片刻。 虽然这一过程不会出现进度条之类的提示,不过也无需着急。 @@ -91,11 +89,11 @@ Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行 ### Ink/Stitch 绣字 -到目前为止,绣花设计最简单也最常用的方法就是使用 Ink/Stitch 的 文字缝制Lettering 功能。该功能位于 拓展Extensions > Ink/Stitch > 文字缝制Lettering。绣花文字缝制可不是一件简单事儿,它其实就是所谓的缎面绣字,需要做好特殊的文字设置。 +到目前为止,绣花设计最简单也最常用的方法就是使用 Ink/Stitch 的 文字缝制Lettering 功能。该功能位于 扩展Extensions > Ink/Stitch > 文字缝制Lettering。绣花文字缝制可不是一件简单事儿,它其实就是所谓的缎面绣字,需要做好特殊的文字设置。 ![Inkscape with a “Chopin” glyph for satin stitching defined for the Lettering function][20] -你可以将路径转换为缎面绣,但是这种方法比使用文字缝制功能还要繁琐许多。多亏了社区的活跃,2021 年 5 月份发布的 Ink/Stitch 2.0 版本预置了更多的字体。2.0 版本还增加了 拓展Extensions > Ink/Stitch > 字体管理Font Management 功能,让用户更方便地管理这些字体。 +你可以将路径转换为缎面绣,但是这种方法比使用文字缝制功能还要繁琐许多。多亏了社区的活跃,2021 年 5 月份发布的 Ink/Stitch 2.0 版本预置了更多的字体。2.0 版本还增加了 扩展Extensions > Ink/Stitch > 字体管理Font Management 功能,让用户更方便地管理这些字体。 此外,还有制作字体的功能,但是你需要了解如何使用 Inkscape 设计字体,可在 [此处][21] 浏览相关英文教程。这里只给出大概的介绍:首先创建一个 SVG 字体,接着将其储存在 JSON 文件中,这样便可以在 Ink/Stitch 字体管理功能中使用。 @@ -105,15 +103,15 @@ Ink/Stitch 提供了为 Inkscape 安装插件的功能,用户需首先执行 ### 绣制区域、路径等对象 -Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:拓展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…,将路径分割成若干部分。 +Ink/Stitch 最容易实现的就是绣制区域或者路径。你需要做的只是画出路径。如果你使用的是形状,那么你需要将其转换成路径,然后执行如下操作:扩展Extensions > Ink/Stitch > 填充工具Fill Tools > 分离填充对象Break Apart Fill Objects…,将路径分割成若干部分。 虽然 Inkscape 也有 路径Path > 分离Break apart 功能,但是在这种情况下并不可行。 -接下来,运行 Ink/Stitch 内置模拟器:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 模拟器/实际预览Simulator/Realistic Preview。 +接下来,运行 Ink/Stitch 内置模拟器:扩展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 模拟器/实际预览Simulator/Realistic Preview。 ![The new Fedora logo as Stitch Plan Preview][23] -注意,模拟器运行时需要占用大量的系统资源,而且启动时间也比较长。其实,以下功能操作起来会更加简便:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 线迹计划预览Stitch Plan Preview。该功能会在文件外部对线条进行渲染。 +注意,模拟器运行时需要占用大量的系统资源,而且启动时间也比较长。其实,以下功能操作起来会更加简便:扩展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 线迹计划预览Stitch Plan Preview。该功能会在文件外部对线条进行渲染。 ![Nicubunu’s Fedora hat icon as embroidery. The angles for the stitches of the head part and the brim are different so that it looks more realistic. The outline is done in Satin stitching][24] @@ -123,11 +121,11 @@ Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字 ![Parameter setting dialogue and on the right the Fedora logo shape embroidered as Zig-Zag line][25] -这个方法虽然简单,但绝不是最好的选择。最好的选择是使用缎面工具,该功能可以在 拓展Extensions > 缎面工具Satin Tools 找到。其中,转换功能又是重中之重,它可以将路径转换为缎面笔画。 +这个方法虽然简单,但绝不是最好的选择。最好的选择是使用缎面工具,该功能可以在 扩展Extensions > 缎面工具Satin Tools 找到。其中,转换功能又是重中之重,它可以将路径转换为缎面笔画。 ![Fedora logo shape as Satin Line embroidery][26] -通过 拓展Extensions > 缎面工具Satin Tools > 旋转缎纹路径Flip Satin Column Rails,你还可以改变线迹的方向。这样做可以凸显缎面绣的立体感,典型的例子就是泡芙刺绣(一种非常具有立体感的刺绣)。支持这种功能的机器还可以为绣花时产生的多余的连线线迹标记出修剪记号。这些记号正是从 Ink/Stitch 自身符号库里安装得到的符号。 +通过 扩展Extensions > 缎面工具Satin Tools > 旋转缎纹路径Flip Satin Column Rails,你还可以改变线迹的方向。这样做可以凸显缎面绣的立体感,典型的例子就是泡芙刺绣(一种非常具有立体感的刺绣)。支持这种功能的机器还可以为绣花时产生的多余的连线线迹标记出修剪记号。这些记号正是从 Ink/Stitch 自身符号库里安装得到的符号。 ### Ink/Stitch 线迹库 @@ -153,7 +151,7 @@ Ink/Stitch 会使用连续的线条(非虚线)将每个笔画转换成之字 有些绣花机,尤其是商用的绣花机,根据设计的需要,可以提前适配不同的针线。必要时,这类机器会自动切换使用合适的针线。有些绣花文件格式支持这一功能,但有些并不支持。Ink/Stitch 可以将用户设置好的线条列表应用到绣花设计中。 -如果你想在现有的设计上导入线条列表,可执行如下操作:拓展Extensions > Ink/Stitch > 导入线条列表Import Threadlist。同样的,线条列表也可以导出:另存为Save As 不同的文件格式,如 *.zip。当然,也可以将其打印出来:拓展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF。 +如果你想在现有的设计上导入线条列表,可执行如下操作:扩展Extensions > Ink/Stitch > 导入线条列表Import Threadlist。同样的,线条列表也可以导出:另存为Save As 不同的文件格式,如 *.zip。当然,也可以将其打印出来:扩展Extensions > Ink/Stitch > 可视化并导出Visualise and Export > 打印 PDFPrint PDF。 ### 结语 From 2b5e41122a33c35e10ad13649ae01a51f724b00c Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:19:24 +0800 Subject: [PATCH 0771/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220816=20My=20practical=20advice=20for=20new=20pro?= =?UTF-8?q?grammers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...My practical advice for new programmers.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/talk/20220816 My practical advice for new programmers.md diff --git a/sources/talk/20220816 My practical advice for new programmers.md b/sources/talk/20220816 My practical advice for new programmers.md new file mode 100644 index 0000000000..16ea7f1293 --- /dev/null +++ b/sources/talk/20220816 My practical advice for new programmers.md @@ -0,0 +1,69 @@ +[#]: subject: "My practical advice for new programmers" +[#]: via: "https://opensource.com/article/22/8/coding-advice-new-programmers" +[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +My practical advice for new programmers +====== +Being an efficient and curious problem-solver will help you succeed as a programmer. + +Have you ever been stuck or gone blank trying to solve a problem related to something that you just learned from YouTube or Google tutorials? You seem to understand every line of the code, but without the tutorial, you find yourself in a difficult position. If you have looked at problem-solving in HackerRank or LeetCode, you can relate to how an aspiring programmer feels seeing those challenges for the first time. Everything seems out of the box! Being unable to apply what you learned from a tutorial might make you doubt your knowledge and abilities as you begin to understand the basics of the programming language you're learning. + +### Putting programming tutorials into practice + +Should you start back at the beginning? If you do that, you may soon find that you've covered those topics more than enough times. Starting from scratch is not necessarily a waste, but how can you be more efficient? + +Memorization is simply not the solution in programming. Having said that, you cannot neglect the importance of getting used to syntaxes. There is a significant difference between memorizing and making a habit. The latter is difficult to break. Make a habit of playing around with the programming language's regular syntaxes, functions, methods, patterns, paradigms, and constructs to ace it. Acing a programming language involves a lot of creativity and practice. It is essential to practice syntaxes until they flow as smoothly in your brain as the blood runs through your veins. + +### How problem-solving works + +How you approach solutions depends on many factors. These factors could be anything from technical constraints to user needs. The world has innumerable problems and there are many ways of solving each. Deciding on the best way involves extensive problem-solving skills. + +Here is a simple example. You need to achieve a result of **6** by *adding* two numbers. You can accomplish this several ways: + +**3+3=6** or **4+2=6** or **5+1=6** + +Similarly, say you need to achieve a result of **6** by using two numbers and either subtraction, division, or multiplication. You have many options, including: + +**8-2=6** or **12/2=6** or **3*2=6** + +Each solution may have a different constraint. You must consider all of these when developing effective real-world solutions. Is the solution feasible? Accessible? Interoperable? Scalable? Minimizing the constraint and developing an optimal solution depends on the business need and type of problem. + +### Practice matters + +The goal of programming is much more than problem-solving. Understanding *how* the code functions from an engineering perspective is always an advantage. That's where code reviews come into play at an enterprise level. The bare minimum requirement in programming is to have basic coding knowledge, including the language's syntaxes, functions, and methods. At the end of the day, coding is what you *do*, so practicing always helps improve your skills. Fluency in writing and developing complex solutions comes with consistent practice and learning. + +### Learning to code + +My goal for writing and sharing this article is to encourage new programmers to seek the great problem solver in themselves. Please don't stop believing in yourself. + +There are many habits to nurture for successful coding. Here are my ways of staying effective while learning to code: + +1. A [cheat sheet][1] of syntaxes, methods, and functions can come in handy. +2. Break problems into smaller parts to make them easier to follow. +3. Try to understand the core concept of how code functions. +4. Try to improvise with your solutions but always stick to the basics in the beginning. +5. Create as many applications and components as possible while practicing. +6. Never copy/paste code from open platforms like stack overflow/exchange, especially without understanding the context. +7. After following the tutorial, try to build everything from scratch. If you manage to accomplish half of it by yourself, that's still an achievement. + +Good luck to all of us. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/coding-advice-new-programmers + +作者:[Sachin Samal][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/sacsam005 +[b]: https://github.com/lkxed +[1]: https://opensource.com/downloads/cheat-sheets From 007a27d3b6cccde89f3da445e4665a050cfda283 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:24:37 +0800 Subject: [PATCH 0772/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220816=20A=20look=20inside=20an=20EPUB=20file.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220816 A look inside an EPUB file.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/tech/20220816 A look inside an EPUB file.md diff --git a/sources/tech/20220816 A look inside an EPUB file.md b/sources/tech/20220816 A look inside an EPUB file.md new file mode 100644 index 0000000000..3b836837d0 --- /dev/null +++ b/sources/tech/20220816 A look inside an EPUB file.md @@ -0,0 +1,123 @@ +[#]: subject: "A look inside an EPUB file" +[#]: via: "https://opensource.com/article/22/8/epub-file" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A look inside an EPUB file +====== +EPUB files are a great way to publish content using an open format. + +![How to find files in Linux][1] + +Image by: Lewis Cowles, CC BY-SA 4.0 + +eBooks provide a great way to read books, magazines, and other content on the go. Readers can enjoy eBooks to pass the time during long flights and train rides. The most popular eBook file format is the EPUB file, short for "electronic publication." EPUB files are supported across a variety of eReaders and are effectively the standard for eBook publication today. + +The EPUB file format is an open standard based on XHTML for content and XML for metadata, contained in a zip file archive. And because everything is based on open standards, we can use common tools to create or examine EPUB files. Let's explore an EPUB file to learn more about it. [A guide to tips and tricks for C programming][2], published earlier this year on Opensource.com, is available in PDF or EPUB format. + +Because EPUB files are XHTML content and XML metadata in a zip file, you can start with the `unzip` command to examine the EPUB from the command line: + +``` +$ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub +Archive: osdc_Jim-Hall_C-Programming-Tips.epub +Length Date Time Name +--------- ---------- ----- ---- +20 06-23-2022 00:20 mimetype +8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css +1659 06-23-2022 00:20 OEBPS/toc.xhtml +4460 06-23-2022 00:20 OEBPS/content.opf +44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml +1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml +22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml +[...] +9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml +748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml +3370 06-23-2022 00:20 OEBPS/toc.ncx +8308 06-23-2022 00:21 OEBPS/images/image0011.png +6598 06-23-2022 00:21 OEBPS/images/image0009.png +[...] +14492 06-23-2022 00:21 OEBPS/images/image0005.png +239 06-23-2022 00:20 META-INF/container.xml +--------- ------- +959201 41 files +``` + +This EPUB contains a lot of files, but much of this is content. To understand how an EPUB file is put together, follow the process flow of an eBook reader: + +1. eBook readers need to verify that the EPUB file is really an EPUB file. They verify the file by examining the `mimetype` file at the root of the EPUB archive. This file contains just one line that describes the MIME type of the EPUB file: + +``` +application/epub+zip +``` + +2. To locate the content, eBook readers start with the `META-INF/container.xml` file. This is a brief XML document that indicates where to find the content. For this EPUB file, the `container.xml` file looks like this: + +``` + + + + + + +``` + +To make the `container.xml` file easier to read, I split the single line into multiple lines and added some spacing to indent each line. XML files don't really care about extra white space like new lines and spaces, so this extra spacing doesn't affect the XML file. + +3. The `container.xml` file says the root of the EPUB starts with the `content.opf` file in the OEBPS directory. The OPF extension is because EPUB is based on the Open Packaging Format, but the `content.opf` file is really just another XML file. + +4. The `content.opf` file contains a complete manifest of the EPUB contents, plus an ordered table of contents, with references to find each chapter or section. The `content.opf` file for this EPUB is quite long, so I'll show just a bit of it here as an example. +The XML data is contained within a `` block, which itself has a ``block, the `` data, and a ``block that contains the eBook's table of contents: + +``` + + + + osdc002 + Tips and Tricks for C Programming + Jim Hall + English + 2022-06-23T12:09:13Z + + + + ... + + + + + ... + + + + + + ... + + +``` + +You can match up the data to see where to find each section. That’s how EPUB readers do it. For example, the first item in the table of contents references `section0001` which is defined in the manifest as located in the `sections/section0001.xhtml` file. The file doesn’t need to be named the same as the idref entry, but that’s how LibreOffice Writer’s automated process created the file. (You can see in the metadata that this EPUB was created with LibreOffice version 7.3.0.3 on Linux, which can export content as EPUB files.) + +### The EPUB format + +EPUB files are a great way to publish content using an open format. The EPUB file format is XML metadata with XHTML content, inside a zip container. While most technical writers use tools to create EPUB files, because EPUB is based on open standards means you can create your own EPUB files in some other way. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/epub-file + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/find-file-linux-code_magnifying_glass_zero.png +[2]: https://opensource.com/downloads/guide-c-programming From 7d01b020fc385a7dcc4e55545ed8da031c2f87e8 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:25:40 +0800 Subject: [PATCH 0773/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220816=20Marktext=20is=20an=20Excellent=20Editor?= =?UTF-8?q?=20Even=20for=20Those=20Who=20Don-t=20Know=20Markdown.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Even for Those Who Don-t Know Markdown.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md diff --git a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md new file mode 100644 index 0000000000..683a2bd3fc --- /dev/null +++ b/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md @@ -0,0 +1,132 @@ +[#]: subject: "Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown" +[#]: via: "https://itsfoss.com/marktext-editor/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown +====== +Another Markdown editor? Have we not seen all kinds of Markdown editors already? + +I understand that feeling. If you are a Markdown lover, from [Joplin][1] to [Zettlr][2], you have tried most of them. And if you are not a Markdown fan, you probably don’t care about these editors. + +Markdown is an excellent markup language specially for people who write for the web. I am not going to go into the details here. We have an [excellent Markdown starters guide][3] if you are interested in learning more about it. + +My focus here is on introducing you to (another) Markdown editor, It’s called [Marktext][4] and it is an Electron app (don’t hate me just yet). + +I found it to be an excellent editor. It works as good as it looks. Let me share my experience and its features. + +### Marktext: A Markdown editor for everyone + +Hate [Electron framework][5] as much as possible but you cannot deny that Electron-based applications have a clean, modern interface. + +![Marktext interface][6] + +I prefer dark mode and hence I switched the theme. There are six themes in total for you to choose from. + +![Marktext dark theme][7] + +You can start writing the text immediately. If you don’t remember the text, don’t worry. Just use the insert option with @ and it will give you a number of options such as: + +* Headings +* Divider line +* Table +* Mathematical equations +* HTML block +* Code block +* Quote block +* Lists +* Checklist +* Diagrams using vega-lite.js, flowchart.js, js-sequence and PlantUML + +![Use various document elements in the editor by pressing @][8] + +Select part of text and it gives you additional formatting option to change the text to bold, italic, underline, strike out. You can also highlight the text with yellow background text, convert them in inline code or inline math and create hyperlinks. + +![Text formatting options][9] + +Marktext also supports images. Though you know that images are not part of markdown (.md) file. They are external elements but you have the option to create a local assets folder in the same location where your Markdown file is saved. + +![Images are supported too][10] + +Adding image could have been made easier by including it in the insert menu. At the monet, you can add images by select texting and chosing the image option from the format options or use Ctrl+Shift+I keys. There is no scope for adding alt text or captions to the images. This should be improved. + +I liked the tables feature in Marktext. You can insert table with predefined size. If you changed your mind, you can resize it as easily. You can move the rows and columns, all with mouse drag and drop without touching the underlying code. + +![Tables are very well supported in Marktext][11] + +You can enable the sidebar view. The sidebar gives you three options. You can open folders containing multiple markdown files, perform a global search in all the files in the opened folder and show table of contents for the currently opened file. The table of content is automatically generated based on the subheadings. + +![Sidebar view has three options: Show folder content, global search and table of content][12] + +The gear icon at the bottom gives you additional settings to configure the editor. You can choose the themes, change image settings, views, enable auto-save and modify many more settings. + +![Configuration and settings][13] + +### Installing Marktext + +Marktext is a cross-platform, open source application. Along with Linux, it is available for Windows and macOS. + +For Linux, you get the options of AppImage and Flatpak. You can get the AppImage from[the release page][14]. + +I chose the Flatpak version for better system integration. And it did work well because Marktext automatically became the default editor for .md files on my Ubuntu 22.04 system. + +Please ensure that you have Flatpak support enabled on your system and then add Flathub repo: + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +After that, use the command below to install it on your system: + +``` +flatpak install flathub com.github.marktext.marktext +``` + +If you don’t like it, you can remove it using this command: + +``` +fkatpak uninstall com.github.marktext.marktext +``` + +### Verdict + +There are plenty of small features like word count, math latex, spell checker or copy-pasting as markdown or HTML and I leave them up to you to discover. + +I’ll be honest. Despite using Markdown for writing articles for years, I don’t remember all the syntaxes. I remember the common ones for headings, lists, code block etc but if I have to create a table, I’ll have to search the web. + +I have [experimented with a number of markdown editors][15] and there are plenty of good ones there. However, I took an instant liking to Marktext and it is going to be on my system for a long time. + +If you try it, do share your experience in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/marktext-editor/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/joplin/ +[2]: https://itsfoss.com/zettlr-markdown-editor/ +[3]: https://itsfoss.com/markdown-guide/ +[4]: https://github.com/marktext/marktext/ +[5]: https://www.electronjs.org/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-interface.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-dark-theme.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-insert-options.png +[9]: https://itsfoss.com/wp-content/uploads/2022/08/text-formatting-options-marktext.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/images-in-marktext.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/tables-in-marktext.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/sidebar-view-marktext.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-settings.png +[14]: https://github.com/marktext/marktext/releases +[15]: https://itsfoss.com/best-markdown-editors-linux/ From 6759d250381d221497b3f88ec607543332577259 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:26:49 +0800 Subject: [PATCH 0774/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220816=20Check=20Disk=20Space=20Using=20Agedu=20In?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 Check Disk Space Using Agedu In Linux.md | 347 ++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 sources/tech/20220816 Check Disk Space Using Agedu In Linux.md diff --git a/sources/tech/20220816 Check Disk Space Using Agedu In Linux.md b/sources/tech/20220816 Check Disk Space Using Agedu In Linux.md new file mode 100644 index 0000000000..c24dec3cbc --- /dev/null +++ b/sources/tech/20220816 Check Disk Space Using Agedu In Linux.md @@ -0,0 +1,347 @@ +[#]: subject: "Check Disk Space Using Agedu In Linux" +[#]: via: "https://ostechnix.com/agedu-find-out-wasted-disk-space-in-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Check Disk Space Using Agedu In Linux +====== +Find Wasted Disk Space With Agedu + +Running out of disk space? It is time to find out which directories and files are occupying the most disk space. Fortunately, checking Linux disk space is made easier with **Agedu** utility. This guide explains **what is Agedu**, how to install Agedu, and how to **check disk space** in Linux and **find wasted disk space using Agedu**. + +### What Is Agedu? + +**Agedu** is a command line utility that tracks down the wasted disk space in your Linux system. Agedu works just like as [du command][1]. It scans your hard disk and displays the disk usage result in the Terminal window. + +Agedu has a built-in web server, so we can display the result as a neatly organized HTML report in different colors in our web browser. + +It distinguishes the data in different colors. The red color represents the data that has been accessed a long time ago, Green represents the recently accessed data, and the spectrum through orange and yellow represents points in between. + +By analyzing the colored output, we can immediately get a grasp of which directories and files have been used frequently and which data have been stagnated. + +Once we find out the stagnated data, we can simply delete them if they are no longer needed or move them safely to an archive medium to free up some disk space. + +Agedu has both CLI and web-based interface. You can view the disk usage report either from the Terminal window or from a web browser. + +Agedu is a cross-platform utility. It works on Linux, Unix and Windows operating systems. It is an open source program and is released under MIT license. + +Let us go ahead and see how to use agedu to find wasted disk space in Linux with practical examples. + +### Install Agedu in Linux + +Agedu is packaged for popular Linux distributions and is available in the default repositories of some Linux versions. + +**Install Agedu in Arch Linux:** + +Agedu is available in AUR, so you can install it on Arch Linux, EndeavourOS and Manjaro Linux an **AUR** helper programs, such as [Paru][2] or [Yay][3]. + +``` +$ paru -S agedu +``` + +Or, + +``` +$ yay -S agedu +``` + +**Install Agedu in Debian, Ubuntu, Linux Mint, Pop OS:** + +Agedu is available in the default repositories of Debian-based systems like Ubuntu, Linux Mint, and Pop OS. To install Agedu in Debian and Ubuntu, run: + +``` +$ sudo apt install agedu +``` + +**Install Agedu in Fedora, RHEL and its clones:** + +On RPM based distributions like Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux, add **[EPEL]** repository using command: + +``` +$ sudo dnf install epel-release +``` + +And then, install agedu as shown below. + +``` +$ sudo dnf install agedu +``` + +On older RPM-based systems, replace `dnf` with `yum` in the above commands. + +### Check Disk Space With Agedu In Linux + +The usage of agedu utility is trivial. The syntax of agedu is: + +``` +agedu [ options ] action [action...] +``` + +Let us see some examples. + +Open the Terminal and run the following command to scan $HOME directory. + +``` +$ agedu -s /home/ostechnix/ +``` + +**Sample output:** + +``` +Built pathname index, 6731 entries, 684647 bytes of index +Faking directory atimes +Building index +Final index file size = 1475496 bytes +``` + +![Scan A Directory With Agedu In Linux][4] + +This command will create data index file called "`agedu.dat` " in the current working directory. + +#### View Linux Disk Space Usage Reports With Agedu + +To query the disk space report from the index file which we created in the previous step, run: + +``` +$ agedu -t /home/ostechnix/ +``` + +**Sample output:** + +``` +30288 /home/ostechnix/.cache +6804 /home/ostechnix/.config +3875876 /home/ostechnix/.docker +40 /home/ostechnix/.gnupg +864 /home/ostechnix/.local +12 /home/ostechnix/.password-store +76 /home/ostechnix/.pki +512 /home/ostechnix/Downloads +604 /home/ostechnix/descent +5844 /home/ostechnix/dotfile +39076 /home/ostechnix/grub2-themes +335188 /home/ostechnix/snap +4684516 /home/ostechnix +``` + +Let us narrow down the report more specifically. Say for example, to list the files which are not viewed or accessed for last 2 days and more, run: + +``` +$ agedu -t /home/ostechnix/ -a 2d +``` + +**Sample output:** + +``` +15216 /home/ostechnix/.cache +5740 /home/ostechnix/.config +51052 /home/ostechnix/.docker +40 /home/ostechnix/.gnupg +328 /home/ostechnix/.local +12 /home/ostechnix/.password-store +512 /home/ostechnix/Downloads +604 /home/ostechnix/descent +5844 /home/ostechnix/dotfile +39076 /home/ostechnix/grub2-themes +335028 /home/ostechnix/snap +842756 /home/ostechnix +``` + +Similarly, just replace letter **"d"** with **"w"**for**weeks, "m"**for**months, "y"**for**years**. + +For instance, you can view the files which are not accessed for the past two weeks using this command: + +``` +$ agedu -t /home/ostechnix/ -a 2w +``` + +#### Get Disk Space Reports Of Particular File Types + +Agedu offers many useful options to track down the disk usage. One among them is view reports of a particular file type. + +For example, let us generate the report of txt files using command: + +``` +$ agedu -s . --exclude '*' --include '*.txt' +``` + +**Sample output:** + +``` +Built pathname index, 714 entries, 59257 bytes of index +Faking directory atimes +Building index +Final index file size = 189056 bytes +``` + +The above command will scan the disk usage taken only by the .txt files and excludes all other files in the current directory. + +Likewise, to scan a particular path, just specify it as shown below. + +``` +$ sudo agedu -s /home/ostechnix/Downloads --exclude '*' --include '*.txt' +``` + +To view the report, run: + +``` +$ sudo agedu -t /home/ostechnix/Downloads +``` + +#### View Disk Space Usage Reports In Web Browser + +To generate HTML report and view it on the web browser, run: + +``` +$ agedu -w --auth none +``` + +You can use just **"sudo agedu -w"**, however **"--auth none"** option will eliminate the 403 forbidden error. + +**Sample output:** + +``` +URL: http://localhost:33239/ +``` + +The HTML report of disk usage has been generated. Let us take a look at it. Open up your web browser and point it to **http://localhost:33239** or **http://IP-Address:33239**. Please note that different port number will be generated each time you run this command. + +![View Disk Space Report Using Agedu In Web Browser][5] + +Click on any directory to view its sub directories disk usage. + +![View Disk Space Report Of Sub-directories Using Agedu In Web Browser][6] + +As you see above, the most used disk space is showed on the top followed by subsequent smaller results. To exit Agedu, go back to the Terminal window where the Agedu is running and press **CTRL+D**. + +Once you find out data which are no longer used for a long time, you can just delete them or move them to any external medium. + +#### Configure Password Authentication For Agedu Web Interface + +Agedu web interface doesn't has authentication by default. However, It has an option to allow us to enable password protection to view the reports in web browser. + +Enter the following command to generate a password to access agedu's web interface. + +``` +$ agedu -w --address localhost:46484 --auth basic +``` + +This command will automatically create a username with password as shown in the output below. Please note down the username and password. + +``` +Username: agedu +Password: 29tj42tdtgrgpa3y +URL: http://localhost:46484/ +``` + +Now, open your web browser and point it to **http://locahost:46484**. This time it will ask you to enter the username and its password. + +![Configure Password Authentication For Agedu Web Interface][7] + +Once you entered the valid username and its password, you can access the agedu web interface. + +#### Define Custom Username And Password + +I don't like the default username and password. I want to define my own. Can I be able to do that? Of course you can. + +To set a custom username with password, run: + +``` +$ agedu -w --address locahost:46484 --auth basic --auth-fd 0 +``` + +Next, enter your custom user and its password as shown below. + +``` +ostechnix:password +``` + +Here **ostechnix** is my username and its password is **password**. It's just an example. I recommend you to use a strong password. + +And then, press `CTRL+D` to exit and return back to Terminal. + +From now, you can access the agedu's web interface using your custom username and password. + +#### Remove Index Files + +After deleting the unused files/directories, remove the index file generated by agedu: + +``` +$ agedu -R +``` + +You can also combine `-w` and `-R` options to view the disk space report and delete the index file after viewing the report like below. + +``` +$ agedu -s /home/ostechnix -w -R +``` + +The above command scans the HOME directory, builds its index, serves disk report via web browser, and cleans it up once you close the browser window. + +#### Set Custom Port For Agedu + +As you see before, agedu serves the result via different random ports each time. You can set a particular port of your liking if you want to. + +To set a port for agedu, run: + +``` +$ agedu -w --address localhost:1234 --auth none +``` + +Here, 1234 is the custom port. Replace it with your own. + +**Sample output:** + +``` +URL: http://localhost:1234/ +``` + +Or just specify the actual IP address. + +``` +$ sudo agedu -w --address 192.168.1.40:1234 +``` + +Now, you can view the report by visiting the URL - **http://localhost:1234** or **http://192.168.1.40:1234** from your browser. + +To exit Agedu, go the terminal where Agedu is running and press **CTRL+D**. + +For more details, refer Agedu manual page. + +``` +$ man agedu +``` + +### Conclusion + +Checking Linux disk space once in a while will help you to clean up unnecessary junk in your hard drive. With the help of Agedu, we can easily check disk space in Linux and track down the wasted disk space and finally remove them if they no longer needed. + +**Resource:** + +* [Agedu home page][8] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/agedu-find-out-wasted-disk-space-in-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/find-size-directory-linux/ +[2]: https://ostechnix.com/how-to-install-paru-aur-helper-in-arch-linux/ +[3]: https://ostechnix.com/yay-found-yet-another-reliable-aur-helper/ +[4]: https://ostechnix.com/wp-content/uploads/2022/08/Find-Wasted-Disk-Space-With-Agedu-In-Linux.png +[5]: https://ostechnix.com/wp-content/uploads/2022/08/View-Disk-Space-Report-Using-Agedu-In-Web-Browser.png +[6]: https://ostechnix.com/wp-content/uploads/2022/08/View-Disk-Space-Report-Of-Sub-directories-Using-Agedu-In-Web-Browser.png +[7]: https://ostechnix.com/wp-content/uploads/2022/08/Configure-Password-Authentication-For-Agedu-Web-Interface.png +[8]: http://www.chiark.greenend.org.uk/~sgtatham/agedu/ From fee77d6f6989fe8767e9449fbbc53482064cded1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:28:23 +0800 Subject: [PATCH 0775/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220816=20Linux=20Kernel=206.0=20RC1=20is=20out=20w?= =?UTF-8?q?ith=20Run-Time=20Kernel=20Verification.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s out with Run-Time Kernel Verification.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md diff --git a/sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md b/sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md new file mode 100644 index 0000000000..b9c556d881 --- /dev/null +++ b/sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md @@ -0,0 +1,117 @@ +[#]: subject: "Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification" +[#]: via: "https://www.debugpoint.com/linux-kernel-6-0-rc1/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification +====== +Linus Torvalds releases Linux Kernel 6.0 RC1 for everyone to test, and here’s a feature recap. + +![Linux Kernel 6.0][1] + +Following the [Linux Kernel 5.19][2] released a few days back, Linus [released the first release candidate][3] of Linux 6.0 for testing. It officially closes the merge window for this release while you test. + +### Why 6.0? + +Usually, the mainline Kernel version increases by the minor version and this release should have been Kernel 5.20. However, Linus decided to increase the significant version number, hence the Kernel 6.0. + +> Despite the major number change, there’s nothing fundamentally different about this release – I’ve long eschewed the notion that major numbers are meaningful, and the only reason for a “hierarchical” numbering system is to make the numbers easier to remember and distinguish. Which is why when the minor number gets to around 20 I prefer to just increment the major number instead and reset to something smaller. + +Let’s take a look at what’s in store. + +### Linux Kernel 6.0 RC1 – New Features + +#### Processors + +AMD Zen systems gets a [performance boost][4] with updated NUMA balancing in the Kernel scheduler. + +The Ratbleed speculative execution exploits fixing [continues][5] in this release affecting Intel 8th Gen+ and AMD Zen 1+ CPU family. Although the Ratbleed has not yet been found in the wild (only in Lab), the fix continues in this Kernel. + +Lenovo and AMD [bring][6] the Automatic Mode Transition (AMT) support for Ryzen power ThinkPad laptops. This feature should give firmware-based power handling in those laptops with better efficiency. + +New audio hardware [support][7] for AMD Ryzen 7000 desktop processors (Raphael) lands in this release with ACP 6.x support. + +AMD is [preparing][8] for the release day with additional Instruction based sampling support for the Zen 4 series. + +More CPU [temperature monitoring code][9] lands for AMD 17th and 19th family of models. + +Initial work starts landing for Lenovo’s ARM Laptop X13 featuring Qualcomm Snapdragon 8cx Gen3 (SC8280XP) CPU. + +Likewise, in all releases, a bunch of SOC chips get support in Linux Kernel 6. The most notable ones include NXP i.MX93 SoC (primarily used for smart devices in home solutions). + +Here’s a quick list (not complete) of the SOCs that gets [support][10] in this instalment. + +* Broadcom SOCs for broadband devices * BCM63178 * BCM63158 * BCM4912 * BCM6858 * BCM6878 * BCM6846 * BCM63146 * BCM6856 * BCM6855 * BCM6756 * BCM63148 * BCM6813 +* Allwinner’s H616 (IPTV, OTT streaming) +* Marvell Prestera 98DX2530 +* Google Chameleon v3 FPGA + +In addition, a bunch of RISC-V processor code was introduced with an aim to support it in future. + +#### GPU + +Work continues in this Kernel release for Intel DG2/Alchemist and AMD RDNA3 graphics cards; the support is entirely not there but is in progress for future versions. + +A bunch of frame buffer device driver [update][11] (mostly fixes) arrives for Atari GPUs. Most noteworthy are the patchsets to fix VGA modes, colour handling and numerous code clean-ups. + +Intel Meteor Lake GPU [support][12] is starting up in this release. + +#### Storage and file systems + +Like all releases, the famous and supported file systems are updated and improved. + +Since the usage of SSDs is increasing, the flash-friendly file system (F2FS) [enhances][13] memory handling, garbage collection optimization and more. + +One Microsoft employee provides a [patch][14] to improve locking performance & reliability for CIF/SMB3 protocol to improve multi-channel operation over the network. + +#### Additional Changes + +Other noteworthy changes across this Kernel release include early work for Wi-Fi 7 support, more feature updates on the ongoing random number generation and setting up system hostname via Kernel parameter. + +Furthermore, one of the vital features is the “Run-Time Verification” codebase which helps Linux run in safety-critical infrastructure. The method takes an approach where the system specification instruction set is compared against the actual execution instruction set by re-implementing instruction sets at run-time. This is based on a paper which you can read [here][15]. The actual patch is present on this [page][16]. + +### Download + +You can download the source tree from the following page: + +| - | - | - | - | - | +| :- | :- | :- | :- | :- | +| mainline: | 6.0-rc1 | [tarball] | [patch] | [browse] | + +If you are running benchmarks, testing new hardware and finding issues, report to the Kernel mailing list. + +The Linux Kernel 6.0 is expected to be released by the beginning of Q4 2022, i.e. October timeframe. Hence, Ubuntu 22.10 may get this version (although I am doubtful about that). + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-kernel-6-0-rc1/ + +作者:[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/08/kernel6rc1.jpg +[2]: https://www.debugpoint.com/2022/05/linux-kernel-5-18/ +[3]: https://lore.kernel.org/lkml/CAHk-=wgRFjPHV-Y_eKP9wQMLFDgG+dEUHiv5wC17OQHsG5z7BA@mail.gmail.com/T/#u +[4]: https://lore.kernel.org/lkml/Yufc5Mq1aqLVV%2FOv@gmail.com/T/#u +[5]: https://lore.kernel.org/lkml/Yvd%2Fg8RODN%2FpSkCX@gmail.com/T/#u +[6]: https://lore.kernel.org/lkml/19d29009-ab84-fffc-82dd-9754e65b092e@redhat.com/ +[7]: https://www.phoronix.com/news/AMD-Raphael-Audio-Driver-Linux +[8]: https://lkml.org/lkml/2022/8/4/694 +[9]: https://lore.kernel.org/lkml/Yue6jQd37wpssGeZ@zn.tnic/ +[10]: https://lore.kernel.org/linux-arm-kernel/CAK8P3a1DVcc=AV29AJJxMzBVoU-grFaNet0ndxPgPFvpK-ZANQ@mail.gmail.com/T/ +[11]: https://lore.kernel.org/lkml/Yu7J2Yj6UyAiE2Ne@ls3530/ +[12]: https://lists.freedesktop.org/archives/dri-devel/2022-July/364441.html +[13]: https://lore.kernel.org/lkml/YvE6fO1r0znOdr60@google.com/ +[14]: https://lore.kernel.org/lkml/CAH2r5mvaTWyWnPpYk=OPCbud85LEo5Oj=K2ZK56jmri6452zRQ@mail.gmail.com/ +[15]: https://dl.acm.org/doi/abs/10.1007/978-3-030-30446-1_17 +[16]: https://lore.kernel.org/lkml/20220803112014.7ffed04e@gandalf.local.home/ From 5c0250801ac937b45fe166507b963a192cb6bb9d Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:31:38 +0800 Subject: [PATCH 0776/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220816=20The=20Effect=20of=20Nvidia-s=20Open=20Sou?= =?UTF-8?q?rce=20Drivers=20On=20Linux=20Gamers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...a-s Open Source Drivers On Linux Gamers.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 sources/talk/20220816 The Effect of Nvidia-s Open Source Drivers On Linux Gamers.md diff --git a/sources/talk/20220816 The Effect of Nvidia-s Open Source Drivers On Linux Gamers.md b/sources/talk/20220816 The Effect of Nvidia-s Open Source Drivers On Linux Gamers.md new file mode 100644 index 0000000000..54800cabbf --- /dev/null +++ b/sources/talk/20220816 The Effect of Nvidia-s Open Source Drivers On Linux Gamers.md @@ -0,0 +1,34 @@ +[#]: subject: "The Effect of Nvidia’s Open Source Drivers On Linux Gamers" +[#]: via: "https://www.opensourceforu.com/2022/08/the-effect-of-nvidias-open-source-drivers-on-linux-gamers/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Effect of Nvidia’s Open Source Drivers On Linux Gamers +====== +The community will receive an open source driver from Nvidia for the first time with the release of the R515 driver, which should make it easier for Linux users to use Nvidia graphics cards in their computers. It is advantageous for Nvidia to support more open source technological standards. Unfortunately, Nvidia has not consistently embraced open sourcing software, which has led to some controversy in their user group. However, this might be improving with the new R515 driver. + +People have been pleading for Nvidia to make their driver software more accessible, like firms like Intel and AMD that offer open source drivers for their goods. But up until now, Nvidia’s drivers have been closed-source, which doesn’t present too many problems for Windows users but makes utilising Nvidia GPUs more difficult to optimise for the Linux community. Unlike AMD drivers, which are open source and enable developers to fully see how the drivers were coded, Nvidia drivers are closed-source, making it impossible for developers to examine the source code of a driver and create their software with a complete understanding of how the drivers were created. + +So how will Linux gaming be impacted by Nvidia’s new R515 drive? Most likely, it won’t have a significant impact right away. Nvidia GPUs can be used for gaming on Linux because the company offers Linux drivers, despite the fact that they are proprietary. Numerous Linux distributions, including PopOS, will automatically install Nvidia drivers for the user. However, if Nvidia keeps releasing its drivers as open source software over time, Linux developers will be able to benefit from the advantages that open sourcing drivers has provided for AMD, such as increased compatibility and a variety of driver options, either proprietary or open source, depending on what the user requires. In the same way that AMD and Intel are the most dependable choices on Linux in comparison to Nvidia, being open source can also aid in the development of drivers and boost dependability for Linux. + +Because of how amazing Nvidia’s proprietary drivers have always been on Windows and how great they are generally on Linux, many gamers and Linux users continue to utilise Nvidia GPUs rather than exclusively AMD. Before the R515 driver, there was also a free and open-source Nvidia driver named Nouveau. The official Nvidia proprietary drivers were generally faster and more dependable than this driver. This is most likely caused by Nouveau not being the official open source driver from Nvidia and instead being a product of Nvidia driver reverse engineering. Another drawback of Nouveau is that it does not enable GPU reclocking, which is a major obstacle for customers who want to overclock their Nvidia GPU. + +Overall, the news that Nvidia will now officially offer open source drivers is a significant plus. Since the drivers are now open source, the community will be able to assist in the development of new drivers, giving developers far more information about the drivers they are creating applications and games for. Over time, Linux will also gain since it has a high chance of being just as dependable and compatible with Nvidia GPUs as it is with AMD and Intel, which will improve gaming performance and efficiency. Nvidia’s decision to make its software open source may continue to increase pressure on other tech companies to disclose more information about their products, which will support a more liberal and open future for technology. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/the-effect-of-nvidias-open-source-drivers-on-linux-gamers/ + +作者:[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 From 0f15e9f52e6da42d786905d9ea0f73b7528de875 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 16 Aug 2022 21:38:55 +0800 Subject: [PATCH 0777/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][talk]:=2020220816=20My=20practical=20advice=20for=20new=20pro?= =?UTF-8?q?grammers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../talk/20220816 My practical advice for new programmers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220816 My practical advice for new programmers.md b/sources/talk/20220816 My practical advice for new programmers.md index 16ea7f1293..e9dace75e3 100644 --- a/sources/talk/20220816 My practical advice for new programmers.md +++ b/sources/talk/20220816 My practical advice for new programmers.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/coding-advice-new-programmers" [#]: author: "Sachin Samal https://opensource.com/users/sacsam005" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lkxed" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ea611f30ec3927a8fda96e5fa48a47cb2860d377 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 17 Aug 2022 05:02:47 +0800 Subject: [PATCH 0778/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220814?= =?UTF-8?q?=204=20cool=20new=20projects=20to=20try=20in=20Copr=20for=20Aug?= =?UTF-8?q?ust=202022?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220814 4 cool new projects to try in Copr for August 2022.md --- ...projects to try in Copr for August 2022.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 sources/tech/20220814 4 cool new projects to try in Copr for August 2022.md diff --git a/sources/tech/20220814 4 cool new projects to try in Copr for August 2022.md b/sources/tech/20220814 4 cool new projects to try in Copr for August 2022.md new file mode 100644 index 0000000000..10e3b10759 --- /dev/null +++ b/sources/tech/20220814 4 cool new projects to try in Copr for August 2022.md @@ -0,0 +1,145 @@ +[#]: subject: "4 cool new projects to try in Copr for August 2022" +[#]: via: "https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-august-2022/" +[#]: author: "Jiri Kyjovsky https://fedoramagazine.org/author/nikromen/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 cool new projects to try in Copr for August 2022 +====== + +![4 packages to try from the Copr repos][1] + +[Copr][2] is a build system for anyone in the Fedora community. It hosts thousands of projects for various purposes and audiences. Some of them should never be installed by anyone, some are already being transitioned to the official Fedora Linux repositories, and the rest are somewhere in between. Copr gives you the opportunity to install third-party software that is not available in Fedora Linux repositories, try nightly versions of your dependencies, use patched builds of your favorite tools to support some non-standard use cases, and just experiment freely. + +If you don’t know [how to enable a repository][3] or if you are concerned about whether [it is safe to use Copr][4], please consult the [project documentation][5]. + +This article takes a closer look at interesting projects that recently landed in Copr. + +### **Ntfy** + +[Ntfy][6] is a simple HTTP-based notification service that allows you to send notifications to your devices using scripts from any computer. To send notifications ntfy uses PUT/POST commands or it is possible to send notifications via ntfy __CLI without any registration or login_._ For this reason, choose a hard-to guess topic name, as this is essentially a password. + +In the case of sending notifications, it is as simple as this: + +``` + + $ ntfy publish beer-lovers "Hi folks. I love beer!" + {"id":"4ZADC9KNKBse", "time":1649963662, "event":"message", "topic":"beer-lovers", "message":"Hi folks. I love beer!"} + +``` + +And a listener who subscribes to this topic will receive: + +``` + + $ ntfy subscribe beer-lovers + {"id":"4ZADC9KNKBse", "time":1649963662, "event":"message", "topic":"beer-lovers", "message":"Hi folks. I love beer!"} + +``` + +If you wish to receive notifications on your phone, then ntfy also has a [mobile app][7] for Android so you can send notifications from your laptop to your phone. + +![][8] + +#### **Installation instructions** + +The [repo][9] currently provides _ntfy_ for Fedora Linux 35, 36, 37, and Fedora Rawhide. To install it, use these commands: + +``` + + sudo dnf copr enable cyqsimon/ntfysh + sudo dnf install ntfysh + +``` + +### Koi + +If you use light mode during the day but want to protect your eyesight overnight and switch to dark mode, you don’t have to do it manually anymore. [Koi][10] will do it for you! + +Koi provides KDE Plasma Desktop functionality to automatically switch between light and dark mode according to your preferences. Just set the time and themes. + +![][11] + +#### **Installation instructions** + +The [repo][12] currently provides _Koi_ for Fedora Linux 35, 36, 37, and Fedora Rawhide. To install it, use these commands: + +``` + + sudo dnf copr enable birkch/Koi + sudo dnf install Koi + +``` + +### **SwayNotificationCenter** + +[SwayNotificationCenter][13] provides a simple and nice looking GTK GUI for your desktop notifications. + +You will find some key features such as do-not-disturb mode, a panel to view previous notifications, track pad/mouse gestures, support for keyboard shortcuts, and customizable widgets. SwayNotificationCenter also provides a good way to [configure and customize][14] via JSON and CSS files. + +More information on with screenshots at the bottom of the page. + +#### **Installation instructions** + +The [repo][15] currently provides _SwayNotificationCenter_ for Fedora Linux 35, 36, 37, and Fedora Rawhide. To install it, use these commands: + +``` + + sudo dnf copr enable erikreider/SwayNotificationCenter + sudo dnf install SwayNotificationCenter + +``` + +### **Webapp Manager** + +Ever want to launch your favorite websites from one place? With [WebApp][16] manager, you can save your favorite websites and run them later as if they were an apps. + +You can set a browser in which you want to open the website and much more. For example, with Firefox, all links are always opened within the WebApp. + +![][17] + +#### **Installation instructions** + +The [repo][18] currently provides _WebApp_ for Fedora Linux 35, 36, 37, and Fedora Rawhide. To install it, use these commands: + +``` + + sudo dnf copr enable perabyte/webapp-manager + sudo dnf install webapp-manager + +``` + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-august-2022/ + +作者:[Jiri Kyjovsky][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/nikromen/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2017/08/4-copr-945x400.jpg +[2]: https://copr.fedorainfracloud.org/ +[3]: https://docs.pagure.org/copr.copr/how_to_enable_repo.html#how-to-enable-repo +[4]: https://docs.pagure.org/copr.copr/user_documentation.html#is-it-safe-to-use-copr +[5]: https://docs.pagure.org/copr.copr/user_documentation.html +[6]: https://github.com/binwiederhier/ntfy +[7]: https://play.google.com/store/apps/details?id=io.heckel.ntfy +[8]: https://fedoramagazine.org/wp-content/uploads/2022/08/beer.jpg +[9]: https://copr.fedorainfracloud.org/coprs/cyqsimon/ntfysh/ +[10]: https://github.com/baduhai/Koi +[11]: https://fedoramagazine.org/wp-content/uploads/2022/08/Screenshot_20220813_133028.png +[12]: https://copr.fedorainfracloud.org/coprs/birkch/Koi/ +[13]: https://github.com/ErikReider/SwayNotificationCenter +[14]: https://github.com/ErikReider/SwayNotificationCenter#scripting +[15]: https://copr.fedorainfracloud.org/coprs/erikreider/SwayNotificationCenter/ +[16]: https://github.com/linuxmint/webapp-manager +[17]: https://fedoramagazine.org/wp-content/uploads/2022/08/Screenshot_20220810_182415.png +[18]: https://copr.fedorainfracloud.org/coprs/perabyte/webapp-manager/ From 6bb044e7392622ca9163d6e3f245864596a07415 Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Tue, 16 Aug 2022 16:58:56 -0500 Subject: [PATCH 0779/3123] Finished translating. --- ...921 3 ways to test your API with Python.md | 513 ------------------ ...921 3 ways to test your API with Python.md | 501 +++++++++++++++++ 2 files changed, 501 insertions(+), 513 deletions(-) delete mode 100644 sources/tech/20210921 3 ways to test your API with Python.md create mode 100644 translated/tech/20210921 3 ways to test your API with Python.md diff --git a/sources/tech/20210921 3 ways to test your API with Python.md b/sources/tech/20210921 3 ways to test your API with Python.md deleted file mode 100644 index f1464864f9..0000000000 --- a/sources/tech/20210921 3 ways to test your API with Python.md +++ /dev/null @@ -1,513 +0,0 @@ -[#]: subject: "3 ways to test your API with Python" -[#]: via: "https://opensource.com/article/21/9/unit-test-python" -[#]: author: "Miguel Brito https://opensource.com/users/miguendes" -[#]: collector: "lujun9972" -[#]: translator: "Yufei-Yan" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -3 ways to test your API with Python -====== -Unit testing can be daunting, but these Python modules will make your -life much easier. -![Puzzle pieces coming together to form a computer screen][1] - -In this tutorial, you'll learn how to unit test code that performs HTTP requests. In other words, you'll see the art of API unit testing in Python. - -Unit tests are meant to test a single unit of behavior. In testing, a well-known rule of thumb is to isolate code that reaches external dependencies. - -For instance, when testing a code that performs HTTP requests, it's recommended to replace the real call with a fake call during test time. This way, you can unit test it without performing a real HTTP request every time you run the test. - -The question is, _how can you isolate the code?_ - -Hopefully, that's what I'm going to answer in this post! I'll not only show you how to do it but also weigh the pros and cons of three different approaches. - -Requirements: - - * [Python 3.8][2] - * pytest-mock - * requests - * flask - * responses - * VCR.py - - - -### Demo app using a weather REST API - -To put this problem in context, imagine that you're building a weather app. This app uses a third-party weather REST API to retrieve weather information for a particular city. One of the requirements is to generate a simple HTML page, like the image below: - -![web page displaying London weather][3] - -The weather in London, OpenWeatherMap. Image is the author's own. - -To get the information about the weather, you must find it somewhere. Fortunately, [OpenWeatherMap][2] provides everything you need through its REST API service. - -_Ok, that's cool, but how can I use it?_ - -You can get everything you need by sending a `GET` request to: `https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}&units=metric`. For this tutorial, I'll parameterize the city name and settle on the metric unit. - -### Retrieving the data - -To retrieve the weather data, use `requests`. You can create a function that receives a city name as a parameter and returns a JSON. The JSON will contain the temperature, weather description, sunset, sunrise time, and so on. - -The example below illustrates such a function: - - -``` -def find_weather_for(city: str) -> dict: -    """Queries the weather API and returns the weather data for a particular city.""" -    url = API.format(city_name=city, api_key=API_KEY) -    resp = requests.get(url) -    return resp.json() -``` - -The URL is made up of two global variables: - - -``` -BASE_URL = "" -API = BASE_URL + "?q={city_name}&appid={api_key}&units=metric" -``` - -The API returns a JSON in this format: - - -``` -{ -  "coord": { -    "lon": -0.13, -    "lat": 51.51 -  }, -  "weather": [ -    { -      "id": 800, -      "main": "Clear", -      "description": "clear sky", -      "icon": "01d" -    } -  ], -  "base": "stations", -  "main": { -    "temp": 16.53, -    "feels_like": 15.52, -    "temp_min": 15, -    "temp_max": 17.78, -    "pressure": 1023, -    "humidity": 72 -  }, -  "visibility": 10000, -  "wind": { -    "speed": 2.1, -    "deg": 40 -  }, -  "clouds": { -    "all": 0 -  }, -  "dt": 1600420164, -  "sys": { -    "type": 1, -    "id": 1414, -    "country": "GB", -    "sunrise": 1600407646, -    "sunset": 1600452509 -  }, -  "timezone": 3600, -  "id": 2643743, -  "name": "London", -  "cod": 200 -``` - -The data is returned as a Python dictionary when you call `resp.json()`. In order to encapsulate all the details, you can represent them as a `dataclass`. This class has a factory method that gets the dictionary and returns a `WeatherInfo` instance. - -This is good because you keep the representation stable. For example, if the API changes the way it structures the JSON, you can change the logic in just one place, the `from_dict` method. Other parts of the code won't be affected. You can even get information from different sources and combine them in the `from_dict` method! - - -``` -@dataclass -class WeatherInfo: -    temp: float -    sunset: str -    sunrise: str -    temp_min: float -    temp_max: float -    desc: str - -    @classmethod -    def from_dict(cls, data: dict) -> "WeatherInfo": -        return cls( -            temp=data["main"]["temp"], -            temp_min=data["main"]["temp_min"], -            temp_max=data["main"]["temp_max"], -            desc=data["weather"][0]["main"], -            sunset=format_date(data["sys"]["sunset"]), -            sunrise=format_date(data["sys"]["sunrise"]), -        ) -``` - -Now, you'll create a function called `retrieve_weather`. You'll use this function to call the API and return a `WeatherInfo` so you can build your HTML page. - - -``` -def retrieve_weather(city: str) -> WeatherInfo: -    """Finds the weather for a city and returns a WeatherInfo instance.""" -    data = find_weather_for(city) -    return WeatherInfo.from_dict(data) -``` - -Good, you have the basic building blocks for our app. Before moving forward, unit test those functions. - -### 1\. Testing the API using mocks - -[According to Wikipedia][4], a mock object is an object that simulates the behavior of a real object by mimicking it. In Python, you can mock any object using the `unittest.mock` lib that is part of the standard library. To test the `retrieve_weather` function, you can then mock `requests.get` and return static data. - -#### pytest-mock - -For this tutorial, you'll use `pytest` as your testing framework of choice. The `pytest` library is very extensible through plugins. To accomplish our mocking goals, use `pytest-mock`. This plugin abstracts a bunch of setups from `unittest.mock` and makes your testing code very concise. If you are curious, I discuss more about it in [another blog post][5]. - -_Ok, enough talking, show me the code._ - -Here's a complete test case for the `retrieve_weather` function. This test uses two fixtures: One is the `mocker` fixture provided by the `pytest-mock` plugin. The other one is ours. It's just the static data you saved from a previous request. - - -``` -@pytest.fixture() -def fake_weather_info(): -    """Fixture that returns a static weather data.""" -    with open("tests/resources/weather.json") as f: -        return json.load(f) - -[/code] [code] - -def test_retrieve_weather_using_mocks(mocker, fake_weather_info): -    """Given a city name, test that a HTML report about the weather is generated -    correctly.""" -    # Creates a fake requests response object -    fake_resp = mocker.Mock() -    # Mock the json method to return the static weather data -    fake_resp.json = mocker.Mock(return_value=fake_weather_info) -    # Mock the status code -    fake_resp.status_code = HTTPStatus.OK - -    mocker.patch("weather_app.requests.get", return_value=fake_resp) - -    weather_info = retrieve_weather(city="London") -    assert weather_info == WeatherInfo.from_dict(fake_weather_info) -``` - -If you run the test, you get the following output: - - -``` -============================= test session starts ============================== -...[omitted]... -tests/test_weather_app.py::test_retrieve_weather_using_mocks PASSED      [100%] -============================== 1 passed in 0.20s =============================== -Process finished with exit code 0 -``` - -Great, your tests pass! But... Life is not a bed of roses. This test has pros and cons. I'll take a look at them. - -#### Pros - -Well, one pro already discussed is that by mocking the API's return, you make your tests easier. Isolate the communication with the API and make the test predictable. It will always return what you want. - -#### Cons - -As for cons, the problem is, what if you don't want to use `requests` anymore and decide to go with the standard library's `urllib`. Every time you change the implementation of `find_weather_for`, you will have to adapt the test. A good test doesn't change when your implementation changes. So, by mocking, you end up coupling your test with the implementation. - -Also, another downside is the amount of setup you have to do before calling the function—at least three lines of code. - - -``` -... -    # Creates a fake requests response object -    fake_resp = mocker.Mock() -    # Mock the json method to return the static weather data -    fake_resp.json = mocker.Mock(return_value=fake_weather_info) -    # Mock the status code -    fake_resp.status_code = HTTPStatus.OK -... -``` - -_Can I do better?_ - -Yes, please, follow along. I'll see now how to improve it a bit. - -### Using responses - -Mocking `requests` using the `mocker` feature has the downside of having a long setup. A good way to avoid that is to use a library that intercepts `requests` calls and patches them. There is more than one lib for that, but the simplest to me is `responses`. Let's see how to use it to replace `mock`. - - -``` -@responses.activate -def test_retrieve_weather_using_responses(fake_weather_info): -    """Given a city name, test that a HTML report about the weather is generated -    correctly.""" -    api_uri = API.format(city_name="London", api_key=API_KEY) -    responses.add(responses.GET, api_uri, json=fake_weather_info, status=HTTPStatus.OK) - -    weather_info = retrieve_weather(city="London") -    assert weather_info == WeatherInfo.from_dict(fake_weather_info) -``` - -Again, this function makes use of our `fake_weather_info` fixture. - -Next, run the test: - - -``` -============================= test session starts ============================== -... -tests/test_weather_app.py::test_retrieve_weather_using_responses PASSED  [100%] -============================== 1 passed in 0.19s =============================== -``` - -Excellent! This test pass too. But... It's still not that great. - -#### Pros - -The good thing about using libraries like `responses` is that you don't need to patch `requests` ourselves. You save some setup by delegating the abstraction to the library. However, in case you haven't noticed, there are problems. - -#### Cons - -Again, the problem is, much like `unittest.mock`, your test is coupled to the implementation. If you replace `requests`, your test breaks. - -### 2\. Testing the API using an adapter - -_If by using mocks I couple our tests, what can I do?_ - -Imagine the following scenario: Say that you can no longer use `requests`, and you'll have to replace it with `urllib` since it comes with Python. Not only that, you learned the lesson of not coupling test code with implementation, and you want to avoid that in the future. You want to replace `urllib` and not have to rewrite the tests. - -It turns out you can abstract away the code that performs the `GET` request. - -_Really? How?_ - -You can abstract it by using an adapter. The adapter is a design pattern used to encapsulate or wrap the interface of other classes and expose it as a new interface. This way, you can change the adapters without changing our code. For example, you can encapsulate the details about `requests` in our `find_weather_for` and expose it via a function that takes only the URL. - -So, this: - - -``` -def find_weather_for(city: str) -> dict: -    """Queries the weather API and returns the weather data for a particular city.""" -    url = API.format(city_name=city, api_key=API_KEY) -    resp = requests.get(url) -    return resp.json() -``` - -Becomes this: - - -``` -def find_weather_for(city: str) -> dict: -    """Queries the weather API and returns the weather data for a particular city.""" -    url = API.format(city_name=city, api_key=API_KEY) -    return adapter(url) -``` - -And the adapter becomes this: - - -``` -def requests_adapter(url: str) -> dict: -    resp = requests.get(url) -    return resp.json() -``` - -Now it's time to refactor our `retrieve_weather` function: - - -``` -def retrieve_weather(city: str) -> WeatherInfo: -    """Finds the weather for a city and returns a WeatherInfo instance.""" -    data = find_weather_for(city, adapter=requests_adapter) -    return WeatherInfo.from_dict(data) -``` - -So, if you decide to change this implementation to one that uses `urllib`, just swap the adapters: - - -``` -def urllib_adapter(url: str) -> dict: -    """An adapter that encapsulates urllib.urlopen""" -    with urllib.request.urlopen(url) as response: -        resp = response.read() -    return json.loads(resp) - -[/code] [code] - -def retrieve_weather(city: str) -> WeatherInfo: -    """Finds the weather for a city and returns a WeatherInfo instance.""" -    data = find_weather_for(city, adapter=urllib_adapter) -    return WeatherInfo.from_dict(data) -``` - -_Ok, how about the tests?_ - -To test r`etrieve_weather`, just create a fake adapter that is used during test time: - - -``` -@responses.activate -def test_retrieve_weather_using_adapter( -    fake_weather_info, -): -    def fake_adapter(url: str): -        return fake_weather_info - -    weather_info = retrieve_weather(city="London", adapter=fake_adapter) -    assert weather_info == WeatherInfo.from_dict(fake_weather_info) -``` - -If you run the test you get: - - -``` -============================= test session starts ============================== -tests/test_weather_app.py::test_retrieve_weather_using_adapter PASSED    [100%] -============================== 1 passed in 0.22s =============================== -``` - -#### Pros - -The pro for this approach is that you successfully decoupled your test from the implementation. Use [dependency injection][6] to inject a fake adapter during test time. Also, you can swap the adapter at any time, including during runtime. You did all of this without changing the behavior. - -#### Cons - -The cons are that, since you're using a fake adapter for tests, if you introduce a bug in the adapter you employ in the implementation, your test won't catch it. For example, say that we pass a faulty parameter to `requests`, like this: - - -``` -def requests_adapter(url: str) -> dict: -    resp = requests.get(url, headers=<some broken headers>) -    return resp.json() -``` - -This adapter will fail in production, and the unit tests won't catch it. But truth to be told, you also have the same problem with the previous approach. That's why you always need to go beyond unit tests and also have integration tests. That being said, consider another option. - -### 3\. Testing the API using VCR.py - -Now it's finally the time to discuss our last option. I have only found about it quite recently, frankly. I've been using mocks for a long time and always had some problems with them. `VCR.py` is a library that simplifies a lot of the tests that make HTTP requests. - -It works by recording the HTTP interaction the first time you run the test as a flat YAML file called a _cassette_. Both the request and the response are serialized. When you run the test for the second time, `VCR.py` will intercept the call and return a response for the request made. - -Now see how to test `retrieve_weather` using `VCR.py below:` - - -``` -@vcr.use_cassette() -def test_retrieve_weather_using_vcr(fake_weather_info): -    weather_info = retrieve_weather(city="London") -    assert weather_info == WeatherInfo.from_dict(fake_weather_info) -``` - -_Wow, is that it? No setup? What is that `@vcr.use_cassette()`?_ - -Yes, that's it! There is no setup, just a `pytest` annotation to tell VCR to intercept the call and save the cassette file. - -_What does the cassette file look like?_ - -Good question. There's a bunch of things in it. This is because VCR saves every detail of the interaction. - - -``` -interactions: -\- request: -    body: null -    headers: -      Accept: -      - '*/*' -      Accept-Encoding: -      - gzip, deflate -      Connection: -      - keep-alive -      User-Agent: -      - python-requests/2.24.0 -    method: GET -    uri: [https://api.openweathermap.org/data/2.5/weather?q=London\&appid=\][7]<YOUR API KEY HERE>&units=metric -  response: -    body: -      string: '{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":800,"main":"Clear","description":"clearsky","icon":"01d"}],"base":"stations","main":{"temp":16.53,"feels_like":15.52,"temp_min":15,"temp_max":17.78,"pressure":1023,"humidity":72},"visibility":10000,"wind":{"speed":2.1,"deg":40},"clouds":{"all":0},"dt":1600420164,"sys":{"type":1,"id":1414,"country":"GB","sunrise":1600407646,"sunset":1600452509},"timezone":3600,"id":2643743,"name":"London","cod":200}' -    headers: -      Access-Control-Allow-Credentials: -      - 'true' -      Access-Control-Allow-Methods: -      - GET, POST -      Access-Control-Allow-Origin: -      - '*' -      Connection: -      - keep-alive -      Content-Length: -      - '454' -      Content-Type: -      - application/json; charset=utf-8 -      Date: -      - Fri, 18 Sep 2020 10:53:25 GMT -      Server: -      - openresty -      X-Cache-Key: -      - /data/2.5/weather?q=london&units=metric -    status: -      code: 200 -      message: OK -version: 1 -``` - -_That's a lot!_ - -Indeed! The good thing is that you don't need to care much about it. `VCR.py` takes care of that for you. - -#### Pros - -Now, for the pros, I can list at least five things: - - * No setup code. - * Tests remain isolated, so it's fast. - * Tests are deterministic. - * If you change the request, like by using incorrect headers, the test will fail. - * It's not coupled to the implementation, so you can swap the adapters, and the test will pass. The only thing that matters is that you request is the same. - - - -#### Cons - -Again, despite the enormous benefits compared to mocking, there are still problems. - -If the API provider changes the format of the data for some reason, the test will still pass. Fortunately, this is not very frequent, and API providers usually version their APIs before introducing such breaking changes. Also, unit tests are not meant to access the external API, so there isn't much to do here. - -Another thing to consider is having end-to-end tests in place. These tests will call the server every time it runs. As the name says, it's a more broad test and slow. They cover a lot more ground than unit tests. In fact, not every project will need to have them. So, in my view, `VCR.py` is more than enough for most people's needs. - -### Conclusion - -This is it. I hope you've learned something useful today. Testing API client applications can be a bit daunting. Yet, when armed with the right tools and knowledge, you can tame the beast. - -You can find the full app on [my GitHub][8]. - -* * * - -_This article was originally published on the [author's personal blog][9] and has been adapted with permission._ - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/9/unit-test-python - -作者:[Miguel Brito][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/miguendes -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) -[2]: https://miguendes.me/how-i-set-up-my-python-workspace -[3]: https://opensource.com/sites/default/files/sbzkkiywh.jpeg -[4]: https://en.wikipedia.org/wiki/Mock_object -[5]: https://miguendes.me/7-pytest-plugins-you-must-definitely-use -[6]: https://stackoverflow.com/questions/130794/what-is-dependency-injection -[7]: https://api.openweathermap.org/data/2.5/weather?q=London\&appid=\ -[8]: https://github.com/miguendes/tutorials/tree/master/testing_http -[9]: https://miguendes.me/3-ways-to-test-api-client-applications-in-python diff --git a/translated/tech/20210921 3 ways to test your API with Python.md b/translated/tech/20210921 3 ways to test your API with Python.md new file mode 100644 index 0000000000..cdb22697bc --- /dev/null +++ b/translated/tech/20210921 3 ways to test your API with Python.md @@ -0,0 +1,501 @@ +[#]: subject: "3 ways to test your API with Python" +[#]: via: "https://opensource.com/article/21/9/unit-test-python" +[#]: author: "Miguel Brito https://opensource.com/users/miguendes" +[#]: collector: "lujun9972" +[#]: translator: "Yufei-Yan" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 Python 测试 API 的 3 种方式 +===== + +单元测试可能令人生畏,但是这些 Python 模块会使你的生活变得更容易。 + +![Puzzle pieces coming together to form a computer screen][1] + +在这个教程中,你将学到如何对执行 HTTP 请求代码的进行单元测试。也就是说,你将看到用 Python 对 API 进行单元测试的艺术。 + +单元测试是指对单个行为的测试。在测试中,一个众所周知的经验法则就是隔离那些需要外部依赖的代码。 + +比如,当测试一段执行 HTTP 请求的代码时,建议在测试过程中,把真正的调用替换成一个假的的调用。这种情况下,每次运行测试的时候,就可以对它进行单元测试,而不需要执行一个真正的 HTTP 请求。 + +问题就是,_怎样才能隔离这些代码?_ + +这就是我希望在这篇博文中回答的问题!我不仅会向你展示如果去做,而且也会权衡不同方法之间的优点和缺点。 + +要求: + + * [Python 3.8][2] + * pytest-mock + * requests + * flask + * responses + * VCR.py + +### 使用一个天气状况 REST API 的演示程序 + +为了更好的解决这个问题,假设你正在创建一个天气状况的 app。这个 app 使用第三方天气状况 REST API 来检索一个城市的天气信息。其中一个需求是生成一个简单的 HTML 页面,像下面这个图片: + +![web page displaying London weather][3] + +伦敦的天气,OpenWeatherMap。图片是作者自己制作的。 + +为了获得天气的信息,必须得去某个地方找。幸运的是,通过 [OpenWeatherMap][2] 的 REST API 服务,可以获得一切需要的信息。 + +_好的,很棒,但是我该怎么用呢?_ + +通过发送一个 `GET` 请求到:`https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}&units=metric`,就可以获得你所需要的所有东西。在这个教程中,我会把城市名字设置成一个参数,并确定公制单位。 + +### 检索数据 + +使用`请求`requests来检索天气数据。可以创建一个接收城市名字作为参数的函数,然后返回一个 JSON。JSON 包含温度,天气状况的描述,日出和日落时间等数据。 + +下面的例子演示了这样一个函数: + + +``` +def find_weather_for(city: str) -> dict: +    """Queries the weather API and returns the weather data for a particular city.""" +    url = API.format(city_name=city, api_key=API_KEY) +    resp = requests.get(url) +    return resp.json() +``` + +这个 URL 是由两个全局变量构成: + +``` +BASE_URL = "" +API = BASE_URL + "?q={city_name}&appid={api_key}&units=metric" +``` + +API 以这个格式返回了一个 JSON: + +``` +{ +  "coord": { +    "lon": -0.13, +    "lat": 51.51 +  }, +  "weather": [ +    { +      "id": 800, +      "main": "Clear", +      "description": "clear sky", +      "icon": "01d" +    } +  ], +  "base": "stations", +  "main": { +    "temp": 16.53, +    "feels_like": 15.52, +    "temp_min": 15, +    "temp_max": 17.78, +    "pressure": 1023, +    "humidity": 72 +  }, +  "visibility": 10000, +  "wind": { +    "speed": 2.1, +    "deg": 40 +  }, +  "clouds": { +    "all": 0 +  }, +  "dt": 1600420164, +  "sys": { +    "type": 1, +    "id": 1414, +    "country": "GB", +    "sunrise": 1600407646, +    "sunset": 1600452509 +  }, +  "timezone": 3600, +  "id": 2643743, +  "name": "London", +  "cod": 200 +``` + +当调用 `resp.json()` 的时候,数据是以 Python 字典的形式返回的。为了封装所有细节,可以用 `dataclass` 来代表。这个类有一个工厂方法,可以获得这个字典并且返回一个 `WeatherInfo` 实例。 + +这种办法很好,因为可以保持这种表示方法的稳定。比如,如果 API 改变了 JSON 的结构,就可以在同一个地方修改逻辑,在 `from_dict` 方法中。其他代码不会受影响。你也可以从不同的源获得信息,然后把他们都整合到 `from_dict` 方法中。 + + +``` +@dataclass +class WeatherInfo: +    temp: float +    sunset: str +    sunrise: str +    temp_min: float +    temp_max: float +    desc: str + +    @classmethod +    def from_dict(cls, data: dict) -> "WeatherInfo": +        return cls( +            temp=data["main"]["temp"], +            temp_min=data["main"]["temp_min"], +            temp_max=data["main"]["temp_max"], +            desc=data["weather"][0]["main"], +            sunset=format_date(data["sys"]["sunset"]), +            sunrise=format_date(data["sys"]["sunrise"]), +        ) +``` + +现在来创建一个叫做 `retrieve_weather` 的函数。使用这个函数调用 API,然后返回一个 `WeatherInfo`,这样就可创建你自己的 HTML 页面。 + +``` +def retrieve_weather(city: str) -> WeatherInfo: +    """Finds the weather for a city and returns a WeatherInfo instance.""" +    data = find_weather_for(city) +    return WeatherInfo.from_dict(data) +``` + +很好,我们的 app 现在有一些基础了。在继续之前,对这些函数进行单元测试。 + +### 1\. 使用 mock 测试 API + +[根据维基百科][4],模拟对象mock object是通过模仿真实对象来模拟它行为的一个对象。在 Python 中,你可以使用 `unittest.mock` 库来模拟mock任何对象,这个库是标准库中的一部分。为了测试 `retrieve_weather` 函数,可以模拟 `requests.get`,然后返回静态数据。 + +#### pytest-mock + +在这个教程中,会使用 `pytest` 作为测试框架。通过插件,`pytest` 库是非常具有扩展性的。为了完成我们的模拟目标,要用 `pytest-mock`。这个插件抽象化了大量 `unittest.mock` 中的设置,也会让你的代码更简洁。如果你还好奇的话,我在[另一篇博文中][5]会有更多的讨论。 + +_好的,说的够多的了,现在看代码。_ + +下面是一个 `retrieve_weather` 函数的完整测试用例。这个测试使用了两个 fixture:一个是由 `pytest-mock` 插件提供的 `mocker` fixture, 还有一个是我们自己的。就是从之前请求中保存的静态数据。 + + +``` +@pytest.fixture() +def fake_weather_info(): +    """Fixture that returns a static weather data.""" +    with open("tests/resources/weather.json") as f: +        return json.load(f) + +[/code] [code] + +def test_retrieve_weather_using_mocks(mocker, fake_weather_info): +    """Given a city name, test that a HTML report about the weather is generated +    correctly.""" +    # Creates a fake requests response object +    fake_resp = mocker.Mock() +    # Mock the json method to return the static weather data +    fake_resp.json = mocker.Mock(return_value=fake_weather_info) +    # Mock the status code +    fake_resp.status_code = HTTPStatus.OK + +    mocker.patch("weather_app.requests.get", return_value=fake_resp) + +    weather_info = retrieve_weather(city="London") +    assert weather_info == WeatherInfo.from_dict(fake_weather_info) +``` + +如果运行这个测试,会获得下面的输出: + + +``` +============================= test session starts ============================== +...[omitted]... +tests/test_weather_app.py::test_retrieve_weather_using_mocks PASSED      [100%] +============================== 1 passed in 0.20s =============================== +Process finished with exit code 0 +``` + +很好,测试通过了!但是...生活并非一帆风顺。这个测试有优点,也有缺点。现在来看一下。 + +#### 优点 + +好的,有一个之前讨论过的优点就是,通过模拟 API 的返回值,测试变得简单了。将通信和 API 隔离,这样测试就可以预测了。这样总会返回你需要的东西。 + +#### 缺点 + +对于缺点,问题就是,如果不再想用 `requests` 了,并且决定回到标准库的 `urllib`,怎么办。每次改变 `find_weather_for` 的代码,都得去适配测试。好的测试是,当你修改代码实现的时候,测试时不需要改变的。所以,通过模拟,你最终把测试和实现耦合在了一起。 + +而且,另一个不好的方面是你需要在调用函数之前进行大量设置——至少是三行代码。 + + +``` +... +    # Creates a fake requests response object +    fake_resp = mocker.Mock() +    # Mock the json method to return the static weather data +    fake_resp.json = mocker.Mock(return_value=fake_weather_info) +    # Mock the status code +    fake_resp.status_code = HTTPStatus.OK +... +``` + +_我可以做的更好吗?_ + +是的,请继续看。我现在看看怎么改进一点。 +### 使用 responses + +用 `mocker` 功能模拟 `requests` 有点问题,就是有很多设置。避免这个问题的一个好办法就是使用一个库,可以拦截 `requests` 调用并且给他们打补丁patches。有不止一个库可以做这件事,但是对我来说最简单的是 `responses`。我们来看一下怎么用,并且替换 `mock`。 + +``` +@responses.activate +def test_retrieve_weather_using_responses(fake_weather_info): +    """Given a city name, test that a HTML report about the weather is generated +    correctly.""" +    api_uri = API.format(city_name="London", api_key=API_KEY) +    responses.add(responses.GET, api_uri, json=fake_weather_info, status=HTTPStatus.OK) + +    weather_info = retrieve_weather(city="London") +    assert weather_info == WeatherInfo.from_dict(fake_weather_info) +``` + +这个函数再次使用了我们的 `fake_weather_info` fixture。 + +然后运行测试: + + +``` +============================= test session starts ============================== +... +tests/test_weather_app.py::test_retrieve_weather_using_responses PASSED  [100%] +============================== 1 passed in 0.19s =============================== +``` + +非常好!测试也通过了。但是...并不是那么棒。 + +#### 优点 + +使用诸如 `responses` 这样的库,好的方面就是不需要再给 `requests` 打补丁patch。通过将这层抽象交给库,可以减少一些设置。然而,如果你没注意到的话,还是有一些问题。 + +#### 缺点 + +和 `unittest.mock` 很像,测试和实现再一次耦合了。如果替换 `requests`, 测试就不能用了。 + +### 2\. 使用适配器adapter测试 API + +_如果用模拟让测试耦合了,我能做什么?_ + +设想下面的场景:假如说你不能再用 `requests` 了,而且必须要用 `urllib` 替换,因为这是 Python 自带的。不仅仅是这样,你了解了不要把测试代码和实现耦合,并且你想今后都避免这种情况。你想替换 `urllib`,也不想重写测试了。 + +事实证明,你可以抽象出执行 `GET` 请求的代码。 + +_真的吗?怎么做?_ + +可以使用适配器adapter来抽象它。适配器是一种用来封装其他类的接口,并作为新接口暴露出来的一种设计模式。用这种方式,就可以修改适配器而不需要修改代码了。比如,在 `find_weather_for` 函数中,封装关于 `requests` 的所有细节,然后把这部分暴露给只接受 URL 的函数。 + +所以,这个: + +``` +def find_weather_for(city: str) -> dict: +    """Queries the weather API and returns the weather data for a particular city.""" +    url = API.format(city_name=city, api_key=API_KEY) +    resp = requests.get(url) +    return resp.json() +``` + +变成这样: + +``` +def find_weather_for(city: str) -> dict: +    """Queries the weather API and returns the weather data for a particular city.""" +    url = API.format(city_name=city, api_key=API_KEY) +    return adapter(url) +``` + +然后适配器变成这样: + +``` +def requests_adapter(url: str) -> dict: +    resp = requests.get(url) +    return resp.json() +``` + +现在到了重构 `retrieve_weather` 函数的时候: + + +``` +def retrieve_weather(city: str) -> WeatherInfo: +    """Finds the weather for a city and returns a WeatherInfo instance.""" +    data = find_weather_for(city, adapter=requests_adapter) +    return WeatherInfo.from_dict(data) +``` + +所以,如果你决定改为使用 `urllib` 的实现,只要换一下适配器: + + +``` +def urllib_adapter(url: str) -> dict: +    """An adapter that encapsulates urllib.urlopen""" +    with urllib.request.urlopen(url) as response: +        resp = response.read() +    return json.loads(resp) + +[/code] [code] + +def retrieve_weather(city: str) -> WeatherInfo: +    """Finds the weather for a city and returns a WeatherInfo instance.""" +    data = find_weather_for(city, adapter=urllib_adapter) +    return WeatherInfo.from_dict(data) +``` + +_好的,那测试怎么做?_ + +为了测试 `retrieve_weather`, 只要创建一个在测试过程中使用的假的适配器: + +``` +@responses.activate +def test_retrieve_weather_using_adapter( +    fake_weather_info, +): +    def fake_adapter(url: str): +        return fake_weather_info + +    weather_info = retrieve_weather(city="London", adapter=fake_adapter) +    assert weather_info == WeatherInfo.from_dict(fake_weather_info) +``` + +如果运行测试,会获得: + + +``` +============================= test session starts ============================== +tests/test_weather_app.py::test_retrieve_weather_using_adapter PASSED    [100%] +============================== 1 passed in 0.22s =============================== +``` + +#### 优点 + +这个方法的优点是可以成功将测试和实现解耦。使用[依赖注入dependency injection][6]在测试期间注入一个假的适配器。你也可以在任何时候更换适配器,包括在运行时。这些事情都不会改变任何行为。 + +#### 缺点 + +缺点就是,因为你在测试中用了假的适配器,如果在实现中往适配器中引入了一个 bug,测试的时候就不会发现。比如说,往 `requests` 传入了一个有问题的参数,像这样: + +``` +def requests_adapter(url: str) -> dict: +    resp = requests.get(url, headers=) +    return resp.json() +``` + +在生产环境中,适配器会有问题,而且单元测试没办法发现。但是事实是,之前的方法也会有同样的问题。这就是为什么不仅要单元测试,并且总是要集成测试。也就是说,要考虑另一个选项。 + +### 3\. 使用 VCR.py 测试 API + +现在终于到了讨论我们最后一个选项了。诚实地说,我也是最近才发现这个。我用模拟mock也很长时间了,而且总是有一些问题。`VCR.py` 是一个库,它可以简化很多 HTTP 请求的测试。 + +它的工作原理是将第一次运行测试的 HTTP 交互记录为一个 YAML 文件,叫做 _cassette_。请求和响应都会被序列化。当第二次运行测试的时候,`VCT.py` 将拦截对请求的调用,并且返回一个响应。 + +现在看一下下面如何使用 `VCR.py` 测试 `retrieve_weather`: + + +``` +@vcr.use_cassette() +def test_retrieve_weather_using_vcr(fake_weather_info): +    weather_info = retrieve_weather(city="London") +    assert weather_info == WeatherInfo.from_dict(fake_weather_info) +``` + +_天呐,就这样?没有设置?`@vcr.use_cassette()` 是什么?_ + +是的,就这样!没有设置,只要一个 `pytest` 标注告诉 VCR 去拦截调用,然后保存 cassette 文件。 + +_cassette 文件是什么样?_ + +好问题。这个文件里有很多东西。这是因为 VCR 保存了交互中的所有细节。 + + +``` +interactions: +\- request: +    body: null +    headers: +      Accept: +      - '*/*' +      Accept-Encoding: +      - gzip, deflate +      Connection: +      - keep-alive +      User-Agent: +      - python-requests/2.24.0 +    method: GET +    uri: [https://api.openweathermap.org/data/2.5/weather?q=London\&appid=\][7]&units=metric +  response: +    body: +      string: '{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":800,"main":"Clear","description":"clearsky","icon":"01d"}],"base":"stations","main":{"temp":16.53,"feels_like":15.52,"temp_min":15,"temp_max":17.78,"pressure":1023,"humidity":72},"visibility":10000,"wind":{"speed":2.1,"deg":40},"clouds":{"all":0},"dt":1600420164,"sys":{"type":1,"id":1414,"country":"GB","sunrise":1600407646,"sunset":1600452509},"timezone":3600,"id":2643743,"name":"London","cod":200}' +    headers: +      Access-Control-Allow-Credentials: +      - 'true' +      Access-Control-Allow-Methods: +      - GET, POST +      Access-Control-Allow-Origin: +      - '*' +      Connection: +      - keep-alive +      Content-Length: +      - '454' +      Content-Type: +      - application/json; charset=utf-8 +      Date: +      - Fri, 18 Sep 2020 10:53:25 GMT +      Server: +      - openresty +      X-Cache-Key: +      - /data/2.5/weather?q=london&units=metric +    status: +      code: 200 +      message: OK +version: 1 +``` + +_确实很多!_ + +真的!好的方面就是你不需要留意它。`VCR.py` 会为你安排好一切。 + +#### 优点 + +现在看一下优点,我可以至少列出五个: + + * 没有设置代码。 + * 测试仍然是分离的,所以很快。 + * 测试是确定的。 + * 如果你改了请求,比如说用了错误的 header,测试会失败。 + * 没有与代码实现耦合,所以你可以换适配器,而且测试会通过。唯一有关系的东西就是请求必须是一样的。 + + +#### 缺点 + +再与模拟相比较,除了避免了错误,还是有一些问题。 + +如果 API 提供者出于某种原因修改了数据格式,测试仍然会通过。幸运的是,这种情况并不经常发生,而且在这种重大改变之前,API 提供者通常会给他们的 API 提供不同版本。 + +另一个需要考虑的事情是就地in place端到端end-to-end测试。每次服务器运行的时候,这些测试都会调用。顾名思义,这是一个范围更广、更慢的测试。他们会比单元测试覆盖更多。事实上,并不是每个项目都需要使用它们。所以,就我看来,`VCR.py` 对于大多数人的需求来说都绰绰有余。 + +### 总结 + +就这么多了。我希望今天你了解了一些有用的东西。测试 API 客户端应用可能会有点吓人。然而,当武装了合适的工具和知识,你就可以驯服这个野兽。 + +在[我的 Github][8] 上可以找到完整的 app。 + +* * * + +_这篇文章最早发表在[作者的个人博客][9],并且已得到授权_ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/9/unit-test-python + +作者:[Miguel Brito][a] +选题:[lujun9972][b] +译者:[https://github.com/Yufei-Yan](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/miguendes +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) +[2]: https://miguendes.me/how-i-set-up-my-python-workspace +[3]: https://opensource.com/sites/default/files/sbzkkiywh.jpeg +[4]: https://en.wikipedia.org/wiki/Mock_object +[5]: https://miguendes.me/7-pytest-plugins-you-must-definitely-use +[6]: https://stackoverflow.com/questions/130794/what-is-dependency-injection +[7]: https://api.openweathermap.org/data/2.5/weather?q=London\&appid=\ +[8]: https://github.com/miguendes/tutorials/tree/master/testing_http +[9]: https://miguendes.me/3-ways-to-test-api-client-applications-in-python From 5784050e70b2d2b815e04bf49e4bf5b3433c6b83 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 17 Aug 2022 08:40:20 +0800 Subject: [PATCH 0780/3123] translated --- ...est Distributions Based on Fedora Linux.md | 148 ------------------ ...est Distributions Based on Fedora Linux.md | 148 ++++++++++++++++++ 2 files changed, 148 insertions(+), 148 deletions(-) delete mode 100644 sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md create mode 100644 translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md diff --git a/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md b/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md deleted file mode 100644 index 8bf211e683..0000000000 --- a/sources/tech/20220809 7 Best Distributions Based on Fedora Linux.md +++ /dev/null @@ -1,148 +0,0 @@ -[#]: subject: "7 Best Distributions Based on Fedora Linux" -[#]: via: "https://itsfoss.com/best-fedora-linux-distributions/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 Best Distributions Based on Fedora Linux -====== - -There are dozens of Ubuntu-based distributions available out there. Ranging from [distributions for beginners][1] to [beautiful ones][2], Ubuntu dominates the Linux desktop space. - -You will also find some [weird Ubuntu-based distributions][3] if general distributions weren’t enough already. - -I am not going into [Ubuntu vs Fedora][4] debate. I am just saying that I will list some options if you want to try something in the Fedora domain. - -Please remember that I am not going towards the server-oriented Linux distributions. The list here is for **desktop Linux users**. - -The list is in no particular ranking order, and the options mentioned may not always be a good fit for a new user. So, make sure that you explore the documentation before installing any Fedora-based distro for the first time. - -### 1. Fedora spins - -![screenshot fedora cinnamon][5] - -There are plenty of Fedora spins, but not as many as Ubuntu has. - -[Fedora Spins][6] aren’t separate Fedora-based distributions but just different editions of Fedora with a [different desktop environment][7] or a tiling window manager. - -If you do not like the default GNOME desktop environment, you may download one of these spins. - -Some of the available options are: - -* Fedora KDE Plasma -* Fedora i3 Tiling Window Manager -* Fedora LXQt -* Fedora LXDE -* Fedora MATE-COMPIZ -* Fedora Cinnamon edition - -#### 2. Nobara - -![nobara][8] - -Once you start looking for [gaming distros][9], the chances of the list will be dominated by Debian and Arch derivatives are pretty high. So if you are looking for a gaming distro based on Fedora with the same polish, [Nobara][10] is all you need. - -Nobara is a gaming distro made by the maintainer of Proton GE who is also a member of the Lutris development team, so you can expect a next-level gaming experience out of the box! - -To bring a better experience, Nobara comes with 30+ pre-applied patches over Fedora and a set of gaming tools including Lutris, GOverlay, Stream, and ProtonUp. - -#### 3. Ultramarine - -![ultramarine][11] - -A Fedora-based distro that just works out of the box for a general audience that’s what you call [Ultramarine!][12] - -Ultramarine comes pre-installed with a bunch of tools, including Flathub, RPM fusion, and their own dedicated repository. - -You get a pre-configured desktop to make it look pleasant to the eyes, so you would no longer need to spare extra time for tweaks. - -Also, Ultramarine is the perfect option for those who are looking for fine-tuned experience with Pantheon and Budgie Desktop environments over Fedora base. - -#### 4. RisiOS - -![risios][13] - -A web-ready Fedora. - -That’s one way to describe [RisiOS,][14] but wait, there’s more to talk about. - -From getting users GUI for bash scripts to a welcome screen by which you can get your system ready in a few clicks, RisiOS has made using Fedora even easier! - -RisiOS also gets you the same web app manager that you get in Linux Mint, and it’s phenomenal. - -But before you jump to the download section, one thing to keep in mind is that RisiOS is still in beta (Big beta as the site says) and you may encounter some glitches. - -#### 5. Qubes OS - -![Qubes Os][15] - -[Qubes OS][16] is an interesting Linux distribution that gives you the freedom to choose what operating system you want to use as a base. It offers a Fedora template as well, and they regularly maintain it. - -In fact, Qubes OS is also a [privacy-focused Linux distribution][17]. So, you get cutting-edge tech while using something based on Fedora with complete freedom. - -It is worth noting that Qubes OS needs significant system resources with at least **8-16 GB** of RAM to work with and presents a challenging learning curve. - -#### 6. Berry Linux - -![berry linux][18] - -[Berry Linux][19] is a simple Fedora-based distribution that you can directly boot from a CD or any other medium. It supports automatic hardware detection and seems to be regularly maintained. - -Berry Linux offers support for both English and Japanese language. It comes pre-installed with some media players, photo editing applications, and basic applications. - -#### 7. ClearOS - -![clear os community edition][20] - -It isn’t the [Clear Linux project from Intel][21], though it sounds similar. - -[ClearOS][22] is a Fedora-based distribution tailored for the server environment or to help you run IT-related tasks and stream music/videos on your home network backed by HP. You must purchase both the home/business edition as per your requirements. - -There’s also a community edition if you do not want to purchase and can manage by yourself. - -### Thoughts? - -Long-time Linux users may remember Korora and Chapeau distros. They were popular among Fedora users once but the projects have been discontinued since then. - -While Fedora is awesome in itself, I am not against derivative distributions. Look at the success of Linux Mint. It is a derivative of Ubuntu but has garnered such a good userbase. Who knows if one of these Fedora-based distros get popular like Mint? - -Did I miss any Fedora-based active distros? What do you think about Fedora derivatives and its spin editions? Let me know in the comments below! - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/best-fedora-linux-distributions/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/best-linux-beginners/ -[2]: https://itsfoss.com/beautiful-linux-distributions/ -[3]: https://itsfoss.com/weird-ubuntu-based-linux-distributions/ -[4]: https://itsfoss.com/ubuntu-vs-fedora/ -[5]: https://itsfoss.com/wp-content/uploads/2021/05/screenshot-fedora-cinnamon.jpg -[6]: https://spins.fedoraproject.org/ -[7]: https://itsfoss.com/best-linux-desktop-environments/ -[8]: https://itsfoss.com/wp-content/uploads/2022/08/nobara.png -[9]: https://itsfoss.com/linux-gaming-distributions/ -[10]: https://nobaraproject.org/ -[11]: https://itsfoss.com/wp-content/uploads/2022/08/ultramarine.png -[12]: https://ultramarine-linux.org/ -[13]: https://itsfoss.com/wp-content/uploads/2022/08/risios.png -[14]: https://risi.io/ -[15]: https://itsfoss.com/wp-content/uploads/2020/03/qubes-os.jpg -[16]: https://www.qubes-os.org/ -[17]: https://itsfoss.com/privacy-focused-linux-distributions/ -[18]: https://itsfoss.com/wp-content/uploads/2021/05/berry-linux.png -[19]: https://berry-lab.net/eberry.html -[20]: https://itsfoss.com/wp-content/uploads/2021/05/clear-os-community-edition.png -[21]: https://itsfoss.com/clear-linux/ -[22]: https://www.clearos.com diff --git a/translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md b/translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md new file mode 100644 index 0000000000..aecd5d628e --- /dev/null +++ b/translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md @@ -0,0 +1,148 @@ +[#]: subject: "7 Best Distributions Based on Fedora Linux" +[#]: via: "https://itsfoss.com/best-fedora-linux-distributions/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 个基于 Fedora Linux 的最佳发行版 +====== + +有几十个基于 Ubuntu 的发行版可用。从[面向初学者的发行版][1]到[漂亮的发行版][2],Ubuntu 主导着 Linux 桌面空间。 + +如果通用发行版还不够的话,你还会发现一些[奇怪的基于 Ubuntu 的发行版][3]。 + +我不会参与 [Ubuntu 与 Fedora][4] 的辩论。我只是说如果你想在 Fedora 领中尝试一些东西,我会列出一些选项。 + +请记住,我不会列出面向服务器的 Linux 发行版。此处的列表适用于**桌面 Linux 用户**。 + +该列表没有特定的排名顺序,并且提到的选项可能并不总是适合新用户。因此,在第一次安装任何基于 Fedora 的发行版之前,请确保你浏览了文档。 + +### 1. Fedora 定制版 + +![screenshot fedora cinnamon][5] + +Fedora 有很多定制版,但没有 Ubuntu 那么多。 + +[Fedora Spins][6] 不是基于 Fedora 的独立发行版,而只是具有[不同桌面环境][7]或平铺窗口管理器的不同版本的 Fedora。 + +如果你不喜欢默认的 GNOME 桌面环境,你可以下载其中一种。 + +一些可用的选项是: + +* Fedora KDE Plasma +* Fedora i3 平铺窗口管理器 +* Fedora LXQt +* Fedora LXDE +* Fedora MATE-COMPIZ +* Fedora Cinnamon 版 + +#### 2. Nobara + +![nobara][8] + +当你开始寻找[游戏发行版][9],列表将由 Debian 和 Arch 衍生产品占据主导地位。因此,如果你正在寻找基于 Fedora 且具有相同效果的游戏发行版,那么 [Nobara][10] 就是你所需要的。 + +Nobara 是由 Proton GE 的维护者制作的游戏发行版,他也是 Lutris 开发团队的成员,因此你可以期待开箱即用的下一代游戏体验! + +为了带来更好的体验,Nobara 在 Fedora 上提供了 30 多个预先应用的补丁程序和一组游戏工具,包括 Lutris、GOverlay、Stream 和 ProtonUp。 + +#### 3. Ultramarine + +![ultramarine][11] + +一个基于 Fedora 的发行版,开箱即用,适用于普通用户,它就是 [Ultramarine][12]! + +Ultramarine 预装了一堆工具,包括 Flathub、RPM fusion 和它们自己的专用仓库。 + +你将获得一个预配置的桌面,使其看起来赏心悦目,因此你不再需要花费额外的时间进行调整。 + +此外,对于那些在 Fedora 基础上寻求 Pantheon 和 Budgie 桌面环境的微调体验的人来说,Ultramarine 是完美的选择。 + +#### 4. RisiOS + +![risios][13] + +一个 web 就绪的 Fedora。 + +这是一种描述 [RisiOS][14] 的方式,但等等,还有更多要谈的。 + +从为 bash 脚本获取用户 GUI 到欢迎屏幕,你只需单击几下即可准备好系统,RisiOS 让 Fedora 的使用更加轻松! + +RisiOS 还为你提供与 Linux Mint 相同的 Web 应用管理器,而且非常棒。 + +但是在你跳转到下载页面之前,要记住一件事是 RisiOS 仍处于测试阶段(如网站所说的 Big beta),你可能会遇到一些问题。 + +#### 5. Qubes OS + +![Qubes Os][15] + +[Qubes OS][16] 是一个有趣的 Linux 发行版,它让你可以自由选择要用作基础的操作系统。它还提供了一个 Fedora 模板,并且他们会定期维护它。 + +事实上,Qubes OS 也是一个[注重隐私的 Linux 发行版][17]。因此,你可以在完全自由地使用基于 Fedora 的产品时获得最新技术。 + +值得注意的是,Qubes OS 需要大量系统资源和至少 **8-16 GB** 的内存才能使用,并且呈现出具有挑战性的学习曲线。 + +#### 6. Berry Linux + +![berry linux][18] + +[Berry Linux][19] 是一个简单的基于 Fedora 的发行版,你可以直接从 CD 或任何其他介质启动。它支持自动硬件检测,并且似乎定期维护。 + +Berry Linux 提供对英语和日语的支持。它预装了一些媒体播放器、照片编辑应用和基本应用。 + +#### 7. ClearOS + +![clear os community edition][20] + +它不是[来自 Intel 的 Clear Linux 项目][21],尽管听起来很相似。 + +[ClearOS][22] 是基于 Fedora 的发行版,专为服务器环境量身定制,或帮助你在 HP 支持的家庭网络上运行 IT 相关任务和流式传输音乐/视频。你必须根据自己的要求同时购买家庭版/企业版。 + +如果你不想购买并且可以自己管理,还有一个社区版。 + +### 想法? + +长期使用 Linux 的用户可能还记得 Korora 和 Chapeau 发行版。它们曾经在 Fedora 用户中很受欢迎,但从那时起这些项目就停止了。 + +虽然 Fedora 本身很棒,但我并不反对衍生发行版。看看 Linux Mint 的成功。它是 Ubuntu 的衍生产品,但已经获得了如此好的用户群。谁知道这些基于 Fedora 的发行版是否会像 Mint 一样流行? + +我错过了任何基于 Fedora 的活跃发行版吗? 你如何看待 Fedora 衍生版及其定制版本? 在下面的评论中告诉我! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-fedora-linux-distributions/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-linux-beginners/ +[2]: https://itsfoss.com/beautiful-linux-distributions/ +[3]: https://itsfoss.com/weird-ubuntu-based-linux-distributions/ +[4]: https://itsfoss.com/ubuntu-vs-fedora/ +[5]: https://itsfoss.com/wp-content/uploads/2021/05/screenshot-fedora-cinnamon.jpg +[6]: https://spins.fedoraproject.org/ +[7]: https://itsfoss.com/best-linux-desktop-environments/ +[8]: https://itsfoss.com/wp-content/uploads/2022/08/nobara.png +[9]: https://itsfoss.com/linux-gaming-distributions/ +[10]: https://nobaraproject.org/ +[11]: https://itsfoss.com/wp-content/uploads/2022/08/ultramarine.png +[12]: https://ultramarine-linux.org/ +[13]: https://itsfoss.com/wp-content/uploads/2022/08/risios.png +[14]: https://risi.io/ +[15]: https://itsfoss.com/wp-content/uploads/2020/03/qubes-os.jpg +[16]: https://www.qubes-os.org/ +[17]: https://itsfoss.com/privacy-focused-linux-distributions/ +[18]: https://itsfoss.com/wp-content/uploads/2021/05/berry-linux.png +[19]: https://berry-lab.net/eberry.html +[20]: https://itsfoss.com/wp-content/uploads/2021/05/clear-os-community-edition.png +[21]: https://itsfoss.com/clear-linux/ +[22]: https://www.clearos.com From e099d4e509683770399e3136f79465b49fd3b94b Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 17 Aug 2022 08:45:34 +0800 Subject: [PATCH 0781/3123] translating --- ...itor Log Files in Real Time in Linux [Desktop and Server].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md index 7e2e7c8d8c..3451a2c7e8 100644 --- a/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md +++ b/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/monitor-log-files-real-time/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 31392f05579b52ff55de6a62868b7250b8fbb9cc Mon Sep 17 00:00:00 2001 From: FelixYFZ <33593534+FelixYFZ@users.noreply.github.com> Date: Wed, 17 Aug 2022 11:22:54 +0800 Subject: [PATCH 0782/3123] Update 20210709 What you need to know about security policies.md Translating by FelixYFZ --- .../20210709 What you need to know about security policies.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sources/tech/20210709 What you need to know about security policies.md b/sources/tech/20210709 What you need to know about security policies.md index 7e4c981e53..2e94785530 100644 --- a/sources/tech/20210709 What you need to know about security policies.md +++ b/sources/tech/20210709 What you need to know about security policies.md @@ -2,11 +2,10 @@ [#]: via: (https://opensource.com/article/21/7/what-security-policy) [#]: author: (Chris Collins https://opensource.com/users/clcollins) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (FelixYFZ ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) -Translating by FelixYFZ What you need to know about security policies ====== Learn about protecting your personal computer, server, and cloud systems From 9d402fd1e7c15a5b58e8f74df0c6ca1911f5e72e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 17 Aug 2022 12:06:26 +0800 Subject: [PATCH 0783/3123] RP @perfiffer https://linux.cn/article-14938-1.html --- ...inux sed command to automate file edits.md | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) rename {translated/tech => published}/20220802 How I use the Linux sed command to automate file edits.md (67%) diff --git a/translated/tech/20220802 How I use the Linux sed command to automate file edits.md b/published/20220802 How I use the Linux sed command to automate file edits.md similarity index 67% rename from translated/tech/20220802 How I use the Linux sed command to automate file edits.md rename to published/20220802 How I use the Linux sed command to automate file edits.md index ac8e94ae0c..f1964fd393 100644 --- a/translated/tech/20220802 How I use the Linux sed command to automate file edits.md +++ b/published/20220802 How I use the Linux sed command to automate file edits.md @@ -3,27 +3,26 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "perfiffer" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14938-1.html" -我是如何使用 Linux sed 命令自动进行文件编辑 +如何使用 Linux sed 命令自动进行文件编辑 ====== -以下是从 Linux 命令行自动编辑文件的一些提示和技巧。 -![computer screen][1] +![](https://img.linux.net.cn/data/attachment/album/202208/17/120535by5jfu5dovfesd56.jpg) -Image by: Opensource.com +> 以下是从 Linux 命令行自动编辑文件的一些提示和技巧。 当我使用 Linux 命令行时,无论是在台式机上编写新程序还是在 Web 服务器上管理网站,我经常需要处理文本文件。Linux 提供了强大的工具,我可以利用这些工具来完成我的工作。我经常使用 `sed`,一个可以根据模式修改文本的编辑器。 -`sed` 代表 *流编辑器 (stream editor)*,它编辑文件中的文本并打印结果。使用 `sed` 的一种方法是识别一个字符串在文件中出现的次数,并将它们替换为不同的字符串。你可以使用 `sed` 来处理文本文件,其程度似乎无穷无尽,但我想分享一些使用 `sed` 来帮助我管理文件的方法。 +`sed` 代表 流编辑器Stream EDitor,它编辑文件中的文本并打印结果。使用 `sed` 的一种方法是识别一个字符串在文件中的几次出现,并将它们替换为不同的字符串。使用 `sed` 来处理文本文件的方式似乎是无穷无尽的,但我想分享一些使用 `sed` 来帮助我管理文件的方法。 ### 在 Linux 上搜索和替换文件中的文本 要使用 `sed`,你需要使用一个*正则表达式*。正则表达式是定义模式的一组特殊字符。我最常使用 `sed` 的例子是替换文件中的文本。替换文本的语法如下:`s/originaltext/newtext`。`s` 告诉 `sed` 执行文本替换或交换出现的文本。在斜线之间提供原始文本和新文本。 -此语法将仅替换每行中第一次出现的 *原始文本 (originaltext)*。要替换每个匹配项,即使在一行中原始文本出现了不止一次,也要将 `g` 追加到表达式的末尾。例如:`s/originaltext/newtext/g`。 +此语法将仅替换每行中第一次出现的 `originaltext`。要替换每个匹配项,即使在一行中原始文本出现了不止一次,要将 `g` 追加到表达式的末尾。例如:`s/originaltext/newtext/g`。 要在 `sed` 中使用此表达式,请使用 `-e` 选项指定此正则表达式: @@ -31,7 +30,7 @@ Image by: Opensource.com $ sed -e 's/originaltext/newtext/g' ``` -例如,假设我有一个名为 **game** 的 Makefile 文件,它模拟了 Conway 的生命游戏: +例如,假设我有一个名为 `game` 程序的 Makefile 文件,该程序模拟了康威的《生命游戏》: ``` .PHONY: all run clean @@ -50,7 +49,7 @@ clean:         $(RM) game ``` -**game** 这个名字并不是很有描述性,所以我可能会把它改名为 **life**。将 `game.c` 源文件重命名为 `life.c` 非常简单,但现在我需要修改 Makefile 以使用新名称。我可以使用 `sed` 来将所有的 **game** 更改为 **life**: +`game` 这个名字并不是很有描述性,所以我想会把它改名为 `life`。将 `game.c` 源文件重命名为 `life.c` 非常简单,但现在我需要修改 Makefile 以使用新名称。我可以使用 `sed` 来将所有的 `game` 更改为 `life`: ``` $ sed -e 's/game/life/g' Makefile @@ -77,7 +76,7 @@ $ cp Makefile Makefile.old $ sed -e 's/game/life/g' Makefile.old > Makefile ``` -如果你确信你的更改正是你想要的,请使用 `-i` 或 `--in-place` 选项来编辑文件。但是,我建议添加一个备份文件后缀,类似于 `--in-place=.old`,用来备份原始文件,以备日后需要恢复时使用。它看起来像这样: +如果你确信你的更改正是你想要的,请使用 `-i` 或 `--in-place` 选项来编辑文件。但是,我建议添加一个备份文件后缀,如 `--in-place=.old`,用来备份原始文件,以备日后需要恢复时使用。它看起来像这样: ``` $ sed --in-place=.old -e 's/game/life/g' Makefile @@ -87,9 +86,9 @@ Makefile  Makefile.old ### 在 Linux 上使用 sed 引用文件 -你可以使用正则表达式的其它功能来匹配特定的文本实例。例如,你可能需要替换出现在行首的文本。使用 `sed`,你可以将行的开头与插入字符 **^** 匹配。 +你可以使用正则表达式的其它功能来匹配特定的文本实例。例如,你可能需要替换出现在行首的文本。使用 `sed`,你可以用上尖号 `^` 来匹配行的开头。 -我使用“行首”来替换文本的一种方式是当我需要在电子邮件中引用一个文件时。假设我想在电子邮件中共享我的 Makefile,但我不想将其作为文件附件包含在内。相反,我更喜欢在电子邮件正文中“引用”文件,在每行之前使用 **>**。我可以使用以下 `sed` 命令将编辑后的版本打印到我的终端,并将其复制粘贴到新的电子邮件中: +我使用“行首”来替换文本的一种方式是当我需要在电子邮件中引用一个文件时。假设我想在电子邮件中共享我的 Makefile,但我不想将其作为文件附件包含在内。相反,我更喜欢在电子邮件正文中“引用”文件,在每行之前使用 `>`。我可以使用以下 `sed` 命令将编辑后的版本打印到我的终端,并将其复制粘贴到新的电子邮件中: ``` $ sed -e 's/^/>/' Makefile @@ -109,7 +108,7 @@ $ sed -e 's/^/>/' Makefile >       $(RM) life ``` -`s/^/>/` 正则表达式匹配每行的开头(**^**),并在那里放置一个 **>**。实际上,这相当于每行都以 **>** 符号开始。 +`s/^/>/` 正则表达式匹配每行的开头(`^`),并在那里放置一个 `>`。实际上,这相当于每行都以 `>` 符号开始。 制表符可能无法在电子邮件中正确显示,但我可以通过添加另一个正则表达式将 Makefile 中的所有制表符替换为几个空格: @@ -133,7 +132,7 @@ $ sed -e 's/^/>/' -e 's/\t/  /g' Makefile `\t` 表示文字制表符,因此 `s/\t/ /g` 告诉 `sed` 用输出中的两个空格替换输入中的所有制表符。 -如果你需要对文件进行大量编辑,你可以将 `-e` 命令保存在文件中并使用 `-f` 选项来告诉 `sed` 将该文件用作"脚本"。如果你需要经常进行相同的编辑,这种方法特别有用。我已经准备了 `quotemail.sed` 的脚本文件来在我的电子邮件中引用 Makefile: +如果你需要对文件进行大量编辑,你可以将 `-e` 命令保存在文件中,并使用 `-f` 选项来告诉 `sed` 将该文件用作“脚本”。如果你需要经常进行相同的编辑,这种方法特别有用。我已经准备了 `quotemail.sed` 的脚本文件来在我的电子邮件中引用 Makefile: ``` $ cat quotemail.sed @@ -167,7 +166,7 @@ via: https://opensource.com/article/22/8/automate-file-edits-sed-linux 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[perfiffer](https://github.com/perfiffer) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9a2fef1c1f5d21a736005661f6bc4ac81013182a Mon Sep 17 00:00:00 2001 From: FelixYFZ <33593534+FelixYFZ@users.noreply.github.com> Date: Wed, 17 Aug 2022 13:23:28 +0800 Subject: [PATCH 0784/3123] Update 20220509 Cloud service providers- How to keep your options open.md Translating by FelixYFZ --- ...9 Cloud service providers- How to keep your options open.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sources/talk/20220509 Cloud service providers- How to keep your options open.md b/sources/talk/20220509 Cloud service providers- How to keep your options open.md index e841709c76..2d7819ac3a 100644 --- a/sources/talk/20220509 Cloud service providers- How to keep your options open.md +++ b/sources/talk/20220509 Cloud service providers- How to keep your options open.md @@ -2,11 +2,10 @@ [#]: via: "https://opensource.com/article/22/5/cloud-service-providers-open" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "FelixYFZ " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -FelixYFZ is translating Cloud service providers: How to keep your options open ====== No matter what level of openness your cloud service operates on, you have choices for your own environment. From 897abdfc7789386e996559b0fac3749747efcfb3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 17 Aug 2022 15:39:20 +0800 Subject: [PATCH 0785/3123] RP @geekpi https://linux.cn/article-14939-1.html --- ...y Playing Music on the Desktop in Linux.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) rename {translated/tech => published}/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md (72%) diff --git a/translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md similarity index 72% rename from translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md rename to published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md index 9ec1079cc5..1cc02b0632 100644 --- a/translated/tech/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md +++ b/published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md @@ -3,16 +3,16 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14939-1.html" Sunamu:在 Linux 桌面上显示当前播放音乐的歌词 ====== -作为一个吸睛的**音乐小部件**(或控制器)。 +![](https://img.linux.net.cn/data/attachment/album/202208/17/153701c3blbrgglfx7cfbr.jpg) -这是 Sunamu 的唯一专注,它工作得很好。 +作为一个吸睛的**音乐小部件**(或控制器) —— 这是 Sunamu 唯一专注的事情,它工作得很好。 Sunamu 是一个有趣的工具。它不是音乐播放器,但可让你显示正在播放的音乐并对其进行控制。 @@ -24,19 +24,19 @@ Sunamu 是一个有趣的工具。它不是音乐播放器,但可让你显示 ![playing music with sunamu][1] -正如你在上面的截图中所注意到的,它看起来是一种非常好的方式来显示正在播放的音乐,带有歌词,同时具有基本的控件。 +正如你在上面的截图中所注意到的,它看起来是一种显示正在播放的音乐的非常好的方式,带有歌词,同时具有基本的控件。 你可以播放/暂停、转到下一首/上一首曲目、随机播放和启用循环。 -Sunamu 支持多种音频平台,包括 Spotify。它还检测本地收藏中的音乐,支持一些可用于 Linux 的[最佳音乐播放器][2]。 +Sunamu 支持多种音频平台,包括 Spotify。它还可以检测本地收藏中的音乐,支持一些可用于 Linux 的 [最佳音乐播放器][2]。 -此外,它还支持 Windows。因此,如果你通过 Windows 上的 Microsoft Edge 浏览器流式传输某些内容,它应该可以正常工作。 +此外,它还支持 Windows。因此,如果你通过 Windows 上的 Edge 浏览器流式传输某些内容,它应该可以正常工作。 -你可以查看其 GitHub 页面上的[兼容性列表][3]以了解有关支持的播放器和浏览器的更多信息。 +你可以查看其 GitHub 页面上的 [兼容性列表][3] 以了解有关支持的播放器和浏览器的更多信息。 -幸运的是,你不必受限于它默认提供的功能。它提供了一种调整配置文件的简单方法(在其 [GitHub 页面][4]上了解更多信息)。这使得新手可以调整一些设置并获得乐趣。 +幸运的是,你不必受限于它默认提供的功能。它提供了一种调整配置文件的简单方法(在其 [GitHub 页面][4] 上可以了解更多信息)。这使得新手可以调整一些设置并获得乐趣。 -我将在本文的后面部分提到一些关于它的提示。 +我将在本文的后面部分提到一些关于它的技巧。 ### Sunamu 的特点 @@ -45,7 +45,7 @@ Sunamu 支持多种音频平台,包括 Spotify。它还检测本地收藏中 Sunamu 具有一些不错的特性,其中一些是: * 检测并显示当前正在播放的歌曲。 -* 从专辑封面中获取配色方案并使用相同的调色板以获得更好的视觉效果。 +* 从专辑封面中获取配色方案,并使用相同的调色板以获得更好的视觉效果。 * 可通过配置文件进行定制。 * 与 Discord 完美集成。 * 消耗最少的系统资源。 @@ -56,7 +56,7 @@ Sunamu 具有一些不错的特性,其中一些是: 它提供 AppImage、deb 和 rpm 包,以便在各种 Linux 发行版中轻松安装。我使用 AppImage 进行测试,并且非常好用。 -如果你是 Linux 新手,你还可以从我们关于[如何使用 AppImage][7] 或[安装 deb 包][8]和 [rpm 包][9]的指南中受益。 +如果你是 Linux 新手,你还可以从我们关于 [如何使用 AppImage][7] 或 [安装 deb 包][8]、[rpm 包][9] 的指南中得到帮助。 有趣的是,Sunamu 是少数为基于 ARM 的机器提供直接支持的开源音乐工具之一。 @@ -64,7 +64,7 @@ Sunamu 具有一些不错的特性,其中一些是: **让我通过终端向你展示基于 Debian 的发行版的快速安装方法**。只需按照给定的说明进行操作,你就可以开始使用了: -首先,让我们使用 wget 命令下载 .deb 包,如下所示: +首先,让我们使用 `wget` 命令下载 .deb 包,如下所示: ``` wget https://github.com/NyaomiDEV/Sunamu/releases/download/v2.0.0/sunamu_2.0.0_amd64.deb @@ -78,11 +78,11 @@ sudo dpkg -i sunamu_2.0.0_amd64.deb ![install sunamu in ubuntu][11] -### 提示:调整配置文件 +### 技巧:调整配置文件 -默认情况下,Sunamu 不会从专辑封面中获取颜色,而是显示每首歌曲的歌词。和许多其他人一样,我喜欢避免阅读歌词。 +默认情况下,Sunamu 不会从专辑封面中获取颜色,而是显示每首歌曲的歌词。和许多其他人一样,我喜欢不看歌词。 -Sunamu 的配置文件通常位于**\~/.config/sunamu/config.json5**。 +Sunamu 的配置文件通常位于 `~/.config/sunamu/config.json5`。 要打开 Sunamu 配置文件,请输入给定的命令: @@ -90,7 +90,7 @@ Sunamu 的配置文件通常位于**\~/.config/sunamu/config.json5**。 nano ~/.config/sunamu/config.json5 ``` -如下所示在 electron 部分进行更改(启用颜色和禁用歌词): +如下所示在 `electron` 部分进行更改(启用颜色并禁用歌词): ``` electron: { @@ -107,9 +107,9 @@ electron: { ![modify config file of sunamu][12] -### 最后的想法 +### 总结 -除非你是避免使用基于 electron 应用的人,否则 Sunamu 是一款足以增强你在 Linux 上的音乐体验的应用。继 [Amberol][13] 之后,这是我最近喜欢的第二款音乐相关应用。 +除非你是避免使用基于 Electron 应用的人,否则 Sunamu 是一款足以增强你在 Linux 上的音乐体验的应用。继 [Amberol][13] 之后,这是我最近喜欢的第二款音乐相关应用。 如果你尝试过,请不要忘记在评论部分分享你的经验。 @@ -120,7 +120,7 @@ via: https://itsfoss.com/sunamu-music-widget/ 作者:[Sagar Sharma][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/) 荣誉推出 From c81be3229cf304256b7a694990beb83cfa3e865f Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Wed, 17 Aug 2022 19:13:16 +0800 Subject: [PATCH 0786/3123] translating --- .../tech/20220524 The Basic Concepts of Shell Scripting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220524 The Basic Concepts of Shell Scripting.md b/sources/tech/20220524 The Basic Concepts of Shell Scripting.md index c3c244013e..7c25c5639f 100644 --- a/sources/tech/20220524 The Basic Concepts of Shell Scripting.md +++ b/sources/tech/20220524 The Basic Concepts of Shell Scripting.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/05/the-basic-concepts-of-shell-scripting/" [#]: author: "Sathyanarayanan Thangavelu https://www.opensourceforu.com/author/sathyanarayanan-thangavelu/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "FYJNEVERFOLLOWS" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -179,7 +179,7 @@ via: https://www.opensourceforu.com/2022/05/the-basic-concepts-of-shell-scriptin 作者:[Sathyanarayanan Thangavelu][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From dc7de9200aba090fb38f1f4502753c1654fa611c Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 17 Aug 2022 19:29:37 +0800 Subject: [PATCH 0787/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220817=20Desktop=20Linux=20Market=20Share-=20Augus?= =?UTF-8?q?t=202022.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Desktop Linux Market Share- August 2022.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/tech/20220817 Desktop Linux Market Share- August 2022.md diff --git a/sources/tech/20220817 Desktop Linux Market Share- August 2022.md b/sources/tech/20220817 Desktop Linux Market Share- August 2022.md new file mode 100644 index 0000000000..972451ed6c --- /dev/null +++ b/sources/tech/20220817 Desktop Linux Market Share- August 2022.md @@ -0,0 +1,68 @@ +[#]: subject: "Desktop Linux Market Share: August 2022" +[#]: via: "https://itsfoss.com/linux-market-share/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Desktop Linux Market Share: August 2022 +====== + +Every year, we discuss the year of the Linux desktop. It can’t be helped when we see an increase in the operating system’s market share in the consumer space. + +![linux desktop market share][1] + +Of course, Linux dominates the entire cloud industry (Web host, cloud computing, data warehouse, etc.). Here, we focus only on the desktop Linux market share. + +**If you’re new to the Linux world**, Linux is not an operating system, it is a kernel. But, we tend to term “Linux” as an OS to keep things simple.You can learn [what Linux is in our explainer article][2]. + +One day, we hope that Linux distributions dominate the desktop operating market share in the future. But, what do the current trends say? Is it the year of the Linux desktop yet? + +The trends change every month. Last year, Linux could have a better grip over the market share compared to this year. So, it is vital to track the latest reports. + +Here, we try to keep track of the latest trends in the form of monthly updated reports from different sources. + +### Operating System Market Share: July 2022 + +We update the available information every month. Note that the information available for the last month gets published next month. So, for example, when we update the report in the month of August, it will include the statistics for July. + +Among the desktop operating systems available (Windows, macOS, and Chrome OS), Linux usually tends to occupy the **third position** overall. + +Some of the latest stats include: + +* [Net Marketshare][3]: The current Linux market share is 1.68% compared to 6.09% for macOS and 91.40% for Windows. +* [Statcounter][4]: Linux occupies 2.76% of the market share compared to 14.51% for macOS, and 75.21% for Windows. +* [W3Schools][5] (last updated on May 2022): Linux has a grip on 4.2% of the market share, compared to 9.2% of macOS and 70% of Windows. +* [Steam Survey][6]: In terms of desktop gaming, Linux has a market share of 1.23% when compared to 1.74% for macOS, and 97.03% for Windows. +* [Statista][7] (last updated on June 2022): The Linux desktop market share was 2.42% when compared to 14.64% for macOS, and 76.33% for Windows. +* [Stack Overflow Survey][8]: Among the developers who participate in the Stack Overflow survey, 40.23% of users use the Linux-based operating system for personal use and 39.89% of those use it for professional use. + +Every source utilizes a different method of data collection. The market share constantly changes, which is why we decided to update this report regularly, instead of making separate posts on slight changes to the market share. + +**Overall**, it looks like Linux as a desktop operating system is popular among developers, and is eventually influencing gamers, and other consumers as an alternative operating system. + +*What do you think about the trends? Do you see Linux overtake macOS in terms of desktop market share? Share your thoughts in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-market-share/ + +作者:[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/wp-content/uploads/2017/09/linux-desktop-market-share.jpg +[2]: https://itsfoss.com/what-is-linux/ +[3]: https://www.netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Custom%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222021-12%22%2C%22dateEnd%22%3A%222022-07%22%2C%22segments%22%3A%22-1000%22%7D +[4]: https://gs.statcounter.com/os-market-share/desktop/worldwide +[5]: https://www.w3schools.com/browsers/browsers_os.asp +[6]: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=linux +[7]: https://www.statista.com/statistics/218089/global-market-share-of-windows-7/ +[8]: https://survey.stackoverflow.co/2022/#technology-most-popular-technologies From c3fe2c3aa60273bbcd4bd884878121fabfa36946 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 17 Aug 2022 19:30:33 +0800 Subject: [PATCH 0788/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220817=20Deepin=2023=20is=20Introducing=20a=20New?= =?UTF-8?q?=20Package=20Format=20and=20Repository,=20Sounds=20Interesting!?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mat and Repository, Sounds Interesting!.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md diff --git a/sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md b/sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md new file mode 100644 index 0000000000..c114a33c31 --- /dev/null +++ b/sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md @@ -0,0 +1,100 @@ +[#]: subject: "Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!" +[#]: via: "https://news.itsfoss.com/deepin-23/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting! +====== +deepin 23 will be an interesting upgrade with a couple of fundamental changes. What do you think? + +![deepin 23][1] + +Deepin remains one of the most [beautiful Linux distributions][2] out there. + +While the entire user experience may not be hassle-free, it certainly looks good. The developers of deepin have experimented with intriguing customizations that make it stand out from the crowd. + +If you are learning about it for the first time, you should know that it is one of the [interesting distributions based on Debian Linux][3]. + +With [deepin 20][4] and its recent point releases, we had a nice list of upgrades. Now, it looks like **deepin 23** will be the next major upgrade. + +### Deepin 23 Preview: What’s New? + +![deepin 23][5] + +Deepin 23 preview has been made available for testing. Unlike its previous version, deepin 23 includes some fundamental upgrades that impact the user experience on several levels. + +The key highlights include: + +* A new package format. +* A new idea for system updates. +* A new repository. +* New wallpapers. +* [Linux Kernel 5.18][6]. + +### New Package Format: Linglong + +![][7] + +**Linglong** is the new package format developed by deepin. + +It aims at solving various compatibility problems caused by complex dependencies of traditional package formats under Linux. Furthermore, reducing security risks by supporting sandboxing along with incremental updates and privacy protection. + +You can find the packages on its [Linglong store][8] as of now. + +Do we need another package format? I don’t think so. + +With Flatpak and Snap around, it does not sound like anything that’s never been done before. + +To me, it looks like deepin simply wants to have its own package format as part of its offerings. + +### Atomic Updates + +The system updates will be treated as atomic operations, i.e., that when packages are successfully installed, the update completes. If the installation fails, the system can be reverted to the previous version with no changes. + +So, you get system rollback support after an upgrade and can avoid difficulties with partial upgrades. + +### Independent Upstream + +While it is based on Debian, deepin aims to have a separate repository for the core packages and some optional components. + +For the preview release, the developers mention that they intend to learn from the upstream like Debian and Arch Linux to improve their repository. + +### New Wallpapers + +![deepin 23][9] + +Like every other major release, deepin 23 adds some refreshing wallpapers and new default wallpaper. + +### Download Deepin 23 Preview + +Note that Deepin 23 stable is not yet available. So, if you want to experiment on your test system, and experience what’s in store for you, try the preview version. + +You can find the download links to the ISO file in the [official announcement post][10]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/deepin-23/ + +作者:[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/08/deepin-23-release.jpg +[2]: https://itsfoss.com/beautiful-linux-distributions/ +[3]: https://itsfoss.com/debian-based-distros/ +[4]: https://itsfoss.com/deepin-20-review/ +[5]: https://news.itsfoss.com/wp-content/uploads/2022/08/deepin-23-preview-screenshot.jpg +[6]: https://news.itsfoss.com/linux-kernel-5-18-release/ +[7]: https://news.itsfoss.com/wp-content/uploads/2022/08/deepin-23-linglong.png +[8]: https://store.linglong.dev/ +[9]: https://news.itsfoss.com/wp-content/uploads/2022/08/deepin-23-wallpapers-preview.jpg +[10]: https://www.deepin.org/en/linux-system-distribution-deepin-23-preview-released/ From 7da6124b43018f4c34f87c76f37edef402cd1a91 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 17 Aug 2022 19:31:29 +0800 Subject: [PATCH 0789/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220817=20How=20to=20Setup=20HAProxy=20SSL=20Termin?= =?UTF-8?q?ation=20on=20Ubuntu=2022.04.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...HAProxy SSL Termination on Ubuntu 22.04.md | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md diff --git a/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md b/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md new file mode 100644 index 0000000000..54da197576 --- /dev/null +++ b/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md @@ -0,0 +1,182 @@ +[#]: subject: "How to Setup HAProxy SSL Termination on Ubuntu 22.04" +[#]: via: "https://www.linuxtechi.com/how-to-setup-haproxy-ssl-termination-ubuntu/" +[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Setup HAProxy SSL Termination on Ubuntu 22.04 +====== +In our previous guide, we demonstrated how to install and configure HAProxy as a load balancer on Ubuntu 22.04. This guide is a continuation of that guide and, we will go a step further and demonstrate how to setup HAPrpxy SSL termination on Ubuntu 22.04 step by step. + +HA Proxy is a widely used and opensource HTTP load balancer and proxying solution for Linux, Solaris, and FreeBSD environments. It’s used to enhance the performance and reliability of web servers by distributing the workload across multiple servers. By so doing, it provides high availability of services and applications. + +#### SSL Termination + +The previous guide did not take into consideration the encryption of web traffic that goes through the HA Proxy load balancer. The incoming traffic that goes through the load balancer is in plain text and is, therefore, insecure and prone to eavesdropping by nefarious third parties. + +HAProxy can be configured to encrypt the traffic it receives before distributing it across the multiple backend servers. This is a preferred approach as opposed to encrypting individual backend servers which can be a tedious process This is where SSL termination comes in. + +The HAProxy encrypts the traffic between itself and the client and then relays the messages in clear text to the backend servers in your internal network.  It then encrypts the response from the backend servers and relays them to the clients + +The TLS/SSL certificates are stored only on the HAProxy load balancer rather than the multiple backend servers, thus reducing the workload on the servers. + +To demonstrate SSL termination, we will secure and configure the HAProxy load balancer with the Let’s encrypt certificate. + +For this to work, you need a Fully Qualified Domain Name (FQDN) or simply a registered domain name pointed to your HAProxy’s public IP address. In this guide, we have a domain called linuxtechgeek.info pointed to our HAProxy’s public IP. + +### Step 1) Install Certbot + +To obtain an SSL/TL certificate from Let’s Encrypt Authority, you first need to install certbot. Certbot is free and opensource software that is used for automating the deployment of Let’s Encrypt SSL certificates on websites. + +To install certbot login into the HAProxy server and, first, update the local package index: + +``` +$ sudo apt update +``` + +Next, install certbot using the following command: + +``` +$ sudo apt install -y certbot python3-certbot-apache +``` + +The python3-certbot-apache package is a plugin that allows Cerbot to work with Apache. With certbot installed, we can now proceed to obtain the SSL certificate. + +### Step 2) Obtaining SSL Certificate + +Let’s Encrypt provides a number of ways to obtain SSL Certificates using various plugins. Most of the plugins only assist in obtaining the certificate which requires manual configuration of the web server. These plugins are called ‘authenticators’ because they merely check whether the server should be issued a certificate. + +In this guide, we will show you how to obtain the SSL certificate using the Standalone plugin. The plugin employs a seamless method of obtaining SSL certificates. It does so by temporarily spawning a small web server on port 80 to which Let’s Encrypt CA can connect and validate your server’s identity before issuing a certificate. + +As such, you need to ensure that no service is listening on port 80. To check which services are listening on port 80, run the command. + +``` +$ netstat -na | grep ':80.*LISTEN' +``` + +If Apache is running on the HAProxy server, stop it as shown. + +``` +$ sudo systemctl stop apache2 +``` + +Next, run certbot using the standalone plugin to obtain the certificate + +``` +$ sudo certbot certonly --standalone --preferred-challenges http --http-01-port 80 -d linuxtechgeek.info -d www.linuxtechgeek.info +``` + +The plugin will walk you through a series of prompts. You will be prompted to provide your email address and later agree to the Let’s Encrypt Terms of Service. Also, you can decide to opt-in to receive EFF’s emails about news and campaigns surrounding digital freedom. + +If all goes well, the SSL certificate and key will be successfully saved on the server. These files are themselves saved in the /etc/letsencrypt/archives directory, but certbot creates a symbolic link to the /etc/letsencrypt/live/your_domain_name path. + +![Certbot-SSL-Certificates-Linux-Command-Line][1] + +Once the certificate has been obtained, you will have the following files in the /etc/letsencrypt/live/your_domain_name directory. + +* cert.pem  – This is your domain’s certificate. +* chain.pem – This is Let’s Encrypt chain certificate. +* fullchain.pem – Contains a combination of cert.pem and chain.pem +* privkey.pem – The private key to your certificate. + +### Step 3) Configure HAProxy to use SSL Certificate + +For HAProxy to carry out SSL Termination – so that it encrypts web traffic between itself and the clients or end users – you must combine the fullchain.pem and privkey.pem file into one file. + +But before you do so, create a directory where all the files will be placed. + +``` +$ sudo mkdir -p /etc/haproxy/certs +``` + +Next, create the combined file using the cat command as follows. + +``` +$ DOMAIN='linuxtechgeek.info' sudo -E bash -c 'cat /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/letsencrypt/live/$DOMAIN/privkey.pem > /etc/haproxy/certs/$DOMAIN.pem' +``` + +![Combine-FullChain-Private-Key-Cat-command][2] + +Next, secure the file by assign the following permissions to the directory using chomd command. + +``` +$ sudo chmod -R go-rwx /etc/haproxy/certs +``` + +Now access the HAProxy configuration file. + +``` +$ sudo vim /etc/haproxy/haproxy.cfg +``` + +In the frontend section add an entry that binds your server’s IP to port 443 followed by the path to the combined key. + +``` +bind haproxy-ip:443 ssl crt /etc/haproxy/certs/domain.pem +``` + +To enforce redirection from HTTP to HTTPS, add the following entry. + +``` +redirect scheme https if !{ ssl_fc } +``` + +![SSL-Certs-HAProxy-Settings-Linux][3] + +Save the changes and exit the configuration file. Be sure to confirm that the syntax for HAProxy is okay using the following syntax. + +``` +$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c +``` + +![Check-HAProxy-Syntax-Command][4] + +To apply the changes made, restart HAProxy + +``` +$ sudo systemctl restart haproxy +``` + +And ensure that it is running. + +``` +$ sudo systemctl status haproxy +``` + +![HAProxy-Status-Ubuntu-Linux][5] + +### Step 4) Verifying SSL Termination + +Finally, refresh your browser, and this time around, you will find that your load balancer is now secured with a TLS/SSL as evidenced by the padlock icon in the URL bar. + +![Verify-SSL-Tremination-Node1-Page][6] + +![Verify-SSL-Tremination-Node2-Page][7] + +##### Conclusion + +In this guide, we have demonstrated how to set up SSL termination with HAProxy on Ubuntu 22.04. Your feedback is welcome. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-setup-haproxy-ssl-termination-ubuntu/ + +作者:[James Kiarie][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/james/ +[b]: https://github.com/lkxed +[1]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Certbot-SSL-Certificates-Linux-Command-Line.png +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Combine-FullChain-Private-Key-Cat-command.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/08/SSL-Certs-HAProxy-Settings-Linux.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Check-HAProxy-Syntax-Command.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/08/HAProxy-Status-Ubuntu-Linux.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Verify-SSL-Tremination-Node1-Page.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Verify-SSL-Tremination-Node2-Page.png From 5065ca5763ad9beae8acc05c67f3cd80e465ca73 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 17 Aug 2022 19:32:54 +0800 Subject: [PATCH 0790/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220817=20How=20to=20Setup=20HAProxy=20SSL=20Termin?= =?UTF-8?q?ation=20on=20Ubuntu=2022.04.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md b/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md index 54da197576..8a97cda437 100644 --- a/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md +++ b/sources/tech/20220817 How to Setup HAProxy SSL Termination on Ubuntu 22.04.md @@ -9,6 +9,7 @@ How to Setup HAProxy SSL Termination on Ubuntu 22.04 ====== + In our previous guide, we demonstrated how to install and configure HAProxy as a load balancer on Ubuntu 22.04. This guide is a continuation of that guide and, we will go a step further and demonstrate how to setup HAPrpxy SSL termination on Ubuntu 22.04 step by step. HA Proxy is a widely used and opensource HTTP load balancer and proxying solution for Linux, Solaris, and FreeBSD environments. It’s used to enhance the performance and reliability of web servers by distributing the workload across multiple servers. By so doing, it provides high availability of services and applications. From 9411a13c69538c9385d676708496e3bc7a217c1c Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 17 Aug 2022 19:36:02 +0800 Subject: [PATCH 0791/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220817=20How=20to=20Iron=20Out=20IDE=20Issues=20wi?= =?UTF-8?q?th=20Auto=20Stub=20Generation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ut IDE Issues with Auto Stub Generation.md | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 sources/tech/20220817 How to Iron Out IDE Issues with Auto Stub Generation.md diff --git a/sources/tech/20220817 How to Iron Out IDE Issues with Auto Stub Generation.md b/sources/tech/20220817 How to Iron Out IDE Issues with Auto Stub Generation.md new file mode 100644 index 0000000000..2e7a44f4c0 --- /dev/null +++ b/sources/tech/20220817 How to Iron Out IDE Issues with Auto Stub Generation.md @@ -0,0 +1,168 @@ +[#]: subject: "How to Iron Out IDE Issues with Auto Stub Generation" +[#]: via: "https://www.opensourceforu.com/2022/08/how-to-iron-out-ide-issues-with-auto-stub-generation/" +[#]: author: "Vladimir Losev https://www.opensourceforu.com/author/vladimir-losev/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Iron Out IDE Issues with Auto Stub Generation +====== +*Automatic stub generation can significantly improve code analysis. Read on to find out why you should consider this, and how to go about it.* + +A good project takes a desired shape only due to the rigorous effort and time that developers put into it. But all this effort can go straight down the drain if the key components that are essential for development present any problems. During the development of the Toloka-Kit library at Toloka, the team encountered a wide range of such issues with integrated development environment (IDE) support. This article will help you understand the issues faced and how these were dealt with, so you can cross similar hurdles easily. +To put things into perspective, let us first understand what IDE hinting is. + +### IDE hinting + +Let us say we want to implement a module called sleepy (Figure 1). This sleepy module will contain a sleep_for function between the standard library and time sleep function. Our sleep_for function will accept a time unit, so we will be able to make it sleep for different time periods, say half an hour, a day, or maybe even for weeks. + +![Figure 1: Sleepy module in IDE][1] + +The team at Toloka implemented this module, and we saw that if we used the script_for function anywhere in our code, then the IDE showed us the signature. Upon trying to print the argument name it got autocompleted. If for some reason we passed an argument that was not expected in the signature, then the IDE highlighted this argument and we would see that we were doing something wrong before running the code. + +Let us write a simple decorator called log_function_call, as shown in Figure 2. This function does exactly what the name suggests. It will write a line of code in the login stream every time we run the function, and every time the function is complete we will write another message to our login form. + +![Figure 2: A simple decorator][2] + +Now, if we configure our login and run our sleeper function, we can see that everything works just fine (Figure 3). We can clearly see these lines of code. If we start to use this function in our code, we can see that neither do we have the signature highlighted any longer nor are the arguments autocompleted. If we pass an argument that shouldn’t be there, it is not highlighted and IDE does not indicate that we are doing something wrong. + +![Figure 3: Function output][3] + +“What are the reasons for this?” you may ask. Technically, it seems perfectly fine behaviour because decorators are substituting one function for another. Here, we defined a function called ‘wrapper’ and substituted our original function with the wrapper function. Upon importing the inspect module, when we used the inspect.signature function to just view the signature, we could see that the signature is still there (Figure 4). + +![Figure 4: Screen with signature][4] + +The trick is that functools.wrap actually preserves the signature in a specific attribute and it is there at runtime. And that begs the question: “Why could our IDE not pick the information up?” + +### Static code analysis + +The reason for this is exactly what has been mentioned above. The information about the original signature is stored in an attribute and is available at runtime. But IDE does not run our code. Instead, it uses static code analysis; so it does not have access to runtime objects and there are plenty of reasons for that. + +* Side effects: If you are running the code without proper knowledge of it, you may end up damaging your hard drive. +* Code may raise an exception or run for an infinite time: There could also be an exception in the code that can be raised while it’s being run. +* Syntactically incorrect code: The code may not be syntactically correct code. +In static code analysis, IDEs understand the code itself without actually running it, which is a much more difficult task to accomplish. + +### So what can we do? + +Generally, it is the best practice to provide the IDE with as much information as possible in the code itself. But in this particular case, this is what can be done. Figure 5 shows what our original decorator looked like; we can provide additional information in the form of typing. We can tell our IDE that the log function call is accepting and returning something of the same type. In our case, if the log_function_call accepts a function with some signature, then it should return the function with the same signature. + +Let us see how this works. If we start typing the argument name, we can see that there is a pop-up window above, which lists the whole signature (Figure 5). So actually the information about the signature is in our IDE but is not used to the fullest extent for some reason. The same is happening with the additional argument. The reason it does not highlight anything is due to some minor bug. + +![Figure 5: Pop-up window with list][5] + +Even a simple decorator can confuse IDE hinting, but in real life we may want to implement some more difficult decorators that we would not be able to annotate properly to help IDE to cope with this. + +Let us go back to our sleeping module for a second, and say that we got some feedback from our users to ensure our function is good. The users do not want to import time units every time we use the module. They want to be able to use both TimeUnit enum and the string literal. So, we write another decorator called autoenum, which will take the function, analyse the signature, and pick the arguments that are annotated as enum types. For those particular arguments, we will try to cast all the arguments that pass to the enum value. The code will look something like what is shown in Figure 6. + +![Figure 6: The code][6] + +The process is quite complicated, but let us go through it. First, we take the original signature of our function. Next, we bind our arbitrary arguments args and kwargs to the original signature in order to understand which values are passed to which argument name. Then we traverse the pairs of argument names and values passed to this argument. In case the argument was annotated as enum in the original signature, and if for some reason the value passed to this argument is not an enum, then we can assign a new argument, which is an argument annotation of original value. It takes an enum class and creates an enum instance from a string with a row name. + +There is a big chunk of code that preserves the signatures. If we want our new function to accept both enums and string literals, then we must update the annotations so that every enum annotation is replaced with a union of enums and some string literals. We can recreate a signature object and assign it to a signature attribute. + +![Figure 7: Updated IDE][7] + +In Figure 7, we can see that our IDE highlights the MINUTE string as an invalid argument, but if we run the code we can see that both versions of our code, i.e., the one with the time unit and the one with the string, are actually working. And when we try to get the output from the signature, we can see that this signature is actually updated. + +As a unit we should be able to pass both the sleepy time unit, which is an enum, or one of the following with literal seconds, minutes, hours, days or weeks. For some reason, IDE does not take this and we know why. + +In this particular case the code is so complicated that it is quite tough to understand which signature should be deduced from it without running it, because it is then almost equivalent to actually running the code. This is a very difficult problem, and we cannot think of annotations that will simplify the work for our IDE. + +This is why stub files are proposed. + +### What are stub files? + +Stub files are special files containing PEP-84. The main purpose of these files is to hold the typing information for modules. They are just Python files with the extension ‘pyi’. If an IDE finds a corresponding stub file for a module, it will analyse the stub file instead of the original file for syntax highlighting. + +*What to add to stub files* + +* Public members definitions +* Annotations +* Docstrings +* Final function signatures without decorators +* Constants where possible (otherwise use `…` instead) +* Necessary import + +*What can be omitted?* + +* Private members +* Decorators +* Function implementations (use docstring, `…` or pass) + +Now we have PEP-561, which says that any package maintainer that wants to support stub files has to put a marker file named py.typed in the package. We create an empty file called py.typed. This is an indicator for the static analytics tool for our IDE that it should look for the stub files in the package. Let’s see what happens to our IDE hinting after we add a py.typed empty file. + +We can once again see the signature and the autocomplete. We typed an argument that is not there and it is still highlighted. If we pass a string instead of the Timeunit.num, you can see it is not highlighted as an error in Figure 8. But there is still a problem. The reason for using all those decorators was to eliminate the boilerplate so that our coding process could be simplified and there would be no need to write a new piece of code every time. We could put this logic to decorators, but to support the IDE correctly we need to maintain stub files all by ourselves. This is a huge burden and defeats the purpose of using the decorators in the code. This is where automatic stub generation comes in. + +### Automatic stub generation + +To cut the long story short, the IDE is using static code analysis because it is afraid to run our code and does not have access to runtime objects to examine them. But if we write our code correctly while ensuring that it does not contain any side effects, and we can safely import it, then we can help the IDE to import these modules. From the imported modules we can inspect the module and create stub files without decorators, but the IDE will be able to pick it. + +Let us write some code to see how this can be implemented: + +``` +import importlib.util +from inspect import isfunction, signature +from io import StringIO +from types import ModuleType +def load_module_from_file (name: str, path: str): +spec = importlib.util.spec_from_file_location (name, path) +module = importlib.util.module_from_spec(spec) +spec. loader.exec_module(module) +return module +def generate_stub_content (module: ModuleType) -> str: +sio = StringIO() +for name, value in module.__dict_.items(): +if isfunction(value) and value.__module__== module.__name__: +sio.write(f’def {name}{signature (value)}:\n pass\n’) +return sio.getvalue() +def main(name, path): +with open (path + ‘i’, ‘w’) as stub_file: +module = load_module_from_file(name, path) +stub_file.write(generate_stub_content(module)) +if __name__== ‘__main__’: +main(‘sleepy’, ‘../sleepy/__init__.py’) +``` + +First, we have a function that receives the name of a module and a path to a source code. It imports the source code from the path as if it was a module called name. We’ll see how this works later. + +![Figure 8: Screen with highlighting error][8] + +Next, we need to create a special function that generates the stub files so that this function will accept the module object. This is a simplified version but will only generate stub files for functions. We will take our module and traverse all the attributes of our modules. If the value that is stored in the attribute is a function, and this function was defined in a specified module (some modules might be imported from somewhere else), then we only want to create the stub files to create the functions that are defined in our module. We will write the keyword, the name of the function, the signature of the function, and an empty body. The only thing ‘Function main’ does is that it takes a path to a module and imports it, creates a stub file, and then writes this file into the file that ends with an ‘I’. Now if we take a sleepy dot ‘py’ module, it will write the stub file to sleepy.pyi and we can run the code for our sleepy module. + +We want to import the sleepy module as a sleeper module, and it is located at sleepy/youNeedThatFile. We can get a long line of code by running it, but if we refactor the code we will see something like what is shown in Figure 9. + +![Figure 9: Result of refactoring the code][9] + +We now have the sleep_for function and a signature that is pretty much similar to what we expected but not quite. From this simple example we can see all the difficulties we will encounter while trying to take this approach. + +This code was simple and did not generate a syntactically correct Python file. This was because there was a problem with the default value and the required files were also not imported for it to be a valid Python file. We did not import literal and union, or define sleepy.TimeUnit. But since the IDE is clear, with a little more effort we can easily make this code work. + +In this case, we used the Stubmaker tool. This tool accepts the name and path to the package and output directories to generate stub files. This allows us to get automatically generated stub files that are created after introspecting the runtime objects. + +It is essential to understand the need for proper code analysis while working on a project. Try to seal as many loopholes as possible, so that problems like low cohesion are overcome. Developer time is valuable, and should be spent on improving the project rather than fixing routine problems. So, go for automatic stub generation to make their life easier too. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/how-to-iron-out-ide-issues-with-auto-stub-generation/ + +作者:[Vladimir Losev][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/vladimir-losev/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Sleepy-module-in-IDE.png +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-A-simple-decorator.png +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Function-outputs.png +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-4-Screen-with-signature.png +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-5-Pop-up-window-with-list.png +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-6-The-code.png +[7]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-7-Updated-IDE-1.png +[8]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-8-Screen-with-highlighting-error.png +[9]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-9-Result-of-refactoring-the-code.png From 2736f6717652dcb0d0c51512ba26c8dfd5f176c3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 17 Aug 2022 19:37:39 +0800 Subject: [PATCH 0792/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220817=20GNOME=2043-=20Top=20New=20Features=20and?= =?UTF-8?q?=20Release=20Wiki.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...E 43- Top New Features and Release Wiki.md | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 sources/tech/20220817 GNOME 43- Top New Features and Release Wiki.md diff --git a/sources/tech/20220817 GNOME 43- Top New Features and Release Wiki.md b/sources/tech/20220817 GNOME 43- Top New Features and Release Wiki.md new file mode 100644 index 0000000000..2dea6f50be --- /dev/null +++ b/sources/tech/20220817 GNOME 43- Top New Features and Release Wiki.md @@ -0,0 +1,211 @@ +[#]: subject: "GNOME 43: Top New Features and Release Wiki" +[#]: via: "https://www.debugpoint.com/gnome-43/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME 43: Top New Features and Release Wiki +====== +An extensive feature analysis of the GNOME 43 desktop environment bringing impactful changes to your day-to-day needs and workflow. + +![GNOME 43 Running via GNOME OS][1] + +This article summarises all necessary information about GNOME 43, including features, release schedule and more. The GNOME 43 release (upcoming) is probably the most impactful release since the GNOME 40 in terms of the features and their impact on your workflow. + +The feature includes updated and faster Shell performance, wrapping up GTK4 and libadwaita conversion, renovated Files and fantastic Web changes. + +All these necessary changes were long overdue and will change your traditional workflow in the GNOME desktop to make you more productive. + +### Schedule + +The BETA is out. The release candidate is expected on September 3rd, 2022. GNOME 43 finally releases on September 21, 2022. + +* GNOME 43 Beta: August 31, 2022 (Complete) +* GNOME 43 RC: September 3, 2022 +* GNOME 43 final release: September 21, 2022 + +### GNOME 43: The Features + +#### 1. Core Shell Changes + +* Finally, the high-resolution scroll wheel support lands in GNOME thanks to recent work in Wayland. So, if you have a high-resolution display, scrolling with an advanced mouse (such as Logitech MX Master 3) should be a treat for you. +* In addition to the above, the direct scanout support in GNOME 43 will help with multi-monitor setup situations. +* The server-side decorations get essential colour support. +* Shell also implemented a feature where the notifications get away when the focus changes, and it doesn’t wait for the timeout. +* Like every release, you experience better animation performance across the desktop, improved grid and overview navigation and critical updates, which gives you a seamless experience. + +So, that are the key summaries of the core changes. Now, let’s talk about the Quick settings. + +#### 2. New Quick Settings Menu + +The quick settings in the system tray are entirely changed. The quick settings items and menus now feature pill-shaped toggle buttons with vibrant colours to show what is happening in your system. The menu is also dynamic and makes way for cascading menu items. In addition, you can choose the audio devices in the quick settings. + +Here’s a quick demo, and for additional screenshots and write-up – read our exclusive coverage: [GNOME 43 Quick settings][2]. + +![Quick Settings Demo in GNOME 43][3] + +#### 3. Files + +GNOME Files gets the most features in GNOME 43 release. The list of improvements in this application is enormous. The file manager is the most used app in any desktop environment. Hence the changes in Files are the most impactful across the user base. + +For the first time, Files with GTK4 arrive (it was not ready during GNOME 42 release), and it will change your workflow for good. + +I will try to explain most of them in a brief list. Otherwise, this will be a lengthy post. I will push out another separate article on the File features. + +##### Adaptive sidebar + +So the sidebar of Files which gives you access to navigations, favourites, network drives, etc. – is not responsive. And it [autohides][4] itself when Files window size reaches a point. A familiar and handy feature if you work with many open windows and have smaller displays. + +Another exciting feature is that when the sidebar is wholly hidden, an icon appears at the left top for you to make it visible. + +![Files 43 with autohide sidebar][5] + +##### Emblems + +We had the emblems in GNOME long back, and they went away. So, Emblems make a comeback with GNOME 43 with small icons beside the files and directories. These icons imply the type, such as symbolic link, read-only, etc. Moreover, the icons change their colour based on your theme, and multiple emblems are also available for a single file. + +![Emblems in GNOME 43][6] + +##### Rubberband Selection + +Next up is the much-awaited rubberband selection feature, which [finally arrived][7]. Now you can select the files and folders by drag-selection mechanism. One of the most requested features from the users. + +![Rubberband Selection Feature][8] + +##### GtkColumnView replacing GtkTreeView + +When you mouse over the items in the column view, you see a focused row which is another critical feature of Files in GNOME 43. But the [tree view could not make it][9] and probably planned for the next iteration. + +![GtkColumnView enables row focus][10] + +##### Redesigned properties window with interactive permission and executable detection + +The properties window is [wholly changed][11], thanks to the adaptation of GTK4. The window is now much cleaner and well-designed, showing essential items only when required. + +Furthermore, the properties dialog can determine the file type and provide suitable options. For example, if you view the properties of a shell script or text file, you will get an option to make it executable. In contrast, the properties of an image file do not give you an executable option. + +![Intelligent properties window][12] + +**Tabbed View improvements** + +The tabbed view of Files gets some [additional updates][13]. The most noteworthy ones are the proper focus when dragging a file to tag, the creation of tabs after the current focussed tab and so on. + +**Redesigned Right-click menu** + +The primary right-click context menu on files or folders is restricted. Firstly, the OPEN option is clubbed under a submenu. Secondly, the copy/paste/cut options are consolidated in a group. And finally, the Trash, Rename and Compress options are grouped. + +In addition, the Open in terminal option is available for all files and folders. However, create a new file option is still missing (which I expected in this release). + +![Various Context Menu][14] + +##### Other changes in Files + +Other prominent changes in Files are the Trash icon, and other locations (network drive, disk) gets the properties option in right-click context menu. + +Finally, the Files preference window was revamped to show you more essential items. The redesign makes it easy for the average user to find the proper Files settings. + +#### 4. Web + +Let’s spare some moments to talk about our beloved Epiphany, a.k.a. GNOME Web, the WebKit-based native web browser for the GNOME desktop. + +The updates were long overdue and finally started landing from this release onwards. + +First and foremost, GNOME Web now supports WebExtension API. It lets you download and install the Firefox and Google Chrome extensions inside the Web. Here’s how you can do it. + +* Download any extension file (xpi or crx file) from Firefox Add-on or Google Chrome extension page. +* Click on the hamburger menu and select Extensions. +* Finally, click add to install them. + +WebExtension support is a crucial step for making the Web usable soon. + +Secondly, the Firefox Sync option is available, which lets you log in to the Web via a Firefox account to sync bookmarks and other browser items. + +![Login to the Web using a Firefox account][15] + +Other noteworthy changes in the Web include support for “view source”, GTK4 porting work and an updated PDF library (PDF.js 2.13.216). + +One of the critical components which are still missing in Web is the [WebRTC support via GStreamer][16]. Once that feature arrives, it will be a decent browser for daily usage. + +Hopefully, one day, we all have a decent alternative browser which is non-Firefox or non-Chromium. + +#### 5. Settings + +In the settings window, mostly improvements and visual fine-tuning arrive in this release. The important change includes the “Dog Bark” sound in Alert is gone now after a long and [interesting conversation][17]. + +In addition, a new device security panel is introduced, and the TImezone map in the Date & Time panel is revamped. + +The settings sidebar is also responsive and gives you autohide features like the Files shown above. + +#### 6. Software + +Two crucial changes are coming to GNOME Software. These changes enable you to view more information on a single page for any application. + +Firstly, a new section, “Other apps by Author”, gives you a list of apps by the author of the current app. This helps in discovery and tells you how popular the creator is. + +Secondly, GNOME 43 Software now provides you with a detailed list of permission required by the Flatpak apps in a separate window. Hence, you can verify the app before you install them. + +Another crucial visual change is a new “Available for Fedora/any distro” section on the application main overview page, which requires configuration. + +![Other APPS by developer section in Software][18] + +#### 7. Climate Change Wallpaper + +I am not sure whether this feature landed. Because I could not find it, but I heard about it. So, I though I should mention it here. + +The feature is that GNOME 43 brings a background wallpaper showing how the global temperature has risen over the decades from [ocean stripes][19]. The wallpaper contains vertical colour-coded bars denoting low and high temperatures. I think it’s a nice touch and an effort to raise awareness. Here’s the [commit][20] in GitLab. + +In addition, a couple of new [“days and nights”][21] fresh wallpapers are available. + +That’s all about the essential changes I could find and summarise here. Besides those, a vast list of bug fixes, performance improvements and code clean up lands in GNOME 43. + +Fedora 37 will feature GNOME 43 when released, and some parts of it should be in Ubuntu 22.10, due in October. + +### Wrapping Up + +GNOME 43 is an iconic release because it changes several basic designs and impacts millions of users’ workflow. The quick settings transformation is fantastic and long overdue. In addition, the necessary changes in Files, Web and Settings will improve your productivity. + +Furthermore, the new features arrive while keeping the design guideline and aesthetics in mind. A good user interface requires a well-thought-out process, and the devs did a perfect job in this release. + +So, that’s pretty much it. That’s GNOME 43 for you. Let me know if you plan to get this update and want to hop from KDE to GNOME! + +Do let me know your favourite feature in the comment section below. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-43/ + +作者:[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/08/GNOME-43-Running-via-GNOME-OS.jpg +[2]: https://www.debugpoint.com/gnome-43-quick-settings/ +[3]: https://www.debugpoint.com/?attachment_id=10682 +[4]: https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/877 +[5]: https://www.debugpoint.com/?attachment_id=10684 +[6]: https://www.debugpoint.com/?attachment_id=10685 +[7]: https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/817 +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/Rubberband-Selection-Feature.gif +[9]: https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/817 +[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/GtkColumnView-enables-row-focus.gif +[11]: https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/745 +[12]: https://www.debugpoint.com/wp-content/uploads/2022/08/Intelligent-properties-window.jpg +[13]: https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/595 +[14]: https://www.debugpoint.com/?attachment_id=10689 +[15]: https://www.debugpoint.com/wp-content/uploads/2022/08/Login-to-Web-using-Firefox-account.jpg +[16]: https://twitter.com/_philn_/status/1490391956970684422 +[17]: https://discourse.gnome.org/t/dog-barking-error-message-sound/9529/2 +[18]: https://www.debugpoint.com/wp-content/uploads/2022/08/Other-APPS-by-developer-section-in-Software.jpg +[19]: https://showyourstripes.info/s/globe/ +[20]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/commit/a142d5c88702112fae3b64a6d90d10488150d8c1 +[21]: https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/ From 2ddab8d98a8702b67b0d42a8d9892b7a04cfbfbd Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 18 Aug 2022 08:39:01 +0800 Subject: [PATCH 0793/3123] translated --- ...stom Light and Dark Wallpaper for GNOME.md | 107 ------------------ ...stom Light and Dark Wallpaper for GNOME.md | 107 ++++++++++++++++++ 2 files changed, 107 insertions(+), 107 deletions(-) delete mode 100644 sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md create mode 100644 translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md diff --git a/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md deleted file mode 100644 index 20632cbbad..0000000000 --- a/sources/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md +++ /dev/null @@ -1,107 +0,0 @@ -[#]: subject: "Create Your Own Custom Light and Dark Wallpaper for GNOME" -[#]: via: "https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Create Your Own Custom Light and Dark Wallpaper for GNOME -====== -An easy guide on creating your custom light and dark wallpaper for the GNOME desktop. - -[GNOME 42][1]introduces the much-awaited light and dark theme to GNOME Desktop. It also brings the light and dark version of wallpaper, which automatically changes when you switch between light and dark themes. - -So, by default, GNOME gives you a few sets of pre-configured light and dark wallpapers. - -But what if you want a different wallpaper that changes automatically when the theme changes? - -Here’s how to configure and create your custom wallpaper for light and dark themes in GNOME. - -### How to create custom light and dark wallpaper for GNOME - -Firstly, make sure you have two versions of wallpaper handy with you. In general, they should be standard PNG or JPG images. For example, we used below two wallpapers for this demo. - -![Sample light and dark wallpaper for demo][2] - -But if you do not have proper light and dark wallpaper and looking for more, I will let you know how to get them or prepare your own at the end of this guide. - -Stay with me. - -Second, we need to create a schema file for our own. The automatic changing of wallpaper is handled by an XML file called adwaita.xml, which defines specific light and dark background tags. So, we will create our XML file for the wallpapers. - -To do that, copy the contents of adwaita.xml from GitLab and create a new XML file (the link is down below). You should see two tags inside this file – “filename” and “filename-dark”. These two XML tags contain the fully qualified path of both wallpapers. Add the path to your images under these two tags, as shown below. - -[Download the XML file from here (adwaita.xml.in)][3] - -![Change the XML file][4] - -Third, save this file to **/home/your_name/.local/share/gnome-background-properties** with any name you want. If the “gnome-background-properties” are not there, create them. For this example, I used my_cool_backgrounds.xml. - -![Save the file][5] - -And you are all set. Finally, open the settings and go to the Appearance tab, and you should see the new wallpapers visible as an option. - -Select your custom light and dark wallpaper and enjoy. - -![The appearance tab now has your custom light and dark wallpaper][6] - -### How to download or make your dynamic wallpaper - -You must think, “who has the time to find and create both day and night versions of wallpaper”? Several websites give you dynamic wallpapers ready-made that you can easily download and install. - -One website I would recommend is [dynamicwallpaper.club][7] which has some excellent high-quality wallpapers up to 6K for macOS. And you can easily download them. - -Additionally, if you plan to download from the above website, remember that the site’s images are in [heic format][8]because the website is for macOS. The High-Efficiency Video Coding (HEIC) is Apple’s proprietary version of the HEIF or High-Efficiency Image File format. - -You need a driver to view and convert the dynamic heic images in Ubuntu or Fedora Linux. So, how do you convert them to Linux systems? Open a terminal and run the below commands to install the driver. - -**Ubuntu** **users** – - -``` -sudo apt install heif-gdk-pixbuf -``` - -Fedora users – - -``` -sudo dnf install libheif -``` - -**For Fedora/Ubuntu with KDE Plasma Only** (without this plugin, Plasma apps can’t open heic images) - -``` -sudo apt install qt-heif-image-pluginsudo dnf install qt-heif-image-plugin -``` - -Finally, open the heic image with your favourite image viewer and save it as JPG/PNG. - -![Custom Light and Dark wallpaper in GNOME – transition][9] - -Lastly, don’t forget to let me know below in the comment section whether you can create your own custom dark and light wallpaper for GNOME. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/2022/03/gnome-42-release/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sample-light-and-dark-wallpaper-for-demo.jpg -[3]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/tree/main/backgrounds -[4]: https://www.debugpoint.com/?attachment_id=9376 -[5]: https://www.debugpoint.com/?attachment_id=9375 -[6]: https://www.debugpoint.com/?attachment_id=9374 -[7]: https://dynamicwallpaper.club -[8]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format -[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Custom-Light-and-Dark-wallpaper-in-GNOME-transition.gif diff --git a/translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md new file mode 100644 index 0000000000..24e4580ade --- /dev/null +++ b/translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md @@ -0,0 +1,107 @@ +[#]: subject: "Create Your Own Custom Light and Dark Wallpaper for GNOME" +[#]: via: "https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 GNOME 中创建你自定义的浅色和深色壁纸 +====== +在 GNOME 桌面中创建自定义浅色和深色壁纸的简单指南。 + +[GNOME 42][1] 将期待已久的浅色和深色主题引入 GNOME 桌面。它还带来了浅色和深色版壁纸,当你在浅色和深色主题之间切换时,它会自动改变。 + +因此,默认情况下,GNOME 会为你提供几组预配置的浅色和深色壁纸。 + +但是,如果你想要在主题更改时自动更改的不同壁纸怎么办? + +以下是在 GNOME 中为浅色和深色主题配置和创建自定义壁纸的方法。 + +### 如何为 GNOME 创建自定义浅色和深色壁纸 + +首先,确保桌面有两个版本的壁纸。通常,它们应该是标准的 PNG 或 JPG 图像。例如,我们在演示中使用了以下两个壁纸。 + +![Sample light and dark wallpaper for demo][2] + +但是,如果你没有合适的浅色和深色壁纸并正在寻找更多,我会告诉你如何获取它们或在本指南的末尾准备自己的。 + +跟着我来。 + +其次,我们需要为自己创建一个模式文件。壁纸的自动更换由名为 adwaita.xml 的 XML 文件处理,该文件定义了特定的浅色和深色背景标签。因此,我们将为壁纸创建 XML 文件。 + +为此,从 GitLab 复制 adwaita.xml 的内容并创建一个新的 XML 文件(链接在下面)。你应该在这个文件中看到两个标签:“filename” 和 “filename-dark”。这两个 XML 标记包含两个壁纸的完全限定路径。在这两个标签下添加图片的路径,如下所示。 + +[从这里下载 XML 文件 (adwaita.xml.in)][3] + +![Change the XML file][4] + +第三步,使用你想要的任何名称将此文件保存到 **/home/your_name/.local/share/gnome-background-properties**。如果 “gnome-background-properties” 不存在,请创建它们。对此示例,我使用了 my_cool_backgrounds.xml。 + +![Save the file][5] + +都准备好了。最后,打开设置并转到外观选项卡,你应该会看到新壁纸作为选项可见。 + +选择你的自定义浅色和深色壁纸并享受。 + +![The appearance tab now has your custom light and dark wallpaper][6] + +### 如何下载或制作你的动态壁纸 + +你一定会想,“谁有时间去寻找和创建白天和夜晚版本的壁纸”?一些网站为你提供现成的动态壁纸,你可以轻松下载和安装。 + +我推荐的一个网站是 [dynamicwallpaper.club][7],它为 macOS 提供了一些高达 6K 的优秀高质量壁纸。你可以轻松下载它们。 + +此外,如果你打算从上述网站下载,请记住该网站的图像是 [heic 格式][8],因为该网站适用于 macOS。高效视频编码 (HEIC) 是 Apple 的 HEIF 或高效图像文件格式的专有版本。 + +你需要一个驱动来查看和转换 Ubuntu 或 Fedora Linux 中的动态 heic 图像。那么,如何将它们转换为适用于 Linux 系统呢?打开终端并运行以下命令来安装驱动。 + +**Ubuntu 用户** – + +``` +sudo apt install heif-gdk-pixbuf +``` + +**Fedora 用户** – + +``` +sudo dnf install libheif +``` + +**仅适用于带有 KDE Plasma 的 Fedora/Ubuntu**(没有此插件,Plasma 应用无法打开 heic 图像) + +``` +sudo apt install qt-heif-image-pluginsudo dnf install qt-heif-image-plugin +``` + +最后,使用你喜欢的图像查看器打开 heic 图像并将其保存为 JPG/PNG。 + +![Custom Light and Dark wallpaper in GNOME – transition][9] + +最后,别忘了在下面的评论部分告诉我你是否可以为 GNOME 创建自定义深色和浅色壁纸。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2022/03/gnome-42-release/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sample-light-and-dark-wallpaper-for-demo.jpg +[3]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/tree/main/backgrounds +[4]: https://www.debugpoint.com/?attachment_id=9376 +[5]: https://www.debugpoint.com/?attachment_id=9375 +[6]: https://www.debugpoint.com/?attachment_id=9374 +[7]: https://dynamicwallpaper.club +[8]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format +[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Custom-Light-and-Dark-wallpaper-in-GNOME-transition.gif From a607f5f0e4067362291e5f778bc331d298af1e08 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 18 Aug 2022 08:42:34 +0800 Subject: [PATCH 0794/3123] translating --- .../tech/20220817 Desktop Linux Market Share- August 2022.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220817 Desktop Linux Market Share- August 2022.md b/sources/tech/20220817 Desktop Linux Market Share- August 2022.md index 972451ed6c..660e9cc7ab 100644 --- a/sources/tech/20220817 Desktop Linux Market Share- August 2022.md +++ b/sources/tech/20220817 Desktop Linux Market Share- August 2022.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/linux-market-share/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 60af6de9789499826c2a7019c1d936cf4cfdcdb0 Mon Sep 17 00:00:00 2001 From: zhaoxu_Lee <67046056+lzx916@users.noreply.github.com> Date: Thu, 18 Aug 2022 17:13:17 +0800 Subject: [PATCH 0795/3123] Update and rename sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md to translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md translation done --- ...ent Supply Chain Attacks On Open Source.md | 38 ------------------- ...ent Supply Chain Attacks On Open Source.md | 38 +++++++++++++++++++ 2 files changed, 38 insertions(+), 38 deletions(-) delete mode 100644 sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md create mode 100644 translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md diff --git a/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md deleted file mode 100644 index 5b9f332b4b..0000000000 --- a/sources/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ /dev/null @@ -1,38 +0,0 @@ -[#]: subject: "Github Takes Action To Prevent Supply Chain Attacks On Open Source" -[#]: via: "https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: "lzx916" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Github Takes Action To Prevent Supply Chain Attacks On Open Source -====== -A series of further software supply chain breaches have highlighted the essential need to secure software chains of custody in the wake of the 2020 SolarWinds cyberespionage campaign, in which Russian hackers infiltrated a widely used IT management platform and snuck contaminated upgrades into it. And since open source initiatives are fundamentally decentralised and frequently ad hoc activities, the problem is especially urgent in this context. After a slew of unsettling hacks of widely used JavaScript software packages from GitHub’s well-known “npm” registry, the business unveiled a strategy this week to provide improved open source security protections. - -The code-signing platform Sigstore will be supported by GitHub, which is owned by Microsoft, for npm software packages. Code signing is akin to a digital wax seal. In order to make it considerably simpler for open source maintainers to confirm that the code they produce is the same code that ultimately ends up in the software packages that are actually being downloaded by people globally, cross-industry collaboration led to the creation of the tool. - -GitHub is not the only part of the open source ecosystem, but Dan Lorenc, CEO of Chainguard, which is a co-developer of Sigstore, notes that it is a vital hub for the community because it is where the great majority of projects store and share their source code. However, developers usually visit a package management when they truly want to download open source software or tools. - -By making Sigstore available to package managers, developers may handle cryptographic checks and requirements as software goes through the supply chain with the help of the Sigstore tools. This increases transparency throughout every stage of the product’s journey. Many individuals, according to Lorenc, are astounded to learn that these integrity checks haven’t been implemented yet and that a sizable portion of the open source ecosystem has long relied on blind faith. The Biden White House released an executive order in May 2021 that dealt primarily with software supply chain security. - -The Linux Foundation, Google, Red Hat, Purdue University, and Chainguard all contributed to the development of Sigstore. There is now official software for signing Python package distributions using Sigstore, and Kubernetes, an open source environment for developing software, now supports it. - -Sigstore relies on being free and simple to use to encourage adoption, much as the major industry push to promote HTTPS web encryption, which was made possible in large part by tools like Let’s Encrypt from the nonprofit Internet Security Research Group. According to Github, the project will begin with a proposal on how Sigstore will be implemented for npm and an open comment period to get community input on the precise deployment strategy for the tool. However, the ultimate objective is to make such code signing available to as many open source projects as possible to make supply chain attacks considerably more challenging. - -“We want to see a world where eventually all software artifacts are signed and linked back to the source code,” GitHub’s Hutchings says. “That is why it is so important to build on an open technology stack like Sigstore that other packaging repositories can adopt as well.” - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/ - -作者:[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 diff --git a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md new file mode 100644 index 0000000000..f62fc9e258 --- /dev/null +++ b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -0,0 +1,38 @@ +[#]: subject: "Github Takes Action To Prevent Supply Chain Attacks On Open Source" +[#]: via: "https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "lzx916" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为防止对开源供应链的攻击,Github在行动 +====== +在2020年“SolarWinds”网络间谍活动之后,一系列进一步的软件供应链漏洞突显了确保软件监管链安全的必要性。在这场间谍活动中,俄罗斯黑客渗透到一个广泛使用的IT管理平台,并将受污染的升级产品悄悄带入其中。由于开源项目从根本上来说是分散的,而且经常是临时的活动,因此在这种背景下,这个问题尤其紧迫。GitHub著名的“npm”注册表中广泛使用的JavaScript软件包遭到一系列令人不安的黑客攻击后,该公司本周公布了一项战略,以提供更好的开源安全保护。 + +代码签名平台Sigstore将由微软旗下的GitHub支持,以用于npm软件包。代码签名类似于数字蜡封。为了让开源维护者更加容易地确认他们编写的代码是否与全球范围内人们实际下载的软件包中最终包含的代码相同,跨行业协作促成了该工具的创建。 + +GitHub并不是开源生态系统的唯一组成部分,但Sigstore的联合开发者、Chainguard的首席执行官Dan Lorenc指出,它是社区的一个重要枢纽,因为绝大多数项目都在这里存储和共享源代码。然而,当开发人员真正想下载开源软件或工具时,他们通常会访问包管理。 + +通过让包管理器可以使用Sigstore,开发人员可以在Sigstore工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc说,许多人惊讶地发现,这些完整性检查还没有实施,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于2021年5月发布了一项行政命令,主要处理软件供应链安全问题。 + +Linux基金会、Google、Red Hat、Purdue University和Chainguard都对Sigstore的开发做出了贡献。现在有了使用Sigstore为Python包发行版签名的官方软件,而且开发软件的开源环境Kubernetes现在也支持它。 + +Sigstore依靠免费和简单易用来鼓励采用,就像主要行业推动HTTPS网络加密一样,这在很大程度上是由非营利互联网安全研究集团(Internet Security Research Group)的Let’s Encrypt等工具实现的。据Github称,该项目会首先提出Sigstore将如何在npm中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而实现对供应链的攻击。 + +GitHub的Hutchings说:“我们希望看到这样一个世界,最终所有的软件工件都被签名并链接回源代码,这就是为什么构建像Sigstore这样的开放技术栈是如此重要,其他打包存储库也可以采用这种技术。” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-supply-chain-attacks-on-open-source/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[lzx916](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 From 5a642adac7b1b4329a73c1a083b623d036db0c54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 18 Aug 2022 17:18:19 +0800 Subject: [PATCH 0796/3123] RP @geekpi https://linux.cn/article-14943-1.html --- ...804 3 ways to take screenshots on Linux.md | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) rename {translated/tech => published}/20220804 3 ways to take screenshots on Linux.md (61%) diff --git a/translated/tech/20220804 3 ways to take screenshots on Linux.md b/published/20220804 3 ways to take screenshots on Linux.md similarity index 61% rename from translated/tech/20220804 3 ways to take screenshots on Linux.md rename to published/20220804 3 ways to take screenshots on Linux.md index 9d3b1e0e60..81c75db9c4 100644 --- a/translated/tech/20220804 3 ways to take screenshots on Linux.md +++ b/published/20220804 3 ways to take screenshots on Linux.md @@ -3,53 +3,56 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14943-1.html" 在 Linux 上截屏的 3 种方法 ====== -通过使用我最喜欢的工具之一在 Linux 上截屏来节省时间。 -![Digital creative of a browser on the internet][1] +> 使用我最喜欢的工具在 Linux 上截屏,可以节省时间。 -在写开源软件时,我更喜欢展示一些截图来帮助演示我在说什么。古语有云,一图胜千言。如果你能展示一件事,那通常比仅仅试图描述它要好。 +![](https://img.linux.net.cn/data/attachment/album/202208/18/171722vpqzxcghsqrj52p7.jpg) + +在写开源软件时,我更喜欢展示一些截图来帮助演示我在说什么。古语有云,一图胜千言。如果你能展示一件事,那通常比试图用言语描述它要好。 有几种方法可以在 Linux 中截图。以下是我在 Linux 上用于捕获截图的三种方法: -### 1. GNOME +### 1、GNOME -GNOME 有一个很棒的内置截图工具。只需按下键盘上的 **PrtScr** 键,GNOME 就会显示一个截图对话框: +GNOME 有一个很棒的内置截图工具。只需按下键盘上的 `PrtScr` 键,GNOME 就会显示一个截图对话框: ![Image of GNOME screenshot tool][2] -默认操作是抓取区域的截图。这是一种在你制作截图时裁剪截图的非常有用的方法。只需将高亮显示框移动到你需要的位置,然后使用“抓取”角来更改大小。或选择其他图标之一以截取整个屏幕或系统上的单个窗口。点击圆圈图标进行截图,类似于手机上的“拍照”按钮。 GNOME 截图工具将截图保存在图片文件夹内的截图文件夹中。 +默认操作是抓取区域的截图。这是一种在你制作截图时裁剪截图的非常有用的方法。只需将高亮显示框移动到你需要的位置,然后使用“抓取”角来更改大小。或选择其他图标之一以截取整个屏幕或系统上的单个窗口。点击“圆圈”图标进行截图,类似于手机上的“拍照”按钮。 GNOME 截图工具将截图保存在图片文件夹内的截图文件夹中。 -### 2. GIMP +### 2、GIMP -如果你需要更多截图选项,你可以使用流行的图像编辑器 GIMP 截图。要进行截图,请选择**文件**并选择**创建**子菜单,然后选择**截图**。 +如果你需要更多截图选项,你可以使用流行的图像编辑器 GIMP 截图。要进行截图,请选择“文件File”并选择“创建Create”子菜单,然后选择“截图Screenshot”。 ![Image of the GIMP screenshot menu][3] -该对话框允许你截取单个窗口、整个屏幕或仅一个区域的屏幕截图。我喜欢这个工具可以让你设置一个延迟:多长时间直到你选择窗口,多长时间之后截图。当我想截取菜单操作的截图时,我经常使用此功能,因此我有足够的时间去窗口打开菜单。 +该对话框允许你截取单个窗口、整个屏幕或仅一个区域的屏幕截图。我喜欢这个工具可以让你设置一个延迟:选择窗口后多长时间,按下截图后多长时间。当我想截取菜单操作的截图时,我经常使用此功能,因此我有足够的时间去窗口打开菜单。 GIMP 将截图作为新图像打开,你可以对其进行编辑并保存到你喜欢的位置。 -### 3. Firefox +### 3、Firefox -如果你需要截取网站的截图,请尝试使用 Firefox 的内置截图程序。右键单击网页正文中的任意位置,然后从菜单中选择**截图**: +如果你需要截取网站的截图,请尝试使用 Firefox 的内置截图程序。右键单击网页正文中的任意位置,然后从菜单中选择“截图Take Screenshot”: ![Image of screenshot utility][4] -Firefox 切换到模态显示并提示你单击或拖动页面以选择区域,或使用其中一个图标保存整个页面的副本或仅在浏览器中可见的内容: +Firefox 切换到模态显示,并提示你单击或拖动页面以选择区域,或使用其中一个图标保存整个页面的副本,或仅在浏览器中可见的内容: ![Image of Firefox modal display][5] -当你在屏幕上移动鼠标时,你可能会注意到 Firefox 会高亮显示某些区域。这些是页面上的块元素,例如 `
              ` 或其他块元素。单击该元素以对其进行截图。 Firefox 将截图保存到你的**下载**文件夹,或你设置为“下载”位置的任何位置。 +当你在屏幕上移动鼠标时,你可能会注意到 Firefox 会高亮显示某些区域。这些是页面上的块元素,例如 `
              ` 或其他块元素。单击该元素以对其进行截图。 Firefox 将截图保存到你的下载文件夹,或你设置为“下载”位置的任何位置。 -如果你尝试记录流程,那么截图可以为你节省大量时间。尝试使用其中一种方法在 Linux 上截图。 +如果你尝试记录流程,那么截图可以为你节省大量时间。 -图片来源:(Jim Hall,CC BY-SA 40) +尝试使用其中一种方法在 Linux 上截图。 + +(图片来源:Jim Hall,CC BY-SA 40) -------------------------------------------------------------------------------- @@ -58,7 +61,7 @@ via: https://opensource.com/article/22/8/screenshots-linux 作者:[Jim Hall][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/) 荣誉推出 From 9ffe9148c892fb41f29e2457bbdd14d93bb54c85 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 18 Aug 2022 17:26:47 +0800 Subject: [PATCH 0797/3123] R --- published/20220804 3 ways to take screenshots on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220804 3 ways to take screenshots on Linux.md b/published/20220804 3 ways to take screenshots on Linux.md index 81c75db9c4..d9d3e90ebe 100644 --- a/published/20220804 3 ways to take screenshots on Linux.md +++ b/published/20220804 3 ways to take screenshots on Linux.md @@ -12,7 +12,7 @@ > 使用我最喜欢的工具在 Linux 上截屏,可以节省时间。 -![](https://img.linux.net.cn/data/attachment/album/202208/18/171722vpqzxcghsqrj52p7.jpg) +![](https://img.linux.net.cn/data/attachment/album/202208/18/172307e5du1dxqd66d66cm.jpg) 在写开源软件时,我更喜欢展示一些截图来帮助演示我在说什么。古语有云,一图胜千言。如果你能展示一件事,那通常比试图用言语描述它要好。 From 19538aa0f7e8921d99dadfb8b28b5423d9b4a9a5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 18 Aug 2022 18:16:26 +0800 Subject: [PATCH 0798/3123] RP @Yufei-Yan https://linux.cn/article-14944-1.html --- ...921 3 ways to test your API with Python.md | 87 ++++++++----------- 1 file changed, 37 insertions(+), 50 deletions(-) rename {translated/tech => published}/20210921 3 ways to test your API with Python.md (86%) diff --git a/translated/tech/20210921 3 ways to test your API with Python.md b/published/20210921 3 ways to test your API with Python.md similarity index 86% rename from translated/tech/20210921 3 ways to test your API with Python.md rename to published/20210921 3 ways to test your API with Python.md index cdb22697bc..a6951521eb 100644 --- a/translated/tech/20210921 3 ways to test your API with Python.md +++ b/published/20210921 3 ways to test your API with Python.md @@ -3,16 +3,16 @@ [#]: author: "Miguel Brito https://opensource.com/users/miguendes" [#]: collector: "lujun9972" [#]: translator: "Yufei-Yan" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14944-1.html" 用 Python 测试 API 的 3 种方式 ===== -单元测试可能令人生畏,但是这些 Python 模块会使你的生活变得更容易。 +> 单元测试可能令人生畏,但是这些 Python 模块会使你的生活变得更容易。 -![Puzzle pieces coming together to form a computer screen][1] +![](https://img.linux.net.cn/data/attachment/album/202208/18/180800clp08p82pi838zrs.jpg) 在这个教程中,你将学到如何对执行 HTTP 请求代码的进行单元测试。也就是说,你将看到用 Python 对 API 进行单元测试的艺术。 @@ -35,25 +35,24 @@ ### 使用一个天气状况 REST API 的演示程序 -为了更好的解决这个问题,假设你正在创建一个天气状况的 app。这个 app 使用第三方天气状况 REST API 来检索一个城市的天气信息。其中一个需求是生成一个简单的 HTML 页面,像下面这个图片: +为了更好的解决这个问题,假设你正在创建一个天气状况的应用。这个应用使用第三方天气状况 REST API 来检索一个城市的天气信息。其中一个需求是生成一个简单的 HTML 页面,像下面这个图片: ![web page displaying London weather][3] -伦敦的天气,OpenWeatherMap。图片是作者自己制作的。 +*伦敦的天气,OpenWeatherMap。图片是作者自己制作的。* 为了获得天气的信息,必须得去某个地方找。幸运的是,通过 [OpenWeatherMap][2] 的 REST API 服务,可以获得一切需要的信息。 _好的,很棒,但是我该怎么用呢?_ -通过发送一个 `GET` 请求到:`https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}&units=metric`,就可以获得你所需要的所有东西。在这个教程中,我会把城市名字设置成一个参数,并确定公制单位。 +通过发送一个 `GET` 请求到:`https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}&units=metric`,就可以获得你所需要的所有东西。在这个教程中,我会把城市名字设置成一个参数,并确定使用公制单位。 ### 检索数据 -使用`请求`requests来检索天气数据。可以创建一个接收城市名字作为参数的函数,然后返回一个 JSON。JSON 包含温度,天气状况的描述,日出和日落时间等数据。 +使用 `requests` 模块来检索天气数据。你可以创建一个接收城市名字作为参数的函数,然后返回一个 JSON。JSON 包含温度、天气状况的描述、日出和日落时间等数据。 下面的例子演示了这样一个函数: - ``` def find_weather_for(city: str) -> dict:     """Queries the weather API and returns the weather data for a particular city.""" @@ -65,7 +64,7 @@ def find_weather_for(city: str) -> dict: 这个 URL 是由两个全局变量构成: ``` -BASE_URL = "" +BASE_URL = "https://api.openweathermap.org/data/2.5/weather" API = BASE_URL + "?q={city_name}&appid={api_key}&units=metric" ``` @@ -116,10 +115,9 @@ API 以这个格式返回了一个 JSON:   "cod": 200 ``` -当调用 `resp.json()` 的时候,数据是以 Python 字典的形式返回的。为了封装所有细节,可以用 `dataclass` 来代表。这个类有一个工厂方法,可以获得这个字典并且返回一个 `WeatherInfo` 实例。 - -这种办法很好,因为可以保持这种表示方法的稳定。比如,如果 API 改变了 JSON 的结构,就可以在同一个地方修改逻辑,在 `from_dict` 方法中。其他代码不会受影响。你也可以从不同的源获得信息,然后把他们都整合到 `from_dict` 方法中。 +当调用 `resp.json()` 的时候,数据是以 Python 字典的形式返回的。为了封装所有细节,可以用 `dataclass` 来表示它们。这个类有一个工厂方法,可以获得这个字典并且返回一个 `WeatherInfo` 实例。 +这种办法很好,因为可以保持这种表示方法的稳定。比如,如果 API 改变了 JSON 的结构,就可以在同一个地方(`from_dict` 方法中)修改逻辑。其他代码不会受影响。你也可以从不同的源获得信息,然后把它们都整合到 `from_dict` 方法中。 ``` @dataclass @@ -154,18 +152,17 @@ def retrieve_weather(city: str) -> WeatherInfo: 很好,我们的 app 现在有一些基础了。在继续之前,对这些函数进行单元测试。 -### 1\. 使用 mock 测试 API +### 1、使用 mock 测试 API [根据维基百科][4],模拟对象mock object是通过模仿真实对象来模拟它行为的一个对象。在 Python 中,你可以使用 `unittest.mock` 库来模拟mock任何对象,这个库是标准库中的一部分。为了测试 `retrieve_weather` 函数,可以模拟 `requests.get`,然后返回静态数据。 #### pytest-mock -在这个教程中,会使用 `pytest` 作为测试框架。通过插件,`pytest` 库是非常具有扩展性的。为了完成我们的模拟目标,要用 `pytest-mock`。这个插件抽象化了大量 `unittest.mock` 中的设置,也会让你的代码更简洁。如果你还好奇的话,我在[另一篇博文中][5]会有更多的讨论。 +在这个教程中,会使用 `pytest` 作为测试框架。通过插件,`pytest` 库是非常具有扩展性的。为了完成我们的模拟目标,要用 `pytest-mock`。这个插件抽象化了大量 `unittest.mock` 中的设置,也会让你的代码更简洁。如果你感兴趣的话,我在 [另一篇博文中][5] 会有更多的讨论。 -_好的,说的够多的了,现在看代码。_ - -下面是一个 `retrieve_weather` 函数的完整测试用例。这个测试使用了两个 fixture:一个是由 `pytest-mock` 插件提供的 `mocker` fixture, 还有一个是我们自己的。就是从之前请求中保存的静态数据。 +_好的,言归正传,现在看代码。_ +下面是一个 `retrieve_weather` 函数的完整测试用例。这个测试使用了两个 `fixture`:一个是由 `pytest-mock` 插件提供的 `mocker` fixture, 还有一个是我们自己的。就是从之前请求中保存的静态数据。 ``` @pytest.fixture() @@ -173,9 +170,9 @@ def fake_weather_info():     """Fixture that returns a static weather data."""     with open("tests/resources/weather.json") as f:         return json.load(f) +``` -[/code] [code] - +``` def test_retrieve_weather_using_mocks(mocker, fake_weather_info):     """Given a city name, test that a HTML report about the weather is generated     correctly.""" @@ -194,7 +191,6 @@ def test_retrieve_weather_using_mocks(mocker, fake_weather_info): 如果运行这个测试,会获得下面的输出: - ``` ============================= test session starts ============================== ...[omitted]... @@ -215,7 +211,6 @@ Process finished with exit code 0 而且,另一个不好的方面是你需要在调用函数之前进行大量设置——至少是三行代码。 - ``` ...     # Creates a fake requests response object @@ -230,9 +225,10 @@ Process finished with exit code 0 _我可以做的更好吗?_ 是的,请继续看。我现在看看怎么改进一点。 + ### 使用 responses -用 `mocker` 功能模拟 `requests` 有点问题,就是有很多设置。避免这个问题的一个好办法就是使用一个库,可以拦截 `requests` 调用并且给他们打补丁patches。有不止一个库可以做这件事,但是对我来说最简单的是 `responses`。我们来看一下怎么用,并且替换 `mock`。 +用 `mocker` 功能模拟 `requests` 有点问题,就是有很多设置。避免这个问题的一个好办法就是使用一个库,可以拦截 `requests` 调用并且给它们 打补丁patch。有不止一个库可以做这件事,但是对我来说最简单的是 `responses`。我们来看一下怎么用,并且替换 `mock`。 ``` @responses.activate @@ -250,7 +246,6 @@ def test_retrieve_weather_using_responses(fake_weather_info): 然后运行测试: - ``` ============================= test session starts ============================== ... @@ -266,9 +261,9 @@ tests/test_weather_app.py::test_retrieve_weather_using_responses PASSED  [100%] #### 缺点 -和 `unittest.mock` 很像,测试和实现再一次耦合了。如果替换 `requests`, 测试就不能用了。 +和 `unittest.mock` 很像,测试和实现再一次耦合了。如果替换 `requests`,测试就不能用了。 -### 2\. 使用适配器adapter测试 API +### 2、使用适配器测试 API _如果用模拟让测试耦合了,我能做什么?_ @@ -293,7 +288,7 @@ def find_weather_for(city: str) -> dict: 变成这样: ``` -def find_weather_for(city: str) -> dict: +def find_weather_for(city: str) -> dict:     """Queries the weather API and returns the weather data for a particular city."""     url = API.format(city_name=city, api_key=API_KEY)     return adapter(url) @@ -309,7 +304,6 @@ def requests_adapter(url: str) -> dict: 现在到了重构 `retrieve_weather` 函数的时候: - ``` def retrieve_weather(city: str) -> WeatherInfo:     """Finds the weather for a city and returns a WeatherInfo instance.""" @@ -319,17 +313,16 @@ def retrieve_weather(city: str) -> WeatherInfo: 所以,如果你决定改为使用 `urllib` 的实现,只要换一下适配器: - ``` def urllib_adapter(url: str) -> dict:     """An adapter that encapsulates urllib.urlopen"""     with urllib.request.urlopen(url) as response:         resp = response.read()     return json.loads(resp) +``` -[/code] [code] - -def retrieve_weather(city: str) -> WeatherInfo: +``` +def retrieve_weather(city: str) -> WeatherInfo:     """Finds the weather for a city and returns a WeatherInfo instance."""     data = find_weather_for(city, adapter=urllib_adapter)     return WeatherInfo.from_dict(data) @@ -353,7 +346,6 @@ def test_retrieve_weather_using_adapter( 如果运行测试,会获得: - ``` ============================= test session starts ============================== tests/test_weather_app.py::test_retrieve_weather_using_adapter PASSED    [100%] @@ -362,7 +354,7 @@ tests/test_weather_app.py::test_retrieve_weather_using_adapter PASSED    [100% #### 优点 -这个方法的优点是可以成功将测试和实现解耦。使用[依赖注入dependency injection][6]在测试期间注入一个假的适配器。你也可以在任何时候更换适配器,包括在运行时。这些事情都不会改变任何行为。 +这个方法的优点是可以成功将测试和实现解耦。使用[依赖注入][6]dependency injection在测试期间注入一个假的适配器。你也可以在任何时候更换适配器,包括在运行时。这些事情都不会改变任何行为。 #### 缺点 @@ -376,15 +368,14 @@ def requests_adapter(url: str) -> dict: 在生产环境中,适配器会有问题,而且单元测试没办法发现。但是事实是,之前的方法也会有同样的问题。这就是为什么不仅要单元测试,并且总是要集成测试。也就是说,要考虑另一个选项。 -### 3\. 使用 VCR.py 测试 API +### 3、使用 VCR.py 测试 API 现在终于到了讨论我们最后一个选项了。诚实地说,我也是最近才发现这个。我用模拟mock也很长时间了,而且总是有一些问题。`VCR.py` 是一个库,它可以简化很多 HTTP 请求的测试。 -它的工作原理是将第一次运行测试的 HTTP 交互记录为一个 YAML 文件,叫做 _cassette_。请求和响应都会被序列化。当第二次运行测试的时候,`VCT.py` 将拦截对请求的调用,并且返回一个响应。 +它的工作原理是将第一次运行测试的 HTTP 交互记录为一个 YAML 文件,叫做 `cassette`。请求和响应都会被序列化。当第二次运行测试的时候,`VCT.py` 将拦截对请求的调用,并且返回一个响应。 现在看一下下面如何使用 `VCR.py` 测试 `retrieve_weather`: - ``` @vcr.use_cassette() def test_retrieve_weather_using_vcr(fake_weather_info): @@ -400,10 +391,9 @@ _cassette 文件是什么样?_ 好问题。这个文件里有很多东西。这是因为 VCR 保存了交互中的所有细节。 - ``` interactions: -\- request: +- request:     body: null     headers:       Accept: @@ -415,7 +405,7 @@ interactions:       User-Agent:       - python-requests/2.24.0     method: GET -    uri: [https://api.openweathermap.org/data/2.5/weather?q=London\&appid=\][7]&units=metric +    uri: https://api.openweathermap.org/data/2.5/weather?q=London&appid=&units=metric   response:     body:       string: '{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":800,"main":"Clear","description":"clearsky","icon":"01d"}],"base":"stations","main":{"temp":16.53,"feels_like":15.52,"temp_min":15,"temp_max":17.78,"pressure":1023,"humidity":72},"visibility":10000,"wind":{"speed":2.1,"deg":40},"clouds":{"all":0},"dt":1600420164,"sys":{"type":1,"id":1414,"country":"GB","sunrise":1600407646,"sunset":1600452509},"timezone":3600,"id":2643743,"name":"London","cod":200}' @@ -458,24 +448,21 @@ _确实很多!_ * 如果你改了请求,比如说用了错误的 header,测试会失败。 * 没有与代码实现耦合,所以你可以换适配器,而且测试会通过。唯一有关系的东西就是请求必须是一样的。 - #### 缺点 再与模拟相比较,除了避免了错误,还是有一些问题。 如果 API 提供者出于某种原因修改了数据格式,测试仍然会通过。幸运的是,这种情况并不经常发生,而且在这种重大改变之前,API 提供者通常会给他们的 API 提供不同版本。 -另一个需要考虑的事情是就地in place端到端end-to-end测试。每次服务器运行的时候,这些测试都会调用。顾名思义,这是一个范围更广、更慢的测试。他们会比单元测试覆盖更多。事实上,并不是每个项目都需要使用它们。所以,就我看来,`VCR.py` 对于大多数人的需求来说都绰绰有余。 +另一个需要考虑的事情是就地in place端到端end-to-end测试。每次服务器运行的时候,这些测试都会调用。顾名思义,这是一个范围更广、更慢的测试。它们会比单元测试覆盖更多。事实上,并不是每个项目都需要使用它们。所以,就我看来,`VCR.py` 对于大多数人的需求来说都绰绰有余。 ### 总结 就这么多了。我希望今天你了解了一些有用的东西。测试 API 客户端应用可能会有点吓人。然而,当武装了合适的工具和知识,你就可以驯服这个野兽。 -在[我的 Github][8] 上可以找到完整的 app。 +在 [我的 Github][8] 上可以找到这个完整的应用。 -* * * - -_这篇文章最早发表在[作者的个人博客][9],并且已得到授权_ +_这篇文章最早发表在 [作者的个人博客][9],授权转载_ -------------------------------------------------------------------------------- @@ -483,8 +470,8 @@ via: https://opensource.com/article/21/9/unit-test-python 作者:[Miguel Brito][a] 选题:[lujun9972][b] -译者:[https://github.com/Yufei-Yan](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Yufei-Yan](https://github.com/Yufei-Yan) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -496,6 +483,6 @@ via: https://opensource.com/article/21/9/unit-test-python [4]: https://en.wikipedia.org/wiki/Mock_object [5]: https://miguendes.me/7-pytest-plugins-you-must-definitely-use [6]: https://stackoverflow.com/questions/130794/what-is-dependency-injection -[7]: https://api.openweathermap.org/data/2.5/weather?q=London\&appid=\ +[7]: https://api.openweathermap.org/data/2.5/weather?q=London&appid= [8]: https://github.com/miguendes/tutorials/tree/master/testing_http [9]: https://miguendes.me/3-ways-to-test-api-client-applications-in-python From a23a2767c604468562d7789f2a9b94d709f86918 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Thu, 18 Aug 2022 21:38:09 +0800 Subject: [PATCH 0799/3123] finished --- ...20220810 Create beautiful PDFs in LaTeX.md | 229 ----------------- ...20220810 Create beautiful PDFs in LaTeX.md | 231 ++++++++++++++++++ 2 files changed, 231 insertions(+), 229 deletions(-) delete mode 100644 sources/tech/20220810 Create beautiful PDFs in LaTeX.md create mode 100644 translated/tech/20220810 Create beautiful PDFs in LaTeX.md diff --git a/sources/tech/20220810 Create beautiful PDFs in LaTeX.md b/sources/tech/20220810 Create beautiful PDFs in LaTeX.md deleted file mode 100644 index 55d9e32bff..0000000000 --- a/sources/tech/20220810 Create beautiful PDFs in LaTeX.md +++ /dev/null @@ -1,229 +0,0 @@ -[#]: subject: "Create beautiful PDFs in LaTeX" -[#]: via: "https://opensource.com/article/22/8/pdf-latex" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Create beautiful PDFs in LaTeX -====== -Use the LaTeX markup language to compose documents. - -The LaTeX document preparation system has an interesting history. When programmer Don Knuth wrote his first book, The Art of Computer Programming, in 1968, it was produced using an old-style printing press method. When he published the second edition in 1976, the publisher had moved to modern phototypesetting. - -Knuth was unhappy with how the new edition looked. Addressing the problem from a programmer's perspective, Knuth decided to create his own text processing system so his future books could be formatted to look the same way, for every book in the series. And so it was that Don Knuth wrote the first version of TeX in 1978. - -A few years later, Leslie Lamport created a set of macros that help authors write complex documents more easily. Lamport's macro extensions, LaTeX, essentially extends TeX to easily produce all kinds of documents. For example, many academic organizations use LaTeX to publish journals and proceedings. - -### Writing documents in LaTeX - -It's easy to learn the basics of LaTeX by writing a short article. Let's start by borrowing from the [About Opensource.com][4] page to create this sample input file: - -``` -$ cat about.tex -\documentclass{article} -\begin{document} - -Opensource.com is a premier, daily publication focused on -open source and Linux tutorials, stories, and resources. - -We're a diverse and inviting group, made up of staff -editors, Correspondents, contributors, and readers. We -value differences in skills, talents, backgrounds, and -experiences. There are a few different ways to get involved -as a reader or a writer. - -\end{document} -``` - -Like other document formatting programs, LaTeX collects words and fills paragraphs. That means you can add new text in the middle of a paragraph and not worry about how the final document will look. As long as you don't add a blank line in the middle of a paragraph, LaTeX creates fully justified paragraphs. When it finds a blank line, LaTeX starts a new paragraph. - -LaTeX needs a few control statements to define the document. Every LaTeX document should start with a declaration of the document's *class*. LaTeX supports several kinds of documents, including letters, books, and articles. For this example, I used `\documentclass{article}` to set the *article* class. - -Tell LaTeX where the text begins and ends with the `\begin{document}` and `\end{document}` statements. If you add text before the `\begin{document}`, LaTeX generates an error. Any text after `\end{document}` is ignored. - -Process this document using LaTeX with the `latex` command: - -``` -$ latex about.tex -This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=latex) - restricted \write18 enabled. -entering extended mode -(./about.tex -LaTeX2e <2020-10-01> patch level 4 -(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls -Document Class: article 2020/04/10 v1.4m Standard LaTeX document class -(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) -(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-dvips.def) -No file about.aux. -[1] (./about.aux) ) -Output written on about.dvi (1 page, 736 bytes). -Transcript written on about.log. -``` - -LaTeX produces a lot of text so you can see what it is doing. If your document contains errors, LaTeX prints a message, and possibly prompt for what it should do. In most cases, you can type `exit` at the prompt to force LaTeX to quit. - -If LaTeX was successful in generating a document, it produces a file with a `.dvi` extension. The *DVI* stands for *Device Independent* because you can use a variety of tools to create other kinds of output. For example, the **dvipdf** program converts the DVI file to a PDF file. - -``` -$ dvipdf about.dvi -``` - -![LaTeX output][5] - -### Adding lists - -LaTeX supports two kinds of lists: an *enumerated* list where each item starts with a number, and an *itemized* or "bullet" list. Add a short enumerated list after the second paragraph to list the ways that folks can get involved with Opensource.com: - -``` -\begin{enumerate} -\item Be a writer -\item Be a reader -\end{enumerate} -``` - -Similar to how you need to provide `\begin` and `\end` statements around a document definition, you also need to provide `\begin` and `\end` statements around a list. Within the list, start each new item with an `\item` command. When you process this new file with LaTeX and convert it to PDF format, you see your list formatted as a numbered list: - -![LaTeX output][6] - -You can also add lists within a list. This is a neat feature if you need to provide a list with several options for each item. For example, you can add a few different resources for folks who want to become writers at Opensource.com. The embedded list uses its own `\begin` and `\end` statements. I'll add some extra space around this example so it's easier to see, but LaTeX doesn't really care about the blank lines and extra spaces: - -``` -\begin{enumerate} -\item Be a writer - -  \begin{itemize} -  \item Resources for writers -  \item Contributor Club -  \item Correspondent Program -  \end{itemize} - -\item Be a reader -\end{enumerate} -``` - -The new list is inserted as an embedded list inside item number 1 because you added the list between the two original `\item` statements. You could have instead inserted this list after item number 2 by adding the new list before the `\end{enumerate}` statement. - -![LaTeX output][7] - -### Sections and subsections - -You can make a long document easier to read by breaking it up into sections. To add a section title to a LaTeX document, use the `\section{...}` statement, and write the section's title inside the braces. For example, you can add a new section titled "About Opensource.com" to the top of the document with this: - -``` -$ head about.tex -\documentclass{article} -\begin{document} - -\section{About Opensource.com} - -Opensource.com is a premier, daily publication focused on -open source and Linux tutorials, stories, and resources. - -We're a diverse and inviting group, made up of staff -editors, Correspondents, contributors, and readers. We -``` - -The *article* document class adds a number before each major section, and increases the font size so it stands out in the document. - -![LaTeX output][8] - -For documents that require more organization, you can add subsections using the `\subsection{...}` command. Like the `\section{...}` command, enter the subsection's title between the curly braces. - -``` -$ head about.tex -\documentclass{article} -\begin{document} - -\section{About Opensource.com} - -Opensource.com is a premier, daily publication focused on -open source and Linux tutorials, stories, and resources. - -\subsection{Welcome to the Opensource.com community} -``` - -![LaTeX output][9] - -### Title and author - -Scientific articles meant for publication require a title, author, and publication date. LaTeX provides a method to add this information by inserting commands that define each, then generates the article's title with a separate `\maketitle` command. - -Add "About Us" as the article's title, "Opensource.com Editors" for the author, and "July 10, 2022" as the publication date. You must enter this block after the `\begin{document}` and before the rest of the content, such as the first section: - -``` -\title{About Us} -\author{Opensource.com Editors} -\date{July 10, 2022} -\maketitle -``` - -When you process the document, LaTeX adds the title, author, and date to the top of the artcle: - -![LaTeX output][10] - -### Adding emphasis - -Scientific and other technical documents often include terms and phrases that need to carry special emphasis. LaTeX provides several font effects you can use in technical documents, including emphasis text (usually displayed in italics), bold text, and small caps. - -Update your LaTeX document to put the phrase "staff editors, Correspondents, contributors, and readers" in italics text, and the specific words "reader" and "writer" later in the paragraph in emphasis text. You can also put the phrase "skills, talents, backgrounds, and experiences" in bold. And while it's not the correct way to style it, you can use small caps to type "Linux." - -``` -$ head -20 about.tex -\documentclass{article} -\begin{document} - -\title{About Us} -\author{Opensource.com Editors} -\date{July 10, 2022} -\maketitle - -\section{About Opensource.com} - -Opensource.com is a premier, daily publication focused on -open source and \textsc{Linux} tutorials, stories, and resources. - -\subsection{Welcome to the Opensource.com community} - -We're a diverse and inviting group, made up of \textit{staff -editors, Correspondents, contributors, and readers}. We -value differences in \textbf{skills, talents, backgrounds, and -experiences}. There are a few different ways to get involved -as a \emph{reader} or a \emph{writer}. -``` - -This sample shows different ways to apply different styles to text. When you need to add emphasis, use the `\emph{...}` command, with the word or phrase between the curly braces. To display text in italics, boldface, or small caps, use a variation of the `\text` command: `\textit{...}` for italics, `\textbf{...}` for boldface, and `\textsc{...}` for small caps. LaTeX supports lots of other ways to style text, but these styles get you pretty far in writing scientific documents. - -![LaTeX output][11] - -### Using LaTeX - -I've only touched on a few ways to write scientific and technical documents in LaTeX. Depending on your needs, you can also use LaTeX to insert footnotes and typeset mathematical equations and expressions. To explore other ways to use LaTeX for scientific writing, also read [A introduction to creating documents in LaTeX][12] here on Opensource.com. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/pdf-latex - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png -[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://opensource.com/about -[5]: https://opensource.com/sites/default/files/2022-08/latex-output.jpg -[6]: https://opensource.com/sites/default/files/2022-08/latex-output-list.jpg -[7]: https://opensource.com/sites/default/files/2022-08/latex-output-list-2.jpg -[8]: https://opensource.com/sites/default/files/2022-08/latex-output-heading.jpg -[9]: https://opensource.com/sites/default/files/2022-08/latex-output-subheading.jpg -[10]: https://opensource.com/sites/default/files/2022-08/latex-output-about.jpg -[11]: https://opensource.com/sites/default/files/2022-08/latex-output-emphasis.jpg -[12]: https://opensource.com/article/17/6/introduction-latex diff --git a/translated/tech/20220810 Create beautiful PDFs in LaTeX.md b/translated/tech/20220810 Create beautiful PDFs in LaTeX.md new file mode 100644 index 0000000000..6d1e04bcaa --- /dev/null +++ b/translated/tech/20220810 Create beautiful PDFs in LaTeX.md @@ -0,0 +1,231 @@ +[#]: subject: "Create beautiful PDFs in LaTeX" +[#]: via: "https://opensource.com/article/22/8/pdf-latex" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +使用 LaTeX 创建优美的 PDF 文件 +====== + +使用 LaTeX 标记语言编写文件。 + +LaTeX 文件准备系统有一段有趣的历史。在 1968 年,程序员 Don Knuth 用一种老式印刷排版方式,撰写了他的第一本书《计算机程序设计艺术》。当他在 1976 年出版第二版书时,出版商已经转向现代照相排版技术。 + +Knuth 对新版本的外观不满意。他从程序员的角度解决问题,决定创建他自己的文字处理系统,这样以后他出版的书就可以以相同格式排版,拥有相同的外观。因此,Don Knuth 在 1978 年编写了第一版 TeX 。 + +几年后, Leslie Lamport 创建了一组宏定义,以便作者更容易编写复杂文档。Lamport 的宏定义扩展 LaTeX ,有效地扩展了 TeX 能够轻松创建各种文档。例如,许多学术组织使用 LaTeX 出版期刊和论文集。 + +### 使用 LaTeX 编写文档 + +通过写一些短文就可以很容易掌握 LaTeX 基础。让我们从 [Opensource.com][4] 介绍界面,根据该界面创建一个示例: + +``` +$ cat about.tex +\documentclass{article} +\begin{document} + +Opensource.com is a premier, daily publication focused on +open source and Linux tutorials, stories, and resources. + +We're a diverse and inviting group, made up of staff +editors, Correspondents, contributors, and readers. We +value differences in skills, talents, backgrounds, and +experiences. There are a few different ways to get involved +as a reader or a writer. + +\end{document} +``` + +类似其他文档格式程序, LaTeX 收集关键词并填充段落 。这意味着你可以在段落中间添加新文本,而不用担心最终文档会成什么样。只要你不在段落中添加空行, LaTeX 就会创建完全对齐的段落。当它找到一个空行时, LaTeX 会开启一个新段落。 + +LaTeX 需要一些定义文档的控制语句。任何 LaTeX 文档应当以文档 `类别` 声明开始。LaTeX 支持多种文档,包括书信、书籍和文章。例如,我使用 `\documentclass{article}` 设置类别为 `文章` 。 + +使用 `\begin{document}` 和 `\end{document}` 声明来定义文本的开始和结束。如果你在 `\begin{document}` 前添加了文本,那么 LaTeX 会报错。在 `\end{document}` 之后的文本都会被忽略。 + +使用 `latex` 命令使用 LaTeX 处理文档: + +``` +$ latex about.tex +This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=latex) + restricted \write18 enabled. +entering extended mode +(./about.tex +LaTeX2e <2020-10-01> patch level 4 +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2020/04/10 v1.4m Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-dvips.def) +No file about.aux. +[1] (./about.aux) ) +Output written on about.dvi (1 page, 736 bytes). +Transcript written on about.log. +``` + +LaTeX 生成许多文本,这样你就可以知道它在干什么。若你的文档包含错误, LaTeX 会报错并提示它可以做什么。大多数情况下,你可以在提示后输入 `exit` 来强制退出 LaTeX 。 + +如果用 LaTeX 成功生成一个文档,会生成一个带 `.dvi` 后缀的文件。`DVI` 表示 `设备无关` (Device Independent),因为你可以使用不同的工具来生成其他格式。例如, **dvipdf** 程序将 DVI 文件转换为 PDF 文件。 + +``` +$ dvipdf about.dvi +``` + +![LaTeX output][5] + +### 添加列表 + +LaTeX 支持两种列表:一种以数字开头的 `枚举` 列表,一种 `逐项` 或“项目符号”列表。在第二段后添加一个简短的枚举列表,列出人们可以参与 Opensource.com 的方式: + +``` +\begin{enumerate} +\item Be a writer +\item Be a reader +\end{enumerate} +``` + +与在文档定义中添加 `\begin` 和 `\end` 声明类似,你也需要在列表前后添加 `\begin` 和 `\end` 声明。在列表中,每个项目以 `\item` 命令开始。当你用 LaTeX 处理该文档并转换为 PDF 格式后,你会看到该列表为数字列表: + +![LaTeX output][6] + +你也可以在列表中嵌套列表。这是一个优雅的功能,如果你需要在列表中为每个条目添加选项。例如,你可以为想要在 Opensource.com 中成为作者的人们提供一些不同的资源。嵌入列表使用单独的 `\begin` 和 `\end` 声明。为了看起来方便,我在示例中添加了空行,但是 LaTeX 会忽略这些空行: + +``` +\begin{enumerate} +\item Be a writer + +  \begin{itemize} +  \item Resources for writers +  \item Contributor Club +  \item Correspondent Program +  \end{itemize} + +\item Be a reader +\end{enumerate} +``` + +作为嵌套列表,新列表嵌入在编号 1 的项目中,因为你在原先的 `\item` 声明之间添加了列表。你可以通过在 `\end{enumerate}` 语句前添加新列表,作为编号 2 项目的嵌套列表。 + +![LaTeX output][7] + +### 章节和小节 + +你可以将冗长文章分成多个章节,这样更易于阅读。使用 `\section{...}` 语句在大括号内添加章节标题。例如,你可以在文档顶部添加一个标题为 "关于 Opensourcecom" 的新章节: + +``` +$ head about.tex +\documentclass{article} +\begin{document} + +\section{About Opensource.com} + +Opensource.com is a premier, daily publication focused on +open source and Linux tutorials, stories, and resources. + +We're a diverse and inviting group, made up of staff +editors, Correspondents, contributors, and readers. We +``` + +使用 `article` 文档类在关键部分添加数字,并使字体变大来突出显示。 + +![LaTeX output][8] + +你可以使用 `\subsection{...}` 命令,来组织文档。就像 `\section{...}` 命令一样,在大括号中输入副标题名称。 + +``` +$ head about.tex +\documentclass{article} +\begin{document} + +\section{About Opensource.com} + +Opensource.com is a premier, daily publication focused on +open source and Linux tutorials, stories, and resources. + +\subsection{Welcome to the Opensource.com community} +``` + +![LaTeX output][9] + +### 标题和作者 + +科学类的文章需要标题、作者以及发表日期。LaTeX 提供了通过插入命令的方式来添加这些信息,然后使用单独的 `\maketitle` 命令生成文章的标题。 + +将 "About Us" 作为文章标题,作者为 "Opensource.com Editors" ,发表日期为 "July 10, 2022" 。你必须在 `\begin{document}` 之后,文章内容前插入这些内容。 + +``` +\title{About Us} +\author{Opensource.com Editors} +\date{July 10, 2022} +\maketitle +``` + +当你在生成文档时,LaTeX 会将标题、作者和日期添加到文章的顶部: + +![LaTeX output][10] + +### 着重强调 + +科学和其他技术类文章通常会突出术语和短语。 LaTeX 提供了几种可以在技术文档中使用的字体效果,包括强调文本(通常以斜体显示)、粗体文本和小型大写字母。 + +将短语“员工编辑、通讯员、贡献者和读者”放在斜体文本中,并将特定词“读者”和“作者”放在段落后面的强调文本中。你也可以将“技能、​​才能、背景和经验”加粗。虽然这不是正确的样式设置方式,但你可以使用小型大写字母来键入 "Linux" 。 + +``` +$ head -20 about.tex +\documentclass{article} +\begin{document} + +\title{About Us} +\author{Opensource.com Editors} +\date{July 10, 2022} +\maketitle + +\section{About Opensource.com} + +Opensource.com is a premier, daily publication focused on +open source and \textsc{Linux} tutorials, stories, and resources. + +\subsection{Welcome to the Opensource.com community} + +We're a diverse and inviting group, made up of \textit{staff +editors, Correspondents, contributors, and readers}. We +value differences in \textbf{skills, talents, backgrounds, and +experiences}. There are a few different ways to get involved +as a \emph{reader} or a \emph{writer}. +``` + +该示例展示了不同样式的文本的应用方法。当你需要强调时,使用 `\emph{...}` 命令,将强调主题放在大括号内。要以斜体、粗体或小型大写字母显示文本,使用 `\text` 命令的变体:`\textit{...}` 用于斜体,`\textbf{...}` 用于粗体,以及 `\ textsc{...}` 用于小型大写字母。LaTeX 支持许多其他方式来设置文本样式,这些样式有助于你编写科学技术类文章。 + +![LaTeX output][11] + +### 使用 LaTeX + +我只是介绍了使用 LaTeX 撰写科学技术文章的几种方式。你也可以在 LaTeX 中添加脚注,进行数学公式和方程的排版,取决于你的需求。你也可以通过阅读 Opensource.com 中的文章 [《在 LaTeX 中创建文档的介绍》][12] ,了解使用 LaTeX 撰写科学技术文章的其他方式。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/pdf-latex + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png +[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://opensource.com/about +[5]: https://opensource.com/sites/default/files/2022-08/latex-output.jpg +[6]: https://opensource.com/sites/default/files/2022-08/latex-output-list.jpg +[7]: https://opensource.com/sites/default/files/2022-08/latex-output-list-2.jpg +[8]: https://opensource.com/sites/default/files/2022-08/latex-output-heading.jpg +[9]: https://opensource.com/sites/default/files/2022-08/latex-output-subheading.jpg +[10]: https://opensource.com/sites/default/files/2022-08/latex-output-about.jpg +[11]: https://opensource.com/sites/default/files/2022-08/latex-output-emphasis.jpg +[12]: https://opensource.com/article/17/6/introduction-latex From 3ce5d28f0fe8c53e472fbd763e57dfa868618782 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 19 Aug 2022 08:25:19 +0800 Subject: [PATCH 0800/3123] translated --- ...Real Time in Linux [Desktop and Server].md | 126 ----------------- ...Real Time in Linux [Desktop and Server].md | 128 ++++++++++++++++++ 2 files changed, 128 insertions(+), 126 deletions(-) delete mode 100644 sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md create mode 100644 translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md diff --git a/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md deleted file mode 100644 index 3451a2c7e8..0000000000 --- a/sources/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md +++ /dev/null @@ -1,126 +0,0 @@ -[#]: subject: "How to Monitor Log Files in Real Time in Linux [Desktop and Server]" -[#]: via: "https://www.debugpoint.com/monitor-log-files-real-time/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Monitor Log Files in Real Time in Linux [Desktop and Server] -====== -This tutorial explains how you can monitor Linux log files (desktop, server or applications) in real-time for diagnosis and troubleshooting purposes. - -When you run into problems in your Linux desktop, server or any application, you first look into the separate log files. The log files are generally a text stream and messages from applications with a timestamp. It helps you to narrow down specific instances and enables you to find the cause of any problem. It can also help to get assistance from the web as well. - -In general, all log files are located in `/var/log`. This directory contains log files with extensions `.log` for specific applications and services, and it also contains separate other directories which contain their log files. - -![log files in var-log][1] - -So, if you want to monitor a bunch of log files Or a specific one, here are some ways you can do it. - -### Monitor Log Files in real-time – Linux - -#### Using tail command - -The `tail` command is the most basic way of following a log file in real time. Especially if you are in a server with only a terminal and no GUI. This is very helpful. - -Examples: - -**Basic Syntax** - -``` -tail /path/to/log/file -``` - -**Usage** - -![Monitoring multiple log files via tail][2] - -Use the switch `-f` to follow the log file, which updates in real-time. For example, if you want to follow syslog, you can use the following command. - -``` -tail -f /var/log/syslog -``` - -You can monitor multiple log files using a single command using – - -``` -tail -f /var/log/syslog /var/log/dmesg -``` - -If you want to monitor HTTP or sftp or any server, you can use their respective log files in this command. - -Remember, the above commands require admin privileges. - -#### Using lnav (The Logfile Navigator) - -![lnav Running][3] - -The lnav is an excellent utility which you can use to monitor log files in a more structured way with colour-coded messages. This is not installed by default in Linux systems. You can install it using the below command: - -``` -sudo apt install lnav (Ubuntu)sudo dnf install lnav (Fedora) -``` - -The good thing about lnav is that if you do not want to install it, you can download its pre-compiled executable and run it anywhere, even from a USB stick. No setup is required, plus loaded with features. Using lnav you can query the log files via SQL, among other cool features you can learn on its [official website][4]. - -Once installed, you can run lnav from a terminal with admin privilege, and it will show all the logs from `/var/log` by default and start monitoring in real-time. - -#### A note about journalctl of systemd - -All modern Linux distributions today use systemd, mostly. The systemd provides a basic framework and components which runs Linux operating system in general. The systemd provides journal services via journalctl, which helps to manage logs from all systemd services. You can also monitor respective systemd services and logs in real-time using the following command. - -``` -journalctl -f -``` - -Here are some specific journalctl commands you can use for several cases. You can combine these with the -f switch above to start monitoring in real-time. - -* For emergency system messages, use: - -``` -journalctl -p 0 -``` - -* Show errors with explanations: - -``` -journalctl -xb -p 3 -``` - -* Use time controls to filter out: - -``` -journalctl --since "2022-12-04 06:00:00" -journalctl --since "2022-12-03" --until "2022-12-05 03:00:00" -journalctl --since yesterday -journalctl --since 09:00 --until "1 hour ago" -``` - -If you want to learn more about and find out details about journalctl – I have written a [guide here][5]. - -### Closing Notes - -I hope these commands and tricks help you find the root cause of your problem/errors in your desktop or servers. For more details, you can always refer to the man pages and play around with various switches. Let me know if you have any comments or thoughts about this article using the comment box below. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/monitor-log-files-real-time/ - -作者:[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/2021/08/log-files-in-var-log-1024x312.jpeg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/08/Monitoring-multiple-log-files-via-tail.jpeg -[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/lnav-Running.jpeg -[4]: https://lnav.org/features -[5]: https://www.debugpoint.com/2020/12/systemd-journalctl/ diff --git a/translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md new file mode 100644 index 0000000000..72ab06cb98 --- /dev/null +++ b/translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md @@ -0,0 +1,128 @@ +[#]: subject: "How to Monitor Log Files in Real Time in Linux [Desktop and Server]" +[#]: via: "https://www.debugpoint.com/monitor-log-files-real-time/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中实时监控日志文件(桌面和服务器) +====== +本教程介绍了如何实时监控 Linux 日志文件(桌面、服务器或应用)以进行诊断和故障排除。 + +当你在 Linux 桌面、服务器或任何应用中遇到问题时,你首先查看单独的日志文件。日志文件通常是文本流和来自应用的带有时间戳的消息。它可以帮助你缩小特定实例的范围,并使你能够找到问题的原因。它还可以帮助从网络获得帮助。 + +一般来说,所有的日志文件都位于 `/var/log`。此目录包含特定应用和服务的扩展名为 `.log` 的日志文件,它还包含了其他含有日志的独立目录。 + +![log files in var-log][1] + +所以,如果你想监控一堆日志文件或特定的一个,这里有一些方法可以做到。 + +### Linux 实时监控日志文件 + +#### 使用 tail 命令 + +`tail` 命令是实时跟踪日志文件的最基本方式。特别是如果你在只有终端而没有 GUI 的服务器中。这很有帮助。 + +例子: + +**基本语法** + +``` +tail /path/to/log/file +``` + +**用法** + +![Monitoring multiple log files via tail][2] + +使用开关 `-f` 跟踪实时更新的日志文件。例如,如果要关注 syslog,可以使用以下命令。 + +``` +tail -f /var/log/syslog +``` + +你可以使用单个命令监控多个日志文件 + +``` +tail -f /var/log/syslog /var/log/dmesg +``` + +如果要监视 HTTP 或 sftp 或任何服务器,可以在此命令中使用它们各自的日志文件。 + +请记住,上述命令需要管理员权限。 + +#### 使用 lnav(日志文件浏览器) + +![lnav Running][3] + +lnav 是一个出色的程序,你可以用它来用彩色编码的信息以更有条理的方式监控日志文件。在 Linux 系统中,这个工具不是默认安装的。你可以用下面的命令来安装它: + +``` +sudo apt install lnav (Ubuntu) +sudo dnf install lnav (Fedora) +``` + +lnav 的好处在于,如果你不想安装它,你可以下载其预编译的可执行文件并在任何地方运行它,甚至可以从 U 盘上运行。无需设置,并加载了功能。使用 lnav,你可以通过 SQL 查询日志文件,以及其他很酷的功能,你可以在其[官方网站][4]上学习。 + + +安装后,你可以在具有管理员权限的终端上运行 lnav,它会默认显示 `/var/log` 中的所有日志并开始实时监控。 + +#### 关于 systemd 的 journalctl 的一个说明 + +当今所有现代 Linux 发行版都主要使用 systemd。 systemd 提供了运行 Linux 操作系统的基本框架和组件。 systemd 通过 journalctl 提供日志服务,这有助于管理来自所有 systemd 服务的日志。你还可以使用以下命令实时监控各个 systemd 服务和日志。 + +``` +journalctl -f +``` + +以下是一些特定的 journalctl 命令,可用于多种情况。你可以将这些与上面的 -f 选项结合使用以开始实时监控。 + +* 对于紧急系统消息,请使用: + +``` +journalctl -p 0 +``` + +* 显示带有解释的错误: + +``` +journalctl -xb -p 3 +``` + +* 使用时间控制过滤: + +``` +journalctl --since "2022-12-04 06:00:00" +journalctl --since "2022-12-03" --until "2022-12-05 03:00:00" +journalctl --since yesterday +journalctl --since 09:00 --until "1 hour ago" +``` + +如果你想了解更多关于 journalctl 的详细信息,我已经在这写了份[指南][5]。 + +### 结束语 + +我希望这些命令和技巧可以帮助你找到桌面或服务器中问题/错误的根本原因。有关更多详细信息,你可以随时参考手册页并使用各种选项。如果你对本文有任何意见或想法,请使用下面的评论栏告诉我。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/monitor-log-files-real-time/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/08/log-files-in-var-log-1024x312.jpeg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/08/Monitoring-multiple-log-files-via-tail.jpeg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/lnav-Running.jpeg +[4]: https://lnav.org/features +[5]: https://www.debugpoint.com/2020/12/systemd-journalctl/ From bd3bc4e35d39f55782cd65c4a831518dbaa94a87 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 19 Aug 2022 08:38:09 +0800 Subject: [PATCH 0801/3123] translating --- sources/tech/20220816 A look inside an EPUB file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220816 A look inside an EPUB file.md b/sources/tech/20220816 A look inside an EPUB file.md index 3b836837d0..4334347b73 100644 --- a/sources/tech/20220816 A look inside an EPUB file.md +++ b/sources/tech/20220816 A look inside an EPUB file.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/epub-file" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 9640166df441aa50d4c888a238c7da7b73a06ccd Mon Sep 17 00:00:00 2001 From: zhaoxu_Lee <67046056+lzx916@users.noreply.github.com> Date: Fri, 19 Aug 2022 10:37:49 +0800 Subject: [PATCH 0802/3123] Update 20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译格式修改 --- ...vent Supply Chain Attacks On Open Source.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md index f62fc9e258..e10f3ee4e4 100644 --- a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -7,21 +7,21 @@ [#]: publisher: " " [#]: url: " " -为防止对开源供应链的攻击,Github在行动 +为防止对开源供应链的攻击,Github 在行动 ====== -在2020年“SolarWinds”网络间谍活动之后,一系列进一步的软件供应链漏洞突显了确保软件监管链安全的必要性。在这场间谍活动中,俄罗斯黑客渗透到一个广泛使用的IT管理平台,并将受污染的升级产品悄悄带入其中。由于开源项目从根本上来说是分散的,而且经常是临时的活动,因此在这种背景下,这个问题尤其紧迫。GitHub著名的“npm”注册表中广泛使用的JavaScript软件包遭到一系列令人不安的黑客攻击后,该公司本周公布了一项战略,以提供更好的开源安全保护。 +在 2020 年「SolarWinds」网络间谍活动之后,一系列进一步的软件供应链漏洞突显了确保软件监管链安全的必要性。在这场间谍活动中,俄罗斯黑客渗透到一个广泛使用的IT管理平台,并将受污染的升级产品悄悄带入其中。由于开源项目从根本上来说是分散的,而且经常是临时的活动,因此在这种背景下,这个问题尤其紧迫。GitHub 著名的 npm 注册表中广泛使用的 JavaScript 软件包遭到一系列令人不安的黑客攻击后,该公司本周公布了一项战略,以提供更好的开源安全保护。 -代码签名平台Sigstore将由微软旗下的GitHub支持,以用于npm软件包。代码签名类似于数字蜡封。为了让开源维护者更加容易地确认他们编写的代码是否与全球范围内人们实际下载的软件包中最终包含的代码相同,跨行业协作促成了该工具的创建。 +代码签名平台 Sigstore 将由微软旗下的 GitHub 支持,以用于 npm 软件包。代码签名类似于数字蜡封。为了让开源维护者更加容易地确认他们编写的代码是否与全球范围内人们实际下载的软件包中最终包含的代码相同,跨行业协作促成了该工具的创建。 -GitHub并不是开源生态系统的唯一组成部分,但Sigstore的联合开发者、Chainguard的首席执行官Dan Lorenc指出,它是社区的一个重要枢纽,因为绝大多数项目都在这里存储和共享源代码。然而,当开发人员真正想下载开源软件或工具时,他们通常会访问包管理。 +GitHub 并不是开源生态系统的唯一组成部分,但 Sigstore 的联合开发者、Chainguard 的首席执行官 Dan Lorenc 指出,它是社区的一个重要枢纽,因为绝大多数项目都在这里存储和共享源代码。然而,当开发人员真正想下载开源软件或工具时,他们通常会访问包管理。 -通过让包管理器可以使用Sigstore,开发人员可以在Sigstore工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc说,许多人惊讶地发现,这些完整性检查还没有实施,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于2021年5月发布了一项行政命令,主要处理软件供应链安全问题。 +通过让包管理器可以使用 Sigstore,开发人员可以在 Sigstore 工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc 说,许多人惊讶地发现,这些完整性检查还没有实施,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于 2021 年 5 月发布了一项行政命令,主要处理软件供应链安全问题。 -Linux基金会、Google、Red Hat、Purdue University和Chainguard都对Sigstore的开发做出了贡献。现在有了使用Sigstore为Python包发行版签名的官方软件,而且开发软件的开源环境Kubernetes现在也支持它。 +Linux 基金会、Google、Red Hat、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境 Kubernetes 现在也支持它。 -Sigstore依靠免费和简单易用来鼓励采用,就像主要行业推动HTTPS网络加密一样,这在很大程度上是由非营利互联网安全研究集团(Internet Security Research Group)的Let’s Encrypt等工具实现的。据Github称,该项目会首先提出Sigstore将如何在npm中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而实现对供应链的攻击。 +Sigstore 依靠免费和简单易用来鼓励采用,就像主要行业推动 HTTPS 网络加密一样,这在很大程度上是由非营利互联网安全研究集团(Internet Security Research Group)的 Let’s Encrypt 等工具实现的。据 Github 称,该项目会首先提出 Sigstore 将如何在 npm 中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而实现对供应链的攻击。 -GitHub的Hutchings说:“我们希望看到这样一个世界,最终所有的软件工件都被签名并链接回源代码,这就是为什么构建像Sigstore这样的开放技术栈是如此重要,其他打包存储库也可以采用这种技术。” +GitHub 的 Hutchings 说「我们希望看到这样一个世界,最终所有的软件工件都被签名并链接回源代码,这就是为什么构建像 Sigstore 这样的开放技术栈是如此重要,其他打包存储库也可以采用这种技术。」 -------------------------------------------------------------------------------- @@ -29,7 +29,7 @@ via: https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-suppl 作者:[Laveesh Kocher][a] 选题:[lkxed][b] -译者:[lzx916](https://github.com/译者ID) +译者:[lzx916](https://github.com/lzx916) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c6322093cd30da4069a345142fa5ad8a255853f5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 19 Aug 2022 11:04:49 +0800 Subject: [PATCH 0803/3123] R PART 4 --- ...Using Binary Space Partitioning in Doom.md | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index 8235192a40..d9c7dfd8c9 100644 --- a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -7,7 +7,7 @@ [#]: publisher: " " [#]: url: " " -在《毁灭战士》中应用二叉空间分割技术是何等天才之举? +在《毁灭战士》中应用二叉空间分割(BSP)是何等天才之举? ====== 1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 《毁灭战士DOOM》,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 @@ -100,30 +100,24 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 别忘了,卡马克首次为 《毁灭战士》 设计渲染器时,通过让渲染器渲染玩家所在房间之外的临近房间,试图为关卡几何图形建立一套渲染顺序。对此,BSP 树是个不错的选择,因为在玩家进入之前的房间(区域)时,BSP 树能够避免让渲染器重复劳动,从而节省 CPU 资源。 -实际上,“将 BSP 树引入 《毁灭战士》”意味着将 BSP 树生成器引入 《毁灭战士》 的关卡编辑器中。《毁灭战士》 的关卡制作完成之时,BSP 树就会在关卡几何图形的基础上生成。根据程序员法比安·桑格勒德的说法,在原版 《毁灭战士》 中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [5][10]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出“高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是在线下等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 +实际上,“将 BSP 树引入 《毁灭战士》”意味着将 BSP 树生成器引入 《毁灭战士》 的关卡编辑器中。当完成一个《毁灭战士》 的关卡的制作时,BSP 树就会在关卡几何图形的基础上生成。根据程序员法比安·桑格勒德Fabien Sanglard的说法,在原版 《毁灭战士》 中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [^5]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出“高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是离线等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。为每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 -卡马克非常赞赏 1980 年论文中提出的 BSP 树算法,因为在 《毁灭战士》 开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯、凯德姆以及内勒在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于与 IBM 机器兼容的个人电脑来说负担较大。因此,_毁灭战士_ 的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。采用这种相反的顺序,更有利于 BSP 树的应用,因为在树的每个节点都可以进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》 的渲染器使用了一种内置的 Z 缓冲器,这种缓冲器不仅具备普通 Z 缓冲器的优势,而且对内存的要求也较低。Z 缓冲器有两组数组,一组记录水平方向的遮挡关系,另一组自屏幕由上及下记录垂直方向的遮挡关系。《毁灭战士》 的渲染器就算不使用真正的 Z 缓冲器也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于 《毁灭战士》 不会发生以下问题:水平方向的遮挡数组能够运行,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够运行,是因为该游戏不存在有着一上一下两扇窗户的墙体。 +卡马克对 1980 年论文中提出的 BSP 树算法进行了改造,因为在 《毁灭战士》 开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯、凯德姆以及内勒在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于 IBM 兼容的个人电脑来说负担较大。因此,《毁灭战士》 的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。这种反向排序很容易通过 BSP 树来实现,因为你可以在树的每个节点都进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》 的渲染器使用了一种隐式 Z 缓冲区,这种缓冲区不仅具备普通 Z 缓冲区的优势,而且对内存的要求也较低。Z 缓冲区有两组数组,一组记录水平方向的遮挡关系,另两组记录自屏幕顶部和底部的垂直方向的遮挡关系。《毁灭战士》 的渲染器就算不使用实际的 Z 缓冲区也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于 《毁灭战士》 不会发生以下问题:水平方向的遮挡数组能够运行,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够运行,是因为该游戏不存在有着一上一下两扇窗户的墙体。 剩下比较棘手的问题是如何将 《毁灭战士》 中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度问题并没有那么重要。 将 BSP 树应用到 《毁灭战士》 中可谓一大成功。卡马克能够想到 BSP 树是解决 VSD 问题的最佳方案,无疑非常高明。但是这可以称得上是天才之举吗? -桑格勒德在其关于 《毁灭战士》 游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[6][11] 根据罗梅洛所言,卡马克认为这种算法对 《毁灭战士》 依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味——意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在 _《Doom 启示录》_ 也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [7][12]。 +桑格勒德在其关于 《毁灭战士》 游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[^6] 根据罗梅洛所言,卡马克认为这种算法对 《毁灭战士》 依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味 —— 意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在 《Doom 启示录》 也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [^7]。 -这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时想要开发出飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:重复将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此介绍了他们的研究动机。 +这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时在试图创建一个飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:飞行员用它来反复练习将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此激励了他们的研究。 -因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象中的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年陈和戈登的一篇论文以及 1990 年的一本教材 _《计算机图形学:原理及实践》_。尽管该页面并未提供引用信息,但是基本上不会出错。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与 《毁灭战士》 用到的方法基本一致,还包括我称之为“内置缓冲器”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。_《计算机图形学:原理及实践》_ 详细介绍了 BSP 树以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材的 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 +因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象中的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年Chen戈登Gordon的一篇论文以及 1990 年的一本教材 《计算机图形学:原理及实践》。尽管该页面并未提供引用信息,但它可能是真的。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与 《毁灭战士》 用到的方法基本一致,还包括我称之为“隐式 Z 缓冲区”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。《计算机图形学:原理及实践》 详细介绍了 BSP 树以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材的 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 -然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个 《毁灭战士》 的游戏引擎,毕竟它的确非常精致。我在前文也提及过,但是桑格勒德的 _《游戏引擎黑皮书:毁灭战士》_ 很好地讲解了这款游戏引擎的非凡之处以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写 《毁灭战士》 游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 +然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时电子游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个 《毁灭战士》 的游戏引擎,它的确非常精致。我在前文也提及过,但是桑格勒德的 《游戏引擎黑皮书:毁灭战士》 很好地讲解了这款游戏引擎的非凡之处,以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写 《毁灭战士》 游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 _如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][14],也可通过 [RSS feed][15] 订阅,获取最新文章(每四周更新一篇)。_ -_TwoBitHistory 文章回顾……_ - -> 我曾想花上一段时间深入了解 GNU Readline,所以我以此为主题写了一篇新博客,包括在与 Readline 库(以及 Bash)的维护者切特·雷米通过邮件交流时了解到的一些趣事: -> -> — TwoBitHistory (@TwoBitHistory) [2019 年 8 月 22 日][16] - [^1]: Michael Abrash, “Michael Abrash’s Graphics Programming Black Book,” James Gregory, accessed November 6, 2019, .  [^2]: R. Schumacher, B. Brand, M. Gilliland, W. Sharp, “Study for Applying Computer-Generated Images to Visual Simulation,” Air Force Human Resources Laboratory, December 1969, accessed on November 6, 2019, .  [^3]: Henry Fuchs, Zvi Kedem, Bruce Naylor, “On Visible Surface Generation By A Priori Tree Structures,” ACM SIGGRAPH Computer Graphics, July 1980.  @@ -132,9 +126,6 @@ _TwoBitHistory 文章回顾……_ [^6]: Sanglard, 200.  [^7]: David Kushner, Masters of Doom (Random House Trade Paperbacks, 2004), 142.  - - - -------------------------------------------------------------------------------- via: https://twobithistory.org/2019/11/06/doom-bsp.html @@ -142,7 +133,7 @@ via: https://twobithistory.org/2019/11/06/doom-bsp.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] 译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 3c07d536b56a278ad29c09237c84dd8f409a9b49 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 19 Aug 2022 12:21:58 +0800 Subject: [PATCH 0804/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FINAL @aREversez 你看看校对是否有问题。 --- ...Using Binary Space Partitioning in Doom.md | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index d9c7dfd8c9..081d23f452 100644 --- a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -12,21 +12,21 @@ 1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 《毁灭战士DOOM》,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 -《毁灭战士》发行之后的第十年(2003 年),记者大卫·库什纳David Kushner出版了一本关于 id Software 的书,书名为 《Doom 启示录Masters of Doom》,后被奉为记录毁灭战士创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员约翰·卡马克John Carmack的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在 《毁灭战士》 开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时慢得像爬一样。对于 《毁灭战士》 这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关论文。最后,他实现了一种叫做“二叉空间分割binary space partitioning(BSP)”的技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 +《毁灭战士》发行之后的第十年(2003 年),记者 大卫·库什纳David Kushner 出版了一本关于 id Software 的书,书名为《Doom 启示录Masters of Doom》,后被奉为记录毁灭战士创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员 约翰·卡马克John Carmack 的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在《毁灭战士》开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时慢得像爬一样。对于《毁灭战士》这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关论文。最后,他实现了一种叫做“二叉空间分割binary space partitioning(BSP)”的技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 一直以来,我对这个故事的印象十分深刻。卡马克将学术前沿研究运用于电子游戏之中,我觉得这正是他之所以成为传奇人物的原因。无论从哪个角度来看,卡马克都应该是电子游戏行业中人尽皆知的典型的天才程序员,只不过上面这个故事是我最先能够想到的理由。 -显而易见,“二叉空间分割”这个术语听起来就是难度相当高的课题,能够自行阅读论文并将其付诸实施实属不易,所以这个故事给我留下了深刻的印象。我一直认为卡马克的做法十分具有创见性,不过由于我既不懂二叉空间分割到底是怎样的一项技术,也不晓得这项技术在当时究竟有多么革新,所以我也并不确定自己的观点是否正确。如果按照从霍默·辛普森Homer Simpson(LCTT 译注:《辛普森一家人》中的那个老爹)到阿尔伯特·爱因斯坦Albert Einstein的顺序为天才列出一套级别体系,那么卡马克将二叉空间分割技术运用于 《毁灭战士》 的做法究竟属于什么级别的天才之举呢? +显而易见,“二叉空间分割”这个术语听起来就是难度相当高的课题,能够自行阅读论文并将其付诸实施实属不易,所以这个故事给我留下了深刻的印象。我一直认为卡马克的做法十分具有创见性,不过由于我既不懂二叉空间分割到底是怎样的一项技术,也不晓得这项技术在当时究竟有多么革新,所以我也并不确定自己的观点是否正确。如果按照从 霍默·辛普森Homer Simpson(LCTT 译注:《辛普森一家人》中的那个老爹)到 阿尔伯特·爱因斯坦Albert Einstein 的顺序为天才列出一套级别体系,那么卡马克将二叉空间分割技术运用于《毁灭战士》的做法究竟属于什么级别的天才之举呢? -同时,我也在想,二叉空间分割这个概念最初是从哪儿来的,又是怎样吸引到卡马克的?因此,本篇文章不仅仅会讲述约翰·卡马克和 《毁灭战士》 的故事,也会探讨二叉空间分割树(BSP 树)数据结构的发展历史。有意思的是,BSP 树和计算机科学领域其他许多技术一样,最初都起源于军事研究领域。 +同时,我也在想,二叉空间分割这个概念最初是从哪儿来的,又是怎样吸引到卡马克的?因此,本篇文章不仅仅会讲述约翰·卡马克和《毁灭战士》的故事,也会探讨二叉空间分割树(BSP 树)数据结构的发展历史。有意思的是,BSP 树和计算机科学领域其他许多技术一样,最初都起源于军事研究领域。 -没错,《毁灭战士》 的第一关卡 E1M1 就受到了美国空军的启发。 +没错,《毁灭战士》的第一关卡 E1M1 就受到了美国空军的启发。 ### VSD 难题 BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举个例子,为了渲染出三维场景,渲染器必须能够区分在一个特定角度下的可见物体和不可见物体。如果渲染时间比较充足,这一要求也算不上大问题;但是就理想情况来说,实时游戏引擎在 1 秒内至少需要完成 30 次区分任务。 -这一问题有时被称为 可见面检测visible surface determination(VSD)问题。后来与卡马克合作开发《雷神之锤》(id Software 继《毁灭战士》之后开发的游戏)的程序员 迈克尔·亚伯拉什Michael Abrash,在自己的著作《图形程序开发人员指南Graphics Programming Black Book》 中写道: +这一问题有时被称为 可见面检测visible surface determination(VSD)问题。后来与卡马克合作开发《雷神之锤Quake》(id Software 继《毁灭战士》之后开发的游戏)的程序员 迈克尔·亚伯拉什Michael Abrash,在自己的著作《图形程序开发人员指南Graphics Programming Black Book》 中写道: > 我想探讨一下在我看来 3D 中最棘手的一个问题:可见面检测问题(在每个像素点上绘制合适的表面)以及与之密切相关的隐面消除问题(迅速去除不可见的多边形,用于加快可见表面检测速度)。简略起见,我将在下文采用缩写 VSD 来表示可见面检测和隐面消除。 > @@ -34,31 +34,31 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 > > 相反,VSD 却像是一个无底洞,目前应对方案也有很多。但实际上,在采用简单的方法处理 VSD 时,其性能会直接受到场景复杂程度的影响,而场景的复杂程度通常会以平方级或立方级的形式增大。所以在渲染过程中,VSD 很快就会成为制约因素。[^1] -《毁灭战士》 这款游戏告诉我们,普通人盼望着能用自家电脑玩很吃图形配置的游戏。之后数年,即上个世纪九十年代,亚伯拉什讨论了复杂的 VSD 问题。同时代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在 《毁灭战士》 之前 id Software 发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都受到了一定限制,以便更容易解决 VSD 问题。 +亚伯拉什是在上个世纪九十年代末写的关于 VSD 问题的这些困难,这是在《毁灭战士》之后数年,这款游戏证明了普通人盼望着能用自家电脑玩很吃图形配置的游戏。九十年代早期,id Software 成立后发行了一些游戏。尽管当时的计算机还只是用来处理文字与表格或者执行其他任务,未尝想过要在上面运行游戏,id Software 必须对发行的游戏进行编程,使其能在计算机上流畅运行。为了实现这一飞跃,尤其是为了能让在《毁灭战士》之前 id Software 发行的少数 3D 游戏在电脑上运行,id Software 必须做出革新。在这些游戏中,所有的关卡在设计时都受到了一定限制,以便更容易解决 VSD 问题。 -例如,在 《毁灭战士》 之前,id Software 发行了 《德军总部 3DWolfenstein 3D》,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 _《德军总部 3D》_ 编写渲染器的工作简单了不少。 +例如,在《毁灭战士》之前,id Software 发行了《德军总部 3D 版Wolfenstein 3D 版》,该游戏的每一个关卡都是由与坐标轴平齐的墙壁组成。换言之,在《德军总部 3D 版》的游戏画面里,你看到的只有南北方向或者东西方向的墙壁。在游戏中,墙壁与墙壁之间有着固定的间隔,所有过道的宽度或是一个方格,或是两个方格等等,但绝不会出现 2.5 个方格。如此一来,尽管 id Software 团队只能设计出外观十分相似的关卡,但这也让卡马克为 《德军总部 3D 版》 编写渲染器的工作简单了不少。 -通过将屏幕上的光线“齐射”入虚拟游戏世界,《德军总部 3D》 的渲染器解决了 VSD 问题。通常来说,使用光线的渲染器叫做“光线投射”渲染器。这种渲染器的速度一般较慢,因为解决内部的 VSD 问题涉及到在光线和游戏中的物体之间找到第一个交点,这通常需要进行大量的计算。但在 《德军总部 3D》,由于所有的墙壁都与网格平齐,所以光线与墙壁相交的位置只能在网格线上。如此一来,渲染器只需逐个检查这些交点即可。如果渲染器先从离玩家视角最近的交点开始检查,接着检查下一个最近的交点,以此类推,最后遇到第一面墙壁时停止检查。这样,VSD 问题便轻而易举地得到了解决。光线从每一个像素点向前投射,与画面物体接触时停止,这一方法是可行的。因为从 CPU 资源来看,投射的成本很低。事实上,由于每面墙壁高度相同,因此针对同列的像素点,投射的光线只需一条。 +通过将屏幕上的光线“齐射”入虚拟游戏世界,《德军总部 3D 版》的渲染器解决了 VSD 问题。通常来说,使用光线的渲染器叫做“光线投射”渲染器。这种渲染器的速度一般较慢,因为解决内部的 VSD 问题涉及到在光线和游戏中的物体之间找到第一个交点,这通常需要进行大量的计算。但在 《德军总部 3D 版》,由于所有的墙壁都与网格平齐,所以光线与墙壁相交的位置只能在网格线上。如此一来,渲染器只需逐个检查这些交点即可。如果渲染器先从离玩家视角最近的交点开始检查,接着检查下一个最近的交点,以此类推,最后遇到第一面墙壁时停止检查。这样,VSD 问题便轻而易举地得到了解决。光线从每一个像素点向前投射,与画面物体接触时停止,这一方法是可行的。因为从 CPU 资源来看,投射的成本很低。事实上,由于每面墙壁高度相同,因此针对同列的像素点,投射的光线只需一条。 -尽管当时还没有专业的图形显卡,《德军总部 3D》 凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于《毁灭战士》。因为 id Software 为这款新游戏增添了许多新元素——倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。《德军总部 3D》 的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 《毁灭战士》 关注的则是物体。换句话说,《毁灭战士》 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 +尽管当时还没有专业的图形显卡,《德军总部 3D 版》凭借这一取巧之法得以在配置较低的个人电脑上正常运行起来。然而,这个办法并不适用于《毁灭战士》。因为 id Software 为这款新游戏增添了许多新元素 —— 倾斜的墙面、楼梯以及高低不一的天花板。光线投射的办法自然也就不好用了,于是卡马克编写出了一个新的渲染器。《德军总部 3D 版》的渲染器关注的是图像,将光线投射到屏幕像素表示的列上,而 《毁灭战士》 关注的则是物体。换句话说,《毁灭战士》 的渲染器会记录游戏场景中的所有物体,继而将其投射到屏幕当中;而非记录屏幕上的像素点,判断每个像素点的颜色。 对于强调物体的渲染器来说,可以使用 Z 缓冲区来解决 VSD 问题,比较简单。每次将物体投射到屏幕上时,需要对每个用于绘制的像素点进行检查。如果你想绘制出的物体的部分和已经绘制在目标像素点上的物体相比更加靠近玩家,可以将其覆盖。否则,必须保持像素不变。尽管办法很简单,但是 Z 缓冲区对内存的要求较高,而且渲染器可能仍然要花费大量的 CPU 资源来投射玩家永远不会看到的水平几何体。 -在 20 世纪 90 年代,使用 Z 缓冲区的方法还存在着其他缺陷:与 IBM 公司机器兼容的个人电脑搭载的是一种叫 VGA 的显示适配器系统,在这类电脑上,将图像写入帧缓冲区的成本非常之高。因此,在绘制只会在以后被覆盖的像素上花费的时间拖慢了渲染器的性能。 +在 20 世纪 90 年代,使用 Z 缓冲区的方法还存在着其他缺陷:IBM 兼容个人电脑(PC)搭载的是一种叫 VGA 的显示适配器系统,在这类电脑上,将图像写入帧缓冲区的成本非常之高。因此,在只会以后被覆盖的像素上绘制花费的时间拖慢了渲染器的性能。 考虑到将图像写入帧缓冲区的成本非常之高,理想的渲染器需要首先绘制离玩家最近的物体,接着是比较近的物体,以此类推,直到屏幕上每个像素点都写入了信息。这时,渲染器会停止运行,大幅缩短远处不可见物体的渲染时间。这种由近及远对物体进行排序的方法也可以解决 VSD 问题。那么问题又来了:什么才是玩家可以看到的? -最初,卡马克打算依靠 《毁灭战士》 的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果以超慢的速度运行,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D》当中,这款游戏在 《毁灭战士》 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的 《毁灭战士》 渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 +最初,卡马克打算依靠《毁灭战士》的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果以超慢的速度运行,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D 版》当中,这款游戏在 《毁灭战士》 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的《毁灭战士》渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 -在 id Software 团队意识到 《毁灭战士》 游戏引擎的速度可能过慢时,公司还面临着其他任务:将 《德军总部 3D》 移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比兼容 IBM 公司机器的个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将 《德军总部》 移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于 《德军总部》 的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是 《毁灭战士》 的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决 《毁灭战士》 速度过慢的问题。 +在 id Software 团队意识到《毁灭战士》游戏引擎的速度可能过慢时,公司还面临着其他任务:将《德军总部 3D 版》移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比 IBM 兼容个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将《德军总部》移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于《德军总部 3D 版》的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是《毁灭战士》的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决《毁灭战士》速度过慢的问题。 ### 二叉空间分割 -二叉空间分割binary space partitioning(BSP)会提前将 3D 场景分割为若干部分,使 VSD 问题易于解决。讲到这里,你需要先了解一下为什么分割场景可以奏效:如果你在场景上画条线(对应 3D 空间里的一个平面),你就可以指出玩家或者摄像机视角在这条线的哪一侧,在这条线另一侧的物体无法遮挡玩家所在一侧的物体。如果多次重复这一操作,该 3D 场景最终会被分割为多个区域,这并不是对原始场景的改进,只是现在你知道了更多关于场景的不同部分如何相互阻挡。 +二叉空间分割binary space partitioning(BSP)会提前将 3D 场景分割为若干部分,使 VSD 问题易于解决。讲到这里,你需要先了解一下为什么分割场景可以奏效:如果你在场景上画条线(对应三维空间里的一个平面),你就可以指出玩家或者摄像机视角在这条线的哪一侧,在这条线另一侧的物体无法遮挡玩家所在一侧的物体。如果多次重复这一操作,该三维场景最终会被分割为多个区域,这并不是对原始场景的改进,只是现在你知道了更多关于场景的不同部分会如何相互阻挡。 -首次阐述上述 3D 场景分割的是美国空军的研究员,他们曾尝试向美国空军证明计算机图形已经非常先进,可以应用到飞行模拟器领域。1969 年,他们将研究发现发表在一份题为《计算机生成图像在图形仿真中的应用研究》的报告中。该报告的总结部分指出,计算机图形可用于训练飞行员,但也警告说,其实际应用可能会受制于 VSD 问题: +首次阐述上述三维场景分割的是美国空军的研究员,他们曾尝试向美国空军证明计算机图形已经非常先进,可以应用到飞行模拟器领域。1969 年,他们将研究发现发表在一份题为《计算机生成图像在图形仿真中的应用研究》的报告中。该报告的总结部分指出,计算机图形可用于训练飞行员,但也警告说,其实际应用可能会受制于 VSD 问题: -> 实时图像处理需要解决的一个关键问题就是优先级问题,或称隐藏线问题。在我们平时用眼睛观察外界时,大自然替我们轻易地解决了这一问题:不透明物体上的一个点,掩盖了同一视觉方向上,且距离较远的所有其它物体。但在计算机中,这项任务却非常困难。图像处理需要解决的优先级问题,随着环境复杂程度的增加,计算量会呈指数级增长,随即就会超过绘制物体透视图所需得计算负载。[^2] +> 实时图像处理需要解决的一个关键问题就是优先级问题,或称隐藏线问题。在我们平时用眼睛观察外界时,大自然替我们轻易地解决了这一问题:不透明物体上的一个点,掩盖了同一视觉方向上、且距离较远的所有其它物体。但在计算机中,这项任务却非常困难。图像处理需要解决的优先级问题,随着环境复杂程度的增加,计算量会呈指数级增长,随即就会超过绘制物体透视图所需的计算负载。[^2] 他们在报告中提出了一项基于构造“遮挡矩阵”的方案,这一方案据说早些时候曾被应用于 NASA 的项目当中。研究员指出,平面将场景一分为二,可用来解决平面两侧物体之间存在的“任何优先级问题”。通常情况下,可能需要明确将这些平面添加到场景中,但对某些几何体,只需借助你已经拥有的几何体的表面即可。他们举了一个例子,如下图:p~1~、p~2~ 以及 p~3~ 是三个不同的平面,如果摄像机视角位于其中一个平面的前方,即“正”面,p~i~ 的值就等于 1。这种矩阵展示出基于三个不同平面和摄像机视角位置的三个物体之间的关系 —— 如果物体 a~i~ 遮挡了物体 a~j~,那么 a~ij~ 在此矩阵中的数值等于 1。 @@ -66,17 +66,17 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 研究人员指出,这种矩阵可以应用到硬件中,对每一帧进行重新评估。该矩阵基本上可以用作大型的开关,或者一种预置的 Z 缓冲区。在绘制给定的物体时,如果在物体所在列上得出数值 1,并且所在行已经在绘制中,那么物体被遮挡的部分就不会绘制出来。 -不过,该矩阵方法的主要缺点在于,为了在场景中表示出 n 个物体,你需要一个尺寸为 n^2^ 的矩阵。于是,研究人员们继续深入,探究将遮挡矩阵表示为“优先级列表”的可行性,该列表的尺寸是 n,可确定物体绘制的顺序。他们随即发现,诸如上图此类场景根本无法确定顺序(因为它存在循环阻塞的现象)。因此,他们花了很多时间来阐明“合适”与“不合适”场景之间的数学区别。最后,他们得出了一个结论:至少对于“合适的”场景下,优先级列表是可以制作出来的;而对场景设计师来说,避免设计出“不合适”的场景也不是一件难事。但是,他们并没有说明如何生成该列表。可以说,这份 1969 年的研究的首要贡献在于提出了,至少,在 _理论上_,可以采用平面分割的方法,对场景中的物体进行渲染排序。 +不过,该矩阵方法的主要缺点在于,为了在场景中表示出 n 个物体,你需要一个尺寸为 n^2^ 的矩阵。于是,研究人员们继续深入,探究将遮挡矩阵表示为“优先级列表”的可行性,该列表的尺寸是 n,可确定物体绘制的顺序。他们随即发现,诸如上图此类场景根本无法确定顺序(因为它存在循环阻塞的现象)。因此,他们花了很多时间来阐明“合适”与“不合适”场景之间的数学区别。最后,他们得出了一个结论:至少对于“合适的”场景下,优先级列表是可以制作出来的;而对场景设计师来说,避免设计出“不合适”的场景也不是一件难事。但是,他们并没有说明如何生成该列表。可以说,这份 1969 年的研究的首要贡献在于提出了:至少,在 _理论上_,可以采用平面分割的方法,对场景中的物体进行渲染排序。 -直到 1980 年,一份题为《基于优先级树结构的可见表面生成》的论文提出了解决该问题的具体算法。在这份论文中,作者亨利·福克斯Henry Fuchs泽维·凯德姆Zvi Kedem以及布鲁斯·内勒Bruce Naylor介绍了 BSP 树。他们指出,这种新的数据结构“可以替代十年前首次使用,但由于一些问题未得到广泛发展的方案”(即前文 1969 年美国空军相关研究中的方案)。[^3] BSP 树一经生成,即可用于确定场景中物体的优先级顺序。 +直到 1980 年,一份题为《基于优先级树结构的可见表面生成》的论文提出了解决该问题的具体算法。在这份论文中,作者 亨利·福克斯Henry Fuchs泽维·凯德姆Zvi Kedem 以及 布鲁斯·内勒Bruce Naylor 介绍了 BSP 树。他们指出,这种新的数据结构“可以替代十年前首次使用,但由于一些问题未得到广泛发展的方案”(即前文 1969 年美国空军相关研究中的方案)。[^3] BSP 树一经生成,即可用于确定场景中物体的优先级顺序。 三人在论文中对 BSP 树的工作原理给出了相当可读的解释。但在本文,我将尝试使用更加通俗的语言,介绍给大家。 首先,在场景中选定一个多边形,将该多边形所在的平面作为分割平面。同时,该多边形充当树的根节点。场景中剩下的多边形会分散在分割平面的两侧。位于分割表面“前方”或者与分割平面相交后位于“前”半部分的多边形落在了根节点左侧的左子树上;位于分割表面“后方”或者与分割平面相交后位于“后”半部分的多边形落在了右子树上。接着,递归重复这一过程:在左子树和右子树上各选定一个多边形,作为各自空间新的分割平面,继而二分出来更多的子空间和子树。等到全部的多边形均选定之后,二叉空间分割也就结束了。 -假设你想由后向前将场景中的几何图形进行渲染。(这就是所谓的“画家算法”。因为在绘制时,距离摄像机较远的多边形会被距离摄像机较近的多边形所覆盖,借此正确进行渲染任务。)如果想要实现这一算法,必须按顺序遍历 BSP 树,左右子树的渲染顺序由摄像机视角与节点所在分割平面的位置关系决定的。因此,针对树上的每个节点,首先渲染距离分割平面较“远”一侧的所有多边形,接着是位于平面上的多边形,最后是距离平面较“近”一侧的所有多边形 —— “远”与“近”相对于摄像机视角而言。根据前文,距离分割平面较远一侧的多边形无法遮挡近侧的物体,所以这种方法可以解决 VSD 问题。 +假设你想由后向前将场景中的几何图形进行渲染。(这就是所谓的“画家算法painter's algorithm”。因为在绘制时,距离摄像机较远的多边形会被距离摄像机较近的多边形所覆盖,借此正确进行渲染任务。)如果想要实现这一算法,必须按顺序遍历 BSP 树,左右子树的渲染顺序由摄像机视角与节点所在分割平面的位置关系决定的。因此,针对树上的每个节点,首先渲染距离分割平面较“远”一侧的所有多边形,接着是位于平面上的多边形,最后是距离平面较“近”一侧的所有多边形 —— “远”与“近”相对于摄像机视角而言。根据前文,距离分割平面较远一侧的多边形无法遮挡近侧的物体,所以这种方法可以解决 VSD 问题。 -下图表示一个简单的 2D 场景的 BSP 树的构造与遍历过程。在 2D 中,分割平面变成了分割线,但就基本原理而言,与复杂的 3D 场景并无二质。 +下图表示一个简单的二维场景的 BSP 树的构造与遍历过程。在二维中,分割平面变成了分割线,但就基本原理而言,与复杂的三维场景并无二致。 ![][6] @@ -88,33 +88,33 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 ![][8] -第三步:参照右上方视角,由后向前对墙壁进行排序,对执行画家算法很有帮助。这就是树的中序遍历过程。 +第三步:参照右上方视角,由后向前对墙壁进行排序,对执行画家算法很有帮助。这就是树的顺序遍历过程。 福克斯、凯德姆以及内勒多次强调了 BSP 树的优势:它只需构建一次。可能有些难以置信,但实际上无论摄像机视角位于何处,同一棵 BSP 树都可以用来渲染一个场景。只要场景中的多边形没有移动,BSP 树就不会失效。因此,BSP 树在实时渲染任务中非常实用 —— 构建树时的所有艰巨任务都可以在渲染工作开展之前完成。 -同时,三人也提到了一项需要进一步深入研究的问题:究竟怎样才能构建出一棵“高质量的” BSP 树?BSP 树的质量取决于用作分割平面的多边形的选择。我在前文跳过了这一问题,不过如果用作分割平面的多边形与其他多边形相交,那么为了让 BSP 算法发挥作用,必须将相交的多边形一分为二,这样两部分就可以分在不同的空间。但是如果这种现象反复出现,BSP 树的构建势必会大幅增加场景中多边形的数量。 +同时,三人也提到了一项需要进一步深入研究的问题:究竟怎样才能构建出一棵 “高质量的” BSP 树?BSP 树的质量取决于用作分割平面的多边形的选择。我在前文跳过了这一问题,不过如果用作分割平面的多边形与其他多边形相交,那么为了让 BSP 算法发挥作用,必须将相交的多边形一分为二,这样两部分就可以分在不同的空间。但是如果这种现象反复出现,BSP 树的构建势必会大幅增加场景中多边形的数量。 -内勒后来在其 1993 年的论文《构建高质量的分割树》中提及这一问题。卡马克的同事,id Software 的共同创始人约翰·罗梅洛John Romero指出,这篇论文是卡马克在 《毁灭战士》 中引入 BSP 树时读到的论文之一。[^4] +内勒后来在其 1993 年的论文《构建高质量的分割树》中提及这一问题。卡马克的同事,id Software 的共同创始人 约翰·罗梅洛John Romero 指出,这篇论文是卡马克在《毁灭战士》中引入 BSP 树时读到的论文之一。[^4] ### 《毁灭战士》中的 BSP 树 -别忘了,卡马克首次为 《毁灭战士》 设计渲染器时,通过让渲染器渲染玩家所在房间之外的临近房间,试图为关卡几何图形建立一套渲染顺序。对此,BSP 树是个不错的选择,因为在玩家进入之前的房间(区域)时,BSP 树能够避免让渲染器重复劳动,从而节省 CPU 资源。 +别忘了,卡马克首次为《毁灭战士》设计渲染器时,通过让渲染器渲染玩家所在房间之外的临近房间,试图为关卡几何图形建立一套渲染顺序。对此,BSP 树是个不错的选择,因为在玩家进入之前的房间(区域)时,BSP 树能够避免让渲染器重复劳动,从而节省 CPU 资源。 -实际上,“将 BSP 树引入 《毁灭战士》”意味着将 BSP 树生成器引入 《毁灭战士》 的关卡编辑器中。当完成一个《毁灭战士》 的关卡的制作时,BSP 树就会在关卡几何图形的基础上生成。根据程序员法比安·桑格勒德Fabien Sanglard的说法,在原版 《毁灭战士》 中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [^5]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出“高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是离线等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。为每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 +实际上,“将 BSP 树引入《毁灭战士》”意味着将 BSP 树生成器引入《毁灭战士》的关卡编辑器中。当完成一个《毁灭战士》的关卡的制作时,BSP 树就会在关卡几何图形的基础上生成。根据程序员 法比安·桑格勒德Fabien Sanglard 的说法,在原版《毁灭战士》中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [^5]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出 “高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是离线等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。为每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 -卡马克对 1980 年论文中提出的 BSP 树算法进行了改造,因为在 《毁灭战士》 开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯、凯德姆以及内勒在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于 IBM 兼容的个人电脑来说负担较大。因此,《毁灭战士》 的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。这种反向排序很容易通过 BSP 树来实现,因为你可以在树的每个节点都进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》 的渲染器使用了一种隐式 Z 缓冲区,这种缓冲区不仅具备普通 Z 缓冲区的优势,而且对内存的要求也较低。Z 缓冲区有两组数组,一组记录水平方向的遮挡关系,另两组记录自屏幕顶部和底部的垂直方向的遮挡关系。《毁灭战士》 的渲染器就算不使用实际的 Z 缓冲区也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于 《毁灭战士》 不会发生以下问题:水平方向的遮挡数组能够运行,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够运行,是因为该游戏不存在有着一上一下两扇窗户的墙体。 +卡马克对 1980 年论文中提出的 BSP 树算法进行了改造,因为在《毁灭战士》开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯三人在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于 IBM 兼容个人电脑来说负担较大。因此,《毁灭战士》的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。这种反向排序很容易通过 BSP 树来实现,因为你可以在树的每个节点都进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》的渲染器使用了一种隐式 Z 缓冲区,这种缓冲区不仅具备普通 Z 缓冲区的优势,而且对内存的要求也较低。这种 Z 缓冲区有两组数组,一组记录水平方向的遮挡关系,另两组记录自屏幕顶部和底部的垂直方向的遮挡关系。《毁灭战士》的渲染器就算不使用实际的 Z 缓冲区也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于《毁灭战士》不会发生以下问题:水平方向的遮挡数组能够发挥作用,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够发挥作用,是因为该游戏不存在有着一上一下两扇窗户的墙体。 -剩下比较棘手的问题是如何将 《毁灭战士》 中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度问题并没有那么重要。 +剩下比较棘手的问题是如何将《毁灭战士》中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度并不是一个严重的问题。 -将 BSP 树应用到 《毁灭战士》 中可谓一大成功。卡马克能够想到 BSP 树是解决 VSD 问题的最佳方案,无疑非常高明。但是这可以称得上是天才之举吗? +将 BSP 树应用到《毁灭战士》中可谓一大成功。卡马克能够想到 BSP 树是解决 VSD 问题的最佳方案,无疑非常高明。但是这可以称得上是天才之举吗? -桑格勒德在其关于 《毁灭战士》 游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[^6] 根据罗梅洛所言,卡马克认为这种算法对 《毁灭战士》 依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味 —— 意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在 《Doom 启示录》 也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [^7]。 +桑格勒德在其关于《毁灭战士》游戏引擎的书中引用了罗梅洛的话:内勒的论文《构建高质量的分割树》主要讲述使用 BSP 树消除 3D 模型的背面。[^6] 根据罗梅洛所言,卡马克认为这种算法对《毁灭战士》依然有效,所以他放手一试,将 BSP 技术应用到了该游戏中。不过这话说得有些奉承的意味 —— 意在暗示卡马克在别人仍然使用 BSP 树渲染静止的场景时,发现该技术可以用于实时游戏领域。在《Doom 启示录》中也有给卡马克戴高帽的故事。该书作者库什纳认为,卡马克在阅读内勒的论文之后,问了自己,“如果使用 BSP 技术创造一整个虚拟世界,而不仅仅是一张 3D 图像,会怎么样呢?” [^7]。 -这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时在试图创建一个飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:飞行员用它来反复练习将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此激励了他们的研究。 +这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时试图创建一个飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:飞行员用它来反复练习将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此激励了他们的研究。 -因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象中的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年Chen戈登Gordon的一篇论文以及 1990 年的一本教材 《计算机图形学:原理及实践》。尽管该页面并未提供引用信息,但它可能是真的。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与 《毁灭战士》 用到的方法基本一致,还包括我称之为“隐式 Z 缓冲区”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。《计算机图形学:原理及实践》 详细介绍了 BSP 树以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材的 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 +因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年 Chen戈登Gordon 的一篇论文,以及 1990 年的一本教材《计算机图形学:原理及实践》。尽管该页面并未提供引用信息,但这可能是真的。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与《毁灭战士》中用到的方法基本一致,还包括了我称之为“隐式 Z 缓冲区”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。《计算机图形学:原理及实践》详细介绍了 BSP 树,以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 -然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时电子游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个 《毁灭战士》 的游戏引擎,它的确非常精致。我在前文也提及过,但是桑格勒德的 《游戏引擎黑皮书:毁灭战士》 很好地讲解了这款游戏引擎的非凡之处,以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写 《毁灭战士》 游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 +然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时电子游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个《毁灭战士》的游戏引擎,它的确非常精致。我在前文也提及过,但是桑格勒德的《游戏引擎黑皮书:毁灭战士Game Engine Black Book: DOOM》 很好地讲解了这款游戏引擎的非凡之处,以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写《毁灭战士》游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 _如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][14],也可通过 [RSS feed][15] 订阅,获取最新文章(每四周更新一篇)。_ From a6cc43f00690f7fb27df6ece3003736925fcd301 Mon Sep 17 00:00:00 2001 From: zhaoxu_Lee <67046056+lzx916@users.noreply.github.com> Date: Fri, 19 Aug 2022 12:45:10 +0800 Subject: [PATCH 0805/3123] Update 20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md --- ...s Action To Prevent Supply Chain Attacks On Open Source.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md index e10f3ee4e4..1591869868 100644 --- a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -17,11 +17,11 @@ GitHub 并不是开源生态系统的唯一组成部分,但 Sigstore 的联合 通过让包管理器可以使用 Sigstore,开发人员可以在 Sigstore 工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc 说,许多人惊讶地发现,这些完整性检查还没有实施,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于 2021 年 5 月发布了一项行政命令,主要处理软件供应链安全问题。 -Linux 基金会、Google、Red Hat、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境 Kubernetes 现在也支持它。 +Linux 基金会、Google、Red Hat、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境  Kubernetes 现在也支持它。 Sigstore 依靠免费和简单易用来鼓励采用,就像主要行业推动 HTTPS 网络加密一样,这在很大程度上是由非营利互联网安全研究集团(Internet Security Research Group)的 Let’s Encrypt 等工具实现的。据 Github 称,该项目会首先提出 Sigstore 将如何在 npm 中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而实现对供应链的攻击。 -GitHub 的 Hutchings 说「我们希望看到这样一个世界,最终所有的软件工件都被签名并链接回源代码,这就是为什么构建像 Sigstore 这样的开放技术栈是如此重要,其他打包存储库也可以采用这种技术。」 +GitHub 的 Hutchings 说:“我们希望看到这样一个世界,最终所有的软件工件都被签名并链接回源代码,这就是为什么构建像 Sigstore 这样的开放技术栈是如此重要,其他打包存储库也可以采用这种技术。” -------------------------------------------------------------------------------- From 9f154037c64fb8cf4e9412589bd2a664b4294950 Mon Sep 17 00:00:00 2001 From: zhaoxu_Lee <67046056+lzx916@users.noreply.github.com> Date: Fri, 19 Aug 2022 12:47:03 +0800 Subject: [PATCH 0806/3123] Update 20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md --- ...kes Action To Prevent Supply Chain Attacks On Open Source.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md index 1591869868..ebe04e7ca7 100644 --- a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -17,7 +17,7 @@ GitHub 并不是开源生态系统的唯一组成部分,但 Sigstore 的联合 通过让包管理器可以使用 Sigstore,开发人员可以在 Sigstore 工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc 说,许多人惊讶地发现,这些完整性检查还没有实施,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于 2021 年 5 月发布了一项行政命令,主要处理软件供应链安全问题。 -Linux 基金会、Google、Red Hat、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境  Kubernetes 现在也支持它。 +Linux 基金会、Google、Red Hat、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境 Kubernetes 现在也支持它。 Sigstore 依靠免费和简单易用来鼓励采用,就像主要行业推动 HTTPS 网络加密一样,这在很大程度上是由非营利互联网安全研究集团(Internet Security Research Group)的 Let’s Encrypt 等工具实现的。据 Github 称,该项目会首先提出 Sigstore 将如何在 npm 中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而实现对供应链的攻击。 From 0f1148c5e23c8748d8c77091eade06bfdff1e984 Mon Sep 17 00:00:00 2001 From: Edward Liu Date: Fri, 19 Aug 2022 13:17:19 +0800 Subject: [PATCH 0807/3123] This post is collected by lkxed. --- ...4- Top New Features and Release Details.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md diff --git a/sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md b/sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md new file mode 100644 index 0000000000..e1fe8db7de --- /dev/null +++ b/sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md @@ -0,0 +1,156 @@ +[#]: subject: "LibreOffice 7.4: Top New Features and Release Details" +[#]: via: "https://www.debugpoint.com/libreoffice-7-4/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +LibreOffice 7.4: Top New Features and Release Details +====== +This post contains the top new features of LibreOffice 7.4 across Writer, Calc, Impress and other core modules. + +The LibreOffice team improves the famous free and open-source office product with each iteration. Perhaps the only stable and well-managed open-source project as a replacement to Microsoft Office. + +The LibreOffice 7.4 version, bringing regular updates to core modules including Calc, Writer and Impress with features and enhancements. Furthermore, in this release, the compatibility with Microsoft Office improved with changes to the core filters and platform updates. + +Before we round up the new features, here’s a tentative schedule for LibreOffice 7.4: + +### Schedule + +| Milestone | Release Date | +| :- | :- | +| Alpha 1 | May 9, 2022 – May 15, 2022 | +| Feature Freeze | Jun 6, 2022 – Jun 12, 2022 | +| Beta 1 | Jun 6, 2022 – Jun 12, 2022 | +| RC1 | Jul 4, 2022 – Jul 10, 2022 | +| RC2 | Jul 25, 2022 – Jul 31, 2022 | +| RC3 | Aug 8, 2022 – Aug 14, 2022 | +| Release 7.4 | Aug 15, 2022 – Aug 21, 2022 | + +### LibreOffice 7.4 Features + +#### Calc + +First and foremost, the most crucial change coming in 7.4 is the support of 16k columns in LibreOffice Calc. It was available in earlier LibreOffice 7.3 but hidden as an experimental option. Finally, it is open to support 16384 columns, i.e. up to XFD. Additional columns are going to help several high-volume data work. + +![LibreOffice 7.4 Calc now supports 16k columns.][1] + +Second, the Autosum button gets the following [additional functions][2] to improve productivity and save time. + +* COUNTA +* PRODUCT +* STDEV +* STDEVP +* VAR +* VARP + +![Additional options in Autosum button][3] + +Moreover, the height of the formula bar is now part of the *.ods files. Hence, you can see the height retained after saving the file and opening it. Earlier, it was being reset to the default height. It is one of the small changes but has a more significant impact on heavy Calc users. + +![Height of Calc Formula bar][4] + +In addition, a new menu option `Sheet > Navigate > Go to Sheet` shows an entire new dialog which is similar to the Writer’s Go to Page. + +#### Writer + +Firstly, the hyphenation settings get three new options. You can now specify the size of the hyphenation zone, minimum word length and ability to stop hyphenating the last word. + +![New Hyphenation settings][5] + +*Image credit: LibreOffice Team* + +Secondly, the menu item Tools > Update > Update now updates the preview of all OLE objects. Also, if you are importing a DOCX file in LibreOffice 7.4, the paragraph borders bring more clarity. In addition, the import also improves the Rich text and checkbox contents inside the text box for DOCX imports. Moreover, Write 7.4 now supports clearing breaks from Word files improving layout consistency. + +Secondly, the menu item `Tools > Update > Update all` now updates the preview of all OLE objects. + +Also, if you are importing a DOCX file in LibreOffice 7.4, the paragraph borders bring more clarity. In addition, the import also improves the Rich text and checkbox contents inside the text box for DOCX imports. + +Moreover, Writer 7.4 now supports clearing breaks from Word files improving layout consistency. + +#### Impress + +The significant change in Impress is a new Theme tab in the Slide properties for the master slide. It contains several accent colour options which control all the sildes in your presentation. It will be a really neat feature in this version. + +![New Theme option in Slide Master Properties][6] + +### Common Updates (across all modules) + +Firstly, the most important change as a standard feature is LibreOffice now supports WEBP images officially. You can directly export and import WebP images across Writer, Calc, Draw etc. Now you do not need additional software to convert WEBP images, especially in Linux systems. + +Moreover, the support for Windows compressed enhanced meta file (EMZ/WMZ) also lands in this release. + +![New WEBP Image Support][7] + +Secondly, the Fille > Recent Documents can remember the state of the last opened document, whether it was read-only or editable. + +The 3D shapes lighting gets some bug fixes and corrections corresponding to the ODF specifications. + +### Performance Updates + +A bunch of performance boosts also makes this an important release of LibreOffice. Here’s a quick recap of the performance boosts. + +* [The Text Layout performance gets around a 60% boost][8] +* [Calc formula re-calculation][9] +* Improved performance of [VLOOKUP][10], COUNTIF and SUMIF +* [And CSV file import][11] + +That’s not all. LibreOffice 7.4 also brings a huge set of filters (export and import) for Microsoft Office 365 file types, extended PDF export options (such as a sign) via command line, updated language support and API changes. + +### Download LibreOffice 7.4 + +You can download the LibreOffice 7.4 installer using the respective links (language English) for a fresh installation. + +* [RPM Package for Fedora and related distributions][12] +* [DEB packages for Ubuntu, Linux Mint and others][13] +* [Windows 10, 11 – 64-bit][14] +* [macOS 64 bit][15] +* [Mac OS X – ARM and Apple SIlicon, M1][16] + +**Ugrade** + +* Windows users can not upgrade, hence you need to uninstall first, and then reinstall. +* Linux users can find the [upgrade guide in this post][17]. + +If you need assistance, you can refer to our [guide here][18] to install latest version in Linux. Make sure to report any issues or bugs in the [official bug tracker.][19] + +LibreOffice 7.4 is [officially released on Aug 18, 2022][20]. + +*[Via Release Notes][21]* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/libreoffice-7-4/ + +作者:[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/06/LibreOffice-7.4-Calc-now-supports-16k-columns.jpg +[2]: https://bugs.documentfoundation.org/show_bug.cgi?id=139602 +[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/Additional-formula-in-Autosum-tool.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/Height-of-Calc-Formula-bar.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-Hyphenation-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-Theme-option-in-Slide-Master-Properties.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-WEBP-Image-Support.jpg +[8]: http://llunak.blogspot.com/2022/04/improving-text-layout-performance.html +[9]: https://bugs.documentfoundation.org/show_bug.cgi?id=119083 +[10]: https://bugs.documentfoundation.org/show_bug.cgi?id=146546 +[11]: https://bugs.documentfoundation.org/show_bug.cgi?id=94677 +[12]: https://www.libreoffice.org/download/download/?type=rpm-x86_64&version=7.4.0&lang=en-US +[13]: https://www.libreoffice.org/download/download/?type=deb-x86_64&version=7.4.0&lang=en-US +[14]: https://www.libreoffice.org/download/download/?type=win-x86_64&version=7.4.0&lang=en-US +[15]: https://www.libreoffice.org/download/download/?type=mac-x86_64&version=7.4.0&lang=en-US +[16]: https://www.libreoffice.org/download/download/?type=mac-aarch64&version=7.4.0&lang=en-US +[17]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ +[18]: https://www.debugpoint.com/2022/06/install-latest-libreoffice-ubuntu-linux/ +[19]: https://bugs.documentfoundation.org/ +[20]: https://debugpointnews.com/libreoffice-7-4-release/ +[21]: https://wiki.documentfoundation.org/ReleaseNotes/7.4 From 9effc90d42f6c64283739f833b65fa53022430c4 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Fri, 19 Aug 2022 15:14:09 +0800 Subject: [PATCH 0808/3123] Update 20220602 The only Linux command you need to know.md --- .../tech/20220602 The only Linux command you need to know.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220602 The only Linux command you need to know.md b/sources/tech/20220602 The only Linux command you need to know.md index eb6364dd7f..08e46cce3a 100644 --- a/sources/tech/20220602 The only Linux command you need to know.md +++ b/sources/tech/20220602 The only Linux command you need to know.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/linux-cheat-command" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -141,7 +141,7 @@ via: https://opensource.com/article/22/6/linux-cheat-command 作者:[Seth Kenlon][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 74a5290a9180b1ee68f5cf666e3670bec39d00b0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 19 Aug 2022 16:17:46 +0800 Subject: [PATCH 0809/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @aREversez https://linux.cn/article-14945-1.html 辛苦了,这篇虽然一定曲高和寡,但是确实非常有价值。 --- ... Was Using Binary Space Partitioning in Doom.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) rename {translated/talk => published}/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md (90%) diff --git a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md similarity index 90% rename from translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md rename to published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md index 081d23f452..1e54c32d96 100644 --- a/translated/talk/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md +++ b/published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md @@ -4,12 +4,14 @@ [#]: collector: "lujun9972" [#]: translator: "aREversez" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14945-1.html" 在《毁灭战士》中应用二叉空间分割(BSP)是何等天才之举? ====== +![](https://img.linux.net.cn/data/attachment/album/202208/19/161257n99vkniexsjdehvh.jpg) + 1993 年,游戏开发公司 id Software 发行了一款第一人称射击游戏 《毁灭战士DOOM》,游戏一经发行迅速爆火。在今天看来,《毁灭战士》可谓有史以来最具影响力的游戏之一。 《毁灭战士》发行之后的第十年(2003 年),记者 大卫·库什纳David Kushner 出版了一本关于 id Software 的书,书名为《Doom 启示录Masters of Doom》,后被奉为记录毁灭战士创作史的典范读物。几年前我曾读过这本书,如今内容已记得不太真切了,但是书中有一个关于 id Software 首席程序员 约翰·卡马克John Carmack 的故事,我印象特别深刻。这里只对故事做粗略描述(具体情节请往下阅读)。实际上,早在《毁灭战士》开发前期,卡马克就发现自己为这款游戏编写的 3D 渲染器在渲染某些关卡时慢得像爬一样。对于《毁灭战士》这一对动感和速度有着相当高要求的射击游戏来说,这是一个非常严重的问题。意识到了这一问题的严重性,卡马克需要一个更加有效的渲染算法,于是他开始阅读相关论文。最后,他实现了一种叫做“二叉空间分割binary space partitioning(BSP)”的技术,极大地提升了《毁灭战士》游戏引擎的运行速度,而这项技术此前从未用于电子游戏当中。 @@ -44,13 +46,13 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 对于强调物体的渲染器来说,可以使用 Z 缓冲区来解决 VSD 问题,比较简单。每次将物体投射到屏幕上时,需要对每个用于绘制的像素点进行检查。如果你想绘制出的物体的部分和已经绘制在目标像素点上的物体相比更加靠近玩家,可以将其覆盖。否则,必须保持像素不变。尽管办法很简单,但是 Z 缓冲区对内存的要求较高,而且渲染器可能仍然要花费大量的 CPU 资源来投射玩家永远不会看到的水平几何体。 -在 20 世纪 90 年代,使用 Z 缓冲区的方法还存在着其他缺陷:IBM 兼容个人电脑(PC)搭载的是一种叫 VGA 的显示适配器系统,在这类电脑上,将图像写入帧缓冲区的成本非常之高。因此,在只会以后被覆盖的像素上绘制花费的时间拖慢了渲染器的性能。 +在 20 世纪 90 年代,使用 Z 缓冲区的方法还存在着其他缺陷:IBM 兼容机(PC)搭载的是一种叫 VGA 的显示适配器系统,在这类电脑上,将图像写入帧缓冲区的成本非常之高。因此,在只会以后被覆盖的像素上绘制花费的时间拖慢了渲染器的性能。 考虑到将图像写入帧缓冲区的成本非常之高,理想的渲染器需要首先绘制离玩家最近的物体,接着是比较近的物体,以此类推,直到屏幕上每个像素点都写入了信息。这时,渲染器会停止运行,大幅缩短远处不可见物体的渲染时间。这种由近及远对物体进行排序的方法也可以解决 VSD 问题。那么问题又来了:什么才是玩家可以看到的? 最初,卡马克打算依靠《毁灭战士》的关卡布局来解决 VSD 问题。首先用渲染器绘制出玩家目前所在房间的墙壁,之后玩家冲进隔壁房间,再绘制出隔壁房间的墙壁。由于每个房间互不遮挡,这一办法也能解决 VSD 问题。而互相遮挡的房间可以分割成若干互不遮挡的“区域”。在 YouTube 上的一个 [视频][2] 中,Bisqwit 展示了自己制作出来的使用了相同算法的渲染器。可以看到,如果以超慢的速度运行,便能一睹渲染的具体过程。这一算法同样运用到了《毁灭公爵 3D 版》当中,这款游戏在 《毁灭战士》 推出三年之后发行,当时 CPU 的性能也更加强大了。1993 年,尽管在硬件上已经可以运行游戏了,但是使用这一算法的《毁灭战士》渲染器在复杂的层级结构上依旧表现吃力,尤其是在房间分割出来的各部分相互嵌套的情况下。不巧的是,这类层级结构正是构造环形楼梯等物体的唯一办法。沿着环形楼梯走下去,直到走入已经绘制好的区域,由于这其中涉及多次循环下降运动,导致游戏引擎的运行速度大幅降低。 -在 id Software 团队意识到《毁灭战士》游戏引擎的速度可能过慢时,公司还面临着其他任务:将《德军总部 3D 版》移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比 IBM 兼容个人电脑还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将《德军总部》移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于《德军总部 3D 版》的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是《毁灭战士》的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决《毁灭战士》速度过慢的问题。 +在 id Software 团队意识到《毁灭战士》游戏引擎的速度可能过慢时,公司还面临着其他任务:将《德军总部 3D 版》移植到超级任天堂游戏机(简称“超任”)上。那时,超任的性能比 IBM 兼容机还要差。结果表明,尽管光线投射渲染器非常简单,但是想要在超任上快速运行是不可能的。于是,卡马克着手研究更为高效的算法。事实上,也正是为了顺利将《德军总部》移植到超任,卡马克首次研究了二叉空间分割技术,并将其付诸应用。由于《德军总部 3D 版》的墙壁与坐标轴平齐,所以二叉空间分割技术应用起来也比较简单直接;但是《毁灭战士》的情况则比较复杂。不过,卡马克发现,二叉空间分割树同样可以用来解决《毁灭战士》速度过慢的问题。 ### 二叉空间分割 @@ -102,7 +104,7 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 实际上,“将 BSP 树引入《毁灭战士》”意味着将 BSP 树生成器引入《毁灭战士》的关卡编辑器中。当完成一个《毁灭战士》的关卡的制作时,BSP 树就会在关卡几何图形的基础上生成。根据程序员 法比安·桑格勒德Fabien Sanglard 的说法,在原版《毁灭战士》中,一个关卡的 BSP 树生成时间需要 8 秒,全部关卡合计共需 11 分钟 [^5]。之所以生成时间较长,部分原因在于卡马克所用的 BSP 生成算法,该算法尝试使用各种启发式方法找出 “高质量” BSP 树。在运行时,8 秒的延时可能让人无法接受;但是离线等 8 秒,时间并不算长,尤其是考虑到 BSP 树提升了渲染器的性能。为每个关卡生成的 BSP 树将在游戏启动时作为关卡数据载入。 -卡马克对 1980 年论文中提出的 BSP 树算法进行了改造,因为在《毁灭战士》开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯三人在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于 IBM 兼容个人电脑来说负担较大。因此,《毁灭战士》的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。这种反向排序很容易通过 BSP 树来实现,因为你可以在树的每个节点都进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》的渲染器使用了一种隐式 Z 缓冲区,这种缓冲区不仅具备普通 Z 缓冲区的优势,而且对内存的要求也较低。这种 Z 缓冲区有两组数组,一组记录水平方向的遮挡关系,另两组记录自屏幕顶部和底部的垂直方向的遮挡关系。《毁灭战士》的渲染器就算不使用实际的 Z 缓冲区也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于《毁灭战士》不会发生以下问题:水平方向的遮挡数组能够发挥作用,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够发挥作用,是因为该游戏不存在有着一上一下两扇窗户的墙体。 +卡马克对 1980 年论文中提出的 BSP 树算法进行了改造,因为在《毁灭战士》开始运行时,当前关卡的 BSP 树就会读取到内存中,渲染器通过 BSP 树由前向后绘制物体,而非由后向前进行绘制。福克斯三人在那篇论文中演示了 BSP 树可用于执行由后向前的画家算法,但是画家算法会造成许多重复的绘制任务,对于 IBM 兼容机来说负担较大。因此,《毁灭战士》的渲染器换了个方向,首先绘制距离玩家较近的图形,之后再绘制离玩家较远的。这种反向排序很容易通过 BSP 树来实现,因为你可以在树的每个节点都进行反向遍历。为了避免绘制出来的远处图形遮挡到近处的图形,《毁灭战士》的渲染器使用了一种隐式 Z 缓冲区,这种缓冲区不仅具备普通 Z 缓冲区的优势,而且对内存的要求也较低。这种 Z 缓冲区有两组数组,一组记录水平方向的遮挡关系,另两组记录自屏幕顶部和底部的垂直方向的遮挡关系。《毁灭战士》的渲染器就算不使用实际的 Z 缓冲区也无伤大雅,因为从技术上来看它并不是真正的 3D 游戏。BSP 树数据结构的成本虽然不高,但却能够起作用,其原因在于《毁灭战士》不会发生以下问题:水平方向的遮挡数组能够发挥作用,是因为该游戏中没有倾斜的墙体;垂直方向的遮挡数组能够发挥作用,是因为该游戏不存在有着一上一下两扇窗户的墙体。 剩下比较棘手的问题是如何将《毁灭战士》中处于运动中的角色融入到借助 BSP 树绘制的静止的关卡几何图形中。该游戏中的敌人不可能纳入 BSP 树之中,因为他们会移动,而 BSP 树只对静止的几何形状起作用。所以渲染器首先绘制静止的关卡几何图形,同时与另一个内存使用效率较高的数据结构协作,记录屏幕上分割出来用于绘制的区域。之后,渲染器按照由后往前的顺序绘制敌人,并消除被屏幕上的区域遮挡住的敌人。这一过程与使用 BSP 树进行渲染相比,效果稍差一些。但是由于关卡中能看到的敌人的数量少于几何图形的数量,所以速度并不是一个严重的问题。 @@ -112,7 +114,7 @@ BSP 树是计算机图形领域最具挑战性难题的解决方案之一。举 这些“片面之词”忽视了 BSP 树的发展历史。当美国空军研究人员开始意识到场景分割可能会加快渲染任务的时候,他们就对提升 _实时_ 渲染的速度产生了兴趣,毕竟他们当时试图创建一个飞行模拟器。1980 年,同样的案例再次出现在了福克斯等人的论文中,他们探讨了 BSP 树如何应用于飞行模拟器中,帮助飞行员进行训练:飞行员用它来反复练习将飞机降至同一空港。由于空港的地形不会发生改变,BSP 树只需生成一次,即可一劳永逸。很明显,他们考虑的是实时模拟。在论文的引言部分,福克斯等人还谈到实时图形系统必须在至少 1/30 秒内生成一张图像,由此激励了他们的研究。 -因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年 Chen戈登Gordon 的一篇论文,以及 1990 年的一本教材《计算机图形学:原理及实践》。尽管该页面并未提供引用信息,但这可能是真的。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与《毁灭战士》中用到的方法基本一致,还包括了我称之为“隐式 Z 缓冲区”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。《计算机图形学:原理及实践》详细介绍了 BSP 树,以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 +因此,卡马克不是第一个想到在实时图形模拟中应用 BSP 树的人。诚然,设想与付诸实践是两码事。但是即使在实施的过程中,卡马克受到的帮助与指导可比人们想象的要多得多。至少是到这篇文章写成之时,BSP 树的 [维基百科词条][13] 页面显示,卡马克参考了 1991 年 Chen戈登Gordon 的一篇论文,以及 1990 年的一本教材《计算机图形学:原理及实践》。尽管该页面并未提供引用信息,但可信度没什么问题。陈和戈登的论文介绍了运用 BSP 树由前向后的渲染方法,这种方法与《毁灭战士》中用到的方法基本一致,还包括了我称之为“隐式 Z 缓冲区”的数据结构,可用于防止远处的图形在绘制时遮挡近处的图形。《计算机图形学:原理及实践》详细介绍了 BSP 树,以及一些构建并展示 BSP 树的伪代码(非常感谢我大学的图书馆,让我能够一睹这本教材 1990 年的版本)。因为这本书是计算机图形学的经典之作,所以卡马克很可能也有一本。 然而,卡马克发现自己遇到一个新问题:如何让第一人称射击游戏在一台 CPU 甚至都无法进行浮点操作的电脑上运行呢?通过调查研究,他证明了 BSP 树的数据结构非常适用于实时电子游戏渲染。尽管 BSP 树早已提出,而且到了卡马克的时代,相关理论已经非常成熟了,但我始终认为,卡马克的做法可谓惊人之壮举。也许,得到人们称誉的应该是整个《毁灭战士》的游戏引擎,它的确非常精致。我在前文也提及过,但是桑格勒德的《游戏引擎黑皮书:毁灭战士Game Engine Black Book: DOOM》 很好地讲解了这款游戏引擎的非凡之处,以及这些优势相互契合之法。要明白,VSD 问题只是卡马克在编写《毁灭战士》游戏引擎时需要解决的诸多问题之一。不得不说,面对不为大多数程序员所知的复杂的数据结构,卡马克能够查阅相关文献,将其付诸实践,仅此一点就足以说明其技术之精湛、匠心之独到。 From f1ff8be9d000f86d57ea71c99295dc134b1f05c0 Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Fri, 19 Aug 2022 16:54:12 +0800 Subject: [PATCH 0810/3123] Delete --- ...Bulletin Board Systems- The VICE Exposé.md | 127 ------------------ 1 file changed, 127 deletions(-) delete mode 100644 sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md diff --git a/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md b/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md deleted file mode 100644 index e15a44fb36..0000000000 --- a/sources/talk/20200202 Bulletin Board Systems- The VICE Exposé.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "Bulletin Board Systems: The VICE Exposé" -[#]: via: "https://twobithistory.org/2020/02/02/bbs.html" -[#]: author: "Two-Bit History https://twobithistory.org" -[#]: collector: "lujun9972" -[#]: translator: "aREversez" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Bulletin Board Systems: The VICE Exposé -====== - -By now, you have almost certainly heard of the dark web. On sites unlisted by any search engine, in forums that cannot be accessed without special passwords or protocols, criminals and terrorists meet to discuss conspiracy theories and trade child pornography. - -We here at VICE headquarters have reported before on the dark web’s [“hurtcore” communities][1], its [human trafficking markets][2], its [rent-a-hitman websites][3]. We have explored [the challenges the dark web presents to regulators][4], the rise of [dark web revenge porn][5], and the frightening size of [the dark web gun trade][6]. We have kept you informed about that one dark web forum where you can make like Walter White and [learn how to manufacture your own drugs][7], and also about—thanks to our foreign correspondent—[the Chinese dark web][8]. We have even attempted to [catalog every single location on the dark web][9]. Our coverage of the dark web has been nothing if not comprehensive. - -But I wanted to go deeper. - -We know that below the surface web is the deep web, and below the deep web is the dark web. It stands to reason that below the dark web there should be a deeper, darker web. - -A month ago, I set out to find it. Unsure where to start, I made a post on _Reddit_, a website frequented primarily by cosplayers and computer enthusiasts. I asked for a guide, a Styx ferryman to bear me across to the mythical underworld I sought to visit. - -Only minutes after I made my post, I received a private message. “If you want to see it, I’ll take you there,” wrote _Reddit_ user FingerMyKumquat. “But I’ll warn you just once—it’s not pretty to see.” - -### Getting Access - -This would not be like visiting Amazon to shop for toilet paper. I could not just enter an address into the address bar of my browser and hit go. In fact, as my Charon informed me, where we were going, there are no addresses. At least, no web addresses. - -But where exactly were we going? The answer: Back in time. The deepest layer of the internet is also the oldest. Down at this deepest layer exists a secret society of “bulletin board systems,” a network of underground meetinghouses that in some cases have been in continuous operation since the 1980s—since before Facebook, before Google, before even stupidvideos.com. - -To begin, I needed to download software that could handle the ancient protocols used to connect to the meetinghouses. I was told that bulletin board systems today use an obsolete military protocol called Telnet. Once upon a time, though, they operated over the phone lines. To connect to a system back then you had to dial its _phone number_. - -The software I needed was called [SyncTerm][10]. It was not available on the App Store. In order to install it, I had to compile it. This is a major barrier to entry, I am told, even to veteran computer programmers. - -When I had finally installed SyncTerm, my guide said he needed to populate my directory. I asked what that was a euphemism for, but was told it was not a euphemism. Down this far, there are no search engines, so you can only visit the bulletin board systems you know how to contact. My directory was the list of bulletin board systems I would be able to contact. My guide set me up with just seven, which he said would be more than enough. - -_More than enough for what,_ I wondered. Was I really prepared to go deeper than the dark web? Was I ready to look through this window into the black abyss of the human soul? - -![][11] _The vivid blue interface of SyncTerm. My directory of BBSes on the left._ - -### Heatwave - -I decided first to visit the bulletin board system called “Heatwave,” which I imagined must be a hangout for global warming survivalists. I “dialed” in. The next thing I knew, I was being asked if I wanted to create a user account. I had to be careful to pick an alias that would be inconspicuous in this sub-basement of the internet. I considered “DonPablo,” and “z3r0day,” but finally chose “ripper”—a name I could remember because it is also the name of my great-aunt Meredith’s Shih Tzu. I was then asked where I was dialing from; I decided “xxx” was the right amount of enigmatic. - -And then—I was in. Curtains of fire rolled down my screen and dispersed, revealing the main menu of the Heatwave bulletin board system. - -![][12] _The main menu of the Heatwave BBS._ - -I had been told that even in the glory days of bulletin board systems, before the rise of the world wide web, a large system would only have several hundred users or so. Many systems were more exclusive, and most served only users in a single telephone area code. But how many users dialed the “Heatwave” today? There was a main menu option that read “(L)ast Few Callers,” so I hit “L” on my keyboard. - -My screen slowly filled with a large table, listing all of the system’s “callers” over the last few days. Who were these shadowy outcasts, these expert hackers, these denizens of the digital demimonde? My eyes scanned down the list, and what I saw at first confused me: There was a “Dan,” calling from St. Louis, MO. There was also a “Greg Miller,” calling from Portland, OR. Another caller claimed he was “George” calling from Campellsburg, KY. Most of the entries were like that. - -It was a joke, of course. A meme, a troll. It was normcore fashion in noms de guerre. These were thrill-seeking Palo Alto adolescents on Adderall making fun of the surface web. They weren’t fooling me. - -I wanted to know what they talked about with each other. What cryptic colloquies took place here, so far from public scrutiny? My index finger, with ever so slight a tremble, hit “M” for “(M)essage Areas.” - -Here, I was presented with a choice. I could enter the area reserved for discussions about “T-99 and Geneve,” which I did not dare do, not knowing what that could possibly mean. I could also enter the area for discussions about “Other,” which seemed like a safe place to start. - -The system showed me message after message. There was advice about how to correctly operate a leaf-blower, as well as a protracted debate about the depth of the Strait of Hormuz relative to the draft of an aircraft carrier. I assumed the real messages were further on, and indeed I soon spotted what I was looking for. The user “Kevin” was complaining to other users about the side effects of a drug called Remicade. This was not a drug I had heard of before. Was it some powerful new synthetic stimulant? A cocktail of other recreational drugs? Was it something I could bring with me to impress people at the next VICE holiday party? - -I googled it. Remicade is used to treat rheumatoid arthritis and Crohn’s disease. - -In reply to the original message, there was some further discussion about high resting heart rates and mechanical heart valves. I decided that I had gotten lost and needed to contact FingerMyKumquat. “Finger,” I messaged him, “What is this shit I’m looking at here? I want the real stuff. I want blackmail and beheadings. Show me the scum of the earth!” - -“Perhaps you’re ready for the SpookNet,” he wrote back. - -### SpookNet - -Each bulletin board system is an island in the television-static ocean of the digital world. Each system’s callers are lonely sailors come into port after many a month plying the seas. - -But the bulletin board systems are not entirely disconnected. Faint phosphorescent filaments stretch between the islands, links in the special-purpose networks that were constructed—before the widespread availability of the internet—to propagate messages from one system to another. - -One such network is the SpookNet. Not every bulletin board system is connected to the SpookNet. To get on, I first had to dial “Reality Check.” - -![][13] _The Reality Check BBS._ - -Once I was in, I navigated my way past the main menu and through the SpookNet gateway. What I saw then was like a catalog index for everything stored in that secret Pentagon warehouse from the end of the _X-Files_ pilot. There were message boards dedicated to UFOs, to cryptography, to paranormal studies, and to “End Times and the Last Days.” There was a board for discussing “Truth, Polygraphs, and Serums,” and another for discussing “Silencers of Information.” Here, surely, I would find something worth writing about in an article for VICE. - -I browsed and I browsed. I learned about which UFO documentaries are worth watching on Netflix. I learned that “paper mill” is a derogatory term used in the intelligence community (IC) to describe individuals known for constantly trying to sell “explosive” or “sensitive” documents—as in the sentence, offered as an example by one SpookNet user, “Damn, here comes that paper mill Juan again.” I learned that there was an effort afoot to get two-factor authentication working for bulletin board systems. - -“These are just a bunch of normal losers,” I finally messaged my guide. “Mostly they complain about anti-vaxxers and verses from the Quran. This is just _Reddit_!” - -“Huh,” he replied. “When you said ‘scum of the earth,’ did you mean something else?” - -I had one last idea. In their heyday, bulletin board systems were infamous for being where everyone went to download illegal, cracked computer software. An entire subculture evolved, with gangs of software pirates competing to be the first to crack a new release. The first gang to crack the new software would post their “warez” for download along with a custom piece of artwork made using lo-fi ANSI graphics, which served to identify the crack as their own. - -I wondered if there were any old warez to be found on the Reality Check BBS. I backed out of the SpookNet gateway and keyed my way to the downloads area. There were many files on offer there, but one in particular caught my attention: a 5.3 megabyte file just called “GREY.” - -I downloaded it. It was a complete PDF copy of E. L. James’ _50 Shades of Grey_. - -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][14] on Twitter or subscribe to the [RSS feed][15] to make sure you know when a new post is out._ - -_Previously on TwoBitHistory…_ - -> I first heard about the FOAF (Friend of a Friend) standard back when I wrote my post about the Semantic Web. I thought it was a really interesting take on social networking and I've wanted to write about it since. Finally got around to it! -> -> — TwoBitHistory (@TwoBitHistory) [January 5, 2020][16] - --------------------------------------------------------------------------------- - -via: https://twobithistory.org/2020/02/02/bbs.html - -作者:[Two-Bit History][a] -选题:[lujun9972][b] -译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://twobithistory.org -[b]: https://github.com/lujun9972 -[1]: https://www.vice.com/en_us/article/mbxqqy/a-journey-into-the-worst-corners-of-the-dark-web -[2]: https://www.vice.com/en_us/article/vvbazy/my-brief-encounter-with-a-dark-web-human-trafficking-site -[3]: https://www.vice.com/en_us/article/3d434v/a-fake-dark-web-hitman-site-is-linked-to-a-real-murder -[4]: https://www.vice.com/en_us/article/ezv85m/problem-the-government-still-doesnt-understand-the-dark-web -[5]: https://www.vice.com/en_us/article/53988z/revenge-porn-returns-to-the-dark-web -[6]: https://www.vice.com/en_us/article/j5qnbg/dark-web-gun-trade-study-rand -[7]: https://www.vice.com/en_ca/article/wj374q/inside-the-dark-web-forum-that-tells-you-how-to-make-drugs -[8]: https://www.vice.com/en_us/article/4x38ed/the-chinese-deep-web-takes-a-darker-turn -[9]: https://www.vice.com/en_us/article/vv57n8/here-is-a-list-of-every-single-possible-dark-web-site -[10]: http://syncterm.bbsdev.net/ -[11]: https://twobithistory.org/images/sync.png -[12]: https://twobithistory.org/images/heatwave-main-menu.png -[13]: https://twobithistory.org/images/reality.png -[14]: https://twitter.com/TwoBitHistory -[15]: https://twobithistory.org/feed.xml -[16]: https://twitter.com/TwoBitHistory/status/1213920921251131394?ref_src=twsrc%5Etfw From 4f0973fdfc2d2a396ffab3991c47eea94478f132 Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Fri, 19 Aug 2022 17:32:49 +0800 Subject: [PATCH 0811/3123] Being translated --- sources/talk/20210207 The Real Novelty of the ARPANET.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20210207 The Real Novelty of the ARPANET.md b/sources/talk/20210207 The Real Novelty of the ARPANET.md index 5e60919871..048db69056 100644 --- a/sources/talk/20210207 The Real Novelty of the ARPANET.md +++ b/sources/talk/20210207 The Real Novelty of the ARPANET.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (aREversez) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -201,7 +201,7 @@ via: https://twobithistory.org/2021/02/07/arpanet.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[aREversez](https://github.com/aREversez) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1b8ab7a2522c16275aa370446a072ca083716565 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 19 Aug 2022 19:48:45 +0800 Subject: [PATCH 0812/3123] RP @geekpi https://linux.cn/article-14947-1.html --- ...Real Time in Linux [Desktop and Server].md | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) rename {translated/tech => published}/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md (66%) diff --git a/translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md similarity index 66% rename from translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md rename to published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md index 72ab06cb98..ce744fb4e2 100644 --- a/translated/tech/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md +++ b/published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md @@ -3,15 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14947-1.html" -如何在 Linux 中实时监控日志文件(桌面和服务器) +如何在 Linux 中实时监控日志文件 ====== -本教程介绍了如何实时监控 Linux 日志文件(桌面、服务器或应用)以进行诊断和故障排除。 -当你在 Linux 桌面、服务器或任何应用中遇到问题时,你首先查看单独的日志文件。日志文件通常是文本流和来自应用的带有时间戳的消息。它可以帮助你缩小特定实例的范围,并使你能够找到问题的原因。它还可以帮助从网络获得帮助。 +![](https://img.linux.net.cn/data/attachment/album/202208/19/194609f1njqu096uhy919i.jpg) + +> 本教程介绍了如何实时监控 Linux 日志文件(桌面、服务器或应用)以进行诊断和故障排除。 + +当你在 Linux 桌面、服务器或任何应用中遇到问题时,你首先会查看单独的日志文件。日志文件通常是文本流和来自应用的带有时间戳的消息。它可以帮助你缩小特定问题的范围,并使你能够找到问题的原因。它还可以帮助从网络获得帮助。 一般来说,所有的日志文件都位于 `/var/log`。此目录包含特定应用和服务的扩展名为 `.log` 的日志文件,它还包含了其他含有日志的独立目录。 @@ -25,25 +28,23 @@ `tail` 命令是实时跟踪日志文件的最基本方式。特别是如果你在只有终端而没有 GUI 的服务器中。这很有帮助。 -例子: - -**基本语法** +基本语法如下: ``` tail /path/to/log/file ``` -**用法** +用法: ![Monitoring multiple log files via tail][2] -使用开关 `-f` 跟踪实时更新的日志文件。例如,如果要关注 syslog,可以使用以下命令。 +可以使用开关 `-f` 跟踪实时更新的日志文件。例如,如果要关注 syslog,可以使用以下命令。 ``` tail -f /var/log/syslog ``` -你可以使用单个命令监控多个日志文件 +你可以使用单个命令监控多个日志文件: ``` tail -f /var/log/syslog /var/log/dmesg @@ -57,41 +58,47 @@ tail -f /var/log/syslog /var/log/dmesg ![lnav Running][3] -lnav 是一个出色的程序,你可以用它来用彩色编码的信息以更有条理的方式监控日志文件。在 Linux 系统中,这个工具不是默认安装的。你可以用下面的命令来安装它: +`lnav` 是一个出色的程序,你可以用它来用彩色编码的信息以更有条理的方式监控日志文件。在 Linux 系统中,这个工具不是默认安装的。你可以用下面的命令来安装它: + +Ubuntu: ``` -sudo apt install lnav (Ubuntu) -sudo dnf install lnav (Fedora) +sudo apt install lnav +``` + +Fedora: + +``` +sudo dnf install lnav ``` lnav 的好处在于,如果你不想安装它,你可以下载其预编译的可执行文件并在任何地方运行它,甚至可以从 U 盘上运行。无需设置,并加载了功能。使用 lnav,你可以通过 SQL 查询日志文件,以及其他很酷的功能,你可以在其[官方网站][4]上学习。 - -安装后,你可以在具有管理员权限的终端上运行 lnav,它会默认显示 `/var/log` 中的所有日志并开始实时监控。 +安装后,你可以在具有管理员权限的终端上运行 `lnav`,它会默认显示 `/var/log` 中的所有日志并开始实时监控。 #### 关于 systemd 的 journalctl 的一个说明 -当今所有现代 Linux 发行版都主要使用 systemd。 systemd 提供了运行 Linux 操作系统的基本框架和组件。 systemd 通过 journalctl 提供日志服务,这有助于管理来自所有 systemd 服务的日志。你还可以使用以下命令实时监控各个 systemd 服务和日志。 +当今所有现代 Linux 发行版都主要使用 systemd。 systemd 提供了运行 Linux 操作系统的基本框架和组件。 systemd 通过 `journalctl` 提供日志服务,这有助于管理来自所有 systemd 服务的日志。你还可以使用以下命令实时监控各个 systemd 服务和日志。 ``` journalctl -f ``` -以下是一些特定的 journalctl 命令,可用于多种情况。你可以将这些与上面的 -f 选项结合使用以开始实时监控。 +以下是一些特定的 `journalctl` 命令,可用于多种情况。你可以将这些与上面的 `-f` 选项结合使用以开始实时监控。 -* 对于紧急系统消息,请使用: +对于紧急系统消息,请使用: ``` journalctl -p 0 ``` -* 显示带有解释的错误: +显示带有解释的错误: ``` journalctl -xb -p 3 ``` -* 使用时间控制过滤: +使用时间控制过滤: ``` journalctl --since "2022-12-04 06:00:00" @@ -100,7 +107,7 @@ journalctl --since yesterday journalctl --since 09:00 --until "1 hour ago" ``` -如果你想了解更多关于 journalctl 的详细信息,我已经在这写了份[指南][5]。 +如果你想了解更多关于 journalctl 的详细信息,我已经在这写了份 [指南][5]。 ### 结束语 @@ -115,7 +122,7 @@ via: https://www.debugpoint.com/monitor-log-files-real-time/ 作者:[Arindam][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/) 荣誉推出 From ed126462bfa72b95d9054e3603418fd861f4b7b4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 08:34:00 +0800 Subject: [PATCH 0813/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220819=20sssnake=20=E2=80=93=20A=20Super=20Addicti?= =?UTF-8?q?ve=20Snake=20Game=20for=20Linux=20Terminal.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r Addictive Snake Game for Linux Terminal.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20220819 sssnake – A Super Addictive Snake Game for Linux Terminal.md diff --git a/sources/tech/20220819 sssnake – A Super Addictive Snake Game for Linux Terminal.md b/sources/tech/20220819 sssnake – A Super Addictive Snake Game for Linux Terminal.md new file mode 100644 index 0000000000..65ffa3a49d --- /dev/null +++ b/sources/tech/20220819 sssnake – A Super Addictive Snake Game for Linux Terminal.md @@ -0,0 +1,117 @@ +[#]: subject: "sssnake – A Super Addictive Snake Game for Linux Terminal" +[#]: via: "https://www.debugpoint.com/sssnake-game-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +sssnake – A Super Addictive Snake Game for Linux Terminal +====== +Try out this fun sssnake game in your Linux terminal. + +Spending too much time on Linux, in general can be counter-productive. Our brain is not designed to work continuously. That’s why you need some activities to free up your mind. Some take walks, have coffee breaks, and go for a drive. But for some who can’t leave the desktop – there are very few choices to relax. + +Here’s a classic snake game which only requires a terminal for you. Whil;e it may not be the ultimate solution, but hey, give it a try. + +### sssnake game for Linux terminal + +The sssnaks is one of variant of [classic snake game][1]. The classic snake game is famous since the Nokia 3300 device, before the smartphone revolution. + +This game requires the ncurses-devel package for compilation from Git. + +So, fire up a terminal and run the following command to install the ncurses. + +* Ubuntu Linux and other similar distros: + +``` +sudo apt install git libncurses-dev +``` + +* For Fedora and related distros: + +``` +sudo dnf install git ncurses-devel +``` + +* Arch folks, use this: + +``` +sudo pacman -S ncurses +``` + +After installation, clone the [official Git repo][2] and compile. + +``` +git clone https://github.com/AngelJumbo/sssnake.gitcd sssnakemakesudo make install +``` + +![Installing sssnake game in Linux (Fedora)][3] + +That’s it. It’s now time to play the game. + +### Playing the sssnake game in Linux + +Since it’s a terminal-based game, run the below command to verify whether it got installed. It outputs the help and instructions (if you want to read them). + +``` +sssnake -h +``` + +Alright, its time to play. + +Run the following to start the game normally. You can steer the snake head with keys – WASD or HJKL from the keyboard. + +sssnake + +* You can use the option `-a` for autoplay mode. It can play itself, and you can watch it. +* Use the option `-S` for set it as screensaver. +* Control the speed using `-s` and followed by number for speed. +* And add random blocks for difficult with option `-j`. + +![sssnake game in terminal in Fedora Linux][4] + +Ready? + +Here are some commands for you to try. + +* Use this for standard speed. + +``` +sssnake -s 13 +``` + +* The following command gives you some blocks to avoid. + +``` +sssnake -a -s 13 -j 5 +``` + +* And finally, run this and see the computer plays for you. + +``` +sssnake -a -s 13 -j 5 +``` + +* You can combine above commands as per your comfort and difficulty level. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/sssnake-game-linux/ + +作者:[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/tag/snake-game +[2]: https://github.com/AngelJumbo/sssnake +[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/Installing-sssnake-game-in-Linux-Fedora.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/sssnake-game-in-terminal-in-Fedora-Linux-1.jpg From 9df52b73885012aff0b0eb880a13ec3eece1ef1b Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 08:35:13 +0800 Subject: [PATCH 0814/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220818=20The=20Functions=20in=20the=20R=20Stats=20?= =?UTF-8?q?Package.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...18 The Functions in the R Stats Package.md | 284 ++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 sources/tech/20220818 The Functions in the R Stats Package.md diff --git a/sources/tech/20220818 The Functions in the R Stats Package.md b/sources/tech/20220818 The Functions in the R Stats Package.md new file mode 100644 index 0000000000..222e32135b --- /dev/null +++ b/sources/tech/20220818 The Functions in the R Stats Package.md @@ -0,0 +1,284 @@ +[#]: subject: "The Functions in the R Stats Package" +[#]: via: "https://www.opensourceforu.com/2022/08/the-functions-in-the-r-stats-package/" +[#]: author: "Shakthi Kannan https://www.opensourceforu.com/author/shakthi-kannan/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Functions in the R Stats Package +====== +We have learnt the basics of the R programming language, its syntax and semantics, and are now ready to delve into the statistics domain using R. In this eleventh article in the R series, we will learn to use the statistics functions available in the R stats package. + +As we have done in the earlier parts of this series, we are going to use the R version 4.1.2 installed on Parabola GNU/Linux-libre (x86-64) for the code snippets. + +``` +$ R --version +R version 4.1.2 (2021-11-01) -- “Bird Hippie” +Copyright (C) 2021 The R Foundation for Statistical Computing +Platform: x86_64-pc-linux-gnu (64-bit) + +R is free software and comes with ABSOLUTELY NO WARRANTY. +You are welcome to redistribute it under the terms of the +GNU General Public License versions 2 or 3. +For more information about these matters see https://www.gnu.org/licenses/ +``` + +### Mean + +The R function for calculating the arithmetic mean is mean. It accepts an R object ‘x’ as an argument, and a ‘trim’ option to trim any fractions before computing the mean value. The ‘na.rm’ logical argument can be used to ignore any NA values. Its syntax is as follows: + +``` +mean(x, trim = 0, na.rm = FALSE, ...) +``` + +The function supports numerical and logical values, as well as date and time intervals. A few examples for the mean function are given below: + +``` +> mean(c(1, 2, 3)) +2 + +> mean(c(1:5, 10, 20)) +6.428571 + +> mean(c(FALSE, TRUE, FALSE)) +0.3333333 + +> mean(c(TRUE, TRUE, TRUE)) +1 +``` + +Consider the ‘Bank Marketing Data Set’ for a Portuguese banking institution that is available from the UCI Machine Learning Repository available at *https://archive.ics.uci.edu/ml/datasets/Bank+Marketing*. The data can be used for public research. There are four data sets available, and we will use the read.*csv()* function to import the data from a ‘bank*.csv*’ file. + +``` +> bank <- read.csv(file=”bank.csv”, sep=”;”) + +> bank[1:3,] + age job marital education default balance housing loan contact day +1 30 unemployed married primary no 1787 no no cellular 19 +2 33 services married secondary no 4789 yes yes cellular 11 +3 35 management single tertiary no 1350 yes no cellular 16 + month duration campaign pdays previous poutcome y +1 oct 79 1 -1 0 unknown no +2 may 220 1 339 4 failure no +3 apr 185 1 330 1 failure no +``` + +We can find the mean age from the bank data as follows: + +``` +> mean(bank$age) +41.1701 +``` + +### Median + +The *median* function in the R stats package computes the sample median. It accepts a numeric vector ‘x’, and a logical value ‘na.rm’ to indicate if it should discard ‘NA’ values before computing the median. Its syntax is as follows: + +``` +median(x, na.rm = FALSE, ...) +``` + +A couple of examples are given below: + +``` +> median(3:5) +4 +> median(c(3:5, 50, 150)) +[1] 5 +``` + +We can now find the median age from the bank data set as follows: + +``` +> median(bank$age) +39 +``` + +### Pair + +The*pair* function can be used to combine two vectors. It accepts two arguments, and vectors ‘x’ and ‘y’. Both the vectors should have the same length. The syntax is as follows: + +``` +Pair(x, y) +``` + +The function returns a two column matrix of class ‘Pair’. An example is given below: + +``` +> Pair(c(1,2,3), c(4,5,6)) + x y +[1,] 1 4 +[2,] 2 5 +[3,] 3 6 +attr(,”class”) +[1] “Pair” +``` + +The function is used for paired tests such as *t.test* and *wilcox.test*. + +### dist + +The *dist* function is used to calculate the distance matrix for the rows in a data matrix, and accepts the following arguments: + +| Argument | Description | +| :- | :- | +| x | A numeric matrix | +| method | The distance measure to be used | +| diag | Prints diagonal of distance matrix if TRUE | +| upper | Prints upper triangle of distance matrix if TRUE | +| p | Power of the Minkowski distance | + +The distance measurement methods supported are: ‘euclidean’, ‘maximum’, ‘manhattan’, ‘canberra’, ‘binary’ and ‘minkowski’. The distance measurement for the age data set using the Euclidean distance is given below: + +``` +> dist(bank$age, method=”euclidean”, diag=FALSE, upper=FALSE, p=2) + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 +2 3 +3 5 2 +4 0 3 5 +5 29 26 24 29 +6 5 2 0 5 24 +7 6 3 1 6 23 1 +8 9 6 4 9 20 4 3 +9 11 8 6 11 18 6 5 2 +10 13 10 8 13 16 8 7 4 2 +11 9 6 4 9 20 4 3 0 2 4 +12 13 10 8 13 16 8 7 4 2 0 4 +13 6 3 1 6 23 1 0 3 5 7 3 7 +14 10 13 15 10 39 15 16 19 21 23 19 23 16 +15 1 2 4 1 28 4 5 8 10 12 8 12 5 11 +16 10 7 5 10 19 5 4 1 1 3 1 3 4 20 9 +17 26 23 21 26 3 21 20 17 15 13 17 13 20 36 25 16 +18 7 4 2 7 22 2 1 2 4 6 2 6 1 17 6 3 19 +19 5 8 10 5 34 10 11 14 16 18 14 18 11 5 6 15 31 12 +20 1 2 4 1 28 4 5 8 10 12 8 12 5 11 0 9 25 6 6 +21 8 5 3 8 21 3 2 1 3 5 1 5 2 18 7 2 18 1 13 7 +22 12 9 7 12 17 7 6 3 1 1 3 1 6 22 11 2 14 5 17 11 4 +23 14 11 9 14 15 9 8 5 3 1 5 1 8 24 13 4 12 7 19 13 6 2 + 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 +... +``` + +The binary distance measurement output for the same bank age data is as follows: + +``` +> dist(bank$age, method=”binary”, diag=FALSE, upper=FALSE, p=2) + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 +2 0 +3 0 0 +4 0 0 0 +5 0 0 0 0 +6 0 0 0 0 0 +7 0 0 0 0 0 0 +8 0 0 0 0 0 0 0 +9 0 0 0 0 0 0 0 0 +10 0 0 0 0 0 0 0 0 0 +11 0 0 0 0 0 0 0 0 0 0 +12 0 0 0 0 0 0 0 0 0 0 0 +13 0 0 0 0 0 0 0 0 0 0 0 0 +14 0 0 0 0 0 0 0 0 0 0 0 0 0 +15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 +``` + +### Quantile + +The quantiles can be generated for a numeric vector ‘x’ along with their given probabilities using the quantile function. The ‘NA’ and ‘NaN’ values are not allowed in the vector, unless ‘na.rm’ is set to TRUE. The probability of 0 is for the lowest observation and 1 for the highest. Its syntax is as follows: + +``` +quantile(x, ...) +``` + +The quantile function accepts the following arguments: + +| Argument | Description | +| :- | :- | +| x | A numeric vector | +| probs | A vector of probabilities between 0 and 1 | +| na.rm | NA and NaN values are ignored if TRUE | +| names | If TRUE, the result has the names attribute | +| type | An integer to select any of the nine quantile algorithms | +| digits | The decimal precision to use | +| … | Additional arguments passed to or from other methods | + +The *rnorm* function can be used to generate random values for the normal distribution. It can take ‘n’ number of observations, a vector of ‘means’, and a vector ‘sd’ of standard deviations as its arguments. We can obtain the quantiles for the values produced by the ‘rnorm’ function. For example: + +``` +> quantile(x <- rnorm(100)) + 0% 25% 50% 75% 100% +-1.978171612 -0.746829079 -0.009440368 0.698271134 1.897942805 +``` + +The quantiles for bank age data with the following probabilities can be generated as follows: + +``` +> quantile(bank$age, probs = c(0.1, 0.5, 1, 2, 5, 10, 50)/100) +0.1% 0.5% 1% 2% 5% 10% 50% +20.0 22.6 24.0 25.0 27.0 29.0 39.0 +``` + +### Interquartile range + +The *IQR* function computes the interquartile range for the numeric values of a vector. Its syntax is as follows: + +``` +IQR(x, na.rm = FALSE, type = 7) +``` + +The ‘type’ argument specifies an integer to select the quantile algorithm, which is discussed in Hyndman and Fan (1996). The interquartile range for the bank age can be computed as shown below: + +``` +> IQR(bank$age, na.rm = FALSE, type=7) +16 +``` + +### Standard deviation + +The *sd* function is used to calculate the standard deviation for a set of values. It accepts a numeric vector ‘x’ and a logical value for ‘na.rm’ to remove missing values. Its syntax is as follows: + +``` +sd(x, na.rm = FALSE) +``` + +The standard deviation for a vector with length zero or 1 is ‘NA’. A couple of examples are given below: + +``` +> sd(1:10) +3.02765 + +> sd(1) +NA +``` + +We can calculate the standard deviation for the bank age column as follows: + +``` +> sd(bank$age) +10.57621 +``` + +You are encouraged to explore more functions available in the stats packages available in R. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/the-functions-in-the-r-stats-package/ + +作者:[Shakthi Kannan][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/shakthi-kannan/ +[b]: https://github.com/lkxed From 485efa1a08d00f8feeeca5ba89b687d16015a38c Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 08:36:47 +0800 Subject: [PATCH 0815/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220818=20A=20Bug=20In=20Open=20Source=20Makes=20Mi?= =?UTF-8?q?llions=20Of=20Websites=20Vulnerable=20To=20Attack.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...llions Of Websites Vulnerable To Attack.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md diff --git a/sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md b/sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md new file mode 100644 index 0000000000..45f27aaa50 --- /dev/null +++ b/sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md @@ -0,0 +1,36 @@ +[#]: subject: "A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack" +[#]: via: "https://www.opensourceforu.com/2022/08/a-bug-in-open-source-makes-millions-of-websites-vulnerable-to-attack/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack +====== +Experts have cautioned that hundreds of thousands of websites, including many utilising the.gov name, could suffer data loss. Git, an open source development platform, has a weakness that, if left unfixed, gives threat actors access to the kingdom’s secrets, according to cybersecurity specialists from Defense.com. + +It appears that there are several.git folders that ought to be hidden but are frequently not. Although a major problem, the researchers claim that Git users’ disregard for recommended practises is more to blame. A threat actor may locate these folders and download their contents with the aid of a custom Google dork. + +These folders’ files typically store the full history of the codebase, past code changes, comments, security keys, sensitive remote paths containing secrets, and plain-text password files. In addition to the apparent risk of revealing passwords and sensitive information, there is a hidden risk that hackers may analyse the code and discover more vulnerabilities that they will likely not be correcting but rather exploiting. + +Additionally, these folders might have API keys and database login information, providing threat actors even more access to private user information. According to Defense.com, 332,000 websites in total, including 2,500 on the.gov domain, were identified as potentially susceptible. + +“Open source(opens in new tab) technology always has the potential for security flaws, being rooted in publicly accessible code. However, this level of vulnerability is not acceptable,” commented Oliver Pinson-Roxburgh, CEO of Defense.com. “Organizations, including the UK government, must ensure they monitor their systems and take immediate steps to remediate risk.” + +According to Pinson-Roxburgh, Git is a very well-liked open source version control system with more than 80 million active users, and this kind of vulnerability on such a well-liked platform can have “severe ramifications” for affected organisations. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/a-bug-in-open-source-makes-millions-of-websites-vulnerable-to-attack/ + +作者:[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 From d2ab9afd3f797959d497001f6433e5d2fdaa5a54 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 08:38:23 +0800 Subject: [PATCH 0816/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220818=20Google=20Surpasses=20Microsoft=20In=20Ter?= =?UTF-8?q?ms=20Of=20Open=20Source=20Contributors,=20Says=20A=20Study.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Open Source Contributors, Says A Study.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md diff --git a/sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md b/sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md new file mode 100644 index 0000000000..b505e03ff0 --- /dev/null +++ b/sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md @@ -0,0 +1,36 @@ +[#]: subject: "Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study" +[#]: via: "https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study +====== +According to a new report by Aiven, Google has upped its commitments to open source software and surpassed Microsoft in terms of active contributors. According to Aiven, Google currently has more active contributors than Microsoft thanks to a 20 percent increase in year-over-year monthly commits to the open source code repository GitHub. Google had 5,421 active contributors in July compared to Microsoft’s 5,268 active contributors, according to data from the Open Source Contributor Index (OCSI). + +Aiven co-founder and CTO Heikki Nousiainen said Google overtaking Microsoft was “particularly surprising”. + +“A factor in this has been a decline in Microsoft’s year-on-year commits to open source projects,” Nousiainen said. “However, Microsoft commitment to developer freedom and innovation is consistent, with the company being a major player in open source, and even purchasing GitHub in 2018.” + +According to a new report by Aiven, Google has upped its commitments to open source software and surpassed Microsoft in terms of active contributors. According to Aiven, Google currently has more active contributors than Microsoft thanks to a 20 percent increase in year-over-year monthly commits to the open source code repository GitHub. Google had 5,421 active contributors in July compared to Microsoft’s 5,268 active contributors, according to data from the Open Source Contributor Index (OCSI). + +Aiven pointed out that Amazon has started to put more of an emphasis on open-source initiatives, as evidenced by its support for OpenSearch, an ElasticSearch fork, and an increase in the number of projects on GitHub. Nousiainen argued that Amazon’s support for OpenSearch and ElasticSearch represented a “significant change of direction for the firm” and a desire to take the helm of significant open source projects. According to Aiven, these tech giants are quickly expanding their use of open source software. According to the data, there are now 300 percent more active GitHub contributors from Amazon, Microsoft, and Google than there were six years ago. + +“The overall message of the research is positive,” Nousiainen said. “There’s a huge amount of innovation continuing to happen in the open-source community and the results benefit us all. The hyperscalers are setting an example for others to follow.” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/ + +作者:[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 From 3ac73c0660f62b23dc1e60b3bc9c51df58cc40dd Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 08:39:46 +0800 Subject: [PATCH 0817/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220819=205=20Ways=20To=20Prevent=20Open=20Source?= =?UTF-8?q?=20Licensing=20Violations.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...revent Open Source Licensing Violations.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 sources/tech/20220819 5 Ways To Prevent Open Source Licensing Violations.md diff --git a/sources/tech/20220819 5 Ways To Prevent Open Source Licensing Violations.md b/sources/tech/20220819 5 Ways To Prevent Open Source Licensing Violations.md new file mode 100644 index 0000000000..fccc502b7a --- /dev/null +++ b/sources/tech/20220819 5 Ways To Prevent Open Source Licensing Violations.md @@ -0,0 +1,46 @@ +[#]: subject: "5 Ways To Prevent Open Source Licensing Violations" +[#]: via: "https://www.opensourceforu.com/2022/08/5-ways-to-prevent-open-source-licensing-violations/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Ways To Prevent Open Source Licensing Violations +====== +Developers can save time and avoid having to reinvent the wheel by integrating open source software into their codebases. However, it also carries a significant danger of infringement on licences. You must adhere to whatever of the many open source licences that apply to reused open source code. If you don’t, you (or the company you work for) run the danger of being sued for breaking the terms of the open source licences. Even if these lawsuits are not widespread, they do occur. In fact, given that many open source projects are now run by businesses keen to protect their investment in open source communities, they may occur more frequently in the future. + +1. Become familiar with open source licencing + +Understanding open source licences is the single most crucial step in preventing concerns with open source licencing infringement. It’s simple to think that all open source licences impose the same conditions or that they all essentially call for the continued availability of the source code. In fact, there are dozens upon dozens of different open source licences, and they all have quite different terms. It’s a grave error to believe that simply because you get code from an open source project, you can use it whatever you like as long as you maintain the source code accessible. One typical — yet frequently missed — condition of several open source licences can be the necessity to provide credit to the original authors. + +1. Record Your Use of Open Source + +Creating a standardised method for documenting when you use open source code is a second excellent practise. Importing a module or pasting code from GitHub is simple enough. But if you don’t keep track of where that code comes from or under what licence, you can forget how and where you’re integrating open source into your codebase. Additionally, it becomes more difficult to demonstrate that you complied with the licencing conditions in effect when you borrowed the code, which could be problematic if the open source licence in force changes. Consider adding a page to your documentation wiki (if you have one) that lists the open source code you used to avoid this problem. Whenever you include open source components or dependencies, you should at the very least add comments inside your own source code. + +1. Steer clear of unauthorised open source components + +There are occasions when you may stumble across a hidden GitHub repository or other source code hosting location that has code you wish to use but doesn’t mention any licence guidelines. You could be tempted to believe that the creators of the code want it to be open source and that you can use it whatever you like. But that’s a perilous supposition. It’s possible that the developers will subsequently set specific licence conditions on the code and require you to abide by them, which could result in claims of licencing infringement in the future. Avoid using obscure code that lacks clear licencing restrictions unless you have a very solid reason to do so. + +1. Create Open Source Code of Your Own + +Making your own software totally open source is one method to reduce some of the risks associated with open source licencing. This implies that you’ll automatically adhere to any open source licencing conditions that call for the preservation of derivative source code. However, keep in mind that merely opening up your own code doesn’t ensure complete licencing compliance. You’ll still need to put in some effort to make sure you abide by the rules of each licence because the licences that apply to the code you borrowed may not be the same as the open source licence you select. However, you won’t have to worry about any clauses pertaining to source code sharing. + +1. Detect Open Source Components Automatically + +Although it’s great practise to manually track where and how you utilise open source inside your codebase, you can lower the likelihood of mistakes by employing software that identifies open source components and dependencies automatically. Here, we should think about two different kinds of tools. One of these is Source Composition Analysis, or SCA, software that automatically scans source code and identifies elements that were taken from trusted outside sources. The other is software supply chain management solutions, which support finding and monitoring any open source dependencies present in your application stack in addition to other things. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/5-ways-to-prevent-open-source-licensing-violations/ + +作者:[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 From 3f4f821d5c5c5966c23b21f6176b1b7a3b8c580b Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 11:29:31 +0800 Subject: [PATCH 0818/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220818=20Open=20source=20runs=20on=20non-code=20co?= =?UTF-8?q?ntributions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n source runs on non-code contributions.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/talk/20220818 Open source runs on non-code contributions.md diff --git a/sources/talk/20220818 Open source runs on non-code contributions.md b/sources/talk/20220818 Open source runs on non-code contributions.md new file mode 100644 index 0000000000..fcc16dc1ef --- /dev/null +++ b/sources/talk/20220818 Open source runs on non-code contributions.md @@ -0,0 +1,90 @@ +[#]: subject: "Open source runs on non-code contributions" +[#]: via: "https://opensource.com/article/22/8/non-code-contribution-powers-open-source" +[#]: author: "John E. Picozzi https://opensource.com/users/johnpicozzi" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open source runs on non-code contributions +====== +Sometimes the hardest part of becoming an open source contributor is realizing how much you have to offer. + +At this year's DrupalCon North America, EPAM Solution Architect John Picozzi presented a talk about the importance of non-code contribution. He talked about how everyone can get involved and why he believes this is an important topic. This article is a text adaptation of John's talk; find a link below to a video recording of the complete presentation at DrupalCon. + +What is non-code contribution? I asked Google this question and got the following answer: "Any contribution that helps an open source project that does not involve writing code." Thanks, Google, but I already figured that out. If you asked me to dig deeper, I'd say it's about providing your time, skills, and resources to benefit a project. + +### Who is an open source contributor? + +Early on, "contribution" implied writing code. Originally, Drupal's model was "Built by developers, for developers." Over the years, however, the Drupal community has shifted away from that mindset. Our community has learned to value non-code contributions just as much as code: Any contribution is contribution. + +Open source is built in meetups, camps, and cons; it's built-in and by the community. In fact, most of the contributions at those events have very little to do with coding. To have those events, you need attendees, speakers, trainers, and organizers. Don't get me wrong: Of course, open source communities still need people who write code, but that's not the only thing they need. If you participate in the community and share ideas, ask questions, or provide help—congratulations, you're already contributing! + +Is contributor a self-designation ("I'm a contributor") or a community designation ("We say you're a contributor")? It's safe to say that everyone is a contributor: conference attendees, designers who create UI and module logos, marketing folks who help market modules or events, and many more. Don't wait for someone else to give you that designation. You can get involved and feel confident telling others you're a contributor. + +There are many ways to motivate someone (or yourself) to contribute. Money is not always the top motivator. However, sometimes contribution can be paid work. Many people contribute simply because they want to give back to the community. + +Everyone would probably give a different answer from their peers when asked why they contribute, but here are some of the most common responses: + +* It makes you feel good +* Building and improving skills +* Career development +* Making connections/networking + +The list is endless and as varied as the contributors themselves. Each contributor has their own reasons, and there are no right or wrong answers. + +![Reasons to contribute to open source][2] + +Image by: (John Picozzi, CC BY-SA 4.0) + +### Why non-code contribution is important to open source + +Non-code contribution is as valuable to the health of a project as writing code. It helps to get more people with a wide variety of skills involved in the community. Everyone has something to offer and a unique skill set to share. + +There are non-code requirements for all projects, and not everyone is a developer or coder. Moreover, different points of view need to be represented. For example a marketing person will likely have different experiences and perspectives than a developer. Every effort moves open source forward in some way—that's why non-code contribution is essential. + +#### Common challenges + +This definition of contribution may make it sound very simple: Just share your knowledge, express your thoughts, and help the community. However, contributors face several challenges. One of the most common is imposter syndrome. Less experienced contributors may worry that their contribution isn't valuable or helpful. You can combat that feeling by focusing on your specific skills and passions. For example, if you have event organizing experience, you can lean into that and focus on organizing and helping with those activities. + +To combat these negative thoughts, make contributing a positive experience. Work/life/contribution balance is important. Contribution should be enjoyable, not just another job. If you can, implement contribution into your work. Many employers encourage and benefit from your contribution, and it's possible to build a career based on contribution. + +Don't burn out and contribute nonstop during nights and weekends. Just add 30 minutes to the start or end of your day, or incorporate contribution into your regular workday if possible. + +### How to make your first non-code contribution + +At this point in the article, I hope you're thinking, "OK, I'm ready. What do I do?" How do you get involved? Just do it! You only need to get started: For example, to start contributing in the Drupal community, ask in [the issue queue][3] or [Drupal chat][4] or reach out to camp organizers for recommendations. A whole community is waiting to support you. + +![A slide depicting many Drupal community project logos, including regional Drupal meetups, Drupal coffee, Drupal talent and education. The slide is filled with a variety to indicate the large number and wide range of opportunities to participate in community projects.][5] + +Image by: (John Picozzi, CC BY-SA 4.0) + +Remember to follow your skills and interests. You have them, so use them to inspire your contributions. Your interests may differ from your skills: You could decide to contribute to something you have little experience with but always wanted to know more about. Simply talk to people, share knowledge, ask questions, go to a camp or a meetup, and contribute. + +I want to close with a quote by Margaret Mead (an American anthropologist) that perfectly describes open source contribution to me: "Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has." Dr. Mead doesn't say "a small group of code writers or developers." She says a thoughtful, committed group of citizens—citizens with great passion and many different skills. That's what powers open source, and that's what powers Drupal. + +Watch the talk below or [on YouTube][6]. + +![YouTube video player][7] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/non-code-contribution-powers-open-source + +作者:[John E. Picozzi][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/johnpicozzi +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/OSDC_dandelion_520x292.png +[2]: https://opensource.com/sites/default/files/2022-08/non-code-contribution-open-source.jpeg +[3]: https://www.drupal.org/project/issues/drupal?categories=All +[4]: https://www.drupal.org/community/contributor-guide/reference-information/talk/tools/slack +[5]: https://opensource.com/sites/default/files/2022-08/Drupal%20contributor.png +[6]: https://www.youtube.com/watch?v=NwNqfpISMPM +[7]: https://youtu.be/NwNqfpISMPM From 485691f990c252ff346659cd5aea2617a9018a61 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 15:02:37 +0800 Subject: [PATCH 0819/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220819=205=20note-taking=20apps=20for=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220819 5 note-taking apps for Linux.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/tech/20220819 5 note-taking apps for Linux.md diff --git a/sources/tech/20220819 5 note-taking apps for Linux.md b/sources/tech/20220819 5 note-taking apps for Linux.md new file mode 100644 index 0000000000..bd3244b93c --- /dev/null +++ b/sources/tech/20220819 5 note-taking apps for Linux.md @@ -0,0 +1,89 @@ +[#]: subject: "5 note-taking apps for Linux" +[#]: via: "https://opensource.com/article/22/8/note-taking-apps-linux" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 note-taking apps for Linux +====== +Use these open source tools for jotting down notes. + +![How to create outlines in Linux with TreeLine][1] + +Image by: Startup Stock Photos. Creative Commons CC0 license. + +Notes are part of any writer's life. Most of my articles begin in a note-taking application and that’s usually [Joplin][2] for me. There are a large number of note-taking apps for Linux and you may use something other than my favorite. A recent blog article reminded me of a half dozen of them, so I assembled a list of my favorites. + +### Joplin + +![Joplin][3] + +[Joplin][4] is available on Linux, Windows, macOS, Android, and iOS. I like Joplin because it automatically saves whatever you add to it. Notes can be uploaded to NextCloud, OwnCloud, Joplin Cloud, and even closed source services like OneDrive, Dropbox, or any WebDav applications. Joplin supports encryption. + +It’s easy to export notes in a variety of formats, too. It comes with eight different themes that allow you to tailor its look. + +Joplin has an MIT license. Initially released in 2017 Joplin is under continuous development with a large community of contributors. + +### Xournal + +![Xournal][5] + +[Xournal][6] is available on Linux, Windows, macOS, and Android. Its aim is to let you create notes containing nearly any media type you can imagine. It supports pressure-sensitive stylus and drawing tablets so you create [sketchnotes][7]. You can type into it, draw simple vectors, import graphics, record audio, and more. You can also use Xournal to annotate PDFs, which is how I have used it. It is released with a GPLv2 license, and you can export notes in a variety of formats. + +### Trillium + +![Trillium][8] + +[Trillium][9] is a hierarchical note-taking application with a focus on knowledge building bases. It features rich WYSIWYG editing with tables, images, and markdown. It has support for editing notes in source code with syntax highlighting. It's released under the Gnu Affero License. + +Trilium is available as a desktop application for Linux and Windows, as well as a web application that you can host on your own Linux server. + +### Gnote + +![Gnote][10] + +[Gnote][11] is an open source note taking application written for Linux. It was cloned by Hubert Figuière from a project called [Tomboy][12]. Like Tomboy, Gnote uses a wiki-like linking system to allow you to link notes together. + +GNote's source code is available on [GitLab][13]. The software is licensed with GPLv3. + +### CherryTree + +![CherryTree][14] + +CherryTree supports hierarchical note-taking. In CherryTree everything is a node. Nodes can be plain text, rich text, syntax highlighting for a variety of programming languages. Each node can have child nodes each with a different format. + +CherryTree features rich text and syntax highlighting, and can store data in a single XML or [SQLite][15] file. CherryTree can import from a variety of formats including Markdown, HTML, plain text, Gnote, Tomboy, and others. It can export files to PDF, HTML, plain text and its own CherryTree format. + +CherryTree is licensed under the GPLv3, and can be installed on Linux, Windows, and macOS. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/note-taking-apps-linux + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/write-hand_0.jpg +[2]: https://opensource.com/article/21/1/notes-joplin +[3]: https://opensource.com/sites/default/files/2022-08/joplin.png +[4]: https://joplinapp.org/ +[5]: https://opensource.com/sites/default/files/2022-08/xournal.png +[6]: https://xournalpp.github.io/ +[7]: https://opensource.com/article/22/6/open-source-sketchnotes +[8]: https://opensource.com/sites/default/files/2022-08/trillium.png +[9]: https://github.com/zadam/trilium +[10]: https://opensource.com/sites/default/files/2022-08/gnote.png +[11]: https://wiki.gnome.org/Apps/Gnote +[12]: https://wiki.gnome.org/Apps/Tomboy +[13]: https://gitlab.gnome.org/GNOME/gnote +[14]: https://opensource.com/sites/default/files/2022-08/cherrytree.png +[15]: https://opensource.com/article/21/2/sqlite3-cheat-sheet From 51b7680732729bcfc1a84cea89a20c688038cd32 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 15:49:53 +0800 Subject: [PATCH 0820/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220818=20Convert=20Docker=20Run=20Commands=20Into?= =?UTF-8?q?=20Docker-Compose=20Files.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Run Commands Into Docker-Compose Files.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md diff --git a/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md new file mode 100644 index 0000000000..61ef314bd9 --- /dev/null +++ b/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md @@ -0,0 +1,111 @@ +[#]: subject: "Convert Docker Run Commands Into Docker-Compose Files" +[#]: via: "https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Convert Docker Run Commands Into Docker-Compose Files +====== +Create Docker compose files from docker run commands using Composerize + +If you use Docker everyday in your official or personal systems, you should know there is an useful application called **Composerize**. In this brief guide, we will learn what is Composerize and how to use Composerize to **convert docker run commands into docker-compose files** format in Linux. + +### What Is Composerize? + +**[Docker compose][1]** is a tool for defining and running multi-container docker applications. Docker compose is just a YAML file in which we define services, networks, and volumes for a Docker application. + +Not everyone is good at writing effective docker-compose files. Some of you may find it difficult to even write a simple docker compose file. No worries! Say hello to Composerize utility, which helps you to create Docker compose files from `docker run` commands. + +Composerize is a command line as well as web-based utility to convert a `docker run` command into a docker-compose file. + +It doesn't matter whether the `docker run` command is simple, short or lengthy and complex. All you have to do is just pass thecommand to Conposerize. Composerize will instantly turn the `docker run` commands into docker-compose files! + +### Install Composerize In Linux + +Composerize is available as a web service. So you don't have to install it on your system. If you want to install it locally for any reason, read on. + +Composerize can be installed using npm. Make sure you've installed Nodejs in your system. If it is not installed, follow the link below to install Nodejs. + +* [How To Install NodeJS On Linux][2] + +After installing Nodejs, run the following command to install Composerize: + +``` +$ npm install composerize +``` + +This command will install Composerize for the current user only. + +If you want to install it globally (system-wide), run the above command with `-g` option like below. + +``` +$ npm install composerize -g +``` + +### Convert Docker Run Commands Into Docker-Compose Files With Composerize + +To convert a docker run command into docker-compose format, simply run it with Composerize like below: + +``` +$ composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer +``` + +It will generate the content in docker compose file format. + +**Sample output:** + +``` +version: '3.3' +services: + portainer: + ports: + - '9000:9000' + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + image: portainer/portainer +``` + +![Convert Docker Run Commands Into Docker-Compose Files With Composerize][3] + +Now copy the above lines in your `docker-compose.yml` file. It's that simple! + +As I stated already, you can also use the Composerize web service to convert the docker run commands into docker file format. + +Go to **[https://www.composerize.com/][4]** link and paste the `docker run` command in the box and you will get the docker-compose file instantly! + +![Turn Docker Run Commands Into Docker-compose Files Using Composerize][5] + +After converting the commands in docker-compose file, go to the location where you saved the `docker-compose.yml` file and run the following command to start the Docker application: + +``` +$ docker-compose up +``` + +Composerize is one of the useful utility for Docker users. You can now safely say goodbye to sprawling docker commands. + +**Resource:** + +* [Composerize GitHub Repository][6] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/ + +作者:[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/introduction-to-docker-compose/ +[2]: https://ostechnix.com/install-node-js-linux/ +[3]: https://ostechnix.com/wp-content/uploads/2022/08/Convert-Docker-Run-Commands-Into-Docker-Compose-Files-With-Composerize.png +[4]: https://www.composerize.com/ +[5]: https://ostechnix.com/wp-content/uploads/2022/08/Turn-Docker-Run-Commands-Into-Docker-compose-Files-Using-Composerize.png +[6]: https://github.com/magicmark/composerize From b3fbb8670b5139554974e79618e00662f28fd848 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 20 Aug 2022 16:44:46 +0800 Subject: [PATCH 0821/3123] ALL @wxy https://linux.cn/article-14948-1.html --- ...mat and Repository, Sounds Interesting!.md | 101 ++++++++++++++++++ ...mat and Repository, Sounds Interesting!.md | 100 ----------------- 2 files changed, 101 insertions(+), 100 deletions(-) create mode 100644 published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md delete mode 100644 sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md diff --git a/published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md b/published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md new file mode 100644 index 0000000000..aeb4d4a4ca --- /dev/null +++ b/published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md @@ -0,0 +1,101 @@ +[#]: subject: "Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!" +[#]: via: "https://news.itsfoss.com/deepin-23/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14948-1.html" + +deepin 23 将引入新的软件包格式和存储库 +====== + +> deepin 23 将是一个有趣的升级,有几个基本的变化。 + +![deepin 23][1] + +deepin 仍然是目前最 [漂亮的 Linux 发行版][2] 之一。 + +虽然整个用户体验可能不是毫无痛点的,但它还是看起来不错的。deepin 的开发者尝试了一些引人关注的定制,以使它从人群中脱颖而出。 + +如果你是第一次了解它,你应该知道它是 [基于 Debian Linux 的有趣发行版][3] 之一。 + +随着 [deepin 20][4] 和它最近的小版本发布,他们推出了一系列不错的升级。现在,看起来deepin 23 将是下一个主要的升级。 + +### deepin 23 预览版中的新内容 + +![deepin 23][5] + +deepin 23 预览版已经可以进行测试。与之前的版本不同,deepin 23 包括一些基本的升级,在多个层面上影响用户体验。 + +主要的亮点包括: + +* 一个新的软件包格式。 +* 一个新的系统更新的构想。 +* 一个新的资源库。 +* 新的墙纸。 +* [Linux 内核 5.18][6]。 + +### 新的软件包格式:玲珑 + +![][7] + +**玲珑** 是 deepin 开发的新软件包格式。 + +它的目的是解决 Linux 下传统软件包格式的复杂依赖性所造成的各种兼容性问题。此外,通过支持沙盒以及增量更新和隐私保护来减少安全风险。 + +截至目前,你可以在其 [玲珑商店][8] 上找到这些软件包。 + +我们需要另一种软件包格式吗?我不这么认为。 + +有了 Flatpak 和 Snap 的存在,它听起来并不像以前没有的新东西。 + +对我来说,看起来 deepin 只是想拥有自己的软件包格式作为其产品的一部分。 + +### 原子式更新 + +系统更新将被视为原子操作,也就是说,当软件包被成功安装后,更新就完成了。如果安装失败,系统可以恢复到以前的版本,没有任何变化。 + +因此,你在升级后可以得到系统回滚的支持,并可以避免部分升级的困难。 + +### 独立的上游 + +虽然它是基于 Debian 的,但 deepin 的目标是为核心软件包和一些可选组件建立一个独立的仓库。 + +对于预览版,开发者提到,他们打算从上游如 Debian 和 Arch Linux 中学习,以改进他们的仓库。 + +### 新的墙纸 + +![deepin 23][9] + +像其他主要版本一样,deepin 23 增加了一些令人耳目一新的壁纸和新的默认壁纸。 + +### 下载 deepin 23 预览 + +请注意,deepin 23稳定版还没有上市。因此,如果你想在你的测试系统上进行实验,并体验一下,请尝试预览版。 + +你可以在 [官方公告][10] 中找到 ISO 文件的下载链接。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/deepin-23/ + +作者:[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/content/images/size/w2000/wordpress/2022/08/deepin-23-release.jpg +[2]: https://itsfoss.com/beautiful-linux-distributions/ +[3]: https://itsfoss.com/debian-based-distros/ +[4]: https://itsfoss.com/deepin-20-review/ +[5]: https://news.itsfoss.com/content/images/wordpress/2022/08/deepin-23-preview-screenshot.jpg +[6]: https://news.itsfoss.com/linux-kernel-5-18-release/ +[7]: https://news.itsfoss.com/content/images/wordpress/2022/08/deepin-23-linglong.png +[8]: https://store.linglong.dev/ +[9]: https://news.itsfoss.com/content/images/wordpress/2022/08/deepin-23-wallpapers-preview.jpg +[10]: https://www.deepin.org/en/linux-system-distribution-deepin-23-preview-released/ diff --git a/sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md b/sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md deleted file mode 100644 index c114a33c31..0000000000 --- a/sources/news/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!" -[#]: via: "https://news.itsfoss.com/deepin-23/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting! -====== -deepin 23 will be an interesting upgrade with a couple of fundamental changes. What do you think? - -![deepin 23][1] - -Deepin remains one of the most [beautiful Linux distributions][2] out there. - -While the entire user experience may not be hassle-free, it certainly looks good. The developers of deepin have experimented with intriguing customizations that make it stand out from the crowd. - -If you are learning about it for the first time, you should know that it is one of the [interesting distributions based on Debian Linux][3]. - -With [deepin 20][4] and its recent point releases, we had a nice list of upgrades. Now, it looks like **deepin 23** will be the next major upgrade. - -### Deepin 23 Preview: What’s New? - -![deepin 23][5] - -Deepin 23 preview has been made available for testing. Unlike its previous version, deepin 23 includes some fundamental upgrades that impact the user experience on several levels. - -The key highlights include: - -* A new package format. -* A new idea for system updates. -* A new repository. -* New wallpapers. -* [Linux Kernel 5.18][6]. - -### New Package Format: Linglong - -![][7] - -**Linglong** is the new package format developed by deepin. - -It aims at solving various compatibility problems caused by complex dependencies of traditional package formats under Linux. Furthermore, reducing security risks by supporting sandboxing along with incremental updates and privacy protection. - -You can find the packages on its [Linglong store][8] as of now. - -Do we need another package format? I don’t think so. - -With Flatpak and Snap around, it does not sound like anything that’s never been done before. - -To me, it looks like deepin simply wants to have its own package format as part of its offerings. - -### Atomic Updates - -The system updates will be treated as atomic operations, i.e., that when packages are successfully installed, the update completes. If the installation fails, the system can be reverted to the previous version with no changes. - -So, you get system rollback support after an upgrade and can avoid difficulties with partial upgrades. - -### Independent Upstream - -While it is based on Debian, deepin aims to have a separate repository for the core packages and some optional components. - -For the preview release, the developers mention that they intend to learn from the upstream like Debian and Arch Linux to improve their repository. - -### New Wallpapers - -![deepin 23][9] - -Like every other major release, deepin 23 adds some refreshing wallpapers and new default wallpaper. - -### Download Deepin 23 Preview - -Note that Deepin 23 stable is not yet available. So, if you want to experiment on your test system, and experience what’s in store for you, try the preview version. - -You can find the download links to the ISO file in the [official announcement post][10]. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/deepin-23/ - -作者:[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/08/deepin-23-release.jpg -[2]: https://itsfoss.com/beautiful-linux-distributions/ -[3]: https://itsfoss.com/debian-based-distros/ -[4]: https://itsfoss.com/deepin-20-review/ -[5]: https://news.itsfoss.com/wp-content/uploads/2022/08/deepin-23-preview-screenshot.jpg -[6]: https://news.itsfoss.com/linux-kernel-5-18-release/ -[7]: https://news.itsfoss.com/wp-content/uploads/2022/08/deepin-23-linglong.png -[8]: https://store.linglong.dev/ -[9]: https://news.itsfoss.com/wp-content/uploads/2022/08/deepin-23-wallpapers-preview.jpg -[10]: https://www.deepin.org/en/linux-system-distribution-deepin-23-preview-released/ From 46b499230327f65aec86eb175a89bc7accda6f1a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 20 Aug 2022 17:21:31 +0800 Subject: [PATCH 0822/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lzx916 感谢您,完成了第一篇翻译贡献! --- ...ent Supply Chain Attacks On Open Source.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md index ebe04e7ca7..d3042b6fae 100644 --- a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ b/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -3,23 +3,26 @@ [#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" [#]: collector: "lkxed" [#]: translator: "lzx916" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -为防止对开源供应链的攻击,Github 在行动 +为防止对开源供应链的攻击,GitHub 在行动 ====== -在 2020 年「SolarWinds」网络间谍活动之后,一系列进一步的软件供应链漏洞突显了确保软件监管链安全的必要性。在这场间谍活动中,俄罗斯黑客渗透到一个广泛使用的IT管理平台,并将受污染的升级产品悄悄带入其中。由于开源项目从根本上来说是分散的,而且经常是临时的活动,因此在这种背景下,这个问题尤其紧迫。GitHub 著名的 npm 注册表中广泛使用的 JavaScript 软件包遭到一系列令人不安的黑客攻击后,该公司本周公布了一项战略,以提供更好的开源安全保护。 + +![](https://www.opensourceforu.com/wp-content/uploads/2022/08/github-cover-1-1068x601.jpg) + +在 2020 年 SolarWinds 网络间谍活动之后,一系列进一步的软件供应链漏洞凸显了确保软件监管链安全的必要性。在这场间谍活动中,俄罗斯黑客渗透到一个广泛使用的 IT 管理平台,并将受污染的升级程序悄悄带入其中。由于开源项目从根本上来说是分散的,而且经常是临时的活动,因此在这种背景下,这个问题尤其紧迫。GitHub 著名的 npm 注册中心广泛使用的 JavaScript 软件包遭到一系列令人不安的黑客攻击后,该公司前不久公布了一项战略,以提供更好的开源安全保护。 代码签名平台 Sigstore 将由微软旗下的 GitHub 支持,以用于 npm 软件包。代码签名类似于数字蜡封。为了让开源维护者更加容易地确认他们编写的代码是否与全球范围内人们实际下载的软件包中最终包含的代码相同,跨行业协作促成了该工具的创建。 -GitHub 并不是开源生态系统的唯一组成部分,但 Sigstore 的联合开发者、Chainguard 的首席执行官 Dan Lorenc 指出,它是社区的一个重要枢纽,因为绝大多数项目都在这里存储和共享源代码。然而,当开发人员真正想下载开源软件或工具时,他们通常会访问包管理。 +GitHub 并不是开源生态系统的唯一组成部分,但 Sigstore 的联合开发者、Chainguard 的首席执行官 Dan Lorenc 指出,它是社区的一个重要枢纽,因为绝大多数项目都在这里存储和共享源代码。然而,当开发人员真正想下载开源软件或工具时,他们通常会通过软件包管理进行。 -通过让包管理器可以使用 Sigstore,开发人员可以在 Sigstore 工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc 说,许多人惊讶地发现,这些完整性检查还没有实施,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于 2021 年 5 月发布了一项行政命令,主要处理软件供应链安全问题。 +通过让包管理器可以使用 Sigstore,开发人员可以在 Sigstore 工具的帮助下,在软件通过供应链时处理加密检查和要求。这增加了产品流通过程中每个阶段的透明度。Lorenc 说,许多人在得知这些完整性检查尚未实施时感到震惊,开源生态系统中相当大的一部分长期以来一直依赖于盲目的信心。拜登政府于 2021 年 5 月发布了一项行政命令,主要涉及软件供应链安全问题。 -Linux 基金会、Google、Red Hat、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境 Kubernetes 现在也支持它。 +Linux 基金会、谷歌、红帽、Purdue Universit 和 Chainguard 都对 Sigstore 的开发做出了贡献。现在有了使用 Sigstore 为 Python 包发行版签名的官方软件,而且开发软件的开源环境 Kubernetes 现在也支持它。 -Sigstore 依靠免费和简单易用来鼓励采用,就像主要行业推动 HTTPS 网络加密一样,这在很大程度上是由非营利互联网安全研究集团(Internet Security Research Group)的 Let’s Encrypt 等工具实现的。据 Github 称,该项目会首先提出 Sigstore 将如何在 npm 中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而实现对供应链的攻击。 +Sigstore 依靠免费和简单易用来鼓励采用,就像主要行业推动 HTTPS 网络加密一样,这在很大程度上是由非营利组织互联网安全研究组Internet Security Research Group的 Let's Encrypt 等工具实现的。据 GitHub 称,该项目会首先提出 Sigstore 将如何在 npm 中实现的建议,并在开放评论期征求社区人员对该工具的精确部署策略的意见。然而,最终的目标是让这样的代码签名能够被尽可能多的开源项目使用,从而让对供应链的攻击更加困难。 GitHub 的 Hutchings 说:“我们希望看到这样一个世界,最终所有的软件工件都被签名并链接回源代码,这就是为什么构建像 Sigstore 这样的开放技术栈是如此重要,其他打包存储库也可以采用这种技术。” @@ -30,7 +33,7 @@ via: https://www.opensourceforu.com/2022/08/github-takes-action-to-prevent-suppl 作者:[Laveesh Kocher][a] 选题:[lkxed][b] 译者:[lzx916](https://github.com/lzx916) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8db1d4d87500f50869e1bab09c72a454efb9a9fd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 20 Aug 2022 17:22:21 +0800 Subject: [PATCH 0823/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lzx916 本文首发地址:https://linux.cn/article-14949-1.html 您的 LCTT 专页:https://linux.cn/lctt/lzx916 --- ...s Action To Prevent Supply Chain Attacks On Open Source.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md (98%) diff --git a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md similarity index 98% rename from translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md rename to published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md index d3042b6fae..cfb28091b6 100644 --- a/translated/news/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md +++ b/published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "lzx916" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14949-1.html" 为防止对开源供应链的攻击,GitHub 在行动 ====== From 9e9250d00f024c8c61a6beecc6e2734eee844f55 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 21:09:29 +0800 Subject: [PATCH 0824/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220819=20Krita=205.1=20Focuses=20on=20Improved=20U?= =?UTF-8?q?sability,=20Handy=20Changes=20to=20Tools,=20and=20Much=20More!.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Handy Changes to Tools, and Much More!.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md diff --git a/sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md b/sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md new file mode 100644 index 0000000000..3a3e7539e0 --- /dev/null +++ b/sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md @@ -0,0 +1,95 @@ +[#]: subject: "Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!" +[#]: via: "https://news.itsfoss.com/krita-5-1-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More! +====== +The popular open source graphic design software Krita has a new release after eight months. + +![Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!][1] + +Just at the end of last year, we had covered an article on [Krita 5.0][2]. This was a big update that brought a lot of new features and changes. + +For those unaware, Krita is a popular open-source graphics design software up there with the likes of GIMP and Photoshop. + +Krita has just finally received a new minor update after eight long months. + +Let’s take a look at what this release brings! + +### What’s New in Krita 5.1? + +If you like videos, the Krita team has created a demonstration video (as usual) to help you get familiar with some of the major changes in the release. + +![Everything new in Krita 5.1.0][3] + +As you may have figured out from the video, this release brings a host of improvements and changes. I’ve described some major highlights of the release down below if you prefer reading. + +#### Improvements to Tools + +Users will definitely adore the all-new Enclose and Fill tool. As the name suggests, you simply need to create an enclosed shape with your cursor over an area you wish to be filled. Krita then takes care of which section(s) to fill. For instance, you can use this tool to fill three spots together instead of individually filling them. + +Another new method added is the Continous Fill. You can drag your cursor over nearby regions to be filled automatically. This also includes alternate filling, like on a chessboard where you want to fill alternate squares. + +New shortcut settings have been added to Brushes including a new GUI option to set the max brush speed. + +#### Better Usability + +Touch gestures can now be configured according to the user’s needs. + +Users can easily view the entire canvas at its physical size or just view individual pixels at a time through a revamped version of an existing button called “use aspect of pixels”. + +Moreover, HSV color options have been added as well which include a slider for the color selector and adjustment filters. + +Oh, and there’s a Dual Colour selector option added too! + +#### Refreshed Layers + +The Layers dock is now much more detailed and cleaner than usual. + +A new and convenient addition is the ability to indent sub-layers within a group. This helps differentiate layers easily. + +You can even apply cut, copy, paste, and clear operations on multiple selected layers simultaneously. + +### Other Changes + +While this wraps up the most significant changes in the release, there were numerous other ones as well. + +There were some technical changes well like the addition of YCbCr color profiles, compiling support for users with RISC-V hardware and some fixes for Windows users. + +Some other changes, improvements and bugfixes include – + +* Support for WebP and Photoshop layered Tiffs +* Improved clipboard pasting for images +* Warning if save operations fail +* Fixes for vector objects with gradient fills +* Improved switching when exporting frames and entire videos +* Implementation of anti-aliasing based on FXAA algorithm + +Although the list is quite long, you can learn more by [checking out the official release notes][4] for more information. + +### Wrapping Up + +Krita 5.1 addressed a lot of bugs and much-needed changes that arrived with the 5.0 release, not to mention some helpful additions. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/krita-5-1-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/krita-5-1-release.jpg +[2]: https://news.itsfoss.com/krita-5-0-release/ +[3]: https://youtu.be/TnvCjziCUGI +[4]: https://krita.org/en/krita-5-1-release-notes/ From 59f0fa593c9e610b98be6197a948d41d2040e0fe Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 21:11:55 +0800 Subject: [PATCH 0825/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220819=20LibreOffice=207.4=20is=20Here=20With=20We?= =?UTF-8?q?bP=20Support=20and=20Powerful=20Enhancements=20for=20MS=20Offic?= =?UTF-8?q?e=20Interoperability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ncements for MS Office Interoperability.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md diff --git a/sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md b/sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md new file mode 100644 index 0000000000..d2f951b31e --- /dev/null +++ b/sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md @@ -0,0 +1,116 @@ +[#]: subject: "LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability" +[#]: via: "https://news.itsfoss.com/libreoffice-7-4-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability +====== +LibreOffice 7.4 is an exciting release with WebP support, performance boost, and MS Office compatibility improvements. + +![LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability][1] + +LibreOffice 7.4 community edition is a major upgrade to the previous release after six months. + +With LibreOffice 7.4, The Document Foundation mentions that the development is now focused on “**interoperability**” with Microsoft's proprietary file formats. + +While this is great news for users migrating away from MS Office, the upgrade also introduces some cool features. Here, let me highlight the best parts of the release. + +### 🆕 LibreOffice 7.4: Overview + +As usual, every LibreOffice update brings in enhancements to all of its programs that include **Writer, Calc, Impress & Draw, Base, Chart, and Math**. + +![LibreOffice 7.4: New Features][2] + +Overall, the key refinements include: + +* New open-source grammar checker integration, i.e., [LanguageTool][3]. +* WebP image support. +* Performance improvements to Calc. +* Support for 16,384 columns in spreadsheets. +* Improved typographic settings in Writer. +* Master slide improvement for Impress & Draw. +* Import/Export enhancements for DOCX, PPTX, and a couple other file types. +* New macro scripting resources for power users. +* Experimental dark mode support for Windows 10/11. + +Let us explore a few things about the major additions. + +### LanguageTool Integration + +![][4] + +With LibreOffice Writer, one can use LanguageTool API for grammar checking. + +If you did not know, [LanguageTool][5] is a remarkable open-source alternative to tools like [Grammarly][6]. + +Our team uses it to proofread and edit articles as well. You can enable the LanguageTool integration under the **Language** settings. + +#### Also Read: + +![][7] + +![][8] + +### WebP Image Support + +If you recently tried saving an image from the internet, it is most likely a **WebP**file. + +It is now the predominantly used image format (developed by Google) on the internet with the best compression/quality balance. + +LibreOffice 7.4 added support for WebP image import/export. So, you can work with any image file format you want now. + +### MS Office Compatibility Improvements + +With the upgrade, several refinements for **lighting extruded custom shapes**were worked upon to make rendering more compatible with MS Office binary formats. + +When importing a DOCX/PPTX file, LibreOffice 7.4 now doesn't miss fetching the tables, images, and linked media files. Furthermore, if you had a missing embedded video file when exporting a PPTX file, that has been fixed. + +If you wanted to unlock protected change tracking of DOCX files, you should now be able to do it without any hiccups. + +### Other Refinements + +There are numerous under-the-hood changes, and feature additions that should elevate your user experience with LibreOffice programs. + +Things like new macro resources, a search field in the extension manager, and performance tuning, makes this an exciting release. + +You can read all the technical details in its [official changelog][9] and more about the release/enterprise plans on its [announcement blog post][10]. + +### 📂 Download LibreOffice 7.4.0 + +LibreOffice 7.4 is available through the [official download webpage][11]. + +You can find deb, and rpm files along with packages for Windows and macOS (Intel/ARM). + +Torrent file is also available for a smooth download experience. If you already have it installed on your system, expect an update in the next few days/weeks, depending on your Linux distribution. You can also use the Flatpak package for faster access to the latest version. + +[Download LibreOffice 7.4.0][12] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/libreoffice-7-4-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/content/images/size/w1200/2022/08/libreoffice-7-4-release.jpg +[2]: https://youtu.be/PC8M4UzqpqE +[3]: https://itsfoss.com/languagetool-review/ +[4]: https://news.itsfoss.com/content/images/2022/08/languagetool-libreoffice.jpg +[5]: https://languagetool.org/ +[6]: https://www.grammarly.com/ +[7]: https://itsfoss.com/libreoffice-tips/ +[8]: https://itsfoss.com/libreoffice-tips/ +[9]: https://wiki.documentfoundation.org/ReleaseNotes/7.4 +[10]: https://blog.documentfoundation.org/blog/2022/08/18/libreoffice-7-4-community/ +[11]: https://www.libreoffice.org/download/download/ +[12]: https://www.libreoffice.org/download/download/ From b320d613e584b2b8f070f6036f58cb235e48af06 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 21:19:22 +0800 Subject: [PATCH 0826/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220820=20What-s=20your=20favorite=20screenshot=20t?= =?UTF-8?q?ool=20on=20Linux-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...your favorite screenshot tool on Linux-.md | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 sources/tech/20220820 What-s your favorite screenshot tool on Linux-.md diff --git a/sources/tech/20220820 What-s your favorite screenshot tool on Linux-.md b/sources/tech/20220820 What-s your favorite screenshot tool on Linux-.md new file mode 100644 index 0000000000..5ae517f2d1 --- /dev/null +++ b/sources/tech/20220820 What-s your favorite screenshot tool on Linux-.md @@ -0,0 +1,163 @@ +[#]: subject: "What's your favorite screenshot tool on Linux?" +[#]: via: "https://opensource.com/article/22/8/favorite-screenshot-tool-linux" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What's your favorite screenshot tool on Linux? +====== +There are many open source screenshot tools to choose from, but which one works for you? + +![Browser of things][1] + +> What's your favorite screenshot tool? +> +>* Spectacle +>* GNOME screenshot +>* Simple Screen Recorder +>* Flameshot +>* ImageMagick +>* Scrot +>* Grim +>* I'll tell you in the comments! + +(to wxy:我们在公众号里也搞个这个投票吧!) + +As the saying goes, a picture is worth a thousand words, and while that's not always the case with terminal commands and code, it still holds true for the graphical desktop. Screenshots capture precisely what's on your screen. I love taking them to have a record of who attends meetings, so I don't have to write it down at the moment. Or to capture a bug when doing UI testing. We all take them for different reasons, though, and there are more ways to take a screenshot than you might at first think. + +I started thinking about screenshots after Jim Hall wrote an as the ways he often takes screenshots. And yet that's just the beginning, as I quickly found out when I asked Opensource.com authors how they each take screenshots. + +### Making a spectacle + +![Spectacle][2] + +I use Spectacle. It works perfectly for my simple needs. + +**[—David Both][3]** + +I use KDE. It ships with Spectacle, which seems to be responsible for taking a screenshot when I push the **PrtScr** (Print Screen) key. + +A nice feature is that the default action is to take a screenshot immediately when you press **PrtScr**, but then it brings up the Spectacle interface, so you can take more sophisticated screenshots (a rectangular area, the window under your cursor, and so on.) + +**[—Greg Pittman][4]** + +### Framing the shot + +For a long time I had wanted to capture only a small amount of the screen in a screenshot, not the whole thing, but struggled to know how. + +Since then I've installed KolourPaint. I open the full screenshot inside the program, and cut out the part I want to keep. Hope this could help others suffering the same screenshot dilemma! + +**[—Laurence Urhegyi][5]** + +I use **Shift**+**PrtSc** to capture a small amount of the screen in a screenshot. + +**[—Agil Antony][6]** + +### Emacs + +A while back I created an [Elisp function][7] to take a screenshot from Emacs. + +**[—Sachin Patil][8]** + +### Flameshot + +![Flameshot][9] + +[Flameshot][10], the one and only! Nothing is missing in this wonderful tool: doodling, arrows, adding text, a pixelate tool for blurring out sensitive information, an autoincrementing counter bubble, save, copy, the ability to open the screenshot in a selected application, and the list goes on and on. Once I installed it, I've never looked for anything else! + +A friendly hint: when installing from Flatpak, you might want to use [Flatseal][11] to grant access to your home folder, otherwise the Save dialog will feel somewhat empty. + +**[—Tomasz Waraksa][12]** + +### ImageMagick + +``` +#!/bin/bash +current=$(date +%H-%M-%S-%d-%m-%Y).png +if [[ -z "${1}" ]]; then +   import -window root "${HOME}/${current}" # All screen +else +   import "${HOME}/${current}" # Custom screenshot +fi + +notify-send "Screenshot ${current} taken successfully!" +``` + +**—Suporte Terminal Root** + +### GNOME + +![GNOME Screenshot][13] + +As a mostly GNOME Desktop user, I was happy taking screenshots with the regular **PrtSc**, **Ctrl**+**PrtSc**, or **Shift**+**PrtSc** keys. My favorite is **Shift** because it allows me to select an area of the screen. + +Recently, GNOME recently introduced an improved screenshot tool when you simply hit **PrtSc**. I haven't even used it that much yet, so I'm looking forward to trying it out thoroughly on some future articles. + +**[—Alan Formy-Duval][14]** + +As a satisfied GNOME user, I've been using the built-in screenshot tool. With the older version, I would screenshot a window with **Shift**+**PrtSc**. Now I just use **PrtSc** and select the region with the tool. I like the new one better, but if I had to go back to the old, that'd be OK too. + +**[—Chris Hermansen][15]** + +### XFCE Screenshooter + +![XFCE Screenshooter][16] + +I've been using XFCE lately, and **xfce4-screenshooter** has been doing an excellent job. Like the rest of XFCE, it's minimal but highly functional, with options to capture the entire screen, the active window, or just a region. You can even activate or deactivate whether the mouse cursor is included in the shot. + +**[—Klaatu][17]** + +### Grim and Slurp + +I have a fun little alias that I use for screenshots: + +``` +alias sshot='; grim -g "$(slurp)" screenshot-$(date +%s).png 2> /dev/null' +``` + +It lets me draw a rectangle on my screen, and it captures just that area. The command uses **grim** and **slurp**, both available in the Fedora repos. + +But this only works on Wayland. On X11, you can replace them with **maim** and **scrot**. + +**[—Mohammed Saud][18]** + +### Your screenshot tool + +What's your screenshot tool of choice? Tell us in the comments! + +Image by: (Seth Kenlon, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/favorite-screenshot-tool-linux + +作者:[AmyJune Hineline][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/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_desktop_website_checklist_metrics.png +[2]: https://opensource.com/sites/default/files/2022-08/screenshot-spectacle.webp +[3]: https://opensource.com/users/dboth +[4]: https://opensource.com/users/greg-p +[5]: https://opensource.com/users/laurence-urhegyi +[6]: https://opensource.com/users/agantony +[7]: https://gitlab.com/psachin/emacs.d/-/blob/dev/custom_functions.org +[8]: https://opensource.com/users/psachin +[9]: https://opensource.com/sites/default/files/2022-08/screenshot-flameshot.webp +[10]: https://github.com/flameshot-org/flameshot +[11]: https://flathub.org/apps/details/com.github.tchx84.Flatseal +[12]: https://opensource.com/users/tomasz +[13]: https://opensource.com/sites/default/files/2022-08/screenshot-gnome_0.webp +[14]: https://opensource.com/users/alanfdoss +[15]: https://opensource.com/users/clhermansen +[16]: https://opensource.com/sites/default/files/2022-08/screenshot-screenshooter.webp +[17]: https://opensource.com/users/klaatu +[18]: https://opensource.com/users/saud From 70a78eee0dbf0beeaebc8eaf4b79e2d703872894 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 21:21:48 +0800 Subject: [PATCH 0827/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220820=20Linux=20Mint=2021=20Review-=20The=20Best?= =?UTF-8?q?=20Distro=20Just=20Got=20a=20Little=20Better.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...he Best Distro Just Got a Little Better.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20220820 Linux Mint 21 Review- The Best Distro Just Got a Little Better.md diff --git a/sources/tech/20220820 Linux Mint 21 Review- The Best Distro Just Got a Little Better.md b/sources/tech/20220820 Linux Mint 21 Review- The Best Distro Just Got a Little Better.md new file mode 100644 index 0000000000..4c5f2dff03 --- /dev/null +++ b/sources/tech/20220820 Linux Mint 21 Review- The Best Distro Just Got a Little Better.md @@ -0,0 +1,152 @@ +[#]: subject: "Linux Mint 21 Review: The Best Distro Just Got a Little Better" +[#]: via: "https://itsfoss.com/linux-mint-21-review/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint 21 Review: The Best Distro Just Got a Little Better +====== +Linux Mint 21 ‘Vanessa’ is a fantastic upgrade. + +If you haven’t upgraded yet, you can [follow our step-by-step tutorial][1] to get help. + +But should you proceed to upgrade? Is Linux Mint 21 good enough for users? Does it have any quirks that you should know of? + +Here, let me highlight some important information to help you decide whether you should give it a try or not. + +### Linux Mint 21: What’s New? + +If you want to give it a try based on what’s new in it, here are the key highlights: + +* New upgrade tool +* New Bluetooth manager +* Addition of a process monitor tray icon +* Improved thumbnail support +* Desktop environment upgrades (Cinnamon 5.4.2, Xfce 4.16), MATE 1.26 +* New beautiful wallpapers +* Ubuntu 22.04 LTS base + +You can watch the video to get a quick idea about the changes: + +![Youtube Video][2] + +Don’t expect a major visual makeover with the upgrade. In fact, Linux Mint 21 is not a massive upgrade either. + +It concerns a few functionality/usability refinements on top of Ubuntu 22.04 LTS. + +### User Experience and Desktop Environment Upgrades + +![linux mint 21 home][3] + +Linux Mint 21 includes some big under-the-hood refinements, especially, for the Cinnamon edition. + +Cinnamon 5.4 features a major rebase of its window manager Muffin, based on Mutter 3.36. + +While there were several changes with Mutter, it took time to bring in the same features and optimizations to Muffin. + +With Cinnamon 5.4, Muffin’s codebase is much closer to the upstream. This should also translate to better performance and new features down the line. + +Not just limited to technical upgrades, you can notice some visual updates that include: + +* Rounded corners for windows look crispier. +* Window animation improvements. + +For other editions, you will find MATE 1.26, and Xfce 4.16 with the upgrade. No special under-the-hood refinements have been mentioned for those editions. However, with Ubuntu 22.04 as the base, you can expect core upgrades to the experience. + +Another enhancement that adds to the user experience of Linux Mint 21 is the support for thumbnails with file types including *WebP, AppImage, ePub, MP3, and RAW pictures.* + +With the file manager, it looks good to have thumbnails for all kinds of file types. It makes it easier to recognize and find what you’re looking for and is also aesthetically better than a question mark of a sort. + +### Sticky Notes Improvements + +![linux mint 21 sticky notes][4] + +Sticky Notes got some new feature additions with the upgrade. Now, you can create duplicate notes with a single click. + +Furthermore, you can tweak the color selection of the notes to pick through a cycle instead of random ones. This should translate to a better user experience with Sticky Notes. + +### XApps Improvements + +Mint maintains a list of XApps, which aims to provide a consistent experience for Linux Mint users, and any other user with a different desktop environment/distro. + +Timeshift has joined the list, as the Linux Mint is responsible for developing it further. + +There are also improvements to directory browsing, thingy, and Warpinator. + +### Keeping AppImage Intact + +Ubuntu 22.04 LTS removed a library that made it possible to run AppImage files. So, you will have to [fix that manually][5] to use AppImage on Ubuntu. + +With Linux Mint 21, you do not have to worry about it. You get the essential libraries pre-installed to have AppImage files run as one would expect. + +### New Bluetooth Application: Blueman + +![linux mint 21 blueman][6] + +A new Blueman tool replaces the Blueberry tool. + +Technically, Blueberry was a front-end XApp for GNOME Bluetooth. But, with newer GNOME updates, the compatibility was affected, which needed changes to fix it. + +Hence, the easier and potentially better way was to use Blueman, which is a powerful Bluetooth utility. + +It is easy to use but offers a variety of options for advanced users. So, it is a good addition to Linux Mint 21. + +### Linux Kernel Update + +![linux mint 21 neofetch][7] + +Mint 21 features Linux Kernel 5.15 LTS, which introduces modern hardware compatibility, and improves NTFS support. + +The newer kernel should also provide enhanced support for Intel Alder Lake processors and newer GPUs. + +### System Resource Usage + +![linux mint 21 resource usage][8] + +Linux Mint is based on Ubuntu. The underlying performance improvement should be there but don’t expect a huge difference in the resource usage compared to the previous Mint edition. + +The screenshot above gives you an idea of idle usage with Linux Mint 21 Cinnamon. It could be a different story for Xfce or MATE editions. + +### Package Updates & Other Improvements + +![linux mint 21 package manager][9] + +Obviously, you can expect newer package updates with Linux Mint 21. + +For instance, the latest Firefox browser is pre-installed as a deb file instead of Snap, which is a notable change compared to Ubuntu 22.04 LTS. + +The process of uninstallation gets refinements where the application’s dependencies will be evaluated before completely removing it. Furthermore, any associated dependencies installed along the application, which are not needed by the system, will be automatically removed at the time of uninstallation. + +You no longer have to rely on **apt autoremove** command to remove unnecessary dependencies. + +### Not The Most Exciting Upgrade: Is It? + +The Linux Mint team has made it clear that it follows the upstream but filters away the bad changes that users hate. + +Whether it is about Firefox being a Snap or anything else, Linux Mint 21 manages to provide a close-to-home experience without forcing the feature upgrades introduced with Ubuntu LTS releases. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-mint-21-review/ + +作者:[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/upgrade-linux-mint-version/ +[2]: https://youtu.be/-D7NWmfxutk +[3]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-home.jpg +[4]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-sticky-notes.jpg +[5]: https://itsfoss.com/cant-run-appimage-ubuntu/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-blueman.jpg +[7]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-neofetch.jpg +[8]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-resource-usage.jpg +[9]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-package-manager.jpg From d4971a7b5910c385a1b2e33b1426034c04cd734b Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 21:23:45 +0800 Subject: [PATCH 0828/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220820=20There=20is=20Life=20After=20the=20Death?= =?UTF-8?q?=20of=20x86.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20 There is Life After the Death of x86.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/news/20220820 There is Life After the Death of x86.md diff --git a/sources/news/20220820 There is Life After the Death of x86.md b/sources/news/20220820 There is Life After the Death of x86.md new file mode 100644 index 0000000000..66c6a50156 --- /dev/null +++ b/sources/news/20220820 There is Life After the Death of x86.md @@ -0,0 +1,121 @@ +[#]: subject: "There is Life After the Death of x86" +[#]: via: "https://news.itsfoss.com/box86-creator-ptitseb/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +There is Life After the Death of x86 +====== +Discussing X86 emulation on ARM devices with the creator of Box86 and Box64 projects, Ptitseb. + +![There is Life After the Death of x86][1] + +[Box86][2] and [Box64][3] are two pieces of software that allow apps made for X86 to run on ARM devices like the Raspberry Pi. It also aims to be both simple to use and able to run on low-end devices. + +Above all else, it is a completely open-source project, meaning that it has the full support of the community behind it. + +However, one man is at the forefront of this effort, and I had the pleasure to have a chat with him about what Box86 and Box64 are, their origins, and what the future holds for the project. + +Here is what we discussed. + +### Interview with Box86 and Box64’s main developer: Ptitseb + +I hope the questions and their responses make for good reading and give you a deeper understanding of X86 emulation and ARM devices in general. + +**Q. What were your main reasons to create Box86 and Box64?** + +**Ptitseb:**My main goal was to create an x86 emulator that ran on low-spec hardware. I’m quite active within the Open Pandora community [a small single-core ARM computer from 2012] and wanted to create a usable emulator for it. Put simply, I wanted a small and fast emulator for my Open Pandora + +**Q. What is your target audience with Box86 and Box64? Is it meant to only be used by hardcore Linux enthusiasts, or just the average Linux user?** + +**Ptitseb:** Aside from speed, one of my other goals with Box86 and Box64 is to have something that is usable by everyone. I designed Box86 to be as non-intrusive as possible; you install it, and then it just works. For now, I only provide source code, so as long it is not pre-compiled, it isn’t for everyone as it still needs to be compiled from source (even if it is relatively simple to do so). + +For now, it’s for experienced users, but the end goal is to allow everyone to use it easily. + +**Q. How are Box64 and Box86 different from previous attempts at running X86 applications using QEMU?** + +**Ptitseb:** As I said before, my goals were to have something that was fast and easy to use. As a result, I have made quite a few choices that the QEMU team hasn’t taken. For example, the main goal of QEMU is to be as precise and as close to the real hardware as possible. My goal is not that. Instead, I want something that is fast, even if I have to do some approximation to do so. + +I guess that the biggest difference between Box86/Box64 and QEMU is that I want Box86 to be as close to the actual hardware as possible and not as close to the emulated hardware (as would be found in QEMU). For example, X86 CPUs use 80 bit data, which ARM CPUs just can’t handle. While I could emulate this, it would significantly reduce speed, so I instead just use double 64-bit data. And it works! Even if it doesn’t work 100% of the time, for games, who cares! + +In simple terms, with this approximation, I get much more speed, at the expense of precision. + +**Q. Linux runs on an incredibly large number of devices. Because of this diverse target, I’m assuming not all hardware will work. Therefore, what kind of hardware is currently supported?** + +**Ptitseb:**For Box86 to run, the computer needs to be little endian. This is a hard requirement, as Box86 translates code, not memory. Aside from that, there isn’t much stopping Box86 and Box64 from running, apart from a few more things. + +Obviously, for Box86 to run, you need a 32-bit OS, and for Box64 a 64-bit OS, which is another hard requirement. Finally, if you want to use Dynarec, which significantly increases speed, you must be using ARM, not testing on an X86 PC. + +**Q. With the release of the Steam Deck, Valve has promised vastly improved compatibility with Windows games thanks to the Proton compatibility layer. Once the new Proton version is released, do you think it will be possible to run those games with Box64?** + +**Ptitseb:**I honestly don’t know, I still need to start working on that. It is definitely a goal that I want to work towards, mostly because it would just be nice to have! However, before I can get that working, I have a few other things that need to be finished first. For example, steam doesn’t work particularly well yet, so that will need to be improved before I can start working on Proton. + +So yes, it is an objective, but it still will be a while before it works well. + +**Q. I’m sure that you are aware of Apple’s Rosetta 2 translation layer. How do Box64 and Box86 compare to it?** + +**Ptitseb:**It’s difficult to say, as I still haven’t done much analysis of Rosetta 2. My understanding is that Rosetta uses an offline code converter, which neither Box86 nor Box64 have. Unlike Rosetta, Box64 doesn’t keep translated code, instead doing everything in the runtime. + +Other than that, Apple is always going to do translation better than Box64, as they have control over the full OS. After all, I can’t just change Linux to fit Box64, it needs to be the other way round. + +**Q. What future plans do you have for Box64?** + +**Ptitseb:**I’m currently thinking of a new Box piece of software, Box32, because why stop at two emulators when I can do three? Box32 will be a 64-bit emulator that runs 32-bit software. I can see, especially on ARM, that the 32-bit hardware is being phased out now, and as such Box86 will soon become obsolete because we won’t have any hardware to run it on. + +But this one will be tricky because the wrapping will have to be much smarter than the implementations in Box86 and Box64. This is a huge amount of work, so I am still trying to find a good solution that doesn’t require too much work on the conversion phase while still having something fast and usable. However, that’s a future project, just because of the sheer size of it. + +**Q. Looking at your GitHub profile, it appears that you have previously put a lot of work into porting individual games to the Open Pandora. Is Box86 an extension of that, or it is it a completely different project with different aims?** + +Yes, I guess it is an extension of that in some ways. On the Pandora, I port a lot of stuff, and to help make the process easier, I forked [GLshim][4], creating Gl4ES. This provides automatic translation from OpenGL to GLES2, making porting much faster. + +After that, I made Box86, which was yet another step towards making porting easier. Now, even if I don’t have the sources, I can still port things to the Open Pandora. + +So yes, it some kind of extension to the porting and getting software available for hardware that it would otherwise not be available for. + +**Q. How does GL4ES fit into the picture? Is it necessary to play most games?** + +It really depends on the hardware. Some hardware doesn’t have a full OpenGL driver (or at least supported by Mesa), so you will need GL4ES to play games on hardware like this because full PC games don’t care about GLES. + +If the hardware is supported by Mesa, like the Raspberry Pi 4, or the RK3399 SoC with Panfrost, it should be fine without it; you won’t need Gl4ES. + +So if Mesa doesn’t support the hardware or the hardware doesn’t support OpenGL, you will need GL4ES to run games. + +**Q. Finally, is there anything you would like to tell the community?** + +Well, I see that Intel, AMD, and the X86 world as a whole is dying. We saw back in 2020 that Apple really shook the world with the M1, and suddenly we saw that X86 is not the only thing that could be powerful enough for desktop computers. + +Now we are seeing alternative architectures like RISC-V that are emerging, and ARM is starting to appear in desktop computers too. So, X86 is not the only way to have a powerful PC for gaming and general use, and Box86 and Box64 are really just trying to help that movement. + +After all, there is a life after the death of X86. + +### Closing Thoughts + +With all the incredible work that Ptitseb has done, it was truly an incredibly interesting experience to gain a deeper insight into the workings of a project like Box86. The mention of a possible Box32 version was also very exciting to hear about, and I hope you are excited too. + +If you want to learn more about Box64, I’d highly suggest reading our release article on it. + +[Box64 Emulator Released for Arm64 Linux][5] + +With that, do you use Box86 or Box64? What are your thoughts on the future of those projects? Please feel free to let us know in the comments below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/box86-creator-ptitseb/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/box64-arm.jpg +[2]: https://github.com/ptitseb/box86 +[3]: https://github.com/ptitseb/box64 +[4]: https://github.com/lunixbochs/glshim +[5]: https://news.itsfoss.com/box64-emulator-released/ From 216d26af464e9d2fb9bee5af5f77a4848156bd17 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 20 Aug 2022 21:24:27 +0800 Subject: [PATCH 0829/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220819=20How=20to=20Create=20and=20Switch=20Worksp?= =?UTF-8?q?aces=20in=20Linux=20Mint.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ate and Switch Workspaces in Linux Mint.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md diff --git a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md b/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md new file mode 100644 index 0000000000..bfd8b9b3f6 --- /dev/null +++ b/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md @@ -0,0 +1,84 @@ +[#]: subject: "How to Create and Switch Workspaces in Linux Mint" +[#]: via: "https://itsfoss.com/workspaces-linux-mint/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Create and Switch Workspaces in Linux Mint +====== +Workspaces are a nice, neat way to organize your work. + +Suppose you have too many applications open. Your taskbar will be cluttered and it might be difficult for you to find/move between different programs. + +Workspaces come in handy in this situation. You can group applications in different workspaces. So, let’s say you have many programming-related applications opened. And you are also working on documentation. + +You can organize them in separate workspaces. Click and drag an application window and it should show the option for moving the application to a different workspace. + +This will ease your work in a more organized way and will save some time as well as frustration. + +Sounds good? Let me show you how to create workspaces in Linux Mint with [Cinnamon][1] and switch between them. + +### Create new workspaces + +Creating or accessing a workspace in Linux Mint is easy. Just press `CTRL + ALT+ UP`. It will show you a screen like the one below. + +Just click on the + sign on the right side to add a new workspace other than the default 4. + +![Workspace Overview in Linux Mint][2] + +The workspaces in Linux Mint are persistent. Once created, these workspaces will always be there, even after the next boot. + +### Switching between workspaces + +There are two ways to access the workspaces and switch between them. + +* Use Ctrl+Alt+Up arrow key and bring all the workspaces and then move between them using the arrow key or the mouse itself. +* Use the hot corner and move the mouse in the top left corner. + +By default, the Hot Corner feature is disabled in the latest releases of Linux Mint. + +To enable Hot Corner to switch between workspaces, you should go to the System Settings and select **Hot Corners** option. + +![Hot Corners Option in System Settings][3] + +Now, enable the top left corner by toggling the button. By default, this corner is dedicated to show all workspace (you can change that as well). + +![Show All Workspaces in Top Left Corner][4] + +You can now access the workspaces grid by hovering over the top left corner. + +Also, if you want, you can add new workspaces by pressing the **+** symbol on the right. Or rename existing workspaces by clicking on the name according to your need. + +![Workspace Overview Accessible from Top Left Corner][5] + +### Delete a workspace + +You can in fact create several workspaces by clicking the + sign. In case you want to delete a workspace, click on the **X** sign on the top right of a workspace while hovering over it. + +![Delete a Workspace][6] + +I hope this quick post helped you to create a workspace in Linux Mint. Do you use workspaces frequently? Let us know your views on workspaces. Meanwhile, you may also check a post on [things to do after installing Linux Mint 20][7]. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/workspaces-linux-mint/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/quickly-fix-broken-unity-installing-cinnamon-20-ubuntu-1310/ +[2]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-in-linux-mint.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/hot-corners-option-in-system-settings.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/show-all-workspaces-in-top-left-corner.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-accessible-from-top-left-corner-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/delete-a-workspace.png +[7]: https://itsfoss.com/things-to-do-after-installing-linux-mint-20/ From a014f14d528519f12e8bc80ea64e117109e3afd1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 21 Aug 2022 09:17:17 +0800 Subject: [PATCH 0830/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220820=20What=20if=20a=20Lifelong=20Linux=20User?= =?UTF-8?q?=20Tried=20Windows=20or=20macOS=20for=20the=20First=20Time-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ed Windows or macOS for the First Time-.md | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 sources/news/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md diff --git a/sources/news/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/sources/news/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md new file mode 100644 index 0000000000..0e83fd5b91 --- /dev/null +++ b/sources/news/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md @@ -0,0 +1,184 @@ +[#]: subject: "What if a Lifelong Linux User Tried Windows or macOS for the First Time?" +[#]: via: "https://news.itsfoss.com/linux-user-trying-windows-macos/" +[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What if a Lifelong Linux User Tried Windows or macOS for the First Time? +====== +Windows users face issues while switching to Linux. What if the tables are turned? What problems a lifelong Linux user will face while switching to Windows or macOS? + +![What if a Lifelong Linux User Tried Windows or macOS for the First Time?][1] + +Do you remember Linus Sebastian (from Linus Tech Tips) [trying out Linux for gaming][2]? He ended up deleting the desktop environment despite a clear warning shown in the terminal. + +![Linus Sebastian destroys his Linux system][3] + +Considering he utilizes Windows as his daily driver to play games, switching to Linux will definitely need some time. + +So, is this a Linux issue? Or is Linus doing it all wrong? Bet ya! + +[It's Time More Linux Distros and DEs Become 'Linus-Proof'][4] + +Or, is it that any user unfamiliar with an operating system encounters problems during their first trials? + +So, here, you get to read a different perspective of a Linux user trying Windows or macOS for the first time. + +Will it be a smooth sail? Or will it be as bad as Linus’s experience with Linux? + +It is definitely going to be something exciting… + +**Scott Williams** (a Senior DevOps Engineer) imagined the scenario in a series of tweets. + +### Enable TPM 2.0 for Windows 11? + +Considering Windows 11 is the latest available Windows version. How can Scott install it? + +> @vwbusguy \ +> Join me tonight as I try to enable TPM 2.0 on this four year old laptop to see if we can get Windows 11 to run on it. It says it supports Intel PTT, so this should be straightforward, right? +> +> @vwbusguy \ +> Between Windows and MacOS, there are too many options. Can't all proprietary operating systems users come together and just make one perfect operating system that fits every use case and preference out of the box, but most specifically mine? + +[Twitter @vwbusguy][5] + +*How to enable TPM 2.0? How to find it in the BIOS menu? Is it safe to enable TPM 2.0? Should I flash a newer BIOS? Will I brick my motherboard in the process of updating the BIOS?* + +These are some of the questions, every Linux user (and even Windows/macOS users) will have when they want to upgrade their system to Windows 11. + +With Linux distributions, we never have to do such a peculiar thing to make it work. Even in 2022. But, Windows 11 wants you to know about the BIOS settings or the TPM chip before you can upgrade to it. + +While Scott mentions about an older laptop, it is worth noting that even with the latest motherboards (for instance Z590), you may have to tweak the BIOS or flash a newer BIOS version to support Windows 11. + +This is incredibly inconvenient, even for technical users because updating BIOS comes with its own risks. + +### Do I Need an Antivirus Software? Which One? + +While Apple’s XProtect and Windows Defender should be good for basics, there are several options when it comes to Antivirus if you want enhanced protection. + +> @vwbusguy \ +> I'm surprised that MacOS doesn't even come with a modern web browser installed and you have to go to a website to download one. That's not a great initial user experience. +> +> @NaheemSays \ +> It is actually deeper than that. As a user of both systems, I think people subconsciously forget how weird Windows can be. +> +> Its biggest advantage is that it comes pre installed. First step of a new system: uninstall a lot of crap. Try even getting rid of Mcaffee or Norton! +> +> @vwbusguy \ +> So do I or do I not need antivirus software and which one? + +[Twitter @vwbusguy][6] + +And, with so many choices and paid reviews online, it is tough to know what’s actually a genuine option and if you should spend for it. + +A Linux user will often wonder: *Why do I even need this? Won’t this affect the performance? What do I do with so many protection features? Isn’t Windows a secure operating system?* + +### iCloud and macOS: A Love Story? + +> @vwbusguy \ +> How do I access files on my @btrfs drive in Windows or MacOS? +> +> @vwbusguy \ +> What is iCloud and how do I make this go away? +> +> @mikecodemonkey \ +> And then MacOS is sooooo annoying having to log into your iCloud every 5 seconds, set multiple passwords, constantly tell Siri to bugger off. + +[Twtter @vwbusguy][7] + +Linux users are not fond of integrated cloud services. They either mount a cloud storage drive (or a network drive). + +Even if they opt for a cloud storage service, it should work as per their explicit actions. However, with macOS, you will be constantly reminded of iCloud while Siri popping up in between. + +### Linux User Cleans the Registry + +With so many options and tools to clean registries and optimize systems for better performance, a new Linux user may end up with an unresponsive Windows. + +> Reddit says I need to "clean my registry" so I followed a few tutorials and deleted a few things and now this Windows box is acting really weird. + +[Twitter @vwbusguy][8] + +Even in 2022, there is no clarity when you work with the registry or tools that helps you “optimize” the registry. + +Dare you, veteran Linux users love the details before trying anything. But, if there is no proper warning/notice in the GUI, how can one know about it all? + +### Reboot All The Way + +It’s not like a reboot does not fix things in Linux. But, how many times do I have to reboot when updating Windows or after installing software? + +> We can all be like, \ +> "You have to install how many .NET framework versions? How many reboots so far?" \ +> "My Adobe version doesn't support this version of MacOS? No wonder people have so many have trouble taking MacOS seriously. Apple needs to fix this." + +[Twitter @vwbusguy][9] + +Every time I reboot, I lose the active applications that were in the background. + +Why can’t Windows just detect the new installations and updated packages with a simple refresh instead of a reboot? Why is this so much counter-productive? + +### Do I Have to Pay for All This? Wasn’t the Windows License Enough? + +Linux is primarily all about free and open-source software. Hence, the pre-installed utilities are free. + +So, a user who is comfortable with those tools would have to suddenly pay for a Windows license, and also pay for software. + +Isn’t Microsoft too greedy here? + +### Lack of Essential Packages by Default + +I can’t even extract an archive after I install Windows? Is it truly a modern OS? + +### Multi-Monitor Setup for macOS + +> @vwbusguy \ +> How do I get my monitors to work with MacOS? +> +> I'm used to firmware updates just being automatic through LVFS on Linux. How do I update the firmware from Windows? This vendor site says I need to put something on a USB drive. Can I borrow one from someone? +> +> @acruiz \ +> Indeed!!!! I had to install several extensions on macOS to get to a semi decent setup (plus some shitty drivers for multimonitor support in my dock station which worked OOTB on Linux) + +[Twitter @vwbusguy][10] + +It is a breeze to work with Linux when you have a multi-monitor setup. But, when it comes to macOS, everything breaks away. + +### Final Thoughts + +Ultimately, it depends on what the standard is and what you are familiar with. Windows and macOS are often considered the standard desktop operating system. + +In contrast, most people know little associated with Linux, except the fact that it is difficult to use. + +However, if you get to know the essentials, just like you know for Windows/macOS, Linux desktop experience will be a smooth experience. + +It is just because there are a variety of things when it comes to Linux. However, with patience, you can enjoy the full experience of it. + +Linux isn’t problematic as a whole, it's the user that fails to get acquainted with coming from another operating system. We do not want Linux to be Windows nor Windows to act like Linux, everything should have a separate presence. + +But then again, Linux should not be struck out just because a longtime Windows user did not have a good initial experience with it because the same can happen with a longtime Linux user trying Windows/macOS. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-user-trying-windows-macos/ + +作者:[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/abhishek/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/linux-windows.png +[2]: https://www.youtube.com/watch?v=0506yDSgU7M&t=788s +[3]: https://news.itsfoss.com/content/images/2022/08/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp +[4]: https://news.itsfoss.com/more-linux-distros-become-linus-proof/ +[5]: https://twitter.com/vwbusguy/status/1463543535630569473 +[6]: https://twitter.com/vwbusguy/status/1463556939728572419 +[7]: https://twitter.com/vwbusguy/status/1463579003504136192 +[8]: https://twitter.com/vwbusguy/status/1463595769051549697 +[9]: https://twitter.com/vwbusguy/status/1463538368956887043 +[10]: https://twitter.com/vwbusguy/status/1463606807906029570 From e46070a2c51359e07cf61abf7a4ba7a01caa2dbd Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 21 Aug 2022 09:27:00 +0800 Subject: [PATCH 0831/3123] =?UTF-8?q?[=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?][talk]:=2020220816=20My=20practical=20advice=20for=20new=20pro?= =?UTF-8?q?grammers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...My practical advice for new programmers.md | 69 ------------------- ...My practical advice for new programmers.md | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 69 deletions(-) delete mode 100644 sources/talk/20220816 My practical advice for new programmers.md create mode 100644 translated/talk/20220816 My practical advice for new programmers.md diff --git a/sources/talk/20220816 My practical advice for new programmers.md b/sources/talk/20220816 My practical advice for new programmers.md deleted file mode 100644 index e9dace75e3..0000000000 --- a/sources/talk/20220816 My practical advice for new programmers.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "My practical advice for new programmers" -[#]: via: "https://opensource.com/article/22/8/coding-advice-new-programmers" -[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" -[#]: collector: "lkxed" -[#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -My practical advice for new programmers -====== -Being an efficient and curious problem-solver will help you succeed as a programmer. - -Have you ever been stuck or gone blank trying to solve a problem related to something that you just learned from YouTube or Google tutorials? You seem to understand every line of the code, but without the tutorial, you find yourself in a difficult position. If you have looked at problem-solving in HackerRank or LeetCode, you can relate to how an aspiring programmer feels seeing those challenges for the first time. Everything seems out of the box! Being unable to apply what you learned from a tutorial might make you doubt your knowledge and abilities as you begin to understand the basics of the programming language you're learning. - -### Putting programming tutorials into practice - -Should you start back at the beginning? If you do that, you may soon find that you've covered those topics more than enough times. Starting from scratch is not necessarily a waste, but how can you be more efficient? - -Memorization is simply not the solution in programming. Having said that, you cannot neglect the importance of getting used to syntaxes. There is a significant difference between memorizing and making a habit. The latter is difficult to break. Make a habit of playing around with the programming language's regular syntaxes, functions, methods, patterns, paradigms, and constructs to ace it. Acing a programming language involves a lot of creativity and practice. It is essential to practice syntaxes until they flow as smoothly in your brain as the blood runs through your veins. - -### How problem-solving works - -How you approach solutions depends on many factors. These factors could be anything from technical constraints to user needs. The world has innumerable problems and there are many ways of solving each. Deciding on the best way involves extensive problem-solving skills. - -Here is a simple example. You need to achieve a result of **6** by *adding* two numbers. You can accomplish this several ways: - -**3+3=6** or **4+2=6** or **5+1=6** - -Similarly, say you need to achieve a result of **6** by using two numbers and either subtraction, division, or multiplication. You have many options, including: - -**8-2=6** or **12/2=6** or **3*2=6** - -Each solution may have a different constraint. You must consider all of these when developing effective real-world solutions. Is the solution feasible? Accessible? Interoperable? Scalable? Minimizing the constraint and developing an optimal solution depends on the business need and type of problem. - -### Practice matters - -The goal of programming is much more than problem-solving. Understanding *how* the code functions from an engineering perspective is always an advantage. That's where code reviews come into play at an enterprise level. The bare minimum requirement in programming is to have basic coding knowledge, including the language's syntaxes, functions, and methods. At the end of the day, coding is what you *do*, so practicing always helps improve your skills. Fluency in writing and developing complex solutions comes with consistent practice and learning. - -### Learning to code - -My goal for writing and sharing this article is to encourage new programmers to seek the great problem solver in themselves. Please don't stop believing in yourself. - -There are many habits to nurture for successful coding. Here are my ways of staying effective while learning to code: - -1. A [cheat sheet][1] of syntaxes, methods, and functions can come in handy. -2. Break problems into smaller parts to make them easier to follow. -3. Try to understand the core concept of how code functions. -4. Try to improvise with your solutions but always stick to the basics in the beginning. -5. Create as many applications and components as possible while practicing. -6. Never copy/paste code from open platforms like stack overflow/exchange, especially without understanding the context. -7. After following the tutorial, try to build everything from scratch. If you manage to accomplish half of it by yourself, that's still an achievement. - -Good luck to all of us. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/coding-advice-new-programmers - -作者:[Sachin Samal][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/sacsam005 -[b]: https://github.com/lkxed -[1]: https://opensource.com/downloads/cheat-sheets diff --git a/translated/talk/20220816 My practical advice for new programmers.md b/translated/talk/20220816 My practical advice for new programmers.md new file mode 100644 index 0000000000..34f460690b --- /dev/null +++ b/translated/talk/20220816 My practical advice for new programmers.md @@ -0,0 +1,69 @@ +[#]: subject: "My practical advice for new programmers" +[#]: via: "https://opensource.com/article/22/8/coding-advice-new-programmers" +[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" +[#]: collector: "lkxed" +[#]: translator: "lkxed" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我给新手程序员的实用建议 +====== +做一个高效的、充满好奇心的问题解决者吧!这会帮助你成为一名成功的程序员。 + +你是否曾经遇到过这样一种情况:你想解决一个问题,并且你在 YouTube 或 Google 中找到了相关的教程。嗯,你觉得看会了,可真做起来,却止步不前,大脑一片空白。你感觉自己每一行代码都看懂了,可一旦离开了那个教程,就步履维艰。如果你在 HackerRank 或 LeetCode 上看过别人的解题过程,你就能体会到,一个有追求的程序员第一次看到这些挑战时,他会是何种感受。举例来说,假设你正在学习一门新语言,在你刚开始理解这门语言的基础知识的时候,你看了一个教程,摩拳擦掌,结果发现自己无法独立应用学到的知识,这反过来可能会导致你怀疑自己的知识和能力。 + +### 编程教程与实践 + +你应该从头开始吗?如果你这么做,你可能很快就会发现自己重复学习了很多次相同的知识点。虽然从头开始并不一定是种浪费,但是,你该如何变得更高效呢? + +死记硬背在编程中完全是行不通的。话虽如此,但你也不能够忽视熟悉语法的重要性。因为,死记硬背和养成习惯之间是有明显区别的。习惯是很难打破的。要养成多使用编程语言的常规语法、函数、方法、模式、范式和构造的习惯,这样你才能掌握它。掌握一门编程语言需要大量的创造力和练习。练习语法是非常必要的,直到它们在你的脑海中流畅地浮现,就像血液在血管里流动一样。 + +### “问题解决”的工作原理 + +那么,你该采取什么样的方案呢?这实际上取决于许多因素。这些因素可以是任何东西,下至技术限制,上至用户需要。世界上有无数的问题,每个问题都有许多解决方式。如何选择一个最好的?这就需要“问题解决”problem-solving的技巧了。 + +下面是一个简单的例子。你需要把两个数**相加**,让它们等于 **6**。显然,你有多种方式可供选择: + +**3 + 3 = 6** 或 **4 + 2 = 6** 或 **5 + 1 = 6** + +同理,如果你需要让两个数字,经过一次减法、乘法或除法运算后,得到的结果为 **6**。你仍然有很多选项,包括: + +**8 - 2 = 6** 或 **12 / 2 = 6** 或 **3 * 2 = 6** + +每种方案都有它固有的限制,且各不相同。当你在现实生活中尝试做出一个高效的方案时,你必须要考虑到所有的限制。这个方案可行吗?有什么障碍吗?有可操作性吗?是否可扩展呢?而如何最小化约束,并做出一个最优方案,就取决于问题类型和业务需要。 + +### 实际问题 + +编程的目标不仅仅是解决问题。因此,从工程视角理解代码*如何*工作始终是一个优势。这就是代码审查在企业级开发中发挥作用的地方。编程的最低要求是具备基本的编码知识,包括语言的语法、函数和方法。归根结底,“写代码”是需要你去**写**的,所以练习总是有助于提高你的技能。流畅的写作和复杂方案的开发都来自于持续的学习和训练。 + +### 学习编码 + +我撰写和分享这篇文章,是为了鼓励新程序员去探寻自己的内心,寻找那个“优秀的问题解决者”。请不要停止相信自己。 + +要成功编码,你需要培养许多习惯。下面是我在学习编码时保持高效的方法: + +1. 一个包含语法、方法和函数 [速查手册][1] 总能应付不时之需。 +2. 将问题分解成更小的部分,便于追踪。 +3. 尝试理解代码运行的核心概念。 +4. 构思解决方案时,大可发挥你的创造力 —— 但刚开始还是要注重基础。 +5. 在练习时,创建尽可能多的应用和组件。 +6. 永远不要从 Stack Overflow/Exchange 等开放平台上复制/粘贴代码,特别是在不了解上下文的情况下。 +7. 跟着教程做了一遍后,尝试从头开始构建所有内容。即使你只能独立完成一半,那也仍然是一个成就。 + +祝我们所有人好运! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/coding-advice-new-programmers + +作者:[Sachin Samal][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/sacsam005 +[b]: https://github.com/lkxed +[1]: https://opensource.com/downloads/cheat-sheets From c8df179ba3246862fdfe38035f5d49bb2e4bdd73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 21 Aug 2022 09:31:48 +0800 Subject: [PATCH 0832/3123] Update 20220816 My practical advice for new programmers.md --- .../20220816 My practical advice for new programmers.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translated/talk/20220816 My practical advice for new programmers.md b/translated/talk/20220816 My practical advice for new programmers.md index 34f460690b..62b2283f29 100644 --- a/translated/talk/20220816 My practical advice for new programmers.md +++ b/translated/talk/20220816 My practical advice for new programmers.md @@ -13,11 +13,11 @@ 你是否曾经遇到过这样一种情况:你想解决一个问题,并且你在 YouTube 或 Google 中找到了相关的教程。嗯,你觉得看会了,可真做起来,却止步不前,大脑一片空白。你感觉自己每一行代码都看懂了,可一旦离开了那个教程,就步履维艰。如果你在 HackerRank 或 LeetCode 上看过别人的解题过程,你就能体会到,一个有追求的程序员第一次看到这些挑战时,他会是何种感受。举例来说,假设你正在学习一门新语言,在你刚开始理解这门语言的基础知识的时候,你看了一个教程,摩拳擦掌,结果发现自己无法独立应用学到的知识,这反过来可能会导致你怀疑自己的知识和能力。 -### 编程教程与实践 +### 把教程付诸于实践 你应该从头开始吗?如果你这么做,你可能很快就会发现自己重复学习了很多次相同的知识点。虽然从头开始并不一定是种浪费,但是,你该如何变得更高效呢? -死记硬背在编程中完全是行不通的。话虽如此,但你也不能够忽视熟悉语法的重要性。因为,死记硬背和养成习惯之间是有明显区别的。习惯是很难打破的。要养成多使用编程语言的常规语法、函数、方法、模式、范式和构造的习惯,这样你才能掌握它。掌握一门编程语言需要大量的创造力和练习。练习语法是非常必要的,直到它们在你的脑海中流畅地浮现,就像血液在血管里流动一样。 +死记硬背在编程中完全是行不通的。话虽如此,但你也不能够忽视熟悉语法的重要性。因为,死记硬背和养成习惯之间是有明显区别的。习惯是很难打破的。要养成多使用编程语言的常规语法、函数、方法、模式、范式和构造的习惯,这样你才能掌握它。掌握一门编程语言需要大量的创造力和练习。练习语法是非常必要的,直到它们能在你的脑海中自然地浮现,就像血液在血管里流动一样。 ### “问题解决”的工作原理 @@ -33,9 +33,9 @@ 每种方案都有它固有的限制,且各不相同。当你在现实生活中尝试做出一个高效的方案时,你必须要考虑到所有的限制。这个方案可行吗?有什么障碍吗?有可操作性吗?是否可扩展呢?而如何最小化约束,并做出一个最优方案,就取决于问题类型和业务需要。 -### 实际问题 +### 练习很重要 -编程的目标不仅仅是解决问题。因此,从工程视角理解代码*如何*工作始终是一个优势。这就是代码审查在企业级开发中发挥作用的地方。编程的最低要求是具备基本的编码知识,包括语言的语法、函数和方法。归根结底,“写代码”是需要你去**写**的,所以练习总是有助于提高你的技能。流畅的写作和复杂方案的开发都来自于持续的学习和训练。 +编程的目标不仅仅是解决问题。因此,从工程视角理解代码**如何**工作始终是一个优势。这就是代码审查在企业级开发中发挥作用的地方。编程的最低要求是具备基本的编码知识,包括语言的语法、函数和方法。归根结底,“写代码”是需要你去**写**的,所以练习总是有助于提高你的技能。流畅的写作和复杂方案的开发都来自于持续的学习和训练。 ### 学习编码 From 2413dda3821df94f9f7b78fd9cdd5eb925bba1e4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 21 Aug 2022 09:36:16 +0800 Subject: [PATCH 0833/3123] Delete 20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md --- ...ncements for MS Office Interoperability.md | 116 ------------------ 1 file changed, 116 deletions(-) delete mode 100644 sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md diff --git a/sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md b/sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md deleted file mode 100644 index d2f951b31e..0000000000 --- a/sources/news/20220819 LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability.md +++ /dev/null @@ -1,116 +0,0 @@ -[#]: subject: "LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability" -[#]: via: "https://news.itsfoss.com/libreoffice-7-4-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability -====== -LibreOffice 7.4 is an exciting release with WebP support, performance boost, and MS Office compatibility improvements. - -![LibreOffice 7.4 is Here With WebP Support and Powerful Enhancements for MS Office Interoperability][1] - -LibreOffice 7.4 community edition is a major upgrade to the previous release after six months. - -With LibreOffice 7.4, The Document Foundation mentions that the development is now focused on “**interoperability**” with Microsoft's proprietary file formats. - -While this is great news for users migrating away from MS Office, the upgrade also introduces some cool features. Here, let me highlight the best parts of the release. - -### 🆕 LibreOffice 7.4: Overview - -As usual, every LibreOffice update brings in enhancements to all of its programs that include **Writer, Calc, Impress & Draw, Base, Chart, and Math**. - -![LibreOffice 7.4: New Features][2] - -Overall, the key refinements include: - -* New open-source grammar checker integration, i.e., [LanguageTool][3]. -* WebP image support. -* Performance improvements to Calc. -* Support for 16,384 columns in spreadsheets. -* Improved typographic settings in Writer. -* Master slide improvement for Impress & Draw. -* Import/Export enhancements for DOCX, PPTX, and a couple other file types. -* New macro scripting resources for power users. -* Experimental dark mode support for Windows 10/11. - -Let us explore a few things about the major additions. - -### LanguageTool Integration - -![][4] - -With LibreOffice Writer, one can use LanguageTool API for grammar checking. - -If you did not know, [LanguageTool][5] is a remarkable open-source alternative to tools like [Grammarly][6]. - -Our team uses it to proofread and edit articles as well. You can enable the LanguageTool integration under the **Language** settings. - -#### Also Read: - -![][7] - -![][8] - -### WebP Image Support - -If you recently tried saving an image from the internet, it is most likely a **WebP**file. - -It is now the predominantly used image format (developed by Google) on the internet with the best compression/quality balance. - -LibreOffice 7.4 added support for WebP image import/export. So, you can work with any image file format you want now. - -### MS Office Compatibility Improvements - -With the upgrade, several refinements for **lighting extruded custom shapes**were worked upon to make rendering more compatible with MS Office binary formats. - -When importing a DOCX/PPTX file, LibreOffice 7.4 now doesn't miss fetching the tables, images, and linked media files. Furthermore, if you had a missing embedded video file when exporting a PPTX file, that has been fixed. - -If you wanted to unlock protected change tracking of DOCX files, you should now be able to do it without any hiccups. - -### Other Refinements - -There are numerous under-the-hood changes, and feature additions that should elevate your user experience with LibreOffice programs. - -Things like new macro resources, a search field in the extension manager, and performance tuning, makes this an exciting release. - -You can read all the technical details in its [official changelog][9] and more about the release/enterprise plans on its [announcement blog post][10]. - -### 📂 Download LibreOffice 7.4.0 - -LibreOffice 7.4 is available through the [official download webpage][11]. - -You can find deb, and rpm files along with packages for Windows and macOS (Intel/ARM). - -Torrent file is also available for a smooth download experience. If you already have it installed on your system, expect an update in the next few days/weeks, depending on your Linux distribution. You can also use the Flatpak package for faster access to the latest version. - -[Download LibreOffice 7.4.0][12] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/libreoffice-7-4-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/content/images/size/w1200/2022/08/libreoffice-7-4-release.jpg -[2]: https://youtu.be/PC8M4UzqpqE -[3]: https://itsfoss.com/languagetool-review/ -[4]: https://news.itsfoss.com/content/images/2022/08/languagetool-libreoffice.jpg -[5]: https://languagetool.org/ -[6]: https://www.grammarly.com/ -[7]: https://itsfoss.com/libreoffice-tips/ -[8]: https://itsfoss.com/libreoffice-tips/ -[9]: https://wiki.documentfoundation.org/ReleaseNotes/7.4 -[10]: https://blog.documentfoundation.org/blog/2022/08/18/libreoffice-7-4-community/ -[11]: https://www.libreoffice.org/download/download/ -[12]: https://www.libreoffice.org/download/download/ From 2202eef1208f9da0b8092a109809df7c848a3e4f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 21 Aug 2022 15:45:22 +0800 Subject: [PATCH 0834/3123] RP @geekpi https://linux.cn/article-14951-1.html --- ...est Distributions Based on Fedora Linux.md | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) rename {translated/tech => published}/20220809 7 Best Distributions Based on Fedora Linux.md (63%) diff --git a/translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md b/published/20220809 7 Best Distributions Based on Fedora Linux.md similarity index 63% rename from translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md rename to published/20220809 7 Best Distributions Based on Fedora Linux.md index aecd5d628e..a22c436496 100644 --- a/translated/tech/20220809 7 Best Distributions Based on Fedora Linux.md +++ b/published/20220809 7 Best Distributions Based on Fedora Linux.md @@ -3,30 +3,32 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14951-1.html" 7 个基于 Fedora Linux 的最佳发行版 ====== -有几十个基于 Ubuntu 的发行版可用。从[面向初学者的发行版][1]到[漂亮的发行版][2],Ubuntu 主导着 Linux 桌面空间。 +![](https://img.linux.net.cn/data/attachment/album/202208/21/154425baqqjmpftz7t7qt7.jpg) -如果通用发行版还不够的话,你还会发现一些[奇怪的基于 Ubuntu 的发行版][3]。 +有几十个基于 Ubuntu 的发行版可用。从 [面向初学者的发行版][1] 到 [漂亮的发行版][2],Ubuntu 主导着 Linux 桌面空间。 -我不会参与 [Ubuntu 与 Fedora][4] 的辩论。我只是说如果你想在 Fedora 领中尝试一些东西,我会列出一些选项。 +如果通用发行版还不够的话,你还会发现一些 [奇怪的基于 Ubuntu 的发行版][3]。 -请记住,我不会列出面向服务器的 Linux 发行版。此处的列表适用于**桌面 Linux 用户**。 +我不打算参与 [Ubuntu 与 Fedora][4] 的辩论。我只是说如果你想在 Fedora 领域中尝试一些东西,我可以列出一些选项。 + +请记住,我不会列出面向服务器的 Linux 发行版。此处的列表适用于 **桌面 Linux 用户**。 该列表没有特定的排名顺序,并且提到的选项可能并不总是适合新用户。因此,在第一次安装任何基于 Fedora 的发行版之前,请确保你浏览了文档。 -### 1. Fedora 定制版 +### 1、Fedora 定制版 ![screenshot fedora cinnamon][5] -Fedora 有很多定制版,但没有 Ubuntu 那么多。 +Fedora 有很多定制版spin,但没有 Ubuntu 那么多。 -[Fedora Spins][6] 不是基于 Fedora 的独立发行版,而只是具有[不同桌面环境][7]或平铺窗口管理器的不同版本的 Fedora。 +[Fedora 定制版][6] 不是基于 Fedora 的独立发行版,而只是具有 [不同桌面环境][7] 或采用平铺窗口管理器的不同版本的 Fedora。 如果你不喜欢默认的 GNOME 桌面环境,你可以下载其中一种。 @@ -39,53 +41,53 @@ Fedora 有很多定制版,但没有 Ubuntu 那么多。 * Fedora MATE-COMPIZ * Fedora Cinnamon 版 -#### 2. Nobara +### 2、Nobara ![nobara][8] -当你开始寻找[游戏发行版][9],列表将由 Debian 和 Arch 衍生产品占据主导地位。因此,如果你正在寻找基于 Fedora 且具有相同效果的游戏发行版,那么 [Nobara][10] 就是你所需要的。 +当你在找 [游戏发行版][9] 时,列表将由 Debian 和 Arch 衍生产品占据主导地位。因此,如果你正在寻找基于 Fedora 且具有相同效果的游戏发行版,那么 [Nobara][10] 就是你所需要的。 Nobara 是由 Proton GE 的维护者制作的游戏发行版,他也是 Lutris 开发团队的成员,因此你可以期待开箱即用的下一代游戏体验! -为了带来更好的体验,Nobara 在 Fedora 上提供了 30 多个预先应用的补丁程序和一组游戏工具,包括 Lutris、GOverlay、Stream 和 ProtonUp。 +为了带来更好的体验,Nobara 在 Fedora 上预先应用了 30 多个补丁程序,以及一组游戏工具,包括 Lutris、GOverlay、Stream 和 ProtonUp。 -#### 3. Ultramarine +### 3、Ultramarine ![ultramarine][11] -一个基于 Fedora 的发行版,开箱即用,适用于普通用户,它就是 [Ultramarine][12]! +基于 Fedora 的发行版,开箱即用,适用于普通用户,它就是 [Ultramarine][12]! -Ultramarine 预装了一堆工具,包括 Flathub、RPM fusion 和它们自己的专用仓库。 +Ultramarine 预装了一堆工具,包括 Flathub、RPM fusion 和该发行版自己的专用仓库。 你将获得一个预配置的桌面,使其看起来赏心悦目,因此你不再需要花费额外的时间进行调整。 此外,对于那些在 Fedora 基础上寻求 Pantheon 和 Budgie 桌面环境的微调体验的人来说,Ultramarine 是完美的选择。 -#### 4. RisiOS +### 4、RisiOS ![risios][13] -一个 web 就绪的 Fedora。 +“一个支持 Web 应用的 Fedora。” -这是一种描述 [RisiOS][14] 的方式,但等等,还有更多要谈的。 +这是一种描述 [RisiOS][14] 的方式,但等等,不止如此。 -从为 bash 脚本获取用户 GUI 到欢迎屏幕,你只需单击几下即可准备好系统,RisiOS 让 Fedora 的使用更加轻松! +从 Bash 脚本的用户 GUI 到欢迎屏幕,你只需单击几下即可准备好系统,RisiOS 让 Fedora 的使用更加轻松! RisiOS 还为你提供与 Linux Mint 相同的 Web 应用管理器,而且非常棒。 -但是在你跳转到下载页面之前,要记住一件事是 RisiOS 仍处于测试阶段(如网站所说的 Big beta),你可能会遇到一些问题。 +但是在你跳转到下载页面之前,要记住一件事是 RisiOS 仍处于测试阶段(如网站所说的 Big beta),你可能会遇到一些小问题。 -#### 5. Qubes OS +### 5、Qubes OS ![Qubes Os][15] -[Qubes OS][16] 是一个有趣的 Linux 发行版,它让你可以自由选择要用作基础的操作系统。它还提供了一个 Fedora 模板,并且他们会定期维护它。 +[Qubes OS][16] 是一个有趣的 Linux 发行版,它让你可以自由选择要用作基础的操作系统。它也提供了一个 Fedora 模板,并且他们会定期维护它。 -事实上,Qubes OS 也是一个[注重隐私的 Linux 发行版][17]。因此,你可以在完全自由地使用基于 Fedora 的产品时获得最新技术。 +事实上,Qubes OS 也是一个 [注重隐私的 Linux 发行版][17]。因此,你可以在使用基于 Fedora 的产品时获得最新技术,而且完全自由。 -值得注意的是,Qubes OS 需要大量系统资源和至少 **8-16 GB** 的内存才能使用,并且呈现出具有挑战性的学习曲线。 +值得注意的是,Qubes OS 需要大量系统资源和至少 **8-16 GB** 的内存才能使用,并且具有挑战性的学习曲线。 -#### 6. Berry Linux +### 6、Berry Linux ![berry linux][18] @@ -93,23 +95,23 @@ RisiOS 还为你提供与 Linux Mint 相同的 Web 应用管理器,而且非 Berry Linux 提供对英语和日语的支持。它预装了一些媒体播放器、照片编辑应用和基本应用。 -#### 7. ClearOS +### 7、ClearOS ![clear os community edition][20] -它不是[来自 Intel 的 Clear Linux 项目][21],尽管听起来很相似。 +它不是 [来自 Intel 的 Clear Linux 项目][21],尽管听起来很相似。 [ClearOS][22] 是基于 Fedora 的发行版,专为服务器环境量身定制,或帮助你在 HP 支持的家庭网络上运行 IT 相关任务和流式传输音乐/视频。你必须根据自己的要求同时购买家庭版/企业版。 -如果你不想购买并且可以自己管理,还有一个社区版。 +如果你不想购买而想自己管理,还有一个社区版。 -### 想法? +### 你的看法 长期使用 Linux 的用户可能还记得 Korora 和 Chapeau 发行版。它们曾经在 Fedora 用户中很受欢迎,但从那时起这些项目就停止了。 虽然 Fedora 本身很棒,但我并不反对衍生发行版。看看 Linux Mint 的成功。它是 Ubuntu 的衍生产品,但已经获得了如此好的用户群。谁知道这些基于 Fedora 的发行版是否会像 Mint 一样流行? -我错过了任何基于 Fedora 的活跃发行版吗? 你如何看待 Fedora 衍生版及其定制版本? 在下面的评论中告诉我! +我缺失了任何基于 Fedora 的活跃发行版吗?你如何看待 Fedora 衍生版及其定制版本? 在下面的评论中告诉我! -------------------------------------------------------------------------------- @@ -118,7 +120,7 @@ via: https://itsfoss.com/best-fedora-linux-distributions/ 作者:[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/) 荣誉推出 From bee55410fa327b8117b5188cf1a8a9e7b24ac3b4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 21 Aug 2022 16:15:38 +0800 Subject: [PATCH 0835/3123] RP @lkxed https://linux.cn/article-14952-1.html --- ...20816 My practical advice for new programmers.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) rename {translated/talk => published}/20220816 My practical advice for new programmers.md (93%) diff --git a/translated/talk/20220816 My practical advice for new programmers.md b/published/20220816 My practical advice for new programmers.md similarity index 93% rename from translated/talk/20220816 My practical advice for new programmers.md rename to published/20220816 My practical advice for new programmers.md index 62b2283f29..30859c390a 100644 --- a/translated/talk/20220816 My practical advice for new programmers.md +++ b/published/20220816 My practical advice for new programmers.md @@ -3,13 +3,16 @@ [#]: author: "Sachin Samal https://opensource.com/users/sacsam005" [#]: collector: "lkxed" [#]: translator: "lkxed" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14952-1.html" 我给新手程序员的实用建议 ====== -做一个高效的、充满好奇心的问题解决者吧!这会帮助你成为一名成功的程序员。 + +![](https://img.linux.net.cn/data/attachment/album/202208/21/161450vm33z0ex30w4073z.jpg) + +> 做一个高效的、充满好奇心的问题解决者吧!这会帮助你成为一名成功的程序员。 你是否曾经遇到过这样一种情况:你想解决一个问题,并且你在 YouTube 或 Google 中找到了相关的教程。嗯,你觉得看会了,可真做起来,却止步不前,大脑一片空白。你感觉自己每一行代码都看懂了,可一旦离开了那个教程,就步履维艰。如果你在 HackerRank 或 LeetCode 上看过别人的解题过程,你就能体会到,一个有追求的程序员第一次看到这些挑战时,他会是何种感受。举例来说,假设你正在学习一门新语言,在你刚开始理解这门语言的基础知识的时候,你看了一个教程,摩拳擦掌,结果发现自己无法独立应用学到的知识,这反过来可能会导致你怀疑自己的知识和能力。 @@ -60,7 +63,7 @@ via: https://opensource.com/article/22/8/coding-advice-new-programmers 作者:[Sachin Samal][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/) 荣誉推出 From 538767038cfb4fba47792dbf7bb067c6ee8838b4 Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 21 Aug 2022 18:17:35 +0800 Subject: [PATCH 0836/3123] . --- .../20220814 How to Apply Accent Colour in Ubuntu Desktop.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md b/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md index 9125a1e856..779ef0c1a1 100644 --- a/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md +++ b/sources/tech/20220814 How to Apply Accent Colour in Ubuntu Desktop.md @@ -2,13 +2,13 @@ [#]: via: "https://www.debugpoint.com/ubuntu-accent-colour/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yjacks" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " - How to Apply Accent Colour in Ubuntu Desktop ====== + It’s easy to apply accent colour on Ubuntu desktop, thanks to recent developments. Here’s how. Every Linux distribution has its default theme, bringing a dominant colour. The Accent colours are used to highlight the dominant colour in any setup. Generally, the primary and Accent colours should contrast or complement each other. From 54f47ecf5f955f9d702ecbbc8dddb76ab5df4352 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 21 Aug 2022 23:50:21 +0800 Subject: [PATCH 0837/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220821=20risiOS-=20A=20Friendly=20Fedora=20Spin=20?= =?UTF-8?q?with=20Distinctive=20Features.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y Fedora Spin with Distinctive Features.md | 162 ++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 sources/tech/20220821 risiOS- A Friendly Fedora Spin with Distinctive Features.md diff --git a/sources/tech/20220821 risiOS- A Friendly Fedora Spin with Distinctive Features.md b/sources/tech/20220821 risiOS- A Friendly Fedora Spin with Distinctive Features.md new file mode 100644 index 0000000000..8de33f96e4 --- /dev/null +++ b/sources/tech/20220821 risiOS- A Friendly Fedora Spin with Distinctive Features.md @@ -0,0 +1,162 @@ +[#]: subject: "risiOS: A Friendly Fedora Spin with Distinctive Features" +[#]: via: "https://www.debugpoint.com/risios-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +risiOS: A Friendly Fedora Spin with Distinctive Features +====== +risiOS is a nifty little Fedora-based distro with its unique set of features. A must-try for GNOME fans. + +risiOS is a Fedora workstation-based distro that ships unique tools and features for new users in Fedora. It is designed to make your Fedora journey easier by providing options at your fingertips. It’s a must-try distro because you get the Fedora GNOME offerings while enjoying additional features. + +In this article, I review risiOS 36 (based on [Fedora 36][1]), released in August 2022. + +### risiOS Review + +#### Installation + +Before I give details about the experience, there are several essential items regarding the installation. + +The installer size is reasonably small, 1.6 GB, and the installation uses Fedora’s installer. + +As per the minimum system requirement, risiOS asks for only 2GB of memory which is quite impressive. + +The tested version (Fedora 36 The Big Beta) did not show any surprises in installation – everything was pretty smooth. + +#### The desktop + +![risiOS Desktop version 36][2] + +Since it’s based on the Fedora workstation, the default desktop is GNOME with all Fedora’s built-in features. But there is some unique characteristic about this OS which I will describe soon. + +But first, let’s talk about the look. + +The clock, calendar, and quick settings menu are identical to the default GNOME. At the top left, the only difference is the risiOS logo. This version which I am reviewing, has [GNOME 42][3]. So, you won’t have the [newly designed quick settings][4]. + +Besides that, the workspace, application menu and essential items are the same as the Fedora workstation. + +A vibrant wallpaper featuring the risiOS logo is a distinguishing factor. + +#### Selling points of risiOS + +Although the look is the same, there are some unique items which risiOS brings. + +First, the welcome app from risiOS has some unique features – not the usual welcome stuff you see in distros. The “first step” items are suitable for new and advanced users. The UI design is to the point. No additional talks and to-the-point items. Good. + +What do you get here? You have the option to install NVIDIA drivers and [set up RPM fusion][5] and [Flatpak][6] with just one click of a button. + +![risiOS Welcome screen – First steps][7] + +In addition, there are Web apps and a built-in customization app launcher for additional tweaks. + +Most of the new users of Fedora may not know what RPM Fusion is or if it exists. Since Fedora is still less popular than Ubuntu among the new users – it’s a great addition to risiOS to provide a direct option to install these with a description. + +![Quick setup in Welcome wizard][8] + +Furthermore, a set of quick setup options gives you a one-click method to set up your PC for various tasks, such as gaming, video production, audio production, etc. + +But how? It uses a new method or a script called risiScript. + +#### risiScript + +The devs of this distro developed a new app install script called risiScript. Remember the [AUR of Arch Linux][9]? + +It’s similar to that concept. + +The risiScript is a simple text file with instructions for installing software. It’s the bash scripts but with a wrapper and GUI. + +So, the one-click install buttons you see in the welcome app – are all executing risiScript at the backend. The GUI is written in Python (I believe), and the scripts executing are the actual bash commands. + +Since it is open-source, risiScript has potential for other non-Arch distros. Distro creators can adopt this for various GUI-driven tasks, encapsulating complex bash scripts. You can find the code on [GitHub for risiScript][10]. + +![Sample risiScript for setting up Flathub repo][11] + +#### risiTweaks + +This is my favourite app in this distro. So, risiTweaks enables you to control and change different areas of the GNOME desktop. At first glance, it might feel like the GNOME Tweaks Tool from the look of it. + +But the features are packed. + +Firstly, you can change the accent colour in Fedora, which is yet to arrive in GNOME upstream from Ubuntu. Secondly, it has built-in GTK3 and GTK4 theme chooser with icon and cursor themes. + +![risiTweaks][12] + +Moreover, since this app has a built-in GNOME extension manager, you don’t need to install any other app. However, you can not search and install extensions from this app. + +Other features include desktop layout options such as clocks, battery percentage, system tray, mouse and keyboard settings. Also, you can change various Window settings such as modal dialog, window title bar actions, window button layouts and more. + +I wonder whether you can install this app on a normal Fedora workstation and see whether it works. It will be fun to see what happens. + +#### Web apps + +Another excellent item which is available is the Web app. The devs of this distro forked the Linux Mint’s Web app and created a GTK-based Web app manager and launcher. + +I am saying “manage” because it gives you an excellent GTK window to manage your custom web apps, plus a good list of prebuilt web apps for popular websites. I don’t remember seeing this in Linux Mint’s web app tool. + +![Web apps in risiOS][13] + +#### Default apps + +The default browser is Chromium instead of Firefox, and the GTK drawing app is available for quick drawings. And the rest of the apps are the same as what the Fedora workstation provides. LibreOffice is not installed; however, there is OnlyOffice repo is enabled, although it is not installed (I don’t know why). + +Some of the software is distributed via the copr repo for risiOS which the developers create. + +If you are wondering about performance, I would say it’s the same as the Fedora workstation edition. + +Finally, the nice risiOS wallpaper alongside one or two new wallpapers gives it a nice touch. + +### Summary of risiOS offerings + +With that said, here’s a summary of risiOS on what you get. + +* At its core, identical to Fedora Workstation +* risiTweaks is full of features, including managing the GNOME Extensions +* Create your web apps with ease and also install web apps from the store +* Powerful risiScript for better user experience +* Curated apps delivered via risiOS copr +* Small team, hence the releases is a little delayed after Fedora official launches +* One-click options to make your system for gaming, development, creative work and so on. + +Overall, it’s a nice Fedora spin targeted to the new users who want to use Fedora. The built-in features to install NVIDIA, RPM Fusion and apps like Webapps, risiTweaks drawing will help new folks. Then again, to become more user-friendly, Fedora needs to change the installer – most importantly, the partition module. + +Since there are few Fedora-based community spins, such as [Ultramarine Linux][14], risiOS caters to some specific users. + +It’s a friendly little distro. Give it a try. + +You can download risiOS from the [official website][15]. + +![Join our Telegram channel and stay informed on the move.][16] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/risios-review/ + +作者:[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/fedora-36-features/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/risiOS-Desktop-version-36.jpg +[3]: https://www.debugpoint.com/gnome-42/ +[4]: https://www.debugpoint.com/gnome-43-quick-settings/ +[5]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[6]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/risiOS-Welcome-screen-First-steps.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-setup-in-Welcome-wizard.jpg +[9]: https://www.debugpoint.com/install-yay-arch/ +[10]: https://github.com/risiOS/risi-script +[11]: https://www.debugpoint.com/wp-content/uploads/2022/08/Sample-risiScript.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/08/risiTweaks.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/08/Web-apps.jpg +[14]: https://www.debugpoint.com/ultramarine-linux-36/ +[15]: https://risi.io/download/ +[16]: https://t.me/debugpoint From 751ad128475dbdbd325b50392e60acd794e7375c Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 22 Aug 2022 08:32:56 +0800 Subject: [PATCH 0838/3123] translated --- ...Desktop Linux Market Share- August 2022.md | 68 ------------------- ...Desktop Linux Market Share- August 2022.md | 68 +++++++++++++++++++ 2 files changed, 68 insertions(+), 68 deletions(-) delete mode 100644 sources/tech/20220817 Desktop Linux Market Share- August 2022.md create mode 100644 translated/tech/20220817 Desktop Linux Market Share- August 2022.md diff --git a/sources/tech/20220817 Desktop Linux Market Share- August 2022.md b/sources/tech/20220817 Desktop Linux Market Share- August 2022.md deleted file mode 100644 index 660e9cc7ab..0000000000 --- a/sources/tech/20220817 Desktop Linux Market Share- August 2022.md +++ /dev/null @@ -1,68 +0,0 @@ -[#]: subject: "Desktop Linux Market Share: August 2022" -[#]: via: "https://itsfoss.com/linux-market-share/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Desktop Linux Market Share: August 2022 -====== - -Every year, we discuss the year of the Linux desktop. It can’t be helped when we see an increase in the operating system’s market share in the consumer space. - -![linux desktop market share][1] - -Of course, Linux dominates the entire cloud industry (Web host, cloud computing, data warehouse, etc.). Here, we focus only on the desktop Linux market share. - -**If you’re new to the Linux world**, Linux is not an operating system, it is a kernel. But, we tend to term “Linux” as an OS to keep things simple.You can learn [what Linux is in our explainer article][2]. - -One day, we hope that Linux distributions dominate the desktop operating market share in the future. But, what do the current trends say? Is it the year of the Linux desktop yet? - -The trends change every month. Last year, Linux could have a better grip over the market share compared to this year. So, it is vital to track the latest reports. - -Here, we try to keep track of the latest trends in the form of monthly updated reports from different sources. - -### Operating System Market Share: July 2022 - -We update the available information every month. Note that the information available for the last month gets published next month. So, for example, when we update the report in the month of August, it will include the statistics for July. - -Among the desktop operating systems available (Windows, macOS, and Chrome OS), Linux usually tends to occupy the **third position** overall. - -Some of the latest stats include: - -* [Net Marketshare][3]: The current Linux market share is 1.68% compared to 6.09% for macOS and 91.40% for Windows. -* [Statcounter][4]: Linux occupies 2.76% of the market share compared to 14.51% for macOS, and 75.21% for Windows. -* [W3Schools][5] (last updated on May 2022): Linux has a grip on 4.2% of the market share, compared to 9.2% of macOS and 70% of Windows. -* [Steam Survey][6]: In terms of desktop gaming, Linux has a market share of 1.23% when compared to 1.74% for macOS, and 97.03% for Windows. -* [Statista][7] (last updated on June 2022): The Linux desktop market share was 2.42% when compared to 14.64% for macOS, and 76.33% for Windows. -* [Stack Overflow Survey][8]: Among the developers who participate in the Stack Overflow survey, 40.23% of users use the Linux-based operating system for personal use and 39.89% of those use it for professional use. - -Every source utilizes a different method of data collection. The market share constantly changes, which is why we decided to update this report regularly, instead of making separate posts on slight changes to the market share. - -**Overall**, it looks like Linux as a desktop operating system is popular among developers, and is eventually influencing gamers, and other consumers as an alternative operating system. - -*What do you think about the trends? Do you see Linux overtake macOS in terms of desktop market share? Share your thoughts in the comments below.* - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/linux-market-share/ - -作者:[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/wp-content/uploads/2017/09/linux-desktop-market-share.jpg -[2]: https://itsfoss.com/what-is-linux/ -[3]: https://www.netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Custom%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222021-12%22%2C%22dateEnd%22%3A%222022-07%22%2C%22segments%22%3A%22-1000%22%7D -[4]: https://gs.statcounter.com/os-market-share/desktop/worldwide -[5]: https://www.w3schools.com/browsers/browsers_os.asp -[6]: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=linux -[7]: https://www.statista.com/statistics/218089/global-market-share-of-windows-7/ -[8]: https://survey.stackoverflow.co/2022/#technology-most-popular-technologies diff --git a/translated/tech/20220817 Desktop Linux Market Share- August 2022.md b/translated/tech/20220817 Desktop Linux Market Share- August 2022.md new file mode 100644 index 0000000000..16b0f29cc3 --- /dev/null +++ b/translated/tech/20220817 Desktop Linux Market Share- August 2022.md @@ -0,0 +1,68 @@ +[#]: subject: "Desktop Linux Market Share: August 2022" +[#]: via: "https://itsfoss.com/linux-market-share/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +桌面 Linux 市场份额:2022 年 8 月 +====== + +每年,我们都会讨论 Linux 桌面年。当我们看到操作系统在消费者领域的市场份额有所增加时,这是无济于事的。 + +![linux desktop market share][1] + +当然,Linux 主导着整个云行业(Web 主机、云计算、数据仓库等)。在这里,我们只关注桌面 Linux 的市场份额。 + +**如果你是 Linux 世界的新手**,Linux 不是一个操作系统,它是一个内核。但是,为了简单起见,我们倾向于将 “Linux” 称为操作系统。你可以在我们的解释文章中了解 [Linux 是什么][2]。 + +有朝一日,我们希望 Linux 发行版在未来的桌面操作市场份额中占据主导地位。但是,当前的趋势说明了什么?现在是 Linux 桌面年了吗? + +趋势每个月都在变化。去年,与今年相比,Linux 可能会更好地控制市场份额。因此,跟踪最新报告至关重要。 + +在这里,我们试图以来自不同来源的每月更新报告的形式跟踪最新趋势。 + +### 操作系统市场份额:2022 年 7 月 + +我们每个月都会更新可用信息。请注意,上个月的可用信息将在下个月发布。因此,例如,当我们在 8 月份更新报告时,它将包括 7 月份的统计数据。 + +在可用的桌面操作系统(Windows、macOS 和 Chrome OS)中,Linux 通常倾向于占据**第三位**。 + +一些最新的统计数据包括: + +* [Net Marketshare][3]:当前 Linux 市场份额为 1.68%,而 macOS 为 6.09%,Windows 为 91.40%。 +* [Statcounter][4]:Linux 占据 2.76% 的市场份额,而 macOS 为 14.51%,Windows 为 75.21%。 +* [W3Schools][5](最后更新于 2022 年 5 月):Linux 占据 4.2% 的市场份额,而 macOS 为 9.2%,Windows 为 70%。 +* [Steam 调查][6]:在桌面游戏方面,Linux 的市场份额为 1.23%,而 macOS 为 1.74%,Windows 为 97.03%。 +* [Statista][7](最后更新于 2022 年 6 月):Linux 桌面市场份额为 2.42%,而 macOS 为 14.64%,Windows 为 76.33%。 +* [Stack Overflow 调查][8]:参与 Stack Overflow 调查的开发者中,40.23% 的用户将基于 Linux 的操作系统用于个人用途,39.89% 的用户将其用于专业用途。 + +每个来源都使用不同的数据收集方法。市场份额不断变化,这就是为什么我们决定定期更新此报告,而不是单独发布关于市场份额微小变化的帖子。 + +**总体而言**,看起来 Linux 作为桌面操作系统在开发人员中很受欢迎,并最终影响游戏玩家和其他消费者作为替代操作系统。 + +*你对趋势有何看法?你认为 Linux 会在桌面市场份额方面超过 macOS 吗?在下面的评论中分享你的想法。* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-market-share/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2017/09/linux-desktop-market-share.jpg +[2]: https://itsfoss.com/what-is-linux/ +[3]: https://www.netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Custom%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222021-12%22%2C%22dateEnd%22%3A%222022-07%22%2C%22segments%22%3A%22-1000%22%7D +[4]: https://gs.statcounter.com/os-market-share/desktop/worldwide +[5]: https://www.w3schools.com/browsers/browsers_os.asp +[6]: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=linux +[7]: https://www.statista.com/statistics/218089/global-market-share-of-windows-7/ +[8]: https://survey.stackoverflow.co/2022/#technology-most-popular-technologies From 016ef4a0d665242228bcc653158501376b390e4e Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 22 Aug 2022 08:41:13 +0800 Subject: [PATCH 0839/3123] translating --- ...818 Convert Docker Run Commands Into Docker-Compose Files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md index 61ef314bd9..5ddc7de984 100644 --- a/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md +++ b/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e3f7b191fbaed826839790f02c0364ca18d36dc8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 22 Aug 2022 16:07:57 +0800 Subject: [PATCH 0840/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @geekpi https://linux.cn/article-14954-1.html 为了方便查看,我改成了表格 --- ...Desktop Linux Market Share- August 2022.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) rename {translated/tech => published}/20220817 Desktop Linux Market Share- August 2022.md (61%) diff --git a/translated/tech/20220817 Desktop Linux Market Share- August 2022.md b/published/20220817 Desktop Linux Market Share- August 2022.md similarity index 61% rename from translated/tech/20220817 Desktop Linux Market Share- August 2022.md rename to published/20220817 Desktop Linux Market Share- August 2022.md index 16b0f29cc3..749517b4cc 100644 --- a/translated/tech/20220817 Desktop Linux Market Share- August 2022.md +++ b/published/20220817 Desktop Linux Market Share- August 2022.md @@ -3,47 +3,50 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14954-1.html" -桌面 Linux 市场份额:2022 年 8 月 +桌面 Linux 市场份额(2022 年 7 月) ====== -每年,我们都会讨论 Linux 桌面年。当我们看到操作系统在消费者领域的市场份额有所增加时,这是无济于事的。 +每年,我们都会讨论 Linux 桌面年。当我们看到操作系统在消费者领域的市场份额有所增加时,却知道是无望的。 ![linux desktop market share][1] -当然,Linux 主导着整个云行业(Web 主机、云计算、数据仓库等)。在这里,我们只关注桌面 Linux 的市场份额。 +当然,Linux 主导着整个云行业(Web 托管、云计算、数据仓库等)。在这里,我们只关注桌面 Linux 的市场份额。 -**如果你是 Linux 世界的新手**,Linux 不是一个操作系统,它是一个内核。但是,为了简单起见,我们倾向于将 “Linux” 称为操作系统。你可以在我们的解释文章中了解 [Linux 是什么][2]。 +**如果你是 Linux 世界的新手**,可能不知道,Linux 不是一个操作系统,它是一个内核。但是,为了简单起见,我们倾向于将 “Linux” 称为操作系统。你可以在我们的解释文章中了解 [Linux 是什么][2]。 有朝一日,我们希望 Linux 发行版在未来的桌面操作市场份额中占据主导地位。但是,当前的趋势说明了什么?现在是 Linux 桌面年了吗? -趋势每个月都在变化。去年,与今年相比,Linux 可能会更好地控制市场份额。因此,跟踪最新报告至关重要。 +趋势每个月都在变化。去年,与今年相比,Linux 可能市场份额更多一些。因此,跟踪最新报告至关重要。 在这里,我们试图以来自不同来源的每月更新报告的形式跟踪最新趋势。 ### 操作系统市场份额:2022 年 7 月 -我们每个月都会更新可用信息。请注意,上个月的可用信息将在下个月发布。因此,例如,当我们在 8 月份更新报告时,它将包括 7 月份的统计数据。 +> 我们每个月都会更新可用信息。请注意,上个月的信息将在下个月发布。因此,例如,当我们在 8 月份更新报告时,它将包括 7 月份的统计数据。 在可用的桌面操作系统(Windows、macOS 和 Chrome OS)中,Linux 通常倾向于占据**第三位**。 一些最新的统计数据包括: -* [Net Marketshare][3]:当前 Linux 市场份额为 1.68%,而 macOS 为 6.09%,Windows 为 91.40%。 -* [Statcounter][4]:Linux 占据 2.76% 的市场份额,而 macOS 为 14.51%,Windows 为 75.21%。 -* [W3Schools][5](最后更新于 2022 年 5 月):Linux 占据 4.2% 的市场份额,而 macOS 为 9.2%,Windows 为 70%。 -* [Steam 调查][6]:在桌面游戏方面,Linux 的市场份额为 1.23%,而 macOS 为 1.74%,Windows 为 97.03%。 -* [Statista][7](最后更新于 2022 年 6 月):Linux 桌面市场份额为 2.42%,而 macOS 为 14.64%,Windows 为 76.33%。 -* [Stack Overflow 调查][8]:参与 Stack Overflow 调查的开发者中,40.23% 的用户将基于 Linux 的操作系统用于个人用途,39.89% 的用户将其用于专业用途。 +| 报告 | 备注 | Linux | macOS | Windows | +| -- | -- | -- | -- | -- | +| [Net Marketshare][3] | | 1.68% | 6.09% | 91.40% | +| [Statcounter][4] | | 2.76% | 14.51% | 75.21% | +| [W3Schools][5] | 最后更新于 2022 年 5 月 | 4.2% | 9.2% | 70% | +| [Steam 调查][6] | 在桌面游戏方面 | 1.23% | 1.74% | 97.03% | +| [Statista][7] | 最后更新于 2022 年 6 月 | 2.42% | 14.64% | 76.33% | + +另外,参与 [Stack Overflow 调查][8] 的开发者中,40.23% 的用户将基于 Linux 的操作系统用于个人用途,39.89% 的用户将其用于专业用途。 每个来源都使用不同的数据收集方法。市场份额不断变化,这就是为什么我们决定定期更新此报告,而不是单独发布关于市场份额微小变化的帖子。 **总体而言**,看起来 Linux 作为桌面操作系统在开发人员中很受欢迎,并最终影响游戏玩家和其他消费者作为替代操作系统。 -*你对趋势有何看法?你认为 Linux 会在桌面市场份额方面超过 macOS 吗?在下面的评论中分享你的想法。* +*你对这种趋势有何看法?你认为 Linux 会在桌面市场份额方面超过 macOS 吗?在下面的评论中分享你的想法。* -------------------------------------------------------------------------------- @@ -52,7 +55,7 @@ via: https://itsfoss.com/linux-market-share/ 作者:[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/) 荣誉推出 From d43c09ed1de1eae3add777cfdd0af5b3e0574aab Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 22 Aug 2022 16:51:51 +0800 Subject: [PATCH 0841/3123] ALL @wxy https://linux.cn/article-14955-1.html --- ... Open Source Contributors, Says A Study.md | 39 +++++++++++++++++++ ... Open Source Contributors, Says A Study.md | 36 ----------------- 2 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md delete mode 100644 sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md diff --git a/published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md b/published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md new file mode 100644 index 0000000000..2efaee83ce --- /dev/null +++ b/published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md @@ -0,0 +1,39 @@ +[#]: subject: "Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study" +[#]: via: "https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14955-1.html" + +一项研究显示,谷歌在开源贡献方面超过了微软 +====== + +![](https://www.opensourceforu.com/wp-content/uploads/2022/08/coding-new-1536x864.jpg) + +> 根据 Aiven 的一份新报告,谷歌已经提高了其对开源软件的投入,并在活跃贡献者方面超过了微软。 + +根据 Aiven 的报告(LCTT 译注:我没有找到这份报告),谷歌目前的活跃贡献者多于微软,这要归功于对开源代码库 GitHub 的每月提交量同比增长 20%。根据开源贡献者指数(OCSI)的数据,谷歌 7 月份有 5421 名活跃贡献者,而微软的活跃贡献者为 5268 名。 + +Aiven 联合创始人兼首席技术官 Heikki Nousiainen 说,谷歌超过微软“特别令人惊讶”。 + +“这其中的一个因素是微软对开源项目的提交逐年下降,”Nousiainen 说,“然而,微软对开发者自由和创新的投入是一致的,该公司是开源的主要参与者,甚至在 2018 年收购了 GitHub。” + +Aiven 指出,亚马逊已经开始更加重视开源计划,其对 OpenSearch(ElasticSearch 的复刻)的支持以及 GitHub 上项目数量的增加就是证明。Nousiainen 认为,亚马逊对 OpenSearch 和 ElasticSearch 的支持代表了“该公司方向的重大改变”,以及对重大开源项目掌舵的愿望。据 Aiven 介绍,这些科技巨头正在迅速扩大对开源软件的使用。根据数据,现在来自亚马逊、微软和谷歌的活跃 GitHub 贡献者比六年前多了 300%。 + +“这项研究的总体信息是积极的,”Nousiainen 说,“在开源社区有大量的创新在继续发生,其结果使我们所有人受益。数不清的人正在为其他人树立一个榜样。” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/ + +作者:[Laveesh Kocher][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://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed diff --git a/sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md b/sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md deleted file mode 100644 index b505e03ff0..0000000000 --- a/sources/news/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md +++ /dev/null @@ -1,36 +0,0 @@ -[#]: subject: "Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study" -[#]: via: "https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study -====== -According to a new report by Aiven, Google has upped its commitments to open source software and surpassed Microsoft in terms of active contributors. According to Aiven, Google currently has more active contributors than Microsoft thanks to a 20 percent increase in year-over-year monthly commits to the open source code repository GitHub. Google had 5,421 active contributors in July compared to Microsoft’s 5,268 active contributors, according to data from the Open Source Contributor Index (OCSI). - -Aiven co-founder and CTO Heikki Nousiainen said Google overtaking Microsoft was “particularly surprising”. - -“A factor in this has been a decline in Microsoft’s year-on-year commits to open source projects,” Nousiainen said. “However, Microsoft commitment to developer freedom and innovation is consistent, with the company being a major player in open source, and even purchasing GitHub in 2018.” - -According to a new report by Aiven, Google has upped its commitments to open source software and surpassed Microsoft in terms of active contributors. According to Aiven, Google currently has more active contributors than Microsoft thanks to a 20 percent increase in year-over-year monthly commits to the open source code repository GitHub. Google had 5,421 active contributors in July compared to Microsoft’s 5,268 active contributors, according to data from the Open Source Contributor Index (OCSI). - -Aiven pointed out that Amazon has started to put more of an emphasis on open-source initiatives, as evidenced by its support for OpenSearch, an ElasticSearch fork, and an increase in the number of projects on GitHub. Nousiainen argued that Amazon’s support for OpenSearch and ElasticSearch represented a “significant change of direction for the firm” and a desire to take the helm of significant open source projects. According to Aiven, these tech giants are quickly expanding their use of open source software. According to the data, there are now 300 percent more active GitHub contributors from Amazon, Microsoft, and Google than there were six years ago. - -“The overall message of the research is positive,” Nousiainen said. “There’s a huge amount of innovation continuing to happen in the open-source community and the results benefit us all. The hyperscalers are setting an example for others to follow.” - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/ - -作者:[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 From 33179e5b4ba980636daf74c35f1aaf4c2ef8c41a Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 22 Aug 2022 19:58:47 +0800 Subject: [PATCH 0842/3123] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E5=88=86=E7=B1=BB=20&=20=E6=B8=85=E7=90=86=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ud Save Support, and Anti-cheat Runtime.md | 114 ------------- ...s out with Run-Time Kernel Verification.md | 117 ------------- ...llions Of Websites Vulnerable To Attack.md | 36 ---- ...4- Top New Features and Release Details.md | 156 ------------------ ... Handy Changes to Tools, and Much More!.md | 95 ----------- ...20 There is Life After the Death of x86.md | 0 ...ed Windows or macOS for the First Time-.md | 0 7 files changed, 518 deletions(-) delete mode 100644 sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md delete mode 100644 sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md delete mode 100644 sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md delete mode 100644 sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md delete mode 100644 sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md rename sources/{news => talk}/20220820 There is Life After the Death of x86.md (100%) rename sources/{news => talk}/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md (100%) diff --git a/sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md b/sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md deleted file mode 100644 index b8364f2f88..0000000000 --- a/sources/news/20220811 Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime.md +++ /dev/null @@ -1,114 +0,0 @@ -[#]: subject: "Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime" -[#]: via: "https://news.itsfoss.com/heroic-games-launcher-2-4-0-release/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Heroic Games Launcher 2.4.0 Released With Epic Overlay, GOG Cloud Save Support, and Anti-cheat Runtime -====== -Heroic Games Launcher is adding solid features for Linux gamers. If you haven’t used it yet, try out its new release. - -![heroic games][1] - -As [gaming on Linux][2] continues to improve, so do the tools we use to play those games. Heroic Games Launcher is a great example of such a tool, as it gives users a native way to access and play Epic Games Store games on their Linux machines. - -One of its older releases, [Heroic 2.0.0][3], brought major UI improvements, and this release further builds on those. - -### Heroic Games Launcher 2.4.0: What’s New? - -Heroic Games Launcher 2.4.0 brings numerous major upgrades, including: - -* GOG Cloud Save support -* Epic overlay support -* EAC and BattleEYE runtime -* Anti-cheat information on the game page -* Add game shortcut to Steam option - -### GOG Cloud Save Support - -![][4] - -When moving between devices, cloud saves quickly become an essential feature. However, until recently, this has been noticeably missing from Heroic when playing GOG games. This changes with the 2.4.0 release. - -Now, GOG cloud save works on all supported platforms. Note that the Linux-native games on GOG do not support cloud saves, so you can only expect it with Windows games running through Wine/Proton. - -### Epic Overlay Support - -The Epic Overlay, a feature similar to the Steam overlay, now has full support from within Heroic Launcher. This is possible thanks to the new DXVK version (Vulkan-based implementation of Direct 3D), which also fixed several bugs in games. - -You can enable it by going to the Heroic settings and finding it among the tools. As initial feature support, it may not work flawlessly. You should test it out for yourself. - -### Anti-Cheat Information Via Game Page - -![][5] - -Anti-cheat software has always been problematic when it comes to gaming on Linux. In fact, a lot of anti-cheat software only started supporting Linux when the Steam Deck was released. However, they remain a problem until now. - -Fortunately, the community has built a plethora of resources to help share information on how well games work on Wine and Proton. - -While you can rely on [ProtonDB][6], it may not be the most convenient option. - -Now, you get the necessary information on anti-cheat on the game status page using data pulled from *areweanticheatyet.com*. - -### Add To Steam Option - -![][7] - -We are all familiar with the pain of juggling between launchers to access our games. There are different pieces of software have tried to overcome this over the years, but Steam remains the most popular game launcher. - -With that in mind, Heroic Games Launcher 2.4.0 now lets you directly add your games to your Steam library. While the Heroic Games Launcher still runs in the background, it gives a better experience for users comfortable with Steam. - -Note that this support is still experimental and may not work with portable games. - -### Other Improvements - -![][8] - -Alongside the ones previously mentioned, Heroic 2.4.0 brings in several refinements that include: - -* An easier way to add environmental variables or wrappers. -* Find the current download/update(s) on the sidebar. -* Added auto-complete feature to the search bar. -* Added information boxes for things such as VKD3D and DXVK. -* Officially signed setup files for Windows to prevent Malware warnings. -* Ability to use HTTP instead of HTTPS when downloading games. -* Ability to force a game update (a feature sorely missing from the official Epic Games Launcher). -* Heroic will now use libraries from its downloaded version for Proton/Wine games instead of system libraries. You can change the setting if needed. -* Updated Electron framework. - -For a full list of changes, I encourage you to take a look at the [release notes][9]. - -### Wrapping Up - -With all these exciting improvements, I can’t wait to see what the next upgrade will have in store for us. You can grab the AppImage file for this release and get started on any Linux distribution. - -Alternatively, if you’re using a mainstream distro, there is probably a package available to download from their GitHub releases page. - -[Download Heroic Game Launcher][10] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/heroic-games-launcher-2-4-0-release/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-games-launcher-2-4-0.jpg -[2]: https://itsfoss.com/linux-gaming-guide/ -[3]: https://news.itsfoss.com/heroic-games-launcher-2-release/ -[4]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-2.4.0-gog-backups.png -[5]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-2.4.0-anticheat.png -[6]: https://www.protondb.com/ -[7]: https://news.itsfoss.com/wp-content/uploads/2022/07/heroic-2.4.0-add-to-steam-1024x509.png -[8]: https://news.itsfoss.com/wp-content/uploads/2022/08/heroic-games-launcher-shot-1.jpg -[9]: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.4.0 -[10]: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases diff --git a/sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md b/sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md deleted file mode 100644 index b9c556d881..0000000000 --- a/sources/news/20220816 Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification.md +++ /dev/null @@ -1,117 +0,0 @@ -[#]: subject: "Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification" -[#]: via: "https://www.debugpoint.com/linux-kernel-6-0-rc1/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.0 RC1 is out with Run-Time Kernel Verification -====== -Linus Torvalds releases Linux Kernel 6.0 RC1 for everyone to test, and here’s a feature recap. - -![Linux Kernel 6.0][1] - -Following the [Linux Kernel 5.19][2] released a few days back, Linus [released the first release candidate][3] of Linux 6.0 for testing. It officially closes the merge window for this release while you test. - -### Why 6.0? - -Usually, the mainline Kernel version increases by the minor version and this release should have been Kernel 5.20. However, Linus decided to increase the significant version number, hence the Kernel 6.0. - -> Despite the major number change, there’s nothing fundamentally different about this release – I’ve long eschewed the notion that major numbers are meaningful, and the only reason for a “hierarchical” numbering system is to make the numbers easier to remember and distinguish. Which is why when the minor number gets to around 20 I prefer to just increment the major number instead and reset to something smaller. - -Let’s take a look at what’s in store. - -### Linux Kernel 6.0 RC1 – New Features - -#### Processors - -AMD Zen systems gets a [performance boost][4] with updated NUMA balancing in the Kernel scheduler. - -The Ratbleed speculative execution exploits fixing [continues][5] in this release affecting Intel 8th Gen+ and AMD Zen 1+ CPU family. Although the Ratbleed has not yet been found in the wild (only in Lab), the fix continues in this Kernel. - -Lenovo and AMD [bring][6] the Automatic Mode Transition (AMT) support for Ryzen power ThinkPad laptops. This feature should give firmware-based power handling in those laptops with better efficiency. - -New audio hardware [support][7] for AMD Ryzen 7000 desktop processors (Raphael) lands in this release with ACP 6.x support. - -AMD is [preparing][8] for the release day with additional Instruction based sampling support for the Zen 4 series. - -More CPU [temperature monitoring code][9] lands for AMD 17th and 19th family of models. - -Initial work starts landing for Lenovo’s ARM Laptop X13 featuring Qualcomm Snapdragon 8cx Gen3 (SC8280XP) CPU. - -Likewise, in all releases, a bunch of SOC chips get support in Linux Kernel 6. The most notable ones include NXP i.MX93 SoC (primarily used for smart devices in home solutions). - -Here’s a quick list (not complete) of the SOCs that gets [support][10] in this instalment. - -* Broadcom SOCs for broadband devices * BCM63178 * BCM63158 * BCM4912 * BCM6858 * BCM6878 * BCM6846 * BCM63146 * BCM6856 * BCM6855 * BCM6756 * BCM63148 * BCM6813 -* Allwinner’s H616 (IPTV, OTT streaming) -* Marvell Prestera 98DX2530 -* Google Chameleon v3 FPGA - -In addition, a bunch of RISC-V processor code was introduced with an aim to support it in future. - -#### GPU - -Work continues in this Kernel release for Intel DG2/Alchemist and AMD RDNA3 graphics cards; the support is entirely not there but is in progress for future versions. - -A bunch of frame buffer device driver [update][11] (mostly fixes) arrives for Atari GPUs. Most noteworthy are the patchsets to fix VGA modes, colour handling and numerous code clean-ups. - -Intel Meteor Lake GPU [support][12] is starting up in this release. - -#### Storage and file systems - -Like all releases, the famous and supported file systems are updated and improved. - -Since the usage of SSDs is increasing, the flash-friendly file system (F2FS) [enhances][13] memory handling, garbage collection optimization and more. - -One Microsoft employee provides a [patch][14] to improve locking performance & reliability for CIF/SMB3 protocol to improve multi-channel operation over the network. - -#### Additional Changes - -Other noteworthy changes across this Kernel release include early work for Wi-Fi 7 support, more feature updates on the ongoing random number generation and setting up system hostname via Kernel parameter. - -Furthermore, one of the vital features is the “Run-Time Verification” codebase which helps Linux run in safety-critical infrastructure. The method takes an approach where the system specification instruction set is compared against the actual execution instruction set by re-implementing instruction sets at run-time. This is based on a paper which you can read [here][15]. The actual patch is present on this [page][16]. - -### Download - -You can download the source tree from the following page: - -| - | - | - | - | - | -| :- | :- | :- | :- | :- | -| mainline: | 6.0-rc1 | [tarball] | [patch] | [browse] | - -If you are running benchmarks, testing new hardware and finding issues, report to the Kernel mailing list. - -The Linux Kernel 6.0 is expected to be released by the beginning of Q4 2022, i.e. October timeframe. Hence, Ubuntu 22.10 may get this version (although I am doubtful about that). - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/linux-kernel-6-0-rc1/ - -作者:[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/08/kernel6rc1.jpg -[2]: https://www.debugpoint.com/2022/05/linux-kernel-5-18/ -[3]: https://lore.kernel.org/lkml/CAHk-=wgRFjPHV-Y_eKP9wQMLFDgG+dEUHiv5wC17OQHsG5z7BA@mail.gmail.com/T/#u -[4]: https://lore.kernel.org/lkml/Yufc5Mq1aqLVV%2FOv@gmail.com/T/#u -[5]: https://lore.kernel.org/lkml/Yvd%2Fg8RODN%2FpSkCX@gmail.com/T/#u -[6]: https://lore.kernel.org/lkml/19d29009-ab84-fffc-82dd-9754e65b092e@redhat.com/ -[7]: https://www.phoronix.com/news/AMD-Raphael-Audio-Driver-Linux -[8]: https://lkml.org/lkml/2022/8/4/694 -[9]: https://lore.kernel.org/lkml/Yue6jQd37wpssGeZ@zn.tnic/ -[10]: https://lore.kernel.org/linux-arm-kernel/CAK8P3a1DVcc=AV29AJJxMzBVoU-grFaNet0ndxPgPFvpK-ZANQ@mail.gmail.com/T/ -[11]: https://lore.kernel.org/lkml/Yu7J2Yj6UyAiE2Ne@ls3530/ -[12]: https://lists.freedesktop.org/archives/dri-devel/2022-July/364441.html -[13]: https://lore.kernel.org/lkml/YvE6fO1r0znOdr60@google.com/ -[14]: https://lore.kernel.org/lkml/CAH2r5mvaTWyWnPpYk=OPCbud85LEo5Oj=K2ZK56jmri6452zRQ@mail.gmail.com/ -[15]: https://dl.acm.org/doi/abs/10.1007/978-3-030-30446-1_17 -[16]: https://lore.kernel.org/lkml/20220803112014.7ffed04e@gandalf.local.home/ diff --git a/sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md b/sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md deleted file mode 100644 index 45f27aaa50..0000000000 --- a/sources/news/20220818 A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack.md +++ /dev/null @@ -1,36 +0,0 @@ -[#]: subject: "A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack" -[#]: via: "https://www.opensourceforu.com/2022/08/a-bug-in-open-source-makes-millions-of-websites-vulnerable-to-attack/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A Bug In Open Source Makes Millions Of Websites Vulnerable To Attack -====== -Experts have cautioned that hundreds of thousands of websites, including many utilising the.gov name, could suffer data loss. Git, an open source development platform, has a weakness that, if left unfixed, gives threat actors access to the kingdom’s secrets, according to cybersecurity specialists from Defense.com. - -It appears that there are several.git folders that ought to be hidden but are frequently not. Although a major problem, the researchers claim that Git users’ disregard for recommended practises is more to blame. A threat actor may locate these folders and download their contents with the aid of a custom Google dork. - -These folders’ files typically store the full history of the codebase, past code changes, comments, security keys, sensitive remote paths containing secrets, and plain-text password files. In addition to the apparent risk of revealing passwords and sensitive information, there is a hidden risk that hackers may analyse the code and discover more vulnerabilities that they will likely not be correcting but rather exploiting. - -Additionally, these folders might have API keys and database login information, providing threat actors even more access to private user information. According to Defense.com, 332,000 websites in total, including 2,500 on the.gov domain, were identified as potentially susceptible. - -“Open source(opens in new tab) technology always has the potential for security flaws, being rooted in publicly accessible code. However, this level of vulnerability is not acceptable,” commented Oliver Pinson-Roxburgh, CEO of Defense.com. “Organizations, including the UK government, must ensure they monitor their systems and take immediate steps to remediate risk.” - -According to Pinson-Roxburgh, Git is a very well-liked open source version control system with more than 80 million active users, and this kind of vulnerability on such a well-liked platform can have “severe ramifications” for affected organisations. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/a-bug-in-open-source-makes-millions-of-websites-vulnerable-to-attack/ - -作者:[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 diff --git a/sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md b/sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md deleted file mode 100644 index e1fe8db7de..0000000000 --- a/sources/news/20220818 LibreOffice 7.4- Top New Features and Release Details.md +++ /dev/null @@ -1,156 +0,0 @@ -[#]: subject: "LibreOffice 7.4: Top New Features and Release Details" -[#]: via: "https://www.debugpoint.com/libreoffice-7-4/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -LibreOffice 7.4: Top New Features and Release Details -====== -This post contains the top new features of LibreOffice 7.4 across Writer, Calc, Impress and other core modules. - -The LibreOffice team improves the famous free and open-source office product with each iteration. Perhaps the only stable and well-managed open-source project as a replacement to Microsoft Office. - -The LibreOffice 7.4 version, bringing regular updates to core modules including Calc, Writer and Impress with features and enhancements. Furthermore, in this release, the compatibility with Microsoft Office improved with changes to the core filters and platform updates. - -Before we round up the new features, here’s a tentative schedule for LibreOffice 7.4: - -### Schedule - -| Milestone | Release Date | -| :- | :- | -| Alpha 1 | May 9, 2022 – May 15, 2022 | -| Feature Freeze | Jun 6, 2022 – Jun 12, 2022 | -| Beta 1 | Jun 6, 2022 – Jun 12, 2022 | -| RC1 | Jul 4, 2022 – Jul 10, 2022 | -| RC2 | Jul 25, 2022 – Jul 31, 2022 | -| RC3 | Aug 8, 2022 – Aug 14, 2022 | -| Release 7.4 | Aug 15, 2022 – Aug 21, 2022 | - -### LibreOffice 7.4 Features - -#### Calc - -First and foremost, the most crucial change coming in 7.4 is the support of 16k columns in LibreOffice Calc. It was available in earlier LibreOffice 7.3 but hidden as an experimental option. Finally, it is open to support 16384 columns, i.e. up to XFD. Additional columns are going to help several high-volume data work. - -![LibreOffice 7.4 Calc now supports 16k columns.][1] - -Second, the Autosum button gets the following [additional functions][2] to improve productivity and save time. - -* COUNTA -* PRODUCT -* STDEV -* STDEVP -* VAR -* VARP - -![Additional options in Autosum button][3] - -Moreover, the height of the formula bar is now part of the *.ods files. Hence, you can see the height retained after saving the file and opening it. Earlier, it was being reset to the default height. It is one of the small changes but has a more significant impact on heavy Calc users. - -![Height of Calc Formula bar][4] - -In addition, a new menu option `Sheet > Navigate > Go to Sheet` shows an entire new dialog which is similar to the Writer’s Go to Page. - -#### Writer - -Firstly, the hyphenation settings get three new options. You can now specify the size of the hyphenation zone, minimum word length and ability to stop hyphenating the last word. - -![New Hyphenation settings][5] - -*Image credit: LibreOffice Team* - -Secondly, the menu item Tools > Update > Update now updates the preview of all OLE objects. Also, if you are importing a DOCX file in LibreOffice 7.4, the paragraph borders bring more clarity. In addition, the import also improves the Rich text and checkbox contents inside the text box for DOCX imports. Moreover, Write 7.4 now supports clearing breaks from Word files improving layout consistency. - -Secondly, the menu item `Tools > Update > Update all` now updates the preview of all OLE objects. - -Also, if you are importing a DOCX file in LibreOffice 7.4, the paragraph borders bring more clarity. In addition, the import also improves the Rich text and checkbox contents inside the text box for DOCX imports. - -Moreover, Writer 7.4 now supports clearing breaks from Word files improving layout consistency. - -#### Impress - -The significant change in Impress is a new Theme tab in the Slide properties for the master slide. It contains several accent colour options which control all the sildes in your presentation. It will be a really neat feature in this version. - -![New Theme option in Slide Master Properties][6] - -### Common Updates (across all modules) - -Firstly, the most important change as a standard feature is LibreOffice now supports WEBP images officially. You can directly export and import WebP images across Writer, Calc, Draw etc. Now you do not need additional software to convert WEBP images, especially in Linux systems. - -Moreover, the support for Windows compressed enhanced meta file (EMZ/WMZ) also lands in this release. - -![New WEBP Image Support][7] - -Secondly, the Fille > Recent Documents can remember the state of the last opened document, whether it was read-only or editable. - -The 3D shapes lighting gets some bug fixes and corrections corresponding to the ODF specifications. - -### Performance Updates - -A bunch of performance boosts also makes this an important release of LibreOffice. Here’s a quick recap of the performance boosts. - -* [The Text Layout performance gets around a 60% boost][8] -* [Calc formula re-calculation][9] -* Improved performance of [VLOOKUP][10], COUNTIF and SUMIF -* [And CSV file import][11] - -That’s not all. LibreOffice 7.4 also brings a huge set of filters (export and import) for Microsoft Office 365 file types, extended PDF export options (such as a sign) via command line, updated language support and API changes. - -### Download LibreOffice 7.4 - -You can download the LibreOffice 7.4 installer using the respective links (language English) for a fresh installation. - -* [RPM Package for Fedora and related distributions][12] -* [DEB packages for Ubuntu, Linux Mint and others][13] -* [Windows 10, 11 – 64-bit][14] -* [macOS 64 bit][15] -* [Mac OS X – ARM and Apple SIlicon, M1][16] - -**Ugrade** - -* Windows users can not upgrade, hence you need to uninstall first, and then reinstall. -* Linux users can find the [upgrade guide in this post][17]. - -If you need assistance, you can refer to our [guide here][18] to install latest version in Linux. Make sure to report any issues or bugs in the [official bug tracker.][19] - -LibreOffice 7.4 is [officially released on Aug 18, 2022][20]. - -*[Via Release Notes][21]* - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/libreoffice-7-4/ - -作者:[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/06/LibreOffice-7.4-Calc-now-supports-16k-columns.jpg -[2]: https://bugs.documentfoundation.org/show_bug.cgi?id=139602 -[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/Additional-formula-in-Autosum-tool.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/Height-of-Calc-Formula-bar.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-Hyphenation-settings.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-Theme-option-in-Slide-Master-Properties.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/New-WEBP-Image-Support.jpg -[8]: http://llunak.blogspot.com/2022/04/improving-text-layout-performance.html -[9]: https://bugs.documentfoundation.org/show_bug.cgi?id=119083 -[10]: https://bugs.documentfoundation.org/show_bug.cgi?id=146546 -[11]: https://bugs.documentfoundation.org/show_bug.cgi?id=94677 -[12]: https://www.libreoffice.org/download/download/?type=rpm-x86_64&version=7.4.0&lang=en-US -[13]: https://www.libreoffice.org/download/download/?type=deb-x86_64&version=7.4.0&lang=en-US -[14]: https://www.libreoffice.org/download/download/?type=win-x86_64&version=7.4.0&lang=en-US -[15]: https://www.libreoffice.org/download/download/?type=mac-x86_64&version=7.4.0&lang=en-US -[16]: https://www.libreoffice.org/download/download/?type=mac-aarch64&version=7.4.0&lang=en-US -[17]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ -[18]: https://www.debugpoint.com/2022/06/install-latest-libreoffice-ubuntu-linux/ -[19]: https://bugs.documentfoundation.org/ -[20]: https://debugpointnews.com/libreoffice-7-4-release/ -[21]: https://wiki.documentfoundation.org/ReleaseNotes/7.4 diff --git a/sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md b/sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md deleted file mode 100644 index 3a3e7539e0..0000000000 --- a/sources/news/20220819 Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: "Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!" -[#]: via: "https://news.itsfoss.com/krita-5-1-release/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More! -====== -The popular open source graphic design software Krita has a new release after eight months. - -![Krita 5.1 Focuses on Improved Usability, Handy Changes to Tools, and Much More!][1] - -Just at the end of last year, we had covered an article on [Krita 5.0][2]. This was a big update that brought a lot of new features and changes. - -For those unaware, Krita is a popular open-source graphics design software up there with the likes of GIMP and Photoshop. - -Krita has just finally received a new minor update after eight long months. - -Let’s take a look at what this release brings! - -### What’s New in Krita 5.1? - -If you like videos, the Krita team has created a demonstration video (as usual) to help you get familiar with some of the major changes in the release. - -![Everything new in Krita 5.1.0][3] - -As you may have figured out from the video, this release brings a host of improvements and changes. I’ve described some major highlights of the release down below if you prefer reading. - -#### Improvements to Tools - -Users will definitely adore the all-new Enclose and Fill tool. As the name suggests, you simply need to create an enclosed shape with your cursor over an area you wish to be filled. Krita then takes care of which section(s) to fill. For instance, you can use this tool to fill three spots together instead of individually filling them. - -Another new method added is the Continous Fill. You can drag your cursor over nearby regions to be filled automatically. This also includes alternate filling, like on a chessboard where you want to fill alternate squares. - -New shortcut settings have been added to Brushes including a new GUI option to set the max brush speed. - -#### Better Usability - -Touch gestures can now be configured according to the user’s needs. - -Users can easily view the entire canvas at its physical size or just view individual pixels at a time through a revamped version of an existing button called “use aspect of pixels”. - -Moreover, HSV color options have been added as well which include a slider for the color selector and adjustment filters. - -Oh, and there’s a Dual Colour selector option added too! - -#### Refreshed Layers - -The Layers dock is now much more detailed and cleaner than usual. - -A new and convenient addition is the ability to indent sub-layers within a group. This helps differentiate layers easily. - -You can even apply cut, copy, paste, and clear operations on multiple selected layers simultaneously. - -### Other Changes - -While this wraps up the most significant changes in the release, there were numerous other ones as well. - -There were some technical changes well like the addition of YCbCr color profiles, compiling support for users with RISC-V hardware and some fixes for Windows users. - -Some other changes, improvements and bugfixes include – - -* Support for WebP and Photoshop layered Tiffs -* Improved clipboard pasting for images -* Warning if save operations fail -* Fixes for vector objects with gradient fills -* Improved switching when exporting frames and entire videos -* Implementation of anti-aliasing based on FXAA algorithm - -Although the list is quite long, you can learn more by [checking out the official release notes][4] for more information. - -### Wrapping Up - -Krita 5.1 addressed a lot of bugs and much-needed changes that arrived with the 5.0 release, not to mention some helpful additions. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/krita-5-1-release/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/krita-5-1-release.jpg -[2]: https://news.itsfoss.com/krita-5-0-release/ -[3]: https://youtu.be/TnvCjziCUGI -[4]: https://krita.org/en/krita-5-1-release-notes/ diff --git a/sources/news/20220820 There is Life After the Death of x86.md b/sources/talk/20220820 There is Life After the Death of x86.md similarity index 100% rename from sources/news/20220820 There is Life After the Death of x86.md rename to sources/talk/20220820 There is Life After the Death of x86.md diff --git a/sources/news/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md similarity index 100% rename from sources/news/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md rename to sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md From dbc98ef9694f90e24f4d72ccbd5e2f23e5d8bf20 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 22 Aug 2022 20:04:20 +0800 Subject: [PATCH 0843/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220822=20Celluloid=20Video=20Player=20Gets=20GTK?= =?UTF-8?q?=204=20UI=20Refresh.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...loid Video Player Gets GTK 4 UI Refresh.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md diff --git a/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md b/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md new file mode 100644 index 0000000000..6d72143f54 --- /dev/null +++ b/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md @@ -0,0 +1,102 @@ +[#]: subject: "Celluloid Video Player Gets GTK 4 UI Refresh" +[#]: via: "https://news.itsfoss.com/celluloid-0-24-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Celluloid Video Player Gets GTK 4 UI Refresh +====== +Celluloid 0.24 release gets a modern visual refresh with libadwaita and further refinements. + +![Celluloid Video Player Gets GTK 4 UI Refresh][1] + +Celluloid is a front-end for mpv (an open-source media player for the command-line). + +If you want to avoid bothering with the technical details, Celluloid is one of the best video players for Linux. Many Linux distributions offer Celluloid pre-installed as the default video player, among other essential packages. + +With Celluloid v0.24 release, it finally uses [libadwaita][2] along with other refinements. + +### 🆕 Celluloid v.0.24: Overview + +![][3] + +Recently, several applications have migrated over to GTK 4 (using libadwaita). + +Whether you hate/love the idea, the applications seem to blend in well with GNOME while providing a modern look. + +For instance, a useful [BitTorrent client][4], **Fragments**, [received a UI refresh][5] earlier this year. There are more examples as well. + +![][6] + +![][7] + +Similarly, **Celluloid v0.24** seems to hit the right spot in user experience with this move. In addition to this change, here are the key highlights of the release: + +* Migrating to GTK 4 +* Dark mode support using libadwaita. +* Redesigned control box. +* Make controls layout adaptive. +* Display chapter marks in the seek bar. +* Display chapter titles in the seek bar pop over. +* Add option to make the video area draggable. + +![][8] + +In my quick experience with Celluloid on Pop!_OS 22.04 LTS, the UI is refreshing, and works as one would expect. + +The dark mode looks perfect. By default, it respects the system choice. However, I would want an option to explicitly choose the dark/light theme. + +![][9] + +Maybe, we can hope for this addition with the next update. + +#### Suggested Read 📖 + +![][10] + +![][11] + +### 📥 Download Celluloid 0.24 + +If you are installing it from the repositories, you may not get the latest version yet (depends on your distribution). + +The best way to get the latest release is to get the Flatpak package on [Flathub][12]. You can use the software center for that or install it via the terminal using the following command: + +``` +flatpak install flathub io.github.celluloid_player.Celluloid +``` + +You can refer to our [Flatpak setup guide][13] if you are new to Linux. + +[Download Celluloid 0.24][14] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/celluloid-0-24-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/content/images/size/w1200/2022/08/celluloid-v-0-24.jpg +[2]: https://adrienplazas.com/blog/2021/03/31/introducing-libadwaita.html +[3]: https://news.itsfoss.com/content/images/2022/08/celluloid-0-24.jpg +[4]: https://itsfoss.com/best-torrent-ubuntu/ +[5]: https://news.itsfoss.com/fragments-2-0-release/ +[6]: https://news.itsfoss.com/zrythm-gtk4-alpha/ +[7]: https://news.itsfoss.com/zrythm-gtk4-alpha/ +[8]: https://news.itsfoss.com/content/images/2022/08/celluloid-about.png +[9]: https://news.itsfoss.com/content/images/2022/08/celluloid-light-0-24.jpg +[10]: https://itsfoss.com/video-players-linux/ +[11]: https://itsfoss.com/video-players-linux/ +[12]: https://flathub.org/apps/details/io.github.celluloid_player.Celluloid +[13]: https://itsfoss.com/flatpak-guide/ +[14]: https://celluloid-player.github.io/ From 78ba733a316963e2d4835b2ee6c27dd68eb6e05a Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 22 Aug 2022 20:06:19 +0800 Subject: [PATCH 0844/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220822=20Kooha=20Screen=20Recorder=20Gets=20Enhanc?= =?UTF-8?q?ed=20Functionalities=20With=20Version=202.1=20Release.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...unctionalities With Version 2.1 Release.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md diff --git a/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md b/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md new file mode 100644 index 0000000000..87c4e3899a --- /dev/null +++ b/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md @@ -0,0 +1,117 @@ +[#]: subject: "Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release" +[#]: via: "https://news.itsfoss.com/kooha-2-1-release/" +[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release +====== +Kooha gets new feature additions to make it a more useful screen recorder for Linux. What do you think? + +![Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release][1] + +Kooha is a fairly new screen recorder for Linux. It has been in development since 2021. + +As a modern offering, it is a good pick for users who need a screen recorder for the Wayland desktop session. We've covered it earlier. + +![][2] + +![][3] + +Now, a recent update, **Kooha 2.1,** made it even better and easy to recommend. + +In case you are wondering about, what are those features? Well, I'll be sharing those right away. + +### 🆕 Kooha 2.1: Key Highlights + +![Record screen using Kooha in Linux][4] + +[Kooha][5] is a minimal screen recording application with some of the essential options. + +With the latest release, you can expect some handy features and under-the-hood changes to enhance your user experience. + +So let me start off with highlight some of the best upgrades. + +#### More Recording Delay Options + +![Delay recording using Kooha screen recording in linux][6] + +One of the key highlights for Kooha screen recorder is the ability to add a delay for recording. + +While it already had options for five or ten-second delay, with Kooha 2.1, you get a **three-second** option. + +It may not sound much of a big deal, but you get more flexibility with options. And, the ability to start a recording after a delay is one of my favorite features about it. + +#### Remember Last Selection + +![Remember last selection in kooha][7] + +Kooha will remember the last option you went with to record the screen and record that window automatically if you've enabled the option to "**Remember this selection**". + +Note that you need to have the window active for it to work. It will not launch the window for you, if you have closed it. + +If you're dealing with the same window, again and again, this feature will surely come in handy. + +#### 🛠️ Other Changes + +Along with the key highlights, there are a couple of worthwhile improvements: + +* "Show in files" notification will now lead you to files in the default file manager. +* "x264 encoder failing to initiate uneven resolution" is now fixed. +* Improved error handling. +* Codebase improvements for stability. +* Fixed minutes stuck on 00 if time is equal or more than 1 hour. + +**Note:** *Technically, Kooha 2.1.1 is the latest version, which introduced minor fixes right after the major 2.1 upgrade.* + +The newer fixes include: + +* The tooltip text was improved on the settings button. +* Kooha will fall back to manual mode while failing to get the device name using the GStreamer device monitor. + +#### Suggested Read 📖 + +![][8] + +![][9] + +### 📥 Download Kooha 2.1.1 + +The recommended way to install Kooha is to use the Flatpak package via [Flathub][10]. + +You can also head to its [GitHub page][11] to explore more. + +[Download Kooha 2.1.1][12] + +Kooha may not be an advanced screen recorder software, but it is a nice option for most users. + +*Do you think Kooha can replace your default screen recorder program? Feel free to share your thoughts in the comments down below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kooha-2-1-release/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/kooha-ft.jpg +[2]: https://itsfoss.com/kooha-screen-recorder/ +[3]: https://itsfoss.com/kooha-screen-recorder/ +[4]: https://news.itsfoss.com/content/images/2022/08/Delay-screen-recording-using-Kooha.png +[5]: https://itsfoss.com/kooha-screen-recorder/ +[6]: https://news.itsfoss.com/content/images/2022/08/Recording-delay-option.png +[7]: https://news.itsfoss.com/content/images/2022/08/Remember-this-selection.png +[8]: https://itsfoss.com/best-linux-screen-recorders/ +[9]: https://itsfoss.com/best-linux-screen-recorders/ +[10]: https://flathub.org/apps/details/io.github.seadve.Kooha +[11]: https://github.com/SeaDve/Kooha +[12]: https://github.com/SeaDve/Kooha From 41d81d3e380ebab8f6f11fbe5d60ae95e3f03332 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 22 Aug 2022 20:09:04 +0800 Subject: [PATCH 0845/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220822=203=20NES=20Emulators=20to=20Play=20Old=20N?= =?UTF-8?q?ES=20Games=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mulators to Play Old NES Games on Linux.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md diff --git a/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md new file mode 100644 index 0000000000..7d122450fe --- /dev/null +++ b/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md @@ -0,0 +1,107 @@ +[#]: subject: "3 NES Emulators to Play Old NES Games on Linux" +[#]: via: "https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 NES Emulators to Play Old NES Games on Linux +====== +A quick look at 3 NES Emulators to play old NES games in Linux. Also, we provide an Installation guide and features + +If you want to play the old retro games such as Super Mario, Pokemon, etc in the latest Ubuntu, Linux Mint versions, there are plenty of emulators available. Here are three emulators that you can try if you want to play old retro games. + +### NES emulators play old NES games + +#### 1. ZSNES + +[ZSNES][1] is a Super [Nintendo][2] Emulator that can run on Windows, Linux, FreeBSD, and DOS. It runs as a GUI interface where you can load ROM of NES games. + +Here is how to install ZSNES in Ubuntu, Debian and Linux Mint. Run below command from terminal: + +``` +sudo apt install zsnes +``` + +For Fedora, run the following command to install after setting up [RPM fusion using this guide][3]. Because it requires some modules which is not provided by official Fedora distro. + +``` +sudo dnf install zsnes +``` + +After installation, search for ZSNES from Dash or type zsnes in terminal. + +![ZSNES Main][4] + +![Play old NES games using ZSNES in Ubuntu][5] + +#### 2. Higan + +higan is an emulator for Nintendos SNES, NES, Gameboy, Gameboy Color, and Gameboy Advance. It was formerly called bsnes and the SNES emulation is especially complete and polished. + +higan strives to provide the most faithful hardware emulation possible. It focuses on accuracy and clean code, rather than speed and special features. It is meant as a reference emulator to document how the underlying hardware works. + +Here is how to install higan from command line. + +``` +sudo apt install higan +``` + +![Higan Running in Ubuntu][6] + +#### 3. GFCEU + +GNOME FCE Ultra (gfceu) is a graphical front-end for the FCE Ultra Nintendo Entertainment System intended for the GNOME desktop. Gfceu eases the gaming experience for the user and provides a clean, simple, and intuitive interface. + +Run below commands from terminal to install gfceu for Ubuntu, Linux Mint and related distros. + +``` +sudo apt install gfceu +``` + +For Fedora, run the following command to install. Please make sure to set up [RPM fusion using this guide][7] before running this command. Because it requires certain packages which is not provided by official Fedora distro. + +``` +sudo dnf install gfceu +``` + +![gfceu running in Ubuntu][8] + +### Download Game ROMs + +There are hundreds of websites which provides NES ROMs. Here are few of them where you can download NES ROM. Once downloaded, unzip them and open from the emulator menu. + +* [https://romsman][9][ia.c][10][c/roms/nintendo][11] +* [https://romsmode.com/][12] +* [www.emuparadise.me][13] + +Enjoy and play old NES games using these emulators. Do let me know which one is your favourite. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/ + +作者:[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]: http://www.zsnes.com/ +[2]: https://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System +[3]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[4]: https://www.debugpoint.com/wp-content/uploads/2016/07/ZSNES-Main.png +[5]: https://www.debugpoint.com/wp-content/uploads/2016/07/ZSNES-Running-in-Ubuntu.png +[6]: https://www.debugpoint.com/wp-content/uploads/2016/07/Higan-Running-in-Ubuntu.png +[7]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[8]: https://www.debugpoint.com/wp-content/uploads/2016/07/gfceu-running-in-Ubuntu.png +[9]: https://romsmania.cc/roms/nintendo +[10]: https://romsmania.cc/roms/nintendo +[11]: https://romsmania.cc/roms/nintendo +[12]: https://romsmode.com/ +[13]: http://www.emuparadise.me/Nintendo_Entertainment_System_ROMs/13 From 867263e69c7e683f6798c65be043c9e1a5310e5f Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 22 Aug 2022 20:09:51 +0800 Subject: [PATCH 0846/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220822=20How=20to=20List=20USB=20Devices=20Connect?= =?UTF-8?q?ed=20to=20Your=20Linux=20System.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Devices Connected to Your Linux System.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md diff --git a/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md b/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md new file mode 100644 index 0000000000..6141c59cd6 --- /dev/null +++ b/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md @@ -0,0 +1,185 @@ +[#]: subject: "How to List USB Devices Connected to Your Linux System" +[#]: via: "https://itsfoss.com/list-usb-devices-linux/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to List USB Devices Connected to Your Linux System +====== +How do you list the USB devices in Linux? + +The question can have two meanings. + +* How many USB ports are (detected) on your system? +* How many USB devices/disks are mounted (plugged in) to the system? + +Mostly, people are interested in knowing what USB devices are connected to the system. This may help troubleshoot the USB devices. + +The most reliable way is to use this command: + +``` +lsusb +``` + +It shows the webcam, Bluetooth, and Ethernet ports along with the USB ports and mounted USB drives. + +![list usb with lsusb command linux][1] + +But understanding the output of lsusb is not easy and you may not need to complicate things when you just want to see and access the mounted USB drives. + +I will show you various tools and commands you can use to list USB devices connected to your system. + +I have connected a 2GB pen-drive, 1TB external HDD, Android smartphone via MTP and USB mouse in the examples unless stated otherwise. + +Let me start with the simplest of the options for desktop users. + +### Check connected USB devices graphically + +Your distribution file manager can be used to view USB storage devices connected to your computer. As you can see in the screenshot of Nautilus (GNOME File Manager) below. + +The connected devices are shown in the sidebar (Only USB Storage devices are shown here). + +![Nautilus showing connected USB devices][2] + +You can also use GUI applications like GNOME Disks or Gparted to view, format, and partition the USB Storage devices connected to your computer. GNOME Disks is preinstalled in most distributions using GNOME Desktop Environment by default. + +This app also works as a very good [partition manager][3] too. + +![Use GNOME Disks to list mounted USB devices][4] + +*Enough of the Graphical tools*. Let us discuss the commands you can use for listing the USB devices. + +### Using the mount command to list the mounted USB devices + +The mount command is used for mounting partitions in Linux. You can also list USB storage devices using the same command. + +Generally, USB storage is mounted in the media directory. Thus, filtering the output of mount command on media will give you the desired result. + +``` +mount | grep media +``` + +![][5] + +### Using df command + +[df command][6] is a standard UNIX command used to know the amount of available disk space. You can also use this command to list USB storage devices connected using the command below. + +``` +df -Th | grep media +``` + +![Use df command to list mounted USB drives][7] + +### Using lsblk command + +The lsblk command is used to list block devices in the terminal. So, here also by filtering the output containing media keyword, you can get the desired result as shown in the screenshot below. + +``` +lsblk | grep media +``` + +![Using lsblk to list connected USb devicesUsing blkid to list connected USb devices][8] + +If you are more curious, you can use the `blkid` command to know the UUID, Label, Block size etc. + +This command gives more output as your internal drives are also listed. So, you have to take references from the above command to identify the device you wish to know about. + +``` +sudo blkid +``` + +![Using blkid to list connected USb devices][9] + +### Using fdisk + +fdisk, the good old command line partition manager, can also list the USB storage devices connected to your computer. The output of this command is also very long. So, usually, the connected devices get listed at the bottom as shown below. + +``` +sudo fdisk -l +``` + +![Use fidsk to list usb devices][10] + +### Inspecting /proc/mounts + +By inspecting the /proc/mounts file, you can list the USB Storage devices. As you can notice, it shows you the mount options being used by filesystem along with the mount point. + +``` +cat /proc/mounts | grep media +``` + +![][11] + +### Display all the USB devices with lsusb command + +And we revisit the famed lsusb command. + +Linux kernel developer [Greg Kroah-Hartman][12] developed this handy [usbutils][13] utility. This provides us with two commands i.e. `lsusb` and `usb-devices` to list USB devices in Linux. + +The lsusb command lists all the information about the USB bus in the system. + +``` +lsusb +``` + +As you can see this command also shows the Mouse and Smartphone I have connected, unlike other commands (which are capable of listing only USB storage devices). + +![][14] + +The second command `usb-devices` gives more details as compared but fails to list all devices, as shown below. + +``` +usb-devices +``` + +![][15] + +Greg has also developed a small GTK application called [Usbview][16]. This application shows you the list of all the USB devices connected to your computer. + +The application is available in the official repositories of most Linux distributions. You can install `usbview` package using your distribution’s [package manager][17] easily. + +Once installed, you can launch it from the application menu. You can select any of the listed devices to get details, as shown in the screenshot below. + +![][18] + +### Conclusion + +Most of the methods listed are limited to USB storage devices. There are only two methods which can list other peripherals also; usbview and usbutils. I guess we have one more reason to be grateful to the Linux Kernel developer Greg for developing these handy tools. + +I am aware that there are many more ways to list USB devices connected to your system. Your suggestions are welcome. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/list-usb-devices-linux/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/list-usb-with-lsusb-command-linux.png +[2]: https://itsfoss.com/wp-content/uploads/2022/08/nautilus-usb.png +[3]: https://itsfoss.com/partition-managers-linux/ +[4]: https://itsfoss.com/wp-content/uploads/2022/08/gnome-disks-usb.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/mount-cmd-usb.png +[6]: https://linuxhandbook.com/df-command/ +[7]: https://itsfoss.com/wp-content/uploads/2022/08/df-cmd-usb.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/blkid-cmd-usb.png +[9]: https://itsfoss.com/wp-content/uploads/2022/08/blkid-cmd-usb.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/fdisk-cmd-usb.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/proc-dir-usb.png +[12]: https://en.wikipedia.org/wiki/Greg_Kroah-Hartman +[13]: https://github.com/gregkh/usbutils +[14]: https://itsfoss.com/wp-content/uploads/2022/08/lsusb-cmd.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/usb-devices-cmd.png +[16]: https://github.com/gregkh/usbview +[17]: https://itsfoss.com/package-manager/ +[18]: https://itsfoss.com/wp-content/uploads/2022/08/usbview.png From 332d5d3e9408f0e910ba1e1f55e63a3ee99c4df3 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 23 Aug 2022 08:32:47 +0800 Subject: [PATCH 0847/3123] translated --- .../20220816 A look inside an EPUB file.md | 123 ------------------ .../20220816 A look inside an EPUB file.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 123 deletions(-) delete mode 100644 sources/tech/20220816 A look inside an EPUB file.md create mode 100644 translated/tech/20220816 A look inside an EPUB file.md diff --git a/sources/tech/20220816 A look inside an EPUB file.md b/sources/tech/20220816 A look inside an EPUB file.md deleted file mode 100644 index 4334347b73..0000000000 --- a/sources/tech/20220816 A look inside an EPUB file.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "A look inside an EPUB file" -[#]: via: "https://opensource.com/article/22/8/epub-file" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A look inside an EPUB file -====== -EPUB files are a great way to publish content using an open format. - -![How to find files in Linux][1] - -Image by: Lewis Cowles, CC BY-SA 4.0 - -eBooks provide a great way to read books, magazines, and other content on the go. Readers can enjoy eBooks to pass the time during long flights and train rides. The most popular eBook file format is the EPUB file, short for "electronic publication." EPUB files are supported across a variety of eReaders and are effectively the standard for eBook publication today. - -The EPUB file format is an open standard based on XHTML for content and XML for metadata, contained in a zip file archive. And because everything is based on open standards, we can use common tools to create or examine EPUB files. Let's explore an EPUB file to learn more about it. [A guide to tips and tricks for C programming][2], published earlier this year on Opensource.com, is available in PDF or EPUB format. - -Because EPUB files are XHTML content and XML metadata in a zip file, you can start with the `unzip` command to examine the EPUB from the command line: - -``` -$ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub -Archive: osdc_Jim-Hall_C-Programming-Tips.epub -Length Date Time Name ---------- ---------- ----- ---- -20 06-23-2022 00:20 mimetype -8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css -1659 06-23-2022 00:20 OEBPS/toc.xhtml -4460 06-23-2022 00:20 OEBPS/content.opf -44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml -1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml -22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml -[...] -9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml -748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml -3370 06-23-2022 00:20 OEBPS/toc.ncx -8308 06-23-2022 00:21 OEBPS/images/image0011.png -6598 06-23-2022 00:21 OEBPS/images/image0009.png -[...] -14492 06-23-2022 00:21 OEBPS/images/image0005.png -239 06-23-2022 00:20 META-INF/container.xml ---------- ------- -959201 41 files -``` - -This EPUB contains a lot of files, but much of this is content. To understand how an EPUB file is put together, follow the process flow of an eBook reader: - -1. eBook readers need to verify that the EPUB file is really an EPUB file. They verify the file by examining the `mimetype` file at the root of the EPUB archive. This file contains just one line that describes the MIME type of the EPUB file: - -``` -application/epub+zip -``` - -2. To locate the content, eBook readers start with the `META-INF/container.xml` file. This is a brief XML document that indicates where to find the content. For this EPUB file, the `container.xml` file looks like this: - -``` - - - - - - -``` - -To make the `container.xml` file easier to read, I split the single line into multiple lines and added some spacing to indent each line. XML files don't really care about extra white space like new lines and spaces, so this extra spacing doesn't affect the XML file. - -3. The `container.xml` file says the root of the EPUB starts with the `content.opf` file in the OEBPS directory. The OPF extension is because EPUB is based on the Open Packaging Format, but the `content.opf` file is really just another XML file. - -4. The `content.opf` file contains a complete manifest of the EPUB contents, plus an ordered table of contents, with references to find each chapter or section. The `content.opf` file for this EPUB is quite long, so I'll show just a bit of it here as an example. -The XML data is contained within a `` block, which itself has a ``block, the `` data, and a ``block that contains the eBook's table of contents: - -``` - - - - osdc002 - Tips and Tricks for C Programming - Jim Hall - English - 2022-06-23T12:09:13Z - - - - ... - - - - - ... - - - - - - ... - - -``` - -You can match up the data to see where to find each section. That’s how EPUB readers do it. For example, the first item in the table of contents references `section0001` which is defined in the manifest as located in the `sections/section0001.xhtml` file. The file doesn’t need to be named the same as the idref entry, but that’s how LibreOffice Writer’s automated process created the file. (You can see in the metadata that this EPUB was created with LibreOffice version 7.3.0.3 on Linux, which can export content as EPUB files.) - -### The EPUB format - -EPUB files are a great way to publish content using an open format. The EPUB file format is XML metadata with XHTML content, inside a zip container. While most technical writers use tools to create EPUB files, because EPUB is based on open standards means you can create your own EPUB files in some other way. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/epub-file - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/find-file-linux-code_magnifying_glass_zero.png -[2]: https://opensource.com/downloads/guide-c-programming diff --git a/translated/tech/20220816 A look inside an EPUB file.md b/translated/tech/20220816 A look inside an EPUB file.md new file mode 100644 index 0000000000..0e27425dc4 --- /dev/null +++ b/translated/tech/20220816 A look inside an EPUB file.md @@ -0,0 +1,123 @@ +[#]: subject: "A look inside an EPUB file" +[#]: via: "https://opensource.com/article/22/8/epub-file" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +深入了解 EPUB 文件 +====== +EPUB 文件是使用开放格式发布内容的好方法。 + +![How to find files in Linux][1] + +图片来源:Lewis Cowles,CC BY-SA 4.0 + +电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件,是“电子出版物”的缩写。 EPUB 文件受到各种电子阅读器的支持,并且是当今电子书出版的有效标准。 + +EPUB 文件格式是基于 XHTML 内容和 XML 元数据的开放标准,包含在 zip 存档中。由于一切都基于开放标准,我们可以使用通用工具来创建或检查 EPUB 文件。让我们探索一个 EPUB 文件以了解更多信息。 [C 编程技巧和窍门指南][2],于今年早些时候在 Opensource.com 上发布,提供 PDF 或 EPUB 格式。 + +因为 EPUB 文件是 zip 文件中的 XHTML 内容和 XML 元数据,所以你可以用 `unzip` 命令在命令行检查 EPUB: + +``` +$ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub +Archive: osdc_Jim-Hall_C-Programming-Tips.epub +Length Date Time Name +--------- ---------- ----- ---- +20 06-23-2022 00:20 mimetype +8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css +1659 06-23-2022 00:20 OEBPS/toc.xhtml +4460 06-23-2022 00:20 OEBPS/content.opf +44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml +1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml +22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml +[...] +9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml +748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml +3370 06-23-2022 00:20 OEBPS/toc.ncx +8308 06-23-2022 00:21 OEBPS/images/image0011.png +6598 06-23-2022 00:21 OEBPS/images/image0009.png +[...] +14492 06-23-2022 00:21 OEBPS/images/image0005.png +239 06-23-2022 00:20 META-INF/container.xml +--------- ------- +959201 41 files +``` + +这个 EPUB 包含很多文件,但其中大部分是内容。要了解 EPUB 文件是如何组合在一起的,请遵循电子书阅读器的流程: + +1. 电子书阅读器需要验证 EPUB 文件是否真的是 EPUB 文件。他们通过检查 EPUB 存档根目录中的 `mimetype` 文件来验证文件。该文件仅包含一行描述 EPUB 文件的 MIME 类型: + +``` +application/epub+zip +``` + +2. 为了定位内容,电子书阅读器从 `META-INF/container.xml` 文件开始。这是一个简短的 XML 文档,指示在哪里可以找到内容。对于此 EPUB 文件,`container.xml` 文件如下所示: + +``` + + + + + + +``` + +为了使 `container.xml` 文件更易于阅读,我将单行拆分为多行,并添加了一些间距来缩进每行。 XML 文件并不真正关心新行和空格等额外的空白,因此这种额外的间距不会影响 XML 文件。 + +3. `container.xml` 文件表示 EPUB 的根目录以 OEBPS 目录中的 `content.opf` 文件开头。 OPF 扩展是因为 EPUB 基于 Open Packaging Format,但 `content.opf` 文件实际上只是另一个 XML 文件。 + +4. `content.opf` 文件包含一个完整的 EPUB 内容清单,以及一个有序的目录,以及查找每一章或每一节的参考。这个 EPUB 的 `content.opf` 文件很长,因此我将在此仅展示一小部分作为示例。 +XML 数据包含在 `` 块中,该块本身具有 `` 块、`` 数据和包含电子书目录的 `` 块: + +``` + + + + osdc002 + Tips and Tricks for C Programming + Jim Hall + English + 2022-06-23T12:09:13Z + + + + ... + + + + + ... + + + + + + ... + + +``` + +你可以把数据匹配起来,看看在哪里可以找到每个部分。EPUB 阅读器就是这样做的。例如,目录中的第一项引用了 `section0001`,它在清单中被定义为位于 `sections/section0001.xhtml` 文件中。该文件的名称不需要与 idref 条目相同,但 LibreOffice Writer 的自动程序就是这样创建该文件的。(你可以在元数据中看到,这个 EPUB 是在 Linux 上用 LibreOffice 7.3.0.3 版本创建的,它可以将内容导出为EPUB文件。) + +### EPUB 格式 + +EPUB 文件是一种使用开放格式发布内容的好方法。EPUB 文件格式是 XML 元数据与 XHTML 内容,包含在一个 zip 文件内。虽然大多数技术作家使用工具来创建 EPUB 文件,因为 EPUB 是基于开放标准,意味着你可以使用其他方式创建自己的 EPUB 文件。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/epub-file + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/find-file-linux-code_magnifying_glass_zero.png +[2]: https://opensource.com/downloads/guide-c-programming From ccf53b945d9b98ce489feecdfdc8e61eca931e44 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 23 Aug 2022 08:37:43 +0800 Subject: [PATCH 0848/3123] translating --- .../20220822 3 NES Emulators to Play Old NES Games on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md index 7d122450fe..082277e5e4 100644 --- a/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md +++ b/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From c5963e63ca6c4067e109fc973b28c8678535a6ce Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 23 Aug 2022 12:04:30 +0800 Subject: [PATCH 0849/3123] RP @Donkey-Hao https://linux.cn/article-14957-1.html --- ...20220810 Create beautiful PDFs in LaTeX.md | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) rename {translated/tech => published}/20220810 Create beautiful PDFs in LaTeX.md (69%) diff --git a/translated/tech/20220810 Create beautiful PDFs in LaTeX.md b/published/20220810 Create beautiful PDFs in LaTeX.md similarity index 69% rename from translated/tech/20220810 Create beautiful PDFs in LaTeX.md rename to published/20220810 Create beautiful PDFs in LaTeX.md index 6d1e04bcaa..a8743080f9 100644 --- a/translated/tech/20220810 Create beautiful PDFs in LaTeX.md +++ b/published/20220810 Create beautiful PDFs in LaTeX.md @@ -2,26 +2,28 @@ [#]: via: "https://opensource.com/article/22/8/pdf-latex" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14957-1.html" 使用 LaTeX 创建优美的 PDF 文件 ====== -使用 LaTeX 标记语言编写文件。 +![](https://img.linux.net.cn/data/attachment/album/202208/23/120339s9ek65lo8cce5jj4.jpg) -LaTeX 文件准备系统有一段有趣的历史。在 1968 年,程序员 Don Knuth 用一种老式印刷排版方式,撰写了他的第一本书《计算机程序设计艺术》。当他在 1976 年出版第二版书时,出版商已经转向现代照相排版技术。 +> 使用 LaTeX 标记语言来撰写文档。 + +LaTeX 文件准备系统有一段有趣的历史。在 1968 年,程序员 Don Knuth 用一种老式印刷排版方式,撰写了他的第一本书《计算机程序设计艺术The Art of Computer Programming》。当他在 1976 年出版第二版时,出版商已经转向现代照相排版技术。 Knuth 对新版本的外观不满意。他从程序员的角度解决问题,决定创建他自己的文字处理系统,这样以后他出版的书就可以以相同格式排版,拥有相同的外观。因此,Don Knuth 在 1978 年编写了第一版 TeX 。 -几年后, Leslie Lamport 创建了一组宏定义,以便作者更容易编写复杂文档。Lamport 的宏定义扩展 LaTeX ,有效地扩展了 TeX 能够轻松创建各种文档。例如,许多学术组织使用 LaTeX 出版期刊和论文集。 +几年后,Leslie Lamport 创建了一组宏定义,以便作者更容易编写复杂文档。Lamport 的宏定义扩展,即 LaTeX,有效地扩展了 TeX 能够轻松创建各种文档。例如,许多学术组织使用 LaTeX 出版期刊和论文集。 ### 使用 LaTeX 编写文档 -通过写一些短文就可以很容易掌握 LaTeX 基础。让我们从 [Opensource.com][4] 介绍界面,根据该界面创建一个示例: +通过写一些短文就可以很容易掌握 LaTeX 基础。让我们从 [Opensource.com][4] 介绍页面借用一下内容,创建一个示例: ``` $ cat about.tex @@ -40,18 +42,18 @@ as a reader or a writer. \end{document} ``` -类似其他文档格式程序, LaTeX 收集关键词并填充段落 。这意味着你可以在段落中间添加新文本,而不用担心最终文档会成什么样。只要你不在段落中添加空行, LaTeX 就会创建完全对齐的段落。当它找到一个空行时, LaTeX 会开启一个新段落。 +类似其他文档格式程序, LaTeX 会将单词汇集起来,填充成段落 。这意味着你可以在段落中间添加新文本,而不用担心最终文档的段落参差不齐。只要你不在段落中添加空行, LaTeX 就会创建完全对齐的段落。当它找到一个空行时, LaTeX 会开启一个新段落。 -LaTeX 需要一些定义文档的控制语句。任何 LaTeX 文档应当以文档 `类别` 声明开始。LaTeX 支持多种文档,包括书信、书籍和文章。例如,我使用 `\documentclass{article}` 设置类别为 `文章` 。 +LaTeX 需要一些定义文档的控制语句。任何 LaTeX 文档应当以“文档类别”声明开始。LaTeX 支持多种文档,包括书信、书籍和文章。例如,我使用 `\documentclass{article}` 设置类别为 “文章” 。 使用 `\begin{document}` 和 `\end{document}` 声明来定义文本的开始和结束。如果你在 `\begin{document}` 前添加了文本,那么 LaTeX 会报错。在 `\end{document}` 之后的文本都会被忽略。 -使用 `latex` 命令使用 LaTeX 处理文档: +使用 LaTeX 的 `latex` 命令处理文档: ``` $ latex about.tex This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=latex) - restricted \write18 enabled. + restricted \write18 enabled. entering extended mode (./about.tex LaTeX2e <2020-10-01> patch level 4 @@ -65,9 +67,9 @@ Output written on about.dvi (1 page, 736 bytes). Transcript written on about.log. ``` -LaTeX 生成许多文本,这样你就可以知道它在干什么。若你的文档包含错误, LaTeX 会报错并提示它可以做什么。大多数情况下,你可以在提示后输入 `exit` 来强制退出 LaTeX 。 +LaTeX 会输出许多文本,这样你就可以知道它在干什么。若你的文档包含错误, LaTeX 会报错并提示它可以做什么。大多数情况下,你可以在提示后输入 `exit` 来强制退出 LaTeX 。 -如果用 LaTeX 成功生成一个文档,会生成一个带 `.dvi` 后缀的文件。`DVI` 表示 `设备无关` (Device Independent),因为你可以使用不同的工具来生成其他格式。例如, **dvipdf** 程序将 DVI 文件转换为 PDF 文件。 +如果用 LaTeX 成功生成一个文档,会生成一个带 `.dvi` 后缀的文件。`DVI` 表示 “设备无关Device Independent”,因为你可以使用不同的工具来生成其他格式。例如, `dvipdf` 程序可以将 DVI 文件转换为 PDF 文件。 ``` $ dvipdf about.dvi @@ -75,9 +77,9 @@ $ dvipdf about.dvi ![LaTeX output][5] -### 添加列表 +s### 添加列表 -LaTeX 支持两种列表:一种以数字开头的 `枚举` 列表,一种 `逐项` 或“项目符号”列表。在第二段后添加一个简短的枚举列表,列出人们可以参与 Opensource.com 的方式: +LaTeX 支持两种列表:一种以数字开头的 “枚举” 列表,一种 “逐项” 或 “项目符号” 列表。在第二段后添加一个简短的枚举列表,列出人们可以参与 Opensource.com 的方式: ``` \begin{enumerate} @@ -112,7 +114,7 @@ LaTeX 支持两种列表:一种以数字开头的 `枚举` 列表,一种 ` ### 章节和小节 -你可以将冗长文章分成多个章节,这样更易于阅读。使用 `\section{...}` 语句在大括号内添加章节标题。例如,你可以在文档顶部添加一个标题为 "关于 Opensourcecom" 的新章节: +你可以将冗长文章分成多个章节,这样更易于阅读。使用 `\section{...}` 语句在大括号内添加章节标题。例如,你可以在文档顶部添加一个标题为 “About Opensource.com” 的新章节: ``` $ head about.tex @@ -128,11 +130,11 @@ We're a diverse and inviting group, made up of staff editors, Correspondents, contributors, and readers. We ``` -使用 `article` 文档类在关键部分添加数字,并使字体变大来突出显示。 +`article` 文档类会在每个主要章节添加编号,并使字体变大来突出显示。 ![LaTeX output][8] -你可以使用 `\subsection{...}` 命令,来组织文档。就像 `\section{...}` 命令一样,在大括号中输入副标题名称。 +你可以使用 `\subsection{...}` 命令来组织文档。就像 `\section{...}` 命令一样,在大括号中输入副标题名称。 ``` $ head about.tex @@ -151,9 +153,9 @@ open source and Linux tutorials, stories, and resources. ### 标题和作者 -科学类的文章需要标题、作者以及发表日期。LaTeX 提供了通过插入命令的方式来添加这些信息,然后使用单独的 `\maketitle` 命令生成文章的标题。 +用于出版的科学类的文章需要标题、作者以及发表日期。LaTeX 提供了通过插入命令的方式来添加这些信息,然后使用单独的 `\maketitle` 命令生成文章的标题。 -将 "About Us" 作为文章标题,作者为 "Opensource.com Editors" ,发表日期为 "July 10, 2022" 。你必须在 `\begin{document}` 之后,文章内容前插入这些内容。 +将 “About Us” 作为文章标题,作者为 “Opensource.com Editors”,发表日期为 “July 10, 2022” 。你必须在 `\begin{document}` 之后,文章内容前插入这些内容。 ``` \title{About Us} @@ -168,9 +170,9 @@ open source and Linux tutorials, stories, and resources. ### 着重强调 -科学和其他技术类文章通常会突出术语和短语。 LaTeX 提供了几种可以在技术文档中使用的字体效果,包括强调文本(通常以斜体显示)、粗体文本和小型大写字母。 +科学和其他技术类文章通常会突出术语和短语。 LaTeX 提供了几种可以在技术文档中使用的字体效果,包括强调文本(通常以斜体显示)、粗体文本和小型大写字母small caps。 -将短语“员工编辑、通讯员、贡献者和读者”放在斜体文本中,并将特定词“读者”和“作者”放在段落后面的强调文本中。你也可以将“技能、​​才能、背景和经验”加粗。虽然这不是正确的样式设置方式,但你可以使用小型大写字母来键入 "Linux" 。 +将短语“staff editors, Correspondents, contributors, and readers”放在斜体文本中,并将特定词“reader”和“writer”放在段落后面的强调文本中。你也可以将“skills, talents, backgrounds, and experiences”加粗。虽然这不是正确的样式设置方式,但你可以使用小型大写字母来键入 “Linux” 。 ``` $ head -20 about.tex @@ -211,7 +213,7 @@ via: https://opensource.com/article/22/8/pdf-latex 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 07c03c63453f4b2876c7dd64fcec0a859de3b386 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 23 Aug 2022 12:07:49 +0800 Subject: [PATCH 0850/3123] R --- published/20220810 Create beautiful PDFs in LaTeX.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220810 Create beautiful PDFs in LaTeX.md b/published/20220810 Create beautiful PDFs in LaTeX.md index a8743080f9..27b69298e8 100644 --- a/published/20220810 Create beautiful PDFs in LaTeX.md +++ b/published/20220810 Create beautiful PDFs in LaTeX.md @@ -77,7 +77,7 @@ $ dvipdf about.dvi ![LaTeX output][5] -s### 添加列表 +### 添加列表 LaTeX 支持两种列表:一种以数字开头的 “枚举” 列表,一种 “逐项” 或 “项目符号” 列表。在第二段后添加一个简短的枚举列表,列出人们可以参与 Opensource.com 的方式: From c37bf7c52b07e46e447c43e8afa3a723188e56e0 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 23 Aug 2022 17:22:30 +0800 Subject: [PATCH 0851/3123] finished --- ...The only Linux command you need to know.md | 165 ----------------- ...The only Linux command you need to know.md | 166 ++++++++++++++++++ 2 files changed, 166 insertions(+), 165 deletions(-) delete mode 100644 sources/tech/20220602 The only Linux command you need to know.md create mode 100644 translated/tech/20220602 The only Linux command you need to know.md diff --git a/sources/tech/20220602 The only Linux command you need to know.md b/sources/tech/20220602 The only Linux command you need to know.md deleted file mode 100644 index 08e46cce3a..0000000000 --- a/sources/tech/20220602 The only Linux command you need to know.md +++ /dev/null @@ -1,165 +0,0 @@ -[#]: subject: "The only Linux command you need to know" -[#]: via: "https://opensource.com/article/22/6/linux-cheat-command" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The only Linux command you need to know -====== -The Linux cheat command is a utility to search for and display a list of example tasks you might do with a command. - -![Command line prompt][1] - -Image by: Opensource.com - -Information about Linux and open source abounds on the internet, but when you're entrenched in your work there's often a need for quick documentation. Since the early days of Unix, well before Linux even existed, there's been the `man` (short for "manual") and `info` commands, both of which display official project documentation about commands, configuration files, system calls, and more. - -There's a debate over whether `man` and `info` pages are meant as helpful reminders for users who already know how to use a tool, or an intro for first time users. Either way, both `man` and `info` pages describe tools and how to use them, and rarely address specific tasks and how to accomplish them. It's for that very reason that the `cheat` command was developed. - -For instance, suppose you can't remember how to [unarchive a tar file][2]. The `man` page provides you with all the options you require, but it leaves it up to you to translate this information into a functional command: - -``` -tar -A [OPTIONS] ARCHIVE ARCHIVE -tar -c [-f ARCHIVE] [OPTIONS] [FILE...] -tar -d [-f ARCHIVE] [OPTIONS] [FILE...] -tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...] -tar -r [-f ARCHIVE] [OPTIONS] [FILE...] -tar -u [-f ARCHIVE] [OPTIONS] [FILE...] -tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...] -``` - -That's exactly what some users need, but it confounds other users. The cheat sheet for tar, by contrast, provides complete common commands: - -``` -$ cheat tar - -# To extract an uncompressed archive: -tar -xvf /path/to/foo.tar - -# To extract a .tar in specified Directory: -tar -xvf /path/to/foo.tar -C /path/to/destination/ - -# To create an uncompressed archive: -tar -cvf /path/to/foo.tar /path/to/foo/ - -# To extract a .tgz or .tar.gz archive: -tar -xzvf /path/to/foo.tgz -tar -xzvf /path/to/foo.tar.gz -[...] -``` - -It's exactly what you need, when you need it. - -### The Linux cheat command - -The `cheat` command is a utility to search for and display a list of example tasks you might do with a Linux command. As with many Unix commands, there are different implementations of the same concept, including one [written in Go][3] and one, which I help maintain, [written in just 100 lines of Bash][4]. - -To install the Go version, download [the latest release][5] and put it somewhere in [your path][6], such as `~/.local/bin/` or `/usr/local/bin`. To install the Bash version, download the latest release and run the `install-cheat.sh` script: - -``` -$ sh ./install-cheat.sh -``` - -Or to configure the installation, use [Autotools][7]: - -``` -$ aclocal ; autoconf -$ automake --add-missing ; autoreconf -$ ./configure --prefix=$HOME/.local -$ make -$ make install -``` - -### Get cheat sheets for your Linux terminal - -Cheat sheets are just plain text files containing common commands. The main collection of cheat sheets is available at [Github.com/cheat/cheatsheets][8]. The Go version of cheat downloads cheatsheets for you when you first run the command. If you're using the Bash version of cheat, the `--fetch` option downloads cheatsheets for you: - -``` -$ cheat --fetch -``` - -As with `man` pages, you can have multiple collections of cheat sheets on your system. The Go version of cheat uses a [YAML][9] config file to define where each collection is located. The Bash version defines the path during the install, and by default downloads the [Github.com/cheat/cheatsheets][10] collection as well as [Opensource.com][11]'s own [Gitlab.com/opensource.com/cheatsheets][12] collection. - -### List cheat sheets - -To list the cheat sheets on your system, use the `--list` option: - -``` -$ cheat --list -7z -ab -acl -alias -ansi -ansible -ansible-galaxy -ansible-vault -apk -[...] -``` - -### View a Linux cheat sheet - -Viewing a cheat sheet is as easy as viewing a `man` or `info` page. Just provide the name of the command you need help with: - -``` -$ cheat alias - -# To show a list of your current shell aliases: -alias - -# To alias `ls -l` to `ll`: -alias ll='ls -l' -``` - -By default, the `cheat` command uses your environment's pager. Your pager is set with the `PAGER` [environment variable][13]. You can override that temporarily by redefining the `PAGER` variable before running the `cheat` command: - -``` -$ PAGER=most cheat less -``` - -If you just want to [cat][14] the cheat sheet into your terminal without a pager, the Bash version has a `--cat` option for convenience: - -``` -$ cheat --cat less -``` - -### It's not actually cheating - -The cheat system cuts to the chase. You don't have to piece together clues about how to use a command. You just follow the examples. Of course, for complex commands, it's not a shortcut for a thorough study of the actual documentation, but for quick reference, it's as fast as it gets. - -You can even create your own cheat sheet just by placing a file in one of the cheat sheet collections. Good news! Because the projects are open source, you can contribute your personal cheat sheets to the GitHub collection. And more good news! When there's a new Opensource.com [cheat sheet][15] release, we'll include a plain text version from now on so you can add that to your collection. - -The command is called `cheat`, but as any Linux user will assure you, it's not actually cheating. It's working smarter, the open source way. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/linux-cheat-command - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者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/17/7/how-unzip-targz-file -[3]: https://github.com/cheat/cheat -[4]: https://gitlab.com/slackermedia/cheat -[5]: https://github.com/cheat/cheat/releases -[6]: https://opensource.com/article/17/6/set-path-linux -[7]: https://opensource.com/article/19/7/introduction-gnu-autotools -[8]: https://github.com/cheat/cheatsheets -[9]: https://opensource.com/article/21/9/yaml-cheat-sheet -[10]: https://github.com/cheat/cheatsheets -[11]: http://Opensource.com -[12]: https://gitlab.com/opensource.com/cheatsheets -[13]: https://opensource.com/article/19/8/what-are-environment-variables -[14]: https://opensource.com/article/19/2/getting-started-cat-command -[15]: https://opensource.com/downloads diff --git a/translated/tech/20220602 The only Linux command you need to know.md b/translated/tech/20220602 The only Linux command you need to know.md new file mode 100644 index 0000000000..c2be0664da --- /dev/null +++ b/translated/tech/20220602 The only Linux command you need to know.md @@ -0,0 +1,166 @@ +[#]: subject: "The only Linux command you need to know" +[#]: via: "https://opensource.com/article/22/6/linux-cheat-command" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "Donkey" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +你只需要知道这个 Linux 命令 + +====== +Linux cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。 + +![Command line prompt][1] + +图片源于:Opensource.com + +互联网上有很多关于 Linux 和开源的信息,但是当你想要深入工作,通常需要快速文档。早在 Linux 出现之前的 Unix 系统中,就有 `man` ('manual' 的缩写) 和 `info` 命令了,二者都会显示官方项目文档中的命令、配置文件、系统调用等。 + +关于 `man` 和 `info` 页面是对知晓如何使用工具的用户的有用提醒,还是为初次使用的用户提供介绍存在争议。不管怎样,`man` 和 `info` 页面介绍工具以及如何使用该工具,很少涉及特定任务以及如何完成它们。正是出于这个原因,开发了 `cheat` 命令。 + +例如,设想你想不起来如何 [解压 tar 压缩包文件][2] 。`man` 页面会给你展示所有的选项,但需要你将这些信息转换为命令: + +``` +tar -A [OPTIONS] ARCHIVE ARCHIVE +tar -c [-f ARCHIVE] [OPTIONS] [FILE...] +tar -d [-f ARCHIVE] [OPTIONS] [FILE...] +tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...] +tar -r [-f ARCHIVE] [OPTIONS] [FILE...] +tar -u [-f ARCHIVE] [OPTIONS] [FILE...] +tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...] +``` + +这确实是一些用户需要的,但是也使一些用户感到疑惑。相比之下,cheat 命令会罗列常用命令: + +``` +$ cheat tar + +# To extract an uncompressed archive: +tar -xvf /path/to/foo.tar + +# To extract a .tar in specified Directory: +tar -xvf /path/to/foo.tar -C /path/to/destination/ + +# To create an uncompressed archive: +tar -cvf /path/to/foo.tar /path/to/foo/ + +# To extract a .tgz or .tar.gz archive: +tar -xzvf /path/to/foo.tgz +tar -xzvf /path/to/foo.tar.gz +[...] +``` + +这真是雪中送炭! + +### Linux Cheat 命令 + +Linux Cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。如大多数 Unix 命令,同一个概念有多种实现方式,包括一个 [使用 Go 编写][3] 的和一个由我帮助维护的 [仅用 100 行 Bash 编写][4] 的两个版本。 + +若要安装 Go 版本的,下载 [最新版][5] 并将它放在某个 [路径][6] 中,例如 `~/.local/bin/` 或 `/usr/local/bin` 中。若安装 Bash 版本,下载最新版并运行 `install-cheat.sh` 脚本: + +``` +$ sh ./install-cheat.sh +``` + +如需配置后安装,请使用 [自动工具][7] (Autotools): + +``` +$ aclocal ; autoconf +$ automake --add-missing ; autoreconf +$ ./configure --prefix=$HOME/.local +$ make +$ make install +``` + +### 在 Linux 中安装 Cheat 程序 + +Cheat 只是包含常用命令的纯文本文件。该程序可以从 [Github.com/cheat/cheatsheets][8] 获得。当你第一次运行命令时,Go 版本会自动为你下载支持列表。如果你使用 Bash 版本,用 `--fetch` 选项可以下载支持列表: + +``` +$ cheat --fetch +``` + +与 `man` 一样,你的系统上可以有多个备忘单集合。 Go 版本的 Cheat 使用 [YAML][9] 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 [Github.com/cheat/cheatsheets][10] 集合以及 [Opensource.com][11] 自己的 [Gitlab.com/opensource.com /cheatsheets][12] 集合。 + +### 列出 Cheat 支持项目 + +使用 `--list` 选项即可查看 cheat 支持的项目: + +``` +$ cheat --list +7z +ab +acl +alias +ansi +ansible +ansible-galaxy +ansible-vault +apk +[...] +``` + +### 使用 Cheat 查看 Linux 命令 + +使用 cheat 查看命令如同使用 `man` 和 `info` 查看一样简单。只需要输入你需要查询的命令即可: + +``` +$ cheat alias + +# To show a list of your current shell aliases: +alias + +# To alias `ls -l` to `ll`: +alias ll='ls -l' +``` + +默认情况下,`cheat` 命令会使用你的[环境变量][13] `PAGER` 。你可以在运行 `cheat` 命令前改写 `PAGER` 变量值,暂时修改环境变量。 + +``` +$ PAGER=most cheat less +``` + +如果你只是想在没有 `PAGER` 的情况下将 `cheat` [连接][14] (cat) 到终端里,在 Bash 版中有 `--cat` 选项可以使用: + +``` +$ cheat --cat less +``` + +### 这并不是作弊 + +Cheat 系统抓住了要害,你不必拼凑有关如何使用命令的线索,你只需按照示例进行操作即可。当然,对于复杂的命令,它不是深入研究实际文档的捷径,但为了快速参考,它还是可以的。 + +甚至你可以通过将文件放入其中一个备忘单集合中,来创建自己的备忘单。好消息是,因为这些项目是开源的,所以你可以将您的个人备忘单贡献给 GitHub 集合。另一个好消息是,当有新的 Opensource.com [备忘单][15] 版本发布时,我们将从现在开始包含纯文本版本,以便你可以将其添加到您的收藏中。 + +该命令称为 “作弊”(cheat),但正如任何 Linux 用户都会向你保证的那样,它实际上并不是作弊。它只是以开源的方式工作得更巧妙。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/linux-cheat-command + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[Donkey](https://github.com/Donkey-Hao) +校对:[校对者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/17/7/how-unzip-targz-file +[3]: https://github.com/cheat/cheat +[4]: https://gitlab.com/slackermedia/cheat +[5]: https://github.com/cheat/cheat/releases +[6]: https://opensource.com/article/17/6/set-path-linux +[7]: https://opensource.com/article/19/7/introduction-gnu-autotools +[8]: https://github.com/cheat/cheatsheets +[9]: https://opensource.com/article/21/9/yaml-cheat-sheet +[10]: https://github.com/cheat/cheatsheets +[11]: http://Opensource.com +[12]: https://gitlab.com/opensource.com/cheatsheets +[13]: https://opensource.com/article/19/8/what-are-environment-variables +[14]: https://opensource.com/article/19/2/getting-started-cat-command +[15]: https://opensource.com/downloads From 62bc8eee34c4c4037bc9ce57eb282a1da11aea05 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 23 Aug 2022 17:27:40 +0800 Subject: [PATCH 0852/3123] correct --- .../20220602 The only Linux command you need to know.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/tech/20220602 The only Linux command you need to know.md b/translated/tech/20220602 The only Linux command you need to know.md index c2be0664da..2d122df69d 100644 --- a/translated/tech/20220602 The only Linux command you need to know.md +++ b/translated/tech/20220602 The only Linux command you need to know.md @@ -8,8 +8,8 @@ [#]: url: " " 你只需要知道这个 Linux 命令 - ====== + Linux cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。 ![Command line prompt][1] @@ -82,7 +82,7 @@ Cheat 只是包含常用命令的纯文本文件。该程序可以从 [Github.co $ cheat --fetch ``` -与 `man` 一样,你的系统上可以有多个备忘单集合。 Go 版本的 Cheat 使用 [YAML][9] 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 [Github.com/cheat/cheatsheets][10] 集合以及 [Opensource.com][11] 自己的 [Gitlab.com/opensource.com /cheatsheets][12] 集合。 +与 `man` 一样,你的系统上可以有多个备忘单集合。 Go 版本的 Cheat 使用 [YAML][9] 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 [Github.com/cheat/cheatsheets][10] 集合以及 [Opensource.com][11] 自己的 [Gitlab.com/opensource.com/cheatsheets][12] 集合。 ### 列出 Cheat 支持项目 @@ -116,7 +116,7 @@ alias alias ll='ls -l' ``` -默认情况下,`cheat` 命令会使用你的[环境变量][13] `PAGER` 。你可以在运行 `cheat` 命令前改写 `PAGER` 变量值,暂时修改环境变量。 +默认情况下,`cheat` 命令会使用你的 [环境变量][13] `PAGER` 。你可以在运行 `cheat` 命令前改写 `PAGER` 变量值,暂时修改环境变量。 ``` $ PAGER=most cheat less From 37ebcec533d6debd79567580db881e41e4b99982 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 24 Aug 2022 08:35:52 +0800 Subject: [PATCH 0853/3123] translated --- ... Run Commands Into Docker-Compose Files.md | 111 ------------------ ... Run Commands Into Docker-Compose Files.md | 111 ++++++++++++++++++ 2 files changed, 111 insertions(+), 111 deletions(-) delete mode 100644 sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md create mode 100644 translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md diff --git a/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md deleted file mode 100644 index 5ddc7de984..0000000000 --- a/sources/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md +++ /dev/null @@ -1,111 +0,0 @@ -[#]: subject: "Convert Docker Run Commands Into Docker-Compose Files" -[#]: via: "https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Convert Docker Run Commands Into Docker-Compose Files -====== -Create Docker compose files from docker run commands using Composerize - -If you use Docker everyday in your official or personal systems, you should know there is an useful application called **Composerize**. In this brief guide, we will learn what is Composerize and how to use Composerize to **convert docker run commands into docker-compose files** format in Linux. - -### What Is Composerize? - -**[Docker compose][1]** is a tool for defining and running multi-container docker applications. Docker compose is just a YAML file in which we define services, networks, and volumes for a Docker application. - -Not everyone is good at writing effective docker-compose files. Some of you may find it difficult to even write a simple docker compose file. No worries! Say hello to Composerize utility, which helps you to create Docker compose files from `docker run` commands. - -Composerize is a command line as well as web-based utility to convert a `docker run` command into a docker-compose file. - -It doesn't matter whether the `docker run` command is simple, short or lengthy and complex. All you have to do is just pass thecommand to Conposerize. Composerize will instantly turn the `docker run` commands into docker-compose files! - -### Install Composerize In Linux - -Composerize is available as a web service. So you don't have to install it on your system. If you want to install it locally for any reason, read on. - -Composerize can be installed using npm. Make sure you've installed Nodejs in your system. If it is not installed, follow the link below to install Nodejs. - -* [How To Install NodeJS On Linux][2] - -After installing Nodejs, run the following command to install Composerize: - -``` -$ npm install composerize -``` - -This command will install Composerize for the current user only. - -If you want to install it globally (system-wide), run the above command with `-g` option like below. - -``` -$ npm install composerize -g -``` - -### Convert Docker Run Commands Into Docker-Compose Files With Composerize - -To convert a docker run command into docker-compose format, simply run it with Composerize like below: - -``` -$ composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer -``` - -It will generate the content in docker compose file format. - -**Sample output:** - -``` -version: '3.3' -services: - portainer: - ports: - - '9000:9000' - volumes: - - '/var/run/docker.sock:/var/run/docker.sock' - image: portainer/portainer -``` - -![Convert Docker Run Commands Into Docker-Compose Files With Composerize][3] - -Now copy the above lines in your `docker-compose.yml` file. It's that simple! - -As I stated already, you can also use the Composerize web service to convert the docker run commands into docker file format. - -Go to **[https://www.composerize.com/][4]** link and paste the `docker run` command in the box and you will get the docker-compose file instantly! - -![Turn Docker Run Commands Into Docker-compose Files Using Composerize][5] - -After converting the commands in docker-compose file, go to the location where you saved the `docker-compose.yml` file and run the following command to start the Docker application: - -``` -$ docker-compose up -``` - -Composerize is one of the useful utility for Docker users. You can now safely say goodbye to sprawling docker commands. - -**Resource:** - -* [Composerize GitHub Repository][6] - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/ - -作者:[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/introduction-to-docker-compose/ -[2]: https://ostechnix.com/install-node-js-linux/ -[3]: https://ostechnix.com/wp-content/uploads/2022/08/Convert-Docker-Run-Commands-Into-Docker-Compose-Files-With-Composerize.png -[4]: https://www.composerize.com/ -[5]: https://ostechnix.com/wp-content/uploads/2022/08/Turn-Docker-Run-Commands-Into-Docker-compose-Files-Using-Composerize.png -[6]: https://github.com/magicmark/composerize diff --git a/translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md new file mode 100644 index 0000000000..8810b03237 --- /dev/null +++ b/translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md @@ -0,0 +1,111 @@ +[#]: subject: "Convert Docker Run Commands Into Docker-Compose Files" +[#]: via: "https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +将 Docker 运行命令转化为 Docker-Compose 文件 +====== +使用 Composerize 从 docker 运行命令创建 Docker compose 文件 + +如果你每天在官方或个人系统中使用 Docker,你应该知道有一个有用的应用叫 **Composerize**。在这个简短的指南中,我们将了解什么是 Composerize,以及如何使用 Composerize 在 Linux 中**将 docker 运行命令转换为 docker-compose 文件**格式。 + +### 什么是 Composerize? + +**[Docker compose][1]** 是一个用于定义和运行多容器 docker 应用的工具。Docker compose 只是一个 YAML 文件,我们在其中为 Docker 应用定义服务、网络和卷。 + +不是每个人都擅长写有效的 docker-compose 文件。你们中的一些人可能会发现,甚至写一个简单的 docker compose 文件都很困难。不用担心! 看下 Composerize,它可以帮助你从 `docker run` 命令中创建 Docker compose 文件。 + +Composerize 是一个命令行和基于网络的工具,可以将 `docker run` 命令转换成 docker-compose 文件。 + +无论 `docker run` 命令是简单、简短还是冗长、复杂,都没有关系。你所要做的就是把命令传给 Conposerize。Composerize 会立即将 `docker run` 命令变成 docker-compose 文件! + +### 在 Linux 中安装 Composerize + +Composerize 是作为一个网络服务提供的。所以你不需要在你的系统上安装它。如果你因为任何原因想在本地安装它,请继续阅读。 + +Composerize 可以用 npm 安装。确保你的系统中已经安装了 Nodejs。如果没有安装,请按照下面的链接来安装 Nodejs。 + +* [如何在 Linux 上安装 NodeJS][2] + +安装完 Nodejs 后,运行以下命令来安装 Composerize: + +``` +$ npm install composerize +``` + +该命令将只为当前用户安装 Composerize。 + +如果你想在全局(全系统)安装它,请运行上述命令并加上 `-g` 选项,如下所示。 + +``` +$ npm install composerize -g +``` + +### 用 Composerize 将 Docker 运行命令转换为 Docker-Compose 文件 + +要将 docker run 命令转换为 docker-compose 格式,只需用 Composerize 运行它,如下所示: + +``` +$ composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer +``` + +它将以 docker compose 文件格式生成内容。 + +**示例输出:** + +``` +version: '3.3' +services: + portainer: + ports: + - '9000:9000' + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + image: portainer/portainer +``` + +![Convert Docker Run Commands Into Docker-Compose Files With Composerize][3] + +现在在你的 `docker-compose.yml` 文件中复制上面几行。就这么简单! + +正如我所说,你也可以使用 Composerize 网络服务将 docker run 命令转换成 docker 文件格式。 + +进入 **[https://www.composerize.com/][4]**,将 `docker run` 命令粘贴到框中,你就会立即得到 docker-compose 文件! + +![Turn Docker Run Commands Into Docker-compose Files Using Composerize][5] + +将命令转换为 docker-compose 文件后,到你保存 `docker-compose.yml` 文件的位置,运行以下命令来启动 Docker 应用: + +``` +$ docker-compose up +``` + +Composerize 是对 Docker 用户有用的工具之一。你现在可以安全地告别漫无边际的 Docker 命令了。 + +**资源:** + +* [Composerize GitHub 仓库][6] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/ + +作者:[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/introduction-to-docker-compose/ +[2]: https://ostechnix.com/install-node-js-linux/ +[3]: https://ostechnix.com/wp-content/uploads/2022/08/Convert-Docker-Run-Commands-Into-Docker-Compose-Files-With-Composerize.png +[4]: https://www.composerize.com/ +[5]: https://ostechnix.com/wp-content/uploads/2022/08/Turn-Docker-Run-Commands-Into-Docker-compose-Files-Using-Composerize.png +[6]: https://github.com/magicmark/composerize From 6a88756089a4b201f55faf148926a06ee04af39f Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 24 Aug 2022 08:40:41 +0800 Subject: [PATCH 0854/3123] translating --- ...22 How to List USB Devices Connected to Your Linux System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md b/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md index 6141c59cd6..570754cae8 100644 --- a/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md +++ b/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/list-usb-devices-linux/" [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From a727a898b3ccd8bfd759290d1f84b0f288c0e30f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 24 Aug 2022 10:41:38 +0800 Subject: [PATCH 0855/3123] RP @geekpi https://linux.cn/article-14960-1.html --- ...stom Light and Dark Wallpaper for GNOME.md | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) rename {translated/tech => published}/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md (57%) diff --git a/translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md similarity index 57% rename from translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md rename to published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md index 24e4580ade..e160975c38 100644 --- a/translated/tech/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md +++ b/published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md @@ -3,45 +3,48 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14960-1.html" 在 GNOME 中创建你自定义的浅色和深色壁纸 ====== -在 GNOME 桌面中创建自定义浅色和深色壁纸的简单指南。 -[GNOME 42][1] 将期待已久的浅色和深色主题引入 GNOME 桌面。它还带来了浅色和深色版壁纸,当你在浅色和深色主题之间切换时,它会自动改变。 +![](https://img.linux.net.cn/data/attachment/album/202208/24/104023a3do33wdizyb3zw4.jpg) + +> 在 GNOME 桌面中创建自定义浅色和深色壁纸的简单指南。 + +[GNOME 42][1] 将期待已久的浅色和深色主题引入了 GNOME 桌面。它还带来了浅色和深色版壁纸,当你在浅色和深色主题之间切换时,它会自动改变。 因此,默认情况下,GNOME 会为你提供几组预配置的浅色和深色壁纸。 -但是,如果你想要在主题更改时自动更改的不同壁纸怎么办? +但是,如果你想要在主题更改时可以自动更改的别的壁纸怎么办? 以下是在 GNOME 中为浅色和深色主题配置和创建自定义壁纸的方法。 ### 如何为 GNOME 创建自定义浅色和深色壁纸 -首先,确保桌面有两个版本的壁纸。通常,它们应该是标准的 PNG 或 JPG 图像。例如,我们在演示中使用了以下两个壁纸。 +首先,确保有两个版本的壁纸。通常,它们应该是标准的 PNG 或 JPG 图像。例如,我们在演示中使用了以下两个壁纸。 ![Sample light and dark wallpaper for demo][2] -但是,如果你没有合适的浅色和深色壁纸并正在寻找更多,我会告诉你如何获取它们或在本指南的末尾准备自己的。 +但是,如果你没有合适的浅色和深色壁纸,或正在寻找更多壁纸,在本指南的末尾,我会告诉你如何获取它们或准备你自己的。 跟着我来。 -其次,我们需要为自己创建一个模式文件。壁纸的自动更换由名为 adwaita.xml 的 XML 文件处理,该文件定义了特定的浅色和深色背景标签。因此,我们将为壁纸创建 XML 文件。 +其次,我们需要为自己创建一个模式文件。壁纸的自动更换由名为 `adwaita.xml` 的 XML 文件处理,该文件定义了特定的浅色和深色背景标签。因此,我们将为壁纸创建 XML 文件。 -为此,从 GitLab 复制 adwaita.xml 的内容并创建一个新的 XML 文件(链接在下面)。你应该在这个文件中看到两个标签:“filename” 和 “filename-dark”。这两个 XML 标记包含两个壁纸的完全限定路径。在这两个标签下添加图片的路径,如下所示。 +为此,从 GitLab 复制 `adwaita.xml` 的内容并创建一个新的 XML 文件(链接在下面)。你应该在这个文件中看到两个标签:`filename` 和 `filename-dark`。这两个 XML 标记包含两个壁纸的完全限定路径。在这两个标签下添加图片的路径,如下所示。 -[从这里下载 XML 文件 (adwaita.xml.in)][3] +> **[从这里下载 XML 文件 (adwaita.xml.in)][3]** ![Change the XML file][4] -第三步,使用你想要的任何名称将此文件保存到 **/home/your_name/.local/share/gnome-background-properties**。如果 “gnome-background-properties” 不存在,请创建它们。对此示例,我使用了 my_cool_backgrounds.xml。 +第三步,使用你想要的任何名称将此文件保存到 `/home/YOUR_NAME/.local/share/gnome-background-properties`(请将 `YOUR_NAME` 替换为你的用户名)。如果 `gnome-background-properties` 不存在,请创建它们。对此示例,我使用了 `my_cool_backgrounds.xml`。 ![Save the file][5] -都准备好了。最后,打开设置并转到外观选项卡,你应该会看到新壁纸作为选项可见。 +都准备好了。最后,打开设置并转到外观选项卡,你应该会看到选项中出现新的壁纸。 选择你的自定义浅色和深色壁纸并享受。 @@ -49,30 +52,31 @@ ### 如何下载或制作你的动态壁纸 -你一定会想,“谁有时间去寻找和创建白天和夜晚版本的壁纸”?一些网站为你提供现成的动态壁纸,你可以轻松下载和安装。 +你一定会想,“谁有时间去寻找和创建深浅版本的壁纸”?一些网站为你提供现成的动态壁纸,你可以轻松下载和安装。 我推荐的一个网站是 [dynamicwallpaper.club][7],它为 macOS 提供了一些高达 6K 的优秀高质量壁纸。你可以轻松下载它们。 -此外,如果你打算从上述网站下载,请记住该网站的图像是 [heic 格式][8],因为该网站适用于 macOS。高效视频编码 (HEIC) 是 Apple 的 HEIF 或高效图像文件格式的专有版本。 +此外,如果你打算从上述网站下载,请记住该网站的图像是 [heic 格式][8],因为该网站适用于 macOS。高效视频编码(HEIC)是 Apple 的 HEIF(高效图像文件格式)的专有版本。 你需要一个驱动来查看和转换 Ubuntu 或 Fedora Linux 中的动态 heic 图像。那么,如何将它们转换为适用于 Linux 系统呢?打开终端并运行以下命令来安装驱动。 -**Ubuntu 用户** – +Ubuntu 用户: ``` sudo apt install heif-gdk-pixbuf ``` -**Fedora 用户** – +Fedora 用户: ``` sudo dnf install libheif ``` -**仅适用于带有 KDE Plasma 的 Fedora/Ubuntu**(没有此插件,Plasma 应用无法打开 heic 图像) +仅适用于带有 KDE Plasma 的 Fedora/Ubuntu(没有此插件,Plasma 应用无法打开 heic 图像): ``` -sudo apt install qt-heif-image-pluginsudo dnf install qt-heif-image-plugin +sudo apt install qt-heif-image-plugin +sudo dnf install qt-heif-image-plugin ``` 最后,使用你喜欢的图像查看器打开 heic 图像并将其保存为 JPG/PNG。 @@ -90,7 +94,7 @@ via: https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/ 作者:[Arindam][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/) 荣誉推出 From 1e3e7684d546bcb5acbaf156ab1fee81eba84e76 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 24 Aug 2022 16:10:31 +0800 Subject: [PATCH 0856/3123] RP @Donkey-Hao https://linux.cn/article-14961-1.html --- ...The only Linux command you need to know.md | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) rename {translated/tech => published}/20220602 The only Linux command you need to know.md (58%) diff --git a/translated/tech/20220602 The only Linux command you need to know.md b/published/20220602 The only Linux command you need to know.md similarity index 58% rename from translated/tech/20220602 The only Linux command you need to know.md rename to published/20220602 The only Linux command you need to know.md index 2d122df69d..37234f0dbf 100644 --- a/translated/tech/20220602 The only Linux command you need to know.md +++ b/published/20220602 The only Linux command you need to know.md @@ -2,23 +2,21 @@ [#]: via: "https://opensource.com/article/22/6/linux-cheat-command" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: "Donkey" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14961-1.html" -你只需要知道这个 Linux 命令 +“作弊”:只需要知道这一个 Linux 命令就够了 ====== -Linux cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。 +> Linux cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。 -![Command line prompt][1] +![](https://img.linux.net.cn/data/attachment/album/202208/24/160901xi66t9pe74x7pxqp.jpg) -图片源于:Opensource.com +互联网上有很多关于 Linux 和开源的信息,但是当你想要深入工作,通常需要一份便捷的文档。早在 Linux 出现之前的 Unix 系统中,就有 `man`(“manual” 的缩写)和 `info` 命令了,二者都会显示命令、配置文件、系统调用等的官方项目文档。 -互联网上有很多关于 Linux 和开源的信息,但是当你想要深入工作,通常需要快速文档。早在 Linux 出现之前的 Unix 系统中,就有 `man` ('manual' 的缩写) 和 `info` 命令了,二者都会显示官方项目文档中的命令、配置文件、系统调用等。 - -关于 `man` 和 `info` 页面是对知晓如何使用工具的用户的有用提醒,还是为初次使用的用户提供介绍存在争议。不管怎样,`man` 和 `info` 页面介绍工具以及如何使用该工具,很少涉及特定任务以及如何完成它们。正是出于这个原因,开发了 `cheat` 命令。 +关于 `man` 和 `info` 页面是对知晓如何使用工具的用户的有用提醒,还是为初次使用的用户提供介绍存在争议。不管怎样,`man` 和 `info` 页面介绍了工具以及如何使用该工具,很少涉及特定任务以及如何完成它们。正是出于这个原因,开发了 `cheat` 命令。 例如,设想你想不起来如何 [解压 tar 压缩包文件][2] 。`man` 页面会给你展示所有的选项,但需要你将这些信息转换为命令: @@ -32,7 +30,7 @@ tar -u [-f ARCHIVE] [OPTIONS] [FILE...] tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...] ``` -这确实是一些用户需要的,但是也使一些用户感到疑惑。相比之下,cheat 命令会罗列常用命令: +这确实是一些用户需要的,但是也使一些用户感到困惑。相比之下,`cheat` 命令会罗列常用命令: ``` $ cheat tar @@ -56,7 +54,7 @@ tar -xzvf /path/to/foo.tar.gz ### Linux Cheat 命令 -Linux Cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。如大多数 Unix 命令,同一个概念有多种实现方式,包括一个 [使用 Go 编写][3] 的和一个由我帮助维护的 [仅用 100 行 Bash 编写][4] 的两个版本。 +`cheat` 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。如大多数 Unix 命令一样,同一个概念有多种不同的实现方式,它包括一个 [使用 Go 编写][3] 的和一个由我帮助维护的 [仅用 100 行 Bash 编写][4] 的两个版本。 若要安装 Go 版本的,下载 [最新版][5] 并将它放在某个 [路径][6] 中,例如 `~/.local/bin/` 或 `/usr/local/bin` 中。若安装 Bash 版本,下载最新版并运行 `install-cheat.sh` 脚本: @@ -64,7 +62,7 @@ Linux Cheat 命令是一个实用程序,可以用来搜索和显示你想要 $ sh ./install-cheat.sh ``` -如需配置后安装,请使用 [自动工具][7] (Autotools): +如需配置后安装,请使用 [自动工具][7](Autotools): ``` $ aclocal ; autoconf @@ -76,17 +74,17 @@ $ make install ### 在 Linux 中安装 Cheat 程序 -Cheat 只是包含常用命令的纯文本文件。该程序可以从 [Github.com/cheat/cheatsheets][8] 获得。当你第一次运行命令时,Go 版本会自动为你下载支持列表。如果你使用 Bash 版本,用 `--fetch` 选项可以下载支持列表: +Cheat 只是包含常用命令的纯文本文件。该程序可以从 [github.com/cheat/cheatsheets][8] 获得。当你第一次运行命令时,Go 版本会自动为你下载支持列表。如果你使用 Bash 版本,用 `--fetch` 选项可以下载支持列表: ``` $ cheat --fetch ``` -与 `man` 一样,你的系统上可以有多个备忘单集合。 Go 版本的 Cheat 使用 [YAML][9] 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 [Github.com/cheat/cheatsheets][10] 集合以及 [Opensource.com][11] 自己的 [Gitlab.com/opensource.com/cheatsheets][12] 集合。 +与 `man` 一样,你的系统上可以有多个备忘单集合。 Go 版本的 `cheat` 使用 [YAML][9] 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 [github.com/cheat/cheatsheets][10] 集合以及 [opensource.com][11] 自己的 [gitlab.com/opensource.com/cheatsheets][12] 集合。 ### 列出 Cheat 支持项目 -使用 `--list` 选项即可查看 cheat 支持的项目: +使用 `--list` 选项即可查看 `cheat` 支持的项目: ``` $ cheat --list @@ -104,7 +102,7 @@ apk ### 使用 Cheat 查看 Linux 命令 -使用 cheat 查看命令如同使用 `man` 和 `info` 查看一样简单。只需要输入你需要查询的命令即可: +使用 `cheat` 查看命令如同使用 `man` 和 `info` 查看一样简单。只需要输入你需要查询的命令即可: ``` $ cheat alias @@ -116,13 +114,13 @@ alias alias ll='ls -l' ``` -默认情况下,`cheat` 命令会使用你的 [环境变量][13] `PAGER` 。你可以在运行 `cheat` 命令前改写 `PAGER` 变量值,暂时修改环境变量。 +默认情况下,`cheat` 命令会使用你的 [环境变量][13] `PAGER` 中指定的分页器。你可以在运行 `cheat` 命令前改写 `PAGER` 变量值,暂时修改环境变量。 ``` $ PAGER=most cheat less ``` -如果你只是想在没有 `PAGER` 的情况下将 `cheat` [连接][14] (cat) 到终端里,在 Bash 版中有 `--cat` 选项可以使用: +如果你只是想在没有 `PAGER` 的情况下将 `cheat` [输出][14] 到终端里,在 Bash 版中有 `--cat` 选项可以使用: ``` $ cheat --cat less @@ -130,11 +128,11 @@ $ cheat --cat less ### 这并不是作弊 -Cheat 系统抓住了要害,你不必拼凑有关如何使用命令的线索,你只需按照示例进行操作即可。当然,对于复杂的命令,它不是深入研究实际文档的捷径,但为了快速参考,它还是可以的。 +`cheat` 系统抓住了要害,你不必拼凑有关如何使用命令的线索,你只需按照示例进行操作即可。当然,对于复杂的命令,它不是深入研究实际文档的捷径,但为了快速借用,它还是可以的。 -甚至你可以通过将文件放入其中一个备忘单集合中,来创建自己的备忘单。好消息是,因为这些项目是开源的,所以你可以将您的个人备忘单贡献给 GitHub 集合。另一个好消息是,当有新的 Opensource.com [备忘单][15] 版本发布时,我们将从现在开始包含纯文本版本,以便你可以将其添加到您的收藏中。 +甚至你可以通过将文件放入其中一个备忘单集合中,来创建自己的备忘单。好消息是,因为这些项目是开源的,所以你可以将你的个人备忘单贡献给 GitHub 集合。另一个好消息是,当有新的 opensource.com [备忘单][15] 版本发布时,我们将从现在开始包含纯文本版本,以便你可以将其添加到你的收藏中。 -该命令称为 “作弊”(cheat),但正如任何 Linux 用户都会向你保证的那样,它实际上并不是作弊。它只是以开源的方式工作得更巧妙。 +该命令称为 “作弊cheat”,但正如任何 Linux 用户都会向你保证的那样,它实际上并不是作弊。它只是以开源的方式工作得更巧妙。 -------------------------------------------------------------------------------- @@ -143,7 +141,7 @@ via: https://opensource.com/article/22/6/linux-cheat-command 作者:[Seth Kenlon][a] 选题:[lkxed][b] 译者:[Donkey](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d7eea5f98e05a1fa05d1b4beba5038c098f2b89e Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 19:46:33 +0800 Subject: [PATCH 0857/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220824=20Blackbox=20is=20an=20Aesthetically=20Plea?= =?UTF-8?q?sing=20Terminal=20for=20Minimalists=20Linux=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng Terminal for Minimalists Linux Users.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md diff --git a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md new file mode 100644 index 0000000000..5089159d5a --- /dev/null +++ b/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md @@ -0,0 +1,142 @@ +[#]: subject: "Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users" +[#]: via: "https://itsfoss.com/blackbox-terminal/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users +====== + +There are [numerous terminal emulators available for Linux][1]. From Terminator to Tilix, you have a wide selection of terminals to choose from. + +But that has not deterred the arrival of new terminal applications. You recently learned about [GNOME Console][2], and today, I’ll introduce you to Blackbox. + +### Blackbox Terminal: Overview and Features + +Blackbox is a terminal emulator which supports GTK4. The developer created this project so that he could use a decent-looking terminal app on Linux. + +So, don’t expect it to have ton of features. It is just a terminal emulator that utilizes GTK4 toolkit and has support for themes. + +In other words, it is more about the looks than the features. + +Here are the main highlights of Blackbox: + +* Theming ([Tilix][3] compatible color scheme support) +* Theme integration with the window decorations +* Custom fonts +* Various customizable UI settings +* Tabs +* Toggleable header bar +* Click to open links +* Files drag-n-drop support + +Talking about the looks, let us go through the different looks it offers. The default window will look something like the screenshot below. + +![Default look of Blackbox terminal][4] + +#### No header bar + +You can also have no header bar, as shown below. It’s one of the most ‘popular’ features of GTK4 apps. + +![Blackbox without header bar][5] + +You can also enable floating controls in no header-bar mode. + +![Floating controls with no header bar mode][6] + +#### Easy copy and paste (don’t revolt) + +Ctrl+C and Ctrl+V are like the universal keyboard shortcuts for copy-paste. + +But the ancient Unix existed before the universe and hence it uses the [Ctrl+C keys for terminating a running program in the terminal][7]. + +However, some people find it a bit inconvenient not to be able to use their favorite shortcuts for [copy-pasting in the terminal][8]. + +Blackbox allows you to change that by enabling the “Easy Copy & Paste” setting. With this setting enabled, you can use Ctrl+C and Ctrl+v for copy-paste operation. + +Don’t worry. Ctrl+C can still be used for stopping running commands. + +![Easy copy-paste mode allows using Ctrl+C and Ctrl+V keys][9] + +#### Themes + +You can also select different themes from the settings. There are several light and dark themes available to choose from. You can also use Tilix styled theming. + +![Available themes for Blackbox][10] + +Let us see how it looks with the Yaru theme and with tabs not expanding, unlike the default Blackbox behaviour. + +![Blackbox with a changed theme][11] + +#### Reset to default + +There are a few more handy features like remember window size, scroll by pixels etc. + +The good thing is that if you made too many changes to the settings, you can revert them all and reset to the default settings. + +The option is available in the Advanced tab of Preferences. + +![reset blackbox settings to default][12] + +### Installing Blackbox terminal + +Please keep in mind that **Blackbox is in the early stages of development**. I experienced some crashes when I switched themes. + +To install Blackbox Terminal you should have [Flatpak installed and Flathub repo enabled][13] in your system. + +Use this command to install Blackbox on your system: + +``` +flatpak install flathub com.raggesilver.BlackBox +``` + +On Fedora and some other distributions that integrate with Flatpak, you can install Blackbox from the software center. + +![Blackbox can also be installed in GNOME Software Center][14] + +Once installed, you can launch it from the applications menu. + +#### Removing Blackbox Terminal + +If you don’t like Blackbox and want to remove it, enter the following command to remove it. + +``` +flatpak uninstall flathub com.raggesilver.BlackBox +``` + +### Conclusion + +In my opinion, Blackbox is a decent terminal emulator. You get all the eye-candy GTK4 can offer on distributions that do not support GTK4 already. The feature it offers are good enough for day to day work. + +In the end, it all comes to personal preference. You may like it. You may not like it. If you like experimenting, give it a try and share your experience with us in the comment section. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/blackbox-terminal/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/linux-terminal-emulators/ +[2]: https://itsfoss.com/gnome-console/ +[3]: https://github.com/gnunn1/tilix +[4]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-default.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-noheader.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-floating-controls.png +[7]: https://itsfoss.com/stop-program-linux-terminal/ +[8]: https://itsfoss.com/copy-paste-linux-terminal/ +[9]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-easy-copy-paste.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-theme-selection.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-yaru.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-reset.png +[13]: https://itsfoss.com/flatpak-guide/ +[14]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-install.png From 2ae2b0c993008f3ec7d65aafb941db3a0ba593a7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:00:38 +0800 Subject: [PATCH 0858/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220824=20Your=20guide=20to=20DistSQL-s=20cluster?= =?UTF-8?q?=20governance=20capability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DistSQL-s cluster governance capability.md | 486 ++++++++++++++++++ 1 file changed, 486 insertions(+) create mode 100644 sources/tech/20220824 Your guide to DistSQL-s cluster governance capability.md diff --git a/sources/tech/20220824 Your guide to DistSQL-s cluster governance capability.md b/sources/tech/20220824 Your guide to DistSQL-s cluster governance capability.md new file mode 100644 index 0000000000..2c34e43347 --- /dev/null +++ b/sources/tech/20220824 Your guide to DistSQL-s cluster governance capability.md @@ -0,0 +1,486 @@ +[#]: subject: "Your guide to DistSQL's cluster governance capability" +[#]: via: "https://opensource.com/article/22/8/your-guide-distsqls-cluster-governance-capability" +[#]: author: "Raigor Jiang https://opensource.com/users/raigor" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Your guide to DistSQL's cluster governance capability +====== +A feature update to Apache ShardingSphere enhances the dynamic management of storage nodes. + +![Databases as a service][1] + +Image by: Jason Baker. CC BY-SA 4.0. + +Apache ShardingSphere 5.0.0-Beta version with DistSQL made the project even more beloved by developers and ops teams for its advantages, such as dynamic effects, no restart, and elegant syntax close to standard SQL. With upgrades to 5.0.0 and 5.1.0, the ShardingSphere community has once again added abundant syntax to DistSQL, bringing more practical features. + +In this article, the community co-authors will share the latest functions of DistSQL from the perspective of cluster governance. + +### ShardingSphere clusters + +In a typical cluster composed of ShardingSphere-Proxy, there are multiple compute nodes and storage nodes, as shown in the figure below. + +![An illustrated diagram shows three distinct applications at the top, represented by rectangles containing "Business Code." These each of these link to two instances of ShardingSphere-Proxy. Between these two instances is a Register Center; both proxies feed a Register Center. In addition, each proxy feeds four barrel-shaped distributed database resources, labeled ds_0, ds_1, ds_2, and ds_3.][2] + +Image by: (Jiang Longtao and Lan Chengxiang, CC BY-SA 4.0) + +To make it easier to understand, in ShardingSphere, we refer to proxy as a *compute node* and proxy-managed distributed database resources (such as ds_0 or ds_1) as *resources* or *storage nodes*. + +Multiple proxy or compute nodes are connected to the same register center. They share configuration and rules, and they can sense each other's online status. These compute nodes also share the underlying storage nodes, so they can perform read and write operations to the storage nodes at the same time. The user application is connected to any compute node and can perform equivalent operations. + +Through this cluster architecture, you can quickly scale proxy horizontally when compute resources are insufficient, reducing the risk of a single point of failure and improving system availability. The load-balancing mechanism can also be added between the application and compute node. + +### Compute node governance + +Compute node governance is suitable for cluster mode. For more information about the ShardingSphere modes, please see [Your detailed guide to Apache ShardingSphere's operating modes][3]. + +### Cluster preparation + +Take a standalone simulation of three proxy compute nodes as an example. To use the mode, follow the configuration below: + +``` +mode: +type: Cluster +repository: +type: ZooKeeper +props: +namespace: governance_ds +server-lists: localhost:2181 +retryIntervalMilliseconds: 500 +timeToLiveSeconds: 60 +maxRetries: 3 +operationTimeoutMilliseconds: 500 +overwrite: false +``` + +Execute the `bootup` command separately: + +``` +sh %SHARDINGSPHERE_PROXY_HOME%/bin/start.sh 3307 +sh %SHARDINGSPHERE_PROXY_HOME%/bin/start.sh 3308 +sh %SHARDINGSPHERE_PROXY_HOME%/bin/start.sh 3309 +``` + +After the three proxy instances are successfully started, the compute node cluster is ready. + +##### SHOW INSTANCE LIST + +Use the client to connect to any compute node, such as 3307: + +``` +mysql -h 127.0.0.1 -P 3307 -u root -p +``` + +View the list of instances using `SHOW INSTANCE LIST` : + +``` +mysql> SHOW INSTANCE LIST; ++----------------+-----------+------+---------+ +| instance_id    | host      | port | STATUS  | ++----------------+-----------+------+---------+ +| 10.7.5.35@3309 | 10.7.5.35 | 3309 | enabled | +| 10.7.5.35@3308 | 10.7.5.35 | 3308 | enabled | +| 10.7.5.35@3307 | 10.7.5.35 | 3307 | enabled | ++----------------+-----------+------+---------+ +``` + +The above fields mean: + +* instance_id: The id of the instance, which is currently composed of host and port +* host: Host address +* port: Port number +* status: The `status` of the instance, either enabled or disabled + +##### DISABLE INSTANCE + +Use a `DISABLE INSTANCE` statement to set the specified compute node to a disabled state. The statement does not terminate the process of the target instance but only virtually deactivates it. + +`DISABLE INSTANCE` supports the following syntax forms: + +``` +DISABLE INSTANCE 10.7.5.35@3308; +#or +DISABLE INSTANCE IP=10.7.5.35, PORT=3308; +``` + +For example: + +``` +mysql> DISABLE INSTANCE 10.7.5.35@3308; +Query OK, 0 ROWS affected (0.02 sec) +mysql> SHOW INSTANCE LIST; ++----------------+-----------+------+----------+ +| instance_id    | host      | port | STATUS   | ++----------------+-----------+------+----------+ +| 10.7.5.35@3309 | 10.7.5.35 | 3309 | enabled  | +| 10.7.5.35@3308 | 10.7.5.35 | 3308 | disabled | +| 10.7.5.35@3307 | 10.7.5.35 | 3307 | enabled  | ++----------------+-----------+------+----------+ +``` + +After executing the `DISABLE INSTANCE` statement by querying again, you can see that the instance status of Port 3308 has been updated to `disabled`, indicating that the compute node has been disabled. + +If there is a client connected to `10.7.5.35@3308`, executing any SQL statement will prompt an exception: + +``` +1000 - Circuit break mode IS ON. +``` + +You are not allowed to disable the current compute node. If you send `10.7.5.35@3309` to `DISABLE INSTANCE 10.7.5.35@3309`, you will receive an exception prompt. + +##### ENABLE INSTANCE + +Use an `ENABLE INSTANCE` statement to set the specified compute node to an enabled state. `ENABLE INSTANCE` supports the following syntax forms: + +``` +ENABLE INSTANCE 10.7.5.35@3308; +#or +ENABLE INSTANCE IP=10.7.5.35, PORT=3308; +``` + +For example: + +``` +mysql> SHOW INSTANCE LIST; ++----------------+-----------+------+----------+ +| instance_id    | host      | port | STATUS   | ++----------------+-----------+------+----------+ +| 10.7.5.35@3309 | 10.7.5.35 | 3309 | enabled  | +| 10.7.5.35@3308 | 10.7.5.35 | 3308 | disabled | +| 10.7.5.35@3307 | 10.7.5.35 | 3307 | enabled  | ++----------------+-----------+------+----------+ +mysql> ENABLE INSTANCE 10.7.5.35@3308; +Query OK, 0 ROWS affected (0.01 sec) +mysql> SHOW INSTANCE LIST; ++----------------+-----------+------+----------+ +| instance_id    | host      | port | STATUS   | ++----------------+-----------+------+----------+ +| 10.7.5.35@3309 | 10.7.5.35 | 3309 | enabled  | +| 10.7.5.35@3308 | 10.7.5.35 | 3308 | enabled  | +| 10.7.5.35@3307 | 10.7.5.35 | 3307 | enabled  | ++----------------+-----------+------+----------+ +``` + +After executing the `ENABLE INSTANCE` statement, you can query again and view that the instance state of Port 3308 has been restored to `enabled`. + +### How to manage compute node parameters + +In our article [Integrating SCTL into DISTSQL's RAL: Making Apache ShardingSphere perfect for database management][4], we explained the evolution of ShardingSphere control language (SCTL) to resource and rule administration language (RAL) and the new `SHOW VARIABLE` and `SET VARIABLE` syntax. + +However, in 5.0.0-Beta, the `VARIABLE` category of DistSQL RAL only contained only the following three statements: + +``` +SET VARIABLE TRANSACTION_TYPE = xx; (LOCAL, XA, BASE) +SHOW VARIABLE TRANSACTION_TYPE; +SHOW VARIABLE CACHED_CONNECTIONS; +``` + +By listening to the community's feedback, we noticed that querying and modifying the props configuration of proxy (located in `server.yaml` ) is also a frequent operation. Therefore, we have added support for props configuration in DistSQL RAL since the 5.0.0 GA version. + +##### SHOW VARIABLE + +First, we'll review how to configure props: + +``` +props: +max-connections-size-per-query: 1 + +kernel-executor-size: 16  # Infinite by default. + +proxy-frontend-flush-threshold: 128  # The default value is 128. + +proxy-opentracing-enabled: false + +proxy-hint-enabled: false + +sql-show: false + +check-table-metadata-enabled: false + +show-process-list-enabled: false + +# Proxy backend query fetch size. A larger value may increase the memory usage of ShardingSphere Proxy. + +# The default value is -1, which means set the minimum value for different JDBC drivers. + +proxy-backend-query-fetch-size: -1 + +check-duplicate-table-enabled: false + +proxy-frontend-executor-size: 0 # Proxy frontend executor size. The default value is 0, which means let Netty decide. + +# Available options of proxy backend executor suitable: OLAP(default), OLTP. The OLTP option may reduce time cost of writing packets to client, but it may increase the latency of SQL execution + +# and block other clients if client connections are more than `proxy-frontend-executor-size`, especially executing slow SQL. + +proxy-backend-executor-suitable: OLAP + +proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation. + +sql-federation-enabled: false + +# Available proxy backend driver type: JDBC (default), ExperimentalVertx + +proxy-backend-driver-type: JDBC +``` + +Now, you can perform interactive queries by using the following syntax: + +``` +SHOW VARIABLE PROXY_PROPERTY_NAME; +``` + +For example: + +``` +mysql> SHOW VARIABLE MAX_CONNECTIONS_SIZE_PER_QUERY; ++--------------------------------+ +| max_connections_size_per_query | ++--------------------------------+ +| 1                              | ++--------------------------------+ +1 ROW IN SET (0.00 sec) +mysql> SHOW VARIABLE SQL_SHOW; ++----------+ +| sql_show | ++----------+ +| FALSE    | ++----------+ +1 ROW IN SET (0.00 sec) +…… +``` + +Note: For DistSQL syntax, parameter keys are separated by underscores. + +##### SHOW ALL VARIABLES + +Since there are plenty of parameters in proxy, you can also query all parameter values through `SHOW ALL VARIABLES` : + +``` +mysql> SHOW ALL VARIABLES; ++---------------------------------------+----------------+ +| variable_name                         | variable_value | ++---------------------------------------+----------------+ +| sql_show                              | FALSE          | +| sql_simple                            | FALSE          | +| kernel_executor_size                  | 0              | +| max_connections_size_per_query        | 1              | +| check_table_metadata_enabled          | FALSE          | +| proxy_frontend_database_protocol_type |                | +| proxy_frontend_flush_threshold        | 128            | +| proxy_opentracing_enabled             | FALSE          | +| proxy_hint_enabled                    | FALSE          | +| show_process_list_enabled             | FALSE          | +| lock_wait_timeout_milliseconds        | 50000          | +| proxy_backend_query_fetch_size        | -1             | +| check_duplicate_table_enabled         | FALSE          | +| proxy_frontend_executor_size          | 0              | +| proxy_backend_executor_suitable       | OLAP           | +| proxy_frontend_max_connections        | 0              | +| sql_federation_enabled                | FALSE          | +| proxy_backend_driver_type             | JDBC           | +| agent_plugins_enabled                 | FALSE          | +| cached_connections                    | 0              | +| transaction_type                      | LOCAL          | ++---------------------------------------+----------------+ +21 ROWS IN SET (0.01 sec) +``` + +##### SET VARIABLE + +Dynamic management of resources and rules is a special advantage of DistSQL. Now you can also dynamically update props parameters by using the `SET VARIABLE` statement. For example: + +``` +#Enable SQL log output +SET VARIABLE SQL_SHOW = true; +#Turn on hint function +SET VARIABLE PROXY_HINT_ENABLED = true; +#Open federal query +SET VARIABLE SQL_FEDERATION_ENABLED = true; +…… +``` + +The `SET VARIABLE` statement can modify the following parameters, but the new value takes effect only after the proxy restart: + +* kernel_executor_size +* proxy_frontend_executor_size +* proxy_backend_driver_type + +The following parameters are read-only and cannot be modified: + +* cached_connections + +Other parameters will take effect immediately after modification. + +### How to manage storage nodes + +In ShardingSphere, storage nodes are not directly bound to compute nodes. One storage node may play different roles in different schemas at the same time, in order to implement different business logic. Storage nodes are always associated with a schema. + +For DistSQL, storage nodes are managed through `RESOURCE` -related statements, including: + +* ADD RESOURCE +* ALTER RESOURCE +* DROP RESOURCE +* SHOW SCHEMA RESOURCES + +### Schema preparation + +`RESOURCE` -related statements only work on schemas, so before operating, you need to create and use the `USE` command to successfully select a schema: + +``` +DROP DATABASE IF EXISTS sharding_db; +CREATE DATABASE sharding_db; +USE sharding_db; +``` + +##### ADD RESOURCE + +`ADD RESOURCE` supports the following syntax forms: + +* Specify `HOST`, `PORT`, `DB` + +``` +ADD RESOURCE resource_0 ( +HOST=127.0.0.1, +PORT=3306, +DB=db0, +USER=root, +PASSWORD=root +); +``` + +* Specify URL + +``` +ADD RESOURCE resource_1 ( +URL="jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC&useSSL=false", +USER=root, +PASSWORD=root +); +``` + +The above two syntax forms support the extension parameter `PROPERTIES`, which is used to specify the attribute configuration of the connection pool between the proxy and the storage node. + +For example: + +``` +ADD RESOURCE resource_2 ( +HOST=127.0.0.1, +PORT=3306, +DB=db2, +USER=root, +PASSWORD=root, +PROPERTIES("maximumPoolSize"=10) +),resource_3 ( +URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=UTC&useSSL=false", +USER=root, +PASSWORD=root, +PROPERTIES("maximumPoolSize"=10,"idleTimeout"="30000") +); +``` + +Specifying Java Database Connectivity (JDBC) connection parameters, such as `useSSL`, is supported only with URL form. + +##### ALTER RESOURCE + +Use `ALTER RESOURCE` to modify the connection information of storage nodes, such as changing the size of a connection pool or modifying JDBC connection parameters. + +Syntactically, `ALTER RESOURCE` is identical to `ADD RESOURCE`. + +``` +ALTER RESOURCE resource_2 ( +HOST=127.0.0.1, +PORT=3306, +DB=db2, +USER=root, +PROPERTIES("maximumPoolSize"=50) +),resource_3 ( +URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=GMT&useSSL=false", +USER=root, +PASSWORD=root, +PROPERTIES("maximumPoolSize"=50,"idleTimeout"="30000") +); +``` + +Since modifying the storage node may cause metadata changes or application data exceptions, `ALTER RESOURCE` cannot be used to modify the target database of the connection. Only the following values can be modified: + +* User name +* User password +* PROPERTIES connection pool parameters +* JDBC parameters + +##### DROP RESOURCE + +Use `DROP RESOURCE` to delete storage nodes from a schema without deleting any data in the storage node. The statement example is as follows: + +``` +DROP RESOURCE resource_0, resource_1; +``` + +To ensure data correctness, the storage node referenced by the rule cannot be deleted. + +`t_order` is a sharding table, and its actual tables are distributed in `resource_0` and `resource_1`. When `resource_0` and `resource_1` are referenced by `t_order` sharding rules, they cannot be deleted. + +##### SHOW SCHEMA RESOURCES + +`SHOW SCHEMA RESOURCES` is used to query storage nodes in schemas and supports the following syntax forms: + +``` +#Query the storage node in the current schema +SHOW SCHEMA RESOURCES; +#Query the storage node in the specified schema +SHOW SCHEMA RESOURCES FROM sharding_db; +``` + +For example, add four storage nodes through the `ADD RESOURCE` command, and then execute a query: + +![A table of output from a Show Schema Resources request shows 4 MySQL database resource from the same host and port, indicate their connection timeout in milliseconds, idle timeout in milliseconds, max lifetime in milliseconds, max pool size and minimum pool size.][5] + +Image by: (Jiang Longtao and Lan Chengxiang, CC BY-SA 4.0) + +There are many columns in the query result, but here we only show part of them. + +### Conclusion + +In this article, we have introduced you to the ways you can dynamically manage storage nodes through DistSQL. + +Unlike modifying YAML files, executing DistSQL statements happens in real time, and there is no need to restart the proxy or compute node, making online operations safer. Changes executed through DistSQL can be synchronized to other compute nodes in the cluster in real time through the register center. The client connected to any compute node can also query changes of storage nodes in real time. + +If you have any questions or suggestions about Apache ShardingSphere, please open an issue on the [GitHub issue list][6]. If you are interested in contributing to the project, you're very welcome to join the Apache ShardingSphere community. + +Apache ShardingSphere Project Links: + +* [ShardingSphere Github][7] +* [ShardingSphere Twitter][8] +* [ShardingSphere Slack][9] +* [Contributor Guide][10] + +This article originally appeared on [FAUN][11] and is republished with permission. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/your-guide-distsqls-cluster-governance-capability + +作者:[Raigor Jiang][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/raigor +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bus_cloud_database.png +[2]: https://opensource.com/sites/default/files/2022-08/shardingsphere%20chart_0.png +[3]: https://medium.com/codex/your-detailed-guide-to-apache-shardingspheres-operating-modes-e50df1ee56e4 +[4]: https://dzone.com/articles/integrating-sctl-into-distsqls-ral-making-apache-s +[5]: https://opensource.com/sites/default/files/2022-08/distsql%20image%202.png +[6]: https://github.com/apache/shardingsphere/issues +[7]: https://github.com/apache/shardingsphere +[8]: https://twitter.com/ShardingSphere +[9]: https://join.slack.com/t/apacheshardingsphere/shared_invite/zt-sbdde7ie-SjDqo9~I4rYcR18bq0SYTg +[10]: https://shardingsphere.apache.org/community/cn/contribute/ +[11]: https://faun.pub/ From 09de701ddb8ec722081d4828f3b3c1550bf3ccd0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:02:32 +0800 Subject: [PATCH 0859/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220823=20How=20I=20migrated=20to=20NetworkManager?= =?UTF-8?q?=20keyfiles=20for=20configuration.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tworkManager keyfiles for configuration.md | 347 ++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 sources/tech/20220823 How I migrated to NetworkManager keyfiles for configuration.md diff --git a/sources/tech/20220823 How I migrated to NetworkManager keyfiles for configuration.md b/sources/tech/20220823 How I migrated to NetworkManager keyfiles for configuration.md new file mode 100644 index 0000000000..a78675520d --- /dev/null +++ b/sources/tech/20220823 How I migrated to NetworkManager keyfiles for configuration.md @@ -0,0 +1,347 @@ +[#]: subject: "How I migrated to NetworkManager keyfiles for configuration" +[#]: via: "https://opensource.com/article/22/8/migrate-networkmanager-keyfiles-configuration" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I migrated to NetworkManager keyfiles for configuration +====== +Interface configuration files may not be supported in Fedora much longer, but migrating to NetworkManager is easier than you might think. + +![A network diagram][1] + +Image by: Opensource.com + +NetworkManager was introduced in 2004 to make network configuration more flexible and dynamic. The old SystemV startup shell scripts, of which the interface configuration files were a part, were incapable of handling WiFi, wired, VPNs, broadband modems, and more—or at least incapable of doing it quickly or efficiently. + +In a series of articles, I've written about why I'm a fan of NetworkManager and how I've used it. In [part 1][2], I looked at what NetworkManager does and some of the tools it provides for viewing network connections and devices. In that article, I mentioned that NetworkManager does not need interface configuration files for most hosts. However, it can create its own ini-style configuration files, and it recognizes the older network interface configuration files. The NetworkManager configuration files are officially called keyfiles. In [part 2][3], I looked at the deprecated interface configuration files and how to configure them, should you still be using them. + +Support for the deprecated `ifcfg` files is no longer provided by default for new installations beginning with Fedora 36. It will continue to use them on systems that have been upgraded from earlier versions of Fedora to release 36—at least for a while longer. Still, it is not a good idea at this late stage to depend on deprecated `ifcfg` configuration files. So for part 3 of this series, I will demonstrate migrating existing interface configuration files to the NetworkManager keyfiles using the command-line tool provided. I will also look at using both command-line and GUI tools to create new keyfiles from scratch and compare them for ease of use. + +The migration is considerably more straightforward than it sounds. I used the `nmcli connection migrate` command on the two systems I needed to migrate, one with a single network interface card (NIC) and one, my router/firewall, with three NICs. After some extensive testing on a VM, it also worked perfectly the first time on both production hosts. That's it: No other commands, options, or arguments required. And it is fast, taking much less than one second on both hosts. + +### Why should I migrate my files? + +Most of the restrictions of the old shell scripts lay in the structure—or lack thereof—of the `ifcfg` files. NetworkManager introduced the new network connection keyfiles to overcome those issues. But until Fedora 36, it still would recognize the old `ifcfg` configuration files. Now, NetworkManager no longer creates or supports `ifcfg` files for new installations. + +I experimented with NetworkManager on a new Fedora 36 installation and could not convince it to use newly created `ifcfg` files. It continued to treat the interfaces as dynamic host configuration protocol (DHCP) and obtain its configuration values from the DHCP server. The `ifcfg` files are no longer supported on new installations because the `NetworkManager-initscripts-ifcfg-rh` package is no longer installed. That package contains the tools needed to use the `ifcfg` files. Hosts upgraded from older releases of Fedora will still have the `NetworkManager-initscripts-ifcfg-rh` package installed, so it will, for the time being, be upgraded along with the rest of the installation to Fedora 36. This may not be true in the future. + +If you are using DHCP configuration for your network hosts, you do not need to migrate any `ifcfg` files. In fact, you can simply delete them, if they still exist, and NetworkManager will deal with managing the network connections. Personally, I prefer to move deprecated files like these to an archive subdirectory in `/root` so that I can find them later, just in case. + +All hosts with static connections should be migrated. This usually includes servers, firewalls, and other hosts that may need to perform their network functions without the DHCP server being active. I have two hosts like this: my main server and my firewall/router. + +### My experiments + +When NetworkManager officially deprecated the interface configuration files located in `/etc/sysconfig/network-scripts`, it did not immediately stop using them, but the update procedure did drop in a readme file, `/etc/sysconfig/network-scripts/readme-ifcfg-rh.txt`. This short file states explicitly that the `ifcfg` -style files are deprecated. It also provides a simple command that performs the migration for us. + +I suggest you read that file on your host and then experiment in a non-production environment. I used a VM for my experiments and learned a lot. Before I started making changes, I displayed the connection data shown below to get the current state of the network connection. + +``` +[root@myserver ~]# nmcli +enp0s3: connected to Wired connection 1 +        "Intel 82540EM" +        ethernet (e1000), 08:00:27:07:CD:FE, hw, mtu 1500 +        ip4 default +        inet4 192.168.0.136/24 +        route4 192.168.0.0/24 metric 100 +        route4 default via 192.168.0.254 metric 100 + +lo: unmanaged +        "lo" +        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536 + +DNS configuration: +        servers: 192.168.0.52 8.8.8.8 8.8.4.4 +        domains: example.org +        interface: enp0s3 +``` + +I created a simple `ifcfg` file that defines a static configuration on one of my VMs then tested it to verify that this static config worked properly. Here is the `ifcfg-enp0s3` file I created for this testing: + +``` +TYPE=Ethernet +PROXY_METHOD=none +BROWSER_ONLY=no +BOOTPROTO=static +# HWADDR=08:00:27:07:CD:FE +IPADDR=192.168.0.95 +PREFIX=24 +DEFROUTE=no +IPV4_FAILURE_FATAL=no +IPV6INIT=no +NAME=enp0s3 +ONBOOT=yes +DNS1=192.168.0.52 +DNS2=8.8.8.8 +AUTOCONNECT_PRIORITY=-999 +DEVICE=enp0s3 +``` + +I commented out the hardware address in the `ifcfg-enp0s3` file because it does not seem necessary. I tried it both ways, and it works just as well either way—once I finally got it working at all. NetworkManager completely ignored the contents of this file until I installed the `NetworkManager-initscripts-ifcfg-rh` package. After that, NetworkManager was able to set the network configuration from this `ifcfg-enp0s3` file. + +Then it was time to try the migration tool. I ran the command shown below to migrate the `ifcfg` file to a keyfile. + +``` +[root@myserver system-connections]# nmcli connection migrate +Connection 'Wired connection 1' (c7b11d30-522e-306f-8622-527119911afc) successfully migrated. +[root@myserver system-connections]# +``` + +This command took less than a second. It creates the new keyfile and then deletes the `ifcfg` file. I suggest making a copy of the original `ifcfg` file before running this migration tool. It created the `/etc/NetworkManager/system-connections/enp0s3.nmconnection` file for my host. Without specifying a specific interface, this command will migrate all `ifcfg` files located in `/etc/sysconfig/network-scripts`. If a host has multiple NICs and corresponding `ifcfg` files, only some of which you want to migrate, you can specify a list of connections to migrate. + +The keyfiles can be modified using your favorite editor. I tried this by changing the `IPADDR` entry and restarting NetworkManager just to make sure it worked. The `nmcli connection reload` command did not work for me. Making changes directly to the keyfiles using an editor is not recommended, but it does work. To be honest, many experienced sysadmins (like me) really prefer editing ASCII text configuration files directly, so—recommended or not—that is how I do things most of the time. I just like to know what is actually in those files so I can recognize when something is wrong with them. It helps with solving configuration problems. + +### Doing it for real + +After a day of experimenting so that I fully understood how this all works and how to recover in case it fails, I was ready to do it for real. I chose my main server for this initial attempt because it only has a single NIC, which will make it faster to get back online if there is a problem. + +First, I copied the file `/etc/sysconfig/network-scripts/ifcfg-eno1` shown in below to `/root` as a backup. The `nmcli connection migrate` command can make the conversion back from keyfile to `ifcfg` file. But why bother when I can have an exact backup ready to drop back in? + +``` +HWADDR=e0:d5:5e:a2:de:a4 +TYPE=Ethernet +PROXY_METHOD=none +BROWSER_ONLY=no +BOOTPROTO=static +DEFROUTE=yes +IPADDR=192.168.0.52 +PREFIX=24 +GATEWAY=192.168.0.254 +DOMAIN=example.org +IPV6INIT=no +DNS1=192.168.0.52 +DNS2=8.8.8.8 +DNS3=8.8.4.4 +IPV4_FAILURE_FATAL=no +IPV6INIT=no +PEERROUTES=no +NAME="enp0s31f6" +ONBOOT=yes +AUTOCONNECT_PRIORITY=-999 +DEVICE="enp0s31f6" +``` + +After running the `nmcli connection migrate` command, I verified that it emits the status line to indicate that the conversion took place, which it did. I next verified that the `ifcfg` file was gone and the `/etc/NetworkManager/system-connections/enp0s31f6.nmconnection` keyfile was in place: + +``` +[connection] +id=enp0s31f6 +uuid=abf4c85b-57cc-4484-4fa9-b4a71689c359 +type=ethernet +autoconnect-priority=-999 +interface-name=enp0s31f6 + +[ethernet] +mac-address=E0:D5:5E:A2:DE:A4 + +[ipv4] +address1=192.168.0.52/24,192.168.0.254 +dns=192.168.0.52;8.8.8.8;8.8.4.4; +dns-search=example.org; +ignore-auto-routes=true +method=manual + +[ipv6] +addr-gen-mode=stable-privacy +method=ignore +never-default=true + +[proxy] +``` + +This file will not be used until the NetworkManager is restarted or the host is rebooted. I first restarted NetworkManager and then checked the result, as shown below. The network configuration looks correct: + +``` +[root@myserver ~]# nmcli +enp0s31f6: connected to enp0s31f6 +        "Intel I219-V" +        ethernet (e1000e), E0:D5:5E:A2:DE:A4, hw, mtu 1500 +        ip4 default +        inet4 192.168.0.52/24 +        route4 default via 192.168.0.254 metric 100 +        route4 192.168.0.0/24 metric 100 + +lo: unmanaged +        "lo" +        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536 + +DNS configuration: +        servers: 192.168.0.52 8.8.8.8 8.8.4.4 +        domains: example.org +        interface: enp0s31f6 +``` + +After a complete reboot, I verified the network configuration again, and it looked identical to the output above. With that working, I removed the `NetworkManager-initscripts-ifcfg-rh` package and rebooted again, just because it can't hurt to verify everything. + +Once I knew that the migration tool works on one of my production systems, and an important one at that, I was ready to do this on my firewall/router, the one with three NICs. I ran the same `nmcli connection migrate` command on that host and verified the results. After ensuring all was working correctly, I used DNF to remove the `NetworkManager-initscripts-ifcfg-rh` package from both production hosts. And I tested with a couple more reboots of each host just to ensure nothing got borked during the removal of the `initscripts` package. + +### What if I don't have ifcfg files? + +New installations of Fedora don't create any type of network interface configuration files. The default is for NetworkManager to handle network interfaces as DHCP connections. So you don't need to do anything for hosts that use DHCP to obtain their network configuration information. + +However, you may need to create a static configuration for some new hosts even when you don't have a deprecated `ifcfg` file to migrate. + +### Reverting to DHCP + +Reversion to the use of DHCP is easy. Just remove the keyfile for the desired connection from `/etc/NetworkManager/system-connections/` and restart the NetworkManager. Remove can mean moving the file somewhere else or just deleting it. + +In preparation for my next series of experiments in creating new keyfiles, I moved the `enp0s31f6.nmconnection` keyfile to `/root` and restarted NetworkManager. + +##### Creating new keyfiles + +Although the old `ip` command can still be used to modify network interface settings in a live environment, those changes are not persistent after a reboot. Changes made using NetworkManager tools such as `nmcli` or `nmtui`, the GUI NetworkManager connection editor (`nm-connection-editor` ), and your favorite text editor are persistent. The connection editor is available for Fedora on the system tray for each of the desktops I tried—Xfce, Cinnamon, LXDE, KDE Plasma—and probably the rest of the desktops I haven't yet tried. + +##### Text editor + +Assuming you are familiar with the keyfile structure, syntax, and variables, creating or modifying keyfiles from scratch is possible with just an ASCII text editor. As much as I appreciate and use that capability, using one of the three tools provided is usually much simpler. + +##### Using nmtui + +The `nmtui` tool (NetworkManager Text User Interface) is my second choice for a tool in this trio. I find the interface cumbersome, unattractive, and not intuitive. This tool is not installed by default, and I probably would not have installed it if I were not writing this article. + +However, it does work, and it created a keyfile for me that was essentially identical to the one created by the GUI Connection Manager I discuss below. The only differences I found  (using the `diff` command, of course) were the timestamp field in the file and one different selection I intentionally made when configuring the connection. The interface does provide some clues about the data you need to provide to create a working keyfile. + +Start this tool by entering the command `nmtui` on the command line. In general, the arrow keys allow movement between the fields on the displayed pages, and the **Enter** key selects an item to modify or add. The **Page Up/Page Down** keys scroll the page. Select Edit a connection and press Enter to create a new keyfile. + +![A window shows three options under NetworkManager TUI. Edit a connection is first and highlighted in red][4] + +After wending my way through the interface, I arrived at the Edit Connection page. It was not clear to me from this interface that the CIDR prefix should be appended to the IP address, but I did that anyway, and it worked. Fill in the appropriate data on this page to configure the interface. Notice that I have disabled IPV6. + +![The Edit Connection window includes editable fields including name, device, IPv4 Configuration (including addresses, gateway, DNS servers, Search domains) and a similar IPv6 configuration, which is disabled. Routing options that can be checked are shown: Require IPv4 addressing for this connection is checked for this example.][5] + +Next, scroll down to the bottom of the page using the keyboard and press OK to save the keyfile. The keyfile is saved immediately, but NetworkManager must be restarted to activate this file, whether new or changed. Although this is not my favorite interface for creating and managing NetworkManager keyfiles, I plan to use it when the GUI Connection Editor is unavailable, such as when working on a remote host. + +##### Using nmcli + +I have used the `nmcli` tool (Network Manager Command Line Interface) to configure an interface in the past, and this tool also works very well. I just like it the least because it requires the most typing and reading of the man page and online references. Executing the command immediately creates the interface configuration file in the `/etc/NetworkManager/system-connections/` directory. + +The command shown below adds the needed keyfile, just like the other tools. + +``` +[root@myserver system-connections]# nmcli connection add connection-name enp0s3-Wired ifname enp0s3 type ethernet ipv4.addresses 192.168.0.136/24 ipv4.gateway 192.168.0.254 ipv4.dns 192.168.0.254,8.8.8.8,8.8.4.4 ipv4.dns-search example.org ipv6.method disabled +Connection 'ethernet-enp0s3' (67d3a3c1-3d08-474b-ae91-a1005f323459) successfully added. +[root@myserver system-connections]# cat enp0s3-Wired.nmconnection +[connection] +id=ethernet-enp0s3 +uuid=67d3a3c1-3d08-474b-ae91-a1005f323459 +type=ethernet +interface-name=enp0s3 + +[ethernet] + +[ipv4] +address1=192.168.0.136/32,192.168.0.254 +dns=192.168.0.52;8.8.8.8;8.8.4.4; +dns-search=example.org; +method=manual + +[ipv6] +addr-gen-mode=stable-privacy +method=disabled + +[proxy] +[root@myserver system-connections]# +``` + +One of the assistance tools available while using `nmcli connection add` is the Bash tab-completion sequence that shows the available subcommands: + +``` +[root@myserver system-connections]# nmcli connection add +autoconnect                        ifname                             ipv6.dhcp-send-hostname +con-name                           ipv4.addresses                     ipv6.dhcp-timeout +connection.auth-retries            ipv4.dad-timeout                   ipv6.dns +connection.autoconnect             ipv4.dhcp-client-id                ipv6.dns-options +connection.autoconnect-priority    ipv4.dhcp-fqdn                     ipv6.dns-priority +connection.autoconnect-retries     ipv4.dhcp-hostname                 ipv6.dns-search +connection.autoconnect-slaves      ipv4.dhcp-hostname-flags           ipv6.gateway +connection.dns-over-tls            ipv4.dhcp-iaid                     ipv6.ignore-auto-dns +connection.gateway-ping-timeout    ipv4.dhcp-reject-servers           ipv6.ignore-auto-routes +connection.id                      ipv4.dhcp-send-hostname            ipv6.ip6-privacy +connection.interface-name          ipv4.dhcp-timeout                  ipv6.may-fail +connection.lldp                    ipv4.dhcp-vendor-class-identifier  ipv6.method +connection.llmnr                   ipv4.dns                           ipv6.never-default +connection.master                  ipv4.dns-options                   ipv6.ra-timeout +connection.mdns                    ipv4.dns-priority                  ipv6.required-timeout +connection.metered                 ipv4.dns-search                    ipv6.route-metric +connection.mud-url                 ipv4.gateway                       ipv6.routes +connection.multi-connect           ipv4.ignore-auto-dns               ipv6.route-table +connection.permissions             ipv4.ignore-auto-routes            ipv6.routing-rules +connection.read-only               ipv4.may-fail                      ipv6.token +connection.secondaries             ipv4.method                        master +connection.slave-type              ipv4.never-default                 match.driver +connection.stable-id               ipv4.required-timeout              match.interface-name +connection.timestamp               ipv4.route-metric                  match.kernel-command-line +connection.type                    ipv4.routes                        match.path +connection.uuid                    ipv4.route-table                   proxy.browser-only +connection.wait-device-timeout     ipv4.routing-rules                 proxy.method +connection.zone                    ipv6.addresses                     proxy.pac-script +help                               ipv6.addr-gen-mode                 proxy.pac-url +hostname.from-dhcp                 ipv6.dhcp-duid                     slave-type +hostname.from-dns-lookup           ipv6.dhcp-hostname                 tc.qdiscs +hostname.only-from-default         ipv6.dhcp-hostname-flags           tc.tfilters +hostname.priority                  ipv6.dhcp-iaid                     type +[root@myserver system-connections]# nmcli connection add +``` + +I typically prefer the command line for most tasks. However, the complexity of getting the syntax and options of this command correct means that I must always use the man page and research the command before I issue it. That takes time. And it still complained about things I missed or got incorrect. Even when it did not throw an error, it created keyfiles that worked poorly, if at all. For example, the connection worked when I would SSH out from the test VM, but I could not SSH into the test VM. I am still not sure what the problem was, but that keyfile had the wrong CIDR prefix for the IP address. I eventually got the command correct by referring to the example on the manual page nmcli-examples(7). + +When this is the only available method, I can do it, but it is my least preferred tool. + +##### Using the GUI NetworkManager connection editor + +I have used one of my laptops for parts of this section to show both wired and wireless connections. Although I typically prefer command-line tools, I like this GUI NetworkManager connection editor tool best of all the three available tool options. It is easy to use, intuitive, provides fast access to any configuration item that would ever be needed, and is directly available itself in the desktop system tray of all the desktops I have tried. + +Just right-click on the network icon, the one that looks like a pair of computers, in the system tray. Then choose Edit Connections. + +![A dropdown menu shows options for enabling networking, WiFi, and notifications, and others. A pointer arrow indicates the choice Edit Connections][6] + +This opens the connection editing window, as pictured below. Double-click the desired connection from the connection list, usually `Wired Connection 1` or a WiFi SSID. The illustration below shows both wired and wireless connections open for editing on one of my laptops. I have never needed to edit a wireless connection because the ones I connect to always use DHCP for configuration. It is possible to require static addressing for wireless connections, but I have never encountered that. + +![Two windows showing options for editing wired and wireless connections are side by side. The wired ethernet connection has fields for device, MTU, LAN info, and link negotiation. The WiFi version has fields for SSID, Mode, Band, Channel, Rate, Transmission Power, Device, and MTU,][7] + +The Ethernet tab of the Editing Wired Connection 1 dialog window shows the device name `enp111s0` for this laptop. In most cases, nothing on this page needs to be changed. + +Back on my VM, I changed the Method field from Automatic (DHCP) to Manual. I added the IP Address, the CIDR prefix, and the default route (gateway) I want for this host. I also added three DNS servers and the search domain. These are the minimum configuration variables needed for a network connection. They are also the same ones defined in the interface configuration files and the previous keyfiles. The device name for this NIC is `enp0s3`. Here is the configuration for the wired connection using the GUI NetworkManager connection editor tool. + +![The manual wired connection fields include addresses, DNS servers, search domains, DHCP client ID. The box to require IPv4 addressing for this connection to complete is checked.][8] + +Another option available for the Method field is Disabled. I set the IPV6 to **Disabled** since I don't use IPV6. + +After setting these values, clicking the Save button creates the new keyfile immediately. Making changes to existing keyfiles is just as easy. However, NetworkManager must be restarted for these configuration changes to take effect. + +In terms of the amount of time and work involved in creating new NetworkManager keyfiles, the GUI Connection Editor is far better than the other options. It provides an easy-to-use interface with enough information about the data required to be helpful. + +### Conclusions + +Fedora 36 changes the equation for using the old-style, deprecated interface configuration files. For new installations of Fedora 36, those files will not work unless the `NetworkManager-initscripts-ifcfg-rh` package is explicitly installed. This is a warning sign that all support for those deprecated `ifcfg` scripts will be completely ignored in the future. + +Fortunately, the migration from any existing `ifcfg` scripts is trivially easy, and creating new ones is not much more difficult using one of the three tools available. I prefer the GUI NetworkManager connection editor tool because it is clear and easy. I can use the `nmtui` tool, which does the same thing as the GUI version but has a somewhat clunkier user interface. I try not to use the `nmcli` tool if I can help it. It does work but is cumbersome and takes a lot of reading and experimentation to get the correct command syntax and all of the right arguments to create a fully usable keyfile. + +So go ahead and migrate now. I did, and it was easy. + +Image by: (David Both, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/migrate-networkmanager-keyfiles-configuration + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/LAW_fedora_cla.png +[2]: https://opensource.com/article/22/4/networkmanager-linux +[3]: https://opensource.com/article/22/8/network-configuration-files +[4]: https://opensource.com/sites/default/files/2022-08/EditingNetworkConnections-Figure-07.png +[5]: https://opensource.com/sites/default/files/2022-08/EditingNetworkConnections-Figure-08_0.png +[6]: https://opensource.com/sites/default/files/2022-08/EditingNetworkConnections-Figure-11.png +[7]: https://opensource.com/sites/default/files/2022-08/EditingNetworkConnections-Figure-12.png +[8]: https://opensource.com/sites/default/files/2022-08/EditingNetworkConnections-Figure-13.png From 67fe9b252cc5d83f8dc8cac711ceb65ea295e2c6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:04:16 +0800 Subject: [PATCH 0860/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220824=20The=2080-Year=20Computer=20Scientist=20Wh?= =?UTF-8?q?o=20Termed=20-Unix-=20Adds=20Unicode=20Support=20to=20AWK=20Cod?= =?UTF-8?q?e.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-Unix- Adds Unicode Support to AWK Code.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md diff --git a/sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md b/sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md new file mode 100644 index 0000000000..09e0add159 --- /dev/null +++ b/sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md @@ -0,0 +1,68 @@ +[#]: subject: "The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code" +[#]: via: "https://news.itsfoss.com/unix-awk-unicode/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code +====== +Brian Kernighan is still active to add code contributions to his original project AWK in his 80s. That's inspiring! + +![The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code][1] + +**Brian Kernighan** is popularly known for his work along with the creators of Unix, **Ken Thompson** and **Dennis Ritchie**. He made significant contributions to the development of Unix. + +Not just that, Brian Kernighan also suggested the name "**Unix**" and created the "*Hello, world*" as a test phrase for programs. + +You might also recognize him as a co-author of the book "*The C Programming Language*" along with Dennis Ritchie. So, it is safe to say he's an important part of everything you know about Unix, Linux, BSD, and the evolution of C programming language. + +And, as an **80-year-old**(now), he seems to have invested some time to add a new feature to "**AWK**", a scripting language he co-created back in the 1970s. + +💙 That's **wonderful**, right? And, sounds like something to **inspire** us. + +**Note:** *[AWK is still a powerful utility to process text and extract data, true to its original purpose. If you're curious, you can learn more about it on freeCodeCamp.][2]* + +### Adding Unicode Support to AWK + +The feature addition was recently spotted by [The Register][3] via a recent interview on YouTube. + +Technically, the contribution was made a few months back, but now it's getting the attention. + +![Coffee with Brian Kernighan - Computerphile][4] + +Of course, the feature addition may not be a big deal for many. But, the effort behind it, and who contributed it, makes a world of difference. + +Moreover, it is **interesting** to note that he is not entirely aware of how Git works. So, keeping that in mind, I think he did pretty well with the commit here: + +[Add BWK’s email. · onetrueawk/awk@9ebe940][5] + +He mentions: + +I would recommend you to watch the interview linked above, if you have a curiosity on the original creators and contributors of Unix and many essential innovations along the way. + +You can also check more of his work and recent books in his page on [Princeton University's website][6]. + +💬 *So, what do you think about this code contribution by a Unix legend in his 80s? Do you admire him for anything particular? Share your thoughts in the comments down below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unix-awk-unicode/ + +作者:[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/content/images/size/w1200/2022/08/brian-awk-creator.jpg +[2]: https://www.freecodecamp.org/news/the-linux-awk-command-linux-and-unix-usage-syntax-examples/ +[3]: https://www.theregister.com/2022/08/23/universal_unix_tool_awk_gets/ +[4]: https://youtu.be/GNyQxXw_oMQ +[5]: https://github.com/onetrueawk/awk/commit/9ebe940cf3c652b0e373634d2aa4a00b8395b636 +[6]: https://www.cs.princeton.edu/~bwk/ From 3ef1ce8e36f460bf2d3c98c65a83465de5f98a51 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:06:46 +0800 Subject: [PATCH 0861/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220824=20It-s=20Massive!=20InfinityBook=20Pro=2014?= =?UTF-8?q?=20is=20a=20Lightweight=20Linux=20Laptop=20With=20a=20HUGE=2099?= =?UTF-8?q?Wh=20Battery=20Offering.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...aptop With a HUGE 99Wh Battery Offering.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md diff --git a/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md b/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md new file mode 100644 index 0000000000..f3cef1a375 --- /dev/null +++ b/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md @@ -0,0 +1,100 @@ +[#]: subject: "It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering" +[#]: via: "https://news.itsfoss.com/infinitybook-pro-14-release/" +[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering +====== +TUXEDO Computers is back with an impressive flagship lineup, a massive battery variant, and a storage edition. Let's check them out. + +![It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering][1] + +TUXEDO Computers are one of the few manufacturers that provide fine-tuned Linux experiences out of the box. + +You can expect Ubuntu/TUXEDO OS as your default options with any of their devices, but they also support more Linux distributions. + +Now, they have come up with a refreshed product lineup, i.e., **InfinityBook Pro 14 (Gen 7).**And, it happens to be one of their flagship offerings! + +### InfinityBook Pro 14: Key Highlights + +![Tuxedo infinitybook pro 14][2] + +InifnityBook Pro 14 sports a 3K resolution display (a.k.a. *Omnia 3K display*) with a 16:10 ratio. + +To elevate your visual experience, the display supports 400 nits of brightness and complete sRGB color space coverage, so colors will be more natural. + +![tuxedo computer][3] + +It also has a matt coating to the panel that should eliminate the disturbing glares that may end up disturbing your productivity. + +Tuxedo came up with two lightweight variants for this lineup, so you can choose what your workflow demands the most without compromising portability. + +🔋 **An endurance edition with 99 Wh Battery**(*1.1 kg*)   💾  **A storage giant with 4 TB SSD (***1.3 kg***)** + +![Tuxedo infinitybook pro with 99Wh of battery][4] + +99 Wh battery for a laptop sounds like a dream come true for users who want to get more out of their portable machines. + +TUXEDO Computers claims around 10 hours of runtime while connected with active WLAN and web surfing and while used with battery saving mode/idle usage, this can go up to 16 hours! + +![Tuxedo infinitybook pro 14 with 4TB of storage][5] + +If you do not need maximum endurance, you can opt for the second variant with more storage expansion opportunity. + +You can use **x2 available M.2 slots**, by which you can upgrade your storage up to 4 TB (considering 2TB on each slot). + +To maximize storage performance/reliability, you can connect the SSDs in a RAID cluster form. + +#### Suggested Read 📖 + +[13 Places to Buy Linux Laptops in 2021][6] + +### 💻 Other Specifications + +Along with a good display, enhanced storage options, and a massive battery, you can expect a pretty solid performance with the following specifications: + +* 14-core Intel 12th gen processor (i7-12700H) equipped with 8 efficiency and 6 performance cores. +* NVIDIA GeForce RTX 3050 Ti (optional) Max-Q variant with TGP of 35 watts (boost up to 45 watts). +* Up to 64 GB DDR 3200 MHz RAM (to slots for dual-channel setup). +* Thunderbolt 4 with onboard transmission speed up to 40 Gbit/s. +* White backlit keyboard. +* Intel Wi-Fi 6 and Bluetooth 5.2. +* Full-size SD card reader. +* TUXEDO Control Center (TCC) to manage power, security, and a lot more. + +### 🏷️ Pricing & Availability + +If you want to go with the 99Wh battery variant, with *NVIDIA GeForce RTX 3050 Ti, 1x 8 GB 3200 MHz DDR4 RAM, and a 250 GB Samsung 980 EVO Plus NVMe SSD***,**it will cost you **1629,41 EUR.** + +While if you're looking for the storage edition with a 53 Wh battery, it is priced at **1587,39 EUR** and includes one *250 GB Samsung 980 EVO Plus NVMe SSD,1x 8 GB 3200 MHz DDR4 RAM, NVIDIA GeForce RTX 3050 Ti 4 GB* for the base configuration. + +It will be available to order by the end of August. As of now, you can configure, and pre-order it. + +[Get InfinityBook Pro 14][7] + +💬 *What do you think about the InifinityBook Pro 14? Does it seem interesting for you to get one? Share your thoughts in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/infinitybook-pro-14-release/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/tuxedo-infinitybook-14-.jpg +[2]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14.jpg +[3]: https://news.itsfoss.com/content/images/2022/08/image.png +[4]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14-with-99Wh-battery.jpg +[5]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14-storage-edition.jpg +[6]: https://itsfoss.com/get-linux-laptops/ +[7]: https://www.tuxedocomputers.com/en/TUXEDO-InfinityBook-Pro-14-Gen7.tuxedo# From 39250e2df2ccb17a776e5aa4c4c94b411e903977 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:09:26 +0800 Subject: [PATCH 0862/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220824=20Linux-First=20AI=20Image=20Upscaler=20Ups?= =?UTF-8?q?cayl=20Released=20its=20First=20Version.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...aler Upscayl Released its First Version.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md diff --git a/sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md b/sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md new file mode 100644 index 0000000000..ce986491b4 --- /dev/null +++ b/sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md @@ -0,0 +1,101 @@ +[#]: subject: "Linux-First AI Image Upscaler Upscayl Released its First Version" +[#]: via: "https://news.itsfoss.com/upscayl-version-1-release/" +[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux-First AI Image Upscaler Upscayl Released its First Version +====== +Not every day you come across an application with 'Linux-first' approach. + +![Linux-First AI Image Upscaler Upscayl Released its First Version][1] + +Got a pixelated, low-resolution image from the 2000s? Thanks to the advancement of artificial intelligence, you can easily enhance pixelated images into better resolution images. + +Using a regular image editor requires manual efforts for upscaling the images. + +There are tons of online AI image upscalers available, but they can't be trusted with your data. + +A new project tries to solve this by providing you with a simple desktop application that lets you enhance low resolution photos in a new click. + +It's first version is released today. + +### Upscayl Features + +[Upscayl][2] is a cross-platform application built with the Linux-first philosophy. + +This simply means that Linux builds get priority but other platforms will also be supported. + +Developed using Python and JavaScript, Upscayl gives a simple interface where you select the input image and output folder and hit the Upscayl button to enhance the image. + +Here's a video of Upscayl in action. + +![][3] + +0:00 + +### Using Upscayl + +I don't have lots of blurry pictures on my computer. Not that I am an excellent photographer, just too lazy to look for them among thousands of pictures. + +Still, I managed to get a blurry, old photo from 2011 (it was 11 years ago and can be considered old now). + +![Old blurry photo of a kitchen][4] + +Don't judge me because I took a random photo of my kitchen counter. There must have been a good reason (or so I want to believe). + +Anyway. I tried to upscale the image with Upscayl. + +![Using Upscayl][5] + +It took quite some processing power, but my 8-core, 11th Gen i7 processor with 16 GB RAM easily handled it. + +![CPU usage while Upscayl works on upscaling the image][6] + +The single image processing took around 4 minutes and the 435 KB image resulted in a 24 MB image. Quite honestly, I hardly noticed visible differences. + +![Upscaled image by Upscayl][7] + +I wanted to embed the final result in the article here. But uploading a 24 MB image would be overkill for my server and your browser. + +### Getting Upscayl + +Still, my not-so-successful experiment should not deter you from trying it out yourself. + +The application is available for Linux at the moment. Support for Windows and macOS is planned. + +You can get Upscayl in AppImage and Flatpak formats. I used the AppImage version, you can use whichever you prefer. + +The files are available on the release page. + +[Download Upscayl][8] + +And if you liked the project, don't forget to star it on GitHub 👇 + +[GitHub - TGS963/upscayl: 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows][9] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/upscayl-version-1-release/ + +作者:[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/abhishek/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/upscayl-image-upscaler.png +[2]: https://github.com/TGS963/upscayl +[3]: https://news.itsfoss.com/content/media/2022/08/upscayl-in-action.mp4 +[4]: https://news.itsfoss.com/content/images/2022/08/old-blurry-photo.jpg +[5]: https://news.itsfoss.com/content/images/2022/08/Using-Upscayl-for-image-processing.png +[6]: https://news.itsfoss.com/content/images/2022/08/Upscayl-CPU-usage.png +[7]: https://news.itsfoss.com/content/images/2022/08/Upscayl-final-result.png +[8]: https://github.com/TGS963/upscayl/releases +[9]: https://github.com/TGS963/upscayl From 358cc6cebeb98c2950437c5aa12c3c422f3a5aad Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:13:03 +0800 Subject: [PATCH 0863/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220823=20Fedora=2037-=20Top=20New=20Features=20and?= =?UTF-8?q?=20Release=20Wiki.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...a 37- Top New Features and Release Wiki.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md diff --git a/sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md b/sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md new file mode 100644 index 0000000000..168a654fd6 --- /dev/null +++ b/sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md @@ -0,0 +1,119 @@ +[#]: subject: "Fedora 37: Top New Features and Release Wiki" +[#]: via: "https://www.debugpoint.com/fedora-37/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora 37: Top New Features and Release Wiki +====== +An article about Fedora 37 and its new features, release details and everything you need to know. + +Fedora 37 development is wrapping up, and the BETA is approaching. Hence the features and packages are final at this stage. + +In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule. + +* The beta copy is due on September 13, 2022. The fallback date is September 20, 2022. +* Final Fedora 37 is planned for release on October 18, 2022. The fallback date is October 25, 2022. + +![Fedora 37 Workstation with GNOME 43][1] + +### Fedora 37: Top New Features + +#### Kernel + +**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][2]. + +The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time. + +**Next** up, the desktop environments are updated in this release. + +#### Desktop Environment + +Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as: + +* [Revamped quick settings][3] with pill-buttons +* Files (nautilus) 43 with GTK4 and libadwaita port +* Files with rubberband, emblems, responsive sidebar-like features +* Updated GNOME Web with WebExtension API support + +And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][4] to learn more. + +Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include: + +* An updated overview screen. +* Dynamic wallpaper for dark and light themes. +* Updated KDE Framework and applications. + +Since the lightweight desktop LXQt gets a stable update 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition. + +In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.24**for the respective Fedora flavours. + +Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are. + +#### System wide changes + +The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports. + +Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour. + +As I [reported earlier][5], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release. + +Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection. + +Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features. + +Following the tradition, this release also features a [brand new wallpaper][6] with both night and day version. I must say it’s looks awesome (see the above desktop image). + +Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated. + +The toolchain, apps and programming stack is updated as follows: + +* Glibc 2.36 and Binutils 2.38 +* Node.js 18.x +* Perl 5.36 +* Python 3.11 + +### Summary of features in Fedora 37 + +So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features: + +* Linux Kernel 5.19 +* GNOME 43 +* KDE Plasma 5.26 +* Xfce 4.16 +* MATE 1.24 +* LXQt 1.1.0 +* A preview image of the new web-based installer +* The SDDM display manager defaults to Wayland (in KDE Plasma and others) +* Official Raspberry Pi 4 support +* Fedora Core OS becomes the official flavour +* Key packages dropping 32-bit support +* And associated toolchain and programming language updates. + +If you have spare time, you can [give it a spin][7] or test drive. Although, it is extremely unstable and not recommended to run the development version until beta. + +**So, what’s your favourite feature in this release? Let me know in the comment section.** + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-37/ + +作者:[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/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg +[2]: https://www.debugpoint.com/linux-kernel-5-19/ +[3]: https://www.debugpoint.com/gnome-43-quick-settings/ +[4]: https://www.debugpoint.com/gnome-43/ +[5]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ +[6]: https://debugpointnews.com/fedora-37-wallpaper/ +[7]: https://dl.fedoraproject.org/pub/fedora/linux/development/37/Workstation/x86_64/iso/ From ccd3bd445838a40604362439efce8187c7495ac4 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:13:53 +0800 Subject: [PATCH 0864/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220824=20Webmin=202.0=20Is=20Now=20Available=20For?= =?UTF-8?q?=20Open=20Source=20Web-Based=20Server=20Administration.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Source Web-Based Server Administration.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md diff --git a/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md b/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md new file mode 100644 index 0000000000..625f67b769 --- /dev/null +++ b/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md @@ -0,0 +1,35 @@ +[#]: subject: "Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration" +[#]: via: "https://www.opensourceforu.com/2022/08/webmin-2-0-is-now-available-for-open-source-web-based-server-administration/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration +====== +With its significant “v2.0” release, Webmin, a well-liked open source web-based server administration/management software package that is a popular alternative to programmes like cPanel and Plesk, is now available. + +Webmin’s safe web browser-based interface makes it simple to manage Linux servers. This programme is still primarily Perl-based and BSD-licensed. In the twenty years that Webmin has been used to manage Linux servers, it has placed a strong emphasis on preserving backwards compatibility. Years ago, there was talk about reworking much of the code and getting rid of a lot of the legacy support, including support for out-of-date Perl versions and end-of-life operating systems. For Webmin 2.0, this ultimately wasn’t the case. + +Webmin 2.0 was released this week as a more incremental improvement over the Webmin 1.xxx releases. Originally, the bump to Webmin 2.0 would have been deleting the legacy support that has accrued over the years. Webmin 2.0 now enforces the HTTP Strict Transport Security (HSTS) policy for its SSL enabled mode, improves HTTP to HTTPS redirection, supports managing multiple Webmin versions on systems based on systemd, improves upgrading between minor Webmin versions, and more. + +Another significant improvement in Webmin 2.0 is the addition of support for AMD CPU temperature reporting within the administration interface. + +Webmin 2.0 includes fixes such as restarting dependant services when firewalld is restarted, keeping Usermin and Webmin’s service status when upgrading packages, and more. You can download Webmin 2.0 (v2.000) from [GitHub][1]. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/webmin-2-0-is-now-available-for-open-source-web-based-server-administration/ + +作者:[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://github.com/webmin/webmin/releases/tag/2.000 From 359d82513cee85d37b83e68405ea5d7e6c4e82ed Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 24 Aug 2022 20:16:39 +0800 Subject: [PATCH 0865/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220823=20An=20Open=20Source=20Mod-Based=20Method?= =?UTF-8?q?=20Of=20Universal=20Windows=20Customization,=C2=A0Windhawk.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iversal Windows Customization, Windhawk.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md diff --git a/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md b/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md new file mode 100644 index 0000000000..f207a6022f --- /dev/null +++ b/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md @@ -0,0 +1,40 @@ +[#]: subject: "An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk" +[#]: via: "https://www.opensourceforu.com/2022/08/an-open-source-mod-based-method-of-universal-windows-customization-windhawk/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk +====== + +![][1] + +It seems like Microsoft is eliminating customising possibilities with every new version of Windows. An open source solution called Windhawk makes an effort to revive and add new Windows customizations. Windhawk was created by Ramen Software, known for other tools like Textify and 7+ Taskbar Tweaker, to streamline the process of making adjustments to programmes and the operating system. + +An example is the developers’ own taskbar tweaker for Windows. Understanding some of the inner workings of the operating system, such as process injection or function hooking, is required to develop such an app. All programmers who want to build customizations must learn and comprehend these. Without having to construct these additional features, Windhawk was developed as a core for customizations to which anyone may contribute. + +The modular design of Windhawk is one of its key concepts. Users of Windhawk can download and install mods and tweaks that developers have created on their systems. You can run Windhawk as a portable programme or with an installation. The program’s primary interface lists a number of highlighted improvements, including Dark Mode for Notepad, mouse-over volume controls, and mouse-wheel scrolling for Chrome and Edge tabs. + +All currently offered mods are displayed when “browse for mods” is clicked. Other notable changes included in these are the ability to turn off grouping on the taskbar, providing the ability to rearrange taskbar thumbnails with the left mouse, and adding text labels for apps in Windows 11. A new page with installation options, the source code, and a preview of the tweak may be accessed by clicking the details button. The mods that are available list compatibility details, but not all of them do. + +On the local system, a fork option is available to create a customised version of a mod. Users can disable any development-related features in the Windhawk interface in the settings if they don’t want them there. + +A warning that changes may harm the system, violate privacy, or inflict other harm is displayed when you click install. To continue with the installation or cancel it, select “accept risk and install.” Installations proceed quickly and silently. To once more remove the mod from the system, the install button transforms into an uninstall button. The system adjustments could take a while to take effect. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/an-open-source-mod-based-method-of-universal-windows-customization-windhawk/ + +作者:[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/08/microsoft-1536x1024.jpg From 159a05aa230a49fa7d2c6e6406835be2c9c6e2c9 Mon Sep 17 00:00:00 2001 From: Donkey <58808837+Donkey-Hao@users.noreply.github.com> Date: Wed, 24 Aug 2022 20:32:06 +0800 Subject: [PATCH 0866/3123] PR --- .../20220726 How I use Bash to automate tasks on Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220726 How I use Bash to automate tasks on Linux.md b/sources/tech/20220726 How I use Bash to automate tasks on Linux.md index 0a3635e515..7ad66f46ea 100644 --- a/sources/tech/20220726 How I use Bash to automate tasks on Linux.md +++ b/sources/tech/20220726 How I use Bash to automate tasks on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/use-bash-automate-tasks-linux" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey-Hao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -133,7 +133,7 @@ via: https://opensource.com/article/22/7/use-bash-automate-tasks-linux 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fe348a476b77966a249966e7b6f7d76876903c74 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 25 Aug 2022 08:38:17 +0800 Subject: [PATCH 0867/3123] translated --- ...mulators to Play Old NES Games on Linux.md | 107 ------------------ ...mulators to Play Old NES Games on Linux.md | 105 +++++++++++++++++ 2 files changed, 105 insertions(+), 107 deletions(-) delete mode 100644 sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md create mode 100644 translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md diff --git a/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md deleted file mode 100644 index 082277e5e4..0000000000 --- a/sources/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md +++ /dev/null @@ -1,107 +0,0 @@ -[#]: subject: "3 NES Emulators to Play Old NES Games on Linux" -[#]: via: "https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -3 NES Emulators to Play Old NES Games on Linux -====== -A quick look at 3 NES Emulators to play old NES games in Linux. Also, we provide an Installation guide and features - -If you want to play the old retro games such as Super Mario, Pokemon, etc in the latest Ubuntu, Linux Mint versions, there are plenty of emulators available. Here are three emulators that you can try if you want to play old retro games. - -### NES emulators play old NES games - -#### 1. ZSNES - -[ZSNES][1] is a Super [Nintendo][2] Emulator that can run on Windows, Linux, FreeBSD, and DOS. It runs as a GUI interface where you can load ROM of NES games. - -Here is how to install ZSNES in Ubuntu, Debian and Linux Mint. Run below command from terminal: - -``` -sudo apt install zsnes -``` - -For Fedora, run the following command to install after setting up [RPM fusion using this guide][3]. Because it requires some modules which is not provided by official Fedora distro. - -``` -sudo dnf install zsnes -``` - -After installation, search for ZSNES from Dash or type zsnes in terminal. - -![ZSNES Main][4] - -![Play old NES games using ZSNES in Ubuntu][5] - -#### 2. Higan - -higan is an emulator for Nintendos SNES, NES, Gameboy, Gameboy Color, and Gameboy Advance. It was formerly called bsnes and the SNES emulation is especially complete and polished. - -higan strives to provide the most faithful hardware emulation possible. It focuses on accuracy and clean code, rather than speed and special features. It is meant as a reference emulator to document how the underlying hardware works. - -Here is how to install higan from command line. - -``` -sudo apt install higan -``` - -![Higan Running in Ubuntu][6] - -#### 3. GFCEU - -GNOME FCE Ultra (gfceu) is a graphical front-end for the FCE Ultra Nintendo Entertainment System intended for the GNOME desktop. Gfceu eases the gaming experience for the user and provides a clean, simple, and intuitive interface. - -Run below commands from terminal to install gfceu for Ubuntu, Linux Mint and related distros. - -``` -sudo apt install gfceu -``` - -For Fedora, run the following command to install. Please make sure to set up [RPM fusion using this guide][7] before running this command. Because it requires certain packages which is not provided by official Fedora distro. - -``` -sudo dnf install gfceu -``` - -![gfceu running in Ubuntu][8] - -### Download Game ROMs - -There are hundreds of websites which provides NES ROMs. Here are few of them where you can download NES ROM. Once downloaded, unzip them and open from the emulator menu. - -* [https://romsman][9][ia.c][10][c/roms/nintendo][11] -* [https://romsmode.com/][12] -* [www.emuparadise.me][13] - -Enjoy and play old NES games using these emulators. Do let me know which one is your favourite. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/ - -作者:[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]: http://www.zsnes.com/ -[2]: https://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System -[3]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ -[4]: https://www.debugpoint.com/wp-content/uploads/2016/07/ZSNES-Main.png -[5]: https://www.debugpoint.com/wp-content/uploads/2016/07/ZSNES-Running-in-Ubuntu.png -[6]: https://www.debugpoint.com/wp-content/uploads/2016/07/Higan-Running-in-Ubuntu.png -[7]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ -[8]: https://www.debugpoint.com/wp-content/uploads/2016/07/gfceu-running-in-Ubuntu.png -[9]: https://romsmania.cc/roms/nintendo -[10]: https://romsmania.cc/roms/nintendo -[11]: https://romsmania.cc/roms/nintendo -[12]: https://romsmode.com/ -[13]: http://www.emuparadise.me/Nintendo_Entertainment_System_ROMs/13 diff --git a/translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md new file mode 100644 index 0000000000..ba7fabdc3f --- /dev/null +++ b/translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md @@ -0,0 +1,105 @@ +[#]: subject: "3 NES Emulators to Play Old NES Games on Linux" +[#]: via: "https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 个可在 Linux 上玩旧 NES 游戏的 NES 模拟器 +====== +快速浏览在 Linux 中玩旧 NES 游戏的 3 个 NES 模拟器。此外,我们还提供安装指南和特性。 + +如果你想在最新的 Ubuntu、Linux Mint 版本中玩超级马里奥、口袋妖怪等老式复古游戏,有很多可用的模拟器。如果你想玩老式复古游戏,可以尝试以下三个模拟器。 + +### NES 模拟器上玩旧 NES 游戏 + +#### 1. ZSNES + +[ZSNES][1] 是一个超级 [Nintendo][2] 模拟器,可以在 Windows、Linux、FreeBSD 和 DOS 上运行。它作为 GUI 界面运行,你可以在其中加载 NES 游戏的 ROM。 + +这是在 Ubuntu、Debian 和 Linux Mint 中安装 ZSNES 的方法。从终端运行以下命令: + +``` +sudo apt install zsnes +``` + +对于 Fedora,在[使用这个指南设置 RPM fusion][3] 后运行以下命令进行安装。因为它需要一些 Fedora 官方发行版没有提供的模块。 + +``` +sudo dnf install zsnes +``` + +安装后,从 Dash 中搜索 ZSNES 或在终端中输入 zsnes。 + +![ZSNES Main][4] + +![Play old NES games using ZSNES in Ubuntu][5] + +#### 2. Higan + +higan 是 Nintendos SNES、NES、Gameboy、Gameboy Color 和 Gameboy Advance 的模拟器。它以前被称为 bsnes,并且 SNES 仿真特别完整和完善。 + +higan 努力提供最忠实的硬件仿真。它专注于准确性和简洁的代码,而不是速度和特殊功能。它旨在作为参考仿真器来记录底层硬件的工作原理。 + +这是从命令行安装 higan 的方法。 + +``` +sudo apt install higan +``` + +![Higan Running in Ubuntu][6] + +#### 3. GFCEU + +GNOME FCE Ultra (gfceu) 是用于 GNOME 桌面的 FCE Ultra 任天堂娱乐系统的图形前端。 Gfceu 简化了用户的游戏体验,并提供了干净、简单和直观的界面。 + +从终端运行以下命令,为 Ubuntu、Linux Mint 和相关发行版安装 gfceu。 + +``` +sudo apt install gfceu +``` + +对于 Fedora,运行以下命令进行安装。请确保在运行此命令之前[使用这个指南设置 RPM fusion][7]。因为它需要某些官方 Fedora 发行版未提供的软件包。 + +``` +sudo dnf install gfceu +``` + +![gfceu running in Ubuntu][8] + +### 下载游戏 ROM + +有数百个网站提供 NES ROM。这里有几个你可以下载 NES ROM 的地方。下载后,解压缩并从模拟器菜单中打开。 + +* [https://romsmania.cc/roms/nintendo][9] +* [https://romsmode.com/][12] +* [www.emuparadise.me][13] + +使用这些模拟器享受和玩旧 NES 游戏。请让我知道你最喜欢哪一个。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: http://www.zsnes.com/ +[2]: https://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System +[3]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[4]: https://www.debugpoint.com/wp-content/uploads/2016/07/ZSNES-Main.png +[5]: https://www.debugpoint.com/wp-content/uploads/2016/07/ZSNES-Running-in-Ubuntu.png +[6]: https://www.debugpoint.com/wp-content/uploads/2016/07/Higan-Running-in-Ubuntu.png +[7]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[8]: https://www.debugpoint.com/wp-content/uploads/2016/07/gfceu-running-in-Ubuntu.png +[9]: https://romsmania.cc/roms/nintendo +[12]: https://romsmode.com/ +[13]: http://www.emuparadise.me/Nintendo_Entertainment_System_ROMs/13 From db79c422da4a2a55806b57cc79bfa826c5987cfa Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 25 Aug 2022 08:43:20 +0800 Subject: [PATCH 0868/3123] translating --- sources/tech/20220819 5 note-taking apps for Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220819 5 note-taking apps for Linux.md b/sources/tech/20220819 5 note-taking apps for Linux.md index bd3244b93c..cb8da4d4ab 100644 --- a/sources/tech/20220819 5 note-taking apps for Linux.md +++ b/sources/tech/20220819 5 note-taking apps for Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/note-taking-apps-linux" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 766d9d66b7937d3de3c534f12b9b212d9120d509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Thu, 25 Aug 2022 08:56:52 +0800 Subject: [PATCH 0869/3123] Translated --- ...20726 How To Change GRUB Theme In Linux.md | 356 ------------------ ...20726 How To Change GRUB Theme In Linux.md | 356 ++++++++++++++++++ 2 files changed, 356 insertions(+), 356 deletions(-) delete mode 100644 sources/tech/20220726 How To Change GRUB Theme In Linux.md create mode 100644 translated/tech/20220726 How To Change GRUB Theme In Linux.md diff --git a/sources/tech/20220726 How To Change GRUB Theme In Linux.md b/sources/tech/20220726 How To Change GRUB Theme In Linux.md deleted file mode 100644 index 1ed6a50c75..0000000000 --- a/sources/tech/20220726 How To Change GRUB Theme In Linux.md +++ /dev/null @@ -1,356 +0,0 @@ -[#]: subject: "How To Change GRUB Theme In Linux" -[#]: via: "https://ostechnix.com/change-grub-theme-in-linux/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How To Change GRUB Theme In Linux -====== -Install And Apply Modern, Beautiful GRUB Themes In Linux - -**GRUB**, stands for **GR**and **U**nified **B**ootloader, is default boot loader for most Linux operating systems. GRUB boot loader is the first program that runs when the computer starts. As you may noticed, the default theme of the GRUB menu is bland. It's just a black background with white characters on it. Some of you may not like the default GRUB theme. In this tutorial, I will demonstrate how to **change GRUB theme** or apply gorgeous themes in-order to make your GRUB menu more beautiful and elegant in Linux. - -A few years ago, we published a guide that explained how to **[configure GRUB2 bootloader settings][1]** in Ubuntu. In that article, we showed you how to change the GRUB background. - -But, changing background is not the real customization. In this guide, we are going to change not only the wallpaper but also the fonts, theme and the overall design of GRUB. - -**Disclaimer:** Installing GRUB themes may break you system. I strongly recommend you to try and test a theme in a VM and see if it works without any issues. And then install the theme in the actual system. - -### Introduction - -There are many Community-developed GRUB themes available on Internet. However, they are all scattered across different websites. So finding a good GRUB theme might be little difficult and time-consuming. - -One of the notable contributor for GRUB themes is **Pling** website. But the majority of the themes in Pling are either very basic or outdated. - -Fortunately, I've come across a project called **"Gorgeous GRUB"**, a place for finding various elegant GRUB themes. Trust me, the author has put a good effort to collect these themes and you will definitely like one of them. - -### Gorgeous GRUB - A Place To Find Decent GRUB Themes - -**Gorgeous GRUB** is a collection of decent GRUB community themes created by various users. The developer of this project has hand-picked beautiful GRUB themes from **Pling**, **/r/unixporn** and many other forums and put them all together to make it easy for the users to browse them. - -As stated already, so many themes in Pling are just crappy and outdated. The author of Gorgeous GRUB repository dug through the entire GRUB section of Pling, and a few other forums and put together all good GRUB theme in one place. - -FYI, these aren't some low-quality, poorly made themes. They had a fair amount of effort put into them, with custom backgrounds, fonts, and colours. - -Please note that Gorgeous GRUB isn't an application to install your favorite GRUB theme. It is just a curated list of decent working GRUB themes. - -This project is hosted in GitHub. If you've any cool GRUB theme, you can add it to the Gorgeous GRUB theme list as well. - -### How To Change GRUB Theme - -Applying or changing GRUB themes is not that difficult. - -Go to the **[Gorgeous GRUB GitHub page][2]** and click on the title of any theme you want to apply. And then you will be taken to the theme's actual home page. Some themes are hosted in **Pling** and some are hosted in **GitHub**. We will see how to install GRUB themes from Pling and GitHub. - -First, let use see how to apply **Descent** theme, which is hosted in Pling. - -#### 1. Install GRUB Theme From Pling - -If the themes are hosted in Pling site, follow these instructions. - -From the theme home page, click the **Files** tab. You will find this tab right under the image preview. Click on the file link to download it. - -![Download GRUB Theme From Pling][3] - -Go to the download location and extract the archive file. - -``` -$ tar xzf 173860-20150926\ descent.tar.gz -``` - -The contents of the archive will be extracted to a directory called **"descent"** in the current working directory. - -Copy the "descent" directory to `/boot/grub/themes/` directory using the following command. - -``` -$ sudo cp -r descent/ /boot/grub/themes/ -``` - -If the "themes" directory is not available, just create it. - -``` -$ sudo mkdir /boot/grub/themes -``` - -And assign proper ownership to the "themes" directory. - -``` -$ sudo chown $USER /boot/grub/themes/ -``` - -And then copy the contents of the "descent" directory to "themes" directory as shown above. - -You should now have a folder in the themes directory named after the theme. - -``` -$ ls /boot/grub/themes/ -descent -``` - -And that theme folder (i.e. descent) should include the `theme.txt` and any other relevant files (e.g. background image, customization files) that theme came with. - -``` -$ ls /boot/grub/themes/descent/ -background1280x800.png descent_score_14.pf2 menu_ne.png menu_s.png progresshigh_c.png scrollframe_c.png scroll_thumb_n.png -background_original.jpg descent_score_18.pf2 menu_n.png menu_sw.png progresshigh_e.png scrollframe_n.png scroll_thumb_s.png -copyright menu_c.png menu_nw.png menu_w.png progresshigh_w.png scrollframe_s.png select_os.png -descent_logo_bold_18.pf2 menu_e.png menu_se.png progressbar_c.png readme scroll_thumb_c.png theme.txt -``` - -After copying the downloaded theme to `/boot/grub/themes/` directory, edit `/etc/default/grub` file. - -Before any changes, please backup the grub file, just in case: - -``` -$ sudo cp /etc/default/grub /etc/default/grub.bak -``` - -Now edit the file with your preferred editor: - -``` -$ sudo nano /etc/default/grub -``` - -Find the `GRUB_THEME=` line and add the path to the `theme.txt` of the theme you want to use. And also, uncomment the `GRUB_GFXMODE=` line and enter the background image resolution. Usually, the filename of background image contains its resolution (e.g. background1280x800.png). - -``` -[...] -GRUB_THEME=/boot/grub/themes/descent/theme.txt -GRUB_GFXMODE=1280x800 -[...] -``` - -![Enter Theme Txt File Path And Background Image Resolution][4] - -Again, if those lines does not exist, simply add them. Press **CTRL+O** and **CTRL+X** to save the changes and close the file. - -Now, apply the changes to the GRUB using command: - -``` -$ sudo update-grub -``` - -**Sample output:** - -``` -Sourcing file `/etc/default/grub' -Sourcing file `/etc/default/grub.d/init-select.cfg' -Generating grub configuration file ... -Found theme: /boot/grub/themes/descent/theme.txt -Found linux image: /boot/vmlinuz-5.15.0-41-generic -Found initrd image: /boot/initrd.img-5.15.0-41-generic -Found linux image: /boot/vmlinuz-5.15.0-39-generic -Found initrd image: /boot/initrd.img-5.15.0-39-generic -Found memtest86+ image: /boot/memtest86+.elf -Found memtest86+ image: /boot/memtest86+.bin -Warning: os-prober will not be executed to detect other bootable partitions. -Systems on them will not be added to the GRUB boot configuration. -Check GRUB_DISABLE_OS_PROBER documentation entry. -done -``` - -![Update GRUB][5] - -If you're on RPM-based systems (E.g. Fedora), run the following command to update GRUB: - -``` -$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead -``` - -Reboot your system. You will be pleased with the updated GRUB theme. If the GRUB menu doesn't appear, power on the system and immediately hit the ESC key until the boot menu appears. - -This is the default GRUB menu in my Ubuntu 22.04 LTS desktop. - -![Ubuntu Default Grub Menu][6] - -And here is the updated GRUB menu with Descent theme. - -![Updated GRUB Menu With Descent Theme][7] - -Cool, yeah? - -##### 1.1. Remove GRUB Theme - -To remove a theme, simply delete the theme folder: - -``` -$ sudo rm -fr /boot/grub/themes/descent/ -``` - -And then edit `/etc/default/grub` file: - -``` -$ sudo nano /etc/default/grub -``` - -Remove the following lines: - -``` -[...] -GRUB_THEME=/boot/grub/themes/descent/theme.txt -GRUB_GFXMODE=1280x800 -[...] -``` - -Save the file and close it. - -Finally, apply the changes to the GRUB and reboot your system: - -``` -$ sudo update-grub -``` - -``` -$ sudo reboot -``` - -#### 2. Install GRUB Themes From GitHub - -If a GRUB theme is hosted in GitHub, it will probably has the installer and uninstaller scripts. Let us take **[Modern GRUB Themes][8]** as an example. It is hosted in GitHub. - -Git clone the project's GitHub repository: - -``` -$ git clone https://github.com/vinceliuice/grub2-themes.git -``` - -Go to the project's folder: - -``` -$ cd grub2-themes/ -``` - -Run the installer script: - -``` -$ sudo ./install.sh -``` - -Select your preferred GRUB theme background (E.g. tela). - -![Choose GRUB Theme Background][9] - -Select icon style: - -![Choose Icon Style][10] - -Select your display resolution. - -![Choose Display Resolution][11] - -Now the chosen GRUB theme will be installed and applied. - -``` -Checking for the existence of themes directory... - - Installing tela color 1080p theme... - - Setting tela as default... - - Updating grub config... - -Sourcing file `/etc/default/grub' -Sourcing file `/etc/default/grub.d/init-select.cfg' -Generating grub configuration file ... -Found theme: /usr/share/grub/themes/tela/theme.txt -Found linux image: /boot/vmlinuz-5.15.0-41-generic -Found initrd image: /boot/initrd.img-5.15.0-41-generic -Found linux image: /boot/vmlinuz-5.15.0-39-generic -Found initrd image: /boot/initrd.img-5.15.0-39-generic -Found memtest86+ image: /boot/memtest86+.elf -Found memtest86+ image: /boot/memtest86+.bin -Warning: os-prober will not be executed to detect other bootable partitions. -Systems on them will not be added to the GRUB boot configuration. -Check GRUB_DISABLE_OS_PROBER documentation entry. -done - - * All done! - - * At the next restart of your computer you will see your new Grub theme: 'tela' -``` - -![Install Tela Modern Grub Theme][12] - -Reboot your system to see the changes. - -![Tela GRUB Theme][13] - -This is one of the pretty GRUB theme ever I've seen. - -You can also explicitly give the name of the theme with screen resolution like below. - -``` -$ sudo ./install.sh -t whitesur -s 1080p -``` - -This will apply a theme called "Whitesur" with 1080p screen resolution. You can mention other resolutions, for example 2k, 4k, ultrawide, ultrawide2k. If you don't mention the resolution, 1080p will be applied by default. - -Install Tela theme to `/boot/grub/themes` folder: - -``` -$ sudo ./install.sh -b -t whitesur -``` - -Reboot your system to see the changes. - -![Whitesur GRUB Theme][14] - -##### 2.1. Remove GRUB Themes - -To remove an installed theme, go to the project's cloned directory: - -``` -$ cd grub2-themes/ -``` - -And, run: - -``` -$ sudo ./install.sh -r -t tela -``` - -Replace "tela" with the name of your installed theme. - -Please note that the installation instructions for each theme might be different. Refer the project's respective GitHub page carefully and install the theme accordingly. - -### Conclusion - -Some people prefer to use stylized Linux distributions. They feel good and took pride in beautifying their Linux distributions. If you're one of them, you can look into the Gorgeous GRUB project to beautify your GRUB menu. - -Got to the Gorgeous GRUB theme site, pick your favorite theme from the list and follow the instructions provided in the respective project's home page to install and apply the GRUB theme. - -**Resource:** - -* [Gorgeous GRUB GitHub Repository][15] - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/change-grub-theme-in-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/configure-grub-2-boot-loader-settings-ubuntu-16-04/ -[2]: https://github.com/jacksaur/Gorgeous-GRUB -[3]: https://ostechnix.com/wp-content/uploads/2022/07/Download-GRUB-Theme-From-Pling.png -[4]: https://ostechnix.com/wp-content/uploads/2022/07/Enter-Theme-Txt-File-Path-And-Background-Image-Resolution.png -[5]: https://ostechnix.com/wp-content/uploads/2022/07/Update-GRUB.png -[6]: https://ostechnix.com/wp-content/uploads/2022/07/Ubuntu-Default-Grub-Menu.png -[7]: https://ostechnix.com/wp-content/uploads/2022/07/Updated-GRUB-Menu.png -[8]: https://github.com/vinceliuice/grub2-themes -[9]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-GRUB-Theme-Background.png -[10]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-Icon-Style.png -[11]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-Display-Resolution.png -[12]: https://ostechnix.com/wp-content/uploads/2022/07/Install-Tela-Modern-Grub-Theme.png -[13]: https://ostechnix.com/wp-content/uploads/2022/07/Tela-GRUB-Theme.png -[14]: https://ostechnix.com/wp-content/uploads/2022/07/Whitesur-GRUB-Theme-1.png -[15]: https://github.com/jacksaur/Gorgeous-GRUB diff --git a/translated/tech/20220726 How To Change GRUB Theme In Linux.md b/translated/tech/20220726 How To Change GRUB Theme In Linux.md new file mode 100644 index 0000000000..09dd7fd291 --- /dev/null +++ b/translated/tech/20220726 How To Change GRUB Theme In Linux.md @@ -0,0 +1,356 @@ +[#]: subject: "How To Change GRUB Theme In Linux" +[#]: via: "https://ostechnix.com/change-grub-theme-in-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中更改 GRUB 主题 +====== +在 Linux 中安装和应用现代的漂亮的 GRUB 主题 + +**GRUB** ,代表着 GRUB**GR** 和 **U**nified **B**ootloader ,它是大多数 Linux 操作系统的默认启动加载程序。GRUB 启动加载程序是计算机启动时运行的第一个程序。正如你可能注意到的,GRUB 菜单的默认主题是朴素的。它只有一个黑色的背景和一些白色的字符。你们中的一些人可能不喜欢默认的 GRUB 主题。在这篇教程中,我将演示如何 **更改 GRUB 主题** 或应用华丽的主题,以使你的 GRUB 菜单在 Linux 中更加精美。 + +数年前,我们发布了一篇指南,阐释了如何在 Ubuntu 中 **[配置 GRUB2 启动加载程序设置][1]** 。在这篇文章中,我们将向你展示如何更改 GRUB 背景。 + +但是,只更改背景不是真正的自定义。在这篇指南中,我们不仅会更改壁纸,也会更改 GRUB 的字体、主题和整体的设计。 + +**免责声明:** 安装 GRUB 主题可能会破坏你的系统。我强烈建议你在一个虚拟机中尝试和测试一个主题来查看它是否没有正常工作。然后再在实际的系统上安装主题。 + +### 介绍 + +在因特网上有很多社区开发的 GRUB 主题。然而,它们却散落在不同的网站上。因此,找到一个好的 GRUB 主题可能会事倍功半。 + +GRUB 主题的一个重要的贡献者是 **Pling** 网站。但是,Pling 中的大部分主题是非常简单的或过时的。 + +幸运的是,我遇到一个名称为 **"Gorgeous GRUB"** 的工程,一个可以找到各种精美的 GRUB 主题的地方。相信我,作者付出了巨大的努力来收集这些主题,肯定会你喜欢的主题。 + +### Gorgeous GRUB - 一个可以找到很好的 GRUB 主题的地方 + +**Gorgeous GRUB** 是一个由不同用户所创建的良好 GRUB 社区主题的收藏集合。这个工程的开发者从 **Pling** 、**/r/unixporn** 和其它很多的论坛中手工挑选漂亮的 GRUB 主题,并将它们放置到一起,以便用户可以很容易的浏览它们。 + +如上所述,在 Pling 中的很多主题都是粗糙过时的。The author of Gorgeous GRUB 的作者翻遍了 Pling 和其它一些论坛的整个 GRUB 部分,并将所有令人满意的 GRUB 主题放置到一个地方。 + +仅供参考。它们不是一些粗制滥造的主题。他们付出了大量的努力来将定制的背景、字体和颜色等融合在一起。 + +请注意,Gorgeous GRUB 并不是一个安装你最喜欢的 GRUB 主题的应用程序。它只是一个良好工作的 GRUB 主题的展览列表。 + +这个工程托管在 GitHub 中。如果你有一些很酷的 GRUB 主题,你也可以将其添加到 Gorgeous GRUB 主题列表之中。 + +### 如何更改 GRUB 主题 + +应用或更改 GRUB 主题并不难。 + +转到 **[Gorgeous GRUB 的 GitHub 网页][2]** ,单击任意你想要应用的主题的标题。接下来,你将会被带到该主题的实际主页。一些主题托管在 **Pling** 之中,一些主题托管在 **GitHub** 之中。我将会看看如何安装来自 Pling 或 GitHub 的 GRUB 主题。 + +首先,让我们看看如何应用 **Descent** 主题,它托管在 Pling 中。 + +#### 1. 从 Pling 安装 GRUB 主题 + +如果主题托管在 Pling 网站,遵循这些操作说明。 + +在主题主页,单击 文件Files 标签页。你将会在图像预览的下方找到这个标签页。单击文件链接来下载它。 + +![Download GRUB Theme From Pling][3] + +转到下载位置并提取存档文件。 + +``` +$ tar xzf 173860-20150926\ descent.tar.gz +``` + +存档文件的内容将被提取到当前工作目录中一个名称为 **"descent"** 目录中。 + +复制 "descent" 目录到 `/boot/grub/themes/` 目录,使用下面的命令。 + +``` +$ sudo cp -r descent/ /boot/grub/themes/ +``` + +如果 "themes" 目录不可存在,只需要创建它。 + +``` +$ sudo mkdir /boot/grub/themes +``` + +并分配 "themes" 目录适当的权限。 + +``` +$ sudo chown $USER /boot/grub/themes/ +``` + +接下来,复制 "descent" 目录中内容到 "themes" 目录,如上所述。 + +现在,你应该在 "themes" 目录中有一个以主题名称命名的文件夹。 + +``` +$ ls /boot/grub/themes/ +descent +``` + +并且,这个主题文件夹 (例如 descent) 应该包含 `theme.txt` 和该主题附带的其它一些相关的文件 (例如,背景图像、自定义文件) 。 + +``` +$ ls /boot/grub/themes/descent/ +background1280x800.png descent_score_14.pf2 menu_ne.png menu_s.png progresshigh_c.png scrollframe_c.png scroll_thumb_n.png +background_original.jpg descent_score_18.pf2 menu_n.png menu_sw.png progresshigh_e.png scrollframe_n.png scroll_thumb_s.png +copyright menu_c.png menu_nw.png menu_w.png progresshigh_w.png scrollframe_s.png select_os.png +descent_logo_bold_18.pf2 menu_e.png menu_se.png progressbar_c.png readme scroll_thumb_c.png theme.txt +``` + +在复制下载的主题到 `/boot/grub/themes/` 目录后,编辑 `/etc/default/grub` 文件。 + +在进行任意更改前,请备份 grub 文件,以防万一: + +``` +$ sudo cp /etc/default/grub /etc/default/grub.bak +``` + +现在,使用你喜欢的编辑器编辑文件: + +``` +$ sudo nano /etc/default/grub +``` + +找到 `GRUB_THEME=` 代码行,并添加路径到你想要使用的主题的 `theme.txt` 。并且,也要注释掉 `GRUB_GFXMODE=` 代码行,输入背景图像的分辨率。通常,背景图像的文件名称包含其分辨率 (例如 background1280x800.png) 。 + +``` +[...] +GRUB_THEME=/boot/grub/themes/descent/theme.txt +GRUB_GFXMODE=1280x800 +[...] +``` + +![Enter Theme Txt File Path And Background Image Resolution][4] + +再强调一次,如果这些代码行不存在,简单地添加它们。按下 **CTRL+O** 组合键 和 **CTRL+X** 组合键 来保持更改并关闭文件。 + +现在,应用更改到 GRUB ,使用命令: + +``` +$ sudo update-grub +``` + +**示例输出:** + +``` +Sourcing file `/etc/default/grub' +Sourcing file `/etc/default/grub.d/init-select.cfg' +Generating grub configuration file ... +Found theme: /boot/grub/themes/descent/theme.txt +Found linux image: /boot/vmlinuz-5.15.0-41-generic +Found initrd image: /boot/initrd.img-5.15.0-41-generic +Found linux image: /boot/vmlinuz-5.15.0-39-generic +Found initrd image: /boot/initrd.img-5.15.0-39-generic +Found memtest86+ image: /boot/memtest86+.elf +Found memtest86+ image: /boot/memtest86+.bin +Warning: os-prober will not be executed to detect other bootable partitions. +Systems on them will not be added to the GRUB boot configuration. +Check GRUB_DISABLE_OS_PROBER documentation entry. +done +``` + +![Update GRUB][5] + +如果你是在基于 RPM 的系统上 (例如 Fedora) ,运行下面的命令来更新 GRUB : + +``` +$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead +``` + +重新启动你的系统。你将会对更新后的 GRUB 主题感到满意。如果 GRUB 菜单没有出现。在打开硬件系统的电源时,立即按下 ESC 按键,直到启动菜单出现。 + +这是我的 Ubuntu 22.04 LTS 桌面的默认 GRUB 菜单。 + +![Ubuntu Default Grub Menu][6] + +这是更新后的带有复古主题的 GRUB 菜单。 + +![Updated GRUB Menu With Descent Theme][7] + +很酷,是吧? + +##### 1.1. 移除 GRUB 主题 + +为移除一个主题,简单地删除主题文件夹: + +``` +$ sudo rm -fr /boot/grub/themes/descent/ +``` + +接下来,编辑 `/etc/default/grub` 文件: + +``` +$ sudo nano /etc/default/grub +``` + +移除下面的代码行: + +``` +[...] +GRUB_THEME=/boot/grub/themes/descent/theme.txt +GRUB_GFXMODE=1280x800 +[...] +``` + +保存文件并关闭它。 + +最后,应用更改到 GRUB ,并重新启动你的系统: + +``` +$ sudo update-grub +``` + +``` +$ sudo reboot +``` + +#### 2. 从 GitHub 安装 GRUB 主题 + +如果一个 GRUB 主题托管在 GitHub 中,它将很可能有安装程序脚本和卸载程序脚本。让我们以 **[Modern GRUB Themes][8]** 为例。它托管在 GitHub 中。 + +Git 复刻工程的 GitHub 存储库: + +``` +$ git clone https://github.com/vinceliuice/grub2-themes.git +``` + +转到工程的文件夹: + +``` +$ cd grub2-themes/ +``` + +运行安装程序脚本: + +``` +$ sudo ./install.sh +``` + +选择你喜欢的 GRUB 主题背景 (例如 tela) 。 + +![Choose GRUB Theme Background][9] + +选择图标样式: + +![Choose Icon Style][10] + +选择你的显示分辨率。 + +![Choose Display Resolution][11] + +现在选择将会安装和应用的 GRUB 主题。 + +``` +Checking for the existence of themes directory... + + Installing tela color 1080p theme... + + Setting tela as default... + + Updating grub config... + +Sourcing file `/etc/default/grub' +Sourcing file `/etc/default/grub.d/init-select.cfg' +Generating grub configuration file ... +Found theme: /usr/share/grub/themes/tela/theme.txt +Found linux image: /boot/vmlinuz-5.15.0-41-generic +Found initrd image: /boot/initrd.img-5.15.0-41-generic +Found linux image: /boot/vmlinuz-5.15.0-39-generic +Found initrd image: /boot/initrd.img-5.15.0-39-generic +Found memtest86+ image: /boot/memtest86+.elf +Found memtest86+ image: /boot/memtest86+.bin +Warning: os-prober will not be executed to detect other bootable partitions. +Systems on them will not be added to the GRUB boot configuration. +Check GRUB_DISABLE_OS_PROBER documentation entry. +done + + * All done! + + * At the next restart of your computer you will see your new Grub theme: 'tela' +``` + +![Install Tela Modern Grub Theme][12] + +重新启动你的系统来查看更改。 + +![Tela GRUB Theme][13] + +这是一个漂亮的 GRUB 主题,前所未见。 + +你也可以明确地给定主题的名称和屏幕分辨率,像下面一样。 + +``` +$ sudo ./install.sh -t whitesur -s 1080p +``` + +这将应用一个名称为 "Whitesur" 的主题,使用 1080p 屏幕分辨率。你可能会提及到其它的分辨率,例如 2k 、4k 、超宽、超宽2k 。如果你不提及分辨率,将默认应用 1080p 。 + +安装 Tela 主题到 `/boot/grub/themes` 文件夹: + +``` +$ sudo ./install.sh -b -t whitesur +``` + +重新启动你的系统来查看更改。 + +![Whitesur GRUB Theme][14] + +##### 2.1. 移除 GRUB 主题 + +为移除已安装的一个主题,转到工程的复刻目录: + +``` +$ cd grub2-themes/ +``` + +随后,运行: + +``` +$ sudo ./install.sh -r -t tela +``` + +使用你已安装的主题的名称来替换 "tela" 。 + +请注意,每个主题的安装说明可能有所不同。详细地参考每个工程的 GitHub 页面,并相应地安装主题。 + +### 总结 + +有些人喜欢使用艺术化的 Linux 发行版。他们以美化其 Linux 发行版感到高兴和自豪。如果你是他们中的一员,你可以看看 Gorgeous GRUB 工程来美化你的 GRUB 菜单。 + +转到 Gorgeous GRUB 主题网站,从列表中选择你最喜欢的主题,并按照每个工程的主页说明来安装和应用 GRUB 主题。 + +**资源:** + +* [Gorgeous GRUB 的 GitHub 存储库][15] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/change-grub-theme-in-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/configure-grub-2-boot-loader-settings-ubuntu-16-04/ +[2]: https://github.com/jacksaur/Gorgeous-GRUB +[3]: https://ostechnix.com/wp-content/uploads/2022/07/Download-GRUB-Theme-From-Pling.png +[4]: https://ostechnix.com/wp-content/uploads/2022/07/Enter-Theme-Txt-File-Path-And-Background-Image-Resolution.png +[5]: https://ostechnix.com/wp-content/uploads/2022/07/Update-GRUB.png +[6]: https://ostechnix.com/wp-content/uploads/2022/07/Ubuntu-Default-Grub-Menu.png +[7]: https://ostechnix.com/wp-content/uploads/2022/07/Updated-GRUB-Menu.png +[8]: https://github.com/vinceliuice/grub2-themes +[9]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-GRUB-Theme-Background.png +[10]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-Icon-Style.png +[11]: https://ostechnix.com/wp-content/uploads/2022/07/Choose-Display-Resolution.png +[12]: https://ostechnix.com/wp-content/uploads/2022/07/Install-Tela-Modern-Grub-Theme.png +[13]: https://ostechnix.com/wp-content/uploads/2022/07/Tela-GRUB-Theme.png +[14]: https://ostechnix.com/wp-content/uploads/2022/07/Whitesur-GRUB-Theme-1.png +[15]: https://github.com/jacksaur/Gorgeous-GRUB From 821297bef22f2de42bcdf3e0c30aeb437b533369 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 25 Aug 2022 13:05:08 +0800 Subject: [PATCH 0870/3123] ALL @wxy https://linux.cn/article-14964-1.html --- ...-Unix- Adds Unicode Support to AWK Code.md | 69 +++++++++++++++++++ ...-Unix- Adds Unicode Support to AWK Code.md | 68 ------------------ 2 files changed, 69 insertions(+), 68 deletions(-) create mode 100644 published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md delete mode 100644 sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md diff --git a/published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md b/published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md new file mode 100644 index 0000000000..3fe938363b --- /dev/null +++ b/published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md @@ -0,0 +1,69 @@ +[#]: subject: "The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code" +[#]: via: "https://news.itsfoss.com/unix-awk-unicode/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14964-1.html" + +80 高龄的计算机科学家曾为 “Unix” 命名,如今为 AWK 代码添加了 Unicode 支持 +====== + +> 布莱恩·克尼汉在 80 岁的时候还在积极为他的原始项目 AWK 增加代码贡献。这真是鼓舞人心! + +![这位 80 岁的计算机科学家曾提出 “Unix” 这一名字,在 AWK 代码中加入了 Unicode 支持][1] + +布莱恩·克尼汉Brian Kernighan 因其与 Unix 的创造者 肯·汤普森Ken Thompson丹尼斯·里奇Dennis Ritchie 一起的工作而广为人知。他对 Unix 的发展做出了重大贡献。 + +不仅如此,布莱恩·克尼汉还提出了 “Unix” 这个名字,并创造了 “Hello, world” 作为程序的测试短语。 + +他也是《C 编程语言》一书的共同作者(另一位是丹尼斯·里奇)。因此,可以说他是你所知道的关于 Unix、Linux、BSD 和 C 编程语言的演变的重要组成部分。 + +而且,作为一位如今已 80 岁的老人家,他似乎投入了一些时间来为 AWK(一种他在上世纪 70 年代共同创造的脚本语言)增加了一个新的功能。 + +💙 这真是妙极了,对吗?而且,听起真是鼓舞人心! + +注:AWK 仍然是一个处理文本和提取数据的强大工具,忠实于它的最初目的。如果你感到好奇,你可以在 [freeCodeCamp][2] 上了解更多关于它的信息。 + +### 为 AWK 添加 Unicode 支持 + +最近,[The Register][3] 通过一篇发表在 YouTube 上的近期采访,发现了这个功能的增加。 + +从技术上讲,这项贡献早在几个月前就有了,但现在它才得到人们的关注。 + +![和 Brian Kernighan 喝杯咖啡 - Computerphile][4] + +当然,这个功能的增加对很多人来说可能不是什么大事。但是,它背后的努力,以及谁贡献了它,就有了天壤之别。 + +此外,有趣的是,他并不完全了解 Git 的工作原理。所以,考虑到这一点,我认为他在这里的提交做得相当好。 + +在这个提交 “[附上 BWK 的邮件 - onetrueawk/awk@9ebe940][5]” 中,他提到: + +> 一旦我搞清楚了(并做了一些检查,我将尝试提交一个拉取请求。我希望我更了解 git,但尽管有你的帮助,我仍然没能正确地理解,所以这可能需要一段时间。 + +如果你对 Unix 的原始创造者和贡献者以及一路走来的许多重要创新有好奇心,我建议你观看上面链接的采访。 + +你也可以在 [普林斯顿大学网站][6] 上查看他的更多工作和最近的书籍。 + +💬 那么,你对这位 80 岁的 Unix 传奇人物的代码贡献有何看法?你有什么特别佩服他的地方吗?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unix-awk-unicode/ + +作者:[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/content/images/size/w1200/2022/08/brian-awk-creator.jpg +[2]: https://www.freecodecamp.org/news/the-linux-awk-command-linux-and-unix-usage-syntax-examples/ +[3]: https://www.theregister.com/2022/08/23/universal_unix_tool_awk_gets/ +[4]: https://youtu.be/GNyQxXw_oMQ +[5]: https://github.com/onetrueawk/awk/commit/9ebe940cf3c652b0e373634d2aa4a00b8395b636 +[6]: https://www.cs.princeton.edu/~bwk/ diff --git a/sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md b/sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md deleted file mode 100644 index 09e0add159..0000000000 --- a/sources/news/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md +++ /dev/null @@ -1,68 +0,0 @@ -[#]: subject: "The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code" -[#]: via: "https://news.itsfoss.com/unix-awk-unicode/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code -====== -Brian Kernighan is still active to add code contributions to his original project AWK in his 80s. That's inspiring! - -![The 80-Year Computer Scientist Who Termed 'Unix' Adds Unicode Support to AWK Code][1] - -**Brian Kernighan** is popularly known for his work along with the creators of Unix, **Ken Thompson** and **Dennis Ritchie**. He made significant contributions to the development of Unix. - -Not just that, Brian Kernighan also suggested the name "**Unix**" and created the "*Hello, world*" as a test phrase for programs. - -You might also recognize him as a co-author of the book "*The C Programming Language*" along with Dennis Ritchie. So, it is safe to say he's an important part of everything you know about Unix, Linux, BSD, and the evolution of C programming language. - -And, as an **80-year-old**(now), he seems to have invested some time to add a new feature to "**AWK**", a scripting language he co-created back in the 1970s. - -💙 That's **wonderful**, right? And, sounds like something to **inspire** us. - -**Note:** *[AWK is still a powerful utility to process text and extract data, true to its original purpose. If you're curious, you can learn more about it on freeCodeCamp.][2]* - -### Adding Unicode Support to AWK - -The feature addition was recently spotted by [The Register][3] via a recent interview on YouTube. - -Technically, the contribution was made a few months back, but now it's getting the attention. - -![Coffee with Brian Kernighan - Computerphile][4] - -Of course, the feature addition may not be a big deal for many. But, the effort behind it, and who contributed it, makes a world of difference. - -Moreover, it is **interesting** to note that he is not entirely aware of how Git works. So, keeping that in mind, I think he did pretty well with the commit here: - -[Add BWK’s email. · onetrueawk/awk@9ebe940][5] - -He mentions: - -I would recommend you to watch the interview linked above, if you have a curiosity on the original creators and contributors of Unix and many essential innovations along the way. - -You can also check more of his work and recent books in his page on [Princeton University's website][6]. - -💬 *So, what do you think about this code contribution by a Unix legend in his 80s? Do you admire him for anything particular? Share your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/unix-awk-unicode/ - -作者:[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/content/images/size/w1200/2022/08/brian-awk-creator.jpg -[2]: https://www.freecodecamp.org/news/the-linux-awk-command-linux-and-unix-usage-syntax-examples/ -[3]: https://www.theregister.com/2022/08/23/universal_unix_tool_awk_gets/ -[4]: https://youtu.be/GNyQxXw_oMQ -[5]: https://github.com/onetrueawk/awk/commit/9ebe940cf3c652b0e373634d2aa4a00b8395b636 -[6]: https://www.cs.princeton.edu/~bwk/ From 0c6ac77def9bb65b5a14ba5c992b9dc48e6cc8eb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 25 Aug 2022 13:37:32 +0800 Subject: [PATCH 0871/3123] RP @geekpi https://linux.cn/article-14965-1.html --- ...jaro and Other Arch Linux Based Distros.md | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) rename {translated/tech => published}/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md (83%) diff --git a/translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md similarity index 83% rename from translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md rename to published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md index 299bd8e304..0b00da6dbf 100644 --- a/translated/tech/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md +++ b/published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md @@ -3,15 +3,18 @@ [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14965-1.html" 在 Manjaro 和其他基于 Arch Linux 的发行版上安装 Spotify ====== -Spotify 不需要介绍。它是最流行的音乐流媒体服务。 -你可以[在 web 浏览器中播放 Spotify][1],但如果你经常使用它,使用桌面应用会是一个更好的选择。 +![](https://img.linux.net.cn/data/attachment/album/202208/25/133643nz8h58cl5ly8y6ly.jpg) + +> Spotify 不需要介绍。它是最流行的音乐流媒体服务。 + +你可以 [在 Web 浏览器中播放 Spotify][1],但如果你经常使用它,使用桌面应用会是一个更好的选择。 为什么呢?因为你可以用媒体键控制播放,得到歌曲的通知,而且不需要担心不小心关闭浏览器标签或窗口。桌面客户端给人一种完整的体验。 @@ -34,9 +37,9 @@ sudo pacman -Syu spotify-launcher ### 方法 1:使用 pacman 安装 Spotify -Spotify 可在 Arch Linux 的社区仓库中[访问][8]。它实际上是 Spotify 提供的 APT 仓库的 Rust 实现。 +Spotify 可在 Arch Linux 的社区仓库中 [找到][8]。它实际上是 Spotify 提供的 APT 仓库的 Rust 实现。 -打开你的终端,按以下方式[使用 pacman 命令][9]: +打开你的终端,按以下方式 [使用 pacman 命令][9]: ``` sudo pacman -Syu spotify-launcher @@ -54,7 +57,7 @@ sudo pacman -Rns spotify-launcher ### 方法 2:使用 Pamac 安装 Spotify -如果你使用 Manjaro 或者[在你的系统中安装了 Pamac][11],你可以用它来图形化安装 Spotify。 +如果你使用 Manjaro 或者 [在你的系统中安装了 Pamac][11],你可以用它来图形化安装 Spotify。 从应用菜单中打开添加/删除软件。点击左上角的搜索图标,搜索 Spotify。然后,选择名为 `spotify-launcher` 的软件包,并点击应用进行安装,如下图所示。 @@ -106,7 +109,7 @@ flatpak remove spotify ### 方法 4:使用 Snap 安装 Spotify -我知道很多人对 Snap 打包格式的“封闭性”非常反感。然而,Spotify 官方提供了一个 Snap 包。你从 Spotify 的开发者那里得到它。 +我知道很多人对 Snap 打包格式的“封闭性”非常反感。然而,Spotify 官方提供了一个 Snap 包。你可以从 Spotify 的开发者那里得到它。 如果你的系统支持 Snap 包,请使用以下命令: @@ -120,9 +123,9 @@ sudo snap install spotify sudo snap remove spotify ``` -#### 总结 +### 总结 -第一个方法中讨论的 Arch 包是由 [kpcyrd][14] 开发和维护的。你可以在[这里][15]查看源代码。 +第一个方法中讨论的 Arch 包是由 [kpcyrd][14] 开发和维护的。你可以在 [这里][15] 查看源代码。 如果你喜欢 Arch Linux 并想支持它,请考虑向该项目捐款。所有的工作都是由社区成员完成的,他们是无偿的志愿者。 @@ -135,7 +138,7 @@ via: https://itsfoss.com/install-spotify-arch/ 作者:[Anuj Sharma][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/) 荣誉推出 From be9cc386e0848985ec8124566d649756d3cc50c4 Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Thu, 25 Aug 2022 13:55:04 +0800 Subject: [PATCH 0872/3123] Update 20220711 Why Agile coaches need internal cooperation.md --- .../20220711 Why Agile coaches need internal cooperation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220711 Why Agile coaches need internal cooperation.md b/sources/talk/20220711 Why Agile coaches need internal cooperation.md index ed15dbc048..4be8021d1c 100644 --- a/sources/talk/20220711 Why Agile coaches need internal cooperation.md +++ b/sources/talk/20220711 Why Agile coaches need internal cooperation.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/agile-coach-internal-cooperation" [#]: author: "Kelsea Zhang https://opensource.com/users/kelsea-zhang" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "aftermath0703" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 40a97c94b45332dbf1045b6cff8a7e7e73bf5d12 Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Thu, 25 Aug 2022 20:18:11 +0800 Subject: [PATCH 0873/3123] Update and rename sources/talk/20220711 Why Agile coaches need internal cooperation.md to translated/talk/20220711 Why Agile coaches need internal cooperation.md --- ...Agile coaches need internal cooperation.md | 89 ------------- ...Agile coaches need internal cooperation.md | 118 ++++++++++++++++++ 2 files changed, 118 insertions(+), 89 deletions(-) delete mode 100644 sources/talk/20220711 Why Agile coaches need internal cooperation.md create mode 100644 translated/talk/20220711 Why Agile coaches need internal cooperation.md diff --git a/sources/talk/20220711 Why Agile coaches need internal cooperation.md b/sources/talk/20220711 Why Agile coaches need internal cooperation.md deleted file mode 100644 index 4be8021d1c..0000000000 --- a/sources/talk/20220711 Why Agile coaches need internal cooperation.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "Why Agile coaches need internal cooperation" -[#]: via: "https://opensource.com/article/22/7/agile-coach-internal-cooperation" -[#]: author: "Kelsea Zhang https://opensource.com/users/kelsea-zhang" -[#]: collector: "lkxed" -[#]: translator: "aftermath0703" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Why Agile coaches need internal cooperation -====== -An Agile coach is only as successful as their Agile partner. Here's how to foster internal cooperation and create an Agile team. - -![Working meetings can be effective meetings][1] - -Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2] - -If you're an Agile coach, you probably seek to inspire and empower others as an external member of your team or department. However, many Agile coaches overlook the importance of internal cooperation. That's not necessarily a term you are familiar with, so allow me to explain. - -### What is internal cooperation? - -As an Agile coach, you don't work alone. You try to find a partner in the team you're taking care of. This partner is expected to: - -* Undertake all or most of the Agile transformation in the future. -* Find all possible opportunities for systematic improvement and team optimization. -* Be self-motivated. -* Not be managed by you; you delegate your enthusiasm and vision to them. - -Of course, maybe you don't need such a person because, theoretically speaking, everyone in the team is your ideal candidate, and everyone is self-driven. Or maybe your whole team will magically become what you want it to be overnight. - -Reality check: most of the time, you need a partner, an inside agent. Somebody to keep the spirit of Agile alive, whether you're there to encourage it or not. - -### Internal cooperation is required - -Getting buy-in from the team you are coaching isn't a luxury; it's a requirement. If you're the only Agile practitioner on your team, then your team isn't Agile! So how do you cultivate this internal cooperation? - -#### Clarify responsibility - -Being Agile is supposed to be a team effort. The beneficiary is the team itself, but the team must also bear the burden of transformation. An Agile coach is meant to be inspiring and empowering, but the change doesn't happen in just one person. That's why teams must learn to consider and solve problems on their own. A team must have its own *engine* (your Agile partner is such an engine) rather than relying on the external force of the Agile coach. It's the engines that want to solve problems, and with the help of Agile coaches, their abilities and ways of thinking can be enriched and improved. - -It's best to have an engine from the beginning, but that's not always possible. The earlier, the better, so look for allies from the start. - -#### Know the team - -When you find a partner, you gain someone who understands the team's situation better than you do. A good partner knows the team from the inside and communicates with it on a level you cannot. No matter how good you are as an Agile coach, you must recognize that an excellent Agile partner has a unique advantage in "localization." - -The best approach is not *An Agile coach makes a customized implementation plan for the team, and then the team is responsible for execution*. In my opinion, with the support of the Agile coach, the Agile partner should work with the team to make plans that best fit its needs. Next, try to implement those plans with frequent feedback and keep adjusting them as needed. - -You continue to observe progress, whether the team members falter in Agile principles, and give them support at the right moments. Of course, when there's something wrong, you often want to stay silent, let the team hit a wall, and learn from their setbacks. Other times, stepping in to provide guidance is the right thing. - -### Is an Agile coach still necessary? - -In a word: Absolutely! - -Agile is a team effort. Everyone must collaborate to find processes that work. Solutions are often sparked by the collision of ideas between the Agile coach and the partner. Then the partner can accurately get how an Agile theory is applied in the daily work. The partner understands the essence of Agile theories through the solutions. - -As an Agile coach, you must have a solid theoretical foundation and the ability to apply that theory to specific scenarios. On the surface, you take charge of the theory while your Agile partner is responsible for the practice. However, an Agile coach must not be an armchair strategist, and teams aren't supposed to assume that the Agile coach is a theorist. In fact, an Agile coach must consciously let go of the practice part so the Agile partner can take over. - -The significance of accompanying a team is not supposed to be pushing the team to move passively toward the Agile coach's vision. The amount of guidance required from you will fluctuate over time, but it shouldn't and can't last forever. - -### Find an Agile partner - -How do you find your Agile partner? First of all, observe the team you are coaching and notice anyone who is in charge of continuous improvement, whether it's their defined job role or not. That person is your Agile partner. - -If there's nobody like that yet, you must cultivate one. Be sure to choose someone with a good sense of project management. I have observed that team leaders or project managers who perform well in the traditional development model may not be good candidates in the Agile environment. In an Agile management model, you must have an open mind, a sense of continuous pursuit of excellence, a flexible approach, extensive knowledge, and strong self-motivation. - -### Be Agile together - -Don't be shy about bringing on a partner to help you with your work and communication. Instead, find willing partners, and work together to make your organization an Agile one. - -*[This article is translated from Xu Dongwei's Blog and is republished with permission.][4]* - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/agile-coach-internal-cooperation - -作者:[Kelsea Zhang][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/kelsea-zhang -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/leader-team-laptops-conference-meeting.png -[2]: https://creativecommons.org/licenses/by/3.0/us/ -[3]: https://enterprisersproject.com/article/2022/2/agile-adoption-6-steps-IT-leaders?intcmp=7013a000002qLH8AAM -[4]: https://mp.weixin.qq.com/s/OQUAY6JkpTEgnev_EgZdZA diff --git a/translated/talk/20220711 Why Agile coaches need internal cooperation.md b/translated/talk/20220711 Why Agile coaches need internal cooperation.md new file mode 100644 index 0000000000..07446219e8 --- /dev/null +++ b/translated/talk/20220711 Why Agile coaches need internal cooperation.md @@ -0,0 +1,118 @@ +[#]: subject: "Why Agile coaches need internal cooperation" +[#]: via: "https://opensource.com/article/22/7/agile-coach-internal-cooperation" +[#]: author: "Kelsea Zhang https://opensource.com/users/kelsea-zhang" +[#]: collector: "lkxed" +[#]: translator: "aftermath0703" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为什么敏捷教练需要内部的合作 +====== +一位敏捷教练成功与否取决于他的敏捷伙伴。以下是如何促进内部合作并且创建一个敏捷团队 + +![Working meetings can be effective meetings][1] + +图片来自 Mapbox Uncharted ERG, [CC-BY 3.0 US][2] + +如果你是一个敏捷教练,你可能会作为团队或部门的外部成员鼓舞成员。然而,许多敏捷教练忽视了内部合作的重要性。这不一定是一个你熟悉的术语,所以请允许我解释一下。 + + +### 什么是内部合作? + + +作为一个敏捷教练,你不是独自工作,你试图在你所照顾的团队中找到一位搭档,这个搭档你希望: + + +* 承担未来所有或大部分的敏捷转型。 +* 找到所有可能的机会进行系统改进和团队优化。 +* 要有自我激励。 +* 不被你管理;你把你的热情和愿景委托给他们。 + + +当然,也许你不需要这样的人,因为理论上来讲,团队中的每个人都是你的理想人选,并且每个人都是自驱的。或者也许你的整个团队会在一夜之间神奇地变成你想要的样子。 + + +现实情况是:大多数时候,你需要一个搭档,一个内部代理人。有人要保持敏捷精神的活力,无论你是否在那里鼓励它。 + + +### 内部合作是必需的 + + +获得你所辅导的团队的认同并不是一种奢侈,而是一种要求。如果你是团队中唯一的敏捷实践者,那么你的团队就不是敏捷的! 那么,你该如何培养这种内部合作呢? + + +#### 明确责任 + + +敏捷应该是一个团队的努力。受益者是团队本身,但团队也必须承担转型的重任。敏捷教练的作用是鼓舞人心,增强力量,但变革不会只发生在一个人身上。这就是为什么团队必须学会自己考虑和解决问题。一个团队必须有自己的引擎(你的敏捷伙伴就是这样一个引擎),而不是依靠敏捷教练的外力。引擎想要解决问题,在敏捷教练的帮助下,他们的能力和思维方式得到丰富和提高。 + + +最好是一开始就有一个引擎,但这并不总是可能的。越早越好,所以从一开始就寻找盟友。 + + +#### 了解团队 + + +当你找到一个合作伙伴时,你获得了一个比你更了解团队情况的人。一个好的合作伙伴从内部了解团队,并在你无法达到的层面上与之沟通。无论你作为一个敏捷教练有多优秀,你必须认识到,一个优秀的敏捷伙伴在 "本地化 "方面有独特的优势。 + + +最好的方法不是 *敏捷教练为团队定制一个实施计划,然后由团队负责执行* 。在我看来,在敏捷教练的支持下,敏捷伙伴应该与团队一起制定最适合其需求的计划。接下来,在频繁反馈的情况下尝试执行这些计划,并根据需要不断调整。 + + +你继续观察进展,观察团队成员是否在敏捷原则方面出现动摇,并适时给予他们支持。当然,当出现问题时,你往往要保持沉默,让团队碰壁,并从他们的挫折中学习。其他时候,插手提供指导是正确的。 + + +### 敏捷教练还有必要吗 + + +绝对有必要! + + +敏捷是一项团队工作。每个人都必须通过合作来找到可行的流程。解决方案往往是由敏捷教练和合作伙伴之间的思想碰撞引发的。然后,合作伙伴可以准确地得到一个敏捷理论在日常工作中的应用。合作伙伴通过解决方案理解了敏捷理论的精髓。 + + +作为一名敏捷教练,你必须有扎实的理论基础,并有能力将理论应用于具体场景。表面上看,你负责理论,而你的敏捷伙伴则负责实践。然而,敏捷教练绝不能是一个扶手椅上的战略家,团队也不应该认为敏捷教练是一个理论家。事实上,敏捷教练必须有意地放开实践部分,以便敏捷伙伴能够接手。 + + +陪同团队的意义不应该是推动团队被动地朝着敏捷教练的愿景前进。对你的指导的需求会随着时间的推移而波动,但它不应该也不可能永远持续下去。 + + +### 找到一个敏捷伙伴 + + +你如何找到你的敏捷伙伴?首先,观察你所辅导的团队,注意任何负责持续改进的人,不管这是否是他们的职责。这个人就是你的敏捷伙伴。 + + +如果还没有这样的人,你必须培养一个。一定要选择具有良好项目管理意识的人。我观察到,在传统开发模式下表现出色的团队领导或项目经理,在敏捷环境下可能不是很好的人选。在敏捷管理模式中,你必须有开放的心态,不断追求卓越的意识,灵活的方法,丰富的知识,以及强大的自我激励。 + + +### 一起做敏捷的人 + + +不要羞于引入合作伙伴来帮助你的工作和沟通。相反,找到愿意合作的伙伴,一起努力使你的组织成为一个敏捷的组织。 + + +*[本文翻译自 Xu Dongwei 的博客,经授权转载][4]* + + +-------------------------------------------------------------------------------- + +原文: https://opensource.com/article/22/7/agile-coach-internal-cooperation + +作者:[Kelsea Zhang][a] +选题:[lkxed][b] +译者:[aftermath0703](https://github.com/aftermath0703) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/kelsea-zhang +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/leader-team-laptops-conference-meeting.png +[2]: https://creativecommons.org/licenses/by/3.0/us/ +[3]: https://enterprisersproject.com/article/2022/2/agile-adoption-6-steps-IT-leaders?intcmp=7013a000002qLH8AAM +[4]: https://mp.weixin.qq.com/s/OQUAY6JkpTEgnev_EgZdZA From fec2d99b278dcb425c47199cff116f405ab1821b Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:20:16 +0800 Subject: [PATCH 0874/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220824=20Become=20A=20Pro=20Flatpak=20User=20By=20?= =?UTF-8?q?Learning=20These=20Commands.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Flatpak User By Learning These Commands.md | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 sources/tech/20220824 Become A Pro Flatpak User By Learning These Commands.md diff --git a/sources/tech/20220824 Become A Pro Flatpak User By Learning These Commands.md b/sources/tech/20220824 Become A Pro Flatpak User By Learning These Commands.md new file mode 100644 index 0000000000..adc628a40d --- /dev/null +++ b/sources/tech/20220824 Become A Pro Flatpak User By Learning These Commands.md @@ -0,0 +1,283 @@ +[#]: subject: "Become A Pro Flatpak User By Learning These Commands" +[#]: via: "https://www.debugpoint.com/flatpak-commands/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Become A Pro Flatpak User By Learning These Commands +====== +In this article, I will show you various Flatpak commands that make you a pro Flatpak user. + +![][1] + +Flatpak sandboxed technology is the future of Linux app distribution. Almost all significant distributions come with Flatpak pre-installed today since the adoption is easy and maintaining it more straightforward. + +If you use Flatpak every day, you probably know these commands. But if you are still considering moving to Flatpak for every app, then you should go through this list to understand how easy to manage Flatpak apps. + +Hence, to help you do that, I have listed some easy-to-use Flatpak commands for your reference, filtered from the huge set of command-set from documentation. + +### Flatpak Commands Reference + +First, let’s talk about some basic commands. + +#### 1. Installing Flatpak + +Since last time I checked, all the significant distros come with pre-installed Flatpak packages today. Hence, you may not require to install it. + +However, installing Flatpak is as easy as running the following command for two major distro lineups. + +``` +sudo apt install flatpak // for Ubuntu and related distros +``` + +``` +sudo dnf install flatpak // for Fedora and RPM based distros +``` + +You may check out our [detailed guide][2] on Flatpak installation, if you are running any other distro. + +#### 2. Set up Flatpak Remote + +Next, you need to set up a connection to remotes after installation. The remotes are like repositories (think about PPA) which distribute Flatpak apps. + +The primary repo is Flathub, and you can set it up using the following command. This command is same for all distros. And after you finish, reboot your system and you are ready to install Flatpak apps. + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +**Tip**: If you have a different remote, you may use the same command to add that remote. Its normal to have multiple remotes set up in a single system. + +**Tip**: Also, you can specify `--user` or `--system` switch to install the Flatpak remotes specific to your user id or the entire system! + +``` +flatpak remote-add --if-not-exists --user https://flathub.org/repo/flathub.flatpakrepo +``` + +``` +flatpak remote-add --if-not-exists --system https://flathub.org/repo/flathub.flatpakrepo +``` + +#### 3. Installing a Flatpak app from Flathub + +Most of the significant GUI-based Software stores in Linux allow Flatpak installation by default. For example, if you are using Software (for Ubuntu or Fedora – GNOME), you can find and click on the install button to install. + +Or, in KDE Plasma’s discover: + +![KDE Discover can pull up Flatpak apps from Flathub][3] + +But, the easiest way is to copy the install command from the [Flathub store][4] (available at the bottom of each app info page) and paste it into the terminal. This is the fastest way to install any Flatpak app. + +``` +flatpak install org.kde.kdenlive +``` + +#### 4. Running an application + +There are two ways to run a Flatpak app which you installed. You can either find it in the application menu in the graphical desktop environment. Or, you can use the simple run command to launch. + +You can find the run command from the Flathub app page. + +``` +flatpak run org.kde.kdenlive +``` + +Now, you have learned how to set up, install and run the Flatpak app. It’s time to go a little deeper. + +#### 5. Find out list of Flatpak apps you have installed + +Over the years, you may have installed and removed many Flatpak apps. But, how can you find out how many Flatpak apps I have installed at any given time? Or you might be wondering what the Flatpak apps that are installed by the system. + +Here are some Flatpak commands (to run via terminal) that can help you in this regard as FAQ. + +* Simple Flatpak commands to list all installed app. This includes both system apps and your apps. + +``` +flatpak list +``` + +* Command to display only your apps. + +``` +flatpak --user list +``` + +* A little more detail you can filter using additional columns (such as name, size etc) in both the above commands. + +``` +flatpak --columns=app,name,size,installation list +``` + +``` +flatpak --columns=name,size --user list +``` + +![flatpak list command with additional columns][5] + +#### 6. Find out more information about an installed app + +Now, you have installed an app via above Flatpak commands. But what if you want to find out the architecture, version, branch, licence and other information. You can do that using the `info` switch. This command requires the Flatpak `Application ID` which you can get it via above `flatpak list` command. + +Example: + +``` +flatpak info org.kde.kdenlive +``` + +![flatpak info command][6] + +#### 7. Find out entire history of flatpak command in your system + +The histroy switch in flatpak command gives you a list of activities happened in your system that includes install, update, uninstall with date time stamp. It’s very useful if you want to trying to investigate something. + +``` +flatpak history +``` + +#### 8. Updating Flatpak apps + +The update switch in flatpak command updates all applications and runtimes. When you run this command, it will show you the available updates and asks for your confirmation to proceed. + +``` +flatpak update +``` + +If you want to update a specific application and not the entire system use the `--app` or `--runtime` switch for applications and runtimes respectively. + +For example, if I want to update only kdenlive in my system, I would run the following. + +``` +flatpak update --app org.kde.kdenlive +``` + +**Tip**: The update command usually updates to the top of the branch of any program. However, using the `--commit` switch in update parameter, you can update to a specific branch (upgrade or downgrade) in flatpak. For example: + +``` +flatpak update --app org.kde.kdenlive --commit 37103f4ee56361a73d20cf6957d88f3c3cab802909a5966c27a6e81d69795a15 +``` + +This commit switch is very helpful if you want to play around several version of same app. + +![Example of flatpak commands update with commit][7] + +#### 9. Managing permission of flatpak apps + +Different application require variety of permissions such as webcam, microphone, screen and so on. Managing these individual permissions are a little overwhelming via commands. Hence, the best way to manage Flatpak permission is using another flatpak app called Flatseal. It gives you a nice GUI with toggle buttons to enable/disable/review permissions of the installed Flatpak apps. + +You can read more about [Flatseal here][8]. + +#### 10. Commands to uninstall Flatpak applications + +There are different use cases for uninstall a flatpak app. So, here’s quick guide. + +To uninstall a single application, use the `uninstall` switch with application ID. For example: + +``` +flatpak uninstall org.kde.kdenlive +``` + +To uninstall all apps, use the `--all` switch. + +``` +flatpak uninstall --all +``` + +To uninstall unused apps, use the following. + +``` +flatpak uninstall --unused +``` + +#### 11. Delete and remove every trace of Flatpak apps + +**Use the following commands with extreme caution, since it will delete everything.** + +Even if you uninstall a Flatpak app, some app data remains in your system unless you run the uninstall with some additional switch. Its necessary for cases where you might want to delete everything and start afresh with Flatpak. + +To uninstall and delete data for a specific app, use the following command. For example: + +``` +flatpak uninstall -y --delete-data org.kde.kdenlive +``` + +To uninstall and delete everything related to Flatpak, use below. + +``` +flatpak uninstall --all --delete-data +``` + +#### 12. Cleanup and disk space usage + +By default Flatpak gets installed in `/var/lib/flatpak`. This directory contains all flatpak related data and metadata plus runtime files. And the user specific installation directory is `~/.local/share/flatpak`. + +You can find out the disk space used by Flatpak apps using the following command. + +``` +du -h /var/lib/flatpak +``` + +To clean up, you can use the unused or uninstall commands mentioned above. For details, visit our [flatpak cleanup guide][9]. + +### Summary + +For your ready reference, here’s a summary of the Flatpak commands explained above. And bookmark this page for easy reference. + +``` +# install and run +flatpak install org.kde.kdenlive +flatpak run org.kde.kdenlive + +#various ways of list installed apps +flatpak list +flatpak --user list +flatpak --columns=app,name,size,installation list +flatpak --columns=name,size --user list + +# find out app id and history +flatpak info org.kde.kdenlive +flatpak history + +# updating flatpak +flatpak update +flatpak update --app org.kde.kdenlive + +# uninstalling flatpak apps +flatpak uninstall org.kde.kdenlive +flatpak uninstall --unused + +# uninstall everything (use with caution) +flatpak uninstall --all +flatpak uninstall -y --delete-data org.kde.kdenlive +flatpak uninstall --all --delete-data +``` + +Finally, do let me know in the comment box which Flatpak commands you think should also be included in this list. + +*[Some examples via the official reference.][10]* + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/flatpak-commands/ + +作者:[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/08/fpref-1024x576.jpg +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://www.debugpoint.com/?attachment_id=10760 +[4]: https://flathub.org/apps +[5]: https://www.debugpoint.com/?attachment_id=10758 +[6]: https://www.debugpoint.com/?attachment_id=10757 +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/Example-of-flatpak-commands-update-with-commit-1024x576.jpg +[8]: https://www.debugpoint.com/manage-flatpak-permission-flatseal/ +[9]: https://www.debugpoint.com/clean-up-flatpak/ +[10]: https://docs.flatpak.org/en/latest/flatpak-command-reference.html From 1bca484204e9e67963f7b244e5fcf74542c2f698 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:22:49 +0800 Subject: [PATCH 0875/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220824=20sudo=20apt=20update=20vs=20upgrade-=20Wha?= =?UTF-8?q?t-s=20the=20Difference-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...date vs upgrade- What-s the Difference-.md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md diff --git a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md new file mode 100644 index 0000000000..d72001d3e1 --- /dev/null +++ b/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md @@ -0,0 +1,147 @@ +[#]: subject: "sudo apt update vs upgrade: What’s the Difference?" +[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +sudo apt update vs upgrade: What’s the Difference? +====== + +If you want to keep your Ubuntu or Debian system updated, you use the combination of **sudo apt update** and **sudo apt upgrade** commands. + +Some older tutorial also mention **sudo apt-get update** and **sudo apt-get upgrade**. + +Both apt and apt-get commands work pretty much the same except for some minor differences that I’ll discuss later in this later. + +Let’s first discuss the difference between update and upgrade. Are not the two the same thing? + +### Difference between apt update and upgrade + +Though it sounds like running the apt update will give you the latest version of the package, it’s not true. The update command only gets the information about the latest version of packages available for your system. It doesn’t download or install any package. It is the apt upgrade command that actually downloads and upgrades the package to the new version. + +Still confused? Let me explain a bit more. I advise [reading up on the concept of package manager][1]. It will help you understand things even better. + +![Linux Package Manager Explanation][2] + +Basically your system works on a database (cache) of available packages. Note that this cache or database doesn’t contain the packages themselves, just the metadata (version, repository, dependency etc) on the package. + +If you don’t update this database, the system won’t know if there are newer packages available or not. + +When you run the apt update or apt-get update command, it will fetch the updated metadata (package version etc) on the packages. + +![apt update][3] + +Your local package cache has been updated and there are packages that can be upgraded. You can upgrade all of the (upgradable) packages with sudo apt upgrade. + +It shows the packages that are going to be upgraded and ask you to confirm by pressing enter (for default choice Y) or Y key. To cancel the upgrade at this stage, you can press N. + +![apt upgrade][4] + +If it helps you remember: + +* apt update: updates the package cache (to know which package versions can be installed or upgraded) +* apt upgrade: upgrades packages to the new version + +Since these are administrative commands, you need to run them as root. And hence you use sudo with both commands. The sudo part lets you run commands as root in Ubuntu and Debian. + +Now that you understand how the combination update and upgrade works, let’s discuss the use of apt and apt-get. + +### apt or apt-get? Which one should you be using? + +Debian and Ubuntu use the APT package management system. Don’t confuse it with the apt command. + +There are many commands that interact with the APT package management; apt-get, apt, dpkg, aptitude etc. + +The apt-get command was the most popular of them all. It is a low-level, feature rich command. apt is a newer and simpler version of apt-get. + +You can [read this article to learn on the differences of apt and apt-get commands][5]. Let me focus on difference between the update and upgrade options of these commands. + +#### apt update vs apt-get update + +Both `apt-get update` and `apt update` do the same task of updating the local package cache so that your system is aware of the available package versions. + +Technically, there is no difference. However, apt update does one thing better than apt-get update. It **tells you the number of packages that can be upgraded**. + +``` +Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease +Fetched 213 kB in 4s (55.8 kB/s) +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +6 packages can be upgraded. Run 'apt list --upgradable' to see them. +``` + +apt-get update doesn’t even tell you if any package can be upgraded. + +![apt get update][6] + +![apt update output][7] + +You can see the [list of upgradable packages][8] with apt but apt-get doesn’t have this option. + +``` +[email protected]:~$ apt list --upgradable +Listing... Done +fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] +gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] +gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] +gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1] +libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] +vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1] +``` + +Let’s talk compare the upgrade option of both commands. + +#### apt upgrade vs apt-get upgrade + +Both apt-get upgrade and apt upgrade commands install the newer version of the upgradable packages based on the data in the local package cache (refreshed by the update command). + +However, the apt upgrade command does couple of things differently than its apt-get counterpart. + +The **apt upgrade command can upgrade the Linux kernel version, apt-get upgrade cannot** do that. You need to use [apt-get dist-upgrade][9] for upgrading the kernel version with apt-get command. + +![apt-get upgrade command cannot upgrade Linux kernel version][10] + +This is because upgrading the kernel version means installing a completely new package. apt-get upgrade command cannot install a new package. It can only upgrade existing packages. + +Another small thing that apt upgrade does better than apt-get upgrade is to **show a progress bar** at the bottom. + +![apt upgrade progress bar][11] + +### Conclusion + +The word update and upgrades are similar and this is why it confuses a lot of new users. At times, I think the apt update command should be merged with the apt upgrade command. + +I mean the upgrade (of installed package versions) works in conjugation with the update (of local package metadata cache). Why have two separate commands for that? Combine them in a single upgrade command. This is what Fedora has done with the DNF command. That’s just my opinion. + +I hope this article cleared some air around the usage of apt-get update, apt-get upgrade and apt update and apt upgrade commands. + +Do let me know if you have any questions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-update-vs-upgrade/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/package-manager/ +[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png +[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png +[8]: https://itsfoss.com/apt-list-upgradable/ +[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ +[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png From a1d8ee4aaca9f02adf401b4ae8c6fd8f79469bad Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:24:17 +0800 Subject: [PATCH 0876/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220825=20How=20to=20Get=20KDE=20Plasma=205.25=20in?= =?UTF-8?q?=20Kubuntu=2022.04=20Jammy=20Jellyfish.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...a 5.25 in Kubuntu 22.04 Jammy Jellyfish.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md diff --git a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md new file mode 100644 index 0000000000..87fa8660be --- /dev/null +++ b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md @@ -0,0 +1,115 @@ +[#]: subject: "How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish" +[#]: via: "https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish +====== +The KDE developers now enabled the popular backports PPA with necessary updates with KDE Plasma 5.25 which you can install now in Kubuntu 22.04 Jammy Jellyfish. Here’s how. + +KDE Plasma 5.25 released a few days back on June 14, 2022 with some stunning updates. With this release, you get the **dynamic accent colour**, revamped login avatars, **floating panel** and many such features which we covered in the [feature highlight article][1]. + +But, if you are running [Kubuntu 22.04 Jammy Jellyfish][2] which was released long back on April 2022, you have the KDE Plasma 5.24 with KDE Framework 5.92. + +You probably waiting to enjoy the new features in your stable Kubuntu 22.04 release, and now its possible to install it in Kubuntu 22.04 via the famous backports PPA. + +### How to Install KDE Plasma 5.25 in Kubuntu 22.04 + +Here’s how you can upgrade Kubuntu 22.04 with latest KDE Plasma 5.25. + +#### GUI Method + +If you are comfortable with KDE’s software app Discover, then open the app. Then browse to the Settings > Sources and add the PPA `ppa:kubuntu-ppa/backports-extra`. Then Click on Updates. + +#### Terminal Method (recommended) + +I would recommend you to open a terminal and do this upgrade for faster execution and installation. + +* Open Konsole and run the following commands to add the [backport PPA][3]. + +``` +sudo add-apt-repository ppa:kubuntu-ppa/backports-extra +``` + +![Upgrade Kubuntu 22.04 with KDE Plasma 5.25][4] + +* Now, refresh the package list by running the following command. Then verify the 5.25 packages are available. + +``` +sudo apt update +``` + +``` +apt list --upgradable | grep 5.25 +``` + +![KDE Plasma 5.25 packages are available now][5] + +Finally, run the last command to kick-off the upgrade. + +``` +sudo apt full-upgrade +``` + +The total download size is around 200 MB worth of packages. The entire process takes around 10 minutes of your time based on your internet connection speed. + +After the above command is complete, restart your system. + +Post-restart, you should see the new KDE Plasma 5.25 in Kubuntu 22.04 LTS. + +![KDE Plasma 5.25 in Kubuntu 22.04 LTS][6] + +### Other backport PPA + +Please note that the [other backport PPA][7] `ppa:kubuntu-ppa/backports` is currently have Plasma 5.24. So do not use the following PPA which is different than the above. I am not sure whether this PPA would get this update. + +``` +sudo add-apt-repository ppa:kubuntu-ppa/backports // don't use this +``` + +### How to Uninstall + +At any moment, if you would like to go back to the stock version of KDE Plasma desktop, then you can install ppa-purge and remove the PPA, followed by refreshing the package. + +Open a terminal and execute the following commands in sequence. + +``` +sudo apt install ppa-purge +sudo ppa-purge ppa:kubuntu-ppa/backports-extra +sudo apt update +``` + +Once the above commands are complete, restart your system. + +### Closing Notes + +There you have it. A nice and simple steps to upgrade stock KDE Plasma to Plasma 5.25 in Jammy Jellyfish. I hope, your upgrade goes fine. + +Do let me know in the comment section if you face any error. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/ + +作者:[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/kde-plasma-5-25/ +[2]: https://www.debugpoint.com/kubuntu-22-04-lts/ +[3]: https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/backports-extra +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrade-Kubuntu-22.04-with-KDE-Plasma-5.25.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/KDE-Plasma-5.25-packages-are-available-now.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/KDE-Plasma-5.25-in-Kubuntu-22.04-LTS-1024x575.jpg +[7]: https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/backports From 04caf7ae26f18d1d3ecdf26f1d83d563eeaa37ab Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:28:01 +0800 Subject: [PATCH 0877/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220825=20Building=20a=20Stateless=20Firewall=20Usi?= =?UTF-8?q?ng=20Netfilter=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eless Firewall Using Netfilter in Linux.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 sources/tech/20220825 Building a Stateless Firewall Using Netfilter in Linux.md diff --git a/sources/tech/20220825 Building a Stateless Firewall Using Netfilter in Linux.md b/sources/tech/20220825 Building a Stateless Firewall Using Netfilter in Linux.md new file mode 100644 index 0000000000..bd52151766 --- /dev/null +++ b/sources/tech/20220825 Building a Stateless Firewall Using Netfilter in Linux.md @@ -0,0 +1,157 @@ +[#]: subject: "Building a Stateless Firewall Using Netfilter in Linux" +[#]: via: "https://www.opensourceforu.com/2022/08/building-a-stateless-firewall-using-netfilter-in-linux/" +[#]: author: "Supriyo Ganguly https://www.opensourceforu.com/author/supriyo-ganguly/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Building a Stateless Firewall Using Netfilter in Linux +====== +*The Linux kernel has a Netfilter framework that allows us to perform various networking-related operations. This article is a simple tutorial on how to build firewall modules using Netfilter.* + +The Netfilter framework is a collection of hooks or handlers in the Linux kernel, which helps to filter or capture socket buffers. We can implement packet filtering at the input or output, or even at the forwarding path of a network packet. *Iptables* is a popular tool that is implemented using the Netfilter framework. + +As shown in Figure 1, a packet can be filtered or processed at five different stages. So there are five possible hooks where programmers can attach a customised handler and implement their own firewall. These hooks are (only for Linux kernel 5.10 or above): + +![Figure 1: Processing stages][1] + +* NF_INET_PRE_ROUTING: This hook is called once a network packet enters the stack, before any routing decision takes place. +* NF_INET_LOCAL_IN: After routing, if it is found that the packet is for a local network, this hook is triggered. +* NF_INET_FORWARD: This hook is called if, after routing, it is found that the packet is for another networking domain, and not for a local process. +* NF_INET_LOCAL_OUT: This is called in case the packet is sent from a local process using send or sendto (POSIX calls). +* NF_INET_POST_ROUTING: This handler is called just before any local or forwarded packet is about to hit the interface after handling by the entire stack is over. + +I have written an example code to show how to build a firewall using the Netfilter framework. I have used Linux kernel 5.10. In this example I have blocked all ICMP and HTTP/HTTPS packet sending from a local process. This program has to run from kernel space, and not in user space. So a kernel module has been developed. + +The entire code is available at*https://github.com/SupriyoGanguly/Linux-Firewall-by-netfilter*. You can download the code files to check and understand the implementation. + +#### Packet filtering + +We have created a firewall.c file that is available in the download from the above link. In *firewall.c*, the *netfilter_ops* is a *struct nf_hook_ops* variable. In the init-module section, *netfilter_ops* is initialised with the following: + +``` +netfilter_ops.hook = main_hook; //the handler function +netfilter_ops.pf = PF_INET; //tells the Protocol is IPv4 +netfilter_ops.hooknum = NF_INET_POST_ROUTING; //process at post-routing stage +netfilter_ops.priority = NF_IP_PRI_FIRST; //priority +``` + +Given below is the snippet from firewall.c: + +``` +static struct nf_hook_ops netfilter_ops; + +/* This function is called by hook. */ + +static unsigned int main_hook(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) +{ + //struct udphdr *udp_header; + int dstPort; + struct tcphdr *hdr; + struct iphdr *ip_header = (struct iphdr *)skb_network_header(skb); + + if (ip_header->protocol == IPPROTO_ICMP) { + // udp_header = (struct udphdr *)skb_transport_header(skb); + printk(KERN_INFO “Drop icmp packet.\n”); + return NF_DROP; + } + + if (ip_header->protocol == IPPROTO_TCP) { + hdr = (struct tcphdr *) skb_transport_header(skb); + dstPort = ntohs(hdr->dest); + if ((dstPort==443) || (dstPort==80)) /*drop https and http*/ { + printk(“Drop HTTPS/HTTP packet\n”); + return NF_DROP; + } + } + return NF_ACCEPT; +} +``` + +*main_hook* is the name of the handler function for the *NF_INET_POST_ROUTING hook*. In this function, any packet (whether forwarded or sent from the local interface with ICMP protocol) will be dropped using the first ‘if’ statement, where it checks for the IP_PROTOCOL in the IPv4 header of the socket buffer. As the hook is returning *NF_DROP*, it tells the kernel driver not to proceed with the packet. + +The second ‘if’ statement checks whether any TCP packet with destination port number 443 (for HTTPS) or with port number 80 (for HTTP) will be dropped. + +Now we can use the*Make* statement to compile this module*(filewall.c)*. Figure 2 shows that we can ping an IP of a local network device with IP address 192.168.29.1 successfully just before we have implemented *firewall.c.* + +![Figure 2: Successful ping][2] + +But after insertion of the module, ping starts to fail (as shown in Figure 3). + +![Figure 3: Unsuccessful ping][3] + +This indicates that in the*POST_ROUTING* hook, the packet is dropped and not sent to wire. A log from*dmesg* command is shown in Figure 4 and describes the functionality of the module. + +![Figure 4: Output of dmesg][4] + +In this example you can also see the use of *NF_DROP* or *NF_ACCEPT* return values. The meaning of these values is self-explanatory. But there are a few more return values as well, which include: + +* NF_REPEAT: Repeat the hook function. +* NF_QUEUE: Queue the packet for user space processing.  To implement this in user space, we need to use the libraries nfnetlink and netfilter_queue. +* NF_STOLEN: Further processing of the packet and freeing memory is up to your module. + +#### Packet mangling + +Netfilter can also be used for packet mangling or modification. In the same URL (https://github.com/SupriyoGanguly/Linux-Firewall-by-netfilter), you can find one more file *Mangle.c*. The corresponding makefile is*Makefile_mangle*. + +In this hook, the ICMP ping packet source IP is modified just before sending out the packet. You can see the code below: + +``` +/* This function to be called by hook. */ + +static unsigned int main_hook(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) +{ + + struct iphdr *ip_header = (struct iphdr *)skb_network_header(skb); + + if (ip_header->protocol == IPPROTO_ICMP) { + printk(KERN_INFO “Mangle icmp packet. %x\n”,ip_header->saddr); + ip_header->saddr = 0xd01da8c0; + } + + return NF_ACCEPT; +} +``` + +The output of Wireshark capture shown in Figure 5 depicts that before loading this module, the ping request to destination IP 192.168.29.1 goes from the original IP of the interface, i.e., 192.168.29.207. But after loading the module, the ping request goes from the modified IP of the interface, i.e., 192.168.29.208. However, the physical interface IP is unchanged. + +![Figure 5: Output of Wireshark][5] + +#### Compiling the code + +To compile and test the downloaded module, just use: + +``` +$ make + +$ sudo insmod firewall +``` + +To remove it, use the following command: + +``` +$ sudo rmmod firewall +``` + +This article is a simple tutorial on building firewall modules using Netfilter. You can also do packet capturing by simply using the*NF_INET_PRE_ROUTING* hook number in this example. You can even use this example to simulate a man-in-the-middle attack for your devices, to test the cybersecurity. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/building-a-stateless-firewall-using-netfilter-in-linux/ + +作者:[Supriyo Ganguly][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/supriyo-ganguly/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Processing-stages.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Successful-ping.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Unsuccessful-ping.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-4-Output-of-dmesg.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-5-Output-of-Wireshark.jpg From 2db1c644aaea378975138890419f8a0e20de5a9e Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:29:49 +0800 Subject: [PATCH 0878/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220825=20-I=20wish=20the=20industry=20would=20not?= =?UTF-8?q?=20follow=20this=20ever=20increasing=20hype=20cycle=20for=20new?= =?UTF-8?q?=20stuff-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er increasing hype cycle for new stuff-.md | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 sources/talk/20220825 -I wish the industry would not follow this ever increasing hype cycle for new stuff-.md diff --git a/sources/talk/20220825 -I wish the industry would not follow this ever increasing hype cycle for new stuff-.md b/sources/talk/20220825 -I wish the industry would not follow this ever increasing hype cycle for new stuff-.md new file mode 100644 index 0000000000..a7b32a5001 --- /dev/null +++ b/sources/talk/20220825 -I wish the industry would not follow this ever increasing hype cycle for new stuff-.md @@ -0,0 +1,105 @@ +[#]: subject: "“I wish the industry would not follow this ever increasing hype cycle for new stuff”" +[#]: via: "https://www.opensourceforu.com/2022/08/i-wish-the-industry-would-not-follow-this-ever-increasing-hype-cycle-for-new-stuff/" +[#]: author: "Abbinaya Kuzhanthaivel https://www.opensourceforu.com/author/abbinaya-swath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +“I wish the industry would not follow this ever increasing hype cycle for new stuff” +====== +*While new technologies can lead to innovations, hype often goes with the territory. Gerald Venzl, senior director, product management at Oracle Corporation speaks with Abbinaya Kuzhanthaivel about the risks of following the hype, and shares his thoughts on how to grow a career by contributing to open source projects.* + +##### Q. Can you tell us a bit about your journey with open source? + +**A.** I currently work as a database product manager looking after the Oracle Database. As part of my job, I help steer the direction of the product and help pinpoint priorities in the market that need to be addressed. Often people are surprised when I tell them that open source is an important aspect of that. For example, Oracle recently launched a Kubernetes operator for its database, which is fully open source and is available on GitHub. But we have also Docker build files on GitHub, and even some of our Oracle Database drivers are fully open source, such as our Node.js driver and the Python driver. + +##### Q. Is Oracle your first venture into open source? + +**A.** I was accustomed to open source in my personal life before joining Oracle. For me, open source is a natural part of my job. +Oracle has a long-standing commitment to open source with Oracle Linux, Java, MySQL and many other projects. Although the Oracle Database core is proprietary, we see the value of open source and having people to contribute and understand the technologies around it. + +##### Q. What do you think about open source as an opportunity? + +**A.** The thing that I like about open source is that it’s essentially a democracy and everybody gets to participate. Not that all participants are core contributors, but it connects people from all over the world. The exposure to projects and other developers is important for growing your skillset and your career. + +In Oracle, we are currently focusing a lot on the Kubernetes operator. That’s an exciting project. In my free time, I also write little tools and open source them. I had worked a little on a command line tool called ‘csv2db’, that allows you to load CSV data into a database. I see these projects as a chance to educate myself. You read something, and then you try to implement it and see whether you really understood it, whether it works and so on. + +##### Q. How did this change happen from being a developer to a product manager? + +**A.** My path was probably highly irregular. I am from Austria originally where I worked as a developer for an American company headquartered in New York. I was part of the performance engineering team. I was actually one of those guys who tried to profile the code and those skills eventually brought me to troubleshoot production systems at customer sites. I relocated to New York, and then a couple of years later Oracle asked me to join their pre-sales team as a result of our earlier interactions in running proof-of-concepts and performance tests on their systems together. + +I liked the opportunity to learn by interacting with customers directly and discussing requirements. But for me, the turning point was moving back into development and specifically into the technical aspects as product manager. + +##### Q. What are the top two ‘must have’ qualities of your role? + +**A.** I think one must definitely be able to accept ever-changing requirements. But it’s not just a reactive job. You also have to have a curious mindset. If you have a curious mind, are open to new ideas, and can think out-of-the-box, you can establish your priorities and grow into the role. + +##### Q. What would you like to say about the challenges in your current role? + +A. Product manager is a very diverse and ever-changing role. One must be highly adaptive because you need to go through steering the product, prioritising the internal roadmap and also accept changes depending on market demands and customer needs. So the key challenge, and also the fun part, is that no day really ever looks the same. + +##### Q. Any important risk you have taken so far which you think might inspire others? + +**A.** I think my shifting into product management was the biggest risk. The future is unpredictable and one must dare to take such risks. For open source projects, it’s probably taking the step and actually wanting to contribute to a project. It can be a bit daunting in the beginning, especially to know where to start contributing for very popular active projects. Not all contributions have to be done in code; often people appreciate help with the documentation or testing. There are many ways to get started — the important thing is that you do get started. If you are passionate about something, you will have to go after it. You may have people not reacting the way you expect at first, but that’s okay. It will essentially help to learn. + +##### Q. What do you consider as top leadership qualities? + +**A.** There are a couple of things that I think are important for leadership. And the first one is that it’s okay to be wrong and acknowledge it. This also encourages people around you to freely share ideas. The other thing would be to take chances and get out of your comfort zone. I have never formally learnt product management. I just was intrigued by it, gave it a try and I thought, let’s see how it goes. It has put me in a good space for growth. + +##### Q. Anything you are not very happy about when it comes to open source? + +**A.** I wish the industry would not follow this ever increasing hype cycle for new stuff. New doesn’t automatically mean great. We may talk just about all the new things out there, but the world still runs on Linux and, remember, we still use the HTTP, TCP/IP and all those technologies today. The fundamental technologies that connect us around the globe have been there for a long time. Something doesn’t have to be new to be great and often new technologies go just as fast as they came. + +##### Q. What are the major risks in going ahead with new technologies? + +**A.** A major risk is forgetting or not wanting to ask the “why” we need the new technology. In our industry we get excited very quickly about something that we then want to work with. Sometimes that means that we oversimplify some business requirements and kind of omit the downsides of a new technology, just so that we can use it for a new project. I agree that new things lead to innovations and there is nothing wrong with that. But I have equally seen just as many projects fail that tried to replace the legacy system because a new buzz technology is out there and looks attractive. I’ve seen a three or four year-long project fail because no one bothered to look at the ‘why’ when replacing the previous system; and although it solved the new requirements, people forgot to ask themselves what the old system did well and they just ended up with those old issues again. + +##### Q. How does one keep away from the hype around new technologies? + +**A.** I would say that, as a developer, don’t just blindly follow the latest and greatest. If someone is telling you new stuff, well it’s great to know. But it’s no surprise to me that Linux runs the world and HTTP runs the Web, because those technologies are really well-designed. Have an open mind and look at what’s new, but think about whether this new technology actually will serve your needs. It’s fine if it doesn’t. + +##### Q. How can a developer find projects to contribute to while keeping away from the hype? + +**A.** There’s nothing wrong with working on a hype project, but you have to make sure that you actually have interest. Think small — don’t expect to become the main contributor in the next two weeks or in a short span. + +Remember most of the open source projects really like non-code contributions just as much, such as testing or reporting bugs or lack of information in the documentation. Don’t just go into it to write some code. Initially have some idea about which area you want to contribute to. It should be something that excites you. Go to GitHub and just read through project contributing guidelines. It will tell you what contributions the project needs and how to make them correctly. + +Your work may be small, like adding a sentence to the doc or correcting a typo. But it will allow you to get familiar with the process and with the other people involved in these projects. Do not expect to jump into a project and change its core. Most likely, only an approved committee of committers can actually change that part of the code. Build some trust, show that you understand the project and over time your involvement will grow naturally. + +##### Q. Any examples of projects you think were overrated because they had just used a new technology? + +**A.** I have seen a few working in the database space. When you think about it, relational databases have been around for a very long time and are still going strong. To some extent, we have forgotten why relational databases became so popular. The goal was to organise the data in a way so that five years from now somebody who comes in and has no clue what the data looked like, can make sense out of it. For a while there was a general hype that you no longer need any database, whether relational or non-relational, because Hadoop will do everything. And it didn’t. It actually just led to data cleansing issues for many folks. Don’t get me wrong — there are companies that successfully run Hadoop clusters and there is nothing bad about the technology itself. But you have to understand what it is and when to use it. + +##### Q. Oracle has recently introduced the new MongoDB API for its autonomous database. What was the reason behind it and how did it happen? + +**A.** At Oracle, we follow the converged database methodology. This methodology focuses on bringing the algorithms and computation to the data, rather than the other way around. A very good analogy for converged database methodology is the smartphone, where you can do multiple use cases in one device, like taking a picture and sending it to a friend while being on a phone call, for example. In recent years, we have seen a proliferation of vendors pitching their technology to address an often simple use case For example, developers like working with JSON documents and MongoDB allows them to store and retrieve these documents. But it is one thing to store and retrieve these and another to analyse terabytes of them in real-time. We think SQL is a really good language for any kind of analytics and we have the best database for mixed workloads, i.e., allow real-time analytics while transactional workloads are running. Additionally, Oracle Database has been managing JSON documents natively since 2014. + +Developers love the MongoDB API as it makes database interaction very natural for them. And we have the best database for analytics and mixed workloads that can also manage JSON documents natively. So we decided to give developers the best of both worlds — the same MongoDB API on top of the world’s leading database. + +##### Q. Will you say MongoDB is a new hype? + +**A.** The JSON format is a very useful hierarchical format and is nothing new — it’s been around since 2001. If you want to use JSON, then go ahead, by all means. Oracle has done a lot of work to introduce JSON operations into the SQL standard, and we see more and more databases supporting these standardised operations. You will find that if you want to work with JSON, retrieve JSON documents, query and manipulate data in JSON documents, you definitely don’t need to have a document store anymore. MongoDB is a cool technology, but so were XML databases in their days. I think it is definitely not needed for data management aspects. + +##### Q. Any hiring plans? + +**A.** We are constantly hiring great talent and all our openings can be accessed on the Oracle careers page. We are looking for people in a variety of different roles, including engineering and product management. We are strong in diversity and have people from all around the world and all ages, including graduate students. + +##### Q. Your message for our readers. + +**A.** Programming is a universal language and it’s great to be a developer and write programs. Don’t be shy, be always ready to try something new and get out of your comfort zone to do things you are passionate about. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/i-wish-the-industry-would-not-follow-this-ever-increasing-hype-cycle-for-new-stuff/ + +作者:[Abbinaya Kuzhanthaivel][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/abbinaya-swath/ +[b]: https://github.com/lkxed From 0efbcb5ac1e3f487915eb0773b191c3060b3227b Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:34:00 +0800 Subject: [PATCH 0879/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220825=20NGINX=20Pledges=20To=20Update,=20Improve,?= =?UTF-8?q?=20And=20Expand=20Its=20Open=20Source=20Ecosystem.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e, And Expand Its Open Source Ecosystem.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md diff --git a/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md b/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md new file mode 100644 index 0000000000..8a2be8721b --- /dev/null +++ b/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md @@ -0,0 +1,36 @@ +[#]: subject: "NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem" +[#]: via: "https://www.opensourceforu.com/2022/08/nginx-pledges-to-update-improve-and-expand-its-open-source-ecosystem/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem +====== +The maker of the well-known web server with the same name, NGINX, unveiled a number of upgrades at its free NGINX Sprint conference for open source programmers looking to create the newest applications. It also discussed its development over the last 18 years and presented its future vision, which will be based on the three promises of modernise, optimise, and extend. + +Code management, decision-making transparency, and community involvement are all aspects of modernization that go beyond just the code itself. All of its future projects will be hosted on GitHub rather than the Mercurial version control system, as part of this and a recognition that the open-source world exists there. In addition, it will carefully consider community input and add codes of conduct to all of its projects. + +It intends to launch a new SaaS service that connects with NGINX Open Source in order to enhance the developer experience. It also intends to remove the paywall from several essential NGINX Open Source and NGINX Plus capabilities so that customers can access them without charge. One item that will be made accessible in this way is DNS service discovery, and the business is appealing for user input on what else should be free in its Slack channel. + +The third pledge is to keep developing NGINX’s functionality. Currently, NGINX is most frequently utilised as a Layer 7 data plane, necessitating the adoption of numerous workarounds by developers for different deployment components. It aims to expand NGINX so that an open-source component that integrates with NGINX can fulfil each criteria for testing and deployment. + +With the announcement of three upgrades that support these objectives, the company has already begun to fulfil these commitments. First, it will concentrate on its NGINX Kubernetes Gateway rather than its Kubernetes Ingress controller. Earlier this year, NGINX Kubernetes Gateway, a controller that implements the Kubernetes Gateway API, was made available. + +The introduction of NGINX Agent, a compact application that can be installed alongside NGINX Open Source instances, was also announced. Features that were previously exclusively found in commercial offers will be included. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/nginx-pledges-to-update-improve-and-expand-its-open-source-ecosystem/ + +作者:[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 From a4e1cefea0692510f6e881189ff5b568e586b741 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:36:11 +0800 Subject: [PATCH 0880/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220825=20Linux=20Mint=20Release=20Cycle-=20What=20?= =?UTF-8?q?You=20Need=20to=20Know.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nt Release Cycle- What You Need to Know.md | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 sources/talk/20220825 Linux Mint Release Cycle- What You Need to Know.md diff --git a/sources/talk/20220825 Linux Mint Release Cycle- What You Need to Know.md b/sources/talk/20220825 Linux Mint Release Cycle- What You Need to Know.md new file mode 100644 index 0000000000..5366937974 --- /dev/null +++ b/sources/talk/20220825 Linux Mint Release Cycle- What You Need to Know.md @@ -0,0 +1,126 @@ +[#]: subject: "Linux Mint Release Cycle: What You Need to Know" +[#]: via: "https://itsfoss.com/linux-mint-release-cycle/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint Release Cycle: What You Need to Know +====== +Linux Mint is an Ubuntu-based distribution. You probably already know that. + +Ubuntu releases a new version every six months but Linux Mint doesn’t follow the six-monthly release pattern. + +Linux Mint uses the Ubuntu LTS ([long term support][1]) version as its base. An LTS version of Ubuntu is released every two years and hence **you also get a major Mint version every two years** (Mint 19, 20, 21, etc). + +Like the Ubuntu LTS versions, a major Linux Mint version is also supported for five years. Although, there are **three point releases in between** (Mint 20.1, 20.2, 20.3). + +Compared to Ubuntu, how long does Linux Mint receive updates? When should you expect an upgrade for Linux Mint? Should you upgrade when a new version is available? + +Here, let me highlight all these necessary details regarding the release cycle of Linux Mint. + +### Release Cycle of Linux Mint + +Ubuntu releases a long-term support release every two years. A Mint version is followed soon after. In other words, you get a new Mint version every two years. + +So, the Linux Mint 20 was released in 2020 based on Ubuntu 20.04, Mint 21 came in 2022 based on Ubuntu 22.04. + +Unlike Ubuntu, there is no strict release schedule for Mint. There is no predefined release date. The new version arrives when it is deemed ready by its developers. + +#### Point Releases + +In between the two (major) version releases of Mint, there are three point releases that arrive at an interval of six months. + +So, Mint 20 (or 20.0) was released in June ’20. Mint 20.1 came in December’20, Mint 20.2 in June’21 and Mint 20.3 in December’21. After that, the Mint team works on developing the next major release. + +What do these point releases have? A new version of the desktop environment, containing mostly visual changes in the UI. It may also feature new applications sometimes. + +The upgrade to the point release is optional. You can choose to stay with 20.1 and not upgrade it to 20.2 and 20.3. This is preferred by people who don’t like frequent (visual) changes to their systems. + +After the last point release (XX.03), your system will only get security and maintenance updates for installed software. You won’t get new major versions of the desktop environment and some other software like GIMP or LibreOffice. + +#### Support Cycle + +Not all Ubuntu-based distributions give you the same update cycle benefit as Canonical’s Ubuntu. Many Ubuntu-based distributions and the [official flavours][2] provide support for up to 3 years. + +Fortunately, for **Linux Mint**, you get the same update perks as Ubuntu. + +**Each Linux Mint release is supported for five years**. After that, you must upgrade to the next version or install the newer version afresh. + +For example, Mint 20 was released in 2020, a few months after Ubuntu 20.04. Ubuntu 20.04 LTS is supported till 2025 and thus Mint 20 series is also supported till 2025. + +All point releases of a series are supported till the same date. Mint 20.1, 20.2, and 20.3 will all be supported till 2025. + +Similarly, Ubuntu 22.04 LTS will be supported until April 2027. You can expect the update cycle for Linux Mint 21 series (based on Ubuntu 22.04) until the same timeline. + +**To summarize:** + +* You get a new major version of Linux Mint every two years +* Each major version is supported for five years +* Each major release (version XX) is followed by three point releases (XX.1, XX.2, XX.3) before the next major release +* The point releases (XX.1, XX.2, XX.3) are supported till the same time as their major version (XX) + +### When Should You Upgrade Linux Mint? + +That totally depends on you. + +A new major version comes every two years. If you can choose to upgrade it then or you can stay with your current version for its entire lifecycle of five years. + +Unless you want access to the latest features and improvements, you can choose not to upgrade your Linux Mint installation to another major version. + +For point releases, you may or may not choose to update. Like, 20 to 20.1 or 20.1 to 20.2. You will still get important security and maintenance updates even if you are not using the latest point release. + +You can refer to our [Linux Mint upgrade guide][3] for help. + +### Linux Mint Versioning and Naming + +Unlike Ubuntu’s flavours, Linux Mint has a different numbering scheme. Linux Mint likes to bump up the number with every Ubuntu LTS release. + +In other words: + +Linux Mint 19 → **Ubuntu 18.04 LTS** + +Linux Mint 20 → **Ubuntu 20.04 LTS** + +Linux Mint 21 → **Ubuntu 22.04 LTS** + +So, you should steer clear of the following confusion: + +*Linux Mint 20 was based on Ubuntu 20.04 does not mean that Linux Mint 21 will be based on Ubuntu 21.04.* + +Furthermore, every release has **three-point releases**, with minor updates to the core and potential upgrades to some Linux Mint applications. + +Now, coming to its **naming scheme**: + +Every Linux Mint release, be it minor or major, has a codename. Usually, it is a female name, normally of Greek or Latin origin. + +Like Ubuntu, there is a pattern in the codename as well. The codenames are in alphabetically increasing order for the major releases. When it comes to point releases, you will find a new name starting with the same alphabet. + +For example, Mint 20 was called **Ulyana**, with 20.1 as **Ulyssa**, 20.2 as **Uma**, and 20.3 **Una**. Similarly, Mint 19 series had codenames starting with T. + +At the time of writing this, Mint 21 (the latest release) codename starts with **V,** and the first release of the 21 series is called **Vanessa**. + +There will be at least three more minor releases in the Mint 21 series, and they will be released every six months until the next Mint major release in 2024. And they all will have a codename starting with the letter V. + +### Keep it Minty + +I hope this article clears any confusion with Linux Mint upgrades and educates you more about the release and update cycle on Linux Mint. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-mint-release-cycle/ + +作者:[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/long-term-support-lts/ +[2]: https://itsfoss.com/which-ubuntu-install/ +[3]: https://itsfoss.com/upgrade-linux-mint-version/ From 62bf0984c0836e5d9778fc21cc08bc838f1149cd Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:38:54 +0800 Subject: [PATCH 0881/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220825=2015=20Ways=20to=20Tweak=20Nemo=20File=20Ma?= =?UTF-8?q?nager=20in=20Linux=20to=20Get=20More=20Out=20of=20it.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Manager in Linux to Get More Out of it.md | 322 ++++++++++++++++++ 1 file changed, 322 insertions(+) create mode 100644 sources/tech/20220825 15 Ways to Tweak Nemo File Manager in Linux to Get More Out of it.md diff --git a/sources/tech/20220825 15 Ways to Tweak Nemo File Manager in Linux to Get More Out of it.md b/sources/tech/20220825 15 Ways to Tweak Nemo File Manager in Linux to Get More Out of it.md new file mode 100644 index 0000000000..f582c666e7 --- /dev/null +++ b/sources/tech/20220825 15 Ways to Tweak Nemo File Manager in Linux to Get More Out of it.md @@ -0,0 +1,322 @@ +[#]: subject: "15 Ways to Tweak Nemo File Manager in Linux to Get More Out of it" +[#]: via: "https://itsfoss.com/nemo-tweaks/" +[#]: author: "sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +15 Ways to Tweak Nemo File Manager in Linux to Get More Out of it +====== +Nemo is the default file manager of the Cinnamon Desktop. You get it in Linux Mint and other distributions with the Cinnamon desktop. + +It’s a powerful file manager with plenty of features you might not know. Some tweaks are hidden inside the Nemo settings while some require installing additional extension packages. + +I have included commands for installing extensions for Ubuntu and Debian-based distributions. + +**Note: Please don’t go and install all the extensions. Only use the ones you would use.** + +### 1. Enable quick file preview + +Nemo Preview is a cool feature that comes in handy if you want to peek into some files on the go. You can access the preview feature for images, audio, video, PDF, etc. + +It also allows scrolling the documents in preview mode and adds a floating control with a seek par in audio/video preview. + +![File Preview in Nemo File Manager With Nemo Preview][1] + +You can get the preview feature by installing the following extension: + +``` +sudo apt install nemo-preview +``` + +Once installed, you may need to restart the Nemo file manager. + +To activate the preview, **select the file and press the Space key**. Pressing the space key again will close the preview. + +### 2. Click twice to rename + +This is one of the iconic features of Nemo file manager, which is already offered in Dolphin File Manager of KDE, but absent in Nautilus of Gnome. + +To enable this setting, you need to go to Edit > Preferences > Behaviour and toggle the option as shown below: + +![Click on File Name Twice to Rename It][2] + +Once done, you can now click twice on a file/folder and an inline rename option appears to rename the respective selection. + +### 3. Bulk rename files + +Nemo also offers a bulk rename feature that many Linux users are not aware of. + +What you have to do is, select the files and select **rename** from the right click. You’ll get different kinds of options to tweak the names of the selected group of files. + +![Nemo File Manager Bulk Rename][3] + +You can find and replace, remove certain parts of the name among many other things. + +### 4. Double click anywhere to go to the parent folder + +This is rather an accessibility setting. Instead of pressing the back button or clicking on the places tree, you can simply double-click anywhere in the empty space in the window to go to the parent folder. + +To enable this feature, go to Edit > Preferences > Behaviour and toggle on the option as shown in the screenshot below. + +![Double Click on Blank Area to go to Parent Folder][4] + +### 5. Compress files and folders + +This is not a secret really. Almost all file managers have this option as far as I know. + +Right click on a file or folder and you get the Compress option to create an archive file. + +![Compress Option in Right Click Context Menu][5] + +You can choose between formats like .7z, .tar, .zip to .apk, .epub. etc. Some compression methods like epub requires their own defined formats to succeed. + +![Compress Options][6] + +Some compression formats support password protection, encryption and splitting, as shown in the above screenshot. + +If you did not find this option, you could install the package nemo-fileroller: + +``` +sudo apt install nemo-fileroller +``` + +### 6. Configure the right-click context menu + +By default, there are many options in the right-click context menu. If you are one of those users who want to control what appears on your right-click menu, this is the feature for you. + +You can access this setting from Edit > Preferences > Context Menus: + +![Configure Right Click Context Menu][7] + +Here you can toggle on or off various options you want to appear when you right-click anywhere. You can now populate your right-click menu with features you use frequently. + +### 7. Rotate and resize images with right click + +To enable this feature, you need to install nemo-image-converter package. + +``` +sudo apt install nemo-image-converter +``` + +Restart Nemo and you can access the additional options right within the right-click context menu. + +![Rotate or Resize Images in Nemo File Manager][8] + +### 8. Change folder colours and add emblems + +The feature to change folder colour was preinstalled on my Linux Mint 21. To change individual folder colour, right-click on the file and change colour from the context menu. + +![Change Individual Folder Color][9] + +If you don’t see it, you can install the extension: + +``` +sudo apt install folder-color-switcher +``` + +Another cool feature is to add emblems to files and folders. To give an emblem to a file or folder, right-click and go to the properties dialog box. + +From this, select the emblems tab and add whatever emblem you like. + +![Select Emblems for Files or Folders][10] + +If it’s not installed by default, you can install it by: + +``` +sudo apt install nemo-emblems +``` + +### 9. Verify checksum of files + +There are dedicated tools to [verify checksum of files in Linux][11]. You can also check hashes in the Nemo file manager with nemo-gtkhash extension. + +``` +sudo apt install nemo-gtkhash +``` + +Now quit nemo and re-open. Select the file to check hash and go to the **Digests** tab in properties. + +![Check Hash Checksum of File with Nemo GTKHash][12] + +It will take some time to check the hash and a tick mark, as shown in the above screenshot, indicates a successful result. + +### 10. Use advanced permissions in properties dialog box + +Now, you can view amore detailed an an intuitive permission dialog box for folders and file. To get this, you need to go to Edit > Preferences > Display and toggle the button on as shown below: + +![Show Advanced Permission in Property Dialog Box][13] + +Now, instead of the old, drop-down menu interface, you get a neat-looking permission manager with a toggle button interface and more options to tweak. + +![Edit Advanced Permissions in Property Dialog Box][14] + +### 11. Embed a terminal + +Fancy a terminal? You can get it right inside the Nemo file manager. + +Each time you change directories, a cd command is initiated and the location in the embedded terminal is also changed. + +To get this function, you need to install nemo-terminal package. + +``` +sudo apt install nemo-terminal +``` + +Now restart Nemo and you get an embed terminal on the top side. + +![Nemo Embedded Terminal][15] + +### 12. Get the list of recently visited directories + +There is the “Recent” option in the places section, where you can see the recently accessed files. But what about the recently visited folders? + +In Nemo, on the top left, **right-click on the back arrow** to get the list of previously visited folders. + +![Right Click on Top Left Back Arrow to Access Recent Folders][16] + +### 13. Show the number of items in folders + +You can show how many files and folders are inside a folder in Nemo File Manager. + +![Show Number of Items Inside Folder Using Nemo File Manager][17] + +It is a built-in feature. Go to Edit > Preferences > Display and select Size as shown in the screenshot below: + +![Show Folder Item Count and File Sizes in Nemo Preferences][18] + +### 14. Nemo media columns + +This is a small addition, useful only if you use the ‘List View’ in Nemo. It provides additional column options in the list view. + +![default list columns available in nemo][19] + +![more media columns added to nemo list view][20] + +To get this feature, you need to install nemo-media-columns: + +``` +sudo apt install nemo-media-columns +``` + +![More Columns View in Nemo List View][21] + +### 15. Nemo Scripts and Actions (for expert users) + +Here are a few advanced features that enhances the overall function of nemo file manager by adding user defined functions. + +#### Nemo Scripts + +With this feature, users can create their own shell scripts for certain functionality they wish and embed them into the right-click context menu. + +You need to save your shell scripts in ~/.local/share/nemo/scripts directory. With the help of tools like [zenity][22], you can even give a GTK interface for your script. + +Let me show an example. + +Below is a script adding a color palette to select colour and copy the colour to [copyq clipboard manager][23]. Save the file with name Color in the above-mentioned directory and give it executable permission. Copyq and Zenity should be installed. + +``` +#!/bin/bash +name=$(zenity --color-selection --show-palette --title Color\ Select) +copyq add $name +``` + +![Nemo Scripts in Right Click Context][24] + +![Color Select with Zenity][25] + +The selected color code will now be accessible from the clipboard. + +#### Nemo Actions + +This is similar to Nemo Scripts. Here, you can define a script in the form of a key-value pair for additional functions over selected files. + +The files should have extension `.nemo_action` and they should be located in `~/.local/share/nemo/actions` + +Here is a snippet of code provided in the Linux Mint Community. It creates an option to reduce the image size by 50%. + +Save this script as reduce_50.nemo_action in the above-mentioned directory and you will find the option in right-click context menu + +``` +[Nemo Action] +Active=true +Name=Reduce Image 50% +Comment=Reduce the size of the image by 50% +Exec=ffmpeg -i %F -vf scale=iw/2:-1 copy-50%f +Icon-Name=image +Selection=any; +Extensions=jpg;jpeg;png;bmp;gif;tiff;raw; +Terminal=true +``` + +![Reduce Image by 50 Percent Context Menu Entry][26] + +You can see the resultant file with the slightly modified name. + +![Image Reduced with Nemo Actions Result][27] + +This way, you effectively enhance Nemo file manager functionality as per your requirement. + +### More tweaks and extensions + +Apart from numerous extensions, there are other built-in features in Nemo like integrations with cloud services, other handy right-click menu items etc. + +It is not necessary for you to install and use all of the features mentioned above. You can handpick those that suit your needs. + +You can also **toggle on/off any of the installed extensions** by going to Edit > Plugins (or Alt + P). + +![Access Plugins from Menu][28] + +Here, you can manage your installed plugins, actions, scripts etc. This enables you to activate or deactivate certain features without the hassle of installing/uninstalling packages. Every feature can be toggled on or off as needed. Just restart Nemo to get the effect. + +![Plugins View and Manage in Nemo][29] + +When we last published the [Nautilus tweak article][30], a few readers requested a similar one for Nemo. And hence this article came into existence. + +I hope you find the tweaks interesting. If you have suggestions or questions, please leave a comment. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/nemo-tweaks/ + +作者:[sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/file-preview-in-nemo-file-manager-with-nemo-preview.png +[2]: https://itsfoss.com/wp-content/uploads/2022/08/click-on-file-name-twice-to-rename-it.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/nemo-file-manager-bulk-rename.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/double-click-on-blank-area-to-go-to-parent-folder.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/compress-option-in-right-click-context-menu.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/compress-options.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/configure-right-click-context-menu.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/rotate-or-resize-images-in-nemo-file-manager.png +[9]: https://itsfoss.com/wp-content/uploads/2022/08/change-individual-folder-color.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/select-emblems-for-files-or-folders.png +[11]: https://itsfoss.com/checksum-tools-guide-linux/ +[12]: https://itsfoss.com/wp-content/uploads/2022/08/check-hash-checksum-of-file-with-nemo-gtkhash.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/show-advanced-permission-in-property-dialog-box.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/edit-advanced-permissions-in-property-dialog-box.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/nemo-embedded-terminal.png +[16]: https://itsfoss.com/wp-content/uploads/2022/08/right-click-on-top-left-back-arrow-to-access-recent-folders.png +[17]: https://itsfoss.com/wp-content/uploads/2022/08/show-number-of-items-inside-folder-using-nemo-file-manager.png +[18]: https://itsfoss.com/wp-content/uploads/2022/08/show-folder-item-count-and-file-sizes-in-nemo-preferences.png +[19]: https://itsfoss.com/wp-content/uploads/2022/08/default-list-columns-available-in-nemo.png +[20]: https://itsfoss.com/wp-content/uploads/2022/08/more-media-columns-added-to-nemo-list-view.png +[21]: https://itsfoss.com/wp-content/uploads/2022/08/more-columns-view-in-nemo-list-view.png +[22]: https://help.gnome.org/users/zenity/stable/ +[23]: https://itsfoss.com/copyq-clipboard-manager/ +[24]: https://itsfoss.com/wp-content/uploads/2022/08/nemo-scripts-in-right-click-context.png +[25]: https://itsfoss.com/wp-content/uploads/2022/08/color-select-with-zenity.png +[26]: https://itsfoss.com/wp-content/uploads/2022/08/reduce-image-by-50-percent-context-menu-entry.png +[27]: https://itsfoss.com/wp-content/uploads/2022/08/image-reduced-with-nemo-actions-result.png +[28]: https://itsfoss.com/wp-content/uploads/2022/08/access-plugins-from-menu.png +[29]: https://itsfoss.com/wp-content/uploads/2022/08/plugins-view-and-manage-in-nemo.png +[30]: https://itsfoss.com/nautilus-tips-tweaks/ From 1ecf0975ca8842a94b7c4bca378a5ff715f7500f Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:41:34 +0800 Subject: [PATCH 0882/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220825=20Using=20eBPF=20for=20network=20observabil?= =?UTF-8?q?ity=20in=20the=20cloud.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... for network observability in the cloud.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sources/tech/20220825 Using eBPF for network observability in the cloud.md diff --git a/sources/tech/20220825 Using eBPF for network observability in the cloud.md b/sources/tech/20220825 Using eBPF for network observability in the cloud.md new file mode 100644 index 0000000000..8cf08c70ee --- /dev/null +++ b/sources/tech/20220825 Using eBPF for network observability in the cloud.md @@ -0,0 +1,164 @@ +[#]: subject: "Using eBPF for network observability in the cloud" +[#]: via: "https://opensource.com/article/22/8/ebpf-network-observability-cloud" +[#]: author: "Pravein Govindan Kannan https://opensource.com/users/praveingk" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Using eBPF for network observability in the cloud +====== +eBPF extends the Linux kernel to help you monitor the cloud. + +Observability is the ability to know and interpret the current state of a deployment, and a way to know when something is amiss. With cloud deployments of applications as microservices on Kubernetes and OpenShift growing, observability is getting a lot of attention. Many applications come with strict guarantees, such as service level agreements (SLA) for downtimes, latency, and throughput, so network-level observability is a highly imperative feature. Network-level observability is provided by several orchestrators, either natively or by using plugins and operators. + +Recently, [eBPF][2] (extended Berkeley Packet Filter) emerged as a popular option to implement observability at the end-hosts kernel, due to performance and flexibility. This method enables custom programs to be hooked at certain points along the network data path (for instance, a socket, TC, and XDP). Several open source eBPF-based plugins and operators have been released, and each can be plugged into end-host nodes to provide network observability through your cloud orchestrator. + +### Existing Observability Tools + +The core component of an observability module is how it non-invasively collects the necessary data. To that end, using instrumented code and measurements, we've studied how the design of the eBPF datapath affects performance of an observability module, and the workloads it's monitoring. The artifacts of our measurements are open source and available in our [research Git repo][3]. We're also able to provide some useful insights you can use when designing a scalable and high-performance eBPF monitoring data path. + +Here are existing open source tools available to achieve observability in the context of both the network and the host: + +**Skydive** + +[Skydive][4] is a network topology and flow analyzer. It attaches probes to nodes to collect flow-level information. The probes are attached using PCAP, `AF_Packet`, [Open vSwitch][5], and so on. Instead of capturing the entire packet, Skydive uses eBPF to capture the flow metrics. The eBPF implementation, attached to the socket hook-point, uses a hash map to store flow headers and metrics (packets, bytes, and direction.) + +**libebpfflow** + +[Libebpfflow][6] is a network visibility library using eBPF to provide network visibility. It hooks on to various points in a host stack, like kernel probes (`inet_csk_accept`, `tcp_retransmit_skb` ) and tracepoints (`net:netif_receive_skb`, `net:net_dev_queue` ) to analyze TCP/UDP traffic states, RTT, and more. In addition, it provides process, and the container mapping for the traffic it analyzes. Its eBPF implementation uses perf event buffer to notify TCP state change events to userspace. For UDP, it attaches to the tracepoint of the network device queue and uses a combination of LRU hash map and perf event buffer to store UDP flow metrics. + +**eBPF Exporter** + +Cloudflare's [eBPF Exporter][7] provides APIs for plugging in custom eBPF code to record custom metrics of interest. It requires the entire eBPF C code (along with the hook point) to be appended to a YAML file for deployment. + +**Pixie** + +[Pixie][8] uses bpftrace to trace syscalls. It uses TCP/UDP state messages to collect the necessary information, which is then sent to Pixie Edge Module (PEM). In the PEM, the data is parsed according to the detected protocol and stored for querying. + +**Inspektor** + +[Inspektor][9] is a collection of tools for Kubernetes cluster debugging. It aids the mapping of low-level kernel primitives with Kubernetes resources. It's added as a daemonset on each node of the cluster to collect traces using eBPF for events such as syscalls. These events are written to the perf ring buffer. Finally, the ring buffer is consumed retrospectively when a fault occurs (for example, upon a pod crash). + +**L3AF** + +[L3AF][10] provides a set of eBPF packages that can be packaged and chained together using tail-calls. It provides a network observability tool, which mirrors traffic based on the flow-id to the user-space agent. Additionally, it also provides an IPFIX flow exporter by storing flow records on a hash map in the eBPF datapath. + +**Host-INT** + +[Host-INT][11] extends in-band Network Telemetry support to support telemetry for host network stack. Fundamentally, INT embeds the switching delay incurred for each packet into an INT header in the packet. Host-INT does the same for the host network stack between two hosts. Host-INT has two data-path components: a source and sink based on eBPF. The source runs on a TC hook of the sender host's interface, and the sink runs on an XDP hook of the receiver host’s interface. At the source, it uses Hash maps to store flow statistics. Additionally, it adds in an INT header with an ingress/egress port, timestamps, and so on. At the sink, it uses a perf array to send statistics to a sink userspace program on each packet arrival, and sends the packet to the kernel. + +**Falco** + +Falco is a cloud-native runtime security project. It monitors system calls using eBPF probes and parses them at runtime. Falco has provisions to configure alerts on activities such as privileged access using privileged containers, read and write to kernel folders, user addition, password change etc. Falco comprises an userspace program as a CLI tool to specify the alerts and obtain the parsed syscall output and a falco driver built over libscap and libsinsp libraries. For syscalls probes falco uses eBPF ring buffers. + +**Cilium** + +Observability in [Cilium][12] is enabled using eBPF. Hubble is a platform with eBPF hooks running on each node on a cluster. It helps draw insights on services communicating with each other to build a service dependency graph. It also aids Layer 7 monitoring to analyze for e.g. the HTTP calls as well as Kafka topics, Layer 4 monitoring with TCP retransmission rate, and more. + +**Tetragon** + +Tetragon is an extensible framework for security and observability in Cilium. The underlying enabler for tetragon is eBPF with data stored using ring buffers but, along with monitoring eBPF is leveraged to enforce policy spanning various kernel components such as virtual file system (VFS), namespace, system call. + +**Aquasecurity Tracee** + +[Tracee][13] is an event tracing tool for debugging behavioral patterns built over eBPF. Tracee has multiple hook points at tc, kprobes ,etc to monitor and trace the network traffic. At tc hook, it uses a ring buffer (perf) to submit packet-level events to the user-space. + +### Revisiting the design of Flow metric agent + +While motive and implementation differ across different tools, the central component common to all observability tools is the data structure used to collect the observability metrics. While different tools adopt different data structures to collect the metrics, there are no existing performance measurements carried out to see the impact of the data structure used to collect and store observability metrics. To bridge this gap, we implement template eBPF programs using different data structures to collect the same flow metrics from host traffic. We use the following data structures (called Maps) available in eBPF to collect and store metrics: + +1. Ring Buffer +2. Hash +3. Per-CPU Hash +4. Array +5. Per-CPU Array + +### Ring Buffer + +Ring buffer + +is a shared queue between the eBPF datapath and the userspace, where eBPF datapath is the producer and the userspace program is the consumer. It can be used to send per-packet "postcards" to userspace for aggregation of flow metrics. Although this approach could be simple and provide accurate results, it fails to scale because it sends postcards per packet, which keeps the userspace program in a busy loop. + +### Hash and Per-CPU Hash map + +(Per-CPU) Hash map could be used in the eBPF datapath to aggregate per-flow metrics by hashing on the flow-id (for example, 5 tuple IP, port, protocol) and evicting the aggregate information to userspace upon flow completion/inactive. While this approach overcomes the drawbacks of a ring buffer by sending postcards only once per flow and not per packet, it has some disadvantages. + +First, there is a possibility of multiple flows being hashed into the same entry, leading to inaccurate aggregation of the flow metrics. Secondly, the hash map necessarily has limited memory for the in-kernel eBPF datapath, so it could be exhausted. Thus userspace program has to implement eviction logic to constantly evict flows upon a timeout. + +### Array-based map + +(Per-CPU) Array-based map can also be used to store per-packet postcards temporarily before eviction to user space, although not an obvious option. The use of arrays poses an advantage by storing per-packet information in the array until it's full and then flushing to userspace only when it's full. This way, it could improve the busy-loop cycle of the userspace compared to using ringbuffer per-packet. Additionally, it does not have the problem of hash collisions of hash map. However, it is complicated to implement because it would require multiple redundant arrays to store per-packet postcards when the main array is flushing out its contents to userspace. + +### Measurements + +So far, we have studied the options that can be used to implement flow metric collection using several data structures. Now it's time to study the performance achieved using a reference implementation of flow metric postcards using each of the above data structures. To do that, we implemented representative eBPF programs which collect flow metrics. The code we used is available on our [Git repo][14]. Further, we conducted measurements by sending traffic using a custom-built UDP-based packet generator built on top of [PcapPlusPlus][15]. + +This graphic describes the experiment setting: + +![eBPF test environment][16] + +Image by: (Kannan/Naik/Lev-Ran, CC BY-SA 4.0) + +The observe agent is the eBPF datapath performing flow metric collection, hooked at the tc hook-point of the sender. We use two bare-metal servers connected over a 40G link. Packet generation is done using 40 separate cores. To bring these measurements in perspective, libpcap-based Tcpdump which could be used to collect similar flow information. + +#### Single Flow + +We initially run the test with single-flow UDP frames. A single flow test can show us the amount of single flow traffic burst the observe agent can tolerate. As shown in the figure below, native performance without any observe agent is about 4.7 Mpps (Million Packets Per Second), and with [tcpdump][17] running, the throughput falls to about 2 Mpps. With eBPF, we observed that the performance varies from 1.6 Mpps to 4.7 Mpps based on the data structure used to store the flow metrics. Using a shared data structure such as HashMap, we observed the most significant drop in performance for a single-flow, because each packet writes to the same entry in the map regardless of the CPU it originated from. + +Ringbuffer performs slightly better than a single HashMap for a single flow burst. Using a Per-CPU Hash Map, we observed a good increase in throughput performance, because packets arriving from multiple CPUs no longer contend for the same map entry. However, the performance is still half the native performance without any *observe agent*. (Note that this performance is without handling hash collisions and evictions.) + +With (per-cpu) arrays, we see a significant increase in the throughput of a single flow. We can attribute this to the fact there is literally no contention between packets since each packet takes up a different entry in the array incrementally. However, the major drawback in our implementation is we do not handle the array flushing upon full, while it performs writes in a circular fashion. Hence, it stores the last few packet records observed at any point in time. Nevertheless, it provides us the spectrum of performance gains we can achieve by appropriately applying the data structure in the eBPF datapath. + +![eBPF data][18] + +Image by: (Kannan/Naik/Lev-Ran, CC BY-SA 4.0) + +#### Multi-Flow + +We now test the performance of the eBPF observe agents with multiple flows. We generated 40 different UDP flows (1 flow per core) by instrumenting the packet generator. Interestingly, with multiple flows, we observed a stark difference in performance of per-CPU hash and hash map as compared to single flows. This could be attributed to the reduction in contention for a single hash entry.  However, we do not see any performance improvement with ringbuffer since regardless of the flows, the contention channel i.e. ringbuffer is fixed. Array performs marginally better with multiple flows. + +### Lessons learned + +From our studies, we've derrived these conclusions: + +1. Ringbuffer-based per-packet postcards are not scalable, and they affect performance. +2. Hash Maps limit the "burstiness" of a flow, in terms of packets processed per second. Per-CPU hashmaps perform marginally better. +3. To handle short bursts of packets within a flow, using an array map to store per-packet postcards would be a good option given array can store a few packet 10s or 100s of packet records. This would ensure that the observe agent could tolerate short bursts without degrading performance. + +In our research, we analyzed monitoring of packet-level and flow-level information between multiple hosts in the cloud. We started with the premise that the core feature of observability is how the data is collected in a non-invasive manner. With this outlook, we surveyed existing tools, and tested different methodologies of collecting observability data in the form of flow metrics from packets observed in the eBPF datapath. We studied how the performance of flows were affected by the data structure used to collect flow metrics. + +Ideally, to minimize the performance drop of the host traffic due to the overhead of observability agent, our analysis points to a mixed usage of per-cpu array and per-cpu hash data structures. Both  of the data-structures  could be used together to handle short bursts in flows, using an array and aggregation using a per-CPU hash map. We're currently working on the design of an observability agent ([https://github.com/netobserv/netobserv-ebpf-agent][19]), and plan to release a future article with the design details and performance analysis compared to existing tools. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/ebpf-network-observability-cloud + +作者:[Pravein Govindan Kannan][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/praveingk +[b]: https://github.com/lkxed +[2]: https://ebpf.io/ +[3]: https://github.com/netobserv/ebpf-research/tree/main/ebpf-measurements +[4]: https://github.com/skydive-project/skydive +[5]: https://www.redhat.com/sysadmin/getting-started-sdn +[6]: https://github.com/ntop/libebpfflow +[7]: https://github.com/cloudflare/ebpf_exporter +[8]: https://github.com/pixie-io/pixie +[9]: https://github.com/kinvolk/inspektor-gadget +[10]: https://github.com/l3af-project/eBPF-Package-Repository/blob/main/ipfix-flow-exporter/bpf_ipfix_egress_kern.c +[11]: https://github.com/intel/host-int +[12]: https://github.com/cilium/tetragon +[13]: https://github.com/aquasecurity/tracee +[14]: https://github.com/netobserv/ebpf-research/tree/main/ebpf-measurements +[15]: https://pcapplusplus.github.io/ +[16]: https://opensource.com/sites/default/files/2022-08/ebpf-tests.png +[17]: https://sysadmin.prod.acquia-sites.com/sysadmin/troubleshoot-dhcp-nmap-tcpdump-and-wireshark +[18]: https://opensource.com/sites/default/files/2022-08/ebpf-test-throughput.png +[19]: https://github.com/netobserv/netobserv-ebpf-agent From 907869eeb907eccb5343af2173613b9c28dd9e5f Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 25 Aug 2022 21:44:12 +0800 Subject: [PATCH 0883/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220825=20Happy=20birthday,=20Linux!=20Here=20are?= =?UTF-8?q?=206=20Linux=20origin=20stories.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Linux! Here are 6 Linux origin stories.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md diff --git a/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md b/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md new file mode 100644 index 0000000000..ba0c619a0b --- /dev/null +++ b/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md @@ -0,0 +1,131 @@ +[#]: subject: "Happy birthday, Linux! Here are 6 Linux origin stories" +[#]: via: "https://opensource.com/article/22/8/linux-birthday-origin-stories" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Happy birthday, Linux! Here are 6 Linux origin stories +====== +Our contributors share their first Linux experience on the 31st anniversary of the Linux kernel. + +On August 25, 1991, Linux 0.01 was announced. All of us have a story to tell about Linux. I told my story a couple of months ago, but for those who weren't here: My first exposure to Linux was when my grassroots hospice organization moved from paper to digital charting. We didn't have the funding to get something proprietary, but the IT department had Linux set up on our old machine, and we used the GNOME desktop and OpenOffice to start our journey in creating digital assets. + +I recently asked some Opensource.com authors this simple question: + +*What was your first Linux experience?* + +### From VAX to Linux + +For my junior year of high school, I was shipped off to a state-run "nerd farm" (that's the North Carolina School of Science and Mathematics.) Our first day on campus, the juniors were each assigned a senior big brother or sister. My senior big sister ditched me because she had tickets to go to a big outdoor music festival with her boyfriend, but when they came back all sunburned, we hung out in my mostly empty dorm room eating takeout on the floor. That was when I first met Matt. + +As the year wound on, Matt showed me how to help as a student sysadmin changing backup reels for the VAX mainframe and doing basic tasks on the "big" workstation that doubled as a campus-wide UNIX server. He had a PC in his room, with GNU and XWindows on a Minix kernel, but found this cool new alternative that some Finnish student had started posting the source code for on Usenet. I knew, right then and there, that was my future. + +When I got home for the summer, the first thing I did was buy a shiny new 486 with some of my savings from odd jobs, fired up a SLIP connection through our local BBS, and downloaded and decoded all the bits and pieces I'd need to bootstrap and compile Linux 0.96. + +Matt and I mostly lost touch after he graduated, but I'll always owe him for introducing me to the operating system kernel I'd use for the rest of my life. I think of him every time I see that tattered old copy of **Running Linux** adorning my office shelf. + +The "Matt" in this story is Matthew D. Welsh. After we lost touch, he became the original maintainer of [The Linux Documentation Project][2], and the author of the first edition of the O'Reilly Press book **Running Linux**. + +**[—Jeremy Stanley][3]** + +### Computer club + +Friends at a [computer club][4] inspired me to try Linux. + +I used Linux to help students learn more about other operating systems from 2012 to 2015, and I would say that Linux has taught me more about computers in general. + +It has probably affected my "volunteer career" because to this day I write articles about being a neurodiverse person in the Linux world. I also attend and join different Linux events and groups, so I've had access to a community I probably wouldn't have known otherwise. + +**[—Rikard Grossman-Nielsen][5]** + +### Galaxy + +My Linux story started a long time ago in a galaxy far, far away. In the early 90s, I spent a year in the US as a high school student. Over there, I had access to e-mail and the Internet. When I came back home to Hungary, I finished high school without any Internet access. There were no public Internet providers in Hungary at that time. Only higher education, and some research labs, had Internet. But in 1994, I started university. + +The very first wee of school, I was at the IT department asking for an email address. At that time, there was no Gmail, Hotmail, or anything similar. Not even teachers got an email address automatically at the university. It took some time and persistence, but I eventually received my first university email address. At the same time, I was invited to work in the faculty-student IT group. At first, I got access to a Novell and a FreeBSD server, but soon I was asked to give Linux a try. + +It was probably late 1994 when I installed my first Linux at home. It was Slackware, from a huge pile of floppy disks. At first, I only did a minimal installation, but later I also installed X so I could have a GUI. In early 1995, I installed my first-ever Linux server at the university on a spare machine, which was also the first Linux server at the university. At that time, I used the [Fvwm2][6] window manager both at home and at the university. + +At first, I studied environmental protection at the university, but my focus quickly became IT and IT security. After a while, I was running all the Linux and Unix servers of the faculty. I also had a part time job elsewhere, running web and e-mail servers. I started a PhD about an environmental topic, but I ended up in IT. I've worked with FreeBSD and Linux ever since, helping [sudo][7] and `syslog-ng` users. + +**[—Peter Czanik][8]** + +### Education + +I got introduced to Linux in the late 1990s by my brother and another friend. My first distro was Red Hat 5, and I didn't like it at the time. I couldn't get a GUI running, and all I could see was the command-line, and I thought, "This is like MS-DOS." I didn't much care for that. + +Then a year or more passed, and I picked up a copy of Red Hat 6.1 (I still have that copy) and got it installed on and HP Vectra with a Cyrix chip installed. It had plenty of hard disk space, which was fortunate because the Red Hat Linux software came on a CD. I got the GUI working, and set it up in our technology office at the school district I was employed at. I started experimenting with Linux and used the browser and Star Office (an ancestor of the modern [LibreOffice][9]), which was part of the included software. + +A couple years later, our school district needed a content filter, and so I created one on an extra computer we had in our office. I got Squid, Squidguard, and later Dansguardian installed on Linux, and we had the first self-hosted open source content filter in a public school district in Western New York State. Using this distribution, and later Mandrake Linux (an ancestor of [Mageia][10] Linux) on old Pentium II and Pentium III computers, I set up devices that used [SAMBA][11] to provide backup and profile storage for teachers and other staff. Teaming with members of area school districts I set up spam filtering for a fraction of the cost that proprietary solutions were offering at the time. + +Franklinville Central School District is situated in an area of high rural poverty. I could see that using Linux and open source software was a way to level the playing field for our students, and as I continued to repurpose and refurbish the "cast-off" computers in our storage closets, I built a prototype Linux terminal server running Fedora Core 3 and 4. The software was part of the K12LTSP project. Older computers could be repurposed and PXE booted from this terminal server. At one point, we had several computer labs running the LTSP software. Our staff email server ran on RHEL 2.1, and later RHEL 3.0. + +That journey, which began 25 years ago, continues to this day as I continue to learn and explore Linux. As my brother once said, "Linux is a software Erector set." + +**[—Don Watkins][13]** + +### Out in the open + +My first experience with Linux was brief, and it involved a lot of floppies. As I recall, it was entertaining until my dear wife discovered that her laptop no longer had Windows 98 installed (she was only moderately relieved when I swapped back in the original drive and the "problem" disappeared). That was around 1998, with a Red Hat release that came with a book and a poor unsuspecting ThinkPad. + +But really, at work I always had a nice Sun Workstation on my desktop, so why bother? In 2005, we decided to move to France for a while, and I had to get a (usefully) working Toshiba laptop, which meant Linux. After asking around, I decided to go with Ubuntu, so that was my first "real" experience. I think I installed the first distro (codenamed Warty Warthog,) but soon I was on the latest. There were a few tears along the way, caused mostly by Toshiba's choice of hardware, but once it was running that darned laptop was every bit as fast, and way more functional, for me than the old Sun. Eventually, we returned home, and I had a nice new Dell PC desktop. I installed Feisty Fawn, and I've never looked back. + +I've tried a few other distros, but familiarity has its advantages, particularly when configuring stuff at the lowest of levels. Really though, if forced to switch, I think I would be happy with any decent Linux distro. + +At a few points in time, I have had to do "kernel stuff", like bisecting for bugs and fiddling around with device drivers. I really can't remember the last time something that complicated was necessary, though. + +Right now, I have two desktops and one laptop, all running Ubuntu 22.04, and two aging Cubox i4-pro devices running Armbian, a great Debian-based distro created for people using single-board computers and similar devices. I'm also responsible for a very small herd of various virtual private running several distros, from CentOS to various versions of Ubuntu. That's not to mention a lot of Android-based stuff laying around, and we should recognize that it's Linux, too. + +What really strikes me, as I read this back over, is how weird it all must sound to someone who has never escaped the clutches of a proprietary operating system. + +**[—Chris Hermansen][15]** + +### Getting involved + +The first computer I bought was an Apple, the last Apple was a IIe. I got fed up with the strong proprietorship of Apple over the software and hardware, and switched to an Amiga, which had a nice GUI (incidentally, I have never owned another Apple product.) + +Amiga eventually crumbled, and so I switched to Windows—what an awful transition! About this time, somewhere in the mid- to latter-90s, I was finding out about Linux, and began reading Linux magazines and how to set up Linux machines. I decided to set up a dual-boot machine with Windows, then bought Red Hat Linux, which at the time came on a number of floppy disks. The kernel would have been 2.0-something. I loaded it on my hard drive, and Presto! I was using Linux—the command-line. At that time, Linux didn't read all of your hardware and make automatic adjustments, and it didn't have all the drivers you needed, as it does today. + +So next came the process of looking up in BBSes or wherever to find out where to get drivers for the particular hardware I had, such as the graphics chip. Practically, this meant booting into Windows, saving the drivers to floppy disk, booting back into Linux, and loading the drivers to the hard drive. You then had to hand-edit the configuration files so that Linux knew which drivers to use. This all took weeks to accomplish, but I can still recall the delight I felt when I typed `startx`, and up popped X-Windows!! + +If you wanted to update your kernel without waiting for and buying the next release, you had to compile it yourself. I remember I had to shut down every running program so the compiler didn't crash. + +It's been smooth sailing ever since, with the switch to Fedora (then called "Fedora Core"), and the ease of updating software and the kernel. + +Later, I got involved with the [Scribus][16] project, and I started reading and contributing to the mail list. Eventually, I began contributing to the documentation. Somewhere around 2009, Christoph Schaefer and I, communicating over the internet and sharing files, were able to write **Scribus, The Official Manual** in the space of about 9 months. + +**[—Greg Pittman][17]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/linux-birthday-origin-stories + +作者:[AmyJune Hineline][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/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/rh_003499_01_linux31x_cc.png +[2]: https://tldp.org/ +[3]: https://opensource.com/users/fungi +[4]: https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective +[5]: https://opensource.com/users/rikardgn +[6]: https://opensource.com/article/19/12/fvwm-linux-desktop +[7]: https://opensource.com/article/22/8/debunk-sudo-myths +[8]: https://opensource.com/users/czanik +[9]: https://opensource.com/article/21/9/libreoffice-tips +[10]: http://mageia.org +[11]: https://opensource.com/article/21/12/file-sharing-linux-samba +[12]: https://opensource.com/article/22/5/essential-linux-commands +[13]: https://opensource.com/users/don-watkins +[14]: https://www.redhat.com/sysadmin/linux-kernel-tuning +[15]: https://opensource.com/users/clhermansen +[16]: http://scribus.net +[17]: https://opensource.com/users/greg-p From 3c87b2e6ad00d7d9f50582cc55729b412b056a4e Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Thu, 25 Aug 2022 22:06:25 +0800 Subject: [PATCH 0884/3123] Update 20220711 Why Agile coaches need internal cooperation.md --- ...Agile coaches need internal cooperation.md | 31 +------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/translated/talk/20220711 Why Agile coaches need internal cooperation.md b/translated/talk/20220711 Why Agile coaches need internal cooperation.md index 07446219e8..252079faa3 100644 --- a/translated/talk/20220711 Why Agile coaches need internal cooperation.md +++ b/translated/talk/20220711 Why Agile coaches need internal cooperation.md @@ -16,92 +16,63 @@ 图片来自 Mapbox Uncharted ERG, [CC-BY 3.0 US][2] 如果你是一个敏捷教练,你可能会作为团队或部门的外部成员鼓舞成员。然而,许多敏捷教练忽视了内部合作的重要性。这不一定是一个你熟悉的术语,所以请允许我解释一下。 - ### 什么是内部合作? - 作为一个敏捷教练,你不是独自工作,你试图在你所照顾的团队中找到一位搭档,这个搭档你希望: - * 承担未来所有或大部分的敏捷转型。 * 找到所有可能的机会进行系统改进和团队优化。 * 要有自我激励。 * 不被你管理;你把你的热情和愿景委托给他们。 - 当然,也许你不需要这样的人,因为理论上来讲,团队中的每个人都是你的理想人选,并且每个人都是自驱的。或者也许你的整个团队会在一夜之间神奇地变成你想要的样子。 - 现实情况是:大多数时候,你需要一个搭档,一个内部代理人。有人要保持敏捷精神的活力,无论你是否在那里鼓励它。 - ### 内部合作是必需的 - 获得你所辅导的团队的认同并不是一种奢侈,而是一种要求。如果你是团队中唯一的敏捷实践者,那么你的团队就不是敏捷的! 那么,你该如何培养这种内部合作呢? - #### 明确责任 - 敏捷应该是一个团队的努力。受益者是团队本身,但团队也必须承担转型的重任。敏捷教练的作用是鼓舞人心,增强力量,但变革不会只发生在一个人身上。这就是为什么团队必须学会自己考虑和解决问题。一个团队必须有自己的引擎(你的敏捷伙伴就是这样一个引擎),而不是依靠敏捷教练的外力。引擎想要解决问题,在敏捷教练的帮助下,他们的能力和思维方式得到丰富和提高。 - 最好是一开始就有一个引擎,但这并不总是可能的。越早越好,所以从一开始就寻找盟友。 - #### 了解团队 - 当你找到一个合作伙伴时,你获得了一个比你更了解团队情况的人。一个好的合作伙伴从内部了解团队,并在你无法达到的层面上与之沟通。无论你作为一个敏捷教练有多优秀,你必须认识到,一个优秀的敏捷伙伴在 "本地化 "方面有独特的优势。 - 最好的方法不是 *敏捷教练为团队定制一个实施计划,然后由团队负责执行* 。在我看来,在敏捷教练的支持下,敏捷伙伴应该与团队一起制定最适合其需求的计划。接下来,在频繁反馈的情况下尝试执行这些计划,并根据需要不断调整。 - 你继续观察进展,观察团队成员是否在敏捷原则方面出现动摇,并适时给予他们支持。当然,当出现问题时,你往往要保持沉默,让团队碰壁,并从他们的挫折中学习。其他时候,插手提供指导是正确的。 - ### 敏捷教练还有必要吗 - 绝对有必要! - 敏捷是一项团队工作。每个人都必须通过合作来找到可行的流程。解决方案往往是由敏捷教练和合作伙伴之间的思想碰撞引发的。然后,合作伙伴可以准确地得到一个敏捷理论在日常工作中的应用。合作伙伴通过解决方案理解了敏捷理论的精髓。 - 作为一名敏捷教练,你必须有扎实的理论基础,并有能力将理论应用于具体场景。表面上看,你负责理论,而你的敏捷伙伴则负责实践。然而,敏捷教练绝不能是一个扶手椅上的战略家,团队也不应该认为敏捷教练是一个理论家。事实上,敏捷教练必须有意地放开实践部分,以便敏捷伙伴能够接手。 - 陪同团队的意义不应该是推动团队被动地朝着敏捷教练的愿景前进。对你的指导的需求会随着时间的推移而波动,但它不应该也不可能永远持续下去。 - ### 找到一个敏捷伙伴 - 你如何找到你的敏捷伙伴?首先,观察你所辅导的团队,注意任何负责持续改进的人,不管这是否是他们的职责。这个人就是你的敏捷伙伴。 - 如果还没有这样的人,你必须培养一个。一定要选择具有良好项目管理意识的人。我观察到,在传统开发模式下表现出色的团队领导或项目经理,在敏捷环境下可能不是很好的人选。在敏捷管理模式中,你必须有开放的心态,不断追求卓越的意识,灵活的方法,丰富的知识,以及强大的自我激励。 - ### 一起做敏捷的人 - 不要羞于引入合作伙伴来帮助你的工作和沟通。相反,找到愿意合作的伙伴,一起努力使你的组织成为一个敏捷的组织。 - *[本文翻译自 Xu Dongwei 的博客,经授权转载][4]* - -------------------------------------------------------------------------------- -原文: https://opensource.com/article/22/7/agile-coach-internal-cooperation +via: https://opensource.com/article/22/7/agile-coach-internal-cooperation 作者:[Kelsea Zhang][a] 选题:[lkxed][b] From 45a7b34450ec96814aa4966f23f040ae2df27ec2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 25 Aug 2022 22:40:45 +0800 Subject: [PATCH 0885/3123] RP @geekpi https://linux.cn/article-14967-1.html --- .../20220816 A look inside an EPUB file.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) rename {translated/tech => published}/20220816 A look inside an EPUB file.md (64%) diff --git a/translated/tech/20220816 A look inside an EPUB file.md b/published/20220816 A look inside an EPUB file.md similarity index 64% rename from translated/tech/20220816 A look inside an EPUB file.md rename to published/20220816 A look inside an EPUB file.md index 0e27425dc4..d4fd9eae3e 100644 --- a/translated/tech/20220816 A look inside an EPUB file.md +++ b/published/20220816 A look inside an EPUB file.md @@ -3,23 +3,22 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14967-1.html" 深入了解 EPUB 文件 ====== -EPUB 文件是使用开放格式发布内容的好方法。 -![How to find files in Linux][1] +![](https://img.linux.net.cn/data/attachment/album/202208/25/223832eo3gq2o32uz0u0ll.jpg) -图片来源:Lewis Cowles,CC BY-SA 4.0 +> EPUB 文件是使用开放格式发布内容的好方法。 -电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件,是“电子出版物”的缩写。 EPUB 文件受到各种电子阅读器的支持,并且是当今电子书出版的有效标准。 +电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件,它是“电子出版物electronic publication”的缩写。 EPUB 文件受到各种电子阅读器的支持,并且是当今电子书出版的有效标准。 -EPUB 文件格式是基于 XHTML 内容和 XML 元数据的开放标准,包含在 zip 存档中。由于一切都基于开放标准,我们可以使用通用工具来创建或检查 EPUB 文件。让我们探索一个 EPUB 文件以了解更多信息。 [C 编程技巧和窍门指南][2],于今年早些时候在 Opensource.com 上发布,提供 PDF 或 EPUB 格式。 +EPUB 文件格式基于 XHTML 内容和 XML 元数据的开放标准,包含在 zip 存档中。由于一切都基于开放标准,我们可以使用通用工具来创建或检查 EPUB 文件。让我们探索一个 EPUB 文件以了解更多信息。《[C 编程技巧和窍门指南][2]》,于今年早些时候在 Opensource.com 上发布,提供 PDF 或 EPUB 格式。 -因为 EPUB 文件是 zip 文件中的 XHTML 内容和 XML 元数据,所以你可以用 `unzip` 命令在命令行检查 EPUB: +因为 EPUB 文件是放在 zip 文件中的 XHTML 内容和 XML 元数据,所以你可以用 `unzip` 命令在命令行检查 EPUB: ``` $ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub @@ -48,13 +47,13 @@ Length Date Time Name 这个 EPUB 包含很多文件,但其中大部分是内容。要了解 EPUB 文件是如何组合在一起的,请遵循电子书阅读器的流程: -1. 电子书阅读器需要验证 EPUB 文件是否真的是 EPUB 文件。他们通过检查 EPUB 存档根目录中的 `mimetype` 文件来验证文件。该文件仅包含一行描述 EPUB 文件的 MIME 类型: +1、电子书阅读器需要验证 EPUB 文件是否真的是 EPUB 文件。他们通过检查 EPUB 存档根目录中的 `mimetype` 文件来验证文件。该文件仅包含一行描述 EPUB 文件的 MIME 类型: ``` application/epub+zip ``` -2. 为了定位内容,电子书阅读器从 `META-INF/container.xml` 文件开始。这是一个简短的 XML 文档,指示在哪里可以找到内容。对于此 EPUB 文件,`container.xml` 文件如下所示: +2、为了定位内容,电子书阅读器从 `META-INF/container.xml` 文件开始。这是一个简短的 XML 文档,指示在哪里可以找到内容。对于此 EPUB 文件,`container.xml` 文件如下所示: ``` @@ -65,11 +64,12 @@ application/epub+zip ``` -为了使 `container.xml` 文件更易于阅读,我将单行拆分为多行,并添加了一些间距来缩进每行。 XML 文件并不真正关心新行和空格等额外的空白,因此这种额外的间距不会影响 XML 文件。 +为了使 `container.xml` 文件更易于阅读,我将单行拆分为多行,并添加了一些间距来缩进每行。XML 文件并不关心新行和空格等额外的空白,因此这种额外的间距不会影响 XML 文件。 -3. `container.xml` 文件表示 EPUB 的根目录以 OEBPS 目录中的 `content.opf` 文件开头。 OPF 扩展是因为 EPUB 基于 Open Packaging Format,但 `content.opf` 文件实际上只是另一个 XML 文件。 +3、`container.xml` 文件表示 EPUB 的根从 `OEBPS` 目录中的 `content.opf` 文件开始。OPF 扩展名是因为 EPUB 基于 “开放打包格式Open Packaging Format”,但 `content.opf` 文件实际上只是另一个 XML 文件。 + +4、`content.opf` 文件包含一个完整的 EPUB 内容清单,以及一个有序的目录,以及查找每一章或每一节的引用。这个 EPUB 的 `content.opf` 文件很长,因此我将在此仅展示一小部分作为示例。 -4. `content.opf` 文件包含一个完整的 EPUB 内容清单,以及一个有序的目录,以及查找每一章或每一节的参考。这个 EPUB 的 `content.opf` 文件很长,因此我将在此仅展示一小部分作为示例。 XML 数据包含在 `` 块中,该块本身具有 `` 块、`` 数据和包含电子书目录的 `` 块: ``` @@ -100,7 +100,7 @@ XML 数据包含在 `` 块中,该块本身具有 `` 块、` ``` -你可以把数据匹配起来,看看在哪里可以找到每个部分。EPUB 阅读器就是这样做的。例如,目录中的第一项引用了 `section0001`,它在清单中被定义为位于 `sections/section0001.xhtml` 文件中。该文件的名称不需要与 idref 条目相同,但 LibreOffice Writer 的自动程序就是这样创建该文件的。(你可以在元数据中看到,这个 EPUB 是在 Linux 上用 LibreOffice 7.3.0.3 版本创建的,它可以将内容导出为EPUB文件。) +你可以把数据匹配起来,看看在哪里可以找到每个部分。EPUB 阅读器就是这样做的。例如,目录中的第一项引用了 `section0001`,它在清单中被定义为位于 `sections/section0001.xhtml` 文件中。该文件的名称不需要与 `idref` 条目相同,但 LibreOffice Writer 的自动程序就是这样创建该文件的。(你可以在元数据中看到,这个 EPUB 是在 Linux 上用 LibreOffice 7.3.0.3 版本创建的,它可以将内容导出为 EPUB 文件。) ### EPUB 格式 @@ -113,7 +113,7 @@ via: https://opensource.com/article/22/8/epub-file 作者:[Jim Hall][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/) 荣誉推出 From f1d81ba23b9d5865b31eb541d97d48c91b53539b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 26 Aug 2022 00:10:42 +0800 Subject: [PATCH 0886/3123] ALL @wxy https://linux.cn/article-14968-1.html --- ...a 37- Top New Features and Release Wiki.md | 122 ++++++++++++++++++ ...a 37- Top New Features and Release Wiki.md | 119 ----------------- 2 files changed, 122 insertions(+), 119 deletions(-) create mode 100644 published/20220823 Fedora 37- Top New Features and Release Wiki.md delete mode 100644 sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md diff --git a/published/20220823 Fedora 37- Top New Features and Release Wiki.md b/published/20220823 Fedora 37- Top New Features and Release Wiki.md new file mode 100644 index 0000000000..9fdc153e12 --- /dev/null +++ b/published/20220823 Fedora 37- Top New Features and Release Wiki.md @@ -0,0 +1,122 @@ +[#]: subject: "Fedora 37: Top New Features and Release Wiki" +[#]: via: "https://www.debugpoint.com/fedora-37/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14968-1.html" + +Fedora 37 新功能披露 +====== + +![](https://img.linux.net.cn/data/attachment/album/202208/26/000924lz0vl82vsq2zf0v7.jpg) + +> 关于 Fedora 37 及其新特性、发布细节等等。 + +Fedora 37 的开发工作已经结束,Beta 测试版即将来临。在这个阶段,Fedora 37 的功能和软件包已经最终确定。 + +在这篇常规的功能指南页面中,我总结了你应该知道的关于 Fedora 37 的基本功能,让你对预期的功能有一个概念。但是在这之前,先看看暂定的时间表: + +* 测试版的发布日期是 2022 年 9 月 13 日。后备日期是 2022 年 9 月 20 日。 +* Fedora 37 最终版计划于 2022 年 10 月 18 日发布。后备日期是 2022 年 10 月 25 日。 + +![Fedora 37 Workstation with GNOME 43][1] + +### Fedora 37 的主要新功能 + +#### 内核 + +首先是构成核心的关键项目。Fedora 37 采用了 Linux 内核 5.19,这是目前最新的主线内核。Linux 内核 5.19 带来了一些基本功能,比如修复了 Retbleed 漏洞、支持 ARM、支持苹果 M1 NVMe SSD 控制器以及许多此类功能,你可以在我们的 [内核功能指南][2] 中了解更多。 + +使用最新内核的好处是,你可以保证你使用的是此时此刻最新、最好的硬件支持。 + +其次,桌面环境在这个版本中得到了更新。 + +#### 桌面环境 + +Fedora 37 是第一个带来令人惊叹的 GNOME 43 桌面的发行版,它带来了一些优秀的功能,比如: + +* [重新改版后的快速设置功能][3],带有药片式按钮 +* 移植了 GTK4 和 libadwaita 的文件管理器 v43(nautilus) +* 带有橡皮筋、徽章、响应式侧边栏等功能的文件管理器 +* 更新了 GNOME Web,支持 WebExtension API + +还有许多你期待了多年的功能。请查看我的 [GNOME 43 功能指南][4] 以了解更多。 + +Fedora 37 带来了 KDE Plasma 5.26 桌面环境,包括大量的新功能、性能改进和错误修复。KDE Plasma 桌面最值得注意的功能包括: + +* 一个更新的概览屏幕 +* 深色和浅色主题的动态墙纸 +* 更新的 KDE 框架和应用程序 + +由于轻量级桌面 LXQt 更新了稳定版 1.1.0,它来到了 Fedora 37 中。LXQt 1.1.0 为深色主题带来了一个外观统一的默认调色板、应用程序菜单的两个变体(简单和紧凑)和重新排列的 GTK 设置。此外,LXQt 1.1.0 也开始了 Qt 6.0 桌面组件移植的初始工作。所有这些 bug 修复和增强功能都在 Fedora LXQt 版本中出现。 + +此外,其他主要的桌面版本由于没有重要的新的更新到来,仍然保持在当前版本,即 Xfce 4.16 和 MATE 1.24 用在各自的 Fedora 定制版中。 + +让我们看看这个版本中影响所有 Fedora 定制版的系统级变化是什么。 + +#### 系统级的变化 + +最重要的变化是对树莓派 4 的正式支持。得益于多年来的努力,你现在可以在最喜欢的树莓派上享受到开箱即用的 Fedora 37 了。 + +Fedora Linux 一直是推动技术发展的先锋,在其他发行版之前就采用了最新的功能。因此,现在在 KDE Plasma(和 Kinoite)和不同的定制版中,SDDM 显示管理器默认采用了 Wayland。这样,从 Fedora 发行版方面就完成了 Wayland 各个定制版的过渡。 + +正如我 [之前的报道][5],Fedora Linux 37 计划为我们提供 Anaconda 的网页安装程序的预览镜像。它可能不会在发布后立即可用,但它应该在发布后的几天内出现。 + +其他值得注意的功能包括将默认的主机名从 `fedora` 改为 `localhost`,以避免一些第三方系统配置检测问题。 + +除此之外,Fedora Core OS 被打造为 Fedora 官方版本,现在与服务器版、物联网版和云计算版同列,以便你可以更好地发现和采用它。最小资源占用的 Fedora Core OS 主要用于容器工作负载,并带来了自动更新和额外的功能。 + +遵循传统,这个版本也有一个 [全新的墙纸][6],有夜间和白天两个版本。我必须得说,它看起来很棒(见上面的桌面图片)。 + +最后,在这个版本中,Fedora 删除了 32 位的 Java 包,包括 JDK 8、11 和 17,因为使用率很低。此外,openssl 1.1 软件包也被弃用。 + +工具链、应用程序和编程栈更新如下: + +* Glibc 2.36 和 Binutils 2.38 +* Node.js 18.x +* Perl 5.36 +* Python 3.11 + +### Fedora 37 功能摘要 + +那么,这个版本的功能就到此为止了。下面是对 Fedora 37 功能的总结: + +* Linux 内核 5.19 +* GNOME 43 +* KDE Plasma 5.26 +* Xfce 4.16 +* MATE 1.24 +* LXQt 1.1.0 +* 新的基于网页的安装程序的预览镜像 +* SDDM 显示管理器默认采用 Wayland(在 KDE Plasma 和其他桌面环境中)。 +* 官方支持树莓派 4 +* Fedora Core OS 成为官方版本 +* 一些关键软件包放弃了 32 位支持 +* 还有相关的工具链和编程语言更新。 + +如果你有空闲时间,你可以 [体验一下][7]。虽然,它是非常不稳定的,不推荐运行测试版之前的开发版。 + +**那么,这个版本中你最喜欢的功能是什么?请在评论区告诉我**。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-37/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg +[2]: https://www.debugpoint.com/linux-kernel-5-19/ +[3]: https://www.debugpoint.com/gnome-43-quick-settings/ +[4]: https://www.debugpoint.com/gnome-43/ +[5]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ +[6]: https://debugpointnews.com/fedora-37-wallpaper/ +[7]: https://dl.fedoraproject.org/pub/fedora/linux/development/37/Workstation/x86_64/iso/ diff --git a/sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md b/sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md deleted file mode 100644 index 168a654fd6..0000000000 --- a/sources/news/20220823 Fedora 37- Top New Features and Release Wiki.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "Fedora 37: Top New Features and Release Wiki" -[#]: via: "https://www.debugpoint.com/fedora-37/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fedora 37: Top New Features and Release Wiki -====== -An article about Fedora 37 and its new features, release details and everything you need to know. - -Fedora 37 development is wrapping up, and the BETA is approaching. Hence the features and packages are final at this stage. - -In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule. - -* The beta copy is due on September 13, 2022. The fallback date is September 20, 2022. -* Final Fedora 37 is planned for release on October 18, 2022. The fallback date is October 25, 2022. - -![Fedora 37 Workstation with GNOME 43][1] - -### Fedora 37: Top New Features - -#### Kernel - -**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][2]. - -The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time. - -**Next** up, the desktop environments are updated in this release. - -#### Desktop Environment - -Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as: - -* [Revamped quick settings][3] with pill-buttons -* Files (nautilus) 43 with GTK4 and libadwaita port -* Files with rubberband, emblems, responsive sidebar-like features -* Updated GNOME Web with WebExtension API support - -And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][4] to learn more. - -Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include: - -* An updated overview screen. -* Dynamic wallpaper for dark and light themes. -* Updated KDE Framework and applications. - -Since the lightweight desktop LXQt gets a stable update 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition. - -In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.24**for the respective Fedora flavours. - -Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are. - -#### System wide changes - -The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports. - -Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour. - -As I [reported earlier][5], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release. - -Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection. - -Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features. - -Following the tradition, this release also features a [brand new wallpaper][6] with both night and day version. I must say it’s looks awesome (see the above desktop image). - -Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated. - -The toolchain, apps and programming stack is updated as follows: - -* Glibc 2.36 and Binutils 2.38 -* Node.js 18.x -* Perl 5.36 -* Python 3.11 - -### Summary of features in Fedora 37 - -So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features: - -* Linux Kernel 5.19 -* GNOME 43 -* KDE Plasma 5.26 -* Xfce 4.16 -* MATE 1.24 -* LXQt 1.1.0 -* A preview image of the new web-based installer -* The SDDM display manager defaults to Wayland (in KDE Plasma and others) -* Official Raspberry Pi 4 support -* Fedora Core OS becomes the official flavour -* Key packages dropping 32-bit support -* And associated toolchain and programming language updates. - -If you have spare time, you can [give it a spin][7] or test drive. Although, it is extremely unstable and not recommended to run the development version until beta. - -**So, what’s your favourite feature in this release? Let me know in the comment section.** - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/fedora-37/ - -作者:[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/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg -[2]: https://www.debugpoint.com/linux-kernel-5-19/ -[3]: https://www.debugpoint.com/gnome-43-quick-settings/ -[4]: https://www.debugpoint.com/gnome-43/ -[5]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ -[6]: https://debugpointnews.com/fedora-37-wallpaper/ -[7]: https://dl.fedoraproject.org/pub/fedora/linux/development/37/Workstation/x86_64/iso/ From d84de28d0789cefbc56152197c8990e691507ddd Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 26 Aug 2022 08:37:52 +0800 Subject: [PATCH 0887/3123] translated --- ... Devices Connected to Your Linux System.md | 185 ------------------ ... Devices Connected to Your Linux System.md | 185 ++++++++++++++++++ 2 files changed, 185 insertions(+), 185 deletions(-) delete mode 100644 sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md create mode 100644 translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md diff --git a/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md b/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md deleted file mode 100644 index 570754cae8..0000000000 --- a/sources/tech/20220822 How to List USB Devices Connected to Your Linux System.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "How to List USB Devices Connected to Your Linux System" -[#]: via: "https://itsfoss.com/list-usb-devices-linux/" -[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to List USB Devices Connected to Your Linux System -====== -How do you list the USB devices in Linux? - -The question can have two meanings. - -* How many USB ports are (detected) on your system? -* How many USB devices/disks are mounted (plugged in) to the system? - -Mostly, people are interested in knowing what USB devices are connected to the system. This may help troubleshoot the USB devices. - -The most reliable way is to use this command: - -``` -lsusb -``` - -It shows the webcam, Bluetooth, and Ethernet ports along with the USB ports and mounted USB drives. - -![list usb with lsusb command linux][1] - -But understanding the output of lsusb is not easy and you may not need to complicate things when you just want to see and access the mounted USB drives. - -I will show you various tools and commands you can use to list USB devices connected to your system. - -I have connected a 2GB pen-drive, 1TB external HDD, Android smartphone via MTP and USB mouse in the examples unless stated otherwise. - -Let me start with the simplest of the options for desktop users. - -### Check connected USB devices graphically - -Your distribution file manager can be used to view USB storage devices connected to your computer. As you can see in the screenshot of Nautilus (GNOME File Manager) below. - -The connected devices are shown in the sidebar (Only USB Storage devices are shown here). - -![Nautilus showing connected USB devices][2] - -You can also use GUI applications like GNOME Disks or Gparted to view, format, and partition the USB Storage devices connected to your computer. GNOME Disks is preinstalled in most distributions using GNOME Desktop Environment by default. - -This app also works as a very good [partition manager][3] too. - -![Use GNOME Disks to list mounted USB devices][4] - -*Enough of the Graphical tools*. Let us discuss the commands you can use for listing the USB devices. - -### Using the mount command to list the mounted USB devices - -The mount command is used for mounting partitions in Linux. You can also list USB storage devices using the same command. - -Generally, USB storage is mounted in the media directory. Thus, filtering the output of mount command on media will give you the desired result. - -``` -mount | grep media -``` - -![][5] - -### Using df command - -[df command][6] is a standard UNIX command used to know the amount of available disk space. You can also use this command to list USB storage devices connected using the command below. - -``` -df -Th | grep media -``` - -![Use df command to list mounted USB drives][7] - -### Using lsblk command - -The lsblk command is used to list block devices in the terminal. So, here also by filtering the output containing media keyword, you can get the desired result as shown in the screenshot below. - -``` -lsblk | grep media -``` - -![Using lsblk to list connected USb devicesUsing blkid to list connected USb devices][8] - -If you are more curious, you can use the `blkid` command to know the UUID, Label, Block size etc. - -This command gives more output as your internal drives are also listed. So, you have to take references from the above command to identify the device you wish to know about. - -``` -sudo blkid -``` - -![Using blkid to list connected USb devices][9] - -### Using fdisk - -fdisk, the good old command line partition manager, can also list the USB storage devices connected to your computer. The output of this command is also very long. So, usually, the connected devices get listed at the bottom as shown below. - -``` -sudo fdisk -l -``` - -![Use fidsk to list usb devices][10] - -### Inspecting /proc/mounts - -By inspecting the /proc/mounts file, you can list the USB Storage devices. As you can notice, it shows you the mount options being used by filesystem along with the mount point. - -``` -cat /proc/mounts | grep media -``` - -![][11] - -### Display all the USB devices with lsusb command - -And we revisit the famed lsusb command. - -Linux kernel developer [Greg Kroah-Hartman][12] developed this handy [usbutils][13] utility. This provides us with two commands i.e. `lsusb` and `usb-devices` to list USB devices in Linux. - -The lsusb command lists all the information about the USB bus in the system. - -``` -lsusb -``` - -As you can see this command also shows the Mouse and Smartphone I have connected, unlike other commands (which are capable of listing only USB storage devices). - -![][14] - -The second command `usb-devices` gives more details as compared but fails to list all devices, as shown below. - -``` -usb-devices -``` - -![][15] - -Greg has also developed a small GTK application called [Usbview][16]. This application shows you the list of all the USB devices connected to your computer. - -The application is available in the official repositories of most Linux distributions. You can install `usbview` package using your distribution’s [package manager][17] easily. - -Once installed, you can launch it from the application menu. You can select any of the listed devices to get details, as shown in the screenshot below. - -![][18] - -### Conclusion - -Most of the methods listed are limited to USB storage devices. There are only two methods which can list other peripherals also; usbview and usbutils. I guess we have one more reason to be grateful to the Linux Kernel developer Greg for developing these handy tools. - -I am aware that there are many more ways to list USB devices connected to your system. Your suggestions are welcome. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/list-usb-devices-linux/ - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/08/list-usb-with-lsusb-command-linux.png -[2]: https://itsfoss.com/wp-content/uploads/2022/08/nautilus-usb.png -[3]: https://itsfoss.com/partition-managers-linux/ -[4]: https://itsfoss.com/wp-content/uploads/2022/08/gnome-disks-usb.png -[5]: https://itsfoss.com/wp-content/uploads/2022/08/mount-cmd-usb.png -[6]: https://linuxhandbook.com/df-command/ -[7]: https://itsfoss.com/wp-content/uploads/2022/08/df-cmd-usb.png -[8]: https://itsfoss.com/wp-content/uploads/2022/08/blkid-cmd-usb.png -[9]: https://itsfoss.com/wp-content/uploads/2022/08/blkid-cmd-usb.png -[10]: https://itsfoss.com/wp-content/uploads/2022/08/fdisk-cmd-usb.png -[11]: https://itsfoss.com/wp-content/uploads/2022/08/proc-dir-usb.png -[12]: https://en.wikipedia.org/wiki/Greg_Kroah-Hartman -[13]: https://github.com/gregkh/usbutils -[14]: https://itsfoss.com/wp-content/uploads/2022/08/lsusb-cmd.png -[15]: https://itsfoss.com/wp-content/uploads/2022/08/usb-devices-cmd.png -[16]: https://github.com/gregkh/usbview -[17]: https://itsfoss.com/package-manager/ -[18]: https://itsfoss.com/wp-content/uploads/2022/08/usbview.png diff --git a/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md b/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md new file mode 100644 index 0000000000..91acce7455 --- /dev/null +++ b/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md @@ -0,0 +1,185 @@ +[#]: subject: "How to List USB Devices Connected to Your Linux System" +[#]: via: "https://itsfoss.com/list-usb-devices-linux/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何列出连接到 Linux 系统的 USB 设备 +====== +你如何列出 Linux 中的 USB 设备? + +这个问题可以有两种含义。 + +* 你的系统上有(检测到)多少个 USB 端口? +* 系统安装(插入)了多少个 USB 设备/磁盘? + +大多数情况下,人们有兴趣了解哪些 USB 设备连接到系统。这可能有助于对 USB 设备进行故障排除。 + +最可靠的方法是使用这个命令: + +``` +lsusb +``` + +它显示了网络摄像头、蓝牙和以太网端口以及 USB 端口和挂载的 USB 驱动器。 + +![list usb with lsusb command linux][1] + +但是了解 lsusb 的输出并不容易,当你只想查看和访问已挂载的 USB 驱动器时,你可能不需要复杂化。 + +我将向你展示可用于列出连接到系统的 USB 设备的各种工具和命令。 + +除非另有说明,我在例子中连接了一个 2GB 的 U 盘、1TB 的外置硬盘、通过 MTP 连接的 Android 智能手机和 USB 鼠标。 + +让我从桌面用户最简单的选项开始。 + +### 以图形方式检查连接的 USB 设备 + +你的分发文件管理器可用于查看连接到你的计算机的 USB 存储设备。正如你在下面的 Nautilus(GNOME 文件管理器)的截图中看到的那样。 +The connected devices are shown in the sidebar (Only USB Storage devices are shown here). +连接的设备显示在边栏中(此处仅显示 USB 存储设备)。 + +![Nautilus showing connected USB devices][2] + +你还可以使用 GNOME Disks 或 Gparted 等 GUI 应用来查看、格式化和分区连接到计算机的 USB 存储设备。默认情况下,大多数使用 GNOME 桌面环境的发行版都预装了 GNOME Disks。 + +这个应用也可以作为一个非常好的[分区管理器][3]。 + +![Use GNOME Disks to list mounted USB devices][4] + +*图形工具足够了*。让我们讨论可用于列出 USB 设备的命令。 + +### 使用 mount 命令列出挂载的 USB 设备 + +mount 命令用于挂载 Linux 中的分区。你还可以使用相同的命令列出 USB 存储设备。 + +通常,USB 存储挂载在 media 目录中。因此,在媒体上过滤 mount 命令的输出将为你提供所需的结果。 + +``` +mount | grep media +``` + +![][5] + +### 使用 df 命令 + +[df 命令][6]是一个标准的 UNIX 命令,用于了解可用磁盘空间的大小。你还可以使用此命令列出已连接的 USB 存储设备。 + +``` +df -Th | grep media +``` + +![Use df command to list mounted USB drives][7] + +### 使用 lsblk 命令 + +lsblk 命令用于列出终端中的块设备。因此,这里也通过过滤包含 media 关键字的输出,你可以获得所需的结果,如下面的截图所示。 + +``` +lsblk | grep media +``` + +![Using lsblk to list connected USb devicesUsing blkid to list connected USb devices][8] + +如果你比较好奇,可以使用 `blkid` 命令了解 UUID、标签、块大小等。 + +此命令提供更多输出,因为你的内部驱动器也被列出。因此,你必须参考上述命令来识别你希望了解的设备。 + +``` +sudo blkid +``` + +![Using blkid to list connected USb devices][9] + +### 使用 fdisk + +fdisk 是一款不错的老式命令行分区管理器,它还可以列出连接到你计算机的 USB 存储设备。这个命令的输出也很长。因此,通常连接的设备会列在底部,如下所示。 + +``` +sudo fdisk -l +``` + +![Use fidsk to list usb devices][10] + +### 检查 /proc/mounts + +通过检查 /proc/mounts 文件,你可以列出 USB 存储设备。如你所见,它向你显示了文件系统使用的挂载选项以及挂载点。 + +``` +cat /proc/mounts | grep media +``` + +![][11] + +### 使用 lsusb 命令显示所有 USB 设备 + +我们重新审视有名的 lsusb 命令。 + +Linux 内核开发人员 [Greg Kroah-Hartman][12] 开发了这个方便的 [usbutils][13] 程序。这为我们提供了两个命令,即 `lsusb` 和 `usb-devices` 来列出 Linux 中的 USB 设备。 + +lsusb 命令列出系统中有关 USB 总线的所有信息。 + +``` +lsusb +``` + +如你所见,此命令还显示了我已连接的鼠标和智能手机,这与其他命令(只能列出 USB 存储设备)不同。 + +![][14] + +第二个命令 `usb-devices` 提供了更多详细信息,但未能列出所有设备,如下所示。 + +``` +usb-devices +``` + +![][15] + +Greg 还开发了一个名为 [Usbview][16] 的小型 GTK 应用。此应用向你显示连接到计算机的所有 USB 设备的列表。 + +该应用可在大多数 Linux 发行版的官方仓库中找到。你可以使用发行版的[包管理器][17]轻松安装 `usbview` 包。 + +安装后,你可以从应用菜单启动它。你可以选择任何列出的设备以获取详细信息,如下面的截图所示。 + +![][18] + +### 总结 + +列出的大多数方法仅限于 USB 存储设备。 只有两种方法可以列出其他外围设备; usbview 和 usbutils。 我想我们还有一个理由感谢 Linux Kernel 开发人员 Greg 开发了这些方便的工具。 + +我知道还有很多方法可以列出连接到系统的 USB 设备。 欢迎你提出建议。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/list-usb-devices-linux/ + +作者:[Anuj Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/anuj/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/list-usb-with-lsusb-command-linux.png +[2]: https://itsfoss.com/wp-content/uploads/2022/08/nautilus-usb.png +[3]: https://itsfoss.com/partition-managers-linux/ +[4]: https://itsfoss.com/wp-content/uploads/2022/08/gnome-disks-usb.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/mount-cmd-usb.png +[6]: https://linuxhandbook.com/df-command/ +[7]: https://itsfoss.com/wp-content/uploads/2022/08/df-cmd-usb.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/blkid-cmd-usb.png +[9]: https://itsfoss.com/wp-content/uploads/2022/08/blkid-cmd-usb.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/fdisk-cmd-usb.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/proc-dir-usb.png +[12]: https://en.wikipedia.org/wiki/Greg_Kroah-Hartman +[13]: https://github.com/gregkh/usbutils +[14]: https://itsfoss.com/wp-content/uploads/2022/08/lsusb-cmd.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/usb-devices-cmd.png +[16]: https://github.com/gregkh/usbview +[17]: https://itsfoss.com/package-manager/ +[18]: https://itsfoss.com/wp-content/uploads/2022/08/usbview.png From efa53d8fa3b85bb8296829366efd2a374dd42b61 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 26 Aug 2022 08:45:35 +0800 Subject: [PATCH 0888/3123] translated --- ...sthetically Pleasing Terminal for Minimalists Linux Users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md index 5089159d5a..eed2ed9dcb 100644 --- a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md +++ b/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/blackbox-terminal/" [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 284fa8edd64bccb902cc57d016d5b50d65a72032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Fri, 26 Aug 2022 10:53:41 +0800 Subject: [PATCH 0889/3123] Translated --- ...o Linux Mint 21 [Step by Step Tutorial].md | 411 ------------------ ...o Linux Mint 21 [Step by Step Tutorial].md | 411 ++++++++++++++++++ 2 files changed, 411 insertions(+), 411 deletions(-) delete mode 100644 sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md create mode 100644 translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md diff --git a/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md deleted file mode 100644 index c0d0688386..0000000000 --- a/sources/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md +++ /dev/null @@ -1,411 +0,0 @@ -[#]: subject: "How to Upgrade to Linux Mint 21 [Step by Step Tutorial]" -[#]: via: "https://itsfoss.com/upgrade-linux-mint-version/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Upgrade to Linux Mint 21 [Step by Step Tutorial] -====== -This is a regularly updated guide for upgrading an existing Linux Mint install to a new available version. - -There are three sections in this article that show the steps for upgrading between various major versions of Linux Mint: - -* Section 1 is about upgrading to Mint 21 from Mint 20.3 (GUI upgrade tool) -* Section 2 is about upgrading to Mint 20 from Mint 19.3 (Command-line based upgrader) -* Section 3 is about upgrading to Mint 19 from Mint 18.3 (if someone is still using it) - -You can follow the appropriate steps based on your current Mint version and requirement. - -This is a regularly updated guide for upgrading an existing Linux Mint install to a new available version. - -The guide has been updated with the steps for upgrading to Linux Mint 21 from Mint 20.3. Linux Mint now has a GUI tool to upgrade to the latest version. - -### Things to know before you upgrade to Linux Mint 21 - -Before you go on upgrading to Linux Mint 21, you should consider the following: - -* Do you really need to upgrade? Linux Mint 20.x is supported for several more years. -* You’ll need a good speed internet connection to download upgrades of around 1.4 GB. -* It may take a couple of hours to complete the upgrade procedure based on your internet speed. You must have patience. -* It is a good idea to make a live USB of Linux Mint 21 and try it in a live session to see if it is compatible with your hardware. Newer kernels might have issues with older hardware, so testing it before the real upgrade or install can save you a lot of frustration. -* A fresh installation is always better than a major version upgrade but installing Linux Mint 21 from scratch would mean losing your existing data. You must take backup on an external disk. -* Though upgrades are mostly safe, it’s not 100% failproof. You must have system snapshots and proper backups. -* You can upgrade to Linux Mint 21 only from Linux Mint 20.3 Cinnamon, Xfce and MATE. [Check your Linux Mint version][1] first. If you are using Linux Mint 20.2 or 20.1, you need to upgrade to 20.3 first from the Update Manager. If you are using Linux Mint 19, I advise you to go for a fresh installation rather than upgrading to several Mint versions. - -Once you know what you will do, let’s see how to upgrade to Linux Mint 21. - -### Upgrading to Linux Mint 21 from 20.3 - -Check your Linux Mint version and ensure that you are using Mint 20.3. You cannot upgrade to Mint 21 from Mint 20.1 or 20.2. - -#### Step 1: Update your system by installing any available updates - -Launch the Update Manager with Menu -> Administration -> Update Manager. Check if there are any package updates available. If yes, install all the software updates first. - -![Check for Pending Software Updates][2] - -You may also use this command in the terminal for this step: - -``` -sudo apt update && sudo apt upgrade -y -``` - -#### Step 2: Make a backup of your files on an external disk [Optional yet recommended] - -Timeshift is a good tool for creating system snapshots, but it’s not the ideal tool for your documents, pictures, and other such non-system, personal files. I advise making a backup on an external disk. It’s just for the sake of data safety. - -When I say making a backup on an external disk, I mean to simply copy and paste your Pictures, Documents, Downloads, and Videos directory on an external USB disk. - -If you don’t have a disk of that much size, at least copy the most important files you cannot afford to lose. - -#### Step 3: Install the upgrade tool - -Now that your system is updated, you are ready to upgrade to Linux Mint 21. Linux Mint team provides a GUI tool called [mintupgrade][3] for upgrading Linux Mint 20.3 to Linux Mint 21. - -You can install this tool using the command below: - -``` -sudo apt install mintupgrade -``` - -#### Step 4: Run GUI Tool from the terminal - -You cannot find the new GUI tool listed in the App menu. To launch, you need to enter the following command in the terminal: - -``` -sudo mintupgrade -``` - -This simple yet comprehensive tool takes you through the upgrading process. - -![Mint Upgrade Tool Home Page][4] - -After some initial tests, it will prompt for a Timeshift Backup. If you already have a backup created, you are good to go. - -![Upgrade Tool Prompting No Timeshift Snapshots][5] - -Else, you need to [create a backup][6] here since it is mandatory to continue. - -![Taking Snapshot With Timeshift][7] - -Some PPAs might be already available for Ubuntu 22.04 and thus for Mint 21. But if the PPA or repository is not available for the new version, it may impact the upgrade procedure with broken dependencies. You will be prompted the same within the upgrade tool. - -![Kazam PPA Does Not Support Jammy][8] - -Here, I used [Kazam latest versio][9]n through its PPA. The same PPA is supported only up to Impish, showing the error since Linux Mint 21 is based on Jammy. - -You will be given the option to disable the PPAs through Software Sources within the upgrade tool. - -![Disable Unsupported PPAs in Software Sources][10] - -Since the PPA is disabled, the package becomes ‘foreign’ because the version available from the repository doesn’t match the ones from Mint repositories. So you need to downgrade the packages to a version available on the repository. - -![Downgrade Package to Avoid Conflicts][11] - -The upgrade tool now lists the changes that need to be carried out. - -![List Changes That Need to be Done][12] - -Upon accepting, the tool will start downloading packages. - -![Phase 2 – Simulation and Package Download][13] - -![Package Downloading][14] - -![Upgrading Phase][15] - -It will list orphan packages, that can be removed. You can either remove the whole suggestions by pressing the “Fix” button or will keep certain packages. - -#### Keep Certain Orphan packages - -In order to keep packages from the orphan packages list, you need to go to the preferences from the hamburger menu on top left. - -![Selecting Orphan Packages You Want to Keep with Preferences][16] - -From the preference dialog box, you need to go to **Orphan Packages** and use the “plus” symbol to add packages by name. - -![Specify Name of the Package to Keep][17] - -Once done, it will continue upgrading and after some time, you will be prompted a successful update notification. - -![Upgrade Successful][18] - -At this point, you need to reboot your system. Upon rebooting, you will be in the new Linux Mint 21. - -![Neofetch Output Linux Mint 21][19] - -### How to upgrade to Linux Mint 20 - -Before you go on upgrading to Linux Mint 20, you should consider the following: - -* Do you really need to upgrade? Linux Mint 19.x is supported till 2023. -* If you [have a 32-bit system][20], you cannot install or upgrade to Mint 20. -* You’ll need a good speed internet connection to download upgrades of around 1.4 GB in size. -* Based on your internet speed, it may take a couple of hours to complete the upgrade procedure. You must have patience. -* It is a good idea to make a live USB of Linux Mint 20 and try it in a live session to see if it is compatible with your hardware. Newer kernels might have issues with older hardware and hence testing it before the real upgrade or install can save you a lot of frustration. -* A fresh installation is always better than a major version upgrade but [installing Linux Mint][21] 20 from scratch would mean you’ll lose your existing data. You must take backup on an external disk. -* Though upgrades are mostly safe, it’s not 100% fail proof. You must have system snapshots and proper backups. -* You can upgrade to Linux Mint 20 only from Linux Mint 19.3 Cinnamon, Xfce and MATE. [Check your Linux Mint version][22] first. If you are using Linux Mint 19.2 or 19.1, you need to upgrade to 19.3 first from the Update Manager. If you are using Linux Mint 18, I advise you go for a fresh installation rather than upgrading to several Mint versions. -* The upgrade process is done via command line utility. If you don’t like using terminal and commands, avoid upgrading and go for a fresh installation. - -Once you know what you are going to do, let’s see how to upgrade to Linux Mint 20. - -![A Video from YouTube][23] - -[Subscribe to our YouTube channel for more Linux videos][24] - -#### Step 1: Make sure you have a 64-bit system - -Linux Mint 20 is a 64-bit only system. If you have a 32-bit Mint 19 installed, you cannot upgrade to Linux Mint 20. - -In a terminal, use the following command to see whether you are using 64-bit operating system or not. - -``` -dpkg --print-architecture -``` - -![Mint 20 Upgrade Check Architecture][25] - -#### Step 2: Update your system by installing any available updates - -Launch the Update Manager with Menu -> Administration -> Update Manager. Check if there are any package updates available. If yes, install all the software updates first. - -![Check for pending software updates][26] - -You may also use this command in the terminal for this step: - -``` -sudo apt update && sudo apt upgrade -y -``` - -#### Step 3: Create a system snapshot with Timeshift [Optional yet recommended] - -[Creating a system snapshot with Timeshift][27] will save you if your upgrade procedure is interrupted or if you face any other issue. **You can even revert to Mint 19.3 this way**. - -Suppose your upgrade failed for power interruption or some other reason and you end up with a broken, unusable Linux Mint 19. You can plug in a live Linux Mint USB and run Timeshift from the live environment. It will automatically locate your backup location and will allow you to restore your broken Mint 19 system. - -This also means that you should keep a live Linux Mint 19 USB handy specially if you don’t have access to a working computer that you can use to create live Linux Mint USB in the rare case the upgrade fails. - -![Create a system snapshot in Linux Mint][28] - -#### Step 4: Make a backup of your files on an external disk [Optional yet recommended] - -Timeshift is a good tool for creating system snapshots but it’s not the ideal tool for your documents, pictures and other such non-system, personal files. I advise making a backup on an external disk. It’s just for the sake of data safety. - -When I say making a backup on an external disk, I mean to simply copy and paste your Pictures, Documents, Downloads, Videos directory on an external USB disk. - -If you don’t have a disk of that much of a size, at least copy the most important files that you cannot afford to lose. - -#### Step 5: Disable PPAs and third-party repositories [Optional yet recommended] - -It’s natural that you might have installed applications using some [PPA][29] or other repositories. - -Some PPAs might be already available for Ubuntu 20.04 and thus for Mint 20. But if the PPA or repository is not available for the new version, it may impact the upgrade procedure with broken dependencies. - -For this reason, it is advised that you disable the PPAs and third-party repositories. You may also delete the applications installed via such external sources if it is okay with you and doesn’t result in config data loss. - -In the Software Sources tool, disable additional repositories, disable PPAs. - -![Disable Ppa Mint Upgrade][30] - -You should also **downgrade and then remove foreign packages** available in the maintenance tab. - -For example, I installed Shutter using a PPA. I disabled its PPA. Now the package becomes ‘foreign’ because the version available from the repository doesn’t match the ones from Mint repositories. - -![Foreign Package Linux Mint][31] - -#### Step 6: Install the upgrade tool - -Now that your system is updated, you are ready for upgrading to Linux Mint 20. Linux Mint team provides a command line tool called [mintupgrade][32] for the sole purpose of upgrading Linux Mint 19.3 to Linux Mint 20. - -You can install this tool using the command below: - -``` -sudo apt install mintupgrade -``` - -#### Step 7: Run an upgrade sanity check - -The mintupgrade tool lets you run a sanity check by simulating initial part of the upgrade. - -You can run this check to see what kind of changes will be made to your system, which packages will be upgraded. It will also show the packages that cannot be upgraded and must be removed. - -``` -mintupgrade check -``` - -There won’t be any real changes on your system yet (even if it feels like it is going to make some changes). - -This step is important and helpful in determining whether your system can be upgrade to Mint 20 or not. - -![Mint Upgrade Check][33] - -If this steps fails half-way through type **mintupgrade restore-sources** to go back to your original APT configuration. - -#### Step 8: Download package upgrades - -Once you are comfortable with the output of mintupgrade check, you can download the Mint 20 upgrade packages. - -Depending on your internet connection, it may take some time in downloading these upgrades. Make sure your system is connected to a power source. - -While the packages are being downloaded, you can continue using your system for regular work. - -``` -mintupgrade download -``` - -![Mint 20 Upgrade Download][34] - -Note that this command points your system to the Linux Mint 20 repositories. If you want to go back to Linux Mint 19.3 after using this command, you still can do that with the command “**mintupgrade restore-sources**“. - -#### Step 9: Install the Upgrades [Point of no return] - -Now that you have everything ready, you can upgrade to Linux Mint 20 using this command: - -``` -mintupgrade upgrade -``` - -Give it some time to install the new packages and upgrade your Mint to the newer version. Once the procedure finishes, it will ask you to reboot. - -![Linux Mint 20 Upgrade Finish][35] - -#### Enjoy Linux Mint 20 - -Once you reboot your system, you’ll see the Mint 20 welcome screen. Enjoy the new version. - -![Welcome To Linux Mint 20][36] - -### Upgrading to Mint 19 from Mint 18 - -The steps for upgrading to Linux Mint 19 from 18.3 is pretty much the same as the steps you saw for Mint 20. The only change is in checking for display manager. - -I’ll quickly mention the steps here. If you want more details, you can refer to Mint 20 upgrade procedure. - -**Step1:** Create a system snapshot with Timeshift [Optional yet recommended] - -**Step2:** Make a backup of your files on an external disk [Optional yet recommended] - -**Step 3: Make sure you are using LightDM** - -You must use [LightDM display manager][37] for Mint 19. To check which display manager you are using, type the command: - -``` -cat /etc/X11/default-display-manager -``` - -If the result is “/usr/sbin/**lightdm**“, you have LightDM and you are good to go. - -![LightDM Display Manager in Linux Mint][38] - -On the other hand, if the result is “/usr/sbin/**mdm**“, you need to install LightDM, [switch to LightDM][39] and removing MDM. Use this command to install LightDM: - -``` -apt install lightdm lightdm-settings slick-greeter -``` - -While installing, it will ask you to choose the display manager. You need to select LightDM. - -Once you have set LightDM as your display manager, remove MDM and reboot using these commands: - -``` -apt remove --purge mdm mint-mdm-themes* -sudo dpkg-reconfigure lightdm -sudo reboot -``` - -**Step 4: Update your system by installing any available updates** - -``` -sudo apt update && sudo apt upgrade -y -``` - -**Step 5: Install the upgrade tool** - -``` -sudo apt install mintupgrade -``` - -**Step 6: Check upgrade** - -``` -mintupgrade check -``` - -**Step 7: Download package upgrades** - -``` -mintupgrade download -``` - -**Step 8: Apply upgrades** - -``` -mintupgrade upgrade -``` - -Enjoy Linux Mint 19. - -### Did you upgrade to Linux Mint 21? - -Upgrading to Linux Mint 20 might not be a friendly experience but upgrading to Mint 21 is made a lot more simple with the new dedicated GUI upgrade tool. - -I hope you find the tutorial helpful. Did you upgrade to Linux Mint 21 or you opted for a fresh installation? - -If you faced any issues or if you have any questions about the upgrade procedure, please feel free to ask in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/upgrade-linux-mint-version/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/check-linux-mint-version/ -[2]: https://itsfoss.com/wp-content/uploads/2022/08/check-for-pending-software-updates.png -[3]: https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade -[4]: https://itsfoss.com/wp-content/uploads/2022/08/mint-upgrade-tool-home-page.png -[5]: https://itsfoss.com/wp-content/uploads/2022/08/upgrade-tool-prompting-no-timeshift-snapshots.png -[6]: https://itsfoss.com/backup-restore-linux-timeshift/ -[7]: https://itsfoss.com/wp-content/uploads/2022/08/taking-snapshot-with-timeshift.png -[8]: https://itsfoss.com/wp-content/uploads/2022/08/kazam-ppa-does-not-support-jammy.png -[9]: https://itsfoss.com/kazam-screen-recorder/ -[10]: https://itsfoss.com/wp-content/uploads/2022/08/disable-unsupported-ppas-in-software-sources.png -[11]: https://itsfoss.com/wp-content/uploads/2022/08/downgrade-package-to-avoid-conflicts.png -[12]: https://itsfoss.com/wp-content/uploads/2022/08/list-changes-that-need-to-be-done.png -[13]: https://itsfoss.com/wp-content/uploads/2022/08/phase-2-simulation-and-package-download-.png -[14]: https://itsfoss.com/wp-content/uploads/2022/08/package-downloading.png -[15]: https://itsfoss.com/wp-content/uploads/2022/08/upgrading-phase.png -[16]: https://itsfoss.com/wp-content/uploads/2022/08/selecting-orphan-packages-you-want-to-keep-with-preferences.png -[17]: https://itsfoss.com/wp-content/uploads/2022/08/specify-name-of-the-package-to-keep.png -[18]: https://itsfoss.com/wp-content/uploads/2022/08/upgrade-successful-800x494.png -[19]: https://itsfoss.com/wp-content/uploads/2022/08/neofetch-output-linux-mint-21.png -[20]: https://itsfoss.com/32-bit-64-bit-ubuntu/ -[21]: https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/ -[22]: https://itsfoss.com/check-linux-mint-version/ -[23]: https://youtu.be/LYnXEaiAjsk -[24]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 -[25]: https://itsfoss.com/wp-content/uploads/2020/07/mint-20-upgrade-check-architecture.jpg -[26]: https://itsfoss.com/wp-content/uploads/2020/07/update-manager-linux-mint.jpg -[27]: https://itsfoss.com/backup-restore-linux-timeshift/ -[28]: https://itsfoss.com/wp-content/uploads/2018/07/snapshot-linux-mint-timeshift.jpeg -[29]: https://itsfoss.com/ppa-guide/ -[30]: https://itsfoss.com/wp-content/uploads/2020/07/disable-ppa-mint-upgrade.jpg -[31]: https://itsfoss.com/wp-content/uploads/2020/07/foreign-package-linux-mint.jpg -[32]: https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade -[33]: https://itsfoss.com/wp-content/uploads/2020/07/mint-upgrade-check.jpg -[34]: https://itsfoss.com/wp-content/uploads/2020/07/mint-upgrade-download.jpg -[35]: https://itsfoss.com/wp-content/uploads/2020/07/linux-mint-20-upgrade-finish.jpg -[36]: https://itsfoss.com/wp-content/uploads/2020/07/welcome-to-linux-mint-20.jpg -[37]: https://wiki.archlinux.org/index.php/LightDM -[38]: https://itsfoss.com/wp-content/uploads/2018/07/lightdm-linux-mint.jpeg -[39]: https://itsfoss.com/switch-gdm-and-lightdm-in-ubuntu-14-04/ diff --git a/translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md new file mode 100644 index 0000000000..53d780218a --- /dev/null +++ b/translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md @@ -0,0 +1,411 @@ +[#]: subject: "How to Upgrade to Linux Mint 21 [Step by Step Tutorial]" +[#]: via: "https://itsfoss.com/upgrade-linux-mint-version/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +图解如何升级到 Linux Mint 21 +====== +这是一个周期性的更新指南,主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。 + +在这篇文章中有三个部分,分别向你展示 Linux Mint 的不同的主要版本之间的升级步骤: + +* 第 1 部分是关于从 Linux Mint 20.3 升级到 Linux Mint 21 ( GUI 升级工具) +* 第 2 部分是关于从 Linux Mint 19.3 升级到 Linux Mint 20 (基于命令行的升级程序) +* 第 3 部分是关于从 Linux Mint 18.3 升级到 Linux Mint 19 (假设一些人仍然在使用它) + +你可以依据你的当前的 Linux Mint 版本和需要来执行适当的步骤。 + +这是一个周期性的更新指南,主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。 + +这篇指南已经更新,追加从 Mint 20.3 升级到 Linux Mint 21 的步骤。Linux Mint 现在有一个 GUI 工具来升级到最新的版本。 +; +### 在你升级到 Linux Mint 21 之前需要知道的事情 + +在你继续升级到 Linux Mint 21 之前,你应该考虑下面的事情: + +* 你真的需要升级吗?Linux Mint 20.x 还有好几年的支持期限。 +* 你将需要高速因特网连接来下载大约 14 GB 的升级。 +* 它可能将花费几个小时的时间来完成升级过程,当然这主要取决于你的因特网速度。你必需有耐心。 +* 制作一个 Linux Mint 21 的 live USB 并在一次实时会话中尝试它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题,因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。 +* 一次全新的安装总是比一次主要版本升级的更好,但是从零开始安装 Linux Mint 21 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。 +* 尽管大部分的升级是安全的,但是它也不会是 100% 的成功。你必须要有系统快照和真正的备份。 +* 你只能从 Linux Mint 20.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 21 。首先 [检查你的 Linux Mint 版本][1] 。如果你正在使用 Linux Mint 20.2 或 20.1 ,你需要先使用更新管理器来升级到 20.3 。如果你正在使用 Linux Mint 19 ,我建议你选择进行一次的全新安装,而不是选择进行数次的升级 Mint 版本。 + +在你知道你将要做什么后,让我们看看如何升级到 Linux Mint 21 。 + +### 从 Linux Mint 20.3 升级到 Linux Mint 21 + +检查你的 Linux Mint 版本,并确保你正在使用 Mint 20.3 。你不能从 Linux Mint 20.1 或 20.2 升级到 Linux Mint 21 。 + +#### 步骤 1: 通过安装任意可用的更新来更新你的系统 + +使用 菜单 -> 系统管理 -> 更新管理器来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新,先安装所有的软件包更新。 + +![Check for Pending Software Updates][2] + +针对这一步骤,你也可用在终端中使用这一个命令: + +``` +sudo apt update && sudo apt upgrade -y +``` + +#### 步骤 2: 在外部的磁盘上备份你的文件 [可选,但是建议] + +Timeshift 是一个创建系统快照的好工具,但它却不是一个针对文档、图片和其它那些非系统、个人文件的理想工具。我建议你在一块外部磁盘上进行备份。它只是为了数据安全。 + +当我说在一块外部磁盘上进行一次备份时,我的意思是将你的图片、文档、下载和视频目录简单地复制和粘贴到一块外部的 USB 磁盘上。 + +如果你没有那样大的磁盘,至少复制那些你不可丢失的最重要的文件。 + +#### 步骤 3: 安装升级工具 + +现在,你的系统已经更新,你已经准备好升级到 Linux Mint 21 。Linux Mint 开发组提供一个名称为 [mintupgrade][3] 的 GUI 工具,用于从 Linux Mint 20.3 升级到 Linux Mint 21 。 + +你可用使用下面的命令来安装这个工具: + +``` +sudo apt install mintupgrade +``` + +#### 步骤 4: 从终端中运行这个 GUI 工具 + +你不能在应用程序菜单列表中找到这个新的 GUI 工具。为启动它,你需要在终端中输入下面的命令: + +``` +sudo mintupgrade +``` + +这个简单且全面工具将带领你完成升级过程。 + +![Mint Upgrade Tool Home Page][4] + +在一些初始化的测试后,它将提示进行一次 Timeshift 备份。如果你已经创建了一次备份,你已经准备好前进。 + +![Upgrade Tool Prompting No Timeshift Snapshots][5] + +否则,你需要在这里 [创建一个备份][6] ,因为这是强制继续的。 + +![Taking Snapshot With Timeshift][7] + +一些 PPA 可能已经适用于 Ubuntu 22.04 ,因此也适用于 Mint 21 。但是,如果 PPA 或存储库不适用于新的版本,它可能会因为依赖关系的打断而影响升级过程。在升级工具中也会同样的提示你。 + +![Kazam PPA Does Not Support Jammy][8] + +在这里,我将通过其 PPA 来使用 [Kazam 的最新版本][9] 。其 PPA 仅被支持到 Impish ,因为 Linux Mint 21 是基于 Jammy 的,所以它会显示错误。 + +你可以在升级工具中通过软件源来指定禁用 PPA 的选项。 + +![Disable Unsupported PPAs in Software Sources][10] + +在禁用该 PPA 后,该软件包会变成 ‘陌生的’ ,因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。因此,你需要将软件包降级到存储库中一个可用的版本。 + +![Downgrade Package to Avoid Conflicts][11] + +升级工具现在列出需要执行更改。 + +![List Changes That Need to be Done][12] + +在接受后,该工具将开始下载软件包。 + +![Phase 2 – Simulation and Package Download][13] + +![Package Downloading][14] + +![Upgrading Phase][15] + +它将列出孤立的软件包,这可以被移除。你可以通过按下 修复 Fix 按钮来移除整个建议的软件包,也可以保留某些软件包。 + +#### 保留某些孤立的软件包 + +为保留来自孤立的软件包列表中软件包,你需要从左上角的菜单转到首选项。 + +![Selecting Orphan Packages You Want to Keep with Preferences][16] + +在首选项对话框中,你需要转到 **孤立的软件包** 并使用 “+” 符号来通过名称添加软件包。 + +![Specify Name of the Package to Keep][17] + +在完成后,它将继续升级,在一段时间后,将会向你提示一条成功更新的通知。 + +![Upgrade Successful][18] + +此时,你需要重新启动你的系统。在重新启动后,你将进入到新的 Linux Mint 21 。 + +![Neofetch Output Linux Mint 21][19] + +### 如何升级到 Linux Mint 20 + +在你继续升级到 Linux Mint 20 之前,你应该考虑下面的事情: + +* 你真的需要升级吗?Linux Mint 19.x 将会支持到 2023 年。 +* 如果你 [有一款 32-位 系统][20],你不能安装或升级到 Mint 20 。 +* 你将需要高速因特网连接来下载大约 1.4 GB 的升级。 +* 它可能将花费几个小时的时间来完成升级过程,当然这主要取决于你的因特网速度。你必需有耐心。 +* 制作一个 Linux Mint 20 的 live USB 并在一次实时会话中查看它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题,因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。 +* 一次全新的安装总是比一次主要版本升级的更好,但是从零开始 [安装 Linux Mint][21] 20 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。 +* 尽管大部分的升级是安全的,但是它也不会是 100% 的成功。你必须要有系统快照和真正的备份。 +* 你只能从 Linux Mint 19.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 21 。首先 [检查你的 Linux Mint 版本][22] 。如果你正在使用 Linux Mint 19.2 或 19.1 ,你需要先使用更新管理器来升级到 19.3 。如果你正在使用 Linux Mint 18 ,我建议你选择进行一次的全新安装,而不是选择进行数次的升级 Mint 版本。 +* 升级过程是通过命令行实用程序来完成的。如果你不喜欢使用终端和命令, 避免升级,并进行一次全新的安装。 + +在你知道你将要做什么后,让我们看看如何升级到 Linux Mint 20 。 + +![A Video from YouTube][23] + +[订阅我们的 YouTube 频道以获取更多的 Linux 视频][24] + +#### 步骤 1: 确保你有一款 64 位系统 + +Linux Mint 20 仅是一款 64 位系统。如果你安装了一款 32 位的 Linux Mint 19 ,你不能升级到 Linux Mint 20 。 + +在一个终端中,使用下面的命令来查看你是否正在使用 64-位 操作系统。 + +``` +dpkg --print-architecture +``` + +![Mint 20 Upgrade Check Architecture][25] + +#### 步骤 2: 通过安装一些可用的更新来更新你的系统 + +使用 菜单 -> 系统管理 -> 更新管理器 来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新,先安装所有的软件包更新。 + +![Check for pending software updates][26] + +针对这一步骤,你也可用在终端中使用这一个命令: + +``` +sudo apt update && sudo apt upgrade -y +``` + +#### 步骤 3: 使用 Timeshift 创建一个系统快照 [可选,但是建议] + +如果你遇到升级过程中断或你遇到其它的一些重大问题,[使用 Timeshift 创建一个系统快照][27] 将会解救你于水火之中。**你甚至可以使用这种方法恢复到 Mint 19.3 。** + +假设你因为意外断电导致升级失败,或因为其它一些原因,你最终得到一个残缺的不稳定的 Linux Mint 19 。你可以插入一个live Linux Mint USB ,并从该 live 环境中运行 Timeshift 。它将会自动地定位你的备份位置,并将允许你恢复你残缺的 Mint 19 系统。 + +这也意味着你应该随时携带一个 live Linux Mint 19 USB ,在极少数升级失败的情况下,如果你不能访问一台工作的计算机,你可以使用它来创建 live Linux Mint USB 。 + +![Create a system snapshot in Linux Mint][28] + +#### 步骤 4: 在一块外部的磁盘上备份你的文件 [可选,但是建议] + +Timeshift 是一个创建系统快照的好工具,但它却不是一个针对文档、图片和其它那些非系统、个人文件的理想工具。我建议你在一块外部磁盘上进行备份。它只是为了数据安全。 + +当我说在一块外部磁盘上进行一次备份时,我的意思是将你的图片、文档、下载和视频目录简单地复制和粘贴到一块外部的 USB 磁盘上。 + +如果你没有那样大的磁盘,至少复制那些你不可丢失的最重要的文件。 + +#### 步骤 5: 禁用 PPA 和第三方存储库 [可选,但是建议] + +不出意外的话,你可能已经使用一些 [PPA][29] 或其它的存储库来安装了一下应用程序。 + +一些 PPA 可能已经适用于 Ubuntu 20.04 ,因此也适用于 Mint 20 。但是,如果 PPA 或存储库不适用于新的版本,它可能会因为依赖关系的打断而影响升级过程。 + +对此,建议你禁用 PPA 和第三方存储库。你也可以删除通过这样的外部源来安装的应用程序,如果你这样做的话,它不会导致配置数据的丢失。 + +在软件源工具中,禁用附加的存储库、禁用 PPA 。 + +![Disable Ppa Mint Upgrade][30] + +你也可以 **降级** ,然后在维护标签页中 **移除可用的陌生的软件包** 。 + +例如,我使用一个 PPA 来安装 Shutter 。我在禁用它的 PPA 后,现在该软件包会变成 ‘陌生的’ ,因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。 + +![Foreign Package Linux Mint][31] + +#### 步骤 6: 安装升级工具 + +现在,你的系统已经更新,你已经准备好升级到 Linux Mint 20 。Linux Mint 开发组提供一个名称为 [mintupgrade][32] 的命令行工具,其唯一的目的是将 Linux Mint 19.3 升级到 Linux Mint 20 。 + +你可用使用下面的命令来安装这个工具: + +``` +sudo apt install mintupgrade +``` + +#### 步骤 7: 运行一次升级设备健康检查 + +mintupgrade 工具将会让你通过模拟升级的初始化部分来运行一次设备健康检查。 + +你可以运行这次检查来查看对你的系统做出何种更改,哪些软件包将会升级。它也将会显示不能升级和必须移除的软件包。 + +``` +mintupgrade check +``` + +在这里,它不会在你的系统上做出任何真正的更改 (即使,感觉上它正在进行做一些更改)。 + +这一步骤是非常重要的,有助于准确算出你的系统是否可以升级到 Mint 20 。 + +![Mint Upgrade Check][33] + +如果这一步骤中途失败,输入 **mintupgrade restore-sources** 来返回到你原始的 APT 配置。 + +#### 步骤 8: 下载软件包升级 + +在你对 mintupgrade 的检查输出感到满意后,你可以下载 Mint 20 升级软件包。 + +取决于你的因特网连接速度,它可能会在下载这些升级方面消耗一些时间。确保你的硬件系统接通到强电电源。 + +在软件包的下载期间,你可以继续使用你的系统进行常规工作。 + +``` +mintupgrade download +``` + +![Mint 20 Upgrade Download][34] + +注意,这行命令将把你的操作系统指向 Linux Mint 20 存储库。在使用这行命令后,如果你想降级到 Linux Mint 19.3 ,你仍然可以使用命令 “**mintupgrade restore-sources**” 来做到。 + +#### 步骤 9: 安装升级 [Point of no return] + +现在,万事俱备,你可以使用这行命令来升级到 Linux Mint 20 : + +``` +mintupgrade upgrade +``` + +给它一些时间来安装新的软件包和升级你的 Mint 到相对较新的版本。在升级过程完成后,它将要求你重新启动。 + +![Linux Mint 20 Upgrade Finish][35] + +#### 享受 Linux Mint 20 + +在你重新启动你的系统后,你将看到 Mint 20 欢迎屏幕。享受新的版本。 + +![Welcome To Linux Mint 20][36] + +### 从 Mint 18 升级到 Mint 19 + +从 Linux Mint 18.3 升级到 Linux Mint 19 的步骤与你在升级到 Linux Mint 20 中所看到的步骤非常类似。唯一的变化是检查显示管理器。 + +我将在这里快速地提及这些步骤。如果你想要更多的信息,你可以参考 Mint 20 升级过程。 + +**步骤 1:** 使用 Timeshift 创建一个系统快照 [可选,但是建议] + +**步骤 2:** 在一块外部的磁盘上备份你的文件 [可选,但是建议] + +**步骤 3: 确保你正在使用 LightDM** + +对于 Mint 19 ,你必须使用 [LightDM 显示管理器][37] 。为检查你正在使用哪种显示管理器,输入命令: + +``` +cat /etc/X11/default-display-manager +``` + +如果结果是 “/usr/sbin/**lightdm**”,那么你就有 LightDM ,你就可以继续前进了。 + +![LightDM Display Manager in Linux Mint][38] + +在另一个方面,如果结果是 “/usr/sbin/**mdm**”,你需要安装 LightDM ,[切换到 LightDM][39] 并移除 MDM 。使用这行命令来安装 LightDM : + +``` +apt install lightdm lightdm-settings slick-greeter +``` + +在安装期间,它将要求你选择显示管理器。你需要选择 LightDM 。 + +在你设置 LightDM 作为你的显示管理器后,使用下面这些命令来移除 MDM 并重新启动: + +``` +apt remove --purge mdm mint-mdm-themes* +sudo dpkg-reconfigure lightdm +sudo reboot +``` + +**步骤 4: 通过安装一些可用的更新来更新你的系统** + +``` +sudo apt update && sudo apt upgrade -y +``` + +**步骤 5: 安装升级工具** + +``` +sudo apt install mintupgrade +``` + +**步骤 6: 检查升级** + +``` +mintupgrade check +``` + +**步骤 7: 下载软件包升级** + +``` +mintupgrade download +``` + +**步骤 8: 应用升级** + +``` +mintupgrade upgrade +``` + +享受 Linux Mint 19 。 + +### 你升级到 Linux Mint 21 了吗? + +升级到 Linux Mint 20 可能不会是一种友好的体验,但是,使用新的专用 GUI 升级工具来升级到 Mint 21 变得简单多了。 + +我希望你发现这篇教程有帮助。你是选择升级到 Linux Mint 21 ?还是现在一次全新的安装? + +如果你遇到一些重要问题,或者你有一些关于升级过程的问题,请在评论区随时询问。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/upgrade-linux-mint-version/ + +作者:[Abhishek Prakash][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://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/check-linux-mint-version/ +[2]: https://itsfoss.com/wp-content/uploads/2022/08/check-for-pending-software-updates.png +[3]: https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade +[4]: https://itsfoss.com/wp-content/uploads/2022/08/mint-upgrade-tool-home-page.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/upgrade-tool-prompting-no-timeshift-snapshots.png +[6]: https://itsfoss.com/backup-restore-linux-timeshift/ +[7]: https://itsfoss.com/wp-content/uploads/2022/08/taking-snapshot-with-timeshift.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/kazam-ppa-does-not-support-jammy.png +[9]: https://itsfoss.com/kazam-screen-recorder/ +[10]: https://itsfoss.com/wp-content/uploads/2022/08/disable-unsupported-ppas-in-software-sources.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/downgrade-package-to-avoid-conflicts.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/list-changes-that-need-to-be-done.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/phase-2-simulation-and-package-download-.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/package-downloading.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/upgrading-phase.png +[16]: https://itsfoss.com/wp-content/uploads/2022/08/selecting-orphan-packages-you-want-to-keep-with-preferences.png +[17]: https://itsfoss.com/wp-content/uploads/2022/08/specify-name-of-the-package-to-keep.png +[18]: https://itsfoss.com/wp-content/uploads/2022/08/upgrade-successful-800x494.png +[19]: https://itsfoss.com/wp-content/uploads/2022/08/neofetch-output-linux-mint-21.png +[20]: https://itsfoss.com/32-bit-64-bit-ubuntu/ +[21]: https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/ +[22]: https://itsfoss.com/check-linux-mint-version/ +[23]: https://youtu.be/LYnXEaiAjsk +[24]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 +[25]: https://itsfoss.com/wp-content/uploads/2020/07/mint-20-upgrade-check-architecture.jpg +[26]: https://itsfoss.com/wp-content/uploads/2020/07/update-manager-linux-mint.jpg +[27]: https://itsfoss.com/backup-restore-linux-timeshift/ +[28]: https://itsfoss.com/wp-content/uploads/2018/07/snapshot-linux-mint-timeshift.jpeg +[29]: https://itsfoss.com/ppa-guide/ +[30]: https://itsfoss.com/wp-content/uploads/2020/07/disable-ppa-mint-upgrade.jpg +[31]: https://itsfoss.com/wp-content/uploads/2020/07/foreign-package-linux-mint.jpg +[32]: https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade +[33]: https://itsfoss.com/wp-content/uploads/2020/07/mint-upgrade-check.jpg +[34]: https://itsfoss.com/wp-content/uploads/2020/07/mint-upgrade-download.jpg +[35]: https://itsfoss.com/wp-content/uploads/2020/07/linux-mint-20-upgrade-finish.jpg +[36]: https://itsfoss.com/wp-content/uploads/2020/07/welcome-to-linux-mint-20.jpg +[37]: https://wiki.archlinux.org/index.php/LightDM +[38]: https://itsfoss.com/wp-content/uploads/2018/07/lightdm-linux-mint.jpeg +[39]: https://itsfoss.com/switch-gdm-and-lightdm-in-ubuntu-14-04/ From 055065458ae5a04b54f259ddd453f77d1996eebf Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:15:58 +0800 Subject: [PATCH 0890/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220826=20Want=20to=20Help=20Improve=20GNOME-=20Thi?= =?UTF-8?q?s=20New=20Tool=20Gives=20You=20the=20Chance!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ME- This New Tool Gives You the Chance!.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md diff --git a/sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md b/sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md new file mode 100644 index 0000000000..b2629b4e85 --- /dev/null +++ b/sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md @@ -0,0 +1,81 @@ +[#]: subject: "Want to Help Improve GNOME? This New Tool Gives You the Chance!" +[#]: via: "https://news.itsfoss.com/gnome-improve-tool/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Want to Help Improve GNOME? This New Tool Gives You the Chance! +====== +A new tool to enable GNOME users to provide insights on their configuration and usage to help improve the user experience. + +![Want to Help Improve GNOME? This New Tool Gives You the Chance!][1] + +GNOME has come up with a tool that lets users provide **anonymous insights** about their configurations, extensions, and GNOME-tuned settings. + +This should help GNOME learn more about user preferences and make better decisions to enhance the user experience. + +Interestingly, an intern at **Red Hat** (*Vojtech Stanek*) created this tool. + +### ℹ️ GNOME Info Collect: Ready to Install? + +![gnome info collect terminal][2] + +The tool (gnome-info-collect) is a simple terminal program that you need to download, install, and run to share the data with GNOME. + +Here's what the tool needs to collect from your GNOME system: + +* Hardware information (including manufacturer and model). +* System settings (including workspace configuration, sharing features, SSH etc.) +* GNOME shell extensions installed and enabled. +* Application information (like installed apps and favorites). +* Linux distro and version. +* Flatpak and Flathub status. +* Default browser. +* [Salted hash][3] of machine ID+username. + +You can find the package suitable for your distribution and more details on the data collected available on its [GitLab page][4]. + +For instance, if you have an **Ubuntu-based distribution**, you can install it by typing in: + +``` +sudo snap install --classic gnome-info-connect +``` + +Once installed, fire it up using the following command in the terminal: + +``` +gnome-info-collect +``` + +Next, it displays the data that it intends to share with GNOME. So, if it looks good to you, you can choose to upload the data to GNOME's servers. + +![][5] + +Considering the data remains anonymous, it should help GNOME understand what their users like, and focus on those improvements over time. + +[Download gnome-info-collect][6] + +💬 *What do you think about this new data collection tool for GNOME? Share your thoughts in the comments down below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-improve-tool/ + +作者:[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/content/images/size/w1200/2022/08/gnome-improvement-tool.jpg +[2]: https://news.itsfoss.com/content/images/2022/08/gnome-info-collect-terminal.png +[3]: https://en.wikipedia.org/wiki/Salt_(cryptography) +[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ +[5]: https://news.itsfoss.com/content/images/2022/08/gnome-info-collect-sharing.png +[6]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ From fec5dc62444e05d4dd391b8076eb0bbc82f0c443 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:19:50 +0800 Subject: [PATCH 0891/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220826=20Lutris=200.5.11=20Adds=20Open=20Source=20?= =?UTF-8?q?Macintosh=20Emulators=20and=20Amazon=20Games=20Integration.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Emulators and Amazon Games Integration.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md diff --git a/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md b/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md new file mode 100644 index 0000000000..2d77c32b17 --- /dev/null +++ b/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md @@ -0,0 +1,108 @@ +[#]: subject: "Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration" +[#]: via: "https://news.itsfoss.com/lutris-0-5-11-release/" +[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration +====== +Lutris 0.5.11 is a nice update with new Macintosh emulators and Amazon Games integration. + +![Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration][1] + +Lutris is an open-source game manager on Linux, giving you easy access to all kinds of game clients like Ubisoft Connect, Epic Games Store, and more. + +It made things so much easier for many Linux users. We also interviewed its creator in the past, with an insightful conversation: + +[The Progress Linux has Made in Terms of Gaming is Simply Incredible: Lutris Creator][2] + +Now, with the latest update to it (a minor release), we have some exciting feature additions! + +### 🆕 Lutris 0.5.11: What's New? + +![Lutris 0.5.11][4] + +Being a point release, you may not notice any visual changes, but you get some new features and fixes to improve your user experience. + +First, I'd like to mention some key features in this release: + +* Integration for Amazon Games launcher. +* Added support for open-source Macintosh emulators named SheepShaver, BasiliskII, and Mini vMac. +* Made changes to shortcuts to toggle installed (Ctrl + i) games and hidden games (Ctrl + h). +* Gnome terminal and Deepin terminal are now recognized as terminal emulators. +* Added support for Gamescope on Nvidia driver 515 and above. + +Let me discuss more about the changes: + +#### 🕹️ Amazon Prime Games Integration + +![Lutris with Amazon prime gaming support][5] + +This may not sound much, but Amazon's game launcher is a Windows-specific thing for playing games. Now, thanks to the integration support by Lutris, you can access and try playing the games available under Wine. + +You can enable Amazon Prime Gaming from **Preference>Sources**. + +#### 🖥️ Addition of Open-Source Macintosh emulators + +![Lutris with support for open-source macintosh emulators][6] + +This release has added three Macintosh open-source runners (emulators). + +Curious about what they do? + +Well, two of them (Basilisk II and Mini vMac) are made to run 32-bit Macintosh machines. And, the third one, SheepShaver, is made to run programs from the PowerPC Macintosh lineup. + +#### ⌨️ Recognize GNOME Console and Deepin Terminal + +![Running games in Linux terminal with Lutris][7] + +With this point release, the support for the GNOME console and Deepin terminal was added to emulate text-based programs. + +So, you no longer have to rely on what Lutris gives you by default! + +#### 🛠️ Other Changes + +Along with the highlights, another key change includes the s**upport for Gamescope** for Nvidia drivers 515 and above. + +Gamescope can be paradise while playing low-resolution games as it helps you to upscale the resolution. + +Some other fixes and refinements include: + +* Commands exiting with return code 256 for some installer is fixed. +* Lutris will no longer perform runtime even if the game is launched through shortcuts. +* Random crashes are now fixed when Lutris was not able to determine screen resolution. +* When Mangohud was used alongside Gamescope, it often crashed, which is now fixed. + +#### 📥 Download Lutris 0.5.11 + +There are many ways to download the latest Lutris version for your Linux system. I would recommend using the Flatpak package from [Flathub][10]. + +You can also install it from your software center, or visit the official website to explore more options. + +[Download Lutris][11] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/lutris-0-5-11-release/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/lutris-0-5-11-update.jpg +[2]: https://news.itsfoss.com/lutris-creator-interview/ +[4]: https://news.itsfoss.com/content/images/2022/08/Lutris.png +[5]: https://news.itsfoss.com/content/images/2022/08/Amazon-Prime-games-integration.png +[6]: https://news.itsfoss.com/content/images/2022/08/Macintosh-emulators-1.png +[7]: https://news.itsfoss.com/content/images/2022/08/Deepin-terminal.png +[8]: https://itsfoss.com/epic-games-linux/ +[10]: https://flathub.org/apps/details/net.lutris.Lutris +[11]: https://lutris.net/ From e715283cefc148978fbb92d05d291daf4c1b368c Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:21:22 +0800 Subject: [PATCH 0892/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220826=20Why=20Companies=20Need=20to=20Set=20Up=20?= =?UTF-8?q?an=20Open=20Source=20Program=20Office.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Set Up an Open Source Program Office.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sources/talk/20220826 Why Companies Need to Set Up an Open Source Program Office.md diff --git a/sources/talk/20220826 Why Companies Need to Set Up an Open Source Program Office.md b/sources/talk/20220826 Why Companies Need to Set Up an Open Source Program Office.md new file mode 100644 index 0000000000..5de3dc4d07 --- /dev/null +++ b/sources/talk/20220826 Why Companies Need to Set Up an Open Source Program Office.md @@ -0,0 +1,111 @@ +[#]: subject: "Why Companies Need to Set Up an Open Source Program Office" +[#]: via: "https://www.opensourceforu.com/2022/08/why-companies-need-to-set-up-an-open-source-program-office/" +[#]: author: "Sakshi Sharma https://www.opensourceforu.com/author/sakshi-sharma/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why Companies Need to Set Up an Open Source Program Office +====== +*Managing the use of open source software and decreasing compliance risks is key to the success of any software product. An open source program office can help an organisation do just that. Find out how.* + +Open source software (OSS) is integral to building a modern software solution. Be it an internal or a customer facing solution, organisations rely significantly on open source software today. OSS components are governed by their unique licence terms, and non-compliance with these can often expose organisations to security and intellectual property (IP) risks which eventually may hamper a company’s brand value. + +When development teams are delivering a software release, they are primarily trying to meet project deadlines. Therefore, the tracking of versions of components and libraries, or the third party code pulled into the project, is not as rigorous as it should be. This means that licences and vulnerable OSS components can enter the code base and be delivered to customers. This can be risky for both the customer and the company delivering the software solution. + +Another increasingly challenging area is that of developers contributing to open source projects. Companies can reap numerous benefits if they do so. This includes keeping skills current, retention of staff, attracting developers to work for the organisation, and improving the image of the company. Many open source projects require developers to sign a contributor licence agreement. This states that any IP created by the developer belongs to the project and not to the contributing developer. In this scenario, organisations need to be careful that IP and trade secrets that are not open source are not being signed over to open source projects. + +Developers need to be educated about open source licensing issues, determining what to leverage, when or how much they can contribute to the community, and what packages might bring risk to the organisation’s reputation. All this can be streamlined by putting a strategic policy and operations in place. One way of doing this is by creating an entity that is dedicated to working around all things open source—an entity called the open source program office (OSPO). + +An OSPO creates an ecosystem for employees to use open source software in a way that compliance risks are kept at bay. The role of an OSPO is not limited to supervising open source usage; it is also responsible for contributing back to the community and managing the company’s growth in the market by actively engaging in events, as well as conducting webinars and campaigns. + +In this article we will see why there is a need for building an OSPO, and how it has emerged as a prominent entity for any open source policy and governance programme. + +### Why should you have an OSPO? + +With the wide use of open source software, regulating its usage and keeping the compliance strategy in check can be often overwhelming for the teams involved in the product development cycle. + +Developers often overlook licence obligations, and sometimes the management or stakeholders are also not fully aware of the implications of non-compliance with these open source licences. OSPO handles open source software right from its on-boarding till the time it is delivered to the end user and everything inbetween, irrespective of whether it is being used for internal or external purposes. + +An OSPO builds a solid foundation by starting compliance and regulatory checks in the early software development life cycle. This usually begins by guiding and aligning the involved team members towards a common path that benefits the organisation’s values. The OSPO puts in place policies and processes around open source usage and governs the roles and responsibilities across the company. + +To conclude, it aligns the efforts of all relevant teams involved in building the product and helps increase the organisation’s capacity for better and effective use of open source. + +| The rise of the OSPO | +| :- | +| Companies like Microsoft, Google and Netflix have well established OSPOs within their organisations. Many others, like Porsche and Spotify, are building their own OSPOs to leverage the usage of open source in an efficient way. +Here is what leaders from renowned companies have to say about OSPO practices. + +“As a business, it’s a culture change,” explains Jeff McAffer, who ran Microsoft’s Open Source Program Office for years and now is a director of products at GitHub focused on promoting open source in enterprises. “Many companies, they’re not used to collaboration. They’re not used to engaging with teams outside of their company.” +“Engineering, business, and legal stakeholders each have their own goals and roles, oftentimes making trade-offs between speed, quality, and risk,” explains Remy DeCausemaker, head of open source at Spotify. “An OSPO works to balance and connect these individual goals into a holistic strategy that reduces friction.” +Gil Yahuda, Verizon Media’s OSPO leader, states, “We seek to create a working environment that talent wants to be part of. Our engineers know that they work in an open source friendly environment where they are supported and encouraged to work with the open source communities that are relevant to their work.” | + +Here is what leaders from renowned companies have to say about OSPO practices. + +* “As a business, it’s a culture change,” explains Jeff McAffer, who ran Microsoft’s Open Source Program Office for years and now is a director of products at GitHub focused on promoting open source in enterprises. “Many companies, they’re not used to collaboration. They’re not used to engaging with teams outside of their company.” +* “Engineering, business, and legal stakeholders each have their own goals and roles, oftentimes making trade-offs between speed, quality, and risk,” explains Remy DeCausemaker, head of open source at Spotify. “An OSPO works to balance and connect these individual goals into a holistic strategy that reduces friction.” +* Gil Yahuda, Verizon Media’s OSPO leader, states, “We seek to create a working environment that talent wants to be part of. Our engineers know that they work in an open source friendly environment where they are supported and encouraged to work with the open source communities that are relevant to their work.” + +![Figure 1: OSPO prevalence by industry 2018-2021 (Source: https://github.com/todogroup/osposurvey/tree/master/2021)][1] + +### The function of an OSPO + +The function of an OSPO may vary from organisation to organisation depending on the number of its employees and the number of people that are part of the OSPO team. Another factor is the purpose of using open source. An organisation may only want to use open source software for building the product or may also look at contributing back to the community. + +Evaluating factors such as which open source licences are appropriate or whether full-time employees should be contributing to an open source project may be part of the OSPO’s role. Putting a contributor licence agreement (CLA) in place for developers that are willing to contribute and determining what open source components will help in accelerating a product’s growth and quality are some other roles of an OSPO. + +Some of the key functions of an OSPO involve: + +* Putting an open source compliance and governance policy in place to mitigate intellectual property risks to the organisation +* Educating developers towards better decision-making +* Defining policies that lay out the requirements and rules for working with open source across the company +* Monitoring the usage of open source software inside as well as outside the organisation +* Conducting meetings after every software release to discuss what went well and what could be done better with the OSS compliance process +* Accelerating the software development life cycle (SDLC) +* Transparency and coordination amongst different departments +* Streamlining processes to help mitigate risks at an early stage +* Encouraging members to contribute upstream to gain the collaborative and innovative benefits of open source projects +* Producing a report with suitable remediation and recommendations for the product team +* Preparing compliance artifacts and ensuring licence obligations are fulfilled + +### Building an OSPO + +The OSPO is typically staffed with personnel from multiple departments within the company. The process involves training and educating the relevant departments regarding open source compliance basics and the risks involved in its usage. It may provide legal and technical support services so that the open source requirement goals are met. + +An OSPO may be formed by the following people within the organisation (this is a non-exhaustive list of people who can be a part of it): + +* Principal/Chief: This role can be taken by the flag bearer, the one who runs the OSPO. The chief knows the various aspects of using open source like the effect of using different components, licence implications, development and contributing to the community. These requirements are entirely dependent on an organisation’s needs. +* Program manager: The program manager sets the requirements and objectives for the target solution. He/she works alongside the product and engineering teams to connect workflows. This includes ensuring that policies and tools are implemented in a developer-friendly manner. +* Legal support: Legal support can come from outside the firm or in-house, but is an important part of an OSPO. The legal role works closely with the program manager to define policies that govern OSS use, including which open source licences are allowed for each product, how to (or whether to) contribute to existing open source projects, and so on. +* Product and engineering teams/developers: The engineering team should be well-versed with open source licence(s) and their associated risks. The team must seek approval from the OSPO before consuming any open source component. The team may have to be trained with respect to open source compliance basics and its usage at regular intervals +* CTOs/CIOs/stakeholders: A company’s leadership has a huge impact on the OSPO strategies. The stakeholders have a great say in the decision making process for any product/solution’s delivery. Due to the nature of the OSPO’s function within a company, the VP of engineering, CTO/CIO, or chief compliance/risk officer must get involved in the OSPO. +* IT teams: Having support from the IT department is very important. An OSPO may be tasked with implementing internal tools to improve developer efficiency, monitor open source compliance, or dictate open source security measures. IT teams are key in helping to connect workflows, and ensure policies are implemented in a developer-friendly manner. + +In the 2021 State of OSPO Survey conducted by the TODO Group, the key findings were: + +* There are many opportunities to educate companies about how OSPOs can benefit them. +OSPOs had a positive impact on their sponsor’s software practices, but their benefits differed depending on the size of an organisation. +* Companies that intended to start an OSPO hoped it would increase innovation, but setting a strategy and a budget remained top challenges to their goals. +* Almost half of the survey participants without an OSPO believed it would help their company, but of those that didn’t think it would help, 35 per cent said they haven’t even considered it. +* 27 per cent of survey participants said a company’s open source participation is very influential in their organisation’s buying decisions. + +The use of open source software when building any software solution is almost inevitable today. However, the open source licence risks cannot be overseen. What is needed is a strategic streamlining process that helps combat the compliance issues that come in the way of using open source components effectively. + +An OSPO helps set a regulatory culture by building a centralised dedicated team that educates employees and brings awareness regarding everything related to open source usage in an organisation. An OSPO can also work as a guide to fetch top talent from the industry, which will eventually be a boon for business goals.Sakshi Sharma + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/why-companies-need-to-set-up-an-open-source-program-office/ + +作者:[Sakshi Sharma][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/sakshi-sharma/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-1-OSPO-prevalence-by-industry-2018-2021-2.jpg From f170df074b98a486a6a597f55db8046ac510c883 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:24:45 +0800 Subject: [PATCH 0893/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220826=20Wii=20U=20Emulator=20Cemu=20Going=20Open?= =?UTF-8?q?=20Source=20Is=20Significant=20For=20Emulation,=20Here-s=20Why.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s Significant For Emulation, Here-s Why.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md diff --git a/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md b/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md new file mode 100644 index 0000000000..478b3db313 --- /dev/null +++ b/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md @@ -0,0 +1,36 @@ +[#]: subject: "Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why" +[#]: via: "https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why +====== +The Wii U emulator Cemu’s developer announced a significant 2.0 version release on Tuesday, delivering Linux binaries for the first time and opening up eight years of labour. Cemu, a Wii U emulator, made history in 2017 by earning thousands of dollars each month through Patreon to support its development. Cemu’s well-known Patreon, which briefly reached a peak income of $25,000, raised concerns about the morality of emulation, particularly when money is exchanged and when a project is “closed source” as opposed to “open source,” which means that the source code isn’t made available to the general public. + +One of the main ways the emulation community defends itself from legal action is by making its source code available to the public, allowing litigious companies like Nintendo to examine it and verify that none of their proprietary code is used in the reverse-engineering process. + +Linux support, according to Exzap, is “still pretty rough around the edges,” but he believes that will change rapidly as more emulator developers become familiar with Cemu and start to contribute to the project. Cemu was previously only compatible with Windows, but now that Linux is supported, it is possible to install it quickly on the Steam Deck. Before Cemu introduces flatpak support for one-click installation, it won’t be simple to start using the Deck, however that topic is already being explored on Github. + +The author of Cemu used the 2.0 announcement to briefly discuss the emulator’s history; they were the only developers for the most of the emulator’s existence, and they claimed that the last two years have been particularly taxing on the project. + +Exzap will continue to contribute, but anticipates that having other developers will aid in the creation of several important features, such as the ability to pause and resume emulation and enhance performance on older hardware. + +“I have been working on Cemu for almost 8 years now, watching the project grow from an experiment that seemed infeasible, to something that, at its peak, was used by more than a million people,” exzap wrote on Tuesday. “Even today, when the Wii U has been mostly forgotten, we still get a quarter million downloads each month. There are still so many people enjoying Wii U games with Cemu and I will be eternally grateful that I got the chance to impact so many people’s life in a positive way, even if just a tiny bit.” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/ + +作者:[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 From 268bb0b176fb903e825cce053421d3960e53e265 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:30:03 +0800 Subject: [PATCH 0894/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220826=20Microservices=20Deployment=20Architecture?= =?UTF-8?q?=20with=20Kubernetes=20Clusters.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t Architecture with Kubernetes Clusters.md | 508 ++++++++++++++++++ 1 file changed, 508 insertions(+) create mode 100644 sources/tech/20220826 Microservices Deployment Architecture with Kubernetes Clusters.md diff --git a/sources/tech/20220826 Microservices Deployment Architecture with Kubernetes Clusters.md b/sources/tech/20220826 Microservices Deployment Architecture with Kubernetes Clusters.md new file mode 100644 index 0000000000..8654f7ed00 --- /dev/null +++ b/sources/tech/20220826 Microservices Deployment Architecture with Kubernetes Clusters.md @@ -0,0 +1,508 @@ +[#]: subject: "Microservices Deployment Architecture with Kubernetes Clusters" +[#]: via: "https://www.opensourceforu.com/2022/08/microservices-deployment-architecture-with-kubernetes-clusters/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microservices Deployment Architecture with Kubernetes Clusters +====== +*Scalability and resilience are two of the most important reasons to move from monoliths to microservices. The Kubernetes platform offers both while orchestrating containers. In this Part 9 of the series, reference architecture for a user management system is presented and demonstrated around Kubernetes. This architecture includes Spring Boot microservices, Apache Kafka and MySQL.* + +look at any e-commerce business. It flourishes during the weekends and on special days. The business is normally low till noon and peaks in the evenings. So the systems that back such e-commerce, banking and government services, etc, experience different loads at different points of time, and need to be scaled up or down as automatically as possible. Such systems require appropriate deployment architecture and orchestration tooling. + +In the previous part of this series of articles, we have seen how docker-compose is useful in deploying multiple containerised services all at once, on a single machine. Though docker-compose is good enough for container deployment, it falls short when it comes to container orchestration. It cannot track the containers and maintain the stability of the infrastructure. That’s where Kubernetes comes to our rescue. + +Kubernetes can deploy containerised services not just on one machine but also on a cluster of any number of machines. It can deploy multiple instances of the same service across the cluster. Kubernetes keeps track of each of the deployed containers. And in case of crashes, it manages the scalability levels by automatically bringing up replacement containers without any manual intervention. + +Let us architect the UMS (user management system) deployment with the help of Kubernetes. + +### Reference architecture + +We have already decomposed our UMS into four microservices, namely: *AddService*, *FindService*, *SearchService* and *JournalService*. These use H2 relational databases for storage and Apache Kafka for asynchronous inter-service collaboration. Now, let’s refactor the architecture to achieve the following: + +1. Replace H2 with MySQL so that the data is saved persistently and shared across all the service instances. +2. Deploy Kafka cluster. +3. Deploy three instances of AddService. +4. Deploy six instances of FindService and SearchService. +5. Deploy one instance of JournalService. + +Since we have only developed *AddService* so far, we will cover the first three goals in this part. Figure 1 gives our reference architecture. + +![Figure 1: Reference architecture][1] + +### Spring Boot and MySQL + +The AddService is currently using the H2 database. As you know, H2 is an in-memory database engine. The data is lost once the engine is restarted. Such behaviour is not desired in the production. We need a database that is persistent. It can be an RDBMS or a NoSQL database like Mongo, etc. We chose MySQL for this illustration. + +Since SpringBoot does not offer the MySQL connector out-of-the-box, we need to add it as a dependency in the *pom.xml* of the *AddService*. + +``` + + mysql + mysql-connector-java + runtime + +``` + +We also need to update *application.properties* to specify the JDBC driver along with a connection string and access details for the MySQL database engine. + +``` +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://mysqldb:3306/glarimy?allowPublicKeyRetrieval=true&useSSL=false +spring.datasource.username=root +spring.datasource.password=admin +``` + +Because of the above configuration, the repository of *AddService* attempts to connect to the *glarimy* database on a machine named *mysqldb* on port number 3306. We are recording the password in clear text in this configuration, only for simplicity. We will find a better way later! + +A few other JPA-specific configurations may also be provided as needed. For example, the following will direct the Hibernate system to scan the code for JPA annotations and keep the schema on the database updated at the time of bootstrapping: + +``` +spring.jpa.hibernate.ddl-auto=update +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +``` + +### MySQL as a Docker container + +Since the *AddService* depends on MySQL, we can update the existing docker-*compose.yml* for deploying and linking it: + +``` +mysqldb: + image: mysql:latest + networks: + - glarimy + environment: + - MYSQL_ROOT_PASSWORD=admin + - MYSQL_DATABASE=glarimy + volumes: + - “mysql_data:/glarimy”mysqldb: +``` + +The above manifest pulls *mysql:*latest image from the Docker Hub and runs the container. The name of the container must be *mysqldb* as the *AddService* is looking for the database engine on a machine named *mysqldb*. Also, both must run on the same network to resolve the name. Since the*AddService* was configured to run on *glarimy* network (in the previous part), *mysqldb* is also configured to run on the same network. + +The above configuration is also directing the container to create a database named *glarimy* since the *AddService* is configured to use that database. + +However, this is still not sufficient. The MySQL container writes the data on to the file system that is mapped to the container. Once the container is restarted, the files are gone! That is not good for us. We want the data to be written on to the disk in such a way that it outlives the containers. In other words, we want to mount a volume so that the container uses only that mount point. The last line in the above configuration is meant for that. + +The following is the resulting full manifest in*docker-compose.yml*: + +``` +version: “2” +networks: +glarimy: +driver: bridge +services: +zookeeper: +image: docker.io/bitnami/zookeeper:3.8 +ports: +- “2181:2181” +volumes: +- “zookeeper_data:/glarimy” +environment: +- ALLOW_ANONYMOUS_LOGIN=yes +networks: +- glarimy +kafka: +image: docker.io/bitnami/kafka:3.1 +ports: +- “9092:9092” +volumes: +- “kafka_data:/glarimy” +environment: +- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 +- ALLOW_PLAINTEXT_LISTENER=yes +networks: +- glarimy +depends_on: +- zookeeper +mysqldb: +image: mysql:latest +networks: +- glarimy +environment: +- MYSQL_ROOT_PASSWORD=admin +- MYSQL_DATABASE=glarimy +volumes: +- “mysql_data:/glarimy” +ums: +image: glarimy/ums-add-service +networks: +- glarimy +depends_on: +- zookeeper +- mysqldb +volumes: +zookeeper_data: +driver: local +kafka_data: +driver: local +mysql_data: +driver: local +``` + +Run the following command to deploy the containers, like we did in the previous part: + +``` +$ docker-compose up +``` + +However, this is not our actual goal. The docker-compose can deploy multiple containers in one go, only on a single machine. It does not offer resilience and does not offer cluster deployment. + +### Kubernetes and Minikube + +The production infrastructure of microservices consists of several machines forming a cluster. The containers are expected to be distributed fairly across the machines (aka nodes) in the cluster. New nodes may be added to the cluster and existing nodes may be removed from it at any time. Yet, the containers are expected to be rescheduled on the current set of nodes. + +Kubernetes does take care of such an orchestration. It deploys the containers across the cluster and redistributes them whenever needed — all without any manual intervention. + +Figure 2 is a high-level presentation of Kubernetes architecture. + +![Figure 2: Kubernetes architecture][2] + +The Kubernetes cluster consists of one or more nodes, which may be physical or virtual machines. Each node can run several pods. A pod is a group of containers. Each pod gets an ephemeral IP address that is known as cluster-ip address. This address is local to the cluster and visible to all other pods across it. In other words, the pods within the cluster can reach out to each other using the cluster-ip address. + +Normally, a pod consists of only one application container that runs a microservice. Besides this, a pod may also run several other infrastructure containers that take on tasks such as monitoring, logging, etc. + +A deployment unit in Kubernetes consists of a set of such pods. This set is known as a replica-set. For example, you can create a deployment unit for AddService in such a way that three pods are scheduled in the cluster with each pod running an AddService container. If any of the pods crash for whatever reason, Kubernetes schedules another pod on the cluster in such a way that three pods of AddService are always running. Note that the pods of a replica-set do not necessarily run on a single node. + +Though this is sufficient for the containers on different pods/nodes to collaborate with each other, it is very cumbersome for a pod to address another pod based on an ephemeral address. To solve this problem, we can create a front-end to each of the replica-sets. Such a front-end is called a service. Each service is exposed with an address that is not ephemeral. The address is called node-port if it is made visible only within the cluster or external-ip if exposed outside the cluster. A service can also be configured with a load balancer so that the incoming calls can be routed to the end-points (pods) in a fairly balanced manner. + +This is Kubernetes in a nutshell. There are several tools available in the market to set up a Kubernetes cluster. Minikube is one such tool that helps in setting up single-node clusters. The instructions given below can be followed to set up the Minikube cluster on an Ubuntu machine that has Docker engine running. + +Download Minikube distribution. + +``` +$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 +``` + +Give the following command to install Minikube: + +``` +$ sudo install minikube-linux-amd64 /usr/local/bin/minikube +``` + +Create a group named docker and add the user: + +``` +$ sudo usermod -aG docker && newgrp docker +``` + +Start the cluster: + +``` +$ minikube start +``` + +Create this handy alias: + +``` +$ alias kubectl=”minikube kubectl --” +``` + +A single-node Kubernetes cluster is now up and running on the local machine. + +### Deploying MySQL on Kubernetes + +Let us deploy a replica-set consisting of just one pod of MySQL. The service is exposed by the name mysqldb. Other pods must use this name in order to access the database service. The port 3306 is exposed only within the cluster. We don’t want any one from outside the cluster to log in to our database server. The deployment also mandates to create a schema by the name *glarimy* and to use a mounted volume. + +``` +apiVersion: v1 +kind: Service +metadata: +name: mysqldb +spec: +ports: +- port: 3306 +selector: +app: mysqldb +clusterIP: None +--- +apiVersion: apps/v1 +kind: Deployment +metadata: +name: mysqldb +spec: +selector: +matchLabels: +app: mysqldb +strategy: +type: Recreate +template: +metadata: +labels: +app: mysqldb +spec: +containers: +- image: mysql:5.6 +name: mysqldb +env: +- name: MYSQL_ROOT_PASSWORD +value: admin +- name: “MYSQL_DATABASE” +value: “glarimy” +ports: +- containerPort: 3306 +name: mysqldb +volumeMounts: +- name: mysql-persistent-storage +mountPath: /var/lib/mysql +volumes: +- name: mysql-persistent-storage +persistentVolumeClaim: +claimName: mysqldb +--- +apiVersion: v1 +kind: PersistentVolume +metadata: +name: mysqldb +labels: +type: local +spec: +storageClassName: manual +capacity: +storage: 20Gi +accessModes: +- ReadWriteOnce +hostPath: +path: “/mnt/data” +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: +name: mysqldb +spec: +storageClassName: manual +accessModes: +- ReadWriteOnce +resources: +requests: +storage: 2Gi +``` + +### Deploying Kafka on Kubernetes + +Apache Kafka cluster requires Zookeeper for internal management. So we need to deploy both. Since Kafka and Zookeeper have their own discovery protocol, we expose them on NodePort and connect them. + +``` +apiVersion: v1 +kind: Service +metadata: +labels: +app: zookeeper +name: zookeeper +spec: +type: NodePort +ports: +- name: zookeeper-port +port: 2181 +nodePort: 30181 +targetPort: 2181 +selector: +app: zookeeper +--- +apiVersion: apps/v1 +kind: Deployment +metadata: +labels: +app: zookeeper +name: zookeeper +spec: +selector: +matchLabels: +app: zookeeper +replicas: 1 +template: +metadata: +labels: +app: zookeeper +spec: +containers: +- image: bitnami/zookeeper +name: zookeeper +ports: +- containerPort: 2181 +env: +- name: ZOOKEEPER_ID +value: “1” +- name: ZOOKEEPER_SERVER_1 +value: zookeeper +- name: ALLOW_ANONYMOUS_LOGIN +value: “yes” +--- +apiVersion: v1 +kind: Service +metadata: +labels: +app: kafka +name: kafka +spec: +type: NodePort +ports: +- name: kafka-port +port: 9092 +nodePort: 30092 +targetPort: 9092 +selector: +app: kafka +--- +apiVersion: apps/v1 +kind: Deployment +metadata: +labels: +app: kafka +name: kafka +spec: +selector: +matchLabels: +app: kafka +replicas: 1 +template: +metadata: +labels: +app: kafka +spec: +containers: +- name: kafka +image: bitnami/kafka +ports: +- containerPort: 9092 +env: +- name: KAFKA_BROKER_ID +value: “1” +- name: MY_MINIKUBE_IP +valueFrom: +fieldRef: +fieldPath: status.hostIP +- name: KAFKA_ZOOKEEPER_CONNECT +value: “$(MY_MINIKUBE_IP):30181” +- name: KAFKA_LISTENERS +value: “PLAINTEXT://:9092” +- name: MY_POD_IP +valueFrom: +fieldRef: +fieldPath: status.podIP +- name: KAFKA_ADVERTISED_LISTENERS +value: “PLAINTEXT://$(MY_POD_IP):9092” +- name: ALLOW_PLAINTEXT_LISTENER +value: “yes” +``` + +### Deploying AddService on Kubernetes + +And, finally, we want to deploy three instances of*AddService* and expose them to the outside world through a load balancer with an *external-ip*. + +``` +apiVersion: apps/v1 +kind: Deployment +metadata: +name: ums-add-service +labels: +app: ums-add-service +spec: +replicas: 3 +selector: +matchLabels: +app: ums-add-service +template: +metadata: +labels: +app: ums-add-service +spec: +containers: +- name: ums-add-service +image: glarimy/ums-add-service +ports: +- containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: +name: ums-add-service +labels: +name: ums-add-service +spec: +type: LoadBalancer +ports: +- port: 8080 +selector: +app: ums-add-service +``` + +This whole configuration can be written in one single manifest file and deployed with one single command: + +``` +$ kubectl create -f .yml +``` + +In order to run the load balancer, the following command also needs to run on a separate terminal: + +``` +$ minikube tunnel +``` + +You can check the deployed service using the following command: + +``` +$ kubectl get services +``` + +It gives an output that looks like Figure 3. It lists the services, their addresses, etc. + +![Figure 3: Kubernetes services][3] + +The following command lists the deployments, which show the number of pods of each deployment that is running: + +``` +$ kubectl get deployments +``` + +The output looks like Figure 4. + +![Figure 4: Kubernetes deployment][4] + +And, finally, to see the real pods that run the containers, use the following command: + +``` +$ kubectl get pods +``` + +Figure 5 shows that there are three pods running for *AddService*, and one pod running for Zookeeper, Kafka and MySQL each. + +![Figure 5: Pods][5] + +Since the *AddService* is exposed with an external-ip, it can be accessed using the following command: + +``` +$ curl -X POST -H ‘Content-Type: application/json’ -i http://:8080/user --data ‘{“name”:”Krishna Mohan”, “phone”:9731423166}’ +``` + +### Why is this reference architecture? + +Irrespective of the nature of the application, number of microservices, platforms on which they are developed, services like databases, brokers, etc, the overall architecture remains the same like what has been described here. + +The development architecture focuses on service decomposition, platform selection, framework selection, design of API, repositories, etc. This part was addressed using our understanding of domain driven design, object-oriented patterns, frameworks like SpringBoot, Flask, Express, etc. + +The deployment architecture focuses on number of machines, nodes, replica-sets, pods, address-mechanisms, volumes, etc. This part is addressed using our understanding of container technology and Kubernetes. We will dwell into design patterns associated exclusively with microservices like gateways, circuit breakers, registries, etc, in future. The good thing is that Kubernetes and other such tools implement many of these patterns out-of-the-box. + +Before going that far, we will develop the *FindService*, *SearchService* and *JournalService* on Python and Node platforms in the next parts of this series of articles so that we take UMS to a conclusion. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/microservices-deployment-architecture-with-kubernetes-clusters/ + +作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Reference-architecture.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Kubernetes-architecture.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-3-Kubernetes-services.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-4-Kubernetes-deployment.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-5-Pods.jpg From 545fa73e63458e47e7cac0e1de8a7df185a69ef2 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:31:18 +0800 Subject: [PATCH 0895/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220826=20Bash=20Scripting=20=E2=80=93=20Select=20L?= =?UTF-8?q?oop=20Explained=20With=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g – Select Loop Explained With Examples.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 sources/tech/20220826 Bash Scripting – Select Loop Explained With Examples.md diff --git a/sources/tech/20220826 Bash Scripting – Select Loop Explained With Examples.md b/sources/tech/20220826 Bash Scripting – Select Loop Explained With Examples.md new file mode 100644 index 0000000000..9cd6b6e1c1 --- /dev/null +++ b/sources/tech/20220826 Bash Scripting – Select Loop Explained With Examples.md @@ -0,0 +1,169 @@ +[#]: subject: "Bash Scripting – Select Loop Explained With Examples" +[#]: via: "https://ostechnix.com/bash-select-loop/" +[#]: author: "Karthick https://ostechnix.com/author/karthick/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Bash Scripting – Select Loop Explained With Examples +====== +Creating Menu Driven Scripts Using Bash Select Loop + +We have seen about bash **for loop**, **while loop**, and **until loop** in our previous articles with detailed examples. Bash offers one more type of loop called **select loop**, which will allow you to **create menu-driven scripts**. + +Menu-driven scripts are good alternatives to scripts that require users to pass arguments to perform an action. You can add more verbosity in your menus and users have to just select the option for the program to do its job. + +Take a look at our comprehensive article on `for loop`, `while loop`, and `until loop`. + +* [Bash Scripting – For Loop Explained With Examples][1] +* [Bash Scripting – While And Until Loop Explained With Examples][2] + +### Bash Select Loop - Syntax + +The `select loop` syntax is a bit similar to the `for loop` syntax. In the `for loop`, every element will be iterated and for each element, you will write the logic to process it. But `select loop` will automatically convert the list of elements into the numbered menu. + +``` +select fav in ubuntu popos mint kubuntu +do + echo "My fav distribution = ${fav}" +done +``` + +**Explanation:** + +* The loop should start with the `"select"` keyword. +* After the select keyword comes the variable which will store the value you choose from the menu. In my case, I have given the variable name as "fav". +* After the in keyword, you have to give the list of elements. These elements will be converted into a menu. +* Your logic should be placed within the do and the done block. + +Now, go ahead and copy the above snippet and run it in your terminal. It will create a menu and wait for your response. + +![Create Menu Driven Scripts Using Bash Select Loop][3] + +### Select Loop - Response + +Let’s understand the behavior of the select loop when you give the response. + +The `select loop` will only accept the menu number as the argument. Depending upon the menu number you choose, the corresponding value will be stored in the variable(fav). The number from the option which you choose will be stored in the **"REPLY"** variable. + +Check the following code. I have selected the choice **2**. + +``` +$ select fav in ubuntu popos mint kubuntu +do + echo "My fav distribution = ${fav}" +done +1) ubuntu +2) popos +3) mint +4) kubuntu +#? 2 +My fav distribution = popos +#? +``` + +![Bash Select Loop Response][4] + +The select loop will not terminate until you cancel it or use the break statement to exit the loop in your script. I have used the break statement after my logic flow so the loop will be terminated with just one selection. + +The [break][5] statement exit out of the loop once it is called so any pending operation will be skipped in the loop. The following code explains the use of the break statement. + +``` +select fav in ubuntu popos mint kubuntu +do + echo "My fav distribution = ${fav}" + break +done +``` + +![Bash Select Loop With Break Statement][6] + +The default behavior of the select loop is that when the user is not providing the input it will again prompt for the input without exiting the loop. + +![Bash Select Loop Without Input][7] + +### Select Loop - Setting Custom Prompt + +By default, the select loop will use **"#?"** as the prompt. You can also set a custom prompt as per your wish by setting the **PS3 environmental variable**. + +``` +PS3="Choose your fav distribution :: " +select fav in ubuntu popos mint kubuntu; do + echo "My fav distribution = ${fav}" + break +done +``` + +![Set Custom Prompt][8] + +### Creating A Simple Menu Driven Backup And Restore Script + +Till now all we have seen is about the select loop syntax and its behavior. Let’s create a simple backup and restore script with menu driven approach. + +Take a look at the below code. Two functions, **backup()** which will take backup, and **restore()** which will revert the file to the source. + +I am just taking backup only for the `.bashrc` file for demonstration but you can tweak this script as per your requirement. Using the **[conditional statements][9]**, I am validating the input and triggering the respective function. + +``` +#!/usr/bin/env bash + +SOURCE="/home/${USER}/.bashrc" +DESTINATION="/home/${USER}/Documents/" + +# This function will take backup +function backup(){ + rsync -a --progress --delete-before --info=progress2 ${SOURCE} ${DESTINATION} +} + +# This function will restore the backup +function restore(){ + rsync -a --progress --delete-before --info=progress2 ${DESTINATION} ${SOURCE} +} + +PS3="Choose either BACKUP or RESTORE :: " +select option in backup restore +do + if [[ ${option} = "backup" ]];then + backup + elif [[ ${option} = "restore" ]];then + restore + fi + break +done +``` + +Once you run this script, it will just prompt two options as shown in the below image and based upon your selection the action will be performed. + +![Menu Driven Backup And Restore Script][10] + +### Conclusion + +In this article I have shown you what a select statement in bash scripting is and how to use Bash select loop to create a menu-driven scripts. + +Let us know if you have implemented any cool scripts with the menu driven approach through the comment section. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/bash-select-loop/ + +作者:[Karthick][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/karthick/ +[b]: https://github.com/lkxed +[1]: https://ostechnix.com/bash-for-loop-shell-scripting/ +[2]: https://ostechnix.com/bash-while-until-loop-shell-scripting/ +[3]: https://ostechnix.com/wp-content/uploads/2022/08/Create-Menu-Driven-Scripts-Using-Bash-Select-Loop.png +[4]: https://ostechnix.com/wp-content/uploads/2022/08/Bash-Select-Loop-Response.png +[5]: https://ostechnix.com/bash-for-loop-shell-scripting/#break-continue-statement-usage +[6]: https://ostechnix.com/wp-content/uploads/2022/08/Bash-Select-Loop-With-Break-Statement.png +[7]: https://ostechnix.com/wp-content/uploads/2022/08/Bash-Select-Loop-Without-Input.png +[8]: https://ostechnix.com/wp-content/uploads/2022/08/Set-Custom-Prompt.png +[9]: https://ostechnix.com/bash-conditional-statements/ +[10]: https://ostechnix.com/wp-content/uploads/2022/08/Menu-Driven-Backup-And-Restore-Script.png From da2951d77c3c1f514e1a5dac671f28322e24f970 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:32:43 +0800 Subject: [PATCH 0896/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220826=20My=20open=20source=20journey=20from=20use?= =?UTF-8?q?r=20to=20contributor=20to=20CTO.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...journey from user to contributor to CTO.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sources/talk/20220826 My open source journey from user to contributor to CTO.md diff --git a/sources/talk/20220826 My open source journey from user to contributor to CTO.md b/sources/talk/20220826 My open source journey from user to contributor to CTO.md new file mode 100644 index 0000000000..c3a70f210f --- /dev/null +++ b/sources/talk/20220826 My open source journey from user to contributor to CTO.md @@ -0,0 +1,57 @@ +[#]: subject: "My open source journey from user to contributor to CTO" +[#]: via: "https://opensource.com/article/22/8/my-open-source-career-story" +[#]: author: "Jesse White https://opensource.com/users/jwhite-0" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +My open source journey from user to contributor to CTO +====== +The possibilities are endless for anyone thinking about a career in open source. Here's my story. + +When people ask me what I love most about open source, my answer is simple: It's the *openness*. With open source, the work that community developers and contributors do is in the public domain for all to see and benefit from. I couldn't love that philosophy more. + +How many people can say that about the fruits of their labor? How many, perhaps 50 years from now, can look back and say, "Check out the code I wrote that day that hundreds/thousands/tens of thousands benefited from." I find that infinitely more exciting than working on software that's hidden from most of the world. + +I'm fortunate that my job puts me in the middle of an interesting area where open source and enterprise meet. Today, I'm Chief Technology Officer of [The OpenNMS Group][2], the company that maintains the [OpenNMS project][3]. OpenNMS is a leading open source network monitoring and management platform. + +While my current role has me firmly rooted in open source, I started as a user and contributor. + +In 2007, I got my first real tech job as a network analyst at Datavalet Technologies, a Montreal, Canada-based telecommunications service provider. Within five years, I expanded to a solutions architect role, where I was tasked with helping to select a network management solution for the organization. We chose OpenNMS, and it was through that experience that I realized the true power of open source. + +While onboarding the platform, we identified some missing features that would help optimize our experience. A representative from The OpenNMS Group was on site to help us with the deployment and suggested I attend the community's upcoming DevJam to work with the core developers on building the capabilities that we needed. + +During that DevJam, I quickly settled in alongside the team and community. We rolled up our sleeves and started coding to create the enhancements Datavalet needed. Within days, the additional features were ready. It was amazing and transformative—this experience really opened my eyes to the power of open source. + +I left my job a year later to study math full-time at Concordia University. It was there that I once again had the opportunity to collaborate with The OpenNMS Group, this time on a project for that year's Google Summer of Code. In this annual program, participants aim to successfully complete open source software development projects. + +Summer of Code turned out to be a career-changing experience for me—two of the organization's leaders attended our project demo, and a year later, The OpenNMS Group team asked me to come on board as a full-stack developer. + +I worked hard, quickly rose through the ranks, and was named CTO in 2015. I consider this a personal achievement and another validation of what makes the open source world so special—if you enjoy working with the community and love what you do, your contributions are quickly recognized. + +The open source ethos also informed my evolution from individual contributor to CTO, where I now lead a product development organization of more than 50 people. The community is inherently egalitarian, and my experience working with community contributors has taught me to lead with context rather than control. + +I've had an amazing open source ride, from user to contributor to an executive at an open source company. The open source approach goes beyond the tech, as the barriers to entry and growth often found in proprietary development environments can be overcome through collaboration, transparency, and community. For that reason, the possibilities are endless for anyone thinking about a career in open source. I'm proof of that. + +We live in a time when people are deeply examining their lives and the impact they have on the world. Working in an open source company is especially rewarding because I can interact directly with and influence the user community. The typical guardrails between the end user and developer are broken down, and I can see exactly how my work can change someone's daily life or inspire someone to contribute to a project. Building community through a mutual love for a project creates connections that can last a lifetime. + +I know this has all been true for me, and it's why I am so passionate about my work. I'm an open source geek to the core and proud of it. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/my-open-source-career-story + +作者:[Jesse White][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/jwhite-0 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/career_journey_road_gps_path_map_520.png +[2]: https://www.opennms.com/ +[3]: https://www.opennms.com/ From cc2f1cbe72ffa945911996b3b662c9332028a923 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 26 Aug 2022 20:34:58 +0800 Subject: [PATCH 0897/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220826=20How=20I=20analyze=20my=20music=20director?= =?UTF-8?q?y=20with=20Groovy.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... analyze my music directory with Groovy.md | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 sources/tech/20220826 How I analyze my music directory with Groovy.md diff --git a/sources/tech/20220826 How I analyze my music directory with Groovy.md b/sources/tech/20220826 How I analyze my music directory with Groovy.md new file mode 100644 index 0000000000..036c1b7b18 --- /dev/null +++ b/sources/tech/20220826 How I analyze my music directory with Groovy.md @@ -0,0 +1,128 @@ +[#]: subject: "How I analyze my music directory with Groovy" +[#]: via: "https://opensource.com/article/22/8/groovy-script-java-music" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I analyze my music directory with Groovy +====== +To simplify Java's clunkiness, I made a Groovy tool to analyze my music directory. + +Lately, I’ve been looking at how Groovy streamlines the slight clunkiness of Java. In this article, I begin a short series to demonstrate Groovy scripting by creating a tool to analyze my music directory. + +In this article, I demonstrate how the `groovy.File` class extends and streamlines `java.File` and simplifies its use. This provides a framework for looking at the contents of a music folder to ensure that expected content (for example, a `cover.jpg` file) is in place. I use the [JAudiotagger library][2] to analyze the tags of any music files. + +### Install Java and Groovy + +Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed directly from the [Apache Foundation website][3]. A nice alternative for Linux users is [SDKMan][4], which can be used to get multiple versions of Java, Groovy, and many other related tools. For this article, I use SDK's releases of: + +* Java: version 11.0.12-open of OpenJDK 11 +* Groovy: version 3.0.8 + +### Music metadata + +Lately, I've consolidated my music consumption options. I've settled on using the excellent open source [Cantata][5] music player, which is a front end for the open source [MPD music player daemon][6]. All my computers have their music stored in the `/var/lib/mpd/music` directory. In that music directory are artist subdirectories, and in each artist subdirectory are album sub-subdirectories containing the music files, a `cover.jpg`, and occasionally PDFs of the liner notes. + +Almost all of my music files are in FLAC format, with a few in MP3 and maybe a small handful in OGG. One reason I chose the JAudiotagger library is because it handles the different tag formats transparently. Of course, JAudiotagger is open source! + +So what's the point of looking at audio tags? In my experience, audio tags are extremely poorly managed. The word "careless" comes to mind. But that may be as much a recognition of my own pedantic tendencies as real problems in the tags themselves. In any case, this is a non-trivial problem that can be solved with the use of Groovy and JAudiotagger. It's not only applicable to music collections, though. Many other real-world problems include the need to descend a directory tree in a filesystem to do something with the contents found there. + +### Using the Groovy script + +Here's the basic code required for this task. I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" I typically leave for myself: + +``` +1 // Define the music libary directory +2 def musicLibraryDirName = '/var/lib/mpd/music' +3 // Print the CSV file header +4 println "artistDir|albumDir|contentFile" +5 // Iterate over each directory in the music libary directory +6 // These are assumed to be artist directories +7 new File(musicLibraryDirName).eachDir { artistDir -> +8 // Iterate over each directory in the artist directory +9 // These are assumed to be album directories +10 artistDir.eachDir { albumDir -> +11 // Iterate over each file in the album directory +12 // These are assumed to be content or related +13 // (cover.jpg, PDFs with liner notes etc) +14 albumDir.eachFile { contentFile -> +15 println "$artistDir.name|$albumDir.name|$contentFile.name" +16 } +17 } +18 } +``` + +As noted above, I'm using `groovy.File` to move around the directory tree. Specifically: + +Line 7 creates a new `groovy.File` object and calls `groovy.File.eachDir()` on it, with the code between the `{` on line 7 and the closing `}` on line 18 being a `groovy.Closure` argument to `eachDir()`. + +What this means is that `eachDir()` executes that code for each subdirectory found in the directory. This is similar to a Java *lambda* (also called an "anonymous function"). The Groovy closure doesn't restrict access to the calling environment in the way lambda does (in recent versions of Groovy, you can use Java lambdas if you want to). As noted above, subdirectories within the music library directory are expected to be artist directories (for example, "Iron Butterfly" or "Giacomo Puccini") so the `artistDir` is the argument passed by `eachDir()` to the closure. + +Line 10 calls `eachDir()` on each `artistDir`, with the code between the `{` on line 10 and the `}` on line 17 forming another closure which processes the `albumDir`. + +Line 14, calls `eachFile()` on each `albumDir`, with the code between the `{` on line 14 and the `}` on line 16 forming the third-level closure that processes the contents of the album. + +For the scope of this article, the only thing I need to do with each file is begin to build the table of information, which I'm creating as a bar-delimited CSV file that can be imported into [LibreOffice][7] or [OnlyOffice][8], or any other spreadsheet. Right now, the code writes out the first three columns: artist directory name, album directory name, and content file name (also, line 2 writes out the CSV header line). + +Running this on my Linux laptop produces the following output: + +``` +$ groovy TagAnalyzer.groovy | head +artistDir|albumDir|contentFile +Habib Koite & Bamada|Afriki|02 - Ntesse.flac +Habib Koite & Bamada|Afriki|08 - NTeri.flac +Habib Koite & Bamada|Afriki|01 - Namania.flac +Habib Koite & Bamada|Afriki|07 - Barra.flac +Habib Koite & Bamada|Afriki|playlist.m3u +Habib Koite & Bamada|Afriki|04 - Fimani.flac +Habib Koite & Bamada|Afriki|10 - Massake.flac +Habib Koite & Bamada|Afriki|11 - Titati.flac +Habib Koite & Bamada|Afriki|03 – Africa.flac +[...] +Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell].flac +Richard Crandell|Spring Steel|Spring Steel.pdf +Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell].flac +Richard Crandell|Spring Steel|cover.jpg +$ +``` + +In terms of performance: + +``` +$ time groovy TagAnalyzer.groovy | wc -l +9870 + +real        0m1.482s +user        0m4.392s +sys        0m0.230s +$ +``` + +Nice and quick. It processes nearly 10,000 files in a second and a half! Plenty fast enough for me. Respectable performance, compact and readable code—what's not to like? + +In my next article, I crack open the JAudiotagger interface and look at the tags in each file. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/groovy-script-java-music + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png +[2]: http://www.jthink.net/jaudiotagger/examples_read.jsp +[3]: https://groovy.apache.org/download.html +[4]: https://opensource.com/article/22/3/manage-java-versions-sdkman +[5]: https://opensource.com/article/17/8/cantata-music-linux +[6]: https://www.musicpd.org/ +[7]: https://opensource.com/tags/libreoffice +[8]: https://opensource.com/article/20/7/nextcloud From d39a2f8146edf2dd0ec1b0b1c4fdad302c65927f Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Fri, 26 Aug 2022 22:33:15 +0800 Subject: [PATCH 0898/3123] Update 20220826 My open source journey from user to contributor to CTO.md --- ...26 My open source journey from user to contributor to CTO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220826 My open source journey from user to contributor to CTO.md b/sources/talk/20220826 My open source journey from user to contributor to CTO.md index c3a70f210f..39612c747e 100644 --- a/sources/talk/20220826 My open source journey from user to contributor to CTO.md +++ b/sources/talk/20220826 My open source journey from user to contributor to CTO.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/my-open-source-career-story" [#]: author: "Jesse White https://opensource.com/users/jwhite-0" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "aftermath0703" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 964bf003e8e243563c7737671f1469669096c487 Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Fri, 26 Aug 2022 23:38:33 +0800 Subject: [PATCH 0899/3123] Update and rename sources/talk/20220826 My open source journey from user to contributor to CTO.md to translated/talk/20220826 My open source journey from user to contributor to CTO.md --- ...journey from user to contributor to CTO.md | 57 ------------------- ...journey from user to contributor to CTO.md | 57 +++++++++++++++++++ 2 files changed, 57 insertions(+), 57 deletions(-) delete mode 100644 sources/talk/20220826 My open source journey from user to contributor to CTO.md create mode 100644 translated/talk/20220826 My open source journey from user to contributor to CTO.md diff --git a/sources/talk/20220826 My open source journey from user to contributor to CTO.md b/sources/talk/20220826 My open source journey from user to contributor to CTO.md deleted file mode 100644 index 39612c747e..0000000000 --- a/sources/talk/20220826 My open source journey from user to contributor to CTO.md +++ /dev/null @@ -1,57 +0,0 @@ -[#]: subject: "My open source journey from user to contributor to CTO" -[#]: via: "https://opensource.com/article/22/8/my-open-source-career-story" -[#]: author: "Jesse White https://opensource.com/users/jwhite-0" -[#]: collector: "lkxed" -[#]: translator: "aftermath0703" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -My open source journey from user to contributor to CTO -====== -The possibilities are endless for anyone thinking about a career in open source. Here's my story. - -When people ask me what I love most about open source, my answer is simple: It's the *openness*. With open source, the work that community developers and contributors do is in the public domain for all to see and benefit from. I couldn't love that philosophy more. - -How many people can say that about the fruits of their labor? How many, perhaps 50 years from now, can look back and say, "Check out the code I wrote that day that hundreds/thousands/tens of thousands benefited from." I find that infinitely more exciting than working on software that's hidden from most of the world. - -I'm fortunate that my job puts me in the middle of an interesting area where open source and enterprise meet. Today, I'm Chief Technology Officer of [The OpenNMS Group][2], the company that maintains the [OpenNMS project][3]. OpenNMS is a leading open source network monitoring and management platform. - -While my current role has me firmly rooted in open source, I started as a user and contributor. - -In 2007, I got my first real tech job as a network analyst at Datavalet Technologies, a Montreal, Canada-based telecommunications service provider. Within five years, I expanded to a solutions architect role, where I was tasked with helping to select a network management solution for the organization. We chose OpenNMS, and it was through that experience that I realized the true power of open source. - -While onboarding the platform, we identified some missing features that would help optimize our experience. A representative from The OpenNMS Group was on site to help us with the deployment and suggested I attend the community's upcoming DevJam to work with the core developers on building the capabilities that we needed. - -During that DevJam, I quickly settled in alongside the team and community. We rolled up our sleeves and started coding to create the enhancements Datavalet needed. Within days, the additional features were ready. It was amazing and transformative—this experience really opened my eyes to the power of open source. - -I left my job a year later to study math full-time at Concordia University. It was there that I once again had the opportunity to collaborate with The OpenNMS Group, this time on a project for that year's Google Summer of Code. In this annual program, participants aim to successfully complete open source software development projects. - -Summer of Code turned out to be a career-changing experience for me—two of the organization's leaders attended our project demo, and a year later, The OpenNMS Group team asked me to come on board as a full-stack developer. - -I worked hard, quickly rose through the ranks, and was named CTO in 2015. I consider this a personal achievement and another validation of what makes the open source world so special—if you enjoy working with the community and love what you do, your contributions are quickly recognized. - -The open source ethos also informed my evolution from individual contributor to CTO, where I now lead a product development organization of more than 50 people. The community is inherently egalitarian, and my experience working with community contributors has taught me to lead with context rather than control. - -I've had an amazing open source ride, from user to contributor to an executive at an open source company. The open source approach goes beyond the tech, as the barriers to entry and growth often found in proprietary development environments can be overcome through collaboration, transparency, and community. For that reason, the possibilities are endless for anyone thinking about a career in open source. I'm proof of that. - -We live in a time when people are deeply examining their lives and the impact they have on the world. Working in an open source company is especially rewarding because I can interact directly with and influence the user community. The typical guardrails between the end user and developer are broken down, and I can see exactly how my work can change someone's daily life or inspire someone to contribute to a project. Building community through a mutual love for a project creates connections that can last a lifetime. - -I know this has all been true for me, and it's why I am so passionate about my work. I'm an open source geek to the core and proud of it. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/my-open-source-career-story - -作者:[Jesse White][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/jwhite-0 -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/career_journey_road_gps_path_map_520.png -[2]: https://www.opennms.com/ -[3]: https://www.opennms.com/ diff --git a/translated/talk/20220826 My open source journey from user to contributor to CTO.md b/translated/talk/20220826 My open source journey from user to contributor to CTO.md new file mode 100644 index 0000000000..7c3b42f936 --- /dev/null +++ b/translated/talk/20220826 My open source journey from user to contributor to CTO.md @@ -0,0 +1,57 @@ +[#]: subject: "My open source journey from user to contributor to CTO" +[#]: via: "https://opensource.com/article/22/8/my-open-source-career-story" +[#]: author: "Jesse White https://opensource.com/users/jwhite-0" +[#]: collector: "lkxed" +[#]: translator: "aftermath0703" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我从用户到贡献者到CTO的开源之旅 +====== +任何一位考虑在开源领域发展的人都具有无限的可能性。下面是我的故事 + +当人们问我最喜欢开源的什么时,我的回答很简单:那就是 *开放性* 。在开源中,社区开发者和贡献者所做的工作是在公共领域的,所有人都能看到并从中受益。我对这一理念爱不释手。 + +有多少人可以这样说他们的劳动成果?多长时间,也许是50年后,可以回过头来说:“看看我那天写的代码,有几百/几千/几万人从中受益。”我觉得这比从事那些对世界上大多数人来说都是隐秘的软件工作更令人无比兴奋。 + +我很幸运,我的工作使我处于一个有趣的领域中间,在这个领域中,开源和企业相遇。今天,我是[OpenNMS集团][2]的首席技术官,公司负责维护[OpenNMS项目][3]。OpenNMS是一个领先的开源网络监控和管理平台。 + +虽然我现在的角色让我牢牢扎根于开源领域,但我是以用户和贡献者身份开始的。 + +2007年,我得到了我的第一份真正的技术工作,在加拿大蒙特利尔的电信服务提供商Datavalet Technologies担任网络分析员。在五年的时间内,我扩展到解决方案架构师的角色,任务是帮助组织选择网络管理解决方案。我们选择了OpenNMS,正是通过这次经历,我认识到了开源的真正力量。 + +在平台上线时,我们发现了一些缺失的功能,这些功能将有助于优化我们的体验。一位来自OpenNMS集团的代表在现场帮助我们进行部署,并建议我参加社区即将举行的DevJam,与核心开发人员一起建立我们需要的功能。 + +在DevJam期间,我很快就融入了团队和社区。我们卷起袖子,开始编码,以创建Datavalet所需的增强功能。在几天之内,额外的功能就准备好了。这是一次令人惊叹的变革性经历,让我真正看到了开源的力量。 + +一年后,我离开了我的工作,在康科迪亚大学全日制学习数学。正是在那里,我再次有机会与OpenNMS团队合作,这一次是在当年的谷歌代码之夏的一个项目上。在这个年度计划中,参与者的目标是成功完成开源软件开发项目。 + +代码之夏对我来说是一次改变职业生涯的经历。该组织的两位领导人参加了我们的项目演示,一年后,OpenNMS团队邀请我作为一名全栈开发人员加入。 + +我努力工作,迅速晋升,并在2015年被任命为首席技术官。我认为这是一项个人成就,也再次验证了开源世界的特别之处。如果你喜欢与社区合作,热爱你所做的工作,你的贡献很快就会得到认可。 + +开源精神也影响了我从个人贡献者到CTO的发展,我现在领导着一个由50多人组成的产品开发组织。社区本质上是平等的,我与社区贡献者一起工作的经验教会了我如何在环境中领导,而不是控制。 + +我经历了一段奇妙的开源旅程,从用户到贡献者,再到一家开源公司的高管。开源方法超越了技术,因为专有开发环境中经常存在的障碍的进入和增长可以通过协作、透明和社区来克服。因此,对于任何考虑在开源领域工作的人来说,可能性是无限的。我就是证明。 + +我们生活在一个人们正在深刻审视自己的生活及其对世界的影响的时代。在开源公司工作特别有意义,因为我可以直接与用户社区互动并影响他们。终端用户和开发人员之间的经典屏障被打破了,我可以确切地看到我的工作如何改变某人的日常生活,或者激励某人为项目做出贡献。通过对一个项目的共同热爱来建立社区,建立持续一生的联系。 + +我知道这对我来说都是真的,这也是为什么我对我的工作如此热情。我的内核是一个开源极客,并以此为荣。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/my-open-source-career-story + +作者:[Jesse White][a] +选题:[lkxed][b] +译者:[aftermath0703](https://github.com/aftermath0703) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jwhite-0 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/career_journey_road_gps_path_map_520.png +[2]: https://www.opennms.com/ +[3]: https://www.opennms.com/ From 67b1aae0aee739941f4721b325f017b74f80a18d Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Fri, 26 Aug 2022 23:50:45 -0500 Subject: [PATCH 0900/3123] Translating. --- ...0824 sudo apt update vs upgrade- What-s the Difference-.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md index d72001d3e1..5e35a116ba 100644 --- a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md +++ b/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/apt-update-vs-upgrade/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Yufei-Yan" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -83,7 +83,7 @@ apt-get update doesn’t even tell you if any package can be upgraded. You can see the [list of upgradable packages][8] with apt but apt-get doesn’t have this option. ``` -[email protected]:~$ apt list --upgradable +[email protected]:~$ apt list --upgradable Listing... Done fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] From 2a738a91a25dfa894be7b9d1819e6d7f96b18a95 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 27 Aug 2022 15:07:43 +0800 Subject: [PATCH 0901/3123] RP @geekpi https://linux.cn/article-14970-1.html --- ... Run Commands Into Docker-Compose Files.md | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) rename {translated/tech => published}/20220818 Convert Docker Run Commands Into Docker-Compose Files.md (64%) diff --git a/translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md similarity index 64% rename from translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md rename to published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md index 8810b03237..939f23e1cc 100644 --- a/translated/tech/20220818 Convert Docker Run Commands Into Docker-Compose Files.md +++ b/published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md @@ -3,25 +3,28 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14970-1.html" -将 Docker 运行命令转化为 Docker-Compose 文件 +将 Docker 命令转化为 Docker Compose 文件 ====== -使用 Composerize 从 docker 运行命令创建 Docker compose 文件 -如果你每天在官方或个人系统中使用 Docker,你应该知道有一个有用的应用叫 **Composerize**。在这个简短的指南中,我们将了解什么是 Composerize,以及如何使用 Composerize 在 Linux 中**将 docker 运行命令转换为 docker-compose 文件**格式。 +![](https://img.linux.net.cn/data/attachment/album/202208/27/150501vw3eqx2xkexemmkc.jpg) + +> 使用 Composerize 从 `docker run` 命令创建 Docker Compose 文件 + +如果你每天在正式或个人系统中使用 Docker,你应该知道有一个有用的应用叫 **Composerize**。在这个简短的指南中,我们将了解什么是 Composerize,以及如何使用 Composerize 在 Linux 中**将 `docker run` 命令转换为 Docker Compose 文件**格式。 ### 什么是 Composerize? -**[Docker compose][1]** 是一个用于定义和运行多容器 docker 应用的工具。Docker compose 只是一个 YAML 文件,我们在其中为 Docker 应用定义服务、网络和卷。 +[Docker Compose][1] 是一个用于定义和运行多容器 Docker 应用的工具。Docker Compose 只是一个 YAML 文件,我们在其中为 Docker 应用定义服务、网络和卷。 -不是每个人都擅长写有效的 docker-compose 文件。你们中的一些人可能会发现,甚至写一个简单的 docker compose 文件都很困难。不用担心! 看下 Composerize,它可以帮助你从 `docker run` 命令中创建 Docker compose 文件。 +不是每个人都擅长写高效的 Docker Compose 文件。你们中的一些人可能会发现,甚至写一个简单的 Docker Compose 文件都很困难。不用担心! 看下 Composerize,它可以帮助你从 `docker run` 命令中创建 Docker Compose 文件。 -Composerize 是一个命令行和基于网络的工具,可以将 `docker run` 命令转换成 docker-compose 文件。 +Composerize 是一个命令行和基于网络的工具,可以将 `docker run` 命令转换成 Docker Compose 文件。 -无论 `docker run` 命令是简单、简短还是冗长、复杂,都没有关系。你所要做的就是把命令传给 Conposerize。Composerize 会立即将 `docker run` 命令变成 docker-compose 文件! +无论 `docker run` 命令是简单、简短还是冗长、复杂,都没有关系。你所要做的就是把命令传给 Conposerize。Composerize 会立即将 `docker run` 命令变成 Docker Compose 文件! ### 在 Linux 中安装 Composerize @@ -29,7 +32,7 @@ Composerize 是作为一个网络服务提供的。所以你不需要在你的 Composerize 可以用 npm 安装。确保你的系统中已经安装了 Nodejs。如果没有安装,请按照下面的链接来安装 Nodejs。 -* [如何在 Linux 上安装 NodeJS][2] +* **[如何在 Linux 上安装 NodeJS][2]** 安装完 Nodejs 后,运行以下命令来安装 Composerize: @@ -45,17 +48,17 @@ $ npm install composerize $ npm install composerize -g ``` -### 用 Composerize 将 Docker 运行命令转换为 Docker-Compose 文件 +### 用 Composerize 将 Docker 命令转换为 Docker Compose 文件 -要将 docker run 命令转换为 docker-compose 格式,只需用 Composerize 运行它,如下所示: +要将 `docker run` 命令转换为 Docker Compose 格式,只需用 Composerize 运行它,如下所示: ``` $ composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer ``` -它将以 docker compose 文件格式生成内容。 +它将以 Docker Compose 文件格式生成内容。 -**示例输出:** +示例输出: ``` version: '3.3' @@ -72,13 +75,13 @@ services: 现在在你的 `docker-compose.yml` 文件中复制上面几行。就这么简单! -正如我所说,你也可以使用 Composerize 网络服务将 docker run 命令转换成 docker 文件格式。 +正如我所说,你也可以使用 Composerize 网络服务将 `docker run` 命令转换成 Docker Compose 格式。 -进入 **[https://www.composerize.com/][4]**,将 `docker run` 命令粘贴到框中,你就会立即得到 docker-compose 文件! +进入 [https://www.composerize.com/][4],将 `docker run` 命令粘贴到框中,你就会立即得到 `docker-compose.yml` 文件! ![Turn Docker Run Commands Into Docker-compose Files Using Composerize][5] -将命令转换为 docker-compose 文件后,到你保存 `docker-compose.yml` 文件的位置,运行以下命令来启动 Docker 应用: +将命令转换为 Docker Compose 文件后,到你保存 `docker-compose.yml` 文件的位置,运行以下命令来启动 Docker 应用: ``` $ docker-compose up @@ -86,7 +89,7 @@ $ docker-compose up Composerize 是对 Docker 用户有用的工具之一。你现在可以安全地告别漫无边际的 Docker 命令了。 -**资源:** +资源: * [Composerize GitHub 仓库][6] @@ -97,7 +100,7 @@ via: https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files 作者:[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/) 荣誉推出 From fce789b1c7c14b0f89b345800eb7bb1385b6c5a7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 27 Aug 2022 15:45:57 +0800 Subject: [PATCH 0902/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @aftermath0703 感谢您,完成了第一篇翻译贡献! --- ...journey from user to contributor to CTO.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/translated/talk/20220826 My open source journey from user to contributor to CTO.md b/translated/talk/20220826 My open source journey from user to contributor to CTO.md index 7c3b42f936..89a3f1c010 100644 --- a/translated/talk/20220826 My open source journey from user to contributor to CTO.md +++ b/translated/talk/20220826 My open source journey from user to contributor to CTO.md @@ -3,41 +3,44 @@ [#]: author: "Jesse White https://opensource.com/users/jwhite-0" [#]: collector: "lkxed" [#]: translator: "aftermath0703" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -我从用户到贡献者到CTO的开源之旅 +从用户到贡献者到 CTO 的开源之旅 ====== -任何一位考虑在开源领域发展的人都具有无限的可能性。下面是我的故事 + +![](https://img.linux.net.cn/data/attachment/album/202208/27/154503q9yw0rewy2ge2r8f.jpg) + +> 任何考虑在开源领域发展的人都具有无限的可能性。下面是我的故事。 当人们问我最喜欢开源的什么时,我的回答很简单:那就是 *开放性* 。在开源中,社区开发者和贡献者所做的工作是在公共领域的,所有人都能看到并从中受益。我对这一理念爱不释手。 -有多少人可以这样说他们的劳动成果?多长时间,也许是50年后,可以回过头来说:“看看我那天写的代码,有几百/几千/几万人从中受益。”我觉得这比从事那些对世界上大多数人来说都是隐秘的软件工作更令人无比兴奋。 +有多少人可以对他们的劳动成果这样说?有多少人,也许在 50 年后,可以回过头来说:“看看我那天写的代码,有几百/几千/几万人从中受益。”我觉得这比从事那些对世界上大多数人来说都是隐秘的软件工作更令人无比兴奋。 -我很幸运,我的工作使我处于一个有趣的领域中间,在这个领域中,开源和企业相遇。今天,我是[OpenNMS集团][2]的首席技术官,公司负责维护[OpenNMS项目][3]。OpenNMS是一个领先的开源网络监控和管理平台。 +我很幸运,我的工作使我置身于一个开源和企业交叉的有趣领域中。如今,我是 [OpenNMS 集团][2] 的首席技术官,这家公司负责维护 [OpenNMS 项目][3]。OpenNMS 是一个领先的开源网络监控和管理平台。 虽然我现在的角色让我牢牢扎根于开源领域,但我是以用户和贡献者身份开始的。 -2007年,我得到了我的第一份真正的技术工作,在加拿大蒙特利尔的电信服务提供商Datavalet Technologies担任网络分析员。在五年的时间内,我扩展到解决方案架构师的角色,任务是帮助组织选择网络管理解决方案。我们选择了OpenNMS,正是通过这次经历,我认识到了开源的真正力量。 +2007 年,我得到了我的第一份真正的技术工作,在加拿大蒙特利尔的电信服务提供商 Datavalet 技术公司从事网络分析。在五年的时间内,我成长为解决方案架构师,任务是帮助公司选择网络管理解决方案。我们选择了 OpenNMS,正是通过这次经历,我认识到了开源的真正力量。 -在平台上线时,我们发现了一些缺失的功能,这些功能将有助于优化我们的体验。一位来自OpenNMS集团的代表在现场帮助我们进行部署,并建议我参加社区即将举行的DevJam,与核心开发人员一起建立我们需要的功能。 +在平台上线时,我们发现了一些缺失的功能,这些功能将有助于优化我们的体验。一位来自 OpenNMS 集团的代表在现场帮助我们进行部署,并建议我参加社区即将举行的 DevJam,与核心开发人员一起建立我们需要的功能。 -在DevJam期间,我很快就融入了团队和社区。我们卷起袖子,开始编码,以创建Datavalet所需的增强功能。在几天之内,额外的功能就准备好了。这是一次令人惊叹的变革性经历,让我真正看到了开源的力量。 +在 DevJam 期间,我很快就融入了团队和社区。我们卷起袖子,开始编码,以创建 Datavalet 所需的增强功能。在几天之内,这个附加的功能就准备好了。这是一次令人惊叹的变革性经历,让我真正看到了开源的力量。 -一年后,我离开了我的工作,在康科迪亚大学全日制学习数学。正是在那里,我再次有机会与OpenNMS团队合作,这一次是在当年的谷歌代码之夏的一个项目上。在这个年度计划中,参与者的目标是成功完成开源软件开发项目。 +一年后,我离职了,在康科迪亚大学全日制学习数学。正是在那里,我再次有机会与 OpenNMS 团队合作,这一次是在该年的谷歌代码之夏的一个项目上。在这个年度计划中,参与者的目标是成功完成开源软件开发项目。 -代码之夏对我来说是一次改变职业生涯的经历。该组织的两位领导人参加了我们的项目演示,一年后,OpenNMS团队邀请我作为一名全栈开发人员加入。 +代码之夏对我来说是一次改变职业生涯的经历。OpenNMS 的两位负责人参加了我们的项目演示,一年后,OpenNMS 团队邀请我作为一名全栈开发人员加入。 -我努力工作,迅速晋升,并在2015年被任命为首席技术官。我认为这是一项个人成就,也再次验证了开源世界的特别之处。如果你喜欢与社区合作,热爱你所做的工作,你的贡献很快就会得到认可。 +我努力工作,迅速晋升,并在 2015 年被任命为首席技术官。我认为这是一项个人成就,也再次验证了开源世界的特别之处。如果你喜欢与社区合作,热爱你所做的工作,你的贡献很快就会得到认可。 -开源精神也影响了我从个人贡献者到CTO的发展,我现在领导着一个由50多人组成的产品开发组织。社区本质上是平等的,我与社区贡献者一起工作的经验教会了我如何在环境中领导,而不是控制。 +开源精神也影响了我从个人贡献者到首席技术官的发展,我现在领导着一个由 50 多人组成的产品开发团队。社区本质上是平等的,我与社区贡献者一起工作的经验教会了我如何在环境中领导,而不是控制。 我经历了一段奇妙的开源旅程,从用户到贡献者,再到一家开源公司的高管。开源方法超越了技术,因为专有开发环境中经常存在的障碍的进入和增长可以通过协作、透明和社区来克服。因此,对于任何考虑在开源领域工作的人来说,可能性是无限的。我就是证明。 -我们生活在一个人们正在深刻审视自己的生活及其对世界的影响的时代。在开源公司工作特别有意义,因为我可以直接与用户社区互动并影响他们。终端用户和开发人员之间的经典屏障被打破了,我可以确切地看到我的工作如何改变某人的日常生活,或者激励某人为项目做出贡献。通过对一个项目的共同热爱来建立社区,建立持续一生的联系。 +我们生活在一个人们正在深刻审视自己的生活及其对世界的影响的时代。在开源公司工作特别有意义,因为我可以直接与用户社区互动并影响他们。终端用户和开发人员之间的经典屏障被打破了,我可以确切地看到我的工作如何改变人们的日常生活,或者激励人们为项目做出贡献。通过对一个项目的共同热爱来建立社区,建立持续一生的联系。 -我知道这对我来说都是真的,这也是为什么我对我的工作如此热情。我的内核是一个开源极客,并以此为荣。 +我知道这对我来说都是真实的,这也是为什么我对我的工作如此热情。我是一个彻头彻尾的开源极客,并以此为荣。 -------------------------------------------------------------------------------- @@ -46,7 +49,7 @@ via: https://opensource.com/article/22/8/my-open-source-career-story 作者:[Jesse White][a] 选题:[lkxed][b] 译者:[aftermath0703](https://github.com/aftermath0703) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 87cbf9f71db2e1ef058e15376c910063dd3f9d4c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 27 Aug 2022 15:47:23 +0800 Subject: [PATCH 0903/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @aftermath0703 本文首发地址:https://linux.cn/article-14971-1.html 您的 LCTT 专页:https://linux.cn/lctt/aftermath0703 --- ... My open source journey from user to contributor to CTO.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20220826 My open source journey from user to contributor to CTO.md (98%) diff --git a/translated/talk/20220826 My open source journey from user to contributor to CTO.md b/published/20220826 My open source journey from user to contributor to CTO.md similarity index 98% rename from translated/talk/20220826 My open source journey from user to contributor to CTO.md rename to published/20220826 My open source journey from user to contributor to CTO.md index 89a3f1c010..ed6df63300 100644 --- a/translated/talk/20220826 My open source journey from user to contributor to CTO.md +++ b/published/20220826 My open source journey from user to contributor to CTO.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "aftermath0703" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14971-1.html" 从用户到贡献者到 CTO 的开源之旅 ====== From 799964d61343dbf26b11367e26df3f746e5b28e6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 27 Aug 2022 16:21:18 +0800 Subject: [PATCH 0904/3123] ALL @wxy https://linux.cn/article-14972-1.html --- ...ME- This New Tool Gives You the Chance!.md | 82 +++++++++++++++++++ ...ME- This New Tool Gives You the Chance!.md | 81 ------------------ 2 files changed, 82 insertions(+), 81 deletions(-) create mode 100644 published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md delete mode 100644 sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md diff --git a/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md b/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md new file mode 100644 index 0000000000..c431fdcd3d --- /dev/null +++ b/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md @@ -0,0 +1,82 @@ +[#]: subject: "Want to Help Improve GNOME? This New Tool Gives You the Chance!" +[#]: via: "https://news.itsfoss.com/gnome-improve-tool/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14972-1.html" + +想帮助改善 GNOME 吗?这个新工具给了你这个机会! +====== + +> 这个新的工具,使 GNOME 用户能够提供他们的配置和使用意见,以帮助改善用户体验。 + +![想帮助改善 GNOME 吗? 这个新工具给了你机会!][1] + +GNOME 带来了一个工具,可以让用户匿名提供他们的配置、扩展和 GNOME 调整设置等方面的意见。 + +这应该有助于 GNOME 了解更多的用户偏好,并做出更好的增强用户体验的决定。 + +有趣的是,是红帽公司的一名实习生(Vojtech Stanek)创造了这个工具。 + +### GNOME 信息收集:准备好安装了吗? + +![gnome info collect terminal][2] + +该工具(`gnome-info-collect`)是一个简单的终端程序,你需要下载、安装并运行它来与 GNOME 分享数据。 + +以下是该工具需要从你的 GNOME 系统中收集的内容: + +* 硬件信息(包括制造商和型号)。 +* 系统设置(包括工作区配置、共享功能、SSH 等)。 +* 安装并启用的 GNOME shell 扩展。 +* 应用程序信息(如已安装的应用程序和收藏的应用程序)。 +* Linux 发行版和版本。 +* Flatpak 和 Flathub 状态。 +* 默认浏览器。 +* 机器 ID + 用户名的 [加盐哈希][3]。 + +你可以在其 [GitLab 页面][4] 上找到适合你的发行版的软件包和收集数据的更多细节。 + +如果你有一个基于 Ubuntu 的发行版,你可以通过输入以下内容来安装它: + +``` +sudo snap install --classic gnome-info-connect +``` + +安装完毕后,在终端使用以下命令将其启动: + +``` +gnome-info-collect +``` + +接下来,它会显示它打算与 GNOME 共享的数据。所以,如果你觉得没问题,你可以选择将数据上传到 GNOME 的服务器上。 + +![][5] + +考虑到这些数据是匿名的,它应该可以帮助 GNOME 了解他们的用户喜欢什么,并随着时间的推移专注于这些改进。 + +> **[下载 gnome-info-collect][6]** + +你对 GNOME 的这个新的数据收集工具有什么看法?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-improve-tool/ + +作者:[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/content/images/size/w1200/2022/08/gnome-improvement-tool.jpg +[2]: https://news.itsfoss.com/content/images/2022/08/gnome-info-collect-terminal.png +[3]: https://en.wikipedia.org/wiki/Salt_(cryptography) +[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ +[5]: https://news.itsfoss.com/content/images/2022/08/gnome-info-collect-sharing.png +[6]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ diff --git a/sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md b/sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md deleted file mode 100644 index b2629b4e85..0000000000 --- a/sources/news/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md +++ /dev/null @@ -1,81 +0,0 @@ -[#]: subject: "Want to Help Improve GNOME? This New Tool Gives You the Chance!" -[#]: via: "https://news.itsfoss.com/gnome-improve-tool/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Want to Help Improve GNOME? This New Tool Gives You the Chance! -====== -A new tool to enable GNOME users to provide insights on their configuration and usage to help improve the user experience. - -![Want to Help Improve GNOME? This New Tool Gives You the Chance!][1] - -GNOME has come up with a tool that lets users provide **anonymous insights** about their configurations, extensions, and GNOME-tuned settings. - -This should help GNOME learn more about user preferences and make better decisions to enhance the user experience. - -Interestingly, an intern at **Red Hat** (*Vojtech Stanek*) created this tool. - -### ℹ️ GNOME Info Collect: Ready to Install? - -![gnome info collect terminal][2] - -The tool (gnome-info-collect) is a simple terminal program that you need to download, install, and run to share the data with GNOME. - -Here's what the tool needs to collect from your GNOME system: - -* Hardware information (including manufacturer and model). -* System settings (including workspace configuration, sharing features, SSH etc.) -* GNOME shell extensions installed and enabled. -* Application information (like installed apps and favorites). -* Linux distro and version. -* Flatpak and Flathub status. -* Default browser. -* [Salted hash][3] of machine ID+username. - -You can find the package suitable for your distribution and more details on the data collected available on its [GitLab page][4]. - -For instance, if you have an **Ubuntu-based distribution**, you can install it by typing in: - -``` -sudo snap install --classic gnome-info-connect -``` - -Once installed, fire it up using the following command in the terminal: - -``` -gnome-info-collect -``` - -Next, it displays the data that it intends to share with GNOME. So, if it looks good to you, you can choose to upload the data to GNOME's servers. - -![][5] - -Considering the data remains anonymous, it should help GNOME understand what their users like, and focus on those improvements over time. - -[Download gnome-info-collect][6] - -💬 *What do you think about this new data collection tool for GNOME? Share your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-improve-tool/ - -作者:[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/content/images/size/w1200/2022/08/gnome-improvement-tool.jpg -[2]: https://news.itsfoss.com/content/images/2022/08/gnome-info-collect-terminal.png -[3]: https://en.wikipedia.org/wiki/Salt_(cryptography) -[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ -[5]: https://news.itsfoss.com/content/images/2022/08/gnome-info-collect-sharing.png -[6]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ From 0f35399854ec78db4d6d4846d82dbf218255ec0e Mon Sep 17 00:00:00 2001 From: Donkey Date: Sat, 27 Aug 2022 19:05:26 +0800 Subject: [PATCH 0905/3123] translated --- ...w I use Bash to automate tasks on Linux.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/sources/tech/20220726 How I use Bash to automate tasks on Linux.md b/sources/tech/20220726 How I use Bash to automate tasks on Linux.md index 7ad66f46ea..467ecffdf1 100644 --- a/sources/tech/20220726 How I use Bash to automate tasks on Linux.md +++ b/sources/tech/20220726 How I use Bash to automate tasks on Linux.md @@ -7,19 +7,19 @@ [#]: publisher: " " [#]: url: " " -How I use Bash to automate tasks on Linux +如何在 Linux 上使用 Bash 自动化任务 ====== -Bash has a few handy automation features that make my life easier when working with files on Linux. +Bash 有一些方便的自动化功能,可以让我在 Linux 上处理文件时更轻松。 ![bash logo on green background][1] -Image by: Opensource.com +图源:Opensource.com -The Bash command line is a great way to automate tasks. Whether you are running Linux on a server and need to manipulate log files or other data, or you're a desktop user who just wants to keep files tidy, you can use a few automation features in Bash to make your work easier. +通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux,进行管理日志文件还是其他文件,或者你在个人电脑上整理文件,使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更简单。 -### Linux for command: Automate tasks on a files +### Linux `for` 命令:自动执行文件任务 -If you have a bunch of files to work on at once, and you need to do the same thing with every file, use the `for` command. This command iterates across a list of files, and executes one or more commands. The `for` command looks like this: +如果你对一堆文件要同时处理,并且对每个文件进行相同的操作,请使用 `for` 命令。该命令会遍历文件列表,并执行一个或多个命令。`for` 命令如下所示: ``` for variable in list @@ -28,13 +28,13 @@ do done ``` -I've added some extra spacing in there to help separate the different parts of the `for` command. That multi-line command might look difficult to run on the command line, but you can use `;` to put everything on one line, like this: +我在示例中添加了额外的空格,来分开 `for` 命令中不同的部分。多个命令可能无法在命令行中同时运行,不过你可以使用 `;` 将所有命令放在同一行中,就像这样: ``` for variable in list ; do commands ; done ``` -Let's see it in action. One way I use the `for` command is to rename a bunch of files. Most recently, I had a bunch of screenshots that I wanted to rename. The screenshots had names like `filemgr.png` or `terminal.png` and I wanted to put `screenshot` before each name instead. I ran a single `for` command to rename thirty files at once. Here's an example with just two files: +让我们看看它的实际效果。我使用 `for` 命令来重命名一些文件。最近,我有一些截图,想要重命名。这些截图名称为 `filemgr.png` 或 `terminal.png`,我想将 `screenshot` 放在每个名称前。我可以使用 `for` 命令一次性将 30 个文件重命名。这是两个文件的示例: ``` $ ls @@ -44,13 +44,13 @@ $ ls screenshot-filemgr.png  screenshot-terminal.png ``` -The `for` command makes it easy to perform one or more actions on a set of files. You can use a variable name that is meaningful to you, such as `image` or `screenshot`, or you can use a "shorthand" variable like `f`, as I did in my example. When I write scripts that use a `for` loop, I try to use meaningful variable names. But when I'm using `for` on the command line, I'll usually use a short variable name like `f` for files or `d` for directories. +`for` 命令使得在一系列文件中执行一种或多种操作变得容易。你可以用一些有意义的变量,比如 `image` 或 `screenshot`,或者你用示例中“缩写的”变量 `f`。当我在使用 `for` 循环写脚本的时候,会选择有意义的变量名。但是当我在命令行中使用 `for`,我通常会选择缩写变量名,比如 `f` 代表文件,`d` 代表目录等。 -Whatever name you choose for your variable, be sure to reference the variable using `$` in the command. This expands the variable to the name of the file you are acting on. Type `help for` at your Bash prompt to learn more about the `for` command. +不论你选择怎样的变量名,请确保在引用变量时添加 `$` 符号。这会将变量扩展为你正在处理的文件的名称。在 Bash 提示符下键入 `help for` 以了解有关 `for` 命令的更多信息。 -### Linux conditional execution (if) +### Linux `if` 条件执行 -Looping across a set of files with `for` is helpful when you need to do the same thing with every file. But what if you need to do something different for certain files? For that, you need conditional execution with the `if` statement. The `if` statement looks like this: +当你需要对每个文件执行相同操作时,使用 `for` 循环遍历一些文件很有帮助。但是,如果你需要对某些文件做一些不同的事情怎么办?为此,你需要使用 `if` 语句进行条件执行。`if` 语句如下所示: ``` if test @@ -59,7 +59,7 @@ then fi ``` -You can also do *if/else* tests by using the `else` keyword: +你也可以使用 `if/else` 语句进行判断: ``` if test @@ -70,7 +70,7 @@ else fi ``` -For more complicated processing, you can use *if/else-if/else* evaluations. I might use this in a script, when I need to automate a job to process a collection of files at once: +你可以使用 `if/else-if/else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用: ``` if test @@ -87,11 +87,11 @@ else fi ``` -The `if` command allows you to perform many different tests, such as *if* a file is really a file, or *if* a file is empty (zero size). Type `help test` at your Bash prompt to see the different kinds of tests you can use in an `if` statement. +`if` 命令可以让你进行不同的判断,例如判断一个文件是否是一个文件,或者一个文件是否为空文件(零字节)。在命令行中输入 `help test`,可以立即查看使用 `if` 语句能够进行的不同种测试。 -For example, let's say I wanted to clean up a log directory that had several dozen files in it. A common task in log management is to delete any empty logs, and compress the other logs. The easiest way to tackle this is to just delete the empty files. There isn't an `if` test that exactly matches that, but we have `-s` file to test *if* something is a file, and *if* the file is not empty (it has a size). That's the opposite of what we want, but we can negate the test with `!` to see *if* something is not a file or is empty. +例如,假设我想清理一个包含几十个文件的日志目录。日志管理中的一个常见任务是删除所有空日志,并压缩其他日志。解决这个问题的最简单方法是删除空文件。没有一个 `if` 测试可以完全匹配,但是我们有 `-s` 选项来判断是否是一个文件,并且判断该文件不是空的(大小不为零)。这与我们想要的相反,但我们可以使用 `!` 来否定测试,以判断某些内容不是文件或为空。 -Let's look at an example to see this at work. I've created two test files: one is empty, and the other contains some data. We can use `if` to print the message "empty" *if* the file is empty: +让我们用一个示例来看看这个过程。我创建了两个测试文件:一个是空的,另一个包含一些数据。我们可以使用 `if` 判断,*如果*文件为空打印消息 “empty”: ``` $ ls @@ -101,7 +101,7 @@ $ if [ ! -s emptyfile ] ; then echo "empty" ; fi empty ``` -We can combine this with for to examine a list of log files to delete the empty files for us: +我们可以将 `if` 和 `for` 命令结合起来,检查日志文件列表中的空文件并删除: ``` $ ls -l @@ -125,7 +125,7 @@ total 20 -rw-rw-r--. 1 jhall jhall 2 Jul  7 01:02 log.7 ``` -Using the `if` command can add some intelligence to scripts, to perform actions only when needed. I often use `if` in scripts when I need to test *if* a file does or does not exist on my system, or *if* the entry the script is examining is a file or directory. Using `if` allows my script to take different actions as needed. +使用 `if` 命令可以在需要时执行一些操作,使脚本变得智能。我经常会在脚本中使用 `if`,当我需要判断文件在我的系统上存在或不存在时,或者判断脚本正在检查的条目是文件或目录时。使用 `if` 使得脚本能够根据需要采取不同的操作。 -------------------------------------------------------------------------------- @@ -133,7 +133,7 @@ via: https://opensource.com/article/22/7/use-bash-automate-tasks-linux 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[Donkey](https://github.com/Donkey-Hao) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6da40a7ad375e478b530e1a085c7f45818c41f09 Mon Sep 17 00:00:00 2001 From: Donkey Date: Sat, 27 Aug 2022 19:07:10 +0800 Subject: [PATCH 0906/3123] mv --- .../tech/20220726 How I use Bash to automate tasks on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => trasnlated}/tech/20220726 How I use Bash to automate tasks on Linux.md (100%) diff --git a/sources/tech/20220726 How I use Bash to automate tasks on Linux.md b/trasnlated/tech/20220726 How I use Bash to automate tasks on Linux.md similarity index 100% rename from sources/tech/20220726 How I use Bash to automate tasks on Linux.md rename to trasnlated/tech/20220726 How I use Bash to automate tasks on Linux.md From 1231c799ded9be62806e8a2e6a86302d7dd1948e Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 27 Aug 2022 20:51:46 +0800 Subject: [PATCH 0907/3123] Rename trasnlated/tech/20220726 How I use Bash to automate tasks on Linux.md to translated/tech/20220726 How I use Bash to automate tasks on Linux.md --- .../tech/20220726 How I use Bash to automate tasks on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {trasnlated => translated}/tech/20220726 How I use Bash to automate tasks on Linux.md (100%) diff --git a/trasnlated/tech/20220726 How I use Bash to automate tasks on Linux.md b/translated/tech/20220726 How I use Bash to automate tasks on Linux.md similarity index 100% rename from trasnlated/tech/20220726 How I use Bash to automate tasks on Linux.md rename to translated/tech/20220726 How I use Bash to automate tasks on Linux.md From 7a056ea7092e1999862deffebd3c38198d2cf5f5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 28 Aug 2022 09:54:40 +0800 Subject: [PATCH 0908/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220827=20My=20favorite=20open=20source=20library?= =?UTF-8?q?=20for=20analyzing=20music=20files.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ource library for analyzing music files.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 sources/tech/20220827 My favorite open source library for analyzing music files.md diff --git a/sources/tech/20220827 My favorite open source library for analyzing music files.md b/sources/tech/20220827 My favorite open source library for analyzing music files.md new file mode 100644 index 0000000000..b13f948b06 --- /dev/null +++ b/sources/tech/20220827 My favorite open source library for analyzing music files.md @@ -0,0 +1,188 @@ +[#]: subject: "My favorite open source library for analyzing music files" +[#]: via: "https://opensource.com/article/22/8/analyze-music-files-jaudiotagger" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +My favorite open source library for analyzing music files +====== +Here's how I use the JAudiotagger library with a Groovy script I created to analyze my music files. + +In my [previous article][2], I created a framework for analyzing the directories and subdirectories of music files, using the `groovy.File` class, which extends and streamlines `java.File` and simplifies its use. In this article, I use the open source [JAudiotagger library][3] to analyze the tags of the music files in the music directory and subdirectories. Be sure to read the first article in this series if you intend to follow along. + +### Install Java and Groovy + +Groovy is based on Java, and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed directly from the [Apache Foundation website][4]. A nice alternative for Linux users is [SDKMan][5], which can be used to get multiple versions of Java, Groovy, and many other related tools. For this article, I use SDK's releases of: + +* Java: version 11.0.12-open of OpenJDK 11 +* Groovy: version 3.0.8 + +### Back to the problem + +In the 15 or so years that I've been carefully ripping my CD collection and increasingly buying digital downloads, I have found that ripping programs and digital music download vendors are all over the map when it comes to tagging music files. Sometimes, my files are missing tags that can be useful to music players, such as `ALBUMSORT`. Sometimes this means my files are full of tags I don't care about, such as `MUSICBRAINZ_DISCID`, that cause some music players to change the order of presentation in obscure ways, so that one album appears to be many, or sorts in a strange order. + +Given that I have nearly 10,000 tracks in nearly 700 albums, it's quite nice when my music player manages to display my collection in a reasonably understandable order. Therefore, the ultimate goal of this series is to create a few useful scripts to help identify missing or unusual tags and facilitate the creation of a work plan to fix tagging problems. This particular script analyzes the tags of music files and creates a CSV file that I can load into [LibreOffice][6] or [OnlyOffice][7] to look for problems. It won't look at missing `cover.jpg` files nor show album sub-subdirectories that contain other files, because this isn't relevant at the music file level. + +### My Groovy framework plus JAudiotagger + +Once again, start with the code. As before, I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" that I typically leave for myself: + +``` +1  @Grab('net.jthink:jaudiotagger:3.0.1') +2  import org.jaudiotagger.audio.* +   +3  def logger = java.util.logging.Logger.getLogger('org.jaudiotagger'); +4  logger.setLevel(java.util.logging.Level.OFF); +   +5  // Define the music library directory +   +6  def musicLibraryDirName = '/var/lib/mpd/music' +   +7  // These are the music file tags we are happy to see +8  // Some tags can occur more than once in a given file +   +9  def wantedFieldIdSet = ['ALBUM', 'ALBUMARTIST', +10 'ALBUMARTISTSORT', 'ARTIST', 'ARTISTSORT', +11 'COMPOSER', 'COMPOSERSORT', 'COVERART', 'DATE', +12 'GENRE', 'TITLE', 'TITLESORT', 'TRACKNUMBER', +13 'TRACKTOTAL', 'VENDOR', 'YEAR'] as LinkedHashSet +   +14  // Print the CSV file header +   +15  print "artistDir|albumDir|contentFile" +16  print "|${wantedFieldIdSet*.toLowerCase().join('|')}" +17  println "|other tags" +   +18  // Iterate over each directory in the music libary directory +19  // These are assumed to be artist directories +   +20  new File(musicLibraryDirName).eachDir { artistDir -> +   +21 // Iterate over each directory in the artist directory +22 // These are assumed to be album directories +   +23 artistDir.eachDir { albumDir -> +   +24 // Iterate over each file in the album directory +25 // These are assumed to be content or related +26 // (cover.jpg, PDFs with liner notes etc) +   +27 albumDir.eachFile { contentFile -> +   +28   // Initialize the counter map for tags we like +29   // and the list for unwanted tags +   +30   def fieldKeyCounters = wantedFieldIdSet.collectEntries { e -> +31 [(e): 0] +32   } +33   def unwantedFieldIds = [] +   +34   // Analyze the file and print the analysis +   +35   if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) { +36 def af = AudioFileIO.read(contentFile) +37 af.tag.fields.each { tagField -> +38 if (tagField.id in wantedFieldIdSet) +39   fieldKeyCounters[tagField.id]++ +40 else +41   unwantedFieldIds << tagField.id +42 } +43 print "${artistDir.name}|${albumDir.name}|${contentFile.name}" +44 wantedFieldIdSet.each { fieldId -> +45 print "|${fieldKeyCounters[fieldId]}" +46 } +47 println "|${unwantedFieldIds.join(',')}" +48   } +49 } +50 } +51  } +``` + +Line 1 is one of those awesomely lovely Groovy facilities that simplify life enormously. It turns out that the kind developer of JAudiotagger makes a compiled version available on the Maven central repository. In Java, this requires some [XML ceremony and configuration][8]. Using Groovy, I just use the @Grab annotation, and Groovy handles the rest behind the scenes. + +Line 2 imports the relevant class files from the JAudiotagger library. + +Lines 3-4 configure the JAudiotagger library to turn off logging. In my own experiments, the default level is quite verbose and the output of any script using JAudiotagger is filled with logging information. This works well because Groovy builds the script into a static main class. I'm sure I'm not the only one who has configured the logger in some instance method only to see the configuration garbage collected after the instance method returns. + +Lines 5-6 are from the framework introduced in Part 1. + +Lines 7-13 create a LinkedHashSet containing the list of tags that I hope will be in each file (or, at least, I'm OK with having in each file). I use a LinkedHashSet here so that the tags are ordered. + +This is a good time to point out a discrepancy in the terminology I've been using up until now and the class definitions in the JAudiotagger library. What I have been calling "tags" are what JAudiotagger calls `org.jaudiotagger.tag.TagField` instances. These *instances* live within an instance of `org.jaudiotagger.tag.Tag`. So the "tag" from JAudiotagger's point of view is the collection of "tag fields". I'm going to follow their naming convention for the rest of this article. + +This collection of strings reflects a bit of [prior digging with metaflac][9]. Finally, it's worth mentioning that JAudiotagger's `org.jaudiotagger.tag.FieldKey` uses "_" to separate words in the field keys, which seems incompatible with the strings returned by `org.jaudiotagger.tag.Tag.getFields()`, so I don’t use `FieldKey`. + +Lines 14-17 print the CSV file header. Note the use of Groovy's `*.` spread operator to apply `toLowerCase()` to each (upper case) string element of `wantedFieldIdSet`. + +Lines 18-27 are from the framework introduced in Part 1, descending into the sub-sub-directories where the music files are found. + +Lines 28-32 initialize a map of counters for the desired fields. I use counters here because some tag fields can occur more than once in a given file. Note the use of `wantedFieldIdSet.collectEntries` to build a map using the set elements as keys (the key value e is in parentheses, as it must be evaluated). I explain this in more detail in [this article][10] about maps in Groovy. + +Line 33 initializes a list for accumulating unwanted tag field IDs. + +Lines 34-48 analyzes any FLAC, MP3 or OGG music files found: + +* Line 35 uses the Groovy match operator `==~` and a "slashy" regular expression to check file name patterns; +* Line 36 reads the music file metadata using `org.jaudiotagger.AudioFileIO.read()` into the variable af +* Line 37-48 loops over the tag fields found in the metadata: + * Line 37 uses Groovy's `each()` method to iterate over the list of tag fields returned by `af.tag.getFields()`, which in Groovy can be abbreviated to `af.tag.fields` + * Line 38-39 counts any occurrence of a wanted tag field ID + * Line 40-41 appends an occurrence of an unwanted tag field ID to the unwanted list + * Line 43-47 prints out the counts and unwanted fields (if any) + +That's it! + +Typically, I would run this as follows: + +``` +$ groovy TagAnalyzer2.groovy > tagAnalysis2.csv +``` + +And then I load the resulting CSV into a spreadsheet. For example, with LibreOffice Calc, I go to the **Sheet** menu and select **Insert sheet from file.** I set the delimiter character to `|`. In my case, the results look like this: + +![Image of a screenshot of the first few rows of tagAnalysis2.csv][11] + +Image by: (Chris Hermansen, CC BY-SA 4.0) + +I like to have the ALBUMARTIST defined as well as the ARTIST for some music players so that the files in an album are grouped together when artists on individual tracks vary. This happens in compilation albums, but also in some albums with guest artists where the ARTIST field might say for example "Tony Bennett and Snoop Dogg" (I made that up. I think.) Lines 22 and onward in the spreadsheet shown above don't specify the album artist, so I might want to fix that going forward. + +Here is what the last column showing unwanted field ids looks like: + +![Image of a screenshot of unwanted field ids in tagAnalysic2.csv][12] + +Image by: (Chris Hermansen, CC BY-SA 4.0) + +Note that these tags may be of some interest and so the "wanted" list is modified to include them. I would set up some kind of script to delete field IDs BPM, ARTWORKGUID, CATALOGUENUMBER, ISRC and PUBLISHER. + +### Next steps + +In the next article, I'll step back from tracks and check for `cover.jpg` and other non-music files lying around in artist subdirectories and album sub-subdirectories. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/analyze-music-files-jaudiotagger + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/video_editing_folder_music_wave_play.png +[2]: https://opensource.com/article/22/8/groovy-scripting-analyzing-music-directory-part-1 +[3]: http://www.jthink.net/jaudiotagger/examples_read.jsp +[4]: https://groovy.apache.org/download.html +[5]: https://opensource.com/article/22/3/manage-java-versions-sdkman +[6]: https://opensource.com/tags/libreoffice +[7]: https://opensource.com/article/20/7/nextcloud +[8]: https://opensource.com/article/22/3/maven-manage-java-dependencies +[9]: https://opensource.com/article/19/11/metaflac-fix-music-tags +[10]: https://opensource.com/article/22/6/maps-groovy-vs-java +[11]: https://opensource.com/sites/default/files/2022-08/screenshot%20of%20first%20few%20rows%20of%20tagAnalysis2.csv%20in%20LibreOffice%20Calc.png +[12]: https://opensource.com/sites/default/files/2022-08/screenshot%20of%20unwanted%20field%20ids%20in%20tagAnalysis2.csv_.png From b129408f78bc269db245b3505bb8fa7824cbd90c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 28 Aug 2022 12:05:31 +0800 Subject: [PATCH 0909/3123] R --- ...o Help Improve GNOME- This New Tool Gives You the Chance!.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md b/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md index c431fdcd3d..f7bd0fdb5c 100644 --- a/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md +++ b/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md @@ -42,7 +42,7 @@ GNOME 带来了一个工具,可以让用户匿名提供他们的配置、扩 如果你有一个基于 Ubuntu 的发行版,你可以通过输入以下内容来安装它: ``` -sudo snap install --classic gnome-info-connect +sudo snap install --classic gnome-info-collect ``` 安装完毕后,在终端使用以下命令将其启动: From c14dc2b28951c6e121eb259e1cb18988222465e6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 28 Aug 2022 16:26:48 +0800 Subject: [PATCH 0910/3123] RP @geekpi https://linux.cn/article-14974-1.html --- ...mulators to Play Old NES Games on Linux.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220822 3 NES Emulators to Play Old NES Games on Linux.md (74%) diff --git a/translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/published/20220822 3 NES Emulators to Play Old NES Games on Linux.md similarity index 74% rename from translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md rename to published/20220822 3 NES Emulators to Play Old NES Games on Linux.md index ba7fabdc3f..e5081a56ab 100644 --- a/translated/tech/20220822 3 NES Emulators to Play Old NES Games on Linux.md +++ b/published/20220822 3 NES Emulators to Play Old NES Games on Linux.md @@ -3,21 +3,22 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14974-1.html" 3 个可在 Linux 上玩旧 NES 游戏的 NES 模拟器 ====== -快速浏览在 Linux 中玩旧 NES 游戏的 3 个 NES 模拟器。此外,我们还提供安装指南和特性。 + +![](https://img.linux.net.cn/data/attachment/album/202208/28/162533h41z1kynkyn5n53q.jpg) + +> 快速了解一下在 Linux 中玩老式 NES 游戏的 3 个 NES 模拟器。此外,我们也提供了安装指南和特性介绍。 如果你想在最新的 Ubuntu、Linux Mint 版本中玩超级马里奥、口袋妖怪等老式复古游戏,有很多可用的模拟器。如果你想玩老式复古游戏,可以尝试以下三个模拟器。 -### NES 模拟器上玩旧 NES 游戏 +### 1、ZSNES -#### 1. ZSNES - -[ZSNES][1] 是一个超级 [Nintendo][2] 模拟器,可以在 Windows、Linux、FreeBSD 和 DOS 上运行。它作为 GUI 界面运行,你可以在其中加载 NES 游戏的 ROM。 +[ZSNES][1] 是一个 [超级任天堂][2] 模拟器,可以在 Windows、Linux、FreeBSD 和 DOS 上运行。它作为 GUI 界面运行,你可以在其中加载 NES 游戏的 ROM。 这是在 Ubuntu、Debian 和 Linux Mint 中安装 ZSNES 的方法。从终端运行以下命令: @@ -25,7 +26,7 @@ sudo apt install zsnes ``` -对于 Fedora,在[使用这个指南设置 RPM fusion][3] 后运行以下命令进行安装。因为它需要一些 Fedora 官方发行版没有提供的模块。 +对于 Fedora,在 [使用这个指南设置 RPM fusion][3] 后运行以下命令进行安装。因为它需要一些 Fedora 官方发行版没有提供的模块。 ``` sudo dnf install zsnes @@ -37,7 +38,7 @@ sudo dnf install zsnes ![Play old NES games using ZSNES in Ubuntu][5] -#### 2. Higan +### 2、Higan higan 是 Nintendos SNES、NES、Gameboy、Gameboy Color 和 Gameboy Advance 的模拟器。它以前被称为 bsnes,并且 SNES 仿真特别完整和完善。 @@ -51,9 +52,9 @@ sudo apt install higan ![Higan Running in Ubuntu][6] -#### 3. GFCEU +### 3、GFCEU -GNOME FCE Ultra (gfceu) 是用于 GNOME 桌面的 FCE Ultra 任天堂娱乐系统的图形前端。 Gfceu 简化了用户的游戏体验,并提供了干净、简单和直观的界面。 +GNOME FCE Ultra(gfceu)是用于 GNOME 桌面的 FCE Ultra 任天堂娱乐系统的图形前端。 Gfceu 简化了用户的游戏体验,并提供了干净、简单和直观的界面。 从终端运行以下命令,为 Ubuntu、Linux Mint 和相关发行版安装 gfceu。 @@ -61,7 +62,7 @@ GNOME FCE Ultra (gfceu) 是用于 GNOME 桌面的 FCE Ultra 任天堂娱乐系 sudo apt install gfceu ``` -对于 Fedora,运行以下命令进行安装。请确保在运行此命令之前[使用这个指南设置 RPM fusion][7]。因为它需要某些官方 Fedora 发行版未提供的软件包。 +对于 Fedora,运行以下命令进行安装。请确保在运行此命令之前 [使用这个指南设置 RPM fusion][7]。因为它需要某些官方 Fedora 发行版未提供的软件包。 ``` sudo dnf install gfceu @@ -86,7 +87,7 @@ via: https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/ 作者:[Arindam][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/) 荣誉推出 From dc281785c74692e08f69c82dcca14ee04c962124 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 28 Aug 2022 17:31:06 +0800 Subject: [PATCH 0911/3123] RP @robsean https://linux.cn/article-14975-1.html --- ...o Linux Mint 21 [Step by Step Tutorial].md | 109 +++++++++--------- 1 file changed, 54 insertions(+), 55 deletions(-) rename {translated/tech => published}/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md (70%) diff --git a/translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md similarity index 70% rename from translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md rename to published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md index 53d780218a..0ebaeca551 100644 --- a/translated/tech/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md +++ b/published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md @@ -3,35 +3,38 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14975-1.html" 图解如何升级到 Linux Mint 21 ====== -这是一个周期性的更新指南,主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。 + +![](https://img.linux.net.cn/data/attachment/album/202208/28/172913lzqsmfll8snzblbs.jpg) + +> 这是一个周期性的更新指南,主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。 在这篇文章中有三个部分,分别向你展示 Linux Mint 的不同的主要版本之间的升级步骤: -* 第 1 部分是关于从 Linux Mint 20.3 升级到 Linux Mint 21 ( GUI 升级工具) -* 第 2 部分是关于从 Linux Mint 19.3 升级到 Linux Mint 20 (基于命令行的升级程序) -* 第 3 部分是关于从 Linux Mint 18.3 升级到 Linux Mint 19 (假设一些人仍然在使用它) +* 第 1 部分是关于从 Linux Mint 20.3 升级到 Linux Mint 21(GUI 升级工具) +* 第 2 部分是关于从 Linux Mint 19.3 升级到 Linux Mint 20(基于命令行的升级程序) +* 第 3 部分是关于从 Linux Mint 18.3 升级到 Linux Mint 19(假设一些人仍然在使用它) 你可以依据你的当前的 Linux Mint 版本和需要来执行适当的步骤。 这是一个周期性的更新指南,主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。 这篇指南已经更新,追加从 Mint 20.3 升级到 Linux Mint 21 的步骤。Linux Mint 现在有一个 GUI 工具来升级到最新的版本。 -; + ### 在你升级到 Linux Mint 21 之前需要知道的事情 在你继续升级到 Linux Mint 21 之前,你应该考虑下面的事情: * 你真的需要升级吗?Linux Mint 20.x 还有好几年的支持期限。 -* 你将需要高速因特网连接来下载大约 14 GB 的升级。 -* 它可能将花费几个小时的时间来完成升级过程,当然这主要取决于你的因特网速度。你必需有耐心。 -* 制作一个 Linux Mint 21 的 live USB 并在一次实时会话中尝试它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题,因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。 -* 一次全新的安装总是比一次主要版本升级的更好,但是从零开始安装 Linux Mint 21 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。 +* 你将需要高速互联网连接来下载大约 14 GB 的升级数据。 +* 它可能将花费几个小时的时间来完成升级过程,当然这主要取决于你的互联网速度。你必须有耐心。 +* 制作一个 Linux Mint 21 的 实况 USBLive USB 并在一次实况会话Live session 中尝试它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题,因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。 +* 全新的安装总是比主要版本升级的更好,但是从零开始安装 Linux Mint 21 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。 * 尽管大部分的升级是安全的,但是它也不会是 100% 的成功。你必须要有系统快照和真正的备份。 * 你只能从 Linux Mint 20.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 21 。首先 [检查你的 Linux Mint 版本][1] 。如果你正在使用 Linux Mint 20.2 或 20.1 ,你需要先使用更新管理器来升级到 20.3 。如果你正在使用 Linux Mint 19 ,我建议你选择进行一次的全新安装,而不是选择进行数次的升级 Mint 版本。 @@ -43,7 +46,7 @@ #### 步骤 1: 通过安装任意可用的更新来更新你的系统 -使用 菜单 -> 系统管理 -> 更新管理器来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新,先安装所有的软件包更新。 +使用 菜单Menu -> 系统管理Administration -> 更新管理器Update Manager 来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新,先安装所有的软件包更新。 ![Check for Pending Software Updates][2] @@ -55,7 +58,7 @@ sudo apt update && sudo apt upgrade -y #### 步骤 2: 在外部的磁盘上备份你的文件 [可选,但是建议] -Timeshift 是一个创建系统快照的好工具,但它却不是一个针对文档、图片和其它那些非系统、个人文件的理想工具。我建议你在一块外部磁盘上进行备份。它只是为了数据安全。 +Timeshift 是一个创建系统快照的好工具,但它却不是一个针对文档、图片和其它那些非系统的、个人文件的理想工具。我建议你在一块外部磁盘上进行备份。它只是为了数据安全。 当我说在一块外部磁盘上进行一次备份时,我的意思是将你的图片、文档、下载和视频目录简单地复制和粘贴到一块外部的 USB 磁盘上。 @@ -83,7 +86,7 @@ sudo mintupgrade ![Mint Upgrade Tool Home Page][4] -在一些初始化的测试后,它将提示进行一次 Timeshift 备份。如果你已经创建了一次备份,你已经准备好前进。 +在一些初始化的测试后,它将提示进行一次 Timeshift 备份。如果你已经创建了一次备份,你已经准备好下一步了。 ![Upgrade Tool Prompting No Timeshift Snapshots][5] @@ -95,13 +98,13 @@ sudo mintupgrade ![Kazam PPA Does Not Support Jammy][8] -在这里,我将通过其 PPA 来使用 [Kazam 的最新版本][9] 。其 PPA 仅被支持到 Impish ,因为 Linux Mint 21 是基于 Jammy 的,所以它会显示错误。 +在这里,我将通过 Kazam 其 PPA 来使用其 [最新版本][9] 。其 PPA 仅被支持到 Impish ,因为 Linux Mint 21 是基于 Jammy 的,所以它会显示错误。 你可以在升级工具中通过软件源来指定禁用 PPA 的选项。 ![Disable Unsupported PPAs in Software Sources][10] -在禁用该 PPA 后,该软件包会变成 ‘陌生的’ ,因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。因此,你需要将软件包降级到存储库中一个可用的版本。 +在禁用该 PPA 后,该软件包会变成 “陌生的foreign”,因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。因此,你需要将软件包降级到存储库中一个可用的版本。 ![Downgrade Package to Avoid Conflicts][11] @@ -117,15 +120,15 @@ sudo mintupgrade ![Upgrading Phase][15] -它将列出孤立的软件包,这可以被移除。你可以通过按下 修复 Fix 按钮来移除整个建议的软件包,也可以保留某些软件包。 +它将列出孤立的软件包,这可以被移除。你可以通过按下 修复Fix 按钮来移除整个建议的软件包,也可以保留某些软件包。 #### 保留某些孤立的软件包 -为保留来自孤立的软件包列表中软件包,你需要从左上角的菜单转到首选项。 +为保留来自孤立的软件包列表中软件包,你需要从左上角的汉堡菜单转到 首选项Preferences。 ![Selecting Orphan Packages You Want to Keep with Preferences][16] -在首选项对话框中,你需要转到 **孤立的软件包** 并使用 “+” 符号来通过名称添加软件包。 +在首选项对话框中,你需要转到 “孤立的软件包Orphan Packages” 并使用 “+” 符号来通过名称添加软件包。 ![Specify Name of the Package to Keep][17] @@ -142,26 +145,22 @@ sudo mintupgrade 在你继续升级到 Linux Mint 20 之前,你应该考虑下面的事情: * 你真的需要升级吗?Linux Mint 19.x 将会支持到 2023 年。 -* 如果你 [有一款 32-位 系统][20],你不能安装或升级到 Mint 20 。 -* 你将需要高速因特网连接来下载大约 1.4 GB 的升级。 -* 它可能将花费几个小时的时间来完成升级过程,当然这主要取决于你的因特网速度。你必需有耐心。 -* 制作一个 Linux Mint 20 的 live USB 并在一次实时会话中查看它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题,因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。 -* 一次全新的安装总是比一次主要版本升级的更好,但是从零开始 [安装 Linux Mint][21] 20 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。 +* 如果你 [有一款 32 位系统][20],你不能安装或升级到 Mint 20 。 +* 你将需要高速互联网连接来下载大约 1.4 GB 的升级。 +* 它可能将花费几个小时的时间来完成升级过程,当然这主要取决于你的互联网速度。你必须有耐心。 +* 制作一个 Linux Mint 20 的 实况 USBLive USB 并在一次实况会话中查看它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题,因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。 +* 全新的安装总是比主要版本升级的更好,但是从零开始 [安装 Linux Mint][21] 20 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。 * 尽管大部分的升级是安全的,但是它也不会是 100% 的成功。你必须要有系统快照和真正的备份。 -* 你只能从 Linux Mint 19.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 21 。首先 [检查你的 Linux Mint 版本][22] 。如果你正在使用 Linux Mint 19.2 或 19.1 ,你需要先使用更新管理器来升级到 19.3 。如果你正在使用 Linux Mint 18 ,我建议你选择进行一次的全新安装,而不是选择进行数次的升级 Mint 版本。 -* 升级过程是通过命令行实用程序来完成的。如果你不喜欢使用终端和命令, 避免升级,并进行一次全新的安装。 +* 你只能从 Linux Mint 19.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 20 。首先 [检查你的 Linux Mint 版本][22] 。如果你正在使用 Linux Mint 19.2 或 19.1 ,你需要先使用更新管理器来升级到 19.3 。如果你正在使用 Linux Mint 18 ,我建议你选择进行一次的全新安装,而不是选择进行数次的升级 Mint 版本。 +* 升级过程是通过命令行实用程序来完成的。如果你不喜欢使用终端和命令,不要升级,并进行一次全新的安装。 在你知道你将要做什么后,让我们看看如何升级到 Linux Mint 20 。 -![A Video from YouTube][23] - -[订阅我们的 YouTube 频道以获取更多的 Linux 视频][24] - #### 步骤 1: 确保你有一款 64 位系统 -Linux Mint 20 仅是一款 64 位系统。如果你安装了一款 32 位的 Linux Mint 19 ,你不能升级到 Linux Mint 20 。 +Linux Mint 20 是一款仅提供 64 位的操作系统。如果你安装了一款 32 位的 Linux Mint 19 ,你不能升级到 Linux Mint 20 。 -在一个终端中,使用下面的命令来查看你是否正在使用 64-位 操作系统。 +在一个终端中,使用下面的命令来查看你是否正在使用 64 位操作系统。 ``` dpkg --print-architecture @@ -171,7 +170,7 @@ dpkg --print-architecture #### 步骤 2: 通过安装一些可用的更新来更新你的系统 -使用 菜单 -> 系统管理 -> 更新管理器 来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新,先安装所有的软件包更新。 +使用 菜单Menu -> 系统管理Administration -> 更新管理器Update Manager 来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新,先安装所有的软件包更新。 ![Check for pending software updates][26] @@ -185,9 +184,9 @@ sudo apt update && sudo apt upgrade -y 如果你遇到升级过程中断或你遇到其它的一些重大问题,[使用 Timeshift 创建一个系统快照][27] 将会解救你于水火之中。**你甚至可以使用这种方法恢复到 Mint 19.3 。** -假设你因为意外断电导致升级失败,或因为其它一些原因,你最终得到一个残缺的不稳定的 Linux Mint 19 。你可以插入一个live Linux Mint USB ,并从该 live 环境中运行 Timeshift 。它将会自动地定位你的备份位置,并将允许你恢复你残缺的 Mint 19 系统。 +假设你因为意外断电导致升级失败,或因为其它一些原因,你最终得到一个残缺的不稳定的 Linux Mint 19 。你可以插入一个 Linux Mint 实况 USB ,并从该实况环境中运行 Timeshift 。它将会自动地定位你的备份位置,并将允许你恢复你残缺的 Mint 19 系统。 -这也意味着你应该随时携带一个 live Linux Mint 19 USB ,在极少数升级失败的情况下,如果你不能访问一台工作的计算机,你可以使用它来创建 live Linux Mint USB 。 +这也意味着你应该随时携带一个 Linux Mint 19 实况 USB ,以防在极少数升级失败的情况下,你不能用一台工作的计算机创建 Linux Mint 实况 USB 。 ![Create a system snapshot in Linux Mint][28] @@ -205,21 +204,21 @@ Timeshift 是一个创建系统快照的好工具,但它却不是一个针对 一些 PPA 可能已经适用于 Ubuntu 20.04 ,因此也适用于 Mint 20 。但是,如果 PPA 或存储库不适用于新的版本,它可能会因为依赖关系的打断而影响升级过程。 -对此,建议你禁用 PPA 和第三方存储库。你也可以删除通过这样的外部源来安装的应用程序,如果你这样做的话,它不会导致配置数据的丢失。 +对此,建议你禁用 PPA 和第三方存储库。你也可以删除通过这样的外部源安装的应用程序,如果你这样做的话,不会导致配置数据的丢失。 -在软件源工具中,禁用附加的存储库、禁用 PPA 。 +在 软件源Software Sources 工具中,禁用附加的存储库、禁用 PPA 。 ![Disable Ppa Mint Upgrade][30] -你也可以 **降级** ,然后在维护标签页中 **移除可用的陌生的软件包** 。 +你也可以在维护标签页中 **降级** ,**移除可用的外部的软件包** 。 -例如,我使用一个 PPA 来安装 Shutter 。我在禁用它的 PPA 后,现在该软件包会变成 ‘陌生的’ ,因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。 +例如,我使用一个 PPA 来安装 Shutter 。我在禁用它的 PPA 后,现在该软件包会变成 “陌生的foreign”,因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。 ![Foreign Package Linux Mint][31] #### 步骤 6: 安装升级工具 -现在,你的系统已经更新,你已经准备好升级到 Linux Mint 20 。Linux Mint 开发组提供一个名称为 [mintupgrade][32] 的命令行工具,其唯一的目的是将 Linux Mint 19.3 升级到 Linux Mint 20 。 +现在,你的系统已经更新,你已经准备好升级到 Linux Mint 20 。Linux Mint 开发团队提供一个名称为 [mintupgrade][32] 的命令行工具,其唯一的目的是将 Linux Mint 19.3 升级到 Linux Mint 20 。 你可用使用下面的命令来安装这个工具: @@ -229,7 +228,7 @@ sudo apt install mintupgrade #### 步骤 7: 运行一次升级设备健康检查 -mintupgrade 工具将会让你通过模拟升级的初始化部分来运行一次设备健康检查。 +`mintupgrade` 工具将会让你通过模拟升级的初始化部分来运行一次设备健康检查。 你可以运行这次检查来查看对你的系统做出何种更改,哪些软件包将会升级。它也将会显示不能升级和必须移除的软件包。 @@ -237,19 +236,19 @@ mintupgrade 工具将会让你通过模拟升级的初始化部分来运行一 mintupgrade check ``` -在这里,它不会在你的系统上做出任何真正的更改 (即使,感觉上它正在进行做一些更改)。 +在这里,它不会在你的系统上做出任何真正的更改(即使感觉上它正在进行做一些更改)。 -这一步骤是非常重要的,有助于准确算出你的系统是否可以升级到 Mint 20 。 +这一步骤是非常重要的,有助于准确评估出你的系统是否可以升级到 Mint 20 。 ![Mint Upgrade Check][33] -如果这一步骤中途失败,输入 **mintupgrade restore-sources** 来返回到你原始的 APT 配置。 +如果这一步骤中途失败,输入 `mintupgrade restore-sources` 来返回到你原始的 APT 配置。 #### 步骤 8: 下载软件包升级 -在你对 mintupgrade 的检查输出感到满意后,你可以下载 Mint 20 升级软件包。 +在你对 `mintupgrade`` 的检查输出感到满意后,你可以下载 Mint 20 升级软件包。 -取决于你的因特网连接速度,它可能会在下载这些升级方面消耗一些时间。确保你的硬件系统接通到强电电源。 +取决于你的互联网连接速度,它可能会在下载这些升级方面消耗一些时间。确保你的硬件系统接通到强电电源。 在软件包的下载期间,你可以继续使用你的系统进行常规工作。 @@ -259,9 +258,9 @@ mintupgrade download ![Mint 20 Upgrade Download][34] -注意,这行命令将把你的操作系统指向 Linux Mint 20 存储库。在使用这行命令后,如果你想降级到 Linux Mint 19.3 ,你仍然可以使用命令 “**mintupgrade restore-sources**” 来做到。 +注意,这行命令将把你的操作系统指向 Linux Mint 20 存储库。在使用这行命令后,如果你想降级到 Linux Mint 19.3 ,你仍然可以使用命令 `mintupgrade restore-sources` 来做到。 -#### 步骤 9: 安装升级 [Point of no return] +#### 步骤 9: 安装升级 [不可回退] 现在,万事俱备,你可以使用这行命令来升级到 Linux Mint 20 : @@ -285,11 +284,11 @@ mintupgrade upgrade 我将在这里快速地提及这些步骤。如果你想要更多的信息,你可以参考 Mint 20 升级过程。 -**步骤 1:** 使用 Timeshift 创建一个系统快照 [可选,但是建议] +**步骤 1:** 使用 Timeshift 创建一个系统快照 [可选,但是建议] -**步骤 2:** 在一块外部的磁盘上备份你的文件 [可选,但是建议] +**步骤 2:** 在一块外部的磁盘上备份你的文件 [可选,但是建议] -**步骤 3: 确保你正在使用 LightDM** +**步骤 3:** 确保你正在使用 LightDM 对于 Mint 19 ,你必须使用 [LightDM 显示管理器][37] 。为检查你正在使用哪种显示管理器,输入命令: @@ -297,11 +296,11 @@ mintupgrade upgrade cat /etc/X11/default-display-manager ``` -如果结果是 “/usr/sbin/**lightdm**”,那么你就有 LightDM ,你就可以继续前进了。 +如果结果是 `/usr/sbin/lightdm`,那么你就有 LightDM ,你就可以继续前进了。 ![LightDM Display Manager in Linux Mint][38] -在另一个方面,如果结果是 “/usr/sbin/**mdm**”,你需要安装 LightDM ,[切换到 LightDM][39] 并移除 MDM 。使用这行命令来安装 LightDM : +在另一个方面,如果结果是 `/usr/sbin/mdm`,你需要安装 LightDM ,[切换到 LightDM][39] 并移除 MDM 。使用这行命令来安装 LightDM : ``` apt install lightdm lightdm-settings slick-greeter @@ -364,7 +363,7 @@ via: https://itsfoss.com/upgrade-linux-mint-version/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c5c7bc239633548b6a2dd1871b27587e169edb2d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 28 Aug 2022 18:03:25 +0800 Subject: [PATCH 0912/3123] RP @wxy https://linux.cn/article-14976-1.html --- ...aler Upscayl Released its First Version.md | 96 +++++++++++++++++ ...aler Upscayl Released its First Version.md | 101 ------------------ 2 files changed, 96 insertions(+), 101 deletions(-) create mode 100644 published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md delete mode 100644 sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md diff --git a/published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md b/published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md new file mode 100644 index 0000000000..8f545093ac --- /dev/null +++ b/published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md @@ -0,0 +1,96 @@ +[#]: subject: "Linux-First AI Image Upscaler Upscayl Released its First Version" +[#]: via: "https://news.itsfoss.com/upscayl-version-1-release/" +[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14976-1.html" + +Linux 优先的 AI 图像提升器 Upscayl 发布了第一个版本 +====== + +> 你不是每天都能遇到一个采用 “Linux 优先” 方式的应用程序。 + +![Linux-First AI Image Upscaler Upscayl Released its First Version][1] + +你是不是有一张世纪初的像素化、低分辨率的图片?由于人工智能的进步,你可以轻松地将像素化的图像提升为分辨率更好的图像。 + +使用普通的图像编辑器需要人工的努力来提升图像。 + +有大量的在线人工智能图像提升器,但是你不能信任它们对你的数据的处理。 + +一个新的项目试图解决这个问题,为你提供一个简单的桌面应用程序,让你在一次点击中增强低分辨率照片。 + +它的第一个版本已经发布。 + +### Upscayl 的功能 + +[Upscayl][2] 是一个跨平台的应用程序,以 Linux 优先的理念构建。 + +这仅仅意味着 Linux 的构建得到优先考虑,但其他平台也会得到支持。 + +Upscayl 使用 Python 和 JavaScript 开发,给出了一个简单的界面,你可以选择输入图片和输出文件夹,然后点击 “Upscayl” 按钮来增强图片。 + +### 使用 Upscayl + +我的电脑上没有太多模糊的照片。并不是说我是一个优秀的摄影师,只是懒得在成千上万的照片中寻找它们。 + +不过,我还是设法弄到了一张 2011 年的模糊的老照片(那是 11 年前的照片,现在可以说是老照片了)。 + +![厨房的模糊老照片][4] + +不要因为我随手拍了一张厨房柜台的照片而对我做出评价。一定有一个很好的理由(或者我觉得)。 + +无论如何。我试着用 Upscayl 对图片进行放大。 + +![使用 Upscayl][5] + +这需要相当大的处理能力,但我的 8 核、第 11 代 i7 处理器和 16GB 内存可以轻松应对。 + +![Upscayl 工作时 CPU 的使用情况][6] + +单张图片的处理花了大约 4 分钟,435KB 的图片最终变成了 24MB 的图片。说实话,我几乎没有注意到明显的差异。 + +![由 Upscayl 放大的图像][7] + +我想把最后的结果嵌入这里的文章中。但是上传一张 24MB 的图片对我的服务器和你的浏览器来说都有点过分。 + +### 安装 Upscayl + +不过,我这个不怎么成功的实验不应该阻止你自己去尝试它。 + +目前,该应用程序可用于 Linux。对 Windows 和 macOS 的支持正在计划中。 + +你可以得到 Upscayl 的 AppImage 和 Flatpak 软件包。我使用的是 AppImage 版本,你可以使用你喜欢的任何一种。 + +这些文件可以在发布页面上找到。 + +> **[下载 Upscayl][8]** + +如果你喜欢这个项目,别忘了在 GitHub 上给它加星。 + +> **[GitHub - TGS963/upscayl][9]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/upscayl-version-1-release/ + +作者:[Abhishek][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/abhishek/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/upscayl-image-upscaler.png +[2]: https://github.com/TGS963/upscayl +[3]: https://news.itsfoss.com/content/media/2022/08/upscayl-in-action.mp4 +[4]: https://news.itsfoss.com/content/images/2022/08/old-blurry-photo.jpg +[5]: https://news.itsfoss.com/content/images/2022/08/Using-Upscayl-for-image-processing.png +[6]: https://news.itsfoss.com/content/images/2022/08/Upscayl-CPU-usage.png +[7]: https://news.itsfoss.com/content/images/2022/08/Upscayl-final-result.png +[8]: https://github.com/TGS963/upscayl/releases +[9]: https://github.com/TGS963/upscayl diff --git a/sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md b/sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md deleted file mode 100644 index ce986491b4..0000000000 --- a/sources/news/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: subject: "Linux-First AI Image Upscaler Upscayl Released its First Version" -[#]: via: "https://news.itsfoss.com/upscayl-version-1-release/" -[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux-First AI Image Upscaler Upscayl Released its First Version -====== -Not every day you come across an application with 'Linux-first' approach. - -![Linux-First AI Image Upscaler Upscayl Released its First Version][1] - -Got a pixelated, low-resolution image from the 2000s? Thanks to the advancement of artificial intelligence, you can easily enhance pixelated images into better resolution images. - -Using a regular image editor requires manual efforts for upscaling the images. - -There are tons of online AI image upscalers available, but they can't be trusted with your data. - -A new project tries to solve this by providing you with a simple desktop application that lets you enhance low resolution photos in a new click. - -It's first version is released today. - -### Upscayl Features - -[Upscayl][2] is a cross-platform application built with the Linux-first philosophy. - -This simply means that Linux builds get priority but other platforms will also be supported. - -Developed using Python and JavaScript, Upscayl gives a simple interface where you select the input image and output folder and hit the Upscayl button to enhance the image. - -Here's a video of Upscayl in action. - -![][3] - -0:00 - -### Using Upscayl - -I don't have lots of blurry pictures on my computer. Not that I am an excellent photographer, just too lazy to look for them among thousands of pictures. - -Still, I managed to get a blurry, old photo from 2011 (it was 11 years ago and can be considered old now). - -![Old blurry photo of a kitchen][4] - -Don't judge me because I took a random photo of my kitchen counter. There must have been a good reason (or so I want to believe). - -Anyway. I tried to upscale the image with Upscayl. - -![Using Upscayl][5] - -It took quite some processing power, but my 8-core, 11th Gen i7 processor with 16 GB RAM easily handled it. - -![CPU usage while Upscayl works on upscaling the image][6] - -The single image processing took around 4 minutes and the 435 KB image resulted in a 24 MB image. Quite honestly, I hardly noticed visible differences. - -![Upscaled image by Upscayl][7] - -I wanted to embed the final result in the article here. But uploading a 24 MB image would be overkill for my server and your browser. - -### Getting Upscayl - -Still, my not-so-successful experiment should not deter you from trying it out yourself. - -The application is available for Linux at the moment. Support for Windows and macOS is planned. - -You can get Upscayl in AppImage and Flatpak formats. I used the AppImage version, you can use whichever you prefer. - -The files are available on the release page. - -[Download Upscayl][8] - -And if you liked the project, don't forget to star it on GitHub 👇 - -[GitHub - TGS963/upscayl: 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows][9] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/upscayl-version-1-release/ - -作者:[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/abhishek/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/upscayl-image-upscaler.png -[2]: https://github.com/TGS963/upscayl -[3]: https://news.itsfoss.com/content/media/2022/08/upscayl-in-action.mp4 -[4]: https://news.itsfoss.com/content/images/2022/08/old-blurry-photo.jpg -[5]: https://news.itsfoss.com/content/images/2022/08/Using-Upscayl-for-image-processing.png -[6]: https://news.itsfoss.com/content/images/2022/08/Upscayl-CPU-usage.png -[7]: https://news.itsfoss.com/content/images/2022/08/Upscayl-final-result.png -[8]: https://github.com/TGS963/upscayl/releases -[9]: https://github.com/TGS963/upscayl From 49e298f693fc327282a6bf9737b1bae0196678ba Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 28 Aug 2022 21:03:17 +0800 Subject: [PATCH 0913/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220828=20How=20I=20use=20Groovy=20to=20analyze=20a?= =?UTF-8?q?lbum=20art=20in=20my=20music=20directory.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...analyze album art in my music directory.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sources/tech/20220828 How I use Groovy to analyze album art in my music directory.md diff --git a/sources/tech/20220828 How I use Groovy to analyze album art in my music directory.md b/sources/tech/20220828 How I use Groovy to analyze album art in my music directory.md new file mode 100644 index 0000000000..36bfaaa290 --- /dev/null +++ b/sources/tech/20220828 How I use Groovy to analyze album art in my music directory.md @@ -0,0 +1,140 @@ +[#]: subject: "How I use Groovy to analyze album art in my music directory" +[#]: via: "https://opensource.com/article/22/8/groovy-album-music-directory" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use Groovy to analyze album art in my music directory +====== +Here's how I use open source tools to analyze my music directory including album cover files. + +In this series, I'm developing several scripts to help in cleaning up my music collection. In the last article, I used the framework I created for analyzing the directory and sub-directories of music files and carried out the analysis with the fine open source [JAudiotagger library][2] to analyze the tags of the music files in the music directory and subdirectories. In this article, I will do a simpler job: + +1. Use the framework we created in Part 1 +2. Make sure each album directory has a `cover.jpg` class +3. Make a note of any other files in the album directory that aren't FLAC, MP3 or OGG. + +### Music and metadata + +If you haven't read [part 1][3] and [part 2][4] of this series, do that now so you understand the intended structure of my music directory, the framework created in that article, and how to pick up FLAC, MP3, and OGG files. + +One more thing. Most audio ripping applications and many downloads: + +* Don't come with a useful `cover.jpg` file +* Even if they do come with a useful `cover.jpg` file, they don't link the media files to it +* Carry in all sorts of other files of dubious utility (for example, `playlist.m3u`, which gets created by a tagging utility I've used in the past) + +As I mentioned in my last article, the ultimate goal of this series is to create a few useful scripts to help identify missing or unusual tags and facilitate the creation of a work plan to fix tagging problems. This particular script looks for missing `cover.jpg` files and unwanted non-media files, and creates a CSV file that you can load into [LibreOffice][5] or [OnlyOffice][6] to look for problems. It won't look at the media files themselves, nor does it look for extraneous files left in the artist subdirectories (those are exercises left for the reader). + +### The framework and album files analysis + +Start with the code. As before, I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" that I typically leave for myself: + +``` +1  // Define the music library directory +        +2  def musicLibraryDirName = '/var/lib/mpd/music' +        +3  // Print the CSV file header +        +4  println "artist|album|cover|unwanted files" +        +5  // Iterate over each directory in the music libary directory +6  // These are assumed to be artist directories + +7  new File(musicLibraryDirName).eachDir { artistDir -> +        +8      // Iterate over each directory in the artist directory +9      // These are assumed to be album directories +        +10      artistDir.eachDir { albumDir -> +        +11          // Iterate over each file in the album directory +12          // These are assumed to be content or related +13          // (cover.jpg, PDFs with liner notes etc) +        +14          // Initialize the counter for cover.jpg +15          // and the list for unwanted file names +        +16          def coverCounter = 0 +17          def unwantedFileNames = [] +        +18          albumDir.eachFile { contentFile -> +        +19              // Analyze the file +        +20              if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) { +21                  // nothing to do here +22              } else if (contentFile.name == 'cover.jpg') { +23                  coverCounter++ +24              } else { +25                  unwantedFileNames << contentFile.name +26              } +        +27          } +28          println "${artistDir.name}|${albumDir.name}|$coverCounter|${unwantedFileNames.join(',')}" +29      } +30  } +``` + +Lines 1-2 define the name of the music file directory. + +Line 3-4 print the CSV file header. + +Lines 5-13 come from the framework created in Part 1 of this article and get down to the album sub-subdirectories. + +Lines 14-17 set up the `cover.jpg` counter (should only ever be zero or one) and the empty list in which we will accumulate unwanted file names. + +Lines 18-27 analyze any files found in the album directories: + +Lines 20-21 uses the Groovy match operator `==~` and a "slashy" regular expression to check file name patterns. Nothing is done with these files (see Part 2 for that information). + +Lines 22-23 count the instances of `cover.jpg` (it should only ever be zero or one). + +Lines 24-26 record the names of any non-media, `non-cover.jpg` files to show potential cruft or who-knows-what in the album directories. + +Line 28 prints out the artist name, album name, cover.jpg count and list of unwanted file names. + +That’s it! + +### Running the code + +Typically, I run this as follows: + +``` +$ groovy TagAnalyzer3.groovy > tagAnalysis3.csv +``` + +Then I load the resulting CSV into a spreadsheet. For example, with LibreOffice Calc , go to the **Sheet** menu and select **Insert sheet from file**. When prompted, set the delimiter character to `|`. In my case, the results look like this: + +![Image of a screenshot of LibreOffice showing tagAnalysis3][7] + +Image by: (Chris Hermansen, CC BY-SA 4.0) + +I've sorted this in increasing order of the column "cover" to show album sub-subsubdirectories that don't have `cover.jpg` files. Note that some have `cover.png` instead. My experience with music players is that at least some don't play well with PNG format cover images. + +Also, note that some of these have PDF liner notes, extra image files, M3U playlists, and so on. In my next article, I'll show you how to manage some of the cruft. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/groovy-album-music-directory + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/open-music-column-lead-blue.png +[2]: http://www.jthink.net/jaudiotagger/examples_read.jsp +[3]: https://opensource.com/article/22/8/groovy-scripting-analyzing-music-directory-part-1 +[4]: https://opensource.com/article/22/8/groovy-scripting-analyzing-music-directory-part-2 +[5]: https://opensource.com/article/21/9/libreoffice-tips +[6]: https://opensource.com/article/20/12/onlyoffice-docs +[7]: https://opensource.com/sites/default/files/2022-08/screenshot%20of%20LibreOffice%20showing%20tagAnalysis3.png From 3d017fcd10d1092bb13105eb8ee19894481c89d6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 28 Aug 2022 21:05:34 +0800 Subject: [PATCH 0914/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220828=207=20Minimalist=20Linux=20Distributions=20?= =?UTF-8?q?Featuring=20Openbox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t Linux Distributions Featuring Openbox.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20220828 7 Minimalist Linux Distributions Featuring Openbox.md diff --git a/sources/tech/20220828 7 Minimalist Linux Distributions Featuring Openbox.md b/sources/tech/20220828 7 Minimalist Linux Distributions Featuring Openbox.md new file mode 100644 index 0000000000..65d50c48b2 --- /dev/null +++ b/sources/tech/20220828 7 Minimalist Linux Distributions Featuring Openbox.md @@ -0,0 +1,144 @@ +[#]: subject: "7 Minimalist Linux Distributions Featuring Openbox" +[#]: via: "https://itsfoss.com/openbox-distros/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Minimalist Linux Distributions Featuring Openbox +====== + +[Openbox][1] is a lightweight, configurable, stacking window manager available for Linux. It supports many standards making it a good fit for any desktop. + +You will be surprised to know that **LXDE and LXQT desktop environments are built around Openbox**. You can even replace the window manager of your desktop environment with it. + +Of course, you can install Openbox on almost any Linux distribution. However, configuring it takes time and effort. + +An easier way out would to be to use a distribution that provides an Openbox variant. In this article, I list some distros that give you an out-of-the-box Openbox experience. + +**Note:** The list is in alphabetical order and is not a ranking. + +### 1. Archcraft + +![archcraft live media with neofetch open in terminal][2] + +This is one of the exciting choices if you want to get your hands on the Openbox window manager. Openbox is the default desktop for the distro so you can expect it to be great unlike other distros. + +It provides a minimal and lightweight environment as it can run under 500 MB without compromising the looks. The UI elements are cohesive. + +You can switch themes with just a click. It also provides Windows like UI if you like that. + +For power users it has built in support for AUR and Chaotic-AUR. Unlike any other distros, it provides the best out of box experience. + +[Archcraft][3] + +### 2. ArcolinuxB Openbox + +![arcolinuxb openbox live media with neofetch open in terminal][4] + +It should be an excellent distro for your Linux desktop if you want to learn Arch (The main motive of Arcolinux project). + +It is one of the many flavors of ArcolinuxB project. One can expect slight learning curve and rough edges. + +You will not see cohesive UI elements as Archcraft here and it may need some tinkering to get a good experience. + +[ArcolinuxB][5] + +### 3. AV Linux MX Edition + +![av linux live media with neofetch open in terminal][6] + +AV Linux MX Edition is based on MX Linux but with Openbox as the window manager. + +It uses the high-performance [Liquorix Kernel][7] and provides low latency audio which is desired by audiophiles. It also has support for Windows Audio via Wine-staging. + +You may want to try this out if you are an audio professional and a Linux user. It may seem bloated to some users, as it comes with many pre-installed apps. + +[AV Linux][8] + +### 4. Bunsenlabs Linux + +![bunsenlabs live media with neofetch open in terminal][9] + +BunsenLabs Linux is a Debian-based distribution offering a lightweight and easily customizable Openbox desktop. The project is a fork of [CrunchBang Linux][10]. + +It is still based on Debian 10, so you will get the older versions of apps in repos. However, it has quite a good out-of-box experience due to the inclusion of hardware and multimedia support, unlike Debian. + +It has an interface as cohesive as Archcraft and also provides a great range of conky configurations. + +[BunsenLabs Linux][11] + +### 5. Crunchbangplusplus + +![crunchbangplusplus live media with neofetch open in terminal][12] + +As the name suggests, it is a Crunchbang fork, and tries to stay as close as possible to the original. + +For those unaware, Crunchbang was a popular Openbox distribution discontinued almost a decade ago. + +Crunchbang++ is minimal and lightweight. It may make some users nostalgic. It is based on Debian 11, which can provide newer packages as compared to Bunsenlabs. + +[Crunchbangplusplus][13] + +### 6. Mabox Linux + +![mabox linux live media with neofetch open in terminal][14] + +Mabox Linux is a modern Manjaro-based distribution that focuses on customization or ricing. + +It is minimal and fast due to use of light components. You also get newer software due to rolling release. + +Some of the exclusive features of this distro are Colorizer (changes accent colors according to wallpaper), Quicktiling(for easily tiling windows) and customizable menus/panels. This much customization may intimidate some minimalists. + +[Mabox Linux][15] + +### 7. Sparky Linux Openbox + +![sparky linux openbox live media with neofetch open in terminal][16] + +Sparky Linux is a Debian-based Linux distribution which also provides Openbox as an alternative desktop. + +It has an edition with Debian Testing, which can be useful for users who need newer apps. It is focused on providing out of box experience for Debian and keeps the customization to users. Thus, you might not see that much eye candy here. + +[Sparky Linux][17] + +### Wrapping Up + +There are several other Linux distributions on which you can install Openbox. + +But, for this list, I have listed the ones which provide Openbox in live media and some of them have Openbox as their default desktop also. + +What is your favorite Openbox distribution? Do you like it pre-customized or prefer to customize the yourself? Your suggestions are always welcome. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/openbox-distros/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: http://openbox.org/wiki/Main_Page +[2]: https://itsfoss.com/wp-content/uploads/2022/08/archcraft.png +[3]: https://archcraft.io/ +[4]: https://itsfoss.com/wp-content/uploads/2022/08/arcolinuxb-openbox.png +[5]: https://arcolinuxb.com/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/av-linux.png +[7]: https://liquorix.net/#features +[8]: http://www.bandshed.net/avlinux/ +[9]: https://itsfoss.com/wp-content/uploads/2022/08/bunsenlabs-linux.png +[10]: https://en.wikipedia.org/wiki/CrunchBang_Linux +[11]: https://www.bunsenlabs.org/ +[12]: https://itsfoss.com/wp-content/uploads/2022/08/crunchbangpp-linux.png +[13]: https://crunchbangplusplus.org/ +[14]: https://itsfoss.com/wp-content/uploads/2022/08/mabox-linux.png +[15]: https://maboxlinux.org/ +[16]: https://itsfoss.com/wp-content/uploads/2022/08/sparkylinux-openbox.png +[17]: https://sparkylinux.org/ From 4a61b9426fed0666122fad6292e6585f94820fe6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Aug 2022 08:32:35 +0800 Subject: [PATCH 0915/3123] translated --- .../20220819 5 note-taking apps for Linux.md | 89 ------------------- .../20220819 5 note-taking apps for Linux.md | 89 +++++++++++++++++++ 2 files changed, 89 insertions(+), 89 deletions(-) delete mode 100644 sources/tech/20220819 5 note-taking apps for Linux.md create mode 100644 translated/tech/20220819 5 note-taking apps for Linux.md diff --git a/sources/tech/20220819 5 note-taking apps for Linux.md b/sources/tech/20220819 5 note-taking apps for Linux.md deleted file mode 100644 index cb8da4d4ab..0000000000 --- a/sources/tech/20220819 5 note-taking apps for Linux.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "5 note-taking apps for Linux" -[#]: via: "https://opensource.com/article/22/8/note-taking-apps-linux" -[#]: author: "Don Watkins https://opensource.com/users/don-watkins" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 note-taking apps for Linux -====== -Use these open source tools for jotting down notes. - -![How to create outlines in Linux with TreeLine][1] - -Image by: Startup Stock Photos. Creative Commons CC0 license. - -Notes are part of any writer's life. Most of my articles begin in a note-taking application and that’s usually [Joplin][2] for me. There are a large number of note-taking apps for Linux and you may use something other than my favorite. A recent blog article reminded me of a half dozen of them, so I assembled a list of my favorites. - -### Joplin - -![Joplin][3] - -[Joplin][4] is available on Linux, Windows, macOS, Android, and iOS. I like Joplin because it automatically saves whatever you add to it. Notes can be uploaded to NextCloud, OwnCloud, Joplin Cloud, and even closed source services like OneDrive, Dropbox, or any WebDav applications. Joplin supports encryption. - -It’s easy to export notes in a variety of formats, too. It comes with eight different themes that allow you to tailor its look. - -Joplin has an MIT license. Initially released in 2017 Joplin is under continuous development with a large community of contributors. - -### Xournal - -![Xournal][5] - -[Xournal][6] is available on Linux, Windows, macOS, and Android. Its aim is to let you create notes containing nearly any media type you can imagine. It supports pressure-sensitive stylus and drawing tablets so you create [sketchnotes][7]. You can type into it, draw simple vectors, import graphics, record audio, and more. You can also use Xournal to annotate PDFs, which is how I have used it. It is released with a GPLv2 license, and you can export notes in a variety of formats. - -### Trillium - -![Trillium][8] - -[Trillium][9] is a hierarchical note-taking application with a focus on knowledge building bases. It features rich WYSIWYG editing with tables, images, and markdown. It has support for editing notes in source code with syntax highlighting. It's released under the Gnu Affero License. - -Trilium is available as a desktop application for Linux and Windows, as well as a web application that you can host on your own Linux server. - -### Gnote - -![Gnote][10] - -[Gnote][11] is an open source note taking application written for Linux. It was cloned by Hubert Figuière from a project called [Tomboy][12]. Like Tomboy, Gnote uses a wiki-like linking system to allow you to link notes together. - -GNote's source code is available on [GitLab][13]. The software is licensed with GPLv3. - -### CherryTree - -![CherryTree][14] - -CherryTree supports hierarchical note-taking. In CherryTree everything is a node. Nodes can be plain text, rich text, syntax highlighting for a variety of programming languages. Each node can have child nodes each with a different format. - -CherryTree features rich text and syntax highlighting, and can store data in a single XML or [SQLite][15] file. CherryTree can import from a variety of formats including Markdown, HTML, plain text, Gnote, Tomboy, and others. It can export files to PDF, HTML, plain text and its own CherryTree format. - -CherryTree is licensed under the GPLv3, and can be installed on Linux, Windows, and macOS. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/note-taking-apps-linux - -作者:[Don Watkins][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/don-watkins -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/write-hand_0.jpg -[2]: https://opensource.com/article/21/1/notes-joplin -[3]: https://opensource.com/sites/default/files/2022-08/joplin.png -[4]: https://joplinapp.org/ -[5]: https://opensource.com/sites/default/files/2022-08/xournal.png -[6]: https://xournalpp.github.io/ -[7]: https://opensource.com/article/22/6/open-source-sketchnotes -[8]: https://opensource.com/sites/default/files/2022-08/trillium.png -[9]: https://github.com/zadam/trilium -[10]: https://opensource.com/sites/default/files/2022-08/gnote.png -[11]: https://wiki.gnome.org/Apps/Gnote -[12]: https://wiki.gnome.org/Apps/Tomboy -[13]: https://gitlab.gnome.org/GNOME/gnote -[14]: https://opensource.com/sites/default/files/2022-08/cherrytree.png -[15]: https://opensource.com/article/21/2/sqlite3-cheat-sheet diff --git a/translated/tech/20220819 5 note-taking apps for Linux.md b/translated/tech/20220819 5 note-taking apps for Linux.md new file mode 100644 index 0000000000..0d9e3c8f3e --- /dev/null +++ b/translated/tech/20220819 5 note-taking apps for Linux.md @@ -0,0 +1,89 @@ +[#]: subject: "5 note-taking apps for Linux" +[#]: via: "https://opensource.com/article/22/8/note-taking-apps-linux" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 款适用于 Linux 的笔记应用 +====== +\使用这些开源工具来记笔记。 + +![How to create outlines in Linux with TreeLine][1] + +图片来源:Startup Stock Photos。知识共享 CC0 许可证。 + +笔记是任何作者生活的一部分。我的大部分文章都是从笔记应用开始的,这对我来说通常是 [Joplin][2]。有大量适用于 Linux 的笔记应用,你可能使用的不是我最喜欢的应用。最近的一篇博客文章让我想起了其中的六个,所以我整理了一份我最喜欢的列表。 + +### Joplin + +![Joplin][3] + +[Joplin][4] 适用于 Linux、Windows、macOS、Android 和 iOS。我喜欢 Joplin,因为它会自动保存你添加的任何内容。笔记可以上传到 NextCloud、OwnCloud、Joplin Cloud,甚至是 OneDrive、Dropbox 或任何 WebDav 应用等闭源服务。 Joplin 支持加密。 + +以各种格式导出笔记也很容易。它带有八个不同的主题,可让你定制其外观。 + +Joplin 拥有 MIT 许可证。最初于 2017 年发布,Joplin 正在与大量贡献者社区一起持续开发。 + +### Xournal + +![Xournal][5] + +[Xournal][6] 适用于 Linux、Windows、macOS 和 Android。它的目的是让你创建包含几乎任何你可以想象的媒体类型的笔记。它支持压敏手写笔和绘图板,因此你可以创建[涂鸦笔记][7] (sketchnotes)。你可以在里面打字、绘制简单的矢量、导入图形、录制音频等等。你还可以使用 Xournal 来注释 PDF,这就是我使用它的方式。它以 GPLv2 许可证发布,你可以以多种格式导出笔记。 + +### Trillium + +![Trillium][8] + +[Trillium][9] 是一个层级笔记应用,专注于知识构建库。它具有丰富的所见即所得编辑功能,包括表格、图像和 markdown。它支持使用语法高亮编辑源代码中的注释。它是在 Gnu Affero 许可证下发布的。 + +Trilium 可用作 Linux 和 Windows 的桌面应用,以及你可以在自己的 Linux 服务器上托管的 Web 应用。 + +### Gnote + +![Gnote][10] + +[Gnote][11] 是一个为 Linux 编写的开源笔记应用。它是由 Hubert Figuière 从一个名为 [Tomboy][12] 的项目中克隆出来的。与 Tomboy 一样,Gnote 使用类似 wiki 的链接系统来允许你将笔记链接在一起。 + +GNote 的源代码可在 [GitLab][13] 上找到。该软件是 GPLv3 许可。 + +### CherryTree + +![CherryTree][14] + +CherryTree 支持层级笔记。在 CherryTree 中,所有东西都是一个节点。节点可以是纯文本、富文本、各种编程语言的语法高亮。每个节点可以有子节点,每个子节点有不同的格式。 + +CherryTree 具有富文本和语法高亮的特点,并可以将数据存储在一个 XML 或 [SQLite][15] 文件中。CherryTree 可以从各种格式导入,包括 Markdown、HTML、纯文本、Gnote、Tomboy 和其他。它可以将文件导出为 PDF、HTML、纯文本和它自己的 CherryTree 格式。 + +CherryTree 使用 GPLv3 许可,可以安装在 Linux、Windows 和 macOS 上。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/note-taking-apps-linux + +作者:[Don Watkins][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/write-hand_0.jpg +[2]: https://opensource.com/article/21/1/notes-joplin +[3]: https://opensource.com/sites/default/files/2022-08/joplin.png +[4]: https://joplinapp.org/ +[5]: https://opensource.com/sites/default/files/2022-08/xournal.png +[6]: https://xournalpp.github.io/ +[7]: https://opensource.com/article/22/6/open-source-sketchnotes +[8]: https://opensource.com/sites/default/files/2022-08/trillium.png +[9]: https://github.com/zadam/trilium +[10]: https://opensource.com/sites/default/files/2022-08/gnote.png +[11]: https://wiki.gnome.org/Apps/Gnote +[12]: https://wiki.gnome.org/Apps/Tomboy +[13]: https://gitlab.gnome.org/GNOME/gnote +[14]: https://opensource.com/sites/default/files/2022-08/cherrytree.png +[15]: https://opensource.com/article/21/2/sqlite3-cheat-sheet From 164a898fe79faf22b964b8fae95d3f95ca873851 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Aug 2022 08:37:07 +0800 Subject: [PATCH 0916/3123] translating --- ...w to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md index 87fa8660be..85f500b007 100644 --- a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md +++ b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 68e72ec7a5f3bdde50fb173f721cbd20dc68d632 Mon Sep 17 00:00:00 2001 From: chtholly <73627249+chth0lly@users.noreply.github.com> Date: Mon, 29 Aug 2022 09:33:07 +0800 Subject: [PATCH 0917/3123] translating --- ...n Excellent Editor Even for Those Who Don-t Know Markdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md index 683a2bd3fc..834980677d 100644 --- a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md +++ b/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/marktext-editor/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: " Chth0lly" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e322802f0f8e3ead6e3f4396a41bf61bf4e2adae Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 29 Aug 2022 11:12:09 +0800 Subject: [PATCH 0918/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @aftermath0703 如刚刚和您的沟通,这篇就删除了。对给您造成的困扰,再次道歉。 @lkxed 这篇原文是中文,被翻译到英文,我们居然又采集了回来。🤣 --- ...Agile coaches need internal cooperation.md | 89 ------------------- 1 file changed, 89 deletions(-) delete mode 100644 translated/talk/20220711 Why Agile coaches need internal cooperation.md diff --git a/translated/talk/20220711 Why Agile coaches need internal cooperation.md b/translated/talk/20220711 Why Agile coaches need internal cooperation.md deleted file mode 100644 index 252079faa3..0000000000 --- a/translated/talk/20220711 Why Agile coaches need internal cooperation.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "Why Agile coaches need internal cooperation" -[#]: via: "https://opensource.com/article/22/7/agile-coach-internal-cooperation" -[#]: author: "Kelsea Zhang https://opensource.com/users/kelsea-zhang" -[#]: collector: "lkxed" -[#]: translator: "aftermath0703" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -为什么敏捷教练需要内部的合作 -====== -一位敏捷教练成功与否取决于他的敏捷伙伴。以下是如何促进内部合作并且创建一个敏捷团队 - -![Working meetings can be effective meetings][1] - -图片来自 Mapbox Uncharted ERG, [CC-BY 3.0 US][2] - -如果你是一个敏捷教练,你可能会作为团队或部门的外部成员鼓舞成员。然而,许多敏捷教练忽视了内部合作的重要性。这不一定是一个你熟悉的术语,所以请允许我解释一下。 - -### 什么是内部合作? - -作为一个敏捷教练,你不是独自工作,你试图在你所照顾的团队中找到一位搭档,这个搭档你希望: - -* 承担未来所有或大部分的敏捷转型。 -* 找到所有可能的机会进行系统改进和团队优化。 -* 要有自我激励。 -* 不被你管理;你把你的热情和愿景委托给他们。 - -当然,也许你不需要这样的人,因为理论上来讲,团队中的每个人都是你的理想人选,并且每个人都是自驱的。或者也许你的整个团队会在一夜之间神奇地变成你想要的样子。 - -现实情况是:大多数时候,你需要一个搭档,一个内部代理人。有人要保持敏捷精神的活力,无论你是否在那里鼓励它。 - -### 内部合作是必需的 - -获得你所辅导的团队的认同并不是一种奢侈,而是一种要求。如果你是团队中唯一的敏捷实践者,那么你的团队就不是敏捷的! 那么,你该如何培养这种内部合作呢? - -#### 明确责任 - -敏捷应该是一个团队的努力。受益者是团队本身,但团队也必须承担转型的重任。敏捷教练的作用是鼓舞人心,增强力量,但变革不会只发生在一个人身上。这就是为什么团队必须学会自己考虑和解决问题。一个团队必须有自己的引擎(你的敏捷伙伴就是这样一个引擎),而不是依靠敏捷教练的外力。引擎想要解决问题,在敏捷教练的帮助下,他们的能力和思维方式得到丰富和提高。 - -最好是一开始就有一个引擎,但这并不总是可能的。越早越好,所以从一开始就寻找盟友。 - -#### 了解团队 - -当你找到一个合作伙伴时,你获得了一个比你更了解团队情况的人。一个好的合作伙伴从内部了解团队,并在你无法达到的层面上与之沟通。无论你作为一个敏捷教练有多优秀,你必须认识到,一个优秀的敏捷伙伴在 "本地化 "方面有独特的优势。 - -最好的方法不是 *敏捷教练为团队定制一个实施计划,然后由团队负责执行* 。在我看来,在敏捷教练的支持下,敏捷伙伴应该与团队一起制定最适合其需求的计划。接下来,在频繁反馈的情况下尝试执行这些计划,并根据需要不断调整。 - -你继续观察进展,观察团队成员是否在敏捷原则方面出现动摇,并适时给予他们支持。当然,当出现问题时,你往往要保持沉默,让团队碰壁,并从他们的挫折中学习。其他时候,插手提供指导是正确的。 - -### 敏捷教练还有必要吗 - -绝对有必要! - -敏捷是一项团队工作。每个人都必须通过合作来找到可行的流程。解决方案往往是由敏捷教练和合作伙伴之间的思想碰撞引发的。然后,合作伙伴可以准确地得到一个敏捷理论在日常工作中的应用。合作伙伴通过解决方案理解了敏捷理论的精髓。 - -作为一名敏捷教练,你必须有扎实的理论基础,并有能力将理论应用于具体场景。表面上看,你负责理论,而你的敏捷伙伴则负责实践。然而,敏捷教练绝不能是一个扶手椅上的战略家,团队也不应该认为敏捷教练是一个理论家。事实上,敏捷教练必须有意地放开实践部分,以便敏捷伙伴能够接手。 - -陪同团队的意义不应该是推动团队被动地朝着敏捷教练的愿景前进。对你的指导的需求会随着时间的推移而波动,但它不应该也不可能永远持续下去。 - -### 找到一个敏捷伙伴 - -你如何找到你的敏捷伙伴?首先,观察你所辅导的团队,注意任何负责持续改进的人,不管这是否是他们的职责。这个人就是你的敏捷伙伴。 - -如果还没有这样的人,你必须培养一个。一定要选择具有良好项目管理意识的人。我观察到,在传统开发模式下表现出色的团队领导或项目经理,在敏捷环境下可能不是很好的人选。在敏捷管理模式中,你必须有开放的心态,不断追求卓越的意识,灵活的方法,丰富的知识,以及强大的自我激励。 - -### 一起做敏捷的人 - -不要羞于引入合作伙伴来帮助你的工作和沟通。相反,找到愿意合作的伙伴,一起努力使你的组织成为一个敏捷的组织。 - -*[本文翻译自 Xu Dongwei 的博客,经授权转载][4]* - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/agile-coach-internal-cooperation - -作者:[Kelsea Zhang][a] -选题:[lkxed][b] -译者:[aftermath0703](https://github.com/aftermath0703) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/kelsea-zhang -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/leader-team-laptops-conference-meeting.png -[2]: https://creativecommons.org/licenses/by/3.0/us/ -[3]: https://enterprisersproject.com/article/2022/2/agile-adoption-6-steps-IT-leaders?intcmp=7013a000002qLH8AAM -[4]: https://mp.weixin.qq.com/s/OQUAY6JkpTEgnev_EgZdZA From b538e71fb4b562b4ef6720ea4b36dcfe33db83a6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 29 Aug 2022 11:48:45 +0800 Subject: [PATCH 0919/3123] R @robsean --- ...20726 How To Change GRUB Theme In Linux.md | 93 ++++++++++--------- 1 file changed, 48 insertions(+), 45 deletions(-) diff --git a/translated/tech/20220726 How To Change GRUB Theme In Linux.md b/translated/tech/20220726 How To Change GRUB Theme In Linux.md index 09dd7fd291..f550a08564 100644 --- a/translated/tech/20220726 How To Change GRUB Theme In Linux.md +++ b/translated/tech/20220726 How To Change GRUB Theme In Linux.md @@ -3,51 +3,54 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 如何在 Linux 中更改 GRUB 主题 ====== -在 Linux 中安装和应用现代的漂亮的 GRUB 主题 -**GRUB** ,代表着 GRUB**GR** 和 **U**nified **B**ootloader ,它是大多数 Linux 操作系统的默认启动加载程序。GRUB 启动加载程序是计算机启动时运行的第一个程序。正如你可能注意到的,GRUB 菜单的默认主题是朴素的。它只有一个黑色的背景和一些白色的字符。你们中的一些人可能不喜欢默认的 GRUB 主题。在这篇教程中,我将演示如何 **更改 GRUB 主题** 或应用华丽的主题,以使你的 GRUB 菜单在 Linux 中更加精美。 +![](https://img.linux.net.cn/data/attachment/album/202208/29/114710py8bi78opi2t7oop.jpg) -数年前,我们发布了一篇指南,阐释了如何在 Ubuntu 中 **[配置 GRUB2 启动加载程序设置][1]** 。在这篇文章中,我们将向你展示如何更改 GRUB 背景。 +> 在 Linux 中安装和应用现代的漂亮的 GRUB 主题。 + +**GRUB** ,意即 大统一引导程序GRand Unified Bootloader ,它是大多数 Linux 操作系统的默认引导加载程序。GRUB 引导加载程序是计算机启动时运行的第一个程序。正如你可能注意到的,GRUB 菜单的默认主题是朴素的。它只有一个黑色的背景和一些白色的字符。你们中的一些人可能不喜欢默认的 GRUB 主题。在这篇教程中,我将演示如何 **更改 GRUB 主题** 或应用华丽的主题,以使你的 GRUB 菜单在 Linux 中更加精美。 + +数年前,我们发布了一篇指南,阐释了如何在 Ubuntu 中 [配置 GRUB2 引导加载程序设置][1] 。在这篇文章中,我们将向你展示如何更改 GRUB 背景。 但是,只更改背景不是真正的自定义。在这篇指南中,我们不仅会更改壁纸,也会更改 GRUB 的字体、主题和整体的设计。 -**免责声明:** 安装 GRUB 主题可能会破坏你的系统。我强烈建议你在一个虚拟机中尝试和测试一个主题来查看它是否没有正常工作。然后再在实际的系统上安装主题。 +> **免责声明:** 安装 GRUB 主题可能会破坏你的系统。我强烈建议你在一个虚拟机中尝试和测试一个主题来查看它是否没有正常工作。然后再在实际的系统上安装主题。 ### 介绍 -在因特网上有很多社区开发的 GRUB 主题。然而,它们却散落在不同的网站上。因此,找到一个好的 GRUB 主题可能会事倍功半。 +在互联网上可以找到很多社区开发的 GRUB 主题。然而,它们却散落在不同的网站上。因此,找到一个好的 GRUB 主题可能会事倍功半。 GRUB 主题的一个重要的贡献者是 **Pling** 网站。但是,Pling 中的大部分主题是非常简单的或过时的。 -幸运的是,我遇到一个名称为 **"Gorgeous GRUB"** 的工程,一个可以找到各种精美的 GRUB 主题的地方。相信我,作者付出了巨大的努力来收集这些主题,肯定会你喜欢的主题。 +幸运的是,我遇到一个名称为 **Gorgeous GRUB** 的项目,它是一个可以找到各种精美的 GRUB 主题的地方。相信我,作者付出了巨大的努力来收集这些主题,肯定会你喜欢的主题。 -### Gorgeous GRUB - 一个可以找到很好的 GRUB 主题的地方 +### Gorgeous GRUB:一个可以找到很棒的 GRUB 主题的地方 -**Gorgeous GRUB** 是一个由不同用户所创建的良好 GRUB 社区主题的收藏集合。这个工程的开发者从 **Pling** 、**/r/unixporn** 和其它很多的论坛中手工挑选漂亮的 GRUB 主题,并将它们放置到一起,以便用户可以很容易的浏览它们。 +**Gorgeous GRUB** 是一个由不同用户所创建的质量上乘的 GRUB 社区主题的收藏集合。这个项目的开发者从 **Pling** 、**/r/unixporn** 和其它很多的论坛中手工挑选漂亮的 GRUB 主题,并将它们放置到一起,以便用户可以很容易的浏览它们。 -如上所述,在 Pling 中的很多主题都是粗糙过时的。The author of Gorgeous GRUB 的作者翻遍了 Pling 和其它一些论坛的整个 GRUB 部分,并将所有令人满意的 GRUB 主题放置到一个地方。 +如上所述,在 Pling 中的很多主题都是粗糙和过时的。Gorgeous GRUB 的作者翻遍了 Pling 和其它一些论坛的整个 GRUB 部分,并将所有令人满意的 GRUB 主题放置到一个地方。 -仅供参考。它们不是一些粗制滥造的主题。他们付出了大量的努力来将定制的背景、字体和颜色等融合在一起。 +它们不是一些粗制滥造的主题。他们付出了大量的努力来将定制的背景、字体和颜色等融合在一起。 请注意,Gorgeous GRUB 并不是一个安装你最喜欢的 GRUB 主题的应用程序。它只是一个良好工作的 GRUB 主题的展览列表。 -这个工程托管在 GitHub 中。如果你有一些很酷的 GRUB 主题,你也可以将其添加到 Gorgeous GRUB 主题列表之中。 +这个项目托管在 GitHub 中。如果你有一些很酷的 GRUB 主题,你也可以将其添加到 Gorgeous GRUB 主题列表之中。 ### 如何更改 GRUB 主题 应用或更改 GRUB 主题并不难。 -转到 **[Gorgeous GRUB 的 GitHub 网页][2]** ,单击任意你想要应用的主题的标题。接下来,你将会被带到该主题的实际主页。一些主题托管在 **Pling** 之中,一些主题托管在 **GitHub** 之中。我将会看看如何安装来自 Pling 或 GitHub 的 GRUB 主题。 +转到 [Gorgeous GRUB 的 GitHub 网页][2] ,单击任意你想要应用的主题的标题。接下来,你将会被带到该主题的实际主页。一些主题托管在 **Pling** 之中,一些主题托管在 **GitHub** 之中。我将会看看如何安装来自 Pling 或 GitHub 的 GRUB 主题。 -首先,让我们看看如何应用 **Descent** 主题,它托管在 Pling 中。 +首先,让我们看看如何应用 “Descent” 主题,它托管在 Pling 中。 -#### 1. 从 Pling 安装 GRUB 主题 +#### 1、从 Pling 安装 GRUB 主题 如果主题托管在 Pling 网站,遵循这些操作说明。 @@ -55,42 +58,42 @@ GRUB 主题的一个重要的贡献者是 **Pling** 网站。但是,Pling 中 ![Download GRUB Theme From Pling][3] -转到下载位置并提取存档文件。 +转到下载位置并提取存档文件: ``` $ tar xzf 173860-20150926\ descent.tar.gz ``` -存档文件的内容将被提取到当前工作目录中一个名称为 **"descent"** 目录中。 +存档文件的内容将被提取到当前工作目录中一个名称为 `descent` 目录中。 -复制 "descent" 目录到 `/boot/grub/themes/` 目录,使用下面的命令。 +使用下面的命令复制 `descent` 目录到 `/boot/grub/themes/` 目录: ``` $ sudo cp -r descent/ /boot/grub/themes/ ``` -如果 "themes" 目录不可存在,只需要创建它。 +如果 `themes` 目录不存在,只需要创建它: ``` $ sudo mkdir /boot/grub/themes ``` -并分配 "themes" 目录适当的权限。 +并给 `themes` 目录分配适当的权限: ``` $ sudo chown $USER /boot/grub/themes/ ``` -接下来,复制 "descent" 目录中内容到 "themes" 目录,如上所述。 +接下来,如上所述复制 `descent` 目录中内容到 `themes` 目录。 -现在,你应该在 "themes" 目录中有一个以主题名称命名的文件夹。 +现在,你应该在 `themes` 目录中有一个以主题名称命名的文件夹: ``` $ ls /boot/grub/themes/ descent ``` -并且,这个主题文件夹 (例如 descent) 应该包含 `theme.txt` 和该主题附带的其它一些相关的文件 (例如,背景图像、自定义文件) 。 +并且,这个主题文件夹(例如 `descent`)应该包含 `theme.txt` 和该主题附带的其它一些相关的文件(例如,背景图像、自定义文件)。 ``` $ ls /boot/grub/themes/descent/ @@ -100,9 +103,9 @@ copyright menu_c.png menu_nw.png menu_w.png descent_logo_bold_18.pf2 menu_e.png menu_se.png progressbar_c.png readme scroll_thumb_c.png theme.txt ``` -在复制下载的主题到 `/boot/grub/themes/` 目录后,编辑 `/etc/default/grub` 文件。 +在复制下载的主题到 `/boot/grub/themes/` 目录后,编辑 `/etc/default/grub` 文件: -在进行任意更改前,请备份 grub 文件,以防万一: +在进行任意更改前,请备份 `grub` 文件,以防万一: ``` $ sudo cp /etc/default/grub /etc/default/grub.bak @@ -114,7 +117,7 @@ $ sudo cp /etc/default/grub /etc/default/grub.bak $ sudo nano /etc/default/grub ``` -找到 `GRUB_THEME=` 代码行,并添加路径到你想要使用的主题的 `theme.txt` 。并且,也要注释掉 `GRUB_GFXMODE=` 代码行,输入背景图像的分辨率。通常,背景图像的文件名称包含其分辨率 (例如 background1280x800.png) 。 +找到 `GRUB_THEME=` 代码行,并添加路径到你想要使用的主题的 `theme.txt` 。并且,也要取消 `GRUB_GFXMODE=` 代码行的注释,输入背景图像的分辨率。通常,背景图像的文件名称包含其分辨率(例如 `background1280x800.png`)。 ``` [...] @@ -125,7 +128,7 @@ GRUB_GFXMODE=1280x800 ![Enter Theme Txt File Path And Background Image Resolution][4] -再强调一次,如果这些代码行不存在,简单地添加它们。按下 **CTRL+O** 组合键 和 **CTRL+X** 组合键 来保持更改并关闭文件。 +再强调一次,如果这些代码行不存在,简单地添加它们。按下 `CTRL+O` 组合键 和 `CTRL+X` 组合键(LCTT 校注:这是 nano 中的快捷键,如果你使用 Vi/Vim,请使用相应的快捷键)来保持更改并关闭文件。 现在,应用更改到 GRUB ,使用命令: @@ -133,7 +136,7 @@ GRUB_GFXMODE=1280x800 $ sudo update-grub ``` -**示例输出:** +示例输出: ``` Sourcing file `/etc/default/grub' @@ -154,13 +157,13 @@ done ![Update GRUB][5] -如果你是在基于 RPM 的系统上 (例如 Fedora) ,运行下面的命令来更新 GRUB : +如果你是在基于 RPM 的系统上(例如 Fedora),运行下面的命令来更新 GRUB : ``` $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead ``` -重新启动你的系统。你将会对更新后的 GRUB 主题感到满意。如果 GRUB 菜单没有出现。在打开硬件系统的电源时,立即按下 ESC 按键,直到启动菜单出现。 +重新启动你的系统。你就会看到更新后的 GRUB 主题。如果 GRUB 菜单没有出现。在打开硬件系统的电源时,立即按下 `ESC` 按键,直到启动菜单出现。 这是我的 Ubuntu 22.04 LTS 桌面的默认 GRUB 菜单。 @@ -172,7 +175,7 @@ $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead 很酷,是吧? -##### 1.1. 移除 GRUB 主题 +##### 移除 GRUB 主题 为移除一个主题,简单地删除主题文件夹: @@ -207,17 +210,17 @@ $ sudo update-grub $ sudo reboot ``` -#### 2. 从 GitHub 安装 GRUB 主题 +#### 2、从 GitHub 安装 GRUB 主题 -如果一个 GRUB 主题托管在 GitHub 中,它将很可能有安装程序脚本和卸载程序脚本。让我们以 **[Modern GRUB Themes][8]** 为例。它托管在 GitHub 中。 +如果一个 GRUB 主题托管在 GitHub 中,它很可能有安装程序脚本和卸载程序脚本。让我们以 [Modern GRUB Themes][8] 为例。它托管在 GitHub 中。 -Git 复刻工程的 GitHub 存储库: +使用 Git 复刻项目的 GitHub 存储库: ``` $ git clone https://github.com/vinceliuice/grub2-themes.git ``` -转到工程的文件夹: +转到项目的文件夹: ``` $ cd grub2-themes/ @@ -229,7 +232,7 @@ $ cd grub2-themes/ $ sudo ./install.sh ``` -选择你喜欢的 GRUB 主题背景 (例如 tela) 。 +选择你喜欢的 GRUB 主题背景(例如 tela)。 ![Choose GRUB Theme Background][9] @@ -286,7 +289,7 @@ done $ sudo ./install.sh -t whitesur -s 1080p ``` -这将应用一个名称为 "Whitesur" 的主题,使用 1080p 屏幕分辨率。你可能会提及到其它的分辨率,例如 2k 、4k 、超宽、超宽2k 。如果你不提及分辨率,将默认应用 1080p 。 +这将应用一个名称为 “Whitesur” 的主题,使用 1080p 屏幕分辨率。你可能会提及到其它的分辨率,例如 `2k` 、`4k` 、超宽(`ultrawide`)、超宽 2k(`ultrawide2k`) 。如果你不提及分辨率,将默认采用 `1080p` 。 安装 Tela 主题到 `/boot/grub/themes` 文件夹: @@ -298,9 +301,9 @@ $ sudo ./install.sh -b -t whitesur ![Whitesur GRUB Theme][14] -##### 2.1. 移除 GRUB 主题 +##### 移除 GRUB 主题 -为移除已安装的一个主题,转到工程的复刻目录: +为移除已安装的一个主题,转到项目的复刻目录: ``` $ cd grub2-themes/ @@ -312,19 +315,19 @@ $ cd grub2-themes/ $ sudo ./install.sh -r -t tela ``` -使用你已安装的主题的名称来替换 "tela" 。 +使用你已安装的主题的名称来替换 `tela` 。 -请注意,每个主题的安装说明可能有所不同。详细地参考每个工程的 GitHub 页面,并相应地安装主题。 +请注意,每个主题的安装说明可能有所不同。详细地参考每个项目的 GitHub 页面,并相应地安装主题。 ### 总结 -有些人喜欢使用艺术化的 Linux 发行版。他们以美化其 Linux 发行版感到高兴和自豪。如果你是他们中的一员,你可以看看 Gorgeous GRUB 工程来美化你的 GRUB 菜单。 +有些人喜欢使用艺术化的 Linux 发行版。他们以美化其 Linux 发行版而感到高兴和自豪。如果你是他们中的一员,你可以看看 Gorgeous GRUB 项目来美化你的 GRUB 菜单。 -转到 Gorgeous GRUB 主题网站,从列表中选择你最喜欢的主题,并按照每个工程的主页说明来安装和应用 GRUB 主题。 +转到 Gorgeous GRUB 主题网站,从列表中选择你最喜欢的主题,并按照每个项目的主页说明来安装和应用 GRUB 主题。 -**资源:** +### 资源 -* [Gorgeous GRUB 的 GitHub 存储库][15] +> **[Gorgeous GRUB 的 GitHub 存储库][15]** -------------------------------------------------------------------------------- From 9f3f47f0498f75e903551adc218b5b7954519400 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 29 Aug 2022 11:49:30 +0800 Subject: [PATCH 0920/3123] P @robsean https://linux.cn/article-14978-1.html --- .../20220726 How To Change GRUB Theme In Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220726 How To Change GRUB Theme In Linux.md (99%) diff --git a/translated/tech/20220726 How To Change GRUB Theme In Linux.md b/published/20220726 How To Change GRUB Theme In Linux.md similarity index 99% rename from translated/tech/20220726 How To Change GRUB Theme In Linux.md rename to published/20220726 How To Change GRUB Theme In Linux.md index f550a08564..12f405f2e7 100644 --- a/translated/tech/20220726 How To Change GRUB Theme In Linux.md +++ b/published/20220726 How To Change GRUB Theme In Linux.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "robsean" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14978-1.html" 如何在 Linux 中更改 GRUB 主题 ====== From 6e18eca6b5e84da2acaf3ac139867ca1331a1019 Mon Sep 17 00:00:00 2001 From: Donkey Date: Mon, 29 Aug 2022 14:45:29 +0800 Subject: [PATCH 0921/3123] PR --- ...0220811 What is the Difference Between macOS and Linux-.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md index f7a3d0ca91..bb9e78a357 100644 --- a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md +++ b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/mac-linux-difference/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey-Hao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -245,7 +245,7 @@ via: https://itsfoss.com/mac-linux-difference/ 作者:[Ankush Das][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ba1f820973588cb378eeb1e512927c76273f9be8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 29 Aug 2022 15:22:53 +0800 Subject: [PATCH 0922/3123] ALL @wxy https://linux.cn/article-14979-1.html --- ...s Significant For Emulation, Here-s Why.md | 39 +++++++++++++++++++ ...s Significant For Emulation, Here-s Why.md | 36 ----------------- 2 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 published/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md delete mode 100644 sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md diff --git a/published/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md b/published/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md new file mode 100644 index 0000000000..64df83052b --- /dev/null +++ b/published/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md @@ -0,0 +1,39 @@ +[#]: subject: "Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why" +[#]: via: "https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14979-1.html" + +Wii U 模拟器 Cemu 走向开源对仿真技术意义重大 +====== + +![](https://img.linux.net.cn/data/attachment/album/202208/29/152146nvs93gzs720ftfy8.jpg) + +Wii U 模拟器 Cemu 的开发者上周二宣布了一个重要的 2.0 版本发布,首次交付了 Linux 上的二进制文件,并开源了他们八年的成果。Cemu 是一个 Wii U 模拟器,并于 2017 年创造了历史 —— 每个月可以通过 Patreon 获得支持其发展的数千美元赞助。Cemu 以其在 Patreon 上曾短暂达到 25,000 美元的最高收入而为人所知,这引起了人们对“仿真是否道德”的关注,特别是它被用来换取金钱,而项目却是“闭源的”而不是“开源”的 —— 也就是说源代码没有向公众开放。 + +仿真社区保护自己免受法律诉讼的主要方式之一是向公众提供其源代码,允许像任天堂这样的“诉讼公司”检查它,并验证在反向工程过程中没有使用他们的专有代码。 + +据 Exzap 称,Cemu 对 Linux 的支持“仍然相当粗糙”,但他相信随着更多的模拟器开发者熟悉 Cemu,并开始为该项目做出贡献,这种情况将迅速改变。Cemu 以前只兼容 Windows,但现在支持 Linux,可以在 Steam Deck 上快速安装。在 Cemu 引入 Flatpak 支持一键安装之前,在 Deck 上使用它并不那么简单,不过这个话题已经在 GitHub 上讨论过了。 + +Cemu 的作者利用 2.0 发布公告简要地讨论了该模拟器的历史;在该模拟器的大部分历史中,他们是唯一的开发者,他们声称过去两年对项目的压力特别大。 + +Exzap 将继续做出贡献,但预计拥有其他开发者将有助于创建几个重要的功能,如暂停和恢复仿真的能力,以及提高在旧硬件上的性能。 + +“我已经在 Cemu 上工作了近 8 年,看着这个项目从一个似乎不可行的实验,发展到在其高峰期有超过一百万人使用的东西,”Exzap 在上周二的公告中写道,“即使在今天,当 Wii U 已经被大部分人遗忘的时候,我们每个月仍然有 25 万次下载。仍然有这么多人在用 Cemu 享受 Wii U 游戏,我将永远感激让我有机会以积极的方式影响这么多人的生活,哪怕只是一丁点。” + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/ + +作者:[Laveesh Kocher][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://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed diff --git a/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md b/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md deleted file mode 100644 index 478b3db313..0000000000 --- a/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md +++ /dev/null @@ -1,36 +0,0 @@ -[#]: subject: "Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why" -[#]: via: "https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why -====== -The Wii U emulator Cemu’s developer announced a significant 2.0 version release on Tuesday, delivering Linux binaries for the first time and opening up eight years of labour. Cemu, a Wii U emulator, made history in 2017 by earning thousands of dollars each month through Patreon to support its development. Cemu’s well-known Patreon, which briefly reached a peak income of $25,000, raised concerns about the morality of emulation, particularly when money is exchanged and when a project is “closed source” as opposed to “open source,” which means that the source code isn’t made available to the general public. - -One of the main ways the emulation community defends itself from legal action is by making its source code available to the public, allowing litigious companies like Nintendo to examine it and verify that none of their proprietary code is used in the reverse-engineering process. - -Linux support, according to Exzap, is “still pretty rough around the edges,” but he believes that will change rapidly as more emulator developers become familiar with Cemu and start to contribute to the project. Cemu was previously only compatible with Windows, but now that Linux is supported, it is possible to install it quickly on the Steam Deck. Before Cemu introduces flatpak support for one-click installation, it won’t be simple to start using the Deck, however that topic is already being explored on Github. - -The author of Cemu used the 2.0 announcement to briefly discuss the emulator’s history; they were the only developers for the most of the emulator’s existence, and they claimed that the last two years have been particularly taxing on the project. - -Exzap will continue to contribute, but anticipates that having other developers will aid in the creation of several important features, such as the ability to pause and resume emulation and enhance performance on older hardware. - -“I have been working on Cemu for almost 8 years now, watching the project grow from an experiment that seemed infeasible, to something that, at its peak, was used by more than a million people,” exzap wrote on Tuesday. “Even today, when the Wii U has been mostly forgotten, we still get a quarter million downloads each month. There are still so many people enjoying Wii U games with Cemu and I will be eternally grateful that I got the chance to impact so many people’s life in a positive way, even if just a tiny bit.” - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/ - -作者:[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 From a50cb725ec18250b206060ec2d52daa264498f99 Mon Sep 17 00:00:00 2001 From: chtholly <73627249+chth0lly@users.noreply.github.com> Date: Mon, 29 Aug 2022 16:12:36 +0800 Subject: [PATCH 0923/3123] translated --- ... Even for Those Who Don-t Know Markdown.md | 132 ----------------- ... Even for Those Who Don-t Know Markdown.md | 134 ++++++++++++++++++ 2 files changed, 134 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md create mode 100644 translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md diff --git a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md deleted file mode 100644 index 834980677d..0000000000 --- a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown" -[#]: via: "https://itsfoss.com/marktext-editor/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: " Chth0lly" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown -====== -Another Markdown editor? Have we not seen all kinds of Markdown editors already? - -I understand that feeling. If you are a Markdown lover, from [Joplin][1] to [Zettlr][2], you have tried most of them. And if you are not a Markdown fan, you probably don’t care about these editors. - -Markdown is an excellent markup language specially for people who write for the web. I am not going to go into the details here. We have an [excellent Markdown starters guide][3] if you are interested in learning more about it. - -My focus here is on introducing you to (another) Markdown editor, It’s called [Marktext][4] and it is an Electron app (don’t hate me just yet). - -I found it to be an excellent editor. It works as good as it looks. Let me share my experience and its features. - -### Marktext: A Markdown editor for everyone - -Hate [Electron framework][5] as much as possible but you cannot deny that Electron-based applications have a clean, modern interface. - -![Marktext interface][6] - -I prefer dark mode and hence I switched the theme. There are six themes in total for you to choose from. - -![Marktext dark theme][7] - -You can start writing the text immediately. If you don’t remember the text, don’t worry. Just use the insert option with @ and it will give you a number of options such as: - -* Headings -* Divider line -* Table -* Mathematical equations -* HTML block -* Code block -* Quote block -* Lists -* Checklist -* Diagrams using vega-lite.js, flowchart.js, js-sequence and PlantUML - -![Use various document elements in the editor by pressing @][8] - -Select part of text and it gives you additional formatting option to change the text to bold, italic, underline, strike out. You can also highlight the text with yellow background text, convert them in inline code or inline math and create hyperlinks. - -![Text formatting options][9] - -Marktext also supports images. Though you know that images are not part of markdown (.md) file. They are external elements but you have the option to create a local assets folder in the same location where your Markdown file is saved. - -![Images are supported too][10] - -Adding image could have been made easier by including it in the insert menu. At the monet, you can add images by select texting and chosing the image option from the format options or use Ctrl+Shift+I keys. There is no scope for adding alt text or captions to the images. This should be improved. - -I liked the tables feature in Marktext. You can insert table with predefined size. If you changed your mind, you can resize it as easily. You can move the rows and columns, all with mouse drag and drop without touching the underlying code. - -![Tables are very well supported in Marktext][11] - -You can enable the sidebar view. The sidebar gives you three options. You can open folders containing multiple markdown files, perform a global search in all the files in the opened folder and show table of contents for the currently opened file. The table of content is automatically generated based on the subheadings. - -![Sidebar view has three options: Show folder content, global search and table of content][12] - -The gear icon at the bottom gives you additional settings to configure the editor. You can choose the themes, change image settings, views, enable auto-save and modify many more settings. - -![Configuration and settings][13] - -### Installing Marktext - -Marktext is a cross-platform, open source application. Along with Linux, it is available for Windows and macOS. - -For Linux, you get the options of AppImage and Flatpak. You can get the AppImage from[the release page][14]. - -I chose the Flatpak version for better system integration. And it did work well because Marktext automatically became the default editor for .md files on my Ubuntu 22.04 system. - -Please ensure that you have Flatpak support enabled on your system and then add Flathub repo: - -``` -flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -``` - -After that, use the command below to install it on your system: - -``` -flatpak install flathub com.github.marktext.marktext -``` - -If you don’t like it, you can remove it using this command: - -``` -fkatpak uninstall com.github.marktext.marktext -``` - -### Verdict - -There are plenty of small features like word count, math latex, spell checker or copy-pasting as markdown or HTML and I leave them up to you to discover. - -I’ll be honest. Despite using Markdown for writing articles for years, I don’t remember all the syntaxes. I remember the common ones for headings, lists, code block etc but if I have to create a table, I’ll have to search the web. - -I have [experimented with a number of markdown editors][15] and there are plenty of good ones there. However, I took an instant liking to Marktext and it is going to be on my system for a long time. - -If you try it, do share your experience in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/marktext-editor/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/joplin/ -[2]: https://itsfoss.com/zettlr-markdown-editor/ -[3]: https://itsfoss.com/markdown-guide/ -[4]: https://github.com/marktext/marktext/ -[5]: https://www.electronjs.org/ -[6]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-interface.png -[7]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-dark-theme.png -[8]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-insert-options.png -[9]: https://itsfoss.com/wp-content/uploads/2022/08/text-formatting-options-marktext.png -[10]: https://itsfoss.com/wp-content/uploads/2022/08/images-in-marktext.png -[11]: https://itsfoss.com/wp-content/uploads/2022/08/tables-in-marktext.png -[12]: https://itsfoss.com/wp-content/uploads/2022/08/sidebar-view-marktext.png -[13]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-settings.png -[14]: https://github.com/marktext/marktext/releases -[15]: https://itsfoss.com/best-markdown-editors-linux/ diff --git a/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md new file mode 100644 index 0000000000..fe26a49dd3 --- /dev/null +++ b/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md @@ -0,0 +1,134 @@ +[#]: subject: "Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown" +[#]: via: "https://itsfoss.com/marktext-editor/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " Chth0lly" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +即使对那些不知道Markdown的人来说Marktext也是一个绝佳的编辑器 +====== + +又一个Markdown编辑器?我们见的Markdown编辑器还少吗? + +我明白你的感受,如果你是个Markdown爱好者,你可能已经用过很多编辑器了,比如 [Joplin][1] 和 [Zettlr][2],。但如果你不是的话,你可能根本就不在乎。 + +Markdown是一个非常好的标记语言,特别是对那些在网络上写作的人来说。我不想在这里讲太多细节。但如果你有兴趣的话,我们有一个[非常棒的Markdown初学者教程][3]。 + +这次我想推荐给你(另一个)Markdown编辑器,它叫[Marktext][4],并且它是用Electron制作的(我们都明白这什么意思,先别恨我) + +我发现这将是一个很完美的编辑器。它运行起来和它看起来一样漂亮。下面是我这几天来的使用体验。 + +### Marktext: 人人可用的Markdown编辑器 + +尽管我很讨厌[Electron框架][5]但不得不承认基于Electron的应用都有一个干净,现代的界面。 + +![Marktext interface][6] + +我更喜欢黑暗模式主题,除此之外官方还提供了5种其它主题。 + +![Marktext dark theme][7] + +打开软件你就可以立刻进行写作,如果你不记得某个语法了,那也没有问题,输入@就可以得到语法提示,如: + +* 标题 +* 分隔线 +* 表格 +* Latex数学公式 +* HTML块 +* 代码块 +* 引用 +* 清单 +* 用Vega-lite.js,Flowchart.js,JS序列和Plantuml制作的图表 + +* Diagrams using vega-lite.js, flowchart.js, js-sequence and PlantUML + +![Use various document elements in the editor by pressing @][8] + +选中文本你会得到一个格式选项框来改变文本为粗体,斜体,下划线,删除线等。你也可以用黄色背景高亮文本,并转换为行内块,行内公式或插入超链接。 + +![Text formatting options][9] + +Marktext也支持图片。我们都知道图片不是markdown文件的一部分,它们是外部元素但是你可以选择将图片保存到md文件保存的目录下。 + +![Images are supported too][10] + +通过在插入列表中添加图片非常容易。你可以通过选择文本并且从弹出的格式选择中添加图片或使用Ctrl+Shift+快捷键。但是不能为图片添加替换文本或图片说明,这点确实需要改进。 + +我喜欢Marktext的表格功能。你可以直接插入预先定义好大小的图表。如有需要,还可以很容易的改变大小。你可以只用鼠标移动列和行,而不用担心源代码。 + +![Tables are very well supported in Marktext][11] + +您可以启用侧边栏视图。侧边栏为您有三个主要功能。您可以打开包含多个Markdown文件的文件夹,在打开的文件夹中的所有文件中执行全局搜索,并显示当前打开的文件的目录。大纲的目录是根据标题自动生成的。 + +![Sidebar view has three options: Show folder content, global search and table of content][12] + +底部的齿轮按钮是主要设置。你可以改变主题,改变图片设置,开启自动保存等等。 + +![Configuration and settings][13] + +### 如何安装Marktext + +Marktext 是一个跨平台的开源应用程序。所以不止在Linux ,你还可以在 Windows 和 macOS安装。 + +在LInux上,你可以选择AppImage版或Flatpak版。从[这里][14]可以得到Marktext的Appimage包。 + +我选择了 Flatpak 版本,因为这样可以获得更好的系统集成。它运行良好,因为 Marktext 自动成为我的 Ubuntu 22.04 系统上 md 文件的默认编辑器。 + +请确保你有Flatpak并在你的系统上开启了,之后用以下方法添加上Flathub仓库。 + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +在这之后,用以下命令安装Marktext到你的系统上: + +``` +flatpak install flathub com.github.marktext.marktext +``` + +如果用了一段时间后你不喜欢Marktext,用以下命令卸载: + +``` +fkatpak uninstall com.github.marktext.marktext +``` + +### 最后 + +Marktext有很多小功能,例如字数统计、Latex数学公式、拼写检查器或复制粘贴为Markdown或 HTML格式,我留给你们自己去尝试。 + +实话实说,尽管多年来一直使用 Markdown 来写文章,但我也总会忘掉一此语法。我记得常见的标题、列表、代码块等,但如果我必须创建一个表格,我不得不在网上搜索。 + +我已经[尝试了许多Markdown编辑器][15],这其中确实有很多不错的。但是,我还是喜欢用 Marktext,它会在我的系统上存在很长时间。 + +如果你已经用过了话,请在评论区分享您的经验。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/marktext-editor/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[Chth0lly](https://github.com/译者ID) +校对:[校对者ID](https://github.com/) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/joplin/ +[2]: https://itsfoss.com/zettlr-markdown-editor/ +[3]: https://itsfoss.com/markdown-guide/ +[4]: https://github.com/marktext/marktext/ +[5]: https://www.electronjs.org/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-interface.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-dark-theme.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-insert-options.png +[9]: https://itsfoss.com/wp-content/uploads/2022/08/text-formatting-options-marktext.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/images-in-marktext.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/tables-in-marktext.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/sidebar-view-marktext.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-settings.png +[14]: https://github.com/marktext/marktext/releases +[15]: https://itsfoss.com/best-markdown-editors-linux/ From 144f20bba84540a98a53715c2408ae70f6a3c272 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 30 Aug 2022 08:23:23 +0800 Subject: [PATCH 0924/3123] translated --- ...ng Terminal for Minimalists Linux Users.md | 142 ----------------- ...ng Terminal for Minimalists Linux Users.md | 143 ++++++++++++++++++ 2 files changed, 143 insertions(+), 142 deletions(-) delete mode 100644 sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md create mode 100644 translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md diff --git a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md deleted file mode 100644 index eed2ed9dcb..0000000000 --- a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users" -[#]: via: "https://itsfoss.com/blackbox-terminal/" -[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users -====== - -There are [numerous terminal emulators available for Linux][1]. From Terminator to Tilix, you have a wide selection of terminals to choose from. - -But that has not deterred the arrival of new terminal applications. You recently learned about [GNOME Console][2], and today, I’ll introduce you to Blackbox. - -### Blackbox Terminal: Overview and Features - -Blackbox is a terminal emulator which supports GTK4. The developer created this project so that he could use a decent-looking terminal app on Linux. - -So, don’t expect it to have ton of features. It is just a terminal emulator that utilizes GTK4 toolkit and has support for themes. - -In other words, it is more about the looks than the features. - -Here are the main highlights of Blackbox: - -* Theming ([Tilix][3] compatible color scheme support) -* Theme integration with the window decorations -* Custom fonts -* Various customizable UI settings -* Tabs -* Toggleable header bar -* Click to open links -* Files drag-n-drop support - -Talking about the looks, let us go through the different looks it offers. The default window will look something like the screenshot below. - -![Default look of Blackbox terminal][4] - -#### No header bar - -You can also have no header bar, as shown below. It’s one of the most ‘popular’ features of GTK4 apps. - -![Blackbox without header bar][5] - -You can also enable floating controls in no header-bar mode. - -![Floating controls with no header bar mode][6] - -#### Easy copy and paste (don’t revolt) - -Ctrl+C and Ctrl+V are like the universal keyboard shortcuts for copy-paste. - -But the ancient Unix existed before the universe and hence it uses the [Ctrl+C keys for terminating a running program in the terminal][7]. - -However, some people find it a bit inconvenient not to be able to use their favorite shortcuts for [copy-pasting in the terminal][8]. - -Blackbox allows you to change that by enabling the “Easy Copy & Paste” setting. With this setting enabled, you can use Ctrl+C and Ctrl+v for copy-paste operation. - -Don’t worry. Ctrl+C can still be used for stopping running commands. - -![Easy copy-paste mode allows using Ctrl+C and Ctrl+V keys][9] - -#### Themes - -You can also select different themes from the settings. There are several light and dark themes available to choose from. You can also use Tilix styled theming. - -![Available themes for Blackbox][10] - -Let us see how it looks with the Yaru theme and with tabs not expanding, unlike the default Blackbox behaviour. - -![Blackbox with a changed theme][11] - -#### Reset to default - -There are a few more handy features like remember window size, scroll by pixels etc. - -The good thing is that if you made too many changes to the settings, you can revert them all and reset to the default settings. - -The option is available in the Advanced tab of Preferences. - -![reset blackbox settings to default][12] - -### Installing Blackbox terminal - -Please keep in mind that **Blackbox is in the early stages of development**. I experienced some crashes when I switched themes. - -To install Blackbox Terminal you should have [Flatpak installed and Flathub repo enabled][13] in your system. - -Use this command to install Blackbox on your system: - -``` -flatpak install flathub com.raggesilver.BlackBox -``` - -On Fedora and some other distributions that integrate with Flatpak, you can install Blackbox from the software center. - -![Blackbox can also be installed in GNOME Software Center][14] - -Once installed, you can launch it from the applications menu. - -#### Removing Blackbox Terminal - -If you don’t like Blackbox and want to remove it, enter the following command to remove it. - -``` -flatpak uninstall flathub com.raggesilver.BlackBox -``` - -### Conclusion - -In my opinion, Blackbox is a decent terminal emulator. You get all the eye-candy GTK4 can offer on distributions that do not support GTK4 already. The feature it offers are good enough for day to day work. - -In the end, it all comes to personal preference. You may like it. You may not like it. If you like experimenting, give it a try and share your experience with us in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/blackbox-terminal/ - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/linux-terminal-emulators/ -[2]: https://itsfoss.com/gnome-console/ -[3]: https://github.com/gnunn1/tilix -[4]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-default.png -[5]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-noheader.png -[6]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-floating-controls.png -[7]: https://itsfoss.com/stop-program-linux-terminal/ -[8]: https://itsfoss.com/copy-paste-linux-terminal/ -[9]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-easy-copy-paste.png -[10]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-theme-selection.png -[11]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-yaru.png -[12]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-reset.png -[13]: https://itsfoss.com/flatpak-guide/ -[14]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-install.png diff --git a/translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md new file mode 100644 index 0000000000..d3090d9270 --- /dev/null +++ b/translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md @@ -0,0 +1,143 @@ +[#]: subject: "Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users" +[#]: via: "https://itsfoss.com/blackbox-terminal/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Blackbox 是极简主义 Linux 用户的美观终端 +====== + +有[许多可用于 Linux 的终端仿真器][1]。从 Terminator 到 Tilix,你有多种终端可供选择。 + +但这并没有阻止新终端应用的到来。你最近了解了 [GNOME Console][2],今天,我将向您介绍 Blackbox。 + +### Blackbox 终端:概述和功能 + +Blackbox 是一个支持 GTK4 的终端仿真器。开发人为了他可以在 Linux 上使用外观不错的终端应用而创建了这个项目。 + +所以,不要指望它有很多功能。它只是一个使用 GTK4 工具包并支持主题的终端仿真器。 + +换句话说,它更多的是关于外观而不是功能。 + +以下是 Blackbox 的主要亮点: + +* 可设置主题([Tilix][3] 兼容的配色方案支持) +* 主题与窗口装饰的融合 +* 自定义字体 +* 各种可自定义的 UI 设置 +* 标签 +* 可切换的标题栏 +* 点击打开链接 +* 文件拖放支持 + +谈到外观,让我们来看看它提供的不同外观。默认窗口将类似于下面的截图。 + + +![Default look of Blackbox terminal][4] + +#### 没有标题栏 + +你也可以没有标题栏,如下所示。这是 GTK4 应用程序中最“流行”的功能之一。 + +![Blackbox without header bar][5] + +你还可以在无标题栏模式下启用浮动控件。 + +![Floating controls with no header bar mode][6] + +#### 轻松复制和粘贴(不要反抗) + +Ctrl+C 和 Ctrl+V 就像复制粘贴的通用键盘快捷键。 + +但是古老的 Unix 在宇宙之前就存在了,因此它使用 [Ctrl+C 键来终止终端中正在运行的程序][7]。 + +但是,有些人发现不能使用他们最喜欢的快捷方式来[在终端中复制粘贴][8]有点不方便。 + +Blackbox 允许你通过启用“轻松复制和粘贴”设置来更改它。启用此设置后,你可以使用 Ctrl+C 和 Ctrl+v 进行复制粘贴操作。 + +不用担心。 Ctrl+C 仍可用于停止正在运行的命令。 + +![Easy copy-paste mode allows using Ctrl+C and Ctrl+V keys][9] + +#### 主题 + +你还可以从设置中选择不同的主题。有几个浅色和深色主题可供选择。你还可以使用 Tilix 风格的主题。 + +![Available themes for Blackbox][10] + +让我们看看它在 Yaru 主题和不扩展选项卡的情况下的外观,这与默认的 Blackbox 行为不同。 + +![Blackbox with a changed theme][11] + +#### 重置为默认 + +还有一些更方便的功能,例如记住窗口大小、按像素滚动等。 + +好消息是,如果你对设置进行了太多更改,你可以将它们全部还原并重置为默认设置。 + +该选项在首选项的“高级”选项卡中可用。 + +![reset blackbox settings to default][12] + +### 安装 Blackbox 终端 + +请记住,**Blackbox 处于开发的早期阶段**。我在切换主题时遇到了一些崩溃。 + +要安装 Blackbox 终端,你应该在系统中安装 [Flatpak 并启用 Flathub 仓库][13]。 + +使用此命令在你的系统上安装 Blackbox: + +``` +flatpak install flathub com.raggesilver.BlackBox +``` + +在 Fedora 和其他一些与 Flatpak 集成的发行版上,你可以从软件中心安装 Blackbox。 + +![Blackbox can also be installed in GNOME Software Center][14] + +安装后,你可以从应用菜单启动它。 + +#### 卸载 Blackbox 终端 + +如果你不喜欢 Blackbox 并想将其删除,请输入以下命令将其删除。 + +``` +flatpak uninstall flathub com.raggesilver.BlackBox +``` + +### 结论 + +在我看来,Blackbox 是一个不错的终端模拟器。在不支持 GTK4 的发行版上,你可以获得 GTK4 所能提供的所有精彩内容。它提供的功能足以应付日常工作。 + +最后,这一切都取决于个人喜好。你可能会喜欢它,也可能不喜欢它。如果你喜欢体验,请尝试一下,并在评论栏与我们分享你的经验。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/blackbox-terminal/ + +作者:[Anuj Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/anuj/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/linux-terminal-emulators/ +[2]: https://itsfoss.com/gnome-console/ +[3]: https://github.com/gnunn1/tilix +[4]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-default.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-noheader.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-floating-controls.png +[7]: https://itsfoss.com/stop-program-linux-terminal/ +[8]: https://itsfoss.com/copy-paste-linux-terminal/ +[9]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-easy-copy-paste.png +[10]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-theme-selection.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-yaru.png +[12]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-reset.png +[13]: https://itsfoss.com/flatpak-guide/ +[14]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-install.png From 99fd4417e83381314b724c5fe33ae126719f50d0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 30 Aug 2022 08:29:31 +0800 Subject: [PATCH 0925/3123] translated --- ...0220819 How to Create and Switch Workspaces in Linux Mint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md b/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md index bfd8b9b3f6..7b95ac4a2b 100644 --- a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md +++ b/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/workspaces-linux-mint/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 512442d5ae0ad3f84f7a4d3005c0cfddf3da91d6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 30 Aug 2022 09:50:21 +0800 Subject: [PATCH 0926/3123] RP @geekpi https://linux.cn/article-14981-1.html --- ... Devices Connected to Your Linux System.md | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) rename {translated/tech => published}/20220822 How to List USB Devices Connected to Your Linux System.md (63%) diff --git a/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md b/published/20220822 How to List USB Devices Connected to Your Linux System.md similarity index 63% rename from translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md rename to published/20220822 How to List USB Devices Connected to Your Linux System.md index 91acce7455..48d7b44895 100644 --- a/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md +++ b/published/20220822 How to List USB Devices Connected to Your Linux System.md @@ -3,12 +3,15 @@ [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14981-1.html" 如何列出连接到 Linux 系统的 USB 设备 ====== + +![](https://img.linux.net.cn/data/attachment/album/202208/30/094927nu106ijzz0iiiwj1.jpg) + 你如何列出 Linux 中的 USB 设备? 这个问题可以有两种含义。 @@ -28,25 +31,25 @@ lsusb ![list usb with lsusb command linux][1] -但是了解 lsusb 的输出并不容易,当你只想查看和访问已挂载的 USB 驱动器时,你可能不需要复杂化。 +但是理解 `lsusb` 的输出并不容易,当你只想查看和访问已挂载的 USB 驱动器时,你可能不需要那么复杂。 我将向你展示可用于列出连接到系统的 USB 设备的各种工具和命令。 -除非另有说明,我在例子中连接了一个 2GB 的 U 盘、1TB 的外置硬盘、通过 MTP 连接的 Android 智能手机和 USB 鼠标。 +除非另有说明,在我的例子中连接了一个 2GB 的 U 盘、1TB 的外置硬盘、通过 MTP 连接的 Android 智能手机,以及 USB 鼠标。 让我从桌面用户最简单的选项开始。 ### 以图形方式检查连接的 USB 设备 -你的分发文件管理器可用于查看连接到你的计算机的 USB 存储设备。正如你在下面的 Nautilus(GNOME 文件管理器)的截图中看到的那样。 -The connected devices are shown in the sidebar (Only USB Storage devices are shown here). +你的发行版的文件管理器可以用来查看连接到你的计算机的 USB 存储设备。正如你在下面的 Nautilus(GNOME 文件管理器)的截图中看到的那样。 + 连接的设备显示在边栏中(此处仅显示 USB 存储设备)。 ![Nautilus showing connected USB devices][2] -你还可以使用 GNOME Disks 或 Gparted 等 GUI 应用来查看、格式化和分区连接到计算机的 USB 存储设备。默认情况下,大多数使用 GNOME 桌面环境的发行版都预装了 GNOME Disks。 +你还可以使用 GNOME “磁盘Disks” 或 Gparted 等 GUI 应用来查看、格式化和分区连接到计算机的 USB 存储设备。默认情况下,大多数使用 GNOME 桌面环境的发行版都预装了 GNOME “磁盘”。 -这个应用也可以作为一个非常好的[分区管理器][3]。 +这个应用也可以用作一个非常好的 [分区管理器][3]。 ![Use GNOME Disks to list mounted USB devices][4] @@ -54,9 +57,9 @@ The connected devices are shown in the sidebar (Only USB Storage devices are sho ### 使用 mount 命令列出挂载的 USB 设备 -mount 命令用于挂载 Linux 中的分区。你还可以使用相同的命令列出 USB 存储设备。 +`mount` 命令用于挂载 Linux 中的分区。你还可以使用相同的命令列出 USB 存储设备。 -通常,USB 存储挂载在 media 目录中。因此,在媒体上过滤 mount 命令的输出将为你提供所需的结果。 +通常,USB 存储挂载在 `media` 目录中。因此,在媒体上过滤 `mount` 命令的输出将为你提供所需的结果。 ``` mount | grep media @@ -66,7 +69,7 @@ mount | grep media ### 使用 df 命令 -[df 命令][6]是一个标准的 UNIX 命令,用于了解可用磁盘空间的大小。你还可以使用此命令列出已连接的 USB 存储设备。 +[df 命令][6] 是一个标准的 UNIX 命令,用于了解可用磁盘空间的大小。你还可以使用此命令列出已连接的 USB 存储设备。 ``` df -Th | grep media @@ -76,7 +79,7 @@ df -Th | grep media ### 使用 lsblk 命令 -lsblk 命令用于列出终端中的块设备。因此,这里也通过过滤包含 media 关键字的输出,你可以获得所需的结果,如下面的截图所示。 +`lsblk` 命令用于列出终端中的块设备。因此,这里也通过过滤包含 `media` 关键字的输出,你可以获得所需的结果,如下面的截图所示。 ``` lsblk | grep media @@ -84,7 +87,7 @@ lsblk | grep media ![Using lsblk to list connected USb devicesUsing blkid to list connected USb devices][8] -如果你比较好奇,可以使用 `blkid` 命令了解 UUID、标签、块大小等。 +如果你想知道,也可以使用 `blkid` 命令了解 UUID、标签、块大小等。 此命令提供更多输出,因为你的内部驱动器也被列出。因此,你必须参考上述命令来识别你希望了解的设备。 @@ -96,7 +99,7 @@ sudo blkid ### 使用 fdisk -fdisk 是一款不错的老式命令行分区管理器,它还可以列出连接到你计算机的 USB 存储设备。这个命令的输出也很长。因此,通常连接的设备会列在底部,如下所示。 +`fdisk` 是一款不错的老式命令行分区管理器,它还可以列出连接到你计算机的 USB 存储设备。这个命令的输出也很长。因此,通常连接的设备会列在底部,如下所示: ``` sudo fdisk -l @@ -106,7 +109,7 @@ sudo fdisk -l ### 检查 /proc/mounts -通过检查 /proc/mounts 文件,你可以列出 USB 存储设备。如你所见,它向你显示了文件系统使用的挂载选项以及挂载点。 +通过检查 `/proc/mounts` 文件,你可以列出 USB 存储设备。如你所见,它向你显示了文件系统使用的挂载选项以及挂载点。 ``` cat /proc/mounts | grep media @@ -116,11 +119,11 @@ cat /proc/mounts | grep media ### 使用 lsusb 命令显示所有 USB 设备 -我们重新审视有名的 lsusb 命令。 +我们重新审视有名的 `lsusb` 命令。 Linux 内核开发人员 [Greg Kroah-Hartman][12] 开发了这个方便的 [usbutils][13] 程序。这为我们提供了两个命令,即 `lsusb` 和 `usb-devices` 来列出 Linux 中的 USB 设备。 -lsusb 命令列出系统中有关 USB 总线的所有信息。 +`lsusb` 命令列出系统中有关 USB 总线的所有信息。 ``` lsusb @@ -138,9 +141,9 @@ usb-devices ![][15] -Greg 还开发了一个名为 [Usbview][16] 的小型 GTK 应用。此应用向你显示连接到计算机的所有 USB 设备的列表。 +Greg 还开发了一个名为 [usbview][16] 的小型 GTK 应用。此应用向你显示连接到计算机的所有 USB 设备的列表。 -该应用可在大多数 Linux 发行版的官方仓库中找到。你可以使用发行版的[包管理器][17]轻松安装 `usbview` 包。 +该应用可在大多数 Linux 发行版的官方仓库中找到。你可以使用发行版的 [包管理器][17] 轻松安装 `usbview` 包。 安装后,你可以从应用菜单启动它。你可以选择任何列出的设备以获取详细信息,如下面的截图所示。 @@ -148,7 +151,7 @@ Greg 还开发了一个名为 [Usbview][16] 的小型 GTK 应用。此应用向 ### 总结 -列出的大多数方法仅限于 USB 存储设备。 只有两种方法可以列出其他外围设备; usbview 和 usbutils。 我想我们还有一个理由感谢 Linux Kernel 开发人员 Greg 开发了这些方便的工具。 +这里列出的大多数方法仅限于 USB 存储设备。只有两种方法可以列出其他外围设备; usbview 和 usbutils。 我想我们应该感谢 Linux 内核开发人员 Greg 开发了这些方便的工具。 我知道还有很多方法可以列出连接到系统的 USB 设备。 欢迎你提出建议。 @@ -159,7 +162,7 @@ via: https://itsfoss.com/list-usb-devices-linux/ 作者:[Anuj Sharma][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/) 荣誉推出 From 8d79e8baf02b198d97be66b99bb5c9fa64c7ee35 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 30 Aug 2022 18:21:29 +0800 Subject: [PATCH 0927/3123] RP @Donkey-Hao https://linux.cn/article-14983-1.html --- ...w I use Bash to automate tasks on Linux.md | 63 +++++++++---------- 1 file changed, 31 insertions(+), 32 deletions(-) rename {translated/tech => published}/20220726 How I use Bash to automate tasks on Linux.md (62%) diff --git a/translated/tech/20220726 How I use Bash to automate tasks on Linux.md b/published/20220726 How I use Bash to automate tasks on Linux.md similarity index 62% rename from translated/tech/20220726 How I use Bash to automate tasks on Linux.md rename to published/20220726 How I use Bash to automate tasks on Linux.md index 467ecffdf1..c92558e232 100644 --- a/translated/tech/20220726 How I use Bash to automate tasks on Linux.md +++ b/published/20220726 How I use Bash to automate tasks on Linux.md @@ -3,35 +3,34 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14983-1.html" 如何在 Linux 上使用 Bash 自动化任务 ====== -Bash 有一些方便的自动化功能,可以让我在 Linux 上处理文件时更轻松。 -![bash logo on green background][1] +![](https://img.linux.net.cn/data/attachment/album/202208/30/181814f4v7ahztuaaxwqwg.jpg) -图源:Opensource.com +> Bash 有一些方便的自动化功能,可以让我在 Linux 上处理文件时更轻松。 -通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux,进行管理日志文件还是其他文件,或者你在个人电脑上整理文件,使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更简单。 +通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux 进行管理日志文件或其他文件,还是你在个人电脑上整理文件以使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更轻松。 -### Linux `for` 命令:自动执行文件任务 +### 自动执行文件任务:for 如果你对一堆文件要同时处理,并且对每个文件进行相同的操作,请使用 `for` 命令。该命令会遍历文件列表,并执行一个或多个命令。`for` 命令如下所示: ``` -for variable in list +for 变量 in 列表 do -    commands +    命令 done ``` -我在示例中添加了额外的空格,来分开 `for` 命令中不同的部分。多个命令可能无法在命令行中同时运行,不过你可以使用 `;` 将所有命令放在同一行中,就像这样: +我在示例中添加了额外的空白和换行,来分开 `for` 命令中不同的部分。看起来好像无法在命令行中同时运行多个命令,不过你可以使用 `;` 将所有命令放在同一行中,就像这样: ``` -for variable in list ; do commands ; done +for 变量 in 列表 ; do 命令 ; done ``` 让我们看看它的实际效果。我使用 `for` 命令来重命名一些文件。最近,我有一些截图,想要重命名。这些截图名称为 `filemgr.png` 或 `terminal.png`,我想将 `screenshot` 放在每个名称前。我可以使用 `for` 命令一次性将 30 个文件重命名。这是两个文件的示例: @@ -44,54 +43,54 @@ $ ls screenshot-filemgr.png  screenshot-terminal.png ``` -`for` 命令使得在一系列文件中执行一种或多种操作变得容易。你可以用一些有意义的变量,比如 `image` 或 `screenshot`,或者你用示例中“缩写的”变量 `f`。当我在使用 `for` 循环写脚本的时候,会选择有意义的变量名。但是当我在命令行中使用 `for`,我通常会选择缩写变量名,比如 `f` 代表文件,`d` 代表目录等。 +`for` 命令使得在一系列文件中执行一种或多种操作变得容易。你可以用一些有意义的变量名,比如 `image` 或 `screenshot`,或者你用示例中“缩写的”变量 `f`。当我在使用 `for` 循环写脚本的时候,会选择有意义的变量名。但是当我在命令行中使用 `for`,我通常会选择缩写变量名,比如 `f` 代表文件,`d` 代表目录等。 不论你选择怎样的变量名,请确保在引用变量时添加 `$` 符号。这会将变量扩展为你正在处理的文件的名称。在 Bash 提示符下键入 `help for` 以了解有关 `for` 命令的更多信息。 -### Linux `if` 条件执行 +### 按条件执行:if 当你需要对每个文件执行相同操作时,使用 `for` 循环遍历一些文件很有帮助。但是,如果你需要对某些文件做一些不同的事情怎么办?为此,你需要使用 `if` 语句进行条件执行。`if` 语句如下所示: ``` -if test +if 测试 then -    commands +    命令 fi ``` -你也可以使用 `if/else` 语句进行判断: +你也可以使用 `if`、`else` 语句进行判断: ``` -if test +if 测试 then -    commands +    命令 else -    commands +    命令 fi ``` -你可以使用 `if/else-if/else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用: +你可以使用 `if`、`else-if`、` else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用: ``` -if test +if 测试1 then -    commands -elif test2 +    命令 +elif 测试2 then -    commands -elif test3 +    命令 +elif 测试3 then -    commands +    命令 else -    commands +    命令 fi ``` -`if` 命令可以让你进行不同的判断,例如判断一个文件是否是一个文件,或者一个文件是否为空文件(零字节)。在命令行中输入 `help test`,可以立即查看使用 `if` 语句能够进行的不同种测试。 +`if` 命令可以让你进行各种判断,例如判断一个文件是否是一个文件,或者一个文件是否为空文件(零字节)。在命令行中输入 `help test`,可以立即查看使用 `if` 语句能够进行的各种测试。 -例如,假设我想清理一个包含几十个文件的日志目录。日志管理中的一个常见任务是删除所有空日志,并压缩其他日志。解决这个问题的最简单方法是删除空文件。没有一个 `if` 测试可以完全匹配,但是我们有 `-s` 选项来判断是否是一个文件,并且判断该文件不是空的(大小不为零)。这与我们想要的相反,但我们可以使用 `!` 来否定测试,以判断某些内容不是文件或为空。 +例如,假设我想清理一个包含几十个文件的日志目录。日志管理中的一个常见任务是删除所有空日志文件,并压缩其他日志。解决这个问题的最简单方法是删除空文件。没有可以完全匹配的 `if` 测试,但是我们有 `-s` 选项来判断是否是一个文件,并且判断该文件不是空的(大小不为零)。这与我们想要的相反,但我们可以使用 `!` 来否定测试,以判断某些内容不是文件或为空。 -让我们用一个示例来看看这个过程。我创建了两个测试文件:一个是空的,另一个包含一些数据。我们可以使用 `if` 判断,*如果*文件为空打印消息 “empty”: +让我们用一个示例来看看这个过程。我创建了两个测试文件:一个是空的,另一个包含一些数据。我们可以使用 `if` 判断,*如果*文件为空打印消息 `empty`: ``` $ ls @@ -134,7 +133,7 @@ via: https://opensource.com/article/22/7/use-bash-automate-tasks-linux 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a108af6b0ed66b51c13a29898a83ecfe8a90e1f7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 30 Aug 2022 18:26:58 +0800 Subject: [PATCH 0928/3123] R --- published/20220726 How I use Bash to automate tasks on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220726 How I use Bash to automate tasks on Linux.md b/published/20220726 How I use Bash to automate tasks on Linux.md index c92558e232..a7b96162bc 100644 --- a/published/20220726 How I use Bash to automate tasks on Linux.md +++ b/published/20220726 How I use Bash to automate tasks on Linux.md @@ -69,7 +69,7 @@ else fi ``` -你可以使用 `if`、`else-if`、` else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用: +你可以使用 `if`、`elif`、` else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用: ``` if 测试1 From 171b9dd2458eb74893f062bf67cdc4efe6ea31b9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:16:29 +0800 Subject: [PATCH 0929/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220829=20How=20To=20Manage=20Docker=20Containers?= =?UTF-8?q?=20Using=20Portainer=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ker Containers Using Portainer In Linux.md | 365 ++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md diff --git a/sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md b/sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md new file mode 100644 index 0000000000..60658cd210 --- /dev/null +++ b/sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md @@ -0,0 +1,365 @@ +[#]: subject: "How To Manage Docker Containers Using Portainer In Linux" +[#]: via: "https://ostechnix.com/portainer-an-easiest-way-to-manage-docker/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Manage Docker Containers Using Portainer In Linux +====== +Poratiner - An Easiest Way To Manage Docker And Kubernetes + +In this tutorial, we will learn what is **Portainer**, how to install Portainer and how to **manage docker containers using Portainer** in Linux. + +### What Is Portainer? + +**Portainer** is a lightweight, cross-platform, and open source management UI for Docker, Swarm, Kubernetes, and ACI environments. + +Portainer allows you to manage containers, images, networks and volumes via simple web-based dashboard and/or an extensive API. + +Using Portainer, we can easily deploy, configure and secure containers in minutes on Docker, Kubernetes, Swarm and Nomad in any cloud, datacenter or device. + +It was originally the fork of Docker UI. The developer has rewritten pretty much all of the Docker UI original code. He also has revamped the UX completely and added some more functionality in the recent versions. + +Portainer is available in two editions: **Portainer Community Edition(CE)** and **Portainer Business Edition(BE)**. + +The Portainer CE is free for personal use that includes a few essential features for container management. And the Portainer BE is paid version that includes complete features and professional support. + +Portainer supports GNU/Linux, Microsoft Windows, and macOS. + +### Prerequisites + +For the purpose of this guide, we will be using Portainer CE, which is free. + +**1.** Make sure you have installed Docker and it is working. Portainer has full support for Docker version 1.10 and higher versions. + +To install Docker in Linux, refer the following links. + +* [Install Docker Engine And Docker Compose In AlmaLinux, CentOS, Rocky Linux][1] +* [How to Install Docker Engine And Docker Compose In Ubuntu][2] + +**Heads Up:** You can also install **[Docker desktop][3]** and then install Portainer as an extension via the **market place**. But this is not the scope of this guide. + +**2.** Make sure you have **sudo** or **root** access to deploy Portainer community edition using Docker. + +**3.** Open or allow Ports **9443**, **9000** and **8000** in your router or firewall if you want to access the portainer web UI from a remote system. + +### Install Portainer With Docker In Linux + +Portainer CE installation is pretty easy and it will take only a few minutes. + +First of all, create a volume for Portainer server to store its database. + +``` +$ sudo docker volume create portainer_data +``` + +Next, run the following command to pull the latest Portainer image and start the Portainer: + +``` +$ docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest +``` + +**Heads Up:** By default, Portainer Server will expose the UI over port `9443` and expose a TCP tunnel server over port 8000. The latter is optional and is only required if you plan to use the Edge compute features with Edge agents. + +**Sample output:** + +``` +portainer_data:/data portainer/portainer-ce:latest +Unable to find image 'portainer/portainer-ce:latest' locally +latest: Pulling from portainer/portainer-ce +772227786281: Pull complete +96fd13befc87: Pull complete +4847ec395191: Pull complete +4c2d012c4350: Pull complete +Digest: sha256:70a61e11a899c56f95c23f734c0777b26617729fcb8f0b61905780f3144498e3 +Status: Downloaded newer image for portainer/portainer-ce:latest +4b3a95e8c999f5651dfde13b5519d19a93b143afbcd6fd1f8035af5645bd0e5f +``` + +By default, Portainer generates and uses a self-signed SSL certificate to secure port 9443. If you require HTTP port 9000 open for legacy reasons, add `-p 9000:9000` to your docker run command: + +``` +$ sudo docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest +``` + +Let us check whether the Portainer image has been pulled or not. + +``` +$ sudo docker images +``` + +**Sample output:** + +``` +REPOSITORY TAG IMAGE ID CREATED SIZE +portainer/portainer-ce latest ab836adaa325 4 weeks ago 278MB +``` + +We have now installed Portainer in our local Ubuntu system. Let us start the container using command: + +Now, Portainer is running! Let us go ahead and access the Portainer UI. + +### Manage Docker Containers Using Portainer + +Open your web browser and point it to any one of the following URLs depending upon the port number you used when starting Portainer. + +* Portainer https URL (with self-signed certificate) - http://localhost:9443/ or http://IP_Address:9443/. +* Portainer http URL - http://localhost:9000/ or http://IP_Address:9000/. + +You will be presented with a screen like below where you should set a strong password for the Portainer **admin** user. Enter a strong password with minimum 12 characters and click Create user button. + +![Create Password For Portainer Admin User][4] + +Choose whether you want to proceed using the local environment which Portainier is running in or connect to other environments. I don't have any other environments, so I clicked the "Get started.." button to proceed with the local environment. + +![Portainer Admin Dashboard][5] + +This is how Portainer admin dashboard looks like. The dashboard home screen displays the list of connected environments. As you see in the below screeenshot, we are connected with the "local" environment. + +![Portainer Home][6] + +Click on the local environment to see the running and stopped containers, number of downloaded docker images, number of volumes and networks. + +![Environment Summary][7] + +You don't have to memorize docker commands. Everything can be done from the Dashboard itself. + +Let us go ahead and create some containers. + +#### Creating Containers + +Make sure you're in the Local environment. + +Click on the **App Templates** button on the left side bar. You will see some ready-made templates such as Docker image registry, Nginx, Httpd, MySQl, Wordpress and a few more. + +![Application Templates List][8] + +To deploy a Container, just click on the respective template and follow the on-screen instructions. + +For instance, let us launch **MySQL** Container. To do so, click on the **MySQL** template. + +![Launch MySQL Template][9] + +Enter the Container name, select network type (e.g.bride mode), and database root user password. Click on **Show advanced options** and set port number. If you're not sure what to input, just leave the default values. + +Finally, Click **Deploy the container** button to create the MySQL container. + +![Create MySQL Docker Container][10] + +Once the container created, you will be redirected to the **Containers** page where you can see the list of created and running containers. + +![Container List][11] + +Under the Containers list section, you will see the, + +* Name of the running and stopped containers, +* Status of the containers, +* Quick actions buttons, +* Docker image used to create the containers, +* the date and time of container creation, +* IP address of the container, +* Published ports, +* and Ownership details. + +To start/stop the newly created container, just select it and hit Start/stop button on the top. You can restart, pause, and remove any Containers from this section. + +#### Manage Containers + +We can do all container management operations, such as add new container and start, stop, restart, pause, kill, remove existing containers from under Containers section. + +![Create And Manage Containers From Portainer][12] + +You will see a few "Quick Actions" buttons next to each container. Clicking on a button will perform the respective action. + +Under the Quick Actions tab, you will see the following buttons. + +* Logs - Display Container logs. +* Inspect - Inspect container image. +* Stats - View Container statistics. +* Console - Access Container console. +* Attach - Attach To Container console. + +![Quick Actions][13] + +##### View Container Logs + +Select a Container from the Containers list and then click **Logs** button under the Quick Actions tab. + +![Container Logs][14] + +Here, you can view complete log details of the Container. + +##### Inspect Container + +Click the "Inspect" button under the Quick Actions tab to inspect the container image. + +![Container Inspect][15] + +##### View Container Stats + +Click on the **Stats** button to view what's happening in the newly launched Container. + +![Container Statistics][16] + +##### Access Container Console + +You can easily connect to the console of your Container by clicking on the **Console** button. + +![Access Container Console][17] + +Select the Shell (BASH or SH), and hit **Connect** button. + +![Connect To Console][18] + +Now you will be connected to the Container's console. + +![Container Console][19] + +#### View Container Details + +To view the complete overview of any container, just click on the name of the container from the Containers list. + +![Container Details][20] + +As you see in the above output, the Containers details section is further divided into the following sub-sections: + +* Actions - This section containers buttons to control the container, such as Start, Stop, Kill, Restart, Pause, Resume, Remove, Recreate, Duplicate/Edit. +* Container status - In this section, you will container details such as the name, IP address, status of the container, when the container is created, container start time and a few more details. Under the Container status button, you will see the following controls: * Logs - Display Container logs. * Inspect - Inspect container image. * Stats - View Container statistics. * Console - Access Container console. * Attach - Attach To Container console. +* Access control - View and change ownership. +* Container health - In this section, you will see the container health status, failure count and `mysqld` service status. +* Create image - This section allows you to create an image from this container. This allows you to backup important data or save helpful configurations. You'll be able to spin up another container based on this image afterward. +* Container details - In this section, you can view the docker image used to create this container, port configuration details, and environment details etc. +* Volumes - See the list of attached volumes to the container. +* Networks - View network configuration details. + +Please note that you can do all aforementioned management actions (i.e. View Stats/Logs, Inspect, Access Console etc.) from the "Container Details" section too. + +![Container Control Buttons][21] + +### Docker Images + +In this section, you can view the list of downloaded docker images. + +![Docker Image List][22] + +In this section, you can build new image, import, export and delete Docker images. To remove any image, just select it and click **Remove**. + +### Networks + +Networks section allows you to add a new network, change the network type, assign/change IP address, remove existing networks. + +![Network List][23] + +### Volumes + +Here, you can view existing docker volumes, create new one, delete them if you no longer need them. + +![Volume List][24] + +### Events + +In this section, we can view what we have done so far, such as creating a new instance, network, volume etc. + +![Event List][25] + +### Host Overview + +This section displays the Docker engine version, Host OS name, type, architecture, cpu, memory, network details etc. + +![Host Overview][26] + +Under this section, you can also configure Docker features and setup registries (i.e. Docker hub, Quay, Azure, Gitlab etc.). + +### Users + +The users section allows us to add new users, add users to teams, view list of existing users and delete the users. + +![Users][27] + +You can also create a team(e.g. development) in which you can add users in this team and assign different roles to the users. The roles feature is available only for Portainer Business edition. + +### Environments + +In this section, you can add new environment, view existing environments. + +![Environments][28] + +In Portainer CE, you can add Docker, Kubernetes and ACI environments. In business edition, you can add two more environments called Nomad and KaaS. + +### Authentication Logs + +The Authentication logs section shows you to user activity details. Portainer user authentication activity logs have a maximum retention of 7 days. This is actually business edition feature. If you're using community edition, you can't use this feature. + +### Settings + +This section is dedicated for Portainer settings. In this section, you can configure Portainer settings such as, + +* define the snapshot level for containers, +* use custom logo for Portainer dashboard, +* specify the URL to your own template definitions file and HELM repository, +* configure SSL certificate, +* backup Portainer configuration etc. + +### Conclusion + +In this detailed guide, we discussed what is Portainer, how to install Portainer, and how to use Portainer to create and manage Docker containers in Linux. + +We also learned a brief overview about each section in the Portainer web dashboard. Using Portainer, you can do complete docker management either from the local system itself or a remote system. + +If you want a feature rich, yet simple to use centralized Docker management solution, you should give Portainer a try. + +For more details, check the official resources given below. + +**Resources:** + +* [Portainer website][29] +* [Portainer on GitHub][30] + +Any thoughts on Portainer? Have you already tried it? Great! Let us know them in the comment section below. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/portainer-an-easiest-way-to-manage-docker/ + +作者:[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-docker-almalinux-centos-rocky-linux/ +[2]: https://ostechnix.com/install-docker-ubuntu/ +[3]: https://ostechnix.com/docker-desktop-for-linux/ +[4]: https://ostechnix.com/wp-content/uploads/2022/08/Create-Password-For-Portainer-Admin-User.png +[5]: https://ostechnix.com/wp-content/uploads/2022/08/Portainer-Admin-Dashboard.png +[6]: https://ostechnix.com/wp-content/uploads/2022/08/Portainer-Home-1.png +[7]: https://ostechnix.com/wp-content/uploads/2022/08/Environment-Summary.png +[8]: https://ostechnix.com/wp-content/uploads/2022/08/Application-Templates-List.png +[9]: https://ostechnix.com/wp-content/uploads/2022/08/Launch-MySQL-Template.png +[10]: https://ostechnix.com/wp-content/uploads/2022/08/Create-MySQL-Docker-Container.png +[11]: https://ostechnix.com/wp-content/uploads/2022/08/Container-List.png +[12]: https://ostechnix.com/wp-content/uploads/2022/08/Create-And-Manage-Containers-From-Portainer.png +[13]: https://ostechnix.com/wp-content/uploads/2022/08/Quick-Actions.png +[14]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Logs.png +[15]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Inspect.png +[16]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Statistics.png +[17]: https://ostechnix.com/wp-content/uploads/2022/08/Access-Container-Console.png +[18]: https://ostechnix.com/wp-content/uploads/2022/08/Connect-To-Console.png +[19]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Console.png +[20]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Details.png +[21]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Control-Buttons.png +[22]: https://ostechnix.com/wp-content/uploads/2022/08/Docker-Image-List.png +[23]: https://ostechnix.com/wp-content/uploads/2022/08/Network-List.png +[24]: https://ostechnix.com/wp-content/uploads/2022/08/Volume-List.png +[25]: https://ostechnix.com/wp-content/uploads/2022/08/Event-List.png +[26]: https://ostechnix.com/wp-content/uploads/2022/08/Host-Overview.png +[27]: https://ostechnix.com/wp-content/uploads/2022/08/Users.png +[28]: https://ostechnix.com/wp-content/uploads/2022/08/Environments.png +[29]: http://www.portainer.io/ +[30]: https://github.com/portainer/portainer From 72a326e0aae8bfd9b898883bb615601fd43ccef6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:18:14 +0800 Subject: [PATCH 0930/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220830=20Why=20We=20Need=20Time=20Series=20Databas?= =?UTF-8?q?es=20for=20=20Site=20Reliability=20Engineering.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...bases for Site Reliability Engineering.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md diff --git a/sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md b/sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md new file mode 100644 index 0000000000..aa208d59e7 --- /dev/null +++ b/sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md @@ -0,0 +1,148 @@ +[#]: subject: "Why We Need Time Series Databases for Site Reliability Engineering" +[#]: via: "https://www.opensourceforu.com/2022/08/why-we-need-time-series-databases-for-site-reliability-engineering/" +[#]: author: "K. Narasimha Sekhar https://www.opensourceforu.com/author/k-narasimha-sekhar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why We Need Time Series Databases for Site Reliability Engineering +====== + +It’s not uncommon to deal with petabytes of data today, even when carrying out traditional types of analysis and reporting. Traditional databases, however, do not offer optimal mechanisms to store and retrieve large scale time series data. To meet the demand of time series analysis, new types of databases are emerging. + +### Real-world use cases + +Time series data streams are gathered in many real-world scenarios. The volume of data and the velocity of data generation differ from case to case. + +Typical scenarios from different fields are described below. + +* Monitoring data gathered as part of site reliability engineering: Health, performance, and capacity parameters are collected periodically over time from various layers of infrastructure and applications. These time series data streams are analysed for anomalies, fault detection, forecasting, etc. Huge amounts of time series data need to be analysed in real-time to avoid service breakdowns and for quick recovery. This data is also stored and retrieved for processing later, such as capacity forecasting. +* IoT devices and sensors generate continuous streams of data. +* Autonomous trading algorithms continuously collect data on how the markets are changing in order to optimise returns. +* The retail industry collects and monitors supply chain and inventory data to optimise costs. +* Weather forecasting teams continuously collect climate parameters such as temperature, humidity, etc, for predictions. +* Autonomous vehicles continuously collect data about how their environment is changing, adjusting the drive based on weather conditions, engine status, and countless other variables. +* In the medical field, sensors generate time data streams for blood pressure tracking, weight tracking, cholesterol measurements, heart rate monitoring, etc. + +There are numerous real-world scenarios where we collect time series data streams. These demand an efficient database for storing and retrieving time series data. + +![Figure 1: Alerting engine based on time series data analysis][1] + +### Time series data analysis + +Time series data is a sequence of data points collected over time intervals, giving us the ability to track changes over time. Because data points in time series are collected at adjacent time periods, the observations can be correlated. This feature distinguishes time series data from traditional data. Time series data can be useful to help recognise patterns or a trend. Knowing the value of a specific parameter at the current time is quite different than the ability to observe its behaviour over a long time interval. Time series data allows us to measure and analyse change — what has changed in the past, what is changing in the present, and what changes may take place in the future. Time series data can track changes over milliseconds, days, or even years. Table 1 outlines the typical questions that time series analysis can help to answer. + +| Category | Typical questions to be addressed | +| :- | :- | +| Prognostication | What are the short- and long-term trends for a measurement or group of measurements? | +| Introspection | How do several measurements correlate over a period of time? | +| Prediction | How do I build a machine learning model based on the temporal behaviour of many measurements correlated to externally known facts? | +| Introspection | Have similar patterns of measurements preceded similar events? | +| Diagnosis | What measurements might indicate the cause of some event, such as a system failure? | +| Forecasting | How many more servers will be needed for handling next quarter’s workload? | +| Segmentation | How to divide a data stream into a sequence of discrete segments in order to reveal the underlying properties of its source? | + +Typical steps in time series data analysis are: + +* Collecting the data and cleaning it +* Visualising with respect to time vs key feature +* Observing the stationarity of the series +* Developing charts to understand the nature of the data +* Model building such as AR, MA, ARMA and ARIMA +* Extracting insights from the predictions + +There are three components of time series analysis — trend, seasonality and residual analysis. + +*Trend:* This indicates the direction in which the data is moving over a period of time. + +*Seasonality:* Seasonality is about periodic behaviour — spikes or drops caused by different factors like: + +* Naturally occurring events like weather fluctuations +* Business or administrative procedures like the start or end of a fiscal year +* Social and cultural behaviour like holidays or festivals +* Calendar events, like the number of Mondays per month or holidays that change every year + +*Residual analysis:* These are the irregular fluctuations that cannot be predicted using trend or seasonality analysis. + +An observed data stream could be additive (trend + seasonality + residual) or multiplicative (trend * seasonality * residual). + +Once these components are identified, models are built to understand time series and check for anomalies, forecasting and correlations. For time series data modelling, AR, MA, ARMA and ARIMA algorithms are widely adopted. Many other advanced AI/ML algorithms are being proposed for better evaluation. + +### Time series databases + +A time series database (TSDB) is a database optimised for time-stamped or time series data. Time series data is simply measurements or events that are tracked, monitored, down sampled, and aggregated over time. These could be server metrics, application performance monitoring, network data, sensor data, events, clicks, trades in a market, and many other types of analytics data. + +Looking back 10 years, the amount of data that was once collected in 10 minutes for some very active systems is now generated every second. To process these high volumes, we need different tools and approaches. + +To design an optimal TSDB, we must analyse the properties of time series data, and the demands of time series analysis applications. The typical characteristics of time series data and its use cases are: + +* Time series is a sequence of values, each with a time value indicating when the value was recorded. +* Time series data entries are rarely amended. +* Time series data is often retrieved by reading a contiguous sequence of samples. +* Most of the time, we collect and store multiple time series. Queries to retrieve data from one or a few time series for a particular time range are very common. +* The volume and velocity of time series data is very high. +* Both long-term and short-term trends in the time series are very important for analysis. +* Summarising or aggregating high volume time series data sets is a very basic requirement. +* Traditional DB operations such as searching, sorting, joining tables, etc, are not required. + +Properties that make time series data very different from other data workloads are data life cycle management, summarisation, and large range scans of many records. TSDB is designed to simplify and strengthen the process for real-world time series applications. + +Storing time series data in flat files limits its utility. Data will outgrow these and the access is inefficient. Traditional RDBMS databases are not designed from the ground up for time series data storage. They will not scale well to handle huge volumes of time series data. Also, the schema is not appropriate. Getting a good performance for time series from an SQL database requires significant customisation and configuration. Without that, unless you’re working with a very small data set, an SQL-based database will simply not work properly. A NoSQL non-relational database is preferred because it scales well and efficiently to enable rapid queries based on time range. + +![Figure 2: Time series analytics engine on AWS Cloud][2] + +A TSDB is optimised for best performance for queries based on a range of time. New NoSQL non-relational databases come with considerable advantages (like flexibility and performance) over traditional relational databases (RDBMS) for this purpose. NoSQL databases and relational databases share the same basic goals: to store and retrieve data and to coordinate changes. The difference is that NoSQL databases trade away some of the capabilities of relational databases in order to improve scalability. The benefits of making this trade include greater simplicity in the NoSQL database, the ability to handle semi-structured and denormalised data and, potentially, much higher scalability for the system. + +At very large scales, time-based queries can be implemented as large, contiguous scans that are very efficient if the data is stored appropriately in a time series database. And if the amount of data is very large, a non-relational TSDB in a NoSQL system is typically needed to provide sufficient scalability. + +Non-relational time series databases enable discovery of patterns in time series data, long-term trends, and correlations between data representing different types of events. The time ranges of interest extend in both directions. In addition to the very short time-range queries, long-term histories for time series data are needed, especially to discover complex trends. + +Time series databases have key architectural design properties that make them very different from other databases. These include time-stamp data storage and compression, data life cycle management, data summarisation, the ability to handle large time series-dependent scans of many records, and time series aware queries. + +For example, with a time series database, it is common to request a summary of data over a large time period. This requires going over a range of data points to perform computations like a percentile increase this month of a metric over the same period in the last six months, summarised by month. This kind of workload is very difficult to optimise for with a distributed key value store. TSDBs are optimised for exactly this use case and can give millisecond-level responses over months of data. Here is another example. With time series databases, it’s common to keep high precision data around for a short period of time. This data is aggregated and down sampled into long-term trend data. This means that for every data point that goes into the database, it will have to be deleted after its period of time is up. This kind of data life cycle management is difficult for application developers to implement in regular databases. They must devise schemes for cheaply evicting large sets of data and constantly summarising that data at scale. With a time series database, this functionality is provided out-of-the-box. + +Since time series data comes in time order and is typically collected in real-time, time series databases are immutable and append-only to accommodate extremely high volumes of data. This append-only property distinguishes time series databases from relational databases, which are optimised for transactions but only accommodate lower ingest volumes. In general, depending on their particular use case, NoSQL databases will trade off the ACID principles for a BASE model (whose principles are basic availability, soft state and eventual consistency). For example, one individual point in a time series is fairly useless in isolation, and the important thing is the trend in total. + +### Alerts based on time series data analysis for site reliability + +Time series data models are very common in site reliability engineering. Time series analysis is used to monitor system health, performance, anomaly detection, security threat detection, inventory forecasting, etc. Figure 1 shows a typical alerting mechanism based on analysing time series data collected from different components. + +Modern data centres are complex systems with a variety of operations and analytics taking place around the clock. Multiple teams need access at the same time, which requires coordination. In order to optimise resource use and manage workloads, systems administrators monitor a huge number of parameters with frequent measurements for a fine-grained view. For example, data on CPU usage, memory residency, IO activity, levels of disk storage, and many other parameters are all useful to collect as time series. + +Once these data sets are recorded as time series, data centre operations teams can reconstruct the circumstances that lead to outages, plan upgrades by looking at trends, or even detect many kinds of security intrusions by noticing changes in the volume and patterns of data transfer between servers and the outside world. + +### Open source TSDBs + +[Time series databases][3] are the fastest growing segment in the database industry. There are many commercial and open source time series databases available. A few well-known open source time series databases are listed below: + +* InfluxDB is one of the most popular time series open source databases, and is written in Go. It has been designed to provide a highly scalable data ingestion and storage engine. It is very efficient at collecting, storing, querying, visualising, and taking action on streams of time series data, events, and metrics in real-time. It uses InfluxQL, which is very similar to a structured query language, for interacting with data. +* Prometheus is an open source monitoring solution used to understand insights from metrics data and send the necessary alerts. It has a local on-disk time-series database that stores data in a custom format on disk. It provides a functional query language called PromQL. +* TimescaleDB is an open source relational database that makes SQL scalable for time series data. This database is built on PostgreSQL. +* Graphite is an all-in-one solution for storing and efficiently visualising real-time time series data. Graphite can store time series data and render graphs on demand. To collect data, we can use tools such as collectd, Ganglia, Sensu, telegraf, etc. +* QuestDB is a relational column-oriented database that can perform real-time analytics on time series data. It works with SQL and some extensions to create a relational model for time series data. It supports relational and time-series joins, which helps in correlating the data. +* OpenTSDB is a scalable time series database that has been written on top of HBase. It is capable of storing trillions of data points at millions of writes per second. It has a time-series daemon (TSD) and command-line utilities. TSD is responsible for storing data in or retrieving it from HBase. You can talk to TSD using HTTP API, telnet, or a simple built-in GUI. You need tools like flume, collectd, vacuumetrix, etc, to collect data from various sources into OpenTSDB. + +### Cloud native TSDBs + +Cloud hyperscalers like Azure, AWS and Google offer time series databases and analytics services as part of their cloud portfolio. AWS Timestream is a serverless time series database service that is fast and scalable. It is used majorly for IoT applications to store trillions of events in a day and is 1000 times faster with 1/10th the cost of relational databases. Using its purpose-built query engine, you can query recent and historical data simultaneously. It provides multiple built-in functions to analyse time series data to find useful insights. + +Microsoft Azure Time Series Insights provides a time series analytics engine. For data ingestion there are Azure IoT Hub and Event Hub services. To analyse cloud infrastructure and time series streams, these cloud vendors offers a range of native tools such as AWS CloudWatch, Azure Monitor, Amazon Kinesis, etc. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/why-we-need-time-series-databases-for-site-reliability-engineering/ + +作者:[K. Narasimha Sekhar][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/k-narasimha-sekhar/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Alerting-engine-based-on-time-series-data-analysis.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Time-series-analytics-engine-on-AWS-Cloud.jpg +[3]: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiU2ZaOj9X4AhVLwjgGHcBfB8QQFnoECEAQAQ&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FTime_series_database&usg=AOvVaw3Q9XvE3JIoBTEyu897tQQN From fbd25245bf3a86e3aaeea6d71fdcdf91bbd184cb Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:19:54 +0800 Subject: [PATCH 0931/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220830=20Google=20Reveals=20Vulnerability=20Reward?= =?UTF-8?q?=20Program=20Specifically=20For=20Open=20Source=20Software.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...m Specifically For Open Source Software.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md diff --git a/sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md b/sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md new file mode 100644 index 0000000000..c051137b61 --- /dev/null +++ b/sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md @@ -0,0 +1,35 @@ +[#]: subject: "Google Reveals Vulnerability Reward Program Specifically For Open Source Software" +[#]: via: "https://www.opensourceforu.com/2022/08/google-reveals-vulnerability-reward-program-specifically-for-open-source-software/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Google Reveals Vulnerability Reward Program Specifically For Open Source Software +====== +In 2010, Google introduced the Vulnerability Reward Program (VRP). As the name implies, it encourages security researchers and professionals to find security flaws and exploits and then disclose them in confidence to the vendor. These defects would then be rectified by the business after being reported, and the person who discovered the problem would be granted a cash reward. Google has been working to broaden the platform’s reach and consolidate it over the last few years. The business has today disclosed yet another growth, this time in the area of open source software (OSS). + +With projects like Golang, Angular, and Fuchsia under its wing, Google has underlined that it is one of the largest donors and maintainers of OSS and that it is aware of the need to secure this area. As a result, its OSS VRP programme is made to promote consistent effort on this front as well. Any OSS code that is part of Google’s portfolio is the target of OSS VRP. This includes any OSS dependencies that are maintained by other vendors in addition to the projects that it manages. The following definitions apply to the two OSS categories covered by this VRP: + +* All current open source software (including repository settings) is kept in the open repositories of GitHub organisations controlled by Google. +* The third-party dependencies of such projects (before submission to Google’s OSS VRP, notice of the affected dependence is required). + +Google is currently accepting reports for supply chain compromise, design flaws, and basic security concerns including weakened or compromised credentials or unsecured deployments. The greater barrier targets more delicate projects like Bazel, Angular, Golang, Protocol buffers, and Fuchsia. Reward levels start at $100 and rise to $31,337. + +Google aspires to increase OSS security through this community-driven collaborative endeavour. The programme is a part of the $10 billion cybersecurity investment that Google unveiled a year ago during a meeting with American President Joe Biden. In order to identify malicious open source packages, Google pledged support for the Open Source Security Foundation’s (OpenSSF) Package Analysis Project back in April. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/google-reveals-vulnerability-reward-program-specifically-for-open-source-software/ + +作者:[Laveesh Kocher][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed From 185226d87d8f59d17a5a06e2ada213d80600a007 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:21:30 +0800 Subject: [PATCH 0932/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220829=20Scrivano-=20Fascinating=20Whiteboard=20Ap?= =?UTF-8?q?p=20For=20Handwritten=20Notes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng Whiteboard App For Handwritten Notes.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md diff --git a/sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md b/sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md new file mode 100644 index 0000000000..e0c6ddfb57 --- /dev/null +++ b/sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md @@ -0,0 +1,110 @@ +[#]: subject: "Scrivano: Fascinating Whiteboard App For Handwritten Notes" +[#]: via: "https://www.debugpoint.com/scrivano/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Scrivano: Fascinating Whiteboard App For Handwritten Notes +====== +Let’s find out what are the cool features of Scrivano – a whiteboard app for Linux systems. + +### Scrivano + +Scrivano is a new whiteboard application which recently getting some attention for its unique features and “ease of use”. It has some seriously cool feature which I will talk about shortly. + +When I write about the [top Whiteboard applications][1] for taking hand written notes using touch devices, I was not aware of this application since it was probably under development. In that article, I mentioned about the major apps which you all know about. + +For example, Xournal++ is probably the most used and “go to” app for taking quick notes using stylus in supported devices. Another GTK & Rust based app which recently became famous is Rnote. It also has some excellent features. + +Now, you can try out another cool app – Scrivano. It is a Qt based application and comes with a simple user interface for utmost productivity. + +Here’s how it looks. + +![Scrivano – How it looks][2] + +At the top bar, you have a simple toolbox with standard options such as Pencil with thickness, colours, fill area tools, eraser, undo, redo and so on. These are pretty common among all the apps in this category. + +But what are the features that make it stand apart? Let’s talk about them. + +### Features + +First feature which is unique is the “Snap to Grid”. So, when you draw on its grid canvas, you can set your drawings to snap to the grids so that it looks uniform. This is one of the best feature which makes your notes look professional. Don’t worry about your bad handwriting or drawings. + +Here’s a quick look on the “snap to grid” feature with comparison. + +![Snap to Grip feature][3] + +Another feature which stand out is the Sticker creation of your drawings. Say, you are taking some math notes and you want to reuse one of the curve multiple times. You can select the drawing and make it a sticker – which you can put it back to your drawing! + +![Stickers in Scrivano][4] + +The editing options are so good that the only limitation is your imagination in terms of note taking. + +For example, you can select and move around any part of your drawing as a separate object. Then you can clone it, copy it or do anything you want. + +Similarly, the fill stroke feature is so effortless. When you are drawing with pen, the app can close the start and end point. Then it fills with colours. All of these happens without choosing additional option from toolbar. + +Scrivano have a nice option called Laser which is effective if you are teaching someone via screen sharing or recording a tutorial video. Its a laser-like line which you can draw and it disappears with 3 to 5 seconds. + +![][5] + +Other noteworthy features include: + +* You can import and annotate PDF which it super useful. +* Different and customizable background with options – Plain, Lined, Grid or Dotted +* Options to change grid spacing, colour of canvas and patterns +* You can adjust canvas size for your printing (such as A4 etc) +* Export to PDF and other image formats +* Scrivano comes with Auto save option so that you don’t lose your data (saves in home directory by default) +* Insert external images into your handwritten notes +* Dark mode in UI + +You should be glad knowing that, the developer is still working on additional features as we speak on top the above items. I’m sure it will be a contender to the legacy players such as Xournal++ and others. + +Let’s see how you can install. + +### Download and Install + +The best way to install Scrivano is using Flatpak. All you need to do is set up your system for [Flatpak with Flathub][6] and then run the following command to install. + +``` +flatpak install flathub com.github.scrivanolabs.scrivano +``` + +Then you can launch it via application menu. + +Windows folks, you can grab the installer from the [official home page.][7] + +It is indeed a nice utility and should get all the love. Do let me know in the comment box what you like about this app. + +Cheers. + +[Next: Crystal Linux: Emerging Arch Linux Spin for GNOME Fans][8] + +![Join our Telegram channel and stay informed on the move.][9] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/scrivano/ + +作者:[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/top-whiteboard-applications-linux/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Scrivano-How-it-looks.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/Snap-to-Grip-feature.gif +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Stickers-in-Scrivano.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/Scrivano-Fill-and-Laser-Method.mp4 +[6]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[7]: https://scrivanolabs.github.io/ +[8]: https://www.debugpoint.com/crystal-linux-first-look/ +[9]: https://t.me/debugpoint From 6e80c936442c93fd44da638b746c6e3051bd6119 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:22:28 +0800 Subject: [PATCH 0933/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220830=20Crystal=20Linux-=20Emerging=20Arch=20Linu?= =?UTF-8?q?x=20Spin=20for=20GNOME=20Fans.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Emerging Arch Linux Spin for GNOME Fans.md | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md diff --git a/sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md b/sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md new file mode 100644 index 0000000000..322f4eb503 --- /dev/null +++ b/sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md @@ -0,0 +1,143 @@ +[#]: subject: "Crystal Linux: Emerging Arch Linux Spin for GNOME Fans" +[#]: via: "https://www.debugpoint.com/crystal-linux-first-look/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Crystal Linux: Emerging Arch Linux Spin for GNOME Fans +====== +Meet Crystal Linux, a unique Arch Linux Spin with stock GNOME experience. + +### Introduction + +Often I think that we have sufficient Linux distros already. The count is nearing thousands, and fragmentation is at its peak. That is not good for quality software, especially in the open-source space. + +There is always a distro available for every use case you can think of. + +But Arch Linux is one of the sectors, it’s still emerging – just because of its debatable [complex installation methods][1]. That’s why most of the emerging Arch Linux distributions (such as [Xero Linux][2], [Hefftor Linux][3], Mabox, etc.) try to invent something unique in installation and other areas. + +Crystal Linux is one of those distros with a different take on installation while being super user-friendly. + +![Crystal Linux Desktop with GNOME 42][4] + +### Crystal Linux: First Look + +Before you read on, you should know that it’s a new distro (less than a year old) currently under development. So use it with caution. + +At first glance, it will feel like a stock GNOME installation, similar to the Fedora workstation. That’s true. With the Arch Linux base and stock GNOME – the performance is top-notch. Although I tried it on a virtual machine, I feel the GNOME and Arch combination performs much better than the Fedora workstation in the same virtual machine setup. + +With that said, no such different customization is available apart from those coming with GNOME. Honestly, GNOME doesn’t require any additional customization for its default settings. Looks wise it’s good enough. + +### What’s unique about Crystal Linux? + +#### jade Installer for Arch + +The most important offering is its own installer called “[jade][5]“. Crystal Linux team created a GTK4/libadwaita and Rust-based installer to give you a streamlined experience for Arch installation. + +And it looks fantastic (see the below images). + +![jade installer][6] + +![selecting desktop to install][7] + +![installation][8] + +The jade installer reminds me of GNOME’s Tour app, but here it uses a similar principle for installation. Basic information such as Keyboard, region, and names/passwords are captured via a series of screens. + +Then you get to choose the desktop environment you want to install. The default version is GNOME; however, you have the option to install all the famous desktops and window managers. + +One unique feature of this new installer is that you get options to set up ipv6 and Timeshift restore points. + +The partition wizard is currently under development with custom partitioning via this app or GParted as options. Here’s a mockup of the partition module under development (from [Twitter][9]). + +![jade with additional options - mockup][10] + +Finally, a summary for you before you install this distro/Arch Linux. The installation executes a script at the back end for Arch installation. + +#### Onyx – custom GNOME experience (with Budgie?) + +From GitHub, I found that there is a customized desktop for base install named [Onyx][11]. Although I am not sure how it fits into this desktop, it also has a Budgie desktop component. Since there is no documentation as such, I guess we need to wait until a stable release. + +![Not sure how Onyx is working in the backend][12] + +#### Amethyst – New AUR Helper + +Do we really need another AUR helper? The [Yay helper][13] is awesome already. + +Anyways. + +The Crystal Linux also features a homegrown AUR helper and pacman Wrapper called [amethyst][14]. As the dev says, you can install it to any Arch-based distros. Amethyst comes with the command line option “ame” which you can use with standard pacman switches. + +![ame terminal command][15] + +#### Btrfs file system by default + +One of the best features of this distro is the default btrfs file system during installation. Although the current work is ongoing for the additional file system, btrfs as default has its own advantages for backup and restoration. + +I don’t remember any other Arch-spin that has btrfs as default. + +#### Applications and Packages + +Since it is a stock GNOME-based distro, no additional applications are installed. So, you need to spend some time configuring with necessary apps such as LibreOffice, GIMP, Media players, etc. + +Firefox and native GNOME apps are available in the default installation. + +Crystal Linux seems to deploy the core packages from their own server, NOT from the Arch repo. Hence, some features may arrive a little late for updating the desktop and such. + +### Performance + +Arch Linux always performs well, in my experience. All the popular desktops such as KDE, GNOME, Xfce – all of them somehow feel faster than in Ubuntu/Fedora. + +With that said, the current GNOME 42 version in Crystal Linux is swift. The window animations and gestures feel smooth even in a virtual machine. There is no lag whatsoever. + +![Crystal Linux - Performance][16] + +Memory footprint is extremely low at 530 MB at idle. Most of the idle state CPUs are consumed by gnome-shell and systemd services. + +Default GNOME desktop install takes only 3.8 GB of disk space. + +### Wrapping up + +The jade installer and btrfs file system are two major highlights of Crystal Linux. Since most of the Arch-based distros follow Calamares installer, it’s good to see a new installer in this space. And it’s really user-friendly. + +The distro is just a few months old and has a long road ahead. I strongly believe it will give a competition to the currently famous Arch distro [EndeavourOS][17]. And the fans get to experience vanilla GNOME with Arch without the hassles of [installing Arch with GNOME][18]. + +You can download the current ISO from the [official website][19]. As I mentioned earlier, use it with caution since it is under development. + +So, what are your thoughts about this distro? What are your favourite features? Do let me know in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/crystal-linux-first-look/ + +作者:[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/install-arch-linux/ +[2]: https://www.debugpoint.com/xerolinux-review/ +[3]: https://www.debugpoint.com/hefftor-linux-review/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Desktop-with-GNOME-42-1024x579.jpg +[5]: https://github.com/crystal-linux/jade +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-installer.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/selecting-desktop-to-install.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/installation.jpg +[9]: https://twitter.com/Crystal_Linux/status/1564379291529482240 +[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-with-additional-options-mockup-1024x576.jpg +[11]: https://github.com/crystal-linux/onyx +[12]: https://www.debugpoint.com/wp-content/uploads/2022/08/Not-sure-how-Onyx-is-working-in-the-backend-1024x576.jpg +[13]: https://www.debugpoint.com/install-yay-arch/ +[14]: https://github.com/crystal-linux/amethyst +[15]: https://www.debugpoint.com/wp-content/uploads/2022/08/ame-terminal-command-1024x576.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Performance-1024x576.jpg +[17]: https://www.debugpoint.com/tag/endeavouros +[18]: https://www.debugpoint.com/gnome-arch-linux-install/ +[19]: https://getcryst.al/ \ No newline at end of file From 7a795ed3dc13a5d965fd5b648dbec85ca091ed1f Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:23:36 +0800 Subject: [PATCH 0934/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220830=207=20Best=20Open=20Source=20Library=20Mana?= =?UTF-8?q?gement=20Software.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Open Source Library Management Software.md | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 sources/tech/20220830 7 Best Open Source Library Management Software.md diff --git a/sources/tech/20220830 7 Best Open Source Library Management Software.md b/sources/tech/20220830 7 Best Open Source Library Management Software.md new file mode 100644 index 0000000000..2de07e45f4 --- /dev/null +++ b/sources/tech/20220830 7 Best Open Source Library Management Software.md @@ -0,0 +1,206 @@ +[#]: subject: "7 Best Open Source Library Management Software" +[#]: via: "https://itsfoss.com/open-source-library-management-software/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Best Open Source Library Management Software +====== + +Sometimes managing a digital library gives you peace of mind as you do not need to make many efforts to maintain it. Usually, easy to organize, and can be backed up as well. + +When it comes to managing the library, the library management software can make a world of difference. It can break or make your digital library management experience. + +And, with open-source library management software, an organization/library can save investment costs, have better privacy, and have more flexibility without any vendor lock-ins. + +So, I came up with the compilation of open-source library management software to provide you with some good options to help manage your digital library. You can use some tools for personal use-case, but many of them are geared toward public libraries. + +### 1. Koha + +![koha][1] + +**Key** **Features of Koha:** + +* An enterprise-grade library management software. +* Supports multiple languages. +* Powerful text search and enhanced catalog display. +* Built using standard library protocols to ensure interpretability between Koha and other library systems. +* Web-based UI. +* No vendor lock-in. + +[Koha][2] is a well-known name when it comes to library management software, and it is considered the best of what you can get for your library. You may ask why. It handles everything like a charm, from backups and maintenance to system upgrades! + +Being a truly enterprise-grade system, you’d get modules to manage circulation, cataloging, serials management, authorities, flexible reporting, label printing, and a lot more. + +So, you can utilize Koha for small size to multi-branch libraries. + +[Koha][3] + +### 2. Evergreen + +![evergreen][4] + +**Key features of Evergreen** + +* Flexibility and scalability. +* Has self-registration and self-checkout options. +* Allows making desired changes in the catalog. +* Multiple payment options. +* Powerful search functionality. +* Allows you to retain a history of borrowed books. + +[Evergreen][5] is a library integrated system that was initially developed for Public Information Network for Electronic Services (PINES) but it also powers more than 1800 libraries outside PINES. + +Being scalable to its core, you can easily manage an entire catalog of multiple branches. It also offers good search functionality along with some interesting features. + +[Evergreen][6] + +### 3. BiblioteQ + +![biblioteq][7] + +**Key features of BiblioteQ** + +* Supports ARM & Power PC. +* User-friendly interface. +* Apart from books, it also supports DVDs, Music CDs, photos, and even video games. +* Pushes notifications for unavailable items. +* Supports drag and drop for cover images. + +“It’s quite simple and straightforward” This was my initial impression while testing BiblioteQ for this list. But, don’t get fooled by its user interface. + +[BiblioteQ][8] is a professional archiving, cataloging, and library management software that utilizes Qt for an eye-pleasant user interface. Furthermore, it uses PostgreSQL and SQLite for the databases. + +While speaking of connectivity, it uses Open Library, SRU, and Z39.50 protocols to have a seamless experience while retrieving books and other archive options. + +[BiblioteQ][9] + +### 4. OPALS + +![opals][10] + +**Key Features of OPALS:** + +* Web-based and mobile friendly. +* Minimal cost. +* Professional development, management, and support. +* Market leader for school libraries and academic libraries. +* Online public access catalog. +* Subscription Database management. +* Digital archive management. +* Support for Circulation and inventory management. +* Hosted servers automated updates, meaning no additional hardware cost nor maintenance by your side. + +According to the 2022’s [international survey of library automation][11], OPALS (Open-source Automated Library System) has scored highest in every single category among school libraries and small academic library programs. + +[OPALS][12] is used in more than 2000 libraries daily as it provides a full-fledged automated library management experience. + +It is a paid tool that provides you technical support for installation, management, hosting, and other purposes. If you are looking for something for your academy/institution this can be a good fit. + +OPALS also provides a [3-month free demo site for your library][13], so you can have a better idea of what to expect from the asked price. + +[OPALS][14] + +### 5. InvenioILS + +![InvenioILS][15] + +**Key Features of InvenioILS**: + +* Modern UI. +* Acquisition and simple interlibrary loan modules to have a better track of items. +* Uses REST API meaning, better integrations with other systems. +* Circulations can be easily managed through a few clicks. +* Powerful cataloging system based on JSON schema. +* Easy-to-use back office tools, meaning listing, searching, or even getting details of specific items will be easy. + +[Invenio’s ILS][16] (Integrated Library System) uses the Invenio framework, which is made up of widely used open-source products including Python and React frameworks. + +So if you have the technical expertise, there will be no boundaries on customization and enhancements that you can do with the default base. + +[InvenioILS][17] + +### 6. SLiMS + +![slims][18] + +**Key features of SLiMS:** + +* Utility to generate Barcodes. +* Responsive UI. +* Allows creating Union Catalog creation using Union Catalog Server. +* Membership management. +* Database backup utility. +* Master files management to manage referential data such as Publishers, Authors, and Locations. +* For Bibliography, you get faster input with peer-to-peer copy cataloging. +* Manage your patrons with instant library card allocation. + +[SLiMS][19] (Senayan Library Management System) is nothing but an Apache web server bundled with MySQL and PHP, and the outcome is an extremely powerful community-driven library management toolkit. + +From serial publication control to system modules providing extreme flexibility, SLiMS has a lot to offer. + +[SLiMS][20] + +### 7. FOLIO + +![folio][21] + +**Key features of FOLIO:** + +* Wide range of inventory management features including cataloging and bibliographic management. +* Manage vendors, budgets, orders, and invoicing while receiving materials. +* Efficient user management. +* Different patron types, loan types, fines, and fee structures are also supported. + +FOLIO (Future of Libraries is Open) can be considered the best option in terms of user experience, as the community thrives to bring the best out of UI/UX elements. + +As with any other library management software, you’d get all the basic features such as circulation, acquisitions, cataloging, and e-resources management. + +You also get a nice feature to manage multiple users, patron types, fee structures, and more. + +[FOLIO][22] + +### Digital Library Management Sounds Fun! + +In this list, I’ve only considered the ones that are actively maintained. There might be more that you can explore (but with no recent development activity). + +*Did I miss any of your favorites? You are welcome to share your personal experience with library management software.* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/open-source-library-management-software/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/koha-1.png +[2]: https://koha-community.org/ +[3]: https://koha-community.org/download-koha/ +[4]: https://itsfoss.com/wp-content/uploads/2022/08/evergreen.png +[5]: https://evergreen-ils.org/ +[6]: https://evergreen-ils.org/egdownloads/ +[7]: https://itsfoss.com/wp-content/uploads/2022/08/biblioteq.png +[8]: https://biblioteq.sourceforge.io/ +[9]: https://github.com/textbrowser/biblioteq/releases +[10]: https://itsfoss.com/wp-content/uploads/2022/08/opals.png +[11]: https://librarytechnology.org/perceptions/2021/#top-performers +[12]: https://opalsinfo.net/ +[13]: https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&su=Request+for+OPALS+information&to=info@opals-na.org&body=Institution+Name:%0D%0A%0ACity:%0D%0A%0AState+or+Prov.:%0D%0A%0AContact:%0D%0A%0APosition:%0D%0A%0AEmail:%0D%0A%0ACollection+size:%0D%0A%0ANumber+of+members:%25+ +[14]: https://en.bibliofiche.com/showcase.jsp?n=OPALS%99&product_number=F05800 +[15]: https://itsfoss.com/wp-content/uploads/2022/08/ils.png +[16]: https://inveniosoftware.org/products/ils/ +[17]: https://inveniosoftware.org/products/ils/ +[18]: https://itsfoss.com/wp-content/uploads/2022/08/slims.png +[19]: https://slims.web.id/web/ +[20]: https://github.com/slims/slims9_bulian/releases +[21]: https://itsfoss.com/wp-content/uploads/2022/08/folio.png +[22]: https://github.com/folio-org From fd23528aada5c9df25ecd93433515a89a82d1e99 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:24:18 +0800 Subject: [PATCH 0935/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220829=20Debian=20Finally=20Starts=20a=20General?= =?UTF-8?q?=20Resolution=20to=20Consider=20a=20Non-Free=20Firmware=20Image?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n to Consider a Non-Free Firmware Image.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md diff --git a/sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md b/sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md new file mode 100644 index 0000000000..fd93ccde34 --- /dev/null +++ b/sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md @@ -0,0 +1,71 @@ +[#]: subject: "Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image" +[#]: via: "https://news.itsfoss.com/debian-non-free/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image +====== +Debian's finally considering the inclusion of non-free firmware with a general resolution. So, what's it going to be? + +![Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image][1] + +Debian is one of the most loved Linux distributions for its approach to stability and a balance between new features. + +But, it does not come with any non-free firmware. + +And, that is becoming an issue for users who want to use Debian on newer hardware. + +Most of the latest devices and configurations need non-free firmware to make things work, which includes Wi-Fi, graphics, and more. + +To address that, **Steve McIntyre**, a Debian developer and a former Debian project leader, has been actively discussing the issue for a while. At the**DebConf 22 conference**, Steve recently talked about fixing the firmware mess to highlight this better to users and developers, as spotted by [Geeker’s Digest][2].**As an update to the discussion** among the community: it looks like Debian has started a general resolution to let its stakeholders vote what to do with non-free firmware. + +### Debian's General Resolution Proposals + +There are **three proposals** with the general resolution. + +* Proposal A: Debian will include non-free firmware packages on official media installer images. The included firmware will be enabled by default where it detects the requirement. However, it will also include ways for users to disable this at boot. +* Proposal B: Include non-free firmware packages as official media images, but as a separate offering alongside the files with no non-free firmware. +* Proposal C: Make distribution media containing packages from non-free section and make it available for download alongside the free media by informing the user what they are downloading. + +These are some interesting proposals. I think Proposal A would be convenient for all, while giving advanced users the chance to disable non-free firmware. + +You can learn more about the general resolution in the [official page][3]. + +💬 **What do you think?** + +### Including Non-Free Firmware in Official Releases + +As for the current situation, you can find an unofficial Debian image with non-free firmware. + +However, not every user is aware of it, and even if it is promoted on Debian’s download page, **“unofficial**” term is not something a user will prefer over the recommended image. + +Furthermore, it is counter-intuitive to expect users to install non-free firmware when they can choose any Ubuntu-based distribution or Ubuntu as an alternative. + +Not just limited to these issues, Steve mentioned a few other problems with it in his [blog][4] that include: + +* Maintaining separate non-free images is time-consuming. +* The official images are not preferred by many users because of the lack of non-free firmware. + +*So, what do you think Debian's general resolution get vote for? A separate media image? Or include it with the official image?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/debian-non-free/ + +作者:[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/content/images/size/w1200/wordpress/2022/07/debian-non-free-firmware.jpg +[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ +[3]: https://www.debian.org/vote/2022/vote_003#timeline +[4]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do From cdc70e3b295c9f4efef36677018c0455998b5afa Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:27:34 +0800 Subject: [PATCH 0936/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220829=205=20GNOME=2043=20Features=20to=20Keep=20a?= =?UTF-8?q?n=20Eye=20On.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...9 5 GNOME 43 Features to Keep an Eye On.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md diff --git a/sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md b/sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md new file mode 100644 index 0000000000..bd0f22e8ca --- /dev/null +++ b/sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md @@ -0,0 +1,156 @@ +[#]: subject: "5 GNOME 43 Features to Keep an Eye On" +[#]: via: "https://news.itsfoss.com/gnome-43-features/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 GNOME 43 Features to Keep an Eye On +====== +GNOME 43 is around the corner. Here are the features that you should expect with the release. + +![5 GNOME 43 Features to Keep an Eye On][1] + +GNOME 43 is due for release on **September 21, 2022**. As of now, GNOME 43’s beta build is available to test. + +The features/changes that we find with GNOME 43 beta should arrive with the final release. + +So, what are the best GNOME 43 features that you should look forward to? + +Let's take a look at some key changes. + +The list focuses on visual/interactive changes. For a full list of technical changes, you can refer to the changelog linked at the bottom of the article. + +### 1. Quick Settings Makeover + +![gnoome quick settings][2] + +The GNOME desktop menu in the top-right corner where you can quickly adjust the volume, access network connections, and power on/off the computer finally gets a visual refresh. + +Now, it looks more like an Android quick toggle bar, which should enhance the user experience while trimming down some extra clicks. + +![gnome quick settings][3] + +You do not need to head to the settings to turn on the dark mode and night light. The new quick toggle menu gives you access to those. + +Moreover, things like selecting a Wi-Fi network and changing the audio device is easier than ever. + +### 2. Changes to the Nautilus File Manager + +While we already mentioned the most significant changes to Nautilus in GNOME 43 in our previous coverage: + +[6 New Changes Coming to Nautilus File Manager in GNOME 43][4] + +There are a few things that are worth re-iterating. Some of them include: + +* Refreshed look with GTK 4. +* Ability to drag and select files (rubber band selection). +* Adaptive view with a compact window. +* New document context menu. + +![nautilus file manager gnome 43][6] + +Overall, with GNOME 43, you will find several visual tweaks to the Nautilus File Manager with subtle animation improvements. + +You can click on every option, access the properties of a directory and do more such actions to explore the differences. It should feel more intuitive. + +### 3. Device Security Information + +![][7] + +It's been a while since we reported that GNOME will display a secure boot warning if you have it disabled: + +[Secure Boot Disabled? GNOME Will Soon Warn You About it!][8] + +You will get the warning in your splash screen, and the lock screen. + +GNOME's setting menu also has a new "**Device Security**" option where you get the Secure Boot status along with other essential information like: + +* TPM +* Intel BootGuard +* IOMMU protection + +### 4. Extension Support for GNOME Web + +![gnome web extensions][10] + +GNOME Web is getting better with every update. With the WebExtensions support, it is an attractive option to replace your daily driver: + +[With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux][11] + +At the time of writing this, the support is still **experimental**, and you will have to manually install the extensions. + +For starters, you can download **.xpi** files for extensions available on the Mozilla Firefox add-ons portal. + +### 5. GNOME Software Improvements + +GNOME's Software Center is not the best experience there is. + +While it has improved with changes to provide additional information, it still has room for improvements. + +![gnome software][13] + +With GNOME 43, you get to know more about the permissions required by Flatpak applications. And, you also get a section for "**Other Apps by**" to find applications by the same developer. + +Furthermore, there are subtle visual tweaks to the way package sources are displayed. + +![gnome software][14] + +### Bonus: New Wallpapers + +You get new default wallpapers with their dark and light variants. Here's what the dark wallpaper background looks like: + +![][15] + +And, here's the light version: + +![][16] + +In addition to the major highlights, some other changes include: + +* Adwaita icon theme updates. +* Performance improvements to GNOME apps. +* Various code-cleanups. +* Refinements to the calendar. +* Revamped “About” window. + +For full technical details, you can refer to [GNOME 43 beta changelog][17]. + +Overall, GNOME 43 focuses heavily on improving usability and the user experience. + +Some interesting features were planned initially but did not make it to GNOME 43. *Maybe, GNOME 44 will include those?* + +[Here’s What Devs Are Planning for GNOME 43][18] + +💬 *What do you think about GNOME 43 features? Kindly let us know your thoughts in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-43-features/ + +作者:[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/content/images/size/w1200/2022/08/gnome-43-features.jpg +[2]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-1.png +[3]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-settings.png +[4]: https://news.itsfoss.com/gnome-files-43/ +[6]: https://news.itsfoss.com/content/images/2022/08/nautilus-file.gif +[7]: https://news.itsfoss.com/content/images/2022/08/secure-boot-gnome.png +[8]: https://news.itsfoss.com/gnome-secure-boot-warning/ +[10]: https://news.itsfoss.com/content/images/2022/08/gnome-web-extensions-1.png +[11]: https://news.itsfoss.com/gnome-web-extensions-dev/ +[13]: https://news.itsfoss.com/content/images/2022/08/gnome-software-screenshot-1.png +[14]: https://news.itsfoss.com/content/images/2022/08/gnome-43-software-center.jpg +[15]: https://news.itsfoss.com/content/images/2022/08/gnome-43-dark-wallpaper.jpg +[16]: https://news.itsfoss.com/content/images/2022/08/gnome-light-adaitwa.jpg +[17]: https://download.gnome.org/core/43/43.beta/NEWS +[18]: https://news.itsfoss.com/gnome-43-dev-plans/ From 8de34d27b318017036130f894c80ece05c9c8589 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:28:55 +0800 Subject: [PATCH 0937/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220830=20Live=20Debugger=20Tool=20for=20Apps,=20Si?= =?UTF-8?q?dekick,=20is=20Now=20Open=20Source.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... for Apps, Sidekick, is Now Open Source.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md diff --git a/sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md b/sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md new file mode 100644 index 0000000000..bbb7ffa1ad --- /dev/null +++ b/sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md @@ -0,0 +1,74 @@ +[#]: subject: "Live Debugger Tool for Apps, Sidekick, is Now Open Source" +[#]: via: "https://news.itsfoss.com/sidekick-open-source/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Live Debugger Tool for Apps, Sidekick, is Now Open Source +====== +Sidekick is a live application debugger with useful features. It is now open-source and can be self-hosted. + +![Live Debugger Tool for Apps, Sidekick, is Now Open Source][1] + +Sidekick is a live application debugger, meaning it lets developers know about bugs and issues in their applications in real-time. + +It was primarily a paid tool for the job, with a 14-day trial plan to test it out. + +📢 *And now*: **it is open-source**! + +So, if you were hesitating to pay for the tool as a subscription, you can now **self-host it and use it for free** as per your requirements. + +### 💡 What is Sidekick? + +![Meet Sidekick , Your Brand New Live Application Debugger 🔥][2] + +[Sidekick][3] is a real-time application debugger. + +You no longer need to recreate production environments on your local machine, Sidekick lets you debug as they're running. It tries to give you the same kind of perks that you get when you debug in your local environment. + +It offers a range of features that lets you send the collected data to third-party apps like Slack, and use Sidekick plugin with some of your favorite IDEs including Visual Studio Code or IntelliJ IDEA. + +You can filter out relevant data to quickly debug issues by using its data collection feature. + +With the insights provided to you, Sidekick helps you optimize cost, eliminate issues, and collaborate efficiently to keep your application running without hiccups. + +### 🚀 How to Get Started? + +For starters, you can head to its [official website][6] and try it out in the [sandbox environment][7]. + +If you want a managed platform to use Sidekick, you can opt in for the subscription plans that start at **$29** per month.To opt for **self-hosting**, you can use their official Docker image available or choose to build it yourself. + +You can find the source code and the instructions for it in its [GitHub page][8]. + +In either case, you should refer to its [official documentation][9]. + +[Sidekick GitHub][10] + +💬 *What do you think about Sidekick as a free and open-source live application debugger? Have you tried it before? Kindly let us know your thoughts in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/sidekick-open-source/ + +作者:[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/content/images/size/w1200/2022/08/sidekick-live-debugger-open-source.png +[2]: https://youtu.be/qy4Nu6CIeuM +[3]: https://www.runsidekick.com/ +[4]: https://itsfoss.com/install-visual-studio-code-ubuntu/ +[5]: https://itsfoss.com/install-visual-studio-code-ubuntu/ +[6]: https://www.runsidekick.com/ +[7]: https://app.runsidekick.com/sandbox +[8]: https://github.com/runsidekick/sidekick +[9]: https://docs.runsidekick.com/ +[10]: https://github.com/runsidekick/sidekick From a707e695060f20298cbba72d3c2db8d7b7802797 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:30:14 +0800 Subject: [PATCH 0938/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220829=204=20ways=20to=20use=20the=20Linux=20tar?= =?UTF-8?q?=20command.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...829 4 ways to use the Linux tar command.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/tech/20220829 4 ways to use the Linux tar command.md diff --git a/sources/tech/20220829 4 ways to use the Linux tar command.md b/sources/tech/20220829 4 ways to use the Linux tar command.md new file mode 100644 index 0000000000..0b5ebe3ae4 --- /dev/null +++ b/sources/tech/20220829 4 ways to use the Linux tar command.md @@ -0,0 +1,95 @@ +[#]: subject: "4 ways to use the Linux tar command" +[#]: via: "https://opensource.com/article/22/8/linux-tar-command" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 ways to use the Linux tar command +====== +How do you use the tar command? That's what I recently asked our community of writers. Here are some of their answers. + +When you have a lot of related files, it's sometimes easier to treat them as a single object rather than 3 or 20 or 100 unique files. There are fewer clicks involved, for instance, when you email *one* file compared to the mouse work required to email 30 separate files. This quandary was solved decades ago when programmers invented a way to create an *archive*, and so the `tar` command was born (the name stands for *tape archive* because back then, files were saved to magnetic tape.) Today `tar` remains a useful way to bundle files together, whether it's to compress them so they take up less space on your drive, to make it easier to deal with lots of files, or to logically group files together as a convenience. + +I asked Opensource.com authors how they used `tar`, and related tools like `zip` and `gzip`, in their daily work. Here's what they said. + +### Backups and logs + +I use `tar` and `zip` whenever I need to make a backup or archive of an entire directory tree. For example, delivering a set of files to a client, or just making a quick backup of my web root directory before I make a major change on the website. If I need to share with others, I create a ZIP archive with `zip -9r`, where `-9` uses best possible compression, and `-r` will recurse into subdirectories. For example, `zip -9r client-delivery.zip client-dir` makes a zip file of my work, which I can send to a client. + +If the backup is just for me, I probably use `tar` instead. When I use `tar`, I usually use `gzip` to compress, and I do it all on one command line with `tar czf`, where `c` will create a new archive file, `z` compresses it with `gzip`, and `f` sets the archive filename. For example, `tar czf web-backup.tar.gz html` creates a compressed backup of my `html` directory. + +I also have web applications that create log files. And to keep them from taking up too much space, I compress them using `gzip`. The `gzip` command is a great way to compress a *single file*. This can be a TAR archive file, or just any regular file like a log file. To make the gzipped file as small as possible, I compress the file with `gzip -9`, where `-9` uses the best possible compression. + +The great thing about using `gzip` to compress files is that I can use commands like `zcat` and `zless` to view them later, without having to uncompress them on the disk. So if I want to look at my log file from yesterday, I can use `zless yesterday.log.gz` and the `zless` command automatically uncompresses the data with `gunzip` and send it to the `less` viewer. Recently, I wanted to look at how many log entries I had per day, and I ran that with a `zcat` command like: + +``` +for f in *.log.gz; do echo -n "$f,"; zcat $f | wc -l; done +``` + +This generates a comma-separated list of log files and a line count, which I can easily import to a spreadsheet for analysis. + +**[—Jim Hall][2]** + +### Zcat + +I introduced the `zcat` command in my article [Getting started with the cat command][3]. Maybe this can act as a stimulus for further discussion of "in-place" compressed data analysis. + +**[—Alan Formy-Duval][4]** + +### Zless and lzop + +I love having `zless` to browse log files and archives. It really helps reduce the risk of leaving random old log files around that I haven't cleaned up. + +When dealing with compressed archives, `tar -zxf` and `tar -zcf` are awesome, but don't forget about `tar -j` for those bzip2 files, or even `tar -J` for the highly compressed xz files. + +If you're dealing with a platform with limited CPU resources, you could even consider a lower overhead solution like `lzop`. For example, on the source computer: + +``` +tar --lzop -cf - source_directory | nc destination-host 9999 +``` + +On the destination computer: + +``` +nc -l 9999 | tar --lzop -xf - +``` + +I've often used that to compress data between systems where we have bandwidth limitations and need a low resource option. + +**[—Steven Ellis][5]** + +### Ark + +I've found myself using the KDE application Ark lately. It's a GUI application, but it integrates so well with the Dolphin file manager that I've gotten into the habit of just updating files straight into an archive without even bothering to unarchive the whole thing. Of course, you can do the same thing with the `tar` command, but if you're browsing through files in Dolphin anyway, Ark makes it quick and easy to interact with an archive without interrupting your current workflow. + +![Ark][6] + +Image by: (Seth Kenlon, CC BY-SA 4.0) + +Archives used to feel a little like a forbidden vault to me. Once I put files into an archive, they were as good as forgotten because it just isn't always convenient to interact with an archive. But Ark lets you preview files without uncompressing them (technically they're being uncompressed, but it doesn't "feel" like they are because it all happens in place), remove a file from an archive, update files, rename files, and a lot more. It's a really nice and dynamic way to interact with archives, which encourages me to use them more often. + +**[—Seth Kenlon][7]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/linux-tar-command + +作者:[AmyJune Hineline][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/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/collab-team-pair-programming-code-keyboard2.png +[2]: https://opensource.com/users/jim-hall +[3]: https://opensource.com/Getting%20Started%20with%20the%20Cat%20Command +[4]: https://opensource.com/users/alanfdoss +[5]: https://opensource.com/opensource.com/users/steven-ellis +[6]: https://opensource.com/sites/default/files/2022-08/ark.webp +[7]: https://opensource.com/users/seth From cce168a647be30f229d846d8d06b5bf402ab54bb Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:31:12 +0800 Subject: [PATCH 0939/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220829=20Clean=20up=20unwanted=20files=20in=20your?= =?UTF-8?q?=20music=20directory=20using=20Groovy.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...es in your music directory using Groovy.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md diff --git a/sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md b/sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md new file mode 100644 index 0000000000..1b503e8b77 --- /dev/null +++ b/sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md @@ -0,0 +1,118 @@ +[#]: subject: "Clean up unwanted files in your music directory using Groovy" +[#]: via: "https://opensource.com/article/22/8/remove-files-music-directory-groovy" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Clean up unwanted files in your music directory using Groovy +====== +In this demonstration, I facilitate removing unwanted files in the album directories. + +In this series, I'm developing several scripts to help in cleaning up my music collection. In the last article, we used the framework created for analyzing the directory and sub-directories of music files, checking to make sure each album has a `cover.jpg` file and recording any other files that aren't FLAC, MP3, or OGG. + +I uncovered a few files that can obviously be deleted—I see the odd `foo` lying around—and a bunch of PDFs, PNGs, and JPGs that are album art. With that in mind, and thinking about the cruft removal task, I offer an improved script that uses a Groovy map to record file names and counts of their occurrences and print that in CSV format. + +### Get started analyzing with Groovy + +If you haven't already, read the first three articles of this series before continuing: + +* [How I analyze my music directory with Groovy][2] +* [My favorite open source library for analyzing music files][3] +* [How I use Groovy to analyze album art in my music directory][4] + +They'll ensure you understand the intended structure of my music directory, the framework created in that article, and how to pick up FLAC, MP3, and OGG files. In this article, I facilitate removing unwanted files in the album directories. + +### The framework and the album files analysis bits + +Start with the code. As before, I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" that I typically leave for myself: + +``` +1        // Define the music libary directory +2        // def musicLibraryDirName = '/var/lib/mpd/music' +3        // Define the file name accumulation map +4        def fileNameCounts = [:] +5        // Print the CSV file header +6        println "filename|count" +7        // Iterate over each directory in the music libary directory +8        // These are assumed to be artist directories +9        new File(musicLibraryDirName).eachDir { artistDir -> +10            // Iterate over each directory in the artist directory +11            // These are assumed to be album directories +12            artistDir.eachDir { albumDir -> +13                // Iterate over each file in the album directory +14                // These are assumed to be content or related +15                // (cover.jpg, PDFs with liner notes etc) +16                albumDir.eachFile { contentFile -> +17                    // Analyze the file +18                    if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) { +19                        // nothing to do here +20                    } else if (contentFile.name == 'cover.jpg') { +21                        // don't need to do anything with cover.jpg +22                    } else { +23                        def fn = contentFile.name +24                        if (contentFile.isDirectory()) +25                            fn += '/' +26                        fileNameCounts[fn] = fileNameCounts.containsKey(fn) ?  fileNameCounts[fn] + 1 : 1 +27                    } +28                } +29            } +30        } +31        // Print the file name counts +32        fileNameCounts.each { key, value -> +33            println "$key|$value" +34        } +``` + +This is a pretty straightforward set of modifications to the original framework. + +Lines 3-4 define `fileNameCount`, a map for recording file name counts. + +Lines 17-27 analyze the file names. I avoid any files ending in `.flac`, `.mp3` or `.ogg` as well as `cover.jpg` files. + +Lines 23-26 record file names (as keys to `fileNameCounts` ) and counts (as values). If the file is actually a directory, I append a `/` to help deal with it in the removal process. Note in line 26 that Groovy maps, like Java maps, need to be checked for the presence of the key before incrementing the value, unlike for example the [awk programming language][5]. + +That's it! + +I run this as follows: + +``` +$ groovy TagAnalyzer4.groovy > tagAnalysis4.csv +``` + +Then I load the resulting CSV into a LibreOffice spreadsheet by navigating to the **Sheet** menu and selecting **Insert sheet from file**. I set the delimiter character to `&$124;`. + +![Image of a screenshot of LibreOffice Calc tht shows tagAnalysis][6] + +Image by: (Chris Hermansen, CC BY-SA 4.0) + +I've sorted this in decreasing order of the column **count** to emphasize repeat offenders. Note as well on lines 17-20 a bunch of M3U files that refer to the name of the album, probably created by some well-intentioned ripping program. I also see, further down (not shown), files like `fix` and `fixtags.sh`, evidence of prior efforts to clean up some problem and leaving other cruft lying around in the process. I use the `find` command line utility to get rid of some of these files, along the lines of: + +``` +$ find . \( -name \*.m3u -o -name tags.txt -o -name foo -o -name .DS_Store \ +-o -name fix -o -name fixtags.sh \) -exec rm {} \; +``` + +I suppose I could have used another Groovy script to do that as well. Maybe next time. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/remove-files-music-directory-groovy + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/music-column-osdc-lead.png +[2]: https://opensource.com/article/22/8/groovy-script-java-music +[3]: https://opensource.com/article/22/8/analyze-music-files-jaudiotagger +[4]: https://opensource.com/article/22/8/groovy-album-music-directory +[5]: https://opensource.com/article/19/10/intro-awk +[6]: https://opensource.com/sites/default/files/2022-08/Screenshot%20of%20LibreOffice%20Calc%20showing%20some%20of%20tagAnalysis.png From 27772998d55aef38a5449e7b1ca27ec157181f72 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:32:34 +0800 Subject: [PATCH 0940/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220830=20Share=20screens=20on=20Linux=20with=20GNO?= =?UTF-8?q?ME=20Connections.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...screens on Linux with GNOME Connections.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 sources/tech/20220830 Share screens on Linux with GNOME Connections.md diff --git a/sources/tech/20220830 Share screens on Linux with GNOME Connections.md b/sources/tech/20220830 Share screens on Linux with GNOME Connections.md new file mode 100644 index 0000000000..e32ce09ef2 --- /dev/null +++ b/sources/tech/20220830 Share screens on Linux with GNOME Connections.md @@ -0,0 +1,138 @@ +[#]: subject: "Share screens on Linux with GNOME Connections" +[#]: via: "https://opensource.com/article/22/8/share-screens-linux-gnome-connections" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Share screens on Linux with GNOME Connections +====== +Discover the power of VNC for screen sharing on Linux. + +When someone needs to share their screen with you, or you need to share your screen with someone else, you have several options to choose from. Video conferencing software, like the open source [Jitsi][2] web app, and while we call that "screen sharing," it's really *presenting*. You're presenting your screen to others, but they can't interact with it. Sometimes you actually want to share your screen and your mouse cursor with a trusted friend or colleague, and the tool for that is VNC (Virtual Network Computing), and it's built into your Linux desktop. + +In any screen sharing scenario, there are two computers and possibly two users. For that reason, this article has two parts. The first part is for the person setting up their computer to *accept* screen sharing requests, and the second part is for the person trying to connect to *someone else's* screen. + +### Share my screen on Linux + +If you're reading this section, you're the person who needs technical help from a friend, and you want to allow your friend to connect to your screen. You need to configure your desktop to allow screen sharing. + +On the GNOME desktop, open the **Settings** application from the **Activities** menu. In the **Settings** window, click on **Sharing**. In the **Sharing** window, click on **Screen Sharing**. + +In the **Screen Sharing** window that appears, you have two choices. + +You can set a password so the person connecting to your screen must enter a password to connect. This is convenient when you don't expect to be around the computer when your friend plans on viewing your screen. + +You can require a notification so that when someone attempts to connect, you're prompted to let them in (or not.) + +![GNOME screen sharing settings][3] + +If you're on the [KDE Plasma Desktop][4], then the application to configure screer sharing is called **krfb** (it stands for "Remote Frame Buffer", the protocol used by VNC). It's the exact same concept, just with a different layout. + +![KDE screen sharing][5] + +### Firewall + +Normally, your computer's internal firewall keeps people out of your computer. It does that by indiscriminately blocking incoming all connections. In this case, though, you want to permit one kind of traffic, so you need to open a port in your firewall. + +On Fedora, CentOS, Mageia, and many other Linux distributions, you have a firewall whether you know it or not. You may not yet have an app to help you configure your firewall, though. To install the default firewall configuration application, launch GNOME **Software** and search for *firewall*. + +Once it's installed, launch the Firewall configuration application and scroll through the (very long) list of services to find and enable **vnc-server**. + +![Firewalld configuration][6] + +After adding `vnc-server`, open the **Options** menu and select **Runtime to permanent** so your new rule persists even after you reboot. + +On Debian, Ubuntu, Linux Mint, and others, you may be running a firewall called **ufw**, so install **gufw** instead. In **gufw**, click the plus (**+**) icon at the bottom of the **Rules** tab to add a new rule. In the **Add a new firewall rure** window that appears, search for `vnc` and click the **Add** button. + +![ufw configuration][7] + +Your computer is now configured to accept VNC requests. You can skip down to the [troubleshooting] section. + +### Viewing a shared screen + +If you're reading this section, you're the person providing technical help from afar. You need to connect to a friend or colleague's computer, view their screen, and even control their mouse and keyboard. There are many applications for that, including **TigerVNC**, KDE's **krdc**, and GNOME **Connections**. + +### GNOME Connections + +On your local computer, install the GNOME **Connections** application from GNOME **Software**, or using your package manager: + +``` +$ sudo dnf install gnome-connections +``` + +In GNOME **Connections**, click the plus (**+**) icon in the top left to add a destination host. Select the VNC protocol, and enter the user name and host or IP address you want to connect to, and then click the **Connect** button. + +![GNOME Connections][8] + +If the user you're connecting to has had to create a new port for the purposes of port forwarding, then you must append the non-default port to the address. For instance, say your target user has created port 59001 to accept VNC traffic, and their home router address is 93.184.216.34. In this case, you enter `username@93.184.216.34:59001` (where `username` is the user's actual user name.) + +If the user of the remote system has required a password for VNC, then you're prompted for a password before the connection is made. Otherwise, the user on the remote machine receives an alert asking whether they want to allow you to share their screen. As long as they accept, the connection is made and you can view and even control the mouse and keyboard of the remote host. + +### Troubleshoooting screen sharing on Linux + +Outside of the work environment, it's common that the user wanting to share their screen and the person who needs to see it are on different networks. You're probably at home, with a router that connects you to the Internet (it's the box you get from your ISP when you pay your Internet bill). Your router, whether you realize it or not, is designed to keep unwanted visitors out. That's normally very good, but in this one special case, you want to let someone trusted through so they can connect to your screen. + +To let someone into your network, you have to configure your router to allow traffic at a specific "port" (like a ship port, but for packets of data instead of cargo), and then configure that traffic to get forwarded on to your personal computer. + +Unfortunately, there's no *single* way that this is done. Every router manufacturer does it a little differently. That means I can't guide you through the exact steps required, because I don't know what router you have, but I can tell you what information you need up front, and what to look for once you're poking around your router. + +#### 1. Get your local IP address + +You need to know your computer's network IP address. To get that, open GNOME **Settings** and click on **Wi-Fi** in the left column (or **Network** if you're on a wired connection.) In the **Wi-Fi** panel, click the gear icon and find **IPv4 Adress** in the **Details** window that appears. A local IP address starts with 192.168 or 10. + +For example, my network IP address is 10.0.1.2. Write down your notwork IP address for later. + +#### 2. Get your public IP address + +Click this link to obtain your public IP address: [http://ifconfig.me][9] + +For example, my public IP address is 93.184.216.34 Write down your public IP address for later. + +#### 3. Configure your router + +Router interfaces differ from manufacturer to manufacturer, but the idea is the same regardless of what brand of router you have in your home. First, log in to your router. The router's address and login information is often printed on the router itself, or in its documentation. I own a TP-Link GX90 router, and I log in to it by pointing my web browser to 10.0.1.1, but your router might be 192.168.0.1 or some other address. + +My router calls port forwarding "Virtual servers," which is a category found in the router's **NAT forwarding** tab. = Other routers may just call it **Port forwarding** or **Firewall** or even **Applications**. It may take a little clicking around to find the right category, or you may need to spend some time studying your router's documentation. + +When you find the port forwarding setting (whatever it might be titled in your router), you need to add a new rule that identifies an external port (I use 59001) and sends traffic that arrives at it to an internal one (5900 is the standard VNC port.) + +In step 1, you obtained your network IP address. Use it as the destination for traffic coming to port 59001 of your router. Here's an example of what my router configuration looks like, but yours is almost sure to be different: + +![router configuration][10] + +This configuration sends traffic arriving at external port 59001 to 10.0.1.2 at port 5900, which is precisely what VNC requires. + +Now you can tell the friend you're trying to share your screen with to enter your *public* IP address (in this example, that's 93.184.216.34) and port 59001. + +### Linux screen sharing and trust + +Only share control of your screen with someone you trust. VNC can be complex to setup because there are security and privacy concerns around giving someone other than yourself access to you computer. However, once you've got it set up, you have instant and easy access to sharing your screen when you want to share something cool you're working on, or get help with something that's been confusing you. + +Image by: (Seth Kenlon, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/share-screens-linux-gnome-connections + +作者:[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/chat_video_conference_talk_team.png +[2]: https://opensource.com/article/20/5/open-source-video-conferencing +[3]: https://opensource.com/sites/default/files/2022-08/Screenshot%20from%202022-08-11%2019-47-19.png +[4]: https://opensource.com/article/22/2/screen-share-linux-kde +[5]: https://opensource.com/sites/default/files/2022-08/kde-desktop-sharing.webp +[6]: https://opensource.com/sites/default/files/2022-08/Screenshot%20from%202022-08-11%2020-09-19.png +[7]: https://opensource.com/sites/default/files/2022-08/gufw-vnc.png +[8]: https://opensource.com/sites/default/files/2022-08/Screenshot%20from%202022-08-12%2005-11-10.png +[9]: http://ifconfig.me +[10]: https://opensource.com/sites/default/files/2022-08/router-port-forward.webp From 54702c6e89823ec75b879397ff68c5042166b4cc Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:34:42 +0800 Subject: [PATCH 0941/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220830=20Clean=20up=20music=20tags=20with=20a=20Gr?= =?UTF-8?q?oovy=20script.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lean up music tags with a Groovy script.md | 388 ++++++++++++++++++ 1 file changed, 388 insertions(+) create mode 100644 sources/tech/20220830 Clean up music tags with a Groovy script.md diff --git a/sources/tech/20220830 Clean up music tags with a Groovy script.md b/sources/tech/20220830 Clean up music tags with a Groovy script.md new file mode 100644 index 0000000000..d2c6f2f954 --- /dev/null +++ b/sources/tech/20220830 Clean up music tags with a Groovy script.md @@ -0,0 +1,388 @@ +[#]: subject: "Clean up music tags with a Groovy script" +[#]: via: "https://opensource.com/article/22/8/groovy-script-music-tags" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Clean up music tags with a Groovy script +====== +I demonstrate a Groovy script to clean up the motley assembly of tag fields. + +Lately, I've been looking at how Groovy streamlines Java. In this series, I'm developing several scripts to help in cleaning up my music collection. In my last article, I used the framework developed previously to create a list of unique file names and counts of occurrences of those file names in the music collection directory. I then used the Linux `find` command to get rid of files I didn't want. + +In this article, I demonstrate a Groovy script to clean up the motley assembly of tag fields. + +WARNING: This script alters music tags, so it is vital that you make a backup of the music collection you test your code on. + +### Back to the problem + +If you haven't read the previous articles is this series, do that now before continuing so you understand the intended structure of the music directory, the framework I've created, and how to detect and use FLAC, MP3, and OGG files. + +* [How I analyze my music directory with Groovy][2] +* [My favorite open source library for analyzing music files][3] +* [How I use Groovy to analyze album art in my music directory][4] +* [Clean up unwanted files in your music directory using Groovy][5] + +### Vorbis and ID3 tags + +I don't have many MP3 music files. Generally, I prefer to use FLAC. But sometimes only MP3 versions are available, or a free MP3 download comes with a vinyl purchase. So in this script, I have to be able to handle both. One thing I've learned as I have become familiar with [JAudiotagger][6] is what ID3 tags (used by MP3) look like, and I discovered that some of those "unwanted" field tag IDs I uncovered in part 2 of this series are actually very useful. + +Now it's time to use this framework to get a list of all the tag field IDs in a music collection, with their counts, to begin deciding what belongs and what doesn't: + +``` +1        @Grab('net.jthink:jaudiotagger:3.0.1') +2        import org.jaudiotagger.audio.* +3        import org.jaudiotagger.tag.* +4        def logger = java.util.logging.Logger.getLogger('org.jaudiotagger'); +5        logger.setLevel(java.util.logging.Level.OFF); +6        // Define the music library directory +7        def musicLibraryDirName = '/var/lib/mpd/music' +8        // Define the tag field id accumulation map +9        def tagFieldIdCounts = [:] +10        // Print the CSV file header +11        println "tagFieldId|count" +12        // Iterate over each directory in the music libary directory +13        // These are assumed to be artist directories +14        new File(musicLibraryDirName).eachDir { artistDir -> +15            // Iterate over each directory in the artist directory +16            // These are assumed to be album directories +17            artistDir.eachDir { albumDir -> +18                // Iterate over each file in the album directory +19                // These are assumed to be content or related +20                // (cover.jpg, PDFs with liner notes etc) +21                albumDir.eachFile { contentFile -> +22                    // Analyze the file and print the analysis +23                    if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) { +24                        def af = AudioFileIO.read(contentFile) +25                        af.tag.fields.each { tagField -> +26                            tagFieldIdCounts[tagField.id] = tagFieldIdCounts.containsKey(tagField.id) ? tagFieldIdCounts[tagField.id] + 1 : 1 +27                        } +28                    } +29                } +30            } +31        } +32        tagFieldIdCounts.each { key, value -> +33            println "$key|$value" +34        } +``` + +Lines 1-7 originally appeared in part 2 of this series. + +Lines 8-9 define a map for accumulating tag field IDs and counts of occurrences. + +Lines 10-21 also appeared in previous articles. They get down to the level of the individual content files. + +Lines 23-28 ensures that the files being used are FLAC, MP3, or OGG. Line 23 uses a Groovy match operator `==~` with a slashy regular expression to filter out wanted files. + +Line 24 uses `org.jaudiotagger.audio.AudioFileIO.read()` to get the tag body from the content file. + +Lines 25-27 use `org.jaudiotagger.tag.Tag.getFields()` to get all the `TagField` instances in the tag body and the Groovy `each()` method to iterate over that list of instances. + +Line 27 accumulates the count of each `tagField.id` into the `tagFieldIdCounts` map. + +Finally, lines 32-24 iterate over the `tagFieldIdCounts` map printing out the keys (the tag field IDs found) and the values (the count of occurrences of each tag field ID). + +I run this script as follows: + +``` +$ groovy TagAnalyzer5b.groovy > tagAnalysis5b.csv +``` + +Then I load the results into a [LibreOffice][7] or [OnlyOffice][8] spreadsheet. In my case, this script takes quite a long time to run (several minutes) and the loaded data, sorted in descending order of the second column (count) looks like this: + +![Image of a screenshot of the first few row of tagAnalysis in LibreOffic Calc][9] + +Image by: (Chris Hermansen, CC BY-SA 4.0) + +On row 2, you can see that there are 8,696 occurrences of the TITLE field tag ID, which is the ID that FLAC files (and Vorbis, generally) uses for a song title. Down on row 28, you also see 348 occurrences of the TIT2 field tag ID, which is the ID3 tag field that contains the "actual" name of the song. At this point, it's worth going away to look at [the JavaDoc][10] for `org.jaudiotagger.tag.ide.framebody.FrameBodyTIT2` to learn more about this tag and the way in which JAudiotagger recognizes it. There, you also see the mechanisms to handle other ID3 tag fields. + +In that list of field tag IDs, there are lots that I'm not interested in and that could affect the ability of various music players to display my music collection in what I consider to be a reasonable order. + +### The org.jaudiotagger.tag.Tag interface + +I'm going to take a moment to explore the way JAudiotagger provides a generic mechanism to access tag fields. This mechanism is described in [the JavaDocs][11] for `org.jaudiotagger.tag.Tag`. There are two methods that would help clean up the tag field situation: + +``` +void setField(FieldKey genericKey,String value) +``` + +This is used to set the value for a particular tag field. + +This line is used to delete all instances of a particular tag field (turns out some tag fields in some tagging schemes permit multiple occurrences). + +``` +void deleteField(FieldKey fieldKey) +``` + +However, this particular `deleteField()` method requires us to supply a `FieldKey` value, and as I have discovered, not all field key IDs in my music collection correspond to a known `FieldKey` value. + +Looking around the JavaDocs, I see there's a `FlacTag` which "uses Vorbis Comment for most of its metadata," and declares its tag field to be of type `VorbisCommentTag`. + +`VorbisCommentTag` itself extends `org.jaudiotagger.audio.generic.AbstractTag`, which offers: + +``` +protected void deleteField(String key) +``` + +As it turns out, this is accessible from the tag instance returned by `AudioFileIO.read(f).getTag()`, at least for FLAC and MP3 tag bodies. + +In theory, it should be possible to do this: + +1. Get the tag body using +``` +def af = AudioFileIO.read(contentFile) +def tagBody = af.tag +``` +2. Get the values of the (known) tag fields I want using: +``` +def album = tagBody.getFirst(FieldKey.ALBUM) +def artist = tagBody.getFirst(FieldKey.ARTIST) +// etc +``` +3. Delete all tag fields (both wanted and unwanted) using: +``` +def originalTagFieldIdList = tagBody.fields.collect { tagField -> + tagField.id +} +originalTagFieldIdList.each { tagFieldId -> + tagBody.deleteField(tagFieldId) +} +``` +4. Put only the desired tag fields back: +``` +tagBody.setField(FieldKey.ALBUM, album) +tagBody.setField(FieldKey.ARTIST, artist) +// etc +``` + +Of course there are few wrinkles here. + +First, notice the use of the `originalTagFieldIdList`. I can't use `each()` to iterate over the iterator returned by `tagBody.getFields()` at the same time I modify those fields; so I get the tag field IDs into a list using `collect()`, then iterate over that list of tag field IDs to do the deletions. + +Second, not all files are going to have all the tag fields I want. For example, some files might not have `ALBUM_SORT_ORDER` defined, and so on. I might not wish to write those tag fields in with empty values. Additionally, I can probably safely default some fields. For example, if `ALBUM_ARTIST` isn't defined, I can set it to ARTIST. + +Third, and for me most obscure, is that Vorbis Comment tags always include a VENDOR field tag ID; if I try to delete it, I end up simply unsetting the value. Huh. + +### Trying it all out + +Considering these lessons, I decided to create a test music directory that contains just a few artists and their albums (because I don't want to wipe out my music collection.) + +WARNING: Because this script will alter music tags it is very important to have a backup of the music collection so that when I discover I have deleted an essential tag, I can recover the backup, modify the script and rerun it. + +Here's the script: + +``` +1        @Grab('net.jthink:jaudiotagger:3.0.1') +2        import org.jaudiotagger.audio.* +3        import org.jaudiotagger.tag.* +4        def logger = java.util.logging.Logger.getLogger('org.jaudiotagger');5        logger.setLevel(java.util.logging.Level.OFF); +6        // Define the music library directory +7        def musicLibraryDirName = '/work/Test/Music' +8        // Print the CSV file header +9        println "artistDir|albumDir|contentFile|tagField.id|tagField.toString()" +10        // Iterate over each directory in the music libary directory +11        // These are assumed to be artist directories +12        new File(musicLibraryDirName).eachDir { artistDir -> +13    // Iterate over each directory in the artist directory +14    // These are assumed o be album directories +15    artistDir.eachDir { albumDir -> +16    // Iterate over each file in the album directory +17    // These are assumed to be content or related18    // (cover.jpg, PDFs with liner notes etc) +19    albumDir.eachFile { contentFile -> +20        // Analyze the file and print the analysis +21        if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) { +22            def af = AudioFileIO.read(contentFile) +23            def tagBody = af.tag +24            def album = tagBody.getFirst(FieldKey.ALBUM) +25            def albumArtist = tagBody.getFirst(FieldKey.ALBUM_ARTIST) +26            def albumArtistSort = tagBody.getFirst(FieldKey.ALBUM_ARTIST_SORT) +27            def artist = tagBody.getFirst(FieldKey.ARTIST) +28            def artistSort = tagBody.getFirst(FieldKey.ARTIST_SORT) +29            def composer = tagBody.getFirst(FieldKey.COMPOSER) +30            def composerSort = tagBody.getFirst(FieldKey.COMPOSER_SORT) +31            def genre = tagBody.getFirst(FieldKey.GENRE) +32            def title = tagBody.getFirst(FieldKey.TITLE) +33            def titleSort = tagBody.getFirst(FieldKey.TITLE_SORT) +34            def track = tagBody.getFirst(FieldKey.TRACK) +35            def trackTotal = tagBody.getFirst(FieldKey.TRACK_TOTAL) +36            def year = tagBody.getFirst(FieldKey.YEAR) +37            if (!albumArtist) albumArtist = artist +38            if (!albumArtistSort) albumArtistSort = albumArtist +39            if (!artistSort) artistSort = artist +40            if (!composerSort) composerSort = composer +41            if (!titleSort) titleSort = title +42            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ALBUM|${album}" +43            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ALBUM_ARTIST|${albumArtist}" +44            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ALBUM_ARTIST_SORT|${albumArtistSort}" +45            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ARTIST|${artist}" +46            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ARTIST_SORT|${artistSort}" +47            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.COMPOSER|${composer}" +48            println "${artistDir.name}|${albumDir.name}|${contentFile.name} +|FieldKey.COMPOSER_SORT|${composerSort}" +49            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.GENRE|${genre}" +50            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TITLE|${title}" +51            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TITLE_SORT|${titleSort}" +52            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TRACK|${track}" +53            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TRACK_TOTAL|${trackTotal}" +54            println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.YEAR|${year}" +55            def originalTagIdList = tagBody.fields.collect { +56                tagField -> tagField.id +57            } +58            originalTagIdList.each { tagFieldId -> +59                println "${artistDir.name}|${albumDir.name}|${contentFile.name}|${tagFieldId}|XXX" +60                if (tagFieldId != 'VENDOR') +61                    tagBody.deleteField(tagFieldId) +62            } +63            if (album) tagBody.setField(FieldKey.ALBUM, album) +64            if (albumArtist) tagBody.setField(FieldKey.ALBUM_ARTIST, albumArtist) +65            if (albumArtistSort) tagBody.setField(FieldKey.ALBUM_ARTIST_SORT, albumArtistSort) +66            if (artist) tagBody.setField(FieldKey.ARTIST, artist) +67            if (artistSort) tagBody.setField(FieldKey.ARTIST_SORT, artistSort) +68            if (composer) tagBody.setField(FieldKey.COMPOSER, composer) +69            if (composerSort) tagBody.setField(FieldKey.COMPOSER_SORT, composerSort) +70            if (genre) tagBody.setField(FieldKey.GENRE, genre) +71            if (title) tagBody.setField(FieldKey.TITLE, title) +72            if (titleSort) tagBody.setField(FieldKey.TITLE_SORT, titleSort) +73            if (track) tagBody.setField(FieldKey.TRACK, track) +74            if (trackTotal) tagBody.setField(FieldKey.TRACK_TOTAL, trackTotal) +75            if (year) tagBody.setField(FieldKey.YEAR, year) +76            af.commit()77        } +78      } +79    } +80  } +``` + +Lines 1-21 are already familiar. Note that my music directory defined in line 7 refers to a test directory though! + +Lines 22-23 get the tag body. + +Lines 24-36 get the fields of interest to me (but maybe not the fields of interest to you, so feel free to adjust for your own requirements!) + +Lines 37-41 adjust some values for missing ALBUM_ARTIST and sort order. + +Lines 42-54 print out each tag field key and adjusted value for posterity. + +Lines 55-57 get the list of all tag field IDs. + +Lines 58-62 prints out each tag field id *and deletes it*, with the exception of the VENDOR tag field ID. + +Lines 63-75 set the desired tag field values using the known tag field keys. + +Finally, line 76 *commits the changes to the file*. + +The script produces output that can be imported into a spreadsheet. + +I'm just going to mention one more time that this script alters music tags! It is very important to have a backup of the music collection so that when you discover you've deleted an essential tag, or somehow otherwise trashed your music files, you can recover the backup, modify the script, and rerun it. + +### Check the results with this Groovy script + +I have a handy little Groovy script to check the results: + +``` +1        @Grab('net.jthink:jaudiotagger:3.0.1') +2        import org.jaudiotagger.audio.* +3        import org.jaudiotagger.tag.* +  +4        def logger = java.util.logging.Logger.getLogger('org.jaudiotagger'); +5        logger.setLevel(java.util.logging.Level.OFF); +  +6        // Define the music libary directory +  +7        def musicLibraryDirName = '/work/Test/Music' +  +8        // Print the CSV file header +  +9        println "artistDir|albumDir|tagField.id|tagField.toString()" +  +10        // Iterate over each directory in the music libary directory +11        // These are assumed to be artist directories +  +12        new File(musicLibraryDirName).eachDir { artistDir -> +  +13            // Iterate over each directory in the artist directory +14            // These are assumed to be album directories +  +15            artistDir.eachDir { albumDir -> +  +16                // Iterate over each file in the album directory +17                // These are assumed to be content or related +18                // (cover.jpg, PDFs with liner notes etc) +  +19                albumDir.eachFile { contentFile -> +  +20                    // Analyze the file and print the analysis +  +21                    if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) { +22                        def af = AudioFileIO.read(contentFile) +23                        af.tag.fields.each { tagField -> +24                            println "${artistDir.name}|${albumDir.name}|${tagField.id}|${tagField.toString()}" +25                        } +26                    } +  +27                } +28            } +29        } +``` + +This should look pretty familiar by now! + +Running it produces results like this before running the fixer script in the previous section: + +``` +St Germain|Tourist|VENDOR|reference libFLAC 1.1.4 20070213 +St Germain|Tourist|TITLE|Land Of... +St Germain|Tourist|ARTIST|St Germain +St Germain|Tourist|ALBUM|Tourist +St Germain|Tourist|TRACKNUMBER|04 +St Germain|Tourist|TRACKTOTAL|09 +St Germain|Tourist|GENRE|Electronica +St Germain|Tourist|DISCID|730e0809 +St Germain|Tourist|MUSICBRAINZ_DISCID|jdWlcpnr5MSZE9H0eibpRfeZtt0- +St Germain|Tourist|MUSICBRAINZ_SORTNAME|St Germain +``` + +Once the fixer script is run, it produces results like this: + +``` +St Germain|Tourist|VENDOR|reference libFLAC 1.1.4 20070213 +St Germain|Tourist|ALBUM|Tourist +St Germain|Tourist|ALBUMARTIST|St Germain +St Germain|Tourist|ALBUMARTISTSORT|St Germain +St Germain|Tourist|ARTIST|St Germain +St Germain|Tourist|ARTISTSORT|St Germain +St Germain|Tourist|GENRE|Electronica +St Germain|Tourist|TITLE|Land Of... +St Germain|Tourist|TITLESORT|Land Of... +St Germain|Tourist|TRACKNUMBER|04 +St Germain|Tourist|TRACKTOTAL|09 +``` + +That's it! Now I just have to work up the nerve to run my fixer script on my full music library… + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/groovy-script-music-tags + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png +[2]: https://opensource.com/article/22/8/groovy-script-java-music +[3]: https://opensource.com/article/22/8/analyze-music-files-jaudiotagger +[4]: https://opensource.com/article/22/8/groovy-scripting-analyzing-music-directory-part-3 +[5]: https://opensource.com/article/22/8/remove-files-music-directory-groovy +[6]: http://jthink.net/jaudiotagger/index.jsp +[7]: https://opensource.com/article/21/9/libreoffice-tips +[8]: https://opensource.com/article/20/12/onlyoffice-docs +[9]: https://opensource.com/sites/default/files/2022-08/creenshot%20of%20first%20few%20rows%20of%20tagAnalysis5b.csv%20in%20LibreOffice%20Calc.png +[10]: http://www.jthink.net/jaudiotagger/javadoc/index.html +[11]: http://www.jthink.net/jaudiotagger/javadoc/index.html From dcd1e199e2e417ec2117b18301d891e5fdab1964 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:35:12 +0800 Subject: [PATCH 0942/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220829=20How=20to=20Setup=20EKS=20Cluster=20along?= =?UTF-8?q?=20with=20NLB=20on=20AWS.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Setup EKS Cluster along with NLB on AWS.md | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md diff --git a/sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md b/sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md new file mode 100644 index 0000000000..e5c7041c60 --- /dev/null +++ b/sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md @@ -0,0 +1,283 @@ +[#]: subject: "How to Setup EKS Cluster along with NLB on AWS" +[#]: via: "https://www.linuxtechi.com/how-to-setup-eks-cluster-nlb-on-aws/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Setup EKS Cluster along with NLB on AWS +====== +Are looking for an easy guide for setting up EKS cluster on AWS? + +The step-by-step guide on this page will show you how to setup EKS cluster along with NLB (Network Load Balancer) on AWS from the scratch. + +Amazon EKS is elastic Kubernetes service; it has basically two components control plane and worker nodes. Let’s deep dive into the steps + +### 1) Create VPC for EKS Cluster + +Login to your AWS console, create a VPC with two public and private subnets in two different availability zones. + +Also create Internet gateway,  nat gateway and add routes to public and private subnet’s route table respectively. + +Refer following for creating VPC, + +* [How to Configure your own VPC(Virtual Private Cloud) in AWS][1] + +In my case, I have created following VPC, subnets, internet & nat gateway and route tables. + +![VPC-for-EKS-Cluster][2] + +### 2) Install and Configure AWS CLI, eksctl and kubectl + +Create a virtual machine either on your on-premises or on AWS. Make sure internet connectivity is there on that virtual machine. In my case, I have created a Ubuntu 22.04 virtual machine. + +Login to the virtual machine and install AWS cli using the following steps, + +``` +$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" +$ unzip awscliv2.zip +$ sudo ./aws/install +``` + +Get you account’s access and secret key from AWS console. + +![AWS-Account-Access-Secret-Keys][3] + +Now, run following command to configure AWS CLI, + +``` +$ aws configure +``` + +It will prompt you to enter Access Key and Secret Key. + +![AWS-Cli-configure-Ubuntu-22-04][4] + +Once above command is executed successfully then it will create two files under .aws folder, + +* Config +* Credentials + +Run following command to test aws cli, + +``` +$ aws sts get-caller-identity +{ +    "UserId": "xxxxxxxxxxxx", +    "Account": "xxxxxxxxxx", +    "Arn": "arn:aws:iam::xxxxxxxxxxx:root" +} +$ +``` + +We will be using eksctl command line utility to configure Amazon EKS cluster, so run following set of commands to install it. + +``` +$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp +$ sudo mv /tmp/eksctl /usr/local/bin +$ eksctl version +0.109.0 +$ +``` + +Kubectl is also a command line tool which will allow us to interact with eks cluster. For it’s installation, run beneath commands one after the another + +``` +$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" +$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl +$ kubectl version --client +``` + +![kubectl-install-for-eks-ubuntu][5] + +Perfect, we are ready now to create EKS cluster using eksctl utility. + +Copy public and private subnet’s ids of your VPC from VPC console. We would be using these ids in cluster yaml file. + +![Subnet-Ids-VPC-Console-AWS][6] + +### 3) Create EKS Cluster with eksctl utility + +Create a cluster yaml file on your virtual machine with the following content, + +``` +$ vi demo-eks.yaml +apiVersion: eksctl.io/v1alpha5 +kind: ClusterConfig +metadata: +  name: demo-eks +  region: us-west-2 +vpc: +  subnets: +    private: +      us-west-2a: { id: subnet-077d8aa1452f14836 } +      us-west-2b: { id: subnet-0131b18ab955c0c85 } +    public: +      us-west-2a: { id: subnet-0331b5df019a333b5 } +      us-west-2b: { id: subnet-0f92db1ada42abde3 } + +nodeGroups: +  - name: ng-workers +    labels: { role: workers } +    instanceType: t2.micro +    desiredCapacity: 2 +    privateNetworking: true +    iam: +      withAddonPolicies: +        imageBuilder: true +    ssh: +      publicKeyPath: /home/linuxtechi/.ssh/id_rsa.pub +``` + +![eks-cluster-yaml-file][7] + +Here we are using public subnets for control plane and private subnets for worker nodes. It will also automatically create IAM roles and security group for control plane and worker nodes. + +Apart from this we are also using a node group named ‘ng-workers’ for worker nodes with desired capacity two and instance type as ‘t2.micro’. Moreover, we have mentioned ‘linuxtechi’ user’s public key so that we can ssh worker nodes. + +Note: Please change these parameters as per your setup. + +Run following eksctl command to initiate EKS cluster setup, + +``` +$ eksctl create cluster -f demo-eks.yaml +``` + +![eksctl-create-cluster-aws][8] + +Once the cluster is setup successfully, we will get the following output, + +![EKS-Cluster-Ready-Message-AWS][9] + +Great, output above confirms that EKS cluster is ready. Run following kubectl command to view status of worker nodes, + +``` +$ kubectl get nodes +``` + +![EKS-Cluster-Nodes-Kubectl-Command][10] + +Head back to AWS console, verify the EKS cluster status + +![EKS-Cluster-Status-AWS-Console][11] + +Now, let’s deploy ingress controller along with NLB so that application from this cluster is accessible from outside. + +### 4) Deploy Ingress Controller and NLB + + +We will be deploying nginx based ingress controller, download the following yaml file using wget command + +``` +$ wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/aws/deploy.yaml +``` + +Change the parameter ‘externalTrafficPolicy: Local’ to ‘externalTrafficPolicy: Cluster’ + +Note: This yaml file has the required entries of nginx ingress controller and AWS NLB. + +``` +$ sed  -i 's/externalTrafficPolicy: Local/externalTrafficPolicy: Cluster/g' deploy.yaml +``` + +Execute following kubectl command to deploy ingress controller and NLB, + +``` +$ kubectl create -f deploy.yaml +``` + +Output, + +![deploy-yaml-file-ingress-nlb-aws][12] + +To verify the status of ingress controller, run following commands, + +``` +$ kubectl get ns +$ kubectl get all -n ingress-nginx +``` + +Output, + +![Ingress-Controller-Status-AWS-EKS][13] + +Head back to AWS console and check NLB status which is created via deploy.yaml file. + +![NLB-for-EKS-AWS-Console][14] + +Perfect, above confirms that NLB has been setup properly for EKS cluster. + +### 5) Test EKS Cluster Installation + +To test eks cluster installation, let’s deploy a nginx based deployment, run + +``` +$ kubectl create deployment nginx-web --image=nginx --replicas=2 +``` + +Create the service for deployment, run + +``` +$ kubectl expose deployment nginx-web --name=nginx-web --type=LoadBalancer --port=80 --protocol=TCP +``` + +View Service status, + +``` +$ kubectl get svc nginx-web +``` + +Output of above commands would look like below: + +![Nginx-Based-Deployment-EKS-AWS][15] + +To access the application, copy the URL shown in service command, + +http://ad575eea69f5044f0ac8ac8d5f19b7bd-1003212167.us-west-2.elb.amazonaws.com + +![Nginx-Default-Page-deployment-eks-aws][16] + +Great, above nginx page confirms that we are able to access our nginx based deployment outside of our EKS cluster. + +Once you are done with all the testing and wants to remove the NLB and EKS cluster, run following commands, + +``` +$ kubectl delete -f deploy.yaml +$ eksctl delete cluster -f demo-eks.yaml +``` + +That’s all from this guide, I hope you are able to deploy EKS cluster on your AWS account. Kindly do post your queries and feedback in below comments section. + +Also Read: How to Create VPC Peering Across Two AWS Regions + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-setup-eks-cluster-nlb-on-aws/ + +作者:[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/how-to-configure-vpc-in-aws/ +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/08/VPC-for-EKS-Cluster.gif +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/08/AWS-Account-Access-Secret-Keys.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/08/AWS-Cli-configure-Ubuntu-22-04.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/08/kubectl-install-for-eks-ubuntu.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Subnet-Ids-VPC-Console-AWS.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/08/eks-cluster-yaml-file.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/08/eksctl-create-cluster-aws.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EKS-Cluster-Ready-Message-AWS.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EKS-Cluster-Nodes-Kubectl-Command.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EKS-Cluster-Status-AWS-Console.gif +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/08/deploy-yaml-file-ingress-nlb-aws.png +[13]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Ingress-Controller-Status-AWS-EKS.png +[14]: https://www.linuxtechi.com/wp-content/uploads/2022/08/NLB-for-EKS-AWS-Console.gif +[15]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Nginx-Based-Deployment-EKS-AWS.png +[16]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Nginx-Default-Page-deployment-eks-aws.png From cd25b16f11f7fc91587c3bdc237c52afa1795f3a Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:43:00 +0800 Subject: [PATCH 0943/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020211203=20Introduce=20the=20different=20Fedora=20Li?= =?UTF-8?q?nux=20editions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...uce the different Fedora Linux editions.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/tech/20211203 Introduce the different Fedora Linux editions.md diff --git a/sources/tech/20211203 Introduce the different Fedora Linux editions.md b/sources/tech/20211203 Introduce the different Fedora Linux editions.md new file mode 100644 index 0000000000..890347e245 --- /dev/null +++ b/sources/tech/20211203 Introduce the different Fedora Linux editions.md @@ -0,0 +1,82 @@ +[#]: subject: "Introduce the different Fedora Linux editions" +[#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/" +[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Introduce the different Fedora Linux editions +====== +![Introduce the differenct Fedora Linux editions][1] + +Photo by [Frédéric Perez][2] on [Unsplash][3] + +We have different preferences in using Fedora Linux. For example, there are some people who choose Fedora Linux because Fedora Workstation uses GNOME as its desktop environment by default. But there are also some people who want to use Fedora Linux but want to use a different desktop environment. Or there are also some people who use Fedora Linux with certain needs but don’t want to be bothered with system configuration and application installation. Or even some people want to install Fedora Linux freely according to their needs. Therefore Fedora Linux provides several editions according to your needs. This article will introduce the different Fedora Linux editions. + +### Fedora Official Editions + +We start with the official editions of Fedora Linux, namely Fedora Workstation, Fedora Server, and Fedora IoT. Fedora Workstation is the official edition of Fedora Linux that can be installed on laptops and desktop computers. This edition comes with GNOME as the default desktop environment and various standard applications so that Fedora Linux is ready for daily use. While Fedora Server is specifically for server computer purposes that provides installation of mailserver, DNS, etc. And the last one is Fedora IoT, which is for the purposes of the Internet of Things and Device Edge ecosystems. + +On the main page of the Fedora Project web page you can find two other editions – Fedora CoreOS and Fedora Silverblue. Fedora CoreOS is an operating system that is automatically updated and designed to run containerized workloads safely and at scale. While Fedora Silverblue is an immutable desktop operating system designed to support container-focused workflows. + +![Introduce the different Fedora Linux editions: Fedora Workstation][4] + +More information is available at this link: [https://getfedora.org/][5] + +### Fedora Spins: alternative desktops + +This edition of Fedora Linux is in great demand by those who are very concerned about the appearance of their desktop. Most people know that Fedora Linux only has GNOME as the default desktop environment. Even though there are several alternative desktop options if you really want to use a desktop environment other than GNOME. With Fedora Spins, you can immediately get your favorite desktop environment when installing Fedora Linux. You can choose from KDE Plasma, XFCE, LXQt, MATE, Cinnamon, LXDE, and SoaS. Moreover, for those who like tiling window managers, Fedora Linux provides Fedora i3 Spin with i3 as the default window manager which is accompanied by several standard applications. + +![Introduce the different Fedora Linux editions: Fedora Plasma][6] + +![Introduce the different Fedora Linux editions: Fedora Cinnamon][7] + +More information is available at this link: [https://spins.fedoraproject.org/][8] + +### Fedora Labs: functional bundles + +Fedora Labs is a collection of Fedora Linux packages that have been packaged according to specific needs. Therefore, the installation packages of these editions have provided the applications and the necessary content according to their functions. Fedora Labs provides a choice of packages such as Astronomy, Comp Neuro, Design Suite, Games, JAM, Python Classroom, Security Lab, Robotics Suite, and Scientific. If you want to use Fedora Linux for your design work, then Design Suite is the right choice for you. But if you like playing games, you can choose Games. + +![Introduce the different Fedora Linux editions: Fedora Design Suite][9] + +![Introduce the different Fedora Linux editions: Fedora Games][10] + +More information is available at this link: [https://labs.fedoraproject.org/][11] + +### Fedora Alt Downloads + +Fedora Alt Downloads is a collection of alternative Fedora Linux installers with a specific purpose, such as for testing or for specific architectures. Or there are also alternative formats such as network installer format or formatted for torrent downloads. Here you can find Network Installer, Torrent Downloads, Alternative Architectures, Cloud Base Images, Everything, Testing Images, and Rawhide. + +More information is available at this link: [https://alt.fedoraproject.org/][12] + +### Conclusion + +You have the freedom to choose the Fedora Linux edition that suits your preferences other than official editions. But if you want to get Fedora Linux with variety of desktop appearances, then Fedora Spins is for you. And you can choose Fedora Labs if you want Fedora Linux complete with applications and packages according to your needs. However, if you are an expert and want to install Fedora Linux more freely, you can browse alternative options at Fedora Alt Downloads. Hopefully this article can help you to choose the right Fedora Linux and please share your experience with Fedora Linux in the comments. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/ + +作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2021/11/FedoraMagz-FedoraEditions-Intro-816x345.png +[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://fedoramagazine.org/wp-content/uploads/2021/11/g-monitor-overview.png +[5]: https://getfedora.org/ +[6]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-kde-1024x640.jpg +[7]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-cinnamon-1024x576.jpg +[8]: https://spins.fedoraproject.org/ +[9]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Design-1024x792.png +[10]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Games-1024x792.png +[11]: https://labs.fedoraproject.org/ +[12]: https://alt.fedoraproject.org/ From b568a44267c917786fc77d30d60ba810c702a7ae Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 30 Aug 2022 20:43:39 +0800 Subject: [PATCH 0944/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220829=20Fedora=20Linux=20editions=20part=202-=20S?= =?UTF-8?q?pins.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...829 Fedora Linux editions part 2- Spins.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/tech/20220829 Fedora Linux editions part 2- Spins.md diff --git a/sources/tech/20220829 Fedora Linux editions part 2- Spins.md b/sources/tech/20220829 Fedora Linux editions part 2- Spins.md new file mode 100644 index 0000000000..d2ece3f6cb --- /dev/null +++ b/sources/tech/20220829 Fedora Linux editions part 2- Spins.md @@ -0,0 +1,123 @@ +[#]: subject: "Fedora Linux editions part 2: Spins" +[#]: via: "https://fedoramagazine.org/fedora-linux-editions-part-2-spins/" +[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora Linux editions part 2: Spins +====== +![Fedora Linux editions part 2 Spins][1] + +Photo by [Frédéric Perez][2] on [Unsplash][3] + +One of the nice things about using Linux is the wide choice of desktop environments. Fedora Linux official Worksation edition comes with GNOME as default desktop environment, but you can choose another desktop environment as default via Fedora Spins. This article will go into a little more detail about the Fedora Linux Spins. You can find an overview of all the Fedora Linux variants in my previous article [Introduce the different Fedora Linux editions][4]. + +### KDE Plasma Desktop + +This Fedora Linux comes with KDE Plasma as the default desktop environment. KDE Plasma is an elegant desktop environment that is very easy to customize. Therefore, you can freely and easily change the appearance of your desktop as you wish. You can customize your favorite themes, install the widgets you want, change icons, change fonts, customize panels according to your preferences, and install various extensions from the community. + +Fedora Linux KDE Plasma Desktop is installed with a variety of ready-to-use applications. You’re ready to go online with Firefox, Kontact, Telepathy, KTorrent, and KGet. LibreOffice, Okular, Dolphic, and Ark are ready to use for your office needs. Your multimedia needs will be met with several applications such as Elisa, Dragon Player, K3B, and GwenView. + +![Fedora KDE Plasma Desktop][5] + +More information is available at this link: [https://spins.fedoraproject.org/en/kde/][6] + +### XFCE Desktop + +This version is perfect for those who want a balance between ease of customizing appearance and performance. XFCE itself is made to be fast and light, but still has an attractive appearance. This desktop environment is becoming popular for those with older devices. + +Fedora Linux XFCE is installed with various applications that suit your daily needs. These applications are Firefox, Pidgin, Gnumeric, AbiWord, Ristretto, Parole, etc. Fedora Linux XFCE also already has a System Settings menu to make it easier for you to configure your Fedora Linux. + +![Fedora XFCE Desktop][7] + +More information is available at this link: [https://spins.fedoraproject.org/en/xfce/][8] + +### LXQT Desktop + +This spin comes with a lightweight Qt desktop environment, and focuses on modern classic desktops without slowing down the system. This version of Fedora Linux includes applications based on the Qt5 toolkit and is Breeze themed. You will be ready to carry out various daily activities with built-in applications, such as QupZilla, QTerminal, FeatherPad, qpdfview, Dragon Player, etc. + +![Fedora LXQt Desktop][9] + +More information is available at this link: [https://spins.fedoraproject.org/en/lxqt/][10] + +### MATE-Compiz Desktop + +Fedora Linux MATE Compiz Desktop is a combination of MATE and Compiz Fusion. MATE desktop allows this version of Fedora Linux to work optimally by prioritizing productivity and performance. At the same time Compiz Fusion provides a beautiful 3D look with Emerald and GTK + themes. This Fedora Linux is also equipped with various popular applications, such as Firefox, LibreOffice, Parole, FileZilla, etc. + +![Fedora Mate-Compiz Desktop][11] + +More information is available at this link: [https://spins.fedoraproject.org/en/mate-compiz/][12] + +### Cinnamon Desktop + +Because of its user-friendly interface, Fedora Linux Cinnamon Desktop is perfect for those who may be new to the Linux operating system. You can easily understand how to use this version of Fedora Linux. This spin has built-in applications that are ready to use for your daily needs, such as Firefox, Pidgin, GNOME Terminal, LibreOffice, Thunderbird, Shotwell, etc. You can use Cinnamon Settings to configure your operating system. + +![Fedora Cinnamon Desktop][13] + +More information is available at this link: [https://spins.fedoraproject.org/en/cinnamon/][14] + +### LXDE Desktop + +Fedora Linux LXDE Desktop has a desktop environment that performs fast but is designed to keep resource usage low. This spin is designed for low-spec hardware, such as netbooks, mobile devices, and older computers. Fedora Linux LXDE has lightweight and popular applications, such as Midori, AbiWord, Osmo, Sylpheed, etc. + +![Fedora LXDE Desktop][15] + +More information is available at this link: [https://spins.fedoraproject.org/en/lxde/][16] + +### SoaS Desktop + +SoaS stands for Sugar on a Stick. Fedora Linux Sugar Desktop is a learning platform for children, so it has a very simple interface that is easy for children to understand. The word “stick” in this context refers to a thumb drive or memory “stick”. This means this OS has a compact size and can be completely installed on a thumb drive. Schoolchildren can carry their OS on a thumb drive, so they can use it easily at home, school, library, and elsewhere. Fedora Linux SoaS has a variety of interesting learning applications for children, such as Browse, Get Books, Read, Turtle Blocks, Pippy, Paint, Write, Labyrinth, Physic, and FotoToon. + +![Fedora SOAS Desktop][17] + +More information is available at this link: [https://spins.fedoraproject.org/en/soas/][18] + +### i3 Tiling WM + +The i3 Tiling WM spin of Fedora Linux is a bit different from the others. This Fedora Linux spin does not use a desktop environment, but only uses a window manager. The window manager used is i3, which is a very popular tiling window manager among Linux users. Fedora i3 Spin is intended for those who focus on interacting using a keyboard rather than pointing devices, such as a mouse or touchpad. This spin of Fedora Linux is equipped with various applications, such as Firefox, NM Applet, brightlight, azote, htop, mousepad, and Thunar. + +![Fedora i3 Tiling WM][19] + +More information is available at this link: [https://spins.fedoraproject.org/en/i3/][20] + +### Conclusion + +Fedora Linux provides a large selection of desktop environments through Fedora Linux Spins. You can simply choose one of the Fedora Spins, and immediately enjoy Fedora Linux with the desktop environment of your choice along with its ready-to-use built-in applications. You can find complete information about Fedora Spins at [https://spins.fedoraproject.org/][21]. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/fedora-linux-editions-part-2-spins/ + +作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/FedoraMagz-FedoraEditions-2-Spins-816x345.png +[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/ +[5]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-kde.jpg +[6]: https://spins.fedoraproject.org/en/kde/ +[7]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-xfce.jpg +[8]: https://spins.fedoraproject.org/en/xfce/ +[9]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-lxqt.jpg +[10]: https://spins.fedoraproject.org/en/lxqt/ +[11]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-matecompiz.jpg +[12]: https://spins.fedoraproject.org/en/mate-compiz/ +[13]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-cinnamon.jpg +[14]: https://spins.fedoraproject.org/en/cinnamon/ +[15]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-lxde.jpg +[16]: https://spins.fedoraproject.org/en/lxde/ +[17]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-soas.jpg +[18]: https://spins.fedoraproject.org/en/soas/ +[19]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-i3.jpg +[20]: https://spins.fedoraproject.org/en/i3/ +[21]: https://spins.fedoraproject.org/ From 5e574565d475959b5172fd267775e65c0adeca02 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 31 Aug 2022 08:34:00 +0800 Subject: [PATCH 0945/3123] translated --- ...a 5.25 in Kubuntu 22.04 Jammy Jellyfish.md | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md index 85f500b007..f42ad16ce7 100644 --- a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md +++ b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md @@ -7,29 +7,29 @@ [#]: publisher: " " [#]: url: " " -How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish +如何在 Kubuntu 22.04 Jammy Jellyfish 中获取 KDE Plasma 5.25 ====== -The KDE developers now enabled the popular backports PPA with necessary updates with KDE Plasma 5.25 which you can install now in Kubuntu 22.04 Jammy Jellyfish. Here’s how. +KDE 开发人员现在启用了流行的反向移植 PPA,并对 KDE Plasma 5.25 进行了必要的更新,你现在可以将其安装在 Kubuntu 22.04 Jammy Jellyfish 中。下面是方法。 -KDE Plasma 5.25 released a few days back on June 14, 2022 with some stunning updates. With this release, you get the **dynamic accent colour**, revamped login avatars, **floating panel** and many such features which we covered in the [feature highlight article][1]. +KDE Plasma 5.25 于 2022 年 6 月 14 日几天前发布,其中包含一些惊人的更新。在此版本中,你将获得**动态强调色**、改进的登录头像、**浮动面板**以及我们在[功能亮点文章][1] 中介绍的许多功能。 -But, if you are running [Kubuntu 22.04 Jammy Jellyfish][2] which was released long back on April 2022, you have the KDE Plasma 5.24 with KDE Framework 5.92. +但是,如果你正在运行早在 2022 年 4 月发布的 [Kubuntu 22.04 Jammy Jellyfish][2],那么你将拥有带有 KDE Framework 5.92 的 KDE Plasma 5.24。 -You probably waiting to enjoy the new features in your stable Kubuntu 22.04 release, and now its possible to install it in Kubuntu 22.04 via the famous backports PPA. +你可能正在等待享受稳定的 Kubuntu 22.04 版本中的新功能,现在可以通过著名的反向移植 PPA 在 Kubuntu 22.04 中安装它。 -### How to Install KDE Plasma 5.25 in Kubuntu 22.04 +### 如何在 Kubuntu 22.04 中安装 KDE Plasma 5.25 -Here’s how you can upgrade Kubuntu 22.04 with latest KDE Plasma 5.25. +这是使用最新的 KDE Plasma 5.25 升级 Kubuntu 22.04 的方法。 -#### GUI Method +#### GUI 方式 -If you are comfortable with KDE’s software app Discover, then open the app. Then browse to the Settings > Sources and add the PPA `ppa:kubuntu-ppa/backports-extra`. Then Click on Updates. +如果你对 KDE 的软件应用 Discover 感到满意,请打开该应用。然后进入 Settings > Sources 并添加 PPA `ppa:kubuntu-ppa/backports-extra`。然后单击更新。 -#### Terminal Method (recommended) +#### 终端方法(推荐) -I would recommend you to open a terminal and do this upgrade for faster execution and installation. +我建议你打开一个终端并进行此升级以更快地执行和安装。 -* Open Konsole and run the following commands to add the [backport PPA][3]. +* 打开 Konsole 并运行以下命令以添加[反向移植 PPA][3]。 ``` sudo add-apt-repository ppa:kubuntu-ppa/backports-extra @@ -37,7 +37,7 @@ sudo add-apt-repository ppa:kubuntu-ppa/backports-extra ![Upgrade Kubuntu 22.04 with KDE Plasma 5.25][4] -* Now, refresh the package list by running the following command. Then verify the 5.25 packages are available. +* 现在,通过运行以下命令刷新包列表。然后验证 5.25 包是否可用。 ``` sudo apt update @@ -49,33 +49,33 @@ apt list --upgradable | grep 5.25 ![KDE Plasma 5.25 packages are available now][5] -Finally, run the last command to kick-off the upgrade. +最后,运行最后一个命令来启动升级。 ``` sudo apt full-upgrade ``` -The total download size is around 200 MB worth of packages. The entire process takes around 10 minutes of your time based on your internet connection speed. +总共下载大约 200 MB 的软件包。根据你的互联网连接速度,整个过程大约需要 10 分钟。 -After the above command is complete, restart your system. +上述命令完成后,重新启动系统。 -Post-restart, you should see the new KDE Plasma 5.25 in Kubuntu 22.04 LTS. +重启后,你应该会在 Kubuntu 22.04 LTS 中看到新的 KDE Plasma 5.25。 ![KDE Plasma 5.25 in Kubuntu 22.04 LTS][6] -### Other backport PPA +### 其他反向移植 PPA -Please note that the [other backport PPA][7] `ppa:kubuntu-ppa/backports` is currently have Plasma 5.24. So do not use the following PPA which is different than the above. I am not sure whether this PPA would get this update. +请注意,[其他反向移植 PPA][7] `ppa:kubuntu-ppa/backports` 目前有 Plasma 5.24。因此,请勿使用与上面不同的 PPA。我不确定这个 PPA 是否会得到这个更新。 ``` -sudo add-apt-repository ppa:kubuntu-ppa/backports // don't use this +sudo add-apt-repository ppa:kubuntu-ppa/backports // 不要使用这个 ``` -### How to Uninstall +### 如何卸载 -At any moment, if you would like to go back to the stock version of KDE Plasma desktop, then you can install ppa-purge and remove the PPA, followed by refreshing the package. +在任何时候,如果你想回到 KDE Plasma 桌面的原始版本,那么你可以安装 ppa-purge 并删除 PPA,然后刷新包。 -Open a terminal and execute the following commands in sequence. +打开终端,依次执行以下命令。 ``` sudo apt install ppa-purge @@ -83,15 +83,15 @@ sudo ppa-purge ppa:kubuntu-ppa/backports-extra sudo apt update ``` -Once the above commands are complete, restart your system. +完成上述命令后,重启系统。 -### Closing Notes +### 结束语 -There you have it. A nice and simple steps to upgrade stock KDE Plasma to Plasma 5.25 in Jammy Jellyfish. I hope, your upgrade goes fine. +这就是全部了。一个漂亮而简单的步骤,将 Jammy Jellyfish 中的 KDE Plasma 升级到 Plasma 5.25。我希望你升级顺利。 -Do let me know in the comment section if you face any error. +如果您遇到任何错误,请在评论栏告诉我。 -Cheers. +干杯。 -------------------------------------------------------------------------------- @@ -99,7 +99,7 @@ via: https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0d6e21fa810b058a7ad58a62583545a9757ee6d5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 31 Aug 2022 08:37:58 +0800 Subject: [PATCH 0946/3123] translated --- ...How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md (100%) diff --git a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/translated/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md similarity index 100% rename from sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md rename to translated/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md From d8a28f2e7247e32f4bd31788400672b156fc7b13 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 31 Aug 2022 08:40:50 +0800 Subject: [PATCH 0947/3123] translating --- .../20220826 How I analyze my music directory with Groovy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220826 How I analyze my music directory with Groovy.md b/sources/tech/20220826 How I analyze my music directory with Groovy.md index 036c1b7b18..00022d108b 100644 --- a/sources/tech/20220826 How I analyze my music directory with Groovy.md +++ b/sources/tech/20220826 How I analyze my music directory with Groovy.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/8/groovy-script-java-music" [#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b04809c54fbc15dcebf0f2db89e3892d2bed4725 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 31 Aug 2022 09:09:42 +0800 Subject: [PATCH 0948/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220830=20Some=20ways=20to=20get=20better=20at=20de?= =?UTF-8?q?bugging.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30 Some ways to get better at debugging.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 sources/tech/20220830 Some ways to get better at debugging.md diff --git a/sources/tech/20220830 Some ways to get better at debugging.md b/sources/tech/20220830 Some ways to get better at debugging.md new file mode 100644 index 0000000000..a32f0952fe --- /dev/null +++ b/sources/tech/20220830 Some ways to get better at debugging.md @@ -0,0 +1,139 @@ +[#]: subject: "Some ways to get better at debugging" +[#]: via: "https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Some ways to get better at debugging +====== +Hello! I’ve been working on writing a zine about debugging for a while (here’s [an early draft of the table of contents][1]). + +As part of that I thought it might be fun to read some academic papers about +debugging, and last week [Greg Wilson][2] sent me some +papers about academic research into debugging. + +One of those papers ([Towards a framework for teaching debugging +[paywalled]][3]) had a +categorization I really liked of the different kinds of knowledge/skills we +need to debug effectively. It comes from another more general paper on +troubleshooting: [Learning to Troubleshoot: A New Theory-Based Design Architecture][4]. + +I thought the categorization was a very useful structure for thinking about how +to get better at debugging, so I’ve reframed the five categories in the paper +into actions you can take to get better at debugging. + +Here they are: + +#### 1. learn the codebase + +To debug some code, you need to understand the codebase you’re working with. +This seems kind of obvious (of course you can’t debug code without +understanding how it works!). + +This kind of learning happens pretty naturally over time, and actually +debugging is also one of the best ways to *learn* how a new codebase works – +seeing how something breaks helps you learn a lot about how it works. + +The paper calls this “System Knowledge”. + +#### 2. learn the system + +The paper mentions that you need to understand the programming language, but I +think there’s more to it than that – to fix bugs, often you need to learn a +lot about the broader environment than just the language. + +For example, if you’re a backend web developer, some “system” knowledge you +might need includes: + +* how HTTP caching works +* CORS +* how database transactions work + +I find that I often have to be a bit more intentional about learning systemic +things like this – I need to actually take the time to look them up and read +about them. + +The paper calls this “Domain Knowledge”. + +#### 3. learn your tools + +There are lots of debugging tools out there, for example: + +* debuggers (gdb etc) +* browser developer tools +* profilers +* strace / ltrace +* tcpdump / wireshark +* core dumps +* and even basic things like error messages (how do you read them properly) + +I’ve written a lot about debugging tools on this blog, and definitely +learning these tools has made a huge difference to me. + +The paper calls this “Procedural Knowledge”. + +#### 4. learn strategies + +This is the fuzziest category, we all have a lot of strategies and heuristics +we pick up along the way for how to debug efficiently. For example: + +* writing a unit test +* writing a tiny standalone program to reproduce the bug +* finding a working version of the code and seeing what changed +* printing out a million things +* adding extra logging +* taking a break +* explaining the bug to a friend and then figuring out what’s wrong halfway through +* looking through the github issues to see if anything matches + +I’ve been thinking a lot about this category while writing the zine, but I want +to keep this post short so I won’t say more about it here. + +The paper calls this “Strategic Knowledge”. + +#### 5. get experience + +The last category is “experience”. The paper has a really funny comment about this: + +> Their findings did not show a significant difference in the strategies +employed by the novices and experts. Experts simply formed more correct +hypotheses and were more efficient at finding the fault. The authors suspect +that this result is due to the difference in the programming experience between +novices and experts. + +This really resonated with me – I’ve had SO MANY bugs that were really +frustrating and difficult the first time I ran into them, and very straightforward +the fifth or tenth or 20th time. + +This also feels like one of the most straightforward categories of knowledge to +acquire to me – all you need to do is investigate a million bugs, which is our +whole life as programmers anyway :). It takes a long time but I feel like it +happens pretty naturally. + +The paper calls this “Experiential Knowledge”. + +#### that’s all! + +I’m going to keep this post short, I just really liked this categorization and +wanted to share it. + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/ + +作者:[Julia Evans][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://jvns.ca/ +[b]: https://github.com/lkxed +[1]: https://twitter.com/b0rk/status/1562480240240525314?s=20&t=BwKd6i0mVCTaCud2HDEUBA +[2]: https://third-bit.com/ +[3]: https://dl.acm.org/doi/abs/10.1145/3286960.3286970 +[4]: https://www.researchgate.net/profile/Woei-Hung/publication/225547853_Learning_to_Troubleshoot_A_New_Theory-Based_Design_Architecture/links/556f471c08aec226830a74e7/Learning-to-Troubleshoot-A-New-Theory-Based-Design-Architecture.pdf From 84d041dbec13fbac1d15096c31f8db03010c303a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 31 Aug 2022 12:05:19 +0800 Subject: [PATCH 0949/3123] RP @wxy https://linux.cn/article-14985-1.html --- ...9 5 GNOME 43 Features to Keep an Eye On.md | 157 ++++++++++++++++++ ...9 5 GNOME 43 Features to Keep an Eye On.md | 156 ----------------- 2 files changed, 157 insertions(+), 156 deletions(-) create mode 100644 published/20220829 5 GNOME 43 Features to Keep an Eye On.md delete mode 100644 sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md diff --git a/published/20220829 5 GNOME 43 Features to Keep an Eye On.md b/published/20220829 5 GNOME 43 Features to Keep an Eye On.md new file mode 100644 index 0000000000..5678acff06 --- /dev/null +++ b/published/20220829 5 GNOME 43 Features to Keep an Eye On.md @@ -0,0 +1,157 @@ +[#]: subject: "5 GNOME 43 Features to Keep an Eye On" +[#]: via: "https://news.itsfoss.com/gnome-43-features/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14985-1.html" + +5 个需要关注的 GNOME 43 功能 +====== + +> GNOME 43 即将到来。下面是你可以期待在该版本中出现的功能。 + +![5 个值得关注的 GNOME 43 功能][1] + +GNOME 43 将于 2022 年 9 月 21 日发布。截至目前,GNOME 43 的测试版已经可供测试。 + +我们在 GNOME 43 测试版中发现的功能和变化应该随着最终版本的发布而到来。 + +那么,哪些是你最值得期待的 GNOME 43 功能呢? + +让我们来看看一些关键的变化。 + +这个列表集中在视觉/交互式变化上。关于技术变化的完整列表,你可以参考文章底部链接的更新日志。 + +### 1、改造了快速设置 + +![GNOME 快速设置][2] + +GNOME 桌面菜单位于右上角,你可以在这里快速调整音量、访问网络连接,以及开/关电脑,在这个版本中它终于得到了视觉上的更新。 + +现在,它看起来更像是安卓的快速切换栏,这应该会增强用户体验,同时减少一些多余的点击。 + +![GNOME 快速设置][3] + +你不需要前往设置来打开深色模式和夜光。新的快速切换菜单就可以让你可以访问到它们。 + +此外,像选择 Wi-Fi 网络和改变音频设备这样的事情比以前更容易做到。 + +### 2、对 Nautilus 文件管理器的改变 + +虽然我们已经在之前的报道中提到了 GNOME 43 中对 Nautilus 最重要的改变。 + +> **[GNOME 43 中 Nautilus 文件管理器的 6 个新变化][4]** + +有几件事值得再次重申。其中一些包括: + +* 使用 GTK 4 的全新外观。 +* 拖动和选择文件的能力(橡皮筋选择)。 +* 紧凑窗口的自适应视图。 +* 新的文件上下文菜单。 + +![Nautilus 文件管理器][6] + +总的来说,在 GNOME 43 中,你会发现 Nautilus 文件管理器有了一些视觉上的调整,并有动画的细微改进。 + +你可以点击每一个选项,访问目录的属性等等来探索其中的差异。它应该感觉更直观一些。 + +### 3、设备安全信息 + +![][7] + +我们之前报道过 GNOME 会在你禁用安全启动时显示警告。 + +> **[安全启动已被禁用? GNOME将很快向您发出警告!][8]** + +你会在你的闪屏和锁屏中看到这个警告。 + +GNOME 的设置菜单也有一个新的 “设备安全” 选项,在这里你可以看到安全启动状态和其他重要信息,比如: + +* TPM +* 英特尔 BootGuard +* IOMMU 保护 + +### 4、GNOME Web 的扩展支持 + +![GNOME Web 扩展][10] + +GNOME Web 在每次更新都会变得更好一些。有了 Web 扩展的支持,它成为了一个有吸引力的选择,可以取代你的日常使用的浏览器。 + +> **[有了扩展,GNOME Web 正慢慢成为桌面 Linux 上一个有吸引力的选择][11]** + +在写这篇文章的时候,该支持仍然是 **实验性的**,你必须得手动安装扩展。 + +对于初学者来说,你可以在 Mozilla Firefox 附加组件门户上下载 .xpi 扩展文件。 + +### 5、GNOME 软件中心的改进 + +GNOME 的软件中心目前的体验并不是很好。 + +虽然它在提供额外信息方面有所改进,但仍有改进的余地。 + +![GNOME 软件][13] + +在 GNOME 43 中,你可以了解到更多关于 Flatpak 应用程序所需的权限。而且,你还可以看到一个 “其他应用程序” 部分,以寻找同一开发者的其它应用程序。 + +此外,软件包来源的显示方式也有了细微的视觉调整。 + +![GNOME 软件][14] + +### 附加:新的墙纸 + +你会得到新的默认壁纸,有深色和浅色的变体。下面是深色壁纸背景的样子: + +![][15] + +而这是浅色版本: + +![][16] + +除了主要的亮点之外,其他一些变化包括: + +* Adwaita 图标主题更新。 +* GNOME 应用程序的性能改进。 +* 各种代码的清理。 +* 对日历的改进。 +* 改良了“关于”窗口。 + +关于完整的技术细节,你可以参考 [GNOME 43 测试版更新日志][17]。 + +总的来说,GNOME 43 在很大程度上注重提高可用性和用户体验。 + +最初还计划了一些有趣的功能,但它们没有进入 GNOME 43。*也许,GNOME 44 会包括这些?* + +> **[这里是开发者为 GNOME 43 规划的内容][18]** + +*你对 GNOME 43 的功能有何看法?请在下面的评论中告诉我们你的想法。* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-43-features/ + +作者:[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/content/images/size/w1200/2022/08/gnome-43-features.jpg +[2]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-1.png +[3]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-settings.png +[4]: https://news.itsfoss.com/gnome-files-43/ +[6]: https://news.itsfoss.com/content/images/2022/08/nautilus-file.gif +[7]: https://news.itsfoss.com/content/images/2022/08/secure-boot-gnome.png +[8]: https://news.itsfoss.com/gnome-secure-boot-warning/ +[10]: https://news.itsfoss.com/content/images/2022/08/gnome-web-extensions-1.png +[11]: https://news.itsfoss.com/gnome-web-extensions-dev/ +[13]: https://news.itsfoss.com/content/images/2022/08/gnome-software-screenshot-1.png +[14]: https://news.itsfoss.com/content/images/2022/08/gnome-43-software-center.jpg +[15]: https://news.itsfoss.com/content/images/2022/08/gnome-43-dark-wallpaper.jpg +[16]: https://news.itsfoss.com/content/images/2022/08/gnome-light-adaitwa.jpg +[17]: https://download.gnome.org/core/43/43.beta/NEWS +[18]: https://news.itsfoss.com/gnome-43-dev-plans/ diff --git a/sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md b/sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md deleted file mode 100644 index bd0f22e8ca..0000000000 --- a/sources/news/20220829 5 GNOME 43 Features to Keep an Eye On.md +++ /dev/null @@ -1,156 +0,0 @@ -[#]: subject: "5 GNOME 43 Features to Keep an Eye On" -[#]: via: "https://news.itsfoss.com/gnome-43-features/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 GNOME 43 Features to Keep an Eye On -====== -GNOME 43 is around the corner. Here are the features that you should expect with the release. - -![5 GNOME 43 Features to Keep an Eye On][1] - -GNOME 43 is due for release on **September 21, 2022**. As of now, GNOME 43’s beta build is available to test. - -The features/changes that we find with GNOME 43 beta should arrive with the final release. - -So, what are the best GNOME 43 features that you should look forward to? - -Let's take a look at some key changes. - -The list focuses on visual/interactive changes. For a full list of technical changes, you can refer to the changelog linked at the bottom of the article. - -### 1. Quick Settings Makeover - -![gnoome quick settings][2] - -The GNOME desktop menu in the top-right corner where you can quickly adjust the volume, access network connections, and power on/off the computer finally gets a visual refresh. - -Now, it looks more like an Android quick toggle bar, which should enhance the user experience while trimming down some extra clicks. - -![gnome quick settings][3] - -You do not need to head to the settings to turn on the dark mode and night light. The new quick toggle menu gives you access to those. - -Moreover, things like selecting a Wi-Fi network and changing the audio device is easier than ever. - -### 2. Changes to the Nautilus File Manager - -While we already mentioned the most significant changes to Nautilus in GNOME 43 in our previous coverage: - -[6 New Changes Coming to Nautilus File Manager in GNOME 43][4] - -There are a few things that are worth re-iterating. Some of them include: - -* Refreshed look with GTK 4. -* Ability to drag and select files (rubber band selection). -* Adaptive view with a compact window. -* New document context menu. - -![nautilus file manager gnome 43][6] - -Overall, with GNOME 43, you will find several visual tweaks to the Nautilus File Manager with subtle animation improvements. - -You can click on every option, access the properties of a directory and do more such actions to explore the differences. It should feel more intuitive. - -### 3. Device Security Information - -![][7] - -It's been a while since we reported that GNOME will display a secure boot warning if you have it disabled: - -[Secure Boot Disabled? GNOME Will Soon Warn You About it!][8] - -You will get the warning in your splash screen, and the lock screen. - -GNOME's setting menu also has a new "**Device Security**" option where you get the Secure Boot status along with other essential information like: - -* TPM -* Intel BootGuard -* IOMMU protection - -### 4. Extension Support for GNOME Web - -![gnome web extensions][10] - -GNOME Web is getting better with every update. With the WebExtensions support, it is an attractive option to replace your daily driver: - -[With Extensions, GNOME Web is Slowly Becoming an Attractive Option on Desktop Linux][11] - -At the time of writing this, the support is still **experimental**, and you will have to manually install the extensions. - -For starters, you can download **.xpi** files for extensions available on the Mozilla Firefox add-ons portal. - -### 5. GNOME Software Improvements - -GNOME's Software Center is not the best experience there is. - -While it has improved with changes to provide additional information, it still has room for improvements. - -![gnome software][13] - -With GNOME 43, you get to know more about the permissions required by Flatpak applications. And, you also get a section for "**Other Apps by**" to find applications by the same developer. - -Furthermore, there are subtle visual tweaks to the way package sources are displayed. - -![gnome software][14] - -### Bonus: New Wallpapers - -You get new default wallpapers with their dark and light variants. Here's what the dark wallpaper background looks like: - -![][15] - -And, here's the light version: - -![][16] - -In addition to the major highlights, some other changes include: - -* Adwaita icon theme updates. -* Performance improvements to GNOME apps. -* Various code-cleanups. -* Refinements to the calendar. -* Revamped “About” window. - -For full technical details, you can refer to [GNOME 43 beta changelog][17]. - -Overall, GNOME 43 focuses heavily on improving usability and the user experience. - -Some interesting features were planned initially but did not make it to GNOME 43. *Maybe, GNOME 44 will include those?* - -[Here’s What Devs Are Planning for GNOME 43][18] - -💬 *What do you think about GNOME 43 features? Kindly let us know your thoughts in the comments below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-43-features/ - -作者:[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/content/images/size/w1200/2022/08/gnome-43-features.jpg -[2]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-1.png -[3]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-settings.png -[4]: https://news.itsfoss.com/gnome-files-43/ -[6]: https://news.itsfoss.com/content/images/2022/08/nautilus-file.gif -[7]: https://news.itsfoss.com/content/images/2022/08/secure-boot-gnome.png -[8]: https://news.itsfoss.com/gnome-secure-boot-warning/ -[10]: https://news.itsfoss.com/content/images/2022/08/gnome-web-extensions-1.png -[11]: https://news.itsfoss.com/gnome-web-extensions-dev/ -[13]: https://news.itsfoss.com/content/images/2022/08/gnome-software-screenshot-1.png -[14]: https://news.itsfoss.com/content/images/2022/08/gnome-43-software-center.jpg -[15]: https://news.itsfoss.com/content/images/2022/08/gnome-43-dark-wallpaper.jpg -[16]: https://news.itsfoss.com/content/images/2022/08/gnome-light-adaitwa.jpg -[17]: https://download.gnome.org/core/43/43.beta/NEWS -[18]: https://news.itsfoss.com/gnome-43-dev-plans/ From 244dec2682fa24c8f1d844a1a55b7b64254b3143 Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Wed, 31 Aug 2022 13:03:28 +0800 Subject: [PATCH 0950/3123] Update 20220830 Some ways to get better at debugging.md --- sources/tech/20220830 Some ways to get better at debugging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220830 Some ways to get better at debugging.md b/sources/tech/20220830 Some ways to get better at debugging.md index a32f0952fe..33d2233b7d 100644 --- a/sources/tech/20220830 Some ways to get better at debugging.md +++ b/sources/tech/20220830 Some ways to get better at debugging.md @@ -2,7 +2,7 @@ [#]: via: "https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/" [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "aftermath0703" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From aa7b10bad1946c2d53236a04296fb341071c7a9f Mon Sep 17 00:00:00 2001 From: aftermath0703 <73346301+aftermath0703@users.noreply.github.com> Date: Wed, 31 Aug 2022 14:26:51 +0800 Subject: [PATCH 0951/3123] Update and rename sources/tech/20220830 Some ways to get better at debugging.md to translated/tech/20220830 Some ways to get better at debugging.md --- ...30 Some ways to get better at debugging.md | 139 ------------------ ...30 Some ways to get better at debugging.md | 119 +++++++++++++++ 2 files changed, 119 insertions(+), 139 deletions(-) delete mode 100644 sources/tech/20220830 Some ways to get better at debugging.md create mode 100644 translated/tech/20220830 Some ways to get better at debugging.md diff --git a/sources/tech/20220830 Some ways to get better at debugging.md b/sources/tech/20220830 Some ways to get better at debugging.md deleted file mode 100644 index 33d2233b7d..0000000000 --- a/sources/tech/20220830 Some ways to get better at debugging.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: subject: "Some ways to get better at debugging" -[#]: via: "https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/" -[#]: author: "Julia Evans https://jvns.ca/" -[#]: collector: "lkxed" -[#]: translator: "aftermath0703" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Some ways to get better at debugging -====== -Hello! I’ve been working on writing a zine about debugging for a while (here’s [an early draft of the table of contents][1]). - -As part of that I thought it might be fun to read some academic papers about -debugging, and last week [Greg Wilson][2] sent me some -papers about academic research into debugging. - -One of those papers ([Towards a framework for teaching debugging -[paywalled]][3]) had a -categorization I really liked of the different kinds of knowledge/skills we -need to debug effectively. It comes from another more general paper on -troubleshooting: [Learning to Troubleshoot: A New Theory-Based Design Architecture][4]. - -I thought the categorization was a very useful structure for thinking about how -to get better at debugging, so I’ve reframed the five categories in the paper -into actions you can take to get better at debugging. - -Here they are: - -#### 1. learn the codebase - -To debug some code, you need to understand the codebase you’re working with. -This seems kind of obvious (of course you can’t debug code without -understanding how it works!). - -This kind of learning happens pretty naturally over time, and actually -debugging is also one of the best ways to *learn* how a new codebase works – -seeing how something breaks helps you learn a lot about how it works. - -The paper calls this “System Knowledge”. - -#### 2. learn the system - -The paper mentions that you need to understand the programming language, but I -think there’s more to it than that – to fix bugs, often you need to learn a -lot about the broader environment than just the language. - -For example, if you’re a backend web developer, some “system” knowledge you -might need includes: - -* how HTTP caching works -* CORS -* how database transactions work - -I find that I often have to be a bit more intentional about learning systemic -things like this – I need to actually take the time to look them up and read -about them. - -The paper calls this “Domain Knowledge”. - -#### 3. learn your tools - -There are lots of debugging tools out there, for example: - -* debuggers (gdb etc) -* browser developer tools -* profilers -* strace / ltrace -* tcpdump / wireshark -* core dumps -* and even basic things like error messages (how do you read them properly) - -I’ve written a lot about debugging tools on this blog, and definitely -learning these tools has made a huge difference to me. - -The paper calls this “Procedural Knowledge”. - -#### 4. learn strategies - -This is the fuzziest category, we all have a lot of strategies and heuristics -we pick up along the way for how to debug efficiently. For example: - -* writing a unit test -* writing a tiny standalone program to reproduce the bug -* finding a working version of the code and seeing what changed -* printing out a million things -* adding extra logging -* taking a break -* explaining the bug to a friend and then figuring out what’s wrong halfway through -* looking through the github issues to see if anything matches - -I’ve been thinking a lot about this category while writing the zine, but I want -to keep this post short so I won’t say more about it here. - -The paper calls this “Strategic Knowledge”. - -#### 5. get experience - -The last category is “experience”. The paper has a really funny comment about this: - -> Their findings did not show a significant difference in the strategies -employed by the novices and experts. Experts simply formed more correct -hypotheses and were more efficient at finding the fault. The authors suspect -that this result is due to the difference in the programming experience between -novices and experts. - -This really resonated with me – I’ve had SO MANY bugs that were really -frustrating and difficult the first time I ran into them, and very straightforward -the fifth or tenth or 20th time. - -This also feels like one of the most straightforward categories of knowledge to -acquire to me – all you need to do is investigate a million bugs, which is our -whole life as programmers anyway :). It takes a long time but I feel like it -happens pretty naturally. - -The paper calls this “Experiential Knowledge”. - -#### that’s all! - -I’m going to keep this post short, I just really liked this categorization and -wanted to share it. - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/ - -作者:[Julia Evans][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://jvns.ca/ -[b]: https://github.com/lkxed -[1]: https://twitter.com/b0rk/status/1562480240240525314?s=20&t=BwKd6i0mVCTaCud2HDEUBA -[2]: https://third-bit.com/ -[3]: https://dl.acm.org/doi/abs/10.1145/3286960.3286970 -[4]: https://www.researchgate.net/profile/Woei-Hung/publication/225547853_Learning_to_Troubleshoot_A_New_Theory-Based_Design_Architecture/links/556f471c08aec226830a74e7/Learning-to-Troubleshoot-A-New-Theory-Based-Design-Architecture.pdf diff --git a/translated/tech/20220830 Some ways to get better at debugging.md b/translated/tech/20220830 Some ways to get better at debugging.md new file mode 100644 index 0000000000..ff8e0ba84f --- /dev/null +++ b/translated/tech/20220830 Some ways to get better at debugging.md @@ -0,0 +1,119 @@ +[#]: subject: "Some ways to get better at debugging" +[#]: via: "https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lkxed" +[#]: translator: "aftermath0703" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +提高调试能力的一些方法 +====== +你们好!我一直在编写一本关于调试的杂志(这是 [目录的初稿][1]). + +作为其中的一部分,我认为阅读一些关于调试的学术论文可能会很有趣,上周[Greg Wilson][2]给我发了一些关于调试学术研究的论文。 + +其中一篇论文([Towards a framework for teaching debugging +[paywalled]][3])对我们有效调试所需的不同种类的知识/技能进行了分类,我非常喜欢。 +它来自另一篇关于故障排除的更一般性的论文。[Learning to Troubleshoot: A New Theory-Based Design Architecture][4]。 + +我认为这个分类对于思考如何更好地进行调试是一个非常有用的结构,所以我把论文中的五个类别重新规划为你可以采取的行动,以提高调试的效率。 + +以下是这些行动: + +#### 1. 学习代码库 + +要调试一些代码,你需要了解你正在使用的代码库。 +这似乎有点显而易见(当然,不了解代码的工作原理,你就无法调试代码!) + +这种学习随着时间的推移会很自然地发生, +而且实际上调试也是 *学习* 一个新的代码库如何工作的最好方法之一—— +看到一些代码是如何崩溃的,有助于你了解它是如何工作的。 + +本文将此称为 "系统知识"。 + +#### 2. 学习系统 + +论文中提到,你需要了解编程语言,但我认为不止于此——为了修复bug,往往你需要学习很多更广泛的环境,而不仅仅是语言。 + +举个例子,如果你是后端web开发者,你可能需要的一些“系统”知识包括: + +* HTTP缓存如何工作 +* CORS +* 数据库事务是如何工作的 + +我发现我经常需要更有意识地去学习像这样的系统性的东西——我需要真正花时间去查找和阅读它们。 + +本文将此称为 "领域知识"。 + +#### 3. 学习你的工具 + +现在有很多工具,例如: + +* 调试器(GDB等) +* 浏览器开发工具 +* 剖析器(profilers) +* strace / ltrace +* tcpdump / wireshark +* 核心转储 +* 甚至像错误信息这样的基本东西(如何正确阅读它们) + +我在这个博客上写了很多关于调试工具的文章,并且肯定学习这些工具给我带来了巨大的变化。 + +本文将此称为 "处理性知识"。 + +#### 4. 学习策略 + +这是最模糊的一类,在如何高效调试的过程中,我们都有很多策略和启发式方法。比如说: + +* 写一个单元测试 +* 写一个小的独立程序来重现这个错误 +* 找到一个能工作的版本的代码,看看有什么变化 +* 打印出无数的东西 +* 增加额外的日志记录 +* 休息一下 +* 向朋友解释这个错误,然后在中途发现问题所在 +* 查看github上的问题,看看是否有匹配的问题 + +在写这本杂志的时候,我一直在思考这个类别,但我想让这篇文章简短,所以我不会在这里多说。 + +本文将此称为 "战略知识"。 + +#### 5. 获得经验 + +最后一个类别是 "经验"。这篇论文对此有一个非常有趣的评论: + + +> 他们的研究结果并没有显示出新手和专家所采用的策略有什么明显的区别。 +专家只是形成了更多正确的假设,并且在寻找故障方面更有效率。 +作者怀疑这个结果是由于新手和专家之间的编程经验不同造成的。 + +这真的引起了我的共鸣——我遇到过很多第一次遇到时非常令人沮丧和困难的bug,而在第五次、第十次或第二十次时就非常简单了。 + +对我来说,这也是最直接的知识类别之一—— +你需要做的就是调查一百万个bug,反正这就是我们作为程序员的全部生活 :) 。 +这需要很长的时间,但我觉得它发生得很自然。 + +本文将此称为 "经验知识"。 + +#### 就这样吧! + +我打算把这篇文章写得很短,我只是非常喜欢这个分类,想把它分享出来。 + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/ + +作者:[Julia Evans][a] +选题:[lkxed][b] +译者:[aftermath0703](https://github.com/aftermath0703) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lkxed +[1]: https://twitter.com/b0rk/status/1562480240240525314?s=20&t=BwKd6i0mVCTaCud2HDEUBA +[2]: https://third-bit.com/ +[3]: https://dl.acm.org/doi/abs/10.1145/3286960.3286970 +[4]: https://www.researchgate.net/profile/Woei-Hung/publication/225547853_Learning_to_Troubleshoot_A_New_Theory-Based_Design_Architecture/links/556f471c08aec226830a74e7/Learning-to-Troubleshoot-A-New-Theory-Based-Design-Architecture.pdf From ee35f57ebd32c432683317c339140bba940e0adc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 31 Aug 2022 17:09:46 +0800 Subject: [PATCH 0952/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Chth0lly 感谢您,完成了第一篇翻译贡献! --- ... Even for Those Who Don-t Know Markdown.md | 77 ++++++++++--------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md index fe26a49dd3..f391ec2dc0 100644 --- a/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md +++ b/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md @@ -2,107 +2,108 @@ [#]: via: "https://itsfoss.com/marktext-editor/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " Chth0lly" -[#]: reviewer: " " +[#]: translator: "Chth0lly" +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -即使对那些不知道Markdown的人来说Marktext也是一个绝佳的编辑器 +即使对那些不知道 Markdown 的人来说,Marktext 也是一个绝佳的编辑器 ====== -又一个Markdown编辑器?我们见的Markdown编辑器还少吗? +![](https://img.linux.net.cn/data/attachment/album/202208/31/170837f0kx77ewii4hkih0.jpg) -我明白你的感受,如果你是个Markdown爱好者,你可能已经用过很多编辑器了,比如 [Joplin][1] 和 [Zettlr][2],。但如果你不是的话,你可能根本就不在乎。 +又一个 Markdown 编辑器?我们见的 Markdown 编辑器还少吗? -Markdown是一个非常好的标记语言,特别是对那些在网络上写作的人来说。我不想在这里讲太多细节。但如果你有兴趣的话,我们有一个[非常棒的Markdown初学者教程][3]。 +我明白你的感受,如果你是个 Markdown 爱好者,你可能已经用过很多 Markdown 编辑器了,比如 [Joplin][1] 和 [Zettlr][2]。但如果你不是的话,你可能根本就不在乎。 -这次我想推荐给你(另一个)Markdown编辑器,它叫[Marktext][4],并且它是用Electron制作的(我们都明白这什么意思,先别恨我) +Markdown 是一个非常好的标记语言,特别是对那些在网络上写作的人来说。我不想在这里讲太多细节,但如果你有兴趣的话,我们有一篇 [非常棒的 Markdown 初学者教程][3]。 -我发现这将是一个很完美的编辑器。它运行起来和它看起来一样漂亮。下面是我这几天来的使用体验。 +这次我想推荐给你(另一个)Markdown 编辑器,它叫 [Marktext][4],并且它是用 Electron 制作的(我们都明白这什么意思,先别急着埋怨我)。 -### Marktext: 人人可用的Markdown编辑器 +我发现这将是一个很完美的编辑器。它很漂亮,而它运行起来也一样棒。下面是我这几天来的使用体验。 -尽管我很讨厌[Electron框架][5]但不得不承认基于Electron的应用都有一个干净,现代的界面。 +### Marktext: 人人可用的 Markdown 编辑器 + +尽管我很讨厌 [Electron 框架][5],但不得不承认基于 Electron 的应用都有一个干净、现代的界面。 ![Marktext interface][6] -我更喜欢黑暗模式主题,除此之外官方还提供了5种其它主题。 +我更喜欢深色模式主题,除此之外官方还提供了五种其它主题。 ![Marktext dark theme][7] -打开软件你就可以立刻进行写作,如果你不记得某个语法了,那也没有问题,输入@就可以得到语法提示,如: +打开软件你就可以立刻进行写作,如果你不记得某个语法了,那也没有问题,输入 `@` 就可以得到语法提示,如: * 标题 * 分隔线 * 表格 -* Latex数学公式 -* HTML块 +* Latex 数学公式 +* HTML 块 * 代码块 * 引用 -* 清单 -* 用Vega-lite.js,Flowchart.js,JS序列和Plantuml制作的图表 - -* Diagrams using vega-lite.js, flowchart.js, js-sequence and PlantUML +* 列表 +* 检查清单 +* 用 Vega-lite.js、Flowchart.js、js-sequence-diagrams 和 PlantUML 制作的图表 ![Use various document elements in the editor by pressing @][8] -选中文本你会得到一个格式选项框来改变文本为粗体,斜体,下划线,删除线等。你也可以用黄色背景高亮文本,并转换为行内块,行内公式或插入超链接。 +选中文本你会得到一个格式选项框,来改变文本为粗体、斜体、下划线、删除线等。你也可以用黄色背景高亮文本、转换为内联代码、内联公式或插入超链接。 ![Text formatting options][9] -Marktext也支持图片。我们都知道图片不是markdown文件的一部分,它们是外部元素但是你可以选择将图片保存到md文件保存的目录下。 +Marktext 也支持图片。我们都知道图片不是 Markdown 文件的一部分,它们是外部元素,但是你可以选择将图片保存到 .md 文件所在的目录下。 ![Images are supported too][10] -通过在插入列表中添加图片非常容易。你可以通过选择文本并且从弹出的格式选择中添加图片或使用Ctrl+Shift+快捷键。但是不能为图片添加替换文本或图片说明,这点确实需要改进。 +通过插入菜单来添加图片非常容易。你可以选择文本并且从弹出的格式选项中选择图片来添加,或使用 `Ctrl+Shift+I` 快捷键。但是不能为图片添加替换文本或图片说明,这点确实需要改进。 -我喜欢Marktext的表格功能。你可以直接插入预先定义好大小的图表。如有需要,还可以很容易的改变大小。你可以只用鼠标移动列和行,而不用担心源代码。 +我喜欢 Marktext 的表格功能。你可以直接插入预先定义好大小的图表。如有需要,还可以很容易的改变大小。你可以只用鼠标移动列和行,而不用担心底层的代码。 ![Tables are very well supported in Marktext][11] -您可以启用侧边栏视图。侧边栏为您有三个主要功能。您可以打开包含多个Markdown文件的文件夹,在打开的文件夹中的所有文件中执行全局搜索,并显示当前打开的文件的目录。大纲的目录是根据标题自动生成的。 +你可以启用侧边栏视图。侧边栏有三个功能:你可以打开包含多个 Markdown 文件的文件夹,在打开的文件夹中的所有文件上执行全局搜索,并显示当前打开的文件的大纲目录。大纲目录是根据子标题自动生成的。 ![Sidebar view has three options: Show folder content, global search and table of content][12] -底部的齿轮按钮是主要设置。你可以改变主题,改变图片设置,开启自动保存等等。 +底部的齿轮按钮是设置功能。你可以改变主题、改变图片设置、视图、开启自动保存等等。 ![Configuration and settings][13] -### 如何安装Marktext +### 如何安装 Marktext -Marktext 是一个跨平台的开源应用程序。所以不止在Linux ,你还可以在 Windows 和 macOS安装。 +Marktext 是一个跨平台的开源应用程序。所以不止在 Linux 上,你还可以在 Windows 和 macOS 安装。 -在LInux上,你可以选择AppImage版或Flatpak版。从[这里][14]可以得到Marktext的Appimage包。 +在 Linux 上,你可以选择 AppImage 软件包或 Flatpak 软件包。从 [这里][14] 可以得到 Marktext 的 Appimage 软件包。 -我选择了 Flatpak 版本,因为这样可以获得更好的系统集成。它运行良好,因为 Marktext 自动成为我的 Ubuntu 22.04 系统上 md 文件的默认编辑器。 +我选择了 Flatpak 版本,因为这样可以获得更好的系统集成。它运行良好,Marktext 自动成为我的 Ubuntu 22.04 系统上 .md 文件的默认编辑器。 -请确保你有Flatpak并在你的系统上开启了,之后用以下方法添加上Flathub仓库。 +请确保你启用了 Flatpak 支持,之后用以下方法添加上 Flathub 仓库: ``` flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo ``` -在这之后,用以下命令安装Marktext到你的系统上: +在这之后,用以下命令安装 Marktext 到你的系统上: ``` flatpak install flathub com.github.marktext.marktext ``` -如果用了一段时间后你不喜欢Marktext,用以下命令卸载: +如果用了一段时间后你不喜欢 Marktext,可以用以下命令卸载: ``` fkatpak uninstall com.github.marktext.marktext ``` -### 最后 +### 总结 -Marktext有很多小功能,例如字数统计、Latex数学公式、拼写检查器或复制粘贴为Markdown或 HTML格式,我留给你们自己去尝试。 +Marktext 有很多小功能,例如字数统计、Latex 数学公式、拼写检查器、复制粘贴为 Markdown/HTML 格式,我留给你们自己去尝试。 -实话实说,尽管多年来一直使用 Markdown 来写文章,但我也总会忘掉一此语法。我记得常见的标题、列表、代码块等,但如果我必须创建一个表格,我不得不在网上搜索。 +实话实说,尽管多年来一直使用 Markdown 来写文章,但我也总会忘掉一些语法。我能记得常见的标题、列表、代码块等,但如果我必须创建一个表格,我不得不在网上搜索。 -我已经[尝试了许多Markdown编辑器][15],这其中确实有很多不错的。但是,我还是喜欢用 Marktext,它会在我的系统上存在很长时间。 +我已经 [尝试了许多 Markdown 编辑器][15],这其中确实有很多不错的。但是,我还是喜欢用 Marktext,它会在我的系统上存在很长时间。 -如果你已经用过了话,请在评论区分享您的经验。 +如果你已经用过了话,请在评论区分享你的经验。 -------------------------------------------------------------------------------- @@ -110,8 +111,8 @@ via: https://itsfoss.com/marktext-editor/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] -译者:[Chth0lly](https://github.com/译者ID) -校对:[校对者ID](https://github.com/) +译者:[Chth0lly](https://github.com/Chth0lly) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7306c7080db85d57522c5ffc97bb940e20ad9835 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 31 Aug 2022 17:10:48 +0800 Subject: [PATCH 0953/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Chth0lly 本文首发地址:https://linux.cn/article-14986-1.html 您的 LCTT 专页:https://linux.cn/lctt/chth0lly --- ...Excellent Editor Even for Those Who Don-t Know Markdown.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md (98%) diff --git a/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/published/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md similarity index 98% rename from translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md rename to published/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md index f391ec2dc0..a2033dd727 100644 --- a/translated/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md +++ b/published/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Chth0lly" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14986-1.html" 即使对那些不知道 Markdown 的人来说,Marktext 也是一个绝佳的编辑器 ====== From 1b3882d1d4abeaaba598ab0b698a187b99595d5a Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 31 Aug 2022 18:54:47 +0800 Subject: [PATCH 0954/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220831=20How=20we=20track=20the=20community=20heal?= =?UTF-8?q?th=20of=20our=20open=20source=20project.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...unity health of our open source project.md | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 sources/tech/20220831 How we track the community health of our open source project.md diff --git a/sources/tech/20220831 How we track the community health of our open source project.md b/sources/tech/20220831 How we track the community health of our open source project.md new file mode 100644 index 0000000000..59aa92fe79 --- /dev/null +++ b/sources/tech/20220831 How we track the community health of our open source project.md @@ -0,0 +1,105 @@ +[#]: subject: "How we track the community health of our open source project" +[#]: via: "https://opensource.com/article/22/8/open-source-community-health-metrics-savannah" +[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How we track the community health of our open source project +====== +Mautic chose Savannah CRM to support community building and recognition efforts. + +To be an effective leader in an open source community, you need a lot of information. How do I know who the most active members in my community are? Which companies are making the most contributions? Which contributors are drifting away and becoming inactive? Who in the community is knowledgeable about a specific topic? + +These were just a few of the questions I had when I started leading the Mautic community at Acquia. But the problem was not a shortage of information. On the contrary, there were so many places our community interacted and so many things to track that I was drowning in data. I could access plenty of data sources, but they were not helping me manage the community effectively or answering my questions. + +### Tracking all the places + +I needed to find a tool to bring all of this together and give the community leadership team a centralized place to see activity everywhere we have people discussing Mautic. More importantly, we needed a tool that could accurately track who was contributing in every way that we defined contributions. + +I tried several tools, but the most promising was the open source Community Relationship Manager Savannah CRM, a relative newcomer to the market. What stood out to me in Savannah was its focus on contribution as well as community health. Other tools I reviewed either did not have a clear concept of contributions or did not cover all the places we wanted to track. + +I started working locally by checking out the [GitHub repository][2] for the Django-based application and quickly began to see the power of bringing all of my metrics into one place. Straight away, I could see a list of new contributors, most active community members, organizations, and even an interactive display allowing me to see how contributors were connected with each other and across the different channels we use. + +![Savannah community dashboard][3] + +Image by: (Michael Hall, CC BY-SA 4.0) + +In the early days of using Savannah, this function helped identify potential leaders for teams and initiatives. The tagging feature also meant I could quickly find out who was talking about a specific topic and where those conversations were happening in the community. + +As the community matured, notifications alerting me to contributors becoming inactive started to be really helpful in prompting a personal check-in with them. Using projects to track activity and contributor funnels in specific areas of our community has helped us spot where contributions are dropping off. Having the ability to "watch" community members who previously breached the code of conduct made it much easier to keep track of their future conduct and act swiftly if there were more incidents. + +Over time we have moved to a hosted plan (mainly because we don't have the contributors to manage our own infrastructure at this time) and have continued to extend how we are using this tool. + +It's really at the heart of everything we do in our community, and it helps me proactively manage our community. It supports everything from my monthly recognition shout-outs to determining whether an organization has a sustained history of contributing that would entitle them to become—and remain—a Community Partner. + +### Tracking all the open source contributions + +Over the last two years, we have expanded what we track as a contribution in Mautic. Currently, the list includes: + +* Authoring a blog post on mautic.org +* Creating a community-focused podcast episode +* Making a pull request (PR) on any of our GitHub repositories +* Reviewing a PR on any of our GitHub repositories +* Completing a Jira issue on any of our Jira projects +* Providing help or feedback on Slack +* Having an answer accepted as a solution on the Discourse forums +* Giving help on a Reddit thread +* Organizing or speaking at an official Mautic event +* Organizing or speaking at a Meetup +* Having an answer to a question accepted on Stack Exchange + +Most of these are available out of the box with Savannah, but some, such as reviewing a PR or completing a Jira issue, we implemented with the application programming interface (API) and integrations with automation tools. + +We also track and highlight the folks who support and engage with others before they contribute, since this often helps the individual make that contribution in the future. + +### Tracking progress over time + +We have several publicly shared reports, including: + +* [Activity over the last 90 days][4] +* [Annual report][5] (2021) +* [All contributions over time][6] +* Monthly reports ([July 2022][7], [June 2022][8], [May 2022][9]) + +Any report in Savannah and any screen can be shared publicly, making it a really easy way to share things with others. + +![A pie chart reflects the amount of conversations among eight different sources. The top sources on the chart are Slack, GitHub, and Discourse. Other sources included Reddit, Stack Exchange, and RSS][10] + +Image by: (Ruth Cheesley, CC BY-SA 4.0) + +For us, it allows folks to see what is happening within the community and also offers a public way to recognize the organizations and individuals who are consistently contributing or engaging in the community. + +### New features in Savannah + +We have experimented with some of the newer features in Savannah, such as tracking when we send swag to contributors and whether it affects future contributions. Another feature I am excited to look into allows us to flag a potential contributor opportunity—for example, if we come across someone we would like to support with writing for the blog, creating a meetup group, or submitting a new feature. Savannah then allows us to track the nurturing of that contributor. + +There are often new features being added, which is great to see. Because it is an open source project, you can, of course, make your own PR to implement new features or fix bugs you come across. + +So far, Savannah has been an excellent tool for tracking our community health in the Mautic community, and it has really helped us both track and recognize contributions across our far-reaching community. I hope that you find it useful in your communities too! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/open-source-community-health-metrics-savannah + +作者:[Ruth Cheesley][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/rcheesley +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/Open%20Pharma.png +[2]: https://github.com/savannahhq/savannah +[3]: https://opensource.com/sites/default/files/2022-08/savannah.png +[4]: https://savannahcrm.com/public/overview/2b4590bf-cad0-4c71-870a-6f942a25f8fe/ +[5]: https://savannahcrm.com/public/report/be33f366-f98e-4f21-915b-cdecadd3dc0e/ +[6]: https://savannahcrm.com/public/contributions/d26d705d-c5e5-40f5-bd6a-ba1ffda474c3/ +[7]: https://savannahcrm.com/public/report/ecba71f9-a28a-48f4-a268-a499e063b000/ +[8]: https://savannahcrm.com/public/report/5b0329df-dad0-4091-85ce-373a0e7e4cf3/ +[9]: https://savannahcrm.com/public/report/c7227c78-1053-4652-b4a2-0d9a53f0f413/ +[10]: https://opensource.com/sites/default/files/2022-08/source%20of%20contributions_0.png From b3fabc8e753b2dca1fe51fda36c0b6e8485cd4fb Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 31 Aug 2022 18:55:35 +0800 Subject: [PATCH 0955/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220831=20Don-t=20Suspend=20Ubuntu=20When=20Laptop?= =?UTF-8?q?=20Lid=20is=20Closed.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...uspend Ubuntu When Laptop Lid is Closed.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md diff --git a/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md b/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md new file mode 100644 index 0000000000..9c31ce0448 --- /dev/null +++ b/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md @@ -0,0 +1,90 @@ +[#]: subject: "Don’t Suspend Ubuntu When Laptop Lid is Closed" +[#]: via: "https://itsfoss.com/laptop-lid-suspend-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Don’t Suspend Ubuntu When Laptop Lid is Closed +====== +If you use Ubuntu on a laptop, you might have noticed that the system is suspended when you close the lid. + +That’s the expected behavior. It saves the battery as well as your work. You lift the lid, the system wakes up, and you can log in and continue your work. + +That all sounds good except when you work with a multi-monitor setup. A few people, like me, prefer to have the laptop closed and only use the external monitor(s). + +But if closing the laptop lid suspends the system, it creates a problem. + +Let me show you how you can change this behavior. + +### Don’t suspend when laptop lid is closed + +Actually, I have noticed that the recent versions of Ubuntu are smarter in this sense. When the laptop is connected to a docking station and you close the lid, it doesn’t go in suspend mode. + +That’s the normal expected behavior but it may not work all the time for reasons known to Ubuntu gods. + +The good thing is that you can force change this behavior using both GUI and command line. + +Let me share both methods. + +#### Method 1: Using GNOME Tweaks + +If you are using the default GNOME desktop, you are in luck. [Install GNOME Tweaks tool in Ubuntu][1] from the software center or use this command: + +``` +sudo apt install gnome-tweaks +``` + +Once installed, start the Tweaks application. In the **General tab** from the sidebar, **toggle off the ‘Suspend when laptop lid is closed’ button**. + +![change lid close behavior ubuntu][2] + +That’s it. You should not need a restart for changes to take effect. + +Now, let’s talk about the command line method. + +#### Method 2: Change login configuration (for advanced users) + +If you look into the content of the file /etc/systemd/logind.conf, you’ll see three different types of default settings for the laptop lid closing. + +* HandleLidSwitch: When the laptop is on battery power +* HandleLidSwitchExternalPower: When the laptop is plugged into a power outlet +* HandleLidSwitchDocked: When the laptop is connected to a docking station + +![Default laptop lid closing settings][3] + +As you can see, the laptop will suspend if the lid is closed irrespective of whether it is connected to power or not. Lid closing is ignored for docking station connections. + +If you want, you can change the value of those parameters to one of these as per your preference: + +* lock: lock when lid is closed +* ignore: do nothing +* poweroff: shutdown +* hibernate: hibernate when lid is closed + +I would suggest going with `ignore` if you don’t want your system do anything special when the laptop lid is closed. + +You can either edit the /etc/systemd/logind.conf file and uncomment the said settings and change their value, or you create a new file in /etc/systemd/logind.conf.d directory. Create this directory if it doesn’t exist. + +I am not going to give you the exact commands. If you are familiar with the command line, you should be able to do it. If you are uncomfortable with the command line, please stick with the earlier GUI method. + +I hope this helps you. Let me know if you have any questions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/laptop-lid-suspend-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/gnome-tweak-tool/ +[2]: https://itsfoss.com/wp-content/uploads/2022/08/change-lid-close-behavior-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/laptop-lid-settings-ubuntu.png From 475b851e5d920d6576683518e0f4939389f3f481 Mon Sep 17 00:00:00 2001 From: lkxed Date: Wed, 31 Aug 2022 18:56:34 +0800 Subject: [PATCH 0956/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220831=2021=20Basic=20Linux=20Networking=20Command?= =?UTF-8?q?s=20You=20Should=20Know.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nux Networking Commands You Should Know.md | 595 ++++++++++++++++++ 1 file changed, 595 insertions(+) create mode 100644 sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md diff --git a/sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md b/sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md new file mode 100644 index 0000000000..4c9d4a8d4b --- /dev/null +++ b/sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md @@ -0,0 +1,595 @@ +[#]: subject: "21 Basic Linux Networking Commands You Should Know" +[#]: via: "https://itsfoss.com/basic-linux-networking-commands/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +21 Basic Linux Networking Commands You Should Know +====== +It’s not every day at It’s FOSS that we talk about the “command line side” of Linux. But as some of you readers pointed out in the internal survey (exclusive for It’s FOSS newsletter subscribers), you would also like to learn some command line tricks. + +So I compiled a list of essential Linux networking commands that helped me during my college days and gave me a firm overview of how you can use Linux on the networking side. + +These commands will help you set-up as well as troubleshoot various networking issues you may encounter with your Linux system. + +### Essential networking commands in Linux + +This compilation includes CLI utilities that will help you with troubleshooting network issues, monitoring packets, connected devices, and much more. + +Before I show the commands with some details, let me share a brief overview of all the commands which I’m going to discuss today: + +| Command | Description | +| :- | :- | +| ip | Manipulating routing to assigning and configuring network parameters | +| traceroute | Identify the route taken by packets to reach the host | +| tracepath | Gets maximum transmission unit while tracing the path to the network host | +| ping | Often used to check the connectivity between the host and the server | +| ss | Gets details about network sockets | +| dig | Gives all the necessary information about the DNS name server | +| host | Prints IP address of a specific domain and viscera | +| hostname | Mostly used to print and change the hostname | +| curl | Transfers data over the network by supporting various protocols | +| mtr | A combination of ping and traceroute is used to diagnose the network | +| whois | Gets info about registered domains, IP addresses, name servers, and more | +| ifplugstatus | Detects the link status of a local Ethernet device | +| iftop | Monitors stats related to bandwidth | +| tcpdump | Packet sniffing and analyzing utility used to capture, analyze and filter network traffic | +| ethtool | Allows users to configure Ethernet devices | +| nmcli | Troubleshooting utility for network connections | +| nmap | Primarily used to audit network security | +| bmon | An open-source utility to monitor real-time bandwidth | +| firewalld | CLI tool to configure rules of Firewall | +| iperf | Utility to measure network performance and tuning | +| speedtest-cli | CLI utility of speedtest.net to check internet speeds | +| vnstat | Mostly used to monitor network traffic and bandwidth consumption | + +Now, let’s discuss them with examples and more depth. + +Please note that not all the commands here will come preinstalled. I have added instructions for Debian/Ubuntu. For other distributions, please use your package manager. + +#### 1. IP command + +IP (Internet Protocol) is one of the most basic yet essential enough that you’d often find it being used by sysadmins, and its use cases can be ranging from manipulating routing to assigning and configuring network parameters. + +While the use cases may be endless, let me show you the most basic use case of Ip command (finding an IP address): + +``` +ip address +``` + +![ip address][1] + +Similarly, you can also use the Ip command to continuously monitor the state of devices by using `monitor` option instead of `address` that we used to get IP addresses previously. + +``` +ip monitor +``` + +![ip monitor][2] + +#### 2. traceroute + +Using the traceroute command, you can identify the route taken by packets to reach the host. And it can be quite useful when you want to interrogate the transmission of data packets and hops taken by packets. + +By default, your system may not have traceroute installed and if you’re on Debian-derivative (including Ubuntu), installation is single command ahead: + +``` +sudo apt install traceroute +``` + +For example, I’d be tracerouting packets to google.com + +``` +traceroute google.com +``` + +![traceroute google.com][3] + +By default, traceroute will utilize IPv4 but you can change this behavior by using `-6` option that will indicate traceroute to use IPv6. Let me show you how: + +![traceroute 6 google.com][4] + +#### 3. tracepath + +The tracepath command is used to discover MTU (Maximum Transmission Unit) while tracing the path to the network host. It’s quite similar to what I discussed above but it does require sudo privileges and also has no fact functions like traceroute. + +But what is MTU in the first place? + +MTU is nothing but the largest frame or packet that can be transmitted or received over the network. + +Now, let’s have a look at the basic example of tracepath with google.com + +``` +tracepath google.com +``` + +![tracepath google.com][5] + +Similarly, you can print both IP address and hostname using `-b` option. + +``` +tracepath -b google.com +``` + +![tracepath b google.com][6] + +#### 4. ping + +[The ping (Packet Internet Groper) command][7] can be considered one of the most important commands while troubleshooting your network, as it is the most common way to check the connectivity between the host and the server. + +For example, I’d be pinging google: + +``` +ping google.com +``` + +![ping google.com][8] + +Here, the last line (min/avg/max) indicates the time to get a response from the specified server. + +And if you’re getting an error saying **“bash: ping: command not found”**, you can check out our guide on [how to install Ping on Ubuntu][9]. + +#### 5. ss + +The ss (socket statistics) command is used to detail about network socket (endpoint for sending and receiving data across the network). + +To list all the listening and non-listening TCP connection, you have to use `-at` option as shown below: + +``` +ss -at +``` + +![ss at][10] + +Similarly, you can do the same with UDP ports using `-au` option: + +``` +ss -au +``` + +![ss au][11] + +#### 6. dig + +The [dig (Domain Information Groper) command][12] is used to fetch all the necessary information about the DNS name server. + +To install the dig utility on Ubuntu-based distros, follow the given command: + +``` +sudo apt install dnsutils +``` + +Now, let me show you how to get info from a specific DNS, and for this example, I’d be using itsfoss.com as DNS. + +``` +dig itsfoss.com +``` + +![dig itsfoss.com][13] + +#### 7. host + +The host command is mainly used to get the IP address of a specific domain, or you can get the domain name from a specific IP address. In other words, it’s just a DNS lookup utility. + +To find the IP of the domain, you just have to append the domain name with the host command. Let me show you how: + +``` +host itsfoss.com +``` + +![host itsfoss.com][14] + +Similarly, you can use an IP address to fetch the domain name: + +``` +host 8.8.4.4 +``` + +![host 8.8.4.4][15] + +#### 8. hostname + +You must be familiar with this command if you’ve been using Linux for a while, as this is mostly used to [change the hostname of your system][16] and NIS (Network Information System) domain name. + +When used without any options, it gets the current hostname of the system: + +``` +hostname +``` + +![hostname][17] + +Changing the hostname from a file containing the desired hostname is yet another interesting feature of this utility. + +``` +sudo hostname -F +``` + +![sudo hostname f][18] + +#### 9. curl + +The curl (Client URL) command is mostly used to transfer data over the network and supports various protocols including HTTP, FTP, IMAP, and many others. + +This tool is preferred in automation as it is built to work without any human interaction and can also be used in endpoint testing, Debugging, and error logging. + +The curl utility does not come pre-installed and if you’re on any Debian-derivative, you just have to use the following command for installation: + +``` +sudo apt install curl +``` + +It is quite easy to download files [using the curl command][19], You just have to use `-O` option with the URL, and you’d be good to go! + +``` +curl -O [URL] +``` + +![curl o url][20] + +While downloading large files, the progress bar can be quite convenient, and you can do the same with curl using `-#` option. + +![curl # o][21] + +#### 10. mtr + +It is a combination of ping and traceroute utilities and is mainly used for network diagnostics and gives live look at network response and connectivity. + +The simplest way to use mtr is to append a domain name or IP address with it, and it will give a live traceroute report. + +``` +mtr [URL/IP] +``` + +![mtr google.com][22] + +And if you want mtr to show both hostnames and IP addresses, you can pair it with `-b` option as shown below: + +``` +mtr -b [URL] +``` + +![mtr b][23] + +#### 11. whois + +The whois can help you find info about registered domains, IP addresses, name servers, and a lot more as it is the client for the whois directory service. + +This utility may not be pre-installed on your device and for installation in Ubuntu-based distro, you can use the given command: + +``` +sudo apt install whois +``` + +Generally, the whois command is paired with the domain name as given: + +``` +whois [DomainName] +``` + +![whois google.com][24] + +Alternatively, you can also use an IP address instead of a domain and you’d get the same details. + +#### 12. ifplugstatus + +The ifplugstatus is one of the most basic yet useful enough to troubleshoot connectivity at the basic level. And is used to detect the link status of a local ethernet and works similarly to mii-diag, mii-tool, and ethtool by supporting APIs for all 3. + +For installation on Ubuntu-based distros, you can follow the given command: + +``` +sudo apt install ifplugd +``` + +This utility does not have any fancy options and often used without being paired with any: + +``` +ifplugstatus +``` + +![ifplugstatus][25] + +#### 13. iftop + +The iftop (Interface TOP) is often used by admins to monitor stats related to bandwidth and can also be used as a diagnostic tool when you’re having issues with the network. + +This utility requires manual installation and can be easily installed on machines running Ubuntu by the given command: + +``` +sudo apt install iftop +``` + +When iftop is used without any options, it shows bandwidth stats of the default interface: + +``` +sudo iftop +``` + +![iftop][26] + +And you can also specify the network device by appending the device name with `-i` option. + +``` +sudo iftop -i +``` + +In my case its, `enp1s0` so my output will be as follows: + +![sudo iftop i enp1s0][27] + +#### 14. tcpdump + +The tcpdump is a packet sniffing and analyzing utility used to capture, analyze and filter network traffic. It can also be used as a security tool because it saves captured data in pcap file which can be [accessed through Wireshark][28]. + +Like many other tools, tcpdump does not come pre-installed, and you can follow the given command for installation if you’re on Ubuntu base. + +``` +sudo apt install tcpdump +``` + +Once you’re done with the installation, you can get capture packets for the current interface as given below: + +``` +sudo tcpdump +``` + +![sudo tcpdump][29] + +So how about saving captured packets in pcap file? Let me show you how: + +``` +sudo tcpdump -w Captured_Packets.pcap -i +``` + +![sudo tcpdump w][30] + +To access the saved file, you need to use `-r` option by appending file name: + +``` +sudo tcpdump -r Captured_Packets.pcap +``` + +![sudo tcpdump r filename][31] + +#### 15. ethtool + +As its name suggests, the ethtool utility is primarily concerned with managing ethernet devices. Using this utility allows you to tweak network card speed, auto-negotiation, and much more. + +But it may not be pre-installed on your machine and can be installed on a Ubuntu-powered machine by utilizing the given command: + +``` +sudo apt install ethtool +``` + +To fetch the interface details, you just have to append the device name with the command as shown below: + +``` +sudo ethtool +``` + +![sudo ethtool enp1s0][32] + +#### 16. nmcli + +Being a simple yet powerful network troubleshooting tool, it is one of the first utilities that any sysadmin would use for troubleshooting the network and can also be used in scripts. + +You can use nmcli command as given to monitor the connectivity status of devices: + +``` +nmcli dev status +``` + +![nmcli dev status][33] + +When used without any options, it will bring info about all the present devices in your system. + +``` +nmcli +``` + +![nmcli][34] + +#### 17. nmap + +The nmap is a tool to explore and audit network security. It is often used by hackers and security enthusiasts as it allows you to get real-time info on the network, IPs connected to your network in a detailed manner, port scanning, and much more. + +For installation of nmap utility on Ubuntu-based distros, utilize the given command: + +``` +sudo apt install nmap +``` + +Let’s start scanning with hostname: + +``` +nmap itsfoss.com +``` + +![nmap itsfoss.com][35] + +#### 18. bmon + +The bmon is an open-source utility to monitor real-time bandwidth and debug issues by presenting stats in a more human-friendly way. The best part of this tool is the graphical presentation and can even get your output in HTML! + +Installation is quite simple as bmon is present in default repos of popular Linux distros and that also includes Ubuntu. + +``` +sudo apt install bmon +``` + +Now, you just have to launch bmon and you’d be able to monitor bandwidth in eye pleasant way: + +``` +bmon +``` + +![bmon][36] + +#### 19. firewalld + +Managing firewalls can be considered the core part of network security and this tool allows you to add, configure and remove rules on firewall. + +But the firewalld requires manual installation, and you can utilize the given command for installation if you’re using an Ubuntu-based distro: + +``` +sudo apt install firewalld +``` + +For example, I’d show you, how you can open port 80 permanently for the public zone: + +``` +sudo firewall-cmd --permanent --zone=public --add-port=80/tcp +``` + +![sudo firewall cmd permanent zone=public][37] + +Similarly, to remove the recently added rule, you have to use `-remove` option as shown below: + +``` +sudo firewall-cmd --zone=public --remove-port=80/tcp +``` + +![sudo firewall cmd zone=public remove][38] + +#### 20. iperf + +The iperf is an open-source utility written in C allowing users to perform network performance measurement and tuning. + +This tool is present in the default repository of Ubuntu and can be installed from the given command: + +``` +sudo apt install iperf +``` + +To start monitoring the network, users must initiate this client on the server by given command: + +``` +iperf -s -u +``` + +Where, `-s` option indicates server and `-u` option is for UDP format. + +![iperf s u][39] + +Now, you can connect to your server (using `-c` option indicating client side) by providing an IP address payload for the preferred protocol. For this example, I went with UDP (using `-u` option) with a payload of 100. + +``` +iperf -c 10.0.2.15 -u 100 +``` + +![iperf c][40] + +#### 21. speedtest-cli + +As the name suggests, this is the CLI utility for the speedtest.net website. This open-source utility released under Apache 2.0 license can be quite helpful when you want a reliable source for [checking internet speeds][41] from cli. + +Installation is quite straightforward and can easily be installed utilizing the given command if you’re on an Ubuntu base: + +``` +sudo apt install speedtest-cli +``` + +Once you’re done with the installation part, you just have to use a single command to get your speeds tested: + +``` +speedtest-cli +``` + +![speedtest cli][42] + +#### 22. vnstat + +The vnstat utility is mostly used by sysadmins to monitor network traffic and bandwidth consumption (for the most part) as this tool monitors traffic on network interfaces of your system. + +As with any other networking tool, you can find vnstat in the default repositories, and if you’re on Ubuntu, the installation can be done through the given command: + +``` +sudo apt install vnstat +``` + +You can use vnstat command without any options, and it will bring basic stats of all available interfaces of your system: + +``` +vnstat +``` + +![vnstat][43] + +For live monitoring, you can pair vnstat command with `-l` option: + +how to get the most out of man pages + +![vnstat l][44] + +### A long List, right? + +This compilation is not even the tip of the iceberg and only shares the purpose and basic examples of each command because adding more would have made this even longer. + +Popular but [deprecated Linux commands][45] like ipconfig have been deliberately left out of this list. + +And if you’re curious, you can learn [how to get the most out of man pages][46]which will teach you how you can use any utility at its max potential. + +And if I forgot to mention any of your favorites, please let me know in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/basic-linux-networking-commands/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/08/ip-address-1.png +[2]: https://itsfoss.com/wp-content/uploads/2022/08/ip-monitor.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/traceroute-google.com_.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/traceroute-6-google.com_.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/tracepath-google.com_.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/tracepath-b-google.com_.png +[7]: https://linuxhandbook.com/ping-command-ubuntu/ +[8]: https://itsfoss.com/wp-content/uploads/2022/08/ping-google.com_.png +[9]: https://linuxhandbook.com/ping-command-ubuntu/ +[10]: https://itsfoss.com/wp-content/uploads/2022/08/ss-at.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/ss-au.png +[12]: https://linuxhandbook.com/dig-command/ +[13]: https://itsfoss.com/wp-content/uploads/2022/08/dig-itsfoss.com_.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/host-itsfoss.com_.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/host-8.8.4.4.png +[16]: https://itsfoss.com/change-hostname-ubuntu/ +[17]: https://itsfoss.com/wp-content/uploads/2022/08/hostname.png +[18]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-hostname-f.png +[19]: https://linuxhandbook.com/curl-command-examples/ +[20]: https://itsfoss.com/wp-content/uploads/2022/08/curl-o-url.png +[21]: https://itsfoss.com/wp-content/uploads/2022/08/curl-o.png +[22]: https://itsfoss.com/wp-content/uploads/2022/08/mtr-google.com_.png +[23]: https://itsfoss.com/wp-content/uploads/2022/08/mtr-b.png +[24]: https://itsfoss.com/wp-content/uploads/2022/08/whois-google.com_.png +[25]: https://itsfoss.com/wp-content/uploads/2022/08/ifplugstatus.png +[26]: https://itsfoss.com/wp-content/uploads/2022/08/iftop.png +[27]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-iftop-i-enp1s0.png +[28]: https://itsfoss.com/install-wireshark-ubuntu/ +[29]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-tcpdump.png +[30]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-tcpdump-w-.png +[31]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-tcpdump-r-filename.png +[32]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-ethtool-enp1s0.png +[33]: https://itsfoss.com/wp-content/uploads/2022/08/nmcli-dev-status.png +[34]: https://itsfoss.com/wp-content/uploads/2022/08/nmcli.png +[35]: https://itsfoss.com/wp-content/uploads/2022/08/nmap-itsfoss.com_.png +[36]: https://itsfoss.com/wp-content/uploads/2022/08/bmon-800x591.png +[37]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-firewall-cmd-permanent-zonepublic.png +[38]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-firewall-cmd-zonepublic-remove.png +[39]: https://itsfoss.com/wp-content/uploads/2022/08/iperf-s-u.png +[40]: https://itsfoss.com/wp-content/uploads/2022/08/iperf-c-.png +[41]: https://itsfoss.com/network-speed-monitor-linux/ +[42]: https://itsfoss.com/wp-content/uploads/2022/08/speedtest-cli.png +[43]: https://itsfoss.com/wp-content/uploads/2022/08/vnstat.png +[44]: https://itsfoss.com/wp-content/uploads/2022/08/vnstat-l.png +[45]: https://itsfoss.com/deprecated-linux-commands/ +[46]: https://linuxhandbook.com/man-pages/ From 8c02cbf4de74b9e3536c6427f012e01951fa25d0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 08:09:24 +0800 Subject: [PATCH 0957/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...loid Video Player Gets GTK 4 UI Refresh.md | 102 --------------- ...unctionalities With Version 2.1 Release.md | 117 ------------------ ...iversal Windows Customization, Windhawk.md | 40 ------ ...aptop With a HUGE 99Wh Battery Offering.md | 100 --------------- ... Source Web-Based Server Administration.md | 35 ------ ...e, And Expand Its Open Source Ecosystem.md | 36 ------ ... Emulators and Amazon Games Integration.md | 108 ---------------- ...m Specifically For Open Source Software.md | 35 ------ 8 files changed, 573 deletions(-) delete mode 100644 sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md delete mode 100644 sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md delete mode 100644 sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md delete mode 100644 sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md delete mode 100644 sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md delete mode 100644 sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md delete mode 100644 sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md delete mode 100644 sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md diff --git a/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md b/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md deleted file mode 100644 index 6d72143f54..0000000000 --- a/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md +++ /dev/null @@ -1,102 +0,0 @@ -[#]: subject: "Celluloid Video Player Gets GTK 4 UI Refresh" -[#]: via: "https://news.itsfoss.com/celluloid-0-24-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Celluloid Video Player Gets GTK 4 UI Refresh -====== -Celluloid 0.24 release gets a modern visual refresh with libadwaita and further refinements. - -![Celluloid Video Player Gets GTK 4 UI Refresh][1] - -Celluloid is a front-end for mpv (an open-source media player for the command-line). - -If you want to avoid bothering with the technical details, Celluloid is one of the best video players for Linux. Many Linux distributions offer Celluloid pre-installed as the default video player, among other essential packages. - -With Celluloid v0.24 release, it finally uses [libadwaita][2] along with other refinements. - -### 🆕 Celluloid v.0.24: Overview - -![][3] - -Recently, several applications have migrated over to GTK 4 (using libadwaita). - -Whether you hate/love the idea, the applications seem to blend in well with GNOME while providing a modern look. - -For instance, a useful [BitTorrent client][4], **Fragments**, [received a UI refresh][5] earlier this year. There are more examples as well. - -![][6] - -![][7] - -Similarly, **Celluloid v0.24** seems to hit the right spot in user experience with this move. In addition to this change, here are the key highlights of the release: - -* Migrating to GTK 4 -* Dark mode support using libadwaita. -* Redesigned control box. -* Make controls layout adaptive. -* Display chapter marks in the seek bar. -* Display chapter titles in the seek bar pop over. -* Add option to make the video area draggable. - -![][8] - -In my quick experience with Celluloid on Pop!_OS 22.04 LTS, the UI is refreshing, and works as one would expect. - -The dark mode looks perfect. By default, it respects the system choice. However, I would want an option to explicitly choose the dark/light theme. - -![][9] - -Maybe, we can hope for this addition with the next update. - -#### Suggested Read 📖 - -![][10] - -![][11] - -### 📥 Download Celluloid 0.24 - -If you are installing it from the repositories, you may not get the latest version yet (depends on your distribution). - -The best way to get the latest release is to get the Flatpak package on [Flathub][12]. You can use the software center for that or install it via the terminal using the following command: - -``` -flatpak install flathub io.github.celluloid_player.Celluloid -``` - -You can refer to our [Flatpak setup guide][13] if you are new to Linux. - -[Download Celluloid 0.24][14] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/celluloid-0-24-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/content/images/size/w1200/2022/08/celluloid-v-0-24.jpg -[2]: https://adrienplazas.com/blog/2021/03/31/introducing-libadwaita.html -[3]: https://news.itsfoss.com/content/images/2022/08/celluloid-0-24.jpg -[4]: https://itsfoss.com/best-torrent-ubuntu/ -[5]: https://news.itsfoss.com/fragments-2-0-release/ -[6]: https://news.itsfoss.com/zrythm-gtk4-alpha/ -[7]: https://news.itsfoss.com/zrythm-gtk4-alpha/ -[8]: https://news.itsfoss.com/content/images/2022/08/celluloid-about.png -[9]: https://news.itsfoss.com/content/images/2022/08/celluloid-light-0-24.jpg -[10]: https://itsfoss.com/video-players-linux/ -[11]: https://itsfoss.com/video-players-linux/ -[12]: https://flathub.org/apps/details/io.github.celluloid_player.Celluloid -[13]: https://itsfoss.com/flatpak-guide/ -[14]: https://celluloid-player.github.io/ diff --git a/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md b/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md deleted file mode 100644 index 87c4e3899a..0000000000 --- a/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md +++ /dev/null @@ -1,117 +0,0 @@ -[#]: subject: "Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release" -[#]: via: "https://news.itsfoss.com/kooha-2-1-release/" -[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release -====== -Kooha gets new feature additions to make it a more useful screen recorder for Linux. What do you think? - -![Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release][1] - -Kooha is a fairly new screen recorder for Linux. It has been in development since 2021. - -As a modern offering, it is a good pick for users who need a screen recorder for the Wayland desktop session. We've covered it earlier. - -![][2] - -![][3] - -Now, a recent update, **Kooha 2.1,** made it even better and easy to recommend. - -In case you are wondering about, what are those features? Well, I'll be sharing those right away. - -### 🆕 Kooha 2.1: Key Highlights - -![Record screen using Kooha in Linux][4] - -[Kooha][5] is a minimal screen recording application with some of the essential options. - -With the latest release, you can expect some handy features and under-the-hood changes to enhance your user experience. - -So let me start off with highlight some of the best upgrades. - -#### More Recording Delay Options - -![Delay recording using Kooha screen recording in linux][6] - -One of the key highlights for Kooha screen recorder is the ability to add a delay for recording. - -While it already had options for five or ten-second delay, with Kooha 2.1, you get a **three-second** option. - -It may not sound much of a big deal, but you get more flexibility with options. And, the ability to start a recording after a delay is one of my favorite features about it. - -#### Remember Last Selection - -![Remember last selection in kooha][7] - -Kooha will remember the last option you went with to record the screen and record that window automatically if you've enabled the option to "**Remember this selection**". - -Note that you need to have the window active for it to work. It will not launch the window for you, if you have closed it. - -If you're dealing with the same window, again and again, this feature will surely come in handy. - -#### 🛠️ Other Changes - -Along with the key highlights, there are a couple of worthwhile improvements: - -* "Show in files" notification will now lead you to files in the default file manager. -* "x264 encoder failing to initiate uneven resolution" is now fixed. -* Improved error handling. -* Codebase improvements for stability. -* Fixed minutes stuck on 00 if time is equal or more than 1 hour. - -**Note:** *Technically, Kooha 2.1.1 is the latest version, which introduced minor fixes right after the major 2.1 upgrade.* - -The newer fixes include: - -* The tooltip text was improved on the settings button. -* Kooha will fall back to manual mode while failing to get the device name using the GStreamer device monitor. - -#### Suggested Read 📖 - -![][8] - -![][9] - -### 📥 Download Kooha 2.1.1 - -The recommended way to install Kooha is to use the Flatpak package via [Flathub][10]. - -You can also head to its [GitHub page][11] to explore more. - -[Download Kooha 2.1.1][12] - -Kooha may not be an advanced screen recorder software, but it is a nice option for most users. - -*Do you think Kooha can replace your default screen recorder program? Feel free to share your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kooha-2-1-release/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/kooha-ft.jpg -[2]: https://itsfoss.com/kooha-screen-recorder/ -[3]: https://itsfoss.com/kooha-screen-recorder/ -[4]: https://news.itsfoss.com/content/images/2022/08/Delay-screen-recording-using-Kooha.png -[5]: https://itsfoss.com/kooha-screen-recorder/ -[6]: https://news.itsfoss.com/content/images/2022/08/Recording-delay-option.png -[7]: https://news.itsfoss.com/content/images/2022/08/Remember-this-selection.png -[8]: https://itsfoss.com/best-linux-screen-recorders/ -[9]: https://itsfoss.com/best-linux-screen-recorders/ -[10]: https://flathub.org/apps/details/io.github.seadve.Kooha -[11]: https://github.com/SeaDve/Kooha -[12]: https://github.com/SeaDve/Kooha diff --git a/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md b/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md deleted file mode 100644 index f207a6022f..0000000000 --- a/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md +++ /dev/null @@ -1,40 +0,0 @@ -[#]: subject: "An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk" -[#]: via: "https://www.opensourceforu.com/2022/08/an-open-source-mod-based-method-of-universal-windows-customization-windhawk/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk -====== - -![][1] - -It seems like Microsoft is eliminating customising possibilities with every new version of Windows. An open source solution called Windhawk makes an effort to revive and add new Windows customizations. Windhawk was created by Ramen Software, known for other tools like Textify and 7+ Taskbar Tweaker, to streamline the process of making adjustments to programmes and the operating system. - -An example is the developers’ own taskbar tweaker for Windows. Understanding some of the inner workings of the operating system, such as process injection or function hooking, is required to develop such an app. All programmers who want to build customizations must learn and comprehend these. Without having to construct these additional features, Windhawk was developed as a core for customizations to which anyone may contribute. - -The modular design of Windhawk is one of its key concepts. Users of Windhawk can download and install mods and tweaks that developers have created on their systems. You can run Windhawk as a portable programme or with an installation. The program’s primary interface lists a number of highlighted improvements, including Dark Mode for Notepad, mouse-over volume controls, and mouse-wheel scrolling for Chrome and Edge tabs. - -All currently offered mods are displayed when “browse for mods” is clicked. Other notable changes included in these are the ability to turn off grouping on the taskbar, providing the ability to rearrange taskbar thumbnails with the left mouse, and adding text labels for apps in Windows 11. A new page with installation options, the source code, and a preview of the tweak may be accessed by clicking the details button. The mods that are available list compatibility details, but not all of them do. - -On the local system, a fork option is available to create a customised version of a mod. Users can disable any development-related features in the Windhawk interface in the settings if they don’t want them there. - -A warning that changes may harm the system, violate privacy, or inflict other harm is displayed when you click install. To continue with the installation or cancel it, select “accept risk and install.” Installations proceed quickly and silently. To once more remove the mod from the system, the install button transforms into an uninstall button. The system adjustments could take a while to take effect. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/an-open-source-mod-based-method-of-universal-windows-customization-windhawk/ - -作者:[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/08/microsoft-1536x1024.jpg diff --git a/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md b/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md deleted file mode 100644 index f3cef1a375..0000000000 --- a/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering" -[#]: via: "https://news.itsfoss.com/infinitybook-pro-14-release/" -[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering -====== -TUXEDO Computers is back with an impressive flagship lineup, a massive battery variant, and a storage edition. Let's check them out. - -![It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering][1] - -TUXEDO Computers are one of the few manufacturers that provide fine-tuned Linux experiences out of the box. - -You can expect Ubuntu/TUXEDO OS as your default options with any of their devices, but they also support more Linux distributions. - -Now, they have come up with a refreshed product lineup, i.e., **InfinityBook Pro 14 (Gen 7).**And, it happens to be one of their flagship offerings! - -### InfinityBook Pro 14: Key Highlights - -![Tuxedo infinitybook pro 14][2] - -InifnityBook Pro 14 sports a 3K resolution display (a.k.a. *Omnia 3K display*) with a 16:10 ratio. - -To elevate your visual experience, the display supports 400 nits of brightness and complete sRGB color space coverage, so colors will be more natural. - -![tuxedo computer][3] - -It also has a matt coating to the panel that should eliminate the disturbing glares that may end up disturbing your productivity. - -Tuxedo came up with two lightweight variants for this lineup, so you can choose what your workflow demands the most without compromising portability. - -🔋 **An endurance edition with 99 Wh Battery**(*1.1 kg*)   💾  **A storage giant with 4 TB SSD (***1.3 kg***)** - -![Tuxedo infinitybook pro with 99Wh of battery][4] - -99 Wh battery for a laptop sounds like a dream come true for users who want to get more out of their portable machines. - -TUXEDO Computers claims around 10 hours of runtime while connected with active WLAN and web surfing and while used with battery saving mode/idle usage, this can go up to 16 hours! - -![Tuxedo infinitybook pro 14 with 4TB of storage][5] - -If you do not need maximum endurance, you can opt for the second variant with more storage expansion opportunity. - -You can use **x2 available M.2 slots**, by which you can upgrade your storage up to 4 TB (considering 2TB on each slot). - -To maximize storage performance/reliability, you can connect the SSDs in a RAID cluster form. - -#### Suggested Read 📖 - -[13 Places to Buy Linux Laptops in 2021][6] - -### 💻 Other Specifications - -Along with a good display, enhanced storage options, and a massive battery, you can expect a pretty solid performance with the following specifications: - -* 14-core Intel 12th gen processor (i7-12700H) equipped with 8 efficiency and 6 performance cores. -* NVIDIA GeForce RTX 3050 Ti (optional) Max-Q variant with TGP of 35 watts (boost up to 45 watts). -* Up to 64 GB DDR 3200 MHz RAM (to slots for dual-channel setup). -* Thunderbolt 4 with onboard transmission speed up to 40 Gbit/s. -* White backlit keyboard. -* Intel Wi-Fi 6 and Bluetooth 5.2. -* Full-size SD card reader. -* TUXEDO Control Center (TCC) to manage power, security, and a lot more. - -### 🏷️ Pricing & Availability - -If you want to go with the 99Wh battery variant, with *NVIDIA GeForce RTX 3050 Ti, 1x 8 GB 3200 MHz DDR4 RAM, and a 250 GB Samsung 980 EVO Plus NVMe SSD***,**it will cost you **1629,41 EUR.** - -While if you're looking for the storage edition with a 53 Wh battery, it is priced at **1587,39 EUR** and includes one *250 GB Samsung 980 EVO Plus NVMe SSD,1x 8 GB 3200 MHz DDR4 RAM, NVIDIA GeForce RTX 3050 Ti 4 GB* for the base configuration. - -It will be available to order by the end of August. As of now, you can configure, and pre-order it. - -[Get InfinityBook Pro 14][7] - -💬 *What do you think about the InifinityBook Pro 14? Does it seem interesting for you to get one? Share your thoughts in the comments below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/infinitybook-pro-14-release/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/tuxedo-infinitybook-14-.jpg -[2]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14.jpg -[3]: https://news.itsfoss.com/content/images/2022/08/image.png -[4]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14-with-99Wh-battery.jpg -[5]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14-storage-edition.jpg -[6]: https://itsfoss.com/get-linux-laptops/ -[7]: https://www.tuxedocomputers.com/en/TUXEDO-InfinityBook-Pro-14-Gen7.tuxedo# diff --git a/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md b/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md deleted file mode 100644 index 625f67b769..0000000000 --- a/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md +++ /dev/null @@ -1,35 +0,0 @@ -[#]: subject: "Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration" -[#]: via: "https://www.opensourceforu.com/2022/08/webmin-2-0-is-now-available-for-open-source-web-based-server-administration/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration -====== -With its significant “v2.0” release, Webmin, a well-liked open source web-based server administration/management software package that is a popular alternative to programmes like cPanel and Plesk, is now available. - -Webmin’s safe web browser-based interface makes it simple to manage Linux servers. This programme is still primarily Perl-based and BSD-licensed. In the twenty years that Webmin has been used to manage Linux servers, it has placed a strong emphasis on preserving backwards compatibility. Years ago, there was talk about reworking much of the code and getting rid of a lot of the legacy support, including support for out-of-date Perl versions and end-of-life operating systems. For Webmin 2.0, this ultimately wasn’t the case. - -Webmin 2.0 was released this week as a more incremental improvement over the Webmin 1.xxx releases. Originally, the bump to Webmin 2.0 would have been deleting the legacy support that has accrued over the years. Webmin 2.0 now enforces the HTTP Strict Transport Security (HSTS) policy for its SSL enabled mode, improves HTTP to HTTPS redirection, supports managing multiple Webmin versions on systems based on systemd, improves upgrading between minor Webmin versions, and more. - -Another significant improvement in Webmin 2.0 is the addition of support for AMD CPU temperature reporting within the administration interface. - -Webmin 2.0 includes fixes such as restarting dependant services when firewalld is restarted, keeping Usermin and Webmin’s service status when upgrading packages, and more. You can download Webmin 2.0 (v2.000) from [GitHub][1]. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/webmin-2-0-is-now-available-for-open-source-web-based-server-administration/ - -作者:[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://github.com/webmin/webmin/releases/tag/2.000 diff --git a/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md b/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md deleted file mode 100644 index 8a2be8721b..0000000000 --- a/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md +++ /dev/null @@ -1,36 +0,0 @@ -[#]: subject: "NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem" -[#]: via: "https://www.opensourceforu.com/2022/08/nginx-pledges-to-update-improve-and-expand-its-open-source-ecosystem/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem -====== -The maker of the well-known web server with the same name, NGINX, unveiled a number of upgrades at its free NGINX Sprint conference for open source programmers looking to create the newest applications. It also discussed its development over the last 18 years and presented its future vision, which will be based on the three promises of modernise, optimise, and extend. - -Code management, decision-making transparency, and community involvement are all aspects of modernization that go beyond just the code itself. All of its future projects will be hosted on GitHub rather than the Mercurial version control system, as part of this and a recognition that the open-source world exists there. In addition, it will carefully consider community input and add codes of conduct to all of its projects. - -It intends to launch a new SaaS service that connects with NGINX Open Source in order to enhance the developer experience. It also intends to remove the paywall from several essential NGINX Open Source and NGINX Plus capabilities so that customers can access them without charge. One item that will be made accessible in this way is DNS service discovery, and the business is appealing for user input on what else should be free in its Slack channel. - -The third pledge is to keep developing NGINX’s functionality. Currently, NGINX is most frequently utilised as a Layer 7 data plane, necessitating the adoption of numerous workarounds by developers for different deployment components. It aims to expand NGINX so that an open-source component that integrates with NGINX can fulfil each criteria for testing and deployment. - -With the announcement of three upgrades that support these objectives, the company has already begun to fulfil these commitments. First, it will concentrate on its NGINX Kubernetes Gateway rather than its Kubernetes Ingress controller. Earlier this year, NGINX Kubernetes Gateway, a controller that implements the Kubernetes Gateway API, was made available. - -The introduction of NGINX Agent, a compact application that can be installed alongside NGINX Open Source instances, was also announced. Features that were previously exclusively found in commercial offers will be included. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/nginx-pledges-to-update-improve-and-expand-its-open-source-ecosystem/ - -作者:[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 diff --git a/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md b/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md deleted file mode 100644 index 2d77c32b17..0000000000 --- a/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration" -[#]: via: "https://news.itsfoss.com/lutris-0-5-11-release/" -[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration -====== -Lutris 0.5.11 is a nice update with new Macintosh emulators and Amazon Games integration. - -![Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration][1] - -Lutris is an open-source game manager on Linux, giving you easy access to all kinds of game clients like Ubisoft Connect, Epic Games Store, and more. - -It made things so much easier for many Linux users. We also interviewed its creator in the past, with an insightful conversation: - -[The Progress Linux has Made in Terms of Gaming is Simply Incredible: Lutris Creator][2] - -Now, with the latest update to it (a minor release), we have some exciting feature additions! - -### 🆕 Lutris 0.5.11: What's New? - -![Lutris 0.5.11][4] - -Being a point release, you may not notice any visual changes, but you get some new features and fixes to improve your user experience. - -First, I'd like to mention some key features in this release: - -* Integration for Amazon Games launcher. -* Added support for open-source Macintosh emulators named SheepShaver, BasiliskII, and Mini vMac. -* Made changes to shortcuts to toggle installed (Ctrl + i) games and hidden games (Ctrl + h). -* Gnome terminal and Deepin terminal are now recognized as terminal emulators. -* Added support for Gamescope on Nvidia driver 515 and above. - -Let me discuss more about the changes: - -#### 🕹️ Amazon Prime Games Integration - -![Lutris with Amazon prime gaming support][5] - -This may not sound much, but Amazon's game launcher is a Windows-specific thing for playing games. Now, thanks to the integration support by Lutris, you can access and try playing the games available under Wine. - -You can enable Amazon Prime Gaming from **Preference>Sources**. - -#### 🖥️ Addition of Open-Source Macintosh emulators - -![Lutris with support for open-source macintosh emulators][6] - -This release has added three Macintosh open-source runners (emulators). - -Curious about what they do? - -Well, two of them (Basilisk II and Mini vMac) are made to run 32-bit Macintosh machines. And, the third one, SheepShaver, is made to run programs from the PowerPC Macintosh lineup. - -#### ⌨️ Recognize GNOME Console and Deepin Terminal - -![Running games in Linux terminal with Lutris][7] - -With this point release, the support for the GNOME console and Deepin terminal was added to emulate text-based programs. - -So, you no longer have to rely on what Lutris gives you by default! - -#### 🛠️ Other Changes - -Along with the highlights, another key change includes the s**upport for Gamescope** for Nvidia drivers 515 and above. - -Gamescope can be paradise while playing low-resolution games as it helps you to upscale the resolution. - -Some other fixes and refinements include: - -* Commands exiting with return code 256 for some installer is fixed. -* Lutris will no longer perform runtime even if the game is launched through shortcuts. -* Random crashes are now fixed when Lutris was not able to determine screen resolution. -* When Mangohud was used alongside Gamescope, it often crashed, which is now fixed. - -#### 📥 Download Lutris 0.5.11 - -There are many ways to download the latest Lutris version for your Linux system. I would recommend using the Flatpak package from [Flathub][10]. - -You can also install it from your software center, or visit the official website to explore more options. - -[Download Lutris][11] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/lutris-0-5-11-release/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/lutris-0-5-11-update.jpg -[2]: https://news.itsfoss.com/lutris-creator-interview/ -[4]: https://news.itsfoss.com/content/images/2022/08/Lutris.png -[5]: https://news.itsfoss.com/content/images/2022/08/Amazon-Prime-games-integration.png -[6]: https://news.itsfoss.com/content/images/2022/08/Macintosh-emulators-1.png -[7]: https://news.itsfoss.com/content/images/2022/08/Deepin-terminal.png -[8]: https://itsfoss.com/epic-games-linux/ -[10]: https://flathub.org/apps/details/net.lutris.Lutris -[11]: https://lutris.net/ diff --git a/sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md b/sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md deleted file mode 100644 index c051137b61..0000000000 --- a/sources/news/20220830 Google Reveals Vulnerability Reward Program Specifically For Open Source Software.md +++ /dev/null @@ -1,35 +0,0 @@ -[#]: subject: "Google Reveals Vulnerability Reward Program Specifically For Open Source Software" -[#]: via: "https://www.opensourceforu.com/2022/08/google-reveals-vulnerability-reward-program-specifically-for-open-source-software/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Google Reveals Vulnerability Reward Program Specifically For Open Source Software -====== -In 2010, Google introduced the Vulnerability Reward Program (VRP). As the name implies, it encourages security researchers and professionals to find security flaws and exploits and then disclose them in confidence to the vendor. These defects would then be rectified by the business after being reported, and the person who discovered the problem would be granted a cash reward. Google has been working to broaden the platform’s reach and consolidate it over the last few years. The business has today disclosed yet another growth, this time in the area of open source software (OSS). - -With projects like Golang, Angular, and Fuchsia under its wing, Google has underlined that it is one of the largest donors and maintainers of OSS and that it is aware of the need to secure this area. As a result, its OSS VRP programme is made to promote consistent effort on this front as well. Any OSS code that is part of Google’s portfolio is the target of OSS VRP. This includes any OSS dependencies that are maintained by other vendors in addition to the projects that it manages. The following definitions apply to the two OSS categories covered by this VRP: - -* All current open source software (including repository settings) is kept in the open repositories of GitHub organisations controlled by Google. -* The third-party dependencies of such projects (before submission to Google’s OSS VRP, notice of the affected dependence is required). - -Google is currently accepting reports for supply chain compromise, design flaws, and basic security concerns including weakened or compromised credentials or unsecured deployments. The greater barrier targets more delicate projects like Bazel, Angular, Golang, Protocol buffers, and Fuchsia. Reward levels start at $100 and rise to $31,337. - -Google aspires to increase OSS security through this community-driven collaborative endeavour. The programme is a part of the $10 billion cybersecurity investment that Google unveiled a year ago during a meeting with American President Joe Biden. In order to identify malicious open source packages, Google pledged support for the Open Source Security Foundation’s (OpenSSF) Package Analysis Project back in April. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/google-reveals-vulnerability-reward-program-specifically-for-open-source-software/ - -作者:[Laveesh Kocher][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.opensourceforu.com/author/laveesh-kocher/ -[b]: https://github.com/lkxed From e410f4d6c6a6d79ce15cda528c72ef52ac82fe2d Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Wed, 31 Aug 2022 19:13:36 -0500 Subject: [PATCH 0958/3123] Finish translating. --- ...date vs upgrade- What-s the Difference-.md | 147 ------------------ ...date vs upgrade- What-s the Difference-.md | 147 ++++++++++++++++++ 2 files changed, 147 insertions(+), 147 deletions(-) delete mode 100644 sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md create mode 100644 translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md diff --git a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md deleted file mode 100644 index 5e35a116ba..0000000000 --- a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "sudo apt update vs upgrade: What’s the Difference?" -[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "Yufei-Yan" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -sudo apt update vs upgrade: What’s the Difference? -====== - -If you want to keep your Ubuntu or Debian system updated, you use the combination of **sudo apt update** and **sudo apt upgrade** commands. - -Some older tutorial also mention **sudo apt-get update** and **sudo apt-get upgrade**. - -Both apt and apt-get commands work pretty much the same except for some minor differences that I’ll discuss later in this later. - -Let’s first discuss the difference between update and upgrade. Are not the two the same thing? - -### Difference between apt update and upgrade - -Though it sounds like running the apt update will give you the latest version of the package, it’s not true. The update command only gets the information about the latest version of packages available for your system. It doesn’t download or install any package. It is the apt upgrade command that actually downloads and upgrades the package to the new version. - -Still confused? Let me explain a bit more. I advise [reading up on the concept of package manager][1]. It will help you understand things even better. - -![Linux Package Manager Explanation][2] - -Basically your system works on a database (cache) of available packages. Note that this cache or database doesn’t contain the packages themselves, just the metadata (version, repository, dependency etc) on the package. - -If you don’t update this database, the system won’t know if there are newer packages available or not. - -When you run the apt update or apt-get update command, it will fetch the updated metadata (package version etc) on the packages. - -![apt update][3] - -Your local package cache has been updated and there are packages that can be upgraded. You can upgrade all of the (upgradable) packages with sudo apt upgrade. - -It shows the packages that are going to be upgraded and ask you to confirm by pressing enter (for default choice Y) or Y key. To cancel the upgrade at this stage, you can press N. - -![apt upgrade][4] - -If it helps you remember: - -* apt update: updates the package cache (to know which package versions can be installed or upgraded) -* apt upgrade: upgrades packages to the new version - -Since these are administrative commands, you need to run them as root. And hence you use sudo with both commands. The sudo part lets you run commands as root in Ubuntu and Debian. - -Now that you understand how the combination update and upgrade works, let’s discuss the use of apt and apt-get. - -### apt or apt-get? Which one should you be using? - -Debian and Ubuntu use the APT package management system. Don’t confuse it with the apt command. - -There are many commands that interact with the APT package management; apt-get, apt, dpkg, aptitude etc. - -The apt-get command was the most popular of them all. It is a low-level, feature rich command. apt is a newer and simpler version of apt-get. - -You can [read this article to learn on the differences of apt and apt-get commands][5]. Let me focus on difference between the update and upgrade options of these commands. - -#### apt update vs apt-get update - -Both `apt-get update` and `apt update` do the same task of updating the local package cache so that your system is aware of the available package versions. - -Technically, there is no difference. However, apt update does one thing better than apt-get update. It **tells you the number of packages that can be upgraded**. - -``` -Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease -Fetched 213 kB in 4s (55.8 kB/s) -Reading package lists... Done -Building dependency tree... Done -Reading state information... Done -6 packages can be upgraded. Run 'apt list --upgradable' to see them. -``` - -apt-get update doesn’t even tell you if any package can be upgraded. - -![apt get update][6] - -![apt update output][7] - -You can see the [list of upgradable packages][8] with apt but apt-get doesn’t have this option. - -``` -[email protected]:~$ apt list --upgradable -Listing... Done -fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] -gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] -gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] -gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1] -libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] -vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1] -``` - -Let’s talk compare the upgrade option of both commands. - -#### apt upgrade vs apt-get upgrade - -Both apt-get upgrade and apt upgrade commands install the newer version of the upgradable packages based on the data in the local package cache (refreshed by the update command). - -However, the apt upgrade command does couple of things differently than its apt-get counterpart. - -The **apt upgrade command can upgrade the Linux kernel version, apt-get upgrade cannot** do that. You need to use [apt-get dist-upgrade][9] for upgrading the kernel version with apt-get command. - -![apt-get upgrade command cannot upgrade Linux kernel version][10] - -This is because upgrading the kernel version means installing a completely new package. apt-get upgrade command cannot install a new package. It can only upgrade existing packages. - -Another small thing that apt upgrade does better than apt-get upgrade is to **show a progress bar** at the bottom. - -![apt upgrade progress bar][11] - -### Conclusion - -The word update and upgrades are similar and this is why it confuses a lot of new users. At times, I think the apt update command should be merged with the apt upgrade command. - -I mean the upgrade (of installed package versions) works in conjugation with the update (of local package metadata cache). Why have two separate commands for that? Combine them in a single upgrade command. This is what Fedora has done with the DNF command. That’s just my opinion. - -I hope this article cleared some air around the usage of apt-get update, apt-get upgrade and apt update and apt upgrade commands. - -Do let me know if you have any questions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/apt-update-vs-upgrade/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/package-manager/ -[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png -[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png -[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png -[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ -[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png -[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png -[8]: https://itsfoss.com/apt-list-upgradable/ -[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ -[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png -[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png diff --git a/translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md new file mode 100644 index 0000000000..29788ad09d --- /dev/null +++ b/translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md @@ -0,0 +1,147 @@ +[#]: subject: "sudo apt update vs upgrade: What’s the Difference?" +[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "Yufei-Yan" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +sudo apt update 和 upgrade:区别是什么? +====== + +如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用 **sudo apt update** 和 **sudo apt upgrade** 命令组合。 + +一些以前的教程也会提到 **sudo apt-get update** 和 **sudo apt-get upgrade**。 + +apt 和 apt-get 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。 + +我们首先讨论一下 update 和 upgrade 的区别。这两个难道不是一样的吗? + +### apt update 和 upgrade 的区别 + +尽管听上去运行 apt update 可以给你一个包的最新版本,然而这并不正确。update命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 apt upgrade 命令来把这些包下载和升级到最新版本。 + +还是有点困惑?让我来接着解释。我建议[阅读包管理器的概念][1]。这个会帮你更好的理解这些东西。 + +![Linux Package Manager Explanation][2] + +基本上,你的系统在一个所有可用包的数据库(缓存)上工作。注意,这个缓存或者数据库并不包含这些包本身,仅仅是关于包的元数据(版本,仓库,依赖等)。 + +如果你不更新这个数据库,系统就不会知道是否有更新的版本。 + +当你运行 apt update 或者 apt-get update 命令,它会获取这些包的最新元数据(包的版本等)。 + +![apt update][3] + +这时候本地缓存就被更新了,有一些包可以升级。用 sudo apt upgrade 可以升级所有(可升级的)包。 + +它会显示要升级的包,并且通过回车(默认选择是 Y)或者点击 Y 键进行确认。要在这个阶段取消升级,可以点击 N。 + +![apt upgrade][4] + +下面这些可能会帮助你记忆: + +* apt update:更新包缓存(可以知道包的哪些版本可以被安装或升级) +* apt upgrade:升级包到最新版本 + +因为有一些管理员命令,需要作为 root 运行。因此需要使用 sudo 配合其他命令。sudo 使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。 + +既然理解了 update 和 upgrade 是如何一起运行的,我们来讨论一下 apt 和 apt-get 的用法。 + +### apt 还是 apt-get?应该用哪个? + +Debian 和 Ubuntu 使用的是 APT 包管理系统。不要和 apt 命令弄混了。 + +有许多和 APT 包管理交互的命令;apt-get、apt、dpkg、aptitude等。 + +这里面最受欢迎的就是 apt-get 命令。它是一个低层级low-level且功能丰富的命令。apt 是 apt-get 命令的简化版本。 + +可以[读一下这篇文章来了解 atp 和 apt-get 命令的不同][5]。下面重点讨论这些命令中 update 和 upgrade 选项的区别。 + +#### apt update vs apt-get update + +`apt-get update` 和 `apt update` 做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。 + +从技术上讲,其实并没有区别。然而,apt update 在一个方面比 apt-get update 做的好,**它会告诉你可升级的包的数量**。 + +``` +Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease +Fetched 213 kB in 4s (55.8 kB/s) +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +6 packages can be upgraded. Run 'apt list --upgradable' to see them. +``` + +apt-get update 甚至不会告诉你包是否可以升级。 + +![apt get update][6] + +![apt update output][7] + +从 apt 中可以看到[列出可升级的包][8],而 apt-get 甚至没有这个选项。 + +``` +[email protected]:~$ apt list --upgradable +Listing... Done +fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] +gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] +gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] +gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1] +libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] +vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1] +``` + +现在来比较一下两个命令中 upgrade 的选项。 + +#### apt upgrade vs apt-get upgrade + +apt-get upgrade 和 apt upgrade 命令根据本地包缓存(通过 update 命令更新)的数据,安装可升级包的最新版本。 + +然而,apt upgrade 命令会做两件与 apt-get upgrade 不同的事情。 + +**apt upgrade 命令可以升级 Linux 内核版本,apt-get upgrade 不能**。apt-get 命令需要使用 [apt-get dist-upgrade][9] 来升级内核版本。 + +![apt-get upgrade command cannot upgrade Linux kernel version][10] + +这是因为升级内核版本意味着安装一个全新的包。apt-get upgrade 命令不能安装一个新的包。它只能升级现有的包。 + +apt upgrade 比 apt-get 做的好的另一件小事是,它会在底部**显示一个进度条**。 + +![apt upgrade progress bar][11] + +### 总结 + +update 和 upgrade 两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 apt update 命令应该和 apt upgrade 命令合并。 + +我意思是 upgrade(所有已安装的包)和 update(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 upgrade 命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。 + +我希望这篇文章可以解释一些关于 apt-get update,apt-get upgrade 和 apt update 以及 apt upgrade 命令的问题。 + +如果有任何问题,请与我联系。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-update-vs-upgrade/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[https://github.com/Yufei-Yan](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/package-manager/ +[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png +[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png +[8]: https://itsfoss.com/apt-list-upgradable/ +[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ +[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png From 3292a85a778e78beada9407c7f7ec31c4c0d571d Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 1 Sep 2022 08:32:47 +0800 Subject: [PATCH 0959/3123] translated --- ...ate and Switch Workspaces in Linux Mint.md | 84 ------------------- ...ate and Switch Workspaces in Linux Mint.md | 84 +++++++++++++++++++ 2 files changed, 84 insertions(+), 84 deletions(-) delete mode 100644 sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md create mode 100644 translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md diff --git a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md b/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md deleted file mode 100644 index 7b95ac4a2b..0000000000 --- a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md +++ /dev/null @@ -1,84 +0,0 @@ -[#]: subject: "How to Create and Switch Workspaces in Linux Mint" -[#]: via: "https://itsfoss.com/workspaces-linux-mint/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Create and Switch Workspaces in Linux Mint -====== -Workspaces are a nice, neat way to organize your work. - -Suppose you have too many applications open. Your taskbar will be cluttered and it might be difficult for you to find/move between different programs. - -Workspaces come in handy in this situation. You can group applications in different workspaces. So, let’s say you have many programming-related applications opened. And you are also working on documentation. - -You can organize them in separate workspaces. Click and drag an application window and it should show the option for moving the application to a different workspace. - -This will ease your work in a more organized way and will save some time as well as frustration. - -Sounds good? Let me show you how to create workspaces in Linux Mint with [Cinnamon][1] and switch between them. - -### Create new workspaces - -Creating or accessing a workspace in Linux Mint is easy. Just press `CTRL + ALT+ UP`. It will show you a screen like the one below. - -Just click on the + sign on the right side to add a new workspace other than the default 4. - -![Workspace Overview in Linux Mint][2] - -The workspaces in Linux Mint are persistent. Once created, these workspaces will always be there, even after the next boot. - -### Switching between workspaces - -There are two ways to access the workspaces and switch between them. - -* Use Ctrl+Alt+Up arrow key and bring all the workspaces and then move between them using the arrow key or the mouse itself. -* Use the hot corner and move the mouse in the top left corner. - -By default, the Hot Corner feature is disabled in the latest releases of Linux Mint. - -To enable Hot Corner to switch between workspaces, you should go to the System Settings and select **Hot Corners** option. - -![Hot Corners Option in System Settings][3] - -Now, enable the top left corner by toggling the button. By default, this corner is dedicated to show all workspace (you can change that as well). - -![Show All Workspaces in Top Left Corner][4] - -You can now access the workspaces grid by hovering over the top left corner. - -Also, if you want, you can add new workspaces by pressing the **+** symbol on the right. Or rename existing workspaces by clicking on the name according to your need. - -![Workspace Overview Accessible from Top Left Corner][5] - -### Delete a workspace - -You can in fact create several workspaces by clicking the + sign. In case you want to delete a workspace, click on the **X** sign on the top right of a workspace while hovering over it. - -![Delete a Workspace][6] - -I hope this quick post helped you to create a workspace in Linux Mint. Do you use workspaces frequently? Let us know your views on workspaces. Meanwhile, you may also check a post on [things to do after installing Linux Mint 20][7]. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/workspaces-linux-mint/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/quickly-fix-broken-unity-installing-cinnamon-20-ubuntu-1310/ -[2]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-in-linux-mint.png -[3]: https://itsfoss.com/wp-content/uploads/2022/08/hot-corners-option-in-system-settings.png -[4]: https://itsfoss.com/wp-content/uploads/2022/08/show-all-workspaces-in-top-left-corner.png -[5]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-accessible-from-top-left-corner-1.png -[6]: https://itsfoss.com/wp-content/uploads/2022/08/delete-a-workspace.png -[7]: https://itsfoss.com/things-to-do-after-installing-linux-mint-20/ diff --git a/translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md b/translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md new file mode 100644 index 0000000000..da3bfc901e --- /dev/null +++ b/translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md @@ -0,0 +1,84 @@ +[#]: subject: "How to Create and Switch Workspaces in Linux Mint" +[#]: via: "https://itsfoss.com/workspaces-linux-mint/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux Mint 中创建和切换工作区 +====== +工作区是组织工作的好方法。 + +假设你打开了太多应用。你的任务栏会很混乱,你可能很难在不同的程序之间查找/移动。 + +在这种情况下,工作区会派上用场。你可以对不同工作区中的应用进行分组。因此,假设你打开了许多与编程相关的应用。你也在处理文档。 + +你可以将它们组织在单独的工作区中。单击并拖动应用窗口,它应该显示将应用移动到不同工作区的选项。 + +这将以更有条理的方式简化你的工作,并节省一些时间和挫败感。 + +听起来不错?让我向您展示如何在带 [Cinnamon][1] 环境的 Linux Mint 中创建工作区并在它们之间切换。 + +### 创建新工作区 + +在 Linux Mint 中创建或访问工作区很容易。只需按 `CTRL + ALT+ UP`。它将向你显示如下所示的屏幕。 + +只需单击右侧的 + 号即可添加默认 4 以外的新工作区。 + +![Workspace Overview in Linux Mint][2] + +Linux Mint 中的工作区是持久的。创建后,这些工作区将始终存在,即使在下次启动后也是如此。 + +### 在工作区之间切换 + +有两种方法可以访问工作区并在它们之间切换。 + +* 使用 Ctrl+Alt+向上箭头键,将带上所有工作区,然后使用箭头键或鼠标本身在它们之间移动。 +* 使用热角(hot corner)并在左上角移动鼠标。 + +默认情况下,最新版本的 Linux Mint 中禁用热角功能。 + +要启用热角在工作区之间切换,你应该进入系统设置并选择 **Hot Corners** 选项。 + +![Hot Corners Option in System Settings][3] + +现在,通过切换按钮启用左上角。默认情况下,此角专用于显示所有工作区(你也可以更改它)。 + +![Show All Workspaces in Top Left Corner][4] + +你现在可以通过将鼠标悬停在左上角来访问工作区网格。 + +此外,如果需要,你可以按右侧的 **+** 符号添加新工作区。或根据需要通过单击名称来重命名现有工作区。 + +![Workspace Overview Accessible from Top Left Corner][5] + +### 删除工作区 + +实际上,你可以通过单击 + 号来创建多个工作区。如果你想删除工作区,请单击工作区右上角的 **X** 号,同时将鼠标悬停在该工作区上。 + +![Delete a Workspace][6] + +我希望这篇快速文章能帮助你在 Linux Mint 中创建工作区。你经常使用工作空间吗?让我们知道你对工作空间的看法。同时,你还可以查看[安装 Linux Mint 20 后要做的事情][7]的帖子。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/workspaces-linux-mint/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/quickly-fix-broken-unity-installing-cinnamon-20-ubuntu-1310/ +[2]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-in-linux-mint.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/hot-corners-option-in-system-settings.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/show-all-workspaces-in-top-left-corner.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-accessible-from-top-left-corner-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/delete-a-workspace.png +[7]: https://itsfoss.com/things-to-do-after-installing-linux-mint-20/ From 024e2ccd75e9f51bdcb8808b21ddb5aa3d612e3d Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 1 Sep 2022 08:36:08 +0800 Subject: [PATCH 0960/3123] translating --- .../20211203 Introduce the different Fedora Linux editions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211203 Introduce the different Fedora Linux editions.md b/sources/tech/20211203 Introduce the different Fedora Linux editions.md index 890347e245..f49494aa01 100644 --- a/sources/tech/20211203 Introduce the different Fedora Linux editions.md +++ b/sources/tech/20211203 Introduce the different Fedora Linux editions.md @@ -2,7 +2,7 @@ [#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/" [#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 62be188859003a377b26b034018282e4fd101f9d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 12:27:23 +0800 Subject: [PATCH 0961/3123] ALL @wxy https://linux.cn/article-14988-1.html --- ...n to Consider a Non-Free Firmware Image.md | 75 +++++++++++++++++++ ...n to Consider a Non-Free Firmware Image.md | 71 ------------------ 2 files changed, 75 insertions(+), 71 deletions(-) create mode 100644 published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md delete mode 100644 sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md diff --git a/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md b/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md new file mode 100644 index 0000000000..e3d9390ac4 --- /dev/null +++ b/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md @@ -0,0 +1,75 @@ +[#]: subject: "Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image" +[#]: via: "https://news.itsfoss.com/debian-non-free/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14988-1.html" + +Debian 终于开始讨论非自由固件镜像了 +====== + +> Debian 终于开始考虑将非自由固件纳入一般决议中了。那么,将会如何呢? + +![Debian 终于开始考虑非自由固件映像的一般决议][1] + +由于其稳定性和新功能之间的平衡的做法,Debian 是最受欢迎的 Linux 发行版之一。 + +但是,它并没有配备任何非自由固件。 + +对于想在新硬件上使用 Debian 的用户来说,这已经成为一个问题。 + +大多数最新的设备和配置都需要非自由固件来使其工作,这包括 Wi-Fi、图形显示等等。 + +为了解决这个问题,前 Debian 项目负责人、开发者 Steve McIntyre 已经对此积极讨论了一段时间。最近在 DebConf 22 会议上,正如 [Geeker's Digest][2] 所发现的那样,Steve 谈到了修复固件的混乱局面,更好地向用户和开发者表明了这一点。 + +现在社区中讨论的进展是,看起来 Debian 已经启动了一项一般决议,让其利益相关者投票决定如何处理非自由固件的问题。 + +### Debian 的一般决议提案 + +这个一般决议案有四个提案(LCTT 译注:原文和官方提案说明不够清晰,我根据理解重新梳理了): + +* 提案 A:改变原有的官方镜像集(安装镜像和实况镜像),Debian 将在官方镜像中包含非自由固件包。包含的固件将在检测到需求时默认启用。然而,它也将包括让用户在启动时禁用的方法。(截止本文发表时的提案支持人数:17) +* 提案 B:不改变原有的镜像集,保留原来的不包含非自由固件的镜像,另外单独提供包含非自由固件的官方镜像。新的镜像下载链接将更醒目以方便新用户找到它们,而原来的镜像的视觉优先级将变低。(截止本文发表时的提案支持人数:10) +* 提案 C:和提案 B 类似,但告知用户他们正在下载的内容,使其可与不包含非自由固件的镜像一起下载。(截止本文发表时的提案支持人数:6) +* 提案 D:继续遵守《Debian 社会契约Debian Social Contract》第 1 节和第 5 节的精神,继续保持现状,不在 Debian 中包含任何非自由软件,但支持它们的使用,并欢迎其他人分发这样的作品。(截止本文发表时的提案支持人数:6) + +这些是一些有趣的建议。我认为提案 A 对所有人都很方便,同时给高级用户禁用非自由固件的机会。 + +你可以在 [官方网页][3] 中了解更多关于一般决议的信息。 + +你怎么看? + +### 将非自由固件纳入官方发行版中 + +至于目前的情况,你可以找到带有非自由固件的“**非官方**”的 Debian 镜像。 + +然而,并不是每个用户都知道它,即使它在 Debian 的下载页面上被宣传,“**非官方**”的说法也不会让用户比推荐的镜像更喜欢。 + +此外,当用户可以选择任何基于 Ubuntu 的发行版或 Ubuntu 作为替代品时,期望他们安装非自由固件是违反直觉的。 + +不仅仅限于这些问题,Steve 在他的 [博客][4] 中还提到了其他一些问题,包括: + +* 维护独立的非自由镜像是很耗时的。 +* 由于缺乏非自由固件,许多用户不喜欢官方镜像。 + +*那么,你认为 Debian 的一般决议的投票结果是什么?一个单独的介质镜像?还是把它包括在官方镜像中?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/debian-non-free/ + +作者:[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/content/images/size/w1200/wordpress/2022/07/debian-non-free-firmware.jpg +[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ +[3]: https://www.debian.org/vote/2022/vote_003#timeline +[4]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do diff --git a/sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md b/sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md deleted file mode 100644 index fd93ccde34..0000000000 --- a/sources/news/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md +++ /dev/null @@ -1,71 +0,0 @@ -[#]: subject: "Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image" -[#]: via: "https://news.itsfoss.com/debian-non-free/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image -====== -Debian's finally considering the inclusion of non-free firmware with a general resolution. So, what's it going to be? - -![Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image][1] - -Debian is one of the most loved Linux distributions for its approach to stability and a balance between new features. - -But, it does not come with any non-free firmware. - -And, that is becoming an issue for users who want to use Debian on newer hardware. - -Most of the latest devices and configurations need non-free firmware to make things work, which includes Wi-Fi, graphics, and more. - -To address that, **Steve McIntyre**, a Debian developer and a former Debian project leader, has been actively discussing the issue for a while. At the**DebConf 22 conference**, Steve recently talked about fixing the firmware mess to highlight this better to users and developers, as spotted by [Geeker’s Digest][2].**As an update to the discussion** among the community: it looks like Debian has started a general resolution to let its stakeholders vote what to do with non-free firmware. - -### Debian's General Resolution Proposals - -There are **three proposals** with the general resolution. - -* Proposal A: Debian will include non-free firmware packages on official media installer images. The included firmware will be enabled by default where it detects the requirement. However, it will also include ways for users to disable this at boot. -* Proposal B: Include non-free firmware packages as official media images, but as a separate offering alongside the files with no non-free firmware. -* Proposal C: Make distribution media containing packages from non-free section and make it available for download alongside the free media by informing the user what they are downloading. - -These are some interesting proposals. I think Proposal A would be convenient for all, while giving advanced users the chance to disable non-free firmware. - -You can learn more about the general resolution in the [official page][3]. - -💬 **What do you think?** - -### Including Non-Free Firmware in Official Releases - -As for the current situation, you can find an unofficial Debian image with non-free firmware. - -However, not every user is aware of it, and even if it is promoted on Debian’s download page, **“unofficial**” term is not something a user will prefer over the recommended image. - -Furthermore, it is counter-intuitive to expect users to install non-free firmware when they can choose any Ubuntu-based distribution or Ubuntu as an alternative. - -Not just limited to these issues, Steve mentioned a few other problems with it in his [blog][4] that include: - -* Maintaining separate non-free images is time-consuming. -* The official images are not preferred by many users because of the lack of non-free firmware. - -*So, what do you think Debian's general resolution get vote for? A separate media image? Or include it with the official image?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/debian-non-free/ - -作者:[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/content/images/size/w1200/wordpress/2022/07/debian-non-free-firmware.jpg -[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/ -[3]: https://www.debian.org/vote/2022/vote_003#timeline -[4]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do From 79f838ae7ca5a84bebd85099c8ec970b6605692e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 12:39:50 +0800 Subject: [PATCH 0962/3123] R --- ... General Resolution to Consider a Non-Free Firmware Image.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md b/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md index e3d9390ac4..5cb3938980 100644 --- a/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md +++ b/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md @@ -32,7 +32,7 @@ Debian 终于开始讨论非自由固件镜像了 * 提案 A:改变原有的官方镜像集(安装镜像和实况镜像),Debian 将在官方镜像中包含非自由固件包。包含的固件将在检测到需求时默认启用。然而,它也将包括让用户在启动时禁用的方法。(截止本文发表时的提案支持人数:17) * 提案 B:不改变原有的镜像集,保留原来的不包含非自由固件的镜像,另外单独提供包含非自由固件的官方镜像。新的镜像下载链接将更醒目以方便新用户找到它们,而原来的镜像的视觉优先级将变低。(截止本文发表时的提案支持人数:10) -* 提案 C:和提案 B 类似,但告知用户他们正在下载的内容,使其可与不包含非自由固件的镜像一起下载。(截止本文发表时的提案支持人数:6) +* 提案 C:和提案 B 类似,在用户下载不包含自由固件的镜像时,提醒他们还有包含非自由固件的镜像可供下载。(截止本文发表时的提案支持人数:6) * 提案 D:继续遵守《Debian 社会契约Debian Social Contract》第 1 节和第 5 节的精神,继续保持现状,不在 Debian 中包含任何非自由软件,但支持它们的使用,并欢迎其他人分发这样的作品。(截止本文发表时的提案支持人数:6) 这些是一些有趣的建议。我认为提案 A 对所有人都很方便,同时给高级用户禁用非自由固件的机会。 From 0a4397cbca3801db8e7dc59bc4856f7677c9818f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 15:14:16 +0800 Subject: [PATCH 0963/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nius-Level Move Was Using Binary Space Partitioning in Doom.md | 0 ... is Firefox Multi-Account Containers- Why and How to Use It.md | 0 .../20210823 Write a chess game using bit-fields and masks.md | 0 .../{ => 202208}/20210910 MAKE MORE with Inkscape - Ink-Stitch.md | 0 .../{ => 202208}/20210921 3 ways to test your API with Python.md | 0 ...0211109 relaying mail to multiple smarthosts with opensmtpd.md | 0 .../20211115 Linux tips for using cron to schedule tasks.md | 0 .../20211122 7 key components of observability in Python.md | 0 .../20220602 The only Linux command you need to know.md | 0 ...0626 An open source project that opens the internet for all.md | 0 .../20220716 Does an Ethernet splitter slow down speed-.md | 0 ...0220716 How to Clean Up Snap Versions to Free Up Disk Space.md | 0 .../20220718 AppFlowy- An Open-Source Alternative to Notion.md | 0 ... How to Install Rocky Linux 9 Step by Step with Screenshots.md | 0 .../20220719 How to Uninstall Deb Packages in Ubuntu.md | 0 .../20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md | 0 ...date a Single Package With apt Command in Ubuntu and Debian.md | 0 .../20220721 How I use the Linux fmt command to format text.md | 0 ...Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md | 0 .../20220725 How to use LibreOffice Writer templates.md | 0 ...odo is an All-in-one Open Source eBook Reader App for Linux.md | 0 .../20220726 How I use Bash to automate tasks on Linux.md | 0 .../{ => 202208}/20220726 How To Change GRUB Theme In Linux.md | 0 .../20220727 How I manage files from the Linux command line.md | 0 ...matically Update Running Docker Containers Using Watchtower.md | 0 .../20220728 How To Build Custom Docker Image Using Dockerfile.md | 0 ... Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md | 0 ...Awaited Linux Mint 21 is Released and Available to Download.md | 0 .../20220801 AI, ML and DL- What-s the Difference-.md | 0 .../20220801 Padloc- An Intuitive Open-Source Password Manager.md | 0 ...hat Made Fedora Choose To Use CC0 Licensed Code As The Boot.md | 0 ...0802 How I use the Linux sed command to automate file edits.md | 0 ...802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md | 0 .../{ => 202208}/20220804 3 ways to take screenshots on Linux.md | 0 ...stall Spotify on Manjaro and Other Arch Linux Based Distros.md | 0 ...eppermint OS Now Also Offers a Systemd-free Devuan Variant!.md | 0 ...inux Re-Introduces a Slackware Variant With Slax 15 Release.md | 0 ...220805 Delete the local reference to a remote branch in Git.md | 0 ...807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md | 0 ...20807 List Files and Directories in Style Using lsd and exa.md | 0 .../{ => 202208}/20220808 Fix file permission errors on Linux.md | 0 ... Lyrics for Currently Playing Music on the Desktop in Linux.md | 0 .../20220809 7 Best Distributions Based on Fedora Linux.md | 0 ...Takes Action To Prevent Supply Chain Attacks On Open Source.md | 0 published/{ => 202208}/20220810 Create beautiful PDFs in LaTeX.md | 0 ...0810 Cutefish OS Development Restarts with A Revised Vision.md | 0 ... Introduces a Test Lab Environment and New VirtualBox Image.md | 0 ...4 Create Your Own Custom Light and Dark Wallpaper for GNOME.md | 0 ...onitor Log Files in Real Time in Linux [Desktop and Server].md | 0 published/{ => 202208}/20220816 A look inside an EPUB file.md | 0 ... an Excellent Editor Even for Those Who Don-t Know Markdown.md | 0 .../20220816 My practical advice for new programmers.md | 0 ...ng a New Package Format and Repository, Sounds Interesting!.md | 0 .../20220817 Desktop Linux Market Share- August 2022.md | 0 ...20818 Convert Docker Run Commands Into Docker-Compose Files.md | 0 ...icrosoft In Terms Of Open Source Contributors, Says A Study.md | 0 .../20220822 3 NES Emulators to Play Old NES Games on Linux.md | 0 ...0822 How to List USB Devices Connected to Your Linux System.md | 0 .../20220823 Fedora 37- Top New Features and Release Wiki.md | 0 ...-First AI Image Upscaler Upscayl Released its First Version.md | 0 ...cientist Who Termed -Unix- Adds Unicode Support to AWK Code.md | 0 ...0826 My open source journey from user to contributor to CTO.md | 0 ... to Help Improve GNOME- This New Tool Gives You the Chance!.md | 0 ... Going Open Source Is Significant For Emulation, Here-s Why.md | 0 .../20220829 5 GNOME 43 Features to Keep an Eye On.md | 0 65 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202208}/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md (100%) rename published/{ => 202208}/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md (100%) rename published/{ => 202208}/20210823 Write a chess game using bit-fields and masks.md (100%) rename published/{ => 202208}/20210910 MAKE MORE with Inkscape - Ink-Stitch.md (100%) rename published/{ => 202208}/20210921 3 ways to test your API with Python.md (100%) rename published/{ => 202208}/20211109 relaying mail to multiple smarthosts with opensmtpd.md (100%) rename published/{ => 202208}/20211115 Linux tips for using cron to schedule tasks.md (100%) rename published/{ => 202208}/20211122 7 key components of observability in Python.md (100%) rename published/{ => 202208}/20220602 The only Linux command you need to know.md (100%) rename published/{ => 202208}/20220626 An open source project that opens the internet for all.md (100%) rename published/{ => 202208}/20220716 Does an Ethernet splitter slow down speed-.md (100%) rename published/{ => 202208}/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md (100%) rename published/{ => 202208}/20220718 AppFlowy- An Open-Source Alternative to Notion.md (100%) rename published/{ => 202208}/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md (100%) rename published/{ => 202208}/20220719 How to Uninstall Deb Packages in Ubuntu.md (100%) rename published/{ => 202208}/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md (100%) rename published/{ => 202208}/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md (100%) rename published/{ => 202208}/20220721 How I use the Linux fmt command to format text.md (100%) rename published/{ => 202208}/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md (100%) rename published/{ => 202208}/20220725 How to use LibreOffice Writer templates.md (100%) rename published/{ => 202208}/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md (100%) rename published/{ => 202208}/20220726 How I use Bash to automate tasks on Linux.md (100%) rename published/{ => 202208}/20220726 How To Change GRUB Theme In Linux.md (100%) rename published/{ => 202208}/20220727 How I manage files from the Linux command line.md (100%) rename published/{ => 202208}/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md (100%) rename published/{ => 202208}/20220728 How To Build Custom Docker Image Using Dockerfile.md (100%) rename published/{ => 202208}/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md (100%) rename published/{ => 202208}/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md (100%) rename published/{ => 202208}/20220801 AI, ML and DL- What-s the Difference-.md (100%) rename published/{ => 202208}/20220801 Padloc- An Intuitive Open-Source Password Manager.md (100%) rename published/{ => 202208}/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md (100%) rename published/{ => 202208}/20220802 How I use the Linux sed command to automate file edits.md (100%) rename published/{ => 202208}/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md (100%) rename published/{ => 202208}/20220804 3 ways to take screenshots on Linux.md (100%) rename published/{ => 202208}/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md (100%) rename published/{ => 202208}/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md (100%) rename published/{ => 202208}/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md (100%) rename published/{ => 202208}/20220805 Delete the local reference to a remote branch in Git.md (100%) rename published/{ => 202208}/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md (100%) rename published/{ => 202208}/20220807 List Files and Directories in Style Using lsd and exa.md (100%) rename published/{ => 202208}/20220808 Fix file permission errors on Linux.md (100%) rename published/{ => 202208}/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md (100%) rename published/{ => 202208}/20220809 7 Best Distributions Based on Fedora Linux.md (100%) rename published/{ => 202208}/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md (100%) rename published/{ => 202208}/20220810 Create beautiful PDFs in LaTeX.md (100%) rename published/{ => 202208}/20220810 Cutefish OS Development Restarts with A Revised Vision.md (100%) rename published/{ => 202208}/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md (100%) rename published/{ => 202208}/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md (100%) rename published/{ => 202208}/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md (100%) rename published/{ => 202208}/20220816 A look inside an EPUB file.md (100%) rename published/{ => 202208}/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md (100%) rename published/{ => 202208}/20220816 My practical advice for new programmers.md (100%) rename published/{ => 202208}/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md (100%) rename published/{ => 202208}/20220817 Desktop Linux Market Share- August 2022.md (100%) rename published/{ => 202208}/20220818 Convert Docker Run Commands Into Docker-Compose Files.md (100%) rename published/{ => 202208}/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md (100%) rename published/{ => 202208}/20220822 3 NES Emulators to Play Old NES Games on Linux.md (100%) rename published/{ => 202208}/20220822 How to List USB Devices Connected to Your Linux System.md (100%) rename published/{ => 202208}/20220823 Fedora 37- Top New Features and Release Wiki.md (100%) rename published/{ => 202208}/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md (100%) rename published/{ => 202208}/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md (100%) rename published/{ => 202208}/20220826 My open source journey from user to contributor to CTO.md (100%) rename published/{ => 202208}/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md (100%) rename published/{ => 202208}/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md (100%) rename published/{ => 202208}/20220829 5 GNOME 43 Features to Keep an Eye On.md (100%) diff --git a/published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/published/202208/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md similarity index 100% rename from published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md rename to published/202208/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md diff --git a/published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md b/published/202208/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md similarity index 100% rename from published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md rename to published/202208/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md diff --git a/published/20210823 Write a chess game using bit-fields and masks.md b/published/202208/20210823 Write a chess game using bit-fields and masks.md similarity index 100% rename from published/20210823 Write a chess game using bit-fields and masks.md rename to published/202208/20210823 Write a chess game using bit-fields and masks.md diff --git a/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/published/202208/20210910 MAKE MORE with Inkscape - Ink-Stitch.md similarity index 100% rename from published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md rename to published/202208/20210910 MAKE MORE with Inkscape - Ink-Stitch.md diff --git a/published/20210921 3 ways to test your API with Python.md b/published/202208/20210921 3 ways to test your API with Python.md similarity index 100% rename from published/20210921 3 ways to test your API with Python.md rename to published/202208/20210921 3 ways to test your API with Python.md diff --git a/published/20211109 relaying mail to multiple smarthosts with opensmtpd.md b/published/202208/20211109 relaying mail to multiple smarthosts with opensmtpd.md similarity index 100% rename from published/20211109 relaying mail to multiple smarthosts with opensmtpd.md rename to published/202208/20211109 relaying mail to multiple smarthosts with opensmtpd.md diff --git a/published/20211115 Linux tips for using cron to schedule tasks.md b/published/202208/20211115 Linux tips for using cron to schedule tasks.md similarity index 100% rename from published/20211115 Linux tips for using cron to schedule tasks.md rename to published/202208/20211115 Linux tips for using cron to schedule tasks.md diff --git a/published/20211122 7 key components of observability in Python.md b/published/202208/20211122 7 key components of observability in Python.md similarity index 100% rename from published/20211122 7 key components of observability in Python.md rename to published/202208/20211122 7 key components of observability in Python.md diff --git a/published/20220602 The only Linux command you need to know.md b/published/202208/20220602 The only Linux command you need to know.md similarity index 100% rename from published/20220602 The only Linux command you need to know.md rename to published/202208/20220602 The only Linux command you need to know.md diff --git a/published/20220626 An open source project that opens the internet for all.md b/published/202208/20220626 An open source project that opens the internet for all.md similarity index 100% rename from published/20220626 An open source project that opens the internet for all.md rename to published/202208/20220626 An open source project that opens the internet for all.md diff --git a/published/20220716 Does an Ethernet splitter slow down speed-.md b/published/202208/20220716 Does an Ethernet splitter slow down speed-.md similarity index 100% rename from published/20220716 Does an Ethernet splitter slow down speed-.md rename to published/202208/20220716 Does an Ethernet splitter slow down speed-.md diff --git a/published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/published/202208/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md similarity index 100% rename from published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md rename to published/202208/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md diff --git a/published/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/published/202208/20220718 AppFlowy- An Open-Source Alternative to Notion.md similarity index 100% rename from published/20220718 AppFlowy- An Open-Source Alternative to Notion.md rename to published/202208/20220718 AppFlowy- An Open-Source Alternative to Notion.md diff --git a/published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/published/202208/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md similarity index 100% rename from published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md rename to published/202208/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md diff --git a/published/20220719 How to Uninstall Deb Packages in Ubuntu.md b/published/202208/20220719 How to Uninstall Deb Packages in Ubuntu.md similarity index 100% rename from published/20220719 How to Uninstall Deb Packages in Ubuntu.md rename to published/202208/20220719 How to Uninstall Deb Packages in Ubuntu.md diff --git a/published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/published/202208/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md similarity index 100% rename from published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md rename to published/202208/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md diff --git a/published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/published/202208/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md similarity index 100% rename from published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md rename to published/202208/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md diff --git a/published/20220721 How I use the Linux fmt command to format text.md b/published/202208/20220721 How I use the Linux fmt command to format text.md similarity index 100% rename from published/20220721 How I use the Linux fmt command to format text.md rename to published/202208/20220721 How I use the Linux fmt command to format text.md diff --git a/published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/published/202208/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md similarity index 100% rename from published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md rename to published/202208/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md diff --git a/published/20220725 How to use LibreOffice Writer templates.md b/published/202208/20220725 How to use LibreOffice Writer templates.md similarity index 100% rename from published/20220725 How to use LibreOffice Writer templates.md rename to published/202208/20220725 How to use LibreOffice Writer templates.md diff --git a/published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/published/202208/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md similarity index 100% rename from published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md rename to published/202208/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md diff --git a/published/20220726 How I use Bash to automate tasks on Linux.md b/published/202208/20220726 How I use Bash to automate tasks on Linux.md similarity index 100% rename from published/20220726 How I use Bash to automate tasks on Linux.md rename to published/202208/20220726 How I use Bash to automate tasks on Linux.md diff --git a/published/20220726 How To Change GRUB Theme In Linux.md b/published/202208/20220726 How To Change GRUB Theme In Linux.md similarity index 100% rename from published/20220726 How To Change GRUB Theme In Linux.md rename to published/202208/20220726 How To Change GRUB Theme In Linux.md diff --git a/published/20220727 How I manage files from the Linux command line.md b/published/202208/20220727 How I manage files from the Linux command line.md similarity index 100% rename from published/20220727 How I manage files from the Linux command line.md rename to published/202208/20220727 How I manage files from the Linux command line.md diff --git a/published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/published/202208/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md similarity index 100% rename from published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md rename to published/202208/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md diff --git a/published/20220728 How To Build Custom Docker Image Using Dockerfile.md b/published/202208/20220728 How To Build Custom Docker Image Using Dockerfile.md similarity index 100% rename from published/20220728 How To Build Custom Docker Image Using Dockerfile.md rename to published/202208/20220728 How To Build Custom Docker Image Using Dockerfile.md diff --git a/published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/published/202208/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md similarity index 100% rename from published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md rename to published/202208/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md diff --git a/published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md b/published/202208/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md similarity index 100% rename from published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md rename to published/202208/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md diff --git a/published/20220801 AI, ML and DL- What-s the Difference-.md b/published/202208/20220801 AI, ML and DL- What-s the Difference-.md similarity index 100% rename from published/20220801 AI, ML and DL- What-s the Difference-.md rename to published/202208/20220801 AI, ML and DL- What-s the Difference-.md diff --git a/published/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/published/202208/20220801 Padloc- An Intuitive Open-Source Password Manager.md similarity index 100% rename from published/20220801 Padloc- An Intuitive Open-Source Password Manager.md rename to published/202208/20220801 Padloc- An Intuitive Open-Source Password Manager.md diff --git a/published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/published/202208/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md similarity index 100% rename from published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md rename to published/202208/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md diff --git a/published/20220802 How I use the Linux sed command to automate file edits.md b/published/202208/20220802 How I use the Linux sed command to automate file edits.md similarity index 100% rename from published/20220802 How I use the Linux sed command to automate file edits.md rename to published/202208/20220802 How I use the Linux sed command to automate file edits.md diff --git a/published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md b/published/202208/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md similarity index 100% rename from published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md rename to published/202208/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md diff --git a/published/20220804 3 ways to take screenshots on Linux.md b/published/202208/20220804 3 ways to take screenshots on Linux.md similarity index 100% rename from published/20220804 3 ways to take screenshots on Linux.md rename to published/202208/20220804 3 ways to take screenshots on Linux.md diff --git a/published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/published/202208/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md similarity index 100% rename from published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md rename to published/202208/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md diff --git a/published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md b/published/202208/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md similarity index 100% rename from published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md rename to published/202208/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md diff --git a/published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md b/published/202208/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md similarity index 100% rename from published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md rename to published/202208/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md diff --git a/published/20220805 Delete the local reference to a remote branch in Git.md b/published/202208/20220805 Delete the local reference to a remote branch in Git.md similarity index 100% rename from published/20220805 Delete the local reference to a remote branch in Git.md rename to published/202208/20220805 Delete the local reference to a remote branch in Git.md diff --git a/published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/published/202208/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md similarity index 100% rename from published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md rename to published/202208/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md diff --git a/published/20220807 List Files and Directories in Style Using lsd and exa.md b/published/202208/20220807 List Files and Directories in Style Using lsd and exa.md similarity index 100% rename from published/20220807 List Files and Directories in Style Using lsd and exa.md rename to published/202208/20220807 List Files and Directories in Style Using lsd and exa.md diff --git a/published/20220808 Fix file permission errors on Linux.md b/published/202208/20220808 Fix file permission errors on Linux.md similarity index 100% rename from published/20220808 Fix file permission errors on Linux.md rename to published/202208/20220808 Fix file permission errors on Linux.md diff --git a/published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/published/202208/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md similarity index 100% rename from published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md rename to published/202208/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md diff --git a/published/20220809 7 Best Distributions Based on Fedora Linux.md b/published/202208/20220809 7 Best Distributions Based on Fedora Linux.md similarity index 100% rename from published/20220809 7 Best Distributions Based on Fedora Linux.md rename to published/202208/20220809 7 Best Distributions Based on Fedora Linux.md diff --git a/published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/published/202208/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md similarity index 100% rename from published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md rename to published/202208/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md diff --git a/published/20220810 Create beautiful PDFs in LaTeX.md b/published/202208/20220810 Create beautiful PDFs in LaTeX.md similarity index 100% rename from published/20220810 Create beautiful PDFs in LaTeX.md rename to published/202208/20220810 Create beautiful PDFs in LaTeX.md diff --git a/published/20220810 Cutefish OS Development Restarts with A Revised Vision.md b/published/202208/20220810 Cutefish OS Development Restarts with A Revised Vision.md similarity index 100% rename from published/20220810 Cutefish OS Development Restarts with A Revised Vision.md rename to published/202208/20220810 Cutefish OS Development Restarts with A Revised Vision.md diff --git a/published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md b/published/202208/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md similarity index 100% rename from published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md rename to published/202208/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md diff --git a/published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/published/202208/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md similarity index 100% rename from published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md rename to published/202208/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md diff --git a/published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/published/202208/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md similarity index 100% rename from published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md rename to published/202208/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md diff --git a/published/20220816 A look inside an EPUB file.md b/published/202208/20220816 A look inside an EPUB file.md similarity index 100% rename from published/20220816 A look inside an EPUB file.md rename to published/202208/20220816 A look inside an EPUB file.md diff --git a/published/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/published/202208/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md similarity index 100% rename from published/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md rename to published/202208/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md diff --git a/published/20220816 My practical advice for new programmers.md b/published/202208/20220816 My practical advice for new programmers.md similarity index 100% rename from published/20220816 My practical advice for new programmers.md rename to published/202208/20220816 My practical advice for new programmers.md diff --git a/published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md b/published/202208/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md similarity index 100% rename from published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md rename to published/202208/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md diff --git a/published/20220817 Desktop Linux Market Share- August 2022.md b/published/202208/20220817 Desktop Linux Market Share- August 2022.md similarity index 100% rename from published/20220817 Desktop Linux Market Share- August 2022.md rename to published/202208/20220817 Desktop Linux Market Share- August 2022.md diff --git a/published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/published/202208/20220818 Convert Docker Run Commands Into Docker-Compose Files.md similarity index 100% rename from published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md rename to published/202208/20220818 Convert Docker Run Commands Into Docker-Compose Files.md diff --git a/published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md b/published/202208/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md similarity index 100% rename from published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md rename to published/202208/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md diff --git a/published/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/published/202208/20220822 3 NES Emulators to Play Old NES Games on Linux.md similarity index 100% rename from published/20220822 3 NES Emulators to Play Old NES Games on Linux.md rename to published/202208/20220822 3 NES Emulators to Play Old NES Games on Linux.md diff --git a/published/20220822 How to List USB Devices Connected to Your Linux System.md b/published/202208/20220822 How to List USB Devices Connected to Your Linux System.md similarity index 100% rename from published/20220822 How to List USB Devices Connected to Your Linux System.md rename to published/202208/20220822 How to List USB Devices Connected to Your Linux System.md diff --git a/published/20220823 Fedora 37- Top New Features and Release Wiki.md b/published/202208/20220823 Fedora 37- Top New Features and Release Wiki.md similarity index 100% rename from published/20220823 Fedora 37- Top New Features and Release Wiki.md rename to published/202208/20220823 Fedora 37- Top New Features and Release Wiki.md diff --git a/published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md b/published/202208/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md similarity index 100% rename from published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md rename to published/202208/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md diff --git a/published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md b/published/202208/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md similarity index 100% rename from published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md rename to published/202208/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md diff --git a/published/20220826 My open source journey from user to contributor to CTO.md b/published/202208/20220826 My open source journey from user to contributor to CTO.md similarity index 100% rename from published/20220826 My open source journey from user to contributor to CTO.md rename to published/202208/20220826 My open source journey from user to contributor to CTO.md diff --git a/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md b/published/202208/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md similarity index 100% rename from published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md rename to published/202208/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md diff --git a/published/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md b/published/202208/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md similarity index 100% rename from published/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md rename to published/202208/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md diff --git a/published/20220829 5 GNOME 43 Features to Keep an Eye On.md b/published/202208/20220829 5 GNOME 43 Features to Keep an Eye On.md similarity index 100% rename from published/20220829 5 GNOME 43 Features to Keep an Eye On.md rename to published/202208/20220829 5 GNOME 43 Features to Keep an Eye On.md From 67fa532aa7609b71820778be72fa0be9bae6d2c9 Mon Sep 17 00:00:00 2001 From: KawaiiPGR <36188023+Kira-Pgr@users.noreply.github.com> Date: Thu, 1 Sep 2022 17:00:07 +0800 Subject: [PATCH 0964/3123] Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md --- ...ong Linux User Tried Windows or macOS for the First Time-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md index 0e83fd5b91..b1a10da78a 100644 --- a/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md +++ b/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/linux-user-trying-windows-macos/" [#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Kira-Pgr" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7530603f2dab509c7daf0749e93b2c051fa81433 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 17:35:40 +0800 Subject: [PATCH 0965/3123] RP @geekpi https://linux.cn/article-14990-1.html --- .../20220819 5 note-taking apps for Linux.md | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) rename {translated/tech => published}/20220819 5 note-taking apps for Linux.md (77%) diff --git a/translated/tech/20220819 5 note-taking apps for Linux.md b/published/20220819 5 note-taking apps for Linux.md similarity index 77% rename from translated/tech/20220819 5 note-taking apps for Linux.md rename to published/20220819 5 note-taking apps for Linux.md index 0d9e3c8f3e..b12822552e 100644 --- a/translated/tech/20220819 5 note-taking apps for Linux.md +++ b/published/20220819 5 note-taking apps for Linux.md @@ -3,17 +3,16 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14990-1.html" 5 款适用于 Linux 的笔记应用 ====== -\使用这些开源工具来记笔记。 -![How to create outlines in Linux with TreeLine][1] +![](https://img.linux.net.cn/data/attachment/album/202209/01/173456nfc42fnqkiwfkh90.jpg) -图片来源:Startup Stock Photos。知识共享 CC0 许可证。 +> 使用这些开源工具来记笔记。 笔记是任何作者生活的一部分。我的大部分文章都是从笔记应用开始的,这对我来说通常是 [Joplin][2]。有大量适用于 Linux 的笔记应用,你可能使用的不是我最喜欢的应用。最近的一篇博客文章让我想起了其中的六个,所以我整理了一份我最喜欢的列表。 @@ -21,23 +20,23 @@ ![Joplin][3] -[Joplin][4] 适用于 Linux、Windows、macOS、Android 和 iOS。我喜欢 Joplin,因为它会自动保存你添加的任何内容。笔记可以上传到 NextCloud、OwnCloud、Joplin Cloud,甚至是 OneDrive、Dropbox 或任何 WebDav 应用等闭源服务。 Joplin 支持加密。 +[Joplin][4] 适用于 Linux、Windows、macOS、Android 和 iOS。我喜欢 Joplin,因为它会自动保存你添加的任何内容。笔记可以上传到 NextCloud、OwnCloud、Joplin Cloud,甚至是 OneDrive、Dropbox 或任何 WebDav 应用等闭源服务。Joplin 还支持加密。 以各种格式导出笔记也很容易。它带有八个不同的主题,可让你定制其外观。 -Joplin 拥有 MIT 许可证。最初于 2017 年发布,Joplin 正在与大量贡献者社区一起持续开发。 +Joplin 采用 MIT 许可证。最初于 2017 年发布,Joplin 正在与大量贡献者社区一起持续开发。 ### Xournal ![Xournal][5] -[Xournal][6] 适用于 Linux、Windows、macOS 和 Android。它的目的是让你创建包含几乎任何你可以想象的媒体类型的笔记。它支持压敏手写笔和绘图板,因此你可以创建[涂鸦笔记][7] (sketchnotes)。你可以在里面打字、绘制简单的矢量、导入图形、录制音频等等。你还可以使用 Xournal 来注释 PDF,这就是我使用它的方式。它以 GPLv2 许可证发布,你可以以多种格式导出笔记。 +[Xournal][6] 适用于 Linux、Windows、macOS 和 Android。它的目的是让你创建包含几乎任何你可以想象的媒体类型的笔记。它支持压敏手写笔和绘图板,因此你可以创建 [涂鸦笔记][7]。你可以在里面打字、绘制简单的矢量、导入图形、录制音频等等。你还可以使用 Xournal 来注释 PDF,这就是我使用它的方式。它以 GPLv2 许可证发布,你可以以多种格式导出笔记。 ### Trillium ![Trillium][8] -[Trillium][9] 是一个层级笔记应用,专注于知识构建库。它具有丰富的所见即所得编辑功能,包括表格、图像和 markdown。它支持使用语法高亮编辑源代码中的注释。它是在 Gnu Affero 许可证下发布的。 +[Trillium][9] 是一个层级笔记应用,专注于知识构建库。它具有丰富的所见即所得编辑功能,支持表格、图像和 Markdown。它支持使用语法高亮编辑源代码中的注释。它是在 AGPL 许可证下发布的。 Trilium 可用作 Linux 和 Windows 的桌面应用,以及你可以在自己的 Linux 服务器上托管的 Web 应用。 @@ -45,7 +44,7 @@ Trilium 可用作 Linux 和 Windows 的桌面应用,以及你可以在自己 ![Gnote][10] -[Gnote][11] 是一个为 Linux 编写的开源笔记应用。它是由 Hubert Figuière 从一个名为 [Tomboy][12] 的项目中克隆出来的。与 Tomboy 一样,Gnote 使用类似 wiki 的链接系统来允许你将笔记链接在一起。 +[Gnote][11] 是一个为 Linux 编写的开源笔记应用。它是由 Hubert Figuière 从一个名为 [Tomboy][12] 的项目中克隆出来的。与 Tomboy 一样,Gnote 使用类似 Wiki 的链接系统来允许你将笔记链接在一起。 GNote 的源代码可在 [GitLab][13] 上找到。该软件是 GPLv3 许可。 @@ -55,7 +54,7 @@ GNote 的源代码可在 [GitLab][13] 上找到。该软件是 GPLv3 许可。 CherryTree 支持层级笔记。在 CherryTree 中,所有东西都是一个节点。节点可以是纯文本、富文本、各种编程语言的语法高亮。每个节点可以有子节点,每个子节点有不同的格式。 -CherryTree 具有富文本和语法高亮的特点,并可以将数据存储在一个 XML 或 [SQLite][15] 文件中。CherryTree 可以从各种格式导入,包括 Markdown、HTML、纯文本、Gnote、Tomboy 和其他。它可以将文件导出为 PDF、HTML、纯文本和它自己的 CherryTree 格式。 +CherryTree 具有富文本和语法高亮的特点,并可以将数据存储在一个 XML 或 [SQLite][15] 文件中。CherryTree 可以从各种格式导入,包括 Markdown、HTML、纯文本、Gnote、Tomboy 和其他格式。它可以将文件导出为 PDF、HTML、纯文本和它自己的 CherryTree 格式。 CherryTree 使用 GPLv3 许可,可以安装在 Linux、Windows 和 macOS 上。 @@ -66,7 +65,7 @@ via: https://opensource.com/article/22/8/note-taking-apps-linux 作者:[Don Watkins][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/) 荣誉推出 From 40c21279756e9e1394db7cae12970c26886f37e3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 22:30:42 +0800 Subject: [PATCH 0966/3123] RP @aftermath0703 https://linux.cn/article-14991-1.html --- ...30 Some ways to get better at debugging.md | 76 +++++++++---------- 1 file changed, 36 insertions(+), 40 deletions(-) rename {translated/tech => published}/20220830 Some ways to get better at debugging.md (55%) diff --git a/translated/tech/20220830 Some ways to get better at debugging.md b/published/20220830 Some ways to get better at debugging.md similarity index 55% rename from translated/tech/20220830 Some ways to get better at debugging.md rename to published/20220830 Some ways to get better at debugging.md index ff8e0ba84f..f0144e3ceb 100644 --- a/translated/tech/20220830 Some ways to get better at debugging.md +++ b/published/20220830 Some ways to get better at debugging.md @@ -3,66 +3,67 @@ [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lkxed" [#]: translator: "aftermath0703" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14991-1.html" 提高调试能力的一些方法 ====== -你们好!我一直在编写一本关于调试的杂志(这是 [目录的初稿][1]). -作为其中的一部分,我认为阅读一些关于调试的学术论文可能会很有趣,上周[Greg Wilson][2]给我发了一些关于调试学术研究的论文。 +![](https://img.linux.net.cn/data/attachment/album/202209/01/222854m78u44otl68yxbyu.jpg) -其中一篇论文([Towards a framework for teaching debugging -[paywalled]][3])对我们有效调试所需的不同种类的知识/技能进行了分类,我非常喜欢。 -它来自另一篇关于故障排除的更一般性的论文。[Learning to Troubleshoot: A New Theory-Based Design Architecture][4]。 +你们好!我一直在编写一本关于调试的杂志(这是 [目录的初稿][1])。 + +作为其中的一部分,我认为阅读一些关于调试的学术论文可能会很有趣,上周 [Greg Wilson][2] 给我发了一些关于调试学术研究的论文。 + +其中一篇论文(《[建立一个调试教学的框架[付费墙]][3]》)对我们有效调试所需的不同种类的知识/技能进行了分类,我非常喜欢。它来自另一篇关于故障排除的更一般性的论文:《[学会排错:一个新的基于理论的设计架构][4]》。 我认为这个分类对于思考如何更好地进行调试是一个非常有用的结构,所以我把论文中的五个类别重新规划为你可以采取的行动,以提高调试的效率。 以下是这些行动: -#### 1. 学习代码库 +#### 1、学习代码库 要调试一些代码,你需要了解你正在使用的代码库。 + 这似乎有点显而易见(当然,不了解代码的工作原理,你就无法调试代码!) -这种学习随着时间的推移会很自然地发生, -而且实际上调试也是 *学习* 一个新的代码库如何工作的最好方法之一—— +这种学习随着时间的推移会很自然地发生,而且实际上调试也是 *学习* 一个新的代码库如何工作的最好方法之一—— 看到一些代码是如何崩溃的,有助于你了解它是如何工作的。 -本文将此称为 "系统知识"。 +该论文将此称为“系统知识”。 -#### 2. 学习系统 +#### 2、学习系统 -论文中提到,你需要了解编程语言,但我认为不止于此——为了修复bug,往往你需要学习很多更广泛的环境,而不仅仅是语言。 +论文中提到,你需要了解编程语言,但我认为不止于此 —— 为了修复 bug,往往你需要学习很多更广泛的环境,而不仅仅是语言。 -举个例子,如果你是后端web开发者,你可能需要的一些“系统”知识包括: +举个例子,如果你是后端 Web 开发者,你可能需要的一些“系统”知识包括: -* HTTP缓存如何工作 +* HTTP 缓存如何工作 * CORS * 数据库事务是如何工作的 -我发现我经常需要更有意识地去学习像这样的系统性的东西——我需要真正花时间去查找和阅读它们。 +我发现我经常需要更有意识地去学习像这样的系统性的东西 —— 我需要真正花时间去查找和阅读它们。 -本文将此称为 "领域知识"。 +该论文将此称为“领域知识”。 -#### 3. 学习你的工具 +#### 3、学习你的工具 现在有很多工具,例如: -* 调试器(GDB等) +* 调试器(GDB 等) * 浏览器开发工具 -* 剖析器(profilers) -* strace / ltrace -* tcpdump / wireshark +* 剖析器profiler +* `strace` / `ltrace` +* `tcpdump` / `wireshark` * 核心转储 * 甚至像错误信息这样的基本东西(如何正确阅读它们) 我在这个博客上写了很多关于调试工具的文章,并且肯定学习这些工具给我带来了巨大的变化。 -本文将此称为 "处理性知识"。 +该论文将此称为“处理性知识”。 -#### 4. 学习策略 +#### 4、学习策略 这是最模糊的一类,在如何高效调试的过程中,我们都有很多策略和启发式方法。比如说: @@ -73,30 +74,25 @@ * 增加额外的日志记录 * 休息一下 * 向朋友解释这个错误,然后在中途发现问题所在 -* 查看github上的问题,看看是否有匹配的问题 +* 查看 GitHub 上的问题,看看是否有匹配的问题 在写这本杂志的时候,我一直在思考这个类别,但我想让这篇文章简短,所以我不会在这里多说。 -本文将此称为 "战略知识"。 +该论文将此称为“战略知识”。 -#### 5. 获得经验 +#### 5、获得经验 -最后一个类别是 "经验"。这篇论文对此有一个非常有趣的评论: +最后一个类别是“经验”。这篇论文对此有一个非常有趣的评论: +> 他们的研究结果并没有显示出新手和专家所采用的策略有什么明显的区别。专家只是形成了更多正确的假设,并且在寻找故障方面更有效率。作者怀疑这个结果是由于新手和专家之间的编程经验不同造成的。 -> 他们的研究结果并没有显示出新手和专家所采用的策略有什么明显的区别。 -专家只是形成了更多正确的假设,并且在寻找故障方面更有效率。 -作者怀疑这个结果是由于新手和专家之间的编程经验不同造成的。 +这真的引起了我的共鸣 —— 我遇到过很多第一次遇到时非常令人沮丧和困难的 bug,而在第五次、第十次或第二十次时就非常简单了。 -这真的引起了我的共鸣——我遇到过很多第一次遇到时非常令人沮丧和困难的bug,而在第五次、第十次或第二十次时就非常简单了。 +对我来说,这也是最直接的知识类别之一 —— 你需要做的就是调查一百万个 bug,反正这就是我们作为程序员的全部生活 : ) 。这需要很长的时间,但我觉得它发生得很自然。 -对我来说,这也是最直接的知识类别之一—— -你需要做的就是调查一百万个bug,反正这就是我们作为程序员的全部生活 :) 。 -这需要很长的时间,但我觉得它发生得很自然。 +本文将此称为“经验知识”。 -本文将此称为 "经验知识"。 - -#### 就这样吧! +#### 就这样吧! 我打算把这篇文章写得很短,我只是非常喜欢这个分类,想把它分享出来。 @@ -107,7 +103,7 @@ via: https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/ 作者:[Julia Evans][a] 选题:[lkxed][b] 译者:[aftermath0703](https://github.com/aftermath0703) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 90721cddd0063a0476fdf7c1d7e39fb41abdc5c3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Sep 2022 23:10:12 +0800 Subject: [PATCH 0967/3123] RP @geekpi https://linux.cn/article-14992-1.html --- ...ng Terminal for Minimalists Linux Users.md | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) rename {translated/tech => published}/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md (75%) diff --git a/translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/published/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md similarity index 75% rename from translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md rename to published/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md index d3090d9270..e3532f356c 100644 --- a/translated/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md +++ b/published/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md @@ -3,28 +3,30 @@ [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14992-1.html" -Blackbox 是极简主义 Linux 用户的美观终端 +Blackbox:极简主义 Linux 用户的美观终端 ====== -有[许多可用于 Linux 的终端仿真器][1]。从 Terminator 到 Tilix,你有多种终端可供选择。 +![](https://img.linux.net.cn/data/attachment/album/202209/01/230823b2n8vhe6jn5vz5uq.jpg) -但这并没有阻止新终端应用的到来。你最近了解了 [GNOME Console][2],今天,我将向您介绍 Blackbox。 +有 [许多可用于 Linux 的终端仿真器][1]。从 Terminator 到 Tilix,你有多种终端可供选择。 + +但这并没有阻止新终端应用的到来。你最近已经见过了 [GNOME Console][2] 吧,今天,我将向你介绍 Blackbox。 ### Blackbox 终端:概述和功能 -Blackbox 是一个支持 GTK4 的终端仿真器。开发人为了他可以在 Linux 上使用外观不错的终端应用而创建了这个项目。 +Blackbox 是一个支持 GTK4 的终端仿真器。开发者为了他可以在 Linux 上使用外观优美的终端应用而创建了这个项目。 所以,不要指望它有很多功能。它只是一个使用 GTK4 工具包并支持主题的终端仿真器。 -换句话说,它更多的是关于外观而不是功能。 +换句话说,它更多注重的是关于外观而不是功能。 以下是 Blackbox 的主要亮点: -* 可设置主题([Tilix][3] 兼容的配色方案支持) +* 可设置主题(支持 [Tilix][3] 兼容的配色方案) * 主题与窗口装饰的融合 * 自定义字体 * 各种可自定义的 UI 设置 @@ -35,12 +37,11 @@ Blackbox 是一个支持 GTK4 的终端仿真器。开发人为了他可以在 L 谈到外观,让我们来看看它提供的不同外观。默认窗口将类似于下面的截图。 - ![Default look of Blackbox terminal][4] #### 没有标题栏 -你也可以没有标题栏,如下所示。这是 GTK4 应用程序中最“流行”的功能之一。 +你也可以取消标题栏,如下所示。这是 GTK4 应用程序中最“流行”的功能之一。 ![Blackbox without header bar][5] @@ -48,17 +49,17 @@ Blackbox 是一个支持 GTK4 的终端仿真器。开发人为了他可以在 L ![Floating controls with no header bar mode][6] -#### 轻松复制和粘贴(不要反抗) +#### 轻松复制和粘贴(不要抗拒) -Ctrl+C 和 Ctrl+V 就像复制粘贴的通用键盘快捷键。 +`Ctrl+C` 和 `Ctrl+V` 就像复制粘贴的通用键盘快捷键。 但是古老的 Unix 在宇宙之前就存在了,因此它使用 [Ctrl+C 键来终止终端中正在运行的程序][7]。 -但是,有些人发现不能使用他们最喜欢的快捷方式来[在终端中复制粘贴][8]有点不方便。 +但是,有些人发现不能使用他们最喜欢的快捷键来 [在终端中复制粘贴][8] 有点不方便。 -Blackbox 允许你通过启用“轻松复制和粘贴”设置来更改它。启用此设置后,你可以使用 Ctrl+C 和 Ctrl+v 进行复制粘贴操作。 +Blackbox 允许你通过启用“轻松复制和粘贴”设置来更改它。启用此设置后,你可以使用 `Ctrl+C` 和 `Ctrl+v` 进行复制粘贴操作。 -不用担心。 Ctrl+C 仍可用于停止正在运行的命令。 +不用担心。`Ctrl+C` 仍可用于停止正在运行的命令。 ![Easy copy-paste mode allows using Ctrl+C and Ctrl+V keys][9] @@ -78,13 +79,13 @@ Blackbox 允许你通过启用“轻松复制和粘贴”设置来更改它。 好消息是,如果你对设置进行了太多更改,你可以将它们全部还原并重置为默认设置。 -该选项在首选项的“高级”选项卡中可用。 +该选项在“首选项Preferences”的“高级Advance”选项卡中可用。 ![reset blackbox settings to default][12] ### 安装 Blackbox 终端 -请记住,**Blackbox 处于开发的早期阶段**。我在切换主题时遇到了一些崩溃。 +请记住,**Blackbox 处于开发的早期阶段**。我在切换主题时出现过崩溃。 要安装 Blackbox 终端,你应该在系统中安装 [Flatpak 并启用 Flathub 仓库][13]。 @@ -121,7 +122,7 @@ via: https://itsfoss.com/blackbox-terminal/ 作者:[Anuj Sharma][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/) 荣誉推出 From 74380342bdd257ae399bcc06f2659654c98aef51 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:11:13 +0800 Subject: [PATCH 0968/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220901=20OBS=20Studio=2028.0=20is=20a=20Massive=20?= =?UTF-8?q?Upgrade=20With=20Qt6,=20HDR=20Support;=20Also=20Works=20on=20Ap?= =?UTF-8?q?ple=20Silicon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DR Support; Also Works on Apple Silicon.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md diff --git a/sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md b/sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md new file mode 100644 index 0000000000..4be20bdb91 --- /dev/null +++ b/sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md @@ -0,0 +1,112 @@ +[#]: subject: "OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon" +[#]: via: "https://news.itsfoss.com/obs-studio-28-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon +====== +OBS Studio 28.0 gets a visual refresh, and gears up for modern use-cases with new tech support. + +![OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon][1] + +One of the most popular pieces of open-source software, OBS Studio, gets a major upgrade. + +It is one of the best screen recorders on Linux, and for that matter, pretty much every other desktop platforms too (Windows/macOS). This release brings a boatload of new features, which build upon the numerous previous features as well. + +Let’s take a look at what’s new! + +### 🆕 OBS Studio 28.0: Impactful Release + +The last release that we covered, OBS 27.2, brought official Flatpak support as well as a plethora of UI improvements. + +[OBS Studio 27.2 Adds Official Flatpak Support and Makes Things Easier for Linux Users][2] + +With version 28.0, we are getting some of the key highlights that include: + +* UI framework upgrade (Qt6). +* HDR and 10-bit color support. +* Native Apple Silicon support. +* New default theme (Yami). +* Encoding improvements. + +Before you get to try it out, let me briefly discuss some enhancements. + +#### Improved Color And High Dynamic Range Support + +![obs studio][4] + +As OBS Studio becomes ever more popular, it was time to support more modern use cases. One such case is the use of HDR to allow for significantly greater realism without “clipping” the screen. This means that whites can be whiter, and blacks can be blacker, without losing the accuracy of colors in between. + +Speaking of colors, OBS Studio 28.0 also introduces 10-bit color support. In essence, this means that streams captured using OBS can support as many as 1 billion colors, compared to the measly 16 million offered by 8-bit color. The result is an almost complete removal of blocks of color in dark settings, as well as smoother gradients without having to resort to dithering. + +#### Native Apple Silicon Support + +Although not of particular relevance to Linux users, this release is the first with native Apple Silicon support. We’ve already seen native ARM support for other platforms, (notably Linux and the Raspberry Pi), and it is great to see this support extend to Apple’s ARM platform. + +However, it should be noted that not all plugins will work out of the box on these builds, as many depend on some x86-only components. Therefore, using the x86 version may still be better, at least until all the plugins you use get updated. + +#### UI Framework Upgraded To Qt6 & New Theme (Yami) + +![obs studio][5] + +Qt, the software used to make the graphical components of OBS, has had a major upgrade within this version. Previously, OBS Studio used Qt5, the same software KDE Plasma is built using. + +OBS Studio 28.0 finally brings Qt6 support, which has a huge number of benefits for all platforms. Firstly, it means that OBS Studio can use Vulkan or Metal instead of the outdated OpenGL API. For users on high DPI monitors, OBS Studio should also now scale correctly. + +Unfortunately, this change also means that some older platforms can no longer be supported. So, if you are using Ubuntu 18.04 or older, Windows 7 or 8, or a 32-bit OS, it may not work. + +One can expect a visual makeover with the UI framework update. And, the new default theme gives you that. It looks pretty clean compared to its older version. + +### 🛠️ Other Changes + +Alongside those previously mentioned, OBS Studio brings a couple of other, smaller changes. These include: + +* Updated AMD Encoder on Windows. +* Support for ScreenCaptureKit on macOS 12.5+, resulting in significantly improved capture performance. +* Significant improvements to Apple VT encoder on macOS. +* Application-specific audio capture on Windows. +* Integrated NVIDIA Background Removal on Windows. + +For more details, you can refer to the [official release notes][6]. + +### 📥 Download OBS Studio 28.0 + +The best way to get the latest version is to install the Flatpak package via [Flathub][9]. You can also get it using the Steam client on any platform. + +For other platforms and options, you can head to its [GitHub releases section][10] to download packages. + +[Download OBS Studio 28.0][11] + +### Wrapping Up + +Overall, this release has brought a huge number of exciting new changes, and I’m curious to see how they affect peoples workflows. + +Unfortunately, if you are on KDE, the main UI may look somewhat broken, due to an incompatibility with KDE’s breeze theme. However, for everyone else, I wouldn’t expect any major bugs. + +*Please share your thoughts on this release in the comments down below!* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/obs-studio-28-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/obs-28-0.jpg +[2]: https://news.itsfoss.com/obs-studio-27-2-release/ +[4]: https://news.itsfoss.com/content/images/2022/08/obs-studio-28.png +[5]: https://news.itsfoss.com/content/images/2022/08/OBS-Screenshot-02.png +[6]: https://github.com/obsproject/obs-studio/releases/tag/28.0.0 +[9]: https://flathub.org/apps/details/com.obsproject.Studio +[10]: https://github.com/obsproject/obs-studio/releases +[11]: https://obsproject.com/ From 381bf8d18461bb553bbe4b09655d467effc0834c Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:13:04 +0800 Subject: [PATCH 0969/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220901=20Unity=20Desktop=20Makes=20a=20Comeback=20?= =?UTF-8?q?With=20the=20Upcoming=20Ubuntu=2022.10.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Comeback With the Upcoming Ubuntu 22.10.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md diff --git a/sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md b/sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md new file mode 100644 index 0000000000..d07382796e --- /dev/null +++ b/sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md @@ -0,0 +1,89 @@ +[#]: subject: "Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10" +[#]: via: "https://news.itsfoss.com/unity-remix-official-flavor/" +[#]: author: "Abhishek https://news.itsfoss.com/author/root/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10 +====== +Ubuntu Unity Remix gets the official flavor tag. + +![Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10][1] + +I loved the Unity desktop but not enough to keep on using it when Ubuntu ditched it in 2017 for GNOME. + +I have started liking the customized GNOME Ubuntu offers. And the old flame enters again. + +📣 Ubuntu Unity is going to be an official Ubuntu flavor with the release of version 22.10 Kinetic Kudu. + +> Good news for all Ubuntu Unity lovers! We're an Ubuntu daily flavor now and our ISOs will now be built daily with all other flavors and uploaded to [https://t.co/pELGw8Cct0][2]. Ubuntu Unity 22.10 Beta will be our first release as an official recognized flavor (Sep 29). YAY! 🎉 (1/2) [pic.twitter.com/9ykBYmIA1V][3] + +### A quick recap to Ubuntu Unity Remix + +The young developer [Rudra Saraswat][5] started (another) new distribution called Ubuntu Unity Remix back in 2020. It was built on top of Ubuntu 20.04 LTS with the same Unity 7 that was abandoned by Ubuntu. + +I ignored it. It was just the old Unity with Ubuntu 20.04 as base. A code untouched for three years? I saw no reasons to use it. + +And it went on like that for almost two years. No changes were made to the Unity code base. + +But then in June 2022, for the first time in six years, a new version of Unity was released. + +[Announcing the stable release of Unity 7.6][6] + +In my opinion, it was the first time the project showed real progress. It was no longer just a combination of the same old Unity code with a new Ubuntu base. There was actual code development. + +The Ubuntu Unity Remix team seems determined to not just keep Unity alive but keep it healthy by fixing bugs and adding new features. + +And that determination is what helped them gain the [official Ubuntu flavor][8]. Congratulations to them! + +![Ubuntu Unity desktop][9] + +### Official Ubuntu flavor? What kind of honor badge is that? + +The diverse Linux world has several desktop environments (DEs). + +While the Ubuntu developers focus on the GNOME desktop, community members offer Ubuntu with DEs like KDE (Kubuntu), Xfce (Xubuntu) etc. There are also special purpose variants like Ubuntu Studio (for audio and video editors) and Ubuntu Kylin (for Chinese users). + +These official flavors follow the same release cycle as the main Ubuntu release and get the same packages and updates as the default Ubuntu GNOME. + +Not all Ubuntu remixes are [official flavors][10] though. Ubuntu Cinnamon Remix and Ubuntu DDE Remix exist but don't have the 'official tag' yet. + +### What next for Ubuntu Unity Remix? + +First, it is now called Ubuntu Unity, not Ubuntu Unity Remix. Since it is an official flavor now, it can drop the 'remix' from its name. The 'remix' indicates that the project is not officially supported by Ubuntu/Canonical. + +As an official flavor, the daily builds of Ubuntu Unity Remix version 22.10 will be served from the [Ubuntu archives][11] (not added at the moment). + +It will follow the same release schedule as Ubuntu 22.10 and will be released in October along with the other Ubuntu flavors. + +You can follow the project's progress on [its website][12] or join its social media channels. + +💬 What do you think of Ubuntu Unity getting the official flavor status? Are you looking forward to going back to Unity? The comment section is all yours. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unity-remix-official-flavor/ + +作者:[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/content/images/size/w1200/2022/09/Ubuntu-unity-official-flavor-status.png +[2]: https://t.co/pELGw8Cct0 +[3]: https://t.co/9ykBYmIA1V +[4]: https://twitter.com/ubuntu_unity/status/1565309779031236608?ref_src=twsrc%5Etfw +[5]: https://about.ruds.io/ +[6]: https://unity.ubuntuunity.org/blog/unity-7.6/ +[8]: https://itsfoss.com/which-ubuntu-install/ +[9]: https://news.itsfoss.com/content/images/2022/09/unity_desktop.png +[10]: https://ubuntu.com/desktop/flavours +[11]: https://cdimage.ubuntu.com/ +[12]: https://ubuntuunity.org/ From fa20e6445fc0dedb7cb4223e691e29d5289aae00 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:13:46 +0800 Subject: [PATCH 0970/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220901=20Are=20You=20Familiar=20with=20These=20Pop?= =?UTF-8?q?ular=20=20Open=20Source=20Databases-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...h These Popular Open Source Databases-.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md diff --git a/sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md b/sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md new file mode 100644 index 0000000000..5cd75e15f4 --- /dev/null +++ b/sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md @@ -0,0 +1,189 @@ +[#]: subject: "Are You Familiar with These Popular Open Source Databases?" +[#]: via: "https://www.opensourceforu.com/2022/09/are-you-familiar-with-these-popular-open-source-databases/" +[#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Are You Familiar with These Popular Open Source Databases? +====== +*As data grows by leaps and bounds, its organisation becomes all-important. This article briefly describes the most popular databases being used by software development teams today.* + +In software systems, data is stored in an organised format and can be accessed electronically using a database. As data has become a very important asset today, it is very important for us to have a basic knowledge about the different databases in use today. +The first database that we will be looking at is MySQL. + +### MySQL + +MySQL is one of the most widely used open source database management systems. Owned by Oracle Corporation, it works on most major operating systems like Windows, MacOS, Linux, etc. One big benefit of MySQL is that it works really well for small and large applications. + +#### Advantages + +* It works well with a variety of operating systems and programming languages like PHP, C, C++, Perl, etc. +* It is open source and free. +* It supports a huge size of data of about 8 million terabytes. +* MySQL is customisable as it is open source. +* It is also much faster than other databases. +* To install and get started with MySQL on your Ubuntu based computer, use the command given below: + +``` +$sudo apt update +$sudo apt install mysql-server +$sudo systemctl start mysql.service +``` + +### MariaDB + +MariaDB is popular primarily because of its good performance and compatibility with MySQL. It supports relational databases. The developers of MySQL have built MariaDB and guarantee that it is going to stay open sourced. This popular database server is part of most major cloud offerings today, and gives great importance to stability and performance. MariaDB has recently added clustering techniques using the Galera cluster, and is also compatible with Oracle databases. + +#### Advantages + +* Easy installation +* Supports operation on Big Data +* High scalability +* Easy import of data +* To install and get started with MariaDB on your Ubuntu based computer, use the command given below: + +``` +$sudo apt update +$sudo apt install mysql-server +$sudo systemctl start mysql.service +``` + +### RethinkDB + +RethinkDB is an open source, free, distributed, and document based database server. This NoSQL database has been developed by Rethink, and can store JSON files with schemas that are dynamic. More importantly, real-time updates for query results can be pushed for applications to use. Since it is a distributed database, it is highly scalable. It has many automatic functions, making it a highly available database. As it is a popular database today, it is important that we learn how to use it. + +#### Advantages + +* This is basically an open source database that can be used for Web based applications. +* It is easy to scale because it’s a distributed database. +* It has many automatic functions with a high availability. +* This NoSQL database is JSON dynamic document based. +* The following commands can be helpful for using RethinkDB on your Ubuntu machine: + +``` +Get required packages source +/etc/lsb-release && echo” deb https://download.rethinkdb.com/repository/ubuntu-$DISTRIB_CODENAME $DISTRIB_CODENAME main” | sudo tee /etc/apt/sources.list.d/rethinkdb.list + +Get required repositories +$wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add +$sudo apt update +$sudo apt-get install rethinkdb +$sudo systemctl start rethinkdb +``` + +### OrientDB + +OrientDB is a NoSQL and Java based open source database management system. This multi-model database service system supports all sorts of data like documents, dictionaries, objects, and graphs. It stores the relationships in the form of a graph database. +The following commands can be helpful for using OrientDB on your Ubuntu machine: + +``` +$sudo apt-get update +$wget -O orientdb-community-2.2.20.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.20.tar.gz&os=linux +$tar -zxvf orientdb-community-2.2.20.tar.gz +$sudo mv ~/orientdb-community-2.2.20 /opt/orientdb +``` + +### CouchDB + +CouchDB is an important NoSQL based open source database server developed in Erlang. It uses many protocols and formats to transfer, process and share data. JSON files are used to store the data, MapReduce is used as the base and JavaScript is used as the querying language. + +#### Advantages + +* It can store any kind of data. +* MapReduce helps in increasing its efficiency. +* The overall structure is very simple. +* Indexing and retrieval is fast. +* The following commands can help you to use CouchDB on your Ubuntu machine: + +``` +$echo “deb https://apache.bintray.com/couchdb-deb focal main” >> /etc/apt/sources.list +$sudo apt-get update +$sudo apt install apache2 couchdb -y +``` + +### Firebird + +Firebird is an open source database management system that mainly works on relational databases. It is compatible with all operating systems like Linux, Windows and MacOS. It was originally forked from the Interbase repository, which was also an open source database. + +#### Advantages + +* The functionality of the database is not limited. +* It is a very stable and powerful database. +* The configuration and usage of the database is much simpler than other databases. +* The following commands can help you use Firebird on your Ubuntu machine: + +``` +$sudo apt-get update +$sudo apt-get install firebird2.5-superclassic +``` + +### Cassandra + +Cassandra is owned and developed by Apache. This highly scalable, distributed, high performance database can handle large amounts of data and works really well. As it is distributed among many servers, it has no single point of failure. It is basically a NoSQL database, which implies it is not a relational database. + +#### Advantages + +* High performance +* High scalability +* Peer-to-peer architecture is used instead of master slave architecture +* The following commands can be helpful in using Firebird on your Ubuntu machine: + +``` +$curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add - +$sudo apt-get update +$sudo apt-get install cassandra +$sudo systemctl enable cassandra +$sudo systemctl start cassandra +``` + +### PostgreSQL + +Today PostgreSQL is one of the most popular open source relational database management systems. It is easily extensible and, at the same time, is compliant with SQL. More than 30 years of active development has gone into this DBMS. + +### Advantages + +* In Postgres we can store a wider variety of data compared to MySQL. +* It is largely compliant with the SQL standard. +* It is also highly expandable. + +The following commands can be helpful for using PostgreSQL on your Ubuntu machine: + +``` +$sudo apt-get update +$sudo apt apt install postgresql postgresql-contrib +``` + +### CockroachDB + +CockroachDB is a database built for reliability, i.e., it can survive any kind of adverse situation (just like cockroaches can survive any disastrous situation and multiply). This database can handle large amounts of data. Multicluster databases can also be built. + +### Advantages + +* Deployment is easy +* High consistency +* Transactions are distributed +* Availability is high +* It is also compatible with SQL + +### Redis + +Redis is an open source, key value based data storage database. This NoSQL database is really handy because it uses different keys of various types. + +We’ve gone through the most well-known and popular open source database management systems that are being used to store and manage data. Learning about these different databases can be a lot of fun. Try the different options, and use the one that fits your requirements the best. Also, do check out the official documentation of these databases. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/09/are-you-familiar-with-these-popular-open-source-databases/ + +作者:[Jishnu Saurav Mittapalli][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/jishnu-saurav-mittapalli/ +[b]: https://github.com/lkxed From f33f2de54894bb5eea8aed44bbfb2bca74278fae Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:16:10 +0800 Subject: [PATCH 0971/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220901=20Micro-=20Making=20File=20Editing=20Easier?= =?UTF-8?q?=20in=20Linux=20Terminal.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g File Editing Easier in Linux Terminal.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md diff --git a/sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md b/sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md new file mode 100644 index 0000000000..3268a7af74 --- /dev/null +++ b/sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md @@ -0,0 +1,130 @@ +[#]: subject: "Micro: Making File Editing Easier in Linux Terminal" +[#]: via: "https://itsfoss.com/micro-editor-linux/" +[#]: author: "sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Micro: Making File Editing Easier in Linux Terminal +====== + +While [modern open source code editors][1] have taken the programming world by storm, Linux command line is still ruled by a selected set of text editors. Popular [command line editors][2] like [Vim][3] and Emacs are also infamous for their weird keyboard shortcuts. + +There are several jokes about those weird keyboard shortcuts in the programming world. [Exiting Vim][4] is perhaps the most common of them all. Here’s an example. + +![vim shortcut linux humor][5] + +**[Micro is a modern terminal-based text editor][6]** that attempts to take the pain of keyboard shortcuts and provide popular shortcuts as well as mouse supports. + +Micro is made with [the GO Programming Language][7]. It’s actively being developed by [Zachary Yedidia][8] and many other open source enthusiasts are contributing to it. + +According to [Micro’s GitHub project][9] documentation, + +> Micro aims to be easy to use and intuitive, while also taking advantage of the full capabilities of modern terminals. + +And that’s true. You’re probably wondering what’s special about this one, there are plenty of other terminal-based text editors out there. The answer is that Micro is so easy to use that the learning curve is almost flat, you don’t need to learn anything new, and it has some very interesting features. + +### Features + +![Micro editor interface][10] + +Some of the main highlights of the Micro editor are: + +* Support for universal keyboard shortcuts (Ctrl-S, Ctrl-C, Ctrl-V, Ctrl-Z etc.) +* Syntax highlighting ( for over 130 languages) +* Color scheme and True Color support +* Search and Replace feature +* Common editor features such as Undo and Redo, Unicode support, Line numbering, Soft wrapping etc. +* Copy and Paste from the system clipboard +* Configurable +* Simple auto-completion. +* Splits and tabs +* Good Mouse Support such as drag to select, double click to select a word, triple-click to select by line etc. +* Plug-in support and a built-in plugin manager to automatically install, remove, and update plugins. +* Macros +* Cross Platform + +### Installation + +Micro is available in the repositories of all major distributions. In Ubuntu, you can install it with: + +``` +sudo apt install micro +``` + +This will install `xclip` as a dependency for clipboard functionality. + +Additionally, you can download the pre-built binary from the link below: + +[Download Micro][11] + +Once you download it, extract the file and you’ll find the binary file inside it. Copy this binary file to your /bin directory. And then, you can run it in the terminal using the command “micro”. + +For clipboard support, you need `xclip` and `xsel`  packages. In Ubuntu and other Ubuntu based Linux distributions, you can use the following command to install it: + +``` +sudo apt install xclip +``` + +For detailed information on configuring Micro, [see here][12]. + +![Micro Terminal Text Editor split view with multiple files opened][13] + +### Essential commands and shortcuts + +| Function | Command | +| :- | :- | +| Open a File in Micro | micro [FILENAME] | +| To List Available Plug-Ins | micro -plugin available | +| To Install a  Plug-In | micro -plugin install [PLUGIN] | +| To Remove a Plug-In | micro -plugin remove [PLUGIN] | +| To Execute a Command inside Micro | Ctrl + E | +| To Split open a file Horizontally through command | hsplit [FILENAME] | +| To Split open a file Vertically through command | vsplit [FILENAME] | +| To get Help inside Micro Editor | Ctrl + G | +| To Save a File | Ctrl + S | +| To Copy Text Inside Micro | Ctrl + C | +| To Paste Text Inside Micro | Ctrl + V | +| To Close Micro Editor | Ctrl + Q | +| To Move Through Available Commands | TAB (Shift + Tab for reverse direction) | + +[Download Micro Editor Quick Cheat Sheet][14] + +[Download][15] + +### Thoughts about Micro? + +I think that Micro’s a pretty good tool for text editing. Though it’s not feature-rich like Vim or other mature text editors, it can easily replace tools like Nano for occasional file editing in the terminal. + +If you often have to edit files in the terminal but you don’t feel too comfortable with Vim, give it a try and tell us about your experience. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/micro-editor-linux/ + +作者:[sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ +[2]: https://itsfoss.com/command-line-text-editors-linux/ +[3]: https://www.vim.org/ +[4]: https://itsfoss.com/how-to-exit-vim/ +[5]: https://itsfoss.com/wp-content/uploads/2022/08/vim-shortcut-linux-humor.jpeg +[6]: https://micro-editor.github.io/ +[7]: https://golang.org/ +[8]: https://github.com/zyedidia +[9]: https://github.com/zyedidia/micro +[10]: https://itsfoss.com/wp-content/uploads/2022/08/emmabuntus.jpg +[11]: https://github.com/zyedidia/micro/releases +[12]: https://github.com/zyedidia/micro#configuration +[13]: https://itsfoss.com/wp-content/uploads/2022/08/micro-terminal-text-editor-split-view-with-multiple-files-opened.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/micro-command-line-text-editor-cheat-sheet.pdf +[15]: https://itsfoss.com/wp-content/uploads/2022/08/micro-command-line-text-editor-cheat-sheet.pdf From ecc912e4e41b3cd6861fd27d0654324fe0cfcaca Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:16:56 +0800 Subject: [PATCH 0972/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220901=20How=20To=20Convert=20Arch=20Linux=20Packa?= =?UTF-8?q?ges=20To=20AppImage=20Using=20Arch2appimage.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ackages To AppImage Using Arch2appimage.md | 268 ++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md diff --git a/sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md b/sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md new file mode 100644 index 0000000000..30a5ed0b8f --- /dev/null +++ b/sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md @@ -0,0 +1,268 @@ +[#]: subject: "How To Convert Arch Linux Packages To AppImage Using Arch2appimage" +[#]: via: "https://ostechnix.com/convert-arch-linux-packages-to-appimage/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Convert Arch Linux Packages To AppImage Using Arch2appimage +====== +Arch2appimage - A Python script to convert any arch linux package to an AppImage + +We already have discussed how to convert a DEB package to an Arch Linux package format with **[Debtap][1]** utility. We also have seen how to use **[Alien][2]** tool to convert Linux packages to different formats. Today, we will be discussing yet another Linux package converter tool named **Arch2appimage**. In this guide, we will see a brief introduction to Arch2appimage, and how to install Arch2appimage in Linux and how to **convert Arch Linux packages to AppImage** format with Arch2appimage application. + +### What Is Arch2appimage? + +**Arch2appimage** is a Python script to convert any Arch linux package (official/AUR) to an AppImage format. Arch2appimage downloads the AUR source code, compiles it and finally converts the package to an AppImage executable file. + +Arch2appimage packages the given package to AppImage format including all necessary dependencies. It includes not only the dependencies, but also the dependencies to the dependencies for **better compatibility**. + +Why would I convert an Arch linux package into appimage format? You might winder. AUR (Arch User Repository) is an unofficial, community-driven, and largest software repository that hosts user-created Arch Linux packages. AUR has every kind of packages in it. You may find an interesting package that is only available in AUR and want to use it on a different Linux platform, say Fedora. This is where Arch2Appimage utility comes in help. + +Using Arch2Appimage script, you can easily convert an Arch Linux package file to the AppImage format without much hassle. It is quite helpful to pack one package and run in another distribution, for example Fedora, Debian, openSUSE or any Linux distribution that supports AppImage format.. + +As you may already, AppImage is one of the popular universal package format. Unlike the platform-specific package formats like `.pkg`, `.deb`, `.rpm` etc., an AppImage file is completely portable and AppImages can run on virtually any Linux system. + +Please note that Arch2appimage needs an Arch Linux and its variants like EndeavourOS or Manjaro Linux. Because it uses **[Yay][3]** under the hood to download the packages. However, the developer says you could modify the script to use your compiler as long as dependencies are met. + +Arch2appimage is written in **Python** and the source code is freely available in GitHub. + +### Install Arch2appimage In Arch Linux + +To be able to run Arch2appimage in your Arch Linux system, make sure you have installed **Python 3** and **[Pip][4]** package manager to install the dependencies. + +Git clone the Arch2appimage repository: + +``` +$ git clone https://github.com/redicculus/arch2appimage.git +``` + +This will cone the contents of Arch2appimage repository in a local folder called **arch2appimage**. Cd into the arch2appimage directory: + +``` +$ cd arch2appimage +``` + +And then install Arch2appimage using command: + +``` +$ pip3 install -r requirements.txt +``` + +This should be enough to run Arch2appimage on your system. It is time to pack your favorite Arch Linux packages to AppImage format. + +### Convert Arch Linux Packages To AppImage Format Using Arch2appimage + +Launch Arch2appimage script using command: + +``` +$ python3 arch2appimage.py +``` + +You will be asked a series of questions. Read the questions carefully and answer them accordingly. + +![Convert Arch Linux Packages To AppImage Format][5] + +First, enter the name of the package that you want to convert into AppImage format. For demonstration purpose, I am going to package **"Gedit"** application. The source code of "Gedit" package will be downloaded from AUR. + +``` +Convert any Arch linux package (official/AUR) to AppImage!! +Loading Chaotic AUR package list... + +Enter the name of the package (leave empty to quit) +[?] >>: gedit +Downloading gedit... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB • 1.4 MB/s • 0:00:00 +``` + +Choose an icon to be used for your application (i.e. gedit). Arch2appimage will give two or more choices. You can choose a suitable icon from the list. + +``` +Please select the icon file to be used +[?] >>: AppDir/usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg + > AppDir/usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg + AppDir/usr/share/icons/hicolor/symbolic/apps/org.gnome.gedit-symbolic.svg +``` + +Arch2appimage utility will show you the list of packages to be downloaded. If you want to add additional packages, simply enter its name, else press ENTER to continue. + +``` +These packages (and their dependencies) will be downloaded: +1. gtksourceview4 +2. gsettings-desktop-schemas +3. libpeas +4. gspell +5. python-gobject + +If you would like to add additional packages please enter them below (space seperated). Leave empty to start downloading +[?] >>: +Downloading gtksourceview4... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB • 841.4 kB/s • 0:00:00 +Downloading gsettings-desktop-schemas... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 684.8/684.8 kB • 762.1 kB/s • 0:00:00 +Downloading libpeas... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.0/144.0 kB • 366.0 kB/s • 0:00:00 +Downloading gspell... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.9/125.9 kB • 325.7 kB/s • 0:00:00 +Downloading python-gobject... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 260.1/260.1 kB • 420.5 kB/s • 0:00:00 +``` + +You will be asked to download latest version of **libunionpreload.so** package. You can choose either "yes" or "No". If you choose Yes, a latest version of the above package will be downloaded or the existing old version will be used. + +``` +Would you like to download the latest libunionpreload.so? If you select No the existing one will be used. +[?] >>: Yes + > Yes + No + +Downloading libunionpreload.so... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.6/22.6 kB • ? • 0:00:00 +``` + +Now the package is ready to be converted to AppImage format. The package source code and its dependencies will be downloaded and kept in **arch2appimage/AppDir** directory. + +You can choose the option either "Build the AppImage" to convert the given package to AppImage or choose "Add more packages" option to add other packages. I choose **"Build the AppImage"** option. + +``` +AppDir is ready. Please take a look into the directory to ensure everything is OK. +Exec the AppRun (command './AppRun') to test if everything works. + +What would you like to do next? +[?] >>: Build the AppImage + > Build the AppImage + Add more packages +``` + +Next, choose "Yes" to download the latest AppImageTool (Appimagetool is a tool that lets you generate AppImage files.) or "No" to use the existing one. I go with Yes. + +Congratulations! The Gedit package is converted into AppImage format and saved in `arch2appimage/out` directory. + +``` +Would you like to download the latest AppImageTool? If you select No the existing one will be used. +[?] >>: Yes + > Yes + No + +Downloading AppImageTool... + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB • 3.7 MB/s • 0:00:00 +Running AppImageTool... + +appimagetool, continuous build (commit 4bcfe23), build built on 2022-08-17 01:03:50 UTC +Using architecture x86_64 +/home/ostechnix/arch2appimage/AppDir should be packaged as out/gedit-x86_64.AppImage +Deleting pre-existing .DirIcon +Creating .DirIcon symlink based on information from desktop file +Generating squashfs... +Parallel mksquashfs: Using 2 processors +Creating 4.0 filesystem on out/gedit-x86_64.AppImage, block size 131072. +[====================================================================================================================/] 2371/2371 100% + +Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072 + compressed data, compressed metadata, compressed fragments, + compressed xattrs, compressed ids + duplicates are removed +Filesystem size 7284.77 Kbytes (7.11 Mbytes) + 24.68% of uncompressed filesystem size (29513.93 Kbytes) +Inode table size 26215 bytes (25.60 Kbytes) + 27.56% of uncompressed inode table size (95103 bytes) +Directory table size 22102 bytes (21.58 Kbytes) + 27.04% of uncompressed directory table size (81735 bytes) +Number of duplicate files found 49 +Number of inodes 2848 +Number of files 2338 +Number of fragments 228 +Number of symbolic links 105 +Number of device nodes 0 +Number of fifo nodes 0 +Number of socket nodes 0 +Number of directories 405 +Number of ids (unique uids + gids) 1 +Number of uids 1 + root (0) +Number of gids 1 + root (0) +Embedding ELF... +Marking the AppImage as executable... +Embedding MD5 digest +Success + +Please consider submitting your AppImage to AppImageHub, the crowd-sourced +central directory of available AppImages, by opening a pull request +at https://github.com/AppImage/appimage.github.io +``` + +Next, you will be asked if you want to rebuild the package again. Choosing "Yes" to build the gedit application again and choosing "No" will exit the process. I don't want to restart the building process, so I choose No. + +``` +Would you like to re-build it? +[?] >>: No + Yes + > No +``` + +Finally choose "Yes" to remove the AppDir and close Archappimage utility. + +``` +Would you like to remove AppDir/ +[?] >>: Yes + > Yes + No + +Exiting... +``` + +That's it. The gedit package is converted to AppImage format and the resulting file is saved in **arch2appimage/out** directory. + +``` +[ostechnix@manjaro arch2appimage]$ ls out/ +gedit-x86_64.AppImage +``` + +You can now run the AppImage file using command: + +``` +[ostechnix@manjaro arch2appimage]$ ./out/gedit-x86_64.AppImage +``` + +You can also double click the AppImage file to launch it from your graphical file manager application. + +![Launch Gedit Application AppImage][6] + +The AppImage file is packaged with all necessary dependencies. So you can run it on any Linux distribution without installing it or any other additional application. + +If you want to integrate the Appimage files to your application launcher, refer the following link. + +* [Integrate AppImages To Application Menu Using AppImageLauncher][7] + +### Conclusion + +Arch2appimage is very new project. So you should expect bugs. I tested Arch2appimage only for a brief time in my Manjaro Linux desktop. It works fine with Gedit application. I tested a few other applications such as pacman and yt-dlp. But they didn't work. Arch2appimage kept asking me to enter the path to the `.desktop` file. I don't know where it is. I guess all issues will be sorted out in the stable version. + +**Resource:** + +* [Arch2appimage GitHub Repository][8] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/convert-arch-linux-packages-to-appimage/ + +作者:[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/convert-deb-packages-arch-linux-packages/ +[2]: https://ostechnix.com/convert-linux-packages-alien/ +[3]: https://ostechnix.com/yay-found-yet-another-reliable-aur-helper/ +[4]: https://ostechnix.com/manage-python-packages-using-pip/ +[5]: https://ostechnix.com/wp-content/uploads/2022/09/Convert-Arch-Linux-Packages-To-AppImage-Format.png +[6]: https://ostechnix.com/wp-content/uploads/2022/09/Launch-Gedit-Application-AppImage.png +[7]: https://ostechnix.com/integrate-appimages-to-application-menu-using-appimagelauncher/ +[8]: https://github.com/redicculus/arch2appimage From 8e1c799fff0ba218cddf17194ae7e37686cfe81f Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:18:28 +0800 Subject: [PATCH 0973/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220901=20How=20Tracee=20solves=20the=20lack=20of?= =?UTF-8?q?=20BTF=20information.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...acee solves the lack of BTF information.md | 385 ++++++++++++++++++ 1 file changed, 385 insertions(+) create mode 100644 sources/tech/20220901 How Tracee solves the lack of BTF information.md diff --git a/sources/tech/20220901 How Tracee solves the lack of BTF information.md b/sources/tech/20220901 How Tracee solves the lack of BTF information.md new file mode 100644 index 0000000000..6fa634f91b --- /dev/null +++ b/sources/tech/20220901 How Tracee solves the lack of BTF information.md @@ -0,0 +1,385 @@ +[#]: subject: "How Tracee solves the lack of BTF information" +[#]: via: "https://opensource.com/article/22/9/ebpf-monitor-traffic-tracee" +[#]: author: "Alessio Greggi https://opensource.com/users/alegrey91" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How Tracee solves the lack of BTF information +====== +By tracing processes using Linux eBPF (Berkeley packet filter) technology, Tracee can correlate collected information and identify malicious behavioral patterns. + +![Mesh networking connected dots][1] + +Tracee is a project by Aqua Security for tracing processes at runtime. By tracing processes using [Linux eBPF][2] (Berkeley packet filter) technology, Tracee can correlate collected information and identify malicious behavioral patterns. + +### eBPF + +BPF is a system to help in network traffic analysis. The later eBPF system extends classic BPF to improve the programmability of the Linux kernel in different areas, such as network filtering, function hooking, and so on. Thanks to its register-based virtual machine, which is embedded in the kernel, eBPF can execute programs written with a restricted C language without needing to recompile the kernel or load a module. Through eBPF, you can run your program in kernel context and hook various events in the kernel path. To do so, eBPF needs to have deep knowledge about data structures that the kernel is using. + +### eBPF CO-RE + +eBPF interfaces with Linux kernel ABI (application binary interface). Access to kernel structures from eBPF VM depends on the specific Linux kernel release. + +eBPF CO-RE (compile once, run everywhere) is the ability to write an eBPF program that will successfully compile, pass kernel verification, and work correctly across different kernel releases without the need to recompile it for each particular kernel. + +#### Ingredients + +CO-RE needs a precise synergism of these components: + +* BTF (BPF type format) information: Allows the capture of crucial pieces of information about kernel and BPF program types and code, enabling all the other parts of BPF CO-RE puzzle. +* Compiler (Clang): Records relocation information. For example, if you were going to access the task_struct->pid field, Clang would record that it was exactly a field named `pid` of type `pid_t` residing within a struct `task_struct`. This system ensures that even if a target kernel has a `task_struct` layout in which the `pid` field is moved to a different offset within a `task_struct` structure, you'll still be able to find it just by its name and type information. +* BPF loader (libbpf): Ties BTFs from kernel and BPF programs together to adjust compiled BPF code to specific kernels on target hosts. + +So how do these ingredients mix together for a successful recipe? + +#### Development/build + +To make the code portable, the following tricks come into play: + +* CO-RE helpers/macros +* BTF-defined maps +* #include "vmlinux.h" (the header file containing all the kernel types) + +#### Run + +The kernel must be built with the `CONFIG_DEBUG_INFO_BTF=y` option in order to provide the `/sys/kernel/btf/vmlinux` interface that exposes BTF-formatted kernel types. This allows libbpf to resolve and match all the types and fields and update necessary offsets and other relocatable data to make sure that the eBPF program is working properly for the specific kernel on the target host. + +### The problem + +The problem arises when an eBPF program is written to be portable but the target kernel doesn't expose the `/sys/kernel/btf/vmlinux` interface. For more information, [refer to this list][3] of distributions that support BTF. + +To load an run an eBPF object in different kernels, the libbpf loader uses the BTF information to calculate field offset relocations. Without the BTF interface, the loader doesn't have the necessary information to adjust the previously recorded types that the program tries to access after processing the object for the running kernel. + +Is it possible to avoid this problem? + +#### Use cases + +This article explores [Tracee][4], an Aqua Security open source project, that provides a possible solution. + +Tracee provides different running modes to adapt itself to the environment conditions. It supports two eBPF integration modes: + +* CO-RE: A portable mode, which seamlessly runs on all supported environments +* Non CO-RE: A kernel-specific mode, requiring the eBPF object to be built for the target host + +Both of them are implemented in the eBPF C code (`pkg/ebpf/c/tracee.bpf.c` ), where the pre-processing conditional directive takes place. This allows you to compile CO-RE the eBPF binary, passing the `-DCORE` argument at build time with Clang (take a look at the `bpf-core` Make target). + +In this article, we're going to cover a case of the portable mode when the eBPF binary is built CO-RE, but the target kernel has not been built with `CONFIG_DEBUG_INFO_BTF=y` option. + +To better understand this scenario, it helps to understand what's possible when the kernel doesn't expose BTF-formatted types on sysfs. + +#### No BTF support + +If you want to run Tracee on a host without BTF support, there are two options: + +1. [Build and install][5] the eBPF object for your kernel. This depends on Clang and on the availability of a kernel version-specific kernel-headers package. +2. Download the BTF files from [BTFHUB][6] for your kernel release and provide it to the `tracee-ebpf`'s loader through the `TRACEE_BTF_FILE` environment variable. + +The first option is not a CO-RE solution. It compiles the eBPF binary, including a long list of kernel headers. That means you need kernel development packages installed on the target system. Also, this solution needs Clang installed on your target machine. The Clang compiler can be resource-heavy, so compiling eBPF code can use a significant amount of resources, potentially affecting a carefully balanced production workload. That said, it's a good practice to avoid the presence of a compiler in your production environment. This could lead to attackers successfully building an exploit and performing a privilege escalation. + +The second option is a CO-RE solution. The problem here is that you have to provide the BTF files in your system in order to make Tracee work. The entire archive is nearly 1.3 GB. Of course you can provide just the right BTF file for your kernel release, but that can be difficult when dealing with different kernel releases. + +In the end, these possible solutions can also introduce problems, and that's where Tracee works its magic. + +### A portable solution + +With a non-trivial building procedure, the Tracee project compiles a binary to be CO-RE even if the target environment doesn't provide BTF information. This is possible with the `embed` Go package that provides, at runtime, access to files embedded in the program. During the build, the continuous integration (CI) pipeline downloads, extracts, minimizes, and then embeds BTF files along with the eBPF object inside the `tracee-ebpf` resultant binary. + +Tracee can extract the right BTF file and provide it to libbpf, which in turn loads the eBPF program to run across different kernels. But how can Tracee embed all these BTF files downloaded from BTFHub without weighing too much in the end? + +It uses a feature recently introduced in bpftool by the Kinvolk team called [BTFGen][7], available using the `bpftool gen min_core_btf` subcommand. Given an eBPF program, BTFGen generates reduced BTF files, collecting just what the eBPF code needs for its run. This reduction allows Tracee to embed all these files that are now lighter (just a few kilobytes) and support kernels that don't have the `/sys/kernel/btf/vmlinux` interface exposed. + +#### Tracee build + +Here's the execution flow of the Tracee build: + +![Detailed flowchart of tracee build from tracee/3rdparty/btfhub.sh to tracee-ebpf bin compiled][8] + +Image by: (Alessio Greggi and Massimiliano Giovagnoli, CC BY-SA 4.0) + +First, you must build the `tracee-ebpf` binary, the Go program that loads the eBPF object. The Makefile provides the command `make bpf-core` to build the `tracee.bpf.core.o` object with BTF records. + +Then `STATIC=1 BTFHUB=1 make all` builds `tracee-ebpf`, which has `btfhub` targeted as a dependency. This last target runs the script `3rdparty/btfhub.sh`, which is responsible for downloading the BTFHub repositories: + +* btfhub +* btfhub-archive + +Once downloaded and placed in the `3rdparty` directory, the procedure executes the downloaded script `3rdparty/btfhub/tools/btfgen.sh`. This script generates reduced BTF files, tailored for the `tracee.bpf.core.o` eBPF binary. + +The script collects `*.tar.xz` files from `3rdparty/btfhub-archive/` to uncompress them and finally process them with bpftool, using the following command: + +``` +for file in $(find ./archive/${dir} -name *.tar.xz); do +    dir=$(dirname $file) +    base=$(basename $file) +    extracted=$(tar xvfJ $dir/$base) +    bpftool gen min_core_btf ${extracted} dist/btfhub/${extracted} tracee.bpf.core.o +done +``` + +This code has been simplified to make it easier to understand the scenario. + +Now, you have all the ingredients available for the recipe: + +* tracee.bpf.core.o eBPF object +* BTF reduced files (for all kernel releases) +* tracee-ebpf Go source code + +At this point, `go build` is invoked to do its job. Inside the `embedded-ebpf.go` file, you can find the following code: + +``` +//go:embed "dist/tracee.bpf.core.o" +//go:embed "dist/btfhub/*" +``` + +Here, the Go compiler is instructed to embed the eBPF CO-RE object with all the BTF-reduced files inside itself. Once compiled, these files will be available using the `embed.FS` file system. To have an idea of the current situation, you can imagine the binary with a file system structured like this: + +``` +dist +├── btfhub +│   ├── 4.19.0-17-amd64.btf +│   ├── 4.19.0-17-cloud-amd64.btf +│   ├── 4.19.0-17-rt-amd64.btf +│   ├── 4.19.0-18-amd64.btf +│   ├── 4.19.0-18-cloud-amd64.btf +│   ├── 4.19.0-18-rt-amd64.btf +│   ├── 4.19.0-20-amd64.btf +│   ├── 4.19.0-20-cloud-amd64.btf +│   ├── 4.19.0-20-rt-amd64.btf +│   └── ... +└── tracee.bpf.core.o +``` + +The Go binary is ready. Now to try it out! + +#### Tracee run + +Here's the execution flow of the Tracee run: + +![Flow chart of tracee run assuming BTF info is not available in the kernel, which leads to "copy btf kernel related file" and "load btf file using libbpf under the hood"][9] + +Image by: (Alessio Greggi and Massimiliano Giovagnoli, CC BY-SA 4.0) + +As the flow chart illustrates, one of the very first phases of `tracee-ebpf` execution is to discover the environment where it is running. The first condition is an abstraction of the `cmd/tracee-ebpf/initialize/bpfobject.go` file, specifically where the `BpfObject()` function takes place. The program performs some checks to understand the environment and make decisions based on it: + +1. BPF file given and BTF (vmlinux or env) exists: always load BPF as CO-RE +2. BPF file given but no BTF exists: it is a non CO-RE BPF +3. No BPF file given and BTF (vmlinux or env) exists: load embedded BPF as CO-RE +4. No BPF file given and no BTF available: check embedded BTF files +5. No BPF file given and no BTF available and no embedded BTF: non CO-RE BPF + +Here's the code extract: + +``` +func BpfObject(config *tracee.Config, kConfig *helpers.KernelConfig, OSInfo *helpers.OSInfo) error { + ... + bpfFilePath, err := checkEnvPath("TRACEE_BPF_FILE") + ... + btfFilePath, err := checkEnvPath("TRACEE_BTF_FILE") + ... + // Decision ordering: + // (1) BPF file given & BTF (vmlinux or env) exists: always load BPF as CO-RE + ... + // (2) BPF file given & if no BTF exists: it is a non CO-RE BPF + ... + // (3) no BPF file given & BTF (vmlinux or env) exists: load embedded BPF as CO-RE + ... + // (4) no BPF file given & no BTF available: check embedded BTF files + unpackBTFFile = filepath.Join(traceeInstallPath, "/tracee.btf") + err = unpackBTFHub(unpackBTFFile, OSInfo) + + if err == nil { + if debug { + fmt.Printf("BTF: using BTF file from embedded btfhub: %v\n", unpackBTFFile) + } + config.BTFObjPath = unpackBTFFile + bpfFilePath = "embedded-core" + bpfBytes, err = unpackCOREBinary() + if err != nil { + return fmt.Errorf("could not unpack embedded CO-RE eBPF object: %v", err) + } + + goto out + } + // (5) no BPF file given & no BTF available & no embedded BTF: non CO-RE BPF + ... +out: + config.KernelConfig = kConfig + config.BPFObjPath = bpfFilePath + config.BPFObjBytes = bpfBytes + + return nil +} +``` + +This analysis focuses on the fourth case, when eBPF program and BTF files are not provided to `tracee-ebpf`. At that point, `tracee-ebpf` tries to load the eBPF program extracting all the necessary files from its embed file system. `tracee-ebpf` is able to provide the files that it needs to run, even in a hostile environment. It is a sort of high-resilience mode used when none of the conditions have been satisfied. + +As you see, `BpfObject()` calls these functions in the fourth case branch: + +* unpackBTFHub() +* unpackCOREBinary() + +They extract respectively: + +* The BTF file for the underlying kernel +* The BPF CO-RE binary + +##### Unpack the BTFHub + +Now take a look starting from `unpackBTFHub()` : + +``` +func unpackBTFHub(outFilePath string, OSInfo *helpers.OSInfo) error { + var btfFilePath string + + osId := OSInfo.GetOSReleaseFieldValue(helpers.OS_ID) + versionId := strings.Replace(OSInfo.GetOSReleaseFieldValue(helpers.OS_VERSION_ID), "\"", "", -1) + kernelRelease := OSInfo.GetOSReleaseFieldValue(helpers.OS_KERNEL_RELEASE) + arch := OSInfo.GetOSReleaseFieldValue(helpers.OS_ARCH) + + if err := os.MkdirAll(filepath.Dir(outFilePath), 0755); err != nil { + return fmt.Errorf("could not create temp dir: %s", err.Error()) + } + + btfFilePath = fmt.Sprintf("dist/btfhub/%s/%s/%s/%s.btf", osId, versionId, arch, kernelRelease) + btfFile, err := embed.BPFBundleInjected.Open(btfFilePath) + if err != nil { + return fmt.Errorf("error opening embedded btfhub file: %s", err.Error()) + } + defer btfFile.Close() + + outFile, err := os.Create(outFilePath) + if err != nil { + return fmt.Errorf("could not create btf file: %s", err.Error()) + } + defer outFile.Close() + + if _, err := io.Copy(outFile, btfFile); err != nil { + return fmt.Errorf("error copying embedded btfhub file: %s", err.Error()) + + } + + return nil +} +``` + +The function has a first phase where it collects information about the running kernel (`osId`, `versionId`, `kernelRelease`, etc). Then, it creates the directory that is going to host the BTF file (`/tmp/tracee` by default). It retrieves the right BTF file from the `embed` file system: + +``` +btfFile, err := embed.BPFBundleInjected.Open(btfFilePath) +``` + +Finally, it creates and fills the file. + +##### Unpack the CORE Binary + +The `unpackCOREBinary()` function does a similar thing: + +``` +func unpackCOREBinary() ([]byte, error) { + b, err := embed.BPFBundleInjected.ReadFile("dist/tracee.bpf.core.o") + if err != nil { + return nil, err + } + + if debug.Enabled() { + fmt.Println("unpacked CO:RE bpf object file into memory") + } + + return b, nil +} +``` + +Once the main function `BpfObject()` returns, `tracee-ebpf` is ready to load the eBPF binary through `libbpfgo`. This is done in the `initBPF()` function, inside `pkg/ebpf/tracee.go`. Here's the configuration of the program execution: + +``` +func (t *Tracee) initBPF() error { + ... + newModuleArgs := bpf.NewModuleArgs{ + KConfigFilePath: t.config.KernelConfig.GetKernelConfigFilePath(), + BTFObjPath:      t.config.BTFObjPath, + BPFObjBuff:      t.config.BPFObjBytes, + BPFObjName:      t.config.BPFObjPath, + } + + // Open the eBPF object file (create a new module) + + t.bpfModule, err = bpf.NewModuleFromBufferArgs(newModuleArgs) + if err != nil { + return err + } + ... +} +``` + +In this piece of code we are initializing the eBPF args filling the libbfgo structure `NewModuleArgs{}`. Through its `BTFObjPath` argument, we are able to instruct libbpf to use the BTF file, previously extracted by the `BpfObject()` function. + +At this point, `tracee-ebpf` is ready to run properly! + +![Illustration of the kernel][10] + +Image by: (Alessio Greggi and Massimiliano Giovagnoli, CC BY-SA 4.0) + +##### eBPF module initialization + +Next, during the execution of the `Tracee.Init()` function, the configured arguments will be used to open the eBPF object file: + +``` +Tracee.bpfModule = libbpfgo.NewModuleFromBufferArgs(newModuleArgs) +``` + +Initialize the probes: + +``` +t.probes, err = probes.Init(t.bpfModule, netEnabled) +``` + +Load the eBPF object into kernel: + +``` +err = t.bpfModule.BPFLoadObject() +``` + +Populate eBPF maps with initial data: + +``` +err = t.populateBPFMaps() +``` + +And finally, attach eBPF programs to selected events' probes: + +``` +err = t.attachProbes() +``` + +### Conclusion + +Just as eBPF simplified the way to program the kernel, CO-RE is tackling another barrier. But leveraging such features has some requirements. Fortunately, with Tracee, the Aqua Security team found a way to take advantage of portability in case those requirements can't be satisfied. + +At the same time, we're sure that this is only the beginning of a continuously evolving subsystem that will find increasing support over and over, even in different operating systems. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/ebpf-monitor-traffic-tracee + +作者:[Alessio Greggi][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/alegrey91 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/mesh_networking_dots_connected.png +[2]: https://opensource.com/article/22/8/ebpf-network-observability-cloud +[3]: https://github.com/aquasecurity/btfhub/blob/main/docs/supported-distros.md +[4]: https://github.com/aquasecurity/tracee +[5]: https://aquasecurity.github.io/tracee/dev/building/nocore-ebpf/#install-the-non-co-re-ebpf-object +[6]: https://github.com/aquasecurity/btfhub-archive +[7]: https://kinvolk.io/blog/2022/03/btfgen-one-step-closer-to-truly-portable-ebpf-programs/ +[8]: https://opensource.com/sites/default/files/2022-08/tracee%20build.png +[9]: https://opensource.com/sites/default/files/2022-08/tracee%20run.png +[10]: https://opensource.com/sites/default/files/2022-08/tracee%20bpf.png From 4ea507852da50c941ddcbee128935f6720b118e9 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 01:20:00 +0800 Subject: [PATCH 0974/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220901=20Usability=20and=20accessibility=20starts?= =?UTF-8?q?=20with=20open=20communication.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...sibility starts with open communication.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sources/talk/20220901 Usability and accessibility starts with open communication.md diff --git a/sources/talk/20220901 Usability and accessibility starts with open communication.md b/sources/talk/20220901 Usability and accessibility starts with open communication.md new file mode 100644 index 0000000000..a0e3a3c045 --- /dev/null +++ b/sources/talk/20220901 Usability and accessibility starts with open communication.md @@ -0,0 +1,50 @@ +[#]: subject: "Usability and accessibility starts with open communication" +[#]: via: "https://opensource.com/article/22/9/accessibility-open-source" +[#]: author: "Klaatu https://opensource.com/users/klaatu" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Usability and accessibility starts with open communication +====== +Use open source principles to make your project more accessible for your users. + +Amazing though it may seem, we each experience the world differently. That's one reality with over 6 billion interpretations. Many of us use computers to broaden our experience of the world, but a computer is part of reality and so if you experience reality without, for instance, vision or sound, then you also experience a computer without vision or sound (or whatever your unique experience might be.) As humans, we don't quite have the power to experience the world the way somebody does. We can mimic some of the surface-level things (I can close my eyes to mimic blindness, for example) but it's only an imitation, without history, context, or urgency. As a result of this complexity, we humans design things primarily for ourselves, based on the way we experience the world. That can be frustrating, from an engineering and design viewpoint, because even when you intend to be inclusive, you end up forgetting something "obvious" and essential, or the solution to one problem introduces a problem for someone else, and so on. What's an open source enthusiast, or programmer, or architect, or teacher, or just everyday hacker, supposed to do to make software, communities, and processes accessible? + +### Don't miss the opportunities + +A friend of mine, who lives with hearing loss, recently signed up for a webinar and contacted the host to request captioning or, failing that, a transcript of the lessons. It was a great disappointment when the host, who had specifically emailed all participants with an invitation for feedback, never even responded to the request. In the end, some mutual friends attended the webinar and took notes. + +The webinar was a small event run by an individual, so it's possible that emails all around were going unanswered until the end of the multi-week event. However, this incident can serve as a valuable lesson: Accessibility starts with communication. + +You can't know the unique needs of every single person interacting with the thing (website, software, podcast, article, and so on) you produce. You can't predict what small arbitrary choice you make might lead to the accidental exclusion of someone who would otherwise have engaged with you. What you can do, though, is look for opportunities to learn about them. When someone sends an email about how the 8-point, thin, 45% gray font on a white background makes your website hard to read, don't ignore it, and don't chalk it up to a difference in opinion. When someone files a bug that Orca or [NVDA][5] can't navigate your application, don't close it until it's fixed. + +### What to do when you can't help + +Nobody knows everything, and that's true for each of us participating in open source. It's very likely that you'll get a comment from somebody with an issue in something you've designed, and you won't know how to fix it. Or you might know how to fix it, but you just won't have the time to implement the fix. That doesn't make you a bad person, it just reveals the one thing that's true for all of us: You have limited resources. But through open collaboration, there's more than likely an answer. + +Open source is all about sharing, and this is as true for code as it is for community resources. Identifying a bug at the very least demonstrates what your project needs from potential future contributors. Possibly, the person making the request or filing the bug can help you find someone who knows how to fix the issue. Or maybe they have friends who help them find a work-around, and could at the very least document the round-about way they deal with the issue, which could be exactly the stop-gap you need while you upskill enough to find the "right" fix for the problem. + +Answers to usability and accessibility aren't always as direct as you think they need to be. Sometimes, a simple work-around or accommodation is all that's needed. I contribute to a fairly technical podcast, and I was once asked whether I could release transcripts. It's beyond my means to produce those for every episode, but as a concession I have, ever since, included either existing reference documentation, or I write new documentation on the podcast's website, so that even if a potential listener can't process what I say in the podcast, at least the information I impart isn't lost. It's not the *best* solution (although admittedly my podcasts aren't always as focused as they could be, so actually reference documentation is probably the better option) but the "answer" to the problem is really easy for me to do, but something I hadn't thought to do until someone asked. + +Sometimes the "right" answer is "no." I've gotten requests for visuals to accompany audio-only content before. While it was possible to do that, it would have required a completely different production and hosting infrastructure, and so the answer truly was "no." However, I was able to respond to the request with a list of resources that were providing similar content along with video. You can't be everything to all people. Knowing your project's, and your own, limitations is important, and it's equally important to respect them. + +### Open communication + +Communication is the starting point for usability and accessibility. When someone reaches out to you because something you're doing isn't accessible to them, that is, strange though it may seem, a marketing success. Somebody wants to engage with your content or your project. That's exciting! Don't pass up those opportunities. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/accessibility-open-source + +作者:[Klaatu][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/klaatu +[b]: https://github.com/lkxed From 276654d2a4406bbb87181ee604268c8c45633d57 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 2 Sep 2022 08:25:37 +0800 Subject: [PATCH 0975/3123] translated --- ... analyze my music directory with Groovy.md | 128 ------------------ ... analyze my music directory with Groovy.md | 128 ++++++++++++++++++ 2 files changed, 128 insertions(+), 128 deletions(-) delete mode 100644 sources/tech/20220826 How I analyze my music directory with Groovy.md create mode 100644 translated/tech/20220826 How I analyze my music directory with Groovy.md diff --git a/sources/tech/20220826 How I analyze my music directory with Groovy.md b/sources/tech/20220826 How I analyze my music directory with Groovy.md deleted file mode 100644 index 00022d108b..0000000000 --- a/sources/tech/20220826 How I analyze my music directory with Groovy.md +++ /dev/null @@ -1,128 +0,0 @@ -[#]: subject: "How I analyze my music directory with Groovy" -[#]: via: "https://opensource.com/article/22/8/groovy-script-java-music" -[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How I analyze my music directory with Groovy -====== -To simplify Java's clunkiness, I made a Groovy tool to analyze my music directory. - -Lately, I’ve been looking at how Groovy streamlines the slight clunkiness of Java. In this article, I begin a short series to demonstrate Groovy scripting by creating a tool to analyze my music directory. - -In this article, I demonstrate how the `groovy.File` class extends and streamlines `java.File` and simplifies its use. This provides a framework for looking at the contents of a music folder to ensure that expected content (for example, a `cover.jpg` file) is in place. I use the [JAudiotagger library][2] to analyze the tags of any music files. - -### Install Java and Groovy - -Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed directly from the [Apache Foundation website][3]. A nice alternative for Linux users is [SDKMan][4], which can be used to get multiple versions of Java, Groovy, and many other related tools. For this article, I use SDK's releases of: - -* Java: version 11.0.12-open of OpenJDK 11 -* Groovy: version 3.0.8 - -### Music metadata - -Lately, I've consolidated my music consumption options. I've settled on using the excellent open source [Cantata][5] music player, which is a front end for the open source [MPD music player daemon][6]. All my computers have their music stored in the `/var/lib/mpd/music` directory. In that music directory are artist subdirectories, and in each artist subdirectory are album sub-subdirectories containing the music files, a `cover.jpg`, and occasionally PDFs of the liner notes. - -Almost all of my music files are in FLAC format, with a few in MP3 and maybe a small handful in OGG. One reason I chose the JAudiotagger library is because it handles the different tag formats transparently. Of course, JAudiotagger is open source! - -So what's the point of looking at audio tags? In my experience, audio tags are extremely poorly managed. The word "careless" comes to mind. But that may be as much a recognition of my own pedantic tendencies as real problems in the tags themselves. In any case, this is a non-trivial problem that can be solved with the use of Groovy and JAudiotagger. It's not only applicable to music collections, though. Many other real-world problems include the need to descend a directory tree in a filesystem to do something with the contents found there. - -### Using the Groovy script - -Here's the basic code required for this task. I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" I typically leave for myself: - -``` -1 // Define the music libary directory -2 def musicLibraryDirName = '/var/lib/mpd/music' -3 // Print the CSV file header -4 println "artistDir|albumDir|contentFile" -5 // Iterate over each directory in the music libary directory -6 // These are assumed to be artist directories -7 new File(musicLibraryDirName).eachDir { artistDir -> -8 // Iterate over each directory in the artist directory -9 // These are assumed to be album directories -10 artistDir.eachDir { albumDir -> -11 // Iterate over each file in the album directory -12 // These are assumed to be content or related -13 // (cover.jpg, PDFs with liner notes etc) -14 albumDir.eachFile { contentFile -> -15 println "$artistDir.name|$albumDir.name|$contentFile.name" -16 } -17 } -18 } -``` - -As noted above, I'm using `groovy.File` to move around the directory tree. Specifically: - -Line 7 creates a new `groovy.File` object and calls `groovy.File.eachDir()` on it, with the code between the `{` on line 7 and the closing `}` on line 18 being a `groovy.Closure` argument to `eachDir()`. - -What this means is that `eachDir()` executes that code for each subdirectory found in the directory. This is similar to a Java *lambda* (also called an "anonymous function"). The Groovy closure doesn't restrict access to the calling environment in the way lambda does (in recent versions of Groovy, you can use Java lambdas if you want to). As noted above, subdirectories within the music library directory are expected to be artist directories (for example, "Iron Butterfly" or "Giacomo Puccini") so the `artistDir` is the argument passed by `eachDir()` to the closure. - -Line 10 calls `eachDir()` on each `artistDir`, with the code between the `{` on line 10 and the `}` on line 17 forming another closure which processes the `albumDir`. - -Line 14, calls `eachFile()` on each `albumDir`, with the code between the `{` on line 14 and the `}` on line 16 forming the third-level closure that processes the contents of the album. - -For the scope of this article, the only thing I need to do with each file is begin to build the table of information, which I'm creating as a bar-delimited CSV file that can be imported into [LibreOffice][7] or [OnlyOffice][8], or any other spreadsheet. Right now, the code writes out the first three columns: artist directory name, album directory name, and content file name (also, line 2 writes out the CSV header line). - -Running this on my Linux laptop produces the following output: - -``` -$ groovy TagAnalyzer.groovy | head -artistDir|albumDir|contentFile -Habib Koite & Bamada|Afriki|02 - Ntesse.flac -Habib Koite & Bamada|Afriki|08 - NTeri.flac -Habib Koite & Bamada|Afriki|01 - Namania.flac -Habib Koite & Bamada|Afriki|07 - Barra.flac -Habib Koite & Bamada|Afriki|playlist.m3u -Habib Koite & Bamada|Afriki|04 - Fimani.flac -Habib Koite & Bamada|Afriki|10 - Massake.flac -Habib Koite & Bamada|Afriki|11 - Titati.flac -Habib Koite & Bamada|Afriki|03 – Africa.flac -[...] -Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell].flac -Richard Crandell|Spring Steel|Spring Steel.pdf -Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell].flac -Richard Crandell|Spring Steel|cover.jpg -$ -``` - -In terms of performance: - -``` -$ time groovy TagAnalyzer.groovy | wc -l -9870 - -real        0m1.482s -user        0m4.392s -sys        0m0.230s -$ -``` - -Nice and quick. It processes nearly 10,000 files in a second and a half! Plenty fast enough for me. Respectable performance, compact and readable code—what's not to like? - -In my next article, I crack open the JAudiotagger interface and look at the tags in each file. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/groovy-script-java-music - -作者:[Chris Hermansen][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/clhermansen -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png -[2]: http://www.jthink.net/jaudiotagger/examples_read.jsp -[3]: https://groovy.apache.org/download.html -[4]: https://opensource.com/article/22/3/manage-java-versions-sdkman -[5]: https://opensource.com/article/17/8/cantata-music-linux -[6]: https://www.musicpd.org/ -[7]: https://opensource.com/tags/libreoffice -[8]: https://opensource.com/article/20/7/nextcloud diff --git a/translated/tech/20220826 How I analyze my music directory with Groovy.md b/translated/tech/20220826 How I analyze my music directory with Groovy.md new file mode 100644 index 0000000000..4b3a3d2fdd --- /dev/null +++ b/translated/tech/20220826 How I analyze my music directory with Groovy.md @@ -0,0 +1,128 @@ +[#]: subject: "How I analyze my music directory with Groovy" +[#]: via: "https://opensource.com/article/22/8/groovy-script-java-music" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我如何使用 Groovy 分析我的音乐目录 +====== +为了简化 Java 的繁琐,我制作了一个 Groovy 工具来分析我的音乐目录。 + +最近,我一直在研究 Groovy 是如何简化 Java 的轻微繁琐的。在这篇文章中,我开始了一个简短的系列,通过创建一个分析我的音乐目录的工具来演示 Groovy 脚本。 + +在本文中,我将演示 `groovy.File` 类如何扩展和精简 `java.File` 并简化其使用。这为查看音乐文件夹的内容提供了一个框架,以确保预期的内容(例如,`cover.jpg` 文件)就位。我使用 [JAudiotagger library][2] 来分析任何音乐文件的标签。 + +### 安装 Java 和 Groovy + +Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的版本可能都在你的 Linux 发行版的仓库中。 Groovy 也可以直接从 [Apache Foundation 网站][3]安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][4],它可用于获取 Java、Groovy 和许多其他相关工具的多个版本。对于本文,我使用以下 SDK 版本: + +* Java:版本 11.0.12-open 的 OpenJDK 11 +* Groovy:版本 3.0.8 + +### 音乐元数据 + +最近,我整合了我的音乐消费选择。我决定使用优秀的开源 [Cantata][5] 音乐播放器,它是开源 [MPD 音乐播放器][6]的一个前端。我所有的电脑的音乐都存储在 `/var/lib/mpd/music` 目录下。在该音乐目录下有艺术家子目录,在每个艺术家子目录下有专辑子目录,包含音乐文件、`cover.jpg`,偶尔还有 PDF 格式的内页说明。 + +几乎我所有的音乐文件都是 FLAC 格式的,有一些是 MP3 格式,可能还有一小部分是 OGG 格式。我选择 JAudiotagger 库的一个原因是它透明地处理不同的标签格式。当然,JAudiotagger 是开源的! + +那么查看音频标签有什么意义呢?以我的经验,音频标签的管理极差。脑海中浮现出“粗心”这个词。但这可能是对我自己学究倾向的认可,也是对标签本身的真正问题的认可。无论如何,这是一个可以通过使用 Groovy 和 JAudiotagger 解决的重要问题。不过,它不仅适用于音乐收藏。许多其他现实世界的问题包括需要下降文件系统中的目录树来处理在那里找到的内容。 + +### 使用 Groovy 脚本 + +这是此任务所需的基本代码。我在脚本中加入了评论,这些评论反映了我通常留给自己的(相对缩写的)“评论注释”: + +``` +1 // Define the music libary directory +2 def musicLibraryDirName = '/var/lib/mpd/music' +3 // Print the CSV file header +4 println "artistDir|albumDir|contentFile" +5 // Iterate over each directory in the music libary directory +6 // These are assumed to be artist directories +7 new File(musicLibraryDirName).eachDir { artistDir -> +8 // Iterate over each directory in the artist directory +9 // These are assumed to be album directories +10 artistDir.eachDir { albumDir -> +11 // Iterate over each file in the album directory +12 // These are assumed to be content or related +13 // (cover.jpg, PDFs with liner notes etc) +14 albumDir.eachFile { contentFile -> +15 println "$artistDir.name|$albumDir.name|$contentFile.name" +16 } +17 } +18 } +``` + +如上所述,我使用 `groovy.File` 在目录树中移动。具体来说: + +第 7 行创建一个新的 `groovy.File` 对象并在其上调用 `groovy.File.eachDir()`,第 7 行的 `{` 和第 18 行的结尾的 `}` 之间的代码是传给 `eachDir()` 的 `groovy.Colsue` 参数。 + +这意味着 `eachDir()` 为目录中找到的每个子目录执行该代码。这类似于 Java *lambda*(也称为“匿名函数”)。 Groovy 闭包不会像 lambda 那样限制对调用环境的访问(在最新版本的 Groovy 中,如果你愿意,可以使用 Java lambdas)。如上所述,音乐库目录中的子目录应该是艺术家目录(例如,“Iron Butterfly” 或 “Giacomo Puccini”),因此 `artistDir` 是 `eachDir()` 传递给闭包的参数。 + +第 10 行对每个 `artistDir` 调用 `eachDir()`,第 10 行的 `{` 和第 17 行的 `}` 之间的代码形成另一个处理 `albumDir` 的闭包。 + +第 14 行,在每个 `albumDir` 上调用 `eachFile()`,第 14 行的 `{` 和第 16 行的 `}` 之间的代码形成了处理专辑内容的第三级闭包。 + +在本文的范围内,我对每个文件唯一需要做的就是开始构建信息表,我将其创建为一个以条形分隔的 CSV 文件,它可以导入 [LibreOffice][7] 或[OfficeOnly][8] 或任何其他电子表格。现在,代码输出前三列:艺术家目录名、专辑目录名和内容文件名(同样,第 2 行输出 CSV 标题行)。 + +在我的 Linux 笔记本电脑上运行它会产生以下输出: + +``` +$ groovy TagAnalyzer.groovy | head +artistDir|albumDir|contentFile +Habib Koite & Bamada|Afriki|02 - Ntesse.flac +Habib Koite & Bamada|Afriki|08 - NTeri.flac +Habib Koite & Bamada|Afriki|01 - Namania.flac +Habib Koite & Bamada|Afriki|07 - Barra.flac +Habib Koite & Bamada|Afriki|playlist.m3u +Habib Koite & Bamada|Afriki|04 - Fimani.flac +Habib Koite & Bamada|Afriki|10 - Massake.flac +Habib Koite & Bamada|Afriki|11 - Titati.flac +Habib Koite & Bamada|Afriki|03 – Africa.flac +[...] +Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell].flac +Richard Crandell|Spring Steel|Spring Steel.pdf +Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell].flac +Richard Crandell|Spring Steel|cover.jpg +$ +``` + +在性能方面: + +``` +$ time groovy TagAnalyzer.groovy | wc -l +9870 + +real 0m1.482s +user 0m4.392s +sys 0m0.230s +$ +``` + +又好又快。它在一秒半内处理近 10,000 个文件!对我来说足够快。可观的性能、紧凑且可读的代码,还有什么不喜欢的? + +在我的下一篇文章中,我会打开 JAudiotagger 并查看每个文件中的标签。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/8/groovy-script-java-music + +作者:[Chris Hermansen][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png +[2]: http://www.jthink.net/jaudiotagger/examples_read.jsp +[3]: https://groovy.apache.org/download.html +[4]: https://opensource.com/article/22/3/manage-java-versions-sdkman +[5]: https://opensource.com/article/17/8/cantata-music-linux +[6]: https://www.musicpd.org/ +[7]: https://opensource.com/tags/libreoffice +[8]: https://opensource.com/article/20/7/nextcloud From 966d2b3eb5578f46a69895f996cfe5885b83b6f6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 2 Sep 2022 08:31:48 +0800 Subject: [PATCH 0976/3123] translating --- .../20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md b/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md index 9c31ce0448..04d142d270 100644 --- a/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md +++ b/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/laptop-lid-suspend-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 9a585479a8f1677229b6cdb380d36006fcc67ca0 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 21:27:21 +0800 Subject: [PATCH 0977/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220902=20Microsoft=20Decides=20to=20Drop=20the=20L?= =?UTF-8?q?inux=20App=20for=20Teams=20to=20Replace=20it=20as=20a=20Progres?= =?UTF-8?q?sive=20Web=20App=20Instead.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ace it as a Progressive Web App Instead.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md diff --git a/sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md b/sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md new file mode 100644 index 0000000000..581970668f --- /dev/null +++ b/sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md @@ -0,0 +1,67 @@ +[#]: subject: "Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead" +[#]: via: "https://news.itsfoss.com/microsoft-linux-app-retire/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead +====== +Microsoft will no longer offer a Linux app for Teams. Here's how you can access Microsoft Teams on Linux moving forward. + +![Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead][1] + +**Microsoft loves Linux…**💔 + +If you remember Microsoft marketing this, you know this is not entirely true when reading this news. + +Microsoft introduced the Linux app for Teams back in 2019 as a public preview. Now, within three years of its existence, they decided to retire the Linux client in **early December** 2022. + +At the time of publishing this, there are no official announcements to address this. However, this news was potentially spotted by an administrator using Microsoft Teams. Probably as one of the internal admin notices (via [Hacker News][2]). + +The notice mentions: + +### Progressive Web App (PWA) to Replace the Linux App + +![microsoft teams linux app][3] + +Microsoft says that moving on, they will be offering a Teams progressive web app (PWA) on Linux. + +The PWA will support Background blur, custom backgrounds, reactions, and a couple other desktop app-like features. So, for some users, this is good news. + +It is not clear when the PWA will be made available, as they only mention that you can expect it in the coming months. + +**Unfortunately**, Mozilla Firefox (one of the best browsers for Linux) does not offer support for PWA. + +So, as per the official information, you can expect the PWA to work on [Edge][4], and [Chrome browsers on Linux][5]: + +### What Can You Do Now? + +Honestly, Microsoft Teams app on Linux was not a great experience. + +Therefore, you should start using the web app or wait for the PWA experience. Of course, it may not be convenient to use Microsoft Edge or Chrome browsers if you use its alternatives. But, that's what it is. + +You can also try some unofficial Linux clients, but I'm not certain how good that would work. + +💬 *What do you think about Microsoft retiring its official Linux app to favor a PWA or its web experience? Share your thoughts in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-linux-app-retire/ + +作者:[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/content/images/size/w1200/2022/09/ms-dropping-teams-for-linux.png +[2]: https://news.ycombinator.com/item?id=32678839 +[3]: https://news.itsfoss.com/content/images/2022/09/teams-linux.jpg +[4]: https://itsfoss.com/microsoft-edge-linux/ +[5]: https://itsfoss.com/install-chrome-ubuntu/ From 6a6f4210f7f4b0130b34613904c3762f800c9794 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 21:28:38 +0800 Subject: [PATCH 0978/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220902=20Evernote=20Alternative=20Notesnook=20is?= =?UTF-8?q?=20Now=20Open=20Source.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lternative Notesnook is Now Open Source.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md diff --git a/sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md b/sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md new file mode 100644 index 0000000000..9a2b0b8d77 --- /dev/null +++ b/sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md @@ -0,0 +1,80 @@ +[#]: subject: "Evernote Alternative Notesnook is Now Open Source" +[#]: via: "https://news.itsfoss.com/notesnook-goes-open-source/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Evernote Alternative Notesnook is Now Open Source +====== +Notesnook is a new privacy-focused note-taking app that decided to go open-source. + +![Evernote Alternative Notesnook is Now Open Source][1] + +What comes to mind when you think about an open-source secure note-taking application? + +Probably [Standard Notes][2]**.** + +🔒 It is an open-source, end-to-end encrypted app. And also happens to be one of the best note-taking apps for Linux users: + +[Here Are The Best Note Apps For Linux We Found For You][3] + +However, there are fewer privacy-focused alternatives to Standard Notes that provide features similar to the popular **Evernote** note-taking app. + +Fortunately, we have a new option to join the list, i.e., **Notesnook**. + +📢 Notesnook recently went open-source under GPLv3 license to allow the community to help improve it and make sure the project does not go anywhere. + +Currently, the developers want to focus on improving the GitHub repository, and then move on to add new features/other development activities. + +### Notesnook: What Does It Offer? + +![notesnook][5] + +Notesnook is an open-source zero knowledge notes storage platform with end-to-end encryption. + +Similar to Standard Notes, you can use it for free or opt for the premium plan to unlock a few more perks. Some highlights include: + +* App lock for mobile. +* Private notes vault. +* Password protected note sharing. +* Cross-platform. + +The interface looks like a mix of everything useful. I will be interested to take a look at it separately as a review or maybe for a comparison, sounds good, right? + +It is available for Windows, mac, and Linux. You can download an AppImage file, or .deb/.rpm for the Linux desktop. + +🏷️💲 **To celebrate going open-source**, Notesnook is also offering up to **75% discount** on its [yearly premium plan][6] backed with a 30-day money-back guarantee. You can give it a try and see if you want the premium plan. + +As someone checking out the offering from India, I see an **80% discount**, making it just **$10** for a year of subscription. It can be different for other regions. + +Explore its [GitHub page][7] or the [official website][8] to know more. Additionally, you can read their [blog post][9] on why they decided to go open-source. + +[Notesnook][10] + +💬 *What do you think about Notesnook as a new privacy-centric note-taking app?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/notesnook-goes-open-source/ + +作者:[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/content/images/size/w1200/2022/09/notesnook-ft.png +[2]: https://standardnotes.com/ +[3]: https://itsfoss.com/note-taking-apps-linux/ +[5]: https://news.itsfoss.com/content/images/2022/09/notesnook.jpg +[6]: https://notesnook.com/pricing/ +[7]: https://github.com/streetwriters/notesnook +[8]: https://notesnook.com/ +[9]: https://blog.notesnook.com/notesnook-is-going-open-source/ +[10]: https://notesnook.com/ From 7e30614c9f0b7f3a4661285324a2c7c2821d5668 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 21:30:27 +0800 Subject: [PATCH 0979/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220902=20Where=20is=20DevOps=20Headed-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20220902 Where is DevOps Headed-.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sources/tech/20220902 Where is DevOps Headed-.md diff --git a/sources/tech/20220902 Where is DevOps Headed-.md b/sources/tech/20220902 Where is DevOps Headed-.md new file mode 100644 index 0000000000..5bba1fb1f3 --- /dev/null +++ b/sources/tech/20220902 Where is DevOps Headed-.md @@ -0,0 +1,50 @@ +[#]: subject: "Where is DevOps Headed?" +[#]: via: "https://www.opensourceforu.com/2022/09/where-is-devops-headed/" +[#]: author: "Bhagvan Kommadi https://www.opensourceforu.com/author/bhagvan-kommadi/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Where is DevOps Headed? +====== +*Microsoft, Google, Amazon, IBM, and Oracle are today focusing on DevOps on the cloud. IT automation is what these big companies are offering enterprises. However, DevOps is evolving continuously. DevSecOps, AIOps and NoOps are set to be the next buzzwords.* + +Agile methodology and DevOps have become popular as developers and managers see the business value in delivering good quality software in time. To have flexible release cycles and deliver software with scalable and customisable features is the goal of every enterprise in the world. DevOps has smoothened the release process with CI/CD tools and pipelines being deployed on to the cloud. Polyglot microservices architecture blended with DevOps is helping enterprises to cut down the total cost of ownership. They now have capabilities to upgrade their technology stack with progressive Web apps and the latest UI frameworks. Overall, teams are performing with better efficiency and quality software modules are being developed. + +### Autonomous DevOps + +Containers and DevOps go together with cloud native applications. Kubernetes and Docker are being used as containers and a new term called NoOps is trending now. Orchestration is an important feature of different containers. Container clusters are being created in developer environments to scale the application. There are new containers like Mesos, Swarm, Openshift Rancher and Nomad getting into the cloud native application space. NoOps helps in cutting down the coding cycles in order to monitor and manage the application. Defect fixing and hotfixes are different activities, which are part of NoOps. NoOps helps to improve the synergy between technical teams and business operations personnel. It helps in better monitoring, management, and process automation. NoOps infrastructure enables control of app deployment on the cloud. Enterprises derive benefits like better delivery, service resilience, faster time to market, good quality, and CI/CD automation. + +### DevSecOps + +DevSecOps is another popular trend related to the security concerns addressed during development operations. Recent issues related to vulnerabilities (log4j), security breaches (Google, Facebook, Microsoft), and security attacks have increased the importance of DevSecOps in enterprises. A shift left approach emphasises the importance of security and quality to be addressed earlier in the software life cycle. Privacy and compliances like GDPR need to be considered at the architectural phase itself. This helps in cutting down costs and improving the speed of the software delivery. Auditing tools and security checklists are part of the DevOps tools and systems, which we call DevSecOps now. + +### AIOps + +AI DevOps is now called AIOps. It is being predicted that AI applications will be managed by AIOps in future. Tools and software related to AIOps are being developed and available as first releases. AI/ML applications deployment and model updates can be handled by AIOps. This will play an important role in Industry 4.0 and data science. There is a school of thought that NoOps will be the end point for AIOps. AIOps consists of data set management, model training, model serving, metadata management, model updates, and service updates. Distributed training is enabled by AIOps, which gives the capabilities for hyper parameter optimisation, workflow management, and ‘what if’ analysis. + +### Microservices configuration management + +DevOps and microservices are being implemented as standard deployment and architectural blueprints these days. Apps can be scaled at the module level. Microservices help in simplifying the fixing of defects and isolating problem areas. Microservices by design can be scaled by adding more instances of computing power. But when they are not implemented correctly, issues related to data security and management crop up. + +### Platform as a Product + +Software as a Service and Platform as a Product are popular these days on the cloud. DevOps makes these a reality by accelerating the deployment and delivery of features to the platform. CI/CD pipelines help in visualising the app deployment, right from coding to live phases. Continuous delivery, integration and deployment are all part of DevOps. The future is about DevOps assembly lines simulating industry assembly lines. + +DevOps is slowly graduating to DevSecOps and AIOps. NoOps for enterprises is the future. The need of the hour is to cut down the occurrence of security related attacks, incidents, and breaches. Data security and privacy is a high priority for enterprises, and these new technologies will all help with that. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/09/where-is-devops-headed/ + +作者:[Bhagvan Kommadi][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/bhagvan-kommadi/ +[b]: https://github.com/lkxed From 9644cd122c8a57cd826a093c0bee7a7aeb0afc13 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 21:31:30 +0800 Subject: [PATCH 0980/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220902=20Julia=20and=20Python-=20Which=20Language?= =?UTF-8?q?=20is=20Quicker-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... and Python- Which Language is Quicker-.md | 268 ++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 sources/tech/20220902 Julia and Python- Which Language is Quicker-.md diff --git a/sources/tech/20220902 Julia and Python- Which Language is Quicker-.md b/sources/tech/20220902 Julia and Python- Which Language is Quicker-.md new file mode 100644 index 0000000000..8167e889e6 --- /dev/null +++ b/sources/tech/20220902 Julia and Python- Which Language is Quicker-.md @@ -0,0 +1,268 @@ +[#]: subject: "Julia and Python: Which Language is Quicker?" +[#]: via: "https://www.opensourceforu.com/2022/09/julia-and-python-which-language-is-quicker/" +[#]: author: "B Thangaraju https://www.opensourceforu.com/author/b-thangaraju/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Julia and Python: Which Language is Quicker? +====== +*Julia is a dynamic programming language with a high level of abstraction. While it is a general-purpose language that may be used to develop any program, it has several characteristics that are ideally suited to numerical analysis and computational research. Python was designed in the early 1990s as a simple object-oriented programming language, but has evolved significantly since then. This article takes a deeper look at the performance of both for neural networks and machine learning.* + +Julia’s architecture features parametric polymorphism in a dynamic programming language, as well as a multiple dispatch programming paradigm as its primary programming model. It allows concurrent, parallel, and distributed computing with or without message passing interface (MPI) or the built-in ‘OpenMP-style’ threads, as well as the direct invocation of C and FORTRAN libraries without intermediate code. Julia employs a just-in-time (JIT) compiler, which the Julia community refers to as ‘just-ahead-of-time’ (JAOT) since it compiles all code to machine code by default before running it. + +Unlike Python, Julia was designed specifically for use in statistics and machine learning. +Julia can fly through linear algebra, whereas Python can plod through it. This is because Python was never designed to accommodate all of the matrices and equations that machine learning requires. Python isn’t bad by any means, especially with NumPy, but Julia is a lot better tailored to this kind of mathematics in terms of a no-package experience. Julia’s operand system is a lot more like R’s than Python’s, which is a significant plus. The majority of linear algebra can be completed in less time and with less effort. + +As we know, in recent years Python has dominated the areas of machine learning and data science. Because of the variety of third-party libraries that we can use in Python, it helps to develop machine learning code easily. While there are so many advantages of Python, there is one major drawback — it’s an interpreted language, which makes it slow. This is the age of data, and the more data there is the more time it takes to work on it. That’s where Julia comes into the picture. + +Most of the research work on Julia so far has been on topics like high power computing or the scientific calculation capabilities of Julia. But here we will talk about how Julia is not only capable of working on complex scientific calculations efficiently but also on commercial-based problems, and can tackle Python in machine learning and neural networks. + +### Objective and experimentation + +Julia is as simple as Python but is a compiled language like C. So let’s test how fast Julia is in comparison with Python. For that, we will first test these languages on some simple programs and then move to the main focus of our experiment, which is to test them for machine learning and deep learning. + +Julia and Python provide many libraries and open source benchmarking tools. For benchmarking and calculating time in Julia, we used CPUTime and time libraries. Similarly, for Python, we used the time module. + +### Matrix multiplication + +We tried out simple arithmetic operations first, but since these will not generate much difference in time we decided to check out the timing in matrix multiplication. We started with creating two (10 * 10) matrices of random float numbers and performed dot products in these. As we know, Python has a NumPy library, which is famous for working with matrices and vectors. Similarly, Julia has a LinearAlgebra library that works well with matrices and vectors. So we compared the matrix multiplication with and without using their respective libraries. The source code for all the programs used in this article is available in our GitHub repository ([https://github.com/mr-nerdster/Julia_Research.gitsee][1]). The 10×10 matrix multiplication program written in Julia is given below: + +``` +@time LinearAlgebra.mul!(c,x,y) + +function MM() +x = rand(Float64,(10,10)) +y = rand(Float64,(10,10)) +c = zeros(10,10) + +for i in range(1,10) +for j in range(1,10) +for k in range(1,10) +c[i,j] += x[i,k]*y[k,j] +end +end +end +end +@time MM + +0.000001 seconds +MM (generic function with 1 method) +``` + +Julia takes 0.000017 seconds using the library and 0.000001 seconds using loops. + +The same matrix multiplication program was written in Python, as shown below. From the results it can be seen that with the library the program takes less time compared to without the library. + +``` +import numpy as np +import time as t +x = np.random.rand(10,10) +y = np.random.rand(10,10) +start = t.time() +z = np.dot(x, y) +print(“Time = “,t.time()-start) +Time = 0.001316070556640625 + +import random +import time as t +l = 0 +h= 10 +cols = 10 +rows= 10 + +choices = list (map(float, range(l,h))) +x = [random.choices (choices , k=cols) for _ in range(rows)] +y = [random.choices (choices , k=cols) for _ in range(rows)] + +result = [([0]*cols) for i in range (rows)] + +start = t.time() + +for i in range(len(x)): +for j in range(len(y[0])): +for k in range(len(result)): +result[i][j] += x[i][k] * y[k][j] + +print(result) +print(“Time = “, t.time()-start) + +Time = 0.0015912055969238281 +``` + +Python takes 0.0013 seconds using the library and 0.0015 seconds using loops. + +### Linear search + +The next experiment that we performed was a linear search on one hundred thousand randomly generated numbers. We used two methods here — one by using a for loop and the other by using an operator. We performed 1000 searches with integers ranging from 1 to 1000, and as you can see in the output below we also printed out how many integers we find in the data set. The output of time by using loops and by using the IN operator is given below. Here we measured time by taking the median CPU time of 3 runs. + +The program was written for Julia and the results are shown below. + +``` +import numpy as np +import time as t +x = np.random.rand(10,10) +y = np.random.rand(10,10) +start = t.time() +z = np.dot(x, y) +print(“Time = “,t.time()-start) +Time = 0.001316070556640625 + +import random +import time as t +l = 0 +h= 10 +cols = 10 +rows= 10 + +choices = list (map(float, range(l,h))) +x = [random.choices (choices , k=cols) for _ in range(rows)] +y = [random.choices (choices , k=cols) for _ in range(rows)] + +result = [([0]*cols) for i in range (rows)] + +start = t.time() + +for i in range(len(x)): +for j in range(len(y[0])): +for k in range(len(result)): +result[i][j] += x[i][k] * y[k][j] + +print(result) +print(“Time = “, t.time()-start) + +Time = 0.0015912055969238281 +``` + +The same program was written for Python and the results are: + +``` +FOR_SEARCH: +Elapsed CPU time: 16.420260511 seconds +matches: 550 +Elapsed CPU time: 16.140975079 seconds +matches: 550 +Elapsed CPU time: 16.49639576 seconds +matches: 550 + +IN: +Elapsed CPU time: 6.446583343 seconds +matches: 550 +Elapsed CPU time: 6.216615487 seconds +matches: 550 +Elapsed CPU time: 6.296716556 seconds +matches: 550 +``` + +From the above results, it is evident that there are no time differences between using a loop and an operator in Julia. However, the loop takes almost three times more execution time than the IN operator in Python. The interesting point here is that, in both cases, Julia has a much faster execution time than Python. + +### Linear regression + +The next experiments were performed in machine learning algorithms. We first worked on one of the most common and simple machine learning algorithms, i.e., linear regression with a simple data set. We used a ‘Head Brain’ data set that contains 237 data entries and has two columns [HeadSize, BrainWeight]. In this, we had to calculate the brain weight by using the head size. So we implemented linear regression from scratch, without using any library on this data set in both Python and Julia. + +*Julia:* + +``` +GC.gc() +@CPUtime begin +linear_reg() +end +elapsed CPU time: 0.000718 seconds +``` + +*Python:* + +``` +gc.collect() +start = process_time() +linear_reg() +end = process_time() + +print(end-start) +elapsed time: 0.007180344000000005 +``` + +The time taken by both Julia and Python is given above. + +### Logistic regression + +Next, we carried out an experiment on the most common type of machine learning algorithm, i.e., logistic regression, by using libraries in both languages. For Python, we used its most commonly used library sklearn while in Julia we used the GLM library. The data set that we used for this is the information about a bank’s clients, which contains 10,000 data entries. The target variable is a binary variable that indicates whether the consumer left the bank (closed his or her account) or remained a customer. + +The time taken by Julia for logistic regression is given below. + +``` +@time log_rec() +0.027746 seconds (3.32 k allocations: 10.947 MiB) +``` + +The time taken by Python for logistic regression is also given below. + +``` +gc.collect() +start = process_time() +LogReg() +end = process_time() +print(end-start) + +Accuracy : 0.8068 +0.34901400000000005 +``` + +### Neural networks + +After testing both languages on various programs and data sets, we tested them on neural networks and used the MNIST data set. This data set contains gray-scale images of hand-drawn digits, from zero through nine. Each image is 28×28 pixels. Each pixel value indicates the lightness or darkness of that pixel, and this value is an integer between 0 and 255, both inclusive. The data also contains a label column which represents the digit that was drawn in the respected image. + +![Figure 1: Example of MNIST data set][2] + +Figure 1 shows a few examples of the MNIST data set. + +We created a simple neural network to test the time taken by both languages. The structure of our neural network is like this: + +``` +Input ---> Hidden layer ---> Output +``` + +It contains an input layer, hidden layer, and output layer. To avoid complexities, we did not use any preprocessing on our data set, and worked on it as it is. We trained this model for 40 iterations and checked the time difference between Julia and Python in it. + +![Figure 2: Julia takes 5.76 seconds in a neural network][3] + +For Julia, the Flux library was used to implement the neural network and for Python, the Keras library was used. Figure 2 shows the time taken by Julia in a neural network. +Figure 3 shows the time taken by Python and a few iterations of the model in the neural network. + +![Figure 3: Python takes 110.3 seconds in a neural network][4] + +The results show that there are huge time differences between Julia and Python when it comes to a neural network. + +Table 1 summarises all the results of our experiments, and gives the time difference (in percentage) between Julia and Python. + +| Experiment | Julia (seconds) | Python(seconds) | Time difference (%) | +| :- | :- | :- | :- | +| Matrix multiplication (without library) | 0.000001 | 0.0015 | 99.9 | +| Matrix multiplication (with library) | 0.000017 | 0.0013 | 98.69 | +| Linear search (using loop ) | 0.42 | 16.4 | 97.43 | +| Linear search (using IN operator) | 0.43 | 6.2 | 93.06 | +| Linear regression | 0.000718 | 0.00718 | 90 | +| Logistic regression | 0.025 | 0.34901 | 92.83 | +| Neural networks | 5.76 | 110.3 | 94.77 | + +All the experiments we carried out indicated that as the complexity of the program as well as the size of the data set increases, the execution time difference between Julia and Python increases. From the results, we can conclude that Julia is the better programming language for machine learning and neural networks. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/09/julia-and-python-which-language-is-quicker/ + +作者:[B Thangaraju][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/b-thangaraju/ +[b]: https://github.com/lkxed +[1]: https://github.com/mr-nerdster/Julia_Research.gitsee +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-1-Example-of-MNIST-data-set.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-2-Julia-takes-5.76-seconds-in-a-neural-network.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-3-Python-takes-110.3-seconds-in-a-neural-network.jpg From c082f8abf9cec27a343fee4725f963d155bfee05 Mon Sep 17 00:00:00 2001 From: lkxed Date: Fri, 2 Sep 2022 21:34:08 +0800 Subject: [PATCH 0981/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220902=20How=20to=20display=20the=20presence=20and?= =?UTF-8?q?=20absence=20of=20nth-highest=20group-wise=20values=20in=20SQL.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...of nth-highest group-wise values in SQL.md | 307 ++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md diff --git a/sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md b/sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md new file mode 100644 index 0000000000..a9e8017b3c --- /dev/null +++ b/sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md @@ -0,0 +1,307 @@ +[#]: subject: "How to display the presence and absence of nth-highest group-wise values in SQL" +[#]: via: "https://opensource.com/article/22/9/nth-highest-values-sql" +[#]: author: "Mohammed Kamil Khan https://opensource.com/users/kamilk98" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to display the presence and absence of nth-highest group-wise values in SQL +====== +A step-by-step breakdown of the query. + +![Digital creative of a browser on the internet][1] + +While skimming through SQL to prepare for interviews, I often come across this question: Find the employee with the highest or (second-highest) salary by joining a table containing employee information with another that contains department information. This raises a further question: What about finding the employee who earns the nth-highest salary department-wide? + +Now I want to pose a more complex scenario: What will happen when a department doesn't have an employee earning the nth-highest salary? For example, a department with only two employees will not have an employee earning the third-highest salary. + +Here's my approach to this question: + +### Create department and employee tables + +I create a table that includes fields such as `dept_id` and `dept_name`. + +``` +CREATE TABLE department ( +    dept_id INT, +    dept_name VARCHAR(60) +); +``` + +Now I insert various departments into the new table. + +``` +INSERT INTO department (dept_id,dept_name) +VALUES (780,'HR'); +INSERT INTO department (dept_id,dept_name) +VALUES (781,'Marketing'); +INSERT INTO department (dept_id,dept_name) +VALUES (782,'Sales'); +INSERT INTO department (dept_id,dept_name) +VALUES (783,'Web Dev'); +``` + +![A table showing the data from the earlier code snippets with the columns "Department ID" and "Department Name"][2] + +igure 1. The department table + +Next, I create another table incorporating the fields `first_name`, `last_name`, `dept_id`, and `salary`. + +``` +CREATE TABLE employee ( +    first_name VARCHAR(100), +    last_name VARCHAR(100), +    dept_id INT, +    salary INT +); +``` + +Then I insert values into the table: + +``` +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Sam','Burton',781,80000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Peter','Mellark',780,90000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Happy','Hogan',782,110000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Steve','Palmer',782,120000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Christopher','Walker',783,140000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Richard','Freeman',781,85000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Alex','Wilson',782,115000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Harry','Simmons',781,90000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Thomas','Henderson',780,95000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Ronald','Thompson',783,130000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('James','Martin',783,135000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Laurent','Fisher',780,100000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Tom','Brooks',780,85000); +INSERT INTO employee (first_name,last_name,dept_id,salary) +VALUES ('Tom','Bennington',783,140000); +``` + +![A table showing data from the earlier code snippets with first name, last name, dept ID, and salary columns, ordered by department ID number][3] + +Figure 2. A table of employees ordered by department ID + +I can infer the number of employees in each department using this table (department ID:number of employees): + +* 780:4 +* 781:3 +* 782:3 +* 783:4 + +If I want the view the second-highest-earning employees from different departments, along with their department's name (using `DENSE_RANK` ), the table will be as follows: + +![A table with department ID, department name, first name, last name, and salary columns, listing the second-highest-earning employee in each of four departments, ordered from lowest to highest salary][4] + +Figure 3. The second-highest-earning employee in each department + +If I apply the same query to find the fourth-highest-earning employees, the output will be only Tom Brooks of department 780 (HR), with a salary of $85,000. + +![The table listing fourth-highest-earning employees lists only one employee.][5] + +Figure 4. The fourth-highest-earning employee + +Though department 783 (Web Dev) has four employees, two (James Martin and Ronald Thompson) will be classified as the third-highest-earning employees of that department, since the top two earners have the same salary. + +### Finding the nth highest + +Now, to the main question: What if I want to display the `dept_ID` and `dept_name` with null values for employee-related fields for departments that do not have an nth-highest-earning employee? + +![The list of fourth-highest-earning employee by department, showing "null" in the first name, last name, and salary columns for departments that do not have a fourth-highest earner.][6] + +Figure 5. All departments listed, whether or not they have an nth-highest-earning employee + +The table displayed in Figure 5 is what I am aiming to obtain when specific departments do not have an nth-highest-earning employee: The marketing, sales, and web dev departments are listed, but the name and salary fields contain a null value. + +The ultimate query that helps obtain the table in Figure 5 is as follows: + +``` +SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary +FROM (SELECT * FROM ( +SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +FROM employee INNER JOIN department +ON employee.dept_id=department.dept_id) AS k +WHERE rank1=4)A), +full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)), +nulled AS(SELECT +CASE WHEN null1.dept_id IS NULL THEN full1.dept_id ELSE null1.dept_id END, +CASE WHEN null1.dept_name IS NULL THEN full1.dept_name ELSE null1.dept_name END, +first_name,last_name,salary +FROM null1 RIGHT JOIN full1 ON null1.dept_id=full1.dept_id) +SELECT * FROM null1 +UNION +SELECT * FROM nulled +ORDER BY dept_id) +B; +``` + +### Breakdown of the query + +I will break down the query to make it less overwhelming. + +Use `DENSE_RANK()` to display employee and department information (not involving null for the absence of the nth-highest-earning member): + +``` +SELECT * FROM ( +  SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +   employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +   FROM employee INNER JOIN department +   ON employee.dept_id=department.dept_id) AS k +   WHERE rank1=4 +``` + +Output: + +![A table of the fourth-highest earners showing only the department with a fourth-highest earner][7] + +Figure 6. The fourth-highest earner + +Exclude the `rank1` column from the table in Figure 6, which identifies only one employee with a fourth-highest salary, even though there are four employees in another department. + +``` +SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary +    FROM (SELECT * FROM ( +  SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +   employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +   FROM employee INNER JOIN department +   ON employee.dept_id=department.dept_id) AS k +   WHERE rank1=4)A +``` + +Output: + +![The fourth-highest earner table (table six) without the rank 1 column][8] + +Figure 7. The fourth-highest earner table without the rank 1 column + +Point out the departments from the department table that do not have an nth-highest-earning employee: + +``` +SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary +    FROM (SELECT * FROM ( +  SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +   employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +   FROM employee INNER JOIN department +   ON employee.dept_id=department.dept_id) AS k +   WHERE rank1=4)A), +full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)) +SELECT * FROM full1)B +``` + +Output: + +![The full1 table listing the departments without a fourth-highest earner by department ID and name: marketing, sales, web dev][9] + +Figure 8. The full1 table listing the departments without a fourth-highest earner + +Replace `full1` in the last line of the above code with `null1` : + +``` +SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary +    FROM (SELECT * FROM ( +  SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +   employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +   FROM employee INNER JOIN department +   ON employee.dept_id=department.dept_id) AS k +   WHERE rank1=4)A), +full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)) +SELECT * FROM null1)B +``` + +![The null1 table listing all departments, with null values for those without a fourth-highest earner][10] + +Figure 9. The null1 table listing all departments, with null values for those without a fourth-highest earner + +Now, I fill the null values of the `dept_id` and `dept_name` fields in Figure 9 with the corresponding values from Figure 8. + +``` +SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary +    FROM (SELECT * FROM ( +  SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +   employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +   FROM employee INNER JOIN department +   ON employee.dept_id=department.dept_id) AS k +   WHERE rank1=4)A), +full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)), +nulled AS(SELECT +CASE WHEN null1.dept_id IS NULL THEN full1.dept_id ELSE null1.dept_id END, +CASE WHEN null1.dept_name IS NULL THEN full1.dept_name ELSE null1.dept_name END, +first_name,last_name,salary +FROM null1 RIGHT JOIN full1 ON null1.dept_id=full1.dept_id) +SELECT * FROM nulled) B; +``` + +![The table with department id, department name, first name, last name, and salary columns, with null values in the name and salary columns][11] + +Figure 10. The result of the nulled query + +The nulled query uses `CASE WHEN` on the nulls encountered in the `dept_id` and `dept_name` columns of the `null1` table and replaces them with the corresponding values in the `full1` table. Now all I need to do is apply `UNION` to the tables obtained in Figure 7 and Figure 10. This can be accomplished by declaring the last query in the previous code using `WITH` and then `UNION` -izing it with `null1`. + +``` +SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary +FROM (SELECT * FROM ( +SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name, +employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1 +FROM employee INNER JOIN department +ON employee.dept_id=department.dept_id) AS k +WHERE rank1=4)A), +full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)), +nulled AS(SELECT +CASE WHEN null1.dept_id IS NULL THEN full1.dept_id ELSE null1.dept_id END, +CASE WHEN null1.dept_name IS NULL THEN full1.dept_name ELSE null1.dept_name END, +first_name,last_name,salary +FROM null1 RIGHT JOIN full1 ON null1.dept_id=full1.dept_id) +SELECT * FROM null1 +UNION +SELECT * FROM nulled +ORDER BY dept_id) +B; +``` + +![The complete table: department ID, department name, first name, last name, salary columns. The first row contains the information of the one fourth-highest earner, and the next three columns show the remaining departments, with ID, and null value in the other three columns.][12] + +Figure 11. The final result + +Now I can infer from Figure 11 that marketing, sales, and web dev are the departments that do not have any employees earning the fourth-highest salary. + +Image By: (Mohammed Kamil Khan, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/nth-highest-values-sql + +作者:[Mohammed Kamil Khan][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/kamilk98 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png +[2]: https://opensource.com/sites/default/files/2022-08/fig.%201%20sql.png +[3]: https://opensource.com/sites/default/files/2022-08/FIG%202%20sql.png +[4]: https://opensource.com/sites/default/files/2022-08/fig%203%20sql.png +[5]: https://opensource.com/sites/default/files/2022-08/fg%204%20sql.png +[6]: https://opensource.com/sites/default/files/2022-08/fig%205%20sql.png +[7]: https://opensource.com/sites/default/files/2022-08/fig%206%20sql.png +[8]: https://opensource.com/sites/default/files/2022-08/fig%207%20sql.png +[9]: https://opensource.com/sites/default/files/2022-08/fig%208%20sql.png +[10]: https://opensource.com/sites/default/files/2022-08/fig%209%20sql.png +[11]: https://opensource.com/sites/default/files/2022-08/fig%2010%20sql.png +[12]: https://opensource.com/sites/default/files/2022-08/fig%2011%20sql.png From fe58ab07509e2df87d7887bf285758cfdc685900 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 2 Sep 2022 22:46:02 +0800 Subject: [PATCH 0982/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Yufei-Yan https://linux.cn/article-14994-1.html 可以遵照我的校对,下回对命令加上反撇号。 --- ...date vs upgrade- What-s the Difference-.md | 149 ++++++++++++++++++ ...date vs upgrade- What-s the Difference-.md | 147 ----------------- 2 files changed, 149 insertions(+), 147 deletions(-) create mode 100644 published/20220824 sudo apt update vs upgrade- What-s the Difference-.md delete mode 100644 translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md diff --git a/published/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/published/20220824 sudo apt update vs upgrade- What-s the Difference-.md new file mode 100644 index 0000000000..2b0fb50ab5 --- /dev/null +++ b/published/20220824 sudo apt update vs upgrade- What-s the Difference-.md @@ -0,0 +1,149 @@ +[#]: subject: "sudo apt update vs upgrade: What’s the Difference?" +[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "Yufei-Yan" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14994-1.html" + +apt 的 update 和 upgrade 命令的区别是什么? +====== + +![](https://img.linux.net.cn/data/attachment/album/202209/02/224416uecz5x75yalc0axc.jpg) + +如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用 `sudo apt update` 和 `sudo apt upgrade` 命令组合。 + +一些以前的教程也会提到 `sudo apt-get update` 和 `sudo apt-get upgrade`。 + +`apt` 和 `apt-get` 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。 + +我们首先讨论一下 `update` 和 `upgrade` 的区别。这两个难道不是一样的吗? + +### apt 的 update 和 upgrade 的区别 + +尽管听上去运行 `apt update` 可以给你一个包的最新版本,然而这并不正确。`update` 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 `apt upgrade` 命令来把这些包下载和升级到最新版本。 + +还是有点困惑?让我来接着解释。我建议阅读 [包管理器的概念][1]。这个会帮你更好的理解这些东西。 + +![Linux Package Manager Explanation][2] + +基本上,你的系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。 + +如果你不更新这个数据库,系统就不会知道是否有更新的版本。 + +当你运行 `apt update` 或者 `apt-get update` 命令,它会获取这些包的最新元数据(包的版本等)。 + +![apt update][3] + +这时候本地缓存就被更新了,有一些包可以升级。用 `sudo apt upgrade` 可以升级所有(可升级的)包。 + +它会显示要升级的包,并且通过回车(默认选择是 `Y`)或者按下 `Y` 键进行确认。要在这个阶段取消升级,可以按下 `N`。 + +![apt upgrade][4] + +下面这些可能会帮助你记忆: + +* `apt update`:更新包缓存(可以知道包的哪些版本可以被安装或升级) +* `apt upgrade`:升级包到最新版本 + +因为有一些管理员命令,需要作为 root 运行。因此需要使用 `sudo` 配合其他命令。`sudo` 使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。 + +既然理解了 `update` 和 `upgrade` 是如何一起运行的,我们接下来来讨论一下 `apt` 和 `apt-get` 的用法。 + +### apt 还是 apt-get?应该用哪个? + +Debian 和 Ubuntu 使用的是 APT 包管理系统。不要和 `apt` 命令弄混了。 + +有许多和 APT 包管理交互的命令;`apt-get`、`apt`、`dpkg`、`aptitude` 等。 + +这里面最受欢迎的就是 `apt-get` 命令。它是一个低层级low-level且功能丰富的命令。`apt` 是 `apt-get` 命令的一个更新而更简单的版本。 + +可以读一下这篇文章来 [了解 atp 和 apt-get 命令的不同][5]。下面重点讨论这些命令中 `update` 和 `upgrade` 选项的区别。 + +#### apt update vs apt-get update + +`apt-get update` 和 `apt update` 做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。 + +从技术上讲,其实并没有区别。然而,`apt update` 在一个方面比 `apt-get update` 做的好,**它会告诉你可升级的包的数量**。 + +``` +Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease +Fetched 213 kB in 4s (55.8 kB/s) +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +6 packages can be upgraded. Run 'apt list --upgradable' to see them. +``` + +`apt-get update` 甚至不会告诉你包是否可以升级。 + +![apt get update][6] + +![apt update output][7] + +从 `apt` 中可以看到 [列出可升级的包][8],而 `apt-get` 甚至没有这个选项。 + +``` +# apt list --upgradable +Listing... Done +fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] +gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] +gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] +gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1] +libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] +vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1] +``` + +现在来比较一下两个命令中 `upgrade` 的选项。 + +#### apt upgrade vs apt-get upgrade + +`apt-get upgrade` 和 `apt upgrade` 命令根据本地包缓存(通过 `update` 命令更新)的数据,安装可升级包的最新版本。 + +然而,`apt upgrade` 命令会做两件与 `apt-get upgrade` 不同的事情。 + +`apt upgrade` 命令可以升级 Linux 内核版本,`apt-get upgrade` 不能。`apt-get` 命令需要使用 [apt-get dist-upgrade][9] 来升级内核版本。 + +![apt-get upgrade command cannot upgrade Linux kernel version][10] + +这是因为升级内核版本意味着安装一个全新的包。`apt-get upgrade` 命令不能安装一个新的包。它只能升级现有的包。 + +`apt upgrade` 比 `apt-get` 做的好的另一件小事是,它会在底部**显示一个进度条**。 + +![apt upgrade progress bar][11] + +### 总结 + +`update` 和 `upgrade` 两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 `apt update` 命令应该和 `apt upgrade` 命令合并。 + +我意思是 `upgrade`(所有已安装的包)和 `update`(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 `upgrade` 命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。 + +我希望这篇文章可以解释一些关于 `apt-get update`、`apt-get upgrade` 和 `apt update` 以及 `apt upgrade` 命令的问题。 + +如果有任何问题,请与我联系。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-update-vs-upgrade/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[Yufei-Yan](https://github.com/Yufei-Yan) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/package-manager/ +[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png +[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ +[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png +[8]: https://itsfoss.com/apt-list-upgradable/ +[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ +[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png +[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png diff --git a/translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md deleted file mode 100644 index 29788ad09d..0000000000 --- a/translated/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "sudo apt update vs upgrade: What’s the Difference?" -[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "Yufei-Yan" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -sudo apt update 和 upgrade:区别是什么? -====== - -如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用 **sudo apt update** 和 **sudo apt upgrade** 命令组合。 - -一些以前的教程也会提到 **sudo apt-get update** 和 **sudo apt-get upgrade**。 - -apt 和 apt-get 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。 - -我们首先讨论一下 update 和 upgrade 的区别。这两个难道不是一样的吗? - -### apt update 和 upgrade 的区别 - -尽管听上去运行 apt update 可以给你一个包的最新版本,然而这并不正确。update命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 apt upgrade 命令来把这些包下载和升级到最新版本。 - -还是有点困惑?让我来接着解释。我建议[阅读包管理器的概念][1]。这个会帮你更好的理解这些东西。 - -![Linux Package Manager Explanation][2] - -基本上,你的系统在一个所有可用包的数据库(缓存)上工作。注意,这个缓存或者数据库并不包含这些包本身,仅仅是关于包的元数据(版本,仓库,依赖等)。 - -如果你不更新这个数据库,系统就不会知道是否有更新的版本。 - -当你运行 apt update 或者 apt-get update 命令,它会获取这些包的最新元数据(包的版本等)。 - -![apt update][3] - -这时候本地缓存就被更新了,有一些包可以升级。用 sudo apt upgrade 可以升级所有(可升级的)包。 - -它会显示要升级的包,并且通过回车(默认选择是 Y)或者点击 Y 键进行确认。要在这个阶段取消升级,可以点击 N。 - -![apt upgrade][4] - -下面这些可能会帮助你记忆: - -* apt update:更新包缓存(可以知道包的哪些版本可以被安装或升级) -* apt upgrade:升级包到最新版本 - -因为有一些管理员命令,需要作为 root 运行。因此需要使用 sudo 配合其他命令。sudo 使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。 - -既然理解了 update 和 upgrade 是如何一起运行的,我们来讨论一下 apt 和 apt-get 的用法。 - -### apt 还是 apt-get?应该用哪个? - -Debian 和 Ubuntu 使用的是 APT 包管理系统。不要和 apt 命令弄混了。 - -有许多和 APT 包管理交互的命令;apt-get、apt、dpkg、aptitude等。 - -这里面最受欢迎的就是 apt-get 命令。它是一个低层级low-level且功能丰富的命令。apt 是 apt-get 命令的简化版本。 - -可以[读一下这篇文章来了解 atp 和 apt-get 命令的不同][5]。下面重点讨论这些命令中 update 和 upgrade 选项的区别。 - -#### apt update vs apt-get update - -`apt-get update` 和 `apt update` 做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。 - -从技术上讲,其实并没有区别。然而,apt update 在一个方面比 apt-get update 做的好,**它会告诉你可升级的包的数量**。 - -``` -Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease -Fetched 213 kB in 4s (55.8 kB/s) -Reading package lists... Done -Building dependency tree... Done -Reading state information... Done -6 packages can be upgraded. Run 'apt list --upgradable' to see them. -``` - -apt-get update 甚至不会告诉你包是否可以升级。 - -![apt get update][6] - -![apt update output][7] - -从 apt 中可以看到[列出可升级的包][8],而 apt-get 甚至没有这个选项。 - -``` -[email protected]:~$ apt list --upgradable -Listing... Done -fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] -gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] -gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1] -gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1] -libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1] -vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1] -``` - -现在来比较一下两个命令中 upgrade 的选项。 - -#### apt upgrade vs apt-get upgrade - -apt-get upgrade 和 apt upgrade 命令根据本地包缓存(通过 update 命令更新)的数据,安装可升级包的最新版本。 - -然而,apt upgrade 命令会做两件与 apt-get upgrade 不同的事情。 - -**apt upgrade 命令可以升级 Linux 内核版本,apt-get upgrade 不能**。apt-get 命令需要使用 [apt-get dist-upgrade][9] 来升级内核版本。 - -![apt-get upgrade command cannot upgrade Linux kernel version][10] - -这是因为升级内核版本意味着安装一个全新的包。apt-get upgrade 命令不能安装一个新的包。它只能升级现有的包。 - -apt upgrade 比 apt-get 做的好的另一件小事是,它会在底部**显示一个进度条**。 - -![apt upgrade progress bar][11] - -### 总结 - -update 和 upgrade 两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 apt update 命令应该和 apt upgrade 命令合并。 - -我意思是 upgrade(所有已安装的包)和 update(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 upgrade 命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。 - -我希望这篇文章可以解释一些关于 apt-get update,apt-get upgrade 和 apt update 以及 apt upgrade 命令的问题。 - -如果有任何问题,请与我联系。 - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/apt-update-vs-upgrade/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[https://github.com/Yufei-Yan](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/package-manager/ -[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png -[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png -[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png -[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ -[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png -[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png -[8]: https://itsfoss.com/apt-list-upgradable/ -[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/ -[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png -[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png From 419d3101145ff6b9c112822854428b2e48c91ba5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 2 Sep 2022 23:44:16 +0800 Subject: [PATCH 0983/3123] RP @wxy https://linux.cn/article-14995-1.html --- ...ace it as a Progressive Web App Instead.md | 74 +++++++++++++++++++ ...ace it as a Progressive Web App Instead.md | 67 ----------------- 2 files changed, 74 insertions(+), 67 deletions(-) create mode 100644 published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md delete mode 100644 sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md diff --git a/published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md b/published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md new file mode 100644 index 0000000000..77f154eba6 --- /dev/null +++ b/published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md @@ -0,0 +1,74 @@ +[#]: subject: "Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead" +[#]: via: "https://news.itsfoss.com/microsoft-linux-app-retire/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14995-1.html" + +微软决定放弃 Teams 的 Linux 应用,而用渐进式网页应用取代 +====== + +> 微软将不再为 Teams 提供 Linux 应用。以下是你如何在 Linux 上使用 Teams 的方法。 + +![微软决定不再为 Teams 提供 Linux 应用程序,取而代之的是渐进式Web应用程序][1] + +**微软爱 Linux ...** 💔 + +如果你还记得微软的这个营销套路,那么在阅读这条新闻时,你就知道这并不完全正确。 + +早在 2019 年,微软就为 Teams 推出了 Linux 应用的公共预览版。现在,在其存在的三年后,他们决定在 2022 年 12 月退役其 Linux 客户端。 + +在发表这篇文章的时候,没有任何官方公告来宣布这一消息。这个消息有可能是一个使用微软 Teams 的管理员发现的,它可能是内部管理员的通知之一(据 [Hacker News][2])。 + +该通知提到: + +> 我们将在 90 天内(12 月初)退役 Linux 上的微软 Teams 桌面客户端,该客户端目前以公共预览提供。所有使用微软 Teams Linux 桌面客户端的用户将不得不过渡到网页(PWA)版本,这是我们将继续投入开发资源的地方。我们会帮助所有目前在 Linux 上的客户开始使用 PWA 应用;一旦我们接近发布这一功能,我们将发布相应的指导。 + +### 渐进式网页应用(PWA)将取代 Linux 应用程序 + +![微软 Teams Linux 应用程序][3] + +微软表示,再过段时间,他们将在 Linux 上提供一个 Teams 渐进式网页应用程序(PWA)。 + +这个 PWA 将支持背景模糊、自定义背景、反应和其他一些类似桌面应用的功能。因此,对于一些用户来说,这是一个好消息。 + +目前还不清楚 PWA 将在何时推出,因为他们只提到你可以在未来几个月内期待它。 + +**不幸的是**,Mozilla Firefox(Linux 的最佳浏览器之一)不提供对 PWA 的支持。 + +因此,根据官方信息,你可以在 [Edge][4] 和 [Linux 上的 Chrome 浏览器][5]上运行 PWA : + +> 我们听到你说希望在 Linux 上获得微软 Teams 的全部丰富功能,如背景效果、反应、画廊视图等。我们发现对此采取行动的最佳方式是在 Linux 上提供一个 Teams 渐进式网页应用(PWA),以作为我们当前网页客户端的一个新功能,我们将在未来几个月向我们的 Linux 客户提供。 +> +> PWA 使我们能够更快地将最新的 Teams 功能提供给我们的 Linux 客户,并帮助我们弥补 Linux 和 Windows 上 Teams 桌面客户端之间存在的差距。PWA 体验将在 Linux 上的 Edge 和 Chrome 浏览器上提供。 + +### 你现在能做什么? + +老实说,Linux 上的微软 Teams 应用的体验并不是很好。 + +因此,你应该开始使用网页应用,或者等待 PWA。当然,如果你使用 PWA 的话,你可能不习惯使用微软 Edge 或 Chrome 浏览器。但是,没办法。 + +你也可以尝试一些非官方的 Linux 客户端,但我不确定那会有多好用。 + +*你对微软退役其官方 Linux 应用而偏爱 PWA 或网页版有何看法?在下面的评论中分享你的想法。* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-linux-app-retire/ + +作者:[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/content/images/size/w1200/2022/09/ms-dropping-teams-for-linux.png +[2]: https://news.ycombinator.com/item?id=32678839 +[3]: https://news.itsfoss.com/content/images/2022/09/teams-linux.jpg +[4]: https://itsfoss.com/microsoft-edge-linux/ +[5]: https://itsfoss.com/install-chrome-ubuntu/ diff --git a/sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md b/sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md deleted file mode 100644 index 581970668f..0000000000 --- a/sources/news/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md +++ /dev/null @@ -1,67 +0,0 @@ -[#]: subject: "Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead" -[#]: via: "https://news.itsfoss.com/microsoft-linux-app-retire/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead -====== -Microsoft will no longer offer a Linux app for Teams. Here's how you can access Microsoft Teams on Linux moving forward. - -![Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead][1] - -**Microsoft loves Linux…**💔 - -If you remember Microsoft marketing this, you know this is not entirely true when reading this news. - -Microsoft introduced the Linux app for Teams back in 2019 as a public preview. Now, within three years of its existence, they decided to retire the Linux client in **early December** 2022. - -At the time of publishing this, there are no official announcements to address this. However, this news was potentially spotted by an administrator using Microsoft Teams. Probably as one of the internal admin notices (via [Hacker News][2]). - -The notice mentions: - -### Progressive Web App (PWA) to Replace the Linux App - -![microsoft teams linux app][3] - -Microsoft says that moving on, they will be offering a Teams progressive web app (PWA) on Linux. - -The PWA will support Background blur, custom backgrounds, reactions, and a couple other desktop app-like features. So, for some users, this is good news. - -It is not clear when the PWA will be made available, as they only mention that you can expect it in the coming months. - -**Unfortunately**, Mozilla Firefox (one of the best browsers for Linux) does not offer support for PWA. - -So, as per the official information, you can expect the PWA to work on [Edge][4], and [Chrome browsers on Linux][5]: - -### What Can You Do Now? - -Honestly, Microsoft Teams app on Linux was not a great experience. - -Therefore, you should start using the web app or wait for the PWA experience. Of course, it may not be convenient to use Microsoft Edge or Chrome browsers if you use its alternatives. But, that's what it is. - -You can also try some unofficial Linux clients, but I'm not certain how good that would work. - -💬 *What do you think about Microsoft retiring its official Linux app to favor a PWA or its web experience? Share your thoughts in the comments below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/microsoft-linux-app-retire/ - -作者:[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/content/images/size/w1200/2022/09/ms-dropping-teams-for-linux.png -[2]: https://news.ycombinator.com/item?id=32678839 -[3]: https://news.itsfoss.com/content/images/2022/09/teams-linux.jpg -[4]: https://itsfoss.com/microsoft-edge-linux/ -[5]: https://itsfoss.com/install-chrome-ubuntu/ From 8c4ef8327a075fe6a8991049e3832b97be12b2b3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 3 Sep 2022 11:26:42 +0800 Subject: [PATCH 0984/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220903=208=20Exciting=20New=20Features=20in=20the?= =?UTF-8?q?=20Upcoming=20KDE=205.26=20Release.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atures in the Upcoming KDE 5.26 Release.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md diff --git a/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md b/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md new file mode 100644 index 0000000000..9834a6714e --- /dev/null +++ b/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md @@ -0,0 +1,173 @@ +[#]: subject: "8 Exciting New Features in the Upcoming KDE 5.26 Release" +[#]: via: "https://news.itsfoss.com/kde-plasma-5-26-features/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +8 Exciting New Features in the Upcoming KDE 5.26 Release +====== +KDE Plasma 5.26 is an exciting upcoming update with plenty of useful feature additions. Let's check it out. + +![8 Exciting New Features in the Upcoming KDE 5.26 Release][1] + +KDE Plasma, the popular desktop environment, has been receiving some major updates and tons of fixes over the last five months. + +The previous release—Plasma 5.25—saw many new features and improvements, especially to the user interface and experience, and the next release sounds even more exciting. + +### KDE Plasma 5.26: What's New? + +Let's take a sneak peek at some new features coming to KDE Plasma 5.26. + +#### 1. User Interface Improvements + +Just like the last release, Plasma 5.26 brings in numerous refinements and how you interact with the UI. You will find subtle changes, and tweaks to **give more information to the users** while interacting/searching for things on KDE Plasma 5.26. + +For instance, the Settings pages for “Format” and “Language” pages have now been merged to give you a cleaner look and get rid of some usual bugs associated with it. + +Great work by **Han Young** for [merging these two pages][4]! + +So, you can easily set default formats, and [set your address, name style, phone numbers][5], and more from these settings. + +![kde plasma 5.26][6] + +Another example includes- if you add a shell script under the **Login Scripts** section in the system settings Autostart window, a warning is displayed if that script is not marked executable. Additionally, it also includes a button to make it executable in a single click. + +Thanks to **Nicolas Fella** for this [contribution][7]! + +![kde plasma 5.26 screenshot][8] + +Not to forget, the "Cover" and "Flip" task switch Effects used a Plasma dialog as the background. + +The same UI components used in the overview effects are now applied instead, giving a more consistent look. This includes a uniform background and blurring effect too. + +Thanks to **Ismael Asensio** for this [addition][9]! + +![kde plasma 5.26 screenshot][10] + +Similarly, more UI betterment include: + +* Polishing KDE apps for a cleaner UX. +* Adjustments to the system settings for a cleaner look. +* Improvements to configure a folder for sharing with Samba. +* Refinements to the Dolphin file manager UI. + +#### 2. Dolphin's New Selection Mode + +Users, especially those using a touchscreen, can easily select or deselect items by performing a long press on a folder or file, just like on a smartphone. If you're using a mouse and keyboard, pressing the space bar will enter or exit this optional mode. + +A context menu with a range of options will also be displayed, just like the right-click menu. + +Kudos to **Felix Ernst** for this cool [addition][11]! + +![kde plasma 5.26 screenshot][12] + +#### 3. New "Compact" Mode for Kickoff + +Kickoff, Plasma's native application launcher, now supports a new mode called Compact view. + +As the name suggests, the contents have been scaled down so that more items are visible. Do note that this setting is not ideal for users using Touch Mode and is thus disabled. + +Awesome work by **Nate Graham** for this helpful [addition][13]! + +![kde plasma 5.26 screenshot][14] + +#### 4. Non-Blurry XWayland Apps + +Wayland users with HiDPI screens face many issues related to the scaling of apps. To counter this, users have two options to choose how their XWayland apps would be scaled. + +One way is to allow uniform scaling using the compositor, which may lead to slight blurriness. + +The other one is to allow the apps to scale themselves. Do note that apps that support pre-existing X11 HiDPI will only benefit from this setting. + +There's even a help icon added to each of the options that elaborates what the option does, so users get a clearer idea. + +Kudos to **David Edmundson and Aleix Pol Gonzales** for adding the scaling feature and **Nate Graham**for the [help tooltips][15]! + +![kde plasma 5.26 screenshot][16] + +#### 5. Support for More Hardware and Firmware Data + +The "**About This System**" page in System Settings has been updated to support newer hardware and firmware. Apple Mac/Macbook users will be pleased to know that support for the Apple M1 is also included. + +Thanks to **James Calligeros** for this [addition][17]! + +![kde plasma 5.26 screenshot][18] + +#### 6. Enhancements to Discover + +KDE's flagship app store—Discover—has received a couple of helpful additions that should help users avoid confusion when choosing software. + +For instance, Discover will display a message box if the beta version of the software is being viewed on the app page. Moreover, a warning will also be displayed if the beta channel is outdated or older than the stable channel. + +![kde plasma 5.26 screenshot][19] + +If the software is an add-on, the “Distributed by” label won't show the project's source unlickable URL anymore, but display "KDE Store" instead. + +Moreover, users can finally set the notification frequencies accordingly for any software updates. + +Great work by **Aleix Pol Gonzalez** for all these amazing additions! + +#### 7. Re-bindable Mouse buttons + +![mouse extra button config kde plasma][20] + +If you use a mouse that has extra buttons, you can assign those to keystrokes or keyboard shortcuts. + +This was made possible by **David Rdondo**, a pretty good feature with KDE Plasma 5.26! + +#### 8. Launch Executable files from File searches + +With KDE Plasma 5.26, you get a prompt when you try to open an executable that find through file searches. + +You can either execute the file or open it. I think this is a pretty useful addition. + +#### 🛠️ Other Features and Improvements + +Apart from the key highlights listed above, there are tons of other additions and plenty of bug fixes. + +Some extra refinements worth noting include: + +* Ability to set and track two different calendars simultaneously under the main calendars. +* Elisa player has a full-screen mode. +* Resizable panel widget pop-ups. +* Preview desktop wallpapers with a single click without applying. +* Wallpapers automatically adjust the image according to the active light or dark color scheme. +* Option to disable middle-click paste for Wayland session. +* Switching between widgets using the “Alternate” panel saves the settings of the older widget. + +💬 *Are you excited about the changes coming to KDE Plasma 5.26? Share your thoughts in the comments down below.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kde-plasma-5-26-features/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/09/kde-5-26-release.png +[4]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1147 +[5]: https://bugs.kde.org/show_bug.cgi?id=430801 +[6]: https://news.itsfoss.com/content/images/2022/08/more-things-to-configure.webp +[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/878 +[8]: https://news.itsfoss.com/content/images/2022/08/needs-to-be-executable.webp +[9]: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/168 +[10]: https://news.itsfoss.com/content/images/2022/08/switchui.webp +[11]: https://bugs.kde.org/show_bug.cgi?id=427202 +[12]: https://news.itsfoss.com/content/images/2022/08/selection-mode-in-dolphin.jpeg +[13]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/699 +[14]: https://news.itsfoss.com/content/images/2022/08/compact_mode.png +[15]: https://invent.kde.org/plasma/kscreen/-/merge_requests/108 +[16]: https://news.itsfoss.com/content/images/2022/08/kscreen-kcm-help-in-a-tooltip.webp +[17]: https://invent.kde.org/plasma/kinfocenter/-/merge_requests/104 +[18]: https://news.itsfoss.com/content/images/2022/08/m1-in-about.webp +[19]: https://news.itsfoss.com/content/images/2022/08/bender-old-beta.jpeg +[20]: https://news.itsfoss.com/content/images/2022/09/kde-plasma-5-26-mouse-buttons.png From 903831098bd10e15210206df79e722ed0dcadab3 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 3 Sep 2022 21:14:32 +0800 Subject: [PATCH 0985/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220903=20GNOME=20Web=2043=20Looks=20Beautiful=20wi?= =?UTF-8?q?th=20Adwaita=20Tab=20View.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3 Looks Beautiful with Adwaita Tab View.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md diff --git a/sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md b/sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md new file mode 100644 index 0000000000..cc600bbf46 --- /dev/null +++ b/sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md @@ -0,0 +1,106 @@ +[#]: subject: "GNOME Web 43 Looks Beautiful with Adwaita Tab View" +[#]: via: "https://www.debugpoint.com/gnome-web-43-tab-view/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME Web 43 Looks Beautiful with Adwaita Tab View +====== +GNOME Web 43 Tab View looks awesome and its going to change your workflow. + +Our beloved GNOME Web (Epiphany) becoming more and more intuitive in every passing day – thanks to the developers. + +Recently, it has been ported to GTK4, libadwaita which brings the nice looks overall and some cool new features. All of these changes arriving on [GNOME 43][1] release due in a few weeks. + +### GNOME Web 43 Tab View + +In my opinion, the most cool feature of GNOME Web 43 is the Tab view. Here’s how it looks. + +![GNOME Web 43 Tab View][2] + +Cool, isn’t it? Here are the key features. + +The GNOME Web 43 tab view brings small and **responsive preview of all the open tabs** in a single page. It’s a different view in GNOME Web 43 and do not get confused with the default recent page view. + +A **new toolbar button** at the top bar of GNOME Web kicks off this view. Its a **toggle** button, that means – to turn off this view, simply click again. + +Next, the tab view is **responsive** in nature. That means, as you keep on adding tabs, the tab views **resizes** itself by calculating available space from the size of parent Web dialog. + +Since the GNOME Web 43 tab view is completely different page of the Web, it has two additional controls. + +First is a **search button** at the left top section of Tab view which enables you to search the *titles*of the open tabs. Its dynamic and search result arrives in the same page. + +Secondly, a new Tab button at the bottom helps you to **create a new tab** from Web’s Tab view page itself. That means, you don’t need to go to the horizontal tab view to create a tab. + +Also, if you press escape in this view, you go back to the main view. Finally a total tab count at the top section – gives you a hint of how many tabs you have opened. + +### Video + +Here’s a nice video which I prepared to show you how cool it is. + +![][3] + +So, in summary, here’s what you get in GNOME Web 43 tab view: + +* Tab view is a new page with responsive preview of your open tabs. +* Search and create tab option. +* Drag and drop feature to re-order the tab thumbnails. +* All the tab context menu features (such as Pin tab, reload tab, etc.) available in this tab view. +* Awesome keyboard shortcuts to browse the tabs (such as CTRL+Page Up and Down to go up and back). +* Tab preview image is dynamic, that means as your page loads, tab view refreshes by itself! + +### Implementation + +This feature is courtesy of libadwaita library. It was available since libadwaita v1.0, but implemented now. You can read the documentation [here][4]. + +``` +final class Adw.TabView : Gtk.Widget { +/* No available fields */ +} + +AdwTabView* +adw_tab_view_new ( + void +) +``` + +*The main TabView class and constructor to create Tabview* + +As of writing this post, this feature is NOT yet merged (MR!1190) to Epiphany main branch for GNOME 43. Above screenshots and feature highlights are from the development version of Web 43. + +### What about Files, Terminal and Text editor? + +I know what you are thinking. + +What if the same feature arrives in Files or in GNOME Terminal? Wouldn’t it be cool? + +Yes, there is a strong possibility. Because the feature is actually part of Libadwaita and Web is the first native app that implements it. + +If GNOME devs want, Files and other native apps can inherit this feature via libadwaita. However, I haven’t came across any draft/roadmap to implement this for other apps, yet. + +### Wrapping up + +So, that about this cool new GNOME Web 43 tab view feature. Finally, Web is becoming a viable alternative web browser other than Firefox. + +What do you think about the above feature? Do let me know in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-web-43-tab-view/ + +作者:[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/gnome-43/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/GNOME-Web-43-Tab-View.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/09/GNOME-43-Web-Tav-View.mp4 +[4]: https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/ctor.TabView.new.html From a0da6e837da7cb4bf646f272bf9d9bc42ea8777d Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 3 Sep 2022 21:15:50 +0800 Subject: [PATCH 0986/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220903=20Infuse=20your=20awk=20scripts=20with=20Gr?= =?UTF-8?q?oovy.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...903 Infuse your awk scripts with Groovy.md | 348 ++++++++++++++++++ 1 file changed, 348 insertions(+) create mode 100644 sources/tech/20220903 Infuse your awk scripts with Groovy.md diff --git a/sources/tech/20220903 Infuse your awk scripts with Groovy.md b/sources/tech/20220903 Infuse your awk scripts with Groovy.md new file mode 100644 index 0000000000..0dd7cadd45 --- /dev/null +++ b/sources/tech/20220903 Infuse your awk scripts with Groovy.md @@ -0,0 +1,348 @@ +[#]: subject: "Infuse your awk scripts with Groovy" +[#]: via: "https://opensource.com/article/22/9/awk-groovy" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Infuse your awk scripts with Groovy +====== +Awk and Groovy complement each other to create robust, useful scripts. + +Recently I wrote a series on using Groovy scripts to clean up the tags in my music files. I developed a [framework][2] that recognized the structure of my music directory and used it to iterate over the content files. In the final article of that series, I separated this framework into a utility class that my scripts could use to process the content files. + +This separate framework reminded me a lot of the way awk works. For those of you unfamiliar with awk, you might benefit from Opensource.com's eBook, [A practical guide to learning awk][3]. + +I have used awk extensively since 1984, when our little company bought its first "real" computer, which ran System V Unix. For me, awk was a revelation: It had associative memory— think arrays indexed by strings instead of numbers. It had regular expressions built in, seemed designed to deal with data, especially in columns, and was compact and easy to learn. Finally, it was designed to work in Unix pipelines, reading its data from standard input or files and writing to output, with no ceremony required to do so—data just appeared in the input stream. + +To say that awk has been an essential part of my day-to-day computing toolkit is an understatement. And yet there are a few things about how I use awk that leave me unsatisfied. + +Probably the main issue is that awk is good at dealing with data presented in delimited fields but curiously not good at handling comma-separated-value files, which can have field delimiters embedded within a field, provided that the field is quoted. Also, regular expressions have moved on since awk was invented, and needing to remember two sets of regular expression syntax rules is not conducive to bug-free code. [One set of such rules is bad enough][4]. + +Because awk is a small language, it's missing some things that I sometimes find useful, like a richer assortment of base types, structures, switch statements, and so on. + +In contrast, Groovy has all of these good things: access to [the OpenCSV library][5], which facilitates dealing with CSV files, Java regular expressions and great matching operators, a rich assortment of base types, classes, switch statements, and more. + +What Groovy lacks is the simple pipeline-oriented view of data as an incoming stream and processed data as an outgoing stream. + +But my music directory processing framework made me think, maybe I can create a Groovy version of awk's "engine". That's my objective for this article. + +### Install Java and Groovy + +Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed following the instructions on the [Groovy homepage][6]. A nice alternative for Linux users is [SDKMan][7], which can be used to get multiple versions of Java, Groovy and many other related tools. For this article, I'm using SDK's releases of: + +* Java: version 11.0.12-open of OpenJDK 11; +* Groovy: version 3.0.8. + +### Creating awk with Groovy + +The basic idea here is to encapsulate the complexities of opening a file or files for processing, splitting the line into fields, and providing access to the stream of data in three parts: + +* Before any data is processed +* On each line of data +* After all data is processed + +I'm not going for the general case of replacing awk with Groovy. Instead, I'm working toward my typical use case, which is: + +* Use a script file rather than having the code on the command line +* Process one or more input files +* Set my default field delimiter to `|` and split lines read on that delimiter +* Use OpenCSV to do the splitting (what I can't do in awk) + +### The framework class + +Here's the "awk engine" in a Groovy class: + +``` +1 @Grab('com.opencsv:opencsv:5.6') + 2 import com.opencsv.CSVReader + 3 public class AwkEngine { + 4 // With admiration and respect for + 5 //     Alfred Aho + 6 //     Peter Weinberger + 7 //     Brian Kernighan + 8 // Thank you for the enormous value + 9 // brought my job by the awk +10 // programming language +11 Closure onBegin +12 Closure onEachLine +13 Closure onEnd + +14 private String fieldSeparator +15 private boolean isFirstLineHeader +16 private ArrayList fileNameList +    +17 public AwkEngine(args) { +18     this.fileNameList = args +19     this.fieldSeparator = "|" +20     this.isFirstLineHeader = false +21 } +    +22 public AwkEngine(args, fieldSeparator) { +23     this.fileNameList = args +24     this.fieldSeparator = fieldSeparator +25     this.isFirstLineHeader = false +26 } +    +27 public AwkEngine(args, fieldSeparator, isFirstLineHeader) { +28     this.fileNameList = args +29     this.fieldSeparator = fieldSeparator +30     this.isFirstLineHeader = isFirstLineHeader +31 } +    +32 public void go() { +33     this.onBegin() +34     int recordNumber = 0 +35     fileNameList.each { fileName -> +36         int fileRecordNumber = 0 +37         new File(fileName).withReader { reader -> +38             def csvReader = new CSVReader(reader, +39                 this.fieldSeparator.charAt(0)) +40             if (isFirstLineHeader) { +41                 def csvFieldNames = csvReader.readNext() as +42                     ArrayList +43                 csvReader.each { fieldsByNumber -> +44                     def fieldsByName = csvFieldNames. +45                         withIndex(). +46                         collectEntries { name, index -> +47                             [name, fieldsByNumber[index]] +48                         } +49                     this.onEachLine(fieldsByName, +50                             recordNumber, fileName, +51                             fileRecordNumber) +52                     recordNumber++ +53                     fileRecordNumber++ +54                 } +55             } else { +56                 csvReader.each { fieldsByNumber -> +57                     this.onEachLine(fieldsByNumber, +58                         recordNumber, fileName, +59                         fileRecordNumber) +60                     recordNumber++ +61                     fileRecordNumber++ +62                 } +63             } +64         } +65     } +66     this.onEnd() +67 } +68 } +``` + +While this looks like a fair bit of code, many of the lines are continuations of a split longer lines (for example, normally you would combine lines 38 and 39, lines 41 and 42, and so on). Let's look at this line by line. + +Line 1 uses the `@Grab` annotation to fetch the OpenCSV library version 5.6 from [Maven Central][8]. No XML required. + +In line 2, I import OpenCSV's `CSVReader` class. + +In line 3, just as with Java, I declare a public utility class, `AwkEngine`. + +Lines 11-13 define the Groovy Closure instances used by the script as hooks into this class. These are "public by default" as is the case with any Groovy class—but Groovy creates the fields as private and external references to these (using getters and setters provided by Groovy). I'll explain that further in the sample scripts below. + +Lines 14-16 declare the private fields—the field separator, a flag to indicate whether the first line of a file is a header, and a list for the file name. + +Lines 17-31 define three constructors. The first receives the command line arguments. The second receives the field separator character. The third receives the flag indicating whether the first line is a header or not. + +Lines 31-67 define the engine itself, as the `go()` method. + +Line 33 calls the `onBegin()` closure (equivalent to the awk `BEGIN {}` statement). + +Line 34 initializes the `recordNumber` for the stream (equivalent to the awk `NR` variable) to 0 (note I am doing 0-origin here rather than the awk 1-origin). + +Lines 35-65 use each `{}` to loop over the list of files to be processed. + +Line 36 initializes the `fileRecordNumber` for the file (equivalent to the awk `FNR` variable) to 0 (0-origin, not 1-origin). + +Lines 37-64 get a `Reader` instance for the file and process it. + +Lines 38-39 get a `CSVReader` instance. + +Line 40 checks to see whether the first line is being treated as a header. + +If the first line is being treated as a header, then lines 41-42 get the list of field header names from the first record. + +Lines 43-54 process the rest of the records. + +Lines 44-48 copy the field values into the map of `name:value`. + +Lines 49-51 call the onEachLine`()` closure (equivalent to what appears in an awk program between `BEGIN {}` and `END {}`, though no pattern can be attached to make the execution conditional), passing in the map of `name:value`, the stream record number, the file name and the file record number. + +Lines 52-53 increment the stream record number and file record number. + +Otherwise: + +Lines 56-62 process the records. + +Lines 57-59 call the `onEachLine()` closure, passing in the array of field values, the stream record number, the file name and the file record number. + +Lines 60-61 increment the stream record number and file record number. + +Line 66 calls the `onEnd()` closure (equivalent to the awk `END {}` ). + +That's it for the framework. Now you can compile it: + +``` +$ groovyc AwkEngine.groovy +``` + +A couple of comments: + +If an argument is passed in that is not a file, the code fails with a standard Groovy stack trace, which looks something like this: + +``` +Caught: java.io.FileNotFoundException: not-a-file (No such file or directory) +java.io.FileNotFoundException: not-a-file (No such file or directory) +at AwkEngine$_go_closure1.doCall(AwkEngine.groovy:46) +``` + +OpenCSV tends to return `String[]` values, which are not as convenient as `List` values in Groovy (for example there is no `each {}` defined for an array). Lines 41-42 convert the header field value array into a list, so perhaps `fieldsByNumber` in line 57 should also be converted into a list. + +### Using the framework in scripts + +Here's a very simple script using `AwkEngine` to examine a file like `/etc/group`, which is colon-delimited and has no header: + +``` +1 def ae = new AwkEngine(args, ‘:') +2 int lineCount = 0 + +3 ae.onBegin = { +4    println “in begin” +5 } + +6 ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> +7    if (lineCount < 10) +8       println “fileName $fileName fields $fields” +9       lineCount++ +10 } + +11 ae.onEnd = { +12    println “in end” +13    println “$lineCount line(s) read” +14 } + +15 ae.go() +``` + +Line 1 calls the two-argument constructor, passing in the argument list and the colon as delimiter. + +Line 2 defines a script top-level variable, `lineCount`, used to record the count of lines read (note that Groovy closures don't require variables defined external to the closure to be final). + +Lines 3-5 define the `onBegin()` closure, which just prints the string "in begin" on standard output. + +Lines 6-10 define the `onEachLine()` closure, which prints the file name and the fields for the first 10 lines and in any case increments the line count. + +Lines 11-14 define the `onEnd()` closure, which prints the string "in end" and the count of the number of lines read. + +Line 15 runs the script using the `AwkEngine`. + +Run this script as follows: + +``` +$ groovy Test1Awk.groovy /etc/group +in begin +fileName /etc/group fields [root, x, 0, ] +fileName /etc/group fields [daemon, x, 1, ] +fileName /etc/group fields [bin, x, 2, ] +fileName /etc/group fields [sys, x, 3, ] +fileName /etc/group fields [adm, x, 4, syslog,clh] +fileName /etc/group fields [tty, x, 5, ] +fileName /etc/group fields [disk, x, 6, ] +fileName /etc/group fields [lp, x, 7, ] +fileName /etc/group fields [mail, x, 8, ] +fileName /etc/group fields [news, x, 9, ] +in end +78 line(s) read +$ +``` + +Of course the `.class` files created by compiling the framework class must be on the classpath for this to work. Naturally, you could use `jar` to package up those class files. + +I really like Groovy's support for the delegation of behavior, which requires various shenanigans in other languages. For many years Java required anonymous classes and quite a bit of extra code. Lambdas have gone a long way to fixing this, but they still cannot refer to non-final variables outside their scope. + +Here's another, more interesting script that is very reminiscent of my typical use of awk: + +``` +1 def ae = new AwkEngine(args, ‘;', true) +2 ae.onBegin = { +3    // nothing to do here +4 } + +5 def regionCount = [:] +6    ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> +7    regionCount[fields.REGION] = +8    (regionCount.containsKey(fields.REGION) ? +9    regionCount[fields.REGION] : 0) + +10   (fields.PERSONAS as Integer) +11 } + +12 ae.onEnd = { +13    regionCount.each { region, population -> +14    println “Region $region population $population” +15    } +16 } + +17 ae.go() +``` + +Line 1 calls the three-argument constructor, recognizing that this is a "true CSV" file with the header being on the first line. Because it's a Spanish file, where the comma is used as the decimal "point", the standard delimiter is the semicolon. + +Lines 2-4 define the `onBegin()` closure which in this case doesn't do anything. + +Line 5 defines an (empty) `LinkedHashMap`, which you will fill with String keys and Integer values. The data file is from Chile's most recent census and you are calculating the number of people in each region of Chile in this script. + +Lines 6-11 processes the lines in the file (there are 180,500 including the header)—note that in this case, because you are defining line 1 as the CSV column headers, the fields parameter is going to be an instance of `LinkedHashMap`. + +Lines 7-10 increment the `regionCount` map, using the value in the field REGION as the key and the value in the field PERSONAS as the value—note that, unlike awk, in Groovy you can't refer to a non-existent map entry on the right-hand side and expect a blank or zero value to materialize. + +Lines 12- 16 print out population by region. + +Line 17 runs the script on the `AwkEngine` instance. + +Run this script as follows: + +``` +$ groovy Test2Awk.groovy ~/Downloads/Censo2017/ManzanaEntidad_CSV/Censo*csv +Region 1 population 330558 +Region 2 population 607534 +Region 3 population 286168 +Region 4 population 757586 +Region 5 population 1815902 +Region 6 population 914555 +Region 7 population 1044950 +Region 8 population 1556805 +Region 16 population 480609 +Region 9 population 957224 +Region 10 population 828708 +Region 11 population 103158 +Region 12 population 166533 +Region 13 population 7112808 +Region 14 population 384837 +Region 15 population 226068 +$ +``` + +That's it. For those of you who love awk and yet would like a little more, I hope you enjoy this Groovy approach. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/awk-groovy + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_screen_windows_files.png +[2]: https://opensource.com/article/22/8/music-tagging-framework-groovy +[3]: https://opensource.com/downloads/awk-ebook +[4]: http://regex.info/blog/2006-09-15/247 +[5]: http://opencsv.sourceforge.net/ +[6]: https://groovy.apache.org/download.html +[7]: https://opensource.com/article/22/3/manage-java-versions-sdkman +[8]: https://mvnrepository.com/artifact/com.opencsv/opencsv From 465299f6751e45bbebecd791e38ce63e6b9d38f6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sat, 3 Sep 2022 21:18:08 +0800 Subject: [PATCH 0987/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220903=208=20Exciting=20New=20Features=20in=20the?= =?UTF-8?q?=20Upcoming=20KDE=205.26=20Release.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atures in the Upcoming KDE 5.26 Release.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md b/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md index 9834a6714e..5d6fc31253 100644 --- a/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md +++ b/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md @@ -1,5 +1,5 @@ [#]: subject: "8 Exciting New Features in the Upcoming KDE 5.26 Release" -[#]: via: "https://news.itsfoss.com/kde-plasma-5-26-features/" +[#]: via: "https://news.itsfoss.com/KDE-plasma-5-26-features/" [#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" [#]: collector: "lkxed" [#]: translator: " " @@ -31,13 +31,13 @@ Great work by **Han Young** for [merging these two pages][4]! So, you can easily set default formats, and [set your address, name style, phone numbers][5], and more from these settings. -![kde plasma 5.26][6] +![KDE plasma 5.26][6] Another example includes- if you add a shell script under the **Login Scripts** section in the system settings Autostart window, a warning is displayed if that script is not marked executable. Additionally, it also includes a button to make it executable in a single click. Thanks to **Nicolas Fella** for this [contribution][7]! -![kde plasma 5.26 screenshot][8] +![KDE plasma 5.26 screenshot][8] Not to forget, the "Cover" and "Flip" task switch Effects used a Plasma dialog as the background. @@ -45,7 +45,7 @@ The same UI components used in the overview effects are now applied instead, giv Thanks to **Ismael Asensio** for this [addition][9]! -![kde plasma 5.26 screenshot][10] +![KDE plasma 5.26 screenshot][10] Similarly, more UI betterment include: @@ -62,7 +62,7 @@ A context menu with a range of options will also be displayed, just like the rig Kudos to **Felix Ernst** for this cool [addition][11]! -![kde plasma 5.26 screenshot][12] +![KDE plasma 5.26 screenshot][12] #### 3. New "Compact" Mode for Kickoff @@ -72,7 +72,7 @@ As the name suggests, the contents have been scaled down so that more items are Awesome work by **Nate Graham** for this helpful [addition][13]! -![kde plasma 5.26 screenshot][14] +![KDE plasma 5.26 screenshot][14] #### 4. Non-Blurry XWayland Apps @@ -86,7 +86,7 @@ There's even a help icon added to each of the options that elaborates what the o Kudos to **David Edmundson and Aleix Pol Gonzales** for adding the scaling feature and **Nate Graham**for the [help tooltips][15]! -![kde plasma 5.26 screenshot][16] +![KDE plasma 5.26 screenshot][16] #### 5. Support for More Hardware and Firmware Data @@ -94,7 +94,7 @@ The "**About This System**" page in System Settings has been updated to support Thanks to **James Calligeros** for this [addition][17]! -![kde plasma 5.26 screenshot][18] +![KDE plasma 5.26 screenshot][18] #### 6. Enhancements to Discover @@ -102,7 +102,7 @@ KDE's flagship app store—Discover—has received a couple of helpful additions For instance, Discover will display a message box if the beta version of the software is being viewed on the app page. Moreover, a warning will also be displayed if the beta channel is outdated or older than the stable channel. -![kde plasma 5.26 screenshot][19] +![KDE plasma 5.26 screenshot][19] If the software is an add-on, the “Distributed by” label won't show the project's source unlickable URL anymore, but display "KDE Store" instead. @@ -112,7 +112,7 @@ Great work by **Aleix Pol Gonzalez** for all these amazing additions! #### 7. Re-bindable Mouse buttons -![mouse extra button config kde plasma][20] +![mouse extra button config KDE plasma][20] If you use a mouse that has extra buttons, you can assign those to keystrokes or keyboard shortcuts. @@ -142,7 +142,7 @@ Some extra refinements worth noting include: -------------------------------------------------------------------------------- -via: https://news.itsfoss.com/kde-plasma-5-26-features/ +via: https://news.itsfoss.com/KDE-plasma-5-26-features/ 作者:[Rishabh Moharir][a] 选题:[lkxed][b] @@ -153,21 +153,21 @@ via: https://news.itsfoss.com/kde-plasma-5-26-features/ [a]: https://news.itsfoss.com/author/rishabh/ [b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/09/kde-5-26-release.png -[4]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1147 -[5]: https://bugs.kde.org/show_bug.cgi?id=430801 +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/09/KDE-5-26-release.png +[4]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/1147 +[5]: https://bugs.KDE.org/show_bug.cgi?id=430801 [6]: https://news.itsfoss.com/content/images/2022/08/more-things-to-configure.webp -[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/878 +[7]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/878 [8]: https://news.itsfoss.com/content/images/2022/08/needs-to-be-executable.webp -[9]: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/168 +[9]: https://invent.KDE.org/plasma/KDEplasma-addons/-/merge_requests/168 [10]: https://news.itsfoss.com/content/images/2022/08/switchui.webp -[11]: https://bugs.kde.org/show_bug.cgi?id=427202 +[11]: https://bugs.KDE.org/show_bug.cgi?id=427202 [12]: https://news.itsfoss.com/content/images/2022/08/selection-mode-in-dolphin.jpeg -[13]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/699 +[13]: https://invent.KDE.org/plasma/plasma-desktop/-/merge_requests/699 [14]: https://news.itsfoss.com/content/images/2022/08/compact_mode.png -[15]: https://invent.kde.org/plasma/kscreen/-/merge_requests/108 +[15]: https://invent.KDE.org/plasma/kscreen/-/merge_requests/108 [16]: https://news.itsfoss.com/content/images/2022/08/kscreen-kcm-help-in-a-tooltip.webp -[17]: https://invent.kde.org/plasma/kinfocenter/-/merge_requests/104 +[17]: https://invent.KDE.org/plasma/kinfocenter/-/merge_requests/104 [18]: https://news.itsfoss.com/content/images/2022/08/m1-in-about.webp [19]: https://news.itsfoss.com/content/images/2022/08/bender-old-beta.jpeg -[20]: https://news.itsfoss.com/content/images/2022/09/kde-plasma-5-26-mouse-buttons.png +[20]: https://news.itsfoss.com/content/images/2022/09/KDE-plasma-5-26-mouse-buttons.png \ No newline at end of file From 4b6d9430c7f77a76d3daf1f09981674e73b10596 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 3 Sep 2022 23:40:24 +0800 Subject: [PATCH 0988/3123] RP @geekpi https://linux.cn/article-14997-1.html --- ...a 5.25 in Kubuntu 22.04 Jammy Jellyfish.md | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) rename {translated/tech => published}/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md (62%) diff --git a/translated/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md similarity index 62% rename from translated/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md rename to published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md index f42ad16ce7..a499620d15 100644 --- a/translated/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md +++ b/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md @@ -3,19 +3,22 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14997-1.html" -如何在 Kubuntu 22.04 Jammy Jellyfish 中获取 KDE Plasma 5.25 +如何在 Kubuntu 22.04 中安装 KDE Plasma 5.25 ====== -KDE 开发人员现在启用了流行的反向移植 PPA,并对 KDE Plasma 5.25 进行了必要的更新,你现在可以将其安装在 Kubuntu 22.04 Jammy Jellyfish 中。下面是方法。 -KDE Plasma 5.25 于 2022 年 6 月 14 日几天前发布,其中包含一些惊人的更新。在此版本中,你将获得**动态强调色**、改进的登录头像、**浮动面板**以及我们在[功能亮点文章][1] 中介绍的许多功能。 +![](https://img.linux.net.cn/data/attachment/album/202209/03/233812h11u1b18p8j0u8ct.jpg) -但是,如果你正在运行早在 2022 年 4 月发布的 [Kubuntu 22.04 Jammy Jellyfish][2],那么你将拥有带有 KDE Framework 5.92 的 KDE Plasma 5.24。 +KDE 开发人员现在启用了流行的向后移植 PPA,并对 KDE Plasma 5.25 进行了必要的更新,你现在可以将其安装在 Kubuntu 22.04 Jammy Jellyfish 中。下面是方法。 -你可能正在等待享受稳定的 Kubuntu 22.04 版本中的新功能,现在可以通过著名的反向移植 PPA 在 Kubuntu 22.04 中安装它。 +KDE Plasma 5.25 于不久前的 2022 年 6 月 14 日发布,其中包含一些令人振奋的更新。在此版本中,你将获得**动态强调色**、改进的登录头像、**浮动面板**以及我们在 [功能亮点文章][1] 中介绍的许多功能。 + +但是,如果你正在运行早在 2022 年 4 月发布的 [Kubuntu 22.04 Jammy Jellyfish][2],那么你使用的是带有 KDE Framework 5.92 的 KDE Plasma 5.24。 + +你可能正在稳定的 Kubuntu 22.04 版本中等待享受新功能,现在可以通过著名的向后移植 PPA 在 Kubuntu 22.04 中安装它。 ### 如何在 Kubuntu 22.04 中安装 KDE Plasma 5.25 @@ -23,13 +26,13 @@ KDE Plasma 5.25 于 2022 年 6 月 14 日几天前发布,其中包含一些惊 #### GUI 方式 -如果你对 KDE 的软件应用 Discover 感到满意,请打开该应用。然后进入 Settings > Sources 并添加 PPA `ppa:kubuntu-ppa/backports-extra`。然后单击更新。 +如果你惯于使用 KDE 的软件应用 “发现Discover”,请打开该应用。然后进入 “设置Settings” > “软件源Sources” 并添加 PPA:`ppa:kubuntu-ppa/backports-extra`。然后单击“更新Updates”。 #### 终端方法(推荐) 我建议你打开一个终端并进行此升级以更快地执行和安装。 -* 打开 Konsole 并运行以下命令以添加[反向移植 PPA][3]。 +打开 Konsole 并运行以下命令以添加 [向后移植 PPA][3]。 ``` sudo add-apt-repository ppa:kubuntu-ppa/backports-extra @@ -37,7 +40,7 @@ sudo add-apt-repository ppa:kubuntu-ppa/backports-extra ![Upgrade Kubuntu 22.04 with KDE Plasma 5.25][4] -* 现在,通过运行以下命令刷新包列表。然后验证 5.25 包是否可用。 +现在,通过运行以下命令刷新包列表。然后验证 5.25 包是否可用。 ``` sudo apt update @@ -63,9 +66,9 @@ sudo apt full-upgrade ![KDE Plasma 5.25 in Kubuntu 22.04 LTS][6] -### 其他反向移植 PPA +### 其他向后移植 PPA -请注意,[其他反向移植 PPA][7] `ppa:kubuntu-ppa/backports` 目前有 Plasma 5.24。因此,请勿使用与上面不同的 PPA。我不确定这个 PPA 是否会得到这个更新。 +请注意,[另外的向后移植 PPA][7] `ppa:kubuntu-ppa/backports` 目前提供的是 Plasma 5.24。因此,请勿使用与上面不同的 PPA。我不确定这个 PPA 是否会得到更新。 ``` sudo add-apt-repository ppa:kubuntu-ppa/backports // 不要使用这个 @@ -73,9 +76,9 @@ sudo add-apt-repository ppa:kubuntu-ppa/backports // 不要使用这个 ### 如何卸载 -在任何时候,如果你想回到 KDE Plasma 桌面的原始版本,那么你可以安装 ppa-purge 并删除 PPA,然后刷新包。 +在任何时候,如果你想回到 KDE Plasma 桌面的原始版本,那么你可以安装 `ppa-purge` 并删除该 PPA,然后刷新包。 -打开终端,依次执行以下命令。 +打开终端,依次执行以下命令: ``` sudo apt install ppa-purge @@ -100,7 +103,7 @@ via: https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/ 作者:[Arindam][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/) 荣誉推出 From b131dadc413f19fc657dca6521c9727bc437d5c8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 3 Sep 2022 23:43:28 +0800 Subject: [PATCH 0989/3123] R --- ...w to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md index a499620d15..df94a21a26 100644 --- a/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md +++ b/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md @@ -92,7 +92,7 @@ sudo apt update 这就是全部了。一个漂亮而简单的步骤,将 Jammy Jellyfish 中的 KDE Plasma 升级到 Plasma 5.25。我希望你升级顺利。 -如果您遇到任何错误,请在评论栏告诉我。 +如果你遇到任何错误,请在评论栏告诉我。 干杯。 From 53c05e322f409fb552acc5d996ccf455b48e7a96 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 4 Sep 2022 11:59:16 +0800 Subject: [PATCH 0990/3123] ALL @wxy https://linux.cn/article-14998-1.html --- ...atures in the Upcoming KDE 5.26 Release.md | 176 ++++++++++++++++++ ...atures in the Upcoming KDE 5.26 Release.md | 173 ----------------- 2 files changed, 176 insertions(+), 173 deletions(-) create mode 100644 published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md delete mode 100644 sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md diff --git a/published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md b/published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md new file mode 100644 index 0000000000..377b270524 --- /dev/null +++ b/published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md @@ -0,0 +1,176 @@ +[#]: subject: "8 Exciting New Features in the Upcoming KDE 5.26 Release" +[#]: via: "https://news.itsfoss.com/KDE-plasma-5-26-features/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14998-1.html" + +即将发布的 KDE 5.26 版本中的 8 个令人感兴趣的新功能 +====== + +> KDE Plasma 5.26 是一个令人兴奋的即将发布的更新版本,添加了大量有用的功能。 + +![](https://img.linux.net.cn/data/attachment/album/202209/04/115636wku1fkkl5zf5f5le.jpg) + +在过去的五个月里,流行的桌面环境 KDE Plasma 做了一些重大的更新和大量的修复。 + +上一个版本 Plasma 5.25 已经有了许多新的功能和改进,特别是对用户界面和体验的改进,而下一个版本听起来更令人兴奋。 + +### KDE Plasma 5.26 有什么新功能? + +让我们来抢先了解一下 KDE Plasma 5.26 的一些新功能。 + +> KDE Plasma 5.26 计划于 2022 年 10 月 6 日发布。 + +#### 1、用户界面的改进 + +如同上一个版本,Plasma 5.26 也对用户界面的互动方式做了许多改进。你会发现一些细微的变化,以及对在 KDE Plasma 5.26 上互动/搜索东西做了调整,**给用户更多信息**。 + +例如,格式Format语言 Language 的设置页面现在已经合并了,可以给你一个更干净的外观,并摆脱了一些与之相关的常见错误。 + +Han Young 为 [这两个页面的合并][4] 做了大量工作。 + +因此,你可以很容易地设置默认格式,以及对 [你的地址、姓名风格、电话号码][5] 等进行设置。 + +![KDE Plasma 5.26][6] + +另一个例子包括,如果你在系统设置的 “自动启动Autostart” 窗口的 “登录脚本Login Scripts” 部分添加一个 Shell 脚本,而该脚本没有被标记为可执行,就会显示一个警告。此外,它还包括一个按钮,单击即可设置为可执行。 + +感谢 Nicolas Fella 的这个 [贡献][7] + +![][8] + +以及,任务切换效果 “覆盖Cover” 和“翻转Flip>” 使用了 Plasma 对话框作为背景。 + +在概览效果中使用的同样的 UI 组件现在也替代应用了,给人一种更一致的外观。这也包括统一的背景和模糊的效果。 + +感谢 Ismael Asensio 的这一 [补充][9] + +![][10] + +更多的 UI 改进包括: + +* 打磨 KDE 应用程序以获得更干净的用户体验。 +* 调整系统设置,使其看起来更干净。 +* 对配置文件夹与 Samba 共享进行了改进。 +* 完善 Dolphin 文件管理器的用户界面。 + +#### 2、Dolphin 的新选择模式 + +尤其是那些使用触摸屏的用户,现在可以通过在文件夹或文件上执行长按来轻松选择或取消选择项目,就像在智能手机上一样。如果你使用的是鼠标和键盘,按空格键将进入或退出这个可选模式。 + +此外,也将显示带有一系列选项的上下文菜单,就像右键菜单一样。 + +感谢 Felix Ernst 的这个很酷的 [新增功能][11]。 + +![][12] + +#### 3、“开始”的新紧凑模式 + +Plasma 的本地应用程序启动器“开始Kickoff”,现在支持一种新的模式,叫做“紧凑Compact”视图。 + +顾名思义,内容被缩小了,以便更多的项目可以被看到。请注意,这个设置对使用触摸模式的用户来说并不理想,因此被禁用。 + +这个有用的 [新增功能][13] 来自于 Nate Graham 的出色工作。 + +![][14] + +#### 4、不再模糊的 XWayland 应用程序 + +使用 HiDPI 屏幕的 Wayland 用户面临着许多与应用程序的缩放有关的问题。为了解决这个问题,用户可以为他们的 XWayland 应用程序选择两种缩放方式。 + +一种方法是允许使用合成器进行统一缩放,这可能会导致轻微的模糊。 + +另一种是允许应用程序自己缩放。请注意,支持预置的 X11 HiDPI 的应用程序只能通过这种设置进行改善。 + +甚至在每个选项上都添加了一个帮助图标,详细说明了该选项的作用,因此用户可以得到更清晰的理解。 + +感谢 David Edmundson 和 Aleix Pol Gonzales 添加的缩放功能和 Nate Graham 的 [帮助工具提示][15]。 + +![][16] + +#### 5、支持更多的硬件和固件数据 + +系统设置中的 “关于本系统About This System”页面已经更新,以支持更新的硬件和固件。苹果 Mac/Macbook 用户会很高兴地知道,对苹果 M1 的支持也包括在内。 + +感谢 James Calligeros 提供的这一 [补充][17]。 + +![][18] + +#### 6、对“发现”的增强 + +KDE 的旗舰应用商店 发现Discover 已经得到了一些有用的补充,应该可以帮助用户在选择软件时避免混淆。 + +例如,如果正在应用页面上浏览的是测试版,“发现” 将显示一个信息框。此外,如果测试版频道已经过时或比稳定版频道更老,也会显示一个警告。 + +![][19] + +如果该软件是一个插件,“来自Distributed by”标签将不再显示项目的源码不可点击的 URL,而是显示“KDE 商店”。 + +此外,用户终于可以为任何软件更新设置相应的通知频率了。 + +这些增强来自于 Aleix Pol Gonzalez 的出色工作。 + +#### 7、可重新绑定的鼠标按钮 + +![鼠标附加按钮配置][20] + +如果你使用的鼠标有附加按钮,你可以把这些按钮分配给按键或键盘快捷键。 + +这是由 David Rdondo 实现的,这是 KDE Plasma 5.26 的一个相当好的功能。 + +#### 8、从文件搜索启动可执行文件 + +在 KDE Plasma 5.26 中,当你试图打开一个通过文件搜索找到的可执行文件时,你会得到一个提示: + +你可以选择执行该文件或打开它。我认为这是一个相当有用的补充。 + +#### 🛠️ 其他功能和改进措施 + +除了上面列出的关键亮点外,还有大量的其他新增功能和错误修复。 + +一些值得注意的更多改进包括: + +* 能够在主日历下同时设置和跟踪两个不同的日历。 +* Elisa 播放器有了全屏模式。 +* 可调整的面板小部件弹窗。 +* 无需应用,一键预览桌面壁纸。 +* 壁纸根据使用的浅色或深色方案自动调整图像。 +* 可以禁用 Wayland 会话的鼠标中键点击粘贴。 +* 使用 “备用Alternate” 面板在小部件之间切换时,会保存旧小部件的设置。 + +💬 *你对 KDE Plasma 5.26 的变化感到兴奋吗?请在下面的评论中分享你的想法。* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/KDE-plasma-5-26-features/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/09/kde-5-26-release.png +[4]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/1147 +[5]: https://bugs.KDE.org/show_bug.cgi?id=430801 +[6]: https://news.itsfoss.com/content/images/2022/08/more-things-to-configure.webp +[7]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/878 +[8]: https://news.itsfoss.com/content/images/2022/08/needs-to-be-executable.webp +[9]: https://invent.KDE.org/plasma/KDEplasma-addons/-/merge_requests/168 +[10]: https://news.itsfoss.com/content/images/2022/08/switchui.webp +[11]: https://bugs.KDE.org/show_bug.cgi?id=427202 +[12]: https://news.itsfoss.com/content/images/2022/08/selection-mode-in-dolphin.jpeg +[13]: https://invent.KDE.org/plasma/plasma-desktop/-/merge_requests/699 +[14]: https://news.itsfoss.com/content/images/2022/08/compact_mode.png +[15]: https://invent.KDE.org/plasma/kscreen/-/merge_requests/108 +[16]: https://news.itsfoss.com/content/images/2022/08/kscreen-kcm-help-in-a-tooltip.webp +[17]: https://invent.KDE.org/plasma/kinfocenter/-/merge_requests/104 +[18]: https://news.itsfoss.com/content/images/2022/08/m1-in-about.webp +[19]: https://news.itsfoss.com/content/images/2022/08/bender-old-beta.jpeg +[20]: https://news.itsfoss.com/content/images/2022/09/kde-plasma-5-26-mouse-buttons.png \ No newline at end of file diff --git a/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md b/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md deleted file mode 100644 index 5d6fc31253..0000000000 --- a/sources/news/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md +++ /dev/null @@ -1,173 +0,0 @@ -[#]: subject: "8 Exciting New Features in the Upcoming KDE 5.26 Release" -[#]: via: "https://news.itsfoss.com/KDE-plasma-5-26-features/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -8 Exciting New Features in the Upcoming KDE 5.26 Release -====== -KDE Plasma 5.26 is an exciting upcoming update with plenty of useful feature additions. Let's check it out. - -![8 Exciting New Features in the Upcoming KDE 5.26 Release][1] - -KDE Plasma, the popular desktop environment, has been receiving some major updates and tons of fixes over the last five months. - -The previous release—Plasma 5.25—saw many new features and improvements, especially to the user interface and experience, and the next release sounds even more exciting. - -### KDE Plasma 5.26: What's New? - -Let's take a sneak peek at some new features coming to KDE Plasma 5.26. - -#### 1. User Interface Improvements - -Just like the last release, Plasma 5.26 brings in numerous refinements and how you interact with the UI. You will find subtle changes, and tweaks to **give more information to the users** while interacting/searching for things on KDE Plasma 5.26. - -For instance, the Settings pages for “Format” and “Language” pages have now been merged to give you a cleaner look and get rid of some usual bugs associated with it. - -Great work by **Han Young** for [merging these two pages][4]! - -So, you can easily set default formats, and [set your address, name style, phone numbers][5], and more from these settings. - -![KDE plasma 5.26][6] - -Another example includes- if you add a shell script under the **Login Scripts** section in the system settings Autostart window, a warning is displayed if that script is not marked executable. Additionally, it also includes a button to make it executable in a single click. - -Thanks to **Nicolas Fella** for this [contribution][7]! - -![KDE plasma 5.26 screenshot][8] - -Not to forget, the "Cover" and "Flip" task switch Effects used a Plasma dialog as the background. - -The same UI components used in the overview effects are now applied instead, giving a more consistent look. This includes a uniform background and blurring effect too. - -Thanks to **Ismael Asensio** for this [addition][9]! - -![KDE plasma 5.26 screenshot][10] - -Similarly, more UI betterment include: - -* Polishing KDE apps for a cleaner UX. -* Adjustments to the system settings for a cleaner look. -* Improvements to configure a folder for sharing with Samba. -* Refinements to the Dolphin file manager UI. - -#### 2. Dolphin's New Selection Mode - -Users, especially those using a touchscreen, can easily select or deselect items by performing a long press on a folder or file, just like on a smartphone. If you're using a mouse and keyboard, pressing the space bar will enter or exit this optional mode. - -A context menu with a range of options will also be displayed, just like the right-click menu. - -Kudos to **Felix Ernst** for this cool [addition][11]! - -![KDE plasma 5.26 screenshot][12] - -#### 3. New "Compact" Mode for Kickoff - -Kickoff, Plasma's native application launcher, now supports a new mode called Compact view. - -As the name suggests, the contents have been scaled down so that more items are visible. Do note that this setting is not ideal for users using Touch Mode and is thus disabled. - -Awesome work by **Nate Graham** for this helpful [addition][13]! - -![KDE plasma 5.26 screenshot][14] - -#### 4. Non-Blurry XWayland Apps - -Wayland users with HiDPI screens face many issues related to the scaling of apps. To counter this, users have two options to choose how their XWayland apps would be scaled. - -One way is to allow uniform scaling using the compositor, which may lead to slight blurriness. - -The other one is to allow the apps to scale themselves. Do note that apps that support pre-existing X11 HiDPI will only benefit from this setting. - -There's even a help icon added to each of the options that elaborates what the option does, so users get a clearer idea. - -Kudos to **David Edmundson and Aleix Pol Gonzales** for adding the scaling feature and **Nate Graham**for the [help tooltips][15]! - -![KDE plasma 5.26 screenshot][16] - -#### 5. Support for More Hardware and Firmware Data - -The "**About This System**" page in System Settings has been updated to support newer hardware and firmware. Apple Mac/Macbook users will be pleased to know that support for the Apple M1 is also included. - -Thanks to **James Calligeros** for this [addition][17]! - -![KDE plasma 5.26 screenshot][18] - -#### 6. Enhancements to Discover - -KDE's flagship app store—Discover—has received a couple of helpful additions that should help users avoid confusion when choosing software. - -For instance, Discover will display a message box if the beta version of the software is being viewed on the app page. Moreover, a warning will also be displayed if the beta channel is outdated or older than the stable channel. - -![KDE plasma 5.26 screenshot][19] - -If the software is an add-on, the “Distributed by” label won't show the project's source unlickable URL anymore, but display "KDE Store" instead. - -Moreover, users can finally set the notification frequencies accordingly for any software updates. - -Great work by **Aleix Pol Gonzalez** for all these amazing additions! - -#### 7. Re-bindable Mouse buttons - -![mouse extra button config KDE plasma][20] - -If you use a mouse that has extra buttons, you can assign those to keystrokes or keyboard shortcuts. - -This was made possible by **David Rdondo**, a pretty good feature with KDE Plasma 5.26! - -#### 8. Launch Executable files from File searches - -With KDE Plasma 5.26, you get a prompt when you try to open an executable that find through file searches. - -You can either execute the file or open it. I think this is a pretty useful addition. - -#### 🛠️ Other Features and Improvements - -Apart from the key highlights listed above, there are tons of other additions and plenty of bug fixes. - -Some extra refinements worth noting include: - -* Ability to set and track two different calendars simultaneously under the main calendars. -* Elisa player has a full-screen mode. -* Resizable panel widget pop-ups. -* Preview desktop wallpapers with a single click without applying. -* Wallpapers automatically adjust the image according to the active light or dark color scheme. -* Option to disable middle-click paste for Wayland session. -* Switching between widgets using the “Alternate” panel saves the settings of the older widget. - -💬 *Are you excited about the changes coming to KDE Plasma 5.26? Share your thoughts in the comments down below.* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/KDE-plasma-5-26-features/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/09/KDE-5-26-release.png -[4]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/1147 -[5]: https://bugs.KDE.org/show_bug.cgi?id=430801 -[6]: https://news.itsfoss.com/content/images/2022/08/more-things-to-configure.webp -[7]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/878 -[8]: https://news.itsfoss.com/content/images/2022/08/needs-to-be-executable.webp -[9]: https://invent.KDE.org/plasma/KDEplasma-addons/-/merge_requests/168 -[10]: https://news.itsfoss.com/content/images/2022/08/switchui.webp -[11]: https://bugs.KDE.org/show_bug.cgi?id=427202 -[12]: https://news.itsfoss.com/content/images/2022/08/selection-mode-in-dolphin.jpeg -[13]: https://invent.KDE.org/plasma/plasma-desktop/-/merge_requests/699 -[14]: https://news.itsfoss.com/content/images/2022/08/compact_mode.png -[15]: https://invent.KDE.org/plasma/kscreen/-/merge_requests/108 -[16]: https://news.itsfoss.com/content/images/2022/08/kscreen-kcm-help-in-a-tooltip.webp -[17]: https://invent.KDE.org/plasma/kinfocenter/-/merge_requests/104 -[18]: https://news.itsfoss.com/content/images/2022/08/m1-in-about.webp -[19]: https://news.itsfoss.com/content/images/2022/08/bender-old-beta.jpeg -[20]: https://news.itsfoss.com/content/images/2022/09/KDE-plasma-5-26-mouse-buttons.png \ No newline at end of file From 694398d01b33da7cc915e8b98828698a990be1ca Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 4 Sep 2022 17:28:05 +0800 Subject: [PATCH 0991/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220904=20Opinion-=20Car=20Design=20Was=20Better=20?= =?UTF-8?q?Before=20Computers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Car Design Was Better Before Computers.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md diff --git a/sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md b/sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md new file mode 100644 index 0000000000..3799ab395f --- /dev/null +++ b/sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md @@ -0,0 +1,110 @@ +[#]: subject: "Opinion: Car Design Was Better Before Computers" +[#]: via: "https://news.itsfoss.com/car-design-was-better-before-computers/" +[#]: author: "Community https://news.itsfoss.com/author/team/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Opinion: Car Design Was Better Before Computers +====== +The ethical hellscape of today's automobile industry, and why cars were better designed before the widespread use of computers. + +![Opinion: Car Design Was Better Before Computers][1] + +[Karla Alexander][2] on [Unsplash][3] + +The ethical car designers will quickly discover that corruption in the car industry goes way beyond manufacturers' faked emission-tests; their mass-participation in war crimes; and the children they force to work in the cobalt, mica, and lithium mines. In fact, the corruption in *Car Land* begins the moment you switch on a computer and load your CAD software. + +![Solvespace: An ethical, free, opensource parametric modeling tool][4] + +All modern computer processors are backdoored-by-design, and so airgapping all production machines is the only rational solution. Intel's  'Management Engine' and AMD's 'Platform Security Processor' openly snoop on everything you do on your computer, reporting this data back to whoever has keys to the CPU backdoors. + +The larger automobile conglomerates are inextricable from the state. National Socialism was essentially corporatism. Therefore, the problem can be stated simply: If you plan to design and engineer products, then it is foundational to ensure that your competitors cannot steal your designs. + +If you are working in the car industry, then your  competitors are state-level combatants. In other words: Governments. + +It is no accident that notorious car-manufacturers are able to fake their emissions-tests and build unchecked monopolies: These car companies 'own' vast swathes of the political apparatus. This gives these conglomerates access to surveillance systems; the Intel and AMD backdoors; and (you guessed it) access to your computer. + +Remember, many of these car companies are currently child-slavers; several literally have Nazi-origins. These companies ran concentration-camps and, in the years since, have lied about poisoning our shared air-supply; multiple times, in multiple countries. This 'Automobile Establishment' will have no qualms about reading stolen information from your computer screen, assisted by the government(s) they think they own. + +Airgapping all engineering-computers should be routine if you are working in the independent automotive-design field. To 'airgap' a computer means to remove any wifi, ethernet or bluetooth equipment from the system and to ensure the computer is completely disconnected from the internet or other exploitable network-connection. + +By airgapping a system, you ensure that (although the CPU is backdoored) the computer can no longer spy on you because it cannot report its spying to anyone. The CPU will continue to monitor your work, but it will be trapped; unable to transfer this information out to the Automobile Establishment and their cronies in government(s). + +Here, we should touch briefly on the issue of the ethics of CAD (Computer Aided Design) computers themselves. Almost every modern computer is manufactured in a Communist dictatorship, often by children. This is, after all, the reason companies manufacture in these regions: It is cheap to manufacture in the 'Slave Zones' because there are few human rights, and children are often used as labor. + +Ethical options do exist, but they take some hunting down. For example, Raspberry Pi manufactures their computer boards in the UK. Although you might consider this an underpowered computer, it is perfectly sufficient for running software like the excellent [Solvespace][5] (for parametric modeling) or [Blender][6] (for visualization work). + +Remember that most of the greatest cars ever designed came from an era before desktop computers. You should consider eliminating computers as much as possible from your engineering workflow. They tend to destroy creativity and generate lazy, derivative designs. The engineers who worked on the *Corvette Stingray*, for example, went nowhere near a computer. + +![Corvette Stingray][7] + +If you absolutely must use a 3D workstation for your automotive design, then the closest thing to an ethical PC are those made by Fujitsu, which are manufactured in Germany and Japan. Similarly, Eizo make their screens in Japan. This information is not given lightly: It took us many months to figure out that Raspberry Pi, Fujistu, and Eizo are the ethical options. Most country-of-manufacture information is hidden. Most major search engines are 'gamed' to stop the consumer from avoiding the profitable 'Slave Zone' manufacturers. + +The elephant in the room of the computer industry is this: That most of our computers are made by slaves, and profit the slave-masters. + +Even a Fujitsu PC contains many China-sourced parts. The balance, however, shifts towards ethical manufacture. + +A second-hand Fujitsu and Eizo screen is perhaps the only option for CAD designers who don't want to fund slavery; but let us know if you discover other options. + +Finally, there is the question of software. Given the association between the former-head of one major operating system manufacturer and Jeffrey Epstein, nobody with any sense of morality can use his product. The other major operating system (and computer) manufacturer is a major child-slaver, so again, we can rule them out. + +The solution here is obvious: Linux. + +If you haven't tried Linux in a few years, you will be surprised by how it has made strides past everything else. Now there is even a project in the works to connect *Blender* to *Solvespace*. The project is called [CAD Sketcher][8], and it drives parametric modeling on free, open-source software to dizzy new heights. + +![CAD Sketcher: This software allows you to use Blender as a parametric modeler.][9] + +Most impressive of all, however, is the work of a developer called RealThunder. This hotshot-coder is firing on all turbines and has produced [a fork of FreeCAD that outshines the original][10]. RealThunder's fork includes a topological naming feature and other slick hacks. + +![][11] + +In RealThunder's own words, "I am an extremely efficient coder. In fact, my coding pace is probably too fast for FreeCAD upstream." + +That's fighting talk. Things are getting very interesting here in the frontier towns of Liberated CAD. + +Given that open-source has overtaken the industry: What now for the legacy, closed-source CAD tools that the automobile industry has come to rely on? Look around you on the streets. Do these cars look good? In my opinion, they are irredeemably horrible and the tools that created them should be burned at the digital stake. + +Form does not merely follow function; it also follows the tools we use to create the things we build. + +Today's collapsing automobile-industry is a decrepit monster. Whatever tools were used to build this industry, and the cars it produced, were not fit for purpose. It's time for something new. + +![][12] + +Chris Stevens collaborated with Steve Jobs to bring [an interactive version of Alice in Wonderland][13] back into the popular consciousness. Stevens' work on *Alice* was promoted by Steve Jobs through global television advertising campaigns and together they shipped millions of copies of the software. Chris Stevens' work is also acclaimed by [Fast Company][14] and [The Atlantic][15] among others. After some serious self-reflection, Stevens sold his software company, *Atomic Antelope*, to *Oceanhouse Media*, in California, for an undisclosed sum. Stevens then left the world of closed-source forever. He is now an automotive engineer working on open-source automobiles. Stevens is a cheerleader for the open-source revolution. "If it's not open-source; then it's sauce," is Stevens' enduring motto. + +**The views and opinions expressed in this article are those of the authors and do not necessarily represent opinions It's FOSS.** + +The article originally appeared at [Volcano][16]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/car-design-was-better-before-computers/ + +作者:[Community][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/team/ +[b]: https://github.com/lkxed +[1]: https://images.unsplash.com/photo-1484687742385-1249620c2687?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE2fHx2aW50YWdlJTIwY2FyfGVufDB8fHx8MTY2MjE3NTc0NA&ixlib=rb-1.2.1&q=80&w=1200 +[2]: https://unsplash.com/@kmvrlv?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit +[3]: https://unsplash.com/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit +[4]: https://news.itsfoss.com/content/images/2022/08/solvespace.jpg +[5]: https://solvespace.com/index.pl +[6]: https://www.blender.org/ +[7]: https://news.itsfoss.com/content/images/2022/08/corvette-68.jpg +[8]: https://www.cadsketcher.com/ +[9]: https://news.itsfoss.com/content/images/2022/08/CAD-Sketcher-Blender.jpg +[10]: https://www.patreon.com/thundereal +[11]: https://news.itsfoss.com/content/media/2022/09/drawstyle.webm +[12]: https://news.itsfoss.com/content/images/2022/09/chris-stevens-photo-1.jpeg +[13]: https://www.youtube.com/watch?v=gew68Qj5kxw +[14]: https://www.fastcompany.com/1694027/alice-ipad-co-creator-chris-stevens-risk-and-rabbit-holes +[15]: https://www.theatlantic.com/entertainment/archive/2011/03/the-most-technologically-advanced-book-for-the-ipad/72610/ +[16]: https://vo.lc/ano/ From 498dcf8a7386bb4d8a73717fa603e13b30ac996d Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 4 Sep 2022 17:29:07 +0800 Subject: [PATCH 0992/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220904=20Create=20Bootable=20USB=20Using=20Etcher?= =?UTF-8?q?=20in=20Linux=20=E2=80=93=20Download=20and=20Usage=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...her in Linux – Download and Usage Guide.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md diff --git a/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md b/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md new file mode 100644 index 0000000000..aaa9c291eb --- /dev/null +++ b/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md @@ -0,0 +1,131 @@ +[#]: subject: "Create Bootable USB Using Etcher in Linux – Download and Usage Guide" +[#]: via: "https://www.debugpoint.com/etcher-bootable-usb-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create Bootable USB Using Etcher in Linux – Download and Usage Guide +====== +A quick and easy tutorial on how to create a bootable USB using the Etcher tool in Ubuntu and other Linux. + +[Etcher][1] is a utility created by [Balena][2], that makes your life easy with its unique take on creating bootable USB and SD cards with a .iso file. In this guide, I will show you the steps to download and install Etcher. + +Although it is a bit trivial for some, it may be difficult for others. Hence this guide. + +Primarily Etcher is used for flashing or writing the Linux OS .iso images, for example, Ubuntu, [Linux Mint][3] .iso images, etc. But ideally, it should work for any other .iso files as well. + +There are other utilities available as well to create bootable USB disks in particular, like earlier I wrote about a [guide][4] using Unetbootin. + +But that said, Etcher is, in my opinion, **faster, cleaner, and better**. It seldom fails. The success rate is high. + +Before I explain the steps, a quick recap of its features. + +### Etcher Features + +* Crisp 3-step process to create a bootable USB drive +* Autodetect the USB +* Select the file, Select target, and write fast +* Clone a drive +* Choose the local downloaded .iso file Or directly from the URL +* Clean and eye-friendly UI +* Cross-platform – Linux, Windows, and macOS +* Built-in JS, electron +* Standalone AppImage executable available for Linux + +### Installing Etcher + +Etcher is available for all platforms. So you can easily install it using the following methods in all Linux distributions, macOS, and Windows. + +Firstly, go to the below link. + +[Download ETCHER][5] + +#### For All Linux distributions + +Download the AppImage executable from the above link. Then change the permission to the *executable* from ‘`right click -> properties` ’. Then run the file. + +For distribution-specific packages, refer below. + +#### Debian, Ubuntu + +To install Etecher in Debian, Ubuntu, Linux Mint, and related distributions, follow the below commands from the terminal. + +``` +echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list.d/balena-etcher.listsudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys 379CE192D401AB61sudo apt-get updatesudo apt-get install balena-etcher-electron +``` + +#### Fedora + +For Fedora, follow the below commands from the terminal. + +``` +sudo wget https://balena.io/etcher/static/etcher-rpm.repo -O /etc/yum.repos.d/etcher-rpm.reposudo dnf install -y balena-etcher-electron +``` + +#### Arch Linux + +For Arch Linux, make sure yay is installed. Then you can run the below command to install. + +``` +yay -S balena-etcher +``` + +### Create bootable USB Using Etcher + +Once you have installed it successfully. Launch the application. The first window shows 3 steps which you need to follow. Of course, you need a USB stick and the .iso file to write. + +##### Step 1: Select the file + +Plugin your target USB or SD card. Browse and select the location of your .iso file. Or, you can pull it directly from the internet as well via the URL option. + +![Step 1 - Select the file][6] + +##### Step 2: Select the target device + +Click on select target and carefully choose your USB or SD card. Etcher is friendly enough to notify you which one of the devices is your system device so that you don’t end up destroying data. + +Choose by clicking the check box. And click select. + +![Step 2 - Select Target device][7] + +##### Step3: Click flash to start creating the bootable USB or SD card. + +![Step 3 - Start the process][8] + +Wait until the process finishes. + +![Process is complete][9] + +And that’s it. You can safely remove the USB or SD card for your use. + +### Closing Note + +While there are many ways to create a bootable USB, such as you can use Unetbootin, MKUSB, or even using Ubuntu’s default Disk utility, Etcher makes it easier to do it. The UI design, only 3 steps process, makes it ideal for new users and source advanced users who want reliability. + +Because a bootable USB is a critical asset and you should use an excellent program to prepare it. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/etcher-bootable-usb-linux/ + +作者:[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.balena.io/etcher/ +[2]: https://www.balena.io/ +[3]: https://www.debugpoint.com/linux-mint/ +[4]: https://www.debugpoint.com/2015/05/how-to-create-a-bootable-usb-drive-in-ubuntu/ +[5]: https://github.com/balena-io/etcher/releases +[6]: https://www.debugpoint.com/wp-content/uploads/2021/01/Step1-Select-the-file.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/01/Step-2-Select-Target-device.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/Step-3-Start-the-process.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/Process-is-complete.jpg From a279c9fc94ef4aee3dd84c9e6b2b4a50022baba6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 4 Sep 2022 17:30:16 +0800 Subject: [PATCH 0993/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220904=20How=20to=20Enable=20Dark=20Mode=20in=20We?= =?UTF-8?q?b=20Browser.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to Enable Dark Mode in Web Browser.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/tech/20220904 How to Enable Dark Mode in Web Browser.md diff --git a/sources/tech/20220904 How to Enable Dark Mode in Web Browser.md b/sources/tech/20220904 How to Enable Dark Mode in Web Browser.md new file mode 100644 index 0000000000..49c5dc8884 --- /dev/null +++ b/sources/tech/20220904 How to Enable Dark Mode in Web Browser.md @@ -0,0 +1,94 @@ +[#]: subject: "How to Enable Dark Mode in Web Browser" +[#]: via: "https://www.debugpoint.com/dark-mode-browser/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Enable Dark Mode in Web Browser +====== +This guide is about helping you on how to enable dark mode in the popular web browser(s) such as Firefox, Google Chrome, Chromium and Microsoft Edge. + +We all love dark mode. Many people prefer it over standard light mode. While many desktop applications provide the dark mode natively, some apps adapt to dark mode via the desktop environment’s underlying modes. + +You can not deny that we all spend hours on web browsers. We seldom use desktop apps (unless you are specific to work, such as video editing, etc.). So, when you spend many hours reading and studying in a browser, you can always opt for dark mode. But, coming to the web browser, things are a little different. + +This guide gives you the simple steps which you can follow to enable dark mode in Mozilla Firefox, Chromium, Google Chrome and Edge browsers. + +### Enable Dark Mode in Web Browser + +#### Enable Dark Mode in Firefox + +* Open Firefox and click on the little hamburger menu at the right-top. +* Click `Settings > Extension and Themes`. +* Select the `Dark Theme` and click `enable`. And you should see the dark mode is applied to Firefox. + +![Enable dark mode in Firefox][1] + +![Firefox in Dark Mode][2] + +* To revert it back, follow the same steps and select Light Theme. + +#### Dark Mode in Chromium and Google Chrome + +Chromium or Google Chrome doesn’t pre-install any dark theme by default. Hence, you need to go to Chrome Web Store and download any dark theme you want. For this guide I would recommend “Morpheon Dark” theme, which over a million users use. + +Open the Morpheon Dark theme page (below link) from the Chromium web browser. + +[Morpheon Dark Theme in Chrome Web Store][3] + +Click on Add To Chrome button. And it should be enabled in Chrome. + +You may want to explore other Black and White or dark themes available in Chrome Web Store. [Visit this page for all collections of dark themes.][4] + +However, one thing you should remember is that – this theme would not change the settings or context menu. Which is obvious. Because it just changes the browser window, and those menus are part of the operating system itself (sometimes). + +![Chromium Dark Theme][5] + +Follow the same steps for the Google Chrome browser as well. + +#### Edge Browser – Dark Mode + +[Microsoft Edge browser][6], however, comes with a better dark theme by default. It allows you to use GTK+, Light and Dark mode from settings. + +* Open Edge Browser +* Click on the three little dots on the right-top side. +* Go to Appearance and choose Dark. And you should be all set. + +This dark theme implementation of Edge is better because it changes the context menu and the address bar. + +![Edge in Dark Theme][7] + +### Closing Notes + +If you are an advanced user, you probably do not need this guide. You can figure it out. + +But we cover all the basic to advanced tutorials for all our readers. Many new Linux users may not know how to enable dark mode in the browser as well. + +So, that said, I hope this helps you and others. Let me know in the comment box below if you face any trouble. + +[Next: Create Bootable USB Using Etcher in Linux – Download and Usage Guide][8] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/dark-mode-browser/ + +作者:[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/2021/10/Enable-dark-mode-in-Firefox.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg +[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB +[4]: https://chrome.google.com/webstore/category/collection/dark_themes +[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg +[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg +[8]: https://www.debugpoint.com/etcher-bootable-usb-linux/ From 930629b5e73dcc2326c33150c81e1682e223cf80 Mon Sep 17 00:00:00 2001 From: KawaiiPGR <36188023+Kira-Pgr@users.noreply.github.com> Date: Sun, 4 Sep 2022 22:19:14 +0800 Subject: [PATCH 0994/3123] Translated (#27020) * Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md * Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md * Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md * Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md * Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md * Update 20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md * Update and rename sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md to translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md --- ...ed Windows or macOS for the First Time-.md | 184 ------------------ ...ed Windows or macOS for the First Time-.md | 183 +++++++++++++++++ 2 files changed, 183 insertions(+), 184 deletions(-) delete mode 100644 sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md create mode 100644 translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md diff --git a/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md deleted file mode 100644 index b1a10da78a..0000000000 --- a/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md +++ /dev/null @@ -1,184 +0,0 @@ -[#]: subject: "What if a Lifelong Linux User Tried Windows or macOS for the First Time?" -[#]: via: "https://news.itsfoss.com/linux-user-trying-windows-macos/" -[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "Kira-Pgr" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What if a Lifelong Linux User Tried Windows or macOS for the First Time? -====== -Windows users face issues while switching to Linux. What if the tables are turned? What problems a lifelong Linux user will face while switching to Windows or macOS? - -![What if a Lifelong Linux User Tried Windows or macOS for the First Time?][1] - -Do you remember Linus Sebastian (from Linus Tech Tips) [trying out Linux for gaming][2]? He ended up deleting the desktop environment despite a clear warning shown in the terminal. - -![Linus Sebastian destroys his Linux system][3] - -Considering he utilizes Windows as his daily driver to play games, switching to Linux will definitely need some time. - -So, is this a Linux issue? Or is Linus doing it all wrong? Bet ya! - -[It's Time More Linux Distros and DEs Become 'Linus-Proof'][4] - -Or, is it that any user unfamiliar with an operating system encounters problems during their first trials? - -So, here, you get to read a different perspective of a Linux user trying Windows or macOS for the first time. - -Will it be a smooth sail? Or will it be as bad as Linus’s experience with Linux? - -It is definitely going to be something exciting… - -**Scott Williams** (a Senior DevOps Engineer) imagined the scenario in a series of tweets. - -### Enable TPM 2.0 for Windows 11? - -Considering Windows 11 is the latest available Windows version. How can Scott install it? - -> @vwbusguy \ -> Join me tonight as I try to enable TPM 2.0 on this four year old laptop to see if we can get Windows 11 to run on it. It says it supports Intel PTT, so this should be straightforward, right? -> -> @vwbusguy \ -> Between Windows and MacOS, there are too many options. Can't all proprietary operating systems users come together and just make one perfect operating system that fits every use case and preference out of the box, but most specifically mine? - -[Twitter @vwbusguy][5] - -*How to enable TPM 2.0? How to find it in the BIOS menu? Is it safe to enable TPM 2.0? Should I flash a newer BIOS? Will I brick my motherboard in the process of updating the BIOS?* - -These are some of the questions, every Linux user (and even Windows/macOS users) will have when they want to upgrade their system to Windows 11. - -With Linux distributions, we never have to do such a peculiar thing to make it work. Even in 2022. But, Windows 11 wants you to know about the BIOS settings or the TPM chip before you can upgrade to it. - -While Scott mentions about an older laptop, it is worth noting that even with the latest motherboards (for instance Z590), you may have to tweak the BIOS or flash a newer BIOS version to support Windows 11. - -This is incredibly inconvenient, even for technical users because updating BIOS comes with its own risks. - -### Do I Need an Antivirus Software? Which One? - -While Apple’s XProtect and Windows Defender should be good for basics, there are several options when it comes to Antivirus if you want enhanced protection. - -> @vwbusguy \ -> I'm surprised that MacOS doesn't even come with a modern web browser installed and you have to go to a website to download one. That's not a great initial user experience. -> -> @NaheemSays \ -> It is actually deeper than that. As a user of both systems, I think people subconsciously forget how weird Windows can be. -> -> Its biggest advantage is that it comes pre installed. First step of a new system: uninstall a lot of crap. Try even getting rid of Mcaffee or Norton! -> -> @vwbusguy \ -> So do I or do I not need antivirus software and which one? - -[Twitter @vwbusguy][6] - -And, with so many choices and paid reviews online, it is tough to know what’s actually a genuine option and if you should spend for it. - -A Linux user will often wonder: *Why do I even need this? Won’t this affect the performance? What do I do with so many protection features? Isn’t Windows a secure operating system?* - -### iCloud and macOS: A Love Story? - -> @vwbusguy \ -> How do I access files on my @btrfs drive in Windows or MacOS? -> -> @vwbusguy \ -> What is iCloud and how do I make this go away? -> -> @mikecodemonkey \ -> And then MacOS is sooooo annoying having to log into your iCloud every 5 seconds, set multiple passwords, constantly tell Siri to bugger off. - -[Twtter @vwbusguy][7] - -Linux users are not fond of integrated cloud services. They either mount a cloud storage drive (or a network drive). - -Even if they opt for a cloud storage service, it should work as per their explicit actions. However, with macOS, you will be constantly reminded of iCloud while Siri popping up in between. - -### Linux User Cleans the Registry - -With so many options and tools to clean registries and optimize systems for better performance, a new Linux user may end up with an unresponsive Windows. - -> Reddit says I need to "clean my registry" so I followed a few tutorials and deleted a few things and now this Windows box is acting really weird. - -[Twitter @vwbusguy][8] - -Even in 2022, there is no clarity when you work with the registry or tools that helps you “optimize” the registry. - -Dare you, veteran Linux users love the details before trying anything. But, if there is no proper warning/notice in the GUI, how can one know about it all? - -### Reboot All The Way - -It’s not like a reboot does not fix things in Linux. But, how many times do I have to reboot when updating Windows or after installing software? - -> We can all be like, \ -> "You have to install how many .NET framework versions? How many reboots so far?" \ -> "My Adobe version doesn't support this version of MacOS? No wonder people have so many have trouble taking MacOS seriously. Apple needs to fix this." - -[Twitter @vwbusguy][9] - -Every time I reboot, I lose the active applications that were in the background. - -Why can’t Windows just detect the new installations and updated packages with a simple refresh instead of a reboot? Why is this so much counter-productive? - -### Do I Have to Pay for All This? Wasn’t the Windows License Enough? - -Linux is primarily all about free and open-source software. Hence, the pre-installed utilities are free. - -So, a user who is comfortable with those tools would have to suddenly pay for a Windows license, and also pay for software. - -Isn’t Microsoft too greedy here? - -### Lack of Essential Packages by Default - -I can’t even extract an archive after I install Windows? Is it truly a modern OS? - -### Multi-Monitor Setup for macOS - -> @vwbusguy \ -> How do I get my monitors to work with MacOS? -> -> I'm used to firmware updates just being automatic through LVFS on Linux. How do I update the firmware from Windows? This vendor site says I need to put something on a USB drive. Can I borrow one from someone? -> -> @acruiz \ -> Indeed!!!! I had to install several extensions on macOS to get to a semi decent setup (plus some shitty drivers for multimonitor support in my dock station which worked OOTB on Linux) - -[Twitter @vwbusguy][10] - -It is a breeze to work with Linux when you have a multi-monitor setup. But, when it comes to macOS, everything breaks away. - -### Final Thoughts - -Ultimately, it depends on what the standard is and what you are familiar with. Windows and macOS are often considered the standard desktop operating system. - -In contrast, most people know little associated with Linux, except the fact that it is difficult to use. - -However, if you get to know the essentials, just like you know for Windows/macOS, Linux desktop experience will be a smooth experience. - -It is just because there are a variety of things when it comes to Linux. However, with patience, you can enjoy the full experience of it. - -Linux isn’t problematic as a whole, it's the user that fails to get acquainted with coming from another operating system. We do not want Linux to be Windows nor Windows to act like Linux, everything should have a separate presence. - -But then again, Linux should not be struck out just because a longtime Windows user did not have a good initial experience with it because the same can happen with a longtime Linux user trying Windows/macOS. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-user-trying-windows-macos/ - -作者:[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/abhishek/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/linux-windows.png -[2]: https://www.youtube.com/watch?v=0506yDSgU7M&t=788s -[3]: https://news.itsfoss.com/content/images/2022/08/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp -[4]: https://news.itsfoss.com/more-linux-distros-become-linus-proof/ -[5]: https://twitter.com/vwbusguy/status/1463543535630569473 -[6]: https://twitter.com/vwbusguy/status/1463556939728572419 -[7]: https://twitter.com/vwbusguy/status/1463579003504136192 -[8]: https://twitter.com/vwbusguy/status/1463595769051549697 -[9]: https://twitter.com/vwbusguy/status/1463538368956887043 -[10]: https://twitter.com/vwbusguy/status/1463606807906029570 diff --git a/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md new file mode 100644 index 0000000000..ee3cac705c --- /dev/null +++ b/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md @@ -0,0 +1,183 @@ +[#]: subject: "What if a Lifelong Linux User Tried Windows or macOS for the First Time?" +[#]: via: "https://news.itsfoss.com/linux-user-trying-windows-macos/" +[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "Kira-Pgr" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用惯Linux的人第一次用Windows或MacOS会怎样? +====== +Windows用户在换Linux的过程中会遇到很多问题. 相反,Linux用户第一次用Windows或MacOS会遇到什么问题呢? + +![一直用Linux的人第一次用Windows或MacOS会怎样?][1] + +还记得YouTube频道Linus Tech Tips中Linus Sebastian[尝试在Linux上玩游戏][2]的场面吗? 尽管终端显示了明显的警告, 他最后还是删掉了他的桌面环境. + +![Linus Sebastian弄坏了他的Linux系统][3] + +考虑到Linus日常用Windows玩游戏, 换Linux肯定需要一定的时间. + +所以这是Linux的问题吗? 还是Linus搞错了? + +[更多Linux版本和桌面环境出现了Linus遇到的同样问题][4] + +难道说,任何对某操作系统不熟悉的用户在第一次尝试使用该系统的时候都会遇到问题? + +接下来,你可以从不同的角度去了解linux用户第一次使用windows或者macOS的感受 + +Linux用户第一次用Windows或MacOS会非常容易?还是会感觉和Linus用Linux时一样糟糕? + +这肯定是非常有趣的话题... + +**Scott Williams** (一个高级DevOps工程师) 在一系列推文中展示了Linux用户第一次用Windows或MacOS的场面. + +### 在Win11上怎么启用TPM2.0? + +如何安装Windows的最新版本Windows 11? + +> @vwbusguy \ +> 看我在能不能在这台用了4年的笔记本电脑上启用TPM2.0并运行Windows11. 这台电脑支持Intel PTT,所以应该会很顺利? +> +> @vwbusguy \ +> 在Windows和MacOS之间有太多的选择. 所有操作系统的用户难道就不能一起开发出一种能适用于所有场合和个人偏好的完美操作系统吗?(尤其是适合我的使用环境和个人偏好) + +[Twitter用户 @vwbusguy][5] + +*怎样启用 TPM 2.0? 在BIOS菜单中怎么找? 启用 TPM 2.0 安全吗? 我需要刷一个更新版本的 BIOS吗? 更新BIOS的过程中我主版会坏吗?* + +这些就是些每个Linux用户(甚至MacOS/Windows用户)将系统升级到Windows11时都会遇到的问题. + +即使在2022年,Linux用户从来没有必要做如此奇怪的事情来让系统正常工作.但是Win11需要你在升级前了解BIOS设置和TPM芯片. + +Scott提到旧笔记本电脑时指出,值得注意的是,旧电脑即使用上了最新的主板(比如 Z590), 还需要调BIOS设置或者刷一个版本更高的BIOS版本才能支持Windows 11. + +由于更新BIOS有一定的风险,这种事情即使是对于会技术的用户都特别不方便. + +### 我需要用杀毒软件吗?用哪个? + +虽说苹果的XProtect和Windows Defender能提供基本保护,但对于想要更好保护的用户来说,在杀软方面有几个选择. + +> @vwbusguy \ +> 我惊讶的是MacOS居然没有预装新版浏览器,用户还需要自己上网去安装.这对于新用户来说体验很不好. +> +> @NaheemSays \ +> 这不仅仅是是否要安装杀软的问题. 作为同时用Win和MacOS的人, 我认为人们总是忘记Windows会变得多奇怪. +> +> 其实最大的问题是杀软已经预装好了. 每次安装完新系统之后第一件事就是要卸载一堆东西. 甚至你还要卸载McAfee或Norton. +> +> @vwbusguy \ +> 所以我究竟需不需要装杀软?装什么杀软? + +[Twitter用户 @vwbusguy][6] + +网上有那么多选择和付费评论,用户就很难确定买那个杀软最好. + +而Linux用户就会这么想: *我竟然还要安装杀软? 不会很浪费性能吗? 这么多安全防护功能我该怎么用? 难道Windows不是一个安全的操作系统?* + +### MacOS和iCloud:一个爱情故事? + +> @vwbusguy \ +> 在Windows和MacOS中我该怎样访问btrfs盘中的文件? +> +> @vwbusguy \ +> iCloud是什么东东?怎样把它删掉? +> +> @mikecodemonkey \ +> MacOS要你每5秒就要登陆iCloud,要你设置多重密码,还得经常关掉siri的提醒 + +[Twtter用户 @vwbusguy][7] + +Linux用户们并不喜欢集成的云服务. 他们宁愿挂载一个云储存磁盘(或者网络磁盘). + +即使他们选择了云储存磁盘, 系统也应该按照用户的意图来工作. 但是, 在MacOS上,你会经常被提示要使用iCloud,而且在icloud界面里siri还会出来捣乱 + +### Linux用户清理注册表 + +原先使用Linux的新手Windows用户为了能优化系统性能去清理注册表,但在面对那么多清理注册表的工具和选项时总是容易把Windows系统给搞坏 + +> Reddit上有些人说需要"清理注册表".我按照几个教程删除了一些东西,然后现在我的Windows变得很奇怪。 + +[Twitter用户 @vwbusguy][8] + +即使在2022年,对于应该在什么时候手动或者用工具清理注册表还是没有明确的规定. + +虽说资深Linux用户喜欢在尝试新东西前关注细节. 但如果GUI中没有恰当的警告或提示,还怎么知道所有的注意事项呢. +### 经常需要重启 + +虽说不像Linux的重启那样,Windows的重启可以修复问题. 不过,我到底要在更新Windows或者安装软件后重启多少次啊? + +> 第一次尝试Windows或MacOS的Linux用户是这样的, \ +> "你究竟需要安装多少个版本的.NET? 重启了多少次了?" \ +> "为什么我的Adobe版本不支持这个版本的MacOS? 难怪那么多人在用MacOS时会遇到麻烦. 苹果公司需要修复这个问题了." + +[Twitter用户 @vwbusguy][9] + +每次我重启的时候后台运行的程序都被干掉了. + +为什么Windows就不能在检测新安装的程序或者更新的时候简单地刷新一下,而不是需要重启. Windows咋做这么适得其反的操作呢? + +### 这些东西还需要花钱? 我有了Windows许可证还不够? + +Linux中主要就是免费和开源软件. 因此预装的工具也是免费的 + +所以, 一个用惯那些工具的用户就需要要花钱买Windows许可证和软件. + +微软是不是太贪婪了呢? + +### 默认就缺少必须的软件包 + +在安装完Windows后我连压缩包都解压不了? Windows真的是现代操作系统吗? + +### MacOS配置多显示器 + +> @vwbusguy \ +> 怎样让我的显示器在MacOS上工作? +> +> 我已经习惯了Linux上LVFS会自动更新固件. 在Windows上应该如何更新固件? 这个供应商网站提示我应该在U盘中放一些东西. 我可以找人借一个U盘吗? +> +> @acruiz \ +> 确实!!!! 我必须在MacOS上安装好多拓展程序才能感觉用着还行.(为了支持多显示器,还要在拓展坞上装一些讨厌的驱动,用Linux的话这些驱动可是预装好了的) + +[Twitter用户 @vwbusguy][10] + +在Linux上配置多显示器非常轻松. 但在MacOS上完全不是那回事. + +### 总结 + +最终的结论是:要看用户的标准和他熟悉的内容. Windows和macOS经常被看作标准的桌面系统. + +然而, 大多数人除了知道Linux很难用外,对有关Linux的东西了解很少. + +不过,你只要掌握使用Linux的要领,就像你掌握Windows、MacOS那样,用Linux桌面环境就能很轻松了. + +只不过在用Linux的过程会遇到各种各样的问题. 但你只要有耐心就能享受整个过程了. + +Linux本身没有什么问题, 其实问题本身在于其他系统用户在用Linux的时候对系统并不是很熟悉. 我们并不希望Linux变成Windows或Windows模仿Linux,任何操作系统都应该"做它自己". + +最后再声明一下:Linux不应该因为一个Windows资深用户首次的Linux使用体验不佳而被剔除,毕竟一个Linux老用户在第一次用Windows或MacOS时也可能会发生同样的情况. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-user-trying-windows-macos/ + +作者:[Abhishek][a] +选题:[lkxed][b] +译者:[Kira-Pgr](https://github.com/Kira-Pgr) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/linux-windows.png +[2]: https://www.youtube.com/watch?v=0506yDSgU7M&t=788s +[3]: https://news.itsfoss.com/content/images/2022/08/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp +[4]: https://news.itsfoss.com/more-linux-distros-become-linus-proof/ +[5]: https://twitter.com/vwbusguy/status/1463543535630569473 +[6]: https://twitter.com/vwbusguy/status/1463556939728572419 +[7]: https://twitter.com/vwbusguy/status/1463579003504136192 +[8]: https://twitter.com/vwbusguy/status/1463595769051549697 +[9]: https://twitter.com/vwbusguy/status/1463538368956887043 +[10]: https://twitter.com/vwbusguy/status/1463606807906029570 From bf2e49f799e8aa6f6ea9a6bbd7ae7645e5a7401e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 5 Sep 2022 00:01:00 +0800 Subject: [PATCH 0995/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Kira-Pgr 感谢您完成了第一篇翻译贡献! --- ...ed Windows or macOS for the First Time-.md | 156 +++++++----------- 1 file changed, 62 insertions(+), 94 deletions(-) diff --git a/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md index ee3cac705c..a0439db2d9 100644 --- a/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md +++ b/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md @@ -3,160 +3,128 @@ [#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "Kira-Pgr" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -用惯Linux的人第一次用Windows或MacOS会怎样? +用惯 Linux 的人第一次用 Windows 或 macOS 会怎样? ====== -Windows用户在换Linux的过程中会遇到很多问题. 相反,Linux用户第一次用Windows或MacOS会遇到什么问题呢? -![一直用Linux的人第一次用Windows或MacOS会怎样?][1] +> Windows 用户在转换到 Linux 的过程中会遇到很多问题。如果反过来,一个一直用 Linux 的用户第一次用 Windows 或 macOS 会遇到什么问题呢? -还记得YouTube频道Linus Tech Tips中Linus Sebastian[尝试在Linux上玩游戏][2]的场面吗? 尽管终端显示了明显的警告, 他最后还是删掉了他的桌面环境. +![一直用 Linux 的人第一次用 Windows 或 macOS 会怎样?][1] -![Linus Sebastian弄坏了他的Linux系统][3] +还记得 YouTube 频道 Linus Tech Tips 中 Linus Sebastian [尝试在 Linux 上玩游戏][2] 的场面吗? 尽管终端显示了明显的警告, 他最后还是把他的桌面环境删掉了。 -考虑到Linus日常用Windows玩游戏, 换Linux肯定需要一定的时间. +![Linus Sebastian 弄坏了他的 Linux 系统][3] -所以这是Linux的问题吗? 还是Linus搞错了? +考虑到 Sebastian 日常用 Windows 玩游戏, 换到 Linux 肯定需要一定的时间。 -[更多Linux版本和桌面环境出现了Linus遇到的同样问题][4] +所以,这是 Linux 的问题吗? 还是 Sebastian 搞错了? -难道说,任何对某操作系统不熟悉的用户在第一次尝试使用该系统的时候都会遇到问题? +难道说,任何对操作系统不熟悉的用户在第一次尝试使用该系统的时候都会遇到问题? -接下来,你可以从不同的角度去了解linux用户第一次使用windows或者macOS的感受 +接下来,你可以从不同的角度去了解 Linux 用户第一次使用 Windows 或者 macOS 的感受。 -Linux用户第一次用Windows或MacOS会非常容易?还是会感觉和Linus用Linux时一样糟糕? +Linux 用户第一次用 Windows 或 macOS 会非常容易?还是会和 Sebastian 用 Linux 时一样感觉糟糕? -这肯定是非常有趣的话题... +这肯定是非常有趣的话题…… -**Scott Williams** (一个高级DevOps工程师) 在一系列推文中展示了Linux用户第一次用Windows或MacOS的场面. +一位 DevOps 高级工程师 **Scott Williams** 在一系列推文中假想了 Linux 用户第一次用 Windows 或 macOS 的场面。 -### 在Win11上怎么启用TPM2.0? +### 在 Windows 11 上怎么启用 TPM 2.0? -如何安装Windows的最新版本Windows 11? +如何安装 Windows 的最新版本 Windows 11? -> @vwbusguy \ -> 看我在能不能在这台用了4年的笔记本电脑上启用TPM2.0并运行Windows11. 这台电脑支持Intel PTT,所以应该会很顺利? -> -> @vwbusguy \ -> 在Windows和MacOS之间有太多的选择. 所有操作系统的用户难道就不能一起开发出一种能适用于所有场合和个人偏好的完美操作系统吗?(尤其是适合我的使用环境和个人偏好) +> [Scott Williams][5]:\ +> 今晚,看我在能不能在这台用了 4 年的笔记本电脑上启用 TPM2.0 并运行 Windows 11。这台电脑支持 Intel PTT,所以应该会很顺利吧? -[Twitter用户 @vwbusguy][5] +怎样启用 TPM 2.0? 如何在 BIOS 菜单中找到它? 启用 TPM 2.0 安全吗? 我是否需要刷一个更新的 BIOS? 更新 BIOS 的过程中是否会弄坏我的主版? -*怎样启用 TPM 2.0? 在BIOS菜单中怎么找? 启用 TPM 2.0 安全吗? 我需要刷一个更新版本的 BIOS吗? 更新BIOS的过程中我主版会坏吗?* +这些就是些每个 Linux 用户(甚至是 macOS/Windows 用户)将系统升级到 Windows 11 时都会遇到的一些问题。 -这些就是些每个Linux用户(甚至MacOS/Windows用户)将系统升级到Windows11时都会遇到的问题. +Linux 用户从来没有必要做如此奇怪的事情来让系统正常工作。即使是在 2022 年。但是 Windows 11 需要你在升级前了解 BIOS 设置和 TPM 芯片的情况。 -即使在2022年,Linux用户从来没有必要做如此奇怪的事情来让系统正常工作.但是Win11需要你在升级前了解BIOS设置和TPM芯片. +虽然 Scott 提到的是旧笔记本电脑,但值得注意的是,即使是最新的主板(比如 Z590),你可能也需要调整 BIOS 设置或者刷一个版本更高的 BIOS 版本才能支持 Windows 11。 -Scott提到旧笔记本电脑时指出,值得注意的是,旧电脑即使用上了最新的主板(比如 Z590), 还需要调BIOS设置或者刷一个版本更高的BIOS版本才能支持Windows 11. +由于更新 BIOS 有一定的风险,这种事情即使是对于懂技术的用户也是很不方便。 -由于更新BIOS有一定的风险,这种事情即使是对于会技术的用户都特别不方便. +### 我需要用杀毒软件吗?用哪个? -### 我需要用杀毒软件吗?用哪个? +虽说苹果的 XProtect 和 Windows Defender 能提供基本保护,但对于想要更好保护的用户来说,在杀毒软件方面有几个选择: -虽说苹果的XProtect和Windows Defender能提供基本保护,但对于想要更好保护的用户来说,在杀软方面有几个选择. +> [Scott Williams][6]:\ +> 所以我究竟需不需要装杀毒软件?装哪个? -> @vwbusguy \ -> 我惊讶的是MacOS居然没有预装新版浏览器,用户还需要自己上网去安装.这对于新用户来说体验很不好. -> -> @NaheemSays \ -> 这不仅仅是是否要安装杀软的问题. 作为同时用Win和MacOS的人, 我认为人们总是忘记Windows会变得多奇怪. -> -> 其实最大的问题是杀软已经预装好了. 每次安装完新系统之后第一件事就是要卸载一堆东西. 甚至你还要卸载McAfee或Norton. -> -> @vwbusguy \ -> 所以我究竟需不需要装杀软?装什么杀软? +网上有那么多选择和软文,用户很难确定那个杀毒软件最好,已经为之付费是否值得。 -[Twitter用户 @vwbusguy][6] +而 Linux 用户就会这么想: *我竟然还要安装这个? 不会很浪费性能吗? 我需要这么多安全防护功能吗? Windows 不是一个安全的操作系统吗?* -网上有那么多选择和付费评论,用户就很难确定买那个杀软最好. +### macOS 和 iCloud:一个爱情故事? -而Linux用户就会这么想: *我竟然还要安装杀软? 不会很浪费性能吗? 这么多安全防护功能我该怎么用? 难道Windows不是一个安全的操作系统?* +> [Scott Williams][7]:\ +> iCloud 是什么?我怎么把它删掉? -### MacOS和iCloud:一个爱情故事? +Linux 用户们并不喜欢集成的云服务。他们宁愿挂载一个网盘(或网络存储器)。 -> @vwbusguy \ -> 在Windows和MacOS中我该怎样访问btrfs盘中的文件? -> -> @vwbusguy \ -> iCloud是什么东东?怎样把它删掉? -> -> @mikecodemonkey \ -> MacOS要你每5秒就要登陆iCloud,要你设置多重密码,还得经常关掉siri的提醒 +即使他们选择了网盘,也应该按照用户的意图来工作。但是,在 macOS 上,你会经常被提示要使用 iCloud,同时 Siri 还会跳出来捣乱。 -[Twtter用户 @vwbusguy][7] +### Linux 用户清理注册表 -Linux用户们并不喜欢集成的云服务. 他们宁愿挂载一个云储存磁盘(或者网络磁盘). +原先使用 Linux 的新手 Windows 用户为了能优化系统性能去清理注册表,但在面对那么多清理注册表和优化系统以提高性能的工具和选项时,可能会以一个没有反应的 Windows 而告终。 -即使他们选择了云储存磁盘, 系统也应该按照用户的意图来工作. 但是, 在MacOS上,你会经常被提示要使用iCloud,而且在icloud界面里siri还会出来捣乱 +> [Scott Williams][8]:\ +> Reddit上有些人说需要“清理注册表”,我按照几个教程删除了一些东西,然后现在我的 Windows 变得很奇怪。 -### Linux用户清理注册表 +即使在 2022 年,对于应该在什么时候手动或者用工具清理注册表还是没有明确的规定。 -原先使用Linux的新手Windows用户为了能优化系统性能去清理注册表,但在面对那么多清理注册表的工具和选项时总是容易把Windows系统给搞坏 +虽说资深 Linux 用户喜欢在尝试新东西前关注细节。但如果 GUI 中没有恰当的警告或提示,还怎么知道所有的注意事项呢。 -> Reddit上有些人说需要"清理注册表".我按照几个教程删除了一些东西,然后现在我的Windows变得很奇怪。 - -[Twitter用户 @vwbusguy][8] - -即使在2022年,对于应该在什么时候手动或者用工具清理注册表还是没有明确的规定. - -虽说资深Linux用户喜欢在尝试新东西前关注细节. 但如果GUI中没有恰当的警告或提示,还怎么知道所有的注意事项呢. ### 经常需要重启 -虽说不像Linux的重启那样,Windows的重启可以修复问题. 不过,我到底要在更新Windows或者安装软件后重启多少次啊? +虽说不像 Linux 的重启那样,Windows 的重启可以修复问题。不过,我到底要在更新 Windows 或者安装软件后重启多少次啊? -> 第一次尝试Windows或MacOS的Linux用户是这样的, \ -> "你究竟需要安装多少个版本的.NET? 重启了多少次了?" \ -> "为什么我的Adobe版本不支持这个版本的MacOS? 难怪那么多人在用MacOS时会遇到麻烦. 苹果公司需要修复这个问题了." +> [Scott Williams][9]:\ +> 第一次尝试 Windows 或 macOS 的 Linux 用户是这样的:\ +> “究竟需要安装多少个版本的 .NET? 已经重启了多少次了?” \ +> “为什么我的 Adobe 版本不支持这个版本的 macOS? 难怪那么多人在用 macOS 时会遇到麻烦。苹果公司需要修复这个问题了。” -[Twitter用户 @vwbusguy][9] +每次我重启的时候后台运行的程序都被干掉了。 -每次我重启的时候后台运行的程序都被干掉了. +为什么 Windows 就不能在检测新安装的程序或者更新的时候简单地刷新一下,而不是重启呢。Windows 为什么反着来呢。 -为什么Windows就不能在检测新安装的程序或者更新的时候简单地刷新一下,而不是需要重启. Windows咋做这么适得其反的操作呢? +### 这些东西还需要花钱? 我有 Windows 许可证还不够? -### 这些东西还需要花钱? 我有了Windows许可证还不够? +Linux 主要是自由和开源软件构成的,因此预装的工具也是免费的。 -Linux中主要就是免费和开源软件. 因此预装的工具也是免费的 +所以, 一个用惯那些工具的用户就不得不突然需要花钱买一个 Windows 许可证,而且还要支付软件费用。 -所以, 一个用惯那些工具的用户就需要要花钱买Windows许可证和软件. - -微软是不是太贪婪了呢? +微软是不是太贪婪了呢? ### 默认就缺少必须的软件包 -在安装完Windows后我连压缩包都解压不了? Windows真的是现代操作系统吗? +在安装完 Windows 后我连压缩包都解压不了?Windows 真的是现代操作系统吗? -### MacOS配置多显示器 +### macOS 配置多显示器 -> @vwbusguy \ -> 怎样让我的显示器在MacOS上工作? -> -> 我已经习惯了Linux上LVFS会自动更新固件. 在Windows上应该如何更新固件? 这个供应商网站提示我应该在U盘中放一些东西. 我可以找人借一个U盘吗? -> -> @acruiz \ -> 确实!!!! 我必须在MacOS上安装好多拓展程序才能感觉用着还行.(为了支持多显示器,还要在拓展坞上装一些讨厌的驱动,用Linux的话这些驱动可是预装好了的) +> [Scott Williams][10]:\ +> 怎样让我的显示器在 macOS 上工作呢? -[Twitter用户 @vwbusguy][10] - -在Linux上配置多显示器非常轻松. 但在MacOS上完全不是那回事. +在 Linux 上配置多显示器非常轻松。但在 macOS 上完全不是那回事。 ### 总结 -最终的结论是:要看用户的标准和他熟悉的内容. Windows和macOS经常被看作标准的桌面系统. +归根到底,这要看用户的标准和你熟悉的内容。Windows 和 macOS 经常被看作标准的桌面系统。 -然而, 大多数人除了知道Linux很难用外,对有关Linux的东西了解很少. +然而相比之下,大多数人除了知道 Linux 很难用外,对有关 Linux 的东西了解甚少。 -不过,你只要掌握使用Linux的要领,就像你掌握Windows、MacOS那样,用Linux桌面环境就能很轻松了. +不过,你只要掌握使用 Linux 的要领,就像你掌握 Windows、macOS 那样,用 Linux 桌面环境就很轻松了。 -只不过在用Linux的过程会遇到各种各样的问题. 但你只要有耐心就能享受整个过程了. +只不过在用 Linux 的过程会遇到各种各样的问题,但你只要有耐心就能享受整个过程了。 -Linux本身没有什么问题, 其实问题本身在于其他系统用户在用Linux的时候对系统并不是很熟悉. 我们并不希望Linux变成Windows或Windows模仿Linux,任何操作系统都应该"做它自己". +Linux 本身没有什么问题,是其他系统用户未能熟悉 Linux 的问题。我们并不希望 Linux 变成 Windows,也不希望 Windows 表现得像 Linux,任何操作系统都应该“做它自己”。 -最后再声明一下:Linux不应该因为一个Windows资深用户首次的Linux使用体验不佳而被剔除,毕竟一个Linux老用户在第一次用Windows或MacOS时也可能会发生同样的情况. +但话又说回来,不应该因为一个长期使用 Windows 的用户在最初使用时没有良好的体验就把 Linux 排除在外,因为同样的情况也可能发生在一个长期使用 Linux 的用户尝试 Windows/MacOS 时。 -------------------------------------------------------------------------------- @@ -165,7 +133,7 @@ via: https://news.itsfoss.com/linux-user-trying-windows-macos/ 作者:[Abhishek][a] 选题:[lkxed][b] 译者:[Kira-Pgr](https://github.com/Kira-Pgr) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 591689078ac852d280539ac2dceb32930f9cfdea Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 5 Sep 2022 00:01:56 +0800 Subject: [PATCH 0996/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Kira-Pgr 本文首发地址:https://linux.cn/article-15000-1.html 您的 LCTT 专页:https://linux.cn/lctt/Kira-Pgr --- ...g Linux User Tried Windows or macOS for the First Time-.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md (99%) diff --git a/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/published/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md similarity index 99% rename from translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md rename to published/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md index a0439db2d9..0ec10b2581 100644 --- a/translated/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md +++ b/published/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Kira-Pgr" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15000-1.html" 用惯 Linux 的人第一次用 Windows 或 macOS 会怎样? ====== From 69ded885cae1f27c560f398657d42e65b0c51dc4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 5 Sep 2022 08:36:45 +0800 Subject: [PATCH 0997/3123] translated --- ...uce the different Fedora Linux editions.md | 82 ------------------ ...uce the different Fedora Linux editions.md | 83 +++++++++++++++++++ 2 files changed, 83 insertions(+), 82 deletions(-) delete mode 100644 sources/tech/20211203 Introduce the different Fedora Linux editions.md create mode 100644 translated/tech/20211203 Introduce the different Fedora Linux editions.md diff --git a/sources/tech/20211203 Introduce the different Fedora Linux editions.md b/sources/tech/20211203 Introduce the different Fedora Linux editions.md deleted file mode 100644 index f49494aa01..0000000000 --- a/sources/tech/20211203 Introduce the different Fedora Linux editions.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Introduce the different Fedora Linux editions" -[#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/" -[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Introduce the different Fedora Linux editions -====== -![Introduce the differenct Fedora Linux editions][1] - -Photo by [Frédéric Perez][2] on [Unsplash][3] - -We have different preferences in using Fedora Linux. For example, there are some people who choose Fedora Linux because Fedora Workstation uses GNOME as its desktop environment by default. But there are also some people who want to use Fedora Linux but want to use a different desktop environment. Or there are also some people who use Fedora Linux with certain needs but don’t want to be bothered with system configuration and application installation. Or even some people want to install Fedora Linux freely according to their needs. Therefore Fedora Linux provides several editions according to your needs. This article will introduce the different Fedora Linux editions. - -### Fedora Official Editions - -We start with the official editions of Fedora Linux, namely Fedora Workstation, Fedora Server, and Fedora IoT. Fedora Workstation is the official edition of Fedora Linux that can be installed on laptops and desktop computers. This edition comes with GNOME as the default desktop environment and various standard applications so that Fedora Linux is ready for daily use. While Fedora Server is specifically for server computer purposes that provides installation of mailserver, DNS, etc. And the last one is Fedora IoT, which is for the purposes of the Internet of Things and Device Edge ecosystems. - -On the main page of the Fedora Project web page you can find two other editions – Fedora CoreOS and Fedora Silverblue. Fedora CoreOS is an operating system that is automatically updated and designed to run containerized workloads safely and at scale. While Fedora Silverblue is an immutable desktop operating system designed to support container-focused workflows. - -![Introduce the different Fedora Linux editions: Fedora Workstation][4] - -More information is available at this link: [https://getfedora.org/][5] - -### Fedora Spins: alternative desktops - -This edition of Fedora Linux is in great demand by those who are very concerned about the appearance of their desktop. Most people know that Fedora Linux only has GNOME as the default desktop environment. Even though there are several alternative desktop options if you really want to use a desktop environment other than GNOME. With Fedora Spins, you can immediately get your favorite desktop environment when installing Fedora Linux. You can choose from KDE Plasma, XFCE, LXQt, MATE, Cinnamon, LXDE, and SoaS. Moreover, for those who like tiling window managers, Fedora Linux provides Fedora i3 Spin with i3 as the default window manager which is accompanied by several standard applications. - -![Introduce the different Fedora Linux editions: Fedora Plasma][6] - -![Introduce the different Fedora Linux editions: Fedora Cinnamon][7] - -More information is available at this link: [https://spins.fedoraproject.org/][8] - -### Fedora Labs: functional bundles - -Fedora Labs is a collection of Fedora Linux packages that have been packaged according to specific needs. Therefore, the installation packages of these editions have provided the applications and the necessary content according to their functions. Fedora Labs provides a choice of packages such as Astronomy, Comp Neuro, Design Suite, Games, JAM, Python Classroom, Security Lab, Robotics Suite, and Scientific. If you want to use Fedora Linux for your design work, then Design Suite is the right choice for you. But if you like playing games, you can choose Games. - -![Introduce the different Fedora Linux editions: Fedora Design Suite][9] - -![Introduce the different Fedora Linux editions: Fedora Games][10] - -More information is available at this link: [https://labs.fedoraproject.org/][11] - -### Fedora Alt Downloads - -Fedora Alt Downloads is a collection of alternative Fedora Linux installers with a specific purpose, such as for testing or for specific architectures. Or there are also alternative formats such as network installer format or formatted for torrent downloads. Here you can find Network Installer, Torrent Downloads, Alternative Architectures, Cloud Base Images, Everything, Testing Images, and Rawhide. - -More information is available at this link: [https://alt.fedoraproject.org/][12] - -### Conclusion - -You have the freedom to choose the Fedora Linux edition that suits your preferences other than official editions. But if you want to get Fedora Linux with variety of desktop appearances, then Fedora Spins is for you. And you can choose Fedora Labs if you want Fedora Linux complete with applications and packages according to your needs. However, if you are an expert and want to install Fedora Linux more freely, you can browse alternative options at Fedora Alt Downloads. Hopefully this article can help you to choose the right Fedora Linux and please share your experience with Fedora Linux in the comments. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/ - -作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/ -[b]: https://github.com/lkxed -[1]: https://fedoramagazine.org/wp-content/uploads/2021/11/FedoraMagz-FedoraEditions-Intro-816x345.png -[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://fedoramagazine.org/wp-content/uploads/2021/11/g-monitor-overview.png -[5]: https://getfedora.org/ -[6]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-kde-1024x640.jpg -[7]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-cinnamon-1024x576.jpg -[8]: https://spins.fedoraproject.org/ -[9]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Design-1024x792.png -[10]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Games-1024x792.png -[11]: https://labs.fedoraproject.org/ -[12]: https://alt.fedoraproject.org/ diff --git a/translated/tech/20211203 Introduce the different Fedora Linux editions.md b/translated/tech/20211203 Introduce the different Fedora Linux editions.md new file mode 100644 index 0000000000..e2a979ea3f --- /dev/null +++ b/translated/tech/20211203 Introduce the different Fedora Linux editions.md @@ -0,0 +1,83 @@ +[#]: subject: "Introduce the different Fedora Linux editions" +[#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/" +[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +介绍不同的 Fedora Linux 版本 +====== +![Introduce the differenct Fedora Linux editions][1] + +照片由 [Frédéric Perez][2] 发布在 [Unsplash][3] + +我们对使用 Fedora Linux 有不同的偏好。例如,有些人选择 Fedora Linux,是因为 Fedora Workstation 默认使用 GNOME 作为其桌面环境。但也有一些人想使用 Fedora Linux 但想使用不同的桌面环境。或者也有一些人使用 Fedora Linux 有特定的需求,但不想被系统配置和应用安装所困扰。甚至有些人想根据自己的需要自由安装 Fedora Linux。因此 Fedora Linux 根据你的需要提供了多个版本。本文将介绍不同的 Fedora Linux 版本。 + +### Fedora 官方版 + +我们从 Fedora Linux 的官方版本开始,即 Fedora Workstation、Fedora Server 和 Fedora IoT。 Fedora Workstation 是 Fedora Linux 的官方版本,可以安装在笔记本电脑和台式电脑上。此版本附带 GNOME 作为默认桌面环境和各种标准应用,因此 Fedora Linux 已为日常使用做好准备。而 Fedora Server 专门用于服务器用途,提供邮件服务器、DNS 等的安装。最后一个是 Fedora IoT,用于物联网和边缘设备生态系统。 + +在 Fedora Project 网页的主页上,你可以找到另外两个版本:Fedora CoreOS 和 Fedora Silverblue。Fedora CoreOS 是一个自动更新的操作系统,旨在安全、大规模地运行容器化工作负载。而 Fedora Silverblue 是一个不可变的桌面操作系统,旨在支持以容器为中心的工作流。 + +![Introduce the different Fedora Linux editions: Fedora Workstation][4] + +更多信息可在此链接获得:[https://getfedora.org/][5] + +### Fedora Spins:替代桌面 + +这个版本的 Fedora Linux 很受那些非常在意桌面外观的人的欢迎。大多数人都知道 Fedora Linux 只有 GNOME 作为默认桌面环境。即使你真的想使用 GNOME 以外的桌面环境,也有几个替代桌面选项。使用 Fedora Spins,你可以在安装 Fedora Linux 时立即获得你最喜欢的桌面环境。你可以从 KDE Plasma、XFCE、LXQt、MATE、Cinnamon、LXDE 和 SoaS 中进行选择。此外,对于喜欢平铺窗口管理器的人,Fedora Linux 提供了 Fedora i3 Spin,其中 i3 作为默认窗口管理器,并附带了几个标准应用。 + + +![Introduce the different Fedora Linux editions: Fedora Plasma][6] + +![Introduce the different Fedora Linux editions: Fedora Cinnamon][7] + +更多信息可在此链接获得:[https://spins.fedoraproject.org/][8] + +### Fedora Labs:功能包 + +Fedora Labs 是根据特定需求打包的 Fedora Linux 软件包集合。因此,这些版本的安装包都根据其功能提供了应用和必要的内容。 Fedora Labs 提供多种软件包选择,例如天文学、Comp Neuro、设计套件、游戏、JAM、Python 教室、安全实验室、机器人套件和科学。如果你想使用 Fedora Linux 进行设计工作,那么设计套件是你的正确选择。但是如果你喜欢玩游戏,你可以选择游戏。 + +![Introduce the different Fedora Linux editions: Fedora Design Suite][9] + +![Introduce the different Fedora Linux editions: Fedora Games][10] + +更多信息可在此链接获得:[https://labs.fedoraproject.org/][11] + +### Fedora Alt Downloads + +Fedora Alt Downloads 是具有特定目的的替代 Fedora Linux 安装程序的集合,例如用于测试或用于特定架构。还有其他格式,例如网络安装程序格式或 torrent 下载的格式。在这里你可以找到网络安装程序、Torrent 下载、替代架构、云基础镜像、所有、测试镜像和 Rawhide。 + +更多信息可在此链接获得:[https://alt.fedoraproject.org/][12] + +### 总结 + +你可以自由选择适合你偏好的 Fedora Linux 版本,而不是官方版本。但是,如果你想获得具有各种桌面外观的 Fedora Linux,那么 Fedora Spins 适合你。如果您希望 Fedora Linux 根据你的需要包含应用和软件包,你可以选择 Fedora Labs。但是,如果你是专家并且想要更自由地安装 Fedora Linux,你可以在 Fedora Alt Downloads 处浏览替代选项。希望本文可以帮助你选择合适的 Fedora Linux,并请在评论中分享你使用 Fedora Linux 的经验。 + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/ + +作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2021/11/FedoraMagz-FedoraEditions-Intro-816x345.png +[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://fedoramagazine.org/wp-content/uploads/2021/11/g-monitor-overview.png +[5]: https://getfedora.org/ +[6]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-kde-1024x640.jpg +[7]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-cinnamon-1024x576.jpg +[8]: https://spins.fedoraproject.org/ +[9]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Design-1024x792.png +[10]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Games-1024x792.png +[11]: https://labs.fedoraproject.org/ +[12]: https://alt.fedoraproject.org/ From 04578897a59052b87176f5371c8f6dcc8464f56e Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 5 Sep 2022 08:45:19 +0800 Subject: [PATCH 0998/3123] translating --- ...able USB Using Etcher in Linux – Download and Usage Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md b/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md index aaa9c291eb..9aff22aaf7 100644 --- a/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md +++ b/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/etcher-bootable-usb-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e6084c00474c293e7b3c74ae7b591f89dea7ac2e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 5 Sep 2022 10:19:35 +0800 Subject: [PATCH 0999/3123] ALL @wxy https://linux.cn/article-15001-1.html --- ...lternative Notesnook is Now Open Source.md | 79 ++++++++++++++++++ ...lternative Notesnook is Now Open Source.md | 80 ------------------- 2 files changed, 79 insertions(+), 80 deletions(-) create mode 100644 published/20220902 Evernote Alternative Notesnook is Now Open Source.md delete mode 100644 sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md diff --git a/published/20220902 Evernote Alternative Notesnook is Now Open Source.md b/published/20220902 Evernote Alternative Notesnook is Now Open Source.md new file mode 100644 index 0000000000..63faff067a --- /dev/null +++ b/published/20220902 Evernote Alternative Notesnook is Now Open Source.md @@ -0,0 +1,79 @@ +[#]: subject: "Evernote Alternative Notesnook is Now Open Source" +[#]: via: "https://news.itsfoss.com/notesnook-goes-open-source/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15001-1.html" + +印象笔记的替代品 Notesnook 现已开源 +====== + +![](https://news.itsfoss.com/content/images/size/w2000/2022/09/notesnook-ft.png) + +> Notesnook 是一个以隐私为重点的新的记事本应用程序,它决定开源了。 + +当你想到一个开源的安全记事本应用程序时,你会想到什么? + +可能是 [标准笔记][2]Standard Notes。 + +🔒 它是一个开源的、端到端加密的应用程序。而且也正是 Linux 用户最好的记事应用程序之一。 + +然而,提供类似于流行的印象笔记功能的注重隐私的标准笔记替代品较少。 + +幸运的是,我们有一个新的选择加入了名单,即 **Notesnook**。 + +📢 Notesnook 最近在 GPLv3 许可下进行了开源,以让社区帮助改进它,并确保该项目不至于走样。 + +目前,开发人员希望把重点放在改进 GitHub 仓库上,然后继续增加新的功能/其他开发活动。 + +### Notesnook:它能提供什么? + +![notesnook][5] + +Notesnook 是一个开源的零知识笔记存储平台,具有端到端加密功能。 + +与标准笔记类似,你可以免费使用它,也可以选择高级计划来解锁更多的好处。一些亮点包括: + +* 手机端的应用锁。 +* 私人笔记保险库。 +* 密码保护的笔记共享。 +* 跨平台。 + +界面看起来像是组合了各种有用的东西。我有兴趣单独写篇点评,或许写篇比较文章,听起来不错,对吗? + +它可用于 Windows、mac 和 Linux。你可以下载用于 Linux 桌面的 AppImage 文件,或者 .deb/.rpm。 + +🏷️ 💲 **为了庆祝开源**,Notesnook 还为其 [年度高级计划][6] 提供高达 75% 的折扣,并提供 30 天退款保证。你可以试一试,看看你是否需要高级计划。 + +在印度付费的话,我看到有 80% 的折扣,使得一年的订阅费用只有 10 美元。其他地区的情况可能不同。 + +探索其 [GitHub 页面][7] 或 [官方网站][8] 以了解更多。此外,你可以阅读他们的 [博客文章][9],了解他们为什么决定要开源。 + +> **[Notesnook][10]** + +💬 *你认为 Notesnook 作为一个以隐私为中心的新的记事应用程序怎么样?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/notesnook-goes-open-source/ + +作者:[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/content/images/size/w1200/2022/09/notesnook-ft.png +[2]: https://standardnotes.com/ +[3]: https://itsfoss.com/note-taking-apps-linux/ +[5]: https://news.itsfoss.com/content/images/2022/09/notesnook.jpg +[6]: https://notesnook.com/pricing/ +[7]: https://github.com/streetwriters/notesnook +[8]: https://notesnook.com/ +[9]: https://blog.notesnook.com/notesnook-is-going-open-source/ +[10]: https://notesnook.com/ diff --git a/sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md b/sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md deleted file mode 100644 index 9a2b0b8d77..0000000000 --- a/sources/news/20220902 Evernote Alternative Notesnook is Now Open Source.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Evernote Alternative Notesnook is Now Open Source" -[#]: via: "https://news.itsfoss.com/notesnook-goes-open-source/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Evernote Alternative Notesnook is Now Open Source -====== -Notesnook is a new privacy-focused note-taking app that decided to go open-source. - -![Evernote Alternative Notesnook is Now Open Source][1] - -What comes to mind when you think about an open-source secure note-taking application? - -Probably [Standard Notes][2]**.** - -🔒 It is an open-source, end-to-end encrypted app. And also happens to be one of the best note-taking apps for Linux users: - -[Here Are The Best Note Apps For Linux We Found For You][3] - -However, there are fewer privacy-focused alternatives to Standard Notes that provide features similar to the popular **Evernote** note-taking app. - -Fortunately, we have a new option to join the list, i.e., **Notesnook**. - -📢 Notesnook recently went open-source under GPLv3 license to allow the community to help improve it and make sure the project does not go anywhere. - -Currently, the developers want to focus on improving the GitHub repository, and then move on to add new features/other development activities. - -### Notesnook: What Does It Offer? - -![notesnook][5] - -Notesnook is an open-source zero knowledge notes storage platform with end-to-end encryption. - -Similar to Standard Notes, you can use it for free or opt for the premium plan to unlock a few more perks. Some highlights include: - -* App lock for mobile. -* Private notes vault. -* Password protected note sharing. -* Cross-platform. - -The interface looks like a mix of everything useful. I will be interested to take a look at it separately as a review or maybe for a comparison, sounds good, right? - -It is available for Windows, mac, and Linux. You can download an AppImage file, or .deb/.rpm for the Linux desktop. - -🏷️💲 **To celebrate going open-source**, Notesnook is also offering up to **75% discount** on its [yearly premium plan][6] backed with a 30-day money-back guarantee. You can give it a try and see if you want the premium plan. - -As someone checking out the offering from India, I see an **80% discount**, making it just **$10** for a year of subscription. It can be different for other regions. - -Explore its [GitHub page][7] or the [official website][8] to know more. Additionally, you can read their [blog post][9] on why they decided to go open-source. - -[Notesnook][10] - -💬 *What do you think about Notesnook as a new privacy-centric note-taking app?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/notesnook-goes-open-source/ - -作者:[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/content/images/size/w1200/2022/09/notesnook-ft.png -[2]: https://standardnotes.com/ -[3]: https://itsfoss.com/note-taking-apps-linux/ -[5]: https://news.itsfoss.com/content/images/2022/09/notesnook.jpg -[6]: https://notesnook.com/pricing/ -[7]: https://github.com/streetwriters/notesnook -[8]: https://notesnook.com/ -[9]: https://blog.notesnook.com/notesnook-is-going-open-source/ -[10]: https://notesnook.com/ From bbfa2ba4cd94ecf9c515c6c421f9b583a88b1728 Mon Sep 17 00:00:00 2001 From: 7g <1563156662@qq.com> Date: Mon, 5 Sep 2022 10:36:41 +0800 Subject: [PATCH 1000/3123] Update 20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md --- ...mparing the Different Linux Experiences.md | 151 +++++++++--------- 1 file changed, 72 insertions(+), 79 deletions(-) diff --git a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md index b7f84b65a5..7ca3535a6c 100644 --- a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md +++ b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md @@ -7,170 +7,163 @@ [#]: publisher: " " [#]: url: " " -Ubuntu vs Manjaro: Comparing the Different Linux Experiences -对比 Ubuntu 和 Manjaro :比较不同 Linux 发行版体验 +对比Ubuntu和Manjaro:比较不同的Linux发行版体验 + ====== -Ubuntu is the most popular Debian-based Linux distribution for desktops and servers. -Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版 +Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版。 -And Manjaro Linux is an Arch-based distro tailored for desktops. -Manjaro Linux 是基于 Arch 量身定制的桌面发行版 +Manjaro 是基于 Arch 量身定制的 Linux 发行版。 -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 Manjaro’s GNOME edition with Ubuntu. +然而,在比较Manjaro的GNOME版和Ubuntu时,其中一个共同点是[桌面环境][1]。 -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. +但它们之间的差异到底在哪? Manjaro 的包管理器会更好用吗?Ubuntu 和 Manjaro 上的软件生态怎么样? -### Release Cycle +接下来,我们来看看两个 Linux 发行版在某些关键问题上的差异。 -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**. +### 发行周期 +Ubuntu根据你选择的版本不同提供了两个发行周期。如果你选择的是长期发行版本(Long Term Support, LTS),那么你在至少未来五年内都会收到安全维护更新。 +假如你安装了 Ubuntu 22.04 ,那么你在**2027 年 4 月**之前都能获取更新。 ![ubuntu22 04 lts about][2] -The LTS version is what we recommend for most desktop users. +因此我们更推荐普通用户使用 LTS 版本。 -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. +如果你想要更新更好的体验,你可以选择每**九个月**更新一次的非 LTS 版本。例如 Ubuntu 21.04, Ubuntu 21.10, Ubuntu 22.10。 -Note that the non-LTS releases involve changes that may affect your workflow and user experience. So, it isn’t recommended for everyone. +需要注意的是,非 LTS 版本涉及的更改可能会影响你的工作流程以及用户体验。因此并不推荐所有人都去使用非 LTS 版本。 -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 Linux 时你将会获得滚动发行时间表,因此你不必担心对你使用版本的支持。它会通过定期更新升级到最新的可用版本。 ![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. +由于滚动发行周期的原因,你可以快速获取到最新的软件包。因此如果你想使用某个软件的历史版本,Manjaro 或许并不适合你。 -### 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 有 GNOME 版本桌面的定制版。它可能不是最新的,但如果你使用较新的 Ubuntu 版本,它可能包含最新的 GNOME 桌面环境。 ![ubuntu 22 04 wallpaper][4] -There are no other desktop environments by Canonical (the company behind Ubuntu). +Canonical (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. +但如果你想在 Ubuntu 上使用其它桌面环境,你可以选择官方的[Ubuntu 风格][5] KDE, Budgie, LXQt, MATE 以及 XFCE 作为桌面环境。与具有其他桌面环境的非官方或更新版本的 Ubuntu 相比,它们是经过良好测试且稳定的 Ubuntu Linux 发行版。 -However, Ubuntu flavours do not get five years of software support; instead, you will be limited to three years of support for LTS versions. +但是这些Ubuntu 版本没有五年的软件支持; 相反,你将被限制为对 LTS 版本的三年支持。 -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,你可以选择官方提供的三个版本:XFCE, KDE 和 GNOME。 无论桌面环境如何,你都会使用滚动发布模式。 ![manjaro gnome 42][6] -You do have some community editions with Budgie, MATE, LXQt, and more as well. +当然你也可以使用一些社区版本如 Budgie, MATE, LXQt。 -### Package Manager or Software Ecosystem +### 包管理器以及软件生态 +在上述这些发行版中找到大多数必要的 Linux 应用是没问题的。 -You shouldn’t 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 Linux 使用 Pamac 作为其包管理器获得了更快速的体验。 ![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 上的应用商店相比,Manjaro Linux 在快速安装/更新软件方面提供了更好的体验。 而且,如果您想通过单击启用它们,它还支持开箱即用的 Flatpak/Snap。 -Ubuntu emphasizes Snap packages, and you will find some applications pre-installed as Snap (like Firefox web browser). +Ubuntu 比较重视 Snap 包,你会发现一些应用程序预装为 Snap包(如 Firefox 浏览器)。 ![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. +对于 Manjaro Linux来说,你可以根据自身需求决定是否启用 Flatpak/Snap。 +在使用 Ubuntu时,应用商店提供的 Linux 应用并不是最好的。取决于你的系统配置和使用年限,它会变得越来越慢。 ![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 Ubuntu’s software center. +除此之外,Manjaro Linux 还可以访问 [AUR][11],它可以获得你在 Ubuntu 应用商店中可能找不到的几乎所有软件。 -So, in terms of the software ecosystem and the package manager, Manjaro Linux does provide many advantages over Ubuntu. +因此,就软件生态系统和包管理器而言,Manjaro Linux 的确要比 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. +Ubuntu 桌面主要是为了易于使用而量身定制的。它专注于提供最佳的软件和硬件兼容性组合,让所有计算机用户都可以使用 Ubuntu Linux,而无需了解 Linux 世界中的大部分内容。 -Even if someone doesn’t 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. +即使有人不知道 Linux 上的“包管理器”是什么,在他们使用它时也可以完全把它作为 Windows/macOS 的完美替代品。 -Of course, we also have a guide to help you with [things to do after installing the latest Ubuntu version][12]. +当然,我们也有一个指南来帮助您[安装最新的 Ubuntu 后要做的事情][12]。 -Manjaro Linux is also tailored for desktop usage. But, it isn’t 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. +Manjaro Linux 也是为桌面用户使用量身定制的。 但是它并不适合首次使用 Linux 的用户使用。 -### Stability +它旨在简化 Arch Linux 的操作。 因此主要面向想要使用 Arch Linux 的 Linux 用户增加了一些便利性。 +### 稳定性 ![stability tux][13] -Ubuntu LTS releases primarily focus on stability and reliability, so you can also use them on servers. +Ubuntu LTS 版本主要关注稳定性和可靠性,因此你也可以在服务器上部署它们。 -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. +相比之下,Manjaro Linux 可能没有开箱即用那么稳定。 你在 Manjaro Linux 中安装软件包时需要更加仔细,同时密切注意你的配置,以确保更新不会破坏你的系统。 -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. +对于 Ubuntu 用户来说则无需担心软件更新,尤其是在考虑 LTS 版本时,更新通常不会破坏你的系统。 -### 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 有一个由 Canonical 为最终用户设置的定制 GNOME 桌面。 虽然你可以自由选择不同的 Linux 发行版,但 Ubuntu 提供的开箱即用的功能让然很少 -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. +Ubuntu 多年来一直在改进,最近增加了[在 Ubuntu 22.04 LTS 中添加强调色][14] 的能力。 但是它仍然还有很长的路要走。 -You will have to take the help of apps like [GNOME Tweak][15] to customize the desktop experience. +如果你想获得个性化的桌面体验,你只能借助[GNOME Tweak][15] 等软件来实现。 -When considering Manjaro’s GNOME edition, you will have to use the same tool to customize things yourself. +对比 Manjaro GNOME,你也只能使用相同的工具来自定义桌面。 -Manjaro also performs a few customization tweaks to the look. But, it gives more control to change the layout and few other options. +Manjaro 还对外观进行了一些自定义调整。但是它提供了更多组件来更改布局和其他一些选项。 ![manjaro layout][16] -In terms of customization, you should be able to do the same thing on both Manjaro and Ubuntu. +在个性定制方面,你在 Manjaro 和 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. +如果您想要更多自定义选项,Manjaro Linux 可能是一个不错的选择。 但是如果你只想要一个个性化体验而不需要太多的改变,Ubuntu 应该就足够了。 -### 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 可能会令你感到麻烦。 ![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. +虽然可以随时删除不需要的应用程序。但是你会发现更多随 Ubuntu 一起安装的软件和服务还有很多。 -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. +使用 Manjaro时,你在安装时只需要安装最基础的内容即可。它们坚持使用最基础的实用程序,最大限度地减少预装的软件包数量。 因此,Manjaro 很少会和软件臃肿联系到一起。 -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. +但是你在默认安装的 Manjaro 上可能找不到你最喜欢的 Linux 软件。 因此,如果你想在安装后立即使用一些你喜欢的软件,Ubuntu 可能是一个不错的选择。 -### 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. +虽然 Ubuntu 提高了系统性能,甚至可以在 2 GB 内存的树莓派上运行,但它仍然不是性能最好的 Linux 发行版。 -Of course, the performance does depend on the desktop environment you choose to use. +当然,性能确实取决于你选择使用的桌面环境。 -However, compared to Manjaro’s GNOME edition, Manjaro provides a snappier experience. +但是与 Manjaro 的 GNOME 版本相比,Manjaro 提供了更快捷的体验。 -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. +需要注意的是,性能和动画首选项的用户体验还取决于你的系统配置。例如,Manjaro 推荐旧电脑系统达到拥有 1GB 内存和 1GHz 处理器。 -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. +但是,对于 Ubuntu,在撰写本文时,你至少需要 4 GB 内存 和 2 GHz 双核处理器才能获得理想的桌面体验。 -### Documentation -Ubuntu is easier to use and potentially more comfortable for new users, considering its popularity. +### 文档 +考虑到 Ubuntu 的受欢迎程度,Ubuntu 更易于使用,并且对新用户来说可能更舒适。 -[Ubuntu’s documentation][19] is good enough, if not excellent. +[Ubuntu 的文档][19] 即使不是最好也足够好了。 -When it comes to Manjaro Linux, they have a [wiki][20] with essential information and in-depth guides to help you out. +谈到 Manjaro Linux,他们有一个 [wiki][20],其中包含基础信息和深入的指南来帮助你入门。 -In general, the [documentation available for Arch Linux][21] is meticulous, and almost everyone (even the veterans) refers to it to get help. +总的来说,[Arch Linux 的文档][21] 非常细致,几乎每个人(甚至是老手)都会参考它来寻求帮助。 -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. +Arch Linux 的文档在很大程度上也适用于 Manjaro Linux,因此在文档方面,使用 Manjaro Linux 比 Ubuntu 更有优势。 -### Wrapping Up +### 结束语 +作为两个完全不同的 Linux 发行版,它们服务于各种类型的用户。你可以选择任意你感兴趣的操作系统并尝试去使用它来判断它是否适合你。 -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. +但是不管 Linux 发行版如何,你想避免对系统进行任何更改并专注于你的工作,Ubuntu 应该是一个明智的选择。 -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]. +无论如何,如果 Ubuntu 的性能对你的体验有相当大的影响,你应该去尝试 Manjaro。 你可以阅读我的 [关于从 Ubuntu 切换到 Manjaro 的初步想法][22]。 -------------------------------------------------------------------------------- @@ -178,7 +171,7 @@ via: https://itsfoss.com/ubuntu-vs-manjaro/ 作者:[Ankush Das][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Return7g](https://github.com/Return7g) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ccd2f7b6f8501ed8d06ca722e002648a5f60bfb4 Mon Sep 17 00:00:00 2001 From: 7g <1563156662@qq.com> Date: Mon, 5 Sep 2022 10:37:49 +0800 Subject: [PATCH 1001/3123] transalted first draft --- ...buntu vs Manjaro- Comparing the Different Linux Experiences.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md (100%) diff --git a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md similarity index 100% rename from sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md rename to translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md From e801cd8bd37c5fa140a18049a18adfb8a852d13f Mon Sep 17 00:00:00 2001 From: Yufei-Yan Date: Mon, 5 Sep 2022 04:01:03 -0500 Subject: [PATCH 1002/3123] Translating. --- sources/tech/20220902 Where is DevOps Headed-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220902 Where is DevOps Headed-.md b/sources/tech/20220902 Where is DevOps Headed-.md index 5bba1fb1f3..1008e0839d 100644 --- a/sources/tech/20220902 Where is DevOps Headed-.md +++ b/sources/tech/20220902 Where is DevOps Headed-.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/09/where-is-devops-headed/" [#]: author: "Bhagvan Kommadi https://www.opensourceforu.com/author/bhagvan-kommadi/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Yufei-Yan" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 202f32f1d9ed7d0cd1120b8295832908d49a9967 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 5 Sep 2022 22:42:33 +0800 Subject: [PATCH 1003/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220905=20How=20to=20Deploy=20Docker=20Swarm=20on?= =?UTF-8?q?=20Ubuntu=2022.04=20Step-by-Step.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cker Swarm on Ubuntu 22.04 Step-by-Step.md | 235 ++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md diff --git a/sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md b/sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md new file mode 100644 index 0000000000..c09c980102 --- /dev/null +++ b/sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md @@ -0,0 +1,235 @@ +[#]: subject: "How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step" +[#]: via: "https://www.linuxtechi.com/how-to-deploy-docker-swarm-on-ubuntu/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step +====== +In this guide, we will cover how to deploy Docker Swarm on Ubuntu 22.04 step-by-step. + +#### What is Docker Swarm? + +Docker Swarm is a container orchestration tool that runs on the Docker platform. It helps users to create and manage a cluster of Docker nodes. Clustering in Docker is a crucial concept in providing redundancy by enabling Docker Swarm to fail over should one or more nodes in the cluster fail. + +Docker Swarm uses the standard Docker API to communicate with other tools such as Docker Engine. It intelligently assigns containers to worker nodes and ensures resource optimization by scheduling container workloads to run on the most suitable node(s) + +##### Lab setup + +To demonstrate how Docker Swarm works, we have a simple cluster that comprises a Swarm Manager node and two worker nodes as shown. The Manager nodes handle all the cluster management tasks while the worker nodes will run the containers. + +* swarm-manager                  10.128.0.57 +* worker-node-1                    10.128.0.58 +* worker-node-2                    10.128.0.59 + +### Step 1) Configure the Cluster hosts file + +To start off, log into each of the nodes and update the /etc/hosts file with the following entries: + +``` +swarm-manager          10.128.0.57 +worker-node-1          10.128.0.58 +worker-node-2          10.128.0.59 +``` + +Next, ensure that all the nodes can ping each other. Therefore, on the manager node, run the commands: + +``` +$ ping -c 4 10.128.0.58 +$ ping -c 4 10.128.0.59 +``` + +On worker Node 1 + +``` +$ ping -c 4 10.128.0.57 +$ ping -c 4 10.128.0.59 +``` + +On worker Node 2 + +``` +$ ping -c 4 10.128.0.57 +$ ping -c 4 10.128.0.58 +``` + +### Step 2) Install Docker CE on all the nodes + +The next step is to install Docker on all the nodes. We are going to install Docker Community Edition (Docker CE) which is free to install and use. + +Therefore, log into each of the nodes and update the local package index. + +``` +$ sudo apt update +``` + +Next, install the prerequisites package needed during the installation + +``` +$ sudo apt install apt-transport-https ca-certificates curl software-properties-common -y +``` + +Once all the packages have been installed, add the Docker GPG key + +``` +$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg +``` + +In the next step, add the official Docker repository to your Ubuntu 22.04 system + +``` +$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +``` + +Next, update the local package index to make the system, aware of the newly added repository. + +``` +$ sudo apt update +``` + +Then install Docker from the official Docker repository, + +``` +$ sudo apt install docker-ce -y +``` + +The command installs Docker alongside additional packages that will be required by Docker to function as expected. + +![Install-docker-ce-apt-command-ubuntu][1] + +Once Docker is installed, add the currently logged-in user to the Docker group to avoid running Docker as a [sudo user][2] every time you run Docker. + +``` +$ sudo usermod -aG docker ${USER} +$ newgrp docker +``` + +### Step 3) Verify Docker is running on all the nodes + +Once installed, the Docker daemon starts automatically. You can verify that the service is running by running the command: + +``` +$ sudo systemctl status docker +``` + +![Docker-Service-Status-Ubuntu-22-04][3] + +Additionally, be sure to enable the Docker service so that it starts automatically on boot time. + +``` +$ sudo systemctl enable docker +``` + +### Step 4) Create Docker Swarm Cluster + +The next step is to initialize the Docker Swarm on the Manager node. Once initialized, we will then add the worker nodes to the cluster. + +To create a Docker Swarm Cluster, run the command: + +``` +$ sudo docker swarm init --advertise-addr 10.128.0.57 +``` + +![Docker-Swarm-Init-Ubuntu-22-04][4] + +Once Docker Swarm has been initialized, a command for joining the worker nodes to the cluster will be displayed on the terminal. Copy the command as you will need to run it on each of the worker nodes as previously mentioned. + +Next, login back to each of the worker nodes and paste the command in order to join the cluster. + +``` +$ sudo docker swarm join --token SWMTKN-1-1k397e5o52cae0yipopqcu9werjcwuss1exbyj4635rrjjl723-7ocx56uhb7p1ri7h2u6ynxyno 10.128.0.57:2377 +``` + +If all goes well, you should get the following output + +Output + +This node joined a swarm as a worker + +![Docker-Swarm-Join-Worker-Nodes-Ubuntu][5] + +Next, confirm that all the nodes have joined the cluster as follows. + +``` +$ sudo docker node ls +``` + +You should get the following output displaying all the nodes in the cluster. + +![List-Nodes-in-docker-Swarm-Ubuntu][6] + +### Step 5) Test Docker Swarm Installation + +To test docker swarm installation, head over to the manager node and deploy a container application to the cluster. In this example, we are deploying an Nginx web server container and mapping it to port 8080 on the host. + +``` +$ sudo docker service create --name web-server --publish 8080:80 nginx:latest +``` + +![Nginx-Based-Service-docker-swarm][7] + +Next, verify the status of the application service deployed. + +``` +$ sudo docker service ls +``` + +![List-Service-in-Docker-Swarm][8] + +### Step 6) Create replicas of the service + +Finally, create three replicas of the service and scale them across both the Docker manager and the worker nodes. + +``` +$ sudo docker service scale web-server=3 +``` + +![Service-Scale-docker-Swarm][9] + +Next, confirm the status of the replicas. This time around, you will notice that we have 3 replicas. + +![Verify-Service-inDocker-Swarm][10] + +At this point, Nginx web server container should be running across all the nodes in the cluster on port 8080. To confirm this, head over to your browser, and access the web server from all the nodes. + +http://manager-node:8080 + +http://worker-node-1:8080 + +http://worker-node-2:8080 + +![Nginx-Sample-Page-Docker-Swarm-Service][11] + +##### Conclusion + +In this guide, we managed to install and configure Docker Swarm. We also went a step further and deployed an application to the cluster and later scaled it across all the nodes in the cluster. + +Read Also: 20 Useful Docker Command Examples in Linux + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-deploy-docker-swarm-on-ubuntu/ + +作者:[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/09/Install-docker-ce-apt-command-ubuntu.png +[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/ +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Docker-Service-Status-Ubuntu-22-04.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Docker-Swarm-Init-Ubuntu-22-04.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Docker-Swarm-Join-Worker-Nodes-Ubuntu.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/09/List-Nodes-in-docker-Swarm-Ubuntu.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nginx-Based-Service-docker-swarm.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/09/List-Service-in-Docker-Swarm.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Service-Scale-docker-Swarm.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Verify-Service-inDocker-Swarm.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nginx-Sample-Page-Docker-Swarm-Service.png From 615f5e991fa5d8cd039205eba0160fc2f059b305 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 5 Sep 2022 22:44:13 +0800 Subject: [PATCH 1004/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220905=203=20things=20to=20know=20about=20planning?= =?UTF-8?q?=20for=20OTA=20updates=20in=20your=20homelab.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lanning for OTA updates in your homelab.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md diff --git a/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md b/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md new file mode 100644 index 0000000000..6b8eaef069 --- /dev/null +++ b/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md @@ -0,0 +1,67 @@ +[#]: subject: "3 things to know about planning for OTA updates in your homelab" +[#]: via: "https://opensource.com/article/22/9/plan-ota-updates-edge" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 things to know about planning for OTA updates in your homelab +====== +Define your over-the-air update plan for mobile phones, IoT devices, and edge computing before you even start coding your app. + +![Why and how to handle exceptions in Python Flask][1] + +Image from Unsplash.com, Creative Commons Zero + +Updates to a system used to be relatively straightforward. When a developer needed to revise something that they'd already distributed to the public, an updater would be released for people to run. Users would run the updater, allowing old files to be replaced by new files and new files to be added. Even with these "relatively straightforward" updates, though, there was a catch. What happens when a user's installation is in an unexpected state? What happens when an upgrade is interrupted? These questions are just as relevant now when all kinds of devices are online, and sometimes in need of important security updates. Many updates today are delivered wirelessly, over-the-air (OTA), and the potential for poor connections, sudden loss of signal, or loss of power, can potentially be disastrous to what should be a minor update. These are the top three strategies you need to consider when planning to deliver over-the-air updates. + +### 1. Verification + +The TCP protocol has a lot of verification built in, so it's usually true that when you [send packets to a device][2], you can be confident that each packet has been received intact. However, TCP can't report errors on something it doesn't know about, so it's up to you to verify things like: + +* Have you sent all files required for the update? A device can't receive what wasn't sent in the first place. +* Are the files received the same as the files you sent? At the very least, check SHA sums to verify file integrity. +* When possible, use [digital signing][3] to ensure that a file is from a trusted source. +* You must verify that the device is able to apply an update before you allow the update to begin. Check permissions and battery state before committing to an update, and ensure that your update process overrides any unexpected user events, like a scheduled reboot or hibernation. +* Finally, you must verify that an update that claims to have completed successfully has actually completed. Check file locations and integrity on the target device before allowing the update to officially be marked as resolved by the system. + +### 2. Fallback and failstates + +The worst-case scenario for an update is that a device is left in a broken state, such that it can't even be used to continue an aborted update. In that scenario, the updater files exist on the target device, but the process has been interrupted. This can leave a device in an unknown state, where some files have been replaced with updated versions, while others haven't been touched. In the worst case, files that have been updated are incompatible with files that haven't yet been updated, and so the device cannot function as expected. + +There are a few strategies to handle this. The initial update step could be to install a special boot image or environment dedicated to completing the update, and setting a "flag" on the system to establish that an update is in progress. This ensures that even when a device suddenly loses power in the middle of an update, the update process is started fresh during the next boot. The flag signaling a successful update is removed only once the update has been verified. + +A special boot image may not be feasible or necessary, depending on the security policy of the target device and what you're updating. The principle remains the same, though. Once it has been started, an update must establish an environment in which the pending update is the only way forward until it's resolved. + +Up until an update has been granted permission to start, though, a user (when there is one) should have the ability to delay or ignore the update. + +### 3. Additive + +In many edge and IoT devices, the foundation of the target device is immutable. Updates only add to a known state of a system. Projects like [Fedora Silverblue][4] are demonstrating that this model can work across many markets, so that luxury might become commonplace. Until then, though, part of successfully applying an update is understanding the environment you're about to affect. + +You don't need an immutable core to apply additive updates, though. You may be able to architect a system to use the same concept, using update as a way to add libraries or packages without revising the old versions. As the final step of such an update, the executable with updated paths is the only actual revision you make. + +### OTA updates + +The world is increasingly wireless. For mobile phones, IoT devices, and [edge computing][5], over-the-air updates are often the only option. Implementing an OTA update policy takes careful planning and careful accounting for improbable scenarios. You know your target devices best, so map out your update schema well before you begin coding so that your initial architecture is designed for robust and safe OTA. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/plan-ota-updates-edge + +作者:[Alan Smithee][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/alansmithee +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/computer_code_programming_laptop.jpg +[2]: https://www.redhat.com/sysadmin/beginners-guide-network-troubleshooting-linux +[3]: https://www.redhat.com/sysadmin/digital-signatures-gnupg +[4]: https://silverblue.fedoraproject.org +[5]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM From 6d5b4173038147339a0b94c2ca6333dacfc27841 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 5 Sep 2022 22:48:40 +0800 Subject: [PATCH 1005/3123] RP @geekpi https://linux.cn/article-15003-1.html --- ...uce the different Fedora Linux editions.md | 91 +++++++++++++++++++ ...uce the different Fedora Linux editions.md | 83 ----------------- 2 files changed, 91 insertions(+), 83 deletions(-) create mode 100644 published/20211203 Introduce the different Fedora Linux editions.md delete mode 100644 translated/tech/20211203 Introduce the different Fedora Linux editions.md diff --git a/published/20211203 Introduce the different Fedora Linux editions.md b/published/20211203 Introduce the different Fedora Linux editions.md new file mode 100644 index 0000000000..fcd24a192f --- /dev/null +++ b/published/20211203 Introduce the different Fedora Linux editions.md @@ -0,0 +1,91 @@ +[#]: subject: "Introduce the different Fedora Linux editions" +[#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/" +[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15003-1.html" + +Fedora Linux 的各种版本 +====== + +![Introduce the differenct Fedora Linux editions][1] + +我们在使用 Fedora Linux 时有不同的偏好。例如,有些人选择 Fedora Linux,是因为 Fedora Workstation 默认使用 GNOME 作为其桌面环境。但也有一些人想使用 Fedora Linux 但想使用不同的桌面环境。或者也有一些人使用 Fedora Linux 有特定的需求,但不想被系统配置和应用安装所困扰。甚至有些人想根据自己的需要自由安装 Fedora Linux。因此 Fedora Linux 根据你的需要提供了多个版本。本文将介绍不同的 Fedora Linux 版本。 + +### Fedora 官方版本 + +我们从 Fedora Linux 的 官方版本Edition 开始,即 Fedora Workstation、Fedora Server 和 Fedora IoT。 Fedora Workstation 是 Fedora Linux 的官方版本,可以安装在笔记本电脑和台式电脑上。此版本附带 GNOME 作为默认桌面环境和各种标准应用,因此 Fedora Linux 已为日常使用做好准备。而 Fedora Server 专门用于服务器用途,提供邮件服务器、DNS 等的安装。最后一个是 Fedora IoT,用于物联网和边缘设备生态系统。 + +在 Fedora 项目网站主页上,你可以找到另外两个版本:Fedora CoreOS 和 Fedora Silverblue。Fedora CoreOS 是一个自动更新的操作系统,旨在安全、大规模地运行容器化工作负载。而 Fedora Silverblue 是一个不可变的桌面操作系统,旨在支持以容器为中心的工作流。 + +![Introduce the different Fedora Linux editions: Fedora Workstation][4] + +更多信息可在此链接获得: + +> **[https://getfedora.org/][5]** + +### Fedora 定制版:可选桌面 + +Fedora 定制版Spin 很受那些非常在意桌面外观的人的欢迎。大多数人都知道 Fedora Linux 只有 GNOME 作为默认桌面环境。即使你真的想使用 GNOME 以外的桌面环境,也有几个替代桌面选项。使用 Fedora 定制版,你可以在安装 Fedora Linux 时立即获得你最喜欢的桌面环境。你可以从 KDE Plasma、XFCE、LXQt、MATE、Cinnamon、LXDE 和 SoaS 中进行选择。此外,对于喜欢平铺窗口管理器的人,Fedora Linux 还提供了 Fedora i3 定制版,其中 i3 作为默认窗口管理器,并附带了几个标准应用。 + +![Introduce the different Fedora Linux editions: Fedora Plasma][6] + +![Introduce the different Fedora Linux editions: Fedora Cinnamon][7] + +更多信息可在此链接获得: + +> **[https://spins.fedoraproject.org/][8]** + +### Fedora 实验室:功能包 + +Fedora 实验室Lab 是根据特定需求打包的 Fedora Linux 软件包集合。因此,这些版本的安装包都根据其功能提供了应用和必要的内容。Fedora 实验室提供多种软件包选择,例如天文学Astronomy计算神经学Comp Neuro设计套件Design Suite游戏Games、JAM、Python 教室Python Classroom安全实验室Security Lab机器人套件Robotics Suite科学Scientific。如果你想使用 Fedora Linux 进行设计工作,那么设计套件是你的正确选择。但是如果你喜欢玩游戏,你可以选择游戏版。 + +![Introduce the different Fedora Linux editions: Fedora Design Suite][9] + +![Introduce the different Fedora Linux editions: Fedora Games][10] + +更多信息可在此链接获得: + +> **[https://labs.fedoraproject.org/][11]** + +### Fedora 的其它下载 + +Fedora 的其它下载Alt Download 集合了特定目的的可选 Fedora Linux 安装程序,例如用于测试或用于特定架构。还有其他可选格式,例如网络安装程序或种子下载等格式。在这里你可以找到网络安装程序Network Installer种子下载Torrent Downloads可选架构Alternative Architectures云基础镜像Cloud Base Images所有内容Everything测试镜像Testing Images 和 Rawhide。 + +更多信息可在此链接获得: + +> **[https://alt.fedoraproject.org/][12]** + +### 总结 + +你可以自由选择适合你偏好的 Fedora Linux 版本,而不是官方版本。但是,如果你想获得具有各种桌面外观的 Fedora Linux,那么 Fedora 定制版适合你。如果你希望 Fedora Linux 根据你的需要包含应用和软件包,你可以选择 Fedora 实验室。但是,如果你是专家并且想要更自由地安装 Fedora Linux,你可以在 Fedora 其它下载处浏览替代选项。希望本文可以帮助你选择合适的 Fedora Linux,并请在评论中分享你使用 Fedora Linux 的经验。 + +(题图由 [Frédéric Perez][2] 发布在 [Unsplash][3]) + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/ + +作者:[Arman Arisman][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/armanwu/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2021/11/FedoraMagz-FedoraEditions-Intro-816x345.png +[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://fedoramagazine.org/wp-content/uploads/2021/11/g-monitor-overview.png +[5]: https://getfedora.org/ +[6]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-kde-1024x640.jpg +[7]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-cinnamon-1024x576.jpg +[8]: https://spins.fedoraproject.org/ +[9]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Design-1024x792.png +[10]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Games-1024x792.png +[11]: https://labs.fedoraproject.org/ +[12]: https://alt.fedoraproject.org/ diff --git a/translated/tech/20211203 Introduce the different Fedora Linux editions.md b/translated/tech/20211203 Introduce the different Fedora Linux editions.md deleted file mode 100644 index e2a979ea3f..0000000000 --- a/translated/tech/20211203 Introduce the different Fedora Linux editions.md +++ /dev/null @@ -1,83 +0,0 @@ -[#]: subject: "Introduce the different Fedora Linux editions" -[#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/" -[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -介绍不同的 Fedora Linux 版本 -====== -![Introduce the differenct Fedora Linux editions][1] - -照片由 [Frédéric Perez][2] 发布在 [Unsplash][3] - -我们对使用 Fedora Linux 有不同的偏好。例如,有些人选择 Fedora Linux,是因为 Fedora Workstation 默认使用 GNOME 作为其桌面环境。但也有一些人想使用 Fedora Linux 但想使用不同的桌面环境。或者也有一些人使用 Fedora Linux 有特定的需求,但不想被系统配置和应用安装所困扰。甚至有些人想根据自己的需要自由安装 Fedora Linux。因此 Fedora Linux 根据你的需要提供了多个版本。本文将介绍不同的 Fedora Linux 版本。 - -### Fedora 官方版 - -我们从 Fedora Linux 的官方版本开始,即 Fedora Workstation、Fedora Server 和 Fedora IoT。 Fedora Workstation 是 Fedora Linux 的官方版本,可以安装在笔记本电脑和台式电脑上。此版本附带 GNOME 作为默认桌面环境和各种标准应用,因此 Fedora Linux 已为日常使用做好准备。而 Fedora Server 专门用于服务器用途,提供邮件服务器、DNS 等的安装。最后一个是 Fedora IoT,用于物联网和边缘设备生态系统。 - -在 Fedora Project 网页的主页上,你可以找到另外两个版本:Fedora CoreOS 和 Fedora Silverblue。Fedora CoreOS 是一个自动更新的操作系统,旨在安全、大规模地运行容器化工作负载。而 Fedora Silverblue 是一个不可变的桌面操作系统,旨在支持以容器为中心的工作流。 - -![Introduce the different Fedora Linux editions: Fedora Workstation][4] - -更多信息可在此链接获得:[https://getfedora.org/][5] - -### Fedora Spins:替代桌面 - -这个版本的 Fedora Linux 很受那些非常在意桌面外观的人的欢迎。大多数人都知道 Fedora Linux 只有 GNOME 作为默认桌面环境。即使你真的想使用 GNOME 以外的桌面环境,也有几个替代桌面选项。使用 Fedora Spins,你可以在安装 Fedora Linux 时立即获得你最喜欢的桌面环境。你可以从 KDE Plasma、XFCE、LXQt、MATE、Cinnamon、LXDE 和 SoaS 中进行选择。此外,对于喜欢平铺窗口管理器的人,Fedora Linux 提供了 Fedora i3 Spin,其中 i3 作为默认窗口管理器,并附带了几个标准应用。 - - -![Introduce the different Fedora Linux editions: Fedora Plasma][6] - -![Introduce the different Fedora Linux editions: Fedora Cinnamon][7] - -更多信息可在此链接获得:[https://spins.fedoraproject.org/][8] - -### Fedora Labs:功能包 - -Fedora Labs 是根据特定需求打包的 Fedora Linux 软件包集合。因此,这些版本的安装包都根据其功能提供了应用和必要的内容。 Fedora Labs 提供多种软件包选择,例如天文学、Comp Neuro、设计套件、游戏、JAM、Python 教室、安全实验室、机器人套件和科学。如果你想使用 Fedora Linux 进行设计工作,那么设计套件是你的正确选择。但是如果你喜欢玩游戏,你可以选择游戏。 - -![Introduce the different Fedora Linux editions: Fedora Design Suite][9] - -![Introduce the different Fedora Linux editions: Fedora Games][10] - -更多信息可在此链接获得:[https://labs.fedoraproject.org/][11] - -### Fedora Alt Downloads - -Fedora Alt Downloads 是具有特定目的的替代 Fedora Linux 安装程序的集合,例如用于测试或用于特定架构。还有其他格式,例如网络安装程序格式或 torrent 下载的格式。在这里你可以找到网络安装程序、Torrent 下载、替代架构、云基础镜像、所有、测试镜像和 Rawhide。 - -更多信息可在此链接获得:[https://alt.fedoraproject.org/][12] - -### 总结 - -你可以自由选择适合你偏好的 Fedora Linux 版本,而不是官方版本。但是,如果你想获得具有各种桌面外观的 Fedora Linux,那么 Fedora Spins 适合你。如果您希望 Fedora Linux 根据你的需要包含应用和软件包,你可以选择 Fedora Labs。但是,如果你是专家并且想要更自由地安装 Fedora Linux,你可以在 Fedora Alt Downloads 处浏览替代选项。希望本文可以帮助你选择合适的 Fedora Linux,并请在评论中分享你使用 Fedora Linux 的经验。 - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/ - -作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/ -[b]: https://github.com/lkxed -[1]: https://fedoramagazine.org/wp-content/uploads/2021/11/FedoraMagz-FedoraEditions-Intro-816x345.png -[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://fedoramagazine.org/wp-content/uploads/2021/11/g-monitor-overview.png -[5]: https://getfedora.org/ -[6]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-kde-1024x640.jpg -[7]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-cinnamon-1024x576.jpg -[8]: https://spins.fedoraproject.org/ -[9]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Design-1024x792.png -[10]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Games-1024x792.png -[11]: https://labs.fedoraproject.org/ -[12]: https://alt.fedoraproject.org/ From 2f1680e1c5eda415d5190397b35bdc414485d6ef Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 5 Sep 2022 22:50:40 +0800 Subject: [PATCH 1006/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020220905=20StackAid=20Helps=20Developers=20Fund=20Hu?= =?UTF-8?q?ndreds=20of=20Open-Source=20Project=20Dependencies=20in=20No=20?= =?UTF-8?q?Time.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-Source Project Dependencies in No Time.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md diff --git a/sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md b/sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md new file mode 100644 index 0000000000..c21fe2ee74 --- /dev/null +++ b/sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md @@ -0,0 +1,91 @@ +[#]: subject: "StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time" +[#]: via: "https://news.itsfoss.com/stackaid-beta/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time +====== +StackAid is an interesting initiative to help developers/contributors fund open-source project dependencies. + +![StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time][1] + +Free and open-source projects empower you with essential tools and services without spending a dime. + +While that sounds exciting, these projects need funding to keep things running and potentially improve your experience with it. + +Fortunately, we have several platforms to support and fund open-source projects: + +[Easily Fund Open Source Projects With These Platforms - It’s FOSS][2] + +But, how can the maintainers/contributors fund the **dependencies associated with their projects?** + +There are potentially hundreds of dependencies in a single project. So, to start funding, some daunting tasks include: + +* Responsibility of supporting open-source projects. +* Selecting a project to fund. +* Deciding on the donation subscription tier for funding for each project. +* Keep track of dependencies to fund. + +Interestingly, there is a service that **solves the problem, i.e. StackAid.** + +### StackAid: What Does it Do? + +> ⚠️ StackAid is not an open-source service, and it's in beta phase, targeted for developers and project contributors who want to fund the dependencies linked to their projects. + +StackAid aims to help you quickly fund the dependencies of your project in one go. + +It finds your project's dependencies (**direct and indirect**) through its GitHub app (**invite-only access**) and allocate funds as per your subscription to distribute it among them. + +![][4] + +The subscription to StackAid starts at **$15**. + +You require your project's **package.json**file or generate a **stackaid.json** file (using [GitHub action][5]) to automate listing the dependencies. Of course, you can edit the list manually and add more as well. + +You also get the ability to select the dependencies you want to support. + +![][6] + +It then automates the funding allocation by evenly distributing your subscription fee among various dependencies. + +Note that StackAid receives the same amount as a direct dependency out of the subscription fee to make money. However, the maximum it takes is **7.5%** of the total subscription fee. + +### How Do Open-Source Projects Get the Money? + +StackAid explains that the open-source projects can claim their repositories by installing the StackAid GitHub app. + +We reached out to them to clarify how the repository owners will get notified/know about StackAid in the first place. And, this was the response: + +StackAid mentions that if a project does not claim the amount allocated to them by subscribers, the amount gets re-allocated to other dependencies that are claimed. This is a good thing. + +You can explore more on their website. + +[StackAid][7] + +The concept sounds nice. And, it will be interesting if this can be a platform for users in the near future (not just developers or maintainers). + +*💬 What do you think about StackAid? Kindly let us know your thoughts in the comments.* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/stackaid-beta/ + +作者:[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/content/images/size/w1200/2022/09/stackaid.jpg +[2]: https://itsfoss.com/open-source-funding-platforms/ +[4]: https://news.itsfoss.com/content/images/2022/09/stackaid_dashboard-1.png +[5]: https://github.com/marketplace/actions/stackaid-dependency-generator +[6]: https://news.itsfoss.com/content/images/2022/09/stackaid_dashboard_manage.png +[7]: https://www.stackaid.us/ From 0edae600c594d2fbc7394d534e761e7f60442d28 Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 5 Sep 2022 22:51:58 +0800 Subject: [PATCH 1007/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220905=20How=20To=20Perform=20Arithmetic=20Operati?= =?UTF-8?q?ons=20In=20Bash.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o Perform Arithmetic Operations In Bash.md | 269 ++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md diff --git a/sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md b/sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md new file mode 100644 index 0000000000..bf81ae4708 --- /dev/null +++ b/sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md @@ -0,0 +1,269 @@ +[#]: subject: "How To Perform Arithmetic Operations In Bash" +[#]: via: "https://ostechnix.com/bash-arithmetic-operations/" +[#]: author: "Karthick https://ostechnix.com/author/karthick/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Perform Arithmetic Operations In Bash +====== +Different Ways To Do Mathematical Operations In Bash + +In this article, we will focus on how to **do mathematical operations in bash scripts**. We can **perform arithmetic operations in Bash** using the built-in and external tools. First, we will learn about the built-in tools. + +**Note:** Unlike other programming languages, bash arithmetic operations are not straight-forward(at least for me). There are multiple bash built-in and external programs to perform the same operations. If you want to perform any complex mathematical computation, then a shell is not a recommended way to do it. + +#### Contents + +1. Do Mathematical Operations In Bash Using The Built-in "let" Command +2. Do Arithmetic Operations In Bash Using The Built-in Double Brackets +3. Perform Arithmetic Operations In Bash Using Expr Utility +4. Perform Bash Arithmetic Operations Using bc Utility +5. Perform Mathematical Operations With AWK +6. Conclusion + +### Do Mathematical Operations In Bash Using The Built-in "let" Command + +Using the `let` command, you can perform arithmetic, incremental, bitwise, and conditional operations. The drawback with the let command is it cannot handle floating point values. + +The `let` command in bash is a built-in command. You can verify that by running the following command in the terminal. + +``` +$ type -a letlet is a shell builtin +``` + +Run the following command to get the help section where you can find the list of operators supported by the ‘let’ command. + +``` +$ let -help +``` + +**Sample output:** + +![Display let Command Help Section][1] + +There are a few essential points to note when working with the let command. + +* The output of any operation should be assigned to a variable and then printed. The ‘let’ command will not allow you to print the outputs straight away. +* No space is allowed between the operator and the operand. + +Create a shell script, copy and paste the below example code and try running the script. In the code given below, I am performing arithmetic operations. As mentioned already, the output of the expression should be assigned to a variable before printing it out. + +``` +#!/usr/bin/env bash + +let NUMBER1=10 +let NUMBER2=3 + +# Addition => + operator +let ADD=$NUMBER1+$NUMBER2 +echo "Addition of two numbers : ${ADD}" + +# Subtraction => - operator +let SUB=$NUMBER1-$NUMBER2 +echo "Subtraction of two numbers : ${SUB}" + +# Multiply => * operator +let MUL=$NUMBER1*$NUMBER2 +echo "Multiply two numbers : ${MUL}" + +# Divide => / operator +let DIV=$NUMBER1/$NUMBER2 +echo "Division of two numbers : ${DIV}" + +# Remainder => % operator +let REM=$NUMBER1%$NUMBER2 +echo "Remainder of two numbers : ${REM}" + +# Exponent => ** operator +let EXPO=$NUMBER1**$NUMBER2 +echo "Exponent of two numbers : ${EXPO}" +``` + +![Do Mathematical Operations In Bash Scripts][2] + +You can also do post increment and post decrement operations too. This operation will be mostly used when we are running loops in the script. + +* The post increment operation will increase the variable value to VARIABLE + 1. +* The pre-increment operation will increase the variable value to VARIABLE - 1. + +``` +let variable++let variable-- +``` + +![Do Post Increment And Post Decrement Operations][3] + +You can also do other comparison operations like checking for equality, inequality, greater than, less than, etc. I would strongly recommend not using the `let` command to do any comparison operations as there are better ways to handle it. + +### Do Arithmetic Operations In Bash Using The Built-in Double Brackets + +As an alternative to the `let` command, you can use the **double brackets** method where you have to place the operator and the operand within the double brackets. + +The advantage of this method over the `let` command is that the result can be straightaway printed or stored in a variable and you can add spaces between the operator and the operand. Similar to the `let` command, you cannot do any floating point operations. + +The example given below is pretty much the same as the examples shown in the `let` command. All you have to do is put your expression inside double brackets. There is no need to prepend the variables with the **$** symbol inside the double brackets. Just give the variable name and the value will be interpreted. + +From the below image, if you can see lines 12 and 13 you will see a difference in how the expression is handled. Anything within the brackets will be first evaluated and the result of it will be computed against other operands. You can see this behavior in the output of **"Multiply"** and **"Multiply1"**. + +![Perform Arithmetic Operations In Bash Scripts Using Double Brackets][4] + +Similar to the `let` command, you can also do post increment and decrement operations. + +``` +((NUMBER2++)((NUMBER1--)) +``` + +You can also perform shorthand operations. + +``` +(( NUMBER2 = NUMBER2 + 10 ))(( NUMBER2 += 10 )) # Shorthand +``` + +![Perform Post Increment And Decrement Operations][5] + +### Perform Arithmetic Operations In Bash Using Expr Utility + +In the previous sections, we have seen about built-in functionality and in this section, we will take a look at **"expr"**, which is an external program. + +Not only the mathematical operations, the expr utility can also do operations on strings like finding the index of a character, length of a string, substring etc. + +Before using the expr program, go through the man page which will give you a fair bit of understanding about this utility. + +``` +$ man expr$ expr -help +``` + +Following is the syntax for the `expr` command: + +``` +$ expr +``` + +The basic arithmetic operation is the same as what we have seen in the previous sections. The only difference here is when using ***** to do a multiplication operation you have to escape it with **"\"** otherwise it will throw an error. + +``` +expr 10 + 3 # Additionexpr 10 - 3 # Subtractionexpr 10 * 3 # Multiplyexpr 10 / 3 # Divideexpr 10 % 3 # Remainder +``` + +![Perform Arithmetic Operations In Bash Using Expr Utility][6] + +Till now we have seen about three different ways to do basic arithmetic and incremental operation. Compared to the `let` and `expr`, the **recommended approach is to use double parentheses**. + +A commonality with these three approaches is that they cannot handle floating point operations. You have to rely on external utilities like `awk` and `bc` to do floating point operations. + +### Perform Bash Arithmetic Operations Using bc Utility + +The **bc** utility is an external program that can be used to do basic as well as complex mathematical operations. **Floating point operation is also supported** by the bc utility. + +You can view the type of the bc utility and its manual page using the following commands: + +``` +$ type -a bc$ man bc +``` + +Following examples show simple mathematical operations with Integer and floating values. + +``` +# Add +$ echo "10 + 100" | bc +=> 110 + +$ echo "10.15 + 11.20" | bc +21.35 + +# Subtract +$ echo "100 - 25" | bc +=> 75 + +$ echo "100 - 25.5" | bc +=> 74.5 + +# Multiply +$ echo "10 * 5" | bc +=> 50 + +$ echo "10.10 * 4" | bc +=> 40.40 +``` + +When doing division operation you have to set the scale value for the result to be printed in floating point value otherwise the result will be an integer value. The value set in the scale decides how many digits to be printed after the decimal. + +``` +# without scale +echo "10.10 / 4" | bc +=> 2 +``` + +``` +# with scaleecho "scale=2;10.10 / 4" | bc=> 2.52 +``` + +You can also do exponent operation. + +``` +$ echo "2.2^4" | bc=> 23.4 +``` + +### Perform Mathematical Operations With AWK + +**Awk** offers more functionality to do mathematical computation compared to other utilities. It has a couple of built-in functions which will make our life easy. + +Below is the syntax to do mathematical computation. + +``` +$ awk "BEGIN {print expression }" +``` + +To perform a simple multiplication, run: + +``` +$ awk "BEGIN {print 23 * 4.5 }"=> 103.5 +``` + +From a floating point value, you can get the integer value alone using the `int` function. + +``` +$ awk "BEGIN{print int(10.111) }"=> 10 +``` + +You can also calculate the square root of a given number using the `sqrt` function. + +``` +$ awk "BEGIN{print sqrt(10) }"=> 3.16228 +``` + +Particularly when working with CSV files I often end up in situations to compute the average of a column. You can simply calculate the average of a column with the following code. + +Since this is a CSV file, I am setting the field separator to(-F “,”). Here the entire second column is first added and divided by the NR(number of records). + +``` +$ awk -F "," '{sum+=$2} END { print "average value from column 2 = ",sum/NR}' data.csv +``` + +We will post a detailed guide about **awk** in the days to come. + +### Conclusion + +In this article, I have shown you various methods to perform simple mathematical operations in Bash. If you are performing very simple arithmetic operations, stick with the double bracket approach and for more complex operations use awk. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/bash-arithmetic-operations/ + +作者:[Karthick][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/karthick/ +[b]: https://github.com/lkxed +[1]: https://ostechnix.com/wp-content/uploads/2022/09/Display-let-Command-Help-Section.png +[2]: https://ostechnix.com/wp-content/uploads/2022/09/Do-Mathematical-Operations-In-Bash-Scripts.png +[3]: https://ostechnix.com/wp-content/uploads/2022/09/Do-Post-Increment-And-Post-Decrement-Operations.png +[4]: https://ostechnix.com/wp-content/uploads/2022/09/Perform-Arithmetic-Operations-In-Bash-Scripts-Using-Double-Brackets.png +[5]: https://ostechnix.com/wp-content/uploads/2022/09/Perform-Post-Increment-And-Decrement-Operations.png +[6]: https://ostechnix.com/wp-content/uploads/2022/09/Perform-Arithmetic-Operations-In-Bash-Using-Expr-Utility.png From f13910aa93af6f133c4c10c7b26e9cbf3cd1eaca Mon Sep 17 00:00:00 2001 From: lkxed Date: Mon, 5 Sep 2022 22:52:48 +0800 Subject: [PATCH 1008/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220905=20Manage=20containers=20on=20Fedora=20Linux?= =?UTF-8?q?=20with=20Podman=20Desktop.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ers on Fedora Linux with Podman Desktop.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md diff --git a/sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md b/sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md new file mode 100644 index 0000000000..d7bb9a8147 --- /dev/null +++ b/sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md @@ -0,0 +1,142 @@ +[#]: subject: "Manage containers on Fedora Linux with Podman Desktop" +[#]: via: "https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/" +[#]: author: "Mehdi Haghgoo https://fedoramagazine.org/author/powergame/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manage containers on Fedora Linux with Podman Desktop +====== +![][1] + +Podman Desktop is an open-source GUI application for managing containers on Linux, macOS, and Windows. + +Historically, developers have been using Docker Desktop for graphical management of containers. This worked for those who had Docker Daemon and Docker CLI installed. However, for those who used Podman daemon-less tool, although there were a few Podman frontends like [Pods][2], [Podman desktop companion][3], and [Cockpit][4], there was no official application. This is not the case anymore. Enter Podman Desktop! + +This article will discuss features, installation, and use of Podman Desktop, which is developed by developers from Red Hat and other open-source contributors. + +### Installation + +To install Podman Desktop on Fedora Linux, head over to [podman-desktop.io][5], and click the *Download for Linux* button. You will be presented with two options: Flatpak and zip. In this example we are using Flatpak. After clicking *Flatpak*, open it in GNOME Software by double clicking the file (if you are using GNOME). You can also install it via the terminal: + +``` +flatpak install podman-desktop-X.X.X.flatpak +``` + +In the above command, replace X.X.X with the specific version you have downloaded. If you downloaded the zip file, then extract the archive, and launch the *Podman Desktop* application binary. You can also find pre-release versions by going to the project’s [releases][6] page on GitHub. + +### Features + +Podman Desktop is still in its early days. Yet, it supports many common container operations like creating container images, running containers, etc. In addition, you can find a Podman extension under Extensions Catalog in Preferences, which you can use to manage Podman virtual machines on macOS and Windows. Futhermore, Podman Desktop has support for Docker Desktop extensions. + +You can install such extensions in the Docker Desktop Extensions section under Preferences. The application window has two panes. The left narrow pane shows different features of the application and the right pane is the content area, which will display relevant information given what is selected on the left. + +![Podman Desktop 0.0.6 running on Fedora 36][7] + +### Demo + +To get an overall view of Podman Desktop’s capabilities, we will create an image from a Dockerfile and push it to a registry, then pull and run it, all from within Podman Desktop. + +#### Build image + +The first step is to create a simple Dockerfile by entering the following lines in the command line: + +``` +cat <>Dockerfile +FROM docker.io/library/httpd:2.4 +COPY . /var/www/html +WORKDIR /var/www/html + +CMD ["httpd", "-D", "FOREGROUND"] +EOF +``` + +Now, go to the Images section and press the Build Image button. You will be taken to a new page to specify the Dockerfile, build context and image name. Under Containerfile path, click and browse to pick your Dockerfile. Under image name, enter a name for your image. You can specify a fully qualified image name (FQIN) in the form example.com/username/repo:tag if you want to push the image to a container registry. In this example, I enter quay.io/codezombie/demo-httpd:latest, because I have a public repository named demo-httpd on quay.io. You can follow a similar format to specify your FQIN pointing to your container registry (Quay, Docker Hub, GitHub Container Registry, etc.). Now, press *Build* and wait for the build to complete. + +#### Push image + +Once the build is finished, it’s time to push the image. So, we need to configure a registry in Podman Desktop. Go to Preferences, Registries and press *Add registry.* + +![Add Registry dialog][8] + +In the Add Registry dialog, enter your registry server address, and your user credentials and click ADD REGISTRY. + +Now, I go back to my image in the list of images and push it to the repository by pressing the upload icon. When you hover over the image name that starts with the name of the registry added in the settings (quay.io in this demo), a push button appears alongside the image name. + +![The push button that appears when you hover over the image name][9] + +![Image pushed to repository via Podman Desktop][10] + +Once the image is pushed, anyone with access to the image repository can pull it. Since my image repository is public, you can easily pull it in Podman Desktop. + +#### Pull image + +So, to make sure things work, remove this image locally and pull it in Podman Desktop. Find the image in the list and remove it by pressing the *delete* icon. Once the image is removed, click the *Pull Image* button. Enter the fully qualified name in the *Image to Pull* section and press *Pull image*. + +![Our container image is successfully pulled][11] + +#### Create a container + +As the last part in our Podman Desktop demo, let us spin up a container from our image and check the result. I go to *Containers* and press *Create Container*. This will open up a dialog with two choices: *From Containerfile/Dockerfile*, and *From existing image*. Press *From existing image*. This takes us to the list of images. There, select the image we pulled. + +![Create a container in Podman Desktop][12] + +Now, we select our recently-pulled image from the list and press the *Play* button in front of it. In the dialog that appears, I enter demo-web as *Container Name* and 8000 as *Port Mapping*, and press *Start Container*. + +![Container configuration][13] + +The container starts running and we can check out our Apache server’s default page by running the following command: + +``` +curl http://localhost:8000 +``` + +![It works!][14] + +You should also be able to see the running container in the Containers list, with its status changed to *Running*. There, you will find available operations in front of the container. For example, you can click the terminal icon to open a TTY into the container! + +![][15] + +### What Comes Next + +Podman Desktop is still young and under [active development][16]. There is a project [roadmap][17] on GitHub with a list of exciting and on-demand features including: + +* Kubernetes Integration +* Support for Pods +* Task Manager +* Volumes Support +* Support fo Docker Compose +* Kind Support + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/ + +作者:[Mehdi Haghgoo][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://fedoramagazine.org/author/powergame/ +[b]: https://github.com/lkxed +[1]: https://fedoramagazine.org/wp-content/uploads/2022/09/podman-desktop-on-fedora-816x345.jpg +[2]: https://github.com/marhkb/pods +[3]: https://github.com/iongion/podman-desktop-companion +[4]: https://github.com/cockpit-project/cockpit/ +[5]: https://podman-desktop.io/ +[6]: https://github.com/containers/podman-desktop/releases/ +[7]: https://fedoramagazine.org/wp-content/uploads/2022/08/pd.png +[8]: https://fedoramagazine.org/wp-content/uploads/2022/08/registry.png +[9]: https://fedoramagazine.org/wp-content/uploads/2022/08/image.png +[10]: https://fedoramagazine.org/wp-content/uploads/2022/08/Screenshot-from-2022-08-27-23-51-38.png +[11]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-2.png +[12]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-3.png +[13]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-5.png +[14]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-6.png +[15]: https://fedoramagazine.org/wp-content/uploads/2022/09/image-2-1024x393.png +[16]: https://github.com/containers/podman-desktop +[17]: https://github.com/orgs/containers/projects/2 From e2711c16e07014162d2fdeb0bffbe787107dd879 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 6 Sep 2022 08:27:12 +0800 Subject: [PATCH 1009/3123] translated --- ...uspend Ubuntu When Laptop Lid is Closed.md | 90 ------------------- ...uspend Ubuntu When Laptop Lid is Closed.md | 90 +++++++++++++++++++ 2 files changed, 90 insertions(+), 90 deletions(-) delete mode 100644 sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md create mode 100644 translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md diff --git a/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md b/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md deleted file mode 100644 index 04d142d270..0000000000 --- a/sources/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "Don’t Suspend Ubuntu When Laptop Lid is Closed" -[#]: via: "https://itsfoss.com/laptop-lid-suspend-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Don’t Suspend Ubuntu When Laptop Lid is Closed -====== -If you use Ubuntu on a laptop, you might have noticed that the system is suspended when you close the lid. - -That’s the expected behavior. It saves the battery as well as your work. You lift the lid, the system wakes up, and you can log in and continue your work. - -That all sounds good except when you work with a multi-monitor setup. A few people, like me, prefer to have the laptop closed and only use the external monitor(s). - -But if closing the laptop lid suspends the system, it creates a problem. - -Let me show you how you can change this behavior. - -### Don’t suspend when laptop lid is closed - -Actually, I have noticed that the recent versions of Ubuntu are smarter in this sense. When the laptop is connected to a docking station and you close the lid, it doesn’t go in suspend mode. - -That’s the normal expected behavior but it may not work all the time for reasons known to Ubuntu gods. - -The good thing is that you can force change this behavior using both GUI and command line. - -Let me share both methods. - -#### Method 1: Using GNOME Tweaks - -If you are using the default GNOME desktop, you are in luck. [Install GNOME Tweaks tool in Ubuntu][1] from the software center or use this command: - -``` -sudo apt install gnome-tweaks -``` - -Once installed, start the Tweaks application. In the **General tab** from the sidebar, **toggle off the ‘Suspend when laptop lid is closed’ button**. - -![change lid close behavior ubuntu][2] - -That’s it. You should not need a restart for changes to take effect. - -Now, let’s talk about the command line method. - -#### Method 2: Change login configuration (for advanced users) - -If you look into the content of the file /etc/systemd/logind.conf, you’ll see three different types of default settings for the laptop lid closing. - -* HandleLidSwitch: When the laptop is on battery power -* HandleLidSwitchExternalPower: When the laptop is plugged into a power outlet -* HandleLidSwitchDocked: When the laptop is connected to a docking station - -![Default laptop lid closing settings][3] - -As you can see, the laptop will suspend if the lid is closed irrespective of whether it is connected to power or not. Lid closing is ignored for docking station connections. - -If you want, you can change the value of those parameters to one of these as per your preference: - -* lock: lock when lid is closed -* ignore: do nothing -* poweroff: shutdown -* hibernate: hibernate when lid is closed - -I would suggest going with `ignore` if you don’t want your system do anything special when the laptop lid is closed. - -You can either edit the /etc/systemd/logind.conf file and uncomment the said settings and change their value, or you create a new file in /etc/systemd/logind.conf.d directory. Create this directory if it doesn’t exist. - -I am not going to give you the exact commands. If you are familiar with the command line, you should be able to do it. If you are uncomfortable with the command line, please stick with the earlier GUI method. - -I hope this helps you. Let me know if you have any questions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/laptop-lid-suspend-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/gnome-tweak-tool/ -[2]: https://itsfoss.com/wp-content/uploads/2022/08/change-lid-close-behavior-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/08/laptop-lid-settings-ubuntu.png diff --git a/translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md b/translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md new file mode 100644 index 0000000000..47f1b610b8 --- /dev/null +++ b/translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md @@ -0,0 +1,90 @@ +[#]: subject: "Don’t Suspend Ubuntu When Laptop Lid is Closed" +[#]: via: "https://itsfoss.com/laptop-lid-suspend-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +笔记本电脑合盖时不挂起 Ubuntu +====== +如果你在笔记本电脑上使用 Ubuntu,你可能已经注意到当你合上盖子时系统处于挂起状态。 + +这是预期的行为。它可以节省电池和你的工作。你掀开盖子,系统唤醒,你可以登录并继续工作。 + +这一切听起来都不错,除非你使用多显示器设置。像我这样的一些人更喜欢关闭笔记本电脑,只使用外接显示器。 + +但是,如果关闭笔记本电脑盖会挂起系统,那么会产生问题。 + +让我告诉你如何改变这种行为。 + +### 关闭笔记本电脑盖时不要挂起 + +实际上,我注意到最近的 Ubuntu 版本在这个情况下更智能。当笔记本电脑连接到扩展坞并合上盖子时,它不会进入挂起模式。 + +这是正常的预期行为,但由于 Ubuntu 之神才知的原因,它可能不会一直有效。 + +好消息是你可以使用 GUI 和命令行强制更改此行为。 + +让我分享这两种方法。 + +#### 方法 1:使用 GNOME Tweaks + +如果你使用的是默认的 GNOME 桌面,那么你很幸运。 [在 Ubuntu 的软件中心安装 GNOME Tweaks 工具][1]或使用以下命令: + +``` +sudo apt install gnome-tweaks +``` + +安装后,启动 Tweaks 应用。在侧边栏的**常规选项卡**中,**关闭“关闭笔记本电脑盖时观其”按钮**。 + +![change lid close behavior ubuntu][2] + +这就好了。你不需要重启即可使更改生效。 + +现在,让我们谈谈命令行方法。 + +#### 方法 2:更改登录配置(针对高级用户) + +如果你查看文件 /etc/systemd/logind.conf 的内容,你将看到三种不同类型的笔记本电脑合盖默认设置。 + +* HandleLidSwitch:当笔记本电脑使用电池供电时 +* HandleLidSwitchExternalPower:当笔记本电脑插入电源插座时 +* HandleLidSwitchDocked:当笔记本电脑连接到扩展坞时 + +![Default laptop lid closing settings][3] + +如你所见,如果合上盖子,笔记本电脑将挂起,无论它是否连接到电源。连接扩展坞忽略合盖。 + +如果需要,你可以根据自己的喜好将这些参数的值更改为其中之一: + +* lock:合盖时锁定 +* ignore:什么都不做 +* poweroff:关机 +* hibernate:合盖时休眠 + +如果你不希望你的系统在笔记本电脑盖合上时执行任何特殊操作,我建议你使用 `ignore`。 + +你可以编辑 /etc/systemd/logind.conf 文件并取消注释上述设置并更改其值,或者在 /etc/systemd/logind.conf.d 目录中创建一个新文件。如果此目录不存在,请创建此目录。 + +我不会给你确切的命令。如果你熟悉命令行,你应该可以做到。如果你对命令行感到不舒服,请使用前面的 GUI 方法。 + +我希望这可以帮助你。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/laptop-lid-suspend-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/gnome-tweak-tool/ +[2]: https://itsfoss.com/wp-content/uploads/2022/08/change-lid-close-behavior-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/laptop-lid-settings-ubuntu.png From ea284c1fd96658d972a00b75a4c461d6a51c81e8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 6 Sep 2022 08:34:00 +0800 Subject: [PATCH 1010/3123] translating --- ...gs to know about planning for OTA updates in your homelab.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md b/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md index 6b8eaef069..697a1f2649 100644 --- a/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md +++ b/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/9/plan-ota-updates-edge" [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From eb5a53fe3a2aa872dc33ef5edad8448489bff323 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 6 Sep 2022 09:12:36 +0800 Subject: [PATCH 1011/3123] RP @geekpi https://linux.cn/article-15004-1.html --- ... analyze my music directory with Groovy.md | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) rename {translated/tech => published}/20220826 How I analyze my music directory with Groovy.md (60%) diff --git a/translated/tech/20220826 How I analyze my music directory with Groovy.md b/published/20220826 How I analyze my music directory with Groovy.md similarity index 60% rename from translated/tech/20220826 How I analyze my music directory with Groovy.md rename to published/20220826 How I analyze my music directory with Groovy.md index 4b3a3d2fdd..529075959c 100644 --- a/translated/tech/20220826 How I analyze my music directory with Groovy.md +++ b/published/20220826 How I analyze my music directory with Groovy.md @@ -3,51 +3,54 @@ [#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15004-1.html" 我如何使用 Groovy 分析我的音乐目录 ====== -为了简化 Java 的繁琐,我制作了一个 Groovy 工具来分析我的音乐目录。 -最近,我一直在研究 Groovy 是如何简化 Java 的轻微繁琐的。在这篇文章中,我开始了一个简短的系列,通过创建一个分析我的音乐目录的工具来演示 Groovy 脚本。 +![](https://img.linux.net.cn/data/attachment/album/202209/06/091157xsta20az0az0ws0k.jpg) -在本文中,我将演示 `groovy.File` 类如何扩展和精简 `java.File` 并简化其使用。这为查看音乐文件夹的内容提供了一个框架,以确保预期的内容(例如,`cover.jpg` 文件)就位。我使用 [JAudiotagger library][2] 来分析任何音乐文件的标签。 +> 为了简化 Java 的繁琐,我制作了一个 Groovy 工具来分析我的音乐目录。 + +最近,我一直在研究 Groovy 是如何简化略微繁琐的 Java 的。在这篇文章中,我开始了一个简短的系列,通过创建一个分析我的音乐目录的工具来演示 Groovy 脚本。 + +在本文中,我将演示 `groovy.File` 类如何扩展和精简 `java.File` 并简化其使用。这为查看音乐文件夹的内容提供了一个框架,以确保预期的内容(例如,`cover.jpg` 文件)就位。我使用 [JAudiotagger 库][2] 来分析音乐文件的标签。 ### 安装 Java 和 Groovy -Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的版本可能都在你的 Linux 发行版的仓库中。 Groovy 也可以直接从 [Apache Foundation 网站][3]安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][4],它可用于获取 Java、Groovy 和许多其他相关工具的多个版本。对于本文,我使用以下 SDK 版本: +Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的版本可能都在你的 Linux 发行版的仓库中。 Groovy 也可以直接从 [Apache Foundation 网站][3] 安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][4],它可用于获取 Java、Groovy 和许多其他相关工具的多个版本。对于本文,我使用以下 SDK 版本: * Java:版本 11.0.12-open 的 OpenJDK 11 * Groovy:版本 3.0.8 ### 音乐元数据 -最近,我整合了我的音乐消费选择。我决定使用优秀的开源 [Cantata][5] 音乐播放器,它是开源 [MPD 音乐播放器][6]的一个前端。我所有的电脑的音乐都存储在 `/var/lib/mpd/music` 目录下。在该音乐目录下有艺术家子目录,在每个艺术家子目录下有专辑子目录,包含音乐文件、`cover.jpg`,偶尔还有 PDF 格式的内页说明。 +最近,我重整了我的音乐消费方式。我决定使用优秀的开源 [Cantata][5] 音乐播放器,它是开源 [MPD 音乐播放器][6] 的一个前端。我所有的电脑的音乐都存储在 `/var/lib/mpd/music` 目录下。在该音乐目录下有艺术家子目录,在每个艺术家子目录下有专辑子目录,包含音乐文件、`cover.jpg`,偶尔还有 PDF 格式的内页说明。 -几乎我所有的音乐文件都是 FLAC 格式的,有一些是 MP3 格式,可能还有一小部分是 OGG 格式。我选择 JAudiotagger 库的一个原因是它透明地处理不同的标签格式。当然,JAudiotagger 是开源的! +我绝大部分的音乐文件都是 FLAC 格式的,有一些是 MP3 格式,可能还有一小部分是 OGG 格式。我选择 JAudiotagger 库的一个原因是它可以透明地处理不同的标签格式。当然,JAudiotagger 是开源的! -那么查看音频标签有什么意义呢?以我的经验,音频标签的管理极差。脑海中浮现出“粗心”这个词。但这可能是对我自己学究倾向的认可,也是对标签本身的真正问题的认可。无论如何,这是一个可以通过使用 Groovy 和 JAudiotagger 解决的重要问题。不过,它不仅适用于音乐收藏。许多其他现实世界的问题包括需要下降文件系统中的目录树来处理在那里找到的内容。 +那么查看音频标签有什么意义呢?以我的经验,音频标签的管理极差。(提到音频标签,)我的脑海中浮现出“粗心”这个词。这是标签本身真正存在的问题,也可能是出于我自己的学究倾向。无论如何,这是一个可以通过使用 Groovy 和 JAudiotagger 解决的重要问题。不过,它不仅适用于音乐收藏。许多其他现实世界的问题也适用,如需要下沉到文件系统中的目录树来处理在那里找到的内容。 ### 使用 Groovy 脚本 -这是此任务所需的基本代码。我在脚本中加入了评论,这些评论反映了我通常留给自己的(相对缩写的)“评论注释”: +这是此任务所需的基本代码。我在脚本中加入了注释,这些注释反映了我通常留给自己的(相对简写的)“注释提醒”: ``` -1 // Define the music libary directory +1 // 定义音乐库目录 2 def musicLibraryDirName = '/var/lib/mpd/music' -3 // Print the CSV file header +3 // 输出 CSV 文件标题行 4 println "artistDir|albumDir|contentFile" -5 // Iterate over each directory in the music libary directory -6 // These are assumed to be artist directories +5 // 迭代音乐库目录中的每个目录 +6 // 这一层应该是艺术家目录 7 new File(musicLibraryDirName).eachDir { artistDir -> -8 // Iterate over each directory in the artist directory -9 // These are assumed to be album directories +8 // 迭代艺术家目录中的每个目录 +9 // 这一层应该是专辑目录 10 artistDir.eachDir { albumDir -> -11 // Iterate over each file in the album directory -12 // These are assumed to be content or related -13 // (cover.jpg, PDFs with liner notes etc) +11 // 迭代专辑目录中的每个目录 +12 // 这里应该是内容 +13 // 或相关内容(如 `cover.jpg`,PDF 格式的内页说明) 14 albumDir.eachFile { contentFile -> 15 println "$artistDir.name|$albumDir.name|$contentFile.name" 16 } @@ -59,13 +62,13 @@ Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的 第 7 行创建一个新的 `groovy.File` 对象并在其上调用 `groovy.File.eachDir()`,第 7 行的 `{` 和第 18 行的结尾的 `}` 之间的代码是传给 `eachDir()` 的 `groovy.Colsue` 参数。 -这意味着 `eachDir()` 为目录中找到的每个子目录执行该代码。这类似于 Java *lambda*(也称为“匿名函数”)。 Groovy 闭包不会像 lambda 那样限制对调用环境的访问(在最新版本的 Groovy 中,如果你愿意,可以使用 Java lambdas)。如上所述,音乐库目录中的子目录应该是艺术家目录(例如,“Iron Butterfly” 或 “Giacomo Puccini”),因此 `artistDir` 是 `eachDir()` 传递给闭包的参数。 +这意味着 `eachDir()` 为目录中找到的每个子目录执行该代码。这类似于 Java *lambda*(也称为“匿名函数”)。 Groovy 闭包不会像 lambda 那样限制对调用环境的访问(在最新版本的 Groovy 中,如果你愿意,也可以使用 Java lambda)。如上所述,音乐库目录中的子目录应该是艺术家目录(例如,“Iron Butterfly” 或 “Giacomo Puccini”),因此 `artistDir` 是 `eachDir()` 传递给闭包的参数。 第 10 行对每个 `artistDir` 调用 `eachDir()`,第 10 行的 `{` 和第 17 行的 `}` 之间的代码形成另一个处理 `albumDir` 的闭包。 第 14 行,在每个 `albumDir` 上调用 `eachFile()`,第 14 行的 `{` 和第 16 行的 `}` 之间的代码形成了处理专辑内容的第三级闭包。 -在本文的范围内,我对每个文件唯一需要做的就是开始构建信息表,我将其创建为一个以条形分隔的 CSV 文件,它可以导入 [LibreOffice][7] 或[OfficeOnly][8] 或任何其他电子表格。现在,代码输出前三列:艺术家目录名、专辑目录名和内容文件名(同样,第 2 行输出 CSV 标题行)。 +在本文的范围内,我对每个文件唯一需要做的就是开始构建信息表,我将其创建为一个以竖线分隔的 CSV 文件,它可以导入 [LibreOffice][7] 或 [OfficeOnly][8] 或任何其他电子表格。现在,代码输出前三列:艺术家目录名、专辑目录名和内容文件名(同样,第 2 行输出 CSV 标题行)。 在我的 Linux 笔记本电脑上运行它会产生以下输出: @@ -112,7 +115,7 @@ via: https://opensource.com/article/22/8/groovy-script-java-music 作者:[Chris Hermansen][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/) 荣誉推出 From a56762db5b5947f9c48ab52ef669aba2ed86e357 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 6 Sep 2022 09:22:55 +0800 Subject: [PATCH 1012/3123] R --- ... analyze my music directory with Groovy.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/published/20220826 How I analyze my music directory with Groovy.md b/published/20220826 How I analyze my music directory with Groovy.md index 529075959c..8a0a711353 100644 --- a/published/20220826 How I analyze my music directory with Groovy.md +++ b/published/20220826 How I analyze my music directory with Groovy.md @@ -38,24 +38,24 @@ Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的 这是此任务所需的基本代码。我在脚本中加入了注释,这些注释反映了我通常留给自己的(相对简写的)“注释提醒”: ``` -1 // 定义音乐库目录 -2 def musicLibraryDirName = '/var/lib/mpd/music' -3 // 输出 CSV 文件标题行 -4 println "artistDir|albumDir|contentFile" -5 // 迭代音乐库目录中的每个目录 -6 // 这一层应该是艺术家目录 -7 new File(musicLibraryDirName).eachDir { artistDir -> -8 // 迭代艺术家目录中的每个目录 -9 // 这一层应该是专辑目录 -10 artistDir.eachDir { albumDir -> -11 // 迭代专辑目录中的每个目录 -12 // 这里应该是内容 -13 // 或相关内容(如 `cover.jpg`,PDF 格式的内页说明) -14 albumDir.eachFile { contentFile -> -15 println "$artistDir.name|$albumDir.name|$contentFile.name" -16 } -17 } -18 } +// 定义音乐库目录 +def musicLibraryDirName = '/var/lib/mpd/music' +// 输出 CSV 文件标题行 +println "artistDir|albumDir|contentFile" +// 迭代音乐库目录中的每个目录 +// 这一层应该是艺术家目录 +new File(musicLibraryDirName).eachDir { artistDir -> + // 迭代艺术家目录中的每个目录 + // 这一层应该是专辑目录 + artistDir.eachDir { albumDir -> + // 迭代专辑目录中的每个目录 + // 这里应该是内容 + // 或相关内容(如 `cover.jpg`,PDF 格式的内页说明) + albumDir.eachFile { contentFile -> + println "$artistDir.name|$albumDir.name|$contentFile.name" + } + } +} ``` 如上所述,我使用 `groovy.File` 在目录树中移动。具体来说: From 078cddf2fe69e95910b47031f87a4290db54dea3 Mon Sep 17 00:00:00 2001 From: Donkey-Hao <58808837+Donkey-Hao@users.noreply.github.com> Date: Tue, 6 Sep 2022 21:37:48 +0800 Subject: [PATCH 1013/3123] half --- ...the Difference Between macOS and Linux-.md | 207 +++++++++--------- 1 file changed, 100 insertions(+), 107 deletions(-) diff --git a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md index bb9e78a357..c9494b54ce 100644 --- a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md +++ b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md @@ -1,99 +1,92 @@ -[#]: subject: "What is the Difference Between macOS and Linux?" -[#]: via: "https://itsfoss.com/mac-linux-difference/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " -What is the Difference Between macOS and Linux? +macOS 和 Linux 有什么区别? ====== -We often[compare Linux with Windows][1], but what about comparing it with macOS? +我们经常对比 [Linux 和 Windows 的区别][1],那 macOS 和 Linux 有什么区别呢? -While the differences between Linux and Windows are quite obvious, Linux and macOS may seem similar to many. +虽然 Linux 和 Windows 的差异很明显,但是 Linux 和 macOS 却很相似。 +二者都可以在命令行中运行 Unix 命令,并且与用户在 Windows 中的体验大相径庭。同时,并不是所有 Windows 上的应用和游戏可以在 macOS 和Linux 上运行。 Both can run Unix commands in the terminal, and the user experience is vastly different from Windows. And not all Windows applications and games are available for macOS and Linux. -This is why some people even think Apple’s macOS is based on Linux. But that is not the case. macOS is not Linux despite the similarities. +这就是为什么一些人认为苹果公司的 macOS 是基于 Linux 的系统。尽管有相似之处,但 macOS 并不是 Linux。 -There are plenty of differences between the two UNIX-like operating systems and I shall highlight both the similarities and the differences in this article. +这两个类 Unix 的操作系统有很多不同之处,我将在这篇文章中指出二者的异同之处。 -So, let’s compare Apple and Orange Penguin. +那就让我们来比较一下苹果和橙色企鹅吧。 -### macOS vs. Linux: Origins +### macOS vs. Linux:起源 -macOS has a fascinating history. The foundation of it was built by Steve Jobs’s NeXT computer company when he wasn’t at Apple. Technically, it was based on the [Mach Kernel][2] and the UNIX-derived BSD. +macOS 有一段迷人的历史。它是由史蒂夫·乔布斯的计算机公司 NeXT 所开发的,那时候乔布斯不在苹果公司工作。从技术上讲,它是基于 [Mach 内核][2] 和 Unix 派生的 BSD。 -Back then, a [NeXTSTEP][3] operating system was created to power the devices/computers built by **NeXT**. While it got some attention, it wasn’t a big success. Apple later acquired NeXT and brought back Steve onboard as part of the deal, making NeXTSTEP OS the base for macOS. +那时候,**NeXT** 开发了 [NeXTSTEP][3] 操作系统来驱动它设计的设备和电脑。尽管有一些人注意到了该操作系统,但是它未获得成功。之后,苹果公司以恢复史蒂夫董事会席位为交易的一部分,收购了 NeXT 公司,使得 NeXTSTEP OS 成为 macOS 的基础。 -This is why macOS has a combination of Unix components along with Apple’s proprietary technologies. +这就是为什么 macOS 是 Unix 组件和苹果公司独家技术相结合的操作系统。 -**On the contrary**, Linux (the kernel) was built as a free and open-source replacement for Unix. +**相反**,Linux (内核)是自由并开源的 Unix 的替代品。 -Linux is not an operating system but needs different components like [desktop environments][4] to form an operating system. There are [hundreds of Linux-based operating systems][5] called distributions. +Linux 不是一个操作系统,它需要一些组件比如 [桌面环境][4] 才能成为一个操作系统。有许多 [基于 Linux 的操作系统][5],称之为发行版 (distributions) 。 -For simplicity, we tend to address it as **Linux** OS instead of a specific Linux distribution. +简单起见,我们将这些操作系统成为 **Linux** 操作系统而不是特定的发行版。 -### macOS kernel vs Linux kernel +### macOS 内核 vs Linux 内核 -The macOS kernel is officially known as XNU. The [acronym][6] stands for “XNU is Not Unix.” According to [Apple’s Github page][7], XNU is “a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and C++ API for writing drivers”. The BSD subsystem part of the code is [“typically implemented as user-space servers in microkernel systems”][8]. The Mach part is responsible for low-level work, such as multitasking, protected memory, virtual memory management, kernel debugging support, and console I/O. +macOS 内核的官方名称为 XNU。 [首字母缩略词][6] 代表 “XNU 不是 Unix”。根据 [苹果公司的 Github 页面][7],XNU 是“将卡内基梅隆大学开发的 Mach 内核,与来自 FreeBSD 的组件,和用于编写驱动程序的 C++ API 相结合的一个混合内核”。代码的 BSD 子系统部分是 [“在微内核系统中实现用户空间服务”][8]。 Mach 部分负责底层工作,例如多任务处理、受保护内存、虚拟内存管理、内核调试支持和控制台 I/O。 -While the macOS kernel combines the feature of a microkernel ([Mach][9])) and a monolithic kernel ([BSD][10]), Linux is solely a monolithic kernel. A [monolithic kernel][11] is responsible for managing the CPU, memory, inter-process communication, device drivers, file system, and system server calls. +虽然 macOS 内核结合了微内核 ([Mach][9]) 和单片内核 ([BSD][10]) 的特性,但 Linux 只是一个单片内核。 [单片内核][11] 负责管理 CPU、内存、进程间通信、设备驱动程序、文件系统和系统服务器调用。 -### Here’s What They Have in Common +### 二者共同之处 -macOS utilizes Unix components, and Linux was built as an alternative to Unix. So, what do we have in common here? +macOS 利用 Unix 组件,而 Linux 是作为 Unix 的替代品而构建的。那么,二者有什么共同点? -Both give access to **Unix commands, bash/zsh, and other shells**. +二者都可以使用 **Unix 命令、bash/zsh、以及其他 shell**。 -The [default shell][12] can be different, but you can always change it as per your preferences. +或许 [默认 shell][12] 会有所不同,但是你可以根据你的喜好进行设置。 -That’s about it. I can’t think of anything else similar between the two. +除此之外,我想不到二者还有什么相似之处。 -Probably a decade back, we could say that both Linux/macOS offered fewer applications. +大概在十年前,我们可以说 Linux/macOS 都提供了更少的应用程序。 -But that’s not the case anymore. +但时过境迁。 -The software ecosystem and game support for both have evolved over the years, which we will discuss later in this article. +多年来,二者的软件生态和游戏支持都在不断发展,我们将在本文后面讨论。 -### Codebase: Proprietary vs. Open-Source +### 代码库:闭源与开源 ![open source proprietary illustration][13] -macOS is a proprietary operating system, meaning you cannot view the complete operating system’s source code. +macOS 是一个闭源的操作系统,意味着你无法看到完整的操作系统源码。 -Sure, you have [part of the macOS (mostly GNU) libraries’ source code available][14]. There is also the [XNU kernel code][15] used in the development of macOS and iOS operating systems. But [you cannot just take this code and build a macOS clone][16] to be installed on any hardware. +当然,可以获得 [部分 macOS (大多为 GNU)库的源码][14]。有用来开发 macOS 和 iOS 操作系统的 [XNU 内核代码][15]。但是 [你不能只用该代码构建 macOS 的克隆版][16],并安装在任何硬件上。 -It’s not the end of the world without the source code, but you get **less transparency** on Apple’s claims and practices to secure and enhance your computer experience. +没有源码的世界不会崩塌,但你会因为苹果公司保护和增强你使用电脑体验的声明和实践,而获得 **更少的透明度**。 -Some might argue that proprietary code remains hidden for security reasons. However, both proprietary and open-source software remain vulnerable to threats. +一些人认为出于安全的原因而保持闭源。然而,不论开源还是闭源都面临安全威胁。 -**The difference between them** is: that open-source software often gets fixed sooner because of community participation by several developers, compared to limited employees working on macOS. +**二者的不同** 是:相对于员工数量有限的苹果公司来说,由于有很多开发者在开源社区中,所以会很快修复开源软件。 -Unless you trust Apple without questions, Linux’s open-source model gets an edge. +除非你毫无保留的相信苹果,不然 Linux 的开源模式更胜一筹。 -### Purpose and Usage: macOS vs. Linux +### 目的和用途: macOS vs. Linux -macOS is tailored for desktop and laptop usage. It is well-suited for **video editing, graphics designing, and audio editing**. +macOS 专为台式机和笔记本电脑使用而设计。它非常适合于 **视频编辑、图形设计和音频编辑**。 -When it comes to Linux, you get a host of possibilities. You can use Linux for: +当谈到 Linux ,你可以做很多事情。你可以将 Linux 用于: -* Desktop +* 客户端 * Toaster (yes! I hope you know about [IoT][17]) -* Single Board Computers -* Server +* 单片机 +* 服务器 -Of course, it is not the same experience when using it on various platforms, but Linux can run for various use-cases. +当然,在各种平台上使用它的体验并不相同,但 Linux 可以针对各种用例运行。 -So, if you like Linux, you can choose to continue using it on other platforms for a comfortable experience. +所以,如果你喜欢 Linux,你可以选择在其他平台上继续使用它,以获得舒适的体验。 -### macOS vs Linux: User Experience +### macOS vs Linux: 用户体验 -When it comes to user experience, it comes down to personal preferences. +当谈到用户体验,这取决于个人喜好。 -macOS offers a **pleasing user interface**. It is visually appealing with subtle animations and high-resolution wallpapers/icons. +macOS 提供了 **令人愉悦的用户界面**。微妙的动画和高分辨率的壁纸、图标,这在视觉上很有吸引力。 ![macOS Monterey][18] @@ -119,7 +112,7 @@ Overall, the out-of-the-box experience with Linux is inconsistent, but it is cap And if you are coming from Windows, the interface could be confusing initially. -### Customizability +### 可定制性 ![customizability][24] @@ -133,7 +126,7 @@ You can choose to customize the user interface as much as you want, with a wide While that is good, it could backfire when customizing things on a Linux system. So, you need to learn/explore what you want to customize. -### Hardware Requirements to run macOS vs Linux +### 运行硬件要求:macOS vs Linux ![hardware illustration][26] @@ -151,7 +144,7 @@ In contrast, if you would rather not spend a lot but still want a decent configu Some skilled tinkerers try running macOS on non-Apple hardware. Such a system is called [Hackintosh][27] but it is certainly nowhere close to the comfort of running Linux on a regular computer. -### Software Ecosystem +### 软件生态 macOS offers a **top-notch native experience** with macOS-exclusive applications or tools made by Apple. @@ -177,7 +170,7 @@ The native app experience depends on the Linux distribution you use. It may not be as seamless as macOS, but if you are not a professional-grade video/graphics editor, you should not have any issues. -### Gaming on Linux and macOS +### 在 Linux 和 macOS 上游戏 ![gaming illustration][31] @@ -195,53 +188,53 @@ Would you spend upwards of **$1800 for a Mac with 16 GB of RAM and 512 GB of SSD That’s your call. -### Package Manager +### 软件包管理 ![package manager illustration new][32] -A package manager helps you quickly find, install, and remove software in your operating system. +软件包管理器能够让你很快地找到、安装或卸载你的操作系统中的软件。 -Linux has been the superior force in package management compared to anything out there. +与现有的任何系统相比,Linux 一直在包管理方面占据优势。 -You get options like [Flatpak][33], [Snap][34], [Synaptic][35], and more out of the box. +你可以获得 [Flatpak][33]、[Snap][34]、[Synaptic][35] 等开箱即用的选项。 -But, Mac users do not have anything to rely on by default. Fortunately, an option like [Homebrew][36] makes life easier for macOS users. +但是,在默认情况下,Mac 用户没有任何可依赖的东西。幸运的是,像 [Homebrew][36] 这样的选项极大的方便了 macOS 用户。 -It also supports Linux. So, you can use it across multiple devices to make things easy. +它还支持Linux。因此,你可以在多个设备上使用它来简化操作。 -### Operating System Updates +### 系统升级 ![software update illustration][37] -Apple does not share specific timelines for software updates to the operating system. +苹果公司不会发布其操作系统具体更新的时间。 -For instance, **macOS Ventura** (the upcoming version upgrade at the time of writing) suddenly ditched all the Mac devices before 2017. +例如,**macOS Ventura** (在撰写本文时即将进行版本升级)突然放弃了 2017 年之前的所有 Mac 设备。 -Interestingly, the previous operating system versions had average support for about **seven years**, but with newer changes, it seems to be about **five** now. +有趣的是,以前的操作系统版本平均支持大约 **七年**,但随着更新的变化,现在似乎大约是 **五年**。 -With Apple silicons, it may not be a straightforward answer. But, it is safe to assume at least 4-5 years of software support. +对于苹果公司设计的芯片,这或许不是一个简单的答案。但是,至少 4 到 5 年的软件支持是安全的。 -Linux gives you options. If you want a stable operating system without feature upgrades but focused on maintenance and security, [LTS editions][38] of Linux distributions give you up to **five years** of updates for free. This is primarily true for [Ubuntu][39] or Ubuntu-based distributions like Linux Mint. +Linux 为你提供了选择。如果你想要一个没有升级功能,只专注于维护和安全性的稳定操作系统,Linux 发行版的 [LTS 版本][38] 可以免费为你提供 **五年** 的更新。这主要适用于 [Ubuntu][39] 或基于 Ubuntu 的发行版,如 Linux Mint。 -Furthermore, there’s a subscription plan for Ubuntu, where you can continue receiving security updates for up to **10 years**. +此外,有一个 Ubuntu 订阅项目,你可以持续 **十年** 获取安全更新。 -And, it does not end there; you can also opt for [rolling-release distributions][40] that get constant bleeding-edge updates with no timeline for an end. As long as your hardware is competent enough, you should be able to update the operating system with no issues. +而且,它并没有就此结束;你还可以选择 [滚动发行的版本][40],来获得没有结束的时间的持续的前沿更新。只要你的硬件能够胜任,你应该就能毫无问题地更新操作系统。 -### macOS vs. Linux: What Should You Pick? +### macOS vs. Linux: 你应该选择哪一个? -macOS can be well worth the price tag if you need it. +如果你需要的话,macOS 物有所值。 -It is not an easy recommendation for users who just need to surf the web, send emails, and perform some tasks that are possible on any platform. +不建议只需要上网、发送电子邮件,以及执行一些在任何平台上都可以执行的任务的用户购买 macOS。 -macOS remains a niche pick. +macOS 仍然是一个不错的选择。 -However, Linux has improved to become a usable choice for former Windows/macOS users, computer science students, developers, creative professionals (like us) and a wide range of potential users. +然而,随着 Linux 的改进,它已经成为先前是 Windows/macOS 的用户、计算机专业学生、开发人员、创意专业人士(如我们)以及广泛潜在用户的有用的选择。 -There are many reasons to pick Linux over macOS, but not the other way around (I think). What are your thoughts on macOS vs. Linux? You are welcome to share your thoughts in the comments down below. +选择 Linux 而不是 macOS 的原因有很多,但(我认为)不矛盾。你对 macOS 与 Linux 有何看法?欢迎在下面的评论中分享你的想法。 -------------------------------------------------------------------------------- -via: https://itsfoss.com/mac-linux-difference/ +via: 作者:[Ankush Das][a] 选题:[lkxed][b] @@ -260,35 +253,35 @@ via: https://itsfoss.com/mac-linux-difference/ [6]: https://github.com/apple/darwin-xnu [7]: https://github.com/apple/darwin-xnu [8]: http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html -[9]: https://en.wikipedia.org/wiki/Mach_(kernel -[10]: https://en.wikipedia.org/wiki/FreeBSD -[11]: https://www.howtogeek.com/howto/31632/what-is-the-linux-kernel-and-what-does-it-do/ -[12]: https://linuxhandbook.com/change-shell-linux/ -[13]: https://itsfoss.com/wp-content/uploads/2022/08/open-source-proprietary-illustration.jpg -[14]: https://opensource.apple.com/releases/ -[15]: https://github.com/apple/darwin-xnu -[16]: https://www.techrepublic.com/article/why-apple-open-sourcing-mac-os-x-isnt-terribly-exciting/ -[17]: https://www.ibm.com/blogs/internet-of-things/what-is-the-iot/ -[18]: https://itsfoss.com/wp-content/uploads/2022/08/macos-monterey-screenshot.jpg -[19]: https://itsfoss.com/wp-content/uploads/2021/12/zorin-os-16-mac.png -[20]: https://itsfoss.com/best-linux-desktop-environments/ -[21]: https://itsfoss.com/macos-like-linux-distros/ -[22]: https://itsfoss.com/wp-content/uploads/2022/08/pop-os-screenshot-2022.png -[23]: https://itsfoss.com/wp-content/uploads/2022/07/10.-MX-Linux.jpg -[24]: https://itsfoss.com/wp-content/uploads/2022/08/customizability-illustration.jpg -[25]: https://itsfoss.com/kde-customization/ -[26]: https://itsfoss.com/wp-content/uploads/2022/08/hardware-illustration-800x450.jpg -[27]: https://www.freecodecamp.org/news/build-a-hackintosh/ -[28]: https://itsfoss.com/wp-content/uploads/2022/08/final-cut-pro-mac.jpg -[29]: https://itsfoss.com/wp-content/uploads/2022/08/kdenlive-editor.jpg -[30]: https://itsfoss.com/wp-content/uploads/2021/08/planner-board-view.png -[31]: https://itsfoss.com/wp-content/uploads/2022/08/gaming-illustration.jpg -[32]: https://itsfoss.com/wp-content/uploads/2022/08/package-manager-illustration-new.jpg -[33]: https://itsfoss.com/what-is-flatpak/ -[34]: https://itsfoss.com/use-snap-packages-ubuntu-16-04/ -[35]: https://itsfoss.com/synaptic-package-manager/ -[36]: https://itsfoss.com/homebrew-linux/ -[37]: https://itsfoss.com/wp-content/uploads/2022/07/software-update-illustration.jpg -[38]: https://itsfoss.com/long-term-support-lts/ -[39]: https://itsfoss.com/getting-started-with-ubuntu/ -[40]: https://itsfoss.com/best-rolling-release-distros/ +[9]: +[10]: +[11]: +[12]: +[13]: +[14]: +[15]: +[16]: +[17]: +[18]: +[19]: +[20]: +[21]: +[22]: +[23]: +[24]: +[25]: +[26]: +[27]: +[28]: +[29]: +[30]: +[31]: +[32]: +[33]: +[34]: +[35]: +[36]: +[37]: +[38]: +[39]: +[40]: From 842abe779ec68a399c014b61253985ec21c334f0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 6 Sep 2022 21:57:24 +0800 Subject: [PATCH 1014/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Return7g 感谢您,完成了第一篇翻译贡献! --- ...mparing the Different Linux Experiences.md | 103 ++++++++++-------- 1 file changed, 55 insertions(+), 48 deletions(-) diff --git a/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md index 7ca3535a6c..7a4316a39c 100644 --- a/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md +++ b/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md @@ -3,78 +3,83 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "Return7g" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -对比Ubuntu和Manjaro:比较不同的Linux发行版体验 - +Ubuntu 和 Manjaro:比较两种不同的 Linux 发行版体验 ====== + +![](https://img.linux.net.cn/data/attachment/album/202209/06/215515o89v2xu8v05rv759.jpg) + Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版。 Manjaro 是基于 Arch 量身定制的 Linux 发行版。 两者在用户体验以及功能上都大相径庭。 -然而,在比较Manjaro的GNOME版和Ubuntu时,其中一个共同点是[桌面环境][1]。 +然而,将 Manjaro 的 GNOME 版和 Ubuntu 放到一起比较时,其中一个共同点是 [桌面环境][1]。 - -但它们之间的差异到底在哪? Manjaro 的包管理器会更好用吗?Ubuntu 和 Manjaro 上的软件生态怎么样? +但它们到底有什么不同?Manjaro 的包管理器会更好用吗?Ubuntu 和 Manjaro 上的软件生态怎么样? 接下来,我们来看看两个 Linux 发行版在某些关键问题上的差异。 - ### 发行周期 -Ubuntu根据你选择的版本不同提供了两个发行周期。如果你选择的是长期发行版本(Long Term Support, LTS),那么你在至少未来五年内都会收到安全维护更新。 -假如你安装了 Ubuntu 22.04 ,那么你在**2027 年 4 月**之前都能获取更新。 +Ubuntu 根据你选择的版本不同提供了两个发行周期。如果你选择的是长期支持版本Long Term Support(LTS),那么你在至少未来五年内都会收到安全维护更新。 + +假如你安装了 Ubuntu 22.04 ,那么你在 **2027 年 4 月** 之前都能获取更新。 + ![ubuntu22 04 lts about][2] -因此我们更推荐普通用户使用 LTS 版本。 +因此,我们更推荐普通桌面用户使用 LTS 版本。 -如果你想要更新更好的体验,你可以选择每**九个月**更新一次的非 LTS 版本。例如 Ubuntu 21.04, Ubuntu 21.10, Ubuntu 22.10。 +如果你想要更新更好的体验,你可以选择每**九个月**更新一次的非 LTS 版本。例如 Ubuntu 21.04、 Ubuntu 21.10、Ubuntu 22.10。 需要注意的是,非 LTS 版本涉及的更改可能会影响你的工作流程以及用户体验。因此并不推荐所有人都去使用非 LTS 版本。 -选择 Manjaro Linux 时你将会获得滚动发行时间表,因此你不必担心对你使用版本的支持。它会通过定期更新升级到最新的可用版本。 +选择 Manjaro Linux 时你将会获得滚动发布的更新,因此你不必担心对你使用版本的支持过期。它会通过定期更新升级到最新的可用版本。 ![manjaro about][3] 由于滚动发行周期的原因,你可以快速获取到最新的软件包。因此如果你想使用某个软件的历史版本,Manjaro 或许并不适合你。 ### 桌面环境 -Ubuntu 有 GNOME 版本桌面的定制版。它可能不是最新的,但如果你使用较新的 Ubuntu 版本,它可能包含最新的 GNOME 桌面环境。 + +Ubuntu 特别提供了一个定制版的 GNOME 桌面。它可能不是最新的,但如果你使用较新的 Ubuntu 版本,它基本上包含的就是最新的 GNOME 桌面环境。 ![ubuntu 22 04 wallpaper][4] -Canonical (Ubuntu 背后的公司)并不提供其它桌面环境 +Canonical(Ubuntu 背后的公司)并不提供其它桌面环境。 -但如果你想在 Ubuntu 上使用其它桌面环境,你可以选择官方的[Ubuntu 风格][5] KDE, Budgie, LXQt, MATE 以及 XFCE 作为桌面环境。与具有其他桌面环境的非官方或更新版本的 Ubuntu 相比,它们是经过良好测试且稳定的 Ubuntu Linux 发行版。 +但如果你想在 Ubuntu 上使用其它桌面环境,你可以选择包含了 KDE、Budgie、LXQt、MATE 以及 XFCE 等桌面环境的 Ubuntu 官方 [风味版][5]Flavour。与提供了其他桌面环境的非官方版或更新的特色版Spin的 Ubuntu 相比,它们是经过良好测试且稳定的 Ubuntu Linux 发行版。 -但是这些Ubuntu 版本没有五年的软件支持; 相反,你将被限制为对 LTS 版本的三年支持。 +但是这些 Ubuntu 风味版没有五年的软件支持;相反,你只能受限地得到对 LTS 版本的三年支持。 -如果使用 Manjaro,你可以选择官方提供的三个版本:XFCE, KDE 和 GNOME。 无论桌面环境如何,你都会使用滚动发布模式。 +如果使用 Manjaro,你可以选择官方提供的三个版本:XFCE、KDE 和 GNOME。 无论桌面环境如何,你都会使用滚动发布模式。 ![manjaro gnome 42][6] -当然你也可以使用一些社区版本如 Budgie, MATE, LXQt。 +当然你也可以使用 Manjaro 的一些社区版本,如 Budgie、MATE、LXQt。 ### 包管理器以及软件生态 -在上述这些发行版中找到大多数必要的 Linux 应用是没问题的。 -Manjaro Linux 使用 Pamac 作为其包管理器获得了更快速的体验。 +在上述这两类发行版中,找到大多数必要的 Linux 应用是没问题的。 + +不过,Manjaro Linux 使用 Pamac 作为其包管理器而获得了更快速的体验。 ![manjaro package manager][8] -与 Ubuntu 上的应用商店相比,Manjaro Linux 在快速安装/更新软件方面提供了更好的体验。 而且,如果您想通过单击启用它们,它还支持开箱即用的 Flatpak/Snap。 +与 Ubuntu 上的应用商店相比,Manjaro Linux 在快速安装/更新软件方面提供了更好的体验。而且,它还支持开箱即用的 Flatpak/Snap,如果你只需一键即可启用它们。 -Ubuntu 比较重视 Snap 包,你会发现一些应用程序预装为 Snap包(如 Firefox 浏览器)。 +Ubuntu 比较重视 Snap 软件包,你会发现一些应用程序预装为 Snap 软件包(如 Firefox 浏览器)。 ![firefox as snap][9] -对于 Manjaro Linux来说,你可以根据自身需求决定是否启用 Flatpak/Snap。 +对于 Manjaro Linux 来说,你可以根据自身需求决定是否启用 Flatpak/Snap。 + +在使用 Ubuntu 时,其应用商店提供的 Linux 应用并不是最好的。取决于你的系统配置和使用年限,它会变得越来越慢。 -在使用 Ubuntu时,应用商店提供的 Linux 应用并不是最好的。取决于你的系统配置和使用年限,它会变得越来越慢。 ![ubuntu 22 04 software center][10] 除此之外,Manjaro Linux 还可以访问 [AUR][11],它可以获得你在 Ubuntu 应用商店中可能找不到的几乎所有软件。 @@ -87,29 +92,29 @@ Ubuntu 桌面主要是为了易于使用而量身定制的。它专注于提供 即使有人不知道 Linux 上的“包管理器”是什么,在他们使用它时也可以完全把它作为 Windows/macOS 的完美替代品。 -当然,我们也有一个指南来帮助您[安装最新的 Ubuntu 后要做的事情][12]。 +当然,我们也有一个指南来帮助你 [安装最新的 Ubuntu 后要做的事情][12]。 +Manjaro Linux 也是为桌面用户使用量身定制的。但是它并不适合首次使用 Linux 的用户使用。 -Manjaro Linux 也是为桌面用户使用量身定制的。 但是它并不适合首次使用 Linux 的用户使用。 - -它旨在简化 Arch Linux 的操作。 因此主要面向想要使用 Arch Linux 的 Linux 用户增加了一些便利性。 +它旨在简化 Arch Linux 的操作。因此主要面向想要使用 Arch Linux 的 Linux 用户,但是增加了一些便利性。 ### 稳定性 + ![stability tux][13] Ubuntu LTS 版本主要关注稳定性和可靠性,因此你也可以在服务器上部署它们。 -相比之下,Manjaro Linux 可能没有开箱即用那么稳定。 你在 Manjaro Linux 中安装软件包时需要更加仔细,同时密切注意你的配置,以确保更新不会破坏你的系统。 +相比之下,Manjaro Linux 可能没有提供现成的的稳定性。你在 Manjaro Linux 中安装软件包时需要更加仔细,同时密切注意你的配置,以确保更新不会破坏你的系统。 对于 Ubuntu 用户来说则无需担心软件更新,尤其是在考虑 LTS 版本时,更新通常不会破坏你的系统。 - ### 个性化 -Ubuntu 有一个由 Canonical 为最终用户设置的定制 GNOME 桌面。 虽然你可以自由选择不同的 Linux 发行版,但 Ubuntu 提供的开箱即用的功能让然很少 -Ubuntu 多年来一直在改进,最近增加了[在 Ubuntu 22.04 LTS 中添加强调色][14] 的能力。 但是它仍然还有很长的路要走。 +Ubuntu 特别提供了一个由 Canonical 为最终用户设置的定制 GNOME 桌面。虽然你可以自由定制你的 Linux 发行版的各个方面,但 Ubuntu 开箱即用提供定制很少。 -如果你想获得个性化的桌面体验,你只能借助[GNOME Tweak][15] 等软件来实现。 +Ubuntu 多年来一直在改进,最近增加了 [在 Ubuntu 22.04 LTS 中添加强调色][14] 的能力。 但是它仍然还有很长的路要走。 + +如果你想获得个性化的桌面体验,你只能借助 [GNOME Tweak][15] 等软件来实现。 对比 Manjaro GNOME,你也只能使用相同的工具来自定义桌面。 @@ -119,51 +124,53 @@ Manjaro 还对外观进行了一些自定义调整。但是它提供了更多组 在个性定制方面,你在 Manjaro 和 Ubuntu 上的体验大致相同。 -如果您想要更多自定义选项,Manjaro Linux 可能是一个不错的选择。 但是如果你只想要一个个性化体验而不需要太多的改变,Ubuntu 应该就足够了。 +如果你想要更多自定义选项,Manjaro Linux 可能是一个不错的选择。但是如果你只想要个性化体验而不需要太多的改变,Ubuntu 应该就足够了。 ### 臃肿的软件 -这对每个人来说可能都不是什么大问题。 但如果你不喜欢预装许多应用程序,那么 Ubuntu 可能会令你感到麻烦。 + +这对每个人来说可能都不是什么大问题。但如果你不喜欢预装许多应用程序,那么 Ubuntu 可能会令你感到麻烦。 ![ubuntu 22 apps][17] -虽然可以随时删除不需要的应用程序。但是你会发现更多随 Ubuntu 一起安装的软件和服务还有很多。 +虽然可以随时删除不需要的应用程序。但是你会发现随 Ubuntu 一起安装的软件和服务还有很多。 -使用 Manjaro时,你在安装时只需要安装最基础的内容即可。它们坚持使用最基础的实用程序,最大限度地减少预装的软件包数量。 因此,Manjaro 很少会和软件臃肿联系到一起。 - -但是你在默认安装的 Manjaro 上可能找不到你最喜欢的 Linux 软件。 因此,如果你想在安装后立即使用一些你喜欢的软件,Ubuntu 可能是一个不错的选择。 +使用 Manjaro 时,你在安装时只需要安装最基础的内容即可。它们坚持使用最基础的实用程序,最大限度地减少预装的软件包数量。因此,Manjaro 很少会和软件臃肿联系到一起。 +但是你在默认安装的 Manjaro 上可能找不到你最喜欢的 Linux 软件。因此,如果你想在安装后立即使用一些你喜欢的软件,Ubuntu 可能是一个不错的选择。 ### 性能 + ![ubuntu 22 04 neofetch lolcat][18] -虽然 Ubuntu 提高了系统性能,甚至可以在 2 GB 内存的树莓派上运行,但它仍然不是性能最好的 Linux 发行版。 +虽然 Ubuntu 改进了其系统表现,甚至可以在 2 GB 内存的树莓派上运行,但它仍然不是性能最好的 Linux 发行版。 当然,性能确实取决于你选择使用的桌面环境。 但是与 Manjaro 的 GNOME 版本相比,Manjaro 提供了更快捷的体验。 -需要注意的是,性能和动画首选项的用户体验还取决于你的系统配置。例如,Manjaro 推荐旧电脑系统达到拥有 1GB 内存和 1GHz 处理器。 - -但是,对于 Ubuntu,在撰写本文时,你至少需要 4 GB 内存 和 2 GHz 双核处理器才能获得理想的桌面体验。 +需要注意的是,性能和动画首选项的用户体验还取决于你的系统配置。例如,Manjaro 的推荐系统要求(1GB 内存和 1GHz 处理器)给了你使用就电脑的机会。 +但是,对于 Ubuntu,在撰写本文时,你至少需要 4GB 内存 和 2GHz 双核处理器,才能获得理想的桌面体验。 ### 文档 + 考虑到 Ubuntu 的受欢迎程度,Ubuntu 更易于使用,并且对新用户来说可能更舒适。 [Ubuntu 的文档][19] 即使不是最好也足够好了。 -谈到 Manjaro Linux,他们有一个 [wiki][20],其中包含基础信息和深入的指南来帮助你入门。 +谈到 Manjaro Linux,他们有一个 [维基][20],其中包含基础信息和深入的指南来帮助你入门。 总的来说,[Arch Linux 的文档][21] 非常细致,几乎每个人(甚至是老手)都会参考它来寻求帮助。 Arch Linux 的文档在很大程度上也适用于 Manjaro Linux,因此在文档方面,使用 Manjaro Linux 比 Ubuntu 更有优势。 ### 结束语 -作为两个完全不同的 Linux 发行版,它们服务于各种类型的用户。你可以选择任意你感兴趣的操作系统并尝试去使用它来判断它是否适合你。 -但是不管 Linux 发行版如何,你想避免对系统进行任何更改并专注于你的工作,Ubuntu 应该是一个明智的选择。 +作为两个完全不同的 Linux 发行版,它们服务于各种类型的用户。你可以选择你感兴趣的任意一个并尝试去使用它来判断它是否适合你。 -无论如何,如果 Ubuntu 的性能对你的体验有相当大的影响,你应该去尝试 Manjaro。 你可以阅读我的 [关于从 Ubuntu 切换到 Manjaro 的初步想法][22]。 +但是,如果你想避免对系统进行任何更改,并专注于你的工作,那么 Ubuntu 应该是一个明智的选择。 + +而如果 Ubuntu 的性能对你的体验有相当大的影响,你应该去尝试 Manjaro。 你可以阅读我的 [关于从 Ubuntu 切换到 Manjaro 的初步想法][22]。 -------------------------------------------------------------------------------- @@ -172,7 +179,7 @@ via: https://itsfoss.com/ubuntu-vs-manjaro/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[Return7g](https://github.com/Return7g) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 00b62db6e97b55eaf10d6fafc8de3c5ceb34eac7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 6 Sep 2022 21:58:16 +0800 Subject: [PATCH 1015/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Return7g 本文首发地址:https://linux.cn/article-15006-1.html 您的 LCTT 专页:https://linux.cn/lctt/Return7g --- ...u vs Manjaro- Comparing the Different Linux Experiences.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md (99%) diff --git a/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/published/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md similarity index 99% rename from translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md rename to published/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md index 7a4316a39c..149804905b 100644 --- a/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md +++ b/published/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Return7g" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15006-1.html" Ubuntu 和 Manjaro:比较两种不同的 Linux 发行版体验 ====== From 2171a21a4d9b2c42591250d7ed60b94a8473fab6 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 6 Sep 2022 23:26:54 +0800 Subject: [PATCH 1016/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220906=20Unix=20History-=20A=20Mighty=20Origin=20S?= =?UTF-8?q?tory.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...906 Unix History- A Mighty Origin Story.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/talk/20220906 Unix History- A Mighty Origin Story.md diff --git a/sources/talk/20220906 Unix History- A Mighty Origin Story.md b/sources/talk/20220906 Unix History- A Mighty Origin Story.md new file mode 100644 index 0000000000..1daa01200e --- /dev/null +++ b/sources/talk/20220906 Unix History- A Mighty Origin Story.md @@ -0,0 +1,108 @@ +[#]: subject: "Unix History: A Mighty Origin Story" +[#]: via: "https://www.debugpoint.com/unix-history/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Unix History: A Mighty Origin Story +====== +A brief walk down memory lane about Unix and its beginning. + +![The beginning][1] + +### Unix: The origin story + +The world today runs on Linux. Billions of mobile phones and servers today run Linux. But before Linux, there was Unix, and without it, Linux would not have existed today. + +Unix’s origin can be traced back to the moon landing days. In 1965, three famous institutions started a joint venture to create an operating system that could serve multiple users and share data and resources. + +![Scanned copy of actual Unix code][2] + +They are the famous Bell Telephone Laboratories, the General Electric Company and the Massachusetts Institute of Technology. This project or the joint venture is called “Multics” – an acronym for “Multiplex Information and Computing Service”. + +But, the project did not see much success. Unfortunately. Due to complexity and poor outcome, Bell Labs discontinued the project. + +Ken Thomson from Bell Labs, who worked in Multics, started afresh. He started writing a new operating system for an ancient computer PDP-7 of Digital Equipment Corporation. Later, Dennis Ritchie joined, and they created a hierarchical file system, device files, command line interpreter and processes. This is how the Unix was born, named by another member of the Multics project – Brian Kernighan. + +In 1971, Unix was ported to a little advanced PDP-11 computer with just a 512 KB disk. At the time, Unix was only supporting 16 KB and 8 KB memory allocated for user programs. + +However, most of the Unix code was in assembly language, making it hardware dependent. So, it was not portable. + +![Ken Thompson (sitting) and Dennis Ritchie at PDP-11 (credit and learn more about this image1)][3] + +### Creation of C Programming Language + +So, the only way to make it portable and machine-independent is to write it in a high-level language so that the compile and corresponding object code can take care of the machine code conversion. + +The great brains at that time solve the problem in a jiffy. Ken Thompson created a high-level language from scratch called “B”. Then, he started the massive work to convert Unix assembly code to this newly created language. However, “B” also had some limitations, and Dennis Ritchie modified it to create the famous language “C”, which makes Unix a truly portable operating system. + +The famous “C” language is still used today. + +By the mid-’80s, Unix became so successful that it was running on thousands of hardware, from micro-computers to mainframes with a variety of hardware. + +![The text book of C which we all read][4] + +### MINIX and the birth of Linux + +In 1987, Andrew S. Tanenbaum – a computer science professional, created a Unix fork called MINIX to explain the operating system concepts in his famous book “Operating Systems: Design and Implementation” and distributed (the 16-bit version) free along with the book. Those who studied computer science (including me) or related subjects knows that it’s the ultimate textbook on Operating system which explains the basics. + +In 1991, Linux Torvalds [started a hobby project][5] while studying at the University of Helsinki. He based his work on MINIX with GNU C Compiler. He started his project to enable him to run programs on his new PC with a new 80386 processor. However, he wrote the entire operating system with features that MINIX lacked, eventually becoming the Linux Kernel. + +![Famous operating systems book by Tanenbaum][6] + +### BSD and macOS + +During the ’80s, when Unix was shaping up, Bell Labs developed BSD (Berkeley Standard Distribution) based on the original Source code of Unix (the version that runs on PDP-7 and PDP-11). BSD is distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. After its formation, BSD has been adapted by many workstation vendors (the legacy desktop), such as Sun Microsystems, as a proprietary Unix variant. + +This version eventually forked to create open-source variants such as OpenBSD, FreeBSD and so on. These free versions created the path to create NeXTSTEP by NeXT, founded by Steve Jobs. And NeXTSTEP eventually became the foundation for Apple’s macOS. + +### Wrapping Up + +Unix is a remarkable achievement by a few individuals with their original ideas and takes on problem-solving. The operating system is a work of art if you consider how much computing power and memory were available at the time of its creation. + +All of these small steps, over several decades, eventually led us where we are today. No matter how many Kernels, OSes, and abstractions in the form of programming languages come in, at the core, it all started from a single source. + +I always think that programs/codes are thoughts of human beings. It’s your logic, ideas are merely written in “IF-ELSE” blocks to achieve some real-world result. + +References + +* [https://www.bell-labs.com/usr/dmr/www/picture.html][7]1 +* [https://groups.google.com/g/comp.os.minix/c/dlNtH7RRrGA/m/SwRavCzVE7gJ][8] +* [https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum][9] +* [https://en.wikipedia.org/wiki/History_of_Linux][10] +* [https://en.wikipedia.org/wiki/History_of_Unix][11] +* [https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/][12] + +*“All revolutions are, until they happen, then they are historical inevitabilities.” – Cloud Atlas* + +![Join our Telegram channel and stay informed on the move.][13] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/unix-history/ + +作者:[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/09/The-beginning-1024x576.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Scanned-copy-of-actual-Unix-code-1024x646.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/09/Ken-Thompson-sitting-and-Dennis-Ritchie-at-PDP-11.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/09/The-text-book-of-C-which-we-all-read.jpg +[5]: https://groups.google.com/g/comp.os.minix/c/dlNtH7RRrGA/m/SwRavCzVE7gJ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/Famous-operating-systems-book-by-Tanenbaum.jpg +[7]: https://www.bell-labs.com/usr/dmr/www/picture.html +[8]: https://groups.google.com/g/comp.os.minix/c/dlNtH7RRrGA/m/SwRavCzVE7gJ +[9]: https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum +[10]: https://en.wikipedia.org/wiki/History_of_Linux +[11]: https://en.wikipedia.org/wiki/History_of_Unix +[12]: https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/ +[13]: https://t.me/debugpoint From 0edc1f8018d0d3864758c15b888e4898ff5c5a81 Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 6 Sep 2022 23:28:21 +0800 Subject: [PATCH 1017/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020220906=20Advantages=20and=20Disadvantages=20of=20U?= =?UTF-8?q?sing=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ntages and Disadvantages of Using Linux.md | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 sources/talk/20220906 Advantages and Disadvantages of Using Linux.md diff --git a/sources/talk/20220906 Advantages and Disadvantages of Using Linux.md b/sources/talk/20220906 Advantages and Disadvantages of Using Linux.md new file mode 100644 index 0000000000..d185cf6594 --- /dev/null +++ b/sources/talk/20220906 Advantages and Disadvantages of Using Linux.md @@ -0,0 +1,253 @@ +[#]: subject: "Advantages and Disadvantages of Using Linux" +[#]: via: "https://itsfoss.com/advantages-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Advantages and Disadvantages of Using Linux +====== +Linux is a buzzword and you keep hearing about Linux here and there. People discuss it in the tech forum, it is part of the course curriculum and your favorite tech YouTubers get excited while showing their Linux build. The 10x developers you follow on Twitter are all Linux fans. + +Basically, Linux is everywhere and everyone keeps talking about it. And that gives you FOMO. + +So, you wonder about the advantages of Linux and whether is it really worth trying. + +I have compiled various possible advantages and disadvantages of Linux in this article. + +If you are on the fence about choosing Linux over your preferred operating system, we would like to help you out. + +Before you start, you should know that Linux is not an operating system on its own. The operating systems are called [Linux distributions and there are hundreds of them][1]. For simplicity, I’ll address it as Linux OS instead of a specific Linux distribution. This [article][2] explains things better. + +### Advantages of Using Linux + +Considering you are curious about Linux as an alternative operating system choice, it only makes sense that you know its advantages. + +You might never regret your decision if it excels at what you want it to do. + +#### No Need to Purchase a License + +![open source proprietary illustration][3] + +You need to own an Apple device to use macOS as your daily driver and a Windows license to use Microsoft’s Windows. + +Therefore, you need a bit of investment with these options. But, with Linux? It’s entirely free. + +Not just the OS, there are many software packages available for free on Linux when compared to Windows and macOS. + +You can try every mainstream Linux distribution without paying for a license. Of course, you get the option to donate to support the project, but that is up to you if you really like it. + +**Additionally**, Linux is totally open-source, meaning anyone can inspect the source code for transparency. + +#### Can Run With Minimal System Resources + +![linux mint 21 resource usage][4] + +Typically, when users think of trying another operating system, it is because they are frustrated with the performance of their system. + +This is from my personal experience. I have had friends willing to try Linux to revive their old laptop or a system that constantly lags. + +And, when it comes to Linux distributions, they are capable of running on decent hardware configurations. You do not need to have the latest and greatest. Moreover, there are specialized [lightweight Linux distributions][5] that are tailored to run on older hardware with no hiccups. + +So, you have more chances to revive your old system or get a fast-performing computer in no time with Linux. + +#### Less Exposed to Malware + +![malware illustration][6] + +No operating system is safe from malicious files or scripts. If you download and run something from an unknown source, you cannot guarantee its safety. + +However, things are better for Linux. Yes, researchers have found attackers targeting Linux IoT devices. But, for desktop Linux, it is not “yet” something to worry about. + +Malicious actors target platforms that are more popular among households, and Linux does not have a big market share in the desktop space to attract that kind of attention. In a way, it can be a good thing. + +All you have to do is just stick to the official software packages, and read instructions before you do anything. + +As an extra plus, you do not necessarily need an antivirus program to get protection from malware. + +#### Customization + +![Pop!_OS 22.04 LTS][7] + +With an open-source code, you get the freedom to customize your Linux experience as much as you want. + +Of course, you require a bit of technical expertise to go utilize the best of it. Even without any experience, you get more customization features in your operating system when compared to macOS and Windows. + +![Customized Linux experience | Reddit user: u/ZB652][8] + +[u/ZB652][9] + +If you are into personalizing your experience and willing to put in extra effort, Linux is for you. As an example, refer to the [KDE customization guide][10] and [dock options][11] to get basic ideas. + +#### Something for Everyone + +With macOS or Windows, you get limited to the design/preference choices finalized by Microsoft or Apple. + +But, with Linux, you will find several Linux distributions that try to focus on various things. + +For instance, you can opt for a Linux distribution that focuses on getting the latest features all the time, or you can opt for something that only gives you security/maintenance updates. + +You can get something that looks beautiful out of the box or something that you provide crazy customization options. You will not run out of options with Linux. + +I recommend starting with [options that give you the best user experience][12]. + +#### Complete Development Environment + +If you are a software developer or student learning to code, Linux definitely has an edge. A lot of your build tools are available and integrated into Linux. With Docker, you can create specialized test environment easily. + +Microsoft knows about this part and this is why it created WSL to give developers access to Linux environments inside Windows. Still, WSL doesn’t come close to the real Linux experience. The same goes for using Docker on Windows. + +I know the same cannot be said about web designing because the coveted Adobe tools are not available on Linux yet. But if you don’t need Adobe for your work, Linux is a pretty good choice. + +#### Learning Linux is a Skill One Must Have! + +There is a learning curve to using Linux, but it provides you with insights on various things. + +You get to learn how things work in an operating system by exploring and customizing it, or even just by using it. + +Not everyone knows how to use Linux. + +So, it can be a great skill to gain and expand your knowledge of software and computers. + +#### Linux is an in-demand Job Skill + +![job illustration][13] + +As I mentioned above, it is a great skill to have. But, not just limited to expanding your knowledge, it is also useful professionally. + +You can work your way to become a Linux system administrator or a security expert and fill several other job roles by learning the fundamentals of Linux. + +So, learning Linux opens up a whole range of opportunities! + +#### Privacy-Friendly + +These days you cannot use Windows without a Microsoft account. And when you set up Windows, you’ll find that it tries to track your data from a number of services and applications. + +![privacy windows][14] + +While you can find such settings and disable them, it is clear that Windows is configured to disregard your privacy by default. + +That’s not the case in Linux. While some applications/distributions may have an optional feature to let you share useful insights with them, it has never been a big deal. Most of the things on Linux are tailored to give you maximum privacy by default without needing to configure anything. + +Apple and Microsoft on the other hand have clever tactics to collect anonymous usage data from your computer. Occasionally, they log your activity on their app store and while you are signed in through your account. + +#### DIY projects and Self-hosting + +Got a tinkerer in you? If you like to make electronics or software projects, Linux is your paradise. + +You can use Linux on [single-board computers like Raspberry Pi][15] and create cool things like retro gaming consoles, home automation systems, etc. + +You can also deploy open source software on your own server and maintain them. This is called self-hosting and it has the following advantages: + +* Reduce hosting costs +* Take control of your data +* Customize the app/service as per your requirements + +Clearly, you’ll be doing all this either directly with Linux or tools built on top of it. + +### Disadvantages of Linux + +Linux is not a flawless choice. Just like everything, there are some downsides to Linux as well. Those include: + +#### Learning Curve + +![too much learn illustration][16] + +Every so often it is not just about learning a new skill, it is more about getting comfortable as quickly as possible. + +If a user cannot get their way around the task they intend to do, it is not for them. It is true for every operating system. For instance, a user who uses Windows/macOS, may not get comfortable with Linux as quickly. + +You can read our comparison article to know the [difference between macOS and Linux][17]. + +I agree that some users catch on quicker than others. But, in general, when you step into the Linux world, you need to be willing to put a bit of effort into learning the things that are not obvious. + +#### Variety + +While we recommend using the [best Linux distributions tailored for beginners][18], choosing what you like at first can be overwhelming. + +You might want to try multiple of them to see what works with you best, which can be time-consuming and confusing. + +It’s best to settle with one of the Linux distributions. But, if you remain confused, you can stick to Windows/macOS. + +#### Market Share in Desktop Space + +![linux desktop market share][19] + +Linux is not a popular desktop operating system. + +This should not be of concern to a user. However, without having a significant market presence, you cannot expect app developers to make/maintain tools for Linux. + +Sure, there are lots of essential and popular tools available for Linux, more than ever. But, it remains a factor that may mean that not all good tools/services work on Linux. + +Refer to our regularly updated article on [Linux’s market share][20], to get an idea. + +#### Lack of Proprietary Software + +As I mentioned above, not everyone is interested in bringing their tools/apps to Linux. + +Hence, you may not find all the good proprietary offerings for Windows/macOS. Sure, you can use a compatibility layer to run Windows/macOS programs on Linux. + +But that doesn’t work all the time. For instance, you do not have official Microsoft 365 support for Linux and tools like Wallpaper Engine. + +#### Not a Gaming-first OS + +![gaming illustration][21] + +If you want to game on your computer, Windows remains the best option for its support for the newest hardware and technologies. + +When it comes to Linux, there are a lot of “ifs and buts” for a clear answer. You can refer to our [gaming guide for Linux][22] to explore more if interested. + +#### Lack of Professional Tech Support + +I know not everyone needs it. But, there are tech support options that can guide users/fix issues remotely on their laptop or computer. + +With Linux, you can seek help from the community, but it may not be as seamless as some professional tech support services. + +You’ll still have to do most of the hit and try stuff on your own and not everyone would like it. + +### Wrapping Up + +I am primarily a Linux user but I use Windows when I have to play games. Though my preference is Linux, I have tried to be unbiased and give you enough pointers so that you can make up your mind if Linux is for you or not. + +If you are going for Linux and have never used it, take the baby step and [use Linux in a virtual machine first][23]. You can also use WSL2 if you have Windows 11. + +I welcome your comments and suggestions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/advantages-linux/ + +作者:[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-linux/ +[2]: https://itsfoss.com/what-is-linux/ +[3]: https://itsfoss.com/wp-content/uploads/2022/08/open-source-proprietary-illustration.jpg +[4]: https://itsfoss.com/wp-content/uploads/2022/08/linux-mint-21-resource-usage.jpg +[5]: https://itsfoss.com/lightweight-linux-beginners/ +[6]: https://itsfoss.com/wp-content/uploads/2022/09/malware-illustration.jpg +[7]: https://itsfoss.com/wp-content/uploads/2022/08/pop-os-screenshot-2022.png +[8]: https://itsfoss.com/wp-content/uploads/2022/09/customization-reddit-unixporn.jpg +[9]: https://www.reddit.com/r/unixporn/comments/wzu5nl/plasma_cscx2n/ +[10]: https://itsfoss.com/kde-customization/ +[11]: https://itsfoss.com/best-linux-docks/ +[12]: https://itsfoss.com/beautiful-linux-distributions/ +[13]: https://itsfoss.com/wp-content/uploads/2022/09/job-illustration.jpg +[14]: https://itsfoss.com/wp-content/uploads/2022/09/privacy-windows.webp +[15]: https://itsfoss.com/raspberry-pi-alternatives/ +[16]: https://itsfoss.com/wp-content/uploads/2022/09/too-much-learn-illustration.jpg +[17]: https://itsfoss.com/mac-linux-difference/ +[18]: https://itsfoss.com/best-linux-beginners/ +[19]: https://itsfoss.com/wp-content/uploads/2017/09/linux-desktop-market-share.jpg +[20]: https://itsfoss.com/linux-market-share/ +[21]: https://itsfoss.com/wp-content/uploads/2022/08/gaming-illustration.jpg +[22]: https://itsfoss.com/linux-gaming-guide/ +[23]: https://itsfoss.com/why-linux-virtual-machine/ From a9eff6bf3fd7df94298e9a7f6052ba356e4f586e Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 6 Sep 2022 23:29:55 +0800 Subject: [PATCH 1018/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220906=20How=20to=20Analyse=20Sentiments=20Using?= =?UTF-8?q?=20Machine=20Learning.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...alyse Sentiments Using Machine Learning.md | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md new file mode 100644 index 0000000000..1cac4f4b89 --- /dev/null +++ b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -0,0 +1,213 @@ +[#]: subject: "How to Analyse Sentiments Using Machine Learning" +[#]: via: "https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-machine-learning/" +[#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Analyse Sentiments Using Machine Learning +====== +This article will help you understand the concept of sentiment analysis and learn how it is done. It uses different machine learning algorithms for sentiment analysis, and then compares them to decide which one is the best for the particular problem described here. + +Sentiment analysis is a major area in the field of natural language processing. A sentiment is any opinion or feeling that we have about an event, a product, a situation or anything else. Sentiment analysis is the field of research in which human sentiments are automatically extracted from the text. This field started evolving in the early 90s. + +This article will help you understand how machine learning (ML) can be used for sentiment analysis, and compare the different ML algorithms that can be used. It does not try to improve the performance of any of the algorithms or methods. + +In today’s fast paced world, everything is online and everyone can post their views. A few negative online comments may hurt a company’s reputation and, thereby, its sales. Now that everything’s online, everyone can post their views and opinions. It becomes very important for companies to go through these to understand what their customers really want. But since there is so much data, it cannot be gone through manually. This is where sentiment analysis comes in. + +Let us now start developing a model to do a basic sentiment analysis. + +### Let’s start! + +The first step is to select a data set. You can choose from any publicly available reviews or comments such as tweets or movie reviews. The two columns that should definitely be there in the data set are the label and the actual piece of text. + +Figure 1 shows a small sample of how the data looks. + +![Figure 1: Data sample][1] + +Now we need to import the required libraries: + +``` +import pandas as pd +import numpy as np +from nltk.stem.porter import PorterStemmer +import re +import string +``` + +As you can see in the above code, we have imported NumPy and Pandas for processing the data. We will look at the other imported libraries when we use them. + +Now that the data set is ready and the libraries are imported, we need to bring the former into our project. The Pandas library is used for this purpose. We bring the data set into the Pandas data frame using the following line of code: + +``` +sentiment_dataframe = pd.read_csv(“/content/drive/MyDrive/Data/sentiments - sentiments.tsv”,sep = ‘\t’) +``` + +Now that we have the data set in our project, let us manipulate it so that our algorithm can understand the features better. We begin by giving names to our columns in the data set. This is done by using the line of code given below: + +``` +sentiment_dataframe.columns = [“label”,”body_text”] +``` + +We then assign numerical labels to the classes — negative is replaced with 1 and positive is replaced with 0. Figure 2 shows how the data frame looks at this stage. + +![Figure 2: Data frame with basic modifications][2] + +The next step is the preprocessing of the data. This is a very important step as it helps us to convert string/text data into numerical data (machine learning algorithms can understand/process numerical data and not text). Also, the redundant and useless data needs to be removed as it may taint our training model. We remove the noisy data, missing values and other non-consistent data in this step. + +We will add the features text length and punctuation count in the data frame specifically for this application. We will also do the stemming, i.e., we will convert all similar words (like ‘give’, ‘giving’, etc) into a single form. Once this is done, we divide the data set into two — X and Y — where X is the features and Y is the prediction class. + +This is done using the following piece of code. Figure 3 shows the data frame after these steps are taken. + +![Figure 3: Data frame after the division of the data set][3] + +``` +def count_punct(text): + count = sum([1 for char in text if char in string.punctuation]) + return round(count/(len(text) - text.count(“ “)),3)*100 + + tokenized_tweet = sentiment_dataframe[‘body_text’].apply(lambda x: x.split()) +stemmer = PorterStemmer() +tokenized_tweet = tokenized_tweet.apply(lambda x: [stemmer.stem(i) for i in x]) +for i in range(len(tokenized_tweet)): + tokenized_tweet[i] = ‘ ‘.join(tokenized_tweet[i]) +sentiment_dataframe[‘body_text’] = tokenized_tweet +sentiment_dataframe[‘body_len’] = sentiment_dataframe[‘body_text’].apply(lambda x:len(x) - x.count(“ “)) +sentiment_dataframe[‘punct%’] = sentiment_dataframe[‘body_text’].apply(lambda x:count_punct(x)) +X = sentiment_dataframe[‘body_text’] +y = sentiment_dataframe[‘label’] +``` + +We now need to convert the string into numerical data. We use a count vectorizer for this purpose; that is, we get the counts of each word and convert it into a vector. + +After this, features such as length of text and punctuation count in the dataframe, i.e., X, are calculated. A sample of X is shown in Figure 4. + +![Figure 4: Sample of final features][4] + +Now the data is ready for training. The next step is to determine which algorithms we are going to use for training our model. As has been mentioned before, we are going to try several algorithms and determine the best one for sentiment analysis. Since we are basically trying to do binary classification, the following algorithms can be used: + +* K-nearest neighbors (KNN) +* Logistic regression +* Support vector machines (SVMs) +* Stochastic gradient descent +* Naive Bayes +* Decision tree +* Random Forest + +We first need to split our data set into testing and training data. This is done by using the sklearn library using the following code: + +``` +from sklearn.model_selection import train_test_split +X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.20, random_state = 99) +``` + +We will use 20 per cent of the data for testing and 80 per cent for the training part. We will separate the data because we want to test on a new set of data whether our model is working properly or not. + +Now let us start with the first model. We will try the KNN algorithm first, and use the sklearn library for this. We will first train the model and then assess its performance (all of this can be done using the sklearn library in Python itself). The following piece of code does this, and we get an accuracy of around 50 per cent. + +``` +from sklearn.neighbors import KNeighborsClassifier +model = KNeighborsClassifier (n_neighbors=3) +model.fit(X_train, y_train) +model.score (X_test,y_test) + +0.5056689342403629 +``` + +The code is similar in the logistic regression model — we first import the function from the library, fit the model, and then test it. The following piece of code uses the logistic regression algorithm. The output shows we got an accuracy of around 66 per cent. + +``` +from sklearn.linear_model import LogisticRegression +model = LogisticRegression() +model.fit (X_train,y_train) +model.score (X_test,y_test) + +0.6621315192743764 +``` + +The following piece of code uses SVM. The output shows we got an accuracy of around 67 per cent. + +``` +from sklearn import svm +model = svm.SVC(kernel=’linear’) +model.fit(X_train, y_train) +model.score(X_test,y_test) + +0.6780045351473923 +``` + +The following piece of code uses the Random Forest algorithm, and we get an accuracy of around 69 per cent. + +``` +from sklearn.ensemble import RandomForestClassifier +model = RandomForestClassifier() +model.fit(X_train, y_train) +model.score(X_test,y_test) + +0.6938775510204082 +``` + +Next we use the Decision tree algorithm, which gives an accuracy of around 61 per cent. + +``` +from sklearn.tree import DecisionTreeClassifier +model = DecisionTreeClassifier() +model = model.fit(X_train,y_train) +model.score(X_test,y_test) + +0.6190476190476191 +``` + +The following piece of code uses the stochastic gradient descent algorithm. The output shows that we got an accuracy of around 49 per cent. + +``` +from sklearn.linear_model import SGDClassifier +model = SGDClassifier() +model = model.fit(X_train,y_train) +model.score(X_test,y_test) + +0.49206349206349204 +``` + +The following piece of code uses Naive Bayes. We get an accuracy of around 60 per cent. + +``` +from sklearn.naive_bayes import GaussianNB +model = GaussianNB() +model.fit(X_train, y_train) +model.score(X_test,y_test) + +0.6009070294784581 +``` + +Now that we have checked out all the algorithms, let us graph their accuracy performance. The graph is shown in Figure 5. + +![Figure 5: Accuracy performance of the different algorithms][5] + +As you can see, the random forest algorithm gave the best accuracy for this problem and we can conclude that it is the best fit for sentiment analysis amongst ML algorithms. We can improve the accuracy much more by getting better features, trying out other vectorising techniques, and using a better data set or newer classification algorithms. + +Now that random forest is seen as the best algorithm for this problem, I am going to show you a sample prediction. In Figure 6, you can see that the right predictions are being made! Do try this out to improve upon this project! + +![Figure 6: Sample predictions made][6] + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-machine-learning/ + +作者:[Jishnu Saurav Mittapalli][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/jishnu-saurav-mittapalli/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-1-Data-sample.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-2-Data-frame-with-basic-modifications-3.jpg +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-3-Data-frame-after-the-division-of-the-data-set.jpg +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-4-Sample-of-final-features.jpg +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-5-Accuracy-performance-of-the-different-algorithms.jpg +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-6-Sample-predictions-made.jpg From 9a80c2d6f558feaf391fd9aa36a77748993eee0c Mon Sep 17 00:00:00 2001 From: lkxed Date: Tue, 6 Sep 2022 23:32:13 +0800 Subject: [PATCH 1019/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020220906=20A=20beginner-s=20guide=20to=20making=20a?= =?UTF-8?q?=20dark=20theme=20for=20a=20website.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...de to making a dark theme for a website.md | 340 ++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 sources/tech/20220906 A beginner-s guide to making a dark theme for a website.md diff --git a/sources/tech/20220906 A beginner-s guide to making a dark theme for a website.md b/sources/tech/20220906 A beginner-s guide to making a dark theme for a website.md new file mode 100644 index 0000000000..bc943dd807 --- /dev/null +++ b/sources/tech/20220906 A beginner-s guide to making a dark theme for a website.md @@ -0,0 +1,340 @@ +[#]: subject: "A beginner's guide to making a dark theme for a website" +[#]: via: "https://opensource.com/article/22/9/dark-theme-website" +[#]: author: "Sachin Samal https://opensource.com/users/sacsam005" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A beginner's guide to making a dark theme for a website +====== +Learn how to program dark website themes using HTML, CSS variables, classes, and JavaScript methods. + +![Digital creative of a browser on the internet][1] + +Having a dark theme for your website is a common feature these days. There are various ways to add a dark theme to your website, and in this article, I demonstrate a beginner-friendly way of programming a dark theme for the web. Feel free to explore, make mistakes, and, more importantly, learn by manipulating the code in your own way. + +![Display of both light and dark theme web pages][2] + +Image by: (Sachin Samal, CC BY-SA 4.0) + +### Icons + +I like to provide a visual way for my users to discover the dark mode feature. You can include an easy set of icons by inserting the Font Awesome link in the `` element of your HTML. + +``` + + + +  Toggle - Dark Theme + +``` + +Inside your `` tag, create a Font Awesome moon icon class, which you will switch to the Font Awesome sun icon class later using JavaScript. This icon allows users to switch from the default light theme to the dark theme and back again. In this case, you're changing from `fa-moon` while in the light theme to `fa-sun` while in the dark theme. In other words, the icon is always the opposite of the current mode. + +``` + + 
              + +``` + +Next, create a CSS class in your stylesheet. You'll append this using the JavaScript `add()` method to toggle between themes. The `toggle()` function adds or removes a class name from an element with JavaScript. This CSS code creates a `changeTheme` class, setting the background color to dark gray and the foreground color (that's the text) to light gray. + +``` +.changeTheme { +  background: #1D1E22; +  color: #eee; +} +``` + +### Toggle between themes + +To toggle the appearance of the theme button and to apply the `changeTheme` class, use the `onclick()`, `toggle()`, `contains()`, `add()`, and `remove()` JavaScript methods inside your ` +``` + +The complete code: + +``` + + + +  Toggle - Dark Theme + + + + 
              + + + +``` + +### Complete themes + +The code so far may not fully switch the theme of a complex website. For instance, your site might have a header, a main, and a footer, each with multiple divs and other elements. In that case, you could create a standard dark theme CSS class and append it to the desired web parts. + +### Get familiar with your browser's console + +To inspect your browser's console, on the webpage where you run this code, press `Ctrl+Shift+I` or right-click and select the `Inspect` option. + +When you select `Elements` in the console and toggle your theme button, the browser gives you an indication of whether or not your JavaScript is working. In the console, you can see that the CSS class you appended using JavaScript is added and removed as you toggle. + +![Use browser tools to test light and dark themes][3] + +Image by: (Sachin Samal, CC BY-SA 4.0) + +Add a navigation and card section to see how adding the CSS class name on an HTML element with JavaScript works. + +### Example code for a dark theme + +Here's some example code. You can alternately view it with a live preview [here][4]. + +``` + + + +  Toggle - Dark Theme + + + + + + 
              +   

              Beginner Friendly Dark Theme

              + + 
              +   
              +     
              + +       
              +         
              +           
              +             
              What is Lorem Ipsum?
              +             
                +               
              • Sed sit amet felis tellus.
              • +               
              • Sed sit amet felis tellus.
              • +             
              +           
              +         
              +       
              + +       
              +         
              +           
              +             
              What is Lorem Ipsum?
              +             
                +               
              • Sed sit amet felis tellus.
              • +               
              • Sed sit amet felis tellus.
              • +             
              +           
              +         
              +       
              + +       
              +         
              +           
              +             
              What is Lorem Ipsum?
              +             
                +               
              • Sed sit amet felis tellus.
              • +               
              • Sed sit amet felis tellus.
              • +             
              +           
              +         
              +       
              + +     
              +   
              +  + +``` + +The `for...of` loop of JavaScript applies ".dark-theme" class styling properties to each `card` on the page, regardless of its position. It applies the theme to all web parts selected with `querySelectorAll()` in the ` + + + +``` + +这就是显示在浏览器中的 Web 组件: + +![Web component displayed in a browser][6] + +(Ramakrishna Pattnaik, [CC BY-SA 4.0][7]) + +由于 Web 组件中只包含 HTML、CSS 和 JavaScript,它们本来就是浏览器所支持的,并且可以无瑕疵地跟前端框架(例如 React 和 Vue)一同使用。下面这段简单的代码展现的是它跟一个由 [Create React App] 引导的一个简单的 React App 的整合方法。如果你需要,可以引入前面定义的 **weather-card.js**,把它作为一个组件使用: + + +``` +import './App.css'; +import './weather-card'; + +function App() { +  return ( +  +  ); +} + +export default App; +``` + +### Web 组件的生命周期 + +一切组件都遵循从初始化到移除的生命周期法则。每个生命周期事件都有相应的方法,你可以借助这些方法令组件更好地工作。Web 组件的生命周期事件包括: + + * **Constructor:** Web 组件的构造函数在它被挂载前调用,意味着在元素附加到文档对象前被创建。它用于初始化本地状态、绑定事件处理器以及创建 Shadow DOM。在构造函数中,必须调用 `super()`,执行父类的构造函数。 + * **ConnectedCallBack:** 当一个元素被挂载(插入 DOM 树)时调用。该函数处理创建 DOM 节点的初始化过程中的相关事宜,大多数情况下用于类似于网络请求的操作。React 开发者可以将它与 `componentDidMount` 相关联。 + * **attributeChangedCallback:** 这个方法接收三个参数:`name`, `oldValue` 和 `newValue`。组件的任一属性发生变化,就会执行这个方法。属性由静态 `observedAttributes` 方法声明: +``` +static get observedAttributes() { +  return ['name', '_id']; +} +``` +一旦属性名或 `_id` 改变,就会调用 `attributeChangedCallback` 方法。 + * **DisconnectedCallBack:**当一个元素从 DOM 树移除,会执行这个方法。它相当于 React 中的 `componentWillUnmount`。它可以用于释放不能由垃圾回收机制自动清除的资源,比如 DOM 事件的取消订阅、停用计时器或取消所有已注册的回调方法。 + * **AdoptedCallback:** 每次自定义元素移动到一个新文档时调用。只有在处理 IFrame 时会发生这种情况。 + + + +### 模块化开源 + +Web 组件对于开发 Web App 很有用。无论你是熟练使用 JavaScript 的老手,还是初学者,无论你的目标客户使用哪种浏览器,借助这种开源标准创建可重用的代码都是一件可以轻松完成的事。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/7/web-components + +作者:[Ramakrishna Pattnaik][a] +选题:[lujun9972][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/rkpattnaik780 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_web_internet_website.png?itok=g5B_Bw62 (Digital creative of a browser on the internet) +[2]: https://en.wikipedia.org/wiki/Document_Object_Model +[3]: https://openweathermap.org/api +[4]: http://api.openweathermap.org/data/2.5/weather?lat=${this.latitude}\&lon=${this.longitude}\&appid=API\_KEY\` +[5]: https://gist.github.com/rkpattnaik780/acc683d3796102c26c1abb03369e31f8 +[6]: https://opensource.com/sites/default/files/uploads/webcomponent.png (Web component displayed in a browser) +[7]: https://creativecommons.org/licenses/by-sa/4.0/ +[8]: https://create-react-app.dev/docs/getting-started/ From 6ad434f114270ac259c429c0940e95690008ffe2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 14 Oct 2022 10:08:49 +0800 Subject: [PATCH 1545/3123] translated --- ...ate LVM Partition Step-by-Step in Linux.md | 216 ------------------ ...ate LVM Partition Step-by-Step in Linux.md | 215 +++++++++++++++++ 2 files changed, 215 insertions(+), 216 deletions(-) delete mode 100644 sources/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md create mode 100644 translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md diff --git a/sources/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md b/sources/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md deleted file mode 100644 index 687aff9624..0000000000 --- a/sources/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md +++ /dev/null @@ -1,216 +0,0 @@ -[#]: subject: "How to Create LVM Partition Step-by-Step in Linux" -[#]: via: "https://www.linuxtechi.com/how-to-create-lvm-partition-in-linux/" -[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Create LVM Partition Step-by-Step in Linux -====== -In this guide, we will cover how to create lvm partition step-by-step in Linux. - -LVM stands for Logical Volume Management, it is the recommended way to manage disk or storage on Linux systems specially for servers. One of the main advantages of LVM partition is that we can extend its size online without any downtime. LVM partition can also be reduced but it is not recommended. - -For the demo purpose, I have attached 15GB disk to my Ubuntu 22.04 system, we will create LVM partition on this disk from the command line. - -##### Prerequisites - -* Raw disk attached to Linux system -* Local User with Sudo rights -* Pre-Installed  lvm2 package - -Without further ado, let’s deep dive into the steps. - -### Step 1) Identify new attached raw disk - -Login to your system, open the terminal and run following dmesg command, - -``` -$ sudo dmesg | grep -i sd -``` - -In the output, look for new disk attached of size 15GB, - -![dmesg-command-new-attached-disk-linux][1] - -Alternate way to identify new attached raw disk is via fdisk command, - -``` -$ sudo fdisk -l | grep -i /dev/sd -``` - -Output, - -![fdisk-command-output-new-disk][2] - -From output above, it is confirmed that new attached disk is ‘/dev/sdb’ - -### Step 2) Create PV (Physical Volume) - -Before start creating pv on disk /dev/sdb, make sure lvm2 package is installed. In case it is not installed, then run following command, - -``` -$ sudo apt install lvm2     // On Ubuntu / Debian -$ sudo dnf install lvm2    // on RHEL / CentOS -``` - -Run following pvcreate command to create pv on disk /dev/sdb, - -``` -$ sudo pvcreate /dev/sdb -  Physical volume "/dev/sdb" successfully created. -$ -``` - -To verify pv status run, - -``` -$ sudo pvs /dev/sdb -Or -$ sudo pvdisplay /dev/sdb -``` - -![pvdisplay-command-output-linux][3] - -### Step 3) Create VG (Volume Group) - -To create a volume group, we will use vgcreate command. Creating VG means adding pv to the volume group. - -Syntax : - -``` -$ sudo vgcreare   -``` - -In our case, command would be, - -``` -$ sudo vgcreate volgrp01 /dev/sdb -  Volume group "volgrp01" successfully created -$ -``` - -Run following commands to verify the status of vg (volgrp01) - -``` -$ sudo vgs volgrp01 -Or -$ sudo vgdisplay volgrp01 -``` - -Output of above commands, - -![vgs-command-output-linux][4] - -Above output confirms that volume group (volgrp01) of size 15 GiB is created successful and size of one physical extend (PE) is 4 MB. PE size can be changed while creating vg. - -### Step 4) Create LV (Logical Volume) - - -Lvcreate command is used to create LV from the VG. Syntax of lvcreate command would look like below, - -``` -$ sudo lvcreate -L -n    -``` - -In our case, following command will be used to create lv of size 14 GB - -``` -$ sudo lvcreate -L 14G -n lv01 volgrp01 -  Logical volume "lv01" created. -$ -``` - -Validate the status of lv, run - -``` -$ sudo lvs /dev/volgrp01/lv01 -or -$ sudo lvdisplay /dev/volgrp01/lv01 -``` - -Output, - -![lvs-command-output-linux][5] - -Output above shows that LV (lv01) has been created successfully of size 14 GiB. - -### Step 5) Format LVM Partition - -Use mkfs command to format the lvm partition. In our case lvm partition is /dev/volgrp01/lv01 - -Note:  We can format the partition either ext4 or xfs, so choose the file system type according to your setup and requirement. - -Run following command to format LVM partition as ext4 file system. - -``` -$ sudo mkfs.ext4 /dev/volgrp01/lv01 -``` - -![mkfs-ext4-filesystem-lvm][6] - -Execute beneath command to format the lvm partition with xfs file system, - -``` -$ sudo mkfs.xfs /dev/volgrp01/lv01 -``` - -To use above formatted partition, we must mount it on some folder. So, let’s create a folder /mnt/data - -``` -$ sudo mkdir /mnt/data -``` - -Now run mount command to mount it on /mnt/data folder, - -``` -$ sudo mount /dev/volgrp01/lv01 /mnt/data/ -$ df -Th /mnt/data/ -Filesystem                Type  Size  Used Avail Use% Mounted on -/dev/mapper/volgrp01-lv01 ext4   14G   24K   13G   1% /mnt/data -$ -``` - -Try to create some dummy file, run following commands, - -``` -$ cd /mnt/data/ -$ echo "testing lvm partition" | sudo tee  dummy.txt -$ cat dummy.txt -testing lvm partition -$ -$ sudo rm -f  dummy.txt -``` - -Perfect, above commands output confirm that we can access lvm partition. - -To mount above lvm partition permanently, add its entries in fstab file using following echo command, - -``` -$ echo '/dev/volgrp01/lv01  /mnt/data  ext4  defaults 0 0' | sudo  tee -a /etc/fstab -$ sudo mount -a -``` - -That’s all from this guide, thanks for the reading. Kindly do post your queries and feedback in below comments section. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/how-to-create-lvm-partition-in-linux/ - -作者:[James Kiarie][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/james/ -[b]: https://github.com/lkxed -[1]: https://www.linuxtechi.com/wp-content/uploads/2022/10/dmesg-command-new-attached-disk-linux.png -[2]: https://www.linuxtechi.com/wp-content/uploads/2022/10/fdisk-command-output-new-disk.png -[3]: https://www.linuxtechi.com/wp-content/uploads/2022/10/pvdisplay-command-output-linux.png -[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/vgs-command-output-linux.png -[5]: https://www.linuxtechi.com/wp-content/uploads/2022/10/lvs-command-output-linux.png -[6]: https://www.linuxtechi.com/wp-content/uploads/2022/10/mkfs-ext4-filesystem-lvm.png diff --git a/translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md b/translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md new file mode 100644 index 0000000000..1a91ab8883 --- /dev/null +++ b/translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md @@ -0,0 +1,215 @@ +[#]: subject: "How to Create LVM Partition Step-by-Step in Linux" +[#]: via: "https://www.linuxtechi.com/how-to-create-lvm-partition-in-linux/" +[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +# 如何在 Linux 中逐步创建 LVM 分区 + +在本指南中,我们将逐步介绍如何在 Linux 中创建 lvm 分区。 + +LVM 代表逻辑卷管理,它是专门为服务器管理 Linux 系统上的磁盘或存储的推荐方式。 LVM 分区的主要优点之一是我们可以实时扩展其大小而无需停机。 LVM 分区也可以减少,但不推荐。 + +为了演示,我在我的 Ubuntu 22.04 系统上连接了 15GB 磁盘,我们将从命令行在该磁盘上创建 LVM 分区。 + +##### 先决条件 + +- 连接到 Linux 系统的原始磁盘 +- 具有 Sudo 权限的本地用户 +- 预装 lvm2 包 + +事不宜迟,让我们深入了解这些步骤。 + +### 步骤 1) 识别新连接的原始磁盘 + +登录到你的系统,打开终端并运行以下 dmesg 命令: + +``` +$ sudo dmesg | grep -i sd +``` + +在输出中,查找大小为 15GB 的新磁盘。 + +![dmesg-command-new-attached-disk-linux][1] + +识别新连接的原始磁盘的另一种方法是通过 fdisk 命令: + +``` +$ sudo fdisk -l | grep -i /dev/sd +``` + +输出: + +![fdisk-command-output-new-disk][2] + +从上面的输出,可以确认新连接的磁盘是 “/dev/sdb” + +### 步骤 2)创建 PV(物理卷) + +在开始在磁盘 /dev/sdb 上创建 pv 之前,请确保已安装 lvm2 包。如果未安装,请运行以下命令: + +``` +$ sudo apt install lvm2 // On Ubuntu / Debian +$ sudo dnf install lvm2 // on RHEL / CentOS +``` + +运行以下 pvcreate 命令在磁盘 /dev/sdb 上创建 pv: + +``` +$ sudo pvcreate /dev/sdb + Physical volume "/dev/sdb" successfully created. +$ +``` + +要验证 pv 状态,运行: + +``` +$ sudo pvs /dev/sdb +或者 +$ sudo pvdisplay /dev/sdb +``` + +![pvdisplay-command-output-linux][3] + +### 步骤 3) 创建 VG(卷组) + +要创建卷组,我们将使用 vgcreate 命令。创建 VG 意味着将 pv 添加到卷组。 + +语法: + +``` +$ sudo vgcreare +``` + +在我们的例子中,命令是: + +``` +$ sudo vgcreate volgrp01 /dev/sdb + Volume group "volgrp01" successfully created +$ +``` + +运行以下命令以验证 vg (volgrp01) 的状态: + +``` +$ sudo vgs volgrp01 +或者 +$ sudo vgdisplay volgrp01 +``` + +上述命令的输出: + +![vgs-command-output-linux][4] + +以上输出确认大小为 15 GiB 的卷组 (volgrp01) 已成功创建,一个物理扩展 (PE) 的大小为 4 MB。创建 vg 时可以更改 PE 大小。 + +### 步骤 4)创建 LV(逻辑卷) + +Lvcreate 命令用于从 VG 创建 LV。 lvcreate 命令的语法如下所示: + +``` +$ sudo lvcreate -L -n +``` + +在我们的例子中,以下命令将用于创建大小为 14 GB 的 lv: + +``` +$ sudo lvcreate -L 14G -n lv01 volgrp01 + Logical volume "lv01" created. +$ +``` + +验证 lv 的状态,运行: + +``` +$ sudo lvs /dev/volgrp01/lv01 +或者 +$ sudo lvdisplay /dev/volgrp01/lv01 +``` + +输出: + +![lvs-command-output-linux][5] + +上面的输出显示 LV (lv01) 已成功创建,大小为 14 GiB。 + +### 步骤 5) 格式化 LVM 分区 + +使用 mkfs 命令格式化 lvm 分区。在我们的例子中,lvm 分区是 /dev/volgrp01/lv01。 + +注意:我们可以将分区格式化为 ext4 或 xfs,因此请根据你的设置和要求选择文件系统类型。 + +运行以下命令将 LVM 分区格式化为 ext4 文件系统。 + +``` +$ sudo mkfs.ext4 /dev/volgrp01/lv01 +``` + +![mkfs-ext4-filesystem-lvm][6] + +执行下面的命令,用 xfs 文件系统格式化 lvm 分区: + +``` +$ sudo mkfs.xfs /dev/volgrp01/lv01 +``` + +要使用上述格式化分区,我们必须将其挂载到某个文件夹中。所以,让我们创建一个文件夹 /mnt/data: + +``` +$ sudo mkdir /mnt/data +``` + +现在运行 mount 命令将其挂载到 /mnt/data 文件夹: + +``` +$ sudo mount /dev/volgrp01/lv01 /mnt/data/ +$ df -Th /mnt/data/ +Filesystem Type Size Used Avail Use% Mounted on +/dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data +$ +``` + +尝试创建一些虚拟文件,运行以下命令: + +``` +$ cd /mnt/data/ +$ echo "testing lvm partition" | sudo tee dummy.txt +$ cat dummy.txt +testing lvm partition +$ +$ sudo rm -f dummy.txt +``` + +完美,以上命令输出确认我们可以访问 lvm 分区。 + +要永久挂载到 lvm 分区之上,请使用以下 echo 命令将其条目添加到 fstab 文件中: + +``` +$ echo '/dev/volgrp01/lv01 /mnt/data ext4 defaults 0 0' | sudo tee -a /etc/fstab +$ sudo mount -a +``` + +以上就是本指南的全部内容,感谢阅读。请在下面的评论区发表你的问题和反馈。 + +--- + +via: https://www.linuxtechi.com/how-to-create-lvm-partition-in-linux/ + +作者:[James Kiarie][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.linuxtechi.com/author/james/ +[b]: https://github.com/lkxed +[1]: https://www.linuxtechi.com/wp-content/uploads/2022/10/dmesg-command-new-attached-disk-linux.png +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/10/fdisk-command-output-new-disk.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/10/pvdisplay-command-output-linux.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/vgs-command-output-linux.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/10/lvs-command-output-linux.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/10/mkfs-ext4-filesystem-lvm.png From d3110f96e1ab94767cc43f730ba37d96e26c57dd Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 14 Oct 2022 10:25:35 +0800 Subject: [PATCH 1546/3123] translated --- ...ps for Package Management in Arch Linux.md | 206 ------------------ ...ps for Package Management in Arch Linux.md | 205 +++++++++++++++++ 2 files changed, 205 insertions(+), 206 deletions(-) delete mode 100644 sources/tech/20220927 GUI Apps for Package Management in Arch Linux.md create mode 100644 translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md diff --git a/sources/tech/20220927 GUI Apps for Package Management in Arch Linux.md b/sources/tech/20220927 GUI Apps for Package Management in Arch Linux.md deleted file mode 100644 index 5910779c5d..0000000000 --- a/sources/tech/20220927 GUI Apps for Package Management in Arch Linux.md +++ /dev/null @@ -1,206 +0,0 @@ -[#]: subject: "GUI Apps for Package Management in Arch Linux" -[#]: via: "https://itsfoss.com/arch-linux-gui-package-managers/" -[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GUI Apps for Package Management in Arch Linux -====== - -[Installing Arch Linux][1] is considered challenging. This is why [several Arch-based distributions exist][2] to make things easier by providing a graphical installer. - -Even if you manage to install Arch Linux, you’ll notice that it relies heavily on the command line. You’ll have to open the terminal if you have to install applications or update the system. - -Yes! Arch Linux does not have a software center. Shocking for many, I know. - -If you feel uncomfortable using the command line for managing applications, you can install a GUI tool. This helps in searching for packages and installing and removing them from the comfort of the GUI. - -Wondering which graphical frontend for [pacman commands][3] you should use? I have some suggestions to help you get started. - -**Please note that some software managers are desktop environment specific.** - -### 1. Apper - -![Installing Firefox using Apper][4] - -Apper is a minimal Qt5 application and package manager using PackageKit which also supports AppStream and automatic updates. But, **there is no AUR support**. - -To install it from the official repos use the command below. - -``` -sudo pacman -Syu apper -``` - -[Apper on GitLab][5] - -### 2. Deepin App Store - -![Installing Firefox using Deepin App Store][6] - -Deepin App Store is an app store for Deepin Desktop Environment built with DTK(Qt5), using PackageKit with AppStream support and also provides system update notifications. There is **no AUR support**. - -To install it, use the command below. - -``` -sudo pacman -Syu deepin-store -``` - -[Deepin Store on Github][7] - -### 3. Discover - -![Installing Firefox using Discover][8] - -Discover needs no introduction for KDE Plasma users. It is a Qt-based application manager using PackageKit which supports AppStream, Flatpak and Firmware updates. - -For installing Flatpak and Firmware updates from Discover `flatpak` and `fwupd` packages need to be installed respectively. - -There is no AUR support. - -``` -sudo pacman -Syu discover packagekit-qt5 -``` - -[Discover on GitLab][9] - -### 4. GNOME PackageKit - -![Installing Firefox using GNOME PackageKit][10] - -GNOMEPackageKit is a GTK3 package manager using PackageKit which supports AppStream. Unfortunately, there is **no AUR support**. - -To install it from the official repos use the command below. - -``` -sudo pacman -Syu gnome-packagekit -``` - -[PackageKit on freedesktop][11] - -### 5. GNOME Software - -![Installing Firefox using GNOME Software][12] - -GNOME Software needs no introduction for GNOME desktop users. It is the GTK4 application manager using PackageKit which supports AppStream, Flatpak and Firmware updates. - -There is no AUR support. To install Flatpak and Firmware updates from GNOME Software `flatpak` and `fwupd` packages need to be installed respectively. - -Install it using: - -``` -sudo pacman -Syu gnome-software-packagekit-plugin gnome-software -``` - -[GNOME Software on GitLab][13] - -### 6. tkPacman - -![Installing Firefox using tkPacman][14] - -It is a Tk pacman wrapper written in Tcl. The interface is similar to [Synaptic Package Manager][15]. - -It is quite lightweight due to no GTK/Qt dependencies as it is uses Tcl/Tk GUI toolkit. - -It does not support AUR which is ironic because you need to install it from [AUR][16]. You need to install an [AUR helper][17] like yay beforehand. - -``` -yay -Syu tkpacman -``` - -[tkPacman on Sourceforge][18] - -### 7. Octopi - -![Installing Firefox using Octopi][19] - -Consider it a better looking cousin of tkPacman. It uses Qt5 and Alpm and also supports Appstream and **AUR (via yay)**. - -You also get desktop notifications, repository editor and cache cleaner. The interface is similar to Synaptic Package Manager. - -To install it from the AUR, use the following command. - -``` -yay -Syu octopi -``` - -[Octopi on GitHub][20] - -### 8. Pamac - -![Installing Firefox using Pamac][21] - -Pamac is the graphical package manager from Manjaro Linux. It based on GTK3 and Alpm and **supports AUR, Appstream, Flatpak and Snap**. - -Pamac also supports automatic download of updates and downgrade of packages. - -It is the most widely used Application in Arch Linux derivatives. But, has been notorious for [DDoSing the AUR webpage][22]. - -There are several ways to [install Pamac on Arch Linux][23]. The simplest would be to use an AUR helper. - -``` -yay -Syu pamac-aur -``` - -[Pamac on GitLab][24] - -### Conclusion - -To remove any of the above-mentioned GUI package managers along with the dependencies and configuration files, use the following command replacing *packagename* with the name of package to be removed. - -``` -sudo pacman -Rns packagename -``` - -So it seems Arch Linux can also be used without touching the terminal with the right tools. - -There are also some other applications also which use Terminal User Interface (TUI). A few examples are [pcurses][25], [cylon][26], [pacseek][27], and [yup][28]. But, this article is about only the ones with proper GUI. - -**Note:** PackageKit opens up system permissions by default, and is otherwise [not recommended][29] for general usage. Because if the user is part of the wheel group no password is required to update or install any software. - -**You saw several options for using GUI software center on Arch Linux. It’s time to make a decision on using one of them. Which one would you choose? Pamac or OctoPi or something else? Leave a quick comment below right now.** - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/arch-linux-gui-package-managers/ - -作者:[Anuj Sharma][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/anuj/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/install-arch-linux/ -[2]: https://itsfoss.com/arch-based-linux-distros/ -[3]: https://itsfoss.com/pacman-command/ -[4]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[5]: https://invent.kde.org/system/apper -[6]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[7]: https://github.com/dekzi/dde-store -[8]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[9]: https://invent.kde.org/plasma/discover -[10]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[11]: https://freedesktop.org/software/PackageKit/index.html -[12]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[13]: https://gitlab.gnome.org/GNOME/gnome-software -[14]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[15]: https://itsfoss.com/synaptic-package-manager/ -[16]: https://itsfoss.com/aur-arch-linux/ -[17]: https://itsfoss.com/best-aur-helpers/ -[18]: https://sourceforge.net/projects/tkpacman -[19]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[20]: https://github.com/aarnt/octopi -[21]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png -[22]: https://gitlab.manjaro.org/applications/pamac/-/issues/1017 -[23]: https://itsfoss.com/install-pamac-arch-linux/ -[24]: https://gitlab.manjaro.org/applications/pamac -[25]: https://github.com/schuay/pcurses -[26]: https://github.com/gavinlyonsrepo/cylon -[27]: https://github.com/moson-mo/pacseek -[28]: https://github.com/ericm/yup -[29]: https://bugs.archlinux.org/task/50459 diff --git a/translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md b/translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md new file mode 100644 index 0000000000..fc55be6e66 --- /dev/null +++ b/translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md @@ -0,0 +1,205 @@ +[#]: subject: "GUI Apps for Package Management in Arch Linux" +[#]: via: "https://itsfoss.com/arch-linux-gui-package-managers/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +# Arch Linux 中用于包管理的 GUI 应用 + +[安装 Arch Linux][1] 被认为具有挑战性。这就是为什么[有几个基于 Arch 的发行版][2]通过提供图形化的安装程序使事情变得简单。 + +即使你设法安装了 Arch Linux,你也会注意到它严重依赖命令行。如果你需要安装应用或更新系统,那么必须打开终端。 + +是的! Arch Linux 没有软件中心。我知道,这让很多人感到震惊。 + +如果你对使用命令行管理应用感到不舒服,你可以安装一个 GUI 工具。这有助于在舒适的 GUI 中搜索包以及安装和删除它们。 + +想知道你应该使用 [pacman 命令][3]的哪个图形前端?我有一些建议可以帮助你入门。 + +**请注意,某些软件管理器是特定于桌面环境的。** + +### 1. Apper + +![使用 Apper 安装 Firefox][4] + +Apper 是使用 PackageKit 的最小化 Qt5 应用和包管理器,它还支持 AppStream 和自动更新。但是,**没有 AUR 支持**。 + +要从官方仓库安装它,请使用以下命令。 + +``` +sudo pacman -Syu apper +``` + +[GitLab 上的应用][5] + +### 2. 深度应用商店 + +![使用深度应用商店安装 Firefox][6] + +深度应用商店是深度桌面环境的应用商店,使用 DTK(QT5)构建,使用 PackageKit,支持 AppStream,同时提供系统更新通知。 **没有 AUR 支持**。 + +要安装它,请使用以下命令。 + +``` +sudo pacman -Syu deepin-store +``` + +[Github 上的深度商店][7] + +### 3. Discover + +![使用 Discover 安装 Firefox][8] + +Discover 不需要为 KDE Plasma 用户介绍。它是一个使用 PackageKit 的基于 Qt 的应用管理器,支持 AppStream、Flatpak 和固件更新。 + +为了安装 Flatpak 和固件更新,需要分别安装 Discover 的 `flatpak` 和 `fwupd` 包。 + +它没有 AUR 支持。 + +``` +sudo pacman -Syu discover packagekit-qt5 +``` + +[GitLab 上的 Discover][9] + +### 4. GNOME PackageKit + +![Installing Firefox using GNOME PackageKit][10] + +GNOMEPackageKit 是一个使用 PackageKit 的 GTK3 包管理器,支持 AppStream。不幸的是,**没有 AUR 支持**。 + +要从官方仓库安装它,请使用以下命令。 + +``` +sudo pacman -Syu gnome-packagekit +``` + +[freedesktop 上的 PackageKit][11] + +### 5. GNOME 软件 + +![Installing Firefox using GNOME Software][12] + +GNOME 软件不需要向 GNOME 桌面用户介绍。它是使用 PackageKit 的 GTK4 应用管理器,支持 AppStream、Flatpak 和固件更新。 + +它没有 AUR 支持。要安装来自 GNOME 软件的 Flatpak 和固件更新,需要分别安装 `flatpak` 和 `fwupd` 包。 + +安装它使用: + +``` +sudo pacman -Syu gnome-software-packagekit-plugin gnome-software +``` + +[GitLab 上的 GNOME 软件][13] + +### 6. tkPacman + +![使用 tkPacman 安装 Firefox][14] + +它是用 Tcl 编写的 Tk pacman 包装器。界面类似于 [Synaptic 包管理器][15]。 + +由于没有 GTK/Qt 依赖,它非常轻量级,因为它使用 Tcl/Tk GUI 工具包。 + +它不支持 AUR,这很讽刺,因为你需要从 [AUR][16] 安装它。你需要事先安装一个 [AUR 助手][17],如 yay。 + +``` +yay -Syu tkpacman +``` + +[Sourceforge 上的 tkPacman][18] + +### 7. Octopi + +![使用 Octopi 安装 Firefox][19] + +可以认为它是 tkPacman 的更好看的表亲。它使用 Qt5 和 Alpm,还支持 Appstream 和 **AUR (通过 yay)**。 + +你还可以获得桌面通知、仓库编辑器和缓存清理器。它的界面类似于 Synaptic 包管理器。 + +要从 AUR 安装它,请使用以下命令。 + +``` +yay -Syu octopi +``` + +[GitHub 上的 Octopi][20] + +### 8. Pamac + +![使用 Pamac 安装 Firefox][21] + +Pamac 是 Manjaro Linux 的图形包管理器。它基于 GTK3 和 Alpm,**支持 AUR、Appstream、Flatpak 和 Snap**。 + +Pamac 还支持自动下载更新和降级软件包。 + +它是 Arch Linux 衍生版中使用最广泛的应用。但因为 [DDoS AUR 网页][22]而臭名昭著。 + +[在 Arch Linux 上安装 Pamac][23] 有几种方法。最简单的方法是使用 AUR 助手。 + +``` +yay -Syu pamac-aur +``` + +[GitLab 上的 Pamac][24] + +### 总结 + +要删除任何上面 GUI 包管理器以及依赖项和配置文件,请使用以下命令将 _packagename_ 替换为要删除的包的名称。 + +``` +sudo pacman -Rns packagename +``` + +这样看来,Arch Linux 也可以在不接触终端的情况下使用合适的工具。 + +还有一些其他应用程序也使用终端用户界面 (TUI)。一些例子是 [pcurses][25]、[cylon][26]、[pacseek][27] 和 [yup][28]。但是,这篇文章只讨论那些有适当的 GUI 的软件。 + +**注意:** PackageKit 默认打开系统权限,否则[不推荐][29]用于一般用途。因为如果用户是 wheel 组的一部分,更新或安装任何软件都不需要密码。 + +**你看到了在 Arch Linux 上使用 GUI 软件中心的几种选择。现在是时候决定使用其中一个了。你会选择哪一个?Pamac 或 OctoPi 还是其他?现在就在下面留言吧**。 + +--- + +via: https://itsfoss.com/arch-linux-gui-package-managers/ + +作者:[Anuj Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者 ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/anuj/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/install-arch-linux/ +[2]: https://itsfoss.com/arch-based-linux-distros/ +[3]: https://itsfoss.com/pacman-command/ +[4]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[5]: https://invent.kde.org/system/apper +[6]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[7]: https://github.com/dekzi/dde-store +[8]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[9]: https://invent.kde.org/plasma/discover +[10]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[11]: https://freedesktop.org/software/PackageKit/index.html +[12]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[13]: https://gitlab.gnome.org/GNOME/gnome-software +[14]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[15]: https://itsfoss.com/synaptic-package-manager/ +[16]: https://itsfoss.com/aur-arch-linux/ +[17]: https://itsfoss.com/best-aur-helpers/ +[18]: https://sourceforge.net/projects/tkpacman +[19]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[20]: https://github.com/aarnt/octopi +[21]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[22]: https://gitlab.manjaro.org/applications/pamac/-/issues/1017 +[23]: https://itsfoss.com/install-pamac-arch-linux/ +[24]: https://gitlab.manjaro.org/applications/pamac +[25]: https://github.com/schuay/pcurses +[26]: https://github.com/gavinlyonsrepo/cylon +[27]: https://github.com/moson-mo/pacseek +[28]: https://github.com/ericm/yup +[29]: https://bugs.archlinux.org/task/50459 From 953d5af1ee106b83b680be96ebb53054e81cfe0f Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 14 Oct 2022 10:44:37 +0800 Subject: [PATCH 1547/3123] translating --- .../tech/20221011 How to Enable Snap Support in Arch Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md b/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md index 89c3000b30..77bc288f52 100644 --- a/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md +++ b/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-snap-arch-linux/" [#]: author: "Pranav Krishna https://itsfoss.com/author/pranav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 43dd1f407f50813ef656cf06defe90aaa99c7683 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Fri, 14 Oct 2022 10:45:30 +0800 Subject: [PATCH 1548/3123] Translated --- ...129 Reasons for servers to support IPv6.md | 192 ------------------ ...129 Reasons for servers to support IPv6.md | 186 +++++++++++++++++ 2 files changed, 186 insertions(+), 192 deletions(-) delete mode 100644 sources/tech/20220129 Reasons for servers to support IPv6.md create mode 100644 translated/tech/20220129 Reasons for servers to support IPv6.md diff --git a/sources/tech/20220129 Reasons for servers to support IPv6.md b/sources/tech/20220129 Reasons for servers to support IPv6.md deleted file mode 100644 index 1e606c4a92..0000000000 --- a/sources/tech/20220129 Reasons for servers to support IPv6.md +++ /dev/null @@ -1,192 +0,0 @@ -[#]: subject: "Reasons for servers to support IPv6" -[#]: via: "https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/" -[#]: author: "Julia Evans https://jvns.ca/" -[#]: collector: "lujun9972" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Reasons for servers to support IPv6 -====== - -I’ve been having a hard time understanding IPv6. On one hand, the basics initially seem pretty straightforward (there aren’t enough IPv4 addresses for all the devices on the internet, so people invented IPv6! There are enough IPv6 addresses for everyone!) - -But when I try to actually understand it, I run into a lot of questions. One question is: `twitter.com` does not support IPv6. Presumably it can’t be causing them THAT many issues to not support it. So why _do_ websites support IPv6? - -I asked people on Twitter [why their servers support IPv6][1] and I got a lot of great answers, which I’ll summarize here. These all come with the disclaimer that I have basically 0 experience with IPv6 so I can’t evaluate these reasons very well. - -First though, I want to explain why it’s possible for `twitter.com` to not support IPv6 because I didn’t understand that initially. - -### how can you tell `twitter.com` doesn’t support IPv6? - -You can tell they don’t support IPv6 is because if you look up their AAAA record (which contains their IPv6 address), there isn’t one. Some other big sites like `github.com` and `stripe.com` also don’t support IPv6. - -``` - - $ dig AAAA twitter.com - (empty response) - $ dig AAAA github.com - (empty response) - $ dig AAAA stripe.com - (empty response) - -``` - -### why does `twitter.com` still work for IPv6 users? - -I found this really confusing, because I’ve always heard that lots of internet users are forced to use IPv6 because we’ve run out of IPv4 addresses. But if that’s true, how could twitter.com continue to work for those people without IPv6 support? Here’s what I learned from the Twitter thread yesterday. - -There are two kinds of internet service providers (ISPs): - - 1. ISPs who own enough IPv4 address for all of their customers - 2. ISPs who don’t - - - -My ISP is in category 1 – my computer gets its own IPv4 address, and actually my ISP doesn’t even support IPv6 at all. - -But lots of ISPs (especially outside of North America) are in category 2: they don’t have enough IPv4 addresses for all their customers. Those ISPs handle the problem by: - - * giving all of their customers a unique IPv6 address, so they can access IPv6 sites directly - * making large groups of their customers _share_ IPv4 addresses. This can either be with CGNAT (”[carrier-grade NAT][2]”) or “464XLAT” or maybe something else. - - - -All ISPs need _some_ IPv4 addresses, otherwise it would be impossible for their customers to access IPv4-only sites like twitter.com. - -### what are the reasons to support IPv6? - -Now we’ve explained why it’s possible to _not_ support IPv6. So why support it? There were a lot of reasons. - -### reason: CGNAT is a bottleneck - -The argument that was most compelling to me was: CGNAT (carrier-grade NAT) is a bottleneck and it causes performance issues, and it’s going to continue to get worse over time as access to IPv4 addresses becomes more and more restricted. - -Someone also mentioned that because CGNAT is a bottleneck, it’s an attractive DDoS target because you can ruin lots of people’s internet experience just by attacking 1 server. - -Servers supporting IPv6 reduces the need for CGNAT (IPv6 users can just connect directly!) which makes the internet work better for everyone. - -I thought this argument was interesting because it’s a “public commons” / community argument – it’s less that supporting IPv6 will make your site specifically work better, and more that if _almost everyone_ supports IPv6 then it’ll make the experience of the internet better for everyone, especially in countries where people don’t have easy access to IPv4 addresses. - -I don’t actually know how much of an issue this is in practice. - -There were lots of more selfish arguments to use IPv6 too though, so let’s get into those. - -### reason: so IPv6-only servers can access your site - -I said before that most IPv6 users still have access to IPv4 though some kind of NAT. But apparently that’s not true for everyone – some people mentioned that they run some servers which only have IPv6 addresses and which aren’t behind any kind of NAT. So those servers are actually totally unable to access IPv4-only sites. - -I imagine that those servers aren’t connecting to arbitrary machines that much – maybe they only need to connect to a few hosts with IPv6 support. - -But it makes sense to me that a machine should be able to access my site even if it doesn’t have an IPv4 address. - -### reason: better performance - -For users who are using both IPv4 and IPv6 (with a dedicated IPv6 address and a shared IPv4 address), apparently IPv6 is often faster because it doesn’t need to go through an extra translation layer. - -So supporting IPv6 can make the site faster for users sometimes. - -In practice clients use an algorithm called “Happy Eyeballs” which tries to figure out whether IPv4 or IPv6 will be faster and then uses whichever seems faster. - -Some other performance benefits people mentioned: - - * maybe sometimes using IPv6 can get you a SEO boost because of the better performance. - * maybe using IPv6 causes you to go through better (faster) network hardware because it’s a newer protocol - - - -### reason: resilience against IPv4 internet outages - -One person said that they’ve run into issues where there was an internet outage that only affected IPv4 traffic, because of accidental BGP poisoining. - -So supporting IPv6 means that their site can still stay partially online during those outages. - -### reason: to avoid NAT issues with home servers - -A few people mentioned that it’s much easier to use IPv6 with home servers – instead of having to do port forwarding through your router, you can just give every server a unique IPv6 address and then access it directly. - -Of course, for this to work the client needs to have IPv6 support, but more and more clients these days have IPv6 support too. - -### reason: to own your IP addresses - -Apparently you can buy IPv6 addresses, use them for the servers on your home network, and then if you change your ISP, continue to use the same IP addresses? - -I’m still not totally sure how this works (I don’t know how you would convince computers on the internet to actually route those IPs to you? I guess you need to run your own AS or something?). - -### reason: to learn about IPv6 - -One person said they work in security and in security it’s very important to understand how internet protocols work (attackers are using internet protocols!). So running an IPv6 server helps them learn how it works. - -### reason: to push IPv6 forward / IPv4 is “legacy” - -A couple of people said that they support IPv6 because it’s the current standard, and so they want to contribute to the success of IPv6 by supporting it. - -A lot of people also said that they support IPv6 because they think sites that only support IPv4 are “behind” or “legacy”. - -### reason: it’s easy - -I got a bunch of answers along the lines of “it’s easy, why not”. Obviously adding IPv6 support is not easy in all situations, but a couple of reasons it might be easy in some cases: - - * you automatically got an IPv6 address from your hosting company, so all you need to do is add an `AAAA` record pointing to that address - * your site is behind a CDN that supports IPv6, so you don’t need to do anything extra - - - -### reason: safer networking experimentation - -Because the address space is so big, if you want to try something out you can just grab an IPv6 subnet, try out some things in it, and then literally never use that subnet again. - -### reason: to run your own autonomous system (AS) - -A few people said they were running their own autonomous system (I talked about what an AS is a bit in this [BGP post][3]). IPv4 addresses are too expensive so they bought IPv6 addresses for their AS instead. - -### reason: security by obscurity - -If your server _only_ has a public IPv6 address, attackers can’t easily find it by scanning the whole internet. The IPv6 address space is too big to scan! - -Obviously this shouldn’t be your only security measure, but it seems like a nice bonus – any time I run an IPv4 public server I’m always a tiny bit surprised by how it’s constantly being scanned for vulnerabilities (like old versions of WordPress, etc). - -### very silly reason: you can put easter eggs in your IPv6 address - -IPv6 addresses have a lot of extra bits in them that you can do frivolous things with. For example one of Facebook’s IPv6 addresses is “2a03:2880:f10e:83:face:b00c:0:25de” (it has `face:b00c` in it). - -### there are more reasons than I thought - -That’s all I’ve learned about the “why support IPv6?” question so far. - -I came away from this conversation more motivated to support IPv6 on my (very small) servers than I had been before. But that’s because I think supporting IPv6 will require very little effort for me. (right now I’m using a CDN that supports IPv6 so it comes basically for free) - -I know very little about IPv6 still but my impression is that IPv6 support often isn’t zero-effort and actually can be a lot of work. For example, I have no idea how much work it would actually be for Twitter to add IPv6 support on their edge servers. - -### some more IPv6 questions - -Here are some more IPv6 questions I have that maybe I’ll explore later: - - * what are the _disadvantages_ to supporting IPv6? what goes wrong? - * what are the incentives for ISPs that own enough IPv4 addresses for their customers to support IPv6? (another way of asking: is it likely that my ISP will move to supporting IPv6 in the next few years? or are they just not incentivized to do it so it’s unlikely?) - * [digital ocean][4] seems to only support IPv4 floating IPs, not IPv6 floating IPs. Why not? Shouldn’t it be _easier_ to give out IPv6 floating IPs since there are more of them? - * when I try to ping an IPv6 address (like example.com’s IP `2606:2800:220:1:248:1893:25c8:1946` for example) I get the error `ping: connect: Network is unreachable`. Why? (answer: it’s because my ISP doesn’t support IPv6 so my computer doesn’t have a public IPv6 address) - - - -This [IPv4 vs IPv6 article from Tailscale][5] looks interesting and answers some of these questions. - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/ - -作者:[Julia Evans][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://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://twitter.com/b0rk/status/1487156306884636672 -[2]: https://en.wikipedia.org/wiki/Carrier-grade_NAT -[3]: https://jvns.ca/blog/2021/10/05/tools-to-look-at-bgp-routes/ -[4]: https://docs.digitalocean.com/products/networking/floating-ips/ -[5]: https://tailscale.com/kb/1134/ipv6-faq/ diff --git a/translated/tech/20220129 Reasons for servers to support IPv6.md b/translated/tech/20220129 Reasons for servers to support IPv6.md new file mode 100644 index 0000000000..2024b77e6f --- /dev/null +++ b/translated/tech/20220129 Reasons for servers to support IPv6.md @@ -0,0 +1,186 @@ +[#]: subject: "Reasons for servers to support IPv6" +[#]: via: "https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +服务器支持 IPv6 的原因 +====== + +我一直在努力学习关于 IPv6 的相关知识。一方面,IPv6 的基础概念是很简单的(没有足够的 IPv4 地址可以满足互联网上的所有设备,所以人们发明了 IPv6!每个人都能有足够的 IPv6 地址!) + +但是当我试图进一步理解它时,我遇到了很多问题。其中一个问题是:为什么 `twitter.com` 不支持 IPv6。假设,网站不支持 IPv6 并不会造成很多困难,那么为什么网站需要支持 IPv6 呢? + +我在 Twitter 上询问了很多人 [为什么他们的服务器支持 IPv6][1],我得到了很多很好的答案,我将在这里总结一下。事先说明一下,因为我对 IPv6 基本上毫无经验,所以下面所总结的理由中可能会有写得不准确的地方,请大家多多包涵。 + +首先,我想解释一下为什么 `twitter.com` 可以不支持 IPv6,因为这是最先让我困惑的地方。 + +### 怎么知道 `twitter.com` 不支持 IPv6 呢? + +你可以使用 dig 命令以 AAAA 的选项查询某一个域名的 IPv6 地址记录,如果没有记录,则表明该域名不支持 IPv6。除了 `twitter.com`,还有一些大型网站,如 `github.com` 和 `stripe.com` 也不支持 IPv6。 + +``` + + $ dig AAAA twitter.com + (empty response) + $ dig AAAA github.com + (empty response) + $ dig AAAA stripe.com + (empty response) + +``` + +### 为什么 `twitter.com` 仍然适用于 IPv6 用户? + +我发现这真的很令人困惑。我一直听说因为 IPv4 地址已经用完了,从而很多互联网用户被迫要使用 IPv6 地址。但如果这是真的,twitter.com 怎么能继续为那些没有 IPv6 支持的人提供服务呢?以下内容是我昨天从 Twitter 线程中学习到的。 + +互联网服务提供商(ISP)有两种: + + 1. 能为所有用户拥有足够 IPv4 地址的 ISP + 2. 不能为所有用户拥有足够 IPv4 地址的 ISP + + +我的互联网服务提供商属于第 1 类,因此我的计算机有自己的 IPv4 地址,实际上我的互联网服务提供商甚至根本不支持 IPv6。 + +但是很多互联网服务提供商(尤其是北美以外的)都属于第 2 类:他们没有足够的 IPv4 地址供所有用户使用。 这些互联网服务提供商通过以下方式处理问题: + + * 为所有用户提供唯一的 IPv6 地址,以便他们可以直接访问 IPv6 网站 + * 让用户 _共享_ IPv4 地址,这可以使用 CGNAT(“[运营商级 NAT(carrier-grade NAT)][2]”)或者“464XLAT”或其他方式。 + +所有互联网服务提供商都需要 _一些_ IPv4 地址,否则他们的用户将无法访问 twitter.com 等只能使用 IPv4 的网站。 + +### 为什么网站要支持 IPv6? + +现在,我们已经解释了为什么可以 _不支持_ IPv6。那为什么要支持 IPv6 呢?有下面这些原因。 + +### 原因一:CGNAT 是一个性能瓶颈 + +对我而言,支持 IPv6 最有说服力的论点是:CGNAT(carrier-grade NAT)是一个瓶颈,它会导致性能问题,并且随着对 IPv4 地址的访问变得越来越受限,它的性能会变得更糟。 + +有人也提到:因为 CGNAT 是一个性能瓶颈,因此它成为了一个有吸引力的拒绝服务攻击(DDoS)的目标,因为你可以通过攻击一台服务器,影响其他用户对该服务器的网站的可用性。 + +支持 IPv6 的服务器减少了对 CGNAT 的需求(IPv6 用户可以直接连接!),这使得互联网对每个人的响应速度都更快了。 + +我认为这个论点很有趣,因为它需要各方的努力——仅仅你的网站支持 IPv6,并不会让你的网站更好地运行,而更重要的是如果 _几乎每个网站_ 都支持 IPv6,那么它将使每个人的互联网体验更好,尤其对于那些无法轻松访问 IPv4 地址的国家/地区。 + +实际上,我不知道这在实践中会有多大的关系。 + +不过,使用 IPv6 还有很多更自私的论点,所以让我们继续探讨吧。 + +### 原因二:只能使用 IPv6 的服务器也能够访问你的网站 + +我之前说过,大多数 IPv6 用户仍然可以通过 NAT 方式访问 IPv4 的网站。但是有些 IPv6 用户是不能访问 IPv4 网站的,因为他们发现他们运行的服务器只有 IPv6 地址,并且不能使用 NAT。因此,这些服务器完全无法访问只能使用 IPv4 的网站。 + +我想这些服务器并没有连接很多主机,也许它们只需要连接到一些支持 IPv6 的主机。 + +但对我来说,即使没有 IPv4 地址,一台主机也应该能够访问我的站点。 + +### 原因三:更好的性能 + +对于同时使用 IPv4 和 IPv6(即具有专用 IPv6 地址和共享 IPv4 地址)的用户,IPv6 通常更快,因为它不需要经过额外的 NAT 地址转换。 + +因此,有时支持 IPv6 的网站可以为用户提供更快的响应。 + +在实际应用中,客户端使用一种称为“Happy Eyeballs”的算法,该算法能够从 IPv4 和 IPv6 中为用户选择一个最快的链接。 + +以下是网站支持 IPv6 的一些其他性能优势: + + * 使用 IPv6 可以提高搜索引擎优化(Search Engine Optimization),因为 IPv6 具有更好的性能。 + * 使用 IPv6 可能会使你的数据包通过更好(更快)的网络硬件,因为相较于 IPv4,IPv6 是一个更新的协议。 + + +### 原因四:能够恢复 IPv4 互联网中断 + +有人说他碰到过由于意外的 BGP 中毒,而导致仅影响 IPv4 流量的互联网中断问题。 + +因此,支持 IPv6 的网站意味着在中断期间,网站仍然可以保持部分在线。 + +### 原因五:避免家庭服务器的NAT问题 + +将 IPv6 与家庭服务器一起使用,会变得简单很多,因为数据包不必通过路由器进行端口转发,因此只需为每台服务器分配一个唯一的 IPv6 地址,然后直接访问服务器的 IPv6 地址即可。 + +当然,要实现这一点,客户端需要支持 IPv6,但如今越来越多的客户端也能支持 IPv6 了。 + +### 原因六:为了拥有自己的 IP 地址 + +你也可以自己购买 IPv6 地址,并将它们用于家庭网络的服务器上。如果你更换了互联网服务提供商,可以继续使用相同的 IP 地址。 + +我不太明白这是如何工作的,是如何让 Internet 上的计算机将这些 IP 地址路由转发给你的?我猜测你需要运行自己的自治系统(AS)或其他东西。 + +### 原因七:为了学习 IPv6 + +有人说他们在安全领域中工作,为保证信息安全,了解互联网协议的工作原理非常重要(攻击者正在使用互联网协议进行攻击!)。因此,运行 IPv6 服务器有助于他们了解其工作原理。 + +### 原因八:为了推进 IPv6 + +有人说因为 IPv6 是当前的标准,因此他们希望通过支持 IPv6 来为 IPv6 的成功做出贡献。 + +很多人还说他们的服务器支持 IPv6,是因为他们认为只能使用 IPv4 的网站已经太“落后”了。 + +### 原因九:IPv6 很简单 + +我还得到了一堆“IPv6 很容易,为什么不做呢”的答案。在所有情况下添加 IPv6 支持并不容易,但在某些情况下添加 IPv6 支持会是很容易的,有以下的几个原因: + + * 你可以从托管公司自动地获得 IPv6 地址,因此你只需要做的就是添加指向该地址的 `AAAA` 记录 + * 你的网站是基于支持 IPv6 的内容分发网络(CDN),因此你无需做任何额外的事情 + + +### 原因十:为了实施更安全的网络实验 + +因为 IPv6 的地址空间很大,所以如果你想在网络中尝试某些东西的时候,你可以使用 IPv6 子网进行实验,基本上你之后不会再用到这个子网了。 + +### 原因十一:为了运行自己的自治系统(AS) + +也有人说他们为了运行自己的自治系统(我在这篇 [BGP 帖子][3] 中谈到了什么是 AS),因此在服务器中提供 IPv6。IPv4 地址太贵了,所以他们为运行自治系统而购买了 IPv6 地址。 + +### 原因十二:IPv6 更加安全 + +如果你的服务器 _只_ 有公共的 IPv6 地址,那么攻击者扫描整个网络,也不能轻易地找出你的服务器地址,这是因为 IPv6 地址空间太大了以至于不能扫描出来! + +这显然不能是你仅有的安全策略,但是这是安全上的一个大大的福利。每次我运行 IPv4 服务器时,我都会惊讶于 IPv4 地址一直能够被扫描出来的脆弱性,就像是老版本的 WordPress 博客系统那样。 + +### 一个很傻的理由:你可以在你的 IPv6 地址中放个小彩蛋 + +IPv6 地址中有很多额外的位,你可以用它们做一些不重要的事情。例如,Facebook 的 IPv6 地址之一是“2a03:2880:f10e:83:face:b00c:0:25de”(其中包含 `face:b00c`)。 + +### 理由还有很多 + +这就是到目前为止我所了解的“为什么支持 IPv6?”的理由。 + +在我理解这些原因后,相较于以前,我在我的(非常小的)服务器上支持 IPv6 更有动力了。但那是因为我觉得支持 IPv6,对我来说只需要很少的努力。(现在我使用的是支持 IPv6 的 CDN,所以我基本上不用做什么额外的事情) + +我仍然对 IPv6 知之甚少,但是在我的印象中,支持 IPv6并不是不需要花费努力的,实际上可能需要大量工作。例如,我不知道 Twitter 在其边缘服务器上添加 IPv6 支持需要做多少繁杂的工作。 + +### 其它关于 IPv6 的问题 + +这里还有一些关于 IPv6 的问题,也许我之后再会探讨: + + * 支持 IPv6 的缺点是什么?什么会出错呢? + * 对于拥有了足够 IPv4 地址的 ISP 来说,有什么让他们提供 IPv6 的激励措施?(另一种问法是:我的 ISP 是否有可能在未来几年内转为支持 IPv6?或者他们可能不会支持 IPv6?) + * [Digital Ocean][4] (译注:一家建立于美国的云基础架构提供商,面向软件开发人员提供虚拟专用服务器(VPS))只提供 IPv4 的浮动地址,不提供 IPv6 的浮动地址。为什么不提供呢?有更多 IPv6 地址,那提供 IPv6 的浮动地址不是变得更 _便捷_ 吗? + * 当我尝试 ping IPv6 地址时(例如 example.com 的 IP 地址`2606:2800:220:1:248:1893:25c8:1946`),我得到一个报错信息 `ping: connect: Network is unreachable`。这是为什么呢?(回答:因为我的 ISP 不支持 IPv6,所以我的电脑没有公共 IPv6 地址) + + +这篇 [来自 Tailscale 的 IPv4 与 IPv6 文章][5] 非常有意思,并回答了上述的一些问题。 + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://twitter.com/b0rk/status/1487156306884636672 +[2]: https://en.wikipedia.org/wiki/Carrier-grade_NAT +[3]: https://jvns.ca/blog/2021/10/05/tools-to-look-at-bgp-routes/ +[4]: https://docs.digitalocean.com/products/networking/floating-ips/ +[5]: https://tailscale.com/kb/1134/ipv6-faq/ From db37cab54d9bdb38250bcc7096f1615f65972c4e Mon Sep 17 00:00:00 2001 From: Donkey Date: Fri, 14 Oct 2022 10:48:07 +0800 Subject: [PATCH 1549/3123] PR --- ...6 Using habits to practice open organization principles.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20220616 Using habits to practice open organization principles.md b/sources/talk/20220616 Using habits to practice open organization principles.md index f8992b3b80..ac9fdd2d56 100644 --- a/sources/talk/20220616 Using habits to practice open organization principles.md +++ b/sources/talk/20220616 Using habits to practice open organization principles.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles" [#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey-Hao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -131,7 +131,7 @@ via: https://opensource.com/open-organization/22/6/using-habits-practice-open-or 作者:[Ron McFarland][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a8fa5c7d47183c656b5d95aaa8c2e048738b9168 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 14 Oct 2022 11:10:53 +0800 Subject: [PATCH 1550/3123] translating --- sources/tech/20221010 Xubuntu 22.10- Top New Features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221010 Xubuntu 22.10- Top New Features.md b/sources/tech/20221010 Xubuntu 22.10- Top New Features.md index f9ec290d39..954139e431 100644 --- a/sources/tech/20221010 Xubuntu 22.10- Top New Features.md +++ b/sources/tech/20221010 Xubuntu 22.10- Top New Features.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/xubuntu-22-10-features/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b5301123cb8f54303eec2d91fb98a249c861de06 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 14 Oct 2022 18:04:40 +0800 Subject: [PATCH 1551/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @aREversez 辛苦了!~ --- ...0210207 The Real Novelty of the ARPANET.md | 182 ++++++------------ 1 file changed, 59 insertions(+), 123 deletions(-) diff --git a/translated/talk/20210207 The Real Novelty of the ARPANET.md b/translated/talk/20210207 The Real Novelty of the ARPANET.md index a1174ee82c..f65fb5dd68 100644 --- a/translated/talk/20210207 The Real Novelty of the ARPANET.md +++ b/translated/talk/20210207 The Real Novelty of the ARPANET.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (aREversez) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (The Real Novelty of the ARPANET) @@ -10,9 +10,11 @@ ARPANET 的真正创新之处 ====== -如果你在搜索引擎中输入“ARPANET”,搜索相关图片,你会看到许多地图的图片,上面是上世纪六十年代末七十年代初 [美国政府创建的研究网络][1],该网络不断延伸扩展,横跨了整个美国。我猜很多人第一次了解到 ARPANET 的时候都看过这种地图。 +![](https://img.linux.net.cn/data/attachment/album/202210/14/180115j5hae51hv1a1ohp5.jpg) -可以说,这些地图很有意思,毕竟我们很难想象过去连接网络的计算机是那么少,就连如此低保真的图片都可以表示出美国全部机器的所在位置(这里的低保真指的是高射投影仪成像技术,而不是大家熟知的 lo-fi 氛围音乐)。不过,这些地图是有问题的。地图上加粗的线条连接着大陆各地,强化了人们的一种观念:ARPANET 最大的贡献就是首次将横跨美国东西两地的电脑连接了起来。 +如果你在搜索引擎中输入“ARPANET”,搜索相关图片,你会看到许多地图的图片,上面是这个上世纪六十年代末七十年代初 [美国政府创建的研究网络][1],该网络不断延伸扩展,横跨了整个美国。我猜很多人第一次了解到 ARPANET 的时候都看过这种地图。 + +可以说,这些地图很有意思,毕竟我们很难想象过去连接网络的计算机是那么少,就连如此低保真的图片都可以表示出美国全部机器的所在位置(这里的低保真lo-fi指的是高射投影仪成像技术,而不是大家熟知的 lo-fi 氛围音乐)。不过,这些地图是有问题的。地图上用加粗的线条连接着大陆各地,强化了人们的一种观念:ARPANET 最大的贡献就是首次将横跨美国东西两地的电脑连接了起来。 今天,即便是在病毒肆虐、人们困居家中的情况下,网络也能把我们联系起来,可谓是我们的生命线。所以,如果认为 ARPANET 是最早的互联网,那么在那之前世界必然相互隔绝,毕竟那时还没有今天的互联网,对吧?ARPANET 首次通过计算机将人们连接起来,一定是一件惊天动地的大事。 @@ -20,23 +22,23 @@ ARPANET 的真正创新之处 ### 初露锋芒 -华盛顿希尔顿酒店坐落于国家广场东北方向约 2.4 千米处的一座小山丘山顶附近。酒店左右两侧白色的现代化立面分别向外延展出半个圆形,活像一只飞鸟的双翼。1965 年,酒店竣工之后,纽约时报报道称这座建筑物就像“一只栖息在山顶巢穴上的海鸥”[1][2]。 +华盛顿希尔顿酒店坐落于国家广场National Mall东北方向约 2.4 千米处的一座小山丘山顶附近。酒店左右两侧白色的现代化立面分别向外延展出半个圆形,活像一只飞鸟的双翼。1965 年,酒店竣工之后,《纽约时报》报道称这座建筑物就像“一只栖息在山顶巢穴上的海鸥” [^1]。 -不过,这家酒店最有名的特点却深藏在地下。在车道交汇处下方,有着一个巨大的蛋形活动场地,这就是人们熟知的国际宴会厅,多年来一直是华盛顿特区最大的无柱宴会厅。1967 年,大门乐队在此举办了一场音乐会。1968 年,“吉他之神”吉米·亨德里克斯也在此举办了一场音乐会。到了 1972 年,国际宴会厅隐去了以往的喧嚣,举办了首届国际计算机通信会议。在这场大会上,研究项目 ARPANET 首次公开亮相。 +不过,这家酒店最有名的特点却深藏在地下。在车道交汇处下方,有着一个巨大的蛋形活动场地,这就是人们熟知的国际宴会厅International Ballroom,多年来一直是华盛顿特区最大的无柱宴会厅。1967 年,大门乐队在此举办了一场音乐会。1968 年,“吉他之神”吉米·亨德里克斯也在此举办了一场音乐会。到了 1972 年,国际宴会厅隐去了以往的喧嚣,举办了首届国际计算机通信会议International Conference on Computing Communication(ICCC)。在这场大会上,研究项目 ARPANET 首次公开亮相。 -1972 年的国际计算机通信会议举办时间为 10 月 24-26 日,与会人数约八百人[2][3]。在这场大会上,计算机网络这一新兴领域的领袖人物齐聚一堂。因特网的先驱鲍勃·卡恩称,“如果有人在华盛顿希尔顿酒店上方丢了一颗炸弹,那么美国的整个网络研究领域将会毁于一旦”[3][4]。 +这场会议举办时间为 10 月 24-26 日,与会人数约八百人 [^2]。在这场大会上,计算机网络这一新兴领域的领袖人物齐聚一堂。因特网internet的先驱鲍勃·卡恩Bob Kahn称,“如果有人在华盛顿希尔顿酒店上方丢了一颗炸弹,那么美国的整个网络研究领域将会毁于一旦” [^3]。 -当然,不是所有的与会人员都是计算机科学家。根据当时的宣传广告,这场大会将会聚焦用户,照顾到“律师、医务人员、经济学家、政府工作者、工程师以及通信员等从业人员”[4][5]。虽然大会的部分议题非常专业,比如“数据网络设计问题(一)”与“数据网络设计问题(二)”,但是正如宣传广告所承诺的,大部分会议的主要关注点还是计算机网络给经济社会带来的潜在影响。其中甚至有一场会议以惊人的先见之明探讨了如何积极利用法律制度“保护计算机数据库中的隐私权益”[5][6]。 +当然,不是所有的与会人员都是计算机科学家。根据当时的宣传广告,这场大会将“以用户为中心”,面向“律师、医务人员、经济学家、政府工作者、工程师以及通信员等从业人员”[^4]。虽然大会的部分议题非常专业,比如《数据网络设计问题(一)》与《数据网络设计问题(二)》,但是正如宣传广告所承诺的,大部分会议的主要关注点还是计算机网络给经济社会带来的潜在影响。其中甚至有一场会议以惊人的先见之明探讨了如何积极利用法律制度“保护计算机数据库中的隐私权益” [^5]。 -展示 ARPANET 的目的在于尽可能地吸引与会者的关注。各场会议在国际宴会厅或酒店更下一层的其他地方举行,会议休息期间,与会者可以自由进入乔治敦宴会厅(在国际宴会厅走廊尽头的一个较小的宴会厅,也可以说是会议室)[6][7],那里放置着 40 台由不同制造商生产的终端,用以访问 ARPANET [7][8]。这些终端属于哑终端,也就是说,只能用来输入命令、输出结果,本身无法进行计算。事实上,因为是 1972 年,所以这些终端可能都是硬拷贝终端,即电传打字机。哑终端与一台被称为“终端接口信息处理机”(TIP)的计算机相连接,后者放置在宴会厅中间的一个高台上。TIP 是早期的一种路由器,哑终端可通过 TIP 连接到 ARPANET。有了终端和 TIP,ICCC 与会者可以尝试登录和访问组成 ARPANET 的 29 个主机站的计算机 [8][9]。 +展示 ARPANET 的目的是作为与会者的一个附带景点。在国际宴会厅或酒店更下一层的其他地方举行的会议间歇,与会者可以自由进入乔治敦宴会厅Georgetown Ballroom(在国际宴会厅走廊尽头的一个较小的宴会厅,也可以说是会议室)[^6],那里放置着用以访问 ARPANET 的 40 台由不同制造商生产的终端 [^7]。这些终端属于哑终端dumb terminal,也就是说,只能用来输入命令、输出结果,本身无法进行计算。事实上,在 1972 年,所以这些终端可能都是硬拷贝终端hardcopy terminal,即电传打字机teletype machine。哑终端与一台被称为“终端接口信息处理机Terminal Interface Message Processor”(TIP)的计算机相连接,后者放置在宴会厅中间的一个高台上。TIP 是早期的一种路由器,哑终端可通过 TIP 连接到 ARPANET。有了终端和 TIP,ICCC 与会者可以尝试登录和访问组成 ARPANET 的 29 个主机站的计算机 [^8]。 -为了展示网络的性能,美国全国各主机站的研究员们通力合作,准备了 19 个简易的“情景”,供用户测试使用。他们还出了 [一份小册子][10],将这些情景收录其中。如果与会人员打算进入这个满是电线与哑终端的房间,就会得到这样一本小册子 [9][11]。通过这些情景,研究员不仅要证明网络这项新技术的可行性,还要证明其实用性,因为 ARPANET 那时还只是“一条没有汽车驶过的公路”。此外,来自国防部的投资者们也希望,公开展示 ARPANET 可以进一步激发人们对网络的兴趣 [10][12]。 +为了展示网络的性能,美国全国各主机站的研究员们通力合作,准备了 19 个简易的“情景”,供用户测试使用。他们还出了 [一份小册子][10],将这些情景收录其中。如果与会人员打算进入这个满是电线与哑终端的房间,就会得到这样一本小册子 [^9]。通过这些情景,研究员不仅要证明网络这项新技术的可行性,还要证明其实用性,因为 ARPANET 那时还只是“一条没有汽车驶过的公路”。此外,来自国防部的投资者们也希望,公开展示 ARPANET 可以进一步激发人们对网络的兴趣 [^10]。 -因此,这些情景充分展示了在 ARPANET 网络上可以使用的软件的丰富性:有程序语言解释器,其中一个是麻省理工学院(MIT) Lisp 语言的解释器,另一个是加州大学洛杉矶分校的数值计算环境 Speakeasy 项目的解释器;还有一些游戏,包括国际象棋和 康威生命游戏Conway's Game of Life;以及最受与会者欢迎的几个人工智能聊天程序,包括由 MIT 的计算机科学家约瑟夫·魏泽堡开发的著名聊天程序伊莉莎。 +因此,这些情景充分展示了在 ARPANET 网络上可以使用的软件的丰富性:有程序语言解释器,其中一个用于麻省理工学院(MIT)的 Lisp 语言,另一个用于加州大学洛杉矶分校的数值计算环境 Speakeasy;还有一些游戏,包括国际象棋和 康威生命游戏Conway's Game of Life;以及几个也许最受与会者欢迎的人工智能聊天程序,包括由 MIT 的计算机科学家约瑟夫·魏泽堡Joseph Weizenbaum开发的著名聊天程序伊莉莎ELIZA。 -设置情景的研究人员小心翼翼地列出了他们想让用户在终端机上输入的每一条命令。这点很重要,因为用于连接 ARPANET 主机的命令序列可能会因为主机的不同而发生变化。比如,为了能在 MIT 人工智能实验室的 PDP-10 微型电脑上测试人工智能国际象棋程序,与会者需要按照指示输入以下命令: +设置这些情景的研究人员小心翼翼地列出了他们想让用户在终端机上输入的每一条命令。这点很重要,因为用于连接 ARPANET 主机的命令序列可能会因为主机的不同而发生变化。比如,为了能在 MIT 人工智能实验室的 PDP-10 微型电脑上测试人工智能国际象棋程序,与会者需要按照指示输入以下命令: -在下方代码块中, _`[LF]`、`[SP]` 以及 `[CR]` 分别代表换行、空格以及回车键。我在每行的 `//` 符号后面都解释了当前一行命令的含义,不过当时的小册子本来是没有使用这一符号的。 +> 在下方代码块中,`[LF]`、`[SP]` 以及 `[CR]` 分别代表换行、空格以及回车键。我在每行的 `//` 符号后面都解释了当前一行命令的含义,不过当时的小册子本来是没有使用这一符号的。 ``` @r [LF] // 重置 TIP @@ -79,11 +81,11 @@ speakez [CR] // 启动 Speakeasy :+! eigenvals(a) [CR] ``` -当时,这场演示给许多人都留下了深刻的印象,但原因并不是我们所想的那样,毕竟我们有的只是后见之明。今天的人们总是记不住,在 1972 年,即便身处两个不同的城市,远程登录使用计算机也已经不是一件新鲜事儿了。在那之前的数十年,电传打字机就已经用于与相隔很远的计算机传递信息了。在 ICCC 第一届大会之前,差不多整整五年,在西雅图的一所高中,比尔·盖茨使用电传打字机,在该市其他地方的通用电气计算机上运行了他的第一个 BASIC 程序。在当时,登录远程计算机,运行几行命令或者玩一些文字游戏,只不过是家常便饭。因此,虽说上文提到的软件的确很不错,但是即便没有 ARPANET,我刚刚介绍的两个情景勉强也是可以实现的。 +当时,这场演示给许多人都留下了深刻的印象,但原因并不是我们所想的那样,毕竟我们有的只是后见之明。今天的人们总是记不住,在 1972 年,即便身处两个不同的城市,远程登录使用计算机也已经不是一件新鲜事儿了。在那之前的数十年,电传打字机就已经用于与相隔很远的计算机传递信息了。在 ICCC 第一届大会之前,差不多整整五年前,在西雅图的一所高中,比尔·盖茨Bill Gates使用电传打字机,在该市其他地方的通用电气General Electric(GE)计算机上运行了他的第一个 BASIC 程序。在当时,登录远程计算机,运行几行命令或者玩一些文字游戏,只不过是家常便饭。因此,虽说上文提到的软件的确很不错,但是即便没有 ARPANET,我刚刚介绍的两个情景勉强也是可以实现的。 -当然,ARPANET 一定带来了新的东西。参加本次大会的律师、政治家与经济学家关注更多的可能是国际象棋游戏与聊天机器人,但是网络专家们可能对另外两个情景更感兴趣,因为它们将 ARPANET 的作用更好地展示了出来。 +当然,ARPANET 一定带来了新的东西。参加本次大会的律师、政治家与经济学家可能被国际象棋游戏与聊天机器人所吸引,但是网络专家们可能对另外两个情景更感兴趣,因为它们将 ARPANET 的作用更好地展示了出来。 -在其中一个情景下,MIT 非兼容分时系统ITS 上运行了一个名为 `NETWRK` 的程序。`NETWRK` 命令下有若干个子命令,输入这些子命令就能得到 ARPANET 各方面的运行状态。`SURVEY` 子命令可以列出 ARPANET 上面运行的主机与空闲的主机,放入一个列表中;`SUMMARY.OF.SURVEY` 子命令对 `SURVEY` 子命令的运行结果进行统计,得出每台主机的“正常运行比率”,以及每台主机响应消息的平均时间。`SUMMARY.OF.SURVEY` 子命令以表格的形式输出结果,如下所示: +在其中一个情景下,MIT 非兼容分时系统Incompatible Timesharing System(ITS)上运行了一个名为 `NETWRK` 的程序。`NETWRK` 命令下有若干个子命令,输入这些子命令就能得到 ARPANET 各方面的运行状态。`SURVEY` 子命令可以列出 ARPANET 上哪些主机正在运行和可用(它们都在一个列表中);`SUMMARY.OF.SURVEY` 子命令汇总了过去 `SURVEY` 子命令过去的运行结果,得出每台主机的“正常运行比率”,以及每台主机响应消息的平均时间。`SUMMARY.OF.SURVEY` 子命令以表格的形式输出结果,如下所示: ``` --HOST-- -#- -%-UP- -RESP- @@ -93,11 +95,11 @@ UCSB-75 003 059% 00.63 ... ``` -可以看到,主机编号的占位不超过三个数字。其他 `NETWRK` 子命令能够查看较长时间内查询结果的概要,或者检查单个主机查询结果的日志。 +可以看到,主机编号的占位不超过三个数字(哈!)。其他 `NETWRK` 子命令能够查看较长时间内查询结果的概要,或者检查单个主机查询结果的日志。 -第二个情景用到了斯坦福大学开发的一款软件——SRI-ARC 联机系统。这款软件功能齐全,非常优秀。美国发明家道格拉斯·恩格尔巴特在 所有演示之母Mother of All Demos 上演示的正是 SRI-ARC 联机系统。这款软件可以在加州大学圣芭芭拉分校的主机上运行本质上属于文件托管的服务。使用华盛顿希尔顿酒店的终端,用户就可以将斯坦福大学主机上创建的文件复制到加州大学圣芭芭拉分校的主机上。操作也很简单,只需执行 `copy` 命令,然后回答计算机的下列问题: +第二个情景用到了斯坦福大学开发的一款软件 —— SRI-ARC 联机系统。这款软件功能齐全,非常优秀。美国发明家道格拉斯·恩格尔巴特Douglas Engelbart在 “所有演示之母Mother of All Demos” 上演示的正是 SRI-ARC 联机系统。这款软件可以在加州大学圣芭芭拉分校的主机上运行本质上属于文件托管的服务。使用华盛顿希尔顿酒店的终端,用户可以将斯坦福大学主机上创建的文件复制到加州大学圣芭芭拉分校的主机上。操作也很简单,只需执行 `copy` 命令,然后回答计算机的下列问题: -_在下方的代码块中,`[ESC]`、`[SP]` 与 `[CR]` 分别代表退出、空格与回车键;圆括号中的文字是计算机打印出的提示信息;第三行中的退出键用于自动补全文件名。此处复制的文件是 `sample.txt;1`,其中文件名末尾的数字 1 代表文件的版本号,`` 表示文件路径。这种文件名是 TENEX 操作系统上面的惯用写法。_[11][13] +> 在下方的代码块中,`[ESC]`、`[SP]` 与 `[CR]` 分别代表退出、空格与回车键;圆括号中的文字是计算机打印出的提示信息;第三行中的退出键用于自动补全文件名。此处复制的文件是 `sample.txt;1`,其中文件名末尾的数字 1 代表文件的版本号,`` 表示文件路径。这种文件名是 TENEX 操作系统上面的惯用写法。[^11] ``` @copy @@ -106,86 +108,64 @@ _在下方的代码块中,`[ESC]`、`[SP]` 与 `[CR]` 分别代表退出、空 (CREATE/REPLACE) create ``` -这两个情景看起来好像和最初提及的两个情景没有太大区别,但是此二者却意义非凡。因为它们证明了,在 ARPANET 上面,不仅人们可以与计算机进行交流,计算机与计算机也可以 _相互_ 交流。保存在 MIT 的 `SURVEY` 命令的结果并非由人类定期登录并检查每台机器的运行状态收集而来,而是由一款能在网络上与其他机器进行交流的软件收集得到的。同样的道理,在斯坦福大学与加州大学圣芭芭拉分校之间传输文件的情景下,也没有人守在两所大学的终端旁边,特区的终端用户仅仅使用了一款软件,就能让其他两地的计算机连接起来。此外,这一点无关乎你使用的是宴会厅里的哪一台电脑,因为只要输入同样的命令序列,就能在任意一台电脑上浏览 MIT 的网络监视数据,或者在加州大学圣芭芭拉分校的计算机上储存文件。 +这两个情景看起来好像和最初提及的两个情景没有太大区别,但是此二者却意义非凡。因为它们证明了,在 ARPANET 上面,不仅人们可以与计算机进行交流,计算机与计算机也可以 _相互_ 交流。MIT 主机上的 `SURVEY` 命令的结果并非由人类定期登录并检查每台机器的运行状态收集而来,而是由一款能在网络上与其他机器进行交流的软件收集得到的。同样的道理,在斯坦福大学与加州大学圣芭芭拉分校之间传输文件的情景下,也没有人守在两所大学的终端旁边,华盛顿特区的终端用户仅仅使用了一款软件,就能让其他两地的计算机相互对话。更重要的是,这一点无关乎你使用的是宴会厅里的哪一台电脑,因为只要输入同样的命令序列,就能在任意一台电脑上浏览 MIT 的网络监视数据,或者在加州大学圣芭芭拉分校的计算机上储存文件。 这才是 ARPANET 的全新之处。本次国际计算机通信会议演示的不仅仅是人与远程电脑之间的交互,也不仅仅是远程输入输出的操作,更是一个软件与其他软件之间的远程通讯,这一点才是史无前例的。 -为什么这一点才是最重要的,而不是地图上画着的那些贯穿整个美国、实际连接起来的电线呢(这些线是租赁的电话线,而且它们以前就在那了!)?要知道,早在 1966 年 ARPANET 项目启动之前,美国国防部的高级研究计划署打造了一间终端室,里面有三台终端。三台终端分别连接着位于 MIT、加州大学伯克利分校以及圣塔莫尼卡三地的计算机 [12][14]。对于高级研究计划署的工作人员来说,即便他们身处华盛顿特区,使用这三台计算机也非常方便。不过,这其中也有不便之处:工作人员必须购买和维护来自三家不同制造商的终端,牢记三种不同的登录步骤,熟悉三种不同的计算环境。虽然这三台终端机可能就放在一起,但是它们只是电线另一端主机系统的延申,而且操作也和那些计算机一样各不相同。所以说,在 ARPANET 项目诞生之前,远程连接计算机进行通讯就已经实现了,但问题是不同的计算系统阻碍了通讯朝着更加先进复杂的方向发展。 +为什么这一点才是最重要的,而不是地图上画着的那些贯穿整个美国、实际连接起来的电线呢(这些线是租赁的电话线,而且它们以前就在那了!)?要知道,早在 1966 年 ARPANET 项目启动之前,美国国防部的高级研究计划署(ARPA)打造了一间终端室,里面有三台终端。三台终端分别连接着位于 MIT、加州大学伯克利分校以及圣塔莫尼卡三地的计算机 [^12]。对于 ARPA 的工作人员来说,即便他们身处华盛顿特区,使用这三台计算机也非常方便。不过,这其中也有不便之处:工作人员必须购买和维护来自三家不同制造商的终端,牢记三种不同的登录步骤,熟悉三种不同的计算环境。虽然这三台终端机可能就放在一起,但是它们只是电线另一端主机系统的延申,而且操作也和那些计算机一样各不相同。所以说,在 ARPANET 项目诞生之前,远程连接计算机进行通讯就已经实现了,但问题是不同的计算系统阻碍了通讯朝着更加先进复杂的方向发展。 -### 此刻,集合起来 +### 集合起来,就在此刻 因此,我想说的是,说法一(ARPANET 首次通过计算机将不同地方的人们连接了起来)与说法二(ARPANET 首次将多个计算机系统彼此连接了起来)之间有着云泥之别。听起来似乎有些吹毛求疵,咬文嚼字,但是相较于说法二,说法一忽略了一些重要的历史发展阶段。 -首先,历史学家乔伊·利西·兰金(Joy Lisi Rankin)指出,早在 ARPANET 诞生之前,人们就已经在网络空间中进行交流了。在《美国人民的计算机历史》(_A People’s History of Computing in the United States_)一书中,兰金介绍了多个覆盖全国的数字社区,这些社区运行在早于 ARPANET 的分时网络上面。从技术层面讲,分时网络并不属于计算机网络,因为它仅仅由一台大型主机构成。这种计算机放置在地下室中,为多台哑终端提供计算,颇像一只又黑又胖的奇怪生物,触手向外伸展着,遍及整个美国。不过,在分时网络时代,被后社交媒体时代称为“网络”的大部分社会行为应有尽有。例如,Kiewit 网络是达特茅斯分时系统的延申应用,服务于美国东北部的各个大学和高中。在 Kiewit 网络上,高中生们共同维护着一个“八卦文件gossip file”,用来记录其他学校发生的趣闻趣事,“在康涅狄格州和缅因州之间建立起了社交联系” [13][15]。同时,曼荷莲女子学院的女生通过网络与达特茅斯学院的男生进行交流,或者是安排约会,或者是与男朋友保持联系 [14][16]。这些事实都发生在上世纪六十年代。兰金认为,如果忽视了早期的分时网络,我们对美国过去 50 年数字文化发展的认识必然是贫瘠的:我们眼里可能只有所谓的“硅谷神话Silicon Valley mythology”,认为计算机领域的所有发展都要归功于少数的几位天才,或者说互联网科技巨头的创始人。 +首先,历史学家乔伊·利西·兰金Joy Lisi Rankin指出,早在 ARPANET 诞生之前,人们就已经在网络空间中进行交流了。在《美国计算机的人民历史A People’s History of Computing in the United States》一书中,兰金介绍了几个覆盖全美的数字社区,这些社区运行在早于 ARPANET 的分时网络time-sharing network上面。从技术层面讲,分时网络并不是计算机网络,因为它仅仅由一台大型主机构成。这种计算机放置在地下室中,为多台哑终端提供计算,颇像一只又黑又胖的奇怪生物,触手向外伸展着,遍及整个美国。不过,在分时网络时代,被后社交媒体时代称为“网络”的大部分社会行为应有尽有。例如,Kiewit 网络是达特茅斯分时系统Dartmouth Time-Sharing System的延伸应用,服务于美国东北部的各个大学和高中。在 Kiewit 网络上,高中生们共同维护着一个“八卦档案gossip file”,用来记录其他学校发生的趣闻趣事,“在康涅狄格州和缅因州之间建立起了社交联系” [^13]。同时,曼荷莲女子学院的女生通过网络与达特茅斯学院的男生进行交流,或者是安排约会,或者是与男朋友保持联系 [^14]。这些事实都发生在上世纪六十年代。兰金认为,如果忽视了早期的分时网络,我们对美国过去 50 年数字文化发展的认识必然是贫瘠的:我们眼里可能只有所谓的“硅谷神话Silicon Valley mythology”,认为计算机领域的所有发展都要归功于少数的几位天才,或者说互联网科技巨头的创始人。 -回到 ARPANET,如果我们能意识到真正的困难是计算机 _系统_ 的联通,而非机器本身的连接,那么在探讨 ARPANET 的创新点时,我们就会更加倾向于第二种说法。ARPANET 是第一个包交换网络,涉及到许多重要的技术应用。但是如果仅仅因为这项优势,就说它是一项突破,我觉得这种说法本身就是错的。ARPANET 旨在促进全美计算机科学家之间的合作,目的是要弄明白不同的操作系统与不同语言编写的软件如何配合使用,而非如何在麻省和加州之间实现高效的数据传输。因此,ARPANET 不仅是第一个包交换网络,它还是一项非常成功且优秀的标准。在我看来,后者更有意思,毕竟我在博客上曾经写过许多颇有瑕疵的标准:[语义网][17]、[RSS][18] 与 [FOAF ][19]。 +回到 ARPANET,如果我们能意识到真正的困难是计算机 _系统_ 的联通,而非机器本身的物理连接,那么在探讨 ARPANET 的创新点时,我们就会更加倾向于第二种说法。ARPANET 是有史以来第一个分组交换网络packet-switched network,涉及到许多重要的技术应用。但是如果仅仅因为这项优势,就说它是一项突破,我觉得这种说法本身就是错的。ARPANET 旨在促进全美计算机科学家之间的合作,目的是要弄明白不同的操作系统、不同语言编写的软件如何配合使用,而非如何在麻省和加州之间实现高效的数据传输。因此,ARPANET 不仅是第一个分组交换网络,它还是一项非常成功且优秀的标准。在我看来,后者更有意思,毕竟我在博客上曾经写过许多颇有失败的标准:[语义网][17]、[RSS][18] 与 [FOAF][19]。 -ARPANET 项目初期没有考虑到网络协议,协议的制定是后来的事情了。因此,这项工作自然落到了主要由研究生组成的组织——国际网络工作组Network Working Group 身上。该组织的首次会议于 1968 年在加州大学圣芭芭拉分校举办 [15][20]。当时只有 12 人参会,大部分都是来自上述四所大学的代表 [16][21]。来自加州大学洛杉矶分校的研究生史蒂夫·克罗克(Steve Crocker)参加了这场会议。他告诉我,工作组首次会议的参会者清一色都是年轻人,最年长的可能要数会议主席埃尔默·夏皮罗(Elmer Shapiro)了,他当年 38 岁左右。高级研究计划署没有安排负责研究计算机连接之后如何进行通信的人员,但是很明显它需要提供一定的协助。随着工作组会议的陆续开展,克罗克一直期望着更有经验与威望的“法定成年人”从东海岸飞过来接手这项工作,但是期望终究还是落空了。在高级研究计划署的默许之下,工作组举办了多场会议,其中包括很多长途旅行,差旅费由计划署报销,这些就是计划署给与工作组的全部协助了 [17][22]。 +ARPANET 项目初期没有考虑到网络协议,协议的制定是后来的事情了。因此,这项工作自然落到了主要由研究生组成的组织 —— 网络工作组Network Working Group(NWG)身上。该组织的首次会议于 1968 年在加州大学圣芭芭拉分校举办 [^15]。当时只有 12 人参会,大部分都是来自上述四所大学的代表 [^16]。来自加州大学洛杉矶分校的研究生史蒂夫·克罗克Steve Crocker参加了这场会议。他告诉我,工作组首次会议的参会者清一色都是年轻人,最年长的可能要数会议主席埃尔默·夏皮罗Elmer Shapiro了,他当年 38 岁左右。ARPA 没有派人负责研究计算机连接之后如何进行通信,但是很明显它需要提供一定的协助。随着工作组会议的陆续开展,克罗克一直期望着更有经验与威望的“法定成年人”从东海岸飞过来接手这项工作,但是期望终究还是落空了。在 ARPA 的默许之下,工作组举办了多场会议,其中包括很多长途旅行,差旅费由 ARPA 报销,这些就是它给与工作组的全部协助了 [^17]。 -当时,国际网络工作组面临着巨大的挑战。组内成员都没有使用通用方式连接计算机系统的经验,而且这本来就与上世纪六十年代末计算机领域盛行的全部观点相悖: +当时,网络工作组面临着巨大的挑战。从没有人有过使用通用方式连接计算机系统的经验,而且这本来就与上世纪六十年代末计算机领域盛行的全部观点相悖: -> 那个时候的主机就像是全世界唯一的一台计算机。即便是最简短的交流会话,两台主机也无法轻易做到。并不是说机器没办法相互连接,只是连接之后,两台计算机又能做些什么呢?当时,计算机和与其相连的其他设备之间的通讯,就像帝王与群臣之间的对话一般。连接到主机的设备各自执行着自己的任务,每台外围设备都保持着常备不懈的状态,等待着上司的命令。当时的计算机就是严格按照这类交流需求设计出来的;它们向读卡器、终端与磁带机等下属设备发号施令,发起所有会话。但是,如果一台计算机拍了拍另一台计算机的肩膀,说道,“你好,我也是一台计算机”,那么另一台计算机可就傻眼了,什么也回答不上来 [18][23]。 -于是,工作组的最初进展比较缓慢 [19][24]。直到 1970 年 6 月,也就是首次会议将近两年之后,工作组才为网络协议选定了一套官方规范 [20][25]。 +> 那个时候典型的主机表现得就像是它是全宇宙唯一的计算机。即便是最简短的交流会话,两台主机也无法轻易做到。并不是说机器没办法相互连接,只是连接之后,两台计算机又能做些什么呢?当时,计算机和与其相连的其他设备之间的通讯,就像帝王与群臣之间的对话一般。连接到主机的设备各自执行着自己的任务,每台外围设备都保持着常备不懈的状态,等待着上司的命令。当时的计算机就是严格按照这类互动需求设计出来的;它们向读卡器、终端与磁带机等下属设备发号施令,发起所有会话。但是,如果一台计算机拍了拍另一台计算机的肩膀,说道,“你好,我也是一台计算机”,那么另一台计算机可就傻眼了,什么也回答不上来 [^18]。 -到了 1972 年,在国际计算机通信会议上展示 ARPANET 的时候,所有的协议已经准备到位了。会议期间,这些协议运用到了国际象棋等情景之中。用户运行 `@e r` 命令(`@echo remote` 命令的缩写形式),可以指示 TIP 使用新远程登录虚拟终端协议提供的服务,通知远程主机回显用户输入的内容。接着,用户运行 `@L 134` 命令(`@login 134` 命令的缩写形式),让 TIP 在 134 号主机上调用初始连接协议Initial Connection Protocol,该协议指示远程主机分配出连接所需的全部必要资源,并将用户带入远程登录会话中。上述文件传输的情景也许用到了 文件传输协议File Transfer Protocol,而该协议恰好是在大会举办前夕才刚刚完成的 [21][26]。所有这些协议都是“三层”协议,其下的第二层是主机到主机层协议,定义了主机之间可以相互发送和接收的信息的基本格式;第一层是主机到接口通信处理机协议,定义了主机如何与连接的远程设备进行通信。令人感到不可思议的是,这些协议都能正常运行。 +于是,工作组的最初进展很缓慢 [^19]。直到 1970 年 6 月,也就是首次会议将近两年之后,工作组才为网络协议选定了一套“正式”规范 [^20]。 -在我看来,网络工作组之所以能够在大会举办之前做好万全的准备,顺利且出色地完成任务,在于他们采用了开放且非正式的标准化方法,其中一个典型的例子就是著名的 Request for Comments(RFC)系列文档。RFC 文档最初通过传统邮件供工作组成员进行传阅,让成员们在没有举办会议的时候也能保持联系,同时收集成员反馈,汇集各方智慧。RFC 框架是克罗克提出的,他写出了第一篇 RFC 文档,并在早期负责管理 RFC 的邮寄列表。他这样做是为了强调工作组开放协作的活动本质。有了这套框架以及触手可及的文档,ARPANET 的协议设计过程成了一个大熔炉,每个人都可以贡献出自己的力量,步步推进,精益求精,让最棒的想法脱颖而出,使得每一位贡献者都值得尊敬。总而言之,RFC 获得了巨大成功,并且直至今天,长达半个世纪之后,它依旧是网络标准的“说明书”。 +不过,到了 1972 年,在国际计算机通信会议上展示 ARPANET 的时候,所有的协议已经准备就绪了。会议期间,这些协议运用到了国际象棋等情景之中。用户运行 `@e r` 命令(`@echo remote` 命令的缩写形式),可以指示 TIP 使用新 TELNET 虚拟终端协议提供的服务,通知远程主机它应该回显用户输入的内容。接着,用户运行 `@L 134` 命令(`@login 134` 命令的缩写形式),让 TIP 在 134 号主机上调用初始连接协议Initial Connection Protocol,该协议指示远程主机分配出连接所需的全部必要资源,并将用户带入 TELNET 会话中。上述文件传输的情景也许用到了 文件传输协议File Transfer Protocol(FTP),而该协议恰好是在大会举办前夕才刚刚完成的 [^21]。所有这些协议都是“三层”协议,其下的第二层是主机到主机的协议,定义了主机之间可以相互发送和接收的信息的基本格式;第一层是主机到接口通信处理机(IMP)的协议,定义了主机如何与连接的远程设备进行通信。令人感到不可思议的是,这些协议都能正常运行。 -因此,说起 ARPANET 的影响力,我认为不得不强调的一点正是工作组留下的这一成果。今天,互联网可以把世界各地的人们连接起来,这也是它最神奇的属性之一。不过如果说这项技术到了上世纪才开始使用,那可就有些滑稽可笑了。要知道,在 ARPANET 出现之前,人们就已经通过电报打破了现实距离的限制。而 ARPANET 打破的应该是各个主机站点因使用不同的操作系统、字符编码、程序语言以及组织策略而在逻辑层面产生的差异限制。当然,不得不提的是,将第一个包交换网络投入使用在技术方面绝对是一大壮举。不过,在建立 ARPANET 网络过程中遇到的两大难题中,更为复杂的一项则是制定统一的标准并用以连接原本无法相互协作的计算机。而这一难题的解决方案,也成了 ARPANET 整个建立与发展历史中最为神奇的一个章节。 +在我看来,网络工作组之所以能够在大会举办之前做好万全的准备,顺利且出色地完成任务,在于他们采用了开放且非正式的标准化方法,其中一个典型的例子就是著名的 征求意见Request for Comments(RFC)系列文档。RFC 文档最初通过传统信件snail mail在工作组成员之间进行传阅,让成员们在没有举办会议的时候也能保持联系,同时收集成员反馈,汇集各方智慧。RFC 框架是克罗克提出的,他写出了第一篇 RFC 文档,并在早期负责管理 RFC 的邮寄列表。他这样做是为了强调工作组开放协作的活动本质。有了这套框架以及触手可及的文档,ARPANET 的协议设计过程成了一个大熔炉,每个人都可以贡献出自己的力量,步步推进,精益求精,让最棒的想法脱颖而出,而没有人失去面子。总而言之,RFC 获得了巨大成功,并且直至今天,长达半个世纪之后,它依旧是网络标准的“说明书”。 + +因此,说起 ARPANET 的影响力,我认为不得不强调的一点正是工作组留下的这一成果。今天,互联网可以把世界各地的人们连接起来,这也是它最神奇的属性之一。不过如果说这项技术到了上世纪才开始使用,那可就有些滑稽可笑了。要知道,在 ARPANET 出现之前,人们就已经通过电报打破了现实距离的限制。而 ARPANET 打破的应该是各个主机站因使用不同的操作系统、字符编码、程序语言以及组织策略而在逻辑层面产生的差异限制。当然,将第一个分组交换网络投入使用在技术方面绝对是一大壮举,这肯定值得一提,不过,制定统一的标准并用以连接原本无法相互协作的计算机,是建立 ARPANET 网络过程中遇到的这两大难题中更为复杂的一个。而这一难题的解决方案,也成了 ARPANET 整个建立与发展历史中最为神奇的一个章节。 1981 年,高级研究计划署发表了一份“完工报告”,回顾了 ARPANET 项目的第一个十年。在《付出收获了回报的技术方面以及付出未能实现最初设想的技术方面》这一冗长的小标题下,作者们写道: -> 或许,在 ARPANET 的开发过程中,最艰难的一项任务就是,尽管主机制造商各不相同,或者同一制造商下操作系统各不相同,我们仍需在众多的独立主机系统之间实现通讯交流。好在这项任务后来取得了成功 [22][27]。 +> 或许,在 ARPANET 的开发过程中,最艰难的一项任务就是,尽管主机制造商各不相同,或者同一制造商下操作系统各不相同,我们仍需在众多的独立主机系统之间实现通讯交流。好在这项任务后来取得了成功 [^22]。 + 你可以从美国联邦政府获得相关信息。 -_如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][28],也可通过 [RSS feed][29] 订阅,获取最新文章。_ - - 1. “Hilton Hotel Opens in Capital Today.” _The New York Times_, 20 March 1965, . Accessed 7 Feb. 2021. [↩︎][31] - - 2. James Pelkey. _Entrepreneurial Capitalism and Innovation: A History of Computer Communications 1968-1988,_ Chapter 4, Section 12, 2007, . Accessed 7 Feb. 2021. [↩︎][32] - - 3. Katie Hafner and Matthew Lyon. _Where Wizards Stay Up Late: The Origins of the Internet_. New York, Simon & Schuster, 1996, p. 178. [↩︎][33] - - 4. “International Conference on Computer Communication.” _Computer_, vol. 5, no. 4, 1972, p. c2, . Accessed 7 Feb. 2021. [↩︎][34] - - 5. “Program for the International Conference on Computer Communication.” _The Papers of Clay T. Whitehead_, Box 42, . Accessed 7 Feb. 2021. [↩︎][35] - - 6. 我其实并不清楚 ARPANET 是在哪个房间展示的。很多地方都提到了“宴会厅”,但是华盛顿希尔顿酒店更习惯于叫它“乔治敦”,而不是把它当成一间会议室。因此,或许这场展示是在国际宴会厅举办的。但是 RFC 372 号文件又提到了预定“乔治敦”作为展示场地一事。华盛顿希尔顿酒店的楼层平面图可以点击 [此处][36] 查看。 [↩︎][37] - - 7. Hafner, p. 179. [↩︎][38] - - 8. ibid., p. 178. [↩︎][39] - - 9. Bob Metcalfe. “Scenarios for Using the ARPANET.” _Collections-Computer History Museum_, . Accessed 7 Feb. 2021. [↩︎][40] - - 10. Hafner, p. 176. [↩︎][41] - - 11. Robert H. Thomas. “Planning for ACCAT Remote Site Operations.” BBN Report No. 3677, October 1977, . Accessed 7 Feb. 2021. [↩︎][42] - - 12. Hafner, p. 12. [↩︎][43] - - 13. Joy Lisi Rankin. _A People’s History of Computing in the United States_. Cambridge, MA, Harvard University Press, 2018, p. 84. [↩︎][44] - - 14. Rankin, p. 93. [↩︎][45] - - 15. Steve Crocker. Personal interview. 17 Dec. 2020. [↩︎][46] - - 16. 克罗克将会议记录文件发给了我,文件列出了所有的参会者。[↩︎][47] - - 17. Steve Crocker. Personal interview. [↩︎][48] - - 18. Hafner, p. 146. [↩︎][49] - - 19. “Completion Report / A History of the ARPANET: The First Decade.” BBN Report No. 4799, April 1981, , p. II-13. [↩︎][50] - - 20. 这里我指的是 RFC 54 号文件中的“官方协议”。[↩︎][51] - - 21. Hafner, p. 175. [↩︎][52] - - 22. “Completion Report / A History of the ARPANET: The First Decade,” p. II-29. [↩︎][53] - - +_如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][28],也可通过 [RSS 馈送][29] 订阅,获取最新文章。_ +[^1]: “Hilton Hotel Opens in Capital Today.” _The New York Times_, 20 March 1965, . Accessed 7 Feb. 2021. +[^2]: James Pelkey. _Entrepreneurial Capitalism and Innovation: A History of Computer Communications 1968-1988,_ Chapter 4, Section 12, 2007, . Accessed 7 Feb. 2021. +[^3]: Katie Hafner and Matthew Lyon. _Where Wizards Stay Up Late: The Origins of the Internet_. New York, Simon & Schuster, 1996, p. 178. +[^4]: “International Conference on Computer Communication.” _Computer_, vol. 5, no. 4, 1972, p. c2, . Accessed 7 Feb. 2021. +[^5]: “Program for the International Conference on Computer Communication.” _The Papers of Clay T. Whitehead_, Box 42, . Accessed 7 Feb. 2021. +[^6]: 我其实并不清楚 ARPANET 是在哪个房间展示的。很多地方都提到了“宴会厅”,但是华盛顿希尔顿酒店更习惯于叫它“乔治敦”,而不是把它当成一间会议室。因此,或许这场展示是在国际宴会厅举办的。但是 RFC 372 号文件又提到了预定“乔治敦”作为展示场地一事。华盛顿希尔顿酒店的楼层平面图可以点击 [此处][36] 查看。 +[^7]: Hafner, p. 179. +[^8]: ibid., p. 178. +[^9]: Bob Metcalfe. “Scenarios for Using the ARPANET.” _Collections-Computer History Museum_, . Accessed 7 Feb. 2021. +[^10]: Hafner, p. 176. +[^11]: Robert H. Thomas. “Planning for ACCAT Remote Site Operations.” BBN Report No. 3677, October 1977, . Accessed 7 Feb. 2021. +[^12]: Hafner, p. 12. +[^13]: Joy Lisi Rankin. _A People’s History of Computing in the United States_. Cambridge, MA, Harvard University Press, 2018, p. 84. +[^14]: Rankin, p. 93. +[^15]: Steve Crocker. Personal interview. 17 Dec. 2020. +[^16]: 克罗克将会议记录文件发给了我,文件列出了所有的参会者。 +[^17]: Steve Crocker. Personal interview. +[^18]: Hafner, p. 146. +[^19]: “Completion Report / A History of the ARPANET: The First Decade.” BBN Report No. 4799, April 1981, , p. II-13. +[^20]: 这里我指的是 RFC 54 号文件中的“正式协议”。 +[^21]: Hafner, p. 175. +[^22]: “Completion Report / A History of the ARPANET: The First Decade,” p. II-29. -------------------------------------------------------------------------------- @@ -194,62 +174,18 @@ via: https://twobithistory.org/2021/02/07/arpanet.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] 译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://twobithistory.org [b]: https://github.com/lujun9972 [1]: https://en.wikipedia.org/wiki/ARPANET -[2]: tmp.pnPpRrCI3S#fn:1 -[3]: tmp.pnPpRrCI3S#fn:2 -[4]: tmp.pnPpRrCI3S#fn:3 -[5]: tmp.pnPpRrCI3S#fn:4 -[6]: tmp.pnPpRrCI3S#fn:5 -[7]: tmp.pnPpRrCI3S#fn:6 -[8]: tmp.pnPpRrCI3S#fn:7 -[9]: tmp.pnPpRrCI3S#fn:8 [10]: https://archive.computerhistory.org/resources/access/text/2019/07/102784024-05-001-acc.pdf -[11]: tmp.pnPpRrCI3S#fn:9 -[12]: tmp.pnPpRrCI3S#fn:10 -[13]: tmp.pnPpRrCI3S#fn:11 -[14]: tmp.pnPpRrCI3S#fn:12 -[15]: tmp.pnPpRrCI3S#fn:13 -[16]: tmp.pnPpRrCI3S#fn:14 [17]: https://twobithistory.org/2018/05/27/semantic-web.html [18]: https://twobithistory.org/2018/12/18/rss.html [19]: https://twobithistory.org/2020/01/05/foaf.html -[20]: tmp.pnPpRrCI3S#fn:15 -[21]: tmp.pnPpRrCI3S#fn:16 -[22]: tmp.pnPpRrCI3S#fn:17 -[23]: tmp.pnPpRrCI3S#fn:18 -[24]: tmp.pnPpRrCI3S#fn:19 -[25]: tmp.pnPpRrCI3S#fn:20 -[26]: tmp.pnPpRrCI3S#fn:21 -[27]: tmp.pnPpRrCI3S#fn:22 [28]: https://twitter.com/TwoBitHistory [29]: https://twobithistory.org/feed.xml [30]: https://twitter.com/TwoBitHistory/status/1277259930555363329?ref_src=twsrc%5Etfw -[31]: tmp.pnPpRrCI3S#fnref:1 -[32]: tmp.pnPpRrCI3S#fnref:2 -[33]: tmp.pnPpRrCI3S#fnref:3 -[34]: tmp.pnPpRrCI3S#fnref:4 -[35]: tmp.pnPpRrCI3S#fnref:5 [36]: https://www3.hilton.com/resources/media/hi/DCAWHHH/en_US/pdf/DCAWH.Floorplans.Apr25.pdf -[37]: tmp.pnPpRrCI3S#fnref:6 -[38]: tmp.pnPpRrCI3S#fnref:7 -[39]: tmp.pnPpRrCI3S#fnref:8 -[40]: tmp.pnPpRrCI3S#fnref:9 -[41]: tmp.pnPpRrCI3S#fnref:10 -[42]: tmp.pnPpRrCI3S#fnref:11 -[43]: tmp.pnPpRrCI3S#fnref:12 -[44]: tmp.pnPpRrCI3S#fnref:13 -[45]: tmp.pnPpRrCI3S#fnref:14 -[46]: tmp.pnPpRrCI3S#fnref:15 -[47]: tmp.pnPpRrCI3S#fnref:16 -[48]: tmp.pnPpRrCI3S#fnref:17 -[49]: tmp.pnPpRrCI3S#fnref:18 -[50]: tmp.pnPpRrCI3S#fnref:19 -[51]: tmp.pnPpRrCI3S#fnref:20 -[52]: tmp.pnPpRrCI3S#fnref:21 -[53]: tmp.pnPpRrCI3S#fnref:22 From 8612389cb8b96e4b8e7433751700e90d894f8c31 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 14 Oct 2022 18:05:14 +0800 Subject: [PATCH 1552/3123] P @aREversez https://linux.cn/article-15139-1.html --- .../20210207 The Real Novelty of the ARPANET.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20210207 The Real Novelty of the ARPANET.md (99%) diff --git a/translated/talk/20210207 The Real Novelty of the ARPANET.md b/published/20210207 The Real Novelty of the ARPANET.md similarity index 99% rename from translated/talk/20210207 The Real Novelty of the ARPANET.md rename to published/20210207 The Real Novelty of the ARPANET.md index f65fb5dd68..5ebe5c852b 100644 --- a/translated/talk/20210207 The Real Novelty of the ARPANET.md +++ b/published/20210207 The Real Novelty of the ARPANET.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (aREversez) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15139-1.html) [#]: subject: (The Real Novelty of the ARPANET) [#]: via: (https://twobithistory.org/2021/02/07/arpanet.html) [#]: author: (Two-Bit History https://twobithistory.org) From c94fceb7431cb2bddcb59c64e3ae1ae055bc3985 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 15 Oct 2022 05:04:13 +0800 Subject: [PATCH 1553/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020220608?= =?UTF-8?q?=20slimmer=20emacs=20with=20kitty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20220608 slimmer emacs with kitty.md --- sources/tech/20220608 slimmer emacs with kitty.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/tech/20220608 slimmer emacs with kitty.md b/sources/tech/20220608 slimmer emacs with kitty.md index a74b3a287e..b2ad6ad1ff 100644 --- a/sources/tech/20220608 slimmer emacs with kitty.md +++ b/sources/tech/20220608 slimmer emacs with kitty.md @@ -1,5 +1,5 @@ [#]: subject: "slimmer emacs with kitty" -[#]: via: "https://jao.io/blog/2022-06-08-slimmer-emacs-with-kitty.html" +[#]: via: "https://jao.io/blog/slimmer-emacs-with-kitty.html" [#]: author: "jao https://jao.io" [#]: collector: "lujun9972" [#]: translator: " " @@ -69,7 +69,7 @@ The gist of it is pretty simple though, and it's basically distilled in [this se -------------------------------------------------------------------------------- -via: https://jao.io/blog/2022-06-08-slimmer-emacs-with-kitty.html +via: https://jao.io/blog/slimmer-emacs-with-kitty.html 作者:[jao][a] 选题:[lujun9972][b] @@ -87,8 +87,8 @@ via: https://jao.io/blog/2022-06-08-slimmer-emacs-with-kitty.html [5]: https://sw.kovidgoyal.net/kitty/ [6]: https://codeberg.org/jao/elibs/src/branch/main/data/kitty.conf [7]: https://en.wikipedia.org/wiki/HarfBuzz -[8]: tmp.aRLm0IGxe1#fn.1 -[9]: tmp.aRLm0IGxe1#fnr.1 +[8]: tmp.cmx0w4nr81#fn.1 +[9]: tmp.cmx0w4nr81#fnr.1 [10]: https://codeberg.org/jao/elibs/src/main/init.el#L1595 [11]: https://jao.io/blog/tags.html [12]: https://jao.io/blog/tag-emacs.html From db0e0f1a35f6f7602d749f2abf1ea880c9daba79 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 15 Oct 2022 10:11:45 +0800 Subject: [PATCH 1554/3123] ALL @wxy https://linux.cn/article-15141-1.html --- ...ure Boot and Full VM Encryption Support.md | 106 ++++++++++++++++++ ...ure Boot and Full VM Encryption Support.md | 105 ----------------- 2 files changed, 106 insertions(+), 105 deletions(-) create mode 100644 published/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md delete mode 100644 sources/news/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md diff --git a/published/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md b/published/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md new file mode 100644 index 0000000000..ab610a6797 --- /dev/null +++ b/published/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md @@ -0,0 +1,106 @@ +[#]: subject: "VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support" +[#]: via: "https://news.itsfoss.com/virtualbox-7-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15141-1.html" + +VirtualBox 7.0 发布,支持安全启动和全加密虚拟机 +====== + +> VirtualBox 7.0 是自其上次大版本更新以来的一次重大升级。有一些不错的进步! + +![伴随着 VirtualBox 7.0 的发布,支持安全启动和全加密虚拟机][1] + +对 VirtualBox 来说,这是一次大的升级。这个版本值得关注,因为我们在最近几年没有看到过它的大版本更新。 + +对于那些不熟悉 VirtualBox 的人来说,它是一个由 [甲骨文公司][2] 开发的虚拟化软件。 + +随着 VirtualBox 7.0 的推出,增加了许多新功能。 + +让我们来看看其中最关键的一些。 + +### VirtualBox 7.0 的新内容 + +![virtualbox 7.0][3] + +VirtualBox 7.0 是一次有益的升级。有图标更新、主题改进,以及一些关键的亮点,包括: + +* 一个显示运行中的客体Guest的性能统计的新工具。 +* 支持安全启动。 +* 支持全加密虚拟机Full VM Encryption(通过 CLI)。 +* 重新设计的新建虚拟机向导。 + +#### 通过命令行管理的全加密虚拟机 + +虚拟机(VM)现在可以完全加密了,但只能通过命令行界面。 + +这也包括加密的配置日志和暂存状态。 + +截至目前,用户只能通过命令行界面对机器进行加密,未来将增加不同的方式。 + +#### 新的资源监控工具 + +![VirtualBox 7.0 的资源监控][4] + +新的实用程序可以让你监控性能统计,如 CPU、内存使用、磁盘 I/O 等。它将列出所有正在运行的客体的性能统计。 + +这不是最吸引人的补充,但很有用。 + +#### 改进的主题支持 + +对主题的支持在所有平台上都得到了改进。在 Linux 和 macOS 上使用原生引擎,而在 Windows 上,有一个单独的实现。 + +#### 对安全启动的支持 + +VirtualBox 现在支持安全启动,增强了对恶意软件、病毒和间谍软件的安全性。 + +它还将防止虚拟机使用损坏的驱动程序启动,这对企业应用非常重要。 + +使用那些需要安全启动才能运行的操作系统的用户现在应该能够轻松创建虚拟机了。 + +#### 其他变化 + +VirtualBox 7.0 是一次重大的升级。因此,有几个功能的增加和全面的完善。 + +例如,新件虚拟机向导现在已经重新设计,以整合无人值守的客体操作系统安装。 + +![virtualbox 7.0 无人值守的发行版安装][5] + +其他改进包括: + +* 云端虚拟机现在可以被添加到 VirtualBox,并作为本地虚拟机进行控制。 +* VirtualBox 的图标在此版本中得到了更新。 +* 引入了一个新的 3D 栈,支持 DirectX 11。它使用 [DXVK][6] 来为非 Windows 主机提供同样的支持。 +* 支持虚拟 TPM 1.2/2.0。 +* 改进了多显示器设置中的鼠标处理。 +* Vorbis 是音频录制的默认音频编解码器。 + +你可以查看 [发行说明][7] 以了解更多信息。 + +如果你正在寻找增强的功能,如更好的主题支持、加密功能、安全启动支持和类似的功能添加,VirtualBox 7.0 是一个不错的升级。 + +💬 *你对这次升级有什么看法?你会使用较新的版本还是暂时坚持使用旧版本的虚拟机?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/virtualbox-7-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/virtualbox-7-0-release.jpg +[2]: https://www.oracle.com/in/ +[3]: https://news.itsfoss.com/content/images/2022/10/VirtualBox_7.0.png +[4]: https://news.itsfoss.com/content/images/2022/10/VirtualBox_7.0_Resource_Monitor.png +[5]: https://news.itsfoss.com/content/images/2022/10/VirtualBox_7.0_Unattended_Guest_Install.png +[6]: https://github.com/doitsujin/dxvk +[7]: https://www.virtualbox.org/wiki/Changelog-7.0 diff --git a/sources/news/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md b/sources/news/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md deleted file mode 100644 index 7ec48218fb..0000000000 --- a/sources/news/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md +++ /dev/null @@ -1,105 +0,0 @@ -[#]: subject: "VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support" -[#]: via: "https://news.itsfoss.com/virtualbox-7-0-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support -====== -VirtualBox 7.0 is a big upgrade since its last major update. Some nice advancements! - -![VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support][1] - -A big upgrade for VirtualBox. This release is pretty interesting because we haven't seen a major update in recent years. - -For those unfamiliar with VirtualBox, it is a virtualization software developed by [Oracle][2]. - -With the launch of VirtualBox 7.0, many new features have been added. - -Let's take a look at some of the most crucial ones. - -### VirtualBox 7.0: What's New? - -![virtualbox 7.0][3] - -VirtualBox 7.0 is a helpful upgrade. There are icon updates, theme improvements, and some key highlights, including: - -* A new utility to show performance statistics for running guests. -* Secure boot support. -* Full VM encryption support (via CLI). -* Reworked new virtual machine wizard. - -#### Full VM Encryption via CLI - -Virtual Machines (VM) can now be fully encrypted, but only through the command-line interface. - -This also includes the config logs and saved states. - -As of now, users can encrypt their machines only through the command-line interface, and different methods are to be added in the future. - -#### New Resource Monitor Utility - -![virtualbox 7.0 resource monitor][4] - -The new utility lets you monitor performance statistics like CPU, RAM usage, disk I/O, and more. It would list the performance stats for all the running guests. - -Not the most attractive addition, but useful. - -#### Improved Theme Support - -The support for themes has been improved on all platforms. The native engine is used on Linux and macOS, and on Windows, a separate implementation is in place. - -#### Support for Secure Boot - -VirtualBox now supports Secure Boot, enhancing security against malware, viruses, and spyware. - -It will also prevent a VM from booting up with broken drivers, which is very important for enterprise applications. - -Users who use operating systems that require a secure boot to run should be able to create VMs easily. - -#### Other Changes - -VirtualBox 7.0 is a significant upgrade. So, there are several feature additions and refinements across the board. - -For instance, the new VM wizard has now been reworked to integrate unattended guest OS installations. - -![virtualbox 7.0 unattended distro installs][5] - -Other improvements include: - -* Cloud virtual machines can now be added to VirtualBox and controlled as local VMs. -* The VirtualBox icon has been updated with this release. -* A new 3D stack has been introduced that supports DirectX 11. It uses [DXVK][6] to provide the same support for non-Windows hosts. -* Support for virtual TPM 1.2/2.0. -* Improved mouse handling in multi-monitor setups. -* Vorbis is the default audio codec for audio recording. - -You can review the [release notes][7] for additional information. - -If you were looking for enhanced features, such as better theme support, encryption features, secure boot support, and similar feature additions, VirtualBox 7.0 is a nice upgrade. - -💬 *What do you think about the upgrade? Would you use the newer version or stick to the older version for your VMs for now?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/virtualbox-7-0-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/virtualbox-7-0-release.jpg -[2]: https://www.oracle.com/in/ -[3]: https://news.itsfoss.com/content/images/2022/10/VirtualBox_7.0.png -[4]: https://news.itsfoss.com/content/images/2022/10/VirtualBox_7.0_Resource_Monitor.png -[5]: https://news.itsfoss.com/content/images/2022/10/VirtualBox_7.0_Unattended_Guest_Install.png -[6]: https://github.com/doitsujin/dxvk -[7]: https://www.virtualbox.org/wiki/Changelog-7.0 From 78a5cd3fe945abfd0079fcf502cffba5717fc4fd Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 15 Oct 2022 11:12:25 +0800 Subject: [PATCH 1555/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Microservices Using Flask on Kubernetes.md | 525 ----------------- ...Microservices Using Flask on Kubernetes.md | 528 ++++++++++++++++++ 2 files changed, 528 insertions(+), 525 deletions(-) delete mode 100644 sources/tech/20220912 Python Microservices Using Flask on Kubernetes.md create mode 100644 translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md diff --git a/sources/tech/20220912 Python Microservices Using Flask on Kubernetes.md b/sources/tech/20220912 Python Microservices Using Flask on Kubernetes.md deleted file mode 100644 index bca228fddb..0000000000 --- a/sources/tech/20220912 Python Microservices Using Flask on Kubernetes.md +++ /dev/null @@ -1,525 +0,0 @@ -[#]: subject: "Python Microservices Using Flask on Kubernetes" -[#]: via: "https://www.opensourceforu.com/2022/09/python-microservices-using-flask-on-kubernetes/" -[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Python Microservices Using Flask on Kubernetes -====== -*Microservices follow domain driven design (DDD), irrespective of the platform on which they are developed. Python microservices are not an exception. The object-oriented features of Python 3 make it even easier to model services on the lines of DDD. Part 10 of this series demonstrates how to deploy FindService of user management system as a Python microservice on Kubernetes.* - -The power of microservices architecture lies partly in its polyglot nature. The enterprises decompose their functionality into a set of microservices and each team chooses a platform of its choice. - -Our user management system was already decomposed into four microservices, namely, AddService, FindService, SearchService and JournalService. The AddService was developed on the Java platform and deployed on the Kubernetes cluster for resilience and scalability. This doesn’t mean that the remaining services are also developed on Java. We are free to choose a suitable platform for individual services. - -Let us pick Python as the platform for developing the FindService. The model for FindService has already been designed (refer to the March 2022 issue of Open Source For You). We only need to convert this model into code and configuration. - -### The Pythonic approach - -Python is a general-purpose programming language that has been around for about three decades. In the early days, it was the first choice for automation scripting. However, with frameworks like Django and Flask, its popularity has been growing and it is now adopted in various other domains like enterprise application development. Data science and machine learning pushed the envelope further and Python is now one of the top three programming languages. - -Many people attribute the success of Python to its ease of coding. This is only partially true. As long as your objective is to develop small scripts, Python is just like a toy. You love it. However, the moment you enter the domain of serious large-scale application development, you will have to handle lots of ifs and buts, and Python becomes as good as or as bad as any other platform. For example, take an object-oriented approach! Many Python developers may not even be aware of the fact that Python supports classes, inheritance, etc. Python does support full-blown object-oriented development, but in its own way — the Pythonic way! Let us explore it! - -### The domain model - -AddService adds the users to the system by saving the data into a MySQL database. The objective of the FindService is to offer a REST API to find the users by their name. The domain model is reproduced in Figure 1. It primarily consists of value objects like Name, PhoneNumber along with User entity and UserRepository. - -![Figure 1: The domain model of FindService][1] - -Let us begin with the Name. Since it is a value object, it must be validated by the time it is created and must remain immutable. The basic structure looks like this: - -``` -class Name: -value: str -def __post_init__(self): -if self.value is None or len(self.value.strip()) < 8 or len(self.value.strip()) > 32: -raise ValueError(“Invalid Name”) -``` - -As you can see, the Name consists of a value attribute of type str. As part of the post initialization, the value is validated. - -Python 3.7 offers @dataclass decorator, which offers many features of a data-carrying class out-of-the-box like constructors, comparison operators, etc. -Following is the decorated Name: - -``` -from dataclasses import dataclass - -@dataclass -class Name: -value: str -def __post_init__(self): -if self.value is None or len(self.value.strip()) < 8 or len(self.value.strip()) > 32: -raise ValueError(“Invalid Name”) -``` - -The following code can create an object Name: - -``` -name = Name(“Krishna”) -``` - -The value attribute can be read or written as follows: - -``` -name.value = “Mohan” -print(name.value) -``` - -Another Name object can be compared as easily as follows: - -``` -other = Name(“Mohan) -if name == other: print(“same”) -``` - -As you can see, the objects are compared by their values, not by their references. This is all out-of-the-box. We can also make the object immutable, by freezing. Here is the final version of Name as a value object: - -``` -from dataclasses import dataclass - -@dataclass(frozen=True) -class Name: -value: str -def __post_init__(self): -if self.value is None or len(self.value.strip()) < 8 or len(self.value.strip()) > 32: -raise ValueError(“Invalid Name”) -``` - -The PhoneNumber also follows a similar approach, as it is also a value object: - -``` -@dataclass(frozen=True) -class PhoneNumber: -value: int -def __post_init__(self): -if self.value < 9000000000: -raise ValueError(“Invalid Phone Number”) -``` - -The User class is an entity, not a value object. In other words, the User is not immutable. Here is the structure: - -``` -from dataclasses import dataclass -import datetime - -@dataclass -class User: -_name: Name -_phone: PhoneNumber -_since: datetime.datetime - -def __post_init__(self): -if self._name is None or self._phone is None: -raise ValueError(“Invalid user”) -if self._since is None: -self.since = datetime.datetime.now() -``` - -You can observe that the User is not frozen as we want it to be mutable. However, we do not want all the properties mutable. The identity field like _name and fields like _since are not expected to be modified. Then, how can this be controlled? - -Python 3 offers the so-called Descriptor protocol. It helps us in defining the getters and setters appropriately. Let us add the getters to all the three fields of User using the @property decorator: - -``` -@property -def name(self) -> Name: -return self._name - -@property -def phone(self) -> PhoneNumber: -return self._phone - -@property -def since(self) -> datetime.datetime: -return self._since -``` - -And the setter for the phone field can be added using @.setter decoration: - -``` -@phone.setter -def phone(self, phone: PhoneNumber) -> None: -if phone is None: -raise ValueError(“Invalid phone”) -self._phone = phone -``` - -The User can also be given a method for easy print representation by overriding the __str__() function: - -``` -def __str__(self): -return self.name.value + “ [“ + str(self.phone.value) + “] since “ + str(self.since) -``` - -With this the entities and the value objects of the domain model are ready. Creating an exception class is as easy as follows: - -``` -class UserNotFoundException(Exception): -pass -``` - -The only other one remaining in the domain model is the UserRepository. Python offers a useful module called abc for building abstract methods and abstract classes. Since UserRepository is only an interface, we can use the abc package. - -Any Python class that extends abc.ABC becomes abstract. Any function with the @abc.abstractmethod decorator becomes an abstract function. Here is the resultant structure of UserRepository: - -``` -from abc import ABC, abstractmethod - -class UserRepository(ABC): -@abstractmethod -def fetch(self, name:Name) -> User: -pass -``` - -The UserRepository follows the repository pattern. In other words, it offers appropriate CRUD operations on the User entity without exposing the underlying data storage semantics. In our case, we need only fetch() operation since FindService only finds the users. - -Since the UserRepository is an abstract class, we cannot create instance objects from this class. A concrete class must implement this abstract class for object creation.The data layer -The UserRepositoryImpl offers the concrete implementation of UserRepository: - -``` -class UserRepositoryImpl(UserRepository): -def fetch(self, name:Name) -> User: pass -``` - -Since the AddService stores the data of the users in a MySQL database server, the UserRepositoryImpl also must connect to the same database server to retrieve the data. The code for connecting to the database is given below. Observe that we are using the connector library of MySQL. - -``` -from mysql.connector import connect, Error -``` - -``` -class UserRepositoryImpl(UserRepository): -def fetch(self, name:Name) -> User: -try: -with connect( -host=”mysqldb”, -user=”root”, -password=”admin”, -database=”glarimy”, -) as connection: -with connection.cursor() as cursor: -cursor.execute(“SELECT * FROM ums_users where name=%s”, (name.value,)) -row = cursor.fetchone() -if cursor.rowcount == -1: -raise UserNotFoundException() -else: -return User(Name(row[0]), PhoneNumber(row[1]), row[2]) -except Error as e: -raise e -``` - -In the above snippet, we are connecting to a database server named mysqldb using root as the user and admin as the password, in order to use the database schema named glarimy. It is fine to have such information in the code for an illustration, but surely not a suggested approach in production as it exposes sensitive information. - -The logic of the fetch() operation is quite intuitive. It executes a SELECT query against the ums_users table. Recollect that the AddService was writing the user data into the same table. In case the SELECT query returns no records, the fetch() function throws UserNotFoundException. Otherwise, it constructs the User entity from the record and returns it to the caller. Nothing unusual. - -### The application layer - -And finally, we need to build the application layer. The model is reproduced in Figure 2. It consists of just two classes: a controller and a DTO. - -![Figure 2: The application layer of FindService][2] - -As we already know, a DTO is just a data container without any business logic. It is primarily used for carrying data between the FindService and the outside world. We just offer a way to convert the UserRecord into a dictionary for JSON marshalling in the REST layer: - -``` -class UserRecord: -def toJSON(self): -return { -“name”: self.name, -“phone”: self.phone, -“since”: self.since -} -``` - -The job of a controller is to convert DTOs to domain objects for invoking the domain services and vice versa, as can be observed in the find() operation. - -``` -class UserController: - -def __init__(self): -self._repo = UserRepositoryImpl() - -def find(self, name: str): -try: -user: User = self._repo.fetch(Name(name)) -record: UserRecord = UserRecord() -record.name = user.name.value -record.phone = user.phone.value -record.since = user.since -return record -except UserNotFoundException as e: -return None -``` - -The find() operation receives a string as a name, converts it as a Name object and invokes the UserRepository to fetch the corresponding User object. If it is found, a UserRecord is created by using the retrieved User object. Recollect that it is necessary to convert the domain objects as DTO to hide the domain model from the external world. - -The UserController need not have multiple instances. It can be a singleton as well. By overriding the __new__ operation, it can be modelled as a singleton: - -``` -class UserController: -def __new__(self): -if not hasattr(self, ‘instance’): -self.instance = super().__new__(self) -return self.instance - -def __init__(self): -self._repo = UserRepositoryImpl() - -def find(self, name: str): -try: -user: User = self._repo.fetch(Name(name)) -record: UserRecord = UserRecord() -record.name = user.name.getValue() -record.phone = user.phone.getValue() -record.since = user.since -return record -except UserNotFoundException as e: -return None -``` - -We are done with implementing the model of the FindService fully. The only task remaining is to expose it as a REST service. - -### The REST API - -Our FindService offers only one API and that is to find a user by name. The obvious URI is as follows: - -``` -GET /user/{name} -``` - -This API is expected to find the user with the supplied name and returns the details of phone number, etc, of the user in JSON format. In case no such user is found, the API is expected to return a 404 status. - -We can use the Flask framework to build the REST API. This framework was originally built for developing Web applications using Python. It is further extended to support the REST views besides the HTML views. We pick this framework for its simplicity. -Start by creating a Flask application: - -``` -from flask import Flask -app = Flask(__name__) -``` - -Then define the routes for the Flask application as simple functions: - -``` -@app.route(‘/user/’) -def get(name): pass -``` - -Observe that the @app.route is mapped to the API /user/ on one side and to the function get() on the other side. - -As you may already have figured out, this get() function will be invoked every time the user accesses the API with a URI like http://server:port/user/Krishna. Flask is intelligent enough to extract ‘Krishna’ as the name from the URI and pass it to the get() function. - -The get() function is straightforward. It asks the controller to find the user and returns the same after marshalling it to the JSON format along with the usual HTTP headers. In case the controller returns None, the get() function returns the response with an appropriate HTTP status. - -``` -from flask import jsonify, abort - -controller = UserController() -record = controller.find(name) -if record is None: -abort(404) -else: -resp = jsonify(record.toJSON()) -resp.status_code = 200 -return resp -``` - -And, finally, the Flask app needs to be served. We can use the waitress server for this purpose. - -``` -from waitress import serve -serve(app, host=”0.0.0.0”, port=8080) -``` - -In the above snippet, the app is served on port 8080 on the local host. -The final code looks like this: - -``` -from flask import Flask, jsonify, abort -from waitress import serve - -app = Flask(__name__) - -@app.route(‘/user/’) -def get(name): -controller = UserController() -record = controller.find(name) -if record is None: -abort(404) -else: -resp = jsonify(record.toJSON()) -resp.status_code = 200 -return resp - -serve(app, host=”0.0.0.0”, port=8080) -``` - -### Deployment - -The FindService is now ready with code. It has its domain model, data layer, and application layer besides the REST API. The next step is to build the service, containerise it, and then deploy it on Kubernetes. The process is in no way different from any other service, though there are some Python-specific steps. - -Before proceeding further, let us have a look at the folder/file structure: - -``` -+ ums-find-service -+ ums -- domain.py -- data.py -- app.py -- Dockerfile -- requirements.txt -- kube-find-deployment.yml -``` - -As you can observe, the whole work is under the ums-find-service folder. It contains the code in the ums folder and configurations in Dockerfile, requirements.txt and kube-find-deployment.yml files. - -The domain.py consists of the domain model classes, data.py consists of UserRepositoryImpl and app.py consists of the rest of the code. Since we have seen the code already, let us move on to the configuration files. - -The first one is the file named requirements.txt. It declares the external dependencies for the Python system to download and install. We need to populate it with every external Python module that we use in the FindService. As you know, we used MySQL connector, Flask and Waitress modules. Hence the following is the content of the requirements.txt. - -``` -Flask==2.1.1 -Flask_RESTful -mysql-connector-python -waitress -``` - -The second step is to declare the manifestation for dockerisation in Dockerfile. Here it is: - -``` -FROM python:3.8-slim-buster - -WORKDIR /ums -ADD ums /ums -ADD requirements.txt requirements.txt -RUN pip3 install -r requirements.txt - -EXPOSE 8080 -ENTRYPOINT [“python”] -CMD [“/ums/app.py”] -``` - -In summary, we used Python 3.8 as the baseline and moved our code from the ums folder to a corresponding folder in the Docker container, besides moving the requirements.txt. Then we instructed the container to run the pip3 install command. And, finally, we exposed port 8080 (since the waitress was running on that port). - -In order to run the service, we instructed the container to use the following command: - -``` -python /ums/app.py -``` - -Once the Dockerfile is ready, run the following command from within the ums-find-service folder to create the Dockerised image: - -``` -docker build -t glarimy/ums-find-service -``` - -It creates the Docker image, which can be found using the following command: - -``` -docker images -``` - -Try pushing the image to the Docker Hub as appropriate. You may log in to Docker as well. - -``` -docker login -docker push glarimy/ums-find-service -``` - -And the last step is to build the manifest for the Kubernetes deployment. - -We have already covered the way to set up the Kubernetes cluster, and deploy and use services, in the previous part. I am assuming that we still have the manifest file we used in the previous part for deploying the AddService, MySQL, Kafka and Zookeeper. We only need to add the following entries into the kube-find-deployment.yml file: - -``` -apiVersion: apps/v1 -kind: Deployment -metadata: -name: ums-find-service -labels: -app: ums-find-service -spec: -replicas: 3 -selector: -matchLabels: -app: ums-find-service -template: -metadata: -labels: -app: ums-find-service -spec: -containers: -- name: ums-find-service -image: glarimy/ums-find-service -ports: -- containerPort: 8080 ---- -apiVersion: v1 -kind: Service -metadata: -name: ums-find-service -labels: -name: ums-find-service -spec: -type: LoadBalancer -ports: -- port: 8080 -selector: -app: ums-find-service -``` - -The first part of the above manifest declares a deployment of FindService from the image glarimy/ums-find-service with three replicas. It also exposes port 8080. And the latter part of the manifest declares a Kubernetes service as the front-end for the FindService deployment. Recollect that the MySQL service in the name of mysqldb was already part of the above manifest from the previous part. - -Run the following command to deploy the manifest on a Kubernetes cluster: - -``` -kubectl create -f kube-find-deployment.yml -``` - -Once the deployment is finished, you can verify the pods and services using the following command: - -``` -kubectl get services -``` - -It gives an output as shown in Figure 3. - -![Figure 3: Kubernetes services][3] - -It lists all the services running on the cluster. Make a note of the external-ip of the FindService and use the curl command to invoke the service: - -``` -curl http://10.98.45.187:8080/user/KrishnaMohan -``` - -Note that the IP address 10.98.45.187 corresponds to the FindService, as found in Figure 3. - -If we have used the AddService to create a user by the name KrishnaMohan, the above curl command looks like what is shown in Figure 4. - -![Figure 4: FindService][4] - -With the AddService and FindService, along with the required back-end services for storage and messaging, the architecture of the user management system (UMS) stands as shown in Figure 5, at this point. You can observe that the end-user uses the IP address of the ums-add-service for adding a new user, whereas it uses the IP address of the ums-find-service for finding existing users. Each of these Kubernetes services are backed by three pods with the corresponding containers. Also note that the same mysqldb service is used for storing and retrieving the user data. - -![Figure 5: UMS with AddService and FindService][5] - -### What about the other services? - -The UMS consists of two more services, namely, SearchService and JournalService. We will design these services in the next part of this series on the Node platform, and deploy them on the same Kubernetes cluster to demonstrate the real power of polyglot microservices architecture. We will conclude by observing some design patterns pertaining to microservices. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/09/python-microservices-using-flask-on-kubernetes/ - -作者:[Krishna Mohan Koyya][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/krishna-mohan-koyya/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-1-The-domain-model-of-FindService-1.png -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-2-The-application-layer-of-FindService.png -[3]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-3-Kubernetes-services-1.png -[4]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-4-FindService.png -[5]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-5-UMS-with-AddService-and-FindService.png diff --git a/translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md b/translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md new file mode 100644 index 0000000000..47faa340af --- /dev/null +++ b/translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md @@ -0,0 +1,528 @@ +[#]: subject: "Python Microservices Using Flask on Kubernetes" +[#]: via: "https://www.opensourceforu.com/2022/09/python-microservices-using-flask-on-kubernetes/" +[#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Kubernetes 上使用 Flask 的 Python 微服务 +====== + +![Python 微服务][6] + +*微服务遵循领域驱动设计(DDD),与开发平台无关。Python 微服务也不例外。Python3 的面向对象特性使得按照 DDD 对服务进行建模变得更加容易。本系列的第 10 部分演示了如何将用户管理系统的查找服务作为 Python 微服务部署在 Kubernetes 上。* + +微服务架构的强大之处在于它的多语言性。企业将其功能分解为一组微服务,每个团队自由选择一个平台。 + +我们的用户管理系统已经分解为四个微服务,分别是添加、查找、搜索和日志服务。添加服务在 Java 平台上开发并部署在 Kubernetes 集群上,以实现弹性和可扩展性。这并不意味着其余的服务也要使用 Java 开发,我们可以自由选择适合个人服务的平台。 + +让我们选择 Python 作为开发查找服务的平台。查找服务的模型已经设计好了(参考 2022 年 3 月份的文章),我们只需要将这个模型转换为代码和配置。 + +### Pythonic 方法 + +Python 是一种通用编程语言,已经存在了大约 30 年。早期,它是自动化脚本的首选。然而,随着 Django 和 Flask 等框架的出现,它的受欢迎程度越来越高,现在各种领域中都在应用它,如企业应用程序开发。数据科学和机器学习进一步推动了它的发展,Python 现在是三大编程语言之一。 + +许多人将 Python 的成功归功于它容易编码。这只是一部分原因。只要你的目标是开发小型脚本,Python 就像一个玩具,你会非常喜欢它。然而,当你进入严肃的大规模应用程序开发领域时,你将不得不处理大量的 if 和 else,Python 变得与任何其他平台一样好或一样坏。例如,采用一种面向对象的方法!许多 Python 开发人员甚至可能没意识到 Python 支持类、继承等功能。Python 确实支持成熟的面向对象开发,但是有它自己的方式 -- Pythonic!让我们探索一下! + +### 领域模型 + +添加服务通过将数据保存到一个 MySQL 数据库中来将用户添加到系统中。查找服务的目标是提供一个 REST API 按用户名查找用户。域模型如图 1 所示。它主要由一些值对象组成,如用户实体的用户名、电话以及 UserRepository。 + +![图 1: 查找服务的域模型][1] + +让我们从用户名开始。由于它是一个值对象,因此必须在创建时进行验证,并且必须保持不可变。基本结构如所示: + +```python +class Name: + value: str + def __post_init__(self): + if self.value is None or len(self.value.strip()) < 8 or len(self.value.strip()) > 32: + raise ValueError("Invalid Name") +``` + +如你所见,用户名包含一个字符串类型的值。作为后期初始化的一部分,我们会验证它。 + +Python 3.7 提供了 @dataclass 装饰器,它提供了许多开箱即用的数据承载类的功能,如构造函数、比较运算符等。如下是装饰后的 Name 类: + +```python +from dataclasses import dataclass + +@dataclass +class Name: + value: str + def __post_init__(self): + if self.value is None or len(self.value.strip()) < 8 or len(self.value.strip()) > 32: + raise ValueError("Invalid Name") +``` + +以下代码可以创建一个 Name 对象: + +```python +name = Name("Krishna") +``` + +value 属性可以按照如下方式读取或写入: + +```python +name.value = "Mohan" +print(name.value) +``` + +可以很容易地与另一个 Name 对象比较,如下所示: + +```python +other = Name("Mohan") +if name == other: + print("same") +``` + +如你所见,对象比较的是值而不是引用。这一切都是开箱即用的。我们还可以通过冻结对象使对象不可变。这是 Name 值对象的最终版本: + +```python +from dataclasses import dataclass + +@dataclass(frozen=True) +class Name: + value: str + def __post_init__(self): + if self.value is None or len(self.value.strip()) < 8 or len(self.value.strip()) > 32: + raise ValueError("Invalid Name") +``` + +电话也遵循类似的方法,因为它也是一个值对象: + +```python +@dataclass(frozen=True) +class PhoneNumber: + value: int + def __post_init__(self): + if self.value < 9000000000: + raise ValueError("Invalid Phone Number") +``` + +用户类是一个实体,不是一个值对象。换句话说,用户是可变的。以下是结构: + +```python +from dataclasses import dataclass +import datetime + +@dataclass +class User: + _name: Name + _phone: PhoneNumber + _since: datetime.datetime + + def __post_init__(self): + if self._name is None or self._phone is None: + raise ValueError("Invalid user") + if self._since is None: + self.since = datetime.datetime.now() +``` + +你能观察到用户并没有冻结,因为我们希望它是可变的。但是,我们不希望所有属性都是可变的。标识字段如 _name 和 _since 是希望不会修改的。那么,这如何做到呢? + +Python3 提供了所谓的描述符协议,它会帮助我们正确定义 getters 和 setters。让我们使用 @property 装饰器将 getter 添加到 User 的所有三个字段中。 + +```python +@property +def name(self) -> Name: + return self._name + +@property +def phone(self) -> PhoneNumber: + return self._phone + +@property +def since(self) -> datetime.datetime: + return self._since +``` + +电话字段的 setter 可以使用 @<字段>.setter 来装饰: + +```python +@phone.setter +def phone(self, phone: PhoneNumber) -> None: + if phone is None: + raise ValueError("Invalid phone") + self._phone = phone +``` + +通过重写 \_\_str\_\_() 函数,也可以为 User 提供一个简单的打印方法: + +```python +def __str__(self): + return self.name.value + " [" + str(self.phone.value) + "] since " + str(self.since) +``` + +这样,域模型的实体和值对象就准备好了。创建异常类如下所示: + +```python +class UserNotFoundException(Exception): + pass +``` + +域模型现在只剩下 UserRepository 了。Python 提供了一个名为 abc 的有用模块来创建抽象方法和抽象类。因为 UserRepository 只是一个接口,所以我们可以使用 abc 模块。 + +任何继承自 abc.ABC 的类都将变为抽象类,任何带有 @abc.abstractmethod 装饰器的函数都会变为一个抽象函数。下面是 UserRepository 的结构: + +```python +from abc import ABC, abstractmethod + +class UserRepository(ABC): + @abstractmethod + def fetch(self, name:Name) -> User: + pass +``` + +UserRepository 遵循仓储模式。换句话说,它在 User 实体上提供适当的 CRUD 操作,而不会暴露底层数据存储语义。在本例中,我们只需要 fetch() 操作,因为查找服务只查找用户。 + +因为 UserRepository 是一个抽象类,我们不能从抽象类创建实例对象。创建对象必须依赖于一个具体类实现这个抽象类。数据层 UserRepositoryImpl 提供了 UserRepository 的具体实现: + +``` +class UserRepositoryImpl(UserRepository): + def fetch(self, name:Name) -> User: + pass +``` + +由于添加服务将用户数据存储在一个 MySQL 数据库中,因此 UserRepositoryImpl 也必须连接到相同的数据库去检索数据。下面是连接到数据库的代码。主要,我们正在使用 MySQL 的连接库。 + +```python +from mysql.connector import connect, Error + +class UserRepositoryImpl(UserRepository): + def fetch(self, name:Name) -> User: + try: + with connect( + host="mysqldb", + user="root", + password="admin", + database="glarimy", + ) as connection: + with connection.cursor() as cursor: + cursor.execute("SELECT * FROM ums_users where name=%s", (name.value,)) + row = cursor.fetchone() + if cursor.rowcount == -1: + raise UserNotFoundException() + else: + return User(Name(row[0]), PhoneNumber(row[1]), row[2]) + except Error as e: + raise e +``` + +在上面的片段中,我们使用 root 用户,admin 密码连接到一个名为 mysqldb 的数据库服务器,使用名为 glarimy 的数据库(模式)。在演示代码中是可以包含这些信息的,但在生产中不建议这么做,因为这会暴露敏感信息。 + +fetch() 操作的逻辑非常直观,它对 ums_users 表执行 SELECT 查询。回想一下,添加服务正在将用户数据写入同一个表中。如果 SELECT 查询没有返回记录,fetch() 函数将抛出 UserNotFoundException 异常。否则,它会从记录中构造 User 实体并将其返回给调用者。这没有什么特殊的。 + +### 应用层 + +最终,我们需要创建应用层。此模型如图 2 所示。它只包含两个类:控制器和一个 DTO。 + +![图 2: 添加服务的应用层][2] + +众所周知,一个 DTO 只是一个没有任何业务逻辑的数据容器。它主要用于在查找服务和外部服务之间传输数据。我们只是提供了在 REST 层中将 UserRecord 转换为字典以便用于 JSON 传输: + +```python +class UserRecord: + def toJSON(self): + return { + "name": self.name, + "phone": self.phone, + "since": self.since + } +``` + +控制器的工作是将 DTO 转换为用于域服务的域对象,反之亦然。可以从 find() 操作中观察到这一点。 + +```python +class UserController: + + def __init__(self): + self._repo = UserRepositoryImpl() + + def find(self, name: str): + try: + user: User = self._repo.fetch(Name(name)) + record: UserRecord = UserRecord() + record.name = user.name.value + record.phone = user.phone.value + record.since = user.since + return record + except UserNotFoundException as e: + return None +``` + +find() 操作接收一个字符串作为用户名,然后将其转换为 Name 对象,并调用 UserRepository 获取相应的 User 对象。如果找到了,则使用检索到的 User 对象创建 UserRecord。回想一下,将域对象转换为 DTO 是很有必要的,这样可以对外部服务隐藏域模型。 + +UserController 不需要有多个实例,它也可以是单例的。通过重写 \_\_new\_\_,可以将其建模为一个单例。 + +```python +class UserController: + def __new__(self): + if not hasattr(self, ‘instance’): + self.instance = super().__new__(self) + return self.instance + + def __init__(self): + self._repo = UserRepositoryImpl() + + def find(self, name: str): + try: + user: User = self._repo.fetch(Name(name)) + record: UserRecord = UserRecord() + record.name = user.name.getValue() + record.phone = user.phone.getValue() + record.since = user.since + return record + except UserNotFoundException as e: + return None +``` + +我们已经完全实现了查找服务的模型,剩下的唯一任务是将其作为 REST 服务公开。 + +### REST API + +查找服务只提供一个 API,那就是通过用户名查找用户。显然 URI 如下所示: + +``` +GET /user/{name} +``` + +此 API 希望根据提供的用户名查找用户,并以 JSON 格式返回用户的电话号码等详细信息。如果没有找到用户,API 将返回一个 404 状态码。 + +我们可以使用 Flask 框架来构建 REST API,它最初的目的是使用 Python 开发 Web 应用程序。除了 HTML 视图,它还进一步扩展到支持 REST 视图。我们选择这个框架是因为它足够简单。 +创建一个 Flask 应用程序: + +```python +from flask import Flask +app = Flask(__name__) +``` + +然后为 Flask 应用程序定义路由,就像函数一样简单: + +```python +@app.route('/user/') +def get(name): + pass +``` + +注意 @app.route 映射到 API /user/,与之对应的函数的 get()。 + +如你所见,每次用户访问 API 如 http://server:port/user/Krishna 时,都将调用这个 get() 函数。Flask 足够智能,可以从 URL 中提取 'Krishna' 作为用户名,并将其传递给 get() 函数。 + +get() 函数很简单。它要求控制器找到该用户,并将其与通常的 HTTP 头一起打包为 JSON 格式后返回。如果控制器返回 None,则 get() 函数返回合适的 HTTP 状态码。 + +```python +from flask import jsonify, abort + +controller = UserController() +record = controller.find(name) +if record is None: + abort(404) +else: + resp = jsonify(record.toJSON()) + resp.status_code = 200 + return resp +``` + +最后,我们需要 Flask 应用程序提供服务,可以使用 waitress 服务: + +```python +from waitress import serve +serve(app, host="0.0.0.0", port=8080) +``` + +在上面的片段中,应用程序在本地主机的 8080 端口上提供服务。 +最终代码如下所示: + +```python +from flask import Flask, jsonify, abort +from waitress import serve + +app = Flask(__name__) + +@app.route('/user/') +def get(name): + controller = UserController() + record = controller.find(name) + if record is None: + abort(404) + else: + resp = jsonify(record.toJSON()) + resp.status_code = 200 + return resp + +serve(app, host="0.0.0.0", port=8080) +``` + +### 部署 + +查询服务的代码已经准备完毕。除了 REST API 之外,它还有域模型、数据层和应用程序层。下一步是构建此服务,将其容器化,然后部署到 Kubernetes 上。此过程与部署其他服务妹有任何区别,但有一些 Python 特有的步骤。 + +在继续前进之前,让我们来看下文件夹和文件结构: + +```bash ++ ums-find-service ++ ums +- domain.py +- data.py +- app.py +- Dockerfile +- requirements.txt +- kube-find-deployment.yml +``` + +如你所见,整个工作文件夹都位于 ums-find-service 下,它包含了 ums 文件夹中的代码和一些配置文件,例如 Dockerfile、requirements.txt 和 kube-find-deployment.yml。 + +domain.py 包含域模型,data.py 包含 UserRepositoryImpl,app.py 包含剩余代码。我们已经阅读过代码了,现在我们来看看配置文件。 + +第一个是 requirements.txt,它声明了 Python 系统需要下载和安装的外部依赖项。我们需要用查找服务中用到的每个外部 Python 模块来填充它。如你所见,我们使用了 MySQL 连接器、Flask 和 Waitress 模块。因此,下面是 requirements.txt 的内容。 + +``` +Flask==2.1.1 +Flask_RESTful +mysql-connector-python +waitress +``` + +第二步是在 Dockerfile 中声明一些必要显示(to 校正:这里不太理解该如何翻译),如下: + +``` +FROM python:3.8-slim-buster + +WORKDIR /ums +ADD ums /ums +ADD requirements.txt requirements.txt +RUN pip3 install -r requirements.txt + +EXPOSE 8080 +ENTRYPOINT ["python"] +CMD ["/ums/app.py"] +``` + +总的来说,我们使用 Python 3.8 作为基线,除了移动 requirements.txt 之外,我们还将代码从 ums 文件夹移动到 Docker 容器中对应的文件夹中。然后,我们指示容器运行 pip3 install 命令安装对应模块。最后,我们向外暴露 8080 端口(因为 waitress 运行在此端口上)。 + +为了运行此服务,我们指示容器使用使用以下命令: + +``` +python /ums/app.py +``` + +一旦 Dockerfile 准备完成,在 ums-find-service 文件夹中运行以下命令,创建 Docker 镜像: + +``` +docker build -t glarimy/ums-find-service +``` + +它会创建 Docker 镜像,可以使用以下命令查找镜像: + +``` +docker images +``` + +尝试将镜像推送到 Docker Hub,你也可以登录到 Docker。 + +``` +docker login +docker push glarimy/ums-find-service +``` + +最后一步是为 Kubernetes 部署构建清单。 + +在之前的文章中,我们已经介绍了如何建立 Kubernetes 集群、部署和使用服务的方法。我假设仍然使用之前文章中的 manifest 文件来部署添加服务、MySQL、Kafka 和 Zookeeper。我们只需要将以下内容添加到 kube-find-deployment.yml 文件中: + +``` +apiVersion: apps/v1 +kind: Deployment +metadata: +name: ums-find-service +labels: +app: ums-find-service +spec: +replicas: 3 +selector: +matchLabels: +app: ums-find-service +template: +metadata: +labels: +app: ums-find-service +spec: +containers: +- name: ums-find-service +image: glarimy/ums-find-service +ports: +- containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: +name: ums-find-service +labels: +name: ums-find-service +spec: +type: LoadBalancer +ports: +- port: 8080 +selector: +app: ums-find-service +``` + +上面 manifest 的第一部分声明了 glarimy/ums-find-service 镜像的查找服务,它包含三个副本。它还暴露 8080 端口。manifet 的后半部分声明了一个Kubernetes 服务作为查找服务部署的前端。请记住,在之前文章中,mysqldb 服务已经是上述清单的一部分了。 + +运行以下命令在 Kubernetes 集群上部署 manifest: + +``` +kubectl create -f kube-find-deployment.yml +``` + +部署完成后,可以使用以下命令验证容器组和服务: + +``` +kubectl get services +``` + +输出如图 3 所示: + +![图 3: Kubernetes 服务][3] + +它会列出集群上运行的所有服务。注意查找服务的外部 ip,使用 curl 调用此服务: + +``` +curl http://10.98.45.187:8080/user/KrishnaMohan +``` + +注意:10.98.45.187 对应查找服务,如图 3 所示。 + +如果我们使用添加服务创建一个名为 KrishnaMohan 的用户,那么上面的 curl 命令看起来如图 4 所示: + +![图 4: 查找服务][4] + +用户管理系统(UMS)的体系结构包含添加服务和查找服务,以及存储和消息传递所需的后端服务,如图 5 所示。可以看到终端用户使用 ums 添加服务的 IP 地址添加新用户,使用 ums 查找服务的 IP 地址查找已有用户。每个 Kubernetes 服务都由三个对应容器的节点支持。还要注意:同样的 mysqldb 服务用于存储和检索用户数据。 + +![图 5: UMS 的添加服务和查找服务][5] + +### 其他服务 + +UMS 系统还包含两个服务:查找服务和日志服务。在本系列的下一部分中,我们将在 Node 平台上设计这些服务,并将它们部署到同一个 Kubernetes 集群,以演示多语言微服务架构的真正魅力。最后,我们将观察一些与微服务相关的设计模式。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/09/python-microservices-using-flask-on-kubernetes/ + +作者:[Krishna Mohan Koyya][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://www.opensourceforu.com/author/krishna-mohan-koyya/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-1-The-domain-model-of-FindService-1.png +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-2-The-application-layer-of-FindService.png +[3]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-3-Kubernetes-services-1.png +[4]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-4-FindService.png +[5]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-5-UMS-with-AddService-and-FindService.png +[6]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Python-Microservices-1-696x477.jpg From a8100625f8f1533e64e245e71a0bccad25f4644c Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 15 Oct 2022 11:30:40 +0800 Subject: [PATCH 1556/3123] Translating --- .../tech/20220919 PyLint- The good, the bad, and the ugly.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md b/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md index 506fba92b7..da848fa47d 100644 --- a/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md +++ b/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/9/pylint-good-bad-ugly" [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6b197a847e3f2b25e6eb26cb694ec8d4b79192ad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 15 Oct 2022 15:51:48 +0800 Subject: [PATCH 1557/3123] RP @chai001125 https://linux.cn/article-15142-1.html --- ...129 Reasons for servers to support IPv6.md | 84 +++++++++---------- 1 file changed, 40 insertions(+), 44 deletions(-) rename {translated/tech => published}/20220129 Reasons for servers to support IPv6.md (73%) diff --git a/translated/tech/20220129 Reasons for servers to support IPv6.md b/published/20220129 Reasons for servers to support IPv6.md similarity index 73% rename from translated/tech/20220129 Reasons for servers to support IPv6.md rename to published/20220129 Reasons for servers to support IPv6.md index 2024b77e6f..fc9ec8ecdd 100644 --- a/translated/tech/20220129 Reasons for servers to support IPv6.md +++ b/published/20220129 Reasons for servers to support IPv6.md @@ -3,52 +3,51 @@ [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15142-1.html" 服务器支持 IPv6 的原因 ====== +![](https://img.linux.net.cn/data/attachment/album/202210/15/155046v94vbmo5imykfkxz.jpg) + 我一直在努力学习关于 IPv6 的相关知识。一方面,IPv6 的基础概念是很简单的(没有足够的 IPv4 地址可以满足互联网上的所有设备,所以人们发明了 IPv6!每个人都能有足够的 IPv6 地址!) -但是当我试图进一步理解它时,我遇到了很多问题。其中一个问题是:为什么 `twitter.com` 不支持 IPv6。假设,网站不支持 IPv6 并不会造成很多困难,那么为什么网站需要支持 IPv6 呢? +但是当我试图进一步理解它时,我遇到了很多问题。其中一个问题是:为什么 twitter.com 不支持 IPv6。假设,网站不支持 IPv6 并不会造成很多困难,那么为什么网站需要支持 IPv6 呢? 我在 Twitter 上询问了很多人 [为什么他们的服务器支持 IPv6][1],我得到了很多很好的答案,我将在这里总结一下。事先说明一下,因为我对 IPv6 基本上毫无经验,所以下面所总结的理由中可能会有写得不准确的地方,请大家多多包涵。 -首先,我想解释一下为什么 `twitter.com` 可以不支持 IPv6,因为这是最先让我困惑的地方。 +首先,我想解释一下为什么 twitter.com 可以不支持 IPv6,因为这是最先让我困惑的地方。 -### 怎么知道 `twitter.com` 不支持 IPv6 呢? +### 怎么知道 twitter.com 不支持 IPv6 呢? -你可以使用 dig 命令以 AAAA 的选项查询某一个域名的 IPv6 地址记录,如果没有记录,则表明该域名不支持 IPv6。除了 `twitter.com`,还有一些大型网站,如 `github.com` 和 `stripe.com` 也不支持 IPv6。 +你可以使用 `dig` 命令以 `AAAA` 的选项查询某一个域名的 IPv6 地址记录,如果没有记录,则表明该域名不支持 IPv6。除了 twitter.com,还有一些大型网站,如 github.com 和 stripe.com 也不支持 IPv6。 ``` - - $ dig AAAA twitter.com - (empty response) - $ dig AAAA github.com - (empty response) - $ dig AAAA stripe.com - (empty response) - +$ dig AAAA twitter.com +(empty response) +$ dig AAAA github.com +(empty response) +$ dig AAAA stripe.com +(empty response) ``` -### 为什么 `twitter.com` 仍然适用于 IPv6 用户? +### 为什么 twitter.com 仍然适用于 IPv6 用户? -我发现这真的很令人困惑。我一直听说因为 IPv4 地址已经用完了,从而很多互联网用户被迫要使用 IPv6 地址。但如果这是真的,twitter.com 怎么能继续为那些没有 IPv6 支持的人提供服务呢?以下内容是我昨天从 Twitter 线程中学习到的。 +我发现这真的很令人困惑。我一直听说因为 IPv4 地址已经用完了,从而很多互联网用户被迫要使用 IPv6 地址。但如果这是真的,twitter.com 怎么能继续为那些没有 IPv6 支持的人提供服务呢?以下内容是我昨天从 Twitter 会话中学习到的。 -互联网服务提供商(ISP)有两种: +互联网服务提供商(ISP)有两种: 1. 能为所有用户拥有足够 IPv4 地址的 ISP 2. 不能为所有用户拥有足够 IPv4 地址的 ISP - 我的互联网服务提供商属于第 1 类,因此我的计算机有自己的 IPv4 地址,实际上我的互联网服务提供商甚至根本不支持 IPv6。 -但是很多互联网服务提供商(尤其是北美以外的)都属于第 2 类:他们没有足够的 IPv4 地址供所有用户使用。 这些互联网服务提供商通过以下方式处理问题: +但是很多互联网服务提供商(尤其是北美以外的)都属于第 2 类:他们没有足够的 IPv4 地址供所有用户使用。这些互联网服务提供商通过以下方式处理问题: * 为所有用户提供唯一的 IPv6 地址,以便他们可以直接访问 IPv6 网站 - * 让用户 _共享_ IPv4 地址,这可以使用 CGNAT(“[运营商级 NAT(carrier-grade NAT)][2]”)或者“464XLAT”或其他方式。 + * 让用户 _共享_ IPv4 地址,这可以使用 CGNAT(“[运营商级 NAT][2]carrier-grade NAT”)或者“464XLAT”或其他方式。 所有互联网服务提供商都需要 _一些_ IPv4 地址,否则他们的用户将无法访问 twitter.com 等只能使用 IPv4 的网站。 @@ -56,9 +55,9 @@ 现在,我们已经解释了为什么可以 _不支持_ IPv6。那为什么要支持 IPv6 呢?有下面这些原因。 -### 原因一:CGNAT 是一个性能瓶颈 +#### 原因一:CGNAT 是一个性能瓶颈 -对我而言,支持 IPv6 最有说服力的论点是:CGNAT(carrier-grade NAT)是一个瓶颈,它会导致性能问题,并且随着对 IPv4 地址的访问变得越来越受限,它的性能会变得更糟。 +对我而言,支持 IPv6 最有说服力的论点是:CGNAT 是一个瓶颈,它会导致性能问题,并且随着对 IPv4 地址的访问变得越来越受限,它的性能会变得更糟。 有人也提到:因为 CGNAT 是一个性能瓶颈,因此它成为了一个有吸引力的拒绝服务攻击(DDoS)的目标,因为你可以通过攻击一台服务器,影响其他用户对该服务器的网站的可用性。 @@ -70,7 +69,7 @@ 不过,使用 IPv6 还有很多更自私的论点,所以让我们继续探讨吧。 -### 原因二:只能使用 IPv6 的服务器也能够访问你的网站 +#### 原因二:只能使用 IPv6 的服务器也能够访问你的网站 我之前说过,大多数 IPv6 用户仍然可以通过 NAT 方式访问 IPv4 的网站。但是有些 IPv6 用户是不能访问 IPv4 网站的,因为他们发现他们运行的服务器只有 IPv6 地址,并且不能使用 NAT。因此,这些服务器完全无法访问只能使用 IPv4 的网站。 @@ -78,7 +77,7 @@ 但对我来说,即使没有 IPv4 地址,一台主机也应该能够访问我的站点。 -### 原因三:更好的性能 +#### 原因三:更好的性能 对于同时使用 IPv4 和 IPv6(即具有专用 IPv6 地址和共享 IPv4 地址)的用户,IPv6 通常更快,因为它不需要经过额外的 NAT 地址转换。 @@ -88,61 +87,59 @@ 以下是网站支持 IPv6 的一些其他性能优势: - * 使用 IPv6 可以提高搜索引擎优化(Search Engine Optimization),因为 IPv6 具有更好的性能。 + * 使用 IPv6 可以提高搜索引擎优化(SEO),因为 IPv6 具有更好的性能。 * 使用 IPv6 可能会使你的数据包通过更好(更快)的网络硬件,因为相较于 IPv4,IPv6 是一个更新的协议。 - -### 原因四:能够恢复 IPv4 互联网中断 +#### 原因四:能够恢复 IPv4 互联网中断 有人说他碰到过由于意外的 BGP 中毒,而导致仅影响 IPv4 流量的互联网中断问题。 因此,支持 IPv6 的网站意味着在中断期间,网站仍然可以保持部分在线。 -### 原因五:避免家庭服务器的NAT问题 +#### 原因五:避免家庭服务器的 NAT 问题 将 IPv6 与家庭服务器一起使用,会变得简单很多,因为数据包不必通过路由器进行端口转发,因此只需为每台服务器分配一个唯一的 IPv6 地址,然后直接访问服务器的 IPv6 地址即可。 当然,要实现这一点,客户端需要支持 IPv6,但如今越来越多的客户端也能支持 IPv6 了。 -### 原因六:为了拥有自己的 IP 地址 +#### 原因六:为了拥有自己的 IP 地址 你也可以自己购买 IPv6 地址,并将它们用于家庭网络的服务器上。如果你更换了互联网服务提供商,可以继续使用相同的 IP 地址。 -我不太明白这是如何工作的,是如何让 Internet 上的计算机将这些 IP 地址路由转发给你的?我猜测你需要运行自己的自治系统(AS)或其他东西。 +我不太明白这是如何工作的,是如何让互联网上的计算机将这些 IP 地址路由转发给你的?我猜测你需要运行自己的自治系统(AS)或其他东西。 -### 原因七:为了学习 IPv6 +#### 原因七:为了学习 IPv6 有人说他们在安全领域中工作,为保证信息安全,了解互联网协议的工作原理非常重要(攻击者正在使用互联网协议进行攻击!)。因此,运行 IPv6 服务器有助于他们了解其工作原理。 -### 原因八:为了推进 IPv6 +#### 原因八:为了推进 IPv6 有人说因为 IPv6 是当前的标准,因此他们希望通过支持 IPv6 来为 IPv6 的成功做出贡献。 很多人还说他们的服务器支持 IPv6,是因为他们认为只能使用 IPv4 的网站已经太“落后”了。 -### 原因九:IPv6 很简单 +#### 原因九:IPv6 很简单 -我还得到了一堆“IPv6 很容易,为什么不做呢”的答案。在所有情况下添加 IPv6 支持并不容易,但在某些情况下添加 IPv6 支持会是很容易的,有以下的几个原因: +我还得到了一堆“使用 IPv6 很容易,为什么不用呢”的答案。在所有情况下添加 IPv6 支持并不容易,但在某些情况下添加 IPv6 支持会是很容易的,有以下的几个原因: * 你可以从托管公司自动地获得 IPv6 地址,因此你只需要做的就是添加指向该地址的 `AAAA` 记录 * 你的网站是基于支持 IPv6 的内容分发网络(CDN),因此你无需做任何额外的事情 - -### 原因十:为了实施更安全的网络实验 +#### 原因十:为了实施更安全的网络实验 因为 IPv6 的地址空间很大,所以如果你想在网络中尝试某些东西的时候,你可以使用 IPv6 子网进行实验,基本上你之后不会再用到这个子网了。 -### 原因十一:为了运行自己的自治系统(AS) +#### 原因十一:为了运行自己的自治系统(AS) 也有人说他们为了运行自己的自治系统(我在这篇 [BGP 帖子][3] 中谈到了什么是 AS),因此在服务器中提供 IPv6。IPv4 地址太贵了,所以他们为运行自治系统而购买了 IPv6 地址。 -### 原因十二:IPv6 更加安全 +#### 原因十二:IPv6 更加安全 如果你的服务器 _只_ 有公共的 IPv6 地址,那么攻击者扫描整个网络,也不能轻易地找出你的服务器地址,这是因为 IPv6 地址空间太大了以至于不能扫描出来! 这显然不能是你仅有的安全策略,但是这是安全上的一个大大的福利。每次我运行 IPv4 服务器时,我都会惊讶于 IPv4 地址一直能够被扫描出来的脆弱性,就像是老版本的 WordPress 博客系统那样。 -### 一个很傻的理由:你可以在你的 IPv6 地址中放个小彩蛋 +#### 一个很傻的理由:你可以在你的 IPv6 地址中放个小彩蛋 IPv6 地址中有很多额外的位,你可以用它们做一些不重要的事情。例如,Facebook 的 IPv6 地址之一是“2a03:2880:f10e:83:face:b00c:0:25de”(其中包含 `face:b00c`)。 @@ -152,7 +149,7 @@ IPv6 地址中有很多额外的位,你可以用它们做一些不重要的事 在我理解这些原因后,相较于以前,我在我的(非常小的)服务器上支持 IPv6 更有动力了。但那是因为我觉得支持 IPv6,对我来说只需要很少的努力。(现在我使用的是支持 IPv6 的 CDN,所以我基本上不用做什么额外的事情) -我仍然对 IPv6 知之甚少,但是在我的印象中,支持 IPv6并不是不需要花费努力的,实际上可能需要大量工作。例如,我不知道 Twitter 在其边缘服务器上添加 IPv6 支持需要做多少繁杂的工作。 +我仍然对 IPv6 知之甚少,但是在我的印象中,支持 IPv6 并不是不需要花费精力的,实际上可能需要大量工作。例如,我不知道 Twitter 在其边缘服务器上添加 IPv6 支持需要做多少繁杂的工作。 ### 其它关于 IPv6 的问题 @@ -160,10 +157,9 @@ IPv6 地址中有很多额外的位,你可以用它们做一些不重要的事 * 支持 IPv6 的缺点是什么?什么会出错呢? * 对于拥有了足够 IPv4 地址的 ISP 来说,有什么让他们提供 IPv6 的激励措施?(另一种问法是:我的 ISP 是否有可能在未来几年内转为支持 IPv6?或者他们可能不会支持 IPv6?) - * [Digital Ocean][4] (译注:一家建立于美国的云基础架构提供商,面向软件开发人员提供虚拟专用服务器(VPS))只提供 IPv4 的浮动地址,不提供 IPv6 的浮动地址。为什么不提供呢?有更多 IPv6 地址,那提供 IPv6 的浮动地址不是变得更 _便捷_ 吗? + * [Digital Ocean][4] (LCTT 译注:一家建立于美国的云基础架构提供商,面向软件开发人员提供虚拟专用服务器(VPS))只提供 IPv4 的浮动地址,不提供 IPv6 的浮动地址。为什么不提供呢?有更多 IPv6 地址,那提供 IPv6 的浮动地址不是变得更 _便捷_ 吗? * 当我尝试 ping IPv6 地址时(例如 example.com 的 IP 地址`2606:2800:220:1:248:1893:25c8:1946`),我得到一个报错信息 `ping: connect: Network is unreachable`。这是为什么呢?(回答:因为我的 ISP 不支持 IPv6,所以我的电脑没有公共 IPv6 地址) - 这篇 [来自 Tailscale 的 IPv4 与 IPv6 文章][5] 非常有意思,并回答了上述的一些问题。 -------------------------------------------------------------------------------- @@ -173,7 +169,7 @@ via: https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/ 作者:[Julia Evans][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cd17b5ebbb7a128dbb64d17ea8f7407834aefdae Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 15 Oct 2022 21:35:07 +0800 Subject: [PATCH 1558/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...PyLint- The good, the bad, and the ugly.md | 185 ----------------- ...PyLint- The good, the bad, and the ugly.md | 186 ++++++++++++++++++ 2 files changed, 186 insertions(+), 185 deletions(-) delete mode 100644 sources/tech/20220919 PyLint- The good, the bad, and the ugly.md create mode 100644 translated/tech/20220919 PyLint- The good, the bad, and the ugly.md diff --git a/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md b/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md deleted file mode 100644 index da848fa47d..0000000000 --- a/sources/tech/20220919 PyLint- The good, the bad, and the ugly.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "PyLint: The good, the bad, and the ugly" -[#]: via: "https://opensource.com/article/22/9/pylint-good-bad-ugly" -[#]: author: "Moshe Zadka https://opensource.com/users/moshez" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -PyLint: The good, the bad, and the ugly -====== -Get the most out of PyLint. - -![Python programming language logo with question marks][1] - -Image by: Opensource.com - -Hot take: PyLint is actually good! - -"PyLint can save your life" is an exaggeration, but not as much as you might think! PyLint can keep you from really really hard to find and complicated bugs. At worst, it can save you the time of a test run. At best, it can help you avoid complicated production mistakes. - -### The good - -I'm embarrassed to say how common this can be. Naming tests is perpetually *weird*: Nothing cares about the name, and there's often not a natural name to be found. For instance, look at this code: - -``` -def test_add_small(): -    # Math, am I right? -    assert 1 + 1 == 3 -    -def test_add_large(): -    assert 5 + 6 == 11 -    -def test_add_small(): -    assert 1 + 10 == 11 -``` - -The test works: - -``` -collected 2 items                                                                         -test.py .. -2 passed -``` - -In reality, these files can be hundreds of lines long, and the person adding the new test might not be aware of all the names. Unless someone is looking at test output carefully, everything looks fine. - -Worst of all, the *addition of the overriding test*, the *breakage of the overridden test*, and the *problem that results in prod* might be separated by days, months, or even years. - -### PyLint finds it - -But like a good friend, PyLint is there for you. - -``` -test.py:8:0: E0102: function already defined line 1 -     (function-redefined) -``` - -### The bad - -Like a 90s sitcom, the more you get into PyLint, the more it becomes problematic. This is completely reasonable code for an inventory modeling program: - -``` -"""Inventory abstractions""" - -import attrs - -@attrs.define -class Laptop: -    """A laptop""" -    ident: str -    cpu: str -``` - -It seems that PyLint has opinions (probably formed in the 90s) and is not afraid to state them as facts: - -``` -$ pylint laptop.py | sed -n '/^laptop/s/[^ ]*: //p' -R0903: Too few public methods (0/2) (too-few-public-methods) -``` - -### The ugly - -Ever wanted to add your own unvetted opinion to a tool used by millions? PyLint has 12 million monthly downloads. - -> "People will just disable the whole check if it's too picky." —PyLint issue 6987, July 3rd, 2022 - -The attitude it takes towards adding a test with potentially many false positives is...*"eh."* - -### Making it work for you - -PyLint is fine, but you need to interact with it carefully. Here are the three things I recommend to make PyLint work for you. - -#### 1. Pin it - -Pin the PyLint version you use to avoid any surprises! - -In your `.toml` file: - -``` -[project.optional-dependencies] -pylint = ["pylint"] -``` - -In your code: - -``` -from unittest import mock -``` - -This corresponds with code like this: - -``` -# noxfile.py -... -@nox.session(python=VERSIONS[-1]) -def refresh_deps(session): -    """Refresh the requirements-*.txt files""" -    session.install("pip-tools") -    for deps in [..., "pylint"]: -        session.run( -            "pip-compile", -            "--extra", -            deps, -            "pyproject.toml", -            "--output-file", -            f"requirements-{deps}.txt", -        ) -``` - -#### 2. Default deny - -Disable all checks. Then enable ones that you think have a high value-to-false-positive ratio. (Not just false-negative-to-false-positive ratio!) - -``` -# noxfile.py -... -@nox.session(python="3.10") -def lint(session): -    files = ["src/", "noxfile.py"] -    session.install("-r", "requirements-pylint.txt") -    session.install("-e", ".") -    session.run( -        "pylint", -        "--disable=all", -        *(f"--enable={checker}" for checker in checkers) -        "src", -    ) -``` - -#### 3. Checkers - -These are some of the ones I like. Enforce consistency in the project, avoid some obvious mistakes. - -``` -checkers = [ -    "missing-class-docstring", -    "missing-function-docstring", -    "missing-module-docstring", -    "function-redefined", -] -``` - -### Using PyLint - -You can take just the good parts of PyLint. Run it in CI to keep consistency, and use the highest value checkers. - -Lose the bad parts: Default deny checkers. - -Avoid the ugly parts: Pin the version to avoid surprises. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/9/pylint-good-bad-ugly - -作者:[Moshe Zadka][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/moshez -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/python_programming_question.png diff --git a/translated/tech/20220919 PyLint- The good, the bad, and the ugly.md b/translated/tech/20220919 PyLint- The good, the bad, and the ugly.md new file mode 100644 index 0000000000..4e3dda9710 --- /dev/null +++ b/translated/tech/20220919 PyLint- The good, the bad, and the ugly.md @@ -0,0 +1,186 @@ +[#]: subject: "PyLint: The good, the bad, and the ugly" +[#]: via: "https://opensource.com/article/22/9/pylint-good-bad-ugly" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +PyLint: 优点,缺点和危险 +====== +充分利用 PyLint。 + +![带有问号的 Python 编程标志][1] + +图像来源: Opensource.com + +热议:PyLint 实际上很好! + +“PyLint 可以拯救你的生命”,这是一句夸张的描述,但没有你想象的那么多。PyLint 可以让你远离非常难找到和复杂的缺陷。最坏的情况下,它只可以节省测试运行的时间。最好情况下,它可以帮你避免生产环境中复杂的错误。 + +### 优点 + +我不好意思说这种情况是多么普遍。命名测试总是*奇怪的*:没有人关心名字,而且通常也找不到一个自然的名字。例如以下代码: + +```python +def test_add_small(): +    # Math, am I right? +    assert 1 + 1 == 3 +    +def test_add_large(): +    assert 5 + 6 == 11 +    +def test_add_small(): +    assert 1 + 10 == 11 +``` + +测试生效: + +``` +collected 2 items                                                                         +test.py .. +2 passed +``` + +但问题是:如果你覆盖了一个名称,测试框架将愉快地跳过这个测试! +实际上,这些文件可能有数百行,而添加新测试的人可能并不知道所有的名称。除非有人仔细查看测试输出,否则一切看起来都很好。 + +最糟糕的是,*覆盖测试的添加*,*覆盖测试的破坏*,以及*连锁反应问题*可能以会以天、月甚至年为单位发现。 + +### PyLint 会找到它 + +就像一个好朋友一样,PyLint 可以帮助你。 + +``` +test.py:8:0: E0102: function already defined line 1 +     (function-redefined) +``` + +### 缺点 + +就像 90 年代的情景喜剧一样,你对 PyLint 了解的越多,问题就越多。对一个库存建模程序来说,以下是完全合理的代码: + +```python +"""Inventory abstractions""" + +import attrs + +@attrs.define +class Laptop: +    """A laptop""" +    ident: str +    cpu: str +``` + +但 PyLint 似乎有自己的观点(可能形成于 90 年代),并且不怕把它们作为事实陈述出来: + +``` +$ pylint laptop.py | sed -n '/^laptop/s/[^ ]*: //p' +R0903: Too few public methods (0/2) (too-few-public-methods) +``` + +### 危险 + +有没有想过在一个数百万人使用的工具中加入自己未证实的观点?PyLint 每月有 1200 万次下载。 + +> "如果太挑剔,人们会取消检查" — 这是 PyLint github 的 6987 编号事务,在 2022 年七月 3 号提出 + +对于添加一个可能有许多误报的测试,它的态度是 ... *嗯*。 + +### 让它为你工作 + +PyLint 很好,但你需要小心地与它配合。为了让 PyLint 为你工作,以下是我推荐的三件事: + +#### 1. 固定它 + +固定你使用的 PyLint 版本,避免任何惊喜! + +在你的 `.toml` 文件中定义: + +``` +[project.optional-dependencies] +pylint = ["pylint"] +``` + +在代码中定义: + +``` +from unittest import mock +``` + +这与以下代码对应: + +```python +# noxfile.py +... +@nox.session(python=VERSIONS[-1]) +def refresh_deps(session): +    """Refresh the requirements-*.txt files""" +    session.install("pip-tools") +    for deps in [..., "pylint"]: +        session.run( +            "pip-compile", +            "--extra", +            deps, +            "pyproject.toml", +            "--output-file", +            f"requirements-{deps}.txt", +        ) +``` + +#### 2. 默认禁止 + +禁用所有检查,然后启用那些你认为误报比率高的。(不仅仅是漏报/误报的比率!)(to 校正:这里没理解) + +```python +# noxfile.py +... +@nox.session(python="3.10") +def lint(session): +    files = ["src/", "noxfile.py"] +    session.install("-r", "requirements-pylint.txt") +    session.install("-e", ".") +    session.run( +        "pylint", +        "--disable=all", +        *(f"--enable={checker}" for checker in checkers) +        "src", +    ) +``` + +#### 3. 检查器 + +以下是我喜欢的检查器。加强项目的一致性,避免一些明显的错误。 + +```python +checkers = [ +    "missing-class-docstring", +    "missing-function-docstring", +    "missing-module-docstring", +    "function-redefined", +] +``` + +### 使用 PyLint + +你可以只使用 PyLint 好的部分。在 CI 中运行它以保持一致性,并使用常用检查器。 + +放弃不好的部分:默认禁止检查器。 + +避免危险的部分:固定版本以避免意外。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/pylint-good-bad-ugly + +作者:[Moshe Zadka][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/moshez +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/python_programming_question.png From 7dd244ac71902b190cb021192f9e248d78863c16 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 15 Oct 2022 21:36:10 +0800 Subject: [PATCH 1559/3123] Translating (#27556) --- ... summer book recommendations from open source enthusiasts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md b/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md index 5d1352dadb..fc58c3ce11 100644 --- a/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md +++ b/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list" [#]: author: "Joshua Allen Holm https://opensource.com/users/holmja" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 791989d3a7a1a6553debebca82676dc51c18f608 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 15 Oct 2022 21:45:14 +0800 Subject: [PATCH 1560/3123] Translating --- ...ult Gateway IP Address In Linux And Unix From Commandline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md b/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md index 0392c0bde3..78d23d6bca 100644 --- a/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md +++ b/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/find-default-gateway-linux/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 40fd3791b2239b4aeefa6d717ea08d62b484dad7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 16 Oct 2022 09:39:29 +0800 Subject: [PATCH 1561/3123] RP @MjSeven https://linux.cn/article-15144-1.html --- ...PyLint- The good, the bad, and the ugly.md | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) rename {translated/tech => published}/20220919 PyLint- The good, the bad, and the ugly.md (74%) diff --git a/translated/tech/20220919 PyLint- The good, the bad, and the ugly.md b/published/20220919 PyLint- The good, the bad, and the ugly.md similarity index 74% rename from translated/tech/20220919 PyLint- The good, the bad, and the ugly.md rename to published/20220919 PyLint- The good, the bad, and the ugly.md index 4e3dda9710..ae50303ded 100644 --- a/translated/tech/20220919 PyLint- The good, the bad, and the ugly.md +++ b/published/20220919 PyLint- The good, the bad, and the ugly.md @@ -3,27 +3,26 @@ [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15144-1.html" -PyLint: 优点,缺点和危险 +PyLint 的优点、缺点和危险 ====== -充分利用 PyLint。 -![带有问号的 Python 编程标志][1] +![](https://img.linux.net.cn/data/attachment/album/202210/16/093840z9pnzfv9ykfccoq9.jpg) -图像来源: Opensource.com +> 充分利用 PyLint。 热议:PyLint 实际上很好! -“PyLint 可以拯救你的生命”,这是一句夸张的描述,但没有你想象的那么多。PyLint 可以让你远离非常难找到和复杂的缺陷。最坏的情况下,它只可以节省测试运行的时间。最好情况下,它可以帮你避免生产环境中复杂的错误。 +“PyLint 可以拯救你的生命”,这是一句夸张的描述,但没有你想象的那么夸张。PyLint 可以让你远离非常难找到的和复杂的缺陷。最差的情况下,它只可以节省测试运行的时间。最好的情况下,它可以帮你避免生产环境中复杂的错误。 ### 优点 -我不好意思说这种情况是多么普遍。命名测试总是*奇怪的*:没有人关心名字,而且通常也找不到一个自然的名字。例如以下代码: +我不好意思说这种情况是多么普遍。测试的命名总是*那么奇怪*:没有人关心这个名称,而且通常也找不到一个自然的名称。例如以下代码: -```python +``` def test_add_small():     # Math, am I right?     assert 1 + 1 == 3 @@ -43,10 +42,11 @@ test.py .. 2 passed ``` -但问题是:如果你覆盖了一个名称,测试框架将愉快地跳过这个测试! +但问题是:如果你覆盖了一个测试的名称,测试框架将愉快地跳过这个测试! + 实际上,这些文件可能有数百行,而添加新测试的人可能并不知道所有的名称。除非有人仔细查看测试输出,否则一切看起来都很好。 -最糟糕的是,*覆盖测试的添加*,*覆盖测试的破坏*,以及*连锁反应问题*可能以会以天、月甚至年为单位发现。 +最糟糕的是,*被覆盖测试的添加*、*被覆盖测试造成的破坏*,以及*连锁反应的问题*可能要几天、几月甚至几年才能发现。 ### PyLint 会找到它 @@ -59,9 +59,9 @@ test.py:8:0: E0102: function already defined line 1 ### 缺点 -就像 90 年代的情景喜剧一样,你对 PyLint 了解的越多,问题就越多。对一个库存建模程序来说,以下是完全合理的代码: +就像 90 年代的情景喜剧一样,你对 PyLint 了解的越多,问题就越多。以下是一个库存建模程序的常规代码: -```python +``` """Inventory abstractions""" import attrs @@ -84,15 +84,15 @@ R0903: Too few public methods (0/2) (too-few-public-methods) 有没有想过在一个数百万人使用的工具中加入自己未证实的观点?PyLint 每月有 1200 万次下载。 -> "如果太挑剔,人们会取消检查" — 这是 PyLint github 的 6987 编号事务,在 2022 年七月 3 号提出 +> “如果太挑剔,人们会取消检查” — 这是 PyLint GitHub 的 6987 号议题,于 2022 年 7 月 3 号提出 -对于添加一个可能有许多误报的测试,它的态度是 ... *嗯*。 +对于添加一个可能有许多误报的测试,它的态度是 ... “*嗯*”。 ### 让它为你工作 PyLint 很好,但你需要小心地与它配合。为了让 PyLint 为你工作,以下是我推荐的三件事: -#### 1. 固定它 +#### 1、固定版本 固定你使用的 PyLint 版本,避免任何惊喜! @@ -111,7 +111,7 @@ from unittest import mock 这与以下代码对应: -```python +``` # noxfile.py ... @nox.session(python=VERSIONS[-1]) @@ -129,11 +129,11 @@ def refresh_deps(session):         ) ``` -#### 2. 默认禁止 +#### 2、默认禁止 -禁用所有检查,然后启用那些你认为误报比率高的。(不仅仅是漏报/误报的比率!)(to 校正:这里没理解) +禁用所有检查,然后启用那些你认为误报比率高的。(不仅仅是漏报/误报的比率!) -```python +``` # noxfile.py ... @nox.session(python="3.10") @@ -149,11 +149,11 @@ def lint(session):     ) ``` -#### 3. 检查器 +#### 3、检查器 以下是我喜欢的检查器。加强项目的一致性,避免一些明显的错误。 -```python +``` checkers = [     "missing-class-docstring",     "missing-function-docstring", @@ -177,7 +177,7 @@ via: https://opensource.com/article/22/9/pylint-good-bad-ugly 作者:[Moshe Zadka][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 401876eb1aae5ba9f03cc23f848099b61bae499e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 16 Oct 2022 09:43:43 +0800 Subject: [PATCH 1562/3123] R --- published/20220919 PyLint- The good, the bad, and the ugly.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20220919 PyLint- The good, the bad, and the ugly.md b/published/20220919 PyLint- The good, the bad, and the ugly.md index ae50303ded..0320ece742 100644 --- a/published/20220919 PyLint- The good, the bad, and the ugly.md +++ b/published/20220919 PyLint- The good, the bad, and the ugly.md @@ -14,7 +14,7 @@ PyLint 的优点、缺点和危险 > 充分利用 PyLint。 -热议:PyLint 实际上很好! +敲黑板:PyLint 实际上很好! “PyLint 可以拯救你的生命”,这是一句夸张的描述,但没有你想象的那么夸张。PyLint 可以让你远离非常难找到的和复杂的缺陷。最差的情况下,它只可以节省测试运行的时间。最好的情况下,它可以帮你避免生产环境中复杂的错误。 From 38e19dadaaeb4a272912d438cd597c83e0c14f91 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:02:02 +0800 Subject: [PATCH 1563/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221012=20Kubuntu=2022.10=20Kinetic=20Kudu-=20Top?= =?UTF-8?q?=20New=20Features.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tu 22.10 Kinetic Kudu- Top New Features.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md diff --git a/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md b/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md new file mode 100644 index 0000000000..3396550fa8 --- /dev/null +++ b/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md @@ -0,0 +1,88 @@ +[#]: subject: "Kubuntu 22.10 Kinetic Kudu: Top New Features" +[#]: via: "https://www.debugpoint.com/kubuntu-22-10-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kubuntu 22.10 Kinetic Kudu: Top New Features +====== +A brief summary of Kubuntu 22.10 “Kinetic Kudu” and additional information about the release. + +![Kubuntu 22.10 Kinetic Kudu Desktop][1] + +### Kubuntu 22.10: Top New Features + +Among all the [great KDE Plasma-based distributions][2], Kubuntu is the best. Because it brings stability to both Plasma and at its core, that is Ubuntu. + +Kubuntu 22.10 is a short-term release based on Ubuntu 22.10 – supported for nine months from the release. Since short-term releases are to adopt the latest technologies, removing the obsolete ones, its features list is minimal. + +This release of Kubuntu features Linux Kernel 5.19, which brings run-time Average Power Limiting (RAPL) support for Intel’s Raptor and Alder Lake processor, multiple families of ARM updates in mainline kernel and usual processor/GPU and file-system updates. Learn more about Kernel 5.19 features in [this article][3]. + +Compared to the prior [Kubuntu release 22.04 LTS][4] (with Plasma 5.24), you get the latest KDE Plasma 5.25 (final point release) desktop with all the bug fixes and updates. + +Although, [KDE Plasma 5.26][5], which has just got released, could not make it to this version. But I believe it should come in as a point release, just not on the release day. + +Besides, Plasma 5.25 is not small in terms of features. It’s, in fact, packed with new cool advancements. If you are especially using Kubuntu’s earlier version, you should be aware of these new items. + +Firstly, Kubuntu 22.10 enables you to make your default panel “float”. We call it the Floating Panel. So, no more using the add-ons for this. + +Secondly, the accent colour of your desktop can change based on the wallpaper’s tone. Now you can see your Kubuntu desktop changes dynamically when you enable it from Settings > Global Theme > Colours. + +![KDE Plasma - Dynamic Accent Colour and Floating Panel Demo][6] + +In addition, switching between dark and light modes becomes more smooth thanks to the change. Also, in Kubuntu 22.10 with Wayland, you can now see and apply the display-specific resolutions in the settings dropdown. + +On the other hand, Discover is more friendly to Flatpak, with additional app details and an additional options button to notify you that there is still data for uninstalled apps. + +![The app page gives more clarity in Plasma 5.25][7] + +Furthermore, the Krunner launcher in Kubuntu now detects the search language and display results accordingly. Also, the network manager applet now shows the Wi-Fi frequency alongside the access point name (this is help full for cases where you have the same access point name for 4G and 5G bands). + +All of these changes are powered by Qt 5.15.6 and Framework 5.98. If you want to learn more about Plasma 5.25, refer to the dedicated feature guide [here][8]. + +### Other features of Kubuntu 22.10 + +The core applications and packages bump up to their respective versions based on Ubuntu 22.10, and here’s a summary. + +* Linux Kernel 5.19 +* KDE Plasma 5.25.5 (hopefully will get 5.26 soon) +* KDE Framework 5.98 +* Qt 5.15.6 +* Firefox 105.0.1 +* Thunderbird 102.3.2 +* LibreOffice 7.4.2.3 +* VLC Media Player 3.0.17 +* Pipewire replacing PulseAudio + +Finally, you can download the Kubuntu 22.10 BETA from the below links. + +[https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/][9] + +While the developers are preparing for the final release (due on Oct 20, 2022), you can try it on a [virtual machine][10], Or a physical system. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kubuntu-22-10-features/ + +作者:[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/10/Kubuntu-22.10-Kinetic-Kudu-Desktop.jpg +[2]: https://www.debugpoint.com/top-linux-distributions-kde-plasma/ +[3]: https://www.debugpoint.com/linux-kernel-5-19/ +[4]: https://www.debugpoint.com/kubuntu-22-04-lts/ +[5]: https://www.debugpoint.com/kde-plasma-5-26/ +[6]: https://youtu.be/npfHwMLXXHs +[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/App-page-gives-more-clarity-in-Plasma-5.25.jpg +[8]: https://www.debugpoint.com/kde-plasma-5-25/ +[9]: https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/ +[10]: https://www.debugpoint.com/tag/virtual-machine From 50729c680d436202659d9a66edfa2652e0ee4223 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:02:48 +0800 Subject: [PATCH 1564/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221013=20Enjoy=20the=20Classic=20Snake=20Game=20in?= =?UTF-8?q?=20Your=20Linux=20Terminal.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...assic Snake Game in Your Linux Terminal.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md diff --git a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md new file mode 100644 index 0000000000..e1c795958a --- /dev/null +++ b/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md @@ -0,0 +1,100 @@ +[#]: subject: "Enjoy the Classic Snake Game in Your Linux Terminal" +[#]: via: "https://www.debugpoint.com/snake-game-linux-terminal/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Enjoy the Classic Snake Game in Your Linux Terminal +====== +This is how you can install and play the classic Snake Game in Linux Terminal. + +Remember the classic and simple snake game of old mobile phones? I remember playing it for hours. Hey, no other options at the time, right? Smartphones were still not in the market. And all you have is this – + +![Nokia 3310 with legacy snake game][1] + +But over time, the Snake Game was replaced by more advanced graphical games with various options. But nothing beats that classic snake game. + +And what if I told you, you could play this game in the Linux Terminal itself? Whether you are running Ubuntu Linux, Fedora Linux or Arch Linux doesn’t matter. This game is available for most of the [distros][2]. + +![nsnake Game - Main Menu][3] + +### Install nSnake – Snake Game for Linux Terminal + +You can install [this game][4] via the terminal using the below methods. + +For Ubuntu, Linux Mint or other related distributions: + +``` +sudo apt install nsnake +``` + +For Fedora Linux and others: + +``` +sudo dnf install nsnake +``` + +For Arch Linux, this snake game is available in the [Arch User repository][5]. You can install it using the following steps. + +* [Set up Yay AUR helper][6] +* Then open a terminal and run the below command + +``` +yay -S nsnake +``` + +The above command installs the stock repository version of the game, which might not be the latest. However, if you want the latest version, you may need to compile the source via GitHub. I have added the compilation instructions at the end of this page for your reference. + +### Playing the game + +Playing the game is very simple. Type nsnake in the terminal, which will launch the game. + +To quit immediately, press q. + +Following are the default key bindings. + +* Arrow keys – to move the snake +* q – Quit the game +* p – Pause the game + +You can also configure the game in various ways, which are available via the main menu. + +![nsnake Linux Terminal Snake Game Settings][7] + +So, enjoy! + +##### Compilation + +To compile the latest version, use the following commands in all Linux distributions. + +Oh, make sure you have `git` and `ncurses-devel` installed, which are the required packages for compilation. + +``` +git clone https://github.com/alexdantas/nSnake.gitcd nsnakemakemake install +``` + +So, do you like Snake Game? Do you prefer it over other terminal-based games? Share your views with other readers in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/snake-game-linux-terminal/ + +作者:[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/2021/12/Nokia-3310-with-legacy-snake-game.jpg +[2]: https://www.debugpoint.com/category/distributions +[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Game-Main-Menu.jpg +[4]: https://github.com/alexdantas/nsnake +[5]: https://aur.archlinux.org/packages/nsnake/ +[6]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Linux-Terminal-Snake-Game-Settings.jpg From 50c6bbf0d1f2700ee6cf8b933ba9efa86149a65f Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:04:31 +0800 Subject: [PATCH 1565/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221013=20Ubuntu=20Budgie=2022.10=20Kinetic=20Kudu-?= =?UTF-8?q?=20Top=20New=20Features.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ie 22.10 Kinetic Kudu- Top New Features.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md diff --git a/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md b/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md new file mode 100644 index 0000000000..0bee836b7f --- /dev/null +++ b/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md @@ -0,0 +1,93 @@ +[#]: subject: "Ubuntu Budgie 22.10 Kinetic Kudu: Top New Features" +[#]: via: "https://www.debugpoint.com/ubuntu-budgie-22-10-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu Budgie 22.10 Kinetic Kudu: Top New Features +====== +Here’s a brief overview of the Ubuntu Budgie 22.10 (upcoming) and its features. + +![Ubuntu Budgie 22.10 KInetic Kudu Desktop][1] + +### Ubuntu Budgie 22.10: Top New Features + +The Budgie desktop has a different fan base because of its fusion of simplicity, feature and performance. Ubuntu Budgie 22.10 is an official Budgie flavour of Ubuntu, where you get the latest Ubuntu base with a stable Budgie desktop. + +Ubuntu Budgie 22.10 is a short-term release, supported for nine months until July 2023. + +This release of Ubuntu Budgie features Linux Kernel 5.19, which brings run-time Average Power Limiting (RAPL) support for Intel’s Raptor and Alder Lake processor, multiple families of ARM updates in mainline kernel and usual processor/GPU and file-system updates. Learn more about Kernel 5.19 features in [this article][2]. + +At the heart of this version, Ubuntu Budgie is powered by Budgie Desktop version 10.6.4, which brings updated applications and additional core tweaks. If you are using the prior Ubuntu budgie version, i.e. 22.04 or 21.10, you will notice some changes. And you should be aware of those. + +First of all, the Budgie Control Center gets modern protocols for screensharing (both RDP and VNC), enhanced fractional scaling and colour profile support for your monitor. In addition, the Control centre now shows the monitor refresh rate and additional support added for Wacom tablets. + +Secondly, Budgie desktop settings get a global option to control applets spacing and additional refinements. + +After removing the calendar launcher, the clock at the top bar now only gives the launcher for date/time settings. You can access the Calendar from the applets at the extreme right of the top bar. + +Ubuntu Budgie 22.10 fundamentally changed its application stack, which ships by default. Earlier (22.04 and prior), Budgie featured the GNOME applications as default for several desktop functions. Since GNOME is already moved to libadwaita/GTK4 with its own styling and theming, those apps wouldn’t look consistent in Budgie’s styling. + +That is correct. Because these rounded corners with budgie/mate apps really look off. + +![Budgie desktop with GTK4-libadwaita and MATE apps][3] + +So, from this release onwards, the default app sets are slowly moving away from GNOME Apps to native or MATE apps/alternatives. + +For Example, GNOME Calculator and System Monitor are now replaced by Mate Calculator and Mate system monitor. Atril document viewer replaces Evince reader. In addition, font-manager replaces GNOME Font Viewer, and a list of other GNOME apps are in “wait and watch” mode. They may get replaced in upcoming Budgie desktop point releases. + +However, the text editor is still Gedit in this version, which is already a [great choice][4]. And a new native screenshot application debuts with a tweak tool for Raspberry Pi devices. + +If you want to learn more about this transition, read the discussion [here][5]. + +So, that’s about the core changes in this release and here’s a quick summary of Ubuntu Budgie alongside other applications. + +### Summary of the core items of Ubuntu Budgie 22.10 + +#### Core and major items + +* [Ubuntu 22.10][6] +* Linux Kernel 5.19 +* Budgie desktop version 10.6.4 +* Firefox 105.0.1 (Snap version) +* Thunderbird 102.3.2 +* LibreOffice 7.4.2.3 + +#### Other changes + +* Pipewire replacing PulseAudio. The PulseAudio package is removed from ISO. +* WebP support by default +* New Tweak Tool for ARM devices (Raspberry Pi) +* Tilix Terminal 1.9.5 +* Transmission torrent client 3.0.0 +* GNOME Software 43.0 + +Finally, you can download Ubuntu Budgie 22.10 Beta from the below link. Also you can try out the Raspberry Pi beta image as well. + +* [Link to the beta build][7] +* [Link to Raspberry Pi build][8] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/ubuntu-budgie-22-10-features/ + +作者:[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/10/Ubuntu-Budgie-22.10-KInetic-Kudu-Desktop-1024x578.jpg +[2]: https://www.debugpoint.com/linux-kernel-5-19/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Budgie-desktop-with-GTK4-libadwaita-and-MATE-apps.jpg +[4]: https://www.debugpoint.com/gedit-features/ +[5]: https://discourse.ubuntubudgie.org/t/default-applications-review-for-22-10-23-04-and-beyond/5883 +[6]: https://www.debugpoint.com/ubuntu-22-10/ +[7]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/kinetic/beta/ +[8]: https://sourceforge.net/projects/budgie-remix/files/budgie-raspi-22.10/ From a2587196c9cc11d2472922f23d44649f15c853dd Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:05:50 +0800 Subject: [PATCH 1566/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221013=20Learn=20Bash=20base64=20Encode=20and=20De?= =?UTF-8?q?code=20With=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... base64 Encode and Decode With Examples.md | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md diff --git a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md new file mode 100644 index 0000000000..33bc9e4a3b --- /dev/null +++ b/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md @@ -0,0 +1,158 @@ +[#]: subject: "Learn Bash base64 Encode and Decode With Examples" +[#]: via: "https://www.debugpoint.com/bash-base64-encode-decode/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Bash base64 Encode and Decode With Examples +====== +Want to learn about the base64 encode and decode method? Here in this tutorial, we explain the base64 encode and decode steps using bash shell scripting with various examples. + +![][1] + +The base64 encoding method transmits data over any communication medium by converting binary data to text. This method is primarily used for the email encryption process. + +The Base64 method, in general, is a binary-to-text encoding scheme representing 8-byte binary data in ASCII string format. This has several advantages while transmitting or channelling data among various mediums – especially those that reliably support text content. Hence, it is widely used on World Wide Web. Probably the most used case of this encoding scheme is using it for email attachments. + +As per the Base64 representation table, the binary data can be converted to 64 different ASCII characters – which are easy to transmit and printable. This encoding method uses letters A to Z, a to Z, 0 to 9 and + and /. + +A total of 64 ASCII characters to represent binary from `000000` to `111111`. Each non-final Base64 digit represents exactly 6 bits of data. + +![Base64 Index Table][2] + +### Bash base64 encode and decode + +#### Syntax + +Before you learn about the examples, here is the basic syntax. + +``` +base64 [OPTIONs] [INFILE] [OUTFILE] +``` + +Option: You can provide any of the options or combine them as explained below.INFILE: Input can be picked up from standard input (like the command line) or files.OUTFILE: You can redirect the output to the standard output, like the terminal or to a file. + +| Arguments | Descriptions | +| :- | :- | +| -e or –encode | This option is used to encode any data from standard input or any file. It is the default option. | +| -d or –decode | This option is used to decode any encoded data from standard input or any file. | +| -n or –noerrcheck | By default, base64 checks error while decoding any data. You can use –n or –noerrcheck option to ignore checking at the time of decoding. | +| -i, –ignore-garbage | This option is used to ignore non-alphabet characters while decoding. | +| -u or –help | This option is used to get information about the usage of this command. | + +#### Example 1 – A basic encode + +In Linux, the base64 package is installed by default. Hence, you can use it from the command line easily. To simply encode a string or text, you can pass it through the command line via piping and get the encoded text. In this example, the string debugpoint.com is encoded to base64. + +``` +echo "debugpoint.com" | base64 +``` + +![bash base64 encode and decode - example 1][3] + +The result is the base64 encoded string. + +#### Explanation + +The encoding method uses several steps to convert the input. The input characters are converted to 8-bit binary values. The entire set of the binary string is split into 6-bit binary values, which are converted to decimals. + +Each decimal value is translated to the base64 character via the base64 index table. + +In the above example, the first character, “d”, is converted to binary `01100100`. The first 6 bits are `011001`, which is 25 in decimal. The 25 refers to the Z in the base64 index table. And this goes on for the entire stream of text. See the example below. + +![Base64 Encode and Decode – inner working][4] + +#### Example 2 – A basic decode + +To decode the string, simply pass the encoded value to the base64 with the option `--decode`. And it will give you the exact input string. + +![bash base64 encode and decode - example 2 (decode the same example)][5] + +#### Example 3 – Encode a Text file + +The same command can be used to encode a text file and redirect the output to another text file. Here’s how. + +``` +base64 example3.txt > example3-encoded.txt +``` + +![Encode a text file][6] + +#### Example 4 – Decode a Text File + +And to decode a text file that was encoded using base64, simply use the `--decode` or `-d` switch and pass on the text file name. + +``` +base64 -d example3-encoded.txt +``` + +#### Example 5 – Encode a custom input from the user + +Using bash shell programming, you can take input from the user via the terminal and encode it. But for that, you need to write a simple shell script and execute it after giving executable permission. + +Here’s a simple example which takes input from the user and displays the encoded string. + +``` +#!/bin/bash +#Sample program to take input, encode to base64 and display on terminal +#Example by www.debugpoint.com +echo "Enter text for encoding to base64:" +read input_text +output_text=`echo -n $input_text | base64` +echo "The Base64 Encoded text is: $output_text" +``` + +![Custom input - base64 encode and decode using script][7] + +#### Example 6 – A Simple Authentication using base64 + +You can implement a simple authentication system using the above encode and decode method. You can ask the user to enter a password or a secret code. Then store the secret code in a file or compare it on the fly. + +If the stored encoded string matches with the user input encoded text, then the user is authenticated. However, it is a straightforward way of checking an authentication, but sometimes useful for simple business cases. + +``` +#!/bin/bash +#Sample program to take input, encode to base64 and display on terminal +#Example by www.debugpoint.com +echo "Type your password" +read pwd1 +decoded_text=`echo 'U2lsZW5jZSBpcyBnb2xkZW4h' | base64 --decode` +if [[ $pwd1 == $decoded_text ]] +then + echo "You are a valid user." +else + echo "You are NOT a valid user." +fi +``` + +![A Simple Authentication using bash base64][8] + +### Conclusion + +I hope you get to learn the basics of [Base64][9] encode and decode with these examples. Also, learn a bit about its inner workings. Let me know in the comment box below if this helps you or need additional tutorials on this topic. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/bash-base64-encode-decode/ + +作者:[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/2021/11/base64example-1024x576.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Index-Table.png +[3]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-1.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Encode-and-Decode-inner-working.png +[5]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-2-decode-the-same-example.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Encode-a-text-file.png +[7]: https://www.debugpoint.com/wp-content/uploads/2021/11/Custom-input-base64-encode-and-decode-using-script.png +[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/A-Simple-Authentication-using-bash-base64.png +[9]: https://linux.die.net/man/1/base64 From 1a2c96211fad11a404df7b0e8e8ba519bad4a19c Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:07:07 +0800 Subject: [PATCH 1567/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221015=20How=20to=20Enable=20and=20Access=20USB=20?= =?UTF-8?q?Drive=20in=20VirtualBox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...able and Access USB Drive in VirtualBox.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md diff --git a/sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md new file mode 100644 index 0000000000..f28ee2e5bd --- /dev/null +++ b/sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md @@ -0,0 +1,108 @@ +[#]: subject: "How to Enable and Access USB Drive in VirtualBox" +[#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Enable and Access USB Drive in VirtualBox +====== +Here’s a precise guide on how you can enable USB in Oracle VirtualBox. + +![][1] + +When you work in a Virtual machine environment, the USB is usually plugged into the host system. But it is a little difficult to access that USB content from the guest system. + +In VirtualBox, you need to install some extensions and enable some settings to access USB in. Here’s how. + +This article assumes that you have already installed VirtualBox and also installed some Linux distribution or operating system inside it. + +If not, check out the [articles here][2]. + +### Enable USB in VirtualBox 7.0 + +#### Install VirtualBox Extension Pack + +* Open the VirtualBox download page and download the VirtualBox Extension pack for all supported platforms using [this link][3]. + +![Download the extension pack][4] + +* Then Click on `File > Tools > Extension Pack Manager.` + +* Click on the `Install` button in the toolbar and select the downloaded .vbox-extpak file. + +* Hit `Install`. Accept the terms, and give the admin password for the installation. + +![install extension pack manager][5] + +![install extension pack manager after accepting terms][6] + +* After successful installation, you can see it in the installed list. + +* Restart your host system. Restarting is mandatory. + +#### Enable USB in the guest box + +* Plugin the USB stick into your host system – which you want to access from the guest virtual machine. + +* Start VirtualBox and right-click on the VM name where you want to enable USB. Select Settings. + +![Launch settings for the virtual machine][7] + +* On the left pane, click on USB. Then select the controller version. For example, you can select USB 3.0. Then click on the small plus icon to add a USB filter. + +* In this list, you should see your USB stick name (which you plugged in). For this example, I can see my Transcend Jetflash drive, which I plugged in. + +* Select it and press OK. + +![Select the USB stick][8] + +* Now, start your virtual machine. Open the file manager, and you should see the USB is enabled and mounted on your virtual machine. + +* In this demonstration, you can see the Thunar file manager of my [Arch-Xfce][9] virtual machine is showing the contents of my USB stick. + +![Enabling USB and accessing contents from VirtualBox][10] + +### Usage notes + +Now, here are a couple of things you should remember. + +* When you plug in the USB in the host system, keep it mounted. But do not open or access any file before launching the virtual machine. + +* Once you start your virtual machine, the USB will be unmounted in the host system and auto-mounted in the guest system, i.e. your virtual machine. + +* After you finish with a USB stick, ensure to eject or unmount it inside a virtual machine. Then it will be accessible again inside your host system. + +### Wrapping Up + +VirtualBox is a powerful utility and provides easy-to-use features to extensively set up your Virtual Machines. The steps are straightforward, and make sure your USB stick is detected properly in the host system to work. + +Also, remember that USB stick detection via extension pack is not related to VirtualBox guest addition. They are completely unrelated and provide separate functions. + +Finally, let me know if this guide helps you in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/enable-usb-virtualbox/ + +作者:[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/10/usb-vbox-1024x576.jpg +[2]: https://www.debugpoint.com/tag/virtualbox +[3]: https://www.virtualbox.org/wiki/Downloads +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Download-the-extension-pack.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager-after-accepting-terms.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Launch-settings-for-the-virtual-machine.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg +[9]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/ +[10]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg From 3d7840740315d4c8c7f56474a2a930cf999872da Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:08:09 +0800 Subject: [PATCH 1568/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221013=20How=20To=20Monitor=20User=20Activity=20In?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3 How To Monitor User Activity In Linux.md | 479 ++++++++++++++++++ 1 file changed, 479 insertions(+) create mode 100644 sources/tech/20221013 How To Monitor User Activity In Linux.md diff --git a/sources/tech/20221013 How To Monitor User Activity In Linux.md b/sources/tech/20221013 How To Monitor User Activity In Linux.md new file mode 100644 index 0000000000..a8b1d136d3 --- /dev/null +++ b/sources/tech/20221013 How To Monitor User Activity In Linux.md @@ -0,0 +1,479 @@ +[#]: subject: "How To Monitor User Activity In Linux" +[#]: via: "https://ostechnix.com/monitor-user-activity-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Monitor User Activity In Linux +====== +As a Linux administrator, you need to keep track of all users' activities. When something goes wrong in the server, you can analyze and investigate the users' activities, and try to find the root cause of the problem. There are many ways to **monitor users in Linux**. In this guide, we are going to talk about **GNU accounting utilities** that can be used to **monitor the user activity in Linux**. + +### What are Accounting utilities? + +The Accounting utilities provides the useful information about system usage, such as connections, programs executed, and utilization of system resources in Linux. These accounting utilities can be installed using **psacct** or **acct** package. + +The psacct or acct are same. In RPM-based systems, it is available as psacct, and in DEB-based systems, it is available as acct. + +What is the use of psacct or acct utilities? You might wonder. Generally, the user's command line history details will be stored in **.bash_history** file in their $HOME directory. Some users might try to edit, modify or delete the history. + +However, the accounting utilities will still be able to retrieve the users activities even though they [cleared their command line history][1] completely. Because, **all process accounting files are owned by root** user, and the normal users can't edit them. + +### Install psacct or acct in Linux + +The psacct/acct utilities are packaged for popular Linux distributions. + +To install psacct in Alpine Linux, run: + +``` +$ sudo apk add psacct +``` + +To install acct in Arch Linux and its variants like EndeavourOS and Manjaro Linux, run: + +``` +$ sudo pacman -S acct +``` + +On Fedora, RHEL, and its clones like CentOS, AlmaLinux and Rocky Linux, run the following command to install psacct: + +``` +$ sudo dnf install psacct +``` + +In RHEL 6 and older versions, you should use `yum` instead of `dnf` to install psacct. + +``` +$ sudo yum install psacct +``` + +On Debian, Ubuntu, Linux Mint, install acct using command: + +``` +$ sudo apt install acct +``` + +To install acct on openSUSE, run: + +``` +$ sudo zypper install acct +``` + +### Start psacct/acct service + +To enable and start the psacct service, run: + +``` +$ sudo systemctl enable psacct +``` + +``` +$ sudo systemctl start psacct +``` + +To check if psacct service is loaded and active, run: + +``` +$ sudo systemctl status psacct +``` + +On DEB-based systems, the acct service will be automatically started after installing it. + +You can verify whether acct service is started or not using command: + +``` +$ sudo systemctl status acct +``` + +**Sample output:** + +``` +● acct.service - Kernel process accounting + Loaded: loaded (/lib/systemd/system/acct.service; enabled; vendor preset: enabled) + Active: active (exited) since Thu 2022-10-13 16:06:35 IST; 28s ago + Docs: man:accton(8) + Process: 3241 ExecStart=/usr/sbin/accton /var/log/account/pacct (code=exited, status=0/SUCCESS) + Main PID: 3241 (code=exited, status=0/SUCCESS) + CPU: 879us + +Oct 13 16:06:35 ubuntu2204 systemd[1]: Starting Kernel process accounting... +Oct 13 16:06:35 ubuntu2204 accton[3241]: Turning on process accounting, file set to '/var/log/account/pacct'. +Oct 13 16:06:35 ubuntu2204 systemd[1]: Finished Kernel process accounting. +``` + +> **Download** - [Free eBook: "Nagios Monitoring Handbook"][2] + +### Monitor User Activity in Linux using psacct or acct + +The psacct (Process accounting) package contains following useful utilities to monitor the user and process activities. + +* ac - Displays statistics about how long users have been logged on. +* lastcomm - Displays information about previously executed commands. +* accton - Turns process accounting on or off. +* dump-acct - Transforms the output file from the accton format to a human-readable format. +* dump-utmp - Prints utmp files in human-readable format. +* sa - Summarizes information about previously executed commands. + +Let us learn how to monitor the activities of Linux users by using each utility with examples. + +#### 1. The ac command examples + +The **ac** utility will display the report of connect time in hours. It can tell you how long a user or group of users were connected to the system. + +##### 1.1. Display total connect time of all users + +``` +$ ac +``` + +This command displays the total connect time of all users in hours. + +``` +total 52.91 +``` + +![Display total connect time of all users][3] + +##### 1.2. Show total connect of all users by day-wise + +You can sort this result by day-wise by using **-d** flag as shown below. + +``` +$ ac -d +``` + +**Sample output:** + +``` +May 11 total 4.29 +May 13 total 3.23 +May 14 total 7.66 +May 15 total 8.97 +May 16 total 0.52 +May 20 total 4.09 +May 24 total 1.32 +Jun 9 total 15.18 +Jun 10 total 2.97 +Jun 22 total 2.61 +Jul 19 total 1.95 +Today total 0.29 +``` + +![Show total connect of all users by day-wise][4] + +##### 1.3. Get total connect time by user-wise + +Also, you can display how long each user was connected with the system with **-p** flag. + +``` +$ ac -p +``` + +**Sample output:** + +``` +ostechnix 52.85 +root 0.51 +total 53.36 +``` + +![Get total connect time by user-wise][5] + +##### 1.4. Print total connect time of a specific user + +And also, you can display the individual user's total login time as well. + +``` +$ ac ostechnix +``` + +**Sample output:** + +``` +total 52.95 +``` + +##### 1.5. View total connect time of a certain user by day-wise + +To display individual user's login time by day-wise, run: + +``` +$ ac -d ostechnix +``` + +**Sample output:** + +``` +May 11 total 4.29 +May 13 total 3.23 +May 14 total 7.66 +May 15 total 8.97 +May 16 total 0.01 +May 20 total 4.09 +May 24 total 1.32 +Jun 9 total 15.18 +Jun 10 total 2.97 +Jun 22 total 2.61 +Jul 19 total 1.95 +Today total 0.68 +``` + +![View total connect time of a certain user by day-wise][6] + +For more details, refer the man pages. + +``` +$ man ac +``` + +#### 2. The lastcomm command examples + +The **lastcomm** utility displays the list of previously executed commands. The most recent executed commands will be listed first. + +##### 2.1. Display previously executed commands + +``` +$ lastcomm +``` + +**Sample output:** + +``` +systemd-hostnam S root __ 0.06 secs Thu Oct 13 17:21 +systemd-localed S root __ 0.06 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +awk ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +uname ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +sed ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +grep ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +grep ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +bash F ostechni pts/1 0.00 secs Thu Oct 13 17:22 +[...] +``` + +##### 2.2. Print last executed commands of a specific user + +The above command displays all user's commands. You can display the previously executed commands by a particular user using command: + +``` +$ lastcomm ostechnix +``` + +**Sample output:** + +``` +less ostechni pts/1 0.00 secs Thu Oct 13 17:26 +lastcomm ostechni pts/1 0.00 secs Thu Oct 13 17:26 +lastcomm ostechni pts/1 0.00 secs Thu Oct 13 17:26 +lastcomm ostechni pts/1 0.00 secs Thu Oct 13 17:26 +gdbus X ostechni __ 0.00 secs Thu Oct 13 17:24 +lastcomm ostechni pts/1 0.00 secs Thu Oct 13 17:24 +ac ostechni pts/1 0.00 secs Thu Oct 13 17:24 +update-notifier F ostechni __ 0.00 secs Thu Oct 13 17:23 +apport-checkrep ostechni __ 0.06 secs Thu Oct 13 17:23 +apport-checkrep ostechni __ 0.05 secs Thu Oct 13 17:23 +systemctl ostechni __ 0.00 secs Thu Oct 13 17:23 +apt-check ostechni __ 0.81 secs Thu Oct 13 17:23 +dpkg ostechni __ 0.00 secs Thu Oct 13 17:23 +ischroot ostechni __ 0.00 secs Thu Oct 13 17:23 +dpkg ostechni __ 0.00 secs Thu Oct 13 17:23 +[...] +``` + +##### 2.3. Print total number of command execution + +Also, you can view how many times a particular command has been executed. + +``` +$ lastcomm apt +``` + +**Sample output:** + +``` +apt S root pts/2 0.70 secs Thu Oct 13 16:06 +apt F root pts/2 0.00 secs Thu Oct 13 16:06 +apt F root pts/2 0.00 secs Thu Oct 13 16:06 +``` + +As you see in the above output, the `apt` command has been executed three times by `root` user. + +For more details, refer the man pages. + +``` +$ man lastcomm +``` + +#### 3. The sa command examples + +The sa utility will summarize the information about previously executed commands. + +##### 3.1. Print summary of all commands + +``` +$ sa +``` + +**Sample output:** + +``` +1522 1598.63re 0.23cp 0avio 32712k + 139 570.90re 0.05cp 0avio 36877k ***other* + 38 163.63re 0.05cp 0avio 111445k gdbus + 3 0.05re 0.04cp 0avio 12015k apt-check + 27 264.27re 0.02cp 0avio 0k kworker/dying* + 2 51.87re 0.01cp 0avio 5310464k Docker Desktop + 5 0.03re 0.01cp 0avio 785k snap-confine + 8 59.48re 0.01cp 0avio 85838k gmain + 5 103.94re 0.01cp 0avio 112720k dconf worker + 24 3.38re 0.00cp 0avio 2937k systemd-udevd* + 7 0.01re 0.00cp 0avio 36208k 5 + 3 1.51re 0.00cp 0avio 3672k systemd-timedat + 2 0.00re 0.00cp 0avio 10236k apport-checkrep + 2 0.01re 0.00cp 0avio 4316160k ThreadPoolForeg* + 2 0.00re 0.00cp 0avio 8550k package-data-do + 3 0.79re 0.00cp 0avio 2156k dbus-daemon + 12 0.00re 0.00cp 0avio 39631k ffmpeg +[...] +``` + +##### 3.2. View number of processes and CPU minutes + +To print the number of processes and number of CPU minutes on a per-user basis, run `sa` command with `-m` flag: + +``` +$ sa -m +``` + +**Sample output:** + +``` +1525 1598.63re 0.23cp 0avio 32651k +root 561 647.23re 0.09cp 0avio 3847k +ostechnix 825 780.79re 0.08cp 0avio 47788k +gdm 117 13.43re 0.06cp 0avio 63715k +colord 2 52.01re 0.00cp 0avio 89720k +geoclue 1 1.01re 0.00cp 0avio 70608k +jellyfin 12 0.00re 0.00cp 0avio 39631k +man 1 0.00re 0.00cp 0avio 3124k +kernoops 4 104.12re 0.00cp 0avio 3270k +sshd 1 0.05re 0.00cp 0avio 3856k +whoopsie 1 0.00re 0.00cp 0avio 8552k +``` + +##### 3.3. Print user id and command name + +For each command in the accounting file, print the userid and command name using `-u` flag. + +``` +$ sa -u +``` + +**Sample output:** + +``` +root 0.00 cpu 693k mem 0 io accton +root 0.00 cpu 3668k mem 0 io systemd-tty-ask +root 0.00 cpu 3260k mem 0 io systemctl +root 0.01 cpu 3764k mem 0 io deb-systemd-inv +root 0.00 cpu 722k mem 0 io acct.postinst +root 0.00 cpu 704k mem 0 io rm +root 0.00 cpu 939k mem 0 io cp +root 0.00 cpu 704k mem 0 io rm +root 0.00 cpu 951k mem 0 io find +root 0.00 cpu 911k mem 0 io gzip +root 0.00 cpu 722k mem 0 io sh +root 0.00 cpu 748k mem 0 io install-info +root 0.00 cpu 911k mem 0 io gzip +[...] +``` + +For more details, refer the man pages. + +``` +$ man sa +``` + +#### 4. The dump-acct and dump-utmp command examples + +The **dump-acct** utility displays the output file from the accton format to a human-readable format. + +``` +$ dump-acct /var/account/pacct +``` + +dump-utmp displays utmp files in human-readable format. + +``` +$ dump-utmp /var/run/utmp +``` + +For more details, refer the man pages. + +``` +$ man dump-acct +``` + +``` +$ man dump-utmp +``` + +#### 5. The accton command examples + +The accton command will allow you to turn on or turn off accounting. + +To turn on process accounting, run: + +``` +$ accton on +``` + +To turn it off, run: + +``` +$ accton off +``` + +For more details, refer the man pages. + +``` +$ man accton +``` + +### Conclusion + +Every Linux administrator should be aware of GNU accounting utilities to keep an eye on all users. These utilities will be quite helpful in troubleshooting time. + +**Resource:** + +* [The GNU Accounting Utilities website][7] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/monitor-user-activity-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-clear-command-line-history-in-linux/ +[2]: https://ostechnix.tradepub.com/free/w_syst04/prgm.cgi +[3]: https://ostechnix.com/wp-content/uploads/2022/10/Display-total-connect-time-of-all-users.png +[4]: https://ostechnix.com/wp-content/uploads/2022/10/Show-total-connect-of-all-users-by-day-wise.png +[5]: https://ostechnix.com/wp-content/uploads/2022/10/Get-total-connect-time-by-user-wise.png +[6]: https://ostechnix.com/wp-content/uploads/2022/10/View-total-connect-time-of-a-certain-user-by-day-wise.png +[7]: https://www.gnu.org/software/acct/manual/accounting.html From f6e9eb8d4a2ade2c037f1f4bc8b9b9c4173e45e7 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:08:55 +0800 Subject: [PATCH 1569/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221014=20How=20To=20Restrict=20Access=20To=20Linux?= =?UTF-8?q?=20Servers=20Using=20TCP=20Wrappers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ess To Linux Servers Using TCP Wrappers.md | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 sources/tech/20221014 How To Restrict Access To Linux Servers Using TCP Wrappers.md diff --git a/sources/tech/20221014 How To Restrict Access To Linux Servers Using TCP Wrappers.md b/sources/tech/20221014 How To Restrict Access To Linux Servers Using TCP Wrappers.md new file mode 100644 index 0000000000..e161e90733 --- /dev/null +++ b/sources/tech/20221014 How To Restrict Access To Linux Servers Using TCP Wrappers.md @@ -0,0 +1,230 @@ +[#]: subject: "How To Restrict Access To Linux Servers Using TCP Wrappers" +[#]: via: "https://ostechnix.com/restrict-access-linux-servers-using-tcp-wrappers/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Restrict Access To Linux Servers Using TCP Wrappers +====== +In this guide, we are going to learn **what is TCP Wrappers**, what is it used for, how to **install TCP Wrappers in Linux**, and how to **restrict access to Linux servers using TCP Wrappers**. + +### What is TCP Wrappers? + +**TCP Wrappers** (also known as **tcp_wrapper**) is an open source host-based ACL (Access Control List) system, which is used to restrict the TCP network services based on the hostname, IP address, network address, and so on. It decides which host should be allowed to access a specific network service. + +TCP Wrapper was developed by a Dutch programmer and physicist **Wietse Zweitze Venema** in 1990 at the Eindhoven University of Technology. He maintained it until 1995, and then released it under BSD License in 2001. + +### Is TCP Wrappers a replacement for Firewalls? + +**No.** Please be aware that **TCP Wrapper is not a complete replacement for properly configured firewall**. It is just a **valuable addition to** **enhance your Linux server's security**. + +Some Linux distributions such as Debian, Ubuntu have dropped the TCP Wrappers from the official repositories. Because, the last version of tcp_wrappers was released 20 years ago. At that time it was very powerful tool to "block all traffic". + +However, these days we can do the same thing using firewalls/iptables/nftables for all traffic on **network level** or use similar filtering at the application level. But TCP Wrappers blocks incoming connection on application level only. + +If you still prefer to use TCP Wrappers for any reason, it is always recommended to use TCP Wrappers in conjunction with a properly configured firewall and other security mechanisms and tools to harden your Linux server's security. + +### Install TCP Wrappers in Linux + +TCP Wrappers is available in the official repositories of most Linux operating systems. + +Depending upon the Linux distribution you use, TCP Wrappers can be installed as shown below. + +**On Arch-based systems**, make sure the [Community] repository is enabled and run the following command to TCP Wrappers in Arch Linux and its variants such as EndeavourOS and Manjaro Linux: + +``` +$ sudo pacman -S tcp-wrappers +``` + +**On Fedora , RHEL, CentOS, AlmaLinux and Rocky Linux:** + +Make sure you've enabled the **[EPEL]** repository: + +``` +$ sudo dnf install epel-release +``` + +And then install TCP wrappers using command: + +``` +$ sudo dnf install tcp_wrappers +``` + +On RHEL 6 systems, you need to use yum instead of dnf to install TCP wrappers. + +``` +$ sudo yum install tcp_wrappers +``` + +### Configure TCP Wrappers + +TCP Wrappers implements the access control with the help of two configuration files: + +* /etc/hosts.allow, +* /etc/hosts.deny. + +These two access control list files decides whether or not the specific clients are allowed to access your Linux server. + +#### The /etc/hosts.allow file + +The `/etc/hosts.allow` file contains the list of allowed or non-allowed hosts or networks. It means that we can both allow or deny connections to network services by defining access rules in this file. + +#### The /etc/hosts.deny file + +The `/etc/hosts.deny` file contains the list of hosts or networks that are not allowed to access your Linux server. The access rules in this file can also be set up in `/etc/hosts.allow` with a **'deny'** option. + +The typical syntax to define an access rule is: + +``` +daemon_list : client_list : option : option ... +``` + +Where, + +* daemon_list - The name of a network service such as SSH, FTP, Portmap etc. +* clients_list - The comma separated list of valid hostnames, IP addresses or network addresses. +* options - An optional action that specifies something to be done whenever a rule is matched. + +The syntax is same for both files. + +### Rules to remember + +Before using TCP Wrappers, you need to know the following important rules. Please be mindful that the TCP Wrapper consults only these two files (hosts.allow and hosts.deny). + +* The access rules in the `/etc/hosts.allow` file are applied first. They takes precedence over rules in `/etc/hosts.deny` file. Therefore, if access to a service is allowed in `/etc/hosts.allow` file, and a rule denying access to that same service in `/etc/hosts.deny` is ignored. +* Only one rule per service is allowed in both files (hosts.allow and `hosts.deny` files). +* The order of the rules is very important. Only the first matching rule for a given service will be taken into account. The same applies for both files. +* If there are no matching rules for a service in either files or if neither file exist, then access to the service will be granted to all remote hosts. +* Any changes in either files will come to effect immediately without restarting the network services. + +### Restrict Access To Linux Servers Using TCP Wrappers + +The recommended approach to secure a Linux server is to **block all incoming connections**, and allow only a few specific hosts or networks. + +To do so, edit **/etc/hosts.deny** file: + +``` +$ sudo vi /etc/hosts.deny +``` + +Add the following line. This line refuses connections to ALL services and ALL networks. + +``` +ALL: ALL +``` + +Then, edit **/etc/hosts.allow** file: + +``` +$ sudo vi /etc/hosts.allow +``` + +and allow the specific hosts or networks of your choice. + +``` +sshd: 192.168.43.192 192.168.43.193 +``` + +You can also specify valid hostnames instead of IP address as shown below. + +``` +sshd: server1.ostechnix.lan server2.ostechnx.lan +``` + +Alternatively, you can do the same by defining all rules (both allow and deny) in `/etc/hosts.allow` file itself. + +Edit **/etc/hosts.allow** file and add the following lines. + +``` +sshd: 192.168.43.192 192.168.43.193 +sshd: ALL: DENY +``` + +In this case, you don't need to specify any rule in `/etc/hosts.deny` file. + +As per above rule, all incoming connections will be denied for all hosts except the two hosts 192.168.43.192, 192.168.43.193. + +Now, try to SSH to your Linux server from any hosts except the above hosts, you will get the following error. + +``` +ssh_exchange_identification: read: Connection reset by peer +``` + +You can verify this from your Linux server's log files as shown below. + +``` +$ cat /var/log/secure +``` + +**Sample output:** + +``` +Jun 16 19:40:17 server sshd[15782]: refused connect from 192.168.43.150 (192.168.43.150) +``` + +Similarly, you can define rules for other services, say for example vsftpd, in `/etc/hosts.allow` file as shown below. + +``` +vsftpd: 192.168.43.192 +vsftpd: ALL: DENY +``` + +Again, you don't need to define any rules in `/etc/hosts.deny` file. As per the above rule, a remote host with IP address 192.168.43.192 is allowed to access the Linux server via FTP. All other hosts will be denied. + +Also, you can define the access rules in different formats in /etc/hosts.allow file as shown below. + +``` +sshd: 192.168.43.192 #Allow a single host for SSH service +sshd: 192.168.43.0/255.255.255.0 #Allow a /24 prefix for SSH +vsftpd: 192.168.43.192 #Allow a single host for FTP +vsftpd: 192.168.43.0/255.255.255.0 #Allow a /24 prefix for FTP +vsftpd: server1.ostechnix.lan #Allow a single host for FTP +``` + +#### Allow all hosts except a specific host + +You can allow incoming connections from all hosts, but not from a specific host. Say for example, to allow incoming connections from all hosts in the **192.168.43** subnet, but not from the host **192.168.43.192**, add the following line in `/etc/hosts.allow` file. + +``` +ALL: 192.168.43. EXCEPT 192.168.43.192 +``` + +In the above case, you don't need to add any rules in /etc/hosts.deny file. + +Or you can specify the hostname instead of IP address as shown below. + +``` +ALL: .ostechnix.lan EXCEPT badhost.ostechnix.lan +``` + +For more details, refer the man pages. + +``` +$ man tcpd +``` + +### Conclusion + +As you can see, securing network services in your Linux systems with TCP Wrappers is easy! But keep in mind that TCP Wrapper is not a replacement for a firewall. It should be used in conjunction with firewalls and other security tools. + +**Resource:** + +* [Wikipedia][1] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/restrict-access-linux-servers-using-tcp-wrappers/ + +作者:[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://en.wikipedia.org/wiki/TCP_Wrapper From d6ae9c1d55afa1f544a95200a27978f29a4abc31 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:09:30 +0800 Subject: [PATCH 1570/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221012=20How=20to=20Set=20Static=20IP=20Address=20?= =?UTF-8?q?on=20Ubuntu=20Server=2022.04.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tatic IP Address on Ubuntu Server 22.04.md | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md diff --git a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md new file mode 100644 index 0000000000..c29d2621a3 --- /dev/null +++ b/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md @@ -0,0 +1,125 @@ +[#]: subject: "How to Set Static IP Address on Ubuntu Server 22.04" +[#]: via: "https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Set Static IP Address on Ubuntu Server 22.04 +====== +In this post, we will cover how to set static ip address on Ubuntu server 22.04. + +It is highly recommended to have a static ip on linux server because it would be persistent across the reboot. Static IP plays an important role for servers like Mail Server, Web Server and File server etc. + +##### Prerequisites + +* Minimal Installed Ubuntu Server 22.04 +* Regular User with sudo admin rights + +In Ubuntu server 22.04, networking is controlled by netplan utility, so we will use netplan to configure static ip address on Ubuntu server. + +Note: we cannot use [nmcli utiltity][1] as it is not the part of default installation on Ubuntu server. + +### Setting up Static IP address on Ubuntu Server 22.04 + +Login to your Ubuntu server 22.04, look for the netplan configuration file. It is located under /etc/netplan directory. + +``` +$ cd /etc/netplan/ +$ ls -l +total 4 +-rw-r--r-- 1 root root 116 Oct 12 04:03 00-installer-config.yaml +$ +``` + +Run below cat command to view the contents of ‘00-installer-config.yaml’ + +Note: Name of configuration file may differ as your per setup. As it is an yaml file, so make sure to maintain the indentation and syntax while editing. + +``` +$ cat 00-installer-config.yaml +``` + +Output, + +![Default-Content-netplan-ubuntu-server][2] + +As per above output, it says that we have ens33 interface and it is getting ip from dhcp server. Alternate way to view interface name is via ip command. + +Now, to configure static ip in place of dhcp, edit netplan configuration file using vi or nano editor and add the following content. + +``` +$ sudo vi 00-installer-config.yaml +# This is the network config written by 'subiquity' +network: +  renderer: networkd +  ethernets: +    ens33: +      addresses: +        - 192.168.1.247/24 +      nameservers: +        addresses: [4.2.2.2, 8.8.8.8] +      routes: +        - to: default +          via: 192.168.1.1 +  version: 2 +``` + +save and close the file. + +![Updated-Netplan-Config-File-Content-Ubuntu-Server][3] + +In the above file we have used following, + +* ens33 is the interface name +* addresses are used to set the static ip +* nameservers used to specify the DNS server ips +* routes used to specify the default gateway + +Note: Change the IP details and interface name as per your environment. + +To make above changes into the effect the apply these changes using following netplan command, + +``` +$ sudo netplan apply +``` + +Run following ip command to view the ip address on interface, + +``` +$ ip addr show ens33 +``` + +To view the default route, run + +``` +$ ip route show +``` + +Output of above commands, + +![ip-addr-route-command-output-ubuntu-server][4] + +Perfect, above commands’ output confirms that static ip and route has been configured successfully. + +That’s all from this post. Kindly do post your queries and feedback in below comments section. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/ + +作者:[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/configure-ip-with-nmcli-command-linux/ +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Default-Content-netplan-ubuntu-server.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Updated-Netplan-Config-File-Content-Ubuntu-Server.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/ip-addr-route-command-output-ubuntu-server.png From c65c30c494998bed3a8bc6e0165704c30740c6f5 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:11:08 +0800 Subject: [PATCH 1571/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221013=20Blender=203.4=20to=20Enable=20Native=20Wa?= =?UTF-8?q?yland=20Support=20for=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Enable Native Wayland Support for Linux.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md diff --git a/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md b/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md new file mode 100644 index 0000000000..a1a9dd5b4d --- /dev/null +++ b/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md @@ -0,0 +1,83 @@ +[#]: subject: "Blender 3.4 to Enable Native Wayland Support for Linux" +[#]: via: "https://news.itsfoss.com/blender-3-4-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Blender 3.4 to Enable Native Wayland Support for Linux +====== +Blender is bringing in native Wayland support soon. Learn more here. + +![Blender 3.4 to Enable Native Wayland Support for Linux][1] + +Blender is a popular 3D creation suite that many professionals use. + +The developers of Blender have recently added native Wayland support for Linux in the daily builds, and have confirmed adding the support in the upcoming Blender 3.4 release. + +This is probably one of the significant development progress after [Blender 3.0 release][2] last year! + +### Blender With Native Wayland + +[Wayland][3] is a replacement to the X11 [display server][4] that aims to be a simpler and more modern solution. + +Providing native Wayland support has become necessary, mainly because many distros now come with that kind of support out of the box. + +With more Wayland support in the works and users switching to a distro with native support, this move was a given. + +![(Affiliate Link)][5] + +![(Affiliate Link)][6] + +With the daily builds, the **libdecor** library has made this possible. If you want to test it out, you need to have it installed for Blender to work correctly with native Wayland support. + +While initial support for Wayland was present in Blender since 2020, it was not ready for prime time. It had a lot of issues, such as no tablet support, no NDOF support, no Hi-DPI support, and similar. + +Now, it looks like most of those issues are gone. + +#### Suggested Read 📖 + +![][7] + +![][8] + +### Expect it With Blender 3.4 + +A blog post by one of Blender's developers *Campbell Barton,*reveals that if all goes well with the daily builds, the Wayland support is coming to Blender 3.4. + +Here's what he mentions: + +At this point, I can only hope that no significant issues affect its integration. + +Otherwise, it may push back to a later release cycle. + +Blender 3.4 will release in early **December 2022**, with improvements across the board and new features such as headless rendering for Linux, improvements for Sculpt, Intel Open PGL integration, and more. + +[blog post][9] + +💬*Are you excited to try out native Wayland support on Blender?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/blender-3-4-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/blender-3-4-release.png +[2]: https://news.itsfoss.com/blender-3-0-release/ +[3]: https://wayland.freedesktop.org/ +[4]: https://itsfoss.com/display-server/ +[5]: https://starlabs.systems/?rfsn=4790429.bdbc07 +[6]: https://starlabs.systems/?rfsn=4790429.bdbc07 +[7]: https://itsfoss.com/open-source-video-editors/ +[8]: https://itsfoss.com/open-source-video-editors/ +[9]: https://code.blender.org/2022/10/wayland-support-on-linux/ From e595275c3048db98464f24fa4b8a8e247485ba67 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:14:41 +0800 Subject: [PATCH 1572/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221014=20First=20Look=20at=20LURE!=20Bringing=20AU?= =?UTF-8?q?R=20to=20All=20Linux=20Distros.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...LURE! Bringing AUR to All Linux Distros.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md diff --git a/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md b/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md new file mode 100644 index 0000000000..3cd486fa4c --- /dev/null +++ b/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md @@ -0,0 +1,131 @@ +[#]: subject: "First Look at LURE! Bringing AUR to All Linux Distros" +[#]: via: "https://news.itsfoss.com/lure-aur/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +First Look at LURE! Bringing AUR to All Linux Distros +====== +LURE is a new open-source project that aspires to become the AUR for all distros. + +![First Look at LURE! Bringing AUR to All Linux Distros][1] + +**AUR** (Arch User Repository) is a community-driven repository for Arch-based Linux distributions. + +**Long story short:** it helps install packages not available in the official repositories and lets you get the latest releases. + +I found it helpful with my experience on [Manjaro Linux][2]. + +Technically, AUR builds a package from the source and then utilizes the package manager (pacman) to install it. + +You can also explore more about it in our detailed guide: + +[What is AUR? How to use AUR in Arch and Manjaro Linux?][3] + +📢 Now that you have a good idea about AUR, a **new open-source project**aims to bring the utility of AUR to all the distributions. + +The project is called **Linux User REpository (or LURE).** + +> 💡 The LURE project is in its alpha stage, announced by the creator a few weeks back. So, it is entirely a work in progress. + +### A Project Like This Already Exists? + +![lure adding repo][5] + +**No.** + +Developers have tried making an AUR alternative, but for a specific distribution. Like [makedeb Package Repository][6] for Debian. + +LURE is an ambitious idea that could work on any distribution of your choice. + +It seeks to be a tool that helps you create native packages for your distribution using a script similar to **PKGBUILD**. + +[Creating a PKGBUILD to Make Packages for Arch Linux - It’s FOSS][7] + +The developer mentions some of the technical details in a [Reddit announcement post][9]: + +> My project is called LURE, short for Linux User REpository. It builds native packages and then installs them using the system package manager, just like the AUR. It uses a build script similar to the AUR's PKGBUILD to build the packages. +> +> It is written in pure Go, which means that it has zero dependencies after it's built, other than any privilege escalation command (`sudo`, `doas`, etc.) and any one of the supported package managers, which currently are: `pacman`, `apt`, `apk` (Alpine Linux, not Android), `dnf`, `yum`, and `zypper`. + +**Sounds exciting!** + +[LURE Project Repo][10] + +You can also explore more about it on its [GitHub mirror][11]. + +### Using LURE + +You do not have to install an additional package manager to make it work; it works automatically with your system's package manager. + +So, if it does not find a package in its repo (or any of its added repo), it moves to the system's default repo and installs it from there. Just like I installed/removed **neofetch** on my system using the lure command: + +![lure neofetch remove][12] + +While the project is in early development, it offers [binary packages][13] for various distributions allowing you to install and test them. + +![][14] + +Currently, its repository includes one project from the creator itself. But you can try to add a repo and build/install things. + +For the sake of convenience, I tried installing the package in its repo: + +![][15] + +The command looks like this: + +``` +lure in itd-bin +``` + +On its [official documentation page][16], you can read more about its usage to build/install/add repositories. + +Some of the planned features for future releases include: + +* Automated install script +* Automated docker-based testing tool +* Web interface for repos + +### What Would Make It Better? + +Well, for starters, this is an excellent project. If you are someone who used Arch in the past or want to move away from Arch Linux, this will be a good tool for you. + +However, for most end-users and non-Arch Linux newbies, something like the [Pamac GUI package manager][17] with LURE support should be the icing on the cake. + +Of course, at its current stage, it needs support from open-source contributors. So, if you like the idea, feel free to contribute improvements to the project! + +*💭 What do you think about LURE? Share your thoughts in the comments below!* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/lure-aur/ + +作者:[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/content/images/size/w1200/2022/10/LURE-aur-for-all-linux-distros.jpg +[2]: https://news.itsfoss.com/manjaro-linux-experience/ +[3]: https://itsfoss.com/aur-arch-linux/ +[4]: https://itsfoss.com/aur-arch-linux/ +[5]: https://news.itsfoss.com/content/images/2022/10/lure-repos.png +[6]: https://mpr.makedeb.org +[7]: https://itsfoss.com/create-pkgbuild/ +[8]: https://itsfoss.com/create-pkgbuild/ +[9]: https://www.reddit.com/r/linux/comments/xq09nf/lure_aur_on_nonarch_distros/ +[10]: https://gitea.arsenm.dev/Arsen6331/lure +[11]: https://github.com/Arsen6331/lure +[12]: https://news.itsfoss.com/content/images/2022/10/lure-neofetch-rm.png +[13]: https://gitea.arsenm.dev/Arsen6331/lure/releases/tag/v0.0.2 +[14]: https://news.itsfoss.com/content/images/2022/10/lure-binaries.jpg +[15]: https://news.itsfoss.com/content/images/2022/10/lure-test.png +[16]: https://github.com/Arsen6331/lure/blob/master/docs/usage.md +[17]: https://itsfoss.com/install-pamac-arch-linux/ From 855b6245e3228c0d6390d50d567c8f434340f845 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:17:19 +0800 Subject: [PATCH 1573/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221013=20Blender=203.4=20to=20Enable=20Native=20Wa?= =?UTF-8?q?yland=20Support=20for=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Enable Native Wayland Support for Linux.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md b/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md index a1a9dd5b4d..5c7d0d7da1 100644 --- a/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md +++ b/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md @@ -27,9 +27,7 @@ Providing native Wayland support has become necessary, mainly because many distr With more Wayland support in the works and users switching to a distro with native support, this move was a given. -![(Affiliate Link)][5] - -![(Affiliate Link)][6] +[Linux Laptops - Powered by Open Source][5] With the daily builds, the **libdecor** library has made this possible. If you want to test it out, you need to have it installed for Blender to work correctly with native Wayland support. @@ -37,25 +35,21 @@ While initial support for Wayland was present in Blender since 2020, it was not Now, it looks like most of those issues are gone. -#### Suggested Read 📖 - -![][7] - -![][8] - ### Expect it With Blender 3.4 -A blog post by one of Blender's developers *Campbell Barton,*reveals that if all goes well with the daily builds, the Wayland support is coming to Blender 3.4. +A blog post by one of Blender's developers *Campbell Barton,* reveals that if all goes well with the daily builds, the Wayland support is coming to Blender 3.4. Here's what he mentions: +> Now Wayland is enabled in our official builds, I hope to validate it for the up coming release. So unless issues arise which we’re unable to resolve, it will be officially supported in Blender 3.4x onward. + At this point, I can only hope that no significant issues affect its integration. Otherwise, it may push back to a later release cycle. Blender 3.4 will release in early **December 2022**, with improvements across the board and new features such as headless rendering for Linux, improvements for Sculpt, Intel Open PGL integration, and more. -[blog post][9] +> 💡 Blender with Wayland has some technical limitations. You can find more details on that in the [blog post][9]. 💬*Are you excited to try out native Wayland support on Blender?* From 4e8934702981926e016ebf2d5e84b3d202dbab07 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:19:38 +0800 Subject: [PATCH 1574/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221014=20Notion-like=20Markdown=20Note-Taking=20Ap?= =?UTF-8?q?p=20-Obsidian-=20is=20Out=20of=20Beta.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...te-Taking App -Obsidian- is Out of Beta.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md diff --git a/sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md b/sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md new file mode 100644 index 0000000000..9a5dfa0cb6 --- /dev/null +++ b/sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md @@ -0,0 +1,112 @@ +[#]: subject: "Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta" +[#]: via: "https://news.itsfoss.com/obsidian-1-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta +====== +Obsidian 1.0 is all about the redesign and valuable new features. + +![Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta][1] + +Obsidian is a powerful note-taking app that can be used to make knowledge graphs while still offering [Notion][2]-like features. + +We already had a detailed article on it before the 1.0 update: + +[Obsidian is a Notion Alternative for Hardcore Markdown Users for Creating Knowledge Graph of Notes - It’s FOSS][3] + +The release of Obsidian 1.0 marks a crucial step in the development of the app for its desktop and mobile experience. + +> 💡 Obsidian is not an open-source app, but it is available for Linux users. + +Let's take a look at the new features on offer for desktops. + +### 🆕 Obsidian 1.0: What's New? + +![obsidian 1.0][5] + +The 1.0 release has added a bunch of new features, major visual changes, and bug fixes, some of the highlights include: + +* Revamped UI +* New Appearance Settings +* Tabs With Tab Stacking +* Overhauled Theme Gallery +* Various Bug Fixes + +#### 🎨 User Interface Makeover + +![obsidian 1.0 user interface][8] + +The user interface has received an extensive makeover, which has resulted in a more intuitive and robust user experience. + +![obisidian ui][9] + +In addition to that, Obsidian now has a dedicated section for appearance settings. It contains settings to toggle options for showing the inline title, tab title bar, changing accent color, and more. + +![obsidian 1.0 appearance settings][10] + +#### Tabs With Tab Stacking + +![obsidian 1.0 tabs][11] + +You can now open multiple tabs in Obsidian and use hotkeys to help you multitask throughout a busy day. + +An added bonus, even if you quit Obsidian, it will remember which tabs you had opened and your active state in those tabs. + +![obsidian 1.0 tab stacking][12] + +Tabs can also be grouped to form a stack and switched between, resulting in a decluttered workspace. + +#### 🛠️ Other Changes + +Other changes worth mentioning include: + +* Ability to change the zoom level. +* Improved Obsidian sync. +* Memory leak fix. +* Fold Commands for folding lines. + +You can go through the [release notes][13], and its [release announcement][14] too get into the finer details. + +### 📥 Download Obsidian 1.0 + +You can download Obsidian 1.0 by heading over to the [official website][17]. For mobiles, it is available on Google Play Store and Apple's App Store. + +Three packages have been made available for Linux users: **AppImage, Flatpak, and Snap**. + +The developers have also clarified that they won't be charging personal users for access to Obsidian. + +*💬 What do you think of Obsidian 1.0? A worthy alternative to other note-taking apps?* + +![YouTube video player][18] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/obsidian-1-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/obsidian-1.png +[2]: https://notion.grsm.io/itsfoss +[3]: https://itsfoss.com/obsidian-markdown-editor/ +[5]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0.png +[8]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_User_Interface.png +[9]: https://news.itsfoss.com/content/images/2022/10/obisidian-1-ui.png +[10]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Appearance_Settings.png +[11]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Tabs.png +[12]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Tab_Stacks.gif +[13]: https://forum.obsidian.md/t/obsidian-release-v1-0-0/44873 +[14]: https://obsidian.md/1.0 +[17]: https://obsidian.md/download +[18]: https://www.youtube-nocookie.com/embed/Ia2CaItxTEk From 8d0f2a1d3c1c11933156898c9f97e96a01653aab Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:21:57 +0800 Subject: [PATCH 1575/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221013=20Asynchronous=20programming=20in=20Rust.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...221013 Asynchronous programming in Rust.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sources/tech/20221013 Asynchronous programming in Rust.md diff --git a/sources/tech/20221013 Asynchronous programming in Rust.md b/sources/tech/20221013 Asynchronous programming in Rust.md new file mode 100644 index 0000000000..ca0acefefb --- /dev/null +++ b/sources/tech/20221013 Asynchronous programming in Rust.md @@ -0,0 +1,190 @@ +[#]: subject: "Asynchronous programming in Rust" +[#]: via: "https://opensource.com/article/22/10/asynchronous-programming-rust" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Asynchronous programming in Rust +====== +Take a look at how async-await works in Rust. + +![Ferris the crab under the sea, unofficial logo for Rust programming language][1] + +Image by: Opensource.com + +Asynchronous programming: Incredibly useful but difficult to learn. You can't avoid async programming to create a fast and reactive application. Applications with a high amount of file or network I/O or with a GUI that should always be reactive benefit tremendously from async programming. Tasks can be executed in the background while the user still makes inputs. Async programming is possible in many languages, each with different styles and syntax. [Rust][2] is no exception. In Rust, this feature is called *async-await*. + +While *async-await* has been an integral part of Rust since version 1.39.0, most applications depend on community crates. In Rust, except for a larger binary, *async-await* comes with zero costs. This article gives you an insight into asynchronous programming in Rust. + +### Under the hood + +To get a basic understanding of *async-await* in Rust, you literally start in the middle. + +The center of *async-await* is the [future][3] trait, which declares the method *poll* (I cover this in more detail below). If a value can be computed asynchronously, the related type should implement the *future* trait. The *poll* method is called repeatedly until the final value is available. + +At this point, you could repeatedly call the *poll* method from your synchronous application manually in order to get the final value. However, since I'm talking about asynchronous programming, you can hand over this task to another component: the runtime. So before you can make use of the *async* syntax, a runtime must be present. I use the runtime from the [tokio][4] community crate in the following examples. + +A handy way of making the tokio runtime available is to use the `#[tokio::main]` macro on your main function: + +``` +#[tokio::main] +async fn main(){ +    println!("Start!"); +    sleep(Duration::from_secs(1)).await; +    println!("End after 1 second"); +} +``` + +When the runtime is available, you can now *await* futures. Awaiting means that further executions stop here as long as the *future* needs to be completed. The *await* method causes the runtime to invoke the *poll* method, which will drive the *future* to completion. + +In the above example, the tokios [sleep][5] function returns a *future* that finishes when the specified duration has passed. By awaiting this future, the related *poll* method is repeatedly called until the *future* completes. Furthermore, the *main()* function also returns a *future* because of the `async` keyword before the **fn**. + +So if you see a function marked with `async`**:** + +``` +async fn foo() -> usize { /**/ } +``` + +Then it is just syntactic sugar for: + +``` +fn foo() -> impl Future { async { /**/ } } +``` + +### Pinning and boxing + +To remove some of the shrouds and clouds of *async-await* in Rust, you must understand *pinning* and *boxing*. + +If you are dealing with *async-await*, you will relatively quickly step over the terms boxing and pinning. Since I find that the available explanations on the subject are rather difficult to understand, I have set myself the goal of explaining the issue more easily. + +Sometimes it is necessary to have objects that are guaranteed not to be moved in memory. This comes into effect when you have a self-referential type: + +``` +struct MustBePinned { +    a: int16, +    b: &int16 +} +``` + +If member **b** is a reference (pointer) to member **a** of the same instance, then reference **b** becomes invalid when the instance is moved because the location of member **a** has changed but **b** still points to the previous location. You can find a more comprehensive example of a *self-referential* type in the [Rust Async book][6]. All you need to know now is that an instance of *MustBePinned* should not be moved in memory. Types like *MustBePinned* do not implement the *Unpin* trait, which would allow them to move within memory safely. In other words, *MustBePinned* is *!Unpin*. + +Back to the future: By default, a *future* is also *!Unpin*; thus, it should not be moved in memory. So how do you handle those types? You pin and box them. + +The [Pin][7] type wraps pointer types, guaranteeing that the values behind the pointer won't be moved. The **Pin** type ensures this by not providing a mutable reference of the wrapped type. The type will be pinned for the lifetime of the object. If you accidentally pin a type that implements *Unpin* (which is safe to move), it won't have any effect. + +In practice: If you want to return a *future* (*!Unpin*) from a function, you must box it. Using [Box][8] causes the type to be allocated on the heap instead of the stack and thus ensures that it can outlive the current function without being moved. In particular, if you want to hand over a *future*, you can only hand over a pointer to it as the *future* must be of type **Pin>**. + +Using *async-wait*, you will certainly stumble upon this boxing and pinning syntax. To wrap this topic up, you just have to remember this: + +* Rust does not know whether a type can be safely moved. +* Types that shouldn't be moved must be wrapped inside [Pin][9]. +* Most types are [Unpin][10]ned types. They implement the trait Unpin and can be freely moved within memory. +* If a type is wrapped inside [Pin][11] and the wrapped type is !Unpin, it is not possible to get a mutable reference out of it. +* Futures created by the async keyword are !Unpin and thus must be pinned. + +### Future trait + +In the [future][12] trait, everything comes together: + +``` +pub trait Future { +    type Output; + +    fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll; +} +``` + +Here is a simple example of how to implement the *future* trait: + +``` +struct  MyCounterFuture { + cnt : u32, + cnt_final : u32 +} + +impl MyCounterFuture { + pub fn new(final_value : u32) -> Self { + Self { + cnt : 0, + cnt_final : final_value + } + } +} +  +impl Future for MyCounterFuture { + type Output = u32; + + fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll{ + self.cnt += 1; + if self.cnt >= self.cnt_final { + println!("Counting finished"); + return Poll::Ready(self.cnt_final); + } + + cx.waker().wake_by_ref(); + Poll::Pending + } +} + +#[tokio::main] +async fn main(){ + let my_counter = MyCounterFuture::new(42); + + let final_value = my_counter.await; + println!("Final value: {}", final_value); +} +``` + +Here is a simple example of how the *future* trait is implemented manually: The *future* is initialized with a value to which it shall count, stored in **cnt_final**. Each time the *poll* method is invoked, the internal value **cnt** gets incremented by one. If **cnt** is less than **cnt_final**, the future signals the [waker][13] of the runtime that the *future* is ready to be polled again. The return value of `Poll::Pending` signals that the *future* has not completed yet. After **cnt** is *>=* **cnt_final**, the *poll* function returns with `Poll::Ready`, signaling that the *future* has completed and providing the final value. + +This is just a simple example, and of course, there are other things to take care of. If you consider creating your own futures, I highly suggest reading the chapter [Async in depth][14] in the documentation of the tokio crate. + +### Wrap up + +Before I wrap things up, here is some additional information that I consider useful: + +* Create a new pinned and boxed type using [Box::pin][15]. +* The [futures][16] crate provides the type [BoxFuture][17] which lets you define a future as return type of a function. +* The [async_trait][18] allows you to define an async function in traits (which is currently not allowed). +* The [pin-utils][19] crate provides macros to pin values. +* The tokios [try_join!][20] macro (a)waits on multiple futures which return a [Result][21]. + +Once the first hurdles have been overcome, async programming in Rust is straightforward. You don't even have to implement the *future* trait in your own types if you can outsource code that can be executed in parallel in an async function. In Rust, single-threaded and multi-threaded runtimes are available, so you can benefit from async programming even in embedded environments. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/asynchronous-programming-rust + +作者:[Stephan Avenwedde][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/hansic99 +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png +[2]: https://opensource.com/article/20/12/learn-rust +[3]: https://doc.rust-lang.org/std/future/trait.Future.html +[4]: https://tokio.rs/ +[5]: https://docs.rs/tokio/latest/tokio/time/fn.sleep.html +[6]: https://rust-lang.github.io/async-book/04_pinning/01_chapter.html +[7]: https://doc.rust-lang.org/std/pin/struct.Pin.html +[8]: https://doc.rust-lang.org/std/boxed/struct.Box.html +[9]: https://doc.rust-lang.org/std/pin/struct.Pin.html +[10]: https://doc.rust-lang.org/std/marker/trait.Unpin.html# +[11]: https://doc.rust-lang.org/std/pin/struct.Pin.html +[12]: https://doc.rust-lang.org/std/future/trait.Future.html +[13]: https://tokio.rs/tokio/tutorial/async#wakers +[14]: https://tokio.rs/tokio/tutorial/async +[15]: https://doc.rust-lang.org/std/boxed/struct.Box.html#method.pin +[16]: https://crates.io/crates/futures +[17]: https://docs.rs/futures/latest/futures/future/type.BoxFuture.html +[18]: https://docs.rs/async-trait/latest/async_trait/ +[19]: https://crates.io/crates/pin-utils +[20]: https://docs.rs/tokio/latest/tokio/macro.try_join.html +[21]: https://doc.rust-lang.org/std/result/ From 1a4d10ab7394636e2fe9abe84705f942f5d4e322 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:23:23 +0800 Subject: [PATCH 1576/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221013=20What=20you=20need=20to=20know=20about=20c?= =?UTF-8?q?ompiling=20code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t you need to know about compiling code.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/tech/20221013 What you need to know about compiling code.md diff --git a/sources/tech/20221013 What you need to know about compiling code.md b/sources/tech/20221013 What you need to know about compiling code.md new file mode 100644 index 0000000000..0f811393a8 --- /dev/null +++ b/sources/tech/20221013 What you need to know about compiling code.md @@ -0,0 +1,102 @@ +[#]: subject: "What you need to know about compiling code" +[#]: via: "https://opensource.com/article/22/10/compiling-code" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What you need to know about compiling code +====== +Use this handy mousetrap analogy to understand compiling code. Then download our new eBook, An open source developer's guide to building applications. + +Source code must be compiled in order to run, and in open source software everyone has access to source code. Whether you've written code yourself and you want to compile and run it, or whether you've downloaded somebody's project to try it out, it's useful to know how to process source code through a [compiler][2], and also what exactly a compiler does with all that code. + +### Build a better mousetrap + +We don't usually think of a mousetrap as a computer, but believe it or not, it does share some similarities with the CPU running the device you're reading this article on. The classic (non-cat) mousetrap has two states: it's either set or released. You might consider that *on* (the kill bar is set and stores potential energy) and *off* (the kill bar has been triggered.) In a sense, a mousetrap is a computer that calculates the presence of a mouse. You might imagine this code, in an imaginary language, describing the process: + +``` +if mousetrap == 0 then + There's a mouse! +else + There's no mouse yet. +end +``` + +In other words, you can derive mouse data based on the state of a mousetrap. The mousetrap isn't foolproof, of course. There could be a mouse next to the mousetrap, and the mousetrap would still be registered as *on* because the mouse has not yet triggered the trap. So the program could use a few enhancements, but that's pretty typical. + +### Switches + +A mousetrap is ultimately a switch. You probably use a switch to turn on the lights in your house. A lot of information is stored in these mechanisms. For instance, people often assume that you're at home when the lights are on. + +You could program actions based on the activity of lights on in your neighborhood. If all lights are out, then turn down your loud music because people have probably gone to bed. + +A CPU uses the same logic, multiplied by several orders of measure, and shrunken to a microscopic level. When a CPU receives an electrical signal at a specific register, then some other register can be tripped, and then another, and so on. If those registers are made to be meaningful, then there's communication happening. Maybe a chip somewhere on the same motherboard becomes active, or an LED lights up, or a pixel on a screen changes color. + +**[[ Related read 6 Python interpreters to try in 2022 ]][3]** + +What comes around goes around. If you really want to detect a rodent in more places than the one spot you happen to have a mousetrap set, you could program an application to do just that. With a webcam and some rudimentary image recognition software, you could establish a baseline of what an empty kitchen looks like and then scan for changes. When a mouse enters the kitchen, there's a shift in the pixel values where there was previously no mouse. Log the data, or better yet trigger a drone that focuses in on the mouse, captures it, and moves it outside. You've built a better mousetrap through the magic of on and off signals. + +### Compilers + +A code compiler translates human-readable code into a machine language that speaks directly to the CPU. It's a complex process because CPUs are legitimately complex (even more complex than a mousetrap), but also because the process is more flexible than it strictly "needs" to be. Not all compilers are flexible. There are some compilers that have exactly one target, and they only accept code files in a specific layout, and so the process is relatively straight-forward. + +Luckily, modern general-purpose compilers aren't simple. They allow you to write code in a variety of languages, and they let you link libraries in different ways, and they can target several different architectures. The [GNU C Compiler (GCC)][4] has over 50 lines of options in its `--help` output, and the LLVM `clang` compiler has over 1000 lines in its `--help` output. The GCC manual contains over 100,000 words. + +You have lots of options when you compile code. + +Of course, most people don't need to know all the possible options. There are sections in the GCC man page I've never read, because they're for Objective-C or Fortran or chip architectures I've never even heard of. But I value the ability to compile code for several different architectures, for 64-bit and 32-bit, and to run open source software on computers the rest of the industry has left behind. + +### The compilation lifecycle + +Just as importantly, there's real power to understanding the different stages of compiling code. Here's the lifecycle of a simple C program: + +1. C source with macros (.c) is preprocessed with `cpp` to render an `.i` file. +2. C source code with expanded macros (.i) is translated with `gcc` to render an `.s` file. +3. A text file in Assembly language (.s) is `as`sembled with as into an `.o` file. +4. Binary object code with instructions for the CPU, and with offsets not tied to memory areas relative to other object files and libraries (*.o) is linked with `ld` to produce an executable. +5. The final binary file either has all required objects within it, or it's set to load linked dynamic libraries (*.so files). + +And here's a simple demonstration you can try (with some adjustment for library paths): + +``` +$ cat << EOF >> hello.c + #include + int main(void) + { printf("hello world\n"); +   return 0; } +   EOF +$ cpp hello.c > hello.i +$ gcc -S hello.i +$ as -o hello.o hello.s +$ ld -static -o hello \ +-L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \ +/usr/lib64/crt1.o /usr/lib64/crti.o hello.o \ +/usr/lib64/crtn.o  --start-group -lc -lgcc \ +-lgcc_eh --end-group +$ ./hello +hello world +``` + +### Attainable knowledge + +Computers have become amazingly powerful, and pleasantly user-friendly. Don't let that fool you into believing either of the two possible extremes: computers aren't as simple as mousetraps and light switches, but they also aren't beyond comprehension. You can learn about compiling code, about how to link, and compile for a different architecture. Once you know that, you can debug your code better. You can understand the code you download. You may even fix a bug or two. Or, in theory, you could build a better mousetrap. Or a CPU out of mousetraps. It's up to you. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/compiling-code + +作者:[Alan Smithee][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/alansmithee +[b]: https://github.com/lkxed +[2]: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters +[3]: https://opensource.com/article/22/9/python-interpreters-2022 +[4]: https://opensource.com/article/22/5/gnu-c-compiler From fec40b466688a2d5b254e0b880be5603f5f156f8 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:24:06 +0800 Subject: [PATCH 1577/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221014=20Can=20Kubernetes=20help=20solve=20automat?= =?UTF-8?q?ion=20challenges-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...netes help solve automation challenges-.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/tech/20221014 Can Kubernetes help solve automation challenges-.md diff --git a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md b/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md new file mode 100644 index 0000000000..8d7b5904be --- /dev/null +++ b/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md @@ -0,0 +1,69 @@ +[#]: subject: "Can Kubernetes help solve automation challenges?" +[#]: via: "https://opensource.com/article/22/10/kubernetes-solve-automation-challenges" +[#]: author: "Rom Adams https://opensource.com/users/romdalf" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Can Kubernetes help solve automation challenges? +====== +Automation at the organization level has been an elusive goal, but Kubernetes might be able to change all that. + +I started my automation journey when I adopted Gentoo Linux as my primary operating system in 2002. Twenty years later, automation is not yet a done deal. When I meet with customers and partners, they share automation wins within teams, but they also describe the challenges to achieving similar success at an organizational level. + +Most IT organizations have the ability to provision a virtual machine end to end, reducing what used to be a four-week lead time to just five minutes. That level of automation is itself a complex workflow, requiring networking (IP address management, DNS, proxy, networking zones, and so on), identity access management, [hypervisor][2], storage, backup, updating the operating system, applying the latest configuration files, monitoring, security and hardening, and compliance benchmarking. Wow! + +It's not easy to address the business need for high velocity, scaling, and on-demand automation. For instance, consider the classic webshop or an online government service to file tax returns. The workload has well-defined peaks that need to be absorbed. + +A common approach for handling such a load is having an oversized server farm, ready to be used by a specialized team of IT professionals, monitoring the seasonal influx of customers or citizens. Everybody wants a just-in-time deployment of an entire stack. They want infrastructure running workloads within the context of a hybrid cloud scenario, using the model of "build-consume-trash" to optimize costs while benefiting from infinite elasticity. + +In other words, everybody wants the utopian "cloud experience." + +### Can the cloud really deliver? + +All is not lost, thanks mainly to the way [Kubernetes][3] has been designed. The exponential adoption of Kubernetes fuels innovation, displacing standard legacy practices for managing platforms and applications. Kubernetes requires the use of Everything-as-Code (EaC) to define the desired state of all resources, from simple compute nodes to TLS certificates. Kubernetes compels the use of three major design constructs: + +* A standard interface to reduce integration friction between internal and external components +* An API-first and API-only approach to standardize the CRUD (Create, Read, Update, Delete) operations of all its components +* Use of [YAML][4] as a common language to define all desired states of these components in a simple and readable way + +These three key components are essentially the same requirements for choosing an automation platform, at least if you want to ease adoption by cross-functional teams. This also blurs the separation of duties between teams, helping to improve collaboration across silos, which is a good thing! + +As a matter of fact, customers and partners adopting Kubernetes are ramping up to a state of hyper-automation. Kubernetes organically drives teams to adopt multiple [DevOps foundations and practices][5]—like EaC, [version control with Git][6], peer reviews, [documentation as code][7]—and encourages cross-functional collaboration. These practices help mature a team's automation skills, and they help a team get a good start in GitOps and CI/CD pipelines dealing with both application lifecycle and infrastructure. + +### Making automation a reality + +You read that right! The entire stack for complex systems like a webshop or government reporting can be defined in clear, understandable, universal terms that can be executed on any on-prem or cloud provider. An autoscaler with custom metrics can be defined to trigger a just-in-time deployment of your desired stack to address the influx of customers or citizens during seasonal peaks. When metrics are back to normal, and cloud compute resources don't have a reason to exist anymore, you trash them and return to regular operations, with a set of core assets on-prem taking over the business until the next surge. + +### The chicken and the egg paradox + +Considering Kubernetes and cloud-native patterns, automation is a must. But it raises an important question: Can an organization adopt Kubernetes before addressing the automation strategy? + +It might seem that starting with Kubernetes could inspire better automation, but that's not a foregone conclusion. A tool is not an answer to the problem of skills, practices, and culture. However, a well-designed platform can be a catalyst for learning, change, and cross-functional collaboration within an IT organization. + +### Get started with Kubernetes + +Even if you feel you missed the automation train, don't be afraid to start with Kubernetes on an easy, uncomplicated stack. Embrace the simplicity of this fantastic orchestrator and iterate with more complex needs once you've [mastered the initial steps][8]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges + +作者:[Rom Adams][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/romdalf +[b]: https://github.com/lkxed +[2]: https://www.redhat.com/en/topics/virtualization/what-is-a-hypervisor?intcmp=7013a000002qLH8AAM +[3]: https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM +[4]: https://opensource.com/article/21/9/yaml-cheat-sheet +[5]: https://opensource.com/resources/devops +[6]: https://opensource.com/life/16/7/stumbling-git +[7]: https://opensource.com/article/21/3/devops-documentation +[8]: https://opensource.com/article/17/11/getting-started-kubernetes From b06a0b1897d035385b5454a290a1e649dc291ede Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:24:46 +0800 Subject: [PATCH 1578/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221014=20Install=20Gedit=20on=20Ubuntu=2022.10=20a?= =?UTF-8?q?nd=20Make=20it=20Default=20Text=20Editor.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...u 22.10 and Make it Default Text Editor.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md diff --git a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md new file mode 100644 index 0000000000..23d4fcec3b --- /dev/null +++ b/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md @@ -0,0 +1,111 @@ +[#]: subject: "Install Gedit on Ubuntu 22.10 and Make it Default Text Editor" +[#]: via: "https://itsfoss.com/install-gedit-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Install Gedit on Ubuntu 22.10 and Make it Default Text Editor +====== + +[GNOME has a brand new text editor][1] to replace the good old Gedit editor. + +While it was already available with GNOME 42, Ubuntu 22.04 relied on Gedit. + +This is changing in Ubuntu 22.10. GNOME Text Editor is the default here and Gedit is not even installed. + +![Searching for text editor only brings GNOME Text Editor][2] + +While the new editor is good enough, not everyone would like it. This is especially if you use Gedit extensively with additional plugins. + +If you are among those people, let me show you how to install Gedit on Ubuntu. I’ll also share how you can make it the default text editor. + +### Install Gedit on Ubuntu + +This is actually a no-brainer. While Gedit is not installed by default, it is still available in Ubuntu repositories. + +So, all you have to do is to use the apt command to install it: + +``` +sudo apt install gedit +``` + +Gedit is also available in the software center but it is the snap package. You could install that if you want. + +![Gedit is also available in Ubuntu’s Snap Store][3] + +#### Install Gedit Plugins (optional) + +By default, Gedit gives you the option to access a few plugins. You can enable or disable the plugins from the menu->preference->plugins. + +![Accessing plugins in Gedit][4] + +You should see the available plugins here. The installed or in-use plugins are checked. + +![See the available and installed plugins in Gedit][5] + +However, you can take the plugin selection to the next level by installing the gedit-plugins meta package. + +``` +sudo apt install gedit-plugins +``` + +This will give you access to additional plugins like bookmarks, bracket completion, Python console and more. + +![Additional Gedit plugins][6] + +**Tip**: If you notice that Gedit looks a bit out of place for the lack of around bottom corners, you can install a GNOME extension called [Round Bottom Corner][7]. This will force round bottom corners for all applications including Gedit. + +### Make Gedit the default text editor + +Alright! So you have installed Gedit but the text files still open in GNOME Text Editor with double click action. To open a file with Gedit, you need to right click and then select the ‘open with’ option. + +If you want Gedit to open text files all the time, you can set it as default. + +Right click on a text file and go with “open with” option. Select Gedit here and enable the “Always use for this file type” option from the bottom. + +![Set Gedit as the default text editor][8] + +### Remove Gedit + +Don’t feel Gedit is up to the mark? That’s rare, but I am not judging you. To remove Gedit from Ubuntu, use the following command: + +``` +sudo apt remove gedit +``` + +You may also try uninstalling it from the software center. + +### Conclusion + +GNOME Text Editor is the next-gen, created-from-scratch editor that blends well with the new GNOME. + +It’s good enough for simple text editing. However, Gedit has a plugin ecosystem that gives it more feature. + +For those who use it extensively for coding and other stuff, installing Gedit is still an option in Ubuntu. + +What about you? Will you stick with the default new text editor or would you go back to the good old Gedit? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-gedit-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/gnome-text-editor/ +[2]: https://itsfoss.com/wp-content/uploads/2022/10/text-editor-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/10/install-gedit-from-ubuntu-software-center.png +[4]: https://itsfoss.com/wp-content/uploads/2022/10/access-plugins-in-gedit.png +[5]: https://itsfoss.com/wp-content/uploads/2022/10/plugins-in-gedit.png +[6]: https://itsfoss.com/wp-content/uploads/2022/10/additional-plugins-gedit.png +[7]: https://extensions.gnome.org/extension/5237/rounded-window-corners/ +[8]: https://itsfoss.com/wp-content/uploads/2022/10/set-gedit-default.png From 52595b3e0795136e1eb14148f7ecfb0a3cde1e11 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:25:40 +0800 Subject: [PATCH 1579/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221014=2013=20Independent=20Linux=20Distros=20That?= =?UTF-8?q?=20are=20Built=20From=20Scratch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nux Distros That are Built From Scratch.md | 315 ++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md diff --git a/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md new file mode 100644 index 0000000000..0983918cc6 --- /dev/null +++ b/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md @@ -0,0 +1,315 @@ +[#]: subject: "13 Independent Linux Distros That are Built From Scratch" +[#]: via: "https://itsfoss.com/independent-linux-distros/" +[#]: author: "sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +13 Independent Linux Distros That are Built From Scratch +====== +There are hundreds of Linux distributions available. + +But most of them fall into these three categories: Debian, Red Hat (Fedora) and Arch Linux. + +Using a distribution based on Debian/Ubuntu, Red Hat/SUSE or Arch Linux has its advantages. They are popular and hence their package manager offers a huge range of software. + +However, some users prefer to use Linux distributions built from scratch and be independent of DEB/RPM packaging system. + +In this article, we will list some of the best Linux distributions developed independently. + +**Note:** Obviously, this list excludes popular options like Debian, Ubuntu, and Fedora, which are used as bases for creating new distros. Moreover, the distributions are in no particular order of ranking. + +### 1. NixOS + +![Image Credits: Distrowatch][1] + +Initially released in 2003, Nix OS is built on top of the Nix Package Manager. It provides two releases every year, usually scheduled in May and November. + +NixOS may not be a distribution directly geared to new and average users. However, its unique approach to [package management][2] attracts various kinds of users. + +Additionally, 32-bit support systems are also supported. + +##### Other Features: + +* Builds packages isolated +* Reliable upgrade with rollback feature +* Reproducible system configuration + +[NixOS][3] + +**Related**: [Advanced Linux Distributions for Expert Linux Users][4] + +### 2. Gentoo Linux + +![Image Credits: Distrowatch][5] + +Gentoo Linux is an independently developed distribution aimed mainly at system experts. It is built for users who want the freedom to customize, fine-tune and optimize the operating system to suit their requirements. + +Gentoo uses [Portage package management][6] that lets you create and install packages, often allowing you to optimize them for your hardware. **Chromium OS**, the open-source version of Chrome OS, uses Gentoo at its core. + +Not to forget, Gentoo is one of those [distributions that still support 32-bit architectures][7]. + +##### Other Features: + +* Incremental Updates +* Source-based approach to software management +* Concept of overlay repositories like GURU (Gentoo’s user repository), where users can add packages not yet provided by Gentoo + +[Gentoo Linux][8] + +### 3. Void Linux + +![Image Credits: Distrowatch][9] + +Void Linux is a [rolling release distribution][10] with its own X Binary Package System (XBPS) for installing and removing software. It was created by **Juan Romero Pardines**, a former NetBSD developer. + +It avoids systemd and instead uses runit as its init system. Furthermore, it gives you the option to use several [desktop environments][11]. + +##### Other Features: + +* Minimal system requirements +* Offers an official repository for non-free packages +* Support for Raspberry Pi +* Integration of OpenBSD’s LibreSSL software +* Support for musl C library +* 32-bit support + +[Void Linux][12] + +**Related:** [Not a Systemd Fan? Here are 13+ Systemd-Free Linux Distributions][13] + +### 4. Solus Linux + +![solus budgie 2022][14] + +Formerly EvolveOS, Solus Linux offers some exciting features while built from scratch. Solus features its own homegrown budgie desktop environment as its flagship version. + +Compared to other options, Solus Linux is one of the few independent distributions that new Linux users can use. It manages to be one of the [best Linux distributions][15] available. + +It uses eopkg package management with a semi-rolling release model. As per the developers, Solus is exclusively developed for personal computing purposes. + +##### Other Features: + +* Available in Budgie, Gnome, MATE, and KDE Plasma editions +* Variety of software out of the box, which reduces setup efforts + +[Solus Linux][16] + +### 5. Mageia + +![Image Credits: Distrowatch][17] + +Mageia started as a fork of Mandriva Linux back in 2010. It aims to be a stable and secure operating system for desktop and server usage. + +Mageia is a community-driven project supported by a non-profit organization and elected contributors. You will notice a major release every year. + +##### Other Features + +* Supports 32-bit system +* KDE Plasma, Gnome, and XFCE editions are available from the website +* Minimal system requirements + +[Mageia][18] + +**Related:** **[Linux Distros That Still Support 32-Bit Systems][19]** + +### 6. Clear Linux + +![Image Credits: Distrowatch][20] + +Clear Linux is a distribution by Intel, primarily designed with performance and cloud use cases in mind. + +One interesting thing about Clear Linux is the operating system upgrades as a whole rather than individual packages. So, even if you mess up with the system accidentally, it should boot correctly, performing a factory reset to let you set it up again. + +It is not geared toward personal use. But it can be a unique choice to try. + +##### Other Features: + +* Highly tuned for Intel platforms +* A strict separation between User and System files +* Constant vulnerability scanning + +[Clear Linux OS][21] + +### 7. PCLinuxOS + +![Image Credits: Distrowatch][22] + +PCLinuxOS is an x86_64 Linux distribution that uses APT-RPM packages. You can get KDE Plasma, Mate, and XFCE desktops, while it also offers several community editions featuring more desktops. + +Locally installed versions of PCLinuxOS utilize the APT package management system thanks to [Synaptic package manager][23]. You can also find rpm packages from its repositories. + +##### Other Features: + +* mylivecd script allows the user to take a ‘snapshot’ of their current hard drive installation (all settings, applications, documents, etc.) and compress it into an ISO CD/DVD/USB image. +* Additional support for over 85 languages. + +[PCLinuxOS][24] + +### 8. 4MLinux + +![4m linux 2022][25] + +[4MLinux][26] is a general-purpose Linux distribution with a strong focus on the following four **“M”**  of computing: + +* Maintenance (system rescue Live CD) +* Multimedia (full support for a huge number of image, audio and video formats) +* Miniserver (DNS, FTP, HTTP, MySQL, NFS, Proxy, SMTP, SSH, and Telnet) +* Mystery (meaning a collection of classic Linux games) + +It has a minimal system requirement and is available as a desktop and server version. + +##### Other Features + +* Support for large number of image, audio/video formats +* Small and general-purpose Linux distribution + +[4MLinux][27] + +### 9. Tiny Core Linux + +![Image Credits: Distrowatch][28] + +Tiny Core Linux focuses on providing a base system using BusyBox and FLTK. It is not a complete desktop. So, you do not expect it to run on every system. + +It represents only the core needed to boot into a very minimal X desktop, typically with wired internet access. + +The user gets great control over everything, but it may not be an easy out-of-the-box experience for new Linux users. + +##### Other Features + +* Designed to run from a RAM copy created at boot time +* By default, operates like a cloud/internet client +* Users can run appbrowser to browse repositories and download applications + +[Tiny Core Linux][29] + +### 10. Linux From Scratch + +![Image Credit: Reddit][30] + +[Reddit][31] + +Linux From Scratch is a way to install a working Linux system by building all its components manually. Once completed, it provides a compact, flexible and secure system and a greater understanding of the internal workings of the Linux-based operating systems. + +If you need to dive deep into how a Linux system works and explore its nuts and bolts, Linux From Scratch is the project you need to try. + +##### Other Features + +* Customised Linux system, entirely from scratch +* Extremely flexible +* Offers added security because of self compile from source + +[Linux From Scratch][32] + +### 11. Slackware + +![Image Credits: Distrowatch][33] + +Slackware is the oldest distribution that is still being maintained. Originally created in 1993, with Softlanding Linux System as base, Slackware later became the base for many Linux distributions. + +Slackware aims at producing the most UNIX-like Linux distribution while keeping simplicity and stability. + +##### Other Features + +* Available for 32-bit and 64-bit systems +* Extensive online documentation +* Can run on Pentium system to latest machines + +[Slackware][34] + +### 12. Alpine Linux + +![alpine linux xfce 2022][35] + +Alpine Linux is a community-developed operating system designed for routers, firewalls, VPNs, VoIP boxes, and servers. It began as a fork of the LEAF Project. + +Alpine Linux uses apk-tools package management, initially written as a shell script and later written in C programming language. This is a minimal Linux distribution, which still supports 32-bit systems and can be installed as a run-from-RAM operating system. + +##### Other Features: + +* Provides a minimal container image of just 5 MB in size +* 2-year support for the main repository and support until the next stable release for the community repository +* Made around musl libc and Busybox with resource-efficient containers + +[Alpine Linux][36] + +### 13. KaOS + +![Image Credits: Distrowatch][37] + +KaOS is a Linux distribution built from scratch and inspired by Arch Linux. It uses [pacman for package management][38]. It is built with the philosophy “*One Desktop Environment (KDE Plasma), One Toolkit (Qt), One Architecture (x86_64)*“. + +It has limited repositories, but still, it offers plenty of tools for a regular user. + +##### Other Features: + +* Most up-to-date Plasma desktop +* Tightly integrated rolling and transparent distribution for the modern desktop + +[KaOS][39] + +#### Wrapping Up + +If you need a unique experience, these independent Linux distributions should serve the purpose. + +However, if you want to replace it with a mainstream distribution like Ubuntu for your desktop…You might want to think twice, considering most of the options (if not all) above are not ideal options for day-to-day desktop usage. + +But then again, if you have a fair share of experience with Linux distributions, you can undoubtedly take up the task for an adventure! + +*If you were to try one of these indie distros, which one would it be? Share with us in the comments.* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/independent-linux-distros/ + +作者:[sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/10/nixos-2022.png +[2]: https://itsfoss.com/package-manager/ +[3]: https://nixos.org/ +[4]: https://itsfoss.com/advanced-linux-distros/ +[5]: https://itsfoss.com/wp-content/uploads/2022/08/gentoo-linux-plasma.jpg +[6]: https://wiki.gentoo.org/wiki/Portage +[7]: https://itsfoss.com/32-bit-linux-distributions/ +[8]: https://www.gentoo.org/ +[9]: https://itsfoss.com/wp-content/uploads/2022/08/void-linux.jpg +[10]: https://itsfoss.com/rolling-release/ +[11]: https://itsfoss.com/best-linux-desktop-environments/ +[12]: https://voidlinux.org/ +[13]: https://itsfoss.com/systemd-free-distros/ +[14]: https://itsfoss.com/wp-content/uploads/2022/10/solus-budgie-2022.jpg +[15]: https://itsfoss.com/best-linux-distributions/ +[16]: https://getsol.us/home/ +[17]: https://itsfoss.com/wp-content/uploads/2022/08/mageia-1.jpg +[18]: https://www.mageia.org/en/ +[19]: https://itsfoss.com/32-bit-linux-distributions/ +[20]: https://itsfoss.com/wp-content/uploads/2022/08/clear-linux-desktop.png +[21]: https://clearlinux.org/ +[22]: https://itsfoss.com/wp-content/uploads/2022/08/pclinuxos.png +[23]: https://itsfoss.com/synaptic-package-manager/ +[24]: https://www.pclinuxos.com/ +[25]: https://itsfoss.com/wp-content/uploads/2022/10/4m-linux-2022.jpg +[26]: https://itsfoss.com/4mlinux-review/ +[27]: http://4mlinux.com/ +[28]: https://itsfoss.com/wp-content/uploads/2022/03/tinycore.jpg +[29]: http://www.tinycorelinux.net/ +[30]: https://itsfoss.com/wp-content/uploads/2022/08/enable-aur-e1659974408774.png +[31]: https://www.reddit.com/r/linuxmasterrace/comments/udi7ts/decided_to_try_lfs_in_a_vm_started_about_a_week/ +[32]: https://www.linuxfromscratch.org/ +[33]: https://itsfoss.com/wp-content/uploads/2022/10/slackware-scaled.jpg +[34]: http://www.slackware.com/ +[35]: https://itsfoss.com/wp-content/uploads/2022/10/alpine-linux-xfce-2022.png +[36]: https://www.alpinelinux.org/ +[37]: https://itsfoss.com/wp-content/uploads/2022/08/kaos-desktop.png +[38]: https://itsfoss.com/pacman-command/ +[39]: https://kaosx.us/ From a60864ab1d04c7be2725e7ee11cc9eff0873b30a Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:26:44 +0800 Subject: [PATCH 1580/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221010=2014=20Best=20Open=20Source=20WYSIWYG=20HTM?= =?UTF-8?q?L=20Editors.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4 Best Open Source WYSIWYG HTML Editors.md | 382 ++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100644 sources/tech/20221010 14 Best Open Source WYSIWYG HTML Editors.md diff --git a/sources/tech/20221010 14 Best Open Source WYSIWYG HTML Editors.md b/sources/tech/20221010 14 Best Open Source WYSIWYG HTML Editors.md new file mode 100644 index 0000000000..374e949b85 --- /dev/null +++ b/sources/tech/20221010 14 Best Open Source WYSIWYG HTML Editors.md @@ -0,0 +1,382 @@ +[#]: subject: "14 Best Open Source WYSIWYG HTML Editors" +[#]: via: "https://itsfoss.com/open-source-wysiwyg-editors/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +14 Best Open Source WYSIWYG HTML Editors +====== +WYSIWYG (What You See Is What You Get) editors are self-explanatory. Whatever you see when editing is what you, a reader/user see. + +Whether you want to build your content management system, or aim to provide an editor to the end-user of your application, an open-source WYSIWYG editor will help provide a secure, modern, and scalable experience. Of course, you also get the technical freedom to customize open-source WYSIWYG editors to meet your requirements. + +Here, we look at some of the best open-source WYSIWYG editors. + +### Things to Look For When Choosing a WYSIWYG HTML Editor + +![best open source wysiwyg editors][1] + +A document editor must be fast for some users and loaded with features. + +Similarly, what are some of the key highlights that you should look at when selecting an HTML editor? Let me give you some pointers here: + +* Is the editor lightweight? +* Does it have SEO-friendly features? +* How well does it let you collaborate? +* Does it offer auto-save functionality? +* Can you check spelling and grammar with it? +* How well does it handle images/galleries? + +When selecting an open-source HTML editor for your app or website, you should look for these essential aspects. + +Keeping these in mind, let me mention some of the best options to try. + +**Note:** *The editors are in no particular order of ranking. You may choose the best for your use case.* + +Table of Contents + +* Things to Look For When Choosing a WYSIWYG HTML Editor +* 1. CKEditor +* 2. Froala +* 3. TinyMCE +* 4. Quilljs +* 5. Aloha Editor +* 6. Editor.js +* 7. Trix +* 8. Summernote +* 9. ContentTools +* 10. Toast UI Editor +* 11. Jodit +* 12. SCEditor +* 13. SunEditor +* 14. ProseMirror +* Picking The Best Open-Source WYSIWYG Editor + +### 1. CKEditor + +![ck5 editor][2] + +#### Key Features: + +* Autosave. +* Drag and drop support. +* Responsive images. +* Supports pasting from Word/GDocs while preserving the formatting. +* Autoformatting, HTML/Markdown support, Font Style customization. +* Image alt text. +* Real-time Collaboration (Premium only). +* Revision History (Premium only). +* Spell and grammar check (Premium only). + +CKEditor 5 is a feature-rich and open-source WYSIWYG editing solution with great flexibility. The user interface looks modern. Hence, you may expect a modern user experience. + +It offers a free edition and a premium plan with extra features. CKEditor is a popular option among enterprises and several publications with a custom Content Management System (CMS), for which they provide technical support and custom deployment options. + +CKeditor’s free edition should provide basic editing capabilities if you do not need an enterprise-grade offering. Check out its [GitHub page][3] to explore. + +[CKEditor 5][4] + +### 2. Froala + +![froala][5] + +#### Key Features: + +* Simple user interface and Responsive Design. +* Easy to integrate. +* HTML/Markdown support. +* Theme/Custom style support. +* Lightweight. +* Image Manager and alt text. +* Autosave. + +Froala is an exciting web editor that you can easily integrate with your existing [open-source CMS][6] like WordPress. + +It provides a simple user interface with the ability to extend its functionality through default plugins. You can use it as a simple editor or add more tools to the interface for a powerful editing experience. + +You can self-host it, but to access its mobile apps and premium support, you must opt for one of the paid plans. Head to its [GitHub page][7] to explore more. + +[Froala][8] + +### 3. TinyMCE + +![tinymce editor][9] + +#### Key Features: + +* Autosave. +* Lightweight. +* Emoticons. +* Manage images. +* Preview. +* Color picker tool. + +TinyMCE is an incredibly popular option for users looking to use a solid editor with several integration options. + +TinyMCE was the editor powering WordPress with proven flexibility and ease of use for all users. Unless you want real-time collaboration and cloud deployments at your disposal, TinyMCE’s free self-hosted edition should serve you well. + +It is a lightweight option with essential features to work with. Check out more about it on its [GitHub page][10]. + +[TinyMCE][11] + +### 4. Quilljs + +![quilljs][12] + +#### Key Features: + +* Lightweight. +* Extend functionalities using extensions. +* Simple and easy to use. + +Do you like Slack’s in-app editor or LinkedIn’s web editor? Quilljs is what they use to offer that experience. + +If you are looking for a polished free, open-source WYSIWYG editor with no premium frills, Quill (or Quilljs) should be the perfect text editor. It is a lightweight editor with a minimal user interface that allows you to customize or add your extensions to scale their functionalities per your requirements. + +To explore its technical details, head to its [GitHub page][13]. + +[Quilljs][14] + +### 5. Aloha Editor + +![A Video from YouTube][15] + +#### Key Features: + +* Fast editor. +* Front-end editing. +* Supports clean copy/paste from Word. +* Easy integration. +* Plugin support. +* Customization for look and feel. + +Aloha Editor is a simple and fast HTML5 WYSIWYG editor that lets you edit the content on the front end. + +You can download and use it for free. But, if you need professional help, you can contact them for paid options. Its [GitHub page][16] should be the perfect place to explore its technical details. + +[Aloha Editor][17] + +### 6. Editor.js + +![editor js 1][18] + +#### Key Features: + +* Block-style editing. +* Completely free and open-source. +* Plugin support. +* Collaborative editing (in roadmap). + +Editor.js gives you the perks of a block-style editor. The headings, paragraphs, and other items are all separate blocks, which makes them editable while not affecting the rest of the content. + +It is an entirely free and open-source project with no premium extras available for upgrade. However, there are several plugins to extend the features, and you can also explore its [GitHub page][19] for more info. + +[Editor.js][20] + +### 7. Trix + +![trix editor][21] + +**Note:** *This project hasn’t seen any new activity for more than a year when writing.* + +Trix is an open-source project by the creators of Ruby on Rails. + +If you want something different for a change, with the basic functionalities of a web editor, Trix can be a pick. The project describes that it is built for the modern web. + +Trix is not a popular option, but it is a respectable project that lets tinkerers try something different for their website or app. You can explore more on its [GitHub page][22]. + +[Trix][23] + +### 8. Summernote + +![summernote][24] + +#### Key Features: + +* Lightweight. +* Simple user interface. +* Plugins supported. + +Want something similar to TincyMCE but simpler? Summernote can be a good choice. + +It provides the look and feel of a classic web editor without any fancy modern UX elements. The focus of this editor is to offer a simple and fast experience along with the ability to add plugins and connectors. + +You also get to change the themes according to Bootstraps used. Yes, an editor on Bootstrap. Explore more about it on its [GitHub page][25]. + +[Summernote][26] + +### 9. ContentTools + +![content tools][27] + +#### Key Features: + +* Easy-to-use. +* Completely free. +* Lightweight. + +Want to edit HTML pages from the front end? Well, ContentTools lets you do that pretty quickly. + +While it can be integrated with a CMS, it may not be a preferred pick for the job. You can take a look around at its [GitHub page][28] as well. + +[ContentTools][29] + +### 10. Toast UI Editor + +![toast ui editor][30] + +#### Key Features: + +* Specially focused on Markdown editing/pages. +* Plugins supported. +* Live Preview. + +Toast UI editor will be a perfect fit if you deal with Markdown documents to publish web pages. + +It offers a live preview and a few essential options for edits. You also get a dark theme and plugin support for extended functions. + +While it does provide useful features, it may not be a feature-rich editor for all. Learn more about it on its [GitHub page][31]. + +[Toast UI Editor][32] + +### 11. Jodit + +![jodit screenshot][33] + +#### Key Features: + +* Lightweight. +* TypeScript based. +* Plugin support. + +Jodit is a TypeScript-based WYSIWYG editor that makes no use of additional libraries. + +It is a simple and helpful editor with all the essential editing features, including drag-and-drop support and a plugin system to extend functionalities. + +The user experience is much similar to WordPress’s classic editor or TinyMCE. You can opt for its pro version to access additional plugins and technical support. Head to its [GitHub page][34] to explore technical details. + +[Jodit][35] + +### 12. SCEditor + +![sceditor][36] + +Key Features: + +* Simple and easy to use. +* Completely free. +* Lightweight. +* Plugins support. + +SCEditor is yet another simple open-source WYSIWYG editor. It may not be popular enough, but it has been actively maintained for more than six years since publishing. + +By default, it does not feature drag-and-drop support, but you can add it using a plugin. There is scope for using multiple themes and customizing the icons as well. Learn more about it on its [GitHub page][37]. + +[SCEditor][38] + +### 13. SunEditor + +![suneditor][39] + +#### Key Features: + +* Feature-rich. +* Completely free. +* Plugin supported. + +Like the last one, SunEditor is not popular enough but works well with its simple and feature-rich offering. + +It is based on pure JavaScript with no dependencies. You should be able to copy from Microsoft Word and Excel without issues. + +Additionally, one can use KaTex (math plugin) as well. It gives you complete freedom with custom plugins as well. There are no premium extras here. Head to its [GitHub page][40] to check out its recent releases. + +### 14. ProseMirror + +![prosemirror][41] + +#### Key Features: + +* Collaboration capabilities. +* Modular. +* Simple. +* Plugins support. + +ProseMirror is an exciting choice for free for users who want collaborative editing capabilities. Most of the WYSIWYG editors offer the collaboration feature for a premium. But here, you can work with others on the same document in real-time (for free). + +It provides a modular architecture that makes maintenance and development more accessible compared to others. + +Explore more about it on its [GitHub page][42]. + +[ProseMirror][43] + +### Picking The Best Open-Source WYSIWYG Editor + +Depending on the type of use case, it is easy to pick a WYSIWYG, an open-source editor. + +If you want to focus on the out-of-the-box experience and reduce efforts to maintain it, any option that provides premium technical support should be a good choice. + +If you are more of a DIY user, you should do anything that serves your requirements. + +Note that a popular option does not mean that it is a flawless editor for your requirements. Sometimes a more straightforward option is a better solution than a feature-rich editor. + +*So, what would be your favorite open-source HTML editor?* *Let me know in the comments below.* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/open-source-wysiwyg-editors/ + +作者:[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/wp-content/uploads/2022/10/best-open-source-wysiwyg-editors.png +[2]: https://itsfoss.com/wp-content/uploads/2022/10/ck5-editor.webp +[3]: https://github.com/ckeditor/ckeditor5 +[4]: https://ckeditor.com/ckeditor-5/ +[5]: https://itsfoss.com/wp-content/uploads/2022/10/froala.jpg +[6]: https://itsfoss.com/open-source-cms/ +[7]: https://github.com/froala +[8]: https://froala.com/wysiwyg-editor/ +[9]: https://itsfoss.com/wp-content/uploads/2022/10/tinymce-editor.jpg +[10]: https://github.com/tinymce/tinymce +[11]: https://www.tiny.cloud/ +[12]: https://itsfoss.com/wp-content/uploads/2022/10/quilljs.jpg +[13]: https://github.com/quilljs/quill +[14]: https://quilljs.com/ +[15]: https://youtu.be/w_oXaW5Rrpc +[16]: https://github.com/alohaeditor/Aloha-Editor +[17]: https://www.alohaeditor.org/ +[18]: https://itsfoss.com/wp-content/uploads/2022/10/editor-js-1.jpg +[19]: https://github.com/codex-team/editor.js +[20]: https://editorjs.io/ +[21]: https://itsfoss.com/wp-content/uploads/2022/10/trix-editor.jpg +[22]: https://github.com/basecamp/trix +[23]: https://trix-editor.org/ +[24]: https://itsfoss.com/wp-content/uploads/2022/10/summernote.jpg +[25]: https://github.com/summernote/summernote/ +[26]: https://summernote.org/ +[27]: https://itsfoss.com/wp-content/uploads/2022/10/content-tools.jpg +[28]: https://github.com/GetmeUK/ContentTools +[29]: https://getcontenttools.com/ +[30]: https://itsfoss.com/wp-content/uploads/2022/10/toast-ui-editor.jpg +[31]: https://github.com/nhn/tui.editor +[32]: https://ui.toast.com/tui-editor +[33]: https://itsfoss.com/wp-content/uploads/2022/10/jodit-screenshot.jpg +[34]: https://github.com/xdan/jodit +[35]: https://xdsoft.net/jodit/ +[36]: https://itsfoss.com/wp-content/uploads/2022/10/sceditor.jpg +[37]: https://github.com/samclarke/SCEditor +[38]: https://www.sceditor.com/ +[39]: https://itsfoss.com/wp-content/uploads/2022/10/suneditor.png +[40]: https://github.com/JiHong88/SunEditor +[41]: https://itsfoss.com/wp-content/uploads/2022/10/prosemirror.jpg +[42]: https://github.com/ProseMirror/prosemirror +[43]: https://prosemirror.net/ From 11df631ac665d68a39b8719057b2023481f6e255 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 16 Oct 2022 10:27:43 +0800 Subject: [PATCH 1581/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221014=20Celebrating=20KDE-s=2026th=20Birthday=20W?= =?UTF-8?q?ith=20Some=20Inspiring=20Facts=20From=20Its=20Glorious=20Past!.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Inspiring Facts From Its Glorious Past!.md | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md diff --git a/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md b/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md new file mode 100644 index 0000000000..552185aee7 --- /dev/null +++ b/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md @@ -0,0 +1,193 @@ +[#]: subject: "Celebrating KDE’s 26th Birthday With Some Inspiring Facts From Its Glorious Past!" +[#]: via: "https://itsfoss.com/kde-facts-trivia/" +[#]: author: "Avimanyu Bandyopadhyay https://www.gizmoquest.com" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Celebrating KDE’s 26th Birthday With Some Inspiring Facts From Its Glorious Past! +====== + +Wishing a Very Happy Birthday to **KDE**! + +Let us celebrate this moment by looking back on its glorious history with some inspiring facts on this legendary and much-loved Desktop Environment! + +![kde birthday][1] + +### KDE’s Origin + +**26 years ago**, [Matthias Ettrich][2] (a German Computer Scientist currently working at [HERE][3]) founded KDE. + +![matthias 2950607241][4] + +When Matthias was a student at the [Eberhard Karls University of Tübingen][5], he was not satisfied as a [Common Desktop Environment (CDE)][6] user. + +CDE is a desktop environment for Unix. + +However, he wanted an interface that was more comfortable, simpler, and easy to use, with a better look and feel. + +So, in 1996, Matthias Ettrich announced the **Kool Desktop Environment (KDE)**, a GUI (graphical user interface) for Unix systems, built with Qt and C ++. + +Note that the full form of KDE was an innocent pun intended to CDE at the time. You do not usually say it as “Kool Desktop Environment”, just KDE as of now. You can read the [original announcement post][7] to get a dose of nostalgia. + +**Trivia**: The official mascot of KDE is Konqi who has a girlfriend named Katie. Previously there used to be a wizard named [Kandalf][8] but was later replaced by Konqi because many people loved and preferred the mascot to be this charming and friendly dragon! + +![Konqi is KDE's mascot. Katie is his girlfriend and mascot of KDE women's project.][9] + +[Konqi][10] + +[Katie][11] + +And, here’s how it looked like with KDE mascot: + +![Screenshot of earlier version of KDE desktop][12] + +### 13 Interesting and Inspiring Facts on KDE + +We’ve looked back into some interesting yet inspiring events that took place over the last 26 years of the KDE project: + +#### 1. Early Development Events + +15 developers met in Arnsberg, Germany, in 1997, to work on the KDE project and discuss its future. This event came to be known as [KDE One][13] followed by [KDE Two][14] and [KDE Three][15] and so on in the later years. They even had [one][16] for a beta version. + +#### 2. The KDE Free Qt Foundation Agreement + +The foundation agreement for the [KDE Free Qt Foundation][17] was signed by [KDE e.V.][18] and [Trolltech][19], then owner of the Qt Foundation who [ensured the permanent availability][20] of Qt as free software. + +#### 3. First Stable Version + +![kde 1][21] + +The [first stable version][22] of KDE was released in **1998**, in addition to highlighting an application development framework, the [KOM/OpenParts][23], and an office suite preview. You can check out the [KDE 1.x Screenshots][24]. + +#### 4. The KDE Women Initiative + +The community women’s group, [KDE Women][25], was created and announced in March 2001 with the primary goal to increase the number of women in free software communities, particularly in KDE. + +#### 5. 1 Million Commits + +The community [reached 1 million commits][26] within a span of only 19 months, from 500,000 in January 2006 and 750,000 in December 2007, with the launch of KDE 4 at the same time. + +#### 6. Release Candidate of Development Platform Announced + +A [release candidate][27] of KDE’s development platform consisting of basic libraries and tools to develop KDE applications was announced on October 2007. + +#### 7. First KDE & Qt event in India + +The [first conference][28] of the KDE and Qt community in India happened in Bengaluru in March 2011 that became an annual event henceforth. + +#### 8. GCompris and KDE + +In **December 2014**, the educational software suite [GCompris joined][29] the [project incubator of KDE community][30] (We have [previously][31] discussed GCompris, which is bundled with Escuelas Linux, a comprehensive educational distro for teachers and students). + +#### 9. KDE Slimbooks + +In **2016**, the KDE community partnered with a Spanish laptop retailer and [announced the launch of the KDE Slimbook][32], an ultrabook with KDE Plasma and KDE Applications pre-installed. Slimbook offers a pre-installed version of [KDE Neon][33] and [can be purchased from their website][34]. + +#### 10. Transition to GitLab + +In **2019**, KDE [migrated][35] from Phabricator to GitLab to enhance the development process and let new contributors easy access to the workflow. However, KDE still uses bugzilla for tracking bugs. + +#### 11. Adopts Decentralized Matrix Protocol + +KDE added Matrix bridge to the IRC channels and powered up its native chat clients using the open-source decentralized Matrix protocol in **2019**. + +#### 12. KDE PinePhone + +KDE developers teamed up with [PINE64][36] in **2020** to introduce a community edition PinePhone powered by KDE. + +#### 13. Valve Picks KDE for Steam Deck + +Steam Deck is undoubtedly a super trending Linux gaming console right now. And, Valve chose KDE as its desktop environment to make it work in **2021**. + +### Today, KDE is Powered by Three Great Projects + +#### KDE Plasma + +Previously called Plasma Workspaces, KDE Plasma facilitates a unified workspace environment for running and managing applications on various devices like desktops, netbooks, tablets or even [smartphones][37]. + +Currently, [KDE Plasma 5.26][38] is the most recent version and was released some days ago. The KDE Plasma 5 project is the fifth generation of the desktop environment and is the successor to KDE Plasma 4. + +#### KDE Applications + +KDE Applications are a bundled set of applications and libraries designed by the KDE community. Most of these applications are cross-platform, though primarily made for Linux. + +A very [nice][39] project in this category is a music player called Elisa focused on an optimised integration with Plasma. + +#### KDE Development Platform + +The KDE Development Platform is what significantly empowers the above two initiatives, and is a collection of libraries and software frameworks released by KDE to promote better collaboration among the community to develop KDE software. + +**Personal Note**: It was an honour covering this article on KDE’s Birthday and I would like to take this opportunity to brief some of my personal favourite KDE based apps and distros that I have extensively used in the past and continue to. + +Check out the entire [timeline][40] in detail here for a more comprehensive outline or you can take a look at this 19-year visual changes in this interesting video: + +![A Video from YouTube][41] + +### Best KDE-Based Distributions + +If you have heard all the good things about KDE, you should try out the distributions powered by KDE. + +We have a [list of Linux distributions based on KDE][42], if you are curious. + +*Hope you liked our favourite moments in KDE history on their 26th Anniversary! Please do write about any thoughts you might have about any of your memorable experiences with KDE in the comments below.* + +This article was originally published in 2018, and has been edited to reflect latest information. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/kde-facts-trivia/ + +作者:[Avimanyu Bandyopadhyay][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.gizmoquest.com +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/10/kde-birthday.png +[2]: https://en.wikipedia.org/wiki/Matthias_Ettrich +[3]: https://here.com/ +[4]: https://itsfoss.com/wp-content/uploads/2022/10/matthias-2950607241.jpg +[5]: https://www.uni-tuebingen.de/en +[6]: https://en.wikipedia.org/wiki/Common_Desktop_Environment +[7]: https://kde.org/announcements/announcement/ +[8]: https://en.wikipedia.org/wiki/Konqi#Kandalf +[9]: https://itsfoss.com/wp-content/uploads/2018/10/Konqi-and-Katie.jpg +[10]: https://en.wikipedia.org/wiki/Konqi +[11]: https://community.kde.org/Katie +[12]: https://itsfoss.com/wp-content/uploads/2018/10/Konqi-from-the-early-days-who-replaced-Kandalf-right.jpg +[13]: https://community.kde.org/KDE_Project_History/KDE_One_(Developer_Meeting) +[14]: https://community.kde.org/KDE_Project_History/KDE_Two_(Developer_Meeting) +[15]: https://community.kde.org/KDE_Project_History/KDE_Three_(Developer_Meeting) +[16]: https://community.kde.org/KDE_Project_History/KDE_Three_Beta_(Developer_Meeting) +[17]: https://www.kde.org/community/whatiskde/kdefreeqtfoundation.php +[18]: https://www.kde.org/announcements/fsfe-associate-member.php +[19]: https://dot.kde.org/2007/02/28/trolltech-becomes-first-corporate-patron-kde +[20]: https://dot.kde.org/2016/01/13/qt-guaranteed-stay-free-and-open-%E2%80%93-legal-update +[21]: https://itsfoss.com/wp-content/uploads/2022/10/kde-1.jpg +[22]: https://www.kde.org/announcements/announce-1.0.php +[23]: https://www.kde.org/kdeslides/Usenix1998/sld016.htm +[24]: https://czechia.kde.org/screenshots/kde1shots.php +[25]: https://community.kde.org/KDE_Women +[26]: https://dot.kde.org/2009/07/20/kde-reaches-1000000-commits-its-subversion-repository +[27]: https://www.kde.org/announcements/announce-4.0-platform-rc1.php +[28]: https://dot.kde.org/2010/12/28/confkdein-first-kde-conference-india +[29]: https://dot.kde.org/2014/12/11/gcompris-joins-kde-incubator-and-launches-fundraiser +[30]: https://community.kde.org/Incubator +[31]: https://itsfoss.com/escuelas-linux/ +[32]: https://dot.kde.org/2017/01/26/kde-and-slimbook-release-laptop-kde-fans +[33]: https://en.wikipedia.org/wiki/KDE_neon +[34]: https://slimbook.es/en/store/slimbook-kde +[35]: https://pointieststick.com/2020/05/23/this-week-in-kde-we-have-migrated-to-gitlab/ +[36]: https://www.pine64.org +[37]: https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp +[38]: https://news.itsfoss.com/kde-plasma-5-26-release/ +[39]: https://mgallienkde.wordpress.com/2018/10/09/0-3-release-of-elisa-music-player/ +[40]: https://timeline.kde.org/ +[41]: https://youtu.be/1UG4lQOMBC4 +[42]: https://itsfoss.com/best-kde-distributions/ From 0ee025b82f1d90c9c36b5ba7f6a63d9048f3fc00 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 16 Oct 2022 11:14:21 +0800 Subject: [PATCH 1582/3123] RP @geekpi https://linux.cn/article-15145-1.html --- ...RPM Fusion Repo in Fedora, CentOS, RHEL.md | 54 +++++++++++++------ 1 file changed, 39 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md (80%) diff --git a/translated/tech/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md b/published/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md similarity index 80% rename from translated/tech/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md rename to published/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md index 4041a99c4e..08529949f5 100644 --- a/translated/tech/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md +++ b/published/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md @@ -3,29 +3,30 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15145-1.html" 如何在 Fedora、CentOS、RHEL 中启用 RPM Fusion 仓库 ====== -本指南解释了在 Fedora Linux 发行版中启用第三方软件仓库 RPM Fusion 的步骤。 -[RPM Fusion][1] 软件仓库是一个社区维护的软件仓库,它为 Fedora Linux 提供额外的软件包,这些软件包不是由 Fedora 官方团队分发,例如 DVD 播放、媒体播放、来自 GNOME 和 KDE 的软件等。这是因为许可、其他法律原因和特定国家/地区的软件规范。 +> 本指南解释了在 Fedora Linux 发行版中启用第三方软件仓库 RPM Fusion 的步骤。 -RPM Fusion 为 Red Hat Enterprise Linux 以及 Fedora 提供了 .rpm 包。 +[RPM Fusion][1] 软件仓库是一个社区维护的软件仓库,它为 Fedora Linux 提供额外的软件包,这些软件包不是由 Fedora 官方团队分发,例如 DVD 播放、媒体播放、来自 GNOME 和 KDE 的软件等。这是因为许可证、其他法律原因和特定国家/地区的软件规范而导致的。 + +RPM Fusion 为 Red Hat Enterprise Linux(RHEL)以及 Fedora 提供了 .rpm 包。 本指南介绍了在 Fedora Linux 中启用 RPM Fusion 仓库所需的步骤。本指南适用于所有 Fedora 发行版本。 这在所有当前支持的 Fedora 版本(35、36 和 37)中进行了测试。 -![RPM Fusion][2] +![](https://img.linux.net.cn/data/attachment/album/202210/16/111338jjr0eh5cjgq017n5.jpg) ### 如何在 Fedora Linux、RHEL、CentOS 中启用 RPM Fusion 仓库 RPM Fusion 有两种版本的仓库:自由和非自由。 -顾名思义,自由版包含软件包的自由版本,非自由版包含封闭源代码和“非商业”开源软件的编译软件包。 +顾名思义,自由版包含软件包的自由版本,非自由版包含封闭源代码的编译软件包和“非商业”开源软件。 在继续之前,首先检查你是否安装了 RPM fusion。打开终端并运行以下命令。 @@ -33,7 +34,6 @@ RPM Fusion 有两种版本的仓库:自由和非自由。 dnf repolist | grep rpmfusion ``` - 如果安装了 RPM,你应该会看到如下所示的消息。就不用下面的步骤。如果未安装,你可以继续执行以下步骤。 ![RPM Fusion 已安装][3] @@ -42,69 +42,93 @@ dnf repolist | grep rpmfusion #### Fedora +自由版: + ``` sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm ``` +非自由版: + ``` sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm ``` -#### 带 rpm-ostree 的 Silverblue +#### 在 Silverblue 上使用 rpm-ostree + +自由版: ``` sudo rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm ``` +非自由版: + ``` sudo rpm-ostree install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm ``` #### RHEL 8 +先安装 EPEL: + ``` sudo dnf install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm ``` +自由版: + ``` sudo dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm ``` +非自由版: + ``` sudo dnf install --nogpgcheckhttps://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm ``` +开发相关软件包: + ``` sudo subscription-manager repos --enable "codeready-builder-for-rhel-8-$(uname -m)-rpms" ``` #### CentOS 8 +先安装 EPEL: + ``` sudo dnf install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm ``` +自由版: + ``` sudo dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm ``` +非自由版: + ``` sudo dnf install --nogpgcheckhttps://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm ``` +启用 PowerTools: + ``` sudo dnf config-manager --enable PowerTools ``` ### 附加说明 -* RPM Fusion 还提供帮助用户安装来自 GNOME 软件或 KDE Discover 的软件包。要在 Fedora 中启用它,请运行以下命令。 +RPM Fusion 还可以帮助用户安装来自 GNOME 软件或 KDE Discover 的软件包。要在 Fedora 中启用它,请运行以下命令: ``` sudo dnf groupupdate core ``` -* 你还可以通过以下命令启用 RPM Fusion 来使用 gstreamer 和其他多媒体播放包来播放媒体文件。 +你还可以通过以下命令启用 RPM Fusion 来使用 gstreamer 和其他多媒体播放包来播放媒体文件。 ``` sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin @@ -114,13 +138,13 @@ sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=Pack sudo dnf groupupdate sound-and-video ``` -* 启用 RPM Fusion 以使用 libdvdcss 播放 DVD。 +启用 RPM Fusion 以使用 libdvdcss 播放 DVD。 ``` sudo dnf install rpmfusion-free-release-taintedsudo dnf install libdvdcss ``` -* 通过以下命令启用 RPM Fusion 以启用非 FLOSS 硬件包。 +通过以下命令启用 RPM Fusion 以启用非 FLOSS 硬件包。 ``` sudo dnf install rpmfusion-nonfree-release-taintedsudo dnf install *-firmware @@ -169,7 +193,7 @@ via: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ 作者:[Arindam][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/) 荣誉推出 From 5b20980eda26fe9e0a6ed246f24800f2508ca009 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 16 Oct 2022 20:04:03 +0800 Subject: [PATCH 1583/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ress In Linux And Unix From Commandline.md | 323 ----------------- ...ress In Linux And Unix From Commandline.md | 327 ++++++++++++++++++ 2 files changed, 327 insertions(+), 323 deletions(-) delete mode 100644 sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md create mode 100644 translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md diff --git a/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md b/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md deleted file mode 100644 index 78d23d6bca..0000000000 --- a/sources/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md +++ /dev/null @@ -1,323 +0,0 @@ -[#]: subject: "How To Find Default Gateway IP Address In Linux And Unix From Commandline" -[#]: via: "https://ostechnix.com/find-default-gateway-linux/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How To Find Default Gateway IP Address In Linux And Unix From Commandline -====== -5 Ways To Find Gateway Or Router IP Address In Linux - -A **gateway** is a node or a router that allows two or more hosts with different IP addresses to communicate with each other when connected to the same router. Without gateway, devices connected on the same router won’t be able to communicate with each other. To put this another way, the gateway acts as an access point to pass network data from a local network to a remote network. In this guide, we will see all the possible ways to **find default gateway in Linux** and **Unix** from commandline. - -#### Contents - -1. Find Default Gateway In Linux 2. 1. Find Default Gateway Using ip Command 3. 2. Display Default Gateway IP Address Using route Command 4. 3. View Gateway IP Address Using netstat Command 5. 4. Print Default Gateway IP Address Or Router IP Address Using routel Command 6. 5. Find Gateway From Ethernet Configuration Files -7. Conclusion - -### Find Default Gateway In Linux - -There are various commandline tools are available to view the gateway IP address in Linux. The most commonly used tools are: **ip**, **ss**, and **netcat**. We will see how check the default gateway using each tool with examples. - -#### 1. Find Default Gateway Using ip Command - -The **ip** command is used to show and manipulate routing, network devices, interfaces and tunnels in Linux. - -To find the default gateway or Router IP address, simply run: - -``` -$ ip route -``` - -Or, - -``` -$ ip r -``` - -Or, - -``` -$ ip route show -``` - -**Sample output:** - -``` -default via 192.168.1.101 dev eth0 proto static metric 100 -172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown -192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20 metric 100 -``` - -Did you see the line **"default via 192.168.1.101"** in the above output? This is the default gateway. So my default gateway is **192.168.1.101**. - -You can use **-4** with `ip route` command to **display the IPv4 gateway** only: - -``` -$ ip -4 route -``` - -And, use `-6` to **display the IPv6 gateway** only: - -``` -$ ip -6 route -``` - -As you noticed in the output, the IP address and the subnet details are also shown. If you want to display ONLY the default gateway and exclude all other details from the output, you can use `awk` command with `ip route` like below. - -To find the default gateway IP address using `ip route` and `grep`, run: - -To print Gateway IP address with `ip route` and `awk` commands, run: - -``` -$ ip route | awk '/^default/{print $3}' -``` - -Or, - -``` -$ ip route show default | awk '{print $3}' -``` - -This will list only the gateway. - -**Sample output:** - -``` -192.168.1.101 -``` - -![Find Default Gateway Using ip Command][1] - -You can also use **[grep][2]** command with `ip route` to filter the default gateway. - -``` -$ ip route | grep default -default via 192.168.1.101 dev eth0 proto static metric 100 -``` - -The `ip route` is the recommended command to find the default gateway IP address in latest Linux distributions. However, some of you may still be using the legacy tools like **route** and `netstat`. Old habits die hard, right? The following sections explains how to determine the gateway in Linux using `route` and `netstat` commands. - -#### 2. Display Default Gateway IP Address Using route Command - -The **route** command is used to show and manipulate routing table in older Linux distributions, for example RHEL 6, CentOS 6. - -If you're using those older Linux distributions, you can use the `route` command to display the default gateway. - -Please note that the `route` tool is deprecated and replaced with `ip route` command in the latest Linux distributions. If you still want to use `route` for any reason, you need to install it. - -First, we need to check which package provides `route` command. To do so, run the following command on your RHEL-based system: - -``` -$ dnf provides route -``` - -**Sample output:** - -``` -net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools -Repo : @System -Matched from: -Filename : /usr/sbin/route - -net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools -Repo : baseos -Matched from: -Filename : /usr/sbin/route -``` - -As you can see in the above output, the net-tools package provides the `route` command. So, let us install it using command: - -``` -$ sudo dnf install net-tools -``` - -Now, run `route` command with `-n` flag to display the gateway IP address or router IP address in your Linux system: - -``` -$ route -n -``` - -**Sample output:** - -``` -Kernel IP routing table -Destination Gateway Genmask Flags Metric Ref Use Iface -0.0.0.0 192.168.1.101 0.0.0.0 UG 100 0 0 eth0 -172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 -192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 -``` - -![Display Default Gateway IP Address Using route Command][3] - -As you see in the above output, the gateway IP address is 192.168.1.101. You will also see the two letters **"UG"** under Flags section. The letter **"U"** indicates the interface is **UP** and **G** stands for Gateway. - -#### 3. View Gateway IP Address Using netstat Command - -**Netstat** prints information about the Linux networking subsystem. Using netstat tool, we can print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships in Linux and Unix systems. - -Netstat is part of net-tools package, so make sure you've installed it in your Linux system. The following commands install net-tools package in RHEL-based systems: - -``` -$ sudo dnf install net-tools -``` - -To print the default gateway IP address using `netstat` command, run: - -``` -$ netstat -rn -``` - -**Sample output:** - -``` -Kernel IP routing table -Destination Gateway Genmask Flags MSS Window irtt Iface -0.0.0.0 192.168.1.101 0.0.0.0 UG 0 0 0 eth0 -172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 -192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 -``` - -![View Gateway IP Address Using netstat Command][4] - -The `netstat` command's output is same as `route` command's output. As per the above output, the gateway IP address is 192.168.1.101 and the UG stands the NIC associated to gateway is UP and G indicates Gateway, - -Please note that `netstat` is also deprecated and it is recommended to use **"ss"** command instead of netstat. - -#### 4. Print Default Gateway IP Address Or Router IP Address Using routel Command - -The **routel** is a script to list routes with pretty output format. The routel script will list routes in a format that some might consider easier to interpret then the `ip route` list equivalent. - -The routel script is also the part of net-tools package. - -To print the default gateway or router IP address, run routel script without any flags like below: - -``` -$ routel -``` - -**Sample output:** - -``` -target gateway source proto scope dev tbl - default 192.168.1.101 static eth0 - 172.17.0.0/ 16 172.17.0.1 kernel linkdocker0 - 192.168.1.0/ 24 192.168.1.20 kernel link eth0 - 127.0.0.0/ 8 local 127.0.0.1 kernel host lo local - 127.0.0.1 local 127.0.0.1 kernel host lo local -127.255.255.255 broadcast 127.0.0.1 kernel link lo local - 172.17.0.1 local 172.17.0.1 kernel hostdocker0 local - 172.17.255.255 broadcast 172.17.0.1 kernel linkdocker0 local - 192.168.1.20 local 192.168.1.20 kernel host eth0 local - 192.168.1.255 broadcast 192.168.1.20 kernel link eth0 local - ::1 kernel lo - ::/ 96 unreachable lo -::ffff:0.0.0.0/ 96 unreachable lo - 2002:a00::/ 24 unreachable lo - 2002:7f00::/ 24 unreachable lo - 2002:a9fe::/ 32 unreachable lo - 2002:ac10::/ 28 unreachable lo - 2002:c0a8::/ 32 unreachable lo - 2002:e000::/ 19 unreachable lo - 3ffe:ffff::/ 32 unreachable lo - fe80::/ 64 kernel eth0 - ::1 local kernel lo local -fe80::d085:cff:fec7:c1c3 local kernel eth0 local -``` - -![Print Default Gateway IP Address Or Router IP Address Using routel Command][5] - -To print only the default gateway, run routel with `grep` like below: - -``` -$ routel | grep default - default 192.168.1.101 static eth0 -``` - -#### 5. Find Gateway From Ethernet Configuration Files - -If you have **[configured static IP address in your Linux or Unix][6]** system, you can view the default gateway or router IP address by looking at the network configuration files. - -In RPM-based systems like Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, the network interface card (shortly **NIC**) configuration are stored under **/etc/sysconfig/network-scripts/** directory. - -Find the name of the network card: - -``` -# ip link show -``` - -**Sample output:** - -``` -1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 -2: eth0@if5: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 - link/ether d2:85:0c:c7:c1:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 0 -``` - -The network card name is **eth0**. So let us open the network card configuration of this NIC card file: - -``` -# cat /etc/sysconfig/network-scripts/ifcfg-eth0 -``` - -**Sample output:** - -``` -DEVICE=eth0 -ONBOOT=yes -UUID=eb6b6a7c-37f5-11ed-a59a-a0e70bdf3dfb -BOOTPROTO=none -IPADDR=192.168.1.20 -NETMASK=255.255.255.0 -GATEWAY=192.168.1.101 -DNS1=8.8.8.8 -``` - -As you see above, the gateway IP is `192.168.1.101`. - -In Debian, Ubuntu and its derivatives, all network configuration files are stored under **/etc/network/** directory. - -``` -$ cat /etc/network/interfaces -``` - -**Sample output:** - -``` -auto ens18 -iface ens18 inet static - address 192.168.1.150 - netmask 255.255.255.0 - gateway 192.168.1.101 - dns-nameservers 8.8.8.8 -``` - -Please note that this method should work only if the IP address is configured manually. For DHCP-enabled network, you need to follow the previous 4 methods. - -### Conclusion - -In this guide, we listed 5 different ways to find default gateway in Linux and Unix operating systems. We also have included sample commands to display the gateway/router IP address in each method. Hope this helps. - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/find-default-gateway-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/wp-content/uploads/2022/09/Find-Default-Gateway-Using-ip-Command.png -[2]: https://ostechnix.com/the-grep-command-tutorial-with-examples-for-beginners/ -[3]: https://ostechnix.com/wp-content/uploads/2022/09/Display-Default-Gateway-IP-Address-Using-route-Command.png -[4]: https://ostechnix.com/wp-content/uploads/2022/09/View-Gateway-IP-Address-Using-netstat-Command.png -[5]: https://ostechnix.com/wp-content/uploads/2022/09/Print-Default-Gateway-IP-Address-Or-Router-IP-Address-Using-routel-Command.png -[6]: https://ostechnix.com/configure-static-ip-address-linux-unix/ diff --git a/translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md b/translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md new file mode 100644 index 0000000000..4947ec0c3a --- /dev/null +++ b/translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md @@ -0,0 +1,327 @@ +[#]: subject: "How To Find Default Gateway IP Address In Linux And Unix From Commandline" +[#]: via: "https://ostechnix.com/find-default-gateway-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 和 Unix 中如何从命令行查找默认网关的 IP 地址 +====== +Linux 下查找网关或路由器 IP 地址的 5 种方法。 + +**网关**是一个节点或一个路由器,当连接到同一路由器时,它允许两个或多个 IP 地址不同的主机相互通信。如果没有网关,它们将无法相互通信。换句话说,网关充当接入点,将网络数据从本地网络传输到远程网络。在本指南中,我们将看到在 Linux 和 Unix 中从命令行找到默认网关的所有可能方法。 + +#### 内容 + +1. 在 Linux 中查找默认网关 1.1 使用 ip 命令查找默认网关 1.2 使用 route 命令显示默认网关 IP 地址 1.3 使用 netstat 命令查看网关 IP 地址 1.4 使用 routel 命令打印默认网关或路由器 IP 地址 1.5 从以太网配置文件中查找网关 +2. 总结 + +### 在 Linux 中查找默认网关 + +Linux 中有各种各样的命令行工具可用于查看网关 IP 地址。最常用的工具是:**ip**、**ss** 和 **netcat**。我们将通过示例了解如何使用每种工具查看默认网关。 + +#### 1. 使用 ip 命令查找默认网关 + +**ip** 命令用于显示和操作 Linux 中的路由、网络设备、接口和隧道。 + +要查找默认网关或路由器 IP 地址,只需运行: + +``` +$ ip route +``` + +或者: + +``` +$ ip r +``` + +或者: + +``` +$ ip route show +``` + +**示例输出:** + +``` +default via 192.168.1.101 dev eth0 proto static metric 100 +172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown +192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20 metric 100 +``` + +你从输出中看到了 **"default via 192.168.1.101"** 这一行吗?它就是默认网关。我的默认网关是 **192.168.1.101**。 + +你可以使用 **-4** 参数只**显示 IPv4 网关**: + +``` +$ ip -4 route +``` + +或者,使用 **`-6`** 参数只**显示 IPv6 网关**: + +``` +$ ip -6 route +``` + +如你所见,IP 地址和子网详细信息也一并显示了。如果你想只显示默认网关,排除所有其他细节,可以使用 `ip route` 搭配 **`awk`** 命令,如下所示。 + +使用 `ip route` 和 `grep` 查找默认网关 IP 地址,执行命令: + +```(to 校正,此条命令原文无,怀疑是作者忘记加了) +$ ip route | grep default +``` + +使用 `ip route` 和 `awk` 命令打印网关地址,执行命令: + +```(to 校正,译注:wsl1 上无输出结果,正常 Linux 发行版无问题) +$ ip route | awk '/^default/{print $3}' +``` + +或者: + +``` +$ ip route show default | awk '{print $3}' +``` + +这将只列出网关 IP: + +**示例输出:** + +``` +192.168.1.101 +``` + +![使用 ip 命令列出默认网关][1] + +你也可以使用 **[grep][2]** 命令配合 `ip route` 对默认网关进行过滤。 + +``` +$ ip route | grep default +default via 192.168.1.101 dev eth0 proto static metric 100 +``` + +在最新的 Linux 发行版中,`ip route` 是查找默认网关 ip 地址的推荐命令。然而,你们中的一些人可能仍然在使用传统的工具,如 `route` 和 **`netstat`**。旧习难改,对吧?下面的部分将介绍如何在 Linux 中使用 `route` 和 `netstat` 命令确定网关。 + +#### 2. 使用 route 命令显示默认网关 IP 地址 + +**route** 命令用于在较老的 Linux 发行版中显示和操作路由表,如 RHEL 6、CentOS 6 等。 + +如果你正在使用较老的 Linux 发行版,你可以使用 `route` 命令来显示默认网关。 + +请注意,在最新的 Linux 发行版中,`route` 工具已被弃用,`ip route` 命令取而代之。如果你因为某些原因仍然想使用 `route`,你需要安装它。 + +首先,我们需要检查哪个包提供了 `route` 命令。为此,在基于 RHEL 的系统上运行以下命令: + +``` +$ dnf provides route +``` + +**示例输出:** + +``` +net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools +Repo : @System +Matched from: +Filename : /usr/sbin/route + +net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools +Repo : baseos +Matched from: +Filename : /usr/sbin/route +``` + +如你所见,net-tools 包提供了 `route` 命令。所以,让我们使用以下命令来安装它: + +``` +$ sudo dnf install net-tools +``` + +现在,运行带有 `-n` 参数的 `route` 命令来显示 Linux 系统中的网关或路由器 IP 地址: + +``` +$ route -n +``` + +**示例输出:** + +``` +Kernel IP routing table +Destination Gateway Genmask Flags Metric Ref Use Iface +0.0.0.0 192.168.1.101 0.0.0.0 UG 100 0 0 eth0 +172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 +192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 +``` + +![使用 route 命令显示默认网关 IP 地址][3] + +如你所见,网关 IP 地址是 192.168.1.101。你还将在 Flags 下面看到两个字母 **UG**。字母 **U** 代表接口是 **UP**,**G** 表示网关。 + +#### 3. 使用 netstat 命令查看网关 IP 地址 + +**Netstat** 会输出 Linux 网络子系统的信息。使用 netstat 工具,我们可以在 Linux 和 Unix 系统中打印网络连接、路由表、接口统计信息、伪装连接和组播成员关系。 + +Netstat 是 net-tools 包的一部分,所以确保你已经在 Linux 系统中安装了它。使用以下命令在基于 RHEL 的系统中安装它: + +``` +$ sudo dnf install net-tools +``` + +使用 netstat 命令打印默认网关 IP 地址: + +``` +$ netstat -rn +``` + +**示例输出:** + +``` +Kernel IP routing table +Destination Gateway Genmask Flags MSS Window irtt Iface +0.0.0.0 192.168.1.101 0.0.0.0 UG 0 0 0 eth0 +172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 +192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 +``` + +![使用 netstat 命令查看网关 IP 地址][4] + +`netstat` 命令与 `route` 命令的输出信息相同。如上输出可知,网关的 IP 地址为 192.168.1.191,UG 表示网关连接的网卡(NIC)是有效的,G 表示网关。 + +请注意 `netstat` 也已弃用,建议使用 **ss** 命令代替 netstat。 + +#### 4. 使用 routel 命令打印默认网关或路由器 IP 地址 + +**routel** 是一个脚本,它以一种漂亮格式的输出路由。routel 脚本的输出让一些人认为比 `ip route` 列表更直观。 + +routel 脚本也是 net-tools 包的一部分。 + +打印默认网关或路由器 IP 地址,运行 routel 脚本,不带任何参数,如下所示: + +``` +$ routel +``` + +**示例输出:** + +``` +target gateway source proto scope dev tbl + default 192.168.1.101 static eth0 + 172.17.0.0/ 16 172.17.0.1 kernel linkdocker0 + 192.168.1.0/ 24 192.168.1.20 kernel link eth0 + 127.0.0.0/ 8 local 127.0.0.1 kernel host lo local + 127.0.0.1 local 127.0.0.1 kernel host lo local +127.255.255.255 broadcast 127.0.0.1 kernel link lo local + 172.17.0.1 local 172.17.0.1 kernel hostdocker0 local + 172.17.255.255 broadcast 172.17.0.1 kernel linkdocker0 local + 192.168.1.20 local 192.168.1.20 kernel host eth0 local + 192.168.1.255 broadcast 192.168.1.20 kernel link eth0 local + ::1 kernel lo + ::/ 96 unreachable lo +::ffff:0.0.0.0/ 96 unreachable lo + 2002:a00::/ 24 unreachable lo + 2002:7f00::/ 24 unreachable lo + 2002:a9fe::/ 32 unreachable lo + 2002:ac10::/ 28 unreachable lo + 2002:c0a8::/ 32 unreachable lo + 2002:e000::/ 19 unreachable lo + 3ffe:ffff::/ 32 unreachable lo + fe80::/ 64 kernel eth0 + ::1 local kernel lo local +fe80::d085:cff:fec7:c1c3 local kernel eth0 local +``` + +![使用 routel 命令打印默认网关或路由器 IP 地址][5] + +只打印默认网关,和 `grep` 命令配合,如下所示: + +``` +$ routel | grep default + default 192.168.1.101 static eth0 +``` + +#### 5. 从以太网配置文件中查找网关 + +如果你在 **[Linux 或 Unix 中配置了静态 IP 地址][6],你可以通过查看网络配置文件查看默认网关或路由器 IP 地址。 + +在基于 RPM 的系统上,如 Fedora、RHEL、CentOS、AlmaLinux 和 Rocky Linux 等,网络接口卡(简称 **NIC**)配置存储在 **/etc/sysconfig/network-scripts/** 目录下。 + +查找网卡的名称: + +``` +# ip link show +``` + +**示例输出:** + +``` +1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 +2: eth0@if5: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 + link/ether d2:85:0c:c7:c1:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 0 +``` + +网卡名为 **eth0**。所以让我们打开这个 NIC 文件的网卡配置: + +``` +# cat /etc/sysconfig/network-scripts/ifcfg-eth0 +``` + +**示例输出:** + +``` +DEVICE=eth0 +ONBOOT=yes +UUID=eb6b6a7c-37f5-11ed-a59a-a0e70bdf3dfb +BOOTPROTO=none +IPADDR=192.168.1.20 +NETMASK=255.255.255.0 +GATEWAY=192.168.1.101 +DNS1=8.8.8.8 +``` + +如你所见,网关 IP 为 `192.168.1.101`。 + +在 Debian、Ubuntu 及其衍生版中,所有的网络配置文件都存储在 **/etc/network** 目录下。 + +``` +$ cat /etc/network/interfaces +``` + +**示例输出:** + +``` +auto ens18 +iface ens18 inet static + address 192.168.1.150 + netmask 255.255.255.0 + gateway 192.168.1.101 + dns-nameservers 8.8.8.8 +``` + +请注意,此方法仅在手动配置 IP 地址时有效。对于启用 DHCP 的网络,需要按照前面的 4 种方法操作。 + +### 总结 + +在本指南中,我们列出了在 Linux 和 Unix 系统中找到默认网关的 5 种不同方法,我们还在每种方法中包含了显示网关/路由器 IP 地址的示例命令。希望它对你有所帮助。 + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/find-default-gateway-linux/ + +作者:[sk][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://ostechnix.com/author/sk/ +[b]: https://github.com/lkxed +[1]: https://ostechnix.com/wp-content/uploads/2022/09/Find-Default-Gateway-Using-ip-Command.png +[2]: https://ostechnix.com/the-grep-command-tutorial-with-examples-for-beginners/ +[3]: https://ostechnix.com/wp-content/uploads/2022/09/Display-Default-Gateway-IP-Address-Using-route-Command.png +[4]: https://ostechnix.com/wp-content/uploads/2022/09/View-Gateway-IP-Address-Using-netstat-Command.png +[5]: https://ostechnix.com/wp-content/uploads/2022/09/Print-Default-Gateway-IP-Address-Or-Router-IP-Address-Using-routel-Command.png +[6]: https://ostechnix.com/configure-static-ip-address-linux-unix/ From 8956c8c00b3bac329e445205b2039fc94f3170a3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 16 Oct 2022 23:59:42 +0800 Subject: [PATCH 1584/3123] ALL @wxy https://linux.cn/article-15147-1.html --- ...te-Taking App -Obsidian- is Out of Beta.md | 109 +++++++++++++++++ ...te-Taking App -Obsidian- is Out of Beta.md | 112 ------------------ 2 files changed, 109 insertions(+), 112 deletions(-) create mode 100644 published/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md delete mode 100644 sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md diff --git a/published/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md b/published/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md new file mode 100644 index 0000000000..d86ce1f6c9 --- /dev/null +++ b/published/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md @@ -0,0 +1,109 @@ +[#]: subject: "Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta" +[#]: via: "https://news.itsfoss.com/obsidian-1-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15147-1.html" + +类似 Notion 的 Markdown 笔记应用黑曜石推出测试版 +====== + +> 黑曜石 1.0 做了重新设计,带来了有价值的新功能。 + +![类似于 Notion 的 Markdown 笔记软件 Obsidian 推出了测试版][1] + +黑曜石Obsidian 是一款强大的笔记应用,可以用来制作知识图谱,同时还提供 [Notion][2] 类似的功能。 + +在 1.0 更新之前,我们已经有一篇关于它的 [详细文章][3]。 + +黑曜石 1.0 的发布标志着该应用在桌面和移动体验方面的发展迈出了关键一步。 + +> 💡 黑曜石不是一个开源的应用程序,但可以在 Linux 上使用。 + +让我们来看看它的桌面版提供的新功能。 + +### 🆕 黑曜石 1.0 的新功能 + +![黑曜石 1.0][5] + +1.0 版本增加了大量的新功能、主要的视觉变化和错误修复,其中一些亮点包括: + +* 改良的用户界面 +* 新的外观设置 +* 带有标签堆叠的标签功能 +* 大修的主题画廊 +* 各种错误的修复 + +#### 🎨 用户界面的改造 + +![黑曜石 1.0 用户界面][8] + +用户界面已经得到了全面改造,这使得用户体验更加直观和强大。 + +![黑曜石用户界面][9] + +除此之外,黑曜石现在还有一个专门的外观设置部分。它包含了切换显示内联标题、标签标题栏、改变重点颜色等选项的设置。 + +![黑曜石 1.0 外观设置][10] + +#### 带有标签堆叠的标签功能 + +![黑曜石 1.0 的标签][11] + +现在你可以在黑曜石中打开多个标签,并使用热键来帮助你在忙碌的一天中完成多个任务。 + +一个额外的好处是,即使你退出黑曜石,它也会记住你曾经打开的标签和你在这些标签中的活动状态。 + +![黑曜石 1.0 的标签堆叠][12] + +标签也可以分组形成堆叠,并在它们之间进行切换,从而使工作空间变得更加整齐。 + +#### 🛠️ 其他变化 + +其他值得一提的变化包括: + +* 改变缩放级别的能力 +* 改进了黑曜石的同步 +* 内存泄漏修复 +* 用于折叠行的折叠命令 + +你可以通过 [发布说明][13],以及 [发布公告][14] 来了解更多的细节。 + +### 📥 下载黑曜石 1.0 + +你可以到 [官方网站][17] 下载黑曜石 1.0。在手机上,也可以在谷歌应用商店和苹果的应用商店上找到它。 + +为 Linux 用户提供了三个软件包:**AppImage、Flatpak 和 Snap**。 + +开发者还澄清说,他们不会向个人用户收取黑曜石的使用费。 + +*💬 你对黑曜石 1.0 有什么看法?一个值得替代其他记事本的应用程序吗?* + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/obsidian-1-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/obsidian-1.png +[2]: https://notion.grsm.io/itsfoss +[3]: https://linux.cn/article-14230-1.html +[5]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0.png +[8]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_User_Interface.png +[9]: https://news.itsfoss.com/content/images/2022/10/obisidian-1-ui.png +[10]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Appearance_Settings.png +[11]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Tabs.png +[12]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Tab_Stacks.gif +[13]: https://forum.obsidian.md/t/obsidian-release-v1-0-0/44873 +[14]: https://obsidian.md/1.0 +[17]: https://obsidian.md/download +[18]: https://www.youtube-nocookie.com/embed/Ia2CaItxTEk diff --git a/sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md b/sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md deleted file mode 100644 index 9a5dfa0cb6..0000000000 --- a/sources/news/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md +++ /dev/null @@ -1,112 +0,0 @@ -[#]: subject: "Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta" -[#]: via: "https://news.itsfoss.com/obsidian-1-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta -====== -Obsidian 1.0 is all about the redesign and valuable new features. - -![Notion-like Markdown Note-Taking App 'Obsidian' is Out of Beta][1] - -Obsidian is a powerful note-taking app that can be used to make knowledge graphs while still offering [Notion][2]-like features. - -We already had a detailed article on it before the 1.0 update: - -[Obsidian is a Notion Alternative for Hardcore Markdown Users for Creating Knowledge Graph of Notes - It’s FOSS][3] - -The release of Obsidian 1.0 marks a crucial step in the development of the app for its desktop and mobile experience. - -> 💡 Obsidian is not an open-source app, but it is available for Linux users. - -Let's take a look at the new features on offer for desktops. - -### 🆕 Obsidian 1.0: What's New? - -![obsidian 1.0][5] - -The 1.0 release has added a bunch of new features, major visual changes, and bug fixes, some of the highlights include: - -* Revamped UI -* New Appearance Settings -* Tabs With Tab Stacking -* Overhauled Theme Gallery -* Various Bug Fixes - -#### 🎨 User Interface Makeover - -![obsidian 1.0 user interface][8] - -The user interface has received an extensive makeover, which has resulted in a more intuitive and robust user experience. - -![obisidian ui][9] - -In addition to that, Obsidian now has a dedicated section for appearance settings. It contains settings to toggle options for showing the inline title, tab title bar, changing accent color, and more. - -![obsidian 1.0 appearance settings][10] - -#### Tabs With Tab Stacking - -![obsidian 1.0 tabs][11] - -You can now open multiple tabs in Obsidian and use hotkeys to help you multitask throughout a busy day. - -An added bonus, even if you quit Obsidian, it will remember which tabs you had opened and your active state in those tabs. - -![obsidian 1.0 tab stacking][12] - -Tabs can also be grouped to form a stack and switched between, resulting in a decluttered workspace. - -#### 🛠️ Other Changes - -Other changes worth mentioning include: - -* Ability to change the zoom level. -* Improved Obsidian sync. -* Memory leak fix. -* Fold Commands for folding lines. - -You can go through the [release notes][13], and its [release announcement][14] too get into the finer details. - -### 📥 Download Obsidian 1.0 - -You can download Obsidian 1.0 by heading over to the [official website][17]. For mobiles, it is available on Google Play Store and Apple's App Store. - -Three packages have been made available for Linux users: **AppImage, Flatpak, and Snap**. - -The developers have also clarified that they won't be charging personal users for access to Obsidian. - -*💬 What do you think of Obsidian 1.0? A worthy alternative to other note-taking apps?* - -![YouTube video player][18] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/obsidian-1-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/obsidian-1.png -[2]: https://notion.grsm.io/itsfoss -[3]: https://itsfoss.com/obsidian-markdown-editor/ -[5]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0.png -[8]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_User_Interface.png -[9]: https://news.itsfoss.com/content/images/2022/10/obisidian-1-ui.png -[10]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Appearance_Settings.png -[11]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Tabs.png -[12]: https://news.itsfoss.com/content/images/2022/10/Obsidian_1.0_Tab_Stacks.gif -[13]: https://forum.obsidian.md/t/obsidian-release-v1-0-0/44873 -[14]: https://obsidian.md/1.0 -[17]: https://obsidian.md/download -[18]: https://www.youtube-nocookie.com/embed/Ia2CaItxTEk From e56bafdd60d6e1395246fc3ea43cf855d1e9036c Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 17 Oct 2022 09:50:19 +0800 Subject: [PATCH 1585/3123] translated --- ...ow to Enable Snap Support in Arch Linux.md | 146 ------------------ ...ow to Enable Snap Support in Arch Linux.md | 146 ++++++++++++++++++ 2 files changed, 146 insertions(+), 146 deletions(-) delete mode 100644 sources/tech/20221011 How to Enable Snap Support in Arch Linux.md create mode 100644 translated/tech/20221011 How to Enable Snap Support in Arch Linux.md diff --git a/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md b/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md deleted file mode 100644 index 77bc288f52..0000000000 --- a/sources/tech/20221011 How to Enable Snap Support in Arch Linux.md +++ /dev/null @@ -1,146 +0,0 @@ - [#]: subject: "How to Enable Snap Support in Arch Linux" -[#]: via: "https://itsfoss.com/install-snap-arch-linux/" -[#]: author: "Pranav Krishna https://itsfoss.com/author/pranav/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Enable Snap Support in Arch Linux -====== -Snap is a universal package format designed by Canonical, the parent company of Ubuntu. Some people do not like Snap, but it has some advantages. - -Often, some applications are only available in the Snap format. This gives you a good enough reason to enable snap in Arch Linux. - -I know that AUR has a vast collection of applications but the snap apps often come directly from the developers. - -If you want to be able to install Snap applications in Arch Linux, you need to enable snap support first. - -There are two ways to do it: - -* Enable Snap support using an AUR helper (easier) -* Enable Snap support manually by getting the packages from AUR - -Let’s see how to do it. - -### Method 1. Use an AUR helper to enable Snap - -Snap is available in the Arch User Repository as the *snapd* package. You can install it easily using an AUR helper. - -There are [many AUR helpers][1] out there, but *yay* is what I prefer because it has syntax similar to the [pacman command][2]. - -If you don’t have an AUR installed already, install Yay using the command below (needs git beforehand): - -``` -git clone https://aur.archlinux.org/yay - -cd yay - -makepkg -si -``` - -![Installing yay][3] - -Now that *yay* is installed, you can install snapd by: - -``` -yay -Sy snapd -``` - -![Installing snapd from AUR using yay][4] - -Yay enables automatic updating of snapd whenever you [update your Arch Linux][5] system. - -### Verify that snap works - -To test if snap works fine, install and run the *hello-world* snap package. - -``` -sudo snap install hello-world - -hello-world -(or) -sudo snap run hello-world -``` - -![The hello-world snap package executes][6] - -If it runs fine, then you can install other snap packages easily. - -### Method 2. Manually build the snap package from AUR - -If you do not want to use an AUR helper, you can still get the snapd from the AUR. Let me show the detailed procedure. - -You will need to install some build tools first. - -``` -sudo pacman -Sy git go go-tools python-docutils -``` - -![Installing Dependencies for snap][7] - -Once you’re done with installing the dependencies, now you can clone the AUR directory, which goes as: - -``` -git clone https://aur.archlinux.org/snapd - -cd snapd -``` - -![Cloning the repository][8] - -Then make the snapd package: - -``` -makepkg -si -``` - -Enter yes when it asks to install other dependency packages. - -![snapd manual install makepkg][9] - -You have installed the snapd daemon. However, it needs to be enabled to auto start at boot time. - -``` -sudo systemctl enable snapd --now - -sudo systemctl enable snapd.apparmor --now #start snap applications - -sudo ln -s /var/lib/snapd/snap /snap #optional: classic snap support -``` - -![Enable Snap at startup][10] - -The major disadvantage of manually building a package is that you have to manually build every time a new update kicks in. Using an AUR helper solves that problem for us. - -### Conclusion - -I prefer pacman and AUR in Arch Linux. It’s rare to see an application that is not in AUR but available in some other formats. Still, using snap could be advantageous in some conditions where you want it directly from the source, like [installing Spotify on Arch][11] for example. - -I hope you find this tutorial helpful. Let me know if you have any questions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-snap-arch-linux/ - -作者:[Pranav Krishna][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/pranav/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/best-aur-helpers/ -[2]: https://itsfoss.com/pacman-command/ -[3]: https://itsfoss.com/wp-content/uploads/2022/10/yay-makepkg.png -[4]: https://itsfoss.com/wp-content/uploads/2022/10/yay-install-snapd.png -[5]: https://itsfoss.com/update-arch-linux/ -[6]: https://itsfoss.com/wp-content/uploads/2022/10/snap-hello-world-1.png -[7]: https://itsfoss.com/wp-content/uploads/2022/10/snapd-manual-install-dependencies.png -[8]: https://itsfoss.com/wp-content/uploads/2022/10/snapd-manual-install-clone.png -[9]: https://itsfoss.com/wp-content/uploads/2022/10/snapd-manual-install-makepkg-800x460.png -[10]: https://itsfoss.com/wp-content/uploads/2022/10/enable-snapd-startup-2.png -[11]: https://itsfoss.com/install-spotify-arch/ diff --git a/translated/tech/20221011 How to Enable Snap Support in Arch Linux.md b/translated/tech/20221011 How to Enable Snap Support in Arch Linux.md new file mode 100644 index 0000000000..00398d3f86 --- /dev/null +++ b/translated/tech/20221011 How to Enable Snap Support in Arch Linux.md @@ -0,0 +1,146 @@ +[#]: subject: "How to Enable Snap Support in Arch Linux" +[#]: via: "https://itsfoss.com/install-snap-arch-linux/" +[#]: author: "Pranav Krishna https://itsfoss.com/author/pranav/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中启用 Snap 支持 +====== +Snap 是由 Ubuntu 的母公司 Canonical 设计的通用包格式。有些人不喜欢 Snap,但它有一些优势。 + +通常,某些应用仅以 Snap 格式提供。这为你提供了在 Arch Linux 中启用 snap 的充分理由。 + +我知道 AUR 拥有大量应用,但 snap 应用通常直接来自开发人员。 + +如果你希望能够在 Arch Linux 中安装 Snap 应用,你需要先启用 snap 支持。 + +有两种方法可以做到: + +* 使用 AUR 助手启用 Snap 支持(更简单) +* 通过从 AUR 获取包手动启用 Snap 支持 + +让我们看看怎么做。 + +### 方法 1. 使用 AUR 助手启用 Snap + +Snap 在 Arch 用户仓库中以 *snapd* 包的形式提供。你可以使用 AUR 助手轻松安装它。 + +存在[许多 AUR 助手][1],但 *yay* 是我更喜欢的,因为它的语法类似于 [pacman 命令][2]。 + +如果你还没有安装 AUR,请使用以下命令安装 Yay(需要事先 git): + +``` +git clone https://aur.archlinux.org/yay + +cd yay + +makepkg -si +``` + +![安装 yay][3] + +现在 *yay* 已安装,你可以通过以下方式安装 snapd: + +``` +yay -Sy snapd +``` + +![使用 yay 从 AUR 安装 snapd][4] + +每当你[更新 Arch Linux][5] 系统时,Yay 都会启用 snapd 的自动更新。 + +### 验证 snap 是否有效 + +要测试 snap 是否正常工作,请安装并运行 *hello-world* snap 包。 + +``` +sudo snap install hello-world + +hello-world +(或者) +sudo snap run hello-world +``` + +![hello-world snap 包执行][6] + +如果它运行良好,那么你可以轻松安装其他 snap 包。 + +### 方法 2. 从 AUR 手动构建 snap 包 + +如果你不想使用 AUR 助手,你仍然可以从 AUR 获取 snap。让我展示详细的过程。 + +你需要先安装一些构建工具。 + +``` +sudo pacman -Sy git go go-tools python-docutils +``` + +![为 snap 安装依赖项][7] + +完成依赖项安装后,现在可以克隆 AUR 目录,如下所示: + +``` +git clone https://aur.archlinux.org/snapd + +cd snapd +``` + +![克隆仓库][8] + +然后构建 snapd 包: + +``` +makepkg -si +``` + +当它要求安装其他依赖包时输入 yes。 + +![手动构建 snapd][9] + +你已安装 snapd 守护程序。但是,需要启用它以在启动时自动启动。 + +``` +sudo systemctl enable snapd --now + +sudo systemctl enable snapd.apparmor --now #start snap applications + +sudo ln -s /var/lib/snapd/snap /snap #optional: classic snap support +``` + +![启动时启用 snap][10] + +手动构建包的主要缺点是每次新更新启动时你都必须手动构建。使用 AUR 助手为我们解决了这个问题。 + +### 总结 + +我更喜欢 Arch Linux 中的 pacman 和 AUR。很少能看到不在 AUR 中但以其他格式提供的应用。尽管如此,在某些你希望直接从源获取它的情况下,使用 snap 可能是有利的,例如 [在 Arch 上安装 Spotify][11]。 + +希望本教程对您有所帮助。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-snap-arch-linux/ + +作者:[Pranav Krishna][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/pranav/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-aur-helpers/ +[2]: https://itsfoss.com/pacman-command/ +[3]: https://itsfoss.com/wp-content/uploads/2022/10/yay-makepkg.png +[4]: https://itsfoss.com/wp-content/uploads/2022/10/yay-install-snapd.png +[5]: https://itsfoss.com/update-arch-linux/ +[6]: https://itsfoss.com/wp-content/uploads/2022/10/snap-hello-world-1.png +[7]: https://itsfoss.com/wp-content/uploads/2022/10/snapd-manual-install-dependencies.png +[8]: https://itsfoss.com/wp-content/uploads/2022/10/snapd-manual-install-clone.png +[9]: https://itsfoss.com/wp-content/uploads/2022/10/snapd-manual-install-makepkg-800x460.png +[10]: https://itsfoss.com/wp-content/uploads/2022/10/enable-snapd-startup-2.png +[11]: https://itsfoss.com/install-spotify-arch/ From 0c55ea936423f39f1dbd6339d4b5f639fac30ab8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 17 Oct 2022 09:52:43 +0800 Subject: [PATCH 1586/3123] translating --- .../20221010 How to Update Google Chrome on Ubuntu Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md b/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md index 6dbeccb906..68c3bb50b4 100644 --- a/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md +++ b/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/update-google-chrome-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From fa57d234120800d4f9a0db444f426f38caaba8f4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 17 Oct 2022 10:13:12 +0800 Subject: [PATCH 1587/3123] RP @cool-summer-021 https://linux.cn/article-15148-1.html --- ...20210721 Write your first web component.md | 184 +++++++++++++++++ ...20210721 Write your first web component.md | 195 ------------------ 2 files changed, 184 insertions(+), 195 deletions(-) create mode 100644 published/20210721 Write your first web component.md delete mode 100644 translated/tech/20210721 Write your first web component.md diff --git a/published/20210721 Write your first web component.md b/published/20210721 Write your first web component.md new file mode 100644 index 0000000000..7f839f4858 --- /dev/null +++ b/published/20210721 Write your first web component.md @@ -0,0 +1,184 @@ +[#]: subject: (Write your first web component) +[#]: via: (https://opensource.com/article/21/7/web-components) +[#]: author: (Ramakrishna Pattnaik https://opensource.com/users/rkpattnaik780) +[#]: collector: (lujun9972) +[#]: translator: (cool-summer-021) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15148-1.html) + +开发你的第一个 Web 组件 +====== + +> 不要做重复的工作;基于浏览器开发 Web App 时,需要制作一些可重用的模块。 + +![](https://img.linux.net.cn/data/attachment/album/202210/17/101134uzsiis8xsu9wqibi.jpg) + +Web 组件是一系列开源技术(例如 JavaScript 和 HTML)的集合,你可以用它们创建一些 Web App 中可重用的自定义元素。你创建的组件是独立于其他代码的,所以这些组件可以方便地在多个项目中重用。 + +首先,它是一个平台标准,所有主流的浏览器都支持它。 + +### Web 组件中包含什么? + + * **定制元素**:JavaScript API 支持定义 HTML 元素的新类别。 + * **影子 DOM**:JavaScript API 提供了一种将一个隐藏的、独立的 [文档对象模型][2](DOM)附加到一个元素的方法。它通过保留从页面的其他代码分离出来的样式、标记结构和行为特征对 Web 组件进行了封装。它会确保 Web 组件内样式不会被外部样式覆盖,反之亦然,Web 组件内样式也不会“泄露”到页面的其他部分。 + * **HTML 模板**:该元素支持定义可重用的 DOM 元素。可重用 DOM 元素和它的内容不会呈现在 DOM 内,但仍然可以通过 JavaScript 被引用。 + +### 开发你的第一个 Web 组件 + +你可以借助你最喜欢的文本编辑器和 JavaScript 写一个简单的 Web 组件。本指南使用 Bootstrap 生成简单的样式,并创建一个简易的卡片式的 Web 组件,给定了位置信息,该组件就能显示该位置的温度。该组件使用了 [Open Weather API][3],你需要先注册,然后创建 APPID/APIKey,才能正常使用。 + +调用该组件,需要给出位置的经度和纬度: + +``` + +``` + +创建一个名为 `weather-card.js` 的文件,这个文件包含 Web 组件的所有代码。首先,需要定义你的组件,创建一个模板元素,并在其中加入一些简单的 HTML 标签: + +``` +const template = document.createElement('template'); + +template.innerHTML = ` + 
              +   
              +` +``` + +定义 Web 组件的类及其构造函数: + +``` +class WeatherCard extends HTMLElement { +  constructor() { +    super(); +    this._shadowRoot = this.attachShadow({ 'mode': 'open' }); +    this._shadowRoot.appendChild(template.content.cloneNode(true)); +  } +  ...... +} +``` + +构造函数中,附加了 `shadowRoot` 属性,并将它设置为开启模式。然后这个模板就包含了 shadowRoot 属性。 + +接着,编写获取属性的函数。对于经度和纬度,你需要向 Open Weather API 发送 GET 请求。这些功能需要在 `connectedCallback` 函数中完成。你可以使用 `getAttribute` 方法访问相应的属性,或定义读取属性的方法,把它们绑定到本对象中。 + +``` +get longitude() { +  return this.getAttribute('longitude'); +} + +get latitude() { +  return this.getAttribute('latitude'); +} +``` + +现在定义 `connectedCallBack` 方法,它的功能是在需要时获取天气数据: + +``` +connectedCallback() { + var xmlHttp = new XMLHttpRequest(); + const url = `http://api.openweathermap.org/data/2.5/weather?lat=${this.latitude}&lon=${this.longitude}&appid=API_KEY` + xmlHttp.open("GET", url, false); + xmlHttp.send(null); + this.$card = this._shadowRoot.querySelector('.card-body'); + let responseObj = JSON.parse(xmlHttp.responseText); + let $townName = document.createElement('p'); + $townName.innerHTML = `Town: ${responseObj.name}`; + this._shadowRoot.appendChild($townName); + let $temperature = document.createElement('p'); + $temperature.innerHTML = `${parseInt(responseObj.main.temp - 273)} °C` + this._shadowRoot.appendChild($temperature); +} +``` + +一旦获取到天气数据,附加的 HTML 元素就添加进了模板。至此,完成了类的定义。 + +最后,使用 `window.customElements.define` 方法定义并注册一个新的自定义元素: + +``` +window.customElements.define('weather-card', WeatherCard); +``` + +其中,第一个参数是自定义元素的名称,第二个参数是所定义的类。这里是 [整个组件代码的链接][5]。 + +你的第一个 Web 组件的代码已完成!现在应该把它放入 DOM。为了把它放入 DOM,你需要在 HTML 文件(`index.html`)中载入指向 Web 组件的 JavaScript 脚本。 + +``` + + + + +  + + + + + + + +``` + +这就是显示在浏览器中的 Web 组件: + +![Web component displayed in a browser][6] + +由于 Web 组件中只包含 HTML、CSS 和 JavaScript,它们本来就是浏览器所支持的,并且可以无瑕疵地跟前端框架(例如 React 和 Vue)一同使用。下面这段简单的代码展现的是它跟一个由 [Create React App][8] 引导的一个简单的 React App 的整合方法。如果你需要,可以引入前面定义的 `weather-card.js`,把它作为一个组件使用: + +``` +import './App.css'; +import './weather-card'; + +function App() { +  return ( +  +  ); +} + +export default App; +``` + +### Web 组件的生命周期 + +一切组件都遵循从初始化到移除的生命周期法则。每个生命周期事件都有相应的方法,你可以借助这些方法令组件更好地工作。Web 组件的生命周期事件包括: + + * `Constructor`:Web 组件的构造函数在它被挂载前调用,意味着在元素附加到文档对象前被创建。它用于初始化本地状态、绑定事件处理器以及创建影子 DOM。在构造函数中,必须调用 `super()`,执行父类的构造函数。 + * `ConnectedCallBack`:当一个元素被挂载(即,插入 DOM 树)时调用。该函数处理创建 DOM 节点的初始化过程中的相关事宜,大多数情况下用于类似于网络请求的操作。React 开发者可以将它与 `componentDidMount` 相关联。 + * `attributeChangedCallback`:这个方法接收三个参数:`name`, `oldValue` 和 `newValue`。组件的任一属性发生变化,就会执行这个方法。属性由静态 `observedAttributes` 方法声明: + ``` + static get observedAttributes() { +   return ['name', '_id']; + } + ``` + 一旦属性名或 `_id` 改变,就会调用 `attributeChangedCallback` 方法。 + * `DisconnectedCallBack`:当一个元素从 DOM 树移除,会执行这个方法。它相当于 React 中的 `componentWillUnmount`。它可以用于释放不能由垃圾回收机制自动清除的资源,比如 DOM 事件的取消订阅、停用计时器或取消所有已注册的回调方法。 + * `AdoptedCallback`:每次自定义元素移动到一个新文档时调用。只有在处理 IFrame 时会发生这种情况。 + +### 模块化开源 + +Web 组件对于开发 Web App 很有用。无论你是熟练使用 JavaScript 的老手,还是初学者,无论你的目标客户使用哪种浏览器,借助这种开源标准创建可重用的代码都是一件可以轻松完成的事。 + +*插图:Ramakrishna Pattnaik, [CC BY-SA 4.0][7]* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/7/web-components + +作者:[Ramakrishna Pattnaik][a] +选题:[lujun9972][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/rkpattnaik780 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_web_internet_website.png?itok=g5B_Bw62 (Digital creative of a browser on the internet) +[2]: https://en.wikipedia.org/wiki/Document_Object_Model +[3]: https://openweathermap.org/api +[4]: http://api.openweathermap.org/data/2.5/weather?lat=${this.latitude}\&lon=${this.longitude}\&appid=API\_KEY\` +[5]: https://gist.github.com/rkpattnaik780/acc683d3796102c26c1abb03369e31f8 +[6]: https://opensource.com/sites/default/files/uploads/webcomponent.png (Web component displayed in a browser) +[7]: https://creativecommons.org/licenses/by-sa/4.0/ +[8]: https://create-react-app.dev/docs/getting-started/ diff --git a/translated/tech/20210721 Write your first web component.md b/translated/tech/20210721 Write your first web component.md deleted file mode 100644 index 4f8ba5c0e2..0000000000 --- a/translated/tech/20210721 Write your first web component.md +++ /dev/null @@ -1,195 +0,0 @@ -[#]: subject: (Write your first web component) -[#]: via: (https://opensource.com/article/21/7/web-components) -[#]: author: (Ramakrishna Pattnaik https://opensource.com/users/rkpattnaik780) -[#]: collector: (lujun9972) -[#]: translator: (cool-summer-021) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -开发第一个 Web 组件 -====== -不要做重复的工作; -基于浏览器开发 Web App 时,需要制作一些可重用的模块。 -![Digital creative of a browser on the internet][1] - -Web 组件是一系列开源技术(例如 JavaScript 和 HTML),你可以用它创建一些 Web App 中可重用的自定义元素。你创建的组件是独立于其他代码的,所以这些组件可以方便地在多个项目中重用。 - -首先,它是一个平台标准,所有主流的浏览器都支持它。 - -### Web 组件中包含什么? - - * **定制元素:** 支持定义HTML元素的新类别。 - * **Shadow DOM:** 提供一种将一个隐藏的、独立的[文档对象模型][2] (DOM) 附加到一个元素的方法。它通过保留从页面的其他代码分离出来的样式、标记结构和行为特征对 Web 组件进行封装。它确保 Web 组件内样式不会被外部样式覆盖,反之亦然,Web 组件内样式也不会“泄露”到页面的其他部分。 - * **HTML 模板:** 支持定义可重用的 DOM 元素。可重用 DOM 元素和它的内容不会呈现在 DOM 内,但仍然可以通过 JavaScript 被引用。 - - - -### 开发你的第一个 Web 组件 - -你可以借助你最喜欢的文本编辑器和 JavaScript 写一个简单的 Web 组件。本指南使用引导程序生成简单的样式,并创建一个简易的卡片式的 Web 组件,给定了位置信息,该组件就能显示该位置的温度。组件使用了 [Open Weather API][3],你需要先注册,然后创建 APPID/APIKey,才能正常使用。 - -调用该组件,需要给出位置的经度和纬度: - - -``` -`` -``` - -创建一个名为 **weather-card.js** 的文件,这个文件包含 Web 组件的所有代码。首先,需要定义你的组件,创建一个模板元素,并在其中加入一些简单的 HTML 标签: - - -``` -const template = document.createElement('template'); - -template.innerHTML = ` - 
              -   
              -` -``` - -定义 WebComponent 类及其构造函数: - - -``` -class WeatherCard extends HTMLElement { -  constructor() { -    super(); -    this._shadowRoot = this.attachShadow({ 'mode': 'open' }); -    this._shadowRoot.appendChild(template.content.cloneNode(true)); -  } -  …. -} -``` - -构造函数中,附加了 shadowRoot 属性,并将它设置为开启模式。然后这个模板就包含了 shadowRoot 属性。 - -接着,写获取属性的函数。对于经度和纬度,你需要向 Open Weather API 发送 GET 请求。这些功能需要在 `connectedCallback` 函数中完成。你可以使用 `getAttribute` 方法访问相应的属性,或定义读取属性的方法,把他们绑定到本对象中。 - - -``` -get longitude() { -  return this.getAttribute('longitude'); -} - -get latitude() { -  return this.getAttribute('latitude'); -} -``` - -现在定义 `connectedCallBack` 方法,它的功能是在需要时获取天气数据: - - -``` -connectedCallback() { -  var xmlHttp = new XMLHttpRequest(); -  const url = `[http://api.openweathermap.org/data/2.5/weather?lat=${this.latitude}\&lon=${this.longitude}\&appid=API\\_KEY\\`][4] -  xmlHttp.open("GET", url, false); -  xmlHttp.send(null); -  this.$card = this._shadowRoot.querySelector('.card-body'); -  let responseObj = JSON.parse(xmlHttp.responseText); -  let $townName = document.createElement('p'); -  $townName.innerHTML = `Town: ${responseObj.name}`; -  this._shadowRoot.appendChild($townName); -  let $temperature = document.createElement('p'); -  $temperature.innerHTML = `${parseInt(responseObj.main.temp - 273)} &deg;C` -  this._shadowRoot.appendChild($temperature); -} -``` - -一旦获取到天气数据,附加的 HTML 元素就添加进了模板。至此,完成了类的定义。 - -最后,使用 `window.customElements.define` 方法定义并注册一个新的自定义元素: - - -``` -`window.customElements.define('weather-card', WeatherCard);` -``` - -其中,第一个参数是自定义元素的名称,第二个参数是所定义的类。这里是[整个组件的链接][5]。 - -你的第一个 Web 组件的代码已完成!现在应该把它放入 DOM。为了把它放入 DOM,你需要在 HTML 文件(**index.html**)中载入指向 Web 组件的 JavaScript 脚本。 - - -``` - - - - -  - - - - - - - -``` - -这就是显示在浏览器中的 Web 组件: - -![Web component displayed in a browser][6] - -(Ramakrishna Pattnaik, [CC BY-SA 4.0][7]) - -由于 Web 组件中只包含 HTML、CSS 和 JavaScript,它们本来就是浏览器所支持的,并且可以无瑕疵地跟前端框架(例如 React 和 Vue)一同使用。下面这段简单的代码展现的是它跟一个由 [Create React App] 引导的一个简单的 React App 的整合方法。如果你需要,可以引入前面定义的 **weather-card.js**,把它作为一个组件使用: - - -``` -import './App.css'; -import './weather-card'; - -function App() { -  return ( -  -  ); -} - -export default App; -``` - -### Web 组件的生命周期 - -一切组件都遵循从初始化到移除的生命周期法则。每个生命周期事件都有相应的方法,你可以借助这些方法令组件更好地工作。Web 组件的生命周期事件包括: - - * **Constructor:** Web 组件的构造函数在它被挂载前调用,意味着在元素附加到文档对象前被创建。它用于初始化本地状态、绑定事件处理器以及创建 Shadow DOM。在构造函数中,必须调用 `super()`,执行父类的构造函数。 - * **ConnectedCallBack:** 当一个元素被挂载(插入 DOM 树)时调用。该函数处理创建 DOM 节点的初始化过程中的相关事宜,大多数情况下用于类似于网络请求的操作。React 开发者可以将它与 `componentDidMount` 相关联。 - * **attributeChangedCallback:** 这个方法接收三个参数:`name`, `oldValue` 和 `newValue`。组件的任一属性发生变化,就会执行这个方法。属性由静态 `observedAttributes` 方法声明: -``` -static get observedAttributes() { -  return ['name', '_id']; -} -``` -一旦属性名或 `_id` 改变,就会调用 `attributeChangedCallback` 方法。 - * **DisconnectedCallBack:**当一个元素从 DOM 树移除,会执行这个方法。它相当于 React 中的 `componentWillUnmount`。它可以用于释放不能由垃圾回收机制自动清除的资源,比如 DOM 事件的取消订阅、停用计时器或取消所有已注册的回调方法。 - * **AdoptedCallback:** 每次自定义元素移动到一个新文档时调用。只有在处理 IFrame 时会发生这种情况。 - - - -### 模块化开源 - -Web 组件对于开发 Web App 很有用。无论你是熟练使用 JavaScript 的老手,还是初学者,无论你的目标客户使用哪种浏览器,借助这种开源标准创建可重用的代码都是一件可以轻松完成的事。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/7/web-components - -作者:[Ramakrishna Pattnaik][a] -选题:[lujun9972][b] -译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/rkpattnaik780 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_web_internet_website.png?itok=g5B_Bw62 (Digital creative of a browser on the internet) -[2]: https://en.wikipedia.org/wiki/Document_Object_Model -[3]: https://openweathermap.org/api -[4]: http://api.openweathermap.org/data/2.5/weather?lat=${this.latitude}\&lon=${this.longitude}\&appid=API\_KEY\` -[5]: https://gist.github.com/rkpattnaik780/acc683d3796102c26c1abb03369e31f8 -[6]: https://opensource.com/sites/default/files/uploads/webcomponent.png (Web component displayed in a browser) -[7]: https://creativecommons.org/licenses/by-sa/4.0/ -[8]: https://create-react-app.dev/docs/getting-started/ From f63266da68ad69cfe2dda38d84ec2591d47b835c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 17 Oct 2022 11:05:57 +0800 Subject: [PATCH 1588/3123] RP @geekpi https://linux.cn/article-15149-1.html --- ...ps for Package Management in Arch Linux.md | 89 ++++++++++--------- 1 file changed, 45 insertions(+), 44 deletions(-) rename {translated/tech => published}/20220927 GUI Apps for Package Management in Arch Linux.md (53%) diff --git a/translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md b/published/20220927 GUI Apps for Package Management in Arch Linux.md similarity index 53% rename from translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md rename to published/20220927 GUI Apps for Package Management in Arch Linux.md index fc55be6e66..42023d8967 100644 --- a/translated/tech/20220927 GUI Apps for Package Management in Arch Linux.md +++ b/published/20220927 GUI Apps for Package Management in Arch Linux.md @@ -3,75 +3,76 @@ [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15149-1.html" -# Arch Linux 中用于包管理的 GUI 应用 +Arch Linux 中用于包管理的图形化应用 +====== -[安装 Arch Linux][1] 被认为具有挑战性。这就是为什么[有几个基于 Arch 的发行版][2]通过提供图形化的安装程序使事情变得简单。 +![](https://img.linux.net.cn/data/attachment/album/202210/17/110440isl629s0uqnl8b29.jpg) + +[安装 Arch Linux][1] 有一些挑战性。这就是为什么 [有几个基于 Arch 的发行版][2] 通过提供图形化的安装程序使事情变得简单。 即使你设法安装了 Arch Linux,你也会注意到它严重依赖命令行。如果你需要安装应用或更新系统,那么必须打开终端。 -是的! Arch Linux 没有软件中心。我知道,这让很多人感到震惊。 +是的!Arch Linux 没有软件中心。我知道,这让很多人感到震惊。 -如果你对使用命令行管理应用感到不舒服,你可以安装一个 GUI 工具。这有助于在舒适的 GUI 中搜索包以及安装和删除它们。 +如果你对使用命令行管理应用感到不舒服,你可以安装一个 GUI 工具。这有助于在舒适的图形化界面中搜索包以及安装和删除它们。 -想知道你应该使用 [pacman 命令][3]的哪个图形前端?我有一些建议可以帮助你入门。 +想知道你应该使用 [pacman 命令][3] 的哪个图形前端?我有一些建议可以帮助你。 **请注意,某些软件管理器是特定于桌面环境的。** -### 1. Apper +### 1、Apper ![使用 Apper 安装 Firefox][4] -Apper 是使用 PackageKit 的最小化 Qt5 应用和包管理器,它还支持 AppStream 和自动更新。但是,**没有 AUR 支持**。 +Apper 是一个精简的 Qt5 应用,它使用 PackageKit 进行包管理,它还支持 AppStream 和自动更新。但是,**没有 AUR 支持**。 -要从官方仓库安装它,请使用以下命令。 +要从官方仓库安装它,请使用以下命令: ``` sudo pacman -Syu apper ``` -[GitLab 上的应用][5] +> **[GitLab 上的 Apper][5]** -### 2. 深度应用商店 +### 2、深度应用商店 ![使用深度应用商店安装 Firefox][6] -深度应用商店是深度桌面环境的应用商店,使用 DTK(QT5)构建,使用 PackageKit,支持 AppStream,同时提供系统更新通知。 **没有 AUR 支持**。 +深度应用商店是使用 DTK(QT5)构建的深度桌面环境的应用商店,它使用 PackageKit 进行包管理,支持 AppStream,同时提供系统更新通知。 **没有 AUR 支持**。 -要安装它,请使用以下命令。 +要安装它,请使用以下命令: ``` sudo pacman -Syu deepin-store ``` -[Github 上的深度商店][7] +> **[Github 上的深度商店][7]** -### 3. Discover +### 3、KDE 发现应用 ![使用 Discover 安装 Firefox][8] -Discover 不需要为 KDE Plasma 用户介绍。它是一个使用 PackageKit 的基于 Qt 的应用管理器,支持 AppStream、Flatpak 和固件更新。 +发现Discover 应用不需要为 KDE Plasma 用户介绍。它是一个使用 PackageKit 的基于 Qt 的应用管理器,支持 AppStream、Flatpak 和固件更新。 -为了安装 Flatpak 和固件更新,需要分别安装 Discover 的 `flatpak` 和 `fwupd` 包。 - -它没有 AUR 支持。 +要在发现应用中安装 Flatpak 和固件更新,需要分别安装 `flatpak` 和 `fwupd` 包。**它没有 AUR 支持。** ``` sudo pacman -Syu discover packagekit-qt5 ``` -[GitLab 上的 Discover][9] +> **[GitLab 上的 Discover][9]** -### 4. GNOME PackageKit +### 4、GNOME PackageKit ![Installing Firefox using GNOME PackageKit][10] -GNOMEPackageKit 是一个使用 PackageKit 的 GTK3 包管理器,支持 AppStream。不幸的是,**没有 AUR 支持**。 +GNOME PackageKit 是一个使用 PackageKit 技术的 GTK3 包管理器,支持 AppStream。不幸的是,**没有 AUR 支持**。 -要从官方仓库安装它,请使用以下命令。 +要从官方仓库安装它,请使用以下命令: ``` sudo pacman -Syu gnome-packagekit @@ -79,13 +80,13 @@ sudo pacman -Syu gnome-packagekit [freedesktop 上的 PackageKit][11] -### 5. GNOME 软件 +### 5、GNOME 软件应用 ![Installing Firefox using GNOME Software][12] -GNOME 软件不需要向 GNOME 桌面用户介绍。它是使用 PackageKit 的 GTK4 应用管理器,支持 AppStream、Flatpak 和固件更新。 +GNOME 软件Software 应用不需要向 GNOME 桌面用户介绍。它是使用 PackageKit 技术的 GTK4 应用管理器,支持 AppStream、Flatpak 和固件更新。 -它没有 AUR 支持。要安装来自 GNOME 软件的 Flatpak 和固件更新,需要分别安装 `flatpak` 和 `fwupd` 包。 +**它没有 AUR 支持。**要安装来自 GNOME 软件应用的 Flatpak 和固件更新,需要分别安装 `flatpak` 和 `fwupd` 包。 安装它使用: @@ -93,29 +94,29 @@ GNOME 软件不需要向 GNOME 桌面用户介绍。它是使用 PackageKit 的 sudo pacman -Syu gnome-software-packagekit-plugin gnome-software ``` -[GitLab 上的 GNOME 软件][13] +> **[GitLab 上的 GNOME 软件][13]** -### 6. tkPacman +### 6、tkPacman ![使用 tkPacman 安装 Firefox][14] -它是用 Tcl 编写的 Tk pacman 包装器。界面类似于 [Synaptic 包管理器][15]。 +它是用 Tcl 编写的 Tk pacman 封装。界面类似于 [Synaptic 包管理器][15]。 由于没有 GTK/Qt 依赖,它非常轻量级,因为它使用 Tcl/Tk GUI 工具包。 -它不支持 AUR,这很讽刺,因为你需要从 [AUR][16] 安装它。你需要事先安装一个 [AUR 助手][17],如 yay。 +**它不支持 AUR**,这很讽刺,因为你需要从 [AUR][16] 安装它。你需要事先安装一个 [AUR 助手][17],如 yay。 ``` yay -Syu tkpacman ``` -[Sourceforge 上的 tkPacman][18] +> **[Sourceforge 上的 tkPacman][18]** -### 7. Octopi +### 7、Octopi ![使用 Octopi 安装 Firefox][19] -可以认为它是 tkPacman 的更好看的表亲。它使用 Qt5 和 Alpm,还支持 Appstream 和 **AUR (通过 yay)**。 +可以认为它是 tkPacman 的更好看的表亲。它使用 Qt5 和 Alpm,还支持 Appstream 和 **AUR(通过 yay)**。 你还可以获得桌面通知、仓库编辑器和缓存清理器。它的界面类似于 Synaptic 包管理器。 @@ -125,9 +126,9 @@ yay -Syu tkpacman yay -Syu octopi ``` -[GitHub 上的 Octopi][20] +> **[GitHub 上的 Octopi][20]** -### 8. Pamac +### 8、Pamac ![使用 Pamac 安装 Firefox][21] @@ -135,7 +136,7 @@ Pamac 是 Manjaro Linux 的图形包管理器。它基于 GTK3 和 Alpm,**支 Pamac 还支持自动下载更新和降级软件包。 -它是 Arch Linux 衍生版中使用最广泛的应用。但因为 [DDoS AUR 网页][22]而臭名昭著。 +它是 Arch Linux 衍生版中使用最广泛的应用。但因为 [DDoS AUR 网页][22] 而臭名昭著。 [在 Arch Linux 上安装 Pamac][23] 有几种方法。最简单的方法是使用 AUR 助手。 @@ -143,11 +144,11 @@ Pamac 还支持自动下载更新和降级软件包。 yay -Syu pamac-aur ``` -[GitLab 上的 Pamac][24] +> **[GitLab 上的 Pamac][24]** ### 总结 -要删除任何上面 GUI 包管理器以及依赖项和配置文件,请使用以下命令将 _packagename_ 替换为要删除的包的名称。 +要删除任何上面图形化包管理器以及依赖项和配置文件,请使用以下命令将 `packagename` 替换为要删除的包的名称。 ``` sudo pacman -Rns packagename @@ -155,11 +156,11 @@ sudo pacman -Rns packagename 这样看来,Arch Linux 也可以在不接触终端的情况下使用合适的工具。 -还有一些其他应用程序也使用终端用户界面 (TUI)。一些例子是 [pcurses][25]、[cylon][26]、[pacseek][27] 和 [yup][28]。但是,这篇文章只讨论那些有适当的 GUI 的软件。 +还有一些其他应用程序也使用终端用户界面(TUI)。一些例子是 [pcurses][25]、[cylon][26]、[pacseek][27] 和 [yup][28]。但是,这篇文章只讨论那些有适当的 GUI 的软件。 -**注意:** PackageKit 默认打开系统权限,否则[不推荐][29]用于一般用途。因为如果用户是 wheel 组的一部分,更新或安装任何软件都不需要密码。 +**注意:** PackageKit 默认打开系统权限,因而 [不推荐][29] 用于一般用途。因为如果用户属于 `wheel` 组,更新或安装任何软件都不需要密码。 -**你看到了在 Arch Linux 上使用 GUI 软件中心的几种选择。现在是时候决定使用其中一个了。你会选择哪一个?Pamac 或 OctoPi 还是其他?现在就在下面留言吧**。 +**你看到了在 Arch Linux 上使用图形化软件中心的几种选择。现在是时候决定使用其中一个了。你会选择哪一个?Pamac 或 OctoPi 还是其他?现在就在下面留言吧**。 --- @@ -168,7 +169,7 @@ via: https://itsfoss.com/arch-linux-gui-package-managers/ 作者:[Anuj Sharma][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/) 荣誉推出 From 1caf495191c290b0f9b1518fe647cc8bcb7d3341 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 17 Oct 2022 15:23:33 +0800 Subject: [PATCH 1589/3123] R --- ...pps for Package Management in Arch Linux.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/published/20220927 GUI Apps for Package Management in Arch Linux.md b/published/20220927 GUI Apps for Package Management in Arch Linux.md index 42023d8967..6c226d7d88 100644 --- a/published/20220927 GUI Apps for Package Management in Arch Linux.md +++ b/published/20220927 GUI Apps for Package Management in Arch Linux.md @@ -78,7 +78,7 @@ GNOME PackageKit 是一个使用 PackageKit 技术的 GTK3 包管理器,支持 sudo pacman -Syu gnome-packagekit ``` -[freedesktop 上的 PackageKit][11] +> **[freedesktop 上的 PackageKit][11]** ### 5、GNOME 软件应用 @@ -86,7 +86,7 @@ sudo pacman -Syu gnome-packagekit GNOME 软件Software 应用不需要向 GNOME 桌面用户介绍。它是使用 PackageKit 技术的 GTK4 应用管理器,支持 AppStream、Flatpak 和固件更新。 -**它没有 AUR 支持。**要安装来自 GNOME 软件应用的 Flatpak 和固件更新,需要分别安装 `flatpak` 和 `fwupd` 包。 +**它没有 AUR 支持。** 要安装来自 GNOME 软件应用的 Flatpak 和固件更新,需要分别安装 `flatpak` 和 `fwupd` 包。 安装它使用: @@ -180,22 +180,22 @@ via: https://itsfoss.com/arch-linux-gui-package-managers/ [3]: https://itsfoss.com/pacman-command/ [4]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png [5]: https://invent.kde.org/system/apper -[6]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[6]: https://itsfoss.com/wp-content/uploads/2022/09/dde-arch-install-firefox.png [7]: https://github.com/dekzi/dde-store -[8]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[8]: https://itsfoss.com/wp-content/uploads/2022/09/discover-arch-install-firefox.png [9]: https://invent.kde.org/plasma/discover -[10]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[10]: https://itsfoss.com/wp-content/uploads/2022/09/gnome-packagekit-arch-install-firefox.png [11]: https://freedesktop.org/software/PackageKit/index.html -[12]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[12]: https://itsfoss.com/wp-content/uploads/2022/09/gnome-software-arch-install-firefox.png [13]: https://gitlab.gnome.org/GNOME/gnome-software -[14]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[14]: https://itsfoss.com/wp-content/uploads/2022/09/tkpacman-arch-install-firefox.png [15]: https://itsfoss.com/synaptic-package-manager/ [16]: https://itsfoss.com/aur-arch-linux/ [17]: https://itsfoss.com/best-aur-helpers/ [18]: https://sourceforge.net/projects/tkpacman -[19]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[19]: https://itsfoss.com/wp-content/uploads/2022/09/octopi-arch-install-firefox.png [20]: https://github.com/aarnt/octopi -[21]: https://itsfoss.com/wp-content/uploads/2022/09/apper-arch-install-firefox.png +[21]: https://itsfoss.com/wp-content/uploads/2022/09/pamac-arch-install-firefox.png [22]: https://gitlab.manjaro.org/applications/pamac/-/issues/1017 [23]: https://itsfoss.com/install-pamac-arch-linux/ [24]: https://gitlab.manjaro.org/applications/pamac From b58f9f0b9fb58f7afa56519e6ff9eff58e06ee1c Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 17 Oct 2022 20:38:17 +0800 Subject: [PATCH 1590/3123] Update and rename sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md to translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md --- ...mendations from open source enthusiasts.md | 184 ------------------ ...mendations from open source enthusiasts.md | 173 ++++++++++++++++ 2 files changed, 173 insertions(+), 184 deletions(-) delete mode 100644 sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md create mode 100644 translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md diff --git a/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md b/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md deleted file mode 100644 index fc58c3ce11..0000000000 --- a/sources/talk/20220621 7 summer book recommendations from open source enthusiasts.md +++ /dev/null @@ -1,184 +0,0 @@ -[#]: subject: "7 summer book recommendations from open source enthusiasts" -[#]: via: "https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list" -[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 summer book recommendations from open source enthusiasts -====== -Members of the Opensource.com community recommend this mix of books covering everything from a fun cozy mystery to non-fiction works that explore thought-provoking topics. - -![Ceramic mug of tea or coffee with flowers and a book in front of a window][1] - -Image by: Photo by [Carolyn V][2] on [Unsplash][3] - -It is my great pleasure to introduce Opensource.com's 2022 summer reading list. This year's list contains seven wonderful reading recommendations from members of the Opensource.com community. You will find a nice mix of books covering everything from a fun cozy mystery to non-fiction works that explore thought-provoking topics. I hope you find something on this list that interests you. - -Enjoy! - -![Book title 97 Things Every Java Programmer Should Know][4] - -Image by: O'Reilly Press - -**[97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts, edited by Kevlin Henney and Trisha Gee][5]** - -*[Recommendation written by Seth Kenlon][6]* - -Written by 73 different authors working in all aspects of the software industry, the secret to this book's greatness is that it actually applies to much more than just Java programming. Of course, some chapters lean into Java, but there are topics like Be aware of your container surroundings, Deliver better software, faster, and Don't hIDE your tools that apply to development regardless of language. - -Better still, some chapters apply to life in general. Break problems and tasks into small chunks is good advice on how to tackle any problem, Build diverse teams is important for every group of collaborators, and From puzzles to products is a fascinating look at how the mind of a puzzle-solver can apply to many different job roles. - -Each chapter is just a few pages, and with 97 to choose from, it's easy to skip over the ones that don't apply to you. Whether you write Java code all day, just dabble, or if you haven't yet started, this is a great book for geeks interested in code and the process of software development. - -![Book title A City is Not a Computer][7] - -Image by: Princeton University Press - -**[A City is Not a Computer: Other Urban Intelligences, by Shannon Mattern][8]** - -*[Recommendation written by Scott Nesbitt][9]* - -These days, it's become fashionable (if not inevitable) to make everything *smart*: Our phones, our household appliances, our watches, our cars, and, especially, our cities. - -With the latter, that means putting sensors everywhere, collecting data as we go about our business, and pushing information (whether useful or not) to us based on that data. - -This begs the question, does embedding all that technology in a city make it smart? In *A City Is Not a Computer*, Shannon Mattern argues that it doesn't. - -A goal of making cities smart is to provide better engagement with and services to citizens. Mattern points out that smart cities often "aim to merge the ideologies of technocratic managerialism and public service, to reprogram citizens as 'consumers' and 'users'." That, instead of encouraging citizens to be active participants in their cities' wider life and governance. - -Then there's the data that smart systems collect. We don't know what and how much is being gathered. We don't know how it's being used and by whom. There's *so much* data being collected that it overwhelms the municipal workers who deal with it. They can't process it all, so they focus on low-hanging fruit while ignoring deeper and more pressing problems. That definitely wasn't what cities were promised when they were sold smart systems as a balm for their urban woes. - -*A City Is Not a Computer* is a short, dense, well-researched polemic against embracing smart cities because technologists believe we should. The book makes us think about the purpose of a smart city, who really benefits from making a city smart, and makes us question whether we need to or even should do that. - -![Book title git sync murder][10] - -Image by: Tilted Windmill Press - -**[git sync murder, by Michael Warren Lucas][11]** - -*[Recommendation written by Joshua Allen Holm][12]* - -Dale Whitehead would rather stay at home and connect to the world through his computer's terminal, especially after what happened at the last conference he attended. During that conference, Dale found himself in the role of an amateur detective solving a murder. You can read about that case in the first book in this series, *git commit murder*. - -Now, back home and attending another conference, Dale again finds himself in the role of detective. *git sync murder* finds Dale attending a local tech conference/sci-fi convention where a dead body is found. Was it murder or just an accident? Dale, now the "expert" on these matters, finds himself dragged into the situation and takes it upon himself to figure out what happened. To say much more than that would spoil things, so I will just say *git sync murder* is engaging and enjoyable to read. Reading *git commit murder* first is not necessary to enjoy *git sync murder*, but I highly recommend both books in the series. - -Michael Warren Lucas's *git murder* series is perfect for techies who also love cozy mysteries. Lucas has literally written the book on many complex technical topics, and it carries over to his fiction writing. The characters in *git sync murder* talk tech at conference booths and conference social events. If you have not been to a conference recently because of COVID and miss the experience, Lucas will transport you to a tech conference with the added twist of a murder mystery to solve. Dale Whitehead is an interesting, if somewhat unorthodox, cozy mystery protagonist, and I think most Opensource.com readers would enjoy attending a tech conference with him as he finds himself thrust into the role of amateur sleuth. - -![Book title Kick Like a Girl][13] - -Image by: Inner Wings Foundation - -**[Kick Like a Girl, by Melissa Di Donato Roos][14]** - -*[Recommendation written by Joshua Allen Holm][15]* - -Nobody likes to be excluded, but that is what happens to Francesca when she wants to play football at the local park. The boys won't play with her because she's a girl, so she goes home upset. Her mother consoles her by relating stories about various famous women who have made an impact in some significant way. The historical figures detailed in *Kick Like a Girl* include women from throughout history and from many different fields. Readers will learn about Frida Kahlo, Madeleine Albright, Ada Lovelace, Rosa Parks, Amelia Earhart, Marie Curie, Valentina Tereshkova, Florence Nightingale, and Malala Yousafzai. After hearing the stories of these inspiring figures, Francesca goes back to the park and challenges the boys to a football match. - -*Kick Like a Girl* features engaging writing by Melissa Di Donato Roos (SUSE's CEO) and excellent illustrations by Ange Allen. This book is perfect for young readers, who will enjoy the rhyming text and colorful illustrations. Di Donato Roos has also written two other books for children, *How Do Mermaids Poo?* and *The Magic Box*, both of which are also worth checking out. - -![Book title Mine!][16] - -Image by: Doubleday - -**[Mine!: How the Hidden Rules of Ownership Control Our Lives, by Michael Heller and James Salzman][17]** - -*[Recommendation written by Bryan Behrenshausen][18]* - -"A lot of what you know about ownership is wrong," authors Michael Heller and James Salzman write in *Mine!* It's the kind of confrontational invitation people drawn to open source can't help but accept. And this book is certainly one for open source aficionados, whose views on ownership—of code, of ideas, of intellectual property of all kinds—tend to differ from mainstream opinions and received wisdom. In this book, Heller and Salzman lay out the "hidden rules of ownership" that govern who controls access to what. These rules are subtle, powerful, deeply historical conventions that have become so commonplace they just seem incontrovertible. We know this because they've become platitudes: "First come, first served" or "You reap what you sow." Yet we see them play out everywhere: On airplanes in fights over precious legroom, in the streets as neighbors scuffle over freshly shoveled parking spaces, and in courts as juries decide who controls your inheritance and your DNA. Could alternate theories of ownership create space for rethinking some essential rights in the digital age? The authors certainly think so. And if they're correct, we might respond: Can open source software serve as a model for how ownership works—or doesn't—in the future? - -![Book Title Not All Fairy Tales Have Happy Endings][19] - -Image by: Lulu.com - -**[Not All Fairy Tales Have Happy Endings: The Rise and Fall of Sierra On-Line, by Ken Williams][20]** - -*[Recommendation written by Joshua Allen Holm][21]* - -During the 1980s and 1990s, Sierra On-Line was a juggernaut in the computer software industry. From humble beginnings, this company, founded by Ken and Roberta Williams, published many iconic computer games. King's Quest, Space Quest, Quest for Glory, Leisure Suit Larry, and Gabriel Knight are just a few of the company's biggest franchises. - -*Not All Fairy Tales Have Happy Endings* covers everything from the creation of Sierra's first game, [Mystery House][22], to the company's unfortunate and disastrous acquisition by CUC International and the aftermath. The Sierra brand would live on for a while after the acquisition, but the Sierra founded by the Williams was no more. Ken Williams recounts the entire history of Sierra in a way that only he could. His chronological narrative is interspersed with chapters providing advice about management and computer programming. Ken Williams had been out of the industry for many years by the time he wrote this book, but his advice is still extremely relevant. - -Sierra On-Line is no more, but the company made a lasting impact on the computer gaming industry. *Not All Fairy Tales Have Happy Endings* is a worthwhile read for anyone interested in the history of computer software. Sierra On-Line was at the forefront of game development during its heyday, and there are many valuable lessons to learn from the man who led the company during those exciting times. - -![Book title The Soul of a New Machine][23] - -Image by: Back Bay Books - -**[The Soul of a New Machine, by Tracy Kidder][24]** - -*[Recommendation written by Guarav Kamathe][25]* - -I am an avid reader of the history of computing. It's fascinating to know how these intelligent machines that we have become so dependent on (and often take for granted) came into being. I first heard of [The Soul of a New Machine][26] via [Bryan Cantrill][27]'s [blog post][28]. This is a non-fiction book written by [Tracy Kidder][29] and published in 1981 for which he [won a Pulitzer prize][30]. Imagine it's the 1970s, and you are part of the engineering team tasked with designing the [next generation computer][31]. The backdrop of the story begins at Data General Corporation, a then mini-computer vendor who was racing against time to compete with the 32-bit VAX computers from Digital Equipment Corporation (DEC). The book outlines how two competing teams within Data General, both wanting to take a shot at designing the new machine, results in a feud. What follows is a fascinating look at the events that unfold. The book provides insights into the minds of the engineers involved, the management, their work environment, the technical challenges they faced along the way and how they overcame them, how stress affected their personal lives, and much more. Anybody who wants to know what goes into making a computer should read this book. - -There is the 2022 suggested reading list. It provides a variety of great options that I believe will provide Opensource.com readers with many hours of thought-provoking entertainment. Be sure to check out our previous reading lists for even more book recommendations. - -* [2021 Opensource.com summer reading list][32] -* [2020 Opensource.com summer reading list][33] -* [2019 Opensource.com summer reading list][34] -* [2018 Open Organization summer reading list][35] -* [2016 Opensource.com summer reading list][36] -* [2015 Opensource.com summer reading list][37] -* [2014 Opensource.com summer reading list][38] -* [2013 Opensource.com summer reading list][39] -* [2012 Opensource.com summer reading list][40] -* [2011 Opensource.com summer reading list][41] -* [2010 Opensource.com summer reading list][42] - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list - -作者:[Joshua Allen Holm][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/holmja -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/tea-cup-mug-flowers-book-window.jpg -[2]: https://unsplash.com/@sixteenmilesout?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/tea?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://opensource.com/sites/default/files/2022-06/97_Things_Every_Java_Programmer_Should_Know_1.jpg -[5]: https://www.oreilly.com/library/view/97-things-every/9781491952689/ -[6]: https://opensource.com/users/seth -[7]: https://opensource.com/sites/default/files/2022-06/A_City_is_Not_a_Computer_0.jpg -[8]: https://press.princeton.edu/books/paperback/9780691208053/a-city-is-not-a-computer -[9]: https://opensource.com/users/scottnesbitt -[10]: https://opensource.com/sites/default/files/2022-06/git_sync_murder_0.jpg -[11]: https://mwl.io/fiction/crime#gsm -[12]: https://opensource.com/users/holmja -[13]: https://opensource.com/sites/default/files/2022-06/Kick_Like_a_Girl.jpg -[14]: https://innerwings.org/books/kick-like-a-girl -[15]: https://opensource.com/users/holmja -[16]: https://opensource.com/sites/default/files/2022-06/Mine.jpg -[17]: https://www.minethebook.com/ -[18]: https://opensource.com/users/bbehrens -[19]: https://opensource.com/sites/default/files/2022-06/Not_All_Fairy_Tales.jpg -[20]: https://kensbook.com/ -[21]: https://opensource.com/users/holmja -[22]: https://en.wikipedia.org/wiki/Mystery_House -[23]: https://opensource.com/sites/default/files/2022-06/The_Soul_of_a_New_Machine.jpg -[24]: https://www.hachettebookgroup.com/titles/tracy-kidder/the-soul-of-a-new-machine/9780316204552/ -[25]: https://opensource.com/users/gkamathe -[26]: https://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine -[27]: https://en.wikipedia.org/wiki/Bryan_Cantrill -[28]: http://dtrace.org/blogs/bmc/2019/02/10/reflecting-on-the-soul-of-a-new-machine/ -[29]: https://en.wikipedia.org/wiki/Tracy_Kidder -[30]: https://www.pulitzer.org/winners/tracy-kidder -[31]: https://en.wikipedia.org/wiki/Data_General_Eclipse_MV/8000 -[32]: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list -[33]: https://opensource.com/article/20/6/summer-reading-list -[34]: https://opensource.com/article/19/6/summer-reading-list -[35]: https://opensource.com/open-organization/18/6/summer-reading-2018 -[36]: https://opensource.com/life/16/6/2016-summer-reading-list -[37]: https://opensource.com/life/15/6/2015-summer-reading-list -[38]: https://opensource.com/life/14/6/annual-reading-list-2014 -[39]: https://opensource.com/life/13/6/summer-reading-list-2013 -[40]: https://opensource.com/life/12/7/your-2012-open-source-summer-reading -[41]: https://opensource.com/life/11/7/summer-reading-list -[42]: https://opensource.com/life/10/8/open-books-opensourcecom-summer-reading-list diff --git a/translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md b/translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md new file mode 100644 index 0000000000..0c184ad03e --- /dev/null +++ b/translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md @@ -0,0 +1,173 @@ +[#]: subject: "7 summer book recommendations from open source enthusiasts" +[#]: via: "https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list" +[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +来自开源爱好者的 7 本读物推荐 +====== +Opensource.com 社区的成员推荐这些书籍,涵盖了从有趣的悬疑小说到发人深省的非小说作品的各种类型,你一定能从中找到一本你想看的书! + +![Ceramic mug of tea or coffee with flowers and a book in front of a window][1] + +很高兴能为大家介绍 Opensource.com 的 2022 年暑期阅读清单。今年的榜单包含来自 Opensource.com 社区成员的 7 本精彩的读物推荐。你可以发现各种各样的书籍,涵盖从有趣舒适的谜团到探索发人深省主题的非小说类作品。我希望你能在这个榜单中找到感兴趣的书本。 + +请享受吧! + +![Book title 97 Things Every Java Programmer Should Know][4] + +**[《每个 Java 程序员都应该知道的 97 件事》:专家的集体智慧,作者:Kevlin Henney 和 Trisha Gee][5]** +(97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts, edited by Kevlin Henney and Trisha Gee) + +*[由 Seth Kenlon 推荐][6]* + +这本书是由 73 位在软件行业工作的不同作者共同撰写。它的优秀之处在于它不仅仅适用于 Java 编程。当然,有些章节会涉及 Java,但是也还有一些其他话题,例如了解你的容器环境、如何更快更好地交付软件、以及无论使用哪种语言都不要隐藏适用于开发的工具。 + +更好的是,有些章节同样适用于生活中的问题。将问题和任务分成小的部分是解决任何问题的好建议;建立多元化的团队对所有合作者都很重要;由从散乱的一块块拼图到拼好的完成品中,得到拼图玩家的思想如何应用于不同的工作角色。 + +每章只有几页,总共有 97 个章节,你可以轻松跳过不适用于你自己的章节。无论你是一直在写 Java 代码、或者只是学过一点 Java,亦或是尚未开始学习 Java,对于对代码和软件开发过程感兴趣的极客来说,这都会是一本好书。 + +![Book title A City is Not a Computer][7] + +**[《城市不是计算机:其他的城市智能》,作者:Shannon Mattern][8]** +(A City is Not a Computer: Other Urban Intelligences, by Shannon Mattern) + +*[由 Scott Nesbitt 推荐][9]* + +如今,让一切变得智能已经成为一种 *时尚*:我们的手机、家用电器、手表、汽车,甚至是城市都变得智能化了。 + +对于城市的智能化,这意味着传感器变得无处不在,在我们开展业务时收集数据,并根据这些数据向我们推送信息(无论数据有用与否)。 + +这就引出了一个问题,将所有高科技技术嵌入到城市中是否会使得城市智能化呢?在《城市不是计算机》这本书中,作者 Shannon Mattern 认为并不是这样的。 + +城市智能化的目标之一是为市民提供服务和更好的城市参与感。Mattern 指出,但是实际上,智慧城市希望将技术专家的管理想法与公共服务相融合,从而将公民重新设置为‘消费者’和‘用户’,然而,这并不是在鼓励公民积极参与城市的生活和治理。 + +第二个问题是关于智慧城市收集的数据。我们不知道收集了什么数据,以及收集了多少数据。我们也不知道这些数据使用在什么地方,以及是谁使用的。收集的数据太多了,以至于处理数据的市政工作人员会不堪重负。他们无法处理所有数据,因此他们专注于短期容易实现的任务,而忽略了更深层次和更紧迫的问题。这绝对达不到在推广智慧城市时所承诺的目标:智慧城市将成为解决城市困境的良药。 + +《城市不是计算机》是一篇短小精悍、经过深入研究的、反对拥抱智慧城市的议论文。这本书让我们思考智慧城市的真正目的:要让百姓真正受益于城市智能化,并引发我们的思考:发展智慧城市是否必要呢。 + +![Book title git sync murder][10] + +**[《git sync 谋杀》,作者:Michael Warren Lucas][11]** +(git sync murder, by Michael Warren Lucas) + +*[由 Joshua Allen Holm 推荐][12]* + +Dale Whitehead 宁愿呆在家里,通过他的电脑终端与世界连接,尤其是在他参加的最后一次会议上发生的事情之后。在那次会议上,Dale 扮演了一个业余侦探的角色,要解决一桩谋杀案。你可以在本系列的第一本书《git commit 谋杀(git commit murder)》中阅读这个故事。 + +现在,Dale 回到家,并参加了另一个会议,他再次发现自己成为了侦探。在《git sync 谋杀(git sync murder)》中,Dale 参加了一个当地科技会议,会议上发现一具尸体。这是谋杀,还是只是一场意外?现在,Dale 是这些问题的“专家”,他发现自己被卷入了这件事,并要亲自去弄清楚到底发生了什么。再多说的话就剧透了,所以我能说《git sync 谋杀》这本书十分引人入胜,而且读起来很有趣。不必先阅读《git commit 谋杀(git commit murder)》,才能阅读《git sync 谋杀》,但我强烈推荐一起阅读该系列中的这两本书。 + +作者 Michael Warren Lucas 的“git 谋杀”系列非常适合喜欢悬疑小说的科技迷。Lucas 写过很多复杂的技术题材的书,这本书也延续了他的技术题材,《git sync 谋杀》这本书中的人物在会议活动上谈论技术话题。如果你因为新冠疫情,最近没有参加过会议,错过了参会体验的话,Lucas 将带你参加一个技术会议,其中还有一个谋杀之谜以待解决。Dale Whitehead 是一个有趣的业余侦探,我相信大多数 Opensource.com 的读者会喜欢和 Dale 一起参加技术会议,并充当侦探破解谜案的。 + +![Book title Kick Like a Girl][13] + +**[《像女孩一样踢球》, 作者:Melissa Di Donato Roos][14]**(Kick Like a Girl) + +*[由 Joshua Allen Holm 推荐][15]* + +没有人喜欢被孤立,当女孩 Francesca 想在公园里踢足球时,她也是这样。男孩们不会和她一起玩,因为她是女孩,所以她不高兴地回家了。她的母亲通过讲述有重要影响力的著名女性的故事来安慰她。《像女孩一样踢球》中详述的历史人物包括历史中来自许多不同领域的女性。读者将了解 Frida Kahlo、Madeleine Albright、Ada Lovelace、Rosa Parks、Amelia Earhart、Marie Curie、Valentina Tereshkova、Florence Nightingale 和 Malala Yousafzai 的故事。听完这些鼓舞人心的人物故事后,Francesca 回到公园,向男孩们发起了一场足球挑战。 + +《像女孩一样踢球》这本书的特色是作者 Melissa Di Donato Roos(SUSE(译注:SUSE是一家总部位于德国的软件公司,创立于1992年,以提供企业级Linux为主要业务)的 CEO)引人入胜的写作和 Ange Allen 的出色插图。这本书非常适合年轻读者,他们会喜欢押韵的文字和书中的彩色插图。Melissa Di Donato Roos 还写了另外两本童书,《美人鱼如何便便(How Do Mermaids Poo?)》和《魔盒(The Magic Box)》,这两本书也都值得一读。 + +![Book title Mine!][16] + +**[《这是我的!:所有权的潜规则如何控制着我们的生活》, 作者:Michael Heller 和 James Salzman][17]** +(Mine!: How the Hidden Rules of Ownership Control Our Lives) + +*[由 Bryan Behrenshausen 推荐][18]* + +作者 Michael Heller 和 James Salzman 在文章《这是我的!》中写道:“你对所有权的很多了解都是错误的”。这是一种被吸引到开源领域的人不得不接受所有权规则的对抗性邀请。这本书是为开源爱好者而写的,他们对代码、思想、各种知识产权的所有权的看法往往与主流观点和普遍接受的认知不同。在本书中,Heller 和 Salzman 列出了“所有权的隐藏规则”,这些规则管理着谁能控制对什么事物的访问。这些所有权规则是微妙的、强大的、有着深刻的历史惯例。这些所有权规则已经变得如此普遍,以至于看起来无可争议,这是因为“先到先得”或“种瓜得瓜,种豆得豆”的规则已经成为陈词滥调。然而,我们看到它们无处不在:在飞机上,为宝贵的腿部空间而战;在街道上,邻居们为铲好雪的停车位发生争执;在法庭上,陪审团决定谁能控制你的遗产和你的 DNA。在当下的数字时代,所有权的替代理论能否为重新思考基本权利创造空间?作者认为这是可以的。如果这是正确的,我们可能会回应:在未来,开源软件能否成为所有权运作的模型呢? + +![Book Title Not All Fairy Tales Have Happy Endings][19] + +**[并非所有童话故事都有幸福的结局:雪乐山公司(Sierra On-Line)的兴衰, 作者:Ken Williams][20]** +(Not All Fairy Tales Have Happy Endings: The Rise and Fall of Sierra On-Line) + +*[由 Joshua Allen Holm 推荐][21]* + +在 1980 年代和 1990 年代,雪乐山公司(Sierra On-Line)是计算机软件行业的巨头。这家由 Ken 和 Roberta Williams 创立的公司,出身并不起眼,但却发布了许多标志性的电脑游戏。King's Quest、Space Quest、Quest for Glory、Leisure Suit Larry 和 Gabriel Knight 只是该公司版权中的很小一部分。 + +《并非所有童话故事都有幸福的结局》这本书,涵盖了从雪乐山公司发布第一款游戏 [Mystery House][22],到该公司不幸地被 CUC International 收购以及后续的所有内容。Sierra 品牌在被收购后仍会存活了一段时间,但 Williams 创立的 Sierra 已不复存在。Ken Williams 以只有他能做到的方式,讲述了雪乐山公司的整个历史。Sierra 的历史叙述穿插在 Williams 提出的管理和计算机编程建议的章节之中。虽然 Ken Williams 在写这本书时,已经离开这个行业很多年了,但他的建议仍然非常重要。 + +虽然雪乐山公司已不复存在,但该公司对计算机游戏行业产生了持久的影响。对于任何对计算机软件历史感兴趣的人来说,《并非所有童话故事都有美好的结局》都是值得一读的。雪乐山公司在其鼎盛时期处于游戏开发的最前沿,从带领公司走过那个激动人心的岁月的 Ken Williams 身上,我们可以学到许多宝贵的经验。 + +![Book title The Soul of a New Machine][23] + +**[《新机器的灵魂》, 作者:Tracy Kidder][24]**(The Soul of a New Machine) + +*[由 Guarav Kamathe 推荐][25]* + +我是计算机历史的狂热读者。知道这些人们如此依赖(并且经常被认为是理所当然)的计算机是如何形成的,真是令人着迷!我是在 [Bryan Cantrill][27] 的博客文章中,第一次听说 [《新机器的灵魂》][26] (The Soul of a New Machine)这本书的。这是一本由 [Tracy Kidder][29] 编著的非小说类书籍,于 1981 年出版,作者Tracy Kidder也因此获得了 [普利策奖][30]。故事发生在 1970 年代,想象一下你是负责设计 [下一代计算机][31] 工程团队中的一员。故事的背景是在通用数据公司(Data General Corporation),该公司当时是一家小型计算机供应商,正在与美国数字设备公司(Digital Equipment Corporation,简称DEC)的 32 位 VAX 计算机相竞争。这本书概述了通用数据公司内部的两个都想尝试设计新机器的竞争团队,是如何发生不和的。接下来,细致地描绘了随之展开的事件。这本书深入地讲述了相关工程师的思想、他们的工作环境、他们在此过程中面临的技术挑战、他们是如何克服这些困难的、以及压力如何影响到了他们的个人生活等等。任何想知道计算机是怎么制造出来的人都应该阅读这本书。 + +以上就是2022年的推荐阅读书目。它提供了很多非常棒的选择,我相信 Opensource.com 的读者能得到数小时发人深省的阅读时光。想获取更多书籍推荐,请查看我们历年的阅读书目。 + +* [2021 年 Opensource.com 推荐阅读书目][32] +* [2020 年 Opensource.com 推荐阅读书目][33] +* [2019 年 Opensource.com 推荐阅读书目][34] +* [2018 年 Open Organization 推荐阅读书目][35] +* [2016 年 Opensource.com 推荐阅读书目][36] +* [2015 年 Opensource.com 推荐阅读书目][37] +* [2014 年 Opensource.com 推荐阅读书目][38] +* [2013 年 Opensource.com 推荐阅读书目][39] +* [2012 年 Opensource.com 推荐阅读书目][40] +* [2011 年 Opensource.com 推荐阅读书目][41] +* [2010 年 Opensource.com 推荐阅读书目][42] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list + +作者:[Joshua Allen Holm][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/holmja +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/tea-cup-mug-flowers-book-window.jpg +[2]: https://unsplash.com/@sixteenmilesout?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://opensource.com/sites/default/files/2022-06/97_Things_Every_Java_Programmer_Should_Know_1.jpg +[5]: https://www.oreilly.com/library/view/97-things-every/9781491952689/ +[6]: https://opensource.com/users/seth +[7]: https://opensource.com/sites/default/files/2022-06/A_City_is_Not_a_Computer_0.jpg +[8]: https://press.princeton.edu/books/paperback/9780691208053/a-city-is-not-a-computer +[9]: https://opensource.com/users/scottnesbitt +[10]: https://opensource.com/sites/default/files/2022-06/git_sync_murder_0.jpg +[11]: https://mwl.io/fiction/crime#gsm +[12]: https://opensource.com/users/holmja +[13]: https://opensource.com/sites/default/files/2022-06/Kick_Like_a_Girl.jpg +[14]: https://innerwings.org/books/kick-like-a-girl +[15]: https://opensource.com/users/holmja +[16]: https://opensource.com/sites/default/files/2022-06/Mine.jpg +[17]: https://www.minethebook.com/ +[18]: https://opensource.com/users/bbehrens +[19]: https://opensource.com/sites/default/files/2022-06/Not_All_Fairy_Tales.jpg +[20]: https://kensbook.com/ +[21]: https://opensource.com/users/holmja +[22]: https://en.wikipedia.org/wiki/Mystery_House +[23]: https://opensource.com/sites/default/files/2022-06/The_Soul_of_a_New_Machine.jpg +[24]: https://www.hachettebookgroup.com/titles/tracy-kidder/the-soul-of-a-new-machine/9780316204552/ +[25]: https://opensource.com/users/gkamathe +[26]: https://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine +[27]: https://en.wikipedia.org/wiki/Bryan_Cantrill +[28]: http://dtrace.org/blogs/bmc/2019/02/10/reflecting-on-the-soul-of-a-new-machine/ +[29]: https://en.wikipedia.org/wiki/Tracy_Kidder +[30]: https://www.pulitzer.org/winners/tracy-kidder +[31]: https://en.wikipedia.org/wiki/Data_General_Eclipse_MV/8000 +[32]: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list +[33]: https://opensource.com/article/20/6/summer-reading-list +[34]: https://opensource.com/article/19/6/summer-reading-list +[35]: https://opensource.com/open-organization/18/6/summer-reading-2018 +[36]: https://opensource.com/life/16/6/2016-summer-reading-list +[37]: https://opensource.com/life/15/6/2015-summer-reading-list +[38]: https://opensource.com/life/14/6/annual-reading-list-2014 +[39]: https://opensource.com/life/13/6/summer-reading-list-2013 +[40]: https://opensource.com/life/12/7/your-2012-open-source-summer-reading +[41]: https://opensource.com/life/11/7/summer-reading-list +[42]: https://opensource.com/life/10/8/open-books-opensourcecom-summer-reading-list From 237eb29691d1ecf3e0038eda58e2c8d2a477a7a4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 18 Oct 2022 08:14:25 +0800 Subject: [PATCH 1591/3123] A --- ...014 First Look at LURE! Bringing AUR to All Linux Distros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md b/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md index 3cd486fa4c..7c4af899da 100644 --- a/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md +++ b/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/lure-aur/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "wxy" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e99a50539850f7f1380147f511b79c910bfe3129 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 18 Oct 2022 08:55:10 +0800 Subject: [PATCH 1592/3123] translated --- ...0221010 Xubuntu 22.10- Top New Features.md | 122 ------------------ ...0221010 Xubuntu 22.10- Top New Features.md | 122 ++++++++++++++++++ 2 files changed, 122 insertions(+), 122 deletions(-) delete mode 100644 sources/tech/20221010 Xubuntu 22.10- Top New Features.md create mode 100644 translated/tech/20221010 Xubuntu 22.10- Top New Features.md diff --git a/sources/tech/20221010 Xubuntu 22.10- Top New Features.md b/sources/tech/20221010 Xubuntu 22.10- Top New Features.md deleted file mode 100644 index 954139e431..0000000000 --- a/sources/tech/20221010 Xubuntu 22.10- Top New Features.md +++ /dev/null @@ -1,122 +0,0 @@ -[#]: subject: "Xubuntu 22.10: Top New Features" -[#]: via: "https://www.debugpoint.com/xubuntu-22-10-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Xubuntu 22.10: Top New Features -====== -Here’s a quick summary of Xubuntu 22.10 Kinetic Kudu and its new features. - -![Xubuntu 22.10 Desktop][1] - -Quality takes time to build. It applies to all phases of life, including software. - -Since Xfce 4.16 release, many new features to Xfce 4.17 (development version) have been added. That includes core Xfce, native applications, adoption of GNOME 43, MATE 1.26 and libadwaita. Since Xfce is also a combination of GNOME and MATE – it takes time to properly incorporate and test the changes. - -In the Xubuntu 22.10 Kinetic Kudu release, you get to experience all the improvements done since December 2020 – almost two years of bug fixes and enhancements. - -Let’s quickly check on the schedule. Currently, the Xubuntu 22.10 beta is out and under testing (link to ISO at the end of this page). The final release is expected on October 20, 2022. - -### Xubuntu 22.10 New Features - -#### Core updates and GNOME framework - -At its core, Xubuntu 22.10 is powered by Linux Kernel 5.19 as its base on Ubuntu 22.10. In addition, the Xfce desktop version is Xfce 4.17. - -The 4.17 version is a development tag because it’s a stepping stone for the next big release, Xfce 4.18, which is [planned for this Christmas.][2] - -Let’s talk about GNOME and related apps. For the first time, Xfce 4.17 in Xubuntu 22.10 gets the libadwaita with GNOME 43 updates. That means the default GNOME apps can render correctly under the Xfce desktop. - -That being said, the GNOME Software 43 looks great under Xfce desktop in Xubuntu 22.10. If you compare this to Xfce native look and GNOME apps with CSD/SSD (such as DIsks) – they all look neat. - -I am surprised at how good Software 43 is with libadwaita/GTK4 rendered under Xfce desktop. - -![Three different window decorations – together in Xubuntu 22.10][3] - -#### Xfce Applications - -The Xfce desktop brings its own native set of applications. All the apps are bumped to version 4.17 from 4.16 in this release. - -Noteworthy changes include the Xfce panel getting middle-click support for the tasklist plugin and binary time mode in the tray clock. The pulse audio plugin introduces a new recording indicator and can filter out multiple button press events. - -Thunar file manager gets a massive set of under-the-hood features and bug fixes. It’s vast if you compare Thunar 4.16 to Thunar 4.17. Changes include an updated context menu, path bar, search, navigation and more. You can read the entire change log of Thunar [here][4]. - -Moreover, the screenshot application screenshooter gets WebP support by default. Bluetooth manager Blueman receives a profile switcher right from the system tray and updates the Catfish file search tool. - -Here’s the updated list of Xfce application versions and a link to their change log (if you want to dig further). - -* Appfinder [4.17.0][5] -* Catfish [4.16.4][6] -* Mousepad [0.5.10][7] -* Panel [4.17.3][8] -* PulseAudio Plugin [0.4.4][9] -* Ristretto [0.12.3][10] -* Screenshooter [1.9.11][11] -* Task Manager [1.5.4][12] -* Terminal [1.0.4][13] -* Thunar [4.17.9][14] - -#### Look and Feel - -The default elementary-xfce icon set (both light and dark) gets updated icon set with extra polished icons to give your Xfce desktop a new look. The default Greybird GTK theme gets the necessary improvements for window decorations and added Openbox support. - -One of the important and visible changes you might notice is the ALT+TAB look. The icons are a little larger and more comfortable for eyes for faster window switching with a dark background. - -![Refreshed icon set sample in elementary-xfce with Xubuntu 22.10][15] - -![ALT TAB is refreshed with larger icons][16] - -The above changes align the default applications with the base [Ubuntu 22.10 release][17]. Here’s a summary of the changes in Xubuntu 22.10. - -### Summary - -* Linux Kernel 5.19 and based on Ubuntu 22.10 -* Xfce desktop version 4.17 -* Native applications are all updated to 4.17 -* The core aligns with GNOME 43, libadwaita, GTK4 -* MATE apps bump to 1.26 -* Mozilla Firefox web-browser 105.0 -* Thunderbird email client 102.3 -* LibreOffice 7.4.4.2 - -### Wrapping up - -The most critical changes of Xfce desktop as a whole are arriving in version 4.18. For example, the initial Wayland support, updated glib and GTK packages. If all goes well, you can expect these finest changes in next year’s April release of Xubuntu. - -Finally, you can download the beta image from [this page][18] if you want to try it. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/xubuntu-22-10-features/ - -作者:[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/10/Xubuntu-22.10-Desktop-1024x563.jpg -[2]: https://debugpointnews.com/xfce-4-18-announcement/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Three-different-window-decorations-together-in-Xubuntu-22.10.jpg -[4]: https://gitlab.xfce.org/xfce/thunar/-/blob/master/NEWS -[5]: https://gitlab.xfce.org/xfce/xfce4-appfinder/-/blob/master/NEWS -[6]: https://gitlab.xfce.org/apps/catfish/-/blob/master/NEWS -[7]: https://gitlab.xfce.org/apps/mousepad/-/blob/master/NEWS -[8]: https://gitlab.xfce.org/xfce/xfce4-panel/-/blob/master/NEWS -[9]: https://gitlab.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/-/blob/master/NEWS -[10]: https://gitlab.xfce.org/apps/ristretto/-/blob/master/NEWS -[11]: https://gitlab.xfce.org/apps/xfce4-screenshooter/-/blob/master/NEWS -[12]: https://gitlab.xfce.org/apps/xfce4-taskmanager/-/blob/master/NEWS -[13]: https://gitlab.xfce.org/apps/xfce4-terminal/-/blob/master/NEWS -[14]: https://gitlab.xfce.org/xfce/thunar/-/blob/master/NEWS -[15]: https://www.debugpoint.com/wp-content/uploads/2022/10/Refreshed-icon-set-sample-in-elementary-xfce-with-Xubuntu-22.10.jpg -[16]: https://www.debugpoint.com/wp-content/uploads/2022/10/ALT-TAB-is-refreshed-with-larger-icons.jpg -[17]: https://www.debugpoint.com/ubuntu-22-10/ -[18]: https://cdimage.ubuntu.com/xubuntu/releases/kinetic/beta/ diff --git a/translated/tech/20221010 Xubuntu 22.10- Top New Features.md b/translated/tech/20221010 Xubuntu 22.10- Top New Features.md new file mode 100644 index 0000000000..fda1fad5ad --- /dev/null +++ b/translated/tech/20221010 Xubuntu 22.10- Top New Features.md @@ -0,0 +1,122 @@ +[#]: subject: "Xubuntu 22.10: Top New Features" +[#]: via: "https://www.debugpoint.com/xubuntu-22-10-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Xubuntu 22.10:热门新功能 +====== +这是 Xubuntu 22.10 Kinetic Kudu 及其新功能的快速总结。 + +![Xubuntu 22.10 桌面][1] + +质量需要时间来建立。它适用于生活的所有阶段,包括软件。 + +自 Xfce 4.16 发布以来,Xfce 4.17(开发版)已经被添加了许多新功能。这包括核心 Xfce、原生应用,GNOME 43、MATE 1.26 和 libadwaita。由于 Xfce 也是 GNOME 和 MATE 的组合,正确地合并和测试这些更改需要时间。 + +在 Xubuntu 22.10 Kinetic Kudu 版本中,你将体验到自 2020 年 12 月以来所做的所有改进:将近两年的错误修复和增强。 + +让我们快速查看一下时间表。目前,Xubuntu 22.10 beta 已经发布并正在测试中(本页末尾的 ISO 链接)。最终版本预计于 2022 年 10 月 20 日发布。 + +### Xubuntu 22.10 新功能 + +#### 核心更新和 GNOME 框架 + +Xubuntu 22.10 的核心是基于 Ubuntu 22.10 的 Linux Kernel 5.19。另外,Xfce 桌面版是 Xfce 4.17。 + +4.17 版本是一个开发标签,因为它是下一个大版本 Xfce 4.18 的垫脚石,该版本 [计划在今年圣诞节发布][2]。 + +让我们谈谈 GNOME 和相关应用。 Xubuntu 22.10 中的 Xfce 4.17 首次获得了带有 GNOME 43 更新的 libadwaita。这意味着默认的 GNOME 应用程序可以在 Xfce 桌面下正确呈现。 + +话虽如此,GNOME Software 43 在 Xubuntu 22.10 的 Xfce 桌面下看起来很棒。如果你将其与 Xfce 原生外观和带有 CSD/SSD(例如 Disk)的 GNOME 应用进行比较,它们看起来都很整洁。 + +我对 GNOME Software 43 在 Xfce 桌面下的 libadwaita/GTK4 渲染效果如此之好感到惊讶。 + +![在 Xubuntu 22.10 中一起使用三种不同的窗口][3] + +#### Xfce 应用 + +Xfce 桌面带来了自己的原生应用集。在此版本中,所有应用都从 4.16 升级到 4.17 版本。 + +值得注意的变化包括 Xfce 面板获得了对任务列表插件的中键单击支持和托盘时钟中的二进制时间模式。pulse 音频插件引入了一个新的录音指示器,可以过滤掉多个按钮按下事件。 + +Thunar 文件管理器获得了大量的底层功能和错误修复。如果你将 Thunar 4.16 与 Thunar 4.17 进行比较,它是变化巨大的。更改包括更新的上下文菜单、路径栏、搜索、导航等。你可以在[此处][4]阅读 Thunar 的所有更改日志。 + +此外,截屏应用 screenshooter 默认支持 WebP。蓝牙管理器 Blueman 在系统托盘新增配置文件切换器并更新 Catfish 文件搜索工具。 + +这是 Xfce 应用版本的更新列表和指向其更改日志的链接(如果你想进一步挖掘)。 + +* Appfinder [4.17.0][5] +* Catfish [4.16.4][6] +* Mousepad [0.5.10][7] +* Panel [4.17.3][8] +* PulseAudio 插件 [0.4.4][9] +* Ristretto [0.12.3][10] +* Screenshooter [1.9.11][11] +* Task Manager [1.5.4][12] +* Terminal [1.0.4][13] +* Thunar [4.17.9][14] + +#### 外观和感觉 + +默认的 elementary-xfce 图标集(浅色和深色)得到了更新,带有额外的精美图标,让你的 Xfce 桌面焕然一新。默认的 Greybird GTK 主题对窗口装饰进行了必要的改进,并添加了 Openbox 支持。 + +你可能会注意到的重要且可见的变化之一是 ALT+TAB 外观。图标更大一些,眼睛更舒适,可以在深色背景下更快地切换窗口。 + +![在 Xubuntu 22.10 的 elementary-xfce 中更新的图标集示例][15] + +![ALT TAB 有更大的图标][16] + +上述更改使默认应用与基础 [Ubuntu 22.10 版本][17]保持一致。以下是 Xubuntu 22.10 中的更改概括。 + +### 概括 + +* Linux Kernel 5.19 和基于 Ubuntu 22.10 +* Xfce 桌面版 4.17 +* 原生应用全部更新到 4.17 +* 核心与 GNOME 43、libadwaita、GTK4 保持一致 +* MATE 应用程序升级到 1.26 +* Mozilla Firefox 网络浏览器 105.0 +* Thunderbird 邮件客户端 102.3 +* LibreOffice 7.4.4.2 + +### 总结 + +Xfce 桌面作为一个整体最关键的变化是在 4.18 版本中到来的。例如,最初的 Wayland 支持、更新的 glib 和 GTK 包。如果一切顺利,你可以在明年 4 月发布的 Xubuntu 中期待这些最好的变化。 + +最后,如果你想试用,可以从[这个页面][18]下载 beta 镜像。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/xubuntu-22-10-features/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/Xubuntu-22.10-Desktop-1024x563.jpg +[2]: https://debugpointnews.com/xfce-4-18-announcement/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Three-different-window-decorations-together-in-Xubuntu-22.10.jpg +[4]: https://gitlab.xfce.org/xfce/thunar/-/blob/master/NEWS +[5]: https://gitlab.xfce.org/xfce/xfce4-appfinder/-/blob/master/NEWS +[6]: https://gitlab.xfce.org/apps/catfish/-/blob/master/NEWS +[7]: https://gitlab.xfce.org/apps/mousepad/-/blob/master/NEWS +[8]: https://gitlab.xfce.org/xfce/xfce4-panel/-/blob/master/NEWS +[9]: https://gitlab.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/-/blob/master/NEWS +[10]: https://gitlab.xfce.org/apps/ristretto/-/blob/master/NEWS +[11]: https://gitlab.xfce.org/apps/xfce4-screenshooter/-/blob/master/NEWS +[12]: https://gitlab.xfce.org/apps/xfce4-taskmanager/-/blob/master/NEWS +[13]: https://gitlab.xfce.org/apps/xfce4-terminal/-/blob/master/NEWS +[14]: https://gitlab.xfce.org/xfce/thunar/-/blob/master/NEWS +[15]: https://www.debugpoint.com/wp-content/uploads/2022/10/Refreshed-icon-set-sample-in-elementary-xfce-with-Xubuntu-22.10.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2022/10/ALT-TAB-is-refreshed-with-larger-icons.jpg +[17]: https://www.debugpoint.com/ubuntu-22-10/ +[18]: https://cdimage.ubuntu.com/xubuntu/releases/kinetic/beta/ From c8852f479f22e752e46053871f8c7c4913da480b Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 18 Oct 2022 08:56:55 +0800 Subject: [PATCH 1593/3123] translating --- ...20221011 Easiest Way to Open Files as Root in GNOME Files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md b/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md index 0786a72e26..f97f4a07af 100644 --- a/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md +++ b/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/gnome-files-root-access/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1af51346fa4ab11c8ff6f457e0aa1b0c6cba98c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 18 Oct 2022 10:46:39 +0800 Subject: [PATCH 1594/3123] ALL @wxy https://linux.cn/article-15151-1.html --- ...LURE! Bringing AUR to All Linux Distros.md | 132 ++++++++++++++++++ ...LURE! Bringing AUR to All Linux Distros.md | 131 ----------------- 2 files changed, 132 insertions(+), 131 deletions(-) create mode 100644 published/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md delete mode 100644 sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md diff --git a/published/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md b/published/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md new file mode 100644 index 0000000000..34ab9e141c --- /dev/null +++ b/published/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md @@ -0,0 +1,132 @@ +[#]: subject: "First Look at LURE! Bringing AUR to All Linux Distros" +[#]: via: "https://news.itsfoss.com/lure-aur/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15151-1.html" + +LURE 初窥!将 AUR 带入所有 Linux 发行版 +====== + +> LURE 是一个新的开源项目,它希望成为所有发行版的 AUR。 + +![LURE 是一个新的开源项目,它希望成为所有发行版的 AUR!][1] + +AUR(Arch 用户仓库Arch User Repository)是一个由社区驱动的基于 Arch 的 Linux 的发行版仓库。 + +**简而言之:** 它可以帮助你安装官方仓库中没有的软件包,并让你获得最新的版本。 + +我发现它对我在 [Manjaro Linux][2] 上的体验很有帮助。 + +从技术上讲,AUR 从源头构建一个软件包,然后利用软件包管理器(`pacman`)来安装它。 + +你也可以在我们的详细指南中探索更多关于它的信息。 + +> **[什么是 AUR? 如何在 Arch 和 Manjaro Linux 中使用 AUR?][3]** + +📢 现在你对 AUR 有了一个基本的了解,有一个 **新的开源项目** 旨在将 AUR 的功能带到所有的发行版中。 + +这个项目被称为 “Linux 用户仓库Linux User REpository”(LURE)。 + +> 💡 LURE 项目正处于 alpha 阶段,由创建者在几周前宣布。所以,它完全是一个正在进行的工作。 + +### 已经有这样的项目了? + +![lure 添加仓库][5] + +**没有。** + +开发者们已经尝试做一个 AUR 的替代品,但是是针对特定的发行版。就像 [makedeb 软件包仓库][6] 是针对 Debian 的。 + +LURE 是一个雄心勃勃的想法,可以在你选择的任何发行版上工作。 + +它试图成为一个帮助你使用类似于 `PKGBUILD` 的脚本为你的发行版创建原生软件包的工具。 + +> **[创建 PKGBUILD 为 Arch Linux 制作软件包][7]** + +开发者在 [Reddit 公告帖子][9] 中提到了一些技术细节: + +> 我的项目叫 LURE,是 “Linux 用户仓库”的简称。它构建原生软件包,然后使用系统软件包管理器安装它们,就像 AUR 一样。它使用一个类似于 AUR 的 `PKGBUILD` 的构建脚本来构建软件包。 +> +> 它是用纯 Go 语言编写的,这意味着它在构建后没有任何依赖性,除了一些特权提升命令(`sudo`,`doas` 等等)和任何一个支持的软件包管理器,目前支持 `pacman`、`apt`、`apk`(Alpine Linux 上,不是安卓)、`dnf`、`yum` 和 `zypper`。 + +**听起来很棒!** + +> **[LURE 项目Repo][10]** + +你也可以在它的 [GitHub 镜像][11] 上探索更多信息。 + +### 使用 LURE + +你不必安装一个额外的软件包管理器来使它工作,它可以自动与你系统的软件包管理器一起工作。 + +因此,如果它在其仓库(或任何其添加的仓库)中没有找到一个包,它就会转到系统的默认仓库,并从那里安装它。就像我用 `lure` 命令在我的系统上安装/移除 `neofetch` 一样。 + +![lure neofetch remove][12] + +虽然该项目处于早期开发阶段,但它为各种发行版提供了 [二进制包][13],以让你安装和测试它们。 + +![][14] + +目前,它的仓库包括一个来自创建者自己的项目。但你可以尝试添加一个仓库并构建/安装东西。 + +为了方便起见,我试着在它的仓库中安装软件包。 + +![][15] + +命令看起来像这样: + +``` +lure in itd-bin +``` + +在它的 [官方文档页面][16],你可以读到更多关于它在构建/安装/添加存储库方面的用法。 + +未来版本的一些计划中的功能包括: + +* 自动安装脚本 +* 基于 Docker 的自动测试工具 +* 仓库的网页接口 + +### 让它变得更好 + +嗯,首先,这是一个优秀的项目。如果你是过去使用过 Arch 的人,或者想离开 Arch Linux,这将是一个很好的工具。 + +然而,对于大多数终端用户和非 Arch Linux 新手来说,像 [Pamac GUI 软件包管理器][17] 这样的软件包管理器支持 LURE 应该是锦上添花的。 + +当然,在目前的阶段,它需要开源贡献者的支持。所以,如果你喜欢这个想法,请随时为该项目贡献改进意见 + +*💭 你对 LURE 有什么看法?请在下面的评论中分享你的想法! * + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/lure-aur/ + +作者:[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/content/images/size/w1200/2022/10/LURE-aur-for-all-linux-distros.jpg +[2]: https://news.itsfoss.com/manjaro-linux-experience/ +[3]: https://itsfoss.com/aur-arch-linux/ +[4]: https://itsfoss.com/aur-arch-linux/ +[5]: https://news.itsfoss.com/content/images/2022/10/lure-repos.png +[6]: https://mpr.makedeb.org +[7]: https://itsfoss.com/create-pkgbuild/ +[8]: https://itsfoss.com/create-pkgbuild/ +[9]: https://www.reddit.com/r/linux/comments/xq09nf/lure_aur_on_nonarch_distros/ +[10]: https://gitea.arsenm.dev/Arsen6331/lure +[11]: https://github.com/Arsen6331/lure +[12]: https://news.itsfoss.com/content/images/2022/10/lure-neofetch-rm.png +[13]: https://gitea.arsenm.dev/Arsen6331/lure/releases/tag/v0.0.2 +[14]: https://news.itsfoss.com/content/images/2022/10/lure-binaries.jpg +[15]: https://news.itsfoss.com/content/images/2022/10/lure-test.png +[16]: https://github.com/Arsen6331/lure/blob/master/docs/usage.md +[17]: https://itsfoss.com/install-pamac-arch-linux/ diff --git a/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md b/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md deleted file mode 100644 index 7c4af899da..0000000000 --- a/sources/news/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md +++ /dev/null @@ -1,131 +0,0 @@ -[#]: subject: "First Look at LURE! Bringing AUR to All Linux Distros" -[#]: via: "https://news.itsfoss.com/lure-aur/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "wxy" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -First Look at LURE! Bringing AUR to All Linux Distros -====== -LURE is a new open-source project that aspires to become the AUR for all distros. - -![First Look at LURE! Bringing AUR to All Linux Distros][1] - -**AUR** (Arch User Repository) is a community-driven repository for Arch-based Linux distributions. - -**Long story short:** it helps install packages not available in the official repositories and lets you get the latest releases. - -I found it helpful with my experience on [Manjaro Linux][2]. - -Technically, AUR builds a package from the source and then utilizes the package manager (pacman) to install it. - -You can also explore more about it in our detailed guide: - -[What is AUR? How to use AUR in Arch and Manjaro Linux?][3] - -📢 Now that you have a good idea about AUR, a **new open-source project**aims to bring the utility of AUR to all the distributions. - -The project is called **Linux User REpository (or LURE).** - -> 💡 The LURE project is in its alpha stage, announced by the creator a few weeks back. So, it is entirely a work in progress. - -### A Project Like This Already Exists? - -![lure adding repo][5] - -**No.** - -Developers have tried making an AUR alternative, but for a specific distribution. Like [makedeb Package Repository][6] for Debian. - -LURE is an ambitious idea that could work on any distribution of your choice. - -It seeks to be a tool that helps you create native packages for your distribution using a script similar to **PKGBUILD**. - -[Creating a PKGBUILD to Make Packages for Arch Linux - It’s FOSS][7] - -The developer mentions some of the technical details in a [Reddit announcement post][9]: - -> My project is called LURE, short for Linux User REpository. It builds native packages and then installs them using the system package manager, just like the AUR. It uses a build script similar to the AUR's PKGBUILD to build the packages. -> -> It is written in pure Go, which means that it has zero dependencies after it's built, other than any privilege escalation command (`sudo`, `doas`, etc.) and any one of the supported package managers, which currently are: `pacman`, `apt`, `apk` (Alpine Linux, not Android), `dnf`, `yum`, and `zypper`. - -**Sounds exciting!** - -[LURE Project Repo][10] - -You can also explore more about it on its [GitHub mirror][11]. - -### Using LURE - -You do not have to install an additional package manager to make it work; it works automatically with your system's package manager. - -So, if it does not find a package in its repo (or any of its added repo), it moves to the system's default repo and installs it from there. Just like I installed/removed **neofetch** on my system using the lure command: - -![lure neofetch remove][12] - -While the project is in early development, it offers [binary packages][13] for various distributions allowing you to install and test them. - -![][14] - -Currently, its repository includes one project from the creator itself. But you can try to add a repo and build/install things. - -For the sake of convenience, I tried installing the package in its repo: - -![][15] - -The command looks like this: - -``` -lure in itd-bin -``` - -On its [official documentation page][16], you can read more about its usage to build/install/add repositories. - -Some of the planned features for future releases include: - -* Automated install script -* Automated docker-based testing tool -* Web interface for repos - -### What Would Make It Better? - -Well, for starters, this is an excellent project. If you are someone who used Arch in the past or want to move away from Arch Linux, this will be a good tool for you. - -However, for most end-users and non-Arch Linux newbies, something like the [Pamac GUI package manager][17] with LURE support should be the icing on the cake. - -Of course, at its current stage, it needs support from open-source contributors. So, if you like the idea, feel free to contribute improvements to the project! - -*💭 What do you think about LURE? Share your thoughts in the comments below!* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/lure-aur/ - -作者:[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/content/images/size/w1200/2022/10/LURE-aur-for-all-linux-distros.jpg -[2]: https://news.itsfoss.com/manjaro-linux-experience/ -[3]: https://itsfoss.com/aur-arch-linux/ -[4]: https://itsfoss.com/aur-arch-linux/ -[5]: https://news.itsfoss.com/content/images/2022/10/lure-repos.png -[6]: https://mpr.makedeb.org -[7]: https://itsfoss.com/create-pkgbuild/ -[8]: https://itsfoss.com/create-pkgbuild/ -[9]: https://www.reddit.com/r/linux/comments/xq09nf/lure_aur_on_nonarch_distros/ -[10]: https://gitea.arsenm.dev/Arsen6331/lure -[11]: https://github.com/Arsen6331/lure -[12]: https://news.itsfoss.com/content/images/2022/10/lure-neofetch-rm.png -[13]: https://gitea.arsenm.dev/Arsen6331/lure/releases/tag/v0.0.2 -[14]: https://news.itsfoss.com/content/images/2022/10/lure-binaries.jpg -[15]: https://news.itsfoss.com/content/images/2022/10/lure-test.png -[16]: https://github.com/Arsen6331/lure/blob/master/docs/usage.md -[17]: https://itsfoss.com/install-pamac-arch-linux/ From 3f2e473359f038d4f16eff89dea7b48e7dbee563 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 18 Oct 2022 11:36:59 +0800 Subject: [PATCH 1595/3123] RP @geekpi https://linux.cn/article-15152-1.html --- ...ate LVM Partition Step-by-Step in Linux.md | 73 ++++++++++--------- 1 file changed, 38 insertions(+), 35 deletions(-) rename {translated/tech => published}/20221008 How to Create LVM Partition Step-by-Step in Linux.md (57%) diff --git a/translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md b/published/20221008 How to Create LVM Partition Step-by-Step in Linux.md similarity index 57% rename from translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md rename to published/20221008 How to Create LVM Partition Step-by-Step in Linux.md index 1a91ab8883..a92fcb8f55 100644 --- a/translated/tech/20221008 How to Create LVM Partition Step-by-Step in Linux.md +++ b/published/20221008 How to Create LVM Partition Step-by-Step in Linux.md @@ -3,29 +3,32 @@ [#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15152-1.html" -# 如何在 Linux 中逐步创建 LVM 分区 +在 Linux 中创建 LVM 分区的分步指南 +====== -在本指南中,我们将逐步介绍如何在 Linux 中创建 lvm 分区。 +![](https://img.linux.net.cn/data/attachment/album/202210/18/113615swffwazya3nyfve2.jpg) -LVM 代表逻辑卷管理,它是专门为服务器管理 Linux 系统上的磁盘或存储的推荐方式。 LVM 分区的主要优点之一是我们可以实时扩展其大小而无需停机。 LVM 分区也可以减少,但不推荐。 +> 在本指南中,我们将逐步介绍如何在 Linux 中创建 LVM 分区。 + +LVM 代表 “逻辑卷管理Logical Volume Management”,它是专门为服务器管理 Linux 系统上的磁盘或存储的推荐方式。 LVM 分区的主要优点之一是我们可以实时扩展其大小而无需停机。 LVM 分区也可以缩小,但不推荐。 为了演示,我在我的 Ubuntu 22.04 系统上连接了 15GB 磁盘,我们将从命令行在该磁盘上创建 LVM 分区。 -##### 先决条件 +##### 准备 - 连接到 Linux 系统的原始磁盘 -- 具有 Sudo 权限的本地用户 +- 具有 sudo 权限的本地用户 - 预装 lvm2 包 事不宜迟,让我们深入了解这些步骤。 -### 步骤 1) 识别新连接的原始磁盘 +### 步骤 1、识别新连接的原始磁盘 -登录到你的系统,打开终端并运行以下 dmesg 命令: +登录到你的系统,打开终端并运行以下 `dmesg` 命令: ``` $ sudo dmesg | grep -i sd @@ -35,7 +38,7 @@ $ sudo dmesg | grep -i sd ![dmesg-command-new-attached-disk-linux][1] -识别新连接的原始磁盘的另一种方法是通过 fdisk 命令: +识别新连接的原始磁盘的另一种方法是通过 `fdisk` 命令: ``` $ sudo fdisk -l | grep -i /dev/sd @@ -45,18 +48,18 @@ $ sudo fdisk -l | grep -i /dev/sd ![fdisk-command-output-new-disk][2] -从上面的输出,可以确认新连接的磁盘是 “/dev/sdb” +从上面的输出,可以确认新连接的磁盘是 `/dev/sdb`。 -### 步骤 2)创建 PV(物理卷) +### 步骤 2、创建 PV(物理卷) -在开始在磁盘 /dev/sdb 上创建 pv 之前,请确保已安装 lvm2 包。如果未安装,请运行以下命令: +在开始在磁盘 `/dev/sdb` 上创建物理卷Physical Volume(PV)之前,请确保已安装 `lvm2` 包。如果未安装,请运行以下命令: ``` $ sudo apt install lvm2 // On Ubuntu / Debian $ sudo dnf install lvm2 // on RHEL / CentOS ``` -运行以下 pvcreate 命令在磁盘 /dev/sdb 上创建 pv: +运行以下 `pvcreate` 命令在磁盘 `/dev/sdb` 上创建 PV: ``` $ sudo pvcreate /dev/sdb @@ -64,7 +67,7 @@ $ sudo pvcreate /dev/sdb $ ``` -要验证 pv 状态,运行: +要验证 PV 状态,运行: ``` $ sudo pvs /dev/sdb @@ -74,9 +77,9 @@ $ sudo pvdisplay /dev/sdb ![pvdisplay-command-output-linux][3] -### 步骤 3) 创建 VG(卷组) +### 步骤 3、创建 VG(卷组) -要创建卷组,我们将使用 vgcreate 命令。创建 VG 意味着将 pv 添加到卷组。 +要创建卷组Volume Group(VG),我们将使用 `vgcreate` 命令。创建 VG 意味着将 PV 添加到其中。 语法: @@ -92,7 +95,7 @@ $ sudo vgcreate volgrp01 /dev/sdb $ ``` -运行以下命令以验证 vg (volgrp01) 的状态: +运行以下命令以验证 VG(`volgrp01`)的状态: ``` $ sudo vgs volgrp01 @@ -104,17 +107,17 @@ $ sudo vgdisplay volgrp01 ![vgs-command-output-linux][4] -以上输出确认大小为 15 GiB 的卷组 (volgrp01) 已成功创建,一个物理扩展 (PE) 的大小为 4 MB。创建 vg 时可以更改 PE 大小。 +以上输出确认大小为 15 GiB 的卷组 `volgrp01` 已成功创建,一个物理扩展Physical Extend(PE)的大小为 4 MB。创建 VG 时可以更改 PE 大小。 -### 步骤 4)创建 LV(逻辑卷) +### 步骤 4、创建 LV(逻辑卷) -Lvcreate 命令用于从 VG 创建 LV。 lvcreate 命令的语法如下所示: +`lvcreate` 命令用于从 VG 中创建逻辑卷Logical Volume LV。 `lvcreate` 命令的语法如下所示: ``` $ sudo lvcreate -L -n ``` -在我们的例子中,以下命令将用于创建大小为 14 GB 的 lv: +在我们的例子中,以下命令将用于创建大小为 14 GB 的 LV: ``` $ sudo lvcreate -L 14G -n lv01 volgrp01 @@ -122,7 +125,7 @@ $ sudo lvcreate -L 14G -n lv01 volgrp01 $ ``` -验证 lv 的状态,运行: +验证 LV 的状态,运行: ``` $ sudo lvs /dev/volgrp01/lv01 @@ -134,11 +137,11 @@ $ sudo lvdisplay /dev/volgrp01/lv01 ![lvs-command-output-linux][5] -上面的输出显示 LV (lv01) 已成功创建,大小为 14 GiB。 +上面的输出显示 LV(`lv01`)已成功创建,大小为 14 GiB。 -### 步骤 5) 格式化 LVM 分区 +### 步骤 5、格式化 LVM 分区 -使用 mkfs 命令格式化 lvm 分区。在我们的例子中,lvm 分区是 /dev/volgrp01/lv01。 +使用 `mkfs` 命令格式化 LVM 分区。在我们的例子中,LVM 分区是 `/dev/volgrp01/lv01`。 注意:我们可以将分区格式化为 ext4 或 xfs,因此请根据你的设置和要求选择文件系统类型。 @@ -150,19 +153,19 @@ $ sudo mkfs.ext4 /dev/volgrp01/lv01 ![mkfs-ext4-filesystem-lvm][6] -执行下面的命令,用 xfs 文件系统格式化 lvm 分区: +执行下面的命令,用 xfs 文件系统格式化 LVM 分区: ``` $ sudo mkfs.xfs /dev/volgrp01/lv01 ``` -要使用上述格式化分区,我们必须将其挂载到某个文件夹中。所以,让我们创建一个文件夹 /mnt/data: +要使用上述格式化分区,我们必须将其挂载到某个文件夹中。所以,让我们创建一个文件夹 `/mnt/data`: ``` $ sudo mkdir /mnt/data ``` -现在运行 mount 命令将其挂载到 /mnt/data 文件夹: +现在运行 `mount` 命令将其挂载到 `/mnt/data` 文件夹: ``` $ sudo mount /dev/volgrp01/lv01 /mnt/data/ @@ -172,20 +175,20 @@ Filesystem Type Size Used Avail Use% Mounted on $ ``` -尝试创建一些虚拟文件,运行以下命令: +尝试创建一些没用的文件,运行以下命令: ``` $ cd /mnt/data/ -$ echo "testing lvm partition" | sudo tee dummy.txt +$ echo "testing lvm partition" | sudo tee dummy.txt $ cat dummy.txt testing lvm partition $ $ sudo rm -f dummy.txt ``` -完美,以上命令输出确认我们可以访问 lvm 分区。 +完美,以上命令输出确认我们可以访问 LVM 分区。 -要永久挂载到 lvm 分区之上,请使用以下 echo 命令将其条目添加到 fstab 文件中: +要永久挂载上述 LVM 分区,请使用以下 `echo` 命令将其条目添加到 `fstab` 文件中: ``` $ echo '/dev/volgrp01/lv01 /mnt/data ext4 defaults 0 0' | sudo tee -a /etc/fstab @@ -201,7 +204,7 @@ via: https://www.linuxtechi.com/how-to-create-lvm-partition-in-linux/ 作者:[James Kiarie][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/) 荣誉推出 From 913ce6fc9ef80951609f44cd9863cdbda7c9e9ad Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Tue, 18 Oct 2022 15:55:27 +0800 Subject: [PATCH 1596/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20210604 Optimize Java serverless functions in Kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md b/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md index ab98883f7b..432ef50ae2 100644 --- a/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md +++ b/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/java-serverless-functions-kubernetes) [#]: author: (Daniel Oh https://opensource.com/users/daniel-oh) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (cool-summer-021) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 64a241ba6214006db7069c959734c7d249cb968e Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 19 Oct 2022 08:34:52 +0800 Subject: [PATCH 1597/3123] translated --- ...to Update Google Chrome on Ubuntu Linux.md | 93 ------------------- ...to Update Google Chrome on Ubuntu Linux.md | 93 +++++++++++++++++++ 2 files changed, 93 insertions(+), 93 deletions(-) delete mode 100644 sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md create mode 100644 translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md diff --git a/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md b/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md deleted file mode 100644 index 68c3bb50b4..0000000000 --- a/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: subject: "How to Update Google Chrome on Ubuntu Linux" -[#]: via: "https://itsfoss.com/update-google-chrome-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Update Google Chrome on Ubuntu Linux -====== -So, you managed to install Google Chrome browser on your Ubuntu system. And now you wonder how to keep the browser updated. - -On Windows and macOS, when there is an update available on Chrome, you are notified in the browser itself and you can hit the update option from the browser. - -Things are different in Linux. You don’t update Chrome from the browser. You update it with the system updates. - -Yes. When there is a new update available on Chrome, Ubuntu notifies you via the system updater tool. - -![Ubuntu sends notifications when a new version of Chrome is available][1] - -You just have to click on the Install Now button, enter your account’s password when asked for it and have Chrome updated to a new version. - -Let me tell you why you see the updates on the system level and how you can update Google Chrome in the command line. - -### Method 1: Updating Google Chrome with system updates - -How did you install Chrome in the first place? You got the deb installer file from the [Chrome website][2] and used it to [install Chrome on Ubuntu][3]. - -The thing is that when you do that, Google adds a repository entry into your system’s sources list. This way, your system trusts the packages coming from the Google repository. - -![Google Chrome repository is added to the Ubuntu system][4] - -For all such entries added to your system, the package updates are centralized through the Ubuntu Updater. - -And this is why when there is an update available to Google Chrome (and other installed applications), your Ubuntu system sends you notification. - -![Chrome update available with other applications via System Updater][5] - -**Click the “Install Now” button and enter your password when asked for it**. Soon, the system will install all the upgradeable packages. - -Depending on the update preference, the notification may not be immediate. If you want, you can manually run the updater tool and see what updates are available for your Ubuntu system. - -![Run Software Updater to see what updates are available for your system][6] - -### Method 2: Updating Chrome in the Ubuntu command line - -If you prefer the terminal over the graphical interface, you can update Chrome with commands as well. - -Open a terminal and run the following commands one by one: - -``` -sudo apt update - -sudo apt --only-upgrade install google-chrome-stable -``` - -The first command updates the package cache so that your system is aware of what packages can be upgraded. - -The second command [only updates the single package][7] which is Google Chrome (installed as google-chrome-stable). - -### Conclusion - -As you can see, things are more streamlined in Ubuntu than in Windows. You get Chrome updated along with other system updates. - -On a related note, you may learn about [removing google Chrome from Ubuntu][8] if you are unhappy with it. - -Chrome is a fine browser. You can experiment with it by [using shortcuts in Chrome][9] as it makes the browsing experience even smoother. - -Enjoy Chrome on Ubuntu! - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/update-google-chrome-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2021/06/chrome-edge-update-ubuntu.png -[2]: https://www.google.com/chrome/ -[3]: https://itsfoss.com/install-chrome-ubuntu/ -[4]: https://itsfoss.com/wp-content/uploads/2021/06/google-chrome-repo-ubuntu.png -[5]: https://itsfoss.com/wp-content/uploads/2021/06/chrome-edge-update-ubuntu.png -[6]: https://itsfoss.com/wp-content/uploads/2022/04/software-updater-ubuntu-22-04.jpg -[7]: https://itsfoss.com/apt-upgrade-single-package/ -[8]: https://itsfoss.com/uninstall-chrome-from-ubuntu/ -[9]: https://itsfoss.com/google-chrome-shortcuts/ diff --git a/translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md b/translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md new file mode 100644 index 0000000000..54f15a7e3b --- /dev/null +++ b/translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md @@ -0,0 +1,93 @@ +[#]: subject: "How to Update Google Chrome on Ubuntu Linux" +[#]: via: "https://itsfoss.com/update-google-chrome-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu Linux 上更新 Google Chrome +====== +你设法在你的 Ubuntu 系统上安装了 Google Chrome 浏览器。现在你想知道如何让浏览器保持更新。 + +在 Windows 和 macOS 上,当 Chrome 上有可用更新时,你会在浏览器中收到通知,你可以从浏览器中点击更新选项。 + +Linux 中的情况有所不同。你不会从浏览器更新 Chrome。你要使用系统更新对其进行更新。 + +是的。当 Chrome 上有可用的新更新时,Ubuntu 会通过系统更新工具通知你。 + +![当有新版本的 Chrome 可用时,Ubuntu 会发送通知][1] + +你只需单击立即安装按钮,在被要求时输入你的帐户密码并将 Chrome 更新到新版本。 + +让我告诉你为什么会在系统级别看到更新,以及如何在命令行中更新 Google Chrome。 + +### 方法 1:使用系统更新更新谷歌浏览器 + +你最初是如何安装 Chrome 的?你从 [Chrome 网站][2]获得了 deb 安装程序文件,并使用它来[在 Ubuntu 上安装 Chrome][3]。 + +当你这样做时,谷歌会在你系统的源列表中添加一个仓库条目。这样,你的系统就会信任来自 Google 仓库的包。 + +![Google Chrome 存储库添加到 Ubuntu 系统][4] + +对于添加到系统中的所有此类条目,包更新通过 Ubuntu 更新程序集中进行。 + +这就是为什么当 Google Chrome(和其他已安装的应用)有可用更新时,你的 Ubuntu 系统会向你发送通知。 + +![Chrome 更新可通过系统更新与其他应用一起使用][5] + +**单击“立即安装”按钮并在要求时输入你的密码**。很快,系统将安装所有可升级的软件包。 + +根据更新偏好,通知可能不是立即的。如果需要,你可以手动运行更新程序工具并查看适用于你的 Ubuntu 系统的更新。 + +![运行软件更新程序以查看你的系统有哪些可用更新][6] + +### 方法 2:在 Ubuntu 命令行中更新 Chrome + +如果你更喜欢终端而不是图形界面,你也可以使用命令更新 Chrome。 + +打开终端,并依次运行以下命令: + +``` +sudo apt update + +sudo apt --only-upgrade install google-chrome-stable +``` + +第一条命令更新包缓存,以便你的系统知道可以升级哪些包。 + +第二条命令[仅更新单个包][7],即 Google Chrome(安装为 google-chrome-stable)。 + +### 总结 + +如你所见,Ubuntu 比 Windows 更精简。你会随其他系统更新一起更新 Chrome。 + +顺便一提,如果你对它不满意,你可以了解[从 Ubuntu 中删除 Google Chrome][8]。 + +Chrome 是一款不错的浏览器。你可以通过[使用 Chrome 中的快捷方式][9]来试验它,因为它使浏览体验更加流畅。 + +在 Ubuntu 上享受 Chrome! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/update-google-chrome-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2021/06/chrome-edge-update-ubuntu.png +[2]: https://www.google.com/chrome/ +[3]: https://itsfoss.com/install-chrome-ubuntu/ +[4]: https://itsfoss.com/wp-content/uploads/2021/06/google-chrome-repo-ubuntu.png +[5]: https://itsfoss.com/wp-content/uploads/2021/06/chrome-edge-update-ubuntu.png +[6]: https://itsfoss.com/wp-content/uploads/2022/04/software-updater-ubuntu-22-04.jpg +[7]: https://itsfoss.com/apt-upgrade-single-package/ +[8]: https://itsfoss.com/uninstall-chrome-from-ubuntu/ +[9]: https://itsfoss.com/google-chrome-shortcuts/ \ No newline at end of file From a4a266a3fade2c5173782f700e034ed2a88a2fcd Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 19 Oct 2022 08:39:57 +0800 Subject: [PATCH 1598/3123] translating --- ...21012 How to Set Static IP Address on Ubuntu Server 22.04.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md index c29d2621a3..6d4bfadab1 100644 --- a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md +++ b/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5fade458eb4ddf3f0fbe5fa25ee0d928e5c6abfd Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 19 Oct 2022 08:50:58 +0800 Subject: [PATCH 1599/3123] Update 20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md --- ... Troubleshooting -Bash- Command Not Found- Error in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md index 3fd4ae17bb..da03c39dbe 100644 --- a/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md +++ b/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/bash-command-not-found/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 27d6e4db9a2f093ff5a1c01063a62c91d8250b3b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 19 Oct 2022 12:45:43 +0800 Subject: [PATCH 1600/3123] RP @MjSeven https://linux.cn/article-15154-1.html --- ...Microservices Using Flask on Kubernetes.md | 153 +++++++++--------- 1 file changed, 76 insertions(+), 77 deletions(-) rename {translated/tech => published}/20220912 Python Microservices Using Flask on Kubernetes.md (57%) diff --git a/translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md b/published/20220912 Python Microservices Using Flask on Kubernetes.md similarity index 57% rename from translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md rename to published/20220912 Python Microservices Using Flask on Kubernetes.md index 47faa340af..97cd07229d 100644 --- a/translated/tech/20220912 Python Microservices Using Flask on Kubernetes.md +++ b/published/20220912 Python Microservices Using Flask on Kubernetes.md @@ -3,14 +3,14 @@ [#]: author: "Krishna Mohan Koyya https://www.opensourceforu.com/author/krishna-mohan-koyya/" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15154-1.html" -在 Kubernetes 上使用 Flask 的 Python 微服务 +在 Kubernetes 上使用 Flask 搭建 Python 微服务 ====== -![Python 微服务][6] +![](https://img.linux.net.cn/data/attachment/album/202210/19/124429nmw0xmfz3x3mrrf2.jpg) *微服务遵循领域驱动设计(DDD),与开发平台无关。Python 微服务也不例外。Python3 的面向对象特性使得按照 DDD 对服务进行建模变得更加容易。本系列的第 10 部分演示了如何将用户管理系统的查找服务作为 Python 微服务部署在 Kubernetes 上。* @@ -24,17 +24,17 @@ Python 是一种通用编程语言,已经存在了大约 30 年。早期,它是自动化脚本的首选。然而,随着 Django 和 Flask 等框架的出现,它的受欢迎程度越来越高,现在各种领域中都在应用它,如企业应用程序开发。数据科学和机器学习进一步推动了它的发展,Python 现在是三大编程语言之一。 -许多人将 Python 的成功归功于它容易编码。这只是一部分原因。只要你的目标是开发小型脚本,Python 就像一个玩具,你会非常喜欢它。然而,当你进入严肃的大规模应用程序开发领域时,你将不得不处理大量的 if 和 else,Python 变得与任何其他平台一样好或一样坏。例如,采用一种面向对象的方法!许多 Python 开发人员甚至可能没意识到 Python 支持类、继承等功能。Python 确实支持成熟的面向对象开发,但是有它自己的方式 -- Pythonic!让我们探索一下! +许多人将 Python 的成功归功于它容易编码。这只是一部分原因。只要你的目标是开发小型脚本,Python 就像一个玩具,你会非常喜欢它。然而,当你进入严肃的大规模应用程序开发领域时,你将不得不处理大量的 `if` 和 `else`,Python 变得与任何其他平台一样好或一样坏。例如,采用一种面向对象的方法!许多 Python 开发人员甚至可能没意识到 Python 支持类、继承等功能。Python 确实支持成熟的面向对象开发,但是有它自己的方式 -- Pythonic!让我们探索一下! ### 领域模型 -添加服务通过将数据保存到一个 MySQL 数据库中来将用户添加到系统中。查找服务的目标是提供一个 REST API 按用户名查找用户。域模型如图 1 所示。它主要由一些值对象组成,如用户实体的用户名、电话以及 UserRepository。 +`AddService` 通过将数据保存到一个 MySQL 数据库中来将用户添加到系统中。`FindService` 的目标是提供一个 REST API 按用户名查找用户。域模型如图 1 所示。它主要由一些值对象组成,如 `User` 实体的`Name`、`PhoneNumber` 以及 `UserRepository`。 ![图 1: 查找服务的域模型][1] -让我们从用户名开始。由于它是一个值对象,因此必须在创建时进行验证,并且必须保持不可变。基本结构如所示: +让我们从 `Name` 开始。由于它是一个值对象,因此必须在创建时进行验证,并且必须保持不可变。基本结构如所示: -```python +``` class Name: value: str def __post_init__(self): @@ -42,11 +42,11 @@ class Name: raise ValueError("Invalid Name") ``` -如你所见,用户名包含一个字符串类型的值。作为后期初始化的一部分,我们会验证它。 +如你所见,`Name` 包含一个字符串类型的值。作为后期初始化的一部分,我们会验证它。 -Python 3.7 提供了 @dataclass 装饰器,它提供了许多开箱即用的数据承载类的功能,如构造函数、比较运算符等。如下是装饰后的 Name 类: +Python 3.7 提供了 `@dataclass` 装饰器,它提供了许多开箱即用的数据承载类的功能,如构造函数、比较运算符等。如下是装饰后的 `Name` 类: -```python +``` from dataclasses import dataclass @dataclass @@ -57,30 +57,30 @@ class Name: raise ValueError("Invalid Name") ``` -以下代码可以创建一个 Name 对象: +以下代码可以创建一个 `Name` 对象: -```python +``` name = Name("Krishna") ``` -value 属性可以按照如下方式读取或写入: +`value` 属性可以按照如下方式读取或写入: -```python +``` name.value = "Mohan" print(name.value) ``` -可以很容易地与另一个 Name 对象比较,如下所示: +可以很容易地与另一个 `Name` 对象比较,如下所示: -```python +``` other = Name("Mohan") if name == other: print("same") ``` -如你所见,对象比较的是值而不是引用。这一切都是开箱即用的。我们还可以通过冻结对象使对象不可变。这是 Name 值对象的最终版本: +如你所见,对象比较的是值而不是引用。这一切都是开箱即用的。我们还可以通过冻结对象使对象不可变。这是 `Name` 值对象的最终版本: -```python +``` from dataclasses import dataclass @dataclass(frozen=True) @@ -91,9 +91,9 @@ class Name: raise ValueError("Invalid Name") ``` -电话也遵循类似的方法,因为它也是一个值对象: +`PhoneNumber` 也遵循类似的方法,因为它也是一个值对象: -```python +``` @dataclass(frozen=True) class PhoneNumber: value: int @@ -102,9 +102,9 @@ class PhoneNumber: raise ValueError("Invalid Phone Number") ``` -用户类是一个实体,不是一个值对象。换句话说,用户是可变的。以下是结构: +`User` 类是一个实体,不是一个值对象。换句话说,`User` 是可变的。以下是结构: -```python +``` from dataclasses import dataclass import datetime @@ -121,11 +121,11 @@ class User: self.since = datetime.datetime.now() ``` -你能观察到用户并没有冻结,因为我们希望它是可变的。但是,我们不希望所有属性都是可变的。标识字段如 _name 和 _since 是希望不会修改的。那么,这如何做到呢? +你能观察到 `User` 并没有冻结,因为我们希望它是可变的。但是,我们不希望所有属性都是可变的。标识字段如 `_name` 和 `_since` 是希望不会修改的。那么,这如何做到呢? -Python3 提供了所谓的描述符协议,它会帮助我们正确定义 getters 和 setters。让我们使用 @property 装饰器将 getter 添加到 User 的所有三个字段中。 +Python3 提供了所谓的描述符协议,它会帮助我们正确定义 getter 和 setter。让我们使用 `@property` 装饰器将 getter 添加到 `User` 的所有三个字段中。 -```python +``` @property def name(self) -> Name: return self._name @@ -139,9 +139,9 @@ def since(self) -> datetime.datetime: return self._since ``` -电话字段的 setter 可以使用 @<字段>.setter 来装饰: +`phone` 字段的 setter 可以使用 `@<字段>.setter` 来装饰: -```python +``` @phone.setter def phone(self, phone: PhoneNumber) -> None: if phone is None: @@ -149,25 +149,25 @@ def phone(self, phone: PhoneNumber) -> None: self._phone = phone ``` -通过重写 \_\_str\_\_() 函数,也可以为 User 提供一个简单的打印方法: +通过重写 `__str__()` 函数,也可以为 `User` 提供一个简单的打印方法: -```python +``` def __str__(self): return self.name.value + " [" + str(self.phone.value) + "] since " + str(self.since) ``` 这样,域模型的实体和值对象就准备好了。创建异常类如下所示: -```python +``` class UserNotFoundException(Exception): pass ``` -域模型现在只剩下 UserRepository 了。Python 提供了一个名为 abc 的有用模块来创建抽象方法和抽象类。因为 UserRepository 只是一个接口,所以我们可以使用 abc 模块。 +域模型现在只剩下 `UserRepository` 了。Python 提供了一个名为 `abc` 的有用模块来创建抽象方法和抽象类。因为 `UserRepository` 只是一个接口,所以我们可以使用 `abc` 模块。 -任何继承自 abc.ABC 的类都将变为抽象类,任何带有 @abc.abstractmethod 装饰器的函数都会变为一个抽象函数。下面是 UserRepository 的结构: +任何继承自 `abc.ABC` 的类都将变为抽象类,任何带有 `@abc.abstractmethod` 装饰器的函数都会变为一个抽象函数。下面是 `UserRepository` 的结构: -```python +``` from abc import ABC, abstractmethod class UserRepository(ABC): @@ -176,9 +176,9 @@ class UserRepository(ABC): pass ``` -UserRepository 遵循仓储模式。换句话说,它在 User 实体上提供适当的 CRUD 操作,而不会暴露底层数据存储语义。在本例中,我们只需要 fetch() 操作,因为查找服务只查找用户。 +`UserRepository` 遵循仓储模式。换句话说,它在 `User` 实体上提供适当的 CRUD 操作,而不会暴露底层数据存储语义。在本例中,我们只需要 `fetch()` 操作,因为 `FindService` 只查找用户。 -因为 UserRepository 是一个抽象类,我们不能从抽象类创建实例对象。创建对象必须依赖于一个具体类实现这个抽象类。数据层 UserRepositoryImpl 提供了 UserRepository 的具体实现: +因为 `UserRepository` 是一个抽象类,我们不能从抽象类创建实例对象。创建对象必须依赖于一个具体类实现这个抽象类。数据层 `UserRepositoryImpl` 提供了 `UserRepository` 的具体实现: ``` class UserRepositoryImpl(UserRepository): @@ -186,9 +186,9 @@ class UserRepositoryImpl(UserRepository): pass ``` -由于添加服务将用户数据存储在一个 MySQL 数据库中,因此 UserRepositoryImpl 也必须连接到相同的数据库去检索数据。下面是连接到数据库的代码。主要,我们正在使用 MySQL 的连接库。 +由于 `AddService` 将用户数据存储在一个 MySQL 数据库中,因此 `UserRepositoryImpl` 也必须连接到相同的数据库去检索数据。下面是连接到数据库的代码。注意,我们正在使用 MySQL 的连接库。 -```python +``` from mysql.connector import connect, Error class UserRepositoryImpl(UserRepository): @@ -211,9 +211,9 @@ class UserRepositoryImpl(UserRepository): raise e ``` -在上面的片段中,我们使用 root 用户,admin 密码连接到一个名为 mysqldb 的数据库服务器,使用名为 glarimy 的数据库(模式)。在演示代码中是可以包含这些信息的,但在生产中不建议这么做,因为这会暴露敏感信息。 +在上面的片段中,我们使用用户 `root` / 密码 `admin` 连接到一个名为 `mysqldb` 的数据库服务器,使用名为 `glarimy` 的数据库(模式)。在演示代码中是可以包含这些信息的,但在生产中不建议这么做,因为这会暴露敏感信息。 -fetch() 操作的逻辑非常直观,它对 ums_users 表执行 SELECT 查询。回想一下,添加服务正在将用户数据写入同一个表中。如果 SELECT 查询没有返回记录,fetch() 函数将抛出 UserNotFoundException 异常。否则,它会从记录中构造 User 实体并将其返回给调用者。这没有什么特殊的。 +`fetch()` 操作的逻辑非常直观,它对 `ums_users` 表执行 SELECT 查询。回想一下,`AddService` 正在将用户数据写入同一个表中。如果 SELECT 查询没有返回记录,`fetch()` 函数将抛出 `UserNotFoundException` 异常。否则,它会从记录中构造 `User` 实体并将其返回给调用者。这没有什么特殊的。 ### 应用层 @@ -221,9 +221,9 @@ fetch() 操作的逻辑非常直观,它对 ums_users 表执行 SELECT 查询 ![图 2: 添加服务的应用层][2] -众所周知,一个 DTO 只是一个没有任何业务逻辑的数据容器。它主要用于在查找服务和外部服务之间传输数据。我们只是提供了在 REST 层中将 UserRecord 转换为字典以便用于 JSON 传输: +众所周知,一个 DTO 只是一个没有任何业务逻辑的数据容器。它主要用于在 `FindService` 和外部之间传输数据。我们只是提供了在 REST 层中将 `UserRecord` 转换为字典以便用于 JSON 传输: -```python +``` class UserRecord: def toJSON(self): return { @@ -233,9 +233,9 @@ class UserRecord: } ``` -控制器的工作是将 DTO 转换为用于域服务的域对象,反之亦然。可以从 find() 操作中观察到这一点。 +控制器的工作是将 DTO 转换为用于域服务的域对象,反之亦然。可以从 `find()` 操作中观察到这一点。 -```python +``` class UserController: def __init__(self): @@ -253,11 +253,11 @@ class UserController: return None ``` -find() 操作接收一个字符串作为用户名,然后将其转换为 Name 对象,并调用 UserRepository 获取相应的 User 对象。如果找到了,则使用检索到的 User 对象创建 UserRecord。回想一下,将域对象转换为 DTO 是很有必要的,这样可以对外部服务隐藏域模型。 +`find()` 操作接收一个字符串作为用户名,然后将其转换为 `Name` 对象,并调用 `UserRepository` 获取相应的 `User` 对象。如果找到了,则使用检索到的 `User`` 对象创建 `UserRecord`。回想一下,将域对象转换为 DTO 是很有必要的,这样可以对外部服务隐藏域模型。 -UserController 不需要有多个实例,它也可以是单例的。通过重写 \_\_new\_\_,可以将其建模为一个单例。 +`UserController` 不需要有多个实例,它也可以是单例的。通过重写 `__new__`,可以将其建模为一个单例。 -```python +``` class UserController: def __new__(self): if not hasattr(self, ‘instance’): @@ -279,11 +279,11 @@ class UserController: return None ``` -我们已经完全实现了查找服务的模型,剩下的唯一任务是将其作为 REST 服务公开。 +我们已经完全实现了 `FindService` 的模型,剩下的唯一任务是将其作为 REST 服务公开。 ### REST API -查找服务只提供一个 API,那就是通过用户名查找用户。显然 URI 如下所示: +`FindService` 只提供一个 API,那就是通过用户名查找用户。显然 URI 如下所示: ``` GET /user/{name} @@ -294,26 +294,26 @@ GET /user/{name} 我们可以使用 Flask 框架来构建 REST API,它最初的目的是使用 Python 开发 Web 应用程序。除了 HTML 视图,它还进一步扩展到支持 REST 视图。我们选择这个框架是因为它足够简单。 创建一个 Flask 应用程序: -```python +``` from flask import Flask app = Flask(__name__) ``` 然后为 Flask 应用程序定义路由,就像函数一样简单: -```python +``` @app.route('/user/') def get(name): pass ``` -注意 @app.route 映射到 API /user/,与之对应的函数的 get()。 +注意 `@app.route` 映射到 API `/user/`,与之对应的函数的 `get()`。 -如你所见,每次用户访问 API 如 http://server:port/user/Krishna 时,都将调用这个 get() 函数。Flask 足够智能,可以从 URL 中提取 'Krishna' 作为用户名,并将其传递给 get() 函数。 +如你所见,每次用户访问 API 如 `http://server:port/user/Krishna` 时,都将调用这个 `get()` 函数。Flask 足够智能,可以从 URL 中提取 `Krishna` 作为用户名,并将其传递给 `get()` 函数。 -get() 函数很简单。它要求控制器找到该用户,并将其与通常的 HTTP 头一起打包为 JSON 格式后返回。如果控制器返回 None,则 get() 函数返回合适的 HTTP 状态码。 +`get()` 函数很简单。它要求控制器找到该用户,并将其与通常的 HTTP 头一起打包为 JSON 格式后返回。如果控制器返回 `None`,则 `get()` 函数返回合适的 HTTP 状态码。 -```python +``` from flask import jsonify, abort controller = UserController() @@ -326,17 +326,16 @@ else: return resp ``` -最后,我们需要 Flask 应用程序提供服务,可以使用 waitress 服务: +最后,我们需要 Flask 应用程序提供服务,可以使用 `waitress` 服务: -```python +``` from waitress import serve serve(app, host="0.0.0.0", port=8080) ``` -在上面的片段中,应用程序在本地主机的 8080 端口上提供服务。 -最终代码如下所示: +在上面的片段中,应用程序在本地主机的 8080 端口上提供服务。最终代码如下所示: -```python +``` from flask import Flask, jsonify, abort from waitress import serve @@ -358,11 +357,11 @@ serve(app, host="0.0.0.0", port=8080) ### 部署 -查询服务的代码已经准备完毕。除了 REST API 之外,它还有域模型、数据层和应用程序层。下一步是构建此服务,将其容器化,然后部署到 Kubernetes 上。此过程与部署其他服务妹有任何区别,但有一些 Python 特有的步骤。 +`FindService` 的代码已经准备完毕。除了 REST API 之外,它还有域模型、数据层和应用程序层。下一步是构建此服务,将其容器化,然后部署到 Kubernetes 上。此过程与部署其他服务妹有任何区别,但有一些 Python 特有的步骤。 在继续前进之前,让我们来看下文件夹和文件结构: -```bash +``` + ums-find-service + ums - domain.py @@ -373,11 +372,11 @@ serve(app, host="0.0.0.0", port=8080) - kube-find-deployment.yml ``` -如你所见,整个工作文件夹都位于 ums-find-service 下,它包含了 ums 文件夹中的代码和一些配置文件,例如 Dockerfile、requirements.txt 和 kube-find-deployment.yml。 +如你所见,整个工作文件夹都位于 `ums-find-service` 下,它包含了 `ums` 文件夹中的代码和一些配置文件,例如 `Dockerfile`、`requirements.txt` 和 `kube-find-deployment.yml`。 -domain.py 包含域模型,data.py 包含 UserRepositoryImpl,app.py 包含剩余代码。我们已经阅读过代码了,现在我们来看看配置文件。 +`domain.py` 包含域模型,`data.py` 包含 `UserRepositoryImpl`,`app.py` 包含剩余代码。我们已经阅读过代码了,现在我们来看看配置文件。 -第一个是 requirements.txt,它声明了 Python 系统需要下载和安装的外部依赖项。我们需要用查找服务中用到的每个外部 Python 模块来填充它。如你所见,我们使用了 MySQL 连接器、Flask 和 Waitress 模块。因此,下面是 requirements.txt 的内容。 +第一个是 `requirements.txt`,它声明了 Python 系统需要下载和安装的外部依赖项。我们需要用查找服务中用到的每个外部 Python 模块来填充它。如你所见,我们使用了 MySQL 连接器、Flask 和 Waitress 模块。因此,下面是 `requirements.txt` 的内容。 ``` Flask==2.1.1 @@ -386,7 +385,7 @@ mysql-connector-python waitress ``` -第二步是在 Dockerfile 中声明一些必要显示(to 校正:这里不太理解该如何翻译),如下: +第二步是在 `Dockerfile` 中声明 Docker 相关的清单,如下: ``` FROM python:3.8-slim-buster @@ -401,7 +400,7 @@ ENTRYPOINT ["python"] CMD ["/ums/app.py"] ``` -总的来说,我们使用 Python 3.8 作为基线,除了移动 requirements.txt 之外,我们还将代码从 ums 文件夹移动到 Docker 容器中对应的文件夹中。然后,我们指示容器运行 pip3 install 命令安装对应模块。最后,我们向外暴露 8080 端口(因为 waitress 运行在此端口上)。 +总的来说,我们使用 Python 3.8 作为基线,除了移动 `requirements.txt` 之外,我们还将代码从 `ums` 文件夹移动到 Docker 容器中对应的文件夹中。然后,我们指示容器运行 `pip3 install` 命令安装对应模块。最后,我们向外暴露 8080 端口(因为 waitress 运行在此端口上)。 为了运行此服务,我们指示容器使用使用以下命令: @@ -409,7 +408,7 @@ CMD ["/ums/app.py"] python /ums/app.py ``` -一旦 Dockerfile 准备完成,在 ums-find-service 文件夹中运行以下命令,创建 Docker 镜像: +一旦 `Dockerfile` 准备完成,在 `ums-find-service` 文件夹中运行以下命令,创建 Docker 镜像: ``` docker build -t glarimy/ums-find-service @@ -430,7 +429,7 @@ docker push glarimy/ums-find-service 最后一步是为 Kubernetes 部署构建清单。 -在之前的文章中,我们已经介绍了如何建立 Kubernetes 集群、部署和使用服务的方法。我假设仍然使用之前文章中的 manifest 文件来部署添加服务、MySQL、Kafka 和 Zookeeper。我们只需要将以下内容添加到 kube-find-deployment.yml 文件中: +在之前的文章中,我们已经介绍了如何建立 Kubernetes 集群、部署和使用服务的方法。我假设仍然使用之前文章中的清单文件来部署添加服务、MySQL、Kafka 和 Zookeeper。我们只需要将以下内容添加到 `kube-find-deployment.yml` 文件中: ``` apiVersion: apps/v1 @@ -469,9 +468,9 @@ selector: app: ums-find-service ``` -上面 manifest 的第一部分声明了 glarimy/ums-find-service 镜像的查找服务,它包含三个副本。它还暴露 8080 端口。manifet 的后半部分声明了一个Kubernetes 服务作为查找服务部署的前端。请记住,在之前文章中,mysqldb 服务已经是上述清单的一部分了。 +上面清单文件的第一部分声明了 `glarimy/ums-find-service` 镜像的 `FindService`,它包含三个副本。它还暴露 8080 端口。清单的后半部分声明了一个 Kubernetes 服务作为 `FindService` 部署的前端。请记住,在之前文章中,mysqldb 服务已经是上述清单的一部分了。 -运行以下命令在 Kubernetes 集群上部署 manifest: +运行以下命令在 Kubernetes 集群上部署清单文件: ``` kubectl create -f kube-find-deployment.yml @@ -487,7 +486,7 @@ kubectl get services ![图 3: Kubernetes 服务][3] -它会列出集群上运行的所有服务。注意查找服务的外部 ip,使用 curl 调用此服务: +它会列出集群上运行的所有服务。注意查找服务的外部 IP,使用 `curl` 调用此服务: ``` curl http://10.98.45.187:8080/user/KrishnaMohan @@ -495,17 +494,17 @@ curl http://10.98.45.187:8080/user/KrishnaMohan 注意:10.98.45.187 对应查找服务,如图 3 所示。 -如果我们使用添加服务创建一个名为 KrishnaMohan 的用户,那么上面的 curl 命令看起来如图 4 所示: +如果我们使用 `AddService` 创建一个名为 `KrishnaMohan` 的用户,那么上面的 `curl` 命令看起来如图 4 所示: ![图 4: 查找服务][4] -用户管理系统(UMS)的体系结构包含添加服务和查找服务,以及存储和消息传递所需的后端服务,如图 5 所示。可以看到终端用户使用 ums 添加服务的 IP 地址添加新用户,使用 ums 查找服务的 IP 地址查找已有用户。每个 Kubernetes 服务都由三个对应容器的节点支持。还要注意:同样的 mysqldb 服务用于存储和检索用户数据。 +用户管理系统(UMS)的体系结构包含 `AddService` 和 `FindService`,以及存储和消息传递所需的后端服务,如图 5 所示。可以看到终端用户使用 `ums-add-service` 的 IP 地址添加新用户,使用 `ums-find-service` 的 IP 地址查找已有用户。每个 Kubernetes 服务都由三个对应容器的节点支持。还要注意:同样的 mysqldb 服务用于存储和检索用户数据。 ![图 5: UMS 的添加服务和查找服务][5] ### 其他服务 -UMS 系统还包含两个服务:查找服务和日志服务。在本系列的下一部分中,我们将在 Node 平台上设计这些服务,并将它们部署到同一个 Kubernetes 集群,以演示多语言微服务架构的真正魅力。最后,我们将观察一些与微服务相关的设计模式。 +UMS 系统还包含两个服务:`SearchService` 和 `JournalService`。在本系列的下一部分中,我们将在 Node 平台上设计这些服务,并将它们部署到同一个 Kubernetes 集群,以演示多语言微服务架构的真正魅力。最后,我们将观察一些与微服务相关的设计模式。 -------------------------------------------------------------------------------- @@ -514,7 +513,7 @@ via: https://www.opensourceforu.com/2022/09/python-microservices-using-flask-on- 作者:[Krishna Mohan Koyya][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cf02dce7acdc63277c2519ee8bde0dc634dc8ba7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 19 Oct 2022 16:56:21 +0800 Subject: [PATCH 1601/3123] RP @geekpi https://linux.cn/article-15155-1.html --- ...0221010 Xubuntu 22.10- Top New Features.md | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) rename {translated/tech => published}/20221010 Xubuntu 22.10- Top New Features.md (65%) diff --git a/translated/tech/20221010 Xubuntu 22.10- Top New Features.md b/published/20221010 Xubuntu 22.10- Top New Features.md similarity index 65% rename from translated/tech/20221010 Xubuntu 22.10- Top New Features.md rename to published/20221010 Xubuntu 22.10- Top New Features.md index fda1fad5ad..ad19a4da95 100644 --- a/translated/tech/20221010 Xubuntu 22.10- Top New Features.md +++ b/published/20221010 Xubuntu 22.10- Top New Features.md @@ -3,37 +3,38 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15155-1.html" Xubuntu 22.10:热门新功能 ====== -这是 Xubuntu 22.10 Kinetic Kudu 及其新功能的快速总结。 + +> 这是 Xubuntu 22.10 Kinetic Kudu 及其新功能的快速总结。 ![Xubuntu 22.10 桌面][1] -质量需要时间来建立。它适用于生活的所有阶段,包括软件。 +质量需要时间来建立。它适用于生活的各个方面,包括软件。 自 Xfce 4.16 发布以来,Xfce 4.17(开发版)已经被添加了许多新功能。这包括核心 Xfce、原生应用,GNOME 43、MATE 1.26 和 libadwaita。由于 Xfce 也是 GNOME 和 MATE 的组合,正确地合并和测试这些更改需要时间。 在 Xubuntu 22.10 Kinetic Kudu 版本中,你将体验到自 2020 年 12 月以来所做的所有改进:将近两年的错误修复和增强。 -让我们快速查看一下时间表。目前,Xubuntu 22.10 beta 已经发布并正在测试中(本页末尾的 ISO 链接)。最终版本预计于 2022 年 10 月 20 日发布。 +让我们快速查看一下时间表。目前,Xubuntu 22.10 beta 已经发布,并正在测试中(本问末尾提供了 ISO 链接)。最终版本预计于 2022 年 10 月 20 日发布。 ### Xubuntu 22.10 新功能 #### 核心更新和 GNOME 框架 -Xubuntu 22.10 的核心是基于 Ubuntu 22.10 的 Linux Kernel 5.19。另外,Xfce 桌面版是 Xfce 4.17。 +在其核心,Xubuntu 22.10 同其基于的 Ubuntu 22.10 一样,采用 Linux 内核 5.19。另外,Xfce 桌面版本是 Xfce 4.17。 -4.17 版本是一个开发标签,因为它是下一个大版本 Xfce 4.18 的垫脚石,该版本 [计划在今年圣诞节发布][2]。 +4.17 版本是一个开发版,因为它是下一个大版本 Xfce 4.18 的基础,该版本 [计划在今年圣诞节发布][2]。 让我们谈谈 GNOME 和相关应用。 Xubuntu 22.10 中的 Xfce 4.17 首次获得了带有 GNOME 43 更新的 libadwaita。这意味着默认的 GNOME 应用程序可以在 Xfce 桌面下正确呈现。 -话虽如此,GNOME Software 43 在 Xubuntu 22.10 的 Xfce 桌面下看起来很棒。如果你将其与 Xfce 原生外观和带有 CSD/SSD(例如 Disk)的 GNOME 应用进行比较,它们看起来都很整洁。 +这就是说,GNOME 软件应用Software 43 在 Xubuntu 22.10 的 Xfce 桌面下看起来很棒。如果你将其与 Xfce 原生外观和带有 CSD/SSD(例如 “磁盘应用Disk”)的 GNOME 应用进行比较,它们看起来都很顺眼。 -我对 GNOME Software 43 在 Xfce 桌面下的 libadwaita/GTK4 渲染效果如此之好感到惊讶。 +我对 GNOME 软件应用 43 在 Xfce 桌面下的 libadwaita/GTK4 渲染效果如此之好感到惊讶。 ![在 Xubuntu 22.10 中一起使用三种不同的窗口][3] @@ -41,11 +42,11 @@ Xubuntu 22.10 的核心是基于 Ubuntu 22.10 的 Linux Kernel 5.19。另外,X Xfce 桌面带来了自己的原生应用集。在此版本中,所有应用都从 4.16 升级到 4.17 版本。 -值得注意的变化包括 Xfce 面板获得了对任务列表插件的中键单击支持和托盘时钟中的二进制时间模式。pulse 音频插件引入了一个新的录音指示器,可以过滤掉多个按钮按下事件。 +值得注意的变化包括:Xfce 面板获得了对任务列表插件的中键单击支持,和托盘时钟中的二进制时间模式。PulseAudio 插件引入了一个新的录音指示器,可以过滤掉多个按钮按下事件。 -Thunar 文件管理器获得了大量的底层功能和错误修复。如果你将 Thunar 4.16 与 Thunar 4.17 进行比较,它是变化巨大的。更改包括更新的上下文菜单、路径栏、搜索、导航等。你可以在[此处][4]阅读 Thunar 的所有更改日志。 +Thunar 文件管理器获得了大量的底层功能和错误修复。如果你将 Thunar 4.16 与 Thunar 4.17 进行比较,它是变化巨大的。更改包括更新的上下文菜单、路径栏、搜索、导航等。你可以在 [此处][4] 阅读 Thunar 的所有更改日志。 -此外,截屏应用 screenshooter 默认支持 WebP。蓝牙管理器 Blueman 在系统托盘新增配置文件切换器并更新 Catfish 文件搜索工具。 +此外,截屏应用 ScreenShooter 默认支持 WebP。蓝牙管理器 Blueman 在系统托盘新增配置文件切换器,并更新了 Catfish 文件搜索工具。 这是 Xfce 应用版本的更新列表和指向其更改日志的链接(如果你想进一步挖掘)。 @@ -64,30 +65,30 @@ Thunar 文件管理器获得了大量的底层功能和错误修复。如果你 默认的 elementary-xfce 图标集(浅色和深色)得到了更新,带有额外的精美图标,让你的 Xfce 桌面焕然一新。默认的 Greybird GTK 主题对窗口装饰进行了必要的改进,并添加了 Openbox 支持。 -你可能会注意到的重要且可见的变化之一是 ALT+TAB 外观。图标更大一些,眼睛更舒适,可以在深色背景下更快地切换窗口。 +你可能会注意到的重要且可见的变化之一是 `ALT+TAB` 外观。图标更大一些,眼睛更舒适,可以在深色背景下更快地切换窗口。 ![在 Xubuntu 22.10 的 elementary-xfce 中更新的图标集示例][15] ![ALT TAB 有更大的图标][16] -上述更改使默认应用与基础 [Ubuntu 22.10 版本][17]保持一致。以下是 Xubuntu 22.10 中的更改概括。 +上述更改使默认应用与其所基于的 [Ubuntu 22.10 版本][17] 保持一致。以下是 Xubuntu 22.10 中的更改概括。 ### 概括 -* Linux Kernel 5.19 和基于 Ubuntu 22.10 +* Linux 内核 5.19,基于 Ubuntu 22.10 * Xfce 桌面版 4.17 * 原生应用全部更新到 4.17 * 核心与 GNOME 43、libadwaita、GTK4 保持一致 * MATE 应用程序升级到 1.26 -* Mozilla Firefox 网络浏览器 105.0 +* Mozilla Firefox 网页浏览器 105.0 * Thunderbird 邮件客户端 102.3 * LibreOffice 7.4.4.2 ### 总结 -Xfce 桌面作为一个整体最关键的变化是在 4.18 版本中到来的。例如,最初的 Wayland 支持、更新的 glib 和 GTK 包。如果一切顺利,你可以在明年 4 月发布的 Xubuntu 中期待这些最好的变化。 +Xfce 桌面最关键的整体变化将在 4.18 版本中到来。例如,最初的 Wayland 支持、更新的 glib 和 GTK 包。如果一切顺利,你可以在明年 4 月发布的 Xubuntu 中期待这些最好的变化。 -最后,如果你想试用,可以从[这个页面][18]下载 beta 镜像。 +最后,如果你想试用,可以从 [这个页面][18] 下载 Beta 镜像。 -------------------------------------------------------------------------------- @@ -96,7 +97,7 @@ via: https://www.debugpoint.com/xubuntu-22-10-features/ 作者:[Arindam][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/) 荣誉推出 From 26cc02fdbb62afcd4d46175d230a0518e96de17b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 20 Oct 2022 08:13:03 +0800 Subject: [PATCH 1602/3123] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Wi-Fi 7 Access Points Are Now Available.md | 38 --------- ...Enable Native Wayland Support for Linux.md | 77 ------------------- 2 files changed, 115 deletions(-) delete mode 100644 sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md delete mode 100644 sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md diff --git a/sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md b/sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md deleted file mode 100644 index bddcb326ed..0000000000 --- a/sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md +++ /dev/null @@ -1,38 +0,0 @@ -[#]: subject: "World’s First Open Source Wi-Fi 7 Access Points Are Now Available" -[#]: via: "https://www.opensourceforu.com/2022/10/worlds-first-open-source-wi-fi-7-access-points-are-now-available/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -World’s First Open Source Wi-Fi 7 Access Points Are Now Available -====== -*The first Open source Wi-Fi 7 products in the world will be released by HFCL in conjunction with Qualcomm under its IO product line.* - -The world’s first Open source Wi-Fi 7 Access Points will be introduced by HFCL Limited, the top high-tech enterprise and integrated next-gen communication product and solution provider, in collaboration with Qualcomm Technologies, Inc. on October 1, 2022 at the India Mobile Congress in Pragati Maidan, New Delhi. - -Based on IEEE 802.11be, a ground-breaking Wi-Fi technology that is intended to give Extremely High Throughput (EHT), increased spectrum efficiency, better interference mitigation, and support for Real Time Applications (RTA), HFCL becomes the first OEM to release Open source Wi-Fi 7 Access Points. In order to provide a better user experience while yet using less power, Wi-Fi 7 uses faster connections with 320MHz and 4kQAM, numerous connections with Multi Link operation, and Adaptive Connections for adaptive interference puncturing. - -Wi-Fi 7 promises a significant technological advance above all prior Wi-Fi standards updates, providing a more immersive user experience and paving the way for a more robust digital future. The peak data speeds supported by HFCL’s Wi-Fi 7 APs will exceed 10 Gbps, and they will have latency under 2 ms as opposed to the 5 Gbps and 10 ms of existing Wi-Fi 6 products. - -Technology providers like telecom operators, Internet service providers, system integrators, and network administrators will be able to offer mission-critical and real-time application services and provide a better user experience than ever before thanks to HFCL’s Wi-Fi 7 product line, which is supported by a strong R&D focus. A wide variety of dual band and tri-band indoor and outdoor variations may be found in the new Wi-Fi 7 product portfolio. - -Being the first Wi-Fi 7 Access points in the market to embrace Open standards, all Wi-Fi 7 variations will come pre-installed with open source software. With the goal of providing improved global connectivity and maintaining interoperability in multi-vendor scenarios, open standards support disaggregated Wi-Fi systems delivered as free open source software. - -The introduction of Wi-Fi 7 will primarily support the country’s upcoming 5G rollout, particularly for enhancing inside coverage. Additionally, the technology will make it easier to construct a variety of apps because to its increased throughput, dependable network performance, and lower latency. The Internet of Things (IoT) and Industrial Internet of Things (IIoT) applications including surveillance, remote industrial automation, AV/VR/XR, and other video-based applications will benefit from Wi-Fi 7 technology for businesses. With numerous developments in Cloud/Edge Computing and Cloud gaming, it will also increase the number of remote offices, real-time collaborations, and online video conferencing. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/10/worlds-first-open-source-wi-fi-7-access-points-are-now-available/ - -作者:[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 diff --git a/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md b/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md deleted file mode 100644 index 5c7d0d7da1..0000000000 --- a/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md +++ /dev/null @@ -1,77 +0,0 @@ -[#]: subject: "Blender 3.4 to Enable Native Wayland Support for Linux" -[#]: via: "https://news.itsfoss.com/blender-3-4-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Blender 3.4 to Enable Native Wayland Support for Linux -====== -Blender is bringing in native Wayland support soon. Learn more here. - -![Blender 3.4 to Enable Native Wayland Support for Linux][1] - -Blender is a popular 3D creation suite that many professionals use. - -The developers of Blender have recently added native Wayland support for Linux in the daily builds, and have confirmed adding the support in the upcoming Blender 3.4 release. - -This is probably one of the significant development progress after [Blender 3.0 release][2] last year! - -### Blender With Native Wayland - -[Wayland][3] is a replacement to the X11 [display server][4] that aims to be a simpler and more modern solution. - -Providing native Wayland support has become necessary, mainly because many distros now come with that kind of support out of the box. - -With more Wayland support in the works and users switching to a distro with native support, this move was a given. - -[Linux Laptops - Powered by Open Source][5] - -With the daily builds, the **libdecor** library has made this possible. If you want to test it out, you need to have it installed for Blender to work correctly with native Wayland support. - -While initial support for Wayland was present in Blender since 2020, it was not ready for prime time. It had a lot of issues, such as no tablet support, no NDOF support, no Hi-DPI support, and similar. - -Now, it looks like most of those issues are gone. - -### Expect it With Blender 3.4 - -A blog post by one of Blender's developers *Campbell Barton,* reveals that if all goes well with the daily builds, the Wayland support is coming to Blender 3.4. - -Here's what he mentions: - -> Now Wayland is enabled in our official builds, I hope to validate it for the up coming release. So unless issues arise which we’re unable to resolve, it will be officially supported in Blender 3.4x onward. - -At this point, I can only hope that no significant issues affect its integration. - -Otherwise, it may push back to a later release cycle. - -Blender 3.4 will release in early **December 2022**, with improvements across the board and new features such as headless rendering for Linux, improvements for Sculpt, Intel Open PGL integration, and more. - -> 💡 Blender with Wayland has some technical limitations. You can find more details on that in the [blog post][9]. - -💬*Are you excited to try out native Wayland support on Blender?* - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/blender-3-4-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/blender-3-4-release.png -[2]: https://news.itsfoss.com/blender-3-0-release/ -[3]: https://wayland.freedesktop.org/ -[4]: https://itsfoss.com/display-server/ -[5]: https://starlabs.systems/?rfsn=4790429.bdbc07 -[6]: https://starlabs.systems/?rfsn=4790429.bdbc07 -[7]: https://itsfoss.com/open-source-video-editors/ -[8]: https://itsfoss.com/open-source-video-editors/ -[9]: https://code.blender.org/2022/10/wayland-support-on-linux/ From dde86dd9c69e7f02f10507a778313ebda623ff5b Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Thu, 20 Oct 2022 08:47:04 +0800 Subject: [PATCH 1603/3123] translated --- ...Bash- Command Not Found- Error in Linux.md | 151 ------------------ ...Bash- Command Not Found- Error in Linux.md | 147 +++++++++++++++++ 2 files changed, 147 insertions(+), 151 deletions(-) delete mode 100644 sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md create mode 100644 translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md diff --git a/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md deleted file mode 100644 index da03c39dbe..0000000000 --- a/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: subject: "Troubleshooting “Bash: Command Not Found” Error in Linux" -[#]: via: "https://itsfoss.com/bash-command-not-found/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lujun9972" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Troubleshooting “Bash: Command Not Found” Error in Linux -====== - -_**This beginner tutorial shows how to go about fixing the Bash: command not found error on Debian, Ubuntu and other Linux distributions.**_ - -When you use commands in Linux, you expect to see an output. But sometimes, you’ll encounter issues where the terminal shows ‘command not found’ error. - -![][1] - -There is no straightforward, single solution to this error. You have to do a little bit of troubleshooting on your own. - -It’s not too difficult, honestly. The error gives some hint already when it says “bash: command not found”. Your shell (or Linux system) cannot find the command you entered. - -There could be three possible reasons why it cannot find the command: - - * It’s a typo and the command name is misspelled - * The command is not even installed - * The command is basically an executable script and its location is not known - - - -Let’s go in detail on each possible root cause. - -### Fixing “bash: command not found” error - -![][2] - -#### Method 1: Double check the command name (no, seriously) - -It is human to make mistakes, specially while typing. It is possible that the command you entered has a typo (spelling mistake). - -You should specially pay attention to: - - * The correct command name - * The spaces between the command and its options - * The use of 1 (numeral one), I (capital i) and l (lowercase L) - * Use of uppercase and lowercase characters - - - -Take a look at the example below, where I have misspelled the common ls command. - -![][3] - -So, make double sure what you are typing. - -#### Method 2: Ensure that the command is installed on your system - -This is another common reason behind the command not found error. You cannot run a command if it is not installed already. - -While your Linux distribution comes with a huge number of commands installed by default, it is not possible to pre-install all the command line tools in a system. If the command you are trying to run is not a popular, common command, you’ll have to install it first. - -You can use your distribution’s package manager to install it. - -![You may have to install the missing command][4] - -In some cases, popular commands may get discontinued and you may not even install it anymore. You’ll have to find an alternative command to achieve the result. - -Take the example of ipconfig command. This deprecated command was used for [getting Ip address][5] and other network interface information. Older tutorials on the web still mention using this command but you cannot use it anymore in newer Linux versions. It has been replaced by the ifconfig tool. - -![Some popular commands get discontinued over the time][1] - -Occasionally, your system won’t find even the extremely common commands. This is often the case when you are running a Linux distribution in Docker containers. To cut down on the size of the operating system image, the containers often do not include even the most common Linux commands. - -This is why Docker user stumble across things like [ping command not found error][6] etc. - -![Docker containers often have only a few commands installed][7] - -So, the solution is to either install the missing command or find a tool that could do the same thing you were trying to do with the missing command. - -#### Method 3: Check if it is an executable script with correct path - -This is a common mistake Linux rookies make while [running a shell script][8]. - -Even if you are in the same directory and try to run an executable script just by its name, it will show an error. - -``` -[email protected]:~/scripts# sample --bash: sample: command not found -``` - -You need to either specify the shell interpreter explicitly or its absolute path. - -![][9] - -If you are in some other directory and try to execute the shell script without giving the correct path to the file, it will complain about not finding the file. - -![][10] - -##### Adding it to the PATH - -In some cases, you download the entire software in a tar file, extract it and find an executable file along with other program files. To run the program, you need to run the executable file. - -But for that, you need to be in the same directory or specify the entire path to the executable file. This is tiresome. - -Here, you can use the PATH variable. This variable has a collection of directories and these directories have the binary (executable) files of various Linux commands. When you run a command, your Linux system checks the mentioned directories in the PATH variable to look for the executable file of that command. - -You can check the location of the binary of a command by using the `which` command: - -![][11] - -If you want to run an executable file or script from anywhere on the system, you need to add the location of the file to this PATH variable. - -![][12] - -The PATH variable then needs to be added to the rc file of the shell so that the changes made to PATH variable is permanent. - -You get the gist here. It is important that your Linux system has the knowledge about the location of the executable script. Either you give the path while running it or you add its location to the PATH variable. - -### Did it help you? - -I understand that when you are new to Linux, things could be overwhelming. But when you understand the root cause of the problem, it gradually improved your knowledge. - -Here, there is no straightforward solution possible for the ‘command not found error’. I gave you some hints and pointers and that should help you in troubleshooting. - -If you still have doubt or need help, please let me know in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/bash-command-not-found/ - -作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/ -[b]: https://github.com/lujun9972 -[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-command-not-found-error.png?resize=741%2C291&ssl=1 -[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-command-not-found-error-1.png?resize=800%2C450&ssl=1 -[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/command-not-found-error.png?resize=723%2C234&ssl=1 -[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/command-not-found-debian.png?resize=741%2C348&ssl=1 -[5]: https://itsfoss.com/check-ip-address-ubuntu/ -[6]: https://linuxhandbook.com/ping-command-ubuntu/ -[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/ping-command-not-found-ubuntu.png?resize=786%2C367&ssl=1 -[8]: https://itsfoss.com/run-shell-script-linux/ -[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-script-command-not-found-error-800x331.png?resize=800%2C331&ssl=1 -[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/script-file-not-found-error-800x259.png?resize=800%2C259&ssl=1 -[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/path-location.png?resize=800%2C241&ssl=1 -[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/adding-executable-to-PATH-variable-linux.png?resize=800%2C313&ssl=1 diff --git a/translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md new file mode 100644 index 0000000000..1127ff2f32 --- /dev/null +++ b/translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md @@ -0,0 +1,147 @@ +[#]: subject: "Troubleshooting “Bash: Command Not Found” Error in Linux" +[#]: via: "https://itsfoss.com/bash-command-not-found/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lujun9972" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +解决 Linux 中的“Bash: Command Not Found”报错 +====== + +_**本新手教程展示了在 Debian、Ubuntu 和其他的 Linux 发行版上如何解决 Bash: command not found 这一报错。**_ + +当你在 Linux 中使用命令时,你希望得到终端输出的结果。但有时候,你会遇到终端显示“未找到命令(command not found)”这一报错。 + +![][1] + +对于这个问题,并没有直截了当且单一的解决方案。你必须自己做一些故障排除来解决这个报错。 + +老实说,要解决它并不难。该报错信息已经给出了一些提示:“bash: command not found”,这说明你的 shell(或者 Linux 系统)找不到你输入的那条命令。 + +shell(或 Linux 系统)找不到命令,有三个可能的原因: + + * 你将命令的名称拼错了 + * 该命令还没有安装 + * 该命令是一个可执行脚本,其位置未知 + +接下来,我们会详细介绍“bash: command not found”这一报错的每一个原因。 + +### 解决“bash: command not found”报错 + +![][2] + +#### 方法 1:再次检查命令名称有没有写错 + +每个人都会犯错误,尤其是在打字的时候。你输入的命令可能存在错别字(也就是你写错啦)。 + +你应该特别注意: + + * 是否拼对了正确的命令名称 + * 是否在命令与其选项之间加上了空格 + * 是否在拼写中混淆了 1(数字 1)、I(大写的 i)和 l(小写的 L) + * 是否正确使用了大写字母或者小写字母 + +看看下面的示例,因为我写错了 ls 命令,所以会导致“command not found”报错。 + +![][3] + +所以,请再次仔细确认你输入得对不对。 + +#### 方法 2:确保命令已安装在你的系统上 + +这是“命令未找到”错误的另一个常见原因。如果命令尚未安装,则无法运行该命令。 + +虽然在默认情况下,你的 Linux 发行版自带安装了大量命令,但是不会在系统中预装 _所有的_ 命令行工具。如果你尝试运行的命令不是一个流行的常用命令,那么你需要先安装它。 + +你可以使用发行版的软件包管理器来安装命令。 + +![You may have to install the missing command][4] + +有时候,某一常用命令可能也不再能使用了,甚至你也不能够安装这个命令了。这种情况下,你需要找到一个替代的命令,来得到结果。 + +以现已弃用的 ipconfig 命令为例。网络上的旧教程依旧会让你使用 ipconfig 命令,来 [获取本机的 IP 地址][5] 和网络接口信息,但是,在较新的 Linux 版本中,你已经无法使用 ipconfig 了。ipconfig 命令已被 ifconfig 命令所取代。 + +![Some popular commands get discontinued over the time][1] + +有时候,你的系统可能甚至找不到一些非常常见的命令。当你在 Docker 容器中运行 Linux 发行版时,就通常如此。Docker 容器为了缩小操作系统映像的大小,容器中通常不包含那些常见的 Linux 命令。 + +这就是为什么使用 Docker 的用户会碰到 [ping命令未找到][6](ping command not found) 等报错的原因。 + +![Docker containers often have only a few commands installed][7] + +因此,这种情况下的解决方案是安装缺失的命令,或者是找到一个与缺失命令有同等功能的工具。 + +#### 方法 3:检查命令是否是一个路径正确的可执行脚本 + +这是 Linux 新手在 [运行 shell 脚本][8] 时常犯的错误。 + +即使你在同一目录下,仅用可执行脚本的名称,来运行可执行脚本,也会显示错误。 + +``` +[email protected]:~/scripts# sample +-bash: sample: command not found +``` + +因为你需要显式指定 shell 解释器或可执行脚本的绝对路径! + +![][9] + +如果你在其他目录下,在未提供文件正确路径的情况下,运行 shell 脚本,则会有“找不到文件(no such file or directory)”的报错。 + +![][10] + +##### 把可执行文件的路径加到 PATH 变量中 + +有时候,你下载了一个软件的压缩文件(tar 格式),解压这个 tar 文件,然后找到一个可执行文件和其他程序文件。你需要运行可执行文件,来运行那个软件。 + +但是,你需要在可执行文件的同一目录下或指定可执行文件的整个路径,才能运行那个可执行文件。这很令人烦扰。 + +你可以使用 PATH 变量,来解决这个问题。PATH 变量包含了有各种 Linux 命令的二进制(可执行)文件的目录集合。当你运行一个命令时,你的 Linux 系统会检查 PATH 变量中的上述目录,以查找该命令的可执行文件。 + +你可以使用 `which` 命令,来检查某一命令的二进制文件的位置: + +![][11] + +如果你想从系统上的任何地方都能运行可执行文件或脚本,你需要将可执行文件的位置添加到 PATH 变量中。 + +![][12] + +然后,PATH 变量需要添加到 shell 的 rc 文件中,如此对 PATH 变量的更改就是永久性的。 + +这里的要点是:你的 Linux 系统必须了解可执行脚本的位置。要么在运行时给出可执行文件的整个路径,要么将其位置添加到 PATH 变量中。 + +### 以上的内容有帮到你吗? + +我懂得,当你是 Linux 新手时,很多事情可能会让你不知所措。但是,当你了解问题的根本原因时,你的知识会逐渐增加。 + +对于“未找到命令”(command not found)报错来说,没有简单的解决方案。我提供给你了一些提示和要点,我希望这对你的故障排除有帮助。 + +如果你仍然有疑问或需要帮助,请在评论区告诉我吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/bash-command-not-found/ + +作者:[Abhishek Prakash][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-command-not-found-error.png?resize=741%2C291&ssl=1 +[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-command-not-found-error-1.png?resize=800%2C450&ssl=1 +[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/command-not-found-error.png?resize=723%2C234&ssl=1 +[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/command-not-found-debian.png?resize=741%2C348&ssl=1 +[5]: https://itsfoss.com/check-ip-address-ubuntu/ +[6]: https://linuxhandbook.com/ping-command-ubuntu/ +[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/ping-command-not-found-ubuntu.png?resize=786%2C367&ssl=1 +[8]: https://itsfoss.com/run-shell-script-linux/ +[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-script-command-not-found-error-800x331.png?resize=800%2C331&ssl=1 +[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/script-file-not-found-error-800x259.png?resize=800%2C259&ssl=1 +[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/path-location.png?resize=800%2C241&ssl=1 +[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/adding-executable-to-PATH-variable-linux.png?resize=800%2C313&ssl=1 From a9c163fd3c0c268c42c8f389624a5ebb12cc74f8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 20 Oct 2022 08:50:22 +0800 Subject: [PATCH 1604/3123] translated --- ...ay to Open Files as Root in GNOME Files.md | 81 ------------------- ...ay to Open Files as Root in GNOME Files.md | 81 +++++++++++++++++++ 2 files changed, 81 insertions(+), 81 deletions(-) delete mode 100644 sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md create mode 100644 translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md diff --git a/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md b/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md deleted file mode 100644 index f97f4a07af..0000000000 --- a/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md +++ /dev/null @@ -1,81 +0,0 @@ -[#]: subject: "Easiest Way to Open Files as Root in GNOME Files" -[#]: via: "https://www.debugpoint.com/gnome-files-root-access/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Easiest Way to Open Files as Root in GNOME Files -====== -Here’s the simplest way to access a file or directory as root in GNOME Files. - -![][1] - -In Windows, you generally get an option to open a file or folder as “Open As Administrator” in the right-click context menu. - -That feature is part of the File manager, i.e. for Windows; it’s part of Windows Explorer. However, it is executed by the operating system and its permission control modules. - -In Linux distributions and file managers, the situation is a little different. The different desktop has their way of handling this. - -Since modifying the files and folders as admin (or root) is risky and may cause a broken system, the feature is not easily available to users via the GUI of file managers. - -For example, KDE Plasma’s default file manager Dolphin recently [added this feature][2] so that when a root privilege is required, it will ask for you with a PolicyKit KDE Agent (polkit) window – as shown below. Not the other way around. You want to open/execute something via root from the file manager. - -It’s worth mentioning that you can not use “sudo dolphin” to run the file manager itself with root privilege. - -![Dolphin root access after KIO with Polkit implementation][3] - -In a way, it saves many unforeseen situations. But advanced users can always use sudo via the terminal to do their job. - -### GNOME Files (Nautilus) and root access to files, directories - -That being said, [GNOME Files][4] (aka Nautilus) has a way to open files and folders via root. - -Here’s how. - -* Open GNOME Files or Nautilus. -* Then click on other locations at the left pane. -* Press CTRL+L to bring up the address bar. -* In the address bar, type in below and hit enter. - -``` -admin:/// -``` - -* It would ask for the admin password; once you authenticate yourself successfully, you get the system open for you as admin. -* Now, here onwards, whatever you do, it’s as admin or root. - -![Enter the location address as admin][5] - -![Give admin password][6] - -![Opening GNOME Files as root][7] - -But, as always, be careful what you do as an admin. It’s often easy to forget after you authenticate yourself as root. - -There’s always a reason why these options are not easily visible to prevent you and many new Linux users from breaking their system. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-files-root-access/ - -作者:[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/10/nauroot-1024x576.jpg -[2]: https://www.debugpoint.com/dolphin-root-access/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/02/Dolphin-root-access-after-KIO-with-Polkit-implementation.jpg -[4]: https://wiki.gnome.org/Apps/Files -[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enter-the-location-address-as-admin.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/Give-admin-password.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Opening-GNOME-Files-as-root.jpg diff --git a/translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md b/translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md new file mode 100644 index 0000000000..ac5899e9cc --- /dev/null +++ b/translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md @@ -0,0 +1,81 @@ +[#]: subject: "Easiest Way to Open Files as Root in GNOME Files" +[#]: via: "https://www.debugpoint.com/gnome-files-root-access/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 GNOME 文件中以 Root 身份打开文件的最简单方法 +====== +这是在 GNOME Files 中以 root 身份访问文件或目录的最简单方法。 + +![][1] + +在 Windows 中,你通常可以在右键单击上下文菜单中以“以管理员身份打开”的方式打开文件或文件夹。 + +该功能是文件管理器的一部分,即适用于 Windows。它是 Windows 资源管理器的一部分。但是,它是由操作系统及其权限控制模块执行的。 + +在 Linux 发行版和文件管理器中,情况略有不同。不同的桌面有自己的处理方式。 + +由于以管理员(或 root)身份修改文件和文件夹是有风险的,并且可能导致系统损坏,因此用户无法通过文件管理器的 GUI 轻松使用该功能。 + +例如,KDE Plasma 的默认文件管理器 Dolphin 最近[添加了此功能][2],因此当需要 root 权限时,它会通过 PolicyKit KDE Agent (polkit) 窗口询问你,如下所示。而不是相反的方式。你想在文件管理器中通过 root 打开/执行一些东西。 + +值得一提的是,你不能使用 “sudo dolphin” 以 root 权限运行文件管理器本身。 + +![使用 Polkit 实现 KIO 后的 Dolphin root 访问权限][3] + +在某种程度上,它挽救了许多不可预见的情况。但是高级用户总是可以通过终端使用 sudo 来完成他们的工作。 + +### GNOME Files (Nautilus) 和对文件、目录的 root 访问权限 + +话虽如此,[GNOME Files][4](又名 Nautilus)有一种方法可以通过 root 打开文件和文件夹。 + +以下是方法。 + +* 打开 GNOME Files 或 Nautilus。 +* 然后单击左侧窗格中的其他位置。 +* 按 CTRL+L 调出地址栏。 +* 在地址栏中,输入下面的内容并回车。 + +``` +admin:/// +``` + +* 它会要求输入管理员密码。当你成功验证自己,你就会以管理员身份打开系统。 +* 现在,从这里开始,无论你做什么,它都是管理员或 root。 + +![以管理员身份输入位置地址][5] + +![输入管理员密码][6] + +![以 root 身份打开 GNOME Files][7] + +但是,与往常一样,请小心你作为管理员所做的事情。在你以 root 身份验证自己之后,通常很容易忘记。 + +这些选项不容易看到总是有原因的,以防止你和许多新的 Linux 用户破坏他们的系统。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-files-root-access/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/nauroot-1024x576.jpg +[2]: https://www.debugpoint.com/dolphin-root-access/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/02/Dolphin-root-access-after-KIO-with-Polkit-implementation.jpg +[4]: https://wiki.gnome.org/Apps/Files +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enter-the-location-address-as-admin.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/Give-admin-password.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Opening-GNOME-Files-as-root.jpg From 4ba76419456a483fc8d350f679d8b8de9ba65ba9 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Thu, 20 Oct 2022 08:51:50 +0800 Subject: [PATCH 1605/3123] translating by chai001125 --- ...0210629 Try Linux on any operating system with VirtualBox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md index ccf231735e..9be0476542 100644 --- a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md +++ b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/try-linux-virtualbox) [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chai001125) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 4f0f4c21fd1423a09c4fb08059c42932e8247972 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 20 Oct 2022 08:53:22 +0800 Subject: [PATCH 1606/3123] translating --- ...21013 Enjoy the Classic Snake Game in Your Linux Terminal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md index e1c795958a..cefdd34dd5 100644 --- a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md +++ b/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/snake-game-linux-terminal/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 0f5a8abe8e5d51aa68262837dfaebbba3b8084f9 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Thu, 20 Oct 2022 08:58:59 +0800 Subject: [PATCH 1607/3123] Revert "translating by chai001125" This reverts commit 4ba76419456a483fc8d350f679d8b8de9ba65ba9. --- ...0210629 Try Linux on any operating system with VirtualBox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md index 9be0476542..ccf231735e 100644 --- a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md +++ b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/try-linux-virtualbox) [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) -[#]: translator: (chai001125) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 29f26c85bc4db36cd08552e0b0044be061af4740 Mon Sep 17 00:00:00 2001 From: MareDevi Date: Thu, 20 Oct 2022 11:21:34 +0800 Subject: [PATCH 1608/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Joplin, the open source note-taking app.md | 140 ----------------- ...Joplin, the open source note-taking app.md | 145 ++++++++++++++++++ 2 files changed, 145 insertions(+), 140 deletions(-) delete mode 100644 sources/talk/20220926 The story behind Joplin, the open source note-taking app.md create mode 100644 translated/talk/20220926 The story behind Joplin, the open source note-taking app.md diff --git a/sources/talk/20220926 The story behind Joplin, the open source note-taking app.md b/sources/talk/20220926 The story behind Joplin, the open source note-taking app.md deleted file mode 100644 index ab229e6dba..0000000000 --- a/sources/talk/20220926 The story behind Joplin, the open source note-taking app.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "The story behind Joplin, the open source note-taking app" -[#]: via: "https://opensource.com/article/22/9/joplin-interview" -[#]: author: "Richard Chambers https://opensource.com/users/20i" -[#]: collector: "lkxed" -[#]: translator: "MareDevi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The story behind Joplin, the open source note-taking app -====== -Laurent Cozic sat down with me to discuss how Joplin got started and what's next for the open source note-taking app. - -In this interview, I met up with Laurent Cozic, creator of the note-taking app, Joplin. [Joplin][2] was a winner of the [20i][3] rewards, so I wanted to find out what makes it such a success, and how he achieved it. - -**Could you summarize what Joplin does?** - -[Joplin][4] is an open source note-taking app. It allows you to capture your thoughts and securely access them from any device. - -**Obviously, there are other note-taking apps out there—but apart from it being free to use, what makes it different?** - -The fact that it is open source is an important aspect for many of our users, because it means there is no vendor locking on the data, and that data can be easily exported and accessed in various ways. - -We also focus on security and data privacy, in particular with the synchronization end-to-end encryption feature, and by being transparent about any connection that the application makes. We also work with security researchers to keep the app more secure. - -Finally, Joplin can be customized in several different ways—through plugins, which can add new functionalities, and themes to customize the app appearance. We also expose a data API, which allows third-party applications to access Joplin data. - -**[[ Related read 5 note-taking apps for Linux ]][5]** - -**It's a competitive market, so what inspired you to build it?** - -It happened organically. I started looking into it in 2016, as I was looking at existing commercial note-taking applications, and I didn't like that the notes, attachments, or tags could not easily be exported or manipulated by other tools. - -This is probably due to vendor locking and partly a lack of motivation from the vendor since they have no incentive to help users move their data to other apps. There is also an issue with the fact that these companies usually will keep the notes in plain text, and that can potentially cause issues in terms of data privacy and security. - -So I decided to start creating a simple mobile and terminal application with sync capabilities to have my notes easily accessible on my devices. Later the desktop app was created and the project grew from there. - -![Image of Joplin on Chrome OS.][6] - -Image by: (Opensource.com, CC BY-SA 4.0) - -**How long did Joplin take to make?** - -I've been working on it on and off since 2016 but it wasn't full time. The past two years I've been focusing more on it. - -**What advice might you have for someone setting to create their own open source app?** - -Pick a project you use yourself and technologies you enjoy working with. - -Managing an open source project can be difficult sometimes so there has to be this element of fun to make it worthwhile. Then I guess "release early, release often" applies here, so that you can gauge user's interest and whether it makes sense to spend time developing the project further. - -**How many people are involved in Joplin's development?** - -There are 3-4 people involved in the development. At the moment we also have six students working on the project as part of Google Summer of Code. - -**Lots of people create open source projects, yet Joplin has been a resounding success for you. Could you offer creators any tips on how to get noticed?** - -There's no simple formula and to be honest I don't think I could replicate the success in a different project! You've got to be passionate about what you're doing but also be rigorous, be organized, make steady progress, ensure the code quality remains high, and have a lot of test units to prevent regressions. - -Also be open to the user feedback you receive, and try to improve the project based on it. - -Once you've got all that, the rest is probably down to luck—if it turns out you're working on a project that interests a lot of people, things might work out well! - -**Once you get noticed, how do you keep that momentum going, if you don't have a traditional marketing budget?** - -I think it's about listening to the community around the project. For example I never planned to have a forum but someone suggested it on GitHub, so I made one and it became a great way to share ideas, discuss features, provide support, and so on. The community is generally welcoming of newcomers too, which creates a kind of virtuous circle. - -Next to this, it's important to communicate regularly about the project. - -We don't have a public roadmap, because the ETA for most features is generally "I don't know", but I try to communicate about coming features, new releases, and so on. We also communicate about important events, the Google Summer of Code in particular, or when we have the chance to win something like the 20i FOSS Awards. - -Finally, very soon we'll have an in-person meetup in London, which is another way to keep in touch with the community and collaborators. - -**How does user feedback influence the roadmap?** - -Significantly. Contributors will often work on something simply because they need the feature. But next to this, we also keep track of the features that seem most important to users, based on what we read about on the forum and on the GitHub issue tracker. - -For example, the mobile app is now high priority because we frequently hear from users that its limitations and issues are a problem to effectively use Joplin. - -![Image of Joplin being used on a Desktop.][8] - -Image by: (Opensource.com, CC BY-SA 4.0) - -**How do you keep up to date with the latest in dev and coding?** - -Mostly by reading Hacker News! - -**Do you have a personal favorite FOSS that you'd recommend?** - -Among the less well-known projects, [SpeedCrunch][9] is very good as a calculator. It has a lot of features and it's great how it keeps a history of all previous calculations. - -I also use [KeepassXC][10] as a password manager. It has been improving steadily over the past few years. - -Finally, [Visual Studio Code][11] is great as a cross-platform text editor. - -**I'd assumed that Joplin was named after Janis, but Wikipedia tells me it's Scott Joplin. What made you choose the name?** - -I wanted to name it "jot-it" at first but I think the name was already taken. - -Since I was listening to Scott Joplin ragtime music a lot back then (I was pretty much obsessed with it), I decided to use his name. - -I think the meaning of a product name is not too important, as long as the name itself is easy to write, pronounce, remember, and perhaps is associated with something positive (or at least nothing negative). - -And I think "Joplin" ticks all these boxes. - -**Is there anything you can say about plans for Joplin? An exclusive tease of a new feature, perhaps?** - -As mentioned earlier, we are very keen to make improvements to the mobile app, both in terms of UX design and new features. - -We're also looking at creating a "Plugin Store" to make it easier to browse and install plugins. - -**Thanks for your time Laurent— best of luck with the future of Joplin.** - -*[This interview was originally published on the 20i blog and has been republished with permission.][12]* - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/9/joplin-interview - -作者:[Richard Chambers][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/20i -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png -[2]: https://joplinapp.org/ -[3]: https://www.20i.com/foss-awards/winners -[4]: https://opensource.com/article/19/1/productivity-tool-joplin -[5]: https://opensource.com/article/22/8/note-taking-apps-linux -[6]: https://opensource.com/sites/default/files/2022-09/joplin-chrome-os.png -[7]: https://opensource.com/article/21/10/google-summer-code -[8]: https://opensource.com/sites/default/files/2022-09/joplin-desktop.png -[9]: https://heldercorreia.bitbucket.io/speedcrunch/ -[10]: https://opensource.com/article/18/12/keepassx-security-best-practices -[11]: https://opensource.com/article/20/6/open-source-alternatives-vs-code -[12]: https://www.20i.com/blog/joplin-creator-laurent-cozic/ diff --git a/translated/talk/20220926 The story behind Joplin, the open source note-taking app.md b/translated/talk/20220926 The story behind Joplin, the open source note-taking app.md new file mode 100644 index 0000000000..cd1954b0a6 --- /dev/null +++ b/translated/talk/20220926 The story behind Joplin, the open source note-taking app.md @@ -0,0 +1,145 @@ +[#]: subject: "The story behind Joplin, the open source note-taking app" +[#]: via: "https://opensource.com/article/22/9/joplin-interview" +[#]: author: "Richard Chambers https://opensource.com/users/20i" +[#]: collector: "lkxed" +[#]: translator: "MareDevi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +开源笔记软件Joplin背后的故事 +====== +Laurent Cozic与我坐下来,讨论了Joplin是如何开始的,以及这个开源笔记软件的下一步计划。 + +在这次采访中,我见到了笔记软件Joplin的创建者Laurent Cozic。[Joplin][2]是[20i][3]奖励的赢家,所以我想了解是什么让它如此成功,以及他如何实现的。 + + +**您能总结一下什么是Joplin吗** + +[Joplin][4]是一个开源的笔记软件。它可以你捕获你的想法并从任何设备安全地访问它们。 + + +**显然,还有很多其他的笔记应用,那么除了免费使用之外,它还有什么不同呢?** + +对我们的许多用户来说,它是开源的这一事实是一个非常重要的方面,因为这意味着没有供应商对数据的封锁,而且数据可以很容易地被导出并以各种方式访问。 + +我们还关注用户的安全和数据隐私,特别是端到端加密同步功能,以及通过对应用的任何连接保持透明。我们还与安全研究人员合作,以保证软件更加安全。 + +最后,Joplin可以通过几种不同的方式进行定制--通过插件(可以添加新的功能)和主题来定制应用程序的外观。我们还公开了一个数据API,它允许第三方应用程序访问Joplin的数据。 + + +**[[相关阅读:5款Linux上的笔记应用]][5]** + +**这是一个竞争非常激烈的市场,那么是什么激发了您创建它的想法?** + +这是有原因的的。我从2016年开始研究它,因为我不喜欢现有的商业记事应用程序:笔记、附件或标签不能轻易被其他工具导出或操作。 + +这主要是由于供应商的封锁,另外还有供应商缺乏动力,因为他们没有动力帮助用户将他们的数据转移到其他应用程序。还有一个问题是,这些公司通常会以纯文本形式保存笔记,而这有可能造成数据隐私和安全方面的问题。 + +因此,我决定开始创建一个简单且具有同步功能的移动和终端应用程序,使我的笔记能够轻松地在我的设备上访问。之后又创建了桌面应用程序,项目从此开始发展。 + + +![Chrome OS上Joplin的图片][6] + +图片来自: (Opensource.com, CC BY-SA 4.0) + +**编写Joplin花了多长时间呢?** + +自2016年以来,我一直在断断续续地工作,但并不是专门去维护。不过在过去的两年里,我更加专注于它。 + +**对于准备创建自己的开源应用的人,你有什么建议?** + +挑选一个你自己使用的项目和你喜欢的技术来工作。 + +管理一个开源项目有时是很困难的,所以必须要有足够的兴趣去让它变得更有价值。那么我想 "早发布,多发布 "在这里也适用,这样你就可以衡量用户的兴趣,以及是否有必要花时间进一步开发这个项目。 + + +**有多少人参与了Joplin的开发?** + +有3-4人参与开发。目前,我们还有6名学生在谷歌代码之夏(Google Summer of Code)项目中工作。 + +**许多人都创建开源项目,但Joplin对您来说是一个巨大的成功。关于如何获得关注,你能否给开发者提供一些建议?** + +没有简单的公式,说实话,我不认为我可以在另一个项目中复制这种成功!你必须对你所做的事情充满热情,但同时也要严谨、有组织、稳步前进,确保代码质量保持高水平,并拥有大量的测试单元以防止倒退。 + +同时,对于你收到的用户反馈保持开放的态度,并在此基础上改进项目。 + +一旦你掌握了这些,剩下的可能就全靠运气了——如果你做的项目让很多人都感兴趣,事情可能会顺利进行! + +**一旦你得到关注,但如果你没有传统的营销预算,你如何保持这种势头?** + +我认为这是在于倾听项目周围的社区。举个例子来说,我从未计划过建立一个论坛,但有人在GitHub上提出了这个建议,所以我创建了一个论坛,它成为了一个分享想法、讨论功能、提供支持等很好的方式。社区也普遍欢迎新人,这形成了一种良性循环。 + +除此以外,定期就项目进行沟通也很重要。 + +我们没有一个公开的路线图,因为大多数功能的ETA通常是 "我不知道",但我试图就即将到来的功能、新版本等进行沟通。我们也会就重要的事件进行沟通,特别是谷歌的代码之夏,或者当我们有机会赢得像20i FOSS奖的时候。 + +最后,我们很快将在伦敦举行一次面对面的聚会,这是与社区和合作者保持联系的另一种方式。 + +**用户的反馈是如何影响路线图的?** + +很明显,贡献者们经常仅仅因为他们需要某个特性而从事某些工作。但除此之外,我们还根据论坛和GitHub问题追踪器上的信息,追踪对用户来说似乎最重要的功能。 + +例如,移动应用程序现在具有很高的优先级,因为我们经常从用户那里听到,它的限制和问题是有效使用Joplin的一个问题。 + +![桌面使用Joplin的图片][8] + +图片来自: (Opensource.com, CC BY-SA 4.0) + +**您如何跟进开发和编写代码的最新进展?** + +主要是通过阅读Hacker News! + +**你有个人最喜欢的自由/开源软件可以推荐吗?** + +在不太知名的项目中,[SpeedCrunch][9]作为一个计算器非常好。它有很多功能,而且很好的是它能保留以前所有计算的历史。 + +我还使用[KeepassXC][10]作为密码管理器。在过去的几年里,它一直在稳步改进。 + +最后,[Visual Studio Code][11]作为一个跨平台的文本编辑器非常棒。 + +**我原以为Joplin是以Janis的名字命名的,但维基百科告诉我来自是Scoot Joplin。你为什么选择这个名字?** + +我起初想把它命名为 "jot-it",但我想的这个名字已经被人取走了。 + +由于我那时经常听斯科特-乔普林的拉格泰姆音乐(我相当痴迷于此),我决定使用他的名字。 + +我认为产品名称的含义并不太重要,只要名称本身易于书写、发音、记忆,并与一些积极的东西(或至少没有消极的东西)有关。 + +我觉得"Joplin"符合所有条件。 + +**关于Joplin的计划,您还有什么可以说的吗?也许是对一个新功能的独家预告?** + +如前所述,我们非常希望在用户体验设计和新功能方面对移动应用进行改进。 + +我们也在考虑创建一个“插件商店”,以便更容易地浏览和安装插件。 + +**感谢Laurent — 祝Joplin的未来好运.** + +*[这篇访谈最初发表在20i博客上,已获得许可进行转载。][12]* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/joplin-interview + +作者:[Richard Chambers][a] +选题:[lkxed][b] +译者:[MareDevi](https://github.com/MareDevi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/20i +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png +[2]: https://joplinapp.org/ +[3]: https://www.20i.com/foss-awards/winners +[4]: https://opensource.com/article/19/1/productivity-tool-joplin +[5]: https://opensource.com/article/22/8/note-taking-apps-linux +[6]: https://opensource.com/sites/default/files/2022-09/joplin-chrome-os.png +[7]: https://opensource.com/article/21/10/google-summer-code +[8]: https://opensource.com/sites/default/files/2022-09/joplin-desktop.png +[9]: https://heldercorreia.bitbucket.io/speedcrunch/ +[10]: https://opensource.com/article/18/12/keepassx-security-best-practices +[11]: https://opensource.com/article/20/6/open-source-alternatives-vs-code +[12]: https://www.20i.com/blog/joplin-creator-laurent-cozic/ From bbdce3c9019aa2063069a371c4bc0a2efdb23958 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 20 Oct 2022 12:04:50 +0800 Subject: [PATCH 1609/3123] RP @chai001125 https://linux.cn/article-15157-1.html --- ...mendations from open source enthusiasts.md | 197 ++++++++++++++++++ ...mendations from open source enthusiasts.md | 173 --------------- 2 files changed, 197 insertions(+), 173 deletions(-) create mode 100644 published/20220621 7 summer book recommendations from open source enthusiasts.md delete mode 100644 translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md diff --git a/published/20220621 7 summer book recommendations from open source enthusiasts.md b/published/20220621 7 summer book recommendations from open source enthusiasts.md new file mode 100644 index 0000000000..66784a6b0c --- /dev/null +++ b/published/20220621 7 summer book recommendations from open source enthusiasts.md @@ -0,0 +1,197 @@ +[#]: subject: "7 summer book recommendations from open source enthusiasts" +[#]: via: "https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list" +[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15157-1.html" + +来自开源爱好者的 7 本读物推荐 +====== + +> 社区的成员们推荐这些书籍,涵盖了从有趣的悬疑小说到发人深省的非小说作品的各种类型,你一定能从中找到一本你想看的书! + +![](https://img.linux.net.cn/data/attachment/album/202210/20/115515jsppwzz8s1ssle7p.jpg) + +很高兴能为大家介绍 Opensource.com 的 2022 年暑期阅读清单。今年的榜单包含来自 Opensource.com 社区成员的 7 本精彩的读物推荐。你可以发现各种各样的书籍,涵盖从有趣舒适的谜团到探索发人深省主题的非小说类作品。我希望你能在这个榜单中找到感兴趣的书本。 + +希望你喜欢! + +### 《每个 Java 程序员都应该知道的 97 件事:专家的集体智慧》 + +![Book title 97 Things Every Java Programmer Should Know][4] + +> **《[每个 Java 程序员都应该知道的 97 件事:专家的集体智慧][5]97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts》** + +编辑:Kevlin Henney 和 Trisha Gee + +*[由 Seth Kenlon 推荐][6]* + +这本书是由 73 位在软件行业工作的不同作者共同撰写。它的优秀之处在于它不仅仅适用于 Java 编程。当然,有些章节会涉及 Java,但是也还有一些其他话题,例如了解你的容器环境、如何更快更好地交付软件、以及不要隐藏你的开发工具,这些适用于任何语言的开发。 + +更好的是,有些章节同样适用于生活中的问题。将问题和任务分成小的部分是解决任何问题的好建议;建立多样化的团队对所有合作者都很重要;由从散乱的一块块拼图到拼好的完成品,看起来像是拼图玩家的思路,也适用于不同的工作角色。 + +每章只有几页,总共有 97 个章节,你可以轻松跳过不适用于你自己的章节。无论你是一直在写 Java 代码、或者只是学过一点 Java,亦或是尚未开始学习 Java,对于对代码和软件开发过程感兴趣的极客来说,这都会是一本好书。 + +### 《城市不是计算机:其他的城市智能》 + +![Book title A City is Not a Computer][7] + +> **《[城市不是计算机:其他的城市智能][8]A City is Not a Computer: Other Urban Intelligences》** + +作者:Shannon Mattern + +*[由 Scott Nesbitt 推荐][9]* + +如今,让一切变得智能已经成为一种 *时尚*:我们的手机、家用电器、手表、汽车,甚至是城市都变得智能化了。 + +对于城市的智能化,这意味着传感器变得无处不在,在我们开展业务时收集数据,并根据这些数据向我们推送信息(无论数据有用与否)。 + +这就引出了一个问题,将所有高科技技术嵌入到城市中是否会使得城市智能化呢?在《城市不是计算机》这本书中,作者 Shannon Mattern 认为并不是这样的。 + +城市智能化的目标之一是为市民提供服务和更好的城市参与感。Mattern 指出,但是实际上,智慧城市“希望将技术专家的管理想法与公共服务相融合,从而将公民重新设置为‘消费者’和‘用户’”,然而,这并不是在鼓励公民积极参与城市的生活和治理。 + +第二个问题是关于智慧城市收集的数据。我们不知道收集了什么数据,以及收集了多少数据。我们也不知道这些数据使用在什么地方,以及是谁使用的。收集的数据太多了,以至于处理数据的市政工作人员会不堪重负。他们无法处理所有数据,因此他们专注于短期容易实现的任务,而忽略了更深层次和更紧迫的问题。这绝对达不到在推广智慧城市时所承诺的目标:智慧城市将成为解决城市困境的良药。 + +《城市不是计算机》是一本短小精悍、经过深入研究的、反对拥抱智慧城市的论证。这本书让我们思考智慧城市的真正目的:要让百姓真正受益于城市智能化,并引发我们的思考:发展智慧城市是否必要呢。 + +### 《git sync 谋杀案》 + +![Book title git sync murder][10] + +> **《[git sync 谋杀案][11]git sync murder》** + +作者:Michael Warren Lucas + +*[由 Joshua Allen Holm 推荐][12]* + +Dale Whitehead 宁愿呆在家里,通过他的电脑终端与世界连接,尤其是在他参加的最后一次会议上发生的事情之后。在那次会议上,Dale 扮演了一个业余侦探的角色,解决了一桩谋杀案。你可以在该系列的第一本书《git commit 谋杀案git commit murder》中读到那个案件。 + +现在,Dale 回到家,参加另一个会议,他再次发现自己成为了侦探。在《git sync 谋杀案git sync murder》中,Dale 参加了一个当地科技会议/科幻大会,会议上发现一具尸体。这是谋杀,还是只是一场意外?现在,Dale 是这些问题的“专家”,他发现自己被卷入了这件事,并要亲自去弄清楚到底发生了什么。再多说的话就剧透了,所以我能说《git sync 谋杀案》这本书十分引人入胜,而且读起来很有趣。不必先阅读《git commit 谋杀案》,才能阅读《git sync 谋杀案》,但我强烈推荐一起阅读该系列中的这两本书。 + +作者 Michael Warren Lucas 的《git 谋杀案》系列非常适合喜欢悬疑小说的科技迷。Lucas 写过很多复杂的技术题材的书,这本书也延续了他的技术题材,《git sync 谋杀案》这本书中的人物在会议活动上谈论技术话题。如果你因为新冠疫情,最近没有参加过会议,怀念参会体验的话,Lucas 将带你参加一个技术会议,其中还有一个谋杀之谜以待解决。Dale Whitehead 是一个有趣的业余侦探,我相信大多数读者会喜欢和 Dale 一起参加技术会议,并充当侦探破解谜案的。 + +### 《像女孩一样踢球》 + +![Book title Kick Like a Girl][13] + +> **《[像女孩一样踢球][14]Kick Like a Girl》** + +作者:Melissa Di Donato Roos + +*[由 Joshua Allen Holm 推荐][15]* + +没有人喜欢被孤立,当女孩 Francesca 想在公园里踢足球时,她也是这样。男孩们不会和她一起玩,因为她是女孩,所以她不高兴地回家了。她的母亲安慰她,讲述了有重要影响力的著名女性的故事。《像女孩一样踢球》中详述的历史人物包括历史中来自许多不同领域的女性。读者将了解 Frida Kahlo、Madeleine Albright、阿达·洛芙莱斯Ada Lovelace、Rosa Parks、Amelia Earhart、玛丽·居里Marie Curie(居里夫人)、Valentina Tereshkova、弗洛伦斯·南丁格尔Florence Nightingale 和 Malala Yousafzai 的故事。听完这些鼓舞人心的人物故事后,Francesca 回到公园,向男孩们发起了一场足球挑战。 + +《像女孩一样踢球》这本书的特色是作者 Melissa Di Donato Roos(SUSE 的 CEO,LCTT 译注:SUSE 是一家总部位于德国的软件公司,创立于 1992 年,以提供企业级 Linux 为主要业务)引人入胜的写作和 Ange Allen 的出色插图。这本书非常适合年轻读者,他们会喜欢押韵的文字和书中的彩色插图。Melissa Di Donato Roos 还写了另外两本童书,《美人鱼如何便便How Do Mermaids Poo?》和《魔盒The Magic Box》,这两本书也都值得一读。 + +### 《这是我的!:所有权的潜规则如何控制着我们的生活》 + +![Book title Mine!][16] + +> **《[这是我的!:所有权的潜规则如何控制着我们的生活][17]Mine!: How the Hidden Rules of Ownership Control Our Lives》** + +作者:Michael Heller 和 James Salzman + +*[由 Bryan Behrenshausen 推荐][18]* + +作者 Michael Heller 和 James Salzman 在文章《这是我的!》中写道:“你对所有权的很多了解都是错误的”。这是一种被吸引到开源领域的人不得不接受所有权规则的对抗性邀请。这本书肯定是为开源爱好者而写的,他们对代码、思想、各种知识产权的所有权的看法往往与主流观点和普遍接受的认知不同。在本书中,Heller 和 Salzman 列出了“所有权的隐藏规则”,这些规则管理着谁能控制对什么事物的访问。这些所有权规则是微妙的、强大的、有着深刻的历史惯例。这些所有权规则已经变得如此普遍,以至于看起来无可争议,这是因为“先到先得”或“种瓜得瓜,种豆得豆”的规则已经成为陈词滥调。然而,我们看到它们无处不在:在飞机上,为宝贵的腿部空间而战;在街道上,邻居们为铲好雪的停车位发生争执;在法庭上,陪审团决定谁能控制你的遗产和你的 DNA。在当下的数字时代,所有权的替代理论能否为重新思考基本权利创造空间?作者们认为这是可以的。如果这是正确的,我们可能会回应:在未来,开源软件能否成为所有权运作的模型呢? + +### 《并非所有童话故事都有幸福的结局:雪乐山公司的兴衰》 + +![Book Title Not All Fairy Tales Have Happy Endings][19] + +> **《[并非所有童话故事都有幸福的结局:雪乐山公司的兴衰][20]Not All Fairy Tales Have Happy Endings: The Rise and Fall of Sierra On-Line》** + +作者:Ken Williams + +*[由 Joshua Allen Holm 推荐][21]* + +在 1980 年代和 1990 年代,雪乐山公司Sierra On-Line是计算机软件行业的巨头。这家由 Ken 和 Roberta Williams 夫妻创立的公司,出身并不起眼,但却发布了许多标志性的电脑游戏。《国王密使King's Quest》、《宇宙传奇Space Quest》、《荣耀任务Quest for Glory》、《Leisure Suit Larry》 和 《狩魔猎人Gabriel Knight》 只是该公司几个最大的专属系列中的很小一部分。 + +《并非所有童话故事都有幸福的结局》这本书,涵盖了从雪乐山公司发布第一款游戏 《[神秘屋][22]Mystery House》,到该公司不幸地被 CUC 国际公司收购以及后续的所有内容。雪乐山品牌在被收购后仍存活了一段时间,但 Williams 创立的雪乐山已不复存在。Ken Williams 以一种只有他才能做到的方式,讲述了雪乐山公司的整个历史。雪乐山的历史叙述穿插了一些 Williams 提出的管理和计算机编程建议的章节。虽然 Ken Williams 在写这本书时,已经离开这个行业很多年了,但他的建议仍然非常重要。 + +虽然雪乐山公司已不复存在,但该公司对计算机游戏行业产生了持久的影响。对于任何对计算机软件历史感兴趣的人来说,《并非所有童话故事都有美好的结局》都是值得一读的。雪乐山公司在其鼎盛时期处于游戏开发的最前沿,从带领公司走过那个激动人心的岁月的 Ken Williams 身上,我们可以学到许多宝贵的经验。 + +### 《新机器的灵魂》 + +![Book title The Soul of a New Machine][23] + +> **《[新机器的灵魂][24]The Soul of a New Machine》** + +作者:Tracy Kidder + +*[由 Guarav Kamathe 推荐][25]* + +我是计算机历史的狂热读者。知道这些人们如此依赖(并且经常被认为是理所当然)的计算机是如何形成的,真是令人着迷!我是在 [Bryan Cantrill][27] 的博客文章中,第一次听说 《[新机器的灵魂][26]》这本书的。这是一本由 [Tracy Kidder][29] 编著的非虚构书籍,于 1981 年出版,作者 Tracy Kidder也因此获得了 [普利策奖][30]。故事发生在 1970 年代,想象一下你是负责设计 [下一代计算机][31] 工程团队中的一员。故事的背景是在通用数据公司Data General Corporation,该公司当时是一家小型计算机供应商,正在与美国数字设备公司Digital Equipment Corporation(DEC)的 32 位 VAX 计算机相竞争。该书概述了通用数据公司内部两个相互竞争的团队,都想在设计新机器上一展身手,结果导致了一场争斗。接下来,细致地描绘了随之展开的事件。这本书深入地讲述了相关工程师的思想、他们的工作环境、他们在此过程中面临的技术挑战、他们是如何克服这些困难的、以及压力如何影响到了他们的个人生活等等。任何想知道计算机是怎么制造出来的人都应该阅读这本书。 + +以上就是 2022 年的推荐阅读书目。它提供了很多非常棒的选择,我相信读者们能得到数小时发人深省的阅读时光。想获取更多书籍推荐,请查看我们历年的阅读书目。 + +* [2021 年 Opensource.com 推荐阅读书目][32] +* [2020 年 Opensource.com 推荐阅读书目][33] +* [2019 年 Opensource.com 推荐阅读书目][34] +* [2018 年 Open Organization 推荐阅读书目][35] +* [2016 年 Opensource.com 推荐阅读书目][36] +* [2015 年 Opensource.com 推荐阅读书目][37] +* [2014 年 Opensource.com 推荐阅读书目][38] +* [2013 年 Opensource.com 推荐阅读书目][39] +* [2012 年 Opensource.com 推荐阅读书目][40] +* [2011 年 Opensource.com 推荐阅读书目][41] +* [2010 年 Opensource.com 推荐阅读书目][42] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list + +作者:[Joshua Allen Holm][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/holmja +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/tea-cup-mug-flowers-book-window.jpg +[2]: https://unsplash.com/@sixteenmilesout?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/tea?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://opensource.com/sites/default/files/2022-06/97_Things_Every_Java_Programmer_Should_Know_1.jpg +[5]: https://www.oreilly.com/library/view/97-things-every/9781491952689/ +[6]: https://opensource.com/users/seth +[7]: https://opensource.com/sites/default/files/2022-06/A_City_is_Not_a_Computer_0.jpg +[8]: https://press.princeton.edu/books/paperback/9780691208053/a-city-is-not-a-computer +[9]: https://opensource.com/users/scottnesbitt +[10]: https://opensource.com/sites/default/files/2022-06/git_sync_murder_0.jpg +[11]: https://mwl.io/fiction/crime#gsm +[12]: https://opensource.com/users/holmja +[13]: https://opensource.com/sites/default/files/2022-06/Kick_Like_a_Girl.jpg +[14]: https://innerwings.org/books/kick-like-a-girl +[15]: https://opensource.com/users/holmja +[16]: https://opensource.com/sites/default/files/2022-06/Mine.jpg +[17]: https://www.minethebook.com/ +[18]: https://opensource.com/users/bbehrens +[19]: https://opensource.com/sites/default/files/2022-06/Not_All_Fairy_Tales.jpg +[20]: https://kensbook.com/ +[21]: https://opensource.com/users/holmja +[22]: https://en.wikipedia.org/wiki/Mystery_House +[23]: https://opensource.com/sites/default/files/2022-06/The_Soul_of_a_New_Machine.jpg +[24]: https://www.hachettebookgroup.com/titles/tracy-kidder/the-soul-of-a-new-machine/9780316204552/ +[25]: https://opensource.com/users/gkamathe +[26]: https://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine +[27]: https://en.wikipedia.org/wiki/Bryan_Cantrill +[28]: http://dtrace.org/blogs/bmc/2019/02/10/reflecting-on-the-soul-of-a-new-machine/ +[29]: https://en.wikipedia.org/wiki/Tracy_Kidder +[30]: https://www.pulitzer.org/winners/tracy-kidder +[31]: https://en.wikipedia.org/wiki/Data_General_Eclipse_MV/8000 +[32]: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list +[33]: https://opensource.com/article/20/6/summer-reading-list +[34]: https://opensource.com/article/19/6/summer-reading-list +[35]: https://opensource.com/open-organization/18/6/summer-reading-2018 +[36]: https://opensource.com/life/16/6/2016-summer-reading-list +[37]: https://opensource.com/life/15/6/2015-summer-reading-list +[38]: https://opensource.com/life/14/6/annual-reading-list-2014 +[39]: https://opensource.com/life/13/6/summer-reading-list-2013 +[40]: https://opensource.com/life/12/7/your-2012-open-source-summer-reading +[41]: https://opensource.com/life/11/7/summer-reading-list +[42]: https://opensource.com/life/10/8/open-books-opensourcecom-summer-reading-list diff --git a/translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md b/translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md deleted file mode 100644 index 0c184ad03e..0000000000 --- a/translated/talk/20220621 7 summer book recommendations from open source enthusiasts.md +++ /dev/null @@ -1,173 +0,0 @@ -[#]: subject: "7 summer book recommendations from open source enthusiasts" -[#]: via: "https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list" -[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -来自开源爱好者的 7 本读物推荐 -====== -Opensource.com 社区的成员推荐这些书籍,涵盖了从有趣的悬疑小说到发人深省的非小说作品的各种类型,你一定能从中找到一本你想看的书! - -![Ceramic mug of tea or coffee with flowers and a book in front of a window][1] - -很高兴能为大家介绍 Opensource.com 的 2022 年暑期阅读清单。今年的榜单包含来自 Opensource.com 社区成员的 7 本精彩的读物推荐。你可以发现各种各样的书籍,涵盖从有趣舒适的谜团到探索发人深省主题的非小说类作品。我希望你能在这个榜单中找到感兴趣的书本。 - -请享受吧! - -![Book title 97 Things Every Java Programmer Should Know][4] - -**[《每个 Java 程序员都应该知道的 97 件事》:专家的集体智慧,作者:Kevlin Henney 和 Trisha Gee][5]** -(97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts, edited by Kevlin Henney and Trisha Gee) - -*[由 Seth Kenlon 推荐][6]* - -这本书是由 73 位在软件行业工作的不同作者共同撰写。它的优秀之处在于它不仅仅适用于 Java 编程。当然,有些章节会涉及 Java,但是也还有一些其他话题,例如了解你的容器环境、如何更快更好地交付软件、以及无论使用哪种语言都不要隐藏适用于开发的工具。 - -更好的是,有些章节同样适用于生活中的问题。将问题和任务分成小的部分是解决任何问题的好建议;建立多元化的团队对所有合作者都很重要;由从散乱的一块块拼图到拼好的完成品中,得到拼图玩家的思想如何应用于不同的工作角色。 - -每章只有几页,总共有 97 个章节,你可以轻松跳过不适用于你自己的章节。无论你是一直在写 Java 代码、或者只是学过一点 Java,亦或是尚未开始学习 Java,对于对代码和软件开发过程感兴趣的极客来说,这都会是一本好书。 - -![Book title A City is Not a Computer][7] - -**[《城市不是计算机:其他的城市智能》,作者:Shannon Mattern][8]** -(A City is Not a Computer: Other Urban Intelligences, by Shannon Mattern) - -*[由 Scott Nesbitt 推荐][9]* - -如今,让一切变得智能已经成为一种 *时尚*:我们的手机、家用电器、手表、汽车,甚至是城市都变得智能化了。 - -对于城市的智能化,这意味着传感器变得无处不在,在我们开展业务时收集数据,并根据这些数据向我们推送信息(无论数据有用与否)。 - -这就引出了一个问题,将所有高科技技术嵌入到城市中是否会使得城市智能化呢?在《城市不是计算机》这本书中,作者 Shannon Mattern 认为并不是这样的。 - -城市智能化的目标之一是为市民提供服务和更好的城市参与感。Mattern 指出,但是实际上,智慧城市希望将技术专家的管理想法与公共服务相融合,从而将公民重新设置为‘消费者’和‘用户’,然而,这并不是在鼓励公民积极参与城市的生活和治理。 - -第二个问题是关于智慧城市收集的数据。我们不知道收集了什么数据,以及收集了多少数据。我们也不知道这些数据使用在什么地方,以及是谁使用的。收集的数据太多了,以至于处理数据的市政工作人员会不堪重负。他们无法处理所有数据,因此他们专注于短期容易实现的任务,而忽略了更深层次和更紧迫的问题。这绝对达不到在推广智慧城市时所承诺的目标:智慧城市将成为解决城市困境的良药。 - -《城市不是计算机》是一篇短小精悍、经过深入研究的、反对拥抱智慧城市的议论文。这本书让我们思考智慧城市的真正目的:要让百姓真正受益于城市智能化,并引发我们的思考:发展智慧城市是否必要呢。 - -![Book title git sync murder][10] - -**[《git sync 谋杀》,作者:Michael Warren Lucas][11]** -(git sync murder, by Michael Warren Lucas) - -*[由 Joshua Allen Holm 推荐][12]* - -Dale Whitehead 宁愿呆在家里,通过他的电脑终端与世界连接,尤其是在他参加的最后一次会议上发生的事情之后。在那次会议上,Dale 扮演了一个业余侦探的角色,要解决一桩谋杀案。你可以在本系列的第一本书《git commit 谋杀(git commit murder)》中阅读这个故事。 - -现在,Dale 回到家,并参加了另一个会议,他再次发现自己成为了侦探。在《git sync 谋杀(git sync murder)》中,Dale 参加了一个当地科技会议,会议上发现一具尸体。这是谋杀,还是只是一场意外?现在,Dale 是这些问题的“专家”,他发现自己被卷入了这件事,并要亲自去弄清楚到底发生了什么。再多说的话就剧透了,所以我能说《git sync 谋杀》这本书十分引人入胜,而且读起来很有趣。不必先阅读《git commit 谋杀(git commit murder)》,才能阅读《git sync 谋杀》,但我强烈推荐一起阅读该系列中的这两本书。 - -作者 Michael Warren Lucas 的“git 谋杀”系列非常适合喜欢悬疑小说的科技迷。Lucas 写过很多复杂的技术题材的书,这本书也延续了他的技术题材,《git sync 谋杀》这本书中的人物在会议活动上谈论技术话题。如果你因为新冠疫情,最近没有参加过会议,错过了参会体验的话,Lucas 将带你参加一个技术会议,其中还有一个谋杀之谜以待解决。Dale Whitehead 是一个有趣的业余侦探,我相信大多数 Opensource.com 的读者会喜欢和 Dale 一起参加技术会议,并充当侦探破解谜案的。 - -![Book title Kick Like a Girl][13] - -**[《像女孩一样踢球》, 作者:Melissa Di Donato Roos][14]**(Kick Like a Girl) - -*[由 Joshua Allen Holm 推荐][15]* - -没有人喜欢被孤立,当女孩 Francesca 想在公园里踢足球时,她也是这样。男孩们不会和她一起玩,因为她是女孩,所以她不高兴地回家了。她的母亲通过讲述有重要影响力的著名女性的故事来安慰她。《像女孩一样踢球》中详述的历史人物包括历史中来自许多不同领域的女性。读者将了解 Frida Kahlo、Madeleine Albright、Ada Lovelace、Rosa Parks、Amelia Earhart、Marie Curie、Valentina Tereshkova、Florence Nightingale 和 Malala Yousafzai 的故事。听完这些鼓舞人心的人物故事后,Francesca 回到公园,向男孩们发起了一场足球挑战。 - -《像女孩一样踢球》这本书的特色是作者 Melissa Di Donato Roos(SUSE(译注:SUSE是一家总部位于德国的软件公司,创立于1992年,以提供企业级Linux为主要业务)的 CEO)引人入胜的写作和 Ange Allen 的出色插图。这本书非常适合年轻读者,他们会喜欢押韵的文字和书中的彩色插图。Melissa Di Donato Roos 还写了另外两本童书,《美人鱼如何便便(How Do Mermaids Poo?)》和《魔盒(The Magic Box)》,这两本书也都值得一读。 - -![Book title Mine!][16] - -**[《这是我的!:所有权的潜规则如何控制着我们的生活》, 作者:Michael Heller 和 James Salzman][17]** -(Mine!: How the Hidden Rules of Ownership Control Our Lives) - -*[由 Bryan Behrenshausen 推荐][18]* - -作者 Michael Heller 和 James Salzman 在文章《这是我的!》中写道:“你对所有权的很多了解都是错误的”。这是一种被吸引到开源领域的人不得不接受所有权规则的对抗性邀请。这本书是为开源爱好者而写的,他们对代码、思想、各种知识产权的所有权的看法往往与主流观点和普遍接受的认知不同。在本书中,Heller 和 Salzman 列出了“所有权的隐藏规则”,这些规则管理着谁能控制对什么事物的访问。这些所有权规则是微妙的、强大的、有着深刻的历史惯例。这些所有权规则已经变得如此普遍,以至于看起来无可争议,这是因为“先到先得”或“种瓜得瓜,种豆得豆”的规则已经成为陈词滥调。然而,我们看到它们无处不在:在飞机上,为宝贵的腿部空间而战;在街道上,邻居们为铲好雪的停车位发生争执;在法庭上,陪审团决定谁能控制你的遗产和你的 DNA。在当下的数字时代,所有权的替代理论能否为重新思考基本权利创造空间?作者认为这是可以的。如果这是正确的,我们可能会回应:在未来,开源软件能否成为所有权运作的模型呢? - -![Book Title Not All Fairy Tales Have Happy Endings][19] - -**[并非所有童话故事都有幸福的结局:雪乐山公司(Sierra On-Line)的兴衰, 作者:Ken Williams][20]** -(Not All Fairy Tales Have Happy Endings: The Rise and Fall of Sierra On-Line) - -*[由 Joshua Allen Holm 推荐][21]* - -在 1980 年代和 1990 年代,雪乐山公司(Sierra On-Line)是计算机软件行业的巨头。这家由 Ken 和 Roberta Williams 创立的公司,出身并不起眼,但却发布了许多标志性的电脑游戏。King's Quest、Space Quest、Quest for Glory、Leisure Suit Larry 和 Gabriel Knight 只是该公司版权中的很小一部分。 - -《并非所有童话故事都有幸福的结局》这本书,涵盖了从雪乐山公司发布第一款游戏 [Mystery House][22],到该公司不幸地被 CUC International 收购以及后续的所有内容。Sierra 品牌在被收购后仍会存活了一段时间,但 Williams 创立的 Sierra 已不复存在。Ken Williams 以只有他能做到的方式,讲述了雪乐山公司的整个历史。Sierra 的历史叙述穿插在 Williams 提出的管理和计算机编程建议的章节之中。虽然 Ken Williams 在写这本书时,已经离开这个行业很多年了,但他的建议仍然非常重要。 - -虽然雪乐山公司已不复存在,但该公司对计算机游戏行业产生了持久的影响。对于任何对计算机软件历史感兴趣的人来说,《并非所有童话故事都有美好的结局》都是值得一读的。雪乐山公司在其鼎盛时期处于游戏开发的最前沿,从带领公司走过那个激动人心的岁月的 Ken Williams 身上,我们可以学到许多宝贵的经验。 - -![Book title The Soul of a New Machine][23] - -**[《新机器的灵魂》, 作者:Tracy Kidder][24]**(The Soul of a New Machine) - -*[由 Guarav Kamathe 推荐][25]* - -我是计算机历史的狂热读者。知道这些人们如此依赖(并且经常被认为是理所当然)的计算机是如何形成的,真是令人着迷!我是在 [Bryan Cantrill][27] 的博客文章中,第一次听说 [《新机器的灵魂》][26] (The Soul of a New Machine)这本书的。这是一本由 [Tracy Kidder][29] 编著的非小说类书籍,于 1981 年出版,作者Tracy Kidder也因此获得了 [普利策奖][30]。故事发生在 1970 年代,想象一下你是负责设计 [下一代计算机][31] 工程团队中的一员。故事的背景是在通用数据公司(Data General Corporation),该公司当时是一家小型计算机供应商,正在与美国数字设备公司(Digital Equipment Corporation,简称DEC)的 32 位 VAX 计算机相竞争。这本书概述了通用数据公司内部的两个都想尝试设计新机器的竞争团队,是如何发生不和的。接下来,细致地描绘了随之展开的事件。这本书深入地讲述了相关工程师的思想、他们的工作环境、他们在此过程中面临的技术挑战、他们是如何克服这些困难的、以及压力如何影响到了他们的个人生活等等。任何想知道计算机是怎么制造出来的人都应该阅读这本书。 - -以上就是2022年的推荐阅读书目。它提供了很多非常棒的选择,我相信 Opensource.com 的读者能得到数小时发人深省的阅读时光。想获取更多书籍推荐,请查看我们历年的阅读书目。 - -* [2021 年 Opensource.com 推荐阅读书目][32] -* [2020 年 Opensource.com 推荐阅读书目][33] -* [2019 年 Opensource.com 推荐阅读书目][34] -* [2018 年 Open Organization 推荐阅读书目][35] -* [2016 年 Opensource.com 推荐阅读书目][36] -* [2015 年 Opensource.com 推荐阅读书目][37] -* [2014 年 Opensource.com 推荐阅读书目][38] -* [2013 年 Opensource.com 推荐阅读书目][39] -* [2012 年 Opensource.com 推荐阅读书目][40] -* [2011 年 Opensource.com 推荐阅读书目][41] -* [2010 年 Opensource.com 推荐阅读书目][42] - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/2022-opensourcecom-summer-reading-list - -作者:[Joshua Allen Holm][a] -选题:[lkxed][b] -译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/holmja -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/tea-cup-mug-flowers-book-window.jpg -[2]: https://unsplash.com/@sixteenmilesout?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/tea?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://opensource.com/sites/default/files/2022-06/97_Things_Every_Java_Programmer_Should_Know_1.jpg -[5]: https://www.oreilly.com/library/view/97-things-every/9781491952689/ -[6]: https://opensource.com/users/seth -[7]: https://opensource.com/sites/default/files/2022-06/A_City_is_Not_a_Computer_0.jpg -[8]: https://press.princeton.edu/books/paperback/9780691208053/a-city-is-not-a-computer -[9]: https://opensource.com/users/scottnesbitt -[10]: https://opensource.com/sites/default/files/2022-06/git_sync_murder_0.jpg -[11]: https://mwl.io/fiction/crime#gsm -[12]: https://opensource.com/users/holmja -[13]: https://opensource.com/sites/default/files/2022-06/Kick_Like_a_Girl.jpg -[14]: https://innerwings.org/books/kick-like-a-girl -[15]: https://opensource.com/users/holmja -[16]: https://opensource.com/sites/default/files/2022-06/Mine.jpg -[17]: https://www.minethebook.com/ -[18]: https://opensource.com/users/bbehrens -[19]: https://opensource.com/sites/default/files/2022-06/Not_All_Fairy_Tales.jpg -[20]: https://kensbook.com/ -[21]: https://opensource.com/users/holmja -[22]: https://en.wikipedia.org/wiki/Mystery_House -[23]: https://opensource.com/sites/default/files/2022-06/The_Soul_of_a_New_Machine.jpg -[24]: https://www.hachettebookgroup.com/titles/tracy-kidder/the-soul-of-a-new-machine/9780316204552/ -[25]: https://opensource.com/users/gkamathe -[26]: https://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine -[27]: https://en.wikipedia.org/wiki/Bryan_Cantrill -[28]: http://dtrace.org/blogs/bmc/2019/02/10/reflecting-on-the-soul-of-a-new-machine/ -[29]: https://en.wikipedia.org/wiki/Tracy_Kidder -[30]: https://www.pulitzer.org/winners/tracy-kidder -[31]: https://en.wikipedia.org/wiki/Data_General_Eclipse_MV/8000 -[32]: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list -[33]: https://opensource.com/article/20/6/summer-reading-list -[34]: https://opensource.com/article/19/6/summer-reading-list -[35]: https://opensource.com/open-organization/18/6/summer-reading-2018 -[36]: https://opensource.com/life/16/6/2016-summer-reading-list -[37]: https://opensource.com/life/15/6/2015-summer-reading-list -[38]: https://opensource.com/life/14/6/annual-reading-list-2014 -[39]: https://opensource.com/life/13/6/summer-reading-list-2013 -[40]: https://opensource.com/life/12/7/your-2012-open-source-summer-reading -[41]: https://opensource.com/life/11/7/summer-reading-list -[42]: https://opensource.com/life/10/8/open-books-opensourcecom-summer-reading-list From 94dc39ca57540b9325c5ecb6e63defae27454bd4 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Thu, 20 Oct 2022 13:51:35 +0800 Subject: [PATCH 1610/3123] translating by chai001125 --- ...0210629 Try Linux on any operating system with VirtualBox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md index ccf231735e..9be0476542 100644 --- a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md +++ b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/try-linux-virtualbox) [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chai001125) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 43cd43c6e750aa1d0174bfa19884edeb51dcfb72 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 20 Oct 2022 16:16:55 +0800 Subject: [PATCH 1611/3123] RP @MjSeven https://linux.cn/article-15158-1.html --- ...ress In Linux And Unix From Commandline.md | 104 +++++++++--------- 1 file changed, 50 insertions(+), 54 deletions(-) rename {translated/tech => published}/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md (66%) diff --git a/translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md b/published/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md similarity index 66% rename from translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md rename to published/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md index 4947ec0c3a..006378d554 100644 --- a/translated/tech/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md +++ b/published/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md @@ -3,28 +3,26 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15158-1.html" -在 Linux 和 Unix 中如何从命令行查找默认网关的 IP 地址 +在 Linux 中如何从命令行查找默认网关的 IP 地址 ====== -Linux 下查找网关或路由器 IP 地址的 5 种方法。 -**网关**是一个节点或一个路由器,当连接到同一路由器时,它允许两个或多个 IP 地址不同的主机相互通信。如果没有网关,它们将无法相互通信。换句话说,网关充当接入点,将网络数据从本地网络传输到远程网络。在本指南中,我们将看到在 Linux 和 Unix 中从命令行找到默认网关的所有可能方法。 +![](https://img.linux.net.cn/data/attachment/album/202210/20/161605f5ispl5jslbpllss.jpg) -#### 内容 +> Linux 下查找网关或路由器 IP 地址的 5 种方法。 -1. 在 Linux 中查找默认网关 1.1 使用 ip 命令查找默认网关 1.2 使用 route 命令显示默认网关 IP 地址 1.3 使用 netstat 命令查看网关 IP 地址 1.4 使用 routel 命令打印默认网关或路由器 IP 地址 1.5 从以太网配置文件中查找网关 -2. 总结 +**网关** 是一个节点或一个路由器,当连接到同一路由器时,它允许两个或多个 IP 地址不同的主机相互通信。如果没有网关,它们将无法相互通信。换句话说,网关充当接入点,将网络数据从本地网络传输到远程网络。在本指南中,我们将看到在 Linux 和 Unix 中从命令行找到默认网关的所有可能方法。 ### 在 Linux 中查找默认网关 -Linux 中有各种各样的命令行工具可用于查看网关 IP 地址。最常用的工具是:**ip**、**ss** 和 **netcat**。我们将通过示例了解如何使用每种工具查看默认网关。 +Linux 中有各种各样的命令行工具可用于查看网关 IP 地址。最常用的工具是:`ip`、`ss` 和 `netcat`。我们将通过示例了解如何使用每种工具查看默认网关。 -#### 1. 使用 ip 命令查找默认网关 +#### 1、使用 ip 命令查找默认网关 -**ip** 命令用于显示和操作 Linux 中的路由、网络设备、接口和隧道。 +`ip` 命令用于显示和操作 Linux 中的路由、网络设备、接口和隧道。 要查找默认网关或路由器 IP 地址,只需运行: @@ -44,7 +42,7 @@ $ ip r $ ip route show ``` -**示例输出:** +示例输出: ``` default via 192.168.1.101 dev eth0 proto static metric 100 @@ -52,34 +50,30 @@ default via 192.168.1.101 dev eth0 proto static metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20 metric 100 ``` -你从输出中看到了 **"default via 192.168.1.101"** 这一行吗?它就是默认网关。我的默认网关是 **192.168.1.101**。 +你从输出中看到了 `default via 192.168.1.101` 这一行吗?它就是默认网关。我的默认网关是 `192.168.1.101`。 -你可以使用 **-4** 参数只**显示 IPv4 网关**: +你可以使用 `-4` 参数只`显示 IPv4 网关`: ``` $ ip -4 route ``` -或者,使用 **`-6`** 参数只**显示 IPv6 网关**: +或者,使用 `-6` 参数只**显示 IPv6 网关**: ``` $ ip -6 route ``` -如你所见,IP 地址和子网详细信息也一并显示了。如果你想只显示默认网关,排除所有其他细节,可以使用 `ip route` 搭配 **`awk`** 命令,如下所示。 - -使用 `ip route` 和 `grep` 查找默认网关 IP 地址,执行命令: - -```(to 校正,此条命令原文无,怀疑是作者忘记加了) -$ ip route | grep default -``` +如你所见,IP 地址和子网详细信息也一并显示了。如果你想只显示默认网关,排除所有其他细节,可以使用 `ip route` 搭配 `awk` 命令,如下所示。 使用 `ip route` 和 `awk` 命令打印网关地址,执行命令: -```(to 校正,译注:wsl1 上无输出结果,正常 Linux 发行版无问题) +``` $ ip route | awk '/^default/{print $3}' ``` +(LCTT 译注:wsl1 上无输出结果,正常 Linux 发行版无问题) + 或者: ``` @@ -88,7 +82,7 @@ $ ip route show default | awk '{print $3}' 这将只列出网关 IP: -**示例输出:** +示例输出: ``` 192.168.1.101 @@ -96,18 +90,20 @@ $ ip route show default | awk '{print $3}' ![使用 ip 命令列出默认网关][1] -你也可以使用 **[grep][2]** 命令配合 `ip route` 对默认网关进行过滤。 +你也可以使用 [grep][2] 命令配合 `ip route` 对默认网关进行过滤。 + +使用 `ip route` 和 `grep` 查找默认网关 IP 地址,执行命令: ``` $ ip route | grep default default via 192.168.1.101 dev eth0 proto static metric 100 ``` -在最新的 Linux 发行版中,`ip route` 是查找默认网关 ip 地址的推荐命令。然而,你们中的一些人可能仍然在使用传统的工具,如 `route` 和 **`netstat`**。旧习难改,对吧?下面的部分将介绍如何在 Linux 中使用 `route` 和 `netstat` 命令确定网关。 +在最新的 Linux 发行版中,`ip route` 是查找默认网关 IP 地址的推荐命令。然而,你们中的一些人可能仍然在使用传统的工具,如 `route` 和 `netstat`。旧习难改,对吧?下面的部分将介绍如何在 Linux 中使用 `route` 和 `netstat` 命令确定网关。 -#### 2. 使用 route 命令显示默认网关 IP 地址 +#### 2、使用 route 命令显示默认网关 IP 地址 -**route** 命令用于在较老的 Linux 发行版中显示和操作路由表,如 RHEL 6、CentOS 6 等。 +`route` 命令用于在较老的 Linux 发行版中显示和操作路由表,如 RHEL 6、CentOS 6 等。 如果你正在使用较老的 Linux 发行版,你可以使用 `route` 命令来显示默认网关。 @@ -119,7 +115,7 @@ default via 192.168.1.101 dev eth0 proto static metric 100 $ dnf provides route ``` -**示例输出:** +示例输出: ``` net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools @@ -133,7 +129,7 @@ Matched from: Filename : /usr/sbin/route ``` -如你所见,net-tools 包提供了 `route` 命令。所以,让我们使用以下命令来安装它: +如你所见,`net-tools` 包提供了 `route` 命令。所以,让我们使用以下命令来安装它: ``` $ sudo dnf install net-tools @@ -145,7 +141,7 @@ $ sudo dnf install net-tools $ route -n ``` -**示例输出:** +示例输出: ``` Kernel IP routing table @@ -157,13 +153,13 @@ Destination Gateway Genmask Flags Metric Ref Use Iface ![使用 route 命令显示默认网关 IP 地址][3] -如你所见,网关 IP 地址是 192.168.1.101。你还将在 Flags 下面看到两个字母 **UG**。字母 **U** 代表接口是 **UP**,**G** 表示网关。 +如你所见,网关 IP 地址是 192.168.1.101。你还将在 Flags 下面看到两个字母 `UG`。字母 `U` 代表接口是 “Up”(在运行),`G` 表示 “Gateway”(网关)。 -#### 3. 使用 netstat 命令查看网关 IP 地址 +#### 3、使用 netstat 命令查看网关 IP 地址 -**Netstat** 会输出 Linux 网络子系统的信息。使用 netstat 工具,我们可以在 Linux 和 Unix 系统中打印网络连接、路由表、接口统计信息、伪装连接和组播成员关系。 +`netstat` 会输出 Linux 网络子系统的信息。使用 `netstat` 工具,我们可以在 Linux 和 Unix 系统中打印网络连接、路由表、接口统计信息、伪装连接和组播成员关系。 -Netstat 是 net-tools 包的一部分,所以确保你已经在 Linux 系统中安装了它。使用以下命令在基于 RHEL 的系统中安装它: +`netstat` 是 `net-tools` 包的一部分,所以确保你已经在 Linux 系统中安装了它。使用以下命令在基于 RHEL 的系统中安装它: ``` $ sudo dnf install net-tools @@ -175,7 +171,7 @@ $ sudo dnf install net-tools $ netstat -rn ``` -**示例输出:** +示例输出: ``` Kernel IP routing table @@ -187,26 +183,26 @@ Destination Gateway Genmask Flags MSS Window irtt Iface ![使用 netstat 命令查看网关 IP 地址][4] -`netstat` 命令与 `route` 命令的输出信息相同。如上输出可知,网关的 IP 地址为 192.168.1.191,UG 表示网关连接的网卡(NIC)是有效的,G 表示网关。 +`netstat` 命令与 `route` 命令的输出信息相同。如上输出可知,网关的 IP 地址为 `192.168.1.191`,`UG` 表示网关连接的网卡是有效的,`G` 表示网关。 -请注意 `netstat` 也已弃用,建议使用 **ss** 命令代替 netstat。 +请注意 `netstat` 也已弃用,建议使用 `ss` 命令代替 `netstat`。 -#### 4. 使用 routel 命令打印默认网关或路由器 IP 地址 +#### 4、使用 routel 命令打印默认网关或路由器 IP 地址 -**routel** 是一个脚本,它以一种漂亮格式的输出路由。routel 脚本的输出让一些人认为比 `ip route` 列表更直观。 +`routel` 是一个脚本,它以一种漂亮格式的输出路由。`routel` 脚本的输出让一些人认为比 `ip route` 列表更直观。 -routel 脚本也是 net-tools 包的一部分。 +`routel` 脚本也是 `net-tools` 包的一部分。 -打印默认网关或路由器 IP 地址,运行 routel 脚本,不带任何参数,如下所示: +打印默认网关或路由器 IP 地址,不带任何参数运行 `routel` 脚本,如下所示: ``` $ routel ``` -**示例输出:** +示例输出: ``` -target gateway source proto scope dev tbl + target gateway source proto scope dev tbl default 192.168.1.101 static eth0 172.17.0.0/ 16 172.17.0.1 kernel linkdocker0 192.168.1.0/ 24 192.168.1.20 kernel link eth0 @@ -241,11 +237,11 @@ $ routel | grep default default 192.168.1.101 static eth0 ``` -#### 5. 从以太网配置文件中查找网关 +#### 5、从以太网配置文件中查找网关 -如果你在 **[Linux 或 Unix 中配置了静态 IP 地址][6],你可以通过查看网络配置文件查看默认网关或路由器 IP 地址。 +如果你在 [Linux 或 Unix 中配置了静态 IP 地址][6],你可以通过查看网络配置文件查看默认网关或路由器 IP 地址。 -在基于 RPM 的系统上,如 Fedora、RHEL、CentOS、AlmaLinux 和 Rocky Linux 等,网络接口卡(简称 **NIC**)配置存储在 **/etc/sysconfig/network-scripts/** 目录下。 +在基于 RPM 的系统上,如 Fedora、RHEL、CentOS、AlmaLinux 和 Rocky Linux 等,网络接口卡配置存储在 `/etc/sysconfig/network-scripts/` 目录下。 查找网卡的名称: @@ -253,7 +249,7 @@ $ routel | grep default # ip link show ``` -**示例输出:** +示例输出: ``` 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 @@ -262,13 +258,13 @@ $ routel | grep default link/ether d2:85:0c:c7:c1:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 0 ``` -网卡名为 **eth0**。所以让我们打开这个 NIC 文件的网卡配置: +网卡名为 `eth0`。所以让我们打开这个网卡文件的网卡配置: ``` # cat /etc/sysconfig/network-scripts/ifcfg-eth0 ``` -**示例输出:** +示例输出: ``` DEVICE=eth0 @@ -283,13 +279,13 @@ DNS1=8.8.8.8 如你所见,网关 IP 为 `192.168.1.101`。 -在 Debian、Ubuntu 及其衍生版中,所有的网络配置文件都存储在 **/etc/network** 目录下。 +在 Debian、Ubuntu 及其衍生版中,所有的网络配置文件都存储在 `/etc/network` 目录下。 ``` $ cat /etc/network/interfaces ``` -**示例输出:** +示例输出: ``` auto ens18 @@ -313,7 +309,7 @@ via: https://ostechnix.com/find-default-gateway-linux/ 作者:[sk][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 088f9f6d79261650397aeca545d0819ff9225a76 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Thu, 20 Oct 2022 21:47:24 +0800 Subject: [PATCH 1612/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Java serverless functions in Kubernetes.md | 267 ------------------ ...Java serverless functions in Kubernetes.md | 267 ++++++++++++++++++ 2 files changed, 267 insertions(+), 267 deletions(-) delete mode 100644 sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md create mode 100644 translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md diff --git a/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md b/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md deleted file mode 100644 index 432ef50ae2..0000000000 --- a/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md +++ /dev/null @@ -1,267 +0,0 @@ -[#]: subject: (Optimize Java serverless functions in Kubernetes) -[#]: via: (https://opensource.com/article/21/6/java-serverless-functions-kubernetes) -[#]: author: (Daniel Oh https://opensource.com/users/daniel-oh) -[#]: collector: (lujun9972) -[#]: translator: (cool-summer-021) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Optimize Java serverless functions in Kubernetes -====== -Achieve faster startup and a smaller memory footprint to run serverless -functions on Kubernetes. -![Ship captain sailing the Kubernetes seas][1] - -A faster startup and smaller memory footprint always matter in [Kubernetes][2] due to the expense of running thousands of application pods and the cost savings of doing it with fewer worker nodes and other resources. Memory is more important than throughput on containerized microservices on Kubernetes because: - - * It's more expensive due to permanence (unlike CPU cycles) - * Microservices multiply the overhead cost - * One monolith application becomes _N_ microservices (e.g., 20 microservices ≈ 20GB) - - - -This significantly impacts serverless function development and the Java deployment model. This is because many enterprise developers chose alternatives such as Go, Python, and Nodejs to overcome the performance bottleneck—until now, thanks to [Quarkus][3], a new Kubernetes-native Java stack. This article explains how to optimize Java performance to run serverless functions on Kubernetes using Quarkus. - -### Container-first design - -Traditional frameworks in the Java ecosystem come at a cost in terms of the memory and startup time required to initialize those frameworks, including configuration processing, classpath scanning, class loading, annotation processing, and building a metamodel of the world, which the framework requires to operate. This is multiplied over and over for different frameworks. - -Quarkus helps fix these Java performance issues by "shifting left" almost all of the overhead to the build phase. By doing code and framework analysis, bytecode transformation, and dynamic metamodel generation only once, at build time, you end up with a highly optimized runtime executable that starts up super fast and doesn't require all the memory of a traditional startup because the work is done once, in the build phase. - -![Quarkus Build phase][4] - -(Daniel Oh, [CC BY-SA 4.0][5]) - -More importantly, Quarkus allows you to build a native executable file that provides [performance advantages][6], including amazingly fast boot time and incredibly small resident set size (RSS) memory, for instant scale-up and high-density memory utilization compared to the traditional cloud-native Java stack. - -![Quarkus RSS and Boot Time Metrics][7] - -(Daniel Oh, [CC BY-SA 4.0][5]) - -Here is a quick example of how you can build the native executable with a [Java serverless][8] function project using Quarkus. - -### 1\. Create the Quarkus serverless Maven project - -This command generates a Quarkus project (e.g., `quarkus-serverless-native`) to create a simple function: - - -``` -$ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \ -       -DprojectGroupId=org.acme \ -       -DprojectArtifactId=quarkus-serverless-native \ -       -DclassName="org.acme.getting.started.GreetingResource" -``` - -### 2\. Build a native executable - -You need a GraalVM to build a native executable for the Java application. You can choose any GraalVM distribution, such as [Oracle GraalVM Community Edition (CE)][9] and [Mandrel][10] (the downstream distribution of Oracle GraalVM CE). Mandrel is designed to support building Quarkus-native executables on OpenJDK 11. - -Open `pom.xml`, and you will find this `native` profile. You'll use it to build a native executable: - - -``` -<profiles> -    <profile> -        <id>native</id> -        <properties> -            <quarkus.package.type>native</quarkus.package.type> -        </properties> -    </profile> -</profiles> -``` - -> **Note:** You can install the GraalVM or Mandrel distribution locally. You can also download the Mandrel container image to build it (as I did), so you need to run a container engine (e.g., Docker) locally. - -Assuming you have started your container runtime already, run one of the following Maven commands. - -For [Docker][11]: - - -``` -$ ./mvnw package -Pnative \ --Dquarkus.native.container-build=true \ --Dquarkus.native.container-runtime=docker -``` - -For [Podman][12]: - - -``` -$ ./mvnw package -Pnative \ --Dquarkus.native.container-build=true \ --Dquarkus.native.container-runtime=podman -``` - -The output should end with `BUILD SUCCESS`. - -![Native Build Logs][13] - -(Daniel Oh, [CC BY-SA 4.0][5]) - -Run the native executable directly without Java Virtual Machine (JVM): - - -``` -`$ target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner` -``` - -The output will look like: - - -``` -__  ____  __  _____   ___  __ ____  ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   -\--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/   -INFO  [io.quarkus] (main) quarkus-serverless-native 1.0.0-SNAPSHOT native -(powered by Quarkus xx.xx.xx.) Started in 0.019s. Listening on: -INFO [io.quarkus] (main) Profile prod activated. -INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy] -``` - -Supersonic! That's _19_ _milliseconds_ to startup. The time might be different in your environment. - -It also has extremely low memory usage, as the Linux `ps` utility reports. While the app is running, run this command in another terminal: - - -``` -`$ ps -o pid,rss,command -p $(pgrep -f runner)` -``` - -You should see something like: - - -``` -  PID    RSS COMMAND -10246  11360 target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner -``` - -This process is using around _11MB_ of memory (RSS). Pretty compact! - -> **Note:** The RSS and memory usage of any app, including Quarkus, will vary depending on your specific environment and will rise as application experiences load. - -You can also access the function with a REST API. Then the output should be `Hello RESTEasy`: - - -``` -$ curl localhost:8080/hello -Hello RESTEasy -``` - -### 3\. Deploy the functions to Knative service - -If you haven't already, [create a namespace][14] (e.g., `quarkus-serverless-native`) on [OKD][15] (OpenShift Kubernetes Distribution) to deploy this native executable as a serverless function. Then add a `quarkus-openshift` extension for Knative service deployment: - - -``` -`$ ./mvnw -q quarkus:add-extension -Dextensions="openshift"` -``` - -Append the following variables in `src/main/resources/application.properties` to configure Knative and Kubernetes resources: - - -``` -quarkus.container-image.group=quarkus-serverless-native -quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 -quarkus.native.container-build=true -quarkus.kubernetes-client.trust-certs=true -quarkus.kubernetes.deployment-target=knative -quarkus.kubernetes.deploy=true -quarkus.openshift.build-strategy=docker -``` - -Build the native executable, then deploy it to the OKD cluster directly: - - -``` -`$ ./mvnw clean package -Pnative` -``` - -> **Note:** Make sure to log in to the right project (e.g., `quarkus-serverless-native`) using the `oc login` command ahead of time. - -The output should end with `BUILD SUCCESS`. It will take a few minutes to complete a native binary build and deploy a new Knative service. After successfully creating the service, you should see a Knative service (KSVC) and revision (REV) using either the `kubectl` or `oc` command tool: - - -``` -$ kubectl get ksvc -NAME                        URL   [...] -quarkus-serverless-native    True - -$ kubectl get rev -NAME                              CONFIG NAME                 K8S SERVICE NAME                  GENERATION   READY   REASON -quarkus-serverless-native-00001   quarkus-serverless-native   quarkus-serverless-native-00001   1            True -``` - -### 4\. Access the native executable function - -Retrieve the serverless function's endpoint by running this `kubectl` command: - - -``` -`$ kubectl get rt/quarkus-serverless-native` -``` - -The output should look like: - - -``` -NAME                         URL                                                                                                          READY   REASON -quarkus-serverless-native     True -``` - -Access the route `URL` with a `curl` command: - - -``` -`$ curl http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN/hello` -``` - -In less than one second, you will get the same result as you got locally: - - -``` -`Hello RESTEasy` -``` - -When you access the Quarkus running pod's logs in the OKD cluster, you will see the native executable is running as the Knative service. - -![Native Quarkus Log][16] - -(Daniel Oh, [CC BY-SA 4.0][5]) - -### What's next? - -You can optimize Java serverless functions with GraalVM distributions to deploy them as serverless functions on Knative with Kubernetes. Quarkus enables this performance optimization using simple configurations in normal microservices. - -The next article in this series will guide you on making portable functions across multiple serverless platforms with no code changes. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/java-serverless-functions-kubernetes - -作者:[Daniel Oh][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/daniel-oh -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_captain_devops_kubernetes_steer.png?itok=LAHfIpek (Ship captain sailing the Kubernetes seas) -[2]: https://opensource.com/article/19/6/reasons-kubernetes -[3]: https://quarkus.io/ -[4]: https://opensource.com/sites/default/files/uploads/quarkus-build.png (Quarkus Build phase) -[5]: https://creativecommons.org/licenses/by-sa/4.0/ -[6]: https://quarkus.io/blog/runtime-performance/ -[7]: https://opensource.com/sites/default/files/uploads/quarkus-boot-metrics.png (Quarkus RSS and Boot Time Metrics) -[8]: https://opensource.com/article/21/5/what-serverless-java -[9]: https://www.graalvm.org/community/ -[10]: https://github.com/graalvm/mandrel -[11]: https://www.docker.com/ -[12]: https://podman.io/ -[13]: https://opensource.com/sites/default/files/uploads/native-build-logs.png (Native Build Logs) -[14]: https://docs.okd.io/latest/applications/projects/configuring-project-creation.html -[15]: https://docs.okd.io/latest/welcome/index.html -[16]: https://opensource.com/sites/default/files/uploads/native-quarkus-log.png (Native Quarkus Log) diff --git a/translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md b/translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md new file mode 100644 index 0000000000..2f8a5e4e81 --- /dev/null +++ b/translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md @@ -0,0 +1,267 @@ +[#]: subject: (Optimize Java serverless functions in Kubernetes) +[#]: via: (https://opensource.com/article/21/6/java-serverless-functions-kubernetes) +[#]: author: (Daniel Oh https://opensource.com/users/daniel-oh) +[#]: collector: (lujun9972) +[#]: translator: (cool-summer-021) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +优化 Kubernetes 中的 Java 无服务器函数 +====== + +在 Kubernetes 中以更快的启动速度和更小的内存占用运行无服务器函数 +![Ship captain sailing the Kubernetes seas][1] + +由于运行上千个应用程序集群所耗费的资源多,令它实现较少工作节点和资源占用所需成本也较高,所以在使用 [Kubernetes][2] 时,快速启动和较少的内存占用是至关重要的。在 Kubernetes 平台运行容器化微服务时,内存占用是比吞吐量更重要的考量因素,这是因为: + + * 由于需要持续运行,所以耗费资源更多(不同于 CPU 周期) + * 微服务令管理成本成倍增加 + * 一个庞大的应用程序变为若干个微服务的情况(例如20个微服务占用的存储空间一共有20GB) + + + +这些情况极大影响了无服务器函数的发展和 Java 部署模型。到目前为止,许多企业开发人员选择 Go、Python 或 Node.js 这些替代方案来解决性能瓶颈,直到出现了 [Quarkus][3] 这种基于 kubernetes 的原生 Java 堆栈,才有所改观。本文介绍如何在使用了 Quarkus 的 kubernetes 平台上进行性能优化,以便运行无服务器函数。 + +### 容器优先的设计理念 + +由于 Java 生态系统中传统的框架都要进行框架的初始化,包括配置文件的处理、classpath 的扫描、类加载、注解的处理以及构建元模型,这些过程都是必不可少的,所以它们都比较耗费资源。如果使用了几种不同的框架,所耗费的资源也是成倍增加。 + +Quarkus 通过“向左移动”,把所有的资源开销大的操作都转移到构建阶段,解决了这些 Java 性能问题。在构建阶段进行代码和框架分析、字节码转换和动态元模型生成,而且只有一次,结果是:运行时可执行文件经过高度优化,启动非常快,不需要经过那些传统的启动过程,全过程只在构建阶段执行一次。 + +![Quarkus Build phase][4] + +(Daniel Oh, [CC BY-SA 4.0][5]) + +更重要的是:Quarkus 支持构建原生可执行文件,它具有良好性能,包括快速启动和极小的 RSS 内存占用,跟传统的云原生 Java 栈相比,具备即时扩展的能力和高密度的内存利用。 + +![Quarkus RSS and Boot Time Metrics][7] + +(Daniel Oh, [CC BY-SA 4.0][5]) + +这里有个例子,展示如何使用 Quarkus 将一个 [Java 无服务器][8]项目构建为本地可执行文件。 + +### 1\. 使用 Quarkus 创建无服务器 Maven 项目 + +以下命令生成一个 Quarkus 项目,(例如`quarkus-serverless-native`)以此创建一个简单的函数: + + +``` +$ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \ +       -DprojectGroupId=org.acme \ +       -DprojectArtifactId=quarkus-serverless-native \ +       -DclassName="org.acme.getting.started.GreetingResource" +``` + +### 2\. 构建一个本地可执行文件 + +你需要使用 GraalVM 为 Java 程序构建一个本地可执行文件。你可以选择 GraalVM 的任何发行版,例如 [Oracle GraalVM Community Edition (CE)][9] 或 [Mandrel][10](Oracle GraalVM CE 的下游发行版)。Mandrel 是为支持 OpenJDK 11 上的 Quarkus-native 可执行文件的构建而设计的。 + +打开 `pom.xml`,你将发现其中的 `native` 设置。你将使用它来构建本地可执行文件。 + + +``` + +    +        native +        +            native +        +    + +``` + +> **注意:** 你可以在本地安装 GraalVM 或 Mandrel 发行版。你也可以下载 Mandrel 容器映像来构建它(像我那样),因此你还需要在本地运行一个容器引擎(例如 Docker)。 + +假设你已经打开了容器运行时,此时需要运行一下 Maven 命令: + +使用 [Docker][11] 作为容器引擎 + + +``` +$ ./mvnw package -Pnative \ +-Dquarkus.native.container-build=true \ +-Dquarkus.native.container-runtime=docker +``` + +使用 [Podman][12] 作为容器引擎 + + +``` +$ ./mvnw package -Pnative \ +-Dquarkus.native.container-build=true \ +-Dquarkus.native.container-runtime=podman +``` + +输出信息结尾应当是 `BUILD SUCCESS`。 + +![Native Build Logs][13] + +(Daniel Oh, [CC BY-SA 4.0][5]) + +不借助 JVM 直接运行本地可执行文件: + + +``` +`$ target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner` +``` + +输出信息类似于: + + +``` +__  ____  __  _____   ___  __ ____  ______ + --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ + -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   +\--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/   +INFO  [io.quarkus] (main) quarkus-serverless-native 1.0.0-SNAPSHOT native +(powered by Quarkus xx.xx.xx.) Started in 0.019s. Listening on: +INFO [io.quarkus] (main) Profile prod activated. +INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy] +``` + +简直是超音速!启动只花了 19 毫秒。你的运行时间可能稍有不同。 + +使用 Linux 的 `ps` 工具检测一下,结果内存占用还是很低。检测的方法是:在应用程序运行期间,另外打开一个终端,运行如下命令: + + +``` +`$ ps -o pid,rss,command -p $(pgrep -f runner)` +``` + +输出结果类似于: + + +``` +  PID    RSS COMMAND +10246  11360 target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner +``` + +该进程只占 11MB 内存。非常小! + +> **注意:** 各种应用程序(包括 Quarkus)的驻留集大小和内存占用,都因运行环境而异,并随着应用程序载入而上升。 + + +你也可以使用 REST API 访问这个函数。输出结果应该是 `Hello RESTEasy`: + +``` +$ curl localhost:8080/hello +Hello RESTEasy +``` + +### 3\. 把函数部署到 Knative 服务 + +如果你还没有创建命名空间,现在就在 [OKD][15] (OpenShift Kubernetes 发行版)[创建一个命名空间][14](例如 `quarkus-serverless-native`),进而把这个本地可执行文件部署为无服务器函数。然后添加 `quarkus-openshift` 扩展: + + +``` +`$ ./mvnw -q quarkus:add-extension -Dextensions="openshift"` +``` + +向 `src/main/resources/application.properties` 文件中添加以下内容,配置 Knative 和 Kubernetes 的相关资源: + + +``` +quarkus.container-image.group=quarkus-serverless-native +quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 +quarkus.native.container-build=true +quarkus.kubernetes-client.trust-certs=true +quarkus.kubernetes.deployment-target=knative +quarkus.kubernetes.deploy=true +quarkus.openshift.build-strategy=docker +``` + +构建本地可执行文件,并把它直接部署到 OKD 集群: + + +``` +`$ ./mvnw clean package -Pnative` +``` + +> **Note:** 提前使用 `oc login` 命令,确保登录的是正确的项目(例如 `quarkus-serverless-native`)。 + +输出信息结尾应当是 `BUILD SUCCESS`。完成一个本地二进制文件的构建并部署为 Knative 服务需要花费几分钟。成功创建服务后,使用 `kubectl` 或 `oc` 命令工具,可以查看 Knative 服务和版本信息: + + +``` +$ kubectl get ksvc +NAME                        URL   [...] +quarkus-serverless-native    True + +$ kubectl get rev +NAME                              CONFIG NAME                 K8S SERVICE NAME                  GENERATION   READY   REASON +quarkus-serverless-native-00001   quarkus-serverless-native   quarkus-serverless-native-00001   1            True +``` + +### 4\. 访问本地可执行函数 + +运行 `kubectl` 命令,搜索无服务器函数的节点: + + +``` +`$ kubectl get rt/quarkus-serverless-native` +``` + +输出信息类似于: + + +``` +NAME                         URL                                                                                                          READY   REASON +quarkus-serverless-native     True +``` + +用 `curl` 命令访问上述信息中的 `URL` 字段: + + +``` +`$ curl http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN/hello` +``` + +过了不超过一秒钟,你也会得到跟本地操作一样的结果: + + +``` +`Hello RESTEasy` +``` + +当你在 OKD 群集中访问 Quarkus 运行中的节点的日志,你会发现本地可执行文件正在以 Knative 服务的形式运行。 + +![Native Quarkus Log][16] + +(Daniel Oh, [CC BY-SA 4.0][5]) + +### 下一步呢? + +你可以借助 GraalVM 发行版优化 Java 无服务器函数,从而在 Knative 中使用 Kubernetes 将它们部署为无服务器函数。Quarkus 支持在普通的微服务中使用简易配置进行性能优化。 + +本系列的下一篇文章将指导你在不更改代码的情况下跨多个无服务器平台实现可移植函数。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/java-serverless-functions-kubernetes + +作者:[Daniel Oh][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/daniel-oh +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_captain_devops_kubernetes_steer.png?itok=LAHfIpek (Ship captain sailing the Kubernetes seas) +[2]: https://opensource.com/article/19/6/reasons-kubernetes +[3]: https://quarkus.io/ +[4]: https://opensource.com/sites/default/files/uploads/quarkus-build.png (Quarkus Build phase) +[5]: https://creativecommons.org/licenses/by-sa/4.0/ +[6]: https://quarkus.io/blog/runtime-performance/ +[7]: https://opensource.com/sites/default/files/uploads/quarkus-boot-metrics.png (Quarkus RSS and Boot Time Metrics) +[8]: https://opensource.com/article/21/5/what-serverless-java +[9]: https://www.graalvm.org/community/ +[10]: https://github.com/graalvm/mandrel +[11]: https://www.docker.com/ +[12]: https://podman.io/ +[13]: https://opensource.com/sites/default/files/uploads/native-build-logs.png (Native Build Logs) +[14]: https://docs.okd.io/latest/applications/projects/configuring-project-creation.html +[15]: https://docs.okd.io/latest/welcome/index.html +[16]: https://opensource.com/sites/default/files/uploads/native-quarkus-log.png (Native Quarkus Log) From 6661ce6a599e517d16828f209a9e2c9bd73cdcef Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 21 Oct 2022 08:40:09 +0800 Subject: [PATCH 1613/3123] translated --- ...tatic IP Address on Ubuntu Server 22.04.md | 125 ------------------ ...tatic IP Address on Ubuntu Server 22.04.md | 125 ++++++++++++++++++ 2 files changed, 125 insertions(+), 125 deletions(-) delete mode 100644 sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md create mode 100644 translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md diff --git a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md deleted file mode 100644 index 6d4bfadab1..0000000000 --- a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md +++ /dev/null @@ -1,125 +0,0 @@ -[#]: subject: "How to Set Static IP Address on Ubuntu Server 22.04" -[#]: via: "https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/" -[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Set Static IP Address on Ubuntu Server 22.04 -====== -In this post, we will cover how to set static ip address on Ubuntu server 22.04. - -It is highly recommended to have a static ip on linux server because it would be persistent across the reboot. Static IP plays an important role for servers like Mail Server, Web Server and File server etc. - -##### Prerequisites - -* Minimal Installed Ubuntu Server 22.04 -* Regular User with sudo admin rights - -In Ubuntu server 22.04, networking is controlled by netplan utility, so we will use netplan to configure static ip address on Ubuntu server. - -Note: we cannot use [nmcli utiltity][1] as it is not the part of default installation on Ubuntu server. - -### Setting up Static IP address on Ubuntu Server 22.04 - -Login to your Ubuntu server 22.04, look for the netplan configuration file. It is located under /etc/netplan directory. - -``` -$ cd /etc/netplan/ -$ ls -l -total 4 --rw-r--r-- 1 root root 116 Oct 12 04:03 00-installer-config.yaml -$ -``` - -Run below cat command to view the contents of ‘00-installer-config.yaml’ - -Note: Name of configuration file may differ as your per setup. As it is an yaml file, so make sure to maintain the indentation and syntax while editing. - -``` -$ cat 00-installer-config.yaml -``` - -Output, - -![Default-Content-netplan-ubuntu-server][2] - -As per above output, it says that we have ens33 interface and it is getting ip from dhcp server. Alternate way to view interface name is via ip command. - -Now, to configure static ip in place of dhcp, edit netplan configuration file using vi or nano editor and add the following content. - -``` -$ sudo vi 00-installer-config.yaml -# This is the network config written by 'subiquity' -network: -  renderer: networkd -  ethernets: -    ens33: -      addresses: -        - 192.168.1.247/24 -      nameservers: -        addresses: [4.2.2.2, 8.8.8.8] -      routes: -        - to: default -          via: 192.168.1.1 -  version: 2 -``` - -save and close the file. - -![Updated-Netplan-Config-File-Content-Ubuntu-Server][3] - -In the above file we have used following, - -* ens33 is the interface name -* addresses are used to set the static ip -* nameservers used to specify the DNS server ips -* routes used to specify the default gateway - -Note: Change the IP details and interface name as per your environment. - -To make above changes into the effect the apply these changes using following netplan command, - -``` -$ sudo netplan apply -``` - -Run following ip command to view the ip address on interface, - -``` -$ ip addr show ens33 -``` - -To view the default route, run - -``` -$ ip route show -``` - -Output of above commands, - -![ip-addr-route-command-output-ubuntu-server][4] - -Perfect, above commands’ output confirms that static ip and route has been configured successfully. - -That’s all from this post. Kindly do post your queries and feedback in below comments section. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/ - -作者:[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/configure-ip-with-nmcli-command-linux/ -[2]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Default-Content-netplan-ubuntu-server.png -[3]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Updated-Netplan-Config-File-Content-Ubuntu-Server.png -[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/ip-addr-route-command-output-ubuntu-server.png diff --git a/translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md new file mode 100644 index 0000000000..5ea893ddf2 --- /dev/null +++ b/translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md @@ -0,0 +1,125 @@ +[#]: subject: "How to Set Static IP Address on Ubuntu Server 22.04" +[#]: via: "https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu Server 22.04 上设置静态 IP 地址 +====== +在这篇文章中,我们将介绍如何在 Ubuntu Server 22.04 上设置静态 IP 地址。 + +强烈建议在 linux 服务器上使用静态 ip,因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。 + +##### 先决条件 + +* 最小安装的 Ubuntu Server 22.04 +* 具有 sudo 管理员权限的普通用户 + +在 Ubuntu Server 22.04 中,网络由 netplan 程序控制,因此我们将使用 netplan 在 Ubuntu Server 上配置静态 IP 地址。 + +注意:我们不能使用 [nmcli 程序][1],因为它不是 Ubuntu Server 上默认安装的一部分。 + +### 在 Ubuntu Server 22.04 上设置静态 IP 地址 + +登录到你的 Ubuntu Server 22.04,查找 netplan 配置文件。它位于 /etc/netplan 目录下。 + +``` +$ cd /etc/netplan/ +$ ls -l +total 4 +-rw-r--r-- 1 root root 116 Oct 12 04:03 00-installer-config.yaml +$ +``` + +运行以下 cat 命令以查看 “00-installer-config.yaml” 的内容 + +注意:配置文件的名称可能因你的设置而异。由于它是一个 yaml 文件,因此请确保在编辑时保持缩进和语法。 + +``` +$ cat 00-installer-config.yaml +``` + +输出: + +![Default-Content-netplan-ubuntu-server][2] + +根据上面的输出,它说我们有 ens33 接口,它正在从 dhcp 服务器获取 ip。查看接口名称的另一种方法是通过 ip 命令。 + +现在,要配置静态 ip 代替 dhcp,使用 vi 或 nano 编辑器编辑 netplan 配置文件并添加以下内容。 + +``` +$ sudo vi 00-installer-config.yaml +# This is the network config written by 'subiquity' +network: + renderer: networkd + ethernets: + ens33: + addresses: + - 192.168.1.247/24 + nameservers: + addresses: [4.2.2.2, 8.8.8.8] + routes: + - to: default + via: 192.168.1.1 + version: 2 +``` + +保存并关闭文件。 + +![Updated-Netplan-Config-File-Content-Ubuntu-Server][3] + +在上面的文件中,我们使用了以下内容, + +* ens33 为接口名称 +* 用于设置静态 ip 的地址 +* nameservers 用于指定 DNS 服务器的 ip +* 用于指定默认网关的路由 + +注意:根据你的环境更改 IP 详细信息和接口名称。 + +要是上述修改生效,请使用以下 netplan 命令应用这些更改: + +``` +$ sudo netplan apply +``` + +运行以下 ip 命令查看接口上的 ip 地址: + +``` +$ ip addr show ens33 +``` + +要查看默认路由,请运行: + +``` +$ ip route show +``` + +上述命令的输出。 + +![ip-addr-route-command-output-ubuntu-server][4] + +完美,以上命令的输出确认静态ip和路由配置成功。 + +这就是这篇文章的全部内容。请在下面的评论部分发表你的问题和反馈。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/ + +作者:[Pradeep Kumar][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed +[1]: https://www.linuxtechi.com/configure-ip-with-nmcli-command-linux/ +[2]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Default-Content-netplan-ubuntu-server.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Updated-Netplan-Config-File-Content-Ubuntu-Server.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/ip-addr-route-command-output-ubuntu-server.png From 3c5e85ffd4e504659d27cf42544447bb1388142b Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 21 Oct 2022 08:46:33 +0800 Subject: [PATCH 1614/3123] translating --- ...all Gedit on Ubuntu 22.10 and Make it Default Text Editor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md index 23d4fcec3b..321877f0f3 100644 --- a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md +++ b/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-gedit-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 257262e5b9ba6b00091e5b29bc5b62aea0ad8cd1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 21 Oct 2022 10:02:08 +0800 Subject: [PATCH 1615/3123] RP @geekpi https://linux.cn/article-15160-1.html --- ...ow to Enable Snap Support in Arch Linux.md | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) rename {translated/tech => published}/20221011 How to Enable Snap Support in Arch Linux.md (64%) diff --git a/translated/tech/20221011 How to Enable Snap Support in Arch Linux.md b/published/20221011 How to Enable Snap Support in Arch Linux.md similarity index 64% rename from translated/tech/20221011 How to Enable Snap Support in Arch Linux.md rename to published/20221011 How to Enable Snap Support in Arch Linux.md index 00398d3f86..f48d40ea70 100644 --- a/translated/tech/20221011 How to Enable Snap Support in Arch Linux.md +++ b/published/20221011 How to Enable Snap Support in Arch Linux.md @@ -3,34 +3,37 @@ [#]: author: "Pranav Krishna https://itsfoss.com/author/pranav/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15160-1.html" 如何在 Arch Linux 中启用 Snap 支持 ====== + +![](https://img.linux.net.cn/data/attachment/album/202210/21/100128gzzqkf3fcg3f6q3n.jpg) + Snap 是由 Ubuntu 的母公司 Canonical 设计的通用包格式。有些人不喜欢 Snap,但它有一些优势。 -通常,某些应用仅以 Snap 格式提供。这为你提供了在 Arch Linux 中启用 snap 的充分理由。 +通常,某些应用仅以 Snap 格式提供。这为你提供了在 Arch Linux 中启用 Snap 的充分理由。 -我知道 AUR 拥有大量应用,但 snap 应用通常直接来自开发人员。 +我知道 AUR 拥有大量应用,但 Snap 应用通常直接来自开发人员。 -如果你希望能够在 Arch Linux 中安装 Snap 应用,你需要先启用 snap 支持。 +如果你希望能够在 Arch Linux 中安装 Snap 应用,你需要先启用 Snap 支持。 有两种方法可以做到: * 使用 AUR 助手启用 Snap 支持(更简单) -* 通过从 AUR 获取包手动启用 Snap 支持 +* 通过从 AUR 获取包,手动启用 Snap 支持 让我们看看怎么做。 -### 方法 1. 使用 AUR 助手启用 Snap +### 方法 1、使用 AUR 助手启用 Snap -Snap 在 Arch 用户仓库中以 *snapd* 包的形式提供。你可以使用 AUR 助手轻松安装它。 +Snap 支持在 Arch 用户仓库中以 `snapd` 包的形式提供。你可以使用 AUR 助手轻松安装它。 -存在[许多 AUR 助手][1],但 *yay* 是我更喜欢的,因为它的语法类似于 [pacman 命令][2]。 +有 [许多 AUR 助手][1],但 `yay` 是我更喜欢的,因为它的语法类似于 [pacman 命令][2]。 -如果你还没有安装 AUR,请使用以下命令安装 Yay(需要事先 git): +如果你还没有安装 AUR,请使用以下命令安装 Yay(需要事先安装 `git`): ``` git clone https://aur.archlinux.org/yay @@ -42,7 +45,7 @@ makepkg -si ![安装 yay][3] -现在 *yay* 已安装,你可以通过以下方式安装 snapd: +现在 `yay` 已安装,你可以通过以下方式安装 `snapd`: ``` yay -Sy snapd @@ -50,11 +53,11 @@ yay -Sy snapd ![使用 yay 从 AUR 安装 snapd][4] -每当你[更新 Arch Linux][5] 系统时,Yay 都会启用 snapd 的自动更新。 +每当你 [更新 Arch Linux][5] 系统时,`yay` 都会启用 `snapd` 的自动更新。 -### 验证 snap 是否有效 +#### 验证 Snap 支持是否有效 -要测试 snap 是否正常工作,请安装并运行 *hello-world* snap 包。 +要测试 Snap 支持是否正常工作,请安装并运行 `hello-world` Snap 包。 ``` sudo snap install hello-world @@ -64,13 +67,13 @@ hello-world sudo snap run hello-world ``` -![hello-world snap 包执行][6] +![hello-world Snap 包执行][6] -如果它运行良好,那么你可以轻松安装其他 snap 包。 +如果它运行良好,那么你可以轻松安装其他 Snap 包。 -### 方法 2. 从 AUR 手动构建 snap 包 +### 方法 2、从 AUR 手动构建 snapd 包 -如果你不想使用 AUR 助手,你仍然可以从 AUR 获取 snap。让我展示详细的过程。 +如果你不想使用 AUR 助手,你仍然可以从 AUR 获取 `snapd`。让我展示详细的过程。 你需要先安装一些构建工具。 @@ -78,9 +81,9 @@ sudo snap run hello-world sudo pacman -Sy git go go-tools python-docutils ``` -![为 snap 安装依赖项][7] +![为 Snap 安装依赖项][7] -完成依赖项安装后,现在可以克隆 AUR 目录,如下所示: +完成依赖项安装后,现在可以克隆 `snapd` 的 AUR 目录,如下所示: ``` git clone https://aur.archlinux.org/snapd @@ -90,17 +93,17 @@ cd snapd ![克隆仓库][8] -然后构建 snapd 包: +然后构建 `snapd` 包: ``` makepkg -si ``` -当它要求安装其他依赖包时输入 yes。 +当它要求安装其他依赖包时输入 `yes`。 ![手动构建 snapd][9] -你已安装 snapd 守护程序。但是,需要启用它以在启动时自动启动。 +你已安装 `snapd` 守护程序。但是,需要启用它以在启动时自动启动。 ``` sudo systemctl enable snapd --now @@ -110,15 +113,15 @@ sudo systemctl enable snapd.apparmor --now #start snap applications sudo ln -s /var/lib/snapd/snap /snap #optional: classic snap support ``` -![启动时启用 snap][10] +![启动时启用 Snap][10] 手动构建包的主要缺点是每次新更新启动时你都必须手动构建。使用 AUR 助手为我们解决了这个问题。 ### 总结 -我更喜欢 Arch Linux 中的 pacman 和 AUR。很少能看到不在 AUR 中但以其他格式提供的应用。尽管如此,在某些你希望直接从源获取它的情况下,使用 snap 可能是有利的,例如 [在 Arch 上安装 Spotify][11]。 +我更喜欢 Arch Linux 中的 pacman 和 AUR。很少能看到不在 AUR 中但以其他格式提供的应用。尽管如此,在某些你希望直接从源获取它的情况下,使用 Snap 可能是有利的,例如 [在 Arch 上安装 Spotify][11]。 -希望本教程对您有所帮助。如果你有任何问题,请告诉我。 +希望本教程对你有所帮助。如果你有任何问题,请告诉我。 -------------------------------------------------------------------------------- @@ -127,7 +130,7 @@ via: https://itsfoss.com/install-snap-arch-linux/ 作者:[Pranav Krishna][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/) 荣誉推出 From d9071f962780783d2da30bb9bc65b40fdad0cdbe Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 21 Oct 2022 11:30:26 +0800 Subject: [PATCH 1616/3123] RP @MareDevi https://linux.cn/article-15161-1.html --- ...Joplin, the open source note-taking app.md | 141 +++++++++++++++++ ...Joplin, the open source note-taking app.md | 145 ------------------ 2 files changed, 141 insertions(+), 145 deletions(-) create mode 100644 published/20220926 The story behind Joplin, the open source note-taking app.md delete mode 100644 translated/talk/20220926 The story behind Joplin, the open source note-taking app.md diff --git a/published/20220926 The story behind Joplin, the open source note-taking app.md b/published/20220926 The story behind Joplin, the open source note-taking app.md new file mode 100644 index 0000000000..ac3c6e5bf3 --- /dev/null +++ b/published/20220926 The story behind Joplin, the open source note-taking app.md @@ -0,0 +1,141 @@ +[#]: subject: "The story behind Joplin, the open source note-taking app" +[#]: via: "https://opensource.com/article/22/9/joplin-interview" +[#]: author: "Richard Chambers https://opensource.com/users/20i" +[#]: collector: "lkxed" +[#]: translator: "MareDevi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15161-1.html" + +开源笔记软件 Joplin 背后的故事 +====== + +![](https://img.linux.net.cn/data/attachment/album/202210/21/112935tfapsvpac06h2sth.jpg) + +> Laurent Cozic 与我坐下来,讨论了 Joplin 是如何开始的,以及这个开源笔记软件的下一步计划。 + +在这次采访中,我见到了笔记软件 Joplin 的创建者 Laurent Cozic。[Joplin][2] 是 [20i][3] 奖励的赢家,所以我想了解是什么让它如此成功,以及他如何实现的。 + +### 你能概述一下什么是 Joplin 吗? + +[Joplin][4] 是一个开源的笔记软件。它可以让你捕获你的想法并从任何设备安全地访问它们。 + +### 显然,还有很多其他的笔记应用,那么除了免费使用之外,它还有什么不同呢? + +对我们的许多用户来说,它是开源的这一事实是一个非常重要的方面,因为这意味着没有供应商对数据的封锁,而且数据可以很容易地被导出并以各种方式访问。 + +我们还关注用户的安全和数据隐私,特别是端到端加密同步功能,以及通过对应用的任何连接保持透明。我们还与安全研究人员合作,以保证软件更加安全。 + +最后,Joplin 可以通过几种不同的方式进行定制 —— 通过插件(可以添加新的功能)和主题来定制应用程序的外观。我们还公开了一个数据 API,它允许第三方应用程序访问 Joplin 的数据。 + +> **[相关阅读:5 款 Linux 上的笔记应用][5]** + +### 这是一个竞争非常激烈的市场,那么是什么激发了你创建它的想法? + +这是有原因的的。我从 2016 年开始研究它,因为我不喜欢现有的商业记事应用程序:笔记、附件或标签不能轻易被其他工具导出或操作。 + +这主要是由于供应商的封锁,另外还有供应商缺乏动力,因为他们没有动力帮助用户将他们的数据转移到其他应用程序。还有一个问题是,这些公司通常会以纯文本形式保存笔记,而这有可能造成数据隐私和安全方面的问题。 + +因此,我决定开始创建一个简单且具有同步功能的移动和终端应用程序,使我的笔记能够轻松地在我的设备上访问。之后又创建了桌面应用程序,项目从此开始发展。 + +![Chrome OS 上 Joplin 的图片][6] + +### 编写 Joplin 花了多长时间呢? + +自 2016 年以来,我一直在断断续续地开发,但并不是专门去维护。不过在过去的两年里,我更加专注于它。 + +### 对于准备创建自己的开源应用的人,你有什么建议? + +挑选一个你自己使用的项目和你喜欢的技术来工作。 + +管理一个开源项目有时是很困难的,所以必须要有足够的兴趣去让它变得更有价值。那么我想 “早发布,多发布” 原则在这里也适用,这样你就可以衡量用户的兴趣,以及是否有必要花时间进一步开发这个项目。 + +### 有多少人参与了 Joplin 的开发? + +有 3、4 人参与开发。目前,我们还有 6 名学生在 谷歌编程之夏Google Summer of Code 中为这个项目工作。 + +### 许多人都在创建开源项目,但 Joplin 对你来说是一个巨大的成功。关于如何获得关注,你能否给开发者提供一些建议? + +没有简单的公式,说实话,我不认为我可以在另一个项目中复制这种成功!你必须对你所做的事情充满热情,但同时也要严谨、有组织、稳步前进,确保代码质量保持高水平,并拥有大量的测试单元以防止回归。 + +同时,对于你收到的用户反馈保持开放的态度,并在此基础上改进项目。 + +一旦你掌握了这些,剩下的可能就全靠运气了 —— 如果你做的项目让很多人都感兴趣,事情可能会顺利进行! + +### 一旦你得到关注,但如果你没有传统的营销预算,你如何保持这种势头? + +我认为这在于倾听项目周围的社区。举个例子来说,我从未计划过建立一个论坛,但有人在 GitHub 上提出了这个建议,所以我创建了一个论坛,它成为了一个分享想法、讨论功能、提供支持等很好的方式。社区也普遍欢迎新人,这形成了一种良性循环。 + +除此以外,定期就项目进行沟通也很重要。 + +我们没有一个公开的路线图,因为大多数功能的 ETA 通常是 “我不知道”,但我会试图就即将到来的功能、新版本等进行沟通。我们也会就重要的事件进行沟通,特别是谷歌编程之夏,或者当我们有机会赢得像 20i FOSS 奖的时候。 + +最后,我们很快将在伦敦举行一次面对面的聚会,这是与社区和合作者保持联系的另一种方式。 + +### 用户的反馈是如何影响路线图的? + +很明显,贡献者们经常仅仅因为他们需要某个特性而从事某些工作。但除此之外,我们还根据论坛和 GitHub 问题追踪器上的信息,追踪对用户来说似乎最重要的功能。 + +例如,移动应用程序现在具有很高的优先级,因为我们经常从用户那里听到,它的限制和缺陷是有效使用 Joplin 的一个问题。 + +![桌面使用Joplin的图片][8] + +### 你是如何跟上最新的开发和编码的发展的? + +主要是通过阅读 Hacker News! + +### 你有个人最喜欢的自由/开源软件可以推荐吗? + +在不太知名的项目中,[SpeedCrunch][9] 作为一个计算器非常好。它有很多功能,而且很好的是它能保留以前所有计算的历史。 + +我还使用 [KeepassXC][10] 作为密码管理器。在过去的几年里,它一直在稳步改进。 + +最后,[Visual Studio Code][11] 作为一个跨平台的文本编辑器非常棒。 + +### 我原以为 Joplin 是以 Janis 的名字命名的,但维基百科告诉我来自是 Scoot Joplin。你为什么选择这个名字? + +我起初想把它命名为 “jot-it”,但我想这个名字已经被人占了。 + +由于我那时经常听 Scoot Joplin 的 拉格泰姆ragtime音乐(我相当痴迷于此),我决定使用他的名字。 + +我认为产品名称的含义并不太重要,只要名称本身易于书写、发音、记忆,并与一些积极的东西(或至少没有消极的东西)有关。 + +我觉得 “Joplin” 符合所有条件。 + +### 关于 Joplin 的计划,你还有什么可以说的吗?也许是对一个新功能的独家预告? + +如前所述,我们非常希望在用户体验设计和新功能方面对移动应用进行改进。 + +我们也在考虑创建一个 “插件商店”,以便更容易地浏览和安装插件。 + +感谢 Laurent — 祝 Joplin 的未来好运。 + +*图片来自: (Opensource.com, CC BY-SA 4.0)* + +*[这篇访谈最初发表在 20i 博客上,已获得许可进行转载。][12]* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/joplin-interview + +作者:[Richard Chambers][a] +选题:[lkxed][b] +译者:[MareDevi](https://github.com/MareDevi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/20i +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png +[2]: https://joplinapp.org/ +[3]: https://www.20i.com/foss-awards/winners +[4]: https://opensource.com/article/19/1/productivity-tool-joplin +[5]: https://opensource.com/article/22/8/note-taking-apps-linux +[6]: https://opensource.com/sites/default/files/2022-09/joplin-chrome-os.png +[7]: https://opensource.com/article/21/10/google-summer-code +[8]: https://opensource.com/sites/default/files/2022-09/joplin-desktop.png +[9]: https://heldercorreia.bitbucket.io/speedcrunch/ +[10]: https://opensource.com/article/18/12/keepassx-security-best-practices +[11]: https://opensource.com/article/20/6/open-source-alternatives-vs-code +[12]: https://www.20i.com/blog/joplin-creator-laurent-cozic/ diff --git a/translated/talk/20220926 The story behind Joplin, the open source note-taking app.md b/translated/talk/20220926 The story behind Joplin, the open source note-taking app.md deleted file mode 100644 index cd1954b0a6..0000000000 --- a/translated/talk/20220926 The story behind Joplin, the open source note-taking app.md +++ /dev/null @@ -1,145 +0,0 @@ -[#]: subject: "The story behind Joplin, the open source note-taking app" -[#]: via: "https://opensource.com/article/22/9/joplin-interview" -[#]: author: "Richard Chambers https://opensource.com/users/20i" -[#]: collector: "lkxed" -[#]: translator: "MareDevi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -开源笔记软件Joplin背后的故事 -====== -Laurent Cozic与我坐下来,讨论了Joplin是如何开始的,以及这个开源笔记软件的下一步计划。 - -在这次采访中,我见到了笔记软件Joplin的创建者Laurent Cozic。[Joplin][2]是[20i][3]奖励的赢家,所以我想了解是什么让它如此成功,以及他如何实现的。 - - -**您能总结一下什么是Joplin吗** - -[Joplin][4]是一个开源的笔记软件。它可以你捕获你的想法并从任何设备安全地访问它们。 - - -**显然,还有很多其他的笔记应用,那么除了免费使用之外,它还有什么不同呢?** - -对我们的许多用户来说,它是开源的这一事实是一个非常重要的方面,因为这意味着没有供应商对数据的封锁,而且数据可以很容易地被导出并以各种方式访问。 - -我们还关注用户的安全和数据隐私,特别是端到端加密同步功能,以及通过对应用的任何连接保持透明。我们还与安全研究人员合作,以保证软件更加安全。 - -最后,Joplin可以通过几种不同的方式进行定制--通过插件(可以添加新的功能)和主题来定制应用程序的外观。我们还公开了一个数据API,它允许第三方应用程序访问Joplin的数据。 - - -**[[相关阅读:5款Linux上的笔记应用]][5]** - -**这是一个竞争非常激烈的市场,那么是什么激发了您创建它的想法?** - -这是有原因的的。我从2016年开始研究它,因为我不喜欢现有的商业记事应用程序:笔记、附件或标签不能轻易被其他工具导出或操作。 - -这主要是由于供应商的封锁,另外还有供应商缺乏动力,因为他们没有动力帮助用户将他们的数据转移到其他应用程序。还有一个问题是,这些公司通常会以纯文本形式保存笔记,而这有可能造成数据隐私和安全方面的问题。 - -因此,我决定开始创建一个简单且具有同步功能的移动和终端应用程序,使我的笔记能够轻松地在我的设备上访问。之后又创建了桌面应用程序,项目从此开始发展。 - - -![Chrome OS上Joplin的图片][6] - -图片来自: (Opensource.com, CC BY-SA 4.0) - -**编写Joplin花了多长时间呢?** - -自2016年以来,我一直在断断续续地工作,但并不是专门去维护。不过在过去的两年里,我更加专注于它。 - -**对于准备创建自己的开源应用的人,你有什么建议?** - -挑选一个你自己使用的项目和你喜欢的技术来工作。 - -管理一个开源项目有时是很困难的,所以必须要有足够的兴趣去让它变得更有价值。那么我想 "早发布,多发布 "在这里也适用,这样你就可以衡量用户的兴趣,以及是否有必要花时间进一步开发这个项目。 - - -**有多少人参与了Joplin的开发?** - -有3-4人参与开发。目前,我们还有6名学生在谷歌代码之夏(Google Summer of Code)项目中工作。 - -**许多人都创建开源项目,但Joplin对您来说是一个巨大的成功。关于如何获得关注,你能否给开发者提供一些建议?** - -没有简单的公式,说实话,我不认为我可以在另一个项目中复制这种成功!你必须对你所做的事情充满热情,但同时也要严谨、有组织、稳步前进,确保代码质量保持高水平,并拥有大量的测试单元以防止倒退。 - -同时,对于你收到的用户反馈保持开放的态度,并在此基础上改进项目。 - -一旦你掌握了这些,剩下的可能就全靠运气了——如果你做的项目让很多人都感兴趣,事情可能会顺利进行! - -**一旦你得到关注,但如果你没有传统的营销预算,你如何保持这种势头?** - -我认为这是在于倾听项目周围的社区。举个例子来说,我从未计划过建立一个论坛,但有人在GitHub上提出了这个建议,所以我创建了一个论坛,它成为了一个分享想法、讨论功能、提供支持等很好的方式。社区也普遍欢迎新人,这形成了一种良性循环。 - -除此以外,定期就项目进行沟通也很重要。 - -我们没有一个公开的路线图,因为大多数功能的ETA通常是 "我不知道",但我试图就即将到来的功能、新版本等进行沟通。我们也会就重要的事件进行沟通,特别是谷歌的代码之夏,或者当我们有机会赢得像20i FOSS奖的时候。 - -最后,我们很快将在伦敦举行一次面对面的聚会,这是与社区和合作者保持联系的另一种方式。 - -**用户的反馈是如何影响路线图的?** - -很明显,贡献者们经常仅仅因为他们需要某个特性而从事某些工作。但除此之外,我们还根据论坛和GitHub问题追踪器上的信息,追踪对用户来说似乎最重要的功能。 - -例如,移动应用程序现在具有很高的优先级,因为我们经常从用户那里听到,它的限制和问题是有效使用Joplin的一个问题。 - -![桌面使用Joplin的图片][8] - -图片来自: (Opensource.com, CC BY-SA 4.0) - -**您如何跟进开发和编写代码的最新进展?** - -主要是通过阅读Hacker News! - -**你有个人最喜欢的自由/开源软件可以推荐吗?** - -在不太知名的项目中,[SpeedCrunch][9]作为一个计算器非常好。它有很多功能,而且很好的是它能保留以前所有计算的历史。 - -我还使用[KeepassXC][10]作为密码管理器。在过去的几年里,它一直在稳步改进。 - -最后,[Visual Studio Code][11]作为一个跨平台的文本编辑器非常棒。 - -**我原以为Joplin是以Janis的名字命名的,但维基百科告诉我来自是Scoot Joplin。你为什么选择这个名字?** - -我起初想把它命名为 "jot-it",但我想的这个名字已经被人取走了。 - -由于我那时经常听斯科特-乔普林的拉格泰姆音乐(我相当痴迷于此),我决定使用他的名字。 - -我认为产品名称的含义并不太重要,只要名称本身易于书写、发音、记忆,并与一些积极的东西(或至少没有消极的东西)有关。 - -我觉得"Joplin"符合所有条件。 - -**关于Joplin的计划,您还有什么可以说的吗?也许是对一个新功能的独家预告?** - -如前所述,我们非常希望在用户体验设计和新功能方面对移动应用进行改进。 - -我们也在考虑创建一个“插件商店”,以便更容易地浏览和安装插件。 - -**感谢Laurent — 祝Joplin的未来好运.** - -*[这篇访谈最初发表在20i博客上,已获得许可进行转载。][12]* - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/9/joplin-interview - -作者:[Richard Chambers][a] -选题:[lkxed][b] -译者:[MareDevi](https://github.com/MareDevi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/20i -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png -[2]: https://joplinapp.org/ -[3]: https://www.20i.com/foss-awards/winners -[4]: https://opensource.com/article/19/1/productivity-tool-joplin -[5]: https://opensource.com/article/22/8/note-taking-apps-linux -[6]: https://opensource.com/sites/default/files/2022-09/joplin-chrome-os.png -[7]: https://opensource.com/article/21/10/google-summer-code -[8]: https://opensource.com/sites/default/files/2022-09/joplin-desktop.png -[9]: https://heldercorreia.bitbucket.io/speedcrunch/ -[10]: https://opensource.com/article/18/12/keepassx-security-best-practices -[11]: https://opensource.com/article/20/6/open-source-alternatives-vs-code -[12]: https://www.20i.com/blog/joplin-creator-laurent-cozic/ From 687c32b4b21ab0cde81734ba8f47c6de308b60ac Mon Sep 17 00:00:00 2001 From: Donkey Date: Fri, 21 Oct 2022 12:52:27 +0800 Subject: [PATCH 1617/3123] translated --- ...o practice open organization principles.md | 142 ----------------- ...o practice open organization principles.md | 143 ++++++++++++++++++ 2 files changed, 143 insertions(+), 142 deletions(-) delete mode 100644 sources/talk/20220616 Using habits to practice open organization principles.md create mode 100644 translated/talk/20220616 Using habits to practice open organization principles.md diff --git a/sources/talk/20220616 Using habits to practice open organization principles.md b/sources/talk/20220616 Using habits to practice open organization principles.md deleted file mode 100644 index ac9fdd2d56..0000000000 --- a/sources/talk/20220616 Using habits to practice open organization principles.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "Using habits to practice open organization principles" -[#]: via: "https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles" -[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" -[#]: collector: "lkxed" -[#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Using habits to practice open organization principles -====== -Follow these steps to implement habits that support open culture and get rid of those that don't. - -![Selfcare, drinking tea on the porch][1] - -Image by: opensource.com - -Habits are a long-term interest of mine. Several years ago, I gave a presentation on habits, both good and bad, and how to expand on good habits and change bad ones. Just recently, I read the habits-focused book Smart Thinking by Art Markman. You might ask what this has to do with [open organization principles.][2] There is a connection, and I'll explain it in this two-part article on managing habits. - -In this first article, I talk about habits, how they work, and—most important—how you can start to change them. In the second article, I review Markman's thoughts as presented in his book. - -### The intersection of principles and habits - -Suppose you learned about open organization principles and although you found them interesting and valuable, you just weren't in the habit of using them. Here's how that might look in practice. - -Community: If you're faced with a significant challenge but think you can't address it alone, you're likely in the habit of just giving up. Wouldn't it be better to have the habit of building a community of like-minded people that collectively can solve the problem? - -Collaboration: Suppose you don't think you're a good collaborator. You like to do things alone. You know that there are cases when collaboration is required, but you don't have a habit of engaging in it. To counteract that, you must build a habit of collaborating more. - -Transparency: Say you like to keep most of what you do and know a secret. However, you know that if you don't share information, you're not likely to get good information from others. Therefore, you must create the habit of being more transparent. - -Inclusivity: Imagine you are uncomfortable working with people you don't know and who are different from you, whether in personality, culture, or language. You know that if you want to be successful, you must work with a wide variety of people. How do you create a habit of being more inclusive? - -Adaptability: Suppose you tend to resist change long after what you're doing is no longer achieving what you had hoped it would. You know you must adapt and redirect your efforts, but how can you create a habit of being adaptive? - -### What is a habit? - -Before I give examples regarding the above principles, I'll explain some of the relevant characteristics of a habit. - -* A habit is a behavior performed repeatedly—so much so that it's now performed without thinking. -* A habit is automatic and feels right at the time. The person is so used to it, that it feels good when doing it, and to do something else would require effort and make them feel uncomfortable. They might have second thoughts afterward though. -* Some habits are good and extremely helpful by saving you a lot of energy. The brain is 2% of the body's weight but consumes 20% of your daily energy. Because thinking and concentration require a lot of energy, your mind is built to save it through developing unconscious habits. -* Some habits are bad for you, so you desire to change them. -* All habits offer some reward, even if it is only temporary. -* Habits are formed around what you are familiar with and what you know, even habits you don’t necessarily like. - -### The three steps of a habit - -1. Cue (trigger): First, a cue or trigger tells the brain to go into automatic mode, using previously learned habitual behavior. Cues can be things like seeing a candy bar or a television commercial, being in a certain place at a certain time of day, or just seeing a particular person. Time pressure can trigger a routine. An overwhelming atmosphere can trigger a routine. Simply put, something reminds you to behave a certain way. -2. Routine: The routine follows the trigger. A routine is a set of physical, mental, and/or emotional behaviors that can be incredibly complex or extremely simple. Some habits, such as those related to emotions, are measured in milliseconds. -3. Reward: The final step is the reward, which helps your brain figure out whether a particular activity is worth remembering for the future. Rewards can range from food or drugs that cause physical sensations to joy, pride, praise, or personal self-esteem. - -### Bad habits in a business environment - -Habits aren't just for individuals. All organizations have good and bad institutional habits. However, some organizations deliberately design their habits, while others just let them evolve without forethought, possibly through rivalries or fear. These are some organizational habit examples: - -* Always being late with reports -* Working alone or working in groups when the opposite is appropriate -* Being triggered by excess pressure from the boss -* Not caring about declining sales -* Not cooperating among a sales team because of excess competition -* Allowing one talkative person to dominate a meeting - -### A step-by-step plan to change a habit - -Habits don't have to last forever. You can change your own behavior. First, remember that many habits can not be changed concurrently. Instead, find a keystone habit and work on it first. This produces small, quick rewards. Remember that one keystone habit can create a chain reaction. - -Here is a four-step framework you can apply to changing any habit, including habits related to open organization principles. - -##### Step one: identify the routine - -Identify the habit loop and the routine in it (for example, when an important challenge comes up that you can't address alone). The routine (the behaviors you do) is the easiest to identify, so start there. For example: "In my organization, no one discusses problems with anyone. They just give up before starting." Determine the routine that you want to modify, change, or just study. For example: "Every time an important challenge comes up, I should discuss it with people and try to develop a community of like-minded people who have the skills to address it." - -##### Step two: experiment with the rewards - -Rewards are powerful because they satisfy cravings. But, we're often not conscious of the cravings that drive our behavior. They are only evident afterward. For example, there may be times in meetings when you want nothing more than to get out of the room and avoid a subject of conversation, even though down deep you know you should figure out how to address the problem. - -To learn what a craving is, you must experiment. That might take a few days, weeks, or longer. You must feel the triggering pressure when it occurs to identify it fully. For example, ask yourself how you feel when you try to escape responsibility. - -Consider yourself a scientist, just doing experiments and gathering data. The steps in your investigation are: - -1. After the first routine, start adjusting the routines that follow to see whether there's a reward change. For example, if you give up every time you see a challenge you can't address by yourself, the reward is the relief of not taking responsibility. A better response might be to discuss the issue with at least one other person who is equally concerned about the issue. The point is to test different hypotheses to determine which craving drives your routine. Are you craving the avoidance of responsibility? -2. After four or five different routines and rewards, write down the first three or four things that come to mind right after each reward is received. Instead of just giving up in the face of a challenge, for instance, you discuss the issue with one person. Then, you decide what can be done. -3. After writing about your feeling or craving, set a timer for 15 minutes. When it rings, ask yourself whether you still have the craving. Before giving in to a craving, rest and think about the issue one or two more times. This forces you to be aware of the moment and helps you later recall what you were thinking about at that moment. -4. Try to remember what you were thinking and feeling at that precise instant, and then 15 minutes after the routine. If the craving is gone, you have identified the reward. - -##### Step three: isolate the cue or trigger - -The cue is often hard to identify because there's usually too much information bombarding you as your behaviors unfold. To identify a cue amid other distractions, you can observe four factors the moment the urge hits you: - -Location: Where did it occur? ("My biggest challenges come out in meetings.") - -Time: When did it occur? ("Meetings in the afternoon, when I'm tired, are the worst time, because I'm not interested in putting forth any effort.") - -Feelings: What was your emotional state? ("I feel overwhelmed and depressed when I hear the problem.") - -People: Who or what type of people were around you at the time, or were you alone? ("In the meetings, most other people don't seem interested in the problem either. Others dominate the discussion.") - -##### Step four: have a plan - -Once you have confirmed the reward driving your behavior, the cues that trigger it, and the behavior itself, you can begin to shift your actions. Follow these three easy steps: - -1. First, plan for the cue. ("In meetings, I'm going to look for and focus my attention on important problems that come up.") -2. Second, choose a behavior that delivers the same reward but without the penalties you suffer now. ("I'm going to explore a plan to address that problem and consider what resources and skills I need to succeed. I'm going to feel great when I create a community that's able to address the problem successfully.") -3. Third, make the behavior a deliberate choice each and every time, until you no longer need to think about it. ("I'm going to consciously pay attention to major issues until I can do it without thinking. I might look at agendas of future meetings, so I know what to expect in advance. Before and during every meeting, I will ask why should I be here, to make sure I'm focused on what is important." - -##### Plan to avoid forgetting something that must be done - -To successfully start doing something you often forget, follow this process: - -1. Plan what you want to do. -2. Determine when you want to complete it. -3. Break the project into small tasks as needed. -4. With a timer or daily planner, set up cues to start each task. -5. Complete each task on schedule. -6. Reward yourself for staying on schedule. - -### Habit change - -Change takes a long time. Sometimes a support group is required to help change a habit. Sometimes, a lot of practice and role play of a new and better routine in a low-stress environment is required. To find an effective reward, you need repeated experimentation. - -Sometimes habits are only symptoms of a more significant, deeper problem. In these cases, professional help may be required. But if you have the desire to change and accept that there will be minor failures along the way, you can gain power over any habit. - -In this article, I've used examples of community development using the cue-routine-reward process. It can equally be applied to the other open organization principles. I hope this article got you thinking about how to manage habits through knowing how habits work, taking steps to change habits, and making plans to avoid forgetting things you want done. Whether it's an open organization principle or anything else, you can now diagnose the cue, the routine, and the reward. That will lead you to a plan to change a habit when the cue presents itself. - -In my next article, I'll look at habits through the lens of Art Markman's thoughts on Smart Thinking. - --------------------------------------------------------------------------------- - -via: https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles - -作者:[Ron McFarland][a] -选题:[lkxed][b] -译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者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/coffee_tea_selfcare_wfh_porch_520.png -[2]: https://theopenorganization.org/definition/open-organization-definition/ diff --git a/translated/talk/20220616 Using habits to practice open organization principles.md b/translated/talk/20220616 Using habits to practice open organization principles.md new file mode 100644 index 0000000000..aff844240b --- /dev/null +++ b/translated/talk/20220616 Using habits to practice open organization principles.md @@ -0,0 +1,143 @@ +[#]: subject: "Using habits to practice open organization principles" +[#]: via: "https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles" +[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" +[#]: collector: "lkxed" +[#]: translator: "Donkey-Hao" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +利用习惯练习开放式组织原则 +====== +你可以按照以下步骤,来养成符合开放文化的习惯,并改掉那些不符合开放文化的习惯。 + +![Selfcare, drinking tea on the porch][1] + +很久以来,我就对习惯很感兴趣。几年前,我做了一次关于习惯利弊的演讲,并且介绍了如何改变坏习惯、养成好习惯。不久前,我阅读了 Art Markman 教授的 《Smart Thinking》一书,这本书主要讨论的也是习惯。或许你会问习惯与 [开放式组织的原则][2] 有什么关系?这其中有一定的联系!我将会分成两篇文章,来解释你可以如何管理你的习惯。 + +在本文中,我们将讨论习惯如何工作的,以及更重要的是你如何去开始改变你的习惯。在下一篇文章中,我们将回顾 Markman 教授在他书中所表达的思想。 + +### 开放式组织原则和习惯的交集 + +设想你学习过开放式组织的原则,尽管你认为它们很有趣并且很有价值,但是你还没有对这些原则形成自己的习惯。以下就是你现实中会表现出来的样子。 + +社区:如果你面对一项重要挑战,但是你不知道如何独自解决它,你很有可能会由于习惯而放弃这项挑战。养成与由志同道合的人组成的社区,共同解决问题的习惯,不是更好吗? + +协作:假设你认为你不善于合作,你喜欢独立完成任务。你知道有一些需要合作才能完成的事情,但是你并没有参与合作的习惯。为了弥补这种情况,你必须养成与他人更多合作的习惯。 + +信息共享:假如说你喜欢将你所做的事以及所知道的东西当作秘密。但是,你知道如果你不共享信息,你也无法从他人那里获取有用的信息。因此,你必须拥有共享信息的习惯。 + +包容性:想象一下,你与你不熟悉的人,或者是在个性、文化还是语言上都与你不同的人一起工作,你会感到不自在。但是,你知道如果你想要成功的话,你必须要和各种各样的人一同工作。那你该如何培养包容的习惯呢? + +适应能力:假设当你所做的事情不再能达到你所希望的结果之后,你往往会拒绝改变。但是,你知道你必须适应这种情况,并重新调整你的努力,那你如何才能养成适应的习惯呢? + +### 习惯是什么? + +在我给出关于上述开放式组织原则的示例之前,我想先解释一下习惯的一些相关特征。 + +* 习惯是重复很多次的行为,最终习惯会成为你下意识的行为。 +* 习惯是自动的并且当时会感觉良好。当一个人在养成习惯后,做习惯行为会使他感觉很好,但是当他跳出习惯做事时,会感到不舒服。或许之后他会再次考虑尝试。 +* 一些习惯是有益的,并且能够节省你很多的能量。大脑只占身体质量的 2%,但是却会消耗 20% 的能量。因为大脑在思考和集中精力上需要消耗很多能量,你可以通过培养下意识的习惯来节省能量。 +* 一些习惯对你有害,因此你渴望改变这些坏习惯。 +* 所有的习惯都会给你回报,即使回报是短暂的。 +* 习惯是基于你熟悉的事情和你知道的东西而形成的,即使你可能并不一定需要这个习惯。 + +### 养成习惯的 3 个步骤 + +1、提示(触发器):首先,提示或者触发器会告诉大脑,进入之前学习的习惯性行为的自动模式之中。这里的提示可以是某件事,比如每天在确定的时间点、在确定的地点,看到一包糖果或者看到电视购物节目,亦或者看到某个特定的人。时间压力会触发你去做例行事项(routine)。在令人崩溃的环境下也会触发例行事项。简而言之,某件事提醒你开始做一些固定的事情。 +2、例行事项(routine):例行事项会被触发。一个例行事项是一系列的身体、心理或者情绪上的表现,可以是非常复杂的,也可以十分简单。诸如与心情相关的一些习惯可以在很短时间内被触发。 +3、奖励:最后一步是奖励,奖励会帮助你的大脑计算一个特定的行为是否值得记住。奖励的范围很广泛,可以是食物或者其他令你感到快乐的东西。 + +### 商业环境中的坏习惯 + +习惯不仅仅是个人行为。所有的组织或多或少都有一些好的坏的制度习惯。然而,一些组织会有先见之明地设计好他们的习惯,而其他组织却不会设计习惯,只是随着竞争或者担心落伍而演变。以下是一些组织的坏习惯示例: + +* 总是晚提交报告 +* 单独工作或者分组合作,然而采用相反的方法才合适 +* 上级对下级施压很大 +* 不关心销售额的下降 +* 由于内卷,销售团队之间不协同合作 +* 让一个健谈的人主导会议 + +### 逐步改变习惯 + +习惯不是一成不变的,你可以改变你的行为习惯。首先,要知道不能一下子改变所有坏习惯。相反,先找到一个关键的习惯进行改变,这会产生小而快速的奖励。请记住,改变了一个关键的习惯后,会产生连锁反应。 + +以下是你可以用来改变任何习惯的四步框架,其中还包括与开放式组织原则相关的习惯。 + +##### 第一步:调整例行事项 + +确定你的习惯循环和例行事项,例如,当面临一件你无法独自解决的重大挑战之时。例行事项(你表现出的行为)最容易确定,所以先从它下手:例如,“在我的组织中,没人愿意和别人讨论问题。大家都会早早地放弃”。决定好你想要调整、改变或者学习的事情:例如:“每次重大挑战到来的时候,我应该和他人讨论一下,并且尝试建立一个志同道合、有能力解决问题的社区。” + +##### 第二步:有奖励的实验 + +奖励是很重要的,因为它会满足你强烈的渴望。但是,我们通常没有意识到强烈的渴望会驱动我们的行为。只有在事后,才会被我们察觉。比方说,开会时很多次你都想尽快离开会议室,避免讨论话题,即使内心清楚你应该弄明白如何解决问题。 + +要了解强烈的渴望是什么,你必须要实验。这可能会花费你几天、几周甚至更久的时间。你必须要感受到触发压力,才能完全识别它。例如,问问你自己当你试图推卸责任时的感受。 + +把你自己当作科学家,进行实验并收集数据。这是你调查研究的步骤: + +1、第一个行为结束后,开始调整后面的行为,看看有没有奖励变化。例如,如果你每次碰到自己无法解决的挑战时都放弃,那么奖励就是不承担责任的解脱。更好的解决方法是与至少一个同样关心该问题的人讨论该问题。关键是要测试不同的假设,以确定哪种渴望驱使你的日常生活。你真的想逃避责任吗? + +2、在经历四至五个不同的例行事项和奖励之后,写下在收到每个奖励后立即想到的前三、四件事。例如,你不会在面对挑战时放弃,而是与其他人讨论这个问题。然后,你决定可以做什么。 + +3、写下你的感受或渴望后,设置一个 15 分钟的计时器。当计时器结束时,问问自己是否依旧渴望。在屈服于渴望之前,请休息一会儿并再考虑一两次这个问题。这会迫使你意识到这一刻,并帮助你稍后回忆起你当时的想法。 + +4、试着记住你在那一刻的想法和感受,然后在例行事项后 15 分钟。如果渴望消失了,你就已经确定了回报是什么。 + +##### 第三步:分析出坏习惯的提示或触发器 + +坏习惯的提示信息很难鉴定,因为通常有太多信息干扰你未定型的行为。要在干扰中鉴别提示,你可以在你的坏习惯出现的时候,观察以下四个因素: + +地点:它在哪里发生?例如:“我最大的挑战在会议中出现。” + +时间:它什么时候出现?例如:“如果我累了,下午的会议就是在浪费时间,因为我没兴趣付出努力。” + +感受:你当时的情绪状态是怎样的?例如:“当我听到这个问题时,我感到压力山大并且很沮丧。” + +人们:当时有谁或者哪一类人在你周围,还是你是独自一人?例如:“在会议上,大多数人似乎对这个问题也不感兴趣。剩下的人主导会议讨论。” + +##### 第四步:制定养成好习惯的计划 + +一旦你确定奖励可以驱动你的行为,某些提示会触发你的坏习惯,那你就可以开始改变你的行动。请跟随以下三个简单的步骤: + +1、首先,规划好习惯的提示。例如:“在会议上,我将发现并将我的注意力集中在重要的问题上。” +2、其次,选择一种能带来相同回报的好行为,但不会遭受你现在坏习惯的惩罚。例如:“我将找到解决这个问题的方法,并考虑我需要哪些资源和技能才能成功。当我创建一个能够成功解决问题的社区时,我会感觉很棒。” +3、最后,让你选择的行为成为深思熟虑的选择,直到你不再需要考虑它,就能下意识地做它了。例如:“我将有意识地关注重要问题,直到我可以不假思索地做到这一点。我会查看近期会议的安排表,这样我就可以提前知道会发生什么。在每次会议开始前和会议期间,我会问自己‘为什么我会来开会’,来确保我集中注意于重要的事情。” + +##### 指定计划来避免忘记必做事项 + +为了成功地开始做你经常忘记的事情,请按照以下步骤: + +1、 计划你想要做什么 +2、 决定何时完成 +3、 将计划分为必要的小任务 +4、 用计时器或者日常计划进行提示,并开始每项任务 +5、 按计划完成每个任务 +6、 按时完成后就奖励自己 + +### 习惯的改变 + +习惯的改变需要很长时间。有时候互助小组会帮助你改变习惯。有时候,在低压力环境中,进行大量的练习和角色预演能够更好地帮助你改变。想要找到有效的奖励,你需要不断的尝试。 + +有时,习惯是更重要、更深层次问题的反映。在这些情况下,你可能需要专业帮助。但是,如果你有改变的愿望,并接受在此过程中会有一些小失败,你就可以控制任何习惯。 + +在本文中,我使用了使用 *提示-例行事项-奖励* 三个过程的社区开发示例。它同样可以应用于其他开放式组织的原则。我希望这篇文章能让你思考如何通过了解习惯如何运作、采取措施改变习惯,以及制定计划避免忘记你想做的事情,来管理习惯。无论是开放式组织原则,还是其他任何东西,你现在都可以判断出提示、常规和奖励。当提示出现时,这将引导你制定改变习惯的计划。 + +在我的下一篇文章中,我将通过 Art Markman 教授在《Smart Thinking》中观点来继续讨论习惯。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles + +作者:[Ron McFarland][a] +选题:[lkxed][b] +译者:[Donkey-Hao](https://github.com/Donkey-Hao) +校对:[校对者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/coffee_tea_selfcare_wfh_porch_520.png +[2]: https://theopenorganization.org/definition/open-organization-definition/ From 1d3ca3eb26dd5f1ce7ec90d163b18e7483ad068f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 22 Oct 2022 08:50:51 +0800 Subject: [PATCH 1618/3123] RP @geekpi https://linux.cn/article-15163-1.html --- ...to Update Google Chrome on Ubuntu Linux.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221010 How to Update Google Chrome on Ubuntu Linux.md (67%) diff --git a/translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md b/published/20221010 How to Update Google Chrome on Ubuntu Linux.md similarity index 67% rename from translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md rename to published/20221010 How to Update Google Chrome on Ubuntu Linux.md index 54f15a7e3b..8c2ee3c263 100644 --- a/translated/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md +++ b/published/20221010 How to Update Google Chrome on Ubuntu Linux.md @@ -3,13 +3,16 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15163-1.html" -如何在 Ubuntu Linux 上更新 Google Chrome +如何在 Ubuntu Linux 上更新谷歌 Chrome ====== -你设法在你的 Ubuntu 系统上安装了 Google Chrome 浏览器。现在你想知道如何让浏览器保持更新。 + +![](https://img.linux.net.cn/data/attachment/album/202210/22/085013gihsi4rtmpkmj4yb.png) + +> 你设法在你的 Ubuntu 系统上安装了谷歌 Chrome 浏览器。现在你想知道如何让浏览器保持更新。 在 Windows 和 macOS 上,当 Chrome 上有可用更新时,你会在浏览器中收到通知,你可以从浏览器中点击更新选项。 @@ -19,17 +22,17 @@ Linux 中的情况有所不同。你不会从浏览器更新 Chrome。你要使 ![当有新版本的 Chrome 可用时,Ubuntu 会发送通知][1] -你只需单击立即安装按钮,在被要求时输入你的帐户密码并将 Chrome 更新到新版本。 +你只需单击“立即安装Install Now”按钮,在被提示时输入你的帐户密码并将 Chrome 更新到新版本。 -让我告诉你为什么会在系统级别看到更新,以及如何在命令行中更新 Google Chrome。 +让我告诉你为什么会在系统级别看到更新,以及如何在命令行中更新谷歌 Chrome。 ### 方法 1:使用系统更新更新谷歌浏览器 -你最初是如何安装 Chrome 的?你从 [Chrome 网站][2]获得了 deb 安装程序文件,并使用它来[在 Ubuntu 上安装 Chrome][3]。 +你最初是如何安装 Chrome 的?你从 [Chrome 网站][2] 获得了 deb 安装程序文件,并使用它来 [在 Ubuntu 上安装 Chrome][3]。 -当你这样做时,谷歌会在你系统的源列表中添加一个仓库条目。这样,你的系统就会信任来自 Google 仓库的包。 +当你这样做时,谷歌会在你系统的源列表中添加一个仓库条目。这样,你的系统就会信任来自谷歌仓库的包。 -![Google Chrome 存储库添加到 Ubuntu 系统][4] +![谷歌 Chrome 存储库添加到 Ubuntu 系统][4] 对于添加到系统中的所有此类条目,包更新通过 Ubuntu 更新程序集中进行。 @@ -37,7 +40,7 @@ Linux 中的情况有所不同。你不会从浏览器更新 Chrome。你要使 ![Chrome 更新可通过系统更新与其他应用一起使用][5] -**单击“立即安装”按钮并在要求时输入你的密码**。很快,系统将安装所有可升级的软件包。 +**单击“立即安装Install Now”按钮并在要求时输入你的密码**。很快,系统将安装所有可升级的软件包。 根据更新偏好,通知可能不是立即的。如果需要,你可以手动运行更新程序工具并查看适用于你的 Ubuntu 系统的更新。 @@ -57,15 +60,15 @@ sudo apt --only-upgrade install google-chrome-stable 第一条命令更新包缓存,以便你的系统知道可以升级哪些包。 -第二条命令[仅更新单个包][7],即 Google Chrome(安装为 google-chrome-stable)。 +第二条命令 [仅更新单个包][7],即谷歌 Chrome(安装为 `google-chrome-stable`)。 ### 总结 如你所见,Ubuntu 比 Windows 更精简。你会随其他系统更新一起更新 Chrome。 -顺便一提,如果你对它不满意,你可以了解[从 Ubuntu 中删除 Google Chrome][8]。 +顺便一提,如果你对它不满意,你可以了解 [从 Ubuntu 中删除 Google Chrome][8]。 -Chrome 是一款不错的浏览器。你可以通过[使用 Chrome 中的快捷方式][9]来试验它,因为它使浏览体验更加流畅。 +Chrome 是一款不错的浏览器。你可以通过 [使用 Chrome 中的快捷方式][9] 来试验它,因为它使浏览体验更加流畅。 在 Ubuntu 上享受 Chrome! @@ -76,7 +79,7 @@ via: https://itsfoss.com/update-google-chrome-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/) 荣誉推出 From 99753a45cca986809eb63155541b815bdee15b45 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 22 Oct 2022 10:51:00 +0800 Subject: [PATCH 1619/3123] =?UTF-8?q?=E8=B6=85=E6=9C=9F=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @hwlife @Donkey-Hao --- ...to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md | 2 +- .../20210530 Complete Guide to Configuring SSH in Ubuntu.md | 2 +- ...220609 A guide to container orchestration with Kubernetes.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md b/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md index ee23f126fe..2a9a7650f4 100644 --- a/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md +++ b/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/nvidia-linux-mint/) [#]: author: (Ankush Das https://itsfoss.com/author/ankush/) [#]: collector: (lujun9972) -[#]: translator: (hwlife) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) diff --git a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md index b66a99ec02..1ba15f11d2 100644 --- a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md +++ b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/set-up-ssh-ubuntu/) [#]: author: (Chris Patrick Carias Stas https://itsfoss.com/author/chris/) [#]: collector: (lujun9972) -[#]: translator: (hwlife) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) diff --git a/sources/tech/20220609 A guide to container orchestration with Kubernetes.md b/sources/tech/20220609 A guide to container orchestration with Kubernetes.md index 3db1778c50..6050ced755 100644 --- a/sources/tech/20220609 A guide to container orchestration with Kubernetes.md +++ b/sources/tech/20220609 A guide to container orchestration with Kubernetes.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/container-orchestration-kubernetes" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: "Donkey" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3656495f2c663f5dcc4976b19e2fae69d03bb111 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Sat, 22 Oct 2022 11:34:14 +0800 Subject: [PATCH 1620/3123] Translated by chai001125 --- ...on any operating system with VirtualBox.md | 325 ------------------ ...on any operating system with VirtualBox.md | 264 ++++++++++++++ 2 files changed, 264 insertions(+), 325 deletions(-) delete mode 100644 sources/tech/20210629 Try Linux on any operating system with VirtualBox.md create mode 100644 translated/tech/20210629 Try Linux on any operating system with VirtualBox.md diff --git a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md deleted file mode 100644 index 9be0476542..0000000000 --- a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md +++ /dev/null @@ -1,325 +0,0 @@ -[#]: subject: (Try Linux on any operating system with VirtualBox) -[#]: via: (https://opensource.com/article/21/6/try-linux-virtualbox) -[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) -[#]: collector: (lujun9972) -[#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Try Linux on any operating system with VirtualBox -====== -VirtualBox helps anyone—even a command line novice—set up a virtual -machine. -![Person programming on a laptop on a building][1] - -VirtualBox makes it easy for anyone to try Linux. You don't even need experience with the command line to set up a simple virtual machine to tinker with Linux. I'm kind of a power user when it comes to virtual machines, but this article will show even novices how to virtualize a Linux system. In addition, it provides an overview of how to run and install a Linux system for testing purposes with the open source hypervisor [VirtualBox][2]. - -### Terms - -Before starting, you should understand the difference between the two operating systems (OSes) in this setup: - - * **Host system:** This is your actual OS on which you install VirtualBox. - * **Guest system:** This is the system you want to run virtualized on top of your host system. - - - -Both systems, host and guest, must interact with each other when it comes to input/output, networking, file access, clipboard, audio, and video. - -In this tutorial, I'll use Windows 10 as the _host system_ and [Fedora 33][3] as the _guest system_. - -### Prerequisites - -When we talk about virtualization, we actually mean [hardware-assisted virtualization][4]. Hardware-assisted virtualization requires a compatible CPU. Almost every ordinary x86 CPU from the last decade comes which this feature. AMD calls it **AMD-V,** and Intel calls it **VT-x**. The virtualization feature adds some additional CPU instructions, and it can be enabled or disabled in the BIOS. - -To start with virtualization: - - * Make sure that AMD-V or VT-x is enabled in the BIOS. - * Download and install [VirtualBox][5]. - - - -### Prepare the virtual machine - -Download the image of the Linux distribution you want to try out. It does not matter if it's a 32-bit or 64-bit OS image. You can even start a 64-bit OS image on a 32-bit host system (with limitations in memory usage, of course) and vice versa. - -> **Considerations:** If possible, choose a Linux distribution that comes with the [Logical Volume Manager][6] (LVM). LVM decouples the filesystem from the physical hard drives. This allows you to increase the size of your guest system's hard drive if you are running out of space. - -Now, open VirtualBox and click on the yellow **New** button: - -![VirtualBox New VM][7] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Next, configure how much memory the guest OS is allowed to use: - -![Set VM memory size][9] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -My recommendation: **Don't skimp on memory!** When memory is low, the guest system will start paging memory from RAM to the hard drive, worsening the system's performance and responsiveness extremely. If the underlying host system starts paging, you might not notice. For a Linux workstation system with a graphical desktop environment, I recommend at least 4GB of memory. - -Next, create the hard disk: - -![Create virtual hard disk][10] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Choose the default option, **VDI**: - -![Selecting hard disk file type][11] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -In this window, I recommend choosing **dynamically allocated**, as this allows you to increase the size later. If you choose **fixed size**, the disk will be probably faster, but you won't be able to modify it: - -![Dynamically allocating hard disk][12] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -With a Linux distribution that uses LVM, you can start with a small hard disk. If you are running out of space, you can increase it on demand. - -> **Note**: Fedora's website says [it requires][13] a minimum of 20GB free disk space. I highly recommend you stick to that specification. I chose 8GB here so that I can demonstrate how to increase it later. If you are new to Linux or inexperienced with the command line, choose 20GB. - -![Setting hard disk size][14] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -After creating the hard drive, select the newly created virtual machine from the list in VirtualBox's main window and click on **Settings**. In the Settings menu, go to **System** and select the **Processor** tab. By default, VirtualBox assigns only one CPU core to the guest system. On a modern multicore CPU, it should not be any problem to assign at least two cores, which will speed up the guest system significantly: - -![Assigning cores to guest system][15] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -#### Network adapter setup - -The next thing to take care of is the network setup. By default, VirtualBox creates one NAT connection, which should be OK for most use cases: - -![Network settings][16] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -You can create more than one network adapter. Here are the most common types: - - * **NAT:** The NAT adapter performs a [network address translation][17]. From the outside, it looks like the host and the guest system use the same IP address. You are not able to access the guest system from within the host system over the network. (Although you could define [port forwarding][18] to access certain services.) When your host system has access to the internet, the guest system will have access, too. NAT requires no further configuration. - * _Choose **NAT** if you only need internet access for the guest system._ - * **Bridged adapter:** Here, the guest and the host system share the same physical Ethernet device. Both systems will have independent IP addresses. From the outside, it looks like there are two separate systems in the network, both sharing the same physical Ethernet adapter. This setup is more flexible but requires more configuration. - * _Choose **Bridged adapter** if you want to share the guest system's network services._ - * **Host-only adapter:** In this configuration, the guest system can only talk to the host or other guest systems running on the same host. The host system can also connect to the guest system. There is no internet nor physical network access for the guest. - * _Choose **Host-only adapter** for advanced security._ - - - -#### Assign the OS image - -Navigate to **Storage** and select the virtual optical drive. Click on the **CD icon** on the right, and select **Choose a disk file…**. Then assign the downloaded Linux distribution image you want to install: - -![Assigning OS image][19] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -### Install Linux - -The virtual machine is now configured. Leave the **Settings** menu and go back to the main window. Click on the **Green arrow** (i.e., the start button). The virtual machine will start up and boot from the virtual optical drive, and you will find yourself in your Linux distribution's installer: - -![VirtualBox Fedora installer][20] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -#### Partitioning - -The installer will ask you for partitioning information during the installation process. Choose **Custom**: - -![Selecting Custom partition configuration][21] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -> **Note:** I'm assuming you're creating this virtual machine just for testing purposes. Also you don't need to care about hibernation for your guest system, as this function is implicitly provided by VirtualBox. Therefore, you can omit the swap partition to save disk space on your host system. Keep in mind that you can add a swap partition later if needed. In [_An introduction to swap space on Linux systems_][22], David Both explains how to add a swap partition and choose the correct size. - -Fedora 33 and later offer a [zram][23] partition, a compressed part of the memory used for paging and swap. The zram partition is resized on demand, and it is much faster than a hard disk swap partition. - -To keep it simple, just add these two mount points: - -![Adding mount points][24] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Apply the changes and proceed with the installation. - -### Install VirtualBox Guest Additions - -After you finish the installation, boot from the hard drive and log in. Now you can install VirtualBox Guest Additions, which include special device drivers and system applications that provide: - - * Shared clipboard - * Shared folders - * Better performance - * Freely scalable window size - - - -To install them, click on the top menu in **Devices** and select **Insert Guest Additions CD image…**: - -![Selecting Guest Additions CD image][25] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -On most Linux distributions, the CD image with the Guest Additions is mounted automatically, and they are available in the file browser. Fedora will ask you if you want to run the installation script. Click **Run** and enter your credentials to grant the process root rights: - -![Enabling Guest Additions autorun][26] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -When the installation is finished, reboot the system. - -### LVM: Enlarge disk space - -Creating an 8GB hard disk was a dumb decision, as Fedora quickly starts signaling that it is running out of space: - -![Fedora hard disk running out of space][27] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -As I mentioned, a disk space of 20GB is recommended, and 8GB is the _absolute_ minimum for a Fedora 33 installation to boot up. A fresh installation with no additional software (except the VirtualBox Guest Additions) takes nearly the whole 8GB of available space. Don't open the GNOME Software center or anything else that might download files from the internet in this condition. - -Luckily, I chose to use LVM, so I can easily fix this mishap. - -To increase the filesystem's space within the virtual machine, you must first increase the virtual hard drive on your host system. - -Shut down the virtual machine. If your host system is running Windows, open a command prompt and navigate to `C:\Program Files\Oracle\VirtualBox`. Resize the disk to 12,000MB with the following command: - - -``` -`VBoxManage.exe modifyhd "C:\Users\StephanA\VirtualBox VMs\Fedora_33\Fedora_33.vdi" --resize 12000` -``` - -Boot the virtual machine and open the **Disks** utility. You should see the newly created unassigned free space. Select **Free Space** and click the **+** button: - -![Free space before adding][28] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Now, create a new partition. Select the amount of free space you want to use: - -![Creating a new partition and setting size][29] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -You don't want to create a filesystem or anything else on your new partition, so select **Other**: - -![Selecting "other" for partition volume type][30] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Select **No Filesystem**: - -![Setting "No filesystem" on new partition][31] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -The overview should now look like this: - -![VirtualBox after adding new partition][32] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -There is a new partition device, **/dev/sda3**. Check your LVM volume group by typing `vgscan`: - -![Checking LVM volume group by typing vgscan:][33] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Now you have everything you need. Extend the volume group in the new partition: - - -``` -`vgextend fedora_localhost-live /dev/sda3` -``` - -![vgextend command output][34] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Because the volume group is larger, you can increase the size of the logical volume. The command `vgdisplay` shows that it has 951 free extends available: - -![vgdisplay command output][35] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Increase the logical volume by 951 extends: - - -``` -`lvextend -l+951 /dev/mapper/fedora_localhost--live-root` -``` - -![lvextend command output][36] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -After you increase the logical volume, the last thing to do is to resize the filesystem: - - -``` -`resize2fs /dev/mapper/fedora_localhost--live-root` -``` - -![resize2fs command output][37] - -(Stephan Avenwedde, [CC BY-SA 4.0][8]) - -Done! Check the **Disk Usage Analyzer**, and you should see that the extended space is available for the filesystem. - -### Summary - -With a virtual machine, you can check how a piece of software behaves with a specific operating system or a specific version of an operating system. Besides that, you can also try out any Linux distribution you want to test without worrying about breaking your system. For advanced users, VirtualBox offers a wide range of possibilities when it comes to testing, networking, and simulation. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/try-linux-virtualbox - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_code_programming_laptop.jpg?itok=ormv35tV (Person programming on a laptop on a building) -[2]: https://www.virtualbox.org/ -[3]: https://getfedora.org/ -[4]: https://en.wikipedia.org/wiki/Hardware-assisted_virtualization -[5]: https://www.virtualbox.org/wiki/Downloads -[6]: https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) -[7]: https://opensource.com/sites/default/files/uploads/virtualbox_new_vm.png (VirtualBox New VM) -[8]: https://creativecommons.org/licenses/by-sa/4.0/ -[9]: https://opensource.com/sites/default/files/uploads/virtualbox_memory_size_1.png (Set VM memory size) -[10]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_1.png (Create virtual hard disk) -[11]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_2.png (Selecting hard disk file type) -[12]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_3.png (Dynamically allocating hard disk) -[13]: https://getfedora.org/en/workstation/download/ -[14]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_4.png (Setting hard disk size) -[15]: https://opensource.com/sites/default/files/uploads/virtualbox_cpu_settings.png (Assigning cores to guest system) -[16]: https://opensource.com/sites/default/files/uploads/virtualbox_network_settings2.png (Network settings) -[17]: https://en.wikipedia.org/wiki/Network_address_translation -[18]: https://www.virtualbox.org/manual/ch06.html#natforward -[19]: https://opensource.com/sites/default/files/uploads/virtualbox_choose_image3.png (Assigning OS image) -[20]: https://opensource.com/sites/default/files/uploads/virtualbox_running.png (VirtualBox Fedora installer) -[21]: https://opensource.com/sites/default/files/uploads/virtualbox_partitioning_1.png (Selecting Custom partition configuration) -[22]: https://opensource.com/article/18/9/swap-space-linux-systems -[23]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM -[24]: https://opensource.com/sites/default/files/uploads/virtualbox_partitioning_2.png (Adding mount points) -[25]: https://opensource.com/sites/default/files/uploads/virtualbox_guest_additions_2.png (Selecting Guest Additions CD image) -[26]: https://opensource.com/sites/default/files/uploads/virtualbox_guest_additions_autorun.png (Enabling Guest Additions autorun) -[27]: https://opensource.com/sites/default/files/uploads/virtualbox_disk_usage_1.png (Fedora hard disk running out of space) -[28]: https://opensource.com/sites/default/files/uploads/virtualbox_disks_before.png (Free space before adding) -[29]: https://opensource.com/sites/default/files/uploads/virtualbox_new_partition_1.png (Creating a new partition and setting size) -[30]: https://opensource.com/sites/default/files/uploads/virtualbox_new_partition_2.png (Selecting "other" for partition volume type) -[31]: https://opensource.com/sites/default/files/uploads/virtualbox_no_partition_3.png (Setting "No filesystem" on new partition) -[32]: https://opensource.com/sites/default/files/uploads/virtualbox_disk_after.png (VirtualBox after adding new partition) -[33]: https://opensource.com/sites/default/files/uploads/virtualbox_vgscan.png (Checking LVM volume group by typing vgscan:) -[34]: https://opensource.com/sites/default/files/uploads/virtualbox_vgextend_2.png (vgextend command output) -[35]: https://opensource.com/sites/default/files/uploads/virtualbox_vgdisplay.png (vgdisplay command output) -[36]: https://opensource.com/sites/default/files/uploads/virtualbox_lvextend.png (lvextend command output) -[37]: https://opensource.com/sites/default/files/uploads/virtualbox_resizefs.png (resize2fs command output) diff --git a/translated/tech/20210629 Try Linux on any operating system with VirtualBox.md b/translated/tech/20210629 Try Linux on any operating system with VirtualBox.md new file mode 100644 index 0000000000..cd6b27a477 --- /dev/null +++ b/translated/tech/20210629 Try Linux on any operating system with VirtualBox.md @@ -0,0 +1,264 @@ +[#]: subject: (Try Linux on any operating system with VirtualBox) +[#]: via: (https://opensource.com/article/21/6/try-linux-virtualbox) +[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) +[#]: collector: (lujun9972) +[#]: translator: (chai001125) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +使用 VirtualBox 安装 Linux 虚拟机 +====== +VirtualBox 能帮助任何人(即使是命令行新手)安装一个新的虚拟机。 + +![Person programming on a laptop on a building][1] + +VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要有使用命令行的经验,就可以自己安装一个简单的 Linux 虚拟机。在虚拟机方面,我精通很多东西,但这篇文章将向新手展示如何安装一个 Linux 虚拟机。此外,这篇文章还概述了如何使用开源虚拟机管理程序 [VirtualBox][2] ,来运行以及安装一个测试目的的 Linux 系统。 + +### 一些术语 + +在开始之前,你需要了解在本安装教程中的两个操作系统(OS)之间的区别: + + * **主机系统(host system):** 这指的是你安装 VirtualBox 的操作系统(即本机的操作系统)。 + * **访客系统(guest system):** 这指的是你想要在主机系统之上运行的虚拟化系统。 + +在输入/输出、网络、文件访问、剪贴板、音频和视频方面,主机系统和访客系统都必须能够交互。 + +在本教程中,我将使用 Windows 10 作为 _主机系统_,[Fedora 33][3] 作为 _访客系统_。 + +### 安装前的准备 + +当我们谈论虚拟化时,实际上,我们指的是 [硬件辅助虚拟化][4]。硬件辅助虚拟化需要兼容的 CPU。过去十年来,几乎每个普通的 x86 CPU 都有这一功能。AMD 公司称这样的 x86 CPU 是具有 **AMD 虚拟化技术(AMD-V)** 的处理器,英特尔公司则称其是具有 **Intel 虚拟化技术(VT-x)** 的处理器。虚拟化功能增加了一些额外的 CPU 指令,你可以在 BIOS 中启用或禁用这些指令。 + +在安装虚拟机之前: + + * 确保在 BIOS 中启用了虚拟化技术(AMD-V 或 VT-x)。 + * 下载并安装好 [VirtualBox][5]。 + +### 准备虚拟机 + +下载你要用的 Linux 发行版的镜像文件。下载 32 位还是 64 位的操作系统映像都没有关系,因为在 32 位的主机系统上也可以启动 64 位的操作系统映像(当然内存的使用会受限),反之亦然。 + +> **注意事项:** 如果可以的话,请下载附带有 [逻辑卷管理器][6](LVM)的 Linux 发行版。LVM 会将文件系统与物理硬盘驱动器解耦。如果你的空间不足时,这能够让你增加访客系统的硬盘驱动器的大小。 + +现在,打开 VirtualBox,然后单击黄色的**新建**按钮: + +![VirtualBox New VM][7] + +接下来,配置访客操作系统允许使用多少内存: + +![Set VM memory size][9] + +我的建议是:**不要吝啬访客操作系统的内存!** +当访客操作系统的内存不足时,访客系统将开始从随机存取存储器(RAM)转换到硬盘驱动器(hard drive),进行内存的分页,这样会极大地恶化系统的性能和响应能力。如果底层的主机系统开始分页,你很可能不会注意到。对于具有图形化桌面环境的 Linux 工作站系统,我建议至少分配 4GB 内存。 + +接下来,创建虚拟磁盘: + +![Create virtual hard disk][10] + +虚拟磁盘的格式选择默认的选项 **VDI(VirtualBox 磁盘映像)** 就可以了: + +![Selecting hard disk file type][11] + +在以下的窗口中,我建议选择**动态分配**,因为这允许你在之后增加虚拟磁盘的大小。如果你选择了**固定大小**,磁盘的速度可能会更快,但你将无法修改虚拟磁盘的大小了: + +![Dynamically allocating hard disk][12] + +建议你使用附带有逻辑卷管理器(LVM)的 Linux 发行版,这样你就可以先创建一个较小的硬盘。如果之后你的访客系统的空间快用完了,你可以按需增加磁盘的大小。 + +> **注意**:我选择的访客系统为 Fedora,在 Fedora 的官网说明:[Fedora 至少需要分配 20GB 的空闲磁盘空间][13]。我强烈建议你遵守该规范。在这里,我选择了 8GB,以便稍后演示如何用命令行增加磁盘空间。如果你是 Linux 新手,或者对命令行没有经验,请依旧选择 20GB。 + +![Setting hard disk size][14] + +创建好硬盘驱动器后,从 VirtualBox 主窗口的列表中选择新创建的虚拟机,然后单击**设置**。在设置菜单中,点击**系统**,然后选择**处理器**标签。默认情况下,VirtualBox 只向访客系统分配一个 CPU 内核。在现代多核 CPU 计算机上,分配至少两个内核是没有任何问题的,这能显著地加快访客系统的速度: + +![Assigning cores to guest system][15] + +#### 设置网络适配器 + +接下来,要处理的是网络设置。默认情况下, VirtualBox 会创建一个 NAT 连接,这对于大多数情况来说,是没有问题、不用做其他更改的: + +![Network settings][16] + +你也可以创建多个网络适配器。以下是网络适配器最常见的类型: + * **NAT:** NAT适配器能自动执行 [网络地址转换][17]。从外部看,主机和访客系统使用着相同的 IP 地址。你无法通过网络从主机系统内访问访客系统。(尽管,你也可以通过定义 [端口转发][18],来访问某些服务。)当你的主机系统可以访问互联网时,则你的访客系统也可以访问互联网。NAT 不再需要进一步的配置。 + * _如果你只需要让访客系统接入互联网就可以的话,请选择 **NAT**。_ + * **桥接适配器(Bridged adapter):** 在此配置中,访客系统和主机系统可以共享相同的物理以太网设备。这两个系统都将拥有独立的 IP 地址。从外部看,网络中会有两个独立的系统,它们共享相同的物理以太网适配器。这种设置更灵活,但需要更多的配置。 + * _如果你想要共享访客系统的网络服务的话,请选择 **桥接适配器**。_ + * **仅限主机的适配器(Host-only adapter):** 在此配置中,访客系统只能与主机,或在同一主机上运行的其他访客系统,相互通信。主机系统也可以连接到访客系统。但访客系统不能接入互联网或物理网络。 + * _如果你想要获得高安全性,请选择 **仅限主机的适配器**。_ + +#### 分配操作系统映像 + +在设置菜单中,点击**存储**,然后选择虚拟光盘驱动器。单击右侧的 **光盘图标**,然后点击**选择一个磁盘文件...**,然后分配你想要安装的、已下载的 Linux 发行版映像: + +![Assigning OS image][19] + +### 安装 Linux + +现在,就已经配置好了虚拟机。右上角关闭**设置**菜单,返回主窗口。点击**绿色箭头**(即“开始”按钮)。虚拟机将从虚拟光盘驱动器启动,你将发现你已经进入到 Linux 发行版的安装程序中: + +![VirtualBox Fedora installer][20] + +#### 设置分区 + +安装程序将在安装过程中要求你提供分区信息。选择**自定义(Custom)**: + +![Selecting Custom partition configuration][21] + +> **注意:** 我假设,你创建这一虚拟机的目的是为了测试。此外,你也无需关心访客系统的休眠,因为此功能会由 VirtualBox 来隐式地提供。因此,你可以省略交换分区,以节省主机系统的磁盘空间。请记住,如果你需要的话,你可以稍后自己添加交换分区。在 [Linux 系统交换空间的介绍][22] 这篇文章中,作者 David Both 进一步解释了如何添加交换分区,并选择交换分区正确的大小。 + +Fedora 33 及之后更高的版本提供了一个 [zram 分区][23],zram 分区可以用于存放分页和交换、并经过压缩过后的硬盘数据。zram 分区可以按需地调整大小,并且它比硬盘交换分区快得多。 + +为了简单,我们只添加以下两个挂载点(mount point): + +![Adding mount points][24] + +保存更改,接下来我们继续安装。 + +### 安装 VirtualBox 增强功能 Guest Additions + +完成安装后,从硬盘驱动器启动,并登录到虚拟机。现在,你可以安装 VirtualBox 增强功能,其中包括特殊的设备驱动程序和系统应用程序,他们能提供以下内容: + + * 共享剪贴板 + * 共享文件夹 + * 更好的性能 + * 可自由扩展的窗口大小 + +点击顶部菜单栏的**设备**,然后选择**插入增强功能的CD映像...**,来安装 VirtualBox 增强功能: + +![Selecting Guest Additions CD image][25] + +在大多数 Linux 发行版上,带有增强功能的CD映像会自动挂载,并且能够在 File Browser 文件管理器中找到。Fedora 会问你是否要运行安装脚本。单击**运行**,并授予该安装进程 root 权限: + +![Enabling Guest Additions autorun][26] + +安装完成后,需要重新启动系统。 + +### LVM:扩大磁盘空间 + +我在之前给 Fedora 虚拟机分配了 8GB 硬盘空间,是一个愚蠢的决定,因为 Fedora 很快就会告警空间不足: + +![Fedora hard disk running out of space][27] + +正如我提到的,Fedora 官网建议安装时分配 20GB 的磁盘空间。因为 8GB 是 Fedora 33 安装启动就需要的最少空间。没有新安装其他软件(除了 VirtualBox Guest Additions),启动项就几乎占用了整个 8GB 的可用空间。这时候,不要打开 GNOME 软件中心或任何其他可能从互联网下载文件的东西。 + +幸运的是,我选择了附带有 LVM 的 Fedora,这样我就可以用命令行轻松地修复这个问题。 + +要增加虚拟机中文件系统的空间,你必须先增加主机系统上分配的虚拟硬盘驱动器。 + +关闭虚拟机。如果你的主机系统运行的是 Windows,请打开终端,并进入到 `C:\Program Files\Oracle\VirtualBox` 目录下。使用以下命令,将磁盘大小扩大到 12,000MB: + +``` +`VBoxManage.exe modifyhd "C:\Users\StephanA\VirtualBox VMs\Fedora_33\Fedora_33.vdi" --resize 12000` +``` + +然后启动虚拟机,并打开**磁盘**的利用。你可以看到你刚刚新创建且未分配的可用空间。选择**可用空间**,然后单击 **+** 按钮: + +![Free space before adding][28] + +现在,创建一个新的分区。选择你要使用的可用空间的大小: + +![Creating a new partition and setting size][29] + +You don't want to create a filesystem or anything else on your new partition, so select **Other**: +如果你不想在新分区上创建文件系统或任何其他内容,请选择**其他**: + +![Selecting "other" for partition volume type][30] + +选择**无文件系统**: + +![Setting "No filesystem" on new partition][31] + +现在,磁盘空间应该如下图所示: + +![VirtualBox after adding new partition][32] + +虚拟机有了一个新的分区设备:**/dev/sda3**。通过输入 `vgscan` ,来检查你的 LVM 卷组,找到 **fedora_localhost_live** 这一LVM 卷组 : + +![Checking LVM volume group by typing vgscan:][33] + +现在,已经万事俱备了。在新分区 **/dev/sda3** 中扩展卷组 **fedora_localhost_live**: + +``` +`vgextend fedora_localhost-live /dev/sda3` +``` + +![vgextend command output][34] + +由于卷组较大,你可以增加逻辑卷的大小。命令 `vgdisplay` 显示了共有 951 个可用的空闲扩展: + +![vgdisplay command output][35] + +将逻辑卷增加 951 个扩展: + +``` +`lvextend -l+951 /dev/mapper/fedora_localhost--live-root` +``` + +![lvextend command output][36] + +在增加了逻辑卷后,最后一件事就是调整文件系统的大小: + +``` +`resize2fs /dev/mapper/fedora_localhost--live-root` +``` + +![resize2fs command output][37] + +这样磁盘空间就增加完成了!检查**磁盘使用分析器**,你就可以看到扩展空间已经可用于文件系统了。 + +### 总结 + +使用虚拟机,你可以检查在一个特定的操作系统或一个特定版本的操作系统,软件是如何操作的。除此之外,你还可以尝试任何想测试的 Linux 发行版,而不必担心系统损坏。对于高级用户来说,VirtualBox 在测试、网络和模拟方面提供了广泛的可能性。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/try-linux-virtualbox + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_code_programming_laptop.jpg?itok=ormv35tV (Person programming on a laptop on a building) +[2]: https://www.virtualbox.org/ +[3]: https://getfedora.org/ +[4]: https://en.wikipedia.org/wiki/Hardware-assisted_virtualization +[5]: https://www.virtualbox.org/wiki/Downloads +[6]: https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) +[7]: https://opensource.com/sites/default/files/uploads/virtualbox_new_vm.png (VirtualBox New VM) +[8]: https://creativecommons.org/licenses/by-sa/4.0/ +[9]: https://opensource.com/sites/default/files/uploads/virtualbox_memory_size_1.png (Set VM memory size) +[10]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_1.png (Create virtual hard disk) +[11]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_2.png (Selecting hard disk file type) +[12]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_3.png (Dynamically allocating hard disk) +[13]: https://getfedora.org/en/workstation/download/ +[14]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_4.png (Setting hard disk size) +[15]: https://opensource.com/sites/default/files/uploads/virtualbox_cpu_settings.png (Assigning cores to guest system) +[16]: https://opensource.com/sites/default/files/uploads/virtualbox_network_settings2.png (Network settings) +[17]: https://en.wikipedia.org/wiki/Network_address_translation +[18]: https://www.virtualbox.org/manual/ch06.html#natforward +[19]: https://opensource.com/sites/default/files/uploads/virtualbox_choose_image3.png (Assigning OS image) +[20]: https://opensource.com/sites/default/files/uploads/virtualbox_running.png (VirtualBox Fedora installer) +[21]: https://opensource.com/sites/default/files/uploads/virtualbox_partitioning_1.png (Selecting Custom partition configuration) +[22]: https://opensource.com/article/18/9/swap-space-linux-systems +[23]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM +[24]: https://opensource.com/sites/default/files/uploads/virtualbox_partitioning_2.png (Adding mount points) +[25]: https://opensource.com/sites/default/files/uploads/virtualbox_guest_additions_2.png (Selecting Guest Additions CD image) +[26]: https://opensource.com/sites/default/files/uploads/virtualbox_guest_additions_autorun.png (Enabling Guest Additions autorun) +[27]: https://opensource.com/sites/default/files/uploads/virtualbox_disk_usage_1.png (Fedora hard disk running out of space) +[28]: https://opensource.com/sites/default/files/uploads/virtualbox_disks_before.png (Free space before adding) +[29]: https://opensource.com/sites/default/files/uploads/virtualbox_new_partition_1.png (Creating a new partition and setting size) +[30]: https://opensource.com/sites/default/files/uploads/virtualbox_new_partition_2.png (Selecting "other" for partition volume type) +[31]: https://opensource.com/sites/default/files/uploads/virtualbox_no_partition_3.png (Setting "No filesystem" on new partition) +[32]: https://opensource.com/sites/default/files/uploads/virtualbox_disk_after.png (VirtualBox after adding new partition) +[33]: https://opensource.com/sites/default/files/uploads/virtualbox_vgscan.png (Checking LVM volume group by typing vgscan:) +[34]: https://opensource.com/sites/default/files/uploads/virtualbox_vgextend_2.png (vgextend command output) +[35]: https://opensource.com/sites/default/files/uploads/virtualbox_vgdisplay.png (vgdisplay command output) +[36]: https://opensource.com/sites/default/files/uploads/virtualbox_lvextend.png (lvextend command output) +[37]: https://opensource.com/sites/default/files/uploads/virtualbox_resizefs.png (resize2fs command output) From 07fbf6a1a51d61958592c4d5ce6d52640c403822 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 22 Oct 2022 12:00:47 +0800 Subject: [PATCH 1621/3123] RP @chai001125 https://linux.cn/article-15164-1.html --- ...Bash- Command Not Found- Error in Linux.md | 89 +++++++++++-------- 1 file changed, 51 insertions(+), 38 deletions(-) rename {translated/tech => published}/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md (55%) diff --git a/translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md similarity index 55% rename from translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md rename to published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md index 1127ff2f32..902989fbbc 100644 --- a/translated/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md +++ b/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md @@ -3,36 +3,36 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lujun9972" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15164-1.html" -解决 Linux 中的“Bash: Command Not Found”报错 +解决 Linux 中的 “Bash: Command Not Found” 报错 ====== -_**本新手教程展示了在 Debian、Ubuntu 和其他的 Linux 发行版上如何解决 Bash: command not found 这一报错。**_ +> 本新手教程展示了在 Debian、Ubuntu 和其他的 Linux 发行版上如何解决 “Bash: command not found” 这一报错。 -当你在 Linux 中使用命令时,你希望得到终端输出的结果。但有时候,你会遇到终端显示“未找到命令(command not found)”这一报错。 +当你在 Linux 中使用命令时,你希望得到终端输出的结果。但有时候,你会遇到终端显示“命令未找到command not found”这一报错。 ![][1] 对于这个问题,并没有直截了当且单一的解决方案。你必须自己做一些故障排除来解决这个报错。 -老实说,要解决它并不难。该报错信息已经给出了一些提示:“bash: command not found”,这说明你的 shell(或者 Linux 系统)找不到你输入的那条命令。 +老实说,要解决它并不难。该报错信息已经给出了一些提示:“命令未找到”,这说明你的 shell(或者 Linux 系统)找不到你输入的那条命令。 shell(或 Linux 系统)找不到命令,有三个可能的原因: * 你将命令的名称拼错了 * 该命令还没有安装 - * 该命令是一个可执行脚本,其位置未知 + * 该命令是一个可执行脚本,但其位置未知 -接下来,我们会详细介绍“bash: command not found”这一报错的每一个原因。 +接下来,我们会详细介绍“命令未找到”这一报错的每一个原因。 -### 解决“bash: command not found”报错 +### 解决“命令未找到”报错 ![][2] -#### 方法 1:再次检查命令名称有没有写错 +#### 方法 1:再次检查命令名称有没有写错 每个人都会犯错误,尤其是在打字的时候。你输入的命令可能存在错别字(也就是你写错啦)。 @@ -43,7 +43,7 @@ shell(或 Linux 系统)找不到命令,有三个可能的原因: * 是否在拼写中混淆了 1(数字 1)、I(大写的 i)和 l(小写的 L) * 是否正确使用了大写字母或者小写字母 -看看下面的示例,因为我写错了 ls 命令,所以会导致“command not found”报错。 +看看下面的示例,因为我写错了 `ls` 命令,所以会导致“command not found”报错。 ![][3] @@ -61,19 +61,31 @@ shell(或 Linux 系统)找不到命令,有三个可能的原因: 有时候,某一常用命令可能也不再能使用了,甚至你也不能够安装这个命令了。这种情况下,你需要找到一个替代的命令,来得到结果。 -以现已弃用的 ipconfig 命令为例。网络上的旧教程依旧会让你使用 ipconfig 命令,来 [获取本机的 IP 地址][5] 和网络接口信息,但是,在较新的 Linux 版本中,你已经无法使用 ipconfig 了。ipconfig 命令已被 ifconfig 命令所取代。 +以现已弃用的 `ifconfig` 命令为例。网络上的旧教程依旧会让你使用 `ifconfig` 命令,来 [获取本机的 IP 地址][5] 和网络接口信息,但是,在较新的 Linux 版本中,你已经无法使用 `ifconfig` 了。`ifconfig` 命令已被 `ip` 命令所取代。 ![Some popular commands get discontinued over the time][1] -有时候,你的系统可能甚至找不到一些非常常见的命令。当你在 Docker 容器中运行 Linux 发行版时,就通常如此。Docker 容器为了缩小操作系统映像的大小,容器中通常不包含那些常见的 Linux 命令。 +有时候,你的系统可能甚至找不到一些非常常见的命令。当你在 Docker 容器中运行 Linux 发行版时,就通常如此。Docker 容器为了缩小操作系统镜像的大小,容器中通常不包含那些常见的 Linux 命令。 -这就是为什么使用 Docker 的用户会碰到 [ping命令未找到][6](ping command not found) 等报错的原因。 +这就是为什么使用 Docker 的用户会碰到 [ping 命令未找到][6] 等报错的原因。 ![Docker containers often have only a few commands installed][7] 因此,这种情况下的解决方案是安装缺失的命令,或者是找到一个与缺失命令有同等功能的工具。 -#### 方法 3:检查命令是否是一个路径正确的可执行脚本 +### 方法 3:确保命令是真实的,而不是一个别名 + +我希望你知道 Linux 中的别名概念。你可以配置你自己的较短的命令来代替一个较长命令的输入。 + +一些发行版,如 Ubuntu,会自动提供 `ll`(`ls -l` 的别名)、`la`(`ls -a` 的别名)等命令。 + +![]() + +想象一下,你习惯于在你的个人系统上输入 `ll` 和 `la`,而你登录到另一个 Linux 系统,发现 `ll` 命令并不存在。你甚至不能安装 `ll` 命令,因为它不是一个真正的命令。 + +所以,如果你找不到一个命令,甚至不能安装,你应该尝试在互联网上搜索该命令是否存在。如果不存在,可能是其他系统上的一个别名。 + +#### 方法 4:检查命令是否是一个路径正确的可执行脚本 这是 Linux 新手在 [运行 shell 脚本][8] 时常犯的错误。 @@ -84,39 +96,39 @@ shell(或 Linux 系统)找不到命令,有三个可能的原因: -bash: sample: command not found ``` -因为你需要显式指定 shell 解释器或可执行脚本的绝对路径! +因为你需要显式指定 shell 解释器或可执行脚本的路径! ![][9] -如果你在其他目录下,在未提供文件正确路径的情况下,运行 shell 脚本,则会有“找不到文件(no such file or directory)”的报错。 +如果你在其他目录下,在未提供文件正确路径的情况下,运行 shell 脚本,则会有“找不到文件no such file or directory”的报错。 ![][10] -##### 把可执行文件的路径加到 PATH 变量中 +> **把可执行文件的路径加到 PATH 变量中** +> +> 有时候,你下载了一个软件的压缩文件(tar 格式),解压这个 tar 文件,然后找到一个可执行文件和其他程序文件。你需要运行可执行文件,来运行那个软件。 +> +> 但是,你需要在可执行文件的同一目录下或指定可执行文件的整个路径,才能运行那个可执行文件。这很令人烦扰。 +> +> 你可以使用 `PATH` 变量来解决这个问题。`PATH` 变量包含了有各种 Linux 命令的二进制(可执行)文件的目录集合。当你运行一个命令时,你的 Linux 系统会检查 `PATH` 变量中的上述目录,以查找该命令的可执行文件。 +> +> 你可以使用 `which` 命令,来检查某一命令的二进制文件的位置: -有时候,你下载了一个软件的压缩文件(tar 格式),解压这个 tar 文件,然后找到一个可执行文件和其他程序文件。你需要运行可执行文件,来运行那个软件。 - -但是,你需要在可执行文件的同一目录下或指定可执行文件的整个路径,才能运行那个可执行文件。这很令人烦扰。 - -你可以使用 PATH 变量,来解决这个问题。PATH 变量包含了有各种 Linux 命令的二进制(可执行)文件的目录集合。当你运行一个命令时,你的 Linux 系统会检查 PATH 变量中的上述目录,以查找该命令的可执行文件。 - -你可以使用 `which` 命令,来检查某一命令的二进制文件的位置: - -![][11] - -如果你想从系统上的任何地方都能运行可执行文件或脚本,你需要将可执行文件的位置添加到 PATH 变量中。 - -![][12] - -然后,PATH 变量需要添加到 shell 的 rc 文件中,如此对 PATH 变量的更改就是永久性的。 - -这里的要点是:你的 Linux 系统必须了解可执行脚本的位置。要么在运行时给出可执行文件的整个路径,要么将其位置添加到 PATH 变量中。 +> ![][11] +> +> 如果你想从系统上的任何地方都能运行可执行文件或脚本,你需要将可执行文件的位置添加到 `PATH` 变量中。 +> +> ![][12] +> +> 然后,`PATH` 变量需要添加到 shell 的 rc 文件中,如此对 `PATH` 变量的更改就是永久性的。 +> +> 这里的要点是:你的 Linux 系统必须了解可执行脚本的位置。要么在运行时给出可执行文件的整个路径,要么将其位置添加到 `PATH` 变量中。 ### 以上的内容有帮到你吗? 我懂得,当你是 Linux 新手时,很多事情可能会让你不知所措。但是,当你了解问题的根本原因时,你的知识会逐渐增加。 -对于“未找到命令”(command not found)报错来说,没有简单的解决方案。我提供给你了一些提示和要点,我希望这对你的故障排除有帮助。 +对于“未找到命令”报错来说,没有简单的解决方案。我提供给你了一些提示和要点,我希望这对你的故障排除有帮助。 如果你仍然有疑问或需要帮助,请在评论区告诉我吧。 @@ -127,7 +139,7 @@ via: https://itsfoss.com/bash-command-not-found/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -145,3 +157,4 @@ via: https://itsfoss.com/bash-command-not-found/ [10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/script-file-not-found-error-800x259.png?resize=800%2C259&ssl=1 [11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/path-location.png?resize=800%2C241&ssl=1 [12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/adding-executable-to-PATH-variable-linux.png?resize=800%2C313&ssl=1 +[13]: https://itsfoss.com/wp-content/uploads/2022/01/alias-in-ubuntu.png \ No newline at end of file From 409387b5ab638c01d7de5a08b98639f42b507efe Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 22 Oct 2022 12:08:08 +0800 Subject: [PATCH 1622/3123] R --- ...roubleshooting -Bash- Command Not Found- Error in Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md index 902989fbbc..b9fee2a03b 100644 --- a/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md +++ b/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md @@ -79,7 +79,7 @@ shell(或 Linux 系统)找不到命令,有三个可能的原因: 一些发行版,如 Ubuntu,会自动提供 `ll`(`ls -l` 的别名)、`la`(`ls -a` 的别名)等命令。 -![]() +![][13] 想象一下,你习惯于在你的个人系统上输入 `ll` 和 `la`,而你登录到另一个 Linux 系统,发现 `ll` 命令并不存在。你甚至不能安装 `ll` 命令,因为它不是一个真正的命令。 @@ -113,7 +113,7 @@ shell(或 Linux 系统)找不到命令,有三个可能的原因: > 你可以使用 `PATH` 变量来解决这个问题。`PATH` 变量包含了有各种 Linux 命令的二进制(可执行)文件的目录集合。当你运行一个命令时,你的 Linux 系统会检查 `PATH` 变量中的上述目录,以查找该命令的可执行文件。 > > 你可以使用 `which` 命令,来检查某一命令的二进制文件的位置: - +> > ![][11] > > 如果你想从系统上的任何地方都能运行可执行文件或脚本,你需要将可执行文件的位置添加到 `PATH` 变量中。 From e3d3d352fe1de25b3d6aa9d629de98967d71fe7a Mon Sep 17 00:00:00 2001 From: Donkey Date: Sat, 22 Oct 2022 16:40:39 +0800 Subject: [PATCH 1623/3123] PR --- .../20210530 Complete Guide to Configuring SSH in Ubuntu.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md index 1ba15f11d2..f7d703762c 100644 --- a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md +++ b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/set-up-ssh-ubuntu/) [#]: author: (Chris Patrick Carias Stas https://itsfoss.com/author/chris/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Donkey-Hao) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -220,7 +220,7 @@ via: https://itsfoss.com/set-up-ssh-ubuntu/ 作者:[Chris Patrick Carias Stas][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 33e8ac7a1b1abff3756a06a0053cfa3d90603ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 16:42:58 +0800 Subject: [PATCH 1624/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221019-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-GitHub?= =?UTF-8?q?-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s-To-Be-In-Violation-Of-The-Open-Source-Licence.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/news/20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md diff --git a/sources/news/20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md b/sources/news/20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md new file mode 100644 index 0000000000..4a49748487 --- /dev/null +++ b/sources/news/20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md @@ -0,0 +1,38 @@ +[#]: subject: "GitHub Copilot Appears To Be In Violation Of The Open Source Licence" +[#]: via: "https://www.opensourceforu.com/2022/10/github-copilot-appears-to-be-in-violation-of-the-open-source-licence/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GitHub Copilot Appears To Be In Violation Of The Open Source Licence +====== + +![github-logo-2][1] + +_Since Copilot’s debut, Butterick has voiced criticism of the program._ + +Microsoft paid $7.5 billion buying GitHub in 2018 and has since integrated the code repository into its developer tools while taking a largely hands-off stance. Matthew Butterick, a writer, attorney, and programmer, has some problems with GitHub Copilot, Microsoft’s machine-learning based code helper, and how it appears to be treating open source licences incorrectly. + +GitHub Copilot, a plugin for Visual Studio and other IDEs, operates by providing “suggestions” for code completion as you type. Codex serves as the system’s power source. However, developers like Butterick are having trouble with how the AI is learned, or more specifically, from where it is trained. + +The issue here is that the public repositories on which GitHub is trained are licenced and demand credit when their work is utilised. Although Microsoft has been evasive about its usage of the code, referring to it as fair use, Copilot is able to generate verbatim portions of code in addition to suggestions. + +As per OpenAI, the developers of Codex (which is licensed by Microsoft), “Codex was trained on tens of mil­lions of pub­lic repos­i­to­ries includ­ing code on GitHub. Microsoft itself has vaguely described the train­ing mate­r­ial as bil­lions of lines of pub­lic code”. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/10/github-copilot-appears-to-be-in-violation-of-the-open-source-licence/ + +作者:[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/10/github-logo-2-1-696x348.png From 57079802b548948499fbc1a7e9971223329e67e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 16:46:52 +0800 Subject: [PATCH 1625/3123] =?UTF-8?q?Rename=2020221019-=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-GitHub-Copilot-Appears-To-Be-In-Violation-Of?= =?UTF-8?q?-The-Open-Source-Licence.md=20to=2020221019-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Li?= =?UTF-8?q?cence.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md => 20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md} (100%) diff --git a/sources/news/20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md b/sources/news/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md similarity index 100% rename from sources/news/20221019-⭐️⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md rename to sources/news/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md From 5efa79fd2b136eefd7cfd5d643e814dbd56073d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 18:26:03 +0800 Subject: [PATCH 1626/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221017-=E2=AD=90=EF=B8=8F-Ubuntu-but-rolling-but-a?= =?UTF-8?q?lso-stable-That-s-what-Rhino-Linux-aims-to-be.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o-stable-That-s-what-Rhino-Linux-aims-to-be.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/news/20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md diff --git a/sources/news/20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md b/sources/news/20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md new file mode 100644 index 0000000000..c1f743afa6 --- /dev/null +++ b/sources/news/20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md @@ -0,0 +1,80 @@ +[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be" +[#]: via: "https://news.itsfoss.com/rhino-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu but rolling but also stable That's what Rhino Linux aims to be +====== + +A rolling-release Ubuntu distribution? Wait, what? Rhino Linux sounds fascinating.. + +![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1] + +Rhino Linux will be the successor of [Rolling Rhino Remix][2]. A Linux distro built by http.llamaz that offered a rolling-release **unofficial** variant of Ubuntu. + +To clarify, the project was never aimed to replace other stable distributions and was purely a passion project made for fun. + +Considering people started using it as a daily driver and expected more from it, the developer has decided to turn this into a serious project. + +Rhino Linux is its next step for it. So, what can you expect? + +### Meet Rhino Linux: The Successor + +The main goal is to provide a stable Ubuntu experience while still providing a rolling-release model. + +The aim remains the same, but the fundamentals for Rhino Linux will receive a complete overhaul. They are potentially making it an impressive rolling-release Ubuntu distribution. + +**Sounds exciting! 🤯** + +At its core, Rhino Linux will be using a slightly modified version of [XFCE][3] as its desktop environment; it was chosen due to its well-known stability and speed. + +The founder of Rhino Linux mentioned the following: + +> Ubuntu as a rolling release is still at the very core of our concept. Rhino Linux is not a depature from Rolling Rhino Remix, but rather re-imagines it as the more stable, mature distribution it should have shipped as originally. + +![xfce 4.14][4] + +Alongside that, [Pacstall][5] will be used as the default package manager on Rhino Linux with one of their repositories. + +> 💡Pacstall is an [AUR][6]-inspired package manager for Ubuntu. + +The development of which is headed by the founder of Pacstall, [_Plasma_][7]. He has also joined as one of the new developers (Deputy Project Lead), and [Sourajyoti Basak][8] as another core member. + +### Moving Forward: Availability and Release + +As of writing, Rhino Linux has not received any specific release date, but you can expect it to release sometime in **2023**. + +What happens to Rolling Rhino Remix? + +The developer clarified that it would continue to be maintained for three months after the release of Rhino Linux. However, it won't have a new release image after its subsequent release on **11.01.2022**. + +You can find out more about Rhino Linux by visiting its [official website][9]. + +_💬 What do you think of Rhino Linux? Can it be a contender for official Ubuntu flavors worth trying?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/rhino-linux/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png +[2]: https://github.com/rollingrhinoremix +[3]: https://www.xfce.org/ +[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png +[5]: https://github.com/pacstall/pacstall +[6]: https://itsfoss.com/aur-arch-linux/ +[7]: https://github.com/Henryws +[8]: https://github.com/wizard-28 +[9]: https://rhinolinux.org/ From 3342b42e5a753c74a651bbb12ad890ea3c845471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 18:29:54 +0800 Subject: [PATCH 1627/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221018-=E2=AD=90=EF=B8=8F-Ardour-7-0-Release-Marks?= =?UTF-8?q?-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silico?= =?UTF-8?q?n-Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ds-Clip-Launching-and-Apple-Silicon-Support.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/news/20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md diff --git a/sources/news/20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md b/sources/news/20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md new file mode 100644 index 0000000000..68d9f07ca9 --- /dev/null +++ b/sources/news/20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md @@ -0,0 +1,100 @@ +[#]: subject: "Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support" +[#]: via: "https://news.itsfoss.com/ardour-7-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support +====== + +Ardour 7.0 is a major upgrade with much-needed improvements. + +![Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support][1] + +[Ardour][2] is a popular open-source digital audio workstation software that audio professionals use. + +Ardour 7.0 has been in development for a little more than a year since the release of 6.9 and has come a long way since Ardour 5.0. + +Let's take a look at the highlights of this release. + +### 🆕 Ardour 7.0: What's New? + +![ardour 7.0][3] + +This release introduces a variety of changes and feature additions, some of the highlights are: + +- **Discontinuation of 32-bit Builds.** +- **Clip Launching feature (similar to what other DAWs provide).** +- **Support for Apple Silicon.** +- **Integration of Loop Library.** +- **Audio sample library support by Freesound.** + +#### Clip Launching + +![ardour 7.0 clip launching][4] + +Similar to many mainstream DAWs like Ableton Live, Ardour now has support for clip launching. + +Users can now play/stop audio clips and adjust the timing to fit the tempo map of a session. Pretty useful for live performances. + +#### Loop Library + +![ardour 7.0 loop library][5] + +In addition to Clip Launching, users can also take advantage of a vast collection of loops sourced from a few hand-picked creators of [looperman][6]. + +Users can choose from any of the royalty-free loops, with more to be added in the near future. + +#### End of 32-bit Builds + +There won't be any further 32-bit builds of Ardour, only a few will remain available on the nightly build channels for now. + +You may want to look around at some of the DAWs available for Linux to see what else might offer a 32-bit build. + +#### Sound Samples Available by Freesound + +![ardour 7.0 freesound integration][7] + +Another feature that complements the Loop Library is the integration with [Freesound][8]. + +With this, users can make use of over 600,000 samples of audio. To do this, users must have a Freesound account linked to their Ardour installation. + +#### 🛠️ Other Changes + +Other notable changes include: + +- **New Themes.** +- **Ripple Editing Modes.** +- **Mixer Scenes.** +- **Improvements to MIDI Editing.** +- **Support for I/O Plugins.** + +You can go through the official [release notes][9] for more details of the release. + +_💬 Are you going to try out Ardour 7.0? Satisfied with the DAW you currently use?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ardour-7-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ardour-7-0-release.jpg +[2]: https://ardour.org/ +[3]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0.png +[4]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0_Clip_Launching.png +[5]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0_Loop_Library.png +[6]: https://www.looperman.com/ +[7]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0_Freesound_Integration.png +[8]: https://freesound.org/ +[9]: https://ardour.org/whatsnew.html From 1bf424b77073b85842f6aa2decb9644c4d60b7b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:11:29 +0800 Subject: [PATCH 1628/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221020-=E2=AD=90=EF=B8=8F-Ubuntu-22-10-Is-Here-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sources/news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md diff --git a/sources/news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md b/sources/news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md new file mode 100644 index 0000000000..b1a6d1bd8d --- /dev/null +++ b/sources/news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md @@ -0,0 +1,147 @@ +[#]: subject: "Ubuntu 22.10 Is Here!" +[#]: via: "https://news.itsfoss.com/ubuntu-22-10-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu 22.10 Is Here! +====== + +Ubuntu 22.10 is an impressive release with new quick toggles, application spread, and more. + +![Ubuntu 22.10 Is Here!][1] + +Ubuntu 22.10 "**Kinetic Kudu**" is here. It brings many significant improvements, notably Linux Kernel 5.19 and the GNOME 43 experience. + +Of course, this is a customized GNOME experience that will be familiar to existing Ubuntu users. + +So, what are all the goodies with Ubuntu 22.10? Let us find out: + +### Ubuntu 22.10 Release: What's New? + +![][2] + +Along with GNOME 43, Ubuntu 22.10 also includes: + +- **An improved Settings app.** +- **The resurrection of the classic Unity application spread.** +- **A few notable apps ported to GTK4 and Libadwaita.** +- **System-wide WebP support.** +- **PipeWire is the default audio server.** +- **Linux Kernel 5.19.** + +> 💡Ubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][3]. + +#### 🎨 Visual Improvements + +When first testing a new release, visual changes are always the first to be noticed. This is especially true with Ubuntu 22.10, thanks to the significant improvements introduced with [GNOME 43][4]. + +![Ubuntu 22.10 quick setting][5] + +First, we have the brand-new quick settings menu, which replaced the old and rather clunky system menu. Similar to the menus found in Android, iOS, and Windows 11, this addition allows you to switch on and off Wi-Fi and Bluetooth, all without going into the settings app. + +Of course, we also get brand-new wallpaper with this release. + +![ubuntu 22.10 wallpaper][6] + +There's not much else to say about it other than that I love this switch and hope to see more designs like this from the community. + +Additionally, more apps have been ported to GTK4, including the refinements wit the **Nautilus** file manager. + +Some valuable feature additions include: + +- **Ability to drag and select files (rubber band selection).** +- **Adaptive view with a compact window.** +- **New document context menu.** + +You can go through our detailed coverage to explore the improvements with Nautilus. + +#### 👴 The Application Spread Is Back! + +One of my minor favorite parts of GNOME is the multi-windows app switching, a gripe that I'm sure many other users share. + +![ubuntu 22.04][7] + +Fortunately, **Ubuntu 22.10** is now offering a great solution that should be familiar to long-time users. Finally, five years after dropping support for Unity back in 2017, the Ubuntu developers have brought back the application spread. + +![ubuntu 22.10 application spread][8] + +This is a significant improvement and something I'm surprised GNOME hasn't done itself. + +#### 🛠️ Settings Improvements + +Although not an app that most people use daily, System Settings is a core part of the GNOME experience. With that in mind, it is fantastic to see it receiving a major visual overhaul, as well as a port to GTK 4 and Libadwaita. + +![Ubuntu 22.10 desktop setting][9] + +As a result, it is now better-looking and adaptive, meaning it will work well at any size and even on Linux phones like the PinePhone! + +Another Settings-related change is adding a new "**Ubuntu Desktop Settings**" menu item. This offers a single, unified place to customize and change all your Ubuntu-specific settings. + +#### Linux Kernel 5.19 + +Ubuntu 22.10 also brings a newer kernel i.e., [Linux kernel 5.19][10]. This release was pretty light on improvements, although it did bring improved support for some next-gen hardware. + +You should note that this is the last release in the Linux 5.x series, as Linux Kernel 6.0 is the next version bump. + +#### Other Changes + +![Ubuntu 22.10 webp][11] + +There are several subtle refinements overall. But some of those essential tweaks include: + +- Default image apps support **.WebP** image format. +- **GNOME Text Editor** is the default editor. You can install gedit and make it the default. +- **GNOME Books app** is no longer available. Ubuntu recommends [Foliate][12] as a replacement. +- **To Do app** is no longer installed by default and has a new name, "_Endeavour_". +- **GNOME Terminal** is still the default terminal app. [GNOME Console][13] can be installed if required. +- Updated apps like Firefox 104, [Thunderbird 102][14], and [Libreoffice 7.4][15]. +- More apps have been ported to GTK4, notably **[Nautilus][16].** + +> ℹ️Note that our list focuses on changes that matter to a desktop end-user. If you want to know more about the changes/updates for the server and other use cases, refer to the [official release notes][17]. + +### Download Ubuntu 22.10 + +You can download the latest ISO from [Ubuntu's central image repository][18] or its [official website][19]. + +**It might take a while for the official website/repo to make the ISO available to download.** + +[Download Ubuntu 22.10][19] + +💬 _Interested in trying Ubuntu 22.10? Let me know your thoughts in the comments._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-22-10-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-22-10-release.png +[2]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10.png +[3]: https://itsfoss.com/long-term-support-lts/ +[4]: https://news.itsfoss.com/gnome-43-release/ +[5]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-quick-setting.jpg +[6]: https://news.itsfoss.com/content/images/2022/10/22.10-wallpaper.png +[7]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-04-window-minimize.png +[8]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-app-spread.jpg +[9]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-desktop-setting.png +[10]: https://news.itsfoss.com/linux-kernel-5-19-release/ +[11]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-webp.png +[12]: https://itsfoss.com/foliate-ebook-viewer/ +[13]: https://itsfoss.com/gnome-console/ +[14]: https://news.itsfoss.com/thunderbird-102-release/ +[15]: https://news.itsfoss.com/libreoffice-7-4-release/ +[16]: https://news.itsfoss.com/gnome-files-43/ +[17]: https://discourse.ubuntu.com/t/kinetic-kudu-release-notes/27976 +[18]: https://cdimage.ubuntu.com/ubuntu/releases/22.10/release/ +[19]: https://ubuntu.com/download/desktop From 38758b06500a5b8c7a7e8e1ecff6525430a4df3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:13:53 +0800 Subject: [PATCH 1629/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221020-=E2=AD=90=EF=B8=8F-Xubuntu-22-10-Releases-W?= =?UTF-8?q?ith-Xfce-Upgrades--and-Other-Refinements.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s-With-Xfce-Upgrades--and-Other-Refinements.md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 sources/news/20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md diff --git a/sources/news/20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md b/sources/news/20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md new file mode 100644 index 0000000000..82fc042997 --- /dev/null +++ b/sources/news/20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md @@ -0,0 +1,135 @@ +[#]: subject: "Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements" +[#]: via: "https://news.itsfoss.com/xubuntu-22-10-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements +====== + +Xubuntu 22.10 provides a refined XFCE experience. Learn more about it here. + +![Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements][1] + +Xubuntu is an XFCE-powered official Ubuntu flavour. + +It is also one of the best lightweight Linux distributions available. + +With the latest Xubuntu 22.10 "**Kinetic Kudu**" release, you can expect desktop environment improvements, feature additions, and several refinements across the board. + +### Xubuntu 22.10: What's New? + +![Xubuntu 22.10 home][2] + +Xubuntu 22.10 brings in some exciting upgrades. Some of the highlights include: + +- **Xfce 4.16 (or Xfce 4.17 dev)** +- **Catfish appearance update.** +- **New icon refresh and deprecated elementary-xfce-darker-theme.** +- **Mousepad search history.** +- **Thundar file manager improvements.** +- **Xfce task manager.** + +> 💡Xubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][3]. + +#### XFCE 4.17 Development Version or XFCE 4.16? + +The release notes for Xubuntu 22.10 say it features the Xfce 4.17 development version. + +However, when I installed the beta version for Xubuntu 22.10 (and updated it to the latest), it said it features Xfce 4.16. + +![][4] + +Not sure if they pulled out Xfce 4.17 development version or if Xfce 4.16 is here for now. + +#### Catfish Appearance + +![xubuntu catfish][5] + +Catfish is a file search utility on Xubuntu. With the new upgrade, it has a refreshed appearance with tweaks under the hood. + +You also get an "**Open With**" context menu when interacting with the files you searched for. + +![][6] + +A pretty subtle but valuable feature addition for catfish. + +#### GNOME 43 Software + +Among notable app updates, GNOME's latest Software Center is a nice thing to have. This is how it looks with Xubuntu 22.10: + +![][7] + +Of course, it may not give you a consistent look with other applications on Xfce, but I think you can give it an excuse. + +#### Icon Updates + +With elementary-xfce 0.17 icon update, there are many new icons and cleaner options that provide a consistent Xubuntu desktop experience. + +![][8] + +Additionally, the **elementary-xfce-darkest theme** icon pack has been deprecated. + +![][9] + +#### Task Manager Right-Click Option + +![][10] + +You can now copy the full process path to the clipboard. This could be useful to troubleshoot or stop things from the command line when required. + +### Other Enhancements + +![][11] + +There are several other notable changes that include: + +- **Linux Kernel 5.19** +- **Mozilla Firefox 105.** +- **Alt-Tab view improved with more prominent icons.** +- **Mosaic puzzle added to SGT Puzzles collection.** +- **Thunar archive plugin now supports compressing zip files.** +- **Mousepad text editor now includes a search history and a few more tweaks.** + +To learn more about the changes, check out the [official release notes][12]. + +### Download Xubuntu 22.10 + +You can download the latest ISO from [Ubuntu's central image repository][13] or its [official website][14]. + +It might take a while for its official website to make the ISO available. + +[Download Xubuntu 22.10][14] + +💬 _What do you think about Xubuntu 22.10? Let me know your thoughts in the comments._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/xubuntu-22-10-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/content/images/size/w1200/2022/10/xubuntu-22-10-release.jpg +[2]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10.png +[3]: https://itsfoss.com/long-term-support-lts/ +[4]: https://news.itsfoss.com/content/images/2022/10/xfce-4-16.jpg +[5]: https://news.itsfoss.com/content/images/2022/10/catfish-xubuntu-22-10.png +[6]: https://news.itsfoss.com/content/images/2022/10/catfish-openwith-1.jpg +[7]: https://news.itsfoss.com/content/images/2022/10/xubuntu-gnome-43-software.jpg +[8]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10-icons.jpg +[9]: https://news.itsfoss.com/content/images/2022/10/xfce-dark-theme.png +[10]: https://news.itsfoss.com/content/images/2022/10/task-manager-copy-command-line.jpg +[11]: https://news.itsfoss.com/content/images/2022/10/xubuntu-22-10-puzzle.png +[12]: https://wiki.xubuntu.org/releases/22.10/release-notes +[13]: https://cdimage.ubuntu.com/xubuntu/releases/22.10/release/ +[14]: https://xubuntu.org/download/ From 802a76808125b63402ba91a0e32f127b2dab0297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:14:35 +0800 Subject: [PATCH 1630/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221020-=E2=AD=90=EF=B8=8F-Ubuntu-Budgie-22-10-Rele?= =?UTF-8?q?ase-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-Control-Center-and-Removes-Some-GNOME-Apps.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/news/20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md diff --git a/sources/news/20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md b/sources/news/20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md new file mode 100644 index 0000000000..18ddf82f0e --- /dev/null +++ b/sources/news/20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md @@ -0,0 +1,118 @@ +[#]: subject: "Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps" +[#]: via: "https://news.itsfoss.com/ubuntu-budgie-22-10-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps +====== + +Ubuntu Budgie 22.10 is an interesting release which removes several GNOME apps, and adds other improvements. + +![Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps][1] + +[Ubuntu Budgie][2] is an official flavor of Ubuntu, which is popular for its traditional desktop interface and minimal software bloat. + +The release of Ubuntu Budgie 22.10 brings in a few crucial tweaks and additions. + +### 🆕 Ubuntu Budgie 22.10: What's New? + +![ubuntu budgie 22.10][3] + +Based on Ubuntu 22.10 'Kinetic Kudu', Ubuntu Budgie 22.10 features Budgie Desktop 10.6.4 and a host of other improvements. + +Some of the notable highlights include: + +- **Enhanced Budgie Control Center** +- **Updated Budgie Welcome app** +- **Replacing various GNOME-based apps** +- **Updated Translations** + +#### Budgie Desktop and Control Center + +![ubuntu budgie 22.10 desktop settings][4] + +Budgie Desktop has been updated to V10.6.4, which adds a new global option to control the spacing between applets and features various improvements to the workspace and clock applets. + +![ubuntu budgie 22.10 display color profiles][5] + +The Budgie Control Center has also received a bunch of tweaks, such as reworked display color profile support, revamped screen-sharing with support for [RDP][6] and [VNC][7], an option for fractional scaling of display, and more. + +#### Welcome App Updates + +![ubuntu budgie 22.10 welcome app][8] + +Ubuntu Budgie 22.10 features the updated [Budgie Welcome app][9] with improved translations and a few changes. + +#### Change in Default Apps + +The developers of Ubuntu Budgie have started replacing and removing GNOME-based apps in favor of MATE-based apps and other alternatives. + +They decided to do so, because of the inconsistent way GNOME-based apps look in Budgie alongside other apps with their rounded-off edges. + +The inconsistencies have been caused due to GNOME moving on to the Libadwaita library for its styling and theming needs. + +The Libadwaita library was a controversial addition to GNOME, that not many users liked, you can go through our coverage to learn more. + +Here are some of the apps that have been removed or replaced: + +- GNOME-Calculator replaced by MATE Calculator. +- GNOME-Calendar removed. +- GNOME System Monitor replaced by MATE System Monitor. +- GNOME Screenshot removed. +- GNOME Font Viewer replaced by [Font-Manager][10]. + +#### 🛠️ Other Changes + +Some of the other changes include: + +- **Rework of In-Built Theme** +- **Removal of PulseAudio in favor of PipeWire** +- **Native Screenshot Capability** +- **Support for WebP Images** +- **Ability to View Monitor's Refresh Rate** + +You can go through the [release notes][11] to know more. + +### 📥 Download Ubuntu Budgie 22.10 + +You can download the latest ISO from [Ubuntu's central image repository][12] or its [official website][13]. + +It might take a while for its official website to make the ISO available. + +[Download Ubuntu Budgie 22.10][13] + +> 💡Ubuntu Budgie 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][14]. + +💬 What do you think of this non-LTS release? Willing to give it a try? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-budgie-22-10-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-budgie-22-10-release.png +[2]: https://ubuntubudgie.org/ +[3]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10.png +[4]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Desktop_Settings.png +[5]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Color_Profiles.png +[6]: https://en.wikipedia.org/wiki/Remote_Desktop_Protocol +[7]: https://en.wikipedia.org/wiki/Virtual_Network_Computing +[8]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Welcome.png +[9]: https://ubuntubudgie.org/2022/02/quick-overview-of-budgie-welcome-application/ +[10]: https://itsfoss.com/font-manager/ +[11]: https://ubuntubudgie.org/2022/09/ubuntu-budgie-22-10-release-notes/ +[12]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/22.10/ +[13]: https://ubuntubudgie.org/downloads/ +[14]: https://itsfoss.com/long-term-support-lts/ From b3bbefdd4411071f955484bdbbf83d81c3c813d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:15:58 +0800 Subject: [PATCH 1631/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221020-=E2=AD=90=EF=B8=8F-Ubuntu-MATE-22-10-Releas?= =?UTF-8?q?e-Has-Some-Interesting-Upgrades-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2-10-Release-Has-Some-Interesting-Upgrades-.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/news/20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md diff --git a/sources/news/20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md b/sources/news/20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md new file mode 100644 index 0000000000..137a2f994a --- /dev/null +++ b/sources/news/20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md @@ -0,0 +1,123 @@ +[#]: subject: "Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!" +[#]: via: "https://news.itsfoss.com/ubuntu-mate-22-10-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu MATE 22.10 Release Has Some Interesting Upgrades! +====== + +Ubuntu MATE 22.10 has arrived with subtle and useful changes. Take a lookie! + +![Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!][1] + +Ubuntu MATE is one of the [official Ubuntu flavours][2] that add interesting improvements with every upgrade. + +It is aimed at users who cherish the look and feel of a traditional desktop but also desire the functionality of a modern operating system. + +Ubuntu MATE 22.10 release adds a number of betterments and features, let us take a look at those. + +### Ubuntu MATE 22.10: What's New? + +![ubuntu mate 22.10 desktop][3] + +Based on the non-LTS release of [Ubuntu 22.10][4] '_Kinetic Kudu_', Ubuntu MATE 22.10 brings in multiple updates, some key highlights include: + +- **Improvements to MATE Desktop.** +- **New AI Wallpapers.** +- **PipeWire is the default audio server.** +- **New MATE User Manager.** +- **Firefox 105 update.** +- **LibreOffice 7.4.** + +> 💡Note that Ubuntu MATE upgrades usually include more feature additions. This time, **Martin Wimpress** has been working to bring a similar experience to the Debian MATE edition. You can read more details in our previous coverage. + +#### MATE Desktop Upgrades + +![ubuntu mate 22.10 desktop view][5] + +MATE desktop receives various bug fixes and updates to the **Ayatana indicators** and the **MATE Panel**. + +Now, you can align the applets to the **center** alongside the usual left and right alignment options. + +This feature officially arrives with **MATE Desktop 1.28 **release, but the Ubuntu MATE team has made it available with this release on top of **MATE Desktop 1.27**. + +#### MATE User Manager + +![ubuntu mate 22.10 user manager][6] + +The MATE user manager is a new addition to the distro, allowing you to add/modify/remove user accounts. + +With this, you can choose which users can be administrators, set up auto-login, set profile pictures, and manage group memberships. Pretty handy and a much-needed feature for computers with multiple users. + +#### New AI Wallpapers + +![ubuntu mate 22.10 ai wallpapers][7] + +Another big highlight of this release is the addition of new AI-generated wallpapers. + +These look beautiful! 😍 + +Seeing that AI-generated wallpapers are all the rage right now, the Ubuntu MATE team has included a new bunch of them with Ubuntu MATE 22.10. + +It was created by [Simon Butcher][8] using diffusion models to illustrate 'kudu' (Antelope). + +#### Linux Kernel 5.19 + +Ubuntu MATE 22.10 leverages the improvements brought forward by Linux Kernel 5.19, including enhanced support for various ARM SoCs, Arc Alchemist GPUs, and more. + +You can read our coverage of the same to learn more. + +#### 🛠️ Other Changes and Improvements + +As with every other new release, Ubuntu MATE 22.10 replaces [PulseAudio][9] with [PipeWire][10] for better audio handling and the inclusion of additional Bluetooth codecs such as AAC, LDAC, aptX, and aptX HD. + +Other notable changes include: + +- **Updated apps include Firefox 105, LibreOffice 7.4, Celluloid 0.20 and Evolution 3.46.** +- **Ubuntu MATE HUD supports MATE, XFCE, and Budgie with more configuration ability.** + +You can check out Ubuntu MATE 22.10 [official release notes][11] if you are curious. + +### Download Ubuntu MATE 22.10 + +You can download the latest ISO from [Ubuntu's central image repository][12] or its [official website][13]. + +It might take a while for its official website/repo to make the ISO available. + +> 💡Ubuntu MATE 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][14]. + +[Download Ubuntu MATE 22.10][13] + +💬 _Interested in trying Ubuntu MATE 22.10? Let me know your thoughts in the comments._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-mate-22-10-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-mate-22-10-release.jpg +[2]: https://itsfoss.com/which-ubuntu-install/ +[3]: https://news.itsfoss.com/content/images/2022/10/ubuntu-mate-22-10.png +[4]: https://news.itsfoss.com/ubuntu-22-10-features/ +[5]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_Desktop.png +[6]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_User_Manager.png +[7]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_AI_Wallpapers.png +[8]: https://twitter.com/simonjbutcher +[9]: https://www.freedesktop.org/wiki/Software/PulseAudio/ +[10]: https://pipewire.org/ +[11]: https://ubuntu-mate.org/blog/ubuntu-mate-kinetic-kudu-release-notes/ +[12]: https://cdimage.ubuntu.com/ubuntu-mate/releases/22.10/release/ +[13]: https://ubuntu-mate.org/download/ +[14]: https://itsfoss.com/long-term-support-lts/ From c273255d74b1f73b3d4431334f30d8f6396ce62e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:16:34 +0800 Subject: [PATCH 1632/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221020-=E2=AD=90=EF=B8=8F-Kubuntu-22-10-is-Now-Ava?= =?UTF-8?q?ilable-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1020-⭐️-Kubuntu-22-10-is-Now-Available-.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/news/20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md diff --git a/sources/news/20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md b/sources/news/20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md new file mode 100644 index 0000000000..25079076e9 --- /dev/null +++ b/sources/news/20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md @@ -0,0 +1,117 @@ +[#]: subject: "Kubuntu 22.10 is Now Available!" +[#]: via: "https://news.itsfoss.com/kubuntu-22-10-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kubuntu 22.10 is Now Available! +====== + +Kubuntu 22.10 may not be the most exciting upgrade. But, it includes useful changes! + +![Kubuntu 22.10 is Now Available!][1] + +Kubuntu is an official Ubuntu flavor that offers a lot of functionality in a refined KDE-powered package. + +The release of Kubuntu 22.10 promises various improvements and a newer version of [KDE Plasma][2]. + +Let us go through the highlights of this release. + +### Kubuntu 22.10: What's New? + +![kubuntu 22.10 desktop][3] + +Kubuntu 22.10 is bringing in a lot of updates, some of the important ones that you can expect are: + +- **KDE Plasma 5.25** +- **Linux Kernel 5.19** +- **PipeWire** +- **Firefox 104** +- **Qt 5.15.6** + +> 💡Kubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][4]. + +#### KDE Plasma 5.25 + +![kubuntu 22.10 kde version][5] + +Even though[KDE Plasma 5.26][6] was released recently, Kubuntu 22.10 ships with KDE Plasma 5.25. + +However, KDE Plasma 5.25 is still a major update over 5.24, which contained a lot of improvements such as, enhanced support for touchpads/touchscreens, upgrades to the user interface, and more. + +You can read our coverage of KDE Plasma 5.25 to learn more: + +Also, you can expect KDE Plasma 5.26 to come as a point release instead of being part of the launch of Kubuntu 22.10. + +#### PipeWire Default + +Like most Ubuntu 22.10-based distros, [PipeWire][7] is the default audio/video handler in this version of Kubuntu. + +It replaces [PulseAudio][8], known to not play nice with Ubuntu 22.10. + +#### Linux Kernel 5.19 + +![kubuntu 22.10 linux kernel 5.19][9] + +Kubuntu 22.10 features the latest Linux Kernel 5.19, this should lead to improved support for ARM SoCs, Arc Alchemist GPUs, various BTRFS improvements, initial support for AMD RDNA3 graphics, and more. + +#### Wayland Session for Testing + +![kubuntu 22.10 wayland session switcher][10] + +Kubuntu 22.10 features initial support for a Plasma Wayland session, but it is intended for testing purposes only and is not a complete integration. + +![kubuntu 22.10 wayland session info][11] + +#### Other Upgrades + +Some of the other updates include the following: + +- Ability to customize desktop accent color. +- Firefox 104 snap as the default browser. +- Qt 5.15.6 +- LibreOffice 7.4 +- Improved App Store. + +To explore more about the release, refer to the [official release notes][12]. + +### Download Kubuntu 22.10 + +You can download the latest ISO from [Ubuntu's central image repository][13] or its [official website][14]. + +[Kubuntu 22.10][14] + +It might take a while for its official website to make the ISO available. + +💬 Are you excited about this release? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kubuntu-22-10-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/kubuntu-22-10-release.jpg +[2]: https://kde.org/plasma-desktop/ +[3]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Desktop.png +[4]: https://itsfoss.com/long-term-support-lts/ +[5]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_KDE_Version.png +[6]: https://news.itsfoss.com/kde-plasma-5-26-release/ +[7]: https://pipewire.org/ +[8]: https://www.freedesktop.org/wiki/Software/PulseAudio/ +[9]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Linux_Kernel.png +[10]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Wayland_Session.png +[11]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Wayland_Session_2.png +[12]: https://wiki.ubuntu.com/KineticKudu/ReleaseNotes/Kubuntu +[13]: https://cdimage.ubuntu.com/kubuntu/releases/22.10/release/ +[14]: https://kubuntu.org/getkubuntu/ From 2a6eaee006c9237983fd9047516c43523dc9b7ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:17:39 +0800 Subject: [PATCH 1633/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221022-=E2=AD=90=EF=B8=8F-PaperDE-is-a-Touch-Frien?= =?UTF-8?q?dly-Linux-Desktop-Environment.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-a-Touch-Friendly-Linux-Desktop-Environment.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/tech/20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md diff --git a/sources/tech/20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md b/sources/tech/20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md new file mode 100644 index 0000000000..7189e0dff7 --- /dev/null +++ b/sources/tech/20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md @@ -0,0 +1,92 @@ +[#]: subject: "PaperDE is a Touch-Friendly Linux Desktop Environment" +[#]: via: "https://news.itsfoss.com/paperde/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +PaperDE is a Touch-Friendly Linux Desktop Environment +====== + +PaperDE is a simple, and touch-friendly desktop environment to look out for. + +![PaperDE is a Touch-Friendly Linux Desktop Environment][1] + +Seeing that many desktop environments exist, you may ask, why do we need another? + +Well, the answer is simple. It is good to have options. + +Having various user experiences enables you to experiment with different setups until you find the perfect one. If you are new to the Linux world, you may want to check out some of the best desktop environments available: + +So, what does PaperDE bring to the table? + +### PaperDE: A Minimal Desktop Environment + +![paperde desktop view][2] + +[PaperDE][3] aims to be a simple, lightweight desktop environment with a touchscreen-friendly user interface. + +Yes, it is not a wildly different idea. But, as per the official screenshots, it looks pretty. + +When closely examined, PaperDE looks similar to a mix of desktop environments such as [GNOME][4] and [Budgie][5]. + +![paperde apps][6] + +It is being made from the ground up, with Qt/Wayland and [Wayfire][7] at its core, and features [PipeWire][8] as the default audio/video stack. + +Furthermore, the DE will feature a dock bar for easy access to pinned apps and support adding various widgets from the [C-Suite][9] apps to the main screen. + +![paperde widgets][10] + +When asked about its touchscreen and gesture support on Reddit, one of the developers ([rahmanshaber][11]) mentioned: + +> No, gestures doesn't work in real life, as you may use it in a tablet where it didn't came with linux installed. We used UI/ UX design approach that makes it easier to navigate the DE using finger and touch. + +### Can You Try PaperDE Now? + +The short answer is, yes. + +The long answer is, that it is still in the early stages of development. + +> 💡They recently released PaperDE 0.2.0 a few days back, you can check out their GitLab [project][12] to learn more. + +The developers say that it is only possible to test it out using Arch, and no Flatpak or Snap packages are available to install. + +I did try using the AUR package, but it failed to build on Arch Linux. + +The developers have said that PaperDE will also be made available in the [official repository][13] of Alpine Linux soon. But, for other packages, maintainers and contributors will have to help. + +If you are looking for an experiment to test, you can try it out. + +[PaperDE][12] + +_💬 Are you excited to see a new desktop environment in the works? Or do you think you do not need another project like this?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/paperde/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/paper-de.png +[2]: https://news.itsfoss.com/content/images/2022/10/PaperDE-1.png +[3]: https://cubocore.org/paperde.html +[4]: https://www.gnome.org/ +[5]: https://ubuntubudgie.org/ +[6]: https://news.itsfoss.com/content/images/2022/10/paperde-apps.png +[7]: https://github.com/wayfirewm/wayfire +[8]: https://pipewire.org/ +[9]: https://cubocore.org/coreapps.html +[10]: https://news.itsfoss.com/content/images/2022/10/PaperDE-2.png +[11]: https://gitlab.com/rahmanshaber +[12]: https://gitlab.com/cubocore/paper/paperde +[13]: https://pkgs.alpinelinux.org/packages From 5b27d549e909c32983f51fff5b1109f90593b9cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:19:49 +0800 Subject: [PATCH 1634/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221019-=E2=AD=90=EF=B8=8F-How-to-Enable-and-Access?= =?UTF-8?q?-USB-Drive-in-VirtualBox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o-Enable-and-Access-USB-Drive-in-VirtualBox.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 sources/tech/20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md diff --git a/sources/tech/20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md b/sources/tech/20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md new file mode 100644 index 0000000000..a8223410e6 --- /dev/null +++ b/sources/tech/20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md @@ -0,0 +1,113 @@ +[#]: subject: "How to Enable and Access USB Drive in VirtualBox" +[#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Enable and Access USB Drive in VirtualBox +====== + +**Here’s a precise guide on how you can enable USB in Oracle VirtualBox.** + +When you work in a Virtual machine environment, the USB is usually plugged into the host system. But it is a little difficult to access that USB content from the guest system. + +In VirtualBox, you need to install some extensions and enable some settings to access USB in. Here’s how. + +This article assumes that you have already installed VirtualBox and also installed some Linux distribution or operating system inside it. + +If not, check out the [articles here][1]. + +Please note that Oracle VM VirtualBox Extension Pack comes with Oracle’s Personal Use and Evaluation License (PUEL). This license is different from VirtualBox, which is under GPL. If you are using the below steps for commercial purposes, make sure you [read this page][2] carefully. + +### Enable USB in VirtualBox 7.0 + +#### Install VirtualBox Extension Pack + +- Open the VirtualBox download page and download the VirtualBox Extension pack for all supported platforms using [this link][3]. + +![Download the extension pack][4] + +- Then Click on `File > Tools > Extension Pack Manager.` + +- Click on the `Install` button in the toolbar and select the downloaded .vbox-extpak file. + +- Hit `Install`. Accept the terms, and give the admin password for the installation. + +![install extension pack manager][5] + +![install extension pack manager after accepting terms][6] + +- After successful installation, you can see it in the installed list. + +- Restart your host system. Restarting is mandatory. + +#### Enable USB in the guest box + +- Plugin the USB stick into your host system – which you want to access from the guest virtual machine. + +- Start VirtualBox and right-click on the VM name where you want to enable USB. Select Settings. + +![Launch settings for the virtual machine][7] + +- On the left pane, click on USB. Then select the controller version. For example, you can select USB 3.0. Then click on the small plus icon to add a USB filter. + +- In this list, you should see your USB stick name (which you plugged in). For this example, I can see my Transcend Jetflash drive, which I plugged in. + +- Select it and press OK. + +[![Select the USB stick][8]][9] + +- Now, start your virtual machine. Open the file manager, and you should see the USB is enabled and mounted on your virtual machine. + +- In this demonstration, you can see the Thunar file manager of my [Arch-Xfce][10] virtual machine is showing the contents of my USB stick. + +[![Enabling USB and accessing contents from VirtualBox][11]][12] + +### Usage notes + +Now, here are a couple of things you should remember. + +- When you plug in the USB in the host system, keep it mounted. But do not open or access any file before launching the virtual machine. + +unmounted in the host system + +- Once you start your virtual machine, the USB will be and auto-mounted in the guest system, i.e. your virtual machine. + +- After you finish with a USB stick, ensure to eject or unmount it inside a virtual machine. Then it will be accessible again inside your host system. + +### Wrapping Up + +VirtualBox is a powerful utility and provides easy-to-use features to extensively set up your Virtual Machines. The steps are straightforward, and make sure your USB stick is detected properly in the host system to work. + +Also, remember that USB stick detection via extension pack is not related to VirtualBox guest addition. They are completely unrelated and provide separate functions. + +Finally, let me know if this guide helps you in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/enable-usb-virtualbox/ + +作者:[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/tag/virtualbox +[2]: https://www.virtualbox.org/wiki/VirtualBox_PUEL +[3]: https://www.virtualbox.org/wiki/Downloads +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Download-the-extension-pack.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager-after-accepting-terms.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Launch-settings-for-the-virtual-machine.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick-1024x399.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg +[10]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/ +[11]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox-1024x639.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg From a548fc0ee54f1042bbf6dfec890a9e642e074dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:20:32 +0800 Subject: [PATCH 1635/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221017-=E2=AD=90=EF=B8=8F-How-to-Update-or-Upgrade?= =?UTF-8?q?-Ubuntu-Offline-without-Internet.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-or-Upgrade-Ubuntu-Offline-without-Internet.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md diff --git a/sources/tech/20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md b/sources/tech/20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md new file mode 100644 index 0000000000..27ae2c5881 --- /dev/null +++ b/sources/tech/20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md @@ -0,0 +1,115 @@ +[#]: subject: "How to Update or Upgrade Ubuntu Offline without Internet" +[#]: via: "https://www.debugpoint.com/how-to-update-or-upgrade-ubuntu-offline-without-internet/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Update or Upgrade Ubuntu Offline without Internet +====== + +**This guide explains the steps to update Ubuntu offline without an active internet connection.** + +There are many situations where you may need to update your Ubuntu installation without an internet connection. You may be staying remotely or have a set of network Ubuntu systems that are not connected to the internet. In any case, keeping your system updated with the latest packages is always required. + +Of course, updating any system while connected to the internet is always recommended. + +But sometimes, it is not possible for security reasons also. Connecting to the internet may bring additional hardening steps for your systems to protect them from hackers and malware. + +The following method using [apt-offline][1] helps to fix those use cases and outlines the steps to update your Ubuntu offline without the internet. + +### Pre-requisite + +- You need to have access to a Ubuntu system that has an internet connection (e.g. your friends, cafe, or lab system) +- A USB pen drive to hold the packages +- Install the apt-offline package in both the systems – a) the offline system and b) the system with an internet connection. + +### Install apt-offline + +both systems + +You can install the `apt-offline` using the following command. Remember, you have to get it installed in . + +``` +sudo apt install apt-offline +``` + +In case you need the `apt-offline` to be installed in the target system, you can download the deb package from the below link and copy it to the target system via a USB stick. Then run the below command to install. + +The download link for Ubuntu 22.04 LTS and other versions is present below. You can choose a mirror and download the deb file. + +[download .deb files – apt-offline][2] + +``` +sudo dpkg -i name_of_package.deb +``` + +### Update Ubuntu offline: Steps + +Open a terminal in the offline Ubuntu system and create a signature file using the following command in your home directory. + +``` +sudo apt-offline set ~/offline-data.sig +``` + +[![Create the sig file][3]][4] + +This creates a file containing the required package paths and details for download. + +[![sig file contents][5]][6] + +Copy this .sig file to a USB and take it to a Ubuntu system with internet access. + +Create a directory (see example below) to hold the downloaded packages in the Ubuntu system with an internet connection. + +Open a terminal and run the following command to download the required packages. Remember to change the download directory and .sig file path as per your system. + +``` +apt-offline get -d ~/offline-data-dir offline-data.sig +``` + +[![Download the packages to install offline][7]][8] + +offline Ubuntu system + +You should see the files are downloaded properly. Now copy the entire downloaded directory to the USB drive and plug it into the . + +Then run the following command to install the downloaded packages to the offline system. Change the directory path as per your system. + +``` +sudo apt-offline install offline-data-dir/ +``` + +[![Installing packages - offline update ubuntu][9]][10] + +The update should run smoothly if all goes well, and you should have an updated Ubuntu system. + +You must repeat the steps above to keep your Ubuntu system up-to-date offline whenever you need to update. + +I hope this guide helps you to update your Ubuntu system in an offline mode. If you face any trouble, let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/how-to-update-or-upgrade-ubuntu-offline-without-internet/ + +作者:[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://github.com/rickysarraf/apt-offline +[2]: https://packages.ubuntu.com/focal/all/apt-offline/download +[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/Create-the-sig-file-1024x204.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/03/Create-the-sig-file.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/sig-file-contents-1024x250.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/sig-file-contents.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/03/Download-the-packages-to-install-offline-1024x437.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/03/Download-the-packages-to-install-offline.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/03/Installing-packages-offline-update-ubuntu-1024x509.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2021/03/Installing-packages-offline-update-ubuntu.jpg From 7901c418634dff0b53e77eec33c6ccd9c8fb32c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:21:51 +0800 Subject: [PATCH 1636/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221017-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Top-10?= =?UTF-8?q?-Best-Linux-Distributions-in-2022-For-Everyone.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0-Best-Linux-Distributions-in-2022-For-Everyone.md | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 sources/tech/20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md diff --git a/sources/tech/20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md b/sources/tech/20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md new file mode 100644 index 0000000000..abb6345f04 --- /dev/null +++ b/sources/tech/20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md @@ -0,0 +1,221 @@ +[#]: subject: "Top 10 Best Linux Distributions in 2022 For Everyone" +[#]: via: "https://www.debugpoint.com/best-linux-distributions-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Best Linux Distributions in 2022 For Everyone +====== + +**We compiled a list of the 10 best Linux distributions for everyone in 2022 based on their stability, attractiveness and time required to configure after installation.** + +The Linux Distribution space is heavily fragmented to the point that a new fork is being created almost daily. A very few of them are unique and bring something different to the table. Most of them are just the same Ubuntu or Debian based with a different theme or a wrapper. + +The Linux distro landscape is so dynamic that it changes every month. Some Linux distributions become more stable with ever-changing packages and components, while others become unstable in quality. Hence, it’s challenging to pick and choose the best Linux distribution for your school, work or just casual browsing, watching movies, etc. Not to mention, many Linux distributions are discontinued yearly due to a lack of contributions, cost overruns and other reasons. + +That said, we compiled the below 10 best Linux distributions in 2022, which are perfect for any user or use case. That includes casual dual-boot users with Windows 10 or 11, students, teachers, developers, creators, etc. Take a look. + +### Best Linux Distributions of 2022 + +#### 1. Fedora KDE + +The first Linux distribution, which I think is the best on this list, is Fedora Linux KDE Edition. The primary reason is that Fedora Linux is very stable with the latest tech, and KDE Plasma is super fast and perfect for all users. Moreover, this Fedora and KDE Plasma combination doesn’t require further modification or tweaks after installation. Over the last couple of releases and after the latest [Fedora 36][1] release feedback, Fedora Linux with KDE Plasma has become the go-to distribution for every possible use case and workflow. + +In addition, KDE Plasma also brings KDE Applications and goodies, eliminating additional software you need. And with the help of Fedora repo and [RPM Fusion][2], you can blindly trust Fedora Linux with KDE Edition for your daily driver. + +[![Fedora KDE Edition - Best Linux Distributions of 2022][3]][4] + +On a side note, you can also consider the [Fedora Linux workstation][5] edition with GNOME if you prefer a GNOME-styled desktop. In addition, you might consider other [Fedora Spins][6] or [Fedora Labs][7] if you like a different desktop flavour. + +You can download Fedora KDE Edition here. Other downloads with [torrent details][8] are present here. + +[Download Fedora][9] + +#### 2. KDE Neon + +The second distribution we would like to feature in this list is KDE Neon. The KDE Neon is based on the Ubuntu LTS release at its base. But the KDE Framework and KDE Applications with KDE Plasma desktop are the latest from the team. The primary reason for featuring this is that it is perfect for you if you want a Ubuntu LTS base distribution but want the latest KDE Applications. In fact, you can use it for your daily driver for years to come, provided you keep your system up to date. + +In contrast, the Kubuntu LTS releases are also perfect. But they may not have the latest KDE Framework or applications. + +[![KDE Neon - Best Linux Distributions of 2022][10]][11] + +You can download the KDE Neon at the below link. Make sure to choose the user edition while downloading. + +[Download KDE Neon][12] + +#### 3. Ubuntu LTS Releases with GNOME + +The Ubuntu LTS releases (with default GNOME Desktop) are the most used Linux Distribution today. It’s the most popular, most downloaded and used by users, enterprises and several real-world needs. + +There is no doubt about the Ubuntu LTS version’s power and stability. It has been time-tested. With the vast community support, Ubuntu LTS versions with customised GNOME might be the perfect fit for your needs. + +Most third-party applications and games primarily target Ubuntu, and you get a much bigger support base than all the distributions in this list. But the recent trends of decisions from Canonical (Ubuntu’s creator), such as forcing users to adopt Snap and other stuff, may raise a concern for you if you are an advanced user. + +But for casual users who want to browse the internet, watch movies, listen to music and do personal work, you can blindly trust Ubuntu LTS versions as your best Linux distribution. + +[![Ubuntu LTS with GNOME][13]][14] + +Finally, you can download Ubuntu 22.04 LTS (the current one) using the below link. + +[Download Ubuntu][15] + +#### 4. Linux Mint Cinnamon + +One of the Linux distributions that “just works” out-of-the-box in “any” type of hardware. The [Linux Mint][16] is fourth on this list. The above three distributions (Fedora, Ubuntu LTS) may not work well in older hardware (PC or Laptop) having low memory and older CPU. But Linux Mint is perfect in those use cases with its unique ability to make everyone welcome. + +Furthermore, with Linux Mint, you do not need to install any additional applications after a fresh install. It comes with every possible driver and utility for all use cases. For example, your printer, webcam, and Bluetooth would work in Linux Mint. + +In addition, if you are new to Linux or Windows users who plan to migrate, then it is a perfect distribution to start. Its legacy menu-driven Cinnamon desktop is one of the best open-source desktops today. + +[![Linux Mint Cinnamon Edition][17]][18] + +If you ever get confused or have no time to choose which distribution is best for you, choose the Linux Mint Cinnamon edition. With that said, you can download Linux Mint using the below link. + +[Download Linux Mint][19] + +#### 5. Pop OS + +The Pop OS is developed by American computer manufacturer System76 for their hardware lineup. But it is one of the famous and emerging Linux distributions based on Ubuntu. The Pop OS is primarily known to have perfect for modern hardware (including NVIDIA graphics) and brings some unique features absent in the traditional Ubuntu with GNOME desktop. + +For example, you get a well-designed COSMIC desktop with Pop OS (which is currently being written with Rust), a built-in tiling feature, well-optimized power controls, and a stunning Pop Shop. The Pop Shop is a software store designed by its maker to give you a well-categorized set of applications for your study, learning, development, gaming, etc. This distribution is also perfect for gaming if you plan to start your Linux journey with gaming in mind. + +In addition, if you want a professional-grade Linux distribution with official help and support, you should check out actual System76 hardware with Pop OS. + +[![Pop OS - Best Linux Distributions of 2022][20]][21] + +However, you can download the Pop OS for various hardware for free using the link below. + +[Download Pop OS][22] + +#### 6. MX Linux + +MX Linux is a well-designed Linux distribution primarily targeted at older hardware with productivity and stability in mind. It’s an emerging Linux distribution that is free from systemd and uses the init system. Based on the Debian Stable branch, it brings Xfce Desktop, KDE Plasma desktop and Fluxbox with its own powerful MX utilities. + +You can use MX Linux for all of your needs. But I would not recommend it for gaming or development work. If you need a stable Linux distribution for your older hardware, free from systemd, you can choose MX Linux. Especially the Fluxbox edition. + +[![MX Linux][23]][24] + +You can download MX Linux from its official website below. + +[Download MX Linux][25] + +#### 7. Endeavour OS + +If you like the concept of “Rolling release”, which gives you all the latest packages and operating system components, Arch Linux is perhaps the best you can have. However, installing Arch Linux might be tricky for new users, although the recent [archinstall][26] does a pretty job. + +However, EndeavourOS is a perfect Arch Linux-based distribution which features Xfce, KDE Plasma and other popular desktops out of the box. Armed with the Calamares installer, it is super easy to install Endeavour OS. + +However, this might not be the best Linux distribution for beginners. But it is the best one for little advanced users who are already familiar with Linux. + +On the brighter side, you get to say, “btw, I use Arch”. + +[![EndeavourOS - Best Linux Distributions of 2022][27]][28] + +Last but not least, EndeavourOS has excellent community support, and its Telegram channel support is the best in my personal experience. So, if you ever get stuck, help is just a message away. + +Download this excellent and emerging Linux distribution using the link below. + +[Download Endeavour OS][29] + +#### 8. Zorin OS + +Zorin OS is a Linux distribution based on Ubuntu Linux and is best for those who want nice looks, power, stability, and a productive system. In this Linux distribution, the default desktop is a blend of Xfce and GNOME 3, heavily customised. One of the advantages of Zorin is it comes with ready-made themes. With those themes, you can make Zorin OS look like Windows and macOS with just one click. + +This helps the new users easily migrate to Linux and use Zorin for their day-to-day work. + +[![Zorin OS - Best Linux Distributions of 2022][30]][31] + +Additionally, Zorin OS maintains three editions – Pro, Lite and Core, which cater to different user bases. The Pro edition is a paid version with additional themes and tweaks for a minimal fee. + +You can download Zorin OS from the below link. + +[Download Zorin OS][32] + +#### 9. Debian with Xfce + +There are many Linux distributions which are based on Debian. But I have included vanilla Debian in this list because of its excellent stability and power. Debian – termed a “Universal Operating System”, is perfect for moderately experienced users of Linux. But if you can set up a daily driver with Debian Stable with Xfce, you can run it for years without reformating or reinstalling for fear of breaking your system. + +Debian package repo contains all possible packages, which gives you the ultimate flexibility to set up any custom system you want. + +![Debian with Xfce Desktop][33] + +A perfect Linux distribution if you know how to set up a Debian box with some experience. You can download and install Debian after choosing the proper installer for your system here. Debian comes with an installer for several architectures. You may [read our guide][34]if you are confused about which one to choose and how to install it. + +[Download Debian][35] + +#### 10. Ubuntu Studio + +The final best Linux distribution we feature in this list is Ubuntu Studio. Ubuntu Studio is an official Ubuntu Linux distribution specially curated for Multimedia production type of work. + +Ubuntu Studio comes with the low-latency mainline Linux Kernel to give additional advantages to multiple operations. In addition, Ubuntu Studio brings its native “Ubuntu Studio Controls”, which provides creators with several options to tweak CPU settings for heavy CPU-intensive rendering and processing. + +[![Ubuntu Studio 22.04 LTS Desktop][36]][37] + +Moreover, a massive list of free and open-source audio, graphics, and video applications is pre-loaded into the ISO, saving time if you plan to build a multimedia workstation. + +Ubuntu Studio is powered by the KDE Plasma desktop, the perfect Linux distribution for all creators worldwide. + +You can download Ubuntu Studio from the below link. + +[Download Ubuntu Studio][38] + +### Closing Notes + +I hope this list of “curated and best Linux distributions” helps you pick one for yourself, your friends and co-workers. These are based on their current status (active project), prospects (i.e. it has a well-defined vision for the future) and how easy to set up and out-of-the-box experience. + +Finally, which Linux distribution should you think should be in the top 10? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-linux-distributions-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2022/02/fedora-36/ +[2]: https://www.debugpoint.com/2020/07/enable-rpm-fusion-fedora-rhel-centos/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-KDE-Edition-1024x640.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-KDE-Edition.jpg +[5]: https://getfedora.org/en/workstation/download/ +[6]: https://spins.fedoraproject.org/ +[7]: https://labs.fedoraproject.org/ +[8]: https://torrent.fedoraproject.org/ +[9]: https://spins.fedoraproject.org/kde/download/index.html +[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Neon-1024x578.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Neon.jpg +[12]: https://neon.kde.org/download +[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ubuntu-LTS-with-GNOME-1024x575.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ubuntu-LTS-with-GNOME.jpg +[15]: https://ubuntu.com/download/desktop +[16]: https://www.debugpoint.com/linux-mint/ +[17]: https://www.debugpoint.com/wp-content/uploads/2022/05/Linux-Mint-Cinnamon-Edition-1024x576.jpg +[18]: https://www.debugpoint.com/wp-content/uploads/2022/05/Linux-Mint-Cinnamon-Edition.jpg +[19]: https://linuxmint.com/download.php +[20]: https://www.debugpoint.com/wp-content/uploads/2022/05/Pop-OS-1024x577.jpg +[21]: https://www.debugpoint.com/wp-content/uploads/2022/05/Pop-OS.jpg +[22]: https://pop.system76.com/ +[23]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux-1024x522.jpg +[24]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux.jpg +[25]: https://mxlinux.org/download-links/ +[26]: https://www.debugpoint.com/2022/01/archinstall-guide/ +[27]: https://www.debugpoint.com/wp-content/uploads/2022/05/EndeavourOS-1024x574.jpg +[28]: https://www.debugpoint.com/wp-content/uploads/2022/05/EndeavourOS.jpg +[29]: https://endeavouros.com/download/ +[30]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS-1024x575.jpg +[31]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS.jpg +[32]: https://zorin.com/os/download/ +[33]: https://www.debugpoint.com/wp-content/uploads/2022/05/Debian-with-Xfce-Desktop.jpg +[34]: https://www.debugpoint.com/2021/01/install-debian-buster/ +[35]: https://www.debian.org/distrib/ +[36]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-22.04-LTS-Desktop-1024x631.jpg +[37]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-22.04-LTS-Desktop.jpg +[38]: https://ubuntustudio.org/download/ From b785f85ed1da2ce0f3b07e7aa48fd13c976d4d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 19:33:01 +0800 Subject: [PATCH 1637/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221019-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-How-to?= =?UTF-8?q?-Remove-Snap-Packages-in-Ubuntu-Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sources/tech/20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md diff --git a/sources/tech/20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md b/sources/tech/20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md new file mode 100644 index 0000000000..af94f6a4bf --- /dev/null +++ b/sources/tech/20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md @@ -0,0 +1,164 @@ +[#]: subject: "How to Remove Snap Packages in Ubuntu Linux" +[#]: via: "https://www.debugpoint.com/remove-snap-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Remove Snap Packages in Ubuntu Linux +====== + +**A tutorial on how to remove Snap from Ubuntu Linux and getting a snap-free system.** + +Snap packages developed by Canonical are beneficial for several use cases. It provides an easy and faster update of applications directly to the end-users. Not only that, it has several other benefits, such as it comes with all dependencies packaged and allows multiple installations of the same applications. Furthermore, it runs in a sandbox mode providing security and other benefits. + +Among all these benefits, there are other debatable drawbacks of Snap tech. For example, almost every user who used Snap reported its slower performance, including its startup time, compared to native deb or RPM packages. In addition, due to its design, the application installation size is huge and costs disk space because it packages all the dependencies. + +Not only that, but due to its sandbox nature, the Snap apps may not access several areas of your Linux desktop until managed with proper permission. + +This guide explains how you can remove the snap from the Ubuntu system altogether. + +These steps are tested in [Ubuntu 22.04 LTS Jammy Jellyfish][1]. However, it should work for all applicable Ubuntu versions. + +Warning: These steps will remove Software and Firefox, the two critical applications in your Ubuntu system. Make sure you take backups of bookmarks and other Firefox settings before trying these steps. + +### Remove Snap Packages in Ubuntu Linux + +- Open a terminal and view the list of Snap packages installed in your system using the below command. It shows the snap packages such as Firefox, Software store, themes and other core packages installed by default. + +``` +snap list +``` + +![Snap list in Ubuntu][2] + +- Remove snap packages in the following order. Firstly remove Firefox. Secondly, snap-store and the other packages that you see in the above command output in your system. + +``` +sudo snap remove --purge firefoxsudo snap remove --purge snap-storesudo snap remove --purge gnome-3-38-2004 +``` + +``` +sudo snap remove --purge gtk-common-themessudo snap remove --purge snapd-desktop-integrationsudo snap remove --purge baresudo snap remove --purge core20sudo snap remove --purge snapd +``` + +- Finally, remove the snap daemon via apt command. + +``` +sudo apt remove --autoremove snapd +``` + +[![remove snap and others][3]][4] + +That’s not all. Even if you removed the snaps using the above command, the sudo apt update command again brings back the snap if you don’t stop the apt trigger. + +- So, to stop that, we need to create an apt preference file in **/etc/apt/preferences.d/ **and create a new preference file to stop snap. Create a new file called **nosnap.pref** in /etc/apt/preferences.d/ + +``` +sudo gedit /etc/apt/preferences.d/nosnap.pref +``` + +- And add the following lines, then save the file. + +``` +Package: snapdPin: release a=*Pin-Priority: -10 +``` + +![create a pref file][5] + +_The apt preference is a potent tool if you know how to use it. For example, in the above statements, the Pin-Priority -10 means preventing a package from installation._ + +_Unrelated to this tutorial, for example, if you want to give super high priority to all the packages from distribution code name=bullseye, then one may see these preferences. If you want to learn more, you can visit the [apt man pages][6]._ + +``` +Package: *Pin: release n=bullseyePin-Priority: 900 +``` + +- Returning to the topic, once you save and close the above file, run the below again from the terminal. + +``` +sudo apt update +``` + +- Finally, the steps are complete for getting rid of the snap from Ubuntu. + +### Installing Software and Firefox as deb files after removing Snap from Ubuntu + +You removed Firefox and Sofware applications, so you need those for your work. + +You can use the following command to install the apt version of the Gnome Software. Make sure you use the `--install-suggests`. Otherwise, it will install the snap version again! + +``` +sudo apt install --install-suggests gnome-software +``` + +And to install firefox, use the official PPA via the below commands. + +``` +sudo add-apt-repository ppa:mozillateam/ppa +sudo apt update +sudo apt install -t 'o=LP-PPA-mozillateam' firefox +``` + +[![Add the PPA][7]][8] + +[![Install Firefox as deb file from PPA][9]][10] + +Once you have installed Firefox, enable the automatic update using the below commands. To learn more, [visit thi][11][s page][11]. + +``` +echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox +``` + +Last but not least, create another preference file for Firefox to give super high priority to the above PPA while running apt. If you don’t do this, the apt update command again pulls back firefox snap and brings over its “snap friends”. 😂 + +``` +sudo gedit /etc/apt/preferences.d/mozillateamppa +``` + +Finally, add these lines and save the file. + +``` +Package: firefox*Pin: release o=LP-PPA-mozillateamPin-Priority: 501 +``` + +That’s it. + +### Revert back to Snap in Ubuntu + +If you change your mind, remove the preference file and install the applications using the below commands below. + +``` +sudo rm /etc/apt/preferences.d/nosnap.prefsudo apt update && sudo apt upgradesudo snap install snap-storesudo apt install firefox +``` + +### Closing Notes + +Wrapping up the tutorial on removing snap in Ubuntu, I would say these are unnecessary efforts to eliminate Snap completely. Mainly these are difficult for new users. I hope this guide helps you to get rid of snap. Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/remove-snap-ubuntu/ + +作者:[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/01/ubuntu-22-04-lts/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Snap-list-in-Ubuntu.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/remove-snap-and-others-1024x544.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/remove-snap-and-others.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/create-a-pref-file.jpg +[6]: https://manpages.ubuntu.com/manpages/focal/man5/apt_preferences.5.html +[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Add-the-PPA-1024x550.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Add-the-PPA.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Install-Firefox-as-deb-file-from-PPA-1024x548.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/04/Install-Firefox-as-deb-file-from-PPA.jpg +[11]: https://www.debugpoint.com/2021/09/remove-firefox-snap-ubuntu/ From 974d980a0e42b08546d65bf26c155d8f6346dbe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 20:35:58 +0800 Subject: [PATCH 1638/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221019-=E2=AD=90=EF=B8=8F-How-to-Clean-Up-Snap-Ver?= =?UTF-8?q?sions-to-Free-Up-Disk-Space.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lean-Up-Snap-Versions-to-Free-Up-Disk-Space.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/tech/20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md diff --git a/sources/tech/20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md b/sources/tech/20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md new file mode 100644 index 0000000000..e836753192 --- /dev/null +++ b/sources/tech/20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md @@ -0,0 +1,106 @@ +[#]: subject: "How to Clean Up Snap Versions to Free Up Disk Space" +[#]: via: "https://www.debugpoint.com/clean-up-snap/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Clean Up Snap Versions to Free Up Disk Space +====== + +**This quick guide with a script helps to clean up old snap versions and free some disk space in your Ubuntu systems.** + +I was running out of disk space in my test system with Ubuntu. So I was investigating via GNOME’s Disk Usage Analyser to find out which package is consuming the precious SSD space. Apart from the usual cache and home directory – to my surprise, I found that Snap and Flatpak consume a considerable amount of storage space. + +![Snap size - before cleanup][1] + +Although, I always maintain a rule – not to use Snap or Flatpak unless necessary. This is mainly because of their installation size and other issues. I prefer vanilla deb and rpm packages. Over the years, I have installed and removed a certain amount of Snap packages in this test system. + +The problem arises after uninstallation; Snap keeps some residue files in the system, unknown to the general users. + +So I opened the Snap folder `/var/lib/snapd/snaps` and discovered that Snap is keeping track of older versions of previously installed/uninstalled packages. + +For example, in the below image, you can see GNOME 3.28, 3.34, and Wine – all of these are removed long back. But they are still there. It’s happening because of the Snap design, which keeps versions of uninstalled packages after a proper uninstallation. + +![Files under snaps directory][2] + +Alternatively, you can get the same in the terminal using: + +``` +snap list --all +``` + +![snap list all][3] + +The default value is 3 for several revisions for retention. That means Snap keeps three older versions of each package, including the active version. This is okay if you do not have constraints on your disk space. + +But for servers and other use cases, this can easily run into cost issues, consuming your disk space. + +However, you can easily modify the count using the following command. The value can be between 2 to 20. + +``` +sudo snap set system refresh.retain=2 +``` + +### Clean Up Snap Versions + +In a post in SuperUser, Popey, the ex-Engineering Manager at Canonical, [provided a simple script][4] that can clean up old versions of Snaps and keep the latest one. + +Here’s the script we will use to clean the Snap up. + +``` +#!/bin/bash + #Removes old revisions of snaps + #CLOSE ALL SNAPS BEFORE RUNNING THIS + set -eu + LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | + while read snapname revision; do + snap remove "$snapname" --revision="$revision" + done +``` + +Save the above script as .sh in a directory (for example`clean_snap.sh`), give it executable permission and run. + +``` +chmod +x clean_snap.sh +``` + +When I ran the script, it reduced a lot of disk space. The script would also show the name of the package being removed. + +![Executing the script][5] + +![Snaps size after cleanup][6] + +### Closing Notes + +There are always debates on how efficient Snap’s design is. Many say it is broken by design, bloated, and heavy on systems. Some part of that argument is true, I would not deny it. The whole concept of sandboxing applications is great if implemented and enhanced properly. I believe, Flatpak does a better job compared to Snap. + +That said, I hope this helps you clean up some disk space. Although it is tested in Ubuntu, it should work in all Linux distribution that supports Snap. + +Also, check out our guide on [how to clean up Ubuntu][7] with additional steps. + +Finally, if you are looking to clean up **Flatpak** apps, refer [this guide][8]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/clean-up-snap/ + +作者:[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/2021/03/Snap-size-before-cleanup.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/Files-under-snaps-directory.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg +[4]: https://superuser.com/a/1330590 +[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/Executing-the-script.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snaps-size-after-cleanup.jpg +[7]: https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/ +[8]: https://www.debugpoint.com/clean-up-flatpak/ From ec05ec2c2174ec780caeb10895059d5adc222620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 20:36:50 +0800 Subject: [PATCH 1639/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221019-=E2=AD=90=EF=B8=8F-How-to-Install-Viber-in-?= =?UTF-8?q?Ubuntu-and-Other-Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-to-Install-Viber-in-Ubuntu-and-Other-Linux.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/tech/20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md diff --git a/sources/tech/20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md b/sources/tech/20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md new file mode 100644 index 0000000000..dd768effec --- /dev/null +++ b/sources/tech/20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md @@ -0,0 +1,89 @@ +[#]: subject: "How to Install Viber in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/install-viber-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Viber in Ubuntu and Other Linux +====== + +**Here’s a quick guide on how you can install Viber in Ubuntu and other Linux systems.** + +[Viber][1] is a free, secure calling and messaging program for all popular mobile platforms and operating systems. + +It has a rich set of features such as voice/video calls, text messages with GIFs, stickers, photos, and videos. In addition, Viber features group chats, group calls and disappearing messages. + +Viber is a closed-source program, but available as free for Linux distributions with native executable clients. + +Here’s how to install it. + +### Install Viber on Linux + +It is available as an AppImage executable, deb and rpm package. Follow the respective button below to download it directly. The average executable size is ~180MB. + +[Download Appimage for all Linux distros][2] + +[Deb executable for Ubuntu][3] + +RPM package for Fedora + +If you have downloaded AppImage, simply change the permission to executable from any file manager. Then run. + +- For Ubuntu, Linux Mint, Debian and related distributions, you can install deb package via [many methods][4]. + +- You may double-click and open via the installed software manager. Or install via dpkg command as below. + +``` +sudo dpkg -i viber.deb +``` + +- For Fedora and RPM-based packages, you can install via the following command. + +``` +sudo dnf localinstall viber.rpm +``` + +For Arch Linux and other distributions, you can use the Appimage as I explained above. + +### Usage + +After you finish installing Viber, open it via the application menu. Here are a couple of things you need to remember. + +Before you start using Viber from your Laptop/desktop, you need to set it up on your mobile phone. Download and install Viber for your mobile platform from the below links. + +- [Google Play Store][5] +- [Apple App Store][6] + +Once installed, set up Viber. Remember, it requires your mobile number to register. + +After setting up, open the app on the Linux desktop. And you should see a screen like the one below. + +![Viber is Running in Linux][7] + +Scan the QR code from your mobile phone app, and you should be ready to use Viber on your Linux desktop. + +**Note:** Since it is a closed-source app, make sure you understand the terms of this app and privacy-related situations while using Viber. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-viber-linux/ + +作者:[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.viber.com/ +[2]: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb +[3]: https://download.cdn.viber.com/desktop/Linux/viber.rpm +[4]: https://www.debugpoint.com/install-deb-files/ +[5]: https://play.google.com/store/apps/details?id=com.viber.voip&hl=en_IN&gl=US +[6]: https://apps.apple.com/us/app/viber-messenger-chats-calls/id382617920 +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Viber-is-Running-in-Linux-1.jpg From 983899993d9c0632605365cb19a6c176eb52e1e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 20:37:55 +0800 Subject: [PATCH 1640/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221019-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Fedora?= =?UTF-8?q?-37--Top-New-Features-and-Release-Wiki.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-Fedora-37--Top-New-Features-and-Release-Wiki.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sources/tech/20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md diff --git a/sources/tech/20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md b/sources/tech/20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md new file mode 100644 index 0000000000..17fa981d7f --- /dev/null +++ b/sources/tech/20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md @@ -0,0 +1,140 @@ +[#]: subject: "Fedora 37: Top New Features and Release Wiki" +[#]: via: "https://www.debugpoint.com/fedora-37/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora 37: Top New Features and Release Wiki +====== + +**An article about Fedora 37 and its new features, release details and everything you need to know.** + +Fedora 37 development is wrapped up, and the BETA is [now out][1]. Hence the features and packages are final at this stage. + +In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule. + +- The beta was out on September 13, 2022. +- **Final Fedora 37 is planned for release on October 25, 2022.** + +![Fedora 37 Workstation with GNOME 43][2] + +### Fedora 37: Top New Features + +#### Kernel + +**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][3]. + +The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time. + +**Next** up, the desktop environments are updated in this release. + +#### Desktop Environment + +Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as: + +- [Revamped quick settings][4] with pill-buttons +- Files (nautilus) 43 with GTK4 and libadwaita port +- Files with rubberband, emblems, responsive sidebar-like features +- [Updated GNOME Web with WebExtension API support][5] + +And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][6] to learn more. + +Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include: + +- An updated overview screen. +- Dynamic wallpaper for dark and light themes. +- Animated wallpaper support +- Multi-button mouse support +- Updated KDE Framework and applications. + +…and much more which you can read in detail in my [KDE Plasma 5.26 feature guide][7]. + +Since the lightweight desktop LXQt gets a stable update, 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition. + +In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.26**for the respective Fedora flavours. + +Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are. + +#### System wide changes + +The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports. + +Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour.  + +As I [reported earlier][8], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release. + +Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection.  + +Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features. + +Following the tradition, this release also features a [brand new wallpaper][9] with both night and day versions. I must say it looks awesome (see the above desktop image). + +Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated. + +The toolchain, apps and programming stack are updated as follows: + +- Glibc 2.36 and Binutils 2.38 +- Node.js 18.x +- Perl 5.36 +- Python 3.11 + +### Summary of features in Fedora 37 + +So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features: + +- Linux Kernel 5.19 +- GNOME 43 +- KDE Plasma 5.26 +- Xfce 4.16 +- MATE 1.24 +- LXQt 1.1.0 +- A preview image of the new web-based installer +- The SDDM display manager defaults to Wayland (in KDE Plasma and others) +- Official Raspberry Pi 4 support +- Fedora Core OS becomes the official flavour +- Key packages dropping 32-bit support +- And associated toolchain and programming language updates. + +If you have spare time, you can[give it a spin][10] or test drive. Just be cautious that it is still BETA. + +Also, If you are daring enough, you can upgrade to this release with **caution** because, y’know it’s BETA. The commands below will help you to do that. + +``` +sudo dnf install dnf-plugin-system-upgrade +sudo dnf system-upgrade download --ref --releasever=37 +``` + +For Kinoite, Silverblue and other immutable versions, use: + +``` +rpm-ostree rebase fedora:fedora/37/x86_64/silverblue +``` + +**So, what’s your favourite feature of this release? Let me know in the comment section.** + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-37/ + +作者:[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://debugpointnews.com/fedora-37-beta/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg +[3]: https://www.debugpoint.com/linux-kernel-5-19/ +[4]: https://www.debugpoint.com/gnome-43-quick-settings/ +[5]: https://www.debugpoint.com/gnome-web-43-tab-view/ +[6]: https://www.debugpoint.com/gnome-43/ +[7]: https://www.debugpoint.com/kde-plasma-5-26/ +[8]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ +[9]: https://debugpointnews.com/fedora-37-wallpaper/ +[10]: https://getfedora.org/workstation/download/ From 1111feebf090ee3dcd8ef42dbfcdfb2c2422c006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 20:38:44 +0800 Subject: [PATCH 1641/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221020-=E2=AD=90=EF=B8=8F-How-to-Check--Xorg-or-Wa?= =?UTF-8?q?yland-Display-Server-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...w-to-Check--Xorg-or-Wayland-Display-Server-.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md diff --git a/sources/tech/20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md b/sources/tech/20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md new file mode 100644 index 0000000000..c13517957c --- /dev/null +++ b/sources/tech/20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md @@ -0,0 +1,91 @@ +[#]: subject: "How to Check: Xorg or Wayland Display Server?" +[#]: via: "https://www.debugpoint.com/check-wayland-or-xorg/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Check: Xorg or Wayland Display Server? +====== + +**Here’s how you can quickly check whether you are running Xorg or Wayland Display Server.** + +With every passing day, the modern Wayland display server is making its way to all Linux distributions. Although the legacy Xorg is still relevant and will stay, Wayland is undoubtedly better in security and other performance aspects. + +However, Xorg will not completely phase out anytime soon. Probably never. + +If you are running any Linux distribution, how can you check whether you are running Xorg or Wayland? Here’s how. + +### Wayland or Xorg: Which one are you running? + +- Open a terminal window (CTRL+ALT+T) in your Linux distributions (e.g. Ubuntu, Fedora, Arch…etc.). + +- Then type the following command and hit enter. + +``` +echo $XDG_SESSION_TYPE +``` + +- The output of the command will tell you whether the current session is Wayland or Xorg (X11). + +``` +[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland +``` + +![This command can give you details about Xorg or Wayland][1] + +That’s simple. However, there are other ways as well. + +### Other methods + +#### Using Settings + +If you want a graphical method, open your Linux distribution settings application. In the about section, you should see the Wayland/X11 mentioned under some label. + +For example, in the GNOME Settings, you can find it under “Windowing system”, as shown below. + +![In GNOME Settings you can find it][2] + +#### Using session values + +You can also find it out using `loginctl` which is the [systemd][3] login manager. Remember, it only works for systemd-based systems. + +Open a terminal and run the below command. You can see the session id value. In this example `c2`. + +``` +loginctl +``` + +Now, pass the session id to the following command to get the display server type. Make sure to change c2 to your system spec. + +``` +loginctl show-session c2 -p Type +``` + +![Using loginctl to find out][4] + +### Wrapping Up + +So, these are some of the ways you can find out whether you are running Systemd or Xorg in your Linux system. You can also use the above commands in your shell scripts for further process automation. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/check-wayland-or-xorg/ + +作者:[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/10/This-command-can-give-you-details-about-Xorg-or-Wayland-1024x612.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/In-GNOME-Settings-you-can-find-it.jpg +[3]: https://www.debugpoint.com/tag/systemd/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Using-loginctl-to-find-out.jpg From 8ee6e6a4c8cba03b6f9561754d67dc8d58c8c7cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 20:39:36 +0800 Subject: [PATCH 1642/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221021-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-10-Thi?= =?UTF-8?q?ngs-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 sources/tech/20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md diff --git a/sources/tech/20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md b/sources/tech/20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md new file mode 100644 index 0000000000..2b8a28db36 --- /dev/null +++ b/sources/tech/20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md @@ -0,0 +1,197 @@ +[#]: subject: "10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]" +[#]: via: "https://www.debugpoint.com/things-to-do-ubuntu-22-10/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip] +====== + +**Here’s our recommended list of 10 things after installing Ubuntu 22.10 “Kinetic Kudu” (GNOME Edition).** + +![][1] + +Ubuntu 22.10 brings exciting new features such as GNOME 43, the latest Kernel, a newly re-designed tray menu, Files features, Pipewire and [many more][2]. + +I am sure you are excited to try them. + +But wait. + +Before you head over to enjoy a new installation of Ubuntu, here’s an assorted list of customization tips which you can’t miss. + +### 10 Things to Do After Installing Ubuntu 22.10 + +#### 1. Update your system + +The first thing you need to do after installing Ubuntu 22.10 is to update your system. Often, the latest ISO may not contain all the updates due to time differences. So, to update your system, oprn a terminal window and run the following commands. + +``` +sudo apt update && sudo apt upgrade +``` + +Once the commands are complete, you can proceed to the next steps. + +#### 2. Remove Firefox Snap and install Flatpak or deb + +Since Ubuntu 21.10 last year, the default web browser Firefox comes as a Snap package. Now, if you are an average user, this may not be a problem or a thing to worry about. But many users may not like the Snap package of Firefox for several reasons. For example, the startup time is slow. Unnecessary Snap update notifications when there is a backend update and so on. + +So, to completely remove Firefox as Snap, you can follow the guide [on this page][3] that I have written. It’s a little complex and may take time. And install a deb version of Firefox from PPA or use the [Flatpak version][4]. + +As I said, this is an optional tip; you may skip it if you want. + +#### 3. Install and Enable Flatpak + +While every distribution today ships Flatpak by default, Ubuntu does not. Because it promotes its own sandboxing technology Snap. + +But Flatpak applications are the best for everyone. It helps you to quickly install and use several applications without worrying about dependency and other things. + +Most of the Flatpak applications are present in a centralised repo @ Flathub. + +To enable Flatpak applications in Ubuntu 22.10, follow the below commands. + +``` +sudo apt install flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +Also, if you want to learn more about this process, [read this nice guide][5], we published a while ago. + +#### 4. Review privacy settings + +I recommend you opt out of any data collection after installing Ubuntu. Everyone knows that it’s difficult to protect your privacy over the internet, no matter how hard you try. These little steps matter. + +To configure the privacy, open Settings and select Privacy. Then review the settings listed under privacy. + +Also, ensure to disable backend reporting to Ubuntu servers with your usage. Run the following command to do that. Unfortunately, there is no option in the settings to disable it. + +``` +sudo ubuntu-report -f send no +``` + +![Turn off location services in Ubuntu 22.10][6] + +#### 5. Explore GNOME 43 Features + +The most visual and functional change coming in this release is GNOME 43. This is going to impact everyone and your workflow. Because there are some fundamental and core changes. GNOME 43 brings a new pill-shaped tray menu and updated native applications with new features such as Files and GNOME Web. + +Do go over the detailed [GNOME 43 features][7] here to learn more. Or explore them yourself. + +![Quick Settings Demo in GNOME 43][8] + +#### 6. Ensure the audio works with Pipewire + +If you work with Audio primarily or your workflow deals with sound capture, playback and other stuff, then make sure your Audio works properly in Ubuntu 22.10, wired or via Bluetooth. + +Because there is a change in the audio server in this release for the first time in many years. The legacy PulseAudio is now replaced by the modern Pipewire. So it’s important for you to verify. + +#### 7. Install additional packages + +It’s important to ensure you can play all video and audio formats on your Ubuntu desktop. If you skipped the extra package installation during the setup, you could install them via the below commands. + +``` +sudo apt install ubuntu-restricted-extras +``` + +This should settle any video or audio playback problem in Ubuntu. Especially with GNOME Videos which can’t play anything by default. + +#### 8. Setup basic apps + +The base Ubuntu with GNOME comes with a very basic set of applications. Hence, it’s almost necessary for everyone to install applications before you use Ubuntu. + +Now, necessary apps are different for everyone due to diverse workflow. Hence, here’s a quick list of generic apps which I think you can go ahead and install since they are preety much common for all. + +- GIMP – Advanced photo editor +- VLC – Media play that plays anything without the need for additional codecs +- Leafpad – A lightweight text editor (even lightweight from default gedit) +- Synaptic – A far better package manager + +Command to install them: + +``` +sudo apt install -y gimp vlc leafpad synaptic +``` + +#### 9. Get some GNOME Extensions + +You can extend your GNOME 43’s functionality using several cool extensions. That includes customizing the top bar, tray, changing the adwaita accent colour further and more. So, to do that, make sure you install the GNOME Extension manager first via Flatpak using the command below. + +``` +flatpak install flathub com.mattjakeman.ExtensionManager +``` + +And once you do, you can go ahead with any extensions you want by searching for them in the above app. However, here’s a quick set of necessary extensions which I feel are perfect for your brand-new Ubuntu desktop. You can simply search with these names in the Extension manager apps. + +- Caffeine +- Custom Hot Corners +- Dash to Dock +- Blur my shell +- Gradients +- Hide Activities Button +- Net speed simplified + +#### 10. Prepare backup + +Last but not least, make sure you prepare for backup from the beginning. We always feel the necessity for backup when we run into difficult situations. To do that, the ideal app is Timeshift – which is easy to install and use. + +Here’s the set of commands you can run from the terminal to install. And after installation, you can open and follow the on-screen instructions to set up a backup. + +``` +sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift +``` + +### Bonus Tips + +If you want to customize your new Ubuntu installation further, here are some bonus tips for you. + +#### Install nice fonts + +Fonts impact everything. It’s one of the small yet impactful settings. However, Ubuntu comes with a default “Ubuntu regular” font, which is also good. + +But you can also go ahead and install some nice fonts from Ubuntu’s official repo. Here is some command to install them. + +``` +sudo apt install fonts-roboto fonts-cascadia-code fonts-firacode +``` + +After installation, you can change the font using the [GNOME Tweak tool][9]. + +#### Install TLP + +You must take care of your laptop battery if you are a heavy laptop user. While no battery is everlasting, you can still take some steps to ensure it lasts longer. The TLP is one of the best programs available in Linux, which helps to do that automatically. All you need to do is install it using the following command and run. + +``` +sudo apt install tlp +``` + +As per the recommendation, always keep the battery strength between 50% to 80%. Don’t overcharge or let it discharge below 50%. Don’t keep it plugged into power continuously. + +### Wrapping Up + +So, there you have it. Ten gettings started tips with some bonus for your Ubuntu desktop journey. + +I hope this helps and that you get to install & tweak your desktop with further customization. That said, do let me know what is your best after-install tips in Ubuntu in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/things-to-do-ubuntu-22-10/ + +作者:[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/10/u2210-things-hd-1024x576.jpg +[2]: https://www.debugpoint.com/ubuntu-22-10/ +[3]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ +[4]: https://flathub.org/apps/details/org.mozilla.firefox +[5]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/Turn-off-location-services-in-Ubuntu-22.10.jpg +[7]: https://www.debugpoint.com/gnome-43/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-Settings-Demo-in-GNOME-43.gif +[9]: https://www.debugpoint.com/customize-your-ubuntu-desktop-using-gnome-tweak/ From b5d6edf6164ebfd8c253309e800aa601535ccfea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 20:40:08 +0800 Subject: [PATCH 1643/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221021-=E2=AD=90=EF=B8=8F-How-to-Upgrade-to-Ubuntu?= =?UTF-8?q?-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md diff --git a/sources/tech/20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md b/sources/tech/20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md new file mode 100644 index 0000000000..5dc16933d9 --- /dev/null +++ b/sources/tech/20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md @@ -0,0 +1,117 @@ +[#]: subject: "How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic)" +[#]: via: "https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic) +====== + +**Here are the steps on how to upgrade your current Ubuntu 22.04 LTS Jammy Jellyfish to Ubuntu 22.10 Kinetic Kudu.** + +Always stay with long-term support release. That is the thumb rule. So, the prior [Ubuntu 22.04 LTS][1] Jammy Jellyfish is supported until April 2027. That’s a long time. + +In addition, LTS releases are super stable. They rarely break and become unstable. So, if you use your laptop/desktop or server installation with the LTS version, stay with it. + +However, if you want the latest Kernel, GNOME 43, and new technology like Pipewire – you might want to make the jump and want to upgrade to [Ubuntu 22.10 Kinetic Kudu][2]. + +Here’s how. + +### Upgrade Ubuntu 22.04 LTS (Jammy Jellyfish) to Ubuntu 22.10 (Kinetic Kudu) + +**Note**: I hope you are not running Ubuntu 21.10 Impish Indri, released last October. Because that’s out of support. But for any reason, if you are still running it, I would recommend you do a fresh install of 22.10. Or, do a step upgrade to 22.04 and then 22.10. + +#### Before you upgrade + +Before you upgrade, do a little housekeeping. This is super important. + +- Take backups of your `/home`, /`downloads` and other files to USB or any separate partition in case the upgrade fails. + +- If you have added additional PPA over time, make sure you note them down. However, the upgrade process would disable the PPA before it starts. However, after the upgrade is complete, make sure to enable them manually. + +- Note down and disable all the GNOME Extensions. Extensions tend to break after the upgrade if it’s not updated by the developer aligned with the GNOME version. + +- Keep a LIVE USB stick handy. + +#### Upgrade steps + +- Open Software & Update. + +- Go to the Updates tab. + +- Select ‘`Notify me of a new Ubuntu version'`and change it to `'For any new version'.` + +- This will tell the package manager to look for the Ubuntu 22.10 release details. + +![Make sure to change the option for new Ubuntu 22.10 release][3] + +- Open a terminal and run below. + +``` +sudo apt updatesudo apt upgrade +``` + +Alternatively, you can open the Software Updater as well. Install all the pending packages. + +- Once both the commands are complete, open the ‘Software Updates’. And you will see a prompt to Upgrade to Ubuntu 22.10 (as shown in the below image). + +![New version update prompt from the GUI method][4] + +- Now click on the `Upgrade` button and follow the on-screen instructions. The upgrade process takes time, so be patient and wait until it finishes. Make sure you have stable internet connectivity for the entire upgrade process. + +If you still don’t get the update, wait a day or two and try. + +- If you do not see the above prompt, do a manual reboot of your system. Add try again. + +**Via terminal** + +- Open the following file via the nano file editor in the terminal. + +``` +nano /etc/update-manager/release-upgrades +``` + +- Change the `Prompt=LTS` to `Prompt=normal`. Note: If you have changed the updates tab to “For any new version” as mentioned above, then this file should be updated already. But verify once. + +![Change the release upgrade file][5] + +- Press CTRL+O and CTRL+X to save and exit. + +- Finally, you can also run the below command to force the upgrade process from the terminal. + +``` +sudo do-release-upgrade -c +``` + +![New version update prompt from the terminal method][6] + +The upgrade process will take some time (minimum half-hour or more) based on your internet connection and hardware. Wait until it is complete. Once done, restart and enjoy the Ubuntu 22.10 Kinetic Kudu. + +![Upgrade is in progress][7] + +While the upgrade process is in progress, take a look at the exciting articles we [recently published on Ubuntu 22.10][8]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/ + +作者:[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/ubuntu-22-04-review/ +[2]: https://www.debugpoint.com/ubuntu-22-10/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Make-sure-to-change-the-option-for-new-Ubuntu-22.10-release.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-GUI-method2.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Change-the-release-upgrade-file.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-terminal-method.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Upgrade-is-in-progress.jpg +[8]: https://www.debugpoint.com/tag/ubuntu-22-10 From 0672db118c2defd7cce5d03a2dc9d30f093caadd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:00:19 +0800 Subject: [PATCH 1644/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221021-=E2=AD=90=EF=B8=8F-How-to-find-GNOME-Shell-?= =?UTF-8?q?version-from-the-Terminal.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-find-GNOME-Shell-version-from-the-Terminal.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md diff --git a/sources/tech/20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md b/sources/tech/20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md new file mode 100644 index 0000000000..a34438548c --- /dev/null +++ b/sources/tech/20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md @@ -0,0 +1,91 @@ +[#]: subject: "How to find GNOME Shell version from the Terminal" +[#]: via: "https://www.debugpoint.com/find-gnome-version/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to find GNOME Shell version from the Terminal +====== + +**Here’s a quick guide on finding the GNOME desktop (or Shell) version via the command line and GUI.** + +### Find GNOME Shell Version + +You need to find the GNOME version number you are running for many use cases. For example, if you are a developer, you might want to find out compatible packages and ensure that all the dependencies are met. + +So, to do that, here’s how you can find the GNOME version number. + +Firstly, open a terminal. And run the following command. + +``` +gnome-shell --version +``` + +![version via terminal][1] + +It will give you the GNOME shell version number currently running in your system. + +Similarly, if you are using the desktop environment, then open Settings. Then click on the About tab. + +Here you can see the GNOME Version at the bottom. + +![version via settings window][2] + +### Usage Notes + +There might be situations where you use a different desktop environment (such as MATE or Xfce), which also uses GNOME components and packages. + +Those desktop environments don’t use the gnome-shell package, of course. So, if you want to find out the GNOME packages and their version used in those specific cases, you can see the contents of this file below. This is for Ubuntu and Debian-based distros only. + +``` +/var/lib/apt/extended_states +``` + +For example, the file contains a below GNOME package. + +Now that you know the package name, you can further find out its version installed in your system using the below command. Similar DNF command you can find in [this guide][3] for RPM-based distros. + +``` +apt show gnome-weather +``` + +**Sample output:** + +``` +debugpoint@debugpoint-mate:~$ apt show gnome-weather +Package: gnome-weather +Version: 43.0-1 +Priority: optional +Section: universe/gnome +Origin: Ubuntu +Maintainer: Ubuntu Developers [ubuntu-devel-discuss@lists.ubuntu.com][4] +Original-Maintainer: Debian GNOME Maintainers [pkg-gnome-maintainers@lists.alioth.debian.org][5] +``` + +### Wrapping Up + +This guide teaches you how to find the version of GNOME and some additional methods. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/find-gnome-version/ + +作者:[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/10/version-via-terminal.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/version-via-settings-window.jpg +[3]: https://www.debugpoint.com/dnf-commands-examples/ +[4]: https://www.debugpoint.commailto:ubuntu-devel-discuss@lists.ubuntu.com +[5]: https://www.debugpoint.commailto:pkg-gnome-maintainers@lists.alioth.debian.org From 29864e9c02e6c6877455117d004cd2fd88db55c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:01:51 +0800 Subject: [PATCH 1645/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221022-=E2=AD=90=EF=B8=8F-How-to-Install-Python-3-?= =?UTF-8?q?10-in-Ubuntu-and-Other-Related-Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...thon-3-10-in-Ubuntu-and-Other-Related-Linux.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md diff --git a/sources/tech/20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md b/sources/tech/20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md new file mode 100644 index 0000000000..5477fc6c6b --- /dev/null +++ b/sources/tech/20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md @@ -0,0 +1,144 @@ +[#]: subject: "How to Install Python 3.10 in Ubuntu and Other Related Linux" +[#]: via: "https://www.debugpoint.com/install-python-3-10-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Python 3.10 in Ubuntu and Other Related Linux +====== + +**Planning to get Python 3.10 installed for your work? Here’s how to install Python 3.10 in Ubuntu and related distributions.** + +Python 3.10 was released on Oct 25, 2021 with additional features and updates. This release brings better handling of error messages, new pattern-matching features, TypeAlias, user-defined type guards and more. You can read the release highlights [here][1]. + +As of writing this guide, Python 3.10 is adopted by most of the current distros. For example, Ubuntu 22.04 LTS, and Fedora 36 all have Python 3.10 by default. + +That said, if you need Python 3.10 in any non-supported releases right now, you can use the [below reliable PPA][2] to install the latest Python 3.10 in Ubuntu. Here’s how. + +### How to Install Python 3.10 on Ubuntu + +This PPA can be used for Ubuntu 21.10, Ubuntu 21.04, Ubuntu 20.04 LTS, Ubuntu 18.04 LTS, and Linux Mint 20.x, Elementary OS 6 and other related Ubuntu-based distributions. Mostly those don’t support 3.10 by default. + +- Open a terminal prompt and add the following PPA. + +``` +sudo add-apt-repository ppa:deadsnakes/ppa +``` + +- Refresh the cache using the below command. + +``` +sudo apt update  +``` + +- And install Python 3.10 using the below command. + +``` +sudo apt install python3.10 +``` + +### Set Python Versions + +Setting up Python 3.10 as default require some additional steps. Follow along. + +**Warning**: Many applications in your Ubuntu system depend on the stock version of Python 3.9. Hence, be very sure that your work applications (e.g. GIMP, GNOME Terminal etc.) are compatible with Python 3.10. So, be cautious. + +**Quick Tip:** If you want to check which of your installed system packages depends on a specific version, use the following `rdepends` switch of `apt-cache` command. In the below example, I am checking which of the installed packages depends on Python 3.8. + +``` +apt-cache rdepends python3.8 +``` + +``` +[~]$ apt-cache rdepends python3.8 +python3.8 +Reverse Depends: +python3.8-dbg +virtualbox +python3.8-venv +python3.8-full +libpython3.8-testsuite +libglib2.0-tests +idle-python3.8 +idle-python3.8 +python3.8-minimal +python3.8-doc +python3.8-dev +python3.8-dbg +python3-uno +gedit +virtualbox +stimfit +python3.8-venv +python3-stfio +python3-escript-mpi +python3-escript +python3-csound +pitivi +obs-studio +liferea +libpython3.8-testsuite +libglib2.0-tests +kitty +kdevelop-python +idle-python3.8 +idle-python3.8 +rhythmbox-plugins +python3.8-minimal +python3.8-doc +python3.8-dev +python3 +python3-uno +python3-all +cluster-glue +gedit +[~]$ +``` + +#### Use Python 3.10 as the default Python3 + +- First, check the current default version using the below command from the terminal. + +``` +python3 --version +``` + +- Use `update-alternatives` to create symbolic links to python3 + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 +``` + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 +``` + +- And choose which one to use as Python3 via the command: + +``` +sudo update-alternatives --config python3 +``` + +![Install Python 3.10 in Ubuntu][3] + +That’s all for the steps. Now you can start using the latest Python in your current Ubuntu version for your work/study. You switch over to the stock version using the above commands and changing the version numbers at any given time. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-3-10-ubuntu/ + +作者:[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://docs.python.org/3.10/whatsnew/3.10.html +[2]: https://github.com/deadsnakes +[3]: https://www.debugpoint.com/wp-content/uploads/2021/10/Installed-Python-3.10-in-Ubuntu-1024x472.jpeg From 5bc6f954bac91d6652f9f76244a3322edf8d1f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:23:45 +0800 Subject: [PATCH 1646/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221018-=E2=AD=90=EF=B8=8F-Setup-Docker-And-Docker-?= =?UTF-8?q?Compose-With-DockSTARTer.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-Docker-And-Docker-Compose-With-DockSTARTer.md | 216 ++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 sources/tech/20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md diff --git a/sources/tech/20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md b/sources/tech/20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md new file mode 100644 index 0000000000..0d9d1abdc5 --- /dev/null +++ b/sources/tech/20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md @@ -0,0 +1,216 @@ +[#]: subject: "Setup Docker And Docker Compose With DockSTARTer" +[#]: via: "https://ostechnix.com/setup-docker-and-docker-compose-with-dockstarter/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Setup Docker And Docker Compose With DockSTARTer +====== + +This guide explains **what is DockSTARTer**, how to **install DockSTARTer in Linux** and how to **setup Docker and Docker compose using DockSTARTer** to run containerized applications in Linux. + +### What is DockSTARTer? + +**DockSTARTer** is a TUI-based utility to easily install Docker and Docker compose in Linux and Unix systems. The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker. + +DockSTARTer has both TUI and CLI interfaces. So you can use either of these interfaces to quickly deploy multiple containerized apps in a single docker environment. + +Please note that DockSTARTer is not a ready-made set of apps that run out of the box. You still need to choose what to run and how to run. + +It also doesn't configure apps and storage for you. You may need to configure the settings of the apps and the storage manually by yourself. + +As of writing this, we can run more than 100 docker apps using DockSTARter. Some of the popular apps are Adguard, Bitwarden, CloudFlare DDNS, Duplicacy, Emby, File Browser, Glances, Heimdall, InfluxDB, Jellyfin, Kiwix-serve, Lidarr, Minecraft Server, Nextcloud, openLDAP, Speedtest, Pihole, qBittorent, Rsnapshot, Syncthing, Time Machine, Uptimne Kuma, Vsftpd, Wireguard, youtubedl and a lot more. + +DockSTARTer is free and opensource shell script. The source code of DockSTARTer is hosted in GitHub. + +### Install DockSTARTer in Linux + +DockSTARter can be installed in popular Linux operating systems. + +To install DockSTARTer in Arch Linux and its variants such as EndeavourOS, and Manjaro Linux, run the following commands: + +``` +$ sudo pacman -S curl docker git +``` + +``` +$ bash -c "$(curl -fsSL https://get.dockstarter.com)" +``` + +``` +$ sudo reboot +``` + +To install DockSTARTer in Debian, Ubuntu, Linux Mint, Pop OS, run: + +``` +$ sudo apt install curl git +``` + +``` +$ bash -c "$(curl -fsSL https://get.dockstarter.com)" +``` + +``` +$ sudo reboot +``` + +To install DockSTARTer in Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, run: + +``` +$ sudo dnf install curl git +``` + +``` +$ bash -c "$(curl -fsSL https://get.dockstarter.com)" +``` + +``` +$ sudo reboot +``` + +### Use DockSTARTer to setup Docker and Docker Compose + +DockSTARTer allows you to install and configure various apps in Docker. + +To run DockSTARTer for the first time, enter the following command: + +``` +$ ds +``` + +Choose "Configuration" from the main menu and press ENTER: + +And then select "Full setup". + +Choose which apps you would like to install. By default, Watchtower app is selected. Use UP and DOWN arrow keys to navigate to app list and press SPACEBAR to select or deselect apps. + +Now, DockSTARTer will display the default settings of the selected apps. If you would like to keep these settings for the apps, choose "Yes" and hit ENTER. Or choose "No" and change the settings as you want. + +If you like to keep the default settings for VPN, choose "Yes" or choose "No" to change the settings as you please. + +Now you will see the global settings for DockSTARTer. Review the global settings such as docker config directory, docker storage directory, docker hostname and time zone etc. If you're OK with the default settings, simply choose "Yes" and hit ENTER. If you want to change these settings, select "No". I want to change the storage directory, hostname and time zone, so I choose "No". + +If you chose "No" in the previous wizard, you will be prompted to set docker config directory. There will be 2 choices given. You can either choose to keep the currently selected directory or enter a new one by selecting "Enter New" option. I am going to keep the currently selected directory. + +Choose "yes" to set appropriate permissions on the docker configuration directory. + +In this step, you need to set a directory for Docker storage. By default, DockSTARTer will create a directory called "storage" in your $HOME directory. If you want to keep the default storage directory, choose "Keep Current". Or choose "Enter New". + +Enter the path to your Docker storage directory and hit ENTER. If the directory doesn't exist, DockSTARTer will attempt to create it. + +Set the hostname for your Docker system. DockSTARTer recommends system detected values. Here, I am going to choose "Use System" option's setting for my Docker hostname. + +Set the user's group ID (PGID). If you're unsure, simply go with the **"Use System"** option. + +Set your user account ID (PUID). If you're unsure, simply go with the **"Use System"** option. + +Set your system timezone. The system detected values, so just choose "Use System" option and hit ENTER. + +Next, you will prompted if you would you like to run compose. Choose "Yes" to do so. + +This will pull the Docker images that you choose to install in one the previous steps. + +Finally, you will an output something like below after the Docker compose installed all selected apps. + +``` +[...] 2022-10-18 14:24:30 [WARN ] /home/ostechnix/.docker/compose/.env not found. Copying example template. 2022-10-18 14:24:30 [WARN ] Please verify that ~ is not used in /home/ostechnix/.docker/compose/.env file. 2022-10-18 14:24:30 [NOTICE] Preparing app menu. Please be patient, this can take a while. 2022-10-18 14:36:51 [NOTICE] /home/ostechnix/.docker/compose/.env does not contain any disabled apps. 2022-10-18 14:36:51 [NOTICE] Creating environment variables for enabled apps. Please be patient, this can take a while. 2022-10-18 15:55:29 [NOTICE] Creating environment variables for enabled apps. Please be patient, this can take a while. 2022-10-18 15:55:29 [NOTICE] Adding compose configurations for enabled apps. Please be patient, this can take a while. [+] Running 4/4 ⠿ watchtower Pulled 6.1s ⠿ 1045b2f97fda Pull complete 1.0s ⠿ 35a104a262d3 Pull complete 1.2s ⠿ 1a0671483169 Pull complete 3.1s [+] Running 2/2 ⠿ Network compose_default Created 0.0s ⠿ Container watchtower Started +``` + +That's it. You can view the list of running Docker containers using command: + +``` +$ docker ps +``` + +**Sample output:** + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d3c34dc918f ghcr.io/containrrr/watchtower "/watchtower" 5 minutes ago Up 5 minutes 8080/tcp watchtower +``` + +### Install new Apps + +To install the other apps, just restart DockSTARTer again using the following command: + +``` +$ ds +``` + +Select "Configuration" and then "Select Apps". + +You will see the list of available apps in the next screen. Just select the app you want to run and follow the on-screen instructions. + +### Remove Apps + +Removing apps is same as adding new apps. + +First, make sure the container app is stopped. + +``` +$ sudo docker stop +``` + +Start DockeSTARTer, go to **Configuration -> Select Apps** and **uncheck** the apps that you want to remove and choose OK to remove the apps. + +### Update DockSTARTer + +To update DockSTARTer, simply start it using **"`ds`"** command from the Terminal and then choose "Update DockSTARTer" option. + +You can also do it from the commandline by running: + +``` +$ sudo ds -u +``` + +### Prune Docker system + +To remove all unused containers, networks, volumes, images and build cache, start DockSTARTer and then choose **"Prune Docker System"** option. + +You can prune your Docker system from commandline by running the following command as well. + +``` +$ sudo ds -p +``` + +**Sample output:** + +``` +Deleted Containers: 9d3c34dc918fafa62d0e35283be4cbee46280a30dcd59b1aaa8b5fff1e4a085d Deleted Networks: compose_default Deleted Images: untagged: ghcr.io/containrrr/watchtower:latest untagged: ghcr.io/containrrr/watchtower@sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3 deleted: sha256:333de6ea525af9137e1f14a5c1bfaa2e730adca97ab97f74d738dfa99967f14f deleted: sha256:f493af3d0a518d307b430e267571c926557c85222217a8707c52d1cf30e3577e deleted: sha256:62651dc7e144aa8c238c2c2997fc499cd813468fbdc491b478332476f99af159 deleted: sha256:83fe5af458237288fe7143a57f8485b78691032c8c8c30647f8a12b093d29343 Total reclaimed space: 16.92MB +``` + +### Change variables + +You can adjust variables for running Docker containers at any time. + +Start DockSTARTer by running **"`ds`"** command and choose "Configuration", and then choose the following settings: + +- "Set App Variables" option for adjusting variables for all enabled apps, +- "Set VPN Variables" option for adjusting VPN specific variables, +- "Set Global Variables" option for adjusting global variables. + +### Conclusion + +DockSTARTer has made the process of running Docker apps much easier! DockSTARTer also has CLI interface, but you can quickly deploy Docker containers without memorizing any commands via the its Text-based interface. + +**Resource:** + +- **[DockSTARTer Website][1]** + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/setup-docker-and-docker-compose-with-dockstarter/ + +作者:[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://dockstarter.com/ From 2c7047b9034268314d51624967c339f20235f5c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:25:48 +0800 Subject: [PATCH 1647/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221016-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-What?= =?UTF-8?q?=E2=80=99s-new-in-GNOME-43-.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/talk/20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md diff --git a/sources/talk/20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md b/sources/talk/20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md new file mode 100644 index 0000000000..3e6109f32f --- /dev/null +++ b/sources/talk/20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md @@ -0,0 +1,74 @@ +[#]: subject: "What’s new in GNOME 43?" +[#]: via: "https://opensource.com/article/22/10/whats-new-gnome-43-linux" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What’s new in GNOME 43? +====== + +I love the [GNOME][1] desktop, and I use it as my daily [Linux desktop environment][2]. I find with GNOME, I can focus on the stuff I need to get done, but I still have flexibility to make the desktop look and act the way I want. + +The GNOME Project recently released GNOME 43, the latest version of the GNOME desktop. I met with GNOME developer Emmanuele Bassi to ask a few questions about this latest release: + +**Jim Hall (Jim): GNOME has lots of great desktop features. What are some of the new features in GNOME 43?** + +**Emmanuele Bassi (Emmanuele):** GNOME 43 has a complete redesign of the system status menu in the Shell. The new design is meant to give quick and easy access to various settings: network connections and VPNs; audio input and output sources and volumes; toggling between light and dark styles. It also has a shortcut for taking a screenshot or starting a screen recording. + +GNOME core applications have also been ported to the new major version of the GNOME toolkit, GTK4. GTK4 is more efficient when it comes to its rendering pipeline, which leads to smoother transitions and animations. Additionally, GNOME applications use libadwaita, which provides new UI elements and adaptive layouts that can seamlessly scale between desktop and mobile form factors. + +The GNOME file manager, Nautilus, is one of the applications that has been ported over to GTK4 and libadwaita, and it has benefitted from the new features in the core platform; it’s now faster, and it adapts its UI when the window is resized. + +The system settings can now show device security information, including manufacturing errors and hardware misconfiguration, as well as possible security issues like device tampering. Lots of work is planned for future releases, as device security is an area of growing concern. + +**Jim: What do you love most about GNOME 43?** + +**Emmanuele:** The most important feature of GNOME, one that I constantly take advantage of and that I always miss when I have to deal with other operating systems is how much the OS does not get in the way of what I’m doing. Everything is designed to let me concentrate on my job, without interruptions. I don’t have bells and whistles constantly on my screen, competing for attention. Everything is neatly tucked away, ready to be used only when I need to. + +**Jim: Many folks are familiar with GNOME today, but may not be familiar with its history. How did GNOME get started?** + +**Emmanuele:** GNOME started in 1997, 25 years ago, as a project for using existing free and open source components to create a desktop environment for everyone that would be respectful of users’ and developers’ freedom. At the time there were only commercial desktops for Unix, or desktops that were based on non-free components. Being able to take the entire desktop, learn from it, and redistribute it has always been a powerful motivator for contributors—even commercial ones. + +Over the past 25 years, GNOME contributors have worked not just on making the desktop, but creating a platform capable of developing and distributing applications. + +**Jim: Open source projects keep going because of a strong community. What keeps the GNOME community strong?** + +**Emmanuele:** I don’t pretend to speak for everyone in the project, but for myself I think the main component is the respect of every voice within the community of contributors, which comes from the shared vision of creating an entirely free and open platform. We all know where we want to go, and we are all working towards the same goal. Sometimes, we may end up pulling in different directions, which is why donating to entities like the GNOME Foundation, which sponsor gatherings and conferences, is crucial: they allow a more comprehensive communication between all the involved parties, and at the end we get better results for it. + +GNOME also takes very seriously respectful communication between members of the community; we have a strong code of conduct, which is enforced within the community itself and covers all venues of communication, including in person events. + +**Jim: GNOME established the Human Interface Guidelines (HIG) to unify the GNOME design and GNOME app interfaces. How did the HIG come about?** + +**Emmanuele****:**The Human Interface Guidelines (HIG) came into being after Sun did a usability study on GNOME 1, one of the very first usability studies for a free software project. The findings from that study led to the creation of a standardized document that projects under the GNOME umbrella would have to follow, which is how we ended up with GNOME 2, back in 2002. + +The HIG was a rallying point and a symbol, a way to demonstrate that the entire project cared about usability and accessibility, and it provided the tools to both desktop and application developers to create a consistent user experience. + +Over the years, the HIG moved away from being a complete checklist of pixels of padding and grids of components, and instead it now provides design principles, UI patterns, conventions, and resources for contributors and application developers. The HIG now has its own implementation library, called libadwaita, which application developers can use when targeting GNOME, and immediately benefit from a deeper integration within the platform without having to re-implement the various styles and patterns manually. + +_Thanks to Emmanuele Bassi for answering this interview. You can find GNOME at_[_https://www.gnome.org/_][3] + +_Read the release announcement for GNOME 43 at_[_https://release.gnome.org/43/_][4] + +_Learn about what’s new in GNOME 43 for developers at_[_https://release.gnome.org/43/developers/_][5] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/whats-new-gnome-43-linux + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/12/gnome-linux-desktop +[2]: https://opensource.com/article/20/5/linux-desktops +[3]: https://www.gnome.org/ +[4]: https://release.gnome.org/43/ +[5]: https://release.gnome.org/43/developers/ From 7eab0a385c01dbafde97c4ba67e84c45dae6ac23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:29:16 +0800 Subject: [PATCH 1648/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221017-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-Why-you-should-consider-Rexx-for-scripting.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️-Why-you-should-consider-Rexx-for-scripting.md | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 sources/tech/20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md diff --git a/sources/tech/20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md b/sources/tech/20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md new file mode 100644 index 0000000000..299cb5bbe5 --- /dev/null +++ b/sources/tech/20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md @@ -0,0 +1,122 @@ +[#]: subject: "Why you should consider Rexx for scripting" +[#]: via: "https://opensource.com/article/22/10/rexx-scripting-language" +[#]: author: "Howard Fosdick https://opensource.com/users/howtech" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why you should consider Rexx for scripting +====== + +How do you design a programming language to be powerful yet still easy to use? Rexx offers one example. This article describes how Rexx reconciles these two seemingly contradictory goals. + +### History of Rexx programming language + +Several decades ago, computers were shifting from batch to interactive processing. Developers required a scripting or "glue" language to tie systems together. The tool needed to do everything from supporting application development to issuing operating system commands to functioning as a macro language. + +Mike Cowlishaw, IBM Fellow, created a solution in a language he named Rexx. It is widely considered the first general-purpose scripting language. + +Rexx was so easy to use and powerful that it quickly permeated all of IBM's software. Today, Rexx is the bundled scripting language on all of IBM's commercial operating systems (z/OS, z/VM, z/VSE, and IBM i). It's no surprise that in the 1990s, IBM bundled Rexx with PC-DOS and then OS/2. Rexx popped up in Windows in the XP Resource Kit (before Microsoft decided to lock in customers with its proprietary scripting languages, VBScript and PowerShell). Rexx also emerged as the scripting language for the popular Amiga PC. + +### Open source Rexx + +With Rexx spreading across platforms, standardization was needed. The American National Standards Institute (ANSI) stepped forward in 1996. + +That opened the floodgates. Open source Rexx interpreters started appearing. Today, more than a half dozen interpreters run on every imaginable platform and operating system, along with many open source tools. + +Two Rexx variants deserve mention. _Open Object Rexx_ is a compatible superset of procedural or "classic" Rexx. _ooRexx_ is message-based and provides all the classes, objects, and methods one could hope for. For example, it supports multiple inheritance and mixin classes. + +Paralleling the rise in Java's popularity, Mike Cowlishaw invented _NetRexx_. NetRexx is a Rexx variant that fully integrates with everything Java (including its object model) and runs on the Java virtual machine. + +ooRexx went open source in 2004; NetRexx in 2011. Today the [Rexx Language Association][1] enhances and supports both products. The RexxLA also supports _Regina_, the most popular classic Rexx interpreter, and _BSF4ooRexx_, a tool that fully integrates ooRexx with Java. Everything Rexx is open source. + +### Layered design + +So, back to the initial conundrum. How does a programming language combine power with ease of use? + +One part of the solution is a _layered architecture_. Operators and a minimal set of instructions form the core of the classic Rexx language: + +![Rexx layered design][2] + +Image by: + +(Howard Fosdick, CC BY-SA 4.0) + +Surrounding the core are the language's 70-odd built-in functions: + +- Arithmetic +- Comparison +- Conversion +- Formatting +- String manipulation +- Miscellaneous + +Additional power is added in the form of _external function libraries_. You can invoke external functions from within Rexx programs as if they were built in. Simply make them accessible by proper reference at the top of your script. + +Function libraries are available for everything: GUIs, databases, web services, OS services, system commands, graphics, access methods, advanced math, display control, and more. The result is a highly-capable open source ecosystem. + +Finally, recall that Open Object Rexx is a superset of classic Rexx. So you could use procedural Rexx and then transition your skills and code to object programming by moving to ooRexx. In a sense, ooRexx is yet another Rexx extension, this time into object-oriented programming. + +### Rexx is human-oriented language + +Rexx glues all its instructions, functions, and external libraries together in a consistent, dead-simple syntax. It doesn't rely on special characters, arcane syntax, or reserved words. It's case-insensitive and free-form. + +This approach shifts the burden of programming from programmer to machine to the greatest degree possible. The result is a comparatively easy language to learn, code, remember, and maintain. Rexx is intended as a human-oriented language. + +Rexx implements the _principle of least astonishment_, the idea that systems should work in ways that people assume or expect. For example, Rexx's default decimal arithmetic—with precision you control—means you aren't surprised by rounding errors. + +Another example: All variables contain strings. If the strings represent valid numbers, one can perform arithmetic operations with them. This simple concept of dynamic typing makes all data visible and simplifies tracing and debugging. + +Rexx capitalizes on the advantages of interpreters to simplify program development. Tracing facilities allow developers to direct and witness program execution in various ways. For example, one can single-step through code, inspect variable values, change them during execution, and more. + +Rexx also raises common error conditions that the programmer can easily trap. This feature makes for more standardized, reliable code. + +### Arrays + +Rexx's approach to arrays (or tables) is a good example of how it combines simplicity with power. + +Like all Rexx variables, you don't have to declare them in advance. They automatically expand to the size of available memory. This feature relieves programmers of the burden of memory management. + +To form an array, a so-called _compound variable_ stitches together a _stem variable_ with one or more _subscripts_, as in these examples: + +``` +my_array.1 + my_table.i.j + my_list.index_value + my_list.string_value + my_tree.branch_one + my_tree.branch_one.branch_two +``` + +Subscripts can represent numeric values, as you may be accustomed to in standard table processing. + +Alternatively, they can contain strings. String subscripts allow you to build _associative arrays_ using the same simple syntax as common tables. Some refer to associative arrays as _key-value pairs_ or _content addressable memory_. Allowing array contents to be accessed by arbitrary strings rather than simply numeric values opens up an entirely new world of algorithmic solutions. + +With this flexible but consistent syntax, you can build almost any data structure: Lists, two- or three- or n-dimensional tables, key-value pairs, balanced trees, unbalanced trees, dense tables, sparse tables, records, rows, and more. + +The beauty is in simplicity. It's all based on the notion of compound variables. + +### Wrap up + +In the future, I'll walk through some Rexx program examples. One real-world example will show how a short script using associative arrays reduced the runtime of a legacy program from several hours down to less than a minute. + +You can join the Rexx Language Association for free. For free Rexx downloads, tools, tutorials, and more, visit [RexxInfo.org][3]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/rexx-scripting-language + +作者:[Howard Fosdick][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/howtech +[b]: https://github.com/lkxed +[1]: http://www.RexxLA.org +[2]: https://opensource.com/sites/default/files/2022-10/rexx_layered_design.jpg +[3]: http://www.RexxInfo.org From f95326945b25c8be92a15adc1777dac89e5fdb96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:30:06 +0800 Subject: [PATCH 1649/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221017-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-Open-source-DevOps-tools-in-a-platform-futur?= =?UTF-8?q?e.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️-Open-source-DevOps-tools-in-a-platform-future.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 sources/tech/20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md diff --git a/sources/tech/20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md b/sources/tech/20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md new file mode 100644 index 0000000000..5db532e0dd --- /dev/null +++ b/sources/tech/20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md @@ -0,0 +1,109 @@ +[#]: subject: "Open source DevOps tools in a platform future" +[#]: via: "https://opensource.com/article/22/10/open-source-devops-tools" +[#]: author: "Will Kelly https://opensource.com/users/willkelly" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open source DevOps tools in a platform future +====== + +The open source roots of DevOps tools are undeniable, even with a prediction that the global DevOps market will reach $17.8 billion by 2026. The changing world of work, security, and compliance concerns, along with venture capital firms, are pushing the market to DevOps platforms where development teams can access a complete end-to-end DevOps toolchain in the cloud. + +### The current state of open source DevOps tools + +Let's get one thing straight: There's no way open source tools will disappear from the DevOps world. Right now, there's a balance between open source and vendor DevOps tools, with developers using what works for them. Indeed, there are plenty of cases when a development team chooses an open source tool for their DevOps pipeline only to upgrade later to a commercial version. + +### 3 examples of open source DevOps tools + +Here are some examples of open source DevOps tools with a commercial business built around them. + +#### Git + +[Git][1]–the source code management tool–is probably one of the main foundations for DevOps toolchains serving as a source code repository. + +The two best commercial examples of Git are GitLab and GitHub. GitLab [accepts contributions][2] to its open source project. GitHub is embarking on an effort to become a DevOps platform as well with the launch of GitHub Copilot–an AI pair programmer–launching to mixed reviews and criticism from some open source groups. + +#### Jenkins + +An open source automation server, Jenkins is prized for its easy installation, configuration, and extensibility. + +CloudBees offers JenkinsX, an open-source solution that provides automated continuous integration and continuous delivery (CI/CD) and automated testing tools for cloud-native applications on Kubernetes. They also provide commercial support for JenkinsX, including: + +- Access to CloudBees technical expertise +- 24x7 technical support +- Access to CloudBees documentation and online knowledge base + +#### Kubernetes + +The growth of [Kubernetes][3] is undeniable as more organizations seek an enterprise-grade container orchestration solution. Despite criticisms about its complexity, Kubernetes + +There's an entire burgeoning industry around Kubernetes, and with good reason. According to Allied Market Research, the global container and [Kubernetes security][4] market was valued at $714 million in 2020 and is projected to reach $8242 million by 2030. + +### DevOps toolchains today + +There are still plenty of build-your-own (BYO) CI/CD toolchains in play across industries. The open source projects powering DevOps functions are still prospering, + +BYO toolchains are integration-ready and very extensible, which has always been a strength for organizations continuing to iterate on their DevOps practices. The lack of a standard bill of materials might prove troublesome in enterprises seeking standardization for business, IT, and security reasons. + +While the advent of DevOps platforms isn't going unnoticed, many organizations migrated their CI/CD toolchains to the public cloud well before the pandemic. The security of the toolchain itself has long been a rising concern, and public cloud infrastructure provides Identity Access Management (IAM) and other security features to control access. + +### DevOps platforms: Friend or foe? + +A DevOps platform is an end-to-end solution that places all functions of the CI/CD toolchain into the cloud. Examples of DevOps platforms include GitLab and Harness. GitHub is also making moves to become a DevOps platform in its own right. + +#### Advantages (even if only in the eyes of enterprise buyers) + +DevOps platforms are attractive to enterprise buyers who are already comfortable with the consumption-based and subscription-based pricing of the SaaS and cloud industries. Concerns about maintenance, security, compliance, and developer productivity are certainly at the top of mind for technology leaders in this remote and hybrid work world. Standardizing on a DevOps platform becomes an appealing story to these people. + +#### Disadvantages + +Age-old concerns about vendor lock-in come to mind when depending on a vendor for a DevOps toolchain. The extensibility of development teams building and maintaining their toolchains isn't going to be quite the experience as it was when they made their toolchains from scratch, much less bringing in new tools to improve their workflows. + +There are also potential economic disadvantages with DevOps platform providers. Think what might happen to an overvalued DevOps tools startup that doesn't meet its investors' lofty financial goals. Likewise, there could be smaller startup vendors that may not receive their next round of funding and fade away into irrelevance. + +While the advent of a DevOps platform makes sense in many ways, it does work against the open source ethos that has helped build the DevOps tools we use today. + +### DevOps tools: An inflection point + +Security and compliance concerns for DevOps toolchains continue to mount as working models change. It's only natural. + +#### The changing world of work + +How we work affects DevOps teams just like the rest of the enterprise. Remote and hybrid DevOps teams require secure toolchains. Changing collaboration and reporting requirements across the pipelines are also growing necessities, such as asynchronous work and executives demanding a return to the office. + +#### Software supply chain security market + +The software supply chain security market draws much attention after high-profile attacks and the federal government response. No organization has yet to blame open source for a software supply chain attack, but we're going to see an extension of DevOps/DevSecOps practices and tools to combat this threat. When it's all said and done, though, DevOps/DevSecOps tools and practices will outlast some startups that pivoted to the trend. + +### Final thoughts + +It's far from game over for OSS projects in the DevOps space, but DevOps stakeholders have a right to start asking questions about the toolchains of the future. However, OSS DevOps projects do need to consider their future, especially in light of growing security and compliance concerns that directly impact pipelines. + +There's a future of coopetition where the DevOps platform providers donate time, money, and resources to the open source tools that serve as a foundation for their platforms. An interesting example of a potential future is [OpsVerse][5], which offers a DevOps platform with open source tools they manage for their customers. + +Then again, there's also a future where the open source DevOps tools projects continue to prosper and innovate as more enterprise-built toolchains migrate to the cloud in more significant numbers. + +**[ Kickstart an organizational culture change. Read the first article in a series, [DevSecOps: 5 tips for seeding a culture transformation][6] ]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/open-source-devops-tools + +作者:[Will Kelly][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/willkelly +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/4/our-favorite-git-commands +[2]: https://opensource.com/article/19/9/how-contribute-gitlab +[3]: https://opensource.com/resources/what-is-kubernetes +[4]: https://enterprisersproject.com/article/2019/1/kubernetes-security-4-tips-manage-risks?intcmp=7013a000002qLH8AAM +[5]: https://www.opsverse.io/ +[6]: https://www.redhat.com/architect/devsecops-culture?intcmp=7013a000002qLH8AAM From d10be6d6d776ed8b6cc2091a3aa03a505a8c0d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:32:34 +0800 Subject: [PATCH 1650/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221018-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-Exploring-innovative-Open-Organization-chart?= =?UTF-8?q?s.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️-Exploring-innovative-Open-Organization-charts.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 sources/talk/20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md diff --git a/sources/talk/20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md b/sources/talk/20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md new file mode 100644 index 0000000000..6ee7fe0e8a --- /dev/null +++ b/sources/talk/20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md @@ -0,0 +1,189 @@ +[#]: subject: "Exploring innovative Open Organization charts" +[#]: via: "https://opensource.com/article/22/10/innovative-open-organization-chart" +[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Exploring innovative Open Organization charts +====== + +The ability to react quickly and adapt to changing situations is critical in today's business and work environment. In the past, offering efficient, standardized systems was the way to reduce costs and provide more to the public. In today's rapidly changing world, that's not enough. Collaborating, deciding, and executing quickly on a project requires that the traditional organization chart change to strengthen **adaptability**, **transparency**, **collaboration**, **inclusivity,** and project **community—**all five Open Organization Principles. Today, there are too many interdependencies to stick to the traditional top-down organization chart. + +I just read the book [Team of Teams, by Stanley McChrystal][1], which discusses this concern, particularly in military combat situations. It is the efficiency of small, empowered, trusted, goal-oriented teams working together (and with other teams) that will be successful in the future. Their ability to interact with other teams will make a small group scalable within a large organization. McChrystal writes that adaptability, transparency, and cross-silo collaboration are key to their success. These are three of the Open Organization Principles. I think it's equally valid in the business environment and not just in military operations. + +### Speed in decision-making and how to address continual unpredictability + +When do you make a decision yourself, and when do you take decisions to top management? McChrystal states, "a 70% chance of success today is better than 90% tomorrow when speed of action is critical." These days, the competitors, or enemies, are moving at that pace. + +In my article "[The 4 components of a great decision, What makes a "good" open decision?][2]" I wrote that decision-making speed was very important. Well, that's more true than ever, and you can't do that if you need approvals up and down a large vertical organization chart. Quick decisions must be made on the frontline, where the issues are. A horizontal organization that gets the people most directly involved in the decision-making process is required and is part of the strength that McChrystal is talking about. + +![A horizontal org chart with connections between teams][3] + +Image by: + +(Ron McFarland, CC BY-SA 4.0) + +These connections should have solid lines, and the vertical lines should be dotted, as communications should go up the line only when need be and horizontally minute by minute in real-time. + +### Information reversal + +In another presentation, I talked about an upside-down organization chart, which I called the [hierarchy of support][4]. Compare this with a vertical organizational chart. + +![Hierarchy of company objectives][5] + +Image by: + +(Ron McFarland, CC BY-SA 4.0) + +A typical vertical organization chart has top management in the top box. The staff provided frontline information to superiors so that they could decide. + +Then, lines connect downward to departments under the top box, and directives move downward. Task directives flow from those department managers to the staff under them. + +In a rapidly changing, unpredictable environment, the superiors should provide surrounding information to the staff so frontline people can make decisions independently. Imagine turning that organization chart upside down, with top management at the bottom and the staff at the top. + +![Hierarchy of company support][6] + +Image by: + +(Ron McFarland, CC BY-SA 4.0) + +With today's information technology, the frontline staff is often better informed than their superiors. Therefore, managers' main job is to support the staff where needed, but the decisions should be made rapidly on the frontline. + +McChrystal uses the expression, "Eyes on - Hands off." I think he is suggesting what I'm saying in a different way. He calls top managers giving directives "chess players" and supporting managers "gardeners." + +McChrystal started a training company called [Crosslead][7] that trains individuals and companies on how this type of organization works. Their name implies the horizontal, frontline communication I mentioned in my upside-down organization chart. + +The book mentions Open Organization Principles throughout: + +- **Adaptability**, which he calls "resilience." +- **Collaboration**, which is horizontal within teams and between teams. +- **Community**, which is **Inclusivity** and **Transparency** within teams. + +### Getting through the forest by knowing the working environment + +Imagine your goal is to get through a forest to your home on the other side. Unfortunately, the forest is rapidly changing because of the weather and climate. + +One person gives you a map of the best way to go through the forest, but that map was made in the past and might be outdated. It might be the best way to get home, but blockages along that route may force you to return to your starting location. + +Another person has a current satellite image of the forest which shows every possible route and its present condition. Furthermore, he has guides spread throughout the forest who can communicate and advise you on the best route. + +Wouldn't the second method be more reliable with a rapidly changing forest? + +### McChrystal's organization chart + +It starts with a frontline team, a specific goal, and members' specific tasks. The members select a leader depending on the task at hand. Who is most experienced, informed, and qualified to lead them toward the given team goal? + +It might well be that the official leader is the least qualified to make decisions, so the system is very slow at best and freezes at worst. Who will most people follow? That will determine the leader of any given task. + +McChrystal writes about the "Perry Principle," in which top management could not give orders by sea because there was no communication system in [Admiral Perry's][8] days. McChrystal calls this a "principle" because empowerment was given to frontline staff as a last resort and only when forced. He thinks this should be reversed. Top management should only make the decision themselves when the frontline people can't decide for one reason or another. + +The team chart that McChrystal is proposing is on the right. + +![Command organizational chart versus team organizational chart][9] + +Image by: + +Team of Teams, page 96. + +An exponential growth in frontline connectedness speeds up the communication and action process in a way that the current hierarchical structure can not handle. The command chart on the left is just too slow in a rapidly changing environment. + +By the time the situation is reported, everything changes and reported information is obsolete. Therefore, a frontline leader, like a start-up entrepreneur, must have the authority, initiative, intuition, and creative thinking to make decisions and immediately act on them to achieve the best result. Speed determines success or failure. + +Up until now, adaptability has mostly been characteristic of small interactive teams rather than large top-down hierarchies. + +In this new environment, that frontline leader's superior must withhold decision-making on the one hand but relentlessly support the frontline on the other. This will lead to frontline decision-making competence to iterate and adjust in a fraction of the normal time. + +### Attention directed from efficiency to adaptability + +McChrystal introduces the work of [Frederick Winslow Taylor][10], who developed the reductionist theory and the optimization and standardization of processes. This process was the most efficient way to reduce costs and save energy. He believed there was one ideal way for any process. + +So, he researched processes, developed instruction sheets, and instructed the frontline staff just to follow directions. It was a hard and fast line between thinking (by the researcher) and action (by the frontline worker). This approach is fine for repeated, well-known, stable processes, but not in changing environments, like factories with complicated but linear predictable activities, but not in changing environments. Unfortunately, this concept took the initiative to improve away from the frontline operator, as all they had to do was act and not think. + +When modification was required, the frontline worker froze, unqualified and unskilled at adapting. + +McChrystal writes that his military combat environment is not predictable. It is a "complex system." This complexity has countless unpredictable interdependencies in the environment. + +When one event takes place, it may have a massive impact or no impact at all. This results in great unpredictability. We have to manage this unpredictability. In the past, communication was from a few to a few with some connected impact. Now, it is many to many, and no one knows who or what the impact is on who or what. It is totally unpredictable. + +I believe this reductionist process is still important, but it can only go so far. + +Therefore, those basic practice instruction sheets should come in the form of suggestions only and not orders to follow. McChrystal calls these situations _complexity systems_. It's like opening and walking through a door only to learn of other doors to choose from. + +Those other doors cannot be foreseen without walking through the previous door. After selecting one of those doors, you discover more doors to choose from. To be most effective, whenever you select a door, you let everyone in the system know which one you picked and ask for advice if available. This is where real-time transparency is vital. In this environment, planning is not helpful, but feedback is. + +Being better equipped and more efficient are not enough in complex environments. Being agile and resilient become critical factors. When disturbances come, the system must continue to function and adjust. This is all-important in a world of continual situational change. In this world, planning for disruption is vital. It is "rolling with the punches" or even benefiting from them by developing an immune system to disruption. When shocks come, options have been planned, developed, practiced, and applied when needed. Simply working on one ideal process is not enough. If all the attention is on the execution of one procedure, other more helpful skills may suffer. It is moving away from predicting a single forecast, exploring all possibilities, and preparing for them. McChrystal asks to contrast efficiency and effectiveness. He says, "Efficiency is doing things right. Effectiveness is doing the right thing." He thinks the latter is more important in a complex situation. To do that, people should be skilled in many rarely needed but still necessary tasks. + +### Collaboration over vertical communication walls + +Furthermore, breaching vertical walls between divisions or teams increases the speed of action, particularly where cross-functional collaboration is vital to the speed of response. + +According to McChrystal, both between teams and within teams, collective consciousness is developed over years of joint practice, trust building, cooperation, deep group, and individual understanding, bonding, and service to their greater purpose. + +The entire group can improvise in a coordinated way when necessary. Teamwork is a process of reevaluating everyone's move and intent, constant messaging, and real-time adjustment. + +### Barriers between teams + +As you move down the traditional organization chart, motivation and contextual awareness become more limited and specific, and greater distance from the overall organization's objectives. Members are tight within their team but separated from the other groups within the organization and possibly the entire organization's goals. + +![Command of teams organizational chart][11] + +Image by: + +Team of Teams, page 129 + +### Real-time communication and connections between teams + +In a complex, rapidly changing environment, the below chart is more appropriate, where there is a good deal of continual information flow and connections. + +![Inter-team organizational chart][12] + +Image by: + +Team of Teams, page 129 + +Team members tackling complex environments must all grasp not just their team's purpose but the overarching goal of the entire organizational system. They must also consider how their activities impact other groups. + +To be successful, team participation and team-to-team participation are vital, according to McChrystal. In Jim Whitehurst's [book][13] on letting and encouraging everyone to speak up in meetings, even the quiet people express this same point. + +I wrote about it in my first article, [When empowering employee decision-making, intent is everything][14], posted on April 19, 2016. This concept is true when trying to connect teams as well. + +Teams working on a problem and collaborating in real time can perform tasks more concurrently rather than sequentially, saving a massive amount of valuable time. + +### Wrap up + +This article presents several images of new organization chart concepts. Unofficially, to get things done, much horizontal communication has been going on for decades. The difference now is that updates are in minutes and not at weekly or monthly meetings. + +I also discussed the importance of the speed of decision-making in today's working environment and that a new real-time communication flow system is needed. I mentioned that at least three critical Organization Principles, namely adaptability, transparency, and collaboration, were vitally important to make communication flow and allow faster decision-making and execution. Furthermore, I also presented that just having a highly efficient and low-cost system is not enough when faced with a rapidly changing, unpredictable working environment. An approach better able to adapt to change needs to be introduced and put into use, namely a new open organization chart. + +In the second part of this article, I will discuss how this type of organization can work, including how to develop it and improve it. Also, I'll give examples of how it can work in various situations. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/innovative-open-organization-chart + +作者:[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://www.shortform.com/summary/team-of-teams-summary-stanley-mcchrystal?gclid=CjwKCAjwy_aUBhACEiwA2IHHQFl6iYqOX4zSl3JxC-BVubNJo3Ee11s2nF2t4HMN6roJn2yehivPshoCXlQQAvD_BwE +[2]: https://opensource.com/open-organization/17/3/making-better-open-decisions +[3]: https://opensource.com/sites/default/files/2022-10/horizontal-org-chart.png +[4]: https://www.slideshare.net/RonMcFarland1/hierarchy-of-objectives-support +[5]: https://opensource.com/sites/default/files/2022-10/hierarchy-company-objectives.png +[6]: https://opensource.com/sites/default/files/2022-10/hierarchy-company-support.png +[7]: http://www.crosslead.com/ +[8]: https://en.wikipedia.org/wiki/Matthew_C._Perry +[9]: https://opensource.com/sites/default/files/2022-10/command-vs-team-chart.png +[10]: https://en.wikipedia.org/wiki/Frederick_Winslow_Taylor +[11]: https://opensource.com/sites/default/files/2022-10/command-of-teams.png +[12]: https://opensource.com/sites/default/files/2022-10/connections-between-teams.png +[13]: https://www.goodreads.com/book/show/23258978-the-open-organization +[14]: https://opensource.com/open-organization/16/4/when-empowering-employee-decision-making-intent-everything From a1348c09684ab4e9afe98fe542e791e5d5e33521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:34:27 +0800 Subject: [PATCH 1651/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221019-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Our-op?= =?UTF-8?q?en-source-startup-journey.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...19-⭐️⭐️-Our-open-source-startup-journey.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/talk/20221019-⭐️⭐️-Our-open-source-startup-journey.md diff --git a/sources/talk/20221019-⭐️⭐️-Our-open-source-startup-journey.md b/sources/talk/20221019-⭐️⭐️-Our-open-source-startup-journey.md new file mode 100644 index 0000000000..c95461a3c6 --- /dev/null +++ b/sources/talk/20221019-⭐️⭐️-Our-open-source-startup-journey.md @@ -0,0 +1,114 @@ +[#]: subject: "Our open source startup journey" +[#]: via: "https://opensource.com/article/22/10/tooljet-open-source-journey" +[#]: author: "Navaneeth PK https://opensource.com/users/navaneeth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Our open source startup journey +====== + +[ToolJet][1] is an open source, low-code framework for rapidly building and deploying internal tools. Our codebase is 100% JavaScript and TypeScript. + +A lone developer in April 2021 started ToolJet. The public beta launched in June 2021 and was an instant hit. With this traction, ToolJet raised funding, and currently, we have a team of 20 members. + +### Why open source? + +Before working on ToolJet, I worked with a few enterprise clients as a consultant. Many of these clients were large enough to build and maintain dozens of internal tools. Despite the constant requests from sales, support, and operations teams to add more features and fix the bugs in their internal tools, engineering teams struggled to find the bandwidth to work on the internal utilities. + +I tried using a few platforms to build and maintain internal tools. Most of these tools were very expensive, and frequently, they didn't really fit the requirements. We needed modifications, and most utilities didn't support on-premise hosting. + +As a Ruby developer, I primarily used ActiveAdmin and RailsAdmin to build internal tools. Both utilities are amazing, but making them work with more than one data source is difficult. I then realized there is a need in the market for a framework that could build user interfaces and connect to multiple data sources. I believe any tool built for developers should be open source. Most of the tools and frameworks that developers use daily result from people from all over the world collaborating in public. + +### The first commit + +Building something like ToolJet needed a full-time commitment. Selling one of my side projects gave me a runway of 5-6 months, and I immediately started working on an idea I'd had in mind for at least two years. + +The first commit (rails new) of ToolJet was on April 1, 2021. + +Wait! I said the codebase is 100% JavaScript. Continue reading to discover why. + +### Building and pitching investors + +I sat in front of my screens for most of April and May, coding and pitching to investors for a pre-seed round. + +My work also included creating the drag-and-drop application builder, documenting everything, ensuring there was documentation for setting ToolJet up on popular platforms, creating a website, creating posters and blog posts for launch, and more. The process went well without any major challenges. At this point, the frontend of ToolJet was built using React, with the backend using Ruby on Rails. + +While the coding was going well, investor pitches weren't going great. I sent around 40 cold emails to venture capitalist firms and "angel investors" focused on early-stage funding. While most of them ignored the email, some shared their reason for rejection, and some scheduled a call. + +Most of the calls were the same; I couldn't convince them of an open source business model. + +### The launch + +June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2]. + +I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars. + +![ToolJet repo stats on GitHub][4] + +Image by: + +GitHub StarTrack for ToolJet. (Navaneeth PK, CC BY-SA 4.0) + +### Getting funding + +The traction on GitHub was enough to be noticed by the venture capitalist (VC) world. The days following the launch were packed with calls. We had other options, but did not consider seriously consider them, including: + +- Bootstrapping: During the early stages of the product, it was hard to find paying customers, and I did not have enough savings to fund the project until that happened. +- Building as a side project: While this strategy works great for smaller projects, I didn't feel it would work for ToolJet because we needed to create dozens of integrations and UI widgets before the platform could become useful for customers. As a side project, it might take months or years to achieve that. + +I knew it could take months to build the platform I wanted if ToolJet became just a side project. I wanted to accelerate growth by expanding the team, and VC funding was the obvious choice, given the traction. + +The good news is that we raised[$1.55 million in funding][5] within two weeks of the HN launch. + +### Stack matters in open source + +Soon after the launch, we found that many people wanted to contribute to ToolJet, but they were mostly JavaScript developers. We also realized that for a framework like ToolJet that in the future should have hundreds of data source connectors, only a plugin-based architecture made sense. We decided to migrate from Ruby to TypeScript in August 2021. Even though this took about a month and significant effort, this was one of the best decisions we've made for the project. Today, we have an extensible plugin-based architecture powered by our [plugin development kit][6]. We have contributions from over 200 developers. We've written extensively about this migration [here][7] and [here][8]. + +### Launching v1.0 + +Many users have been using ToolJet on production environments since August, and the platform did not show any stability or scalability issues. We were waiting to wrap up the developer platform feature before we called it v1.0. The ToolJet developer platform allows any JavaScript developer to build and publish plugins for ToolJet. Developers are now able to make connectors for ToolJet. Creating a ToolJet connector can take just 30 minutes, including integration tests. + +### Building a growing community + +![ToolJet star history][9] + +Image by: + +ToolJet Star History (Navaneeth PK, CC BY-SA 4.0) + +We didn't spend money on marketing. Most of our efforts in spreading the news about ToolJet have been writing about our learnings and being active in developer communities. We have a team of three members who take care of community queries. + +### The business model + +ToolJet won't be a sustainable business without a [commercial product][10] to pay the bills. We've built an enterprise edition of ToolJet, for which customers must pay. There's no limit on usage for the free community edition, and additional features in the enterprise edition are relevant only to large teams. We have very large companies as paying customers right now, but we haven't started monetizing ToolJet aggressively. We have enough money left in the bank to build an even better ToolJet, so our focus currently is on product improvement. + +### What's next? + +We frequently release better versions of ToolJet with the help of constant feedback and contributions from the open source community. Many major improvements and dozens of connectors and UI components are in progress. We're moving faster than ever towards our initial goal of being the open framework that can connect to hundreds of data sources and build even the most complicated user interfaces! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/tooljet-open-source-journey + +作者:[Navaneeth PK][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/navaneeth +[b]: https://github.com/lkxed +[1]: https://github.com/ToolJet/ToolJet +[2]: https://www.producthunt.com/products/tooljet-0-5-3 +[3]: https://news.ycombinator.com/item?id=27421408 +[4]: https://opensource.com/sites/default/files/2022-10/tooljet-repo-stats.png +[5]: https://blog.tooljet.com/raising-vc-funding-for-open-source-project +[6]: https://www.npmjs.com/package/@tooljet/cli +[7]: https://blog.tooljet.com/migrating-toojet-from-ruby-on-rails-to-nodejs +[8]: https://blog.tooljet.com/how-we-migrated-tooljet-server-from-ruby-to-node-js +[9]: https://opensource.com/sites/default/files/2022-10/tooljet-star-history.png +[10]: https://opensource.com/article/19/11/product-vs-project From 847e55baae7b72081bd572741c61c1fcdf0d6f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:39:07 +0800 Subject: [PATCH 1652/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221020-=E2=AD=90=EF=B8=8F-4-open-source-editors-I-?= =?UTF-8?q?use-for-my-writing.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-4-open-source-editors-I-use-for-my-writing.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sources/tech/20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md diff --git a/sources/tech/20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md b/sources/tech/20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md new file mode 100644 index 0000000000..91ac8e2066 --- /dev/null +++ b/sources/tech/20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md @@ -0,0 +1,56 @@ +[#]: subject: "4 open source editors I use for my writing" +[#]: via: "https://opensource.com/article/22/10/open-source-editors" +[#]: author: "Alan Formy-Duval https://opensource.com/users/alanfdoss" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 open source editors I use for my writing +====== + +I've done a lot of writing throughout my career, mostly as an IT consultant creating product documentation as client deliverables. These documents generally provide instructions on installing various operating systems and software products. + +Since 2018, I've contributed to opensource.com with articles about open source software. Of course, I use open source editors to write my pieces. Here are the four open source editors that I have used. + +### 1. Vi + +[Vi][1], also referred to as Vim, is the first open source editor that I learned. This was the editor taught by my computer science classes and that I used for all of my C programming. I have used it as my de facto command line editor since the mid-1990s. There are so many iterations of this tool that I could write a whole series on them. Suffice it to say that I stick to its basic command line form with minimal customization for my daily use. + +### 2. LibreOffice Writer + +Writer is part of the open source LibreOffice office suite. It is a full-featured word processor maintained by The Document Foundation. It supports industry-standard formats such as the Open Document Format (ODF), Open XML, and MS Office DOC, DOCX. [Learn more about Writer][2] on its official site. + +### 3. Ghostwriter + +Ghostwriter is a [text editor for Markdown][3]. It has a nice real-time viewer and syntax guide or cheat sheet feature. [Visit the official website][4] to discover more. + +### 4. Gedit + +Gedit is the basic graphical editor found in many Linux distributions and is described as "a small and lightweight text editor for the GNOME desktop." I have begun using it lately to create articles in the Asciidoc format. The benefit of using Asciidoc is that the syntax is easily manageable and importable into web rendering systems such as Drupal. [See the Gedit Wiki][5] for many tips and tricks. + +### Editing text + +An extensive list of editing software is available in the open source world. This list will likely grow as I continue writing. The primary goal for me is simplicity in formatting. I want my articles to be easy to import, convert, and publish in a web-focused platform. + +Your writing style, feature needs, and target audience will guide you in determining your preferred tools. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/open-source-editors + +作者:[Alan Formy-Duval][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/alanfdoss +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/12/vi-text-editor +[2]: https://www.libreoffice.org/discover/writer/ +[3]: https://opensource.com/article/21/10/markdown-editors +[4]: https://github.com/KDE/ghostwriter +[5]: https://wiki.gnome.org/Apps/Gedit From 5e0d624258cf8310acf92c53b9a836916a6dbcfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:42:36 +0800 Subject: [PATCH 1653/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221021-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Observ?= =?UTF-8?q?ability-driven-development-with-OpenTelemetry.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rvability-driven-development-with-OpenTelemetry.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/tech/20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md diff --git a/sources/tech/20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md b/sources/tech/20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md new file mode 100644 index 0000000000..170e38e797 --- /dev/null +++ b/sources/tech/20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md @@ -0,0 +1,82 @@ +[#]: subject: "Observability-driven development with OpenTelemetry" +[#]: via: "https://opensource.com/article/22/10/observability-driven-development-opentelemetry" +[#]: author: "Ken Hamric https://opensource.com/users/kenkubeshopio" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Observability-driven development with OpenTelemetry +====== + +Observability-driven development (ODD) is being recognized as "necessary" for complex, microservice-based architectures. Charity Majors coined the term and has written about it in several articles, including [Observability: A Manifesto][1]. She explains the term in this quote: + +> Do you bake observability right into your code as you're writing it? The best engineers do a form of "observability-driven-development" — they understand their software as they write it, include instrumentation when they ship it, then check it regularly to make sure it looks as expected. You can't just tack this on after the fact, "when it's done". + +### OpenTelemetry provides the plumbing + +The OpenTelemetry project has the industry backing to be the 'plumbing' for enabling observability across distributed applications. The OpenTelemetry project is [second only to Kubernetes][2] when measuring the size of its contributor community among [Cloud Native Computing Foundation (CNCF)][3] projects, and was formed when OpenTracing and OpenCensus projects merged in 2019. Since then, almost all of the major players in the industry have announced their support for OpenTelemetry. + +[OpenTelemetry][4] covers three observability signals—logs, metrics, and distributed traces. It standardizes the approach to instrumenting your code, collecting the data, and exporting it to a backend system where the analyses can occur and the information can be stored. By standardizing the 'plumbing' to gather these metrics, you can now be assured that you don't have to change the instrumentation embedded in your code when switching from one vendor to another, or deciding to take the analysis and storage in-house with an open source solution such as OpenSearch. Vendors fully support OpenTelemetry as it removes the onerous task of enabling instrumentation across every programming language, every tool, every database, every message bus— and across each version of these languages. An open source approach with OpenTelemetry benefits all! + +### Bridging the gap with Tracetest + +So you want to do ODD, and you have a standard of how to instrument the code with OpenTelemetry. Now you just need a tool to bridge the gap and help you develop and test your distributed application with OpenTelemetry. This is why my team is building [Tracetest][5], an open source tool to enable the development and testing of your distributed microservice application. It's agnostic to the development language used or the backend OpenTelemetry data source that is chosen. + +For years, developers have utilized tools such as Postman, ReadyAPI, or Insomnia to trigger their code, view the response, and create tests against the response. Tracetest extends this old concept to support the modern, observability-driven development needs of teams. Traces are front and center in the tool. Tracetest empowers you to trigger your code to execute, view both the response from that code and the OpenTelemetry trace, and to build tests based on both the response and the data contained in the trace. + +![Image of Tracetest functionality.][6] + +Image by: + +(Ken Hamric, CC BY-SA 4.0) + +### Tracetest: Trigger, trace, and test + +How does Tracetest work? First, you define a triggering transaction. This can be a [REST][7] or gRPC call. The tool executes this trigger and shows the developer the full response returned. This enables an interactive process of altering the underlying code and executing the trigger to check the response. Second, Tracetest integrates with your existing OpenTelemetry infrastructure to pull in the trace generated by the execution of the trigger, and shows you the full details of the trace. Spans, attributes, and timing are all visible. The developer can adjust their code and add manual instrumentation, re-execute the trigger, and see the results of their changes to the trace directly in the tool. Lastly, Tracetest allows you to build tests based on both the response of the transaction and the trace data in a technique known as trace-based testing. + +### What is trace-based testing? + +Trace-based testing is a new approach to an old problem. How do you enable integration tests to be written against complex systems? Typically, the old approach involved adding lots of complexity into your test so it had visibility into what was occurring in the system. The test would need a trigger, but it would also need to do extra work to access information contained throughout the system. It would need a database connection and authentication information, ability to monitor the message bus, and even additional instrumentation added to the code to enable the test. In contrast, Trace-based testing removes all the complexity. It can do this because of one simple fact—you have already fully instrumented your code with OpenTelemetry. By leveraging the data contained in the traces produced by the application under the test, Tracetest can make assertions against both the response data and the trace data. Examples of questions that can be asked include: + +- Did the response to the gRPC call have a 0 status code and was the response message correct? +- Did both downstream microservices pull the message off the message queue? +- When calling an external system as part of the process—does it return a status code of 200? +- Did all my database queries execute in less than 250ms? + +![Image of Observability driven development in Tracetest.][8] + +Image by: + +(Ken Hamric, CC BY-SA 4.0) + +By combining the ability to exercise your code, view the response and trace returned, and then build tests based on both sets of data, Tracetest provides a tool to enable you to do observability-driven development with OpenTelemetry. + +### Try Tracetest + +If you're ready to get started, [download Tracetest][9] and try it out. It's open source, so you can [contribute to the code][10] and help shape the future of trace-based testing with Tracetest! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/observability-driven-development-opentelemetry + +作者:[Ken Hamric][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/kenkubeshopio +[b]: https://github.com/lkxed +[1]: https://www.honeycomb.io/blog/observability-a-manifesto/ +[2]: https://www.cncf.io/blog/2021/12/15/end-of-year-update-on-cncf-and-open-source-velocity-in-2021/ +[3]: https://www.cncf.io/ +[4]: https://opentelemetry.io/ +[5]: http://tracetest.io +[6]: https://opensource.com/sites/default/files/2022-10/tracetest%20functionality.png +[7]: https://www.redhat.com/en/topics/api/what-is-a-rest-api?intcmp=7013a000002qLH8AAM +[8]: https://opensource.com/sites/default/files/2022-10/Tracetest-odd.png +[9]: https://tracetest.io/download +[10]: https://github.com/kubeshop/tracetest/issues From 2f003bdeb0c2ecc8c948b819c10dffff4068b763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:51:41 +0800 Subject: [PATCH 1654/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221015-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-How-to?= =?UTF-8?q?-Get-Started-with-Shell-Scripting-in-Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow-to-Get-Started-with-Shell-Scripting-in-Linux.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sources/tech/20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md diff --git a/sources/tech/20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md b/sources/tech/20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md new file mode 100644 index 0000000000..1679b9ccc0 --- /dev/null +++ b/sources/tech/20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md @@ -0,0 +1,140 @@ +[#]: subject: "How to Get Started with Shell Scripting in Linux" +[#]: via: "https://www.linuxtechi.com/get-started-shell-scripting-linux/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Get Started with Shell Scripting in Linux +====== + +Hello readers, In this post, we will cover how to get started with shell scripting in Linux or UNIX systems. + +##### What is a Shell? + +A shell is an interpreter in UNIX/Linux like operating systems. It takes commands typed by the user and calls the operating system to run those commands. In simple terms a shell acts as form of wrapper around the OS. For example , you may use the shell to enter a command to list the files in a directory , such as [ls command][1] , or a command to copy ,such as cp. + +``` +$ ls Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos $ +``` + +In this example , when you simply type ls and press enter . The $ is the shell prompt , which tells you the the shell awaits your commands.The remaining lines are the names of the files in the current directory. + +##### What is Shell Prompt? + +The prompt, $, which is called command prompt, is issued by the shell. While the prompt is displayed, you can type a command. The shell reads your input after you press Enter. It determines the command you want executed by looking at the first word of your input. A word is an unbroken set of characters. Spaces and tabs separate words. + +### What are different types of Shells + +since there is no monopoly of shells , you are free to run any shell as you wish. That’s all well and good , but choosing a shell without knowing the alternative is not very helpful. Below are lists of shells available in UNIX/Linux. + +##### The Bourne Shell + +The Original Unix Shell is known as sh , short for shell or the Bourne shell , named for steven Bourne , the creator of sh. This is available on almost all the UNIX like operating system. The Basic bourne shell supports only the most limited command line editing, You can type the Characters,remove characters one at a time with the Backspace key and Press enter to execute the command. If command line gets messed up , you can press Ctrl-C to cancel the whole command. + +##### The C Shell + +It is desgined by Bill Joy at the university of california at Berkeley , the C shell was so named because much of its syntax parallels that of C programming language. This shell adds some neat features to the Bourne shell,especially the ability to recall previous commands to help create future commands.Because it is very likely you will need to execute more than one command to perform a particular task,this C shell capability is very useful. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-4','ezslot_7',340,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-4-0'); + +##### The Korn Shell + +It is created by David Korn at AT&T Bell laboratories , the korn shell or ksh offers the same kind of enhancements offers by the C Shell , with one important difference: The korn shell is backward compatible with the older Bourne shell Synatx. In UNIX like AIX & HP-UX korn shell is the default shell. + +##### Bash (The Bourne Again Shell) + +Bash offers command-line editing like the korn shell,file name completion like the C shell and a lot of other advance features. Many Users view bash as having the best of the Korn and C shells in one shell. In Linux and Mac OS X system , bash is the default shell. + +##### tcsh ( The T C Shell) + +Linux systems popularized the T C shell ot Tcsh. Tcsh extends the traditional csh to add command line editing,file name completion and more. For example , tcsh will complete the file and directory names when you press Tab key(the same key used in bash). The older C shell did not support this feature. + +### What is a Shell Script? + +A Shell Script is a text file that contains one or more commands. In a shell script, the shell assumes each line of text file holds a separate command. These Commands appear for most parts as if you have typed them in at a shell windows. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-box-4','ezslot_8',260,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-box-4-0'); + +##### Why to use Shell Script ? + +Shell scripts are used to automate administrative tasks,encapsulate complex configuration details and get at the full power of the operating system.The ability to combine commands allows you to create new commands ,thereby adding value to your operating system.Furthermore ,combining a shell with graphical desktop environment allows you to get the best of both worlds. + +In Linux system admin profile, day to day repeated tasks can be automated using shell script which saves time and allow admins to work on quality work. + +##### Creating first shell script + +Create a text file in your current  working directory with a name myscript.sh , all the shell scripts have an “.sh” extension. First line of a shell script is either #!/bin/sh or #!/bin/bash , it is known as shebang because # symbol is called hash and ! Symbol is called a bang. Where as /bin/sh & /bin/bash shows that commands to be executed either sh or bash shell. + +Below are the content of  myscript.sh + +``` +#!/bin/bash # Written by LinuxTechi echo echo "Current Working Directory: $(pwd)" echo echo "Today' Date & Time: $(date)" DISK=$(df -Th) echo echo "Disk Space on System:" echo "$DISK" +``` + +Above shell script will display the current working , today’s date & time along with file system disk space. We have used [echo command][2] and other [linux commands][3] to build this script. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-3','ezslot_6',320,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-3-0'); + +Assign the executable permissions using below [chmod command][4] + +``` +$ chmod a+x myscript.sh +``` + +Now execute the script. + +``` +$ sh myscript.sh or $ ./myscript.sh +``` + +Note: To execute any shell script available in current directory, use  ./ as shown below, + +output, + +##### Taking Input from the user in shell script + +Read command is used to take inputs from user via keyboard and assign the value to a variable. echo command is used to display the contents. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-banner-1','ezslot_9',360,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-banner-1-0'); + +Let’s modify above script so that it starts taking input, + +``` +#!/bin/bash # Written by LinuxTechi read -p "Your Name: " NAME echo echo "Today' Date & Time: $(date)" echo read -p "Enter the file system:" DISK echo "$(df -Th $DISK)" +``` + +Now, try to execute the script this time it should prompt to enter details. + +``` +$ ./myscript.sh Your Name: Pradeep Kumar Today' Date & Time: Sat 15 Oct 05:32:38 BST 2022 Enter the file system:/mnt/data Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data $ +``` + +Perfect, above output confirms that scripting is prompting for input and processing data. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-large-leaderboard-2','ezslot_11',550,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-large-leaderboard-2-0'); + +That’s conclude the post. I hope you have found it informative. Kindly do post your queries and feedback in below comments section. + +Read Also: [How to Debug a Bash Shell Script in Linux][5] + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/get-started-shell-scripting-linux/ + +作者:[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/linux-ls-command-examples-beginners/ +[2]: https://www.linuxtechi.com/echo-command-examples-in-linux/ +[3]: https://www.linuxtechi.com/20-linux-commands-interview-questions-answers/ +[4]: https://www.linuxtechi.com/chmod-command-examples-in-linux/ +[5]: https://www.linuxtechi.com/debugging-shell-scripts-in-linux/ From 11a28539545b8e4e15bbcb7e95be2ec386fbfbfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 22 Oct 2022 21:52:10 +0800 Subject: [PATCH 1655/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221021-=E2=AD=90=EF=B8=8F-How-to-Install-AWS-CLI-o?= =?UTF-8?q?n-Linux-Step-by-Step.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow-to-Install-AWS-CLI-on-Linux-Step-by-Step.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md diff --git a/sources/tech/20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md b/sources/tech/20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md new file mode 100644 index 0000000000..1bc2265ed9 --- /dev/null +++ b/sources/tech/20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md @@ -0,0 +1,130 @@ +[#]: subject: "How to Install AWS CLI on Linux Step-by-Step" +[#]: via: "https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install AWS CLI on Linux Step-by-Step +====== + +This post describes how to install latest version of AWS CLI on a linux system step-by-step. AWS CLI is a command line interface which allows us to interact with our AWS account. Developer and sysadmin use aws cli to perform day to day activities and automation. + +##### Prerequisites + +- Pre-Installed Linux System +- Sudo User with admin rights +- Internet Connectivity + +Without any further delay, let’s jump into AWS Cli installations steps. + +### 1) Download installation file + +Open the terminal and run following curl command to download aws cli installation file, + +``` +$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" +``` + +Above command will download file as ‘awscliv2.zip’ in current working directory. + +Execute below [ls command][1] to verify downloaded file, + +``` +$ ls -l awscliv2.zip -rw-rw-r-- 1 linuxtechi linuxtechi 47244662 Oct 20 10:53 awscliv2.zip $ +``` + +### 2) Unzip downloaded installation file + +Run beneath [unzip command][2] to unzip the installer. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-3','ezslot_6',320,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-3-0'); + +``` +$ unzip awscliv2.zip +``` + +It will create aws folder in present working directory and unzip all required files into it. + +``` +$ ls -ld aws drwxr-xr-x 3 linuxtechi linuxtechi 4096 Oct 19 17:18 aws $ +``` + +### 3) Run install script + +To install aws cli, run following install script, + +``` +$ sudo ./aws/install +``` + +Script will install all files under /usr/local/aws-cli and will create symbolic link in /usr/local/bin. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-4','ezslot_7',340,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-4-0'); + +### 4) Verify AWS CLI version + +To verify the aws cli version, run + +``` +$ aws --version aws-cli/2.8.4 Python/3.9.11 Linux/5.15.0-48-generic exe/x86_64.ubuntu.22 prompt/off $ +``` + +### 5) Configure AWS CLI + +To verify the AWS Cli installation, let’s configure aws cli. + +Login to your AWS management console and retrieve AWS access key id and secret access key. + +In case it is not created yet then create access key ID and secret access key. Copy these keys somewhere safe. + +Now head back to Linux terminal, run following aws command, + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-box-4','ezslot_8',260,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-box-4-0'); + +``` +$ aws configure AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxx AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxx Default region name [None]: us-west-2 Default output format [None]: json $ +``` + +Above credentials will be saved in following file, + +``` +$ cat  ~/.aws/credentials +``` + +Output of above commands, + +Run aws command to list s3 bucket and vpc of your account. + +``` +$ aws s3 ls $ aws ec2 describe-vpcs +``` + +Output, + +Output above confirms that aws cli has been configured successfully. + +That’s all from this post, please do post your queries and feedback in below comments sections. + +if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-banner-1','ezslot_9',360,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-banner-1-0'); + +Also Read:[How to Setup EKS Cluster along with NLB on AWS][3] + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/ + +作者:[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/linux-ls-command-examples-beginners/ +[2]: https://www.linuxtechi.com/linux-zip-unzip-command-examples/ +[3]: https://www.linuxtechi.com/how-to-setup-eks-cluster-nlb-on-aws/ From 1aedd9ed31953a374b75d64ca56607faa248d1d1 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Sun, 23 Oct 2022 08:41:40 +0800 Subject: [PATCH 1656/3123] translating by chai001125 --- ...0221013 Learn Bash base64 Encode and Decode With Examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md index 33bc9e4a3b..8dc0ddd3b5 100644 --- a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md +++ b/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/bash-base64-encode-decode/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1e71b32efd40c2d928dec62146c1b5abb44e35e4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 23 Oct 2022 10:02:09 +0800 Subject: [PATCH 1657/3123] ALL @wxy https://linux.cn/article-15167-1.html --- ...-Be-In-Violation-Of-The-Open-Source-Licence.md | 38 +++++++++++++++++++ ...-Be-In-Violation-Of-The-Open-Source-Licence.md | 38 ------------------- 2 files changed, 38 insertions(+), 38 deletions(-) create mode 100644 published/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md delete mode 100644 sources/news/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md diff --git a/published/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md b/published/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md new file mode 100644 index 0000000000..47d73780b2 --- /dev/null +++ b/published/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md @@ -0,0 +1,38 @@ +[#]: subject: "GitHub Copilot Appears To Be In Violation Of The Open Source Licence" +[#]: via: "https://www.opensourceforu.com/2022/10/github-copilot-appears-to-be-in-violation-of-the-open-source-licence/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15167-1.html" + +GitHub Copilot 似乎违反了开源许可证的规定 +====== + +![](https://img.linux.net.cn/data/attachment/album/202210/23/100112lms67c7e8mow8sv6.jpg) + +> 自 Copilot 首次亮相以来,Butterick 就对该计划提出了批评。 + +微软在 2018 年支付 75 亿美元收购了 GitHub,此后将这个代码仓库整合到其开发者工具中,同时在很大程度上采取了放手的态度。Matthew Butterick 是一名作家、律师,也是一名程序员,他认为微软基于机器学习的代码助手 GitHub Copilot 存在一些问题,它似乎不正确地对待开源代码许可证。 + +GitHub Copilot 是 Visual Studio 和其他 IDE 的一个插件,通过在你输入时提供代码完成的 “建议” 来运作。Codex 是该系统的动力源。然而,Butterick 等开发者认为 AI 在如何学习方面存在问题,或者更具体地说,AI 是从哪里训练的。 + +这里的问题是,GitHub 所训练的公开代码仓库是有许可证的,当他们的工作被利用时,需要按照许可证进行。虽然微软对其使用代码的问题一直避而不谈,称其为合理使用,但 Copilot 除了提供建议外,还能生成逐字逐句的代码部分。 + +根据 Codex(由微软授权)的开发者 OpenAI的说法,“Codex 是在数以千万计的公开代码仓库中训练出来的,包括 GitHub 上的代码。”微软自己也含糊地将训练材料描述为数十亿行的公共代码。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/10/github-copilot-appears-to-be-in-violation-of-the-open-source-licence/ + +作者:[Laveesh Kocher][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://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/10/github-logo-2-1-696x348.png diff --git a/sources/news/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md b/sources/news/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md deleted file mode 100644 index 4a49748487..0000000000 --- a/sources/news/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md +++ /dev/null @@ -1,38 +0,0 @@ -[#]: subject: "GitHub Copilot Appears To Be In Violation Of The Open Source Licence" -[#]: via: "https://www.opensourceforu.com/2022/10/github-copilot-appears-to-be-in-violation-of-the-open-source-licence/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GitHub Copilot Appears To Be In Violation Of The Open Source Licence -====== - -![github-logo-2][1] - -_Since Copilot’s debut, Butterick has voiced criticism of the program._ - -Microsoft paid $7.5 billion buying GitHub in 2018 and has since integrated the code repository into its developer tools while taking a largely hands-off stance. Matthew Butterick, a writer, attorney, and programmer, has some problems with GitHub Copilot, Microsoft’s machine-learning based code helper, and how it appears to be treating open source licences incorrectly. - -GitHub Copilot, a plugin for Visual Studio and other IDEs, operates by providing “suggestions” for code completion as you type. Codex serves as the system’s power source. However, developers like Butterick are having trouble with how the AI is learned, or more specifically, from where it is trained. - -The issue here is that the public repositories on which GitHub is trained are licenced and demand credit when their work is utilised. Although Microsoft has been evasive about its usage of the code, referring to it as fair use, Copilot is able to generate verbatim portions of code in addition to suggestions. - -As per OpenAI, the developers of Codex (which is licensed by Microsoft), “Codex was trained on tens of mil­lions of pub­lic repos­i­to­ries includ­ing code on GitHub. Microsoft itself has vaguely described the train­ing mate­r­ial as bil­lions of lines of pub­lic code”. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/10/github-copilot-appears-to-be-in-violation-of-the-open-source-licence/ - -作者:[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/10/github-logo-2-1-696x348.png From 66a6e494b422bf1d17f7393922991f3aad54e81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 12:02:48 +0800 Subject: [PATCH 1658/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221022-=E2=AD=90=EF=B8=8F-Use-open-source-commands?= =?UTF-8?q?-in-Powershell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️-Use-open-source-commands-in-Powershell.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md diff --git a/sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md b/sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md new file mode 100644 index 0000000000..0edffb3061 --- /dev/null +++ b/sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md @@ -0,0 +1,94 @@ +[#]: subject: "Use open source commands in Powershell" +[#]: via: "https://opensource.com/article/22/10/set-path-powershell" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use open source commands in Powershell +====== + +When you launch an application on an operating system, there are certain code libraries and utility applications that your OS needs to use for that app to run. Your OS knows how to find these libraries and utilities because it has a _system path,_ a map to common shared data that lots of apps need. Every OS has this, but users aren’t usually aware of it because they don’t usually need to care about it. However, when you start coding or using special network utilities or commands, you might care about your own PATH variable. + +The PATH variable makes it so that you can save commands to a consistent location, and use them from anywhere on your system using the command prompt or the more powerful (and open source) [Powershell][1]. + +For instance, say you want to install the open source application `pscp.exe`, a command-line interface to the famous PuTTY OpenSSH client on Windows. You can download it to your hard drive, but how does your command-line know that it exists? Well at first, it doesn’t: + +``` +PS> pscp + pscp: The term 'pscp' is not recognized as the name of a cmdlet, script file, or operable program. + Check the spelling of the name, or if a path was included, verify that the path is correct and try again. +``` + +If you’re using an open source command line, such as Powershell or [Cmder][2], you get a useful error hinting that this might be a problem with your path (or the lack thereof). Here’s how to solve that problem. + +### Setting a PATH + +- First, create a folder called `App` on your Desktop. +- Next, right-click on the Windows menu in the bottom left corner of your screen, and select **System**. + +![Image of the Windows menu system.][3] + +Image by: + +(Alan Smithee, CC BY-SA 4.0) + +- In the **System** window that appears, click the link to **Advanced system settings** on the left of the window. +- In the **System properties** window that appears, click the **Environment variables** button at the bottom of the window. + +![Image Windows system enviroment variables.][4] + +Image by: + +(Alan Smithee, CC BY-SA 4.0) + +- In the **Environment variables** window, click the **New** button under the **User variables** panel. + +![Image of new Windows enviroment variables.][5] + +Image by: + +(Alan Smithee, CC BY-SA 4.0) + +- In the dialog box that appears, enter `PATH` for the **Variable name** field, and `%USERPROFILE\Desktop\App` for the **Variable value** field. Click the **OK** button to save your changes. + +![Image of Windows path set.][6] + +Image by: + +(Alan Smithee, CC BY-SA 4.0) + +Place commands and applications you want to have access to from a command prompt in `Desktop\Apps` and Powershell, Cmder, and even Cmd will find them: + +``` +PS> pscp –version + pscp: Release 0.XY + Build platform: 64-bit x86 Windows + PS> +``` + +### Automatic PATH settings + +Many applications get automatically added to the system path during installation. However, not all of them do, either because you missed a check box during the install process, or because the application developer expects you to add it yourself. When automatic paths fail, you now know how to forge your own path. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/set-path-powershell + +作者:[Alan Smithee][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/alansmithee +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/18/2/powershell-people +[2]: http://cmder.app/ +[3]: https://opensource.com/sites/default/files/2022-10/windows-menu-system.png +[4]: https://opensource.com/sites/default/files/2022-10/windows-system-environment-variables.png +[5]: https://opensource.com/sites/default/files/2022-10/windows-environment-variables-new.png +[6]: https://opensource.com/sites/default/files/2022-10/windows-path-set.png From 4c3a997b3a15124dbaccbc396e6e725a073bca9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 12:11:32 +0800 Subject: [PATCH 1659/3123] =?UTF-8?q?Rename=2020221022-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Use-open-source-commands-in-Powershell.md=20to=2020221022-?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Use-open-source-commands-i?= =?UTF-8?q?n-Powershell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ell.md => 20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221022-⭐️-Use-open-source-commands-in-Powershell.md => 20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md} (100%) diff --git a/sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md b/sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md similarity index 100% rename from sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md rename to sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md From e551fc630fbfe05d020943959e80d18eb5aee45b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 12:12:10 +0800 Subject: [PATCH 1660/3123] =?UTF-8?q?Rename=2020221022-=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-Use-open-source-commands-in-Powershell.md=20?= =?UTF-8?q?to=2020221022-=E2=AD=90=EF=B8=8F-Use-open-source-commands-in-Po?= =?UTF-8?q?wershell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...owershell.md => 20221022-⭐️-Use-open-source-commands-in-Powershell.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md => 20221022-⭐️-Use-open-source-commands-in-Powershell.md} (100%) diff --git a/sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md b/sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md similarity index 100% rename from sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md rename to sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md From be30722aeb1b255e54e8ccd5e5e90e6daee5d47c Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 23 Oct 2022 12:21:23 +0800 Subject: [PATCH 1661/3123] =?UTF-8?q?Rename=2020221022-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Use-open-source-commands-in-Powershell.md=20to=2020221022-?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Use-open-source-commands-i?= =?UTF-8?q?n-Powershell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ell.md => 20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221022-⭐️-Use-open-source-commands-in-Powershell.md => 20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md} (100%) diff --git a/sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md b/sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md similarity index 100% rename from sources/tech/20221022-⭐️-Use-open-source-commands-in-Powershell.md rename to sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md From 21011098d7b344395374f0d0e772c14b6e37f264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 12:29:59 +0800 Subject: [PATCH 1662/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221018-=E2=AD=90=EF=B8=8F-Give-Your-Linux-Desktop-?= =?UTF-8?q?a-Halloween-Makeover.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ive-Your-Linux-Desktop-a-Halloween-Makeover.md | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 sources/tech/20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md diff --git a/sources/tech/20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md b/sources/tech/20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md new file mode 100644 index 0000000000..f92b592a40 --- /dev/null +++ b/sources/tech/20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md @@ -0,0 +1,283 @@ +[#]: subject: "Give Your Linux Desktop a Halloween Makeover" +[#]: via: "https://itsfoss.com/linux-halloween-makeover/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Give Your Linux Desktop a Halloween Makeover +====== + +Halloween is around the corner. Boo! + +Of course, there are ways to celebrate Halloween, and I believe you might have a few ideas of your own. How about giving your Linux desktop a spooky, dark makeover? Something like the screenshot below? + +![ubuntu halloween theming final looks][1] + +Customization is a high point of Linux, and there is no end to it. Earlier, we showed you[how to make your Linux look like macOS][2]. Today, I’ll share a few tips to keep up with the Halloween ‘spirit’. + +This is possible with a combination of themes, icons, extensions, fonts, conky, etc. **_While you can do these things on any distribution and desktop environment, it’s not feasible for me to show them all in a single tutorial._** + +Here, I have used Ubuntu with the GNOME desktop environment. + +### Getting all the tools + +You need several packages and tools. Make sure you have them all (or most of them) before you start the customization. + +_It’s not mandatory to make all of the changes. But the more you do, the better look and feel you get._ + +**GNOME Tweaks and GMOME Extensions manager** + +Get the Tweaks tool and the extension manager with this command: + +``` +`sudo apt install gnome-tweaks gnome-extension-manager` +``` + +In KDE-based systems, you don’t any tweak tool to change the look. But surely, you will need the **Kvantum-Manager** app that I discussed in the [KDE theming][3] guide. + +**Conky** + +This is actually optional. Since the conky-manager project is not receiving any maintenance, it will be a bit tricky to use conky. But anyway, let’s use it for the additional look-and-feel. + +``` +`sudo apt install conky-all` +``` + +**Neofetch or shell color scripts** + +This step is also a personal choice. You can choose [neofetch][4] because it’s already available in the repository and can be used easily. + +``` +`sudo apt install neofetch` +``` + +[Shell-color scripts][5] are another excellent choice. The package is available in AUR and Arch Linux users can install it from there. In Ubuntu, you need to install it manually. + +``` +`git clone https://gitlab.com/dwt1/shell-color-scripts.git cd shell-color-scripts sudo make install` +``` + +**Themes, icons, fonts, and wallpaper** + +I am using [Sweet][6] theme, [Beautiline][7] icon pack, [simple1e][8] cursors, and [Grey-Minimalistic][9] conky theme. Once downloaded, extract them. You should also get [Creepster][10] font. + +Download a [spooky wallpaper][11] from the internet. + +Alert! You’ll be doing a lot of customization and change. You can go back to the usual look by reverting all the changes you made. An easier way out would be to create a new user with admin access and make all these changes with this new user. This way, your original user account and appearance doesn’t get impacted. When Halloween is over, you can delete this additional user. + +With all resources in hand, it’s time to utilize them. + +### Install and use the extensions + +Open the gnome-extensions app. In Ubuntu 22.04, you can install extensions from within the app, by using the browse section. + +![install gnome shell extensions user themes blur my shell and dash to dock][12] + +In other versions of Ubuntu and other GNOME distributions, you can [install shell extensions][13] through the browser. For our purpose, install the following extensions : + +- [User Themes][14] +- [Dash to Dock][15] +- [Blur my Shell][16] + +Also, make sure that all the extensions are enabled. + +### Apply theme, icon, and font + +You need to copy and paste the extracted theme folder to `~/.themes` directory and icon and cursor folder to the `~/.icons` directory. + +Now open GNOME tweaks and apply the settings as shown in the screenshot below. + +![set themes with gnome tweaks][17] + +To use a [custom font in Ubuntu][18], right-click on the font file that you have downloaded and extracted and select open with Font manager. I am using [Creepster][10] font. + +![right click on font file and select open with fonts][19] + +Here, press the install button. + +![install font using font manager application][20] + +Note: In some systems, pressing the install button won’t show the “installed” prompt. In that case, you can just close the app because once you press the install button, it has been installed. + +Now open the Tweaks app and move to the fonts section. Here, you can change the fonts of various sections as shown in the screenshot below. + +![change system fonts using gnome tweaks][21] + +Note that, for terminals, a monospace font is required. Here, I am using a regular font and thus it may give you a slightly disoriented look sometimes. + +### Apply Dash to Dock Extension settings + +First, you need to **turn off the Ubuntu Dock extension** using the GNOME Extensions application. + +![Disable Ubuntu Dock][22] + +Run the Dash to Dock extension if it’s not running already. + +Now, right-click on the dash to dock application button appearing on the bottom and select dash to dock settings. + +![select dash to dock settings][23] + +Here, you need to tweak some small things. + +First, reduce the icon size using the respective slider. + +![setting dash to dock icon size][24] + +After that, you need to reduce the opacity of the dock. I prefer a fully transparent dock. + +For this, set the opacity to **fixed** and reduce it to zero with the slider, as shown in the screenshot below. + +![opacity setting for dash to dock][25] + +### GNOME terminal setting + +The main tweak you want to get is a custom neofetch look (or a shell color script) with some blurred transparency. + +On applying monospace font in GNOME-tweaks earlier, the font in the GNOME terminal is also changed. + +First, create a new profile from **preferences**. + +![select preferences from hamburger menu][26] + +Here, Click + sign to create a new profile. Type in a name and press **create** as shown below: + +![create new profile in gnome terminal][27] + +Inside the new profile, change the transparency setting and set it around the middle, as shown in the screenshot: + +![set transperancy to gnome terminal][28] + +Once finished, set this profile as the default. To do this, click on the triangle button associated with the new profile and select **Set as Default**. + +![set new profile as default in gnome terminal][29] + +#### Setting blur effect + +The above step will only create a transparent shell. But if you need a blur effect, which is good for better visibility, you need to go to the Blur my Shell extension settings. + +![blur my shell extension settings][30] + +Here, go to the **Application** tab. Now, ensure that the terminal is opened and placed conveniently on the desktop. Click on **Add Window** button and select gnome-terminal window, to set the blur effect. Note: This feature is in beta so expect minor glitches. + +![applying blur effect to selected windows][31] + +This same procedure can be repeated for other apps also, like the Nautilus file manager. + +#### Customizing Neofetch + +One of the best features of neofetch is its customizability. You can tweak the look with a wide range of methods. For Halloween, I choose a pumpkin image to appear in place of the distro logo. + +Neofetch supports adding custom images in a variety of formats. For that purpose, there are a variety of backends supported. Here, I use the jp2a backend, which will use an [ASCII converted image][32]. + +``` +`neofetch --jp2a /path/to/your/image/file.png` +``` + +![neofetch with custom backend][33] + +The above code will create a neofetch instance with the custom image. You can write this code to your .bashrc file, for permanent placement. + +_**Unfortunately, this didn’t work on my Wayland instance.**_ + +#### Customizing Shell Color Scripts + +If you installed shell color scripts, you have a variety of shell scripts. To list the available scripts, use: + +``` +``colorscript -l`` +``` + +![ghosts shell color script][34] + +You can either get a random script each time by placing `colorscript random` in your .bashrc file. Or you can get any particular script by placing `colorscript -e ` + +### Setting up Conky + +I am using the [Grey-Minimalistic conky theme][9] from Deviantart. Each type of conky theme has a different installation method. So if you are using another conky file, follow its setup method, described in its README files. + +Extract the conky theme file. Inside, we have several folders. First, you need to install the associated icons and fonts. That is, install the given font using font-manager. Copy and paste the icon folder to your ~/.icons folder. + +![copy and paste conky files to home directory][35] + +Now, go to the conky folder. Make sure that, you have [enabled viewing hidden files][36]. Now copy the `.conkyrc` file and `.conky-vision-icons` file to your Home directory, as shown above. + +Now start conky to get a look like this. + +![conky theme applied][37] + +Add the conky to the [list of startup applications][38] so that it starts automatically at each boot. + +![add conky to the list of startup applications][39] + +### Change wallpaper + +You are almost there. The only thing you need to do now is to [change the background wallpaper][40]. You have already downloaded the spooky wallpapers I believe. + +![set image as wallpaper from nautilus][41] + +### Behold the final look! + +If you followed most of the steps above, you should get a desktop that looks like the one in the below screenshots. + +![ubuntu halloween theme final look][42] + +Is it scary enough for Halloween? What do you think? Let me know in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-halloween-makeover/ + +作者:[Sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theming-final-looks.jpg +[2]: https://itsfoss.com/make-ubuntu-look-like-macos/ +[3]: https://itsfoss.com/properly-theme-kde-plasma/ +[4]: https://itsfoss.com/using-neofetch/ +[5]: https://gitlab.com/dwt1/shell-color-scripts +[6]: https://www.gnome-look.org/p/1253385 +[7]: https://www.gnome-look.org/p/1425426 +[8]: https://www.gnome-look.org/p/1405210 +[9]: https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564 +[10]: https://fonts.google.com/specimen/Creepster?query=creepster +[11]: https://www.wallpaperflare.com/search?wallpaper=spooky +[12]: https://itsfoss.com/wp-content/uploads/2022/10/install-gnome-shell-extensions-user-themes-blur-my-shell-and-dash-to-dock.png +[13]: https://itsfoss.com/gnome-shell-extensions/ +[14]: https://extensions.gnome.org/extension/19/user-themes/ +[15]: https://extensions.gnome.org/extension/307/dash-to-dock/ +[16]: https://extensions.gnome.org/extension/3193/blur-my-shell/ +[17]: https://itsfoss.com/wp-content/uploads/2022/10/set-themes-with-gnome-tweaks.png +[18]: https://itsfoss.com/install-fonts-ubuntu/ +[19]: https://itsfoss.com/wp-content/uploads/2022/10/right-click-on-font-file-and-select-open-with-fonts.png +[20]: https://itsfoss.com/wp-content/uploads/2022/10/install-font-using-font-manager-application.png +[21]: https://itsfoss.com/wp-content/uploads/2022/10/change-system-fonts-using-gnome-tweaks.png +[22]: https://itsfoss.com/wp-content/uploads/2020/06/disable-ubuntu-dock.png +[23]: https://itsfoss.com/wp-content/uploads/2022/10/select-dash-to-dock-settings.png +[24]: https://itsfoss.com/wp-content/uploads/2022/10/setting-dash-to-dock-icon-size.png +[25]: https://itsfoss.com/wp-content/uploads/2022/10/opacity-setting-for-dash-to-dock.png +[26]: https://itsfoss.com/wp-content/uploads/2022/10/select-preferences-from-hamburger-menu.png +[27]: https://itsfoss.com/wp-content/uploads/2022/10/create-new-profile-in-gnome-terminal.png +[28]: https://itsfoss.com/wp-content/uploads/2022/10/set-transperancy-to-gnome-terminal.png +[29]: https://itsfoss.com/wp-content/uploads/2022/10/set-new-profile-as-default-in-gnome-terminal.png +[30]: https://itsfoss.com/wp-content/uploads/2022/10/blur-my-shell-extension-settings.png +[31]: https://itsfoss.com/wp-content/uploads/2022/10/applying-blur-effect-to-selected-windows.png +[32]: https://itsfoss.com/ascii-image-converter/ +[33]: https://itsfoss.com/wp-content/uploads/2022/10/neofetch-with-custom-backend.png +[34]: https://itsfoss.com/wp-content/uploads/2022/10/ghosts-shell-color-script.png +[35]: https://itsfoss.com/wp-content/uploads/2022/10/copy-and-paste-conky-files-to-home-directory.png +[36]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/ +[37]: https://itsfoss.com/wp-content/uploads/2022/10/conky-theme-applied.png +[38]: https://itsfoss.com/manage-startup-applications-ubuntu/ +[39]: https://itsfoss.com/wp-content/uploads/2022/10/add-conky-to-the-list-of-startup-applications.png +[40]: https://itsfoss.com/change-wallpaper-ubuntu/ +[41]: https://itsfoss.com/wp-content/uploads/2022/10/set-image-as-wallpaper-from-nautilus.png +[42]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theme-final-look.jpg From 7d018bc896e25a03291672db75274c4782faec7a Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 23 Oct 2022 12:33:35 +0800 Subject: [PATCH 1663/3123] =?UTF-8?q?Rename=2020221018-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Give-Your-Linux-Desktop-a-Halloween-Makeover.md=20to=2020221018?= =?UTF-8?q?-=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F-Give-Your-Linux-Desktop-a?= =?UTF-8?q?-Halloween-Makeover.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... => 20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md => 20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md} (100%) diff --git a/sources/tech/20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md b/sources/tech/20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md similarity index 100% rename from sources/tech/20221018-⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md rename to sources/tech/20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md From c132390f3fd61d55b95229d695b1fbf41cffd26d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 23 Oct 2022 15:34:11 +0800 Subject: [PATCH 1664/3123] RP @geekpi https://linux.cn/article-15168-1.html --- ...ay to Open Files as Root in GNOME Files.md | 53 +++++++++---------- 1 file changed, 26 insertions(+), 27 deletions(-) rename {translated/tech => published}/20221011 Easiest Way to Open Files as Root in GNOME Files.md (52%) diff --git a/translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md b/published/20221011 Easiest Way to Open Files as Root in GNOME Files.md similarity index 52% rename from translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md rename to published/20221011 Easiest Way to Open Files as Root in GNOME Files.md index ac5899e9cc..e8854cf6d7 100644 --- a/translated/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md +++ b/published/20221011 Easiest Way to Open Files as Root in GNOME Files.md @@ -3,61 +3,60 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15168-1.html" -在 GNOME 文件中以 Root 身份打开文件的最简单方法 +在 GNOME 文件应用中以 Root 身份打开文件的最简单方法 ====== -这是在 GNOME Files 中以 root 身份访问文件或目录的最简单方法。 + +> 这是在 GNOME 文件应用中以 root 身份访问文件或目录的最简单方法。 ![][1] 在 Windows 中,你通常可以在右键单击上下文菜单中以“以管理员身份打开”的方式打开文件或文件夹。 -该功能是文件管理器的一部分,即适用于 Windows。它是 Windows 资源管理器的一部分。但是,它是由操作系统及其权限控制模块执行的。 +该功能是文件管理器的一部分,对于 Windows,它是 Windows 资源管理器的一部分。但是,它是由操作系统及其权限控制模块执行的。 -在 Linux 发行版和文件管理器中,情况略有不同。不同的桌面有自己的处理方式。 +在 Linux 发行版及其文件管理器中,情况略有不同。不同的桌面有自己的处理方式。 -由于以管理员(或 root)身份修改文件和文件夹是有风险的,并且可能导致系统损坏,因此用户无法通过文件管理器的 GUI 轻松使用该功能。 +由于以管理员(root)身份修改文件和文件夹是有风险的,并且可能导致系统损坏,因此用户无法通过文件管理器的 GUI 轻松使用该功能。 -例如,KDE Plasma 的默认文件管理器 Dolphin 最近[添加了此功能][2],因此当需要 root 权限时,它会通过 PolicyKit KDE Agent (polkit) 窗口询问你,如下所示。而不是相反的方式。你想在文件管理器中通过 root 打开/执行一些东西。 - -值得一提的是,你不能使用 “sudo dolphin” 以 root 权限运行文件管理器本身。 +例如,KDE Plasma 的默认文件管理器(Dolphin)最近 [添加了此功能][2],因此当需要 root 权限时,它会通过 PolicyKit KDE Agent(polkit)窗口询问你,如下所示。 ![使用 Polkit 实现 KIO 后的 Dolphin root 访问权限][3] -在某种程度上,它挽救了许多不可预见的情况。但是高级用户总是可以通过终端使用 sudo 来完成他们的工作。 +而不是相反的方式。比如,你想在文件管理器中通过 root 打开/执行一些东西时,你不能使用 `sudo dolphin` 以 root 权限运行文件管理器本身。 -### GNOME Files (Nautilus) 和对文件、目录的 root 访问权限 +在某种程度上,它挽救了许多不可预见的情况。但是高级用户总是可以通过终端使用 `sudo` 来完成他们的工作。 -话虽如此,[GNOME Files][4](又名 Nautilus)有一种方法可以通过 root 打开文件和文件夹。 +### GNOME 文件应用(Nautilus)和对文件、目录的 root 访问权限 -以下是方法。 +话虽如此,[GNOME 文件应用][4](又名 Nautilus)有一种方法可以通过 root 打开文件和文件夹。 -* 打开 GNOME Files 或 Nautilus。 -* 然后单击左侧窗格中的其他位置。 -* 按 CTRL+L 调出地址栏。 +以下是方法: + +* 打开 GNOME 文件应用(Nautilus)。 +* 然后单击左侧窗格中的“其他位置Other Locations”。 +* 按 `CTRL+L` 调出地址栏。 * 在地址栏中,输入下面的内容并回车。 - -``` -admin:/// -``` - -* 它会要求输入管理员密码。当你成功验证自己,你就会以管理员身份打开系统。 + ``` + admin:/// + ``` +* 它会要求输入管理员密码。当你成功验证,你就会以管理员身份打开系统。 * 现在,从这里开始,无论你做什么,它都是管理员或 root。 ![以管理员身份输入位置地址][5] ![输入管理员密码][6] -![以 root 身份打开 GNOME Files][7] +![以 root 身份打开 GNOME 文件应用][7] 但是,与往常一样,请小心你作为管理员所做的事情。在你以 root 身份验证自己之后,通常很容易忘记。 这些选项不容易看到总是有原因的,以防止你和许多新的 Linux 用户破坏他们的系统。 -干杯。 +祝好。 -------------------------------------------------------------------------------- @@ -66,7 +65,7 @@ via: https://www.debugpoint.com/gnome-files-root-access/ 作者:[Arindam][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/) 荣誉推出 From e2d5fee743ab247183a6473595b602c3a778eadd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 15:53:58 +0800 Subject: [PATCH 1665/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221022.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20use=20journalctl=20to=20View=20and=20Analyze=20Syste?= =?UTF-8?q?md=20Logs=20[With=20Examples].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o View and Analyze Systemd Logs [With Examples].md | 250 ++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md diff --git a/sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md new file mode 100644 index 0000000000..37ebc17974 --- /dev/null +++ b/sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md @@ -0,0 +1,250 @@ +[#]: subject: "How to use journalctl to View and Analyze Systemd Logs [With Examples]" +[#]: via: "https://www.debugpoint.com/systemd-journalctl/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to use journalctl to View and Analyze Systemd Logs [With Examples] +====== + +**This guide explains the basics of the journalctl utility of [Systemd][1] and its various commands. You can use these commands for troubleshooting desktop and server logs in Linux. This is how you can use journalctl to view and analyze Systemd Logs with different examples.** + +### Introduction + +Many say that Systemd is not good, it is heavy on the system and it is a debated topic always. But you can not deny that it provides a well set of utilities to manage, troubleshoot a system. Imagine you end up with a broken system with no GUI. You probably messed up boot and GRUB as well. In those kinds of scenarios or in general – you can boot from a LIVE system, mount your Linux partition and explore the Systemd logs to find out about the problem. + +Systemd has three basic components as follows – + +- **systemd**: System and service manager for Linux operating systems. +- **systemctl**: Command to introspect and control the state of the systemd system and service manager. +- **systemd-analyze**: Provides system boot-up performance statistics and retrieve other state and tracing information from the system and service manager + +Apart from these three, there are additional services that systemd provides such as – journald, logind, networkd, etc. In this guide we will talk about the journald service of systemd. + +### journald – systemd journal daemon + +By design, systemd provides a centralized way of handing all operating system logs from processes, applications, etc. All these logging events are handled by journald daemon of systemd. The journald daemon collects all logs from everywhere of the Linux operating systems and stores themes as binary data in files. + +The advantages of centralized logging of events, system problems as binary data are many. For example, as the system logs are stored as binary and not text – you can translate in many ways such as text, JSON objects for various needs. Also, it is super easy to track down to a single event as the logs are stored sequentially via date/time manipulation of the logs. + +Remember the log files that journald collects are in thousands of lines and it gets updated for every event, every boot. So if you have a long time running Linux operating system – the journal logs size should in GBs. As the logs are in thousands, it’s better to filter with basic commands to find out more about the system problems. + +#### The journald Configuration File + +The configuration file of the journald is present in the below path. It contains various flags on how the logging happens. You can take a look at the file and make the changes necessary. But I would recommend not to modify this file unless you know what you are doing. + +``` +/etc/systemd/journald.conf +``` + +#### Where journald stores the binary log files + +The journald stores the logs in binary format. They are stored inside a directory under this path. + +``` +/var/log/journal +``` + +For example, in the below path there is a directory that contains all the system logs to date. + +![journalctl log file path][2] + +Do not use cat command or use nano or vi to open these files. They would not be displayed properly. + +### Use journalctl to View and Analyze Systemd Logs + +#### Basic journald command + +The basic command to view logs using journal daemon is – + +``` +journalctl +``` + +![journalctl][3] + +This gives you all the journal entries including errors, warnings, etc from all applications and processes. It shows the list with the oldest log at the top and current logs at the bottom. You need to keep pressing ENTER to scroll through it line by line. You can also use PAGE UP and PAGE DOWN keys to scroll. Press q to exit from this view. + +#### How to view journal entries for time zones + +By default, the journalctl shows the log time in the current system time zone. However, you can easily provide the timezone in your command to convert the same log to a different time zone. For example, to view the logs in UTC, use the below command. + +``` +journalctl --utc +``` + +![journalctl --utc][4] + +#### How to view only errors, warnings, etc in journal logs + +The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command. + +To view emergency system messages use: + +``` +journalctl -p 0 +``` + +![journalctl -p 0][5] + +Error codes + +``` +0: emergency 1: alerts 2: critical 3: errors 4: warning 5: notice 6: info 7: debug +``` + +When you specify the error code, it shows all messages from that code and above. For example, if you specify the below command, it shows all messages with priority 2, 1 and 0 + +``` +journalctl -p 2 +``` + +#### How to view journal logs for a specific boot + +When you are running the journalctl command it shows the information from the current boot that is from the current session which you are running. But it is also possible to view information about past boots as well. + +Journal logs keep on updating in every reboot. The journald keeps track of the logs in different boots. To view, the boot-wise logs use the below command. + +``` +journalctl --list-boots +``` + +![journalctl list-boots][6] + +- The first number shows the unique journald boot track number which you can use in the next command to analyze that specific boot. +- The second number the boot ID which also you can specify in the commands. +- The next two date, time combinations are the duration of the logs stored in the respective file. This is super handy if you want to find out a log or error from a specific date, time. + +To view a specific boot number you the first number or the boot ID as below. + +``` +journalctl -b -45 +``` + +``` +journalctl -b 8bab42c7e82440f886a3f041a7c95b98 +``` + +![journalctl -b 45][7] + +You can also use `-x` switch which can add an explanation of the systemd error messages in your display. This is a lifesaver in certain situations. + +``` +journalctl -xb -p 3 +``` + +![journalctl -xb][8] + +#### How to view journal logs for a specific time, date duration + +The journalctl is powerful enough to provide “english” like argument in the command itself for time and date manipulation. + +You can use`--since` switch with a combination of `“yesterday”, “today”, “tomorrow”, or “now”.` + +Some of the examples of different commands below. You can modify them as per your need. They are self-explanatory. The date, time format in the below commands are `"YYYY-MM-DD HH:MM:SS"` + +``` +journalctl --since "2020-12-04 06:00:00" +``` + +``` +journalctl --since "2020-12-03" --until "2020-12-05 03:00:00" +``` + +``` +journalctl --since yesterday +``` + +``` +journalctl --since 09:00 --until "1 hour ago" +``` + +![journalctl --since 09:00 --until][9] + +You can combine the above with the error level switches as well. + +#### How to see Kernel specific journal logs + +The Linux Kernel messages can be extracted from journal logs as well. To view the Kernel messages from the current boot only use the below command. + +``` +journalctl -k +``` + +#### How to see journal logs for a service, PID + +You can filter out specific logs from a systemd service unit only from the journald logs. For example, to find out the logs from NetworkManager service use the below command. + +``` +journalctl -u NetworkManager.service +``` + +![journalctl NetworkManager service][10] + +If you do not know the service name, you can use the below command to list the systemd services in your system. + +``` +systemctl list-units --type=service +``` + +#### How to view journal logs for a user, group + +If you are analyzing server logs this command is helpful where multiple users are logged in. You can first find out about the user id using the below command from the user name. For example, to find out the id of user “`debugpoint`” – + +``` +id -u debugpoint +``` + +Then use that ID with `_UID` switch to view the logs generated by the user. + +``` +journalctl _UID=1000 --since today +``` + +![journalctl _UID][11] + +Similarly use `_GID` switch to find out the same for user groups. + +#### How to view journal logs for an executable + +You can also find out journald logs of a specific program or executable. For example, if you want to find out the messages of gnome-shell, you can run the below command. + +``` +journalctl /usr/bin/gnome-shell --since today +``` + +![journalctl gnome-shell][12] + +### Closing notes + +I hope this guide helps you to use journalctl to view analyze systemd logs on your Linux desktop or server troubleshooting. The systemd journal management extremely powerful if you know how to use the commands, it makes your life a bit easy during debugging time. All major mainstream Linux distribution uses Systemd these days. Ubuntu, Debian, Fedora, Arch – they all use systemd for their default OS offerings. In case if you are wondering about systemd-free Linux distributions, you might want to check out [MX-Linux][13], Gentoo, Slackware, Void Linux. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/systemd-journalctl/ + +作者:[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://freedesktop.org/wiki/Software/systemd/ +[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-log-file-path.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-utc.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-p-0.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-list-boots.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-b-45.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-xb.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-since-0900-until.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-NetworkManager-service.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-_UID.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-gnome-shell.jpg +[13]: https://www.debugpoint.com/tag/mx-linux From 3db7bbce1277ef9843ab00f40c0f6b9b85fbc138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 15:55:40 +0800 Subject: [PATCH 1666/3123] =?UTF-8?q?Rename=2020221022-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md?= =?UTF-8?q?=20to=2020221022.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install=20?= =?UTF-8?q?Python=203.10=20in=20Ubuntu=20and=20Other=20Related=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md => 20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md} (100%) diff --git a/sources/tech/20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md b/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md similarity index 100% rename from sources/tech/20221022-⭐️-How-to-Install-Python-3-10-in-Ubuntu-and-Other-Related-Linux.md rename to sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md From cc504b99e654913de258ece61eb47104ca60a19d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 15:57:22 +0800 Subject: [PATCH 1667/3123] =?UTF-8?q?Rename=2020221022-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md=20to?= =?UTF-8?q?=2020221022=20=E2=AD=90=EF=B8=8F=20PaperDE=20is=20a=20Touch-Fri?= =?UTF-8?q?endly=20Linux=20Desktop=20Environment.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md => 20221022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md} (100%) diff --git a/sources/tech/20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md b/sources/tech/20221022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md similarity index 100% rename from sources/tech/20221022-⭐️-PaperDE-is-a-Touch-Friendly-Linux-Desktop-Environment.md rename to sources/tech/20221022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md From e5351a86a637d484107b9a73f7fb8049269c90aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 15:58:02 +0800 Subject: [PATCH 1668/3123] =?UTF-8?q?Rename=2020221022=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20PaperDE=20is=20a=20Touch-Friendly=20Linux=20Desktop?= =?UTF-8?q?=20Environment.md=20to=2020221022.2=20=E2=AD=90=EF=B8=8F=20Pape?= =?UTF-8?q?rDE=20is=20a=20Touch-Friendly=20Linux=20Desktop=20Environment.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md => 20221022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md} (100%) diff --git a/sources/tech/20221022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md b/sources/tech/20221022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md similarity index 100% rename from sources/tech/20221022 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md rename to sources/tech/20221022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md From 5eb37f07f94ba135a45d56369ccee89c37ff8d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 15:59:34 +0800 Subject: [PATCH 1669/3123] =?UTF-8?q?Rename=2020221021-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-find-GNOME-Shell-version-from-the-Terminal.md=20to=20202?= =?UTF-8?q?21021.0=20=E2=AD=90=EF=B8=8F=20How=20to=20find=20GNOME=20Shell?= =?UTF-8?q?=20version=20from=20the=20Terminal.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md => 20221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md} (100%) diff --git a/sources/tech/20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md b/sources/tech/20221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md similarity index 100% rename from sources/tech/20221021-⭐️-How-to-find-GNOME-Shell-version-from-the-Terminal.md rename to sources/tech/20221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md From 97a73692bfe830744992d357c8a1bbab92c2f78f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:16:40 +0800 Subject: [PATCH 1670/3123] =?UTF-8?q?Rename=2020221021-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic?= =?UTF-8?q?).md=20to=2020221021.1=20=E2=AD=90=EF=B8=8F=20=20How=20to=20Upg?= =?UTF-8?q?rade=20to=20Ubuntu=2022.10=20From=2022.04=20LTS=20(Jammy=20to?= =?UTF-8?q?=20Kinetic).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md => 20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md} (100%) diff --git a/sources/tech/20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md b/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md similarity index 100% rename from sources/tech/20221021-⭐️-How-to-Upgrade-to-Ubuntu-22-10-From-22-04-LTS-(Jammy-to-Kinetic).md rename to sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md From 232fcf34107b81390cc6a4df3e40b9ba70b5a774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:17:25 +0800 Subject: [PATCH 1671/3123] =?UTF-8?q?Rename=2020221021-=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-10-Things-to-Do-After-Installing-Ubuntu-22-1?= =?UTF-8?q?0--With-Bonus-Tip-.md=20to=2020221021.2=20=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20=2010=20Things=20to=20Do=20After=20Install?= =?UTF-8?q?ing=20Ubuntu=2022.10=20[With=20Bonus=20Tip]md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md => 20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md} (100%) diff --git a/sources/tech/20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md b/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md similarity index 100% rename from sources/tech/20221021-⭐️⭐️-10-Things-to-Do-After-Installing-Ubuntu-22-10--With-Bonus-Tip-.md rename to sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md From fae048a4133a743600d910e6605bf9d12dc3fe09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:18:08 +0800 Subject: [PATCH 1672/3123] =?UTF-8?q?Rename=2020221021.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20=2010=20Things=20to=20Do=20After?= =?UTF-8?q?=20Installing=20Ubuntu=2022.10=20[With=20Bonus=20Tip]md=20to=20?= =?UTF-8?q?20221021.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20=2010=20Thi?= =?UTF-8?q?ngs=20to=20Do=20After=20Installing=20Ubuntu=2022.10=20[With=20B?= =?UTF-8?q?onus=20Tip].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md => 20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md} (100%) diff --git a/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md b/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md similarity index 100% rename from sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]md rename to sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md From f4e11f62b894e82a463d2b06ebcec7c16873ab8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:19:08 +0800 Subject: [PATCH 1673/3123] =?UTF-8?q?Rename=2020221020-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Check--Xorg-or-Wayland-Display-Server-.md=20to=202022102?= =?UTF-8?q?0.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Check:=20Xorg=20or=20Wayl?= =?UTF-8?q?and=20Display=20Server.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... => 20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md => 20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md} (100%) diff --git a/sources/tech/20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md b/sources/tech/20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md similarity index 100% rename from sources/tech/20221020-⭐️-How-to-Check--Xorg-or-Wayland-Display-Server-.md rename to sources/tech/20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md From 9e50d2935128d7cdfa7abfed763d1072dca4e6d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:20:34 +0800 Subject: [PATCH 1674/3123] =?UTF-8?q?Rename=2020221020-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Kubuntu-22-10-is-Now-Available-.md=20to=2020221020.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Kubuntu=2022.10=20is=20Now=20Available!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Available-.md => 20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md => 20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md} (100%) diff --git a/sources/news/20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md b/sources/news/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md similarity index 100% rename from sources/news/20221020-⭐️-Kubuntu-22-10-is-Now-Available-.md rename to sources/news/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md From e14037565241bd3b08b6bcd574a12746fe66f181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:21:48 +0800 Subject: [PATCH 1675/3123] =?UTF-8?q?Rename=2020221020-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md=20t?= =?UTF-8?q?o=2020221020.2=20=E2=AD=90=EF=B8=8F=20Ubuntu=20MATE=2022.10=20R?= =?UTF-8?q?elease=20Has=20Some=20Interesting=20Upgrades!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md => 20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md} (100%) diff --git a/sources/news/20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md b/sources/news/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md similarity index 100% rename from sources/news/20221020-⭐️-Ubuntu-MATE-22-10-Release-Has-Some-Interesting-Upgrades-.md rename to sources/news/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md From 34ce1425c89c660fcf445a01a0da1a1341910dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:22:44 +0800 Subject: [PATCH 1676/3123] =?UTF-8?q?Rename=2020221020-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes?= =?UTF-8?q?-Some-GNOME-Apps.md=20to=2020221020.3=20=E2=AD=90=EF=B8=8F=20Ub?= =?UTF-8?q?untu=20Budgie=2022.10=20Release=20Improves=20Control=20Center?= =?UTF-8?q?=20and=20Removes=20Some=20GNOME=20Apps.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 22.10 Release Improves Control Center and Removes Some GNOME Apps.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md => 20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md} (100%) diff --git a/sources/news/20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md b/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md similarity index 100% rename from sources/news/20221020-⭐️-Ubuntu-Budgie-22-10-Release-Improves-Control-Center-and-Removes-Some-GNOME-Apps.md rename to sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md From 7c66961efbc157394b803368d3a75842a01a331e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:24:15 +0800 Subject: [PATCH 1677/3123] =?UTF-8?q?Rename=2020221020-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinement?= =?UTF-8?q?s.md=20to=2020221020.4=20=E2=AD=90=EF=B8=8F=20Xubuntu=2022.10?= =?UTF-8?q?=20Releases=20With=20Xfce=20Upgrades,=20and=20Other=20Refinemen?= =?UTF-8?q?ts.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md => 20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md} (100%) diff --git a/sources/news/20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md b/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md similarity index 100% rename from sources/news/20221020-⭐️-Xubuntu-22-10-Releases-With-Xfce-Upgrades--and-Other-Refinements.md rename to sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md From d3fe266a9c9695e48c9052e64eacab438dc98daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:25:15 +0800 Subject: [PATCH 1678/3123] =?UTF-8?q?Rename=2020221020-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?Ubuntu-22-10-Is-Here-.md=20to=2020221020.5=20=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20Ubuntu=2022.10=20Is=20Here!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...buntu-22-10-Is-Here-.md => 20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221020-⭐️-Ubuntu-22-10-Is-Here-.md => 20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md} (100%) diff --git a/sources/news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md b/sources/news/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md similarity index 100% rename from sources/news/20221020-⭐️-Ubuntu-22-10-Is-Here-.md rename to sources/news/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md From df9925dcfe32db4271bcafd4e7ca46cc1f548d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:30:22 +0800 Subject: [PATCH 1679/3123] =?UTF-8?q?Rename=2020221019-=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-Fedora-37--Top-New-Features-and-Release-Wiki?= =?UTF-8?q?.md=20to=2020221019.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Fedora=2037=20Top=20New=20Features=20and=20Release=20Wiki.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....md => 20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md => 20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md} (100%) diff --git a/sources/tech/20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md b/sources/tech/20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md similarity index 100% rename from sources/tech/20221019-⭐️⭐️-Fedora-37--Top-New-Features-and-Release-Wiki.md rename to sources/tech/20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md From a8fc2b69f8257418c13b2de38bf047de54e7f6ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:31:19 +0800 Subject: [PATCH 1680/3123] =?UTF-8?q?Rename=2020221019-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md=20to=20202210?= =?UTF-8?q?19.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install=20Viber=20in=20U?= =?UTF-8?q?buntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...> 20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md => 20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md} (100%) diff --git a/sources/tech/20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md b/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md similarity index 100% rename from sources/tech/20221019-⭐️-How-to-Install-Viber-in-Ubuntu-and-Other-Linux.md rename to sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md From 4e26442a3ea853dd3a6528e75d1475cb14fbca5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:32:11 +0800 Subject: [PATCH 1681/3123] =?UTF-8?q?Rename=2020221019-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md=20to=202?= =?UTF-8?q?0221019.2=20=E2=AD=90=EF=B8=8F=20=20How=20to=20Clean=20Up=20Sna?= =?UTF-8?q?p=20Versions=20to=20Free=20Up=20Disk=20Space.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md => 20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md} (100%) diff --git a/sources/tech/20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md b/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md similarity index 100% rename from sources/tech/20221019-⭐️-How-to-Clean-Up-Snap-Versions-to-Free-Up-Disk-Space.md rename to sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md From d9b29f6c5615a5a48bb2e8e30c7a9e26e5c8ee58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:40:46 +0800 Subject: [PATCH 1682/3123] =?UTF-8?q?Rename=2020221019-=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.?= =?UTF-8?q?md=20to=2020221019.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20H?= =?UTF-8?q?ow=20to=20Remove=20Snap=20Packages=20in=20Ubuntu=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....md => 20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md => 20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md} (100%) diff --git a/sources/tech/20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md b/sources/tech/20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md similarity index 100% rename from sources/tech/20221019-⭐️⭐️-How-to-Remove-Snap-Packages-in-Ubuntu-Linux.md rename to sources/tech/20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md From e9dc5cbbb8f403a6c6f386d91614966b2a51f53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:42:02 +0800 Subject: [PATCH 1683/3123] =?UTF-8?q?Rename=2020221019-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md=20to=202022?= =?UTF-8?q?1019.4=20=E2=AD=90=EF=B8=8F=20How=20to=20Enable=20and=20Access?= =?UTF-8?q?=20USB=20Drive=20in=20VirtualBox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md => 20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md} (100%) diff --git a/sources/tech/20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md b/sources/tech/20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md similarity index 100% rename from sources/tech/20221019-⭐️-How-to-Enable-and-Access-USB-Drive-in-VirtualBox.md rename to sources/tech/20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md From 82d8152f72d13617c78f9a3891b306cac8afb2f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:45:16 +0800 Subject: [PATCH 1684/3123] =?UTF-8?q?Rename=2020221017-=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F-Top-10-Best-Linux-Distributions-in-2022-For-?= =?UTF-8?q?Everyone.md=20to=2020221017=20=E2=AD=90=EF=B8=8F=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20=20Top=2010=20Best=20Linux=20Distributions=20in=202?= =?UTF-8?q?022=20For=20Everyone.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md => 20221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md} (100%) diff --git a/sources/tech/20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md b/sources/tech/20221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md similarity index 100% rename from sources/tech/20221017-⭐️⭐️-Top-10-Best-Linux-Distributions-in-2022-For-Everyone.md rename to sources/tech/20221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md From d3163dd038147892532b0c815aadb9723e2e779a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:46:10 +0800 Subject: [PATCH 1685/3123] =?UTF-8?q?Rename=2020221017=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20=20Top=2010=20Best=20Linux=20Dist?= =?UTF-8?q?ributions=20in=202022=20For=20Everyone.md=20to=2020221017.0=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20=20Top=2010=20Best=20Lin?= =?UTF-8?q?ux=20Distributions=20in=202022=20For=20Everyone.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md => 20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md} (100%) diff --git a/sources/tech/20221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md b/sources/tech/20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md similarity index 100% rename from sources/tech/20221017 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md rename to sources/tech/20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md From 08cac5b8bd7b8fd9faff9ca5836d6fe83dbf27e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 23 Oct 2022 16:47:10 +0800 Subject: [PATCH 1686/3123] =?UTF-8?q?Rename=2020221017-=E2=AD=90=EF=B8=8F-?= =?UTF-8?q?How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md=20t?= =?UTF-8?q?o=2020221017.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Update=20or=20?= =?UTF-8?q?Upgrade=20Ubuntu=20Offline=20without=20Internet.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md => 20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md} (100%) diff --git a/sources/tech/20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md b/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md similarity index 100% rename from sources/tech/20221017-⭐️-How-to-Update-or-Upgrade-Ubuntu-Offline-without-Internet.md rename to sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md From a973471040649f4fe2f0312c07a1d89aab02cf22 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 23 Oct 2022 17:17:10 +0800 Subject: [PATCH 1687/3123] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ntu but rolling but also stable That's what Rhino Linux aims to be.md} | 0 ...nd of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md} | 0 ...at’s-new-in-GNOME-43-.md => 20221016.0 ⭐️⭐️ What’s new in GNOME 43.md} | 0 ....md => 20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md} | 0 ...rtup-journey.md => 20221019.5 ⭐️⭐️ Our open source startup journey.md} | 0 ...1015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md} | 0 ...> 20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md} | 0 ....md => 20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md} | 0 ...ing.md => 20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md} | 0 ...20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md} | 0 ...md => 20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md} | 0 ...md => 20221020.7 ⭐️ 4 open source editors I use for my writing.md} | 0 ... => 20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md} | 0 ...0221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md} | 0 ...shell.md => 20221022.3 ⭐️⭐️ Use open source commands in Powershell.md} | 0 15 files changed, 0 insertions(+), 0 deletions(-) rename sources/news/{20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md => 20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md} (100%) rename sources/news/{20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md => 20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md} (100%) rename sources/talk/{20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md => 20221016.0 ⭐️⭐️ What’s new in GNOME 43.md} (100%) rename sources/talk/{20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md => 20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md} (100%) rename sources/talk/{20221019-⭐️⭐️-Our-open-source-startup-journey.md => 20221019.5 ⭐️⭐️ Our open source startup journey.md} (100%) rename sources/tech/{20221015 How to Enable and Access USB Drive in VirtualBox.md => 20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md} (100%) rename sources/tech/{20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md => 20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md} (100%) rename sources/tech/{20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md => 20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md} (100%) rename sources/tech/{20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md => 20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md} (100%) rename sources/tech/{20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md => 20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md} (100%) rename sources/tech/{20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md => 20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md} (100%) rename sources/tech/{20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md => 20221020.7 ⭐️ 4 open source editors I use for my writing.md} (100%) rename sources/tech/{20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md => 20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md} (100%) rename sources/tech/{20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md => 20221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md} (100%) rename sources/tech/{20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md => 20221022.3 ⭐️⭐️ Use open source commands in Powershell.md} (100%) diff --git a/sources/news/20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md b/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md similarity index 100% rename from sources/news/20221017-⭐️-Ubuntu-but-rolling-but-also-stable-That-s-what-Rhino-Linux-aims-to-be.md rename to sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md diff --git a/sources/news/20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md b/sources/news/20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md similarity index 100% rename from sources/news/20221018-⭐️-Ardour-7-0-Release-Marks-the-end-of-32-bit-builds--Adds-Clip-Launching-and-Apple-Silicon-Support.md rename to sources/news/20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md diff --git a/sources/talk/20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md b/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md similarity index 100% rename from sources/talk/20221016-⭐️⭐️-What’s-new-in-GNOME-43-.md rename to sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md diff --git a/sources/talk/20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md b/sources/talk/20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md similarity index 100% rename from sources/talk/20221018-⭐️⭐️⭐️-Exploring-innovative-Open-Organization-charts.md rename to sources/talk/20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md diff --git a/sources/talk/20221019-⭐️⭐️-Our-open-source-startup-journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md similarity index 100% rename from sources/talk/20221019-⭐️⭐️-Our-open-source-startup-journey.md rename to sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md diff --git a/sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md similarity index 100% rename from sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md rename to sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md diff --git a/sources/tech/20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md b/sources/tech/20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md similarity index 100% rename from sources/tech/20221015-⭐️⭐️-How-to-Get-Started-with-Shell-Scripting-in-Linux.md rename to sources/tech/20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md diff --git a/sources/tech/20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md b/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md similarity index 100% rename from sources/tech/20221017-⭐️⭐️⭐️-Open-source-DevOps-tools-in-a-platform-future.md rename to sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md diff --git a/sources/tech/20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md b/sources/tech/20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md similarity index 100% rename from sources/tech/20221017-⭐️⭐️⭐️-Why-you-should-consider-Rexx-for-scripting.md rename to sources/tech/20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md diff --git a/sources/tech/20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md b/sources/tech/20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md similarity index 100% rename from sources/tech/20221018-⭐️-Setup-Docker-And-Docker-Compose-With-DockSTARTer.md rename to sources/tech/20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md diff --git a/sources/tech/20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md b/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md similarity index 100% rename from sources/tech/20221018-⭐️⭐️-Give-Your-Linux-Desktop-a-Halloween-Makeover.md rename to sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md diff --git a/sources/tech/20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md b/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md similarity index 100% rename from sources/tech/20221020-⭐️-4-open-source-editors-I-use-for-my-writing.md rename to sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md diff --git a/sources/tech/20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md b/sources/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md similarity index 100% rename from sources/tech/20221021-⭐️-How-to-Install-AWS-CLI-on-Linux-Step-by-Step.md rename to sources/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md diff --git a/sources/tech/20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md b/sources/tech/20221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md similarity index 100% rename from sources/tech/20221021-⭐️⭐️-Observability-driven-development-with-OpenTelemetry.md rename to sources/tech/20221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md diff --git a/sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md b/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md similarity index 100% rename from sources/tech/20221022-⭐️⭐️-Use-open-source-commands-in-Powershell.md rename to sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md From 7b2768367df984eab8d0919a23c868214479a8d2 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sun, 23 Oct 2022 21:02:27 +0800 Subject: [PATCH 1688/3123] APL --- ...17.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md b/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md index 5db532e0dd..7042615419 100644 --- a/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md +++ b/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/open-source-devops-tools" [#]: author: "Will Kelly https://opensource.com/users/willkelly" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lxbwolf " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f485ac42218008194a64691d84a7d17fed8ed284 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 23 Oct 2022 21:05:10 +0800 Subject: [PATCH 1689/3123] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tHub Copilot Appears To Be In Violation Of The Open Source Licence.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename published/{20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md => 20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md} (100%) diff --git a/published/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md b/published/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md similarity index 100% rename from published/20221019-⭐️-GitHub-Copilot-Appears-To-Be-In-Violation-Of-The-Open-Source-Licence.md rename to published/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md From 199e88ff52cd97538b1a17a6185cb27a635caf0f Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 23 Oct 2022 21:36:05 +0800 Subject: [PATCH 1690/3123] Translating --- ...20220929 Execute Commands On Remote Linux Systems Via SSH.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md b/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md index 2137eb7a6e..9142a40421 100644 --- a/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md +++ b/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ab586592262c542c877d4fb79f8b526bd7433fd6 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sun, 23 Oct 2022 22:23:58 +0800 Subject: [PATCH 1691/3123] TSL --- ...️ Open source DevOps tools in a platform future.md | 109 ------------------ ...️ Open source DevOps tools in a platform future.md | 109 ++++++++++++++++++ 2 files changed, 109 insertions(+), 109 deletions(-) delete mode 100644 sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md create mode 100644 translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md diff --git a/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md b/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md deleted file mode 100644 index 7042615419..0000000000 --- a/sources/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md +++ /dev/null @@ -1,109 +0,0 @@ -[#]: subject: "Open source DevOps tools in a platform future" -[#]: via: "https://opensource.com/article/22/10/open-source-devops-tools" -[#]: author: "Will Kelly https://opensource.com/users/willkelly" -[#]: collector: "lkxed" -[#]: translator: "lxbwolf " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Open source DevOps tools in a platform future -====== - -The open source roots of DevOps tools are undeniable, even with a prediction that the global DevOps market will reach $17.8 billion by 2026. The changing world of work, security, and compliance concerns, along with venture capital firms, are pushing the market to DevOps platforms where development teams can access a complete end-to-end DevOps toolchain in the cloud. - -### The current state of open source DevOps tools - -Let's get one thing straight: There's no way open source tools will disappear from the DevOps world. Right now, there's a balance between open source and vendor DevOps tools, with developers using what works for them. Indeed, there are plenty of cases when a development team chooses an open source tool for their DevOps pipeline only to upgrade later to a commercial version. - -### 3 examples of open source DevOps tools - -Here are some examples of open source DevOps tools with a commercial business built around them. - -#### Git - -[Git][1]–the source code management tool–is probably one of the main foundations for DevOps toolchains serving as a source code repository. - -The two best commercial examples of Git are GitLab and GitHub. GitLab [accepts contributions][2] to its open source project. GitHub is embarking on an effort to become a DevOps platform as well with the launch of GitHub Copilot–an AI pair programmer–launching to mixed reviews and criticism from some open source groups. - -#### Jenkins - -An open source automation server, Jenkins is prized for its easy installation, configuration, and extensibility. - -CloudBees offers JenkinsX, an open-source solution that provides automated continuous integration and continuous delivery (CI/CD) and automated testing tools for cloud-native applications on Kubernetes. They also provide commercial support for JenkinsX, including: - -- Access to CloudBees technical expertise -- 24x7 technical support -- Access to CloudBees documentation and online knowledge base - -#### Kubernetes - -The growth of [Kubernetes][3] is undeniable as more organizations seek an enterprise-grade container orchestration solution. Despite criticisms about its complexity, Kubernetes - -There's an entire burgeoning industry around Kubernetes, and with good reason. According to Allied Market Research, the global container and [Kubernetes security][4] market was valued at $714 million in 2020 and is projected to reach $8242 million by 2030. - -### DevOps toolchains today - -There are still plenty of build-your-own (BYO) CI/CD toolchains in play across industries. The open source projects powering DevOps functions are still prospering, - -BYO toolchains are integration-ready and very extensible, which has always been a strength for organizations continuing to iterate on their DevOps practices. The lack of a standard bill of materials might prove troublesome in enterprises seeking standardization for business, IT, and security reasons. - -While the advent of DevOps platforms isn't going unnoticed, many organizations migrated their CI/CD toolchains to the public cloud well before the pandemic. The security of the toolchain itself has long been a rising concern, and public cloud infrastructure provides Identity Access Management (IAM) and other security features to control access. - -### DevOps platforms: Friend or foe? - -A DevOps platform is an end-to-end solution that places all functions of the CI/CD toolchain into the cloud. Examples of DevOps platforms include GitLab and Harness. GitHub is also making moves to become a DevOps platform in its own right. - -#### Advantages (even if only in the eyes of enterprise buyers) - -DevOps platforms are attractive to enterprise buyers who are already comfortable with the consumption-based and subscription-based pricing of the SaaS and cloud industries. Concerns about maintenance, security, compliance, and developer productivity are certainly at the top of mind for technology leaders in this remote and hybrid work world. Standardizing on a DevOps platform becomes an appealing story to these people. - -#### Disadvantages - -Age-old concerns about vendor lock-in come to mind when depending on a vendor for a DevOps toolchain. The extensibility of development teams building and maintaining their toolchains isn't going to be quite the experience as it was when they made their toolchains from scratch, much less bringing in new tools to improve their workflows. - -There are also potential economic disadvantages with DevOps platform providers. Think what might happen to an overvalued DevOps tools startup that doesn't meet its investors' lofty financial goals. Likewise, there could be smaller startup vendors that may not receive their next round of funding and fade away into irrelevance. - -While the advent of a DevOps platform makes sense in many ways, it does work against the open source ethos that has helped build the DevOps tools we use today. - -### DevOps tools: An inflection point - -Security and compliance concerns for DevOps toolchains continue to mount as working models change. It's only natural. - -#### The changing world of work - -How we work affects DevOps teams just like the rest of the enterprise. Remote and hybrid DevOps teams require secure toolchains. Changing collaboration and reporting requirements across the pipelines are also growing necessities, such as asynchronous work and executives demanding a return to the office. - -#### Software supply chain security market - -The software supply chain security market draws much attention after high-profile attacks and the federal government response. No organization has yet to blame open source for a software supply chain attack, but we're going to see an extension of DevOps/DevSecOps practices and tools to combat this threat. When it's all said and done, though, DevOps/DevSecOps tools and practices will outlast some startups that pivoted to the trend. - -### Final thoughts - -It's far from game over for OSS projects in the DevOps space, but DevOps stakeholders have a right to start asking questions about the toolchains of the future. However, OSS DevOps projects do need to consider their future, especially in light of growing security and compliance concerns that directly impact pipelines. - -There's a future of coopetition where the DevOps platform providers donate time, money, and resources to the open source tools that serve as a foundation for their platforms. An interesting example of a potential future is [OpsVerse][5], which offers a DevOps platform with open source tools they manage for their customers. - -Then again, there's also a future where the open source DevOps tools projects continue to prosper and innovate as more enterprise-built toolchains migrate to the cloud in more significant numbers. - -**[ Kickstart an organizational culture change. Read the first article in a series, [DevSecOps: 5 tips for seeding a culture transformation][6] ]** - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/open-source-devops-tools - -作者:[Will Kelly][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/willkelly -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/22/4/our-favorite-git-commands -[2]: https://opensource.com/article/19/9/how-contribute-gitlab -[3]: https://opensource.com/resources/what-is-kubernetes -[4]: https://enterprisersproject.com/article/2019/1/kubernetes-security-4-tips-manage-risks?intcmp=7013a000002qLH8AAM -[5]: https://www.opsverse.io/ -[6]: https://www.redhat.com/architect/devsecops-culture?intcmp=7013a000002qLH8AAM diff --git a/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md b/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md new file mode 100644 index 0000000000..282835a7ba --- /dev/null +++ b/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md @@ -0,0 +1,109 @@ +[#]: subject: "Open source DevOps tools in a platform future" +[#]: via: "https://opensource.com/article/22/10/open-source-devops-tools" +[#]: author: "Will Kelly https://opensource.com/users/willkelly" +[#]: collector: "lkxed" +[#]: translator: "lxbwolf " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +平台化未来的开源DevOps工具 +====== + +DevOps 的开源根基是无法动摇的,即便有预言称全球的 DevOps 市场将在 2026 年之前达到 178 亿美元。不断变化的工作环境、安全和合规性问题,以及风险投资公司等等因素正在将市场推向 DevOps 平台,开发团队可以在云中获得完整的端到端 DevOps 工具链。 + +### 开源 DevOps 工具现状 + +我们要搞清楚一件事:开源工具不可能从 DevOps 世界中消失。现在,在开源和供应商提供的 DevOps 工具之间存在着一种平衡,开发人员会在两者间选择适合他们的工具。事实上,很多情况下,一个开发团队起初会为他们的 DevOps 流水线选择一个开源工具,后来又升级到商业版本。 + +### 三种开源 DevOps 工具实例 + +下面我们介绍一些开源 DevOps 工具的例子,每种工具都已经有了围绕其建立的商业化生态。 + +#### Git + +[Git][1]——源代码管理工具——可能是作为源代码库的 DevOps 工具链的主要基建之一。 + +Git 的两个最佳商业案例是 GitLab 和 GitHub。GitLab [接受开发者对其贡献开源项目][2]。GitHub 也在着手努力成为一个 DevOps 平台,推出了 GitHub Copilot——结对编程的人工智能虚拟版——推出后受到了一些开源团体的褒贬不一的评价。 + +#### Jenkins + +作为一个开源的自动化服务,Jenkins 因其易于安装、配置和可扩展性而受到推崇。 + +CloudBees 发布了 JenkinsX,JenkinsX 是一套开源的解决方案,可以为 Kubernetes 上的云原生应用提供自动化持续集成和持续交付(CI/CD)以及自动化测试工具。他们还为JenkinsX 提供商业支持,包括: + +- 访问 CloudBees 的专业技术技能 +- 24x7 技术支持 +- 访问 CloudBees 的文档和在线知识库 + +#### Kubernetes + +随着越来越多的组织寻求企业级的容器编排解决方案,[Kubernetes][3] 的发展成为必然。尽管有人批评其复杂性,但 Kubernetes + +Kubernetes 周边有完整的、蓬勃发展的产业,并且没有消亡理由。根据 Allied 市场调研的数据,全球容器和 [Kubernetes 安全][4]市场在 2020 年的估值为 7.14 亿美元,预计到 2030 年将达到 8.42 亿美元。 + +### 目前的 DevOps 工具链 + +各个行业仍有很多自建(BYO)的 CI/CD 工具链在发挥作用。支持 DevOps 功能的开源项目仍在蓬勃发展。 + +BYO 工具链可以集成其他工具,而且非常具有扩展性,这对于持续迭代其 DevOps 实践的组织来说一直是一个优势。在出于业务、IT 和安全原因寻求标准化的企业中,缺乏标准的材料清单可能是个麻烦。 + +虽然 DevOps 平台的出现并没有被忽视,但许多组织早在大流行之前就将他们的 CI/CD 工具链迁移到了公共云。长期以来,工具链本身的安全性一直是一个不断上升的问题,而公共云基础设施提供了身份访问管理(IAM)和其他安全功能来控制访问。 + +### DevOps 平台是敌是友? + +DevOps 平台是一个端到端的解决方案,它将 CI/CD 工具链的所有功能放入云中。DevOps 平台的例子包括 GitLab 和 Harness。GitHub 也在采取行动,使自己成为一个 DevOps 平台。 + +#### 优势(即便只从企业买家角度考虑) + +DevOps 平台对那些已经适应了 SaaS 和云计算行业的基于消费和订阅的定价的企业买家很有吸引力。在这个远程和混合工作的世界里,对可维护性、安全、合规性和开发人员的生产力的担忧肯定是技术领导者的首要考虑。对这些人来说,在 DevOps 平台上实现标准化是很有吸引力的。 + +#### 劣势 + +在依赖供应商提供的 DevOps 工具链时,人们会想到对供应商锁定功能的古老担忧。开发团队构建和维护其工具链的可扩展性不会像他们从头开始制作工具链时那样,更不用说引入新的工具来改善他们的工作流程了。 + +DevOps 平台供应商也有潜在的经济方面的劣势。想一想,一个被高估的 DevOps 工具初创公司如果没有达到其投资者的高额财务目标,可能会发生什么。同样,也可能有一些较小的初创供应商得不到下一轮的资金,而慢慢消失。 + +虽然 DevOps 平台的出现在很多方面都是有意义的,但它确实违背了促成我们今天使用的 DevOps 工具的开源精神。 + +### DevOps 工具:一个拐点 + +随着工作模式的改变,人们对 DevOps 工具链的安全和合规性的关注必然会增加。 + +#### 正在变化的工作环境 + +我们的工作方式与企业其他部门一样影响着 DevOps 团队。远程和混合 DevOps 团队需要安全的工具链。整个流水线中不断变化的协作和报告要求,如异步工作和经理要求返回办公室等,也是日益增长的必要条件。 + +#### 软件供应链安全市场 + +在高调的攻击和联邦政府的回应之后,软件供应链安全市场引起了很多关注。目前还没有组织将软件供应链的攻击归咎于开源,但我们将看到 DevOps/DevSecOps 实践和工具的延伸,以对抗这种威胁。不过,当一切都结束时,DevOps/DevSecOps 的工具和实践将超过一些转向这一趋势的初创公司。 + +### 最后的想法 + +对于 DevOps 领域的开放源码软件(OSS)项目来说,这还远远没有结束,但 DevOps 利益相关者有权开始询问未来的工具链。然而,OSS DevOps 项目确实需要考虑他们的未来,特别是考虑到日益增长的直接影响流水线的安全和合规性问题。 + +DevOps 平台供应商与开源工具的未来趋势是合作性竞争,即 DevOps 平台供应商向作为其平台基础的开源工具贡献时间、金钱和资源。一个有趣的例子就是 [OpsVerse][5],它用他们为客户管理的开源工具提供了一个 DevOps 平台。 + +然后,还有一个未来,随着更多的企业构建的工具链迁移到云端,开源 DevOps 工具项目将继续繁荣和创新。 + +**[ Kickstart an organizational culture change. Read the first article in a series, [DevSecOps: 5 tips for seeding a culture transformation][6] ]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/open-source-devops-tools + +作者:[Will Kelly][a] +选题:[lkxed][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/willkelly +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/4/our-favorite-git-commands +[2]: https://opensource.com/article/19/9/how-contribute-gitlab +[3]: https://opensource.com/resources/what-is-kubernetes +[4]: https://enterprisersproject.com/article/2019/1/kubernetes-security-4-tips-manage-risks?intcmp=7013a000002qLH8AAM +[5]: https://www.opsverse.io/ +[6]: https://www.redhat.com/architect/devsecops-culture?intcmp=7013a000002qLH8AAM From 4505fed1bc445705c9dd749111efb56923f4ffa2 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sun, 23 Oct 2022 22:30:15 +0800 Subject: [PATCH 1692/3123] TSL --- ...17.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md b/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md index 282835a7ba..4f8041b4ff 100644 --- a/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md +++ b/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/open-source-devops-tools" [#]: author: "Will Kelly https://opensource.com/users/willkelly" [#]: collector: "lkxed" -[#]: translator: "lxbwolf " +[#]: translator: "lxbwolf" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4ffd7b967ac9a403e9077a59af95a945d9d09a2c Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 24 Oct 2022 08:37:58 +0800 Subject: [PATCH 1693/3123] translated --- ...assic Snake Game in Your Linux Terminal.md | 100 ------------------ ...assic Snake Game in Your Linux Terminal.md | 100 ++++++++++++++++++ 2 files changed, 100 insertions(+), 100 deletions(-) delete mode 100644 sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md create mode 100644 translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md diff --git a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md deleted file mode 100644 index cefdd34dd5..0000000000 --- a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Enjoy the Classic Snake Game in Your Linux Terminal" -[#]: via: "https://www.debugpoint.com/snake-game-linux-terminal/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Enjoy the Classic Snake Game in Your Linux Terminal -====== -This is how you can install and play the classic Snake Game in Linux Terminal. - -Remember the classic and simple snake game of old mobile phones? I remember playing it for hours. Hey, no other options at the time, right? Smartphones were still not in the market. And all you have is this – - -![Nokia 3310 with legacy snake game][1] - -But over time, the Snake Game was replaced by more advanced graphical games with various options. But nothing beats that classic snake game. - -And what if I told you, you could play this game in the Linux Terminal itself? Whether you are running Ubuntu Linux, Fedora Linux or Arch Linux doesn’t matter. This game is available for most of the [distros][2]. - -![nsnake Game - Main Menu][3] - -### Install nSnake – Snake Game for Linux Terminal - -You can install [this game][4] via the terminal using the below methods. - -For Ubuntu, Linux Mint or other related distributions: - -``` -sudo apt install nsnake -``` - -For Fedora Linux and others: - -``` -sudo dnf install nsnake -``` - -For Arch Linux, this snake game is available in the [Arch User repository][5]. You can install it using the following steps. - -* [Set up Yay AUR helper][6] -* Then open a terminal and run the below command - -``` -yay -S nsnake -``` - -The above command installs the stock repository version of the game, which might not be the latest. However, if you want the latest version, you may need to compile the source via GitHub. I have added the compilation instructions at the end of this page for your reference. - -### Playing the game - -Playing the game is very simple. Type nsnake in the terminal, which will launch the game. - -To quit immediately, press q. - -Following are the default key bindings. - -* Arrow keys – to move the snake -* q – Quit the game -* p – Pause the game - -You can also configure the game in various ways, which are available via the main menu. - -![nsnake Linux Terminal Snake Game Settings][7] - -So, enjoy! - -##### Compilation - -To compile the latest version, use the following commands in all Linux distributions. - -Oh, make sure you have `git` and `ncurses-devel` installed, which are the required packages for compilation. - -``` -git clone https://github.com/alexdantas/nSnake.gitcd nsnakemakemake install -``` - -So, do you like Snake Game? Do you prefer it over other terminal-based games? Share your views with other readers in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/snake-game-linux-terminal/ - -作者:[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/2021/12/Nokia-3310-with-legacy-snake-game.jpg -[2]: https://www.debugpoint.com/category/distributions -[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Game-Main-Menu.jpg -[4]: https://github.com/alexdantas/nsnake -[5]: https://aur.archlinux.org/packages/nsnake/ -[6]: https://www.debugpoint.com/2021/01/install-yay-arch/ -[7]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Linux-Terminal-Snake-Game-Settings.jpg diff --git a/translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md new file mode 100644 index 0000000000..e4845af6f3 --- /dev/null +++ b/translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md @@ -0,0 +1,100 @@ +[#]: subject: "Enjoy the Classic Snake Game in Your Linux Terminal" +[#]: via: "https://www.debugpoint.com/snake-game-linux-terminal/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在你的 Linux 终端中享受经典的贪吃蛇游戏 +====== +这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。 + +还记得老式手机经典简单的贪吃蛇吗?我记得玩了几个小时。嘿,当时没有其他选择,对吧?智能手机仍未上市。而你所拥有的就是这个。 + +![Nokia 3310 中的旧版贪吃蛇游戏][1] + +但随着时间的推移,贪吃蛇被具有各种选项的更高级的图形游戏所取代。但没有什么能比得上经典贪吃蛇游戏。 + +如果我告诉你,你可以在 Linux 终端中玩这个游戏呢?无论你运行的是 Ubuntu Linux、Fedora Linux 还是 Arch Linux,都无关紧要。该游戏适用于大多数 [发行版][2]。 + +![nsnake - 主菜单][3] + +### 安装 nSnake – Linux 终端的贪吃蛇 + +你可以使用以下方法通过终端安装[此游戏][4]。 + +对于 Ubuntu、Linux Mint 或其他相关发行版: + +``` +sudo apt install nsnake +``` + +对于 Fedora Linux 和其他: + +``` +sudo dnf install nsnake +``` + +对于 Arch Linux,此游戏可在 [Arch 用户仓库][5]中获得。你可以使用以下步骤安装它。 + +* [设置 Yay AUR 助手][6] +* 然后打开终端并运行以下命令 + +``` +yay -S nsnake +``` + +上面的命令会安装游戏的库存库版本,它可能不是最新的。但是,如果你想要最新版本,你可能需要通过 GitHub 编译源代码。我在本页末尾添加了编译说明供你参考。 + +### 玩游戏 + +玩游戏非常简单。在终端中输入 nsnake,这将启动游戏。 + +要立即退出,请按 q。 + +以下是默认键绑定。 + +* 箭头键 - 移动蛇 +* q – 退出游戏 +* p – 暂停游戏 + +你还可以通过主菜单以各种方式配置游戏。 + +![nsnake Linux 终端贪吃蛇设置][7] + +完成了,享受吧! + +##### 编译 + +要编译最新版本,请在所有 Linux 发行版中使用以下命令。 + +哦,确保你已经安装了 `git` 和 `ncurses-devel`,它们是编译所需的包。 + +``` +git clone https://github.com/alexdantas/nSnake.gitcd nsnakemakemake install +``` + +那么,你喜欢贪吃蛇游戏吗?与其他基于终端的游戏相比,你更喜欢它吗?在下面的评论框中与其他读者分享你的观点。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/snake-game-linux-terminal/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/12/Nokia-3310-with-legacy-snake-game.jpg +[2]: https://www.debugpoint.com/category/distributions +[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Game-Main-Menu.jpg +[4]: https://github.com/alexdantas/nsnake +[5]: https://aur.archlinux.org/packages/nsnake/ +[6]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Linux-Terminal-Snake-Game-Settings.jpg From d99f4c61a5ee14d124399893640d2a90e9e0438d Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Mon, 24 Oct 2022 08:38:43 +0800 Subject: [PATCH 1694/3123] translated --- ... base64 Encode and Decode With Examples.md | 158 ----------------- ... base64 Encode and Decode With Examples.md | 160 ++++++++++++++++++ 2 files changed, 160 insertions(+), 158 deletions(-) delete mode 100644 sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md create mode 100644 translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md diff --git a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md deleted file mode 100644 index 8dc0ddd3b5..0000000000 --- a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md +++ /dev/null @@ -1,158 +0,0 @@ -[#]: subject: "Learn Bash base64 Encode and Decode With Examples" -[#]: via: "https://www.debugpoint.com/bash-base64-encode-decode/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn Bash base64 Encode and Decode With Examples -====== -Want to learn about the base64 encode and decode method? Here in this tutorial, we explain the base64 encode and decode steps using bash shell scripting with various examples. - -![][1] - -The base64 encoding method transmits data over any communication medium by converting binary data to text. This method is primarily used for the email encryption process. - -The Base64 method, in general, is a binary-to-text encoding scheme representing 8-byte binary data in ASCII string format. This has several advantages while transmitting or channelling data among various mediums – especially those that reliably support text content. Hence, it is widely used on World Wide Web. Probably the most used case of this encoding scheme is using it for email attachments. - -As per the Base64 representation table, the binary data can be converted to 64 different ASCII characters – which are easy to transmit and printable. This encoding method uses letters A to Z, a to Z, 0 to 9 and + and /. - -A total of 64 ASCII characters to represent binary from `000000` to `111111`. Each non-final Base64 digit represents exactly 6 bits of data. - -![Base64 Index Table][2] - -### Bash base64 encode and decode - -#### Syntax - -Before you learn about the examples, here is the basic syntax. - -``` -base64 [OPTIONs] [INFILE] [OUTFILE] -``` - -Option: You can provide any of the options or combine them as explained below.INFILE: Input can be picked up from standard input (like the command line) or files.OUTFILE: You can redirect the output to the standard output, like the terminal or to a file. - -| Arguments | Descriptions | -| :- | :- | -| -e or –encode | This option is used to encode any data from standard input or any file. It is the default option. | -| -d or –decode | This option is used to decode any encoded data from standard input or any file. | -| -n or –noerrcheck | By default, base64 checks error while decoding any data. You can use –n or –noerrcheck option to ignore checking at the time of decoding. | -| -i, –ignore-garbage | This option is used to ignore non-alphabet characters while decoding. | -| -u or –help | This option is used to get information about the usage of this command. | - -#### Example 1 – A basic encode - -In Linux, the base64 package is installed by default. Hence, you can use it from the command line easily. To simply encode a string or text, you can pass it through the command line via piping and get the encoded text. In this example, the string debugpoint.com is encoded to base64. - -``` -echo "debugpoint.com" | base64 -``` - -![bash base64 encode and decode - example 1][3] - -The result is the base64 encoded string. - -#### Explanation - -The encoding method uses several steps to convert the input. The input characters are converted to 8-bit binary values. The entire set of the binary string is split into 6-bit binary values, which are converted to decimals. - -Each decimal value is translated to the base64 character via the base64 index table. - -In the above example, the first character, “d”, is converted to binary `01100100`. The first 6 bits are `011001`, which is 25 in decimal. The 25 refers to the Z in the base64 index table. And this goes on for the entire stream of text. See the example below. - -![Base64 Encode and Decode – inner working][4] - -#### Example 2 – A basic decode - -To decode the string, simply pass the encoded value to the base64 with the option `--decode`. And it will give you the exact input string. - -![bash base64 encode and decode - example 2 (decode the same example)][5] - -#### Example 3 – Encode a Text file - -The same command can be used to encode a text file and redirect the output to another text file. Here’s how. - -``` -base64 example3.txt > example3-encoded.txt -``` - -![Encode a text file][6] - -#### Example 4 – Decode a Text File - -And to decode a text file that was encoded using base64, simply use the `--decode` or `-d` switch and pass on the text file name. - -``` -base64 -d example3-encoded.txt -``` - -#### Example 5 – Encode a custom input from the user - -Using bash shell programming, you can take input from the user via the terminal and encode it. But for that, you need to write a simple shell script and execute it after giving executable permission. - -Here’s a simple example which takes input from the user and displays the encoded string. - -``` -#!/bin/bash -#Sample program to take input, encode to base64 and display on terminal -#Example by www.debugpoint.com -echo "Enter text for encoding to base64:" -read input_text -output_text=`echo -n $input_text | base64` -echo "The Base64 Encoded text is: $output_text" -``` - -![Custom input - base64 encode and decode using script][7] - -#### Example 6 – A Simple Authentication using base64 - -You can implement a simple authentication system using the above encode and decode method. You can ask the user to enter a password or a secret code. Then store the secret code in a file or compare it on the fly. - -If the stored encoded string matches with the user input encoded text, then the user is authenticated. However, it is a straightforward way of checking an authentication, but sometimes useful for simple business cases. - -``` -#!/bin/bash -#Sample program to take input, encode to base64 and display on terminal -#Example by www.debugpoint.com -echo "Type your password" -read pwd1 -decoded_text=`echo 'U2lsZW5jZSBpcyBnb2xkZW4h' | base64 --decode` -if [[ $pwd1 == $decoded_text ]] -then - echo "You are a valid user." -else - echo "You are NOT a valid user." -fi -``` - -![A Simple Authentication using bash base64][8] - -### Conclusion - -I hope you get to learn the basics of [Base64][9] encode and decode with these examples. Also, learn a bit about its inner workings. Let me know in the comment box below if this helps you or need additional tutorials on this topic. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/bash-base64-encode-decode/ - -作者:[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/2021/11/base64example-1024x576.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Index-Table.png -[3]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-1.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Encode-and-Decode-inner-working.png -[5]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-2-decode-the-same-example.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Encode-a-text-file.png -[7]: https://www.debugpoint.com/wp-content/uploads/2021/11/Custom-input-base64-encode-and-decode-using-script.png -[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/A-Simple-Authentication-using-bash-base64.png -[9]: https://linux.die.net/man/1/base64 diff --git a/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md new file mode 100644 index 0000000000..2418e538f9 --- /dev/null +++ b/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md @@ -0,0 +1,160 @@ +[#]: subject: "Learn Bash base64 Encode and Decode With Examples" +[#]: via: "https://www.debugpoint.com/bash-base64-encode-decode/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过示例来学习 Bash base64 的编码和解码 +====== +你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。 + +![][1] + +Base64 编码方法通过将二进制数据转换为文本,如此编码数据可以在任何通信媒体进行传输。这种编码方法主要用于电子邮件加密的过程。 + +总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。 + +根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 A 到 Z,小写字母 a 到 Z,数字 0 到 9 ,以及符号 + 和 /,这些字符在传输和打印上十分便捷。 + +这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码后的 ASCII 字符恰好代表 6 位二进制值。 + +![Base64 Index Table][2] + +### Bash base64 的编码和解码 + +#### 句法 + +在我们提供示例之前,首先介绍 Base64 的基本语法。 + +``` +base64 [OPTIONs] [INFILE] [OUTFILE] +``` + +选项(Option):参照下面的表格,你可以提供任何的选项或组合多个选项。 +输入(INFILE):你可以从标准输入(如命令行)或文件中输入。 +输出(OUTFILE):你可以将输出重定向到标准输出,如终端或文件中。 + +| 选项 | 描述 | +| :- | :- | +| -e 或者 –encode | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 | +| -d 或者 –decode | 此选项用于对标准输入的数据或从文件中读入的已 base64 编码数据进行解码。 | +| -n 或者 –noerrcheck | 默认情况下,base64 在解码数据时,会自动检查是否有错误。你可以使用 –n 或 –noerrcheck 选项,在解码时忽略检查。 | +| -i, –ignore-garbage | 此选项用于在解码时忽略非字母字符。 | +| -u 或者 –help | 此选项用于获取有关使用此命令的信息。 | + +#### 示例 1:基本编码 + +在 Linux 中,默认已安装好 base64 软件包。因此,你可以轻松地从命令行使用 base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到命令行,并获取待编码的文本。在下面的示例中,对字符串 debugpoint.com 进行了 base64 编码。 + +``` +echo "debugpoint.com" | base64 +``` + +![bash base64 encode and decode - example 1][3] + +结果是经过 base64 编码后的字符串。 + +#### 解释 + +Base64 编码方法使用下面的几个步骤来转换输入的数据。首先,每个输入字符转换为 8 位二进制值,接着,二进制字符串拆分为一组组 6 位的二进制值,然后,每个 6 位的二进制值被转换为十进制值。 + +最后,每个十进制值都通过 base64 编码索引表转换为 base64 字符。 + +在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。 + +![Base64 Encode and Decode – inner working][4] + +#### 示例 2:基本解码 + +要解码字符串,需要将编码值传递给 base64,选项为 `--decode`,它将输出你之前输入的字符串。 + +![bash base64 encode and decode - example 2 (decode the same example)][5] + +#### 示例 3:对文本文件进行编码 + +示例 1 中的同一命令也可用于编码文本文件,并将输出重定向到另一个文本文件。方法如下。 + +``` +base64 example3.txt > example3-encoded.txt +``` + +![Encode a text file][6] + +#### 示例 4:对文本文件进行解码 + +要解码使用 base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。 + +``` +base64 -d example3-encoded.txt +``` + +#### 示例 5:对用户输入的数据进行编码 + +使用 bash shell 编程,你可以通过终端接收用户的输入,并对其进行 base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。 + +以下就是一个简单的示例,它从用户那里获得输入,然后进行 base64 编码,最终显示编码的字符串。 + +``` +#!/bin/bash +#Sample program to take input, encode to base64 and display on terminal +#Example by www.debugpoint.com +echo "Enter text for encoding to base64:" +read input_text +output_text=`echo -n $input_text | base64` +echo "The Base64 Encoded text is: $output_text" +``` + +![Custom input - base64 encode and decode using script][7] + +#### 示例 6:用 base64 进行简单的身份认证 + +你可以运用上述的编码和解码方法,实现一个简单的身份验证系统。你可以让用户输入密码或密码,然后将密码存储在文件中。或者进行实时比较。 + +如果存储的编码字符串与用户输入的文本再编码的字符串相匹配,则用户可以通过验证。虽然这是一种检查身份验证的很简单的方法,但有时这对一些简单的业务案例很有用。 + +``` +#!/bin/bash +#Sample program to take input, encode to base64 and display on terminal +#Example by www.debugpoint.com +echo "Type your password" +read pwd1 +decoded_text=`echo 'U2lsZW5jZSBpcyBnb2xkZW4h' | base64 --decode` +if [[ $pwd1 == $decoded_text ]] +then + echo "You are a valid user." +else + echo "You are NOT a valid user." +fi +``` + +![A Simple Authentication using bash base64][8] + +### 结论 + +我希望你能通过这些示例,学会 [Base64][9] 编码和解码的基础知识。此外,你也了解到 Base64 的内部编码方式。如果这对你很有帮助,或你还需要有关此主题的其他教程,请在下面的评论区中告诉我吧。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/bash-base64-encode-decode/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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/2021/11/base64example-1024x576.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Index-Table.png +[3]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-1.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Encode-and-Decode-inner-working.png +[5]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-2-decode-the-same-example.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Encode-a-text-file.png +[7]: https://www.debugpoint.com/wp-content/uploads/2021/11/Custom-input-base64-encode-and-decode-using-script.png +[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/A-Simple-Authentication-using-bash-base64.png +[9]: https://linux.die.net/man/1/base64 From d0f45bc755f57e05a9c7ebf08d7e9b7da0972679 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 24 Oct 2022 08:43:59 +0800 Subject: [PATCH 1695/3123] translating --- ...20221014 Can Kubernetes help solve automation challenges-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md b/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md index 8d7b5904be..33c3834821 100644 --- a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md +++ b/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/kubernetes-solve-automation-challenges" [#]: author: "Rom Adams https://opensource.com/users/romdalf" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From aba5f0fed8cd1de34beef1f0b29b85a58e19b8b5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 24 Oct 2022 09:28:27 +0800 Subject: [PATCH 1696/3123] RP @lxbwolf https://linux.cn/article-15170-1.html --- ...️ Open source DevOps tools in a platform future.md | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) rename {translated/tech => published}/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md (73%) diff --git a/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md b/published/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md similarity index 73% rename from translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md rename to published/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md index 4f8041b4ff..8af5dc99f0 100644 --- a/translated/tech/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md +++ b/published/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md @@ -3,13 +3,17 @@ [#]: author: "Will Kelly https://opensource.com/users/willkelly" [#]: collector: "lkxed" [#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15170-1.html" -平台化未来的开源DevOps工具 +开源 DevOps 工具的平台化未来 ====== +![](https://img.linux.net.cn/data/attachment/album/202210/24/092748lwwoicus5e4s59gg.jpg) + +> 当商业 DevOps 工具市场着眼于平台时,是时候让开源 DevOps 工具重新定义它们的未来了。 + DevOps 的开源根基是无法动摇的,即便有预言称全球的 DevOps 市场将在 2026 年之前达到 178 亿美元。不断变化的工作环境、安全和合规性问题,以及风险投资公司等等因素正在将市场推向 DevOps 平台,开发团队可以在云中获得完整的端到端 DevOps 工具链。 ### 开源 DevOps 工具现状 @@ -22,15 +26,15 @@ DevOps 的开源根基是无法动摇的,即便有预言称全球的 DevOps #### Git -[Git][1]——源代码管理工具——可能是作为源代码库的 DevOps 工具链的主要基建之一。 +源代码管理工具 [Git][1] 作为源代码库,可能是 DevOps 工具链的主要基础之一。 -Git 的两个最佳商业案例是 GitLab 和 GitHub。GitLab [接受开发者对其贡献开源项目][2]。GitHub 也在着手努力成为一个 DevOps 平台,推出了 GitHub Copilot——结对编程的人工智能虚拟版——推出后受到了一些开源团体的褒贬不一的评价。 +Git 的两个最佳商业案例是 GitLab 和 GitHub。GitLab [接受开发者对其贡献开源项目][2]。GitHub 也在着手努力成为一个 DevOps 平台,推出了人工智能版的结对编程 GitHub Copilot,在推出后受到了一些开源团体的褒贬不一的评价。 #### Jenkins 作为一个开源的自动化服务,Jenkins 因其易于安装、配置和可扩展性而受到推崇。 -CloudBees 发布了 JenkinsX,JenkinsX 是一套开源的解决方案,可以为 Kubernetes 上的云原生应用提供自动化持续集成和持续交付(CI/CD)以及自动化测试工具。他们还为JenkinsX 提供商业支持,包括: +CloudBees 提供了 JenkinsX,JenkinsX 是一套开源的解决方案,可以为 Kubernetes 上的云原生应用提供自动化持续集成和持续交付(CI/CD)以及自动化测试工具。他们还为JenkinsX 提供商业支持,包括: - 访问 CloudBees 的专业技术技能 - 24x7 技术支持 @@ -38,17 +42,17 @@ CloudBees 发布了 JenkinsX,JenkinsX 是一套开源的解决方案,可以 #### Kubernetes -随着越来越多的组织寻求企业级的容器编排解决方案,[Kubernetes][3] 的发展成为必然。尽管有人批评其复杂性,但 Kubernetes +随着越来越多的组织寻求企业级的容器编排解决方案,[Kubernetes][3] 的发展成为必然。尽管有人批评其复杂性。 -Kubernetes 周边有完整的、蓬勃发展的产业,并且没有消亡理由。根据 Allied 市场调研的数据,全球容器和 [Kubernetes 安全][4]市场在 2020 年的估值为 7.14 亿美元,预计到 2030 年将达到 8.42 亿美元。 +自然而然的,Kubernetes 周边有完整的、蓬勃发展的产业。根据 Allied 市场调研的数据,全球容器和 [Kubernetes 安全][4] 市场在 2020 年的估值为 7.14 亿美元,预计到 2030 年将达到 8.42 亿美元。 ### 目前的 DevOps 工具链 -各个行业仍有很多自建(BYO)的 CI/CD 工具链在发挥作用。支持 DevOps 功能的开源项目仍在蓬勃发展。 +各个行业仍有很多自建build-your-own(BYO)的 CI/CD 工具链在发挥作用。支持 DevOps 功能的开源项目仍在蓬勃发展。 BYO 工具链可以集成其他工具,而且非常具有扩展性,这对于持续迭代其 DevOps 实践的组织来说一直是一个优势。在出于业务、IT 和安全原因寻求标准化的企业中,缺乏标准的材料清单可能是个麻烦。 -虽然 DevOps 平台的出现并没有被忽视,但许多组织早在大流行之前就将他们的 CI/CD 工具链迁移到了公共云。长期以来,工具链本身的安全性一直是一个不断上升的问题,而公共云基础设施提供了身份访问管理(IAM)和其他安全功能来控制访问。 +虽然 DevOps 平台的出现并没有被忽视,但许多组织早在大流行之前就将他们的 CI/CD 工具链迁移到了公有云。长期以来,工具链本身的安全性一直是一个不断上升的问题,而公有云基础设施提供了身份访问管理(IAM)和其他安全功能来控制访问。 ### DevOps 平台是敌是友? @@ -76,18 +80,16 @@ DevOps 平台供应商也有潜在的经济方面的劣势。想一想,一个 #### 软件供应链安全市场 -在高调的攻击和联邦政府的回应之后,软件供应链安全市场引起了很多关注。目前还没有组织将软件供应链的攻击归咎于开源,但我们将看到 DevOps/DevSecOps 实践和工具的延伸,以对抗这种威胁。不过,当一切都结束时,DevOps/DevSecOps 的工具和实践将超过一些转向这一趋势的初创公司。 +在高调的攻击和美国联邦政府的回应之后,软件供应链安全市场引起了很多关注。目前还没有组织将软件供应链的攻击归咎于开源,但我们将看到 DevOps/DevSecOps 实践和工具的延伸,以对抗这种威胁。不过,当一切都结束时,DevOps/DevSecOps 的工具和实践将超过一些转向这一趋势的初创公司。 -### 最后的想法 +### 结语 -对于 DevOps 领域的开放源码软件(OSS)项目来说,这还远远没有结束,但 DevOps 利益相关者有权开始询问未来的工具链。然而,OSS DevOps 项目确实需要考虑他们的未来,特别是考虑到日益增长的直接影响流水线的安全和合规性问题。 +对于 DevOps 领域的开源软件(OSS)项目来说,这还远远没有结束,但 DevOps 利益相关者有权开始询问未来的工具链。然而,OSS DevOps 项目确实需要考虑它们的未来,特别是考虑到日益增长的直接影响流水线的安全和合规性问题。 DevOps 平台供应商与开源工具的未来趋势是合作性竞争,即 DevOps 平台供应商向作为其平台基础的开源工具贡献时间、金钱和资源。一个有趣的例子就是 [OpsVerse][5],它用他们为客户管理的开源工具提供了一个 DevOps 平台。 然后,还有一个未来,随着更多的企业构建的工具链迁移到云端,开源 DevOps 工具项目将继续繁荣和创新。 -**[ Kickstart an organizational culture change. Read the first article in a series, [DevSecOps: 5 tips for seeding a culture transformation][6] ]** - -------------------------------------------------------------------------------- via: https://opensource.com/article/22/10/open-source-devops-tools @@ -95,7 +97,7 @@ via: https://opensource.com/article/22/10/open-source-devops-tools 作者:[Will Kelly][a] 选题:[lkxed][b] 译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 54928c7619db84effbea89c14fb3d5ba676e59ac Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 24 Oct 2022 10:18:00 +0800 Subject: [PATCH 1697/3123] ALL @wxy https://linux.cn/article-15171-1.html --- .../20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md | 147 ++++++++++++++++++ .../20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md | 147 ------------------ 2 files changed, 147 insertions(+), 147 deletions(-) create mode 100644 published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md delete mode 100644 sources/news/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md diff --git a/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md b/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md new file mode 100644 index 0000000000..f21ce3ff2d --- /dev/null +++ b/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md @@ -0,0 +1,147 @@ +[#]: subject: "Ubuntu 22.10 Is Here!" +[#]: via: "https://news.itsfoss.com/ubuntu-22-10-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15171-1.html" + +Ubuntu 22.10 的新变化 +====== + +> Ubuntu 22.10 是一个令人印象深刻的版本,它拥有新的快速切换功能、应用程序散布,以及更多。 + +![](https://img.linux.net.cn/data/attachment/album/202210/24/101545l1jae18e1881ee19.jpg) + +Ubuntu 22.10 “充满活力的捻角羚Kinetic Kudu”来了。它带来了许多重大的改进,特别是 Linux 内核 5.19 和 GNOME 43 的体验。 + +当然,这是一个经过定制的 GNOME 体验,现有的 Ubuntu 用户会很熟悉。 + +那么,Ubuntu 22.10 都有哪些新变化呢?让我们一起来看看。 + +### Ubuntu 22.10 的新变化 + +![][2] + +除了 GNOME 43 之外,Ubuntu 22.10 还包括: + +- 一个改进的 设置Settings 应用程序。 +- 经典的 Unity 应用程序散布模式Spread Mode的复活。 +- 一些著名的应用程序被移植到 GTK4 和 Libadwaita。 +- 全系统支持 WebP。 +- PipeWire 采样管默认的音频服务器。 +- Linux 内核 5.19。 + +> 💡 Ubuntu 22.10 将被支持九个月,直到 **2023 年 7 月**。如果你想要稳定而不是功能,你应该更愿意使用 [LTS 版本][3]。 + +#### 🎨 视觉改进 + +当第一次测试一个新版本时,视觉上的变化总是最先被注意到的。在 Ubuntu 22.10 中尤其如此,这要归功于 [GNOME 43][4] 所带来的重大改进。 + +![Ubuntu 22.10 快速设置][5] + +首先,我们有全新的快速设置菜单,它取代了旧的、相当笨拙的系统菜单。与安卓、iOS 和 Windows 11 中的菜单类似,这个新增的菜单允许你打开和关闭 Wi-Fi 和蓝牙,所有这些都无需进入设置Settings应用程序。 + +当然,在这个版本中我们还得到了全新的壁纸。 + +![Ubuntu 22.10 壁纸][6] + +对于这个变化,我除了喜欢并希望从社区中看到更多这样的设计之外,没有什么别的可说的。 + +此外,更多的应用程序被移植到了 GTK4,包括对 Nautilus 文件管理器的改进。 + +一些有价值的新增功能包括: + +- 拖动并选择文件的能力(橡皮筋选择)。 +- 自适应视图与一个紧凑的窗口。 +- 新的文件上下文菜单。 + +你可以通过我们的详细报道来探索 Nautilus 的改进。 + +#### 👴 应用程序散布回来了! + +我不太喜欢的 GNOME 的一个部分是多窗口应用程序的切换,我相信很多其他用户都有这样的不满。 + +![Ubuntu 22.04][7] + +幸运的是,Ubuntu 22.10 现在提供了一个很好的解决方案,对于长期用户来说应该是很熟悉的。终于,在 2017 年放弃对 Unity 的支持五年后,Ubuntu 的开发者们又把应用程序散布Spread带了回来。 + +![Ubuntu 22.10应用程序传播][8] + +这是一个重大的改进,我很惊讶 GNOME 自己没有这样做。 + +#### 🛠️ 设置的改进 + +虽然不是大多数人日常使用的应用程序,但系统设置System Settings是 GNOME 体验的一个核心部分。考虑到这一点,看到它接受了一次重大的视觉改造,以及移植到了 GTK 4 和 Libadwaita,真是太棒了。 + +![Ubuntu 22.10 桌面设置][9] + +因此,它现在变得更好看了,而且是自适应的,这意味着它在任何尺寸下都能很好地工作,甚至在像 PinePhone 这样的 Linux 手机上也能很好地工作! + +另一个与设置有关的变化是增加了一个新的 “Ubuntu 桌面设置Ubuntu Desktop Settings”菜单项。这提供了一个单一的、统一的地方来定制和改变你所有的 Ubuntu 特定设置。 + +#### Linux 内核 5.19 + +Ubuntu 22.10 还带来了一个更新的内核,即 [Linux 内核 5.19][10]。这个版本的改进相当少,尽管它确实带来了对一些下一代硬件的改进支持。 + +你应该注意到这是 Linux 5.x 系列的最后一个版本,因为 Linux 内核下一个版本跳到了 6.0。 + +#### 其他变化 + +![Ubuntu 22.10 webp][11] + +总的来说有几个细微的调整。但其中一些基本的调整包括: + +- 图像应用程序默认支持 .WebP 图像格式。 +- GNOME 文本编辑器是默认编辑器。你可以安装 gedit 并使其成为默认的。 +- GNOME 图书应用程序已经不再可用。Ubuntu 推荐 [Foliate][12] 作为替代。 +- 不再默认安装 To Do 应用程序,并且它有了一个新的名字,“Endeavour”。 +- GNOME 终端仍然是默认的终端应用。如果需要,可以安装 [GNOME 控制台][13]。 +- 更新了 Firefox 104、[Thunderbird 102][14] 和 [Libreoffice 7.4][15] 等应用程序。 +- 更多的应用程序已经被移植到 GTK4,特别是 [Nautilus][16]。 + +> ℹ️ 注意,我们的列表集中在对桌面终端用户重要的变化上。如果你想知道更多关于服务器和其他使用情况的变化/更新,请参考 [官方发布说明][17]。 + +### 下载 Ubuntu 22.10 + +你可以从 [Ubuntu 的中央镜像库][18] 或其 [官方网站][19] 下载最新的 ISO。 + +**官方网站/仓库可能需要一段时间来提供 ISO 的下载。 + +> **[下载Ubuntu 22.10][19]** + +💬 有兴趣尝试 Ubuntu 22.10 吗?请在评论中告诉我你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-22-10-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-22-10-release.png +[2]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10.png +[3]: https://itsfoss.com/long-term-support-lts/ +[4]: https://news.itsfoss.com/gnome-43-release/ +[5]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-quick-setting.jpg +[6]: https://news.itsfoss.com/content/images/2022/10/22.10-wallpaper.png +[7]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-04-window-minimize.png +[8]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-app-spread.jpg +[9]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-desktop-setting.png +[10]: https://news.itsfoss.com/linux-kernel-5-19-release/ +[11]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-webp.png +[12]: https://itsfoss.com/foliate-ebook-viewer/ +[13]: https://itsfoss.com/gnome-console/ +[14]: https://news.itsfoss.com/thunderbird-102-release/ +[15]: https://news.itsfoss.com/libreoffice-7-4-release/ +[16]: https://news.itsfoss.com/gnome-files-43/ +[17]: https://discourse.ubuntu.com/t/kinetic-kudu-release-notes/27976 +[18]: https://cdimage.ubuntu.com/ubuntu/releases/22.10/release/ +[19]: https://ubuntu.com/download/desktop diff --git a/sources/news/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md b/sources/news/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md deleted file mode 100644 index b1a6d1bd8d..0000000000 --- a/sources/news/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "Ubuntu 22.10 Is Here!" -[#]: via: "https://news.itsfoss.com/ubuntu-22-10-release/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu 22.10 Is Here! -====== - -Ubuntu 22.10 is an impressive release with new quick toggles, application spread, and more. - -![Ubuntu 22.10 Is Here!][1] - -Ubuntu 22.10 "**Kinetic Kudu**" is here. It brings many significant improvements, notably Linux Kernel 5.19 and the GNOME 43 experience. - -Of course, this is a customized GNOME experience that will be familiar to existing Ubuntu users. - -So, what are all the goodies with Ubuntu 22.10? Let us find out: - -### Ubuntu 22.10 Release: What's New? - -![][2] - -Along with GNOME 43, Ubuntu 22.10 also includes: - -- **An improved Settings app.** -- **The resurrection of the classic Unity application spread.** -- **A few notable apps ported to GTK4 and Libadwaita.** -- **System-wide WebP support.** -- **PipeWire is the default audio server.** -- **Linux Kernel 5.19.** - -> 💡Ubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][3]. - -#### 🎨 Visual Improvements - -When first testing a new release, visual changes are always the first to be noticed. This is especially true with Ubuntu 22.10, thanks to the significant improvements introduced with [GNOME 43][4]. - -![Ubuntu 22.10 quick setting][5] - -First, we have the brand-new quick settings menu, which replaced the old and rather clunky system menu. Similar to the menus found in Android, iOS, and Windows 11, this addition allows you to switch on and off Wi-Fi and Bluetooth, all without going into the settings app. - -Of course, we also get brand-new wallpaper with this release. - -![ubuntu 22.10 wallpaper][6] - -There's not much else to say about it other than that I love this switch and hope to see more designs like this from the community. - -Additionally, more apps have been ported to GTK4, including the refinements wit the **Nautilus** file manager. - -Some valuable feature additions include: - -- **Ability to drag and select files (rubber band selection).** -- **Adaptive view with a compact window.** -- **New document context menu.** - -You can go through our detailed coverage to explore the improvements with Nautilus. - -#### 👴 The Application Spread Is Back! - -One of my minor favorite parts of GNOME is the multi-windows app switching, a gripe that I'm sure many other users share. - -![ubuntu 22.04][7] - -Fortunately, **Ubuntu 22.10** is now offering a great solution that should be familiar to long-time users. Finally, five years after dropping support for Unity back in 2017, the Ubuntu developers have brought back the application spread. - -![ubuntu 22.10 application spread][8] - -This is a significant improvement and something I'm surprised GNOME hasn't done itself. - -#### 🛠️ Settings Improvements - -Although not an app that most people use daily, System Settings is a core part of the GNOME experience. With that in mind, it is fantastic to see it receiving a major visual overhaul, as well as a port to GTK 4 and Libadwaita. - -![Ubuntu 22.10 desktop setting][9] - -As a result, it is now better-looking and adaptive, meaning it will work well at any size and even on Linux phones like the PinePhone! - -Another Settings-related change is adding a new "**Ubuntu Desktop Settings**" menu item. This offers a single, unified place to customize and change all your Ubuntu-specific settings. - -#### Linux Kernel 5.19 - -Ubuntu 22.10 also brings a newer kernel i.e., [Linux kernel 5.19][10]. This release was pretty light on improvements, although it did bring improved support for some next-gen hardware. - -You should note that this is the last release in the Linux 5.x series, as Linux Kernel 6.0 is the next version bump. - -#### Other Changes - -![Ubuntu 22.10 webp][11] - -There are several subtle refinements overall. But some of those essential tweaks include: - -- Default image apps support **.WebP** image format. -- **GNOME Text Editor** is the default editor. You can install gedit and make it the default. -- **GNOME Books app** is no longer available. Ubuntu recommends [Foliate][12] as a replacement. -- **To Do app** is no longer installed by default and has a new name, "_Endeavour_". -- **GNOME Terminal** is still the default terminal app. [GNOME Console][13] can be installed if required. -- Updated apps like Firefox 104, [Thunderbird 102][14], and [Libreoffice 7.4][15]. -- More apps have been ported to GTK4, notably **[Nautilus][16].** - -> ℹ️Note that our list focuses on changes that matter to a desktop end-user. If you want to know more about the changes/updates for the server and other use cases, refer to the [official release notes][17]. - -### Download Ubuntu 22.10 - -You can download the latest ISO from [Ubuntu's central image repository][18] or its [official website][19]. - -**It might take a while for the official website/repo to make the ISO available to download.** - -[Download Ubuntu 22.10][19] - -💬 _Interested in trying Ubuntu 22.10? Let me know your thoughts in the comments._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-22-10-release/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-22-10-release.png -[2]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10.png -[3]: https://itsfoss.com/long-term-support-lts/ -[4]: https://news.itsfoss.com/gnome-43-release/ -[5]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-quick-setting.jpg -[6]: https://news.itsfoss.com/content/images/2022/10/22.10-wallpaper.png -[7]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-04-window-minimize.png -[8]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-app-spread.jpg -[9]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-desktop-setting.png -[10]: https://news.itsfoss.com/linux-kernel-5-19-release/ -[11]: https://news.itsfoss.com/content/images/2022/10/ubuntu-22-10-webp.png -[12]: https://itsfoss.com/foliate-ebook-viewer/ -[13]: https://itsfoss.com/gnome-console/ -[14]: https://news.itsfoss.com/thunderbird-102-release/ -[15]: https://news.itsfoss.com/libreoffice-7-4-release/ -[16]: https://news.itsfoss.com/gnome-files-43/ -[17]: https://discourse.ubuntu.com/t/kinetic-kudu-release-notes/27976 -[18]: https://cdimage.ubuntu.com/ubuntu/releases/22.10/release/ -[19]: https://ubuntu.com/download/desktop From 2c43174b433c628d12d8cf0c4c739bb63e077b0b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 24 Oct 2022 10:22:37 +0800 Subject: [PATCH 1698/3123] R --- published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md b/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md index f21ce3ff2d..afcfdf3637 100644 --- a/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md +++ b/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md @@ -67,7 +67,7 @@ Ubuntu 22.10 “充满活力的捻角羚Kinetic Kudu”来 幸运的是,Ubuntu 22.10 现在提供了一个很好的解决方案,对于长期用户来说应该是很熟悉的。终于,在 2017 年放弃对 Unity 的支持五年后,Ubuntu 的开发者们又把应用程序散布Spread带了回来。 -![Ubuntu 22.10应用程序传播][8] +![Ubuntu 22.10应用程序散布][8] 这是一个重大的改进,我很惊讶 GNOME 自己没有这样做。 From 1605f69cb577f92c25487fcbf1efd20602559dd2 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 24 Oct 2022 10:52:52 +0800 Subject: [PATCH 1699/3123] translating by chai0001125 --- ... 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md b/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md index 2b8a28db36..d9297a77b6 100644 --- a/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md +++ b/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/things-to-do-ubuntu-22-10/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 67b41c38c7a850f4ce4e09315e8b4234b0049425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 24 Oct 2022 12:23:23 +0800 Subject: [PATCH 1700/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Recover?= =?UTF-8?q?=20Arch=20Linux=20Install=20via=20chroot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow to Recover Arch Linux Install via chroot.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 sources/tech/20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md diff --git a/sources/tech/20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/sources/tech/20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md new file mode 100644 index 0000000000..bc7bb57a60 --- /dev/null +++ b/sources/tech/20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md @@ -0,0 +1,110 @@ +[#]: subject: "How to Recover Arch Linux Install via chroot" +[#]: via: "https://www.debugpoint.com/recover-arch-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Recover Arch Linux Install via chroot +====== + +**This quick guide explains some of the steps which may come in handy to recover an Arch Linux Install.** + +Being a rolling release, sometimes things break in Arch Linux. Not because of your own actions but hundreds of other reasons, such as a new Kernel vs your hardware or software compatibility. But still, Arch Linux is still better and provides the latest packages and applications. + +But sometimes, it gives you trouble, and you end up with a blinking cursor and nothing else. + +So, in those scenarios, instead of re-formatting or reinstalling, you may want to try to recover the installation, including the data, before giving up your hope. This guide outlines some steps in that direction. + +### Recover Arch Linux Installation + +- The first step is to create a bootable LIVE USB with Arch Linux. Download the .ISO from this link and create a bootable .ISO. You can check out this guide on how to create bootable .ISO using Etcher. Remember this step requires another working stable system, obviously, as your current system is not usable. + +[download arch linux][1] + +- You need to know on **which partition your Arch Linux** is installed. This is a crucial step. If you don’t know, you can use GParted to find out. Or check in your Grub menu, Or you can run the below command to find out. This will list all your disk partitions, size, and labels. + +``` +sudo lsblk -o name,mountpoint,label,size,uuid +``` + +- Once done, plug in the USB stick and boot from it. And you should see the Arch Linux prompt in the LIVE medium. + +- Now, mount to the Arch Linux partition using the below. Change the `/dev/sda3` to your respective partition. + +``` +mount /dev/sda3 /mnt +arch-chroot /mnt +``` + +- The arch-chroot command will mount your Arch Linux partition in the terminal, so log in using your Arch credentials. Now, you have the following options based on what you want at this stage. + +- You can take backups of your data by going through /home folders. In case the troubleshooter doesn’t work. You may copy the files to an external USB or another partition. + +- Verify the log files, especially the pacman logs, because an unstable system may be caused by upgrading some packages, such as graphics driver or any other driver. Based on the log, you may want to downgrade any specific package if you want. +- You may use the below command to view the last 200 lines of the pacman log file to find out any failing items or dependency removal. + +``` +tail -n 200 /var/log/pacman.log | less +``` + +- The above command gives you 200 lines from the end of the pacman.log file to verify. Now, carefully check which of the packages were updated since your successful boot. + +- And note down the package name and version somewhere. And you may try to downgrade packages one-by-one or if you think a specific package created a problem. Use the -U switch of pacman command to downgrade. + +``` +pacman -U +``` + +- You can run the following to start your Arch system after downgrading if any. + +``` +exec /sbin/init +``` + +- Check the status of your display manager and whether if there are any errors. Sometimes, the display manager creates a problem which can’t communicate with X Server. For example, if you are using lightdm, then you can check its status via the below. + +``` +systemctl status lightdm +``` + +- Or, you may want to start it via the below command and check the error. + +``` +lightdm --test-mode --debug +``` + +- Here is an example of lightdm failure, which caused an unstable Arch system. + +![lightdm - test mode][2] + +- Or check via kicking off the X server using `startx`. + +- In my experience, if you see errors in the above command, try to install another display manager, such as **sddm** and enable it. It may eliminate the error. + +- Try the above steps based on the state of your system, and troubleshoot. For errors specific to display manager lightdm, we have a [guide][3] which you may want to check out. +- If you are using sddm, then check out [these troubleshooting steps][4] if something works. + +### Closing Notes + +Every installation is different. And above steps may/may not work for you. But it is worth a try, and as per my experience, it works. If it works, well, good for you. Either way, let me know how it goes in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/recover-arch-linux/ + +作者:[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://archlinux.org/download/ +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg +[3]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/ +[4]: https://wiki.archlinux.org/title/SDDM#Troubleshooting From 0537252d5f02f00100619c9d34f4fbd246ff6b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 24 Oct 2022 12:24:52 +0800 Subject: [PATCH 1701/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Endless=20OS=20=E2=80=93=20Desktop=20Linux=20Done=20Right=20for?= =?UTF-8?q?=20the=20Masses.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ss OS – Desktop Linux Done Right for the Masses.md | 202 ++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 sources/tech/20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md diff --git a/sources/tech/20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md b/sources/tech/20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md new file mode 100644 index 0000000000..283805a302 --- /dev/null +++ b/sources/tech/20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md @@ -0,0 +1,202 @@ +[#]: subject: "Endless OS – Desktop Linux Done Right for the Masses" +[#]: via: "https://www.debugpoint.com/endless-os-review-2021/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Endless OS – Desktop Linux Done Right for the Masses +====== + +**We review the popular Endless OS as Linux Desktop with the new features and updates of the latest version 4.0.** + +![Endless OS Desktop version 4.0][1] + +Endless OS is a [OSTree based][2] free and open-source[Linux Distribution][3]. This Linux distribution is packaged from Debian/Ubuntu, but not directly based on it. OSTree is an atomic upgrade system for Linux-based OSes. This is a unique way to provide package updates to Linux-distribution, where OSTree packages everything in a server and then replicates to the client. + +The main advantage is that your underlying Linux operating system always remain intact, and it is read-only. OSTree only operates in user space. + +In that sense, Endless OS never breaks, and it remains fresh as you install for the first time. Today, only very few Linux Distribution are based on OSTree technology – such as Fedora SIlverblue and Fedora Kinoite. + +That said, let take a deep dive on the Endless OS as a whole and check out the updates to the new version. + +### Endless OS Review + +#### Version 4.0 Updates + +As of writing this post, Endless OS latest version is 4.0 which has been released on Nov 22, 2021. This release brings better app grid switching with indicators, switch user option and a Long term support model. With this new support model, this version 4.0 will continue to receive update even after Endless OS 5.0 released. You can learn more about the updates in this [post][4]. + +#### Downloading Endless OS + +Before I go into the installer, I would like to spend a few words on the installer/.ISO of this distribution. Endless OS brings two separate installers. An .ISO file specifically designed for Windows system to install as dual-boot. This installer is an EXE file which you can download in Windows machine and start the installation! This something unique I found. + +With all the Windows hate aside, this actually helps to adopt this Linux distribution far more easily for the average user. An average user may not even know what a partition or a GRUB is. So, in those situations, it downloads, does the partition and installs it without any complex user input. This is really impressive. You can learn more about the Windows installation [here][5]. + +Other .ISO images are dedicated to – + +- Basic desktop installer with language selection +- A specially designed .ISO for virtual machine +- .ISO images for ARM hardware such as Raspberry Pi, Pinebook Pro etc. + +Go ahead and open the below link and get your .ISO copy. Remember, the full installer ISO files are much larger > 10 GB. So, if you are planning to test, use the basic installer. + +![Download options of Endless OS][6] + +[download Endless OS][7] + +#### Unique Installation of Endless OS + +Apart from the Windows installation as described above, you need to know a couple of things. The Endless OS can not be installed at the moment as dual boot with other Linux distributions. What? Yes. + +As per the information I found, the .ISO is not designed to handle other Linux distribution as dual boot. However, you can try it in virtual machine with any Linux host OS. + +The basic installer gives you two options. Try in LIVE media or reformat the entire disk and install. Yes, entire disk. So be very careful if you’re trying to install in actual hardware. + +During my test, I had to install it in a virtual machine ([virt-manager][8]) because I don’t want to reformat my entire SSD. + +The installation went smooth. No error whatsoever. However, it took a little longer (probably 10 to 15 minutes extra) than other Linux distribution installation in same hardware. + +![Two options to Install and Try Endless OS][9] + +![This OS requires entire disk][10] + +#### First Login and Setup + +After the successful installation, you get to choose Language, user account, privacy options. These are standard GNOME options which we see in Fedora Workstation GNOME Edition. One of the important item is the terms of use. As this Linux is targeted for mass deployment for schools, non-profits or labs – you might want to go through the terms. + +User creation dialog have an option to set up parental control for the user being created, which is neat. + +#### How the Endless OS with GNOME desktop looks + +When you first boot up, you see a desktop with icons and a search bar. + +This is the application list menu, which is the default desktop screen. You can search any items in your desktop and launch them via the search bar. The search bar also gives you the option to directly search Google via Chromium, which is the default browser. + +This default desktop screen contains preloaded applications and well organized app folders for native GNOME apps. + +The bottom panel is awesome, really. It is well optimized in terms of looks and width. Not too narrow or wide. In the far left, you have Endless OS icon, which is a toggle for show applications and show desktop options. + +Then, you have the favorites as icons. The favorites icons have the app indicator notifying that it is open. If some app is not marked as favorites, they also show up in the bottom panel when opened with app indicator. This is super neat. + +To the right, the system tray is classified intro three sections. First one gives you the volume controls, network and Wi-Fi settings. In the middle you have date, time and calendar on mouse-hover. And at the extreme right you have the options to log out, switch user, power off and other information. All these menu comes up when you mouse-hover into it. You do not need to click them. + +#### Hot Corner and Workspace + +Endless OS is based on GNOME 3.38 version. Not GNOME. Hence, the workspace design is kind of unique. To the extreme right bottom – there is a hot corner. When you click on that, it brings up the current workspace with a list of running applications. When you mouse hover, you can close them or select them without leaving the view. + +#### Things that I feel Endless OS done right with GNOME + +If you have used GNOME in Ubuntu or Fedora, and then experienced it in Endless OS, you might find some UI tweaks works out of the box. You do not need to set up Extensions or change settings. Here are a couple of them I found that I wish GNOME with Fedora or Ubuntu would feature by default. + +- Clicking on desktop empty section shows the desktop by minimizing all open applications. And pressing ALT+TAB brings up the open app windows again. You can’t imagine how comfortable this behavior is. +- The show desktop and app toggle at the bottom right of the panel and its default mapping with Super key. This just works. +- All windows have Minimize, Maximize, and Close icons at the top right by default. You do not need additional tweaks to get it working. +- Hot corner implementation at the far right. +- Panel design in terms of width, app icons with app indicators. They are all default implementations. +- System tray menu popup in mouse over by default. You do not need an extra click to open it up. This is such a breathing while using the mouse. + +Here’s a quick video showing all the above features. + +#### Unique Features that make it perfect for non-technical users + +Perhaps the unique selling point of this Linux desktop is minimal user intervention during installation + post-install tweaks. And you can start using this desktop without internet connection right away. A perfect desktop for those places where internet is not always available. + +Think about a school at a remove place where Internet connectivity is costly or not available. But you need to have a stable, free and easy-to-use Linux Desktop for kids to learn the computing. You can burn a CD/DVD or create USB with language specific .ISO and deploy it offline. + +And post-installation does not require any additional settings at all. All the options are well defaulted and just works. + +#### Software and Applications + +One point to note that, Endless OS use Flatpak to deploy applications. There is no way to install other than Flatpak. For example, you can not use apt or apt-get at all because the file system is read only. + +That’s why, the .ISO itself is larger and contains all required applications, language packs preloaded. Ideal for schools, labs and other forms of deployments. + +However, if you need additional applications, you can install it using the customized App Center for GNOME with internet connection. + +The App Center have curated categories at the left which shows the Flatpak applications. The App center is configured to fetch application metadata directly from Flathub. + +![App Center in Endless OS][11] + +Oh, this OS supports NVIDIA cards out-of-the-box with either the proprietary driver for supported cards or nouveau for older ones. + +#### Help Center + +Think about a situation, where a student is learning computer for the first time using Endless OS. If the person want to change the login screen photo, how does he/she do? + +Here comes the great built-in help center of this OS which I feel one of the important feature. All the person need to do is type something in the desktop search bar and pull up help. + +This is so helpful, isn’t it? + +![Trying Help in Endless OS-1][12] + +![Trying Help in Endless OS-2][13] + +#### How about the performance? + +I have only managed to install it in a virtual machine. So, it has comfortable response time while using the desktop. The animations and other gestures are instant. I kept it running for more than 15 hours in a virtual machine. + +After 15 hours, it was consuming around 1 to 2% CPU and 1 GB of memory. Most of the CPU is consumed by gnome-shell, followed by Xorg. I am not sure why gnome-shell was consuming so much, might be memory leak bug. Not sure though. + +![Performance of Endless OS][14] + +#### What about disk space? + +As this Linux distribution plans to be a self-sufficient distro without internet, the installation size is a little larger compared to other distributions such as Ubuntu or Fedora. A default virtual machine installation takes around ~11 GB of disk space. + +#### Is it a perfect Linux Distribution? Well, not really. + +I try many Linux distributions and desktops for this blog and my work. Very few are perfect and ready to use just after installation. I mean, you don’t need to go over “10 things to do after installing **” with this Linux distribution. + +But, some minor improvements are welcome from the team in the future. First item I feel, an .ISO which is dedicated to be installed side-by-side with Ubuntu, fedora and other Linux. This is really needed. + +Probably some support for Snap packages in the future. + +And the final drawback might be the availability of applications only as Flatpak. Not every app have an official flatpak version today. That limits its capability to some extent, but not more. + +#### If things go wrong – how to get help and Support? + +There’s a great online active community of Endless OS where you get support from its creators. And the documentation is also very impressive which contains all necessary details ranging from installation to usage. You can visit the community and documentation using the below links. + +- [https://support.endlessos.org/en/home][15] + +- [https://community.endlessos.com/][16] + +### Closing Notes + +Endless OS is one of those few Linux distributions which I felt really well thought of and designed. It is perfect for schools, labs, and remote/offline situations. And perfectly designed to be used by anyone without prior knowledge of much computing, even experience of Windows. Even the Windows users would feel comfortable using this modified GNOME desktop. That said, I am hoping that the team should bring up options to install it alongside other Linux distributions. Then it might be a daily driver distribution for many Linux users and get more attention it deserves. + +If you want only one Linux operating system in your machine which is super stable and run for years, then go ahead and try this distribution. You will be amazed by how much time you save without worrying about terminal, commands, updates/upgrades and sudden package dependency surprises. + +To wrap up this Endless OS review, what you think about Endless OS? Is it a perfect distro? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/endless-os-review-2021/ + +作者:[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/2021/11/Endless-OS-Desktop-version-4.0-1024x582.jpg +[2]: https://ostree.readthedocs.io/en/stable/ +[3]: https://www.debugpoint.com/category/distributions +[4]: https://support.endlessos.org/en/endless-os/release-notes/4-0 +[5]: https://support.endlessos.org/en/installation/windows-installer/dual-boot +[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Download-options-of-Endless-OS.jpg +[7]: https://endlessos.com/download/ +[8]: https://www.debugpoint.com/2020/11/virt-manager/ +[9]: https://www.debugpoint.com/wp-content/uploads/2021/11/Two-options-to-Install-and-Try-Endless-OS-1024x734.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2021/11/This-OS-requires-entire-disk.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2021/11/App-Center-in-Endless-OS-1024x625.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2021/11/Trying-Help-in-Endless-OS-1-1024x576.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2021/11/Trying-Help-in-Endless-OS-2.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2021/11/Performance-of-Endless-OS.jpg +[15]: https://support.endlessos.org/en/home +[16]: https://community.endlessos.com/ From 1f444cc91fc125bd37799717a34cf3f43739f3c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 24 Oct 2022 13:00:30 +0800 Subject: [PATCH 1702/3123] =?UTF-8?q?Rename=2020221024.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20How=20to=20Recover=20Arch=20Linux=20Install=20via?= =?UTF-8?q?=20chroot.md=20to=2020221023.0=20=E2=AD=90=EF=B8=8F=20How=20to?= =?UTF-8?q?=20Recover=20Arch=20Linux=20Install=20via=20chroot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... => 20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md => 20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md} (100%) diff --git a/sources/tech/20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md similarity index 100% rename from sources/tech/20221024.0 ⭐️ How to Recover Arch Linux Install via chroot.md rename to sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md From e9039574ca61e2703ad929f05ea4c3522500f36e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 24 Oct 2022 13:00:57 +0800 Subject: [PATCH 1703/3123] =?UTF-8?q?Rename=2020221024.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Endless=20OS=20=E2=80=93=20Deskto?= =?UTF-8?q?p=20Linux=20Done=20Right=20for=20the=20Masses.md=20to=202022102?= =?UTF-8?q?3.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Endless=20OS=20?= =?UTF-8?q?=E2=80=93=20Desktop=20Linux=20Done=20Right=20for=20the=20Masses?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md => 20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md} (100%) diff --git a/sources/tech/20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md b/sources/tech/20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md similarity index 100% rename from sources/tech/20221024.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md rename to sources/tech/20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md From 1f9f38bb1dbc5a92a846227a9fb51de18df5bcb2 Mon Sep 17 00:00:00 2001 From: Donkey Date: Mon, 24 Oct 2022 13:43:01 +0800 Subject: [PATCH 1704/3123] translated --- ...lete Guide to Configuring SSH in Ubuntu.md | 150 ++++++++---------- 1 file changed, 69 insertions(+), 81 deletions(-) diff --git a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md index f7d703762c..8b0600506f 100644 --- a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md +++ b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md @@ -7,69 +7,61 @@ [#]: publisher: ( ) [#]: url: ( ) -Complete Guide to Configuring SSH in Ubuntu +在 Ubuntu 中配置 SSH 的完整指南 ====== -SSH has become the default method of accessing a remote Linux server these days. +如今 SSH 已成为了登录远程服务器的默认方式。 -SSH stands for Secure Shell and it’s a powerful, efficient, and popular network protocol used to establish communication between two computers in a remote fashion. And let’s not forget the secure part of its name; SSH encrypts all traffic to prevent attacks like hijacking and eavesdropping while offering different authentication methods and a myriad of configuration options. +SSH 的全称是 `Secure Shell` (安全的 Shell),它功能强大、效率高,并且使用主流的网络协议在两个远程终端之间建立连接。让我们不要忘记它名称的安全部分,SSH 会加密所有的通信流量,以防止如劫持、窃听等攻击,同时提供不同的身份认证方式和无数个配置选项。 -In this beginner’s guide, you’ll learn: - - * The basic concept of SSH - * Setting up SSH server (on the system you want to access remotely) - * Connecting to remote server via SSH from the client machine (your personal computer) +在这份新手指南中,你会学到: + 1、SSH 的基本概念 + 2、设置 SSH 服务器(在你想要远程登录的系统上) + 3、从客户端(你的电脑)通过 SSH 连接 远程服务器 +### SSH 的基本概念 -### The absolute basics of SSH +在你看到配置过程前,让我们先了解一下 SSH 的全部基础概念。 -Before you see any configuration process, it will be better to go through the absolute basic concept of SSH. - -The SSH protocol is based on server-client architecture. The “server” allows the “client” to be connected over a communication channel. This channel is encrypted and the exchange is governed by the use of public and private SSH keys. +SSH 协议基于客户端-服务器(CS)架构。“服务器”允许“客户端”通过通信信进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。 ![Image credit: SSH][1] -[OpenSSH][2] is one of the most popular open source tools that provides the SSH functionality on Linux, BSD and Windows. +[OpenSSH][2] 是最流行的开源工具之一,在 Linux、BSD 和 Windows 系统上提供 SSH 功能。 -For a successful SSH set up, you need to: +想要成功配置 SSH,你需要: + 1、在服务器端部署 SSH 服务器组件(server components),由 `openssh-server` 包提供。 + 2、在你远程访问服务器的客户端上部署 SSH 客户端组件,由 `openssh-client` 包提供,大多数 Linux 和 BSD 发行版都已经预装好了。 - * Have SSH server components on the machine that acts as the server. This is provided by **openssh-server** package. - * Have SSH client component on the machine from where you want to connect to the remote server machine. This is provided by **openssh-client** package and most Linux and BSD distributions come preinstalled with it. +区分服务器和客户端是十分重要的事情。或许你不想要你的 PC 作为 SSH 服务器,除非你有充分理由希望其他人通过 SSH 连接你的系统。 +普遍来说,你有一个专用的服务器系统。例如,一个 [允许 Ubuntu 的树莓派][3]。你启动 [树莓派的 SSH 服务][4],这样你可以在你 PC 中的终端,通过 SSH 控制并管理设备。 +有了这些信息,让我们看看如何在 Ubuntu 上设置 SSH 服务器。 -It is important to keep a distinction between the server and client. You might not want your personal computer to act as SSH server unless you have good reasons where you want others to connect to your system via SSH. +### 在 Ubuntu 服务器中配置 SSH -Generally, you have a dedicated system working as the server. For example, a [Raspberry Pi running Ubuntu server][3]. You [enable SSH on the Raspberry Pi][4] so that you could control and manage the device from your main personal computer using SSH in a terminal. +设置 SSH 并不复杂,只需要以下几步。 -With that information, let’s see how you can set up a SSH server on Ubuntu. +#### 前提 + 1、在服务器端拥有 `sudo` 权限的用户 + 2、可以下载所需包的互联网连接 + 3、你的网络中至少有另一个系统。可以是局域网中的另一台电脑,远程服务器或者主机中安装的虚拟机。 -### Configuring SSH Server on Ubuntu +_**再次强调,在你想要通过 SSH 远程登录的系统上安装 SSH 服务**_ -Setting up SSH is not complicated and just needs a few steps to do it. +#### 第一步:安装所需包 -#### Prerequisites +让我们从打开终端输入一些必要命令开始。 - * A user with **sudo** privileges on the server machine - * Internet connection to download the required packages - * At least another system in your network. It can be another computer on your LAN, a remote server via Internet, or a virtual machine hosted in your computer. - - - -_**Again, the SSH server installation should be done on the system that you want to act as server and to which you want to connect remotely via SSH.**_ - -#### Step 1: Install required packages - -Let’s start by opening a terminal window to enter the necessary commands. - -Remember to [update your Ubuntu system][5] before installing new packages or software with to make sure that you are running the latest versions. +注意,在安装新的包或者软件前,要 [更新你的 Ubuntu 系统][5],以确保运行的是最新版本的程序。 ``` sudo apt update && sudo apt upgrade ``` -The package you need to run SSH Server is provided by openssh-server component from OpenSSH: +你要运行 SSH 服务器的包由 OpensSSH 的 `openssh-server` 组件提供: ``` sudo apt install openssh-server @@ -77,142 +69,138 @@ sudo apt install openssh-server ![][6] -#### Step 2: Checking the status of the server +#### 第二步:检查服务器状态 -Once the downloading and installation of the package is done the SSH service should be already running, but to be sure we will check it with: +但你下载并安装完包后,SSH 服务器应该已经运行了,但是为了确保万无一失我们需要检查一下: ``` service ssh status ``` -You may also use the systemd commands: +你还可以使用 `systemd` 命令: ``` sudo systemctl status ssh ``` -You should see something like this, with the word Active highlighted. Hit `q` to return to the command prompt. +你应该会看到这样的结果,其中 `active` 是高亮的。输入 `q` 退出该页面。 ![][7] -If in your case the service is not running you will have to activate like this: +如果你的结果中 SSH 服务没有运行,使用这个命令运行它: ``` sudo systemctl enable --now ssh ``` -#### Step 3: Allowing SSH through the firewall +#### 第三步:运行 SSH 通过防火墙 -Ubuntu comes with a firewall utility called [UFW][8] (UncomplicatedFirewall) which is an interface for **iptables** that in turn manages the network’s rules. If the firewall is active, it may prevent the connection to your SSH Server. +Ubuntu 带有名为 [UFW][8](简单的防火墙——UncomplicatedFirewall) 的防火墙,这是管理网络规则的 `iptables` 的一个接口。如果启动了防火墙,它可能会阻止你连接服务器。 -To configure UFW so that it allows the wanted access, you need to run the following command: +想要配置 UFW 允许你的接入,你需要运行如下命令: ``` sudo ufw allow ssh ``` -The status of UFW can be checked running `sudo ufw status`. +UFW 的运行状态可以通过运行`sudo ufw status` 来检查。 -At this time our SSH Server is up and running, just waiting for a connection from a client. +现在,我们的 SSH 服务器已经开始运行了,在等待来自客户端的连接。 -### Connecting to the remote system from your local machine +### 连接远程服务器 -Your local Linux system should already have SSH client installed. If not, you may always install it using the following command on Ubuntu: +你本地的 Linux 系统已经安装了 SSH 客户端。如果没有,你可以在 Ubuntu 中使用如下命令安装: ``` sudo apt install openssh-client ``` -To connect to your Ubuntu system you need to know the IP address of the computer and use the `ssh` command, like this: +要连接你的 Ubuntu 系统,你需要知道它的 IP 地址,然后使用 `ssh` 命令,就像这样: ``` ssh [email protected] ``` -Change **username** to your actual user in the system and **address** to the IP address of your Ubuntu machine. +将 **用户名**(username) 改为系统上真正的用户名,并将 **地址**(address) 改为你服务器的 IP 地址。 -If you don’t [know the IP address of your computer][9] you can type `ip a` in the terminal of the server and check the output. You should have something like this: +如果你 [不知道 IP 地址][9],可以在服务器的终端输入 `ip a` 查看结果。应该会看到这样的结果: ![Using “ip a” to find the IP address][10] -As can be seen here my IP address is **192.168.1.111**. Let’s try connecting using the **[[email protected]][11]** format. +可以看到我的 IP 地址是 **192.168.1.111**。让我们使用 **[[email protected]][11]** 格式进行连接。 ``` ssh [email protected] ``` -The first time you connect to a SSH server, it will ask for permission to add the host. Type `yes` and hit Enter to continue. +第一次连接 SSH 服务器时,它会请求添加主机。输入 `yes` 并回车即可。 ![First time connecting to the server][12] -Immediately SSH tells you that the host was permanently added and then asks for the password assigned to the username. Type in the password and hit Enter one more time. +SSH 会立即告诉你该主机已经被永久添加了,并要求你输入指定用户的口令,输入口令并再次按回车即可。 ![Host added, now type in the password][13] -And voila! You will be logged into your Ubuntu system remotely! +瞧,你远程登录了你的 Ubuntu 系统! ![Connected!][14] -Now you can work in your remote system’s terminal as normal. +现在,你可以在远程服务器的终端里和寻常一样工作了。 -#### Closing the SSH connection +#### 关闭 SSH 连接 -To close the connection you just need to type `exit` and it will close it at once, without asking for confirmation. +你只需要输入 `exit` 即可关闭连接,它会立马关闭不需要确认。 ![Closing the connection with “exit”][15] -### Stopping and Disabling SSH in Ubuntu +### 在 Ubuntu 中关闭并禁止 SSH Stopping and Disabling SSH in Ubuntu -If you want to stop SSH service you will need this command: +如果你想要停止 SSH 服务,需要运行该命令: ``` sudo systemctl stop ssh ``` -This will stop the service until you restart it or until the system is rebooted. To restart it, type: +该命令会关闭 SSH 服务,直到重启它或者系统重启。想要重启它,输入: ``` sudo systemctl start ssh ``` -Now, if you want to disable it from starting during system boot, use this: +现在,如果你想要禁止 SSH 跟随系统启动,使用该命令: ``` sudo systemctl disable ssh ``` -This won’t stop the service from running during the current session, just from loading during startup. If you want to let it start again during system boot, type: +该命令不会停止当前的 SSH 会话,只会在启动的时候生效。如果你想要它跟随系统启动,输入: ``` sudo systemctl enable ssh ``` -#### Other SSH clients +#### 其他 SSH 客户端 -The tool `ssh` is included in most *nix systems, from Linux to macOS, but those are not the only options in existence, here are a couple of clients that can be used from other operating systems: +大多数 `*nix` 系统中都有 `ssh` 工具,从 Linux 到 macOS,但这些并不是唯一存在的选项,这里有几个可以在其他操作系统中使用的客户端: - * [PuTTY][16] is a free SSH client for Windows and it’s open source. It’s full of features and very easy to use. If you are connecting to your Ubuntu machine from a Windows station, PuTTY is a great option. - * [JuiceSSH][17] is an amazing tool for Android users. If you are on the go and need a mobile client to connect to your Ubuntu system, I amply recommend giving JuiceSSH a go. It’s been around for almost 10 years and it’s free to use. - * And finally, [Termius][18] is available for Linux, Windows, macOS, iOS, and Android. It has a free tier version and also several premium options. If you are running a lot of servers and working with teams sharing connections then Termius is a good option for you. + * [PuTTY][16] 是一个免费并开源的 Windows 系统上的 SSH 客户端。它功能强大并且简单易用。如果你从 Windows 系统上连接你的 Ubuntu 服务器,PuTTY 是最好的选择。 + * [JuiceSSH][17] 对 Android 用户来说是十分优秀的工具。如果你在旅途中需要一个移动客户端来连接你的 Ubuntu 系统,我强烈建议你试试 JuiceSSH。它已经出现了将近 10 年,并且可以免费使用。 + * 最后是 [Termius][18],它可用于 Linux、Windows、macOS、iOS 和 Android。它有一个免费版本和几个高级选项。如果你运行大量服务器并进行共享连接的团队合作,那么 Termius 对你来说是一个不错的选择。 +#### 总结 +在这份指导中,你可以在 Ubuntu 系统中设置 SSH 作为服务器,允许来自你电脑的远程安全的连接,便于你通过命令行开展工作。 -#### Wrapping Up +我们的网站—— Linux Handbook——有许多关于 SSH 的文章。在此我推荐以下文章: -With these instructions, you can set up SSH as a server service in our Ubuntu systems to be able to connect remotely and securely to your computer in order to work with the command line and perform any required task. + * [Linux SSH 入门教程][19] + * [利用 SSH 配置文件管理多个 SSH 连接][20] + * [向SSH服务器添加公钥以进行无密码身份验证][21] + * [保护你的 SSH 服务器的 SSH 加固技巧][22] -Our other website, Linux Handbook, has various informational articles on SSH. From here, I recommend reading the following: +如果你觉得它太难了,[Linux Handbook 网站有一个高级视频课程,为初学者解释 SSH][23] 以及动手实验。这将使你对该内容有更简化的知识。 - * [Getting started with SSH on Linux][19] - * [Using SSH Config file to manage multiple SSH connections][20] - * [Adding public key to SSH server for password less authentication][21] - * [SSH hardening tips][22] to secure your SSH server - - - -If you find it overwhelming, [Linux Handbook has a premium video course that explains SSH for beginners][23] along with hands-on labs to follow. This will give you a more streamlined knowledge of the topic. - -Happy remote working! +远程工作快乐! -------------------------------------------------------------------------------- From fe3cc39793d11e0dcfb762fe576e3de55531845d Mon Sep 17 00:00:00 2001 From: Donkey Date: Mon, 24 Oct 2022 13:52:37 +0800 Subject: [PATCH 1705/3123] translated --- ...30 Complete Guide to Configuring SSH in Ubuntu.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md index 8b0600506f..5bff24f778 100644 --- a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md +++ b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md @@ -17,14 +17,14 @@ SSH 的全称是 `Secure Shell` (安全的 Shell),它功能强大、效率 在这份新手指南中,你会学到: 1、SSH 的基本概念 2、设置 SSH 服务器(在你想要远程登录的系统上) - 3、从客户端(你的电脑)通过 SSH 连接 远程服务器 + 3、从客户端(你的电脑)通过 SSH 连接远程服务器 ### SSH 的基本概念 -在你看到配置过程前,让我们先了解一下 SSH 的全部基础概念。 +在学习配置过程前,让我们先了解一下 SSH 的全部基础概念。 -SSH 协议基于客户端-服务器(CS)架构。“服务器”允许“客户端”通过通信信进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。 +SSH 协议基于客户端-服务器(CS)架构。“服务器”允许“客户端”通过通信进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。 ![Image credit: SSH][1] @@ -118,12 +118,12 @@ sudo apt install openssh-client 要连接你的 Ubuntu 系统,你需要知道它的 IP 地址,然后使用 `ssh` 命令,就像这样: ``` -ssh [email protected] +ssh username@address ``` -将 **用户名**(username) 改为系统上真正的用户名,并将 **地址**(address) 改为你服务器的 IP 地址。 +将 **用户名**(username) 改为系统上真正的用户名,并将 **地址**(address) 改为你服务器的 IP 地址。 -如果你 [不知道 IP 地址][9],可以在服务器的终端输入 `ip a` 查看结果。应该会看到这样的结果: +如果你 [不知道 IP 地址][9],可以在服务器的终端输入 `ip a` 查看结果。应该会看到这样的结果: ![Using “ip a” to find the IP address][10] From 644a53e2d0a026a315c0c1b91b1fdd96bb1cf1b9 Mon Sep 17 00:00:00 2001 From: Donkey Date: Mon, 24 Oct 2022 13:54:01 +0800 Subject: [PATCH 1706/3123] mv dir --- .../tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md (100%) diff --git a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/translated/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md similarity index 100% rename from sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md rename to translated/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md From f7a863c7dbdb9c4ad58de0f1e942d2e08d590241 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Mon, 24 Oct 2022 15:52:35 +0800 Subject: [PATCH 1707/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20210811 My top 5 tips for setting up Terraform.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210811 My top 5 tips for setting up Terraform.md b/sources/tech/20210811 My top 5 tips for setting up Terraform.md index 143727fb09..a68ac0c3cf 100644 --- a/sources/tech/20210811 My top 5 tips for setting up Terraform.md +++ b/sources/tech/20210811 My top 5 tips for setting up Terraform.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/8/terraform-tips" [#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "cool-summer-021" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 60c7395c92a266015bc80650900484e6f421fe6c Mon Sep 17 00:00:00 2001 From: MareDevi Date: Mon, 24 Oct 2022 16:25:36 +0800 Subject: [PATCH 1708/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n open source design system to create new community logos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210426 How we built an open source design system to create new community logos.md b/sources/tech/20210426 How we built an open source design system to create new community logos.md index 81089c3c74..6032ddb852 100644 --- a/sources/tech/20210426 How we built an open source design system to create new community logos.md +++ b/sources/tech/20210426 How we built an open source design system to create new community logos.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/ansible-community-logos) [#]: author: (Fiona Lin https://opensource.com/users/fionalin) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (MareDevi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 12652c165c0ef75034abde587d2cbeb37ea9f5ae Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 24 Oct 2022 23:24:26 +0800 Subject: [PATCH 1709/3123] ALL @wxy https://linux.cn/article-15173-1.html --- ...20.1 ⭐️ Kubuntu 22.10 is Now Available!.md | 120 ++++++++++++++++++ ...20.1 ⭐️ Kubuntu 22.10 is Now Available!.md | 117 ----------------- 2 files changed, 120 insertions(+), 117 deletions(-) create mode 100644 published/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md delete mode 100644 sources/news/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md diff --git a/published/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md b/published/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md new file mode 100644 index 0000000000..0602812029 --- /dev/null +++ b/published/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md @@ -0,0 +1,120 @@ +[#]: subject: "Kubuntu 22.10 is Now Available!" +[#]: via: "https://news.itsfoss.com/kubuntu-22-10-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15173-1.html" + +Kubuntu 22.10 的新变化 +====== + +> Kubuntu 22.10 可能不是最令人兴奋的升级。但是,它包括了一些有用的变化。 + +![Kubuntu 22.10 现已发布][1] + +Kubuntu 是 Ubuntu 的一个官方版本,它在一个精致的 KDE 驱动的软件包中提供了很多功能。 + +Kubuntu 22.10 的发布带来了各种改进和一个 [KDE Plasma][2] 的更新版本。 + +让我们来看看这个版本的亮点。 + +### Kubuntu 22.10 有什么新变化? + +![Kubuntu 22.10 桌面][3] + +Kubuntu 22.10 带来了很多更新,其中一些重要的更新包括: + +- KDE Plasma 5.25 +- Linux 内核 5.19 +- PipeWire +- Firefox 104 +- Qt 5.15.6 + +> 💡 Kubuntu 22.10 将被支持九个月,直到 **2023 年 7 月**。如果你想要稳定而不是功能,你应该更喜欢使用 [LTS 版本][4]。 + +#### KDE Plasma 5.25 + +![Kubuntu 22.10 KDE 版本][5] + +尽管最近 [KDE Plasma 5.26][6] 已经发布了,但 Kubuntu 22.10 还是搭载了 KDE Plasma 5.25。 + +然而,KDE Plasma 5.25 与 5.24 相比仍然是一个重大的更新,它包含了很多改进,例如,加强了对触摸板/触摸屏的支持,升级了用户界面等等。 + +你可以阅读我们对 KDE Plasma 5.25 的报道来了解更多。 + +> **[KDE Plasma 5.25:颜色、主题和其他改进][15]** + +另外,你可以期待 KDE Plasma 5.26 作为一个小版本发布,而不是作为 Kubuntu 22.10 发布的一部分。 + +#### 默认采用 PipeWire + +像大多数基于 Ubuntu 22.10 的发行版一样,[PipeWire][7] 是这个版本的 Kubuntu 的默认音频/视频处理器。 + +它取代了 [PulseAudio][8],众所周知,它与 Ubuntu 22.10 不兼容。 + +#### Linux 内核 5.19 + +![Kubuntu 22.10 Linux 内核 5.19][9] + +Kubuntu 22.10 采用了最新的 Linux 内核 5.19,这应该会带来对 ARM SoC 和 Arc Alchemist GPU 的支持、Btrfs 的各种改进、对 AMD RDNA3 图形的初步支持等等。 + +#### 测试用的 Wayland 会话 + +![Kubuntu 22.10 Wayland 会话切换器][10] + +Kubuntu 22.10 具有对 Plasma Wayland 会话的初步支持,但它仅用于测试目的,并不是一个完整的集成。 + +![Kubuntu 22.10 Wayland 会话信息][11] + +#### 其他升级 + +其他一些更新包括: + +- 自定义桌面重点颜色 +- 默认浏览器是 Firefox 104 Snap +- Qt 5.15.6 +- LibreOffice 7.4 +- 改进的应用程序商店 + +要探索更多关于该版本的信息,请参考 [官方发布说明][12]。 + +### 下载 Kubuntu 22.10 + +你可以从 [Ubuntu 的中央镜像库][13] 或其 [官方网站][14] 下载最新的 ISO。 + +> **[Kubuntu 22.10][14]** + +*它的官方网站可能需要一段时间来提供 ISO。* + +💬 你对这个版本感到兴奋吗? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kubuntu-22-10-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/kubuntu-22-10-release.jpg +[2]: https://kde.org/plasma-desktop/ +[3]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Desktop.png +[4]: https://itsfoss.com/long-term-support-lts/ +[5]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_KDE_Version.png +[6]: https://news.itsfoss.com/kde-plasma-5-26-release/ +[7]: https://pipewire.org/ +[8]: https://www.freedesktop.org/wiki/Software/PulseAudio/ +[9]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Linux_Kernel.png +[10]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Wayland_Session.png +[11]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Wayland_Session_2.png +[12]: https://wiki.ubuntu.com/KineticKudu/ReleaseNotes/Kubuntu +[13]: https://cdimage.ubuntu.com/kubuntu/releases/22.10/release/ +[14]: https://kubuntu.org/getkubuntu/ +[15]: https://news.itsfoss.com/kde-plasma-5-25-release/ \ No newline at end of file diff --git a/sources/news/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md b/sources/news/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md deleted file mode 100644 index 25079076e9..0000000000 --- a/sources/news/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md +++ /dev/null @@ -1,117 +0,0 @@ -[#]: subject: "Kubuntu 22.10 is Now Available!" -[#]: via: "https://news.itsfoss.com/kubuntu-22-10-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kubuntu 22.10 is Now Available! -====== - -Kubuntu 22.10 may not be the most exciting upgrade. But, it includes useful changes! - -![Kubuntu 22.10 is Now Available!][1] - -Kubuntu is an official Ubuntu flavor that offers a lot of functionality in a refined KDE-powered package. - -The release of Kubuntu 22.10 promises various improvements and a newer version of [KDE Plasma][2]. - -Let us go through the highlights of this release. - -### Kubuntu 22.10: What's New? - -![kubuntu 22.10 desktop][3] - -Kubuntu 22.10 is bringing in a lot of updates, some of the important ones that you can expect are: - -- **KDE Plasma 5.25** -- **Linux Kernel 5.19** -- **PipeWire** -- **Firefox 104** -- **Qt 5.15.6** - -> 💡Kubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][4]. - -#### KDE Plasma 5.25 - -![kubuntu 22.10 kde version][5] - -Even though[KDE Plasma 5.26][6] was released recently, Kubuntu 22.10 ships with KDE Plasma 5.25. - -However, KDE Plasma 5.25 is still a major update over 5.24, which contained a lot of improvements such as, enhanced support for touchpads/touchscreens, upgrades to the user interface, and more. - -You can read our coverage of KDE Plasma 5.25 to learn more: - -Also, you can expect KDE Plasma 5.26 to come as a point release instead of being part of the launch of Kubuntu 22.10. - -#### PipeWire Default - -Like most Ubuntu 22.10-based distros, [PipeWire][7] is the default audio/video handler in this version of Kubuntu. - -It replaces [PulseAudio][8], known to not play nice with Ubuntu 22.10. - -#### Linux Kernel 5.19 - -![kubuntu 22.10 linux kernel 5.19][9] - -Kubuntu 22.10 features the latest Linux Kernel 5.19, this should lead to improved support for ARM SoCs, Arc Alchemist GPUs, various BTRFS improvements, initial support for AMD RDNA3 graphics, and more. - -#### Wayland Session for Testing - -![kubuntu 22.10 wayland session switcher][10] - -Kubuntu 22.10 features initial support for a Plasma Wayland session, but it is intended for testing purposes only and is not a complete integration. - -![kubuntu 22.10 wayland session info][11] - -#### Other Upgrades - -Some of the other updates include the following: - -- Ability to customize desktop accent color. -- Firefox 104 snap as the default browser. -- Qt 5.15.6 -- LibreOffice 7.4 -- Improved App Store. - -To explore more about the release, refer to the [official release notes][12]. - -### Download Kubuntu 22.10 - -You can download the latest ISO from [Ubuntu's central image repository][13] or its [official website][14]. - -[Kubuntu 22.10][14] - -It might take a while for its official website to make the ISO available. - -💬 Are you excited about this release? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kubuntu-22-10-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/kubuntu-22-10-release.jpg -[2]: https://kde.org/plasma-desktop/ -[3]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Desktop.png -[4]: https://itsfoss.com/long-term-support-lts/ -[5]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_KDE_Version.png -[6]: https://news.itsfoss.com/kde-plasma-5-26-release/ -[7]: https://pipewire.org/ -[8]: https://www.freedesktop.org/wiki/Software/PulseAudio/ -[9]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Linux_Kernel.png -[10]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Wayland_Session.png -[11]: https://news.itsfoss.com/content/images/2022/10/Kubuntu_22.10_Wayland_Session_2.png -[12]: https://wiki.ubuntu.com/KineticKudu/ReleaseNotes/Kubuntu -[13]: https://cdimage.ubuntu.com/kubuntu/releases/22.10/release/ -[14]: https://kubuntu.org/getkubuntu/ From eb16d125c02ad62d8866f2305e3f202554e07213 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 25 Oct 2022 00:10:29 +0800 Subject: [PATCH 1710/3123] ALL @wxy https://linux.cn/article-15174-1.html --- ...2.10 Release Has Some Interesting Upgrades!.md | 126 ++++++++++++++++++ ...2.10 Release Has Some Interesting Upgrades!.md | 123 ----------------- 2 files changed, 126 insertions(+), 123 deletions(-) create mode 100644 published/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md delete mode 100644 sources/news/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md diff --git a/published/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md b/published/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md new file mode 100644 index 0000000000..10ef5e9b6f --- /dev/null +++ b/published/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md @@ -0,0 +1,126 @@ +[#]: subject: "Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!" +[#]: via: "https://news.itsfoss.com/ubuntu-mate-22-10-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15174-1.html" + +Ubuntu MATE 22.10 的新变化 +====== + +> Ubuntu MATE 22.10 已经发布,其中有一些细微而有用的变化。来看看吧! + +![Ubuntu MATE 22.10 版本有一些有趣的升级!][1] + +Ubuntu MATE 是 [Ubuntu 官方版本][2] 之一,每次升级都会增加有趣的改进。 + +它的目标用户是那些既珍惜传统桌面的外观和感觉,又渴望现代操作系统的功能的用户。 + +Ubuntu MATE 22.10 版本增加了许多改进和功能,让我们来看看这些。 + +### Ubuntu MATE 22.10 的新变化 + +![Ubuntu MATE 22.10 桌面][3] + +基于非 LTS 版本的 [Ubuntu 22.10][4] ,Ubuntu MATE 22.10 带来了多项更新,一些关键的亮点包括: + +- 对 MATE 桌面的改进。 +- 新的 AI 墙纸。 +- PipeWire 是默认的音频服务器。 +- 新的 MATE 用户管理器。 +- Firefox 105 更新。 +- LibreOffice 7.4。 + +> 💡 注意,Ubuntu MATE 的升级通常包括更多的功能补充。但这一次,Martin Wimpress 一直致力于为 Debian MATE 版带来类似的体验。你可以在我们之前的报道中阅读更多细节。 + +> [准备好在 Debian Linux 上获得 Ubuntu MATE 体验吧!][15] + +#### MATE 桌面升级 + +![Ubuntu MATE 22.10 桌面视图][5] + +MATE 桌面收到了各种错误修复和对 Ayatana 指示器、MATE 面板的更新。 + +现在,你可以将小程序居中对齐,与通常的左右对齐选项一起。 + +这项功能将在 MATE 桌面 1.28 版中正式出现,但 Ubuntu MATE 团队在 MATE 桌面 1.27 版的基础上将其与这个版本一起推出。 + +#### MATE 用户管理器 + +![Ubuntu MATE 22.10 用户管理器][6] + +MATE 用户管理器是该发行版的一个新的补充,允许你添加、修改、删除用户账户。 + +有了它,你可以选择哪些用户可以成为管理员、设置自动登录、设置个人资料图片,以及管理组成员资格。对于有多个用户的计算机来说,这是一个相当方便和急需的功能。 + +#### 新的 AI 壁纸 + +![Ubuntu MATE 22.10 AI 壁纸][7] + +这个版本的另一大亮点是增加了新的 AI 生成的壁纸。 + +这些看起来很美 😍 + +鉴于人工智能生成的壁纸现在正大行其道,Ubuntu MATE 团队在 Ubuntu MATE 22.10 中加入了一批新的壁纸。 + +它是由 [Simon Butcher][8] 使用扩散模型创建的,用来描画 “捻角羚”。 + +#### Linux 内核 5.19 + +Ubuntu MATE 22.10 得益于 Linux 内核 5.19 带来的改进,对各种 ARM SoC、Arc Alchemist GPU 等提供了增强支持。 + +你可以阅读我们的相关报道以了解更多。 + +#### 🛠️ 其他变化和改进 + +与其他新版本一样,Ubuntu MATE 22.10 用 [PipeWire][10] 取代了 [PulseAudio][9],以获得更好的音频处理,并加入了额外的蓝牙编解码器,如 AAC、LDAC、aptX 和 aptX HD。 + +其他值得注意的变化包括: + +- 更新的应用程序包括:Firefox 105、LibreOffice 7.4、Celluloid 0.20 和 Evolution 3.46。 +- Ubuntu MATE HUD 支持 MATE、XFCE 和 Budgie,具有更多的配置能力。 + +如果你感到好奇,你可以查看 Ubuntu MATE 22.10 [官方发布说明][11]。 + +### 下载 Ubuntu MATE 22.10 + +你可以从 [Ubuntu 的中央镜像库][12] 或其 [官方网站][13] 下载最新的 ISO。 + +*它的官方网站/仓库可能需要一段时间来提供 ISO。* + +> 💡 Ubuntu MATE 22.10 将被支持九个月,直到 **2023 年 7 月** 。如果你想要稳定而不是功能,你应该更喜欢使用 [LTS 版本][14]。 + +> **[下载 Ubuntu MATE 22.10][13]** + +💬 _有兴趣尝试 Ubuntu MATE 22.10 吗?请在评论中告诉我你的想法。_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-mate-22-10-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-mate-22-10-release.jpg +[2]: https://itsfoss.com/which-ubuntu-install/ +[3]: https://news.itsfoss.com/content/images/2022/10/ubuntu-mate-22-10.png +[4]: https://news.itsfoss.com/ubuntu-22-10-features/ +[5]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_Desktop.png +[6]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_User_Manager.png +[7]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_AI_Wallpapers.png +[8]: https://twitter.com/simonjbutcher +[9]: https://www.freedesktop.org/wiki/Software/PulseAudio/ +[10]: https://pipewire.org/ +[11]: https://ubuntu-mate.org/blog/ubuntu-mate-kinetic-kudu-release-notes/ +[12]: https://cdimage.ubuntu.com/ubuntu-mate/releases/22.10/release/ +[13]: https://ubuntu-mate.org/download/ +[14]: https://itsfoss.com/long-term-support-lts/ +[15]: https://news.itsfoss.com/ubuntu-mate-debian/ \ No newline at end of file diff --git a/sources/news/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md b/sources/news/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md deleted file mode 100644 index 137a2f994a..0000000000 --- a/sources/news/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!" -[#]: via: "https://news.itsfoss.com/ubuntu-mate-22-10-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu MATE 22.10 Release Has Some Interesting Upgrades! -====== - -Ubuntu MATE 22.10 has arrived with subtle and useful changes. Take a lookie! - -![Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!][1] - -Ubuntu MATE is one of the [official Ubuntu flavours][2] that add interesting improvements with every upgrade. - -It is aimed at users who cherish the look and feel of a traditional desktop but also desire the functionality of a modern operating system. - -Ubuntu MATE 22.10 release adds a number of betterments and features, let us take a look at those. - -### Ubuntu MATE 22.10: What's New? - -![ubuntu mate 22.10 desktop][3] - -Based on the non-LTS release of [Ubuntu 22.10][4] '_Kinetic Kudu_', Ubuntu MATE 22.10 brings in multiple updates, some key highlights include: - -- **Improvements to MATE Desktop.** -- **New AI Wallpapers.** -- **PipeWire is the default audio server.** -- **New MATE User Manager.** -- **Firefox 105 update.** -- **LibreOffice 7.4.** - -> 💡Note that Ubuntu MATE upgrades usually include more feature additions. This time, **Martin Wimpress** has been working to bring a similar experience to the Debian MATE edition. You can read more details in our previous coverage. - -#### MATE Desktop Upgrades - -![ubuntu mate 22.10 desktop view][5] - -MATE desktop receives various bug fixes and updates to the **Ayatana indicators** and the **MATE Panel**. - -Now, you can align the applets to the **center** alongside the usual left and right alignment options. - -This feature officially arrives with **MATE Desktop 1.28 **release, but the Ubuntu MATE team has made it available with this release on top of **MATE Desktop 1.27**. - -#### MATE User Manager - -![ubuntu mate 22.10 user manager][6] - -The MATE user manager is a new addition to the distro, allowing you to add/modify/remove user accounts. - -With this, you can choose which users can be administrators, set up auto-login, set profile pictures, and manage group memberships. Pretty handy and a much-needed feature for computers with multiple users. - -#### New AI Wallpapers - -![ubuntu mate 22.10 ai wallpapers][7] - -Another big highlight of this release is the addition of new AI-generated wallpapers. - -These look beautiful! 😍 - -Seeing that AI-generated wallpapers are all the rage right now, the Ubuntu MATE team has included a new bunch of them with Ubuntu MATE 22.10. - -It was created by [Simon Butcher][8] using diffusion models to illustrate 'kudu' (Antelope). - -#### Linux Kernel 5.19 - -Ubuntu MATE 22.10 leverages the improvements brought forward by Linux Kernel 5.19, including enhanced support for various ARM SoCs, Arc Alchemist GPUs, and more. - -You can read our coverage of the same to learn more. - -#### 🛠️ Other Changes and Improvements - -As with every other new release, Ubuntu MATE 22.10 replaces [PulseAudio][9] with [PipeWire][10] for better audio handling and the inclusion of additional Bluetooth codecs such as AAC, LDAC, aptX, and aptX HD. - -Other notable changes include: - -- **Updated apps include Firefox 105, LibreOffice 7.4, Celluloid 0.20 and Evolution 3.46.** -- **Ubuntu MATE HUD supports MATE, XFCE, and Budgie with more configuration ability.** - -You can check out Ubuntu MATE 22.10 [official release notes][11] if you are curious. - -### Download Ubuntu MATE 22.10 - -You can download the latest ISO from [Ubuntu's central image repository][12] or its [official website][13]. - -It might take a while for its official website/repo to make the ISO available. - -> 💡Ubuntu MATE 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][14]. - -[Download Ubuntu MATE 22.10][13] - -💬 _Interested in trying Ubuntu MATE 22.10? Let me know your thoughts in the comments._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-mate-22-10-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-mate-22-10-release.jpg -[2]: https://itsfoss.com/which-ubuntu-install/ -[3]: https://news.itsfoss.com/content/images/2022/10/ubuntu-mate-22-10.png -[4]: https://news.itsfoss.com/ubuntu-22-10-features/ -[5]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_Desktop.png -[6]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_User_Manager.png -[7]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_MATE_22.10_AI_Wallpapers.png -[8]: https://twitter.com/simonjbutcher -[9]: https://www.freedesktop.org/wiki/Software/PulseAudio/ -[10]: https://pipewire.org/ -[11]: https://ubuntu-mate.org/blog/ubuntu-mate-kinetic-kudu-release-notes/ -[12]: https://cdimage.ubuntu.com/ubuntu-mate/releases/22.10/release/ -[13]: https://ubuntu-mate.org/download/ -[14]: https://itsfoss.com/long-term-support-lts/ From b96cde5c9503e2634dfe29bd8f6b1c91dfde52a0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 25 Oct 2022 08:14:33 +0800 Subject: [PATCH 1711/3123] translated --- ...u 22.10 and Make it Default Text Editor.md | 111 ------------------ ...u 22.10 and Make it Default Text Editor.md | 110 +++++++++++++++++ 2 files changed, 110 insertions(+), 111 deletions(-) delete mode 100644 sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md create mode 100644 translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md diff --git a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md deleted file mode 100644 index 321877f0f3..0000000000 --- a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md +++ /dev/null @@ -1,111 +0,0 @@ -[#]: subject: "Install Gedit on Ubuntu 22.10 and Make it Default Text Editor" -[#]: via: "https://itsfoss.com/install-gedit-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Install Gedit on Ubuntu 22.10 and Make it Default Text Editor -====== - -[GNOME has a brand new text editor][1] to replace the good old Gedit editor. - -While it was already available with GNOME 42, Ubuntu 22.04 relied on Gedit. - -This is changing in Ubuntu 22.10. GNOME Text Editor is the default here and Gedit is not even installed. - -![Searching for text editor only brings GNOME Text Editor][2] - -While the new editor is good enough, not everyone would like it. This is especially if you use Gedit extensively with additional plugins. - -If you are among those people, let me show you how to install Gedit on Ubuntu. I’ll also share how you can make it the default text editor. - -### Install Gedit on Ubuntu - -This is actually a no-brainer. While Gedit is not installed by default, it is still available in Ubuntu repositories. - -So, all you have to do is to use the apt command to install it: - -``` -sudo apt install gedit -``` - -Gedit is also available in the software center but it is the snap package. You could install that if you want. - -![Gedit is also available in Ubuntu’s Snap Store][3] - -#### Install Gedit Plugins (optional) - -By default, Gedit gives you the option to access a few plugins. You can enable or disable the plugins from the menu->preference->plugins. - -![Accessing plugins in Gedit][4] - -You should see the available plugins here. The installed or in-use plugins are checked. - -![See the available and installed plugins in Gedit][5] - -However, you can take the plugin selection to the next level by installing the gedit-plugins meta package. - -``` -sudo apt install gedit-plugins -``` - -This will give you access to additional plugins like bookmarks, bracket completion, Python console and more. - -![Additional Gedit plugins][6] - -**Tip**: If you notice that Gedit looks a bit out of place for the lack of around bottom corners, you can install a GNOME extension called [Round Bottom Corner][7]. This will force round bottom corners for all applications including Gedit. - -### Make Gedit the default text editor - -Alright! So you have installed Gedit but the text files still open in GNOME Text Editor with double click action. To open a file with Gedit, you need to right click and then select the ‘open with’ option. - -If you want Gedit to open text files all the time, you can set it as default. - -Right click on a text file and go with “open with” option. Select Gedit here and enable the “Always use for this file type” option from the bottom. - -![Set Gedit as the default text editor][8] - -### Remove Gedit - -Don’t feel Gedit is up to the mark? That’s rare, but I am not judging you. To remove Gedit from Ubuntu, use the following command: - -``` -sudo apt remove gedit -``` - -You may also try uninstalling it from the software center. - -### Conclusion - -GNOME Text Editor is the next-gen, created-from-scratch editor that blends well with the new GNOME. - -It’s good enough for simple text editing. However, Gedit has a plugin ecosystem that gives it more feature. - -For those who use it extensively for coding and other stuff, installing Gedit is still an option in Ubuntu. - -What about you? Will you stick with the default new text editor or would you go back to the good old Gedit? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-gedit-ubuntu/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/gnome-text-editor/ -[2]: https://itsfoss.com/wp-content/uploads/2022/10/text-editor-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/10/install-gedit-from-ubuntu-software-center.png -[4]: https://itsfoss.com/wp-content/uploads/2022/10/access-plugins-in-gedit.png -[5]: https://itsfoss.com/wp-content/uploads/2022/10/plugins-in-gedit.png -[6]: https://itsfoss.com/wp-content/uploads/2022/10/additional-plugins-gedit.png -[7]: https://extensions.gnome.org/extension/5237/rounded-window-corners/ -[8]: https://itsfoss.com/wp-content/uploads/2022/10/set-gedit-default.png diff --git a/translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md new file mode 100644 index 0000000000..2b2023b118 --- /dev/null +++ b/translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md @@ -0,0 +1,110 @@ +[#]: subject: "Install Gedit on Ubuntu 22.10 and Make it Default Text Editor" +[#]: via: "https://itsfoss.com/install-gedit-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +# 在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器 + +[GNOME 有一个全新的文本编辑器][1]来取代旧的 Gedit 编辑器。 + +虽然 GNOME 42 已经可以使用它,但 Ubuntu 22.04 依赖于 Gedit。 + +这在 Ubuntu 22.10 中发生了变化。 GNOME 文本编辑器是默认程序,甚至没有安装 Gedit。 + +![搜索文本编辑器只出现 GNOME 文本编辑器][2] + +虽然新编辑器足够好,但并不是每个人都喜欢它。如果你将 Gedit 与其他插件一起频繁使用,则尤其如此。 + +如果你属于这些人,让我向你展示如何在 Ubuntu 上安装 Gedit。我还将分享如何将其设为默认文本编辑器。 + +### 在 Ubuntu 上安装 Gedit + +这实际上是不费吹灰之力的。虽然默认未安装 Gedit,但它仍然可以在 Ubuntu 仓库中找到。 + +所以,你所要做的就是使用 apt 命令来安装它: + +``` +sudo apt install gedit +``` + +Gedit 也可以在软件中心中找到,但它是 snap 包。如果你愿意,你可以安装它。 + +![Gedit 也可以在 Ubuntu 的 Snap 商店中找到][3] + +#### 安装 Gedit 插件(可选) + +默认情况下,Gedit 为你提供访问一些插件的选项。你可以从 menu->preference->plugins 启用或禁用插件。 + +![在 Gedit 中访问插件][4] + +你可以在这里看到可用的插件。检查已安装或正在使用的插件。 + +![查看 Gedit 中可用和已安装的插件][5] + +但是,你可以通过安装 gedit-plugins 元数据包将插件选择提升到一个新的水平。 + +``` +sudo apt install gedit-plugins +``` + +这将使你可以访问其他插件,如书签、括号补全、Python 控制台等。 + +![其他 Gedit 插件][6] + +**提示**:如果你发现 Gedit 因缺少底角而显得有些格格不入,你可以安装一个名为 [Round Bottom Corner][7] 的 GNOME 扩展。这将为包括 Gedit 在内的所有应用强制圆底角。 + +### 使 Gedit 成为默认文本编辑器 + +好了!你已经安装了 Gedit,但文本文件仍然在双击操作后使用 GNOME 文本编辑器打开。要使用 Gedit 打开文件,你需要右键单击,然后选择“打开方式”选项。 + +如果你希望一直使用 Gedit 打开文本文件,你可以将其设置为默认程序。 + +右键单击文本文件并选择“打开方式”选项。在此处选择 Gedit 并从底部启用“始终用于此文件类型”选项。 + +![设置 Gedit 为默认文本编辑器][8] + +### 删除 Gedit + +觉得 Gedit 没达到预期么?这很少见,但我不会评判你。要从 Ubuntu 中删除 Gedit,请使用以下命令: + +``` +sudo apt remove gedit +``` + +你也可以尝试从软件中心卸载它。 + +### 总结 + +GNOME 文本编辑器是下一代从头开始创建的编辑器,它与新的 GNOME 完美融合。 + +对于简单的文本编辑来说已经足够了。然而,Gedit 有一个插件生态系统,赋予它更多功能。 + +对于那些将它广泛用于编码和其他事情的人来说,安装 Gedit 仍然是 Ubuntu 中的一个选项。 + +那你呢?你会坚持使用默认的新文本编辑器还是回到旧的 Gedit? + +--- + +via: https://itsfoss.com/install-gedit-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者 ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/gnome-text-editor/ +[2]: https://itsfoss.com/wp-content/uploads/2022/10/text-editor-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/10/install-gedit-from-ubuntu-software-center.png +[4]: https://itsfoss.com/wp-content/uploads/2022/10/access-plugins-in-gedit.png +[5]: https://itsfoss.com/wp-content/uploads/2022/10/plugins-in-gedit.png +[6]: https://itsfoss.com/wp-content/uploads/2022/10/additional-plugins-gedit.png +[7]: https://extensions.gnome.org/extension/5237/rounded-window-corners/ +[8]: https://itsfoss.com/wp-content/uploads/2022/10/set-gedit-default.png From 732e5ebcc244ef4601e5d1ae3c4bdd35dfbfcbac Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 25 Oct 2022 08:20:32 +0800 Subject: [PATCH 1712/3123] translating --- ... How to Install Python 3.10 in Ubuntu and Other Related Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md b/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md index 5477fc6c6b..8059afcab4 100644 --- a/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md +++ b/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-python-3-10-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 70c774398343dbee1f50ef7d429480da7b0169b0 Mon Sep 17 00:00:00 2001 From: CoWave Fall <105500745+CoWave-Fall@users.noreply.github.com> Date: Tue, 25 Oct 2022 10:04:29 +0800 Subject: [PATCH 1713/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?]=2020221015.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Enable=20and?= =?UTF-8?q?=20Access=20USB=20Drive=20in=20VirtualBox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md index f28ee2e5bd..edb15071c3 100644 --- a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md +++ b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CoWave-Fall" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -89,7 +89,7 @@ via: https://www.debugpoint.com/enable-usb-virtualbox/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[CoWave-Fall](https://github.com/CoWave-Fall) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fcedd6d9749de6d4f98a6371b09a15f0d1118c18 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 25 Oct 2022 10:22:09 +0800 Subject: [PATCH 1714/3123] RP @Donkey-Hao https://linux.cn/article-15175-1.html --- ...lete Guide to Configuring SSH in Ubuntu.md | 76 ++++++++++--------- 1 file changed, 39 insertions(+), 37 deletions(-) rename {translated/tech => published}/20210530 Complete Guide to Configuring SSH in Ubuntu.md (60%) diff --git a/translated/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/published/20210530 Complete Guide to Configuring SSH in Ubuntu.md similarity index 60% rename from translated/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md rename to published/20210530 Complete Guide to Configuring SSH in Ubuntu.md index 5bff24f778..44f76a5efa 100644 --- a/translated/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md +++ b/published/20210530 Complete Guide to Configuring SSH in Ubuntu.md @@ -3,40 +3,43 @@ [#]: author: (Chris Patrick Carias Stas https://itsfoss.com/author/chris/) [#]: collector: (lujun9972) [#]: translator: (Donkey-Hao) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15175-1.html) 在 Ubuntu 中配置 SSH 的完整指南 ====== -如今 SSH 已成为了登录远程服务器的默认方式。 +![](https://img.linux.net.cn/data/attachment/album/202210/25/102118u33grazpccrvxwdf.jpg) -SSH 的全称是 `Secure Shell` (安全的 Shell),它功能强大、效率高,并且使用主流的网络协议在两个远程终端之间建立连接。让我们不要忘记它名称的安全部分,SSH 会加密所有的通信流量,以防止如劫持、窃听等攻击,同时提供不同的身份认证方式和无数个配置选项。 +> 如今 SSH 已成为了登录远程服务器的默认方式。 + +SSH 的全称是 “安全的 ShellSecure Shell”,它功能强大、效率高,这个主流的网络协议用于在两个远程终端之间建立连接。让我们不要忘记它名称的“安全”部分,SSH 会加密所有的通信流量,以防止如劫持、窃听等攻击,同时提供不同的身份认证方式和无数个配置选项。 在这份新手指南中,你会学到: - 1、SSH 的基本概念 - 2、设置 SSH 服务器(在你想要远程登录的系统上) - 3、从客户端(你的电脑)通过 SSH 连接远程服务器 + - SSH 的基本概念 + - 设置 SSH 服务器(在你想要远程登录的系统上) + - 从客户端(你的电脑)通过 SSH 连接远程服务器 ### SSH 的基本概念 在学习配置过程前,让我们先了解一下 SSH 的全部基础概念。 -SSH 协议基于客户端-服务器(CS)架构。“服务器”允许“客户端”通过通信进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。 +SSH 协议基于客户端-服务器server-client(CS)架构。“服务器Server”允许“客户端Client”通过通信通道进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。 ![Image credit: SSH][1] -[OpenSSH][2] 是最流行的开源工具之一,在 Linux、BSD 和 Windows 系统上提供 SSH 功能。 +[OpenSSH][2] 是在 Linux、BSD 和 Windows 系统上提供 SSH 功能的最流行的开源工具之一。 想要成功配置 SSH,你需要: - 1、在服务器端部署 SSH 服务器组件(server components),由 `openssh-server` 包提供。 - 2、在你远程访问服务器的客户端上部署 SSH 客户端组件,由 `openssh-client` 包提供,大多数 Linux 和 BSD 发行版都已经预装好了。 + + - 在作为服务器的机器上部署 SSH 服务器组件,它由 `openssh-server` 包提供。 + - 在你远程访问服务器的客户端机器上部署 SSH 客户端组件,它由 `openssh-client` 包提供,大多数 Linux 和 BSD 发行版都已经预装好了。 区分服务器和客户端是十分重要的事情。或许你不想要你的 PC 作为 SSH 服务器,除非你有充分理由希望其他人通过 SSH 连接你的系统。 -普遍来说,你有一个专用的服务器系统。例如,一个 [允许 Ubuntu 的树莓派][3]。你启动 [树莓派的 SSH 服务][4],这样你可以在你 PC 中的终端,通过 SSH 控制并管理设备。 +通常来说,你有一个专用的服务器系统。例如,一个 [运行 Ubuntu 的树莓派][3]。你可以 [启用树莓派的 SSH 服务][4],这样你可以在你 PC 中的终端中,通过 SSH 控制并管理该设备。 有了这些信息,让我们看看如何在 Ubuntu 上设置 SSH 服务器。 @@ -45,11 +48,12 @@ SSH 协议基于客户端-服务器(CS)架构。“服务器”允许“客户 设置 SSH 并不复杂,只需要以下几步。 #### 前提 - 1、在服务器端拥有 `sudo` 权限的用户 - 2、可以下载所需包的互联网连接 - 3、你的网络中至少有另一个系统。可以是局域网中的另一台电脑,远程服务器或者主机中安装的虚拟机。 -_**再次强调,在你想要通过 SSH 远程登录的系统上安装 SSH 服务**_ + - 一个在服务器端拥有 `sudo` 权限的用户 + - 可以下载所需包的互联网连接 + - 在你的网络中至少有另一个系统。可以是局域网中的另一台电脑,远程服务器或者计算机中托管的虚拟机。 + +**再次强调,在你想要通过 SSH 远程登录的系统上安装 SSH 服务。** #### 第一步:安装所需包 @@ -71,13 +75,13 @@ sudo apt install openssh-server #### 第二步:检查服务器状态 -但你下载并安装完包后,SSH 服务器应该已经运行了,但是为了确保万无一失我们需要检查一下: +当你下载并安装完包后,SSH 服务器应该已经运行了,但是为了确保万无一失我们需要检查一下: ``` service ssh status ``` -你还可以使用 `systemd` 命令: +你还可以使用 `systemctl` 命令: ``` sudo systemctl status ssh @@ -93,9 +97,9 @@ sudo systemctl status ssh sudo systemctl enable --now ssh ``` -#### 第三步:运行 SSH 通过防火墙 +#### 第三步:允许 SSH 通过防火墙 -Ubuntu 带有名为 [UFW][8](简单的防火墙——UncomplicatedFirewall) 的防火墙,这是管理网络规则的 `iptables` 的一个接口。如果启动了防火墙,它可能会阻止你连接服务器。 +Ubuntu 带有名为 [UFW][8](简单的防火墙Uncomplicated Firewall)的防火墙,这是管理网络规则的 `iptables` 的一个接口。如果启动了防火墙,它可能会阻止你连接服务器。 想要配置 UFW 允许你的接入,你需要运行如下命令: @@ -103,7 +107,7 @@ Ubuntu 带有名为 [UFW][8](简单的防火墙——UncomplicatedFirewall) 的 sudo ufw allow ssh ``` -UFW 的运行状态可以通过运行`sudo ufw status` 来检查。 +UFW 的运行状态可以通过运行 `sudo ufw status` 来检查。 现在,我们的 SSH 服务器已经开始运行了,在等待来自客户端的连接。 @@ -121,23 +125,23 @@ sudo apt install openssh-client ssh username@address ``` -将 **用户名**(username) 改为系统上真正的用户名,并将 **地址**(address) 改为你服务器的 IP 地址。 +将 **用户名**(`username`)改为你的系统上的实际用户名,并将 **地址**(`address`)改为你服务器的 IP 地址。 如果你 [不知道 IP 地址][9],可以在服务器的终端输入 `ip a` 查看结果。应该会看到这样的结果: ![Using “ip a” to find the IP address][10] -可以看到我的 IP 地址是 **192.168.1.111**。让我们使用 **[[email protected]][11]** 格式进行连接。 +可以看到我的 IP 地址是 `192.168.1.111`。让我们使用 `username@address` 格式进行连接。 ``` -ssh [email protected] +ssh team@192.168.1.111 ``` -第一次连接 SSH 服务器时,它会请求添加主机。输入 `yes` 并回车即可。 +这是你第一次连接到该 SSH 服务器,它会请求添加主机。输入 `yes` 并回车即可。 ![First time connecting to the server][12] -SSH 会立即告诉你该主机已经被永久添加了,并要求你输入指定用户的口令,输入口令并再次按回车即可。 +SSH 会立即告诉你该主机已经被永久添加了,并要求你输入指定用户的密码,输入密码并再次按回车即可。 ![Host added, now type in the password][13] @@ -153,7 +157,7 @@ SSH 会立即告诉你该主机已经被永久添加了,并要求你输入指 ![Closing the connection with “exit”][15] -### 在 Ubuntu 中关闭并禁止 SSH Stopping and Disabling SSH in Ubuntu +### 在 Ubuntu 中关闭并禁止 SSH 如果你想要停止 SSH 服务,需要运行该命令: @@ -181,25 +185,23 @@ sudo systemctl enable ssh #### 其他 SSH 客户端 -大多数 `*nix` 系统中都有 `ssh` 工具,从 Linux 到 macOS,但这些并不是唯一存在的选项,这里有几个可以在其他操作系统中使用的客户端: +从 Linux 到 macOS,大多数 *nix 系统中都有 `ssh` 工具,但这并不是唯一的选项,这里有几个可以在其他操作系统中使用的客户端: - * [PuTTY][16] 是一个免费并开源的 Windows 系统上的 SSH 客户端。它功能强大并且简单易用。如果你从 Windows 系统上连接你的 Ubuntu 服务器,PuTTY 是最好的选择。 - * [JuiceSSH][17] 对 Android 用户来说是十分优秀的工具。如果你在旅途中需要一个移动客户端来连接你的 Ubuntu 系统,我强烈建议你试试 JuiceSSH。它已经出现了将近 10 年,并且可以免费使用。 - * 最后是 [Termius][18],它可用于 Linux、Windows、macOS、iOS 和 Android。它有一个免费版本和几个高级选项。如果你运行大量服务器并进行共享连接的团队合作,那么 Termius 对你来说是一个不错的选择。 + * [PuTTY][16] 是一个自由开源的 Windows 系统上的 SSH 客户端。它功能强大并且简单易用。如果你从 Windows 系统上连接你的 Ubuntu 服务器,PuTTY 是最好的选择。(LCTT 译注:切记从官方网站下载。) + * 对安卓用户来说,[JuiceSSH][17] 是十分优秀的工具。如果你在旅途中需要一个移动客户端来连接你的 Ubuntu 系统,我强烈建议你试试 JuiceSSH。它已经出现了将近 10 年,并且可以免费使用。 + * 最后是 [Termius][18],它可用于 Linux、Windows、macOS、iOS 和安卓。它有一个免费版本和几个付费选项。如果你运行大量服务器并进行共享连接的团队合作,那么 Termius 对你来说是一个不错的选择。 #### 总结 在这份指导中,你可以在 Ubuntu 系统中设置 SSH 作为服务器,允许来自你电脑的远程安全的连接,便于你通过命令行开展工作。 -我们的网站—— Linux Handbook——有许多关于 SSH 的文章。在此我推荐以下文章: +此,我推荐以下文章: * [Linux SSH 入门教程][19] * [利用 SSH 配置文件管理多个 SSH 连接][20] - * [向SSH服务器添加公钥以进行无密码身份验证][21] + * [向 SSH 服务器添加公钥以进行无密码身份验证][21] * [保护你的 SSH 服务器的 SSH 加固技巧][22] -如果你觉得它太难了,[Linux Handbook 网站有一个高级视频课程,为初学者解释 SSH][23] 以及动手实验。这将使你对该内容有更简化的知识。 - 远程工作快乐! -------------------------------------------------------------------------------- @@ -209,7 +211,7 @@ via: https://itsfoss.com/set-up-ssh-ubuntu/ 作者:[Chris Patrick Carias Stas][a] 选题:[lujun9972][b] 译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b3858adca96d55db549212cb6e7e69de1e2834a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Tue, 25 Oct 2022 18:53:44 +0800 Subject: [PATCH 1715/3123] translating --- ...0221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md index bc7bb57a60..07d01e2591 100644 --- a/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md +++ b/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/recover-arch-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3a5b6761ce9a354af23b89c2cb53bc361d34a237 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 26 Oct 2022 08:41:46 +0800 Subject: [PATCH 1716/3123] translated --- ...netes help solve automation challenges-.md | 69 ------------------- ...netes help solve automation challenges-.md | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 69 deletions(-) delete mode 100644 sources/tech/20221014 Can Kubernetes help solve automation challenges-.md create mode 100644 translated/tech/20221014 Can Kubernetes help solve automation challenges-.md diff --git a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md b/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md deleted file mode 100644 index 33c3834821..0000000000 --- a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "Can Kubernetes help solve automation challenges?" -[#]: via: "https://opensource.com/article/22/10/kubernetes-solve-automation-challenges" -[#]: author: "Rom Adams https://opensource.com/users/romdalf" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Can Kubernetes help solve automation challenges? -====== -Automation at the organization level has been an elusive goal, but Kubernetes might be able to change all that. - -I started my automation journey when I adopted Gentoo Linux as my primary operating system in 2002. Twenty years later, automation is not yet a done deal. When I meet with customers and partners, they share automation wins within teams, but they also describe the challenges to achieving similar success at an organizational level. - -Most IT organizations have the ability to provision a virtual machine end to end, reducing what used to be a four-week lead time to just five minutes. That level of automation is itself a complex workflow, requiring networking (IP address management, DNS, proxy, networking zones, and so on), identity access management, [hypervisor][2], storage, backup, updating the operating system, applying the latest configuration files, monitoring, security and hardening, and compliance benchmarking. Wow! - -It's not easy to address the business need for high velocity, scaling, and on-demand automation. For instance, consider the classic webshop or an online government service to file tax returns. The workload has well-defined peaks that need to be absorbed. - -A common approach for handling such a load is having an oversized server farm, ready to be used by a specialized team of IT professionals, monitoring the seasonal influx of customers or citizens. Everybody wants a just-in-time deployment of an entire stack. They want infrastructure running workloads within the context of a hybrid cloud scenario, using the model of "build-consume-trash" to optimize costs while benefiting from infinite elasticity. - -In other words, everybody wants the utopian "cloud experience." - -### Can the cloud really deliver? - -All is not lost, thanks mainly to the way [Kubernetes][3] has been designed. The exponential adoption of Kubernetes fuels innovation, displacing standard legacy practices for managing platforms and applications. Kubernetes requires the use of Everything-as-Code (EaC) to define the desired state of all resources, from simple compute nodes to TLS certificates. Kubernetes compels the use of three major design constructs: - -* A standard interface to reduce integration friction between internal and external components -* An API-first and API-only approach to standardize the CRUD (Create, Read, Update, Delete) operations of all its components -* Use of [YAML][4] as a common language to define all desired states of these components in a simple and readable way - -These three key components are essentially the same requirements for choosing an automation platform, at least if you want to ease adoption by cross-functional teams. This also blurs the separation of duties between teams, helping to improve collaboration across silos, which is a good thing! - -As a matter of fact, customers and partners adopting Kubernetes are ramping up to a state of hyper-automation. Kubernetes organically drives teams to adopt multiple [DevOps foundations and practices][5]—like EaC, [version control with Git][6], peer reviews, [documentation as code][7]—and encourages cross-functional collaboration. These practices help mature a team's automation skills, and they help a team get a good start in GitOps and CI/CD pipelines dealing with both application lifecycle and infrastructure. - -### Making automation a reality - -You read that right! The entire stack for complex systems like a webshop or government reporting can be defined in clear, understandable, universal terms that can be executed on any on-prem or cloud provider. An autoscaler with custom metrics can be defined to trigger a just-in-time deployment of your desired stack to address the influx of customers or citizens during seasonal peaks. When metrics are back to normal, and cloud compute resources don't have a reason to exist anymore, you trash them and return to regular operations, with a set of core assets on-prem taking over the business until the next surge. - -### The chicken and the egg paradox - -Considering Kubernetes and cloud-native patterns, automation is a must. But it raises an important question: Can an organization adopt Kubernetes before addressing the automation strategy? - -It might seem that starting with Kubernetes could inspire better automation, but that's not a foregone conclusion. A tool is not an answer to the problem of skills, practices, and culture. However, a well-designed platform can be a catalyst for learning, change, and cross-functional collaboration within an IT organization. - -### Get started with Kubernetes - -Even if you feel you missed the automation train, don't be afraid to start with Kubernetes on an easy, uncomplicated stack. Embrace the simplicity of this fantastic orchestrator and iterate with more complex needs once you've [mastered the initial steps][8]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges - -作者:[Rom Adams][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/romdalf -[b]: https://github.com/lkxed -[2]: https://www.redhat.com/en/topics/virtualization/what-is-a-hypervisor?intcmp=7013a000002qLH8AAM -[3]: https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM -[4]: https://opensource.com/article/21/9/yaml-cheat-sheet -[5]: https://opensource.com/resources/devops -[6]: https://opensource.com/life/16/7/stumbling-git -[7]: https://opensource.com/article/21/3/devops-documentation -[8]: https://opensource.com/article/17/11/getting-started-kubernetes diff --git a/translated/tech/20221014 Can Kubernetes help solve automation challenges-.md b/translated/tech/20221014 Can Kubernetes help solve automation challenges-.md new file mode 100644 index 0000000000..695da770ac --- /dev/null +++ b/translated/tech/20221014 Can Kubernetes help solve automation challenges-.md @@ -0,0 +1,69 @@ +[#]: subject: "Can Kubernetes help solve automation challenges?" +[#]: via: "https://opensource.com/article/22/10/kubernetes-solve-automation-challenges" +[#]: author: "Rom Adams https://opensource.com/users/romdalf" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kubernetes 能否帮助解决自动化挑战? +====== +组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 或许能够改变这一切。 + +当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时,我开始了我的自动化之旅。二十年后,自动化还没有完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化胜利,但他们也描述了在组织层面实现类似成功所面临的挑战。 + +大多数 IT 组织都能够端到端地配置虚拟机,从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、[hypervisor][2]、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试。哇! + +满足高速、可扩展和按需自动化的业务需求并不容易。例如,考虑使用经典的网上商店或在线政府服务来提交纳税申报表。工作负载有明确的峰值需要吸收。 + +处理此类负载的一种常见方法是拥有一个超大的服务器集群,以供 IT 专业人员的特定团队使用,监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载,使用“构建-消耗-垃圾”模型来优化成本,同时从无限弹性中受益。 + +换句话说,每个人都想要乌托邦式的“云体验”。 + +### 云真的能交付吗? + +一切都没有丢失,这主要归功于 [Kubernetes][3] 的设计方式。 Kubernetes 的指数级采用推动了创新,取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 Everything-as-Code (EaC) 来定义所有资源的期望状态,从简单的计算节点到 TLS 证书。 Kubernetes 强制使用三种主要的设计结构: + +* 一个标准接口,以减少内部和外部组件之间的整合问题 +* API 优先及仅 API 的方法来标准化其所有组件的 CRUD(创建、读取、更新、删除)操作 +* 使用 [YAML][4] 作为通用语言,以简单易读的方式定义这些组件的所有所需状态 + +这三个关键组成部分基本上是选择自动化平台的相同要求,至少如果你想让跨职能团队轻松采用。这也模糊了团队之间的职责分工,有助于提高跨孤岛的协作,这是一件好事! + +事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。 Kubernetes 有机地推动团队采用多种 [DevOps 基础和实践][5],如: EaC、[使用 Git 进行版本控制][6]、同行评审、[文档即代码][7]并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面获得良好的开端。 + +### 让自动化成为现实 + +你没看错!网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义,可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署,以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常,且云计算资源不再有存在的理由时,你将它们回收并恢复常规运营,一组核心资产在本地接管业务,直到下一次激增。 + +### 鸡和蛋的悖论 + +考虑到 Kubernetes 和云原生模式,自动化是必须的。但它提出了一个重要的问题:一个组织可以在解决自动化战略之前采用 Kubernetes 吗? + +似乎从 Kubernetes 开始可以激发更好的自动化,但这并不是一个定局。工具不是对技能、实践和文化问题的解决方案。但是,设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。 + +### 开始使用 Kubernetes + +即使你觉得自己错过了自动化列车,也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你[掌握了初始步骤][8],就可以拥抱这个出色的编排器的简单性,并根据更复杂的需求进行迭代。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges + +作者:[Rom Adams][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/romdalf +[b]: https://github.com/lkxed +[2]: https://www.redhat.com/en/topics/virtualization/what-is-a-hypervisor?intcmp=7013a000002qLH8AAM +[3]: https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM +[4]: https://opensource.com/article/21/9/yaml-cheat-sheet +[5]: https://opensource.com/resources/devops +[6]: https://opensource.com/life/16/7/stumbling-git +[7]: https://opensource.com/article/21/3/devops-documentation +[8]: https://opensource.com/article/17/11/getting-started-kubernetes From e0047ccd25a8c79cad23aba9bcc3535c934eca14 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 26 Oct 2022 09:05:29 +0800 Subject: [PATCH 1717/3123] translating --- ...21019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md b/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md index dd768effec..17c1593637 100644 --- a/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md +++ b/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-viber-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ffd2a492c6bc841a4ed8fd65b5c3426b588840d7 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Wed, 26 Oct 2022 11:30:51 +0800 Subject: [PATCH 1718/3123] =?UTF-8?q?Update=2020221020.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Ubuntu=20Budgie=2022.10=20Release=20Improves=20Cont?= =?UTF-8?q?rol=20Center=20and=20Removes=20Some=20GNOME=20Apps.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 Release Improves Control Center and Removes Some GNOME Apps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md b/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md index 18ddf82f0e..724a10dd87 100644 --- a/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md +++ b/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/ubuntu-budgie-22-10-release/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "littlebirdnest" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f56d2ee2d79506f4b3aeb4fd5a55cd59c667a62a Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Wed, 26 Oct 2022 14:00:45 +0800 Subject: [PATCH 1719/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Control Center and Removes Some GNOME Apps.md | 118 ------------------ ... Control Center and Removes Some GNOME Apps.md | 118 ++++++++++++++++++ 2 files changed, 118 insertions(+), 118 deletions(-) delete mode 100644 sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md create mode 100644 translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md diff --git a/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md b/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md deleted file mode 100644 index 724a10dd87..0000000000 --- a/sources/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md +++ /dev/null @@ -1,118 +0,0 @@ -[#]: subject: "Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps" -[#]: via: "https://news.itsfoss.com/ubuntu-budgie-22-10-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "littlebirdnest" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps -====== - -Ubuntu Budgie 22.10 is an interesting release which removes several GNOME apps, and adds other improvements. - -![Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps][1] - -[Ubuntu Budgie][2] is an official flavor of Ubuntu, which is popular for its traditional desktop interface and minimal software bloat. - -The release of Ubuntu Budgie 22.10 brings in a few crucial tweaks and additions. - -### 🆕 Ubuntu Budgie 22.10: What's New? - -![ubuntu budgie 22.10][3] - -Based on Ubuntu 22.10 'Kinetic Kudu', Ubuntu Budgie 22.10 features Budgie Desktop 10.6.4 and a host of other improvements. - -Some of the notable highlights include: - -- **Enhanced Budgie Control Center** -- **Updated Budgie Welcome app** -- **Replacing various GNOME-based apps** -- **Updated Translations** - -#### Budgie Desktop and Control Center - -![ubuntu budgie 22.10 desktop settings][4] - -Budgie Desktop has been updated to V10.6.4, which adds a new global option to control the spacing between applets and features various improvements to the workspace and clock applets. - -![ubuntu budgie 22.10 display color profiles][5] - -The Budgie Control Center has also received a bunch of tweaks, such as reworked display color profile support, revamped screen-sharing with support for [RDP][6] and [VNC][7], an option for fractional scaling of display, and more. - -#### Welcome App Updates - -![ubuntu budgie 22.10 welcome app][8] - -Ubuntu Budgie 22.10 features the updated [Budgie Welcome app][9] with improved translations and a few changes. - -#### Change in Default Apps - -The developers of Ubuntu Budgie have started replacing and removing GNOME-based apps in favor of MATE-based apps and other alternatives. - -They decided to do so, because of the inconsistent way GNOME-based apps look in Budgie alongside other apps with their rounded-off edges. - -The inconsistencies have been caused due to GNOME moving on to the Libadwaita library for its styling and theming needs. - -The Libadwaita library was a controversial addition to GNOME, that not many users liked, you can go through our coverage to learn more. - -Here are some of the apps that have been removed or replaced: - -- GNOME-Calculator replaced by MATE Calculator. -- GNOME-Calendar removed. -- GNOME System Monitor replaced by MATE System Monitor. -- GNOME Screenshot removed. -- GNOME Font Viewer replaced by [Font-Manager][10]. - -#### 🛠️ Other Changes - -Some of the other changes include: - -- **Rework of In-Built Theme** -- **Removal of PulseAudio in favor of PipeWire** -- **Native Screenshot Capability** -- **Support for WebP Images** -- **Ability to View Monitor's Refresh Rate** - -You can go through the [release notes][11] to know more. - -### 📥 Download Ubuntu Budgie 22.10 - -You can download the latest ISO from [Ubuntu's central image repository][12] or its [official website][13]. - -It might take a while for its official website to make the ISO available. - -[Download Ubuntu Budgie 22.10][13] - -> 💡Ubuntu Budgie 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][14]. - -💬 What do you think of this non-LTS release? Willing to give it a try? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-budgie-22-10-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-budgie-22-10-release.png -[2]: https://ubuntubudgie.org/ -[3]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10.png -[4]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Desktop_Settings.png -[5]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Color_Profiles.png -[6]: https://en.wikipedia.org/wiki/Remote_Desktop_Protocol -[7]: https://en.wikipedia.org/wiki/Virtual_Network_Computing -[8]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Welcome.png -[9]: https://ubuntubudgie.org/2022/02/quick-overview-of-budgie-welcome-application/ -[10]: https://itsfoss.com/font-manager/ -[11]: https://ubuntubudgie.org/2022/09/ubuntu-budgie-22-10-release-notes/ -[12]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/22.10/ -[13]: https://ubuntubudgie.org/downloads/ -[14]: https://itsfoss.com/long-term-support-lts/ diff --git a/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md b/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md new file mode 100644 index 0000000000..7b57756e4a --- /dev/null +++ b/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md @@ -0,0 +1,118 @@ +[#]: subject: "Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps" +[#]: via: "https://news.itsfoss.com/ubuntu-budgie-22-10-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "littlebirdnest" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu Budgie 22.10 版本改进了控制中心并删除了一些 GNOME 应用程序 +====== + +Ubuntu Budgie 22.10是一个有趣的版本,它删除了几个GNOME应用程序,并添加了其他改进。 + +![Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps][1] + +[Ubuntu Budgie][2] 是Ubuntu的官方风格,因其传统的桌面界面和最小的软件膨胀而广受欢迎。 + +Ubuntu Budgie 22.10的发布带来了一些关键的调整和补充。 + +### 🆕 Ubuntu Budgie 22.10: 有什么新内容? + +![ubuntu budgie 22.10][3] + +基于 Ubuntu 22.10 的“动态库杜”,Ubuntu Budgie 22.10 具有 Budgie 桌面 10.6.4 和许多其他改进。 + +一些值得注意的亮点包括: + +- **增强型budgie控制中心** +- **更新 Budgie 支持的应用** +- **替换各种基于 GNOME 的应用程序** +- **更新的翻译** + +#### Budgie桌面和控制中心 + +![ubuntu budgie 22.10 desktop settings][4] + +Budgie桌面以及更新到V10.6.4, 它添加了一个新的全局选项来控制小程序之间的间距,并对工作区和时钟小程序进行了各种改进。 + +![ubuntu budgie 22.10 display color profiles][5] + +Budgie控制中心也收到了一堆调整, 例如重新设计的显示颜色配置文件支持, 修改了对屏幕分享的支持如 [RDP][6] 和 [VNC][7], 用于显示缩放的选项,等等. + +#### 支持应用升级 + +![ubuntu budgie 22.10 welcome app][8] + +Ubuntu Budgie 22.10的功能升级了 [Budgie支持的应用][9]改善了翻译以及一些其他改进. + +#### 改成默认的应用 + +Ubuntu Budgie的开发人员已经开始替换和删除基于GNOME的应用程序,以支持基于MATE的应用程序和其他替代方案。 + +他们决定这样做,因为基于GNOME的应用程序在Budgie中的外观与其他具有圆角边缘的应用程序的外观不一致。 + +这些不一致是由于 GNOME 根据其样式和主题需求而转到Libadwaita库造成的。 + +Libadwaita 库是 GNOME 的一个有争议的补充,没有多少用户喜欢,你可以通过我们的报道来了解更多信息。 + +以下是一些已删除或替换的应用程序: + +- GNOME 计算器被 MATE 计算器取代。 +- GNOM 删除了日历。 +- GNOME 系统显示器已由MATE系统显示器取代。 +- GNOME 移除截图. +- GNOME [字体管理][10]替代了字体查看器。 + +#### 🛠️ 其他改变 + +其他改变包括以下: + +- **内置主题返工** +- **移除PulseAudio并支持PipeWire** +- **原生截图功能** +- **支持网络规划图像** +- **能够查看显示器的刷新率** + +你可以通过[发行说明][11]了解更多。 + +### 📥 下载 Ubuntu Budgie 22.10 + +你可以下载最新的ISO在[Ubuntu's 镜像中心仓库][12]或者它的[官方网站][13]。 + +其官方网站可能需要一段时间ISO才能够可用。 + +[下载 Ubuntu Budgie 22.10][13] + +> 💡Ubuntu Budgie 22.10 将支持9个月直到 **2023 6月 **. 如果你想使用稳定的功能,更应该选择 [LTS 版本][14]. + +💬 您如何看待这个非LTS版本?愿意尝试一下吗? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-budgie-22-10-release/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[littlebirdnest](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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ubuntu-budgie-22-10-release.png +[2]: https://ubuntubudgie.org/ +[3]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10.png +[4]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Desktop_Settings.png +[5]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Color_Profiles.png +[6]: https://en.wikipedia.org/wiki/Remote_Desktop_Protocol +[7]: https://en.wikipedia.org/wiki/Virtual_Network_Computing +[8]: https://news.itsfoss.com/content/images/2022/10/Ubuntu_Budgie_22.10_Welcome.png +[9]: https://ubuntubudgie.org/2022/02/quick-overview-of-budgie-welcome-application/ +[10]: https://itsfoss.com/font-manager/ +[11]: https://ubuntubudgie.org/2022/09/ubuntu-budgie-22-10-release-notes/ +[12]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/22.10/ +[13]: https://ubuntubudgie.org/downloads/ +[14]: https://itsfoss.com/long-term-support-lts/ From b7eb7968fd3a89dbcee82636935c596a412ae432 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Wed, 26 Oct 2022 14:59:21 +0800 Subject: [PATCH 1720/3123] translated --- ... After Installing Ubuntu 22.10 [With Bonus Tip].md | 197 ------------------ ... After Installing Ubuntu 22.10 [With Bonus Tip].md | 197 ++++++++++++++++++ 2 files changed, 197 insertions(+), 197 deletions(-) delete mode 100644 sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md create mode 100644 translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md diff --git a/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md b/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md deleted file mode 100644 index d9297a77b6..0000000000 --- a/sources/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md +++ /dev/null @@ -1,197 +0,0 @@ -[#]: subject: "10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]" -[#]: via: "https://www.debugpoint.com/things-to-do-ubuntu-22-10/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip] -====== - -**Here’s our recommended list of 10 things after installing Ubuntu 22.10 “Kinetic Kudu” (GNOME Edition).** - -![][1] - -Ubuntu 22.10 brings exciting new features such as GNOME 43, the latest Kernel, a newly re-designed tray menu, Files features, Pipewire and [many more][2]. - -I am sure you are excited to try them. - -But wait. - -Before you head over to enjoy a new installation of Ubuntu, here’s an assorted list of customization tips which you can’t miss. - -### 10 Things to Do After Installing Ubuntu 22.10 - -#### 1. Update your system - -The first thing you need to do after installing Ubuntu 22.10 is to update your system. Often, the latest ISO may not contain all the updates due to time differences. So, to update your system, oprn a terminal window and run the following commands. - -``` -sudo apt update && sudo apt upgrade -``` - -Once the commands are complete, you can proceed to the next steps. - -#### 2. Remove Firefox Snap and install Flatpak or deb - -Since Ubuntu 21.10 last year, the default web browser Firefox comes as a Snap package. Now, if you are an average user, this may not be a problem or a thing to worry about. But many users may not like the Snap package of Firefox for several reasons. For example, the startup time is slow. Unnecessary Snap update notifications when there is a backend update and so on. - -So, to completely remove Firefox as Snap, you can follow the guide [on this page][3] that I have written. It’s a little complex and may take time. And install a deb version of Firefox from PPA or use the [Flatpak version][4]. - -As I said, this is an optional tip; you may skip it if you want. - -#### 3. Install and Enable Flatpak - -While every distribution today ships Flatpak by default, Ubuntu does not. Because it promotes its own sandboxing technology Snap. - -But Flatpak applications are the best for everyone. It helps you to quickly install and use several applications without worrying about dependency and other things. - -Most of the Flatpak applications are present in a centralised repo @ Flathub. - -To enable Flatpak applications in Ubuntu 22.10, follow the below commands. - -``` -sudo apt install flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot -``` - -Also, if you want to learn more about this process, [read this nice guide][5], we published a while ago. - -#### 4. Review privacy settings - -I recommend you opt out of any data collection after installing Ubuntu. Everyone knows that it’s difficult to protect your privacy over the internet, no matter how hard you try. These little steps matter. - -To configure the privacy, open Settings and select Privacy. Then review the settings listed under privacy. - -Also, ensure to disable backend reporting to Ubuntu servers with your usage. Run the following command to do that. Unfortunately, there is no option in the settings to disable it. - -``` -sudo ubuntu-report -f send no -``` - -![Turn off location services in Ubuntu 22.10][6] - -#### 5. Explore GNOME 43 Features - -The most visual and functional change coming in this release is GNOME 43. This is going to impact everyone and your workflow. Because there are some fundamental and core changes. GNOME 43 brings a new pill-shaped tray menu and updated native applications with new features such as Files and GNOME Web. - -Do go over the detailed [GNOME 43 features][7] here to learn more. Or explore them yourself. - -![Quick Settings Demo in GNOME 43][8] - -#### 6. Ensure the audio works with Pipewire - -If you work with Audio primarily or your workflow deals with sound capture, playback and other stuff, then make sure your Audio works properly in Ubuntu 22.10, wired or via Bluetooth. - -Because there is a change in the audio server in this release for the first time in many years. The legacy PulseAudio is now replaced by the modern Pipewire. So it’s important for you to verify. - -#### 7. Install additional packages - -It’s important to ensure you can play all video and audio formats on your Ubuntu desktop. If you skipped the extra package installation during the setup, you could install them via the below commands. - -``` -sudo apt install ubuntu-restricted-extras -``` - -This should settle any video or audio playback problem in Ubuntu. Especially with GNOME Videos which can’t play anything by default. - -#### 8. Setup basic apps - -The base Ubuntu with GNOME comes with a very basic set of applications. Hence, it’s almost necessary for everyone to install applications before you use Ubuntu. - -Now, necessary apps are different for everyone due to diverse workflow. Hence, here’s a quick list of generic apps which I think you can go ahead and install since they are preety much common for all. - -- GIMP – Advanced photo editor -- VLC – Media play that plays anything without the need for additional codecs -- Leafpad – A lightweight text editor (even lightweight from default gedit) -- Synaptic – A far better package manager - -Command to install them: - -``` -sudo apt install -y gimp vlc leafpad synaptic -``` - -#### 9. Get some GNOME Extensions - -You can extend your GNOME 43’s functionality using several cool extensions. That includes customizing the top bar, tray, changing the adwaita accent colour further and more. So, to do that, make sure you install the GNOME Extension manager first via Flatpak using the command below. - -``` -flatpak install flathub com.mattjakeman.ExtensionManager -``` - -And once you do, you can go ahead with any extensions you want by searching for them in the above app. However, here’s a quick set of necessary extensions which I feel are perfect for your brand-new Ubuntu desktop. You can simply search with these names in the Extension manager apps. - -- Caffeine -- Custom Hot Corners -- Dash to Dock -- Blur my shell -- Gradients -- Hide Activities Button -- Net speed simplified - -#### 10. Prepare backup - -Last but not least, make sure you prepare for backup from the beginning. We always feel the necessity for backup when we run into difficult situations. To do that, the ideal app is Timeshift – which is easy to install and use. - -Here’s the set of commands you can run from the terminal to install. And after installation, you can open and follow the on-screen instructions to set up a backup. - -``` -sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift -``` - -### Bonus Tips - -If you want to customize your new Ubuntu installation further, here are some bonus tips for you. - -#### Install nice fonts - -Fonts impact everything. It’s one of the small yet impactful settings. However, Ubuntu comes with a default “Ubuntu regular” font, which is also good. - -But you can also go ahead and install some nice fonts from Ubuntu’s official repo. Here is some command to install them. - -``` -sudo apt install fonts-roboto fonts-cascadia-code fonts-firacode -``` - -After installation, you can change the font using the [GNOME Tweak tool][9]. - -#### Install TLP - -You must take care of your laptop battery if you are a heavy laptop user. While no battery is everlasting, you can still take some steps to ensure it lasts longer. The TLP is one of the best programs available in Linux, which helps to do that automatically. All you need to do is install it using the following command and run. - -``` -sudo apt install tlp -``` - -As per the recommendation, always keep the battery strength between 50% to 80%. Don’t overcharge or let it discharge below 50%. Don’t keep it plugged into power continuously. - -### Wrapping Up - -So, there you have it. Ten gettings started tips with some bonus for your Ubuntu desktop journey. - -I hope this helps and that you get to install & tweak your desktop with further customization. That said, do let me know what is your best after-install tips in Ubuntu in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/things-to-do-ubuntu-22-10/ - -作者:[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/10/u2210-things-hd-1024x576.jpg -[2]: https://www.debugpoint.com/ubuntu-22-10/ -[3]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ -[4]: https://flathub.org/apps/details/org.mozilla.firefox -[5]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ -[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/Turn-off-location-services-in-Ubuntu-22.10.jpg -[7]: https://www.debugpoint.com/gnome-43/ -[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-Settings-Demo-in-GNOME-43.gif -[9]: https://www.debugpoint.com/customize-your-ubuntu-desktop-using-gnome-tweak/ diff --git a/translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md b/translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md new file mode 100644 index 0000000000..3520184c13 --- /dev/null +++ b/translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md @@ -0,0 +1,197 @@ +[#]: subject: "10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip]" +[#]: via: "https://www.debugpoint.com/things-to-do-ubuntu-22-10/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +安装 Ubuntu 22.10 后要做的 10 件事 +====== + +**以下是我们安装 Ubuntu 22.10 “Kinetic Kudu”(GNOME 版)后,推荐做的 10 件事列表。** + +![][1] + +Ubuntu 22.10 带来了很多令人兴奋的新功能,例如 GNOME 43、最新的内核、重新设计的托盘菜单、文件功能和 Pipewire 等 [新功能][2]。 + +我相信你已经迫不及待地想尝试 Ubuntu 22.10 上的这些新功能了。 + +但是请先等一等。 + +在你前往享受你新安装的 Ubuntu 22.10 之前,我要向你推荐一个不容错过的 Ubuntu 定制技巧列表。 + +### 安装 Ubuntu 22.10 后要做的 10 件事 + +#### 1、更新你的系统 + +安装好 Ubuntu 22.10 后,第一件要做的事就是更新你的系统。因为时差的原因,最新的 ISO 镜像通常不会包括所有的系统更新。所以,你要打开一个终端窗口,并运行以下命令,来更新你的系统。 + +``` +sudo apt update && sudo apt upgrade +``` + +上述命令执行完成后,你就可以进行下一步啦。 + +#### 2、删除 Firefox Snap,并安装 Flatpak 或者 deb 版本的 Firefox + +自去年发布的 Ubuntu 21.10 版本以来,默认的网页浏览器 Firefox 开始以 Snap 软件包的形式出现。如果你是普通用户,这可能不是一个问题或者需要担心的事情。但是出于几个原因,例如 Snap 软件包的 Firefox 启动时间较长、且当 Firefox 有后端更新时,会有不必要的 Snap 更新通知等等原因,导致许多用户不太喜欢 Firefox 的 Snap 软件包。 + +因此,你可以按照 [我写的另一篇操作指南][3],来完全删除 Firefox 的 Snap 软件包。这一过程有点复杂,需要花费一点时间。删除完成后,再从个人软件包存档(PPA)安装 deb 版本的 Firefox,或者使用 [Flatpak 版本][4] 的 Firefox。 + +这是一个可选的动作,你也可以跳过这一步骤。 + +#### 3、安装并启用 Flatpak + +虽然,几乎所有最近的 linux 发行版都会默认安装 Flatpak,但是 Ubuntu 并没有默认安装 Flatpak,这是因为 Ubuntu 使用了它自己的沙箱技术 Snap。 + +但 Flatpak 这一应用程序还是最适合于每个人。Flatpak 能够帮助你快速安装多个应用程序,并在使用过程中无需担心依赖性和其他事情。 + +大多数 Flatpak 应用程序都在集中的仓库 @ Flathub 中。 + +要在 Ubuntu 22.10 中启用 Flatpak 应用程序,请按照以下命令进行操作。 + +``` +sudo apt install flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +如果你想进一步了解关于此安装过程的更多信息,请阅读我们不久前发布的 [指南][5]。 + +#### 4、查看隐私设置 + +我建议你在安装 Ubuntu 后,手动退出任何数据收集项。大家都知道,无论怎么努力尝试,在互联网上保护自己的隐私都很困难。因此,这些小步骤很重要。 + +要配置隐私项,请打开设置并选择**隐私**。然后查看隐私菜单下列出的项目。 + +此外,请确保禁用对 Ubuntu 服务器的后端报告。需要运行以下命令来手动禁用,因为在设置中没有禁用它的选项。 + +``` +sudo ubuntu-report -f send no +``` + +![Turn off location services in Ubuntu 22.10][6] + +#### 5、探索 GNOME 43 的功能 + +在 Ubuntu 22.10 版本中,最具视觉和功能性的变化是 GNOME 43。因为 GNOME 43 有一些根本性和核心变化,所以它会影响每个人和他们的工作。GNOME 43 带来了一个新的药丸形状的托盘菜单,并更新了具有文件和 GNOME Web 等新功能的原生应用程序。 + +请查看更为详细的 [GNOME 43 功能][7] 一文,以了解更多信息,或者你也可以自己探索 GNOME 43。 + +![Quick Settings Demo in GNOME 43][8] + +#### 6、确保音频与 Pipewire 配合使用 + +如果你经常使用音频,或者你的工作范围涉及到声音捕获、播放等内容,请确保在 Ubuntu 22.10 中,你的音频在有线或蓝牙情况下都能正常工作。 + +因为 Ubuntu 22.10 这个版本中的音频服务器是多年来第一次发生了变化,传统的 PulseAudio 被现代的 Pipewire 所取代。因此,请务必进行验证音频是否能正常使用。 + +#### 7、安装其他软件包 + +确保你可以在 Ubuntu 桌面上,播放所有视频和音频格式是很重要的。如果你在设置期间跳过了额外的软件包安装,可以通过以下命令进行安装。 + +``` +sudo apt install ubuntu-restricted-extras +``` + +这可以解决 Ubuntu 中的任何视频或音频的播放问题,特别是 GNOME 视频无法播放的情况(因为GNOME 视频在默认情况下将无法播放任何内容)。 + +#### 8、安装基本的应用程序 + +带有 GNOME 的基础 Ubuntu 版本只有非常基本的应用程序。因此,在你使用 Ubuntu 之前,你需要安装一些其他必要的应用程序。 + +由于每个人的工作范围不同,每个人所需的应用程序也都不同。因此,在这里我仅提供一个通用的应用程序的列表,我认为你可以把这些应用程序都安装上,因为这些应用程序对所有人来说都很常用。 + +- GIMP – 进阶的照片编辑器 +- VLC – 无需额外编解码器即可播放任何内容的媒体播放器 +- Leafpad – 轻量级文本编辑器(甚至比默认的文本编辑器 gedit 还要更轻量级) +- Synaptic – 更好的软件包管理器 + +安装这些应用程序的命令: + +``` +sudo apt install -y gimp vlc leafpad synaptic +``` + +#### 9、获取一些 GNOME 扩展 + +你可以使用几个很酷的扩展程序,来扩展 GNOME 43 的功能,包括自定义顶部栏、托盘、更改 adwaita 外观等等。首先,使用下面的命令通过 Flatpak 来安装 GNOME 扩展管理器。 + +``` +flatpak install flathub com.mattjakeman.ExtensionManager +``` + +安装完成后,你就可以在 GNOME 扩展管理器中搜索你想要的任何扩展了。以下是一些必要扩展,你可以用它们来快速扩展 GNOME 43 的功能,我认为它们非常适合你全新的 Ubuntu 桌面。你只需在扩展管理器应用程序中,搜索这些名称即可。 + +- Caffeine +- Custom Hot Corners +- Dash to Dock +- Blur my shell +- Gradients +- Hide Activities Button +- Net speed simplified + +#### 10、准备备份 + +我们总是在我们遇到困难时,才觉得有必要备份。所以,请确保从一开始你就为备份做好了准备。理想的备份应用程序是 Timeshift,它很容易安装和使用。 + +以下是你可以从终端安装 Timeshift 的一组命令。安装完成后,你可以打开 Timeshift,并按照屏幕上的说明,设置备份了。 + +``` +sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift +``` + +### 额外小贴士 + +如果你想进一步定制你新安装的 Ubuntu 系统,以下是一些额外的小贴士。 + +#### 安装漂亮的字体 + +字体是一个很小却影响很大的设置项。虽然,Ubuntu 自带有好用的“Ubuntu regular”字体。 + +但是,你也可以从 Ubuntu 的官方仓库中安装一些其他漂亮的字体。以下是安装字体的一些命令。 + +``` +sudo apt install fonts-roboto fonts-cascadia-code fonts-firacode +``` + +安装完成后,你可以使用 [GNOME Tweak 工具][9],来更改字体。 + +#### 安装 TLP + +如果你经常使用笔记本电脑,那么你要好好爱惜电脑的电池。虽然电池用久了总是会损坏的,但你可以采取一些步骤,来减缓电池的老化。TLP 是 Linux 中自动优化电池使用、减缓电池老化的最好的程序之一。你可以使用以下命令来安装 TLP。 + +``` +sudo apt install tlp +``` + +我建议你将电池的电量始终保持在 50% 至 80% 之间。不要过度充电或让电池电量消耗到 50% 以下,也不要给电脑连续插电。 + +### 总结 + +以上就是安装桌面 Ubuntu 22.10 后要做的 10 件事啦。 + +我希望这篇文章会对你有帮助,你能够通过本文的方法来定制和调整你的 Ubuntu 桌面。那么你认为在安装好 Ubuntu 后,什么事是最推荐做的呢?请在评论区中告诉我吧。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/things-to-do-ubuntu-22-10/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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/10/u2210-things-hd-1024x576.jpg +[2]: https://www.debugpoint.com/ubuntu-22-10/ +[3]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ +[4]: https://flathub.org/apps/details/org.mozilla.firefox +[5]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/Turn-off-location-services-in-Ubuntu-22.10.jpg +[7]: https://www.debugpoint.com/gnome-43/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/Quick-Settings-Demo-in-GNOME-43.gif +[9]: https://www.debugpoint.com/customize-your-ubuntu-desktop-using-gnome-tweak/ From c2e501088db4a34c96292309e16a51a68ff07bce Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 26 Oct 2022 15:17:26 +0800 Subject: [PATCH 1721/3123] RP @cool-summer-021 https://linux.cn/article-15178-1.html --- ...Java serverless functions in Kubernetes.md | 124 +++++++----------- 1 file changed, 50 insertions(+), 74 deletions(-) rename {translated/tech => published}/20210604 Optimize Java serverless functions in Kubernetes.md (59%) diff --git a/translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md b/published/20210604 Optimize Java serverless functions in Kubernetes.md similarity index 59% rename from translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md rename to published/20210604 Optimize Java serverless functions in Kubernetes.md index 2f8a5e4e81..ed41d62c82 100644 --- a/translated/tech/20210604 Optimize Java serverless functions in Kubernetes.md +++ b/published/20210604 Optimize Java serverless functions in Kubernetes.md @@ -3,48 +3,42 @@ [#]: author: (Daniel Oh https://opensource.com/users/daniel-oh) [#]: collector: (lujun9972) [#]: translator: (cool-summer-021) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15178-1.html) 优化 Kubernetes 中的 Java 无服务器函数 ====== -在 Kubernetes 中以更快的启动速度和更小的内存占用运行无服务器函数 -![Ship captain sailing the Kubernetes seas][1] +> 在 Kubernetes 中运行无服务器函数时,实现更快的启动速度和更小的内存占用。 -由于运行上千个应用程序集群所耗费的资源多,令它实现较少工作节点和资源占用所需成本也较高,所以在使用 [Kubernetes][2] 时,快速启动和较少的内存占用是至关重要的。在 Kubernetes 平台运行容器化微服务时,内存占用是比吞吐量更重要的考量因素,这是因为: - - * 由于需要持续运行,所以耗费资源更多(不同于 CPU 周期) - * 微服务令管理成本成倍增加 - * 一个庞大的应用程序变为若干个微服务的情况(例如20个微服务占用的存储空间一共有20GB) +![](https://img.linux.net.cn/data/attachment/album/202210/26/151603a4a44w1a71zk8b11.jpg) +由于运行上千个应用程序容器荚Pod所耗费的资源多,令它实现较少工作节点和资源占用所需成本也较高,所以在使用 [Kubernetes][2] 时,快速启动和较少的内存占用是至关重要的。在 Kubernetes 平台运行容器化微服务时,内存占用是比吞吐量更重要的考量因素,这是因为: + * 由于需要持续运行,所以耗费资源更多(不同于 CPU 占用) + * 微服务令开销成本成倍增加 + * 一个单体应用程序变为若干个微服务的情况(例如 20 个微服务占用的存储空间约有 20GB) 这些情况极大影响了无服务器函数的发展和 Java 部署模型。到目前为止,许多企业开发人员选择 Go、Python 或 Node.js 这些替代方案来解决性能瓶颈,直到出现了 [Quarkus][3] 这种基于 kubernetes 的原生 Java 堆栈,才有所改观。本文介绍如何在使用了 Quarkus 的 kubernetes 平台上进行性能优化,以便运行无服务器函数。 ### 容器优先的设计理念 -由于 Java 生态系统中传统的框架都要进行框架的初始化,包括配置文件的处理、classpath 的扫描、类加载、注解的处理以及构建元模型,这些过程都是必不可少的,所以它们都比较耗费资源。如果使用了几种不同的框架,所耗费的资源也是成倍增加。 +由于 Java 生态系统中传统的框架都要进行框架的初始化,包括配置文件的处理、`classpath` 的扫描、类加载、注解的处理以及构建元模型,这些过程都是必不可少的,所以它们都比较耗费资源。如果使用了几种不同的框架,所耗费的资源也是成倍增加。 -Quarkus 通过“向左移动”,把所有的资源开销大的操作都转移到构建阶段,解决了这些 Java 性能问题。在构建阶段进行代码和框架分析、字节码转换和动态元模型生成,而且只有一次,结果是:运行时可执行文件经过高度优化,启动非常快,不需要经过那些传统的启动过程,全过程只在构建阶段执行一次。 +Quarkus 通过“左移shifting left”,把所有的资源开销大的操作都转移到构建阶段,解决了这些 Java 性能问题。在构建阶段进行代码和框架分析、字节码转换和动态元模型生成,而且只有一次,结果是:运行时可执行文件经过高度优化,启动非常快,不需要经过那些传统的启动过程,全过程只在构建阶段执行一次。 ![Quarkus Build phase][4] -(Daniel Oh, [CC BY-SA 4.0][5]) - -更重要的是:Quarkus 支持构建原生可执行文件,它具有良好性能,包括快速启动和极小的 RSS 内存占用,跟传统的云原生 Java 栈相比,具备即时扩展的能力和高密度的内存利用。 +更重要的是:Quarkus 支持构建原生可执行文件,它具有良好性能,包括快速启动和极小的驻留集大小resident set size(RSS)内存占用,跟传统的云原生 Java 栈相比,具备即时扩展的能力和高密度的内存利用。 ![Quarkus RSS and Boot Time Metrics][7] -(Daniel Oh, [CC BY-SA 4.0][5]) +这里有个例子,展示如何使用 Quarkus 将一个 [Java 无服务器][8] 项目构建为本地可执行文件。 -这里有个例子,展示如何使用 Quarkus 将一个 [Java 无服务器][8]项目构建为本地可执行文件。 - -### 1\. 使用 Quarkus 创建无服务器 Maven 项目 - -以下命令生成一个 Quarkus 项目,(例如`quarkus-serverless-native`)以此创建一个简单的函数: +### 1、使用 Quarkus 创建无服务器 Maven 项目 +以下命令生成一个 Quarkus 项目,(例如 `quarkus-serverless-native`)以此创建一个简单的函数: ``` $ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \ @@ -53,13 +47,12 @@ $ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \        -DclassName="org.acme.getting.started.GreetingResource" ``` -### 2\. 构建一个本地可执行文件 +### 2、构建一个本地可执行文件 你需要使用 GraalVM 为 Java 程序构建一个本地可执行文件。你可以选择 GraalVM 的任何发行版,例如 [Oracle GraalVM Community Edition (CE)][9] 或 [Mandrel][10](Oracle GraalVM CE 的下游发行版)。Mandrel 是为支持 OpenJDK 11 上的 Quarkus-native 可执行文件的构建而设计的。 打开 `pom.xml`,你将发现其中的 `native` 设置。你将使用它来构建本地可执行文件。 - ```     @@ -71,51 +64,45 @@ $ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \ ``` -> **注意:** 你可以在本地安装 GraalVM 或 Mandrel 发行版。你也可以下载 Mandrel 容器映像来构建它(像我那样),因此你还需要在本地运行一个容器引擎(例如 Docker)。 +> **注意:** 你可以在本地安装 GraalVM 或 Mandrel 发行版。你也可以下载 Mandrel 容器映像来构建它(像我那样),因此你还需要在本地运行一个容器引擎(例如 Docker)。 假设你已经打开了容器运行时,此时需要运行一下 Maven 命令: -使用 [Docker][11] 作为容器引擎 - +使用 [Docker][11] 作为容器引擎: ``` $ ./mvnw package -Pnative \ --Dquarkus.native.container-build=true \ --Dquarkus.native.container-runtime=docker + -Dquarkus.native.container-build=true \ + -Dquarkus.native.container-runtime=docker ``` -使用 [Podman][12] 作为容器引擎 - +使用 [Podman][12] 作为容器引擎: ``` $ ./mvnw package -Pnative \ --Dquarkus.native.container-build=true \ --Dquarkus.native.container-runtime=podman + -Dquarkus.native.container-build=true \ + -Dquarkus.native.container-runtime=podman ``` 输出信息结尾应当是 `BUILD SUCCESS`。 ![Native Build Logs][13] -(Daniel Oh, [CC BY-SA 4.0][5]) - 不借助 JVM 直接运行本地可执行文件: - ``` -`$ target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner` +$ target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner ``` 输出信息类似于: - ``` -__  ____  __  _____   ___  __ ____  ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   -\--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/   -INFO  [io.quarkus] (main) quarkus-serverless-native 1.0.0-SNAPSHOT native -(powered by Quarkus xx.xx.xx.) Started in 0.019s. Listening on: +__ ____ __ _____ ___ __ ____ ______ + --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ + -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ +--\___\_\____/_/ |_/_/|_/_/|_|\____/___/ +INFO [io.quarkus] (main) quarkus-serverless-native 1.0.0-SNAPSHOT native +(powered by Quarkus xx.xx.xx.) Started in 0.019s. Listening on: http://0.0.0.0:8080 INFO [io.quarkus] (main) Profile prod activated. INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy] ``` @@ -124,14 +111,12 @@ INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy] 使用 Linux 的 `ps` 工具检测一下,结果内存占用还是很低。检测的方法是:在应用程序运行期间,另外打开一个终端,运行如下命令: - ``` -`$ ps -o pid,rss,command -p $(pgrep -f runner)` +$ ps -o pid,rss,command -p $(pgrep -f runner) ``` 输出结果类似于: - ```   PID    RSS COMMAND 10246  11360 target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner @@ -141,7 +126,6 @@ INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy] > **注意:** 各种应用程序(包括 Quarkus)的驻留集大小和内存占用,都因运行环境而异,并随着应用程序载入而上升。 - 你也可以使用 REST API 访问这个函数。输出结果应该是 `Hello RESTEasy`: ``` @@ -149,18 +133,16 @@ $ curl localhost:8080/hello Hello RESTEasy ``` -### 3\. 把函数部署到 Knative 服务 - -如果你还没有创建命名空间,现在就在 [OKD][15] (OpenShift Kubernetes 发行版)[创建一个命名空间][14](例如 `quarkus-serverless-native`),进而把这个本地可执行文件部署为无服务器函数。然后添加 `quarkus-openshift` 扩展: +### 3、把函数部署到 Knative 服务 +如果你还没有创建命名空间,现在就在 [OKD][15](OpenShift Kubernetes 发行版)[创建一个命名空间][14](例如 `quarkus-serverless-native`),进而把这个本地可执行文件部署为无服务器函数。然后添加 `quarkus-openshift` 扩展: ``` -`$ ./mvnw -q quarkus:add-extension -Dextensions="openshift"` +$ ./mvnw -q quarkus:add-extension -Dextensions="openshift" ``` 向 `src/main/resources/application.properties` 文件中添加以下内容,配置 Knative 和 Kubernetes 的相关资源: - ``` quarkus.container-image.group=quarkus-serverless-native quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 @@ -173,77 +155,71 @@ quarkus.openshift.build-strategy=docker 构建本地可执行文件,并把它直接部署到 OKD 集群: - ``` -`$ ./mvnw clean package -Pnative` +$ ./mvnw clean package -Pnative ``` -> **Note:** 提前使用 `oc login` 命令,确保登录的是正确的项目(例如 `quarkus-serverless-native`)。 +> **注意:** 提前使用 `oc login` 命令,确保登录的是正确的项目(例如 `quarkus-serverless-native`)。 输出信息结尾应当是 `BUILD SUCCESS`。完成一个本地二进制文件的构建并部署为 Knative 服务需要花费几分钟。成功创建服务后,使用 `kubectl` 或 `oc` 命令工具,可以查看 Knative 服务和版本信息: - ``` $ kubectl get ksvc -NAME                        URL   [...] -quarkus-serverless-native    True +NAME URL [...] +quarkus-serverless-native http://quarkus-serverless-native-[...].SUBDOMAIN True $ kubectl get rev -NAME                              CONFIG NAME                 K8S SERVICE NAME                  GENERATION   READY   REASON -quarkus-serverless-native-00001   quarkus-serverless-native   quarkus-serverless-native-00001   1            True +NAME CONFIG NAME K8S SERVICE NAME GENERATION READY REASON +quarkus-serverless-native-00001 quarkus-serverless-native quarkus-serverless-native-00001 1 True ``` -### 4\. 访问本地可执行函数 +### 4、访问本地可执行函数 运行 `kubectl` 命令,搜索无服务器函数的节点: - ``` -`$ kubectl get rt/quarkus-serverless-native` +$ kubectl get rt/quarkus-serverless-native ``` 输出信息类似于: - ``` -NAME                         URL                                                                                                          READY   REASON -quarkus-serverless-native     True +NAME URL READY REASON +quarkus-serverless-native http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN True ``` 用 `curl` 命令访问上述信息中的 `URL` 字段: - ``` -`$ curl http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN/hello` +$ curl http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN/hello ``` 过了不超过一秒钟,你也会得到跟本地操作一样的结果: - ``` -`Hello RESTEasy` +Hello RESTEasy ``` 当你在 OKD 群集中访问 Quarkus 运行中的节点的日志,你会发现本地可执行文件正在以 Knative 服务的形式运行。 ![Native Quarkus Log][16] -(Daniel Oh, [CC BY-SA 4.0][5]) - ### 下一步呢? 你可以借助 GraalVM 发行版优化 Java 无服务器函数,从而在 Knative 中使用 Kubernetes 将它们部署为无服务器函数。Quarkus 支持在普通的微服务中使用简易配置进行性能优化。 本系列的下一篇文章将指导你在不更改代码的情况下跨多个无服务器平台实现可移植函数。 +*(Daniel Oh, [CC BY-SA 4.0][5])* + -------------------------------------------------------------------------------- via: https://opensource.com/article/21/6/java-serverless-functions-kubernetes 作者:[Daniel Oh][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0ad087c4dd4d18d31edfbb49b0794903a5de70b5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 26 Oct 2022 17:14:26 +0800 Subject: [PATCH 1722/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @littlebirdnest 这篇有点潦草了~下篇要注意。 --- ... Control Center and Removes Some GNOME Apps.md | 79 ++++++++++--------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md b/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md index 7b57756e4a..e8ed212985 100644 --- a/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md +++ b/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md @@ -3,91 +3,93 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "littlebirdnest" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Ubuntu Budgie 22.10 版本改进了控制中心并删除了一些 GNOME 应用程序 +Ubuntu Budgie 22.10 的新变化 ====== -Ubuntu Budgie 22.10是一个有趣的版本,它删除了几个GNOME应用程序,并添加了其他改进。 +> Ubuntu Budgie 22.10 是一个有趣的版本,它删除了几个 GNOME 应用程序,以及一些其他改进。 ![Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps][1] -[Ubuntu Budgie][2] 是Ubuntu的官方风格,因其传统的桌面界面和最小的软件膨胀而广受欢迎。 +[Ubuntu Budgie][2] 是 Ubuntu 的官方版本,因其传统的桌面界面和最小的软件膨胀而广受欢迎。 -Ubuntu Budgie 22.10的发布带来了一些关键的调整和补充。 +Ubuntu Budgie 22.10 的发布带来了一些关键的调整和补充。 -### 🆕 Ubuntu Budgie 22.10: 有什么新内容? +### 🆕 Ubuntu Budgie 22.10 有什么新变化 ![ubuntu budgie 22.10][3] -基于 Ubuntu 22.10 的“动态库杜”,Ubuntu Budgie 22.10 具有 Budgie 桌面 10.6.4 和许多其他改进。 +基于 Ubuntu 22.10 “充满活力的捻角羚Kinetic Kudu”,Ubuntu Budgie 22.10 带来了 Budgie 桌面 10.6.4 和许多其他改进。 一些值得注意的亮点包括: -- **增强型budgie控制中心** -- **更新 Budgie 支持的应用** -- **替换各种基于 GNOME 的应用程序** -- **更新的翻译** +- 增强型 Budgie 控制中心Control Center +- 更新了 Budgie 的“欢迎Welcome”应用 +- 替换各种基于 GNOME 的应用程序 +- 对翻译进行了更新 -#### Budgie桌面和控制中心 +#### Budgie 桌面和控制中心 ![ubuntu budgie 22.10 desktop settings][4] -Budgie桌面以及更新到V10.6.4, 它添加了一个新的全局选项来控制小程序之间的间距,并对工作区和时钟小程序进行了各种改进。 +Budgie 桌面以及更新到 V10.6.4, 它添加了一个新的全局选项来控制小程序之间的间距,并对工作区和时钟小程序进行了各种改进。 ![ubuntu budgie 22.10 display color profiles][5] -Budgie控制中心也收到了一堆调整, 例如重新设计的显示颜色配置文件支持, 修改了对屏幕分享的支持如 [RDP][6] 和 [VNC][7], 用于显示缩放的选项,等等. +Budgie 控制中心Control Center也得到了一堆调整,例如重新设计的显示颜色配置文件支持,修改了对屏幕分享的支持,如 [RDP][6] 和 [VNC][7],用于显示缩放的选项,等等。 -#### 支持应用升级 +#### 升级了欢迎应用 ![ubuntu budgie 22.10 welcome app][8] -Ubuntu Budgie 22.10的功能升级了 [Budgie支持的应用][9]改善了翻译以及一些其他改进. +Ubuntu Budgie 22.10 特别升级了 [Budgie 的欢迎应用][9],改善了翻译以及一些其他改进。 -#### 改成默认的应用 +#### 默认的应用的变化 -Ubuntu Budgie的开发人员已经开始替换和删除基于GNOME的应用程序,以支持基于MATE的应用程序和其他替代方案。 +Ubuntu Budgie 的开发人员已经开始替换和删除基于 GNOME 的应用程序,转而使用基于 MATE 的应用程序和其他替代品。 -他们决定这样做,因为基于GNOME的应用程序在Budgie中的外观与其他具有圆角边缘的应用程序的外观不一致。 +他们决定这样做是因为基于 GNOME 的应用程序在 Budgie 中的外观与其他具有圆角边缘的应用程序的外观不一致。 -这些不一致是由于 GNOME 根据其样式和主题需求而转到Libadwaita库造成的。 +这些不一致是由于 GNOME 根据其样式和主题需求而转到 Libadwaita 库造成的。 Libadwaita 库是 GNOME 的一个有争议的补充,没有多少用户喜欢,你可以通过我们的报道来了解更多信息。 +> **[你对在 Linux 世界中 GNOME 的 Libadwaita 库怎么看?][15]** + 以下是一些已删除或替换的应用程序: - GNOME 计算器被 MATE 计算器取代。 -- GNOM 删除了日历。 -- GNOME 系统显示器已由MATE系统显示器取代。 -- GNOME 移除截图. -- GNOME [字体管理][10]替代了字体查看器。 +- 删除了 GNOME 日历。 +- GNOME 系统监视器已由 MATE 系统监视器取代。 +- 删除了 GNOME 截图。 +- [字体管理器][10] 替代了 GNOME 字体查看器。 #### 🛠️ 其他改变 -其他改变包括以下: +其他改变包括以下: -- **内置主题返工** -- **移除PulseAudio并支持PipeWire** -- **原生截图功能** -- **支持网络规划图像** -- **能够查看显示器的刷新率** +- 重新开发的内置主题 +- 移除 PulseAudio,并支持 PipeWire +- 原生的截图功能 +- 支持 WebP 图像 +- 能够查看显示器的刷新率 -你可以通过[发行说明][11]了解更多。 +你可以通过 [发行说明][11] 了解更多。 ### 📥 下载 Ubuntu Budgie 22.10 -你可以下载最新的ISO在[Ubuntu's 镜像中心仓库][12]或者它的[官方网站][13]。 +你可以在 [Ubuntu 中央镜像仓库][12] 或者它的 [官方网站][13] 下载最新的 ISO。 -其官方网站可能需要一段时间ISO才能够可用。 +*其官方网站可能需要一段时间才能提供 ISO。* -[下载 Ubuntu Budgie 22.10][13] +> **[下载 Ubuntu Budgie 22.10][13]** -> 💡Ubuntu Budgie 22.10 将支持9个月直到 **2023 6月 **. 如果你想使用稳定的功能,更应该选择 [LTS 版本][14]. +> 💡 Ubuntu Budgie 22.10 将支持 9 个月直到 **2023 年 6 月**。如果你想使用稳定的功能,更应该选择 [LTS 版本][14]。 -💬 您如何看待这个非LTS版本?愿意尝试一下吗? +💬 你如何看待这个非 LTS 版本?愿意尝试一下吗? -------------------------------------------------------------------------------- @@ -95,8 +97,8 @@ via: https://news.itsfoss.com/ubuntu-budgie-22-10-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[littlebirdnest](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -116,3 +118,4 @@ via: https://news.itsfoss.com/ubuntu-budgie-22-10-release/ [12]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/22.10/ [13]: https://ubuntubudgie.org/downloads/ [14]: https://itsfoss.com/long-term-support-lts/ +[15]: https://news.itsfoss.com/gnome-libadwaita-library/ \ No newline at end of file From 5861eb3701fd9984efbad37bc99e2f9ea4a2113b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 26 Oct 2022 17:14:59 +0800 Subject: [PATCH 1723/3123] P @littlebirdnest https://linux.cn/article-15179-1.html --- ...Release Improves Control Center and Removes Some GNOME Apps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md (98%) diff --git a/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md b/published/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md similarity index 98% rename from translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md rename to published/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md index e8ed212985..38d5642bd9 100644 --- a/translated/news/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md +++ b/published/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "littlebirdnest" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15179-1.html" Ubuntu Budgie 22.10 的新变化 ====== From b2a4de300e386666f5524ae089b295863d461f36 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 27 Oct 2022 08:53:43 +0800 Subject: [PATCH 1724/3123] translated --- ...ow to Check: Xorg or Wayland Display Server.md | 91 ----------- ...thon 3.10 in Ubuntu and Other Related Linux.md | 144 ------------------ ...thon 3.10 in Ubuntu and Other Related Linux.md | 144 ++++++++++++++++++ 3 files changed, 144 insertions(+), 235 deletions(-) delete mode 100644 sources/tech/20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md delete mode 100644 sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md create mode 100644 translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md diff --git a/sources/tech/20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md b/sources/tech/20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md deleted file mode 100644 index c13517957c..0000000000 --- a/sources/tech/20221020.0 ⭐️ How to Check: Xorg or Wayland Display Server.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "How to Check: Xorg or Wayland Display Server?" -[#]: via: "https://www.debugpoint.com/check-wayland-or-xorg/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Check: Xorg or Wayland Display Server? -====== - -**Here’s how you can quickly check whether you are running Xorg or Wayland Display Server.** - -With every passing day, the modern Wayland display server is making its way to all Linux distributions. Although the legacy Xorg is still relevant and will stay, Wayland is undoubtedly better in security and other performance aspects. - -However, Xorg will not completely phase out anytime soon. Probably never. - -If you are running any Linux distribution, how can you check whether you are running Xorg or Wayland? Here’s how. - -### Wayland or Xorg: Which one are you running? - -- Open a terminal window (CTRL+ALT+T) in your Linux distributions (e.g. Ubuntu, Fedora, Arch…etc.). - -- Then type the following command and hit enter. - -``` -echo $XDG_SESSION_TYPE -``` - -- The output of the command will tell you whether the current session is Wayland or Xorg (X11). - -``` -[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland -``` - -![This command can give you details about Xorg or Wayland][1] - -That’s simple. However, there are other ways as well. - -### Other methods - -#### Using Settings - -If you want a graphical method, open your Linux distribution settings application. In the about section, you should see the Wayland/X11 mentioned under some label. - -For example, in the GNOME Settings, you can find it under “Windowing system”, as shown below. - -![In GNOME Settings you can find it][2] - -#### Using session values - -You can also find it out using `loginctl` which is the [systemd][3] login manager. Remember, it only works for systemd-based systems. - -Open a terminal and run the below command. You can see the session id value. In this example `c2`. - -``` -loginctl -``` - -Now, pass the session id to the following command to get the display server type. Make sure to change c2 to your system spec. - -``` -loginctl show-session c2 -p Type -``` - -![Using loginctl to find out][4] - -### Wrapping Up - -So, these are some of the ways you can find out whether you are running Systemd or Xorg in your Linux system. You can also use the above commands in your shell scripts for further process automation. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/check-wayland-or-xorg/ - -作者:[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/10/This-command-can-give-you-details-about-Xorg-or-Wayland-1024x612.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/In-GNOME-Settings-you-can-find-it.jpg -[3]: https://www.debugpoint.com/tag/systemd/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Using-loginctl-to-find-out.jpg diff --git a/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md b/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md deleted file mode 100644 index 8059afcab4..0000000000 --- a/sources/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md +++ /dev/null @@ -1,144 +0,0 @@ -[#]: subject: "How to Install Python 3.10 in Ubuntu and Other Related Linux" -[#]: via: "https://www.debugpoint.com/install-python-3-10-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Python 3.10 in Ubuntu and Other Related Linux -====== - -**Planning to get Python 3.10 installed for your work? Here’s how to install Python 3.10 in Ubuntu and related distributions.** - -Python 3.10 was released on Oct 25, 2021 with additional features and updates. This release brings better handling of error messages, new pattern-matching features, TypeAlias, user-defined type guards and more. You can read the release highlights [here][1]. - -As of writing this guide, Python 3.10 is adopted by most of the current distros. For example, Ubuntu 22.04 LTS, and Fedora 36 all have Python 3.10 by default. - -That said, if you need Python 3.10 in any non-supported releases right now, you can use the [below reliable PPA][2] to install the latest Python 3.10 in Ubuntu. Here’s how. - -### How to Install Python 3.10 on Ubuntu - -This PPA can be used for Ubuntu 21.10, Ubuntu 21.04, Ubuntu 20.04 LTS, Ubuntu 18.04 LTS, and Linux Mint 20.x, Elementary OS 6 and other related Ubuntu-based distributions. Mostly those don’t support 3.10 by default. - -- Open a terminal prompt and add the following PPA. - -``` -sudo add-apt-repository ppa:deadsnakes/ppa -``` - -- Refresh the cache using the below command. - -``` -sudo apt update  -``` - -- And install Python 3.10 using the below command. - -``` -sudo apt install python3.10 -``` - -### Set Python Versions - -Setting up Python 3.10 as default require some additional steps. Follow along. - -**Warning**: Many applications in your Ubuntu system depend on the stock version of Python 3.9. Hence, be very sure that your work applications (e.g. GIMP, GNOME Terminal etc.) are compatible with Python 3.10. So, be cautious. - -**Quick Tip:** If you want to check which of your installed system packages depends on a specific version, use the following `rdepends` switch of `apt-cache` command. In the below example, I am checking which of the installed packages depends on Python 3.8. - -``` -apt-cache rdepends python3.8 -``` - -``` -[~]$ apt-cache rdepends python3.8 -python3.8 -Reverse Depends: -python3.8-dbg -virtualbox -python3.8-venv -python3.8-full -libpython3.8-testsuite -libglib2.0-tests -idle-python3.8 -idle-python3.8 -python3.8-minimal -python3.8-doc -python3.8-dev -python3.8-dbg -python3-uno -gedit -virtualbox -stimfit -python3.8-venv -python3-stfio -python3-escript-mpi -python3-escript -python3-csound -pitivi -obs-studio -liferea -libpython3.8-testsuite -libglib2.0-tests -kitty -kdevelop-python -idle-python3.8 -idle-python3.8 -rhythmbox-plugins -python3.8-minimal -python3.8-doc -python3.8-dev -python3 -python3-uno -python3-all -cluster-glue -gedit -[~]$ -``` - -#### Use Python 3.10 as the default Python3 - -- First, check the current default version using the below command from the terminal. - -``` -python3 --version -``` - -- Use `update-alternatives` to create symbolic links to python3 - -``` -sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 -``` - -``` -sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 -``` - -- And choose which one to use as Python3 via the command: - -``` -sudo update-alternatives --config python3 -``` - -![Install Python 3.10 in Ubuntu][3] - -That’s all for the steps. Now you can start using the latest Python in your current Ubuntu version for your work/study. You switch over to the stock version using the above commands and changing the version numbers at any given time. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-python-3-10-ubuntu/ - -作者:[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://docs.python.org/3.10/whatsnew/3.10.html -[2]: https://github.com/deadsnakes -[3]: https://www.debugpoint.com/wp-content/uploads/2021/10/Installed-Python-3.10-in-Ubuntu-1024x472.jpeg diff --git a/translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md b/translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md new file mode 100644 index 0000000000..768e7a7091 --- /dev/null +++ b/translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md @@ -0,0 +1,144 @@ +[#]: subject: "How to Install Python 3.10 in Ubuntu and Other Related Linux" +[#]: via: "https://www.debugpoint.com/install-python-3-10-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10 +====== + +**计划为工作安装 Python 3.10?以下是在 Ubuntu 和相关发行版中安装 Python 3.10 的方法。** + +Python 3.10 于 2021 年 10 月 25 日发布,具有附加功能和更新。此版本带来了更好的错误消息处理、新的模式匹配功能、TypeAlias、用户定义的类型保护等。你可以在[此处][1]阅读发布亮点。 + +在编写本指南时,大多数当前发行版都采用 Python 3.10。例如,Ubuntu 22.04 LTS 和 Fedora 36 默认都有 Python 3.10。 + +也就是说,如果你现在需要任何不支持的版本中的 Python 3.10,你可以使用[下面的可靠 PPA][2]在 Ubuntu 中安装最新的 Python 3.10。下面是方法。 + +### 如何在 Ubuntu 上安装 Python 3.10 + +此 PPA 可用于 Ubuntu 21.10、Ubuntu 21.04、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS 和 Linux Mint 20.x、Elementary OS 6 和其他相关的基于 Ubuntu 的发行版。大多数默认情况下不支持 3.10。 + +- 打开终端并添加以下 PPA。 + +``` +sudo add-apt-repository ppa:deadsnakes/ppa +``` + +- 使用以下命令刷新缓存。 + +``` +sudo apt update +``` + +- 并使用以下命令安装 Python 3.10。 + +``` +sudo apt install python3.10 +``` + +### 设置 Python 版本 + +将 Python 3.10 设置为默认值需要一些额外的步骤。请跟上。 + +**警告**:你的 Ubuntu 系统中的许多应用程序依赖于 Python 3.9 的库存版本。因此,请确保你的工作应用(例如 GIMP、GNOME 终端等)与 Python 3.10 兼容。所以,要小心。 + +**快速提示:** 如果要检查已安装的系统包中的哪些依赖于特定版本,请使用 `apt-cache` 命令的 `rdepends` 开关。在下面的示例中,我检查哪些已安装的包依赖于 Python 3.8。 + +``` +apt-cache rdepends python3.8 +``` + +``` +[~]$ apt-cache rdepends python3.8 +python3.8 +Reverse Depends: +python3.8-dbg +virtualbox +python3.8-venv +python3.8-full +libpython3.8-testsuite +libglib2.0-tests +idle-python3.8 +idle-python3.8 +python3.8-minimal +python3.8-doc +python3.8-dev +python3.8-dbg +python3-uno +gedit +virtualbox +stimfit +python3.8-venv +python3-stfio +python3-escript-mpi +python3-escript +python3-csound +pitivi +obs-studio +liferea +libpython3.8-testsuite +libglib2.0-tests +kitty +kdevelop-python +idle-python3.8 +idle-python3.8 +rhythmbox-plugins +python3.8-minimal +python3.8-doc +python3.8-dev +python3 +python3-uno +python3-all +cluster-glue +gedit +[~]$ +``` + +#### 使用 Python 3.10 作为默认 Python3 + +- 首先,使用终端中的以下命令检查当前默认版本。 + +``` +python3 --version +``` + +- 使用 `update-alternatives` 创建指向 python3 的符号链接。 + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 +``` + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 +``` + +- 并通过以下命令选择使用哪一个作为 Python3: + +``` +sudo update-alternatives --config python3 +``` + +![在 Ubuntu 中安装 Python 3.10][3] + +这就是所有步骤。现在,你可以开始在当前的 Ubuntu 版本中使用最新的 Python 进行工作/学习。你可以使用上述命令切换到库存版本并在任何时间更改版本号。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-3-10-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://docs.python.org/3.10/whatsnew/3.10.html +[2]: https://github.com/deadsnakes +[3]: https://www.debugpoint.com/wp-content/uploads/2021/10/Installed-Python-3.10-in-Ubuntu-1024x472.jpeg \ No newline at end of file From 5049e09776e7203b01006329be21b049cf6ed29c Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 27 Oct 2022 09:08:21 +0800 Subject: [PATCH 1725/3123] translating --- ...ow to Check:Xorg or Wayland Display Server.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md diff --git a/sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md b/sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md new file mode 100644 index 0000000000..a3d04b3f18 --- /dev/null +++ b/sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md @@ -0,0 +1,91 @@ +[#]: subject: "How to Check: Xorg or Wayland Display Server?" +[#]: via: "https://www.debugpoint.com/check-wayland-or-xorg/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Check: Xorg or Wayland Display Server? +====== + +**Here’s how you can quickly check whether you are running Xorg or Wayland Display Server.** + +With every passing day, the modern Wayland display server is making its way to all Linux distributions. Although the legacy Xorg is still relevant and will stay, Wayland is undoubtedly better in security and other performance aspects. + +However, Xorg will not completely phase out anytime soon. Probably never. + +If you are running any Linux distribution, how can you check whether you are running Xorg or Wayland? Here’s how. + +### Wayland or Xorg: Which one are you running? + +- Open a terminal window (CTRL+ALT+T) in your Linux distributions (e.g. Ubuntu, Fedora, Arch…etc.). + +- Then type the following command and hit enter. + +``` +echo $XDG_SESSION_TYPE +``` + +- The output of the command will tell you whether the current session is Wayland or Xorg (X11). + +``` +[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland +``` + +![This command can give you details about Xorg or Wayland][1] + +That’s simple. However, there are other ways as well. + +### Other methods + +#### Using Settings + +If you want a graphical method, open your Linux distribution settings application. In the about section, you should see the Wayland/X11 mentioned under some label. + +For example, in the GNOME Settings, you can find it under “Windowing system”, as shown below. + +![In GNOME Settings you can find it][2] + +#### Using session values + +You can also find it out using `loginctl` which is the [systemd][3] login manager. Remember, it only works for systemd-based systems. + +Open a terminal and run the below command. You can see the session id value. In this example `c2`. + +``` +loginctl +``` + +Now, pass the session id to the following command to get the display server type. Make sure to change c2 to your system spec. + +``` +loginctl show-session c2 -p Type +``` + +![Using loginctl to find out][4] + +### Wrapping Up + +So, these are some of the ways you can find out whether you are running Systemd or Xorg in your Linux system. You can also use the above commands in your shell scripts for further process automation. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/check-wayland-or-xorg/ + +作者:[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/10/This-command-can-give-you-details-about-Xorg-or-Wayland-1024x612.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/In-GNOME-Settings-you-can-find-it.jpg +[3]: https://www.debugpoint.com/tag/systemd/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Using-loginctl-to-find-out.jpg \ No newline at end of file From 13807b9aea9ba90edc5d539c2c4387ec6b2cd85f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 27 Oct 2022 09:14:15 +0800 Subject: [PATCH 1726/3123] RP @geekpi https://linux.cn/article-15181-1.html --- ...tatic IP Address on Ubuntu Server 22.04.md | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) rename {translated/tech => published}/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md (63%) diff --git a/translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md similarity index 63% rename from translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md rename to published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md index 5ea893ddf2..139447fa90 100644 --- a/translated/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md +++ b/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md @@ -3,28 +3,31 @@ [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15181-1.html" -如何在 Ubuntu Server 22.04 上设置静态 IP 地址 +如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址 ====== -在这篇文章中,我们将介绍如何在 Ubuntu Server 22.04 上设置静态 IP 地址。 -强烈建议在 linux 服务器上使用静态 ip,因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。 +![](https://img.linux.net.cn/data/attachment/album/202210/27/091312aohaix6g6kay68xa.jpg) -##### 先决条件 +> 在这篇文章中,我们将介绍如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址。 -* 最小安装的 Ubuntu Server 22.04 -* 具有 sudo 管理员权限的普通用户 +强烈建议在 Linux 服务器上使用静态 IP,因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。 -在 Ubuntu Server 22.04 中,网络由 netplan 程序控制,因此我们将使用 netplan 在 Ubuntu Server 上配置静态 IP 地址。 +**准备条件** -注意:我们不能使用 [nmcli 程序][1],因为它不是 Ubuntu Server 上默认安装的一部分。 +* 最小安装的 Ubuntu 服务器 22.04 +* 具有 `sudo` 管理员权限的普通用户 -### 在 Ubuntu Server 22.04 上设置静态 IP 地址 +在 Ubuntu 服务器 22.04 中,网络由 netplan 程序控制,因此我们将使用 netplan 在 Ubuntu 服务器上配置静态 IP 地址。 -登录到你的 Ubuntu Server 22.04,查找 netplan 配置文件。它位于 /etc/netplan 目录下。 +注意:我们不能使用 [nmcli 程序][1],因为它不是 Ubuntu 服务器上默认安装的一部分。 + +### 在 Ubuntu 服务器 22.04 上设置静态 IP 地址 + +登录到你的 Ubuntu 服务器 22.04,查找 netplan 配置文件。它位于 `/etc/netplan` 目录下。 ``` $ cd /etc/netplan/ @@ -34,7 +37,7 @@ total 4 $ ``` -运行以下 cat 命令以查看 “00-installer-config.yaml” 的内容 +运行以下 `cat` 命令以查看 `00-installer-config.yaml` 的内容。 注意:配置文件的名称可能因你的设置而异。由于它是一个 yaml 文件,因此请确保在编辑时保持缩进和语法。 @@ -42,13 +45,13 @@ $ $ cat 00-installer-config.yaml ``` -输出: +输出: ![Default-Content-netplan-ubuntu-server][2] -根据上面的输出,它说我们有 ens33 接口,它正在从 dhcp 服务器获取 ip。查看接口名称的另一种方法是通过 ip 命令。 +根据上面的输出,它说我们有 `ens33` 接口,它正在从 DHCP 服务器获取 IP。查看接口名称的另一种方法是通过 `ip` 命令。 -现在,要配置静态 ip 代替 dhcp,使用 vi 或 nano 编辑器编辑 netplan 配置文件并添加以下内容。 +现在,要配置静态 IP 代替 DHCP,使用 `vi` 或 `nano` 编辑器编辑 netplan 配置文件并添加以下内容。 ``` $ sudo vi 00-installer-config.yaml @@ -73,20 +76,20 @@ network: 在上面的文件中,我们使用了以下内容, -* ens33 为接口名称 -* 用于设置静态 ip 的地址 -* nameservers 用于指定 DNS 服务器的 ip +* `ens33` 为接口名称 +* 用于设置静态 IP 的地址 +* `nameservers` 用于指定 DNS 服务器的 IP * 用于指定默认网关的路由 注意:根据你的环境更改 IP 详细信息和接口名称。 -要是上述修改生效,请使用以下 netplan 命令应用这些更改: +要是上述修改生效,请使用以下 `netplan` 命令应用这些更改: ``` $ sudo netplan apply ``` -运行以下 ip 命令查看接口上的 ip 地址: +运行以下 IP 命令查看接口上的 IP 地址: ``` $ ip addr show ens33 @@ -113,7 +116,7 @@ via: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/ 作者:[Pradeep 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/) 荣誉推出 From 0a0934da4f0407e0cd980d15dfa463b87956f22e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 27 Oct 2022 09:22:17 +0800 Subject: [PATCH 1727/3123] R --- ...21012 How to Set Static IP Address on Ubuntu Server 22.04.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md index 139447fa90..2d81af776b 100644 --- a/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md +++ b/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md @@ -105,7 +105,7 @@ $ ip route show ![ip-addr-route-command-output-ubuntu-server][4] -完美,以上命令的输出确认静态ip和路由配置成功。 +完美,以上命令的输出确认静态 IP 和路由配置成功。 这就是这篇文章的全部内容。请在下面的评论部分发表你的问题和反馈。 From 8945809d6035b270ee629b3edeafac81bcc34f2a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 27 Oct 2022 09:50:09 +0800 Subject: [PATCH 1728/3123] RP @Donkey-Hao https://linux.cn/article-15182-1.html --- ...o practice open organization principles.md | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) rename {translated/talk => published}/20220616 Using habits to practice open organization principles.md (70%) diff --git a/translated/talk/20220616 Using habits to practice open organization principles.md b/published/20220616 Using habits to practice open organization principles.md similarity index 70% rename from translated/talk/20220616 Using habits to practice open organization principles.md rename to published/20220616 Using habits to practice open organization principles.md index aff844240b..d549c013a5 100644 --- a/translated/talk/20220616 Using habits to practice open organization principles.md +++ b/published/20220616 Using habits to practice open organization principles.md @@ -3,13 +3,14 @@ [#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland" [#]: collector: "lkxed" [#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15182-1.html" 利用习惯练习开放式组织原则 ====== -你可以按照以下步骤,来养成符合开放文化的习惯,并改掉那些不符合开放文化的习惯。 + +> 你可以按照以下步骤,来养成符合开放文化的习惯,并改掉那些不符合开放文化的习惯。 ![Selfcare, drinking tea on the porch][1] @@ -44,9 +45,9 @@ ### 养成习惯的 3 个步骤 -1、提示(触发器):首先,提示或者触发器会告诉大脑,进入之前学习的习惯性行为的自动模式之中。这里的提示可以是某件事,比如每天在确定的时间点、在确定的地点,看到一包糖果或者看到电视购物节目,亦或者看到某个特定的人。时间压力会触发你去做例行事项(routine)。在令人崩溃的环境下也会触发例行事项。简而言之,某件事提醒你开始做一些固定的事情。 -2、例行事项(routine):例行事项会被触发。一个例行事项是一系列的身体、心理或者情绪上的表现,可以是非常复杂的,也可以十分简单。诸如与心情相关的一些习惯可以在很短时间内被触发。 -3、奖励:最后一步是奖励,奖励会帮助你的大脑计算一个特定的行为是否值得记住。奖励的范围很广泛,可以是食物或者其他令你感到快乐的东西。 +1. 提示(触发器):首先,提示或者触发器会告诉大脑,进入之前学习的习惯性行为的自动模式之中。这里的提示可以是某件事,比如每天在确定的时间点、在确定的地点,看到一包糖果或者看到电视购物节目,亦或者看到某个特定的人。时间压力会触发你去做例行事项(routine)。在令人崩溃的环境下也会触发例行事项。简而言之,某件事提醒你开始做一些固定的事情。 +2. 例行事项routine:例行事项会被触发。一个例行事项是一系列的身体、心理或者情绪上的表现,可以是非常复杂的,也可以十分简单。诸如与心情相关的一些习惯可以在很短时间内被触发。 +3. 奖励:最后一步是奖励,奖励会帮助你的大脑计算一个特定的行为是否值得记住。奖励的范围很广泛,可以是食物或者其他令你感到快乐的东西。 ### 商业环境中的坏习惯 @@ -65,11 +66,11 @@ 以下是你可以用来改变任何习惯的四步框架,其中还包括与开放式组织原则相关的习惯。 -##### 第一步:调整例行事项 +#### 第一步:调整例行事项 确定你的习惯循环和例行事项,例如,当面临一件你无法独自解决的重大挑战之时。例行事项(你表现出的行为)最容易确定,所以先从它下手:例如,“在我的组织中,没人愿意和别人讨论问题。大家都会早早地放弃”。决定好你想要调整、改变或者学习的事情:例如:“每次重大挑战到来的时候,我应该和他人讨论一下,并且尝试建立一个志同道合、有能力解决问题的社区。” -##### 第二步:有奖励的实验 +#### 第二步:有奖励的实验 奖励是很重要的,因为它会满足你强烈的渴望。但是,我们通常没有意识到强烈的渴望会驱动我们的行为。只有在事后,才会被我们察觉。比方说,开会时很多次你都想尽快离开会议室,避免讨论话题,即使内心清楚你应该弄明白如何解决问题。 @@ -77,15 +78,12 @@ 把你自己当作科学家,进行实验并收集数据。这是你调查研究的步骤: -1、第一个行为结束后,开始调整后面的行为,看看有没有奖励变化。例如,如果你每次碰到自己无法解决的挑战时都放弃,那么奖励就是不承担责任的解脱。更好的解决方法是与至少一个同样关心该问题的人讨论该问题。关键是要测试不同的假设,以确定哪种渴望驱使你的日常生活。你真的想逃避责任吗? +1. 第一个行为结束后,开始调整后面的行为,看看有没有奖励变化。例如,如果你每次碰到自己无法解决的挑战时都放弃,那么奖励就是不承担责任的解脱。更好的解决方法是与至少一个同样关心该问题的人讨论该问题。关键是要测试不同的假设,以确定哪种渴望驱使你的日常生活。你真的想逃避责任吗? +2. 在经历四至五个不同的例行事项和奖励之后,写下在收到每个奖励后立即想到的前三、四件事。例如,你不会在面对挑战时放弃,而是与其他人讨论这个问题。然后,你决定可以做什么。 +3. 写下你的感受或渴望后,设置一个 15 分钟的计时器。当计时器结束时,问问自己是否依旧渴望。在屈服于渴望之前,请休息一会儿并再考虑一两次这个问题。这会迫使你意识到这一刻,并帮助你稍后回忆起你当时的想法。 +4. 试着记住你在那一刻的想法和感受,然后在例行事项后 15 分钟。如果渴望消失了,你就已经确定了回报是什么。 -2、在经历四至五个不同的例行事项和奖励之后,写下在收到每个奖励后立即想到的前三、四件事。例如,你不会在面对挑战时放弃,而是与其他人讨论这个问题。然后,你决定可以做什么。 - -3、写下你的感受或渴望后,设置一个 15 分钟的计时器。当计时器结束时,问问自己是否依旧渴望。在屈服于渴望之前,请休息一会儿并再考虑一两次这个问题。这会迫使你意识到这一刻,并帮助你稍后回忆起你当时的想法。 - -4、试着记住你在那一刻的想法和感受,然后在例行事项后 15 分钟。如果渴望消失了,你就已经确定了回报是什么。 - -##### 第三步:分析出坏习惯的提示或触发器 +#### 第三步:分析出坏习惯的提示或触发器 坏习惯的提示信息很难鉴定,因为通常有太多信息干扰你未定型的行为。要在干扰中鉴别提示,你可以在你的坏习惯出现的时候,观察以下四个因素: @@ -97,24 +95,24 @@ 人们:当时有谁或者哪一类人在你周围,还是你是独自一人?例如:“在会议上,大多数人似乎对这个问题也不感兴趣。剩下的人主导会议讨论。” -##### 第四步:制定养成好习惯的计划 +#### 第四步:制定养成好习惯的计划 一旦你确定奖励可以驱动你的行为,某些提示会触发你的坏习惯,那你就可以开始改变你的行动。请跟随以下三个简单的步骤: -1、首先,规划好习惯的提示。例如:“在会议上,我将发现并将我的注意力集中在重要的问题上。” -2、其次,选择一种能带来相同回报的好行为,但不会遭受你现在坏习惯的惩罚。例如:“我将找到解决这个问题的方法,并考虑我需要哪些资源和技能才能成功。当我创建一个能够成功解决问题的社区时,我会感觉很棒。” -3、最后,让你选择的行为成为深思熟虑的选择,直到你不再需要考虑它,就能下意识地做它了。例如:“我将有意识地关注重要问题,直到我可以不假思索地做到这一点。我会查看近期会议的安排表,这样我就可以提前知道会发生什么。在每次会议开始前和会议期间,我会问自己‘为什么我会来开会’,来确保我集中注意于重要的事情。” +1. 首先,规划好习惯的提示。例如:“在会议上,我将发现并将我的注意力集中在重要的问题上。” +2. 其次,选择一种能带来相同回报的好行为,但不会遭受你现在坏习惯的惩罚。例如:“我将找到解决这个问题的方法,并考虑我需要哪些资源和技能才能成功。当我创建一个能够成功解决问题的社区时,我会感觉很棒。” +3. 最后,让你选择的行为成为深思熟虑的选择,直到你不再需要考虑它,就能下意识地做它了。例如:“我将有意识地关注重要问题,直到我可以不假思索地做到这一点。我会查看近期会议的安排表,这样我就可以提前知道会发生什么。在每次会议开始前和会议期间,我会问自己‘为什么我会来开会’,来确保我集中注意于重要的事情。” -##### 指定计划来避免忘记必做事项 +#### 制定计划来避免忘记必做事项 为了成功地开始做你经常忘记的事情,请按照以下步骤: -1、 计划你想要做什么 -2、 决定何时完成 -3、 将计划分为必要的小任务 -4、 用计时器或者日常计划进行提示,并开始每项任务 -5、 按计划完成每个任务 -6、 按时完成后就奖励自己 +1. 计划你想要做什么 +2. 决定何时完成 +3. 将计划分为必要的小任务 +4. 用计时器或者日常计划进行提示,并开始每项任务 +5. 按计划完成每个任务 +6. 按时完成后就奖励自己 ### 习惯的改变 @@ -133,7 +131,7 @@ via: https://opensource.com/open-organization/22/6/using-habits-practice-open-or 作者:[Ron McFarland][a] 选题:[lkxed][b] 译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 5db0c800e8f9ec89d9c848028f769d942fde83e3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 27 Oct 2022 10:44:53 +0800 Subject: [PATCH 1729/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 https://linux.cn/article-15183-1.html 这篇辛苦了,也很仔细。 --- ...on any operating system with VirtualBox.md | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 deletions(-) rename {translated/tech => published}/20210629 Try Linux on any operating system with VirtualBox.md (58%) diff --git a/translated/tech/20210629 Try Linux on any operating system with VirtualBox.md b/published/20210629 Try Linux on any operating system with VirtualBox.md similarity index 58% rename from translated/tech/20210629 Try Linux on any operating system with VirtualBox.md rename to published/20210629 Try Linux on any operating system with VirtualBox.md index cd6b27a477..5a7771408e 100644 --- a/translated/tech/20210629 Try Linux on any operating system with VirtualBox.md +++ b/published/20210629 Try Linux on any operating system with VirtualBox.md @@ -3,15 +3,16 @@ [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) [#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15183-1.html) 使用 VirtualBox 安装 Linux 虚拟机 ====== -VirtualBox 能帮助任何人(即使是命令行新手)安装一个新的虚拟机。 -![Person programming on a laptop on a building][1] +> VirtualBox 能帮助任何人(即使是命令行新手)安装一个新的虚拟机。 + +![](https://img.linux.net.cn/data/attachment/album/202210/27/104215te6xpq2e2vvxprjs.jpg) VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要有使用命令行的经验,就可以自己安装一个简单的 Linux 虚拟机。在虚拟机方面,我精通很多东西,但这篇文章将向新手展示如何安装一个 Linux 虚拟机。此外,这篇文章还概述了如何使用开源虚拟机管理程序 [VirtualBox][2] ,来运行以及安装一个测试目的的 Linux 系统。 @@ -19,12 +20,12 @@ VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要 在开始之前,你需要了解在本安装教程中的两个操作系统(OS)之间的区别: - * **主机系统(host system):** 这指的是你安装 VirtualBox 的操作系统(即本机的操作系统)。 - * **访客系统(guest system):** 这指的是你想要在主机系统之上运行的虚拟化系统。 + * 主机系统host system:这指的是你安装 VirtualBox 的操作系统(即本机的操作系统)。 + * 客体系统guest system:这指的是你想要在主机系统之上运行的虚拟化系统。 -在输入/输出、网络、文件访问、剪贴板、音频和视频方面,主机系统和访客系统都必须能够交互。 +在输入/输出、网络、文件访问、剪贴板、音频和视频方面,主机系统和客体系统都必须能够交互。 -在本教程中,我将使用 Windows 10 作为 _主机系统_,[Fedora 33][3] 作为 _访客系统_。 +在本教程中,我将使用 Windows 10 作为 _主机系统_,[Fedora 33][3] 作为 _客体系统_。 ### 安装前的准备 @@ -37,40 +38,39 @@ VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要 ### 准备虚拟机 -下载你要用的 Linux 发行版的镜像文件。下载 32 位还是 64 位的操作系统映像都没有关系,因为在 32 位的主机系统上也可以启动 64 位的操作系统映像(当然内存的使用会受限),反之亦然。 +下载你要用的 Linux 发行版的镜像文件。下载 32 位还是 64 位的操作系统镜像都没有关系,因为在 32 位的主机系统上也可以启动 64 位的操作系统镜像(当然内存的使用会受限),反之亦然。 -> **注意事项:** 如果可以的话,请下载附带有 [逻辑卷管理器][6](LVM)的 Linux 发行版。LVM 会将文件系统与物理硬盘驱动器解耦。如果你的空间不足时,这能够让你增加访客系统的硬盘驱动器的大小。 +> **注意事项:** 如果可以的话,请下载附带有 [逻辑卷管理器][6](LVM)的 Linux 发行版。LVM 会将文件系统与物理硬盘驱动器解耦。如果你的空间不足时,这能够让你增加客体系统的硬盘驱动器的大小。 -现在,打开 VirtualBox,然后单击黄色的**新建**按钮: +现在,打开 VirtualBox,然后单击黄色的“新建New”按钮: ![VirtualBox New VM][7] -接下来,配置访客操作系统允许使用多少内存: +接下来,配置客体操作系统允许使用多少内存: ![Set VM memory size][9] -我的建议是:**不要吝啬访客操作系统的内存!** -当访客操作系统的内存不足时,访客系统将开始从随机存取存储器(RAM)转换到硬盘驱动器(hard drive),进行内存的分页,这样会极大地恶化系统的性能和响应能力。如果底层的主机系统开始分页,你很可能不会注意到。对于具有图形化桌面环境的 Linux 工作站系统,我建议至少分配 4GB 内存。 +我的建议是:**不要吝啬分配给客体操作系统使用的内存!**当客体操作系统的内存不足时,客体系统将开始从随机存取存储器(RAM)向硬盘驱动器进行内存分页,这样会极大地恶化系统的性能和响应能力。如果底层的主机系统开始分页,你很可能不会注意到。对于具有图形化桌面环境的 Linux 工作站系统,我建议至少分配 4GB 内存。 接下来,创建虚拟磁盘: ![Create virtual hard disk][10] -虚拟磁盘的格式选择默认的选项 **VDI(VirtualBox 磁盘映像)** 就可以了: +虚拟磁盘的格式选择默认的选项 “VDI(VirtualBox 磁盘镜像)” 就可以了: ![Selecting hard disk file type][11] -在以下的窗口中,我建议选择**动态分配**,因为这允许你在之后增加虚拟磁盘的大小。如果你选择了**固定大小**,磁盘的速度可能会更快,但你将无法修改虚拟磁盘的大小了: +在以下的窗口中,我建议选择“动态分配dynamically allocated”,因为这允许你在之后增加虚拟磁盘的大小。如果你选择了“固定大小fixed size”,磁盘的速度可能会更快,但你将无法修改虚拟磁盘的大小了: ![Dynamically allocating hard disk][12] -建议你使用附带有逻辑卷管理器(LVM)的 Linux 发行版,这样你就可以先创建一个较小的硬盘。如果之后你的访客系统的空间快用完了,你可以按需增加磁盘的大小。 +建议你使用附带有逻辑卷管理器(LVM)的 Linux 发行版,这样你就可以先创建一个较小的硬盘。如果之后你的客体系统的空间快用完了,你可以按需增加磁盘的大小。 -> **注意**:我选择的访客系统为 Fedora,在 Fedora 的官网说明:[Fedora 至少需要分配 20GB 的空闲磁盘空间][13]。我强烈建议你遵守该规范。在这里,我选择了 8GB,以便稍后演示如何用命令行增加磁盘空间。如果你是 Linux 新手,或者对命令行没有经验,请依旧选择 20GB。 +> **注意**:我选择的客体系统为 Fedora,在 Fedora 的官网说明:[Fedora 至少需要分配 20GB 的空闲磁盘空间][13]。我强烈建议你遵守该规范。在这里,我选择了 8GB,以便稍后演示如何用命令行增加磁盘空间。如果你是 Linux 新手,或者对命令行没有经验,请依旧选择 20GB。 ![Setting hard disk size][14] -创建好硬盘驱动器后,从 VirtualBox 主窗口的列表中选择新创建的虚拟机,然后单击**设置**。在设置菜单中,点击**系统**,然后选择**处理器**标签。默认情况下,VirtualBox 只向访客系统分配一个 CPU 内核。在现代多核 CPU 计算机上,分配至少两个内核是没有任何问题的,这能显著地加快访客系统的速度: +创建好硬盘驱动器后,从 VirtualBox 主窗口的列表中选择新创建的虚拟机,然后单击“设置Settings”。在设置菜单中,点击“系统System”,然后选择“处理器Processor”标签。默认情况下,VirtualBox 只向客体系统分配一个 CPU 内核。在现代多核 CPU 计算机上,分配至少两个内核是没有任何问题的,这能显著地加快客体系统的速度: ![Assigning cores to guest system][15] @@ -81,55 +81,56 @@ VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要 ![Network settings][16] 你也可以创建多个网络适配器。以下是网络适配器最常见的类型: - * **NAT:** NAT适配器能自动执行 [网络地址转换][17]。从外部看,主机和访客系统使用着相同的 IP 地址。你无法通过网络从主机系统内访问访客系统。(尽管,你也可以通过定义 [端口转发][18],来访问某些服务。)当你的主机系统可以访问互联网时,则你的访客系统也可以访问互联网。NAT 不再需要进一步的配置。 - * _如果你只需要让访客系统接入互联网就可以的话,请选择 **NAT**。_ - * **桥接适配器(Bridged adapter):** 在此配置中,访客系统和主机系统可以共享相同的物理以太网设备。这两个系统都将拥有独立的 IP 地址。从外部看,网络中会有两个独立的系统,它们共享相同的物理以太网适配器。这种设置更灵活,但需要更多的配置。 - * _如果你想要共享访客系统的网络服务的话,请选择 **桥接适配器**。_ - * **仅限主机的适配器(Host-only adapter):** 在此配置中,访客系统只能与主机,或在同一主机上运行的其他访客系统,相互通信。主机系统也可以连接到访客系统。但访客系统不能接入互联网或物理网络。 - * _如果你想要获得高安全性,请选择 **仅限主机的适配器**。_ -#### 分配操作系统映像 + * NAT:NAT 适配器能自动执行 [网络地址转换][17]。从外部看,主机和客体系统使用着相同的 IP 地址。你无法通过网络从主机系统内访问客体系统。(尽管,你也可以通过定义 [端口转发][18],来访问某些服务。)当你的主机系统可以访问互联网时,则你的客体系统也可以访问互联网。NAT 不再需要进一步的配置。 + * _如果你只需要让客体系统接入互联网就可以的话,请选择 “NAT”。_ + * 桥接适配器Bridged adapter:在此配置中,客体系统和主机系统可以共享相同的物理以太网设备。这两个系统都将拥有独立的 IP 地址。从外部看,网络中会有两个独立的系统,它们共享相同的物理以太网适配器。这种设置更灵活,但需要更多的配置。 + * _如果你想要共享客体系统的网络服务的话,请选择 “桥接适配器”。_ + * 仅限主机的适配器Host-only adapter:在此配置中,客体系统只能与主机,或在同一主机上运行的其他客体系统相互通信。主机系统也可以连接到客体系统。但客体系统不能接入互联网或物理网络。 + * _如果你想要获得高安全性,请选择 “仅限主机的适配器”。_ -在设置菜单中,点击**存储**,然后选择虚拟光盘驱动器。单击右侧的 **光盘图标**,然后点击**选择一个磁盘文件...**,然后分配你想要安装的、已下载的 Linux 发行版映像: +#### 分配操作系统镜像 + +在设置菜单中,点击“存储Storage”,然后选择虚拟光盘驱动器。单击右侧的 “光盘”图标,然后点击“选择一个磁盘文件……Choose a disk file…”,然后分配你想要安装的、已下载的 Linux 发行版镜像: ![Assigning OS image][19] ### 安装 Linux -现在,就已经配置好了虚拟机。右上角关闭**设置**菜单,返回主窗口。点击**绿色箭头**(即“开始”按钮)。虚拟机将从虚拟光盘驱动器启动,你将发现你已经进入到 Linux 发行版的安装程序中: +现在,就已经配置好了虚拟机。右上角关闭“设置Settings”菜单,返回主窗口。点击“绿色箭头”(即“开始”按钮)。虚拟机将从虚拟光盘驱动器启动,你将发现你已经进入到 Linux 发行版的安装程序中: ![VirtualBox Fedora installer][20] #### 设置分区 -安装程序将在安装过程中要求你提供分区信息。选择**自定义(Custom)**: +安装程序将在安装过程中要求你提供分区信息。选择“自定义Custom”: ![Selecting Custom partition configuration][21] -> **注意:** 我假设,你创建这一虚拟机的目的是为了测试。此外,你也无需关心访客系统的休眠,因为此功能会由 VirtualBox 来隐式地提供。因此,你可以省略交换分区,以节省主机系统的磁盘空间。请记住,如果你需要的话,你可以稍后自己添加交换分区。在 [Linux 系统交换空间的介绍][22] 这篇文章中,作者 David Both 进一步解释了如何添加交换分区,并选择交换分区正确的大小。 +> **注意:** 我假设,你创建这一虚拟机的目的是为了测试。此外,你也无需关心客体系统的休眠,因为此功能会由 VirtualBox 来隐式地提供。因此,你可以省略交换分区,以节省主机系统的磁盘空间。请记住,如果你需要的话,你可以稍后自己添加交换分区。在 《[Linux 系统交换空间的介绍][22]》 这篇文章中,作者 David Both 进一步解释了如何添加交换分区,并选择交换分区正确的大小。 Fedora 33 及之后更高的版本提供了一个 [zram 分区][23],zram 分区可以用于存放分页和交换、并经过压缩过后的硬盘数据。zram 分区可以按需地调整大小,并且它比硬盘交换分区快得多。 -为了简单,我们只添加以下两个挂载点(mount point): +为了简单,我们只添加以下两个挂载点Mount Point: ![Adding mount points][24] 保存更改,接下来我们继续安装。 -### 安装 VirtualBox 增强功能 Guest Additions +### 安装 VirtualBox 增强功能 -完成安装后,从硬盘驱动器启动,并登录到虚拟机。现在,你可以安装 VirtualBox 增强功能,其中包括特殊的设备驱动程序和系统应用程序,他们能提供以下内容: +完成安装后,从硬盘驱动器启动,并登录到虚拟机。现在,你可以安装 VirtualBox 增强功能VirtualBox Guest Additions,其中包括特殊的设备驱动程序和系统应用程序,它们能提供以下功能: * 共享剪贴板 * 共享文件夹 * 更好的性能 * 可自由扩展的窗口大小 -点击顶部菜单栏的**设备**,然后选择**插入增强功能的CD映像...**,来安装 VirtualBox 增强功能: +点击顶部菜单栏的“设备Devices”,然后选择“插入增强功能的 CD 镜像……Insert Guest Additions CD image...”,来安装 VirtualBox 增强功能: ![Selecting Guest Additions CD image][25] -在大多数 Linux 发行版上,带有增强功能的CD映像会自动挂载,并且能够在 File Browser 文件管理器中找到。Fedora 会问你是否要运行安装脚本。单击**运行**,并授予该安装进程 root 权限: +在大多数 Linux 发行版上,带有增强功能的 CD 镜像会自动挂载,并且能够在文件管理器中找到。Fedora 会问你是否要运行安装脚本。单击“运行Run”,并授予该安装进程 root 权限: ![Enabling Guest Additions autorun][26] @@ -141,7 +142,7 @@ Fedora 33 及之后更高的版本提供了一个 [zram 分区][23],zram 分 ![Fedora hard disk running out of space][27] -正如我提到的,Fedora 官网建议安装时分配 20GB 的磁盘空间。因为 8GB 是 Fedora 33 安装启动就需要的最少空间。没有新安装其他软件(除了 VirtualBox Guest Additions),启动项就几乎占用了整个 8GB 的可用空间。这时候,不要打开 GNOME 软件中心或任何其他可能从互联网下载文件的东西。 +正如我提到的,Fedora 官网建议安装时分配 20GB 的磁盘空间。因为 8GB 是 Fedora 33 安装启动就需要的最少空间。没有安装其他软件(除了 VirtualBox 增强功能)的一个新安装的系统就几乎占用了整个 8GB 的可用空间。这时候,不要打开 GNOME 软件中心或任何其他可能从互联网下载文件的东西。 幸运的是,我选择了附带有 LVM 的 Fedora,这样我就可以用命令行轻松地修复这个问题。 @@ -150,10 +151,10 @@ Fedora 33 及之后更高的版本提供了一个 [zram 分区][23],zram 分 关闭虚拟机。如果你的主机系统运行的是 Windows,请打开终端,并进入到 `C:\Program Files\Oracle\VirtualBox` 目录下。使用以下命令,将磁盘大小扩大到 12,000MB: ``` -`VBoxManage.exe modifyhd "C:\Users\StephanA\VirtualBox VMs\Fedora_33\Fedora_33.vdi" --resize 12000` +VBoxManage.exe modifyhd "C:\Users\StephanA\VirtualBox VMs\Fedora_33\Fedora_33.vdi" --resize 12000 ``` -然后启动虚拟机,并打开**磁盘**的利用。你可以看到你刚刚新创建且未分配的可用空间。选择**可用空间**,然后单击 **+** 按钮: +然后启动虚拟机,并打开“磁盘Disks”工具。你可以看到你刚刚新创建且未分配的可用空间。选择“可用空间Free Space”,然后单击 “+” 按钮: ![Free space before adding][28] @@ -161,12 +162,11 @@ Fedora 33 及之后更高的版本提供了一个 [zram 分区][23],zram 分 ![Creating a new partition and setting size][29] -You don't want to create a filesystem or anything else on your new partition, so select **Other**: -如果你不想在新分区上创建文件系统或任何其他内容,请选择**其他**: +如果你不想在新分区上创建文件系统或任何其他内容,请选择“其他Other”: ![Selecting "other" for partition volume type][30] -选择**无文件系统**: +选择“无文件系统No Filesystem”: ![Setting "No filesystem" on new partition][31] @@ -174,26 +174,26 @@ You don't want to create a filesystem or anything else on your new partition, so ![VirtualBox after adding new partition][32] -虚拟机有了一个新的分区设备:**/dev/sda3**。通过输入 `vgscan` ,来检查你的 LVM 卷组,找到 **fedora_localhost_live** 这一LVM 卷组 : +虚拟机有了一个新的分区设备:`/dev/sda3`。通过输入 `vgscan` ,来检查你的 LVM 卷组,找到 `fedora_localhost_live` 这一 LVM 卷组 : ![Checking LVM volume group by typing vgscan:][33] -现在,已经万事俱备了。在新分区 **/dev/sda3** 中扩展卷组 **fedora_localhost_live**: +现在,已经万事俱备了。在新分区 `/dev/sda3` 中扩展卷组 `fedora_localhost_live`: ``` -`vgextend fedora_localhost-live /dev/sda3` +vgextend fedora_localhost-live /dev/sda3 ``` ![vgextend command output][34] -由于卷组较大,你可以增加逻辑卷的大小。命令 `vgdisplay` 显示了共有 951 个可用的空闲扩展: +由于卷组比逻辑卷大,你可以增加逻辑卷的大小。命令 `vgdisplay` 显示了共有 951 个可用的物理扩展(PE): ![vgdisplay command output][35] -将逻辑卷增加 951 个扩展: +将逻辑卷增加 951 个物理扩展: ``` -`lvextend -l+951 /dev/mapper/fedora_localhost--live-root` +lvextend -l+951 /dev/mapper/fedora_localhost--live-root ``` ![lvextend command output][36] @@ -201,16 +201,16 @@ You don't want to create a filesystem or anything else on your new partition, so 在增加了逻辑卷后,最后一件事就是调整文件系统的大小: ``` -`resize2fs /dev/mapper/fedora_localhost--live-root` +resize2fs /dev/mapper/fedora_localhost--live-root ``` ![resize2fs command output][37] -这样磁盘空间就增加完成了!检查**磁盘使用分析器**,你就可以看到扩展空间已经可用于文件系统了。 +这样磁盘空间就增加完成了!检查“磁盘使用分析器Disk Usage Analyzer”,你就可以看到扩展空间已经可用于文件系统了。 ### 总结 -使用虚拟机,你可以检查在一个特定的操作系统或一个特定版本的操作系统,软件是如何操作的。除此之外,你还可以尝试任何想测试的 Linux 发行版,而不必担心系统损坏。对于高级用户来说,VirtualBox 在测试、网络和模拟方面提供了广泛的可能性。 +使用虚拟机,你可以检查在一个特定的操作系统或一个特定版本的操作系统、软件是如何操作的。除此之外,你还可以尝试任何想测试的 Linux 发行版,而不必担心系统损坏。对于资深用户来说,VirtualBox 在测试、网络和模拟方面提供了广泛的可能性。 -------------------------------------------------------------------------------- @@ -219,7 +219,7 @@ via: https://opensource.com/article/21/6/try-linux-virtualbox 作者:[Stephan Avenwedde][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 66fa0b68f3241a7d38c2521f31ba43f23beb0610 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 27 Oct 2022 10:51:57 +0800 Subject: [PATCH 1730/3123] R --- ...0210629 Try Linux on any operating system with VirtualBox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20210629 Try Linux on any operating system with VirtualBox.md b/published/20210629 Try Linux on any operating system with VirtualBox.md index 5a7771408e..8c05f463fc 100644 --- a/published/20210629 Try Linux on any operating system with VirtualBox.md +++ b/published/20210629 Try Linux on any operating system with VirtualBox.md @@ -50,7 +50,7 @@ VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要 ![Set VM memory size][9] -我的建议是:**不要吝啬分配给客体操作系统使用的内存!**当客体操作系统的内存不足时,客体系统将开始从随机存取存储器(RAM)向硬盘驱动器进行内存分页,这样会极大地恶化系统的性能和响应能力。如果底层的主机系统开始分页,你很可能不会注意到。对于具有图形化桌面环境的 Linux 工作站系统,我建议至少分配 4GB 内存。 +我的建议是:**不要吝啬分配给客体操作系统使用的内存!** 当客体操作系统的内存不足时,客体系统将开始从随机存取存储器(RAM)向硬盘驱动器进行内存分页,这样会极大地恶化系统的性能和响应能力。如果底层的主机系统开始分页,你很可能不会注意到。对于具有图形化桌面环境的 Linux 工作站系统,我建议至少分配 4GB 内存。 接下来,创建虚拟磁盘: From cb93e361550fabbcd1a514437fdcff34329e9313 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Thu, 27 Oct 2022 11:18:39 +0800 Subject: [PATCH 1731/3123] =?UTF-8?q?Update=2020221020.4=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Xubuntu=2022.10=20Releases=20With=20Xfce=20Upgrades?= =?UTF-8?q?,=20and=20Other=20Refinements.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...untu 22.10 Releases With Xfce Upgrades, and Other Refinements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md b/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md index 82fc042997..8c211264fa 100644 --- a/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md +++ b/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/xubuntu-22-10-release/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "littlebirdnest" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 684762997b412cd54e395598e58a6ecb0e01bdd6 Mon Sep 17 00:00:00 2001 From: Donkey Date: Thu, 27 Oct 2022 11:35:55 +0800 Subject: [PATCH 1732/3123] translating --- .../20221013 What you need to know about compiling code.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221013 What you need to know about compiling code.md b/sources/tech/20221013 What you need to know about compiling code.md index 0f811393a8..c5d7f16a36 100644 --- a/sources/tech/20221013 What you need to know about compiling code.md +++ b/sources/tech/20221013 What you need to know about compiling code.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/compiling-code" [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey-Hao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -90,7 +90,7 @@ via: https://opensource.com/article/22/10/compiling-code 作者:[Alan Smithee][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 52e849824d839be94dee9fd1be57d0f4e116bef7 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Thu, 27 Oct 2022 14:10:38 +0800 Subject: [PATCH 1733/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=A5=BD=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s With Xfce Upgrades, and Other Refinements.md | 89 +++++++++---------- 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md b/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md index 8c211264fa..7967fd9a20 100644 --- a/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md +++ b/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md @@ -7,104 +7,103 @@ [#]: publisher: " " [#]: url: " " -Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements +带有 Xfce 升级和其他改进的 Xubuntu 22.10 版本 ====== -Xubuntu 22.10 provides a refined XFCE experience. Learn more about it here. +Xubuntu 22.10 提供了精致的 XFCE 体验。点击此处了解详情。 ![Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements][1] -Xubuntu is an XFCE-powered official Ubuntu flavour. +Xubuntu 是基于 XFCE 的官方 Ubuntu 风格。 -It is also one of the best lightweight Linux distributions available. +它也是可用的最好的轻量级 Linux 发行版之一。 -With the latest Xubuntu 22.10 "**Kinetic Kudu**" release, you can expect desktop environment improvements, feature additions, and several refinements across the board. +随着最新的 Xubuntu 22.10“ Kinetic Kudu ”版本,您可以期待桌面环境的改进、功能的添加和全面的改进。 -### Xubuntu 22.10: What's New? +### Xubuntu 22.10:有什么新功能? ![Xubuntu 22.10 home][2] -Xubuntu 22.10 brings in some exciting upgrades. Some of the highlights include: +Xubuntu 22.10 带来了一些令人兴奋的升级。一些亮点包括: -- **Xfce 4.16 (or Xfce 4.17 dev)** -- **Catfish appearance update.** -- **New icon refresh and deprecated elementary-xfce-darker-theme.** -- **Mousepad search history.** -- **Thundar file manager improvements.** -- **Xfce task manager.** +- **Xfce 4.16(或 Xfce 4.17 开发版)** +- **鲶鱼外观更新。** +- **新图标刷新和弃用的基础的 xfce 黑色主题。** +- **Mousepad搜索历史.** +- **Thundar 文件管理器的改进.** +- **Xfce 任务管理器.** -> 💡Xubuntu 22.10 will be supported for nine months until **July 2023**. If you want stability over features, you should prefer using an [LTS version][3]. +> 💡Xubuntu 22.10 将支持九个月,直到2023 年 7 月。如果您想要稳定性而不是功能,您应该更喜欢使用 [LTS 版本][3]. -#### XFCE 4.17 Development Version or XFCE 4.16? +#### XFCE 4.17 开发版还是 XFCE 4.16? -The release notes for Xubuntu 22.10 say it features the Xfce 4.17 development version. +Xubuntu 22.10 的发行说明说它具有 Xfce 4.17 开发版本。 -However, when I installed the beta version for Xubuntu 22.10 (and updated it to the latest), it said it features Xfce 4.16. +但是,当我安装 Xubuntu 22.10 的 beta 版本(并将其更新到最新版本)时,只具有 Xfce 4.16。 ![][4] -Not sure if they pulled out Xfce 4.17 development version or if Xfce 4.16 is here for now. +不确定他们是否退出了 Xfce 4.17 开发版本,或者 Xfce 4.16 现在是否存在。 -#### Catfish Appearance +#### Catfish 外观 ![xubuntu catfish][5] -Catfish is a file search utility on Xubuntu. With the new upgrade, it has a refreshed appearance with tweaks under the hood. +Catfish 是 Xubuntu 上的一个文件搜索工具。通过新的升级,它具有焕然一新的外观,并调整了引擎。 -You also get an "**Open With**" context menu when interacting with the files you searched for. +与您搜索的文件交互时,您还会获得一个“打开方式”上下文菜单。 ![][6] -A pretty subtle but valuable feature addition for catfish. +catfish 是一个非常微妙但有价值的功能添加。 -#### GNOME 43 Software +#### GNOME 43 软件 -Among notable app updates, GNOME's latest Software Center is a nice thing to have. This is how it looks with Xubuntu 22.10: +在值得注意的应用程序更新中,GNOME 的最新软件中心是一个不错的选择。这是 Xubuntu 22.10 的外观: ![][7] -Of course, it may not give you a consistent look with other applications on Xfce, but I think you can give it an excuse. +当然,它可能无法让您与 Xfce 上的其他应用程序保持一致,但我认为您应该不会介意。 -#### Icon Updates +#### 图标更新 -With elementary-xfce 0.17 icon update, there are many new icons and cleaner options that provide a consistent Xubuntu desktop experience. +随着基础的xfce 0.17 图标更新,有许多新图标和更简洁的选项可提供一致的Xubuntu 桌面体验。 ![][8] -Additionally, the **elementary-xfce-darkest theme** icon pack has been deprecated. +此外,基础的xfce黑色主题图标包已被弃用。 ![][9] -#### Task Manager Right-Click Option +#### 任务管理器右键选项 ![][10] -You can now copy the full process path to the clipboard. This could be useful to troubleshoot or stop things from the command line when required. - -### Other Enhancements +您现在可以将完整的进程路径复制到剪贴板。这对于在需要时从命令行进行故障排除或停止操作很有用。 +### 其他增强功能 ![][11] -There are several other notable changes that include: +还有其他几个值得注意的变化,包括: -- **Linux Kernel 5.19** -- **Mozilla Firefox 105.** -- **Alt-Tab view improved with more prominent icons.** -- **Mosaic puzzle added to SGT Puzzles collection.** -- **Thunar archive plugin now supports compressing zip files.** -- **Mousepad text editor now includes a search history and a few more tweaks.** +- **Linux 内核 5.19** +- **火狐浏览器 105。** +- **Alt-Tab 视图通过更突出的图标进行了改进。** +- **马赛克拼图添加到 SGT 拼图系列。** +- **马赛克拼图添加到 SGT 拼图系列。** +- **Mousepad文本编辑器现在包括搜索历史记录和更多调整。** -To learn more about the changes, check out the [official release notes][12]. +要了解有关更改的更多信息,请查看[官方发行说明][12]。 -### Download Xubuntu 22.10 +### 下载Xubuntu 22.10 -You can download the latest ISO from [Ubuntu's central image repository][13] or its [official website][14]. +你可以下载最新的ISO文件从[Ubuntu 的中央映像存储库][13]或它的[官方网站][14]. -It might take a while for its official website to make the ISO available. +官方网站可能需要一段时间才能提供 ISO。 -[Download Xubuntu 22.10][14] +[下载Xubuntu 22.10][14] -💬 _What do you think about Xubuntu 22.10? Let me know your thoughts in the comments._ +💬 您如何看待 Xubuntu 22.10?在评论中让我知道你的想法。 -------------------------------------------------------------------------------- From c9dbc5bf489c6976bb2d1f1b5711853a136f4ab6 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Thu, 27 Oct 2022 09:38:39 +0000 Subject: [PATCH 1734/3123] =?UTF-8?q?Update=2020221022.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Use=20open=20source=20commands=20?= =?UTF-8?q?in=20Powershell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221022.3 ⭐️⭐️ Use open source commands in Powershell.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md b/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md index 0edffb3061..247f4daca0 100644 --- a/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md +++ b/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/set-path-powershell" [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "qfzy1233" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -79,7 +79,7 @@ via: https://opensource.com/article/22/10/set-path-powershell 作者:[Alan Smithee][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[qfzy1222](https://github.com/qfzy1233) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 2684ec643a4619f1a91d95c73584245172641112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Thu, 27 Oct 2022 20:58:36 +0800 Subject: [PATCH 1735/3123] Translating --- ... to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md b/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md index 5dc16933d9..314a431bab 100644 --- a/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md +++ b/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3a16d404606004eb526c4ee941fafbd29ecb58bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Thu, 27 Oct 2022 21:25:22 +0800 Subject: [PATCH 1736/3123] Translated --- ...ow to Recover Arch Linux Install via chroot.md | 110 ------------------ ...ow to Recover Arch Linux Install via chroot.md | 110 ++++++++++++++++++ 2 files changed, 110 insertions(+), 110 deletions(-) delete mode 100644 sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md create mode 100644 translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md diff --git a/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md deleted file mode 100644 index 07d01e2591..0000000000 --- a/sources/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: subject: "How to Recover Arch Linux Install via chroot" -[#]: via: "https://www.debugpoint.com/recover-arch-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Recover Arch Linux Install via chroot -====== - -**This quick guide explains some of the steps which may come in handy to recover an Arch Linux Install.** - -Being a rolling release, sometimes things break in Arch Linux. Not because of your own actions but hundreds of other reasons, such as a new Kernel vs your hardware or software compatibility. But still, Arch Linux is still better and provides the latest packages and applications. - -But sometimes, it gives you trouble, and you end up with a blinking cursor and nothing else. - -So, in those scenarios, instead of re-formatting or reinstalling, you may want to try to recover the installation, including the data, before giving up your hope. This guide outlines some steps in that direction. - -### Recover Arch Linux Installation - -- The first step is to create a bootable LIVE USB with Arch Linux. Download the .ISO from this link and create a bootable .ISO. You can check out this guide on how to create bootable .ISO using Etcher. Remember this step requires another working stable system, obviously, as your current system is not usable. - -[download arch linux][1] - -- You need to know on **which partition your Arch Linux** is installed. This is a crucial step. If you don’t know, you can use GParted to find out. Or check in your Grub menu, Or you can run the below command to find out. This will list all your disk partitions, size, and labels. - -``` -sudo lsblk -o name,mountpoint,label,size,uuid -``` - -- Once done, plug in the USB stick and boot from it. And you should see the Arch Linux prompt in the LIVE medium. - -- Now, mount to the Arch Linux partition using the below. Change the `/dev/sda3` to your respective partition. - -``` -mount /dev/sda3 /mnt -arch-chroot /mnt -``` - -- The arch-chroot command will mount your Arch Linux partition in the terminal, so log in using your Arch credentials. Now, you have the following options based on what you want at this stage. - -- You can take backups of your data by going through /home folders. In case the troubleshooter doesn’t work. You may copy the files to an external USB or another partition. - -- Verify the log files, especially the pacman logs, because an unstable system may be caused by upgrading some packages, such as graphics driver or any other driver. Based on the log, you may want to downgrade any specific package if you want. -- You may use the below command to view the last 200 lines of the pacman log file to find out any failing items or dependency removal. - -``` -tail -n 200 /var/log/pacman.log | less -``` - -- The above command gives you 200 lines from the end of the pacman.log file to verify. Now, carefully check which of the packages were updated since your successful boot. - -- And note down the package name and version somewhere. And you may try to downgrade packages one-by-one or if you think a specific package created a problem. Use the -U switch of pacman command to downgrade. - -``` -pacman -U -``` - -- You can run the following to start your Arch system after downgrading if any. - -``` -exec /sbin/init -``` - -- Check the status of your display manager and whether if there are any errors. Sometimes, the display manager creates a problem which can’t communicate with X Server. For example, if you are using lightdm, then you can check its status via the below. - -``` -systemctl status lightdm -``` - -- Or, you may want to start it via the below command and check the error. - -``` -lightdm --test-mode --debug -``` - -- Here is an example of lightdm failure, which caused an unstable Arch system. - -![lightdm - test mode][2] - -- Or check via kicking off the X server using `startx`. - -- In my experience, if you see errors in the above command, try to install another display manager, such as **sddm** and enable it. It may eliminate the error. - -- Try the above steps based on the state of your system, and troubleshoot. For errors specific to display manager lightdm, we have a [guide][3] which you may want to check out. -- If you are using sddm, then check out [these troubleshooting steps][4] if something works. - -### Closing Notes - -Every installation is different. And above steps may/may not work for you. But it is worth a try, and as per my experience, it works. If it works, well, good for you. Either way, let me know how it goes in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/recover-arch-linux/ - -作者:[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://archlinux.org/download/ -[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg -[3]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/ -[4]: https://wiki.archlinux.org/title/SDDM#Troubleshooting diff --git a/translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md new file mode 100644 index 0000000000..c89805c7d6 --- /dev/null +++ b/translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md @@ -0,0 +1,110 @@ +[#]: subject: "How to Recover Arch Linux Install via chroot" +[#]: via: "https://www.debugpoint.com/recover-arch-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何通过 chroot 恢复 Arch Linux 安装 +====== + +**这篇速成指南诠释了一些步骤,它对于恢复一个 Arch Linux 安装很有帮助。** + +作为一个滚动发布版本,Arch Linux 有时会崩溃。那不是因为你自身的行为,而是因为数百个其它的原因,例如一个新内核与你的硬件或软件的兼容性。但是,即使如此,Arch Linux 仍然是比较优秀的,并且提供最新的软件包和应用程序。 + +但是,有些时候,它会给你带来麻烦,最后你只会看到一个闪烁的光标。 + +因此,在这种情况下,在你放弃希望前,你可能希望尝试恢复系统的安装以及数据,而不是重新格式化或重新安装。这篇指南在这些方面概述了一些步骤。 + +### 恢复 Arch Linux 安装 + +- 第一步骤是创建一个可启动的 Arch Linux 的 LIVE USB 。从下面的链接中下载 ISO 镜像文件,并创建一个可启动的 ISO 的启动盘。你可以查看这篇关于如何使用 Etcher 创建可启动的 ISO 的启动盘的指南。记住,这一步骤需要在另一个工作稳定的系统上完成,很明显,这是因为你当前系统是不可用的。 + +[下载 arch linux][1] + +- 你需要知道在 **哪个分区上安装了你的 Arch Linux** 。这是关键的一步。如果你不知道,你可以使用 GParted 来找出来。或者在你的 Grub 菜单中查看,或你可以运行下面的命令来找出来。这将列出你所有的磁盘分区、大小和标签。 + +``` +sudo lsblk -o name,mountpoint,label,size,uuid +``` + +- 在完成后,插入 USB 设备,并设置从中启动。你应该会在 LIVE 介质中看到 Arch Linux 提示符。 + +- 现在,使用下面的命令挂载 Arch Linux 分区。将 `/dev/sda3` 更改为你实际对应的分区。 + +``` +mount /dev/sda3 /mnt +arch-chroot /mnt +``` + +- arch-chroot 命令将在终端中挂载你的 Arch Linux 分区,如此,以便使用你的 Arch 用户名和密码来登录系统。现在,取决于你在这个阶段的各种需要,你可能有下面的一些选项。 + +- 你可以前往 /home 文件夹来备份你的数据。为防止不能正常的解决重大问题。你可以复制这些文件到一块外部的 USB 磁盘或其它的分区。 + +- 验证日志文件,尤其是 pacman 日志,因为升级一些软件包可能会导致系统不稳定工作,例如,图形驱动程序或其它一些驱动程序。依据日志的记载,如果你有需要的话,你可以降级一些具体指定的软件包。 +- 你可以使用下面的命令来查看 pacman 日志文件的最新的 200 行日志,来找出一些引起失败的项或依赖项的缺失。 + +``` +tail -n 200 /var/log/pacman.log | less +``` + +- 上面的命令向你给出 pacman.log 文件的末尾处的 200 行来用于查对。现在,仔细检查自你成功启动以来更新了哪些软件包。 + +- 并且,在某个地方下,记录下软件包的名称和版本。你可以尝试逐个降级软件包,或者,如果你认为是某个特定的软件包造成的问题话,你可以使用 pacman 命令的 -U 开关选项来降级它。 + +``` +pacman -U +``` + +- 在降级后(如果有一些软件包进行降级的话),你可以运行下面的命令来启动你的 Arch 系统。 + +``` +exec /sbin/init +``` + +- 检查你的显示管理器的状态,并检查其是否有一些错误。有时,显示管理器会产生不能与 X 服务器 X Server 通信的问题。例如,如果你正在使用 lightdm ,那么你可以通过下面的命令来检查它的状态。 + +``` +systemctl status lightdm +``` + +- 或者,你可能希望通过下面的命令来启动它并检查错误。 + +``` +lightdm --test-mode --debug +``` + +- 这里是一个 lightdm 故障的示例,它导致了 Arch 系统不稳定工作。 + +![lightdm - test mode][2] + +- 或者,使用 `startx` 来启动 X 服务器 进行检查。 + +- 根据我的经验,如果你在上面的命令中看到这些错误,尝试安装另外一个显示管理器,例如, **sddm** 并启动它。它可以消除错误。 + +- 根据你的系统的实际状态来尝试上面的步骤,并解决重大问题。针对特定的显示管理器 lightdm 的错误,我们有一份[指南][3],你可能会想查看它。 +- 如果你正在使用 sddm ,那么,检查 [这些解决重大问题的步骤][4] 是否工作。 + +### 结束语 + +每个系统安装都是不同的。上面的步骤不一定适合你。但是,它值得一试,根据我的经验,它是工作的。如果它工作,对你有好处。不管怎样,在下面的评论区让我知晓它是如何进行的。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/recover-arch-linux/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://archlinux.org/download/ +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg +[3]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/ +[4]: https://wiki.archlinux.org/title/SDDM#Troubleshooting From 8ab392a4861db98e3c0f53cb2af4b903aee1dce2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 28 Oct 2022 08:31:55 +0800 Subject: [PATCH 1737/3123] translated --- ... to Install Viber in Ubuntu and Other Linux.md | 89 ------------------ ... to Install Viber in Ubuntu and Other Linux.md | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 89 deletions(-) delete mode 100644 sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md create mode 100644 translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md diff --git a/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md b/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md deleted file mode 100644 index 17c1593637..0000000000 --- a/sources/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "How to Install Viber in Ubuntu and Other Linux" -[#]: via: "https://www.debugpoint.com/install-viber-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Viber in Ubuntu and Other Linux -====== - -**Here’s a quick guide on how you can install Viber in Ubuntu and other Linux systems.** - -[Viber][1] is a free, secure calling and messaging program for all popular mobile platforms and operating systems. - -It has a rich set of features such as voice/video calls, text messages with GIFs, stickers, photos, and videos. In addition, Viber features group chats, group calls and disappearing messages. - -Viber is a closed-source program, but available as free for Linux distributions with native executable clients. - -Here’s how to install it. - -### Install Viber on Linux - -It is available as an AppImage executable, deb and rpm package. Follow the respective button below to download it directly. The average executable size is ~180MB. - -[Download Appimage for all Linux distros][2] - -[Deb executable for Ubuntu][3] - -RPM package for Fedora - -If you have downloaded AppImage, simply change the permission to executable from any file manager. Then run. - -- For Ubuntu, Linux Mint, Debian and related distributions, you can install deb package via [many methods][4]. - -- You may double-click and open via the installed software manager. Or install via dpkg command as below. - -``` -sudo dpkg -i viber.deb -``` - -- For Fedora and RPM-based packages, you can install via the following command. - -``` -sudo dnf localinstall viber.rpm -``` - -For Arch Linux and other distributions, you can use the Appimage as I explained above. - -### Usage - -After you finish installing Viber, open it via the application menu. Here are a couple of things you need to remember. - -Before you start using Viber from your Laptop/desktop, you need to set it up on your mobile phone. Download and install Viber for your mobile platform from the below links. - -- [Google Play Store][5] -- [Apple App Store][6] - -Once installed, set up Viber. Remember, it requires your mobile number to register. - -After setting up, open the app on the Linux desktop. And you should see a screen like the one below. - -![Viber is Running in Linux][7] - -Scan the QR code from your mobile phone app, and you should be ready to use Viber on your Linux desktop. - -**Note:** Since it is a closed-source app, make sure you understand the terms of this app and privacy-related situations while using Viber. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-viber-linux/ - -作者:[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.viber.com/ -[2]: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb -[3]: https://download.cdn.viber.com/desktop/Linux/viber.rpm -[4]: https://www.debugpoint.com/install-deb-files/ -[5]: https://play.google.com/store/apps/details?id=com.viber.voip&hl=en_IN&gl=US -[6]: https://apps.apple.com/us/app/viber-messenger-chats-calls/id382617920 -[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Viber-is-Running-in-Linux-1.jpg diff --git a/translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md b/translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..2c972b0998 --- /dev/null +++ b/translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md @@ -0,0 +1,91 @@ +[#]: subject: "How to Install Viber in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/install-viber-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 和其他 Linux 中安装 Viber +====== + +**这是有关如何在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。** + +[Viber][1] 是一个免费、安全的呼叫和聊天程序,适用于所有流行的移动平台和操作系统。 + +它具有丰富的功能,例如语音/视频通话、带有 GIF 的文本消息、贴纸、照片和视频。此外,Viber 还具有群聊、群呼和消失消息功能。 + +Viber 是一个闭源程序,但有免费的 Linux 原生可执行客户端。 + +下面是安装它的方法。 + +### 在 Linux 上安装 Viber + +它以 AppImage 可执行文件、deb 和 rpm 包的形式提供。按照下面的相应按钮直接下载。平均可执行文件大小约为 180MB。 + +[下载适用于所有 Linux 发行版的 Appimage][2] + +[适用于 Ubuntu 的 Deb 可执行文件][3] + +[Fedora 的 RPM 包][8] + +如果你已下载 AppImage,只需从任意文件管理器将权限更改为可执行文件即可。然后运行。 + + +- 对于 Ubuntu、Linux Mint、Debian 和相关发行版,你可以通过[多种方法][4]安装 deb 包。 + +- 你可以通过已安装的软件管理器双击打开。或者通过 dpkg 命令安装,如下所示。 + +``` +sudo dpkg -i viber.deb +``` + +- 对于 Fedora 和基于 RPM 的软件包,你可以通过以下命令安装。 + +``` +sudo dnf localinstall viber.rpm +``` + +对于 Arch Linux 和其他发行版,你可以使用我上面提到的 Appimage。 + +### 使用 + +完成安装 Viber 后,通过应用菜单打开它。以下是你需要记住的几件事。 + +在从笔记本电脑/台式机开始使用 Viber 之前,你需要在手机上进行设置。从以下链接为你的移动平台下载并安装 Viber。 + +- [谷歌应用商店][5] +- [苹果应用商店][6] + +安装后,设置 Viber。请记住,它需要你的手机号码才能注册。 + +设置完成后,在 Linux 桌面上打开应用。你应该会看到如下页面。 + +![Viber 在 Linux 中运行][7] + +从你的手机应用扫描二维码,你应该可以在 Linux 桌面上使用 Viber。 + +**注意:** 由于它是一个闭源应用,请确保你在使用 Viber 时了解此应用的条款和与隐私相关的情况。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-viber-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.viber.com/ +[2]: https://download.cdn.viber.com/desktop/Linux/viber.AppImage +[3]: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb +[4]: https://www.debugpoint.com/install-deb-files/ +[5]: https://play.google.com/store/apps/details?id=com.viber.voip&hl=en_IN&gl=US +[6]: https://apps.apple.com/us/app/viber-messenger-chats-calls/id382617920 +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Viber-is-Running-in-Linux-1.jpg +[8]: https://download.cdn.viber.com/desktop/Linux/viber.rpm From eabf0f4eca04e2d923e120dd5d4fbe0655cf3d59 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 28 Oct 2022 08:41:02 +0800 Subject: [PATCH 1738/3123] RP @chai001125 https://linux.cn/article-15185-1.html --- ... After Installing Ubuntu 22.10 [With Bonus Tip].md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) rename {translated/tech => published}/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md (87%) diff --git a/translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md b/published/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md similarity index 87% rename from translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md rename to published/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md index 3520184c13..6e07f8247a 100644 --- a/translated/tech/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md +++ b/published/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md @@ -3,18 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15185-1.html" 安装 Ubuntu 22.10 后要做的 10 件事 ====== -**以下是我们安装 Ubuntu 22.10 “Kinetic Kudu”(GNOME 版)后,推荐做的 10 件事列表。** +> 以下是我们安装 Ubuntu 22.10 “Kinetic Kudu”(GNOME 版)后,推荐做的 10 件事列表。 ![][1] -Ubuntu 22.10 带来了很多令人兴奋的新功能,例如 GNOME 43、最新的内核、重新设计的托盘菜单、文件功能和 Pipewire 等 [新功能][2]。 +Ubuntu 22.10 带来了很多令人兴奋的新功能,例如 GNOME 43、最新的内核、重新设计的托盘菜单、文件应用的功能和 Pipewire 等 [新功能][2]。 我相信你已经迫不及待地想尝试 Ubuntu 22.10 上的这些新功能了。 @@ -36,19 +36,19 @@ sudo apt update && sudo apt upgrade #### 2、删除 Firefox Snap,并安装 Flatpak 或者 deb 版本的 Firefox -自去年发布的 Ubuntu 21.10 版本以来,默认的网页浏览器 Firefox 开始以 Snap 软件包的形式出现。如果你是普通用户,这可能不是一个问题或者需要担心的事情。但是出于几个原因,例如 Snap 软件包的 Firefox 启动时间较长、且当 Firefox 有后端更新时,会有不必要的 Snap 更新通知等等原因,导致许多用户不太喜欢 Firefox 的 Snap 软件包。 +自去年发布的 Ubuntu 21.10 版本以来,默认的网页浏览器 Firefox 开始以 Snap 软件包的形式出现。如果你是普通用户,这可能不是一个问题或者需要担心的事情。但是出于几个原因,例如 Snap 软件包的 Firefox 启动时间较长、且当 Firefox 有后台更新时,会有不必要的 Snap 更新通知等等原因,导致许多用户不太喜欢 Firefox 的 Snap 软件包。 -因此,你可以按照 [我写的另一篇操作指南][3],来完全删除 Firefox 的 Snap 软件包。这一过程有点复杂,需要花费一点时间。删除完成后,再从个人软件包存档(PPA)安装 deb 版本的 Firefox,或者使用 [Flatpak 版本][4] 的 Firefox。 +因此,你可以按照 [我写的另一篇操作指南][3],来完全删除 Firefox 的 Snap 软件包。这一过程有点复杂,需要花费一点时间。删除完成后,再从个人软件包存档(PPA)安装 deb 版本的 Firefox,或者使用 [Flatpak 版本][4] 的 Firefox。 这是一个可选的动作,你也可以跳过这一步骤。 #### 3、安装并启用 Flatpak -虽然,几乎所有最近的 linux 发行版都会默认安装 Flatpak,但是 Ubuntu 并没有默认安装 Flatpak,这是因为 Ubuntu 使用了它自己的沙箱技术 Snap。 +虽然,几乎所有最新的 Linux 发行版都会默认安装 Flatpak,但是 Ubuntu 并没有默认安装 Flatpak,这是因为 Ubuntu 使用了它自己的沙箱技术 Snap。 但 Flatpak 这一应用程序还是最适合于每个人。Flatpak 能够帮助你快速安装多个应用程序,并在使用过程中无需担心依赖性和其他事情。 -大多数 Flatpak 应用程序都在集中的仓库 @ Flathub 中。 +大多数 Flatpak 应用程序都在集中的仓库 Flathub 中。 要在 Ubuntu 22.10 中启用 Flatpak 应用程序,请按照以下命令进行操作。 @@ -62,9 +62,9 @@ sudo apt install flatpakflatpak remote-add --if-not-exists flathub https://flath 我建议你在安装 Ubuntu 后,手动退出任何数据收集项。大家都知道,无论怎么努力尝试,在互联网上保护自己的隐私都很困难。因此,这些小步骤很重要。 -要配置隐私项,请打开设置并选择**隐私**。然后查看隐私菜单下列出的项目。 +要配置隐私项,请打开“设置Settings”并选择“隐私Privacy”。然后查看隐私菜单下列出的项目。 -此外,请确保禁用对 Ubuntu 服务器的后端报告。需要运行以下命令来手动禁用,因为在设置中没有禁用它的选项。 +此外,请确保禁用对 Ubuntu 服务器的后台报告。需要运行以下命令来手动禁用,因为在设置中没有禁用它的选项。 ``` sudo ubuntu-report -f send no @@ -74,13 +74,13 @@ sudo ubuntu-report -f send no #### 5、探索 GNOME 43 的功能 -在 Ubuntu 22.10 版本中,最具视觉和功能性的变化是 GNOME 43。因为 GNOME 43 有一些根本性和核心变化,所以它会影响每个人和他们的工作。GNOME 43 带来了一个新的药丸形状的托盘菜单,并更新了具有文件和 GNOME Web 等新功能的原生应用程序。 +在 Ubuntu 22.10 版本中,最具视觉和功能性的变化是 GNOME 43。因为 GNOME 43 有一些根本性和核心变化,所以它会影响每个人和他们的工作。GNOME 43 带来了一个新的药丸形状的托盘菜单,并更新了文件应用和 GNOME Web 等原生应用程序的功能。 请查看更为详细的 [GNOME 43 功能][7] 一文,以了解更多信息,或者你也可以自己探索 GNOME 43。 ![Quick Settings Demo in GNOME 43][8] -#### 6、确保音频与 Pipewire 配合使用 +#### 6、确保音频可以与 Pipewire 配合使用 如果你经常使用音频,或者你的工作范围涉及到声音捕获、播放等内容,请确保在 Ubuntu 22.10 中,你的音频在有线或蓝牙情况下都能正常工作。 @@ -88,7 +88,7 @@ sudo ubuntu-report -f send no #### 7、安装其他软件包 -确保你可以在 Ubuntu 桌面上,播放所有视频和音频格式是很重要的。如果你在设置期间跳过了额外的软件包安装,可以通过以下命令进行安装。 +确保你可以在 Ubuntu 桌面上播放所有视频和音频格式是很重要的。如果你在设置期间跳过了额外的软件包安装,可以通过以下命令进行安装。 ``` sudo apt install ubuntu-restricted-extras @@ -98,7 +98,7 @@ sudo apt install ubuntu-restricted-extras #### 8、安装基本的应用程序 -带有 GNOME 的基础 Ubuntu 版本只有非常基本的应用程序。因此,在你使用 Ubuntu 之前,你需要安装一些其他必要的应用程序。 +带有 GNOME 的 Ubuntu 基础版本只有非常基本的应用程序。因此,在你使用 Ubuntu 之前,你需要安装一些其他必要的应用程序。 由于每个人的工作范围不同,每个人所需的应用程序也都不同。因此,在这里我仅提供一个通用的应用程序的列表,我认为你可以把这些应用程序都安装上,因为这些应用程序对所有人来说都很常用。 @@ -141,9 +141,9 @@ flatpak install flathub com.mattjakeman.ExtensionManager sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift ``` -### 额外小贴士 +### 额外小技巧 -如果你想进一步定制你新安装的 Ubuntu 系统,以下是一些额外的小贴士。 +如果你想进一步定制你新安装的 Ubuntu 系统,以下是一些额外的小技巧。 #### 安装漂亮的字体 From 264b2c97d0db6ed6a8ce2cef8cfdd8e6e32fdeb1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 28 Oct 2022 08:45:07 +0800 Subject: [PATCH 1739/3123] translating --- ...2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md b/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md index e836753192..8a01af005a 100644 --- a/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md +++ b/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/clean-up-snap/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From af191dd45bf00c4b953197ccbc378d2521de69c4 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Fri, 28 Oct 2022 09:01:07 +0800 Subject: [PATCH 1740/3123] translating by chai001125 --- ...21018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md b/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md index f92b592a40..36554ac5ca 100644 --- a/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md +++ b/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/linux-halloween-makeover/" [#]: author: "Sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From edc3319b8cff8f1704af0a52a20ec067f89b16d2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 28 Oct 2022 09:16:36 +0800 Subject: [PATCH 1741/3123] RP @geekpi https://linux.cn/article-15186-1.html --- ...assic Snake Game in Your Linux Terminal.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) rename {translated/tech => published}/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md (71%) diff --git a/translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md similarity index 71% rename from translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md rename to published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md index e4845af6f3..cb68bbf24d 100644 --- a/translated/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md +++ b/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md @@ -3,15 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15186-1.html" -在你的 Linux 终端中享受经典的贪吃蛇游戏 +在你的 Linux 终端中玩经典的贪吃蛇游戏 ====== -这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。 -还记得老式手机经典简单的贪吃蛇吗?我记得玩了几个小时。嘿,当时没有其他选择,对吧?智能手机仍未上市。而你所拥有的就是这个。 +![](https://img.linux.net.cn/data/attachment/album/202210/28/091539oanrjizald7rzr7a.jpg) + +> 这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。 + +还记得老式手机经典简单的贪吃蛇吗?我记得玩了几个小时。嘿,当时没有其他选择,对吧?智能手机仍未上市。而你所拥有的只有这个。 ![Nokia 3310 中的旧版贪吃蛇游戏][1] @@ -23,7 +26,7 @@ ### 安装 nSnake – Linux 终端的贪吃蛇 -你可以使用以下方法通过终端安装[此游戏][4]。 +你可以使用以下方法通过终端安装 [此游戏][4]。 对于 Ubuntu、Linux Mint 或其他相关发行版: @@ -37,7 +40,7 @@ sudo apt install nsnake sudo dnf install nsnake ``` -对于 Arch Linux,此游戏可在 [Arch 用户仓库][5]中获得。你可以使用以下步骤安装它。 +对于 Arch Linux,此游戏可在 [Arch 用户仓库(AUR)][5] 中获得。你可以使用以下步骤安装它。 * [设置 Yay AUR 助手][6] * 然后打开终端并运行以下命令 @@ -46,27 +49,27 @@ sudo dnf install nsnake yay -S nsnake ``` -上面的命令会安装游戏的库存库版本,它可能不是最新的。但是,如果你想要最新版本,你可能需要通过 GitHub 编译源代码。我在本页末尾添加了编译说明供你参考。 +上面的命令会安装游戏的软件仓库版本,它可能不是最新的。但是,如果你想要最新版本,你可能需要通过 GitHub 编译源代码。我在本页末尾添加了编译说明供你参考。 ### 玩游戏 -玩游戏非常简单。在终端中输入 nsnake,这将启动游戏。 +玩游戏非常简单。在终端中输入 `nsnake`,这将启动游戏。 -要立即退出,请按 q。 +要立即退出,请按 `q`。 以下是默认键绑定。 -* 箭头键 - 移动蛇 -* q – 退出游戏 -* p – 暂停游戏 +* `箭头键` - 移动蛇 +* `q` – 退出游戏 +* `p` – 暂停游戏 你还可以通过主菜单以各种方式配置游戏。 ![nsnake Linux 终端贪吃蛇设置][7] -完成了,享受吧! +完成了,玩吧! -##### 编译 +### 编译 要编译最新版本,请在所有 Linux 发行版中使用以下命令。 @@ -85,7 +88,7 @@ via: https://www.debugpoint.com/snake-game-linux-terminal/ 作者:[Arindam][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/) 荣誉推出 From 3ca968e70c3c42936d627bf5370a91f3c7dce862 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Fri, 28 Oct 2022 20:07:26 +0800 Subject: [PATCH 1742/3123] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=A5=BD=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md (100%) diff --git a/sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md b/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md similarity index 100% rename from sources/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md rename to translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md From 363891292ab612979aff4bbc90c7cf67a87b8188 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 29 Oct 2022 10:27:20 +0800 Subject: [PATCH 1743/3123] translated --- ... Give Your Linux Desktop a Halloween Makeover.md | 283 ----------------- ... Give Your Linux Desktop a Halloween Makeover.md | 284 ++++++++++++++++++ 2 files changed, 284 insertions(+), 283 deletions(-) delete mode 100644 sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md create mode 100644 translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md diff --git a/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md b/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md deleted file mode 100644 index 36554ac5ca..0000000000 --- a/sources/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md +++ /dev/null @@ -1,283 +0,0 @@ -[#]: subject: "Give Your Linux Desktop a Halloween Makeover" -[#]: via: "https://itsfoss.com/linux-halloween-makeover/" -[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Give Your Linux Desktop a Halloween Makeover -====== - -Halloween is around the corner. Boo! - -Of course, there are ways to celebrate Halloween, and I believe you might have a few ideas of your own. How about giving your Linux desktop a spooky, dark makeover? Something like the screenshot below? - -![ubuntu halloween theming final looks][1] - -Customization is a high point of Linux, and there is no end to it. Earlier, we showed you[how to make your Linux look like macOS][2]. Today, I’ll share a few tips to keep up with the Halloween ‘spirit’. - -This is possible with a combination of themes, icons, extensions, fonts, conky, etc. **_While you can do these things on any distribution and desktop environment, it’s not feasible for me to show them all in a single tutorial._** - -Here, I have used Ubuntu with the GNOME desktop environment. - -### Getting all the tools - -You need several packages and tools. Make sure you have them all (or most of them) before you start the customization. - -_It’s not mandatory to make all of the changes. But the more you do, the better look and feel you get._ - -**GNOME Tweaks and GMOME Extensions manager** - -Get the Tweaks tool and the extension manager with this command: - -``` -`sudo apt install gnome-tweaks gnome-extension-manager` -``` - -In KDE-based systems, you don’t any tweak tool to change the look. But surely, you will need the **Kvantum-Manager** app that I discussed in the [KDE theming][3] guide. - -**Conky** - -This is actually optional. Since the conky-manager project is not receiving any maintenance, it will be a bit tricky to use conky. But anyway, let’s use it for the additional look-and-feel. - -``` -`sudo apt install conky-all` -``` - -**Neofetch or shell color scripts** - -This step is also a personal choice. You can choose [neofetch][4] because it’s already available in the repository and can be used easily. - -``` -`sudo apt install neofetch` -``` - -[Shell-color scripts][5] are another excellent choice. The package is available in AUR and Arch Linux users can install it from there. In Ubuntu, you need to install it manually. - -``` -`git clone https://gitlab.com/dwt1/shell-color-scripts.git cd shell-color-scripts sudo make install` -``` - -**Themes, icons, fonts, and wallpaper** - -I am using [Sweet][6] theme, [Beautiline][7] icon pack, [simple1e][8] cursors, and [Grey-Minimalistic][9] conky theme. Once downloaded, extract them. You should also get [Creepster][10] font. - -Download a [spooky wallpaper][11] from the internet. - -Alert! You’ll be doing a lot of customization and change. You can go back to the usual look by reverting all the changes you made. An easier way out would be to create a new user with admin access and make all these changes with this new user. This way, your original user account and appearance doesn’t get impacted. When Halloween is over, you can delete this additional user. - -With all resources in hand, it’s time to utilize them. - -### Install and use the extensions - -Open the gnome-extensions app. In Ubuntu 22.04, you can install extensions from within the app, by using the browse section. - -![install gnome shell extensions user themes blur my shell and dash to dock][12] - -In other versions of Ubuntu and other GNOME distributions, you can [install shell extensions][13] through the browser. For our purpose, install the following extensions : - -- [User Themes][14] -- [Dash to Dock][15] -- [Blur my Shell][16] - -Also, make sure that all the extensions are enabled. - -### Apply theme, icon, and font - -You need to copy and paste the extracted theme folder to `~/.themes` directory and icon and cursor folder to the `~/.icons` directory. - -Now open GNOME tweaks and apply the settings as shown in the screenshot below. - -![set themes with gnome tweaks][17] - -To use a [custom font in Ubuntu][18], right-click on the font file that you have downloaded and extracted and select open with Font manager. I am using [Creepster][10] font. - -![right click on font file and select open with fonts][19] - -Here, press the install button. - -![install font using font manager application][20] - -Note: In some systems, pressing the install button won’t show the “installed” prompt. In that case, you can just close the app because once you press the install button, it has been installed. - -Now open the Tweaks app and move to the fonts section. Here, you can change the fonts of various sections as shown in the screenshot below. - -![change system fonts using gnome tweaks][21] - -Note that, for terminals, a monospace font is required. Here, I am using a regular font and thus it may give you a slightly disoriented look sometimes. - -### Apply Dash to Dock Extension settings - -First, you need to **turn off the Ubuntu Dock extension** using the GNOME Extensions application. - -![Disable Ubuntu Dock][22] - -Run the Dash to Dock extension if it’s not running already. - -Now, right-click on the dash to dock application button appearing on the bottom and select dash to dock settings. - -![select dash to dock settings][23] - -Here, you need to tweak some small things. - -First, reduce the icon size using the respective slider. - -![setting dash to dock icon size][24] - -After that, you need to reduce the opacity of the dock. I prefer a fully transparent dock. - -For this, set the opacity to **fixed** and reduce it to zero with the slider, as shown in the screenshot below. - -![opacity setting for dash to dock][25] - -### GNOME terminal setting - -The main tweak you want to get is a custom neofetch look (or a shell color script) with some blurred transparency. - -On applying monospace font in GNOME-tweaks earlier, the font in the GNOME terminal is also changed. - -First, create a new profile from **preferences**. - -![select preferences from hamburger menu][26] - -Here, Click + sign to create a new profile. Type in a name and press **create** as shown below: - -![create new profile in gnome terminal][27] - -Inside the new profile, change the transparency setting and set it around the middle, as shown in the screenshot: - -![set transperancy to gnome terminal][28] - -Once finished, set this profile as the default. To do this, click on the triangle button associated with the new profile and select **Set as Default**. - -![set new profile as default in gnome terminal][29] - -#### Setting blur effect - -The above step will only create a transparent shell. But if you need a blur effect, which is good for better visibility, you need to go to the Blur my Shell extension settings. - -![blur my shell extension settings][30] - -Here, go to the **Application** tab. Now, ensure that the terminal is opened and placed conveniently on the desktop. Click on **Add Window** button and select gnome-terminal window, to set the blur effect. Note: This feature is in beta so expect minor glitches. - -![applying blur effect to selected windows][31] - -This same procedure can be repeated for other apps also, like the Nautilus file manager. - -#### Customizing Neofetch - -One of the best features of neofetch is its customizability. You can tweak the look with a wide range of methods. For Halloween, I choose a pumpkin image to appear in place of the distro logo. - -Neofetch supports adding custom images in a variety of formats. For that purpose, there are a variety of backends supported. Here, I use the jp2a backend, which will use an [ASCII converted image][32]. - -``` -`neofetch --jp2a /path/to/your/image/file.png` -``` - -![neofetch with custom backend][33] - -The above code will create a neofetch instance with the custom image. You can write this code to your .bashrc file, for permanent placement. - -_**Unfortunately, this didn’t work on my Wayland instance.**_ - -#### Customizing Shell Color Scripts - -If you installed shell color scripts, you have a variety of shell scripts. To list the available scripts, use: - -``` -``colorscript -l`` -``` - -![ghosts shell color script][34] - -You can either get a random script each time by placing `colorscript random` in your .bashrc file. Or you can get any particular script by placing `colorscript -e ` - -### Setting up Conky - -I am using the [Grey-Minimalistic conky theme][9] from Deviantart. Each type of conky theme has a different installation method. So if you are using another conky file, follow its setup method, described in its README files. - -Extract the conky theme file. Inside, we have several folders. First, you need to install the associated icons and fonts. That is, install the given font using font-manager. Copy and paste the icon folder to your ~/.icons folder. - -![copy and paste conky files to home directory][35] - -Now, go to the conky folder. Make sure that, you have [enabled viewing hidden files][36]. Now copy the `.conkyrc` file and `.conky-vision-icons` file to your Home directory, as shown above. - -Now start conky to get a look like this. - -![conky theme applied][37] - -Add the conky to the [list of startup applications][38] so that it starts automatically at each boot. - -![add conky to the list of startup applications][39] - -### Change wallpaper - -You are almost there. The only thing you need to do now is to [change the background wallpaper][40]. You have already downloaded the spooky wallpapers I believe. - -![set image as wallpaper from nautilus][41] - -### Behold the final look! - -If you followed most of the steps above, you should get a desktop that looks like the one in the below screenshots. - -![ubuntu halloween theme final look][42] - -Is it scary enough for Halloween? What do you think? Let me know in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/linux-halloween-makeover/ - -作者:[Sreenath][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/sreenath/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theming-final-looks.jpg -[2]: https://itsfoss.com/make-ubuntu-look-like-macos/ -[3]: https://itsfoss.com/properly-theme-kde-plasma/ -[4]: https://itsfoss.com/using-neofetch/ -[5]: https://gitlab.com/dwt1/shell-color-scripts -[6]: https://www.gnome-look.org/p/1253385 -[7]: https://www.gnome-look.org/p/1425426 -[8]: https://www.gnome-look.org/p/1405210 -[9]: https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564 -[10]: https://fonts.google.com/specimen/Creepster?query=creepster -[11]: https://www.wallpaperflare.com/search?wallpaper=spooky -[12]: https://itsfoss.com/wp-content/uploads/2022/10/install-gnome-shell-extensions-user-themes-blur-my-shell-and-dash-to-dock.png -[13]: https://itsfoss.com/gnome-shell-extensions/ -[14]: https://extensions.gnome.org/extension/19/user-themes/ -[15]: https://extensions.gnome.org/extension/307/dash-to-dock/ -[16]: https://extensions.gnome.org/extension/3193/blur-my-shell/ -[17]: https://itsfoss.com/wp-content/uploads/2022/10/set-themes-with-gnome-tweaks.png -[18]: https://itsfoss.com/install-fonts-ubuntu/ -[19]: https://itsfoss.com/wp-content/uploads/2022/10/right-click-on-font-file-and-select-open-with-fonts.png -[20]: https://itsfoss.com/wp-content/uploads/2022/10/install-font-using-font-manager-application.png -[21]: https://itsfoss.com/wp-content/uploads/2022/10/change-system-fonts-using-gnome-tweaks.png -[22]: https://itsfoss.com/wp-content/uploads/2020/06/disable-ubuntu-dock.png -[23]: https://itsfoss.com/wp-content/uploads/2022/10/select-dash-to-dock-settings.png -[24]: https://itsfoss.com/wp-content/uploads/2022/10/setting-dash-to-dock-icon-size.png -[25]: https://itsfoss.com/wp-content/uploads/2022/10/opacity-setting-for-dash-to-dock.png -[26]: https://itsfoss.com/wp-content/uploads/2022/10/select-preferences-from-hamburger-menu.png -[27]: https://itsfoss.com/wp-content/uploads/2022/10/create-new-profile-in-gnome-terminal.png -[28]: https://itsfoss.com/wp-content/uploads/2022/10/set-transperancy-to-gnome-terminal.png -[29]: https://itsfoss.com/wp-content/uploads/2022/10/set-new-profile-as-default-in-gnome-terminal.png -[30]: https://itsfoss.com/wp-content/uploads/2022/10/blur-my-shell-extension-settings.png -[31]: https://itsfoss.com/wp-content/uploads/2022/10/applying-blur-effect-to-selected-windows.png -[32]: https://itsfoss.com/ascii-image-converter/ -[33]: https://itsfoss.com/wp-content/uploads/2022/10/neofetch-with-custom-backend.png -[34]: https://itsfoss.com/wp-content/uploads/2022/10/ghosts-shell-color-script.png -[35]: https://itsfoss.com/wp-content/uploads/2022/10/copy-and-paste-conky-files-to-home-directory.png -[36]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/ -[37]: https://itsfoss.com/wp-content/uploads/2022/10/conky-theme-applied.png -[38]: https://itsfoss.com/manage-startup-applications-ubuntu/ -[39]: https://itsfoss.com/wp-content/uploads/2022/10/add-conky-to-the-list-of-startup-applications.png -[40]: https://itsfoss.com/change-wallpaper-ubuntu/ -[41]: https://itsfoss.com/wp-content/uploads/2022/10/set-image-as-wallpaper-from-nautilus.png -[42]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theme-final-look.jpg diff --git a/translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md b/translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md new file mode 100644 index 0000000000..f6ae8d0d13 --- /dev/null +++ b/translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md @@ -0,0 +1,284 @@ +[#]: subject: "Give Your Linux Desktop a Halloween Makeover" +[#]: via: "https://itsfoss.com/linux-halloween-makeover/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +打造万圣节 Linux 桌面 + +====== + +马上就到万圣节了,太棒啦! + +我相信你已经有了一些庆祝万圣节的想法。给你的 Linux 桌面做一个像幽灵般的黑暗改造,就类似于下面的屏幕截图,你觉得怎么样? + +![ubuntu halloween theming final looks][1] + +可定制是 Linux 的一大优势,对 Linux 可进行的定制是多种多样且没有尽头的。之前,我们向你展示过 [如何让你的 Linux 看起来像 macOS][2] 的方法。今天,我将继续分享一些定制“万圣节”Linux 桌面的技巧。 + +可以通过主题、图标、扩展、字体、conky 等一系列配置组合起来,来实现 Linux 桌面的定制。**_虽然,你可以在任何的 Linux 发行版和桌面环境中配置这些东西,但是仅在一个教程中展示所有 Linux 发行版和桌面环境的桌面定制方法,是不太可行的。_** + +因此,在本文中,我将介绍 Ubuntu 与 GNOME 桌面环境的桌面定制方法。 + +### 安装所有工具 + +你需要一些软件包和工具。在开始定制桌面前,请确保你安装了全部(或大多数)的软件包和工具。 + +_你不必做出**所有**的桌面改变。但你做的越多,你的桌面也会美化得更好看。_ + +**安装 GNOME Tweaks 和 GMOME Extension Manager** + +使用以下命令,来安装 GNOME Tweaks 工具和 GMOME 扩展管理器: + +``` +`sudo apt install gnome-tweaks gnome-extension-manager` +``` + +在基于 KDE 的 Linux 系统中,没有可以更改 Linux 桌面外观的 Tweaks 工具。但是,你可以使用 Kvantum-Manager 这一应用程序来更改外观,请参考我在 [KDE 主题指南][3] 中的讨论。 + +**安装 Conky(可选)** + +你可以选择是否要安装 Conky ,因为现在管理 Conky 的项目已经不再维护了,因此继续使用 Conky 可能会有点棘手。但无论如何,我们用它来增加万圣节外观的感觉。 + +``` +`sudo apt install conky-all` +``` + +**安装 Neofetch 或者 shell color scripts** + +这个步骤也可以由你自主选择。你可以选择使用 [neofetch][4],因为 neofetch 工具已经在 Ubuntu 仓库中了,你可以直接通过 `apt install` 安装,并且 neofetch 使用起来也很简单。 + +``` +`sudo apt install neofetch` +``` + +[Shell-color scripts][5] 是另一个不错的选择。在 Arch 用户仓库(AUR)中有该软件包,Arch Linux 用户可以从 AUR 安装 Shell-color scripts。而在 Ubuntu 中,你则需要手动安装它。 + +``` +`git clone https://gitlab.com/dwt1/shell-color-scripts.git cd shell-color-scripts sudo make install` +``` + +**安装主题、图标、字体和壁纸工具** + +我正在使用的是 [Sweet][6] 主题工具、[Beautiline][7] 图标软件包、[simple1e][8] 光标工具和 [灰色极简主义(Grey-Minimalistic)][9] conky 主题,下载好这些工具后,再解压包。你还要下载 [Creepster][10] 字体。 + +最后,从互联网上下载一张 [万圣节幽灵氛围的壁纸][11]。 + +请注意!你即将要进行大量的定制和更改。要恢复到原来普通的外观,你可以通过撤销你所做的所有更改。一个更简单的方法是:创建一个管理员权限的新用户,并使用该新用户进行所有这些更改。这样,你的原始用户帐户和外观就不会受到影响。在万圣节结束后,你可以删除这个新增的用户。 + +现在,你有了所有定制桌面的工具和资源,是时候使用它们了! + +### 安装并使用扩展 + +打开 gnome-extensions 应用程序。在 Ubuntu 22.04 中,你可以在浏览菜单(Browse)下安装扩展。 + +![install gnome shell extensions user themes blur my shell and dash to dock][12] + +在其他版本的 Ubuntu 和其他带有 GNOME 的发行版上,你可以通过浏览器上 [安装 shell 扩展][13],来安装扩展。为了实现打造万圣节桌面的目的,请安装以下扩展程序: + +- [用户主题(User Themes)][14] +- [Dash 到程序坞(Dash to Dock)][15] +- [模糊我的 shell(Blur my Shell)][16] + +此外,请确保所有的扩展都已启用。 + +### 配置主题、图标和字体 + +你需要将解压的主题文件夹复制,并粘贴到 `~/.themes` 目录下,将解压的图标和光标文件夹复制,并粘贴到 `~/.icons` 目录下。 + +接下来,打开 GNOME Tweaks,并应用主题、图标和字体等设置,如下的截图所示。 + +![set themes with gnome tweaks][17] + +要[在 Ubuntu 中使用自定义字体][18],请右键单击你下载和解压的字体文件,然后选择使用字体管理器(Font manager)打开。我打算使用的是 [Creepster][10] 字体。 + +![right click on font file and select open with fonts][19] + +然后,点击右上角的安装(Install)按钮。 + +![install font using font manager application][20] + +请注意:在某些系统中,点击安装按钮不会显示“已安装(installed)”的提示。在这种情况下,你只需关闭界面就行了,因为一旦你点击了安装按钮,该字体就已经安装上了。 + +再重新打开 GNOME Tweaks,然后前往字体(Fonts)边栏,在这里,你可以更改各个文件类型的字体,如下图所示。 + +![change system fonts using gnome tweaks][21] + +请注意,对于终端,需要单空格的字体。在这里,我使用了普通的字体,这里可能会让你稍稍有点迷失。 + +### 应用 Dash to Dock 扩展设置 + +首先,你要使用 GNOME 扩展应用程序(GNOME Extensions application),来**关闭 Ubuntu Dock 扩展**(turn off the Ubuntu Dock extension)。 + +![Disable Ubuntu Dock][22] + +如果 Dash to 程序坞扩展(Dash to Dock extension)还尚未运行的话,请先运行它。 + +然后,右键单击在底部显示的 Dash to Dock 按钮,然后选择 Dash to Dock Settings。 + +![select dash to dock settings][23] + +在设置中,你需要调整一些小东西。 + +首先,使用滑块,来缩小图标的大小。 + +![setting dash to dock icon size][24] + +之后,你需要减少程序坞的不透明度,我更喜欢完全透明的程序坞。 + +所以,我将不透明度设置为**固定**(fixed),并使用滑块将其降至零,如下图所示。 + +![opacity setting for dash to dock][25] + +### GNOME 终端(GNOME terminal)设置 + +你想得到的 Linux 桌面的主要变化是自定义**模糊且有一定透明度**的 neofetch 外观(或 shell color script 外观)。 + +我们之前在 GNOME Tweaks 中应用单空格字体时,因此 GNOME 终端中的字体也会被更改。 + +首先,从**偏好设置**中创建一个新的配置文件。 + +![select preferences from hamburger menu][26] + +单击 `+` ,来创建一个新配置文件。输入文件的名称,并点击**创建**(create),如下所示: + +![create new profile in gnome terminal][27] + +在这个新配置文件中,更改透明度设置,将透明度的滑块放在中间,如下图所示: + +![set transperancy to gnome terminal][28] + +完成后,要将此配置文件设置为默认的配置文件,单击与新配置文件关联的三角形按钮,然后选择**设置为默认**(Set as Default)。 + +![set new profile as default in gnome terminal][29] + +#### 设置模糊效果 + +上述的步骤只会将终端变成一个透明的外壳。但是,如果你还需要有利于提高可见性的模糊效果,你需要进入到 Blur my Shell 扩展进行设置。 + +![blur my shell extension settings][30] + +首先,进入到**应用程序**(Application)菜单。现在,确保终端已打开,并置于屏幕明显的位置。单击**添加**(Add)窗口,然后选择 gnome 终端窗口,以设置模糊效果。请注意:此功能还处于测试阶段,因此可能会出现一些小故障。 + +![applying blur effect to selected windows][31] + +也可以对其他应用程序(例如 Nautilus 文件管理器)重复此过程,来设置模糊效果。 + +#### 定制 Neofetch + +Neofetch 的最佳功能之一是其可定制性。你可以用 Neofetch 中的多种方法,来调整外观。为了更有万圣节氛围,我选择了一个南瓜图像,来代替发行版的 logo。 + +Neofetch 提供以各种格式添加自定义图像的功能。为此,也有各种供支持的后端。在这里,我使用 jp2a 后端,它将使用 [转换成 ASCII 的图片][32]。 + +``` +`neofetch --jp2a /path/to/your/image/file.png` +``` + +![neofetch with custom backend][33] + +上述命令将创建一个带有自定义图片的 Neofetch 实例。你可以将此命令写入你的 .bashrc 文件,以便永久放置该图片。 + +_**不幸的是,这在我的 Wayland 实例上并不起作用。**_ + +#### 自定义 Shell Color Scripts + +如果你安装的是 Shell Color Scripts 工具,则会有多种 shell 脚本。要列出可用的脚本,请使用命令: + +``` +``colorscript -l`` +``` + +![ghosts shell color script][34] + +你可以通过将 `colorscript random` 写入你的 .bashrc 文件,以每次都获得一个随机的颜色脚本,或者通过将`colorscript -e `写入你的 .bashrc 文件,来得到一个特定的颜色脚本。 + +### 设置 Conky + +我使用的是 Deviantart 的 [灰色极简主义(Grey-Minimalistic)][9] conky 主题。conky 主题的每种类型都有不同的安装方法。因此,如果你想要使用另一个 conky 文件的话,请遵循它的 README 文件中描述的设置方法,进行设置。 + +解压 conky 主题文件,里面有几个文件夹。首先,你需要安装关联的图标和字体,也就是说,使用字体管理器(font-manager)安装给定的字体。接着,将图标文件夹拷贝,并粘贴到 ~/.icons 文件夹。 + +![copy and paste conky files to home directory][35] + +然后,进入 conky 文件夹。确保你已 [启用查看隐藏文件][36],将 `.conkyrc` 文件和 `.conky-vision-icons` 文件复制到你的 home 目录,如上图所示。 + +现在,启动conky,看起来就变成下图这样了。 + +![conky theme applied][37] + +将 conky 添加到 [自启动应用程序列表][38] 中,以便在每次开机时都能自启动。 + +![add conky to the list of startup applications][39] + +### 更改壁纸 + +你快要完成啦。你现在唯一需要做的就是 [更改背景壁纸][40]。我相信你之前已经下载好了有万圣节幽灵气氛的壁纸,右键设置为壁纸(Set as Wallpaper)就好啦。 + +![set image as wallpaper from nautilus][41] + +### 看看最终成果吧! + +如果你遵循上面的大多数步骤的话,你就会得到一个与以下截图相似的桌面。 + +![ubuntu halloween theme final look][42] + +这个桌面对于万圣节来说够吓人了吗?你是怎么觉得的呢?在评论区中告诉我吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/linux-halloween-makeover/ + +作者:[Sreenath][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theming-final-looks.jpg +[2]: https://itsfoss.com/make-ubuntu-look-like-macos/ +[3]: https://itsfoss.com/properly-theme-kde-plasma/ +[4]: https://itsfoss.com/using-neofetch/ +[5]: https://gitlab.com/dwt1/shell-color-scripts +[6]: https://www.gnome-look.org/p/1253385 +[7]: https://www.gnome-look.org/p/1425426 +[8]: https://www.gnome-look.org/p/1405210 +[9]: https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564 +[10]: https://fonts.google.com/specimen/Creepster?query=creepster +[11]: https://www.wallpaperflare.com/search?wallpaper=spooky +[12]: https://itsfoss.com/wp-content/uploads/2022/10/install-gnome-shell-extensions-user-themes-blur-my-shell-and-dash-to-dock.png +[13]: https://itsfoss.com/gnome-shell-extensions/ +[14]: https://extensions.gnome.org/extension/19/user-themes/ +[15]: https://extensions.gnome.org/extension/307/dash-to-dock/ +[16]: https://extensions.gnome.org/extension/3193/blur-my-shell/ +[17]: https://itsfoss.com/wp-content/uploads/2022/10/set-themes-with-gnome-tweaks.png +[18]: https://itsfoss.com/install-fonts-ubuntu/ +[19]: https://itsfoss.com/wp-content/uploads/2022/10/right-click-on-font-file-and-select-open-with-fonts.png +[20]: https://itsfoss.com/wp-content/uploads/2022/10/install-font-using-font-manager-application.png +[21]: https://itsfoss.com/wp-content/uploads/2022/10/change-system-fonts-using-gnome-tweaks.png +[22]: https://itsfoss.com/wp-content/uploads/2020/06/disable-ubuntu-dock.png +[23]: https://itsfoss.com/wp-content/uploads/2022/10/select-dash-to-dock-settings.png +[24]: https://itsfoss.com/wp-content/uploads/2022/10/setting-dash-to-dock-icon-size.png +[25]: https://itsfoss.com/wp-content/uploads/2022/10/opacity-setting-for-dash-to-dock.png +[26]: https://itsfoss.com/wp-content/uploads/2022/10/select-preferences-from-hamburger-menu.png +[27]: https://itsfoss.com/wp-content/uploads/2022/10/create-new-profile-in-gnome-terminal.png +[28]: https://itsfoss.com/wp-content/uploads/2022/10/set-transperancy-to-gnome-terminal.png +[29]: https://itsfoss.com/wp-content/uploads/2022/10/set-new-profile-as-default-in-gnome-terminal.png +[30]: https://itsfoss.com/wp-content/uploads/2022/10/blur-my-shell-extension-settings.png +[31]: https://itsfoss.com/wp-content/uploads/2022/10/applying-blur-effect-to-selected-windows.png +[32]: https://itsfoss.com/ascii-image-converter/ +[33]: https://itsfoss.com/wp-content/uploads/2022/10/neofetch-with-custom-backend.png +[34]: https://itsfoss.com/wp-content/uploads/2022/10/ghosts-shell-color-script.png +[35]: https://itsfoss.com/wp-content/uploads/2022/10/copy-and-paste-conky-files-to-home-directory.png +[36]: https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/ +[37]: https://itsfoss.com/wp-content/uploads/2022/10/conky-theme-applied.png +[38]: https://itsfoss.com/manage-startup-applications-ubuntu/ +[39]: https://itsfoss.com/wp-content/uploads/2022/10/add-conky-to-the-list-of-startup-applications.png +[40]: https://itsfoss.com/change-wallpaper-ubuntu/ +[41]: https://itsfoss.com/wp-content/uploads/2022/10/set-image-as-wallpaper-from-nautilus.png +[42]: https://itsfoss.com/wp-content/uploads/2022/10/ubuntu-halloween-theme-final-look.jpg From b038743c856db1686bc2afbd0897f1e3ddcd6473 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Sat, 29 Oct 2022 12:19:18 +0800 Subject: [PATCH 1744/3123] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ut rolling but also stable That's what Rhino Linux aims to be.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md b/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md index c1f743afa6..f9e5ce71a4 100644 --- a/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md +++ b/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/rhino-linux/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "littlebirdnest" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b67a2fafdeda7409d9572cb0d96f4a268758ed93 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Sat, 29 Oct 2022 12:49:45 +0800 Subject: [PATCH 1745/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o stable That's what Rhino Linux aims to be.md | 80 ------------------- ...o stable That's what Rhino Linux aims to be.md | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 80 deletions(-) delete mode 100644 sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md create mode 100644 translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md diff --git a/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md b/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md deleted file mode 100644 index f9e5ce71a4..0000000000 --- a/sources/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be" -[#]: via: "https://news.itsfoss.com/rhino-linux/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "littlebirdnest" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu but rolling but also stable That's what Rhino Linux aims to be -====== - -A rolling-release Ubuntu distribution? Wait, what? Rhino Linux sounds fascinating.. - -![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1] - -Rhino Linux will be the successor of [Rolling Rhino Remix][2]. A Linux distro built by http.llamaz that offered a rolling-release **unofficial** variant of Ubuntu. - -To clarify, the project was never aimed to replace other stable distributions and was purely a passion project made for fun. - -Considering people started using it as a daily driver and expected more from it, the developer has decided to turn this into a serious project. - -Rhino Linux is its next step for it. So, what can you expect? - -### Meet Rhino Linux: The Successor - -The main goal is to provide a stable Ubuntu experience while still providing a rolling-release model. - -The aim remains the same, but the fundamentals for Rhino Linux will receive a complete overhaul. They are potentially making it an impressive rolling-release Ubuntu distribution. - -**Sounds exciting! 🤯** - -At its core, Rhino Linux will be using a slightly modified version of [XFCE][3] as its desktop environment; it was chosen due to its well-known stability and speed. - -The founder of Rhino Linux mentioned the following: - -> Ubuntu as a rolling release is still at the very core of our concept. Rhino Linux is not a depature from Rolling Rhino Remix, but rather re-imagines it as the more stable, mature distribution it should have shipped as originally. - -![xfce 4.14][4] - -Alongside that, [Pacstall][5] will be used as the default package manager on Rhino Linux with one of their repositories. - -> 💡Pacstall is an [AUR][6]-inspired package manager for Ubuntu. - -The development of which is headed by the founder of Pacstall, [_Plasma_][7]. He has also joined as one of the new developers (Deputy Project Lead), and [Sourajyoti Basak][8] as another core member. - -### Moving Forward: Availability and Release - -As of writing, Rhino Linux has not received any specific release date, but you can expect it to release sometime in **2023**. - -What happens to Rolling Rhino Remix? - -The developer clarified that it would continue to be maintained for three months after the release of Rhino Linux. However, it won't have a new release image after its subsequent release on **11.01.2022**. - -You can find out more about Rhino Linux by visiting its [official website][9]. - -_💬 What do you think of Rhino Linux? Can it be a contender for official Ubuntu flavors worth trying?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/rhino-linux/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png -[2]: https://github.com/rollingrhinoremix -[3]: https://www.xfce.org/ -[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png -[5]: https://github.com/pacstall/pacstall -[6]: https://itsfoss.com/aur-arch-linux/ -[7]: https://github.com/Henryws -[8]: https://github.com/wizard-28 -[9]: https://rhinolinux.org/ diff --git a/translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md b/translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md new file mode 100644 index 0000000000..a119f8cfd4 --- /dev/null +++ b/translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md @@ -0,0 +1,80 @@ +[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be" +[#]: via: "https://news.itsfoss.com/rhino-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "littlebirdnest" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu,不但滚动发布但也很稳定这就是 Rhino Linux 的目标 +====== + +滚动发布的 Ubuntu 发行版?等等,什么? Rhino Linux 听起来很迷人.. + +![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1] + +Rhino Linux 将成为[Rolling Rhino Remix][2]的继任者。由 http.llamaz 构建的 Linux 发行版, 提供了 Ubuntu 的滚动发布的**非官方**的变体版本 + +需要澄清的是,该项目从未旨在取代其他稳定的发行版,而纯粹是一个充满乐趣的激情项目。 + +考虑到人们开始将其用作日常驱动程序并对其期望更多,开发人员决定将其变成一个严肃的项目。 + +Rhino Linux 作为它的继任者。那么,你能期待什么? + +### 与Rhino Linux相遇:其继任者 + +主要目标是提供稳定的 Ubuntu 体验,同时仍提供滚动发布模型。 + +目标保持不变,但 Rhino Linux 的基础将得到彻底改革。他们有可能使它成为一个令人印象深刻的滚动发布的Ubuntu 发行版。 + +**听起来很令人兴奋!🤯** + +在其核心,Rhino Linux 将使用稍微修改过的 [XFCE][3]版本作为其桌面环境;之所以选择它是因为它众所周知的稳定性和速度。 + +Rhino Linux 的创始人提到了以下几点: + +> Ubuntu 作为滚动发行版仍然是我们概念的核心。 Rhino Linux 并不是从 Rolling Rhino Remix 中分离出来的,而是将它重新设想为更稳定、更成熟的发行版,它应该像最初一样发布。 + +![xfce 4.14][4] + +除此之外,[Pacstall][5]将用作 Rhino Linux 上的默认包管理器及其存储库之一。 + +> 💡Pacstall 是一个受 [AUR][6]启发的 Ubuntu 包管理器。 + +其开发由 Pacstall 的创始人[_Plasma_][7]领导. 他还作为新开发人员之一(副项目负责人)加入,[Sourajyoti Basak][8]作为另一位核心成员加入。 + +### 前进:可用性和发布 + +在撰写本文时,Rhino Linux 尚未收到任何具体的发布日期,但您可以预计它会在 **2023** 年的某个时间发布。 + +Rolling Rhino Remix 会发生什么? + +开发者澄清说,Rhino Linux 发布后会继续维护三个月。但是,在 2022 年 1 月 11 日发布之后,它不会有新的发布映像。 + +您可以通过访问其[官方网站][9]了解更多关于 Rhino Linux 的信息。 + +_💬 你觉得 Rhino Linux 怎么样?它可以成为值得尝试的官方 Ubuntu 风格的竞争者吗?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/rhino-linux/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[littlebirdnest](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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png +[2]: https://github.com/rollingrhinoremix +[3]: https://www.xfce.org/ +[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png +[5]: https://github.com/pacstall/pacstall +[6]: https://itsfoss.com/aur-arch-linux/ +[7]: https://github.com/Henryws +[8]: https://github.com/wizard-28 +[9]: https://rhinolinux.org/ From dc11ebd517c1852851c36f54202d13dabdee87ee Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Sat, 29 Oct 2022 14:15:44 +0800 Subject: [PATCH 1746/3123] =?UTF-8?q?Update=2020221022.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Use=20open=20source=20commands=20?= =?UTF-8?q?in=20Powershell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Use open source commands in Powershell.md | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md b/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md index 247f4daca0..59d165394d 100644 --- a/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md +++ b/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md @@ -7,27 +7,26 @@ [#]: publisher: " " [#]: url: " " -Use open source commands in Powershell +在Powershell 中使用开源命令 ====== -When you launch an application on an operating system, there are certain code libraries and utility applications that your OS needs to use for that app to run. Your OS knows how to find these libraries and utilities because it has a _system path,_ a map to common shared data that lots of apps need. Every OS has this, but users aren’t usually aware of it because they don’t usually need to care about it. However, when you start coding or using special network utilities or commands, you might care about your own PATH variable. +当你在操作系统上启动应用程序时,操作系统需要使用某些代码库和实用程序来运行该应用程序。你的操作系统知道如何找到这些库和实用程序,因为它有一个_系统路径_,一个到许多应用程序都需要用到的公共共享数据的映射。所有操作系统都有这一点,但用户通常不会意识到这一点,因为他们通常不需要在意它。然而,当你需要编程或使用特殊的网络实用程序或命令时,你可能需要关心你自己的PATH变量配置。 -The PATH variable makes it so that you can save commands to a consistent location, and use them from anywhere on your system using the command prompt or the more powerful (and open source) [Powershell][1]. +PATH变量使你可以将命令保存到一致的位置,并使用命令提示符或更强大(也是开源的)[Powershell][1]从系统上的任何位置调用它们。 -For instance, say you want to install the open source application `pscp.exe`, a command-line interface to the famous PuTTY OpenSSH client on Windows. You can download it to your hard drive, but how does your command-line know that it exists? Well at first, it doesn’t: +例如,假设你想安装开源应用程序“pscp.exe”,它是Windows上著名的PuTTY OpenSSH客户端的命令行界面。你可以将它下载到你的硬盘,但是你的命令行如何知道它的存在呢?实时一开始,它并不知道: ``` PS> pscp - pscp: The term 'pscp' is not recognized as the name of a cmdlet, script file, or operable program. - Check the spelling of the name, or if a path was included, verify that the path is correct and try again. + pscp: 命令“pscp”不能被识别为cmdlet、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含了路径,则检查路径是否正确,然后再试一次。 ``` -If you’re using an open source command line, such as Powershell or [Cmder][2], you get a useful error hinting that this might be a problem with your path (or the lack thereof). Here’s how to solve that problem. +如果你正在使用一个开源命令行,例如Powershell或[Cmder][2],那么你将得到一个有用的错误提示,提示这可能是你的路径有问题(或没有问题)。下面是解决这个问题的方法。 -### Setting a PATH +### 设置 PATH -- First, create a folder called `App` on your Desktop. -- Next, right-click on the Windows menu in the bottom left corner of your screen, and select **System**. +- 首先,在桌面上创建一个名为`App`的文件夹。 +- 接下来,右键单击屏幕左下角的Windows菜单,然后选择 **系统**. ![Image of the Windows menu system.][3] @@ -35,8 +34,8 @@ Image by: (Alan Smithee, CC BY-SA 4.0) -- In the **System** window that appears, click the link to **Advanced system settings** on the left of the window. -- In the **System properties** window that appears, click the **Environment variables** button at the bottom of the window. +- 在弹出的“**系统**”窗口中,单击窗口左侧的“**高级系统设置**”链接。 +- 在出现的**系统属性**窗口中,单击窗口底部的**环境变量**按钮。 ![Image Windows system enviroment variables.][4] @@ -44,7 +43,7 @@ Image by: (Alan Smithee, CC BY-SA 4.0) -- In the **Environment variables** window, click the **New** button under the **User variables** panel. +- 在**环境变量**窗口中,单击**用户变量**面板下的**新建**按钮。 ![Image of new Windows enviroment variables.][5] @@ -52,7 +51,7 @@ Image by: (Alan Smithee, CC BY-SA 4.0) -- In the dialog box that appears, enter `PATH` for the **Variable name** field, and `%USERPROFILE\Desktop\App` for the **Variable value** field. Click the **OK** button to save your changes. +- 在弹出的对话框中,为**变量名**字段输入`PATH`,为**变量值**字段输入 `%USERPROFILE\Desktop\App` 。单击**OK**按钮保存更改。 ![Image of Windows path set.][6] @@ -60,7 +59,7 @@ Image by: (Alan Smithee, CC BY-SA 4.0) -Place commands and applications you want to have access to from a command prompt in `Desktop\Apps` and Powershell, Cmder, and even Cmd will find them: +将那些你希望从命令提示符在`Desktop\Apps`和Powershell, Cmder,Cmd中调用的命令和应用程序放置于`Desktop\Apps`路径下: ``` PS> pscp –version @@ -69,9 +68,9 @@ PS> pscp –version PS> ``` -### Automatic PATH settings +### PATH路径自动设置 -Many applications get automatically added to the system path during installation. However, not all of them do, either because you missed a check box during the install process, or because the application developer expects you to add it yourself. When automatic paths fail, you now know how to forge your own path. +许多应用程序会在安装过程中自动添加到系统路径中。然而,并不是所有的程序都如此,要么是因为你在安装过程中遗漏了一个复选框,要么是因为应用程序开发人员希望你自己添加它。当自动路径失败时,你现在知道如何自己设置路径。 -------------------------------------------------------------------------------- From a20f039788207a226b6c5b8916bb84a8dabbdf84 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Sat, 29 Oct 2022 06:19:52 +0000 Subject: [PATCH 1747/3123] =?UTF-8?q?Rename=20sources/tech/20221022.3=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Use=20open=20source=20co?= =?UTF-8?q?mmands=20in=20Powershell.md=20to=20translated/tech/20221022.3?= =?UTF-8?q?=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Use=20open=20source?= =?UTF-8?q?=20commands=20in=20Powershell.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell. | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md => translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell. (100%) diff --git a/sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md b/translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell. similarity index 100% rename from sources/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md rename to translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell. From 34b41fab73dc4395b83685e3eff054882203bb6a Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Sat, 29 Oct 2022 06:24:29 +0000 Subject: [PATCH 1748/3123] =?UTF-8?q?Rename=2020221022.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Use=20open=20source=20commands=20?= =?UTF-8?q?in=20Powershell.=20to=2020221022.3=20=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Use=20open=20source=20commands=20in=20Powe?= =?UTF-8?q?rshell.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ershell. => 20221022.3 ⭐️⭐️ Use open source commands in Powershell.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translated/tech/{20221022.3 ⭐️⭐️ Use open source commands in Powershell. => 20221022.3 ⭐️⭐️ Use open source commands in Powershell.md} (100%) diff --git a/translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell. b/translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md similarity index 100% rename from translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell. rename to translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md From d42c27f2876043f03375ac6c1eee099b60f025ef Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Sat, 29 Oct 2022 15:06:07 +0800 Subject: [PATCH 1749/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... My top 5 tips for setting up Terraform.md | 75 ------------------- ... My top 5 tips for setting up Terraform.md | 75 +++++++++++++++++++ 2 files changed, 75 insertions(+), 75 deletions(-) delete mode 100644 sources/tech/20210811 My top 5 tips for setting up Terraform.md create mode 100644 translated/tech/20210811 My top 5 tips for setting up Terraform.md diff --git a/sources/tech/20210811 My top 5 tips for setting up Terraform.md b/sources/tech/20210811 My top 5 tips for setting up Terraform.md deleted file mode 100644 index a68ac0c3cf..0000000000 --- a/sources/tech/20210811 My top 5 tips for setting up Terraform.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "My top 5 tips for setting up Terraform" -[#]: via: "https://opensource.com/article/21/8/terraform-tips" -[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma" -[#]: collector: "lujun9972" -[#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -My top 5 tips for setting up Terraform -====== -These are the lessons I've learned after five years with Terraform. -![Puzzle pieces coming together to form a computer screen][1] - -Working with Terraform for over five years has taught me some key lessons. Five practices have been critical to having a logical and usable Terraform setup regardless of the size of the team or the nature of the project. - -### 1\. Know your target audience. - -This one might seem obvious, but I've seen it go wrong several times. When organizing Terraform code, either standardizing the directory structure or defining naming conventions, it's vital to consider the intended audience. Will your team be using these Terraform scripts and modules? Are you handing the work over to another team? Will new people be joining your team sooner or later? Are you working on this project solo? Will you be using this setup in six months or a year, or will it be assigned to someone else? - -Questions like these affect several decisions. Ideally, you should have [Remote State][2] and [State Locking][3] in place regardless of the team size now or in the future. Remote State will ensure your laptop is not the only place your Terraform works, and State Locking will ensure that only one person at a time is changing the infrastructure. - -The naming convention should make sense to the eventual owners of the project, not just the team that is writing the code. If the project is for another team, make sure they have a say in the naming convention. If non-technical stakeholders or internal security/GCR teams review the code, make sure they check the naming convention. In addition to resource names, you should leverage resource tags to highlight any data classification/privacy requirements (high, medium, low) for more careful examination by reviewers. - -### 2\. Reuse. Reuse. Reuse. - -The [Terraform Registry][4] provides a library of ready-to-use modules for the most common use-cases. I've written about the extensive parameterization available in the VPC module and security groups. Simply calling modules with different parameters is enough to handle most, if not all, potential use cases. Reuse these shared modules as much as possible to avoid endless typing, testing, checking, fixing, and refactoring. - -I've also found that separating modules and resources based on the frequency of use or change is beneficial. For example, infrastructure scaffolding used only once belongs together, such as setting up the VPC, security groups, routing tables, VPC endpoints, and so on. But things like private hosted zone entries, autoscaling groups, target groups, load balancers, etc., might change with every deployment, so separating these from the one-time scaffolding will make code reviews easier and debugging faster. - -### 3\. Be explicit rather than implicit. - -There are common patterns to Terraform code that I have seen lead to incorrect assumptions baked into the design. Teams can assume that the Terraform version used to write the code today will never change, or the external modules won't change, or the providers they are using won't change. These lead to invisible issues a few weeks down the road when these external dependencies inevitably get updated. - -Ensure you explicitly define versions everywhere possible: In the main Terraform block, in the provider block, in the module block, etc. Defining versions ensures that your dependent libraries stay frozen so that you can explicitly update dependencies when required after thorough discussions, reviews, and testing. - -### 4\. Automate everywhere. Your laptop. Your shared VM. Your CI/CD. - -Leveraging automation at every stage of the deployment process can avoid future problems before they even arise. - -Use [Git pre-commit hooks][5] to run `terraform fmt` and `terraform validate` before you commit your code. Pre-commit hooks ensure that code is, at a bare minimum, adequately formatted and syntactically correct. Check-in this pre-commit file to the repo, and everyone on your team can benefit from the same automation. This small but vital quality control at the first step of the process can achieve substantial time savings as your project progresses. - -All modern deployment tools have CI processes. You can use these to run SAST and unit testing tools when pushing your code to origin. I've written on my blog about how [Checkov can test Terraform code for security and compliance and create custom checks][6] for organization-specific conventions. Add these unit testing tools to your CI pipeline to improve code quality and robustness. - -### 5\. Have an awesome README.md. - -We all like to think that Terraform code is self-documenting. Sure it is, but only if your future team already knows your company's naming conventions and guidelines and secret handshakes and inside jokes and whatever else your repo contains besides valid Terraform code. Getting into the habit of having a good `README.md` can be a huge time saver, and it keeps your team honest by holding them accountable for everything explicitly committed to in the README. - -At a minimum, your README should contain the steps to initialize the right Terraform environment on your workstations (Linux, Windows, Mac, and so on), including the Terraform version to install. It should specify the required dependencies (Checkov, TerraGrunt, and others) with versions and any handy Linux aliases your team uses (some people like to define `tff` as a short-hand for `terraform fmt`). Most importantly, the branching and PR review strategy and process, naming conventions, and resource tagging standards should be specified. - -The README should pass a simple test: if a new member joins your team tomorrow, is the README enough to teach them what to do and how to do it correctly? If not, you may find yourself hosting never-ending standards and process meetings repeatedly for the next few months. - -### Wrap up - -After many years of working with Terraform, these are my five best bits of wisdom to pass along. Feel free to share your own best practices below. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/8/terraform-tips - -作者:[Ayush Sharma][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/ayushsharma -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) -[2]: https://www.terraform.io/docs/language/state/index.html -[3]: https://www.terraform.io/docs/language/state/locking.html -[4]: https://registry.terraform.io/ -[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6 -[6]: https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov diff --git a/translated/tech/20210811 My top 5 tips for setting up Terraform.md b/translated/tech/20210811 My top 5 tips for setting up Terraform.md new file mode 100644 index 0000000000..e85f4b3759 --- /dev/null +++ b/translated/tech/20210811 My top 5 tips for setting up Terraform.md @@ -0,0 +1,75 @@ +[#]: subject: "My top 5 tips for setting up Terraform" +[#]: via: "https://opensource.com/article/21/8/terraform-tips" +[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma" +[#]: collector: "lujun9972" +[#]: translator: "cool-summer-021" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +关于配置 Terraform 的五条建议 +====== +本文介绍我使用 Terraform 五年之后吸取到的经验。 +![Puzzle pieces coming together to form a computer screen][1] + +使用 Terraform 五年的经历让我吸取到一些重要经验。无论团队大小、项目性质,有五条要点对于配置合乎逻辑且可用的 Terraform 平台至关重要。 + +### 1\. 了解你的目标受众 + +这一点似乎显而易见,但我也见过一些在这方面犯错的案例。当组织和规划 Terraform 的相关代码时,无论是将目录结构标准化还是确定命名规范,考虑目标受众是非常重要的。例如:你的团队是否将使用这些 Terraform 脚本和模块?你是否会向其他团队交接工作?你的团队是否会有新成员加入?你是否正在独自进行项目开发?半年或一年后,你是否仍然使用这些配置,还是会将它安排给别人? + +这类问题会影响某些决策。理想情况下,无论如何都会有[远程状态][2]和[状态锁定][3]两种状态。远程状态确保你的机器不是 Terraform 唯一运行的机器,状态锁定确保同一时刻只有一个人对基础设施进行修改操作。 + +命名规范应该对项目的最终拥有者有意义,而不是只对开发团队有意义。如果项目会转交给其他团队,应该确保他们对命名规范有发言权。如果代码由非技术的利益相关者或内部安全/GCR 团队负责审查,应该确保他们会检查命名规范。另外,对于资源名称,为了让代码审查人员更仔细地进行检查,你应该使用资源标签,把有关的数据分类/隐私需求(高、中、低)标示出来。 + +### 2\. 重用,重用,重用 + +[Terraform 注册表][4]为大多数普通用例提供了现成模块类库。我已经使用过 VPC 模块和安全模块中的大量功能,这些功能只需要提供相关的参数就能使用。使用不同的参数,简单调用这些模块对于处理大部分用例已经足够了。尽可能多地重用这些公共模块,可以避免大量且重复的编码、测试、检查、修复、重构等操作。 + +我也发现,基于使用或变更的频率划分模块和资源大有好处。例如,只使用一次的基础设施手脚架,例如 VPC 相关设置、安全模块、路由表、VPC 端点等,可以放在一起。但是像私有托管域条目、自动伸缩模块、目标模块、负载均衡器等,每次部署时都会变化, 所以把这些与基础设施手脚架分离开来,会令代码检查更方便,调试更快速。 + +### 3\. 要明确,而非隐含 + +Terraform 代码中有一些常见的模式,它会导致设计中出现错误的假设。 团队可以假设用来写代码的 Terraform 版本永远保持不变,外部模块不会变化,或供应商不会变更。当这些外部依赖不可避免地发生变化时,就会导致一些难以发现的问题。 + +无论何处(包括主要的 Terraform 组、Provider 组、功能模块组)都要确保定义是明确的。事先定义版本,可以确保依赖库是固定的,因此你可以在讨论、审查、测试后,明明白白地更新依赖关系。 + +### 4\. 无论何处都要进行自动化,包括笔记本电脑、共享虚拟机、CI/CD。 + +在部署的各个阶段使用自动化方法,都可以避免可能发生的问题。 + +在你提交代码前,使用 [Git pre-commit hooks][5] 运行 `terraform fmt` 和 `terraform validate`。Pre-commit hooks 的作用是确保你的代码满足最低程度的格式和语法正确。把这个 pre-commit 文件检入到仓库,对你的团队成员都有好处。项目的第一步就进行质量控制相关的操作,它虽然表面上是小事一桩,但也很重要,能为项目节省大量时间。 + +一切现代化部署工具都有 CI 流程。当你向原始仓库推送代码时,可以使用它来运行 SAST 和单元测试工具。我写过一篇博客,是关于[使用 Checkov 测试 Terraform 代码的安全性和一致性以及进行自定义检查][6]的。把这些单元测试工具加入到你的 CI 管道,可以改进代码质量和健壮性。 + +### 5\. 具有极好的 README.md 文件 + +我们都认为 Terraform 代码是自文档化的。的确如此,但是只有当未来的团队已经了解你的公司的命名规范、开发指南、机密通信、圈内笑话以及除有效代码之外你的仓库内的其他所有东西,才会如此。维护 `README.md` 文件是个好习惯,它能节省大量时间,而且团队成员要为自己向 README 文件提交的任何内容负责,这样也就确保团队成员的忠诚度。 + +你的 README 文件至少应该包含在你的工作环境下(Linux, Windows, Mac 等等)初始化 Terraform 环境的步骤,包括 Terraform 的版本信息。它应当确定需要的依赖库(Checkov, TerraGrunt及其他依赖)和其版本,以及团队使用的 Linux 别名(例如有人喜欢将 `terraform fmt` 简写为 `tff`)。最重要的是,需要确定分支和 PR 审核策略和流程、命名规范和资源标签的相关标准。 + +README 文件需要通过这样的检验:如果团队有新成员加入,能否告诉他们做什么以及如何正确地完成工作?如果不能,在后续的几个月内,你将面对的是无休止的标准和流程讨论会议。 + +### 结束语 + +这些就是我使用 Terraform 多年后,认为需要传授给大家的五条有用的建议。也欢迎您分享自己的最佳实践。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/8/terraform-tips + +作者:[Ayush Sharma][a] +选题:[lujun9972][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/ayushsharma +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) +[2]: https://www.terraform.io/docs/language/state/index.html +[3]: https://www.terraform.io/docs/language/state/locking.html +[4]: https://registry.terraform.io/ +[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6 +[6]: https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov From 8364951207978efe9deadf436eafe4a9a87183b4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 15:47:30 +0800 Subject: [PATCH 1750/3123] R --- ...13 Enjoy the Classic Snake Game in Your Linux Terminal.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md index cb68bbf24d..8e365e371a 100644 --- a/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md +++ b/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md @@ -76,7 +76,10 @@ yay -S nsnake 哦,确保你已经安装了 `git` 和 `ncurses-devel`,它们是编译所需的包。 ``` -git clone https://github.com/alexdantas/nSnake.gitcd nsnakemakemake install +git clone https://github.com/alexdantas/nSnake.git +cd nsnake +make +make install ``` 那么,你喜欢贪吃蛇游戏吗?与其他基于终端的游戏相比,你更喜欢它吗?在下面的评论框中与其他读者分享你的观点。 From ff8e2d976e2b6ecb26c694d537ba30836f388a53 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 16:05:59 +0800 Subject: [PATCH 1751/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @littlebirdnest 这篇还可以更好一些,请参照我的校对改进你的翻译~加油~ --- ...s With Xfce Upgrades, and Other Refinements.md | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md b/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md index 7967fd9a20..d0aeba7f63 100644 --- a/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md +++ b/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md @@ -3,41 +3,41 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "littlebirdnest" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -带有 Xfce 升级和其他改进的 Xubuntu 22.10 版本 +Xubuntu 22.10 的新变化 ====== -Xubuntu 22.10 提供了精致的 XFCE 体验。点击此处了解详情。 +> Xubuntu 22.10 提供了精致的 Xfce 体验。请读此文了解详情。 ![Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements][1] -Xubuntu 是基于 XFCE 的官方 Ubuntu 风格。 +Xubuntu 是基于 Xfce 的 Ubuntu 官方版本。 -它也是可用的最好的轻量级 Linux 发行版之一。 +它也是最好的轻量级 Linux 发行版之一。 -随着最新的 Xubuntu 22.10“ Kinetic Kudu ”版本,您可以期待桌面环境的改进、功能的添加和全面的改进。 +随着最新的 Xubuntu 22.10 “Kinetic Kudu” 版本,你可以看到改进的桌面环境、添加的功能,以及全面的细化。 -### Xubuntu 22.10:有什么新功能? +### Xubuntu 22.10 的新变化 ![Xubuntu 22.10 home][2] Xubuntu 22.10 带来了一些令人兴奋的升级。一些亮点包括: -- **Xfce 4.16(或 Xfce 4.17 开发版)** -- **鲶鱼外观更新。** -- **新图标刷新和弃用的基础的 xfce 黑色主题。** -- **Mousepad搜索历史.** -- **Thundar 文件管理器的改进.** -- **Xfce 任务管理器.** +- Xfce 4.16(或 Xfce 4.17 开发版) +- Catfish 的外观进行了更新。 +- 更新了新图标,弃用了 elementary-xfce-darker 主题。 +- Mousepad 搜索历史。 +- Thundar 文件管理器的改进。 +- Xfce 任务管理器。 -> 💡Xubuntu 22.10 将支持九个月,直到2023 年 7 月。如果您想要稳定性而不是功能,您应该更喜欢使用 [LTS 版本][3]. +> 💡 Xubuntu 22.10 将支持九个月,直到 **2023 年 7 月**。如果你想要稳定性而不是功能,你应该首选使用 [LTS 版本][3]。 -#### XFCE 4.17 开发版还是 XFCE 4.16? +#### Xfce 4.17 开发版还是 Xfce 4.16? -Xubuntu 22.10 的发行说明说它具有 Xfce 4.17 开发版本。 +Xubuntu 22.10 的发行说明说它专门提供了 Xfce 4.17 开发版本。 但是,当我安装 Xubuntu 22.10 的 beta 版本(并将其更新到最新版本)时,只具有 Xfce 4.16。 @@ -49,29 +49,29 @@ Xubuntu 22.10 的发行说明说它具有 Xfce 4.17 开发版本。 ![xubuntu catfish][5] -Catfish 是 Xubuntu 上的一个文件搜索工具。通过新的升级,它具有焕然一新的外观,并调整了引擎。 +Catfish 是 Xubuntu 上的一个文件搜索工具。通过新的升级,它具有焕然一新的外观,并做了底层的改进。 -与您搜索的文件交互时,您还会获得一个“打开方式”上下文菜单。 +与你搜索的文件交互时,你还会获得一个“打开方式”上下文菜单。 ![][6] -catfish 是一个非常微妙但有价值的功能添加。 +Catfish 还添加了一些细微而有用的功能。 -#### GNOME 43 软件 +#### GNOME 43 软件应用 在值得注意的应用程序更新中,GNOME 的最新软件中心是一个不错的选择。这是 Xubuntu 22.10 的外观: ![][7] -当然,它可能无法让您与 Xfce 上的其他应用程序保持一致,但我认为您应该不会介意。 +当然,它可能无法与 Xfce 上的其他应用程序保持一致,但我认为你应该不会介意。 #### 图标更新 -随着基础的xfce 0.17 图标更新,有许多新图标和更简洁的选项可提供一致的Xubuntu 桌面体验。 +随着 elementary-xfce 0.17 图标更新,有许多新图标和更简洁的选项,可提供一致的 Xubuntu 桌面体验。 ![][8] -此外,基础的xfce黑色主题图标包已被弃用。 +此外,elementary-xfce-darkest 主题图标包已被弃用。 ![][9] @@ -79,31 +79,31 @@ catfish 是一个非常微妙但有价值的功能添加。 ![][10] -您现在可以将完整的进程路径复制到剪贴板。这对于在需要时从命令行进行故障排除或停止操作很有用。 +你现在可以将完整的进程路径复制到剪贴板。这对于需要从命令行进行故障排除或停止操作很有用。 + ### 其他增强功能 ![][11] 还有其他几个值得注意的变化,包括: -- **Linux 内核 5.19** -- **火狐浏览器 105。** -- **Alt-Tab 视图通过更突出的图标进行了改进。** -- **马赛克拼图添加到 SGT 拼图系列。** -- **马赛克拼图添加到 SGT 拼图系列。** -- **Mousepad文本编辑器现在包括搜索历史记录和更多调整。** +- Linux 内核 5.19。 +- Firefox 浏览器 105。 +- `Alt-Tab` 视图通过更突出的图标进行了改进。 +- 马赛克拼图添加到 SGT 拼图系列。 +- Mousepad 文本编辑器现在包括搜索历史记录,以及更多调整。 -要了解有关更改的更多信息,请查看[官方发行说明][12]。 +要了解有关更改的更多信息,请查看 [官方发行说明][12]。 -### 下载Xubuntu 22.10 +### 下载 Xubuntu 22.10 -你可以下载最新的ISO文件从[Ubuntu 的中央映像存储库][13]或它的[官方网站][14]. +你可以从 [Ubuntu 的中央镜像库][13] 或它的 [官方网站][14] 下载最新的 ISO 文件。 官方网站可能需要一段时间才能提供 ISO。 -[下载Xubuntu 22.10][14] +> **[下载Xubuntu 22.10][14]** -💬 您如何看待 Xubuntu 22.10?在评论中让我知道你的想法。 +💬 你觉得 Xubuntu 22.10 如何?请在评论中告诉我。 -------------------------------------------------------------------------------- @@ -111,8 +111,8 @@ via: https://news.itsfoss.com/xubuntu-22-10-release/ 作者:[Ankush Das][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From eec3f2ab0b06f044ab6624f2b6462c4cd7007815 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 16:09:03 +0800 Subject: [PATCH 1752/3123] P @littlebirdnest https://linux.cn/article-15188-1.html --- ...tu 22.10 Releases With Xfce Upgrades, and Other Refinements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md (98%) diff --git a/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md b/published/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md similarity index 98% rename from translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md rename to published/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md index d0aeba7f63..3892e9babd 100644 --- a/translated/news/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md +++ b/published/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "littlebirdnest" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15188-1.html" Xubuntu 22.10 的新变化 ====== From 4963831515dea8aa8225fae991696d89f344839e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 16:34:34 +0800 Subject: [PATCH 1753/3123] RP @chai001125 https://linux.cn/article-15189-1.html --- ... base64 Encode and Decode With Examples.md | 57 ++++++++++--------- 1 file changed, 29 insertions(+), 28 deletions(-) rename {translated/tech => published}/20221013 Learn Bash base64 Encode and Decode With Examples.md (64%) diff --git a/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/published/20221013 Learn Bash base64 Encode and Decode With Examples.md similarity index 64% rename from translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md rename to published/20221013 Learn Bash base64 Encode and Decode With Examples.md index 2418e538f9..c69b31a88a 100644 --- a/translated/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md +++ b/published/20221013 Learn Bash base64 Encode and Decode With Examples.md @@ -3,23 +3,24 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15189-1.html" 通过示例来学习 Bash base64 的编码和解码 ====== -你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。 -![][1] +> 你想了解 Base64 编码和解码的方法吗?在本教程中,我们使用 Bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。 -Base64 编码方法通过将二进制数据转换为文本,如此编码数据可以在任何通信媒体进行传输。这种编码方法主要用于电子邮件加密的过程。 +![](https://img.linux.net.cn/data/attachment/album/202210/29/163350mde5lll86j6lspln.jpg) -总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。 +Base64 编码方法可以将二进制数据转换为文本,如此编码数据可以在任何通信媒介进行传输。这种编码方法主要用于电子邮件加密的过程。 -根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 A 到 Z,小写字母 a 到 Z,数字 0 到 9 ,以及符号 + 和 /,这些字符在传输和打印上十分便捷。 +总体而言,Base64 编码方法是一种二进制到文本的编码方案,以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势,尤其是对于那些能可靠地支持文本内容的媒介。因此,Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。 -这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码后的 ASCII 字符恰好代表 6 位二进制值。 +根据 Base64 编码表,二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符,包含大写字母 `A` 到 `Z`,小写字母 `a` 到 `z`,数字 `0` 到 `9`,以及符号 `+` 和 `/`,这些字符在传输和打印上十分便捷。 + +这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码字符恰好代表 6 位二进制值。 ![Base64 Index Table][2] @@ -33,21 +34,21 @@ Base64 编码方法通过将二进制数据转换为文本,如此编码数据 base64 [OPTIONs] [INFILE] [OUTFILE] ``` -选项(Option):参照下面的表格,你可以提供任何的选项或组合多个选项。 -输入(INFILE):你可以从标准输入(如命令行)或文件中输入。 -输出(OUTFILE):你可以将输出重定向到标准输出,如终端或文件中。 +- 选项(`Option`):参照下面的表格,你可以提供任何的选项或组合多个选项。 +- 输入(`INFILE`):你可以从标准输入(如命令行)或文件中输入。 +- 输出(`OUTFILE`):你可以将输出重定向到标准输出,如终端或文件中。 | 选项 | 描述 | | :- | :- | -| -e 或者 –encode | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 | -| -d 或者 –decode | 此选项用于对标准输入的数据或从文件中读入的已 base64 编码数据进行解码。 | -| -n 或者 –noerrcheck | 默认情况下,base64 在解码数据时,会自动检查是否有错误。你可以使用 –n 或 –noerrcheck 选项,在解码时忽略检查。 | -| -i, –ignore-garbage | 此选项用于在解码时忽略非字母字符。 | -| -u 或者 –help | 此选项用于获取有关使用此命令的信息。 | +| `-e` 或者 `--encode` | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 | +| `-d` 或者 `--decode` | 此选项用于对标准输入的数据或从文件中读入的已 Base64 编码数据进行解码。 | +| `-n` 或者 `--noerrcheck` | 默认情况下,Base64 在解码数据时,会自动检查是否有错误。你可以使用该选项在解码时忽略检查。 | +| `-i` 或 `--ignore-garbage` | 此选项用于在解码时忽略非字母字符。 | +| `-u` 或者 `--help` | 此选项用于获取有关使用此命令的信息。 | #### 示例 1:基本编码 -在 Linux 中,默认已安装好 base64 软件包。因此,你可以轻松地从命令行使用 base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到命令行,并获取待编码的文本。在下面的示例中,对字符串 debugpoint.com 进行了 base64 编码。 +在 Linux 中,默认已安装好 Base64 软件包。因此,你可以轻松地从命令行使用 Base64。要对一个字符串或文本进行编码,你可以通过管道将其传递到 `base64` 命令,并获取待编码的文本。在下面的示例中,对字符串 `debugpoint.com` 进行了 Base64 编码。 ``` echo "debugpoint.com" | base64 @@ -55,21 +56,21 @@ echo "debugpoint.com" | base64 ![bash base64 encode and decode - example 1][3] -结果是经过 base64 编码后的字符串。 +结果是经过 Base64 编码后的字符串。 #### 解释 Base64 编码方法使用下面的几个步骤来转换输入的数据。首先,每个输入字符转换为 8 位二进制值,接着,二进制字符串拆分为一组组 6 位的二进制值,然后,每个 6 位的二进制值被转换为十进制值。 -最后,每个十进制值都通过 base64 编码索引表转换为 base64 字符。 +最后,每个十进制值都通过 Base64 编码索引表转换为 Base64 字符。 -在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。 +在上面的示例中,第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`,转换为十进制是 `25`。`25` 在 Base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。 ![Base64 Encode and Decode – inner working][4] #### 示例 2:基本解码 -要解码字符串,需要将编码值传递给 base64,选项为 `--decode`,它将输出你之前输入的字符串。 +要解码字符串,需要将编码值传递给 `base64` 命令,选项为 `--decode`,它将输出你之前输入的字符串。 ![bash base64 encode and decode - example 2 (decode the same example)][5] @@ -85,7 +86,7 @@ base64 example3.txt > example3-encoded.txt #### 示例 4:对文本文件进行解码 -要解码使用 base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。 +要解码使用 Base64 编码的文本文件,只需使用 `--decode` 或 `-d` 选项,并传递文本文件名。 ``` base64 -d example3-encoded.txt @@ -93,9 +94,9 @@ base64 -d example3-encoded.txt #### 示例 5:对用户输入的数据进行编码 -使用 bash shell 编程,你可以通过终端接收用户的输入,并对其进行 base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。 +使用 Bash shell 编程,你可以通过终端接收用户的输入,并对其进行 Base64 编码。你需要先编写一个简单的 shell 脚本,并在授予可执行权限后执行。 -以下就是一个简单的示例,它从用户那里获得输入,然后进行 base64 编码,最终显示编码的字符串。 +以下就是一个简单的示例,它从用户那里获得输入,然后进行 Base64 编码,最终显示编码的字符串。 ``` #!/bin/bash @@ -109,7 +110,7 @@ echo "The Base64 Encoded text is: $output_text" ![Custom input - base64 encode and decode using script][7] -#### 示例 6:用 base64 进行简单的身份认证 +#### 示例 6:用 Base64 进行简单的身份认证 你可以运用上述的编码和解码方法,实现一个简单的身份验证系统。你可以让用户输入密码或密码,然后将密码存储在文件中。或者进行实时比较。 @@ -132,7 +133,7 @@ fi ![A Simple Authentication using bash base64][8] -### 结论 +### 总结 我希望你能通过这些示例,学会 [Base64][9] 编码和解码的基础知识。此外,你也了解到 Base64 的内部编码方式。如果这对你很有帮助,或你还需要有关此主题的其他教程,请在下面的评论区中告诉我吧。 @@ -143,7 +144,7 @@ via: https://www.debugpoint.com/bash-base64-encode-decode/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8b78f5656a8e5b6e734269052eb46021ab121a04 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 17:19:03 +0800 Subject: [PATCH 1754/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 https://linux.cn/article-15190-1.html 贡献您,成为了三星贡献者!感谢您一直以来的持续贡献! --- ... Give Your Linux Desktop a Halloween Makeover.md | 123 +++++++++--------- 1 file changed, 62 insertions(+), 61 deletions(-) rename {translated/tech => published}/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md (53%) diff --git a/translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md b/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md similarity index 53% rename from translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md rename to published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md index f6ae8d0d13..a257aa28d7 100644 --- a/translated/tech/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md +++ b/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md @@ -3,12 +3,11 @@ [#]: author: "Sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15190-1.html" 打造万圣节 Linux 桌面 - ====== 马上就到万圣节了,太棒啦! @@ -19,69 +18,71 @@ 可定制是 Linux 的一大优势,对 Linux 可进行的定制是多种多样且没有尽头的。之前,我们向你展示过 [如何让你的 Linux 看起来像 macOS][2] 的方法。今天,我将继续分享一些定制“万圣节”Linux 桌面的技巧。 -可以通过主题、图标、扩展、字体、conky 等一系列配置组合起来,来实现 Linux 桌面的定制。**_虽然,你可以在任何的 Linux 发行版和桌面环境中配置这些东西,但是仅在一个教程中展示所有 Linux 发行版和桌面环境的桌面定制方法,是不太可行的。_** +可以通过主题、图标、扩展、字体、Conky 等一系列配置组合起来,来实现 Linux 桌面的定制。_虽然,你可以在任何的 Linux 发行版和桌面环境中配置这些东西,但是仅在一个教程中展示所有 Linux 发行版和桌面环境的桌面定制方法,是不太可行的。_ 因此,在本文中,我将介绍 Ubuntu 与 GNOME 桌面环境的桌面定制方法。 -### 安装所有工具 +### 安装所需工具 你需要一些软件包和工具。在开始定制桌面前,请确保你安装了全部(或大多数)的软件包和工具。 -_你不必做出**所有**的桌面改变。但你做的越多,你的桌面也会美化得更好看。_ +_你不必做**所有**这些桌面改变。但你做的越多,你的桌面也会美化得更好看。_ -**安装 GNOME Tweaks 和 GMOME Extension Manager** +#### 安装 GNOME 优化工具和 GMOME 扩展管理器 -使用以下命令,来安装 GNOME Tweaks 工具和 GMOME 扩展管理器: +使用以下命令,来安装 GNOME 优化Tweaks 工具和 GMOME 扩展管理器Extensions manager
              : ``` -`sudo apt install gnome-tweaks gnome-extension-manager` +sudo apt install gnome-tweaks gnome-extension-manager ``` -在基于 KDE 的 Linux 系统中,没有可以更改 Linux 桌面外观的 Tweaks 工具。但是,你可以使用 Kvantum-Manager 这一应用程序来更改外观,请参考我在 [KDE 主题指南][3] 中的讨论。 +在基于 KDE 的 Linux 系统中,没有可以更改 Linux 桌面外观的优化工具。但是,你可以使用 Kvantum-Manager 这一应用程序来更改外观,请参考我在 [KDE 主题指南][3] 中的讨论。 -**安装 Conky(可选)** +#### 安装 Conky(可选) -你可以选择是否要安装 Conky ,因为现在管理 Conky 的项目已经不再维护了,因此继续使用 Conky 可能会有点棘手。但无论如何,我们用它来增加万圣节外观的感觉。 +你可以选择是否要安装 Conky ,因为现在 conky-manager 项目已经不再维护了,因此继续使用 Conky 可能会有点棘手。但无论如何,我们用它来增加万圣节外观的感觉。 ``` -`sudo apt install conky-all` +sudo apt install conky-all ``` -**安装 Neofetch 或者 shell color scripts** +#### 安装 Neofetch 或者 Shell-color 脚本 -这个步骤也可以由你自主选择。你可以选择使用 [neofetch][4],因为 neofetch 工具已经在 Ubuntu 仓库中了,你可以直接通过 `apt install` 安装,并且 neofetch 使用起来也很简单。 +这个步骤也可以由你自主选择。你可以选择使用 [neofetch][4],因为 `neofetch` 工具已经在 Ubuntu 仓库中了,你可以直接通过 `apt install` 安装,并且 `neofetch` 使用起来也很简单。 ``` -`sudo apt install neofetch` +sudo apt install neofetch ``` -[Shell-color scripts][5] 是另一个不错的选择。在 Arch 用户仓库(AUR)中有该软件包,Arch Linux 用户可以从 AUR 安装 Shell-color scripts。而在 Ubuntu 中,你则需要手动安装它。 +[Shell-color 脚本][5] 是另一个不错的选择。在 Arch 用户仓库(AUR)中有该软件包,Arch Linux 用户可以从 AUR 安装 Shell-color 脚本。而在 Ubuntu 中,你则需要手动安装它。 ``` -`git clone https://gitlab.com/dwt1/shell-color-scripts.git cd shell-color-scripts sudo make install` +git clone https://gitlab.com/dwt1/shell-color-scripts.git +cd shell-color-scripts +sudo make install ``` -**安装主题、图标、字体和壁纸工具** +#### 安装主题、图标、字体和壁纸工具 -我正在使用的是 [Sweet][6] 主题工具、[Beautiline][7] 图标软件包、[simple1e][8] 光标工具和 [灰色极简主义(Grey-Minimalistic)][9] conky 主题,下载好这些工具后,再解压包。你还要下载 [Creepster][10] 字体。 +我正在使用的是 [Sweet][6] 主题工具、[Beautiline][7] 图标软件包、[simple1e][8] 光标工具和 [Grey-Minimalistic][9] Conky 主题,下载好这些工具后,再解压包。你还要下载 [Creepster][10] 字体。 最后,从互联网上下载一张 [万圣节幽灵氛围的壁纸][11]。 -请注意!你即将要进行大量的定制和更改。要恢复到原来普通的外观,你可以通过撤销你所做的所有更改。一个更简单的方法是:创建一个管理员权限的新用户,并使用该新用户进行所有这些更改。这样,你的原始用户帐户和外观就不会受到影响。在万圣节结束后,你可以删除这个新增的用户。 +> 请注意!你即将要进行大量的定制和更改。要恢复到原来普通的外观,你可以通过撤销你所做的所有更改。一个更简单的方法是:创建一个管理员权限的新用户,并使用该新用户进行所有这些更改。这样,你的原始用户帐户和外观就不会受到影响。在万圣节结束后,你可以删除这个新增的用户。 现在,你有了所有定制桌面的工具和资源,是时候使用它们了! ### 安装并使用扩展 -打开 gnome-extensions 应用程序。在 Ubuntu 22.04 中,你可以在浏览菜单(Browse)下安装扩展。 +打开 gnome-extensions 应用程序。在 Ubuntu 22.04 中,你可以在浏览Browse菜单下安装扩展。 ![install gnome shell extensions user themes blur my shell and dash to dock][12] -在其他版本的 Ubuntu 和其他带有 GNOME 的发行版上,你可以通过浏览器上 [安装 shell 扩展][13],来安装扩展。为了实现打造万圣节桌面的目的,请安装以下扩展程序: +在其他版本的 Ubuntu 和其他带有 GNOME 的发行版上,你可以通过浏览器 [安装 shell 扩展][13],来安装扩展。为了实现打造万圣节桌面的目的,请安装以下扩展程序: -- [用户主题(User Themes)][14] -- [Dash 到程序坞(Dash to Dock)][15] -- [模糊我的 shell(Blur my Shell)][16] +- [User Themes][14] +- [Dash to Dock][15] +- [Blur my Shell][16] 此外,请确保所有的扩展都已启用。 @@ -89,35 +90,35 @@ _你不必做出**所有**的桌面改变。但你做的越多,你的桌面也 你需要将解压的主题文件夹复制,并粘贴到 `~/.themes` 目录下,将解压的图标和光标文件夹复制,并粘贴到 `~/.icons` 目录下。 -接下来,打开 GNOME Tweaks,并应用主题、图标和字体等设置,如下的截图所示。 +接下来,打开 GNOME 优化Tweaks 工具,并应用主题、图标和字体等设置,如下的截图所示。 ![set themes with gnome tweaks][17] -要[在 Ubuntu 中使用自定义字体][18],请右键单击你下载和解压的字体文件,然后选择使用字体管理器(Font manager)打开。我打算使用的是 [Creepster][10] 字体。 +要 [在 Ubuntu 中使用自定义字体][18],请右键单击你下载和解压的字体文件,然后选择使用字体管理器Font manager打开。我打算使用的是 [Creepster][10] 字体。 ![right click on font file and select open with fonts][19] -然后,点击右上角的安装(Install)按钮。 +然后,点击右上角的安装Install按钮。 ![install font using font manager application][20] -请注意:在某些系统中,点击安装按钮不会显示“已安装(installed)”的提示。在这种情况下,你只需关闭界面就行了,因为一旦你点击了安装按钮,该字体就已经安装上了。 +请注意:在某些系统中,点击安装按钮不会显示“已安装installed”的提示。在这种情况下,你只需关闭界面就行了,因为一旦你点击了安装按钮,该字体就已经安装上了。 -再重新打开 GNOME Tweaks,然后前往字体(Fonts)边栏,在这里,你可以更改各个文件类型的字体,如下图所示。 +再重新打开 GNOME 优化Tweaks 工具,然后前往字体Fonts边栏,在这里,你可以更改各个文件类型的字体,如下图所示。 ![change system fonts using gnome tweaks][21] -请注意,对于终端,需要单空格的字体。在这里,我使用了普通的字体,这里可能会让你稍稍有点迷失。 +请注意,对于终端,需要等宽字体。在这里,我使用了普通字体,这里可能会让你稍稍有点迷失。 ### 应用 Dash to Dock 扩展设置 -首先,你要使用 GNOME 扩展应用程序(GNOME Extensions application),来**关闭 Ubuntu Dock 扩展**(turn off the Ubuntu Dock extension)。 +首先,你要使用 GNOME 扩展应用程序,来**关闭 Ubuntu Dock 扩展**。 ![Disable Ubuntu Dock][22] -如果 Dash to 程序坞扩展(Dash to Dock extension)还尚未运行的话,请先运行它。 +如果 Dash to Dock 扩展还尚未运行的话,请先运行它。 -然后,右键单击在底部显示的 Dash to Dock 按钮,然后选择 Dash to Dock Settings。 +然后,右键单击在底部显示的 “Dash to Dock” 按钮,然后选择 “Dash to Dock Settings”。 ![select dash to dock settings][23] @@ -129,21 +130,21 @@ _你不必做出**所有**的桌面改变。但你做的越多,你的桌面也 之后,你需要减少程序坞的不透明度,我更喜欢完全透明的程序坞。 -所以,我将不透明度设置为**固定**(fixed),并使用滑块将其降至零,如下图所示。 +所以,我将不透明度设置为 固定fixed,并使用滑块将其降至零,如下图所示。 ![opacity setting for dash to dock][25] -### GNOME 终端(GNOME terminal)设置 +### GNOME 终端的设置 -你想得到的 Linux 桌面的主要变化是自定义**模糊且有一定透明度**的 neofetch 外观(或 shell color script 外观)。 +你想得到的 Linux 桌面的主要变化是自定义**模糊且有一定透明度**的 `neofetch` 外观(或 shell-color 脚本外观)。 -我们之前在 GNOME Tweaks 中应用单空格字体时,因此 GNOME 终端中的字体也会被更改。 +我们之前在 GNOME 优化Tweaks 工具中应用了等宽字体,因此 GNOME 终端中的字体也会被更改。 -首先,从**偏好设置**中创建一个新的配置文件。 +首先,从 偏好设置preferences 中创建一个新的配置文件。 ![select preferences from hamburger menu][26] -单击 `+` ,来创建一个新配置文件。输入文件的名称,并点击**创建**(create),如下所示: +单击 `+` ,来创建一个新配置文件。输入文件的名称,并点击 创建create,如下所示: ![create new profile in gnome terminal][27] @@ -151,17 +152,17 @@ _你不必做出**所有**的桌面改变。但你做的越多,你的桌面也 ![set transperancy to gnome terminal][28] -完成后,要将此配置文件设置为默认的配置文件,单击与新配置文件关联的三角形按钮,然后选择**设置为默认**(Set as Default)。 +完成后,要将此配置文件设置为默认的配置文件,单击与新配置文件关联的三角形按钮,然后选择 “设置为默认Set as Default”。 ![set new profile as default in gnome terminal][29] #### 设置模糊效果 -上述的步骤只会将终端变成一个透明的外壳。但是,如果你还需要有利于提高可见性的模糊效果,你需要进入到 Blur my Shell 扩展进行设置。 +上述的步骤只会将终端变成一个透明的 shell。但是,如果你还需要有利于提高可见性的模糊效果,你需要进入到 “Blur my Shell” 扩展进行设置。 ![blur my shell extension settings][30] -首先,进入到**应用程序**(Application)菜单。现在,确保终端已打开,并置于屏幕明显的位置。单击**添加**(Add)窗口,然后选择 gnome 终端窗口,以设置模糊效果。请注意:此功能还处于测试阶段,因此可能会出现一些小故障。 +首先,进入到 应用程序Application 菜单。现在,确保终端已打开,并置于屏幕明显的位置。单击 添加Add 窗口,然后选择 GNOME 终端窗口,以设置模糊效果。请注意:此功能还处于测试阶段,因此可能会出现一些小故障。 ![applying blur effect to selected windows][31] @@ -169,53 +170,53 @@ _你不必做出**所有**的桌面改变。但你做的越多,你的桌面也 #### 定制 Neofetch -Neofetch 的最佳功能之一是其可定制性。你可以用 Neofetch 中的多种方法,来调整外观。为了更有万圣节氛围,我选择了一个南瓜图像,来代替发行版的 logo。 +Neofetch 的最佳功能之一是其可定制性。你可以使用多种方法来调整 Neofetch 的外观。为了更有万圣节氛围,我选择了一个南瓜图像,来代替发行版的徽标。 Neofetch 提供以各种格式添加自定义图像的功能。为此,也有各种供支持的后端。在这里,我使用 jp2a 后端,它将使用 [转换成 ASCII 的图片][32]。 ``` -`neofetch --jp2a /path/to/your/image/file.png` +neofetch --jp2a /path/to/your/image/file.png ``` ![neofetch with custom backend][33] -上述命令将创建一个带有自定义图片的 Neofetch 实例。你可以将此命令写入你的 .bashrc 文件,以便永久放置该图片。 +上述命令将创建一个带有自定义图片的 Neofetch 实例。你可以将此命令写入你的 `.bashrc` 文件,以便永久放置该图片。 -_**不幸的是,这在我的 Wayland 实例上并不起作用。**_ +_不幸的是,这在我的 Wayland 实例上并不起作用。_ -#### 自定义 Shell Color Scripts +#### 自定义 Shell-Color 脚本 -如果你安装的是 Shell Color Scripts 工具,则会有多种 shell 脚本。要列出可用的脚本,请使用命令: +如果你安装的是 Shell Color 脚本工具,则会有多种 shell 脚本。要列出可用的脚本,请使用命令: ``` -``colorscript -l`` +colorscript -l ``` ![ghosts shell color script][34] -你可以通过将 `colorscript random` 写入你的 .bashrc 文件,以每次都获得一个随机的颜色脚本,或者通过将`colorscript -e `写入你的 .bashrc 文件,来得到一个特定的颜色脚本。 +你可以通过将 `colorscript random` 写入你的 `.bashrc` 文件,以每次都获得一个随机的颜色脚本,或者通过将`colorscript -e `写入你的 `.bashrc` 文件,来得到一个特定的颜色脚本。 ### 设置 Conky -我使用的是 Deviantart 的 [灰色极简主义(Grey-Minimalistic)][9] conky 主题。conky 主题的每种类型都有不同的安装方法。因此,如果你想要使用另一个 conky 文件的话,请遵循它的 README 文件中描述的设置方法,进行设置。 +我使用的是 Deviantart 的 [Grey-Minimalistic][9] conky 主题。Conky 主题的每种类型都有不同的安装方法。因此,如果你想要使用另一个 Conky 文件的话,请遵循它的 `README` 文件中描述的设置方法,进行设置。 -解压 conky 主题文件,里面有几个文件夹。首先,你需要安装关联的图标和字体,也就是说,使用字体管理器(font-manager)安装给定的字体。接着,将图标文件夹拷贝,并粘贴到 ~/.icons 文件夹。 +解压 Conky 主题文件,里面有几个文件夹。首先,你需要安装关联的图标和字体,也就是说,使用 字体管理器font-manager 安装给定的字体。接着,将图标文件夹拷贝,并粘贴到 `~/.icons` 文件夹。 ![copy and paste conky files to home directory][35] -然后,进入 conky 文件夹。确保你已 [启用查看隐藏文件][36],将 `.conkyrc` 文件和 `.conky-vision-icons` 文件复制到你的 home 目录,如上图所示。 +然后,进入 Conky 文件夹。确保你已 [启用查看隐藏文件][36],将 `.conkyrc` 文件和 `.conky-vision-icons` 文件复制到你的主目录,如上图所示。 -现在,启动conky,看起来就变成下图这样了。 +现在,启动 Conky,看起来就变成下图这样了。 ![conky theme applied][37] -将 conky 添加到 [自启动应用程序列表][38] 中,以便在每次开机时都能自启动。 +将 Conky 添加到 [自启动应用程序列表][38] 中,以便在每次开机时都能自启动。 ![add conky to the list of startup applications][39] ### 更改壁纸 -你快要完成啦。你现在唯一需要做的就是 [更改背景壁纸][40]。我相信你之前已经下载好了有万圣节幽灵气氛的壁纸,右键设置为壁纸(Set as Wallpaper)就好啦。 +快要完成啦。你现在唯一需要做的就是 [更改背景壁纸][40]。我相信你之前已经下载好了有万圣节幽灵气氛的壁纸,右键 “设置为壁纸Set as Wallpaper” 就好啦。 ![set image as wallpaper from nautilus][41] @@ -225,7 +226,7 @@ _**不幸的是,这在我的 Wayland 实例上并不起作用。**_ ![ubuntu halloween theme final look][42] -这个桌面对于万圣节来说够吓人了吗?你是怎么觉得的呢?在评论区中告诉我吧。 +这个桌面对于万圣节来说够吓人了吗?你觉得怎么样?在评论区中告诉我吧。 -------------------------------------------------------------------------------- @@ -234,7 +235,7 @@ via: https://itsfoss.com/linux-halloween-makeover/ 作者:[Sreenath][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 49562b1acb529978a9d550f57932923e7f8ada94 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 29 Oct 2022 17:24:44 +0800 Subject: [PATCH 1755/3123] R --- ...018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md b/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md index a257aa28d7..cd8a41894f 100644 --- a/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md +++ b/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md @@ -30,7 +30,7 @@ _你不必做**所有**这些桌面改变。但你做的越多,你的桌面也 #### 安装 GNOME 优化工具和 GMOME 扩展管理器 -使用以下命令,来安装 GNOME 优化Tweaks 工具和 GMOME 扩展管理器Extensions manager
              : +使用以下命令,来安装 GNOME 优化Tweaks 工具和 GMOME 扩展管理器Extensions manager: ``` sudo apt install gnome-tweaks gnome-extension-manager @@ -74,7 +74,7 @@ sudo make install ### 安装并使用扩展 -打开 gnome-extensions 应用程序。在 Ubuntu 22.04 中,你可以在浏览Browse菜单下安装扩展。 +打开 GMOME 扩展管理器Extensions manager。在 Ubuntu 22.04 中,你可以在浏览Browse菜单下安装扩展。 ![install gnome shell extensions user themes blur my shell and dash to dock][12] From 1d13fede3be34b77168ca2a6c3b284030c9492da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:34:58 +0800 Subject: [PATCH 1756/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Give=20your=20Terminal=20a=20Retro=20Look=20Using=20this=20Neat?= =?UTF-8?q?=20Application.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rminal a Retro Look Using this Neat Application.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md diff --git a/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md new file mode 100644 index 0000000000..368c395c73 --- /dev/null +++ b/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md @@ -0,0 +1,115 @@ +[#]: subject: "Give your Terminal a Retro Look Using this Neat Application" +[#]: via: "https://www.debugpoint.com/cool-retro-terminal/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Give your Terminal a Retro Look Using this Neat Application +====== + +**Want to give your Terminal a retro look? This guide contains instructions to help you to install Cool Retro Terminal application in all Linux distributions.** + +![Cool Retro Terminal][1] + +Cool Retro Terminal + +Have you ever wondered how you can mimic the look of those old CRT monitors displayed in your Linux terminal? + +Those CRT screens have their own fan base. Like the Apple 2 or the IBM 3278 terminals – they are really cool looking if you compare them to today’s 4K monitor displays. I am not saying 4K is bad, but sometimes legacy displays remind us of those bygone days. Enough of these ramblings. Let’s get started installing the app. + +### Cool Retro Term + +The application is free and open-sourced. And it is called [cool-retro-term][2]. It is lightweight and has many customization options with pre-set profiles, such as Apple 2, etc. It also gives you those static noises and scan-lines effects in your terminal. Cool, isn’t it? + +It is built in Qt and requires Qt 5.2 and higher. If you are using the latest Linux distributions, you should be good in terms of dependencies. + +![Green Scanlines Theme][3] + +Green Scanlines Theme + +### How to Download and Install Cool Retro Terminal + +#### Ubuntu, Linux Mint and other Debian-based distributions + +The following simple command will install this application in your Ubuntu and other related distributions. + +``` +sudo apt install cool-retro-term +``` + +#### Arch Linux + +This package is available in Arch User Repository AUR. If you do not have AUR enabled, enable it using [this guide][4] and then use the following commands to install it. + +``` +pacman -S cool-retro-term +``` + +#### Fedora, RHEL and other related distributions + +For Fedora and other related Linux, use the following command to install this app. + +``` +sudo dnf install cool-retro-term +``` + +#### Appimage + +A self-contained executable as AppImage is also available, which you can just download and run. No installation is required. Follow the below commands to do that. + +``` +wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage +chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage +./Cool-Retro-Term-1.1.1-x86_64.AppImage +``` + +Note: Version 1.2.0 onwards there are no AppImage build in the GitHub. + +### Configurations + +After the installation is finished, you can find the terminal application “Cool Retro Term” in the application menu. So, launch the application and enjoy. + +Remember, this is not overriding your default console/terminal application in your Linux distributions. It is a stand-alone console application. + +The configuration options are available via the Right Click context menu. + +The context menu gives you the following pre-sets. You can then configure each of them for colour, and appearance settings via the settings window. For example, if you want more transparency, contrast or more noise, ambient light or flickering – all of them can be configured from the below settings window via several options. + +And easily you can make your own theme. + +![Pre-loaded Themes in Cool Retro Term][5] + +Pre-loaded Themes in Cool Retro Term + +![Various Effects in Settings][6] + +Various Effects in Settings + +### Summary + +Cool Retro Terminal is an old tube-style terminal for Linux desktops that allows you to experience it as if you are sitting in front of a retro terminal. You may or may not like it, and one hardly uses it for a daily driver. But still, a nice-looking terminal to experience from time to time to get away from the mundane terminal. + +Do you like the retro look? What is your favourite theme? Let me know in the comment section below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cool-retro-terminal/ + +作者:[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/2021/12/cool-retro-terminal-1024x576.jpg +[2]: https://github.com/Swordfish90/cool-retro-term +[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg +[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg From 9b2163d149a5b6408ead881137380042879ebd69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:36:00 +0800 Subject: [PATCH 1757/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Check?= =?UTF-8?q?=20CPU=20and=20HDD=20Temperature=20in=20Ubuntu=20and=20Other=20?= =?UTF-8?q?Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d HDD Temperature in Ubuntu and Other Linux.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md diff --git a/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md b/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..f431d04ade --- /dev/null +++ b/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md @@ -0,0 +1,119 @@ +[#]: subject: "How to Check CPU and HDD Temperature in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Check CPU and HDD Temperature in Ubuntu and Other Linux +====== + +**Wondering how you can check the CPU and HDD temperature in Ubuntu and other Linux on your desktop or laptop? Here’s a quick guide.** + +You do not actually require checking CPU or HDD temperature if you are an average user. But, if you are using very older hardware or a thin one, you may run into an overheating problem. Because these thin ones are tightly coupled together inside, and no matter how much heat transfer mechanism is implemented, it heats up. Therefore, it is essential to monitor the temperature of the hardware. However, modern Linux distributions are well capable of handling overheating situations via software sensors. + +### Steps for monitoring CPU and HDD temperature on Ubuntu + +#### Using terminal + +We are going to use a couple of packages to achieve the same. Open a terminal in your Ubuntu-based system and install the following. + +``` +sudo apt install hddtemp +sudo apt install lm-sensors +``` + +The [hddtemp][1] utility gives you the temperature of your optical hard disk drive as well as SSD (as per my test). And the [lm-sensors][2] package gives you temperature details from the CPUs and other sensors accessed via PCI ports. + +After installation, run the following from the terminal. You need to know your disk identifier for this – for example `/dev/sda` or `/dev/sdb`, etc. + +To find out the disk identifiers, you can use `fdisk`. + +``` +sudo fdisk -l +``` + +Then run below to check the HDD or SSD temperature. + +``` +sudo hddtemp +``` + +![HDD or SSD Temperature from terminal][3] + +HDD or SSD Temperature from terminal + +Checking the CPU temperature and other information requires an additional step. + +First, run the below command so that the utility of the sensor can detect the sensors in your system. + +``` +sudo sensors-detect +``` + +The above command might ask you some YES/NO questions. Keep pressing ENTER to choose the default options. + +Once done, run the below command to view the CPU and other interface temperatures. + +``` +sensors +``` + +![using sensors][4] + +using sensors + +#### Using GUI tools + +If you prefer a nice GUI which does all the above, you can install [psensor][5]. This utility works across Linux systems such as Ubuntu, Fedora, [Arch][6] and other variants. This gives you nice graphical plus tabular view of + +**Ubuntu and its derivatives** + +``` +sudo apt install psensor +``` + +**Fedora and RPM-based derivatives** + +``` +sudo dnf install psensor +``` + +**Arch, Manjaro and similar derivatives** + +``` +pacman -S psensor +``` + +Once installed, run via `psensor from the terminal or launch it from the`application menu. + +As you can see in the below screenshot, it gives you a nice view of all the important temperatures across CPU, GPU, and HDD with a nice graph. Using its preferences, you can tweak it as per your need. This lightweight utility can be helpful in many cases. + +![psensor running][7] + +psensor running + +So, these are some ways in which you can monitor CPU, GPU or HDD temperature in your Ubuntu and other Linux systems. Let me know if you know of any other ways to find these out using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/ + +作者:[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://wiki.archlinux.org/title/Hddtemp +[2]: https://github.com/lm-sensors/lm-sensors +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/HDD-or-SSD-Temperature-from-terminal.png +[4]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor.png +[5]: https://wpitchoune.net/psensor/ +[6]: https://www.debugpoint.com/tag/arch-linux +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor-running-1024x465.png From b0f0fa724d8e6b5489bf2433b7f21c0bc8555fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:37:07 +0800 Subject: [PATCH 1758/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.2=20=E2=AD=90=EF=B8=8F=20How=20to=20Clean?= =?UTF-8?q?=20Up=20Flatpak=20Apps=20to=20Clear=20Disk=20Space.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o Clean Up Flatpak Apps to Clear Disk Space.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md diff --git a/sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md b/sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md new file mode 100644 index 0000000000..49e1537a11 --- /dev/null +++ b/sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md @@ -0,0 +1,145 @@ +[#]: subject: "How to Clean Up Flatpak Apps to Clear Disk Space" +[#]: via: "https://www.debugpoint.com/clean-up-flatpak/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Clean Up Flatpak Apps to Clear Disk Space +====== + +**Here’s how to clean up Flatpak apps to reclaim your precious disk space. Follow along. ** + +Flatpak (like Snap) packages run in sandbox mode. By design, it takes a considerable amount of disk space for an individual application, even if it is a smaller one. For example, a simple Test editor or a basic image annotator application can take up more than 100+ MB of storage space. + +It’s how Flatpak or even Snap operates fundamentally. It pulls all dependencies for an app and runs independently. The advantage of this design is – you do not need to worry about dependencies or updates. All you need to do is install and run. On the contrary, it takes up a huge amount of disk space. + +And if you are running Ubuntu, elementary OS or any distribution for a longer period, you would be surprised that Flatpak keeps taking up more space over time. + +Hence, in this guide, we will give you some commands you can run yourself to clean up flatpak apps. + +### Clean Up Flatpak + +#### Where Flatpak packages are installed? + +When you install a Flatpak package, it gets installed in `/var/lib/flatpak`. All the installed files, metadata, application files, and runtime files are contained in this directory. Also, the user installation directory contains Flatpak data – that is – `~/.local/share/flatpak` + +#### How to find out the size of Flatpak apps? + +There are several commands and parameters of “flatpak” which you can combine to get the desired result to list the applications, size and type of installation. Here are some examples. + +- Verify the size of `/var/lib/flatpak`. But as it is being used by all Flatpak apps plus runtimes, you may not be able to recover entirely. + +``` +du -h /var/lib/flatpak +``` + +![Size of var-lib-flatpak][1] + +Size of var-lib-flatpak + +- If you have [Disk Usage Analyzer][2], you can verify by simply visiting the above directories. + +![Disk Analyzer Shows Flatpak size][3] + +Disk Analyzer Shows Flatpak size + +You can use any of the following commands to view the size of installed flatpak packages. + +- View all the installed flatpak with name and installed size. + +``` +flatpak --columns=name,size list +``` + +![flatpak list example 1][4] + +flatpak list example 1 + +- List all installed flatpak with installation type, size and application ID. + +``` +flatpak --columns=app,name,size,installation list +``` + +![flatpak list example 2][5] + +flatpak list example 2 + +- View only the flatpak installed by you. + +``` +flatpak --columns=name,size --user list +``` + +![flatpak list example 3][6] + +flatpak list example 3 + +Remember, two types of flatpak may exist in your system. Some of them may be part of the OS itself. And some of them are installed by you. + +#### Commands to Clean up + +- Use the following command to uninstall flatpak packages that are not in use. This is a safe command which you can try. + +``` +flatpak uninstall --unused +``` + +![clean up flatpak using unused switch][7] + +clean up flatpak using unused switch + +Using the above command, I have freed up around 1GB+ in my test system. + +![var-lib-flatpak size is reduced][8] + +var-lib-flatpak size is reduced + +- If you want to uninstall a specific Flatpak package, use the following command. Change the application ID with the app name. You can find the app name in the above list size commands. + +``` +flatpak uninstall +``` + +- The following command removes all flatpak packages from your system. Try not to run it unless you are very sure what you are doing. This may break your system, depending on your configuration. + +``` +flatpak uninstall --all +``` + +Finally, there are some flatpak cache files in path `/var/tmp/flatpak-cache-*`. Although the size may not be significant. But you can still remove them. + +``` +sudo rm -rfv /var/tmp/flatpak-cache-* +``` + +For more details about flatpak commands, visit the [official guide][9]. And let me know, using the comment box below, whether this helped you to clean up some space. + +If you are looking to clean up Snap packages, the guide is available [here][10]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/clean-up-flatpak/ + +作者:[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/2021/10/Size-of-var-lib-flatpak.jpeg +[2]: https://help.gnome.org/users/baobab/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/10/Disk-Analyzer-Shows-Flatpak-size-1024x392.jpeg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-1.jpeg +[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-2-1024x316.jpeg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-3.jpeg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/clean-up-flatpak-using-unused-switch.jpeg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/10/var-lib-flatpak-size-is-reduced.jpeg +[9]: http://flatpak list example 3 +[10]: https://www.debugpoint.com/2021/03/clean-up-snap/ From 9dc408313e6fa9eab4392a057ba51fd591d905d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:38:18 +0800 Subject: [PATCH 1759/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221028.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20PostgreSQL=2015=20on=20Ubuntu=2022.04=20Step-by-Step.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md diff --git a/sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md b/sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md new file mode 100644 index 0000000000..9f1100811c --- /dev/null +++ b/sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md @@ -0,0 +1,174 @@ +[#]: subject: "How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step" +[#]: via: "https://www.linuxtechi.com/how-to-install-postgresql-on-ubuntu/" +[#]: author: "Narendra K https://www.linuxtechi.com/author/narendra/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step +====== + +In this article, we will explain how to install PostgreSQL 15 database server on Ubuntu 22.04 (Jammy Jellyfish). + +PostgreSQL is a powerful, open-source object-relational Database Management System (DBMS). It’s been battle-tested for over 35 years which has earned it a strong reputation for reliability and performance. This feature-rich database is used by many tech giants, such as Apple, IMDB, Instagram, and so on. + +PostgreSQL supports large number of the SQL standard and is constructed to be extensible by users in many aspects. Some of the salient features include ACID transactions, foreign keys, subqueries, triggers, user-defined types, functions, etc. + +##### Prerequisites + +Before installing the PostgreSQL server, we must ensure that the system meets the following installation requirements: + +- Pre-Installed Ubuntu 22.04 +- A regular user with sudo rights +- An active internet connection +- At least 2 GB of RAM with an additional 512 MB of disk space. Please note that this is a minimal requirement for the demo environment. The actual hardware configuration will vary with data volume. + +Without any further delay, let’s deep dive into PostgreSQL 15 installation steps, + +### 1) Enable PostgreSQL Package Repository + +PostgreSQL 15 package is not available in the default package repository, so enable its official package repository using following commands. + +``` +$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' +$ wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null +``` + +To begin, let’s fetch the latest versions of the packages. We can achieve this using the apt update command as shown below: + +``` +$ sudo apt update +``` + +The above command will take a few seconds to complete. + +### 2) Install PostgreSQL 15 Database Server and Client + +The postgresql package installs the default version of the PostgreSQL database server whereas the postgresql-client package installs the client utility. + +Let’s install the PostgreSQL client and server using the below apt command: + +``` +$ sudo apt install postgresql postgresql-client -y +``` + +Next, let’s verify that the PostgreSQL service is up and running: + +``` +$ sudo systemctl status postgresql +``` + +Finally, check the PostgreSQL version using the psql command line utility: + +``` +$ psql --version +``` + +Here, we can see that the version of PostgreSQL is 15. + +### 3) Update PostgreSQL Admin User Password + +By default, we can connect to the PostgreSQL server without using any password. Let’s see this in action using the psql utility: + +``` +$ sudo -u postgres psql +postgres=# +``` + +In the above output, the postgres=#  prompt indicated the active connection with the PostgreSQL server. + +In this example, we have used the postgres user. This is an admin user of PostgreSQL and it gets created during the installation process. + +Allowing administrative access to the database without any password isn’t a good idea. So, let’s set the password for the postgres user: + +``` +postgres=# ALTER USER postgres PASSWORD 'demoPassword'; +``` + +The above SQL query sets the user password to demoPassword. Please note that, we have used a very simple password because this is a demo environment. However, the same is not recommended in the production environment. + +Let’s verify that the password has been set successfully. So first, terminate the current session with the server using the \q command. + +``` +postgres=# \q +``` + +Output of above commands, + +Now, let’s connect to the database server again: + +``` +$ psql -h localhost -U postgres +``` + +Let’s enter the demoPassword string as a password and now we are connected to the database. + +### 4) Configure PostgreSQL to Allow Remote Connections + +By default, PostgreSQL accepts connections from the localhost only. However, we can easily modify the configuration to allow connection from remote clients. + +PostgreSQL reads its configuration from the postgresql.conf file which is located in the /etc/postgresql//main/ directory. Here, the version indicates the major version of PostgreSQL. + +For example, in our case the full path of the file is /etc/postgresql/15/main/postgresql.conf. + +Now, open the postgresql.conf file in a text editor, uncomment the line that starts with the listen_addresses, and replace ‘localhost’ with ‘*’. + +This setting is located under the CONNECTIONS AND AUTHENTICATION section. After modification the file will look like this: + +Save and close the file. + +Next, edit the IPv4 local connections section of the pg_hba.conf file to allow IPv4 connections from all clients. Please note that this file is also located in /etc/postgresql/15/main/ directory. + +``` +$ sudo vi /etc/postgresql/15/main/pg_hba.conf +``` + +After modification the file will look like this: + +In the above configuration indicates to allow connection from the network 192.168.1.0/24 + +In case, Ubuntu firewall is running on your system then allow PostgreSQL 5432 port using following command, + +``` +$ sudo ufw allow 5432/tcp +``` + +##### Verifying Remote Connection + +Finally, restart the service and verify it’s up and running: + +``` +$ sudo systemctl restart postgresql +$ sudo systemctl status postgresql +``` + +Now, let’s try to access DB from remote client. + +``` +$ psql -h 192.168.1.192 -U postgres +``` + +In this example, 192.168.1.192 is the IP address of the PostgreSQL database server. + +Here we can see that we are able to access DB from the remote client. + +That’s all from this article.Please do post your queries and feedback in the below comments section. + +Read Also: [How to Set Static IP Address on Ubuntu Server 22.04][1] + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-postgresql-on-ubuntu/ + +作者:[Narendra K][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/narendra/ +[b]: https://github.com/lkxed +[1]: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/ From fe4dc91e5cc31ed68d6e9ebb143fb0039b335a48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:39:15 +0800 Subject: [PATCH 1760/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221029.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?7=20Best=20Open=20Source=20Web-based=20Email=20Clients.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 7 Best Open Source Web-based Email Clients.md | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md diff --git a/sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md b/sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md new file mode 100644 index 0000000000..447635219d --- /dev/null +++ b/sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md @@ -0,0 +1,241 @@ +[#]: subject: "7 Best Open Source Web-based Email Clients" +[#]: via: "https://itsfoss.com/open-source-web-based-email-clients/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Best Open Source Web-based Email Clients +====== + +Email services are here to stay, even if decentralized tech takes over the internet. + +However, with big tech trying to control everything new aspect of emerging technologies, how can you take charge of your email service? + +Whether a business/enterprise or an individual, a self-hosted open-source webmail service is always an option worth considering. Your server, your digital infrastructure, and your email service platform. This way, you do not have to rely on a vendor or a third party to manage your email services. You do it your way. + +### Why Should You Self-Host an Email Service? + +![best opensource web based email clients 1][1] + +It is **not a one-click process** to self-host a service, which you can use as a web-based email client or sync with an email app. + +So, why bother? Can’t you use some of the [best privacy-focused email services][2] like [Proton Mail][3] and Tutanota? + +Well, yes, you can. + +But, for businesses and enterprises, some advantages of self-hosting webmail include: + +- **The user gets total control over email data.** +- **You get the ability to build your infrastructure that meets the requirements of your email services.** +- **It provides scalability for individuals, small businesses, and enterprises.** +- **You can create unlimited email accounts and email aliases.** +- **Users can easily apply advanced filters and other protection mechanisms without paying for a subscription.** + +Here, I list some of the best options that you can pick. + +### 1. Roundcube + +![roundcube screenshot][4] + +**Key Highlights:** + +- Good fit for desktop use +- Actively maintained +- Available with most server hosting providers +- Customizable UI +- PGP Encryption + +Roundcube is a popular PHP-based webmail software that provides all the essential features in a simple user interface. + +With most of the server hosting providers, you already get it pre-installed. You have to configure it for your domain or create email accounts to get started. + +You can also install it and customize it on your server. + +[Roundcube][5] + +### 2. Cypht + +![cypht inbox interface][6] + +**Key Highlights:** + +- Lightweight +- Modular + +Cypht is an interesting webmail solution that provides a combined view of multiple email accounts. + +While it is built with a modular approach, it is easy to add functionalities to your experience with plugins. + +Unlike others, you can also use it to add RSS feeds and utilize it as a newsreader. + +[Cypht][7] + +### 3. Squirrelmail + +![squirrelmail][8] + +**Key Highlights:** + +- Lightweight +- Stable +- PGP Encryption plugin support + +A classic PHP-based with IMAP and SMTP protocol support. It does not include many features, but it gets the basics right if you want lightweight and stable webmail software to host. + +While it looks like a barebone implementation, it has been around for a long time with features like address book, folder manipulation, and MIME support. + +It also comes bundled in with most web hosting providers. + +[Squirrelmail][9] + +### 4. Rainloop + +![rainloop][10] + +**Key Highlights:** + +- No database required +- Simple user interface +- Lightweight + +Rainloop is a straightforward email solution that supports IMAP and SMTP protocols. + +It also supports OpenPGP encryption. Unlike some others, it does not require a database. Direct access to the mail server is maintained without requiring storing anything locally on the web server. + +You can extend certain functionalities thanks to plugin support. + +[Rainloop][11] + +### 5. Horde + +![horde screeshot][12] + +**Key Highlights** + +- Bundled with web hosting providers +- Simple and feature-rich + +Horde is an open-source groupware webmail software that comes bundled with various web server hosting providers. It supports IMAP. + +I usually prefer Horde when accessing the webmail for my domains, which has never disappointed me. It offers a simple and effective user interface and many essential features. + +Like others, it is a PHP-based framework that makes it easy for developers to work with. + +[Horde][13] + +### 6. SOGo + +![sogo][14] + +**Key Highlights:** + +- Material design UI +- Outlook support +- Online demo available + +SOGo is a modern open-source solution that features Google’s material design UI with its email server. + +It includes support for calendar and address books while providing a friendly AJAX-based web interface. + +You also get support for Microsoft Outlook and ActiveSync, which lets you synchronize emails, contacts, events, and tasks seamlessly. An online demo is available for you to try. If it sounds good, you can download it for your server. + +Explore more about it on its [GitHub page][15]. + +[SOGo][16] + +### 7. Afterlogic WebMail Lite + +![afterlogic webmail][17] + +Key Highlights: + +- Enterprise support options are available +- Social sign-in support +- OpenPGP Encryption + +An interesting open-source webmail with plugin support. + +It supports authentication using external services as well. For instance, you can use your Google account to sign in to your email account. + +While you get all the features and OpenPGP encryption support with the open-source edition, you can choose to use it commercially as well. + +Additionally, you can opt for the pro version to get technical support, a priority fix, a personal calendar, a mobile version, and the ability to add multiple IMAP accounts. + +[Afterlogic WebMail Lite][18] + +### Interesting Mentions + +Several open-source projects are under active development that you can experiment with. + +Of course, we do not recommend using them for business or personal use. You can try them out to see if you want to contribute to their development in some way. + +I would like to mention a couple of such mail service projects. + +#### Mailpile + +While it deserves a spot in the list above, the development for [Mailpile][19] has halted until Python3 rewrite is complete. + +![mailpile][20] + +It is a fast and modern open-source webmail with encryption and privacy-centric features. + +#### Cuttlefish + +![cuttlefish][21] + +[Cuttlefish][22] is a free and open-source transactional email service. It aims to be an alternative to proprietary services like [SendGrid][23]. + +It is in its early stages of development. + +#### Pinbox + +A self-hosted webmail solution that gets its inspiration from Google Inbox. + +[Pinbox][24] a work in progress and needs a few prerequisites to make it work. + +### Wrapping Up + +Squirrelmail, Horde, and Roundcube remain of the most popular options that can be easily accessed with most hosting providers. + +Of course, these options are not always modern looking or have features like Google Workspace or even Zoho but you get enough to do the necessary emailing. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/open-source-web-based-email-clients/ + +作者:[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/wp-content/uploads/2022/10/best-opensource-web-based-email-clients-1.png +[2]: https://itsfoss.com/secure-private-email-services/ +[3]: https://itsfoss.com/recommends/protonmail +[4]: https://itsfoss.com/wp-content/uploads/2022/10/roundcube-screenshot.png +[5]: https://roundcube.net +[6]: https://itsfoss.com/wp-content/uploads/2022/10/cypht_inbox_interface.png +[7]: https://cypht.org/index.html +[8]: https://itsfoss.com/wp-content/uploads/2022/10/squirrelmail.jpg +[9]: https://www.squirrelmail.org/ +[10]: https://itsfoss.com/wp-content/uploads/2022/10/rainloop.png +[11]: https://www.rainloop.net +[12]: https://itsfoss.com/wp-content/uploads/2022/10/horde-screeshot.png +[13]: https://www.horde.org +[14]: https://itsfoss.com/wp-content/uploads/2022/10/sogo.png +[15]: https://github.com/Alinto/sogo/ +[16]: https://www.sogo.nu +[17]: https://itsfoss.com/wp-content/uploads/2022/10/afterlogic-webmail.jpg +[18]: https://afterlogic.org/webmail-lite +[19]: https://www.mailpile.is +[20]: https://itsfoss.com/wp-content/uploads/2022/10/mailpile.png +[21]: https://itsfoss.com/wp-content/uploads/2022/10/cuttlefish.png +[22]: https://cuttlefish.io +[23]: https://sendgrid.com +[24]: https://github.com/msp301/pinbox From 556b17bc0e03cac6c457b0b2ed5b0ed4a10c0ec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:39:55 +0800 Subject: [PATCH 1761/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Upgrade?= =?UTF-8?q?=20Python=20Packages=20with=20Pip.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Upgrade Python Packages with Pip.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md diff --git a/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md b/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md new file mode 100644 index 0000000000..a411e29b73 --- /dev/null +++ b/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md @@ -0,0 +1,108 @@ +[#]: subject: "How to Upgrade Python Packages with Pip" +[#]: via: "https://itsfoss.com/upgrade-pip-packages/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Upgrade Python Packages with Pip +====== + +When was the last that you updated Python packages installed via Pip? Most of the users tend to forget that those packages also need to be updated, as just updating the system repository is not going to work here. + +So let’s take a moment and see how to update old Python packages with Pip. + +### How to use pip to upgrade Python packages + +[Pip (Pip Installs Packages)][1] is a command line utility to manage python packages. You can think of this as how we use apt to manage packages in Ubuntu and Debian. + +So let’s dive deep into how you can use this fab utility to manage everything related to Python packages. + +#### 1. List outdated packages + +Listing the outdated packages is the best idea to plan how you want to update packages as not many want to update their entire library of packages at once and wants to be selective. + +To list outdated packages of Python, you just have to pair `pip` command with `list` option and `--outdated` flag as shown: + +``` +pip list --outdated +``` + +![outdated packages][2] + +#### 2. Upgrade a specific package + +Once you get the list of the packages that need to be updated, you can be selective as I mentioned earlier, and to update a specific package, you’ll need to follow the given command syntax: + +``` +pip install package_name -U +``` + +For example, I want to upgrade the package named `anime-api` to the most recent version, so I’ll be using the given command: + +``` +pip install anime-api -U +``` + +![update anime api][3] + +#### 3. Upgrade package to specific version + +It is not necessary to use only the most recent version of the software (cough [Debian][4] cough) and if you are in need of using packages to a specific version that may or may not be the most recent software, can be done using the given command syntax: + +``` +pip install --upgrade == +``` + +So I want to update the package named `xdg` to version 5.1 which is one point release behind the most recent build so my command would be: + +``` +pip install --upgrade xdg==5.1 +``` + +![upgrade xdg to specific iteration][5] + +#### 4. Upgrade every package using Pip + +**NOTE: I do not recommend upgrading every package at once as most of the time, the dependencies are too complex to be handled.** + +To upgrade every python package, you’d need to follow the given command: + +``` +pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U +``` + +![upgrade everything][6] + +The above command utilizes [xargs][7]. First, it will grab the packages that are needed to be updated and then perform `pip3 install -U` command over each package. + +And I used pip3 here instead of pip. In Ubuntu 22.04 and later, both pip and pip3 commands are available. + +### Wrapping Up + +Upgrading everything at once has never been a good idea in the case of pip. And I found myself in a state of broken dependencies so make sure you know what you will have. + +And if you have any queries, feel free to ask in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/upgrade-pip-packages/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/install-pip-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/09/outdated-packages.png +[3]: https://itsfoss.com/wp-content/uploads/2022/09/update-anime-api.png +[4]: https://www.debian.org/ +[5]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-xdg-to-specific-iteration.png +[6]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-everything.png +[7]: https://linuxhandbook.com/xargs-command/ From eb2233241f171ce7a08f79f930ef0c98c80dea13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:40:23 +0800 Subject: [PATCH 1762/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221029.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Set=20up=20a=20Matrix=20to=20Discord=20bot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...9.1 ⭐️⭐️ Set up a Matrix to Discord bot.md | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md diff --git a/sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md b/sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md new file mode 100644 index 0000000000..a101c437be --- /dev/null +++ b/sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md @@ -0,0 +1,174 @@ +[#]: subject: "Set up a Matrix to Discord bot" +[#]: via: "https://opensource.com/article/22/10/matrix-discord-bot" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Set up a Matrix to Discord bot +====== + +Run a Python Matrix bot to bridge chat between a Matrix room and a Discord channel. + +Matrix is a popular [open source chat application][1] that makes it easy to chat securely with people all over the world. Similarly, Discord is a non-open source chat application that's also popular with many online communities. Discord, like Matrix, provides a chat client for all major platforms both mobile and desktop, so it's perfectly usable on Linux. However, it's not open source and so, given the choice, you might prefer to use Matrix. The good news is that when not given a choice for any reason, you can **also** use Matrix to interface with Discord by running a Matrix-to-Discord bridge. This article shows you how to set up and run a Python Matrix bot to bridge chat between a Matrix room and a Discord channel. + +### Requirements + +The bot demonstrated in this article is a "non-puppeting" bridge, meaning that it just copies ingoing and outgoing messages on one platform and sends it to the other. There are more advanced modes available, but those tend to require a self-hosted Matrix instance. The procedure for setting up the bot, however, is similar in both cases, so whether you're setting up a bridge service for your self-hosted Matrix server or just a puppeting bot for public instances, I assume you have at least: + +- A Matrix account and a Matrix client such as [Element][2]. +- A Discord account. +- A Linux or BSD server that can run the Python3 bot. I use a [Rev. 1 Raspberry Pi][3] with just a 700mHZ processor and 256 MB RAM, running NetBSD. You can run the bot locally, if you prefer, but I find it more convenient to run it as a persistent service so I don't miss messages that happen while I'm away. + +### Get the bot + +Download or clone [matrix-discord-bridge][4]. + +Change into its `bridge` directory and install its dependencies using [pip][5]: + +``` +$ python3 -m pip install-r requirements.txt +``` + +Run the bot to generate an empty configuration file: + +``` +$ python3 ./bridge.py +``` + +You now have a file called `config.json` in your current directory. It contains six key and value pairs. The rest of this article demonstrates how to obtain these values, but first an overview: + +The top three are for Matrix. + +- **homeserver**: The Matrix server you log in to +- **username**: Your Matrix login name +- **password**: Your Matrix password + +Two are for Discord: + +- **token**: A bot developer token obtained from Discord. +- **discord_cmd_prefix**: A character sequence you want to use as a shortcut for sending the bot commands through Discord. + +And the final one is for both: + +- **bridge**: The Discord "channel" ID and the Matrix "room" ID that you're bridging. This can contain more than one channel and room pair, so you can use just one bot to bridge several rooms. + +### Set up Matrix + +All you have to do to set up the Matrix side is open a Matrix account for your bot. + +Next, you need the ID of the room you want to bridge to Discord. To get a room ID, right-click on the room icon in the left panel of Element and select **Copy Link**. In the URL you've just copied, there's a semicolon. The room ID is the part on left of the semicolon, and the home server of that room is to the right. For example, suppose this is the URL you just copied: + +``` +https://matrix.to/#/!DEADBEEFzzzzABCDEF:matrix.org?via=matrix.org +``` + +The room ID is `!DEADBEEFzzzzABCDEF` and the home server is `matrix.org`. + +You can now add your Matrix details to the `config.json` file. For example: + +``` +"homeserver": "https://matrix.org", + "username": "@mybot:matrix.org", + "password": "myBadPassword1234", + "token": "", + "discord_cmd_prefix": "", + "bridge": { + "": "!DEADBEEFzzzzABCDEF:matrix.org" + } +} +---- +``` + +### Get a Discord token + +Assuming you already have an account on Discord, open a web browser and navigate to [discordapp.com/developers/applications][6]. Once you've logged in, click the **New Application** button in the **Applications** tab. + +Give your bot a name. For this example, I use `mybot`. + +After you've defined a bot, click on it and find the **Bot** category in the menu on the left. + +In the **Bot** panel, click the **Add Bot** button. Discord adds your bot to the panel, alerting you that "A wild bot has appeared!" in a message box. Under the name of your bot, there's a link to click to reveal your bot's token. Click the link and copy the token into your config file. + +``` +"token": "07c63.fb2823cG759.b20_852f337a6551bc", +``` + +### Set the bot command + +Choose a sequence of characters you want to use to issue commands to the bot in Discord. In the instance of a simple bridge, you may not have any commands you need to issue, so this value probably doesn't actually matter. I set it to `!b` but I've never used it. + +``` +"discord_cmd_prefix": "!b", +``` + +### Add your bot to Discord + +Now you must add your bot to the channel you want it to bridge. + +- Select **OAuth2** from the menu on the left, and then **URL Generator**.![Select URL Generator under the OAuth2 menu item.][7] +- In the **Scopes** section, select **bot** (and only **bot**). In the **Bot Permissions** section that appears under the **Scopes** section, activate all options under **Text Permissions**. +- Copy the URL displayed at the bottom of the panel, in the **Generated URL** field. + +Navigate to the URL you just copied, and add the bot to the channel. + +You're done with the Discord web interface, but now there's one more configuration option you need from the Discord app. + +### Get the Discord channel ID + +In **User Settings** of Discord (it's the gear icon next to your name on the desktop app), select **Advanced**. In the **Advanced** panel, activate **Developer Mode**. + +![Activate Developer Mode with the toggle switch in the top right corner of the Advanced panel.][8] + +With developer mode active, go to the channel you want to bridge. For instance, you might want to bridge Matrix to the **zombie apocalypse** channel on the **example** Discord server. First, join the **example** Discord server. Then right-click on text channel **#zombie apocalypse**, and select **Copy ID**. + +![Copy ID is at the bottom of the context menu][9] + +Paste the channel ID into the config file as the first value for **bridge**. Your full config file now contains: + +``` +"homeserver": "https://matrix.org", + "username": "@mybot:matrix.org", + "password": "myBadPassword1234", + "token": "07c63.fb2823cG759.b20_852f337a6551bc", + "discord_cmd_prefix": "!b", + "bridge": { + "1030287944604463185": "!DEADBEEFzzzzABCDEF:matrix.org" + } +} +``` + +### Bridge + +Your bot is now acting as a bridge, at least in theory. Some Discord channels start new users in a muted state, and they must be granted special permissions to interact. If the Discord channel you're bridging is strictly managed, then you may need to speak to a moderator or administrator and request special permissions for your bot. + +For your first attempt at setting this up, it's easiest to bridge a Discord server to a Matrix room that you control. That way, you can confirm that it works when unrestricted. After you've confirmed functionality, try adding it to a restricted channel. + +### Open source bridges another gap + +Open source does a lot of heavy lifting, including in the integration space. It's to the credit of both Matrix and Discord that they provide a robust bot ecosystem that's easy to learn and easy to use. It's to the credit of some resourceful open source developers that the two can be bridged. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/matrix-discord-bot + +作者:[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/alternatives/slack +[2]: https://element.io +[3]: https://opensource.com/article/19/3/netbsd-raspberry-pi +[4]: https://github.com/git-bruh/matrix-discord-bridge +[5]: https://opensource.com/article/19/11/python-pip-cheat-sheet +[6]: https://discordapp.com/developers/applications/ +[7]: https://opensource.com/sites/default/files/2022-10/discord-oauth2.webp +[8]: https://opensource.com/sites/default/files/2022-10/discord-developer-mode.webp +[9]: https://opensource.com/sites/default/files/2022-10/discord-channel-id.webp From 1821ca16e6d1256fbed1f0f18689329c3c5c83ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:41:30 +0800 Subject: [PATCH 1763/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221028.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Write=20documentation=20like=20you=20develop=20code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Write documentation like you develop code.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md new file mode 100644 index 0000000000..eb64f1fb7a --- /dev/null +++ b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md @@ -0,0 +1,85 @@ +[#]: subject: "Write documentation like you develop code" +[#]: via: "https://opensource.com/article/22/10/docs-as-code" +[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Write documentation like you develop code +====== + +Don't want documentation to be an afterthought? Try a new approach. + +Many engineers and craftspeople are particular about their tools. To do a job well, you need the best tools and the skills to use them. The best tools in software development can be very powerful when applied to other kinds of digital creation. The [Docs as Code][1] approach is a great example. Docs as Code entails writing documentation using the same tools and workflows used for developing code. Proponents of Docs as Code report that this method leads to better documentation while easing the workload of the people who write it. + +### Text formats and source control + +The most significant adjustment when moving from a more traditional documentation platform to the Docs as Code approach is that the content is stored in a text-based markup format. This change makes all the tools for text-based materials available for generating documentation. Whether you choose [DocBook][2], [Markdown][3], or another markup language, the transition from using just one tool to using a standard format and a variety of tools is a big change. + +Finding tools that support your workflow is really important. Many developers use their [coding editors][4] when working on Docs as Code projects. Since they are already advanced-level users with that tool, it works well for them. Finding tooling that fits the other professionals on the team, such as technical writers, editors, information architects, and documentation product owners, may take more effort. A few options to consider: + +- One of the many [good markdown editors][5] available +- Coding editors with good preview tools, which make them approachable for non-coders +- The web interfaces of popular Git hosting services, especially for occasional contributors + +Once content is safely in a markup format, the project can use source control such as [Git][6], an open source tool with many more features than most documentation platforms can claim: + +- A clear and detailed version history of who changed what and when. If you have good commit message culture, you may even be able to learn why the change was made. +- Easy parallel change processes. Working in branches in Git means everyone can make all the changes they want to and combine them at the end. +- Advanced collaboration and review tooling. All the source-control platforms are designed to review each change in detail and have as much discussion as needed until everyone is confident that the change can go ahead. +- Automated quality checks such as spellchecking and link checking. This saves time and catches errors that might otherwise be missed. + +Source control has many benefits. Just keep in mind that if you're new to source control, it has a learning curve. There are some excellent [learning resources][7] and [articles for writers][8] that can help. You can also let your curious documentarians find the learning materials that work for them rather than asking your engineers to teach them. (Ask me how I learned this—the hard way of course!) + +### Pull requests and review cycles + +All source-control platforms are designed around the concept of pull requests, sometimes also called merge requests. Someone, or some team, puts together a set of changes and then requests that the changes are pulled into the main project. In many ways, working with many changes at once is easier in documentation than in code. Changing one article in one place in documentation has fewer side effects than when you change code and find that there were several other sections depending on it. + +The most powerful collaboration tool is the [diff][9], which shows the difference between old and new versions in a way that's easy to follow. There are many versions of this tool available to make the comparison view easier to look at: side-by-side, inline, or even as rendered markdown rather than just text. Each team member can use the tool or tools that work best for them. For example, the web view is commonly used to look at a small change, but for something bigger I would want to look at it locally using `vimdiff` or [Meld][10]. + +Review comments can be added to the change as a whole or to individual lines in the proposed change. Some projects adopt a maximum line length, called a hard wrap, or start each sentence on a new line to make it easier to attach comments to specific parts of a block of text. Further changes and comments can be added until the review process is complete and the change is accepted. Since the pull requests are shown in a queue on the repository for the project, this is a good way to show what's in progress and what needs review attention. The tools make it easy for reviewers to add their thoughts. In particular, if you are working with technical audiences it can be easier to get reviews from these folks via the tools they use daily. + +### Continuous integration and deployment + +Having the source of your documentation available in plain text has many benefits, such as making it easy to find every occurrence of something that needs changing and using existing tools such as [wc][11], [grep][12], or `tree` to work with potentially large document sets. When you combine this with a source-control platform, even more existing tools become available, and they're all open source. + +One big workflow improvement is the ability to have continuous deployment in place. This simply means that when a pull request is merged into the main project, the project is immediately and automatically deployed. If the change is good enough to be accepted into the project, it is also good enough to be live on the documentation site, helping your readers. Typically, continuous deployment is set up with either a separate automation server, such as [Jenkins][13], or [Git Hooks][14]. Either way, the text-based markup is combined with the Docs as Code platform (usually a static site generator such as [Hugo][15] or [Sphinx][16]) to produce the documentation website, which is then deployed. + +The same automation can be used before deployment to add some excellent checks to the pull requests before they are merged. On a coding project, it's common to run code linters, tests, and other quality checks that a machine can do itself. Documentation projects can get the same treatment, with tools like [Vale][17] to do prose linting and check for correct heading styles, spellings, and so on. It's also useful to add other tools here, such as a link checker to make sure all the links go somewhere valid. + +### Code tools for docs workflows + +The tools known and loved by engineers are very good tools, but they are useful for all sorts of other projects too. For documentation, they contribute valuable efficiency, especially when you need your documentation to be moving at the same speed as your development teams. All the tools discussed here are open source, so you can try them for yourself, deploy them for a huge global team, or anything in between. May your docs process be as smooth as any code process. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/docs-as-code + +作者:[Lorna Mitchell][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/lornajane +[b]: https://github.com/lkxed +[1]: https://www.writethedocs.org/guide/docs-as-code +[2]: https://opensource.com/article/17/9/docbook +[3]: http://commonmark.org +[4]: https://opensource.com/article/20/12/eclipse +[5]: https://opensource.com/article/21/10/markdown-editors +[6]: https://opensource.com/downloads/cheat-sheet-git +[7]: https://opensource.com/article/18/1/step-step-guide-git +[8]: https://opensource.com/article/19/4/write-git +[9]: https://opensource.com/article/21/11/linux-diff-patch +[10]: https://opensource.com/article/20/3/meld +[11]: https://www.redhat.com/sysadmin/linux-wc-command?intcmp=7013a000002qLH8AAM +[12]: https://opensource.com/downloads/grep-cheat-sheet +[13]: https://www.jenkins.io +[14]: https://www.redhat.com/sysadmin/git-hooks +[15]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo +[16]: https://opensource.com/article/19/11/document-python-sphinx +[17]: https://vale.sh From f2f82bb7979a8ecf5e1c6a7cab4a48f6a99fc3ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:42:40 +0800 Subject: [PATCH 1764/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Trick=20Lua=20into=20becoming=20an=20object-oriented=20language?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...k Lua into becoming an object-oriented language.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md diff --git a/sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md b/sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md new file mode 100644 index 0000000000..9466a33ab1 --- /dev/null +++ b/sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md @@ -0,0 +1,150 @@ +[#]: subject: "Trick Lua into becoming an object-oriented language" +[#]: via: "https://opensource.com/article/22/10/object-oriented-lua" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Trick Lua into becoming an object-oriented language +====== + +Lua isn't an object-oriented programming language. Here's a hack to use a Lua table as a stand-in for an object-oriented class. + +Lua isn't an object-oriented programming language, but a scripting language utilizing C functions and a C-like syntax. However, there's a cool hack you can use within Lua code to make Lua act like an object-oriented language when you need it to be. The key is in the Lua table construct, and this article demonstrates how to use a Lua table as a stand-in for an object-oriented class. + +### What is object-oriented programming? + +The term "object-oriented" is a fancy way of describing, essentially, a templating system. Imagine you're programming an application to help users spot and log zombies during a zombie apocalypse. You're using an object-oriented language like C++, [Java][1], or [Python][2]. You need to create code objects that represent different types of zombies so the user can drag them around and arrange them on a map of the city. Of course a zombie can be any number of things: dormant, slow, fast, hungry, ravenous, and so on. That's just textual data, which computers are good at tracking, and based on that data you could even assign the virtual "object" a graphic so your user can identify which general type of zombie each widget represents. + +You have a few options for how you can resolve this requirement for your application: + +- Force your users to learn how to code so they can program their own zombies into your application +- Spend the rest of your life programming every possible type of zombie into your application +- Use a code template to define the attributes of a zombie object, allowing your users to create just the items they need, based on what zombie they've actually spotted + +Obviously, the only realistic option is the final one, and it's done with a programming construct called a class. Here's what a class might look like (this example happens to be Java code, but the concept is the same across all object-oriented languages): + +``` +publicclass Zombie { +int height; +int weight; +[String][3] speed; +[String][3] location; +} +``` + +Whether or not you understand the code, you can probably tell that this is essentially a template. It's declaring that when a virtual "object" is created to represent a zombie, the programming language assigns that object four attributes (two integers representing height and weight, and two words representing the movement speed and physical location). When the user clicks the (imaginary) **Add item** button in the (imaginary) application, this class is used as a template (in programming, they say "a new instance" of the class has been created) to assign values entered by the user. Infinite zombies for the price of just one class. That's one of the powers of object-oriented programming. + +### Lua tables + +In Lua, the table is a data type that implements an associative array. You can think of a table in Lua as a database. It's a store of indexed information that you can recall by using a special syntax. Here's a very simple example: + +``` +example = {} + +example.greeting = "hello" +example.space = " " +example.subject = "world" + +print(example.greeting .. + example.space .. + example.subject) +``` + +Run the example code to see the results: + +``` +$ lua ./example.lua +hello world +``` + +As you can tell from the sample code, a table is essentially a bunch of keys and values kept within a single collection (a "table"). + +### Lua metatable + +A metatable is a table that serves as a template for a table. You can designate any table as a metatable, and then treat it much as you would a class in any other language. + +Here's a metatable to define a zombie: + +``` +Zombie = {} + +function Zombie.init(h,w,s,l) + local self = setmetatable({}, Zombie) + self.height = h + self.weight = w + self.speed = s + self.location = l + return self +end + +-- use the metatable + +function setup() + z1 = Zombie.init(176,50,'slow','Forbes & Murray Avenue') +end + +function run() + print(z1.location .. ": " .. + z1.height .. " cm, " .. z1.weight .. " kg, " .. z1.speed) +end + +setup() +run() +``` + +To differentiate my metatable from a normal table, I capitalize the first letter of its name. That's not required, but I find it a useful convention. + +Here's the results of the sample code: + +``` +$ lua ./zombie.lua +Forbes & Murray Avenue: 176 cm, 50 kg, slow +``` + +This demonstration doesn't entirely do metatables justice, because the sample code creates just a single object with no interaction from the user. To use a metatable to satisfy the issue of creating infinite items from just one metatable, you would instead code a user input function (using Lua's `io.read()` function) asking the user to provide the details of the zombie they spotted. You'd probably even code a user interface with a "New sighting" button, or something like that. That's beyond the scope of this article, though, and would only complicate the example code. + +### Creating a metatable + +The important thing to remember is that to create a metatable, you use this syntax: + +``` +Example = {} + +function Example.init(args) + local self = setmetatable({}, Example) + self.key = value + return self +end +``` + +### Using a metatable + +To use a metatable once it's been created, use this syntax: + +``` +my_instance = Example.init("required args") +``` + +### Object-oriented Lua + +Lua isn't object-oriented, but its table mechanism makes handling and tracking and sorting data as simple as it possibly can be. It's no exaggeration to say that once you're comfortable with tables in Lua, you can be confident that you know at least half of the language. You can use tables (and, by extension, metatables) as arrays, maps, convenient variable organization, close-enough classes, and more. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/object-oriented-lua + +作者:[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/article/21/3/java-object-orientation +[2]: https://opensource.com/article/19/7/get-modular-python-classes +[3]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string From cbdff408b3257efddbcb77bf5a2985e4772399e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:49:06 +0800 Subject: [PATCH 1765/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221026.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Doing=2064-bit=20math=20on=20a=2016-bit=20?= =?UTF-8?q?system.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md diff --git a/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md new file mode 100644 index 0000000000..ae3e114946 --- /dev/null +++ b/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md @@ -0,0 +1,156 @@ +[#]: subject: "Doing 64-bit math on a 16-bit system" +[#]: via: "https://opensource.com/article/22/10/64-bit-math" +[#]: author: "Jerome Shidel https://opensource.com/users/shidel" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Doing 64-bit math on a 16-bit system +====== + +With a little basic understanding of assembly, these functions could be scaled to do math on integers of any bit size. + +A few years ago, I wrote a command-line math program for FreeDOS called VMATH. It was capable of performing only extremely simple mathematical operations on very small unsigned integers. With some recent interest in basic math in the FreeDOS community, I improved VMATH to provide basic math support on signed 64-bit integers. + +The process of manipulating big numbers using only 16-bit 8086 compatible assembly instructions is not straightforward. I would like to share some samples of the techniques used by VMATH. Some of the methods used are fairly easy to grasp. Meanwhile, others can seem a little strange. You may even learn an entirely new way of performing some basic math. + +The techniques explained here to add, subtract, multiply, and divide 64-bit integers are not limited to just 64-bits. With a little basic understanding of assembly, these functions could be scaled to do math on integers of any bit size. + +Before digging into those math functions, I want to cover some basics of numbers from the computer's perspective. + +### How computers read numbers + +An Intel-compatible CPU stores the value of numbers in bytes from least to most significant. Each byte is made up of 8 binary bits and two bytes make up a word. + +A 64-bit number that is stored in memory uses 8 bytes (or 4 words). For example, a value of 74565 (0x12345in hexadecimal) looks something like this: + +``` +as bytes: db 0x45, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +as words: dw 0x2345, 0x0001, 0x0000, 0x0000 +``` + +When reading or writing data to memory, the CPU processes the bytes in the correct order. On a processor more modern than an 8086, there can be larger groups, such as a quadword which can represent the entire 64-bit integer as **0x0000000000012345**. + +The 8086 CPU doesn't understand such gigantic numbers. When writing a program for FreeDOS, you want something that can run on any PC, even an original IBM PC 5150. You also want to use techniques that can be scaled to any size integer. The capabilities of a more modern CPU do not really concern us. + +For the purpose of doing integer math, the data can represent two different types of numbers. + +The first is unsigned which uses all of its bit to represent a positive number. Their value can be from **0** up to **(2 ^ (numberofbits) - 1)**. For example, 8 bits can have any value from **0** to **255**, with 16 bits ranging from **0** to **65535**, and so on. + +Signed integers are very similar. However, the most significant bit of the number represents whether the number is positive (**0**) or negative (**1**). The first portion of the number is positive. It can range from **0** up to **(2 ^ (numberofbits - 1) - 1)**. The negative portion follows the positive, ranging from its lowest value **(0-(2 ^ (numberofbits - 1)))** up to **-1**. + +For example, an 8-bit number represents any value from **0** to **127** in the positive range, and **-128** through **-1** in the negative range. To help visualize it, consider the **byte** as the set of numbers **[0…127,-128…-1]**. Because **-128** follows **127** in the set, adding **1** to **127** equals **-128**. While this may seem strange and backward, it actually makes doing basic math at this level much easier. + +To perform basic addition, subtraction, multiplication, and division of very big integers, you should explore some simple routines to get a number's absolute or negative value. You will need them once you start doing math on signed integers. + +### Absolute and negative values + +Getting the absolute value of a signed integer is not as bad as it may first seem. Because of how unsigned and signed numbers are represented in memory, there is a fairly easy solution. You can simply invert all the bits of a negative number and add **1** to get the result. + +That might sound odd if you haven't worked in binary before, but that is how works. To give you an example, take an 8-bit representation of a negative number, such as **-5**. Since it would be near the end of the **[0…127,-128…-1]** byte set, it would have a value of **0xfb** in hexadecimal, or **11111011** in binary. If you flip all the bits, you get **0x04**, or **00000100** in binary. Add **1** to that result and you have the answer. You just changed the value from **-5** to **+5**. + +You can write this procedure in assembly to return the absolute value of any 64-bit number: + +``` +; syntax, NASM for DOS +proc_ABS: +  ; on entry, the SI register points to the memory location in the +  ; data segment (DS) for the program containing the 64-bit +  ; number that will be made positive. +  ; On exit, the Carry Flag (CF) is set if resulting number can +  ; not be made positive. This only happens with maximum +  ;  negative value. Otherwise, CF is cleared. +  ; check most significant bit of highest byte +  test [si+7], byte 0x80 +  ; if not set, the number is positive +  jz .done_ABS +  ; flip all the bits of word #4 +  not word [si+6] +  not word [si+4]       ; word #3 +  not word [si+2]       ; word #2 +  not word [si]                 ; word #1 +  ; increment the 1st word +  inc word [si] +  ; if it did not roll over back to zero, done +  jnz .done_ABS +  ; increment the 2nd word +  inc word [si+2] +  ; if it rolled over, increment the next word +  jnz .done_ABS +  inc word [si+4] +  jnz .done_ABS +  ; this cannot roll over +  inc word [si+6] +  ; check most significant bit once more +  test [si+7], byte 0x80 +  ; if it is not set we were successful, done +  jz .done_ABS +  ; overflow error, it reverted to Negative +  stc +  ; set Carry Flag and return +  ret +.done_ABS: +  ; Success, clear Carry Flag and return +  clc +  ret +``` + +As you may have noticed in the example, there is an issue that can occur in the function. Because of how positive and negative numbers are represented as binary values, the maximum negative number cannot be made positive. For 8-bit numbers, the maximum negative value is **-128**. If you flip all of the bits for **-128** (binary1__0000000), you get **127** (binary0__1111111) the maximum positive value. If you add **1** to that result, it will overflow back to the same negative number (-128). + +To turn a positive number negative, you can just repeat the process you used to get the absolute value. The example procedure is very similar, except you want to make sure the number is not already negative at the start. + +``` +; syntax, NASM for DOS +proc_NEG: +  ; on entry, the SI points to the memory location +  ; for the number to be made negative. +  ; on exit, the Carry Flag is always clear. +  ; check most significant bit of highest byte +  test [si+7], byte 0x80 +  ; if it is set, the number is negative +  jnz .done_NEG +  not word [si+6]       ; flip all the bits of word #4 +  not word [si+4]       ; word #3 +  not word [si+2]       ; word #2 +  not word [si]                 ; word #1 +  inc word [si]                 ; increment the 1st word +  ; if it did not roll over back to zero, done +  jnz .done_NEG +  ; increment the 2nd word +  inc word [si+2] +  ; if it rolled over, increment the next word +  jnz .done_NEG +  inc word [si+4] +  jnz .done_NEG +  ; this cannot roll over or revert back to +  inc word [si+6] +  ; positive. +.done_NEG: +  clc                   ; Success, clear Carry Flag and return +  ret +``` + +With all of that shared code between the absolute and negative functions, they should be combined to save some bytes. There are additional benefits when such code is combined. For one, it helps prevent simple typographic errors. It also can reduce testing requirements. Moreover, the source generally becomes easier to read, follow, and understand. Sometimes with a long series of assembly instructions, it is easy to lose track of what is actually happening. But for now, we can move along. + +Getting the absolute or negative value of a number was not very difficult. But, those functions will be critically important later on when we start doing math on signed integers. + +Now that I've covered the basics of how integer numbers are represented at the bit level and created a couple of basic routines to manipulate them a little, we can get to the fun stuff. + +Let's do some math! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/64-bit-math + +作者:[Jerome Shidel][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/shidel +[b]: https://github.com/lkxed + From 3efb83d1da6eeaf83055beb361b17c493faa8415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:49:53 +0800 Subject: [PATCH 1766/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221026.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Tips=20for=20using=20the=20Linux=20test=20command.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Tips for using the Linux test command.md | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md diff --git a/sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md b/sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md new file mode 100644 index 0000000000..26fdd9970f --- /dev/null +++ b/sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md @@ -0,0 +1,170 @@ +[#]: subject: "Tips for using the Linux test command" +[#]: via: "https://opensource.com/article/22/10/test-command-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Tips for using the Linux test command +====== + +The [ and test commands are vital conditional statements when scripting. + +The `[` command, often called a "test," is a command from the GNU Core Utils package, and initiates a conditional statement in Bash. Its function is exactly the same as the `test` command. When you want to execute a command only when something is either true or false, use the `[` or the `test` command. However, there's a significant difference between `[` or `test` and `[[`, and there's a technical difference between those commands and your shell's versions of them. + +### [ vs test commands in Linux + +The `[` and the `test` commands, installed by the GNU Core Utils package, perform the same function using a slightly different syntax. (You might find it difficult to search for documentation using the single left-square bracket character, however, so many users find `test` easier to reference.) Bash and similar shells happen to also have the `[` and the `test` commands built-in, and the built-in versions supersede the ones installed in `/usr/bin`. In other words, when you use `[` or `test`, you're probably not executing `/usr/bin/[` or `/usr/bin/test`. Instead, you're invoking what's essentially a function of your Bash shell. + +You might wonder why `[` or `test` exist in `/usr/bin` at all. Some shells, such as [tcsh][1], don't have `[` and `test` built-in, so if you want to use those commands in that shell, you must have them installed as separate binaries. + +The bottom line is that as long as you don't get an error when you type a command starting with `[` or `test`, then you've got everything you need. It almost never matters whether your shell or your `bin` directory is providing the commands. + +### Testing for a file + +It's common to want to know whether a file exists, often so you can confidently proceed with some action, or so you can avoid "clobbering" it with a file of the same name. In an interactive shell session, you can just look to see whether the file exists but in a shell script, you need the computer to determine that for itself. The `-e` option tests whether a file exists, but its apparent response is the same either way. + +``` +$ touch example +$ test-e example +$ test-e notafile +$ +``` + +The `[` and `test` commands are essentially switches. They emit a `true` or `false` response, but considers both of them as success. You can put this to use by pairing the commands with logical operators, such as `&&` and `||`. The `&&` operator is executed when a response is `true`: + +``` +$ touch example +$ test-e example &&echo"foo" +foo +$ test-e notafile &&echo"foo" +$ +``` + +The `||` operator executes when a response is `false`: + +``` +$ touch example +$ test-e example ||echo"foo" +$ test-e notafile ||echo"foo" +foo +$ +``` + +If you prefer, you can use square brackets instead of `test`. In all cases, the results are the same: + +``` +$ touch example +$ [-e example ] && echo "foo" +foo +$ [-e notafile ] && echo "foo" +$ +``` + +### Testing for file types + +Everything in Linux is a file, so when you can test for the existence of a directory with the `-e` option, the same way you test for a file. However, there are different kinds of files, and sometimes that matters. You can use `[` or `test` to detect a variety of different file types: + +- `-f`: regular file (returns `false` for a directory) +- `-d`: directory +- `-b`: block (such as `/dev/sda1`) +- `-L` or `-h`: symlink +- `-S`: socket + +There are more, but those tend to be the most common. + +### Testing for file attributes + +You can also look at metadata of a file: + +- `-s`: a file with the size greater than zero +- `-N`: a file that's been modified since it was last read + +You can test by ownership: + +- `-O`: a file owned by the current primary user +- `-G`: a file owned by the current primary group + +Or you can test by permissions (or file mode): + +- `-r`: a file with read permission granted +- `-w`: a file with write permission granted +- `-x`: a file with execute permission granted +- `-k`: a file with the sticky bit set + +### Combining tests + +You don't always just have to test for a single attribute. The `-a` option ("and") allows you to string several tests together, with the requirement that all tests return as `true`: + +``` +$ touch zombie apocalypse now +$ test-e zombie -a-e apocalypse -a-e now &&echo"no thanks" +no thanks +``` + +If any expression fails, then the test returns `false`: + +``` +$ touch zombie apocalypse now +$ test-e plant -a-e apocalypse -a-e now &&echo"no thanks" +$ +``` + +The `-o` option ("or") requires that one expression is true: + +``` +$ touch zombie apocalypse now +$ test-e zombie -o-e plant -o-e apocalypse &&echo"no thanks" +no thanks +``` + +### Integer tests + +You can also test integers. That's not necessarily directly useful (you probably inherently know that 0 is less than 1, for instance) but it's invaluable when you're using variables in a script. + +The operators are fairly intuitive once you understand the schema: + +- `-eq`: equal to +- `-ne`: not equal +- `-ge`: greater than or equal to +- `-gt`: greater than +- `-le`: less than or equal to +- `-lt`: less than + +Here's a simple example: + +``` +$ nil=0 +$ foo=1 +$ test$foo-eq$nil||echo"Those are not equal." +Those are not equal. +$ test$foo-eq1&&echo"Those are equal." +``` + +Of course, you can combine tests. + +``` +$ touch example +$ test$foo-ne$nil-a-e example -o-e notafile &&echo"yes"yes +``` + +### Testing testing + +The `[` and `test` commands are vital conditional statements when scripting. These are easy and common ways to control the flow of your code. There are yet more tests available than what I've covered in this article, so whether you used Bash, tcsh, ksh, or some other shell entirely, take a look at the man page to get the full spectrum of what these commands offer. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/test-command-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/article/20/8/tcsh From d3936e1120a1b7a6705c9491fd169325ced87aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:50:31 +0800 Subject: [PATCH 1767/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221025.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Transfer=20files=20and=20folders=20from=20Windows=20to=20Linux?= =?UTF-8?q?=20with=20PSCP.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...les and folders from Windows to Linux with PSCP.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md diff --git a/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md b/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md new file mode 100644 index 0000000000..6e818f79a3 --- /dev/null +++ b/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md @@ -0,0 +1,139 @@ +[#]: subject: "Transfer files and folders from Windows to Linux with PSCP" +[#]: via: "https://opensource.com/article/22/10/transfer-files-windows-linux-pscp" +[#]: author: "Paul https://opensource.com/users/plaubscher" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Transfer files and folders from Windows to Linux with PSCP +====== + +The open source PSCP utility makes it easy to transfer files and folders between Windows and Linux computers. + +Are you looking for a way to quickly transfer files from your Windows computer to your Linux computer and back again? The open source PSCP utility makes it easy to transfer files and folders, and of course it's open source. + +### Setting your PATH in Windows + +Knowing how to set your command path in Windows makes it easier to use a handy utility like PSCP. If you're unfamiliar with that process, read [how to set a PATH on Windows][1]. + +### Using PSCP + +PSCP (PuTTY Secure Copy Protocol) is a command-line tool for transferring files and folders from a Windows computer to a Linux computer. + +- Download `pscp.exe` from its [website][2]. +- Move `pscp.exe` to a folder in your PATH (for example, `Desktop\App` if you followed the PATH tutorial here on [Opensource.com][3]). If you haven't set a PATH variable for yourself, you can alternately move `pscp.exe` to the folder holding the files you're going to transfer. +- Open Powershell on your Windows computer using the search bar in the Windows taskbar (type 'powershell` into the search bar.) +- Type `pscp –version` to confirm that your computer can find the command. + +### IP address + +Before you can make the transfer, you must know the IP address or fully-qualified domain name of the destination computer. Assuming it's a computer on your same network, and that you're not running a DNS server to resolve computer names, you can find the destination IP address using the `ip` command on the Linux machine: + +``` +[linux]$ ip addr show |grep'inet ' +inet 127.0.0.1/8 scope host lo +inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 +``` + +In all cases, 127.0.0.1 is a loopback address that the computer uses only to talk to itself, so in this example the correct address is 192.168.1.23. On your system, the IP address is likely to be different. If you're not sure which is which, you can try each one in succession until you get the right one (and then write it down somewhere!) + +Alternately, you can look in the settings of your router, which lists all addresses assigned over DHCP. + +### Firewalls and servers + +The `pscp` command uses the OpenSSH protocol, so your Linux computer must be running the OpenSSH server software, and its firewall must allow SSH traffic. + +If you're not sure whether your Linux machine is running SSH, then run this command on the Linux machine: + +``` +[linux]$ sudo systemctl enable--now sshd +``` + +To ensure your firewall allows SSH traffic, run this command: + +``` +[linux]$ sudo firewall-cmd --add-servicessh--permanent +``` + +For more information on firewalls on Linux, read [Make Linux stronger with firewalls][4]. + +### Transfer the file + +In this example, I have a file called `pscp-test.txt` that I want to transfer from `C:\Users\paul\Documents` on my Windows computer to my destination Linux computer home directory `/_home_/paul`. + +Now that you have the `pscp` command and the destination address, you're ready to transfer the test file `pscp-test.txt`. Open Powershell and use the `dir` command to change to the `Documents` folder, where the sample file is located: + +PS> dir %USERPROFILE%\Documents\ + +Now execute the transfer: + +``` +PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul| Password: +End of keyboard-interactive prompts from server +pscp-test.txt |0 kb |0.0 kB/s | ETA: 00:00:00 |100% +``` + +Here's the syntax, word for word: + +- `pscp`: The command used to transfer the file. +- `pscp-test.txt` is the name of the file you want to transfer from Windows. +- `paul@192.168.1.23` is my username on the Linux computer, and the IP address of the Linux computer. You must replace this with your own user and destination information. Notice that `pscp` requires a destination path on the target computer, and `:/home/paul` at the end of the IP address specifies that I want the file copied to my home folder. + +After you authenticate to the Linux computer, the `pscp-test.txt` file is transferred to the Linux computer. + +### Verifying the transferred + +On your Linux computer, open a terminal and use the `ls` command to verify that the file `pscp-test.txt` appears in your home directory. + +``` +[linux]$ ls +Documents +Downloads +Music +Pictures +pscp-test.txt +``` + +### Copying a file off of a Linux system + +You aren't limited to just copying files to your Linux system. With `pscp`, you can also copy a file from Linux onto Windows. The syntax is the same, only in reverse: + +``` +PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt +``` + +Here's the syntax: + +- `pscp`: The command used to transfer the file. +- `paul@192.168.1.23:/home/paul/pscp-test.txt` is my username on the Linux computer, the IP address of the Linux computer, and the path to the file I want to copy. +- `%USERPROFILE%\Documents` is the location on my Windows computer where I want to save the file. Notice that in copying the file back to my Windows computer, I can give it a new name, such as `pscp-win.txt`, to differentiate it from the original. You don't have to rename the file, of course, but for this demonstration it's a useful shortcut. + +Open your file manager to verify that the `pscp-win.txt` file was copied to the Windows `C:\Users\paul\Documents` path from the Linux computer. + +![Image of a file manager.][5] + +### Remote copying + +With the power of the open source `pscp` command, you have access to any computer in your house, and servers you have accounts on, and even mobile and [edge devices][6]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp + +作者:[Paul][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/plaubscher +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/10/set-path-powershell +[2]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html +[3]: http://Opensource.com +[4]: https://opensource.com/article/19/7/make-linux-stronger-firewalls +[5]: https://opensource.com/sites/default/files/2022-10/Filemanager.pscp_.png +[6]: https://opensource.com/tags/edge-computing From 49cfdd676f0bb41b680dbeaec43e6f0507550c5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:51:37 +0800 Subject: [PATCH 1768/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.0=20=E2=AD=90=EF=B8=8F=20How=20to=20display?= =?UTF-8?q?=20commits=20created=20on=20a=20specific=20day=20with=20the=20g?= =?UTF-8?q?it=20log=20command.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... on a specific day with the git log command.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sources/tech/20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md diff --git a/sources/tech/20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md b/sources/tech/20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md new file mode 100644 index 0000000000..3df3f70944 --- /dev/null +++ b/sources/tech/20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md @@ -0,0 +1,66 @@ +[#]: subject: "How to display commits created on a specific day with the git log command" +[#]: via: "https://opensource.com/article/22/10/git-log-command" +[#]: author: "Agil Antony https://opensource.com/users/agantony" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to display commits created on a specific day with the git log command +====== + +The git log command is an important reporting tool and yet another reason to use Git. + +The `git log` command offers many opportunities to learn more about the commits made by contributors. One way you might consume such information is by date. To view commits in a Git repository created on a specific date or range of dates, use the `git log` command with the options `--since` or `--until`, or both. + +First, checkout the branch you want to inspect (for example, `main`): + +``` +$ git checkout main +``` + +Next, display the commits for the current date (today): + +``` +$ git log--oneline--since="yesterday" +``` + +Display commits for the current date by a specific author only (for example, `Agil`): + +``` +$ git log--oneline--since="yesterday"--author="Agil" +``` + +You can also display results for a range of dates. Display commits between any two dates (for example, 22 April 2022 and 24 April 2022): + +``` +$ git log--oneline--since="2022-04-22"--until="2022-04-24" +``` + +In this example, the output displays all the commits between 22 April 2022 and 24 April 2022, which excludes the commits done on 22 April 2022. If you want to include the commits done on 22 April 2022, replace `2022-04-22` with `2022-04-21`. + +Run the following command to display commits between any two dates by a specific author only (for example, `Agil`): + +``` +$ git log--oneline--since="2022-04-22" \--until="2022-04-24"--author="Agil" +``` + +### Reporting + +Git has many advantages, and one of them is the way it enables you to gather data about your project. The `git log` command is an important reporting tool and yet another reason to use Git! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/git-log-command + +作者:[Agil Antony][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/agantony +[b]: https://github.com/lkxed + From 2c69835daac8fc44fdecc47f44200b128795c42b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:52:41 +0800 Subject: [PATCH 1769/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221024.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=20PWA=20is=20the=20web=20browser.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21024.1 ⭐️⭐️⭐️ A PWA is the web browser.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 sources/tech/20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md diff --git a/sources/tech/20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md b/sources/tech/20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md new file mode 100644 index 0000000000..8605a64907 --- /dev/null +++ b/sources/tech/20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md @@ -0,0 +1,145 @@ +[#]: subject: "A PWA is the web browser" +[#]: via: "https://opensource.com/article/22/10/pwa-web-browser" +[#]: author: "Alex Borsody https://opensource.com/users/alexborsody" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A PWA is the web browser +====== + +While progressive web apps (PWAs) are still in their early stages of development, they have the potential to revolutionize the way we use the web. + +A progressive web app (PWA) is a web application that uses modern web technologies to deliver a user experience equal to any mobile app. An active open source community, in conjunction with tech leaders like Google and Microsoft, pushes the PWA agenda forward in an effort to "bridge the app gap." + +Basically, a PWA runs your app in a web browser. Because there's essentially a two-party system of the Play and App stores, the focus is on two browsers: Google Chrome and Apple Safari (built on top of the open source Chromium and WebKit, respectively). + +I won't be covering creating desktop apps. For more information on that topic, look into [Electron][1]. + +PWAs are built the same way as any website or web app. They use the latest mobile technologies and implement UX best practices. PWAs can also hook the browser in with native code to improve the experience. + +If you type "What is a PWA" in your favorite search engine, you'll probably get a stock response similar to "PWAs are designed to be fast, reliable, and engaging, with the ability to work offline and be installed on a device's home screen." While this is partly true, it's just the tip of the iceberg for what a PWA has the potential to be and what it's evolving into, even as I write this article. + +### What is not a PWA + +The following are cross-platform app frameworks allowing you to develop from a single codebase. They do not use the browser as their platform. + +- Flutter +- React Native + +Flutter uses a language called Dart, which compiles to iOS, Android, and web packages. React Native does the same but compiles JavaScript on the backend. + +### What is a PWA by definition? + +A PWA, by its original definition, must meet these three requirements: + +- **Service worker:** Provides offline functionality. +- **Web manifest:** JSON markup to configure home screen and app icons. +- **Security:** HTTPS is enforced, because a service worker runs in the background. + +These components allow you to pass the [Google Lighthouse PWA audit][2] and get the green checkmark on your score. + +![Google Lighthouse score, including performance, accessibility, best practices, SEO, and PWA][3] + +Once you satisfy these requirements, Chrome's "add to home screen" prompt is also automatically enabled. + +PWA Builder (a free service provided by Microsoft) has an excellent UI for building a PWA and visualizing base requirements. See the following example based on developers.google.com. You can demo this functionality [here][4] provided by the [PWA module][5] I discussed in [my previous article][6]. + +![Google Developer's interface displaying Service Workers][7] + +![Google Developer's interface displaying Manifest][8] + +The base requirements of a PWA allow offline behavior through the service worker, and the `manifest.json` file allows "add to home screen" behavior on Android, where your website gets added as an icon to the home screen and opens with no-browser Chrome (in fullscreen) with an app splash page. These are the minimum requirements for a PWA and, aside from providing a performance increase due to the offline caching, mainly give the illusion the website is an app. It's a psychological gap at its core where the end user will stop thinking of the browser as merely "websites" and instead look at it for what it actually is… an app platform. Google seemed to make this a priority to pave the way for developing the endless number of features, functionality, and UX/UI enhancements that actually provide an enhanced "app-like experience." + +A PWA is really a collection of browser technologies and web development techniques and technologies that make a website more "app-like." I have broken these down into the following categories. + +#### Enhanced app-like experience + +- HTML/CSS/Javascript + +- Improved UX/UI experience on a mobile device +- Native device access and enhanced web capabilities +- Speed and performance + +#### What a PWA can be today beyond the definition + +Here are more details on the three experience descriptions above. + +**UX/UI improvements** + +UX/UI and visual problem-solving are critical to making your website feel like an app. This often manifests as attention to details such as animations, input/font sizes, scrolling issues, or other CSS bugs. It's important that there is a strong frontend development team so they can create this UX. Within the category of design and UX are the enhancements we can implement with the building blocks of a web document (HTML/JSS/JS). Two examples of this are: + +- [**Hotwire Turbo**][9]: An open source framework using HTML over the wire to reload only the areas of your page that change using AJAX or WebSockets. This offers the performance improvements that SPAs strive for using only limited JavaScript. This approach is perfect for your monolithic application or template-rendering system; no need to invest in the added complexity of decoupling your front and back end. +- **Mobile-specific SPA frameworks:** There are several decoupled frameworks out there that can give your website an app-like user experience. Onsen UI and Framework 7 are two excellent options that help you create a fast, responsive user interface for your website. However, you do not need to rely on these frameworks. As discussed above, a good frontend team can build the UI you strive for by implementing the latest app-like mobile design techniques. + +[This slide][10] goes into more detail about staying current with HTML/CSS/JS in your PWA. + +**Web capabilities** + +The Chromium team is constantly improving the browser experience. You can track this progress in [Project Fugu][11], the overarching web capabilities project. WebKit also continually strives to improve its browser experience and capabilities. + +The Swift API can also interact with the WKWebView to enhance the native experience. + +Google has a service called Bubblewrap, which works with Trusted Web Activity (TWA). All this does is wrap your PWA-enabled website in a native APK bundle so you can submit it to the app store. This is how the PWA builder link mentioned above works for Android. You can learn all about WKWebView and TWA in my previous article. + +**Speed and performance** + +There are countless ways to improve your app's performance. Check out the [Google PageSpeed tools][12] to start. + +#### Benefits of using a PWA include the following: + +- Increased Lighthouse score and SEO. +- A single codebase. +- Frictionless testing. +- Instant feedback loop for development cycles. +- Use of managed PaaS web deployment workflows. +- Web technologies are a skill set for a wide array of developers. +- The only cross-platform development solution that delivers a full-fledged web experience. +- Unlimited options to customize a design without relying on a cross-platform framework's limited UI components. +- Reach users with limited (or no) internet connection. + +There are some drawbacks/caveats to using a PWA, including: + +- **Limited functionality**: There is still an "app gap" with PWAs compared to native device access. However, browsers have been making great progress toward closing this. Learn more about Project Fugu's take on bridging the app gap from [Thomas Steiner][13], and visit [What web can do][14] to see your browser's capabilities. When choosing your technology, there is a good chance your PWA project will be in the majority of apps that do not experience restrictions regarding capability/functionality. +- **Lack of standardization**: Thomas Steiner's interview above discusses a "PWA standard," which is currently lacking. In my opinion, it is the reason for much of the confusion around the topic and developers' difficulty getting past that first "aha moment." This confusion has led to slower momentum in technology than there should be. Also, because of this lack of clarity, marketing or management may not even know to ask for a PWA because they don't understand what it is. +- **iOS App Store**: App stores don't currently list PWAs, so they're harder to find than native apps. There are ways to do this. However, the key is to make your web app as good or a better experience than native. Do it right, and the Apple gods will smile upon you because the most important thing in reviews seems to be that you deliver a good mobile experience. Ionic, a framework utilizing WKWebView in native iOS apps before PWA was even a term, has some interesting insight [in their forums][15]. If you know what you are doing, this won't be a problem. You can see the "get your web app in the app stores" section of [my previous Opensource.com article][6] for more info. +- **Potential security issues in certain cases**: The browser uses cookies as authentication. A tried and true browser method to maintain state since its inception, this may not fit your project's needs. The browser has excellent password management and is constantly evolving and implementing other authentication methods, such as [Webauthn][16]. The use of [associated domains][17] provides another layer of security. + +I believe that compared to the alternatives, "the web is winning," and future progress will minimize these drawbacks as the web offers new capabilities. I don't think native development will disappear, but there will be more seamless integrations between WebView and native code. + +### Wrap up + +While PWAs are still in their early stages of development, they have the potential to revolutionize the way we use the web. Every day I see a new website pushing the limits of what a PWA can be. Whether the management knows they are building a PWA or not, I often come across web apps and dev teams that surprise me with how they expand the use of web technologies or pass on a native app in lieu of a well-optimized mobile website. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/pwa-web-browser + +作者:[Alex Borsody][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/alexborsody +[b]: https://github.com/lkxed +[1]: https://www.electronjs.org/ +[2]: https://web.dev/lighthouse-pwa/ +[3]: https://opensource.com/sites/default/files/2022-10/GoogleLighthouseScore.jpg +[4]: https://ctrl.carbonpay.io/user/login +[5]: https://www.drupal.org/project/pwa +[6]: https://opensource.com/article/22/6/drupal-pwa +[7]: https://opensource.com/sites/default/files/2022-10/GoogleServiceWorkers.jpg +[8]: https://opensource.com/sites/default/files/2022-10/GoogleManifest.jpg +[9]: https://hotwired.dev/ +[10]: https://docs.google.com/presentation/d/1D7-H7om4Ul6nFeIX2x1oSpKCvC7LRUP3uh0r7jM3IVs/edit#slide=id.g126166aeb51_2_271 +[11]: https://developer.chrome.com/blog/fugu-status/ +[12]: https://developers.google.com/speed +[13]: https://devm.io/javascript/project-fugu-interview-steiner-168988 +[14]: https://whatwebcando.today/ +[15]: https://forum.ionicframework.com/search?q=minimum%20functionality +[16]: https://webauthn.io/ +[17]: https://developer.apple.com/documentation/xcode/supporting-associated-domains From 92c6a5fe6632b650240f65fcab0f1043f34ef687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:53:50 +0800 Subject: [PATCH 1770/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221024.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Remixing=20Linux=20for=20blind=20and=20visually=20impaired=20us?= =?UTF-8?q?ers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ing Linux for blind and visually impaired users.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/talk/20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md diff --git a/sources/talk/20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md b/sources/talk/20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md new file mode 100644 index 0000000000..fbbc0a73db --- /dev/null +++ b/sources/talk/20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md @@ -0,0 +1,108 @@ +[#]: subject: "Remixing Linux for blind and visually impaired users" +[#]: via: "https://opensource.com/article/22/9/linux-visually-impaired-users" +[#]: author: "Vojtech Polasek https://opensource.com/users/vpolasek" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Remixing Linux for blind and visually impaired users +====== + +Vojtux, a Fedora project, is an unofficial Linux distribution aimed at visually impaired users. + +When I was around 5 years old, my father brought home our first computer. From that moment on, I knew I wanted to pursue a career in computers. I haven't stopped hanging around them since. During high school, when considering which specific area I wanted to focus on, I started experimenting with hacking, and that was the moment I decided to pursue a career as a security engineer. + +I'm now a software engineer on the security compliance team. I've been at Red Hat for over two years, and I work remotely in the Czech Republic. I've used Linux for about 12 years, mainly Arch Linux and Fedora, but I've also administered Debian, Gentoo, and Ubuntu in the past. + +![Image of Vojtech][1] + +Photo description: Black and white image of a smiling Vojtech, with a red frame around it and an illustrated paper airplane in the background. + +Outside of my day job, I play blind football, and I'm involved in various projects connecting visually impaired and sighted people together, including working in a small NGO that runs activities for blind and visually impaired people. I'm also working on an accessible Fedora project called [Vojtux][2], an unofficial Linux distribution aimed at visually impaired users. + +### The assistive technology stack + +When I use a smart device, I need several pieces of assistive technology. The first and most essential is called a screen reader. This is software that presents what's on the screen to blind or visually impaired people, either through speech or through braille (basically, it tries to serve as our eyes). It can read out notifications and tell me which button or page element I'm focusing on, allowing me to interact with graphical user interfaces. + +Screen readers use speech synthesis to speak aloud what appears on the screen. There are a variety of speech synthesizers, and some voices are more "natural-sounding" than others. The one I use, Espeak, is not very natural-sounding, but it's lightweight and fast. It also supports almost all languages, including Czech (which I use). + +Finally, I use a Braille display, a device that represents a line of text in Braille. I use this a lot, especially when I'm coding or doing code reviews. It's easier to grasp the structure of code when I can freely move from one code element to another by touch. I can also use its buttons to move the cursor to the character or area of the screen I'm interested in, and it has a Braille keyboard too if I want to use it. + +### How I use assistive technology on a daily basis + +When using a computer as a blind or visually impaired person, there are a couple of things that are relatively straightforward to do using the tech above. Personally, these are a few of the things I do every day: + +- The text console is pretty much my favorite application. As a general rule, when something's in text, then blind people can read it with a screen reader (this doesn't hold true in all cases, but in most.) I mainly use the console for system management, text editing, and working with guidance and documentation. +- I browse the web and interact with websites. +- I code and do code reviews using VSCode and [Eclipse][3]. +- I send emails and instant messages. +- I can use word processing software, like Google Docs (which is not open source, but common in the modern office) and [LibreOffice][4]. Google Docs developers have added a lot of keyboard shortcuts, which I can use to move around documents, jump to headings or into comments, and so on. +- I can play multimedia, usually. It depends on how the application is written. Some media players are more accessible than others. + +### Possible but painful + +This brings me to tasks that aren't so easy. I like to call these "possible but painful". + +PDF files can be difficult. Sometimes I end up needing to use optical character recognition (OCR) software to convert images to text. For example, recently I needed to read a menu for a restaurant. They had the PDF of their menu on their website, but it had been flattened, and didn't have a text layer. For me, this shows up as a blank screen. I had to use an OCR application from my smartphone to extract the text for me. Not only is this an extra step, but the resulting "translation" of the text isn't always entirely accurate. + +Viewing and creating a presentation can be problematic. To work around this, I create slides in HTML, using software such as [Pandoc][5], which can process [markdown][6] and convert it into slides. I've been using this for many years and it works well—it allows me total control of the resulting slides, because the markdown is just simple text. + +Video games can be made more accessible by basing them on sound or text. However, playing games can be doubly challenging on Linux as not only would you need to find an accessible game, but most PC games are also native to Windows so you would be dealing with some compatibility issues as well. + +Some websites and interfaces are more difficult to navigate than others. These issues are often quite easy to solve just by setting some attributes correctly. In general, lots of web content comes in the form of images, especially today. One of the easiest ways to make web content more accessible is to make sure that alternative text is added to images so that screen readers can read it out, and people who cannot distinguish the image have some idea what's there. Another thing I experience a lot is unlabeled controls: you know there's a button or a check box but you don't know what it does. + +### The Vojtux project optimises Linux for accessibility + +Developers don't intentionally set out to build applications that aren't accessible. The problem is that they usually don't know how to test them. There aren't many blind Linux users, so there aren't many people testing the accessibility of applications and providing feedback. Therefore, developers don't produce accessible applications, and they don't get many users. And so the cycle continues. + +This is one thing we hope to tackle with the Vojtux project. We want to create a Fedora remix that's user-friendly for visually impaired and blind users. We hope it will attract more users, and that those users start discovering issues to report, which will hopefully be solved by other developers in the open source community. + +So why are we doing this? Well, it's important to point out that Fedora is not an inaccessible distribution by design. It does have many accessibility tools available in the form of packages. But these aren't always present from the beginning, and there are a lot of small things which need to be configured before it can be proficiently used. This is something that can be discouraging to a beginner Fedora user. + +We want Vojtux to be as friendly and predictable for a blind user as possible. When a user launches a live image, the screen immediately starts being read as soon as a graphical user interface appears. All [environment variables][7] needed for accessibility are loaded and configured correctly. + +Vojtux brings the following changes, among others: + +- Environment variables for accessibility are configured from the start. +- The Orca screen reader starts as soon as the graphical interface loads. +- A custom repo is added with extra voice synthesis and packaged software. +- Many alternative keyboard shortcuts have been added. +- There's a special script that can turn your monitor on and off. Many users do not need the monitor at all and having it off is a great power saver! + +### So how can you help? + +First, if you'd like to contribute to Vojtux (or just spread the word), you can find out more on [our repository][2]. + +Additionally, when working on a team with someone who has a visual impairment, there might be some additional considerations depending on the accessibility tech being used. For example, it's not easy for us to listen to someone and read at the same time, because we are basically getting both things through audio, unless someone is very proficient with the Braille display. + +Lastly, bear in mind that blind and visually impaired users consume the same end products as you do, whether that's presentation slides or websites or PDFs. When building products or creating content, your choices have a huge effect on accessibility and how easy it is for us to engage with the end result. Know that we are here, we love to use computers and technology, and we're often willing to help you test it, too. + +![Image of Vojtech holding a football][8] + +Image description: Vojtech holding a football. He is wearing a football uniform and protective goggles. + +This article originally published in September 2022 and has since been updated with the project's official name, Vojtux. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/linux-visually-impaired-users + +作者:[Vojtech Polasek][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/vpolasek +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-08/Vojtech.png +[2]: https://github.com/vojtapolasek/Fegora +[3]: https://opensource.com/article/20/12/eclipse +[4]: https://opensource.com/article/22/2/libreoffice-accessibility +[5]: https://opensource.com/article/18/9/intro-pandoc +[6]: https://opensource.com/article/19/9/introduction-markdown +[7]: https://opensource.com/article/19/8/what-are-environment-variables +[8]: https://opensource.com/sites/default/files/2022-08/Vojtech%20holding%20a%20football.jpg From 186c30523f7063c3165e03e3fb0dd8e779489f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 02:54:45 +0800 Subject: [PATCH 1771/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221026.2=20=E2=AD=90=EF=B8=8F=20How=20To=20Monitor?= =?UTF-8?q?=20File=20Changes=20Using=20fswatch=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Monitor File Changes Using fswatch In Linux.md | 250 ++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md diff --git a/sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md b/sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md new file mode 100644 index 0000000000..49583bfc3a --- /dev/null +++ b/sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md @@ -0,0 +1,250 @@ +[#]: subject: "How To Monitor File Changes Using fswatch In Linux" +[#]: via: "https://ostechnix.com/monitor-file-changes-using-fswatch-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Monitor File Changes Using fswatch In Linux +====== + +**Fswatch** is a free, open source multi-platform file change monitor utility that notifies us when the contents of the specified files or directories are modified or changed. Using fswatch, we can easily monitor the changes being made in files and/or directories. It supports all operating systems, including GNU/Linux, *BSDs, Mac OS X, Solaris, and Microsoft Windows etc. In this brief guide, let me show you how to **monitor file changes using fswatch** in Linux and Unix-like operating systems. + +### Types of monitoring + +Fswatch implements the following types of monitors. + +- A monitor based on the File System Events API of Apple OS X. +- A monitor based on kqueue, a notification interface introduced in FreeBSD 4.1. +- A monitor based on the File Events Notification API of the Solaris kernel and its derivatives. +- A monitor based on inotify, a Linux kernel subsystem that reports file system changes to applications. +- A monitor based on ReadDirectoryChangesW, a Microsoft Windows API that reports changes to a directory. +- A monitor which periodically stats the file system, saves file modification times in memory, and manually calculates file system changes. + +### Features + +Concerning about the features of fswatch, we can list the following: + +- Cross-platform and open source utility. +- Support for many OS-specific APIs. +- Recursive directory monitoring. +- Path filtering using including and excluding regular expressions. +- Customizable record format. +- Support for periodic idle events. +- And many. + +### Install fswatch in Linux + +The fswatch utility is available in the default repositories of popular Linux distributions. + +To install fswatch in Debian, Ubuntu, Linux Mint, Pop OS, and other APT-based systems, run: + +``` +$ sudo apt install fswatch +``` + +To install fswatch in Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, **enable [EPEL] repository** using command: + +``` +$ sudo dnf install epel-release +``` + +And then install install fswatch using command: + +``` +$ sudo dnf install fswatch +``` + +To install fswatch in openSUSE, run: + +``` +$ sudo zypper install fswatch +``` + +#### Install fswatch from source + +If fswatch is not available for your distribution, you can manually compile and install the latest version from the source as described below. + +Before compiling, you need to **install Development tools** in your Linux distribution. To install Development tools on various Linux distributions, refer the following guide. + +- [**How To Install Development Tools In Linux**][1] + +Then, download the fswatch source file [**from here**][2]. + +``` +$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.17.1/fswatch-1.17.1.tar.gz +``` + +Extract the downloaded tarball: + +``` +$ tar -zxvf fswatch-1.17.1.tar.gz +``` + +Go to the project's folder: + +``` +$ cd fswatch-1.17.1/ +``` + +Finally, compile and install fswatch by running the following commands one by one. + +``` +$ ./configure +``` + +``` +$ make +``` + +``` +$ sudo make install +``` + +Finally, run the following command to refresh the links and cache to the dynamic libraries: + +``` +$ sudo ldconfig +``` + +If you don't run the above command, you might get the following error in GNU/Linux systems. + +``` +fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory +``` + +Finally, check the fswatch version to make sure if it is installed correctly: + +``` +$ **fswatch --version** +fswatch 1.17.1 +Copyright (C) 2013-2021 Enrico M. Crisostomo . +License GPLv3+: GNU GPL version 3 or later . +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Written by Enrico M. Crisostomo. +``` + +### Install fswatch in FreeBSD + +On FreeBSD, fswatch can be installed using `pkg` as `root`: + +``` +# pkg install fswatch-mon +``` + +### Monitor file changes using fswatch in Linux + +Usage of fswatch is no big deal. The typical syntax of fswatch is: + +``` +$ fswatch [options] ... path-0 ... path-n +``` + +To test how fswatch works, open two Terminal windows (Let us call them **Terminal 1** and **Terminal 2**). + +In Terminal 1, run the fswatch command to monitor the **`$HOME`** directory. + +``` +$ fswatch /home/ostechnix/ +``` + +And, in the Terminal 2 do some operations such as creating files/folders, deleting files, and modifying files etc. + +Whatever you do in the terminal 2 will be notified on the Terminal 1. Have a look at the following screenshots. + +**Terminal 1** - fswatch command is running and the file changes are being monitored: + +![Monitor File Changes Using fswatch][3] + +Monitor File Changes Using fswatch + +**Terminal 2** - Do some random changes in files/folders: + +![Do random changes in files or folders][4] + +Do random changes in files or folders + +By default, fswatch will choose the best monitor available on the current platform, in terms of performance and resource consumption. In Linux, **the default monitor is inotify**. + +By default, fswatch will keep monitoring the file changes until you manually stop it by invoking **`CTRL+C`** keys. + +### List monitors + +To list the available monitors in the current platform (i.e Linux in our case), run: + +``` +$ fswatch -M +``` + +Or, + +``` +$ fswatch --list-monitors +``` + +**Sample output:** + +``` +inotify_monitor +poll_monitor +``` + +### Monitor specific file or folder + +To monitor a specific file or directory with a particular monitor option, run: + +``` +$ swatch -m kqueue_monitor /home/ostechnix/ +``` + +You can also exit fswatch after the first set of events is received by specifying the option **`-1`** as shown in the following command: + +``` +$ fswatch -1 /home/ostechnix/ +``` + +This command will exit just after the first set of events is received. + +fswatch will monitor changes in all files/folders in the specified path. If you want to watch the changes made in the directories only, use **`-d`** option. + +``` +$ fswatch -d /home/ostechnix/ +``` + +Of course, there are more options. Refer the man pages or the [**project's documentation page**][5] for detailed instructions. + +``` +$ man fswatch +``` + +**Resource:** + +- [**fswatch GitHub Repository**][6] + +Featured Image by [Pete Linforth][7] from [Pixabay][8]. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/monitor-file-changes-using-fswatch-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/install-development-tools-linux/ +[2]: https://github.com/emcrisostomo/fswatch/releases +[3]: https://ostechnix.com/wp-content/uploads/2022/10/Monitor-File-Changes-Using-fswatch.png +[4]: https://ostechnix.com/wp-content/uploads/2022/10/Do-random-changes-in-files-or-folders.png +[5]: https://emcrisostomo.github.io/fswatch/doc/ +[6]: https://github.com/emcrisostomo/fswatch +[7]: https://pixabay.com/users/thedigitalartist-202249/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3376230 +[8]: https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3376230 From 8cd7c70d34470ca99a69ea42aded5d45a9d5b5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:06:01 +0800 Subject: [PATCH 1772/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?10=20Lightweight=20Linux=20Distributions=20for=20your=20Old=20H?= =?UTF-8?q?ardware=20in=202022.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nux Distributions for your Old Hardware in 2022.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md diff --git a/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md b/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md new file mode 100644 index 0000000000..c1de1e201f --- /dev/null +++ b/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md @@ -0,0 +1,218 @@ +[#]: subject: "10 Lightweight Linux Distributions for your Old Hardware in 2022" +[#]: via: "https://www.debugpoint.com/lightweight-linux-distributions-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Lightweight Linux Distributions for your Old Hardware in 2022 +====== + +**We highlight a list of 10 lightweight Linux Distributions ideal for your older PC in 2022. We give you their features and what makes them perfect for reviving older hardware.** + +We believe that you should not throw away any hardware, especially PC and its components. Ideally, well-designed software should always run on any hardware. There are many [Linux Distributions][1] specifically designed for older hardware and PCs. And you can quickly revive them with the help of these Linux operating systems. In this post, we highlight ten such Linux Distributions which are lightweight and old hardware friendly in 2022. + +### 10 Lightweight Linux Distributions 2022 + +#### 1. Linux Lite + +The first lightweight Linux Distribution we feature in this list for 2022 is Linux Lite. Linux Lite is a continually developed and improved Linux Distribution based on Ubuntu and Debian. This decade-old Linux Distribution is perfect for your older hardware which needs a friendly and well-designed distro. The team markets this distro as an ideal starting point for Windows users who ends up with not supported hardware with Windows. The primary advantages of this distro are well customized and nice-looking Xfce desktop with an Ubuntu base, the latest Kernel and, of course, a 32-bit ISO image. + +![Linux Lite - Lightweight Linux Distributions][2] + +Linux Lite + +Advantages of Linux Lite: + +- Ubuntu-based +- Customized Xfce desktop +- Native applications +- 32-bit support +- Active development +- Minimum system requirement < 1 GB RAM + +[Download Linux Lite][3] + +#### 2. Puppy Linux + +The second distro that we feature in this list is Puppy Linux. Puppy Linux is a little different than traditional distros out there. It is designed to run from RAM without needing to install it in a physical system. If appropriately configured, you can save the sessions, plus it continues to work well even if you remove the bootable medium. + +![Puppy Linux - one of the best lightweight Linux Distribution in 2022][4] + +Puppy Linux – one of the best lightweight Linux Distribution in 2022 + +This Linux distro is binary compatible with Ubuntu LTS versions; the latest version is based on Ubuntu 20.04 LTS. Since Ubuntu dropped the 32-bit support, the newest version dropped the 32-bit version. + +Puppy Linux use cases are perfect for older computers, Netbooks, and hardware with less than 1GB of RAM. At the core, it is run by superfast JWM (Jow’s Window Manager), Puppy Package Manager that supports .deb, .rpm and its native PET packages. + +Overall, it’s a perfect and well-designed Linux Distribution for older hardware, hands down. + +Features: + +- Based on the Ubuntu LTS Version +- It can run on low-end Netbooks +- Works directly from RAM even after removing the bootable media +- Unique package manager – Puppy Package Manager +- Powered by JWM + +#### 3. BunsenLabs Linux + +The third lightweight Linux distro in this list is BunsenLabs Linux, a successor of the Crunchbang project. The BunsenLabs Linux is based on the Debian Stable branch, bringing modern applications to your low-end system. This distro provides a 32-bit version image for low-end systems and a standard 64-bit system for your regular hardware. At the core, BunsenLabds is powered by a pre-configured OpenBox window manager with a stunning tint2 panel, pre-configured Conky and jgmenu. + +![BunsenLabs Linux -Lightweight Linux Distribution ][5] + +BunsenLabs Linux + +This is a well-designed, superfast, stable and nice-looking distribution for older systems. + +Feature summary: + +- Based on Debian Stable branch +- Openbox window manager with tint2 panel, conky and jgmenu +- It provides a 32-bit installer +- Help and support are available via official forums + +[Download BunsenLabs Linux][6] + +#### 4. Lubuntu + +Lubuntu is famous for being a lightweight Linux Distribution. It is an official Ubuntu Linux flavour that features the lightweight LxQt desktop environment. Lubuntu gives you modern Ubuntu Linux packages and technology while it features the LxQt for your low-end hardware. Although it might require some extra system resources compared to other distros in this list, it is still a go-to Linux distro for older hardware. + +![Lubuntu - Lightweight Linux Distribution ][7] + +Lubuntu + +If you need a moderately lighter Linux Distribution which is stable and works out of the box, then choose Lubuntu. + +[Download Lubuntu][8] + +#### 5. Absolute Linux + +The fifth lightweight Linux distribution is Absolute Linux, based on Slackware Linux. This distro packages all necessary day-to-day applications in its installer image so that you get a complete distro out of the box. Absolute Linux features the IceWM and ROX Desktop, which gives you ultimate speed while using it on your older hardware. It is systemd-free, which offers an extra advantage over other distributions. + +![Absolute Linux - Lightweight Linux Distributions][9] + +Absolute Linux + +Feature Summary: + +- Based on Slackware +- Systemd-free +- Packages necessary software +- Powered by IceWM and package manager Slapt-get + +[Download Absolute Linux][10] + +#### 6. antiX Linux + +Yet another lightweight Linux distribution we want to highlight is antiX Linux. The antiX Linux is based on Debian stable branch and has several attractive features. At its core, it uses IceWM, Fluxbox, and ROX Desktop options, giving you an excellent and fast desktop experience. It is entirely systemd-free and uses sysVinit and runit system. The antiX Linux also gives you a 32-bit installer and has four variants – Full, Core, Base and net catering to different use cases. + +![antiX Linux - Lightweight Linux Distributions][11] + +antiX Linux + +Features: + +- Based on Debian stable +- It provides a 32-bit installer +- Systemd free +- Powered by IceWM and other window manager flavours + +[Download antiX Linux][12] + +#### 7. LXLE + +The LXLE Linux is a spin of the Lubuntu LTS series with an LXDE desktop instead of an LXQt desktop. The choice of applications, installer and other features makes it a perfect distro for older hardware. It is ideal for reviving your old system with a stable Ubuntu-LTS base and a fast LXDE desktop environment. + +![LXLE Linux - Lightweight Linux Distributions][13] + +LXLE Linux + +However, in my personal opinion, I feel LXQt is a little faster than LXDE. Well, that feedback might be relative and can be different for you. There are not many Linux distributions today, which give you an LXDE flavour. Hence it is one of the unique and lightweight Linux distributions for your daily use. + +[Download LXLE][14] + +#### 8. Porteus Linux + +The Porteus Linux is a remix of Slackware Linux that features the old KDE 4.0+ desktop environment (before the KDE Plasma series). This superfast Linux distribution is perfect for your antique hardware because it is based on bleeding-edge Slackware and gives you a 32-bit version. This distro can run from Live USB or a CD, or any bootable media and comes with just 300 MB of installer size. + +If you love the old KDE (like me!) and Slackware simplicity, this is a perfect distro for you, even your new hardware. + +![Porteus Linux][15] + +Porteus Linux + +[Download Porteus Linux][16] + +#### 9. Q4OS + +Q4OS is a unique Linux Distribution in this list. It targets the older Windows systems, which have become obsolete today. Many older PCs used to run Windows XP and Windows 7. They no longer work well with Windows and some modern Linux Distributions because the modern and updated OS requires much more computing power and resources. + +Q4OS targets those use cases and give you a well-designed Linux Distribution with features such as a 32-bit installer, Windows installer, Trinity Desktop environments, pre-made Windows themes, etc. + +![Q4OS - KDE Plasma Edition][17] + +Q4OS – KDE Plasma Edition + +[Download Q4OS][18] + +#### 10. MX Linux + +The final Linux Distribution in this list is the famous MX Linux, which has made its features and uniqueness in recent times. However, I doubted whether I would list MX Linux as lightweight. Because in my opinion, it is a medium-weight Linux Distribution if you consider its KDE Plasma flavour. + +![MX Linux][19] + +MX Linux + +However, it has some features which make it a perfect candidate for lightweight Linux distributions. MX Linux is based on the Debian Stable branch and created with antiX components. It features its own MX Linux native applications for your additional workflow. You get KDE Plasma, Xfce and Fluxbox as desktop options. + +[Download MX Linux][20] + +### Summary & Conclusion + +If you look closely, most of the lightweight Linux distribution we listed here is based on Debian Linux. It is truly the “Universal Operating System”. Modern Linux Desktop Environments like GNOME 40+, and KDE Plasma with Systemd init systems are no longer compatible with older hardware. Also, as technology progresses, more software complexity is introduced, requiring higher-end systems. + +That said, I hope you get some idea about which lightweight Linux distributions to choose for your old laptop or PC from this list. Each of them serves different tastes and needs with one goal: to revive your older systems. So, take your pick. + +Cheers. + +Some image credit: Respective Linux Distributions + +This article, Top Ten Lightweight Linux Distributions of 2022, is filed under the [Top Ten List][21]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/lightweight-linux-distributions-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/distributions +[2]: https://www.debugpoint.com/wp-content/uploads/2022/03/Linux-Lite.jpg +[3]: http://www.linuxliteos.com/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/03/Puppy-Linux-one-of-the-best-lightweight-Linux-Distribution-in-2022.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/BunsenLabs-Linux.jpg +[6]: https://www.bunsenlabs.org/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/03/Lubuntu.jpg +[8]: https://lubuntu.me/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/03/Absolute-Linux.jpg +[10]: https://www.absolutelinux.org/ +[11]: https://www.debugpoint.com/wp-content/uploads/2022/03/antiX-Linux-1024x640.jpg +[12]: https://antixlinux.com/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/03/LXLE-Linux.jpg +[14]: http://www.lxle.net/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Porteus-Linux.jpg +[16]: http://www.porteus.org/ +[17]: https://www.debugpoint.com/wp-content/uploads/2022/03/Q4OS-KDE-Plasma-Edition.jpg +[18]: https://q4os.org/ +[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/MX-Linux-1.jpg +[20]: https://mxlinux.org/ +[21]: https://www.debugpoint.com/tag/top-10-list From ff4c777edac6c6f1e835e32659046e11fb470371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:06:44 +0800 Subject: [PATCH 1773/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Top=2010=20Most=20Beautiful=20Linux=20Distributions=20[Featured?= =?UTF-8?q?].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 Most Beautiful Linux Distributions [Featured].md | 216 ++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md diff --git a/sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md b/sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md new file mode 100644 index 0000000000..d6b6fd5a35 --- /dev/null +++ b/sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md @@ -0,0 +1,216 @@ +[#]: subject: "Top 10 Most Beautiful Linux Distributions [Featured]" +[#]: via: "https://www.debugpoint.com/beautiful-linux-distributions-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Most Beautiful Linux Distributions [Featured] +====== + +**We give you the top 10 beautiful Linux Distributions of 2022. They are a visual treat to your eyes while being a robust operating system.** + +The most fantastic thing about [Linux Distributions][1] is you can customize them to any extent to satisfy your visual needs. Whether based on Ubuntu or Fedora, you have all the tools you need to customize a Linux desktop. + +But, there are many Linux Distributions that looks stunning without any customization. The developers have made them so that you can experience the visual treat right after installation without any additional effort on customization. + +Hence, we compiled a list of the most beautiful Linux distributions you can try right now and give your PC a visual makeover. + +### Most Beautiful Linux Distributions of 2022 + +#### 1. Zorin OS + +The first Linux Distribution which we would like to feature is Zorin OS. The Zorin OS is a beautiful Linux distribution that uses Zorin Desktop based on GNOME. It is perfect for newcomers who want a nice desktop but are also productive at the same time. + +One unique feature of Zorin OS is its ability to transform its look to make it like any other operating system. That means the taskbar, application menu, and Dock can change with just one click option from its Layout settings, giving you the utmost flexibility and out-of-the-box experience while using ZorinOS. + +[Read more about Zorin OS][2] + +![Zorin OS 16 Desktop][3] + +Zorin OS 16 Desktop + +#### 2. Elementary OS + +The elementaryOS is one of the most beautiful Linux distributions today based on Ubuntu Long Term Support (LTS) release. This Linux Distribution uses the stunning Pantheon Desktop environment, whose look and feel is inspired by macOS. + +The elementary OS is perfect for those coming from macOS to the Linux world as they would find many things familiar, such as gestures and window decorations. + +However, you may not find many customization options available in elementary OS settings. You may need to depend on external script commands to make further customization. However, the default looks are beautiful and serve their purpose for the majority of users. + +The most significant advantage of elementary OS is its curated app store. The App Store provides you with all categories of applications specially designed for the elementary OS, which looks and works great. + +[Read more about elementaryOS][4] + +![elementary OS 6 ODIN Desktop][5] + +elementary OS 6 ODIN Desktop + +#### 3. Deepin OS + +The third distribution which we would like to highlight is Deepin OS. The Deepin OS is based on Debian and was created by Deepin Technology Co from China. It uses its own Deepin Desktop Environment based on Qt. The Deepin desktop looks incredible with its widgets, colour schemes, window decorations, and wallpapers that give you an out-of-the-box visual treat. + +With its well-polished visual components, you may think that it looks almost similar to macOS. And thanks to the Debian “stable” branch, Deepin OS is the perfect choice if you want an excellent-looking Linux distribution with stability. + +Why is Deepin OS beautiful? + +- Awesome Qt-based Deepin Desktop +- Native widgets and dark theme support +- Several options to customize the Dock +- Transparency, Window effects, CursDockheme, Icon Theme support +- Accent Color + +[Read more about Deepin OS][6] + +![Deepin 20 Desktop][7] + +Deepin 20 Desktop + +#### 4. Cutefish OS + +**Note**: Cutefish OS is currently undergoing a team change and will take time to get a new release. [Learn more here][8]. + +The fourth Linux Distribution which we feature here is [CutefishOS][9]. This Debian and Ubuntu-based Linux distribution feature a natively developed Cutefish desktop. This Linux Distribution is currently under development. But its looks are already making waves across the user’s base. + +Under the hood, CutefishOS is built upon Qt and KDE Framework. This efficient Linux Distribution with Cutefish desktop features the global menu feature at the top bar out of the box. + +The customization options are still being worked on as its currently under development. But with the latest release, you get the native dark mode, accent colour, animation effects, and dock position (left, right, bottom), among other options. + +You may go ahead if you want to experiment with a nice desktop that looks completely different. Also, you may go over the complete review and tutorials of this desktop presented below. + +[Cutefish OS Review][10] + +![Cutefish OS][11] + +Cutefish OS + +#### 5. Manjaro KDE Plasma + +The Manjaro Linux KDE Edition is one of the best-looking Linux distributions today. Based on Arch Linux, Manjaro KDE Edition features the stock KDE Plasma desktop environment with some additional tweaks and widgets. The green colour palette of Manjaro gives you a fresh look and feel. You can customize further with built-in KDE tools and settings and change icons and themes from KDE Stores. + +The Manjar KDE Edition is a perfect combination of performance and beauty with the power of Arch Linux. And it is an ideal starting point for the new Arch Linux users. + +[Read more about Manjaro KDE Desktop][12] + +![Manjaro KDE Plasma][13] + +Manjaro KDE Plasma + +#### 6. Garuda Linux + +The famous Garduda Linux is the 6th OS on this list. Garuda Linux is based on Arch Linux and brings a beautiful desktop for you. It features all major desktop environments with custom-designed icon themes and colour palettes. This operating system uses Zen Kernel, optimized for performance in your hardware. + +The look and feel are stunning in Garuda Linux. The macOS style looks like you get out of the box. The combination of neon icon theme, lovely colour palette, blur and Transparency with the global menu is perfect for its own. + +One of the primary advantages of Garuda is it provides you with the choice of all desktop environments – KDE Plasma, GNOME, Xfce, LXQt, MATE and others. + +[Read more about Garuda Linux][14] + +![Garuda Linux][15] + +Garuda Linux + +#### 7. Linux Mint Cinnamon Edition + +We all love Linux Mint because of its simplicity, elegance and stability. It is one of the most widely used and famous Linux distributions today. And perhaps the most used Linux distribution after Ubuntu. However, it is not that fancy-looking if you compare this with other Linux Distributions here in this list. + +But the default Cinnamon desktop looks clean and perfect if you like the legacy user interface, which looks fantastic. + +The Linux Mint Cinnamon edition is perfect for all users, especially new users of Linux or even those are migrating from Windows. The default looks and feels with Mint’s green colour palette look refreshing. + +If you cannot decide on an eye-candy Linux distribution with stability, choose the Linux Mint Cinnamon edition without a doubt. + +[Read more about Linux Mint][16] + +![Linux Mint 20 - Cinnamon Edition Desktop][17] + +Linux Mint 20 – Cinnamon Edition Desktop + +#### 8. Nitrux OS + +[Nitrux Linux][18]is based on Debian, which features a modified version of the KDE Plasma desktop called NX Desktop. This unique Linux distribution brings its own set of Nitrux applications built upon Maui kit and Qt. Nitrux is systemd-free and uses OpenRC as an init system. With all these unique features and stunning looks, it is one of the best Linux distributions today. + +Nitrux OS’s default look is perfectly designed with a modified KDE Plasma desktop with Kvantum theme engine, icon theme, colour palette and cursor theme. The team behind Nitrux OS also brings a separate desktop called Maui Shell, a beautiful convergent desktop that adapts itself based on screen size. + +If you need a KDE Plasma desktop with out-of-the-box modification with stability, then go for Nitrux OS. You won’t be disappointed. + +[Read more about Nitrux OS][18] + +![Nitrux 2.0 + Desktop][19] + +Nitrux 2.0 + Desktop + +#### 9. Ubuntu Kylin + +The Ubuntu Kylin is an official Ubuntu flavour designed explicitly for Chinese people who use a simplified Chinese script. However, it supports another language as well. + +This modified Ubuntu flavour uses Ubuntu Kylin User Interface (aka UKUI). The UKUI desktop is created using Qt to support MATE Desktop components. + +Ubuntu Kylin looks elegant, and it would remind you of a combination of GNOME and KDE Plasma in terms of looks and design. + +It features a nicely designed icon set, bottom taskbar, nice application view, app switcher, rounded corner, and more These features are carefully crafted. + +[Read more about Ubuntu Kylin][20] + +![Ubuntu Kylin Desktop][21] + +Ubuntu Kylin Desktop + +#### 10. Pop OS + +The Pop OS is developed by System76, which manufactures computer hardware. This Ubuntu-based Linux Distribution comes pre-installed in all the System6 hardware. However, you can separately download and install it from its official repository in your system. + +The Pop OS features the default GNOME desktop with additional tweaks and configurations. This desktop features the pre-GNOME 40-era desktop with several extensions and tweaks pre-configured. For example, you get a bottom dock that can be configured to move around on the desktop, a launcher to launch applications, rounded corners and many such features. This desktop also features auto-tiling and optimized keyboard navigation to make you more productive. + +The look and feel are clean and beautifully designed with a colour palette, built-in dark mode, rounded corners in the application window, and an icon theme. + +[Read more about Pop OS][22] + +![Pop OS 21.10 Desktop][23] + +Pop OS 21.10 Desktop + +### Closing Notes + +I hope this list of beautiful Linux distributions of 2022 helps you decide which one you want for your desktop or laptop. Because these are already configured to look beautiful, they are powerful. + +Take your pick and start your Linux journey. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/beautiful-linux-distributions-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/distributions +[2]: https://zorin.com +[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/Zorin-OS-16-Desktop.jpg +[4]: https://elementary.io/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/08/elementary-OS-6-ODIN-Desktop.jpg +[6]: https://www.deepin.org/en/ +[7]: https://www.debugpoint.com/wp-content/uploads/2020/09/Deepin-20-Desktop.jpg +[8]: https://www.debugpoint.com/cutefish-development-restarts/ +[9]: https://en.cutefishos.com/ +[10]: https://www.debugpoint.com/2021/11/cutefish-os-review-2021/ +[11]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-1024x581.jpg +[12]: https://manjaro.org/downloads/official/kde/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/03/Manjaro-KDE-Plasma-1024x576.jpg +[14]: https://garudalinux.org/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Garuda-Linux-1024x577.jpg +[16]: https://linuxmint.com/ +[17]: https://www.debugpoint.com/wp-content/uploads/2020/07/Linux-Mint-20-Cinnamon-Edition-Desktop.png +[18]: https://nxos.org/ +[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/Nitrux-2.0-Desktop-1024x581.jpg +[20]: https://www.ubuntukylin.com +[21]: https://www.debugpoint.com/wp-content/uploads/2022/03/Ubuntu-Kylin-Desktop.jpg +[22]: https://pop.system76.com/ +[23]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pop-OS-21.10-Desktop.jpg From ce176e612ab0d29792e5723e36c5c0ba633e2c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:07:14 +0800 Subject: [PATCH 1774/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Top=2010=20Linux=20Distributions=20for=20Programmers=20in=20202?= =?UTF-8?q?2=20[Featured].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...istributions for Programmers in 2022 [Featured].md | 229 ++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md diff --git a/sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md b/sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md new file mode 100644 index 0000000000..5cb6d9db74 --- /dev/null +++ b/sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md @@ -0,0 +1,229 @@ +[#]: subject: "Top 10 Linux Distributions for Programmers in 2022 [Featured]" +[#]: via: "https://www.debugpoint.com/top-linux-distributions-programmers-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Linux Distributions for Programmers in 2022 [Featured] +====== + +**We review the top 10 best Linux distributions for programmers and developers (in 2022) to help with their work and personal projects.** + +The developers or the programmers use various tools and applications for their job or projects. It includes code editors, programming language compilers, add-ons, databases, etc. If you categorise the workflow of a modern developer – it contains a typical workflow as below – + +- accessing to the code repo +- programming +- debugging +- testing +- deploying + +And this typical workflow may need a wide range of tools. A standard list might be like this – + +- Code editors +- Simple Text Editors +- Web browsers (all variants for a web developer) +- Database engine +- A local server +- The respective programming language compiler +- Debuggers +- Monitoring or profiling tools (executables or network) + +Arguably, Linux is the best choice for programming compared to Windows. I am not comparing macOS in this article for several reasons. The primary reason for Linux is the best is because packages and apps with modern technology come as pre-installed or very easy to install in Linux distributions than Windows. + +Hence, in this post, we would like to list the best Linux Distributions for programmers in 2022. + +### Top 10 Linux Distributions for Programmers in 2022 + +#### 1. Fedora Workstation + +![Fedora 35 Workstation][1] + +Fedora 35 Workstation + +Perhaps the perfect Linux distribution among this list is Fedora Linux. Its default workstation edition for desktop brings an authentic GNOME desktop experience with its choice of packages. + +Fedora Linux default installation gives you all major development packages out of the box. They include PHP, OpenJDK, PostgreSQL, Django, Ruby on Rails, Ansible, etc. + +Installing additional applications such as Code editors and other packages are super simple with the dnf package manager. You can also take advantage of Software which is an app store where you can search and install applications with just a click of a button. + +Fedora Linux supports Snap and Flatpak, and that gives you more flexibility. You can also take advantage of the RPM Fusion repository in Fedora. The RPM Fusion repo gives you access to many free and non-free packages. Fedora Linux doesn’t want to include these packages in their main repo for license and other obvious reasons. + +You can check out the latest Fedora Linux on their official website below. + +[Download Fedora][2] + +#### 2. Ubuntu Linux + +![Ubuntu Desktop is a perfect Linux Distribution for Programmers][3] + +Ubuntu Desktop is a perfect Linux Distribution for Programmers. + +The second Linux distribution in this list is Ubuntu Linux. Ubuntu Linux is the most used Linux distribution today in server and desktop both. Ubuntu provides a long-term support release with five years of official support (plus another five years of maintenance support) and two short-term releases per year for power users. + +Due to its popularity, all the latest packages and application vendors provide Ubuntu (.deb) variants. The popularity also brings massive support in forums and documentation, perfect for developers, especially when you are stuck with errors during the development phase. Learn more about Ubuntu in the below link. + +[Download Ubuntu][4] + +#### 3. openSUSE + +openSUSE is one of the most stable and professionally built Linux distributions used in critical systems worldwide. This Linux Distribution is a go-to solution for enterprise-level workloads that include desktops, servers and thin clients. + +It has some advantages over Ubuntu and Fedora. First, it has two variants – Leap and Tumbleweed. The openSUSE Leap is a long-term support release (LTS) that provides up-to-date stability. The openSUSE Tumbleweed is a rolling release software that features bleeding edge packages. + +If you need the latest packages and hardware support for your development, then Tumbleweed is your choice. If you need stability and a longer-running system with low maintenance, choose openSUSE Leap. + +One of the advantages of using openSUSE for your development work is its package manager YaST. You can automate many activities with ease using the YaST package manager. + +On top of that, the openSUSE software delivery method is outstanding. Its software portal is on the web, which you can visit, search for a package and click install. + +If you are a little experienced in Linux compared to the new users, choose openSUSE for your development work. + +[Download openSUSE][5] + +#### 4. Manjaro Linux + +Manjaro Linux is an Arch Linux-based distribution that makes Arch installation easy. It is based on Arch Linux but brings several features such as a GUI installer like Ubuntu or Linux Mint, pamac installer, its curated repositories and more. Manjaro comes in three primary desktop flavours – GNOME, KDE Plasma and Xfce to cater to almost all user base. + +If you want Arch Linux and its rolling release package base for your development needs but do not want to get into the hassles of installing vanilla Arch, Manjaro is your perfect choice. + +[Download Manjaro][6] + +#### 5. Arch Linux + +While Manjaro and other Arch-based easy installation Linux distributions are out there, you may still want to get your hands dirty with the [vanilla Arch installation][7] with your custom desktop. + +This is more for power developers or programmers who want more control and a custom Linux operating system built for projects or needs. You may want to install Arch Linux with your favourite desktop to set up your development operating system in those cases. + +Suppose you are experienced in Arch Linux and computers in general. In that case, this is the best choice among all because it gives you complete control over each package in your custom build Linux operating system. + +[Download Arch Linux][8] + +#### 6. Pop OS + +The Pop OS (represented as Pop!_OS) was developed by computer manufacturer System76 for their series of hardware. Pop OS is free and open-source, based on Ubuntu. It follows the Ubuntu release cycle for its base while bringing additional tweaks, and packages customised for users. + +![Pop OS 21.10 Desktop Linux Distributions][9] + +Pop OS 21.10 Desktop + +Pop OS is perfect for programmers because it natively supports many programming languages based on Ubuntu. It markets itself as popular among computer scientists and programmers for its curated software centre, which has a dedicated section featuring applications for development and programming. + +On top of that, the COSMIC desktop (customised GNOME desktop) in Pop OS gives a unique experience to programmers with auto-tiling, a lovely colour palette, native dark mode and a wide range of settings. + +If you need an Ubuntu base and want a stable programmer-friendly Linux distribution, then choose Pop OS. + +[Download POP OS][10] + +#### 7. KDE Neon + +If you are a developer who feels comfortable in the KDE Plasma desktop and wants a Qt-based development environment, then KDE Neon is perfect for you. + +KDE Neon is a Linux distribution based on the Ubuntu LTS version with the latest KDE Plasma desktop, and KDE Framework packages. So, in KDE Neon, you get Ubuntu LTS stability with bleeding-edge KDE packages with Qt. + +This is a perfect Linux Distribution if you need a fast system with out-of-the-box applications, a friendly user interface and huge community support. + +[Download KDE Neon][11] + +#### 8. Debian + +Debian GNU/Linux needs no introduction. Debian’s stable branch is the base of Ubuntu and all its derivatives. Hence it is one of the primary and stable Linux. And it is perfect for your development environment because it gives you ultimate stability with multi-year support. + +Although, Debian’s stable branch is slightly conservative in adopting the latest packages. Debian maintainers carefully check and merge packages because the entire world (well, almost) depends on Debian stability. + +It is a perfect programming environment for advanced users and sysadmins if you want a stable and long-running dev environment with low maintenance effort. + +[Download Debian Linux][12] + +#### 9. Kali Linux + +The Kali Linux is developed by Offensive Security and primarily targets ethical hackers and penetration testers looking out for network vulnerabilities. It comes with tons of hacking tools and applications pre-installed. + +It can be a perfect Linux distribution for programmers and developers if you are experienced enough. Go for Kali Linux if you are well versed with Linux with some experience in navigating around errors and dependencies. + +[Download Kali Linux][13] + +#### 10. Fedora Labs Options + +And the final Linux Distribution in this list is a combination of Linux Distributions from Fedora Linux. + +Fedora Labs provides specially curated Linux Distributions for programmers, scientists and students with pre-loaded applications, respective packages and utilities. Many people are unaware of these, and when appropriately configured, they can act as perfect ready-made Linux distribution for you. + +Here’s a summary of them. + +**Fedora Scientific** + +- GNU Scientific Library for C/C++ +- MATLAB Compatible MGNU Octave +- LaTeX +- Maxima Computer Algebra System +- Gnuplot for drawing 2D and 3D graphs +- Pandas Python library for data science +- IPython +- Packages for Java and R programming languages + +- Combination of Scientific and numerical open-source tools with KDE Plasma desktop. +- Application list includes – +- Learn more about Fedora Scientific and [download it here][14]. + +**Fedora COMP NEURO** + +- Open source neuroscience applications and packages with GNOME Desktop environment. Learn more and [download it here][15]. + +**Fedora Robotics Suite** + +- Perfect Linux distribution combines the best open-source robotics applications and packages targeted to beginner and experienced Robotics scientists and programmers. +- Learn more and [download it here][16]. + +**Other solutions** from Fedora Linux include [Fedora Security Labs][17], [Fedora Astronomy][18] and [Fedora Python Classroom][19], which you want to check out. + +These Fedora Labs options can be perfect Linux distributions for programming projects or working in specific science fields. + +### Summary + +So, how do you choose your favourite among this list of best Linux Distributions for programmers? + +If you are unsure and want to have a development system up and running with minimal effort, go for Fedora Workstation or Ubuntu. + +If you have spare time or want more control over your system, like experimenting and being comfortable with occasional errors, then go for Arch Linux-based systems. + +Pop OS is also a good choice for new developers new to the Linux ecosystem. For specific needs, go to the Fedora Labs options. + +I hope this list of best Linux Distributions for programmers in 2022 gives you some guidance on choosing your favourite Linux distributions for programming and development. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/top-linux-distributions-programmers-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/11/Fedora-35-Workstation.jpg +[2]: https://getfedora.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Ubuntu-Desktop-is-a-perfect-Linux-Distribution-for-Programmers.jpg +[4]: https://ubuntu.com/download +[5]: https://www.opensuse.org/ +[6]: https://manjaro.org/download/ +[7]: https://www.debugpoint.com/2022/01/archinstall-guide/ +[8]: https://archlinux.org/download/ +[9]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pop-OS-21.10-Desktop.jpg +[10]: https://pop.system76.com/ +[11]: https://neon.kde.org/download +[12]: https://www.debian.org/distrib/ +[13]: https://www.kali.org/ +[14]: https://labs.fedoraproject.org/en/scientific/ +[15]: https://labs.fedoraproject.org/en/comp-neuro/ +[16]: https://labs.fedoraproject.org/en/robotics/ +[17]: https://labs.fedoraproject.org/en/security +[18]: https://labs.fedoraproject.org/en/astronomy +[19]: https://labs.fedoraproject.org/en/python-classroom From b7874a7500e54bc050bc210fbf1e49f55f1b01f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:07:51 +0800 Subject: [PATCH 1775/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.7=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Mabox=20Linux=20=E2=80=93=20Beautiful=20Arch=20Linux=20with=20O?= =?UTF-8?q?penbox=20[Review].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ux – Beautiful Arch Linux with Openbox [Review].md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md diff --git a/sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md b/sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md new file mode 100644 index 0000000000..bd72e0caf1 --- /dev/null +++ b/sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md @@ -0,0 +1,139 @@ +[#]: subject: "Mabox Linux – Beautiful Arch Linux with Openbox [Review]" +[#]: via: "https://www.debugpoint.com/mabox-linux-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Mabox Linux – Beautiful Arch Linux with Openbox [Review] +====== + +**Mabox Linux is a Manjaro Linux re-spin with a lightweight Openbox window manager, ready to use with pre-configured themes and utilities. We review the distribution in this post.** + +If you love window manager, rolling-release-based Arch Linux and are looking for a ready-made Linux distribution with this combination, try Mabox Linux. The Mabox Linux is built on top of the great Manjaro Linux with Openbox Window manager and several native utilities. + +Thanks to the Openbox, this Linux distribution is super-lightweight in resource consumption while being a beautiful desktop for everyone to use. The Mabox Linux tools adapted from BunsenLabs and inspired by Crunchbang brings some of their applications. + +Let’s do a deep dive on this awesome Linux Distribution. + +### Mabox Linux Review + +#### Installation and Live Medium + +One of the advantages of Mabox .ISO is it provides you free and proprietary drivers both the options during the LIVE medium boot process. This helps if you have NVIDIA or other hardware in the system. + +The LIVE desktop lets you install Mabox via the Calamares installer. The installation takes around 3 to 4 minutes on standard hardware, and it is error-free in my test. + +The installer is managed to detect the other operating systems in the test device. + +#### Look and Feel with Customization + +Mabox brings a pre-configured Openbox window manager. The stock version looks nice with dark skin and a menu with panels. + +The top panel is built using Tint2 and split into two sections. And Left panel gives you shortcuts to the main menu, file manager, web browser. Also, the panel have a different menu for the left and right-click mouse button. The right panel contains a resource monitor, volume control, screenshot shortcut and power menu. The top panel is not continuous and stay on top for application windows for certain themes. + +![Mabox Linux with Nord Theme][1] + +Mabox Linux with Nord Theme + +At the right section of the desktop, the pre-configured Conky script gives you system information with date, time, storage and other displays. + +The welcome window gives you quick start shortcuts on settings, help and support with links to documentation. + +The window managers are keyboard friendly and sometimes have trouble with the Mouse. But thanks to Openbox and pre-configured Mabox, you can easily use Mouse while increasing your productivity with nifty keyboard shortcuts. + +The right-click menu on the desktop gives you easily search and launch options. + +![Search and Launch from desktop][2] + +Search and Launch from desktop + +If you do not like the default look, you can customize it on your own with just a few clicks via Openbox and Tint2 panel configuration tool. + +![Main Application Menu][3] + +Main Application Menu + +Mabox has different themes as pre-set, including Panel and Concky scripts. You can click and apply with these stunning Mabox themes. It is one of the excellent features if you do not want to get into the hassles of configuring the panels, colours and Conky on your own. + +A good set of nice wallpaper gives you the flexibility to make it look more fabulous in no time. + +![Mabox Themes][4] + +Mabox Themes + +#### Applications + +Mabox Linux packages all necessary applications in its installer image. Here is a quick list of essential applications that are included. + +- Terminal – terminator +- Xpad – quick text pad +- File manager – PCManFM +- FSearch for desktop file search +- Flameshot screenshot utility +- Geany text editor +- Audacious music player +- Firefox web browser + +Mabox also includes its control centre to manage your system effectively. Mabox control center gives you the option to add/remove applications, update your system, launch several configuration windows for window manager components and many such options. + +If you cannot find any settings, you can easily find them in the Mabox control center via its logical grouping of system settings. + +![Mabox Control Center][5] + +Mabox Control Center + +#### What about the performance? + +The performance of Mabox Linux is super impressive. Thanks to the Openbox window manager, Mabox only uses around 350+ MB of RAM while the CPU hovers at 2% to 3% during the idle state. + +The default installation takes around 5.39 GB of disk space which is unbelievable with all these applications and settings programs pre-installed. + +It is so optimized that the highest app consuming more memory is Xorg with 90 MB. + +So, I thought of trying out heavy usage performance. And that performance is also surprising. I opened a file manager, Firefox, with three tabs, one text editor for development, a terminal window and the Control Center. With this workload, Mabox only consumes around 920 MB of memory and CPU at 6% to 7%. + +![Mabox Linux Heavy Workload Performance][6] + +Mabox Linux Heavy Workload Performance + +During the [review of several distributions][7], this is the first time I found a distro that did not cross 1 GB of memory during a heavy workload. But the results may vary in different use cases. Still, the metric is impressive. + +### Can Mabox Linux be used as daily driver? + +If you are familiar and comfortable with Arch Linux with the window manager, you can use Mabox Linux as a daily driver. A few well-packaged Arch Linux distros are available with a window manager, and Mabox is one of the best. + +![Mabox Linux Windows 95 preconfigured theme][8] + +Mabox Linux Windows 95 pre-configured theme + +### Summary + +I think the Mabox Linux team did a great job packaging all the components with Arch Linux and presented with a nice Linux Distribution. It does look stunning while consuming very few system resources. With the power of rolling-release based Arch Linux, I think you can trust this distro for long term usage. + +You can download Mabox Linux from its [official webpage][9]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/mabox-linux-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Linux-with-Nord-Theme.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/03/Search-and-Launch-from-desktop.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Main-Application-Menu.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Themes.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Control-Center.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Linux-Heavy-Workload-Performance.jpg +[7]: https://www.debugpoint.com/tag/linux-distro-review +[8]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Linux-Windows-95-preconfigured-theme-1.jpg +[9]: https://maboxlinux.org/ From bd2fd56369b06868af1f0c1b64b73d4490e9c74c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:09:23 +0800 Subject: [PATCH 1776/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.2=20=E2=AD=90=EF=B8=8F=20Customize=20GNOME?= =?UTF-8?q?=20in=20Ubuntu=2020.04=20with=20this=20Productive=20Look.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...E in Ubuntu 20.04 with this Productive Look.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md diff --git a/sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md b/sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md new file mode 100644 index 0000000000..a8bdd34319 --- /dev/null +++ b/sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md @@ -0,0 +1,167 @@ +[#]: subject: "Customize GNOME in Ubuntu 20.04 with this Productive Look" +[#]: via: "https://www.debugpoint.com/customize-gnome-ubuntu-2020/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Customize GNOME in Ubuntu 20.04 with this Productive Look +====== + +**In one of the early [guides][1], I explained the overall look and feel of the GNOME desktop. How you can visually change the look from a mundane desktop to something nice and better. This guide explains some steps which give you an idea of how you can Customize GNOME in Ubuntu 20.04 with a productive look.** + +Thanks to extensions, the GNOME desktop can be transformed to anything from visual and overall productivity. GNOME extensions are very powerful if you know which one to use and what customizations to apply. + +There are hundreds of extensions on the official GNOME extension website. That means you can customize GNOME in many ways. The following steps are merely a guide to show you how you can customize Ubuntu 20.04 with GNOME With a productive look. + +### Customize GNOME in Ubuntu + +A default Ubuntu installation with GNOME desktop look like this without much configuration. This guide helps you to changes this look. + +![Before Customization - GNOME][2] + +Before Customization – GNOME + +#### Prerequisite + +Make sure GNOME Extension is enabled in your browser. If you don’t know how to – [check this guide][3]. Or, just visit the official GNOME Extension page [here][4]. You can get a popup message at the top saying the steps (see below). Follow the instructions to enable GNOME extensions for your browser. + +![GNOME Extensions Page][5] + +GNOME Extensions Page + +I hope you have the admin password of the Ubuntu 20.04 installation where you are trying this out. + +And, install the [GNOME Tweak Tool][6]. You can use Ubuntu Software to install Or, run below from the terminal. + +``` +sudo apt-get install gnome-tweaks +``` + +#### Install Extensions + +Open the [GNOME Extension website][4]. + +Then, install all the below extensions. Open the link and click on the “OFF” button to enable and install respective extensions. + +- [Dash to panel][7] +- [Tray icons][8] +- [Open Weather][9] +- [User Themes][10] +- [Arc menu][11] + +#### Configure the extensions + +##### Dash to Panel + +Once you install, the Dash by default moves to the bottom of the screen. Right click on the panel at the bottom and open ‘Dash to Panel Settings’. Change below settings. + +![Dash to Panel Settings][12] + +Dash to Panel Settings + +**On the Position Tab** + +- Disable the Show Applications Button +- Move the Date menu after System menu +- Change Desktop button width to 15px. +- Turn on the override panel theme background opacity. Give value to 50%. + +**On the style tab** + +- Change the running indicator style to dots. + +##### Tray icons + +- No need to change any settings. + +##### Open Weather + +- Change the display, City and the temperature unit if you like. + +##### User Themes + +- No need to change any settings. + +##### Arc Menu + +- Open Arc Menu Settings + +**General Tab** + +- Choose Display Arc menu on Dash to panel. +- Choose Hot Key for Arc menu to Left Super key. + +**Menu Layout Tab** + +- Choose Modern menu layout to Redmond Menu Style + +![Arc Menu Settings][13] + +Arc Menu Settings + +**Menu Theme** + +- Choose override menu theme. Keep the theme as default, or, you can change as you wish. + +**Button Appearance** + +- Change the icon to anyone. I have selected the Ubuntu icon. +- Change Icon size to 40px. + +At this stage, the menu and panel should look like this. + +![Panel and Menu][14] + +Panel and Menu + +Almost done, couple of additional settings are required now. + +- Open the GNOME Tweak tool and go to the Appearance tab. Choose Shell theme to Yaru Dark. +- Open Settings and change the Appearance to Dark. +- Then change the desktop wallpaper to a nice wallpaper. + +If all goes well, you should have a nice productive yet beautiful looking desktop with you. The Arc Menu itself is a big productivity booster. + +### Final desktop + +![GNOME Desktop After customization - Ubuntu][15] + +GNOME Desktop After customization – Ubuntu + +So, that’s it with the steps. This is merely a guide. You can play around with the settings in hundreds of ways to make the GNOME desktop best suitable for you. + +Wallpaper Photo by **[Ethan Wu][16]** from **[Pexels][17]** + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/customize-gnome-ubuntu-2020/ + +作者:[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/2020/05/customize-gnome-in-ubuntu-20-04-with-a-new-look/ +[2]: https://www.debugpoint.com/wp-content/uploads/2020/11/Before-Customization-GNOME--1024x576.jpg +[3]: https://www.debugpoint.com/2018/05/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ +[4]: https://extensions.gnome.org/ +[5]: https://www.debugpoint.com/wp-content/uploads/2020/11/GNOME-Extensions-Page.jpg +[6]: https://www.debugpoint.com/2018/05/customize-your-ubuntu-desktop-using-gnome-tweak/ +[7]: https://extensions.gnome.org/extension/1160/dash-to-panel/ +[8]: https://extensions.gnome.org/extension/1503/tray-icons/ +[9]: https://extensions.gnome.org/extension/750/openweather/ +[10]: https://extensions.gnome.org/extension/19/user-themes/ +[11]: https://extensions.gnome.org/extension/1228/arc-menu/ +[12]: https://www.debugpoint.com/wp-content/uploads/2020/11/Dash-to-Panel-Settings.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/11/Arc-Menu-Settings.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/11/Panel-and-Menu.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/11/GNOME-Desktop-After-customization-Ubuntu-1024x576.jpg +[16]: https://www.pexels.com/@ethanwu?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels +[17]: https://www.pexels.com/photo/closeup-photo-of-water-dew-on-glass-1425298/?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels From f7fa1add8a8f4719b3369e46e56c6a86654a0f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:10:06 +0800 Subject: [PATCH 1777/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.9=20=E2=AD=90=EF=B8=8F=20Customize=20GNOME?= =?UTF-8?q?=20Desktop=20in=20Ubuntu=20with=20this=20Colorful=20Looks.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Desktop in Ubuntu with this Colorful Looks.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md diff --git a/sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md b/sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md new file mode 100644 index 0000000000..e0268948c1 --- /dev/null +++ b/sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md @@ -0,0 +1,159 @@ +[#]: subject: "Customize GNOME Desktop in Ubuntu with this Colorful Looks" +[#]: via: "https://www.debugpoint.com/customize-gnome-ubuntu-2020-2/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Customize GNOME Desktop in Ubuntu with this Colorful Looks +====== + +**The default GNOME desktop in Ubuntu can be customized in many ways. There are many available GTK and icon themes which you can easily apply and transform your daily driver desktop to a different look without losing performance and productivity.** + +In this guide, I will apply one icon theme on top of the [earlier customization][1] we did for GNOME. If you are trying to configure the GNOME desktop look from a stock Ubuntu installation you can follow the below guide step by step. + +![Customize GNOME in Ubuntu - 1][2] + +Customize GNOME in Ubuntu – 1 + +### Customize GNOME Desktop in Ubuntu + +To Customize GNOME Desktop in Ubuntu in this guide, you need to enable GNOME Extensions, install GNOME Tweaks. You can do both with these quick steps. + +#### Enable Ubuntu for GNOME Extensions + +Open Firefox and visit the official GNOME Extension page [here][3]. You can get a popup message at the top saying the steps. Follow the instructions to enable GNOME extensions for your browser. + +#### Install GNOME Tweak Tool + +To install the [GNOME Tweak Tool.][4] You can use Ubuntu Software to install Or, run below from the terminal. + +``` +sudo apt-get install gnome-tweaks +``` + +#### Install Extensions + +Open the [GNOME Extension website][3]. + +Then, install all the below extensions. Open the link and click on the “OFF” at the right side of the page button to enable and install respective extensions. + +- [Dash to panel][5] +- [Tray icons][6] +- [Open Weather][7] +- [User Themes][8] +- [Arc menu][9] + +Not all these GNOME Extensions require configurations. We will configure the Dash to Panel, Open Weather, Arc Menu. + +#### Configure Dash to Panel + +After installation, the Dash by default moves to the bottom of the screen. Right, click on the panel at the bottom and open ‘Dash to Panel Settings’. Change the below settings. + +**On the Position Tab** + +- Disable the Show Applications Button +- Move the Date menu after the System menu +- Change Desktop button width to 15px. +- Turn on the override panel theme background opacity. Give value to 50%. + +**On the style tab** + +- Change the running indicator style to dots. + +#### Configure Open Weather + +Change the display, City, and temperature unit if you like. + +#### Configure Arc Menu + +Open Arc Menu Settings + +**General Tab** + +- Choose Display Arc menu on Dash to panel. +- Choose Hot Key for Arc menu to Left Super key. + +**Menu Layout Tab** + +- Choose Modern menu layout to Redmond Menu Style + +![Arc Menu Settings][10] + +Arc Menu Settings + +**Menu Theme** + +- Choose the override menu theme. Keep the theme as default, or, you can change as you wish. + +**Button Appearance** + +- Change the icon to anyone. I have selected the Ubuntu icon. +- Change Icon size to 40px. + +#### Additional Configurations + +Open the GNOME Tweak tool and go to the Appearance tab. Choose Shell theme to Yaru Dark.Open Settings and change the Appearance to Dark. + +#### Configure Icons + +In this guide, I have used the “BeautyLine” icon theme which you can download from the below link. This icon theme has a distinct and bright look and available icon sets for almost all generic applications. Once you apply, the overall desktop looks more focused on the dark theme backdrop. + +[Download BeautyLine icon pack][11] + +Once downloaded, extract the file. Then copy the top-level folder ‘beautyline” to the `/usr/share/themes`. + +- Open GNOME Tweak tool +- Go to the Appearance tab +- Change the Icon to BeautyLine +- Change the cursor to White glass. + +#### Configure Wallpaper + +For this guide, I have used the “[GNOME AGAIN][12]” wallpaper. You can use any dark themed wallpaper of your choice. + +That’s all. + +If all goes well, your desktop should look like this. + +![Customize GNOME in Ubuntu - 2][13] + +Customize GNOME in Ubuntu – 2 + +If you do not want to customize more, simply apply the Icons and set the Ubuntu’s default Dark mode, your desktop still looks nice (see below). + +![GNOME Customization - Ubuntu - Default][14] + +GNOME Customization – Ubuntu – Default + +This is just a guide and outlining the settings. You can play around with many settings of Arc Menu and GNOME tweaks settings to make it more personalized for you. You can even apply many GTK3 icon themes or shell themes as well. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/customize-gnome-ubuntu-2020-2/ + +作者:[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/2020/11/customize-gnome-ubuntu-2020/ +[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/Customize-GNOME-in-Ubuntu-1.jpg +[3]: https://extensions.gnome.org/ +[4]: https://www.debugpoint.com/2018/05/customize-your-ubuntu-desktop-using-gnome-tweak/ +[5]: https://extensions.gnome.org/extension/1160/dash-to-panel/ +[6]: https://extensions.gnome.org/extension/1503/tray-icons/ +[7]: https://extensions.gnome.org/extension/750/openweather/ +[8]: https://extensions.gnome.org/extension/19/user-themes/ +[9]: https://extensions.gnome.org/extension/1228/arc-menu/ +[10]: https://www.debugpoint.com/wp-content/uploads/2020/11/Arc-Menu-Settings.jpg +[11]: https://www.gnome-look.org/p/1425426/ +[12]: https://www.gnome-look.org/p/1043483/ +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/Customize-GNOME-in-Ubuntu-2.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/GNOME-Customization-Ubuntu-Default.jpg From c8e2bf4c165f423398d347282b23853df98919a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:10:53 +0800 Subject: [PATCH 1778/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.10=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20Customize=20GNOME=2040=20Desktop=20to=20Look=20Like=20macOS?= =?UTF-8?q?=20[Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ize GNOME 40 Desktop to Look Like macOS [Guide].md | 247 ++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md diff --git a/sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md b/sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md new file mode 100644 index 0000000000..80b5e0f38f --- /dev/null +++ b/sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md @@ -0,0 +1,247 @@ +[#]: subject: "Customize GNOME 40 Desktop to Look Like macOS [Guide]" +[#]: via: "https://www.debugpoint.com/gnome-40-macos-look-1/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Customize GNOME 40 Desktop to Look Like macOS [Guide] +====== + +**A quick guide for you to help you customizing the GNOME 40 desktop to look like macOS.** + +Ever since the GNOME 40 desktop was released, I was wondering whether it is even possible to make this desktop look like macOS. It seems we can do it as close as possible to look like macOS. Here’s how. + +There’s always debate that why people are so fascinated to make Linux Desktop look like macOS? If you want MacOS, then get a Mac. Well, keeping that debate aside, I ran some experiments to see whether the GNOME 40 and associated extension ecosystem evolved enough to make it look like macOS. + +The power of any Linux desktop is customization. And among the popular desktops such as KDE, GNOME, Deepin, Budgie – only KDE Plasma comes with built-in tools to customize it to anything you want. On the other hand, GNOME’s vanilla install doesn’t give you those options out-of-the-box. Hence to get the desired result, you need to depend on many extensions and tweaks. + +As GNOME 40 fundamentally changes the behavior of the desktop, the developers already ported their extensions to work on GNOME 40. And the majority of them working very well as of today. + +So, in this guide, we are going to use a bunch of extensions for GNOME 40 and the final desktop should look like this. + +![GNOME 40 Desktop Configuration - MacOS][1] + +GNOME 40 Desktop Configuration – MacOS + +![GNOME 40 Customization - MacOS - Workspace View][2] + +GNOME 40 Customization – MacOS – Workspace View + +### Steps to Customize GNOME 40 Desktop to Look Like macOS + +#### Setup Extensions and Tools + +As this guide requires the installation of GNOME extensions, you need to set up your system as per the Linux distribution. You can read our guide here on installing and using GNOME Extensions; Or, follow the quick guide below. + +Open a terminal and install the following. + +**Ubuntu** + +``` +sudo apt install chrome-gnome-shell +``` + +**Fedora** + +``` +sudo dnf install chrome-gnome-shell +``` + +You have to install an add-on based on your preferred browser. Install them using the below links: + +- [Chrome, Chromium, Google Chrome, Vivaldi][3] +- [Firefox][4] +- [Opera][5] + +Install the GNOME Tweak tool using the below command. + +**Ubuntu** + +``` +sudo apt install gnome-tweak-tool +``` + +**Fedora** + +``` +sudo dnf install gnome-tweak-tool +``` + +Install the [new Extensions Flatpak app][6] to manage extensions in GNOME 40 desktop. Go to Software and search for Extensions to install. + +#### Theme, Icon, and Cursor + +##### Download + +I have used the WhiteSur Shell Theme, BigSur Icon Theme, McMojave Cursors, and macOS BS Theme for Cairo Dock for this guide. + +Download the following packages and extract them. Open each of the below links and go to the Files section. Then download the light versions of the packages. If you want the dark theme, you can download the dark version as well. I have used the light theme for this guide. + +- [WhiteSur Shell Theme][7] +- [BigSur Icon Theme][8] +- [McMojave Cursors][9] +- [macOS BS Theme for Cairo Dock][10] + +After you download, extract them. Then create two directories named .icons and .themes under your home directory. Then copy the corresponding folders to .icons and .themes directories. The cursor theme goes to the .icons directory. Do not extract or copy the theme for the Cairo dock. + +#### Install Extensions and configuration + +##### Changes in Tweak Tool + +Open the GNOME Tweak Tool and make the following changes to apply the themes that you downloaded above. + +- On the Window Titlebars tab, turn on Maximize and Minimize and make the placement as Left. +- If you want to change the Font, you can. I kept the default Cantarell Regular font. +- On the Appearance tab change the Themes as below. + +![tweak settings for theme][11] + +tweak settings for theme + +##### Download and configure extensions + +We need a bunch of extensions for the desired looks. Here’s a list of the extensions compatible at the moment with GNOME 40. Install all of them using the below links. After installation, do the following configuration using the Extensions app. + +[Better OSD – GNOME 40][12] : Changes the OSD location in the desktop. + +- Change the horizontal and vertical position of the OSD as per your need so that it becomes like this on the right-top of the desktop. This depends on the resolution of your screen. + +![GNOME 40 OSD][13] + +GNOME 40 OSD + +[Notification Banner Position][14]: Move the default notifications from the center to any section you want. Only enable this extension, no change in settings is required. + +![Notification][15] + +Notification + +[Dynamic Panel Transparency][16]: Make your top panel transparent in GNOME 40 desktop. + +- Change the maximized opacity to 27% and unmaximized to 19% in the settings of this extension. + +[Frippery Move Clock][17]: Move the center clock to the right side of the panel. Only enable this extenstion. No setting change is required. + +[User Themes][18]: Ability to apply GNOME Shell theme. + +- Apply the WhiteSur-light Shell theme. + +![apply WhiteSur-light user theme][19] + +apply WhiteSur-light user theme + +[Blur My Shell][20]: Blurs the workspace and activtiy view and login screen. + +- On the settings, only turn on the blue for Dash and Overview and disable for Panel and others. Because this may conflict with the Transparent panel extension above. + +#### Dock Configuration + +There are many Docks available that are compatible with the GNOME desktop. For this guide, I have used the [Cairo Dock][21]with many customization options. Install it using the following command. + +**Ubuntu** + +``` +sudo apt install cairo-dock +``` + +**Fedora** + +``` +sudo dnf install cairo-dock +``` + +Download the Cairo dock theme for MacOS from the below link. + +[Cairo Dock theme for macOS look-a-like][10] + +After installation of the Cairo Dock, open the GNOME Tweak Tool and add Cairo dock as a startup application. + +From the application menu, launch Cairo Dock. And do the following settings. + +- Import the above theme from **Themes** Tab and **Apply** it. Browse to the downloaded tar file and apply. +- On the Configuration > Appearance Tab Choose **Icons as BigSur** and **Size=Big**. +- On the Configuration > Behaviour Tab change the settings as per the below image. + +![Cairo Dock Config - Behaviour][22] + +Cairo Dock Config – Behaviour + +- Change the **Addon Tab** applets which appear on the Dock as per your need. +- On the **Current Items** Tab, under the Bottom Dock, rearrange and remove anything you want. You can right-click on the items and remove them. +- Add a **custom Launcher** to launch the Application list of GNOME from Right Click on Dock > Add > Custom Launcher. +- On the Current Items Tab, under the Bottom Dock, modify the custom launcher and give a name. For example, for this guide – I have given the name “Finder” and Command as below which would bring up the GNOME Application list. + +![Cairo Dock custom launcher][23] + +Cairo Dock custom launcher + +``` +dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.shellDBusService.ShowApplications();' +``` + +After these configuration, your dock should look like below. + +![Cairo Dock Animation][24] + +Cairo Dock Animation + +#### Additional Configuration + +Time for a nice wallpaper. There are a bunch of wallpapers available for Mac in the below link. Grab one and apply. + +[download cool wallpapers][25] + +If you fancy some more customization, then you can opt for below. + +- For Wobbly windows animation when you drag, download, and apply [Compiz alike windows effect.][26] +- Install [Albert Launcher][27] for your desktop which is like KDE KRunner. + +### Closing Notes + +I hope this guide gives you a starting point for your GNOME 40 desktop customization. There are hundreds of themes, icons, and extensions available compatible with the new desktop workflow. You can create your own desktop look as you wish. + +Do let me know in the comments below, whether it helped you; Also let us know about some cool extensions, themes for everyone. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-40-macos-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://www.debugpoint.com/wp-content/uploads/2021/05/GNOME-40-Desktop-Configuration-MacOS.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/05/GNOME-40-Customization-MacOS-Workspace-View.jpg +[3]: https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep +[4]: https://addons.mozilla.org/en/firefox/addon/gnome-shell-integration/ +[5]: https://addons.opera.com/en/extensions/details/gnome-shell-integration/ +[6]: https://flathub.org/apps/details/org.gnome.Extensions +[7]: https://www.pling.com/p/1403328 +[8]: https://www.pling.com/p/1399044 +[9]: https://www.pling.com/p/1355701 +[10]: https://www.pling.com/p/1401527 +[11]: https://www.debugpoint.com/wp-content/uploads/2021/05/tweak-settings-for-theme.jpg +[12]: https://extensions.gnome.org/extension/4231/better-osd-gnome-40/ +[13]: https://www.debugpoint.com/wp-content/uploads/2021/05/GNOME-40-OSD.jpg +[14]: https://extensions.gnome.org/extension/4105/notification-banner-position/ +[15]: https://www.debugpoint.com/wp-content/uploads/2021/05/Notification.jpg +[16]: https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/ +[17]: https://extensions.gnome.org/extension/2/move-clock/ +[18]: https://extensions.gnome.org/extension/19/user-themes/ +[19]: https://www.debugpoint.com/wp-content/uploads/2021/05/apply-WhiteSur-light-user-theme.jpg +[20]: https://extensions.gnome.org/extension/3193/blur-my-shell/ +[21]: http://glx-dock.org/ +[22]: https://www.debugpoint.com/wp-content/uploads/2021/05/Cairo-Dock-Config-Behaviour.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2021/05/Cairo-Dock-custom-launcher.jpg +[24]: https://www.debugpoint.com/wp-content/uploads/2021/05/Cairo-Dock-Animation.gif +[25]: https://www.pling.com/p/1399346%E2%80%8B +[26]: https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/ +[27]: https://albertlauncher.github.io/installing/ From 5e968468acc6266d0173d5b4182c610a1c834fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:11:33 +0800 Subject: [PATCH 1779/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.11=20=E2=AD=90=EF=B8=8F=20Customize=20GNOME?= =?UTF-8?q?=20Desktop=20in=20Ubuntu=20with=20a=20Clean=20Look.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e GNOME Desktop in Ubuntu with a Clean Look.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md diff --git a/sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md b/sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md new file mode 100644 index 0000000000..98c4337ab5 --- /dev/null +++ b/sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md @@ -0,0 +1,173 @@ +[#]: subject: "Customize GNOME Desktop in Ubuntu with a Clean Look" +[#]: via: "https://www.debugpoint.com/customize-gnome-clean-look-2022-1/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Customize GNOME Desktop in Ubuntu with a Clean Look +====== + +**This tutorial gives you some easy steps to customize GNOME Desktop with a clean look with minimal effort. Here’s how.** + +If you are bored with the usual look of your favourite GNOME Desktop, then you are on the right page. Let’s install some themes icons and do some tweaks to uplift your desktop. We will transform this below desktop (GNOME 40.5 with Ubuntu 21.10). + +![Ubuntu Desktop with GNOME - Before Customization][1] + +Ubuntu Desktop with GNOME – Before Customization + +This customization session will use the great-looking Colloid GTK theme, Mkos-Big-Sur icons, a cool cursor theme with additional extensions, and Conky. + +### Customize GNOME Desktop and uplift it with a Clean Look + +#### Installation + +- First, setup the GNOME Shell Extenstion by running the following command from the terminal. + +``` +sudo apt install chrome-gnome-shell +``` + +- Then[open this page][2] and add the plugin to your browser (Chrome/Firefox) for GNOME Extension. + +![Add Browser Add-on for GNOME Shell Extension][3] + +Add Browser Add-on for GNOME Shell Extension + +- Install the Extensions Flatpak application which you may need to change settings of GNOME Extensions. + +[Install Extensions App][4] + +- After that, install GNOME Tweaks tool using the following command from the terminal. We will use this utility to change the Themes and other settings. + +``` +sudo apt install gnome-tweaks +``` + +- Download the Colloid GTK Theme from the below link. After download extract the files. Then copy the extracted folder to ~/.themes in your home directory. If the folder doesn’t exists, create it. After you done this, open a terminal and run the `install.sh` file. + +[Download Colloid GTK Theme][5] + +- Download the Mkos-Big-Sur icon theme from the below link. Once it is downloaded, extract the files and copy the parent folder to ~/.icons in your home directory. + +[Download Icon theme][6] + +- Download the below cursor theme and follow the same steps as above. Copy the extracted folder to the ~/.icons directory. Then open a terminal and run the `install.sh` file. + +[Download Cursor Theme][7] + +Now, it’s time to install Conky and some extensions that would eventually give your GNOME Desktop a clean look. To install Conky and a Conky manager, open the terminal prompt and run the below commands. + +``` +sudo apt install conky +``` + +``` +sudo add-apt-repository ppa:tomtomtom/conky-managersudo apt update && sudo apt install conky-manager2 +``` + +Now, open each of the below links for the extensions and install them in sequence. To install, open the page and click on the ON/OFF toggle switch (see below image). It would ask for your admin password and permission to install. + +- [Move Clock][8] +- [Dash to Dock][9] +- [Tray Icons][10] +- [Arc Menu][11] +- [User Themes][12] + +![GNOME Extension - Page][13] + +GNOME Extension – Page + +#### Configurations + +After completing the above steps, it’s time to do some basic configurations. You may see some of the changes when you installed the GNOME Extensions above. For example, the clock should already be shifted to the right side when installing the Move Clock extension above. + +**Tweaks** + +- Open the Tweaks tool (search from the application menu) and go to Apperance. + +- Change the Application theme to **Colloid Dark**, Cursors as **Vimix Cursors**, Icons as **Mkos-big-sur**and Shell Theme as **Colloid Dark**. If you want, you can choose the light theme and different option. + +![Apply Themes][14] + +Apply Themes + +**Arc Menu** + +- Open the Extenstion application and go to the Arch Menu Settings. + +- Change the menu layout to `Alternative Menu Layout > Raven`. + +- Change the application menu button to some icons you prefer. For this guide, I have downloaded a GNOME icon from [here][15]. And applied it via Arc Menu `Settings > Button Appearance > Browse Icon`. And it should look like this. + +![Arch Menu - Raven][16] + +Arch Menu – Raven + +- Enable Shrink the dash +- Customize windows counter indicator = Dashes +- Enable Customize Dash color +- Customize Opacity = Fixed +- Opacity to 12% + +- Open Dash to Dock settings from the Extension application. In the Appearance tab, change the below items: + +- In the position and size tab, change the Dock position to bottom and Icon size limit to 39px. + +- You can start Conky if you like and download a nice wallpaper which goes with Colloid theme. For this demonstration I have [chosen a nice grey-ish wallpaper][17] which looks stunning with the dark theme. + +### Result + +After all the configuration, and if all goes well, your desktop should look like this. + +![GNOME Customization in Ubuntu with a clean look-1][18] + +GNOME Customization in Ubuntu with a simple look-1 + +![GNOME Customization in Ubuntu with a clean look-2][19] + +GNOME Customization in Ubuntu with a simple look-2 + +![GNOME Customization in Ubuntu with a clean look-3][20] + +GNOME Customization in Ubuntu with a simple look-3 + +You can play around with different variants of this theme with several combinations of settings. And create a look that suits you better. + +I hope this guide helps you transform your GNOME desktop with a clean look. Let me know in the comments down below if you like this setup. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/customize-gnome-clean-look-2022-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://www.debugpoint.com/wp-content/uploads/2022/03/Ubuntu-Desktop-with-GNOME-Before-Customization.jpg +[2]: https://extensions.gnome.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Add-Browser-Add-on-for-GNOME-Shell-Extension.jpg +[4]: https://dl.flathub.org/repo/appstream/org.gnome.Extensions.flatpakref +[5]: https://github.com/vinceliuice/Colloid-gtk-theme/archive/refs/heads/main.zip +[6]: https://github.com/zayronxio/Mkos-Big-Sur/archive/refs/heads/master.zip +[7]: https://github.com/vinceliuice/Vimix-cursors +[8]: https://extensions.gnome.org/extension/2/move-clock/ +[9]: https://extensions.gnome.org/extension/307/dash-to-dock/ +[10]: https://extensions.gnome.org/extension/2890/tray-icons-reloaded/ +[11]: https://extensions.gnome.org/extension/3628/arcmenu/ +[12]: https://extensions.gnome.org/extension/19/user-themes/ +[13]: https://www.debugpoint.com/wp-content/uploads/2018/05/GNOME-Extension-Page.png +[14]: https://www.debugpoint.com/wp-content/uploads/2022/03/Apply-Themes.jpg +[15]: https://icons.iconarchive.com/icons/tatice/operating-systems/32/Gnome-icon.png +[16]: https://www.debugpoint.com/wp-content/uploads/2022/03/Arch-Menu-Raven.jpg +[17]: https://i.redd.it/1ttvv79apo851.png +[18]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-Customization-in-Ubuntu-with-a-simple-look-1.jpg +[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-Customization-in-Ubuntu-with-a-simple-look-2.jpg +[20]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-Customization-in-Ubuntu-with-a-simple-look-3.jpg From 18033b253b40e0543fa91d3f5eae01e9b0afe160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:12:04 +0800 Subject: [PATCH 1780/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221027.12=20=E2=AD=90=EF=B8=8F=20Customize=20GNOME?= =?UTF-8?q?=2042=20with=20A=20Polished=20Look.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Customize GNOME 42 with A Polished Look.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md diff --git a/sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md b/sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md new file mode 100644 index 0000000000..2401c9249d --- /dev/null +++ b/sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md @@ -0,0 +1,142 @@ +[#]: subject: "Customize GNOME 42 with A Polished Look" +[#]: via: "https://www.debugpoint.com/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, here’s 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] + +User Themes Extension + +![Floating Dock Extension][4] + +Floating Dock Extension + +- Secondly, install the [Materia Theme][5] using the below commands. You have to build it as it doesn’t 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//.icons` path. Create the .icons folder if it is not present. + +[Download Kora Icon Theme][7] + +![Kora Icon Theme][8] + +Kora Icon Theme + +- 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//.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//.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] + +Changes to Extensions + +- In addition, open the Floating dock settings and make the following changes. + +![Floating Dock Settings][12] + +Floating Dock Settings + +- Cursor: Bibata-Original-Ice +- Shell Theme: Materia +- Icon: Kora + +- Furthermore, open the [GNOME Tweak Tool][13], and go to the Appearance tab. Set the followings. + +- 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] + +Customize GNOME 42 – Final Look + +Enjoy a polished GNOME 42. Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/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 From dd175133be4570a8dfb09f2f9561a0c4539a6f45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:13:16 +0800 Subject: [PATCH 1781/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221026.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Ubuntu=20Unity=2022.10=20Review=20A=20Promising=20=E2=80=9COffi?= =?UTF-8?q?cial=E2=80=9D=20Start.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Unity 22.10 Review A Promising “Official” Start.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md diff --git a/sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md b/sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md new file mode 100644 index 0000000000..7c3ed35f1f --- /dev/null +++ b/sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md @@ -0,0 +1,130 @@ +[#]: subject: "Ubuntu Unity 22.10 Review: A Promising “Official” Start" +[#]: via: "https://www.debugpoint.com/ubuntu-unity-22-10-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu Unity 22.10 Review: A Promising “Official” Start +====== + +**We review Ubuntu Unity 22.10, which becomes an official Ubuntu flavour from this release onwards.** + +For the fans of Unity desktop, it’s a piece of good news. Ubuntu Unity 22.10 Kinetic Kudu became the official Ubuntu flavour featuring Unity desktop after Canonical officially abandoned it on April 2018. You can now enjoy the officially supported Unity desktop with an Ubuntu base. + +That means you get the usual security and package updates following the Ubuntu release schedule. + +I did a hands-on on the official Ubuntu Unity desktop, and here’s what I found. + +![Ubuntu Unity 22.01 Login Screen][1] + +Ubuntu Unity 22.01 Login Screen + +### Ubuntu Unity 22.10 Review + +At its core, Ubuntu Unity 22.10 features Linux Kernel 5.19, and the core modules are aligned with Ubuntu 22.10. The desktop version is Unity 7, which is the current stable version. + +However, its successor UnityX is still under development for more than a year, so hopefully, you will get a more advanced Unity desktop in the future. + +#### First look and themes + +At first glance, you should notice the purple-based Ubuntu Unity with the Kinetic Kudu mascot. The left bar is static and includes only the essential items (LibreOffice & Settings). The shortcut to global search is at the top of the sidebar. The top bar contains the power menu, network, calendar and time widgets. And the Trash shortcut is at the bottom of the left bar. + +![Unity Global Search][2] + +Unity Global Search + +The default theme is Yaru dark with a purple-based colour combination. Which I believe doesn’t look good with orange borders in several controls (text box, etc.). In addition, the Yaru and Yaru dark both are strict light and dark themes. That means you can’t have a mix of a light theme with a dark title bar. + +However, the team also includes the good ol’ Ambiance and Radiance themes which you can easily apply with the Unity Tweak Tool (requires installation) – this would give you the good ol’ Ubuntu feel. + +![Yaru Dark Theme in Ubuntu Unity 22.10][3] + +Yaru Dark Theme in Ubuntu Unity 22.10 + +![Ambiance theme brings back the old days][4] + +Ambiance theme brings back the old days + +The main attraction of Unity is two significant items. The global search via HUD and the global menu at the top bar. In this release, you get both of them. This is an ideal desktop for those who want clean app windows and more screen space. + +![Unity Global search inside app options][5] + +Unity Global search inside app options: one of the best features of Unity + +Furthermore, a new feature adds a tweak at the top bar where you can switch the themes without launching the Unity Tweak tool. However, this option is only visible for the Yaru theme for some strange reason. + +![New option to switch accent color and theme][6] + +New option to switch accent colour and theme + +#### Applications + +If you are new to Ubuntu Unity, you should know that this distro doesn’t have any native apps of its own. It ships basic apps, which most users need. + +However, there is a change in the 22.10 version. Earlier (when it was unofficial), Ubuntu Unity was shipping some GNOME Apps as default. Since the implementation of libadwaita and moving to GTK4, the team now replaced most of them with the native-MATE applications. For example, the Pluma text editor from MATE is now part of Unity. + +Other than that, Firefox Snap and Thunderbird [email client][7] is added as default, also LibreOffice suite. + +Thanks to the above apps, the ISO size is less than 3 GB, and performance is way faster. + +### Performance + +Overall, Ubuntu Unity 22.10 performance is speedy. Both in idle and heavy workload state. There are no fancy animations other than the places where it is needed. The HUD search is fast, and you can launch apps right away. + +In addition, window operations such as minimize, maximize, and drag feel snappy. There is no lag whatsoever. At idle, it uses 1GB of memory. In a heavy workload state, it increases up to 2.2GB, based on how many apps you are running. + +![Ubuntu Unity performance at idle state][8] + +Ubuntu Unity performance at idle state + +Ubuntu Unity is really outperforming vanilla Ubuntu. It feels faster than vanilla GNOME with Ubuntu. It might be one of the contenders for lightweight Linux distros in the coming days. + +However, the default installation takes 12 GB of disk space – which I believe is a little higher than other distros in the same category. + +### Summary + +- Linux Kernel 5.19 with Ubuntu 22.10 base +- Firefox 106 web browser (Snap) +- Flatpak is not installed by default +- Unity 7 desktop +- Nemo file manager +- Pluma text editor (1.26) +- LibreOffice 7.4 +- Thunderbird 102. +- Only available as X.Org (not yet ready for Wayland) + +### Wrapping Up + +Ubuntu Unity 22.10, being official, is a promising start for the Unity desktop to become more mature. From the development viewpoint, a colossal amount of work awaits to make it to UnityX (the next version of 7). Also, it only supports X.Org and no Wayland at the moment. Wayland might be a deal breaker for some users to adopt this as a daily driver for performance-centric workloads. + +That being said, Ubuntu Unity 22.10 is perfect for the average user for everyday work and perfect for smaller display form factors. If you like the Unity design, HUD search, global menu, and left action buttons – then it’s for you. + +Give it a try. + +You can download Ubuntu Unity 22.10 on the [official website][9]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/ubuntu-unity-22-10-review/ + +作者:[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/10/Ubuntu-Unity-22.01-Login-Screen-1024x638.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/Unity-Global-Search.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Yaru-Dark-Theme-in-Ubuntu-Unity-22.10.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Ambiance-theme-brings-back-the-old-days.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Unity-Global-search-inside-app-options.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-option-to-switch-accent-color-and-theme.jpg +[7]: https://www.debugpoint.com/best-email-client-linux-windows/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Ubuntu-Unity-performance-at-idle-state.jpg +[9]: https://cdimage.ubuntu.com/ubuntu-unity/releases/kinetic/release From 51b95dcdf4d02654d9d10b89ef596b904b2b4810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:13:47 +0800 Subject: [PATCH 1782/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221026.4=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20Python=203.11=20in=20Ubuntu=20and=20Other=20Related=20Linux.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...thon 3.11 in Ubuntu and Other Related Linux.md | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md diff --git a/sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md b/sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md new file mode 100644 index 0000000000..711b8e63e3 --- /dev/null +++ b/sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md @@ -0,0 +1,182 @@ +[#]: subject: "How to Install Python 3.11 in Ubuntu and Other Related Linux" +[#]: via: "https://www.debugpoint.com/install-python-3-11-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Python 3.11 in Ubuntu and Other Related Linux +====== + +**Planning to get Python 3.11 installed for your project work? Here’s how to install Python 3.11 in Ubuntu and related distros.** + +![][1] + +Python 3.11 was released on Oct 25, 2022, and claims to be 10-60% faster than the prior [Python 3.10][2] version. + +As always, the feature and improvement list are significantly high in 3.11. Here’s a brief. + +- Error tracebacks are not more definite, which gives you an exact statement that causes the error. +- Introduction of exception groups and new except* syntax +- You can add custom text in the base expression for better error handling in your code. +- Introduction of Variadic generic to allow array-like structure in numerical Python libraries )such as NumPy) +- Dictionary type TypedDict gets improvement where you can now specify whether individual dictionary items are mandatory or optional. +- Introduction of Self annotation, which allows classes to return their own type instance. + +And many more, which you can read in detail on the official [3.11 highlights page][3]. + +### Current Python versions in Linux Distros + +[Ubuntu 22.04 LTS][4] have Python 3.10, whereas the recently released [Ubuntu 22.10 Kinetic Kudu][5] also have the same. However, Kinetick Kudu will probably feature 3.11 within a few weeks. + +Also, [Fedora 37][6] (planned for Nov 1) already has the Python 3.11 RC2 and will get the version. + +So, if you are running Ubuntu 22.04 LTS, [Linux Mint 21][7] or any Ubuntu-LTS-based distros, here’s how you can install Python 3.11 via a PPA. + +**Note**: Use this method with caution. Make sure you know what you are doing because replacing the base Python version of a Linux distribution may cause an unstable system. Many default applications and packages depend on the 3.10 version. + +### How to install Python 3.11 in Ubuntu and related distros + +- Open a terminal prompt and add the following PPA. + +``` +sudo add-apt-repository ppa:deadsnakes/ppa +``` + +- Refresh the cache using the below command. + +``` +sudo apt update  +``` + +- And install Python 3.11 using the below command. + +``` +sudo apt install python3.11 +``` + +![Install Python 3.11 in Ubuntu 22.04 LTS][8] + +Install Python 3.11 in Ubuntu 22.04 LTS + +### Set Default Python Versions + +In theory, you can install multiple versions of Python in Linux distros, but the default can only be one version. Setting up Python 3.11 as default requires some additional steps. Follow along. + +However, before you do that, make sure you know which applications depend on Python 3.10. You can easily find it out using `apt-cache rdepends` command as below. + +``` +debugpoint@debugpoint-22-04:~$ apt-cache rdepends python3.10 +python3.10 +Reverse Depends: +python3.10-dbg +python3.10-venv +python3.10-full +libpython3.10-testsuite +idle-python3.10 +idle-python3.10 +python3.10-minimal +python3.10-doc +python3.10-dev +python3 +virtualbox +python3.10-venv +python3.10-full +libpython3.10-testsuite +kitty +idle-python3.10 +idle-python3.10 +python3.10-minimal +python3.10-doc +python3.10-dev +python3.10-dbg +python3-uno +python3-all +python3.10-dbg +virtualbox +stimfit +python3.10-venv +python3.10-full +python3-stfio +python3-escript-mpi +python3-escript +python3-csound +plasma-firewall +pitivi +obs-studio +liferea +libpython3.10-testsuite +libglib2.0-tests +kitty +idle-python3.10 +idle-python3.10 +cluster-glue +atac +rhythmbox-plugins +python3.10-minimal +python3.10-doc +python3.10-dev +python3 +python3-uno +python3-all +gedit +``` + +#### Use Python 3.11 as the default Python3 + +- First, check the current default version using the below command from the terminal. + +``` +python3 --version +``` + +- Use `update-alternatives` to create symbolic links to `python3` + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 +``` + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 +``` + +- And choose which one to use as Python3 via the command: + +``` +sudo update-alternatives --config python3 +``` + +![Setting up default python version to 3.11][9] + +Setting up default python version to 3.11 + +Now you can start using the latest Python in your current Ubuntu version for your work/study. You switch to the stock version using the above commands and change the versions at any time. + +If you switch to 3.11 using the above install method, then make sure you check all the necessary apps to see whether they are working fine. + +Finally, do let me know in the comment box if you run into problems. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-3-11-ubuntu/ + +作者:[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/10/py3112204-1024x576.jpg +[2]: https://www.debugpoint.com/install-python-3-10-ubuntu/ +[3]: https://docs.python.org/3.11/whatsnew/3.11.html +[4]: https://www.debugpoint.com/ubuntu-22-04-review/ +[5]: https://www.debugpoint.com/ubuntu-22-10/ +[6]: https://www.debugpoint.com/fedora-37/ +[7]: https://www.debugpoint.com/linux-mint-21-review/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Install-Python-3.11-in-Ubuntu-22.04-LTS.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/10/Setting-up-default-python-version-to-3.11.jpg From ae0d111e754236efb79e1c8d6c2cc1e77ffc3682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:15:05 +0800 Subject: [PATCH 1783/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221025.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Fedora=2037=20Top=20New=20Features=20and=20Release=20Wiki.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Fedora 37 Top New Features and Release Wiki.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md diff --git a/sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md b/sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md new file mode 100644 index 0000000000..8657b9fc85 --- /dev/null +++ b/sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md @@ -0,0 +1,142 @@ +[#]: subject: "Fedora 37: Top New Features and Release Wiki" +[#]: via: "https://www.debugpoint.com/fedora-37/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora 37: Top New Features and Release Wiki +====== + +**An article about Fedora 37 and its new features, release details and everything you need to know.** + +Fedora 37 development is wrapped up, and the BETA is [now out][1]. Hence the features and packages are final at this stage. + +In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule. + +- The beta was out on September 13, 2022. +- **Final Fedora 37 is planned for release on November 15, 2022.** + +![Fedora 37 Workstation with GNOME 43][2] + +Fedora 37 Workstation with GNOME 43 + +### Fedora 37: Top New Features + +#### Kernel + +**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][3]. + +The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time. + +**Next** up, the desktop environments are updated in this release. + +#### Desktop Environment + +Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as: + +- [Revamped quick settings][4] with pill-buttons +- Files (nautilus) 43 with GTK4 and libadwaita port +- Files with rubberband, emblems, responsive sidebar-like features +- [Updated GNOME Web with WebExtension API support][5] + +And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][6] to learn more. + +Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include: + +- An updated overview screen. +- Dynamic wallpaper for dark and light themes. +- Animated wallpaper support +- Multi-button mouse support +- Updated KDE Framework and applications. + +…and much more which you can read in detail in my [KDE Plasma 5.26 feature guide][7]. + +Since the lightweight desktop LXQt gets a stable update, 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition. + +In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.26**for the respective Fedora flavours. + +Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are. + +#### System wide changes + +The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports. + +Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour.  + +As I [reported earlier][8], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release. + +Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection.  + +Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features. + +Following the tradition, this release also features a [brand new wallpaper][9] with both night and day versions. I must say it looks awesome (see the above desktop image). + +Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated. + +The toolchain, apps and programming stack are updated as follows: + +- Glibc 2.36 and Binutils 2.38 +- Node.js 18.x +- Perl 5.36 +- Python 3.11 + +### Summary of features in Fedora 37 + +So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features: + +- Linux Kernel 5.19 +- GNOME 43 +- KDE Plasma 5.26 +- Xfce 4.16 +- MATE 1.24 +- LXQt 1.1.0 +- A preview image of the new web-based installer +- The SDDM display manager defaults to Wayland (in KDE Plasma and others) +- Official Raspberry Pi 4 support +- Fedora Core OS becomes the official flavour +- Key packages dropping 32-bit support +- And associated toolchain and programming language updates. + +If you have spare time, you can[give it a spin][10] or test drive. Just be cautious that it is still BETA. + +Also, If you are daring enough, you can upgrade to this release with **caution** because, y’know it’s BETA. The commands below will help you to do that. + +``` +sudo dnf install dnf-plugin-system-upgrade +sudo dnf system-upgrade download --ref --releasever=37 +``` + +For Kinoite, Silverblue and other immutable versions, use: + +``` +rpm-ostree rebase fedora:fedora/37/x86_64/silverblue +``` + +**So, what’s your favourite feature of this release? Let me know in the comment section.** + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-37/ + +作者:[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://debugpointnews.com/fedora-37-beta/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg +[3]: https://www.debugpoint.com/linux-kernel-5-19/ +[4]: https://www.debugpoint.com/gnome-43-quick-settings/ +[5]: https://www.debugpoint.com/gnome-web-43-tab-view/ +[6]: https://www.debugpoint.com/gnome-43/ +[7]: https://www.debugpoint.com/kde-plasma-5-26/ +[8]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ +[9]: https://debugpointnews.com/fedora-37-wallpaper/ +[10]: https://getfedora.org/workstation/download/ From a951a2ac4240613a8303cd8ccbad6833cd4632c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:15:30 +0800 Subject: [PATCH 1784/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221025.3=20=E2=AD=90=EF=B8=8F=20How=20to=20Change?= =?UTF-8?q?=20Login=20Screen=20Background=20in=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Change Login Screen Background in Ubuntu.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md diff --git a/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md new file mode 100644 index 0000000000..af8661718c --- /dev/null +++ b/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md @@ -0,0 +1,107 @@ +[#]: subject: "How to Change Login Screen Background in Ubuntu" +[#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Change Login Screen Background in Ubuntu +====== + +**This is how you can get rid of that boring login screen background in Ubuntu and set a nice picture to welcome you each time you log on.** + +I, always think that when you boot up your system, a nice login screen should greet you. That itself set the context of your upcoming work or activity that you are about to do. Although, I am not a Windows fan, but I admire how Windows 10 login background changes every day from Bing wallpapers, and it looks nice. Isn’t it? + +A while back, we covered how to [change login background in Fedora][1] and [elementary OS][2]. And now this guide explains how you change it in vanilla Ubuntu with GNOME Shell. + +Login screen background is part of display manager property. This guide uses a script in GitHub created by a user to make it seamless and easy for average user. Otherwise, you have to change the Gnome Display Manager (gdm) CSS files manually after extracting the `.gresource` file, then compile it – which is complicated in general. + +![Ubuntu Login screen - before change][3] + +Ubuntu Login screen – before change + +### Change Login Background in Ubuntu + +- Open a terminal (press CTRL+ALT+T) + +- Download the [GitHub repo][4] using the below command. + +``` +wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background +``` + +**Note**: If you do not have wget, install it using `sudo apt install wget` + +**Ubuntu 22.04 Jammy Jellyfish** users require an additional code change to make it work because the developer did not fix it in GitHub. So here’s what you need to do. + +Open the `change-gdm-background` file via gedit. Then, go to the following line (#15) and add `|jammy`. + +![script change to allow jammy][5] + +script change to allow jammy + +Then, go to the following two lines (#144 and #184). Change `gdm3.css` to `gdm.css`. As shown below. + +![correct the css file for gdm][6] + +correct the css file for gdm + +And finally, save the file and follow the instructions as below. This workaround is only for Ubuntu 22.04 login screen change. + +- Change the permission of the script to make it executable + +``` +chmod +x change-gdm-background +``` + +- Then change the login background wallpaper in Ubuntu using the below command. Change the path of your image. + +``` +sudo ./change-gdm-background ~/Pictures/tree.jpg +``` + +This step might require `libglib2.0-dev` package, which will be installed automatically. This is required to extract/compile the `.gresource`. + +And after installation, it would prompt you to restart gdm. Press N, to be on the safe side. + +- Log out and you can see the changed background in Ubuntu. +- If you are not seeing the change, try restarting your system and then try to log in. + +![Ubuntu Login screen After Change][7] + +Ubuntu Login screen with background After Change + +### Restore the stock login screen + +The script also provides a feature to revert the stock login screen. It takes a backup of your `.gresource` file before changing it. So, from the terminal, simply run below to restore the original login screen. + +``` +sudo ./change-gdm-background --restore +``` + +That should change the login screen back to its original form. + +Let me know whether it worked for you using the comment box below. This should work for all the latest versions of Ubuntu Linux. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/change-login-background-ubuntu/ + +作者:[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/2021/09/change-login-background-fedora/ +[2]: https://www.debugpoint.com/2021/07/change-lock-login-screen-background-elementary-os/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-before-change-1024x539.jpg +[4]: https://github.com/thiggy01/change-gdm-background +[5]: https://www.debugpoint.com/wp-content/uploads/2022/09/script-change-to-allow-jammy.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/correct-the-css-file-for-gdm.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-After-Change-1024x538.jpg From d3c2a50039531733da489e689f76c0bba0557629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:53:42 +0800 Subject: [PATCH 1785/3123] =?UTF-8?q?Rename=2020221024.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20How=20to=20display=20commits=20created=20on=20a=20s?= =?UTF-8?q?pecific=20day=20with=20the=20git=20log=20command.md=20to=202022?= =?UTF-8?q?1024.3=20=E2=AD=90=EF=B8=8F=20How=20to=20display=20commits=20cr?= =?UTF-8?q?eated=20on=20a=20specific=20day=20with=20the=20git=20log=20comm?= =?UTF-8?q?and.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...display commits created on a specific day with the git log command.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md => 20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md} (100%) diff --git a/sources/tech/20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md b/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md similarity index 100% rename from sources/tech/20221024.0 ⭐️ How to display commits created on a specific day with the git log command.md rename to sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md From 7811fc08118c67584b18f6083b3fa29160d9f2ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:54:17 +0800 Subject: [PATCH 1786/3123] =?UTF-8?q?Rename=2020221024.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20A=20PWA=20is=20?= =?UTF-8?q?the=20web=20browser.md=20to=2020221024.4=20=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20A=20PWA=20is=20the=20web?= =?UTF-8?q?=20browser.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...WA is the web browser.md => 20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md => 20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md} (100%) diff --git a/sources/tech/20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md b/sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md similarity index 100% rename from sources/tech/20221024.1 ⭐️⭐️⭐️ A PWA is the web browser.md rename to sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md From bed8fa3ade704707794fbba656f4344226738be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 03:54:58 +0800 Subject: [PATCH 1787/3123] =?UTF-8?q?Rename=2020221024.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Remixing=20Linux=20for=20blind=20?= =?UTF-8?q?and=20visually=20impaired=20users.md=20to=2020221024.5=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Remixing=20Linux=20for?= =?UTF-8?q?=20blind=20and=20visually=20impaired=20users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/talk/{20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md => 20221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md} (100%) diff --git a/sources/talk/20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md b/sources/talk/20221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md similarity index 100% rename from sources/talk/20221024.2 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md rename to sources/talk/20221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md From 1035a814898abffcc8e00d166eeafcac7dbc390f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 04:08:00 +0800 Subject: [PATCH 1788/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221026.5=20=E2=AD=90=EF=B8=8F=20Vanilla=20OS=20Mor?= =?UTF-8?q?e=20Than=20Just=20Vanilla=20GNOME=20With=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...OS More Than Just Vanilla GNOME With Ubuntu.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md diff --git a/sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md b/sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md new file mode 100644 index 0000000000..13f4fd9dda --- /dev/null +++ b/sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md @@ -0,0 +1,132 @@ +[#]: subject: "Vanilla OS: More Than Just Vanilla GNOME With Ubuntu" +[#]: via: "https://news.itsfoss.com/vanilla-os-beta/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Vanilla OS: More Than Just Vanilla GNOME With Ubuntu +====== + +Vanilla OS is Ubuntu on stock GNOME with on-demand immutability and package selection freedom. Sounds fun? Read more here. + +![Vanilla OS: More Than Just Vanilla GNOME With Ubuntu][1] + +That was precisely my thought when I first came across Vanilla OS. + +When**Mirko Brombin**, the creator of [Bottles][2], announced it on Twitter, that had me interested in it 😎 + +I joined their Discord channel and hopped in to become a tester. While I did not point out anything new that other testers already did, keeping an eye on the project development is fun. + +Back to the vital question: **What is Vanilla OS?** + +**Vanilla OS aims to offer a clean vanilla GNOME experience with on-demand immutability.** + +Sounds interesting? Let me tell you a few details about it while I give its first open beta build a try. + +> 💡Vanilla OS plans to have a stable release in November. It will follow Ubuntu point releases. So, you can expect **two releases per year**. For example, you can upgrade from Ubuntu 22.04 to Ubuntu 22.10 and further. You should not replace it as a daily driver unless you know what you are doing. + +### Vanilla OS: Yet Another Ubuntu-based Distro? + +![vanilla os home][3] + +**Yes and no.** + +For starters, I see the following unique reasons to give it a try: + +- To get a **stock GNOME experience** on top of Ubuntu. (Fedora is an excellent option too, but not for everyone!) +- **Allows you to choose and enable Flatpak/Snap/AppImage** with its first-time setup after installation. +- **On-demand immutability**, meaning you can make the system read-only to prevent critical changes from third-party applications and updates. +- **A new package manager** (apx) allows you to install packages inside a managed container by default. + +The first-time setup process is a breeze to experience. + +> ℹ️Currently, it uses the Calamares installer. They intend to replace it with Jade, used in **Crystal Linux**. + +![vanilla os installer][4] + +The more distributions do things like this; I believe more users would be happy to get on board with Linux. + +![][5] + +Vanilla OS Package Manager Selection + +Of course, distributions like Ubuntu MATE and Pop!_OS have already put in great efforts, and Vanilla OS also adds some improvement to the table. + +![Vanilla os color selection][6] + +It looks like a pretty experience! 😊 + +Once you finish the first-time setup,  you have nothing else to worry about. You get the usual GNOME desktop with nice wallpapers out of the box by **Patrik Kramolis.** + +![vanilla os home][7] + +Image Credits: Mirko Brombin + +Next, I tried checking the on-demand immutability, which you can see and tweak using the following commands: + +![vanilla OS terminal][8] + +You can explore more about the utility (almost) that makes this possible on [GitHub][9]. + +Next, coming to the new package manager, I like the concept of distrobox under the hood, making this possible with apx. + +The Distrobox creator **Luca di Maio** is also involved in developing Vanilla OS. + +However, when installing a package with apx, you need to initialize the container using the command: + +``` +apx init +``` + +If it had done it automatically, I would call it intuitive. + +![vanilla os apx][10] + +Of course, I'm not aware of the technical limitations. But, for the user end, that would feel seamless! + +Overall, a package manager that installs applications utilizing a container, getting the ability to choose your package managers, on-demand immutability, and vanilla GNOME make it seem like a good deal to keep an eye on. + +### The Road Ahead: First Impressions + +I can see it as my daily driver once it hits the stable release. + +**The reason is**: I always like the stock GNOME experience, and I do not have to deal with Fedora's regular upgrades. + +Of course, once I get to use the stable release, I can give you a verdict on the entire user experience. + +Until then, I'd say it is a project that I believe a lot of users will appreciate 👏 + +You can download the ISO by joining its Discord channel for now. The ISO is not yet publicly available to all. Take a look at its [documentation][11] if you are curious. + +[Vanilla OS][12] + +However, as per the roadmap, they plan to have a release candidate soon enough. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vanilla-os-beta/ + +作者:[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/content/images/size/w1200/2022/10/first-look-at-vanilla-os.jpg +[2]: https://usebottles.com +[3]: https://news.itsfoss.com/content/images/2022/10/vanillaos.jpg +[4]: https://news.itsfoss.com/content/images/2022/10/vanillaos-installer.jpg +[5]: https://news.itsfoss.com/content/images/2022/10/choosing-package-vanillaos.png +[6]: https://news.itsfoss.com/content/images/2022/10/vanilla-os-first-setup.png +[7]: https://news.itsfoss.com/content/images/2022/10/vanillaos-wallpaper.jpg +[8]: https://news.itsfoss.com/content/images/2022/10/Screenshot-from-2022-10-25-12-54-29.png +[9]: https://github.com/Vanilla-OS/almost +[10]: https://news.itsfoss.com/content/images/2022/10/apx-install.jpg +[11]: https://documentation.vanillaos.org +[12]: https://vanillaos.org/roadmap From b0f5947fe97ab52b70b85a54f0b688e5c778ae09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 04:13:44 +0800 Subject: [PATCH 1789/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221027.13=20=E2=AD=90=EF=B8=8F=20Canonical's=20Add?= =?UTF-8?q?ing=20a=20Neat=20Ability=20to=20the=20Steam=20Snap=20App=20for?= =?UTF-8?q?=20Gamers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...at Ability to the Steam Snap App for Gamers.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md diff --git a/sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md b/sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md new file mode 100644 index 0000000000..77f6676cee --- /dev/null +++ b/sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md @@ -0,0 +1,88 @@ +[#]: subject: "Canonical's Adding a Neat Ability to the Steam Snap App for Gamers" +[#]: via: "https://news.itsfoss.com/steam-snap-app-mesa/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Canonical's Adding a Neat Ability to the Steam Snap App for Gamers +====== + +Canonical is making reasonable efforts with its Steam snap app. A snap app that you can't hate? + +![Canonical's Adding a Neat Ability to the Steam Snap App for Gamers][1] + +Gaming on Linux is getting popular and evolving every year, with Valve and the Steam Deck playing a significant part. + +According to the [Steam Hardware and Software survey][2], Ubuntu remains one of the most popular Linux distros for gaming. + +The company behind Ubuntu – Canonical – is taking the necessary steps to make gaming on Ubuntu a seamless experience. They announced the launch of Steam as a Snap application in **April 2022** which is currently in 'early access'. + +![steam snap][3] + +Now, Canonical aims to elevate the gaming experience by letting users choose different Mesa graphics stacks effortlessly. + +### Easy Switch to Latest Mesa for Best Experience + +[Mesa][4] is an integral part of gaming on Linux, especially for AMD and Intel users. It is an open-source graphics stack that includes a range of graphics APIs like OpenGL and Vulkan to help run your favorite games. + +Since the Steam Snap bundles all the required dependencies and supports 32-bit libraries, users don't need to do anything manually to get things running. The Steam snap is containerized and isolated from the operating system. + +**But what about the Mesa graphics drivers?** + +For now, the Snap app installs the latest Mesa driver available in [oibaf's PPA repo][5] by default. You get the bleeding-edge drivers out of the box. But, you cannot change it quickly. + +In a [blog post][6] by Canonical, they mentioned some improvements to the Steam's snap app that makes this easy. + +It includes the introduction of **Content snaps** as an easier way to make use of Mesa drivers. + +Unlike regular dependencies, Content snaps are packaged separately from the main Steam snap. They can be utilized by other applications and thus prevent bloat or duplication. Moreover, they are also updated independently since they aren't directly bundled with the Steam snap. + +There are three Mesa driver stacks available - + +- **oibaf-latest** – Default bleeding-edge release +- **kisak-turtle**– Stable release +- **kisak-fresh** –  Latest point release, highly unstable + +Users can customize their Mesa stack by easily switching between them anytime. To play the latest games on the market, users may need to use the bleeding-edge release to avoid issues while gaming. On the other hand, the stable build should do for older titles. + +The blog post mentions: + +> This will enable users to choose their preferred Mesa track independently of the upgrade track of the Steam snap. + +So, users should be able to toggle between the available driver stacks. + +Sounds useful, isn't it? 😃 + +> 💡This feature is still being worked on and should be added to the stable channel soon along with Steam snap. As of now, it is available through the beta channel. + +### Thoughts?🤔 + +Snaps may not appeal to all Linux users due to some of their disadvantages. + +But gamers may find Steam as a snap quite helpful. The option to choose the preferred graphics stack should be very welcoming to users. Ubuntu seems to be taking gaming quite seriously. + +**Via:**[omg!ubuntu!][7] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/steam-snap-app-mesa/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/steam-snap-app-upgrade-for-gamers.png +[2]: https://store.steampowered.com/hwsurvey?platform=linux +[3]: https://news.itsfoss.com/content/images/2022/10/steam-snap.jpg +[4]: https://itsfoss.com/install-mesa-ubuntu/ +[5]: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers +[6]: https://canonical.com/blog/what-the-steam-snap-is-evolving +[7]: https://www.omgubuntu.co.uk/2022/10/canonicals-steam-snap-will-let-you-switch-between-different-mesa-stacks From 5bc807de43992799c4588eb96612e925478ca3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 04:14:28 +0800 Subject: [PATCH 1790/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221028.3=20=E2=AD=90=EF=B8=8F=20A=20New=20Web=20Br?= =?UTF-8?q?owser=20For=20P2P=20Internet=20Experience=20With=20Secure=20Mes?= =?UTF-8?q?saging=20and=20Bitcoin=20Lightning=20Network.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ure Messaging and Bitcoin Lightning Network.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md diff --git a/sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md b/sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md new file mode 100644 index 0000000000..b31ef4cc07 --- /dev/null +++ b/sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md @@ -0,0 +1,87 @@ +[#]: subject: "A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network" +[#]: via: "https://news.itsfoss.com/impervious-browser/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network +====== + +An open-source browser that promises P2P decentralized internet experience with bitcoin integration. + +![A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network][1] + +P2P services for chat, video calls, and document editing are not yet mainstream. + +However, the idea for a P2P connection provides better control over the data and security and prevents censorship. + +Impervious browser is an exciting initiative that gives you access to P2P tools and a decentralized experience. The tools include: + +- **End-to-end encrypted chat.** +- **Encrypted P2P video and audio calls.** +- **Live Docs.** + +Additionally, it supports the [Bitcoin lightning network][2], which facilitates instant Bitcoin transactions. If you are a fan of cryptocurrency integrations, this could sound interesting, or it's just another fancy addition for most common users. + +### Impervious Browser: How Does it Work? + +Technically, the browser is a customized Mozilla Firefox experience. So, you can expect the same features and capabilities. + +The browser relies on Decentralized Identifiers (DIDs), i.e., decentralized digital IDs, to verify a person or connect with them. + +![impervious DID][3] + +Digital Identity + +You can find the DID from the settings, which you can share with anyone on the web to add you as a contact. + +Once you do that, you can send a message, initiate a video call, and collaborate with the live document feature for any work. + +![][4] + +Connection Request with a contact + +And this is what a conversation looks like: + +![][5] + +For users fond of Bitcoin transactions, you can utilize the Lightning network for super-fast payments while in a video call or message conversation. + +You need to connect to a lightning node to use the functionality. If you do not have one, Impervious supports creating a [Voltage Lightning Node][6]. + +I haven't tried it. So, if you are someone who uses cryptocurrency and appreciates the integration while collaborating with people through Impervious's P2P network, it should be a seamless experience. + +### Download Impervious + +> 💡Impervious is in the Alpha stage. You can download it but it may not work as you would expect. + +The Impervious browser is available for Linux and macOS (M1/Intel). They intend to release a Windows build soon. + +You can download the latest build from its [GitHub releases section][7] or head to its official website. + +[Impervious][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/impervious-browser/ + +作者:[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/content/images/size/w1200/2022/10/first-look-at-impervious-browser.png +[2]: https://lightning.network +[3]: https://news.itsfoss.com/content/images/2022/10/impervious-did.png +[4]: https://news.itsfoss.com/content/images/2022/10/impervious-connection-request.png +[5]: https://news.itsfoss.com/content/images/2022/10/impervious-browser-messages.png +[6]: https://voltage.cloud +[7]: https://github.com/imperviousai/imp-browser +[8]: https://www.impervious.ai From d788a6c15cfe02762c3e3997174376373fb5c2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 04:15:22 +0800 Subject: [PATCH 1791/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221028.4=20=E2=AD=90=EF=B8=8F=20Oh=20No!=20Fedora?= =?UTF-8?q?=2037=20Release=20Gets=20Delayed.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Oh No! Fedora 37 Release Gets Delayed.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md diff --git a/sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md b/sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md new file mode 100644 index 0000000000..fb27469873 --- /dev/null +++ b/sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md @@ -0,0 +1,63 @@ +[#]: subject: "Oh No! Fedora 37 Release Gets Delayed" +[#]: via: "https://news.itsfoss.com/fedora-37-release-delay/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Oh No! Fedora 37 Release Gets Delayed +====== + +Fedora 37 release is getting delayed for a security fix. Here's what you should know about it. + +![Oh No! Fedora 37 Release Gets Delayed][1] + +The Fedora team usually targets an early release and a delayed date for their schedule. + +This time around, Fedora 37 is getting pushed back with an unexpected delay. From a release target date of 18th October to 25th October, and then 1st November. + +Now, we have to wait until **15 November 2022** to download Fedora 37 available. + +But why the delay? Isn't the testing complete for Fedora 37? What is the hold-up? + +> 💡**OpenSSL has announced a new version that addresses a critical security bug**. The new version is scheduled to release on November 1, 2022. + +Until the release, Fedora's team is unaware of the details regarding the security fix. It could be significant, so Red Hat recommends waiting for it before releasing Fedora 37. + +**Here's what Fedora's Program Manager mentions in a [blog post][2]:** + +> When a security issue is discovered, this information is often shared with the project confidentially. This allows the developers to fix the issue before more people know about it and can exploit it. Projects then share information with downstreams so they can be ready.Ironically, Fedora’s openness means we can’t start preparing ahead of time. All of our build pipelines and artifacts are open. If we were to start building updates, this would disclose the vulnerability before the embargo lifts. As a result, we only know that OpenSSL considers this the highest level of severity and Red Hat’s Product Security team strongly recommended we wait for a fix before releasing Fedora Linux 37. + +#### Time Needed to Test the Release Candidate With OpenSSL's New Version + +The developers need enough time to test Fedora 37's release candidate after they update the necessary package. + +While they could rush it, they intend to push a release only after they are confident about it: + +> The OpenSSL project team plans to publish the security fix about 48 hours before we’d make the go/no-go decision for an 8 November target. Factoring in time to build the updated openssl package and generate a release candidate, that gives us about a day and a half to do testing. That’s not enough time to be comfortable with a change to such an important package. + +Considering it is an important update, it is an excellent decision to test it and prepare it for release. + +Of course, the delay could be for nothing if the security fix is not a massive one. + +However, I believe it is better to have a release that provides a secure experience out of the box instead of having a vulnerable package. + +What do you think about Fedora 37 release being delayed? Share your thoughts in the comments down below. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fedora-37-release-delay/ + +作者:[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/content/images/size/w1200/2022/10/fedora-37-delayed.png +[2]: https://fedoramagazine.org/fedora-linux-37-update/ From 40c9d844b1ed9d25718e2ccbff3b4c6eb012933b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 30 Oct 2022 04:15:57 +0800 Subject: [PATCH 1792/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221028.5=20=E2=AD=90=EF=B8=8F=20Zorin=20OS=2016.2?= =?UTF-8?q?=20Released,=20It's=20All=20About=20Useful=20Refinements.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Released, It's All About Useful Refinements.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md diff --git a/sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md b/sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md new file mode 100644 index 0000000000..9d9b361666 --- /dev/null +++ b/sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md @@ -0,0 +1,116 @@ +[#]: subject: "Zorin OS 16.2 Released, It's All About Useful Refinements" +[#]: via: "https://news.itsfoss.com/zorin-os-16-2-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Zorin OS 16.2 Released, It's All About Useful Refinements +====== + +Zorin OS 16.2 is a sweet upgrade with essential refinements across the board. + +![Zorin OS 16.2 Released, It's All About Useful Refinements][1] + +Zorin OS is one of the [most beautiful Linux distributions][2] based on the Ubuntu LTS releases. + +Not just limited to that, we think of it as one of the finest distros for beginners: + +The latest version, Zorin OS 16.2, is now available to download. + +### Zorin OS 16.2: What's New? + +There are several significant improvements, those include: + +- **Easier to install Windows apps** +- **Improved compatibility with Microsoft office documents** +- **Improved Zorin Connect** +- **GDevelop tool added to Zorin OS Education** + +> 💡The Zorin OS 16 series will get software updates and patches until April 2025. + +#### Easier to Install Windows Apps + +Zorin OS could already detect .exe files and guide you to install them on your distribution using Wine under the hood. + +Now, it gets easier. + +![zorin os windows app support menu][3] + +A new "**Windows App Support**" menu sits under the "**System Tools**" section. + +You can enable Windows app support through it. + +Along with the new menu, the database to detect Windows installer files has also expanded to guide you to a better user experience. + +For instance, launching Windows installers for Epic Games Store or GOG Galaxy directs you to install [Heroic Games Launcher][4]. + +![zorin os heroic games][5] + +### Office Experience Enhancements + +Zorin OS has added alternatives to popular proprietary fonts to improve compatibility with Microsoft Office documents. + +For example, [Carlito][6] is an alternative to Calibri (the default typeface in Office 365). + +### Zorin Connect Gets Better + +Zorin Connect is a valuable utility that helps you connect your mobile device to a Zorin OS-powered computer. + +It already offered a seamless experience. Now, you can view your computer's battery status on your phone, which should be handy for laptop users. + +The battery stats are available by default in Zorin OS 16.2. If you have an older version of Zorin OS, you should update the Zorin Connect app first. + +![zorin connect][7] + +Next, you need to navigate to the paired phone battery option in the Zorin Connect computer app and enable "**Share Statistics**". + +### GDevelop in Zorin OS Education + +![zorin os gdevelop][8] + +Zorin OS offers different editions for various users, and the education variant provides all the valuable tools to learners. + +[GDevelop][9] is a new tool to the list. It is a no-code game development software that reduces the learning curve for programming and helps boost creativity. + +### 🛠️ Other Improvements + +In addition to the highlights, other significant changes include: + +- Updated [LibreOffice 7.4][10] app with WebP support +- Updated applications and graphics drivers +- Added a maximize effect and refined physics for Jelly Mode +- Newer hardware compatibility + +### Download Zorin OS 16.2 + +You can upgrade to the latest version from the Software Updater. If it is a fresh installation, download the ISO from its official website. + +[Zorin OS 16.2][11] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/zorin-os-16-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/content/images/size/w1200/2022/10/zoring-os-16-2-release.jpg +[2]: https://itsfoss.com/beautiful-linux-distributions/ +[3]: https://news.itsfoss.com/content/images/2022/10/zorin-os-16-2-menu.jpg +[4]: https://github.com/Heroic-Games-Launcher +[5]: https://news.itsfoss.com/content/images/2022/10/heroic-epic-zorin-os-16-2.png +[6]: https://www.fontsquirrel.com/fonts/carlito +[7]: https://news.itsfoss.com/content/images/2022/10/zorin-connect-battery-share-statistics.png +[8]: https://news.itsfoss.com/content/images/2022/10/gdevelop.jpg +[9]: https://gdevelop.io +[10]: https://news.itsfoss.com/libreoffice-7-4-release/ +[11]: https://zorin.com/os/download/ From 92895bf93b212ebea7b0c08cadad9f6b6f339808 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Oct 2022 10:12:53 +0800 Subject: [PATCH 1793/3123] RP @littlebirdnest https://linux.cn/article-15192-1.html --- ...o stable That's what Rhino Linux aims to be.md | 80 +++++++++++++++++++ ...o stable That's what Rhino Linux aims to be.md | 80 ------------------- 2 files changed, 80 insertions(+), 80 deletions(-) create mode 100644 published/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md delete mode 100644 translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md diff --git a/published/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md b/published/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md new file mode 100644 index 0000000000..485a46b7e9 --- /dev/null +++ b/published/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md @@ -0,0 +1,80 @@ +[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be" +[#]: via: "https://news.itsfoss.com/rhino-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "littlebirdnest" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15192-1.html" + +Rhino Linux:滚动发布但也很稳定的 Ubuntu +====== + +> 滚动发布的 Ubuntu 发行版?等等,什么? Rhino Linux 听起来不错…… + +![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1] + +Rhino Linux 将成为 [Rolling Rhino Remix][2] 的继任者。这个由 http.llamaz 构建的 Linux 发行版,提供了滚动发布的**非官方的** Ubuntu 变体版本。 + +需要澄清的是,该项目从未旨在取代其他稳定的发行版,而纯粹是一个充满乐趣的激情项目。 + +而随着人们开始将其用作日常使用并对其期望更多,开发人员决定将其变成一个严肃的项目。 + +Rhino Linux 作为它的继任者。那么,你对它的期待是什么? + +### 有请继任者 Rhino Linux + +其主要目标是提供稳定的 Ubuntu 体验,同时仍提供滚动发布模式。 + +目标仍保持不变,但 Rhino Linux 的基础将得到彻底改变。他们有可能使它成为一个令人印象深刻的滚动发布的 Ubuntu 发行版。 + +**听起来很令人兴奋!🤯** + +在其核心,Rhino Linux 将使用稍微修改过的 [Xfce][3] 版本作为其桌面环境;之所以选择它是因为它众所周知的稳定性和速度。 + +Rhino Linux 的创始人提到了以下几点: + +> 滚动版 Ubuntu 仍然是我们的核心理念。Rhino Linux 并不是从 Rolling Rhino Remix 中分离出来的,而是将它重新设想为更稳定、更成熟的发行版,它原本就应该以这种方式出厂。 + +![xfce 4.14][4] + +除此之外,[Pacstall][5] 将用作 Rhino Linux 上的默认包管理器及其存储库之一。 + +> 💡 Pacstall 是一个受 [AUR][6] 启发的 Ubuntu 包管理器。 + +Pacstall 的开发由其创始人 [Plasma][7] 领导。他还作为新开发人员之一(副项目负责人)加入,而 [Sourajyoti Basak][8] 作为另一位核心成员加入。 + +### 前进:可用性和发布 + +在撰写本文时,Rhino Linux 尚未确定任何具体的发布日期,但你可以预计它会在 **2023** 年的某个时间发布。 + +Rolling Rhino Remix 会发生什么? + +开发者澄清说,它将在 Rhino Linux 发布后继续维护三个月。但是,在 2022 年 1 月 11 日后继发布之后,它没有新的发布镜像。 + +你可以通过访问其 [官方网站][9] 了解更多关于 Rhino Linux 的信息。 + +_💬 你觉得 Rhino Linux 怎么样?它可以成为值得尝试的官方 Ubuntu 风格的竞争者吗?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/rhino-linux/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png +[2]: https://github.com/rollingrhinoremix +[3]: https://www.xfce.org/ +[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png +[5]: https://github.com/pacstall/pacstall +[6]: https://itsfoss.com/aur-arch-linux/ +[7]: https://github.com/Henryws +[8]: https://github.com/wizard-28 +[9]: https://rhinolinux.org/ diff --git a/translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md b/translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md deleted file mode 100644 index a119f8cfd4..0000000000 --- a/translated/news/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Ubuntu but rolling but also stable That's what Rhino Linux aims to be" -[#]: via: "https://news.itsfoss.com/rhino-linux/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "littlebirdnest" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu,不但滚动发布但也很稳定这就是 Rhino Linux 的目标 -====== - -滚动发布的 Ubuntu 发行版?等等,什么? Rhino Linux 听起来很迷人.. - -![Ubuntu but rolling but also stable! That's what Rhino Linux aims to be][1] - -Rhino Linux 将成为[Rolling Rhino Remix][2]的继任者。由 http.llamaz 构建的 Linux 发行版, 提供了 Ubuntu 的滚动发布的**非官方**的变体版本 - -需要澄清的是,该项目从未旨在取代其他稳定的发行版,而纯粹是一个充满乐趣的激情项目。 - -考虑到人们开始将其用作日常驱动程序并对其期望更多,开发人员决定将其变成一个严肃的项目。 - -Rhino Linux 作为它的继任者。那么,你能期待什么? - -### 与Rhino Linux相遇:其继任者 - -主要目标是提供稳定的 Ubuntu 体验,同时仍提供滚动发布模型。 - -目标保持不变,但 Rhino Linux 的基础将得到彻底改革。他们有可能使它成为一个令人印象深刻的滚动发布的Ubuntu 发行版。 - -**听起来很令人兴奋!🤯** - -在其核心,Rhino Linux 将使用稍微修改过的 [XFCE][3]版本作为其桌面环境;之所以选择它是因为它众所周知的稳定性和速度。 - -Rhino Linux 的创始人提到了以下几点: - -> Ubuntu 作为滚动发行版仍然是我们概念的核心。 Rhino Linux 并不是从 Rolling Rhino Remix 中分离出来的,而是将它重新设想为更稳定、更成熟的发行版,它应该像最初一样发布。 - -![xfce 4.14][4] - -除此之外,[Pacstall][5]将用作 Rhino Linux 上的默认包管理器及其存储库之一。 - -> 💡Pacstall 是一个受 [AUR][6]启发的 Ubuntu 包管理器。 - -其开发由 Pacstall 的创始人[_Plasma_][7]领导. 他还作为新开发人员之一(副项目负责人)加入,[Sourajyoti Basak][8]作为另一位核心成员加入。 - -### 前进:可用性和发布 - -在撰写本文时,Rhino Linux 尚未收到任何具体的发布日期,但您可以预计它会在 **2023** 年的某个时间发布。 - -Rolling Rhino Remix 会发生什么? - -开发者澄清说,Rhino Linux 发布后会继续维护三个月。但是,在 2022 年 1 月 11 日发布之后,它不会有新的发布映像。 - -您可以通过访问其[官方网站][9]了解更多关于 Rhino Linux 的信息。 - -_💬 你觉得 Rhino Linux 怎么样?它可以成为值得尝试的官方 Ubuntu 风格的竞争者吗?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/rhino-linux/ - -作者:[Sourav Rudra][a] -选题:[lkxed][b] -译者:[littlebirdnest](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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/rhino-linux.png -[2]: https://github.com/rollingrhinoremix -[3]: https://www.xfce.org/ -[4]: https://news.itsfoss.com/content/images/2022/10/XFCE_4.14.png -[5]: https://github.com/pacstall/pacstall -[6]: https://itsfoss.com/aur-arch-linux/ -[7]: https://github.com/Henryws -[8]: https://github.com/wizard-28 -[9]: https://rhinolinux.org/ From 3bf6a2b1f21ed10c04aee80c3a1bfbf0f7f719b3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Oct 2022 10:56:58 +0800 Subject: [PATCH 1794/3123] RP @geekpi https://linux.cn/article-15193-1.html --- ...netes help solve automation challenges-.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221014 Can Kubernetes help solve automation challenges-.md (56%) diff --git a/translated/tech/20221014 Can Kubernetes help solve automation challenges-.md b/published/20221014 Can Kubernetes help solve automation challenges-.md similarity index 56% rename from translated/tech/20221014 Can Kubernetes help solve automation challenges-.md rename to published/20221014 Can Kubernetes help solve automation challenges-.md index 695da770ac..ff7192f67f 100644 --- a/translated/tech/20221014 Can Kubernetes help solve automation challenges-.md +++ b/published/20221014 Can Kubernetes help solve automation challenges-.md @@ -3,49 +3,52 @@ [#]: author: "Rom Adams https://opensource.com/users/romdalf" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15193-1.html" Kubernetes 能否帮助解决自动化挑战? ====== -组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 或许能够改变这一切。 -当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时,我开始了我的自动化之旅。二十年后,自动化还没有完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化胜利,但他们也描述了在组织层面实现类似成功所面临的挑战。 +![](https://img.linux.net.cn/data/attachment/album/202210/30/105625ocz9sd9z6g4dzb44.jpg) -大多数 IT 组织都能够端到端地配置虚拟机,从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、[hypervisor][2]、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试。哇! +> 组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 或许能够改变这一切。 -满足高速、可扩展和按需自动化的业务需求并不容易。例如,考虑使用经典的网上商店或在线政府服务来提交纳税申报表。工作负载有明确的峰值需要吸收。 +当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时,我开始了我的自动化之旅。二十年后,自动化还没有完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化成果,但他们也描述了在组织层面实现类似成功所面临的挑战。 -处理此类负载的一种常见方法是拥有一个超大的服务器集群,以供 IT 专业人员的特定团队使用,监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载,使用“构建-消耗-垃圾”模型来优化成本,同时从无限弹性中受益。 +大多数 IT 组织都能够端到端地提供虚拟机,从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、[虚拟机管理程序][2]、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试,等等。哇,这么多! + +满足高速、可扩展和按需自动化的业务需求并不容易。例如,来看看经典的网上商店或提交纳税申报表的在线政府服务,其工作负载有明确的峰值需要面对。 + +处理此类负载的一种常见方法是拥有一个超大的服务器集群,以供 IT 专业人员的特定团队使用,监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载,使用“构建-消耗-回收build-consume-trash”模型来优化成本,同时从无限弹性中受益。 换句话说,每个人都想要乌托邦式的“云体验”。 ### 云真的能交付吗? -一切都没有丢失,这主要归功于 [Kubernetes][3] 的设计方式。 Kubernetes 的指数级采用推动了创新,取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 Everything-as-Code (EaC) 来定义所有资源的期望状态,从简单的计算节点到 TLS 证书。 Kubernetes 强制使用三种主要的设计结构: +尚有一线机会,这主要归功于 [Kubernetes][3] 的设计方式。Kubernetes 的指数级普及推动了创新,取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 “万物皆代码Everything-as-Code”(EaC)来定义从简单的计算节点到 TLS 证书的所有资源的期望状态。Kubernetes 强制使用三种主要的设计结构: * 一个标准接口,以减少内部和外部组件之间的整合问题 * API 优先及仅 API 的方法来标准化其所有组件的 CRUD(创建、读取、更新、删除)操作 * 使用 [YAML][4] 作为通用语言,以简单易读的方式定义这些组件的所有所需状态 -这三个关键组成部分基本上是选择自动化平台的相同要求,至少如果你想让跨职能团队轻松采用。这也模糊了团队之间的职责分工,有助于提高跨孤岛的协作,这是一件好事! +这三个关键组成部分基本上是选择自动化平台的相同要求,至少如果你想让跨职能团队轻松采用是这样的。这也模糊了团队之间的职责分工,有助于提高跨越孤岛的协作,这是一件好事! -事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。 Kubernetes 有机地推动团队采用多种 [DevOps 基础和实践][5],如: EaC、[使用 Git 进行版本控制][6]、同行评审、[文档即代码][7]并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面获得良好的开端。 +事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。Kubernetes 有机地推动团队采用多种 [DevOps 基础和实践][5],如:EaC、[使用 Git 进行版本控制][6]、同行评审、[文档即代码][7]Documentation as Code,并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面取得良好的开端。 ### 让自动化成为现实 -你没看错!网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义,可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署,以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常,且云计算资源不再有存在的理由时,你将它们回收并恢复常规运营,一组核心资产在本地接管业务,直到下一次激增。 +你没看错!网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义,可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署,以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常,且云计算资源不再有存在的理由时,你将它们回收并恢复常规运营,而由一组核心资产在本地接管业务,直到下一次激增。 ### 鸡和蛋的悖论 考虑到 Kubernetes 和云原生模式,自动化是必须的。但它提出了一个重要的问题:一个组织可以在解决自动化战略之前采用 Kubernetes 吗? -似乎从 Kubernetes 开始可以激发更好的自动化,但这并不是一个定局。工具不是对技能、实践和文化问题的解决方案。但是,设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。 +似乎从 Kubernetes 开始可以激发更好的自动化,但这并不是一个一成不变的结论。工具不是对技能、实践和文化问题的解决方案。但是,设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。 ### 开始使用 Kubernetes -即使你觉得自己错过了自动化列车,也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你[掌握了初始步骤][8],就可以拥抱这个出色的编排器的简单性,并根据更复杂的需求进行迭代。 +即使你觉得自己错过了自动化列车,也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你 [掌握了初始步骤][8],就可以拥抱这个出色的编排系统的简单性,并根据更复杂的需求进行迭代。 -------------------------------------------------------------------------------- @@ -54,7 +57,7 @@ via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges 作者:[Rom Adams][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/) 荣誉推出 From 6deb7504a78c3a2ab841afe9839e673adc495408 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Oct 2022 12:41:53 +0800 Subject: [PATCH 1795/3123] RP @geekpi https://linux.cn/article-15194-1.html --- ...u 22.10 and Make it Default Text Editor.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md (72%) diff --git a/translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/published/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md similarity index 72% rename from translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md rename to published/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md index 2b2023b118..a4ea73de8f 100644 --- a/translated/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md +++ b/published/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md @@ -3,41 +3,44 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15194-1.html" -# 在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器 +在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器 +====== -[GNOME 有一个全新的文本编辑器][1]来取代旧的 Gedit 编辑器。 +![](https://img.linux.net.cn/data/attachment/album/202210/30/124029bf0qjklphcpzpclh.jpg) -虽然 GNOME 42 已经可以使用它,但 Ubuntu 22.04 依赖于 Gedit。 +[GNOME 有了一个全新的文本编辑器][1],以取代旧的 Gedit 编辑器。 -这在 Ubuntu 22.10 中发生了变化。 GNOME 文本编辑器是默认程序,甚至没有安装 Gedit。 +虽然 GNOME 42 已经可以使用了它,但 Ubuntu 22.04 还依赖于 Gedit。 + +这在 Ubuntu 22.10 中发生了变化。 GNOME 文本编辑器Text Editor 现在是默认程序,甚至没有安装 Gedit。 ![搜索文本编辑器只出现 GNOME 文本编辑器][2] 虽然新编辑器足够好,但并不是每个人都喜欢它。如果你将 Gedit 与其他插件一起频繁使用,则尤其如此。 -如果你属于这些人,让我向你展示如何在 Ubuntu 上安装 Gedit。我还将分享如何将其设为默认文本编辑器。 +如果你属于这类人,让我向你展示如何在 Ubuntu 上安装 Gedit。我还将分享如何将其设为默认文本编辑器。 ### 在 Ubuntu 上安装 Gedit 这实际上是不费吹灰之力的。虽然默认未安装 Gedit,但它仍然可以在 Ubuntu 仓库中找到。 -所以,你所要做的就是使用 apt 命令来安装它: +所以,你所要做的就是使用 `apt` 命令来安装它: ``` sudo apt install gedit ``` -Gedit 也可以在软件中心中找到,但它是 snap 包。如果你愿意,你可以安装它。 +Gedit 也可以在软件中心中找到,但它是 Snap 包。如果你愿意,你可以安装它。 ![Gedit 也可以在 Ubuntu 的 Snap 商店中找到][3] #### 安装 Gedit 插件(可选) -默认情况下,Gedit 为你提供访问一些插件的选项。你可以从 menu->preference->plugins 启用或禁用插件。 +默认情况下,Gedit 为你提供访问一些插件的选项。你可以从 “汉堡菜单->偏好Preference->插件Plugins” 启用或禁用插件。 ![在 Gedit 中访问插件][4] @@ -55,15 +58,15 @@ sudo apt install gedit-plugins ![其他 Gedit 插件][6] -**提示**:如果你发现 Gedit 因缺少底角而显得有些格格不入,你可以安装一个名为 [Round Bottom Corner][7] 的 GNOME 扩展。这将为包括 Gedit 在内的所有应用强制圆底角。 +**提示**:如果你发现 Gedit 因缺少底角而显得有些格格不入,你可以安装一个名为 [Round Bottom Corner][7] 的 GNOME 扩展。这将为包括 Gedit 在内的所有应用强制添加圆底角。 ### 使 Gedit 成为默认文本编辑器 -好了!你已经安装了 Gedit,但文本文件仍然在双击操作后使用 GNOME 文本编辑器打开。要使用 Gedit 打开文件,你需要右键单击,然后选择“打开方式”选项。 +好了!你已经安装了 Gedit,但文本文件仍然在双击操作后使用 GNOME 文本编辑器打开。要使用 Gedit 打开文件,你需要右键单击,然后选择“打开方式open with”选项。 如果你希望一直使用 Gedit 打开文本文件,你可以将其设置为默认程序。 -右键单击文本文件并选择“打开方式”选项。在此处选择 Gedit 并从底部启用“始终用于此文件类型”选项。 +右键单击文本文件并选择“打开方式open with”选项。在此处选择 Gedit 并从底部启用“始终用于此文件类型Always use for this file type”选项。 ![设置 Gedit 为默认文本编辑器][8] @@ -94,7 +97,7 @@ via: https://itsfoss.com/install-gedit-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/) 荣誉推出 From 4348666d2e65f482fee13d2527462d5cb2f7344f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 30 Oct 2022 15:27:47 +0800 Subject: [PATCH 1796/3123] RP @geekpi https://linux.cn/article-15195-1.html --- ...thon 3.10 in Ubuntu and Other Related Linux.md | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) rename {translated/tech => published}/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md (70%) diff --git a/translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md b/published/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md similarity index 70% rename from translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md rename to published/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md index 768e7a7091..04f9379ddf 100644 --- a/translated/tech/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md +++ b/published/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md @@ -3,38 +3,40 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15195-1.html" 如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10 ====== -**计划为工作安装 Python 3.10?以下是在 Ubuntu 和相关发行版中安装 Python 3.10 的方法。** +![](https://img.linux.net.cn/data/attachment/album/202210/30/152139lddzddabu5u4buud.jpg) -Python 3.10 于 2021 年 10 月 25 日发布,具有附加功能和更新。此版本带来了更好的错误消息处理、新的模式匹配功能、TypeAlias、用户定义的类型保护等。你可以在[此处][1]阅读发布亮点。 +> 计划为工作安装 Python 3.10?以下是在 Ubuntu 和相关发行版中安装 Python 3.10 的方法。 + +Python 3.10 于 2021 年 10 月 25 日发布,具有附加功能和更新。此版本带来了更好的错误消息处理、新的模式匹配功能、类型别名TypeAlias、用户定义的类型保护等。你可以在 [此处][1] 阅读发布重点。 在编写本指南时,大多数当前发行版都采用 Python 3.10。例如,Ubuntu 22.04 LTS 和 Fedora 36 默认都有 Python 3.10。 -也就是说,如果你现在需要任何不支持的版本中的 Python 3.10,你可以使用[下面的可靠 PPA][2]在 Ubuntu 中安装最新的 Python 3.10。下面是方法。 +也就是说,如果你现在在任何不支持的版本中需要 Python 3.10,你可以使用 [下面的可靠 PPA][2] 在 Ubuntu 中安装最新的 Python 3.10。下面是方法。 ### 如何在 Ubuntu 上安装 Python 3.10 -此 PPA 可用于 Ubuntu 21.10、Ubuntu 21.04、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS 和 Linux Mint 20.x、Elementary OS 6 和其他相关的基于 Ubuntu 的发行版。大多数默认情况下不支持 3.10。 +此 PPA 可用于 Ubuntu 21.10、Ubuntu 21.04、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS 和 Linux Mint 20.x、Elementary OS 6 和其他相关的基于 Ubuntu 的发行版。这些发行版大多数默认情况下不支持 3.10。 -- 打开终端并添加以下 PPA。 +打开终端并添加以下 PPA: ``` sudo add-apt-repository ppa:deadsnakes/ppa ``` -- 使用以下命令刷新缓存。 +使用以下命令刷新缓存: ``` sudo apt update ``` -- 并使用以下命令安装 Python 3.10。 +并使用以下命令安装 Python 3.10: ``` sudo apt install python3.10 @@ -42,9 +44,9 @@ sudo apt install python3.10 ### 设置 Python 版本 -将 Python 3.10 设置为默认值需要一些额外的步骤。请跟上。 +将 Python 3.10 设置为默认值需要一些额外的步骤。如下。 -**警告**:你的 Ubuntu 系统中的许多应用程序依赖于 Python 3.9 的库存版本。因此,请确保你的工作应用(例如 GIMP、GNOME 终端等)与 Python 3.10 兼容。所以,要小心。 +> **警告**:你的 Ubuntu 系统中的许多应用程序依赖于 Python 3.9 的库存版本。因此,请确保你的工作应用(例如 GIMP、GNOME 终端等)与 Python 3.10 兼容。所以,要小心。 **快速提示:** 如果要检查已安装的系统包中的哪些依赖于特定版本,请使用 `apt-cache` 命令的 `rdepends` 开关。在下面的示例中,我检查哪些已安装的包依赖于 Python 3.8。 @@ -100,13 +102,13 @@ gedit #### 使用 Python 3.10 作为默认 Python3 -- 首先,使用终端中的以下命令检查当前默认版本。 +首先,使用终端中的以下命令检查当前默认版本。 ``` python3 --version ``` -- 使用 `update-alternatives` 创建指向 python3 的符号链接。 +使用 `update-alternatives` 创建指向 `python3` 的符号链接。 ``` sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 @@ -116,7 +118,7 @@ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 ``` -- 并通过以下命令选择使用哪一个作为 Python3: +并通过以下命令选择使用哪一个作为 `python3`: ``` sudo update-alternatives --config python3 @@ -133,7 +135,7 @@ via: https://www.debugpoint.com/install-python-3-10-ubuntu/ 作者:[Arindam][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/) 荣誉推出 From bc5f28694b8bca8350d0184124474cab36977a07 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Sun, 30 Oct 2022 17:19:03 +0800 Subject: [PATCH 1797/3123] translating --- ...ay commits created on a specific day with the git log command.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md b/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md index 3df3f70944..3d0add6c8f 100644 --- a/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md +++ b/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/git-log-command" [#]: author: "Agil Antony https://opensource.com/users/agantony" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 075ec9619f6df7d7c2acb0f5eb9c9446c2605c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 31 Oct 2022 01:57:39 +0800 Subject: [PATCH 1798/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221030.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Enable?= =?UTF-8?q?=20Dark=20Mode=20in=20Web=20Browser.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Enable Dark Mode in Web Browser.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md diff --git a/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md new file mode 100644 index 0000000000..7ca77ebd2f --- /dev/null +++ b/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md @@ -0,0 +1,100 @@ +[#]: subject: "How to Enable Dark Mode in Web Browser" +[#]: via: "https://www.debugpoint.com/dark-mode-browser/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Enable Dark Mode in Web Browser +====== + +**This guide is about helping you how to enable dark mode in popular web browser(s) such as Firefox, Google Chrome, Chromium and Microsoft Edge.** + +We all love dark mode. Many people prefer it over standard light mode. While many desktop applications provide the dark mode natively, some apps adapt to dark mode via the desktop environment’s underlying modes. + +You can not deny that we all spend hours on web browsers. We seldom use desktop apps (unless you are specific to work, such as video editing, etc.). So, when you spend many hours reading and studying in a browser, you can always opt for dark mode. But, coming to the web browser, things are a little different. + +This guide gives you the simple steps which you can follow to enable dark mode in Mozilla Firefox, Chromium, Google Chrome and Edge browsers. + +### Enable Dark Mode in Web Browser + +#### Enable Dark Mode in Firefox + +- Open Firefox and click on the little hamburger menu at the right-top. +- Click `Settings > Extension and Themes`. +- Select the `Dark Theme` and click `enable`. And you should see the dark mode is applied to Firefox. + +![Enable dark mode in Firefox][1] + +Enable dark mode in Firefox browser + +![Firefox in Dark Mode][2] + +Firefox in Dark Mode + +- To revert it back, follow the same steps and select Light Theme. + +#### Dark Mode in Chromium and Google Chrome + +Chromium or Google Chrome doesn’t pre-install any dark theme by default. Hence, you need to go to Chrome Web Store and download any dark theme you want. For this guide, I would recommend “Morpheon Dark” theme, which over a million users use. + +Open the Morpheon Dark theme page (below link) from the Chromium web browser. + +[Morpheon Dark Theme in Chrome Web Store][3] + +Click on Add To Chrome button. And it should be enabled in Chrome. + +You may want to explore other Black and White or dark themes available in Chrome Web Store. [Visit this page for all collections of dark themes.][4] + +However, one thing you should remember is that – this theme would not change the settings or context menu, which is obvious. Because it just changes the browser window, and those menus are part of the operating system itself (sometimes). + +![Chromium Dark Theme][5] + +Chromium Dark Theme + +Follow the same steps for the Google Chrome browser as well. + +#### Edge Browser – Dark Mode + +[Microsoft Edge browser][6], however, comes with a better dark theme by default. It allows you to use GTK+, Light and Dark modes from settings. + +- Open Edge Browser +- Click on the three little dots on the right-top side. +- Go to Appearance and choose Dark. And you should be all set. + +This dark theme implementation of Edge is better because it changes the context menu and the address bar. + +![Edge in Dark Theme][7] + +Edge in Dark Theme + +### Closing Notes + +If you are an advanced user, you probably do not need this guide. You can figure it out. + +But we cover all the basic to advanced tutorials for all our readers. Many new Linux users may not know how also to enable dark mode in the browser. + +So, that said, I hope this helps you and others. Let me know in the comment box below if you face any trouble. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/dark-mode-browser/ + +作者:[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/2021/10/Enable-dark-mode-in-Firefox.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg +[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB +[4]: https://chrome.google.com/webstore/category/collection/dark_themes +[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg +[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg From 48fc2d5d9e96f935d3636a94a1e487b87ce9d721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 31 Oct 2022 02:05:33 +0800 Subject: [PATCH 1799/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221030.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?3=20Best=20Free=20Photoshop=20Alternatives=20for=20Ubuntu=20and?= =?UTF-8?q?=20other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...otoshop Alternatives for Ubuntu and other Linux.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md diff --git a/sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md b/sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md new file mode 100644 index 0000000000..c8531f1390 --- /dev/null +++ b/sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md @@ -0,0 +1,160 @@ +[#]: subject: "3 Best Free Photoshop Alternatives for Ubuntu and other Linux" +[#]: via: "https://www.debugpoint.com/3-best-free-photoshop-alternatives-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 Best Free Photoshop Alternatives for Ubuntu and other Linux +====== + +**We present three best Photoshop alternatives for Linux systems that are free and open-source.** + +Photoshop is a raster graphics image editor and manipulator developed by Adobe. This decade-old software is a de facto standard for the photographic industry. However, it is a paid product and doesn’t run on Linux. For many users in this industry, Photoshop is still costly and comes with a hefty subscription fee. Since it does not run on Linux, you must use Windows or macOS with additional free operating systems and hardware. + +As you can see, to use Photoshop, you end up paying additional fees, which are not even related to Photoshop. + +Though nothing technically replaces software, below are some free and open-source apps that come close to Photoshop in terms of its functionality. + +Also, all these three apps are available as Flatpak and Snap. So you can install it in any Linux distribution. + +### Best Photoshop Alternatives for Linux + +#### 1. GIMP + +[GIMP][1], aka GNU Image Manipulation Program, is the default and best image editor program available as free in Linux, Windows and Mac. GIMP is also as old as Photoshop regarding how long the software has been in the industry. + +GIMP is very active in the development, and each new release delivers the next set of improvements, keeping in line with the industry. + +![GIMP is one of the best Photoshop Alternative available for free][2] + +GIMP is one of the best Photoshop Alternative available for free + +Though some very advanced Photoshop features are not available in GIMP, GIMP can still match its features as closely as Photoshop. GIMP also supports scripting, which is a powerful feature of this application. GIMP is supported by a huge list of free plugins, such as GMIC for filters, which you can use to extend its features to a great extent. + +##### Key features of GIMP + +- 8-bit and 16-bit CMYK(A) TILL files support +- WebP image support +- JPEG XL, and BIGTIFF file support +- Configurable user interfaces with light/dark/system theme. +- Extensible layer options +- External add-on support +- Localized glyphs in the text tool + +##### How To Install + +GIMP is available as both Flatpak and Snap, which you can run in any Linux distribution. Download from the below links. I would recommend using Flatpak since it gets you the latest version of this app as soon as it releases. + +For Flatpak, [set up your system][3], and then run the below to install from the terminal. + +``` +flatpak install flathub org.gimp.GIMP +``` + +Also, for Snap installation, visit [this page][4]. + +For those who prefer the native apt package, you can run the following from the terminal to install it. + +``` +sudo apt install gimp +``` + +For Windows and Mac, visit [this page][5] for download options. + +#### 2. Inkscape + +[Inkscape][6] is a vector graphics editor for editing illustrations, logos and complex paintings. Though this app is mainly used to manipulate SVG diagrams, it can also be used for editing images and helping with certain functionalities of Photoshop. This can act as a lightweight alternative to Photoshop. + +![][7] + +##### Key features of Inkscape + +- Object creation and manipulation +- Freehand drawing, simple path, calligraphy support +- Wide variety of shape tools +- Text tools (multi-line text, full-on canvas) +- RGB, HSL, CYMK, CMS colour selector +- Gradient editor +- Nodes and paths +- Boolean operations +- Command line options + +##### How to Install + +Inkscape is available in Flatpak, Snap and native deb/RPM formats. For Flatpak installation, [set up your system to use Flatpak][3] and use the following command to install it. This is recommended way. + +``` +flatpak install flathub org.inkscape.Inkscape +``` + +For the Snap package, visit [this page][8]. + +If you prefer the native deb/rpm package, use the following commands to install it in Fedora and Ubuntu. + +``` +sudo apt install inkscape +``` + +``` +sudo dnf install inkscape +``` + +#### 3. Darktable + +[Darktable][9] is a photo editing and photo workflow application designed to handle raw photos. It can manage photos in a non-destructive way for post-production. + +Like Photoshop, it can also handle/edit raster graphics, and this app is beneficial to photographers who handle many photos for their workflow. + +You can find more darktable features [here][10]. + +##### How to Install + +Darktable is also available as both Flatpak and Snap. The recommended way is to use the Flatpak version. To do that, first [set up your system to use Flatpak][3]. Then run the following command. + +``` +flatpak install flathub org.darktable.Darktable +``` + +For Snap, visit [this page][11]. + +If you prefer the legacy way of installation, then follow the below commands via the terminal. You can also use the respective distro’s Software repo to install. + +``` +sudo apt install darktable +``` + +``` +sudo dnf install darktable +``` + +### Summary + +Photoshop is an amazing application and has become a standard today. However, I feel the above three free apps can somewhat be close to photoshop and act as the best photoshop alternatives for Linux systems. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/3-best-free-photoshop-alternatives-ubuntu-linux/ + +作者:[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.gimp.org/ +[2]: https://www.debugpoint.com/wp-content/uploads/2018/09/GIMP-is-one-of-the-best-Photoshop-Alternative-available-for-free.jpg +[3]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[4]: https://snapcraft.io/gimp +[5]: https://www.gimp.org/downloads/ +[6]: https://gitlab.com/inkscape/inkscape +[7]: https://www.debugpoint.com/wp-content/uploads/2018/09/Inkscape-Running.png +[8]: https://snapcraft.io/inkscape +[9]: https://www.darktable.org/ +[10]: https://www.darktable.org/about/features/ +[11]: https://snapcraft.io/darktable From 1fa40928e798938a0e1539797a6b71b9a7674667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 31 Oct 2022 02:09:10 +0800 Subject: [PATCH 1800/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221030.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Install=20WoeUSB=20on=20Ubuntu=20to=20Create=20a=20Bootable=20W?= =?UTF-8?q?indows=20USB.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eUSB on Ubuntu to Create a Bootable Windows USB.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md diff --git a/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md b/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md new file mode 100644 index 0000000000..78c2e75f83 --- /dev/null +++ b/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md @@ -0,0 +1,190 @@ +[#]: subject: "Install WoeUSB on Ubuntu to Create a Bootable Windows USB" +[#]: via: "https://itsfoss.com/install-woeusb-ubuntu/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Install WoeUSB on Ubuntu to Create a Bootable Windows USB +====== + +Want to create a bootable Windows USB on Linux? Ventoy is a pretty good option. + +But before Ventoy, WoeUSB used to be the go-to tool for this purpose. The original WoeUSB project got discontinued around 2014. + +Owing to its popularity, a new developer took the task of bringing the project back from the dead. And hence WoeUSB-ng was born. “ng” here stands for “new generation”. In other words, [WoeUSB-ng][1] is the new generation WoeUSB. But since the original tool doesn’t exist anymore, I’ll be referring WoeUSB-ng as WoeUSB. + +In this tutorial, I’ll show you how to install WoeUSB on Ubuntu Linux. I’ll also share the steps for creating bootable Windows USBs with WoeUSB. + +But before that, let’s quickly look at the features of this awesome tool. + +### WoeUSB + +![install woeusb ubuntu][2] + +WoeUSB is a simple tool that has the sole purpose of [creating bootable Windows USB on Linux][3]. + +The original WoeUSB is a shell script. This same WoeUSB is rewritten as WoeUSB-ng in python, which can be installed on your system and provides both a command-line and GUI interface. + +**Features:** + +- Support Legacy PC/UEFI booting +- Support FAT32 and NTFS filesystems +- Support using physical installation disc or disk image as source +- It can be used for Windows Vista and later with any language or edition variants +- Legacy/MBR-style/IBM PC compatible boot mode +- Native UEFI booting is supported for Windows 7 and later images (limited to the FAT filesystem as the target) + +### Installing WoeUSB on Ubuntu and other Linux distros + +Arch Linux users can install WoeUSB-ng from AUR. + +For other distros, WoeUSB can be installed using PIP. It’s a Python application, after all. I am going to provide commands for Ubuntu/Debian here. + +To install WoeUSB-ng, you need to [install PIP][4] and other necessary dependencies first. + +``` +sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin +``` + +After this, you can install WoeUSB-ng by running: + +``` +sudo pip3 install WoeUSB-ng +``` + +For all other installations, you can refer to their [instructions][5]. + +[WoeUSB-ng][1] + +### Prerequisite: Get Windows ISO and a compatible USB + +This one goes without saying. You need to have the ISO file of the Windows version you want to install. + +From the Microsoft website, you should be able to get the ISO for Windows 10 and 11. + +[Download Windows][6] + +If you have ISOs for older Windows versions, they can also be used. + +Apart from that, you need to have a USB key/pen drive of at least 8 GB in size. You should format it in NTFS filesystem. + +### Method 1: Using WoeUSB to create a bootable Windows USB graphically (recommended) + +Open woeusb-gui from the activity overview or menu. + +![woeusb in ubuntu activities overview][7] + +In the application window, select the downloaded Windows ISO and the desired USB drive as shown in the screenshot and press **Install**. + +![woeusb gui setup][8] + +There are also other tweaks available within the app, which can be accessed by the top menu bar. + +After pressing install, the woeUSB will start formatting and copying files. You need to wait for some time because there are approximately 6 GB of files to be copied. + +![woeusb writing windows iso to the usb drive][9] + +Once copying completes, WoeUSB will prompt a success dialog. You can now safely eject the USB and use it as a bootable USB. + +![woeusb completed writing and gives a success message][10] + +### Method 2: Using WoeUSB from the terminal (for experts) + +WoeUSB-ng package also provides a command-line utility called woeusb. + +To create the bootable Windows USB using WoeUSb, you need to run the following command: + +``` +sudo woeusb --device --target-filesystem ntfs +``` + +Here, the `--device` flag is used to wipe the USB and create a bootable from scratch completely. Also, the –target-filesystem flag is set to NTFS, to avoid problems of copying files more than the size limits of the FAT system. + +![woeusb commandline][11] + +The process will take some time to complete copying. Once completed, it will display a success message. + +![woeusb commandline success message][12] + +At this point, you can eject the USB safely and use it as a Windows bootable USB on other PCs. + +### Bonus: Using WoeUSB Bash shell script (for experts) + +WoeUSB is also available as a bash shell script, which can be used without installing anything on your system. + +First, you want to download the shell script from the [releases page of the project][13]. + +Before [executing the shell file][14], you need to get the required dependencies. To install, run: + +``` +sudo apt install wimtools +``` + +Now make it executable either through file manager or through command-line. + +![make woeusb script executable][15] + +Or you can run `chmod +x ` to make it executable. Now, run`./woeusb-5.2.4.bash -h` inside the downloaded directory to get help. + +In order to create a live USB, the process is same as the command-line part of woeusb-ng, except, you are not installing anything. + +So, in a terminal, run: + +``` +sudo --device --target-filesystem ntfs +``` + +This will start writing the ISO to USB drive, as shown in the screenshot below: + +![woeusb bash script running without installation][16] + +Once completed, you can safely eject the USB and use it as bootable USB. + +### Removing WoeUSB + +If you installed WoeUSB using PIP, you can also remove it similarly: + +``` +pip3 uninstall WoeUSB-ng +``` + +You can keep the installed dependencies on your system or remove them. That’s entirely up to you. I would suggest keeping them. + +### Wrapping Up + +WoeUSB was an immensely popular tool around ten years ago. It’s good that it has been continued in another form by someone else. That’s the beauty of open source. + +I hope this tutorial helped you. If somehow the Windows USB created by WoeUSB doesn’t work as expected, you may [try using Ventoy][3]. Enjoy it. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-woeusb-ubuntu/ + +作者:[Sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://github.com/WoeUSB/WoeUSB-ng +[2]: https://itsfoss.com/wp-content/uploads/2022/10/install-woeusb-ubuntu.png +[3]: https://itsfoss.com/bootable-windows-usb-linux/ +[4]: https://itsfoss.com/install-pip-ubuntu/ +[5]: https://github.com/WoeUSB/WoeUSB-ng#installation +[6]: https://www.microsoft.com/en-in/software-download/ +[7]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-in-ubuntu-activities-overview.png +[8]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-gui-setup.png +[9]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-writing-windows-iso-to-the-usb-drive.png +[10]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-completed-writing-and-gives-a-success-message.png +[11]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-commandline.png +[12]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-commandline-success-message.png +[13]: https://github.com/WoeUSB/WoeUSB/releases/tag/v5.2.4 +[14]: https://itsfoss.com/run-shell-script-linux/ +[15]: https://itsfoss.com/wp-content/uploads/2022/10/make-woeusb-script-executable.png +[16]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-bash-script-running-without-installation.png From aa7c052fa858f3c60a833a01e004c12c94cbcf6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Mon, 31 Oct 2022 07:39:14 +0800 Subject: [PATCH 1801/3123] Translated --- ...ntu 22.10 From 22.04 LTS (Jammy to Kinetic).md | 117 ----------------- ...ntu 22.10 From 22.04 LTS (Jammy to Kinetic).md | 118 ++++++++++++++++++ 2 files changed, 118 insertions(+), 117 deletions(-) delete mode 100644 sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md create mode 100644 translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md diff --git a/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md b/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md deleted file mode 100644 index 314a431bab..0000000000 --- a/sources/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md +++ /dev/null @@ -1,117 +0,0 @@ -[#]: subject: "How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic)" -[#]: via: "https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic) -====== - -**Here are the steps on how to upgrade your current Ubuntu 22.04 LTS Jammy Jellyfish to Ubuntu 22.10 Kinetic Kudu.** - -Always stay with long-term support release. That is the thumb rule. So, the prior [Ubuntu 22.04 LTS][1] Jammy Jellyfish is supported until April 2027. That’s a long time. - -In addition, LTS releases are super stable. They rarely break and become unstable. So, if you use your laptop/desktop or server installation with the LTS version, stay with it. - -However, if you want the latest Kernel, GNOME 43, and new technology like Pipewire – you might want to make the jump and want to upgrade to [Ubuntu 22.10 Kinetic Kudu][2]. - -Here’s how. - -### Upgrade Ubuntu 22.04 LTS (Jammy Jellyfish) to Ubuntu 22.10 (Kinetic Kudu) - -**Note**: I hope you are not running Ubuntu 21.10 Impish Indri, released last October. Because that’s out of support. But for any reason, if you are still running it, I would recommend you do a fresh install of 22.10. Or, do a step upgrade to 22.04 and then 22.10. - -#### Before you upgrade - -Before you upgrade, do a little housekeeping. This is super important. - -- Take backups of your `/home`, /`downloads` and other files to USB or any separate partition in case the upgrade fails. - -- If you have added additional PPA over time, make sure you note them down. However, the upgrade process would disable the PPA before it starts. However, after the upgrade is complete, make sure to enable them manually. - -- Note down and disable all the GNOME Extensions. Extensions tend to break after the upgrade if it’s not updated by the developer aligned with the GNOME version. - -- Keep a LIVE USB stick handy. - -#### Upgrade steps - -- Open Software & Update. - -- Go to the Updates tab. - -- Select ‘`Notify me of a new Ubuntu version'`and change it to `'For any new version'.` - -- This will tell the package manager to look for the Ubuntu 22.10 release details. - -![Make sure to change the option for new Ubuntu 22.10 release][3] - -- Open a terminal and run below. - -``` -sudo apt updatesudo apt upgrade -``` - -Alternatively, you can open the Software Updater as well. Install all the pending packages. - -- Once both the commands are complete, open the ‘Software Updates’. And you will see a prompt to Upgrade to Ubuntu 22.10 (as shown in the below image). - -![New version update prompt from the GUI method][4] - -- Now click on the `Upgrade` button and follow the on-screen instructions. The upgrade process takes time, so be patient and wait until it finishes. Make sure you have stable internet connectivity for the entire upgrade process. - -If you still don’t get the update, wait a day or two and try. - -- If you do not see the above prompt, do a manual reboot of your system. Add try again. - -**Via terminal** - -- Open the following file via the nano file editor in the terminal. - -``` -nano /etc/update-manager/release-upgrades -``` - -- Change the `Prompt=LTS` to `Prompt=normal`. Note: If you have changed the updates tab to “For any new version” as mentioned above, then this file should be updated already. But verify once. - -![Change the release upgrade file][5] - -- Press CTRL+O and CTRL+X to save and exit. - -- Finally, you can also run the below command to force the upgrade process from the terminal. - -``` -sudo do-release-upgrade -c -``` - -![New version update prompt from the terminal method][6] - -The upgrade process will take some time (minimum half-hour or more) based on your internet connection and hardware. Wait until it is complete. Once done, restart and enjoy the Ubuntu 22.10 Kinetic Kudu. - -![Upgrade is in progress][7] - -While the upgrade process is in progress, take a look at the exciting articles we [recently published on Ubuntu 22.10][8]. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/ - -作者:[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/ubuntu-22-04-review/ -[2]: https://www.debugpoint.com/ubuntu-22-10/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Make-sure-to-change-the-option-for-new-Ubuntu-22.10-release.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-GUI-method2.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Change-the-release-upgrade-file.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-terminal-method.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Upgrade-is-in-progress.jpg -[8]: https://www.debugpoint.com/tag/ubuntu-22-10 diff --git a/translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md b/translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md new file mode 100644 index 0000000000..c1c7bf6143 --- /dev/null +++ b/translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md @@ -0,0 +1,118 @@ +[#]: subject: "How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic)" +[#]: via: "https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何从 Ubuntu 22.04 LTS 升级到 22.10 (从 Jammy 到 Kinetic) +====== + +**这里是一些关于如何将你当前的 Ubuntu 22.04 LTS Jammy Jellyfish 升级到 Ubuntu 22.10 Kinetic Kudu 的步骤。** + +一直停留在长期支持的发布版本,这是金科玉律。因为,先前的 [Ubuntu 22.04 LTS][1] Jammy Jellyfish 将被支持到2027年4月。这是一段很长的时间。 + +此外,LTS 版本超级稳定。它们很少损坏并变得不稳定。因此,如果你在笔记本电脑/台式机电脑或服务器上安装使用 LTS 版本,保持使用它。 + +然而,如果你想要最新的内核、GNOME 43 和最新的技术,像 like Pipewire – 你可能会想完成版本跳级,并升级到 [Ubuntu 22.10 Kinetic Kudu][2] 。 + +这里是如何做的方法。 + +### 升级 Ubuntu 22.04 LTS (Jammy Jellyfish) 到 Ubuntu 22.10 (Kinetic Kudu) + +**注意**: 我希望你没有运行去年10月份发布的 Ubuntu 21.10 Impish Indri 。因为它已经不被支持。但是鉴于某些原因,你正在运行它,我建议你直接重新安装 22.10 。或者,先升级到 22.04 ,再升级到 22.10 。 + +#### 在你升级前 + +在你升级前,做一些内务整理。这是非常重要的。 + +- 备份你的 `/home`、/`downloads` 和其它的文件到 USB 驱动器或任意独立的分区,以防升级失败。 + +- 如果你随着时间的流逝而添加了一些额外的 PPA ,确保将它们记录下来。虽然,在升级过程开始前,升级过程将禁用 PPA 。不过,在升级完成后,确保手动启用 PPA 。 + +- 记录并禁用所有的 GNOME 扩展。如果开发人员没有按照 GNOME 版本进行更新,那么扩展在升级后将会损坏。 + +- 家中常备一个 LIVE USB 磁盘。 + +#### 升级步骤 + +- 打开 软件包和更新 Software & Update 。 + +- 转到 更新 Updates 标签页 + +- 转到 通知我新的 Ubuntu 版本 Notify me of a new Ubuntu version +- 选择 并将其更改为 任意新的版本 For any new version + +- 这将告诉软件包管理器来查找 Ubuntu 22.10 发布版本的详细信息。 + +![Make sure to change the option for new Ubuntu 22.10 release][3] + +- 打开一个终端,并运行下面的命令。 + +``` +sudo apt updatesudo apt upgrade +``` + +或者,你也可以打开软件包更新程序。安装所有的准备服役的软件包。 + +- 在两个命令完成后,打开软件包更新。你将会看到一个升级到 Ubuntu 22.10 的提示 (如下图所示) 。 + +![New version update prompt from the GUI method][4] + +- 现在,单击 升级Upgrade 按钮,并按照屏幕上的说明进行操作。升级过程需要一些时间,因此,要耐心等待,直至升级完成。确保在整个升级过程中有稳定的互联网链接。 + +如果你尚未获得更新,请等待一、两天后再次尝试。 + +- 如果你没有看到上述提示,手动重新启动一次系统I。并再次添加尝试。 + +**通过终端** + +- 在终端中通过 nano 文件编辑器打开下面的文件。 + +``` +nano /etc/update-manager/release-upgrades +``` + +- 将 `Prompt=LTS` 更改为 `Prompt=normal` 。注意:如果你已经如上所述将更新标签页更改为 “任意新的版本” ,那么这个文件应该已经更新了。但是,要验证它一次。 + +![Change the release upgrade file][5] + +- 分别按下组合键 CTRL+O 和组合键 CTRL+X 来保存和退出。 + +- 最后,你也可以运行下面的命令来从终端中强制升级过程。 + +``` +sudo do-release-upgrade -c +``` + +![New version update prompt from the terminal method][6] + +升级过程需要花费一些时间 (最少半个小时,上不封顶),这主要取决于你的互联网连接和硬件。直至等到其完成。在完成后,重新启动并享受 Ubuntu 22.10 Kinetic Kudu. + +![Upgrade is in progress][7] + +在升级过程进行时,看看我们 [不久前发布的关于 Ubuntu 22.10][8] 的精彩文章。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/ubuntu-22-04-review/ +[2]: https://www.debugpoint.com/ubuntu-22-10/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Make-sure-to-change-the-option-for-new-Ubuntu-22.10-release.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-GUI-method2.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Change-the-release-upgrade-file.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-version-update-prompt-from-the-terminal-method.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Upgrade-is-in-progress.jpg +[8]: https://www.debugpoint.com/tag/ubuntu-22-10 From 1707b44aeb2541b315f1649d4c6f6fd04e744c0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Mon, 31 Oct 2022 11:12:10 +0800 Subject: [PATCH 1802/3123] Translating --- ...⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md b/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md index 78c2e75f83..d01f64b415 100644 --- a/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md +++ b/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-woeusb-ubuntu/" [#]: author: "Sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7e82aa072c47375f3fd5d756983d3fab23621f44 Mon Sep 17 00:00:00 2001 From: Donkey Date: Mon, 31 Oct 2022 15:14:13 +0800 Subject: [PATCH 1803/3123] translated --- ...t you need to know about compiling code.md | 102 ------------------ ...t you need to know about compiling code.md | 100 +++++++++++++++++ 2 files changed, 100 insertions(+), 102 deletions(-) delete mode 100644 sources/tech/20221013 What you need to know about compiling code.md create mode 100644 translated/tech/20221013 What you need to know about compiling code.md diff --git a/sources/tech/20221013 What you need to know about compiling code.md b/sources/tech/20221013 What you need to know about compiling code.md deleted file mode 100644 index c5d7f16a36..0000000000 --- a/sources/tech/20221013 What you need to know about compiling code.md +++ /dev/null @@ -1,102 +0,0 @@ -[#]: subject: "What you need to know about compiling code" -[#]: via: "https://opensource.com/article/22/10/compiling-code" -[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" -[#]: collector: "lkxed" -[#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What you need to know about compiling code -====== -Use this handy mousetrap analogy to understand compiling code. Then download our new eBook, An open source developer's guide to building applications. - -Source code must be compiled in order to run, and in open source software everyone has access to source code. Whether you've written code yourself and you want to compile and run it, or whether you've downloaded somebody's project to try it out, it's useful to know how to process source code through a [compiler][2], and also what exactly a compiler does with all that code. - -### Build a better mousetrap - -We don't usually think of a mousetrap as a computer, but believe it or not, it does share some similarities with the CPU running the device you're reading this article on. The classic (non-cat) mousetrap has two states: it's either set or released. You might consider that *on* (the kill bar is set and stores potential energy) and *off* (the kill bar has been triggered.) In a sense, a mousetrap is a computer that calculates the presence of a mouse. You might imagine this code, in an imaginary language, describing the process: - -``` -if mousetrap == 0 then - There's a mouse! -else - There's no mouse yet. -end -``` - -In other words, you can derive mouse data based on the state of a mousetrap. The mousetrap isn't foolproof, of course. There could be a mouse next to the mousetrap, and the mousetrap would still be registered as *on* because the mouse has not yet triggered the trap. So the program could use a few enhancements, but that's pretty typical. - -### Switches - -A mousetrap is ultimately a switch. You probably use a switch to turn on the lights in your house. A lot of information is stored in these mechanisms. For instance, people often assume that you're at home when the lights are on. - -You could program actions based on the activity of lights on in your neighborhood. If all lights are out, then turn down your loud music because people have probably gone to bed. - -A CPU uses the same logic, multiplied by several orders of measure, and shrunken to a microscopic level. When a CPU receives an electrical signal at a specific register, then some other register can be tripped, and then another, and so on. If those registers are made to be meaningful, then there's communication happening. Maybe a chip somewhere on the same motherboard becomes active, or an LED lights up, or a pixel on a screen changes color. - -**[[ Related read 6 Python interpreters to try in 2022 ]][3]** - -What comes around goes around. If you really want to detect a rodent in more places than the one spot you happen to have a mousetrap set, you could program an application to do just that. With a webcam and some rudimentary image recognition software, you could establish a baseline of what an empty kitchen looks like and then scan for changes. When a mouse enters the kitchen, there's a shift in the pixel values where there was previously no mouse. Log the data, or better yet trigger a drone that focuses in on the mouse, captures it, and moves it outside. You've built a better mousetrap through the magic of on and off signals. - -### Compilers - -A code compiler translates human-readable code into a machine language that speaks directly to the CPU. It's a complex process because CPUs are legitimately complex (even more complex than a mousetrap), but also because the process is more flexible than it strictly "needs" to be. Not all compilers are flexible. There are some compilers that have exactly one target, and they only accept code files in a specific layout, and so the process is relatively straight-forward. - -Luckily, modern general-purpose compilers aren't simple. They allow you to write code in a variety of languages, and they let you link libraries in different ways, and they can target several different architectures. The [GNU C Compiler (GCC)][4] has over 50 lines of options in its `--help` output, and the LLVM `clang` compiler has over 1000 lines in its `--help` output. The GCC manual contains over 100,000 words. - -You have lots of options when you compile code. - -Of course, most people don't need to know all the possible options. There are sections in the GCC man page I've never read, because they're for Objective-C or Fortran or chip architectures I've never even heard of. But I value the ability to compile code for several different architectures, for 64-bit and 32-bit, and to run open source software on computers the rest of the industry has left behind. - -### The compilation lifecycle - -Just as importantly, there's real power to understanding the different stages of compiling code. Here's the lifecycle of a simple C program: - -1. C source with macros (.c) is preprocessed with `cpp` to render an `.i` file. -2. C source code with expanded macros (.i) is translated with `gcc` to render an `.s` file. -3. A text file in Assembly language (.s) is `as`sembled with as into an `.o` file. -4. Binary object code with instructions for the CPU, and with offsets not tied to memory areas relative to other object files and libraries (*.o) is linked with `ld` to produce an executable. -5. The final binary file either has all required objects within it, or it's set to load linked dynamic libraries (*.so files). - -And here's a simple demonstration you can try (with some adjustment for library paths): - -``` -$ cat << EOF >> hello.c - #include - int main(void) - { printf("hello world\n"); -   return 0; } -   EOF -$ cpp hello.c > hello.i -$ gcc -S hello.i -$ as -o hello.o hello.s -$ ld -static -o hello \ --L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \ -/usr/lib64/crt1.o /usr/lib64/crti.o hello.o \ -/usr/lib64/crtn.o  --start-group -lc -lgcc \ --lgcc_eh --end-group -$ ./hello -hello world -``` - -### Attainable knowledge - -Computers have become amazingly powerful, and pleasantly user-friendly. Don't let that fool you into believing either of the two possible extremes: computers aren't as simple as mousetraps and light switches, but they also aren't beyond comprehension. You can learn about compiling code, about how to link, and compile for a different architecture. Once you know that, you can debug your code better. You can understand the code you download. You may even fix a bug or two. Or, in theory, you could build a better mousetrap. Or a CPU out of mousetraps. It's up to you. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/compiling-code - -作者:[Alan Smithee][a] -选题:[lkxed][b] -译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/alansmithee -[b]: https://github.com/lkxed -[2]: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters -[3]: https://opensource.com/article/22/9/python-interpreters-2022 -[4]: https://opensource.com/article/22/5/gnu-c-compiler diff --git a/translated/tech/20221013 What you need to know about compiling code.md b/translated/tech/20221013 What you need to know about compiling code.md new file mode 100644 index 0000000000..0ed6f694e3 --- /dev/null +++ b/translated/tech/20221013 What you need to know about compiling code.md @@ -0,0 +1,100 @@ +[#]: subject: "What you need to know about compiling code" +[#]: via: "https://opensource.com/article/22/10/compiling-code" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: "Donkey-Hao" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +关于编译代码你应该知道的 +====== +用这个老鼠夹比喻来理解编译代码。然后下载我们新电子书《开源开发者开发应用指导手册》。 + +每个人都可以获取开源软件源代码,必须源代码要经过编译才能够运行程序。无论你是自己编写了代码,并且想要编译和运行它,还是你已经下载了某人的项目来尝试它,了解如何通过 [编译器][2] 处理源代码,以及编译器如何处理这些代码,这都很有用。 + +### 创建一个更好的老鼠夹 + +一般情况我们不会将一个老鼠夹比作电脑,但不管你信不信,它确实与你正在使用的设备(手机或电脑)的 CPU 有一些相似之处。经典的老鼠夹有两种状态:打开或者释放。你可以认为 *打开* 是将老鼠夹设置好准备捕获老鼠,以及 *释放* 是夹子被老鼠触发。某种意义上来说,老鼠夹就像是有鼠标的电脑。你可能会想到这个代码,用虚构的语言来描述这个过程: + +``` +if mousetrap == 0 then + There's a mouse! +else + There's no mouse yet. +end +``` + +换句话说,你可以基于老鼠夹的状态发现是否有老鼠。当然,老鼠夹不是万无一失的,有可能有一只老鼠在老鼠夹旁边,由于老鼠还没有触发老鼠夹,所以它的状态还是 *打开* 的。因此该程序可以进行改进,这都是非常典型的。 + +### 开关 + +总的来说,老鼠夹就是一个开关。你会在家里使用开关打开灯。可以从开关中获得许多信息。比如,人们会从你家灯的状态了解到你是否在家。 + +你可以根据邻居家灯的状态来改变行为。如果邻居家所有的灯都熄灭了,那么请关掉你大声的音乐,因为人们可能已经上床睡觉了。 + +乘以几个数量级,缩小到微观级别的 CPU 也使用这样的逻辑。当 CPU 在特定寄存器处接收到电信号时,可以触发其他一些寄存器,然后触发另一个,以此类推。如果这些寄存器有特定的意义,那么就可以通信。也许激活同一主板上某处的芯片,或者使 LED 亮起,或者改变屏幕上的像素颜色。 + +**[[ 相关阅读:2022 年可以尝试的 6 个 Python 解释程序 ]][3]** + +种瓜得瓜,种豆得豆。如果你真的想在多个位置而不是仅限于一处发现老鼠,但是你只有一个老鼠夹,那你应该开发一个应用才行。使用网络摄像头和一些基本的图像识别软件,你可以建立空厨房的模型,然后扫描变化。当老鼠进入厨房,在原先没有老鼠的图像上会有像素的变化。记录下这些数据,如果有无人机可以追踪老鼠并捕获会更好,这样就可以将老鼠赶出厨房了。这时,你通过打开和关闭信号的魔法,创造了一个更好的捕鼠器。 + +### 编译器 + +代码编译器将人们可阅读的代码转换成 CPU 可以理解的机器语言。这是非常复杂的过程,因为 CPU 非常复杂(甚至比老鼠夹更加复杂),同时因为该过程比严格“需要”的更加灵活。并不是所有的编译器都很灵活。有一些编译器只有一个目标,它们只会处理固定格式的代码文件,处理过程也因此而简单明了。 + +幸运的是,现代通用编译器不简单。它们允许你编写不同语言的代码,也允许你用不同的方式链接库文件,并且可以生成运行在不同架构的文件。[GNU C 语言编译器][4](GCC) 的 `--help` 会输出超过 50 行的选项,LLVM 的 `clang` 编译器的 `--help` 输出超过 1000 行。GCC 指导手册的字数超过 10 万。当你在编译代码时会有很多选项。 + +当然,大多数人并不需要知道所有的选项。我从未读过 GCC 的手册页面(man page),因为它为 `Objective-C`、`Fortran` 以及我从未听说过的`芯片架构` 提供帮助。不过我重视它将代码编译为不同的架构—— 64 位或者 32 位——的能力,并且它是开源软件,这已经将其他的编译器甩在后面了。 + +### 编译生命周期 + +同样重要的是,真正厉害的是理解编译代码的不同阶段。这是一个简单的 C 语言程序的生命周期: + +1、 带有宏定义的 C 源代码 `.c` 文件,会被当作 `.cpp` 文件进行预处理为 `.i` 文件。 +2、带有扩展宏定义的 C 源代码 `.i` 文件,会被 `gcc` 翻译输出 `.s` 文件。 +3、汇编语言文本文件 `.s` 会被汇编为 `.o` 文件。 +4、带有 CPU 指令的二进制目标代码,以及相对于其他目标文件和库 (\*.o) 与内存区域无关的偏移量,使用 `ld` 链接以生成可执行文件。 +5、最终的二进制文件要么包含所有需要的对象,要么设置为加载链接的动态库(\*.so 文件)。 + +你可以试试这个简单示例(可能需要对库路径做一些调整): + +``` +$ cat << EOF >> hello.c + #include + int main(void) + { printf("hello world\n"); + return 0; } + EOF +$ cpp hello.c > hello.i +$ gcc -S hello.i +$ as -o hello.o hello.s +$ ld -static -o hello \ +-L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \ +/usr/lib64/crt1.o /usr/lib64/crti.o hello.o \ +/usr/lib64/crtn.o --start-group -lc -lgcc \ +-lgcc_eh --end-group +$ ./hello +hello world +``` + +### 可获得的知识 + +计算机已经变得非常强大,并且用户友好。请不要走向这两种可能的极端中的任何一种:计算机不像捕鼠器和电灯开关那么简单,但它们也不是无法理解的。你可以了解编译代码、如何链接以及针对不同架构进行编译。一旦你知道了,你就可以更好地调试代码。你可以理解你下载的代码,甚至可以修复其中的一两个 `bug`。同时从理论上来讲,你可以建造一个更好的捕鼠器,或者 CPU 没有捕鼠器。由你决定。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/compiling-code + +作者:[Alan Smithee][a] +选题:[lkxed][b] +译者:[Donkey-Hao](https://github.com/Donkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/alansmithee +[b]: https://github.com/lkxed +[2]: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters +[3]: https://opensource.com/article/22/9/python-interpreters-2022 +[4]: https://opensource.com/article/22/5/gnu-c-compiler From 468e68aa1c3995993ea0c8d47289e1847e0055c2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 31 Oct 2022 20:47:53 +0800 Subject: [PATCH 1804/3123] translating --- ...0.0 ⭐️ How to Enable Dark Mode in Web Browser.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md index 7ca77ebd2f..f0f5a59a1e 100644 --- a/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md +++ b/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md @@ -2,13 +2,12 @@ [#]: via: "https://www.debugpoint.com/dark-mode-browser/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -How to Enable Dark Mode in Web Browser -====== +# How to Enable Dark Mode in Web Browser **This guide is about helping you how to enable dark mode in popular web browser(s) such as Firefox, Google Chrome, Chromium and Microsoft Edge.** @@ -78,16 +77,16 @@ But we cover all the basic to advanced tutorials for all our readers. Many new L So, that said, I hope this helps you and others. Let me know in the comment box below if you face any trouble. --------------------------------------------------------------------------------- +--- via: https://www.debugpoint.com/dark-mode-browser/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[译者 ID](https://github.com/译者ID) +校对:[校对者 ID](https://github.com/校对者ID) -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 [a]: https://www.debugpoint.com/author/admin1/ [b]: https://github.com/lkxed From d8730503a4b7298342a7013edbd5fd42513c1fd2 Mon Sep 17 00:00:00 2001 From: FYJNEVERFOLLOWS Date: Mon, 31 Oct 2022 21:15:44 +0800 Subject: [PATCH 1805/3123] translating1031 --- ...2 Convert audio files with this versatile Linux command.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210202 Convert audio files with this versatile Linux command.md b/sources/tech/20210202 Convert audio files with this versatile Linux command.md index 683907b70f..a9d1803e4e 100644 --- a/sources/tech/20210202 Convert audio files with this versatile Linux command.md +++ b/sources/tech/20210202 Convert audio files with this versatile Linux command.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (FYJNEVERFOLLOWS ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -226,7 +226,7 @@ via: https://opensource.com/article/20/2/linux-sox 作者:[Klaatu][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d1eac8bf97aa37385a344a277dc3cca407315ea4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 31 Oct 2022 21:29:38 +0800 Subject: [PATCH 1806/3123] translated --- ...️ How to Enable Dark Mode in Web Browser.md | 99 ------------------- ...️ How to Enable Dark Mode in Web Browser.md | 99 +++++++++++++++++++ 2 files changed, 99 insertions(+), 99 deletions(-) delete mode 100644 sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md create mode 100644 translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md diff --git a/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md deleted file mode 100644 index f0f5a59a1e..0000000000 --- a/sources/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "How to Enable Dark Mode in Web Browser" -[#]: via: "https://www.debugpoint.com/dark-mode-browser/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -# How to Enable Dark Mode in Web Browser - -**This guide is about helping you how to enable dark mode in popular web browser(s) such as Firefox, Google Chrome, Chromium and Microsoft Edge.** - -We all love dark mode. Many people prefer it over standard light mode. While many desktop applications provide the dark mode natively, some apps adapt to dark mode via the desktop environment’s underlying modes. - -You can not deny that we all spend hours on web browsers. We seldom use desktop apps (unless you are specific to work, such as video editing, etc.). So, when you spend many hours reading and studying in a browser, you can always opt for dark mode. But, coming to the web browser, things are a little different. - -This guide gives you the simple steps which you can follow to enable dark mode in Mozilla Firefox, Chromium, Google Chrome and Edge browsers. - -### Enable Dark Mode in Web Browser - -#### Enable Dark Mode in Firefox - -- Open Firefox and click on the little hamburger menu at the right-top. -- Click `Settings > Extension and Themes`. -- Select the `Dark Theme` and click `enable`. And you should see the dark mode is applied to Firefox. - -![Enable dark mode in Firefox][1] - -Enable dark mode in Firefox browser - -![Firefox in Dark Mode][2] - -Firefox in Dark Mode - -- To revert it back, follow the same steps and select Light Theme. - -#### Dark Mode in Chromium and Google Chrome - -Chromium or Google Chrome doesn’t pre-install any dark theme by default. Hence, you need to go to Chrome Web Store and download any dark theme you want. For this guide, I would recommend “Morpheon Dark” theme, which over a million users use. - -Open the Morpheon Dark theme page (below link) from the Chromium web browser. - -[Morpheon Dark Theme in Chrome Web Store][3] - -Click on Add To Chrome button. And it should be enabled in Chrome. - -You may want to explore other Black and White or dark themes available in Chrome Web Store. [Visit this page for all collections of dark themes.][4] - -However, one thing you should remember is that – this theme would not change the settings or context menu, which is obvious. Because it just changes the browser window, and those menus are part of the operating system itself (sometimes). - -![Chromium Dark Theme][5] - -Chromium Dark Theme - -Follow the same steps for the Google Chrome browser as well. - -#### Edge Browser – Dark Mode - -[Microsoft Edge browser][6], however, comes with a better dark theme by default. It allows you to use GTK+, Light and Dark modes from settings. - -- Open Edge Browser -- Click on the three little dots on the right-top side. -- Go to Appearance and choose Dark. And you should be all set. - -This dark theme implementation of Edge is better because it changes the context menu and the address bar. - -![Edge in Dark Theme][7] - -Edge in Dark Theme - -### Closing Notes - -If you are an advanced user, you probably do not need this guide. You can figure it out. - -But we cover all the basic to advanced tutorials for all our readers. Many new Linux users may not know how also to enable dark mode in the browser. - -So, that said, I hope this helps you and others. Let me know in the comment box below if you face any trouble. - ---- - -via: https://www.debugpoint.com/dark-mode-browser/ - -作者:[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/2021/10/Enable-dark-mode-in-Firefox.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg -[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB -[4]: https://chrome.google.com/webstore/category/collection/dark_themes -[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg -[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/ -[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg diff --git a/translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md new file mode 100644 index 0000000000..4150dcc145 --- /dev/null +++ b/translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md @@ -0,0 +1,99 @@ +[#]: subject: "How to Enable Dark Mode in Web Browser" +[#]: via: "https://www.debugpoint.com/dark-mode-browser/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +# 如何在 Web 浏览器中启用深色模式 + +**本指南旨在帮助你在 Firefox、Google Chrome、Chromium 和 Microsoft Edge 等流行的网络浏览器中启用深色模式。** + +我们都喜欢黑暗模式。与标准浅色模式相比,许多人更喜欢它。虽然许多桌面应用原生提供深色模式,但一些应用通过桌面环境的底层模式适应深色模式。 + +你不能否认我们在网络浏览器上花费数小时。我们很少使用桌面应用(除非你从事专门的工作,例如视频编辑等)。因此,当你花费大量时间在浏览器中阅读和学习时,你始终可以选择深色模式。但是,来到网络浏览器,事情就有些不同了。 + +本指南为你提供了在 Mozilla Firefox、Chromium、Google Chrome 和 Edge 浏览器中启用深色模式的简单步骤。 + +### 在 Web 浏览器中启用深色模式 + +#### 在 Firefox 中启用深色模式 + +- 打开 Firefox 并点击右上角的菜单。 +- 单击 `设置 > 扩展和主题`。 +- 选择`深色主题`并点击`启用`。你应该会看到深色模式已应用于 Firefox。 + +![Enable dark mode in Firefox][1] + +在 Firefox 浏览器中启用深色模式 + +![Firefox in Dark Mode][2] + +深色模式下的 Firefox + +- 要将其还原,请按照相同的步骤并选择浅色主题。 + +#### Chromium 和 Google Chrome 中的浅色模式 + +默认情况下,Chromium 或 Google Chrome 不会预安装任何深色主题。因此,你需要前往 Chrome 应用商店并下载你想要的任何深色主题。对于本指南,我会推荐超过一百万用户使用的 “Morpheon Dark” 主题。 + +从 Chromium 浏览器打开 Morpheon Dark 主题页面(以下链接)。 + +[Chrome 应用商店中的 Morpheon Dark 主题][3] + +点击 “Add To Chrome” 按钮。它应该会在 Chrome 中启用。 + +你可能想探索 Chrome 应用店中提供的其他深色或浅色主题。 [访问此页面获取所有深色主题的集合][4]。 + +但是,你应该要记住的一件事是:此主题不会更改设置或上下文菜单,这是显而易见的。因为它只是改变了浏览器窗口,而这些菜单(有时)是操作系统本身的一部分。 + +![Chromium Dark Theme][5] + +Chromium 深色主题 + +对 Google Chrome 浏览器也遵循相同的步骤。 + +#### Edge 浏览器 – 深色模式 + +但是,[Microsoft Edge 浏览器][6]默认带有更好的深色主题。它允许你从设置中使用 GTK+、浅色和深色模式。 + +- 打开 Edge 浏览器 +- 点击右上角的三个小点。 +- 转到外观并选择深色。你应该准备好了。 + +Edge 的这种深色主题实现更好,因为它改变了上下文菜单和地址栏。 + +![Edge in Dark Theme][7] + +深色主题的 Edge + +### 结束语 + +如果你是高级用户,你可能不需要本指南。你可以弄清楚。 + +但我们为所有读者涵盖了所有基础到高级教程。许多新的 Linux 用户可能不知道如何在浏览器中启用深色模式。 + +所以,就是说,我希望这对你和其他人有帮助。如果你遇到任何问题,请在下面的评论框中告诉我。 + +--- + +via: https://www.debugpoint.com/dark-mode-browser/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者 ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/10/Enable-dark-mode-in-Firefox.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg +[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB +[4]: https://chrome.google.com/webstore/category/collection/dark_themes +[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg +[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg From 0f6e472971f8c52df37178571b79b4874b5b0a73 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 31 Oct 2022 22:28:33 +0800 Subject: [PATCH 1807/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202210?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => 202210}/20210207 The Real Novelty of the ARPANET.md | 0 .../{ => 202210}/20210415 A beginner-s guide to load balancing.md | 0 .../20210530 Complete Guide to Configuring SSH in Ubuntu.md | 0 .../20210601 Get started with Java serverless functions.md | 0 .../20210602 New ways to learn about open organizations.md | 0 .../20210604 Optimize Java serverless functions in Kubernetes.md | 0 .../20210629 Try Linux on any operating system with VirtualBox.md | 0 published/{ => 202210}/20210721 Write your first web component.md | 0 ...29 Troubleshooting -Bash- Command Not Found- Error in Linux.md | 0 .../20211022 How to Install Visual Studio Code Extensions.md | 0 .../{ => 202210}/20220129 Reasons for servers to support IPv6.md | 0 ...20616 Using habits to practice open organization principles.md | 0 ... 7 summer book recommendations from open source enthusiasts.md | 0 .../20220902 Julia and Python- Which Language is Quicker-.md | 0 published/{ => 202210}/20220902 Where is DevOps Headed-.md | 0 .../20220906 Advantages and Disadvantages of Using Linux.md | 0 .../20220912 Python Microservices Using Flask on Kubernetes.md | 0 .../{ => 202210}/20220914 3 steps to protect your home network.md | 0 ... CNCF Accepts Open Source Hexa Project As A Sandbox Project.md | 0 ...0220915 How To Prevent Command Arguments With Sudo In Linux.md | 0 ...fault Gateway IP Address In Linux And Unix From Commandline.md | 0 .../20220919 PyLint- The good, the bad, and the ugly.md | 0 .../{ => 202210}/20220920 3 ways to use the Linux inxi command.md | 0 ...d in Ubuntu, Linux Mint using Media Transfer Protocol -MTP-.md | 0 .../{ => 202210}/20220922 5 Git configurations I make on Linux.md | 0 ...lasma Themes to Make Your Linux Desktop Even More Beautiful.md | 0 .../20220923 5 Free and Open-Source Figma Alternatives.md | 0 .../{ => 202210}/20220923 Install JDBC on Linux in 3 steps.md | 0 .../{ => 202210}/20220924 Drop your database for PostgreSQL.md | 0 ...Setup Internet in CentOS, RHEL, Rocky Linux Minimal Install.md | 0 ...eech Recognition to Text in Linux, Ubuntu using Google Docs.md | 0 ...26 The story behind Joplin, the open source note-taking app.md | 0 .../20220927 Attacks On Open Source Software Are On The Rise.md | 0 .../20220927 GUI Apps for Package Management in Arch Linux.md | 0 ...t change alerts from any website with this open source tool.md | 0 ...tem76 Won-t Release Pop!_OS 22.10 Linux Distro- Here-s Why!.md | 0 ...ra is Dropping Support for Popular Video Codecs [Here-s Why!].md | 0 ...ot, Gains Additional Users Thanks To Adobe-s Figma Purchase.md | 0 ...0220929 How to Use Picture in Picture Mode in Brave Browser.md | 0 ...ve] Tuxedo Makes Ubuntu-based -TUXEDO OS- Available For All.md | 0 ... Native Linux GPU Driver for Apple Silicon is Almost Ready!.md | 0 ...21002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md | 0 ...21003 Get Ready for Ubuntu MATE Experience on Debian Linux!.md | 0 .../20221004 Security Issues With Open Source In Today-s World.md | 0 ... Source Vulkan Driver for NVIDIA Graphics is Ready to Test!.md | 0 ...ogle AI Unveils A New Open Source Library for Array Storage.md | 0 ...ntu Pro Now Gives You 10 Years of Security Updates for Free.md | 0 ...de Various Kinds of Packages in Linux at Once With Topgrade.md | 0 .../20221008 How to Create LVM Partition Step-by-Step in Linux.md | 0 .../20221010 How to Update Google Chrome on Ubuntu Linux.md | 0 .../{ => 202210}/20221010 Xubuntu 22.10- Top New Features.md | 0 .../20221011 Easiest Way to Open Files as Root in GNOME Files.md | 0 .../20221011 How to Enable Snap Support in Arch Linux.md | 0 ....0 Releases With Secure Boot and Full VM Encryption Support.md | 0 ...0221012 How to Set Static IP Address on Ubuntu Server 22.04.md | 0 ...0221013 Enjoy the Classic Snake Game in Your Linux Terminal.md | 0 .../20221013 Learn Bash base64 Encode and Decode With Examples.md | 0 .../20221014 Can Kubernetes help solve automation challenges-.md | 0 ...21014 First Look at LURE! Bringing AUR to All Linux Distros.md | 0 ...stall Gedit on Ubuntu 22.10 and Make it Default Text Editor.md | 0 ...ion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md | 0 ... but rolling but also stable That's what Rhino Linux aims to be.md | 0 ...1017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md | 0 ...0221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md | 0 ...b Copilot Appears To Be In Violation Of The Open Source Licence.md | 0 .../{ => 202210}/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md | 0 ...⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md | 0 ....10 Release Improves Control Center and Removes Some GNOME Apps.md | 0 ...ubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md | 0 published/{ => 202210}/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md | 0 ...️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md | 0 ... How to Install Python 3.10 in Ubuntu and Other Related Linux.md | 0 72 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202210}/20210207 The Real Novelty of the ARPANET.md (100%) rename published/{ => 202210}/20210415 A beginner-s guide to load balancing.md (100%) rename published/{ => 202210}/20210530 Complete Guide to Configuring SSH in Ubuntu.md (100%) rename published/{ => 202210}/20210601 Get started with Java serverless functions.md (100%) rename published/{ => 202210}/20210602 New ways to learn about open organizations.md (100%) rename published/{ => 202210}/20210604 Optimize Java serverless functions in Kubernetes.md (100%) rename published/{ => 202210}/20210629 Try Linux on any operating system with VirtualBox.md (100%) rename published/{ => 202210}/20210721 Write your first web component.md (100%) rename published/{ => 202210}/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md (100%) rename published/{ => 202210}/20211022 How to Install Visual Studio Code Extensions.md (100%) rename published/{ => 202210}/20220129 Reasons for servers to support IPv6.md (100%) rename published/{ => 202210}/20220616 Using habits to practice open organization principles.md (100%) rename published/{ => 202210}/20220621 7 summer book recommendations from open source enthusiasts.md (100%) rename published/{ => 202210}/20220902 Julia and Python- Which Language is Quicker-.md (100%) rename published/{ => 202210}/20220902 Where is DevOps Headed-.md (100%) rename published/{ => 202210}/20220906 Advantages and Disadvantages of Using Linux.md (100%) rename published/{ => 202210}/20220912 Python Microservices Using Flask on Kubernetes.md (100%) rename published/{ => 202210}/20220914 3 steps to protect your home network.md (100%) rename published/{ => 202210}/20220914 CNCF Accepts Open Source Hexa Project As A Sandbox Project.md (100%) rename published/{ => 202210}/20220915 How To Prevent Command Arguments With Sudo In Linux.md (100%) rename published/{ => 202210}/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md (100%) rename published/{ => 202210}/20220919 PyLint- The good, the bad, and the ugly.md (100%) rename published/{ => 202210}/20220920 3 ways to use the Linux inxi command.md (100%) rename published/{ => 202210}/20220921 How to Access Android Devices Internal Storage and SD Card in Ubuntu, Linux Mint using Media Transfer Protocol -MTP-.md (100%) rename published/{ => 202210}/20220922 5 Git configurations I make on Linux.md (100%) rename published/{ => 202210}/20220923 11 Gorgeous KDE Plasma Themes to Make Your Linux Desktop Even More Beautiful.md (100%) rename published/{ => 202210}/20220923 5 Free and Open-Source Figma Alternatives.md (100%) rename published/{ => 202210}/20220923 Install JDBC on Linux in 3 steps.md (100%) rename published/{ => 202210}/20220924 Drop your database for PostgreSQL.md (100%) rename published/{ => 202210}/20220926 How to Setup Internet in CentOS, RHEL, Rocky Linux Minimal Install.md (100%) rename published/{ => 202210}/20220926 Speech Recognition to Text in Linux, Ubuntu using Google Docs.md (100%) rename published/{ => 202210}/20220926 The story behind Joplin, the open source note-taking app.md (100%) rename published/{ => 202210}/20220927 Attacks On Open Source Software Are On The Rise.md (100%) rename published/{ => 202210}/20220927 GUI Apps for Package Management in Arch Linux.md (100%) rename published/{ => 202210}/20220927 Get change alerts from any website with this open source tool.md (100%) rename published/{ => 202210}/20220927 System76 Won-t Release Pop!_OS 22.10 Linux Distro- Here-s Why!.md (100%) rename published/{ => 202210}/20220928 Oh No!😱Fedora is Dropping Support for Popular Video Codecs [Here-s Why!].md (100%) rename published/{ => 202210}/20220928 Penpot, Gains Additional Users Thanks To Adobe-s Figma Purchase.md (100%) rename published/{ => 202210}/20220929 How to Use Picture in Picture Mode in Brave Browser.md (100%) rename published/{ => 202210}/20220930 [Exclusive] Tuxedo Makes Ubuntu-based -TUXEDO OS- Available For All.md (100%) rename published/{ => 202210}/20221001 A Native Linux GPU Driver for Apple Silicon is Almost Ready!.md (100%) rename published/{ => 202210}/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md (100%) rename published/{ => 202210}/20221003 Get Ready for Ubuntu MATE Experience on Debian Linux!.md (100%) rename published/{ => 202210}/20221004 Security Issues With Open Source In Today-s World.md (100%) rename published/{ => 202210}/20221006 A New Open Source Vulkan Driver for NVIDIA Graphics is Ready to Test!.md (100%) rename published/{ => 202210}/20221006 Google AI Unveils A New Open Source Library for Array Storage.md (100%) rename published/{ => 202210}/20221006 Ubuntu Pro Now Gives You 10 Years of Security Updates for Free.md (100%) rename published/{ => 202210}/20221006 Upgrade Various Kinds of Packages in Linux at Once With Topgrade.md (100%) rename published/{ => 202210}/20221008 How to Create LVM Partition Step-by-Step in Linux.md (100%) rename published/{ => 202210}/20221010 How to Update Google Chrome on Ubuntu Linux.md (100%) rename published/{ => 202210}/20221010 Xubuntu 22.10- Top New Features.md (100%) rename published/{ => 202210}/20221011 Easiest Way to Open Files as Root in GNOME Files.md (100%) rename published/{ => 202210}/20221011 How to Enable Snap Support in Arch Linux.md (100%) rename published/{ => 202210}/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md (100%) rename published/{ => 202210}/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md (100%) rename published/{ => 202210}/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md (100%) rename published/{ => 202210}/20221013 Learn Bash base64 Encode and Decode With Examples.md (100%) rename published/{ => 202210}/20221014 Can Kubernetes help solve automation challenges-.md (100%) rename published/{ => 202210}/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md (100%) rename published/{ => 202210}/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md (100%) rename published/{ => 202210}/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md (100%) rename published/{ => 202210}/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md (100%) rename published/{ => 202210}/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md (100%) rename published/{ => 202210}/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md (100%) rename published/{ => 202210}/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md (100%) rename published/{ => 202210}/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md (100%) rename published/{ => 202210}/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md (100%) rename published/{ => 202210}/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md (100%) rename published/{ => 202210}/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md (100%) rename published/{ => 202210}/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md (100%) rename published/{ => 202210}/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md (100%) rename published/{ => 202210}/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md (100%) diff --git a/published/20210207 The Real Novelty of the ARPANET.md b/published/202210/20210207 The Real Novelty of the ARPANET.md similarity index 100% rename from published/20210207 The Real Novelty of the ARPANET.md rename to published/202210/20210207 The Real Novelty of the ARPANET.md diff --git a/published/20210415 A beginner-s guide to load balancing.md b/published/202210/20210415 A beginner-s guide to load balancing.md similarity index 100% rename from published/20210415 A beginner-s guide to load balancing.md rename to published/202210/20210415 A beginner-s guide to load balancing.md diff --git a/published/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/published/202210/20210530 Complete Guide to Configuring SSH in Ubuntu.md similarity index 100% rename from published/20210530 Complete Guide to Configuring SSH in Ubuntu.md rename to published/202210/20210530 Complete Guide to Configuring SSH in Ubuntu.md diff --git a/published/20210601 Get started with Java serverless functions.md b/published/202210/20210601 Get started with Java serverless functions.md similarity index 100% rename from published/20210601 Get started with Java serverless functions.md rename to published/202210/20210601 Get started with Java serverless functions.md diff --git a/published/20210602 New ways to learn about open organizations.md b/published/202210/20210602 New ways to learn about open organizations.md similarity index 100% rename from published/20210602 New ways to learn about open organizations.md rename to published/202210/20210602 New ways to learn about open organizations.md diff --git a/published/20210604 Optimize Java serverless functions in Kubernetes.md b/published/202210/20210604 Optimize Java serverless functions in Kubernetes.md similarity index 100% rename from published/20210604 Optimize Java serverless functions in Kubernetes.md rename to published/202210/20210604 Optimize Java serverless functions in Kubernetes.md diff --git a/published/20210629 Try Linux on any operating system with VirtualBox.md b/published/202210/20210629 Try Linux on any operating system with VirtualBox.md similarity index 100% rename from published/20210629 Try Linux on any operating system with VirtualBox.md rename to published/202210/20210629 Try Linux on any operating system with VirtualBox.md diff --git a/published/20210721 Write your first web component.md b/published/202210/20210721 Write your first web component.md similarity index 100% rename from published/20210721 Write your first web component.md rename to published/202210/20210721 Write your first web component.md diff --git a/published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/published/202210/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md similarity index 100% rename from published/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md rename to published/202210/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md diff --git a/published/20211022 How to Install Visual Studio Code Extensions.md b/published/202210/20211022 How to Install Visual Studio Code Extensions.md similarity index 100% rename from published/20211022 How to Install Visual Studio Code Extensions.md rename to published/202210/20211022 How to Install Visual Studio Code Extensions.md diff --git a/published/20220129 Reasons for servers to support IPv6.md b/published/202210/20220129 Reasons for servers to support IPv6.md similarity index 100% rename from published/20220129 Reasons for servers to support IPv6.md rename to published/202210/20220129 Reasons for servers to support IPv6.md diff --git a/published/20220616 Using habits to practice open organization principles.md b/published/202210/20220616 Using habits to practice open organization principles.md similarity index 100% rename from published/20220616 Using habits to practice open organization principles.md rename to published/202210/20220616 Using habits to practice open organization principles.md diff --git a/published/20220621 7 summer book recommendations from open source enthusiasts.md b/published/202210/20220621 7 summer book recommendations from open source enthusiasts.md similarity index 100% rename from published/20220621 7 summer book recommendations from open source enthusiasts.md rename to published/202210/20220621 7 summer book recommendations from open source enthusiasts.md diff --git a/published/20220902 Julia and Python- Which Language is Quicker-.md b/published/202210/20220902 Julia and Python- Which Language is Quicker-.md similarity index 100% rename from published/20220902 Julia and Python- Which Language is Quicker-.md rename to published/202210/20220902 Julia and Python- Which Language is Quicker-.md diff --git a/published/20220902 Where is DevOps Headed-.md b/published/202210/20220902 Where is DevOps Headed-.md similarity index 100% rename from published/20220902 Where is DevOps Headed-.md rename to published/202210/20220902 Where is DevOps Headed-.md diff --git a/published/20220906 Advantages and Disadvantages of Using Linux.md b/published/202210/20220906 Advantages and Disadvantages of Using Linux.md similarity index 100% rename from published/20220906 Advantages and Disadvantages of Using Linux.md rename to published/202210/20220906 Advantages and Disadvantages of Using Linux.md diff --git a/published/20220912 Python Microservices Using Flask on Kubernetes.md b/published/202210/20220912 Python Microservices Using Flask on Kubernetes.md similarity index 100% rename from published/20220912 Python Microservices Using Flask on Kubernetes.md rename to published/202210/20220912 Python Microservices Using Flask on Kubernetes.md diff --git a/published/20220914 3 steps to protect your home network.md b/published/202210/20220914 3 steps to protect your home network.md similarity index 100% rename from published/20220914 3 steps to protect your home network.md rename to published/202210/20220914 3 steps to protect your home network.md diff --git a/published/20220914 CNCF Accepts Open Source Hexa Project As A Sandbox Project.md b/published/202210/20220914 CNCF Accepts Open Source Hexa Project As A Sandbox Project.md similarity index 100% rename from published/20220914 CNCF Accepts Open Source Hexa Project As A Sandbox Project.md rename to published/202210/20220914 CNCF Accepts Open Source Hexa Project As A Sandbox Project.md diff --git a/published/20220915 How To Prevent Command Arguments With Sudo In Linux.md b/published/202210/20220915 How To Prevent Command Arguments With Sudo In Linux.md similarity index 100% rename from published/20220915 How To Prevent Command Arguments With Sudo In Linux.md rename to published/202210/20220915 How To Prevent Command Arguments With Sudo In Linux.md diff --git a/published/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md b/published/202210/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md similarity index 100% rename from published/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md rename to published/202210/20220919 How To Find Default Gateway IP Address In Linux And Unix From Commandline.md diff --git a/published/20220919 PyLint- The good, the bad, and the ugly.md b/published/202210/20220919 PyLint- The good, the bad, and the ugly.md similarity index 100% rename from published/20220919 PyLint- The good, the bad, and the ugly.md rename to published/202210/20220919 PyLint- The good, the bad, and the ugly.md diff --git a/published/20220920 3 ways to use the Linux inxi command.md b/published/202210/20220920 3 ways to use the Linux inxi command.md similarity index 100% rename from published/20220920 3 ways to use the Linux inxi command.md rename to published/202210/20220920 3 ways to use the Linux inxi command.md diff --git a/published/20220921 How to Access Android Devices Internal Storage and SD Card in Ubuntu, Linux Mint using Media Transfer Protocol -MTP-.md b/published/202210/20220921 How to Access Android Devices Internal Storage and SD Card in Ubuntu, Linux Mint using Media Transfer Protocol -MTP-.md similarity index 100% rename from published/20220921 How to Access Android Devices Internal Storage and SD Card in Ubuntu, Linux Mint using Media Transfer Protocol -MTP-.md rename to published/202210/20220921 How to Access Android Devices Internal Storage and SD Card in Ubuntu, Linux Mint using Media Transfer Protocol -MTP-.md diff --git a/published/20220922 5 Git configurations I make on Linux.md b/published/202210/20220922 5 Git configurations I make on Linux.md similarity index 100% rename from published/20220922 5 Git configurations I make on Linux.md rename to published/202210/20220922 5 Git configurations I make on Linux.md diff --git a/published/20220923 11 Gorgeous KDE Plasma Themes to Make Your Linux Desktop Even More Beautiful.md b/published/202210/20220923 11 Gorgeous KDE Plasma Themes to Make Your Linux Desktop Even More Beautiful.md similarity index 100% rename from published/20220923 11 Gorgeous KDE Plasma Themes to Make Your Linux Desktop Even More Beautiful.md rename to published/202210/20220923 11 Gorgeous KDE Plasma Themes to Make Your Linux Desktop Even More Beautiful.md diff --git a/published/20220923 5 Free and Open-Source Figma Alternatives.md b/published/202210/20220923 5 Free and Open-Source Figma Alternatives.md similarity index 100% rename from published/20220923 5 Free and Open-Source Figma Alternatives.md rename to published/202210/20220923 5 Free and Open-Source Figma Alternatives.md diff --git a/published/20220923 Install JDBC on Linux in 3 steps.md b/published/202210/20220923 Install JDBC on Linux in 3 steps.md similarity index 100% rename from published/20220923 Install JDBC on Linux in 3 steps.md rename to published/202210/20220923 Install JDBC on Linux in 3 steps.md diff --git a/published/20220924 Drop your database for PostgreSQL.md b/published/202210/20220924 Drop your database for PostgreSQL.md similarity index 100% rename from published/20220924 Drop your database for PostgreSQL.md rename to published/202210/20220924 Drop your database for PostgreSQL.md diff --git a/published/20220926 How to Setup Internet in CentOS, RHEL, Rocky Linux Minimal Install.md b/published/202210/20220926 How to Setup Internet in CentOS, RHEL, Rocky Linux Minimal Install.md similarity index 100% rename from published/20220926 How to Setup Internet in CentOS, RHEL, Rocky Linux Minimal Install.md rename to published/202210/20220926 How to Setup Internet in CentOS, RHEL, Rocky Linux Minimal Install.md diff --git a/published/20220926 Speech Recognition to Text in Linux, Ubuntu using Google Docs.md b/published/202210/20220926 Speech Recognition to Text in Linux, Ubuntu using Google Docs.md similarity index 100% rename from published/20220926 Speech Recognition to Text in Linux, Ubuntu using Google Docs.md rename to published/202210/20220926 Speech Recognition to Text in Linux, Ubuntu using Google Docs.md diff --git a/published/20220926 The story behind Joplin, the open source note-taking app.md b/published/202210/20220926 The story behind Joplin, the open source note-taking app.md similarity index 100% rename from published/20220926 The story behind Joplin, the open source note-taking app.md rename to published/202210/20220926 The story behind Joplin, the open source note-taking app.md diff --git a/published/20220927 Attacks On Open Source Software Are On The Rise.md b/published/202210/20220927 Attacks On Open Source Software Are On The Rise.md similarity index 100% rename from published/20220927 Attacks On Open Source Software Are On The Rise.md rename to published/202210/20220927 Attacks On Open Source Software Are On The Rise.md diff --git a/published/20220927 GUI Apps for Package Management in Arch Linux.md b/published/202210/20220927 GUI Apps for Package Management in Arch Linux.md similarity index 100% rename from published/20220927 GUI Apps for Package Management in Arch Linux.md rename to published/202210/20220927 GUI Apps for Package Management in Arch Linux.md diff --git a/published/20220927 Get change alerts from any website with this open source tool.md b/published/202210/20220927 Get change alerts from any website with this open source tool.md similarity index 100% rename from published/20220927 Get change alerts from any website with this open source tool.md rename to published/202210/20220927 Get change alerts from any website with this open source tool.md diff --git a/published/20220927 System76 Won-t Release Pop!_OS 22.10 Linux Distro- Here-s Why!.md b/published/202210/20220927 System76 Won-t Release Pop!_OS 22.10 Linux Distro- Here-s Why!.md similarity index 100% rename from published/20220927 System76 Won-t Release Pop!_OS 22.10 Linux Distro- Here-s Why!.md rename to published/202210/20220927 System76 Won-t Release Pop!_OS 22.10 Linux Distro- Here-s Why!.md diff --git a/published/20220928 Oh No!😱Fedora is Dropping Support for Popular Video Codecs [Here-s Why!].md b/published/202210/20220928 Oh No!😱Fedora is Dropping Support for Popular Video Codecs [Here-s Why!].md similarity index 100% rename from published/20220928 Oh No!😱Fedora is Dropping Support for Popular Video Codecs [Here-s Why!].md rename to published/202210/20220928 Oh No!😱Fedora is Dropping Support for Popular Video Codecs [Here-s Why!].md diff --git a/published/20220928 Penpot, Gains Additional Users Thanks To Adobe-s Figma Purchase.md b/published/202210/20220928 Penpot, Gains Additional Users Thanks To Adobe-s Figma Purchase.md similarity index 100% rename from published/20220928 Penpot, Gains Additional Users Thanks To Adobe-s Figma Purchase.md rename to published/202210/20220928 Penpot, Gains Additional Users Thanks To Adobe-s Figma Purchase.md diff --git a/published/20220929 How to Use Picture in Picture Mode in Brave Browser.md b/published/202210/20220929 How to Use Picture in Picture Mode in Brave Browser.md similarity index 100% rename from published/20220929 How to Use Picture in Picture Mode in Brave Browser.md rename to published/202210/20220929 How to Use Picture in Picture Mode in Brave Browser.md diff --git a/published/20220930 [Exclusive] Tuxedo Makes Ubuntu-based -TUXEDO OS- Available For All.md b/published/202210/20220930 [Exclusive] Tuxedo Makes Ubuntu-based -TUXEDO OS- Available For All.md similarity index 100% rename from published/20220930 [Exclusive] Tuxedo Makes Ubuntu-based -TUXEDO OS- Available For All.md rename to published/202210/20220930 [Exclusive] Tuxedo Makes Ubuntu-based -TUXEDO OS- Available For All.md diff --git a/published/20221001 A Native Linux GPU Driver for Apple Silicon is Almost Ready!.md b/published/202210/20221001 A Native Linux GPU Driver for Apple Silicon is Almost Ready!.md similarity index 100% rename from published/20221001 A Native Linux GPU Driver for Apple Silicon is Almost Ready!.md rename to published/202210/20221001 A Native Linux GPU Driver for Apple Silicon is Almost Ready!.md diff --git a/published/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md b/published/202210/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md similarity index 100% rename from published/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md rename to published/202210/20221002 How to Enable RPM Fusion Repo in Fedora, CentOS, RHEL.md diff --git a/published/20221003 Get Ready for Ubuntu MATE Experience on Debian Linux!.md b/published/202210/20221003 Get Ready for Ubuntu MATE Experience on Debian Linux!.md similarity index 100% rename from published/20221003 Get Ready for Ubuntu MATE Experience on Debian Linux!.md rename to published/202210/20221003 Get Ready for Ubuntu MATE Experience on Debian Linux!.md diff --git a/published/20221004 Security Issues With Open Source In Today-s World.md b/published/202210/20221004 Security Issues With Open Source In Today-s World.md similarity index 100% rename from published/20221004 Security Issues With Open Source In Today-s World.md rename to published/202210/20221004 Security Issues With Open Source In Today-s World.md diff --git a/published/20221006 A New Open Source Vulkan Driver for NVIDIA Graphics is Ready to Test!.md b/published/202210/20221006 A New Open Source Vulkan Driver for NVIDIA Graphics is Ready to Test!.md similarity index 100% rename from published/20221006 A New Open Source Vulkan Driver for NVIDIA Graphics is Ready to Test!.md rename to published/202210/20221006 A New Open Source Vulkan Driver for NVIDIA Graphics is Ready to Test!.md diff --git a/published/20221006 Google AI Unveils A New Open Source Library for Array Storage.md b/published/202210/20221006 Google AI Unveils A New Open Source Library for Array Storage.md similarity index 100% rename from published/20221006 Google AI Unveils A New Open Source Library for Array Storage.md rename to published/202210/20221006 Google AI Unveils A New Open Source Library for Array Storage.md diff --git a/published/20221006 Ubuntu Pro Now Gives You 10 Years of Security Updates for Free.md b/published/202210/20221006 Ubuntu Pro Now Gives You 10 Years of Security Updates for Free.md similarity index 100% rename from published/20221006 Ubuntu Pro Now Gives You 10 Years of Security Updates for Free.md rename to published/202210/20221006 Ubuntu Pro Now Gives You 10 Years of Security Updates for Free.md diff --git a/published/20221006 Upgrade Various Kinds of Packages in Linux at Once With Topgrade.md b/published/202210/20221006 Upgrade Various Kinds of Packages in Linux at Once With Topgrade.md similarity index 100% rename from published/20221006 Upgrade Various Kinds of Packages in Linux at Once With Topgrade.md rename to published/202210/20221006 Upgrade Various Kinds of Packages in Linux at Once With Topgrade.md diff --git a/published/20221008 How to Create LVM Partition Step-by-Step in Linux.md b/published/202210/20221008 How to Create LVM Partition Step-by-Step in Linux.md similarity index 100% rename from published/20221008 How to Create LVM Partition Step-by-Step in Linux.md rename to published/202210/20221008 How to Create LVM Partition Step-by-Step in Linux.md diff --git a/published/20221010 How to Update Google Chrome on Ubuntu Linux.md b/published/202210/20221010 How to Update Google Chrome on Ubuntu Linux.md similarity index 100% rename from published/20221010 How to Update Google Chrome on Ubuntu Linux.md rename to published/202210/20221010 How to Update Google Chrome on Ubuntu Linux.md diff --git a/published/20221010 Xubuntu 22.10- Top New Features.md b/published/202210/20221010 Xubuntu 22.10- Top New Features.md similarity index 100% rename from published/20221010 Xubuntu 22.10- Top New Features.md rename to published/202210/20221010 Xubuntu 22.10- Top New Features.md diff --git a/published/20221011 Easiest Way to Open Files as Root in GNOME Files.md b/published/202210/20221011 Easiest Way to Open Files as Root in GNOME Files.md similarity index 100% rename from published/20221011 Easiest Way to Open Files as Root in GNOME Files.md rename to published/202210/20221011 Easiest Way to Open Files as Root in GNOME Files.md diff --git a/published/20221011 How to Enable Snap Support in Arch Linux.md b/published/202210/20221011 How to Enable Snap Support in Arch Linux.md similarity index 100% rename from published/20221011 How to Enable Snap Support in Arch Linux.md rename to published/202210/20221011 How to Enable Snap Support in Arch Linux.md diff --git a/published/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md b/published/202210/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md similarity index 100% rename from published/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md rename to published/202210/20221011 VirtualBox 7.0 Releases With Secure Boot and Full VM Encryption Support.md diff --git a/published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/published/202210/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md similarity index 100% rename from published/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md rename to published/202210/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md diff --git a/published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/published/202210/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md similarity index 100% rename from published/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md rename to published/202210/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md diff --git a/published/20221013 Learn Bash base64 Encode and Decode With Examples.md b/published/202210/20221013 Learn Bash base64 Encode and Decode With Examples.md similarity index 100% rename from published/20221013 Learn Bash base64 Encode and Decode With Examples.md rename to published/202210/20221013 Learn Bash base64 Encode and Decode With Examples.md diff --git a/published/20221014 Can Kubernetes help solve automation challenges-.md b/published/202210/20221014 Can Kubernetes help solve automation challenges-.md similarity index 100% rename from published/20221014 Can Kubernetes help solve automation challenges-.md rename to published/202210/20221014 Can Kubernetes help solve automation challenges-.md diff --git a/published/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md b/published/202210/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md similarity index 100% rename from published/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md rename to published/202210/20221014 First Look at LURE! Bringing AUR to All Linux Distros.md diff --git a/published/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/published/202210/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md similarity index 100% rename from published/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md rename to published/202210/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md diff --git a/published/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md b/published/202210/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md similarity index 100% rename from published/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md rename to published/202210/20221014 Notion-like Markdown Note-Taking App -Obsidian- is Out of Beta.md diff --git a/published/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md b/published/202210/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md similarity index 100% rename from published/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md rename to published/202210/20221017.2 ⭐️ Ubuntu but rolling but also stable That's what Rhino Linux aims to be.md diff --git a/published/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md b/published/202210/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md similarity index 100% rename from published/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md rename to published/202210/20221017.3 ⭐️⭐️⭐️ Open source DevOps tools in a platform future.md diff --git a/published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md b/published/202210/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md similarity index 100% rename from published/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md rename to published/202210/20221018.4 ⭐️⭐️ Give Your Linux Desktop a Halloween Makeover.md diff --git a/published/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md b/published/202210/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md similarity index 100% rename from published/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md rename to published/202210/20221019.0 ⭐️ GitHub Copilot Appears To Be In Violation Of The Open Source Licence.md diff --git a/published/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md b/published/202210/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md similarity index 100% rename from published/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md rename to published/202210/20221020.1 ⭐️ Kubuntu 22.10 is Now Available!.md diff --git a/published/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md b/published/202210/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md similarity index 100% rename from published/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md rename to published/202210/20221020.2 ⭐️ Ubuntu MATE 22.10 Release Has Some Interesting Upgrades!.md diff --git a/published/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md b/published/202210/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md similarity index 100% rename from published/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md rename to published/202210/20221020.3 ⭐️ Ubuntu Budgie 22.10 Release Improves Control Center and Removes Some GNOME Apps.md diff --git a/published/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md b/published/202210/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md similarity index 100% rename from published/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md rename to published/202210/20221020.4 ⭐️ Xubuntu 22.10 Releases With Xfce Upgrades, and Other Refinements.md diff --git a/published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md b/published/202210/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md similarity index 100% rename from published/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md rename to published/202210/20221020.5 ⭐️ Ubuntu 22.10 Is Here!.md diff --git a/published/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md b/published/202210/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md similarity index 100% rename from published/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md rename to published/202210/20221021.2 ⭐️⭐️ 10 Things to Do After Installing Ubuntu 22.10 [With Bonus Tip].md diff --git a/published/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md b/published/202210/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md similarity index 100% rename from published/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md rename to published/202210/20221022.1 ⭐️ How to Install Python 3.10 in Ubuntu and Other Related Linux.md From ccc01dd9d4da4e876ca8817ff1bde4b149af4a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 1 Nov 2022 00:48:11 +0800 Subject: [PATCH 1808/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221031.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=2020=20technology=20horror=20stories=20about?= =?UTF-8?q?=20learning=20the=20hard=20way.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...chnology horror stories about learning the hard way.md | 262 ++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md diff --git a/sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md b/sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md new file mode 100644 index 0000000000..6902cdd07b --- /dev/null +++ b/sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md @@ -0,0 +1,262 @@ +[#]: subject: "20 technology horror stories about learning the hard way" +[#]: via: "https://opensource.com/article/22/10/technology-horror-stories" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +20 technology horror stories about learning the hard way +====== + +Sysadmins, web designers, engineers, and programmers share their scariest experiences on the command line. + +Halloween will be here before you know it! This fun, over-the-top holiday is a great time to ponder the mortal fears of the developer in each of us. What haunts you the most, in the quiet moments just before your code starts to run? + +Getting into the spirit of Halloween, I asked some Opensource.com writers: What's the scariest code you've seen or written? + +### Bad permissions + +I was responsible for a server, and I FTP'd something up. There were some funky things displaying, so I thought some permissions needed to be changed. + +Needless to say, I foolishly turned off read mode and took down the site. (A website is not much good when nobody can access it.) + +It took me hours to fix. This was at an agency years ago when I was the sole web developer. + +—[Miriam Goldman][1] + +### Shambling HTML + +I took down a client's website, who was an author on the Wall Street Journal bestseller list at the time, because the original WordPress default theme had an update available. + +His developer had hardcoded HTML into the theme instead of creating a child theme. I ran the update. + +This was in the days when folks didn't have nightly backups easily, so I spent hours on the phone with the hosting provider. Things like staging, child themes, nightly backups, or manual backups, are all now normal things, as well as the ability to auto-update and manually roll back. Not so in that era. + +—[Courtney Robertson][2] + +### Not-so-secret key + +I think many of us have seen a secret key in public code before. Or another favorite: A friend of mine sending emails to 100,000 users from the dev server. + +—[John E. Picozzi][3] + +### Unix mix-up + +This is a Unix story. It's fixed in [Linux][4] today. + +A day before I was going to give an important demo of a new component to management, I had to refresh my code (this was way before [Git][5] existed.) I went to my home directory, found the project directory, and deleted everything. Unfortunately, in that flavor of Unix, this command followed symbolic links, and I had a link to the latest version of the code (not all was on the source code system as it was still in the testing phase). + +A day later, there was a network problem in the building, so the demo was delayed for a day, and we managed to recover. It was more than three decades ago. Even now I have no clue whether the network problem was a coincidence or an attempt of our sysadmin to save us (if so, it worked!) + +—[Josh Salomon][6] + +### Imperative + +Seeing `!important;` all over a CSS file instead of proper use of specificity. + +I once had to override and customize almost all of a WordPress theme's CSS because the owner of the site wouldn't budge on getting a new theme that was closer to the design he wanted. + +That same theme was last updated by the developer in 2018, and the website is still using it. + +—[Christi Nickerson][7] + +### Misquoted + +In a previous role, my predecessor misquoted the lyrics to Journey's "Any Way You Want It" in a code comment. + +—[Ben Cotton][8] + +### The ghost of Algol68 + +Algol68's complexity, back in the late 1960s and early 1970s, frightened away many influential people, including Niklaus Wirth. The most common complaint I can recall back then was along the lines of "who could write a compiler for such a complicated beast?" And yet many people did. Moreover, many of the concepts developed or at least formalized as [Algol68][9] appeared in later languages, notably in C and the Bourne shell (thanks to Steve Bourne). + +Some of Algol68's concepts have not aged well. The concept of I/O dealing with "books" and "chapters," and so on, is a bit weird today. Leaving things like character sets to the implementation seems pretty old-fashioned. + +But some are, or should be, tremendously relevant today, such as expressions that yield a value, strong typing (types in Algol68 are called "modes"), [heap memory and garbage collection][10], definition and overloading of operators, and more. + +Sticking with the Hallowe'en theme, both tricks and treats. + +Algol68 is a language that merits study, if for no other reason than to see where so many of modern computing's ideas came from, and to see how many have been lost along the way. + +—[Chris Hermansen][11] + +### Passwords exposed + +I was doing a tech audit for an incoming support client, and the previous developer put passwords in plain text throughout the full theme, and used horrible ways to connect to a remote database. Their composer file was also ghoulishly bloated. It took five minutes every time I tried to get the site up and running locally. Outdated dependencies, repos I could not access, the list goes on. + +—[Miriam Goldman][1] + +### The maze + +The scariest code I ever saw was a piece of PDP-11 assembly language in the kernel of an operating system named RSTS, which nobody remembers today. Source code was on microfiche in those days, and I had followed this code path through a few twists and turns, trying to figure out what was going on. And then, I ran into this instruction: + +``` +MOV R5,PC +``` + +I threw up my hands and wailed. I really did wail. People in the office thought I'd hit my head, or had a heart attack. + +In those days, memory was precious and a `MOV` instruction used a teeny tiny bit less memory than a `BR` (for "branch") instruction. Copying the contents of register 5 into the program counter was really a cheap unconditional branch to the address stored in register 5. Except, I had no clue what was stored in register 5, or how to find it. + +To this day, almost 40 years later, I wonder who would write code like that and how anyone could debug it. + +—[Greg Scott][12] + +### Off by one + +I work in the automation industry, where the PLCs are programmed in some pretty weird languages. + +An example that haunts me is the fact that in the language [ST][13], you can define arrays to begin at index 1. It means that the first element is at position 1, not 0. It drives me nuts when I see it. + +—[Stephan Avenwedde][14] + +### Divergence + +I took a MongoDB instance down for 40 minutes once during a stage-to-prod launch. Our staging environment had diverged from production. It was just a database configuration difference—not very exciting. But it's a good lesson to make sure your staging and prod environments are in sync! + +—[Em Nouveau][15] + +### Unearthly whispers + +This is from a project that's still alive and kicking, but I've changed the code to hide the source. + +``` +for(int c =0; y < yyy && c < ccc; y++, c++){// some code here} +``` + +It seems like an innocent loop at first. But maybe you're asking why there are two variables with two stop conditions and two increments. And then you realize there's only one initializer and the second variable (`y`) is initialized before this loop in a different code block. + +When I realized this, it took me about an hour to understand why the code was written in this way, and how it's supposed to work. Obviously, there were no `c` comments and the variable names are meaningless (`c` is called `c` in the code and `y` has a bit more meaningful name, but not meaningful enough to explain to me its meaning, not even today when I understand what it does). + +—[Josh Salomon][6] + +### Critical data + +Around 1980, I got my first job after college. I was the Assistant Computing Center Director at an engineering college in Indiana. That's a fancy title for the second-in-command of a two-person IT shop. I handled administrative computing on a PDP-11/40, with RK05 removable "pizza platter" disk drives (2.5 MB each.) Each admin office had one drive, and part of my job was to back them up, disk to disk, every week. But I got busy over that summer and skipped the Registrar's Office four weeks in a row. And then I realized the risk, so I made sure to start my monthly disk-to-tape backup. + +I dismounted the Registrar's pizza platter from the 11/40 and mounted it on the 11/70, which had a 9-track tape drive, and started my backup. A few minutes later, I heard a scraping noise inside that disk drive. Yep, the heads crashed. In a few short minutes, I'd destroyed all the Registrar's data, and the then-most-recent backup, which was a four-week-old 9 track tape. + +It was a, well, uncomfortable moment when I had to look the Registrar department head in the eye and tell him I had destroyed all his data. + +Today, I tell new IT people you're not a pro until you've destroyed somebody's critical data, and there's no way to recover it. Remember that feeling in the pit of your stomach forever. + +—[Greg Scott][12] + +### Angry mob + +A client hacked WordPress core to add features that later came out in a routine update and couldn't understand why the site kept crashing every time they attempted to update LearnDash. (They also didn't like our report that called out their poor development practices.) They basically showed us the door calling us liars and incompetents. To this day, I still have delegate access to their domains and wp-admin access to production and development of two domains. + +They also, despite us sharing a link to an encrypted location for sharing access credentials, sent our logins over emails. + +—[Laura Byrne][16] + +### Don't forget to backup + +I've not worked much on corporate networks, so I haven't downed any servers. However, as I young person, I tried to help a person with an IT problem and somehow caused Windows 95 to crash, and had to reinstall it for free. + +Another of my saddest moments as a very young Amiga user was when my save disk, containing all my files, broke due to some mechanical failure. Nowadays, I've gotten better at backing up more of my important personal files. + +—[Rikard Grossman-Nielsen][17] + +### Root of all evil + +I was new to Linux, and I'd just come from DOS where I used Norton Commander. Then Midnight Commander got released and I was very happy about it. It wasn't packaged for the Linux distro I used at the time (Jurix), so I compiled it myself from source, just like other software I used at that time. It worked perfectly well, and suddenly I felt more at home on Linux. + +That's not the horror story. + +My colleagues told me not to run Midnight Commander as root, regardless of how comforting it was. But root was easy, and it felt more like DOS, so I ignored their advice. Long story short: I accidentally removed the content of the entire `/etc` directory. Until that time, I'd never had to use backups, but that day I learned that backups are actually useful. + +27 years later, I still remember this story, and I do regular backups. + +—[Peter Czanik][18] + +### Illusion + +The worst project one agency had me "make" was a one-pager that seemed straightforward at first. I said I'd be able to hash it together with some HTML and CSS, maybe a little Javascript. But they specifically asked me not to do that. They wanted me to cut out the design and literally use CSS to position those pieces around the page. They also had me add all CSS inline, directly into the HTML file, because they literally wanted **one page**. + +None of the text was real text. + +There were no real HTML elements aside from the ones needed to position those images. + +I told them that the design was simple enough that I could throw it together with actual code, but they didn't want that. They only wanted me to spend the time to cobble the pieces together and then move on to a different project. They had me make two little one-page sites like that. + +It hurt my front-end soul. It was physically painful for me to do that project. It was a temp-to-perm gig, and when they offered me full-time, I politely declined. + +—[Rachel Vasquez][19] + +### Corruption + +The scariest things to me are memory corruptions that can occur in ANSI C99. During a screencast, I captured this (not quite) paranormal occurrence in this [YouTube clip][20]. + +![Image of gseqencer before memory corruption.][21] + +The GtkEntry labeled `file` shows some random glyphs. I've double checked the [code][22], but didn't find any issues. + +The `ags_export_soundcard_open_response_callback()` function is a callback to the "response" event of GtkFileChooserDialog. (For the record, the tool to target this problem is [valgrind][23].) + +![Image of gsequencer after memory corruption.][24] + +—[Joël Krähemann][25] + +### Python fears + +The most horrific programming feature I ever saw is the access Python gives to its `dict`. Changing the type of an object at runtime is against my programming code of conduct. + +—[Josh Salomon][6] + +### Franken-net + +In 2006, I built firewalls based on Fedora and a bunch of scripting, and persuaded a customer with a large website inside a colo center to replace a proprietary firewall with one of mine. I built it and showed up to install it at 4AM one morning. That was when I learned (the hard way) that he had a load balancer behind his firewall, but with a public IP address. The customer endured a 5-minute outage, but I reconnected everything to the original, and it all came back online. + +I found a way to handle his franken-net configuration by using proxy ARP. The idea was whenever anyone from the outside world did an ARP request for the load balancer, I would answer. A few days later, I showed up at 4AM again and installed my system. This time, I knocked everything in the entire colo center offline. I had set up my proxy ARP to respond to everything, and so all traffic on the LAN eventually found me and disappeared into a black hole. + +Once I realized what I'd done, I put it all back the way it was. But the damage was done. If you tried to browse your favorite website around 4AM US Central time one morning in 2006 and it didn't respond, it might have been my fault. I knocked an entire colo site offline by installing one system in a rack and turning it on. + +The website operator screamed and I slunk out the door. They never invited me back to try again. That was a shame, because bridging probably would have worked. + +—[Greg Scott][12] + +### Your horror story + +What's your favorite technology-related horror story? Tell us in the comments (but be nice, and change project names to protect the innocent!) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/technology-horror-stories + +作者:[AmyJune Hineline][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/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/users/miriamgoldman +[2]: https://opensource.com/users/courtneyrdev +[3]: https://opensource.com/users/johnpicozzi +[4]: https://opensource.com/tags/linux +[5]: https://opensource.com/downloads/cheat-sheet-git +[6]: https://opensource.com/users/joshs +[7]: http://cnickerson.com +[8]: https://opensource.com/users/bcotton +[9]: https://opensource.com/article/20/12/learn-algol-68 +[10]: https://opensource.com/article/22/6/garbage-collection-java-virtual-machine +[11]: https://opensource.com/users/clhermansen +[12]: https://opensource.com/users/greg-scott +[13]: https://en.wikipedia.org/wiki/Structured_text +[14]: https://opensource.com/users/hansic99 +[15]: https://opensource.com/users/nouveau +[16]: http://twitter.com/@NewYorkerLaura +[17]: https://opensource.com/users/rikardgn +[18]: https://opensource.com/users/czanik +[19]: https://opensource.com/users/rachievee +[20]: https://youtu.be/Go6r-CT06zc?t=103 +[21]: https://opensource.com/sites/default/files/2022-10/gsequencer-before-memory-corruption.png +[22]: https://git.savannah.nongnu.org/cgit/gsequencer.git/tree/ags/app/ags_export_soundcard_callbacks.c?h=4.4.x#n397 +[23]: https://opensource.com/article/21/8/memory-programming-c +[24]: https://opensource.com/sites/default/files/2022-10/scarygsequencer-after-memory-corruption.png +[25]: https://opensource.com/users/joel2001k From 21bcedc9de166a4c97f5722bd9c7ce5529e4c704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 1 Nov 2022 00:50:34 +0800 Subject: [PATCH 1809/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221031.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=2010=20universal=20steps=20for=20open=20sour?= =?UTF-8?q?ce=20code=20review.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 10 universal steps for open source code review.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md new file mode 100644 index 0000000000..f432506bf1 --- /dev/null +++ b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -0,0 +1,134 @@ +[#]: subject: "10 universal steps for open source code review" +[#]: via: "https://opensource.com/article/22/10/code-review" +[#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 universal steps for open source code review +====== + +Code review doesn't have to be scary when you follow this universal process. + +Have you ever found yourself in a situation where you needed to do a code review but didn't fully understand the project? Maybe you did not review it to avoid looking like you didn't know what you were doing. + +This article assures you that there's a better way. You don't need to know everything to provide a code review. In fact, based on my experience, that's quite common. + +I remember when I joined Red Hat as an intern and was asked to help with code reviews. We used a system of +1 or -1 votes, and I was initially very hesitant to weigh in. I found myself asking whether when I gave a +1 on a change but then someone else voted -1, would I look foolish? + +What does happen if someone votes -1 on a change you've vote +1? The answer is nothing! You might have missed a detail that the other person noticed. It's not the end of the world. That's why we have this voting system. Like the rest of open source, merging code is a collaborative effort. + +Lately, I've been so inundated with code reviews that I can hardly keep up with them. I also noticed that the number of contributors doing these reviews steadily decreased. + +For this reason, I'm writing about my point of view on writing a code review. In this article, I'll share some helpful tips and tricks. I'll show you a few questions you should ask yourself and a few ideas of what to look for when doing a code review. + +### What is the purpose of a code review? + +Have you ever written a really simple patch? Something you think is so trivial that it doesn't require a review? Maybe you merged it straight away. Later, it turns out there was a mistake, something obvious or silly, like the wrong indentation or a few duplicated lines of code instead of a function call (yes, I'm speaking from experience!). + +A code review by someone else would have caught these things. + +The point of a code review is to bring a fresh pair of eyes with a new perspective on the problem you're trying to solve. That new context is exactly the reason a code review is crucial. + +You may think that you must be an expert in the language to review someone else's code, the project, or both. Here's a secret all code reviewers want you to know: That's wrong! You don't need to fully understand the project or the language to provide a fresh perspective on a change. There's a universal process of code review. + +### The universal process of a code review + +Here's my process for code review, grouped into a couple of points. The process provides questions I ask myself to help me focus on a code change and its consequences. You don't need to go in this specific order. If there's a step, you can't execute for any reason, just move to another step. + +### 1. Understand the change, what it's trying to solve, and why + +The explanation of why the change is needed and any relevant context should be in the commit message. If it isn't, request it and feel free to -1 until it's provided. + +Is it something that needs to be solved? Is it something the project should focus on, or is it completely out of scope? + +### 2. How would you implement the solution? Would it be different? + +At this point, you know what the code change is about. How would you have done it? Think about this before reviewing the change in detail. If the solution you have in mind is different from the one you're reviewing, and you think it's better, bring that up in the review. You don't need to -1 it; just ask why the author didn't go in this direction and see how the discussion evolves. + +### 3. Run the code with and without the change + +I usually put a few breakpoints into the code, run it, and inspect how the new code interacts with the rest. + +If you can't run the whole code, try to copy the function containing the new code to a new local file, simulate the input data, and run that. This is helpful when you either don't know how to run the whole project or when it requires a specific environment to which you don't have access. + +### 4. Can the new code break anything? + +I mean, really anything. Think about the consequences. + +In the case of a new command-line option, will it always be accepted by the target? + +Can a situation occur when the option wouldn't be accepted or when it could conflict with something? + +Maybe it's a new import. Is the new library, and possibly a new dependency, available in the older releases or systems you ship the project for? + +What about security? Is the new dependency safe to use? The least you can do is run a quick Internet search to find out. Also, look for warnings in the console log. Sometimes there are more secure methods within the same library. + +### 5. Is the code effective? + +You've determined that the proposed solution is probably correct. Now it's time to check the code itself, its effectiveness, and its necessity. + +Check the style of the new code. Does it match the style of the project? Any open source project has (or should have) a document informing (new) contributors about the styles and good practices the project follows. + +For instance, every project in the OpenStack community has a HACKING.rst file. There's often also [a guide for new contributors][1] with all the must-know information. + +### 6. Check that all new variables and imports are used + +Often, there have been many iterations of the code you're reviewing, and sometimes the final version is very different from when it started. It's easy to forget an import or a new variable that was needed in a former version of the new code. Automation usually checks these things using linting tools like [flake8][2] in the case of Python code. + +Can you rewrite the code without declaring new variables? Well, usually, yes, but the question is whether it's better that way. Does it bring any benefit? The goal isn't to create as many one-liners as possible. The goal is to write code that is both efficient and easy to read. + +### 7. Are the new functions or methods necessary? + +Is there a similar function that can be reused somewhere in the project? It's always worth helping to avoid reinventing the wheel and re-implementing logic that's already been defined. + +### 8. Are there unit tests? + +If the patch adds a new function or new logic in a function, it should also include new unit tests for that. It's always better when the author of a new function also writes unit tests for it. + +### 9. Verify refactoring + +If the commit refactors existing code (it renames a variable, changes variable scope, changes the footprint of a function by adding or removing arguments, or removes something), ask yourself: + +- Can this be removed? Will it affect the stable branch? +- Are all the occurrences deleted? + +You can use the [grep command][3] to find out. You wouldn't believe how many times I've voted -1 just because of this. This is a simple mistake that anyone can make, but that also means anyone can uncover it. + +The owner of the commit can easily overlook these things, which is totally understandable. It's happened to me many times too. I'd finally figured out the root of the problem I'd been fixing, so I was in a rush to propose the review, and then I forgot to check the whole repo. + +Apart from the project's repository, sometimes it's also necessary to check other code consumers. If some other project imports this one, they may need refactoring, too. In the OpenStack community, we have a tool that searches across every community project. + +### 10. Does project documentation need to be modified? + +Again, you can use the [grep command][4] to check whether the project documentation mentions anything related to the code change. Apply common sense to determine whether a change needs to be documented for end users or it's just an internal change that doesn't affect user experience. + +### Bonus tip: Be considerate + +Be considerate, precise, and descriptive if you make a suggestion or comment on something after you've reviewed the new code. Ask questions if you don't understand something. If you think the code is wrong, explain why you think so. Remember, the author can't fix it if they don't know what's broken. + +### Final words + +The only bad review is no review. By reviewing and voting, you provide your point of view and vote only for that. Nobody expects you to give the final yes or no (unless you're a core maintainer!), but the voting system allows you to provide your perspective and opinion. A patch owner will be glad you did it, trust me. + +Can you think of any other steps for a good review? Do you have any special technique different from mine? Let us all know in the comments! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/code-review + +作者:[Martin Kopec][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/martin-kopec +[b]: https://github.com/lkxed +[1]: https://docs.openstack.org/tempest/latest/contributor/contributing.html +[2]: https://opensource.com/article/19/5/python-flake8 +[3]: https://opensource.com/downloads/grep-cheat-sheet +[4]: https://www.redhat.com/sysadmin/how-to-use-grep From 31cc767d8585392abaef93affaffb507c9dd5652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 1 Nov 2022 00:51:17 +0800 Subject: [PATCH 1810/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221031.2=20=E2=AD=90=EF=B8=8F=20How=20to=20View=20?= =?UTF-8?q?AVIF=20Images=20in=20Ubuntu=20and=20Other=20Linux=20Distributio?= =?UTF-8?q?ns.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ges in Ubuntu and Other Linux Distributions.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md diff --git a/sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md b/sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md new file mode 100644 index 0000000000..4c046a8533 --- /dev/null +++ b/sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md @@ -0,0 +1,90 @@ +[#]: subject: "How to View AVIF Images in Ubuntu and Other Linux Distributions" +[#]: via: "https://itsfoss.com/view-avif-images-linux/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to View AVIF Images in Ubuntu and Other Linux Distributions +====== + +PNGs are the best when it comes to quality but they are huge in size and hence not ideal for websites. + +JPEGs reduce the file size but they reduce the quality of the images significantly. + +WebP is a relatively newer format that produces better-quality images with significantly smaller sizes. + +Now, [AVIF][1] is a new file format that compresses images without sacrificing quality. They are smaller than WebP for the same image quality. + +[Linux has started providing WebP support][2] recently. However, AVIF image format is not yet supported by default in many distributions. + +If you download an image in AVIF format from the web, it won’t display the thumbnail. + +![avif image no thumbnail][3] + +And if you try to open it with the default image viewer, it is likely to show ‘unrecognized image file format’ error. + +![avif images dont open linux][4] + +So, what’s the solution? Can you not view AVIF images on Linux at all? + +Nope, that’s not the case. There is always a workaround when it comes to Linux. + +### Viewing AVIF image files in Linux + +There is a handy [image viewer][5] called gThumb that can be used for opening AVIF images on Linux. + +It should be available in the repositories of most Linux distributions, if not all. + +On Ubuntu and Debian-based distributions, use the following command to install gThumb. + +``` +sudo apt install gthumb +``` + +![install gthumb ubuntu][6] + +Once installed, select an AVIF image, right-click on it and select “Open With” option. Here, select gThumb, make it default for AVIF images and open it. + +![make gthumb default for avif][7] + +gThumb shows all the images from the same folder in thumbnail format under the opened image. + +![avif image opened with gthumb in linux][8] + +Once you open AVIF images with gThumb, they should also be displayed with thumbnails. + +![avif image thumbnail][9] + +That’s it. You can now enjoy AVIF images on your Linux desktop. + +### Conclusion + +gThumb is an extremely versatile and capable application. It makes me wonder why it is not used as the default image viewer in GNOME or other desktop environments and distributions. + +And about default AVIF support in Linux, sooner or later it will be added. For now, gThumb does the job. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/view-avif-images-linux/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://aomediacodec.github.io/av1-avif/ +[2]: https://itsfoss.com/webp-ubuntu-linux/ +[3]: https://itsfoss.com/wp-content/uploads/2022/10/avif-image-no-thumbnail.png +[4]: https://itsfoss.com/wp-content/uploads/2022/10/avif-images-dont-open-linux.png +[5]: https://itsfoss.com/image-viewers-linux/ +[6]: https://itsfoss.com/wp-content/uploads/2022/10/install-gthumb-ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/10/make-gthumb-default-for-avif.png +[8]: https://itsfoss.com/wp-content/uploads/2022/10/avif-image-opened-with-gthumb-in-linux.webp +[9]: https://itsfoss.com/wp-content/uploads/2022/10/avif-image-thumbnail.png From 03047c7b30c8ea9c2bed80c5e548c129a4f781fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 1 Nov 2022 00:51:56 +0800 Subject: [PATCH 1811/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221031.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20Best=20Mastodon=20Clients=20for=20Ubuntu=20and=20Other=20Li?= =?UTF-8?q?nux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...est Mastodon Clients for Ubuntu and Other Linux.md | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md diff --git a/sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md b/sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md new file mode 100644 index 0000000000..e6167e0765 --- /dev/null +++ b/sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md @@ -0,0 +1,168 @@ +[#]: subject: "5 Best Mastodon Clients for Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/mastodon-clients-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +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.** + +[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 + +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. + +Tootle is actively developed, and it is an official GNOME Circle app. And we featured it in our [GNOME Apps series (#5)][2]. + +![Tootle Mastodon Client for Linux][3] + +Tootle + +The easiest way to install Tootle 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. + +[Install Tootle][5] + +**More information about Tootle** + +- [Source Code][6] +- [Home page][7] + +#### 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] + +Tokodon Mastodon Client for Linux + +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. + +[Install Tokodon via Flathub][9] + +**More information about****Tokodon** + +- [Source code][10] +- [Home page][11] + +#### 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. + +Sengi is perfect for heavy Mastodon users who want to manage multiple accounts and timelines. You can even set up and Twitter bridge as well. + +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][12] + +Sengi Mastodon Client | Image Credit: Sengi + +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] + +**More information about Sengi** + +- [Source code][14] + +#### 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. + +![Whalebird Mastodon Client][15] + +Whalebird Mastodon Client | Image Credit: Whalebird + +Finally, installing Whalebird is easy because it comes with an AppImage executable for Linux. Also, it provides the exe and dmg file for other OSes, which you can grab using the below link. + +[Download Whalebird][16] + +**More information about Whalebird** + +- [Source code][17] + +#### 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. + +But it might not be a stable client and may contain bugs. But you can still try it out. + +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][18] + +**More information about TheDesk** + +- [Source code][19] +- [Home page][20] + +### Other Options to access Mastodon + +#### Mastodon Web + +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/][1] + +#### 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. + +#### Apple iPhone & iPad + +If you are iPhone or iPad user, you can get the official Mastodon client (developed by Mastodon) [from here][23]. It should work for MacBook as well. + +### 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, don’t forget to follow us on our official Mastodon page using the link below.** + +- [Mastodon][24] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/mastodon-clients-linux/ + +作者:[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://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 +[4]: https://flatpak.org/setup/ +[5]: https://dl.flathub.org/repo/appstream/com.github.bleakgrey.tootle.flatpakref +[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/wp-content/uploads/2022/04/Whalebird-Mastodon-Client.jpg +[16]: https://github.com/h3poteto/whalebird-desktop/releases +[17]: https://github.com/h3poteto/whalebird-desktop +[18]: https://www.debugpoint.com +[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://apps.apple.com/us/app/mastodon-for-iphone-and-ipad/id1571998974 +[24]: https://floss.social/@debugpoint From bad31dd3ccd1b3fc521d845784ea995ebba4038c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 1 Nov 2022 00:54:32 +0800 Subject: [PATCH 1812/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221031.4=20=E2=AD=90=EF=B8=8F=20Portmaster=201.0?= =?UTF-8?q?=20Release=20Marks=20it=20as=20a=20Solid=20Open-Source=20Applic?= =?UTF-8?q?ation=20Firewall=20for=20Privacy-Focused=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lication Firewall for Privacy-Focused Users.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md diff --git a/sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md b/sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md new file mode 100644 index 0000000000..cf0854927f --- /dev/null +++ b/sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md @@ -0,0 +1,123 @@ +[#]: subject: "Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users" +[#]: via: "https://news.itsfoss.com/portmaster-1-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users +====== + +Portmaster is an all-in-one open-source privacy tool that you probably need. Give it a try! + +![Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users][1] + +Portmaster by [Safing][2] is a free and open-source application firewall that aims to automate the process of protecting the privacy of its users. + +**It allows you to monitor network activity, add custom connection rules for applications, and more.** + +We tested it during the alpha stage, and came to the conclusion that it had good potential to act as a viable alternative to [GlassWire][3]. Of course, it may not be a replacement, but it can be one in the near future: + +With the release of Portmaster 1.0, we can recommend everyone to give it a try. + +> 💡Portmaster 1.0 is a stable release suitable for every user. + +### 🆕 Portmaster 1.0: What's New? + +![portmaster 1.0][4] + +Considering this is Portmaster's first stable release, there could be room for improvement. + +However, some of the features that it brings with it include: + +- **Easy navigation to monitor app network connections** +- **Secure DNS by default** +- **Automatic blocking of trackers & malware** + +#### Automatic Blocking Of Trackers & Malware + +![portmaster 1.0 filter lists][5] + +Portmaster lets you automatically block various trackers and malware by using well-known filter lists from the likes of [AdAway][6], [abuse.ch][7], [AdGuard][8], and a few of their curated lists. + +#### Side-Dash Menu + +![portmaster 1.0 side dash menu][9] + +The presence of sidebar menu in Portmaster makes things easy, meaning it acts as a quick switcher between apps and settings. + +![portmaster side-dash][10] + +It also shows key information regarding apps that are using the network. + +Additionally, suppose you are using their [paid SPN service][11] (or Portmaster Unlimited). In that case, you can use the Side-Dash to see which countries each app connects to, alongside the number of identities in use. + +![portmaster 1.0 country identity details][12] + +#### Other Features + +![allow or block connections][13] + +In addition to the key highlights, it also gives you some powerful abilities that include: + +- **Choose your favorite DNS-over-TLS provider, like Cloudflare, Quad9, AdGuard, etc., to encrypt DNS requests.** +- **Allow/Block specific websites or applications.** +- **Specify if you do not want your apps to connect to specific countries.** +- **Block all p2p connections.** + +### 📥 Download Portmaster 1.0 + +Portmaster is currently only available for Windows and Linux, with no news on the release of a macOS version. + +They plan to support mobile platforms in the future as well. + +You can visit its official [downloads page][14] to get started for Linux (.deb/.rpm packages) and Windows. + +Explore more about the project on its [GitHub page][15]. + +[Portmaster 1.0][14] + +### 💭 My Thoughts + +Portmaster aims to succeed in a space where GlassWire is a very well-known name. It is easy to use and offers an intuitive experience. + +**But, GlassWire is not open-source and does not have a client for Linux.** + +With further refinements, I think it would be an impressive addition to every privacy-conscious computer user. + +Of course, a free and open-source alternative to any proprietary tool is a good thing, as it enables more users to try it out. + +And, Portmaster is something that helps you monitor your network connections and automate your privacy protections, I think you should take it for a spin! 😊 + +💬 Is Portmaster a good application firewall for your use-case? What do you think about it? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/portmaster-1-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/portmaster-1-0-release.png +[2]: https://safing.io/ +[3]: https://www.glasswire.com/ +[4]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0.png +[5]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Filter_Lists.png +[6]: https://adaway.org/ +[7]: https://abuse.ch/ +[8]: https://adguard.com/ +[9]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Side_Dash.png +[10]: https://news.itsfoss.com/content/images/2022/10/portmaster-1-0-screenshot.png +[11]: https://safing.io/spn/ +[12]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Country_Details.png +[13]: https://news.itsfoss.com/content/images/2022/10/manually-allow-ord-block-connections.png +[14]: https://safing.io/download/ +[15]: https://github.com/safing/portmaster/ From 26bf6cccc3d8cefbd4d8c83512b7f4d89aa270c6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 1 Nov 2022 08:50:02 +0800 Subject: [PATCH 1813/3123] translated --- ...ow to Check:Xorg or Wayland Display Server.md | 91 ------------------- ...ow to Check:Xorg or Wayland Display Server.md | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 91 deletions(-) delete mode 100644 sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md create mode 100644 translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md diff --git a/sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md b/sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md deleted file mode 100644 index a3d04b3f18..0000000000 --- a/sources/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "How to Check: Xorg or Wayland Display Server?" -[#]: via: "https://www.debugpoint.com/check-wayland-or-xorg/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Check: Xorg or Wayland Display Server? -====== - -**Here’s how you can quickly check whether you are running Xorg or Wayland Display Server.** - -With every passing day, the modern Wayland display server is making its way to all Linux distributions. Although the legacy Xorg is still relevant and will stay, Wayland is undoubtedly better in security and other performance aspects. - -However, Xorg will not completely phase out anytime soon. Probably never. - -If you are running any Linux distribution, how can you check whether you are running Xorg or Wayland? Here’s how. - -### Wayland or Xorg: Which one are you running? - -- Open a terminal window (CTRL+ALT+T) in your Linux distributions (e.g. Ubuntu, Fedora, Arch…etc.). - -- Then type the following command and hit enter. - -``` -echo $XDG_SESSION_TYPE -``` - -- The output of the command will tell you whether the current session is Wayland or Xorg (X11). - -``` -[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland -``` - -![This command can give you details about Xorg or Wayland][1] - -That’s simple. However, there are other ways as well. - -### Other methods - -#### Using Settings - -If you want a graphical method, open your Linux distribution settings application. In the about section, you should see the Wayland/X11 mentioned under some label. - -For example, in the GNOME Settings, you can find it under “Windowing system”, as shown below. - -![In GNOME Settings you can find it][2] - -#### Using session values - -You can also find it out using `loginctl` which is the [systemd][3] login manager. Remember, it only works for systemd-based systems. - -Open a terminal and run the below command. You can see the session id value. In this example `c2`. - -``` -loginctl -``` - -Now, pass the session id to the following command to get the display server type. Make sure to change c2 to your system spec. - -``` -loginctl show-session c2 -p Type -``` - -![Using loginctl to find out][4] - -### Wrapping Up - -So, these are some of the ways you can find out whether you are running Systemd or Xorg in your Linux system. You can also use the above commands in your shell scripts for further process automation. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/check-wayland-or-xorg/ - -作者:[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/10/This-command-can-give-you-details-about-Xorg-or-Wayland-1024x612.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/In-GNOME-Settings-you-can-find-it.jpg -[3]: https://www.debugpoint.com/tag/systemd/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Using-loginctl-to-find-out.jpg \ No newline at end of file diff --git a/translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md b/translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md new file mode 100644 index 0000000000..1e3e8ef099 --- /dev/null +++ b/translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md @@ -0,0 +1,91 @@ +[#]: subject: "How to Check: Xorg or Wayland Display Server?" +[#]: via: "https://www.debugpoint.com/check-wayland-or-xorg/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何检查: 是 Xorg 还是 Wayland 显示服务器? +====== + +**以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。** + +随着时间的推移,现代 Wayland 显示服务器正在进入所有 Linux 发行版。尽管遗留的 Xorg 仍然相关并且会继续存在,但 Wayland 无疑在安全性和其他性能方面更好。 + +但是,Xorg 不会很快完全淘汰。可能永远不会。 + +如果你在运行任何 Linux 发行版,如何检查运行的是 Xorg 还是 Wayland?下面是方法。 + +### Wayland 或 Xorg:你在运行哪一个? + +- 在你的 Linux 发行版(例如 Ubuntu、Fedora、Arch 等)中打开一个终端窗口 (CTRL+ALT+T)。 + +- 然后输入以下命令并回车。 + +``` +echo $XDG_SESSION_TYPE +``` + +- 命令输出会告诉你当前会话是 Wayland 还是 Xorg (X11)。 + +``` +[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland +``` + +![此命令可以为您提供有关 Xorg 或 Wayland 的详细信息][1] + +这很简单。但是,还有其他方法。 + +### 其他方法 + +#### 使用设置 + +如果你需要图形方法,请打开你的 Linux 发行版的设置应用。在关于部分,你应该看到某个标签下中的 Wayland/X11。 + +例如,在 GNOME 设置中,你可以在 “Windowing system” 下找到它,如下图所示。 + +![在 GNOME 设置中可以找到它][2] + +#### 使用会话值 + +你还可以使用 [systemd][3] 登录管理器 `loginctl` 找到它。请记住,它仅适用于基于 systemd 的系统。 + +打开终端并运行以下命令。你可以看到会话 id 值。在此示例中为 `c2`。 + +``` +loginctl +``` + +现在,将会话 ID 传递给以下命令以获取显示服务器类型。确保将 c2 更改为您的系统规格。 + +``` +loginctl show-session c2 -p Type +``` + +![使用 loginctl 查找][4] + +### 总结 + +这些是你可以确定在 Linux 系统中运行的是 Systemd 还是 Xorg 的一些方法。你还可以在 shell 脚本中使用上述命令来实现进一步的流程自动化。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/check-wayland-or-xorg/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/This-command-can-give-you-details-about-Xorg-or-Wayland-1024x612.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/In-GNOME-Settings-you-can-find-it.jpg +[3]: https://www.debugpoint.com/tag/systemd/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Using-loginctl-to-find-out.jpg \ No newline at end of file From 88bb139bf422759490a5abf6ba0be9755822f745 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 1 Nov 2022 08:52:36 +0800 Subject: [PATCH 1814/3123] translating --- ...ow to Check CPU and HDD Temperature in Ubuntu and Other Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md b/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md index f431d04ade..3473208de8 100644 --- a/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md +++ b/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1a8fdd73f16ed61e57ba27b9e5d5fc74dc999ddf Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Tue, 1 Nov 2022 10:09:31 +0800 Subject: [PATCH 1815/3123] translated --- ... on a specific day with the git log command.md | 66 ------------------- ... on a specific day with the git log command.md | 66 +++++++++++++++++++ 2 files changed, 66 insertions(+), 66 deletions(-) delete mode 100644 sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md create mode 100644 translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md diff --git a/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md b/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md deleted file mode 100644 index 3d0add6c8f..0000000000 --- a/sources/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md +++ /dev/null @@ -1,66 +0,0 @@ -[#]: subject: "How to display commits created on a specific day with the git log command" -[#]: via: "https://opensource.com/article/22/10/git-log-command" -[#]: author: "Agil Antony https://opensource.com/users/agantony" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to display commits created on a specific day with the git log command -====== - -The git log command is an important reporting tool and yet another reason to use Git. - -The `git log` command offers many opportunities to learn more about the commits made by contributors. One way you might consume such information is by date. To view commits in a Git repository created on a specific date or range of dates, use the `git log` command with the options `--since` or `--until`, or both. - -First, checkout the branch you want to inspect (for example, `main`): - -``` -$ git checkout main -``` - -Next, display the commits for the current date (today): - -``` -$ git log--oneline--since="yesterday" -``` - -Display commits for the current date by a specific author only (for example, `Agil`): - -``` -$ git log--oneline--since="yesterday"--author="Agil" -``` - -You can also display results for a range of dates. Display commits between any two dates (for example, 22 April 2022 and 24 April 2022): - -``` -$ git log--oneline--since="2022-04-22"--until="2022-04-24" -``` - -In this example, the output displays all the commits between 22 April 2022 and 24 April 2022, which excludes the commits done on 22 April 2022. If you want to include the commits done on 22 April 2022, replace `2022-04-22` with `2022-04-21`. - -Run the following command to display commits between any two dates by a specific author only (for example, `Agil`): - -``` -$ git log--oneline--since="2022-04-22" \--until="2022-04-24"--author="Agil" -``` - -### Reporting - -Git has many advantages, and one of them is the way it enables you to gather data about your project. The `git log` command is an important reporting tool and yet another reason to use Git! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/git-log-command - -作者:[Agil Antony][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/agantony -[b]: https://github.com/lkxed - diff --git a/translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md b/translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md new file mode 100644 index 0000000000..bdbc274031 --- /dev/null +++ b/translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md @@ -0,0 +1,66 @@ +[#]: subject: "How to display commits created on a specific day with the git log command" +[#]: via: "https://opensource.com/article/22/10/git-log-command" +[#]: author: "Agil Antony https://opensource.com/users/agantony" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 git log 命令显示在特定日期的提交记录 +====== + +`git log` 命令是 Git 中一个很重要的查看提交记录的工具,它也是人们喜欢使用 Git 的原因之一。 + +`git log` 命令能够让你了解到更多关于贡献者 提交 commit 的记录。使用 `git log` 的一种方式是按日期查看提交记录 。要查看**在指定日期或日期范围内**创建的 Git 存储库中的提交记录,请使用带有选项 `--since` 或 `--until` 或者同时使用以上两个选项的 `git log` 命令。 + +首先,进入你要查看的分支(例如,`main` 分支): + +``` +$ git checkout main +``` + +接下来,你可以使用以下命令,来显示当前日期(即今天)的提交记录: + +``` +$ git log --oneline --since="yesterday" +``` + +仅显示某一特定用户(例如,用户 `Agil`)在今天的提交记录: + +``` +$ git log --oneline --since="yesterday" --author="Agil" +``` + +还可以显示在某一日期范围内的提交记录。使用以下命令,显示在任意两个日期之间(例如,2022 年 4 月 22 日至 2022 年 4 月 24 日)的提交记录: + +``` +$ git log --oneline --since="2022-04-22" --until="2022-04-24" +``` + +在上面这个例子中,会输出 2022 年 4 月 22 日至 2022 年 4 月 24 日期间,不包括 2022 年 4 月 22 日的所有提交记录。如果你想要包括 2022 年 4 月 22 日的提交记录,请将命令中的 `2022-04-22` 替换为 `2022-04-21`。 + +运行以下命令,能够显示某一特定用户(例如,用户 `Agil`)在两个指定的日期之间的提交记录: + +``` +$ git log --oneline --since="2022-04-22" --until="2022-04-24" --author="Agil" +``` + +### 总结 + +Git 有很多优点,其中一个优点就是 Git 让你能够收集你项目的相关数据。`git log` 命令是一个重要的查看提交记录的工具,也是人们喜欢使用 Git 的原因之一! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/git-log-command + +作者:[Agil Antony][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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 + From 60ee8a5a0f6473643b8bbf7f09c90a27298a5255 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 1 Nov 2022 11:05:22 +0800 Subject: [PATCH 1816/3123] RP @robsean https://linux.cn/article-15199-1.html --- ...ntu 22.10 From 22.04 LTS (Jammy to Kinetic).md | 58 +++++++++---------- 1 file changed, 27 insertions(+), 31 deletions(-) rename {translated/tech => published}/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md (50%) diff --git a/translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md b/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md similarity index 50% rename from translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md rename to published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md index c1c7bf6143..4e0c0aae4f 100644 --- a/translated/tech/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md +++ b/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md @@ -3,85 +3,81 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15199-1.html" -如何从 Ubuntu 22.04 LTS 升级到 22.10 (从 Jammy 到 Kinetic) +如何从 Ubuntu 22.04 LTS 升级到 22.10 ====== -**这里是一些关于如何将你当前的 Ubuntu 22.04 LTS Jammy Jellyfish 升级到 Ubuntu 22.10 Kinetic Kudu 的步骤。** +> 这里是如何将你当前的 Ubuntu 22.04 LTS Jammy Jellyfish 升级到 Ubuntu 22.10 Kinetic Kudu 的步骤。 -一直停留在长期支持的发布版本,这是金科玉律。因为,先前的 [Ubuntu 22.04 LTS][1] Jammy Jellyfish 将被支持到2027年4月。这是一段很长的时间。 +始终停留在长期支持的发布版本,这是金科玉律。因为,先前的 [Ubuntu 22.04 LTS][1] Jammy Jellyfish 将被支持到 2027 年 4 月。这是一段很长的时间。 此外,LTS 版本超级稳定。它们很少损坏并变得不稳定。因此,如果你在笔记本电脑/台式机电脑或服务器上安装使用 LTS 版本,保持使用它。 -然而,如果你想要最新的内核、GNOME 43 和最新的技术,像 like Pipewire – 你可能会想完成版本跳级,并升级到 [Ubuntu 22.10 Kinetic Kudu][2] 。 +然而,如果你想要最新的内核、GNOME 43 和 Pipewire 之类的最新技术 – 你可能会想完成版本跳级,并升级到 [Ubuntu 22.10 Kinetic Kudu][2]。 这里是如何做的方法。 -### 升级 Ubuntu 22.04 LTS (Jammy Jellyfish) 到 Ubuntu 22.10 (Kinetic Kudu) +### 升级 Ubuntu 22.04 LTS 到 Ubuntu 22.10 -**注意**: 我希望你没有运行去年10月份发布的 Ubuntu 21.10 Impish Indri 。因为它已经不被支持。但是鉴于某些原因,你正在运行它,我建议你直接重新安装 22.10 。或者,先升级到 22.04 ,再升级到 22.10 。 +**注意**:我希望你没有运行去年 10 月份发布的 Ubuntu 21.10 Impish Indri 。因为它已经不被支持。但是鉴于某些原因,你正在运行它,我建议你直接重新安装 22.10 。或者,先升级到 22.04 ,再升级到 22.10 。 #### 在你升级前 在你升级前,做一些内务整理。这是非常重要的。 - 备份你的 `/home`、/`downloads` 和其它的文件到 USB 驱动器或任意独立的分区,以防升级失败。 - -- 如果你随着时间的流逝而添加了一些额外的 PPA ,确保将它们记录下来。虽然,在升级过程开始前,升级过程将禁用 PPA 。不过,在升级完成后,确保手动启用 PPA 。 - +- 如果你随着时间的流逝而添加了一些额外的 PPA ,确保将它们记录下来。虽然,在升级过程开始前,升级过程将禁用 PPA 。而在升级完成后,确保手动启用 PPA 。 - 记录并禁用所有的 GNOME 扩展。如果开发人员没有按照 GNOME 版本进行更新,那么扩展在升级后将会损坏。 - -- 家中常备一个 LIVE USB 磁盘。 +- 家中常备一个现场 USB 磁盘。 #### 升级步骤 -- 打开 软件包和更新 Software & Update 。 +打开 “软件包和更新Software & Update” 。 -- 转到 更新 Updates 标签页 +转到 “更新Updates” 标签页。 -- 转到 通知我新的 Ubuntu 版本 Notify me of a new Ubuntu version -- 选择 并将其更改为 任意新的版本 For any new version +转到 “通知我新的 Ubuntu 版本Notify me of a new Ubuntu version”,选择并将其更改为 “任意新的版本For any new version”。 -- 这将告诉软件包管理器来查找 Ubuntu 22.10 发布版本的详细信息。 +这将告诉软件包管理器来查找 Ubuntu 22.10 发布版本的详细信息。 ![Make sure to change the option for new Ubuntu 22.10 release][3] -- 打开一个终端,并运行下面的命令。 +打开一个终端,并运行下面的命令: ``` sudo apt updatesudo apt upgrade ``` -或者,你也可以打开软件包更新程序。安装所有的准备服役的软件包。 +或者,你也可以打开软件包更新程序。安装所有的准备就绪的软件包。 -- 在两个命令完成后,打开软件包更新。你将会看到一个升级到 Ubuntu 22.10 的提示 (如下图所示) 。 +在两个命令完成后,打开软件包更新。你将会看到一个升级到 Ubuntu 22.10 的提示(如下图所示)。 ![New version update prompt from the GUI method][4] -- 现在,单击 升级Upgrade 按钮,并按照屏幕上的说明进行操作。升级过程需要一些时间,因此,要耐心等待,直至升级完成。确保在整个升级过程中有稳定的互联网链接。 +现在,单击 “升级Upgrade” 按钮,并按照屏幕上的说明进行操作。升级过程需要一些时间,因此,要耐心等待,直至升级完成。确保在整个升级过程中有稳定的互联网链接。 如果你尚未获得更新,请等待一、两天后再次尝试。 -- 如果你没有看到上述提示,手动重新启动一次系统I。并再次添加尝试。 +如果你没有看到上述提示,手动重新启动一次系统。并再次添加尝试。 -**通过终端** +#### 通过终端 -- 在终端中通过 nano 文件编辑器打开下面的文件。 +在终端中通过 nano 文件编辑器打开下面的文件。 ``` nano /etc/update-manager/release-upgrades ``` -- 将 `Prompt=LTS` 更改为 `Prompt=normal` 。注意:如果你已经如上所述将更新标签页更改为 “任意新的版本” ,那么这个文件应该已经更新了。但是,要验证它一次。 +将 `Prompt=LTS` 更改为 `Prompt=normal` 。注意:如果你已经如上所述将更新标签页更改为 “任意新的版本For any new version” ,那么这个文件应该已经更新了。但是,要验证它一次。 ![Change the release upgrade file][5] -- 分别按下组合键 CTRL+O 和组合键 CTRL+X 来保存和退出。 +分别按下组合键 `CTRL+O` 和组合键 `CTRL+X` 来保存和退出。 -- 最后,你也可以运行下面的命令来从终端中强制升级过程。 +最后,你也可以运行下面的命令来从终端中强制升级过程。 ``` sudo do-release-upgrade -c @@ -89,7 +85,7 @@ sudo do-release-upgrade -c ![New version update prompt from the terminal method][6] -升级过程需要花费一些时间 (最少半个小时,上不封顶),这主要取决于你的互联网连接和硬件。直至等到其完成。在完成后,重新启动并享受 Ubuntu 22.10 Kinetic Kudu. +升级过程需要花费一些时间(最少半个小时,上不封顶),这主要取决于你的互联网连接和硬件。直至等到其完成。在完成后,重新启动并享受 Ubuntu 22.10 Kinetic Kudu. ![Upgrade is in progress][7] @@ -102,7 +98,7 @@ via: https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 650126abe466aac76d2aacd1eb2f5929c3db3e67 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 1 Nov 2022 16:03:55 +0800 Subject: [PATCH 1817/3123] RP @qfzy1233 https://linux.cn/article-15200-1.html --- ...⭐️ Use open source commands in Powershell.md | 88 ++++++++++++++++++ ...⭐️ Use open source commands in Powershell.md | 93 ------------------- 2 files changed, 88 insertions(+), 93 deletions(-) create mode 100644 published/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md delete mode 100644 translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md diff --git a/published/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md b/published/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md new file mode 100644 index 0000000000..74e9bd07e9 --- /dev/null +++ b/published/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md @@ -0,0 +1,88 @@ +[#]: subject: "Use open source commands in Powershell" +[#]: via: "https://opensource.com/article/22/10/set-path-powershell" +[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" +[#]: collector: "lkxed" +[#]: translator: "qfzy1233" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15200-1.html" + +设置路径在 Powershell 中使用开源命令 +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/01/160141i03e33e8pp5xp3vs.jpg) + +> 在 Windows 上设置你的路径,这样你就可以使用开源的命令。 + +当你在操作系统上启动应用程序时,操作系统需要使用某些代码库和实用程序来运行该应用程序。你的操作系统知道如何找到这些库和实用程序,因为它有一个 _系统路径_,这是一个通往许多应用程序需要的共同共享数据的地图。所有操作系统都有这一点,但用户通常不会意识到这一点,因为他们通常不需要在意它。然而,当你需要编程或使用特殊的网络实用程序或命令时,你可能需要关心你自己的 `PATH` 变量配置。 + +`PATH` 变量使你可以将命令保存到一致的位置,并使用命令提示符或更强大(而开源的)[Powershell][1] 从系统上的任何位置调用它们。 + +例如,假设你想安装开源应用程序 `pscp.exe`,它是 Windows 上著名的 PuTTY OpenSSH 客户端的命令行界面。你可以将它下载到你的硬盘,但是你的命令行如何知道它的存在呢?其实一开始,它并不知道: + +``` +PS> pscp + pscp: 命令 “pscp” 不能被识别为 cmdlet、脚本文件或可操作程序的名称。 + 检查名称的拼写,或者如果包含了路径,则检查路径是否正确,然后再试一次。 +``` + +如果你正在使用一个开源命令行,例如 Powershell 或 [Cmder][2],那么你将得到一个有用的错误提示,提示这可能是你的路径有问题(或缺少路径)。下面是解决这个问题的方法。 + +### 设置 PATH + +首先,在桌面上创建一个名为 `App` 的文件夹。 + +接下来,右键单击屏幕左下角的 Windows 菜单,然后选择 “系统System”。 + +![Image of the Windows menu system.][3] + +在弹出的 “系统System” 窗口中,单击窗口左侧的 “高级系统设置Advanced system settings” 链接。 + +在出现的 “系统属性System properties” 窗口中,单击窗口底部的 “环境变量Environment variables” 按钮。 + +![Image Windows system enviroment variables.][4] + +在 “环境变量Environment variables” 窗口中,单击 “用户变量User variables” 面板下的 “新建New” 按钮。 + +![Image of new Windows enviroment variables.][5] + +在弹出的对话框中,为 “变量名Variable name” 字段输入 `PATH`,为 “变量值Variable value” 字段输入 `%USERPROFILE\Desktop\App` 。单击 “确定OK” 按钮保存更改。 + +![Image of Windows path set.][6] + +在 `Desktop/Apps` 中放置你想从命令提示符中访问的命令和应用程序,Powershell、Cmder 甚至 Cmd 都能找到它们。 + + +``` +PS> pscp –version + pscp: Release 0.XY + Build platform: 64-bit x86 Windows + PS> +``` + +### 自动设置路径 + +许多应用程序会在安装过程中自动添加到系统路径中。然而,并不是所有的程序都如此,要么是因为你在安装过程中遗漏了一个复选框,要么是因为应用程序开发人员希望你自己添加它。当自动路径失败时,你现在知道如何自己设置路径。 + +*(图像来自:Alan Smithee, CC BY-SA 4.0)* + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/set-path-powershell + +作者:[Alan Smithee][a] +选题:[lkxed][b] +译者:[qfzy1222](https://github.com/qfzy1233) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/alansmithee +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/18/2/powershell-people +[2]: http://cmder.app/ +[3]: https://opensource.com/sites/default/files/2022-10/windows-menu-system.png +[4]: https://opensource.com/sites/default/files/2022-10/windows-system-environment-variables.png +[5]: https://opensource.com/sites/default/files/2022-10/windows-environment-variables-new.png +[6]: https://opensource.com/sites/default/files/2022-10/windows-path-set.png diff --git a/translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md b/translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md deleted file mode 100644 index 59d165394d..0000000000 --- a/translated/tech/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: subject: "Use open source commands in Powershell" -[#]: via: "https://opensource.com/article/22/10/set-path-powershell" -[#]: author: "Alan Smithee https://opensource.com/users/alansmithee" -[#]: collector: "lkxed" -[#]: translator: "qfzy1233" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在Powershell 中使用开源命令 -====== - -当你在操作系统上启动应用程序时,操作系统需要使用某些代码库和实用程序来运行该应用程序。你的操作系统知道如何找到这些库和实用程序,因为它有一个_系统路径_,一个到许多应用程序都需要用到的公共共享数据的映射。所有操作系统都有这一点,但用户通常不会意识到这一点,因为他们通常不需要在意它。然而,当你需要编程或使用特殊的网络实用程序或命令时,你可能需要关心你自己的PATH变量配置。 - -PATH变量使你可以将命令保存到一致的位置,并使用命令提示符或更强大(也是开源的)[Powershell][1]从系统上的任何位置调用它们。 - -例如,假设你想安装开源应用程序“pscp.exe”,它是Windows上著名的PuTTY OpenSSH客户端的命令行界面。你可以将它下载到你的硬盘,但是你的命令行如何知道它的存在呢?实时一开始,它并不知道: - -``` -PS> pscp - pscp: 命令“pscp”不能被识别为cmdlet、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含了路径,则检查路径是否正确,然后再试一次。 -``` - -如果你正在使用一个开源命令行,例如Powershell或[Cmder][2],那么你将得到一个有用的错误提示,提示这可能是你的路径有问题(或没有问题)。下面是解决这个问题的方法。 - -### 设置 PATH - -- 首先,在桌面上创建一个名为`App`的文件夹。 -- 接下来,右键单击屏幕左下角的Windows菜单,然后选择 **系统**. - -![Image of the Windows menu system.][3] - -Image by: - -(Alan Smithee, CC BY-SA 4.0) - -- 在弹出的“**系统**”窗口中,单击窗口左侧的“**高级系统设置**”链接。 -- 在出现的**系统属性**窗口中,单击窗口底部的**环境变量**按钮。 - -![Image Windows system enviroment variables.][4] - -Image by: - -(Alan Smithee, CC BY-SA 4.0) - -- 在**环境变量**窗口中,单击**用户变量**面板下的**新建**按钮。 - -![Image of new Windows enviroment variables.][5] - -Image by: - -(Alan Smithee, CC BY-SA 4.0) - -- 在弹出的对话框中,为**变量名**字段输入`PATH`,为**变量值**字段输入 `%USERPROFILE\Desktop\App` 。单击**OK**按钮保存更改。 - -![Image of Windows path set.][6] - -Image by: - -(Alan Smithee, CC BY-SA 4.0) - -将那些你希望从命令提示符在`Desktop\Apps`和Powershell, Cmder,Cmd中调用的命令和应用程序放置于`Desktop\Apps`路径下: - -``` -PS> pscp –version - pscp: Release 0.XY - Build platform: 64-bit x86 Windows - PS> -``` - -### PATH路径自动设置 - -许多应用程序会在安装过程中自动添加到系统路径中。然而,并不是所有的程序都如此,要么是因为你在安装过程中遗漏了一个复选框,要么是因为应用程序开发人员希望你自己添加它。当自动路径失败时,你现在知道如何自己设置路径。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/set-path-powershell - -作者:[Alan Smithee][a] -选题:[lkxed][b] -译者:[qfzy1222](https://github.com/qfzy1233) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/alansmithee -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/18/2/powershell-people -[2]: http://cmder.app/ -[3]: https://opensource.com/sites/default/files/2022-10/windows-menu-system.png -[4]: https://opensource.com/sites/default/files/2022-10/windows-system-environment-variables.png -[5]: https://opensource.com/sites/default/files/2022-10/windows-environment-variables-new.png -[6]: https://opensource.com/sites/default/files/2022-10/windows-path-set.png From 2f5c16c6786b0ed1a6e76bd43b6ca2730bf0493c Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Tue, 1 Nov 2022 21:12:34 +0800 Subject: [PATCH 1818/3123] translating --- .../tech/20220524 12 essential Linux commands for beginners.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220524 12 essential Linux commands for beginners.md b/sources/tech/20220524 12 essential Linux commands for beginners.md index c5273a7bc3..4fe7b342b8 100644 --- a/sources/tech/20220524 12 essential Linux commands for beginners.md +++ b/sources/tech/20220524 12 essential Linux commands for beginners.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/essential-linux-commands" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3d77663b20a460a01d6cdb6dc1d0a6e8e2f2c800 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 1 Nov 2022 21:35:11 +0800 Subject: [PATCH 1819/3123] RP @robsean https://linux.cn/article-15202-1.html --- ...ow to Recover Arch Linux Install via chroot.md | 112 ++++++++++++++++++ ...ow to Recover Arch Linux Install via chroot.md | 110 ----------------- 2 files changed, 112 insertions(+), 110 deletions(-) create mode 100644 published/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md delete mode 100644 translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md diff --git a/published/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/published/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md new file mode 100644 index 0000000000..549069132d --- /dev/null +++ b/published/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md @@ -0,0 +1,112 @@ +[#]: subject: "How to Recover Arch Linux Install via chroot" +[#]: via: "https://www.debugpoint.com/recover-arch-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15202-1.html" + +如何通过 chroot 恢复 Arch Linux 安装 +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/01/213036fel3lq00iz0377v3.jpg) + +> 这篇速成指南诠释了一些步骤,它对于恢复一个 Arch Linux 安装很有帮助。 + +作为一个滚动发布版本,Arch Linux 有时会崩溃。那不是你自身的问题,而是因为数百个其它的原因,例如一个新内核与你的硬件或软件的兼容性。但是,即使如此,Arch Linux 仍然是比较优秀的,并且提供最新的软件包和应用程序。 + +但是,有些时候,它会给你带来麻烦,最后你只会看到一个闪烁的光标。 + +因此,在这种情况下,在你放弃希望前,你可能希望尝试恢复系统的安装以及数据,而不是重新格式化或重新安装。这篇指南在这些方面概述了一些步骤。 + +### 恢复 Arch Linux 安装 + +第一步是创建一个可启动的 Arch Linux 的现场Live USB 。从下面的链接中下载 ISO 镜像文件,并创建一个可启动的 ISO 的启动盘。你可以查看 [这篇](https://linux.cn/article-15020-1.html) 关于如何使用 Etcher 创建可启动的 ISO 的启动盘的指南。记住,这一步骤需要在另一个工作稳定的系统上完成,很明显,这是因为你当前系统是不可用的。 + +> **[下载 arch linux][1]** + +你需要知道在 **你的 Arch Linux 安装在哪个分区上**。这是关键的一步。如果你不知道,你可以使用 GParted 来找出来。或者在你的 Grub 菜单中查看,或者也可以运行下面的命令来找出来。这将列出你所有的磁盘分区、大小和标签。 + +``` +sudo lsblk -o name,mountpoint,label,size,uuid +``` + +在完成后,插入 USB 设备,并从中启动。你应该会在现场 USB 启动后看到 Arch Linux 提示符。 + +现在,使用下面的命令挂载 Arch Linux 分区。将 `/dev/sda3` 更改为你实际对应的分区。 + +``` +mount /dev/sda3 /mnt +arch-chroot /mnt +``` + +`arch-chroot` 命令将在终端中挂载你的 Arch Linux 分区,然后,使用你的 Arch 用户名和密码来登录系统。现在,取决于你在这个阶段的需要,你可能有下面的一些选项。 + +- 你可以前往 `/home` 文件夹来备份你的数据。为防止排错手段不能解决问题。你可以复制这些文件到一块外部的 USB 磁盘或其它的分区。 +- 检查日志文件,尤其是 pacman 日志,因为升级一些软件包可能会导致系统不稳定工作,例如,图形驱动程序或其它一些驱动程序。依据日志的记载,如果你有需要的话,你可以降级一些具体指定的软件包。 + +你可以使用下面的命令来查看 pacman 日志文件的最新的 200 行日志,来找出一些引起失败的项或依赖项的缺失。 + +``` +tail -n 200 /var/log/pacman.log | less +``` + +上面的命令给出 `pacman.log` 文件的末尾处的 200 行来用于查对。现在,仔细检查自你上次成功启动以来更新了哪些软件包。 + +在某个地方记录下软件包的名称和版本。你可以尝试逐个降级软件包,或者,如果你认为是某个特定的软件包造成的问题的话,你可以使用 `pacman` 命令的 `-U` 开关选项来降级它。 + +``` +pacman -U +``` + +在降级后(如果有一些软件包进行降级的话),你可以运行下面的命令来启动你的 Arch 系统。 + +``` +exec /sbin/init +``` + +检查你的显示管理器的状态,并检查其是否有一些错误。有时,显示管理器会产生不能与 X 服务器X Server 通信的问题。例如,如果你正在使用 Lightdm ,那么你可以通过下面的命令来检查它的状态。 + +``` +systemctl status lightdm +``` + +或者,你可能希望通过下面的命令来启动它并检查错误。 + +``` +lightdm --test-mode --debug +``` + +这里是一个 Lightdm 故障的示例,它导致了 Arch 系统不稳定工作。 + +![lightdm - test mode][2] + +或者,使用 `startx` 来启动 X 服务器进行检查。 + +根据我的经验,如果你在上面的命令中看到这些错误,尝试安装另外一个显示管理器(例如 sddm)并启动它可以消除错误。 + +- 根据你的系统的实际状态来尝试上面的步骤并解决问题。针对特定的显示管理器 Lightdm 的错误,我们有一份 [指南][3],你可能会想查看它。 +- 如果你正在使用 sddm ,那么,试试 [这些排错步骤][4] 看看是否工作。 + +### 结语 + +每个系统环境都是不同的。上面的步骤不一定适合你。但是,它值得一试,根据我的经验,它是可行的。如果它可行,那么恭喜你。否则,在下面的评论区让我知晓你是如何进行的。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/recover-arch-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[robsean](https://github.com/robsean) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://archlinux.org/download/ +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg +[3]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/ +[4]: https://wiki.archlinux.org/title/SDDM#Troubleshooting diff --git a/translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md deleted file mode 100644 index c89805c7d6..0000000000 --- a/translated/tech/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: subject: "How to Recover Arch Linux Install via chroot" -[#]: via: "https://www.debugpoint.com/recover-arch-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何通过 chroot 恢复 Arch Linux 安装 -====== - -**这篇速成指南诠释了一些步骤,它对于恢复一个 Arch Linux 安装很有帮助。** - -作为一个滚动发布版本,Arch Linux 有时会崩溃。那不是因为你自身的行为,而是因为数百个其它的原因,例如一个新内核与你的硬件或软件的兼容性。但是,即使如此,Arch Linux 仍然是比较优秀的,并且提供最新的软件包和应用程序。 - -但是,有些时候,它会给你带来麻烦,最后你只会看到一个闪烁的光标。 - -因此,在这种情况下,在你放弃希望前,你可能希望尝试恢复系统的安装以及数据,而不是重新格式化或重新安装。这篇指南在这些方面概述了一些步骤。 - -### 恢复 Arch Linux 安装 - -- 第一步骤是创建一个可启动的 Arch Linux 的 LIVE USB 。从下面的链接中下载 ISO 镜像文件,并创建一个可启动的 ISO 的启动盘。你可以查看这篇关于如何使用 Etcher 创建可启动的 ISO 的启动盘的指南。记住,这一步骤需要在另一个工作稳定的系统上完成,很明显,这是因为你当前系统是不可用的。 - -[下载 arch linux][1] - -- 你需要知道在 **哪个分区上安装了你的 Arch Linux** 。这是关键的一步。如果你不知道,你可以使用 GParted 来找出来。或者在你的 Grub 菜单中查看,或你可以运行下面的命令来找出来。这将列出你所有的磁盘分区、大小和标签。 - -``` -sudo lsblk -o name,mountpoint,label,size,uuid -``` - -- 在完成后,插入 USB 设备,并设置从中启动。你应该会在 LIVE 介质中看到 Arch Linux 提示符。 - -- 现在,使用下面的命令挂载 Arch Linux 分区。将 `/dev/sda3` 更改为你实际对应的分区。 - -``` -mount /dev/sda3 /mnt -arch-chroot /mnt -``` - -- arch-chroot 命令将在终端中挂载你的 Arch Linux 分区,如此,以便使用你的 Arch 用户名和密码来登录系统。现在,取决于你在这个阶段的各种需要,你可能有下面的一些选项。 - -- 你可以前往 /home 文件夹来备份你的数据。为防止不能正常的解决重大问题。你可以复制这些文件到一块外部的 USB 磁盘或其它的分区。 - -- 验证日志文件,尤其是 pacman 日志,因为升级一些软件包可能会导致系统不稳定工作,例如,图形驱动程序或其它一些驱动程序。依据日志的记载,如果你有需要的话,你可以降级一些具体指定的软件包。 -- 你可以使用下面的命令来查看 pacman 日志文件的最新的 200 行日志,来找出一些引起失败的项或依赖项的缺失。 - -``` -tail -n 200 /var/log/pacman.log | less -``` - -- 上面的命令向你给出 pacman.log 文件的末尾处的 200 行来用于查对。现在,仔细检查自你成功启动以来更新了哪些软件包。 - -- 并且,在某个地方下,记录下软件包的名称和版本。你可以尝试逐个降级软件包,或者,如果你认为是某个特定的软件包造成的问题话,你可以使用 pacman 命令的 -U 开关选项来降级它。 - -``` -pacman -U -``` - -- 在降级后(如果有一些软件包进行降级的话),你可以运行下面的命令来启动你的 Arch 系统。 - -``` -exec /sbin/init -``` - -- 检查你的显示管理器的状态,并检查其是否有一些错误。有时,显示管理器会产生不能与 X 服务器 X Server 通信的问题。例如,如果你正在使用 lightdm ,那么你可以通过下面的命令来检查它的状态。 - -``` -systemctl status lightdm -``` - -- 或者,你可能希望通过下面的命令来启动它并检查错误。 - -``` -lightdm --test-mode --debug -``` - -- 这里是一个 lightdm 故障的示例,它导致了 Arch 系统不稳定工作。 - -![lightdm - test mode][2] - -- 或者,使用 `startx` 来启动 X 服务器 进行检查。 - -- 根据我的经验,如果你在上面的命令中看到这些错误,尝试安装另外一个显示管理器,例如, **sddm** 并启动它。它可以消除错误。 - -- 根据你的系统的实际状态来尝试上面的步骤,并解决重大问题。针对特定的显示管理器 lightdm 的错误,我们有一份[指南][3],你可能会想查看它。 -- 如果你正在使用 sddm ,那么,检查 [这些解决重大问题的步骤][4] 是否工作。 - -### 结束语 - -每个系统安装都是不同的。上面的步骤不一定适合你。但是,它值得一试,根据我的经验,它是工作的。如果它工作,对你有好处。不管怎样,在下面的评论区让我知晓它是如何进行的。 - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/recover-arch-linux/ - -作者:[Arindam][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://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://archlinux.org/download/ -[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg -[3]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/ -[4]: https://wiki.archlinux.org/title/SDDM#Troubleshooting From 034ef2d912d1eaac2bd7062507c2fd5da99c6eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:14:30 +0800 Subject: [PATCH 1820/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Get=20started=20with=20Parseable,=20an=20open=20source=20log=20?= =?UTF-8?q?storage=20and=20observability=20platform.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n source log storage and observability platform.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md diff --git a/sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md b/sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md new file mode 100644 index 0000000000..97cb466de6 --- /dev/null +++ b/sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md @@ -0,0 +1,156 @@ +[#]: subject: "Get started with Parseable, an open source log storage and observability platform" +[#]: via: "https://opensource.com/article/22/11/parseable-observability-platform" +[#]: author: "Nitish Tiwari https://opensource.com/users/tiwarinitish86" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Get started with Parseable, an open source log storage and observability platform +====== + +Written in Rust, Parseable leverages data compression, storage, and networking advances to bring a simple, efficient logging platform that just works. + +Log data is one of the fastest-growing segments across data storage. It's also one of the most complicated spaces. There are several products and solutions with overlapping use cases and confusing marketing. + +This article looks at Parseable, a log storage and observability platform. Parseable is geared towards a better user experience, with an easy-to-deploy and use interface and a simple, cloud-native architecture. I'll also show how to set up Parseable with FluentBit to store logs. + +### What is Parseable? + +[Parseable][1] is a free and open source log storage and observability platform. Written in Rust, Parseable leverages data compression, storage, and networking advances to bring a simple, efficient logging platform that just works. + +Some core concepts for building Parseable are: + +#### Indexing free + +Traditionally, text search engines like Elastic have doubled as log storage platforms. This makes sense because log data must be searched to be really useful. But indexing comes at a high cost. It is CPU intensive and slows down ingestion. Also, the index data generated by these systems are of the same order of storage as the raw log data. This doubles the storage cost and increases complexity. Parseable changes this. With columnar data formats (parquet), it is possible to compress and query the log data efficiently without indexing it. + +#### Ownership of both data and content + +With parquet as the storage format and stored in standard object storage buckets, users own their log data and have complete access to the actual content. This means users can easily use analysis tools like Spark, Presto, or TensorFlow to extract more value from the data. This feature is extremely powerful, opening up new avenues of data analysis. + +#### Fluid schema + +Logs are generally semi-structured by nature, and they're ever-evolving. For example, a developer may start with a log schema like this: + +``` +{ +  "Status": "Ready", +  "Application": "Example" +} +``` + +But as more information is collected, the log schema may evolve to: + +``` +{ +  "Status": "Ready", +  "Application": { +    "UserID": "3187F492-8449-4486-A2A0-015AE34F1D09", +    "Name": "Example" +  } +} +``` + +Engineering and SRE teams regularly face schema-related issues. Parseable solves this with a fluid schema approach that lets users change the schema on the fly. + +#### Simple ingestion + +The current ingestion mechanism for logging platforms is quite convoluted, with several available protocols and connectors. Parseable aims to make log ingestion as easy as possible. The result is you can use HTTP POST calls to send logs to Parseable. No complicated SDKs are required. + +What if you want to use a logging agent like FluentBit, Vector, LogStash, or others? Almost all the major log collectors support HTTP, so Parseable is already compatible with your favorite log collection agent. + +### Get started + +You can use a Docker image to try out Parseable. This image shows Parseable in demo mode, using publicly-accessible object storage. + +``` +$ cat<< EOF > parseable-envP_S3_URL=https://minio.parseable.io:9000P_S3_ACCESS_KEY=minioadminP_S3_SECRET_KEY=minioadminP_S3_REGION=us-east-1P_S3_BUCKET=parseableP_LOCAL_STORAGE=/dataP_USERNAME=parseableP_PASSWORD=parseable +EOF +$ mkdir-p/tmp/data +$ docker run \-p8000:8000 \--env-file parseable-env \-v/tmp/data:/data \ +  parseable/parseable:latest +``` + +Log in to the Parseable UI using the credentials passed here (that's `parseable` and `parseable`.) The demo already contains some data because Parseable is pointing to the publicly-open bucket. + +Make sure to change the bucket and credentials to your object storage instance before sending any data to Parseable. + +Refer to the [documentation][2] to understand how Parseable works and how to ingest logs. + +### Set up FluentBit to send logs to Parseable + +You can use a Docker compose file to configure both Parseable and FluentBit, making it easier to set up and tear down as needed. + +First, save this file as `fluent-bit.conf` in a directory. The file is the configuration used to send data to Parseable. + +``` +[SERVICE] +  Flush 5 +  Daemon Off +  Log_Level debug +[INPUT] +  Name dummy +  Tag dummy +[OUTPUT] +  Name http +  Match * +  Host parseable +  http_User parseable +  http_Passwd parseable +  format json +  Port 8000 +  Header X-P-META-meta1 value1 +  Header X-P-TAG-tag1 value1 +  URI /api/v1/logstream/fluentbit1 +  Json_date_key timestamp +  Json_date_format iso8601 +``` + +Now save the following file as `docker-compose.yaml` in the same directory as above: + +``` +version: "3.7" +services: +  fluent-bit: +    image: fluent/fluent-bit +    volumes:      - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf +    depends_on:      - parseable +  parseable: +    image: parseable/parseable +    ports:      - "8000:8000" +    environment:      - P_S3_URL=https://minio.parseable.io:9000 +      - P_S3_ACCESS_KEY=minioadmin +      - P_S3_SECRET_KEY=minioadmin +      - P_S3_REGION=us-east-1 +      - P_S3_BUCKET=parseable +      - P_LOCAL_STORAGE=/tmp/data +      - P_USERNAME=parseable +      - P_PASSWORD=parseable +``` + +The `docker-compose.yaml` refers to the `fluent-bit.conf` file and passes it to the FluentBit container as the configuration file. + +Parseable is deployed with the default configuration (as in the above Docker setup). You can observe the data FluentBit container sent to Parseable in the Parseable Console running at **[http://localhost:8000][3]**. + +### Wrap up + +In this article, you've taken your first look at Parseable, the open source log storage and analysis platform built in Rust. A single Docker command gets you started with Parseable so you can experience the UI and establish FluentBit as a data source. If you think this looks too easy, then it's probably time to try Parseable! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/parseable-observability-platform + +作者:[Nitish Tiwari][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/tiwarinitish86 +[b]: https://github.com/lkxed +[1]: https://github.com/parseablehq/parseable +[2]: https://www.parseable.io/docs/introduction +[3]: http://localhost:8000 From 14624d3a379f4b6c32dc5616d509eb6df61af777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:16:06 +0800 Subject: [PATCH 1821/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Transfer=20files=20and=20folders=20from=20Windows=20to=20Linux?= =?UTF-8?q?=20with=20WinSCP.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s and folders from Windows to Linux with WinSCP.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md diff --git a/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md b/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md new file mode 100644 index 0000000000..8ea3584f78 --- /dev/null +++ b/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md @@ -0,0 +1,112 @@ +[#]: subject: "Transfer files and folders from Windows to Linux with WinSCP" +[#]: via: "https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp" +[#]: author: "Paul https://opensource.com/users/plaubscher" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Transfer files and folders from Windows to Linux with WinSCP +====== + +If you're looking for a way to quickly transfer files from your Windows computer to your Linux computer, then the open source WinSCP utility makes it easy to transfer a file or a folder of files over the network. + +Sometimes you need to transfer files over a network. There are lots of file sharing services out there, but most require that you send your file to the Internet. This seems like a long way to go (not to mention the privacy concerns) when two computers are right beside each other, or at least in the same building. The open source WinSCP utility makes it quick and easy to transfer a file or a folder of files over the network from your Windows computer to your Linux computer. + +### IP address + +Before you can make the transfer, you must know the IP address or fully-qualified domain name of the destination computer. Assuming it's a computer on your same network, and that you're not running a DNS server to resolve computer names, you can find the destination IP address using the `ip` command on the Linux machine: + +``` +[linux]$ ip addr show |grep'inet ' +inet 127.0.0.1/8 scope host lo   +inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 +``` + +In all cases, 127.0.0.1 is a loopback address that the computer uses only to talk to itself, so in this example the correct address is 192.168.1.23. On your system, the IP address is likely to be different. If you're not sure which is which, you can try each one in succession until you get the right one (and then write it down somewhere!) + +Alternatively, you can look in your router's settings, which list all addresses assigned over DHCP. + +### Firewalls and servers + +The `WinSCP` command uses the OpenSSH protocol, so your Linux computer must be running the OpenSSH server software, and its firewall must allow SSH traffic. + +If you're not sure whether your Linux machine is running SSH, then run this command on the Linux machine: + +``` +[linux]$ sudo systemctl enable--now sshd +``` + +To ensure your firewall allows SSH traffic, run this command: + +``` +[linux]$ sudo firewall-cmd --add-servicessh--permanent +``` + +For more information on firewalls on Linux, read [Make Linux stronger with firewalls][1]. + +### Using WinSCP + +WinSCP is an open source SSH file transfer application for Microsoft Windows. To use it, you first must [download and][2][install][2] it. + +Once you're installed it, open WinSCP and select the **SCP** option in the **File Protocol** field. + +Add the IP address or DNS name of your Linux computer in the **Host name** field, and enter **22** in the **Port number** field. Enter you user name and password for the Linux computer, and then click the **Login** button at the bottom of the WinSCP window. + +![Image of the WinSCP login window.][3] + +Verify that you are authenticated to the Linux computer. Upon success, your Linux computer's IP address or DNS name appears at the top of the window. + +![Image of a WinSCP window showing where IP adress is located.][4] + +Now you can drag and drop a file (I used `winscp-test.txt` as an example) from the left Windows pane to the destination Linux computer pane on the right, and the file transfers. + +![Image of drag and drop window in WinSCP.][5] + +Alternatively, you can right-click on a file in the left pane and upload it to the remote destination in the right pane. + +![Image of a right click option to upload files in WinSCP.][6] + +### Verify the copy + +Open a Linux terminal and use the `ls` command to view the transferred `winscp-test.txt` file. In my example, it appears in my home directory, `/_home_/sysadmin`. + +``` +$ ls +Desktop +Documents +Downloads +Music +Pictures +pscp-test.txt[...] +``` + +You've successfully transferred a file from a Windows computer to a Linux computer over the network! + +Of course, you can use the same technique as above to transfer files and folders from a Linux computer to a Windows computer. + +### Remote copying + +With the power of the open source WinSCP application, you have access to any computer in your house or workplace, to servers you have accounts on, and even mobile, [edge][7], and Internet of Things devices. Use this great tool to transfer files as easily as you would copy a file from one local directory to another! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp + +作者:[Paul][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/plaubscher +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/7/make-linux-stronger-firewalls +[2]: https://sourceforge.net/projects/winscp/files/ +[3]: https://opensource.com/sites/default/files/2022-10/winscp.loginwindow.png +[4]: https://opensource.com/sites/default/files/2022-10/WinSCPwindow.showing.IPinfo.png +[5]: https://opensource.com/sites/default/files/2022-10/WinSCP.drapdropwindow.png +[6]: https://opensource.com/sites/default/files/2022-10/RightclickUploadfileWInSCP.png +[7]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM From f12d8054fd0f2d11d1bbe64a50c97c3053e1d7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:16:59 +0800 Subject: [PATCH 1822/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.2=20=E2=AD=90=EF=B8=8F=20Uninstall=20Snap?= =?UTF-8?q?=20Packages=20from=20Ubuntu=20and=20Other=20Linux=20Distros.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ackages from Ubuntu and Other Linux Distros.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md diff --git a/sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md b/sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md new file mode 100644 index 0000000000..f9c464b5b8 --- /dev/null +++ b/sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md @@ -0,0 +1,117 @@ +[#]: subject: "Uninstall Snap Packages from Ubuntu and Other Linux Distros" +[#]: via: "https://itsfoss.com/remove-snap/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Uninstall Snap Packages from Ubuntu and Other Linux Distros +====== + +Installed Snap package earlier and now you want to uninstall it? + +To remove a snap package, use the command in the following fashion: + +``` +sudo snap remove package_name +``` + +You need to know the exact package name here. How do you get that? Let me discuss all this in a bit more detail. + +### Uninstall Snap packages + +You need the exact package name to remove it. The tab completion works too. + +For that, list all the snap packages installed on your system: + +``` +snap list +``` + +Do you notice some entries with ✓ check marks in the screenshot below? They are ‘verified’ snap [packages from official developers][1]. + +![Listing all the installed Snap packages][2] + +If there are too many packages, you can grep with an appropriate search term. + +Once you get the package name, use it to uninstall the package. + +``` +sudo snap remove package_name +``` + +At least on the Ubuntu desktop, if you don’t use sudo with snap remove, it prompts for the password graphically. But it’s better to use sudo because you need elevated privileges for removing snap applications anyways. + +In my case, I installed Spotify on Ubuntu in snap format. Now, I remove it like this: + +``` +sudo snap remove spotify +``` + +It takes a few seconds and you should see some messages about the removal. By the end of the process, you only see the completion message. + +![uninstall snap package][3] + +And that’s how you remove applications installed in snap format. + +But what about removing snap entirely? Not the snap applications but the snap [daemon][4] itself. + +### Remove Snap entirely (not for Ubuntu) + +**WARNING! Please do not remove snapd and other core snap stuff from Ubuntu. Snap is an integral part of Ubuntu and removing them could have adverse consequences.** + +For non-Ubuntu distributions, where you manually installed Snap support, removing snapd should not create any problems. + +First, make sure that you don’t have any snap packages installed. + +``` +snap list +``` + +If there are any, remove those snap packages first. + +``` +sudo snap remove package1 package2 package3 +``` + +On Debian, Linux Mint, elementary OS etc, use the apt command to remove snapd: + +``` +sudo apt remove --purge snapd +``` + +On Fedora-based distributions, use the DNF command: + +``` +sudo dnf remove snapd +``` + +Later on, you can remove the snap folder from your home directory and /var/cache/snapd if you are particular about that. + +### Conclusion + +This was a quick tutorial for showing the steps for uninstalling snap applications. + +Some people have a strong aversion to Snap because of its “close” nature. Personally, I don’t have any special liking or dislike for it. I prefer using apt but when I don’t get the required package or version, I go for other formats like Snap, Flatpak and AppImage. + +As I mentioned earlier, please don’t remove snap daemon from Ubuntu. It may leave you with a broken system and neither of us wants that. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/remove-snap/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://forum.snapcraft.io/t/verified-developers/2005 +[2]: https://itsfoss.com/wp-content/uploads/2022/11/list-installedsnap-packages.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/uninstall-snap-package.png +[4]: https://itsfoss.com/linux-daemons/ From b13907fd57dd7d27bce25447612a8fdc6e731ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:25:16 +0800 Subject: [PATCH 1823/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221101.3=20=E2=AD=90=EF=B8=8F=20The=20Android=20Op?= =?UTF-8?q?en=20Source=20Project=20Is=20Now=20RISC-V=20Compatible.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pen Source Project Is Now RISC-V Compatible.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md diff --git a/sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md b/sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md new file mode 100644 index 0000000000..d039e99cc4 --- /dev/null +++ b/sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md @@ -0,0 +1,38 @@ +[#]: subject: "The Android Open Source Project Is Now RISC-V Compatible" +[#]: via: "https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +The Android Open Source Project Is Now RISC-V Compatible +====== + +![android][1] + +A crucial advancement for the technology is the porting of the Android Open Source Project (AOSP) to the RISC-V processor architecture. + +The AOSP has begun enabling RISC-V upstream, which will promote the use of RISC-V CPUs in wearables, the Internet of Things, and eventually smartphones and laptops. + +In an effort to open up the ecosystem, engineers and software developers from the Chinese Academy of Sciences’ PLCT Lab started porting Android 10 to the RISC-V architecture in 2020. Together, Alibaba’s Cloud division and T-Head chip subsidiary have worked hard to maintain the development up to date with the latest Android releases. + +“We are glad to see more support from Google for building AOSP targeting RISC-V! Alibaba Cloud has been committed to supporting the RISC-V community through a series of innovations, such as progressing the porting of basic Android functions onto RISC-V, which proves the feasibility of using RISC-V based devices in scenarios ranging from multimedia to signal processing, device interconnection, and artificial intelligence. We look forward to engaging with the Android team to contribute to the thriving RISC-V community down the road,” said Dr. David Chen, Director of Ecosystem from Alibaba Cloud and Vice Chair of the Applications & Tools Horizontal Committee at RISC-V International. + +By enhancing the fundamental capabilities of Android on RISC-V, experts at Alibaba Cloud made a significant effort to actively assist the software ecosystem throughout 2021. The RISC-V Android Working Group and the software repository are where the RISC-V on Android efforts are concentrated. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/ + +作者:[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/11/android-696x364.jpg From 1e59cf597240c27ce048f1c5c16b6fed1a3eddfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:27:30 +0800 Subject: [PATCH 1824/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221101.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Kate=20Editor=20is=20Getting=20Four=20New=20Awesome=20Features.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ate Editor is Getting Four New Awesome Features.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md diff --git a/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md b/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md new file mode 100644 index 0000000000..cc4268394e --- /dev/null +++ b/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md @@ -0,0 +1,114 @@ +[#]: subject: "Kate Editor is Getting Four New Awesome Features" +[#]: via: "https://news.itsfoss.com/kate-editor-22-12-features/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kate Editor is Getting Four New Awesome Features +====== + +KDE's feature-packed text editor is getting better and more useful! + +![Kate Editor is Getting Four New Awesome Features][1] + +[Kate Editor][2] is a constantly evolving and powerful open-source text editor that acts as a viable alternative to Microsoft's proprietary Visual Studio Code application. + +It is available for Linux, Windows, and macOS. + +The code editor received a significant upgrade in 2021 potentially making it KDE's answer to Microsoft's offering. + +With the upcoming Kate and KWrite 22.12 release, they aim to add a number of much-needed features. + +Let's take a brief look at what we can expect from Kate. + +### 🆕 Kate Editor: New Feature Additions + +If you have been reading [Nate's blog][3] for KDE improvements, you probably know all about the upgrades coming to KDE Plasma and the applications. + +However, some exciting additions are coming to Kate 22.12 that I wanted to highlight: + +- **Support for Qt Widgets** +- **Updated Welcome Page** +- **Git Diff Viewer** +- **Configuration Tab** +- **Clipboard History** + +#### Welcome Page + +![kate 22.12 welcome page][4] + +Image Credits: KDE + +Like many other [KDE apps][5], Kate will now show a welcome page that will greet users with a welcome screen and include options like creating or opening a file, starting a new session, viewing recent documents, and more. + +For users who might not like this, an option will be provided on the welcome page to disable this behavior for a new window. + +#### Git Diff Viewer + +![kate 22.12 git diff support][6] + +Image Credits: KDE + +Kate will finally get support for viewing git-diff; users will be able to compare their code to check for differences and find those pesky bugs that are causing their application not to run correctly. + +Users will also be able to choose from a variety of views, such as unified, side-by-side, and raw. + +#### New Clipboard History Paste Dialog + +![kate 22.12 clipboard history][7] + +Image Credits: KDE + +A new dialog has been added to Kate, showing users a list of previous clipboard content while pasting. + +This can be helpful if you are juggling between multiple lines of code and don't want to lose track of the essential bits. + +#### Configuration Tab + +![kate 22.12 configuration tab][8] + +Image Credits: KDE + +Kate will also feature a configuration tab that lets users change significant settings and a search bar to quickly find specific settings. + +#### 🛠️ Other Changes and Improvements + +Some other notable improvements to be featured on Kate 22.12 are: + +- **Optimized Status Bar** +- **Improvements to the Build Plugin** +- **Moveable Sidebar Buttons** +- **Improvements to Window Handling** + +Kate is shaping to be a suitable alternative to Microsoft's [Visual Studio Code][9] and has come a long way since its major revamp in 2021. + +In Kate's [official blog post][10], you can learn more about these changes and watch them in action. + +💬 Are you looking forward to the release of Kate 22.12? Or do you prefer VS Code? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kate-editor-22-12-features/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/kate-4-new-features.jpg +[2]: https://kate-editor.org/ +[3]: https://pointieststick.com +[4]: https://news.itsfoss.com/content/images/2022/11/Kate_22.12_Welcome.png +[5]: https://apps.kde.org/ +[6]: https://news.itsfoss.com/content/images/2022/11/Kate_22.12_GitDiff-1.png +[7]: https://news.itsfoss.com/content/images/2022/11/Kate_22.12_Clipboard_Hist-1.png +[8]: https://news.itsfoss.com/content/images/2022/11/Kate_22.12_Config-1.png +[9]: https://code.visualstudio.com/ +[10]: https://kate-editor.org/post/2022/2022-10-31-treats-for-kate/ From a06a64d98946645255bea580a68e790fae081f4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:28:35 +0800 Subject: [PATCH 1825/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221101.5=20=E2=AD=90=EF=B8=8F=20Linux=20Lite=206.2?= =?UTF-8?q?=20Released.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221101.5 ⭐️ Linux Lite 6.2 Released.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md diff --git a/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md new file mode 100644 index 0000000000..fb828c9572 --- /dev/null +++ b/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md @@ -0,0 +1,106 @@ +[#]: subject: "Linux Lite 6.2 Released" +[#]: via: "https://news.itsfoss.com/linux-lite-6-2-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Lite 6.2 Released +====== + +Linux Lite 6.2 is an ideal upgrade with the useful changes, nothing too fancy. + +![Linux Lite 6.2 Released][1] + +Linux Lite is a popular lightweight Windows-like distro that gives users a familiar operating system. + +The latest release, Linux Lite 6.2, is based on Ubuntu 22.04 LTS and has brought forward a variety of changes to the UI along with various bug fixes. + +### Linux Lite 6.2: What's New? + +![linux lite 6.2 desktop][2] + +This release of Linux Lite focuses on user interface tweaks and bug fixes, with changes to a few applications. + +Some key highlights include: + +- **Updated Icons** +- **New Wallpapers** +- **Shotcut Video Editor** +- **Removal Of Microsoft Teams** +- **LibreOffice 7.3.6.2** +- **Linux Kernel 5.15** + +#### Shotcut Replaces OpenShot + +![linux lite 6.2 shotcut video editor][3] + +Yes, [Shotcut][4] now replaces [OpenShot][5] as the default video editor on Linux Lite 6.2. + +OpenShot gets the place because it didn't work well with Ubuntu 22.04, and without a utility like this, users would have to look for one on their own. + +Shotcut is undoubtedly a good video editor. So, it should be a good option. + +#### Microsoft Teams Removed + +Another significant change is that Microsoft Teams is no longer included in the distro. + +The reason for that is the discontinuation of the Linux application by Microsoft in favor of a progressive web app version. + +Our previous coverage can give you more insight into that: + +#### Updated Icons and New Wallpapers + +![linux lite 6.2 new wallpapers][6] + +Linux Lite 6.2 features the latest [Papirus][7] icon set alongside a bunch of new Linux Lite-themed wallpapers. + +This should give the distro a refreshed look that users might like. + +#### 🛠️ Other Changes and Improvements + +![][8] + +Other notable changes include: + +- Updates to the task manager +- Improved end dialogue in the Lite Upgrade application. +- The latest updates for various applications, bug fixes, and more. + +You can go through the [full release notes][9] to learn more. + +Linux Lite 6.2 seems to be a satisfactory upgrade over the previous version, with many significant changes and additions. + +### 📥 Download Linux Lite 6.2 + +You can download the latest ISO from its official website or upgrade to it using the Lite Upgrade tool. + +[Linux Lite 6.2][10] + +💬 What do you think of Linux Lite 6.2? Willing to give it a try? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-lite-6-2-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/linux-lite-6.2.png +[2]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Desktop.png +[3]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Shotcut.png +[4]: https://shotcut.org/ +[5]: https://www.openshot.org/ +[6]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Wallpapers.png +[7]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme +[8]: https://news.itsfoss.com/content/images/2022/11/lite-upgrade.png +[9]: https://www.linuxliteos.com/forums/release-announcements/linux-lite-6-2-final-released/ +[10]: https://www.linuxliteos.com/download.php From b101ab3201bfcec033ab9dd1459a945fcfab40aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:29:14 +0800 Subject: [PATCH 1826/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20and=20Use=20GNOME=20Boxes=20to=20Create=20?= =?UTF-8?q?Virtual=20Machines.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... and Use GNOME Boxes to Create Virtual Machines.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md diff --git a/sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md b/sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md new file mode 100644 index 0000000000..8126c15ad3 --- /dev/null +++ b/sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md @@ -0,0 +1,169 @@ +[#]: subject: "How to Install and Use GNOME Boxes to Create Virtual Machines" +[#]: via: "https://www.debugpoint.com/install-use-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install and Use GNOME Boxes to Create Virtual Machines +====== + +**This quick tutorial explains the steps to install and use GNOME Boxes and create virtual machines, with some tips and troubleshooting.** + +Virtualization is the process of running a virtual instance (rather than an actual one) with an abstracted layer of hardware. In popular terms, it allows you to install and run multiple operating systems (Linux, Windows) simultaneously.  + +A [Virtual machine][1] is a simulated operating system that runs on top of another operating system and uses the same hardware and storage space as the host machine. Although, you can control how much shared memory or space can be allocated to virtual machines. + +Multiple software is available to create virtual machines, e.g. [Virtual Box][2], [virt-manager][3], KVM, Hyper-V, VM Ware player, and GNOME Boxes. + +But honestly, most of them are a little complex (for beginners) and sometimes not stable enough. [GNOME Boxes][4] is another free and open-source software that is very easy to use and makes it simple for you to create and manage virtual machines by abstracting lots of options. + +### Install GNOME Boxes + +If you are running Fedora with GNOME Spin, you should already have it installed. However, you can run the below for Ubuntu, Linux Mint, Kubuntu, and other distributions to install it in your system. + +``` +sudo apt install gnome-boxes +``` + +#### Via Flatpak + +It is also available via the Flatpak package. I would recommend you use this version. First, set up your system to use Flatpak using [this guide][5], and then run the following command from the terminal to install. + +``` +flatpak install flathub org.gnome.Boxes +``` + +### Create Virtual Machine using GNOME Boxes + +- Launch GNOME Boxes from the application menu. + +- To create a virtual machine, you need an image (*.ISO) of the operating system you want to virtualize. + +- You can download any operating system iso images from the official download page of the distributions. For this guide, I am using Pop! OS, which is an excellent Linux distribution. + +- After you launch, click on the “+” icon at the top to start and select “Create a virtual machine”. + +![Create Virtual Machine][6] + +Create Virtual Machine + +In the next window, you can choose already available downloads, or you can select your iso file as OS source. Click on the “Operating system image file” and choose your iso file. + +Assign the memory and storage space of your virtual machine. Remember, your virtual machine would take the memory and storage from your host system. So try not to assign as max. + +For example, in the below image – I have assigned 2GB memory for the virtual machine (guest) from the total 8GB memory of the host system. + +Similarly, choose minimum storage space as well if you want to just test any OS. But if you are creating a virtual machine for servers or serious work, be logical in how much space or memory you want to assign. + +Another important thing to remember is that the storage disk space which you allow will be blocked permanently unless you delete the virtual machine. So, you won’t get that much of disk space as free even if your virtual machine doesn’t use the entire allocated space.  + +![Allocate resources for your virtual machine][7] + +Allocate resources for your virtual machine + +Continue with the installation. + +In the partition window, you should see one hard disk and partition, which is the virtual machine disk space. Usually, they are named as `/dev/vda` or `/dev/sda`. + +Don’t worry; you can play around with this partition, which will not impact your physical disk partitions or any data on your actual host system. Follow the same /root partition while installing Linux, and continue. + +![Virtual machine partition][8] + +Virtual machine partition + +After you complete the installation, you should see your new operating system in the virtual machine. In the GNOME Boxes, you should see an entry to the system. You can click once to boot your virtual machine. + +You can power off the virtual machine by using your virtual machine operating system’s internal shutdown option. + +If you want, you can also delete the virtual machine by choosing the context menu option. + +![Context menu in installed virtual machine][9] + +Context menu in installed virtual machine + +You can also check how much memory and CPU your virtual machine uses from the properties window. + +Note that you can adjust your existing virtual machines’ memory and other items using properties. + +![System properties][10] + +System properties + +### Troubleshooting + +Here are some common errors or issues you may face while using GNOME Boxes. + +##### 1. Display resolution problem in virtual machines + +If your virtual machine has low resolution, which is incompatible with your host system, you must install the items below. Open up the terminal in the guest system (not in the host system) and run the below commands. + +**For Ubuntu-based distributions** + +``` +sudo apt install spice-vdagent spice-webdavd  +``` + +**For Fedora** + +``` +sudo dnf install spice-vdagent spice-webdavd  +``` + +These two packages help to determine proper resolutions, copy/paste between host and guest, share files via public folders, etc. + +Once installed, reboot the guest system, Or you can log off and re-login once after reboot; you should see the proper resolution. + +##### 2. GNOME Boxes don’t start a virtual machine in Ubuntu 18.04 + +If you are creating a virtual machine in Boxes 3.34 then you should know that there was a bug that caused your virtual machine to fail to start. To fix that you have to follow some additional steps. Remember these are not required for the latest Boxes 3.36. + +Open a terminal window and run the below command to change the qemu config file. + +``` +sudo gedit /etc/modprobe.d/qemu-system-x86.conf +``` + +Add the below line in the above file and save. + +``` +group=kvm +``` + +Now, run the below command to add your username to the KVM group. + +``` +sudo usermod -a -G kvm  +``` + +### Wrapping Up + +In this article, you have seen how to install and use GNOME Boxes to take advantage of virtualization. I hope it helps you. + +🗨️ If you face any errors or have any questions about virtual machines with GNOME Boxes, let me know using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-use-gnome-boxes/ + +作者:[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.redhat.com/en/topics/virtualization/what-is-a-virtual-machine +[2]: https://www.debugpoint.com/tag/virtualbox/ +[3]: https://www.debugpoint.com/virt-manager/ +[4]: https://wiki.gnome.org/Apps/Boxes +[5]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[6]: https://www.debugpoint.com/wp-content/uploads/2020/05/Create-Virtual-Machine.png +[7]: https://www.debugpoint.com/wp-content/uploads/2020/05/Allocate-resources-for-your-virtual-machine.png +[8]: https://www.debugpoint.com/wp-content/uploads/2020/05/Virtual-machine-partition.png +[9]: https://www.debugpoint.com/wp-content/uploads/2020/05/Context-menu-in-installed-virtual-machine.png +[10]: https://www.debugpoint.com/wp-content/uploads/2020/05/System-properties.png From 0dc16a63bd177049ad80f3729ccfe80d845ecc86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:32:14 +0800 Subject: [PATCH 1827/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.7=20=E2=AD=90=EF=B8=8F=20Move=20Virtual=20M?= =?UTF-8?q?achine=20Image=20to=20Another=20Host=20Using=20GNOME=20Boxes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ine Image to Another Host Using GNOME Boxes.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md diff --git a/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md b/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md new file mode 100644 index 0000000000..920fc0b3ad --- /dev/null +++ b/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md @@ -0,0 +1,84 @@ +[#]: subject: "Move Virtual Machine Image to Another Host Using GNOME Boxes" +[#]: via: "https://www.debugpoint.com/move-virtual-machine-image-another-host/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Move Virtual Machine Image to Another Host Using GNOME Boxes +====== + +**This guide explains the steps you need to move a Virtual Machine Image to Another Host Using GNOME Boxes.** + +GNOME Boxes is a virtualization utility created by the GNOME project. This utility works as a front end for libvirt. libvirt is an open-source API, daemon, and management tool for managing platform virtualization. It supports different virtualization technologies such as KVM, Xen, VMware ESXi, QEMU, etc. + +If you want to create virtual machines using GNOME Boxes, [refer to this guide.][1] + +In this tutorial, I will explain how you can move any Virtual Machine image file (which is already created and running using GNOME Boxes) to a different host and run it. + +This way, you do not need to re-install the virtual machine from the operating system anymore. Moreover, it is portable and you can carry your virtual machine image in a USB stick. + +### How to Move Virtual Machine Image to Another Host Using GNOME Boxes + +I hope you have already had a virtual machine created in GNOME Boxes; if not, check out [this guide][1]. + +- GNOME Boxes and [libvert][2] uses below directories for the virtual machine images and configurations. You need to take backups of each, as mentioned below, carefully. + +- GNOME Boxes keeps the virtual machine’s physical image (usually in the size of GB) in the below path. For each of your virtual machines, you will find an image there. + +``` +~/.local/share/gnome-boxes/images/ +``` + +![Machine Images][3] + +- Copy the image file to your new host’s path: `~/.local/share/gnome-boxes/images/` + +- Copy the libvirt configuration XML from the below path to your new host’s same location. + +``` +~/.config/libvirt/qemu/ +``` + +![Image XML][4] + +- In the above path, you should see separate xml files for each of your virtual machines. Copy the one you need. + +- Open the below file in your current system. + +``` +~/.config/gnome-boxes/sources/'QEMU Session' +``` + +- Copy the section (from “[display” … to end of this section) which belongs to your virtual machine. You can easily find it using the name (see below – ‘last seen name’). + +![QEMU Session File][5] + +- Open the same above file in the other host machine and append the copied content at the end. Save the file. + +- Close all applications, including GNOME Boxes, in the new host machine. + +Open GNOME Boxes now, and you should see your virtual machine moved with its contents in your new host. + +You can now have a portable virtual machine that can easily carry and move around. Remember, the target machine should have GNOME Boxes installed to make this work. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/move-virtual-machine-image-another-host/ + +作者:[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/2020/05/install-use-gnome-boxes/ +[2]: https://libvirt.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/Machine-Images.png +[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/Image-XML.png +[5]: https://www.debugpoint.com/wp-content/uploads/2020/06/QEMU-Session-File.png From ca7ec28a999803ae0894d847a6eab81ed0a29151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:33:25 +0800 Subject: [PATCH 1828/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.8=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Feren=20OS=20Review=20Clever=20KDE=20Distro=20for=20Easy=20Migr?= =?UTF-8?q?ation=20from=20Windows.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ever KDE Distro for Easy Migration from Windows.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md diff --git a/sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md b/sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md new file mode 100644 index 0000000000..a981459f91 --- /dev/null +++ b/sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md @@ -0,0 +1,142 @@ +[#]: subject: "Feren OS Review: Clever KDE Distro for Easy Migration from Windows" +[#]: via: "https://www.debugpoint.com/feren-os-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Feren OS Review: Clever KDE Distro for Easy Migration from Windows +====== + +**A review of Feren OS – a KDE Plasma and Ubuntu fusion specially designed for Windows users to help them migrate.** + +Over the years, many readers commented about Feren OS and its advantages on this website. I never got a chance to try this distribution in terms of its benefits and why it stands out among hundreds of distros. + +So, here’s a review of the great Feren OS. + +### Feren OS Review + +First and foremost, its creators designed and marketed it as an ideal replacement for Windows and macOS. At its core, it’s based on Ubuntu LTS with a base KDE Plasma desktop and additional tweaks. However, it does bring several goodies specially designed for Windows users. A lot on that a little later. Let’s download and install it. + +#### Download and Install + +The Feren OS (20.04) ISO file is about 2.5 GB, and it has only one variant for KDE Plasma – which is the only offering. However, the download took around 6 hours from SourceForge. + +A few interesting things happened when I booted this up in a VM ([virt-manager][1]). During my years of [distro review][2], I haven’t seen any distro do this. + +First, the LIVE medium understood that I was using the virtual machine and changed the compositor by itself to Xrender for better performance in VM. Second, it also gave the option to install guest additions for VirtualBox and VM Tools for VM Ware for additional functionalities. + +![Virtual Machine detected by Feren OS installer][3] + +Moreover, Feren OS gave options to transfer files from the Windows partition before installing the system! And an option to choose the desktop layout if you are installing it on a touch-based device. + +![You can take backups of Windows data before install][4] + +The installer is Calamares and not Ubuntu’s Ubiquity, although it depends on Ubuntu LTS. While installing the system, Feren OS doesn’t do the account creation, keyboard and other selections. It prompts you for user account creation and additional info after the first reboot and post-installation. Fedora Linux workstation edition does this via the Anaconda installer. + +Apparently, it is probably nothing. But from a Windows user’s perspective, an “easy install” experience is important, and I believe the team made an excellent decision on this. + +Finally, the installation went smooth, and no such surprises there. + +#### First boot and looks + +During the first boot, you need to set up the user accounts and other initial settings. The wizard gives you options to choose the light/dark theme, desktop layouts and different initial configs. This is a nice touch and looks professional. + +The KDE Plasma desktop is nice and clean with the pre-configured taskbar and the Breeze theme. The taskbar has the application menu on the left side. In the middle of the taskbar, you find the shortcut to Vivaldi, File manager and homegrown Store. And at the right is a traditional system tray. + +![Feren OS Desktop][5] + +Feren OS pre-loads a good set of Plasma Global Themes other than the usual Breeze variants. All of them are perfect and give your desktop a nice touch with just one click. As of the current version, you get Feren OS, Hooman, Dooars and Mac n’ Cheese theme. In addition, you also can get the Tablet and Classic settings of the desktop. It also features the Inspire icon theme and DMZ cursor theme by default. + +#### Workspaces and Full-screen Application View + +One of the unique features I want to highlight is the default workspace configuration that Feren OS brings. By default, there are four desktops to work with. At the taskbar, there is an icon which brings up the new workspaces in the KDE Plasma desktop. + +![Feren OS - Default four desktops][6] + +If you apply the pre-defined macOS theme, the application view is quite spectacular (which is a KDE widget, btw). It even searches the apps and individual settings when you start typing. See the image below. + +![Fullscreen app menu with dynamic search][7] + +Also, the global menu gives you the extra edge and precious screen space for your workflow. + +#### Native and Installed Applications + +Let’s talk about some exciting app choices that Feren OS installs by default. + +Although it’s based on KDE Plasma, some apps are chosen carefully based on their features and performances. For example, the file manager is Nemo instead of Dolphin, which is a good choice since Nemo is an awesome file manager. + +In addition, Feren OS packages Geary [email desktop client][8], GDebi package manager, Timeshift backup utility, and VLC Media player – some of the essential non-KDE Apps. + +The native apps are quite interesting. + +A native app called “Store” manages application search, installation and uninstall. It’s a homegrown tool which looks similar to GNOME’s Software. It supports usual categories and one-click installation. However, it seems it doesn’t support managing software sources. I belives that’s the reason Synaptic package manager is installed by default. + +![Natively designed Store manager][9] + +Other than that, there is an app, “Web Browser Manager”, which lets you install additional browsers with just one click. It’s interesting to see a dedicated app to manage just the web browsers. + +#### A note about the Transfer Tool + +Since its target audiences are Windows users, it brings a dedicated tool to transfer data from your Windows partitions and helps you to take backups to a custom target drive or device. The tool can easily detect generic Windows folders such as Documents, Users, Pictures, Videos etc. + +![Feren OS Transfer Tool][10] + +It’s a handy tool if you want a quick backup of your Windows partition. More importantly, you can use this in a LIVE medium without installing Feren OS. + +#### Performance + +You might have guessed about FerenOS’s performance as it’s based on Ubuntu LTS and KDE Plasma desktop. The performance, in simple words, is the same as that of Kubuntu. + +In an idle state (i.e. desktop is boot and kept inactive), it consumes around 1.8 GB of memory, and the CPU is at 4% to 8%. The latte dock consumes most system resources and plasma desktop, followed by the KWin. This is when the macOS theme is enabled. + +![Feren OS - Performance at Idle State][11] + +Next, I make it run through heavy workload situations with one instance each for File manager, media player, Vivaldi browser, image editor, LibreOffice and Console application. At this heavy performance stage, Feren OS consumes around 2.1 GB of system memory, and the CPU is hovering at 8 to 10 %. + +![Feren OS - Performance at Heavy workload State][12] + +I think it’s an impressive performance metric in the heavy workflow state. I was expecting a little higher memory and CPU consumption. + +The only reason I believe the performance is better in a heavy workflow state is not to use Firefox or Chrome. Vivaldi is performing better in the memory utilization space than that Firefox or Chrome. + +### Wrapping Up + +Feren OS is one of those Linux distros which packs a default look with Stability together. It’s one of the “not-so-popular” & mainstream distros with many prospects. Its unique way of implementing several critical items, from installation to the first experience for a new or migrated Windows user, is a great touch. + +Besides, its in-house apps and utilities are one of the best implementations for a distro targeted at Windows users. And the Ubuntu LTS base gives them an edge over the players. + +The only drawback I can see is the major release is a little delayed. For example, the Ubuntu 22.04 LTS version is not yet out. Perhaps the delay is because of a small dev team. + +But, besides that, it’s a perfect and ready-to-use daily driver. You may give it a try. + +You can download Feren OS from the [official website][13]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/feren-os-review/ + +作者:[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/virt-manager/ +[2]: https://www.debugpoint.com/tag/linux-distro-review +[3]: https://www.debugpoint.com/wp-content/uploads/2022/07/Virtual-Machine-detected-by-Feren-OS-installer.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/07/You-can-take-backups-of-Windows-data-before-install.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Desktop.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Default-four-desktops.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Fullscreen-app-menu-with-dynamic-search.jpg +[8]: https://www.debugpoint.com/best-email-client-linux-windows/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/Natively-designed-Store-manager.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Transfer-Tool.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Performance-at-Idle-State.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Performance-at-Heavy-workload-State.jpg +[13]: https://ferenos.weebly.com/get-feren-os.html From aeae153e2a6c2f0c02125aaf6b43db59f3f9f93d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:34:58 +0800 Subject: [PATCH 1829/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.9=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Garuda=20Linux=20All-Rounder=20Distro=20Ba?= =?UTF-8?q?sed=20on=20Arch=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Garuda Linux All-Rounder Distro Based on Arch Linux.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 sources/tech/20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md diff --git a/sources/tech/20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md b/sources/tech/20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md new file mode 100644 index 0000000000..0326410d91 --- /dev/null +++ b/sources/tech/20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md @@ -0,0 +1,167 @@ +[#]: subject: "Garuda Linux: All-Rounder Distro Based on Arch Linux" +[#]: via: "https://www.debugpoint.com/garuda-linux-review-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Garuda Linux: All-Rounder Distro Based on Arch Linux +====== + +**A review of the Arch Linux based Garuda Linux, which brings a collection of desktop environments, window managers, and tools for general users and gamers.** + +Over the years, we [reviewed][1] a couple of Arch-based distros – spread across new ones, stables distros and more. Each one of them is a little different from the others. Finally, we review the Garuda Linux in 2022 – it’s our first review of this distro, and we will continue with all the major releases. + +![Garuda Linux Desktop (2022)][2] + +### What does it offer? + +There are many customized and easy-to-use Arch-based Linux distributions available. Every one of those tries to present something new other than just another variant of Arch Linux. + +Garuda Linux does offer a few new features compared to others. + +Firstly, it **brings almost all popular desktops and window managers** such as KDE, Xfce, GNOME, LXQt-kwin, Cinnamon, Mate, Wayfire, Qtile, i3wm and Sway. + +Second, it offers the **default BTRFS file system with zstd compression** for better performance. In addition, it provides the popular **Chaotic-Aur**, which contains a vast collection of pre-compiled binaries from AUR. Moreover, a group of hand-picked themes, icons and cursors give Garuda Linux an edge over the other Arch-based distros. + +Finally, its primary selling point is i**ts pre-made for Gaming in Arch Linux** with native apps such as Garuda Gamer and the option for Zen Kernel. + +### Garuda Linux Review – 2022 Edition + +This review is based on Garuda’s default offering, i.e. Garuda dragonized zen kernel with KDE Plasma (April 28, 2022 iso). + +#### Download and Installation + +![Garuda Linux - boot screen][3] + +The download via torrent was fast without any problems. The LIVE boot asks whether you want to boot using open-source or NVIDIA drivers. Finally, the welcome screen is well designed and gives you clear instructions to launch the installer. + +Garuda offers **separate ISO files for different desktops** and window managers. Because a massive set of packages pre-loaded in ISO files also gives you the option for the LITE version with KDE Plasma. The LITE versions are the base Garuda Linux without additional theming and packages. + +So, pick the one you want for your needs. + +Garuda Linux uses **Calamares** installer. The Calamares are not configured heavily, and installation is pretty straightforward. However, Calamares doesn’t give you the option to choose the desktop environments or packages. As I mentioned above, it has a separate installer for each of those. + +During my test, the installation went smoothly, and it took around 5 minutes to launch the LIVE medium to completion in an Intel i5, 8 GB, SSD configuration. **It’s blazing fast, in my opinion.** + +#### Look and Feel + +After the successful installation, you see a **nice login screen** (SDDM with themes). It is well designed and aligned with Garda Linux’s design patterns. + +![The Login screen (SDDM) of Garuda Linux][4] + +The KDE Plasma desktop is heavily customized in terms of look in Garuda Linux. Firstly, the Latte dock is well placed with essential shortcuts at the bottom. No unnecessary shortcuts are there, which is nice. + +![Garuda Linux Desktop with Latte dock][5] + +Second, at the top bar, you get the application menu of KDE Plasma with Latte dock widgets. All the widgets are well placed and necessary for all user bases. By default, the top bar contains NEtSpeed widgets, clipboard and volume controls and the event calendar widget of the Latte dock. + +Garuda Linux uses **Kvantum theme engine** with “sweetified-plasma” theme with kvantum-dark application style, giving it its unique look. In addition, the famous BeautyLine icon theme provides the much-needed contrast (as designed) to this distro. + +#### Initial Setup and Applications + +Firstly, the initial setup gives you several options to quickly configure your desktop before your first use. + +A series of terminal-based operations is provided by its welcome applications, such as system upgrades. + +The welcome application gives an assorted list of Garuda utilities, ranging from system configurations to changing looks. It includes system cleaner, partition manager, Chaotic-aur managers, Gaming utilities, etc. + +Not only that, but it also provides access to Garuda services for its users directly from the desktop. It helps new to advanced users in terms of discovery of the services and features. + +![Garuda Welcome App][6] + +Now, I would like to highlight two crucial apps in this Garuda Linux review. + +First, the **Snapper tool** gives you controls to **create system restore points**using several options. If your system breaks at some point, you can always restore it to a stable state using this utility. This is one of the much-needed applications, considering it’s a rolling release. + +![The Snapper Tools for system restore points][7] + +Second, the **Octopi software manager**(similar to synaptic) gives you access to all necessary packages in the Arch repo. You can easily install with one click after verifying the dependencies. Moreover, it also gives you the ability to add and remove Arch repositories via GUI. + +It’s worth mentioning here that Garuda includes “chaotic-aur” and “multilib” repo by default in addition to the typical “community”, “extra”, and “core” repo. + +![Octopi Software Manager][8] + +#### The Browser + +Garuda doesn’t provide a Firefox web browser by default. It includes the **customized LibreWolf-based [FireDragon][9] web browser**, which integrates well with the KDE Plasma desktop. + +In addition, UBlock Origin and Dark Reader add-ons are pre-installed in FireDragon. The FireDragon web browser uses Garuda’s server for searching the web. I am not entirely sure whether it connects to Google in the backend. + +![FireDragon Web browser][10] + +In addition to the above apps, Garuda uses the advanced Fish shell for command line work. However, LibreOffice and other graphical utilities are not installed by default. + +#### Performance and Resource Usage + +Garuda is a little resource-heavy, even in an idle state. It consumed around 17% of CPU and RAM usage of approximately 1.2 GB at idle. And if you open more apps, then it will further shoot up. + +The htop shows that most of the idle state resources are consumed by KWin. I am not sure why there are five forks of KWin running (perhaps for Kvuntam and other theming). I cross-checked this with a standard Plasma installation, where only one process of KWin runs. + +The default KDE Plasma edition of Garuda Linux takes around 6.4 GB of disk space. + +![Garuda Linux Performance - Idle State][11] + +With the above performance metric, you may be unable to run it in low-end hardware. I recommend using an Intel i7 or similar system with at least 8GB of memory for better performance. However, the official system requirement states 4 GB of memory as below. + +- 30 GB storage space +- 4 GB RAM +- Video card with OpenGL 3.3 or better +- 64-bit system + +Also, it is worth mentioning that other flavours, such as GNOME, Cinnamon etc., should have much better performance metrics. + +### Things which grabbed my attention + +Garuda requires 30 GB of disk space, which I overlooked before installing. And it also seems a hard requirement, and the Calamares installer is configured that way. So, you must have a minimum of 30 GB of root partition to install this version of Garuda Linux. + +Moreover, it takes around 6 GB of disk space for a default install, and I am not sure why the 30 GB limit is too hardcoded in the installer. + +![Garuda Linux requires min 30 GB disk space for installation][12] + +While Garuda Linux looks wonderful, I feel the default theming and colour contrast are a little “too much”. It feels excellent with high contrast colours on a dark backdrop at first look. But it does look a little “fanboy” type. Although look and feel are subjective, everyone has a different taste. + +But always, you can change the themes, icons and whatnot with just a click in KDE Plasma. + +### Closing Notes + +Finally, to wrap up the Garuda Linux review of 2022, I must say it is one of the Arch-based distros which stands out from the other distros in the same category. Due to its popularity and active participation from the user base, it shall not be discontinued in the future. + +From a general user’s perspective, community help is available via several active channels (which can be accessed via shortcuts from the welcome screen). + +If you are keen on gaming, zen Kernel and passionate about Arch Linux, you can choose Garuda. The use case of this distro may vary. I would not recommend it for serious development, projects, media related work. + +Then again, Garuda undoubtedly brings unique apps to manage Arch Linux, which is also a plus point. If you need a fancy-looking Arch-based distro to start your Linux journey, it’s perfect. + +That said, you can download Garuda Linux from the [official website][13]. + +And do let me know your opinion about Garuda in the comment box down below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/garuda-linux-review-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/tag/linux-distro-review +[2]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-Desktop-2022.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-boot-screen.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-Login-screen-SDDM-of-Garuda-Linux.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-Desktop-with-Latte-dock.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Welcome-App.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-Snapper-Tools-for-system-restore-points.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Octopi-Software-Manager.jpg +[9]: https://github.com/dr460nf1r3/firedragon-browser +[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/FireDragon-Web-browser.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-Performance-Idle-State.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-requires-min-30-GB-disk-space-for-installation.jpg +[13]: https://garudalinux.org/downloads.html From 756ba8d2b72c91c790a3d7ea352d02f89136fa08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 00:36:57 +0800 Subject: [PATCH 1830/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.10=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20Best=20Remote=20Desktop=20Clients=20for=20Ubuntu=20and=20Oth?= =?UTF-8?q?er=20Linux=20[2022].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...sktop Clients for Ubuntu and Other Linux [2022].md | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md diff --git a/sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md b/sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md new file mode 100644 index 0000000000..758bb8c21e --- /dev/null +++ b/sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md @@ -0,0 +1,195 @@ +[#]: subject: "Best Remote Desktop Clients for Ubuntu and Other Linux [2022]" +[#]: via: "https://www.debugpoint.com/best-remote-desktop-clients-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Best Remote Desktop Clients for Ubuntu and Other Linux [2022] +====== + +**A list of best remote desktop clients for Ubuntu and other Linux distros.** + +Remote desktop clients allow you to connect to any other desktop/server and perform tasks remotely. It’s one of the important aspects of IT support and other commercial use cases. In Linux, there are many remote desktop clients available. Some of them are free, while others are paid versions. All of these clients support popular remote desktop protocols (RDP) such as VNC, RDP and others. + +This article looks at some of the best free remote desktop clients for Ubuntu and other distros. The list includes free and open-source apps and some free-to-use but proprietary apps. + +Note: You need a remote desktop server (such as Xrdp) in your target system to establish a remote connection successfully. Then only you can connect using the following apps. It’s a two-way process. If you want to get more insight, refer to one of our case studies: [Connecting to Ubuntu from Windows via RDP][1]. + +### Best Remote Desktop Clients for Ubuntu + Others + +#### GNOME Connections + +![GNOME Connections][2] + +The first remote desktop client is a native [GNOME app][3] – “GNOME Connections”. This GTK-based app brings a simple user interface. It’s a perfect app for beginners. It’s also a perfect way quickly set up and connect in a minute (if you know the IP and other details). + +In addition, it comes with clear instructions on whether you want to connect to a Linux machine or Windows. GNOME Connections support VNC (for Linux) and RDP (for Windows) protocols. + +Installing this app is super easy with Flatpak. Set up your system to use Flatpak and install it using the following command. + +``` +flatpak install flathub org.gnome.Connections +``` + +**More information** + +- [Source code and home page][4] + +#### KRDC + +![KRDC][5] + +The next app is KRDC, a [KDE app][6] that allows you to view and control remote desktop sessions on another machine. It supports VNC and RDP protocol. You can also control the resolutions and passwords; of course, it integrates well with your Plasma desktop. + +So, this is it if you are looking for a native-KDE app for a remote desktop. For the KDE Plasma desktop, it should be installed by default. + +If not, the ideal way to install it is using Flatpak. [Set up your system to use Flatpak][7], and then use the following command to install. + +``` +flatpak install flathub org.kde.krdc +``` + +**More information** + +- [Home page][8] +- [Documentation][9] +- [Source code][10] + +#### Remmina + +![Remmina remote desktop client][11] + +Remmina is one of the oldest remote desktop clients for Linux systems. Probably the “go-to” client when you are in need. This free and open-source app is available Linux as well as for macOS. It supports many remote protocols, such as RDP, VNC, NX, X2GO, SPICE, HTTPS and SSH. + +Moreover, it is powerful with its simple yet profound user interface and is super-active in development and bug fixes. + +This app is already in all the major distro’s repositories. You can search for “remmina” in your Software app in Ubuntu and related apps in other distros. And hit install. + +Alternatively, you can also use the following commands to install. + +Furthermore, you can also [set up your system for Flatpak][7] and install it as Flatpak using the following command. + +``` +flatpak install flathub org.remmina.Remmina +``` + +**More information** + +- [Home page][12] +- [Source code][13] + +#### TigerVNC + +TigerVNC is a free and open-source “platform-neutral” implementation of the VNC (Virtual Network Computing) protocol that comes with both client and server packages. You can use this remote desktop when there is a need for high performance because it works best and is optimized for 3D/Video data over a remote connection. + +Furthermore, it still provides a 32-bit installer, along with the usual 64-bit and a command line interface. The client program name for TigerVNC is `vncviewer` and options are present [here][14]. + +You can get the pre-compiled deb and RPM packages from the [Sourceforge page here][15]. + +**More information** + +- [Home page][16] +- [Documentation][17] +- [Source code][18] + +#### X2Go + +![X2Go][19] + +[X2][20][G][20][o][20] is a Linux-based remote desktop software based on NX technology which is developed by NoMachine. It is a collection of client and server packages that enables you to connect to remote machines via proxy. + +For the remote client part – it comes with two options. You can use either the X2Go client or Pyhoca-GUI (based on Python). All of these are bundled together in the repositories available for Linux. In addition, all the components are also available for Windows and macOS. + +You can download this software’s client and server parts from the below page. + +Download X2Go + +#### Chrome Remote Desktop + +![Chrome Remote Desktop][21] + +If you prefer a remote connection over a web browser or have limitations in installing an RDP server, you can try out a remote connection via Google Chrome. + +The Chrome Remote Desktop service is created by Google and is available over the internet. This service runs via WebRTC protocol over a browser and uses some proprietary technology. + +Once launched, a server component is downloaded from the host machine and uses Chrome to provide the functionality. And in the client machine uses a Google Chrome Extension to enable your remote connection. + +You can open the below URL to access this service via Chrome and WebRTC-supported browser. + +[https://remotedesktop.google.com/][22] + +Furthermore, it provides an on-the-fly PIN-based authentication mechanism for remote viewing of your systems. And it is limited to being used by up to 100 clients only. + +### More remote clients + +The above list should suffice for most of the common use cases. However, if you are still hungry for more remote desktop clients, here’s a list I have prepared for you with a brief of their nature. + +#### Free and open-source + +- [TurboVNC][23] (Free and open-source) +- [UltraVNC][24] (Free and open-source) +- FreeRDP (Free + require compilation + support Wayland) + +#### Commercial closed source and requires a license to use + +- [Thincast][25] (Free to use; Flatpak package; Available for Raspberry Pi; Closed source & Proprietary license) +- [NoMachine][26] (Free for personal; Paid for business; Popular, available for Linux, Windows, macOS, Raspberry Pi) +- [AnyDesk][27] (Free for personal; Paid for business; closed source) +- [VNC Connect][28] (Paid; closed source) +- [TightVNC][29] (requires a license with an email address to be used in Linux) +- [itopia][30] (Free with a trial version; Flatpak) + +### Wrapping Up + +This article lists some of the latest remote desktop clients for Ubuntu and other Linux distributions. Some of them are free and easy to use. You can use them for remote support, studying, and other use cases. IN addition, I also mentioned WebRTC-based remote service, which doesn’t require any installation except a browser extension. + +Furthermore, for the benefit of everyone, I have mentioned some of the commercial ones as well. Because if you are a small and medium enterprise, you might want to check the paid version apps with support. + +Finally, which one of the remote client software is your “go-to” app? Let me know in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-remote-desktop-clients-ubuntu/ + +作者:[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/connect-ubuntu-20-04-windows-10/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/GNOME-Connections.jpg +[3]: https://www.debugpoint.com/best-gnome-apps-part-1/ +[4]: https://gitlab.gnome.org/GNOME/connections +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/KRDC.jpg +[6]: https://www.debugpoint.com/best-kde-apps-part-1/ +[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[8]: https://apps.kde.org/krdc/ +[9]: https://docs.kde.org/?application=krdc +[10]: https://invent.kde.org/network/krdc +[11]: https://www.debugpoint.com/wp-content/uploads/2020/03/Remmina.png +[12]: https://remmina.org/ +[13]: https://gitlab.com/Remmina/Remmina +[14]: https://tigervnc.org/doc/vncviewer.html +[15]: https://sourceforge.net/projects/tigervnc/files/stable/ +[16]: https://tigervnc.org/ +[17]: https://github.com/TigerVNC/tigervnc/wiki +[18]: https://github.com/TigerVNC/tigervnc/releases +[19]: https://www.debugpoint.com/wp-content/uploads/2020/03/X2Go.jpg +[20]: https://wiki.x2go.org/doku.php/download:start +[21]: https://www.debugpoint.com/wp-content/uploads/2020/03/Chrome-Remote-Desktop.png +[22]: https://remotedesktop.google.com/ +[23]: https://www.turbovnc.org/ +[24]: https://www.uvnc.com/ +[25]: https://thincast.com/ +[26]: https://www.nomachine.com/ +[27]: https://anydesk.com/ +[28]: https://www.realvnc.com/en/connect/ +[29]: https://www.tightvnc.com/ +[30]: https://itopia.com/ From b69e43d5ece7aa82bad9693d79b04218cfc8fe7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 2 Nov 2022 02:19:09 +0800 Subject: [PATCH 1831/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221101.11=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20How=20to=20Install=20Flatpak=20Apps=20in=20Ubuntu=20and=20Ot?= =?UTF-8?q?her=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Install Flatpak Apps in Ubuntu and Other Linux.md | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md diff --git a/sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md b/sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..6639886773 --- /dev/null +++ b/sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md @@ -0,0 +1,170 @@ +[#]: subject: "How to Install Flatpak Apps in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Flatpak Apps in Ubuntu and Other Linux +====== + +**A beginner’s guide on how to install Flatpak in Ubuntu and other Linux distributions.** + +### What is Flatpak? + +[Flatpak][1] is the new way of distributing apps across the Linux universe, irrespective of the distribution. This cross-distro application distribution and deployment framework enable developers to Flatpak setup for apps for all major distributions. + +The major hurdles in any Linux app distribution are dependencies, and Flatpak covers that. Flatpak builds bundles the dependencies for the respective apps, and end-users need not worry about it. + +With the growing trends, many app developers are now providing the Flatpak builds along with traditional packages, e.g. *.deb, etc. With a quick setup for your distributions, you can be ready to explore the world of Flatpak apps. All the major Flatpak apps are available on flathub.org. You can search and just click a button, you can install the Flatpak apps. Here’s how to set it up for Ubuntu and other Linux distributions. + +### How to setup Flatpak in Ubuntu + +- For Ubuntu 18.10 (Cosmic Cuttlefish), use the following command to install Flatpak (that includes Ubuntu 22.04 as well). + +``` +sudo apt install flatpak +``` + +If you are using an older version of Ubuntu, use the following repo. + +``` +sudo add-apt-repository ppa:alexlarsson/flatpak +sudo apt update +sudo apt install flatpak +``` + +- The second step is optional if you want to install Flatpak apps via the browser. Enable Ubuntu Software to recognize Flatpak apps and their installations. Run the below commands from the terminal and provide the password when prompted. + +``` +sudo apt install gnome-software-plugin-flatpak +``` + +- Add the Flathub repository where all the Flatpak apps reside. Run the below commands from the terminal. + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +- Reboot. + +### Install in Other Linux Distributions + +Flatpak is available to install almost all possible distributions. Here’s a quick list of commands you can run from the terminal in all the distros. + +| **Linux distro name** | **Instructions or commands to set up Flatpak** | +| :- | :- | +| AlmaLinux | Enabled by default. No action is required. | +| Alpine Linux | Run the following commands:`sudo apk add flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Arch Linux | Run the following commands:`sudo pacman -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| CentOS | Enabled by default. No action is required. | +| Clear Linux | Enabled by default. No action is required. | +| Debian | Run the following commands:`apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Deepin OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| elementary OS | Enabled by default. No action is required. | +| Endeavour OS | Enabled by default. No action is required. | +| Endless OS | Enabled by default. No action is required. | +| Fedora Linux | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak app. | +| Gentoo | Run the following commands:`echo -e 'sys-apps/flatpak ~amd64\nacct-user/flatpak ~amd64\nacct-group/flatpak ~amd64\ndev-util/ostree ~amd64' >> /etc/portage/package.accept_keywords/flatpakemerge sys-apps/flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| KDE Neon | Enabled by default. No action is required. | +| Kubuntu | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``sudo apt install plasma-discover-backend-flatpak``reboot` | +| Linux Mint | Enabled by default. No action is required. | +| Mageia | Run the following commands:`dnf install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Manjaro Linux (Arch-based) | Installed by default since Manjaro 20 and higher.Make sure it is enabled in the below navigation:**Software Manager > Preferences > Flatpak Tab > Enable Flatpak Support**Reboot your system | +| MX Linux | Enabled by default. No action is required. | +| Nix OS | Open `/etc/nixos/configuration.nix` and add the following:`Services.flatpak.enable = true;`And then run the followings:`sudo nixos-rebuild switch``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| openSUSE Leap and Tumbleweed | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak apps. | +| Pop OS | Enabled by default. No action is required. | +| Raspberry Pi OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Red Hat Enterprise Linux (RHEL) | `sudo yum install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Solus | Run the following commands:`sudo eopkg install flatpak xdg-desktop-portal-gtk``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Void Linux | Run the following commands:`sudo xbps-install -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Zorin OS | Enabled by default. No action is required. | + +Once installation is completed, and reboot is done, you can proceed with installing some cool Flatpak apps via the below steps. + +### How to Install Flatpak Apps in Ubuntu and Other Linux + +There are two ways you can install Flatpak apps. Firstly via the command line, which I recommend. And second is the browser method. + +I recommend using the command line because it is faster and easier. + +#### Using the command line (recommended) + +The sample command to install any Flatpak app is available at the bottom section of the Flathub app page. A sample command is below: + +``` +flatpak install org.gimp.GIMP +``` + +Change the above “org.gimp.GIMP” for your application. Remember, this is case-sensitive. + +#### Using the graphical method via browser + +- Go to [Flathub][3]. +- Search for any apps you want to install. + +![][4] + +- Click install after selecting your desired app. + +![Install Flatpak][5] + +- Click Ok when it prompts you to start the installation via Software. + +![Open Flatpackref via Software][6] + +- The Software will open and wait till the installation finishes. + +### How to update Flatpak after you install them? + +Updating Flatpak is super easy via the terminal. For example, if you want to update the above GIMP package, you need to run the below command. + +``` +flatpak update org.gimp.GIMP +``` + +So, this will update a single package. Replace your package’s name (i.e. Application ID) for your use case. If you don’t know the Application ID, run the command `flatpak list` from the terminal, and you will find it. + +If you want to update ALL the Flatpak packages in your system, simply run the following: + +``` +flatpak update +``` + +### How to uninstall a Flatpak? + +You can uninstall a package using the following command. Make sure to change the Application ID for your use case. You can find out the Application ID from the command `flatpak list`. + +``` +flatpak remove org.gimp.GIMP +``` + +### Closing Notes + +In this tutorial, I have explained how you can easily set up Flatpak and install apps from Flathub. Moreover, Flatpak applications are a great way to install and manage them easily. In my opinion, Flatpak will eventually dominate Snap and AppImage in the future. + +You may want to check out our other articles about [Flatpak][7], which include how to manage permission, various Flatpak commands and more. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ + +作者:[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://flatpak.org/ +[2]: https://flathub.org/repo/flathub.flatpakrepo +[3]: https://flathub.org/apps +[4]: https://www.debugpoint.com/wp-content/uploads/2018/07/Search-in-Flathub.png +[5]: https://www.debugpoint.com/wp-content/uploads/2018/07/Install-Flatpak.png +[6]: https://www.debugpoint.com/wp-content/uploads/2018/07/Open-Flatpackref-via-Software.png +[7]: https://www.debugpoint.com/tag/flatpak From df5422b944a70e1ca4e1bb9e18afe5c885fe1341 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 2 Nov 2022 08:56:01 +0800 Subject: [PATCH 1832/3123] translated --- ...lean Up Snap Versions to Free Up Disk Space.md | 106 ------------------ ...lean Up Snap Versions to Free Up Disk Space.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md create mode 100644 translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md diff --git a/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md b/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md deleted file mode 100644 index 8a01af005a..0000000000 --- a/sources/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "How to Clean Up Snap Versions to Free Up Disk Space" -[#]: via: "https://www.debugpoint.com/clean-up-snap/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Clean Up Snap Versions to Free Up Disk Space -====== - -**This quick guide with a script helps to clean up old snap versions and free some disk space in your Ubuntu systems.** - -I was running out of disk space in my test system with Ubuntu. So I was investigating via GNOME’s Disk Usage Analyser to find out which package is consuming the precious SSD space. Apart from the usual cache and home directory – to my surprise, I found that Snap and Flatpak consume a considerable amount of storage space. - -![Snap size - before cleanup][1] - -Although, I always maintain a rule – not to use Snap or Flatpak unless necessary. This is mainly because of their installation size and other issues. I prefer vanilla deb and rpm packages. Over the years, I have installed and removed a certain amount of Snap packages in this test system. - -The problem arises after uninstallation; Snap keeps some residue files in the system, unknown to the general users. - -So I opened the Snap folder `/var/lib/snapd/snaps` and discovered that Snap is keeping track of older versions of previously installed/uninstalled packages. - -For example, in the below image, you can see GNOME 3.28, 3.34, and Wine – all of these are removed long back. But they are still there. It’s happening because of the Snap design, which keeps versions of uninstalled packages after a proper uninstallation. - -![Files under snaps directory][2] - -Alternatively, you can get the same in the terminal using: - -``` -snap list --all -``` - -![snap list all][3] - -The default value is 3 for several revisions for retention. That means Snap keeps three older versions of each package, including the active version. This is okay if you do not have constraints on your disk space. - -But for servers and other use cases, this can easily run into cost issues, consuming your disk space. - -However, you can easily modify the count using the following command. The value can be between 2 to 20. - -``` -sudo snap set system refresh.retain=2 -``` - -### Clean Up Snap Versions - -In a post in SuperUser, Popey, the ex-Engineering Manager at Canonical, [provided a simple script][4] that can clean up old versions of Snaps and keep the latest one. - -Here’s the script we will use to clean the Snap up. - -``` -#!/bin/bash - #Removes old revisions of snaps - #CLOSE ALL SNAPS BEFORE RUNNING THIS - set -eu - LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | - while read snapname revision; do - snap remove "$snapname" --revision="$revision" - done -``` - -Save the above script as .sh in a directory (for example`clean_snap.sh`), give it executable permission and run. - -``` -chmod +x clean_snap.sh -``` - -When I ran the script, it reduced a lot of disk space. The script would also show the name of the package being removed. - -![Executing the script][5] - -![Snaps size after cleanup][6] - -### Closing Notes - -There are always debates on how efficient Snap’s design is. Many say it is broken by design, bloated, and heavy on systems. Some part of that argument is true, I would not deny it. The whole concept of sandboxing applications is great if implemented and enhanced properly. I believe, Flatpak does a better job compared to Snap. - -That said, I hope this helps you clean up some disk space. Although it is tested in Ubuntu, it should work in all Linux distribution that supports Snap. - -Also, check out our guide on [how to clean up Ubuntu][7] with additional steps. - -Finally, if you are looking to clean up **Flatpak** apps, refer [this guide][8]. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/clean-up-snap/ - -作者:[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/2021/03/Snap-size-before-cleanup.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/Files-under-snaps-directory.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg -[4]: https://superuser.com/a/1330590 -[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/Executing-the-script.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snaps-size-after-cleanup.jpg -[7]: https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/ -[8]: https://www.debugpoint.com/clean-up-flatpak/ diff --git a/translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md b/translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md new file mode 100644 index 0000000000..366dfc69e7 --- /dev/null +++ b/translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md @@ -0,0 +1,106 @@ +[#]: subject: "How to Clean Up Snap Versions to Free Up Disk Space" +[#]: via: "https://www.debugpoint.com/clean-up-snap/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何清理 Snap 版本以释放磁盘空间 +====== + +**这个带有脚本的快速指南有助于清理旧的 snap 版本并释放 Ubuntu 系统中的一些磁盘空间。** + +我在使用 Ubuntu 的测试系统中的磁盘空间不足。因此,我通过 GNOME 的磁盘使用分析器进行调查,以找出哪个包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录,令我惊讶的是,我发现 Snap 和 Flatpak 消耗了大量的存储空间。 + +![Snap 大小 - 清理前][1] + +尽管如此,我始终坚持一个规则:除非必要,否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢原生 deb 和 rpm 包。多年来,我在这个测试系统中安装和移除了一定数量的 Snap 包。 + +卸载后出现问题。Snap 在系统中保留了一些残留文件,一般用户不知道。 + +所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`,发现 Snap 保留了以前安装/卸载的软件包的旧版本。 + +例如,在下图中,你可以看到 GNOME 3.28、3.34 和 Wine 都被删除了。但它们还在那里。发生这种情况是因为 Snap 的设计,它在正确卸载后保留已卸载软件包的版本。 + +![snaps 目录下的文件][2] + +或者,你可以在终端中使用: + +``` +snap list --all +``` + +![snap 列出全部][3] + +对于保留的版本,默认值为 3。这意味着 Snap 会保留每个软件包的三个旧版本,包括活动版本。如果你对磁盘空间没有限制,这是可以的。 + +但是对于服务器和其他情况,这很容易遇到成本问题,它会消耗你的磁盘空间。 + +但是,你可以使用以下命令轻松修改计数。该值可以在 2 到 20 之间。 + +``` +sudo snap set system refresh.retain=2 +``` + +### 清理 Snap 版本 + +在 SuperUser 的一篇文章中,Canonical 的前工程经理 Popey [提供了一个简单的脚本][4],它可以清理旧版本的 Snaps 并保留最新版本。 + +这是我们将用来清理 Snap 的脚本。 + +``` +#!/bin/bash +#Removes old revisions of snaps +#CLOSE ALL SNAPS BEFORE RUNNING THIS +set -eu +LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | +while read snapname revision; do +snap remove "$snapname" --revision="$revision" +done +``` + +将上面的脚本以 .sh 格式保存在一个目录中(例如 `clean_snap.sh`),赋予它可执行权限并运行。 + +``` +chmod +x clean_snap.sh +``` + +当我运行脚本后,它减少了很多磁盘空间。该脚本还将显示要删除的包的名称。 + +![执行脚本][5] + +![清理后的 Snap 大小][6] + +### 结束语 + +对于 Snap 的设计效率如何,人们总是争论不休。许多人说,它的设计是坏的,是臃肿的,是消耗系统资源的。这种说法的某些部分是真实的,我不会否认它。如果实施和加强得当,整个沙盒应用的概念是很好的。我相信,与 Snap 相比,Flatpak 工作做得更好。 + +也就是说,我希望这可以帮助你清理一些磁盘空间。尽管它在 Ubuntu 中进行了测试,但它应该适用于所有支持 Snap 的 Linux 发行版。 + +此外,请查看我们关于[如何清理 Ubuntu][7] 的指南以及其他步骤。 + +最后,如果你要清理 **Flatpak** 应用,请参阅[本指南][8]。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/clean-up-snap/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snap-size-before-cleanup.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/Files-under-snaps-directory.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg +[4]: https://superuser.com/a/1330590 +[5]: https://www.debugpoint.com/wp-content/uploads/2021/03/Executing-the-script.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/03/Snaps-size-after-cleanup.jpg +[7]: https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/ +[8]: https://www.debugpoint.com/clean-up-flatpak/ \ No newline at end of file From 2bbc3840d5f2abb47912c9ee1b009fd2640c8197 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 2 Nov 2022 09:00:57 +0800 Subject: [PATCH 1833/3123] translating --- ...⭐️ Transfer files and folders from Windows to Linux with PSCP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md b/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md index 6e818f79a3..caff6920cf 100644 --- a/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md +++ b/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/transfer-files-windows-linux-pscp" [#]: author: "Paul https://opensource.com/users/plaubscher" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6b4f9434c7d336528761c8c466426ac66aa36877 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 2 Nov 2022 10:24:25 +0800 Subject: [PATCH 1834/3123] =?UTF-8?q?Rename=2020221101.9=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Garuda=20Linux?= =?UTF-8?q?=20All-Rounder=20Distro=20Based=20on=20Arch=20Linux.md=20to=202?= =?UTF-8?q?0221101.9=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Garuda=20Lin?= =?UTF-8?q?ux=20All-Rounder=20Distro=20Based=20on=20Arch=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...=> 20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md => 20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md} (100%) diff --git a/sources/tech/20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md b/sources/tech/20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md similarity index 100% rename from sources/tech/20221101.9 ⭐️⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md rename to sources/tech/20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md From bcf812169e7eeee67d8d24331836eedd2478eed2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 2 Nov 2022 10:34:07 +0800 Subject: [PATCH 1835/3123] =?UTF-8?q?=E5=9B=9E=E6=94=B6=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ds Clip Launching and Apple Silicon Support.md | 100 --------------- ...at Ability to the Steam Snap App for Gamers.md | 88 ------------- ...ure Messaging and Bitcoin Lightning Network.md | 87 ------------- ...️ Oh No! Fedora 37 Release Gets Delayed.md | 63 ---------- ...Released, It's All About Useful Refinements.md | 116 ------------------ 5 files changed, 454 deletions(-) delete mode 100644 sources/news/20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md delete mode 100644 sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md delete mode 100644 sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md delete mode 100644 sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md delete mode 100644 sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md diff --git a/sources/news/20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md b/sources/news/20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md deleted file mode 100644 index 68d9f07ca9..0000000000 --- a/sources/news/20221018.1 ⭐️ Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support" -[#]: via: "https://news.itsfoss.com/ardour-7-0-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support -====== - -Ardour 7.0 is a major upgrade with much-needed improvements. - -![Ardour 7.0 Release Marks the end of 32-bit builds; Adds Clip Launching and Apple Silicon Support][1] - -[Ardour][2] is a popular open-source digital audio workstation software that audio professionals use. - -Ardour 7.0 has been in development for a little more than a year since the release of 6.9 and has come a long way since Ardour 5.0. - -Let's take a look at the highlights of this release. - -### 🆕 Ardour 7.0: What's New? - -![ardour 7.0][3] - -This release introduces a variety of changes and feature additions, some of the highlights are: - -- **Discontinuation of 32-bit Builds.** -- **Clip Launching feature (similar to what other DAWs provide).** -- **Support for Apple Silicon.** -- **Integration of Loop Library.** -- **Audio sample library support by Freesound.** - -#### Clip Launching - -![ardour 7.0 clip launching][4] - -Similar to many mainstream DAWs like Ableton Live, Ardour now has support for clip launching. - -Users can now play/stop audio clips and adjust the timing to fit the tempo map of a session. Pretty useful for live performances. - -#### Loop Library - -![ardour 7.0 loop library][5] - -In addition to Clip Launching, users can also take advantage of a vast collection of loops sourced from a few hand-picked creators of [looperman][6]. - -Users can choose from any of the royalty-free loops, with more to be added in the near future. - -#### End of 32-bit Builds - -There won't be any further 32-bit builds of Ardour, only a few will remain available on the nightly build channels for now. - -You may want to look around at some of the DAWs available for Linux to see what else might offer a 32-bit build. - -#### Sound Samples Available by Freesound - -![ardour 7.0 freesound integration][7] - -Another feature that complements the Loop Library is the integration with [Freesound][8]. - -With this, users can make use of over 600,000 samples of audio. To do this, users must have a Freesound account linked to their Ardour installation. - -#### 🛠️ Other Changes - -Other notable changes include: - -- **New Themes.** -- **Ripple Editing Modes.** -- **Mixer Scenes.** -- **Improvements to MIDI Editing.** -- **Support for I/O Plugins.** - -You can go through the official [release notes][9] for more details of the release. - -_💬 Are you going to try out Ardour 7.0? Satisfied with the DAW you currently use?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ardour-7-0-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/ardour-7-0-release.jpg -[2]: https://ardour.org/ -[3]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0.png -[4]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0_Clip_Launching.png -[5]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0_Loop_Library.png -[6]: https://www.looperman.com/ -[7]: https://news.itsfoss.com/content/images/2022/10/Ardour_7.0_Freesound_Integration.png -[8]: https://freesound.org/ -[9]: https://ardour.org/whatsnew.html diff --git a/sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md b/sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md deleted file mode 100644 index 77f6676cee..0000000000 --- a/sources/news/20221027.13 ⭐️ Canonical's Adding a Neat Ability to the Steam Snap App for Gamers.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: subject: "Canonical's Adding a Neat Ability to the Steam Snap App for Gamers" -[#]: via: "https://news.itsfoss.com/steam-snap-app-mesa/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Canonical's Adding a Neat Ability to the Steam Snap App for Gamers -====== - -Canonical is making reasonable efforts with its Steam snap app. A snap app that you can't hate? - -![Canonical's Adding a Neat Ability to the Steam Snap App for Gamers][1] - -Gaming on Linux is getting popular and evolving every year, with Valve and the Steam Deck playing a significant part. - -According to the [Steam Hardware and Software survey][2], Ubuntu remains one of the most popular Linux distros for gaming. - -The company behind Ubuntu – Canonical – is taking the necessary steps to make gaming on Ubuntu a seamless experience. They announced the launch of Steam as a Snap application in **April 2022** which is currently in 'early access'. - -![steam snap][3] - -Now, Canonical aims to elevate the gaming experience by letting users choose different Mesa graphics stacks effortlessly. - -### Easy Switch to Latest Mesa for Best Experience - -[Mesa][4] is an integral part of gaming on Linux, especially for AMD and Intel users. It is an open-source graphics stack that includes a range of graphics APIs like OpenGL and Vulkan to help run your favorite games. - -Since the Steam Snap bundles all the required dependencies and supports 32-bit libraries, users don't need to do anything manually to get things running. The Steam snap is containerized and isolated from the operating system. - -**But what about the Mesa graphics drivers?** - -For now, the Snap app installs the latest Mesa driver available in [oibaf's PPA repo][5] by default. You get the bleeding-edge drivers out of the box. But, you cannot change it quickly. - -In a [blog post][6] by Canonical, they mentioned some improvements to the Steam's snap app that makes this easy. - -It includes the introduction of **Content snaps** as an easier way to make use of Mesa drivers. - -Unlike regular dependencies, Content snaps are packaged separately from the main Steam snap. They can be utilized by other applications and thus prevent bloat or duplication. Moreover, they are also updated independently since they aren't directly bundled with the Steam snap. - -There are three Mesa driver stacks available - - -- **oibaf-latest** – Default bleeding-edge release -- **kisak-turtle**– Stable release -- **kisak-fresh** –  Latest point release, highly unstable - -Users can customize their Mesa stack by easily switching between them anytime. To play the latest games on the market, users may need to use the bleeding-edge release to avoid issues while gaming. On the other hand, the stable build should do for older titles. - -The blog post mentions: - -> This will enable users to choose their preferred Mesa track independently of the upgrade track of the Steam snap. - -So, users should be able to toggle between the available driver stacks. - -Sounds useful, isn't it? 😃 - -> 💡This feature is still being worked on and should be added to the stable channel soon along with Steam snap. As of now, it is available through the beta channel. - -### Thoughts?🤔 - -Snaps may not appeal to all Linux users due to some of their disadvantages. - -But gamers may find Steam as a snap quite helpful. The option to choose the preferred graphics stack should be very welcoming to users. Ubuntu seems to be taking gaming quite seriously. - -**Via:**[omg!ubuntu!][7] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/steam-snap-app-mesa/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/steam-snap-app-upgrade-for-gamers.png -[2]: https://store.steampowered.com/hwsurvey?platform=linux -[3]: https://news.itsfoss.com/content/images/2022/10/steam-snap.jpg -[4]: https://itsfoss.com/install-mesa-ubuntu/ -[5]: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers -[6]: https://canonical.com/blog/what-the-steam-snap-is-evolving -[7]: https://www.omgubuntu.co.uk/2022/10/canonicals-steam-snap-will-let-you-switch-between-different-mesa-stacks diff --git a/sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md b/sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md deleted file mode 100644 index b31ef4cc07..0000000000 --- a/sources/news/20221028.3 ⭐️ A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network.md +++ /dev/null @@ -1,87 +0,0 @@ -[#]: subject: "A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network" -[#]: via: "https://news.itsfoss.com/impervious-browser/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network -====== - -An open-source browser that promises P2P decentralized internet experience with bitcoin integration. - -![A New Web Browser For P2P Internet Experience With Secure Messaging and Bitcoin Lightning Network][1] - -P2P services for chat, video calls, and document editing are not yet mainstream. - -However, the idea for a P2P connection provides better control over the data and security and prevents censorship. - -Impervious browser is an exciting initiative that gives you access to P2P tools and a decentralized experience. The tools include: - -- **End-to-end encrypted chat.** -- **Encrypted P2P video and audio calls.** -- **Live Docs.** - -Additionally, it supports the [Bitcoin lightning network][2], which facilitates instant Bitcoin transactions. If you are a fan of cryptocurrency integrations, this could sound interesting, or it's just another fancy addition for most common users. - -### Impervious Browser: How Does it Work? - -Technically, the browser is a customized Mozilla Firefox experience. So, you can expect the same features and capabilities. - -The browser relies on Decentralized Identifiers (DIDs), i.e., decentralized digital IDs, to verify a person or connect with them. - -![impervious DID][3] - -Digital Identity - -You can find the DID from the settings, which you can share with anyone on the web to add you as a contact. - -Once you do that, you can send a message, initiate a video call, and collaborate with the live document feature for any work. - -![][4] - -Connection Request with a contact - -And this is what a conversation looks like: - -![][5] - -For users fond of Bitcoin transactions, you can utilize the Lightning network for super-fast payments while in a video call or message conversation. - -You need to connect to a lightning node to use the functionality. If you do not have one, Impervious supports creating a [Voltage Lightning Node][6]. - -I haven't tried it. So, if you are someone who uses cryptocurrency and appreciates the integration while collaborating with people through Impervious's P2P network, it should be a seamless experience. - -### Download Impervious - -> 💡Impervious is in the Alpha stage. You can download it but it may not work as you would expect. - -The Impervious browser is available for Linux and macOS (M1/Intel). They intend to release a Windows build soon. - -You can download the latest build from its [GitHub releases section][7] or head to its official website. - -[Impervious][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/impervious-browser/ - -作者:[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/content/images/size/w1200/2022/10/first-look-at-impervious-browser.png -[2]: https://lightning.network -[3]: https://news.itsfoss.com/content/images/2022/10/impervious-did.png -[4]: https://news.itsfoss.com/content/images/2022/10/impervious-connection-request.png -[5]: https://news.itsfoss.com/content/images/2022/10/impervious-browser-messages.png -[6]: https://voltage.cloud -[7]: https://github.com/imperviousai/imp-browser -[8]: https://www.impervious.ai diff --git a/sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md b/sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md deleted file mode 100644 index fb27469873..0000000000 --- a/sources/news/20221028.4 ⭐️ Oh No! Fedora 37 Release Gets Delayed.md +++ /dev/null @@ -1,63 +0,0 @@ -[#]: subject: "Oh No! Fedora 37 Release Gets Delayed" -[#]: via: "https://news.itsfoss.com/fedora-37-release-delay/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Oh No! Fedora 37 Release Gets Delayed -====== - -Fedora 37 release is getting delayed for a security fix. Here's what you should know about it. - -![Oh No! Fedora 37 Release Gets Delayed][1] - -The Fedora team usually targets an early release and a delayed date for their schedule. - -This time around, Fedora 37 is getting pushed back with an unexpected delay. From a release target date of 18th October to 25th October, and then 1st November. - -Now, we have to wait until **15 November 2022** to download Fedora 37 available. - -But why the delay? Isn't the testing complete for Fedora 37? What is the hold-up? - -> 💡**OpenSSL has announced a new version that addresses a critical security bug**. The new version is scheduled to release on November 1, 2022. - -Until the release, Fedora's team is unaware of the details regarding the security fix. It could be significant, so Red Hat recommends waiting for it before releasing Fedora 37. - -**Here's what Fedora's Program Manager mentions in a [blog post][2]:** - -> When a security issue is discovered, this information is often shared with the project confidentially. This allows the developers to fix the issue before more people know about it and can exploit it. Projects then share information with downstreams so they can be ready.Ironically, Fedora’s openness means we can’t start preparing ahead of time. All of our build pipelines and artifacts are open. If we were to start building updates, this would disclose the vulnerability before the embargo lifts. As a result, we only know that OpenSSL considers this the highest level of severity and Red Hat’s Product Security team strongly recommended we wait for a fix before releasing Fedora Linux 37. - -#### Time Needed to Test the Release Candidate With OpenSSL's New Version - -The developers need enough time to test Fedora 37's release candidate after they update the necessary package. - -While they could rush it, they intend to push a release only after they are confident about it: - -> The OpenSSL project team plans to publish the security fix about 48 hours before we’d make the go/no-go decision for an 8 November target. Factoring in time to build the updated openssl package and generate a release candidate, that gives us about a day and a half to do testing. That’s not enough time to be comfortable with a change to such an important package. - -Considering it is an important update, it is an excellent decision to test it and prepare it for release. - -Of course, the delay could be for nothing if the security fix is not a massive one. - -However, I believe it is better to have a release that provides a secure experience out of the box instead of having a vulnerable package. - -What do you think about Fedora 37 release being delayed? Share your thoughts in the comments down below. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/fedora-37-release-delay/ - -作者:[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/content/images/size/w1200/2022/10/fedora-37-delayed.png -[2]: https://fedoramagazine.org/fedora-linux-37-update/ diff --git a/sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md b/sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md deleted file mode 100644 index 9d9b361666..0000000000 --- a/sources/news/20221028.5 ⭐️ Zorin OS 16.2 Released, It's All About Useful Refinements.md +++ /dev/null @@ -1,116 +0,0 @@ -[#]: subject: "Zorin OS 16.2 Released, It's All About Useful Refinements" -[#]: via: "https://news.itsfoss.com/zorin-os-16-2-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Zorin OS 16.2 Released, It's All About Useful Refinements -====== - -Zorin OS 16.2 is a sweet upgrade with essential refinements across the board. - -![Zorin OS 16.2 Released, It's All About Useful Refinements][1] - -Zorin OS is one of the [most beautiful Linux distributions][2] based on the Ubuntu LTS releases. - -Not just limited to that, we think of it as one of the finest distros for beginners: - -The latest version, Zorin OS 16.2, is now available to download. - -### Zorin OS 16.2: What's New? - -There are several significant improvements, those include: - -- **Easier to install Windows apps** -- **Improved compatibility with Microsoft office documents** -- **Improved Zorin Connect** -- **GDevelop tool added to Zorin OS Education** - -> 💡The Zorin OS 16 series will get software updates and patches until April 2025. - -#### Easier to Install Windows Apps - -Zorin OS could already detect .exe files and guide you to install them on your distribution using Wine under the hood. - -Now, it gets easier. - -![zorin os windows app support menu][3] - -A new "**Windows App Support**" menu sits under the "**System Tools**" section. - -You can enable Windows app support through it. - -Along with the new menu, the database to detect Windows installer files has also expanded to guide you to a better user experience. - -For instance, launching Windows installers for Epic Games Store or GOG Galaxy directs you to install [Heroic Games Launcher][4]. - -![zorin os heroic games][5] - -### Office Experience Enhancements - -Zorin OS has added alternatives to popular proprietary fonts to improve compatibility with Microsoft Office documents. - -For example, [Carlito][6] is an alternative to Calibri (the default typeface in Office 365). - -### Zorin Connect Gets Better - -Zorin Connect is a valuable utility that helps you connect your mobile device to a Zorin OS-powered computer. - -It already offered a seamless experience. Now, you can view your computer's battery status on your phone, which should be handy for laptop users. - -The battery stats are available by default in Zorin OS 16.2. If you have an older version of Zorin OS, you should update the Zorin Connect app first. - -![zorin connect][7] - -Next, you need to navigate to the paired phone battery option in the Zorin Connect computer app and enable "**Share Statistics**". - -### GDevelop in Zorin OS Education - -![zorin os gdevelop][8] - -Zorin OS offers different editions for various users, and the education variant provides all the valuable tools to learners. - -[GDevelop][9] is a new tool to the list. It is a no-code game development software that reduces the learning curve for programming and helps boost creativity. - -### 🛠️ Other Improvements - -In addition to the highlights, other significant changes include: - -- Updated [LibreOffice 7.4][10] app with WebP support -- Updated applications and graphics drivers -- Added a maximize effect and refined physics for Jelly Mode -- Newer hardware compatibility - -### Download Zorin OS 16.2 - -You can upgrade to the latest version from the Software Updater. If it is a fresh installation, download the ISO from its official website. - -[Zorin OS 16.2][11] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/zorin-os-16-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/content/images/size/w1200/2022/10/zoring-os-16-2-release.jpg -[2]: https://itsfoss.com/beautiful-linux-distributions/ -[3]: https://news.itsfoss.com/content/images/2022/10/zorin-os-16-2-menu.jpg -[4]: https://github.com/Heroic-Games-Launcher -[5]: https://news.itsfoss.com/content/images/2022/10/heroic-epic-zorin-os-16-2.png -[6]: https://www.fontsquirrel.com/fonts/carlito -[7]: https://news.itsfoss.com/content/images/2022/10/zorin-connect-battery-share-statistics.png -[8]: https://news.itsfoss.com/content/images/2022/10/gdevelop.jpg -[9]: https://gdevelop.io -[10]: https://news.itsfoss.com/libreoffice-7-4-release/ -[11]: https://zorin.com/os/download/ From e8956f71a33da0b83095487f37c60af013f17b70 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 2 Nov 2022 10:39:54 +0800 Subject: [PATCH 1836/3123] =?UTF-8?q?=E8=B6=85=E6=9C=9F=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @FelixYFZ @HankChow @yjacks --- .../20210709 What you need to know about security policies.md | 2 +- ...06 How to send raw network packets in Python with tun-tap.md | 2 +- ...manager Virtual Machine Manager in Ubuntu and Other Linux.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/tech/20210709 What you need to know about security policies.md b/sources/tech/20210709 What you need to know about security policies.md index 2e94785530..12289bea9b 100644 --- a/sources/tech/20210709 What you need to know about security policies.md +++ b/sources/tech/20210709 What you need to know about security policies.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/7/what-security-policy) [#]: author: (Chris Collins https://opensource.com/users/clcollins) [#]: collector: (lujun9972) -[#]: translator: (FelixYFZ ) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) diff --git a/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md b/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md index f7f5e863bf..836dff1842 100644 --- a/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md +++ b/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md @@ -2,7 +2,7 @@ [#]: via: "https://jvns.ca/blog/2022/09/06/send-network-packets-python-tun-tap/" [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" -[#]: translator: "HankChow" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md b/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md index 637044c34a..1712b69513 100644 --- a/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md +++ b/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/virt-manager/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: "yjacks" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8baf7b8415868a8b6178bbd0aae88fc6f8762d08 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 2 Nov 2022 11:28:43 +0800 Subject: [PATCH 1837/3123] ALL @wxy https://linux.cn/article-15203-1.html --- ...OS More Than Just Vanilla GNOME With Ubuntu.md | 136 ++++++++++++++++++ ...OS More Than Just Vanilla GNOME With Ubuntu.md | 132 ----------------- 2 files changed, 136 insertions(+), 132 deletions(-) create mode 100644 published/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md delete mode 100644 sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md diff --git a/published/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md b/published/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md new file mode 100644 index 0000000000..21a78e56a3 --- /dev/null +++ b/published/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md @@ -0,0 +1,136 @@ +[#]: subject: "Vanilla OS: More Than Just Vanilla GNOME With Ubuntu" +[#]: via: "https://news.itsfoss.com/vanilla-os-beta/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15203-1.html" + +Vanilla OS:不只是原味 GNOME 的 Ubuntu +====== + +> Vanilla OS 是建立在 GNOME 上的、具有按需不变性和软件包选择自由的 Ubuntu。听起来很有趣?在这里阅读更多信息。 + +![Vanilla OS:不仅仅是原味 GNOME 的 Ubuntu][1] + +这正是我第一次接触 Vanilla OS 时的想法。 + +当 [Bottles][2] 的创建者 **Mirko Brombin** 在 Twitter 上宣布它时,让我对它产生了兴趣 😎。 + +我加入了他们的 Discord 频道并成为了一名测试者。虽然我没有做出什么贡献,但关注项目发展是很有趣的。 + +回到至关重要的问题上:**什么是 Vanilla OS?** + +**Vanilla OS 的目标是提供一个干净、原味的 GNOME 体验,并具有按需不变性的能力。** + +听起来很有趣?让我告诉你我试了试它的第一个开放测试版本后的一些细节。 + +> 💡 Vanilla OS 计划在 11 月有一个稳定的版本。 +> +> 它将跟随 Ubuntu 的小版本发布。 +> +> 因此,你可以期待每年发布**两个版本**。例如,你可以从 Ubuntu 22.04 升级到 Ubuntu 22.10 甚至更之后的版本。 +> +> 除非你知道自己在做什么,否则你不应该把它作为日常系统来使用。 + +### Vanilla OS:又一个基于 Ubuntu 的发行版? + +![vanilla os home][3] + +**是,也不是**。 + +对于初学者来说,我认为有以下独特的理由可以尝试一下: + +- 在 Ubuntu 之上获得 **原装 GNOME 体验**。(Fedora 也是一个很好的选择,但并不适合所有人!) +- 在其安装后的首次设置时,**允许你选择并启用 Flatpak/Snap/AppImage**。 +- **按需不变性**,意味着你可以使系统变成只读,以防止来自第三方应用程序和更新的关键变化。 +- **一个新的软件包管理器**(apx)允许你默认在管理的容器内安装软件包。 + +首次设置过程的体验很轻松。 + +> ℹ️ 目前,它使用 Calamares 安装程序。他们打算用 Crystal Linux 中使用的 Jade 取代它。 + +![Vanilla OS 安装程序][4] + +越来越多的发行版投身于此;我相信更多的用户会乐意加入到 Linux 中来。 + +![][5] + +*Vanilla OS 对软件包管理器的选择* + +当然,像 Ubuntu MATE 和 Pop!_OS 这样的发行版已经付出了巨大的努力,而 Vanilla OS 也为此增加了一些改进。 + +![Vanilla OS 颜色选择][6] + +这看起来是一种漂亮的体验!😊 + +一旦你完成了首次设置,你就没有什么可担心的了。你会得到通常的 GNOME 桌面,以及由 **Patrik Kramolis** 制作的漂亮的壁纸。 + +![Vanilla OS 主页][7] + +接下来,我试着检查了按需不变性,你可以用以下命令查看和调整: + +![Vanilla OS 终端][8] + +你可以在 [GitHub][9] 上了解更多这个(基本上)使之成为可能的工具。 + +接下来,看看新的软件包管理器,我喜欢 Distrobox 的底层概念,使其与 apx 成为可能。 + +Distrobox 的创建者 **Luca di Maio** 也参与了 Vanilla OS 的开发。 + +不过,当用 apx 安装一个软件包时,你需要用命令来初始化容器: + +``` +apx init +``` + +如果它能自动完成,那就更直观了。 + +![Vanilla OS apx][10] + +当然,我不知道技术上的限制。但是,对于用户端来说会感觉更顺滑! + +总的来说,一个利用容器安装应用程序的软件包管理器、获得选择你的软件包管理器的能力、按需不变性,以及原味的 GNOME 使它看起来是一个值得关注的好东西。 + +### 前面的路:第一印象 + +我觉得,一旦它进入稳定版,它就会成为我的日常使用系统。 + +**原因是**:我总是喜欢原装的 GNOME 体验,而且不需要处理 Fedora 的定期升级。 + +当然,等我使用了稳定版之后,我可以给你写一篇整体的用户体验评判。 + +在那之前,我想说这是一个我相信很多用户都会喜欢的项目 👏。 + +目前,你可以通过加入其 Discord 频道来下载 ISO。该 ISO 还没有公开向所有人提供。如果你感兴趣,可以看看它的 [文档][11]。 + +> **[Vanilla OS][12]** + +然而,按照路线图,他们计划很快就会有一个候选版本。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vanilla-os-beta/ + +作者:[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/content/images/size/w1200/2022/10/first-look-at-vanilla-os.jpg +[2]: https://usebottles.com +[3]: https://news.itsfoss.com/content/images/2022/10/vanillaos.jpg +[4]: https://news.itsfoss.com/content/images/2022/10/vanillaos-installer.jpg +[5]: https://news.itsfoss.com/content/images/2022/10/choosing-package-vanillaos.png +[6]: https://news.itsfoss.com/content/images/2022/10/vanilla-os-first-setup.png +[7]: https://news.itsfoss.com/content/images/2022/10/vanillaos-wallpaper.jpg +[8]: https://news.itsfoss.com/content/images/2022/10/Screenshot-from-2022-10-25-12-54-29.png +[9]: https://github.com/Vanilla-OS/almost +[10]: https://news.itsfoss.com/content/images/2022/10/apx-install.jpg +[11]: https://documentation.vanillaos.org +[12]: https://vanillaos.org/roadmap diff --git a/sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md b/sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md deleted file mode 100644 index 13f4fd9dda..0000000000 --- a/sources/news/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "Vanilla OS: More Than Just Vanilla GNOME With Ubuntu" -[#]: via: "https://news.itsfoss.com/vanilla-os-beta/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Vanilla OS: More Than Just Vanilla GNOME With Ubuntu -====== - -Vanilla OS is Ubuntu on stock GNOME with on-demand immutability and package selection freedom. Sounds fun? Read more here. - -![Vanilla OS: More Than Just Vanilla GNOME With Ubuntu][1] - -That was precisely my thought when I first came across Vanilla OS. - -When**Mirko Brombin**, the creator of [Bottles][2], announced it on Twitter, that had me interested in it 😎 - -I joined their Discord channel and hopped in to become a tester. While I did not point out anything new that other testers already did, keeping an eye on the project development is fun. - -Back to the vital question: **What is Vanilla OS?** - -**Vanilla OS aims to offer a clean vanilla GNOME experience with on-demand immutability.** - -Sounds interesting? Let me tell you a few details about it while I give its first open beta build a try. - -> 💡Vanilla OS plans to have a stable release in November. It will follow Ubuntu point releases. So, you can expect **two releases per year**. For example, you can upgrade from Ubuntu 22.04 to Ubuntu 22.10 and further. You should not replace it as a daily driver unless you know what you are doing. - -### Vanilla OS: Yet Another Ubuntu-based Distro? - -![vanilla os home][3] - -**Yes and no.** - -For starters, I see the following unique reasons to give it a try: - -- To get a **stock GNOME experience** on top of Ubuntu. (Fedora is an excellent option too, but not for everyone!) -- **Allows you to choose and enable Flatpak/Snap/AppImage** with its first-time setup after installation. -- **On-demand immutability**, meaning you can make the system read-only to prevent critical changes from third-party applications and updates. -- **A new package manager** (apx) allows you to install packages inside a managed container by default. - -The first-time setup process is a breeze to experience. - -> ℹ️Currently, it uses the Calamares installer. They intend to replace it with Jade, used in **Crystal Linux**. - -![vanilla os installer][4] - -The more distributions do things like this; I believe more users would be happy to get on board with Linux. - -![][5] - -Vanilla OS Package Manager Selection - -Of course, distributions like Ubuntu MATE and Pop!_OS have already put in great efforts, and Vanilla OS also adds some improvement to the table. - -![Vanilla os color selection][6] - -It looks like a pretty experience! 😊 - -Once you finish the first-time setup,  you have nothing else to worry about. You get the usual GNOME desktop with nice wallpapers out of the box by **Patrik Kramolis.** - -![vanilla os home][7] - -Image Credits: Mirko Brombin - -Next, I tried checking the on-demand immutability, which you can see and tweak using the following commands: - -![vanilla OS terminal][8] - -You can explore more about the utility (almost) that makes this possible on [GitHub][9]. - -Next, coming to the new package manager, I like the concept of distrobox under the hood, making this possible with apx. - -The Distrobox creator **Luca di Maio** is also involved in developing Vanilla OS. - -However, when installing a package with apx, you need to initialize the container using the command: - -``` -apx init -``` - -If it had done it automatically, I would call it intuitive. - -![vanilla os apx][10] - -Of course, I'm not aware of the technical limitations. But, for the user end, that would feel seamless! - -Overall, a package manager that installs applications utilizing a container, getting the ability to choose your package managers, on-demand immutability, and vanilla GNOME make it seem like a good deal to keep an eye on. - -### The Road Ahead: First Impressions - -I can see it as my daily driver once it hits the stable release. - -**The reason is**: I always like the stock GNOME experience, and I do not have to deal with Fedora's regular upgrades. - -Of course, once I get to use the stable release, I can give you a verdict on the entire user experience. - -Until then, I'd say it is a project that I believe a lot of users will appreciate 👏 - -You can download the ISO by joining its Discord channel for now. The ISO is not yet publicly available to all. Take a look at its [documentation][11] if you are curious. - -[Vanilla OS][12] - -However, as per the roadmap, they plan to have a release candidate soon enough. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/vanilla-os-beta/ - -作者:[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/content/images/size/w1200/2022/10/first-look-at-vanilla-os.jpg -[2]: https://usebottles.com -[3]: https://news.itsfoss.com/content/images/2022/10/vanillaos.jpg -[4]: https://news.itsfoss.com/content/images/2022/10/vanillaos-installer.jpg -[5]: https://news.itsfoss.com/content/images/2022/10/choosing-package-vanillaos.png -[6]: https://news.itsfoss.com/content/images/2022/10/vanilla-os-first-setup.png -[7]: https://news.itsfoss.com/content/images/2022/10/vanillaos-wallpaper.jpg -[8]: https://news.itsfoss.com/content/images/2022/10/Screenshot-from-2022-10-25-12-54-29.png -[9]: https://github.com/Vanilla-OS/almost -[10]: https://news.itsfoss.com/content/images/2022/10/apx-install.jpg -[11]: https://documentation.vanillaos.org -[12]: https://vanillaos.org/roadmap From 071db72051f1e9b955891dfc53dd1d56f62aa17a Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Wed, 2 Nov 2022 14:04:06 +0800 Subject: [PATCH 1838/3123] translated --- ... essential Linux commands for beginners.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 translated/tech/20220524 12 essential Linux commands for beginners.md diff --git a/translated/tech/20220524 12 essential Linux commands for beginners.md b/translated/tech/20220524 12 essential Linux commands for beginners.md new file mode 100644 index 0000000000..38805ec653 --- /dev/null +++ b/translated/tech/20220524 12 essential Linux commands for beginners.md @@ -0,0 +1,189 @@ +[#]: subject: "12 essential Linux commands for beginners" +[#]: via: "https://opensource.com/article/22/5/essential-linux-commands" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +新手教程:12 个重要的 Linux 命令 +====== +我向所有的 Linux 初学者推荐以下这些命令。 + +![Command line prompt][1] + +在使用 Linux 命令行时,很容易就会迷失方向,这可能会导致灾难性的后果:我有一次使用 删除命令 `rm` command 删除文件,然而删除之后我才意识到我刚刚是删除了计算机的引导目录。后来,我学会了使用 `pwd` 命令,来知道当前在文件系统的哪个目录下;并且我使用了 [trashy 和 trash-cli][2] 这一命令行回收站工具,在删除文件时 trash-cli 会充当中间人,将文件先“删除”到桌面上的垃圾箱中,能够通过垃圾箱或通过终端的 `trash` 命令,来恢复垃圾箱中已删除的文件。 + +当我刚开始使用 Linux 时,我有一个放在桌子上的“作弊小抄”,它就是 *《101 条你应该知道的 Linux 命令》* 101 commands for Linux ,我在管理 Linux 服务器时能参考“作弊小抄”上面的这些命令。随着我越来越熟悉这些命令,我越来越精通服务器管理了。 + +以下是我认为最有用的 12 个 Linux 命令。 + +### 1. 打印工作目录(pwd) + +`pwd` 命令会打印出你的工作目录。换句话来说,它输出你当前所在目录的路径。`pwd` 命令有两种选项:`-L`(即逻辑路径 logical) 用来打印当前的目录路径(不考虑符号链接),`-P` (即物理路径 physical)会解析符号链接,并打印出物理目录。你可以进一步阅读我们翻译的 [另一篇文章](https://linux.cn/article-4356-1.html) + +### 2. 创建目录(mkdir) + +使用 `mkdir` 命令来创建一个新目录,是非常容易的。以下命令,创建了一个名为 `example` 目录(若 `example` 已存在,则无法创建): + +``` +$ mkdir example +``` + +你也可以在嵌套地创建目录及其子目录: + +``` +$ mkdir -p example/one/two +``` + +如果目录 `example` 和目录 `one` 都已存在,则仅会创建目录 `two`。如果上述目录都不存在,则会创建三个嵌套目录。 + +### 3. 列出文件(ls) + +我最早使用的是 MS-DOS(微软磁盘操作系统),因此我习惯于使用 `dir` 命令,来列出文件。我不记得当时是否能在 Linux 上使用 `dir` 命令,但是如今 `dir` 命令已经包含在 GNU 核心实用程序包 GNU Core Utilities package 中了。大多数人会使用 `ls` 命令,来显示目录中的文件及其所有的属性。`ls` 命令有许多选项,包括 `-l` 查看文件的长列表,显示文件所有者和权限等信息。 + +### 4. 更改当前工作目录(cd) + +在 Linux 中经常要更改当前工作目录,这就是 `cd` 命令的功能。例如,以下的示例将让你从 主目录 home 进入 `Documents` 目录: + +``` +$ cd Documents +``` + +你可以使用 `cd ~`或者`cd`,来快速转换到你的 主目录 home 。你可以使用 `cd ..` 来返回到上一级目录。 + +### 5. 删除文件(rm) + +删除文件是很危险的,因为在 Linux 终端上用 `rm` 命令会**彻底地**删除文件,并没有像桌面的垃圾桶那样依旧保存着删除的文件。许多终端用户有一个坏习惯,他们会永久地删除他们认为不再需要的文件。然而,因为没有“取消删除”命令,这个坏习惯可能会导致严重的问题:你会不小心删除了包含重要数据的目录。 + +Linux 系统为文件删除提供了 `rm` 和 `shred` 命令。要删除文件 `example.txt`,请输入以下内容: + +``` +$ rm example.txt +``` + +然而,使用 trash 命令要安全得多,例如[trashy][3] 或者 [trash-cli][4],它会将文件先“删除”到桌面上的垃圾箱中: + +``` +$ trash example.txt +``` + +关于 Trash-Cli 的更多信息可以参考我们翻译的 [另一篇文章](https://linux.cn/article-10029-1.html)。 + +### 6. 复制文件(cp) + +使用 `cp` 命令,来复制文件。`cp` 的语法是从*旧文件*复制到*新文件*。这里有一个例子: + +``` +$ cp file1.txt newfile1.txt +``` + +你也可以复制整个目录: + +``` +$ cp -r dir1 newdirectory +``` + +### 7. 移动并重命名文件(mv) + +重命名和移动文件在功能上是相同的过程。当你移动文件时,从一个目录中取出一个文件,并将其放入一个新目录中;当你重命名文件时,将一个目录中的文件更改为新名称,并放回到同一目录或另一个目录下。无论是重命名还是移动文件,你都可以使用 `mv` 命令: + +``` +$ mv file1.txt file_001.txt +``` + +### 8. 创建一个空文件(touch) + +使用 `touch` 命令可以简单地创建一个空文件: + +``` +$ touch one.txt + +$ touch two.txt + +$ touch three.md +``` + +### 9. 更改权限(chmod) + +使用 `chmod` 命令,来更改文件的权限。`chmod` 最常见的用途是让文件能够执行: + +``` +$ chmod +x myfile +``` + +以下的示例展示了如何用 `chmod` 命令给文件赋予权限,这对于脚本来说特别方便。尝试一下这个简单的练习吧: + +``` +$ echo 'echo Hello $USER' > hello.sh + +$ chmod +x hello.sh + +$ ./hello.sh +Hello, Don +``` + +### 10. 提升为 root 权限(sudo) + +在管理自己的 Linux 系统时,可能需要提升为超级用户(也称为 root),这就是 `sudo`(即 *super user do*)命令的来源。假设你想要做一些只有管理员(或 root 用户)才能做的事情,只需在命令前加一个 `sudo` 即可: + +``` +$ touch /etc/os-release && echo "Success" +touch: cannot touch '/etc/os-release': Permission denied + +$ sudo touch /etc/os-release && echo "Success" +Success +``` + +### 11. 关机(poweroff) + +`poweroff` 命令的功能和它的字面意思一样:把你的计算机关机。需要在 `poweroff` 前面加一个 `sudo` 才能成功关机。 + +实际上,还有很多方法可以关闭你的计算机,这些方法有略微的不同。例如,`shutdown` 命令会在指定的时间(例如 60 秒)后关闭计算机: + +``` +$ sudo shutdown -h 60 +``` + +Or immediately: +或者立即关闭计算机: + +``` +$ sudo shutdown -h now +``` + +你也可以用 `sudo shutdown -r now` 或者 `reboot` 来重启计算机。 + +### 12. 阅读手册(man) + +`man` 命令可能是 Linux 中最重要的命令了,你可以通过 `man` 命令查看 Linux 系统上每个命令的官方文档。例如,要阅读更多有关 `mkdir` 的信息,可以输入: + +``` +$ man mkdir +``` + +一个与 `man` 相关的命令是 `info` 命令,它提供了一组不同的手册,它通常会提供比简洁的 `man` 页面更详细一点的内容。 + +### 你最喜欢的 Linux 命令是什么? + +There are many more commands on a Linux system—hundreds! What's your favorite command, the one you find yourself using time and time again? +Linux 系统上还有数百个其他命令!你最喜欢使用的 Linux 命令是什么呢?什么命令是你一直反复使用的呢? + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/5/essential-linux-commands + +作者:[Don Watkins][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/command_line_prompt.png +[2]: https://www.redhat.com/sysadmin/recover-file-deletion-linux +[3]: https://gitlab.com/trashy/trashy +[4]: https://github.com/andreafrancia/trash-cli From 858574caa8d6cf3ac1318ca585d64e2eafe5b272 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Wed, 2 Nov 2022 14:08:20 +0800 Subject: [PATCH 1839/3123] remove the article in source/tech --- ... essential Linux commands for beginners.md | 187 ------------------ 1 file changed, 187 deletions(-) delete mode 100644 sources/tech/20220524 12 essential Linux commands for beginners.md diff --git a/sources/tech/20220524 12 essential Linux commands for beginners.md b/sources/tech/20220524 12 essential Linux commands for beginners.md deleted file mode 100644 index 4fe7b342b8..0000000000 --- a/sources/tech/20220524 12 essential Linux commands for beginners.md +++ /dev/null @@ -1,187 +0,0 @@ -[#]: subject: "12 essential Linux commands for beginners" -[#]: via: "https://opensource.com/article/22/5/essential-linux-commands" -[#]: author: "Don Watkins https://opensource.com/users/don-watkins" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -12 essential Linux commands for beginners -====== -I recommend these commands to anyone who is getting started with Linux. - -![Command line prompt][1] - -Image by: Opensource.com - -When operating on the Linux command line, it is easy to get disoriented, which can have disastrous consequences. I once issued a remove command before realizing that I'd moved the boot directory of my computer. I learned to use the `pwd` command to know exactly which part of the file system I was in (and these days, there are command projects, like [trashy and trash-cli][2], that serve as intermediates when removing files). - -When I was new to Linux, I had a cheat sheet that hung over my desk to help me remember those commands as I managed my Linux servers. It was called the *101 commands for Linux* cheat sheet. As I became more familiar with these commands, I became more proficient with server administration. - -Here are 12 Linux commands I find most useful. - -### 1. Print working directory (pwd) - -The `pwd` command prints your working directory. In other words, it outputs the path of the directory you are currently working in. There are two options: `--logical` to display your location with any symlinks and `--physical` to display your location after resolving any symlinks. - -### 2. Make directory (mkdir) - -Making directories is easy with the `mkdir` command. The following command creates a directory called `example` unless `example` already exists: - -``` -$ mkdir example -``` - -You can make directories within directories: - -``` -$ mkdir -p example/one/two -``` - -If directories `example` and `one` already exist, only directory `two` is created. If none of them exist, then three nested directories are created. - -### 3. List (ls) - -Coming from MS-DOS, I was used to listing files with the `dir` command. I don't recall working on Linux at the time, although today, `dir` is in the GNU Core Utilities package. Most people use the `ls` command to display the files, along with all their properties, are in a directory. The `ls` command has many options, including `-l` to view a long listing of files, displaying the file owner and permissions. - -### 4. Change directory (cd) - -It is often necessary to change directories. That's the `cd` command's function. For instance, this example takes you from your home directory into the `Documents` directory: - -``` -$ cd Documents -``` - -You can quickly change to your home directory with `cd ~` or just `cd` on most systems. You can use `cd ..` to move up a level. - -### 5. Remove a file (rm) - -Removing files is inherently dangerous. Traditionally, the Linux terminal has no Trash or Bin like the desktop does, so many terminal users have the bad habit of permanently removing data they believe they no longer need. There's no "un-remove" command, though, so this habit can be problematic should you accidentally delete a directory containing important data. - -A Linux system provides `rm` and `shred` for data removal. To delete file `example.txt`, type the following: - -``` -$ rm example.txt -``` - -However, it's much safer to install a trash command, such as [trashy][3] or [trash-cli][4]. Then you can send files to a staging area before deleting them forever: - -``` -$ trash example.txt -``` - -### 6. Copy a file (cp) - -Copy files with the `cp` command. The syntax is copy *from-here* *to-there*. Here's an example: - -``` -$ cp file1.txt newfile1.txt -``` - -You can copy entire directories, too: - -``` -$ cp -r dir1 newdirectory -``` - -### 7. Move and rename a file (mv) - -Renaming and moving a file is functionally the same process. When you move a file, you take a file from one directory and put it into a new one. When renaming a file, you take a file from one directory and put it back into the same directory or a different directory, but with a new name. Either way, you use the `mv` command: - -``` -$ mv file1.txt file_001.txt -``` - -### 8. Create an empty file (touch) - -Easily create an empty file with the `touch` command: - -``` -$ touch one.txt - -$ touch two.txt - -$ touch three.md -``` - -### 9. Change permissions (chmod) - -Change the permissions of a file with the `chmod` command. One of the most common uses of `chmod` is making a file executable: - -``` -$ chmod +x myfile -``` - -This example is how you give a file permission to be executed as a command. This is particularly handy for scripts. Try this simple exercise: - -``` -$ echo 'echo Hello $USER' > hello.sh - -$ chmod +x hello.sh - -$ ./hello.sh -Hello, Don -``` - -### 10. Escalate privileges (sudo) - -While administering your system, it may be necessary to act as the super user (also called root). This is where the `sudo` (or *super user do*) command comes in. Assuming you're trying to do something that your computer alerts you that only an administrator (or root) user can do, just preface it with the command `sudo` : - -``` -$ touch /etc/os-release && echo "Success" -touch: cannot touch '/etc/os-release': Permission denied - -$ sudo touch /etc/os-release && echo "Success" -Success -``` - -### 11. Shut down (poweroff) - -The `poweroff` command does exactly what it sounds like: it powers your computer down. It requires `sudo` to succeed. - -There are actually many ways to shut down your computer and some variations on the process. For instance, the `shutdown` command allows you to power down your computer after an arbitrary amount of time, such as 60 seconds: - -``` -$ sudo shutdown -h 60 -``` - -Or immediately: - -``` -$ sudo shutdown -h now -``` - -You can also restart your computer with `sudo shutdown -r now` or just `reboot`. - -### 12. Read the manual (man) - -The `man` command could be the most important command of all. It gets you to the documentation for each of the commands on your Linux system. For instance, to read more about `mkdir` : - -``` -$ man mkdir -``` - -A related command is `info`, which provides a different set of manuals (as long as they're available) usually written more verbosely than the often terse man pages. - -### What's your favorite Linux command? - -There are many more commands on a Linux system—hundreds! What's your favorite command, the one you find yourself using time and time again? - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/5/essential-linux-commands - -作者:[Don Watkins][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/don-watkins -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/command_line_prompt.png -[2]: https://www.redhat.com/sysadmin/recover-file-deletion-linux -[3]: https://gitlab.com/trashy/trashy -[4]: https://github.com/andreafrancia/trash-cli From 463b855c83bd83f515501bd394dda305d6ba3242 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 2 Nov 2022 16:20:34 +0800 Subject: [PATCH 1840/3123] RP @geekpi https://linux.cn/article-15205-1.html --- ... to Install Viber in Ubuntu and Other Linux.md | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md (74%) diff --git a/translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md b/published/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md similarity index 74% rename from translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md rename to published/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md index 2c972b0998..79097920ba 100644 --- a/translated/tech/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md +++ b/published/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md @@ -3,18 +3,20 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15205-1.html" -如何在 Ubuntu 和其他 Linux 中安装 Viber +如何在 Ubuntu 中安装 Viber ====== -**这是有关如何在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。** +![](https://img.linux.net.cn/data/attachment/album/202211/02/161951egly6ylguc6g0w5g.jpg) -[Viber][1] 是一个免费、安全的呼叫和聊天程序,适用于所有流行的移动平台和操作系统。 +> 这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。 -它具有丰富的功能,例如语音/视频通话、带有 GIF 的文本消息、贴纸、照片和视频。此外,Viber 还具有群聊、群呼和消失消息功能。 +[Viber][1] 是一个免费、安全的通话和聊天程序,适用于所有流行的移动平台和操作系统。 + +它具有丰富的功能,例如语音/视频通话、支持 GIF 的文本消息、贴纸、照片和视频。此外,Viber 还具有群聊、群呼和消失消息功能。 Viber 是一个闭源程序,但有免费的 Linux 原生可执行客户端。 @@ -24,24 +26,23 @@ Viber 是一个闭源程序,但有免费的 Linux 原生可执行客户端。 它以 AppImage 可执行文件、deb 和 rpm 包的形式提供。按照下面的相应按钮直接下载。平均可执行文件大小约为 180MB。 -[下载适用于所有 Linux 发行版的 Appimage][2] +> **[下载适用于所有 Linux 发行版的 Appimage][2]** -[适用于 Ubuntu 的 Deb 可执行文件][3] +> **[适用于 Ubuntu 的 Deb 可执行文件][3]** -[Fedora 的 RPM 包][8] +> **[Fedora 的 RPM 包][8]** 如果你已下载 AppImage,只需从任意文件管理器将权限更改为可执行文件即可。然后运行。 +对于 Ubuntu、Linux Mint、Debian 和相关发行版,你可以通过[多种方法][4]安装 deb 包。 -- 对于 Ubuntu、Linux Mint、Debian 和相关发行版,你可以通过[多种方法][4]安装 deb 包。 - -- 你可以通过已安装的软件管理器双击打开。或者通过 dpkg 命令安装,如下所示。 +你可以通过已安装的软件管理器双击打开。或者通过 `dpkg` 命令安装,如下所示。 ``` sudo dpkg -i viber.deb ``` -- 对于 Fedora 和基于 RPM 的软件包,你可以通过以下命令安装。 +对于 Fedora 和基于 RPM 的软件包,你可以通过以下命令安装。 ``` sudo dnf localinstall viber.rpm @@ -75,7 +76,7 @@ via: https://www.debugpoint.com/install-viber-linux/ 作者:[Arindam][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/) 荣誉推出 From 514990fd655fa3ea02d8c656ec0e7a10ea25c828 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 2 Nov 2022 22:08:15 +0800 Subject: [PATCH 1841/3123] RP @cool-summer-021 https://linux.cn/article-15206-1.html --- ... My top 5 tips for setting up Terraform.md | 77 +++++++++++++++++++ ... My top 5 tips for setting up Terraform.md | 75 ------------------ 2 files changed, 77 insertions(+), 75 deletions(-) create mode 100644 published/20210811 My top 5 tips for setting up Terraform.md delete mode 100644 translated/tech/20210811 My top 5 tips for setting up Terraform.md diff --git a/published/20210811 My top 5 tips for setting up Terraform.md b/published/20210811 My top 5 tips for setting up Terraform.md new file mode 100644 index 0000000000..0b109a9db6 --- /dev/null +++ b/published/20210811 My top 5 tips for setting up Terraform.md @@ -0,0 +1,77 @@ +[#]: subject: "My top 5 tips for setting up Terraform" +[#]: via: "https://opensource.com/article/21/8/terraform-tips" +[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma" +[#]: collector: "lujun9972" +[#]: translator: "cool-summer-021" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15206-1.html" + +关于配置 Terraform 的五条建议 +====== + +> 本文介绍我使用 Terraform 五年之后吸取到的经验。 + +![](https://img.linux.net.cn/data/attachment/album/202211/02/220728ngg0kzjg0rldu0l7.jpg) + +使用 Terraform 五年的经历让我吸取到一些重要经验。无论团队大小、项目性质,有五条要点对于配置合乎逻辑且可用的 Terraform 平台至关重要。 + +### 1、了解你的目标受众 + +这一点似乎显而易见,但我也见过一些在这方面犯错的案例。当组织和规划 Terraform 的相关代码时,无论是将目录结构标准化还是确定命名规范,考虑目标受众是非常重要的。例如:你的团队是否会使用这些 Terraform 脚本和模块?你是否会向其他团队交接工作?你的团队是否会有新成员加入?你是否正在独自进行项目开发?你是否会半年或一年后仍然使用这些配置,还是会将它安排给别人? + +这类问题会影响某些决策。理想情况下,无论如何都应该有 [远程状态][2]Remote State[状态锁定][3]State Locking 两种状态。远程状态确保你的笔记本电脑不是你的 Terraform 唯一运行的机器,状态锁定确保同一时刻只有一个人对基础设施进行修改操作。 + +命名规范应该对项目的最终拥有者有意义,而不是只对开发团队有意义。如果项目会转交给其他团队,应该确保他们对命名规范有发言权。如果代码由非技术的利益相关者或内部安全/ GCR 团队负责审查,应该确保他们会检查命名规范。另外,对于资源名称,为了让代码审查人员更仔细地进行检查,你应该使用资源标签,把有关的数据分类/隐私需求(高、中、低)标示出来。 + +### 2、重用,重用,重用 + +[Terraform 注册表][4] 为大多数普通用例提供了现成模块类库。我已经使用过 VPC 模块和安全模块中的大量功能,这些功能只需要提供相关的参数就能使用。使用不同的参数,简单调用这些模块对于处理大部分用例已经足够了。尽可能多地重用这些公共模块,可以避免大量且重复的编码、测试、检查、修复、重构等操作。 + +我也发现,基于使用或变更的频率划分模块和资源大有好处。例如,只使用一次的基础设施手脚架,例如 VPC 相关设置、安全模块、路由表、VPC 端点等,可以放在一起。但是像私有托管域条目、自动伸缩模块、目标模块、负载均衡器等,每次部署时都会变化,所以把这些与一次性的基础设施手脚架分离开来,会令代码检查更方便,调试更快速。 + +### 3、要明确,而非隐含 + +Terraform 代码中有一些常见的模式,它会导致设计中出现错误的假设。团队可以假设用来写代码的 Terraform 版本永远保持不变,外部模块不会变化,或它们使用的提供者不会变更。当这些外部依赖不可避免地发生变化时,就会导致一些难以发现的问题。 + +无论何处(包括主要的 Terraform 组、提供者组、功能模块组)都要确保定义是明确的。事先定义版本,可以确保依赖库是固定的,因此你可以在讨论、审查、测试后,明明白白地更新依赖关系。 + +### 4、自动化每一处,包括笔记本电脑、共享虚拟机、CI/CD。 + +在部署的各个阶段使用自动化方法,可以避免可能发生的问题。 + +在你提交代码前,使用 [Git 预提交钩子][5] 运行 `terraform fmt` 和 `terraform validate`。预提交钩子的作用是确保你的代码满足最低程度的格式和语法正确。把这个预提交文件检入到仓库,对你的团队成员都有好处。项目的第一步就进行质量控制相关的操作,它虽然表面上是小事一桩,但也很重要,能为项目节省大量时间。 + +一切现代化部署工具都有 CI 流程。当你向原始仓库推送代码时,可以使用它来运行 SAST 和单元测试工具。我写过一篇 [博客][6],是关于使用 Checkov 测试 Terraform 代码的安全性和合规性,并为组织特定的惯例创建自定义检查。把这些单元测试工具加入到你的 CI 管道,可以改进代码质量和健壮性。 + +### 5、写个好的 README.md 文件 + +我们都认为 Terraform 代码是自文档化的。的确如此,但是只有当未来的团队已经了解你的公司的命名规范、开发指南、机密通信、圈内笑话,以及你的仓库内除有效的 Terraform 代码之外其他所有东西,才会如此。维护 `README.md` 文件是个好习惯,它能节省大量时间,而且团队成员要为自己向 README 文件提交的任何内容负责,这样也就确保团队成员的忠诚度。 + +你的 README 文件至少应该包含在你的工作环境下(Linux、 Windows、Mac 等等)初始化 Terraform 环境的步骤,包括 Terraform 的版本信息。它应当确定需要的依赖库(Checkov、 TerraGrunt 及其他依赖)和其版本,以及团队使用的方便的 Linux 别名(例如有人喜欢将 `terraform fmt` 简写为 `tff`)。最重要的是,需要确定分支和 PR 审核策略和流程、命名规范和资源标签的相关标准。 + +README 文件需要通过这样的检验:如果团队有新成员加入,能否告诉他们做什么以及如何正确地完成工作?如果不能,在后续的几个月内,你将面对的是无休止的标准和流程讨论会议。 + +### 结束语 + +这些就是我使用 Terraform 多年后,认为需要传授给大家的五条有用的建议。也欢迎你分享自己的最佳实践。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/8/terraform-tips + +作者:[Ayush Sharma][a] +选题:[lujun9972][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/ayushsharma +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) +[2]: https://www.terraform.io/docs/language/state/index.html +[3]: https://www.terraform.io/docs/language/state/locking.html +[4]: https://registry.terraform.io/ +[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6 +[6]: https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov diff --git a/translated/tech/20210811 My top 5 tips for setting up Terraform.md b/translated/tech/20210811 My top 5 tips for setting up Terraform.md deleted file mode 100644 index e85f4b3759..0000000000 --- a/translated/tech/20210811 My top 5 tips for setting up Terraform.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "My top 5 tips for setting up Terraform" -[#]: via: "https://opensource.com/article/21/8/terraform-tips" -[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma" -[#]: collector: "lujun9972" -[#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -关于配置 Terraform 的五条建议 -====== -本文介绍我使用 Terraform 五年之后吸取到的经验。 -![Puzzle pieces coming together to form a computer screen][1] - -使用 Terraform 五年的经历让我吸取到一些重要经验。无论团队大小、项目性质,有五条要点对于配置合乎逻辑且可用的 Terraform 平台至关重要。 - -### 1\. 了解你的目标受众 - -这一点似乎显而易见,但我也见过一些在这方面犯错的案例。当组织和规划 Terraform 的相关代码时,无论是将目录结构标准化还是确定命名规范,考虑目标受众是非常重要的。例如:你的团队是否将使用这些 Terraform 脚本和模块?你是否会向其他团队交接工作?你的团队是否会有新成员加入?你是否正在独自进行项目开发?半年或一年后,你是否仍然使用这些配置,还是会将它安排给别人? - -这类问题会影响某些决策。理想情况下,无论如何都会有[远程状态][2]和[状态锁定][3]两种状态。远程状态确保你的机器不是 Terraform 唯一运行的机器,状态锁定确保同一时刻只有一个人对基础设施进行修改操作。 - -命名规范应该对项目的最终拥有者有意义,而不是只对开发团队有意义。如果项目会转交给其他团队,应该确保他们对命名规范有发言权。如果代码由非技术的利益相关者或内部安全/GCR 团队负责审查,应该确保他们会检查命名规范。另外,对于资源名称,为了让代码审查人员更仔细地进行检查,你应该使用资源标签,把有关的数据分类/隐私需求(高、中、低)标示出来。 - -### 2\. 重用,重用,重用 - -[Terraform 注册表][4]为大多数普通用例提供了现成模块类库。我已经使用过 VPC 模块和安全模块中的大量功能,这些功能只需要提供相关的参数就能使用。使用不同的参数,简单调用这些模块对于处理大部分用例已经足够了。尽可能多地重用这些公共模块,可以避免大量且重复的编码、测试、检查、修复、重构等操作。 - -我也发现,基于使用或变更的频率划分模块和资源大有好处。例如,只使用一次的基础设施手脚架,例如 VPC 相关设置、安全模块、路由表、VPC 端点等,可以放在一起。但是像私有托管域条目、自动伸缩模块、目标模块、负载均衡器等,每次部署时都会变化, 所以把这些与基础设施手脚架分离开来,会令代码检查更方便,调试更快速。 - -### 3\. 要明确,而非隐含 - -Terraform 代码中有一些常见的模式,它会导致设计中出现错误的假设。 团队可以假设用来写代码的 Terraform 版本永远保持不变,外部模块不会变化,或供应商不会变更。当这些外部依赖不可避免地发生变化时,就会导致一些难以发现的问题。 - -无论何处(包括主要的 Terraform 组、Provider 组、功能模块组)都要确保定义是明确的。事先定义版本,可以确保依赖库是固定的,因此你可以在讨论、审查、测试后,明明白白地更新依赖关系。 - -### 4\. 无论何处都要进行自动化,包括笔记本电脑、共享虚拟机、CI/CD。 - -在部署的各个阶段使用自动化方法,都可以避免可能发生的问题。 - -在你提交代码前,使用 [Git pre-commit hooks][5] 运行 `terraform fmt` 和 `terraform validate`。Pre-commit hooks 的作用是确保你的代码满足最低程度的格式和语法正确。把这个 pre-commit 文件检入到仓库,对你的团队成员都有好处。项目的第一步就进行质量控制相关的操作,它虽然表面上是小事一桩,但也很重要,能为项目节省大量时间。 - -一切现代化部署工具都有 CI 流程。当你向原始仓库推送代码时,可以使用它来运行 SAST 和单元测试工具。我写过一篇博客,是关于[使用 Checkov 测试 Terraform 代码的安全性和一致性以及进行自定义检查][6]的。把这些单元测试工具加入到你的 CI 管道,可以改进代码质量和健壮性。 - -### 5\. 具有极好的 README.md 文件 - -我们都认为 Terraform 代码是自文档化的。的确如此,但是只有当未来的团队已经了解你的公司的命名规范、开发指南、机密通信、圈内笑话以及除有效代码之外你的仓库内的其他所有东西,才会如此。维护 `README.md` 文件是个好习惯,它能节省大量时间,而且团队成员要为自己向 README 文件提交的任何内容负责,这样也就确保团队成员的忠诚度。 - -你的 README 文件至少应该包含在你的工作环境下(Linux, Windows, Mac 等等)初始化 Terraform 环境的步骤,包括 Terraform 的版本信息。它应当确定需要的依赖库(Checkov, TerraGrunt及其他依赖)和其版本,以及团队使用的 Linux 别名(例如有人喜欢将 `terraform fmt` 简写为 `tff`)。最重要的是,需要确定分支和 PR 审核策略和流程、命名规范和资源标签的相关标准。 - -README 文件需要通过这样的检验:如果团队有新成员加入,能否告诉他们做什么以及如何正确地完成工作?如果不能,在后续的几个月内,你将面对的是无休止的标准和流程讨论会议。 - -### 结束语 - -这些就是我使用 Terraform 多年后,认为需要传授给大家的五条有用的建议。也欢迎您分享自己的最佳实践。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/8/terraform-tips - -作者:[Ayush Sharma][a] -选题:[lujun9972][b] -译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/ayushsharma -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen) -[2]: https://www.terraform.io/docs/language/state/index.html -[3]: https://www.terraform.io/docs/language/state/locking.html -[4]: https://registry.terraform.io/ -[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6 -[6]: https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov From 32f7c72b5217a5d8d792e9ef1da2741ce5dacfe6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 2 Nov 2022 23:13:03 +0800 Subject: [PATCH 1842/3123] R --- ...to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md b/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md index 4e0c0aae4f..823b3f50dd 100644 --- a/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md +++ b/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md @@ -48,7 +48,8 @@ 打开一个终端,并运行下面的命令: ``` -sudo apt updatesudo apt upgrade +sudo apt update +sudo apt upgrade ``` 或者,你也可以打开软件包更新程序。安装所有的准备就绪的软件包。 From 62c95d700208f0f96d8ef24fb1b4ef571b6d6d0e Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Wed, 2 Nov 2022 23:21:24 +0800 Subject: [PATCH 1843/3123] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md index fb828c9572..6cacb3db8e 100644 --- a/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md +++ b/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/linux-lite-6-2-release/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "littlebirdnest" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3d0ab233188c69687d7dffb35d17f64745fdd118 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Wed, 2 Nov 2022 23:41:46 +0800 Subject: [PATCH 1844/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221101.5 ⭐️ Linux Lite 6.2 Released.md | 106 ------------------ .../20221101.5 ⭐️ Linux Lite 6.2 Released.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md create mode 100644 translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md diff --git a/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md deleted file mode 100644 index 6cacb3db8e..0000000000 --- a/sources/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Linux Lite 6.2 Released" -[#]: via: "https://news.itsfoss.com/linux-lite-6-2-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "littlebirdnest" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Lite 6.2 Released -====== - -Linux Lite 6.2 is an ideal upgrade with the useful changes, nothing too fancy. - -![Linux Lite 6.2 Released][1] - -Linux Lite is a popular lightweight Windows-like distro that gives users a familiar operating system. - -The latest release, Linux Lite 6.2, is based on Ubuntu 22.04 LTS and has brought forward a variety of changes to the UI along with various bug fixes. - -### Linux Lite 6.2: What's New? - -![linux lite 6.2 desktop][2] - -This release of Linux Lite focuses on user interface tweaks and bug fixes, with changes to a few applications. - -Some key highlights include: - -- **Updated Icons** -- **New Wallpapers** -- **Shotcut Video Editor** -- **Removal Of Microsoft Teams** -- **LibreOffice 7.3.6.2** -- **Linux Kernel 5.15** - -#### Shotcut Replaces OpenShot - -![linux lite 6.2 shotcut video editor][3] - -Yes, [Shotcut][4] now replaces [OpenShot][5] as the default video editor on Linux Lite 6.2. - -OpenShot gets the place because it didn't work well with Ubuntu 22.04, and without a utility like this, users would have to look for one on their own. - -Shotcut is undoubtedly a good video editor. So, it should be a good option. - -#### Microsoft Teams Removed - -Another significant change is that Microsoft Teams is no longer included in the distro. - -The reason for that is the discontinuation of the Linux application by Microsoft in favor of a progressive web app version. - -Our previous coverage can give you more insight into that: - -#### Updated Icons and New Wallpapers - -![linux lite 6.2 new wallpapers][6] - -Linux Lite 6.2 features the latest [Papirus][7] icon set alongside a bunch of new Linux Lite-themed wallpapers. - -This should give the distro a refreshed look that users might like. - -#### 🛠️ Other Changes and Improvements - -![][8] - -Other notable changes include: - -- Updates to the task manager -- Improved end dialogue in the Lite Upgrade application. -- The latest updates for various applications, bug fixes, and more. - -You can go through the [full release notes][9] to learn more. - -Linux Lite 6.2 seems to be a satisfactory upgrade over the previous version, with many significant changes and additions. - -### 📥 Download Linux Lite 6.2 - -You can download the latest ISO from its official website or upgrade to it using the Lite Upgrade tool. - -[Linux Lite 6.2][10] - -💬 What do you think of Linux Lite 6.2? Willing to give it a try? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-lite-6-2-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/linux-lite-6.2.png -[2]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Desktop.png -[3]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Shotcut.png -[4]: https://shotcut.org/ -[5]: https://www.openshot.org/ -[6]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Wallpapers.png -[7]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme -[8]: https://news.itsfoss.com/content/images/2022/11/lite-upgrade.png -[9]: https://www.linuxliteos.com/forums/release-announcements/linux-lite-6-2-final-released/ -[10]: https://www.linuxliteos.com/download.php diff --git a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md new file mode 100644 index 0000000000..13257fe2ae --- /dev/null +++ b/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md @@ -0,0 +1,106 @@ +[#]: subject: "Linux Lite 6.2 Released" +[#]: via: "https://news.itsfoss.com/linux-lite-6-2-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "littlebirdnest" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Lite 6.2 发布 +====== + +Linux Lite 6.2 是一个近乎完美且有用的升级,没什么太花哨的东西。 + +![Linux Lite 6.2 Released][1] + +Linux Lite 是一种流行的轻量级的类Windows 发行版,为用户提供熟悉的操作系统。 + +最新版本 Linux Lite 6.2 基于 Ubuntu 22.04 LTS,对 UI 进行了各种更改以及各种bug的修复。 + +Linux Lite 6.2:有什么新功能? + +![linux lite 6.2 desktop][2] + +此版本的 Linux Lite 侧重于用户界面调整和错误修复,并对一些应用程序进行了更改。 + +一些主要亮点包括: + +- **更新的图标s** +- **新壁纸** +- **Shotcut 视频编辑器** +- **删除 Microsoft Teams** +- **LibreOffice 7.3.6.2** +- **Linux 内核 5.15** + +#### Shotcut 取代 OpenShot + +![linux lite 6.2 shotcut video editor][3] + +是的,[Shotcut][4] 现在取代[OpenShot][5]作为 Linux Lite 6.2 上的默认视频编辑器。 + +OpenShot 获得了这个位置,因为它不能很好地与 Ubuntu 22.04 配合使用,而且如果没有一个好用的视频编辑器,用户将不得不自己寻找一个。 + +Shotcut 无疑是一款出色的视频编辑器。所以,应该是一个不错的选择。 + +#### 微软团队已删除 + +另一个重大变化是 Microsoft Teams 不再包含在发行版中。 + +其原因是微软停止了 Linux 应用程序,转而支持他们认为是进步的 Web 应用程序版本。 + +我们之前的报道可以让您更深入地了解: + +#### 更新的图标和新壁纸 + +![linux lite 6.2 new wallpapers][6] + +Linux Lite 6.2 具有最新的 [Papirus][7] 图标集以及一系列新的 Linux Lite 主题壁纸。 + +这应该会给发行版带来用户可能喜欢的焕然一新的外观。 + +#### 🛠️ 其他更改和改进 + +![][8] + +其他值得注意的变化包括: + +- 任务管理器的更新 +- 改进了 Lite Upgrade 应用程序中的结束对话。 +- 各种应用程序的最新更新、错误修复等。 + +您可以阅读完整的发行说明以[了解更多信息][9]。 + +Linux Lite 6.2 似乎是对以前版本的令人满意的升级,有许多重大的变化和补充。 + +### 📥下载 Linux 精简版 6.2 + +您可以从其官方网站下载最新的 ISO 或使用 Lite 升级工具升级到它。 + +[Linux Lite 6.2][10] + +💬您如何看待 Linux Lite 6.2?愿意试一试吗? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-lite-6-2-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/linux-lite-6.2.png +[2]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Desktop.png +[3]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Shotcut.png +[4]: https://shotcut.org/ +[5]: https://www.openshot.org/ +[6]: https://news.itsfoss.com/content/images/2022/10/Linux_Lite_6.2_Wallpapers.png +[7]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme +[8]: https://news.itsfoss.com/content/images/2022/11/lite-upgrade.png +[9]: https://www.linuxliteos.com/forums/release-announcements/linux-lite-6-2-final-released/ +[10]: https://www.linuxliteos.com/download.php From bd94764636915a6f8f9fa4f9348eb94ab6485450 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Wed, 2 Nov 2022 23:44:20 +0800 Subject: [PATCH 1845/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 名字加好了 --- translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md index 13257fe2ae..a3868386d9 100644 --- a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md +++ b/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md @@ -87,7 +87,7 @@ via: https://news.itsfoss.com/linux-lite-6-2-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[littlebirdnest](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From de42d8695cd1f906fb3020861a5ed7ee46db2d4d Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 3 Nov 2022 08:34:56 +0800 Subject: [PATCH 1846/3123] translated --- ...d HDD Temperature in Ubuntu and Other Linux.md | 119 ----------------- ...d HDD Temperature in Ubuntu and Other Linux.md | 120 ++++++++++++++++++ 2 files changed, 120 insertions(+), 119 deletions(-) delete mode 100644 sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md create mode 100644 translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md diff --git a/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md b/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md deleted file mode 100644 index 3473208de8..0000000000 --- a/sources/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "How to Check CPU and HDD Temperature in Ubuntu and Other Linux" -[#]: via: "https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Check CPU and HDD Temperature in Ubuntu and Other Linux -====== - -**Wondering how you can check the CPU and HDD temperature in Ubuntu and other Linux on your desktop or laptop? Here’s a quick guide.** - -You do not actually require checking CPU or HDD temperature if you are an average user. But, if you are using very older hardware or a thin one, you may run into an overheating problem. Because these thin ones are tightly coupled together inside, and no matter how much heat transfer mechanism is implemented, it heats up. Therefore, it is essential to monitor the temperature of the hardware. However, modern Linux distributions are well capable of handling overheating situations via software sensors. - -### Steps for monitoring CPU and HDD temperature on Ubuntu - -#### Using terminal - -We are going to use a couple of packages to achieve the same. Open a terminal in your Ubuntu-based system and install the following. - -``` -sudo apt install hddtemp -sudo apt install lm-sensors -``` - -The [hddtemp][1] utility gives you the temperature of your optical hard disk drive as well as SSD (as per my test). And the [lm-sensors][2] package gives you temperature details from the CPUs and other sensors accessed via PCI ports. - -After installation, run the following from the terminal. You need to know your disk identifier for this – for example `/dev/sda` or `/dev/sdb`, etc. - -To find out the disk identifiers, you can use `fdisk`. - -``` -sudo fdisk -l -``` - -Then run below to check the HDD or SSD temperature. - -``` -sudo hddtemp -``` - -![HDD or SSD Temperature from terminal][3] - -HDD or SSD Temperature from terminal - -Checking the CPU temperature and other information requires an additional step. - -First, run the below command so that the utility of the sensor can detect the sensors in your system. - -``` -sudo sensors-detect -``` - -The above command might ask you some YES/NO questions. Keep pressing ENTER to choose the default options. - -Once done, run the below command to view the CPU and other interface temperatures. - -``` -sensors -``` - -![using sensors][4] - -using sensors - -#### Using GUI tools - -If you prefer a nice GUI which does all the above, you can install [psensor][5]. This utility works across Linux systems such as Ubuntu, Fedora, [Arch][6] and other variants. This gives you nice graphical plus tabular view of - -**Ubuntu and its derivatives** - -``` -sudo apt install psensor -``` - -**Fedora and RPM-based derivatives** - -``` -sudo dnf install psensor -``` - -**Arch, Manjaro and similar derivatives** - -``` -pacman -S psensor -``` - -Once installed, run via `psensor from the terminal or launch it from the`application menu. - -As you can see in the below screenshot, it gives you a nice view of all the important temperatures across CPU, GPU, and HDD with a nice graph. Using its preferences, you can tweak it as per your need. This lightweight utility can be helpful in many cases. - -![psensor running][7] - -psensor running - -So, these are some ways in which you can monitor CPU, GPU or HDD temperature in your Ubuntu and other Linux systems. Let me know if you know of any other ways to find these out using the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/ - -作者:[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://wiki.archlinux.org/title/Hddtemp -[2]: https://github.com/lm-sensors/lm-sensors -[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/HDD-or-SSD-Temperature-from-terminal.png -[4]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor.png -[5]: https://wpitchoune.net/psensor/ -[6]: https://www.debugpoint.com/tag/arch-linux -[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor-running-1024x465.png diff --git a/translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md b/translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..5d5259988d --- /dev/null +++ b/translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md @@ -0,0 +1,120 @@ +[#]: subject: "How to Check CPU and HDD Temperature in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 和其他 Linux 中检查 CPU 和硬盘温度 +====== + +**想知道如何在台式机或笔记本电脑上检查 Ubuntu 和其他 Linux 中的 CPU 和硬盘温度?这是一个快速指南。** + +如果你是普通用户,那么实际上不需要检查 CPU 或 HDD 温度。但是,如果你使用的是非常旧的硬件或较薄的硬件,你可能会遇到过热问题。因为这些薄的硬件内部紧密耦合在一起,无论做了多少传热机制,它都会升温。因此,必须监控硬件的温度。然而,现代 Linux 发行版能够通过软件传感器很好地处理过热情况。 + +### 在 Ubuntu 上监控 CPU 和硬盘温度的步骤 + +#### 使用终端 + +我们将使用几个包来实现相同的目的。在基于 Ubuntu 的系统中打开一个终端并安装以下内容。 + +``` +sudo apt install hddtemp +sudo apt install lm-sensors +``` + +[hddtemp][1] 程序为你提供光驱和 SSD 的温度(根据我的测试)。 [lm-sensors][2] 包为你提供来自 CPU 和其他通过 PCI 端口访问的传感器的温度详细信息。 + +安装后,从终端运行以下命令。你需要知道你的磁盘标识符,例如 `/dev/sda` 或 `/dev/sdb` 等。 + +要找出磁盘标识符,你可以使用 `fdisk`。 + +``` +sudo fdisk -l +``` + +然后运行以下命令检查 HDD 或 SSD 温度。 + +``` +sudo hddtemp +``` + +![HDD or SSD Temperature from terminal][3] + +来自终端的 HDD 或 SSD 温度 + +检查 CPU 温度和其他信息需要额外的步骤。 + +首先,运行以下命令,以便传感器程序可以检测到系统中的传感器。 + +``` +sudo sensors-detect +``` + +上面的命令可能会问你一些是/否的问题。继续按回车选择默认选项。 + +完成后,运行以下命令查看 CPU 和其他接口温度。 + +``` +sensors +``` + +![using sensors][4] + +使用传感器 + +#### 使用 GUI 工具 + +If you prefer a nice GUI which does all the above, you can install [psensor][5]. This utility works across Linux systems such as Ubuntu, Fedora, [Arch][6] and other variants. This gives you nice graphical plus tabular view of +如果你更喜欢能完成上述所有操作的漂亮 GUI,你可以安装 [psensor][5]。该程序适用于 Linux 系统,例如 Ubuntu、Fedora、[Arch][6] 和其他变体。它为你提供了漂亮的图形和表格视图: + +**Ubuntu 及其衍生版** + +``` +sudo apt install psensor +``` + +**Fedora 和基于 RPM 的衍生版** + +``` +sudo dnf install psensor +``` + +**Arch、Manjaro 和类似的衍生版** + +``` +pacman -S psensor +``` + +安装后,从`终端运行 psensor 或从应用菜单`启动它。 + +正如你在下面的截图中所见,它通过漂亮的图表让你可以很好地了解 CPU、GPU 和 HDD 的所有重要温度。使用它的首选项,你可以根据需要对其进行调整。这个轻量级的程序在很多情况下都会很有帮助。 + +![psensor running][7] + +psensor 运行 + +因此,这些是你可以在 Ubuntu 和其他 Linux 系统中监控 CPU、GPU 或 HDD 温度的一些方法。如果你知道其他方法,请通过下面的评论栏告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://wiki.archlinux.org/title/Hddtemp +[2]: https://github.com/lm-sensors/lm-sensors +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/HDD-or-SSD-Temperature-from-terminal.png +[4]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor.png +[5]: https://wpitchoune.net/psensor/ +[6]: https://www.debugpoint.com/tag/arch-linux +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/psensor-running-1024x465.png From b9d4098589343d73926c61e2dbf597c393fb3953 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 3 Nov 2022 08:43:09 +0800 Subject: [PATCH 1847/3123] translating --- ... Move Virtual Machine Image to Another Host Using GNOME Boxes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md b/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md index 920fc0b3ad..fd611913af 100644 --- a/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md +++ b/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/move-virtual-machine-image-another-host/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f66ab91375d713c35827daa2e05297343d4626a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Thu, 3 Nov 2022 15:26:08 +0800 Subject: [PATCH 1848/3123] Translated --- ...eUSB on Ubuntu to Create a Bootable Windows USB.md | 190 ------------------ ...eUSB on Ubuntu to Create a Bootable Windows USB.md | 190 ++++++++++++++++++ 2 files changed, 190 insertions(+), 190 deletions(-) delete mode 100644 sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md create mode 100644 translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md diff --git a/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md b/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md deleted file mode 100644 index d01f64b415..0000000000 --- a/sources/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md +++ /dev/null @@ -1,190 +0,0 @@ -[#]: subject: "Install WoeUSB on Ubuntu to Create a Bootable Windows USB" -[#]: via: "https://itsfoss.com/install-woeusb-ubuntu/" -[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Install WoeUSB on Ubuntu to Create a Bootable Windows USB -====== - -Want to create a bootable Windows USB on Linux? Ventoy is a pretty good option. - -But before Ventoy, WoeUSB used to be the go-to tool for this purpose. The original WoeUSB project got discontinued around 2014. - -Owing to its popularity, a new developer took the task of bringing the project back from the dead. And hence WoeUSB-ng was born. “ng” here stands for “new generation”. In other words, [WoeUSB-ng][1] is the new generation WoeUSB. But since the original tool doesn’t exist anymore, I’ll be referring WoeUSB-ng as WoeUSB. - -In this tutorial, I’ll show you how to install WoeUSB on Ubuntu Linux. I’ll also share the steps for creating bootable Windows USBs with WoeUSB. - -But before that, let’s quickly look at the features of this awesome tool. - -### WoeUSB - -![install woeusb ubuntu][2] - -WoeUSB is a simple tool that has the sole purpose of [creating bootable Windows USB on Linux][3]. - -The original WoeUSB is a shell script. This same WoeUSB is rewritten as WoeUSB-ng in python, which can be installed on your system and provides both a command-line and GUI interface. - -**Features:** - -- Support Legacy PC/UEFI booting -- Support FAT32 and NTFS filesystems -- Support using physical installation disc or disk image as source -- It can be used for Windows Vista and later with any language or edition variants -- Legacy/MBR-style/IBM PC compatible boot mode -- Native UEFI booting is supported for Windows 7 and later images (limited to the FAT filesystem as the target) - -### Installing WoeUSB on Ubuntu and other Linux distros - -Arch Linux users can install WoeUSB-ng from AUR. - -For other distros, WoeUSB can be installed using PIP. It’s a Python application, after all. I am going to provide commands for Ubuntu/Debian here. - -To install WoeUSB-ng, you need to [install PIP][4] and other necessary dependencies first. - -``` -sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin -``` - -After this, you can install WoeUSB-ng by running: - -``` -sudo pip3 install WoeUSB-ng -``` - -For all other installations, you can refer to their [instructions][5]. - -[WoeUSB-ng][1] - -### Prerequisite: Get Windows ISO and a compatible USB - -This one goes without saying. You need to have the ISO file of the Windows version you want to install. - -From the Microsoft website, you should be able to get the ISO for Windows 10 and 11. - -[Download Windows][6] - -If you have ISOs for older Windows versions, they can also be used. - -Apart from that, you need to have a USB key/pen drive of at least 8 GB in size. You should format it in NTFS filesystem. - -### Method 1: Using WoeUSB to create a bootable Windows USB graphically (recommended) - -Open woeusb-gui from the activity overview or menu. - -![woeusb in ubuntu activities overview][7] - -In the application window, select the downloaded Windows ISO and the desired USB drive as shown in the screenshot and press **Install**. - -![woeusb gui setup][8] - -There are also other tweaks available within the app, which can be accessed by the top menu bar. - -After pressing install, the woeUSB will start formatting and copying files. You need to wait for some time because there are approximately 6 GB of files to be copied. - -![woeusb writing windows iso to the usb drive][9] - -Once copying completes, WoeUSB will prompt a success dialog. You can now safely eject the USB and use it as a bootable USB. - -![woeusb completed writing and gives a success message][10] - -### Method 2: Using WoeUSB from the terminal (for experts) - -WoeUSB-ng package also provides a command-line utility called woeusb. - -To create the bootable Windows USB using WoeUSb, you need to run the following command: - -``` -sudo woeusb --device --target-filesystem ntfs -``` - -Here, the `--device` flag is used to wipe the USB and create a bootable from scratch completely. Also, the –target-filesystem flag is set to NTFS, to avoid problems of copying files more than the size limits of the FAT system. - -![woeusb commandline][11] - -The process will take some time to complete copying. Once completed, it will display a success message. - -![woeusb commandline success message][12] - -At this point, you can eject the USB safely and use it as a Windows bootable USB on other PCs. - -### Bonus: Using WoeUSB Bash shell script (for experts) - -WoeUSB is also available as a bash shell script, which can be used without installing anything on your system. - -First, you want to download the shell script from the [releases page of the project][13]. - -Before [executing the shell file][14], you need to get the required dependencies. To install, run: - -``` -sudo apt install wimtools -``` - -Now make it executable either through file manager or through command-line. - -![make woeusb script executable][15] - -Or you can run `chmod +x ` to make it executable. Now, run`./woeusb-5.2.4.bash -h` inside the downloaded directory to get help. - -In order to create a live USB, the process is same as the command-line part of woeusb-ng, except, you are not installing anything. - -So, in a terminal, run: - -``` -sudo --device --target-filesystem ntfs -``` - -This will start writing the ISO to USB drive, as shown in the screenshot below: - -![woeusb bash script running without installation][16] - -Once completed, you can safely eject the USB and use it as bootable USB. - -### Removing WoeUSB - -If you installed WoeUSB using PIP, you can also remove it similarly: - -``` -pip3 uninstall WoeUSB-ng -``` - -You can keep the installed dependencies on your system or remove them. That’s entirely up to you. I would suggest keeping them. - -### Wrapping Up - -WoeUSB was an immensely popular tool around ten years ago. It’s good that it has been continued in another form by someone else. That’s the beauty of open source. - -I hope this tutorial helped you. If somehow the Windows USB created by WoeUSB doesn’t work as expected, you may [try using Ventoy][3]. Enjoy it. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-woeusb-ubuntu/ - -作者:[Sreenath][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/sreenath/ -[b]: https://github.com/lkxed -[1]: https://github.com/WoeUSB/WoeUSB-ng -[2]: https://itsfoss.com/wp-content/uploads/2022/10/install-woeusb-ubuntu.png -[3]: https://itsfoss.com/bootable-windows-usb-linux/ -[4]: https://itsfoss.com/install-pip-ubuntu/ -[5]: https://github.com/WoeUSB/WoeUSB-ng#installation -[6]: https://www.microsoft.com/en-in/software-download/ -[7]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-in-ubuntu-activities-overview.png -[8]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-gui-setup.png -[9]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-writing-windows-iso-to-the-usb-drive.png -[10]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-completed-writing-and-gives-a-success-message.png -[11]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-commandline.png -[12]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-commandline-success-message.png -[13]: https://github.com/WoeUSB/WoeUSB/releases/tag/v5.2.4 -[14]: https://itsfoss.com/run-shell-script-linux/ -[15]: https://itsfoss.com/wp-content/uploads/2022/10/make-woeusb-script-executable.png -[16]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-bash-script-running-without-installation.png diff --git a/translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md b/translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md new file mode 100644 index 0000000000..37769c50b0 --- /dev/null +++ b/translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md @@ -0,0 +1,190 @@ +[#]: subject: "Install WoeUSB on Ubuntu to Create a Bootable Windows USB" +[#]: via: "https://itsfoss.com/install-woeusb-ubuntu/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Ubuntu 上安装 WoeUSB 来创建一个可启动 Windows USB +====== + +想在 Linux 上创建一个可启动 Windows USB ?Ventoy 是一个很好的选择。 + +但是,在 Ventoy 出道之前,WoeUSB 是用于创建可启动 Windows USB 的首选工具。原始的 WoeUSB 工程在 2014 年左右香消玉损。 + +鉴于其流行程度,一位新的开发者接过了将其起死回生的任务。因此,WoeUSB-ng 诞生了。在这里,“ng” 是 新生代new generation 的缩写。换句话说,[WoeUSB-ng][1] 是新生代的 WoeUSB 。但是,因为原始的工具已经不存在了,我将 WoeUSB-ng 描述为 WoeUSB 。 + +在这篇教程中,我将向你展示如何在 Ubuntu Linux 上安装 WoeUSB 。我也将分享使用 WoeUSB 来创建可启动 Windows USB 的步骤。 + +但是,在此之前,让我们快速查看这个令人惊叹的工具的特色。 + +### WoeUSB + +![install woeusb ubuntu][2] + +WoeUSB 是一个简单的工具,其唯一的目的是 [在 Linux 上创建可启动 Windows USB][3] 。 + +原始的 WoeUSB 是一个 shell 脚本。这个原始的 WoeUSB 被使用 Python 重写为 WoeUSB-ng ,它可以安装在你的系统上,并且通过命令行或 GUI 界面。 + +**特色:** + +- 支持 Legacy PC/UEFI 启动 +- 支持 FAT32 和 NTFS 文件系统 +- 支持使用物理安装盘或磁盘镜像作为源 +- 它可以用于 Windows Vista 及其更高版本的任意语言或变体版本 +- Legacy/MBR/IBM PC 兼容启动模式 +- 本机 UEFI 启动支持 Windows 7 及其更高版本的镜像 (仅限于将 FAT 文件系统作为目标的情况) + +### 在 Ubuntu 和其它的 Linux 发行版上安装 WoeUSB + +Arch Linux 用户可以从 AUR 安装 WoeUSB-ng 。 + +对于其它的发行版,可以使用 PIP 来安装 WoeUSB 。毕竟,它是一个 Python 应用程序。在这里,我将为 Ubuntu/Debian 提供一些命令。 + +为安装 WoeUSB-ng ,你首先需要 [安装 PIP][4] 和其它必要的依赖项。 + +``` +sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin +``` + +在这之后,你可以安装 WoeUSB-ng ,通过运行: + +``` +sudo pip3 install WoeUSB-ng +``` + +对于所有的其它安装,你可以参考其 [操作指南][5] 。 + +[WoeUSB-ng][1] + +### 前提条件: 获取 Windows 的 ISO 文件和一个兼容的 USB 磁盘 + +这一点没有什么需要说的。你需要有一个你将要安装的 Windows 版本的 ISO 文件。 + +从微软的网站,你应该能够获取 Windows 10 和 11 的ISO 文件。 + +[下载 Windows][6] + +如果你有较旧的 Windows 版本的 ISO 文件,也可以使用它们。 + +除此之外,你需要有一个至少 8 GB 大小的 USB 驱动器磁盘。你应该使用 NTFS 的文件系统来格式化它filesystem. + +### 方法 1: 使用图形用户界面化的 WoeUSB 来创建一个可启动的 Windows USB (推荐) + +从 活动概述activity overview 或菜单中打开 woeusb-gui 。 + +![woeusb in ubuntu activities overview][7] + +在应用程序窗口中,选择下载的 Windows ISO 和所希望的 USB 驱动器,如截屏所示,然后按下 安装Install 按钮。 + +![woeusb gui setup][8] + +在应用程序中也其它可用的调整,可以通过顶部的菜单栏来访问使用。 + +在按下安装按钮后,woeUSB 将开始格式化和复制文件。你需要等待一些时间,因为这里有大约 6 GB 的文件需要复制。 + +![woeusb writing windows iso to the usb drive][9] + +在复制完成后,WoeUSB 将会提示一个成功的对话框。你现在可用安全弹出 USB 驱动器,并将其作为一个可启动 USB 驱动器来使用。 + +![woeusb completed writing and gives a success message][10] + +### 方法 2: 从终端中使用 WoeUSB (针对专家) + +WoeUSB-ng 软件包也提供一个名称为 woeusb 的命令行实用程序。 + +为使用 WoeUSb 来创建一个可启动的 Windows USB ,你需要运行下面的命令: + +``` +sudo woeusb --device --target-filesystem ntfs +``` + +在这里,`--device` 标识用于擦除 USB 和从零开始创建一个可启动 USB 驱动器。同样,–target-filesystem 标识用于设置为 NTFS ,来避免将要复制的文件大小超过 FAT 文件系统的限制。 + +![woeusb commandline][11] + +该过程将花费一些时间来完成复制。在完成复制后,它将显示一条成功的信息。 + +![woeusb commandline success message][12] + +此时,你可以安全地弹出 USB 驱动器,并在其它的个人电脑上将其作为一个 Windows 可启动 USB 来使用。 + +### 惊喜欲狂: 使用 WoeUSB 的 Bash shell 脚本 (针对专家) + +WoeUSB 也提供一个 bash shell 脚本,在你的系统上,它不需要安装任何东西就可以使用。 + +首先,你需要从 [该工程的发布版本页面][13] 下载 shell 脚本。 + +在 [执行 shell 文件][14] 之前,你需要获取所需要的依赖项。为安装它,运行: + +``` +sudo apt install wimtools +``` + +现在,通过文件管理器或通过命令行来使它可执行。 + +![make woeusb script executable][15] + +或者,你可以运行 `chmod +x ` 来使它可执行。现在,运行已下载目录中的 `./woeusb-5.2.4.bash -h` 来获取帮助。 + +为创建一个 live USB ,该进程类似于 woeusb-ng 的命令行部分,但是你没有安装任何东西。 + +因此,在一个终端中,运行: + +``` +sudo --device --target-filesystem ntfs +``` + +这将开始将 ISO 写入 USB 驱动器,如下面的截屏所示: + +![woeusb bash script running without installation][16] + +在完成后,你可以安全地弹出 USB 驱动器,并将其作为可启动 USB 使用。 + +### 移除 WoeUSB + +如果你使用 PIP 安装 WoeUSB ,你也可以类似地移除它: + +``` +pip3 uninstall WoeUSB-ng +``` + +你可以在你的系统上保留或移除已安装的依赖项。这完全取决于你。我建议保留它们。 + +### 总结 + +大约 10 年前,WoeUSB 是一个非常流行的工具。其他人以另外一种形式将其复活是很好的,这就是开源的艺术。 + +我希望这篇教程会帮助你。如果通过 WoeUSB 创建的 Windows USB 不能按部就班地工作,你可以 [尝试使用 Ventoy][3] 。享受它。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-woeusb-ubuntu/ + +作者:[Sreenath][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://itsfoss.com/author/sreenath/ +[b]: https://github.com/lkxed +[1]: https://github.com/WoeUSB/WoeUSB-ng +[2]: https://itsfoss.com/wp-content/uploads/2022/10/install-woeusb-ubuntu.png +[3]: https://itsfoss.com/bootable-windows-usb-linux/ +[4]: https://itsfoss.com/install-pip-ubuntu/ +[5]: https://github.com/WoeUSB/WoeUSB-ng#installation +[6]: https://www.microsoft.com/en-in/software-download/ +[7]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-in-ubuntu-activities-overview.png +[8]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-gui-setup.png +[9]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-writing-windows-iso-to-the-usb-drive.png +[10]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-completed-writing-and-gives-a-success-message.png +[11]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-commandline.png +[12]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-commandline-success-message.png +[13]: https://github.com/WoeUSB/WoeUSB/releases/tag/v5.2.4 +[14]: https://itsfoss.com/run-shell-script-linux/ +[15]: https://itsfoss.com/wp-content/uploads/2022/10/make-woeusb-script-executable.png +[16]: https://itsfoss.com/wp-content/uploads/2022/10/woeusb-bash-script-running-without-installation.png From c8223a7a803c89ab3fb23d971775b755c30792c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Thu, 3 Nov 2022 15:34:13 +0800 Subject: [PATCH 1849/3123] Translating --- ...️ Transfer files and folders from Windows to Linux with WinSCP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md b/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md index 8ea3584f78..127132272e 100644 --- a/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md +++ b/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp" [#]: author: "Paul https://opensource.com/users/plaubscher" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ef8fe245e654cba91b6a6cda889ef0c4475a79e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 3 Nov 2022 19:07:08 +0800 Subject: [PATCH 1850/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221102.1=20=E2=AD=90=EF=B8=8F=20Linux=20Mint's=20U?= =?UTF-8?q?pdate=20Manager=20Now=20Supports=20Flatpak.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Mint's Update Manager Now Supports Flatpak.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md diff --git a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md new file mode 100644 index 0000000000..a7a1436009 --- /dev/null +++ b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md @@ -0,0 +1,98 @@ +[#]: subject: "Linux Mint's Update Manager Now Supports Flatpak" +[#]: via: "https://news.itsfoss.com/linux-mint-update-manager/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint's Update Manager Now Supports Flatpak +====== + +Linux Mint's Update Manager just got more helpful! + +![Linux Mint's Update Manager Now Supports Flatpak][1] + +Linux Mint's Update Manager is an essential part of the distro that makes the experience easier for new users. + +A recent update has pushed many improvements to Linux Mint 21, including Flatpak support with the update manager. + +**You just need to update your system to get these refinements.** + +### ⭐ Flatpak Support In Update Manager + +![linux mint 21 flatpak support in update manager][2] + +Image Credits: The Linux Mint Blog + +Yes, you read that right. It is finally happening. + +Flatpak support has been added to the Update Manager, letting users update Flatpak applications and runtimes in a few clicks. + +This should make way for a unified update experience that further improves the user experience. + +It is beneficial for new users who need not be familiar with terminal commands to update Flatpak. Also, you do not require to integrate Flatpak with the software center (for GNOME). + +In other words, the Linux Mint team enhanced your experience with Flatpak apps. + +**Alongside Flatpak support, the update includes a few more enhancements to Linux Mint 21, which is immediately available as an update.** + +Some of the refinements include: + +### Improvements To Corner Bar + +![linux mint 21 updated corner bar][3] + +Image Credits: The Linux Mint Blog + +The corner bar on Linux Mint 21 has received two new additions: + +- **Ability to set left click and middle click actions to the corner bar; you can configure it to show the desktop, the workspace selector, or the desklets.** +- **A new option lets you hover your mouse on the corner bar to show the desktop.** + +### Updates To Nemo + +![linux mint 21 updated nemo file manager][4] + +Image Credits: The Linux Mint Blog + +The Nemo file manager has received a few tweaks; now, when files are selected, only the file names will be highlighted instead of the icon and file name. + +**If you did not know**, you could enhance the Nemo file manager experience with some of our suggested tweaks as well: + +Furthermore, the desktop icon has been flipped vertically, and a new shortcut has been added to the desktop's context menu to give quick access to the display settings. + +### Fewer Password Prompts + +This is another user experience tweak that many of you might like. + +When removing a Flatpak or any shortcut or local application, it will no longer ask you for a password. + +Similarly, in the case of Synaptic and the Update Manager, pkexec will be used to remember the password. + +This way, users do not have to enter the password every time they perform multiple operations. + +You can refer to [Linux Mint's monthly blog post][5] to learn about other changes. + +**Via: [DebugPointNews][6]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-mint-update-manager/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/mint-updater-tool-flatpak-support.png +[2]: https://news.itsfoss.com/content/images/2022/11/Linux_Mint_21_UM_FlatpakSupport.png +[3]: https://news.itsfoss.com/content/images/2022/11/Linux_Mint_21_CornerBar_Update.png +[4]: https://news.itsfoss.com/content/images/2022/11/Linux_Mint_21_Nemo_Updates.png +[5]: https://blog.linuxmint.com/?p=4424 +[6]: https://debugpointnews.com/linux-mint-update-flatpak/ From cd9c6ae4e2fd48b284012d6cb7eb29a23b5c6ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 3 Nov 2022 23:12:36 +0800 Subject: [PATCH 1851/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221102.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Best=205=20Alternatives=20to=20Microsoft=20Office=20[Compared].?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t 5 Alternatives to Microsoft Office [Compared].md | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md diff --git a/sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md b/sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md new file mode 100644 index 0000000000..2a2343f4e9 --- /dev/null +++ b/sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md @@ -0,0 +1,178 @@ +[#]: subject: "Best 5 Alternatives to Microsoft Office [Compared]" +[#]: via: "https://www.debugpoint.com/best-alternatives-microsoft-office-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Best 5 Alternatives to Microsoft Office [Compared] +====== + +**Here we give you the five best alternatives to Microsoft Office. We compare them based on features, are easy to use and provide you with a guide to choosing the one you need.** + +We all agree that Microsoft Office is one of the best software developed by Mircosoft. It has a presence almost everywhere in the entire world in nearly every business. It is a fine piece of software that evolved over a few decades. + +And obviously, it doesn’t have a Linux native installer and comes with a significant price. The current Microsoft Office 365 subscription pricing is a little higher if you are a business owner or a personal user. And not everyone can afford that price bucket for a longer time. + +Then what are the alternatives? You can try other options that relatively get the job done for most users or businesses. + +This article gives you the five best alternatives to Microsoft Office. + +### Best Alternatives to Microsoft Office + +### 1. LibreOffice + +![LibreOffice][1] + +The first alternative we highlight here is [LibreOffice][2]. The Document Foundation develops and manages the entire LibreOffice free and open-source office suite, available for Linux, macOS and Windows. + +Firstly, it comes with a spreadsheet ([Calc][3]), word processor (Writer), presentation (Impress), drawing (Draw) and a database program (Base). + +Secondly, this project is actively developed, and compatibility with Microsoft Office documents is improved in every release iteration. If appropriately used, LibreOffice can effectively do all the work that a Mircosoft office program does. In addition, a massive set of documentation and communities can help you adopt LibreOffice in no time. + +You don’t need to pay for the software if you are a small or large corporation. But paid deployment and support are also available at minimal cost if you require them for your critical work. + +However, LibreOffice does not come with an Outlook-like email program. This might be one of the minor drawbacks, but you can access emails from web browsers today for all email service providers. + +**More details about LibreOffice** + +- [Home page][2] +- [For Business][4] +- [Download for general-purpose personal use][5] +- [Help and Documentation][6] +- [Official support forum][7] + +### 2. Google Docs + +![Google Docs - alternatives to Microsoft Office][8] + +The search engine giant Google provides a complete web-based Office suite (aka [Google Docs][9]) with its Docs (document processor), Sheets (spreadsheet program) and Slides (presentation) for free users. + +You can access and create documents in your Google Drive account by default and access them from anywhere. The office components provide well-designed web-based toolbars, advanced options, spell check, Voice to Text feature (only in Chrome), encryption and cloud access. Google also offers mobile apps for iOS and Android to access your documents and edit them on the go. + +One of the best features of Google Docs is templates. With the power of pre-built templates, you can start professional-grade documents in time. The collaboration option gives you more control when sharing and deploying documents with a Google account-based authentication and authorization mechanism for a wider audience. + +If you need more from Google Docs, you may opt for Google Workspace with a minimal price compared to costly Microsoft Office. The Google Workspace is a complete and integrated solution that gives you Google Forms to collect data and integrate it into your docs and Sheets, website builder Google Sites, Google Calendar and more storage options to keep your document. + +**More details about Google Docs** + +- [Home page][9] +- [Documentation][10] + +### 3. OnlyOffice + +![OnlyOffice - alternatives to Microsoft Office][11] + +[OnlyOffice][12] is a free and open-source complete Office productivity suite with a text editor, spreadsheet program, and presentation tool for you and your office work. It supports advanced features such as real-time collaboration with proper tracking changes for your shared documents, fillable forms, and many other features. + +This powerful office suite looks better with its Office 365-type ribbons, which helps to adopt this program quickly. In addition, this product has better Microsoft Office compatibility with .docx .xlsx and .pptx file formats which are easy for you and your organization to share documents. + +It’s worth mentioning that it provides an Enterprise office suite, aka “ONLYOFFICE Workspace, ” a paid product with additional features and instant support. This enterprise suite is perfect for those with a tight budget on office products but needs near compatibility with Office 365. + +Furthermore, the ONLYOFFICE Workspace comes with an Email client, CRM product, Project Management tool and an integrated calendar. Although everything works well, you face issues with spell checking, print preview, page size and some bugs. But you should not worry as the team is receptive, and you can report issues on GitHub and get help. + +**More details** + +- [Home page][12] +- [Download][13] +- [Documentation and help][14] + +### 4. Softmaker Free Office + +![FreeOffice - alternatives to Microsoft Office][15] + +The [FreeOffice][16] is another option if you are looking for Microsoft Office alternatives. SoftMaker developed this office suite, and it is arguably one of the choices you may have. Let’s talk a little about its features. + +Firstly, the FreeOffice brings TextMaker (like Word), PlanMaker (like Excel), Presentations and a comparison utility. Secondly, the user interfaces as two options. The modern Ribbon option makes it a desirable product due to its popularity. Moreover, it has a traditional Legacy user interface with a menu and toolbar with a considerable fanbase. + +Besides these, the SoftMaker FreeOffice provides a specific user interface and features for touch-based devices. The Microsoft Office document format compatibility is well established to get the most done. + +However, you may have little trouble working with Open Document Format files, whose support is limited. + +This is a closed-source product. + +**More details about SoftMaker FreeOffice** + +- [Home page][16] +- [Download][17] +- [Documentation and help][18] + +### 5. WPS Office + +![WPS Office][19] + +Remember Kingston Office? Well, it’s now renamed and repackaged as WPS Office, the acronym for Word, Presentation and Spreadsheets. Today, the WPS Office is one of the oldest office suites, with more than three decades of development and release. It is a fully-featured office suite available for all platforms and mobile devices. + +Some of the noteworthy features of WPS Office are its real-time collaboration in its core programs which helps you work in a team on a shared document. The office suite comes with 100,000+ templates which allows you to create professional-grade documents and presentations. + +The WPS Office comes with the standard edition, free to download and use but limited in features. + +Moreover, if you need additional features such as PDF editing, Cloud support, collaborations and enterprise support, then you can opt for the WPS Premium of WPS Business option with a price. + +It’s important to mention that this is a closed-source program and may contain Ads. Also, it was developed by a Chinese company. + +**More details about WPS Office** + +- [Home page][20] +- [Documentation][21] +- [Download][22] + +### Comparison + +Here’s a quick comparison of the free Microsoft Office alternatives based on noteworthy features and other details. + +| Product | Price | Source Type | Pros | Cons | +| :- | :- | :- | :- | :- | +| LibreOffice | Free | Open source | Free and cross-platformMulti-language supportComplete support of ODF filesBest compatibility support of Microsoft OfficeVery active development | No email and project management suiteThe database program depends on Java | +| Google Docs | Free | Close source | Free and cross-platformWell documented supportAccess documents via cloud anywhereComplete Mobile device support | Requires internet connectionLittle slow due to the web-based toolNo native desktop executable available | +| OnlyOffice | Free (basic product) | Open source | The user interface is almost similar to Microsoft OfficeBetter support and compatibility with Microsoft Office filesCloud integration and plugin supportCross-platform | It may face problems with some basic features.Cloud integrations are not compatible with the EU due to GDPRThe web app version is slow | +| FreeOffice | Free (basic product) | Close source | Free and lightweight compared to LibreOffice.Touchscreen supportGood Microsoft Office compatibilityCross-platform | The free version only has documents, spreadsheets and presentations.Additional products need purchaseOpen Document Format support is limitedNot open source product | +| WPS Office | Free | Close source | Good Microsoft office compatibilityCross-platform productTabbed interfaceMulti-language support | Not open source productDeveloped by a Chinese companyMay contain ads | + +### Our Recommendation + +Besides all the pros and cons, if you cannot choose which Office suite is best for you, I recommend going ahead with LibreOffice. Because LibreOffice and TDF have a good vision, active development and worldwide community support. LibreOffice has a considerable knowledge base about tips and tutorials on the helpful web. And you can easily automate tasks with Basic or Python Macro. + +### Closing Notes + +I hope this guide helps you choose the best alternatives for Microsoft Office for your personal or business usage. Genuinely speaking, none of the above office products come close in comparison to Microsoft Office in the true sense. Not everyone or every company can pay a hefty monthly subscription fee for Microsoft Office. For those, I believe some of these options can be a good starting point. + +Some image credits: Respective product owner + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-alternatives-microsoft-office-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/03/LibreOffice.jpg +[2]: https://www.libreoffice.org/discover/libreoffice/ +[3]: https://www.debugpoint.com/category/libreoffice/libreoffice-calc/ +[4]: https://www.libreoffice.org/download/libreoffice-in-business/ +[5]: https://www.libreoffice.org/download/download/ +[6]: https://help.libreoffice.org/latest/en-US/text/shared/05/new_help.html +[7]: https://ask.libreoffice.org/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/03/Google-Docs.jpg +[9]: https://www.google.com/docs/about/ +[10]: https://support.google.com/docs/?hl=en#topic=1382883 +[11]: https://www.debugpoint.com/wp-content/uploads/2022/03/OnlyOffice.jpg +[12]: https://www.onlyoffice.com/ +[13]: https://www.onlyoffice.com/desktop.aspx +[14]: https://forum.onlyoffice.com/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/FreeOffice.jpg +[16]: https://www.freeoffice.com/en/ +[17]: https://www.freeoffice.com/en/download/applications +[18]: https://forum.softmaker.com/ +[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/WPS-Office.jpg +[20]: https://www.wps.com/ +[21]: https://www.wps.com/academy/ +[22]: https://www.wps.com/download/ From 00a9e54e141711cc5ed11be092610dad1dda9b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 3 Nov 2022 23:13:22 +0800 Subject: [PATCH 1852/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221102.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Top=2010=2032-Bit=20Linux=20Distributions=20in=202022=20[Compar?= =?UTF-8?q?ed].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 32-Bit Linux Distributions in 2022 [Compared].md | 255 ++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md diff --git a/sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md b/sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md new file mode 100644 index 0000000000..02cfb6ff2a --- /dev/null +++ b/sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md @@ -0,0 +1,255 @@ +[#]: subject: "Top 10 32-Bit Linux Distributions in 2022 [Compared]" +[#]: via: "https://www.debugpoint.com/32-bit-linux-distributions/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 32-Bit Linux Distributions in 2022 [Compared] +====== + +**We list the best 32-bit Linux distributions that still support ancient systems.** + +### What is happening with 32-bit Linux Distros? + +Linux always supports older hardware, thanks to the community. But more and more Linux operating systems are dropping support for 32-bit systems mainly because it takes additional testing effort to keep another build apart from 64-bit, and the number of 32-bit systems is reducing daily. + +Most of the older hardware manufactured before 2007 has 32-bit architecture-based CPUs, which we mostly know as i386, i586, i486 and x86. However, the hardware manufactured after 2007 are primarily 64-bit and may term as modern. + +Recently, many famous and lightweight Linux distros dropped support for 32-bit architecture. But some projects are still strong and provide users with an option to run the older machines with full functionality. + +I will list the ten best Linux distros that still support 32-bit systems. + +### Top 10 32-bit Linux distros in 2022 + +#### 1. Debian + +Debian Linux is the foundation of hundreds of Linux distributions across multiple architectures. Millions use it as a desktop and server operating system. Debian is a “universal operating system” because it supports x86-64, arm64, armel,armhf, i386, mips, mipsel, mips64el, ppc64el, s390x architectures with work in progress for riscv64. + +In addition, it supports a wide range of hardware and includes free and non-free packages. On the desktop side, all the major [desktop environments][1] are available for you to install on your older hardware. + +Perhaps, it is the safest choice if you are looking for a vanilla 32-bit Linux distro experience. + +![Debian Logo][2] + +#### Why is Debian the best 32-bit distro? + +- Most popular and widely used +- Dependable and used by millions +- Well documentation, tutorials and user guides +- Proper framed future roadmap +- [Support for all architectures and platforms][3] + +[Download Debian][4] + +#### 2. MX Linux + +MX Linux is a systemd-free distro based on Debian stable branch. It is recently trending among users who want a clean system that supports older to modern hardware. + +MX Linux is popular because it’s carefully created to give you a perfect and stable system with its native applications and tools. + +![MX Linux][5] + +The team behind it gives a lot of thought while packaging the applications in this distro. Besides that, it is also based on antiX components and comes with KDE Plasma desktop, Xfce and Fluxbox. + +MX Linux is probably the best choice in this list because it is easy to download and use in older systems. + +![mx linux logo][6] + +#### Why is MX Linux the best? + +- Systemd free, hence faster +- Based on Debian stable, it gives a more stable system +- Unique in-house applications to help users with generic tasks +- 3 desktop flavour options to choose from +- Well-supported community and user-base + +[Download MX Linux][7] + +#### 3. Q4OS + +The third 32-bit Linux distro in this list is Q4OS. Q4OS is a unique Linux operating system based on Debian and brings KDE and Trinity desktop environments. It comes with a 32-bit installer which can be used to install. In addition, Q4OS also features a Windows installer where you can parallel run this distro inside WIndows. + +An exciting and related trivia about Q4OS is that it was created as an alternative to Windows XP when Microsoft discontinued it on 2014. And it’s still going strong and providing a stable 32-bit alternative to many users. + +![Q4OS Logo][8] + +#### Here are some of the critical advantages of Q4OS + +- Well-defined roadmap and unlikely to be discontinued +- Based on Debian and long-term support has been available for more than five years +- Provides KDE and Trinity desktop both (for those who like KDE 3) +- The unique installer gives the ability to install it inside Windows and take advantage of the entire hardware (not like in VM) +- Themes, Software centre, and third-party app installers are available + +[Download Q4OS][9] + +#### 4. NixOS + +The fourth Linux distro in this list of 32-bit distributions is NixOS, built on top of the Nix Package manager. This independent Linux distribution is perfect for DevOps and deployment pipeline tasks and supports atomic updates. It uses a configuration script for several tasks, including installation. + +That said, NixOS is not for the beginner or average Linux users, although it functions like other Linux distributions. It’s not designed to be an end-user Linux operating system. + +However, since it provides a 32-bit variant, it’s perfect for some use cases where you need to set up a remote server or pipeline in older hardware. You can learn more and download using the below link. + +[Download NixOS][10] + +#### 5. Void Linux + +Void Linux is an independent Linux distro (not depending on Debian or Fedora, etc.) which follows a unique rolling release model. It comes with X Binary Package System (XBPS), which helps you to install apps and packages directly from sources. In addition, it uses runit as init system, instead of systemd.  + +Void Linux provides a 32-bit installer with the latest packages alongside the usual 64-bit and ARM installation methods. Hence, you can quickly try it out on your older hardware. Moreover, Void Linux also support all major desktop environments, such as Xfce, Cinnamon, LXDE, LXQt and more. + +![Void Linux Logo][11] + +#### Here are some of the advantages of Void Linux + +- Independent distribution and free from Debian, Ubuntu or Fedora base +- Well-defined path for future updates and continuity +- Excellent XBPS package management system +- A rolling release-based distro which is stable +- All major desktop environments supported + +[Download Void Linux][12] + +#### 6. Zorin OS Lite 15.3 + +Zorin OS is an excellent and popular Linux distribution, a fusion of Xfce and GNOME 3 desktop. It comes with a Pro and Lite version. The Zorin OS Lite version provides a 32-bit installer at the moment. + +![Zorin OS - Best Linux Distributions of 2022][13] + +But there is a catch. Currently, the Zorin OS 15.3 Lite version only supports the 32-bit version. And its support ends on April 2023. + +After that, Zorin OS will not be supporting the 32-bit version anymore. The reason is it is based on Ubuntu LTS. And Ubuntu discontinued the 32-bit image from Ubuntu 20.04 LTS Focal Fossa version. + +Hence, you can use Zorin OS 15.3 Lite until April 2023 and take advantage of its beautiful desktop and additional features. + +[Download Zorin OS 15.3 Lite (32 bit)][14] + +#### 7. Porteus + +If you are a fan of the Old-KDE desktop and looking for a 32-bit operating system, then you can try Porteus Linux. Porteus is a Slackware Linux spin that features a KDE 4.0+ desktop environment. It is based on bleeding edge Slackware Linux and provides a fast desktop experience. Moreover, it can run from a Live USB/CD. The installer size is 300 MB, perfect for CD-based older hardware. + +![Porteus Logo][15] + +#### The reason why Porteus can be an ideal 32-bit Linux OS + +- Based on bleeding-edge Slackware Linux +- Enjoy the simplicity of Slackware +- Installer size can fit into a CD (300 MB only) +- Legacy KDE 4.0 Desktop support +- Can run off a USB or CD + +[Download Porteus Linux][16] + +#### 8. antiX + +The antiX Linux is slightly different on the desktop level than other 32-bit distros in this list. It is a lightweight Linux distribution based on Debian stable branch and brings some exciting features. First and foremost, it comes with a 32-bit installer, which has four variants – Full, Core, Base and Net. Secondly, it features famous primarily Windows Managers and Not desktop environments. Hence it is faster. + +The antiX Linux features IceWM, Fluxbox, and ROX desktop options. In addition, it is free of systemd and uses sysVinit & runit as init system. + +A perfect 32-bit Linux distribution that brings window manager, sydtemd-free and Debian base. + +![Antix Logo][17] + +#### Why is antiX an excellent 32-bit distro? + +- Provides stability with Debian stable branch +- Provides a 32-bit installer with four variants +- Systemd free distribution  +- Window manager support, rather than desktops + +[Download antiX][18] + +#### 9. BunsenLabs Linux + +Remember the famous Crunchbang project? The BunsenLabs Linux is a successor of the Crunchbang project based on the Debian stable branch. Like antiX, it also features Windows Manager rather than desktop environments. It brings Openbox Window manager with an excellent tint2 panel at its core. In addition, some goodies such as Conky presets, jgmenu makes it a well-designed 32-bit distro for that ancient hardware. + +![BunsenLabs Logo][19] + +#### Why is BunsenLabs the best? + +- Powered by Debian stable branch +- Openbox Window manager is for the desktop experience +- Pre-configured Concky with tint2 panel, jgmenu +- A good amount of help and support is available + +[Download BunsenLabs][20] + +#### 10. Alpine Linux + +A list of 32-bit Linux distributions is incomplete without Alpine Linux. Alpine Linux is an almost two-decade-old Linux distro created for developers and power users. It’s unique and provides a 32-bit variant among other architectures. + +At its core, it uses musl and BusyBox instead of GNU tools and packages. Also, Alpine uses OpenRC as init system. + +This independent Linux is perfect for containers and hypervisors and boasts about its security. Perhaps, not so suitable for usual desktop usage. However, the popular PostmarketOS mobile Linux OS platform is based on Alpine Linux. + +![Alpine Logo][21] + +#### Alpine Linux advantages + +- Independent Linux distro +- Not based on GNU toolchain (uses musl and BusyBox) +- APK package manager +- Suitable for containers and Hypervisors +- Well secured at the core level + +[Download AlpineLinux][22] + +### List of significant distros that dropped support of 32-bit recently + +Since you went thru the above list, it’s always to remember that a bunch of distros which depended on Ubuntu dropped their 32-bit support. From the version Ubuntu 20.04 Focal Fossa, Ubuntu officially closed the support for 32-bit. Hence all the Ubuntu-LTS variants are also forced to follow this decision. + +Here’s a brief list of awesome distros which unfortunately discontinued the 32-bit support in the recent past. + +- Linux Mint 20 and above +- Puppy Linux 9.5 and above +- Ubuntu 20.04 LTS Focal Fossa and above +- All the official Ubuntu flavours (such as Lubuntu and Xubuntu) from 20.04 onwards + +### Closing Notes + +You can rest assured that there will always be support for 32-bit Linux distributions to support older hardware. If a day comes when all distro stops support, Debian will always support all hardware possible. That’s the beauty of Debian. + +Also, other niche distros, such as Puppy and Void Linux – will continue to support 32-bit hardware in the coming days. Because they are built with this purpose only. + +Finally, I hope this list helps you to pick the best 32-bit distro for your PC or hardware. Also, don’t forget to check out the [best lightweight distros][23] for older hardware which contain 64-bit distros for older hardware. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/32-bit-linux-distributions/ + +作者:[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/category/desktop-environment +[2]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_debian.png +[3]: https://www.debugpoint.com/install-debian-buster/ +[4]: https://www.debian.org/distrib/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/mx-linux-logo-2.png +[7]: https://mxlinux.org/download-links/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_q4os_lightblue.png +[9]: https://www.q4os.org/downloads1.html +[10]: https://nixos.org/ +[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_void.png +[12]: https://voidlinux.org/download/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS.jpg +[14]: https://zorin.com/os/download/15/lite/32/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/07/Porteus-Logo.png +[16]: http://www.porteus.org/ +[17]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_antix.png +[18]: https://antixlinux.com/download/ +[19]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_bunsenlabs_yellow_black.png +[20]: https://www.bunsenlabs.org/installation.html +[21]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_alpine.png +[22]: https://alpinelinux.org/downloads/ +[23]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ From fbe220a7d30f930026f573b5b1bfd7109958f72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 3 Nov 2022 23:14:25 +0800 Subject: [PATCH 1853/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221102.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Top=2010=20Features=20of=20Linux=20Mint=2021=20=E2=80=9CVanessa?= =?UTF-8?q?=E2=80=9D.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Top 10 Features of Linux Mint 21 “Vanessa”.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md diff --git a/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md b/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md new file mode 100644 index 0000000000..86ba70d901 --- /dev/null +++ b/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md @@ -0,0 +1,188 @@ +[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" +[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Features of Linux Mint 21 “Vanessa” +====== + +**We round up Linux Mint 21 “Vanessa” top features. Find out what’s in store for you.** + +![Linux Mint 21 Cinnamon Desktop][1] + +Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. + +I have summarized all of them in this list of top features of Linux Mint 21. + +### Top Features of Linux Mint 21 “Vanessa” + +#### 1. Ubuntu 22.04 and associated updates + +Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. + +Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. + +#### 2. Major changes in the Timeshift backup tool + +A few months back, the Mint team [announced][5] that they are taking over developing the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? + +Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. + +![Timeshift creating snapshot][7] + +With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. + +#### 3. WebP Support + +WebP image is a reasonably new image format created by Google for the web. It brings better compression and reduced size while maintaining good quality to traditional JPEG or PNG images. + +WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. + +That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always thinks about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: + +- ePub +- MP3 with Album Arts +- RAW Images +- AppImage + +#### 4. Process Monitor + +A small but handy process monitor tool will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. Your system may become slow in those situations, and this nifty icon can show you why. + +#### 5. Improved printing support + +Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. + +In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. + +All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. + +It’s good to see that the mint team contributed to this critical functionality. + +#### 6. Window Animation updates + +There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, separate sections gave more granular control of the animations. + +Here’s a side-by-side view. + +![][12] + +![][13] + +Secondly, the mapping windows and desktop effects options are removed. + +Third, a new control changes the animation speed from slower to faster. + +Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. + +I believe this is a well-designed dialog and advanced options for better clarity. + +#### 7. Mutter rebase + +Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). + +Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. + +Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. + +#### 8. Window manager and GTK Themes + +With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. + +Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. + +Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. + +On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. + +#### 9. Package Management updates + +Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. + +When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. + +If found, you get an error message that stops you from going further. + +On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. + +#### 10. Disable the Systemd OOMD (out-of-memory daemon) service + +The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. + +In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. + +With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. + +![Systemd OOMD service is not enabled][20] + +#### 11. Other Changes + +Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. + +- The default document reader app Xreader is now capable of minor annotation. This is a handy feature. +- The WebApp manager now brings custom browser parameters. +- Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. +- Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to the Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. + +![Firefox 102 in Linux Mint 21 - Exclusively packaged as deb executable][22] + +- The bulk renamer app Thingy gets some UI improvements. +- The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). +- The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. +- Finally, new wallpapers for your new desktop arrive in this release. + +![New Wallpapers in Linux Mint 21][23] + +### Things that are NOT changing + +From a very high level, you might feel that most of the Linux Mint 21 remain the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. + +### Wrapping Up + +Overall, a good set of features benefits end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. + +You can download/update Linux Mint 21 from the [official website][24]. Also, stay tuned for our detailed distro review of Linux Mint 21 soon. + +What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/linux-mint-21-features/ + +作者:[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/07/Linux-Mint-21-Cinnamon-Desktop.jpg +[2]: https://www.debugpoint.com/linux-mint/ +[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/linux-kernel-5-15/ +[5]: https://blog.linuxmint.com/?p=4323 +[6]: https://teejeetech.com/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg +[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ +[9]: https://github.com/linuxmint/xapp-thumbnailers +[10]: https://datatracker.ietf.org/doc/html/rfc8011 +[11]: https://www.debugpoint.com/tag/linux-distro-review/ +[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg +[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 +[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ +[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ +[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 +[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html +[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ +[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg +[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ +[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg +[24]: https://www.linuxmint.com/download.php From 45eb597299fe12a5a833b6c5ff6912946db8d3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:03:18 +0800 Subject: [PATCH 1854/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221103.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Is=20Lua=20worth=20learning.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221103.0 ⭐️⭐️ Is Lua worth learning.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md diff --git a/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md new file mode 100644 index 0000000000..179addf957 --- /dev/null +++ b/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md @@ -0,0 +1,190 @@ +[#]: subject: "Is Lua worth learning?" +[#]: via: "https://opensource.com/article/22/11/lua-worth-learning" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Is Lua worth learning? +====== + +Lua is a fun and robust language, with progressive improvements made with each release, and an ever-growing developer base. Discover all of its possibilities. + +Lua is a scripting language used for procedural programming, functional programming, and even [object-oriented programming][1]. It uses a C-like syntax, but is dynamically typed, features automatic memory management and garbage collection, and runs by interpreting bytecode with a register-based virtual machine. This makes it a great language for beginners, but also a powerful tool for experienced programmers. + +Lua has been somewhat eclipsed from the public view by languages like [Python][2] and [JavaScript][3], but Lua has several advantages that make it popular in some major software projects. Lua is easily embedded within other languages, meaning that you can include Lua files in the code base of something written in (for instance) Java and it runs as if it were native Java code. It sounds like magic, but of course there are projects like [luaj][4] working to make it possible, and it's only possible because Lua is designed for it. It's partly because of this flexibility that you're likely to find Lua as the scripting language for video games, graphic applications, and more. + +As with anything, it takes time to perfect, but Lua is easy (and fun) to learn. It's a consistent language, a friendly language with useful error messages, and there's lots of great support online. Ready to get started? + +### Installing Lua + +On Linux, you can install Lua using your distribution's package manager. For instance, on Fedora, CentOS, Mageia, OpenMandriva, and similar distributions: + +``` +$ sudo dnf install lua +``` + +On Debian and Debian-based systems: + +``` +$ sudo apt install lua +``` + +For Mac, you can use [MacPorts][5] or [Homebrew][6]. + +``` +$ sudo port install lua +``` + +For Windows, install Lua using [Chocolatey][7]. + +To test Lua in an interactive interpreter, type `lua` in a terminal. + +### Functions + +As with many programming languages, Lua syntax generally involves a built-in function or keyword, followed by an argument. For instance, the `print` function displays any argument you provide to it. + +``` +$ lua +Lua 5.4.2 Copyright (C) 1994-2020 Lua.org, PUC-Rio + +> print('hello') +hello +``` + +Lua's `string` library can manipulate words (called "strings" in programming.) For instance, to count the letters in a string, you use the `len` function of the `string` library: + +``` +> string.len('hello') +5 +``` + +### Variables + +A variable allows you to create a special place in your computer's memory for temporary data. You can create variables in Lua by inventing a name for your variable, and then putting some data into it. + +``` +> foo = "hello world" +> print(foo) +hello world +> bar = 1+2 +> print(bar) +3 +``` + +### Tables + +Second only to the popularity of variables in programming is the popularity of arrays. The word "array" literally means an arrangement, and that's all a programming array is. It's a specific arrangement of data, and because there is an arrangement, an array has the advantage of being structured. An array is often used to perform essentially the same purpose as a variable, except that an array can enforce an order to its data. In Lua, an array is called a `table`. + +Creating a table is like creating a variable, except that you set its initial content to two braces (`{}`): + +``` +> mytable = {} +``` + +When you add data to a table, it's also a lot like creating a variable, except that your variable name always begins with the name of the table, and is separated with a dot: + +``` +> mytable.foo = "hello world" +> mytable.bar = 1+2 +> print(mytable.foo) +hello world +> print(mytable.bar) +3 +``` + +### Scripting with Lua + +Running Lua in the terminal is great for getting instant feedback, but it's more useful to run Lua as a script. A Lua script is just a text file containing Lua code, which the Lua command can interpret and execute. + +The eternal question, when just starting to learn a programming language, is how you're supposed to know what to write. This article has provided a good start, but so far you only know two or three Lua functions. The key, of course, is in documentation. The Lua language isn't that complex, and it's very reasonable to refer to the [Lua documentation site][8] for a list of keywords and functions. + +Here's a practice problem. + +Suppose you want to write a Lua script that counts words in a sentence. As with many programming challenges, there are many ways to go about this, but say the first relevant function you find in the Lua docs is `string.gmatch`, which can search for a specific character in a string. Words are usually separated by an empty space, so you decide that counting spaces + 1 ought to render a reasonably accurate count of the words they're separating. + +Here's the code for that function: + +``` +function wc(words,delimiter) + count=1 + for w in string.gmatch(words, delimiter) do + count = count + 1 + end + + return count +end +``` + +These are the components of that sample code: + +- `function`: A keyword declaring the start of a function. A custom function works basically the same way as built-in functions (like `print` and `string.len`.) +- `words` and `delimiter`: Arguments required for the function to run. In the statement `print('hello')`, the word `hello` is an argument. +- `counter`: A variable set to 1. +- `for`: A loop using the `string.gmatch` function as it iterates over the `words` you've input into the function, and searches for the `delimiter` you've input. +- `count = count +1`: For each `delimiter` found, the value of `count` is re-set to its current value plus 1. +- `end`: A keyword ending the `for` loop. +- `return count`: This function outputs (or returns) the contents of the `count` variable. +- `end`: A keyword ending the function. + +Now that you've created a function all your own, you can use it. That's an important thing to remember about a function. It doesn't run on its own. It waits for you to call it in your code. + +Type this sample code into a text file and save it as `words.lua`: + +``` +function wc(words,delimiter) + count=1 + for w in string.gmatch(words, delimiter) do + count = count + 1 + end + return count +end + +result = wc('zombie apocalypse', ' ') +print(result) + +result = wc('ice cream sandwich', ' ') +print(result) + +result = wc('can you find the bug? ', ' ') +print(result) +``` + +You've just created a Lua script. You can run it with Lua. Can you find the problem with this method of counting words? + +``` +$ lua ./words.lua +2 +3 +6 +``` + +You might notice that the count is incorrect for the final phrase because there's a trailing space in the argument. Lua correctly detected the space and tallied it into `count`, but the word count is incorrect because that particular space happens not to delimit a word. I leave it to you to solve that problem, or to find other ways in which this method isn't ideal. There's a lot of rumination in programming. Sometimes it's purely academic, and other times it's a question of whether an application works at all. + +### Learning Lua + +Lua is a fun and robust language, with progressive improvements made with each release, and an ever-growing developer base. You can use Lua as a utilitarian language for personal scripts, or to advance your career, or just as an experiment in learning a new language. Give it a try, and see what Lua brings to the table. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/lua-worth-learning + +作者:[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/article/22/10/object-oriented-lua%20 +[2]: https://opensource.com/resources/python +[3]: https://opensource.com/article/22/9/javascript-glossary +[4]: https://github.com/luaj/luaj +[5]: https://opensource.com/article/20/11/macports +[6]: https://opensource.com/article/20/6/homebrew-linux +[7]: https://opensource.com/article/20/3/chocolatey +[8]: http://www.lua.org/docs.html From 71fef3d3b77f8b513de30cbf3ad6b2e89317c9e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:05:18 +0800 Subject: [PATCH 1855/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221103.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Trim=20a=20Video=20in=20VLC=20Player=20[If=20You=20R?= =?UTF-8?q?eally=20Want=20to].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...m a Video in VLC Player [If You Really Want to].md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md diff --git a/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md b/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md new file mode 100644 index 0000000000..83b730942d --- /dev/null +++ b/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md @@ -0,0 +1,132 @@ +[#]: subject: "How to Trim a Video in VLC Player [If You Really Want to]" +[#]: via: "https://itsfoss.com/vlc-trim-video/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Trim a Video in VLC Player [If You Really Want to] +====== + +VLC media player is one of the [best media players][1] out there. This cross-platform player is feature rich and it can literally play any media format that’s available. + +You’ll be surprised to know that VLC is much more than just a video player. It can do a lot of things with your media files. + +[Downloading YouTube video with VLC][2] is one of the [VLC tips][3] we have shared on It’s FOSS. + +Let me share another one with you. How about trimming a video with VLC? It’s not the best way to [trim videos][4] but it is available as an option. + +### Trim videos using VLC + +Trimming a video in VLC essentially means recording the video from the beginning to end of the required portion. The recording control tools are usually not visible in the VLC panel by default. + +Let me show the steps in detail. + +#### Step 1: Enable advanced controls + +To get the controls, you need to make it visible on the main control panel. + +First select the view option and then check the Advanced controls check box. Now, a new row of controls with a couple of buttons appears as shown in the screenshot. + +![enable advanced controls view in vlc player][5] + +#### Step 2: Open the video + +In order to trim a video, you need to open it in VLC. You can either open the video in VLC player by Media > Open File: + +![open media file through vlc file menu][6] + +Or you can open the video file with VLC from Nautilus file manager: + +![open media file with vlc player from nautilus file manager][7] + +#### Step 3: Trim video using VLC’s recording feature + +Once video file is opened, set the timeline to the starting point of the required output and pause the video. After that, press the record button and play the video. + +![pause at start point and start record by pressing record button][8] + +When the end point of the required output is reached, pause the video and press the record button again to stop recording. + +![pause at end point and press record][9] + +This should save the trimmed output to your ~/Videos directory. + +![original and trimmed file in nautilus file manager][10] + +### Troubleshooting: Unrecognized Output File + +VLC records the videos in .ts file format. This is supported in VLC, and you can use that as you want. But many other players in Ubuntu, including the native video player doesn’t recognize the format. So, in this case, there are two solutions. + +#### Gnome-Video prompts Installation of GStreamer package + +When you try to open the file, GNOME-Videos will prompt an error and suggestion to install Gstreamer multimedia codecs. + +![converted video shows a play error in gnome video player app][11] + +You can click on the “Find in Ubuntu Software” button as shown above, which will open ubuntu software center. There you can install the required codec package. + +![install gstreamer from software as prompted by the gnome video player][12] + +Install the same and open the video with Gnome-videos again will solve the problem. + +#### Convert the Video file using VLC + +If you don’t want to install any additional packages for the purpose, you can use VLC itself to convert the .ts file to mp4 format to play in any other player. + +For this, open VLC and select Convert option under File menu. + +![select convert from media menu][13] + +Now, provide the location of the file that needs to be converted using the “Add” button and select Convert/Save as shown in the screenshot. + +![select file to convert in the media convert dialog box][14] + +Select the required output profile (MP4) and set a file name for the output and press Start. + +![set conversion profiles and output file name in vlc media convert menu][15] + +This will start the conversion and will be completed as per the duration of the source. Once done, you can access the converted output from your ~/Videos directory. + +![original trimmed and converted file in nautilus file manager][16] + +### Wrapping Up + +While it is true that VLC player can be used to trim videos, the entire process is in no way similar to a dedicated [video editor][17]. + +The biggest issue is that you need to watch the entire trim portion to compete the trimming, which is not convenient if you are trimming a large portion of a video spanning several minutes. + +Anyway, this cool feature can be a handy tool on some occasion, where all you want is to trim a particular small clip or make a gif from a movie scene. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/vlc-trim-video/ + +作者:[Sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/video-players-linux/ +[2]: https://itsfoss.com/download-youtube-videos-vlc/ +[3]: https://itsfoss.com/simple-vlc-tips/ +[4]: https://itsfoss.com/video-trimmer/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/enable-advanced-controls-view-in-vlc-player.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/open-media-file-through-vlc-file-menu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/11/open-media-file-with-vlc-player-from-nautilus-file-manager.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/pause-at-start-point-and-start-record-by-pressing-record-button.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/pause-at-end-point-and-press-record.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/original-and-trimmed-file-in-nautilus-file-manager.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/converted-video-shows-a-play-error-in-gnome-video-player-app.png +[12]: https://itsfoss.com/wp-content/uploads/2022/11/install-gstreamer-from-software-as-prompted-by-the-gnome-video-player.png +[13]: https://itsfoss.com/wp-content/uploads/2022/11/select-convert-from-media-menu.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/select-file-to-convert-in-the-media-convert-dialog-box.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/set-conversion-profiles-and-output-file-name-in-vlc-media-convert-menu.png +[16]: https://itsfoss.com/wp-content/uploads/2022/11/original-trimmed-and-converted-file-in-nautilus-file-manager.png +[17]: https://itsfoss.com/open-source-video-editors/ From 07b5061eabcf3553129c12771ee054cf41c31980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:07:31 +0800 Subject: [PATCH 1856/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221103.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Xfce=204.18=20Top=20New=20Features=20&=20Release=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Xfce 4.18 Top New Features & Release Guide.md | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 sources/tech/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md diff --git a/sources/tech/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md b/sources/tech/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md new file mode 100644 index 0000000000..1e16d2a91d --- /dev/null +++ b/sources/tech/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md @@ -0,0 +1,163 @@ +[#]: subject: "Xfce 4.18: Top New Features & Release Guide" +[#]: via: "https://www.debugpoint.com/xfce-4-18-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Xfce 4.18: Top New Features & Release Guide +====== + +**A comprehensive guide of Xfce 4.18 features across core & native apps.** + +After almost two years of development, Xfce 4.18 will be released during Christmas 2022. Coming as a major release since [Xfce 4.16][1], the development was going on to enhance this lightweight desktop under the development tag 4.17. + +Xfce 4.18 is a significant milestone considering GTK4 updates, initial Wayland support and revamp of core native apps. The volume of updates is massive. + +Release-wise, the first Xfce 4.18 pre-release (pre1) is now out. There shall be another pre-release in the first week of December 2022. And the Xfce 4.18 final release is expected between December 15 and December 29, 2022. + +Since there is no official detailed write-up yet, I have summarised this article with essential and major Xfce 4.18 features. + +Read on. + +![Xfce 4.18 pre1 (compiled in Arch)][2] + +### Xfce 4.18: New Features + +#### 1. Core library updates + +The dependencies of Xfce 4.18 is changed and compiled using the following versions. + +- glib-2.0 >= 2.66 +- gtk >= 3.24 +- libcairo >= 1.16 +- gdk-pixbuf-2.0 >= 2.40 +- gobject-introspection >= 1.66 + +#### 2. Desktop and Panel + +The primary top panel brings new settings and tweaks. But the overall look remains the same as before in the 4.16 version. Some default Panel applets are also changing in this version. The desktop icons, right-click context menu, and items remain unchanged. + +Panel preference gets two new options. Firstly, the length of the Panel is **now in pixels** rather than in percentages. Secondly, a new option, **“Keep panel above windows”**, helps you to send back window dialogues behind the panel. Earlier the app windows could only reach up to the panel edge. + +![Panel preferences in Xfce 4.18][3] + +The clock applet settings are overhauled. Yes, finally, you can change the font style in the Xfce clock applet. Along with that, four clock layout arrives – + +- date only +- time only +- date and time +- time and date + +In addition, you can also add commands to Calendar. + +![Finally you can change the font of Xfce Clock applet][4] + +#### 3. Thunar File manager + +Perhaps, the most exciting change in this release is the features in the Thunar file manager. Firstly, a new **search icon replaces the reload button in the toolbar**. When clicked, it brings up the search at the address bar, it does a recursive search with your search keyword. The reload button goes to the View menu. + +Secondly, a **new item, “Recent”,** is added on the left navigation bar. At the bottom, the metadata is more organized (from comma separated to pipe separated), and a new context menu item to select your desired option. + +![Thunar 4.18 visual changes][5] + +The main menu of Thunar gets many changes. Here is a list of significant ones. Also marked in the following images is what has changed since 4.16. + +- A **new bookmark menu** is introduced, adding the current folder to the sidebar as a shortcut. +- The Edit menu gets **UNDO and REDO** options. +- Go menu gets Recent and search for the file option. + +Thunar gets the **Split view** via the View menu item for the first time! Yes, you can now drag & drop items in the view panels. + +A while back, I [reported][6] that the image preview was arriving in Thunar. And it’s finally here. Developed part of Google Summer of Code 2022, you can now see the image preview in the sidebar embedded. Or at a new panel at the right as a standalone mode. It can be changed via preferences. + +Here’s how it looks. + +![Thunar split view with standalone image preview][7] + +![Thunar split view with embedded image preview][8] + +#### 4. Thunar Preferences + +A significant number of tweaks arrive in Thunar settings. Firstly, a new tab with the option to customize your keyboard shortcuts for Thunar. You can directly assign new keyboard combinations and change the existing ones from this tab. + +![New shortcut tab in Thunar][9] + +The display settings get a new section for Thumbnails where you can now specify the file size for Thumbnails. And the Thumbnail specific settings are grouped together. + +![Thunar Display Settings in 4.18][10] + +The Side Pane tab gets a new option for image preview, which you saw above. You can change the settings to embedded or standalone preview. Furthermore, the Behaviour tab gets the option to **restore tabs on startup** and show the **full directory path** in tab titles, which will help insanely. + +The Advanced tab gets a new settings section for File transfer with two new options to **intermediate file copy & verify the**checksum. In addition, a new option for recursive search is also added in this tab. You can also set Thunar to **execute** the **Shell script directly** via the following option. + +![Advanced options of Thunar 4.18][11] + +In addition to the above changes, the folder properties dialogue now show you the **count of file and folders**. Also, a new highlight option enables you to choose any **custom colour** for your folder icon background and foreground. This will allow you to navigate if you have a complex folder structure quickly. + +Here’s how it looks. + +![Folder highlight demo][12] + +#### Settings + +- Appearances settings now allow you to turn on and off the header bar in dialogs. + +- Desktop settings allow the Delete option in the file context menu (on or off) + +- Display settings now allow you to set a default for multiple display situations – whether to mirror, extend the display or do nothing. Earlier, the options were available when displays were connected. + +#### Wayland and other updates + +In addition to the above Xfce 4.18 features, many additional bug fixes and performance improvements have arrived for the window manager and desktop. Those are all under the hood, and you should feel a more polished Xfce desktop experience. + +Wayland migration work for Xfce desktop core and native apps started. It’s a long way until it is fully ready. In this release, you may not get much of Wayland updates. However, many apps already work fine under Wayland. You can learn more about the migration status on [this page][13]. + +### Download & Distro Availability + +Xfce 4.18 should make it to Ubuntu 23.04 Lunar Lobster on April 2023 and in Fedora 38. Rolling release-based distros such as Arch Linux, Manjaro and OpenSUSE Tumbleweed should get it within a few days of its release on December 2022. Lightweight and popular distro [MX Linux][14] should feature this version in 2023 while refreshing itself for Debian Bookworm. + +The first pre-release of Xfce 4.18 is [now out][15]. You can download the source tar balls from the below page and compile them. Refer to the official [compilation guide][16]. + +[Download Xfce 4.18 source (pre1)][17] + +### Closing Notes + +Overall, the number of changes is massive. Many core changes and needed ones made it to this release. The Thunar file manager updates were long-due and should be perfect for Xfce lovers. + +With Wayland’s support, the future Xfce release might bring a workable version of Xfce. The Wayland support is still in progress, and many decisions are pending for each component. Many distributions and critical deployments still prefer Xfce over KDE Plasma or GNOME. Considering those use cases and future roadmap, Xfce 4.18 is a major stepping stone before the next release. + +What is your favourite feature in the list? Let me know in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/xfce-4-18-features/ + +作者:[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/xfce-4-16-review/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/Xfce-4.18-pre1-compiled-in-Arch-1024x594.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/Panel-preferences-in-Xfce-4.18.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Finally-you-can-change-the-font-of-Xfce-Clock-applet.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-4.18-visual-changes.jpg +[6]: https://debugpointnews.com/thunar-image-preview/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-split-view-with-embedded-image-preview.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-split-view-with-sidebar-image-preview.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/11/New-shortcut-tab-in-Thunar.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-Display-Settings-in-4.18.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/11/Advanced-options-of-Thunar-4.18.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/11/Folder-highlight-demo.jpg +[13]: https://wiki.xfce.org/releng/wayland_roadmap +[14]: https://www.debugpoint.com/tag/mx-linux +[15]: https://www.reddit.com/r/xfce/comments/yjiwwv/announce_xfce_418pre1_released/ +[16]: https://docs.xfce.org/xfce/building +[17]: https://archive.xfce.org/xfce/4.18pre1/fat_tarballs From ea910e90af1270ed34a0990e5124e78c7a130a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:08:27 +0800 Subject: [PATCH 1857/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221103.4=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20and=20Use=20Snap=20Packages=20in=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to Install and Use Snap Packages in Ubuntu.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md diff --git a/sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md b/sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md new file mode 100644 index 0000000000..0248cc800c --- /dev/null +++ b/sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md @@ -0,0 +1,160 @@ +[#]: subject: "How to Install and Use Snap Packages in Ubuntu" +[#]: via: "https://www.debugpoint.com/how-to-install-and-use-snap-packages-in-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install and Use Snap Packages in Ubuntu +====== + +**A tutorial on how to find, install and maintain snap packages in Ubuntu.** + +Snappy (in short, Snap) packages are transactional packages developed by Canonical for Ubuntu for its line of solution offerings. Due to its transactional nature, snap packages can be used in across Linux Distributions. Snap packages are handy due to their atomic update in nature for critical industrial use cases such as IoT. + +The packages can be found and installed via the command line, primarily from a web store called [Snapcraft][1]. The snap packages can also be downloaded from this store as .snap files, containing all the dependencies needed inside the .snap package. + +The installed snap software is installed in their respective folders and doesn’t interfere with the rest of the system. That means if you have installed software via typical `apt-get install xyz` and installed the same software by installing`xyz.snap`, then both versions of the same software can co-exist on your PC without interfering with each other. + +In contrast, [Flatpak][2] also has a similar concept and offers much more robust offerings, mainly for GUI-driven apps. + +This article will show you how to perform basic operations with snap via the command line. + +### How to install and manage Snap packages in Ubuntu + +#### 1. Find a Snap Package + +To find a snap package, run the below command. It will give you a list of all available snap packages, their version and description. + +``` +snap find +``` + +![snap find][3] + +You can give the name as an argument to find a specific snap package. + +``` +snap find name_of_package +``` + +![snap find name][4] + +#### 2. Install a Snap Package from Command Line + +To install a snap package, run the below command with the snap package name. + +``` +sudo snap install name-of-the-package +``` + +![snap install][5] + +The command will install the package with all of its dependencies in your system. In addition, you can also see the progress of your installation. + +After installation, you can launch the application directly from the application menu. + +#### 3. Updating Snap Package + +You can update an installed snap package by using the below command: + +``` +sudo snap refresh name-of-the-package +``` + +![snap refresh][6] + +#### 4. List your installed snaps + +To list down all the snap packages installed in your system, use the below command; + +``` +snap list +``` + +![snap list][7] + +#### 5. Removing (or uninstalling) a snap package + +To remove a snap package from your system, run the below command: + +``` +sudo snap remove name-of-the-package +``` + +![snap remove][8] + +#### 6. View Snap Activity + +To view the recent changes done using snap in your system, run the below command. This will give the installed/updated activity list in those snap packages with the date and time stamps. + +``` +snap changes +``` + +![snap changes][9] + +#### 7. Handling Snap Errors + +There are some errors you may encounter while installing/maintaining snap packages. E.g. while downloading a snap package via command `snap install`, if you press `CTRL+C` for abort, then you may get the below error while trying for the second time and so on. This is so bad that you can’t even install any other snap packages. + +``` +error: can't install "notes": snap "ubuntu-core" has changes in progress. +``` + +![snap err][10] + +Ideally, when you do the same when installing via the apt install command, apt will take care when you run it for the second time. + +**To solve this error, follow these steps:** + +- Run the below command to find out the ID of the error installation. + +``` +snap changes +``` + +![snap changes abort][11] + +- As you can see, ID=7 is the installation which I aborted. Now, run the below command with the ID. + +``` +sudo snap abort 7 +``` + +![snap abort][12] + +- This will abort the pending change that still has a pending task. Now you can continue installing the same package or a different package. + +### Closing Notes + +In this article, you learned some fundamental commands for managing snap packages in the Ubuntu system via the terminal. This should get you started for now. Also, for more common tasks such as install and remove – you can visit snapcraft.io and use install methods there. Further documentation about snap is available in the [official reference][13]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/how-to-install-and-use-snap-packages-in-ubuntu/ + +作者:[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://snapcraft.io/ +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-find.png +[4]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-find-name.png +[5]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-install.png +[6]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-refresh.png +[7]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-list.png +[8]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-remove.png +[9]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-changes.png +[10]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-err.png +[11]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-changes-abort.png +[12]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-abort.png +[13]: https://snapcraft.io/docs From 657623357d676b41ae21f1e9149c7b9377f72c98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:09:03 +0800 Subject: [PATCH 1858/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221103.5=20=E2=AD=90=EF=B8=8F=20Grafana=20Phlare?= =?UTF-8?q?=20is=20a=20New=20Scalable=20Open-Source=20Database=20to=20Enha?= =?UTF-8?q?nce=20Observability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...en-Source Database to Enhance Observability.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md diff --git a/sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md b/sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md new file mode 100644 index 0000000000..8a36782a27 --- /dev/null +++ b/sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md @@ -0,0 +1,95 @@ +[#]: subject: "Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability" +[#]: via: "https://news.itsfoss.com/grafana-phlare/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability +====== + +Grafana Phlare aims to be a scalable, durable, cheap, and open-source database for continuous profiling data. + +![Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability][1] + +[Grafana][2] is a popular open-source data visualization tool that supports various object storage and cloud services. + +To improve on what they offer, Grafana has announced a **new open-source database for continuous profiling data** that helps enhance the monitoring of servers (or your application), making life easier for performance engineers and enterprises. + +### Open Source Database for Continuous Profiling + +![Introducing Grafana Phlare][3] + +Credits: Grafana Labs + +> 💡Continuous Profiling is a dynamic method of analyzing key performance metrics of a server, such as CPU utilization, memory usage, and more, at any period of time. + +Grafana Phlare is a highly scalable database that aims to provide users with a long-term storage solution for continuous profiling data. + +The core features involve: + +- **Easy to install** +- **Horizontal scalability** +- **High availability** +- **Cheap, durable profile storage** +- **Natively multi-tenant (enabling independent teams to share the same database)** + +You would say that: there are already a few similar open-source projects. And you wouldn't be wrong. + +But, the team behind Phlare mentioned that those tools were not reliable or scalable enough to meet Grafana Labs' continuous profiling needs. + +> So we decided to get to work creating a database for continuous profiling telemetry, based on the design principles that have made our other open source observability backends, Loki, Tempo, and Mimir, so successful: horizontally scalable architecture and use of object storage.- Cyril Tovena, Software Engineer at Grafana + +As for the technical tidbits of Phlare, it uses object storage to store profiling data and supports various object storage services such as[Amazon S3][4], [Google Cloud Storage][5], [OpenStack Swift][6], and more. + +Also, Cyril mentions that Grafana Phlare is incredibly easy to install: + +> It’s easy to install with just one binary and no additional dependencies, just like [Prometheus][7]. + +![grafana phlare][8] + +Credits: Grafana Labs + +**Furthermore**, it can natively integrate with Grafana to show users a detailed view of the whole stack and includes various observability signals such as metrics, logs, and traces. + +To complement Phlare, the team also added a new Flame graph panel to better visualize system resources data via various data sources. + +![grafana phlare flame graph panel][9] + +Credits: Grafana Labs + +**As a bonus**, Grafana also announced a data source plugin for another open-source continuous profiler called '[Parca][10]'. + +### 👨‍💻 Try Grafana Phlare + +Grafana Phlare is made available as a single binary and can be procured from the official [GitHub repository][11]. + +You may want to review its [official documentation][12] to learn more about it. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/grafana-phlare/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/grafana-phlare-opensource-scalable-db.png +[2]: https://grafana.com/grafana/ +[3]: https://player.vimeo.com/video/766320003?h=8c877d70d4&app_id=122963 +[4]: https://aws.amazon.com/s3/ +[5]: https://cloud.google.com/storage +[6]: https://github.com/openstack/swift +[7]: https://grafana.com/oss/prometheus/?pg=blog&plcmt=body-txt +[8]: https://news.itsfoss.com/content/images/2022/11/Grafana-2.png +[9]: https://news.itsfoss.com/content/images/2022/11/Grafana.png +[10]: https://www.parca.dev +[11]: https://github.com/grafana/phlare +[12]: https://grafana.com/docs/phlare/latest/ From be61d081d988876405fc144b6685a83c58741cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:23:45 +0800 Subject: [PATCH 1859/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221103.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20How=20To=20Securely=20Transfer=20Files=20W?= =?UTF-8?q?ith=20SCP=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How To Securely Transfer Files With SCP In Linux.md | 535 ++++++++++++++++++ 1 file changed, 535 insertions(+) create mode 100644 sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md diff --git a/sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md new file mode 100644 index 0000000000..5dd5dc34d8 --- /dev/null +++ b/sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -0,0 +1,535 @@ +[#]: subject: "How To Securely Transfer Files With SCP In Linux" +[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Securely Transfer Files With SCP In Linux +====== + +File transfer over a network can be done in various ways and using different protocols. The most commonly used protocols for **copying files remotely** are **Rsync**, **SCP** and **SFTP**. In this guide, we will look at **what is SCP** and how to **securely transfer files between local and remote computers with SCP** in Linux and Unix-like operating systems. + +### What is SCP? + +SCP, stands for **Secure Copy**, is a command line program to copy files and directories between a local and a remote system or between two remote systems in a secure way in Linux and Unix-like operating systems. + +Using `scp` command, you can securely copy a file or a directory, + +- from your local system to a remote system, +- from a remote system to your local system, +- between remote systems from your local system. + +When transferring data with the scp command, the files and directories are both encrypted. So even if your network is compromised, the perpetrators can't get any meaningful data. + +SCP is a component of the openSSH program and it uses the SSH protocol to securely transfer files. OpenSSH comes pre-installed with almost all modern Linux and Unix distributions, so don't bother installing it. + +#### A word of caution: + +According to the **official announcement** from the openSSH developers, + +> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] + +However, the majority of the users still prefer SCP over other protocols. Because, SCP handles remote-to-remote file transfers more efficiently than its counterparts such as SFTP and Rsync. + +And also, SCP works exactly like `cp` command, while `rsync` changes its behavior based on whether the source directory has a **trailing slash** or not. Take a look at the following commands: + +- `rsync source destination/` - would copy the source into the destination folder. +- `rsync source/ destination/` - would copy the contents of the source folder into the destination folder. + +So you must always double check if you've put the trailing slash in the path. + +I personally use **[Rsync][2]** for copying large size files between two hosts and SCP for copying single files over a network. + +### SCP Command Syntax + +The general syntax for SCP command is given below: + +``` +scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target +``` + +Depending upon the file transfer path, the syntax will differ. Here I have included some example syntax format. + +Copy a file from your local system to a remote system: + +``` +scp SourceFile User@RemoteHost:RemotePath +``` + +Similarly, to copy a directory from your local system to a remote system, use `-r` flag: + +``` +scp -r SourceDirectory User@RemoteHost:RemotePath +``` + +Copy multiple files to a remote system: + +``` +scp SourceFile1 SourceFile2 User@RemoteHost:RemotePath +``` + +Copy a file from remote system to your local system: + +``` +scp User@RemoteHost:RemoteFilePath DestinationFile +``` + +Copy a directory from remote system to local system: + +``` +scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory +``` + +Copy a file from one remote system to another remote system from your local system: + +``` +scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath +``` + +Please note that when you copy files between two remote systems, the traffic will not pass through the local system. The operation takes place directly between two remote systems. You can, however, pass the traffic from the system on which you run scp command using `-3` option. + +Copy a directory from one remote system to another remote system from your local system: + +``` +scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath +``` + +### SCP Command Options + +The most commonly used options of SCP command are: + +- **`-C`** : Enable compression. Here, C stands for Compression. When you use this option, the data transfer speed will be faster, because the data is compressed. SCP will automatically enable the compression at the source system and decompression at the destination system. +- **-c ** : c stands for cipher. By default, SCP uses **'AES-128'** encryption method for encrypting data. You can change the encryption method using `-c` option. +- **`-i `** : i stands for Identity file or Private key. As you already know, there are password-based and key-based authentication used in SSH. If you want to use key-based authentication while transferring files, you can use the -i option to specify the Identity file or Private key. +- **`-l limit`** : l stands for limit bandwidth. Using this option, you can set the maximum bandwidth used for transferring data. The limit should be specified in **`Kbit/s`**. +- **-F ** : Some times, you may need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `-F` option. +- **`-P port`** - P stands for Port. Please note that it is uppercase P. By default, SSH uses port number 22. You might have changed the port number in the destination host for security reasons. In that case, you should explicitly mention the new port number using `-P` option. +- **-p** : if you want to preserve modification times, access times, and modes from the original file, you need to use -p option while copying files. Please note that it is lowercase p. +- **`-r`** : Recursively copy entire directories. +- **`-B`** : B stands for batch mode. It is used for selecting batch mode while transferring files. It prevents asking for passwords or passphrases. +- **`-S program`** : Name of the program to use for the encrypted connection. +- **-v** : v stands for verbose. When using the `-v` option, the command will print the progress in your Terminal screen. So, you will see the what exactly is going on when the files are being transferred. It is useful in debugging connection, authentication, and configuration problems. + +SCP has so many options. You can check the man pages of SCP command to learn about other options. Let us see some **useful scp command examples**. + +### Important Notes to Remember before You Begin + +- The `scp` command relies on `ssh` for secure file transfer. So you must have either a **ssh key** or **password** to authenticate to the remote systems. +- To be able to transfer files, you must have **read permission on the source files** and **write permission on the destination** location. +- The `scp` command will not check the destination location before writing. Any files in the destination with the same name will be **overwritten without notification**. +- To be able to distinguish between local and remote locations, use a **colon** (**`:`**). +- When transferring large files, it is recommended to start the task inside a **[Screen][3]** or **[Tmux][4]** session. + +### Transfer Files With SCP in Linux + +As I already mentioned, we can use `scp` command to copy a file or a directory from a local system to a remote system and vice versa and copy files and folders between one remote computer to another remote computer. + +#### 1 Copy Files with SCP from Local System to Remote System + +To copy a file from a local system to a remote system using `scp` command, run: + +``` +$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +**Sample Output:** + +``` +ostechnix@192.168.1.40's password: +File1.txt 100% 104 814.0KB/s 00:00 +``` + +Let us break down the above command and see what each option does. + +- `**File1.txt**` - The source file to be copied to the destination. +- `**ostechnix**` - The username of the remote system. +- `**192.168.1.40**` - The IP address of the remote system. +- `**/home/ostechnix/**` - The destination directory in the remote system. This is the absolute path where we want to transfer the source file i.e. `File.txt`. + +You can also copy the file and rename it as well. The following command transfers the **`File1.txt`** to the destination and saves the file with different name **`myfile.txt`**. + +``` +$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt +``` + +![Copy Files From Local System To Remote System][5] + +Copy Files from Local System to Remote System + +#### 2. Copy Multiple Files with SCP from Local System to Remote System + +To transfer multiple files from a local system to a remote system with `scp` command, run: + +``` +$ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +**Sample Output:** + +``` +ostechnix@192.168.1.40's password: +File1.txt 100% 104 689.4KB/s 00:00 +File2.txt 100% 496 6.3MB/s 00:00 +``` + +![Copy Multiple Files from Local System to Remote System][6] + +Copy Multiple Files from Local System to Remote System + +Here, + +- `**File1.txt**` and **`File2.txt`** - The name of the sources that will be copied to the specified destination. +- `**ostechnix@192.168.1.40**` - The username and IP address of the remote system. +- `**/home/ostechnix**` - The destination path where we want to put the copied files. + +If the files have same extension, you can use the following alternative commands to achieve the same goal. + +``` +$ scp {File1,File2}.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +Or, + +``` +$ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 3. Recursively Copy Directories with SCP from Local System to Remote System + +To recursively copy an entire directory including the sub-directories and its contents from your local system to a remote system, use **`-r`** flag like below. + +``` +$ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/ +``` + +![Copy a Directory from Local System to Remote System][7] + +Copy a Directory from Local System to Remote System + +The above command will copy the entire directory **'`Documents`'** including its contents to the destination system. + +Here, + +- **`-r`** : Copy files and directories recursively including the sub-directories and its contents. +- **`Documents`** : The name of the source directory that we want to copy to the destination. +- `**ostechnix@192.168.1.40**` : The username and IP address of the remote system. +- `**/home/ostechnix**` : The destination path where we want to put the copied directory. + +#### 4. Transfer Files with SCP from Remote System to Local System + +Remember we copied `FIle1.txt` to the remote system from our local system. Let us copy it back to the local system. + +To copy a file from a remote system to your local system with `scp`, run: + +``` +$ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/ +``` + +Here, + +- `**ostechnix@192.168.1.40**` : The username and IP address of the remote system. +- **`/home/ostechnix/File.txt`** : The absolute path of file that we want to copy to the local system. +- **`Downloads`** - The location where to save the copied file. + +![Transfer Files from Remote System to Local System][8] + +Transfer Files from Remote System to Local System + +#### 5. Transfer Multiple Files using SCP from Remote System to Local System + +To copy multiple files from a remote system to your local system, mention the absolute path of the files that you want to copy **within the curly braces** as shown below. + +``` +$ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/ +``` + +![Transfer Multiple Files from Remote System to Local System][9] + +Transfer Multiple Files from Remote System to Local System + +The above command will copy the `File1.txt` and `File2.txt` from the `/home/ostechnix/` directory of the remote system to the `Downloads` directory of the local system. + +Please note that there is **no spaces after the commas within the curly braces**. + +#### 6. Recursively Copy Directories from Remote System to Local System + +To copy an entire directory including the sub-directories and its contents recursively from a remote computer to your local system using `scp`, use **`-r`** flag. + +``` +$ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/ +``` + +The above command will copy the entire **`Documents`** from the remote system to the **`Downloads`** directory in your local system. + +#### 7. Copy Files using SCP between Two Remote Computers + +To copy files directly from one remote system to another remote system with `scp`, run: + +``` +$ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ +``` + +You will be asked to enter the password of the both remote systems. + +Here, + +- **`senthil@192.168.1.40`** - The username and IP address of the remote system from the file is currently located. +- **`/home/senthil/File1.txt`** - The name the file1 that is being copied and its location. +- `**kumar@192.168.1.20**` - The username and IP address of the remote system where we want to copy the file. +- **`/home/kumar`** - The location where to save the copied file on the remote system. + +The above command will copy the `/home/senthil/File1.txt` from the remote host `192.168.1.40` to `/home/kumar/` directory on the remote host `192.168.1.20`. + +In this method, the data will be transferred directly from one remote system to another remote system. If you want to route the traffic through the machine on which the command is run, use `**-3**` flag like below. + +``` +$ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ +``` + +#### 8. Enable Compression while Copying Files with SCP + +So far we have transferred files without compressing them. Now we will enable compression while transferring files using **`-C`** flag. + +``` +$ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +The `-C` flag will enable compression of data at the source and automatically decompress the data at destination side. + +By enabling compression, you can increase the file copy or transfer speed significantly. + +#### 9. Limit Bandwidth while Transferring Files using SCP + +We can limit the bandwidth while copying files with SCP using `-l` flag. Please note that the maximum bandwidth is specified in Kbits/s. 1 byte=8 bits. So if you want to limit bandwidth to 200 KB/s, the value for `-l` would be **1600** (200*8). + +``` +$ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +This is useful when transferring large files to prevent SCP from throttling the bandwidth. + +#### 10. Use Different Port while Copying Files using SCP + +As a system admin, you might **[have changed the default port of your SSH protocol][10]** on the remote servers for security reasons. In such cases, you can specify the port number with `-P` flag when transferring files. Please note that this is **uppercase P**. + +``` +$ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 11. Use Different Cipher while Copying Files with SCP + +By default, SCP uses **'`AES-128`'** for encrypting files. If you want to use different cipher, use **`-c`** flag followed by the cipher name. + +For example, if you want to use **'`3des-cbc`'** cipher, the command would be like below: + +``` +$ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +To view the list of supported ciphers, run: + +``` +$ ssh -Q cipher localhost | paste -d, -s - +``` + +**Sample Output:** + +``` +3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com +``` + +#### 12. Copying Files with SCP in Verbose Mode + +if you want to know what's going on behind the scenes while copying files with scp, you can use `**-v**` flag. When transferring files with SCP in Verbose mode, the step by step process of the SCP command execution will be displayed in the terminal. This comes in handy when troubleshooting times. + +``` +$ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +You will see a whole lot of output when sending files in Verbose mode as shown in the following output. + +![Copying Files with SCP in Verbose Mode][11] + +Copying Files with SCP in Verbose Mode + +#### 13. Transferring Files with SCP in Quiet Mode + +We can transfer files in quiet mode with **`-q`** flag. When sharing files in quiet mode, it will not show the copy progress, warning or diagnostic message in the output. + +``` +$ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 14. Preserve File Attributes when Transferring Files with SCP + +To preserve file attributes such as file modification times, access times, and modes when copying files with SCP, use **`-p`** flag. Please note that this is **lowercase p**. + +``` +$ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 15. Use Identity File when Copying Files with SCP + +SSH supports both password-based and key-based authentication. Key-based authentication is most widely used authentication method in Linux environments. + +If you want to use key-based authentication while transferring files, use the **`-i`** option to specify the Identity file or Private key. + +``` +$ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 16. Use Different ssh_config File when Transferring Files with SCP + +There are situations where you need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `**-F**` option. + +``` +$ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 17. Copy files with SCP using IPv4 or IPv6 + +We can force SCP to only use IPv4 or IPv6 addresses when copying files. This can be achieved by adding **`-4`** for IPv4 networks and **`-6`** for IPv6 networks. + +``` +$ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +### Frequently Asked Questions + +#### Question 1: What is SCP? + +**Answer:** SCP is a command line program to securely transfer files and directories from a local system to a remote system and vice versa, or between two remote systems directly. + +#### Question 2: How to copy a file from the local computer to remote computer using SCP? + +To copy a file from your local system to a remote system, the command would be: + +``` +scp SourceFile.txt User@RemoteHost:/some/remote/directory +``` + +#### Question 3: How to copy recursively copy files and directories? + +To recursively copy a directory including the sub-directories, use `-r` flag. + +``` +scp -r /some/local/directory User@RemoteHost:/some/remote/directory +``` + +#### Question 4: Can I transfer multiple files using SCP? + +Yes, you can. Just mention the source file names with space separated. + +Copy multiple files from local to remote: + +``` +scp file1.txt file2.txt file3.txt User@RemoteHost:/some/remote/directory +scp {file1,file2,file3}.txt User@RemoteHost:/some/remote/directory +scp *.txt User@RemoteHost:/some/remote/directory +``` + +Copy multiple files from remote to local: + +``` +scp User@RemoteHost:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} /some/local/directory +``` + +Copy multiple files from remote to remote: + +``` +$ scp User@RemoteHost1:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} User@RemoteHost2:/some/remote/directory/ +``` + +#### Question 5: How to transfer all files in a directory? + +To transfer all files in a directory, switch to that directory: + +``` +cd dir_name +``` + +``` +scp *.txt User@RemoteHost:/some/remote/directory +``` + +#### Question 6: Can I compress files? + +Yes, you can. Use **`-C`** to compress files. The files are compressed at source and decompress at destination automatically. + +``` +scp -C /some/large/file User@RemoteHost:/some/remote/directory +``` + +#### Question 7: Can I preserve file attributes? + +To preserve file attributes such as modification times, access times, and modes from the original file, use `-p` flag. + +``` +scp -p file.txt User@RemoteHost:/some/remote/directory +``` + +#### Question 8: Can I use different port? + +Yes. SCP allows you to use different port with `-P` flag. + +``` +scp -P 2022 file.txt User@RemoteHost:/some/remote/directory +``` + +#### Question 9: Can I use different cipher? + +Yes, you can. Use -c flag to use different cipher. + +``` +scp -c 3des-cbc User@RemoteHost:/some/remote/directory +``` + +#### Question 10: How do I list the supported ciphers by SSH? + +To view the list of supported ciphers by SSH and SCP, use the following command + +``` +ssh -Q cipher localhost | paste -d, -s - +``` + +#### Question 11: Is SCP really secure? + +Yes, it is completely secure to use. SCP uses the same SSH mechanism used by openSSH. The data in transit is encrypted at the source side and decrypted at destination. + +#### Question 12: Can I transfer files from a Windows system to a Linux system? + +Yes, you can. Use either **PSCP** program to transfer files from windows platform to Linux platform. You can also use **WinSCP**. + +### Conclusion + +In this comprehensive guide, we learned what is SCP, and how to **securely transfer files with SCP** in Linux. We provided **17 SCP command examples**. We also looked at the commonly asked questions about SCP. + +Whether you're a Linux Admin, or a Developer or a Regular user, you will have to copy files to and from a remote system at some point. Knowing how to **use SCP to securely copy files** will be definitely useful. + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/securely-transfer-files-with-scp-in-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://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html +[2]: https://ostechnix.com/linux-rsync-command-examples-for-beginners/ +[3]: https://ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/ +[4]: https://ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/ +[5]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Files-from-Local-System-to-Remote-System.png +[6]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Multiple-Files-from-Local-System-to-Remote-System.png +[7]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Directory-from-Local-System-to-Remote-System.png +[8]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Files-from-Remote-System-to-Local-System.png +[9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png +[10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ +[11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png From 96239749e73ea95c55ed8d404746f5045a8e21e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:24:52 +0800 Subject: [PATCH 1860/3123] =?UTF-8?q?Update=20and=20rename=2020221103.0=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20How=20?= =?UTF-8?q?To=20Securely=20Transfer=20Files=20With=20SCP=20In=20Linux.md?= =?UTF-8?q?=20to=2020221103.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20How=20To=20Securely=20Transfer=20Files=20W?= =?UTF-8?q?ith=20SCP=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename sources/tech/{20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md => 20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md} (99%) diff --git a/sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md similarity index 99% rename from sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md rename to sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index 5dd5dc34d8..edb5555758 100644 --- a/sources/tech/20221103.0 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -30,7 +30,8 @@ SCP is a component of the openSSH program and it uses the SSH protocol to secure According to the **official announcement** from the openSSH developers, -> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] +> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. +> Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] However, the majority of the users still prefer SCP over other protocols. Because, SCP handles remote-to-remote file transfers more efficiently than its counterparts such as SFTP and Rsync. From 90c6c3536fc54335e3db45f4d59a5f54bdea610b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:25:55 +0800 Subject: [PATCH 1861/3123] =?UTF-8?q?Update=2020221103.6=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20How=20To=20Secu?= =?UTF-8?q?rely=20Transfer=20Files=20With=20SCP=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index edb5555758..a5f88fc19c 100644 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -30,7 +30,7 @@ SCP is a component of the openSSH program and it uses the SSH protocol to secure According to the **official announcement** from the openSSH developers, -> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. +> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. \ > Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] However, the majority of the users still prefer SCP over other protocols. Because, SCP handles remote-to-remote file transfers more efficiently than its counterparts such as SFTP and Rsync. From b7e72a6ea7599d87f371370b9be5c422958c309d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:26:27 +0800 Subject: [PATCH 1862/3123] =?UTF-8?q?Update=2020221103.6=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20How=20To=20Secu?= =?UTF-8?q?rely=20Transfer=20Files=20With=20SCP=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index a5f88fc19c..f48c1b500e 100644 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -30,7 +30,8 @@ SCP is a component of the openSSH program and it uses the SSH protocol to secure According to the **official announcement** from the openSSH developers, -> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. \ +> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. +> > Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] However, the majority of the users still prefer SCP over other protocols. Because, SCP handles remote-to-remote file transfers more efficiently than its counterparts such as SFTP and Rsync. From bf8ae28fb7572bdb7e0cc078ccd3d49178af9a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:28:46 +0800 Subject: [PATCH 1863/3123] =?UTF-8?q?Update=2020221103.6=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20How=20To=20Secu?= =?UTF-8?q?rely=20Transfer=20Files=20With=20SCP=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index f48c1b500e..2858b33b75 100644 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -104,16 +104,16 @@ scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath The most commonly used options of SCP command are: - **`-C`** : Enable compression. Here, C stands for Compression. When you use this option, the data transfer speed will be faster, because the data is compressed. SCP will automatically enable the compression at the source system and decompression at the destination system. -- **-c ** : c stands for cipher. By default, SCP uses **'AES-128'** encryption method for encrypting data. You can change the encryption method using `-c` option. +- **`-c `** : c stands for cipher. By default, SCP uses **'AES-128'** encryption method for encrypting data. You can change the encryption method using `-c` option. - **`-i `** : i stands for Identity file or Private key. As you already know, there are password-based and key-based authentication used in SSH. If you want to use key-based authentication while transferring files, you can use the -i option to specify the Identity file or Private key. - **`-l limit`** : l stands for limit bandwidth. Using this option, you can set the maximum bandwidth used for transferring data. The limit should be specified in **`Kbit/s`**. -- **-F ** : Some times, you may need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `-F` option. +- **`-F `** : Some times, you may need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `-F` option. - **`-P port`** - P stands for Port. Please note that it is uppercase P. By default, SSH uses port number 22. You might have changed the port number in the destination host for security reasons. In that case, you should explicitly mention the new port number using `-P` option. -- **-p** : if you want to preserve modification times, access times, and modes from the original file, you need to use -p option while copying files. Please note that it is lowercase p. +- **`-p`** : if you want to preserve modification times, access times, and modes from the original file, you need to use -p option while copying files. Please note that it is lowercase p. - **`-r`** : Recursively copy entire directories. - **`-B`** : B stands for batch mode. It is used for selecting batch mode while transferring files. It prevents asking for passwords or passphrases. - **`-S program`** : Name of the program to use for the encrypted connection. -- **-v** : v stands for verbose. When using the `-v` option, the command will print the progress in your Terminal screen. So, you will see the what exactly is going on when the files are being transferred. It is useful in debugging connection, authentication, and configuration problems. +- **`-v`** : v stands for verbose. When using the `-v` option, the command will print the progress in your Terminal screen. So, you will see the what exactly is going on when the files are being transferred. It is useful in debugging connection, authentication, and configuration problems. SCP has so many options. You can check the man pages of SCP command to learn about other options. Let us see some **useful scp command examples**. From 00c19946465a62b22d61a5595083bcfa395f80bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 01:41:30 +0800 Subject: [PATCH 1864/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221101.12=20=E2=AD=90=EF=B8=8F=20OpenSSL=203.0.7?= =?UTF-8?q?=20Fixes=20Two=20High-CVEs=20with=20Buffer=20Overflow.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....7 Fixes Two High-CVEs with Buffer Overflow.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md diff --git a/sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md b/sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md new file mode 100644 index 0000000000..cafd073efe --- /dev/null +++ b/sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md @@ -0,0 +1,61 @@ +[#]: subject: "OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow" +[#]: via: "https://debugpointnews.com/openssl-3-0-7/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow +====== + +![][1] + +**OpenSSL 3.0.7, released today, fixes two critical security issues that have caused panic since last week.** + +### OpenSSL 3.0.7 release + +The highly anticipated OpenSSL 3.0.7 is now released, fixing two high-severity CVEs. All the major Linux distributions across desktops and, most importantly, server admins have been waiting for this fix since it was reported last week by the OpenSSL team. Due to the criticality of this package, some distro releases got delayed (such as [Fedora 37][2]), and probably some patching activities across the industry. + +Both the high severity fixes are due to buffer overrun, which impacts the entire OpenSSL 3.0.0 series (i.e. from 3.0.0 to 3.0.6). Alarming, it may sound, but these two vulnerabilities have been out in the wild for almost a year since the 3.0.0 release in 2021. + +The first [CVE-2022-3786][3] triggers when a malicious email address with arbitrary payload with character “.” (decimal 46). The second vulnerability, CVE-2022-3602, also deals with another payload with the same email address in name constraints, checking for X.509 certificates. + +### Distro Patching + +As of publishing this, major distros (Debian, Ubuntu, Fedora, RedHat) are yet to update their OpenSSL package with version 3.0.7. + +So, as soon as it arrives, make sure you update your desktops and servers immediately. This is critical for those who deal with TLS-based authentication over remote connections to various servers. + +Keep a watch on the below pages for updated packages for major Linux distributions. + +- [Ubuntu][4] (Jammy) +- [Fedora][5] +- [Debian][6] (Bookworm, testing) + +Arch Linux folks are superfast, it seems. It’s already in the[staging repo][7]within two hours of the release! + +Via [OpenSSL release notes][8]. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/openssl-3-0-7/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/11/openssl-head-816x459.jpg +[2]: https://debugpointnews.com/fedora-37-release-delay/ +[3]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-3602 +[4]: https://packages.ubuntu.com/jammy/openssl +[5]: https://packages.fedoraproject.org/pkgs/openssl/openssl/ +[6]: https://packages.debian.org/bookworm/openssl +[7]: https://archlinux.org/packages/?sort=&q=openssl&maintainer=&flagged= +[8]: https://mta.openssl.org/pipermail/openssl-announce/2022-November/000241.html From d5edae18e9b13ca84af0eda83a107737a107810b Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Fri, 4 Nov 2022 04:36:49 +0800 Subject: [PATCH 1865/3123] =?UTF-8?q?Rename=20sources/tech/20221103.3=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Xfce=204.18=20Top=20New?= =?UTF-8?q?=20Features=20&=20Release=20Guide.md=20to=20sources/news/202211?= =?UTF-8?q?03.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Xfce=204.18=20Top?= =?UTF-8?q?=20New=20Features=20&=20Release=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md (100%) diff --git a/sources/tech/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md b/sources/news/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md similarity index 100% rename from sources/tech/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md rename to sources/news/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md From ab34b23cb4be4e784abfab8e615a22287171b6cb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 4 Nov 2022 05:01:53 +0800 Subject: [PATCH 1866/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @littlebirdnest 用翻译工具翻译完都不看吗?!提出批评。 --- .../20221101.5 ⭐️ Linux Lite 6.2 Released.md | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md index a3868386d9..8c5f90c4da 100644 --- a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md +++ b/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md @@ -3,22 +3,22 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "littlebirdnest" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " Linux Lite 6.2 发布 ====== -Linux Lite 6.2 是一个近乎完美且有用的升级,没什么太花哨的东西。 +> Linux Lite 6.2 是一个理想的升级,带来一些有用的变化,没什么太花哨的东西。 ![Linux Lite 6.2 Released][1] -Linux Lite 是一种流行的轻量级的类Windows 发行版,为用户提供熟悉的操作系统。 +Linux Lite 是一种流行的轻量级的类 Windows 发行版,为用户提供了一个熟悉的操作系统感受。 -最新版本 Linux Lite 6.2 基于 Ubuntu 22.04 LTS,对 UI 进行了各种更改以及各种bug的修复。 +最新版本 Linux Lite 6.2 基于 Ubuntu 22.04 LTS,对 UI 进行了各种更改以及各种错误的修复。 -Linux Lite 6.2:有什么新功能? +### Linux Lite 6.2:有什么新功能? ![linux lite 6.2 desktop][2] @@ -26,30 +26,32 @@ Linux Lite 6.2:有什么新功能? 一些主要亮点包括: -- **更新的图标s** -- **新壁纸** -- **Shotcut 视频编辑器** -- **删除 Microsoft Teams** -- **LibreOffice 7.3.6.2** -- **Linux 内核 5.15** +- 更新的图标 +- 新壁纸 +- Shotcut 视频编辑器 +- 删除微软 Teams +- LibreOffice 7.3.6.2 +- Linux 内核 5.15 #### Shotcut 取代 OpenShot ![linux lite 6.2 shotcut video editor][3] -是的,[Shotcut][4] 现在取代[OpenShot][5]作为 Linux Lite 6.2 上的默认视频编辑器。 +是的,[Shotcut][4] 现在取代了 [OpenShot][5],成为 Linux Lite 6.2 上的默认视频编辑器。 -OpenShot 获得了这个位置,因为它不能很好地与 Ubuntu 22.04 配合使用,而且如果没有一个好用的视频编辑器,用户将不得不自己寻找一个。 +OpenShot 之所以被删除,是因为它不能很好地与 Ubuntu 22.04 配合使用,而如果没有一个好用的视频编辑器,用户将不得不自己寻找一个。 Shotcut 无疑是一款出色的视频编辑器。所以,应该是一个不错的选择。 -#### 微软团队已删除 +#### 微软 Teams 已删除 -另一个重大变化是 Microsoft Teams 不再包含在发行版中。 +另一个重大变化是微软 Teams 不再包含在发行版中。 -其原因是微软停止了 Linux 应用程序,转而支持他们认为是进步的 Web 应用程序版本。 +其原因是微软停止了 Linux 应用程序,转而支持一个渐进式 Web 应用程序版本。 -我们之前的报道可以让您更深入地了解: +我们之前的报道可以让你更深入地了解: + +> **[微软决定放弃 Teams 的 Linux 应用,代之以渐进式Web应用](https://news.itsfoss.com/microsoft-linux-app-retire/)** #### 更新的图标和新壁纸 @@ -66,20 +68,20 @@ Linux Lite 6.2 具有最新的 [Papirus][7] 图标集以及一系列新的 Linux 其他值得注意的变化包括: - 任务管理器的更新 -- 改进了 Lite Upgrade 应用程序中的结束对话。 +- 改进了 Lite 升级应用程序中的结束对话。 - 各种应用程序的最新更新、错误修复等。 -您可以阅读完整的发行说明以[了解更多信息][9]。 +你可以阅读完整的发行说明以 [了解更多信息][9]。 -Linux Lite 6.2 似乎是对以前版本的令人满意的升级,有许多重大的变化和补充。 +Linux Lite 6.2 看起来是对以前版本的令人满意的升级,有许多重大的变化和补充。 -### 📥下载 Linux 精简版 6.2 +### 📥 下载 Linux Lite 6.2 -您可以从其官方网站下载最新的 ISO 或使用 Lite 升级工具升级到它。 +你可以从其官方网站下载最新的 ISO 或使用 Lite 升级工具升级到它。 -[Linux Lite 6.2][10] +> [Linux Lite 6.2][10] -💬您如何看待 Linux Lite 6.2?愿意试一试吗? +💬 你如何看待 Linux Lite 6.2?愿意试一试吗? -------------------------------------------------------------------------------- @@ -87,8 +89,8 @@ via: https://news.itsfoss.com/linux-lite-6-2-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[littlebirdnest](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 5530cd644223d84b0baae18f9d84f9919d034de3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 4 Nov 2022 05:02:31 +0800 Subject: [PATCH 1867/3123] P @littlebirdnest https://linux.cn/article-15212-1.html --- .../20221101.5 ⭐️ Linux Lite 6.2 Released.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20221101.5 ⭐️ Linux Lite 6.2 Released.md (98%) diff --git a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/published/20221101.5 ⭐️ Linux Lite 6.2 Released.md similarity index 98% rename from translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md rename to published/20221101.5 ⭐️ Linux Lite 6.2 Released.md index 8c5f90c4da..41d9e03f2f 100644 --- a/translated/news/20221101.5 ⭐️ Linux Lite 6.2 Released.md +++ b/published/20221101.5 ⭐️ Linux Lite 6.2 Released.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "littlebirdnest" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15212-1.html" Linux Lite 6.2 发布 ====== From 7eb612ee77bdc12a4434ca31bd5bfd0aff59f187 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 4 Nov 2022 05:42:53 +0800 Subject: [PATCH 1868/3123] R @Donkey-Hao --- ...t you need to know about compiling code.md | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/translated/tech/20221013 What you need to know about compiling code.md b/translated/tech/20221013 What you need to know about compiling code.md index 0ed6f694e3..24dbbf9fd3 100644 --- a/translated/tech/20221013 What you need to know about compiling code.md +++ b/translated/tech/20221013 What you need to know about compiling code.md @@ -3,19 +3,22 @@ [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" [#]: translator: "Donkey-Hao" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 关于编译代码你应该知道的 ====== -用这个老鼠夹比喻来理解编译代码。然后下载我们新电子书《开源开发者开发应用指导手册》。 -每个人都可以获取开源软件源代码,必须源代码要经过编译才能够运行程序。无论你是自己编写了代码,并且想要编译和运行它,还是你已经下载了某人的项目来尝试它,了解如何通过 [编译器][2] 处理源代码,以及编译器如何处理这些代码,这都很有用。 +![](https://img.linux.net.cn/data/attachment/album/202211/04/054126nec50keexencosc4.jpg) -### 创建一个更好的老鼠夹 +> 用这个方便的捕鼠器比喻来理解编译代码。 -一般情况我们不会将一个老鼠夹比作电脑,但不管你信不信,它确实与你正在使用的设备(手机或电脑)的 CPU 有一些相似之处。经典的老鼠夹有两种状态:打开或者释放。你可以认为 *打开* 是将老鼠夹设置好准备捕获老鼠,以及 *释放* 是夹子被老鼠触发。某种意义上来说,老鼠夹就像是有鼠标的电脑。你可能会想到这个代码,用虚构的语言来描述这个过程: +源代码必须要经过编译才能够运行程序,而对于开源软件,每个人都可以获取源代码。无论你是自己编写了代码,想要编译和运行它,还是下载了某人的项目来尝试它,了解如何通过 [编译器][2] 处理源代码,以及编译器如何处理这些代码,这都很有用。 + +### 创建一个更好的捕鼠器 + +一般情况我们不会将一个捕鼠器比作电脑,但不管你信不信,它确实与你正在使用的设备(手机或电脑)的 CPU 有一些相似之处。经典的捕鼠器(我说的不是 🐈)有两种状态:打开或者释放。你可以认为 *打开* 是将捕鼠器设置好准备捕获老鼠,以及 *释放* 是捕鼠器被老鼠触发。某种意义上来说,捕鼠器就像是一台有鼠标的电脑。你可以想象一下这个代码,用一种虚构的语言来描述这个过程: ``` if mousetrap == 0 then @@ -25,37 +28,37 @@ else end ``` -换句话说,你可以基于老鼠夹的状态发现是否有老鼠。当然,老鼠夹不是万无一失的,有可能有一只老鼠在老鼠夹旁边,由于老鼠还没有触发老鼠夹,所以它的状态还是 *打开* 的。因此该程序可以进行改进,这都是非常典型的。 +换句话说,你可以基于捕鼠器的状态发现是否有老鼠(数据)。当然,捕鼠器不是万无一失的,有可能有一只老鼠在捕鼠器旁边,由于老鼠还没有触发捕鼠器,所以它的状态还是 *打开* 的。因此该程序可以进行改进,这都是非常典型的。 ### 开关 -总的来说,老鼠夹就是一个开关。你会在家里使用开关打开灯。可以从开关中获得许多信息。比如,人们会从你家灯的状态了解到你是否在家。 +总的来说,捕鼠器就是一个开关。你会在家里使用开关打开灯。可以从开关中获得许多信息。比如,人们会从你家灯的状态了解到你是否在家。 你可以根据邻居家灯的状态来改变行为。如果邻居家所有的灯都熄灭了,那么请关掉你大声的音乐,因为人们可能已经上床睡觉了。 -乘以几个数量级,缩小到微观级别的 CPU 也使用这样的逻辑。当 CPU 在特定寄存器处接收到电信号时,可以触发其他一些寄存器,然后触发另一个,以此类推。如果这些寄存器有特定的意义,那么就可以通信。也许激活同一主板上某处的芯片,或者使 LED 亮起,或者改变屏幕上的像素颜色。 +CPU 也使用这样的逻辑,只不过乘以几个数量级,缩小到了微观级别。当 CPU 在特定寄存器上接收到电信号时,可以触发其他一些寄存器,然后触发另一个,以此类推。如果这些寄存器有特定的意义,那么就可以通信。也许激活同一主板上某处的芯片,或者使 LED 亮起,或者改变屏幕上的像素颜色。 -**[[ 相关阅读:2022 年可以尝试的 6 个 Python 解释程序 ]][3]** - -种瓜得瓜,种豆得豆。如果你真的想在多个位置而不是仅限于一处发现老鼠,但是你只有一个老鼠夹,那你应该开发一个应用才行。使用网络摄像头和一些基本的图像识别软件,你可以建立空厨房的模型,然后扫描变化。当老鼠进入厨房,在原先没有老鼠的图像上会有像素的变化。记录下这些数据,如果有无人机可以追踪老鼠并捕获会更好,这样就可以将老鼠赶出厨房了。这时,你通过打开和关闭信号的魔法,创造了一个更好的捕鼠器。 +种瓜得瓜,种豆得豆。如果你真的想在多个位置而不是仅限于一处发现老鼠,但是你只有一个捕鼠器,那你应该开发一个应用才行。使用网络摄像头和一些基本的图像识别软件,你可以建立空厨房的模型,然后扫描变化。当老鼠进入厨房,在原先没有老鼠的图像上会有像素的变化。记录下这些数据,如果有无人机可以追踪老鼠并捕获会更好,这样就可以将老鼠赶出厨房了。这时,你通过打开和关闭信号的魔法,创造了一个更好的捕鼠器。 ### 编译器 -代码编译器将人们可阅读的代码转换成 CPU 可以理解的机器语言。这是非常复杂的过程,因为 CPU 非常复杂(甚至比老鼠夹更加复杂),同时因为该过程比严格“需要”的更加灵活。并不是所有的编译器都很灵活。有一些编译器只有一个目标,它们只会处理固定格式的代码文件,处理过程也因此而简单明了。 +代码编译器将人们可阅读的代码转换成 CPU 可以理解的机器语言。这是非常复杂的过程,因为 CPU 非常复杂(甚至比捕鼠器更加复杂),同时因为该过程比严格“需要”的更加灵活。并不是所有的编译器都很灵活。有一些编译器只有一个目标,它们只会处理特定格式的代码文件,处理过程也因此而简单明了。 -幸运的是,现代通用编译器不简单。它们允许你编写不同语言的代码,也允许你用不同的方式链接库文件,并且可以生成运行在不同架构的文件。[GNU C 语言编译器][4](GCC) 的 `--help` 会输出超过 50 行的选项,LLVM 的 `clang` 编译器的 `--help` 输出超过 1000 行。GCC 指导手册的字数超过 10 万。当你在编译代码时会有很多选项。 +幸运的是,现代的通用编译器并不简单。它们允许你编写不同语言的代码,也允许你用不同的方式链接库文件,并且可以生成运行在不同架构上的文件。[GNU 编译器集合][4](GCC)的 `gcc` 编译器 `--help` 会输出超过 50 行的选项,LLVM 的 `clang` 编译器的 `--help` 输出超过 1000 行。GCC 指导手册的字数超过 10 万。 -当然,大多数人并不需要知道所有的选项。我从未读过 GCC 的手册页面(man page),因为它为 `Objective-C`、`Fortran` 以及我从未听说过的`芯片架构` 提供帮助。不过我重视它将代码编译为不同的架构—— 64 位或者 32 位——的能力,并且它是开源软件,这已经将其他的编译器甩在后面了。 +当你在编译代码时会有很多选项。 + +当然,大多数人并不需要知道所有的选项。我从未读过 GCC 的手册页,因为它们是针对 Objective-C、Fortran 以及我从未听说过的芯片架构的。不过我重视它将代码编译为不同的架构 —— 64 位或者 32 位 —— 的能力,以及在其他行业已经落后的计算机上运行开源软件的能力。 ### 编译生命周期 -同样重要的是,真正厉害的是理解编译代码的不同阶段。这是一个简单的 C 语言程序的生命周期: +同样重要的是,理解编译代码的不同阶段。这是一个简单的 C 语言程序的生命周期: -1、 带有宏定义的 C 源代码 `.c` 文件,会被当作 `.cpp` 文件进行预处理为 `.i` 文件。 -2、带有扩展宏定义的 C 源代码 `.i` 文件,会被 `gcc` 翻译输出 `.s` 文件。 -3、汇编语言文本文件 `.s` 会被汇编为 `.o` 文件。 -4、带有 CPU 指令的二进制目标代码,以及相对于其他目标文件和库 (\*.o) 与内存区域无关的偏移量,使用 `ld` 链接以生成可执行文件。 -5、最终的二进制文件要么包含所有需要的对象,要么设置为加载链接的动态库(\*.so 文件)。 +1. 带有宏定义的 C 源代码 `.c` 文件,用 `cpp` 预处理为 `.i` 文件。 +2. 扩展了宏定义的 C 源代码 `.i` 文件,会被 `gcc` 转译成 `.s` 文件。 +3. 以汇编语言写的文本文件 `.s` 文件被汇编为目标 `.o` 文件。 +4. 带有 CPU 指令的二进制目标代码,以及其他目标文件和库 `*.o` 文件,以内存区域无关的偏移量,使用 `ld` 链接以生成可执行文件。 +5. 最终的二进制文件要么包含所有需要的目标,要么设置以动态链接库 `*.so` 文件加载。 你可以试试这个简单示例(可能需要对库路径做一些调整): @@ -70,17 +73,17 @@ $ cpp hello.c > hello.i $ gcc -S hello.i $ as -o hello.o hello.s $ ld -static -o hello \ --L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \ -/usr/lib64/crt1.o /usr/lib64/crti.o hello.o \ -/usr/lib64/crtn.o --start-group -lc -lgcc \ --lgcc_eh --end-group + -L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \ + /usr/lib64/crt1.o /usr/lib64/crti.o hello.o \ + /usr/lib64/crtn.o --start-group -lc -lgcc \ + -lgcc_eh --end-group $ ./hello hello world ``` ### 可获得的知识 -计算机已经变得非常强大,并且用户友好。请不要走向这两种可能的极端中的任何一种:计算机不像捕鼠器和电灯开关那么简单,但它们也不是无法理解的。你可以了解编译代码、如何链接以及针对不同架构进行编译。一旦你知道了,你就可以更好地调试代码。你可以理解你下载的代码,甚至可以修复其中的一两个 `bug`。同时从理论上来讲,你可以建造一个更好的捕鼠器,或者 CPU 没有捕鼠器。由你决定。 +计算机已经变得非常强大,并且用户友好。请不要走向这两种可能的极端中的任何一种:计算机不像捕鼠器和电灯开关那么简单,但它们也不是无法理解的。你可以了解编译代码、如何链接以及针对不同架构进行编译。一旦你知道了,你就可以更好地调试代码。你可以理解你下载的代码,甚至可以修复其中的一两个错误。同时从理论上来讲,你可以建造一个更好的捕鼠器,或者用捕鼠器造一个 CPU。由你决定。 -------------------------------------------------------------------------------- @@ -89,7 +92,7 @@ via: https://opensource.com/article/22/10/compiling-code 作者:[Alan Smithee][a] 选题:[lkxed][b] 译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9b0be6e3b397363c2ea011af62e841ee58dddeed Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 4 Nov 2022 05:44:33 +0800 Subject: [PATCH 1869/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Donkey-Hao https://linux.cn/article-15213-1.html 恭喜您,成为了⭐️⭐️⭐️⭐️贡献者!非常感谢您一直以来的贡献!! --- .../20221013 What you need to know about compiling code.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221013 What you need to know about compiling code.md (98%) diff --git a/translated/tech/20221013 What you need to know about compiling code.md b/published/20221013 What you need to know about compiling code.md similarity index 98% rename from translated/tech/20221013 What you need to know about compiling code.md rename to published/20221013 What you need to know about compiling code.md index 24dbbf9fd3..88ca0a42d1 100644 --- a/translated/tech/20221013 What you need to know about compiling code.md +++ b/published/20221013 What you need to know about compiling code.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Donkey-Hao" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15213-1.html" 关于编译代码你应该知道的 ====== From d2ba31a32f341854176cf6f2794f2eef7d942e1f Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Fri, 4 Nov 2022 07:40:35 +0800 Subject: [PATCH 1870/3123] translating --- .../20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md b/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md index a411e29b73..7fcd03cbfc 100644 --- a/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md +++ b/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/upgrade-pip-packages/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 9cc216007d39236e724603c0f2d8784029e2f1a2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 4 Nov 2022 08:42:27 +0800 Subject: [PATCH 1871/3123] translated --- ...les and folders from Windows to Linux with PSCP.md | 139 ------------------ ...les and folders from Windows to Linux with PSCP.md | 139 ++++++++++++++++++ 2 files changed, 139 insertions(+), 139 deletions(-) delete mode 100644 sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md create mode 100644 translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md diff --git a/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md b/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md deleted file mode 100644 index caff6920cf..0000000000 --- a/sources/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: subject: "Transfer files and folders from Windows to Linux with PSCP" -[#]: via: "https://opensource.com/article/22/10/transfer-files-windows-linux-pscp" -[#]: author: "Paul https://opensource.com/users/plaubscher" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Transfer files and folders from Windows to Linux with PSCP -====== - -The open source PSCP utility makes it easy to transfer files and folders between Windows and Linux computers. - -Are you looking for a way to quickly transfer files from your Windows computer to your Linux computer and back again? The open source PSCP utility makes it easy to transfer files and folders, and of course it's open source. - -### Setting your PATH in Windows - -Knowing how to set your command path in Windows makes it easier to use a handy utility like PSCP. If you're unfamiliar with that process, read [how to set a PATH on Windows][1]. - -### Using PSCP - -PSCP (PuTTY Secure Copy Protocol) is a command-line tool for transferring files and folders from a Windows computer to a Linux computer. - -- Download `pscp.exe` from its [website][2]. -- Move `pscp.exe` to a folder in your PATH (for example, `Desktop\App` if you followed the PATH tutorial here on [Opensource.com][3]). If you haven't set a PATH variable for yourself, you can alternately move `pscp.exe` to the folder holding the files you're going to transfer. -- Open Powershell on your Windows computer using the search bar in the Windows taskbar (type 'powershell` into the search bar.) -- Type `pscp –version` to confirm that your computer can find the command. - -### IP address - -Before you can make the transfer, you must know the IP address or fully-qualified domain name of the destination computer. Assuming it's a computer on your same network, and that you're not running a DNS server to resolve computer names, you can find the destination IP address using the `ip` command on the Linux machine: - -``` -[linux]$ ip addr show |grep'inet ' -inet 127.0.0.1/8 scope host lo -inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 -``` - -In all cases, 127.0.0.1 is a loopback address that the computer uses only to talk to itself, so in this example the correct address is 192.168.1.23. On your system, the IP address is likely to be different. If you're not sure which is which, you can try each one in succession until you get the right one (and then write it down somewhere!) - -Alternately, you can look in the settings of your router, which lists all addresses assigned over DHCP. - -### Firewalls and servers - -The `pscp` command uses the OpenSSH protocol, so your Linux computer must be running the OpenSSH server software, and its firewall must allow SSH traffic. - -If you're not sure whether your Linux machine is running SSH, then run this command on the Linux machine: - -``` -[linux]$ sudo systemctl enable--now sshd -``` - -To ensure your firewall allows SSH traffic, run this command: - -``` -[linux]$ sudo firewall-cmd --add-servicessh--permanent -``` - -For more information on firewalls on Linux, read [Make Linux stronger with firewalls][4]. - -### Transfer the file - -In this example, I have a file called `pscp-test.txt` that I want to transfer from `C:\Users\paul\Documents` on my Windows computer to my destination Linux computer home directory `/_home_/paul`. - -Now that you have the `pscp` command and the destination address, you're ready to transfer the test file `pscp-test.txt`. Open Powershell and use the `dir` command to change to the `Documents` folder, where the sample file is located: - -PS> dir %USERPROFILE%\Documents\ - -Now execute the transfer: - -``` -PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul| Password: -End of keyboard-interactive prompts from server -pscp-test.txt |0 kb |0.0 kB/s | ETA: 00:00:00 |100% -``` - -Here's the syntax, word for word: - -- `pscp`: The command used to transfer the file. -- `pscp-test.txt` is the name of the file you want to transfer from Windows. -- `paul@192.168.1.23` is my username on the Linux computer, and the IP address of the Linux computer. You must replace this with your own user and destination information. Notice that `pscp` requires a destination path on the target computer, and `:/home/paul` at the end of the IP address specifies that I want the file copied to my home folder. - -After you authenticate to the Linux computer, the `pscp-test.txt` file is transferred to the Linux computer. - -### Verifying the transferred - -On your Linux computer, open a terminal and use the `ls` command to verify that the file `pscp-test.txt` appears in your home directory. - -``` -[linux]$ ls -Documents -Downloads -Music -Pictures -pscp-test.txt -``` - -### Copying a file off of a Linux system - -You aren't limited to just copying files to your Linux system. With `pscp`, you can also copy a file from Linux onto Windows. The syntax is the same, only in reverse: - -``` -PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt -``` - -Here's the syntax: - -- `pscp`: The command used to transfer the file. -- `paul@192.168.1.23:/home/paul/pscp-test.txt` is my username on the Linux computer, the IP address of the Linux computer, and the path to the file I want to copy. -- `%USERPROFILE%\Documents` is the location on my Windows computer where I want to save the file. Notice that in copying the file back to my Windows computer, I can give it a new name, such as `pscp-win.txt`, to differentiate it from the original. You don't have to rename the file, of course, but for this demonstration it's a useful shortcut. - -Open your file manager to verify that the `pscp-win.txt` file was copied to the Windows `C:\Users\paul\Documents` path from the Linux computer. - -![Image of a file manager.][5] - -### Remote copying - -With the power of the open source `pscp` command, you have access to any computer in your house, and servers you have accounts on, and even mobile and [edge devices][6]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp - -作者:[Paul][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/plaubscher -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/22/10/set-path-powershell -[2]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html -[3]: http://Opensource.com -[4]: https://opensource.com/article/19/7/make-linux-stronger-firewalls -[5]: https://opensource.com/sites/default/files/2022-10/Filemanager.pscp_.png -[6]: https://opensource.com/tags/edge-computing diff --git a/translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md b/translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md new file mode 100644 index 0000000000..3a058f58d1 --- /dev/null +++ b/translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md @@ -0,0 +1,139 @@ +[#]: subject: "Transfer files and folders from Windows to Linux with PSCP" +[#]: via: "https://opensource.com/article/22/10/transfer-files-windows-linux-pscp" +[#]: author: "Paul https://opensource.com/users/plaubscher" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 PSCP 将文件和文件夹从 Windows 传输到 Linux +====== + +开源 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。 + +你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法?开源 PSCP 程序可以轻松传输文件和文件夹,当然它是开源的。 + +### 在 Windows 中设置 PATH + +了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程,请阅读[如何在 Windows 上设置 PATH][1]。 + +### 使用 PSCP + +PSCP(PuTTY 安全复制协议)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。 + +- 从[网站][2]下载 `pscp.exe`。 +- 将 `pscp.exe` 移动到 PATH 中的文件夹(例如,如果你按照 [Opensource.com][3] 上的 PATH 教程进行操作,则为 `Desktop\App`)。如果你没有设置 PATH 变量,你也可以将 `pscp.exe` 移动到保存要传输的文件的文件夹中。 +- 使用 Windows 任务栏中的搜索栏在 Windows 计算机上打开 Powershell(在搜索栏中输入 `powershell`。) +- 输入 `pscp –version` 以确认你的计算机可以找到该命令。 + +### IP 地址 + +在进行传输之前,你必须知道目标计算机的 IP 地址或完全限定域名。假设它是同一网络上的计算机,并且你没有运行 DNS 服务器来解析计算机名称,你可以在 Linux 机器上使用 `ip` 命令找到目标 IP 地址: + +``` +[linux]$ ip addr show |grep'inet ' +inet 127.0.0.1/8 scope host lo +inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 +``` + +在所有情况下,127.0.0.1 都是计算机仅用于与自身通信的环回地址,因此在此示例中,正确的地址是 192.168.1.23。在你的系统上,IP 地址可能不同。如果你不确定哪个是哪个,你可以连续尝试每个,直到找到正确的(然后在某处写下来!) + +或者,你可以查看路由器的设置,其中列出了通过 DHCP 分配的所有地址。 + +### 防火墙和服务器 + +`pscp` 命令使用 OpenSSH 协议,因此你的 Linux 计算机必须运行 OpenSSH 服务器软件,并且防火墙必须允许 SSH 流量。 + +如果你不确定你的 Linux 机器是否正在运行 SSH,请在 Linux 机器上运行以下命令: + +``` +[linux]$ sudo systemctl enable--now sshd +``` + +要确保你的防火墙允许 SSH 流量,请运行以下命令: + +``` +[linux]$ sudo firewall-cmd --add-servicessh--permanent +``` + +有关 Linux 上的防火墙的更多信息,请阅读[使用防火墙使 Linux 更强大][4]。 + +### 传输文件 + +在这个例子中,我有一个名为 `pscp-test.txt` 的文件,我想将它从我的 Windows 计算机上的 `C:\Users\paul\Documents` 传输到我的目标 Linux 计算机主目录 `/_home_/paul`。 + +现在你已经有了 `pscp` 命令和目标地址,你可以传输测试文件 `pscp-test.txt`。打开 Powershell 并使用 `dir` 命令切换到示例文件所在的 `Documents` 文件夹: + +PS> dir %USERPROFILE%\Documents\ + +现在执行传输: + +``` +PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul| Password: +End of keyboard-interactive prompts from server +pscp-test.txt |0 kb |0.0 kB/s | ETA: 00:00:00 |100% +``` + +这是语法,逐字逐句来: + +- `pscp`:用于传输文件的命令。 +- `pscp-test.txt` 是你要从 Windows 传输的文件的名称。 +- `paul@192.168.1.23` 是我在 Linux 计算机上的用户名,以及 Linux 计算机的 IP 地址。你必须将其替换为你自己的用户和目的地信息。请注意,`pscp` 需要目标计算机上的目标路径,而 IP 地址末尾的 `:/home/paul` 指定我希望将文件复制到我的主文件夹。 + +对 Linux 计算机进行身份验证后,`pscp-test.txt` 文件将传输到 Linux 计算机。 + +### 验证已传输 + +在你的 Linux 计算机上,打开终端并使用 `ls` 命令验证文件 `pscp-test.txt` 是否出现在您的主目录中。 + +``` +[linux]$ ls +Documents +Downloads +Music +Pictures +pscp-test.txt +``` + +### 从 Linux 系统复制文件 + +你不仅限于将文件复制到 Linux 系统。使用 `pscp`,你还可以将文件从 Linux 复制到 Windows。语法是一样的,只是反过来: + +``` +PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt +``` + +这是语法: + +- `pscp`:用于传输文件的命令。 +- `paul@192.168.1.23:/home/paul/pscp-test.txt` 是我在 Linux 计算机上的用户名、Linux 计算机的 IP 地址,以及我要复制的文件的路径。 +- `%USERPROFILE%\Documents` 是我的 Windows 计算机上我要保存文件的位置。 请注意,在将文件复制回我的 Windows 计算机时,我可以给它一个新名称,例如 `pscp-win.txt`,以区别于原始文件。 当然,你不必重命名文件,但对于本演示来说,它是一个有用的快捷方式。 + +打开文件管理器以验证 `pscp-win.txt` 文件是否已从 Linux 计算机复制到 Windows `C:\Users\paul\Documents` 下。 + +![Image of a file manager.][5] + +### 远程复制 + +借助开源 `pscp` 命令的强大功能,你可以访问家中的任何计算机、拥有帐户的服务器,甚至是移动设备和[边缘设备][6]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp + +作者:[Paul][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/plaubscher +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/10/set-path-powershell +[2]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html +[3]: http://Opensource.com +[4]: https://opensource.com/article/19/7/make-linux-stronger-firewalls +[5]: https://opensource.com/sites/default/files/2022-10/Filemanager.pscp_.png +[6]: https://opensource.com/tags/edge-computing From 7088bfa52e51a8eb1ca186361f9aa1d574af646a Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 4 Nov 2022 08:53:42 +0800 Subject: [PATCH 1872/3123] translating --- ...⭐️ How to Trim a Video in VLC Player [If You Really Want to].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md b/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md index 83b730942d..16e58bc5ff 100644 --- a/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md +++ b/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/vlc-trim-video/" [#]: author: "Sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 01523250cdb2bdc1b993b614b478a84f097668ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:09:55 +0800 Subject: [PATCH 1873/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Enable?= =?UTF-8?q?=20=E2=80=98Dark=20Mode=E2=80=99=20in=20LibreOffice.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to Enable ‘Dark Mode’ in LibreOffice.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md diff --git a/sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md b/sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md new file mode 100644 index 0000000000..6013077195 --- /dev/null +++ b/sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md @@ -0,0 +1,99 @@ +[#]: subject: "How to Enable ‘Dark Mode’ in LibreOffice" +[#]: via: "https://www.debugpoint.com/how-to-enable-dark-mode-libreoffice/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Enable ‘Dark Mode’ in LibreOffice +====== + +**Tutorial for you on how to enable dark mode in LibreOffice in Ubuntu, Linux and Windows systems.** + +[LibreOffice,][1]the free and open-source office productivity software, is used by millions worldwide. This cross-platform software runs on Windows, Linux, and other distributions. + +Millions of users around the world use LibreOffice. Probably that includes you. And everyone seems to prefer dark mode these days. And there are some advantages as well. + +Research suggests that dark mode protects eyes for extended use of mobiles and computers and saves a bit of battery as well, especially for AMOLED displays. That’s not all, dark mode makes the text looks crisp and clear and improves productivity. + +Dark mode can be enabled for apps and system-wide as well if your system – Linux or Windows supports it. + +LibreOffice doesn’t provide a direct dark mode, per se. But you can tweak some settings with its dark icon themes to make it dark with the help of your OS settings. This is how you can do it. Remember these settings should also be applicable for Windows, Linux, and macOS from LibreOffice’s perspective. + +### How to Enable Dark Mode in LibreOffice + +We will explain it in two steps – a) **Windows** and b) **Linux**. Because for both the OS, LibreOffice look different due to their OS-specific own dark themes. + +##### Windows + +The dark mode will look a bit different if you use Windows. Windows 10 doesn’t provide application-specific dark mode at the moment. The Windows 10 dark mode is limited to the start menu and certain applications (such as Google Chrome Windows build). + +- Open LibreOffice. Open any component – Writer, Calc etc. +- From the menu, click on `Tools -> Options`. +- On the Options dialog, on the left side, click on `Personalization`. + +![][2] + +- Select the `pre-installed` theme – dark. +- Go to Application Colors, and select the document background as Black. You can also choose the Application background as Black. +- If you want to change to a dark theme, change it from the View options on the left. + +![][3] + +Once done, press OK. + +That’s all. Enjoy your dark or night mode of LibreOffice in Windows. + +If everything works well, you will see the Writer or Calc like below. + +![LibreOffice Writer in dark mode in Windows][4] + +![LibreOffice Calc in dark mode in LibreOffice][5] + +##### Ubuntu, Linux + +- Open LibreOffice. Open any component – Writer, Calc etc. +- From the menu, click. `Tools -> Options`. +- Go to Application Colors, and select the `document background` as `Black`. You can also choose the `Application background` as `Black`. +- If you want to change to a dark icon theme, change it from the View options on the left for better visibility of the toolbar icons. I recommend selecting any of the icon themes with the name “dark” – see below. + +![Changing Application Colours Settings in LibreOffice][6] + +![Select a dark icon theme for LibreOffice][7] + +- Then, from Settings, select any dark GTK theme (e.g. Adwaita Dark) and apply. LibreOffice is more compatible with Ubuntu. Hence the GTK dark themes are correctly applied. +- If you are using the latest Ubuntu, Fedora, then select `Settings > Appearance > Dar`k. This will apply systems wide dark theme and applies automatically to LibreOffice. +- For other desktops, such as KDE Plasma and Xfce – select any applicable dark theme for your desktop, and you should be good. + +That’s all. Your LibreOffice should look like the one below. + +![LibreOffice Writer in Ubuntu][8] + +![LibreOffice in dark mode in Ubuntu][9] + +**Do you like this dark mode? Let us know in the comments.** + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/how-to-enable-dark-mode-libreoffice/ + +作者:[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]: http://www.libreoffice.org +[2]: https://www.debugpoint.com/wp-content/uploads/2020/01/Dark-theme.png +[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/app-background.png +[4]: https://www.debugpoint.com/wp-content/uploads/2020/01/Writer-in-Dark-theme.png +[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Calc-in-dark-mode.png +[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/Changing-Application-Colours-Settings-in-LibreOffice.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Select-a-dark-icon-theme-for-LibreOffice.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/LibreOffice-Writer-in-Dark-Mode-in-Ubuntu-Linux.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/01/LibreOffice-in-dark-mode-in-Ubuntu-1024x578.jpg From e465c5eef01bcb0f1d6ee983ebd9b08186eece38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:12:01 +0800 Subject: [PATCH 1874/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Make=20?= =?UTF-8?q?LibreOffice=20Look=20Like=20Microsoft=20Office.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Make LibreOffice Look Like Microsoft Office.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md diff --git a/sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md b/sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md new file mode 100644 index 0000000000..efc97c43b2 --- /dev/null +++ b/sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md @@ -0,0 +1,112 @@ +[#]: subject: "How to Make LibreOffice Look Like Microsoft Office" +[#]: via: "https://www.debugpoint.com/libreoffice-like-microsoft-office/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Make LibreOffice Look Like Microsoft Office +====== + +**We attempted to make the LibreOffice suite look like Microsoft Office. Is it possible? Let’s find out.** + +[LibreOffice][1] is a free and open-source office productivity suite that provides you with a complete collection of applications. It consists of a Word processor (Writer), a spreadsheet program (Calc), Presentation (Impress), and a drawing program (Draw). It also gives you a stand-alone database system LibreOffice Base while LibreOffice Math is a program that helps students and researchers write formulas and equations. + +While the widely used [Microsoft Office][2] is a paid office productivity suite that gives you excellent programs to perform almost all tasks related to study, office, and enterprise usage. + +Adopting LibreOffice is sometimes difficult compared to Microsoft Office – although most of the menu items and tools are the same. Both programs are different, but their objective is the same in terms of functionality. Due to its popularity, Microsoft office is used widely and is well-known to users. However, many users prefer the free LibreOffice for their work and activities. + +That said, if you can make LibreOffice look like Microsoft Office, it is much easier for first-time users to adopt – mostly coming from a Microsoft Office background. The look and feel play a big part in users’ minds, including their muscle memory, familiarity with colours, and menu items. + +Of course, you can not make it exactly like Microsoft Office because of the different icons, fonts, etc. However, you can make it look up to a certain amount. + +### Make LibreOffice Look Like Microsoft Office + +#### 1. User Interface changes + +LibreOffice has a “Ribbon” style toolbar called Tabbed Bar. However, it has many toolbar options (see below). For this guide, I have used the Tabbed bar option. + +- Open LibreOffice and go to `Menu > View > User Interface`. +- Select `Tabbed` from the UI Section. + +![tabbed bar option][3] + +- Click on Apply to All. +- LibreOffice also provides an option to apply the toolbar type-specific to Writer or Calc. If you want a different toolbar type, you can choose that way. But I would recommend using the Apply to All to make it consistent. + +- Now you should have the Microsoft Office-style Ribbon. Although they are not precisely the same, you get the feel of it. + +#### 2. Microsoft Office Icons for LibreOffice + +The Icons in the toolbar play a big part in your workflow. LibreOffice provides some nice icons for your toolbar. The best ones are the – + +- Karasa Jaga +- Colibre +- Elementary + +For this guide, we will use Office 2013 icon set, which an author develops. It is available in Devian Art. + +- Go to the below link and download the LibreOffice extension file (*.oxt). For the newer versions of LibreOffice, you need to use extension files to install icon sets. + +[download office 2013 icon sets for libreoffice][4] + +- After downloading, double-click the .oxt file to open. Or, press CTRL+ALT+E to open the Extension Manager and select the downloaded .oxt file using the Add button. Close the window once done. + +![Import icon sets in Extension Manager][5] + +- Now go to `Tools > Options > View`. From the Icon style, choose Office 2013. + +- Change the icon size via `Icon Size > Notebookbar > Large`. If you feel the icons are small, you can change them. However, I think to make it more Office-like, the large settings work better. + +![Change icons in Options][6] + +And that’s it. Your LibreOffice installation should look like this. + +![Making LibreOffice look like Microsoft Office in KDE Plasma][7] + +![Making LibreOffice look like Microsoft Office in Windows 10][8] + +![Making LibreOffice look like Microsoft Office in GNOME][9] + +Remember, the looks may be different if you are using Ubuntu, KDE Plasma, or any Linux distribution. But I think it looks closer to Microsoft Office in KDE Plasma than GNOME. LibreOffice doesn’t look good in GTK-based systems at the moment. + +In Windows, however, it looks better because it uses a system font and colour palette. + +These are some settings that you can use. However, you can play around with more customizations, icons, and themes as you wish. If you fancy dark mode in LibreOffice, you may want to read our tutorial – on [how to enable dark mode in LibreOffice][10]. + +### Closing Notes + +Microsoft Office is undoubtedly the market leader in the Office productivity space. There is a reason for it, it comes with decades of development, and it’s not a free product. The latest Office 365 Home usage price is around ~7 USD per month for 3 to 4 devices, which is a bit pricy if you ask me. + +Whereas LibreOffice is free and community-developed and headed by The Document Foundation. It is not trying to be Microsoft Office, but it allows millions of users, schools, non-profits, colleges, and students to work and learn using a free office suite. Hence, the development is slower, and features arrive late. + +Hence, it is beneficial if it can mimic the basic look and feel to make it like Microsoft Office to increase LibreOffice’s adoption. And I hope this guide serves a little purpose in that direction. + +[Link: Official Feature comparison between LibreOffice and Microsoft Office.][11] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/libreoffice-like-microsoft-office/ + +作者:[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]: http://libreoffice.com +[2]: http://office.com +[3]: https://www.debugpoint.com/wp-content/uploads/2021/06/tabbed-bar-option.jpg +[4]: https://www.deviantart.com/users/outgoing?https://1drv.ms/u/s!ArgKmgFcmBYHhSQkPfyMZRnXX5LJ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/06/Import-icon-sets-in-Extension-Manager.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/06/Change-icons-in-Options-1024x574.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-KDE-Plasma.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-Windows-10.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-GNOME.jpg +[10]: https://www.debugpoint.com/how-to-enable-dark-mode-libreoffice/ +[11]: https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office From 633bc2f02763bb303f5750c1674c5a29353e0ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:12:25 +0800 Subject: [PATCH 1875/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.2=20=E2=AD=90=EF=B8=8F=20Upgrade=20to=20Lat?= =?UTF-8?q?est=20LibreOffice=20in=20Ubuntu,=20Linux=20Mint=20and=20Windows?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...breOffice in Ubuntu, Linux Mint and Windows.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md diff --git a/sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md b/sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md new file mode 100644 index 0000000000..f2b7a88691 --- /dev/null +++ b/sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md @@ -0,0 +1,113 @@ +[#]: subject: "Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows" +[#]: via: "https://www.debugpoint.com/libreoffice-upgrade-update-latest/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows +====== + +**This beginner’s guide explains the steps required to upgrade to the latest LibreOffice in Ubuntu, Linux Mint****and Windows.** + +![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][1] + +[LibreOffice][2], used by millions of users worldwide, is the most popular free office suite today. It consists of a spreadsheet program (Calc), document processor (Writer), presentation (Impress), drawing (Draw), and Math module to help you with most of the office, business, academic, and day-to-day work. + +LibreOffice can act as an excellent replacement for paid Microsoft Office suite due to its compatibility with proprietary file formats such as DOCX, PPTX, and XLSX. It is a fork of the Apache OpenOffice productivity suite and is actively developed by thousands of global contributors. + +![LibreOffice Logo][3] + +### Upgrade to Latest LibreOffice + +LibreOffice recently changed its versioning methods from the Fresh and Still concept. Now, LibreOffice has a **community** edition and a recommended **enterprise** edition. This is because many businesses use the latest LibreOffice version with cutting-edge features, hampering the development effort. Hence the team suggested the business users get paid support from official LibreOffice partners for long-term support. You can read the blog post [here][4]. + +That said, here are the current versions. + +#### Latest LibreOffice Versions + +- The current LibreOffice Community version series is **LibreOffice 7.4.x.** +- And the LibreOffice stable recommended version for business is **LibreOffice 7.3.x**. + +#### Upgrade to Latest LibreOffice in Ubuntu, Linux Mint, and Other Ubuntu Based distributions + +[Ubuntu 22.04 LTS Jammy Jellyfish][5] have LibreOffice 7.3.x. + +**Ubuntu 20.04 LTS** has LibreOffice 6.4.7 at the moment, and soon it will get the update for the next iteration. + +**Ubuntu 18.04 LTS,** supported until[April 2023][6], has the LibreOffice 6.2 version. Linux Mint 19.x also provides the same. You can still download and install LibreOffice 6.3.x version in Ubuntu 18.04 or Linux Mint 19.x. + +It is always wiser to stick to the LibreOffice version provided by the distribution. Moreover, unless you need the latest features, you should not upgrade. If you like to experiment, you can go ahead. + +##### Via PPA + +- You can install and upgrade to the latest Fresh version using the official LibreOffice PPA. Open a terminal and run the below commands in Ubuntu or Linux Mint. + +``` +sudo add-apt-repository ppa:libreoffice/ppa +``` + +``` +sudo apt update && sudo apt install libreoffice +``` + +- To **downgrade** LibreOffice and remove the PPA, run the below commands from the terminal sequentially. + +``` +sudo add-apt-repository --remove ppa:libreoffice/ppa +``` + +``` +sudo apt install ppa-purge && sudo ppa-purge ppa:libreoffice/ppa +``` + +##### Via Snap + +You can also have the option to install the latest LibreOffice as Snap via the below option. [Snap packages][7] can be used across supported Linux distributions as a standalone package. Thus, you can keep your existing installation of LibreOffice and still run the latest Snap version. + +Remember that technically you can run two versions of LibreOffice in parallel using one Snap version. However, ensure there might be slight file association issues and other problems. This applies to Flatpak as well. + +[Download LibreOffice as Snap][8] + +##### Via Flatpak + +Flatpak is another way by which you can have the latest LibreOffice alongside the distro-provided version. You can [set up your system for Flatpak][9] and download LibreOffice via the below link. + +[Download LibreOffice as Flatpak][10] + +#### Upgrade for Windows + +For Windows, you can’t upgrade directly from the existing installation. You can download the latest LibreOffice from [this page][11] and do the installation. During installation, your existing version would be uninstalled. + +### Upgrade Troubleshooting + +If you encounter any problems or system instability after the upgrade, it is better to do a clean install. So, you can download the latest copy from [this link][11] and install it. If you are using Ubuntu or Linux Mint, don’t forget to remove the stock version first before installing the latest version. + +Finally, drop a comment below if you face issues while upgrading to the latest LibreOffice in Ubuntu Linux and others. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ + +作者:[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/2019/09/LibreOffice-7.3.x-Community-Edition-in-Ubuntu-22.04-LTS-Jammy-Jellyfish.jpg +[2]: https://www.libreoffice.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2019/09/LibreOffice-Icon.png +[4]: https://blog.documentfoundation.org/blog/2021/02/03/libreoffice-7-1-community/ +[5]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/ +[6]: https://www.debugpoint.com/ubuntu-release-dates-wiki/ +[7]: https://www.debugpoint.com/2016/07/how-to-install-and-use-snap-packages-in-ubuntu/ +[8]: https://snapcraft.io/libreoffice +[9]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[10]: https://flathub.org/apps/details/org.libreoffice.LibreOffice +[11]: https://www.libreoffice.org/download/download/ From 35d0fbf1f0052f00e5075cc0b808cf0586b4fc15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:13:00 +0800 Subject: [PATCH 1876/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.3=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20Latest=20LibreOffice=20in=20Ubuntu=20and=20other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atest LibreOffice in Ubuntu and other Linux.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md diff --git a/sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md b/sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md new file mode 100644 index 0000000000..79b939b88d --- /dev/null +++ b/sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md @@ -0,0 +1,134 @@ +[#]: subject: "How to Install Latest LibreOffice in Ubuntu and other Linux" +[#]: via: "https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Latest LibreOffice in Ubuntu and other Linux +====== + +**Here’s a quick guide on how to install the latest LibreOffice version in Ubuntu and other Linux.** + +The free and open-source office suite LibreOffice comes in two versions. The Community and Enterprise versions. The “community” version is for early adopters who want the latest bleeding-edge software tech. And the “enterprise” version is more stable and may not include all the latest features, but it is ideal for the production environment and professional work. + +### Install Latest LibreOffice in Ubuntu and other Linux + +#### 1. Remove pre-installed LibreOffice + +The Ubuntu operating system and other Linux ideally come with pre-installed LibreOffice. That might not be the latest one because of the distribution-specific release cycles. However, before you do a fresh install, you can remove the stock version of LibreOffice in Ubuntu and its related derivatives via the below command: + +Open a terminal and run the below commands to remove the installed LibreOffice in Ubuntu and related distributions. For others, you can use your distro’s package manager to remove it. + +``` +sudo apt remove –purge libreoffice* +sudo apt autoclean +sudo apt autoremove +``` + +Do a reboot to ensure everything is okay (though you could skip this step). + +#### 2. Install via download + +Go to the [official download page][1]. And download the “Fresh” version by choosing the type from the drop-down. For Ubuntu and other derivatives, choose the .deb file. + +![LibreOffice download and install from official website][2] + +After downloading, extract the files; you should see all the packages below. + +![Extracted LibreOffice DEB files][3] + +Now, open a terminal at the extracted files’ exact location and run the commands below in sequence. Firstly, you need to install the `ure` package. The second is the `core` package and followed by all the basic packages. Finally, the main `LibreOffice` packages. A typical set of commands are present below. You need to change the version numbers for other releases. + +``` +sudo dpkg -i libobasis7.0-ure_7.0.4.2-2_amd64.deb +sudo dpkg -i libobasis7.0-core_7.0.4.2-2_amd64.deb +sudo dpkg -i libobasis7.0* +``` + +``` +sudo dpkg -i libreoffice7.0* +``` + +If you are using Fedora Linux or Red Hat Linux, use the [dnf command][4] to install in the same order as mentioned above. + +![Install LibreOffice via dpkg][5] + +Wait for the installation to finish. After completion, you can find LibreOffice via the application menu. + +![Latest LibreOffice in Menu][6] + +This should complete the steps to install the latest LibreOffice. If you don’t want to follow the above method, see the below options. + +#### Install via PPA + +If you like to install it via PPA, then follow the below steps. Make sure to remove the existing LibreOffice in step 1 above. + +``` +sudo add-apt-repository ppa:libreoffice/ppa +``` + +And finally, run the below commands to install the latest LibreOffice 5.4 series from this official PPA. + +``` +sudo apt update +sudo apt install libreoffice +``` + +Once installed, you can launch LibreOffice via Dash search. + +![LibreOffice 5.4.2 Running in Ubuntu][7] + +#### Install via Snap and Flatpak + +If you are a Linux user, you may try the LibreOffice self-contained executable, which runs in a sandbox like Snap or Flatpak. + +- To install LibreOffice via [Flatpak][8], visit [this page][9] to set it up and then run the below command to install it. + +``` +flatpak install flathub org.libreoffice.LibreOffice +``` + +- Similarly, for the [Snap version][10], use the following command to install. + +``` +sudo snap install libreoffice +``` + +### How can I upgrade to the latest LibreOffice version? + +If you do not want to remove LibreOffice but want to upgrade to the latest version, please read our complete guide below. + +> [Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows][11] + +![“Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows” — DebugPoint.com][12] + +Feel free to comment if you are having trouble installing the latest LibreOffice. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ + +作者:[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.libreoffice.org/download/download/ +[2]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-download-and-install-from-official-website.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2017/10/Extracted-LibreOffice-DEB-files.jpg +[4]: https://www.debugpoint.com/dnf-commands-examples/ +[5]: https://www.debugpoint.com/wp-content/uploads/2017/10/Install-LibreOffice-via-dpkg.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2017/10/Latest-LibreOffice-in-Menu.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-5.4.2-Running-in-Ubuntu-.png +[8]: https://flathub.org/apps/details/org.libreoffice.LibreOffice +[9]: https://flatpak.org/setup/ +[10]: https://snapcraft.io/libreoffice +[11]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ +[12]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/embed/#?secret=KINquNxuYI#?secret=FGij1s6Mfc From 00ae019e52d34fb191e9e03b3c02dc95b365be1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:13:25 +0800 Subject: [PATCH 1877/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.4=20=E2=AD=90=EF=B8=8F=20How=20to=20Remove?= =?UTF-8?q?=20Firefox=20Snap=20from=20Ubuntu=20(21.10=20+).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o Remove Firefox Snap from Ubuntu (21.10 +).md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md diff --git a/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md new file mode 100644 index 0000000000..657c6e0b34 --- /dev/null +++ b/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md @@ -0,0 +1,131 @@ +[#]: subject: "How to Remove Firefox Snap from Ubuntu (21.10 +)" +[#]: via: "https://www.debugpoint.com/remove-firefox-snap-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Remove Firefox Snap from Ubuntu (21.10 +) +====== + +**Ubuntu 21.10 Impish Indri and the following versions make Firefox Snap a default browser. If you don’t like Snap, this is how you can remove it and use the stock version.** + +There is always a debate about whether Snap is a better alternative to apt. And many users prefer it for their system, and some hates snap to its core. Ubuntu and Canonical consider it as one of the best installation repositories and package management tools for Linux. The primary reason Snap is hated is its slow startup time. However, that argument is for another article. + +### Remove Firefox Snap version from Ubuntu + +So, if you haven’t [heard the story][1], Ubuntu 21.10 (and all subsequent versions) ships Firefox as a Snap package by default. So, when you install Ubuntu 21.10 onwards, the default left-dock shortcut is a snap version of Firefox. And you can verify it using the various methods below. + +![snap list - Firefox][2] + +![Firefox snap desktop shortcut][3] + +If you don’t like Snap due to its [performance, and][4]storage issues, you can remove it via the following commands. + +- Close all the Firefox instances if open. + +- Open a terminal. Then run the below command. + +``` +sudo snap remove firefox +``` + +- Wait for the command to complete. This will remove the snap executables from your system and disconnect Firefox from various system services. But the home snap directory will still be there. You can manually remove that using the below command. + +``` +cd ~/snaprm -r firefox +``` + +### Install Firefox Alternative Methods + +Now, as you removed Firefox, you have the following options to use this browser. + +#### Method 1 – Use PPA (Recommended) + +- Before using this method, make sure to remove the snap version of Firefox as mentioned above. +- There is an [official PPA for Firefox][5], maintained by its development team. You can add this PPA to your software sources and use it to install the latest Firefox. +- Make sure to create a file using a text editor to create a preference file to stop Ubuntu from pickup the snap version of Firefox while running the apt update command. + +``` +sudo gedit /etc/apt/preferences.d/firefox-no-snap +``` + +- Add the following lines to the above file and save it. + +``` +Package: firefox*Pin: release o=Ubuntu*Pin-Priority: -1 +``` + +- Use the following commands in sequence. The first command removes it from your system completely. + +``` +sudo apt purge firefox +sudo add-apt-repository ppa:mozillateam/firefox +sudo apt-get update +sudo apt install firefox +``` + +- After installation is finished, make sure to enable the auto-upgrade using the command below. + +``` +echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox +``` + +- Restart your system (optional) and enjoy the deb version of Firefox. + +#### Method 2 – Use the compressed executable of Firefox + +- You can download the compressed Firefox executable for Ubuntu and other Linux from the official website (link below). Then extract it and double-click to run the firefox executable. This is the safest approach. You can still get updates if you use this method. + +[Download Firefox][6] + +![Download Firefox and Extract][7] + +![And then run the executable][8] + +#### Method 3 – Use Flatpak for Firefox + +- You can also use the [Flatpak version of Firefox][9], which is available below after [setting up Ubuntu for Flatpak][10]. Then you can run the below command to install. + +``` +flatpak install flathub org.mozilla.firefox +``` + +#### Method 4 – Use Snap with less system coupling with Firefox + +- If you think you can still continue with the Snap version but want less sandboxing in your system, then you may want to reinstall Firefox using the below command with a [classic switch][11]. + +``` +sudo snap install firefox --classic +``` + +### Closing Notes + +So, this is the step to remove the firefox snap version from Ubuntu 21.10 onwards. And some alternatives. I am inquisitive to find out what step Linux Mint takes, as they don’t go well with Snap. Also, those distros depend on Ubuntu upstream repo for Firefox, It’s interesting to see what they will do. Debian maintains its own repo, but it’s mostly the ESR version. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ + +作者:[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://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1943840 +[2]: https://www.debugpoint.com/wp-content/uploads/2021/09/snap-list-Firefox.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Firefox-snap-desktop-shortcut-1024x490.jpg +[4]: https://www.debugpoint.com/2021/03/clean-up-snap/ +[5]: https://launchpad.net/~mozillateam/+archive/ubuntu/ppa +[6]: https://www.mozilla.org/en-US/firefox/new/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Download-Firefox-and-Extract.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/09/And-then-run-the-executable.jpg +[9]: https://flathub.org/apps/details/org.mozilla.firefox +[10]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[11]: https://snapcraft.io/docs/snap-confinement From 46ff33cb382bce813738376b955e3dd29e2dc535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:14:15 +0800 Subject: [PATCH 1878/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221104.5=20=E2=AD=90=EF=B8=8F=20Gitpod,=20An=20Ope?= =?UTF-8?q?n=20Source=20Developer=20Platform,=20Obtains=20$25M.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pen Source Developer Platform, Obtains $25M.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md diff --git a/sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md b/sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md new file mode 100644 index 0000000000..f9bbd27d95 --- /dev/null +++ b/sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md @@ -0,0 +1,44 @@ +[#]: subject: "Gitpod, An Open Source Developer Platform, Obtains $25M" +[#]: via: "https://www.opensourceforu.com/2022/11/gitpod-an-open-source-developer-platform-obtains-25m/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Gitpod, An Open Source Developer Platform, Obtains $25M +====== + +![open srs2][1] + +The new category created by the corporation is intended to increase productivity among the most expensive and in-demand workers for businesses: developers. + +Gitpod GmbH, a start-up open source developer platform, revealed today that it has raised $25 million in fresh funding to establish a new category it calls cloud development environments. + +The Series A investment was led by Tom Preston-Werner, the creator and former CEO of GitHub. Other notable individual investors included General Catalyst, Crane Venture Partners, Vertex Ventures US, Speedinvest, Pebblebed, GTMfund, and MongoDB Ventures. According to information from Crunchbase, Gitpod has now raised $14 million in total, including the fresh capital. + +Gitpod, a 2019 startup, provides an online integrated development environment that can be opened from any GitHub page in a web browser. The business claims that Gitpod offers a fully functional programming environment with support for desktop or browser-based VS Code or any JetBrains integrated development environment, enabling developers to get started coding in only a few seconds. The exact project that is being updated is automatically configured in a separate cloud-based Linux container. + +To reduce the hassle of manually setting up and maintaining a development environment, there is a service called Gitpod. According to the business, developers can work more rapidly using Gitpod since it gives them access to all the tools they need to upgrade or build new apps more quickly. + +Gitpod’s platform was being used by more than 350,000 developers as of its most recent investment round in April 2021. Eighteen months later, there are now 750,000 people. Gitpod is used by developer teams at notable organisations like Google LLC, GitLab Inc., DataStax Inc., and Amazon Web Services Inc. + +According to Gitpod, clients report losing up to five hours of work time per week due to unreliable development environments; CDEs are designed to fix this issue. + +The organisation guarantees that they will be instantaneously accessible and offer limitless secure development settings. A workspace plugin system, application programming interfaces, and enhanced extensibility are on the development agenda. With preview environments and new collaborative procedures, CDEs are also believed to open up completely new options for team members to collaborate more closely. + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/11/gitpod-an-open-source-developer-platform-obtains-25m/ + +作者:[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/11/open-srs2-696x444.png From 4cb859d986cb697eb5bfe95b392e1fee988bf190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:15:00 +0800 Subject: [PATCH 1879/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?10=20Best=20Open=20Source=20Bots=20for=20Your=20Discord=20Serve?= =?UTF-8?q?r.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 Best Open Source Bots for Your Discord Server.md | 245 ++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md diff --git a/sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md b/sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md new file mode 100644 index 0000000000..1b94a34692 --- /dev/null +++ b/sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md @@ -0,0 +1,245 @@ +[#]: subject: "10 Best Open Source Bots for Your Discord Server" +[#]: via: "https://itsfoss.com/open-source-discord-bots/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Best Open Source Bots for Your Discord Server +====== + +Discord started as a platform where gamers and friends could hang out. **[Discord][1] has over 150 million users** in **2022**, even after [turning down][2] a **$12 billion offer from Microsoft**. + +If it is your first time hearing about it, consider it something like Slack, but with countless fun functionalities to create communities (i.e., servers). + +Among all the features, Discord bots allow automating things or spice up your server. But most of them are proprietary. So, in this list, I suggest some of the **best open-source Discord bots**. + +**Note:**Bots can spread malware and affect your entire Discord server. You must ensure that you do not add bots you do not know about. And this is why you might want to trust open-source Discord bots more than other options. + +### 1. MonitoRSS + +![monitorss itsfoss][3] + +Highlights: + +- **RSS Feed** +- **Filters and Subscriptions** +- **Hosted** + +[MonitoRSS][4] is a useful Discord bot that enables your community to receive news from any sources that support RSS. + +It is a reasonably popular bot that works as expected. You can add it to a particular channel, customize its look, and start getting news updates on your Discord server. + +It also lets you filter articles for your feed and allow users to subscribe to an article as per their liking. This can be managed and customized using a web interface control panel. + +Explore more on its [GitHub page][5]. + +### 2. ModMail + +![modmail discord][6] + +Highlights: + +- **Enables users to contact server staff** +- **Self-host** +- **Hosted version** +- **Optional premium** + +[ModMail][7] is a simple open-source Discord bot that seamlessly lets a user contact the staff/admins/moderators of a Discord channel. + +Traditionally, you have to reach out to multiple people via DMs to expect help on something you want to know. However, some servers have many users, so it may be difficult for the server staff to get back to you. + +ModMail creates a separate channel when you send a message to the bot. And this channel acts as a shared inbox to all the administrators, mods, and you. + +![modmail bot][8] + +Not only does easy messaging, but it also helps the server staff to conveniently read past transcripts, enable automated replies, save snippets of them, respond anonymously, and more. Some features are premium-only. + +You can check out its [official website][9] and [GitHub page][10] for more info. It also gives you all the necessary information to self-host it. + +### 3. Red Discord Bot (Self-Hosted) + +![red discord bot][11] + +Highlights: + +- **Highly Customizable** +- **Moderation****tasks** +- **Good documentation** +- **Multipurpose** + +[Red][12] is an entirely modular bot that provides you with many functions, including music, moderation, trivia, stream alerts, and more. + +Red should be useful whether you want it to send welcome messages or help moderate the server. + +Unlike some others, you cannot add the bot directly to your server. You will have to self-host it, configure it, and then get the ability to add it to your server. + +The installation does not need any sort of coding; you have to follow the [documentation][13]. + +### 4. Discord Music Bot (Self-Hosted) + +![discord music bot][14] + +Highlights: + +- **It****supports Spotify, SoundCloud, and YouTube**. +- **It offers shuffling, volume control, and a web dashboard to manage it all**. + +[Discord Music Bot][15] (not a unique name, I know) is a pretty popular Discord bot that you can self-host. + +It supports Spotify, SoundCloud, and YouTube. Some features include shuffling, volume control, and a web dashboard. + +You can follow the instructions on its [GitHub page][15] to install and configure it for your server. + +### 5. Discord Tickets (Self-Hosted) + +![discord tickets][16] + +Highlights: + +- **Ticket management** +- **Add custom branding for free** + +Do you have customers for your services/products on Discord? You can use [Discord Tickets][17] to manage/create tickets and add your branding for free. + +Most of the Discord’s popular ticket management bots are proprietary and require a premium subscription to add your brand logo. + +With Discord Tickets, you can self-host and customize as per your requirements. Explore more about it on its [GitHub page][18]. + +### 6. EvoBot (Self-Hosted) + +![evobot][19] + +Highlights: + +- **Highly customizable** +- **Search for music or use a URL to play** + +[EvoBot][20] is yet another open-source music Discord bot with lots of customization options. + +You can play music from YouTube and SoundCloud using its URL or search/play. + +Explore more about its installation and configuration on its [GitHub page][20]. + +### 7. Atlanta Bot + +![atlanta bot][21] + +Highlights: + +- **Hosted version** +- **Self-host option** +- **Web dashboard** +- **Multipurpose** + +[AtlantaBot][22] is yet another all-in-one bot that provides functionalities for moderation, music, fun commands, and several commands. + +Furthermore, it features its dashboard with valuable options. You can set up the dashboard and manage your server/configuration through it. You can also perform limited translations using the bot. + +It can be self-hosted, but if you would rather not make an effort, you can invite a hosted version of the bot. + +### 8. YAGPDB (Self-Hosted) + +![reddit feed yagpdb][23] + +Highlights: + +- **Custom commands** +- **Automatic moderator** +- **Reddit/YouTube feed** +- **Moderation****tasks** + +[YAGPDB][24] stands for **Yet Another General Purpose Discord Bot**. + +With this bot, you can quickly perform general moderation tasks, add custom commands, create an automatic moderator, manage/create roles, and pull Reddit/YouTube feeds. + +It is configurable. So, you can do more with it than what I just mentioned. Explore more about it on its [GitHub page][25]. + +### 9. Loritta + +![loritta][26] + +Highlights: + +- **Hosted version** +- **Self-host option** +- **Engagement and Moderation features.** + +If you are looking for a multipurpose Discord bot with an interesting character, [Loritta][27] would be a good pick. + +It supports moderation, entertainment, and automation features. You can self-host it or use the hosted version. + +The developer presents the bot as a girl who helps you moderate, entertain, and engage the members of your server. Additionally, it offers a premium plan for some extra perks. + +Explore more about it on its [GitHub page][28]. + +### 10. Melijn + +![melijn][29] + +Highlights: + +- **Hosted version** +- **Self-host option** +- **Moderation features.** + +[Melijn][30] is yet another multipurpose bot for Discord servers. + +You can interact with audio commands, moderate, perform user verifications, and create role groups. + +It offers a hosted version and lets you self-host it, following the instructions on its [GitHub page][31]. + +### What’s Your Favorite Discord Bot? + +If you are a Discord server moderator or admin, what bot do you like to use for your community? + +Do you focus on moderation features or engagement features? What are the standard features that you look for in a Discord bot? + +Share your thoughts in the comments below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/open-source-discord-bots/ + +作者:[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://discord.com/company +[2]: https://www.bloomberg.com/news/articles/2021-04-20/chat-app-discord-is-said-to-end-takeover-talks-with-microsoft +[3]: https://itsfoss.com/wp-content/uploads/2022/11/monitorss-itsfoss.jpg +[4]: https://monitorss.xyz +[5]: https://github.com/synzen/MonitoRSS +[6]: https://itsfoss.com/wp-content/uploads/2022/11/modmail-discord.jpg +[7]: https://modmail.xyz/ +[8]: https://itsfoss.com/wp-content/uploads/2022/11/modmail-bot.png +[9]: https://modmail.xyz/premium +[10]: https://github.com/chamburr/modmail +[11]: https://itsfoss.com/wp-content/uploads/2022/11/red-discord-bot.png +[12]: https://github.com/Cog-Creators/Red-DiscordBot +[13]: https://docs.discord.red/en/stable/ +[14]: https://itsfoss.com/wp-content/uploads/2022/11/discord-music-bot.png +[15]: https://github.com/SudhanPlayz/Discord-MusicBot +[16]: https://itsfoss.com/wp-content/uploads/2022/11/discord-tickets.jpg +[17]: https://discordtickets.app +[18]: https://github.com/discord-tickets/bot +[19]: https://itsfoss.com/wp-content/uploads/2022/11/evobot.png +[20]: https://github.com/eritislami/evobot +[21]: https://itsfoss.com/wp-content/uploads/2022/11/atlanta-bot.png +[22]: https://github.com/Androz2091/AtlantaBot +[23]: https://itsfoss.com/wp-content/uploads/2022/11/reddit-feed-yagpdb.png +[24]: https://yagpdb.xyz +[25]: https://github.com/botlabs-gg/yagpdb +[26]: https://itsfoss.com/wp-content/uploads/2022/11/loritta.jpg +[27]: https://loritta.website/us/ +[28]: https://github.com/LorittaBot +[29]: https://itsfoss.com/wp-content/uploads/2022/11/melijn.jpg +[30]: https://melijn.com +[31]: https://github.com/ToxicMushroom/Melijn From 9c1b2109708aa5e1af5fdc1324be2dec6a0ef71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:26:21 +0800 Subject: [PATCH 1880/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221104.7=20=E2=AD=90=EF=B8=8F=20How=20to=20iterate?= =?UTF-8?q?=20over=20tables=20in=20Lua.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....7 ⭐️ How to iterate over tables in Lua.md | 215 ++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md diff --git a/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md b/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md new file mode 100644 index 0000000000..4cdc87d0a6 --- /dev/null +++ b/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md @@ -0,0 +1,215 @@ +[#]: subject: "How to iterate over tables in Lua" +[#]: via: "https://opensource.com/article/22/11/iterate-over-tables-lua" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to iterate over tables in Lua +====== + +Create structure that makes it easier to find stored data. + +In the [Lua][1] programming language, an array is called a table. A table is used in Lua to store data. If you're storing a lot of data in a structured way, it's useful to know your options for retrieving that data when you need it. + +### Creating a table in Lua + +To create a table in Lua, you instantiate the table with an arbitrary name: + +``` +mytable ={} +``` + +There are different ways you can structure your data in a table. You could fill it with values, essentially creating a list (called a list in some languages): + +``` +mytable ={'zombie','apocalypse'} +``` + +Or you could create an associated array (called a map or dictionary in some languages). You can add arbitrary keys to the table using dot notation. You can also add a value to that key the same way you add a value to a variable: + +``` +myarray ={} + +myarray.baz='happy' + +myarray.qux='halloween' +``` + +You can add verification with the `assert()` function: + +``` +[assert][2](myarray.baz=='happy','unexpected value in myarray.baz') +[assert][2](myarray.qux=='halloween','unexpected value in myarray.qux') +``` + +You now have two tables: a list-style `mytable` and an associative array-style `myarray`. + +### Iterating over a table with pairs + +Lua's `pairs()` function extracts key and value pairs from a table. + +``` +print('pairs of myarray:') +for k,v in pairs(myarray)do + +  print(k,v) + +end +``` + +Here's the output: + +``` +pairs of myarray: + +baz     happy + +qux     halloween +``` + +If there are no keys in a table, Lua uses an index. For instance, the `mytable` table contains the values `zombie` and `apocalypse`. It contains no keys, but Lua can improvise: + +``` +print('pairs of mytable:') +for k,v in pairs(mytable)do + +  print(k,v) + +end +``` + +Here's the output: + +``` +1   zombie +2   apocalypse +``` + +### Iterating over a table with ipairs + +To account for the fact that tables without keys are common, Lua also provides the `ipairs` function. This function extracts the index and the value: + +``` +print('ipairs of mytable:') +for i,v in ipairs(mytable)do + +  print(i,v) + +end +``` + +The output is, in this case, the same as the output of `pairs`: + +``` +1   zombie +2   apocalypse +``` + +However, watch what happens when you add a key and value pair to `mytable`: + +``` +mytable.surprise='this value has a key' + +print('ipairs of mytable:') +for i,v in ipairs(mytable)do + +  print(i,v) + +end +``` + +Lua ignores the key and value because `ipairs` retrieves only indexed entries: + +``` +1   zombie +2   apocalypse +``` + +The key and value pair, however, have been stored in the table: + +``` +print('pairs of mytable:') +for k,v in ipairs(mytable)do + +  print(k,v) + +end +``` + +The output: + +``` +1          zombie +2          apocalypse + +surprise   this value has a key +``` + +### Retrieving arbitrary values + +You don't have to iterate over a table to get data out of it. You can call arbitrary data by either index or key: + +``` +print('call by index:') + +print(mytable[2]) + +print(mytable[1]) + +print(myarray[2]) + +print(myarray[1]) + +print('call by key:') + +print(myarray['qux']) + +print(myarray['baz']) + +print(mytable['surprise']) +``` + +The output: + +``` +call by index: + +apocalypse + +zombie + +nil + +nil + +call by key: + +halloween + +happy + +this value has a key +``` + +### Data structures + +Sometimes using a Lua table makes a lot more sense than trying to keep track of dozens of individual variables. Once you understand how to structure and retrieve data in a language, you're empowered to generate complex data in an organized and safe way. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/iterate-over-tables-lua + +作者:[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/article/22/11/lua-worth-learning +[2]: http://www.opengroup.org/onlinepubs/009695399/functions/assert.html From b0ee84c90227fd0fad578881b94b6c203fc2f12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 4 Nov 2022 20:43:47 +0800 Subject: [PATCH 1881/3123] =?UTF-8?q?Update=2020221104.7=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20How=20to=20iterate=20over=20tables=20in=20Lua.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....7 ⭐️ How to iterate over tables in Lua.md | 67 +++++-------------- 1 file changed, 18 insertions(+), 49 deletions(-) diff --git a/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md b/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md index 4cdc87d0a6..08bd33cad8 100644 --- a/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md +++ b/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md @@ -19,30 +19,28 @@ In the [Lua][1] programming language, an array is called a table. A table is use To create a table in Lua, you instantiate the table with an arbitrary name: ``` -mytable ={} +mytable = {} ``` There are different ways you can structure your data in a table. You could fill it with values, essentially creating a list (called a list in some languages): ``` -mytable ={'zombie','apocalypse'} +mytable = {'zombie','apocalypse'} ``` Or you could create an associated array (called a map or dictionary in some languages). You can add arbitrary keys to the table using dot notation. You can also add a value to that key the same way you add a value to a variable: ``` -myarray ={} - -myarray.baz='happy' - -myarray.qux='halloween' +myarray = {} +myarray.baz = 'happy' +myarray.qux = 'halloween' ``` You can add verification with the `assert()` function: ``` -[assert][2](myarray.baz=='happy','unexpected value in myarray.baz') -[assert][2](myarray.qux=='halloween','unexpected value in myarray.qux') +[assert][2](myarray.baz == 'happy', 'unexpected value in myarray.baz') +[assert][2](myarray.qux == 'halloween', 'unexpected value in myarray.qux') ``` You now have two tables: a list-style `mytable` and an associative array-style `myarray`. @@ -53,10 +51,8 @@ Lua's `pairs()` function extracts key and value pairs from a table. ``` print('pairs of myarray:') -for k,v in pairs(myarray)do - -  print(k,v) - +for k, v in pairs(myarray) do +  print(k, v) end ``` @@ -64,9 +60,7 @@ Here's the output: ``` pairs of myarray: - baz     happy - qux     halloween ``` @@ -74,10 +68,8 @@ If there are no keys in a table, Lua uses an index. For instance, the `mytable` ``` print('pairs of mytable:') -for k,v in pairs(mytable)do - -  print(k,v) - +for k, v in pairs(mytable) do +  print(k, v) end ``` @@ -94,10 +86,8 @@ To account for the fact that tables without keys are common, Lua also provides t ``` print('ipairs of mytable:') -for i,v in ipairs(mytable)do - -  print(i,v) - +for i, v in ipairs(mytable) do +  print(i, v) end ``` @@ -111,13 +101,10 @@ The output is, in this case, the same as the output of `pairs`: However, watch what happens when you add a key and value pair to `mytable`: ``` -mytable.surprise='this value has a key' - +mytable.surprise = 'this value has a key' print('ipairs of mytable:') -for i,v in ipairs(mytable)do - -  print(i,v) - +for i, v in ipairs(mytable) do +  print(i, v) end ``` @@ -132,10 +119,8 @@ The key and value pair, however, have been stored in the table: ``` print('pairs of mytable:') -for k,v in ipairs(mytable)do - -  print(k,v) - +for k, v in ipairs(mytable) do +  print(k, v) end ``` @@ -144,7 +129,6 @@ The output: ``` 1          zombie 2          apocalypse - surprise   this value has a key ``` @@ -154,21 +138,13 @@ You don't have to iterate over a table to get data out of it. You can call arbit ``` print('call by index:') - print(mytable[2]) - print(mytable[1]) - print(myarray[2]) - print(myarray[1]) - print('call by key:') - print(myarray['qux']) - print(myarray['baz']) - print(mytable['surprise']) ``` @@ -176,21 +152,14 @@ The output: ``` call by index: - apocalypse - zombie - nil - nil call by key: - halloween - happy - this value has a key ``` From d9f546a302052c02c0b157fb9c00ea5c86e6669e Mon Sep 17 00:00:00 2001 From: wangzequan <46700056+hadisi1993@users.noreply.github.com> Date: Fri, 4 Nov 2022 23:27:06 +0800 Subject: [PATCH 1882/3123] Update 20210623 Parsing config files with Lua.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 申领翻译 --- sources/tech/20210623 Parsing config files with Lua.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210623 Parsing config files with Lua.md b/sources/tech/20210623 Parsing config files with Lua.md index 50b47fa003..ee7e98e14f 100644 --- a/sources/tech/20210623 Parsing config files with Lua.md +++ b/sources/tech/20210623 Parsing config files with Lua.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/parsing-config-files-lua) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: ( hadisi1993) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 20dd16a14f58ddaaeb6a0f8d64c56aabac1f47d0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 5 Nov 2022 09:23:46 +0800 Subject: [PATCH 1883/3123] RP @chai001125 https://linux.cn/article-15215-1.html --- ... essential Linux commands for beginners.md | 61 +++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) rename {translated/tech => published}/20220524 12 essential Linux commands for beginners.md (63%) diff --git a/translated/tech/20220524 12 essential Linux commands for beginners.md b/published/20220524 12 essential Linux commands for beginners.md similarity index 63% rename from translated/tech/20220524 12 essential Linux commands for beginners.md rename to published/20220524 12 essential Linux commands for beginners.md index 38805ec653..ee5b742c0f 100644 --- a/translated/tech/20220524 12 essential Linux commands for beginners.md +++ b/published/20220524 12 essential Linux commands for beginners.md @@ -3,27 +3,28 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15215-1.html" -新手教程:12 个重要的 Linux 命令 +12 个对新手最重要的 Linux 命令 ====== -我向所有的 Linux 初学者推荐以下这些命令。 -![Command line prompt][1] +> 我向所有的 Linux 初学者推荐以下这些命令。 -在使用 Linux 命令行时,很容易就会迷失方向,这可能会导致灾难性的后果:我有一次使用 删除命令 `rm` command 删除文件,然而删除之后我才意识到我刚刚是删除了计算机的引导目录。后来,我学会了使用 `pwd` 命令,来知道当前在文件系统的哪个目录下;并且我使用了 [trashy 和 trash-cli][2] 这一命令行回收站工具,在删除文件时 trash-cli 会充当中间人,将文件先“删除”到桌面上的垃圾箱中,能够通过垃圾箱或通过终端的 `trash` 命令,来恢复垃圾箱中已删除的文件。 +![](https://img.linux.net.cn/data/attachment/album/202211/05/092308plqfl6a6z0g7afx7.jpg) -当我刚开始使用 Linux 时,我有一个放在桌子上的“作弊小抄”,它就是 *《101 条你应该知道的 Linux 命令》* 101 commands for Linux ,我在管理 Linux 服务器时能参考“作弊小抄”上面的这些命令。随着我越来越熟悉这些命令,我越来越精通服务器管理了。 +在使用 Linux 命令行时,很容易就会迷失方向,这可能会导致灾难性的后果:我有一次使用删除命令 `rm` 删除文件,然而删除之后我才意识到我刚刚是删除了计算机的引导目录。后来,我学会了使用 `pwd` 命令,来知道当前在文件系统的哪个目录下;并且我使用了 [trashy 和 trash-cli][2] 这一命令行回收站工具(LCTT 译注:在删除文件时 `trash-cli` 会充当中间人,将文件先“删除”到桌面上的垃圾箱中,能够通过垃圾箱或通过终端的 `trash` 命令,来恢复垃圾箱中已删除的文件。) + +当我刚开始使用 Linux 时,我有一个放在桌子上的“速查表”,它就是《101 条你应该知道的 Linux 命令》,我在管理 Linux 服务器时能参考速查表上面的这些命令。随着我越来越熟悉这些命令,我越来越精通服务器管理了。 以下是我认为最有用的 12 个 Linux 命令。 -### 1. 打印工作目录(pwd) +### 1、打印工作目录(pwd) -`pwd` 命令会打印出你的工作目录。换句话来说,它输出你当前所在目录的路径。`pwd` 命令有两种选项:`-L`(即逻辑路径 logical) 用来打印当前的目录路径(不考虑符号链接),`-P` (即物理路径 physical)会解析符号链接,并打印出物理目录。你可以进一步阅读我们翻译的 [另一篇文章](https://linux.cn/article-4356-1.html) +`pwd` 命令会打印出你的工作目录。换句话来说,它输出你当前所在目录的路径。`pwd` 命令有两种选项:`-L` 或 `--logical`(即逻辑路径)用来打印当前的目录路径(不解析符号链接),`-P` 或 `--physial`(即物理路径)会打印出解析符号链接后的物理目录。(LCTT 译注:你可以进一步阅读我们翻译的 [另一篇文章](https://linux.cn/article-4356-1.html)。) -### 2. 创建目录(mkdir) +### 2、创建目录(mkdir) 使用 `mkdir` 命令来创建一个新目录,是非常容易的。以下命令,创建了一个名为 `example` 目录(若 `example` 已存在,则无法创建): @@ -37,23 +38,23 @@ $ mkdir example $ mkdir -p example/one/two ``` -如果目录 `example` 和目录 `one` 都已存在,则仅会创建目录 `two`。如果上述目录都不存在,则会创建三个嵌套目录。 +如果目录 `example` 和目录 `one` 都已存在,则仅会创建目录 `two`。如果上述目录都不存在,则会创建这三个嵌套的目录。 -### 3. 列出文件(ls) +### 3、列出文件(ls) -我最早使用的是 MS-DOS(微软磁盘操作系统),因此我习惯于使用 `dir` 命令,来列出文件。我不记得当时是否能在 Linux 上使用 `dir` 命令,但是如今 `dir` 命令已经包含在 GNU 核心实用程序包 GNU Core Utilities package 中了。大多数人会使用 `ls` 命令,来显示目录中的文件及其所有的属性。`ls` 命令有许多选项,包括 `-l` 查看文件的长列表,显示文件所有者和权限等信息。 +我最早使用的是 MS-DOS(微软磁盘操作系统),因此我习惯于使用 `dir` 命令,来列出文件。我不记得当时是否能在 Linux 上使用 `dir` 命令,但是如今 `dir` 命令已经包含在 GNU 核心实用程序包GNU Core Utilities package 中了。大多数人会使用 `ls` 命令,来显示目录中的文件及其所有的属性。`ls` 命令有许多选项,包括 `-l` 查看文件的长列表,显示文件所有者和权限等信息。 -### 4. 更改当前工作目录(cd) +### 4、更改当前工作目录(cd) -在 Linux 中经常要更改当前工作目录,这就是 `cd` 命令的功能。例如,以下的示例将让你从 主目录 home 进入 `Documents` 目录: +在 Linux 中经常要更改当前工作目录,这就是 `cd` 命令的功能。例如,以下的示例将让你从 主目录home 进入 `Documents` 目录: ``` $ cd Documents ``` -你可以使用 `cd ~`或者`cd`,来快速转换到你的 主目录 home 。你可以使用 `cd ..` 来返回到上一级目录。 +你可以使用 `cd ~` 或者 `cd`,来快速转换到你的主目录。你可以使用 `cd ..` 来返回到上一级目录。 -### 5. 删除文件(rm) +### 5、删除文件(rm) 删除文件是很危险的,因为在 Linux 终端上用 `rm` 命令会**彻底地**删除文件,并没有像桌面的垃圾桶那样依旧保存着删除的文件。许多终端用户有一个坏习惯,他们会永久地删除他们认为不再需要的文件。然而,因为没有“取消删除”命令,这个坏习惯可能会导致严重的问题:你会不小心删除了包含重要数据的目录。 @@ -63,15 +64,15 @@ Linux 系统为文件删除提供了 `rm` 和 `shred` 命令。要删除文件 ` $ rm example.txt ``` -然而,使用 trash 命令要安全得多,例如[trashy][3] 或者 [trash-cli][4],它会将文件先“删除”到桌面上的垃圾箱中: +然而,使用 `trash` 命令要安全得多,例如 [trashy][3] 或者 [trash-cli][4],它会将文件先“删除”到桌面上的垃圾箱中: ``` $ trash example.txt ``` -关于 Trash-Cli 的更多信息可以参考我们翻译的 [另一篇文章](https://linux.cn/article-10029-1.html)。 +(LCTT 译注:关于 Trash-Cli 的更多信息可以参考我们翻译的 [另一篇文章](https://linux.cn/article-10029-1.html)。) -### 6. 复制文件(cp) +### 6、复制文件(cp) 使用 `cp` 命令,来复制文件。`cp` 的语法是从*旧文件*复制到*新文件*。这里有一个例子: @@ -85,7 +86,7 @@ $ cp file1.txt newfile1.txt $ cp -r dir1 newdirectory ``` -### 7. 移动并重命名文件(mv) +### 7、移动并重命名文件(mv) 重命名和移动文件在功能上是相同的过程。当你移动文件时,从一个目录中取出一个文件,并将其放入一个新目录中;当你重命名文件时,将一个目录中的文件更改为新名称,并放回到同一目录或另一个目录下。无论是重命名还是移动文件,你都可以使用 `mv` 命令: @@ -93,7 +94,7 @@ $ cp -r dir1 newdirectory $ mv file1.txt file_001.txt ``` -### 8. 创建一个空文件(touch) +### 8、创建一个空文件(touch) 使用 `touch` 命令可以简单地创建一个空文件: @@ -105,7 +106,7 @@ $ touch two.txt $ touch three.md ``` -### 9. 更改权限(chmod) +### 9、更改权限(chmod) 使用 `chmod` 命令,来更改文件的权限。`chmod` 最常见的用途是让文件能够执行: @@ -124,9 +125,9 @@ $ ./hello.sh Hello, Don ``` -### 10. 提升为 root 权限(sudo) +### 10、提升为 root 权限(sudo) -在管理自己的 Linux 系统时,可能需要提升为超级用户(也称为 root),这就是 `sudo`(即 *super user do*)命令的来源。假设你想要做一些只有管理员(或 root 用户)才能做的事情,只需在命令前加一个 `sudo` 即可: +在管理自己的 Linux 系统时,可能需要提升为超级用户(也称为 root),这就是 `sudo`(即 以超级用户做super user do)命令的来源。假设你想要做一些只有管理员(或 root 用户)才能做的事情,只需在命令前加一个 `sudo` 即可: ``` $ touch /etc/os-release && echo "Success" @@ -136,7 +137,7 @@ $ sudo touch /etc/os-release && echo "Success" Success ``` -### 11. 关机(poweroff) +### 11、关机(poweroff) `poweroff` 命令的功能和它的字面意思一样:把你的计算机关机。需要在 `poweroff` 前面加一个 `sudo` 才能成功关机。 @@ -146,7 +147,6 @@ Success $ sudo shutdown -h 60 ``` -Or immediately: 或者立即关闭计算机: ``` @@ -155,7 +155,7 @@ $ sudo shutdown -h now 你也可以用 `sudo shutdown -r now` 或者 `reboot` 来重启计算机。 -### 12. 阅读手册(man) +### 12、阅读手册(man) `man` 命令可能是 Linux 中最重要的命令了,你可以通过 `man` 命令查看 Linux 系统上每个命令的官方文档。例如,要阅读更多有关 `mkdir` 的信息,可以输入: @@ -167,7 +167,6 @@ $ man mkdir ### 你最喜欢的 Linux 命令是什么? -There are many more commands on a Linux system—hundreds! What's your favorite command, the one you find yourself using time and time again? Linux 系统上还有数百个其他命令!你最喜欢使用的 Linux 命令是什么呢?什么命令是你一直反复使用的呢? -------------------------------------------------------------------------------- @@ -177,7 +176,7 @@ via: https://opensource.com/article/22/5/essential-linux-commands 作者:[Don Watkins][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1c0b0ff170a7655e583a12525a8b7321ac257e6b Mon Sep 17 00:00:00 2001 From: wangzequan <46700056+hadisi1993@users.noreply.github.com> Date: Sat, 5 Nov 2022 10:22:00 +0800 Subject: [PATCH 1884/3123] Update and rename sources/tech/20210623 Parsing config files with Lua.md to translated/tech/20210623 Parsing config files with Lua.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- .../20210623 Parsing config files with Lua.md | 231 ------------------ .../20210623 Parsing config files with Lua.md | 212 ++++++++++++++++ 2 files changed, 212 insertions(+), 231 deletions(-) delete mode 100644 sources/tech/20210623 Parsing config files with Lua.md create mode 100644 translated/tech/20210623 Parsing config files with Lua.md diff --git a/sources/tech/20210623 Parsing config files with Lua.md b/sources/tech/20210623 Parsing config files with Lua.md deleted file mode 100644 index ee7e98e14f..0000000000 --- a/sources/tech/20210623 Parsing config files with Lua.md +++ /dev/null @@ -1,231 +0,0 @@ -[#]: subject: (Parsing config files with Lua) -[#]: via: (https://opensource.com/article/21/6/parsing-config-files-lua) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: ( hadisi1993) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Parsing config files with Lua -====== -Configure persistent application settings with the Lua programming -language. -![Woman sitting in front of her computer][1] - -Not all applications need configuration files; many applications benefit from starting fresh each time they are launched. Simple utilities, for instance, rarely require preferences or settings that persist across uses. However, when you write a complex application, it's nice for users to be able to configure how they interact with it and how it interacts with their system. That's what configuration files are for, and this article discusses some of the ways you can implement persistent settings with the Lua programming language. - -### Choose a format - -The important thing about configuration files is that they are consistent and predictable. You do not want to dump information into a file under the auspices of saving user preferences and then spend days writing code to reverse-engineer the random bits of information that have ended up in the file. - -There are several popular [formats for configuration files][2]. Lua has libraries for most of the common configuration formats; in this article, I'll use the INI format. - -### Installing the library - -The central hub for Lua libraries is [Luarocks.org][3]. You can search for libraries on the website, or you can install and use the `luarocks` terminal command. - -On Linux, you can install it from your distribution's software repository. For example: - - -``` -`$ sudo dnf install luarocks` -``` - -On macOS, use [MacPorts][4] or [Homebrew][5]. On Windows, use [Chocolatey][6]. - -Once `luarocks` is installed, you can use the `search` subcommand to search for an appropriate library. If you don't know the name of a library, you can search for a keyword, like `ini` or `xml` or `json`, depending on what's relevant to what you're trying to do. In this case, you can just search for `inifile`, which is the library I use to parse text files in the INI format: - - -``` -$ luarocks search inifile -Search results: -inifile - 1.0-2 (rockspec) - - 1.0-2 (src) - - 1.0-1 (rockspec) - - [...] -``` - -A common trap programmers fall into is installing a library on their system and forgetting to bundle it with their application. This can create problems for users who don't have the library installed. To avoid this, use the `--tree` option to install the library to a local folder within your project directory. If you don't have a project directory, create one first, and then install: - - -``` -$ mkdir demo -$ cd demo -$ luarocks install --tree=local inifile -``` - -The `--tree` option tells `luarocks` to create a new directory, called `local` in this case, and install your library into it. With this simple trick, you can install all the dependency code your project uses directly into the project directory. - -### Code setup - -First, create some INI data in a file called `myconfig.ini`: - - -``` -[example] -name=Tux -species=penguin -enabled=false - -[demo] -name=Beastie -species=demon -enabled=false -``` - -Save the file as `myconfig.ini` into your home directory, _not_ into your project directory. You usually want configuration files to exist outside your application so that even when a user uninstalls your application, the data they generate while using the application remains on their system. Users might remove unnecessary config files manually, but many don't. As a result, if they reinstall an application, it will retain all of their preferences. - -Config file locations are technically unimportant, but each operating system (OS) has a specification or a tradition of where they ought to be placed. On Linux, this is defined by the [Freedesktop specification][7]. It dictates that configuration files are to be saved in a hidden folder named `~/.config`. For clarity during this exercise, just save the file in your home directory so that it's easy to find and use. - -Create a second file named `main.lua` and open it in your favorite text editor. - -First, you must tell Lua where you've placed the additional library you want it to use. The `package.path` variable determines where Lua looks for libraries. You can view Lua's default package path in a terminal: - - -``` -$ Lua -> print(package.path) -./?.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua -``` - -In your Lua code, append your local library location to `package.path`: - - -``` -`package.path = package.path .. ';local/share/lua/5.3/?.lua` -``` - -### Parsing INI files with Lua - -With the package location established, the next thing to do is to require the `inifile` library and then handle some OS logistics. Even though this is a simple example application, the code needs to get the user's home directory location from the OS and establish how to communicate filesystem paths back to the OS when necessary: - - -``` -package.path = package.path .. ';local/share/lua/5.3/?.lua -inifile = require('inifile') - -\-- find home directory -home = os.getenv('HOME') - -\-- detect path separator -\-- returns '/' for Linux and Mac -\-- and '\' for Windows -d = package.config:sub(1,1) -``` - -Now you can use `inifile` to parse data from the config file into a Lua table. Once the data has been placed into a table, you can query the table as you would any other Lua table: - - -``` -\-- parse the INI file and -\-- put values into a table called conf -conf = inifile.parse(home .. d .. 'myconfig.ini') - -\-- print the data for review -print(conf['example']['name']) -print(conf['example']['species']) -print(conf['example']['enabled']) -``` - -Run the code in a terminal to see the results: - - -``` -$ lua ./main.lua -Tux -penguin -false -``` - -That looks correct. Try doing the same for the `demo` block. - -### Saving data in the INI format - -Not all parser libraries read and write data (often called _encoding_ and _decoding_), but the `inifile` library does. That means you can use it to make changes to a configuration file. - -To change a value in a configuration file, you set the variable representing the value in the parsed table, and then you write the table back to the configuration file: - - -``` -\-- set enabled to true -conf['example']['enabled'] = true -conf['demo']['enabled'] = true - -\-- save the change -inifile.save(home .. d .. 'myconfig.ini', conf) -``` - -Take a look at the configuration file now: - - -``` -$ cat ~/myconfig.ini -[example] -name=Tux -species=penguin -enabled=true - -[demo] -name=Beastie -species=demon -enabled=true -``` - -### Config files - -The ability to save data about how a user wants to use an application is an important part of programming. Fortunately, it's a common task for programmers, so much of the work has probably already been done. Find a good library for encoding and decoding into an open format, and you can provide a persistent and consistent user experience. - -Here's the entire demo code for reference: - - -``` -package.path = package.path .. ';local/share/lua/5.3/?.lua' -inifile = require('inifile') - -\-- find home directory -home = os.[getenv][8]('HOME') - -\-- detect path separator -\-- returns '/' for Linux and Mac -\-- and '\' for Windows -d = package.config:sub(1,1) - -\-- parse the INI file and -\-- put values into a table called conf -conf = inifile.parse(home .. d .. 'myconfig.ini') - -\-- print the data for review -print(conf['example']['name']) -print(conf['example']['species']) -print(conf['example']['enabled']) - -\-- enable Tux -conf['example']['enabled'] = true - -\-- save the change -inifile.save(home .. d .. 'myconfig.ini', conf) -``` - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/parsing-config-files-lua - -作者:[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/OSDC_women_computing_2.png?itok=JPlR5aCA (Woman sitting in front of her computer) -[2]: https://opensource.com/article/21/6/config-files-and-their-formats -[3]: https://opensource.com/article/19/11/getting-started-luarocks -[4]: https://opensource.com/article/20/11/macports -[5]: https://opensource.com/article/20/6/homebrew-mac -[6]: https://opensource.com/article/20/3/chocolatey -[7]: https://www.freedesktop.org/wiki/Specifications -[8]: http://www.opengroup.org/onlinepubs/009695399/functions/getenv.html diff --git a/translated/tech/20210623 Parsing config files with Lua.md b/translated/tech/20210623 Parsing config files with Lua.md new file mode 100644 index 0000000000..f9da03da65 --- /dev/null +++ b/translated/tech/20210623 Parsing config files with Lua.md @@ -0,0 +1,212 @@ +[#]: subject: (Parsing config files with Lua) +[#]: via: (https://opensource.com/article/21/6/parsing-config-files-lua) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( hadisi1993) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +使用Lua解析配置文件 +====== +使用Lua配置持久化应用设置 +![坐在电脑前的女人][1] +不是所有的应用都需要配置文件;对很多应用来说,在启动时变得焕然一新对它们更有利。例如,简单的工具就极少需要偏好项和设置在使用过程中保持稳定不变。然而,当你编写一个复杂的应用程序时,如果能让用户设置与应用的交互方式,以及应用与系统交互的方式会很不错。这就是配置文件用来做的事情。本文将讨论一些利用Lua进行持久化配置的方法。 + +### 选择一种格式 +关于配置文件很重要的两点是一致性和可预见性。你不会希望为了保存用户偏好项,将信息转储到文件中,然后再花几天去编码实现“逆向工程”,处理最后出现在文件里的随机信息。 + +这里用一些常用的[配置文件格式][2]。Lua有一些库可以处理大多数常用的配置格式;在本文中,我会采用INI格式。 +### 安装库 +Lua库的核心仓库是[Luarocks.org][3].你可以在这个网站搜索库,或者你可以安装并使用`luarocks`终端命令。 +Linux环境中,你可以从发行版的软件仓库中下载它,例如: + +``` +`$ sudo dnf install luarocks` +``` + +在macOS上,请使用[MacPorts][4] 或者[Homebrew][5]. 在Windows上,请使用[Chocolatey][6]. +一旦`luarocks`被安装,你可以使用`search`子命令来搜索一个恰当的库。如果你不知道库的名字,可以通过关键词来搜索这个库,例如`ini` ,`xml` 或者 `json`,这取决于你想要用这个库做什么。打个比方,你可以搜索`inifile`, 这个库被我用来解析INI格式的文本文件。 + +``` +$ luarocks search inifile +Search results: +inifile + 1.0-2 (rockspec) - + 1.0-2 (src) - + 1.0-1 (rockspec) - + [...] +``` + +A common trap programmers fall into is installing a library on their system and forgetting to bundle it with their application. This can create problems for users who don't have the library installed. To avoid this, use the `--tree` option to install the library to a local folder within your project directory. If you don't have a project directory, create one first, and then install: +一个开发者容易犯的错误是在系统上安装了这个库却忘了把它和应用打包。这会给没有安装这个库的用户带来麻烦。为了防止这个问题发生,可以使用`--tree`选项将它安装在项目的本地文件夹中。如果你没有这个项目文件夹,那就先创建这个文件夹再安装库。 + +``` +$ mkdir demo +$ cd demo +$ luarocks install --tree=local inifile +``` + +`--tree` 选项指示`luarocks`创建一个新文件夹并在其中安装你的库,例如这个例子中的`local`文件夹。 使用这个简单的技巧,你可以将所有你项目要使用的依赖项直接安装到项目文件夹中。 +### Code setup +### 配置代码 +首先,在一个名`myconfig.ini`的文件中创建一些INI数据 + +``` +[example] +name=Tux +species=penguin +enabled=false + +[demo] +name=Beastie +species=demon +enabled=false +``` + +将这个文件保存到你的home文件夹下,命名为`myconfig.ini`, _不要_ 存到项目文件夹下。你通常会希望配置文件独立于你的文件存在,这样当用户卸载你的应用时,使用应用时产生的数据可以保存在系统中。有些用户会删除不重要的配置文件,但大多数不会。最终,如果他们要重装这个应用,还会保留着所有的用户偏好项。 + + +配置文件的地址以技术来说并不重要,但每一个操作系统都有特指或者默认的路径存储它们。在Linux中,这个路径被[Freedesktop specification][7]指定。它规定配置文件被保存在一个名为`~/.config`的隐藏文件夹中。为了操作时更加清晰明确,可以在home目录下存储配置文件,以便于使用和寻找 + + +创建第二个文件,命名为`main.lua`,并在你喜欢的文本编辑器中打开它。 + +首先,你必须告诉Lua你将想要使用的附加库放置在哪里。`package.path`变量决定了Lua到哪里去寻找这些库。你可以中终端中查看Lua默认的包地址: + +``` +$ Lua +> print(package.path) +./?.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua +``` + +在你的Lua代码中,将你本地库的路径添加到`package.path`中: + +``` +`package.path = package.path .. ';local/share/lua/5.3/?.lua` +``` + +### Parsing INI files with Lua +### 使用Lua解析INI文件 +当包地址被创建以后,下一个件事就是引入`inifile`库并处理OS逻辑。即使这是一个很简单的应用,代码也需要从操作系统获取到用户home目录的路径并建立在必要时将文件系统路径返回给操作系统的通信方式。 + +``` +package.path = package.path .. ';local/share/lua/5.3/?.lua +inifile = require('inifile') + +\-- find home directory +home = os.getenv('HOME') + +\-- detect path separator +\-- returns '/' for Linux and Mac +\-- and '\' for Windows +d = package.config:sub(1,1) +``` + +现在你可使用`inifile`来从配置文件解析数据到Lua表中。一旦这些数据被导入进表中,你可以像查询其他的Lua表一样查询它。 + +``` +\-- parse the INI file and +\-- put values into a table called conf +conf = inifile.parse(home .. d .. 'myconfig.ini') + +\-- print the data for review +print(conf['example']['name']) +print(conf['example']['species']) +print(conf['example']['enabled']) +``` + +在终端中运行代码可以看见结果: + +``` +$ lua ./main.lua +Tux +penguin +false +``` + +这看起来是正确的。试试在demo块中执行同样的操作。 +### 使用INI格式存储数据 +不是所有用来解析的库都会读写数据(通常被称为 _编码 和 _解码_), 但是`inifile`会这样做。这意味着你可以使用它对配置文件进行修改。 + +为了改变配置文件中的值,你可以对被解析的表中的变量进行设置,然后把表重写回配置文件中。 + +``` +\-- set enabled to true +conf['example']['enabled'] = true +conf['demo']['enabled'] = true + +\-- save the change +inifile.save(home .. d .. 'myconfig.ini', conf) +``` + +现在再来看看配置文件: + +``` +$ cat ~/myconfig.ini +[example] +name=Tux +species=penguin +enabled=true + +[demo] +name=Beastie +species=demon +enabled=true +``` + +### Config files +### 配置文件 +按照用户的设想来存储数据对程序来说是至关重要的。幸运的是, 这对工程师来说是一个很常规的任务,大多数工作可能早已被完成了。只要找到一个好用的库完成开放格式下编码和解码,你就能为用户提供一致且持续的体验。 + +以下是完整的demo,可供参考。 + +``` +package.path = package.path .. ';local/share/lua/5.3/?.lua' +inifile = require('inifile') + +\-- find home directory +home = os.[getenv][8]('HOME') + +\-- detect path separator +\-- returns '/' for Linux and Mac +\-- and '\' for Windows +d = package.config:sub(1,1) + +\-- parse the INI file and +\-- put values into a table called conf +conf = inifile.parse(home .. d .. 'myconfig.ini') + +\-- print the data for review +print(conf['example']['name']) +print(conf['example']['species']) +print(conf['example']['enabled']) + +\-- enable Tux +conf['example']['enabled'] = true + +\-- save the change +inifile.save(home .. d .. 'myconfig.ini', conf) +``` + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/parsing-config-files-lua + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](hadisi1993) +校对:[校对者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/OSDC_women_computing_2.png?itok=JPlR5aCA (坐在电脑前的女人) +[2]: https://opensource.com/article/21/6/config-files-and-their-formats +[3]: https://opensource.com/article/19/11/getting-started-luarocks +[4]: https://opensource.com/article/20/11/macports +[5]: https://opensource.com/article/20/6/homebrew-mac +[6]: https://opensource.com/article/20/3/chocolatey +[7]: https://www.freedesktop.org/wiki/Specifications +[8]: http://www.opengroup.org/onlinepubs/009695399/functions/getenv.html From 12606b172ed55b21695f0bf12c5daa8cf3a368b2 Mon Sep 17 00:00:00 2001 From: wangzequan <46700056+hadisi1993@users.noreply.github.com> Date: Sat, 5 Nov 2022 10:24:17 +0800 Subject: [PATCH 1885/3123] Update 20210623 Parsing config files with Lua.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- translated/tech/20210623 Parsing config files with Lua.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/translated/tech/20210623 Parsing config files with Lua.md b/translated/tech/20210623 Parsing config files with Lua.md index f9da03da65..d8467d752b 100644 --- a/translated/tech/20210623 Parsing config files with Lua.md +++ b/translated/tech/20210623 Parsing config files with Lua.md @@ -10,6 +10,8 @@ 使用Lua解析配置文件 ====== 使用Lua配置持久化应用设置 + + ![坐在电脑前的女人][1] 不是所有的应用都需要配置文件;对很多应用来说,在启动时变得焕然一新对它们更有利。例如,简单的工具就极少需要偏好项和设置在使用过程中保持稳定不变。然而,当你编写一个复杂的应用程序时,如果能让用户设置与应用的交互方式,以及应用与系统交互的方式会很不错。这就是配置文件用来做的事情。本文将讨论一些利用Lua进行持久化配置的方法。 @@ -48,7 +50,6 @@ $ luarocks install --tree=local inifile ``` `--tree` 选项指示`luarocks`创建一个新文件夹并在其中安装你的库,例如这个例子中的`local`文件夹。 使用这个简单的技巧,你可以将所有你项目要使用的依赖项直接安装到项目文件夹中。 -### Code setup ### 配置代码 首先,在一个名`myconfig.ini`的文件中创建一些INI数据 @@ -86,7 +87,6 @@ $ Lua `package.path = package.path .. ';local/share/lua/5.3/?.lua` ``` -### Parsing INI files with Lua ### 使用Lua解析INI文件 当包地址被创建以后,下一个件事就是引入`inifile`库并处理OS逻辑。即使这是一个很简单的应用,代码也需要从操作系统获取到用户home目录的路径并建立在必要时将文件系统路径返回给操作系统的通信方式。 @@ -155,7 +155,6 @@ species=demon enabled=true ``` -### Config files ### 配置文件 按照用户的设想来存储数据对程序来说是至关重要的。幸运的是, 这对工程师来说是一个很常规的任务,大多数工作可能早已被完成了。只要找到一个好用的库完成开放格式下编码和解码,你就能为用户提供一致且持续的体验。 From 1e6630c4d8439167eef1b372adb5d661979b0381 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 5 Nov 2022 10:30:11 +0800 Subject: [PATCH 1886/3123] RP @geekpi https://linux.cn/article-15216-1.html --- ...ow to Check:Xorg or Wayland Display Server.md | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) rename {translated/tech => published}/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md (73%) diff --git a/translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md b/published/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md similarity index 73% rename from translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md rename to published/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md index 1e3e8ef099..1240c18aea 100644 --- a/translated/tech/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md +++ b/published/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md @@ -3,16 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15216-1.html" 如何检查: 是 Xorg 还是 Wayland 显示服务器? ====== -**以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。** +![](https://img.linux.net.cn/data/attachment/album/202211/05/102913nmpm4pzka6b6aar1.jpg) -随着时间的推移,现代 Wayland 显示服务器正在进入所有 Linux 发行版。尽管遗留的 Xorg 仍然相关并且会继续存在,但 Wayland 无疑在安全性和其他性能方面更好。 +> 以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。 + +随着时间的推移,现代 Wayland 显示服务器正在进入所有 Linux 发行版。尽管老旧的 Xorg 仍然能用并且会继续存在,但 Wayland 无疑在安全性和其他性能方面更好。 但是,Xorg 不会很快完全淘汰。可能永远不会。 @@ -20,21 +22,21 @@ ### Wayland 或 Xorg:你在运行哪一个? -- 在你的 Linux 发行版(例如 Ubuntu、Fedora、Arch 等)中打开一个终端窗口 (CTRL+ALT+T)。 +在你的 Linux 发行版(例如 Ubuntu、Fedora、Arch 等)中打开一个终端窗口(`CTRL+ALT+T`)。 -- 然后输入以下命令并回车。 +然后输入以下命令并回车: ``` echo $XDG_SESSION_TYPE ``` -- 命令输出会告诉你当前会话是 Wayland 还是 Xorg (X11)。 +命令输出会告诉你当前会话是 Wayland 还是 Xorg(X11)。 ``` [debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland ``` -![此命令可以为您提供有关 Xorg 或 Wayland 的详细信息][1] +![此命令可以为你提供有关 Xorg 或 Wayland 的详细信息][1] 这很简单。但是,还有其他方法。 @@ -44,7 +46,7 @@ echo $XDG_SESSION_TYPE 如果你需要图形方法,请打开你的 Linux 发行版的设置应用。在关于部分,你应该看到某个标签下中的 Wayland/X11。 -例如,在 GNOME 设置中,你可以在 “Windowing system” 下找到它,如下图所示。 +例如,在 GNOME 设置中,你可以在 “窗口子系统Windowing system” 下找到它,如下图所示: ![在 GNOME 设置中可以找到它][2] @@ -52,13 +54,13 @@ echo $XDG_SESSION_TYPE 你还可以使用 [systemd][3] 登录管理器 `loginctl` 找到它。请记住,它仅适用于基于 systemd 的系统。 -打开终端并运行以下命令。你可以看到会话 id 值。在此示例中为 `c2`。 +打开终端并运行以下命令。你可以看到会话 id 值。在此示例中为 `c2`: ``` loginctl ``` -现在,将会话 ID 传递给以下命令以获取显示服务器类型。确保将 c2 更改为您的系统规格。 +现在,将会话 ID 传递给以下命令以获取显示服务器类型。确保将 c2 更改为你的系统规格。 ``` loginctl show-session c2 -p Type @@ -70,7 +72,7 @@ loginctl show-session c2 -p Type 这些是你可以确定在 Linux 系统中运行的是 Systemd 还是 Xorg 的一些方法。你还可以在 shell 脚本中使用上述命令来实现进一步的流程自动化。 -干杯。 +祝好。 -------------------------------------------------------------------------------- @@ -79,7 +81,7 @@ via: https://www.debugpoint.com/check-wayland-or-xorg/ 作者:[Arindam][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/) 荣誉推出 From 6982d50aba80c28774e1e5d9a6dca96b10674b35 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sat, 5 Nov 2022 13:55:48 +0800 Subject: [PATCH 1887/3123] APL --- sources/tech/20220903 Infuse your awk scripts with Groovy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220903 Infuse your awk scripts with Groovy.md b/sources/tech/20220903 Infuse your awk scripts with Groovy.md index 0dd7cadd45..c8d3a03714 100644 --- a/sources/tech/20220903 Infuse your awk scripts with Groovy.md +++ b/sources/tech/20220903 Infuse your awk scripts with Groovy.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/9/awk-groovy" [#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lxbwolf" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f84e6c63a86688022631376119b08ff87386c42b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 5 Nov 2022 15:11:17 +0800 Subject: [PATCH 1888/3123] RP @robsean https://linux.cn/article-15217-1.html --- ...eUSB on Ubuntu to Create a Bootable Windows USB.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) rename {translated/tech => published}/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md (79%) diff --git a/translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md b/published/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md similarity index 79% rename from translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md rename to published/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md index 37769c50b0..4ec2ffed02 100644 --- a/translated/tech/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md +++ b/published/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md @@ -3,18 +3,18 @@ [#]: author: "Sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15217-1.html" 在 Ubuntu 上安装 WoeUSB 来创建一个可启动 Windows USB ====== -想在 Linux 上创建一个可启动 Windows USB ?Ventoy 是一个很好的选择。 +> 想在 Linux 上创建一个可启动 Windows USB ?Ventoy 是一个很好的选择。 -但是,在 Ventoy 出道之前,WoeUSB 是用于创建可启动 Windows USB 的首选工具。原始的 WoeUSB 工程在 2014 年左右香消玉损。 +但是,在 Ventoy 出道之前,WoeUSB 是用于创建可启动 Windows USB 的首选工具。原版 WoeUSB 工程在 2014 年左右香消玉损。 -鉴于其流行程度,一位新的开发者接过了将其起死回生的任务。因此,WoeUSB-ng 诞生了。在这里,“ng” 是 新生代new generation 的缩写。换句话说,[WoeUSB-ng][1] 是新生代的 WoeUSB 。但是,因为原始的工具已经不存在了,我将 WoeUSB-ng 描述为 WoeUSB 。 +鉴于其流行程度,一位新的开发者接过了将其起死回生的任务。因此,WoeUSB-ng 诞生了。在这里,“ng” 是 新生代new generation 的缩写。换句话说,[WoeUSB-ng][1] 是新生代的 WoeUSB 。但是,因为原版的工具已经不存在了,我将 WoeUSB-ng 描述为 WoeUSB 。 在这篇教程中,我将向你展示如何在 Ubuntu Linux 上安装 WoeUSB 。我也将分享使用 WoeUSB 来创建可启动 Windows USB 的步骤。 @@ -26,16 +26,16 @@ WoeUSB 是一个简单的工具,其唯一的目的是 [在 Linux 上创建可启动 Windows USB][3] 。 -原始的 WoeUSB 是一个 shell 脚本。这个原始的 WoeUSB 被使用 Python 重写为 WoeUSB-ng ,它可以安装在你的系统上,并且通过命令行或 GUI 界面。 +原版 WoeUSB 是一个 shell 脚本。这个原版 WoeUSB 被使用 Python 重写为 WoeUSB-ng ,它可以安装在你的系统上,并且通过命令行或 GUI 界面。 -**特色:** +特色: -- 支持 Legacy PC/UEFI 启动 +- 支持老式 PC 启动或 UEFI 启动 - 支持 FAT32 和 NTFS 文件系统 - 支持使用物理安装盘或磁盘镜像作为源 - 它可以用于 Windows Vista 及其更高版本的任意语言或变体版本 -- Legacy/MBR/IBM PC 兼容启动模式 -- 本机 UEFI 启动支持 Windows 7 及其更高版本的镜像 (仅限于将 FAT 文件系统作为目标的情况) +- 老式的 MBR/IBM PC 兼容启动模式 +- 本机 UEFI 启动支持 Windows 7 及其更高版本的镜像(仅限于将 FAT 文件系统作为目标的情况) ### 在 Ubuntu 和其它的 Linux 发行版上安装 WoeUSB @@ -57,7 +57,7 @@ sudo pip3 install WoeUSB-ng 对于所有的其它安装,你可以参考其 [操作指南][5] 。 -[WoeUSB-ng][1] +> **[WoeUSB-ng][1]** ### 前提条件: 获取 Windows 的 ISO 文件和一个兼容的 USB 磁盘 @@ -65,13 +65,13 @@ sudo pip3 install WoeUSB-ng 从微软的网站,你应该能够获取 Windows 10 和 11 的ISO 文件。 -[下载 Windows][6] +> **[下载 Windows][6]** 如果你有较旧的 Windows 版本的 ISO 文件,也可以使用它们。 除此之外,你需要有一个至少 8 GB 大小的 USB 驱动器磁盘。你应该使用 NTFS 的文件系统来格式化它filesystem. -### 方法 1: 使用图形用户界面化的 WoeUSB 来创建一个可启动的 Windows USB (推荐) +### 方法 1: 使用图形用户界面化的 WoeUSB 来创建一个可启动的 Windows USB(推荐) 从 活动概述activity overview 或菜单中打开 woeusb-gui 。 @@ -83,17 +83,17 @@ sudo pip3 install WoeUSB-ng 在应用程序中也其它可用的调整,可以通过顶部的菜单栏来访问使用。 -在按下安装按钮后,woeUSB 将开始格式化和复制文件。你需要等待一些时间,因为这里有大约 6 GB 的文件需要复制。 +在按下“安装”按钮后,woeUSB 将开始格式化和复制文件。你需要等待一些时间,因为这里有大约 6 GB 的文件需要复制。 ![woeusb writing windows iso to the usb drive][9] -在复制完成后,WoeUSB 将会提示一个成功的对话框。你现在可用安全弹出 USB 驱动器,并将其作为一个可启动 USB 驱动器来使用。 +在复制完成后,WoeUSB 将会提示一个成功的对话框。你现在可以安全地弹出 USB 驱动器,并将其作为一个可启动 USB 驱动器来使用。 ![woeusb completed writing and gives a success message][10] -### 方法 2: 从终端中使用 WoeUSB (针对专家) +### 方法 2: 从终端中使用 WoeUSB(针对专家) -WoeUSB-ng 软件包也提供一个名称为 woeusb 的命令行实用程序。 +WoeUSB-ng 软件包也提供一个名称为 `woeusb` 的命令行实用程序。 为使用 WoeUSb 来创建一个可启动的 Windows USB ,你需要运行下面的命令: @@ -101,7 +101,7 @@ WoeUSB-ng 软件包也提供一个名称为 woeusb 的命令行实用程序。 sudo woeusb --device --target-filesystem ntfs ``` -在这里,`--device` 标识用于擦除 USB 和从零开始创建一个可启动 USB 驱动器。同样,–target-filesystem 标识用于设置为 NTFS ,来避免将要复制的文件大小超过 FAT 文件系统的限制。 +在这里,`--device` 标识用于擦除 USB 和从零开始创建一个可启动 USB 驱动器。同样,`--target-filesystem` 标识用于设置为 NTFS ,来避免将要复制的文件大小超过 FAT 文件系统的限制。 ![woeusb commandline][11] @@ -111,13 +111,13 @@ sudo woeusb --device --target-fil 此时,你可以安全地弹出 USB 驱动器,并在其它的个人电脑上将其作为一个 Windows 可启动 USB 来使用。 -### 惊喜欲狂: 使用 WoeUSB 的 Bash shell 脚本 (针对专家) +### 超值: 使用 WoeUSB 的 Bash Shell 脚本(针对专家) -WoeUSB 也提供一个 bash shell 脚本,在你的系统上,它不需要安装任何东西就可以使用。 +WoeUSB 也提供一个 Bash Shell 脚本,在你的系统上,它不需要安装任何东西就可以使用。 -首先,你需要从 [该工程的发布版本页面][13] 下载 shell 脚本。 +首先,你需要从 [该工程的发布版本页面][13] 下载 Shell 脚本。 -在 [执行 shell 文件][14] 之前,你需要获取所需要的依赖项。为安装它,运行: +在 [执行 Shell 文件][14] 之前,你需要获取所需要的依赖项。为安装它,运行: ``` sudo apt install wimtools @@ -129,7 +129,7 @@ sudo apt install wimtools 或者,你可以运行 `chmod +x ` 来使它可执行。现在,运行已下载目录中的 `./woeusb-5.2.4.bash -h` 来获取帮助。 -为创建一个 live USB ,该进程类似于 woeusb-ng 的命令行部分,但是你没有安装任何东西。 +为创建一个现场 USB ,该进程类似于 woeusb-ng 的命令行部分,但是你没有安装任何东西。 因此,在一个终端中,运行: @@ -166,7 +166,7 @@ via: https://itsfoss.com/install-woeusb-ubuntu/ 作者:[Sreenath][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6dd55bc5a28e8e40464de1c49dfdc7e98d743024 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Sat, 5 Nov 2022 15:53:52 +0800 Subject: [PATCH 1889/3123] translated --- ...️ How to Upgrade Python Packages with Pip.md | 108 ------------------ ...️ How to Upgrade Python Packages with Pip.md | 108 ++++++++++++++++++ 2 files changed, 108 insertions(+), 108 deletions(-) delete mode 100644 sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md create mode 100644 translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md diff --git a/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md b/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md deleted file mode 100644 index 7fcd03cbfc..0000000000 --- a/sources/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "How to Upgrade Python Packages with Pip" -[#]: via: "https://itsfoss.com/upgrade-pip-packages/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Upgrade Python Packages with Pip -====== - -When was the last that you updated Python packages installed via Pip? Most of the users tend to forget that those packages also need to be updated, as just updating the system repository is not going to work here. - -So let’s take a moment and see how to update old Python packages with Pip. - -### How to use pip to upgrade Python packages - -[Pip (Pip Installs Packages)][1] is a command line utility to manage python packages. You can think of this as how we use apt to manage packages in Ubuntu and Debian. - -So let’s dive deep into how you can use this fab utility to manage everything related to Python packages. - -#### 1. List outdated packages - -Listing the outdated packages is the best idea to plan how you want to update packages as not many want to update their entire library of packages at once and wants to be selective. - -To list outdated packages of Python, you just have to pair `pip` command with `list` option and `--outdated` flag as shown: - -``` -pip list --outdated -``` - -![outdated packages][2] - -#### 2. Upgrade a specific package - -Once you get the list of the packages that need to be updated, you can be selective as I mentioned earlier, and to update a specific package, you’ll need to follow the given command syntax: - -``` -pip install package_name -U -``` - -For example, I want to upgrade the package named `anime-api` to the most recent version, so I’ll be using the given command: - -``` -pip install anime-api -U -``` - -![update anime api][3] - -#### 3. Upgrade package to specific version - -It is not necessary to use only the most recent version of the software (cough [Debian][4] cough) and if you are in need of using packages to a specific version that may or may not be the most recent software, can be done using the given command syntax: - -``` -pip install --upgrade == -``` - -So I want to update the package named `xdg` to version 5.1 which is one point release behind the most recent build so my command would be: - -``` -pip install --upgrade xdg==5.1 -``` - -![upgrade xdg to specific iteration][5] - -#### 4. Upgrade every package using Pip - -**NOTE: I do not recommend upgrading every package at once as most of the time, the dependencies are too complex to be handled.** - -To upgrade every python package, you’d need to follow the given command: - -``` -pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U -``` - -![upgrade everything][6] - -The above command utilizes [xargs][7]. First, it will grab the packages that are needed to be updated and then perform `pip3 install -U` command over each package. - -And I used pip3 here instead of pip. In Ubuntu 22.04 and later, both pip and pip3 commands are available. - -### Wrapping Up - -Upgrading everything at once has never been a good idea in the case of pip. And I found myself in a state of broken dependencies so make sure you know what you will have. - -And if you have any queries, feel free to ask in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/upgrade-pip-packages/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/install-pip-ubuntu/ -[2]: https://itsfoss.com/wp-content/uploads/2022/09/outdated-packages.png -[3]: https://itsfoss.com/wp-content/uploads/2022/09/update-anime-api.png -[4]: https://www.debian.org/ -[5]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-xdg-to-specific-iteration.png -[6]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-everything.png -[7]: https://linuxhandbook.com/xargs-command/ diff --git a/translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md b/translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md new file mode 100644 index 0000000000..8b81eec3eb --- /dev/null +++ b/translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md @@ -0,0 +1,108 @@ +[#]: subject: "How to Upgrade Python Packages with Pip" +[#]: via: "https://itsfoss.com/upgrade-pip-packages/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 Pip 升级 Python 软件包 +====== + +你上次更新通过 Pip 安装的 Python 软件包是什么时候?大多数用户往往会忘记这些 Python 软件包也需要手动更新,因为仅仅更新系统存储库对于软件包来说是不起作用的。 + +因此,让我们花点时间看看如何使用 Pip,来更新旧的 Python 软件包吧。 + +### 如何使用 Pip 升级 Python 软件包 + +[Pip(Pip Installs Packages)][1] 是一个用于管理 Python 软件包的 命令行实用程序 command line utility 。你可以将 Pip 安装 Python 软件包,类比为在 Ubuntu 和 Debian 中使用 `apt` 管理软件包那样。 + +因此,接下来就让我们深入了解如何使用这个极好的工具 Pip,来管理与 Python 软件包相关的内容吧。 + +#### 1. 列出过时的 Python 软件包 + +在计划更新什么软件包之前,我们先要列出有哪些过时的软件包,你可以在其中选择想要更新的软件包,因为大多数人不会想一下子更新整个软件包库。 + +要列出过时的 Python 软件包,你只需将 `pip` 命令与 `list` 选项、`--outdated` 标志一同使用即可,如下图所示: + +``` +pip list --outdated +``` + +![outdated packages][2] + +#### 2. 升级特定的软件包 + +获得可更新的软件包列表后,你可以像我之前提到的那样,选择你要更新的那个特定的软件包,pip 升级软件包命令的语法如下: + +``` +pip install package_name -U +``` + +例如,我想将名为 `anime-api` 的软件包升级到最新版本,所以我将使用下面的命令来升级: + +``` +pip install anime-api -U +``` + +![update anime api][3] + +#### 3. 将软件包升级到特定的版本 + +没有必要总是使用软件的最新版本,如果你想将软件包升级到不是最新的某个特定版本,参考如下的命令语法: + +``` +pip install --upgrade == +``` + +例如,我想将名为 `xdg` 的软件包更新到 5.1 版本,5.1 版本是最新版本的前一个版本,所以可以使用以下命令: + +``` +pip install --upgrade xdg==5.1 +``` + +![upgrade xdg to specific iteration][5] + +#### 4. 使用 Pip 一次性升级所有软件包 + +**请注意:我不建议你一次性升级所以软件包,因为 Python 软件包的依赖项太复杂了,一次性的升级无法处理相互依赖项。** + +要一次性升级所有 python 软件包,你可以使用以下命令: + +``` +pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U +``` + +![upgrade everything][6] + +上面的命令使用了 [xargs][7]。首先,会得到所有需要更新的软件包,然后对每个软件包执行 `pip3 install -U` 命令。 + +我在这里使用的是 pip3,而不是 pip。在 Ubuntu 22.04 及更高的版本中,pip 和 pip3 命令都可以使用。 + +### 总结 + +使用 Pip 一次性更新所有 Python 软件包并不是一个好主意。我发现一次性更新后,软件包之间的依赖关系被破坏了,所以请确保只更新你想要更新的软件包。 + +如果你还有其他的疑问,就请在评论区中留言吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/upgrade-pip-packages/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/install-pip-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/09/outdated-packages.png +[3]: https://itsfoss.com/wp-content/uploads/2022/09/update-anime-api.png +[4]: https://www.debian.org/ +[5]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-xdg-to-specific-iteration.png +[6]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-everything.png +[7]: https://linuxhandbook.com/xargs-command/ From 60e5a3984b96f0a1a7fde0dadf2bae70f5c15ba3 Mon Sep 17 00:00:00 2001 From: MareDevi Date: Sat, 5 Nov 2022 16:43:11 +0800 Subject: [PATCH 1890/3123] Update 20210426 How we built an open source design system to create new community logos.md --- ...gn system to create new community logos.md | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/sources/tech/20210426 How we built an open source design system to create new community logos.md b/sources/tech/20210426 How we built an open source design system to create new community logos.md index 6032ddb852..ed562d462c 100644 --- a/sources/tech/20210426 How we built an open source design system to create new community logos.md +++ b/sources/tech/20210426 How we built an open source design system to create new community logos.md @@ -7,107 +7,106 @@ [#]: publisher: ( ) [#]: url: ( ) -How we built an open source design system to create new community logos +我们如何建立一个开源的设计系统来创造新的社区Logo ====== -Learn how Ansible's new logos were developed with stakeholder input to -ensure a consistent brand across the entire project. +了解Ansible的新logo是如何根据股东的意见开发以确保整个项目的品牌一致性。(确保整个项目有一个统一的品牌) ![UX design Mac computer with mobile and laptop][1] -As interaction designers on Red Hat's User Experience (UX) Design and Ansible product teams, we worked for about six months to build a logo family with the Ansible community. This journey started even earlier when a project manager asked us for a "quick and easy" logo for a slide deck. After gathering a few requirements, we presented a logo to the stakeholders within a few days and without much need for iteration. A few months later, another stakeholder decided they would also benefit from having imagery for their materials, so we repeated the process. +作为红帽的用户体验(UX)设计和Ansible产品团队的交互设计师,我们花了大约6个月的时间为Ansible社区建立了一系列logo。 这段旅程开始得很早,当时一位项目经理要求我们为一个幻灯片提供一个 "快速而简单 "的标志。在收集了一些需求后,我们在几天内就向股东展示了一个标志,而且不需要太多迭代。几个月后,另一个股东决定他们也将从材料的图像中受益,所以我们重复了这个过程。 -At this point, we noticed a pattern: logo resources like these no longer represented individual requests but rather a common need across the Ansible project. After completing several logo requests, we had built a makeshift series that—without conscious branding and design conventions—created the potential for visual inconsistencies across the Ansible brand. As the logo collection grew, we recognized this looming problem and the need to combat it. +在这一点上,我们注意到一个模式:像这样的logo资源不再代表个人的要求,而是整个Ansible项目的共同需要。在完成了几个logo要求后,我们设计了一个临时的系列,但在没有意识到品牌和设计惯例的情况下,造成了整个Ansible品牌的视觉不一致的可能性。随着logo系列的增加,我们认识到了这个迫在眉睫的问题,并需要解决它。 -Our solution was to create an Ansible design system, a brand-specific resource to guide consistent logo design well into the future. +我们的解决方案是创建一个Ansible设计系统,这是一个针对品牌的资源,可以指导未来一致的标志设计。 -### What is a design system? +### 什么是设计系统? -A design system is a collection of reusable assets and guidelines that help inform the visual language of any digital product suite. Design systems create patterns to bring separate products together and elevate brands through scalability and consistency. +设计系统是一个可重复使用的资源和指导方法的集合,有助于告知任何数字产品套件的视觉语言。设计系统创造了一些模式,将独立的产品整合在一起,并通过可扩展性和一致性提升品牌。 -Especially in a large corporation with multiple products in the portfolio, scaling does not come easily without standardization as different teams contribute to each product. Design systems work as a baseline for each team to build new assets on. With a standardized look and feel, products are unified as one family across the portfolio. +特别是在一个有多种产品的大公司里,如果没有标准化,扩展起来就不容易,因为不同的团队对每个产品都有贡献。设计系统可以作为每个团队建立新资产的基线。有了标准化的外观和感觉,产品在整个组合中被统一为一个家族。 -### Getting started building a design system +### 开始构建一个设计系统 -After receiving a series of requests from stakeholders to create logos for the open source Ansible community, such as Ansible Builder, Ansible Runner, and Project Receptor, we decided to design a structure for our workflow and create a single source of truth to work for moving forward. +在收到股东提出的为开源Ansible社区(如Ansible Builder、Ansible Runner和Project Receptor)创建logo的一系列要求后,我们决定为我们的工作流程设计一个结构,并创建一个单一的事实来源,为之努力。 -First, we conducted a visual audit of the existing logos to determine what we had to work with. Ansible's original logo family consists of four main images: the Angry Spud for AWX, the Ansibull for Ansible Core/Engine, and the monitor with wings for AWX. Most of the logos were tied together with a consistent shade of red and bull imagery, but the stroke width, stroke color, line quality, and typography were vast and varied. +首先,我们对现有的logo进行了视觉审计,以确定我们要做的是什么。 Ansible的原始logo系列由四个主要图像组成:代表AWX的Angry Spud,代表Ansible Core/Engine的Ansibull,以及代表AWX的带翅膀的显示器。 大部分的标志都是用一致的红色阴影和公牛的形象联系在一起的,但是笔画的宽度、笔画的颜色、线条的质量和排版都是庞大而多样的。 ![Original Ansible logos][2] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -The Angry Spud uses a tan outline and a hand-drawn style, while the bull is a symmetrical, geometric vector. The AWX monitor was the outlier with its thin line-art wings, blue vector rectangle, and Old English typeface (not included here, but an exception from the rest of the family, which uses a modern sans serif). +愤怒的飞毛腿使用棕褐色的轮廓和手绘风格,而公牛则是一个对称的几何矢量。AWX显示器是一个异类,它有细线画的翅膀,蓝色的矢量矩形,以及古英语字体(这里没有包括在内,但与家族中其他使用现代无衬线的字体相比,它是一个例外)。 -### Establishing new design criteria +### 确立新的设计标准 -Taking color palette, typography, and imagery into consideration, we generated a consistent composition that features the Ansibull for all core Ansible products, along with bold lines and vibrant colors. +考虑到调色板、排版和图像,我们产生了一个一致的构图,以Ansibull为特色的所有核心Ansible产品,以及大胆的线条和充满活力的颜色。 ![Ansible design system][4] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -The new Ansible community logo design style guide details the color palette, typography, sizing, spacing, and logo variations for Ansible product logos. +新的Ansible社区logo设计风格指南详细说明了Ansible产品logo的调色、排版、尺寸、间距和logo变化。 -The new style guide presents a brand new, modern custom typeface based on GT America by [Grilli Type][5], an independent Swiss type foundry. We created a softer look for the typeface to match the imagery's roundedness by rounding out certain corners of each letter. +新的风格指南展示了一种全新的、现代的定制字体,该字体基于瑞士独立字体铸造厂[Grilli Type][5]的GT America。我们为该字体创造了一个柔和的外观,通过使每个字母的圆角来配合图像的圆润度。 -We decided to curate a more lively, saturated, and universal color palette by incorporating more colors in the spectrum and basing them on primary colors. The new palette features light blue, yellow, and pink, each with a lighter highlight and darker shadow. This broader color scope allows more flexibility within the system and introduces a 3D look and feel. +我们决定通过在光谱中加入更多的颜色并以原色为基础,设计一个更生动、更饱和、更普遍的调色板。新的调色板具有浅蓝色、黄色和粉红色,每种颜色都有较浅的高光和较深的阴影。这种更广泛的颜色范围使系统内有更多的灵活性,并引入了3D的外观和感觉。 ![New Ansible logos][6] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -We also introduced new imagery, such as the hexagons in the Receptor and AWX logos for visual continuity. Finally, we made sure each logo works on both light and dark backgrounds for maximum flexibility. +我们还引入了新的图像,如Receptor和AWXlogo中的六边形,以保持视觉上的连续性。最后,我们确保每个logo在浅色和深色背景上都能使用,以获得最大的灵活性。 -### Expanding the design portfolio +### 拓展设计组合 -Once we established the core logo family, we moved onto creating badges for Ansible services, such as Ansible Demo and Ansible Workshop. To differentiate services from products, we decided to enclose service graphics in a circle that contains the name of the service in the same custom typography. The new service badges show the baby Ansibull (from the Ansible Builder logo) completing tasks related to each service, such as pointing to a whiteboard for Ansible Demo or using building tools for Ansible Workshop. +一旦我们建立了核心logo系列,我们就开始为Ansible服务创建徽章,如Ansible Demo和Ansible Workshop。为了将服务与产品区分开来,我们决定将服务图形包围在一个圆圈中,圆圈中包含了相同的定制排版的服务名称。新的服务徽章显示了幼儿Ansibull(来自Ansible Builder的标志)正在完成与每个服务相关的任务,例如Ansible Demo指向白板,Ansible Workshop则使用构建工具。 ![New Ansible services logos][7] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -### Using open source for design decisions +### 利用开放源码进行设计决策 -The original AWX logo was influenced by rock-and-roll imagery, such as the wings and the heavy metal typeface (omitted from the image here). +最初的AWX标志受到了摇滚乐图像的影响,如翅膀和重金属字体(此处省略)。 ![Original AWX logo][8] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -Several members of the Ansible community, including the Red Hat Diversity and Inclusion group, brought to our attention that these elements resemble imagery used by hate groups. +Ansible社区的一些成员,包括红帽多样性和包容性小组,提请我们注意,这些元素类似于仇恨组织使用的图像。 -Given the social implications of the original logo's imagery, we had to work quickly with the Ansible community to design a replacement. Instead of working in a silo, as we did for the initial logos, we broadened the project's scope to carefully consider a wider range of stakeholders, including the Ansible community, Red Hat Diversity and Inclusion group, and Red Hat Legal team. +考虑到原logo的社会影响,我们必须迅速与Ansible社区合作,设计一个替代logo。我们没有像最初的logo那样在一个孤岛上工作,而是扩大了项目的范围,仔细考虑了更多的利益相关者,包括Ansible社区、红帽多样性和包容性小组,以及红帽法律团队。 -We started brainstorming by reaching out to the Ansible open source community for ideas. One of the Ansible engineers, Rebeccah Hunter, contributed in the sketching phase and later became an embedded part of our design team. Part of the challenge of involving a large group of stakeholders was that we had a variety of ideas for new logo concepts, ranging from an auxiliary cable to a bowl of ramen. +我们开始了头脑风暴,向Ansible开源社区征求意见。Ansible的一位工程师Rebeccah Hunter在草图绘制阶段做出了贡献,后来成为我们设计团队中的一员。让一大群股东参与进来的挑战之一是,我们对新的标志概念有各种各样的想法,从一条辅助电缆到一碗拉面。 -We sketched five community-surfaced logos, each featuring a different branded visual: a sprout, a rocket, a monitor, a bowl of ramen, and an auxiliary cable. +我们勾画了五个社区外部的logo,每个标识都有不同的品牌视觉:一个豆芽、一个火箭、一个显示器、一碗拉面和一个辅助电缆。 ![AWX logo concepts][9] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -After completing these initial concept sketches, we set up a virtual voting mechanism that we used throughout the iteration process. This voting system allowed us to use community feedback to narrow from five initial concepts down to three: the rocket, the bowl of ramen, and the monitor. We further iterated on these three directions and presented back, via a Slack channel dedicated to this effort, until we landed on one direction, the AWX monitor, that aligned with the community's vision. +在完成这些初步的概念草图后,我们建立了一个虚拟的投票机制,并在整个迭代过程中使用。这个投票系统使我们能够利用社区的反馈,从五个初始概念缩小到三个:火箭、一碗拉面和显示器。我们在这三个方向上进一步迭代,并通过专门的Slack频道进行反馈,直到我们找到一个符合社区愿景的方向,即AWX显示器。 ![New AWX logo][10] (Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) -With community voices as our guide, we pursued the monitor logo concept for AWX. We preserved the monitor element from the original logo while modernizing the look and feel to match our updated design system. We used a more vibrant color palette, a cleaner sans-serif typeface, and elements, including the hexagon motif, from the Project Receptor logo. +以社区的意见为指导,我们为AWX追求显示器的logo概念。我们保留了原logo中的显示器元素,同时使其外观和感觉现代化,以配合我们更新的设计系统。我们使用了更鲜艳的色调,更简洁的无衬线字体,以及来自Project Receptor logo的元素,包括六角形图案。 -By engaging with our community from the beginning of the process, we were able to design and iterate in the open with a sense of inclusiveness from all stakeholders. In the end, we felt this was the best approach for replacing a controversial logo. The final version was handed off to the Red Hat Legal team, and after approval, we replaced all current assets with this new logo. +通过从一开始就与我们的社区接触,我们能够在公开场合进行设计和迭代,所有股东都有一种包容感。最后,我们认为这是取代一个有争议的logo的最好方法。最终的版本被移交给了红帽法律团队,在获得批准后,我们用这个新的logo替换了所有的现有资产。 -### Key takeaways +### 主要收获 -Creating a set of rules and assets for a design system keeps your digital products consistent across the board, eliminates brand confusion, and enables scalability. +为设计系统创建一套规则和资源,使你的数字产品全面保持一致,消除品牌混乱,并实现可扩展性。 -As you explore building a design system with your own community, you may benefit from these key takeaways we learned along our path: +在你探索与你自己的社区建立一个设计系统时,你可能会从我们在这条路上学到的这些关键经验中受益: - * Scaling new logos with a design system is a much easier process than without one. - * Juggling design options becomes less daunting when you use a polling system to validate results. - * Directing a large audience's attention on sets of three eliminates decision fatigue and focuses community feedback. + * 用设计系统来扩展新的标识,比没有设计系统要容易得多。 + * 当你使用投票系统来验证结果时,杂乱无章的设计方案就会变得不那么令人生畏。 + * 将大量群众的注意力引向多组,消除决策疲劳,集中社区反馈。 -We hope this article provides insight into designing a system with an open source community and helps you recognize the benefit of developing a system early in your process. If you are creating a new design system, what questions do you have? And if you have created one, what lessons have you learned? Please share your ideas in the comments. +我们希望这篇文章能够为设计一个具有开放源码社区的系统提供启示,并帮助你认识到在早期开发系统的好处。如果你正在创建一个新的设计系统,你有什么问题?如果你已经创建了一个,你学到了什么教训?请在评论中分享你的想法。 -------------------------------------------------------------------------------- @@ -115,7 +114,7 @@ via: https://opensource.com/article/21/4/ansible-community-logos 作者:[Fiona Lin][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[MareDevi](https://github.com/MareDEvi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 65d8deee74c8632180e1590a4d5cb909a879124f Mon Sep 17 00:00:00 2001 From: MareDevi Date: Sat, 5 Nov 2022 18:21:57 +0800 Subject: [PATCH 1891/3123] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... an open source design system to create new community logos.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210426 How we built an open source design system to create new community logos.md (100%) diff --git a/sources/tech/20210426 How we built an open source design system to create new community logos.md b/translated/tech/20210426 How we built an open source design system to create new community logos.md similarity index 100% rename from sources/tech/20210426 How we built an open source design system to create new community logos.md rename to translated/tech/20210426 How we built an open source design system to create new community logos.md From ade9bd708b1f779f669e5824bf781feab77c8efd Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sat, 5 Nov 2022 23:24:47 +0800 Subject: [PATCH 1892/3123] TSL --- ...903 Infuse your awk scripts with Groovy.md | 348 ------------------ ...903 Infuse your awk scripts with Groovy.md | 348 ++++++++++++++++++ 2 files changed, 348 insertions(+), 348 deletions(-) delete mode 100644 sources/tech/20220903 Infuse your awk scripts with Groovy.md create mode 100644 translated/tech/20220903 Infuse your awk scripts with Groovy.md diff --git a/sources/tech/20220903 Infuse your awk scripts with Groovy.md b/sources/tech/20220903 Infuse your awk scripts with Groovy.md deleted file mode 100644 index c8d3a03714..0000000000 --- a/sources/tech/20220903 Infuse your awk scripts with Groovy.md +++ /dev/null @@ -1,348 +0,0 @@ -[#]: subject: "Infuse your awk scripts with Groovy" -[#]: via: "https://opensource.com/article/22/9/awk-groovy" -[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" -[#]: collector: "lkxed" -[#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Infuse your awk scripts with Groovy -====== -Awk and Groovy complement each other to create robust, useful scripts. - -Recently I wrote a series on using Groovy scripts to clean up the tags in my music files. I developed a [framework][2] that recognized the structure of my music directory and used it to iterate over the content files. In the final article of that series, I separated this framework into a utility class that my scripts could use to process the content files. - -This separate framework reminded me a lot of the way awk works. For those of you unfamiliar with awk, you might benefit from Opensource.com's eBook, [A practical guide to learning awk][3]. - -I have used awk extensively since 1984, when our little company bought its first "real" computer, which ran System V Unix. For me, awk was a revelation: It had associative memory— think arrays indexed by strings instead of numbers. It had regular expressions built in, seemed designed to deal with data, especially in columns, and was compact and easy to learn. Finally, it was designed to work in Unix pipelines, reading its data from standard input or files and writing to output, with no ceremony required to do so—data just appeared in the input stream. - -To say that awk has been an essential part of my day-to-day computing toolkit is an understatement. And yet there are a few things about how I use awk that leave me unsatisfied. - -Probably the main issue is that awk is good at dealing with data presented in delimited fields but curiously not good at handling comma-separated-value files, which can have field delimiters embedded within a field, provided that the field is quoted. Also, regular expressions have moved on since awk was invented, and needing to remember two sets of regular expression syntax rules is not conducive to bug-free code. [One set of such rules is bad enough][4]. - -Because awk is a small language, it's missing some things that I sometimes find useful, like a richer assortment of base types, structures, switch statements, and so on. - -In contrast, Groovy has all of these good things: access to [the OpenCSV library][5], which facilitates dealing with CSV files, Java regular expressions and great matching operators, a rich assortment of base types, classes, switch statements, and more. - -What Groovy lacks is the simple pipeline-oriented view of data as an incoming stream and processed data as an outgoing stream. - -But my music directory processing framework made me think, maybe I can create a Groovy version of awk's "engine". That's my objective for this article. - -### Install Java and Groovy - -Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed following the instructions on the [Groovy homepage][6]. A nice alternative for Linux users is [SDKMan][7], which can be used to get multiple versions of Java, Groovy and many other related tools. For this article, I'm using SDK's releases of: - -* Java: version 11.0.12-open of OpenJDK 11; -* Groovy: version 3.0.8. - -### Creating awk with Groovy - -The basic idea here is to encapsulate the complexities of opening a file or files for processing, splitting the line into fields, and providing access to the stream of data in three parts: - -* Before any data is processed -* On each line of data -* After all data is processed - -I'm not going for the general case of replacing awk with Groovy. Instead, I'm working toward my typical use case, which is: - -* Use a script file rather than having the code on the command line -* Process one or more input files -* Set my default field delimiter to `|` and split lines read on that delimiter -* Use OpenCSV to do the splitting (what I can't do in awk) - -### The framework class - -Here's the "awk engine" in a Groovy class: - -``` -1 @Grab('com.opencsv:opencsv:5.6') - 2 import com.opencsv.CSVReader - 3 public class AwkEngine { - 4 // With admiration and respect for - 5 //     Alfred Aho - 6 //     Peter Weinberger - 7 //     Brian Kernighan - 8 // Thank you for the enormous value - 9 // brought my job by the awk -10 // programming language -11 Closure onBegin -12 Closure onEachLine -13 Closure onEnd - -14 private String fieldSeparator -15 private boolean isFirstLineHeader -16 private ArrayList fileNameList -    -17 public AwkEngine(args) { -18     this.fileNameList = args -19     this.fieldSeparator = "|" -20     this.isFirstLineHeader = false -21 } -    -22 public AwkEngine(args, fieldSeparator) { -23     this.fileNameList = args -24     this.fieldSeparator = fieldSeparator -25     this.isFirstLineHeader = false -26 } -    -27 public AwkEngine(args, fieldSeparator, isFirstLineHeader) { -28     this.fileNameList = args -29     this.fieldSeparator = fieldSeparator -30     this.isFirstLineHeader = isFirstLineHeader -31 } -    -32 public void go() { -33     this.onBegin() -34     int recordNumber = 0 -35     fileNameList.each { fileName -> -36         int fileRecordNumber = 0 -37         new File(fileName).withReader { reader -> -38             def csvReader = new CSVReader(reader, -39                 this.fieldSeparator.charAt(0)) -40             if (isFirstLineHeader) { -41                 def csvFieldNames = csvReader.readNext() as -42                     ArrayList -43                 csvReader.each { fieldsByNumber -> -44                     def fieldsByName = csvFieldNames. -45                         withIndex(). -46                         collectEntries { name, index -> -47                             [name, fieldsByNumber[index]] -48                         } -49                     this.onEachLine(fieldsByName, -50                             recordNumber, fileName, -51                             fileRecordNumber) -52                     recordNumber++ -53                     fileRecordNumber++ -54                 } -55             } else { -56                 csvReader.each { fieldsByNumber -> -57                     this.onEachLine(fieldsByNumber, -58                         recordNumber, fileName, -59                         fileRecordNumber) -60                     recordNumber++ -61                     fileRecordNumber++ -62                 } -63             } -64         } -65     } -66     this.onEnd() -67 } -68 } -``` - -While this looks like a fair bit of code, many of the lines are continuations of a split longer lines (for example, normally you would combine lines 38 and 39, lines 41 and 42, and so on). Let's look at this line by line. - -Line 1 uses the `@Grab` annotation to fetch the OpenCSV library version 5.6 from [Maven Central][8]. No XML required. - -In line 2, I import OpenCSV's `CSVReader` class. - -In line 3, just as with Java, I declare a public utility class, `AwkEngine`. - -Lines 11-13 define the Groovy Closure instances used by the script as hooks into this class. These are "public by default" as is the case with any Groovy class—but Groovy creates the fields as private and external references to these (using getters and setters provided by Groovy). I'll explain that further in the sample scripts below. - -Lines 14-16 declare the private fields—the field separator, a flag to indicate whether the first line of a file is a header, and a list for the file name. - -Lines 17-31 define three constructors. The first receives the command line arguments. The second receives the field separator character. The third receives the flag indicating whether the first line is a header or not. - -Lines 31-67 define the engine itself, as the `go()` method. - -Line 33 calls the `onBegin()` closure (equivalent to the awk `BEGIN {}` statement). - -Line 34 initializes the `recordNumber` for the stream (equivalent to the awk `NR` variable) to 0 (note I am doing 0-origin here rather than the awk 1-origin). - -Lines 35-65 use each `{}` to loop over the list of files to be processed. - -Line 36 initializes the `fileRecordNumber` for the file (equivalent to the awk `FNR` variable) to 0 (0-origin, not 1-origin). - -Lines 37-64 get a `Reader` instance for the file and process it. - -Lines 38-39 get a `CSVReader` instance. - -Line 40 checks to see whether the first line is being treated as a header. - -If the first line is being treated as a header, then lines 41-42 get the list of field header names from the first record. - -Lines 43-54 process the rest of the records. - -Lines 44-48 copy the field values into the map of `name:value`. - -Lines 49-51 call the onEachLine`()` closure (equivalent to what appears in an awk program between `BEGIN {}` and `END {}`, though no pattern can be attached to make the execution conditional), passing in the map of `name:value`, the stream record number, the file name and the file record number. - -Lines 52-53 increment the stream record number and file record number. - -Otherwise: - -Lines 56-62 process the records. - -Lines 57-59 call the `onEachLine()` closure, passing in the array of field values, the stream record number, the file name and the file record number. - -Lines 60-61 increment the stream record number and file record number. - -Line 66 calls the `onEnd()` closure (equivalent to the awk `END {}` ). - -That's it for the framework. Now you can compile it: - -``` -$ groovyc AwkEngine.groovy -``` - -A couple of comments: - -If an argument is passed in that is not a file, the code fails with a standard Groovy stack trace, which looks something like this: - -``` -Caught: java.io.FileNotFoundException: not-a-file (No such file or directory) -java.io.FileNotFoundException: not-a-file (No such file or directory) -at AwkEngine$_go_closure1.doCall(AwkEngine.groovy:46) -``` - -OpenCSV tends to return `String[]` values, which are not as convenient as `List` values in Groovy (for example there is no `each {}` defined for an array). Lines 41-42 convert the header field value array into a list, so perhaps `fieldsByNumber` in line 57 should also be converted into a list. - -### Using the framework in scripts - -Here's a very simple script using `AwkEngine` to examine a file like `/etc/group`, which is colon-delimited and has no header: - -``` -1 def ae = new AwkEngine(args, ‘:') -2 int lineCount = 0 - -3 ae.onBegin = { -4    println “in begin” -5 } - -6 ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> -7    if (lineCount < 10) -8       println “fileName $fileName fields $fields” -9       lineCount++ -10 } - -11 ae.onEnd = { -12    println “in end” -13    println “$lineCount line(s) read” -14 } - -15 ae.go() -``` - -Line 1 calls the two-argument constructor, passing in the argument list and the colon as delimiter. - -Line 2 defines a script top-level variable, `lineCount`, used to record the count of lines read (note that Groovy closures don't require variables defined external to the closure to be final). - -Lines 3-5 define the `onBegin()` closure, which just prints the string "in begin" on standard output. - -Lines 6-10 define the `onEachLine()` closure, which prints the file name and the fields for the first 10 lines and in any case increments the line count. - -Lines 11-14 define the `onEnd()` closure, which prints the string "in end" and the count of the number of lines read. - -Line 15 runs the script using the `AwkEngine`. - -Run this script as follows: - -``` -$ groovy Test1Awk.groovy /etc/group -in begin -fileName /etc/group fields [root, x, 0, ] -fileName /etc/group fields [daemon, x, 1, ] -fileName /etc/group fields [bin, x, 2, ] -fileName /etc/group fields [sys, x, 3, ] -fileName /etc/group fields [adm, x, 4, syslog,clh] -fileName /etc/group fields [tty, x, 5, ] -fileName /etc/group fields [disk, x, 6, ] -fileName /etc/group fields [lp, x, 7, ] -fileName /etc/group fields [mail, x, 8, ] -fileName /etc/group fields [news, x, 9, ] -in end -78 line(s) read -$ -``` - -Of course the `.class` files created by compiling the framework class must be on the classpath for this to work. Naturally, you could use `jar` to package up those class files. - -I really like Groovy's support for the delegation of behavior, which requires various shenanigans in other languages. For many years Java required anonymous classes and quite a bit of extra code. Lambdas have gone a long way to fixing this, but they still cannot refer to non-final variables outside their scope. - -Here's another, more interesting script that is very reminiscent of my typical use of awk: - -``` -1 def ae = new AwkEngine(args, ‘;', true) -2 ae.onBegin = { -3    // nothing to do here -4 } - -5 def regionCount = [:] -6    ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> -7    regionCount[fields.REGION] = -8    (regionCount.containsKey(fields.REGION) ? -9    regionCount[fields.REGION] : 0) + -10   (fields.PERSONAS as Integer) -11 } - -12 ae.onEnd = { -13    regionCount.each { region, population -> -14    println “Region $region population $population” -15    } -16 } - -17 ae.go() -``` - -Line 1 calls the three-argument constructor, recognizing that this is a "true CSV" file with the header being on the first line. Because it's a Spanish file, where the comma is used as the decimal "point", the standard delimiter is the semicolon. - -Lines 2-4 define the `onBegin()` closure which in this case doesn't do anything. - -Line 5 defines an (empty) `LinkedHashMap`, which you will fill with String keys and Integer values. The data file is from Chile's most recent census and you are calculating the number of people in each region of Chile in this script. - -Lines 6-11 processes the lines in the file (there are 180,500 including the header)—note that in this case, because you are defining line 1 as the CSV column headers, the fields parameter is going to be an instance of `LinkedHashMap`. - -Lines 7-10 increment the `regionCount` map, using the value in the field REGION as the key and the value in the field PERSONAS as the value—note that, unlike awk, in Groovy you can't refer to a non-existent map entry on the right-hand side and expect a blank or zero value to materialize. - -Lines 12- 16 print out population by region. - -Line 17 runs the script on the `AwkEngine` instance. - -Run this script as follows: - -``` -$ groovy Test2Awk.groovy ~/Downloads/Censo2017/ManzanaEntidad_CSV/Censo*csv -Region 1 population 330558 -Region 2 population 607534 -Region 3 population 286168 -Region 4 population 757586 -Region 5 population 1815902 -Region 6 population 914555 -Region 7 population 1044950 -Region 8 population 1556805 -Region 16 population 480609 -Region 9 population 957224 -Region 10 population 828708 -Region 11 population 103158 -Region 12 population 166533 -Region 13 population 7112808 -Region 14 population 384837 -Region 15 population 226068 -$ -``` - -That's it. For those of you who love awk and yet would like a little more, I hope you enjoy this Groovy approach. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/9/awk-groovy - -作者:[Chris Hermansen][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/clhermansen -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/browser_screen_windows_files.png -[2]: https://opensource.com/article/22/8/music-tagging-framework-groovy -[3]: https://opensource.com/downloads/awk-ebook -[4]: http://regex.info/blog/2006-09-15/247 -[5]: http://opencsv.sourceforge.net/ -[6]: https://groovy.apache.org/download.html -[7]: https://opensource.com/article/22/3/manage-java-versions-sdkman -[8]: https://mvnrepository.com/artifact/com.opencsv/opencsv diff --git a/translated/tech/20220903 Infuse your awk scripts with Groovy.md b/translated/tech/20220903 Infuse your awk scripts with Groovy.md new file mode 100644 index 0000000000..c515288b3e --- /dev/null +++ b/translated/tech/20220903 Infuse your awk scripts with Groovy.md @@ -0,0 +1,348 @@ +[#]: subject: "Infuse your awk scripts with Groovy" +[#]: via: "https://opensource.com/article/22/9/awk-groovy" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: "lxbwolf" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为你的 awk 脚本注入 Groovy +====== +Awk 和 Groovy 相辅相成,可以创建强大、有用的脚本。 + +最近我写了一个关于使用 Groovy 脚本来清理我的音乐文件中的标签的系列。我开发了一个[框架][2],可以识别我的音乐目录的结构,并使用它来遍历内容文件。在该系列的最后一篇文章中,我从框架中分离出一个实用类,我的脚本可以用它来处理内容文件。 + +这个独立的框架让我想起了很多 awk 的工作方式。对于那些不熟悉 awk 的人来说,你学习下发表在 Opensource.com 的电子书 [awk 实用指南][3]。 + +我从 1984 年开始大量使用 awk,当时我们的小公司买了第一台”真正的“计算机,它运行的是 System V Unix。对我来说,awk 是非常完美的:它有关联内存——认为数组是由字符串而不是数字来索引的。它内置了正则表达式,尤其是在列处理中似乎专为处理数据而生,而且结构紧凑,易于学习。最后,它非常适合在 Unix 工作流使用,从标准输入或文件中读取数据并写入到输出,数据不需要经过其他的转换就出现在了输入流中。 + +说 awk 是我日常计算工具箱中的一个重要部分一点也不为过。然而,在我使用 awk 的过程中,有几件事让我感到不满意。 + +可能主要的问题是 awk 善于处理有分隔字段的数据,但很奇怪它不善于处理 CSV 文件,因为 CSV 文件的字段被引号包围时可以嵌入分隔符。另外,自 awk 发明以来,正则表达式已经有了很大的发展,我们需要记住两套正则表达式的语法规则,而这并不利于编写无 bug 的代码。[一套这样的规则已经很糟糕了][4]。 + +由于 awk 是一门简洁的语言,因此它缺少很多我认为有用的东西,比如更丰富的基础类型、结构体、switch 语句等等。 + +相比之下,Groovy 拥有这些能力:请参照 [OpenCSV 库][5],它很擅长处理 CSV 文件、Java 正则表达式和强大的匹配运算符、丰富的基础类型、类、 switch 语句等等。 + +Groovy 所缺乏的是简单的面向管道的概念,即把要处理数据作为一个传入的流,以及把处理过的数据作为一个传出的流。 + +但我的音乐目录处理框架让我想到,也许我可以创建一个 Groovy 版本的 awk "引擎"。这就是我写这篇文章的目的。 + +### 安装 Java 和 Groovy + +Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java 和 Groovy 版本可能都在你的 Linux 发行版的软件库中。Groovy 也可以按照 [Groovy主页][6]上的说明进行安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][7],它可以用来获得多个版本的 Java、Groovy 和其他许多相关工具。在这篇文章中,我使用的是SDK的版本: + +* Java: version 11.0.12-open of OpenJDK 11; +* Groovy: version 3.0.8. + +### 使用 Groovy 创建 awk + +这里的基本想法是将打开一个或多个文件进行处理、将每行分割成字段、以及提供对数据流的访问等复杂情况封装在三个部分: + +* 在处理数据之前 +* 在处理每行数据时 +* 在处理完所有数据之后 + +我并不打算用 Groovy 来取代 awk。相反,我只是在努力实现我的典型用例,那就是: + +* 使用一个脚本文件而不是在命令行写代码 +* 处理一个或多个输入文件 +* 设置默认的分隔符为 `|`,并基于这个分隔符分割所有行 +* 使用 OpenCSV 完成分割工作(awk 做不到) + +### 框架类 + +下面是 “awk 引擎”的 Groovy 类: + +``` +1 @Grab('com.opencsv:opencsv:5.6') + 2 import com.opencsv.CSVReader + 3 public class AwkEngine { + 4 // With admiration and respect for + 5 //     Alfred Aho + 6 //     Peter Weinberger + 7 //     Brian Kernighan + 8 // Thank you for the enormous value + 9 // brought my job by the awk +10 // programming language +11 Closure onBegin +12 Closure onEachLine +13 Closure onEnd + +14 private String fieldSeparator +15 private boolean isFirstLineHeader +16 private ArrayList fileNameList +    +17 public AwkEngine(args) { +18     this.fileNameList = args +19     this.fieldSeparator = "|" +20     this.isFirstLineHeader = false +21 } +    +22 public AwkEngine(args, fieldSeparator) { +23     this.fileNameList = args +24     this.fieldSeparator = fieldSeparator +25     this.isFirstLineHeader = false +26 } +    +27 public AwkEngine(args, fieldSeparator, isFirstLineHeader) { +28     this.fileNameList = args +29     this.fieldSeparator = fieldSeparator +30     this.isFirstLineHeader = isFirstLineHeader +31 } +    +32 public void go() { +33     this.onBegin() +34     int recordNumber = 0 +35     fileNameList.each { fileName -> +36         int fileRecordNumber = 0 +37         new File(fileName).withReader { reader -> +38             def csvReader = new CSVReader(reader, +39                 this.fieldSeparator.charAt(0)) +40             if (isFirstLineHeader) { +41                 def csvFieldNames = csvReader.readNext() as +42                     ArrayList +43                 csvReader.each { fieldsByNumber -> +44                     def fieldsByName = csvFieldNames. +45                         withIndex(). +46                         collectEntries { name, index -> +47                             [name, fieldsByNumber[index]] +48                         } +49                     this.onEachLine(fieldsByName, +50                             recordNumber, fileName, +51                             fileRecordNumber) +52                     recordNumber++ +53                     fileRecordNumber++ +54                 } +55             } else { +56                 csvReader.each { fieldsByNumber -> +57                     this.onEachLine(fieldsByNumber, +58                         recordNumber, fileName, +59                         fileRecordNumber) +60                     recordNumber++ +61                     fileRecordNumber++ +62                 } +63             } +64         } +65     } +66     this.onEnd() +67 } +68 } +``` + +虽然这看起来是相当多的代码,但许多行是因为太长换行了(例如,通常你会合并第 38 行和第 39 行,第 41 行和第 42 行,等等)。让我们逐行看一下。 + +第 1 行使用 `@Grab` 注解从 [Maven Central][8] 获取 OpenCSV 库的 5.6 本周。不需要 XML。 + +第 2 行我引入了 OpenCSV 的 `CSVReader` 类 + +第 3 行,像 Java 一样,我声明了一个 public 实用类 `AwkEngine`。 + +第 11-13 行定义了脚本所使用的 Groovy 闭包实例,作为该类的钩子。像任何 Groovy 类一样,它们“默认是 public”,但 Groovy 将这些字段创建为 private,并对其进行外部引用(使用 Groovy 提供的 getter 和 setter 方法)。我将在下面的示例脚本中进一步解释这个问题。 + +第 14-16 行声明了 private 字段 —— 字段分隔符,一个指示文件第一行是否为标题的 flag,以及一个文件名的列表。 + +第 17-31 行定义了三个构造函数。第一个接收命令行参数。第二个接收字段的分隔符。第三个接收指示第一行是否为标题的 flag。 + +第 31-67 行定义了引擎本身,即 `go()` 方法。 + +第 33 行调用了 `onBegin()` 闭包(等同于 awk 的 `BEGIN {}` 语句)。 + +第 34 行初始化流的 `recordNumber`(等同于 awk 的 `NR` 变量)为 0(注意我这里是从 00 而不是 1 开始的)。 + +第 35-65 行实用 each `{}` 来循环处理列表中的文件。 + +第 36 行初始化文件的 `fileRecordNumber`(等同于 awk 的 `FNR` 变量)为 0(从 0 而不是 1 开始)。 + +第 37-64 行获取一个文件对应的 `Reader` 实例并处理它。 + +第 38-39 行获取一个 `CSVReader` 实例。 + +第 40 行检测第一行是否为标题。 + +如果第一行是标题,那么在 41-42 行会从第一行获取字段的标题名字列表。 + +第 43-54 行处理其他的行。 + +第 44-48 行把字段的值复制到 `name:value` 的 map 中。 + +第 49-51 行调用 `onEachLine()` 闭包(等同于 awk 程序 `BEGIN {}` 和 `END {}` 之间的部分,不同的是,这里不能输入执行条件),传入的参数是 `name:value` map、处理过的总行数、文件名和该文件处理过的行数。 + +第 52-53 行是处理过的总行数和该文件处理过的行数的自增。 + +如果第一行不是标题: + +第 56-62 行处理每一行。 + +第 57-59 调用 `onEachLine()` 闭包,传入的参数是字段值的数组、处理过的总行数、文件名和该文件处理过的行数。 + +第 60-61 行是处理过的总行数和该文件处理过的行数的自增。 + +第 66 行调用 `onEnd()` 闭包(等同于 awk 的 `END {}`)。 + +这就是该框架的内容。现在你可以编译它: + +``` +$ groovyc AwkEngine.groovy +``` + +一点注释: + +如果传入的参数不是一个文件,编译就会失败,并出现标准的 Groovy 堆栈跟踪,看起来像这样: + +``` +Caught: java.io.FileNotFoundException: not-a-file (No such file or directory) +java.io.FileNotFoundException: not-a-file (No such file or directory) +at AwkEngine$_go_closure1.doCall(AwkEngine.groovy:46) +``` + +OpenCSV 可能会返回 `String[]` 值,不像 Groovy 中的 `List` 值那样方便(例如,数组没有 `each {}`)。第 41-42 行将标题字段值数组转换为 list,因此第 57 行的 `fieldsByNumber` 可能也应该转换为 list。 + +### 在脚本中使用这个框架 + +下面是一个使用 `AwkEngine` 来处理 `/etc/group` 之类由冒号分隔并没有标题的文件的简单脚本: + +``` +1 def ae = new AwkEngine(args, ‘:') +2 int lineCount = 0 + +3 ae.onBegin = { +4    println “in begin” +5 } + +6 ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> +7    if (lineCount < 10) +8       println “fileName $fileName fields $fields” +9       lineCount++ +10 } + +11 ae.onEnd = { +12    println “in end” +13    println “$lineCount line(s) read” +14 } + +15 ae.go() +``` + +第 1 行 调用的有两个参数的构造函数,传入了参数列表,并定义冒号为分隔符。 + +第 2 行定义一个脚本级的变量 `lineCount`,用来记录处理过的行数(注意,Groovy 闭包不要求定义在外部的变量为 final)。 + +第 3-5 行定义 `onBegin()` 闭包,在标准输出中打印出 “in begin” 字符串。 + +第 6-10 行定义 `onEachLine()` 闭包,打印文件名和前 10 行字段,无论是否为前 10 行,处理过的总行数 `lineCount` 都会自增。 + +第 11-14 行定义 `onEnd()` 闭包,打印 “in end” 字符串和处理过的总行数。 + +第 15 行运行脚本,使用 `AwkEngine`。 + +像下面一样运行一下脚本: + +``` +$ groovy Test1Awk.groovy /etc/group +in begin +fileName /etc/group fields [root, x, 0, ] +fileName /etc/group fields [daemon, x, 1, ] +fileName /etc/group fields [bin, x, 2, ] +fileName /etc/group fields [sys, x, 3, ] +fileName /etc/group fields [adm, x, 4, syslog,clh] +fileName /etc/group fields [tty, x, 5, ] +fileName /etc/group fields [disk, x, 6, ] +fileName /etc/group fields [lp, x, 7, ] +fileName /etc/group fields [mail, x, 8, ] +fileName /etc/group fields [news, x, 9, ] +in end +78 line(s) read +$ +``` + +当然,编译框架类生成的 `.class` 文件需要在 classpath 中,这样才能正常运行。通常你可以用 `jar` 把这些 class 文件打包起来。 + +我非常喜欢 Groovy 对行为委托的支持,这在其他语言中需要各种诡异的手段。许多年来,Java 需要匿名类和相当多的额外代码。Lambda 已经在很大程度上解决了这个问题,但它们仍然不能引用其范围之外的非 final 变量。 + +下面是另一个更有趣的脚本,它很容易让人想起我对 awk 的典型使用方式: + +``` +1 def ae = new AwkEngine(args, ‘;', true) +2 ae.onBegin = { +3    // nothing to do here +4 } + +5 def regionCount = [:] +6    ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> +7    regionCount[fields.REGION] = +8    (regionCount.containsKey(fields.REGION) ? +9    regionCount[fields.REGION] : 0) + +10   (fields.PERSONAS as Integer) +11 } + +12 ae.onEnd = { +13    regionCount.each { region, population -> +14    println “Region $region population $population” +15    } +16 } + +17 ae.go() +``` + +第 1 行调用了三个函数的构造方法,`true` 表示这是“真正的 CSV” 文件,第一行为标题。由于它是西班牙语的文件,因此它的逗号表示数字的`点`,标准的分隔符是分号。 + +第 2-4 行定义 `onBegin()` 闭包,这里什么也不做。 + +第 5 行定义一个(空的)`LinkedHashmap`,key 是 String 类型,value 是 Integer 类型。数据文件来自于智利最近的人口普查,你要在这个脚本中计算出智利每个地区的人口数量。 + +第 6-11 行处理文件中的行(加上标题一共有 180,500 行)—— 请注意在这个案例中,由于你定义 第 1 行为 CSV 列的标题,因此 `fields` 参数会成为 `LinkedHashMap` 实例。 + +第 7-10 行是 `regionCount` map 计数增加,key 是 `REGION` 字段的值,value 是 `PERSONAS` 字段的值 —— 请注意,与 awk 不同,在 Groovy 中你不能在赋值操作的右边使用一个不存在的 map 而期望得到空值或零值。 + +第 12-16 行,打印每个地区的人口数量。 + +第 17 行运行脚本,调用 `AwkEngine` 。 + +像下面一样运行一下脚本: + +``` +$ groovy Test2Awk.groovy ~/Downloads/Censo2017/ManzanaEntidad_CSV/Censo*csv +Region 1 population 330558 +Region 2 population 607534 +Region 3 population 286168 +Region 4 population 757586 +Region 5 population 1815902 +Region 6 population 914555 +Region 7 population 1044950 +Region 8 population 1556805 +Region 16 population 480609 +Region 9 population 957224 +Region 10 population 828708 +Region 11 population 103158 +Region 12 population 166533 +Region 13 population 7112808 +Region 14 population 384837 +Region 15 population 226068 +$ +``` + +以上为全部内容。对于那些喜欢 awk 但又希望得到更多的东西的人,我希望你能喜欢这种 Groovy 的方法。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/awk-groovy + +作者:[Chris Hermansen][a] +选题:[lkxed][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/clhermansen +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/browser_screen_windows_files.png +[2]: https://opensource.com/article/22/8/music-tagging-framework-groovy +[3]: https://opensource.com/downloads/awk-ebook +[4]: http://regex.info/blog/2006-09-15/247 +[5]: http://opencsv.sourceforge.net/ +[6]: https://groovy.apache.org/download.html +[7]: https://opensource.com/article/22/3/manage-java-versions-sdkman +[8]: https://mvnrepository.com/artifact/com.opencsv/opencsv From 8b8d1723da8a6aedeb54101edae587972cb6ebcb Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sun, 6 Nov 2022 08:16:49 +0800 Subject: [PATCH 1893/3123] translating --- ...ve of Ubuntu- Here are the Mascots of All Ubuntu Releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md index 096deb298b..2e402a9564 100644 --- a/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md +++ b/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/all-Ubuntu-mascots/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3ab4276a9705005c775bf80635d3f76ab8065eae Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 6 Nov 2022 08:36:05 +0800 Subject: [PATCH 1894/3123] RP @geekpi https://linux.cn/article-15219-1.html --- ...lean Up Snap Versions to Free Up Disk Space.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) rename {translated/tech => published}/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md (73%) diff --git a/translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md b/published/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md similarity index 73% rename from translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md rename to published/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md index 366dfc69e7..f524717305 100644 --- a/translated/tech/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md +++ b/published/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md @@ -3,22 +3,24 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15219-1.html" 如何清理 Snap 版本以释放磁盘空间 ====== -**这个带有脚本的快速指南有助于清理旧的 snap 版本并释放 Ubuntu 系统中的一些磁盘空间。** +![](https://img.linux.net.cn/data/attachment/album/202211/06/082905iomvvhsgoooc5czg.jpg) -我在使用 Ubuntu 的测试系统中的磁盘空间不足。因此,我通过 GNOME 的磁盘使用分析器进行调查,以找出哪个包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录,令我惊讶的是,我发现 Snap 和 Flatpak 消耗了大量的存储空间。 +> 这个带有脚本的快速指南有助于清理旧的 Snap 版本并释放 Ubuntu 系统中的一些磁盘空间。 + +我正在使用的 Ubuntu 测试系统中的磁盘空间不足。因此,我通过 GNOME 的磁盘使用分析器进行调查,以找出哪个包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录,令我惊讶的是,我发现 Snap 和 Flatpak 消耗了大量的存储空间。 ![Snap 大小 - 清理前][1] 尽管如此,我始终坚持一个规则:除非必要,否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢原生 deb 和 rpm 包。多年来,我在这个测试系统中安装和移除了一定数量的 Snap 包。 -卸载后出现问题。Snap 在系统中保留了一些残留文件,一般用户不知道。 +但卸载后还有问题。Snap 在系统中保留了一些残留文件,一般用户不知道。 所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`,发现 Snap 保留了以前安装/卸载的软件包的旧版本。 @@ -57,11 +59,11 @@ sudo snap set system refresh.retain=2 set -eu LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do -snap remove "$snapname" --revision="$revision" + snap remove "$snapname" --revision="$revision" done ``` -将上面的脚本以 .sh 格式保存在一个目录中(例如 `clean_snap.sh`),赋予它可执行权限并运行。 +将上面的脚本以 `.sh` 扩展名保存在一个目录中(例如 `clean_snap.sh`),赋予它可执行权限并运行。 ``` chmod +x clean_snap.sh @@ -75,13 +77,13 @@ chmod +x clean_snap.sh ### 结束语 -对于 Snap 的设计效率如何,人们总是争论不休。许多人说,它的设计是坏的,是臃肿的,是消耗系统资源的。这种说法的某些部分是真实的,我不会否认它。如果实施和加强得当,整个沙盒应用的概念是很好的。我相信,与 Snap 相比,Flatpak 工作做得更好。 +对于 Snap 的设计效率如何,人们总是争论不休。许多人说,它的设计是坏的,是臃肿的,是消耗系统资源的。这种说法的某些部分是真实的,我不会否认它。如果实施和加强得当,整个沙盒应用的概念是很好的。但我相信,与 Snap 相比,Flatpak 工作做得更好。 -也就是说,我希望这可以帮助你清理一些磁盘空间。尽管它在 Ubuntu 中进行了测试,但它应该适用于所有支持 Snap 的 Linux 发行版。 +也就是说,我希望这可以帮助你清理一些磁盘空间。尽管它只在 Ubuntu 中进行了测试,但它应该适用于所有支持 Snap 的 Linux 发行版。 -此外,请查看我们关于[如何清理 Ubuntu][7] 的指南以及其他步骤。 +此外,请查看我们关于 [如何清理 Ubuntu][7] 的指南以及其他步骤。 -最后,如果你要清理 **Flatpak** 应用,请参阅[本指南][8]。 +最后,如果你要清理 **Flatpak** 应用,请参阅 [这篇指南][8]。 -------------------------------------------------------------------------------- @@ -90,7 +92,7 @@ via: https://www.debugpoint.com/clean-up-snap/ 作者:[Arindam][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/) 荣誉推出 From 9597fc86874f1dd49e784503614cb781b99a4ed7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 6 Nov 2022 08:55:42 +0800 Subject: [PATCH 1895/3123] RP @chai001125 https://linux.cn/article-15220-1.html --- ...eated on a specific day with the git log command.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) rename {translated/tech => published}/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md (77%) diff --git a/translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md b/published/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md similarity index 77% rename from translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md rename to published/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md index bdbc274031..1fac3cd7ad 100644 --- a/translated/tech/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md +++ b/published/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md @@ -3,16 +3,18 @@ [#]: author: "Agil Antony https://opensource.com/users/agantony" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15220-1.html" 用 git log 命令显示在特定日期的提交记录 ====== -`git log` 命令是 Git 中一个很重要的查看提交记录的工具,它也是人们喜欢使用 Git 的原因之一。 +![](https://img.linux.net.cn/data/attachment/album/202211/06/085449j5diiljl7dzgdr0z.jpg) -`git log` 命令能够让你了解到更多关于贡献者 提交 commit 的记录。使用 `git log` 的一种方式是按日期查看提交记录 。要查看**在指定日期或日期范围内**创建的 Git 存储库中的提交记录,请使用带有选项 `--since` 或 `--until` 或者同时使用以上两个选项的 `git log` 命令。 +> `git log` 命令是 Git 中一个很重要的查看提交记录的工具,它也是人们喜欢使用 Git 的原因之一。 + +`git log` 命令能够让你了解到更多关于贡献者 提交commit 的记录。使用 `git log` 的一种方式是按日期查看提交记录 。要查看**在指定日期或日期范围内**创建的 Git 存储库中的提交记录,请使用带有选项 `--since` 或 `--until` 或者同时使用以上两个选项的 `git log` 命令。 首先,进入你要查看的分支(例如,`main` 分支): @@ -57,7 +59,7 @@ via: https://opensource.com/article/22/10/git-log-command 作者:[Agil Antony][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1d0a6e6878865ca9404f03fe6357c61b92a8aa52 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 6 Nov 2022 09:12:28 +0800 Subject: [PATCH 1896/3123] ALL @wxy https://linux.cn/article-15221-1.html --- ...pen Source Project Is Now RISC-V Compatible.md | 38 +++++++++++++++++++ ...pen Source Project Is Now RISC-V Compatible.md | 38 ------------------- 2 files changed, 38 insertions(+), 38 deletions(-) create mode 100644 published/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md delete mode 100644 sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md diff --git a/published/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md b/published/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md new file mode 100644 index 0000000000..145bf40640 --- /dev/null +++ b/published/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md @@ -0,0 +1,38 @@ +[#]: subject: "The Android Open Source Project Is Now RISC-V Compatible" +[#]: via: "https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/" +[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15221-1.html" + +安卓开源项目(AOSP)现在兼容 RISC-V 了 +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/06/091143bfvf3wz0sluua229.jpg) + +> 安卓的一个重要进展是将安卓开源项目Android Open Source Project(AOSP)移植到 RISC-V 处理器架构。 + +AOSP 已经开始在上游启用 RISC-V,这将促进 RISC-V CPU 在可穿戴设备、物联网,以及最终在智能手机和笔记本电脑中的使用。 + +为了开放生态系统,中国科学院 PLCT 实验室的工程师和软件开发人员在 2020 年开始将 Android 10 移植到 RISC-V 架构上。阿里巴巴的云计算部门和平头哥芯片子公司一起努力保持开发与最新的安卓版本同步。 + +“我们很高兴看到谷歌对构建针对 RISC-V 的 AOSP 的更多支持!阿里云一直致力于通过一系列的创新来支持 RISC-V 社区的发展,比如将安卓的基本功能移植到 RISC-V 上,这证明了在从多媒体到信号处理、设备互联和人工智能等场景中使用基于 RISC-V 的设备的可行性。”阿里云生态系统总监、RISC-V 国际组织的应用与工具水平委员会副主席 David Chen 博士说:“我们期待着与安卓团队合作,为繁荣的 RISC-V 社区做出贡献。” + +通过增强 RISC-V 上的安卓系统的基本功能,在 2021 年,阿里云的专家们付出了巨大的努力,积极推动了软件生态系统的发展。 RISC-V on Android 的工作集中在 RISC-V Android 工作组和软件库中进行。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/ + +作者:[Laveesh Kocher][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://www.opensourceforu.com/author/laveesh-kocher/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/11/android-696x364.jpg diff --git a/sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md b/sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md deleted file mode 100644 index d039e99cc4..0000000000 --- a/sources/news/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md +++ /dev/null @@ -1,38 +0,0 @@ -[#]: subject: "The Android Open Source Project Is Now RISC-V Compatible" -[#]: via: "https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -The Android Open Source Project Is Now RISC-V Compatible -====== - -![android][1] - -A crucial advancement for the technology is the porting of the Android Open Source Project (AOSP) to the RISC-V processor architecture. - -The AOSP has begun enabling RISC-V upstream, which will promote the use of RISC-V CPUs in wearables, the Internet of Things, and eventually smartphones and laptops. - -In an effort to open up the ecosystem, engineers and software developers from the Chinese Academy of Sciences’ PLCT Lab started porting Android 10 to the RISC-V architecture in 2020. Together, Alibaba’s Cloud division and T-Head chip subsidiary have worked hard to maintain the development up to date with the latest Android releases. - -“We are glad to see more support from Google for building AOSP targeting RISC-V! Alibaba Cloud has been committed to supporting the RISC-V community through a series of innovations, such as progressing the porting of basic Android functions onto RISC-V, which proves the feasibility of using RISC-V based devices in scenarios ranging from multimedia to signal processing, device interconnection, and artificial intelligence. We look forward to engaging with the Android team to contribute to the thriving RISC-V community down the road,” said Dr. David Chen, Director of Ecosystem from Alibaba Cloud and Vice Chair of the Applications & Tools Horizontal Committee at RISC-V International. - -By enhancing the fundamental capabilities of Android on RISC-V, experts at Alibaba Cloud made a significant effort to actively assist the software ecosystem throughout 2021. The RISC-V Android Working Group and the software repository are where the RISC-V on Android efforts are concentrated. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/ - -作者:[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/11/android-696x364.jpg From 731ad13fa835dad8c85fa771c96969a3762520d5 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Sun, 6 Nov 2022 15:06:49 +0800 Subject: [PATCH 1897/3123] =?UTF-8?q?Update=2020221102.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Linux=20Mint's=20Update=20Manager=20Now=20Supports?= =?UTF-8?q?=20Flatpak.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md index a7a1436009..6f05ff9fd5 100644 --- a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md +++ b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/linux-mint-update-manager/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "qfzy1233" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -83,7 +83,7 @@ via: https://news.itsfoss.com/linux-mint-update-manager/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[qfzy1233](https://github.com/qfzy1233) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 825ab4ce52c822c8313aa11819c060aa5e9a3f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:09:02 +0800 Subject: [PATCH 1898/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221105.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Fix=20scanned=20images=20with=20ImageMagick.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Fix scanned images with ImageMagick.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md diff --git a/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md b/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md new file mode 100644 index 0000000000..117c015832 --- /dev/null +++ b/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md @@ -0,0 +1,91 @@ +[#]: subject: "Fix scanned images with ImageMagick" +[#]: via: "https://opensource.com/article/22/11/fixing-scanned-images-imagemagick" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fix scanned images with ImageMagick +====== + +It's easy to correct images, even in batches, with this open source tool. + +Years ago while rummaging through the contents of a shelf in a used bookstore, I happened upon a booklet titled "UNIX System Command Summary for Berkeley 4.2 & 4.3 BSD," published by Specialized Systems Consultants. I bought it as a curiosity item because it was nearly 20 years old yet still largely applicable to modern Linux and BSD. + +That amused me then and now. A booklet written in 1986 was still largely relevant in 2016, while books on the same shelf about a proprietary OS weren't worth the paper they were printed on. (Think about it: What technology do you think is going to survive a zombie apocalypse?) I've had the booklet on my own bookshelf for several years now, but it occurred to me that it's probably worth doing a little digital preservation of this artifact, so I decided to scan the booklet to create a [CBZ ebook][1]. + +Scanning was easy, albeit time-consuming, with [Skanlite][2]. After I was finished, however, I discovered that some pages weren't quite level. + +![A page of text, including a table of contents and a glossary, that is crooked and distorted][3] + +In printing, this is called a registration problem, meaning that the position of what's being printed isn't correctly orientated on the page. + +### ImageMagick + +[ImageMagick][4] is a non-interactive terminal-based graphics editor. It might seem counterintuitive to try to edit a graphic in a graphic-less environment like a text-only terminal, but it's actually very common. For instance, when you upload an image to use as a profile picture to a web application, it's likely that a script on the application's server processes your image using ImageMagick or its libraries. The advantage of a non-interactive editor is that you can formulate what needs to be done to a sample image, then apply those effects to hundreds of other images at the press of a button. + +ImageMagick is generally just as capable as any graphics editor, as long as you take the time to uncover its many functions and how to combine them to achieve the desired effects. In this case, I want to rotate pages that are askew. After searching through ImageMagick's documentation, I discovered that the ImageMagick term for the solution I needed was called deskew. Aligning your terminology with somebody else's terminology is a challenge in anything that you don't already know, so when you approach ImageMagick (or anything), keep in mind that the word you've decided describes a problem or solution may not be the same word used by someone else. + +To deskew an image with crooked text using ImageMagick: + +``` +$ convert page_0052.webp -deskew25% fix_0052.webp +``` + +The `-deskew` option represents the threshold of acceptable skew. A skew is determined by tracing peaks and valleys of objects that appear to be letters. Depending on how crooked your scan is, you may need more or less than 25% threshold. I've gone as high as 80%, and so far nothing under 25% has had an effect. + +Here's the result: + +![The same page of text, now with the text properly aligned][5] + +Fixed! Applying this to the remaining 55 pages of the document fixed skewed pages while doing nothing to pages that were already straight. In other words, it was safe to run this command on pages that needed no adjustment, thanks to my threshold setting. + +### Cropping an image with ImageMagick + +After correcting for a skew, and because I scanned more of each page than necessary anyway to prevent accidentally cutting off words, I decided that it made sense to crop my corrected pages. I was happy to keep some space around the margins, but not quite as much as I had. I use the `crop` function of ImageMagick often enough for images on this very website, so I was familiar with the option. However, I needed to determine how to crop each page. + +First, I needed the size of the image: + +``` +$ identify fixed_0052.webp +WEBP 1128x2593 1128x2593+0+08-bit sRGB 114732B 0.020u 0:00.021 +``` + +Knowing the size, I was able to make some estimations about how many pixels I could stand to lose. After a few trial runs, I came up with this: + +``` +convert fix_0052.webp -gravity Center -crop 950x2450+0+0 crop_0052.webp +``` + +This isn't an exact fit, but it proved important when I applied it to other images in the booklet. The pages varied in content and scanner placement here and there, so I was happy to give each one a little breathing room. + +Here's the corrected and cropped image: + +![The same page of text, with the previous fixes applied and crooked white margins around the page cropped out.][6] + +### Batch image editing with open source + +The beauty of ImageMagick is that once you've figured out the formula for fixing your image, you can apply that fix to all images requiring the same fix. I do this with [GNU Parallel][7], which uses all my CPU cores to finish image correction across hundreds of pages. It doesn't take long, and the results speak for themselves. More importantly, I've got a digital archive of a fun artifact of UNIX history. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/fixing-scanned-images-imagemagick + +作者:[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/article/19/3/comic-book-archive-djvu +[2]: https://opensource.com/article/22/2/scan-documents-skanlite-linux-kde +[3]: https://opensource.com/sites/default/files/2022-10/imagemagick-crook_1.png +[4]: https://opensource.com/article/17/8/imagemagick +[5]: https://opensource.com/sites/default/files/2022-10/imagemagick-deskew-fix.png +[6]: https://opensource.com/sites/default/files/2022-10/imagemagick-deskew-crop.png +[7]: http://LINK-TO-SETH-GNU-PARALLEL-REDHAT.COM/SYSADMIN From 7187c6755321f21a728e2df46ff070b213ed2b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:10:19 +0800 Subject: [PATCH 1899/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221106.0=20=E2=AD=90=EF=B8=8F=20Guide=20How=20to?= =?UTF-8?q?=20Share=20A=20Folder=20Between=20UbuntuLinux=20and=20Windows.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...re A Folder Between UbuntuLinux and Windows.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md diff --git a/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md b/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md new file mode 100644 index 0000000000..cfae20f66c --- /dev/null +++ b/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md @@ -0,0 +1,95 @@ +[#]: subject: "Guide: How to Share A Folder Between Ubuntu/Linux and Windows" +[#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Guide: How to Share A Folder Between Ubuntu/Linux and Windows +====== + +**This beginner’s guide explains how you can quickly share a folder in Ubuntu/Linux.** + +Sharing a folder in Ubuntu/Linux and accessing the same over the network in other OS such as Windows is not that difficult. To perform this, the required packages are not installed by default in Ubuntu. However, you can bring up the install wizard to install the required software automatically to share a folder.  + +This [guide][1]applies to all Ubuntu versions (including [22.04][2], 20.04, 18.04, 19.10 and upcoming – unless there are major changes in how this function is designed). + +### Steps to Share a Folder in Ubuntu + +**Step 1:**Open the file manager and right-click on the folder you want to share. Click on the option “Local Network Share” in the context menu. + +![Local Network Share Option][3] + +**Step 2:**Click on the Share this folder checkbox in the Folder Sharing dialog. + +This would install [Samba][4]packages in your system. Samba is used to share files and printers over the network between Windows and Unix systems. + +![Folder Sharing Option - Install Samba][5] + +**Step 3:**After samba installation, do the following to share a folder or directory. + +- Select the checkbox Share this folder. +- Input a share name. This would be the name you would be seeing from another system, e.g. Windows. Try not to use any name with spaces. +- (Optional) You can control the write permission to the shared folder and allow guest access by checking the corresponding option. +- If you allow guest access, people without credentials can access the shared folder. So be cautious. +- If you want your users to enter their usernames and password, open the terminal and run the below command. + +``` +sudo smbpasswd -a **Username** +``` + +**username**should be a valid user of the respective Ubuntu system. + +You should be all set now to access the folder/directory. + +### How to Access the Shared Folder + +To access the shared folder from Ubuntu/Linux system, you need your system’s IP address/hostname. To do that, open `System Settings -> Wifi -> Get the IP address`. + +![IP Address Settings][6] + +This step may vary if you are running different Linux distribution other than Ubuntu. You may also want to run `ip addr` to get the IP address as below. + +![Finding out IP Address in Linux][7] + +Once you have the address, you can open File Manager in Ubuntu/Linux systems and type below in the address bar. You should change the IP address based on your system. + +You can now see that the shared folder is shown with a tiny shared icon that denotes a network share folder. + +![Share Folder][8] + +To access the shared folder from the **Windows system**, Open Run (Windows Key+R) or open Explorer and enter the below address. You should change the IP address and Folder name based on your system + +``` +\\192.168.43.19\Folder +``` + +You should be able to view the contents of the shared folder and modify it based on permission given. + +### Wrapping Up + +I have shown you how to share a folder from Ubuntu and access Windows systems via IP address. You can also follow the same steps for other Linux distributions. Do let me know in the comment box below if this article helped you. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/ + +作者:[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/category/tutorials/ +[2]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/Local-Network-Share-Option.jpg +[4]: https://en.wikipedia.org/wiki/Samba_(software) +[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Folder-Sharing-Option-Install-Samba-1024x552.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/IP-Address-Settings.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Finding-out-IP-Address-in-Linux.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/Share-Folder-1.jpg From 7880bf6e27c1c1b8132a1ae015641883f78ce9bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:10:42 +0800 Subject: [PATCH 1900/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221106.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20MATE=20Desktop=20in=20Arch=20Linux=20[Complete=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...MATE Desktop in Arch Linux [Complete Guide].md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..cfcdccd046 --- /dev/null +++ b/sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,98 @@ +[#]: subject: "How to Install MATE Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/mate-desktop-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install MATE Desktop in Arch Linux [Complete Guide] +====== + +**This guide explains the steps you need to install MATE Desktop in Arch Linux.** + +This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete MATE desktop environment on top of Arch Linux. + +This article tested in the following versions: MATE 1.24, and MATE 1.26. + +### What is the MATE Desktop? + +When the GNOME desktop changed its direction from GNOME 2 to GNOME 3 – by changing the user interaction and interface, the MATE desktop continued the older/Legacy GNOME 2 development. So, the MATE desktop environment continues the GNOME 2 desktop, which preserved the traditional desktop experience in Linux. It is fast and low on memory consumption. In my opinion, one of the underrated desktop environments which need more love! + +The MATE team continued development as it is one of the popular GNOME 2 based desktop while supporting newer technologies. You can learn more on its [official website][1]. + +### Install MATE Desktop in Arch Linux + +#### Part 1: Install Arch Linux + +If you already have Arch Linux installed, you can skip this step and directly go to the [installation of MATE Desktop section below][2]. + +For a quick Arch Linux installation, follow this automated archinstall guide which is super easy to follow. And once installed, continue to Part 2. + +#### Part 2: Install MATE Desktop in Arch Linux + +After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install the Xorg server, display manager, MATE desktop components, controller packages, and additional applications. + +For all the commands, use default, i.e. press enter when asked. + +- **Install Xorg. Approx install size is 80 MB.** + +``` +sudo pacman -S --needed xorg +``` + +- **Install display manager, and MATE desktop components. Approx install size is 380 MB.** + +``` +sudo pacman -S --needed mate mate-extra ttf-freefont lightdm lightdm-gtk-greeter +``` + +![Installing MATE Packages][3] + +- **Install applications** + +This is just a reference. You can also install the ones you require. + +``` +sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper +``` + +Now it’s time to enable the display manager and network manager as a service. So that the next time you log on, they can run automatically by systemd. + +``` +systemctl enable lightdm +systemctl enable NetworkManager +``` + +Reboot the system using the reboot command. + +``` +reboot +``` + +You should see a login prompt on the MATE desktop if all goes well. + +And you can now log in using the user ID and password which you just created. A superfast and legacy MATE Desktop would welcome you. + +![MATE Desktop in Arch Linux][4] + +I hope this guide helps you create your own Arch Linux environment with a legacy MATE desktop from scratch. Please let me know if you run into trouble using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/mate-desktop-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://mate-desktop.org/ +[2]: https://www.debugpoint.com/archinstall-guide/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/Installing-MATE-Packages.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/08/MATE-Desktop-in-Arch-Linux-1.jpg From 715ca03e4d7f49a33b9fcc679b11d809a745daeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:11:27 +0800 Subject: [PATCH 1901/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221105.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20Cinnamon=20Desktop=20in=20Arch=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...w to Install Cinnamon Desktop in Arch Linux.md | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md diff --git a/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md b/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md new file mode 100644 index 0000000000..3c354cd47f --- /dev/null +++ b/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md @@ -0,0 +1,137 @@ +[#]: subject: "How to Install Cinnamon Desktop in Arch Linux" +[#]: via: "https://www.debugpoint.com/cinnamon-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Cinnamon Desktop in Arch Linux +====== + +**Cinnamon is the default desktop environment for Linux Mint. This quick guide explains the steps to install the Cinnamon desktop environment in Arch Linux.** + +The [Cinnamon desktop environment][1] is the default desktop flavour for [Linux Mint][2]. This GTK-based desktop environment is created to provide a traditional desktop flavour with old GNOME (i.e. pre-GNOME 3 looks). The desktop itself is lightweight and very user-friendly. Because it keeps the time-tested icon and menu-driven desktop behaviour, hence it is considered (in combination with Linux Mint) one of the easy-to-use desktops for new Linux users. + +Although Cinnamon and its packages are closely coupled with Linux Mint, this desktop can be installed as a separate desktop environment in Ubuntu, Fedora, or Arch Linux. + +Installing Cinnamon in Arch Linux is fairly easy, like other desktops such as Xfce and KDE Plasma in Arch. But it requires some specific packages to be installed to make it look like a proper Cinnamon desktop. + +Let’s dive in. + +### Install Cinnamon Desktop in Arch Linux + +#### Step 1: Install Base System + +This guide assumes that you have installed the base Arch system already. If you do not have the base system installed, please install it using the [automated arch install guide][3] (recommended method). Then follow the below steps. + +#### Step 2: Update Your System + +Open a terminal in your Arch installation. And make sure the system is up to date by running the below command: + +``` +pacman -Syu +``` + +#### Step 3: Instal yay AUR Helper + +Some packages that are required for configuring Cinnamon are not available in the Arch official repository. They are available in Arch User Repo (AUR). Hence you need to install yay for additional packages. Follow [this guide to install yay AUR helper][4]. + +#### Step 4: Install Cinnamon Desktop in Arch Linux + +The basic Cinnamon desktop is available in the [cinnamon][5] package, which is present in the Community repo. Open a terminal and run the following commands to install the Cinnamon desktop and the terminal application. + +``` +sudo pacman -S cinnamon gnome-terminal +``` + +Install the display server and display manager. LightDM is lightweight and ideal for Cinnamon. Although, you can use any other display manager, such as SDDM or GDM. But I would recommend that you stick with lightdm. + +``` +sudo pacman -S xorg lightdm lightdm-gtk-greeter +``` + +Enable the display manager and Network services to start in the next boot. + +``` +systemctl enable lightdm +systemctl enable NetworkManager +``` + +Reboot the system. + +#### Step 5: Configure Cinnamon Desktop + +After a successful reboot, you should see the lightdm login prompt. Log in using the username and password which you may have created while installing the base system. + +When I first log in to the base Cinnamon desktop, it looks very bland. So it needed a bit of customization. + +![Cinnamon Desktop in Arch (Before Configuration)][6] + +Open a terminal and install some important packages such as sound drivers, browsers, etc. This would ensure that proper fonts and additional items are installed. + +``` +sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol firefox vlc gimp xfburn thunderbird gedit gnome-system-monitor +``` + +Then install faenza icon theme for a Cinnamon-specific icon set. + +``` +sudo pacman -S mate-icon-theme-faenza +``` + +The numix themes require yay to be installed. Make sure you follow [this guide][4]to install yay AUR helper before running the below command to install it. + +``` +yay -S numix-themes +``` + +After all the installation is complete, reboot the system. + +When you log in back, open the Themes application and change the Window borders, Icons, Controls, and Desktop as per below. + +![Theme Changes for this guide][7] + +You may also choose to download additional themes in the second tab (Add/remove) as well. + +![Additional Themes for you to download][8] + +Change the default GNOME wallpaper (which comes with Cinnamon) to something you like. This guide uses the Cinnamon logo wallpaper from [cinnamon-look.org][9]. + +If all goes well, your desktop should look like this. + +![Cinnamon Desktop in Arch Linux][10] + +![Cinnamon Desktop Running in Arch Linux][11] + +So, that concludes the basic steps for installing and configuring the Cinnamon desktop in Arch Linux. You may want to add additional settings, such as desklets, etc. + +### Closing Notes + +Cinnamon is a modern and easy-to-use desktop for new users. And with the flexibility of Arch Linux and Cinnamon at its core, this combo can be ideal for many users who like Cinnamon desktop (mainly Linux Mint) but want Arch Linux with it. I hope this guide helps you set up your Cinnamon box with Arch Linux. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cinnamon-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://cinnamon-spices.linuxmint.com/ +[2]: https://www.debugpoint.com/linux-mint/ +[3]: https://www.debugpoint.com/archinstall-guide/ +[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[5]: https://archlinux.org/packages/community/x86_64/cinnamon/ +[6]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Before-Configuration.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Theme-Changes-for-this-guide.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Additional-Themes-for-you-to-download.jpg +[9]: https://www.cinnamon-look.org/browse/cat/ +[10]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Linux-1024x535.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-Running-in-Arch-Linux-1024x640.jpg From 7e2c42ab9f18418601149c857ab198e68a7b800e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:12:11 +0800 Subject: [PATCH 1902/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221105.2=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20and=20Configure=20KDE=20Plasma=20Desktop=20in=20Arch=20Linux?= =?UTF-8?q?=20[Complete=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...asma Desktop in Arch Linux [Complete Guide].md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..1d5beda8c7 --- /dev/null +++ b/sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,117 @@ +[#]: subject: "How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/kde-plasma-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide] +====== + +**If you love KDE and Arch Linux, this guide is for you. This guide explains the steps needed to set up a fully functioning KDE Plasma desktop with all of its native applications.** + +Let’s take a look at how you can install KDE Plasma in Arch Linux. + +In the earlier posts, we explained that you could set up a bare minimum Arch Linux with an [automated archinstall script][1] and also explained how you can install GNOME, LXQt, and Xfce desktop Arch Linux. And now, we explain the steps for the KDE Plasma desktop. + +### KDE Plasma desktop + +[KDE Plasma][2] is a lightweight and visually appealing desktop environment for Linux that comes with tons of customization options at a very detailed level. The latest iteration of this desktop is Plasma 5, which is based on Qt5, KDE Framework 5 provides both Xorg and Wayland display server options. + +The current KDE Plasma desktop version is [5.26 stable][3], which this article uses for installation. + +This guide requires that you install the bare minimum Arch Linux shell already. If not, then follow this [simple guide][1] to install a basic skeleton of Arch Linux. Then continue with the following steps. + +Also, ensure you have admin privileges with your user for running the pacman package manager. + +### Install and Configure KDE Plasma Desktop in Arch Linux + +You need the following packages for a fully functional KDE Plasma system in Arch Linux. + +- [plasma][4] (~590 mb) – basic plasma packages +- [kde-applications][5](~800 mb) – additional KDE native applications (Konsole, etc) +- xorg – display server +- sddm – display manager + +These four packages are necessary. However, you can optionally install [plasma-wayland-session][6] if you want to use the Wayland display server. + +#### 1. Install packages + +Open a terminal and run the following command to install those packages. + +``` +pacman -S --needed xorg sddmpacman -S --needed plasma kde-applications +``` + +When asked to select a package, press enter for default selection. If you are unsure, choose the following options when asked on the screen. + +pipewire-media-sessionphonon-qt5-gstreamerpyside2cronietesseract-data-eng (for english) + +Wait for the installation to finish. + +#### 2. Enable display server and network + +Now it’s time to enable the display manager and network; otherwise, you will not be able to log in. Run the following commands after the above commands are complete. + +``` +sudo systemctl enable sddmsudo systemctl enable NetworkManager +``` + +#### 3. Configure sddm and reboot + +One last configuration you need for the KDE Plasma desktop is related to the login screen. By default, sddm uses its own failsafe login screen, which is not the typical KDE Plasma “breeze” login screen. A small tweak is needed for a KDE Plasma login screen. + +Open the `sddm.conf` file from the terminal. + +``` +sudo nano /usr/lib/sddm/sddm.conf.d/default.conf +``` + +Change the theme section as per below. + +``` +[Theme] +# current theme name + Current=breeze +``` + +![Modify the sddm configuration to accept breeze theme][7] + +Press `CTRL+O` and `CTRL+X` to save and exit the nano editor. Now you can restart your Arch system using the below command: + +``` +sudo systemctl reboot +``` + +And you should be greeted with a nice KDE Plasma login screen and a desktop. + +![Arch Linux Running KDE Plasma Desktop][8] + +That wraps up the steps for KDE Plasma desktop installation in Arch Linux. I hope you get all the steps correctly and can install them. If you face any errors, comment below. + +What’s next? You may want to check out other [Arch Linux guides][9], Or browse the website for a more interesting read. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kde-plasma-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/archinstall-guide/ +[2]: https://kde.org/plasma-desktop/ +[3]: https://www.debugpoint.com/kde-plasma-5-26/ +[4]: https://archlinux.org/packages/extra/x86_64/plasma-desktop/ +[5]: https://archlinux.org/groups/x86_64/kde-applications/ +[6]: https://archlinux.org/packages/extra/x86_64/plasma-wayland-session/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/01/Modify-the-sddm-configuration-to-accept-breeze-theme.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/Arch-Linux-Running-KDE-Plasma-Desktop-1024x640.jpg +[9]: https://www.debugpoint.com/tag/arch-linux From 8f3462e29bd8efee716ed5b0983f1de1c83752f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:12:41 +0800 Subject: [PATCH 1903/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221105.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20GNOME=20Desktop=20in=20Arch=20Linux=20[Com?= =?UTF-8?q?plete=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ll GNOME Desktop in Arch Linux [Complete Guide].md | 290 ++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..221dd39e19 --- /dev/null +++ b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,290 @@ +[#]: subject: "How to Install GNOME Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install GNOME Desktop in Arch Linux [Complete Guide] +====== + +**This guide explains the steps you need to install GNOME Desktop in Arch Linux.** + +This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete GNOME desktop environment on top of Arch Linux. + +### What is the GNOME Desktop? + +GNOME is a popular desktop environment that is a default desktop choice for many top-tier desktops-based Linux distributions such as Ubuntu and Fedora. Almost all flavors provide a GNOME desktop option. + +The GNOME desktop is one of the stable and user-friendly desktops, hence it is preferred by many average, advanced users. If you want a desktop that remains invisible while you carry out your work, GNOME is the one. It never gets into your way while working. Hence it is still popular and default option for many despite many controversies about being GNOME3 (current iteration) being slow, resource-heavy, etc, + +With all that said, let’s take a look at how you can install a GNOME desktop in bare metal Arch installations. + +### Install GNOME Desktop in Arch Linux + +#### Part 1: Install Arch Linux + +If you have already Arch Linux installed, you can skip this step and directly go to the install GNOME Desktop section below. + +For a quick Arch Linux base installation, follow the below steps. You can also visit [this guide][1] for a complete tutorial on how to install Arch Linux as Dual Boot or in a virtual machine. + +The following steps are a straightforward legacy way of installing Arch. Follow the guide below for a more modern way of using the archinstall script. Once you are done, come back to resume GNOME installation via [step 2][2]. + +Modern method: Install using archinstall script (recommended) + +##### Legacy method: Download Arch Linux + +Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive. + +[Download Arch Linux][3] + +If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive. + +##### Boot and Configure Partitions + +After you boot from the Arch Linux iso, you have to run a series of commands to install the base system. + +First, run the below command to find out the device identifier. + +``` +fdisk -l +``` + +![fdisk -l before][4] + +Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. + +``` +cfdisk /dev/sda +``` + +Select `label type = dos` in the next prompt. + +Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below. + +``` +/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap +``` + +![cfdisk][5] + +In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. + +Repeat the same step for the main root partition of size 5GB. + +![Swap partition type change][6] + +Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. + +![final partition list in cfdisk][7] + +Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system. + +Run the below command to check before you proceed. You can see in this example, three partitions are listed. + +``` +fdisk -l +``` + +![final partition list in fdisk][8] + +Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. + +``` +mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 +``` + +After completion, mount the system and create necessary directories. + +``` +mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot +``` + +Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. + +![prepare file system][9] + +##### Install the base system + +I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][10] to configure a wireless or wifi network using Arch Linux installer. + +Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. + +``` +pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +``` + +![Install base system][11] + +Once complete, generate file system table without which you can’t boot the system. + +``` +genfstab -U /mnt >> /mnt/etc/fstab +``` + +##### Configure the base system + +Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet. + +``` +arch-chroot /mntnano /etc/locale.gen +``` + +Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. + +![change locale][12] + +Generate the locale using: + +``` +locale-gen +``` + +Setup the language using the below command. + +``` +echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 +``` + +Setup the local time zone. + +``` +ln -s /usr/share/zoneinfo/America/New_York /etc/localtime +``` + +Again, you can choose them as per your need. You can list the local timezones via the below commands. + +``` +ls /usr/share/zoneinfo +ls /usr/share/zoneinfo/America +``` + +Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. + +``` +hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd +``` + +The next step is to set up the root user password, create an admin user, and add the user in the sudoers file. + +Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need. + +``` +passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint +``` + +![create user][13] + +Open the sudoers file and add the below lines. + +``` +nano /etc/sudoers +``` + +Add below lines. As you already created the root user, the entry should be there. + +``` +root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL +``` + +![update sudoers file][14] + +Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence. + +``` +grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit +``` + +![configure grub][15] + +Then reboot your system. If you are isntalling in a physical system, unplug the USB media at this step. + +``` +umount /mnt/boot +umount /mnt +reboot +``` + +You have now successfully installed the Arch Linux base system. It’s time to install the complete GNOME desktop. + +![Arch is installed][16] + +#### Part 2: Install GNOME in Arch Linux + +After reboot, choose Arch Linux from grub. In the Arch Linux prompt start running the following commands in sequence. These commands install Xorg server, display manager, GNOME desktop components, controller packages, and additional applications. + +For all the commands use default, i.e. press enter when asked. + +- **Install Xorg server. Approx install size is 80 MB.** + +``` +sudo pacman -S --needed xorg +``` + +- **Install display manager, GNOME desktop. Approx install size is 300 MB.** + +``` +sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm +``` + +The above installation would ask for several options for packages. Choose any of the ones you want. If you are unsure, choose jack, noto-sans and xdg-portal-desktop-gnome when asked. + +- **Install applications** + +This is just a reference. You can also install the ones you require. + +``` +sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper +``` + +Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd. + +``` +systemctl enable gdm +systemctl enable NetworkManager +``` + +Reboot the system using the reboot command. + +``` +reboot +``` + +![Arch Linux Running GNOME 43 Desktop][17] + +If all goes well, you should see a nice login prompt on the GNOME desktop. Login using the credential you just created. You should be greeted with a nice and clean GNOME 43 desktop in Arch Linux. + +I hope this guide helps you to install GNOME desktop in a bare metal Arch instalation. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2020/11/install-arch-linux/ +[2]: https://www.debugpoint.com/archinstall-guide/ +[3]: https://www.archlinux.org/download/ +[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg +[10]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg From fa219a7da84d7ecc7d5b4efa4f7ab4b43c324ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 7 Nov 2022 00:13:13 +0800 Subject: [PATCH 1904/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221105.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Crystal=20Linux=20Emerging=20Arch=20Linux=20Spin=20for=20GNOME?= =?UTF-8?q?=20Fans.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...l Linux Emerging Arch Linux Spin for GNOME Fans.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md diff --git a/sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md b/sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md new file mode 100644 index 0000000000..31280fff03 --- /dev/null +++ b/sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md @@ -0,0 +1,146 @@ +[#]: subject: "Crystal Linux: Emerging Arch Linux Spin for GNOME Fans" +[#]: via: "https://www.debugpoint.com/crystal-linux-first-look/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Crystal Linux: Emerging Arch Linux Spin for GNOME Fans +====== + +**Meet Crystal Linux, a unique Arch Linux Spin with stock GNOME experience.** + +### Introduction + +Often I think that we have sufficient Linux distros already. The count is nearing thousands, and fragmentation is at its peak. That is not good for quality software, especially in the open-source space. + +There is always a distro available for every use case you can think of. + +But Arch Linux is one of the sectors, it’s still emerging – just because of its debatable [complex installation methods][1]. That’s why most of the emerging Arch Linux distributions (such as [Xero Linux][2], [Hefftor Linux][3], Mabox, etc.) try to invent something unique in installation and other areas. + +Crystal Linux is one of those distros with a different take on installation while being super user-friendly. + +![Crystal Linux Desktop with GNOME 42][4] + +### Crystal Linux: First Look + +Before you read on, you should know that it’s a new distro (less than a year old) currently under development. So use it with caution. + +At first glance, it will feel like a stock GNOME installation, similar to the Fedora workstation. That’s true. With the Arch Linux base and stock GNOME – the performance is top-notch. Although I tried it on a virtual machine, I feel the GNOME and Arch combination performs much better than the Fedora workstation in the same virtual machine setup. + +With that said, no such different customization is available apart from those coming with GNOME. Honestly, GNOME doesn’t require any additional customization for its default settings. Looks wise it’s good enough. + +### What’s unique about Crystal Linux? + +#### jade Installer for Arch + +The most important offering is its own installer called “[jade][5]“. Crystal Linux team created a GTK4/libadwaita and Rust-based installer to give you a streamlined experience for Arch installation. + +And it looks fantastic (see the below images). + +![jade installer][6] + +![selecting desktop to install][7] + +![installation][8] + +The jade installer reminds me of GNOME’s Tour app, but here it uses a similar principle for installation. Basic information such as Keyboard, region, and names/passwords are captured via a series of screens. + +Then you get to choose the desktop environment you want to install. The default version is GNOME; however, you have the option to install all the famous desktops and window managers. + +One unique feature of this new installer is that you get options to set up ipv6 and Timeshift restore points. + +The partition wizard is currently under development with custom partitioning via this app or GParted as options. Here’s a mockup of the partition module under development (from [Twitter][9]). + +![jade with additional options - mockup][10] + +Finally, a summary for you before you install this distro/Arch Linux. The installation executes a script at the back end for Arch installation. + +#### Onyx – custom GNOME experience + +From GitHub, I found that there is a customized desktop for base install named [Onyx][11]. + +Per the team, “Onyx used to be Budgie based but recently we changed the direction a bit, it will now be a custom GNOME session (coexisting with, but separate from GNOME)”. + +#### Amethyst – New AUR Helper + +Do we really need another AUR helper? The [Yay helper][12] is awesome already. + +Anyways. + +The Crystal Linux also features a homegrown AUR helper and pacman Wrapper called [amethyst][13]. As the dev says, you can install it to any Arch-based distros and the “fastest AUR helper and pacman wrapper”. + +Amethyst comes with the command line option “ame” which you can use with standard [pacman switches][14]. + +![ame terminal command][15] + +#### Btrfs file system by default + +One of the best features of this distro is the default btrfs file system during installation. Although the current work is ongoing for the additional file system, btrfs as default has its own advantages for backup and restoration. + +I don’t remember any other Arch-spin that has btrfs as default. + +#### Applications and Packages + +Since it is a stock GNOME-based distro, no additional applications are installed. So, you need to spend some time configuring with necessary apps such as LibreOffice, GIMP, Media players, etc. + +Firefox and native GNOME apps are available in the default installation. + +Crystal Linux seems to deploy the core packages from their own server, NOT from the Arch repo. Hence, some features may arrive a little late for updating the desktop and such. + +### Performance + +Arch Linux always performs well, in my experience. All the popular desktops such as KDE, GNOME, Xfce – all of them somehow feel faster than in Ubuntu/Fedora. + +With that said, the current GNOME 42 version in Crystal Linux is swift. The window animations and gestures feel smooth even in a virtual machine. There is no lag whatsoever. + +![Crystal Linux - Performance][16] + +Memory footprint is extremely low at 530 MB at idle. Most of the idle state CPUs are consumed by gnome-shell and systemd services. + +Default GNOME desktop install takes only 3.8 GB of disk space. + +### Wrapping up + +The jade installer and btrfs file system are two major highlights of Crystal Linux. Since most of the Arch-based distros follow Calamares installer, it’s good to see a new installer in this space. And it’s really user-friendly. + +The distro is just a few months old and has a long road ahead. I strongly believe it will give a competition to the currently famous Arch distro [EndeavourOS][17]. And the fans get to experience vanilla GNOME with Arch without the hassles of [installing Arch with GNOME][18]. + +You can download the current ISO from the [official website][19]. As I mentioned earlier, use it with caution since it is under development. + +So, what are your thoughts about this distro? What are your favourite features? Do let me know in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/crystal-linux-first-look/ + +作者:[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/install-arch-linux/ +[2]: https://www.debugpoint.com/xerolinux-review/ +[3]: https://www.debugpoint.com/hefftor-linux-review/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Desktop-with-GNOME-42-1024x579.jpg +[5]: https://github.com/crystal-linux/jade +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-installer.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/selecting-desktop-to-install.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/installation.jpg +[9]: https://twitter.com/Crystal_Linux/status/1564379291529482240 +[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-with-additional-options-mockup-1024x576.jpg +[11]: https://github.com/crystal-linux/onyx +[12]: https://www.debugpoint.com/install-yay-arch/ +[13]: https://github.com/crystal-linux/amethyst +[14]: https://www.debugpoint.com/pacman-command-arch-examples/ +[15]: https://www.debugpoint.com/wp-content/uploads/2022/08/ame-terminal-command-1024x576.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Performance-1024x576.jpg +[17]: https://www.debugpoint.com/tag/endeavouros +[18]: https://www.debugpoint.com/gnome-arch-linux-install/ +[19]: https://getcryst.al/ From c9a215eac9fe080aaf800305c4c61477aaf872b7 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Mon, 7 Nov 2022 05:03:55 +0800 Subject: [PATCH 1905/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020221106?= =?UTF-8?q?=20Making=20a=20DNS=20query=20in=20Ruby=20from=20scratch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20221106 Making a DNS query in Ruby from scratch.md --- ...Making a DNS query in Ruby from scratch.md | 548 ++++++++++++++++++ 1 file changed, 548 insertions(+) create mode 100644 sources/tech/20221106 Making a DNS query in Ruby from scratch.md diff --git a/sources/tech/20221106 Making a DNS query in Ruby from scratch.md b/sources/tech/20221106 Making a DNS query in Ruby from scratch.md new file mode 100644 index 0000000000..5801624fed --- /dev/null +++ b/sources/tech/20221106 Making a DNS query in Ruby from scratch.md @@ -0,0 +1,548 @@ +[#]: subject: "Making a DNS query in Ruby from scratch" +[#]: via: "https://jvns.ca/blog/2022/11/06/making-a-dns-query-in-ruby-from-scratch/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Making a DNS query in Ruby from scratch +====== + +Hello! A while back I wrote a post about [how to write a toy DNS resolver in Go][1]. + +In that post I left out “how to generate and parse DNS queries” because I thought it was boring, but a few people pointed out that they did not know how to parse and generate DNS queries and they were interested in how to do it. + +This made me curious – how much work _is_ it do the DNS parsing? It turns out we can do it in a pretty nice 120-line Ruby program, which is not that bad. + +So here’s a quick post on how to generate DNS queries and parse DNS responses! We’re going to do it in Ruby because I’m giving a talk at a Ruby conference soon, and this blog post is partly prep for that talk :). I’ve tried to keep it readable for folks who don’t know Ruby though, I’ve only used pretty basic Ruby code. + +At the end we’re going to have a very simple toy Ruby version of `dig` that can look up domain names like this: + +``` + + $ ruby dig.rb example.com + example.com 20314 A 93.184.216.34 + +``` + +The whole thing is about 120 lines of code, so it’s not _that_ much. (The final program is [dig.rb][2] if you want to skip the explanations and just read some code.) We won’t implement the “how a DNS resolver works” from the previous post because, well, we already did that. Let’s get into it! + +Along the way I’m going to try to explain how you could figure out some of this stuff yourself if you were trying to figure out how DNS queries are formatted from scratch. Mostly that’s “poke around in Wireshark” and “read RFC 1035, the DNS RFC”. + +### step 1: open a UDP socket + +We need to actually _send_ our queries, so to do that we need to open a UDP socket. We’ll send our queries to `8.8.8.8`, Google’s DNS server. + +Here’s the code to set up a UDP connection to `8.8.8.8`, port 53 (the DNS port). + +``` + + require 'socket' + sock = UDPSocket.new + + sock.bind('0.0.0.0', 12345) + sock.connect('8.8.8.8', 53) + +``` + +##### a quick note on UDP + +I’m not going to say too much about UDP here, but I will say that the basic unit of computer networking is the “packet” (a packet is a string of bytes), and in this program we’re going to do the simplest possible thing you can do with a computer network – send 1 packet and receive 1 packet in response. + +So UDP is a way to send packets in the simplest possible way. + +It’s the most common way to send DNS queries, though you can also use TCP or DNS-over-HTTPS instead. + +##### step 2: copy a DNS query from Wireshark + +Next: let’s say we have no idea how DNS works but we want to send a working query as fast as possible. The easiest way to get a DNS query to play with and make sure our UDP connection is working is to just copy one that already works! + +So that’s what we’re going to do, using Wireshark (an incredible packet analysis tool) + +The steps I used to this are roughly: + + 1. Open Wireshark and click ‘capture’ + 2. Enter `udp.port == 53` as a filter (in the search bar) + 3. Run `ping example.com` in my terminal (to generate a DNS query) + 4. Click on the DNS query (“Standard query A example.com”) + 5. Right click on “Domain Name System (query”) in the bottom left pane + 6. Click ‘Copy’ -> ‘as a hex stream’ + 7. Now I have “b96201000001000000000000076578616d706c6503636f6d0000010001” on my clipboard, to use in my Ruby program. Hooray! + + + +##### step 3: decode the hex stream and send the DNS query + +Now we can send our DNS query to `8.8.8.8`! Here’s what that looks like: we just need to add 5 lines of code + +``` + + hex_string = "b96201000001000000000000076578616d706c6503636f6d0000010001" + bytes = [hex_string].pack('H*') + sock.send(bytes, 0) + + # get the reply + reply, _ = sock.recvfrom(1024) + puts reply.unpack('H*') + +``` + +`[hex_string].pack('H*')` is translating our hex string into a byte string. At this point we don’t really know what this data _means_ but we’ll get there in a second. + +We can also take this opportunity to make sure our program is working and is sending valid data, using `tcpdump`. How I did that: + + 1. Run `sudo tcpdump -ni any port 53 and host 8.8.8.8` in a terminal tab + 2. In a different terminal tab, run [this Ruby program][3] (`ruby dns-1.rb`) + + + +Here’s what the output looks like: + +``` + + $ sudo tcpdump -ni any port 53 and host 8.8.8.8 + 08:50:28.287440 IP 192.168.1.174.12345 > 8.8.8.8.53: 47458+ A? example.com. (29) + 08:50:28.312043 IP 8.8.8.8.53 > 192.168.1.174.12345: 47458 1/0/0 A 93.184.216.34 (45) + +``` + +This is really good - we can see the DNS request (“what’s the IP for `example.com`”) and the response (“it’s 93.184.216.34”). So everything is working. Now we just need to, you know, figure out how to generate and decode this data ourselves. + +##### step 4: learn a little about how DNS queries are formatted + +Now that we have a DNS query for `example.com`, let’s learn about what it means. + +Here’s our query, formatted as hex. + +``` + + b96201000001000000000000076578616d706c6503636f6d0000010001 + +``` + +If you poke around in Wireshark, you’ll see that this query has 2 parts: + + * The **header** (`b96201000001000000000000`) + * The **question** (`076578616d706c6503636f6d0000010001`) + + + +##### step 5: make the header + +Our goal in this step is to generate the byte string `b96201000001000000000000`, but with a Ruby function instead of hardcoding it. + +So: the header is 12 bytes. What do those 12 bytes mean? If you look at Wireshark (or read [RFC 1035][4]), you’ll see that it’s 6 2-byte numbers concatenated together. + +The 6 numbers correspond to the query ID, the flags, and then the number of questions, answer records, authoritative records, and additional records in the packet. + +We don’t need to worry about what all those things are yet though – we just need to put in 6 numbers. + +And luckily we know exactly which 6 numbers to put because our goal is to literally generate the string `b96201000001000000000000`. + +So here’s a function to make the header. (note: there’s no `return` because you don’t need to write `return` in Ruby if it’s the last line of the function) + +``` + + def make_question_header(query_id) + # id, flags, num questions, num answers, num auth, num additional + [query_id, 0x0100, 0x0001, 0x0000, 0x0000, 0x0000].pack('nnnnnn') + end + +``` + +This is very short because we’ve hardcoded everything except the query ID. + +##### what’s `nnnnnn`? + +You might be wondering what `nnnnnn` is in `.pack('nnnnnn')`. That’s a format string telling `.pack()` how to convert that array of 6 numbers into a byte string. + +[The documentation for `.pack` is here][5], and it says that `n` means “represent it as “16-bit unsigned, network (big-endian) byte order”. + +16 bits is the same as 2 bytes, and we need to use network byte order because this is computer networking. I’m not going to explain byte order right now (though I do have a [comic attempting to explain it][6]) + +##### test the header code + +Let’s quickly test that our `make_question_header` function works. + +``` + + puts make_question_header(0xb962) == ["b96201000001000000000000"].pack("H*") + +``` + +This prints out “true”, so we win and we can move on. + +##### step 5: encode the domain name + +Next we need to generate the **question** (“what’s the IP for `example.com`?“). This has 3 parts: + + * the **domain name** (for example “example.com”) + * the **query type** (for example “A” is for “IPv4 **A**ddress” + * the **query class** (which is always the same, 1 is for **IN** is for **IN**ternet) + + + +The hardest part of this is the domain name so let’s write a function to do that. + +`example.com` is encoded in a DNS query, in hex, as `076578616d706c6503636f6d00`. What does that mean? + +Well, if we translate the bytes into ASCII, it looks like this: + +``` + + 076578616d706c6503636f6d00 + 7 e x a m p l e 3 c o m 0 + +``` + +So each segment (like `example`) has its length (like 7) in front of it. + +Here’s the Ruby code to translate `example.com` into `7 e x a m p l e 3 c o m 0`: + +``` + + def encode_domain_name(domain) + domain + .split(".") + .map { |x| x.length.chr + x } + .join + "\0" + end + +``` + +Other than that, to finish generating the question section we just need to append the type and class onto the end of the domain name. + +##### step 6: write `make_dns_query` + +Here’s the final function to make a DNS query: + +``` + + def make_dns_query(domain, type) + query_id = rand(65535) + header = make_question_header(query_id) + question = encode_domain_name(domain) + [type, 1].pack('nn') + header + question + end + +``` + +[Here’s all the code we’ve written before in `dns-2.rb`][7] – it’s still only 29 lines. + +##### now for the parsing + +Now that we’ve managed to _generate_ a DNS query, we get into the hard part: the parsing. Again, we’ll split this into a bunch of different + + * parse a DNS header + * parse a DNS name + * parse a DNS record + + + +The hardest part of this (maybe surprisingly) is going to be “parse a DNS name”. + +##### step 7: parse the DNS header + +Let’s start with the easiest part: the DNS header. We already talked about how it’s 6 numbers concatenated together. + +So all we need to do is + + * read the first 12 bytes + * convert that into an array of 6 numbers + * put those numbers in a class for convenience + + + +Here’s the Ruby code to do that. + +``` + + class DNSHeader + attr_reader :id, :flags, :num_questions, :num_answers, :num_auth, :num_additional + def initialize(buf) + hdr = buf.read(12) + @id, @flags, @num_questions, @num_answers, @num_auth, @num_additional = hdr.unpack('nnnnnn') + end + end + +``` + +Quick Ruby note: `attr_reader` is a Ruby thing that means “make these instance variables accessible as methods”. So you can call `header.flags` to look at the `@flags` variable. + +We can call this with `DNSHeader(buf)`. Not so bad. + +Let’s move on to the hardest part: parsing a domain name. + +##### step 8: parse a domain name + +First, let’s write a partial version. + +``` + + def read_domain_name_wrong(buf) + domain = [] + loop do + len = buf.read(1).unpack('C')[0] + break if len == 0 + domain << buf.read(len) + end + domain.join('.') + end + +``` + +This repeatedly reads 1 byte and then reads that length into a string until the length is 0. + +This works great, for the first time we see a domain name (`example.com`) in our DNS response. + +##### trouble with domain names: compression! + +But the second time `example.com` appears, we run into trouble – in Wireshark, it says that the domain is represented cryptically as just the 2 bytes `c00c`. + +This is something called **DNS compression** and if we want to parse any DNS responses we’re going to have to implement it. + +This is luckily not **that** hard. All `c00c` is saying is: + + * The first 2 bits (`0b11.....`) mean “DNS compression ahead!” + * The remaining 14 bits are an integer. In this case that integer is `12` (`0x0c`), so that means “go back to the 12th byte in the packet and use the domain name you find there” + + + +If you want to read more about DNS compression, I found the [explanation in the DNS RFC][8] relatively readable. + +##### step 9: implement DNS compression + +So we need a more complicated version of our `read_domain_name` function + +Here it is. + +``` + + domain = [] + loop do + len = buf.read(1).unpack('C')[0] + break if len == 0 + if len & 0b11000000 == 0b11000000 + # weird case: DNS compression! + second_byte = buf.read(1).unpack('C')[0] + offset = ((len & 0x3f) << 8) + second_byte + old_pos = buf.pos + buf.pos = offset + domain << read_domain_name(buf) + buf.pos = old_pos + break + else + # normal case + domain << buf.read(len) + end + end + domain.join('.') + +``` + +Basically what’s happening is: + + * if the first 2 bits are `0b11`, we need to do DNS compression. Then: + * read the second byte and do a little bit arithmetic to convert that into the offset + * save the current position in the buffer + * read the domain name at the offset we calculated + * restore our position in the buffer + + + +This is kind of messy but it’s the most complicated part of parsing the DNS response, so we’re almost done! + +##### step 10: parse a DNS query + +You might think “why do we need to parse a DNS query? This is the response!”. But every DNS response has the original query in it, so we need to parse it. + +Here’s the code for parsing the DNS query. + +``` + + class DNSQuery + attr_reader :domain, :type, :cls + def initialize(buf) + @domain = read_domain_name(buf) + @type, @cls = buf.read(4).unpack('nn') + end + end + +``` + +There’s not very much to it: the type and class are 2 bytes each. + +##### step 11: parse a DNS record + +This is the exciting part – the DNS record is where our query data lives! The “rdata field” (“record data”) is where the IP address we’re going to get in response to our DNS query lives. + +Here’s the code: + +``` + + class DNSRecord + attr_reader :name, :type, :class, :ttl, :rdlength, :rdata + def initialize(buf) + @name = read_domain_name(buf) + @type, @class, @ttl, @rdlength = buf.read(10).unpack('nnNn') + @rdata = buf.read(@rdlength) + end + +``` + +We also need to do a little work to make the `rdata` field human readable. The meaning of the record data depends on the record type – for example for an “A” record it’s a 4-byte IP address, for but a “CNAME” record it’s a domain name. + +So here’s some code to make the request data human readable: + +``` + + def read_rdata(buf, length) + @type_name = TYPES[@type] || @type + if @type_name == "CNAME" or @type_name == "NS" + read_domain_name(buf) + elsif @type_name == "A" + buf.read(length).unpack('C*').join('.') + else + buf.read(length) + end + end + +``` + +This function uses this `TYPES` hash to map the record type to a human-readable name: + +``` + + TYPES = { + 1 => "A", + 2 => "NS", + 5 => "CNAME", + # there are a lot more but we don't need them for this example + } + +``` + +The most interesting part of `read_rdata` is probably the line `buf.read(length).unpack('C*').join('.')` – it’s saying “hey, an IP address is 4 bytes, so convert it into an array of 4 numbers and then join those with “.“s”. + +##### step 12: finish parsing the DNS response + +Now we’re ready to parse the DNS response! + +Here’s some code to do that: + +``` + + class DNSResponse + attr_reader :header, :queries, :answers, :authorities, :additionals + def initialize(bytes) + buf = StringIO.new(bytes) + @header = DNSHeader.new(buf) + @queries = (1..@header.num_questions).map { DNSQuery.new(buf) } + @answers = (1..@header.num_answers).map { DNSRecord.new(buf) } + @authorities = (1..@header.num_auth).map { DNSRecord.new(buf) } + @additionals = (1..@header.num_additional).map { DNSRecord.new(buf) } + end + end + +``` + +This mostly just calls the other functions we’ve written to parse the DNS response. + +It uses this cute `(1..@header.num_answers).map` construction to create an array of 2 DNS records if `@header.num_answers` is 2. (which is maybe a _little_ bit of Ruby magic but I think it’s kind of fun and hopefully isn’t too hard to read) + +We can integrate this code into our main function like this: + +``` + + sock.send(make_dns_query("example.com", 1), 0) # 1 is "A", for IP address + reply, _ = sock.recvfrom(1024) + response = DNSResponse.new(reply) # parse the response!!! + puts response.answers[0] + +``` + +Printing out the records looks awful though (it says something like `#`). So we need to write some pretty printing code to make it human readable. + +##### step 13: pretty print our DNS records + +We need to add a `.to_s` field to DNS records to make them have a nice string representation. This is just a 1-line method in `DNSRecord`: + +``` + + def to_s + "#{@name}\t\t#{@ttl}\t#{@type_name}\t#{@parsed_rdata}" + end + +``` + +You also might notice that I left out the `class` field of the DNS record. That’s because it’s always the same (IN for “internet”) so I felt it was redundant. Most DNS tools (like real `dig`) will print out the class though. + +##### and we’re done! + +Here’s our final `main` function: + +``` + + def main + # connect to google dns + sock = UDPSocket.new + sock.bind('0.0.0.0', 12345) + sock.connect('8.8.8.8', 53) + + # send query + domain = ARGV[0] + sock.send(make_dns_query(domain, 1), 0) + + # receive & parse response + reply, _ = sock.recvfrom(1024) + response = DNSResponse.new(reply) + response.answers.each do |record| + puts record + end + +``` + +I don’t think there’s too much to say about this – we connect, send a query, print out each of the answers, and exit. Success! + +``` + + $ ruby dig.rb example.com + example.com 18608 A 93.184.216.34 + +``` + +You can see the final program as a gist here: [dig.rb][2]. You could add more features to it if you want, like + + * pretty printing for other query types + * options to print out the “authority” and “additional” sections of the DNS response + * retries + * making sure that the DNS response we see is _actually_ a response to the query we sent (the query ID has to match! + + + +Also [you can let me know on Twitter][9] if I’ve made a mistake in this post somewhere – I wrote this pretty quickly so I probably got something wrong. + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/11/06/making-a-dns-query-in-ruby-from-scratch/ + +作者:[Julia Evans][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://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://jvns.ca/blog/2022/02/01/a-dns-resolver-in-80-lines-of-go/ +[2]: https://gist.github.com/jvns/1e5838a53520e45969687e2f90199770 +[3]: https://gist.github.com/jvns/aa202b1edd97ae261715c806b2ba7d39 +[4]: https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.1 +[5]: https://ruby-doc.org/core-3.0.0/Array.html#method-i-pack +[6]: https://wizardzines.com/comics/little-endian/ +[7]: https://gist.github.com/jvns/3587ea0b4a2a6c20dcfd8bf653fc11d9 +[8]: https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.4 +[9]: https://twitter.com/b0rk From 9c3776dbf3d4d500036cf45a6024e34d95bf0aed Mon Sep 17 00:00:00 2001 From: DarkSun Date: Mon, 7 Nov 2022 05:04:02 +0800 Subject: [PATCH 1906/3123] add done: 20221106 Making a DNS query in Ruby from scratch.md --- sources/tech/20221101 .md | 25 +++++++++++++++++++++++++ sources/tech/20221102 .md | 25 +++++++++++++++++++++++++ sources/tech/20221104 .md | 25 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 sources/tech/20221101 .md create mode 100644 sources/tech/20221102 .md create mode 100644 sources/tech/20221104 .md diff --git a/sources/tech/20221101 .md b/sources/tech/20221101 .md new file mode 100644 index 0000000000..8cff0cf060 --- /dev/null +++ b/sources/tech/20221101 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/linux-lite-6-2-release/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-lite-6-2-release/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221102 .md b/sources/tech/20221102 .md new file mode 100644 index 0000000000..d76dfeb465 --- /dev/null +++ b/sources/tech/20221102 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/linux-mint-update-manager/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-mint-update-manager/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221104 .md b/sources/tech/20221104 .md new file mode 100644 index 0000000000..20abd761b0 --- /dev/null +++ b/sources/tech/20221104 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/foss-weekly-22-41/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/foss-weekly-22-41/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 From 9e37c1b05af5af6a5716fdd07042e3d265b3199b Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 7 Nov 2022 08:44:07 +0800 Subject: [PATCH 1907/3123] translated --- ...ine Image to Another Host Using GNOME Boxes.md | 84 ------------------- ...ine Image to Another Host Using GNOME Boxes.md | 84 +++++++++++++++++++ 2 files changed, 84 insertions(+), 84 deletions(-) delete mode 100644 sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md create mode 100644 translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md diff --git a/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md b/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md deleted file mode 100644 index fd611913af..0000000000 --- a/sources/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md +++ /dev/null @@ -1,84 +0,0 @@ -[#]: subject: "Move Virtual Machine Image to Another Host Using GNOME Boxes" -[#]: via: "https://www.debugpoint.com/move-virtual-machine-image-another-host/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Move Virtual Machine Image to Another Host Using GNOME Boxes -====== - -**This guide explains the steps you need to move a Virtual Machine Image to Another Host Using GNOME Boxes.** - -GNOME Boxes is a virtualization utility created by the GNOME project. This utility works as a front end for libvirt. libvirt is an open-source API, daemon, and management tool for managing platform virtualization. It supports different virtualization technologies such as KVM, Xen, VMware ESXi, QEMU, etc. - -If you want to create virtual machines using GNOME Boxes, [refer to this guide.][1] - -In this tutorial, I will explain how you can move any Virtual Machine image file (which is already created and running using GNOME Boxes) to a different host and run it. - -This way, you do not need to re-install the virtual machine from the operating system anymore. Moreover, it is portable and you can carry your virtual machine image in a USB stick. - -### How to Move Virtual Machine Image to Another Host Using GNOME Boxes - -I hope you have already had a virtual machine created in GNOME Boxes; if not, check out [this guide][1]. - -- GNOME Boxes and [libvert][2] uses below directories for the virtual machine images and configurations. You need to take backups of each, as mentioned below, carefully. - -- GNOME Boxes keeps the virtual machine’s physical image (usually in the size of GB) in the below path. For each of your virtual machines, you will find an image there. - -``` -~/.local/share/gnome-boxes/images/ -``` - -![Machine Images][3] - -- Copy the image file to your new host’s path: `~/.local/share/gnome-boxes/images/` - -- Copy the libvirt configuration XML from the below path to your new host’s same location. - -``` -~/.config/libvirt/qemu/ -``` - -![Image XML][4] - -- In the above path, you should see separate xml files for each of your virtual machines. Copy the one you need. - -- Open the below file in your current system. - -``` -~/.config/gnome-boxes/sources/'QEMU Session' -``` - -- Copy the section (from “[display” … to end of this section) which belongs to your virtual machine. You can easily find it using the name (see below – ‘last seen name’). - -![QEMU Session File][5] - -- Open the same above file in the other host machine and append the copied content at the end. Save the file. - -- Close all applications, including GNOME Boxes, in the new host machine. - -Open GNOME Boxes now, and you should see your virtual machine moved with its contents in your new host. - -You can now have a portable virtual machine that can easily carry and move around. Remember, the target machine should have GNOME Boxes installed to make this work. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/move-virtual-machine-image-another-host/ - -作者:[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/2020/05/install-use-gnome-boxes/ -[2]: https://libvirt.org/ -[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/Machine-Images.png -[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/Image-XML.png -[5]: https://www.debugpoint.com/wp-content/uploads/2020/06/QEMU-Session-File.png diff --git a/translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md b/translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md new file mode 100644 index 0000000000..31986e2154 --- /dev/null +++ b/translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md @@ -0,0 +1,84 @@ +[#]: subject: "Move Virtual Machine Image to Another Host Using GNOME Boxes" +[#]: via: "https://www.debugpoint.com/move-virtual-machine-image-another-host/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 GNOME Box 将虚拟机镜像移动到另一台主机 +====== + +**本指南介绍了使用 GNOME Boxes 将虚拟机镜像移动到另一台主机所需的步骤。** + +GNOME Boxes 是由 GNOME 项目创建的虚拟化程序。此程序用作 libvirt 的前端。 libvirt 是用于管理平台虚拟化的开源 API、守护进程和管理工具。它支持不同的虚拟化技术,如 KVM、Xen、VMware ESXi、QEMU 等。 + +如果你想使用 GNOME Boxes 创建虚拟机,[请参阅本指南][1]。 + +在本教程中,我将解释如何将任何虚拟机镜像文件(已使用 GNOME Boxes 创建并运行)移动到不同的主机并运行它。 + +这样,你不再需要从操作系统重新安装虚拟机。此外,它是便携式的,你可以将虚拟机镜像放在 U 盘中。 + +### 如何使用 GNOME Box 将虚拟机镜像移动到另一台主机 + +我希望你已经在 GNOME Boxes 中创建了一个虚拟机。如果没有,请查看[本指南][1]。 + +- GNOME Boxes 和 [libvert][2] 使用以下目录存储虚拟机镜像和配置。如下所述,你需要仔细备份每个文件。 + +- GNOME Boxes 将虚拟机的物理镜像(通常为数 GB 大小)保存在以下路径中。对于你的每个虚拟机,你都会在其中找到一个镜像。 + +``` +~/.local/share/gnome-boxes/images/ +``` + +![机器镜像][3] + +- 将图像文件复制到新主机的路径:`~/.local/share/gnome-boxes/images/` + +- 将 libvirt 的 XML 配置从以下路径复制到新主机的相同位置。 + +``` +~/.config/libvirt/qemu/ +``` + +![镜像 XML][4] + +- 在上述路径中,你应该会看到每个虚拟机的单独 xml 文件。复制你需要的那个。 + +- 在你当前的系统中打开以下文件。 + +``` +~/.config/gnome-boxes/sources/'QEMU Session' +``` + +- 复制属于你的虚拟机的部分(从“[display” ... 到本部分的末尾)。你可以使用名称轻松找到它(看下面的 “last seen name”)。 + +![QEMU 会话文件][5] + +- 在另一台主机上打开相同的上述文件并将复制的内容附加到末尾。保存文件。 + +- 关闭新主机中的所有应用,包括 GNOME Boxes。 + +现在打开 GNOME Boxes,你应该会看到你的虚拟机和它的内容一起被移动到新主机中。 + +你现在可以拥有一个可以轻松携带和移动的便携式虚拟机。请记住,目标机器应该安装了 GNOME Boxes 才能完成这项工作。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/move-virtual-machine-image-another-host/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2020/05/install-use-gnome-boxes/ +[2]: https://libvirt.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/Machine-Images.png +[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/Image-XML.png +[5]: https://www.debugpoint.com/wp-content/uploads/2020/06/QEMU-Session-File.png From 2ea9ad3139a709970462b8e509bc4d1f9df750da Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 7 Nov 2022 08:50:52 +0800 Subject: [PATCH 1908/3123] translating --- ...104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md index 657c6e0b34..1041f43db0 100644 --- a/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md +++ b/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/remove-firefox-snap-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ef3218bc19315f84b0487e290b533fae426ab1c0 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Mon, 7 Nov 2022 11:14:25 +0800 Subject: [PATCH 1909/3123] Delete 20221101 .md --- sources/tech/20221101 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221101 .md diff --git a/sources/tech/20221101 .md b/sources/tech/20221101 .md deleted file mode 100644 index 8cff0cf060..0000000000 --- a/sources/tech/20221101 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/linux-lite-6-2-release/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-lite-6-2-release/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 83e8cbdaab070fca0296c725888ce5b7107477d6 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Mon, 7 Nov 2022 11:14:39 +0800 Subject: [PATCH 1910/3123] Delete 20221102 .md --- sources/tech/20221102 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221102 .md diff --git a/sources/tech/20221102 .md b/sources/tech/20221102 .md deleted file mode 100644 index d76dfeb465..0000000000 --- a/sources/tech/20221102 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/linux-mint-update-manager/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-mint-update-manager/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 758ebd586a187e3a7cfc19dadd078965c1b547b0 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Mon, 7 Nov 2022 11:14:59 +0800 Subject: [PATCH 1911/3123] Delete 20221104 .md --- sources/tech/20221104 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221104 .md diff --git a/sources/tech/20221104 .md b/sources/tech/20221104 .md deleted file mode 100644 index 20abd761b0..0000000000 --- a/sources/tech/20221104 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/foss-weekly-22-41/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/foss-weekly-22-41/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From de59f4f37d141768b185b7ecfe8b00e71c0819b5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 7 Nov 2022 15:17:54 +0800 Subject: [PATCH 1912/3123] RP @geekpi https://linux.cn/article-15223-1.html --- ...d HDD Temperature in Ubuntu and Other Linux.md | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md (75%) diff --git a/translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md b/published/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md similarity index 75% rename from translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md rename to published/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md index 5d5259988d..587e5d20f0 100644 --- a/translated/tech/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md +++ b/published/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md @@ -3,16 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15223-1.html" 如何在 Ubuntu 和其他 Linux 中检查 CPU 和硬盘温度 ====== -**想知道如何在台式机或笔记本电脑上检查 Ubuntu 和其他 Linux 中的 CPU 和硬盘温度?这是一个快速指南。** +![](https://img.linux.net.cn/data/attachment/album/202211/07/151624auhj011bqnzk9qfu.jpg) -如果你是普通用户,那么实际上不需要检查 CPU 或 HDD 温度。但是,如果你使用的是非常旧的硬件或较薄的硬件,你可能会遇到过热问题。因为这些薄的硬件内部紧密耦合在一起,无论做了多少传热机制,它都会升温。因此,必须监控硬件的温度。然而,现代 Linux 发行版能够通过软件传感器很好地处理过热情况。 +> 想知道如何在台式机或笔记本电脑上检查 Ubuntu 和其他 Linux 中的 CPU 和硬盘温度?这是一个快速指南。 + +如果你是普通用户,那么实际上不需要检查 CPU 或 HDD 温度。但是,如果你使用的是非常旧的硬件或轻薄型的硬件,你可能会遇到过热问题。因为这些薄的硬件内部紧密耦合在一起,无论做了多少传热机制,它都会升温。因此,必须监控硬件的温度。然而,现代 Linux 发行版能够通过软件传感器很好地处理过热情况。 ### 在 Ubuntu 上监控 CPU 和硬盘温度的步骤 @@ -25,7 +27,7 @@ sudo apt install hddtemp sudo apt install lm-sensors ``` -[hddtemp][1] 程序为你提供光驱和 SSD 的温度(根据我的测试)。 [lm-sensors][2] 包为你提供来自 CPU 和其他通过 PCI 端口访问的传感器的温度详细信息。 +[hddtemp][1] 程序为你提供硬盘和 SSD (根据我的测试)的温度。 [lm-sensors][2] 包为你提供来自 CPU 和其他通过 PCI 端口访问的传感器的温度详细信息。 安装后,从终端运行以下命令。你需要知道你的磁盘标识符,例如 `/dev/sda` 或 `/dev/sdb` 等。 @@ -43,7 +45,7 @@ sudo hddtemp ![HDD or SSD Temperature from terminal][3] -来自终端的 HDD 或 SSD 温度 +*来自终端的 HDD 或 SSD 温度* 检查 CPU 温度和其他信息需要额外的步骤。 @@ -63,38 +65,37 @@ sensors ![using sensors][4] -使用传感器 +*使用传感器* #### 使用 GUI 工具 -If you prefer a nice GUI which does all the above, you can install [psensor][5]. This utility works across Linux systems such as Ubuntu, Fedora, [Arch][6] and other variants. This gives you nice graphical plus tabular view of 如果你更喜欢能完成上述所有操作的漂亮 GUI,你可以安装 [psensor][5]。该程序适用于 Linux 系统,例如 Ubuntu、Fedora、[Arch][6] 和其他变体。它为你提供了漂亮的图形和表格视图: -**Ubuntu 及其衍生版** +Ubuntu 及其衍生版: ``` sudo apt install psensor ``` -**Fedora 和基于 RPM 的衍生版** +Fedora 和基于 RPM 的衍生版: ``` sudo dnf install psensor ``` -**Arch、Manjaro 和类似的衍生版** +Arch、Manjaro 和类似的衍生版: ``` pacman -S psensor ``` -安装后,从`终端运行 psensor 或从应用菜单`启动它。 +安装后,从终端运行 `psensor` 或从应用菜单启动它。 正如你在下面的截图中所见,它通过漂亮的图表让你可以很好地了解 CPU、GPU 和 HDD 的所有重要温度。使用它的首选项,你可以根据需要对其进行调整。这个轻量级的程序在很多情况下都会很有帮助。 ![psensor running][7] -psensor 运行 +*psensor 运行* 因此,这些是你可以在 Ubuntu 和其他 Linux 系统中监控 CPU、GPU 或 HDD 温度的一些方法。如果你知道其他方法,请通过下面的评论栏告诉我。 @@ -105,7 +106,7 @@ via: https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/ 作者:[Arindam][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/) 荣誉推出 From 2df409cc58118671d53935ce6512b8d5449d7039 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 7 Nov 2022 15:34:53 +0800 Subject: [PATCH 1913/3123] RP @chai001125 https://linux.cn/article-15224-1.html --- ...️ How to Upgrade Python Packages with Pip.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) rename {translated/tech => published}/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md (88%) diff --git a/translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md b/published/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md similarity index 88% rename from translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md rename to published/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md index 8b81eec3eb..020249de97 100644 --- a/translated/tech/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md +++ b/published/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md @@ -3,13 +3,15 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15224-1.html" 使用 Pip 升级 Python 软件包 ====== +![](https://img.linux.net.cn/data/attachment/album/202211/07/153408lqflbw3mwxja3qm4.jpg) + 你上次更新通过 Pip 安装的 Python 软件包是什么时候?大多数用户往往会忘记这些 Python 软件包也需要手动更新,因为仅仅更新系统存储库对于软件包来说是不起作用的。 因此,让我们花点时间看看如何使用 Pip,来更新旧的 Python 软件包吧。 @@ -20,7 +22,7 @@ 因此,接下来就让我们深入了解如何使用这个极好的工具 Pip,来管理与 Python 软件包相关的内容吧。 -#### 1. 列出过时的 Python 软件包 +#### 1、列出过时的 Python 软件包 在计划更新什么软件包之前,我们先要列出有哪些过时的软件包,你可以在其中选择想要更新的软件包,因为大多数人不会想一下子更新整个软件包库。 @@ -32,7 +34,7 @@ pip list --outdated ![outdated packages][2] -#### 2. 升级特定的软件包 +#### 2、升级特定的软件包 获得可更新的软件包列表后,你可以像我之前提到的那样,选择你要更新的那个特定的软件包,pip 升级软件包命令的语法如下: @@ -48,7 +50,7 @@ pip install anime-api -U ![update anime api][3] -#### 3. 将软件包升级到特定的版本 +#### 3、将软件包升级到特定的版本 没有必要总是使用软件的最新版本,如果你想将软件包升级到不是最新的某个特定版本,参考如下的命令语法: @@ -64,7 +66,7 @@ pip install --upgrade xdg==5.1 ![upgrade xdg to specific iteration][5] -#### 4. 使用 Pip 一次性升级所有软件包 +#### 4、使用 Pip 一次性升级所有软件包 **请注意:我不建议你一次性升级所以软件包,因为 Python 软件包的依赖项太复杂了,一次性的升级无法处理相互依赖项。** @@ -78,7 +80,7 @@ pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n 上面的命令使用了 [xargs][7]。首先,会得到所有需要更新的软件包,然后对每个软件包执行 `pip3 install -U` 命令。 -我在这里使用的是 pip3,而不是 pip。在 Ubuntu 22.04 及更高的版本中,pip 和 pip3 命令都可以使用。 +我在这里使用的是 `pip3`,而不是 `pip`。在 Ubuntu 22.04 及更高的版本中,`pip` 和 `pip3` 命令都可以使用。 ### 总结 @@ -93,7 +95,7 @@ via: https://itsfoss.com/upgrade-pip-packages/ 作者:[Sagar Sharma][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ec7231d2e117a9dc1f0faf2d8ed15825d25b511e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 00:07:06 +0800 Subject: [PATCH 1914/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221107.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Ghostwriter=20An=20Excellent=20Open-Source=20Writing=20App.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hostwriter An Excellent Open-Source Writing App.md | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md diff --git a/sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md b/sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md new file mode 100644 index 0000000000..6c2f1ba9d9 --- /dev/null +++ b/sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md @@ -0,0 +1,166 @@ +[#]: subject: "Ghostwriter: An Excellent Open-Source Writing App" +[#]: via: "https://itsfoss.com/ghostwriter/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ghostwriter: An Excellent Open-Source Writing App +====== + +We have covered several [open-source tools for writers][1] with some distraction-free editors. + +One of them is **Ghostwriter**. **It is available for Linux and Windows with an unofficial build for macOS.** + +I will not blame you for accidentally reading it as “Ghost Rider” if you are a fan of it. + +Keeping that aside, it looks like Ghostwriter is now under KDE’s umbrella, with **Carl Schwan** (KDE Developer) as a sponsor. So, you can expect the writing app only to get better. + +Hence, I think it is a good idea to spotlight KDE’s newest addition to its Incubator, i.e., Ghostwriter as one of our weekly app highlights. + +### Ghostwriter Excels At Distraction-Free Writing + +![ghostwriter white][2] + +A distraction-free writer is always welcome to write an article like this, make a technical document, or do other creative writing tasks. + +Also, we need a reliable app that saves things in a jiffy. + +**[Ghostwriter][3]**seems to be an excellent option with all the essentials. Let me highlight some of its key features. + +### Features of Ghostwriter + +![ghostwriter black][4] + +As a distraction-free writing app, some users prefer a minimal set of features. But, Ghostwriter does not compromise on the toolset that you get with it to enhance your writing experience. + +The main highlights include: + +- **Focus mode to highlight specific regions you write/edit** +- **A full-screen mode** +- **Clean user interface** +- **Markdown support for easy formatting** +- **Built-in dark and light themes (toggle)** +- **Ability to customize the theme/create your version** +- **Live preview your Markdown document in HTML** +- **Sidebar with outline navigation** +- **Session and Document statistics (characters, words, paragraphs, average wpm, reading time, etc.)** +- **Ability to export to Pandoc, MultiMarkdown, commonmark** +- **A Hemingway mode to disable editing while writing (to help you focus on completing the brought draft faster)** +- **Drag and drop image support** +- **Autosave** +- **Cheatsheet to refer Markdown system without looking elsewhere** + +### Experiencing Ghostwriter + +![ghostwriter screenshot f37][5] + +I tried using Ghostwriter on Fedora 37, and it worked as one would expect. + +It presents a minimal user interface, which is easy to use, pleasing to look at, and not too fancy. + +![ghostwriter toggle][6] + +The availability of essential options as toggle buttons is much appreciated (**left-to-right**): + +- Dark/Light mode toggle +- Live HTML preview +- Hemingway mode +- Focus mode +- Full-screen mode + +In addition to the toggles, the document and session stats also come in handy to keep track of time spent, words written, and other valuable data. + +![ghostwriter stats][7] + +Another user interface element that I found helpful is the bottom status bar that you can customize. + +![ghostwriter bottom][8] + +**What do you need to focus on when writing?** + +The editor lets you choose that to see as a priority stat. Whether you want to focus on the number fo words, speed, paragraphs, or time, you can set the bottom bar to change. + +**To enhance the experience**, you can customize the theme to your liking, where you get to change the font, color of the title/text, and other elements of the user interface. + +![ghostwriter theme edit][9] + +While you already know that it supports Markdown, it will not stop you from working on it. + +Even if it is your first time using Markdown, it includes a cheat sheet in the sidebar for quick access. Of course, if you need a dedicated editor for it, you can try exploring some of the [best Markdown editors][10] available. + +Use the cheat sheet to add code blocks, links, text formatting, headings, and more. + +![ghostwriter markdown cheatsheet][11] + +Overall, if you closely take a glance at the screenshots, all the essential functionalities is accessible in a single click. + +Unless you need to tweak the theme, change the file saving folder preference, and a few more available options, you do not need to leave the editor. + +As a bonus, it includes useful export options for users who need it: + +![ghostwriter export][12] + +You can explore rest of the tiny bits and decide if it suits your requirements. + +### Installing Ghostwriter on Linux + +You can install Ghostwriter via a PPA for Ubuntu-based distros, and it is also available for Fedora through a separate repository. + +To install Ghostwriter on Ubuntu-based distros, type in the following command: + +``` +sudo add-apt-repository ppa:wereturtle/ppa +sudo apt update +sudo apt install ghostwriter +``` + +If you are using Fedora, type in the following: + +``` +sudo dnf copr enable wereturtle/stable +sudo dnf install ghostwriter +``` + +You will also find a Flatpak package listed on [Flathub][13]. However, it does not seem to be a recommended option as per its official download page. You can give it a try, though. + +Explore more about it on its [GitLab page][14] or the [official website][15]. + +### Not Too Fany, But Very Useful! + +I think the user interface, the user experience, and the feature set are perfectly balanced for all kinds of use cases. + +Of course, some do not need Markdown support, and some need more features to write/create chapters for their books. So, Ghostwriter may not be for everyone. + +That said, the features you get with it make it well worth a try, regardless of your use case. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/ghostwriter/ + +作者:[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/open-source-tools-writers/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-white.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-black.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-screenshot-f37.jpg +[5]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-toggle.jpg +[6]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-stats.jpg +[7]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-bottom.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-theme-edit.jpg +[9]: https://itsfoss.com/best-markdown-editors-linux/ +[10]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-markdown-cheatsheet.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-export.png +[12]: https://flathub.org/apps/details/io.github.wereturtle.ghostwriter +[13]: https://ghostwriter.kde.org/download/ +[14]: https://invent.kde.org/office/ghostwriter +[15]: https://ghostwriter.kde.org From 26fa3c07e4434b064e261d28ed299133bb5546c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 00:07:52 +0800 Subject: [PATCH 1915/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221107.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?What=20you=20actually=20need=20to=20know=20about=20open=20sourc?= =?UTF-8?q?e=20to=20get=20started.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y need to know about open source to get started.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md diff --git a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md new file mode 100644 index 0000000000..be8a97423b --- /dev/null +++ b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -0,0 +1,97 @@ +[#]: subject: "What you actually need to know about open source to get started" +[#]: via: "https://opensource.com/article/22/11/get-started-open-source" +[#]: author: "Katie Edwards https://opensource.com/users/kaedward" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What you actually need to know about open source to get started +====== + +A beginner's guide to open source explained in plain terms. + +So you want (or need) to figure out what ["open source"][1] really means. I'll cover the basics of open source, whether you're interested in contributing to a project or want to be in the loop at a new job where the term keeps getting thrown around. + +Full disclosure: I am a person with little technical experience, working in the content-design fringes of a very technical open source environment. Given my background in marketing and communication, I felt like a fish out of water when I made this career switch. [Git][2], data science, the ins and outs of software… It was, and still is a year later, a lot to comprehend. + +But that's why I'm writing this piece. I want to help make open source a little less intimidating. After all, at the center of open source is a supportive learning community—built for everyone, technically experienced or not. + +I'll start with the absolute basics. + +### What is open source? + +For the record, the industry definition of open source is available at the [Open Source Initiative][3] site. + +However, the popular perception of "open source" software is usually that it doesn't cost anything, the source code is accessible, anyone can contribute to it, and you can redistribute it or do whatever else you want with it. + +Some of that is true, and some of it plays into a few common misconceptions, one of which is cost. + +#### Open source costs $0 + +Is it true? Usually, but not always. By nature of its code being publicly available, open source software can be obtained at no cost. However, for-profit companies do exist around open source projects. But if the software is available at no cost, how do open source companies even exist? How do they make money? + +The concept of having a "free product" is counter-intuitive. But that's just the thing: A company doesn't have to sell software to profit from the management of products, storage of data, and customer support. + +Many companies follow a subscription model, offering customer support in case of bugs or general confusion. Data storage isn't free, so that is another area where these companies can bring in income. In this regard, the "product" isn't the software; it's the benefit of a subscription. + +- **The source code is accessible**: Is it true? Yes, always. This accessibility is a prerequisite for adopting the term "open source." The source code must be available to view, use, modify, and redistribute. +- **You can do whatever you want with the code**: Is it true? It depends. Subject to licensing terms, there are some limitations on how you can use code, but you can generally use it however you'd like. Whether that means tweaking a project to fit a specific need or using it as the basis for something else, open source software is yours, and everyone else's, to modify. +- **Anyone can contribute to open source projects**: Is it true? Yes - within limits. Anyone with the [right skill set][4] can contribute to open source. However, that doesn't mean all contributions are always accepted and implemented. + +For example, say you're interested in a project where the end goal is a catalog of all the types of birds in the world. You're really into dinosaurs, specifically dinosaurs that may have eventually evolved into modern-day birds. So, you contribute entries for all of the most bird-like dinosaurs. The project owners could see this and think, "Sweet, those are some great prehistoric birds." However, they're also allowed to say, "Hmm, those dinosaurs are like birds, but they're technically not birds yet. They probably don't belong on Birdpedia." + +Luckily, projects don't usually work under lawless conditions. Open source projects typically come with contribution guidelines and codes of conduct, so you don't have to worry about your additions flying off the rails. + +### Why open source? + +So, after all the contributions are made (if it's ever actually done), why would people give away their software for no cost? If so many people put their time and effort into creating something, why wouldn't they band together and slap a price tag on it? + +This question comes with a lot of answers. Here are a few: + +- Starting a business is hard, especially if the project you're working on doesn't form the strong foundation for a money machine. It can be easier to rally a bunch of like-minded people without commitments or the expectation of paychecks. +- Most open source communities consist of people interested in improving software or bringing it into existence but don't have the time or interest to commit to working full-time on a project. Sometimes open source represents passion projects, geek groups, and crowd-sourced solutions to annoying problems. +- The groups that form around open source projects of all sizes foster supportive communities where contributors and onlookers alike can practice their skills, improve software they regularly use, teach and learn from each other, and feel empowered to make their voices heard. Many open source communities are essentially hyper-focused online hobby clubs. + +### Where do I get involved? + +Now you may ask yourself, "But what do I do with this information? Can I contribute to open source projects? What if I'm not good enough yet?" + +Never fear—even [beginners][5] are welcome to contribute to open source projects. It's a great way to hone your skills while working with a community towards a larger goal. And, as I talked about earlier, the worst that can happen is your changes aren't merged into Birdpedia (and that's because those product owners just can't see your vision of a Birdpedia where birds and their ancestors gleefully coexist in an online world of bird-related knowledge). + +Do you have to know how to code to contribute to projects? Contrary to popular belief, [no, you don't][6]. Projects "take a village" to thrive, which means they need input from people of all different backgrounds. Visual designers, writers, marketers, reviewers, translators, subject matter enthusiasts, and even just users of the resulting product are all valuable contributors. Not only do they help build out and improve products, but they identify bugs, suggest improvements, spread the word about the project, and generally strengthen the community. + +In short, no matter what your background or experience, if you're interested in open source or a specific project, you're nearly guaranteed to be welcomed with open arms. + +### Get started with open source now + +Still not sure where to begin? Here are some ideas and resources to get you started: + +- [Up For Grabs][7] is a "list of open source projects which have curated tasks specifically for new contributors." This is a great place to find an easy first PR opportunity, which is a great way to find out what kind of contributions you'll enjoy. +- Check out this list of [beginner-friendly projects][8] on GitHub. +- If you're still not feeling inspired, consider [contributing][9] to (or flying with) [PatternFly][10], Red Hat's open design system. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/get-started-open-source + +作者:[Katie Edwards][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/kaedward +[b]: https://github.com/lkxed +[1]: https://opensource.com/resources/what-open-source +[2]: https://opensource.com/resources/what-is-git +[3]: https://opensource.org/osd +[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code +[5]: https://opensource.com/article/18/4/get-started-open-source-project +[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source +[7]: https://up-for-grabs.net/?ref=hackernoon.com#/ +[8]: https://github.com/MunGell/awesome-for-beginners +[9]: https://github.com/patternfly +[10]: https://www.patternfly.org/v4/get-started/design From 399843c2599bbec4fbc6e99213463f43d168cabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 00:09:59 +0800 Subject: [PATCH 1916/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221107.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Build=20your=20own=20SaaS=20on=20Linux=20w?= =?UTF-8?q?ith=20Vely.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️⭐️ Build your own SaaS on Linux with Vely.md | 652 ++++++++++++++++++ 1 file changed, 652 insertions(+) create mode 100644 sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md diff --git a/sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md b/sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md new file mode 100644 index 0000000000..349f3d78f5 --- /dev/null +++ b/sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md @@ -0,0 +1,652 @@ +[#]: subject: "Build your own SaaS on Linux with Vely" +[#]: via: "https://opensource.com/article/22/11/build-your-own-saas-vely" +[#]: author: "Sergio Mijatovic https://opensource.com/users/vely" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Build your own SaaS on Linux with Vely +====== + +Vely makes it possible to leverage the power of C in your web applications. + +[Vely][1] combines high performance and the low footprint of C with the ease of use and improved safety of languages like PHP. It's free and open source software, licensed under GPLv3 and LGPL 3 for libraries, so you can even build commercial software with it. + +### Using Vely for SaaS + +You can use Vely to create a multitenant web application that you can run on the Internet as Software-as-a-Service (SaaS). Each user has a completely separate data space from any other. + +In this example web application, a user can sign up for a notebook service to create notes and then view and delete them. It demonstrates several technology integrations in just 310 lines of code across seven source files. The technologies include: + +- MariaDB +- Web browser +- Apache +- Unix sockets + +#### How it works + +Here's how the application works from a user's perspective. A code walk-through follows the images. + +The app allows a user to create a new login by specifying an email address and password. You can style these any way you like, such as with CSS: + +![Create a user account][2] + +Verify the user's email: + +![Verify the user's email address][3] + +Each user logs in with their unique username and password: + +![The user logs in][4] + +Once logged in, a user can add a note: + +![The user can add a note][5] + +A user can get a list of notes: + +![User lists notes][6] + +The app asks for confirmation before deleting a note: + +![The app asks for confirmation before deleting a note][7] + +After the user confirms, the note is deleted: + +![After confirmation, the note is deleted][8] + +#### Setup prerequisites + +Follow the installation instructions on [Vely.dev][9]. It's a quick process that uses standard packaging tools, such as DNF, APT, Pacman, or Zypper. + +Because they are part of this example, you must install Apache as a web server and MariaDB as a database. + +After installing Vely, turn on syntax highlighting in Vim if you're using it: + +``` +vv -m +``` + +#### Get the source code + +The source code for this demonstration SaaS app is part of the Vely installation. It's a good idea to create a separate source code directory for each application (and you can name it whatever you like). In this case, unpacking the source code does that for you: + +``` +$ tar xvf $(vv -o)/examples/multitenant_SaaS.tar.gz +$ cd multitenant_SaaS +``` + +By default, the application is named `multitenant_SaaS`, but you can call it anything (if you do that, change it everywhere). + +### Set up the application + +The very first step is to create an application. It's simple to do with Vely's `vf` utility: + +``` +$ sudo vf -i-u $(whoami) multitenant_SaaS +``` + +This command creates a new application home (`/var/lib/vv/multitenant_SaaS`) and performs the application setup for you. Mostly, that means creating various subdirectories in the home folder and assigning privileges. In this case, only the current user (the result of `whoami`) owns the directories, with 0700 privileges, which ensures that no one else has access to the files. + +### Set up the database + +Before doing any coding, you need a place to store the information used by the application. First, create a MariaDB database called `db_multitenant_SaaS`, owned by the user `vely` with password `your_password`. You can change any of these values, but remember to change them everywhere during this example. + +Logged in as root in the MySQL utility: + +``` +CREATEDATABASEIFNOTEXISTS db_multitenant_SaaS; +CREATEUSERIFNOTEXISTS vely IDENTIFIEDBY'your_password'; +GRANTCREATE,ALTER,DROP,SELECT,INSERT,DELETE,UPDATEON db_multitenant_SaaS.*TO vely; +``` + +Then create database objects (tables and records and so on) in the database: + +``` +USE db_multitenant_SaaS; +SOURCE setup.sql; +exit +``` + +### Connect Vely to a database + +To let Vely know where your database is and how to log into it, create a database config file named `db_multitenant_SaaS`. (This is the name used by the database statements in the source code, so if you change it, make sure you change it everywhere.) + +Vely uses native MariaDB database connectivity, so you can specify any options that a given database lets you: + +``` +$ echo'[client] +user=vely +password=your_password +database=db_multitenant_SaaS +protocol=TCP +host=127.0.0.1 +port=3306'> db_multitenant_SaaS +``` + +### Build the application + +Use the `vv` utility to make the application, using the `--db` option to specify the MariaDB database and the database config file: + +``` +$ vv -q--db=mariadb:db_multitenant_SaaS +``` + +### Start the application server + +To start the application server for your web application, use the `vf` FastCGI process manager. The application server uses a Unix socket to communicate with the web server (creating a reverse proxy): + +``` +$ vf -w3 multitenant_SaaS +``` + +This starts three daemon processes to serve the incoming requests. You can also start an adaptive server that increases the number of processes to serve more requests and gradually reduce the number of processes when they're not needed: + +``` +$ vf multitenant_SaaS +``` + +See `vf` for more options to help you achieve the best performance. + +When you need to stop your application server, use the `-m quit` option: + +``` +$ vf -m quit multitenant_SaaS +``` + +### Set up the web server + +This is a web application, so the application needs a web server. This example uses Apache by way of a Unix socket listener. + +#### 1. Set up Apache + +To configure Apache as a reverse proxy and connect your application to it, you need to enable FastCGI proxy support, which generally means using the `proxy` and `proxy_fcgi` modules. + +For Fedora systems (or others, like Arch) enable the `proxy` and `proxy_fcgi` modules by adding (or uncommenting) the appropriate **LoadModule** directives in the `/etc/httpd/conf/httpd.conf` Apache configuration file. + +For Debian, Ubuntu, and similar systems, enable the `proxy` and `proxy_fcgi` modules: + +``` +$ sudo a2enmod proxy +$ sudo a2enmod proxy_fcgi +``` + +For OpenSUSE, add these lines to the end of `/etc/apache2/httpd.conf`: + +``` +LoadModule proxy_module modules/mod_proxy.so +LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so +``` + +#### 2. Configure Apache + +Now you must add the proxy information to the Apache configuration file: + +``` +ProxyPass "/multitenant_SaaS" unix:///var/lib/vv/multitenant_SaaS/sock/sock|fcgi://localhost/multitenant_SaaS +``` + +The location of your configuration may vary, depending on your Linux distribution: + +- Fedora, CentOS, Mageia, and Arch: `/etc/httpd/conf/httpd.conf` +- Debian, Ubuntu, Mint: `/etc/apache2/apache2.conf` +- OpenSUSE: `/etc/apache2/httpd.conf` + +#### 3. Restart + +Finally, restart Apache. On Fedora and similar systems, as well as Arch Linux: + +``` +$ sudo systemctl restart httpd +``` + +On Debian and Debian-based systems, as well as OpenSUSE: + +``` +$ sudo systemctl restart apache2 +``` + +### Set up local mail + +This example uses email as a part of its function. If your server can already send email, you can skip this. Otherwise, you can use local mail (`myuser@localhost`) just to test it out. To do that, install Sendmail. + +On Fedora and similar: + +``` +$ sudo dnf installsendmail +$ sudo systemctl start sendmail +``` + +On Debian systems (like Ubuntu): + +``` +$ sudo apt installsendmail +$ sudo systemctl start sendmail +``` + +When the application sends an email to a local user, such as `OS_user@localhost`, then you can verify that the email was sent by looking at `/var/mail/` (the "mail spool"). + +### Access the application server from the browser + +Assuming you're running the application locally, use `http://127.0.0.1/multitenant_SaaS?req=notes&action=begin` to access your application server from your web browser. If you're running this on a live server on the Internet, you may need to adjust your firewall settings to allow HTTP traffic. + +### Source code + +This example application contains seven source files. You can review the code yourself (remember, it's just 310 lines across these files), but here's an overview of each one. + +#### SQL setup (setup.sql) + +The two tables created are: + +- **users**: Information about each user. Each user in the **users** table has its own unique ID (**userId** column) along with other information such as email address and whether it's verified. There's also a hashed password. An actual password is never stored in plain text (or otherwise); a one-way hash is used to check the password. +- **notes**: Notes entered by the user. The **notes** table contains the notes, each along with **userId** column that states which user owns them. The **userId** column's value matches the namesake column from **users** table. This way, every note clearly belongs to a single user. + +The file contents: + +``` +CREATETABLEIFNOTEXISTS notes (dateOf datetime, noteId BIGINTAUTO_INCREMENTPRIMARYKEY, userId BIGINT, note VARCHAR(1000)); +CREATETABLEIFNOTEXISTS users (userId BIGINTAUTO_INCREMENTPRIMARYKEY, email VARCHAR(100), hashed_pwd VARCHAR(100), verified SMALLINT, verify_token VARCHAR(30),SESSIONVARCHAR(100)); +CREATEUNIQUEINDEXIFNOTEXISTS users1 ON users (email); +``` + +#### Run-time data (login.h) + +To properly display the Login, Sign Up, and Logout links, you need some flags that are available anywhere in the application. Also, the application uses cookies to maintain a session, so this needs to be available anywhere, for example, to verify that the session is valid. Every request sent to the application is confirmed that way. Only requests that come with verifiable cookies are permitted. + +So to that effect, you have a **global_request_data** type `reqdata` (request data) and in it there's `sess_userId` (ID of user) and `sess_id` (user's current session ID). You also have rather self-explanatory flags that help render pages: + +``` +#ifndef _VV_LOGIN +#define _VV_LOGIN + +typedef struct s_reqdata { +    bool displayed_logout; // true if Logout link displayed +    bool is_logged_in; // true if session verified logged-in +    char *sess_userId; // user ID of current session +    char *sess_id; // session ID +} reqdata; + +void login_or_signup (); + +#endif +``` + +#### Session checking and session data (_before.vely) + +Vely has a notion of a **before_request_handler**. The code you write executes before any other code that handles a request. To do this, all you need is to write this code in a file named `_before.vely`, and the rest is automatically handled. + +Anything that a SaaS application does, such as handling requests sent to an application, must be validated for security. This way, the application knows whether the caller has the permissions needed to perform an action. + +Checking for permission is done here in a before-request handler. That way, whatever other code you have handling a request, you already have the session information. + +To keep session data (like session ID and user ID) available anywhere in your code, you use **global_request_data**. It's just a generic pointer (**void***) to memory that any code that handles requests can access. This is perfect for handling sessions, as shown below: + +``` +#include "vely.h" +#include "login.h" + +// _before() is a before-request-handler. It always executes before +// any other code that handles a request. It's a good place for any +// kind of request-wide setting or data initialization +void _before() { +    // Output HTTP header +    out-header default +    reqdata *rd; // this is global request data, see login.h +    // allocate memory for global request data, will be automatically deallocated +    // at the end of request +    new-mem rd size sizeof(reqdata) +    // initialize flags +    rd->displayed_logout = false; +    rd->is_logged_in = false; +    // set the data we created to be global request data, accessible +    // from any code that handles a request +    set-req data rd +    // check if session exists (based on cookies from the client) +    // this executes before any other request-handling code, making it +    // easier to just have session information ready +    _check_session (); +} +``` + +#### Checking if the session is valid (_check_session.vely) + +One of the most important tasks in a multitenant SaaS application is to check (as soon as possible) if the session is valid by checking whether a user is logged in. It's done by getting the session ID and user ID cookies from the client (such as a web browser) and checking these against the database where sessions are stored: + +``` +#include "vely.h" +#include "login.h" + + +// Check if session is valid +void _check_session () { +    // Get global request data +    reqdata *rd; +    get-req data to rd +    // Get cookies from user browser +    get-cookie rd->sess_userId="sess_userId" +    get-cookie rd->sess_id="sess_id" +    if (rd->sess_id[0] != 0) { +        // Check if session ID is correct for given user ID +        char *email; +        run-query @db_multitenant_SaaS = "select email from users where userId='%s' and session='%s'" output email : rd->sess_userId, rd->sess_id row-count define rcount +            query-result email to email +        end-query +        if (rcount == 1) { +            // if correct, set logged-in flag +            rd->is_logged_in = true; +            // if Logout link not display, then display it +            if (rd->displayed_logout == false) { +                @Hi <>! Logout
              +                rd->displayed_logout = true; +            } +        } else rd->is_logged_in = false; +    } +} +``` + +#### Signing up, Logging in, Logging out (login.vely) + +The basis of any multitenant system is the ability for a user to sign up, log in, and log out. Typically, signing up involves verifying the email address; more often than not, the same email address is used as a username. That's the case here. + +There are several subrequests implemented here that are necessary to perform the functionality: + +- When Signing Up a new user, display the HTML form to collect the information. The URL request signature for this is `req=login&action=newuser`. +- As a response to the Sign Up form, create a new user. The URL request signature is `req=login&action=createuser`. The **input-param** signal obtains an **email** and **pwd** POST form fields. The password value is a one-way hash, and an email verification token is created as a random five-digit number. These are inserted into the **users** table, creating a new user. A verification email is sent, and the user is prompted to read the email and enter the code. +- Verify the email by entering the verification code sent to that email. The URL request signature is `req=login&action=verify`. +- Display a Login form for the user to log in. The URL request signature is `req=login` (for instance, `action` is empty.) +- Log in by verifying the email address (username) and password. The URL request signature is `req=login&action=login`. +- Logout at the user's request. The URL request signature is `req=login&action=logout`. +- Landing page for the application. The URL request signature is `req=login&action=begin`. +- If the user is currently logged in, go to the application's landing page. + +See examples of these below: + +``` +#include "vely.h" +#include "login.h" + +// Handle session maintenance, login, logout, session verification +// for any multitenant Cloud application +void login () { +    // Get URL input parameter "action" +    input-param action + +    // Get global request data, we record session information in it, so it's handy +    reqdata *rd; +    get-req data to rd + +    // If session is already established, the only reason why we won't proceed to +    // application home is if we're logging out +    if (rd->is_logged_in) { +        if (strcmp(action, "logout")) { +            _show_home(); +            exit-request +        } +    } + +    // Application screen to get started. Show links to login or signup and show +    // home screen appropriate for this +    if (!strcmp (action, "begin")) { +        _show_home(); +        exit-request + +    // Start creating new user. Ask for email and password, then proceed to create user +    // when this form is submitted. +    } else if (!strcmp (action, "newuser")) { +        @Create New User
              +        @
              +        @ +        @ +        @ +        @ +        @
              + +    // Verify code sent to email by user. The code must match, thus verifying email address     +    } else if (!strcmp (action, "verify")) { +        input-param code +        input-param email +        // Get verify token based on email +        run-query @db_multitenant_SaaS = "select verify_token from users where email='%s'" output db_verify : email +            query-result db_verify to define db_verify +            // Compare token recorded in database with what user provided +            if (!strcmp (code, db_verify)) { +                @Your email has been verifed. Please Login. +                // If matches, update user info to indicate it's verified +                run-query @db_multitenant_SaaS no-loop = "update users set verified=1 where email='%s'" : email +                exit-request +            } +        end-query +        @Could not verify the code. Please try again. +        exit-request + +    // Create user - this runs when user submits form with email and password to create a user     +    } else if (!strcmp (action, "createuser")) { +        input-param email +        input-param pwd +        // create hashed (one-way) password +        hash-string pwd to define hashed_pwd +        // generate random 5 digit string for verify code +        random-string to define verify length 5 number +        // create user: insert email, hashed password, verification token. Current verify status is 0, or not verified +        begin-transaction @db_multitenant_SaaS +        run-query @db_multitenant_SaaS no-loop = "insert into users (email, hashed_pwd, verified, verify_token, session) values ('%s', '%s', '0', '%s', '')" : email, hashed_pwd, verify affected-rows define arows error define err on-error-continue +        if (strcmp (err, "0") || arows != 1) { +            // if cannot add user, it probably doesn't exist. Either way, we can't proceed. +            login_or_signup(); +            @User with this email already exists. +            rollback-transaction @db_multitenant_SaaS +        } else { +            // Create email with verification code and email it to user +            write-string define msg +                @From: vely@vely.dev +                @To: <> +                @Subject: verify your account +                @ +                @Your verification code is: <> +            end-write-string +            exec-program "/usr/sbin/sendmail" args "-i", "-t" input msg status define st +            if (st != 0) { +                @Could not send email to <>, code is <> +                rollback-transaction @db_multitenant_SaaS +                exit-request +            } +            commit-transaction @db_multitenant_SaaS +            // Inform the user to go check email and enter verification code +            @Please check your email and enter verification code here: +            @
              +            @ +            @ +            @ +            @ +            @
              +        } + +    // This runs when logged-in user logs out.     +    } else if (!strcmp (action, "logout")) { +        // Update user table to wipe out session, meaning no such user is logged in +        if (rd->is_logged_in) { +            run-query @db_multitenant_SaaS = "update users set session='' where userId='%s'" : rd->sess_userId no-loop affected-rows define arows +            if (arows == 1) { +                rd->is_logged_in = false; // indicate user not logged in +                @You have been logged out.
              +            } +        } +        _show_home(); + +    // Login: this runs when user enters user name and password +    } else if (!strcmp (action, "login")) { +        input-param pwd +        input-param email +        // create one-way hash with the intention of comparing with user table - password is NEVER recorded +        hash-string pwd to define hashed_pwd +        // create random 30-long string for session ID +        random-string to rd->sess_id length 30 +        // Check if user name and hashed password match +        run-query @db_multitenant_SaaS = "select userId from users where email='%s' and hashed_pwd='%s'" output sess_userId : email, hashed_pwd +            query-result sess_userId to rd->sess_userId +            // If match, update user table with session ID +            run-query @db_multitenant_SaaS no-loop = "update users set session='%s' where userId='%s'" : rd->sess_id, rd->sess_userId affected-rows define arows +            if (arows != 1) { +                @Could not create a session. Please try again. <<.login_or_signup();>>
              +                exit-request +            } +            // Set user ID and session ID as cookies. User's browser will return those to us with every request +            set-cookie "sess_userId" = rd->sess_userId +            set-cookie "sess_id" = rd->sess_id +            // Display home, make sure session is correct first and set flags +            _check_session(); +            _show_home(); +            exit-request +        end-query +        @Email or password are not correct. <<.login_or_signup();>>
              + +    // Login screen, asks user to enter user name and password     +    } else if (!strcmp (action, "")) { +        login_or_signup(); +        @Please Login:
              +        @
              +        @ +        @ +        @ +        @ +        @
              +    } +} + +// Display Login or Sign Up links +void login_or_signup() { +        @Login & & Sign Up
              +} +``` + +#### General-purpose application (_show_home.vely) + +With this tutorial, you can create any multitenant SaaS application you want. The multitenant-processing module above (`login.vely`) calls the **_show_home()** function, which can house any code of yours. This example code shows the Notes application, but it could be anything. The **_show_home()** function calls any code you wish and is a general-purpose multitenant application plug-in: + +``` +#include "vely.h" + +void _show_home() { +    notes(); +    exit-request +} +``` + +#### Notes application (notes.vely) + +The application is able to add, list, and delete any given note: + +``` +#include "vely.h" +#include "login.h" + +// Notes application in a multitenant Cloud +void notes () { +    // get global request data +    reqdata *rd; +    get-req data to rd +    // If session invalid, display Login or Signup +    if (!rd->is_logged_in) { +        login_or_signup(); +    } +    // Greet the user +    @

              Welcome to Notes!


              +    // If not logged in, exit - this ensures security verification of user's identity +    if (!rd->is_logged_in) { +        exit-request +    } +    // Get URL parameter that tells Notes what to do +    input-param subreq +    // Display actions that Notes can do (add or list notes) +    @Add Note List Notes
              + +    // List all notes for this user +    if (!strcmp (subreq, "list")) { +        // select notes for this user ONLY +        run-query @db_multitenant_SaaS = "select dateOf, note, noteId from notes where userId='%s' order by dateOf desc" : rd->sess_userId output dateOf, note, noteId +            query-result dateOf to define dateOf +            query-result note to define note +            query-result noteId to define noteId +            // change new lines to
              with fast cached Regex +            match-regex "\n" in note replace-with "
              \n" result define with_breaks status define st cache +            if (st == 0) with_breaks = note; // nothing was found/replaced, just use original +            // Display a note +            @Date: <> (delete note)
              +            @Note: <>
              +            @
              +        end-query +    } + +    // Ask to delete a note +    else if (!strcmp (subreq, "delete_note_ask")) { +        input-param note_id +        @Are you sure you want to delete a note? Use Back button to go back, or delete note now. +    } + +    // Delete a note +    else if (!strcmp (subreq, "delete_note")) { +        input-param note_id +        // Delete note +        run-query @db_multitenant_SaaS = "delete from notes where noteId='%s' and userId='%s'" : note_id, rd->sess_userId affected-rows define arows no-loop error define errnote +        // Inform user of status +        if (arows == 1) { +            @Note deleted +        } else { +            @Could not delete note (<>) +        } +    } + +    // Add a note +    else if (!strcmp (subreq, "add_note")) { +        // Get URL POST data from note form +        input-param note +        // Insert note under this user's ID +        run-query @db_multitenant_SaaS = "insert into notes (dateOf, userId, note) values (now(), '%s', '%s')" : rd->sess_userId, note affected-rows define arows no-loop error define errnote +        // Inform user of status +        if (arows == 1) { +            @Note added +        } else { +            @Could not add note (<>) +        } +    } + +    // Display an HTML form to collect a note, and send it back here (with subreq="add_note" URL param) +    else if (!strcmp (subreq, "add")) { +        @Add New Note +        @
              +        @ +        @ +        @ +        @
              +    } +} +``` + +### SaaS with C performance + +Vely makes it possible to leverage the power of C in your web applications. A multitenant SaaS application is a prime example of a use case that benefits from that. Take a look at the code examples, write some code, and give Vely a try. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/build-your-own-saas-vely + +作者:[Sergio Mijatovic][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/vely +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/5/write-c-appplications-vely-linux +[2]: https://opensource.com/sites/default/files/2022-10/1createuser.png +[3]: https://opensource.com/sites/default/files/2022-10/2verifyemail.png +[4]: https://opensource.com/sites/default/files/2022-10/3login.png +[5]: https://opensource.com/sites/default/files/2022-10/4addnote.png +[6]: https://opensource.com/sites/default/files/2022-10/5listnotes.png +[7]: https://opensource.com/sites/default/files/2022-10/6confirmdelete.png +[8]: https://opensource.com/sites/default/files/2022-10/7notedeleted.png +[9]: https://vely.dev/ From 4b40ffac67e1699bf8b41c51f4c723ff485add47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 00:11:21 +0800 Subject: [PATCH 1917/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221107.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20Node.js=20on=20RHEL=209.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md diff --git a/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md new file mode 100644 index 0000000000..5069dbf0d4 --- /dev/null +++ b/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md @@ -0,0 +1,184 @@ +[#]: subject: "How to Install Node.js on RHEL 9" +[#]: via: "https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/" +[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Node.js on RHEL 9 +====== + +In this post, we will explain how to install Node.js on RHEL 9 system step-by-step. + +Built on Google’s V8 Javascript engine, [Node.js][1] is a free and opensource, cross-platform JavaScript runtime that is mostly used for building server-side applications. It uses an event-driven and asynchronous model that helps developers build highly scalable, data-intensive real-time applications (RTAs ). You can use NodeJS to build both front-end and back-end applications. + +Node.js is commonly used in building the following applications: + +- Chat applications +- Streaming applications +- Browser games +- Command-line tools +- Embedded systems + +Top companies that use NodeJS in their tech stacks include PayPal, Netflix, and Uber to mention a few. + +There are three main ways of installing Node.JS: + +- Installing Node.JS from the NodeSource repository +- Installing Node.JS from the distribution’s Official repository +- Installing Node.JS using NVM + +Let us check out how to install Node.JS on RHEL 9 using each of these methods. + +##### Prerequisites + +- Minimal Installed RHEL 9 System +- [Sudo User][2] with admin rights +- Internet Connectivity +- Red Hat Subscription or locally configured repository + +### Installing Node.js from NodeSource Repository + +[NodeSource][3]is a technology company that seeks to help organizations run production-ready Node.Js applications with more focus on resource usage and enhanced security and application performance. It provides the latest versions of Node.JS and NPM. + +To install Node.SJ from Nodesource, first, update the system packages as shown. + +``` +$ sudo dnf update -y +``` + +Next, install the required build tools which will be required during the installation of Node.JS. These include the GCC c/c++ compiler, Perl, and Python debuggers to mention a few. + +``` +$ sudo dnf groupinstall 'Development Tools' -y +``` + +Next, we are going to install Node.JS 18.x from Nodesource. To do this, download and run the NodeSource setup script as follows. + +``` +$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - +``` + +The script adds the Nodesource repository to your system among other tasks + +At the tail end of the output, you will see some additional instructions provided on how to install Node.JS and npm. + +Therefore, to install Node.JS and npm (Node Package Manager), run the command: + +``` +$ sudo dnf install nodejs -y +``` + +Once the installation is complete, verify the version of Node.JS and NPM as shown. + +``` +$ node -v +$ npm -v +``` + +The output shows that we are running Node v18.12 which is the latest LTS release and NPM 8.19.2. + +### Installing Node.js from the official RHEL repositories + +The other way of installing NodeJS and NPM is by installing them from your distribution’s official repository. However, this approach does not provide the latest versions. + +If you don’t mind not installing the latest versions of Node and NPM. , then run the following command on the command line. + +``` +$ sudo dnf update -y +$ sudo dnf install nodejs npm -y +``` + +### Installing Node.js using NVM + +Lastly, you can install Node.JS using NVM ( Node Version Manager) which is a tool for managing Node versions on your system. The tool helps developers work efficiently on different projects which require different versions of Node.JS + +NVM is not installed by default You need to install it by running the Shell script which is available on the [Official GitHub Page][4]. + +``` +$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash +``` + +This downloads and saves nvm in the .nvm directory in your home directory. + +Once installed, close your terminal sessions and open a new terminal. Then run the following command to confirm that NVM has been installed. + +``` +$ command -v nvm +``` + +Next, you can list all the available versions of Node.JS using the following command: + +``` +$ nvm ls-remote +``` + +Alternatively, you can list all the latest LTS releases for Node.JS versions as shown. + +``` +$ nvm ls-remote | grep -i latest +``` + +To install the very latest version of Node.JS (currently v19.0.0 ), run the command: + +``` +$ nvm install node +``` + +You can then verify the version of Node installed as shown. + +``` +$ node -v +``` + +In addition, you can install a specific version of Node. JS. For example, to install v18.2.0, run the command: + +``` +$ nvm install v18.12.0 +``` + +To list all the installed versions of NodeJS on your system, run the command: + +``` +$ nvm ls +``` + +The first entry with the sign ( – > ) points to the version of Node.JS that is currently in use. This is then followed by other versions as indicated below + +To switch to another version of Node.JS, use the syntax: + +``` +$ nvm use +``` + +For example, to use Node version 19.0.0, run the command: + +``` +$ nvm use 19.0.0 +``` + +Again, check the installed versions of Node.JS, and this time the  ( – > ) sign will point to v19.0.0 + +##### Conclusion + +In this guide, we have demonstrated how to install Node.js using three different methods. In addition, we have provided a few ways in which you can manage the Node versions using NVM. We hope that you can now comfortably install NodeJS on RHEL and choose the version that you want to work with on your project. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/ + +作者:[James Kiarie][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/james/ +[b]: https://github.com/lkxed +[1]: https://nodejs.org/en/about/ +[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/ +[3]: https://nodesource.com/ +[4]: https://github.com/nvm-sh/nvm From 436e0402469c7bde8874d562782dfa87d9b368ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 00:12:34 +0800 Subject: [PATCH 1918/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221107.4=20=E2=AD=90=EF=B8=8F=20How=20to=20Boost?= =?UTF-8?q?=20Speaker=20Volume=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...st Speaker Volume in Ubuntu and Other Linux.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md diff --git a/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md b/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..702d9a7c96 --- /dev/null +++ b/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md @@ -0,0 +1,89 @@ +[#]: subject: "How to Boost Speaker Volume in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/boost-speaker-volume-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Boost Speaker Volume in Ubuntu and Other Linux +====== + +**Here’s how you can boost your Laptop and desktop’s volume more in Ubuntu and other Linux distributions.** + +Have you ever felt that your Ubuntu Laptop’s volume is too low, despite you selected the volume to 100%? I’m sure you had. The primary reason is – obviously, laptop speaker output intensity is lower than large speakers. + +In addition, Ubuntu and other distros set the default maximum volume to 100%, i.e. 0dB (decibel). The 0dB is the maximum volume reference. To compare, if you set the volume to -10dB, that means your volume is quieter than the maximum 0dB. + +VLC and some media players allow you to increase the volume by up to 200%. Using some settings in the latest Ubuntu, you can boost the volume to further. + +**Note**: Before you try this and use the following method, remember that each speaker has a hardware limitation set by its manufacturer. Once in a while, playing audio more than 100% is fine. But continuous amplification to higher decibels may distort output audio & may damage your speaker amplifier in the longer term. So, use it with caution and limitation. + +### Boost Speaker Volume in Ubuntu and other distros + +#### For the latest Ubuntu 22.04 and above (GNOME): + +Open Settings from the application menu and go to the Sound tab. + +Enable the “Over Amplification” switch. The moment you enable you should see the volume bar is expanded. + +![Boost volume more than 100 percent in Ubuntu][1] + +Now you can enjoy a volume boost to listen to music. + +#### Fedora, Arch Linux and other distros + +If you use Fedora Workstation with GNOME, you will not get the above option since it is an Ubuntu-specific setting. See below. + +![Speaker volume is max 100 percent in Fedora (GNOME)][2] + +So, for any other Linux distributions (Arch, Fedora, RedHat, etc.) or desktops (KDE, Xfce, LXQt, etc.), open a terminal and install [PulseAudio Volume Control][3]. + +**Fedora, RedHat Linux, OpenSUSE and related rpm-based distributions:** + +``` +sudo dnf install pavucontrol +``` + +**For Arch Linux, Manjaro** + +``` +sudo pacman -S pavucontrol +``` + +**Non-GNOME Ubuntu-based distros** + +``` +sudo apt install pavucontrol +``` + +### How to Use + +After installation, open the `pavucontrol` from the application menu, it should appear as ‘PulseAudio Volume Control’ as a menu item. + +![Increase Volume using PulseAudio Volume Control][4] + +### Wrapping Up + +Remember, the above methods boost the speaker volume for the entire system. That means the system sounds and alerts are also impacted. So, keep that in mind. As I mentioned earlier, boosting speaker volume by more than 100% may result in distrotion or damage to the speaker if used continuously. + +I hope this tutorial helps you to increase your system volume. Do let me know in the comment box if you run into issues. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/boost-speaker-volume-ubuntu/ + +作者:[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/11/Boost-volume-more-than-100-percent-in-Ubuntu.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/Speaker-volume-is-max-100-percent-in-Fedora-GNOME.jpg +[3]: https://freedesktop.org/software/pulseaudio/pavucontrol/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Increase-Volume-using-PulseAudio-Volume-Control-1024x508.jpg From f85603bf7ca2cdcfb330608ca459d7cf4cb481f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 00:12:58 +0800 Subject: [PATCH 1919/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221107.5=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20OpenOffice=20in=20Arch=20Linux=20[Beginner=E2=80=99s=20Guide?= =?UTF-8?q?].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...OpenOffice in Arch Linux [Beginner’s Guide].md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md diff --git a/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md new file mode 100644 index 0000000000..bc730a3db8 --- /dev/null +++ b/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md @@ -0,0 +1,84 @@ +[#]: subject: "How to Install OpenOffice in Arch Linux [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-openoffice-arch/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install OpenOffice in Arch Linux [Beginner’s Guide] +====== + +**An absolute beginner’s guide to install OpenOffice in Arch Linux and its derivatives.** + +[OpenOffice][1] is the oldest free and open-source office productivity suite which has been under maintenance for some time. It was developed by Apache and is still a sought-after suite, although it has been forked as LibreOffice. + +This tutorial is for those who want to install OpenOffice for their work and other needs. + +**Note**: Before you install, remember that many updated features and compatibility with Microsoft Office are not thoroughly supported in OpenOffice. If you want a more modern version of Office suite, try [LibreOffice][2]. + +### Installing OpenOffice in Arch Linux + +The [OpenOffice package][3] is available in Arch User Repository. So, to install it, you need to use an Aur helper program. Here’s what you need to do. Follow the steps mentioned below to install Yay AUR helper. A detailed guide is [present here][4] if you want to learn more about Yay. + +- Run the following commands in sequence to install basic packages and clone Yay. + +``` +sudo pacman -S base-develsudo pacman -S gitcd /optsudo git clone https://aur.archlinux.org/yay.git +``` + +- Run the following command by replacing `debugpoint` with your Arch system’s user name. + +``` +sudo chown -R debugpoint:users ./yay +``` + +- Finally, install the AUR helper using the following command. + +``` +cd yaymakepkg -si +``` + +- Once finished, install OpenOffice using the following: + +``` +yay -S openoffice-bin +``` + +![Install OpenOffice in Arch Linux via Yay helper][5] + +Follow the onscreen instructions. After installation, you can find it in the application menu, as shown in the below image. + +Launch OpenOffice and add your name and details to the start wizard, and you are good to go. + +![OpenOffice in Arch Linux Application Menu (XFCE)][6] + +![Latest OpenOffice running in Arch Linux][7] + +### Wrapping Up + +Using the above method, you can also install OpenOffice in Majnaro and other Arch Linux-based distros. Although it is an older office productivity suite, you should remember that it is not fully compatible with modern Microsoft Office document types (such as docx, xlsx). + +If you run into any errors during installation, drop us a note in the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-openoffice-arch/ + +作者:[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.openoffice.org/ +[2]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ +[3]: https://aur.archlinux.org/packages/openoffice-bin +[4]: https://www.debugpoint.com/install-yay-arch/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-OpenOffice-in-Arch-Linux-via-Yay-helper.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/OpenOffice-in-Arch-Linux-Application-Menu-XFCE.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Latest-OpenOffice-running-in-Arch-Linux.jpg From 5df00aa12a9dfff1224a82229a0895d945099d31 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 8 Nov 2022 08:53:34 +0800 Subject: [PATCH 1920/3123] translating --- ...m a Video in VLC Player [If You Really Want to].md | 132 ------------------ ...m a Video in VLC Player [If You Really Want to].md | 132 ++++++++++++++++++ 2 files changed, 132 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md create mode 100644 translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md diff --git a/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md b/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md deleted file mode 100644 index 16e58bc5ff..0000000000 --- a/sources/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "How to Trim a Video in VLC Player [If You Really Want to]" -[#]: via: "https://itsfoss.com/vlc-trim-video/" -[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Trim a Video in VLC Player [If You Really Want to] -====== - -VLC media player is one of the [best media players][1] out there. This cross-platform player is feature rich and it can literally play any media format that’s available. - -You’ll be surprised to know that VLC is much more than just a video player. It can do a lot of things with your media files. - -[Downloading YouTube video with VLC][2] is one of the [VLC tips][3] we have shared on It’s FOSS. - -Let me share another one with you. How about trimming a video with VLC? It’s not the best way to [trim videos][4] but it is available as an option. - -### Trim videos using VLC - -Trimming a video in VLC essentially means recording the video from the beginning to end of the required portion. The recording control tools are usually not visible in the VLC panel by default. - -Let me show the steps in detail. - -#### Step 1: Enable advanced controls - -To get the controls, you need to make it visible on the main control panel. - -First select the view option and then check the Advanced controls check box. Now, a new row of controls with a couple of buttons appears as shown in the screenshot. - -![enable advanced controls view in vlc player][5] - -#### Step 2: Open the video - -In order to trim a video, you need to open it in VLC. You can either open the video in VLC player by Media > Open File: - -![open media file through vlc file menu][6] - -Or you can open the video file with VLC from Nautilus file manager: - -![open media file with vlc player from nautilus file manager][7] - -#### Step 3: Trim video using VLC’s recording feature - -Once video file is opened, set the timeline to the starting point of the required output and pause the video. After that, press the record button and play the video. - -![pause at start point and start record by pressing record button][8] - -When the end point of the required output is reached, pause the video and press the record button again to stop recording. - -![pause at end point and press record][9] - -This should save the trimmed output to your ~/Videos directory. - -![original and trimmed file in nautilus file manager][10] - -### Troubleshooting: Unrecognized Output File - -VLC records the videos in .ts file format. This is supported in VLC, and you can use that as you want. But many other players in Ubuntu, including the native video player doesn’t recognize the format. So, in this case, there are two solutions. - -#### Gnome-Video prompts Installation of GStreamer package - -When you try to open the file, GNOME-Videos will prompt an error and suggestion to install Gstreamer multimedia codecs. - -![converted video shows a play error in gnome video player app][11] - -You can click on the “Find in Ubuntu Software” button as shown above, which will open ubuntu software center. There you can install the required codec package. - -![install gstreamer from software as prompted by the gnome video player][12] - -Install the same and open the video with Gnome-videos again will solve the problem. - -#### Convert the Video file using VLC - -If you don’t want to install any additional packages for the purpose, you can use VLC itself to convert the .ts file to mp4 format to play in any other player. - -For this, open VLC and select Convert option under File menu. - -![select convert from media menu][13] - -Now, provide the location of the file that needs to be converted using the “Add” button and select Convert/Save as shown in the screenshot. - -![select file to convert in the media convert dialog box][14] - -Select the required output profile (MP4) and set a file name for the output and press Start. - -![set conversion profiles and output file name in vlc media convert menu][15] - -This will start the conversion and will be completed as per the duration of the source. Once done, you can access the converted output from your ~/Videos directory. - -![original trimmed and converted file in nautilus file manager][16] - -### Wrapping Up - -While it is true that VLC player can be used to trim videos, the entire process is in no way similar to a dedicated [video editor][17]. - -The biggest issue is that you need to watch the entire trim portion to compete the trimming, which is not convenient if you are trimming a large portion of a video spanning several minutes. - -Anyway, this cool feature can be a handy tool on some occasion, where all you want is to trim a particular small clip or make a gif from a movie scene. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/vlc-trim-video/ - -作者:[Sreenath][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/sreenath/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/video-players-linux/ -[2]: https://itsfoss.com/download-youtube-videos-vlc/ -[3]: https://itsfoss.com/simple-vlc-tips/ -[4]: https://itsfoss.com/video-trimmer/ -[5]: https://itsfoss.com/wp-content/uploads/2022/11/enable-advanced-controls-view-in-vlc-player.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/open-media-file-through-vlc-file-menu.png -[7]: https://itsfoss.com/wp-content/uploads/2022/11/open-media-file-with-vlc-player-from-nautilus-file-manager.png -[8]: https://itsfoss.com/wp-content/uploads/2022/11/pause-at-start-point-and-start-record-by-pressing-record-button.png -[9]: https://itsfoss.com/wp-content/uploads/2022/11/pause-at-end-point-and-press-record.png -[10]: https://itsfoss.com/wp-content/uploads/2022/11/original-and-trimmed-file-in-nautilus-file-manager.png -[11]: https://itsfoss.com/wp-content/uploads/2022/11/converted-video-shows-a-play-error-in-gnome-video-player-app.png -[12]: https://itsfoss.com/wp-content/uploads/2022/11/install-gstreamer-from-software-as-prompted-by-the-gnome-video-player.png -[13]: https://itsfoss.com/wp-content/uploads/2022/11/select-convert-from-media-menu.png -[14]: https://itsfoss.com/wp-content/uploads/2022/11/select-file-to-convert-in-the-media-convert-dialog-box.png -[15]: https://itsfoss.com/wp-content/uploads/2022/11/set-conversion-profiles-and-output-file-name-in-vlc-media-convert-menu.png -[16]: https://itsfoss.com/wp-content/uploads/2022/11/original-trimmed-and-converted-file-in-nautilus-file-manager.png -[17]: https://itsfoss.com/open-source-video-editors/ diff --git a/translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md b/translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md new file mode 100644 index 0000000000..a2fb07ea02 --- /dev/null +++ b/translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md @@ -0,0 +1,132 @@ +[#]: subject: "How to Trim a Video in VLC Player [If You Really Want to]" +[#]: via: "https://itsfoss.com/vlc-trim-video/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 VLC 播放器中裁剪视频(如果你真的想要) +====== + +VLC 媒体播放器是[最好的媒体播放器][1]之一。这款跨平台播放器功能丰富,可以播放任何可用的媒体格式。 + +你会惊讶地发现 VLC 不仅仅是一个视频播放器。它可以对你的媒体文件做很多事情。 + +[使用 VLC 下载 YouTube 视频][2]是我们在 It's FOSS 上分享的 [VLC 技巧][3]之一。 + +让我再和你分享一个。用 VLC 裁剪视频怎么样?这不是[裁剪视频][4]的最佳方式,但它可以作为一个选择使用。 + +### 使用 VLC 裁剪视频 + +在 VLC 中裁剪视频本质上意味着从所需部分的开头到结尾录制视频。默认情况下,录制控制工具通常在 VLC 面板中不可见。 + +让我详细介绍一下步骤。 + +#### 步骤 1:启用高级控件 + +要获取控件,你需要使其在主控制面板上可见。 + +首先选择视图选项,然后选中高级控件复选框。现在,如截图所示,出现了带有几个按钮的新控件行。 + +![在 vlc 播放器中启用高级控件视图][5] + +#### 步骤 2:打开视频 + +为了裁剪视频,你需要在 VLC 中打开它。你可以通过“媒体 > 打开文件”在 VLC 播放器中打开视频: + +![通过 vlc 文件菜单打开媒体文件][6] + +或者你可以使用 Nautilus 文件管理器中的 VLC 打开视频文件: + +![使用 nautilus 文件管理器中的 vlc 播放器打开媒体文件][7] + +#### 步骤 3:使用 VLC 的录制功能裁剪视频 + +打开视频文件后,将时间线设置为所需输出的起点并暂停视频。之后,按录制按钮并播放视频。 + +![在起点暂停,按录制键开始录制][8] + +当达到所需输出的终点时,暂停视频并再次按下录制按钮停止录制。 + +![在终点暂停并按下录制][9] + +这应该将裁剪后的输出保存到你的 \~/Videos 目录中。 + +![nautilus 文件管理器中的原始和裁剪后文件][10] + +### 故障排除:无法识别的输出文件 + +VLC 以 .ts 文件格式录制视频。这在 VLC 中受支持,你可以根据需要使用它。但是 Ubuntu 中的许多其他播放器,包括本地视频播放器,都无法识别该格式。因此,在这种情况下,有两种解决方案。 + +#### Gnome-Video 提示安装 GStreamer 包 + +当你尝试打开文件时,GNOME-Videos 会提示错误并建议安装 Gstreamer 多媒体编解码器。 + +![转换后的视频在 gnome 视频播放器中显示播放错误][11] + +你可以点击上图所示的 “Find in Ubuntu Software” 按钮,这将打开 ubuntu 软件中心。你可以在那里安装所需的编解码器包。 + +![根据 gnome 视频播放器的提示从软件中心安装 gstreamer][12] + +安装过程相同并再次使用 Gnome-videos 打开视频将解决问题。 + +#### 使用 VLC 转换视频文件 + +如果你不想为此安装任何额外的软件包,你可以使用 VLC 本身将 .ts 文件转换为 mp4 格式以在任何其他播放器中播放。 + +为此,打开 VLC 并在文件菜单下选择转换选项。 + +![从媒体菜单中选择转换][13] + +现在,使用“添加”按钮提供需要转换的文件的位置,然后选择转换/保存,如截图所示。 + +![在媒体转换对话框中选择要转换的文件][14] + +选择所需的输出配置 (MP4) 并为输出设置文件名,然后按“开始”。 + +![在 vlc 媒体转换菜单中设置转换配置和输出文件名][15] + +这将开始转换,并根据源的时长决定转换时间。完成后,你可以从 \~/Videos 目录访问转换后的输出。 + +![nautilus 文件管理器中的原始裁剪和转换文件][16] + +### 总结 + +虽然确实可以使用 VLC 播放器来裁剪视频,但整个过程与专门的[视频编辑器][17]完全不同。 + +最大的问题是你需要观看所有裁剪部分才能完成裁剪,如果你要裁剪跨越数分钟的视频的一大部分,这就不方便了。 + +无论如何,这个很酷的功能在某些情况下可能是一个方便的工具,比如你想要的只是裁剪一个特定的小剪辑或从电影场景中制作一个 gif。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/vlc-trim-video/ + +作者:[Sreenath][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/video-players-linux/ +[2]: https://itsfoss.com/download-youtube-videos-vlc/ +[3]: https://itsfoss.com/simple-vlc-tips/ +[4]: https://itsfoss.com/video-trimmer/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/enable-advanced-controls-view-in-vlc-player.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/open-media-file-through-vlc-file-menu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/11/open-media-file-with-vlc-player-from-nautilus-file-manager.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/pause-at-start-point-and-start-record-by-pressing-record-button.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/pause-at-end-point-and-press-record.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/original-and-trimmed-file-in-nautilus-file-manager.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/converted-video-shows-a-play-error-in-gnome-video-player-app.png +[12]: https://itsfoss.com/wp-content/uploads/2022/11/install-gstreamer-from-software-as-prompted-by-the-gnome-video-player.png +[13]: https://itsfoss.com/wp-content/uploads/2022/11/select-convert-from-media-menu.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/select-file-to-convert-in-the-media-convert-dialog-box.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/set-conversion-profiles-and-output-file-name-in-vlc-media-convert-menu.png +[16]: https://itsfoss.com/wp-content/uploads/2022/11/original-trimmed-and-converted-file-in-nautilus-file-manager.png +[17]: https://itsfoss.com/open-source-video-editors/ From e8395a725e2edbe4a20b362d7dddd1445c5790bc Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 8 Nov 2022 08:59:25 +0800 Subject: [PATCH 1921/3123] translating --- ... Guide How to Share A Folder Between UbuntuLinux and Windows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md b/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md index cfae20f66c..dd3208e4b3 100644 --- a/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md +++ b/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2b3caaf73978f4d70be672a1671dd6ef45c45daf Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 8 Nov 2022 11:07:56 +0800 Subject: [PATCH 1922/3123] RP @geekpi https://linux.cn/article-15226-1.html --- ...️ How to Enable Dark Mode in Web Browser.md | 104 ++++++++++++++++++ ...️ How to Enable Dark Mode in Web Browser.md | 99 ----------------- 2 files changed, 104 insertions(+), 99 deletions(-) create mode 100644 published/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md delete mode 100644 translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md diff --git a/published/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/published/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md new file mode 100644 index 0000000000..733c174ab8 --- /dev/null +++ b/published/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md @@ -0,0 +1,104 @@ +[#]: subject: "How to Enable Dark Mode in Web Browser" +[#]: via: "https://www.debugpoint.com/dark-mode-browser/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15226-1.html" + +如何在 Web 浏览器中启用深色模式 +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/08/110615dax28a8fhx13hxhi.jpg) + +> 本指南旨在帮助你在 Firefox、Chrome、Chromium 和 Edge 等流行的网页浏览器中启用深色模式。 + +我们都喜欢深色模式。与标准浅色模式相比,许多人更喜欢它。许多桌面应用原生提供深色模式,而一些应用则是通过桌面环境的底层模式适应深色模式。 + +不可否认,我们都在网页浏览器上花费了很多时间。我们很少使用桌面应用(除非你从事专门的工作,例如视频编辑等)。因此,当你花费大量时间在浏览器中阅读和学习时,你始终可以选择深色模式。不过,对于网页浏览器,启用深色模式的方法略有不同。 + +本指南为你提供了在 Firefox、Chromium、Chrome 和 Edge 浏览器中启用深色模式的简单步骤。 + +### 在网页浏览器中启用深色模式 + +#### 在 Firefox 中启用深色模式 + +打开 Firefox 并点击右上角的菜单。 + +单击 “设置Settings > 扩展和主题Extension and Themes”。 + +选择 “深色主题Dark Theme” 并点击 “启用enable”。你应该会看到深色模式已应用于 Firefox。 + +![Enable dark mode in Firefox][1] + +*在 Firefox 浏览器中启用深色模式* + +![Firefox in Dark Mode][2] + +*深色模式下的 Firefox* + +要将其还原,请按照相同的步骤并选择浅色主题。 + +#### Chromium 和 Chrome 中的深色模式 + +默认情况下,Chromium 或 Chrome 不会预安装任何深色主题。因此,你需要前往 Chrome 应用商店并下载你想要的深色主题。对于本指南,我会推荐超过一百万用户使用的 “Morpheon Dark” 主题。 + +从 Chromium 浏览器打开 Morpheon Dark 主题页面(以下链接)。 + +> **[Chrome 应用商店中的 Morpheon Dark 主题][3]** + +点击 “添加到 ChromeAdd To Chrome” 按钮。它应该会在 Chrome 中启用。 + +你可能想探索 Chrome 应用店中提供的其他深色或浅色主题。 [访问此页面获取所有深色主题的集合][4]。 + +但是,你应该要记住的一件事是:此主题不会更改设置或上下文菜单,这是显而易见的。因为它只是改变了浏览器窗口,而这些菜单(有时)是操作系统本身的一部分。 + +![Chromium Dark Theme][5] + +*Chromium 深色主题* + +对 Chrome 浏览器也遵循相同的步骤。 + +#### Edge 浏览器 – 深色模式 + +但是,[Edge 浏览器][6] 默认带有更好的深色主题。它允许你从设置中使用 GTK+、浅色和深色模式。 + +打开 Edge 浏览器,点击右上角的三个小点。 + +转到 “外观Appearance” 并选择 “深色Dark”。这样应该就好了。 + +Edge 的这种深色主题实现更好,因为它改变了上下文菜单和地址栏。 + +![Edge in Dark Theme][7] + +*深色主题的 Edge* + +### 总结 + +如果你是高级用户,你可能不需要本指南。你可以自己弄清楚。 + +但我们为所有读者涵盖了所有基础到高级教程。许多新的 Linux 用户可能不知道如何在浏览器中启用深色模式。 + +所以,就是说,我希望这对你和其他人有帮助。如果你遇到任何问题,请在下面的评论框中告诉我。 + +--- + +via: https://www.debugpoint.com/dark-mode-browser/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/10/Enable-dark-mode-in-Firefox.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg +[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB +[4]: https://chrome.google.com/webstore/category/collection/dark_themes +[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg +[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg diff --git a/translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md deleted file mode 100644 index 4150dcc145..0000000000 --- a/translated/tech/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "How to Enable Dark Mode in Web Browser" -[#]: via: "https://www.debugpoint.com/dark-mode-browser/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -# 如何在 Web 浏览器中启用深色模式 - -**本指南旨在帮助你在 Firefox、Google Chrome、Chromium 和 Microsoft Edge 等流行的网络浏览器中启用深色模式。** - -我们都喜欢黑暗模式。与标准浅色模式相比,许多人更喜欢它。虽然许多桌面应用原生提供深色模式,但一些应用通过桌面环境的底层模式适应深色模式。 - -你不能否认我们在网络浏览器上花费数小时。我们很少使用桌面应用(除非你从事专门的工作,例如视频编辑等)。因此,当你花费大量时间在浏览器中阅读和学习时,你始终可以选择深色模式。但是,来到网络浏览器,事情就有些不同了。 - -本指南为你提供了在 Mozilla Firefox、Chromium、Google Chrome 和 Edge 浏览器中启用深色模式的简单步骤。 - -### 在 Web 浏览器中启用深色模式 - -#### 在 Firefox 中启用深色模式 - -- 打开 Firefox 并点击右上角的菜单。 -- 单击 `设置 > 扩展和主题`。 -- 选择`深色主题`并点击`启用`。你应该会看到深色模式已应用于 Firefox。 - -![Enable dark mode in Firefox][1] - -在 Firefox 浏览器中启用深色模式 - -![Firefox in Dark Mode][2] - -深色模式下的 Firefox - -- 要将其还原,请按照相同的步骤并选择浅色主题。 - -#### Chromium 和 Google Chrome 中的浅色模式 - -默认情况下,Chromium 或 Google Chrome 不会预安装任何深色主题。因此,你需要前往 Chrome 应用商店并下载你想要的任何深色主题。对于本指南,我会推荐超过一百万用户使用的 “Morpheon Dark” 主题。 - -从 Chromium 浏览器打开 Morpheon Dark 主题页面(以下链接)。 - -[Chrome 应用商店中的 Morpheon Dark 主题][3] - -点击 “Add To Chrome” 按钮。它应该会在 Chrome 中启用。 - -你可能想探索 Chrome 应用店中提供的其他深色或浅色主题。 [访问此页面获取所有深色主题的集合][4]。 - -但是,你应该要记住的一件事是:此主题不会更改设置或上下文菜单,这是显而易见的。因为它只是改变了浏览器窗口,而这些菜单(有时)是操作系统本身的一部分。 - -![Chromium Dark Theme][5] - -Chromium 深色主题 - -对 Google Chrome 浏览器也遵循相同的步骤。 - -#### Edge 浏览器 – 深色模式 - -但是,[Microsoft Edge 浏览器][6]默认带有更好的深色主题。它允许你从设置中使用 GTK+、浅色和深色模式。 - -- 打开 Edge 浏览器 -- 点击右上角的三个小点。 -- 转到外观并选择深色。你应该准备好了。 - -Edge 的这种深色主题实现更好,因为它改变了上下文菜单和地址栏。 - -![Edge in Dark Theme][7] - -深色主题的 Edge - -### 结束语 - -如果你是高级用户,你可能不需要本指南。你可以弄清楚。 - -但我们为所有读者涵盖了所有基础到高级教程。许多新的 Linux 用户可能不知道如何在浏览器中启用深色模式。 - -所以,就是说,我希望这对你和其他人有帮助。如果你遇到任何问题,请在下面的评论框中告诉我。 - ---- - -via: https://www.debugpoint.com/dark-mode-browser/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者 ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2021/10/Enable-dark-mode-in-Firefox.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg -[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB -[4]: https://chrome.google.com/webstore/category/collection/dark_themes -[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg -[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/ -[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg From 4f74eeeb92bfa94406f3630b91f424bd4a38cd18 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 8 Nov 2022 12:40:00 +0800 Subject: [PATCH 1923/3123] RP @MareDevi https://linux.cn/article-15227-1.html --- ...gn system to create new community logos.md | 123 ++++++++++++++++ ...gn system to create new community logos.md | 133 ------------------ 2 files changed, 123 insertions(+), 133 deletions(-) create mode 100644 published/20210426 How we built an open source design system to create new community logos.md delete mode 100644 translated/tech/20210426 How we built an open source design system to create new community logos.md diff --git a/published/20210426 How we built an open source design system to create new community logos.md b/published/20210426 How we built an open source design system to create new community logos.md new file mode 100644 index 0000000000..7aa29a7ef8 --- /dev/null +++ b/published/20210426 How we built an open source design system to create new community logos.md @@ -0,0 +1,123 @@ +[#]: subject: (How we built an open source design system to create new community logos) +[#]: via: (https://opensource.com/article/21/4/ansible-community-logos) +[#]: author: (Fiona Lin https://opensource.com/users/fionalin) +[#]: collector: (lujun9972) +[#]: translator: (MareDevi) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15227-1.html) + +我们如何建立一个开源的设计系统来创造新的社区徽标 +====== + +> 了解 Ansible 的新徽标是如何根据相关人员的意见开发的,以确保整个项目的品牌一致性。 + +![UX design Mac computer with mobile and laptop][1] + +作为红帽的用户体验(UX)设计和 Ansible 产品团队的交互设计师,我们花了大约 6 个月的时间为 Ansible 社区设计了一系列徽标。这件事其实在更早的时候就开始了,当时一位项目经理要求我们为一个幻灯片提供一个 “快速而简单” 的徽标。在收集了一些需求后,我们在几天内就向相关人员展示了一个徽标,而且没有经过太多调整。几个月后,另一个相关人员说他们也需要类似的徽标,所以我们重复了这个过程。 + +于是,我们注意到一个模式:像这样的徽标资源不仅仅代表个人的要求,而是整个 Ansible 项目的共同需要。在完成了几个徽标要求后,我们有了一系列临时的设计,但在没有意识到品牌和设计惯例的情况下,这可能给整个 Ansible 的品牌视觉造成了不一致。随着这个徽标系列的增加,我们认识到了这个迫在眉睫的问题,并需要解决它。 + +我们的解决方案是创建一个 Ansible 设计系统,这是一个针对品牌的资源,可以指导未来一致的徽标设计。 + +### 什么是设计系统? + +设计系统是一个可重复使用的资源和指导方法的集合,有助于告知任何数字产品套件的视觉语言。设计系统创造了一些模式,将独立的产品整合在一起,并通过可扩展性和一致性提升品牌。 + +特别是在一个有多种产品的大公司里,如果没有标准化,扩展起来就不容易,因为不同的团队对每个产品都有贡献。设计系统可以作为每个团队建立新资产的基线。有了标准化的外观和感觉,产品在整个组合中被统一为一个家族。 + +### 从头构建一个设计系统 + +在收到相关人员提出的为 Ansible 开源社区(如 Ansible Builder、Ansible Runner 和Project Receptor)创建徽标的一系列要求后,我们决定为我们的工作流程设计一个结构,并创建一个单一的事实来源,为之努力。 + +首先,我们对现有的徽标进行了视觉审计,以确定我们要做的是什么。Ansible 的原始徽标系列由四个主要图像组成:代表 AWX 的 Angry Spud,代表 Ansible 核心/引擎的 Ansibull,以及代表 AWX 的带翅膀的显示器。大部分的徽标都是用一致的红色阴影和公牛的形象联系在一起的,但是笔画的宽度、笔画的颜色、线条的质量和排版复杂而多样。 + +![Original Ansible logos][2] + +Angry Spud 使用棕褐色的轮廓和手绘风格,而 Ansibull 则是一个对称的几何矢量图。AWX 显示器是一个异类,它有细线画的翅膀,蓝色的矢量矩形,以及古英语字体(这里没有包括在内,但与家族中其他使用现代无衬线的字体相比,它是一个例外)。 + +### 确立新的设计标准 + +考虑到调色板、排版和图像,我们产生了一个一致的构图,以 Ansibull 代表所有核心的 Ansible 产品,以及大胆的线条和充满活力的颜色。 + +![Ansible design system][4] + +新的 Ansible 社区徽标设计风格指南详细说明了 Ansible 产品徽标的调色、排版、尺寸、间距和徽标变化。 + +新的风格指南展示了一种全新的、现代的定制字体,该字体基于瑞士独立字体厂商 [Grilli Type][5] 的 GT America 字体。我们为该字体创造了一个柔和的外观,通过圆润每个字母某些角落来配合图像的圆润度。 + +我们决定通过在光谱中加入更多的颜色并以原色为基础,设计一个更生动、更饱和、更普遍的调色板。新的调色板以浅蓝色、黄色和粉红色为主色调,每种颜色都有较浅的高光和较深的阴影。这种更广泛的颜色范围使系统内有更多的灵活性,并引入了 3D 的外观和感觉。 + +![New Ansible logos][6] + +我们还引入了新的图像,如 Receptor 和 AWX 徽标中的六边形,以保持视觉上的连续性。最后,我们确保每个徽标在浅色和深色背景上都能使用,以获得最大的灵活性。 + +### 拓展设计组合 + +一旦我们建立了核心徽标系列,我们就开始为 Ansible 服务创建徽章,如 Ansible Demo 和 Ansible Workshop。为了将服务与产品区分开来,我们决定将服务图形包围在一个圆圈中,圆圈中包含了相同的定制排版的服务名称。新的服务徽章显示了幼儿版的 Ansibull(来自 Ansible Builder 的徽标)正在完成与每个服务相关的任务,例如 Ansible Demo 指向白板,Ansible Workshop 则使用构建工具。 + +![New Ansible services logos][7] + +### 利用开放源码进行设计决策 + +最初的 AWX 徽标受到了摇滚乐图像的影响,如翅膀和重金属字体(此处省略)。 + +![Original AWX logo][8] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +Ansible 社区的一些成员,包括红帽多样性和包容性小组,提请我们注意,这些元素类似于仇恨团体使用的图像。 + +考虑到原徽标的社会影响,我们必须迅速与 Ansible 社区合作,设计一个替代徽标。我们没有像最初的徽标那样闭门造车,而是扩大了项目的范围,仔细考虑了更多的相关人员,包括 Ansible 社区、红帽多样性和包容性小组,以及红帽法律团队。 + +我们开始了头脑风暴,向 Ansible 开源社区征求意见。Ansible 的一位工程师 Rebeccah Hunter 在草图绘制阶段做出了贡献,后来成为我们设计团队中的一员。让一大群相关人员参与进来的挑战之一是,我们对新的徽标概念有了各种各样的想法,比如一条辅助电缆、一碗拉面等等。 + +我们勾画了五个社区贡献的徽标创意,每个徽标都有不同的品牌视觉:一个芽、一个火箭、一个显示器、一碗拉面和一个辅助电缆。 + +![AWX logo concepts][9] + +在完成这些初步的概念草图后,我们建立了一个虚拟的投票机制,并在整个迭代过程中使用。这个投票系统使我们能够利用社区的反馈,从五个初始概念缩小到三个:火箭、一碗拉面和显示器。我们在这三个方向上进一步迭代,并通过专门的 Slack 频道进行反馈,直到我们找到一个符合社区愿景的方向,即 AWX 显示器。 + +![New AWX logo][10] + +以社区的意见为指导,我们围绕显示器为 AWX 打造了徽标概念。我们保留了原徽标中的显示器元素,同时使其外观和感觉现代化,以配合我们更新的设计系统。我们使用了更鲜艳的色调,更简洁的无衬线字体,以及来自 Project Receptor 徽标的元素,包括六角形图案。 + +通过从一开始就与我们的社区接触,我们能够在公开场合进行设计和迭代,所有相关人员都有一种包容感。最后,我们认为这是取代一个有争议的徽标的最好方法。最终的版本被移交给了红帽法律团队,在获得批准后,我们用这个新的徽标替换了所有的现有资产。 + +### 主要收获 + +为设计系统创建一套规则和资源,使你的数字产品全面保持一致,消除品牌混乱,并实现可扩展性。 + +当你探索在自己的社区建立一个设计系统时,你可能会从我们在这条路上学到的这些关键经验中受益: + + * 用设计系统来扩展新的徽标,比没有设计系统要容易得多。 + * 当你使用投票系统来验证结果时,杂乱无章的设计方案就会变得不那么令人生畏。 + * 将大量受众的注意力引向三套方案,可以消除决策疲劳,集中社区反馈。 + +我们希望这篇文章能够提供用于开源社区的设计系统的启示,并帮助你认识到在早期开发一个系统的好处。如果你正在创建一个新的设计系统,你有什么问题?如果你已经创建了一个,你学到了什么教训?请在评论中分享你的想法。 + +*(图像来自:Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])* + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/ansible-community-logos + +作者:[Fiona Lin][a] +选题:[lujun9972][b] +译者:[MareDevi](https://github.com/MareDEvi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/fionalin +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ux-design-mac-laptop.jpg?itok=9-HKgXa9 (UX design Mac computer with mobile and laptop) +[2]: https://opensource.com/sites/default/files/pictures/original_logos.png (Original Ansible logos) +[3]: https://creativecommons.org/licenses/by-sa/4.0/ +[4]: https://opensource.com/sites/default/files/pictures/design_system.png (Ansible design system) +[5]: https://www.grillitype.com/ +[6]: https://opensource.com/sites/default/files/pictures/new_logos.png (New Ansible logos) +[7]: https://opensource.com/sites/default/files/pictures/new_service_badges.png (New Ansible services logos) +[8]: https://opensource.com/sites/default/files/uploads/awx_original.png (Original AWX logo) +[9]: https://opensource.com/sites/default/files/uploads/awx_concepts.png (AWX logo concepts) +[10]: https://opensource.com/sites/default/files/uploads/awx.png (New AWX logo) diff --git a/translated/tech/20210426 How we built an open source design system to create new community logos.md b/translated/tech/20210426 How we built an open source design system to create new community logos.md deleted file mode 100644 index ed562d462c..0000000000 --- a/translated/tech/20210426 How we built an open source design system to create new community logos.md +++ /dev/null @@ -1,133 +0,0 @@ -[#]: subject: (How we built an open source design system to create new community logos) -[#]: via: (https://opensource.com/article/21/4/ansible-community-logos) -[#]: author: (Fiona Lin https://opensource.com/users/fionalin) -[#]: collector: (lujun9972) -[#]: translator: (MareDevi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -我们如何建立一个开源的设计系统来创造新的社区Logo -====== -了解Ansible的新logo是如何根据股东的意见开发以确保整个项目的品牌一致性。(确保整个项目有一个统一的品牌) -![UX design Mac computer with mobile and laptop][1] - -作为红帽的用户体验(UX)设计和Ansible产品团队的交互设计师,我们花了大约6个月的时间为Ansible社区建立了一系列logo。 这段旅程开始得很早,当时一位项目经理要求我们为一个幻灯片提供一个 "快速而简单 "的标志。在收集了一些需求后,我们在几天内就向股东展示了一个标志,而且不需要太多迭代。几个月后,另一个股东决定他们也将从材料的图像中受益,所以我们重复了这个过程。 - -在这一点上,我们注意到一个模式:像这样的logo资源不再代表个人的要求,而是整个Ansible项目的共同需要。在完成了几个logo要求后,我们设计了一个临时的系列,但在没有意识到品牌和设计惯例的情况下,造成了整个Ansible品牌的视觉不一致的可能性。随着logo系列的增加,我们认识到了这个迫在眉睫的问题,并需要解决它。 - -我们的解决方案是创建一个Ansible设计系统,这是一个针对品牌的资源,可以指导未来一致的标志设计。 - -### 什么是设计系统? - -设计系统是一个可重复使用的资源和指导方法的集合,有助于告知任何数字产品套件的视觉语言。设计系统创造了一些模式,将独立的产品整合在一起,并通过可扩展性和一致性提升品牌。 - -特别是在一个有多种产品的大公司里,如果没有标准化,扩展起来就不容易,因为不同的团队对每个产品都有贡献。设计系统可以作为每个团队建立新资产的基线。有了标准化的外观和感觉,产品在整个组合中被统一为一个家族。 - -### 开始构建一个设计系统 - -在收到股东提出的为开源Ansible社区(如Ansible Builder、Ansible Runner和Project Receptor)创建logo的一系列要求后,我们决定为我们的工作流程设计一个结构,并创建一个单一的事实来源,为之努力。 - -首先,我们对现有的logo进行了视觉审计,以确定我们要做的是什么。 Ansible的原始logo系列由四个主要图像组成:代表AWX的Angry Spud,代表Ansible Core/Engine的Ansibull,以及代表AWX的带翅膀的显示器。 大部分的标志都是用一致的红色阴影和公牛的形象联系在一起的,但是笔画的宽度、笔画的颜色、线条的质量和排版都是庞大而多样的。 - -![Original Ansible logos][2] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -愤怒的飞毛腿使用棕褐色的轮廓和手绘风格,而公牛则是一个对称的几何矢量。AWX显示器是一个异类,它有细线画的翅膀,蓝色的矢量矩形,以及古英语字体(这里没有包括在内,但与家族中其他使用现代无衬线的字体相比,它是一个例外)。 - -### 确立新的设计标准 - -考虑到调色板、排版和图像,我们产生了一个一致的构图,以Ansibull为特色的所有核心Ansible产品,以及大胆的线条和充满活力的颜色。 - -![Ansible design system][4] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -新的Ansible社区logo设计风格指南详细说明了Ansible产品logo的调色、排版、尺寸、间距和logo变化。 - -新的风格指南展示了一种全新的、现代的定制字体,该字体基于瑞士独立字体铸造厂[Grilli Type][5]的GT America。我们为该字体创造了一个柔和的外观,通过使每个字母的圆角来配合图像的圆润度。 - -我们决定通过在光谱中加入更多的颜色并以原色为基础,设计一个更生动、更饱和、更普遍的调色板。新的调色板具有浅蓝色、黄色和粉红色,每种颜色都有较浅的高光和较深的阴影。这种更广泛的颜色范围使系统内有更多的灵活性,并引入了3D的外观和感觉。 - -![New Ansible logos][6] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -我们还引入了新的图像,如Receptor和AWXlogo中的六边形,以保持视觉上的连续性。最后,我们确保每个logo在浅色和深色背景上都能使用,以获得最大的灵活性。 - -### 拓展设计组合 - -一旦我们建立了核心logo系列,我们就开始为Ansible服务创建徽章,如Ansible Demo和Ansible Workshop。为了将服务与产品区分开来,我们决定将服务图形包围在一个圆圈中,圆圈中包含了相同的定制排版的服务名称。新的服务徽章显示了幼儿Ansibull(来自Ansible Builder的标志)正在完成与每个服务相关的任务,例如Ansible Demo指向白板,Ansible Workshop则使用构建工具。 - -![New Ansible services logos][7] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -### 利用开放源码进行设计决策 - -最初的AWX标志受到了摇滚乐图像的影响,如翅膀和重金属字体(此处省略)。 - -![Original AWX logo][8] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -Ansible社区的一些成员,包括红帽多样性和包容性小组,提请我们注意,这些元素类似于仇恨组织使用的图像。 - -考虑到原logo的社会影响,我们必须迅速与Ansible社区合作,设计一个替代logo。我们没有像最初的logo那样在一个孤岛上工作,而是扩大了项目的范围,仔细考虑了更多的利益相关者,包括Ansible社区、红帽多样性和包容性小组,以及红帽法律团队。 - -我们开始了头脑风暴,向Ansible开源社区征求意见。Ansible的一位工程师Rebeccah Hunter在草图绘制阶段做出了贡献,后来成为我们设计团队中的一员。让一大群股东参与进来的挑战之一是,我们对新的标志概念有各种各样的想法,从一条辅助电缆到一碗拉面。 - -我们勾画了五个社区外部的logo,每个标识都有不同的品牌视觉:一个豆芽、一个火箭、一个显示器、一碗拉面和一个辅助电缆。 - -![AWX logo concepts][9] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -在完成这些初步的概念草图后,我们建立了一个虚拟的投票机制,并在整个迭代过程中使用。这个投票系统使我们能够利用社区的反馈,从五个初始概念缩小到三个:火箭、一碗拉面和显示器。我们在这三个方向上进一步迭代,并通过专门的Slack频道进行反馈,直到我们找到一个符合社区愿景的方向,即AWX显示器。 - -![New AWX logo][10] - -(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) - -以社区的意见为指导,我们为AWX追求显示器的logo概念。我们保留了原logo中的显示器元素,同时使其外观和感觉现代化,以配合我们更新的设计系统。我们使用了更鲜艳的色调,更简洁的无衬线字体,以及来自Project Receptor logo的元素,包括六角形图案。 - -通过从一开始就与我们的社区接触,我们能够在公开场合进行设计和迭代,所有股东都有一种包容感。最后,我们认为这是取代一个有争议的logo的最好方法。最终的版本被移交给了红帽法律团队,在获得批准后,我们用这个新的logo替换了所有的现有资产。 - -### 主要收获 - -为设计系统创建一套规则和资源,使你的数字产品全面保持一致,消除品牌混乱,并实现可扩展性。 - -在你探索与你自己的社区建立一个设计系统时,你可能会从我们在这条路上学到的这些关键经验中受益: - - * 用设计系统来扩展新的标识,比没有设计系统要容易得多。 - * 当你使用投票系统来验证结果时,杂乱无章的设计方案就会变得不那么令人生畏。 - * 将大量群众的注意力引向多组,消除决策疲劳,集中社区反馈。 - - - -我们希望这篇文章能够为设计一个具有开放源码社区的系统提供启示,并帮助你认识到在早期开发系统的好处。如果你正在创建一个新的设计系统,你有什么问题?如果你已经创建了一个,你学到了什么教训?请在评论中分享你的想法。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/4/ansible-community-logos - -作者:[Fiona Lin][a] -选题:[lujun9972][b] -译者:[MareDevi](https://github.com/MareDEvi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/fionalin -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ux-design-mac-laptop.jpg?itok=9-HKgXa9 (UX design Mac computer with mobile and laptop) -[2]: https://opensource.com/sites/default/files/pictures/original_logos.png (Original Ansible logos) -[3]: https://creativecommons.org/licenses/by-sa/4.0/ -[4]: https://opensource.com/sites/default/files/pictures/design_system.png (Ansible design system) -[5]: https://www.grillitype.com/ -[6]: https://opensource.com/sites/default/files/pictures/new_logos.png (New Ansible logos) -[7]: https://opensource.com/sites/default/files/pictures/new_service_badges.png (New Ansible services logos) -[8]: https://opensource.com/sites/default/files/uploads/awx_original.png (Original AWX logo) -[9]: https://opensource.com/sites/default/files/uploads/awx_concepts.png (AWX logo concepts) -[10]: https://opensource.com/sites/default/files/uploads/awx.png (New AWX logo) From 92d891f1f8570ab1f01d8c759f48f85d3128b1fb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 8 Nov 2022 15:36:42 +0800 Subject: [PATCH 1924/3123] ALL @wxy https://linux.cn/article-15228-1.html --- ...️ Xfce 4.18 Top New Features & Release Guide.md | 163 ++++++++++++++++++ ...️ Xfce 4.18 Top New Features & Release Guide.md | 163 ------------------ 2 files changed, 163 insertions(+), 163 deletions(-) create mode 100644 published/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md delete mode 100644 sources/news/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md diff --git a/published/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md b/published/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md new file mode 100644 index 0000000000..a83182981f --- /dev/null +++ b/published/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md @@ -0,0 +1,163 @@ +[#]: subject: "Xfce 4.18: Top New Features & Release Guide" +[#]: via: "https://www.debugpoint.com/xfce-4-18-features/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15228-1.html" + +前瞻:Xfce 4.18 主要新功能 +====== + +> 有关 Xfce 4.18 的核心和原生应用程序的功能的全面介绍。 + +经过近两年的开发,Xfce 4.18 将在 2022 年圣诞节期间发布。作为 [Xfce 4.16][1] 以来的重要的版本,其一直在开发标签 4.17 下进行开发,以增强这个轻量级桌面。 + +考虑到 GTK4 的更新、初步的 Wayland 支持,以及核心和本地应用程序的改进,Xfce 4.18 是一个重要的里程碑版本,其带来了大量更新。 + +从发布时间来看,第一个 Xfce 4.18 预发布版(pre1)已经发布。2022 年 12 月的第一周会有另一个预发布版。而 Xfce 4.18 的最终版本预计将在 2022 年 12 月 15 日至 12 月 29 日之间发布。 + +由于目前还没有官方的详细介绍,我在这篇文章中总结了 Xfce 4.18 的基本和主要功能。 + +请继续阅读。 + +![Xfce 4.18 pre1 (compiled in Arch)][2] + +### Xfce 4.18 的新功能 + +#### 1、核心库更新 + +Xfce 4.18 的依赖关系有所改变,并使用以下版本进行编译: + +- glib-2.0 >= 2.66 +- gtk >= 3.24 +- libcairo >= 1.16 +- gdk-pixbuf-2.0 >= 2.40 +- gobject-introspection >= 1.66 + +#### 2、桌面和面板 + +顶部的主面板带来了新的设置和调整。但整体外观仍与以前的 4.16 版本中的一样。一些默认的面板小程序在这个版本中也有变化。桌面图标、右键上下文菜单和项目保持不变。 + +面板的首选项设置有两个新的选项。首先,面板的长度现在以**像素**设置,而不是百分比。其次,一个新的选项,“保持面板在窗口上方Keep panel above windows” ,可以让你将窗口对话放到面板后面。之前,应用程序的窗口只能达到面板的边缘。 + +![Xfce 4.18 中的面板首选项][3] + +彻底修改了时钟小程序的设置。是的,你终于可以改变 Xfce 时钟小程序的字体风格。与此同时,它提供了四种时钟布局: + +- 只有日期 +- 只有时间 +- 日期和时间 +- 时间和日期 + +此外,你还可以向日历中添加命令。 + +![终于你可以改变 Xfce 时钟小程序的字体了][4] + +#### 3、Thunar 文件管理器 + +也许这个版本中最令人兴奋的变化是 Thunar 文件管理器的功能。首先,一个新的“搜索”图标取代了工具栏上的“重新加载”按钮。当点击时,它会在地址栏上出现搜索,可以使用你的搜索关键词进行递归搜索。重新加载按钮被放到了 “查看View” 菜单中。 + +其次,在左边的导航栏上增加了一个的新项目,“最近Recent”。在底部,元数据更有条理(从逗号分隔改为竖线分隔),还有一个新的上下文菜单项可以选择你想要显示的元数据。 + +![Thunar 4.18 的视觉变化][5] + +Thunar 的主菜单有很多变化。下面列出了主要的变化。在下面的图片中还标注了自 4.16 以来的变化。 + +- 引入了一个**新的书签菜单**,可以将当前文件夹作为快捷方式添加到侧边栏。 +- “编辑Edit”菜单有了 “撤销undo” 和 “重做redo” 选项。 +- “前往Go” 菜单有了 “最近Recent” 和 “搜索Search” 的选项。 + +Thunar 首次通过 “视图View”菜单项有了“分割视图Split view”! 是的,你现在可以在视图面板中拖放项目。 + +前不久,我 [报道][6] 说图像预览即将在 Thunar 中出现。而它终于来了。作为谷歌代码之夏 2022 的部分开发成果,你现在可以嵌入在侧边栏中看到图片预览。或者在右边的一个独立的新面板上查看。它可以通过偏好设置来改变。 + +下面是它的外观。 + +![带有独立图像预览的 Thunar 分割视图][7] + +![嵌入图像预览的 Thunar 分割视图][8] + +#### 4、Thunar 的首选项 + +Thunar 设置中出现了大量调整。首先,一个新的选项卡可以为 Thunar 定制你的键盘快捷键。你可以直接指定新的快捷键组合,并从这个选项卡中改变现有的快捷键组合。 + +![Thunar 的新快捷键标签][9] + +“显示Display” 设置中新增了一个缩略图部分,你现在可以指定缩略图的文件大小。缩略图的具体设置也被归为一组。 + +![4.18 版的 Thunar 显示设置][10] + +“侧面板Side Pane” 选项卡有了一个新的图像预览选项,你在上面看到过。你可以设置为嵌入式或独立式预览。此外,“行为 Behaviour” 选项卡增加了 “启动时恢复选项卡restore tabs on startup” 和在选项卡标题中显示 “完整的目录路径full directory path” 的选项,这将有很大帮助。 + +“高级Advanced” 选项卡为 “文件传输File Transfer” 提供了一个新的设置部分,有两个新的选项:“中间文件复制Intermediate file copy”和“验证校验和Verify checksum”。此外,在这个选项卡中还增加了一个新的递归搜索的选项。你还可以通过以下选项将 Thunar 设置为直接 “执行 Shell 脚本Execute Shell script”。 + +![Thunar 4.18 的高级选项][11] + +除了上述变化外,文件夹属性对话框现在可以显示文件和文件夹的数量。另外,一个新的高亮选项使你能够为你的文件夹图标背景和前景选择任何自定义颜色。如果你有一个复杂的文件夹结构,这将使你能够快速导航。 + +下面是它的外观。 + +![文件夹高亮演示][12] + +#### 设置 + +“外观Appearances” 设置现在允许你打开和关闭对话框的标题栏。 + +“桌面Desktop” 设置允许文件上下文菜单中的删除选项(打开或关闭)。 + +“显示Display” 设置现在允许你为多种显示情况设置默认值:镜像、扩展显示还是什么都不做。早些时候,这些选项在显示器被连接时才可用。 + +#### Wayland 和其他更新 + +除了上述 Xfce 4.18 的功能外,窗口管理器和桌面还有许多额外的错误修复和性能改进。这些都是在底层的,你应该能感受到一个更精良的 Xfce 桌面体验。 + +Xfce 桌面核心和原生应用程序的 Wayland 迁移工作开始了。离它完全准备好还有很长的路要走。在这个版本中,你可能不会看到很多 Wayland 的更新。然而,许多应用程序在 Wayland 下已经可以正常工作了。你可以在 [本页][13] 了解更多关于迁移状态的信息。 + +### 下载及什么时候出现在发行版 + +Xfce 4.18 应该会在 2023 年 4 月进入 Ubuntu 23.04 Lunar Lobster,并在 Fedora 38 中出现。基于滚动发布的发行版,如 Arch Linux、Manjaro 和 OpenSUSE Tumbleweed 应该会在 2022 年 12 月发布后的几天内得到它。轻量级的流行发行版 [MX Linux][14] 应该在 2023 年采用这个版本,这个时候也是 Debian Bookworm 更新的时候。 + +Xfce 4.18 的第一个预发布版本 [现已发布][15]。你可以从下面的页面下载源码压缩包,并编译它们。请参考官方的 [编译指南][16]。 + + > **[下载 Xfce 4.18 源代码(pre1)][17]** + +### 总结 + +总的来说,变化的数量巨大。许多核心变化和需要的变化都进入了这个版本。Thunar 文件管理器的更新是早该进行的,对于 Xfce 的爱好者来说应该是完美的。 + +随着 Wayland 的支持,未来的 Xfce 版本可能会带来一个可行的 Xfce 版本。Wayland 的支持仍在进行中,每个组件都有许多决定有待作出。许多发行版和关键部署仍然喜欢 Xfce 而不是 KDE Plasma 或 GNOME。考虑到这些用例和未来的路线图,Xfce 4.18 是下一个版本之前的一个重要的里程碑。 + +列表中你最喜欢的功能是什么?请在评论栏里告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/xfce-4-18-features/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/xfce-4-16-review/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/Xfce-4.18-pre1-compiled-in-Arch-1024x594.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/Panel-preferences-in-Xfce-4.18.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Finally-you-can-change-the-font-of-Xfce-Clock-applet.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-4.18-visual-changes.jpg +[6]: https://debugpointnews.com/thunar-image-preview/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-split-view-with-embedded-image-preview.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-split-view-with-sidebar-image-preview.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/11/New-shortcut-tab-in-Thunar.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-Display-Settings-in-4.18.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/11/Advanced-options-of-Thunar-4.18.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/11/Folder-highlight-demo.jpg +[13]: https://wiki.xfce.org/releng/wayland_roadmap +[14]: https://www.debugpoint.com/tag/mx-linux +[15]: https://www.reddit.com/r/xfce/comments/yjiwwv/announce_xfce_418pre1_released/ +[16]: https://docs.xfce.org/xfce/building +[17]: https://archive.xfce.org/xfce/4.18pre1/fat_tarballs diff --git a/sources/news/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md b/sources/news/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md deleted file mode 100644 index 1e16d2a91d..0000000000 --- a/sources/news/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md +++ /dev/null @@ -1,163 +0,0 @@ -[#]: subject: "Xfce 4.18: Top New Features & Release Guide" -[#]: via: "https://www.debugpoint.com/xfce-4-18-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Xfce 4.18: Top New Features & Release Guide -====== - -**A comprehensive guide of Xfce 4.18 features across core & native apps.** - -After almost two years of development, Xfce 4.18 will be released during Christmas 2022. Coming as a major release since [Xfce 4.16][1], the development was going on to enhance this lightweight desktop under the development tag 4.17. - -Xfce 4.18 is a significant milestone considering GTK4 updates, initial Wayland support and revamp of core native apps. The volume of updates is massive. - -Release-wise, the first Xfce 4.18 pre-release (pre1) is now out. There shall be another pre-release in the first week of December 2022. And the Xfce 4.18 final release is expected between December 15 and December 29, 2022. - -Since there is no official detailed write-up yet, I have summarised this article with essential and major Xfce 4.18 features. - -Read on. - -![Xfce 4.18 pre1 (compiled in Arch)][2] - -### Xfce 4.18: New Features - -#### 1. Core library updates - -The dependencies of Xfce 4.18 is changed and compiled using the following versions. - -- glib-2.0 >= 2.66 -- gtk >= 3.24 -- libcairo >= 1.16 -- gdk-pixbuf-2.0 >= 2.40 -- gobject-introspection >= 1.66 - -#### 2. Desktop and Panel - -The primary top panel brings new settings and tweaks. But the overall look remains the same as before in the 4.16 version. Some default Panel applets are also changing in this version. The desktop icons, right-click context menu, and items remain unchanged. - -Panel preference gets two new options. Firstly, the length of the Panel is **now in pixels** rather than in percentages. Secondly, a new option, **“Keep panel above windows”**, helps you to send back window dialogues behind the panel. Earlier the app windows could only reach up to the panel edge. - -![Panel preferences in Xfce 4.18][3] - -The clock applet settings are overhauled. Yes, finally, you can change the font style in the Xfce clock applet. Along with that, four clock layout arrives – - -- date only -- time only -- date and time -- time and date - -In addition, you can also add commands to Calendar. - -![Finally you can change the font of Xfce Clock applet][4] - -#### 3. Thunar File manager - -Perhaps, the most exciting change in this release is the features in the Thunar file manager. Firstly, a new **search icon replaces the reload button in the toolbar**. When clicked, it brings up the search at the address bar, it does a recursive search with your search keyword. The reload button goes to the View menu. - -Secondly, a **new item, “Recent”,** is added on the left navigation bar. At the bottom, the metadata is more organized (from comma separated to pipe separated), and a new context menu item to select your desired option. - -![Thunar 4.18 visual changes][5] - -The main menu of Thunar gets many changes. Here is a list of significant ones. Also marked in the following images is what has changed since 4.16. - -- A **new bookmark menu** is introduced, adding the current folder to the sidebar as a shortcut. -- The Edit menu gets **UNDO and REDO** options. -- Go menu gets Recent and search for the file option. - -Thunar gets the **Split view** via the View menu item for the first time! Yes, you can now drag & drop items in the view panels. - -A while back, I [reported][6] that the image preview was arriving in Thunar. And it’s finally here. Developed part of Google Summer of Code 2022, you can now see the image preview in the sidebar embedded. Or at a new panel at the right as a standalone mode. It can be changed via preferences. - -Here’s how it looks. - -![Thunar split view with standalone image preview][7] - -![Thunar split view with embedded image preview][8] - -#### 4. Thunar Preferences - -A significant number of tweaks arrive in Thunar settings. Firstly, a new tab with the option to customize your keyboard shortcuts for Thunar. You can directly assign new keyboard combinations and change the existing ones from this tab. - -![New shortcut tab in Thunar][9] - -The display settings get a new section for Thumbnails where you can now specify the file size for Thumbnails. And the Thumbnail specific settings are grouped together. - -![Thunar Display Settings in 4.18][10] - -The Side Pane tab gets a new option for image preview, which you saw above. You can change the settings to embedded or standalone preview. Furthermore, the Behaviour tab gets the option to **restore tabs on startup** and show the **full directory path** in tab titles, which will help insanely. - -The Advanced tab gets a new settings section for File transfer with two new options to **intermediate file copy & verify the**checksum. In addition, a new option for recursive search is also added in this tab. You can also set Thunar to **execute** the **Shell script directly** via the following option. - -![Advanced options of Thunar 4.18][11] - -In addition to the above changes, the folder properties dialogue now show you the **count of file and folders**. Also, a new highlight option enables you to choose any **custom colour** for your folder icon background and foreground. This will allow you to navigate if you have a complex folder structure quickly. - -Here’s how it looks. - -![Folder highlight demo][12] - -#### Settings - -- Appearances settings now allow you to turn on and off the header bar in dialogs. - -- Desktop settings allow the Delete option in the file context menu (on or off) - -- Display settings now allow you to set a default for multiple display situations – whether to mirror, extend the display or do nothing. Earlier, the options were available when displays were connected. - -#### Wayland and other updates - -In addition to the above Xfce 4.18 features, many additional bug fixes and performance improvements have arrived for the window manager and desktop. Those are all under the hood, and you should feel a more polished Xfce desktop experience. - -Wayland migration work for Xfce desktop core and native apps started. It’s a long way until it is fully ready. In this release, you may not get much of Wayland updates. However, many apps already work fine under Wayland. You can learn more about the migration status on [this page][13]. - -### Download & Distro Availability - -Xfce 4.18 should make it to Ubuntu 23.04 Lunar Lobster on April 2023 and in Fedora 38. Rolling release-based distros such as Arch Linux, Manjaro and OpenSUSE Tumbleweed should get it within a few days of its release on December 2022. Lightweight and popular distro [MX Linux][14] should feature this version in 2023 while refreshing itself for Debian Bookworm. - -The first pre-release of Xfce 4.18 is [now out][15]. You can download the source tar balls from the below page and compile them. Refer to the official [compilation guide][16]. - -[Download Xfce 4.18 source (pre1)][17] - -### Closing Notes - -Overall, the number of changes is massive. Many core changes and needed ones made it to this release. The Thunar file manager updates were long-due and should be perfect for Xfce lovers. - -With Wayland’s support, the future Xfce release might bring a workable version of Xfce. The Wayland support is still in progress, and many decisions are pending for each component. Many distributions and critical deployments still prefer Xfce over KDE Plasma or GNOME. Considering those use cases and future roadmap, Xfce 4.18 is a major stepping stone before the next release. - -What is your favourite feature in the list? Let me know in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/xfce-4-18-features/ - -作者:[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/xfce-4-16-review/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/Xfce-4.18-pre1-compiled-in-Arch-1024x594.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/Panel-preferences-in-Xfce-4.18.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Finally-you-can-change-the-font-of-Xfce-Clock-applet.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-4.18-visual-changes.jpg -[6]: https://debugpointnews.com/thunar-image-preview/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-split-view-with-embedded-image-preview.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-split-view-with-sidebar-image-preview.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/11/New-shortcut-tab-in-Thunar.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2022/11/Thunar-Display-Settings-in-4.18.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2022/11/Advanced-options-of-Thunar-4.18.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2022/11/Folder-highlight-demo.jpg -[13]: https://wiki.xfce.org/releng/wayland_roadmap -[14]: https://www.debugpoint.com/tag/mx-linux -[15]: https://www.reddit.com/r/xfce/comments/yjiwwv/announce_xfce_418pre1_released/ -[16]: https://docs.xfce.org/xfce/building -[17]: https://archive.xfce.org/xfce/4.18pre1/fat_tarballs From eb1546b2bd834adb40e3007c6dd9e9a473ee1f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 21:08:40 +0800 Subject: [PATCH 1925/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221108.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Apt++=20Nala=20is=20Like=20Apt=20in=20Ubuntu=20but=20Better.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Apt++ Nala is Like Apt in Ubuntu but Better.md | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md diff --git a/sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md b/sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md new file mode 100644 index 0000000000..2b0bbdd5c5 --- /dev/null +++ b/sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md @@ -0,0 +1,172 @@ +[#]: subject: "Apt++? Nala is Like Apt in Ubuntu but Better" +[#]: via: "https://itsfoss.com/nala/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Apt++? Nala is Like Apt in Ubuntu but Better +====== + +For decades Debian and Ubuntu users [used apt-get commands][1]. When its simpler form apt was released, people liked how it showed a progress bar while installing packages. + +Irrespective of the progress bar, the packages get installed the same with apt-get and apt commands. + +But the progress bar enhances the user experience (UX) and today if I don’t see the green progress bar at the bottom, I feel something is amiss. + +Why am I telling you all this? Because I got an [apt-get vs apt][2] feeling when I used [Nala][3], a Python-based front end for APT. + +Take a look at a screenshot of [apt package upgrade][4] in progress with nala. + +![installing packages using nala][5] + +Like apt enhanced the user experience from apt-get, nala takes it to the next level by making it more human-readable and presenting only the relevant info with beautiful colors. + +But Nala does a lot more than adding colors to the terminal. + +### Nala: An enhanced, user-friendly tool for managing apt packages + +![using nala to remove packages][6] + +As you can see, It brought the list of packages that will be affected by the command I executed. And it presented only relevant info with beautiful colors. + +This is only one of the core features of Nala. Here are others: + +- Parallel downloads. +- Checks for the fastest mirrors and uses the fastest 3 by default to speed up downloads. +- Each command you execute will be stored as Nala history with a unique ID. +- Compatible with Fish and Zsh. +- Makes Apt more human-readable than ever. + +Sounds interesting? Let’s see how you can install and use it. + +### Installing Nala in Ubuntu 22.04 and higher + +Starting with 22.04, Nala is present in the universe repository of Ubuntu. So, the installation process is going to be one command only: + +``` +sudo apt install nala +``` + +For older versions, refer to the [official wiki][7] for installation instructions. + +### Using Nala in Ubuntu + +Using Nala is fairly simple as it follows almost the same command structure as apt. This means that you just have to interchange apt with nala in every command. + +For example, you can update repositories with Nala using this command: + +``` +sudo nala update +``` + +![sudo nala update][8] + +Similarly, to install a package: + +``` +sudo nala install package_name +``` + +And the package can be removed using: + +``` +sudo nala remove package_name +``` + +That’s elementary. Let’s see about using other interesting features I mentioned earlier. + +#### Fetch the fastest mirrors in Nala + +To fetch the fastest mirrors, you’d need to utilize the `fetch` utility. First, it will determine whether you are using Debian or Ubuntu and then list the fastest mirrors: + +``` +sudo nala fetch +``` + +![sudo nala fetch][9] + +And as you can see, I kept the top 4 fastest mirrors by separating them with their index number. Once you select them and press enter, it will show the summary: + +![saving fastest mirrors for nala][10] + +Press `Y` and it will save changes. Now, update Nala to take effect: + +``` +sudo nala update +``` + +#### Use transactional history + +This is the interactive way you list and use the history command inspired by the DNF history utility. + +You have to pair `history` with the nala command, and it will bring previously executed commands with relevant info: + +``` +nala history +``` + +![nala history][11] + +You can use an ID with `nala history` and it will get you the details of the specific operation. For example, if I want to have details of what it did while installing curl, I’d have to use ID no 9: + +``` +nala history info 9 +``` + +![nala history info 9][12] + +But that’s not it. You can alter the effect of a command using history. For example, I installed curl, so I can alter the effect (will remove the software) using the given command: + +``` +sudo nala history undo 9 +``` + +![sudo nala history undo 9][13] + +And you can redo the command from history using its ID. For example, I installed curl (ID = 9) previously, and if I want to do the same again, I have to use `redo` : + +``` +sudo nala history redo 9 +``` + +![sudo nala history redo 9][14] + +### Wrapping Up + +I understand that the apt command works fine. And I am not suggesting that everyone should replace apt with nala. It’s just good to see projects like these to focus on user experience. + +They are clearly inspired by the DNF package manager of Fedora and that’s not a bad thing. The apt developers can also take some hints and add similar features in future. + +For now, please share in the comments whether you liked nala or not. And if you liked it, will you use it extensively in place of [apt commands][15]? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/nala/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/apt-get-linux-guide/ +[2]: https://itsfoss.com/apt-vs-apt-get-difference/ +[3]: https://gitlab.com/volian/nala +[4]: https://itsfoss.com/apt-update-vs-upgrade/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/installing-packages-using-nala-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/using-nala-to-remove-packages.png +[7]: https://gitlab.com/volian/nala/-/wikis/Installation +[8]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-update.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-fetch.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/saving-fastest-mirrors-for-nala.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/nala-history.png +[12]: https://itsfoss.com/wp-content/uploads/2022/11/nala-history-info-9.png +[13]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-history-undo-9.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-history-redo-9.png +[15]: https://itsfoss.com/apt-command-guide/ From 95bbf97cf17696ab9436dab0e8a5d92bc5dbf275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 21:09:34 +0800 Subject: [PATCH 1926/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221108.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?What=20stickers=20are=20on=20your=20laptop.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1 ⭐️⭐️ What stickers are on your laptop.md | 272 ++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md diff --git a/sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md b/sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md new file mode 100644 index 0000000000..757bb09bfc --- /dev/null +++ b/sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md @@ -0,0 +1,272 @@ +[#]: subject: "What stickers are on your laptop?" +[#]: via: "https://opensource.com/article/22/11/laptop-stickers" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What stickers are on your laptop? +====== + +Your laptop is a blank canvas ready to be decorated with self-expression. What are your favorite stickers? Take our poll and then read what other open source enthusiasts had to say. + +Having just switched work laptops last December, I realized how much I love applying stickers to my work machines. Sometimes the stickers are souvenirs from past events, others are from projects that I am passionate about, and some are just for fun! + +Curious to know what others had on their laptops, I asked! + +### Accessibility advocate + +![AMyJune's laptop with lots of Drupal stickers][1] + +Here is my work laptop (Can you tell my roots are in Drupal). My favorite decal is the Druplicon with the wheelchair... When [Drupal 8 came out, we took the logo][2] and blended it with the wheelchair because the agency I worked with focused on accessibility. + +—[AmyJune Hineline][3] + +### Fresh Java + +![Alan Formy-Duval's laptop with various linux decals][4] + +I have always had stickers on my computers and stuff since I was a kid. I think my favorite is either Tux or the Linux Inside. They are mostly field-relevant except for just a few.  In the bottom-right corner, I have Java running on Tomcat (haha) - an area I spent much of my career doing. + +—[Alan Formy-Duval][5] + +### Utilitarian purpose + +![Rikard Grossman-Nielsen's laptop with two velcro strips glued on][6] + +Well, I don't have any stickers. However, I've glued Velcro bands on my two laptops to secure my external hard drive for when I'm gaming on the bus. I have also glued a lock notch on. + +—[Rikard Grossman-Nielsen][7] + +### Maintain the look + +![John 'Warthog9' Hawley's laptop with a mix of decals][8] + +Not the most decorated laptop by far, but I like the collection (and you know, hard to get more without travel for a while!) + +My favorite is the "last one to commit is the maintainer". It's a snarky comment on the state of maintainership, as well as a promise that the code will live on as a result. + +Mostly it boils down to things I use or contribute to, think are meaningful, or just found the sticker awesome. + +—[John 'Warthog9' Hawley][9] + +### Window covering + +I never put stickers on my laptop because it seems to me the only really cool stickers are the ones I don't have (said the grumpy old man.) +But the old homebrew computer my kids used to use in high school, a 3GHz Core Duo with 8 GB of memory, has an Open Mainframe sticker on it that I grabbed at the Linux Foundation Open Source Summit here in Vancouver a few years ago. I quite like that one. +And because in my life, the **Control** key lives next to the **A**, not down on the bottom row, I have a few keyboards around with a **CTRL** sticker on the CapsLock key and a **CAPS** sticker on the **Control** key, which work together with the [swap Ctrl and CapsLock option in GNOME Tweak Tool][10]. +Finally, I used to peel off Windows stickers, back when my only option was buying computers and paying the Windows tax, and put Linux sticker over the gummy patch. Same with keyboards that had the Windows logo on the Super key. + +—[Chris Hermansen][11] + +### Mementos + +![StrangeMama's laptop with a Kanopi sticker and various other decals][12] + +The Kanopi sticker is by far my favorite sticker. Not only is it shiny and iridescent, but it's a constant reminder of how amazing this company is to work for. They seriously put their employees first, and they're super mindful in selecting client projects that align with Kanopi's overall company mission and vision. +The Curt V8 sticker is in remembrance of a dear friend. He loved Fords and my husband loves Chevys. The constant fun rivalry resulted in randomly placed Ford and Chevy objects snuck into garages depending on whose house we were at. I smile every time I see this Ford emulated sticker on my laptop, since I live in a Chevy family. +The variety of stickers represents the family adventures that we have been on throughout the years. Date nights, friends, family road trips, scary hiking adventures (Angels Landing), and my youngest's drive to get a police sticker from every city and state. + +—[Kristine Strange][13] + +### Conference swag + +![Cindy William's laptop with various decals including a Kanopi sticker and Glimore Girls decals][14] + +The dragon is [my college mascot][15]. I also have some Gilmore Girls and coffee stickers. + +Here’s a photo of my daughter’s door, filled with stickers I’ve brought back from conferences over the years. + +![Cindy William's daughter's door covering tale to stern with decals from various WordPress and Drupal Camps][16] + +—[Cindy Williams][17] + +### Sticking with chicken + +This is my not-work laptop. My work laptop is basically being covered in a honeycomb of hex-shaped stickers of our products, open source projects I use and support, and at least one Opensource.com hexagon. :) + +I can’t pick a favorite, since they are all favorites, or I wouldn’t have them on the laptop that goes with me everywhere. I am overly fond of the chickens, the Raven, and Sergi the Cat with his knives. + +![Kevin Sonney's laptop with various decals][18] + +![Kevin Sonney's laptop with various decals][19] + +—[Kevin Sonney][20] + +### Foodie fun + +I used to load up my laptops with stickers. The one I bought last year filled up fast: + +![DJ Billings' laptop with various decals including a muffin][21] + +My favorite is the cupcake & donut one because I illustrated it. +I just bought a [System76][22] Darter Pro laptop and I love it. I got a bunch of really cool stickers with it, but I've been hesitant to put them on the laptop. I don't know why. + +—[DJ Billings][23] + +### Keeping it clean + +![Don Watkins' laptop with opensource.com and Red Hat stickers][24] + +I don’t put a lot of stickers on my laptops but I’ve got my two favorites on my current laptop, which is System76 Darter Pro. + +—[Don Watkins][25] + +### Life's essentials + +![Katie Sanders' laptop and Yeto mug with decals][26] + +I included my water bottle, too. I think I like those stickers even more. +Beer, dogs, music, croissants. What else could I need in life? + +—[Katie Sanders][27] + +### My mantra + +![Faye Polson's laptop with "yeet or be yeeted" decal][28] + +My favorite sticker is **yeet or be yeeted**. + +—[Faye Polson][29] + +### Garlic + +![Tiffany Bridge's laptop with movie, WordPress, and garlic decals][30] + +Most of the stickers are professional, but the **Greetings from Hamunaptra, City of the Dead** sticker is a subtle reference to one of my favorite movies, **The Mummy** (1999) starring Brendan Fraser and Rachel Weisz. + +The flags and the **Blackbeard’s Bar & Grill** stickers are references to **Our Flag Means Death**, which I am completely obsessed with. +And the garlic is the Cosmic Garlic sticker of my friend's shop. Garlic is a folk remedy for all kinds of diseases, so it seemed like a good thing to put on a laptop during a pandemic. + +—[Tiffany Bridge][31] + +### Open source projects + +![Seth Kenlon's laptop with various linux and open source decals][32] + +I usually cover my laptop with projects I use, contribute to, or admire. Statistically, my laptop should be layered with a lot more stickers by now. I haven't been to a tech conference in three years, so the pace has been slower than usual. + +—[Seth Kenlon][33] + +### Decked out in Drupal + +![April's laptop features several Drupal stickers.][34] + +I add stickers that represent me in tech. So I include organizations I'm a part of, events I've attended, and projects I support. +It's always fun to see the Drupal bear on people’s laptops since I designed it. +Notice all of my stickers are on a laptop cover for preservability. + +—[April Sides][35] + +### Wild about WordPress + +![Michelle Frechette's laptop with misc WordPress and Wapuu decals][36] + +My favorite is hard to pick, but probably the **Michelle wapuu**! She’s so me! + +The stickers **I press all the words** and **WordPress is my super power** are from WordCamp Rochester, so those are near and dear to me. + +Basically, I’ll add a sticker if I have a history with it (I spoke at the camp, for example), or I just like it! + +—[Michelle Frechette][37] + +### An eye for art + +![Dagger McJagger's Laptop with misc Drupal and open source decals][38] + +I heavily lean towards art stickers. Seeing art on my computer reminds me of the people I know and experiences I’ve had while using this computer. + +My favorite is the sad-face Midsommar sticker that my partner gave me. After seeing the movie for the first time, we stood outside the theater discussing it for hours into the night. We still reference it to this day. + +—[Jonathan Daggerhart][39] + +### Custom skin + +![Sallie Goetsch's laptop with a custom goddess Ereshkigal skin][40] + +I got a new travel laptop in 2019, and it remains pristine because I have not been to any events since then. My work laptop has a custom skin of the goddess Ereshkigal, after whom I named the computer. + +—Sallie Goetsch + +### GNU Emacs + +![Sachin Patil's laptop with only one sticker][41] + +A GNU Emacs sticker. + +—[Sachin Patil][42] + +### Opensource.com + +After seeing everyone's responses, and maybe getting some cool stickers in the mail from a very brilliant community manager... + +OK, OK, I give! AmyJune, Don, and Sachin convinced me to put ONE sticker on my laptop. + +Here's a photo showing my laptop with its singular sticker: + +![Chris Hermansen's laptop with an opensource.com sticker on it][43] + +—Chris Hermansen + +### Stickers and open source + +You don't have to adorn your computer with stickers. It's not required, and it certainly doesn't mean you love open source more or less than anybody else. But if you love an open source project, there's a good chance that it's got a sticker you can use to decorate your computer (or your door, water bottle, or USB microphone). Rest assured that if you love open source and you love stickers, there's a strong intersection between the two! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/laptop-stickers + +作者:[AmyJune Hineline][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/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-11/amyjune-laptop.webp +[2]: https://www.drupal.org/files/cta/graphic/drupal%208%20logo%20isolated%20CMYK%2072_1.png +[3]: https://opensource.com/users/amyjune +[4]: https://opensource.com/sites/default/files/2022-10/Alan%20F..webp +[5]: https://opensource.com/users/alanfdoss +[6]: https://opensource.com/sites/default/files/2022-10/%20Rikard%20Grossman-Nielsen-1.webp +[7]: https://opensource.com/users/rikardgn +[8]: https://opensource.com/sites/default/files/2022-10/%20John%20%27Warthog9%27%20Hawley%20.webp +[9]: https://opensource.com/users/warthog9 +[10]: https://opensource.com/article/18/11/how-swap-ctrl-and-caps-lock-your-keyboard +[11]: https://opensource.com/users/clhermansen +[12]: https://opensource.com/sites/default/files/2022-10/kristine.webp +[13]: https://opensource.com/users/strangemama +[14]: https://opensource.com/sites/default/files/2022-10/cindy%20williams.webp +[15]: https://www.uab.edu +[16]: https://opensource.com/sites/default/files/2022-10/cindy%20duaghter%20door.webp +[17]: https://opensource.com/users/cindytwilliams +[18]: https://opensource.com/sites/default/files/2022-10/%20Kevin%20Sonney%20.webp +[19]: https://opensource.com/sites/default/files/2022-10/%20Kevin%20Sonney%202.webp +[20]: https://opensource.com/users/ksonney +[21]: https://opensource.com/sites/default/files/2022-10/DJ_laptop-stickers.webp +[22]: https://opensource.com/article/19/5/system76-secret-sauce +[23]: https://opensource.com/users/itsjustdj +[24]: https://opensource.com/sites/default/files/2022-10/don%20watkins.webp +[25]: https://opensource.com/users/don-watkins +[26]: https://opensource.com/sites/default/files/2022-10/Katie%20Sanders.webp +[27]: https://enterprisersproject.com/user/katie-sanders +[28]: https://opensource.com/sites/default/files/2022-10/faye3.webp +[29]: https://twitter.com/faye_polson +[30]: https://opensource.com/sites/default/files/2022-10/tiffany_0.webp +[31]: https://tiff.is/ +[32]: https://opensource.com/sites/default/files/2022-10/seth-laptop.webp +[33]: https://opensource.com/users/seth +[34]: https://opensource.com/sites/default/files/2022-11/april.webp +[35]: https://opensource.com/users/weekbeforenext +[36]: https://opensource.com/sites/default/files/2022-10/Michelle%20Fre.webp +[37]: https://meetmichelle.online +[38]: https://opensource.com/sites/default/files/2022-10/Dagger%20McJagger.webp +[39]: https://opensource.com/users/daggerhart +[40]: https://opensource.com/sites/default/files/2022-10/Ereshkigal%20laptop%20skin.webp +[41]: https://opensource.com/sites/default/files/2022-10/psachin.webp +[42]: https://opensource.com/users/psachin +[43]: https://opensource.com/sites/default/files/2022-10/%20chris%20hermansen%20.webp From 0c2c0e1cfa573161dbd0bab14e13fb52498b939d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 21:10:13 +0800 Subject: [PATCH 1927/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221108.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20LXQt=20Desktop=20in=20Arch=20Linux=20[Comp?= =?UTF-8?q?lete=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...all LXQt Desktop in Arch Linux [Complete Guide].md | 286 ++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..59a8f3ae2b --- /dev/null +++ b/sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,286 @@ +[#]: subject: "How to Install LXQt Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/lxqt-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install LXQt Desktop in Arch Linux [Complete Guide] +====== + +**This guide explains the steps you need to install LXQt Desktop in Arch Linux.** + +**This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete LXQt desktop environment on top of Arch Linux.** + +### What is the LXQt Desktop? + +LXQt is a lightweight Linux desktop environment based on Qt technology. It is known to be lighter than all traditional desktop environments available today. Arguably it is faster and consumes fewer resources than its equivalents, such as Xfce and Mate desktops. + +LXQt desktop is available in other Linux distributions as one of the offerings. Fedora and Ubuntu provide an LXQt flavour as well. However, you can also install it in Arch Linux to enjoy the latest LXQt tech as a rolling release. + +### Install LXQt Desktop in Arch Linux + +#### Part 1: Install Arch Linux + +If you already have Arch Linux installed, you can skip this step and directly go to the install LXQt Desktop section below. + +For a faster Arch Linux installation, refer to [this guide for installing Arch via automated script][1]. For the legacy way of installation method, refer to the below steps. + +##### Download Arch Linux + +Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive. + +[Download Arch Linux][2] + +If you plan to install it as a virtual machine image via GNOME Boxes, virt-manager, you do not need to write it to a USB drive. + +##### Boot and Configure Partitions + +After you boot from the Arch Linux iso, you must run a series of commands to install the base system. + +First, run the below command to find out the device identifier. + +``` +fdisk -l +``` + +![fdisk -l before][3] + +Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. + +``` +cfdisk /dev/sda +``` + +Select `label type = dos` in the next prompt. + +Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below. + +``` +/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap +``` + +![cfdisk][4] + +In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. + +Repeat the same step for the main root partition of size 5GB. + +![Swap partition type change][5] + +Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. + +![final partition list in cfdisk][6] + +Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system. + +Run the below command to check before you proceed. You can see in this example, three partitions are listed. + +``` +fdisk -l +``` + +![final partition list in fdisk][7] + +Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. + +``` +mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 +``` + +After completion, mount the system and create necessary directories. + +``` +mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot +``` + +Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. + +![prepare file system][8] + +##### Install the base system + +I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][9] to configure a wireless or wifi network using Arch Linux installer. + +Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. + +``` +pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +``` + +![Install base system][10] + +Once complete, generate file system table without which you can’t boot the system. + +``` +genfstab -U /mnt >> /mnt/etc/fstab +``` + +##### Configure the base system + +Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet. + +``` +arch-chroot /mntnano /etc/locale.gen +``` + +Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. + +![change locale][11] + +Generate the locale using: + +``` +locale-gen +``` + +Setup the language using the below command. + +``` +echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 +``` + +Setup the local time zone. + +``` +ln -s /usr/share/zoneinfo/America/New_York /etc/localtime +``` + +Again, you can choose them as per your need. You can list the local timezones via the below commands. + +``` +ls /usr/share/zoneinfo +ls /usr/share/zoneinfo/America +``` + +Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. + +``` +hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd +``` + +The next step is to set up the root user password, create an admin user, and add the user in the sudoers file. + +Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need. + +``` +passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint +``` + +![create user][12] + +Open the sudoers file and add the below lines. + +``` +nano /etc/sudoers +``` + +Add below lines. As you already created the root user, the entry should be there. + +``` +root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL +``` + +![update sudoers file][13] + +Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence. + +``` +grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit +``` + +![configure grub][14] + +Then reboot your system. + +``` +umount /mnt/bootumount /mntreboot +``` + +You have now successfully installed the Arch Linux base system. It’s time to install the complete LXQt desktop. + +![Arch is installed][15] + +#### Part 2: Install LXQt Desktop in Arch Linux + +After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install the Xorg server, display manager, LXQt desktop components, controller packages, and additional applications. + +For all the commands, use the default, i.e. press enter when asked. + +- **Install Xorg. Approx install size is 80 MB.** + +``` +sudo pacman -S --needed xorg +``` + +- **Install display manager, lxqt desktop. Approx install size is 100 MB.** + +``` +sudo pacman -S --needed lxqt xdg-utils ttf-freefont sddm +``` + +- **Install additional components (approx 80 MB)** + +``` +sudo pacman -S --needed libpulse libstatgrab libsysstat lm_sensors network-manager-applet oxygen-icons pavucontrol-qt +``` + +- **Install applications** + +This is just a reference. You can also install the ones you require. + +``` +sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper +``` + +Now it’s time to enable the display manager and network manager as a service. So that next time you log on, they can run automatically by systemd. + +``` +systemctl enable sddmsystemctl enable NetworkManager +``` + +Reboot the system using the reboot command. + +``` +reboot +``` + +You should see a nice login prompt on the LXQt desktop if all goes well. + +And you can now login using the user id and password which you just created. A Nice and superfast LXQt desktop would greet you after successful login. + +![LXQt Desktop in Arch Linux (version 1.2)][16] + +I hope this guide helps you create your own Arch Linux environment with a lightweight LXQt desktop from scratch. If you run into trouble, let me know using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/lxqt-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/archinstall-guide/ +[2]: https://www.archlinux.org/download/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg +[9]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ +[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/LXQt-Desktop-in-Arch-Linux-version-1.2-1024x639.jpg From cd0034ba0cb6cc26f97e45d27ce0599676c254e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 21:12:04 +0800 Subject: [PATCH 1928/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221108.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20Flatpak=20Apps=20in=20Ubuntu=20and=20Other?= =?UTF-8?q?=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Install Flatpak Apps in Ubuntu and Other Linux.md | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md diff --git a/sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md b/sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..6639886773 --- /dev/null +++ b/sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md @@ -0,0 +1,170 @@ +[#]: subject: "How to Install Flatpak Apps in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Flatpak Apps in Ubuntu and Other Linux +====== + +**A beginner’s guide on how to install Flatpak in Ubuntu and other Linux distributions.** + +### What is Flatpak? + +[Flatpak][1] is the new way of distributing apps across the Linux universe, irrespective of the distribution. This cross-distro application distribution and deployment framework enable developers to Flatpak setup for apps for all major distributions. + +The major hurdles in any Linux app distribution are dependencies, and Flatpak covers that. Flatpak builds bundles the dependencies for the respective apps, and end-users need not worry about it. + +With the growing trends, many app developers are now providing the Flatpak builds along with traditional packages, e.g. *.deb, etc. With a quick setup for your distributions, you can be ready to explore the world of Flatpak apps. All the major Flatpak apps are available on flathub.org. You can search and just click a button, you can install the Flatpak apps. Here’s how to set it up for Ubuntu and other Linux distributions. + +### How to setup Flatpak in Ubuntu + +- For Ubuntu 18.10 (Cosmic Cuttlefish), use the following command to install Flatpak (that includes Ubuntu 22.04 as well). + +``` +sudo apt install flatpak +``` + +If you are using an older version of Ubuntu, use the following repo. + +``` +sudo add-apt-repository ppa:alexlarsson/flatpak +sudo apt update +sudo apt install flatpak +``` + +- The second step is optional if you want to install Flatpak apps via the browser. Enable Ubuntu Software to recognize Flatpak apps and their installations. Run the below commands from the terminal and provide the password when prompted. + +``` +sudo apt install gnome-software-plugin-flatpak +``` + +- Add the Flathub repository where all the Flatpak apps reside. Run the below commands from the terminal. + +``` +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +- Reboot. + +### Install in Other Linux Distributions + +Flatpak is available to install almost all possible distributions. Here’s a quick list of commands you can run from the terminal in all the distros. + +| **Linux distro name** | **Instructions or commands to set up Flatpak** | +| :- | :- | +| AlmaLinux | Enabled by default. No action is required. | +| Alpine Linux | Run the following commands:`sudo apk add flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Arch Linux | Run the following commands:`sudo pacman -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| CentOS | Enabled by default. No action is required. | +| Clear Linux | Enabled by default. No action is required. | +| Debian | Run the following commands:`apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Deepin OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| elementary OS | Enabled by default. No action is required. | +| Endeavour OS | Enabled by default. No action is required. | +| Endless OS | Enabled by default. No action is required. | +| Fedora Linux | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak app. | +| Gentoo | Run the following commands:`echo -e 'sys-apps/flatpak ~amd64\nacct-user/flatpak ~amd64\nacct-group/flatpak ~amd64\ndev-util/ostree ~amd64' >> /etc/portage/package.accept_keywords/flatpakemerge sys-apps/flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| KDE Neon | Enabled by default. No action is required. | +| Kubuntu | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``sudo apt install plasma-discover-backend-flatpak``reboot` | +| Linux Mint | Enabled by default. No action is required. | +| Mageia | Run the following commands:`dnf install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Manjaro Linux (Arch-based) | Installed by default since Manjaro 20 and higher.Make sure it is enabled in the below navigation:**Software Manager > Preferences > Flatpak Tab > Enable Flatpak Support**Reboot your system | +| MX Linux | Enabled by default. No action is required. | +| Nix OS | Open `/etc/nixos/configuration.nix` and add the following:`Services.flatpak.enable = true;`And then run the followings:`sudo nixos-rebuild switch``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| openSUSE Leap and Tumbleweed | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak apps. | +| Pop OS | Enabled by default. No action is required. | +| Raspberry Pi OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Red Hat Enterprise Linux (RHEL) | `sudo yum install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Solus | Run the following commands:`sudo eopkg install flatpak xdg-desktop-portal-gtk``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Void Linux | Run the following commands:`sudo xbps-install -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | +| Zorin OS | Enabled by default. No action is required. | + +Once installation is completed, and reboot is done, you can proceed with installing some cool Flatpak apps via the below steps. + +### How to Install Flatpak Apps in Ubuntu and Other Linux + +There are two ways you can install Flatpak apps. Firstly via the command line, which I recommend. And second is the browser method. + +I recommend using the command line because it is faster and easier. + +#### Using the command line (recommended) + +The sample command to install any Flatpak app is available at the bottom section of the Flathub app page. A sample command is below: + +``` +flatpak install org.gimp.GIMP +``` + +Change the above “org.gimp.GIMP” for your application. Remember, this is case-sensitive. + +#### Using the graphical method via browser + +- Go to [Flathub][3]. +- Search for any apps you want to install. + +![][4] + +- Click install after selecting your desired app. + +![Install Flatpak][5] + +- Click Ok when it prompts you to start the installation via Software. + +![Open Flatpackref via Software][6] + +- The Software will open and wait till the installation finishes. + +### How to update Flatpak after you install them? + +Updating Flatpak is super easy via the terminal. For example, if you want to update the above GIMP package, you need to run the below command. + +``` +flatpak update org.gimp.GIMP +``` + +So, this will update a single package. Replace your package’s name (i.e. Application ID) for your use case. If you don’t know the Application ID, run the command `flatpak list` from the terminal, and you will find it. + +If you want to update ALL the Flatpak packages in your system, simply run the following: + +``` +flatpak update +``` + +### How to uninstall a Flatpak? + +You can uninstall a package using the following command. Make sure to change the Application ID for your use case. You can find out the Application ID from the command `flatpak list`. + +``` +flatpak remove org.gimp.GIMP +``` + +### Closing Notes + +In this tutorial, I have explained how you can easily set up Flatpak and install apps from Flathub. Moreover, Flatpak applications are a great way to install and manage them easily. In my opinion, Flatpak will eventually dominate Snap and AppImage in the future. + +You may want to check out our other articles about [Flatpak][7], which include how to manage permission, various Flatpak commands and more. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ + +作者:[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://flatpak.org/ +[2]: https://flathub.org/repo/flathub.flatpakrepo +[3]: https://flathub.org/apps +[4]: https://www.debugpoint.com/wp-content/uploads/2018/07/Search-in-Flathub.png +[5]: https://www.debugpoint.com/wp-content/uploads/2018/07/Install-Flatpak.png +[6]: https://www.debugpoint.com/wp-content/uploads/2018/07/Open-Flatpackref-via-Software.png +[7]: https://www.debugpoint.com/tag/flatpak From 589467481928deb69ee4967a1eb986f8bb1a551b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 21:34:17 +0800 Subject: [PATCH 1929/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221108.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Delete=20Background=20in=20Image=20Using=20GIMP.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to Delete Background in Image Using GIMP.md | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md diff --git a/sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md b/sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md new file mode 100644 index 0000000000..426507f61e --- /dev/null +++ b/sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md @@ -0,0 +1,143 @@ +[#]: subject: "How to Delete Background in Image Using GIMP" +[#]: via: "https://www.debugpoint.com/remove-image-background-gimp/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Delete Background in Image Using GIMP +====== + +**Removing the background of an image is super easy if you know how to do it. Here in this tutorial, we will explain five different ways you can use to remove background in Image Using GIMP.** + +![Remove Background Image in GIMP][1] + +There are many ways you can delete any part of an image. That can be the background of the main subject of your image or some sections of it. That includes making the image background transparent and associated steps.  + +[GIMP][2] is the free and open-source closest Photoshop Alternative application which is used by millions every day. And if you are a beginner in GIMP or learning image processing, then there is no harm in learning these steps to make any sections of a complex image transparent, including the background. + +The steps outlined here use basic tools similar to other photo editing software. Hence, what you’re learning in this tutorial can easily be applied to alternative software. + +### 5 Ways to Remove Background in Image Using GIMP + +#### Method 1 – Fuzzy Select  + +The Fuzzy Select tool allows you to select all pixels that are similar to a set of sample pixels within a local area of an image. This works for the images with a colour distinction between foreground and background image foreground.  + +So, if your image background and prominent subject/foreground are of identical colour (like this image below), then this method may not help. Try other methods explained below. But still, you can go ahead and try out all methods if you have spare time. + +- Open your image in GIMP.  +- Right-click on the layer and **add Alpha channel**. This ensures that you can easily delete your layer with transparency. You can verify whether the Alpha channel is already added to your image or not by right-clicking the layer and see if the add Alpha channel is greyed out.  +- Select the Fuzzy Select tool from the toolbox and make sure Anti Aliasing, Feather Edges and Draw Mask are checked. The Draw Mask option will help you visualise the background you want to delete. +- Now click on the section of the image of the background which you want to delete and hold down your click, then drag the mouse to your image to see a mask drawn on your image. +- The colour selection shows the selection that you are choosing. Dragging the mouse below will increase the threshold of your selection, and towards up, it will reduce the threshold of your selection.  +- Once you are satisfied with your selection, **release the mouse and press delete** from your keyboard to delete the selection. + +You can repeat this process as much as you want to eliminate the background of your image entirely. + +![Method 1 - Fuzzy Select][3] + +![After Method 1 is applied][4] + +#### Method 2 – Select by colour + +In the next method, we will use the select by colour tool, which selects the entire background having the same colour pixels. This method works better for vector images, which typically have uniform colour distribution. This method might not work well for real-world images with too many colour gradients or sharp edges. + +- Select the “**select by colour**” tool from the toolbox. Make sure Anti Aliasing and **Draw Mask**are enabled from the option. +- Ensure to enable the Feather Edges option if you are working with a complex vector image. +- Now, click on the background section of your image having the same colour and **drag the mouse down or up** to increase or decrease the threshold.  +- Once you are happy with the selection, **let go of the mouse hold**. Press **delete** from your keyboard.  + +Likewise, you can repeat the steps multiple times to eliminate the background entirely. + +![Method 2 - Select by Color][5] + +#### Method 3 – Paths + +Another way of removing the background of an image is using the **Paths** tool. This is more of a **manual** way of deleting the background of an image. + +This method gives you the **most accurate results** among all the methods described here. But it takes a bit of time and patience to do it.  + +- Select the **Path tool** from the toolbox.  +- Begin clicking around the image’s main subject to place individual points outlining the subject.  +- You can curve the line by dragging down the middle of the line and moving the left and right handle towards the centre of the line.  +- To continue drawing, make sure you click on the most recent point and continue.  +- Once done, you can **close the outline by holding CTRL and clicking on the first point** placed. +- Press **Enter** to create a selection using the outline. +- From the menu, Select **Invert.** This will select the background of the image. +- And press **delete** to delete the background.  + +![Method 3 Path Tool][6] + +#### Method 4 – Layer Mask + +A more **advanced** way to delete the background is to use a layer mask. This is useful for those photographs where you have fine details such as hairs, furs, grass etc. Those fine details are difficult to aele6 manually using the above methods.  + +But there is a catch. This method only works best where there is a high level of contrast of colour present between the main subject of the image and its background.  + +- Right-click on the layer and **create a duplicate layer**.  +- While the duplicate Layer is selected, Go to **Color > Saturation**. Change the scale to all the way to zero. Click ok. +- Go to Color > Curves and manually adjust the top and bottom nodes so that your main subject of the image fills with more black and the background is white.  +- From the menu, select **Colors > invert**. Then select**Edit > Copy Visible**. +- Hide the duplicate layer by clicking on the little eye icon on the right toolbox. +- Right-click on the original layer and click Add Layer Mask. Click Add. +- Paste the copied visible image using Edit > Paste. +- Click on green icon at the bottom of the layers window to merge the pasted layer to the layer mask.  +- At this stage, you should notice that the black area remains visible, and the white area is transparent.  + +To fine-tune the sections, you can use a white colour brush tool and fill those sections which are part of your main subject but become transparent in the process.  + +And there you have it. + +![Method 4 - Curves][7] + +![Method 4 - Layer Mask][8] + +#### Method 5 – Foreground Select + +The final method we are going to explain is the foreground select method. This method is also a good choice as well for complex images having hairs, grass etc. + +- To get started, select the **Foreground Select**tool from the toolbox and do a simple outline of the subject. It need not be perfect, like below. It’s more like an outline covering the entire subject.  +- Once you are done, join the select point to the first point and press enter to select the subject.  +- This will create a dark blue area over the background and a light blue area in the foreground.  +- Now select the white foreground colour and manually brush the subject without going too much towards the edges.  +- Once you are done, select the preview to see how it looks. Based on the colour profile of your image, this preview step might take a couple of seconds to process.  +- If you are happy with the preview, click select. And then press enter to make this a selection. +- Invert the selection using **Select > Invert**. +- Press delete from the keyboard.  +- And you have your image ready without the background portion. + +![Method 5 - Foreground select tool to delete background of image in GIMP][9] + +### Final Notes + +So, that’s about it with the five methods which we just explained to remove background from image(s) and photographs using the free and open-source tool GIMP. Let me know if this tutorial helped you understand the steps and get the desired result. + +Used Photo in this article is by [Maryia Plashchynskaya][10] from [Pexels][11] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/remove-image-background-gimp/ + +作者:[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/2021/11/Remove-Background-Image-in-GIMP.jpg +[2]: https://www.gimp.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-1-Fuzzy-Select.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/11/After-Method-1-is-applied.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-2-Select-by-Color.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-3-Path-Tool.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-4-Curves.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-4-Layer-Mask.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-5-Foreground-select-tool.jpg +[10]: https://www.pexels.com/@maryiaplashchynskaya?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels +[11]: https://www.pexels.com/photo/fashion-people-woman-wristwatch-8358677/?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels From 6d73b5733c8ad8e1370a33eb21f566f61a999292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 8 Nov 2022 21:37:12 +0800 Subject: [PATCH 1930/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221108.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Titan=20Linux=20A=20Blend=20of=20Debian=20Stable=20and=20KDE=20?= =?UTF-8?q?Plasma.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n Linux A Blend of Debian Stable and KDE Plasma.md | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md diff --git a/sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md b/sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md new file mode 100644 index 0000000000..cc7ca426c3 --- /dev/null +++ b/sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md @@ -0,0 +1,128 @@ +[#]: subject: "Titan Linux: A Blend of Debian Stable and KDE Plasma" +[#]: via: "https://www.debugpoint.com/titan-linux-review-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Titan Linux: A Blend of Debian Stable and KDE Plasma +====== + +**We review Titan Linux – a rising star in the Linux distro space and bring Debian stable with KDE Plasma flavour with its unique tools.** + +### Titan Linux – What does it offer? + +Titan Linux is a Debian-stable based Linux distribution which features the KDE Plasma desktop. It is a fairly new distribution that aspires to be user-friendly and minimal. Developed by a two-member team, Titan Linux brings a unique experience to Debian’s experience by eliminating several packages and giving out-of-the-box hardware support. + +Moreover, it uses a different installer than Debian uses and brings some nifty in-house utilities. + +![Titan Linux Desktop][1] + +### Titan Linux Review – 2022 + +#### Download and Installation + +This review is based on the latest stable release of Titan Linux 1.2.1, “Cronus” Stable, bases on [Debian 11 bullseye][2]. + +There are no problems while downloading this distro via its torrents. Many budding distros don’t do well while providing download options – such as no server bandwidth, no torrent etc. However, the torrent speed was good, and the ISO of 2.5GB took a reasonable time to download. + +Let’s talk about the installation. + +First, the LIVE desktop gives you a shortcut to kick off the installer. The installer that Titan Linux uses is Calamares. It is not [Debian’s own graphical installer][3]. This is one of the significant advantages of using the popular Calamares for Debian. The installer is configured in a simple manner and should not be a problem for new users or advanced users. + +Second, the Calamares installer took around 4 minutes to install on average in both physical and virtual systems. After the installation is complete, the Grub is well configured, and I can boot into the desktop. + +#### Look and Feel + +Firstly, the desktop gives you a slightly different feel from a KDE Plasma desktop because of the dark colour palette and a somewhat different application menu. In addition, the Dragon Icons and cursors go well with its “Titan” themed desktop look. + +Second, the application menu is the [legacy KDE Plasma kick off][4], which gives you easy access to the applications and system settings. + +In addition, System Settings uses an alternative view than the traditional Plasma system settings. If you are a long-term KDE Plasma user, you may feel slightly different with these two subtle changes in this desktop. + +Other than that, a nice set of wallpapers will help you further customize your desktop. And finally, the bottom main taskbar is almost the same as the standard Plasma desktop. + +![The KDE Plasma kick off menu shows a legacy view][5] + +![System Settings in Titan Linux][6] + +#### Applications + +Firstly, the application list is more customized than the KDE Plasma desktop apps. A set of different and lightweight applications that gives a lightweight feel. + +Secondly, it is wise for the developers of this distro not to use the KDE Applications but instead use some of the traditional lightweight replacements. + +For example, instead of the KWiter text editor, you get the Featherpad text editor. However, the file manager is Dolphin from KDE Applications. The Gwenview is replaced by the LXImage image viewer from the LXQt desktop. + +Moreover, an exciting addition is the Titan Toolbox. It’s a collection of utilities that is very handy for new and advanced users. The Toolbox contains utilities to tweak the desktop, change repo, APT tools, hardware configuration, etc. YOu can see a glimpse of it in the below image. + +![A side-by-side view of two different options of Titan Toolbox][7] + +For example, the Extra Software option from the Toolbox gives you the below graphical menu items to perform several tasks. It is one of the selling points of this distribution. + +![One of the Titan Toolbox option - Extra Software][8] + +Another item from the Toolbox is my favourite: the Advanced options to manage Kernel and Grub, as you can see below. I must say, this is handy for all users. + +![Advanced Tools][9] + +#### Performance + +The performance metric is exciting, considering it is a KDE Plasma desktop. In a fresh install and idle state, it only uses 620 MB of RAM! And the CPU is at around 1%. + +Next, when I pass it through a heavy workload with Firefox, Dolphin file manager, text editor, terminal, VLC media player, and system settings, it uses 1.3 GB of RAM, and the CPU is at 2% to 3% on average. + +Finally, when I close all the applications on a heavy workload, the RAM consumption goes back to 676MB of RAM, and the CPU is at a 1% level. + +I must say, it is well-optimized. And surprisingly, KWin is performing better with the Debian base than the Ubuntu or Fedora base. + +It uses 10GB of disk space for a default installation. + +![Titan Linux in Idle State][10] + +![Titan Linux Performance in Heavy Workload][11] + +#### Bugs + +There are no bugs I encountered while reviewing this distribution. It is simply stable well, believing it is a new distribution. + +However, I found one weird behaviour while changing resolution in a virtual machine (see below), which I think is a KWin bug and has nothing to do with Titan Linux. + +![][12] + +### Closing Notes + +Having reviewed a large set of distributions over the years, I must say that Titan Linux gives you a stock Debian stable experience with a well-optimized KDE Plasma desktop. On top of that, the Titan toolbox is also a handy addition to helping users. + +If you are looking for a Debian stable distribution with a KDE Plasma desktop experience, definitely go for it. Thanks to Debian, you can easily use this distro for your daily use and productive work. + +You can download Titan Linux from the [official website][13]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/titan-linux-review-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-Desktop.jpg +[2]: https://www.debugpoint.com/2021/05/debian-11-features/ +[3]: https://www.debugpoint.com/2021/01/install-debian-buster/ +[4]: https://www.debugpoint.com/2021/02/legacy-kickoff-kde-plasma-5-21/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/The-KDE-Plasma-kick-off-menu-shows-a-legacy-view.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/System-Settings-in-Titan-Linux.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/A-side-by-side-view-of-two-different-options-of-Titan-Toolbox.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/06/One-of-the-Titan-Toolbox-option-Extra-Software.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/06/Advanced-Tools.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-in-Idle-State.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-Performance-in-Heavy-Workload.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-Resolution-problem.mp4 +[13]: https://techcafe757.wixsite.com/titanlinux From f1fb5e53de344e0ac55970e9c8f523cf1fa4c7e4 Mon Sep 17 00:00:00 2001 From: Cubik Date: Tue, 8 Nov 2022 19:43:29 -0500 Subject: [PATCH 1931/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?]=20[news]=2020221101.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20Kate=20Editor=20is=20Getting=20Four=20New=20Awesome=20Featur?= =?UTF-8?q?es.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md b/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md index cc4268394e..cfb4af945c 100644 --- a/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md +++ b/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/kate-editor-22-12-features/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -95,7 +95,7 @@ via: https://news.itsfoss.com/kate-editor-22-12-features/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f682b7e071c10c0dd3faf021ee9030e7cb8d2b3f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 9 Nov 2022 08:47:35 +0800 Subject: [PATCH 1932/3123] RP @wxy https://linux.cn/article-15230-1.html --- ...thon 3.11 in Ubuntu and Other Related Linux.md | 142 ++++++++++++++ ...thon 3.11 in Ubuntu and Other Related Linux.md | 182 ------------------ 2 files changed, 142 insertions(+), 182 deletions(-) create mode 100644 published/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md delete mode 100644 sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md diff --git a/published/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md b/published/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md new file mode 100644 index 0000000000..737ddc6a0e --- /dev/null +++ b/published/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md @@ -0,0 +1,142 @@ +[#]: subject: "How to Install Python 3.11 in Ubuntu and Other Related Linux" +[#]: via: "https://www.debugpoint.com/install-python-3-11-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15230-1.html" + +如何在 Ubuntu 等 Linux 中安装 Python 3.11 +====== + +> 打算为你的项目开发工作安装 Python 3.11?下面是如何在 Ubuntu 等发行版中安装 Python 3.11 的方法。 + +![][1] + +Python 3.11 于 2022 年 10 月 25 日发布,并声称比之前的 [Python 3.10][2] 版本快 10% - 60%。 + +一如既往,3.11 中的功能和改进列表明显较多。下面是一个简介: + +- 错误回溯更明确,可以指出导致错误的确切语句。 +- 引入异常组和新的 except* 语法。 +- 你可以在基础表达式中添加自定义文本,以便在你的代码中更好地处理错误。 +- 引入 Variadic 泛型,允许在 Python 数值库(如 NumPy)中使用类似数组的结构。 +- 字典类型 TypedDict 得到了改进,现在你可以指定个别字典项目是必须的还是可选的。 +- 引入了 Self 注解,允许类返回它们自己的类型实例。 + +还有很多,你可以在官方的 [3.11 亮点页面][3] 上详细了解。 + +### Linux 发行版中的当前 Python 版本 + +[Ubuntu 22.04 LTS][4] 带有 Python 3.10,而最近发布的 [Ubuntu 22.10 Kinetic Kudu][5] 也是同样的版本。然而, Kinetick Kudu 可能会在几周内采用 3.11。 + +另外,[Fedora 37][6] 已经有了 Python 3.11 RC2,并将提供该版本。 + +所以,如果你正在运行 Ubuntu 22.04 LTS、[Linux Mint 21][7] 或任何基于 Ubuntu-LTS 的发行版,这里是你如何通过 PPA 安装 Python 3.11 的方法。 + +**注意**:谨慎地使用这个方法。确保你知道你在做什么,因为替换 Linux 发行版的基础 Python 版本可能会导致系统不稳定。许多默认的应用程序和软件包都依赖于 3.10 版本。 + +### 如何在 Ubuntu 和相关发行版中安装 Python 3.11 + +打开终端提示,添加以下 PPA: + +``` +sudo add-apt-repository ppa:deadsnakes/ppa +``` + +使用下面的命令刷新缓存: + +``` +sudo apt update  +``` + +并使用下面的命令安装 Python 3.11: + +``` +sudo apt install python3.11 +``` + +![在 Ubuntu 22.04 LTS 中安装 Python 3.11][8] + +### 设置默认的 Python 版本 + +理论上,你可以在 Linux 发行版中安装多个版本的 Python,但只能默认一个版本。将 Python 3.11 设置为默认版本需要一些额外的步骤。请跟我做。 + +然而,在这之前,请确保你知道哪些应用程序依赖于 Python 3.10。你可以使用 `apt-cache rdepends` 命令轻松地找到它,如下所示: + +``` +debugpoint@debugpoint-22-04:~$ apt-cache rdepends python3.10 +python3.10 +Reverse Depends: +python3.10-dbg +python3.10-venv +python3.10-full +libpython3.10-testsuite +idle-python3.10 +idle-python3.10 +python3.10-minimal +python3.10-doc +python3.10-dev +python3 +[截断] +python3 +python3-uno +python3-all +gedit +``` + +#### 使用 Python 3.11 作为默认的 Python3 + +首先,从终端使用以下命令检查当前的默认版本: + +``` +python3 --version +``` + +使用 `update-alternatives` 来创建 `python3` 的符号链接: + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 +``` + +``` +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 +``` + +并通过命令选择哪一个作为 Python3 使用: + +``` +sudo update-alternatives --config python3 +``` + +![设置默认的 Python 版本为 3.11][9] + +现在你可以开始在你当前的 Ubuntu 版本中使用最新的 Python 来进行工作/学习了。你可以使用上述命令切换到库存版本,并随时改变版本。 + +如果你使用上述安装方法切换到 3.11,那么请确保你检查所有必要的应用程序,看它们是否工作正常。 + +最后,如果你遇到问题,请在评论区告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-3-11-ubuntu/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/py3112204-1024x576.jpg +[2]: https://www.debugpoint.com/install-python-3-10-ubuntu/ +[3]: https://docs.python.org/3.11/whatsnew/3.11.html +[4]: https://www.debugpoint.com/ubuntu-22-04-review/ +[5]: https://www.debugpoint.com/ubuntu-22-10/ +[6]: https://www.debugpoint.com/fedora-37/ +[7]: https://www.debugpoint.com/linux-mint-21-review/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Install-Python-3.11-in-Ubuntu-22.04-LTS.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/10/Setting-up-default-python-version-to-3.11.jpg diff --git a/sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md b/sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md deleted file mode 100644 index 711b8e63e3..0000000000 --- a/sources/tech/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md +++ /dev/null @@ -1,182 +0,0 @@ -[#]: subject: "How to Install Python 3.11 in Ubuntu and Other Related Linux" -[#]: via: "https://www.debugpoint.com/install-python-3-11-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Python 3.11 in Ubuntu and Other Related Linux -====== - -**Planning to get Python 3.11 installed for your project work? Here’s how to install Python 3.11 in Ubuntu and related distros.** - -![][1] - -Python 3.11 was released on Oct 25, 2022, and claims to be 10-60% faster than the prior [Python 3.10][2] version. - -As always, the feature and improvement list are significantly high in 3.11. Here’s a brief. - -- Error tracebacks are not more definite, which gives you an exact statement that causes the error. -- Introduction of exception groups and new except* syntax -- You can add custom text in the base expression for better error handling in your code. -- Introduction of Variadic generic to allow array-like structure in numerical Python libraries )such as NumPy) -- Dictionary type TypedDict gets improvement where you can now specify whether individual dictionary items are mandatory or optional. -- Introduction of Self annotation, which allows classes to return their own type instance. - -And many more, which you can read in detail on the official [3.11 highlights page][3]. - -### Current Python versions in Linux Distros - -[Ubuntu 22.04 LTS][4] have Python 3.10, whereas the recently released [Ubuntu 22.10 Kinetic Kudu][5] also have the same. However, Kinetick Kudu will probably feature 3.11 within a few weeks. - -Also, [Fedora 37][6] (planned for Nov 1) already has the Python 3.11 RC2 and will get the version. - -So, if you are running Ubuntu 22.04 LTS, [Linux Mint 21][7] or any Ubuntu-LTS-based distros, here’s how you can install Python 3.11 via a PPA. - -**Note**: Use this method with caution. Make sure you know what you are doing because replacing the base Python version of a Linux distribution may cause an unstable system. Many default applications and packages depend on the 3.10 version. - -### How to install Python 3.11 in Ubuntu and related distros - -- Open a terminal prompt and add the following PPA. - -``` -sudo add-apt-repository ppa:deadsnakes/ppa -``` - -- Refresh the cache using the below command. - -``` -sudo apt update  -``` - -- And install Python 3.11 using the below command. - -``` -sudo apt install python3.11 -``` - -![Install Python 3.11 in Ubuntu 22.04 LTS][8] - -Install Python 3.11 in Ubuntu 22.04 LTS - -### Set Default Python Versions - -In theory, you can install multiple versions of Python in Linux distros, but the default can only be one version. Setting up Python 3.11 as default requires some additional steps. Follow along. - -However, before you do that, make sure you know which applications depend on Python 3.10. You can easily find it out using `apt-cache rdepends` command as below. - -``` -debugpoint@debugpoint-22-04:~$ apt-cache rdepends python3.10 -python3.10 -Reverse Depends: -python3.10-dbg -python3.10-venv -python3.10-full -libpython3.10-testsuite -idle-python3.10 -idle-python3.10 -python3.10-minimal -python3.10-doc -python3.10-dev -python3 -virtualbox -python3.10-venv -python3.10-full -libpython3.10-testsuite -kitty -idle-python3.10 -idle-python3.10 -python3.10-minimal -python3.10-doc -python3.10-dev -python3.10-dbg -python3-uno -python3-all -python3.10-dbg -virtualbox -stimfit -python3.10-venv -python3.10-full -python3-stfio -python3-escript-mpi -python3-escript -python3-csound -plasma-firewall -pitivi -obs-studio -liferea -libpython3.10-testsuite -libglib2.0-tests -kitty -idle-python3.10 -idle-python3.10 -cluster-glue -atac -rhythmbox-plugins -python3.10-minimal -python3.10-doc -python3.10-dev -python3 -python3-uno -python3-all -gedit -``` - -#### Use Python 3.11 as the default Python3 - -- First, check the current default version using the below command from the terminal. - -``` -python3 --version -``` - -- Use `update-alternatives` to create symbolic links to `python3` - -``` -sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 -``` - -``` -sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 -``` - -- And choose which one to use as Python3 via the command: - -``` -sudo update-alternatives --config python3 -``` - -![Setting up default python version to 3.11][9] - -Setting up default python version to 3.11 - -Now you can start using the latest Python in your current Ubuntu version for your work/study. You switch to the stock version using the above commands and change the versions at any time. - -If you switch to 3.11 using the above install method, then make sure you check all the necessary apps to see whether they are working fine. - -Finally, do let me know in the comment box if you run into problems. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-python-3-11-ubuntu/ - -作者:[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/10/py3112204-1024x576.jpg -[2]: https://www.debugpoint.com/install-python-3-10-ubuntu/ -[3]: https://docs.python.org/3.11/whatsnew/3.11.html -[4]: https://www.debugpoint.com/ubuntu-22-04-review/ -[5]: https://www.debugpoint.com/ubuntu-22-10/ -[6]: https://www.debugpoint.com/fedora-37/ -[7]: https://www.debugpoint.com/linux-mint-21-review/ -[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Install-Python-3.11-in-Ubuntu-22.04-LTS.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/10/Setting-up-default-python-version-to-3.11.jpg From a8408ad70fe226aaaba5db0d8199da20e4971033 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 9 Nov 2022 08:57:33 +0800 Subject: [PATCH 1933/3123] translated --- ...o Remove Firefox Snap from Ubuntu (21.10 +).md | 131 ------------------ ...o Remove Firefox Snap from Ubuntu (21.10 +).md | 131 ++++++++++++++++++ 2 files changed, 131 insertions(+), 131 deletions(-) delete mode 100644 sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md create mode 100644 translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md diff --git a/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md deleted file mode 100644 index 1041f43db0..0000000000 --- a/sources/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md +++ /dev/null @@ -1,131 +0,0 @@ -[#]: subject: "How to Remove Firefox Snap from Ubuntu (21.10 +)" -[#]: via: "https://www.debugpoint.com/remove-firefox-snap-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Remove Firefox Snap from Ubuntu (21.10 +) -====== - -**Ubuntu 21.10 Impish Indri and the following versions make Firefox Snap a default browser. If you don’t like Snap, this is how you can remove it and use the stock version.** - -There is always a debate about whether Snap is a better alternative to apt. And many users prefer it for their system, and some hates snap to its core. Ubuntu and Canonical consider it as one of the best installation repositories and package management tools for Linux. The primary reason Snap is hated is its slow startup time. However, that argument is for another article. - -### Remove Firefox Snap version from Ubuntu - -So, if you haven’t [heard the story][1], Ubuntu 21.10 (and all subsequent versions) ships Firefox as a Snap package by default. So, when you install Ubuntu 21.10 onwards, the default left-dock shortcut is a snap version of Firefox. And you can verify it using the various methods below. - -![snap list - Firefox][2] - -![Firefox snap desktop shortcut][3] - -If you don’t like Snap due to its [performance, and][4]storage issues, you can remove it via the following commands. - -- Close all the Firefox instances if open. - -- Open a terminal. Then run the below command. - -``` -sudo snap remove firefox -``` - -- Wait for the command to complete. This will remove the snap executables from your system and disconnect Firefox from various system services. But the home snap directory will still be there. You can manually remove that using the below command. - -``` -cd ~/snaprm -r firefox -``` - -### Install Firefox Alternative Methods - -Now, as you removed Firefox, you have the following options to use this browser. - -#### Method 1 – Use PPA (Recommended) - -- Before using this method, make sure to remove the snap version of Firefox as mentioned above. -- There is an [official PPA for Firefox][5], maintained by its development team. You can add this PPA to your software sources and use it to install the latest Firefox. -- Make sure to create a file using a text editor to create a preference file to stop Ubuntu from pickup the snap version of Firefox while running the apt update command. - -``` -sudo gedit /etc/apt/preferences.d/firefox-no-snap -``` - -- Add the following lines to the above file and save it. - -``` -Package: firefox*Pin: release o=Ubuntu*Pin-Priority: -1 -``` - -- Use the following commands in sequence. The first command removes it from your system completely. - -``` -sudo apt purge firefox -sudo add-apt-repository ppa:mozillateam/firefox -sudo apt-get update -sudo apt install firefox -``` - -- After installation is finished, make sure to enable the auto-upgrade using the command below. - -``` -echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox -``` - -- Restart your system (optional) and enjoy the deb version of Firefox. - -#### Method 2 – Use the compressed executable of Firefox - -- You can download the compressed Firefox executable for Ubuntu and other Linux from the official website (link below). Then extract it and double-click to run the firefox executable. This is the safest approach. You can still get updates if you use this method. - -[Download Firefox][6] - -![Download Firefox and Extract][7] - -![And then run the executable][8] - -#### Method 3 – Use Flatpak for Firefox - -- You can also use the [Flatpak version of Firefox][9], which is available below after [setting up Ubuntu for Flatpak][10]. Then you can run the below command to install. - -``` -flatpak install flathub org.mozilla.firefox -``` - -#### Method 4 – Use Snap with less system coupling with Firefox - -- If you think you can still continue with the Snap version but want less sandboxing in your system, then you may want to reinstall Firefox using the below command with a [classic switch][11]. - -``` -sudo snap install firefox --classic -``` - -### Closing Notes - -So, this is the step to remove the firefox snap version from Ubuntu 21.10 onwards. And some alternatives. I am inquisitive to find out what step Linux Mint takes, as they don’t go well with Snap. Also, those distros depend on Ubuntu upstream repo for Firefox, It’s interesting to see what they will do. Debian maintains its own repo, but it’s mostly the ESR version. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ - -作者:[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://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1943840 -[2]: https://www.debugpoint.com/wp-content/uploads/2021/09/snap-list-Firefox.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Firefox-snap-desktop-shortcut-1024x490.jpg -[4]: https://www.debugpoint.com/2021/03/clean-up-snap/ -[5]: https://launchpad.net/~mozillateam/+archive/ubuntu/ppa -[6]: https://www.mozilla.org/en-US/firefox/new/ -[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Download-Firefox-and-Extract.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/09/And-then-run-the-executable.jpg -[9]: https://flathub.org/apps/details/org.mozilla.firefox -[10]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[11]: https://snapcraft.io/docs/snap-confinement diff --git a/translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md new file mode 100644 index 0000000000..9956e89083 --- /dev/null +++ b/translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md @@ -0,0 +1,131 @@ +[#]: subject: "How to Remove Firefox Snap from Ubuntu (21.10 +)" +[#]: via: "https://www.debugpoint.com/remove-firefox-snap-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何从 Ubuntu (21.10 +) 中删除 Firefox Snap +====== + +**Ubuntu 21.10 Impish Indri 及之后的版本将 Firefox Snap 设为默认浏览器。如果你不喜欢 Snap,可以通过以下方式将其删除并使用库存版本。** + +关于 Snap 是否是 apt 的更好替代品,一直存在争议。而许多用户更喜欢它的系统,也有一些人非常讨厌 snap。 Ubuntu 和 Canonical 认为它是 Linux 的最佳安装仓库和包管理工具之一。 Snap 被讨厌的主要原因是它的启动很慢。然而,这个论点是另一篇文章的内容。 + +### 从 Ubuntu 中删除 Firefox Snap 版本 + +所以,如果你还没有[听说过这个故事][1],Ubuntu 21.10(和所有后续版本)默认提供 Firefox Snap 包。因此,当你从 Ubuntu 21.10 开始安装时,默认的 left-dock 快捷方式是 Firefox 的 snap 版本。你可以使用以下各种方法对其进行验证。 + +![snap 列表 - Firefox][2] + +![Firefox snap 桌面快捷方式][3] + +如果你因为[性能][4]和存储问题而不喜欢 Snap,可以通过以下命令将其删除。 + +- 如果打开,那么关闭所有 Firefox 实例。 + +- 打开一个终端。然后运行以下命令。 + +``` +sudo snap remove firefox +``` + +- 等待命令完成。这将从你的系统中删除 snap 可执行文件,并断开 Firefox 与各种系统服务的连接。但是主 snap 目录仍然存在。你可以使用以下命令手动删除它。 + +``` +cd ~/snaprm -r firefox +``` + +### 安装 Firefox 替代方法 + +现在,当你删除 Firefox 时,你可以通过以下选项来使用此浏览器。 + +#### 方法 1 – 使用 PPA(推荐) + +- 在使用此方法之前,请确保如上删除了 Firefox 的 snap 版本。 +- 有一个[官方 Firefox PPA][5],由其开发团队维护。你可以将此 PPA 添加到你的软件源中,并使用它来安装最新的 Firefox。 +- 确保使用文本编辑器创建一个首选项文件,以阻止 Ubuntu 在运行 apt update 命令时获取 Firefox 的 snap 版本。 + +``` +sudo gedit /etc/apt/preferences.d/firefox-no-snap +``` + +- 将以下行添加到上面的文件并保存。 + +``` +Package: firefox*Pin: release o=Ubuntu*Pin-Priority: -1 +``` + +- 依次使用以下命令。第一个命令将其从你的系统中完全删除。 + +``` +sudo apt purge firefox +sudo add-apt-repository ppa:mozillateam/firefox +sudo apt-get update +sudo apt install firefox +``` + +- 安装完成后,请确保使用以下命令启用自动升级。 + +``` +echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox +``` + +- 重启系统(可选)并享受 deb 版本的 Firefox。 + +#### 方法 2 – 使用 Firefox 的压缩可执行文件 + +- 你可以从官方网站(下面的链接)下载适用于 Ubuntu 和其他 Linux 的压缩 Firefox 可执行文件。然后解压并双击运行 firefox 可执行文件。这是最安全的方法。如果你使用此方法,你仍然可以获得更新。 + +[下载 Firefox][6] + +![下载 Firefox 并解压][7] + +![然后运行可执行文件][8] + +#### 方法 3 – 使用 Flatpak 版本的 Firefox + +- 你也可以使用 [Flatpak 版本的 Firefox][9],这在 [Ubuntu 中设置 Flatpak][10] 后可用。然后你可以运行以下命令进行安装。 + +``` +flatpak install flathub org.mozilla.firefox +``` + +#### 方法 4 – 使用与系统耦合更少的 Snap 版本 Firefox + +- 如果你认为你仍然可以继续使用 Snap 版本但希望在系统中减少沙盒,那么你可能需要使用以下命令和 [classic 开关][11]重新安装 Firefox。 + +``` +sudo snap install firefox --classic +``` + +### 结束语 + +因此,这是从 Ubuntu 21.10 开始删除 firefox snap 版本的步骤。以及一些替代品。我很想知道 Linux Mint 采取了什么措施,因为他们与 Snap 不兼容。。此外,这些发行版依赖于 Firefox 的 Ubuntu 上游仓库,看看它们会做什么很有趣。 Debian 维护自己的仓库,但主要是 ESR 版本。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1943840 +[2]: https://www.debugpoint.com/wp-content/uploads/2021/09/snap-list-Firefox.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Firefox-snap-desktop-shortcut-1024x490.jpg +[4]: https://www.debugpoint.com/2021/03/clean-up-snap/ +[5]: https://launchpad.net/~mozillateam/+archive/ubuntu/ppa +[6]: https://www.mozilla.org/en-US/firefox/new/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Download-Firefox-and-Extract.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/09/And-then-run-the-executable.jpg +[9]: https://flathub.org/apps/details/org.mozilla.firefox +[10]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[11]: https://snapcraft.io/docs/snap-confinement From 55ba3c251aee21e1fc2c898a30442b8123409c35 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 9 Nov 2022 09:07:44 +0800 Subject: [PATCH 1934/3123] translating --- ... ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md b/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md index 702d9a7c96..447ea5c453 100644 --- a/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md +++ b/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/boost-speaker-volume-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 65480d9c34a0132f8d0e1c2708f22f7b095be436 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 9 Nov 2022 10:09:59 +0800 Subject: [PATCH 1935/3123] R @lxbwolf --- ...903 Infuse your awk scripts with Groovy.md | 263 +++++++++--------- 1 file changed, 129 insertions(+), 134 deletions(-) diff --git a/translated/tech/20220903 Infuse your awk scripts with Groovy.md b/translated/tech/20220903 Infuse your awk scripts with Groovy.md index c515288b3e..2cca81c39e 100644 --- a/translated/tech/20220903 Infuse your awk scripts with Groovy.md +++ b/translated/tech/20220903 Infuse your awk scripts with Groovy.md @@ -3,38 +3,43 @@ [#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" [#]: collector: "lkxed" [#]: translator: "lxbwolf" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 为你的 awk 脚本注入 Groovy ====== -Awk 和 Groovy 相辅相成,可以创建强大、有用的脚本。 -最近我写了一个关于使用 Groovy 脚本来清理我的音乐文件中的标签的系列。我开发了一个[框架][2],可以识别我的音乐目录的结构,并使用它来遍历内容文件。在该系列的最后一篇文章中,我从框架中分离出一个实用类,我的脚本可以用它来处理内容文件。 +![](https://img.linux.net.cn/data/attachment/album/202211/09/100129hp5bze5bbbbmddw6.jpg) -这个独立的框架让我想起了很多 awk 的工作方式。对于那些不熟悉 awk 的人来说,你学习下发表在 Opensource.com 的电子书 [awk 实用指南][3]。 +> awk 和 Groovy 相辅相成,可以创建强大、有用的脚本。 -我从 1984 年开始大量使用 awk,当时我们的小公司买了第一台”真正的“计算机,它运行的是 System V Unix。对我来说,awk 是非常完美的:它有关联内存——认为数组是由字符串而不是数字来索引的。它内置了正则表达式,尤其是在列处理中似乎专为处理数据而生,而且结构紧凑,易于学习。最后,它非常适合在 Unix 工作流使用,从标准输入或文件中读取数据并写入到输出,数据不需要经过其他的转换就出现在了输入流中。 +最近我写了一个使用 Groovy 脚本来清理我的音乐文件中的标签的系列。我开发了一个 [框架][2],可以识别我的音乐目录的结构,并使用它来遍历音乐文件。在该系列的最后一篇文章中,我从框架中分离出一个实用类,我的脚本可以用它来处理文件。 + +这个独立的框架让我想起了很多 awk 的工作方式。对于那些不熟悉 awk 的人来说,你学习下这本电子书: + +> **[《awk 实用指南》][3]** + +我从 1984 年开始大量使用 awk,当时我们的小公司买了第一台“真正的”计算机,它运行的是 System V Unix。对我来说,awk 是非常完美的:它有关联内存associative memory——将数组视为由字符串而不是数字来索引的。它内置了正则表达式,似乎专为处理数据而生,尤其是在处理数据列时,而且结构紧凑,易于学习。最后,它非常适合在 Unix 工作流使用,从标准输入或文件中读取数据并写入到输出,数据不需要经过其他的转换就出现在了输入流中。 说 awk 是我日常计算工具箱中的一个重要部分一点也不为过。然而,在我使用 awk 的过程中,有几件事让我感到不满意。 -可能主要的问题是 awk 善于处理有分隔字段的数据,但很奇怪它不善于处理 CSV 文件,因为 CSV 文件的字段被引号包围时可以嵌入分隔符。另外,自 awk 发明以来,正则表达式已经有了很大的发展,我们需要记住两套正则表达式的语法规则,而这并不利于编写无 bug 的代码。[一套这样的规则已经很糟糕了][4]。 +可能主要的问题是 awk 善于处理以分隔字段呈现的数据,但很奇怪它不善于处理 CSV 文件,因为 CSV 文件的字段被引号包围时可以嵌入逗号分隔符。另外,自 awk 发明以来,正则表达式已经有了很大的发展,我们需要记住两套正则表达式的语法规则,而这并不利于编写无 bug 的代码。[一套这样的规则已经很糟糕了][4]。 -由于 awk 是一门简洁的语言,因此它缺少很多我认为有用的东西,比如更丰富的基础类型、结构体、switch 语句等等。 +由于 awk 是一门简洁的语言,因此它缺少很多我认为有用的东西,比如更丰富的基础类型、结构体、`switch` 语句等等。 -相比之下,Groovy 拥有这些能力:请参照 [OpenCSV 库][5],它很擅长处理 CSV 文件、Java 正则表达式和强大的匹配运算符、丰富的基础类型、类、 switch 语句等等。 +相比之下,Groovy 拥有这些能力:可以使用 [OpenCSV 库][5],它很擅长处理 CSV 文件、Java 正则表达式和强大的匹配运算符、丰富的基础类型、类、`switch` 语句等等。 Groovy 所缺乏的是简单的面向管道的概念,即把要处理数据作为一个传入的流,以及把处理过的数据作为一个传出的流。 -但我的音乐目录处理框架让我想到,也许我可以创建一个 Groovy 版本的 awk "引擎"。这就是我写这篇文章的目的。 +但我的音乐目录处理框架让我想到,也许我可以创建一个 Groovy 版本的 awk “引擎”。这就是我写这篇文章的目的。 ### 安装 Java 和 Groovy -Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java 和 Groovy 版本可能都在你的 Linux 发行版的软件库中。Groovy 也可以按照 [Groovy主页][6]上的说明进行安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][7],它可以用来获得多个版本的 Java、Groovy 和其他许多相关工具。在这篇文章中,我使用的是SDK的版本: +Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java 和 Groovy 版本可能都在你的 Linux 发行版的软件库中。Groovy 也可以按照 [Groovy 主页][6] 上的说明进行安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][7],它可以用来获得多个版本的 Java、Groovy 和其他许多相关工具。在这篇文章中,我使用的是 SDK 的版本: -* Java: version 11.0.12-open of OpenJDK 11; -* Groovy: version 3.0.8. +* Java:OpenJDK 11 的 11.0.12 的开源版本 +* Groovy:3.0.8 ### 使用 Groovy 创建 awk @@ -53,82 +58,77 @@ Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java ### 框架类 -下面是 “awk 引擎”的 Groovy 类: +下面是用 Groovy 类实现的 “awk 引擎”: ``` -1 @Grab('com.opencsv:opencsv:5.6') - 2 import com.opencsv.CSVReader - 3 public class AwkEngine { - 4 // With admiration and respect for - 5 //     Alfred Aho - 6 //     Peter Weinberger - 7 //     Brian Kernighan - 8 // Thank you for the enormous value - 9 // brought my job by the awk -10 // programming language -11 Closure onBegin -12 Closure onEachLine -13 Closure onEnd - -14 private String fieldSeparator -15 private boolean isFirstLineHeader -16 private ArrayList fileNameList -    -17 public AwkEngine(args) { -18     this.fileNameList = args -19     this.fieldSeparator = "|" -20     this.isFirstLineHeader = false -21 } -    -22 public AwkEngine(args, fieldSeparator) { -23     this.fileNameList = args -24     this.fieldSeparator = fieldSeparator -25     this.isFirstLineHeader = false -26 } -    -27 public AwkEngine(args, fieldSeparator, isFirstLineHeader) { -28     this.fileNameList = args -29     this.fieldSeparator = fieldSeparator -30     this.isFirstLineHeader = isFirstLineHeader -31 } -    -32 public void go() { -33     this.onBegin() -34     int recordNumber = 0 -35     fileNameList.each { fileName -> -36         int fileRecordNumber = 0 -37         new File(fileName).withReader { reader -> -38             def csvReader = new CSVReader(reader, -39                 this.fieldSeparator.charAt(0)) -40             if (isFirstLineHeader) { -41                 def csvFieldNames = csvReader.readNext() as -42                     ArrayList -43                 csvReader.each { fieldsByNumber -> -44                     def fieldsByName = csvFieldNames. -45                         withIndex(). -46                         collectEntries { name, index -> -47                             [name, fieldsByNumber[index]] -48                         } -49                     this.onEachLine(fieldsByName, -50                             recordNumber, fileName, -51                             fileRecordNumber) -52                     recordNumber++ -53                     fileRecordNumber++ -54                 } -55             } else { -56                 csvReader.each { fieldsByNumber -> -57                     this.onEachLine(fieldsByNumber, -58                         recordNumber, fileName, -59                         fileRecordNumber) -60                     recordNumber++ -61                     fileRecordNumber++ -62                 } -63             } -64         } -65     } -66     this.onEnd() -67 } -68 } +@Grab('com.opencsv:opencsv:5.6') +import com.opencsv.CSVReader +public class AwkEngine { + // With admiration and respect for + // Alfred Aho + // Peter Weinberger + // Brian Kernighan + // Thank you for the enormous value + // brought my job by the awk + // programming language + Closure onBegin + Closure onEachLine + Closure onEnd + private String fieldSeparator + private boolean isFirstLineHeader + private ArrayList fileNameList + public AwkEngine(args) { + this.fileNameList = args + this.fieldSeparator = "|" + this.isFirstLineHeader = false + } + public AwkEngine(args, fieldSeparator) { + this.fileNameList = args + this.fieldSeparator = fieldSeparator + this.isFirstLineHeader = false + } + public AwkEngine(args, fieldSeparator, isFirstLineHeader) { + this.fileNameList = args + this.fieldSeparator = fieldSeparator + this.isFirstLineHeader = isFirstLineHeader + } + public void go() { + this.onBegin() + int recordNumber = 0 + fileNameList.each { fileName -> + int fileRecordNumber = 0 + new File(fileName).withReader { reader -> + def csvReader = new CSVReader(reader, + this.fieldSeparator.charAt(0)) + if (isFirstLineHeader) { + def csvFieldNames = csvReader.readNext() as + ArrayList + csvReader.each { fieldsByNumber -> + def fieldsByName = csvFieldNames. + withIndex(). + collectEntries { name, index -> + [name, fieldsByNumber[index]] + } + this.onEachLine(fieldsByName, + recordNumber, fileName, + fileRecordNumber) + recordNumber++ + fileRecordNumber++ + } + } else { + csvReader.each { fieldsByNumber -> + this.onEachLine(fieldsByNumber, + recordNumber, fileName, + fileRecordNumber) + recordNumber++ + fileRecordNumber++ + } + } + } + } + this.onEnd() + } +} ``` 虽然这看起来是相当多的代码,但许多行是因为太长换行了(例如,通常你会合并第 38 行和第 39 行,第 41 行和第 42 行,等等)。让我们逐行看一下。 @@ -137,13 +137,13 @@ Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java 第 2 行我引入了 OpenCSV 的 `CSVReader` 类 -第 3 行,像 Java 一样,我声明了一个 public 实用类 `AwkEngine`。 +第 3 行,像 Java 一样,我声明了一个 `public` 实用类 `AwkEngine`。 -第 11-13 行定义了脚本所使用的 Groovy 闭包实例,作为该类的钩子。像任何 Groovy 类一样,它们“默认是 public”,但 Groovy 将这些字段创建为 private,并对其进行外部引用(使用 Groovy 提供的 getter 和 setter 方法)。我将在下面的示例脚本中进一步解释这个问题。 +第 11-13 行定义了脚本所使用的 Groovy 闭包实例,作为该类的钩子。像任何 Groovy 类一样,它们“默认是 `public`”,但 Groovy 将这些字段创建为 `private`,并对其进行外部引用(使用 Groovy 提供的 getter 和 setter 方法)。我将在下面的示例脚本中进一步解释这个问题。 -第 14-16 行声明了 private 字段 —— 字段分隔符,一个指示文件第一行是否为标题的 flag,以及一个文件名的列表。 +第 14-16 行声明了 `private` 字段 —— 字段分隔符,一个指示文件第一行是否为标题的标志,以及一个文件名的列表。 -第 17-31 行定义了三个构造函数。第一个接收命令行参数。第二个接收字段的分隔符。第三个接收指示第一行是否为标题的 flag。 +第 17-31 行定义了三个构造函数。第一个接收命令行参数。第二个接收字段的分隔符。第三个接收指示第一行是否为标题的标志。 第 31-67 行定义了引擎本身,即 `go()` 方法。 @@ -151,7 +151,7 @@ Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java 第 34 行初始化流的 `recordNumber`(等同于 awk 的 `NR` 变量)为 0(注意我这里是从 00 而不是 1 开始的)。 -第 35-65 行实用 each `{}` 来循环处理列表中的文件。 +第 35-65 行使用 `each` `{}` 来循环处理列表中的文件。 第 36 行初始化文件的 `fileRecordNumber`(等同于 awk 的 `FNR` 变量)为 0(从 0 而不是 1 开始)。 @@ -165,9 +165,9 @@ Groovy 是基于 Java 的,需要先安装 Java。最新的、合适的 Java 第 43-54 行处理其他的行。 -第 44-48 行把字段的值复制到 `name:value` 的 map 中。 +第 44-48 行把字段的值复制到 `name:value` 的映射中。 -第 49-51 行调用 `onEachLine()` 闭包(等同于 awk 程序 `BEGIN {}` 和 `END {}` 之间的部分,不同的是,这里不能输入执行条件),传入的参数是 `name:value` map、处理过的总行数、文件名和该文件处理过的行数。 +第 49-51 行调用 `onEachLine()` 闭包(等同于 awk 程序 `BEGIN {}` 和 `END {}` 之间的部分,不同的是,这里不能输入执行条件),传入的参数是 `name:value` 映射、处理过的总行数、文件名和该文件处理过的行数。 第 52-53 行是处理过的总行数和该文件处理过的行数的自增。 @@ -204,30 +204,27 @@ OpenCSV 可能会返回 `String[]` 值,不像 Groovy 中的 `List` 值那样 下面是一个使用 `AwkEngine` 来处理 `/etc/group` 之类由冒号分隔并没有标题的文件的简单脚本: ``` -1 def ae = new AwkEngine(args, ‘:') -2 int lineCount = 0 +def ae = new AwkEngine(args, ':') +int lineCount = 0 +ae.onBegin = { +  println “in begin” +} +ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> +  if (lineCount < 10) +    println “fileName $fileName fields $fields” +    lineCount++ +} +ae.onEnd = { +   println “in end” +   println “$lineCount line(s) read” +} -3 ae.onBegin = { -4    println “in begin” -5 } - -6 ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> -7    if (lineCount < 10) -8       println “fileName $fileName fields $fields” -9       lineCount++ -10 } - -11 ae.onEnd = { -12    println “in end” -13    println “$lineCount line(s) read” -14 } - -15 ae.go() +ae.go() ``` 第 1 行 调用的有两个参数的构造函数,传入了参数列表,并定义冒号为分隔符。 -第 2 行定义一个脚本级的变量 `lineCount`,用来记录处理过的行数(注意,Groovy 闭包不要求定义在外部的变量为 final)。 +第 2 行定义一个脚本级的变量 `lineCount`,用来记录处理过的行数(注意,Groovy 闭包不要求定义在外部的变量为 `final`)。 第 3-5 行定义 `onBegin()` 闭包,在标准输出中打印出 “in begin” 字符串。 @@ -264,37 +261,35 @@ $ 下面是另一个更有趣的脚本,它很容易让人想起我对 awk 的典型使用方式: ``` -1 def ae = new AwkEngine(args, ‘;', true) -2 ae.onBegin = { -3    // nothing to do here -4 } +def ae = new AwkEngine(args, ';', true) +ae.onBegin = { +   // nothing to do here +} +def regionCount = [:] +   ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> +   regionCount[fields.REGION] = +   (regionCount.containsKey(fields.REGION) ? +   regionCount[fields.REGION] : 0) + +  (fields.PERSONAS as Integer) +} +ae.onEnd = { +   regionCount.each { region, population -> +   println “Region $region population $population” + } +} -5 def regionCount = [:] -6    ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber -> -7    regionCount[fields.REGION] = -8    (regionCount.containsKey(fields.REGION) ? -9    regionCount[fields.REGION] : 0) + -10   (fields.PERSONAS as Integer) -11 } - -12 ae.onEnd = { -13    regionCount.each { region, population -> -14    println “Region $region population $population” -15    } -16 } - -17 ae.go() +ae.go() ``` 第 1 行调用了三个函数的构造方法,`true` 表示这是“真正的 CSV” 文件,第一行为标题。由于它是西班牙语的文件,因此它的逗号表示数字的`点`,标准的分隔符是分号。 第 2-4 行定义 `onBegin()` 闭包,这里什么也不做。 -第 5 行定义一个(空的)`LinkedHashmap`,key 是 String 类型,value 是 Integer 类型。数据文件来自于智利最近的人口普查,你要在这个脚本中计算出智利每个地区的人口数量。 +第 5 行定义一个(空的)`LinkedHashmap`,键是 String 类型,值是 Integer 类型。数据文件来自于智利最近的人口普查,你要在这个脚本中计算出智利每个地区的人口数量。 第 6-11 行处理文件中的行(加上标题一共有 180,500 行)—— 请注意在这个案例中,由于你定义 第 1 行为 CSV 列的标题,因此 `fields` 参数会成为 `LinkedHashMap` 实例。 -第 7-10 行是 `regionCount` map 计数增加,key 是 `REGION` 字段的值,value 是 `PERSONAS` 字段的值 —— 请注意,与 awk 不同,在 Groovy 中你不能在赋值操作的右边使用一个不存在的 map 而期望得到空值或零值。 +第 7-10 行是 `regionCount` 映射计数增加,键是 `REGION` 字段的值,值是 `PERSONAS` 字段的值 —— 请注意,与 awk 不同,在 Groovy 中你不能在赋值操作的右边使用一个不存在的映射而期望得到空值或零值。 第 12-16 行,打印每个地区的人口数量。 @@ -332,7 +327,7 @@ via: https://opensource.com/article/22/9/awk-groovy 作者:[Chris Hermansen][a] 选题:[lkxed][b] 译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f2ea94ca2411eca93cca6bff8bde916f42b073e6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 9 Nov 2022 10:10:27 +0800 Subject: [PATCH 1936/3123] P @lxbwolf https://linux.cn/article-15231-1.html --- .../20220903 Infuse your awk scripts with Groovy.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220903 Infuse your awk scripts with Groovy.md (99%) diff --git a/translated/tech/20220903 Infuse your awk scripts with Groovy.md b/published/20220903 Infuse your awk scripts with Groovy.md similarity index 99% rename from translated/tech/20220903 Infuse your awk scripts with Groovy.md rename to published/20220903 Infuse your awk scripts with Groovy.md index 2cca81c39e..b171a49201 100644 --- a/translated/tech/20220903 Infuse your awk scripts with Groovy.md +++ b/published/20220903 Infuse your awk scripts with Groovy.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "lxbwolf" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15231-1.html" 为你的 awk 脚本注入 Groovy ====== From 54a6da3b0757e861c5bf96328e6a35e65c7958f2 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 9 Nov 2022 11:44:04 +0800 Subject: [PATCH 1937/3123] translated --- ... are the Mascots of All Ubuntu Releases.md | 461 ----------------- ... are the Mascots of All Ubuntu Releases.md | 466 ++++++++++++++++++ 2 files changed, 466 insertions(+), 461 deletions(-) delete mode 100644 sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md create mode 100644 translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md diff --git a/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md deleted file mode 100644 index 2e402a9564..0000000000 --- a/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md +++ /dev/null @@ -1,461 +0,0 @@ -[#]: 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: "chai001125" -[#]: 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 wasn’t 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. - -Let’s hop on to Ubuntu’s 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 marine animals with umbrella-shaped bells and trailing tentacles, 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 64–72 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 don’t 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 a legendary creature that has been described since antiquity as a beast with a single large, pointed, spiraling horn projecting 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 colored birds in the trogon family. They are found in forests, especially in humid highlands, with the five species from the genus *Pharomachrus* being exclusively Neotropical, while a single species, the eared quetzal, *Euptilotis neoxenus*, is found in Mexico and very locally in the southernmost United States. Quetzals are fairly large (all over 32 cm or 13 inches long), slightly bigger than other trogon species. The resplendent quetzal is the national bird of Guatemala because 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 40–50 cm (15.7–19.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 male’s 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 are long-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 apes live 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 it’s 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 diff --git a/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md new file mode 100644 index 0000000000..95a5fa019c --- /dev/null +++ b/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md @@ -0,0 +1,466 @@ +[#]: 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: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +对 Ubuntu 的热爱:Ubuntu 所有版本的吉祥物 +====== + +在这篇文章中,我们会介绍迄今为止所有 Ubuntu 发行版本的 吉祥物 mascot 。 + +你可能已经注意到了:每个 Ubuntu 版本都会有一个 版本名称 version name 代号 codename 。代号由两个单词组成,这两个单词有相同的首字母,第一个单词是形容词,另一个单词通常是一个濒危的物种名称。 + +对应于其代号,这些 Ubuntu 版本也有一个吉祥物。例如,Ubuntu 22.04 的代号为 Jammy Jellyfish,因此 Ubuntu 22.04 的桌面壁纸上有 **吉祥物:水母** 的图像。 + +但是实际上,这些“吉祥物”并不总是 Ubuntu 版本的一部分,因为吉祥物在早期的 Ubuntu 版本中是没有的。 + +有史以来第一个 Ubuntu 版本是在 2004 年 10 月发布的 4.10 版(LCTT 译注:Ubuntu 的版本号是由年份和月份的组合来表示的。)但是,直到 Ubuntu 8.04 LTS Hardy Heron 版本,你才会看到相关的吉祥物。 + +在我之前写的 [另一篇文章][1] 中,我整理了所有 Ubuntu 版本的默认壁纸。在本文中,你将了解到所有 Ubuntu 版本的吉祥物。 + +现在,就让我们按时间倒序,一起进入 Ubuntu 的吉祥物之旅吧。 + +### Ubuntu 22.04 Jammy Jellyfish(幸运的水母) + +![Ubuntu 22.04 mascot][2] + +于 2021 年 4 月 21 日发布。 + +Jammy 的意思是被果酱覆盖着的、充满果酱的。不太正式地,Jammy 还有**幸运**的意思。 + +水母 Jellyfish 是一种自由游动的水生动物,它的身体就像是一把透明伞,还具有拖曳的触须。 + +### Ubuntu 21.10 Impish Indri(顽皮的大狐猴) + +![Ubuntu 21.10 mascot][3] + +于 2021 年 10 月 14 日发布。 + +Impish 的意思是以**顽皮**而不是严肃的方式,对某人/某事不太尊重。 + +大狐猴 Indri ,也称为 babakoto,是最大的狐猴之一。它的头身长约 64 至 72 厘米,体重在 6 至 9.5 公斤之间。它的毛发是黑白相间的。在攀爬或攀爬时,它会保持竖直的姿势。 + +### Ubuntu 21.04 Hirsute Hippo(毛茸茸的河马) + +![Ubuntu 21.04 mascot][4] + +于 2021 年 4 月 22 日发布。 + +Hirsute 的意思是多毛的、**毛茸茸的**。 + +河马 Hippo ,是一种生活在非洲大陆撒哈拉以南的大型半水生哺乳动物。河马是河马科中仅有的两个现存物种之一,另一个物种是 侏儒河马 pygmy hippopotamus 。河马的名字来源于古希腊语“river horse”。 + +但是其实,我并没有见过很多毛茸茸的河马😅。 + +### Ubuntu 20.10 Groovy Gorilla(时髦的大猩猩) + +![Ubuntu 20.10 mascot][5] + +于 2020 年 10 月 22 日发布。 + +Groovy 的意思是**时尚的**和令人兴奋的。 + +大猩猩 Gorilla ,是一种草​​食性的地面类人猿。它主要栖息在赤道非洲的热带森林中。大猩猩属分为两个物种:东部大猩猩和西部大猩猩,以及进一步可分为四个或五个亚种。 + +### Ubuntu 20.04 LTS Focal Fossa(令人注目的狸猫) + +![Ubuntu 20.04 mascot 1][6] + +于 2020 年 4 月 23 日发布。 + +Focal 的意思是**令人注目的**。 + +马岛长尾狸猫 Fossa ,是**马达加斯加岛上最大的食肉性哺乳动物**。它身体的长度可以达到近六英尺,其中它们的长尾巴占了一半。它们看起来就像是猫、狗和獴的杂交体。它们有细长的身体、肌肉发达的四肢和短的红棕色毛发。 + +### Ubuntu 19.10 Eoan Ermine(东方的貂) + +![Ubuntu 19.10 mascot][7] + +于 2019 年 10 月 17 日发布。 + +Eoan 的意思是**与黎明或东方有关的**。 + +白鼬 Stoat ,也被称为欧亚貂、白令貂,简称 Ermine ,是一种原产于欧亚大陆和北美北部的鼬科动物。由于鼬在极地广泛分布,因此它被列为是 世界自然保护联盟红色名录 IUCN Red List 中最不担忧灭绝的物种。 + +### Ubuntu 19.04 Disco Dingo(迪斯科野狗) + +![Ubuntu 19.04 mascot][8] + +于 2019 年 4 月 18 日发布。 + +Disco 与**迪斯科**音乐和夜总会有关。 + +澳洲野犬 Dingo ,是在澳大利亚发现的一种古老的犬种。澳洲野犬的科属分类在不同出版物中不太一样,因此它的科属分类存在争议。 + +### Ubuntu 18.10 Cosmic Cuttlefish(不同的墨鱼) + +![Ubuntu 18.10 mascot][9] + +于 2018 年 10 月 18 日发布。 + +Cosmic 意味着与地球**不同的**、宇宙的。 + +墨鱼 Cuttlefish ,是乌贼目的一种海洋软体动物。它属于头足类,这一类还包含了鱿鱼、章鱼和鹦鹉螺。墨鱼有一个独特的内壳,即墨鱼骨,它可以用于控制浮力。 + +### Ubuntu 18.04 LTS Bionic Beaver(仿生海狸) + +![Ubuntu 18.04 mascot][10] + +于 2018 年 4 月 26 日发布。 + +Bionic 意味着**人工的**,或者是机电的。 + +海狸 Beaver ,是北半球温带的一种大型半水生啮齿动物。有两种现存的海狸:北美海狸和欧亚海狸。海狸是仅次于水豚的第二大啮齿动物。 + +英国用户认为这个版本的名称特别有趣。 + +### Ubuntu 17.10 Artful Aardvark(机灵的土豚) + +![Ubuntu 17.10 mascot][11] + +于 2017 年 10 月 19 日发布。 + +Ubuntu 在此版本中默认切换回了 GNOME。 + +Artful 的意思是聪明的或**机灵的**。 + +土豚 Aardvark ,是一种原产于非洲的中型、穴居、夜间活动的哺乳动物。它是管齿目中唯一的现存物种。与大多数其他食虫动物不同,它有一个长长的像猪一样的鼻子,可以闻出食物在哪里。 + +### Ubuntu 17.04 Zesty Zapus(开心的跳鼠) + +![Ubuntu 17.04 mascot][12] + +于 2017 年 4 月 13 日发布。 + +这个版本是最后一个以 Unity 桌面为特色的版本。 + +Zesty 意味着有一种强烈的、**令人愉快的**、有点辛辣的味道。 + +Zapus 是北美跳鼠中唯一一个有牙齿的一个属。Zapus 是除 指猴 Aye-aye 之外,唯一现存的有 18 颗牙齿的哺乳动物。 + +### Ubuntu 16.10 Yakkety Yak(牦牛) + +![Ubuntu 16.10 mascot][13] + +于 2016 年 10 月 13 日发布。 + +Yakkety 有很多意思。yakking 有唠唠叨叨这一非正式意思,yakkety 还可能是 喋喋不休的萨克斯 Yakety Sax 的另一种拼写。 + +牦牛 Yak ,是一种大型驯养的野牛。它的毛发蓬松,肩部隆起,有很大的角。在西藏,它是一种驮畜,人们也可以食用它的奶和肉、以及加工它的皮制作东西。 + +### Ubuntu 16.04 LTS Xenial Xerus(好客的非洲地松鼠) + +![Ubuntu 16.04 mascot][14] + +于 2016 年 4 月 21 日发布。 + +Xenial 的意思是**热情好客的**。 + +非洲地松鼠 Xerus ,有四个亚种,分别是**开普地松鼠,条纹地松鼠,山地松鼠和无条纹地松鼠**。这些动物是昼行性的,是食草动物,通常吃坚果、根和种子。然而,有时他们也会吃鸡蛋和其他小动物。 + +### Ubuntu 15.10 Wily Werewolf(狡猾的狼人) + +![Ubuntu 15.10 mascot][15] + +于 2015 年 10 月 22 日发布。 + +这个版本可能是其发布代号中带有虚构动物的 Ubuntu 版本之一。 + +Wily 的意思是善于获得优势,尤其在欺骗上十分**狡猾的**。 + +狼人 Werewolf ,是可以隐藏住耳朵和尾巴的一种神话生物。它是人,也是狼,大多数人因为它们的长相而害怕它们。 + +### Ubuntu 15.04 Vivid Vervet(活泼的小猴) + +![Ubuntu 15.04 mascot][16] + +于 2015 年 4 月 23 日发布。 + +Vivid 的意思是**生动**的、明亮的。 + +黑长尾猴 Vervet monkey ,是一种原产于非洲的角猿科的旧大陆猴。“vervet”一词也用于表示绿猴属 Chlorocebus 的所有动物,其中包含五个不同的亚种,这五个不同的亚种主要分布在南部非洲以及一些东部国家。 + +### Ubuntu 14.10 Utopic Unicorn(乌托邦独角兽) + +![Ubuntu 14.10 mascot][17] + +于 2014 年 10 月 23 日发布。 + +这个版本是另一个其发布代号中带有虚构动物的 Ubuntu 版本。 + +Utopic 与**乌托邦**有关,乌托邦是一个虚构的、不存在但是一个理想的地方。 + +独角兽 Unicorn ,是一种传说中的生物。自古以来,它就被描述为前额有一个巨大的、尖的、螺旋状的角的一种野兽。 + +### Ubuntu 14.04 LTS Trusty Tahr(可靠的塔尔羊) + +![Ubuntu 14.04 mascot][18] + +于 2014 年 4 月 17 日发布。 + +Trusty 意味着**可靠的**或忠实的。 + +塔尔羊 Tahr ,是一种很像山羊的哺乳动物。它们会栖息在阿曼、印度南部和喜马拉雅山脉的悬崖和山坡上。 + +### Ubuntu 13.10 Saucy Salamander(活泼的蝾螈) + +![Ubuntu 13.10 mascot][19] + +于 2013 年 10 月 17 日发布。 + +Saucy 意味着大胆的、**活泼的**或精神饱满的。 + +蝾螈 Salamander 是一类两栖动物。其典型特征是有着蜥蜴般的外观,它们有细长的身体,钝的鼻子,以及与身体成直角突出的短肢,并且幼体和成体都有尾巴。现存的所有十个蝾螈科都属于 乌罗德拉目 Urodela 。 + +### Ubuntu 13.04 Raring Ringtail(铆足了劲的猫熊) + +![Ubuntu 13.04 mascot][20] + +于 2013 年 4 月 25 日发布。 + +Raring 的意思是热情的和**非常渴望做某事**。 + +猫熊 Ringtail ,是**一种像猫一样大的食肉动物,类似于一只长着浣熊尾巴的小狐狸**。它浓密的尾巴是扁平的,几乎和头部和身体一样长,有交替的黑色和白色皮毛。它们是夜行动物,一天中的大部分时间都在它们的巢穴里睡觉。 + +### Ubuntu 12.10 Quantal Quetzal(量子的大咬鹃) + +![Ubuntu 12.10 mascot][21] + +于 2012 年 10 月 18 日发布。 + +Quantal 意味着与**量子**或量子理论有关的。 + +大咬鹃 Quetzal ,是咬鹃家族中的一种色彩鲜艳的鸟类。它们生活在森林中,主要是在潮湿的高地。来自*凤尾绿咬鹃属*的五种物种生活在新热带的,而另外一个物种,即角咬鹃,生活在墨西哥和美国最南端的局部地区。大咬鹃相当地大,它们的身体长度超过 32 厘米或者有 13 英寸长,比其他咬鹃科的物种都大。绚丽的大咬鹃因其鲜艳的色彩,而成为危地马拉的国鸟。 + +### Ubuntu 12.04 LTS Precise Pangolin(精准的穿山甲) + +![Ubuntu 12.04 mascot][22] + +于 2012 年 4 月 26 日发布。 + +Precise 意味着能**准确**地表达细节的。 + +穿山甲 Pangolin ,有时被称为有鳞食蚁兽,是鳞甲目的一种哺乳动物。它现存的一个科是穿山甲科,有三个属:穿山甲亚属、长尾穿山甲亚属和地穿山甲亚属。穿山甲亚属包括在亚洲发现的四种物种,而长尾穿山甲亚属和地穿山甲亚属各包括两种物种,均在撒哈拉以南非洲发现。 + +### Ubuntu 11.10 Oneiric Ocelot(梦幻的豹猫) + +![Ubuntu 11.10 mascot][23] + +于 2011 年 10 月 13 日发布。 + +Oneiric 的意思是与**梦**有关的。 + +豹猫 Ocelot (Leopardus pardalis),是一种中等大小的斑点野猫。它的肩长可达 40 至 50 厘米(15.7 至 19.7 英寸),体重在 8 至 15.5 公斤(17.6 至 34.2 磅)之间。卡尔·林奈于 1758 年首次在书中描述了它。 + +### Ubuntu 11.04 Natty Narwhal(敏捷的独角鲸) + +![Ubuntu 11.04 mascot][24] + +于 2011 年 4 月 28 日发布。 + +这个版本是第一个以 Unity 桌面为特色的版本。 + +Natty 意味着**聪明**和时尚的。 + +独角鲸 Narwhal ,是一种中等大小的齿鲸。它从突出的犬齿中长出了大“獠牙”。它全年生活在格陵兰、加拿大和俄罗斯周围的北极水域。它是一角鲸科中现存的两种鲸鱼物种之一,另一个物种是 白鲸 Beluga whale 。 + +### Ubuntu 10.10 Maverick Meerkat(特立独行的猫鼬) + +![Ubuntu 10.10 mascot][25] + +于 2010 年 10 月 10 日发布。 + +Maverick 的意思是**特立独行的**或有独立思想的。 + +猫鼬 Meerkat ,是一种在南部非洲发现的小型猫鼬。它的特点是头宽,眼睛大,鼻子尖,腿长,尾巴很细,毛色有斑纹。 + +### Ubuntu 10.04 LTS Lucid Lynx(清醒的猞狸) + +![Ubuntu 10.04 mascot][26] + +于 2010 年 4 月 29 日发布。 + +Lucid 意味着**易于理解的**或明亮的。 + +猞猁 Lynx ,是中型野猫属猞猁中的一种。猞猁这个名字起源于中古英语,源自希腊语 λύγξ,λύγξ 又源自于印欧语词根 leuk-,指的是它眼睛能反射发光的样子。 + +### Ubuntu 9.10 Karmic Koala(幸运的考拉) + +![Ubuntu 9.10 mascot][27] + +于 2009 年 10 月 29 日发布。 + +Karmic 意味着与**命运**有关的。 + +考拉 Koala ,是一种原产于澳大利亚的树栖草食性的有袋动物。它是袋鼠科唯一现存的物种,它的近亲是袋熊 Wombat 。 + +### Ubuntu 9.04 Jaunty Jackalope(自信的鹿角兔) + +![Ubuntu 9.04 mascot][28] + +于 2009 年 4 月 23 日发布。 + +这个版本是我用的第一个 Ubuntu 版本。 + +Jaunty 是指拥有活泼、开朗和**自信**的态度。 + +鹿角兔 Jackalope ,是**北美民间传说中的一种神话动物**,被描述为长着羚羊角的可怕的长角兔。Jackalope 这个词是由 jackrabbit 和 antelope 组合而成的。许多鹿角兔的标本都是由用鹿角制成的。 + +### Ubuntu 8.10 Intrepid Ibex(勇敢的野山羊) + +![Ubuntu 8.10 mascot][29] + +于 2008 年 10 月 30 日发布。 + +Intrepid 意味着**无所畏惧**、冒险的。 + +野山羊 Ibex ,其特点是雄性的野山羊大角十分弯曲,在前面形成像横向的脊那样。它主要分布于欧亚大陆、北非和东非。 + +### Ubuntu 8.04 LTS Hardy Heron(耐寒的苍鹭) + +![Ubuntu 8.04 mascot][30] + +于 2008 年 4 月 24 日发布。 + +这个版本是第一个吉祥物出现在其默认壁纸上的 Ubuntu 版本。 + +Hardy 意味着能够忍受困难的条件的、**强大的**。 + +苍鹭 Heron ,是一种长腿、长颈、生活在淡水和沿海的鸟类。 + +### Ubuntu 7.10 Gutsy Gibbon(勇敢的长臂猿) + +![Ubuntu 7.10 mascot][31] + +于 2007 年 10 月 18 日发布。 + +Gusty 表示**阵风**的。 + +长臂猿 Gibbon ,是一种猿类,它们生活在孟加拉国东部、印度东北部、中国南部和印度尼西亚的亚热带和热带雨林地区。 + +### Ubuntu 7.04 Feisty Fawn(活泼的小鹿) + +![Ubuntu 7.04 mascot][32] + +于 2007 年 4 月 19 日发布。 + +Feisty 意味着**小而坚定**的。 + +小鹿 Fawn ,指的是第一年刚出生的小鹿。 + +### Ubuntu 6.10 Edgy Eft(紧张的水蜥) + +![Ubuntu 6.10 mascot][33] + +于 2006 年 10 月 26 日发布。 + +Edgy 的意思是**紧张的**。 + +水蜥 Eft ,是蝾螈的陆生幼年期。蝾螈是一种蜥蜴,它具有三个不同的发育生命阶段:水生幼虫、陆生幼体 (即 eft) 和成体。 + +所以水蜥指的是一个青年的蝾螈。 + +### Ubuntu 6.06 Dapper Drake(整洁的公鸭) + +![Ubuntu 6.06 mascot][34] + +于 2006 年 6 月 1 日发布。 + +Dapper 的意思是衣着整洁,**外表整洁的**。 + +公鸭 Drake ,是完全性成熟的成年雄性鸭子。 + +### Ubuntu 5.10 Breezy Badger(活泼的獾) + +![Ubuntu 5.10 mascot][35] + +于 2005 年 10 月 12 日发布。 + +Breezy 的意思是有**微风**的。 + + Badger ,一种是短腿的杂食动物。 + +### Ubuntu 5.04 Hoary Hedgehog(灰白的刺猬) + +![Ubuntu 5.04 mascot][36] + +于 2005 年 4 月 8 日发布。 + +Hoary 是**灰白色的**意思。 + +刺猬 Hedgehogis ,是一种多刺的哺乳动物,遍布于欧洲、亚洲和非洲的部分地区,并引入到了新西兰。 + +### Ubuntu 4.10 : Warty Warthog(长疣的疣猪) + +![Ubuntu 4.10 mascot][37] + +于 2004 年 10 月 20 日发布。 + +Ubuntu 就是从这个版本开始的。 + +Wart 是由病毒引起的一种小的、坚硬的、良性的皮肤生长物。Warty 的意思是**长满疣的**。 + +疣猪 Warthog ,是猪科的一种野生动物,它是在撒哈拉以南非洲的草原、稀树草原和林地中被发现的。 + +### 总结 + +本文有没有让 Ubuntu 用户了解了更多知识呢?从技术上讲,并没有,但回顾历史是件好事。如果你多年来一直是 Ubuntu 用户,那么这篇文章可能会引发你的怀旧之情。 + +Ubuntu 9.04 是我第一次尝试 Linux 桌面。如果我没记错的话,那是在 2009 年 9 月下旬。仅仅几周后,我的系统就升级到了 Ubuntu 9.10。那些天我经常在 Ubuntu 论坛上浏览,探索这个新的操作系统,并学习新的东西。 + +那么,这篇文章有没有勾起你的一些美好的回忆呢?你的第一个 Ubuntu 版本又是哪个呢?在评论区中分享你的 Ubuntu 使用经历吧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/all-Ubuntu-mascots/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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 From 3718cce7f917d4adc4344c18cc2e68846fe0e7b1 Mon Sep 17 00:00:00 2001 From: lkxed Date: Thu, 10 Nov 2022 00:18:15 +0800 Subject: [PATCH 1938/3123] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Top 10 Features of Linux Mint 21 “Vanessa”.md | 188 ------------------ ...l Linux Emerging Arch Linux Spin for GNOME Fans.md | 146 -------------- ...re A Folder Between UbuntuLinux and Windows.md | 95 --------- ... Install Flatpak Apps in Ubuntu and Other Linux.md | 170 ---------------- ... How to Delete Background in Image Using GIMP.md | 143 ------------- 5 files changed, 742 deletions(-) delete mode 100644 sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md delete mode 100644 sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md delete mode 100644 sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md delete mode 100644 sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md delete mode 100644 sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md diff --git a/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md b/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md deleted file mode 100644 index 86ba70d901..0000000000 --- a/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md +++ /dev/null @@ -1,188 +0,0 @@ -[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" -[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Features of Linux Mint 21 “Vanessa” -====== - -**We round up Linux Mint 21 “Vanessa” top features. Find out what’s in store for you.** - -![Linux Mint 21 Cinnamon Desktop][1] - -Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. - -I have summarized all of them in this list of top features of Linux Mint 21. - -### Top Features of Linux Mint 21 “Vanessa” - -#### 1. Ubuntu 22.04 and associated updates - -Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. - -Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. - -#### 2. Major changes in the Timeshift backup tool - -A few months back, the Mint team [announced][5] that they are taking over developing the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? - -Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. - -![Timeshift creating snapshot][7] - -With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. - -#### 3. WebP Support - -WebP image is a reasonably new image format created by Google for the web. It brings better compression and reduced size while maintaining good quality to traditional JPEG or PNG images. - -WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. - -That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always thinks about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: - -- ePub -- MP3 with Album Arts -- RAW Images -- AppImage - -#### 4. Process Monitor - -A small but handy process monitor tool will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. Your system may become slow in those situations, and this nifty icon can show you why. - -#### 5. Improved printing support - -Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. - -In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. - -All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. - -It’s good to see that the mint team contributed to this critical functionality. - -#### 6. Window Animation updates - -There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, separate sections gave more granular control of the animations. - -Here’s a side-by-side view. - -![][12] - -![][13] - -Secondly, the mapping windows and desktop effects options are removed. - -Third, a new control changes the animation speed from slower to faster. - -Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. - -I believe this is a well-designed dialog and advanced options for better clarity. - -#### 7. Mutter rebase - -Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). - -Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. - -Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. - -#### 8. Window manager and GTK Themes - -With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. - -Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. - -Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. - -On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. - -#### 9. Package Management updates - -Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. - -When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. - -If found, you get an error message that stops you from going further. - -On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. - -#### 10. Disable the Systemd OOMD (out-of-memory daemon) service - -The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. - -In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. - -With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. - -![Systemd OOMD service is not enabled][20] - -#### 11. Other Changes - -Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. - -- The default document reader app Xreader is now capable of minor annotation. This is a handy feature. -- The WebApp manager now brings custom browser parameters. -- Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. -- Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to the Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. - -![Firefox 102 in Linux Mint 21 - Exclusively packaged as deb executable][22] - -- The bulk renamer app Thingy gets some UI improvements. -- The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). -- The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. -- Finally, new wallpapers for your new desktop arrive in this release. - -![New Wallpapers in Linux Mint 21][23] - -### Things that are NOT changing - -From a very high level, you might feel that most of the Linux Mint 21 remain the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. - -### Wrapping Up - -Overall, a good set of features benefits end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. - -You can download/update Linux Mint 21 from the [official website][24]. Also, stay tuned for our detailed distro review of Linux Mint 21 soon. - -What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/linux-mint-21-features/ - -作者:[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/07/Linux-Mint-21-Cinnamon-Desktop.jpg -[2]: https://www.debugpoint.com/linux-mint/ -[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/linux-kernel-5-15/ -[5]: https://blog.linuxmint.com/?p=4323 -[6]: https://teejeetech.com/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg -[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ -[9]: https://github.com/linuxmint/xapp-thumbnailers -[10]: https://datatracker.ietf.org/doc/html/rfc8011 -[11]: https://www.debugpoint.com/tag/linux-distro-review/ -[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg -[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 -[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ -[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ -[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 -[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html -[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ -[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg -[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ -[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg -[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg -[24]: https://www.linuxmint.com/download.php diff --git a/sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md b/sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md deleted file mode 100644 index 31280fff03..0000000000 --- a/sources/tech/20221105.4 ⭐️⭐️ Crystal Linux Emerging Arch Linux Spin for GNOME Fans.md +++ /dev/null @@ -1,146 +0,0 @@ -[#]: subject: "Crystal Linux: Emerging Arch Linux Spin for GNOME Fans" -[#]: via: "https://www.debugpoint.com/crystal-linux-first-look/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Crystal Linux: Emerging Arch Linux Spin for GNOME Fans -====== - -**Meet Crystal Linux, a unique Arch Linux Spin with stock GNOME experience.** - -### Introduction - -Often I think that we have sufficient Linux distros already. The count is nearing thousands, and fragmentation is at its peak. That is not good for quality software, especially in the open-source space. - -There is always a distro available for every use case you can think of. - -But Arch Linux is one of the sectors, it’s still emerging – just because of its debatable [complex installation methods][1]. That’s why most of the emerging Arch Linux distributions (such as [Xero Linux][2], [Hefftor Linux][3], Mabox, etc.) try to invent something unique in installation and other areas. - -Crystal Linux is one of those distros with a different take on installation while being super user-friendly. - -![Crystal Linux Desktop with GNOME 42][4] - -### Crystal Linux: First Look - -Before you read on, you should know that it’s a new distro (less than a year old) currently under development. So use it with caution. - -At first glance, it will feel like a stock GNOME installation, similar to the Fedora workstation. That’s true. With the Arch Linux base and stock GNOME – the performance is top-notch. Although I tried it on a virtual machine, I feel the GNOME and Arch combination performs much better than the Fedora workstation in the same virtual machine setup. - -With that said, no such different customization is available apart from those coming with GNOME. Honestly, GNOME doesn’t require any additional customization for its default settings. Looks wise it’s good enough. - -### What’s unique about Crystal Linux? - -#### jade Installer for Arch - -The most important offering is its own installer called “[jade][5]“. Crystal Linux team created a GTK4/libadwaita and Rust-based installer to give you a streamlined experience for Arch installation. - -And it looks fantastic (see the below images). - -![jade installer][6] - -![selecting desktop to install][7] - -![installation][8] - -The jade installer reminds me of GNOME’s Tour app, but here it uses a similar principle for installation. Basic information such as Keyboard, region, and names/passwords are captured via a series of screens. - -Then you get to choose the desktop environment you want to install. The default version is GNOME; however, you have the option to install all the famous desktops and window managers. - -One unique feature of this new installer is that you get options to set up ipv6 and Timeshift restore points. - -The partition wizard is currently under development with custom partitioning via this app or GParted as options. Here’s a mockup of the partition module under development (from [Twitter][9]). - -![jade with additional options - mockup][10] - -Finally, a summary for you before you install this distro/Arch Linux. The installation executes a script at the back end for Arch installation. - -#### Onyx – custom GNOME experience - -From GitHub, I found that there is a customized desktop for base install named [Onyx][11]. - -Per the team, “Onyx used to be Budgie based but recently we changed the direction a bit, it will now be a custom GNOME session (coexisting with, but separate from GNOME)”. - -#### Amethyst – New AUR Helper - -Do we really need another AUR helper? The [Yay helper][12] is awesome already. - -Anyways. - -The Crystal Linux also features a homegrown AUR helper and pacman Wrapper called [amethyst][13]. As the dev says, you can install it to any Arch-based distros and the “fastest AUR helper and pacman wrapper”. - -Amethyst comes with the command line option “ame” which you can use with standard [pacman switches][14]. - -![ame terminal command][15] - -#### Btrfs file system by default - -One of the best features of this distro is the default btrfs file system during installation. Although the current work is ongoing for the additional file system, btrfs as default has its own advantages for backup and restoration. - -I don’t remember any other Arch-spin that has btrfs as default. - -#### Applications and Packages - -Since it is a stock GNOME-based distro, no additional applications are installed. So, you need to spend some time configuring with necessary apps such as LibreOffice, GIMP, Media players, etc. - -Firefox and native GNOME apps are available in the default installation. - -Crystal Linux seems to deploy the core packages from their own server, NOT from the Arch repo. Hence, some features may arrive a little late for updating the desktop and such. - -### Performance - -Arch Linux always performs well, in my experience. All the popular desktops such as KDE, GNOME, Xfce – all of them somehow feel faster than in Ubuntu/Fedora. - -With that said, the current GNOME 42 version in Crystal Linux is swift. The window animations and gestures feel smooth even in a virtual machine. There is no lag whatsoever. - -![Crystal Linux - Performance][16] - -Memory footprint is extremely low at 530 MB at idle. Most of the idle state CPUs are consumed by gnome-shell and systemd services. - -Default GNOME desktop install takes only 3.8 GB of disk space. - -### Wrapping up - -The jade installer and btrfs file system are two major highlights of Crystal Linux. Since most of the Arch-based distros follow Calamares installer, it’s good to see a new installer in this space. And it’s really user-friendly. - -The distro is just a few months old and has a long road ahead. I strongly believe it will give a competition to the currently famous Arch distro [EndeavourOS][17]. And the fans get to experience vanilla GNOME with Arch without the hassles of [installing Arch with GNOME][18]. - -You can download the current ISO from the [official website][19]. As I mentioned earlier, use it with caution since it is under development. - -So, what are your thoughts about this distro? What are your favourite features? Do let me know in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/crystal-linux-first-look/ - -作者:[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/install-arch-linux/ -[2]: https://www.debugpoint.com/xerolinux-review/ -[3]: https://www.debugpoint.com/hefftor-linux-review/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Desktop-with-GNOME-42-1024x579.jpg -[5]: https://github.com/crystal-linux/jade -[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-installer.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/selecting-desktop-to-install.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/installation.jpg -[9]: https://twitter.com/Crystal_Linux/status/1564379291529482240 -[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-with-additional-options-mockup-1024x576.jpg -[11]: https://github.com/crystal-linux/onyx -[12]: https://www.debugpoint.com/install-yay-arch/ -[13]: https://github.com/crystal-linux/amethyst -[14]: https://www.debugpoint.com/pacman-command-arch-examples/ -[15]: https://www.debugpoint.com/wp-content/uploads/2022/08/ame-terminal-command-1024x576.jpg -[16]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Performance-1024x576.jpg -[17]: https://www.debugpoint.com/tag/endeavouros -[18]: https://www.debugpoint.com/gnome-arch-linux-install/ -[19]: https://getcryst.al/ diff --git a/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md b/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md deleted file mode 100644 index dd3208e4b3..0000000000 --- a/sources/tech/20221106.0 ⭐️ Guide How to Share A Folder Between UbuntuLinux and Windows.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: "Guide: How to Share A Folder Between Ubuntu/Linux and Windows" -[#]: via: "https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Guide: How to Share A Folder Between Ubuntu/Linux and Windows -====== - -**This beginner’s guide explains how you can quickly share a folder in Ubuntu/Linux.** - -Sharing a folder in Ubuntu/Linux and accessing the same over the network in other OS such as Windows is not that difficult. To perform this, the required packages are not installed by default in Ubuntu. However, you can bring up the install wizard to install the required software automatically to share a folder.  - -This [guide][1]applies to all Ubuntu versions (including [22.04][2], 20.04, 18.04, 19.10 and upcoming – unless there are major changes in how this function is designed). - -### Steps to Share a Folder in Ubuntu - -**Step 1:**Open the file manager and right-click on the folder you want to share. Click on the option “Local Network Share” in the context menu. - -![Local Network Share Option][3] - -**Step 2:**Click on the Share this folder checkbox in the Folder Sharing dialog. - -This would install [Samba][4]packages in your system. Samba is used to share files and printers over the network between Windows and Unix systems. - -![Folder Sharing Option - Install Samba][5] - -**Step 3:**After samba installation, do the following to share a folder or directory. - -- Select the checkbox Share this folder. -- Input a share name. This would be the name you would be seeing from another system, e.g. Windows. Try not to use any name with spaces. -- (Optional) You can control the write permission to the shared folder and allow guest access by checking the corresponding option. -- If you allow guest access, people without credentials can access the shared folder. So be cautious. -- If you want your users to enter their usernames and password, open the terminal and run the below command. - -``` -sudo smbpasswd -a **Username** -``` - -**username**should be a valid user of the respective Ubuntu system. - -You should be all set now to access the folder/directory. - -### How to Access the Shared Folder - -To access the shared folder from Ubuntu/Linux system, you need your system’s IP address/hostname. To do that, open `System Settings -> Wifi -> Get the IP address`. - -![IP Address Settings][6] - -This step may vary if you are running different Linux distribution other than Ubuntu. You may also want to run `ip addr` to get the IP address as below. - -![Finding out IP Address in Linux][7] - -Once you have the address, you can open File Manager in Ubuntu/Linux systems and type below in the address bar. You should change the IP address based on your system. - -You can now see that the shared folder is shown with a tiny shared icon that denotes a network share folder. - -![Share Folder][8] - -To access the shared folder from the **Windows system**, Open Run (Windows Key+R) or open Explorer and enter the below address. You should change the IP address and Folder name based on your system - -``` -\\192.168.43.19\Folder -``` - -You should be able to view the contents of the shared folder and modify it based on permission given. - -### Wrapping Up - -I have shown you how to share a folder from Ubuntu and access Windows systems via IP address. You can also follow the same steps for other Linux distributions. Do let me know in the comment box below if this article helped you. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/guide-how-share-folder-between-ubuntu-linux-windows/ - -作者:[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/category/tutorials/ -[2]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/Local-Network-Share-Option.jpg -[4]: https://en.wikipedia.org/wiki/Samba_(software) -[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Folder-Sharing-Option-Install-Samba-1024x552.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/IP-Address-Settings.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Finding-out-IP-Address-in-Linux.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/Share-Folder-1.jpg diff --git a/sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md b/sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md deleted file mode 100644 index 6639886773..0000000000 --- a/sources/tech/20221108.3 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md +++ /dev/null @@ -1,170 +0,0 @@ -[#]: subject: "How to Install Flatpak Apps in Ubuntu and Other Linux" -[#]: via: "https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Flatpak Apps in Ubuntu and Other Linux -====== - -**A beginner’s guide on how to install Flatpak in Ubuntu and other Linux distributions.** - -### What is Flatpak? - -[Flatpak][1] is the new way of distributing apps across the Linux universe, irrespective of the distribution. This cross-distro application distribution and deployment framework enable developers to Flatpak setup for apps for all major distributions. - -The major hurdles in any Linux app distribution are dependencies, and Flatpak covers that. Flatpak builds bundles the dependencies for the respective apps, and end-users need not worry about it. - -With the growing trends, many app developers are now providing the Flatpak builds along with traditional packages, e.g. *.deb, etc. With a quick setup for your distributions, you can be ready to explore the world of Flatpak apps. All the major Flatpak apps are available on flathub.org. You can search and just click a button, you can install the Flatpak apps. Here’s how to set it up for Ubuntu and other Linux distributions. - -### How to setup Flatpak in Ubuntu - -- For Ubuntu 18.10 (Cosmic Cuttlefish), use the following command to install Flatpak (that includes Ubuntu 22.04 as well). - -``` -sudo apt install flatpak -``` - -If you are using an older version of Ubuntu, use the following repo. - -``` -sudo add-apt-repository ppa:alexlarsson/flatpak -sudo apt update -sudo apt install flatpak -``` - -- The second step is optional if you want to install Flatpak apps via the browser. Enable Ubuntu Software to recognize Flatpak apps and their installations. Run the below commands from the terminal and provide the password when prompted. - -``` -sudo apt install gnome-software-plugin-flatpak -``` - -- Add the Flathub repository where all the Flatpak apps reside. Run the below commands from the terminal. - -``` -flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -``` - -- Reboot. - -### Install in Other Linux Distributions - -Flatpak is available to install almost all possible distributions. Here’s a quick list of commands you can run from the terminal in all the distros. - -| **Linux distro name** | **Instructions or commands to set up Flatpak** | -| :- | :- | -| AlmaLinux | Enabled by default. No action is required. | -| Alpine Linux | Run the following commands:`sudo apk add flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Arch Linux | Run the following commands:`sudo pacman -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| CentOS | Enabled by default. No action is required. | -| Clear Linux | Enabled by default. No action is required. | -| Debian | Run the following commands:`apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Deepin OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| elementary OS | Enabled by default. No action is required. | -| Endeavour OS | Enabled by default. No action is required. | -| Endless OS | Enabled by default. No action is required. | -| Fedora Linux | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak app. | -| Gentoo | Run the following commands:`echo -e 'sys-apps/flatpak ~amd64\nacct-user/flatpak ~amd64\nacct-group/flatpak ~amd64\ndev-util/ostree ~amd64' >> /etc/portage/package.accept_keywords/flatpakemerge sys-apps/flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| KDE Neon | Enabled by default. No action is required. | -| Kubuntu | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``sudo apt install plasma-discover-backend-flatpak``reboot` | -| Linux Mint | Enabled by default. No action is required. | -| Mageia | Run the following commands:`dnf install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Manjaro Linux (Arch-based) | Installed by default since Manjaro 20 and higher.Make sure it is enabled in the below navigation:**Software Manager > Preferences > Flatpak Tab > Enable Flatpak Support**Reboot your system | -| MX Linux | Enabled by default. No action is required. | -| Nix OS | Open `/etc/nixos/configuration.nix` and add the following:`Services.flatpak.enable = true;`And then run the followings:`sudo nixos-rebuild switch``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| openSUSE Leap and Tumbleweed | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak apps. | -| Pop OS | Enabled by default. No action is required. | -| Raspberry Pi OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Red Hat Enterprise Linux (RHEL) | `sudo yum install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Solus | Run the following commands:`sudo eopkg install flatpak xdg-desktop-portal-gtk``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Void Linux | Run the following commands:`sudo xbps-install -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` | -| Zorin OS | Enabled by default. No action is required. | - -Once installation is completed, and reboot is done, you can proceed with installing some cool Flatpak apps via the below steps. - -### How to Install Flatpak Apps in Ubuntu and Other Linux - -There are two ways you can install Flatpak apps. Firstly via the command line, which I recommend. And second is the browser method. - -I recommend using the command line because it is faster and easier. - -#### Using the command line (recommended) - -The sample command to install any Flatpak app is available at the bottom section of the Flathub app page. A sample command is below: - -``` -flatpak install org.gimp.GIMP -``` - -Change the above “org.gimp.GIMP” for your application. Remember, this is case-sensitive. - -#### Using the graphical method via browser - -- Go to [Flathub][3]. -- Search for any apps you want to install. - -![][4] - -- Click install after selecting your desired app. - -![Install Flatpak][5] - -- Click Ok when it prompts you to start the installation via Software. - -![Open Flatpackref via Software][6] - -- The Software will open and wait till the installation finishes. - -### How to update Flatpak after you install them? - -Updating Flatpak is super easy via the terminal. For example, if you want to update the above GIMP package, you need to run the below command. - -``` -flatpak update org.gimp.GIMP -``` - -So, this will update a single package. Replace your package’s name (i.e. Application ID) for your use case. If you don’t know the Application ID, run the command `flatpak list` from the terminal, and you will find it. - -If you want to update ALL the Flatpak packages in your system, simply run the following: - -``` -flatpak update -``` - -### How to uninstall a Flatpak? - -You can uninstall a package using the following command. Make sure to change the Application ID for your use case. You can find out the Application ID from the command `flatpak list`. - -``` -flatpak remove org.gimp.GIMP -``` - -### Closing Notes - -In this tutorial, I have explained how you can easily set up Flatpak and install apps from Flathub. Moreover, Flatpak applications are a great way to install and manage them easily. In my opinion, Flatpak will eventually dominate Snap and AppImage in the future. - -You may want to check out our other articles about [Flatpak][7], which include how to manage permission, various Flatpak commands and more. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ - -作者:[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://flatpak.org/ -[2]: https://flathub.org/repo/flathub.flatpakrepo -[3]: https://flathub.org/apps -[4]: https://www.debugpoint.com/wp-content/uploads/2018/07/Search-in-Flathub.png -[5]: https://www.debugpoint.com/wp-content/uploads/2018/07/Install-Flatpak.png -[6]: https://www.debugpoint.com/wp-content/uploads/2018/07/Open-Flatpackref-via-Software.png -[7]: https://www.debugpoint.com/tag/flatpak diff --git a/sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md b/sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md deleted file mode 100644 index 426507f61e..0000000000 --- a/sources/tech/20221108.4 ⭐️⭐️ How to Delete Background in Image Using GIMP.md +++ /dev/null @@ -1,143 +0,0 @@ -[#]: subject: "How to Delete Background in Image Using GIMP" -[#]: via: "https://www.debugpoint.com/remove-image-background-gimp/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Delete Background in Image Using GIMP -====== - -**Removing the background of an image is super easy if you know how to do it. Here in this tutorial, we will explain five different ways you can use to remove background in Image Using GIMP.** - -![Remove Background Image in GIMP][1] - -There are many ways you can delete any part of an image. That can be the background of the main subject of your image or some sections of it. That includes making the image background transparent and associated steps.  - -[GIMP][2] is the free and open-source closest Photoshop Alternative application which is used by millions every day. And if you are a beginner in GIMP or learning image processing, then there is no harm in learning these steps to make any sections of a complex image transparent, including the background. - -The steps outlined here use basic tools similar to other photo editing software. Hence, what you’re learning in this tutorial can easily be applied to alternative software. - -### 5 Ways to Remove Background in Image Using GIMP - -#### Method 1 – Fuzzy Select  - -The Fuzzy Select tool allows you to select all pixels that are similar to a set of sample pixels within a local area of an image. This works for the images with a colour distinction between foreground and background image foreground.  - -So, if your image background and prominent subject/foreground are of identical colour (like this image below), then this method may not help. Try other methods explained below. But still, you can go ahead and try out all methods if you have spare time. - -- Open your image in GIMP.  -- Right-click on the layer and **add Alpha channel**. This ensures that you can easily delete your layer with transparency. You can verify whether the Alpha channel is already added to your image or not by right-clicking the layer and see if the add Alpha channel is greyed out.  -- Select the Fuzzy Select tool from the toolbox and make sure Anti Aliasing, Feather Edges and Draw Mask are checked. The Draw Mask option will help you visualise the background you want to delete. -- Now click on the section of the image of the background which you want to delete and hold down your click, then drag the mouse to your image to see a mask drawn on your image. -- The colour selection shows the selection that you are choosing. Dragging the mouse below will increase the threshold of your selection, and towards up, it will reduce the threshold of your selection.  -- Once you are satisfied with your selection, **release the mouse and press delete** from your keyboard to delete the selection. - -You can repeat this process as much as you want to eliminate the background of your image entirely. - -![Method 1 - Fuzzy Select][3] - -![After Method 1 is applied][4] - -#### Method 2 – Select by colour - -In the next method, we will use the select by colour tool, which selects the entire background having the same colour pixels. This method works better for vector images, which typically have uniform colour distribution. This method might not work well for real-world images with too many colour gradients or sharp edges. - -- Select the “**select by colour**” tool from the toolbox. Make sure Anti Aliasing and **Draw Mask**are enabled from the option. -- Ensure to enable the Feather Edges option if you are working with a complex vector image. -- Now, click on the background section of your image having the same colour and **drag the mouse down or up** to increase or decrease the threshold.  -- Once you are happy with the selection, **let go of the mouse hold**. Press **delete** from your keyboard.  - -Likewise, you can repeat the steps multiple times to eliminate the background entirely. - -![Method 2 - Select by Color][5] - -#### Method 3 – Paths - -Another way of removing the background of an image is using the **Paths** tool. This is more of a **manual** way of deleting the background of an image. - -This method gives you the **most accurate results** among all the methods described here. But it takes a bit of time and patience to do it.  - -- Select the **Path tool** from the toolbox.  -- Begin clicking around the image’s main subject to place individual points outlining the subject.  -- You can curve the line by dragging down the middle of the line and moving the left and right handle towards the centre of the line.  -- To continue drawing, make sure you click on the most recent point and continue.  -- Once done, you can **close the outline by holding CTRL and clicking on the first point** placed. -- Press **Enter** to create a selection using the outline. -- From the menu, Select **Invert.** This will select the background of the image. -- And press **delete** to delete the background.  - -![Method 3 Path Tool][6] - -#### Method 4 – Layer Mask - -A more **advanced** way to delete the background is to use a layer mask. This is useful for those photographs where you have fine details such as hairs, furs, grass etc. Those fine details are difficult to aele6 manually using the above methods.  - -But there is a catch. This method only works best where there is a high level of contrast of colour present between the main subject of the image and its background.  - -- Right-click on the layer and **create a duplicate layer**.  -- While the duplicate Layer is selected, Go to **Color > Saturation**. Change the scale to all the way to zero. Click ok. -- Go to Color > Curves and manually adjust the top and bottom nodes so that your main subject of the image fills with more black and the background is white.  -- From the menu, select **Colors > invert**. Then select**Edit > Copy Visible**. -- Hide the duplicate layer by clicking on the little eye icon on the right toolbox. -- Right-click on the original layer and click Add Layer Mask. Click Add. -- Paste the copied visible image using Edit > Paste. -- Click on green icon at the bottom of the layers window to merge the pasted layer to the layer mask.  -- At this stage, you should notice that the black area remains visible, and the white area is transparent.  - -To fine-tune the sections, you can use a white colour brush tool and fill those sections which are part of your main subject but become transparent in the process.  - -And there you have it. - -![Method 4 - Curves][7] - -![Method 4 - Layer Mask][8] - -#### Method 5 – Foreground Select - -The final method we are going to explain is the foreground select method. This method is also a good choice as well for complex images having hairs, grass etc. - -- To get started, select the **Foreground Select**tool from the toolbox and do a simple outline of the subject. It need not be perfect, like below. It’s more like an outline covering the entire subject.  -- Once you are done, join the select point to the first point and press enter to select the subject.  -- This will create a dark blue area over the background and a light blue area in the foreground.  -- Now select the white foreground colour and manually brush the subject without going too much towards the edges.  -- Once you are done, select the preview to see how it looks. Based on the colour profile of your image, this preview step might take a couple of seconds to process.  -- If you are happy with the preview, click select. And then press enter to make this a selection. -- Invert the selection using **Select > Invert**. -- Press delete from the keyboard.  -- And you have your image ready without the background portion. - -![Method 5 - Foreground select tool to delete background of image in GIMP][9] - -### Final Notes - -So, that’s about it with the five methods which we just explained to remove background from image(s) and photographs using the free and open-source tool GIMP. Let me know if this tutorial helped you understand the steps and get the desired result. - -Used Photo in this article is by [Maryia Plashchynskaya][10] from [Pexels][11] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/remove-image-background-gimp/ - -作者:[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/2021/11/Remove-Background-Image-in-GIMP.jpg -[2]: https://www.gimp.org/ -[3]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-1-Fuzzy-Select.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2021/11/After-Method-1-is-applied.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-2-Select-by-Color.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-3-Path-Tool.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-4-Curves.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-4-Layer-Mask.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2021/11/Method-5-Foreground-select-tool.jpg -[10]: https://www.pexels.com/@maryiaplashchynskaya?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels -[11]: https://www.pexels.com/photo/fashion-people-woman-wristwatch-8358677/?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels From d2f105de11e3861a24e54292aa9e84677796e2cd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 10 Nov 2022 00:22:49 +0800 Subject: [PATCH 1939/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F/?= =?UTF-8?q?=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lkxed --- ...lication Firewall for Privacy-Focused Users.md | 123 --------- ....7 Fixes Two High-CVEs with Buffer Overflow.md | 61 ----- ...en-Source Database to Enhance Observability.md | 95 ------- ...pen Source Developer Platform, Obtains $25M.md | 44 ---- ...️ Fedora 37 Top New Features and Release Wiki.md | 140 ---------- ...ss OS – Desktop Linux Done Right for the Masses.md | 202 -------------- ...️ Fedora 37 Top New Features and Release Wiki.md | 142 ---------- ...ize GNOME 40 Desktop to Look Like macOS [Guide].md | 247 ------------------ ...️ Customize GNOME 42 with A Polished Look.md | 142 ---------- ...E in Ubuntu 20.04 with this Productive Look.md | 167 ------------ ... PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md | 174 ------------ ...t 5 Alternatives to Microsoft Office [Compared].md | 178 ------------- ...️ Top 10 Features of Linux Mint 21 “Vanessa”.md | 188 ------------- ... How to Enable ‘Dark Mode’ in LibreOffice.md | 99 ------- 14 files changed, 2002 deletions(-) delete mode 100644 sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md delete mode 100644 sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md delete mode 100644 sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md delete mode 100644 sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md delete mode 100644 sources/tech/20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md delete mode 100644 sources/tech/20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md delete mode 100644 sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md delete mode 100644 sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md delete mode 100644 sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md delete mode 100644 sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md delete mode 100644 sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md delete mode 100644 sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md delete mode 100644 sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md delete mode 100644 sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md diff --git a/sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md b/sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md deleted file mode 100644 index cf0854927f..0000000000 --- a/sources/news/20221031.4 ⭐️ Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users" -[#]: via: "https://news.itsfoss.com/portmaster-1-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users -====== - -Portmaster is an all-in-one open-source privacy tool that you probably need. Give it a try! - -![Portmaster 1.0 Release Marks it as a Solid Open-Source Application Firewall for Privacy-Focused Users][1] - -Portmaster by [Safing][2] is a free and open-source application firewall that aims to automate the process of protecting the privacy of its users. - -**It allows you to monitor network activity, add custom connection rules for applications, and more.** - -We tested it during the alpha stage, and came to the conclusion that it had good potential to act as a viable alternative to [GlassWire][3]. Of course, it may not be a replacement, but it can be one in the near future: - -With the release of Portmaster 1.0, we can recommend everyone to give it a try. - -> 💡Portmaster 1.0 is a stable release suitable for every user. - -### 🆕 Portmaster 1.0: What's New? - -![portmaster 1.0][4] - -Considering this is Portmaster's first stable release, there could be room for improvement. - -However, some of the features that it brings with it include: - -- **Easy navigation to monitor app network connections** -- **Secure DNS by default** -- **Automatic blocking of trackers & malware** - -#### Automatic Blocking Of Trackers & Malware - -![portmaster 1.0 filter lists][5] - -Portmaster lets you automatically block various trackers and malware by using well-known filter lists from the likes of [AdAway][6], [abuse.ch][7], [AdGuard][8], and a few of their curated lists. - -#### Side-Dash Menu - -![portmaster 1.0 side dash menu][9] - -The presence of sidebar menu in Portmaster makes things easy, meaning it acts as a quick switcher between apps and settings. - -![portmaster side-dash][10] - -It also shows key information regarding apps that are using the network. - -Additionally, suppose you are using their [paid SPN service][11] (or Portmaster Unlimited). In that case, you can use the Side-Dash to see which countries each app connects to, alongside the number of identities in use. - -![portmaster 1.0 country identity details][12] - -#### Other Features - -![allow or block connections][13] - -In addition to the key highlights, it also gives you some powerful abilities that include: - -- **Choose your favorite DNS-over-TLS provider, like Cloudflare, Quad9, AdGuard, etc., to encrypt DNS requests.** -- **Allow/Block specific websites or applications.** -- **Specify if you do not want your apps to connect to specific countries.** -- **Block all p2p connections.** - -### 📥 Download Portmaster 1.0 - -Portmaster is currently only available for Windows and Linux, with no news on the release of a macOS version. - -They plan to support mobile platforms in the future as well. - -You can visit its official [downloads page][14] to get started for Linux (.deb/.rpm packages) and Windows. - -Explore more about the project on its [GitHub page][15]. - -[Portmaster 1.0][14] - -### 💭 My Thoughts - -Portmaster aims to succeed in a space where GlassWire is a very well-known name. It is easy to use and offers an intuitive experience. - -**But, GlassWire is not open-source and does not have a client for Linux.** - -With further refinements, I think it would be an impressive addition to every privacy-conscious computer user. - -Of course, a free and open-source alternative to any proprietary tool is a good thing, as it enables more users to try it out. - -And, Portmaster is something that helps you monitor your network connections and automate your privacy protections, I think you should take it for a spin! 😊 - -💬 Is Portmaster a good application firewall for your use-case? What do you think about it? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/portmaster-1-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/portmaster-1-0-release.png -[2]: https://safing.io/ -[3]: https://www.glasswire.com/ -[4]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0.png -[5]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Filter_Lists.png -[6]: https://adaway.org/ -[7]: https://abuse.ch/ -[8]: https://adguard.com/ -[9]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Side_Dash.png -[10]: https://news.itsfoss.com/content/images/2022/10/portmaster-1-0-screenshot.png -[11]: https://safing.io/spn/ -[12]: https://news.itsfoss.com/content/images/2022/10/Portmaster_1.0_Country_Details.png -[13]: https://news.itsfoss.com/content/images/2022/10/manually-allow-ord-block-connections.png -[14]: https://safing.io/download/ -[15]: https://github.com/safing/portmaster/ diff --git a/sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md b/sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md deleted file mode 100644 index cafd073efe..0000000000 --- a/sources/news/20221101.12 ⭐️ OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow.md +++ /dev/null @@ -1,61 +0,0 @@ -[#]: subject: "OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow" -[#]: via: "https://debugpointnews.com/openssl-3-0-7/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -OpenSSL 3.0.7 Fixes Two High-CVEs with Buffer Overflow -====== - -![][1] - -**OpenSSL 3.0.7, released today, fixes two critical security issues that have caused panic since last week.** - -### OpenSSL 3.0.7 release - -The highly anticipated OpenSSL 3.0.7 is now released, fixing two high-severity CVEs. All the major Linux distributions across desktops and, most importantly, server admins have been waiting for this fix since it was reported last week by the OpenSSL team. Due to the criticality of this package, some distro releases got delayed (such as [Fedora 37][2]), and probably some patching activities across the industry. - -Both the high severity fixes are due to buffer overrun, which impacts the entire OpenSSL 3.0.0 series (i.e. from 3.0.0 to 3.0.6). Alarming, it may sound, but these two vulnerabilities have been out in the wild for almost a year since the 3.0.0 release in 2021. - -The first [CVE-2022-3786][3] triggers when a malicious email address with arbitrary payload with character “.” (decimal 46). The second vulnerability, CVE-2022-3602, also deals with another payload with the same email address in name constraints, checking for X.509 certificates. - -### Distro Patching - -As of publishing this, major distros (Debian, Ubuntu, Fedora, RedHat) are yet to update their OpenSSL package with version 3.0.7. - -So, as soon as it arrives, make sure you update your desktops and servers immediately. This is critical for those who deal with TLS-based authentication over remote connections to various servers. - -Keep a watch on the below pages for updated packages for major Linux distributions. - -- [Ubuntu][4] (Jammy) -- [Fedora][5] -- [Debian][6] (Bookworm, testing) - -Arch Linux folks are superfast, it seems. It’s already in the[staging repo][7]within two hours of the release! - -Via [OpenSSL release notes][8]. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/openssl-3-0-7/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/11/openssl-head-816x459.jpg -[2]: https://debugpointnews.com/fedora-37-release-delay/ -[3]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-3602 -[4]: https://packages.ubuntu.com/jammy/openssl -[5]: https://packages.fedoraproject.org/pkgs/openssl/openssl/ -[6]: https://packages.debian.org/bookworm/openssl -[7]: https://archlinux.org/packages/?sort=&q=openssl&maintainer=&flagged= -[8]: https://mta.openssl.org/pipermail/openssl-announce/2022-November/000241.html diff --git a/sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md b/sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md deleted file mode 100644 index 8a36782a27..0000000000 --- a/sources/news/20221103.5 ⭐️ Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: "Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability" -[#]: via: "https://news.itsfoss.com/grafana-phlare/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability -====== - -Grafana Phlare aims to be a scalable, durable, cheap, and open-source database for continuous profiling data. - -![Grafana Phlare is a New Scalable Open-Source Database to Enhance Observability][1] - -[Grafana][2] is a popular open-source data visualization tool that supports various object storage and cloud services. - -To improve on what they offer, Grafana has announced a **new open-source database for continuous profiling data** that helps enhance the monitoring of servers (or your application), making life easier for performance engineers and enterprises. - -### Open Source Database for Continuous Profiling - -![Introducing Grafana Phlare][3] - -Credits: Grafana Labs - -> 💡Continuous Profiling is a dynamic method of analyzing key performance metrics of a server, such as CPU utilization, memory usage, and more, at any period of time. - -Grafana Phlare is a highly scalable database that aims to provide users with a long-term storage solution for continuous profiling data. - -The core features involve: - -- **Easy to install** -- **Horizontal scalability** -- **High availability** -- **Cheap, durable profile storage** -- **Natively multi-tenant (enabling independent teams to share the same database)** - -You would say that: there are already a few similar open-source projects. And you wouldn't be wrong. - -But, the team behind Phlare mentioned that those tools were not reliable or scalable enough to meet Grafana Labs' continuous profiling needs. - -> So we decided to get to work creating a database for continuous profiling telemetry, based on the design principles that have made our other open source observability backends, Loki, Tempo, and Mimir, so successful: horizontally scalable architecture and use of object storage.- Cyril Tovena, Software Engineer at Grafana - -As for the technical tidbits of Phlare, it uses object storage to store profiling data and supports various object storage services such as[Amazon S3][4], [Google Cloud Storage][5], [OpenStack Swift][6], and more. - -Also, Cyril mentions that Grafana Phlare is incredibly easy to install: - -> It’s easy to install with just one binary and no additional dependencies, just like [Prometheus][7]. - -![grafana phlare][8] - -Credits: Grafana Labs - -**Furthermore**, it can natively integrate with Grafana to show users a detailed view of the whole stack and includes various observability signals such as metrics, logs, and traces. - -To complement Phlare, the team also added a new Flame graph panel to better visualize system resources data via various data sources. - -![grafana phlare flame graph panel][9] - -Credits: Grafana Labs - -**As a bonus**, Grafana also announced a data source plugin for another open-source continuous profiler called '[Parca][10]'. - -### 👨‍💻 Try Grafana Phlare - -Grafana Phlare is made available as a single binary and can be procured from the official [GitHub repository][11]. - -You may want to review its [official documentation][12] to learn more about it. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/grafana-phlare/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/grafana-phlare-opensource-scalable-db.png -[2]: https://grafana.com/grafana/ -[3]: https://player.vimeo.com/video/766320003?h=8c877d70d4&app_id=122963 -[4]: https://aws.amazon.com/s3/ -[5]: https://cloud.google.com/storage -[6]: https://github.com/openstack/swift -[7]: https://grafana.com/oss/prometheus/?pg=blog&plcmt=body-txt -[8]: https://news.itsfoss.com/content/images/2022/11/Grafana-2.png -[9]: https://news.itsfoss.com/content/images/2022/11/Grafana.png -[10]: https://www.parca.dev -[11]: https://github.com/grafana/phlare -[12]: https://grafana.com/docs/phlare/latest/ diff --git a/sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md b/sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md deleted file mode 100644 index f9bbd27d95..0000000000 --- a/sources/news/20221104.5 ⭐️ Gitpod, An Open Source Developer Platform, Obtains $25M.md +++ /dev/null @@ -1,44 +0,0 @@ -[#]: subject: "Gitpod, An Open Source Developer Platform, Obtains $25M" -[#]: via: "https://www.opensourceforu.com/2022/11/gitpod-an-open-source-developer-platform-obtains-25m/" -[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Gitpod, An Open Source Developer Platform, Obtains $25M -====== - -![open srs2][1] - -The new category created by the corporation is intended to increase productivity among the most expensive and in-demand workers for businesses: developers. - -Gitpod GmbH, a start-up open source developer platform, revealed today that it has raised $25 million in fresh funding to establish a new category it calls cloud development environments. - -The Series A investment was led by Tom Preston-Werner, the creator and former CEO of GitHub. Other notable individual investors included General Catalyst, Crane Venture Partners, Vertex Ventures US, Speedinvest, Pebblebed, GTMfund, and MongoDB Ventures. According to information from Crunchbase, Gitpod has now raised $14 million in total, including the fresh capital. - -Gitpod, a 2019 startup, provides an online integrated development environment that can be opened from any GitHub page in a web browser. The business claims that Gitpod offers a fully functional programming environment with support for desktop or browser-based VS Code or any JetBrains integrated development environment, enabling developers to get started coding in only a few seconds. The exact project that is being updated is automatically configured in a separate cloud-based Linux container. - -To reduce the hassle of manually setting up and maintaining a development environment, there is a service called Gitpod. According to the business, developers can work more rapidly using Gitpod since it gives them access to all the tools they need to upgrade or build new apps more quickly. - -Gitpod’s platform was being used by more than 350,000 developers as of its most recent investment round in April 2021. Eighteen months later, there are now 750,000 people. Gitpod is used by developer teams at notable organisations like Google LLC, GitLab Inc., DataStax Inc., and Amazon Web Services Inc. - -According to Gitpod, clients report losing up to five hours of work time per week due to unreliable development environments; CDEs are designed to fix this issue. - -The organisation guarantees that they will be instantaneously accessible and offer limitless secure development settings. A workspace plugin system, application programming interfaces, and enhanced extensibility are on the development agenda. With preview environments and new collaborative procedures, CDEs are also believed to open up completely new options for team members to collaborate more closely. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/11/gitpod-an-open-source-developer-platform-obtains-25m/ - -作者:[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/11/open-srs2-696x444.png diff --git a/sources/tech/20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md b/sources/tech/20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md deleted file mode 100644 index 17fa981d7f..0000000000 --- a/sources/tech/20221019.0 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "Fedora 37: Top New Features and Release Wiki" -[#]: via: "https://www.debugpoint.com/fedora-37/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fedora 37: Top New Features and Release Wiki -====== - -**An article about Fedora 37 and its new features, release details and everything you need to know.** - -Fedora 37 development is wrapped up, and the BETA is [now out][1]. Hence the features and packages are final at this stage. - -In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule. - -- The beta was out on September 13, 2022. -- **Final Fedora 37 is planned for release on October 25, 2022.** - -![Fedora 37 Workstation with GNOME 43][2] - -### Fedora 37: Top New Features - -#### Kernel - -**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][3]. - -The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time. - -**Next** up, the desktop environments are updated in this release. - -#### Desktop Environment - -Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as: - -- [Revamped quick settings][4] with pill-buttons -- Files (nautilus) 43 with GTK4 and libadwaita port -- Files with rubberband, emblems, responsive sidebar-like features -- [Updated GNOME Web with WebExtension API support][5] - -And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][6] to learn more. - -Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include: - -- An updated overview screen. -- Dynamic wallpaper for dark and light themes. -- Animated wallpaper support -- Multi-button mouse support -- Updated KDE Framework and applications. - -…and much more which you can read in detail in my [KDE Plasma 5.26 feature guide][7]. - -Since the lightweight desktop LXQt gets a stable update, 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition. - -In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.26**for the respective Fedora flavours. - -Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are. - -#### System wide changes - -The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports. - -Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour.  - -As I [reported earlier][8], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release. - -Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection.  - -Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features. - -Following the tradition, this release also features a [brand new wallpaper][9] with both night and day versions. I must say it looks awesome (see the above desktop image). - -Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated. - -The toolchain, apps and programming stack are updated as follows: - -- Glibc 2.36 and Binutils 2.38 -- Node.js 18.x -- Perl 5.36 -- Python 3.11 - -### Summary of features in Fedora 37 - -So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features: - -- Linux Kernel 5.19 -- GNOME 43 -- KDE Plasma 5.26 -- Xfce 4.16 -- MATE 1.24 -- LXQt 1.1.0 -- A preview image of the new web-based installer -- The SDDM display manager defaults to Wayland (in KDE Plasma and others) -- Official Raspberry Pi 4 support -- Fedora Core OS becomes the official flavour -- Key packages dropping 32-bit support -- And associated toolchain and programming language updates. - -If you have spare time, you can[give it a spin][10] or test drive. Just be cautious that it is still BETA. - -Also, If you are daring enough, you can upgrade to this release with **caution** because, y’know it’s BETA. The commands below will help you to do that. - -``` -sudo dnf install dnf-plugin-system-upgrade -sudo dnf system-upgrade download --ref --releasever=37 -``` - -For Kinoite, Silverblue and other immutable versions, use: - -``` -rpm-ostree rebase fedora:fedora/37/x86_64/silverblue -``` - -**So, what’s your favourite feature of this release? Let me know in the comment section.** - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/fedora-37/ - -作者:[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://debugpointnews.com/fedora-37-beta/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg -[3]: https://www.debugpoint.com/linux-kernel-5-19/ -[4]: https://www.debugpoint.com/gnome-43-quick-settings/ -[5]: https://www.debugpoint.com/gnome-web-43-tab-view/ -[6]: https://www.debugpoint.com/gnome-43/ -[7]: https://www.debugpoint.com/kde-plasma-5-26/ -[8]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ -[9]: https://debugpointnews.com/fedora-37-wallpaper/ -[10]: https://getfedora.org/workstation/download/ diff --git a/sources/tech/20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md b/sources/tech/20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md deleted file mode 100644 index 283805a302..0000000000 --- a/sources/tech/20221023.1 ⭐️⭐️ Endless OS – Desktop Linux Done Right for the Masses.md +++ /dev/null @@ -1,202 +0,0 @@ -[#]: subject: "Endless OS – Desktop Linux Done Right for the Masses" -[#]: via: "https://www.debugpoint.com/endless-os-review-2021/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Endless OS – Desktop Linux Done Right for the Masses -====== - -**We review the popular Endless OS as Linux Desktop with the new features and updates of the latest version 4.0.** - -![Endless OS Desktop version 4.0][1] - -Endless OS is a [OSTree based][2] free and open-source[Linux Distribution][3]. This Linux distribution is packaged from Debian/Ubuntu, but not directly based on it. OSTree is an atomic upgrade system for Linux-based OSes. This is a unique way to provide package updates to Linux-distribution, where OSTree packages everything in a server and then replicates to the client. - -The main advantage is that your underlying Linux operating system always remain intact, and it is read-only. OSTree only operates in user space. - -In that sense, Endless OS never breaks, and it remains fresh as you install for the first time. Today, only very few Linux Distribution are based on OSTree technology – such as Fedora SIlverblue and Fedora Kinoite. - -That said, let take a deep dive on the Endless OS as a whole and check out the updates to the new version. - -### Endless OS Review - -#### Version 4.0 Updates - -As of writing this post, Endless OS latest version is 4.0 which has been released on Nov 22, 2021. This release brings better app grid switching with indicators, switch user option and a Long term support model. With this new support model, this version 4.0 will continue to receive update even after Endless OS 5.0 released. You can learn more about the updates in this [post][4]. - -#### Downloading Endless OS - -Before I go into the installer, I would like to spend a few words on the installer/.ISO of this distribution. Endless OS brings two separate installers. An .ISO file specifically designed for Windows system to install as dual-boot. This installer is an EXE file which you can download in Windows machine and start the installation! This something unique I found. - -With all the Windows hate aside, this actually helps to adopt this Linux distribution far more easily for the average user. An average user may not even know what a partition or a GRUB is. So, in those situations, it downloads, does the partition and installs it without any complex user input. This is really impressive. You can learn more about the Windows installation [here][5]. - -Other .ISO images are dedicated to – - -- Basic desktop installer with language selection -- A specially designed .ISO for virtual machine -- .ISO images for ARM hardware such as Raspberry Pi, Pinebook Pro etc. - -Go ahead and open the below link and get your .ISO copy. Remember, the full installer ISO files are much larger > 10 GB. So, if you are planning to test, use the basic installer. - -![Download options of Endless OS][6] - -[download Endless OS][7] - -#### Unique Installation of Endless OS - -Apart from the Windows installation as described above, you need to know a couple of things. The Endless OS can not be installed at the moment as dual boot with other Linux distributions. What? Yes. - -As per the information I found, the .ISO is not designed to handle other Linux distribution as dual boot. However, you can try it in virtual machine with any Linux host OS. - -The basic installer gives you two options. Try in LIVE media or reformat the entire disk and install. Yes, entire disk. So be very careful if you’re trying to install in actual hardware. - -During my test, I had to install it in a virtual machine ([virt-manager][8]) because I don’t want to reformat my entire SSD. - -The installation went smooth. No error whatsoever. However, it took a little longer (probably 10 to 15 minutes extra) than other Linux distribution installation in same hardware. - -![Two options to Install and Try Endless OS][9] - -![This OS requires entire disk][10] - -#### First Login and Setup - -After the successful installation, you get to choose Language, user account, privacy options. These are standard GNOME options which we see in Fedora Workstation GNOME Edition. One of the important item is the terms of use. As this Linux is targeted for mass deployment for schools, non-profits or labs – you might want to go through the terms. - -User creation dialog have an option to set up parental control for the user being created, which is neat. - -#### How the Endless OS with GNOME desktop looks - -When you first boot up, you see a desktop with icons and a search bar. - -This is the application list menu, which is the default desktop screen. You can search any items in your desktop and launch them via the search bar. The search bar also gives you the option to directly search Google via Chromium, which is the default browser. - -This default desktop screen contains preloaded applications and well organized app folders for native GNOME apps. - -The bottom panel is awesome, really. It is well optimized in terms of looks and width. Not too narrow or wide. In the far left, you have Endless OS icon, which is a toggle for show applications and show desktop options. - -Then, you have the favorites as icons. The favorites icons have the app indicator notifying that it is open. If some app is not marked as favorites, they also show up in the bottom panel when opened with app indicator. This is super neat. - -To the right, the system tray is classified intro three sections. First one gives you the volume controls, network and Wi-Fi settings. In the middle you have date, time and calendar on mouse-hover. And at the extreme right you have the options to log out, switch user, power off and other information. All these menu comes up when you mouse-hover into it. You do not need to click them. - -#### Hot Corner and Workspace - -Endless OS is based on GNOME 3.38 version. Not GNOME. Hence, the workspace design is kind of unique. To the extreme right bottom – there is a hot corner. When you click on that, it brings up the current workspace with a list of running applications. When you mouse hover, you can close them or select them without leaving the view. - -#### Things that I feel Endless OS done right with GNOME - -If you have used GNOME in Ubuntu or Fedora, and then experienced it in Endless OS, you might find some UI tweaks works out of the box. You do not need to set up Extensions or change settings. Here are a couple of them I found that I wish GNOME with Fedora or Ubuntu would feature by default. - -- Clicking on desktop empty section shows the desktop by minimizing all open applications. And pressing ALT+TAB brings up the open app windows again. You can’t imagine how comfortable this behavior is. -- The show desktop and app toggle at the bottom right of the panel and its default mapping with Super key. This just works. -- All windows have Minimize, Maximize, and Close icons at the top right by default. You do not need additional tweaks to get it working. -- Hot corner implementation at the far right. -- Panel design in terms of width, app icons with app indicators. They are all default implementations. -- System tray menu popup in mouse over by default. You do not need an extra click to open it up. This is such a breathing while using the mouse. - -Here’s a quick video showing all the above features. - -#### Unique Features that make it perfect for non-technical users - -Perhaps the unique selling point of this Linux desktop is minimal user intervention during installation + post-install tweaks. And you can start using this desktop without internet connection right away. A perfect desktop for those places where internet is not always available. - -Think about a school at a remove place where Internet connectivity is costly or not available. But you need to have a stable, free and easy-to-use Linux Desktop for kids to learn the computing. You can burn a CD/DVD or create USB with language specific .ISO and deploy it offline. - -And post-installation does not require any additional settings at all. All the options are well defaulted and just works. - -#### Software and Applications - -One point to note that, Endless OS use Flatpak to deploy applications. There is no way to install other than Flatpak. For example, you can not use apt or apt-get at all because the file system is read only. - -That’s why, the .ISO itself is larger and contains all required applications, language packs preloaded. Ideal for schools, labs and other forms of deployments. - -However, if you need additional applications, you can install it using the customized App Center for GNOME with internet connection. - -The App Center have curated categories at the left which shows the Flatpak applications. The App center is configured to fetch application metadata directly from Flathub. - -![App Center in Endless OS][11] - -Oh, this OS supports NVIDIA cards out-of-the-box with either the proprietary driver for supported cards or nouveau for older ones. - -#### Help Center - -Think about a situation, where a student is learning computer for the first time using Endless OS. If the person want to change the login screen photo, how does he/she do? - -Here comes the great built-in help center of this OS which I feel one of the important feature. All the person need to do is type something in the desktop search bar and pull up help. - -This is so helpful, isn’t it? - -![Trying Help in Endless OS-1][12] - -![Trying Help in Endless OS-2][13] - -#### How about the performance? - -I have only managed to install it in a virtual machine. So, it has comfortable response time while using the desktop. The animations and other gestures are instant. I kept it running for more than 15 hours in a virtual machine. - -After 15 hours, it was consuming around 1 to 2% CPU and 1 GB of memory. Most of the CPU is consumed by gnome-shell, followed by Xorg. I am not sure why gnome-shell was consuming so much, might be memory leak bug. Not sure though. - -![Performance of Endless OS][14] - -#### What about disk space? - -As this Linux distribution plans to be a self-sufficient distro without internet, the installation size is a little larger compared to other distributions such as Ubuntu or Fedora. A default virtual machine installation takes around ~11 GB of disk space. - -#### Is it a perfect Linux Distribution? Well, not really. - -I try many Linux distributions and desktops for this blog and my work. Very few are perfect and ready to use just after installation. I mean, you don’t need to go over “10 things to do after installing **” with this Linux distribution. - -But, some minor improvements are welcome from the team in the future. First item I feel, an .ISO which is dedicated to be installed side-by-side with Ubuntu, fedora and other Linux. This is really needed. - -Probably some support for Snap packages in the future. - -And the final drawback might be the availability of applications only as Flatpak. Not every app have an official flatpak version today. That limits its capability to some extent, but not more. - -#### If things go wrong – how to get help and Support? - -There’s a great online active community of Endless OS where you get support from its creators. And the documentation is also very impressive which contains all necessary details ranging from installation to usage. You can visit the community and documentation using the below links. - -- [https://support.endlessos.org/en/home][15] - -- [https://community.endlessos.com/][16] - -### Closing Notes - -Endless OS is one of those few Linux distributions which I felt really well thought of and designed. It is perfect for schools, labs, and remote/offline situations. And perfectly designed to be used by anyone without prior knowledge of much computing, even experience of Windows. Even the Windows users would feel comfortable using this modified GNOME desktop. That said, I am hoping that the team should bring up options to install it alongside other Linux distributions. Then it might be a daily driver distribution for many Linux users and get more attention it deserves. - -If you want only one Linux operating system in your machine which is super stable and run for years, then go ahead and try this distribution. You will be amazed by how much time you save without worrying about terminal, commands, updates/upgrades and sudden package dependency surprises. - -To wrap up this Endless OS review, what you think about Endless OS? Is it a perfect distro? Let me know in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/endless-os-review-2021/ - -作者:[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/2021/11/Endless-OS-Desktop-version-4.0-1024x582.jpg -[2]: https://ostree.readthedocs.io/en/stable/ -[3]: https://www.debugpoint.com/category/distributions -[4]: https://support.endlessos.org/en/endless-os/release-notes/4-0 -[5]: https://support.endlessos.org/en/installation/windows-installer/dual-boot -[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Download-options-of-Endless-OS.jpg -[7]: https://endlessos.com/download/ -[8]: https://www.debugpoint.com/2020/11/virt-manager/ -[9]: https://www.debugpoint.com/wp-content/uploads/2021/11/Two-options-to-Install-and-Try-Endless-OS-1024x734.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2021/11/This-OS-requires-entire-disk.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2021/11/App-Center-in-Endless-OS-1024x625.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2021/11/Trying-Help-in-Endless-OS-1-1024x576.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2021/11/Trying-Help-in-Endless-OS-2.jpg -[14]: https://www.debugpoint.com/wp-content/uploads/2021/11/Performance-of-Endless-OS.jpg -[15]: https://support.endlessos.org/en/home -[16]: https://community.endlessos.com/ diff --git a/sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md b/sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md deleted file mode 100644 index 8657b9fc85..0000000000 --- a/sources/tech/20221025.2 ⭐️⭐️ Fedora 37 Top New Features and Release Wiki.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "Fedora 37: Top New Features and Release Wiki" -[#]: via: "https://www.debugpoint.com/fedora-37/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fedora 37: Top New Features and Release Wiki -====== - -**An article about Fedora 37 and its new features, release details and everything you need to know.** - -Fedora 37 development is wrapped up, and the BETA is [now out][1]. Hence the features and packages are final at this stage. - -In this usual feature guide page, I have summarised the essential features you should know about Fedora 37 and get an idea of what to expect. But before that, here’s a tentative schedule. - -- The beta was out on September 13, 2022. -- **Final Fedora 37 is planned for release on November 15, 2022.** - -![Fedora 37 Workstation with GNOME 43][2] - -Fedora 37 Workstation with GNOME 43 - -### Fedora 37: Top New Features - -#### Kernel - -**First** up are the critical items that make the core. Fedora 37 is powered by **Linux Kernel 5.19,** the latest mainline Kernel available now. Linux Kernel 5.19 brings essential features such as a fix for Ratbleed vulnerability, ARM support, Apple M1 NVMe SSD controller support and many such features, which you can read in our [Kernel feature guide][3]. - -The advantage of using the latest Kernel is that you can be assured that you are using the latest and greatest hardware support available at this moment in time. - -**Next** up, the desktop environments are updated in this release. - -#### Desktop Environment - -Fedora 37 is the first distribution which brings the stunning **GNOME 43** desktop, which brings some excellent features such as: - -- [Revamped quick settings][4] with pill-buttons -- Files (nautilus) 43 with GTK4 and libadwaita port -- Files with rubberband, emblems, responsive sidebar-like features -- [Updated GNOME Web with WebExtension API support][5] - -And many features you have been waiting for for years. Do check out my [GNOME 43 feature guide][6] to learn more. - -Fedora 37 brings **KDE Plasma 5.26** desktop environment with tons of new features, performance improvements and bug fixes. The most noteworthy features of the KDE Plasma desktop include: - -- An updated overview screen. -- Dynamic wallpaper for dark and light themes. -- Animated wallpaper support -- Multi-button mouse support -- Updated KDE Framework and applications. - -…and much more which you can read in detail in my [KDE Plasma 5.26 feature guide][7]. - -Since the lightweight desktop LXQt gets a stable update, 1.1.0, it arrives in Fedora 37. **LXQt 1.1.0** brings a default colour palette for dark themes for a uniform look, two variants (simple and compact) of the application menu and re-arranged GTK settings. Furthermore, LXQt 1.1.0 also starts the initial work for the Qt 6.0 porting of desktop components. All these bug fixes and enhancements arrive in the Fedora LXQt edition. - -In addition, other primary desktop flavours remain at their current releases since no significant new updates arrive, i.e. **Xfce 4.16 and MATE 1.26**for the respective Fedora flavours. - -Let’s see what the system-wide changes in this release that impacts all the Fedora flavours are. - -#### System wide changes - -The most significant change is the official support for **Raspberry Pi 4** boards. Thanks to the works over the years, you can now enjoy Fedora 37 on your favourite Pi boards with out-of-the-box supports. - -Fedora Linux is always a pioneer in advancing technology and adopting the latest features before any other distro. With that in mind, the **SDDM display manager now comes with default Wayland** in KDE Plasma (and Kinoite) and different flavours. This completes the Wayland transition from the Fedora distro aspect for this flavour.  - -As I [reported earlier][8], Fedora Linux 37 plans to provide us with a preview image of a **Web-based installer** for Anaconda. It might not be available immediately following the release. But it should be within a few days post-release. - -Other noteworthy features include changing the **default hostname from “fedora” to “localhost”** to mitigate some third-party system configuration detection.  - -Other than that, the **Fedora Core OS** is made to be an official Fedora edition and now stands together with Server, IoT and cloud editions for better discovery and adoption. Fedora Core OS minimal footprint OS is primarily used for container workloads and brings auto updates and additional features. - -Following the tradition, this release also features a [brand new wallpaper][9] with both night and day versions. I must say it looks awesome (see the above desktop image). - -Finally, also in this release, Fedora **drops 32-bit Java** packages, including JDK 8, 11, and 17, since usage is low. In addition, the openssl1.1 package is also deprecated. - -The toolchain, apps and programming stack are updated as follows: - -- Glibc 2.36 and Binutils 2.38 -- Node.js 18.x -- Perl 5.36 -- Python 3.11 - -### Summary of features in Fedora 37 - -So, that’s about it with the features of this release. Here’s a summary of the Fedora 37 features: - -- Linux Kernel 5.19 -- GNOME 43 -- KDE Plasma 5.26 -- Xfce 4.16 -- MATE 1.24 -- LXQt 1.1.0 -- A preview image of the new web-based installer -- The SDDM display manager defaults to Wayland (in KDE Plasma and others) -- Official Raspberry Pi 4 support -- Fedora Core OS becomes the official flavour -- Key packages dropping 32-bit support -- And associated toolchain and programming language updates. - -If you have spare time, you can[give it a spin][10] or test drive. Just be cautious that it is still BETA. - -Also, If you are daring enough, you can upgrade to this release with **caution** because, y’know it’s BETA. The commands below will help you to do that. - -``` -sudo dnf install dnf-plugin-system-upgrade -sudo dnf system-upgrade download --ref --releasever=37 -``` - -For Kinoite, Silverblue and other immutable versions, use: - -``` -rpm-ostree rebase fedora:fedora/37/x86_64/silverblue -``` - -**So, what’s your favourite feature of this release? Let me know in the comment section.** - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/fedora-37/ - -作者:[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://debugpointnews.com/fedora-37-beta/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Fedora-37-Workstation-with-GNOME-43-1024x572.jpg -[3]: https://www.debugpoint.com/linux-kernel-5-19/ -[4]: https://www.debugpoint.com/gnome-43-quick-settings/ -[5]: https://www.debugpoint.com/gnome-web-43-tab-view/ -[6]: https://www.debugpoint.com/gnome-43/ -[7]: https://www.debugpoint.com/kde-plasma-5-26/ -[8]: https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/ -[9]: https://debugpointnews.com/fedora-37-wallpaper/ -[10]: https://getfedora.org/workstation/download/ diff --git a/sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md b/sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md deleted file mode 100644 index 80b5e0f38f..0000000000 --- a/sources/tech/20221027.10 ⭐️⭐️ Customize GNOME 40 Desktop to Look Like macOS [Guide].md +++ /dev/null @@ -1,247 +0,0 @@ -[#]: subject: "Customize GNOME 40 Desktop to Look Like macOS [Guide]" -[#]: via: "https://www.debugpoint.com/gnome-40-macos-look-1/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Customize GNOME 40 Desktop to Look Like macOS [Guide] -====== - -**A quick guide for you to help you customizing the GNOME 40 desktop to look like macOS.** - -Ever since the GNOME 40 desktop was released, I was wondering whether it is even possible to make this desktop look like macOS. It seems we can do it as close as possible to look like macOS. Here’s how. - -There’s always debate that why people are so fascinated to make Linux Desktop look like macOS? If you want MacOS, then get a Mac. Well, keeping that debate aside, I ran some experiments to see whether the GNOME 40 and associated extension ecosystem evolved enough to make it look like macOS. - -The power of any Linux desktop is customization. And among the popular desktops such as KDE, GNOME, Deepin, Budgie – only KDE Plasma comes with built-in tools to customize it to anything you want. On the other hand, GNOME’s vanilla install doesn’t give you those options out-of-the-box. Hence to get the desired result, you need to depend on many extensions and tweaks. - -As GNOME 40 fundamentally changes the behavior of the desktop, the developers already ported their extensions to work on GNOME 40. And the majority of them working very well as of today. - -So, in this guide, we are going to use a bunch of extensions for GNOME 40 and the final desktop should look like this. - -![GNOME 40 Desktop Configuration - MacOS][1] - -GNOME 40 Desktop Configuration – MacOS - -![GNOME 40 Customization - MacOS - Workspace View][2] - -GNOME 40 Customization – MacOS – Workspace View - -### Steps to Customize GNOME 40 Desktop to Look Like macOS - -#### Setup Extensions and Tools - -As this guide requires the installation of GNOME extensions, you need to set up your system as per the Linux distribution. You can read our guide here on installing and using GNOME Extensions; Or, follow the quick guide below. - -Open a terminal and install the following. - -**Ubuntu** - -``` -sudo apt install chrome-gnome-shell -``` - -**Fedora** - -``` -sudo dnf install chrome-gnome-shell -``` - -You have to install an add-on based on your preferred browser. Install them using the below links: - -- [Chrome, Chromium, Google Chrome, Vivaldi][3] -- [Firefox][4] -- [Opera][5] - -Install the GNOME Tweak tool using the below command. - -**Ubuntu** - -``` -sudo apt install gnome-tweak-tool -``` - -**Fedora** - -``` -sudo dnf install gnome-tweak-tool -``` - -Install the [new Extensions Flatpak app][6] to manage extensions in GNOME 40 desktop. Go to Software and search for Extensions to install. - -#### Theme, Icon, and Cursor - -##### Download - -I have used the WhiteSur Shell Theme, BigSur Icon Theme, McMojave Cursors, and macOS BS Theme for Cairo Dock for this guide. - -Download the following packages and extract them. Open each of the below links and go to the Files section. Then download the light versions of the packages. If you want the dark theme, you can download the dark version as well. I have used the light theme for this guide. - -- [WhiteSur Shell Theme][7] -- [BigSur Icon Theme][8] -- [McMojave Cursors][9] -- [macOS BS Theme for Cairo Dock][10] - -After you download, extract them. Then create two directories named .icons and .themes under your home directory. Then copy the corresponding folders to .icons and .themes directories. The cursor theme goes to the .icons directory. Do not extract or copy the theme for the Cairo dock. - -#### Install Extensions and configuration - -##### Changes in Tweak Tool - -Open the GNOME Tweak Tool and make the following changes to apply the themes that you downloaded above. - -- On the Window Titlebars tab, turn on Maximize and Minimize and make the placement as Left. -- If you want to change the Font, you can. I kept the default Cantarell Regular font. -- On the Appearance tab change the Themes as below. - -![tweak settings for theme][11] - -tweak settings for theme - -##### Download and configure extensions - -We need a bunch of extensions for the desired looks. Here’s a list of the extensions compatible at the moment with GNOME 40. Install all of them using the below links. After installation, do the following configuration using the Extensions app. - -[Better OSD – GNOME 40][12] : Changes the OSD location in the desktop. - -- Change the horizontal and vertical position of the OSD as per your need so that it becomes like this on the right-top of the desktop. This depends on the resolution of your screen. - -![GNOME 40 OSD][13] - -GNOME 40 OSD - -[Notification Banner Position][14]: Move the default notifications from the center to any section you want. Only enable this extension, no change in settings is required. - -![Notification][15] - -Notification - -[Dynamic Panel Transparency][16]: Make your top panel transparent in GNOME 40 desktop. - -- Change the maximized opacity to 27% and unmaximized to 19% in the settings of this extension. - -[Frippery Move Clock][17]: Move the center clock to the right side of the panel. Only enable this extenstion. No setting change is required. - -[User Themes][18]: Ability to apply GNOME Shell theme. - -- Apply the WhiteSur-light Shell theme. - -![apply WhiteSur-light user theme][19] - -apply WhiteSur-light user theme - -[Blur My Shell][20]: Blurs the workspace and activtiy view and login screen. - -- On the settings, only turn on the blue for Dash and Overview and disable for Panel and others. Because this may conflict with the Transparent panel extension above. - -#### Dock Configuration - -There are many Docks available that are compatible with the GNOME desktop. For this guide, I have used the [Cairo Dock][21]with many customization options. Install it using the following command. - -**Ubuntu** - -``` -sudo apt install cairo-dock -``` - -**Fedora** - -``` -sudo dnf install cairo-dock -``` - -Download the Cairo dock theme for MacOS from the below link. - -[Cairo Dock theme for macOS look-a-like][10] - -After installation of the Cairo Dock, open the GNOME Tweak Tool and add Cairo dock as a startup application. - -From the application menu, launch Cairo Dock. And do the following settings. - -- Import the above theme from **Themes** Tab and **Apply** it. Browse to the downloaded tar file and apply. -- On the Configuration > Appearance Tab Choose **Icons as BigSur** and **Size=Big**. -- On the Configuration > Behaviour Tab change the settings as per the below image. - -![Cairo Dock Config - Behaviour][22] - -Cairo Dock Config – Behaviour - -- Change the **Addon Tab** applets which appear on the Dock as per your need. -- On the **Current Items** Tab, under the Bottom Dock, rearrange and remove anything you want. You can right-click on the items and remove them. -- Add a **custom Launcher** to launch the Application list of GNOME from Right Click on Dock > Add > Custom Launcher. -- On the Current Items Tab, under the Bottom Dock, modify the custom launcher and give a name. For example, for this guide – I have given the name “Finder” and Command as below which would bring up the GNOME Application list. - -![Cairo Dock custom launcher][23] - -Cairo Dock custom launcher - -``` -dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.shellDBusService.ShowApplications();' -``` - -After these configuration, your dock should look like below. - -![Cairo Dock Animation][24] - -Cairo Dock Animation - -#### Additional Configuration - -Time for a nice wallpaper. There are a bunch of wallpapers available for Mac in the below link. Grab one and apply. - -[download cool wallpapers][25] - -If you fancy some more customization, then you can opt for below. - -- For Wobbly windows animation when you drag, download, and apply [Compiz alike windows effect.][26] -- Install [Albert Launcher][27] for your desktop which is like KDE KRunner. - -### Closing Notes - -I hope this guide gives you a starting point for your GNOME 40 desktop customization. There are hundreds of themes, icons, and extensions available compatible with the new desktop workflow. You can create your own desktop look as you wish. - -Do let me know in the comments below, whether it helped you; Also let us know about some cool extensions, themes for everyone. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-40-macos-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://www.debugpoint.com/wp-content/uploads/2021/05/GNOME-40-Desktop-Configuration-MacOS.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2021/05/GNOME-40-Customization-MacOS-Workspace-View.jpg -[3]: https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep -[4]: https://addons.mozilla.org/en/firefox/addon/gnome-shell-integration/ -[5]: https://addons.opera.com/en/extensions/details/gnome-shell-integration/ -[6]: https://flathub.org/apps/details/org.gnome.Extensions -[7]: https://www.pling.com/p/1403328 -[8]: https://www.pling.com/p/1399044 -[9]: https://www.pling.com/p/1355701 -[10]: https://www.pling.com/p/1401527 -[11]: https://www.debugpoint.com/wp-content/uploads/2021/05/tweak-settings-for-theme.jpg -[12]: https://extensions.gnome.org/extension/4231/better-osd-gnome-40/ -[13]: https://www.debugpoint.com/wp-content/uploads/2021/05/GNOME-40-OSD.jpg -[14]: https://extensions.gnome.org/extension/4105/notification-banner-position/ -[15]: https://www.debugpoint.com/wp-content/uploads/2021/05/Notification.jpg -[16]: https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/ -[17]: https://extensions.gnome.org/extension/2/move-clock/ -[18]: https://extensions.gnome.org/extension/19/user-themes/ -[19]: https://www.debugpoint.com/wp-content/uploads/2021/05/apply-WhiteSur-light-user-theme.jpg -[20]: https://extensions.gnome.org/extension/3193/blur-my-shell/ -[21]: http://glx-dock.org/ -[22]: https://www.debugpoint.com/wp-content/uploads/2021/05/Cairo-Dock-Config-Behaviour.jpg -[23]: https://www.debugpoint.com/wp-content/uploads/2021/05/Cairo-Dock-custom-launcher.jpg -[24]: https://www.debugpoint.com/wp-content/uploads/2021/05/Cairo-Dock-Animation.gif -[25]: https://www.pling.com/p/1399346%E2%80%8B -[26]: https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/ -[27]: https://albertlauncher.github.io/installing/ diff --git a/sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md b/sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md deleted file mode 100644 index 2401c9249d..0000000000 --- a/sources/tech/20221027.12 ⭐️ Customize GNOME 42 with A Polished Look.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "Customize GNOME 42 with A Polished Look" -[#]: via: "https://www.debugpoint.com/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, here’s 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] - -User Themes Extension - -![Floating Dock Extension][4] - -Floating Dock Extension - -- Secondly, install the [Materia Theme][5] using the below commands. You have to build it as it doesn’t 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//.icons` path. Create the .icons folder if it is not present. - -[Download Kora Icon Theme][7] - -![Kora Icon Theme][8] - -Kora Icon Theme - -- 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//.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//.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] - -Changes to Extensions - -- In addition, open the Floating dock settings and make the following changes. - -![Floating Dock Settings][12] - -Floating Dock Settings - -- Cursor: Bibata-Original-Ice -- Shell Theme: Materia -- Icon: Kora - -- Furthermore, open the [GNOME Tweak Tool][13], and go to the Appearance tab. Set the followings. - -- 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] - -Customize GNOME 42 – Final Look - -Enjoy a polished GNOME 42. Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/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 diff --git a/sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md b/sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md deleted file mode 100644 index a8bdd34319..0000000000 --- a/sources/tech/20221027.2 ⭐️ Customize GNOME in Ubuntu 20.04 with this Productive Look.md +++ /dev/null @@ -1,167 +0,0 @@ -[#]: subject: "Customize GNOME in Ubuntu 20.04 with this Productive Look" -[#]: via: "https://www.debugpoint.com/customize-gnome-ubuntu-2020/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Customize GNOME in Ubuntu 20.04 with this Productive Look -====== - -**In one of the early [guides][1], I explained the overall look and feel of the GNOME desktop. How you can visually change the look from a mundane desktop to something nice and better. This guide explains some steps which give you an idea of how you can Customize GNOME in Ubuntu 20.04 with a productive look.** - -Thanks to extensions, the GNOME desktop can be transformed to anything from visual and overall productivity. GNOME extensions are very powerful if you know which one to use and what customizations to apply. - -There are hundreds of extensions on the official GNOME extension website. That means you can customize GNOME in many ways. The following steps are merely a guide to show you how you can customize Ubuntu 20.04 with GNOME With a productive look. - -### Customize GNOME in Ubuntu - -A default Ubuntu installation with GNOME desktop look like this without much configuration. This guide helps you to changes this look. - -![Before Customization - GNOME][2] - -Before Customization – GNOME - -#### Prerequisite - -Make sure GNOME Extension is enabled in your browser. If you don’t know how to – [check this guide][3]. Or, just visit the official GNOME Extension page [here][4]. You can get a popup message at the top saying the steps (see below). Follow the instructions to enable GNOME extensions for your browser. - -![GNOME Extensions Page][5] - -GNOME Extensions Page - -I hope you have the admin password of the Ubuntu 20.04 installation where you are trying this out. - -And, install the [GNOME Tweak Tool][6]. You can use Ubuntu Software to install Or, run below from the terminal. - -``` -sudo apt-get install gnome-tweaks -``` - -#### Install Extensions - -Open the [GNOME Extension website][4]. - -Then, install all the below extensions. Open the link and click on the “OFF” button to enable and install respective extensions. - -- [Dash to panel][7] -- [Tray icons][8] -- [Open Weather][9] -- [User Themes][10] -- [Arc menu][11] - -#### Configure the extensions - -##### Dash to Panel - -Once you install, the Dash by default moves to the bottom of the screen. Right click on the panel at the bottom and open ‘Dash to Panel Settings’. Change below settings. - -![Dash to Panel Settings][12] - -Dash to Panel Settings - -**On the Position Tab** - -- Disable the Show Applications Button -- Move the Date menu after System menu -- Change Desktop button width to 15px. -- Turn on the override panel theme background opacity. Give value to 50%. - -**On the style tab** - -- Change the running indicator style to dots. - -##### Tray icons - -- No need to change any settings. - -##### Open Weather - -- Change the display, City and the temperature unit if you like. - -##### User Themes - -- No need to change any settings. - -##### Arc Menu - -- Open Arc Menu Settings - -**General Tab** - -- Choose Display Arc menu on Dash to panel. -- Choose Hot Key for Arc menu to Left Super key. - -**Menu Layout Tab** - -- Choose Modern menu layout to Redmond Menu Style - -![Arc Menu Settings][13] - -Arc Menu Settings - -**Menu Theme** - -- Choose override menu theme. Keep the theme as default, or, you can change as you wish. - -**Button Appearance** - -- Change the icon to anyone. I have selected the Ubuntu icon. -- Change Icon size to 40px. - -At this stage, the menu and panel should look like this. - -![Panel and Menu][14] - -Panel and Menu - -Almost done, couple of additional settings are required now. - -- Open the GNOME Tweak tool and go to the Appearance tab. Choose Shell theme to Yaru Dark. -- Open Settings and change the Appearance to Dark. -- Then change the desktop wallpaper to a nice wallpaper. - -If all goes well, you should have a nice productive yet beautiful looking desktop with you. The Arc Menu itself is a big productivity booster. - -### Final desktop - -![GNOME Desktop After customization - Ubuntu][15] - -GNOME Desktop After customization – Ubuntu - -So, that’s it with the steps. This is merely a guide. You can play around with the settings in hundreds of ways to make the GNOME desktop best suitable for you. - -Wallpaper Photo by **[Ethan Wu][16]** from **[Pexels][17]** - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/customize-gnome-ubuntu-2020/ - -作者:[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/2020/05/customize-gnome-in-ubuntu-20-04-with-a-new-look/ -[2]: https://www.debugpoint.com/wp-content/uploads/2020/11/Before-Customization-GNOME--1024x576.jpg -[3]: https://www.debugpoint.com/2018/05/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ -[4]: https://extensions.gnome.org/ -[5]: https://www.debugpoint.com/wp-content/uploads/2020/11/GNOME-Extensions-Page.jpg -[6]: https://www.debugpoint.com/2018/05/customize-your-ubuntu-desktop-using-gnome-tweak/ -[7]: https://extensions.gnome.org/extension/1160/dash-to-panel/ -[8]: https://extensions.gnome.org/extension/1503/tray-icons/ -[9]: https://extensions.gnome.org/extension/750/openweather/ -[10]: https://extensions.gnome.org/extension/19/user-themes/ -[11]: https://extensions.gnome.org/extension/1228/arc-menu/ -[12]: https://www.debugpoint.com/wp-content/uploads/2020/11/Dash-to-Panel-Settings.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2020/11/Arc-Menu-Settings.jpg -[14]: https://www.debugpoint.com/wp-content/uploads/2020/11/Panel-and-Menu.jpg -[15]: https://www.debugpoint.com/wp-content/uploads/2020/11/GNOME-Desktop-After-customization-Ubuntu-1024x576.jpg -[16]: https://www.pexels.com/@ethanwu?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels -[17]: https://www.pexels.com/photo/closeup-photo-of-water-dew-on-glass-1425298/?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels diff --git a/sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md b/sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md deleted file mode 100644 index 9f1100811c..0000000000 --- a/sources/tech/20221028.0 ⭐️ How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step.md +++ /dev/null @@ -1,174 +0,0 @@ -[#]: subject: "How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step" -[#]: via: "https://www.linuxtechi.com/how-to-install-postgresql-on-ubuntu/" -[#]: author: "Narendra K https://www.linuxtechi.com/author/narendra/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install PostgreSQL 15 on Ubuntu 22.04 Step-by-Step -====== - -In this article, we will explain how to install PostgreSQL 15 database server on Ubuntu 22.04 (Jammy Jellyfish). - -PostgreSQL is a powerful, open-source object-relational Database Management System (DBMS). It’s been battle-tested for over 35 years which has earned it a strong reputation for reliability and performance. This feature-rich database is used by many tech giants, such as Apple, IMDB, Instagram, and so on. - -PostgreSQL supports large number of the SQL standard and is constructed to be extensible by users in many aspects. Some of the salient features include ACID transactions, foreign keys, subqueries, triggers, user-defined types, functions, etc. - -##### Prerequisites - -Before installing the PostgreSQL server, we must ensure that the system meets the following installation requirements: - -- Pre-Installed Ubuntu 22.04 -- A regular user with sudo rights -- An active internet connection -- At least 2 GB of RAM with an additional 512 MB of disk space. Please note that this is a minimal requirement for the demo environment. The actual hardware configuration will vary with data volume. - -Without any further delay, let’s deep dive into PostgreSQL 15 installation steps, - -### 1) Enable PostgreSQL Package Repository - -PostgreSQL 15 package is not available in the default package repository, so enable its official package repository using following commands. - -``` -$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' -$ wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null -``` - -To begin, let’s fetch the latest versions of the packages. We can achieve this using the apt update command as shown below: - -``` -$ sudo apt update -``` - -The above command will take a few seconds to complete. - -### 2) Install PostgreSQL 15 Database Server and Client - -The postgresql package installs the default version of the PostgreSQL database server whereas the postgresql-client package installs the client utility. - -Let’s install the PostgreSQL client and server using the below apt command: - -``` -$ sudo apt install postgresql postgresql-client -y -``` - -Next, let’s verify that the PostgreSQL service is up and running: - -``` -$ sudo systemctl status postgresql -``` - -Finally, check the PostgreSQL version using the psql command line utility: - -``` -$ psql --version -``` - -Here, we can see that the version of PostgreSQL is 15. - -### 3) Update PostgreSQL Admin User Password - -By default, we can connect to the PostgreSQL server without using any password. Let’s see this in action using the psql utility: - -``` -$ sudo -u postgres psql -postgres=# -``` - -In the above output, the postgres=#  prompt indicated the active connection with the PostgreSQL server. - -In this example, we have used the postgres user. This is an admin user of PostgreSQL and it gets created during the installation process. - -Allowing administrative access to the database without any password isn’t a good idea. So, let’s set the password for the postgres user: - -``` -postgres=# ALTER USER postgres PASSWORD 'demoPassword'; -``` - -The above SQL query sets the user password to demoPassword. Please note that, we have used a very simple password because this is a demo environment. However, the same is not recommended in the production environment. - -Let’s verify that the password has been set successfully. So first, terminate the current session with the server using the \q command. - -``` -postgres=# \q -``` - -Output of above commands, - -Now, let’s connect to the database server again: - -``` -$ psql -h localhost -U postgres -``` - -Let’s enter the demoPassword string as a password and now we are connected to the database. - -### 4) Configure PostgreSQL to Allow Remote Connections - -By default, PostgreSQL accepts connections from the localhost only. However, we can easily modify the configuration to allow connection from remote clients. - -PostgreSQL reads its configuration from the postgresql.conf file which is located in the /etc/postgresql//main/ directory. Here, the version indicates the major version of PostgreSQL. - -For example, in our case the full path of the file is /etc/postgresql/15/main/postgresql.conf. - -Now, open the postgresql.conf file in a text editor, uncomment the line that starts with the listen_addresses, and replace ‘localhost’ with ‘*’. - -This setting is located under the CONNECTIONS AND AUTHENTICATION section. After modification the file will look like this: - -Save and close the file. - -Next, edit the IPv4 local connections section of the pg_hba.conf file to allow IPv4 connections from all clients. Please note that this file is also located in /etc/postgresql/15/main/ directory. - -``` -$ sudo vi /etc/postgresql/15/main/pg_hba.conf -``` - -After modification the file will look like this: - -In the above configuration indicates to allow connection from the network 192.168.1.0/24 - -In case, Ubuntu firewall is running on your system then allow PostgreSQL 5432 port using following command, - -``` -$ sudo ufw allow 5432/tcp -``` - -##### Verifying Remote Connection - -Finally, restart the service and verify it’s up and running: - -``` -$ sudo systemctl restart postgresql -$ sudo systemctl status postgresql -``` - -Now, let’s try to access DB from remote client. - -``` -$ psql -h 192.168.1.192 -U postgres -``` - -In this example, 192.168.1.192 is the IP address of the PostgreSQL database server. - -Here we can see that we are able to access DB from the remote client. - -That’s all from this article.Please do post your queries and feedback in the below comments section. - -Read Also: [How to Set Static IP Address on Ubuntu Server 22.04][1] - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/how-to-install-postgresql-on-ubuntu/ - -作者:[Narendra K][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/narendra/ -[b]: https://github.com/lkxed -[1]: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/ diff --git a/sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md b/sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md deleted file mode 100644 index 2a2343f4e9..0000000000 --- a/sources/tech/20221102.2 ⭐️⭐️ Best 5 Alternatives to Microsoft Office [Compared].md +++ /dev/null @@ -1,178 +0,0 @@ -[#]: subject: "Best 5 Alternatives to Microsoft Office [Compared]" -[#]: via: "https://www.debugpoint.com/best-alternatives-microsoft-office-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Best 5 Alternatives to Microsoft Office [Compared] -====== - -**Here we give you the five best alternatives to Microsoft Office. We compare them based on features, are easy to use and provide you with a guide to choosing the one you need.** - -We all agree that Microsoft Office is one of the best software developed by Mircosoft. It has a presence almost everywhere in the entire world in nearly every business. It is a fine piece of software that evolved over a few decades. - -And obviously, it doesn’t have a Linux native installer and comes with a significant price. The current Microsoft Office 365 subscription pricing is a little higher if you are a business owner or a personal user. And not everyone can afford that price bucket for a longer time. - -Then what are the alternatives? You can try other options that relatively get the job done for most users or businesses. - -This article gives you the five best alternatives to Microsoft Office. - -### Best Alternatives to Microsoft Office - -### 1. LibreOffice - -![LibreOffice][1] - -The first alternative we highlight here is [LibreOffice][2]. The Document Foundation develops and manages the entire LibreOffice free and open-source office suite, available for Linux, macOS and Windows. - -Firstly, it comes with a spreadsheet ([Calc][3]), word processor (Writer), presentation (Impress), drawing (Draw) and a database program (Base). - -Secondly, this project is actively developed, and compatibility with Microsoft Office documents is improved in every release iteration. If appropriately used, LibreOffice can effectively do all the work that a Mircosoft office program does. In addition, a massive set of documentation and communities can help you adopt LibreOffice in no time. - -You don’t need to pay for the software if you are a small or large corporation. But paid deployment and support are also available at minimal cost if you require them for your critical work. - -However, LibreOffice does not come with an Outlook-like email program. This might be one of the minor drawbacks, but you can access emails from web browsers today for all email service providers. - -**More details about LibreOffice** - -- [Home page][2] -- [For Business][4] -- [Download for general-purpose personal use][5] -- [Help and Documentation][6] -- [Official support forum][7] - -### 2. Google Docs - -![Google Docs - alternatives to Microsoft Office][8] - -The search engine giant Google provides a complete web-based Office suite (aka [Google Docs][9]) with its Docs (document processor), Sheets (spreadsheet program) and Slides (presentation) for free users. - -You can access and create documents in your Google Drive account by default and access them from anywhere. The office components provide well-designed web-based toolbars, advanced options, spell check, Voice to Text feature (only in Chrome), encryption and cloud access. Google also offers mobile apps for iOS and Android to access your documents and edit them on the go. - -One of the best features of Google Docs is templates. With the power of pre-built templates, you can start professional-grade documents in time. The collaboration option gives you more control when sharing and deploying documents with a Google account-based authentication and authorization mechanism for a wider audience. - -If you need more from Google Docs, you may opt for Google Workspace with a minimal price compared to costly Microsoft Office. The Google Workspace is a complete and integrated solution that gives you Google Forms to collect data and integrate it into your docs and Sheets, website builder Google Sites, Google Calendar and more storage options to keep your document. - -**More details about Google Docs** - -- [Home page][9] -- [Documentation][10] - -### 3. OnlyOffice - -![OnlyOffice - alternatives to Microsoft Office][11] - -[OnlyOffice][12] is a free and open-source complete Office productivity suite with a text editor, spreadsheet program, and presentation tool for you and your office work. It supports advanced features such as real-time collaboration with proper tracking changes for your shared documents, fillable forms, and many other features. - -This powerful office suite looks better with its Office 365-type ribbons, which helps to adopt this program quickly. In addition, this product has better Microsoft Office compatibility with .docx .xlsx and .pptx file formats which are easy for you and your organization to share documents. - -It’s worth mentioning that it provides an Enterprise office suite, aka “ONLYOFFICE Workspace, ” a paid product with additional features and instant support. This enterprise suite is perfect for those with a tight budget on office products but needs near compatibility with Office 365. - -Furthermore, the ONLYOFFICE Workspace comes with an Email client, CRM product, Project Management tool and an integrated calendar. Although everything works well, you face issues with spell checking, print preview, page size and some bugs. But you should not worry as the team is receptive, and you can report issues on GitHub and get help. - -**More details** - -- [Home page][12] -- [Download][13] -- [Documentation and help][14] - -### 4. Softmaker Free Office - -![FreeOffice - alternatives to Microsoft Office][15] - -The [FreeOffice][16] is another option if you are looking for Microsoft Office alternatives. SoftMaker developed this office suite, and it is arguably one of the choices you may have. Let’s talk a little about its features. - -Firstly, the FreeOffice brings TextMaker (like Word), PlanMaker (like Excel), Presentations and a comparison utility. Secondly, the user interfaces as two options. The modern Ribbon option makes it a desirable product due to its popularity. Moreover, it has a traditional Legacy user interface with a menu and toolbar with a considerable fanbase. - -Besides these, the SoftMaker FreeOffice provides a specific user interface and features for touch-based devices. The Microsoft Office document format compatibility is well established to get the most done. - -However, you may have little trouble working with Open Document Format files, whose support is limited. - -This is a closed-source product. - -**More details about SoftMaker FreeOffice** - -- [Home page][16] -- [Download][17] -- [Documentation and help][18] - -### 5. WPS Office - -![WPS Office][19] - -Remember Kingston Office? Well, it’s now renamed and repackaged as WPS Office, the acronym for Word, Presentation and Spreadsheets. Today, the WPS Office is one of the oldest office suites, with more than three decades of development and release. It is a fully-featured office suite available for all platforms and mobile devices. - -Some of the noteworthy features of WPS Office are its real-time collaboration in its core programs which helps you work in a team on a shared document. The office suite comes with 100,000+ templates which allows you to create professional-grade documents and presentations. - -The WPS Office comes with the standard edition, free to download and use but limited in features. - -Moreover, if you need additional features such as PDF editing, Cloud support, collaborations and enterprise support, then you can opt for the WPS Premium of WPS Business option with a price. - -It’s important to mention that this is a closed-source program and may contain Ads. Also, it was developed by a Chinese company. - -**More details about WPS Office** - -- [Home page][20] -- [Documentation][21] -- [Download][22] - -### Comparison - -Here’s a quick comparison of the free Microsoft Office alternatives based on noteworthy features and other details. - -| Product | Price | Source Type | Pros | Cons | -| :- | :- | :- | :- | :- | -| LibreOffice | Free | Open source | Free and cross-platformMulti-language supportComplete support of ODF filesBest compatibility support of Microsoft OfficeVery active development | No email and project management suiteThe database program depends on Java | -| Google Docs | Free | Close source | Free and cross-platformWell documented supportAccess documents via cloud anywhereComplete Mobile device support | Requires internet connectionLittle slow due to the web-based toolNo native desktop executable available | -| OnlyOffice | Free (basic product) | Open source | The user interface is almost similar to Microsoft OfficeBetter support and compatibility with Microsoft Office filesCloud integration and plugin supportCross-platform | It may face problems with some basic features.Cloud integrations are not compatible with the EU due to GDPRThe web app version is slow | -| FreeOffice | Free (basic product) | Close source | Free and lightweight compared to LibreOffice.Touchscreen supportGood Microsoft Office compatibilityCross-platform | The free version only has documents, spreadsheets and presentations.Additional products need purchaseOpen Document Format support is limitedNot open source product | -| WPS Office | Free | Close source | Good Microsoft office compatibilityCross-platform productTabbed interfaceMulti-language support | Not open source productDeveloped by a Chinese companyMay contain ads | - -### Our Recommendation - -Besides all the pros and cons, if you cannot choose which Office suite is best for you, I recommend going ahead with LibreOffice. Because LibreOffice and TDF have a good vision, active development and worldwide community support. LibreOffice has a considerable knowledge base about tips and tutorials on the helpful web. And you can easily automate tasks with Basic or Python Macro. - -### Closing Notes - -I hope this guide helps you choose the best alternatives for Microsoft Office for your personal or business usage. Genuinely speaking, none of the above office products come close in comparison to Microsoft Office in the true sense. Not everyone or every company can pay a hefty monthly subscription fee for Microsoft Office. For those, I believe some of these options can be a good starting point. - -Some image credits: Respective product owner - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/best-alternatives-microsoft-office-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2022/03/LibreOffice.jpg -[2]: https://www.libreoffice.org/discover/libreoffice/ -[3]: https://www.debugpoint.com/category/libreoffice/libreoffice-calc/ -[4]: https://www.libreoffice.org/download/libreoffice-in-business/ -[5]: https://www.libreoffice.org/download/download/ -[6]: https://help.libreoffice.org/latest/en-US/text/shared/05/new_help.html -[7]: https://ask.libreoffice.org/ -[8]: https://www.debugpoint.com/wp-content/uploads/2022/03/Google-Docs.jpg -[9]: https://www.google.com/docs/about/ -[10]: https://support.google.com/docs/?hl=en#topic=1382883 -[11]: https://www.debugpoint.com/wp-content/uploads/2022/03/OnlyOffice.jpg -[12]: https://www.onlyoffice.com/ -[13]: https://www.onlyoffice.com/desktop.aspx -[14]: https://forum.onlyoffice.com/ -[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/FreeOffice.jpg -[16]: https://www.freeoffice.com/en/ -[17]: https://www.freeoffice.com/en/download/applications -[18]: https://forum.softmaker.com/ -[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/WPS-Office.jpg -[20]: https://www.wps.com/ -[21]: https://www.wps.com/academy/ -[22]: https://www.wps.com/download/ diff --git a/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md b/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md deleted file mode 100644 index 86ba70d901..0000000000 --- a/sources/tech/20221102.4 ⭐️⭐️ Top 10 Features of Linux Mint 21 “Vanessa”.md +++ /dev/null @@ -1,188 +0,0 @@ -[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”" -[#]: via: "https://www.debugpoint.com/linux-mint-21-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Features of Linux Mint 21 “Vanessa” -====== - -**We round up Linux Mint 21 “Vanessa” top features. Find out what’s in store for you.** - -![Linux Mint 21 Cinnamon Desktop][1] - -Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more. - -I have summarized all of them in this list of top features of Linux Mint 21. - -### Top Features of Linux Mint 21 “Vanessa” - -#### 1. Ubuntu 22.04 and associated updates - -Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on. - -Hence, a lot of packages, version upgrades, and new performance improvements – all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking. - -#### 2. Major changes in the Timeshift backup tool - -A few months back, the Mint team [announced][5] that they are taking over developing the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask? - -Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesn’t have the time to concentrate on Timeshift development and enhancement. - -![Timeshift creating snapshot][7] - -With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup. - -#### 3. WebP Support - -WebP image is a reasonably new image format created by Google for the web. It brings better compression and reduced size while maintaining good quality to traditional JPEG or PNG images. - -WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours. - -That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always thinks about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well: - -- ePub -- MP3 with Album Arts -- RAW Images -- AppImage - -#### 4. Process Monitor - -A small but handy process monitor tool will give you a heads-up on what’s happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. Your system may become slow in those situations, and this nifty icon can show you why. - -#### 5. Improved printing support - -Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning. - -In addition, HP’s driver, HPLIP’s latest edition (3.21.12), is also installed by default. - -All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesn’t work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print. - -It’s good to see that the mint team contributed to this critical functionality. - -#### 6. Window Animation updates - -There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, separate sections gave more granular control of the animations. - -Here’s a side-by-side view. - -![][12] - -![][13] - -Secondly, the mapping windows and desktop effects options are removed. - -Third, a new control changes the animation speed from slower to faster. - -Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control. - -I believe this is a well-designed dialog and advanced options for better clarity. - -#### 7. Mutter rebase - -Let’s talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. It’s the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]). - -Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base. - -Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed. - -#### 8. Window manager and GTK Themes - -With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows. - -Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes. - -Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped. - -On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME. - -#### 9. Package Management updates - -Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages. - -When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed. - -If found, you get an error message that stops you from going further. - -On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed. - -#### 10. Disable the Systemd OOMD (out-of-memory daemon) service - -The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service. - -In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience. - -With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly. - -![Systemd OOMD service is not enabled][20] - -#### 11. Other Changes - -Finally, let’s round up some tiny yet impactful changes to wrap up the Linux Mint 21 features. - -- The default document reader app Xreader is now capable of minor annotation. This is a handy feature. -- The WebApp manager now brings custom browser parameters. -- Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices. -- Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to the Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy. - -![Firefox 102 in Linux Mint 21 - Exclusively packaged as deb executable][22] - -- The bulk renamer app Thingy gets some UI improvements. -- The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems). -- The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices. -- Finally, new wallpapers for your new desktop arrive in this release. - -![New Wallpapers in Linux Mint 21][23] - -### Things that are NOT changing - -From a very high level, you might feel that most of the Linux Mint 21 remain the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didn’t have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop. - -### Wrapping Up - -Overall, a good set of features benefits end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21. - -You can download/update Linux Mint 21 from the [official website][24]. Also, stay tuned for our detailed distro review of Linux Mint 21 soon. - -What do you think about the new features of Linux mint 21? Is there any feature you expected but didn’t arrive in this release? Let’s discuss this in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/linux-mint-21-features/ - -作者:[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/07/Linux-Mint-21-Cinnamon-Desktop.jpg -[2]: https://www.debugpoint.com/linux-mint/ -[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/linux-kernel-5-15/ -[5]: https://blog.linuxmint.com/?p=4323 -[6]: https://teejeetech.com/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg -[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/ -[9]: https://github.com/linuxmint/xapp-thumbnailers -[10]: https://datatracker.ietf.org/doc/html/rfc8011 -[11]: https://www.debugpoint.com/tag/linux-distro-review/ -[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg -[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0 -[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/ -[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/ -[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04 -[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html -[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/ -[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg -[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ -[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg -[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg -[24]: https://www.linuxmint.com/download.php diff --git a/sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md b/sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md deleted file mode 100644 index 6013077195..0000000000 --- a/sources/tech/20221104.0 ⭐️ How to Enable ‘Dark Mode’ in LibreOffice.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "How to Enable ‘Dark Mode’ in LibreOffice" -[#]: via: "https://www.debugpoint.com/how-to-enable-dark-mode-libreoffice/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Enable ‘Dark Mode’ in LibreOffice -====== - -**Tutorial for you on how to enable dark mode in LibreOffice in Ubuntu, Linux and Windows systems.** - -[LibreOffice,][1]the free and open-source office productivity software, is used by millions worldwide. This cross-platform software runs on Windows, Linux, and other distributions. - -Millions of users around the world use LibreOffice. Probably that includes you. And everyone seems to prefer dark mode these days. And there are some advantages as well. - -Research suggests that dark mode protects eyes for extended use of mobiles and computers and saves a bit of battery as well, especially for AMOLED displays. That’s not all, dark mode makes the text looks crisp and clear and improves productivity. - -Dark mode can be enabled for apps and system-wide as well if your system – Linux or Windows supports it. - -LibreOffice doesn’t provide a direct dark mode, per se. But you can tweak some settings with its dark icon themes to make it dark with the help of your OS settings. This is how you can do it. Remember these settings should also be applicable for Windows, Linux, and macOS from LibreOffice’s perspective. - -### How to Enable Dark Mode in LibreOffice - -We will explain it in two steps – a) **Windows** and b) **Linux**. Because for both the OS, LibreOffice look different due to their OS-specific own dark themes. - -##### Windows - -The dark mode will look a bit different if you use Windows. Windows 10 doesn’t provide application-specific dark mode at the moment. The Windows 10 dark mode is limited to the start menu and certain applications (such as Google Chrome Windows build). - -- Open LibreOffice. Open any component – Writer, Calc etc. -- From the menu, click on `Tools -> Options`. -- On the Options dialog, on the left side, click on `Personalization`. - -![][2] - -- Select the `pre-installed` theme – dark. -- Go to Application Colors, and select the document background as Black. You can also choose the Application background as Black. -- If you want to change to a dark theme, change it from the View options on the left. - -![][3] - -Once done, press OK. - -That’s all. Enjoy your dark or night mode of LibreOffice in Windows. - -If everything works well, you will see the Writer or Calc like below. - -![LibreOffice Writer in dark mode in Windows][4] - -![LibreOffice Calc in dark mode in LibreOffice][5] - -##### Ubuntu, Linux - -- Open LibreOffice. Open any component – Writer, Calc etc. -- From the menu, click. `Tools -> Options`. -- Go to Application Colors, and select the `document background` as `Black`. You can also choose the `Application background` as `Black`. -- If you want to change to a dark icon theme, change it from the View options on the left for better visibility of the toolbar icons. I recommend selecting any of the icon themes with the name “dark” – see below. - -![Changing Application Colours Settings in LibreOffice][6] - -![Select a dark icon theme for LibreOffice][7] - -- Then, from Settings, select any dark GTK theme (e.g. Adwaita Dark) and apply. LibreOffice is more compatible with Ubuntu. Hence the GTK dark themes are correctly applied. -- If you are using the latest Ubuntu, Fedora, then select `Settings > Appearance > Dar`k. This will apply systems wide dark theme and applies automatically to LibreOffice. -- For other desktops, such as KDE Plasma and Xfce – select any applicable dark theme for your desktop, and you should be good. - -That’s all. Your LibreOffice should look like the one below. - -![LibreOffice Writer in Ubuntu][8] - -![LibreOffice in dark mode in Ubuntu][9] - -**Do you like this dark mode? Let us know in the comments.** - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/how-to-enable-dark-mode-libreoffice/ - -作者:[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]: http://www.libreoffice.org -[2]: https://www.debugpoint.com/wp-content/uploads/2020/01/Dark-theme.png -[3]: https://www.debugpoint.com/wp-content/uploads/2020/01/app-background.png -[4]: https://www.debugpoint.com/wp-content/uploads/2020/01/Writer-in-Dark-theme.png -[5]: https://www.debugpoint.com/wp-content/uploads/2020/01/Calc-in-dark-mode.png -[6]: https://www.debugpoint.com/wp-content/uploads/2020/01/Changing-Application-Colours-Settings-in-LibreOffice.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2020/01/Select-a-dark-icon-theme-for-LibreOffice.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2020/01/LibreOffice-Writer-in-Dark-Mode-in-Ubuntu-Linux.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2020/01/LibreOffice-in-dark-mode-in-Ubuntu-1024x578.jpg From 934a5fd5ad2ccf5ed5f775416fbf7cccbea674e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 00:54:54 +0800 Subject: [PATCH 1940/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20To=20Install=20Netdata=20Performance=20Monitoring=20Tool?= =?UTF-8?q?=20In=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ll Netdata Performance Monitoring Tool In Linux.md | 537 ++++++++++++++++++ 1 file changed, 537 insertions(+) create mode 100644 sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md diff --git a/sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md b/sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md new file mode 100644 index 0000000000..fa3ef80d30 --- /dev/null +++ b/sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md @@ -0,0 +1,537 @@ +[#]: subject: "How To Install Netdata Performance Monitoring Tool In Linux" +[#]: via: "https://ostechnix.com/netdata-real-time-performance-monitoring-tool-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How To Install Netdata Performance Monitoring Tool In Linux +====== + +This guide explains **what is Netdata**, how to **install Netdata in Linux** and how to analyze and **monitor a Linux system performance and resource usage** with Netdata. + +### 1. What is Netdata? + +**NetData** is a distributed, real-time, performance and health monitoring tool for systems and applications. It provides unparalleled insights of everything happening on a system in real-time. You can view the results in a highly interactive web-dashboard. + +Using Netdata, you can get a clear idea of what is happening now, and what happened before in your systems and applications. + +Netdata runs on all physical and virtual servers, containers, even IoT/edge devices. + +You don't need to be an expert to deploy this tool in your Linux systems. Netdata just works fine out of the box with zero configuration, and zero dependencies. Just install this utility and sit back, Netdata will take care of the rest. + +Netdata has its own **built-in webserver** to display the result in graphical format. Netdata is quite fast and efficient, and it will immediately start to analyze the performance of your system in no time after installing it. + +Netdata is written using **C** programming language, so it is extremely light weight. It consumes less than 3% of a single core CPU usage and a 10-15MB of RAM. + +We can easily embed the Netdata charts on any existing web pages. It has a plugin API, so that you can monitor any application. + +Here is the list of things that will be monitored by Netdata utility in your Linux system. + +- CPU usage, +- RAM Usage, +- Swap memory usage, +- Kernel memory usage, +- Hard disks and its usage, +- Network interfaces, +- IPtables, +- Netfilter, +- DDoS protection, +- Processes, +- Applications, +- NFS server, +- Web server (Apache & Nginx), +- Database servers (MySQL), +- DHCP server, +- DNS server, +- Email serve,r +- Proxy server, +- Tomcat, +- PHP, +- SNP devices, +- And many more. + +Netdata is free, open source tool and it supports Linux, FreeBSD and Mac OS. + +### 2. Install Netdata In Linux + +Netdata can be installed on any Linux distributions that have **Bash** installed. There are two ways to install Netdata in Linux. + +We can **install Netdata using an automatic one-liner script** or **install Netdata from git** checkout. First, we will see how to install + +#### 2.1. Install Netdata using Automatic One-line Installation Script + +The best as well as the easiest way to install Netdata is to run the following one-liner command as normal user: + +``` +$ wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh +``` + +If `wget` is not available, use `curl` instead: + +``` +$ curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh +``` + +This method is fully automatic on any Linux and Unix distributions, such as Debian, Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux, openSUSE and macOS etc. + +The automatic installation script will download and install everything needed to up and run Netdata. It will also enable automatic and nightly updates. + +If you don't like the auto-installer script method, you can follow the steps below to install Netdata from Git checkout. + +#### 2.2. Install Netdata from Git + +First, we need to install required dependencies. The prerequisites can be installed using automatic requirements installer script or manually using the package manager. + +##### 2.2.1. Install Prerequisites using Automatic Requirements Installer + +To install the necessary dependency packages for having a **basic Netdata installation** only, run: + +``` +$ curl -Ss 'https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh' >/tmp/install-required-packages.sh && bash /tmp/install-required-packages.sh -i netdata +``` + +To install the necessary dependency packages for having a **full Netdata installation** to monitor everything, run: + +``` +$ curl -Ss 'https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh' >/tmp/install-required-packages.sh && bash /tmp/install-required-packages.sh -i netdata-all +``` + +If you prefer manual prerequisites installation, follow the steps in the section below. + +##### 2.2.2. Install Prerequisites using Manually Package Manager + +Depending upon the Linux distribution, use any one of the following commands to install the necessary prerequisites using your distribution's default package manager. + +**Debian / Ubuntu:** + +``` +$ sudo apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libssl-dev libelf-dev libmnl-dev libprotobuf-dev protobuf-compiler gcc g++ make git autoconf autoconf-archive autogen automake pkg-config curl python cmake +``` + +**Fedora:** + +``` +$ sudo dnf install zlib-devel libuuid-devel libuv-devel lz4-devel openssl-devel elfutils-libelf-devel libmnl-devel protobuf-devel protobuf-compiler gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake +``` + +**CentOS / Red Hat Enterprise Linux older versions:** + +``` +$ sudo yum install autoconf automake curl gcc gcc-c++ git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel elfutils-libelf-devel protobuf protobuf-devel protobuf-compiler make nc pkgconfig python zlib-devel cmake +``` + +**RHEL 8.x / CentOS 8.x / AlmaLinux 8.x. / Rocky Linux 8.x:** + +``` +# Enable config-manager +$ sudo dnf install -y 'dnf-command(config-manager)' + +# Enable PowerTools +$ sudo dnf config-manager --set-enabled powertools + +# Enable EPEL +$ sudo dnf install -y epel-release + +# Install Repo for libuv-devl (NEW) +$ sudo dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-3.el8.noarch.rpm + +# Install Devel Packages +$ sudo dnf install autoconf automake curl gcc git cmake libuuid-devel openssl-devel libuv-devel lz4-devel make nc pkgconfig python3 zlib-devel +``` + +**openSUSE:** + +``` +$ sudo zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel libopenssl-devel libelf-devel libmnl-devel protobuf-devel gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake +``` + +After installing the required dependencies, install NetData from Git checkout as shown below. + +##### 2.2.3. Install Netdata + +Git clone the Netdata repository: + +``` +$ git clone https://github.com/netdata/netdata.git --depth=100 --recursive +``` + +The above command will create a directory called **'netdata'**in the current working directory. + +Change to the 'netdata' directory: + +``` +$ cd netdata/ +``` + +Finally, install and start Netdata using command: + +``` +$ sudo ./netdata-installer.sh +``` + +**Sample output:** + +``` +^ + |.-. .-. .-. .-. .-. . netdata .-. .-. .-. .-. .-. .- + | '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' + +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---> + + --- real-time performance monitoring, done right! --- + + You are about to build and install netdata to your system. + + The build process will use /tmp for + any temporary files. You can override this by setting $TMPDIR to a + writable directory where you can execute files. + + It will be installed at these locations: + + - the daemon at /usr/sbin/netdata + - config files in /etc/netdata + - web files in /usr/share/netdata + - plugins in /usr/libexec/netdata + - cache files in /var/cache/netdata + - db files in /var/lib/netdata + - log files in /var/log/netdata + - pid file at /var/run/netdata.pid + - logrotate file at /etc/logrotate.d/netdata + + This installer allows you to change the installation path. + Press Control-C and run the same command with --help for help. + + + NOTE: + Anonymous usage stats will be collected and sent to Netdata. + To opt-out, pass --disable-telemetry option to the installer or export + the environment variable DISABLE_TELEMETRY to a non-zero or non-empty value + (e.g: export DISABLE_TELEMETRY=1). + +Press ENTER to build and install netdata to your system > **## Press ENTER Key** + +[...] + +netdata by default listens on all IPs on port 19999, +so you can access it with: + +**http://this.machine.ip:19999/** + +To stop netdata run: + + systemctl stop netdata + +To start netdata run: + + systemctl start netdata + +Uninstall script copied to: /usr/libexec/netdata/netdata-uninstaller.sh + + --- Installing (but not enabling) the netdata updater tool --- +Update script is located at /usr/libexec/netdata/netdata-updater.sh + + --- Wrap up environment set up --- +Preparing .environment file +[/home/ostechnix/netdata]# chmod 0644 /etc/netdata/.environment + OK '' + +Setting netdata.tarball.checksum to 'new_installation' + + --- We are done! --- + + ^ + |.-. .-. .-. .-. .-. . netdata .-. .-. .-. .-. .-. .- + | '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' + +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---> + + --- is installed and running now! --- + enjoy real-time performance and health monitoring... +``` + +![Install Netdata in Linux][1] + +Install Netdata in Linux + +Congratulations! Netdata has been installed and started. + +#### 2.3. Install Netdata using Package Manager + +Netdata is available in the default repositories of some Linux distributions. These packages might be bit outdated. + +**Alpine Linux:** + +To install Netdata in Alpine Linux, use **[apk][2]** package manager: + +``` +$ sudo apk add netdata +``` + +**Arch Linux:** + +The Netdata is available in the Arch Linux `**[community]**` repository. So, we can install it with [**pacman**][3] using command: + +``` +$ sudo pacman -S netdata +``` + +**Debian / Ubuntu:** + +``` +$ sudo apt install netdata +``` + +**Fedora:** + +``` +$ sudo dnf install netdata +``` + +**RHEL / CentOS / AlmaLinux / Rocky Linux:** + +In Enterprise Linux operating systems, you need to enable **`[EPEL]`** repository and then install Netdata. + +``` +$ sudo dnf install epel-release +``` + +``` +$ sudo dnf install netdata +``` + +**SUSE / openSUSE:** + +``` +$ sudo zypper install netdata +``` + +To know other installation methods, refer the [**official installation instructions page**][4]. + +### 3. Allow Netdata Default Port via Firewall or Router + +If your system stays behind any firewall or router, you must allow the default port **19999** to access the NetData web interface from any remote systems on the network,. + +**On Debian, Ubuntu:** + +``` +$ sudo ufw allow 19999 +``` + +**On Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux:** + +``` +$ sudo firewall-cmd --permanent --add-port=19999/tcp +``` + +``` +$ sudo firewall-cmd --reload +``` + +### 4. Starting and Stopping Netdata Service + +To enable and start Netdata service on systems that use **Systemd**, run: + +``` +$ sudo systemctl enable netdata +``` + +``` +$ sudo systemctl start netdata +``` + +To stop Netdata service, run: + +``` +$ sudo systemctl stop netdata +``` + +To enable and start Netdata service on systems that use **Init**, run: + +``` +$ sudo service netdata start +``` + +``` +$ sudo chkconfig netdata on +``` + +To stop Netdata service: + +``` +$ sudo service netdata stop +``` + +### 5. Access Netdata via Web Browser + +Open your web browser, and navigate to **http://127.0.0.1:19999** or **http://localhost:19999/** or **http://ip-address:19999**. You will be pleased with Netdata dashboard as shown in the following screenshot. + +![Netdata Main Dashboard][5] + +Netdata Main Dashboard + +From the dashboard, you will find the complete statistics of your Linux system. Scroll down to view each section. You can also click on any section on the right corner to immediately jump to that particular section. + +### 6. Netdata Configuration + +As stated already, Netdata requires zero configuration. It works out of the box. + +The main configuration file of Netdata is located at **`/etc/netdata/netdata.conf`**. You can view it using any text editors to find most configuration options. + +You can also download and/or view Netdata default configuration file at any time by simply navigating to **http://localhost:19999/netdata.conf**. + +![Netdata Configuration File][6] + +Netdata Configuration File + +If you want to edit the Netdata configuration file, you can use `**edit-config**` script, which is the officially recommended way. + +``` +$ cd /etc/netdata +$ sudo ./edit-config netdata.conf +``` + +### 7. Netdata Metrics + +Netdata gathers thousands of metrics with zero configuration using **[300+ pre-installed collectors][7]**. These collectors will search your node in default locations and ports to find running applications and gather as many metrics as possible without you having to configure them individually. + +As I already stated, Most collectors will work without any configuration. However, you should know **[how collectors work][8]** and how to **[enable or configure collectors][9]** individually. + +### 8. Updating Netdata + +If you have installed Netdata using the Automatic one-liner installation script, Netdata will automatically update itself. + +If you have installed Netdata using your package manager, you can run the distribution-specific update command to update Netdata. For example in Arch Linux, just run the following command to update Netdata. If the updated version is available in the repository, it will be automatically installed. + +``` +$ sudo pacman -Syyu +``` + +If you have installed Netdata using Git, just go to the directory where you have cloned it (In our case it's netdata). + +``` +$ cd netdata +``` + +Pull the latest update: + +``` +$ git pull +``` + +Then, rebuild and update it using command: + +``` +$ sudo ./netdata-installer.sh +``` + +### 9. Uninstalling Netdata + +If you have installed Netdata from Git, go to the location where you have cloned Netdata: + +``` +$ cd netdata +``` + +Then, uninstall it using command: + +``` +$ sudo ./netdata-uninstaller.sh --force +``` + +If you have installed Netdata using the package manager, just use the appropriate command. For example in Arch Linux, the following command can be used to uninstall Netdata: + +``` +$ sudo pacman -Rns netdata +``` + +### 10. Frequently Asked Questions + +#### What is Netdata? + +Netdata is an Enterprise-grade, real-time infrastructure monitoring application. It is opensource and completely free. Netdata works on Linux, FreeBSD, and macOS. It also works on container platforms like Kubernetes clusters, and Docker. + +#### Which platforms are supported by Netdata? + +Netdata supports most Linux distributions (Ubuntu, Debian, CentOS, and more), container platforms (Kubernetes clusters, Docker), and many other operating systems (FreeBSD, macOS). + +#### Where can I find the Netdata main configuration file? + +Netdata main configuration file is located at **`/etc/netdata/netdata.conf`**. If you're not sure where to find it, simply open your web browser and point it **http://localhost:19999/netdata.conf**. + +#### How to download Netdata configuration file? + +Yes. After finding the location of the Netdata config file, use any one of the following commands to download Netdata configuration file. + +``` +wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf +``` + +Or + +``` +curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf +``` + +#### Who can use Netdata? + +Netdata can be used by any user who wants to view the real-time performance metrics of their Linux or Unix system. It is used by system administrators, DevOps engineers, and developers to collect everything. + +#### Is Netdata fast? + +Yes, it is amazingly fast. It is optimized to utilize 1% of the CPU and consumes a few MB of RAM. + +#### Is Netdata requires special system administration skills? + +Absolutely NOT. It requires **zero configuration** as well as **zero maintenance**. Just run it on your machine and Netdata does everything on its own. + +#### Can Netdata send notifications when something goes wrong? + +Yes! Netdata's health watchdog sends warning and critical alarms to your favorite platform to inform you of anomalies just seconds after they affect your node. + +#### Can I use Netdata to monitor my Cloud infrastructure? + +Yes! Netdata Cloud works with Netdata's free, open-source monitoring agent to monitor and troubleshoot every layer of your systems to find weaknesses before they turn into outages. + +Netdata Cloud provides: + +- Infrastructure level dashboards (each chart aggregates data from multiple nodes) +- Central dispatch of alert notifications, +- Custom dashboards editor, +- Intelligence assisted troubleshooting, to help surface the root cause of issues. + +### Conclusion + +In this guide, we looked at what is Netdata and different ways to install Netdata in Linux. We also looked at how to access the Netdata dashboard, update Netdata and uninstall it. + +Netdata is simple yet powerful real-time performance monitoring application. It requires zero configuration and works out of the box. If you ever looking for a easiest way to monitor your system performance, resource and application usage, Netdata is highly recommended. + +**Resources:** + +- [**NetData website**][10] +- [**NetData GitHub page**][11] + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/netdata-real-time-performance-monitoring-tool-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/wp-content/uploads/2022/11/Install-Netdata-in-Linux.png +[2]: https://ostechnix.com/alpine-linux-apk-command-examples/ +[3]: https://ostechnix.com/getting-started-pacman/ +[4]: https://docs.netdata.cloud/packaging/installer/ +[5]: https://ostechnix.com/wp-content/uploads/2022/11/Netdata-Main-Dashboard.png +[6]: https://ostechnix.com/wp-content/uploads/2022/11/Netdata-Configuration-File.png +[7]: https://learn.netdata.cloud/docs/agent/collectors/collectors +[8]: https://learn.netdata.cloud/docs/collect/how-collectors-work +[9]: https://learn.netdata.cloud/docs/collect/enable-configure +[10]: https://netdata.firehol.org/ +[11]: https://github.com/firehol/netdata From 2077e3b70e8842b7b057923cbafc9fdca9816847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 00:58:24 +0800 Subject: [PATCH 1941/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=2031=20Linux=20Commands=20Every=20Ubuntu=20U?= =?UTF-8?q?ser=20Should=20Know.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 31 Linux Commands Every Ubuntu User Should Know.md | 755 ++++++++++++++++++ 1 file changed, 755 insertions(+) create mode 100644 sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md diff --git a/sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md b/sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md new file mode 100644 index 0000000000..b3d18742d5 --- /dev/null +++ b/sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md @@ -0,0 +1,755 @@ +[#]: subject: "31 Linux Commands Every Ubuntu User Should Know" +[#]: via: "https://itsfoss.com/essential-ubuntu-commands/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +31 Linux Commands Every Ubuntu User Should Know +====== + +What are the **essential Ubuntu commands**? + +I have been asked this question several times by regular readers, and I have tried to avoid answering it. + +Why? Don’t I know Ubuntu commands? Nope. That’s not the reason. It is because it is difficult to categorize them. What’s essential to me may not be essential to you. + +But I guess that applies to everything and every such list of recommended applications on our portal. + +That’s why I finally gave in and created this list of basic yet **essential Linux commands** that should be helpful to you as a Ubuntu user. This is more focused on desktop Ubuntu users, but if you use Ubuntu as a server, they should also help you. + +### Essential Ubuntu Commands + +Every command I list here has multiple options and several uses. If I try giving even the most common examples of each command, it will easily turn into a pocketbook of more than 10,000 words. + +I will not go into detail with any of these commands. I’ll list the purpose of each command with its basic syntax. You can read more about using these commands from their linked tutorials. + +**Recommended reading before you start following the list:** + +- Concept of [path in Linux][1] +- [Concept of file permission][2] +- Knowing the [terminal jargon][3] + +Another thing. I have used the term **folder** here more than the **directory**. + +A [folder is called a directory in Linux][4], and puritans may not like this. However, I believe it is easier to grasp for beginners. + +#### 1. ls command: List the content of a folder + +This is among the first few commands a new Linux user learns. This command lets you see what files and folders are in your current folder. + +``` +ls +``` + +You can use the long listing option ls -l to see details like file size, permission, modified time, etc. You can sort and control these options if you want to. + +``` +ls -l +``` + +![ls command ubuntu][5] + +**Related Read**: [ls command examples][6] + +#### 2. cd command: Change the directory + +By default, you start in your home directory. You’ll often require to change the directory and move to another one. + +For example, you downloaded a deb file or script. Now you want to run it. You can do that from your present working directory by providing the full path but switching to that location makes things easier. + +The cd command stands for **change directory;**with this, you can change your location and move to another directory. + +![cd command examples][7] + +At this point, I highly recommend reading about the concept of paths in Linux so that things are easy to understand while navigating through directories in the Linux command line. + +**Recommended Read**: [cd command examples][8] + +#### 3. cat command: Read a text file + +If you quickly want to see the contents of a text file in Linux, **cat** is the command you use. It displays the contents on the screen. + +``` +cat filename +``` + +![cat command example][9] + +You can also use the cat command to create new files or add more text to existing files. + +**Recommended Read**: [cat command examples][10] + +#### 4. less command: Read a large text file + +The cat command is good enough for viewing small text files. But I won’t recommend using cat if you have a huge text file with hundreds of lines. It will flood your screen with all the text, and you will have difficulty with it. + +This is where the less command comes into the picture. When you open a file with less, it opens the file in pages. You can scroll up/down, look for text, and more. + +![reading large files with less command][11] + +Once you are done reading the file, you can **exit the less view by pressing the Q key**. You’ll notice that nothing is displayed on the screen. Your screen is clean. + +**Suggested Read**: [less command examples][12] + +#### 5. touch command: Create new files + +There are multiple ways of creating new files in the Linux terminal. The cat command you saw above can also create new files. + +However, I prefer the touch command for this purpose. + +``` +touch new_file_name +``` + +![touch command ubuntu][13] + +If you use it with existing files, their timestamps will be modified. + +**Also Read**: [touch command examples][14] + +#### 6. mkdir command: Make new folders + +While there is no specific command for creating new files, there is a dedicated command for making new folders (or directories, as we call them in Linux). + +``` +mkdir new_dir +``` + +![mkdir command example][15] + +**Explore More Here**: [mkdir command examples][16] + +#### 7. cp command: Copy files and folders + +Copying files and folders in the command line is also one of the common tasks you will encounter. The cp command, short for copy, is used for this purpose. + +Imagine that you have to modify a configuration file. A smart move will be to copy the file with another name. This way, you’ll have a backup of the file. + +``` +cp existing_file.txt existing_file.back +``` + +You can use the same cp command for copying directories as well. For that, you must specify the recursive option `**-r**`: + +``` +cp -r dir another_location +``` + +![cp command example][17] + +**You May Also Read**: [cp command examples][18] + +#### 8. mv command: Cut-paste or rename files and folders + +The mv command stands for ‘move’. When you copy a file to another location, it remains in its original place. + +The mv command moves the files and folders to the other location. You can think of it as a cut-paste operation. + +``` +mv file.txt /another/location +``` + +You can use the mv command to rename the file as well. + +``` +mv file.txt new_file.txt +``` + +The same mv command also moves or renames folders without any special options. + +![mv command example][19] + +**Recommended Read**: [mv command examples][20] + +#### 9. rm command: Remove files and folders + +To delete files in the Linux terminal, you use the **rm** (short for remove) command. + +``` +rm filename +``` + +There is no undo option after you delete files in the command line. This is why you should be extremely careful while deleting files. If you are afraid of deleting the wrong file, use the interactive mode with option -i, which gives you an additional prompt to confirm the action. + +``` +rm -i filename +``` + +With the recursive option -r, you can also use the same rm command to delete folders. + +![rm command examples][21] + +**Recommended Read**: [rm command examples][22] + +#### 10. nano: Edit files + +Sooner or later, you’ll be required to make changes to the contents of a file. Imagine that you have to change a configuration file of SSH, grub, or some other application. + +There are [command line-based t][23]ext editors for this purpose. Ubuntu comes with Nano editor preinstalled, and it is relatively easier to use than Vim, Emacs, etc. + +**If you are curious****about differences**, read our [Nano vs. Vim comparison][24] article. + +Easier to use doesn’t mean the same comfort as a GUI-based text editor. You will have to use the keyboard shortcuts for moving around, making changes, saving, and exiting files. + +To open a new, unnamed file with nano, use: + +``` +nano +``` + +To edit an existing file in Nano, use: + +``` +nano filename +``` + +In both cases, you should see an interface like this. + +![nano command example][25] + +To save (or discord changes) and exit the editor interface, use the Ctrl+x keys. + +Please refer to the [Nano beginner guide][26] I created earlier to get comfortable with it. + +#### 11. clear: Clear terminal screen + +Nano feels like a complicated one, right? Let me share a simple command. + +The clear command clears the terminal. That’s it. + +``` +clear +``` + +And why do you need to do that? Well, if your terminal screen is flooded with random stuff and you want to do something new. Cleaning the terminal is like cleaning the board or opening a new page in your notebook. + +#### 12. ps: Check and handle processes + +The ps command is for handling the processes running on your system. Each process has an associated ID called PID, which can be used for various purposes, such as [terminating a process][27]. + +``` +[[email protected]][28]:~$ ps + PID TTY TIME CMD + 15358 ? 00:00:00 bash + 15404 ? 00:00:00 ps +``` + +Here, + +- **PID: Process ID** +- **TTY: Controlling terminal associated with the process (Not that important these days)** +- **TIME: Total CPU usage time** +- **CMD: Name of command that runs the process** + +But a system cannot run just 2-3 processes, can it? To see all the processes running by all users, use: + +``` +ps aux +``` + +This will give a massive list of processes and more details about them. If you run this command, now will be an excellent time to use the **clear** command. + +![list processes ubuntu][29] + +**Recommended Read**: [ps command examples][30] + +#### 13. top: System monitor + +While the ps command gives you all the running processes, the top command gives you a real-time view of the processes and the system resource consumption. + +``` +top +``` + +Consider it like the terminal variant of the task manager in Linux. You’ll see a lot of interesting details with the top command. + +I primarily use the top command to check which process takes too much CPU or RAM. There are [better top alte][31][r][31][natives][31] if you are interested to experiment. + +![top command ubuntu][32] + +To [stop the running top command][33], use the **Ctrl+C** keyboard shortcut. + +**Recommended Read**: [Using top command effectively as a task manager][34] + +#### 14. lsblk: List disks and partitions + +The **lsblk** command lists all the block devices on your system. In really simple (and not entirely technically accurate) terms, it displays the disks and partitions. + +``` +[email protected]:~# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +loop0 7:0 0 79.9M 1 loop /snap/lxd/22923 +loop1 7:1 0 103M 1 loop /snap/lxd/23541 +loop2 7:2 0 63.2M 1 loop /snap/core20/1623 +loop3 7:3 0 48M 1 loop /snap/snapd/17336 +loop4 7:4 0 48M 1 loop /snap/snapd/17029 +loop6 7:6 0 63.2M 1 loop /snap/core20/1634 +vda 252:0 0 25G 0 disk +├─vda1 252:1 0 24.9G 0 part / +├─vda14 252:14 0 4M 0 part +└─vda15 252:15 0 106M 0 part /boot/efi +vdb 252:16 0 466K 1 disk +[email protected]:~# +``` + +#### 15. fdisk: List and Manage disks and partition + +Another similar but better command is the **fdisk** command. It lets you manipulate the disk partitions. This means you can create new partitions and delete and resize existing ones with this command. + +You can also use it to list all the block devices, including [loop devices][35], on your system. + +``` +sudo fdisk -l +``` + +The output could be huge if you have many partitions, disks, and loop devices (created by snap applications). I am showing a relevant part of the output here: + +``` +Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors +Units: sectors of 1 * 512 = 512 bytes +Sector size (logical/physical): 512 bytes / 512 bytes +I/O size (minimum/optimal): 512 bytes / 512 bytes +Disklabel type: gpt +Disk identifier: 0B7C796D-51CD-4DD4-962A-7D94B31690E2 + +Device Start End Sectors Size Type +/dev/vda1 227328 52428766 52201439 24.9G Linux filesystem +/dev/vda14 2048 10239 8192 4M BIOS boot +/dev/vda15 10240 227327 217088 106M EFI System +``` + +#### 16. find: Search for files + +Even as a desktop user, you’ll encounter cases where you may have to search for files in the Linux command line. + +The find command is an extensive and versatile command for this purpose. It has more than fifty options, and you will probably never need all of them. + +Here’s an example of the find command that will give you all the files that end with .**txt** extension in the current directory. + +``` +find . -type f -name "*.txt" +``` + +Other common examples include finding files by size, modified time, etc. You can [combine find with exec][36] or [xargs][37] to take actions on the result of the find command. For example, you can look for all the .txt files and choose to delete them. + +**Also Read:**[find command examples][38] + +#### 17. grep: Search in file content + +The find command search for files based on their name and type. If you want to search based on the content of the files, you use the grep command. + +So, instead of looking for all files ending with .txt, you look for all files containing the text ‘foss’ with grep. + +``` +grep -ri search_term +``` + +![grep command examples][39] + +Want more? Here are some more [practical examples of the grep command][40]. The handy [grep cheat sheet][41] should help you out. + +#### 18. kill: Terminate processes + +Violence is not the answer … it’s the solution. + +Just kidding! + +If you have a misbehaving process that takes too many system resources, you can [find it and then terminate][27] it [using the kill command][42]. + +``` +sudo kill -9 process_ID_or_Name +``` + +As you can see in the above command, you need to know the process ID (PID) or the name to terminate it. You can use the ps or the top command to get the PID or exact process name. + +``` +ps aux | grep -i “name of your desired program” +``` + +Did you notice the use of grep command? You are already utilizing the commands mentioned in this list. + +![find kill process ubuntu][43] + +I don’t know about you, but I feel like [Liam Nesson in Taken][44] when I look for rogue processes to terminate. + +![taken meme find you kill you][45] + +#### 19. history: Look back into what commands you ran in the past + +So, you used a specific Linux command a few days ago. Now you need to run it again, but you cannot recall it correctly. + +You can press the up and down arrow keys. + +That’s a familiar scenario for many Linux users; this is where the history command helps. + +In Ubuntu, your shell keeps a history of the commands you run. Enter history in the terminal, and you should see a history of commands you ran in the past. + +![history command ubuntu][46] + +You can choose to run an entry from the history using its number like this: + +``` +!number +``` + +But even the history could be huge, so (again) use the grep command to filter your search term. + +``` +[email protected]:~$ history | grep aux + 1915 ps aux + 1952 ps aux | grep -i spotify + 1955 ps -aux | grep -i calculator + 1957 ps -aux | grep -i calculator + 1959 ps -aux | grep -i calculator + 1970 history | grep aux +``` + +There is another way to access the command history and search it. Press **Ctrl+R** and then enter the search term. + +**Recommended Read**: [history command examples][47] + +#### 20. chmod: Change File Permissions + +I highly recommend reading about [Linux file permissions][2] at this stage. That will help you understand things better than just running the [chmod command][48] blindly. + +The chmod (change mode) command is used for changing the permissions on a file. + +The most common use of this command is when you want to make a file executable. Got a shell script? Make it executable like this: + +``` +chmod u+x file executable +``` + +There are many more use cases that make chmod a must-know command for Ubuntu users. + +**Fun fact**: The parent company of **It’s FOSS** is **chmod777 Media Tech**. chmod 777 command gives all the permissions to all the users. This represents our motto of ‘knowledge access to everyone‘. + +#### 21. lshw: Get the Hardware Details + +There are tons of command line [tools to get the hardware details][49] and other system information in Linux. + +The one that probably comes preinstalled on Ubuntu is**lshw** (short for list hardware). + +Now, by default, it displays a vast output with details about all the hardware component,s and trust me, that’s not very easy to understand. + +``` +lshw +``` + +You may feel the temptation of using grep here, but there is no need for that. The output of lshw is divided into classes and you can use that to show the details for a class of hardware. + +Want to [know the manufacturer of your network adapters][50]? Use this: + +``` +lshw -C network +``` + +![lshw command examples][51] + +#### 22. sudo: Run Commands With root Privileges + +You must have noticed that I used sudo as a prefix for some commands I discussed previously. + +By default, in Ubuntu, **sudo** is configured in a way that it allows you (to the default admin user) to run any command with root privileges. + +You are asked to enter a password, and it’s your user account password. When you enter the password, nothing is displayed on the screen. New users get baffled by it, but it’s the expected behavior in UNIX/Linux. You type the password and press enter. + +![using sudo example ubuntu][52] + +More about [root user in Ubuntu here][53]. + +#### 23. apt: Install, Remove and Manage .deb packages + +The**apt** command is used for managing packages in Ubuntu. You’ll have to use it with sudo as these are administrative tasks. + +To install a package, use: + +``` +sudo apt install package_name +``` + +To delete an install software, use: + +``` +sudo apt remove package_name +``` + +To update your Ubuntu system with all upgradable packages at once: + +``` +sudo apt update && sudo apt upgrade +``` + +The [difference between apt update and upgrade][54] is that an update refreshes the package cache and the upgrade actually installs the update. + +There is a lot more to the apt command. You can read [this detailed apt command guide][55]. + +#### 24. add-apt-repository: Add, and Remove PPAs + +Alright! This one is not as popular as it was a decade ago. You’ll still come across the [add-apt-repository command][56] here and there. It’s used for managing PPA (unofficial, user-generated repositories) in your system. + +While following tutorials on the web, you may come across installation instructions that are composed of three lines: + +``` +sudo add-apt-repository ppa:dr-akulavich/lighttable +sudo apt update +sudo apt install lighttable-installer +``` + +The first command is adding the PPA (external repository). You are already familiar with the following two, which are used to update the package cache and install software provided by the PPA repository you just added. + +To delete a PPA, you should first delete the software you installed from it and then remove it like this: + +``` +sudo add-apt-repository -r ppa:dr-akulavich/lighttable +``` + +I have a [complete guide on PPA][57] for more details on this topic. + +#### 25. snap: Install, Remove and Manage snap packages + +So far, you know apt packages and their management. However, Ubuntu also uses and actively recommends using its snap packaging format. + +Learning a few basic snap commands will help you manage these packages effectively. + +To find a package, use: + +``` +snap find search_term +``` + +To install a package, use: + +``` +sudo snap install package_name +``` + +To list installed snap applications: + +``` +snap list +``` + +To remove an installed Snap application, use: + +``` +sudo snap remove package_name +``` + +#### 26. ip: Check IP address and other info + +The **ip** command lets you [check your IP address][58]. You can also see and manipulate the routes, network devices, and more. + +``` +ip a +``` + +![ip address check ubuntu][59] + +#### 27. ping: Check if the remote system is reachable + +Ping is another [Linux networking command][60] you should be aware of. To check whether a remote system is available or not, give its IP address to the ping command: + +``` +ping ip_address +``` + +You can also use it to check if a website is down though it is not very accurate these days. + +![ping command ubuntu][61] + +Use **Ctrl+C** to stop the running ping command. + +**Recommended Read**: [ping command examples][62] + +#### 28. ssh: Connecting to remote systems + +I was skeptical about adding ssh to the list of must-know Linux commands. Many desktop users may not need it. SSH is used for connecting to other Linux systems from your terminal. + +``` +ssh [email protected]_address_of_remote_system +``` + +You need to know the user and password of the remote system, of course. + +If you have cloud servers or a home setup where other Linux systems are available, you can use it to connect to them from your primary system. + +#### 29. scp: Copy files between remote systems + +Since I included ssh in the list, it was only fair to include something for [transferring files between the remote systems over SSH connection][63]. + +The scp command works almost like the cp command you saw earlier. + +Here’s an example that copies the file from the home directory of the user on the remote system to the current directory of your locally logged in system. + +``` +scp [email protected]_address:/home/username/filename . +``` + +**Recommended Read**: [scp command examples][64] + +#### 30. exit: Close the terminal + +The list of essential Linux commands is ending. So let’s talk about exiting the terminal. It’s quite simple. Just enter: + +``` +exit +``` + +If you are using another user or shell, you’ll be logged out from that. + +You may also use **Ctrl+D**keys to exit the terminal. + +#### 31. shutdown: Turn off or reboot the system + +Alright. Let me share a final command if you haven’t exited the terminal yet. + +How about [turning off your system][65] from the command line? + +[Use the shutdown command][66] for this purpose: + +``` +shutdown +``` + +The above command [schedules a shutdown][67] in one minute. You can make it turn off immediately with: + +``` +shutdown -now +``` + +You can use the same shutdown command for [rebooting your Ubuntu system][68] as well: + +``` +shutdown -r now +``` + +#### Bonus tip: man: Learn about commands in detail + +One more, and this is the last one, I promise. All Linux systems come with a manual for the commands. It’s called manpage, and you can access the manual page of an installed command with the following: + +``` +man command_name +``` + +[Understanding the manpage][69] can be overwhelming for new users, but it comes quite handy. It gives you the generic syntax and description of all the options a command has. + +When you are unsure about using a command, try checking its man page before searching for it on the internet. + +### There’s Always More … + +**That’s just about 30 commands. And that’s not even 20% of the Linux commands**. I haven’t covered many networking commands. I didn’t even go for the user management commands. + +I wrote this keeping a regular Ubuntu desktop user in mind. These are the kinds of commands you are more likely to use. Having some knowledge about them would be helpful in the long run. + +Other than that, there is no end to learning. Even the most seasoned Linux users constantly discover and learn new stuff. + +Considering that you are interested in learning Linux commands, let me recommend some[good Linux books][70] and resources. + +- [How Linux Works][71]: Explains the working of Linux more than the commands +- [The Linux Command Line by William Shotts][72]: Legally available to download for free in PDF format +- [Linux Pocket Guide by Daniel J Barrett][73]: Linux commands into category and briefly explained with small examples +- [Learn Linux Quickly][74]: Entirely focused on Linux commands with proper examples and sample exercises + +Apart from that, you can also learn from websites like [Linux Journey][75] and [Linux Handbook][76]. + +**I know it’s been a long read**, but it’s not even the tip of the iceberg. There is always more to learn, but it’s also not the case that you have to feel miserable if you don’t know all the Linux commands. + +**No one knows everything.** + +Now, it’s your turn. Did you find this list of Ubuntu commands helpful? + +**If you had to add some more commands to it, what would they be? The comment section is all yours.** + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/essential-ubuntu-commands/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://linuxhandbook.com/absolute-vs-relative-path/ +[2]: https://linuxhandbook.com/linux-file-permissions/ +[3]: https://itsfoss.com/basic-terminal-tips-ubuntu/ +[4]: https://itsfoss.com/folder-directory-linux/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/ls-command-ubuntu.png +[6]: https://linuxhandbook.com/ls-command/ +[7]: https://itsfoss.com/wp-content/uploads/2022/11/cd-command-examples.png +[8]: https://linuxhandbook.com/cd-command-examples/ +[9]: https://itsfoss.com/wp-content/uploads/2022/11/cat-command-example.png +[10]: https://linuxhandbook.com/cat-command/ +[11]: https://itsfoss.com/wp-content/uploads/2022/11/reading-large-files-with-less-command.png +[12]: https://linuxhandbook.com/less-command/ +[13]: https://itsfoss.com/wp-content/uploads/2022/11/touch-command-ubuntu.png +[14]: https://linuxhandbook.com/touch-command/ +[15]: https://itsfoss.com/wp-content/uploads/2022/11/mkdir-command-example.png +[16]: https://linuxhandbook.com/mkdir-command/ +[17]: https://itsfoss.com/wp-content/uploads/2022/11/cp-command-example.png +[18]: https://linuxhandbook.com/cp-command/ +[19]: https://itsfoss.com/wp-content/uploads/2022/11/mv-command-example.png +[20]: https://linuxhandbook.com/mv-command/ +[21]: https://itsfoss.com/wp-content/uploads/2022/11/rm-command-examples.png +[22]: https://linuxhandbook.com/remove-files-directories/ +[23]: https://itsfoss.com/command-line-text-editors-linux/ +[24]: https://itsfoss.com/vim-vs-nano/ +[25]: https://itsfoss.com/wp-content/uploads/2022/11/nano-command-example.png +[26]: https://itsfoss.com/nano-editor-guide/ +[27]: https://itsfoss.com/how-to-find-the-process-id-of-a-program-and-kill-it-quick-tip/ +[28]: https://itsfoss.com/cdn-cgi/l/email-protection +[29]: https://itsfoss.com/wp-content/uploads/2022/11/list-processes-ubuntu.webp +[30]: https://linuxhandbook.com/ps-command/ +[31]: https://itsfoss.com/linux-system-monitoring-tools/ +[32]: https://itsfoss.com/wp-content/uploads/2022/11/top-command-ubuntu.png +[33]: https://itsfoss.com/stop-program-linux-terminal/ +[34]: https://linuxhandbook.com/top-command/ +[35]: https://itsfoss.com/loop-device-linux/ +[36]: https://linuxhandbook.com/find-exec-command/ +[37]: https://linuxhandbook.com/xargs-command/ +[38]: https://linuxhandbook.com/find-command-examples/ +[39]: https://itsfoss.com/wp-content/uploads/2022/11/grep-command-examples.png +[40]: https://linuxhandbook.com/grep-command-examples/ +[41]: https://linuxhandbook.com/grep-command-cheatsheet/ +[42]: https://linuxhandbook.com/kill-process/ +[43]: https://itsfoss.com/wp-content/uploads/2022/11/find-kill-process-ubuntu-800x264.png +[44]: https://www.imdb.com/title/tt0936501/?ref_=tt_urv +[45]: https://itsfoss.com/wp-content/uploads/2022/11/taken-meme-find-you-kill-you.jpg +[46]: https://itsfoss.com/wp-content/uploads/2022/11/history-command-ubuntu-800x534.png +[47]: https://linuxhandbook.com/history-command/ +[48]: https://linuxhandbook.com/chmod-command/ +[49]: https://itsfoss.com/hardinfo/ +[50]: https://itsfoss.com/find-network-adapter-ubuntu-linux/ +[51]: https://itsfoss.com/wp-content/uploads/2022/11/lshw-command-examples.png +[52]: https://itsfoss.com/wp-content/uploads/2022/11/using-sudo-example-ubuntu.png +[53]: https://itsfoss.com/root-user-ubuntu/ +[54]: https://itsfoss.com/apt-update-vs-upgrade/ +[55]: https://itsfoss.com/apt-command-guide/ +[56]: https://itsfoss.com/add-apt-repository-command-not-found/ +[57]: https://itsfoss.com/ppa-guide/ +[58]: https://itsfoss.com/check-ip-address-ubuntu/ +[59]: https://itsfoss.com/wp-content/uploads/2022/11/ip-address-check-ubuntu.png +[60]: https://itsfoss.com/basic-linux-networking-commands/ +[61]: https://itsfoss.com/wp-content/uploads/2022/11/ping-command-ubuntu.png +[62]: https://linuxhandbook.com/ping-command/ +[63]: https://linuxhandbook.com/transfer-files-ssh/ +[64]: https://linuxhandbook.com/scp-command/ +[65]: https://learnubuntu.com/shutdown-ubuntu/ +[66]: https://linuxhandbook.com/linux-shutdown-command/ +[67]: https://itsfoss.com/schedule-shutdown-ubuntu/ +[68]: https://learnubuntu.com/restart-ubuntu/ +[69]: https://itsfoss.com/linux-man-page-guide/ +[70]: https://itsfoss.com/best-linux-books/ +[71]: https://nostarch.com/howlinuxworks3 +[72]: https://linuxcommand.org/tlcl.php +[73]: https://www.oreilly.com/library/view/linux-pocket-guide/9780596806347/ +[74]: https://linuxhandbook.gumroad.com/l/mEsrwA +[75]: https://linuxjourney.com/ +[76]: https://linuxhandbook.com/a-to-z-linux-commands/ From d1519cb0489ec64b2ed2d11a56f59847a1c0e437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 00:58:54 +0800 Subject: [PATCH 1942/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221109.2=20=E2=AD=90=EF=B8=8F=20Microsoft=20Teams?= =?UTF-8?q?=20Progressive=20Web=20App=20Experience=20is=20Here=20for=20Lin?= =?UTF-8?q?ux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...essive Web App Experience is Here for Linux.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md diff --git a/sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md b/sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md new file mode 100644 index 0000000000..64296aea6c --- /dev/null +++ b/sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md @@ -0,0 +1,102 @@ +[#]: subject: "Microsoft Teams Progressive Web App Experience is Here for Linux" +[#]: via: "https://news.itsfoss.com/microsoft-teams-pwa-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft Teams Progressive Web App Experience is Here for Linux +====== + +Microsoft Teams PWA is now available for Linux users! + +![Microsoft Teams Progressive Web App Experience is Here for Linux][1] + +After recently [dropping support][2] for a native Microsoft Teams Linux app, Microsoft has finally made the **PWA** (progressive web app) available to everyone. + +PWA is an app that uses the same code as a website but with a few changes that make it easier to use it as an app. + +Users of the native Linux app have mixed feelings about this move, some welcoming it and others not. + +Let us take a look at what Microsoft has done with this app. + +### ⭐ Microsoft Teams Progressive Web App + +![microsoft teams pwa][3] + +With the [Microsoft Teams][4] PWA, you get several features already available on the Windows client. So, it is a good thing for most users. + +The features include: + +- **Ability to set custom backgrounds** +- **A new gallery view** +- **Reactions to chats** +- **Raise-a-hand feature during meetings** +- **System Notifications** + +The Teams PWA comes with a dock icon and can be set to auto-start on system boot. + +Additionally, it gets easy access to app permissions and can be used with Conditional Access configuration (for Azure users), applied via the Endpoint Manager. + +**Related Read 📖** + +### 👇 How to Use the PWA + +![microsoft teams pwa install prompt][5] + +When you first log in to Teams on a web browser, it should show you a pop-up similar to the one shown above. + +Click on it to install the PWA, launch it from your application list, and then use it like a desktop app. + +> 💡Users of Firefox beware: Only Chromium-based browsers like Chrome and Edge support PWAs. + +But, if it doesn't show you a pop-up, or you mistakenly clicked on 'Not-now', follow these steps to install the Teams PWA. + +![microsoft teams pwa edge][6] + +For **Microsoft Edge**: + +1. Log in to Teams through the [official website][7]. 2. Click on the three-dot menu of the browser. 3. Then go into '**Apps**.' as shown in the screenshot above. 4. Click on '**Install this site as an app.**'  5. Set the app name and click on '**Install**' to set up the Teams PWA. + +If you are using Google Chrome on Linux, here's what it looks like: + +![microsoft teams pwa chrome][8] + +The steps include login to **Teams → Three-dot menu → More tools → Create shortcut.** + +Next, you need to do the following to create the PWA: + +![microsoft teams pwa chrome 2][9] + +- **Set app name** +- **Enable 'Open as window'** +- **Click on 'Create'** + +That's pretty easy! So, have you tried Microsoft Teams PWA experience on Linux yet? + +Share your thoughts in the comments below! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-teams-pwa-linux/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/ms-teams-pwa-arrives-on-linux.png +[2]: https://news.itsfoss.com/microsoft-linux-app-retire/ +[3]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA.png +[4]: https://www.microsoft.com/en-in/microsoft-teams/group-chat-software +[5]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Install.png +[6]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Edge.png +[7]: https://teams.live.com +[8]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Chrome.png +[9]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Chrome_2.png From b6915cae43fbff5d177308e19acb2a2b4b37b02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 01:00:09 +0800 Subject: [PATCH 1943/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?A=20Guide=20to=20systemd=20journal=20Maintenance=20[With=20Exam?= =?UTF-8?q?ples].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to systemd journal Maintenance [With Examples].md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md new file mode 100644 index 0000000000..1623dec544 --- /dev/null +++ b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md @@ -0,0 +1,188 @@ +[#]: subject: "A Guide to systemd journal Maintenance [With Examples]" +[#]: via: "https://www.debugpoint.com/systemd-journald-clean/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A Guide to systemd journal Maintenance [With Examples] +====== + +**Systemd comes with many built-in features to manage the system logs. In this guide, we explain how you can manage system journals, logs and take action on them such as rotating, archiving, and clear logs.****We also explain the manual systems journal clean method and using config file changes.** + +If your Linux distribution supports [systemd][1], then it collects logs from all processes, applications of the system every second which starts from the boot. All these logging events are managed by `journald` daemon of systemd. The journald collects all the logs (info, warnings, errors, etc) and stores them as binary data in the disk files.  + +As the logs remain in the disk and every second it is collected, it takes up huge disk space; especially for older systems, servers. For example, in one of my test systems which are running for around one year, the log file size is in GBs. + +If you manage multiple systems, servers, it is always recommended to properly manage journald logs for efficient operation. Let’s take a look at how you can manage the log files. + +### The systemd journal Maintenance + +Using the journalctl utility of systemd, you can query these logs, perform various operations on them. For example, viewing the log files from different boots, check for last warnings, errors from a specific process or applications. If you are unaware of these, I would suggest you quickly go through this tutorial – [“use journalctl to View and Analyze Systemd Logs [With Examples]][2]” before you follow this guide.  + +#### Where are the physical journal log files? + +The systemd’s journald daemon collects logs from every boot. That means, it classifies the log files as per the boot.  + +The logs are stored as binary in the path `/var/log/journal` with a folder as machine id. + +**For example:** + +![Screenshot of physical journal file -1][3] + +![Screenshot of physical journal files -2][4] + +Also, remember that based on system configuration, runtime journal files are stored at `/run/log/journal/`. And these are removed in each boot.  + +#### Can I manually delete the log files? + +You can, but don’t do it. Instead, follow the below instructions to clear the log files to free up disk space using journalctl utilities. + +#### How much disk space is used by systemd log files? + +Open up a terminal and run the below command. + +``` +journalctl --disk-usage +``` + +This should provide you with how much is actually used by the log files in your system. + +![journalctl disk usage command][5] + +If you have a graphical desktop environment, you can open the file manager and browse the path `/var/log/journal` and check the properties. + +#### systemd journal clean process + +The effective way of clearing the log files should be done by `journald.conf` a configuration files. Ideally, you should not manually delete the log files even if the journalctl provides the utility to do that. + +Let’s take a look at how you can delete it [manually][6], then I will explain the configuration changes in `journald.conf` so that you do not need to manually delete the files from time to time; Instead, the systemd takes care of it automatically based on your configuration.  + +##### Manual delete + +First, you have to `flush` and `rotate` the log files. Rotating is a way of marking the current active log files as an archive and creating a fresh logfile from this moment. The flush switch asks the journal daemon to flush any log data stored in `/run/log/journal/` into `/var/log/journal/`, if persistent storage is enabled. + +Then, after flushing and rotating, you need to run journalctl with`vacuum-size`, `vacuum-time`, and `vacuum-files` switches to force systemd to clear the logs.  + +**Example 1:** + +``` +sudo journalctl --flush --rotate +``` + +``` +sudo journalctl --vacuum-time=1s +``` + +The above set of commands removes all archived journal log files until the last second. This effectively clears everything. So, be careful while running the command.  + +![journal clean up - example][7] + +After clean up: + +![After clean up - journal space usage][8] + +You can also provide the following suffixes as per your need following the number. + +- s: seconds +- m: minutes +- h: hours +- days +- months +- weeks +- years + +**Example 2:** + +``` +sudo journalctl --flush --rotate +``` + +``` +sudo journalctl --vacuum-size=400M +``` + +This clears all archived journal log files and retains the last 400MB files. Remember this switch applies to only archived log files only, not on active journal files. You can also use suffixes as below. + +- K: KB +- M: MB +- G: GB + +**Example 3:** + +``` +sudo journalctl --flush --rotate +``` + +``` +sudo journalctl --vacuum-files=2 +``` + +The vacuum-files switch clears all the journal files below the number specified. So, in the above example, only the last 2 journal files are kept and everything else is removed. Again, this only works on the archived files. + +You can combine the switches if you want, but I would recommend not to. However, make sure to run with `--rotate` switch first. + +### Automatic delete using config files + +While the above methods are good and easy to use, it is recommended that you control the journal log file cleanup process using the journald configuration files which present at `/etc/systemd/journald.conf`.  + +The systemd provides many parameters for you to effectively manage the log files. By combining these parameters you can effectively limit the disk space used by the journal files. Let’s take a look. + +| **journald.conf parameter** | **Description** | **Example** | +| :- | :- | :- | +| SystemMaxUse | Specifies the maximum disk space that can be used by the journal in persistent storage | SystemMaxUse=500M | +| SystemKeepFree | Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage. | SystemKeepFree=100M | +| SystemMaxFileSize | Controls how large individual journal files can grow to in persistent storage before being rotated. | SystemMaxFileSize=100M | +| RuntimeMaxUse | Specifies the maximum disk space that can be used in volatile storage (within the /run filesystem). | RuntimeMaxUse=100M | +| RuntimeKeepFree | Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem). | RuntimeMaxUse=100M | +| RuntimeMaxFileSize | Specifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated. | RuntimeMaxFileSize=200M | + +If you add these values in a running system in `/etc/systemd/journald.conf` file, then you have to restart the journald after updating the file. To restart use the following command.  + +``` +sudo systemctl restart systemd-journald +``` + +### Verification of log files + +It is wiser to check the integrity of the log files after you clean up the files. To do that run the below command. The command shows the PASS, FAIL against the journal file. + +``` +journalctl --verify +``` + +![verify log files][9] + +### Closing Notes + +I hope this guide helps you to understand the basics of the systemd journal management process. With these, you can manage the disk space used by the log files in your system or servers by limiting the space, clearing old log files. These are just the guideline commands, you can combine these in multiple ways to achieve your system demands.  + +- [journalctl manual][10] +- [journald.conf manual][11] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/systemd-journald-clean/ + +作者:[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.freedesktop.org/wiki/Software/systemd/ +[2]: https://www.debugpoint.com/2020/12/systemd-journalctl/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/01/Screenshot-of-physical-journal-file-1.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2021/01/Screenshot-of-physical-journal-files-2.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2021/01/journalctl-disk-usage-command.jpg +[6]: https://www.debugpoint.com#delete-using-journal-conf +[7]: https://www.debugpoint.com/wp-content/uploads/2021/01/journal-clean-up-example.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/After-clean-up-journal-space-usage.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/verify-log-files.png +[10]: https://www.freedesktop.org/software/systemd/man/journalctl.html +[11]: https://www.freedesktop.org/software/systemd/man/journald.conf.html From ffcc78bb34d109461038c90c16c27dc158b32b69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 01:02:52 +0800 Subject: [PATCH 1944/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20use=20journalctl=20to=20View=20and=20Analyze=20Syste?= =?UTF-8?q?md=20Logs=20[With=20Examples].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o View and Analyze Systemd Logs [With Examples].md | 257 ++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md diff --git a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md new file mode 100644 index 0000000000..aa7d864ff8 --- /dev/null +++ b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md @@ -0,0 +1,257 @@ +[#]: subject: "How to use journalctl to View and Analyze Systemd Logs [With Examples]" +[#]: via: "https://www.debugpoint.com/systemd-journalctl/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to use journalctl to View and Analyze Systemd Logs [With Examples] +====== + +**This guide explains the basics of the journalctl utility of [Systemd][1] and its various commands. You can use these commands for troubleshooting desktop and server logs in Linux. This is how you can use journalctl to view and analyze Systemd Logs with different examples.** + +### Introduction + +Many say that Systemd is not good, it is heavy on the system and it is a debated topic always. But you can not deny that it provides a well set of utilities to manage, troubleshoot a system. Imagine you end up with a broken system with no GUI. You probably messed up boot and GRUB as well. In those kinds of scenarios or in general – you can boot from a LIVE system, mount your Linux partition and explore the Systemd logs to find out about the problem. + +Systemd has three basic components as follows – + +- **systemd**: System and service manager for Linux operating systems. +- **systemctl**: Command to introspect and control the state of the systemd system and service manager. +- **systemd-analyze**: Provides system boot-up performance statistics and retrieve other state and tracing information from the system and service manager + +Apart from these three, there are additional services that systemd provides such as – journald, logind, networkd, etc. In this guide we will talk about the journald service of systemd. + +### journald – systemd journal daemon + +By design, systemd provides a centralized way of handing all operating system logs from processes, applications, etc. All these logging events are handled by journald daemon of systemd. The journald daemon collects all logs from everywhere of the Linux operating systems and stores themes as binary data in files. + +The advantages of centralized logging of events, system problems as binary data are many. For example, as the system logs are stored as binary and not text – you can translate in many ways such as text, JSON objects for various needs. Also, it is super easy to track down to a single event as the logs are stored sequentially via date/time manipulation of the logs. + +Remember the log files that journald collects are in thousands of lines and it gets updated for every event, every boot. So if you have a long time running Linux operating system – the journal logs size should in GBs. As the logs are in thousands, it’s better to filter with basic commands to find out more about the system problems. + +#### The journald Configuration File + +The configuration file of the journald is present in the below path. It contains various flags on how the logging happens. You can take a look at the file and make the changes necessary. But I would recommend not to modify this file unless you know what you are doing. + +``` +/etc/systemd/journald.conf +``` + +#### Where journald stores the binary log files + +The journald stores the logs in binary format. They are stored inside a directory under this path. + +``` +/var/log/journal +``` + +For example, in the below path there is a directory that contains all the system logs to date. + +![journalctl log file path][2] + +Do not use cat command or use nano or vi to open these files. They would not be displayed properly. + +### Use journalctl to View and Analyze Systemd Logs + +#### Basic journald command + +The basic command to view logs using journal daemon is – + +``` +journalctl +``` + +![journalctl][3] + +This gives you all the journal entries including errors, warnings, etc from all applications and processes. It shows the list with the oldest log at the top and current logs at the bottom. You need to keep pressing ENTER to scroll through it line by line. You can also use PAGE UP and PAGE DOWN keys to scroll. Press q to exit from this view. + +#### How to view journal entries for time zones + +By default, the journalctl shows the log time in the current system time zone. However, you can easily provide the timezone in your command to convert the same log to a different time zone. For example, to view the logs in UTC, use the below command. + +``` +journalctl --utc +``` + +![journalctl --utc][4] + +#### How to view only errors, warnings, etc in journal logs + +The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command. + +To view emergency system messages use: + +``` +journalctl -p 0 +``` + +![journalctl -p 0][5] + +Error codes + +``` +0: emergency +1: alerts +2: critical +3: errors +4: warning +5: notice +6: info +7: debug +``` + +When you specify the error code, it shows all messages from that code and above. For example, if you specify the below command, it shows all messages with priority 2, 1 and 0 + +``` +journalctl -p 2 +``` + +#### How to view journal logs for a specific boot + +When you are running the journalctl command it shows the information from the current boot that is from the current session which you are running. But it is also possible to view information about past boots as well. + +Journal logs keep on updating in every reboot. The journald keeps track of the logs in different boots. To view, the boot-wise logs use the below command. + +``` +journalctl --list-boots +``` + +![journalctl list-boots][6] + +- The first number shows the unique journald boot track number which you can use in the next command to analyze that specific boot. +- The second number the boot ID which also you can specify in the commands. +- The next two date, time combinations are the duration of the logs stored in the respective file. This is super handy if you want to find out a log or error from a specific date, time. + +To view a specific boot number you the first number or the boot ID as below. + +``` +journalctl -b -45 +``` + +``` +journalctl -b 8bab42c7e82440f886a3f041a7c95b98 +``` + +![journalctl -b 45][7] + +You can also use `-x` switch which can add an explanation of the systemd error messages in your display. This is a lifesaver in certain situations. + +``` +journalctl -xb -p 3 +``` + +![journalctl -xb][8] + +#### How to view journal logs for a specific time, date duration + +The journalctl is powerful enough to provide “english” like argument in the command itself for time and date manipulation. + +You can use`--since` switch with a combination of `“yesterday”, “today”, “tomorrow”, or “now”.` + +Some of the examples of different commands below. You can modify them as per your need. They are self-explanatory. The date, time format in the below commands are `"YYYY-MM-DD HH:MM:SS"` + +``` +journalctl --since "2020-12-04 06:00:00" +``` + +``` +journalctl --since "2020-12-03" --until "2020-12-05 03:00:00" +``` + +``` +journalctl --since yesterday +``` + +``` +journalctl --since 09:00 --until "1 hour ago" +``` + +![journalctl --since 09:00 --until][9] + +You can combine the above with the error level switches as well. + +#### How to see Kernel specific journal logs + +The Linux Kernel messages can be extracted from journal logs as well. To view the Kernel messages from the current boot only use the below command. + +``` +journalctl -k +``` + +#### How to see journal logs for a service, PID + +You can filter out specific logs from a systemd service unit only from the journald logs. For example, to find out the logs from NetworkManager service use the below command. + +``` +journalctl -u NetworkManager.service +``` + +![journalctl NetworkManager service][10] + +If you do not know the service name, you can use the below command to list the systemd services in your system. + +``` +systemctl list-units --type=service +``` + +#### How to view journal logs for a user, group + +If you are analyzing server logs this command is helpful where multiple users are logged in. You can first find out about the user id using the below command from the user name. For example, to find out the id of user “`debugpoint`” – + +``` +id -u debugpoint +``` + +Then use that ID with `_UID` switch to view the logs generated by the user. + +``` +journalctl _UID=1000 --since today +``` + +![journalctl _UID][11] + +Similarly use `_GID` switch to find out the same for user groups. + +#### How to view journal logs for an executable + +You can also find out journald logs of a specific program or executable. For example, if you want to find out the messages of gnome-shell, you can run the below command. + +``` +journalctl /usr/bin/gnome-shell --since today +``` + +![journalctl gnome-shell][12] + +### Closing notes + +I hope this guide helps you to use journalctl to view analyze systemd logs on your Linux desktop or server troubleshooting. The systemd journal management extremely powerful if you know how to use the commands, it makes your life a bit easy during debugging time. All major mainstream Linux distribution uses Systemd these days. Ubuntu, Debian, Fedora, Arch – they all use systemd for their default OS offerings. In case if you are wondering about systemd-free Linux distributions, you might want to check out [MX-Linux][13], Gentoo, Slackware, Void Linux. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/systemd-journalctl/ + +作者:[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://freedesktop.org/wiki/Software/systemd/ +[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-log-file-path.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-utc.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-p-0.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-list-boots.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-b-45.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-xb.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-since-0900-until.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-NetworkManager-service.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-_UID.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-gnome-shell.jpg +[13]: https://www.debugpoint.com/tag/mx-linux From 1052a5503ed89ac44511ad3bfdbe5ce1affa6ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 01:03:24 +0800 Subject: [PATCH 1945/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.5=20=E2=AD=90=EF=B8=8F=20How=20to=20Find=20?= =?UTF-8?q?Systemd=20or=20Any=20Other=20init=20System=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d Systemd or Any Other init System in Linux.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md diff --git a/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md b/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md new file mode 100644 index 0000000000..a4815bb415 --- /dev/null +++ b/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md @@ -0,0 +1,81 @@ +[#]: subject: "How to Find Systemd or Any Other init System in Linux" +[#]: via: "https://www.debugpoint.com/systemd-or-init/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Find Systemd or Any Other init System in Linux +====== + +**Here’s how you can determine if you are running systems or any other init system in your Linux distribution.** + +The first process, which starts when you boot up your Linux distribution, is called init (short for initialization). It has the process identifier 1 (i.e. pid=1). All the processes and applications in your Unix-based system are direct descendants of this init process. + +Based on functionality and features, different types of init processes are present. For example, [systemd][1], Runit, OpenRC, sysVinit, etc. Among those, the systemd is the most popular and modern one, which is used and adopted by all the modern Linux distributions, including Ubuntu and Fedora. + +There are ongoing debates about Systemd and its performance compared to the traditional Unix-based init systems. But that’s a topic for another article. + +let’s find out how you can determine whether you are running a systemd or any other init system in your Linux distribution. + +### Systemd or what init system? + +Unfortunately, there’s no direct command to find it out. You can trace it back from the init process id=1, which is basically a symbolic link to `/sbin/init` i.e. pid=1. + +Use `[strings][2]` command to print the text embedded in the binary file `/sbin/init` & search for init with the following command. + +``` +strings /sbin/init | grep init +``` + +**Example 1**: In this below output where it’s a sysVinit system running Debian (via Peppermint OS). As you can see, it clearly shows the init process name. + +``` +strings /sbin/init | grep init +``` + +![example showing the init is used and not systemd][3] + +If you find systemd in the same above system, there won’t be any entries. Hence you can conclude that you are running sysvinit and not systemd. + +**Example 2**: If you run the above command in a systemd system, you can easily see the systemd and its version at the first line of the output. + +``` +strings /sbin/init | grep systemd +``` + +![example showing it uses systemd][4] + +**Example 3**: You can also try to print the process tree using `pstree` command, which should show you the first process name. It should be either systemd or init, as shown in the below example. + +``` +pstree +``` + +![pstree is showing systemd is used][5] + +![pstree is showing init is used][6] + +That’s it. This is how you can easily find out whether your distro uses systemd or something else. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/systemd-or-init/ + +作者:[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/tag/systemd +[2]: https://linux.die.net/man/1/strings +[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/example-showing-the-init-is-used-and-not-systemd.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/example-showing-it-uses-systemd.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/pstree-is-showing-systemd-is-used.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/pstree-is-showing-init-is-used.jpg From 61027be0d6a41756178c094de74c0e423a98c002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 01:04:36 +0800 Subject: [PATCH 1946/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.6=20=E2=AD=90=EF=B8=8F=20Using=20Python=20i?= =?UTF-8?q?n=20VS=20Code=20and=20Codium.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 ⭐️ Using Python in VS Code and Codium.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md diff --git a/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md b/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md new file mode 100644 index 0000000000..f3852a3bc9 --- /dev/null +++ b/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md @@ -0,0 +1,113 @@ +[#]: subject: "Using Python in VS Code and Codium" +[#]: via: "https://opensource.com/article/22/11/python-vs-code-codium" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Using Python in VS Code and Codium +====== + +If you're looking for a good, general-purpose, open source code editor with Python integration, then you might give Codium a try. + +Over the past couple of years, I have had the privilege of working with middle school children to introduce them to [Python coding][1] and the Raspberry Pi 400. It's been a lot of fun, and the Pi has been a great platform for the students and me. We've used [Code with Mu][2] and it's been quite successful. Our aptitude with Python has grown with experience, and so recently I started looking for ways to offer these students more. + +I participated in a Python learning class, and during that class I got introduced to Microsoft's Visual Studio Code. I learned a lot in that class about how to set up a virtual environment for Python, and how to configure VS Code for Python programming. During that learning journey, I also got introduced to [Codium][3], which is essentially VS Code without Microsoft's branding and telemetry. + +If you're looking for a good, general-purpose, open source code editor with Python integration, then you might give Codium a try. Here's how I got Codium set up for Python on my Linux system. + +### Install or update Python on Linux + +First, make sure you are running the latest version of Python. You can do this with your package manager. On Debian and Debian-based systems: + +``` +$ sudo apt install python3-pip +``` + +On Fedora, CentOS, Mageia, OpenMandriva, and similar: + +``` +$ sudo dnf update python3 +``` + +On some systems, you may also need to install the software to create Python virtual environments: + +``` +$ sudo apt install python3.10-venv +``` + +### Install Codium + +Next, [install Codium][4] on your computer. On Linux, you can download a package and install it with your package manager, or [use the Flatpak][5]. + +To launch Codium once it's installed, open your application or Activities menu and type "Code". + +### Install the VS Code Python extension + +There's nothing special about code. It's just plain text that gets interpreted by some other application, whether it's a compiler or a runtime. You can write Python code in Codium without special extensions. However, having a Python extension adds several conveniences. + +Click on the **File** menu, select **Preferences**, and choose **Extensions**. In the **Extensions** panel, find the Python IntelliSense extension. + +![VS Code and Codium have an extension manager that opens in the left column, allowing you to install add-on modules.][6] + +You've got Python set up in Codium. All that's left to do is to put it to good use. + +### Setup a virtual environment for VS Code or Codium + +You can create a project directory and add it to Codium so that while you work, the files you create and save default to the active project directory. It's a fast way to stay organized, and it saves you from having to click around File Save and Open dialogues constantly. + +When you create a virtual Python environment as a work folder, Codium (because you have the Python extension installed) detects it. When you activate a virtual environment folder as the active project directory, Codium automatically runs the activation code required to use the virtual environment. + +To create a virtual environment for Python, open a terminal and type: + +``` +$ python3 -m venv ~/PythonCoding +``` + +### Add a project directory + +In Codium, click on the **File** menu and choose **Add Folder to Workspace**. Open the virtual environment you've just set up (for me, that's `/home/don/PythonCoding`.) + +Now you're ready to write some Python code! Create a new Python file in your workspace and insert some basic code. You may notice, as you type, that Codium helpfully suggests auto-completion for the Python modules the environment contains. + +``` +importsysprint("Codium running Python " + sys.version) +``` + +Now click the **Play** button in the top right corner of the Codium window. This opens a console panel at the bottom of the window, displaying the output of your code: + +``` +(PythonCode) sh-5.1$ /home/bogus/PythonCode/bin/python /home/bogus/PythonCode/app.py +Codium running Python 3.10.6 (main…)[GCC 12.1.0](PythonCode) sh-5.1$ +``` + +As you can see from this output, Codium is running within the `PythonCode` environment, and it's successfully run your Python code. + +### Codium and Python + +Using Codium for Python makes writing and running code easier than ever, but Python isn't the only language Codium supports. You can easily find and install other extensions from the [Open VSX Registry][7], a vendor-neutral open source "marketplace" for VS Code extensions. + +The Codium interface is more complicated than some basic editors, but it has what I'm looking for at this point in my learning journey. If you're looking to graduate to something professional, or you're looking to switch from your current editor to something new, then give Codium a try. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/python-vs-code-codium + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/8/math-python-raspberry-pi +[2]: https://codewith.mu/ +[3]: https://opensource.com/article/20/6/open-source-alternatives-vs-code +[4]: https://github.com/VSCodium/vscodium/releases +[5]: https://flathub.org/apps/details/com.vscodium.codium +[6]: https://opensource.com/sites/default/files/2022-10/codium-extension-python.webp +[7]: https://open-vsx.org/ From b3eb903c1ab2356faa82ba356446bbc5289cf8d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 10 Nov 2022 01:05:29 +0800 Subject: [PATCH 1947/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221109.7=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Why=20sysadmins=20should=20choose=20Awesome=20window=20manager?= =?UTF-8?q?=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s should choose Awesome window manager on Linux.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md diff --git a/sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md b/sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md new file mode 100644 index 0000000000..465202d50e --- /dev/null +++ b/sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md @@ -0,0 +1,144 @@ +[#]: subject: "Why sysadmins should choose Awesome window manager on Linux" +[#]: via: "https://opensource.com/article/22/11/linux-awesome-window-manager" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why sysadmins should choose Awesome window manager on Linux +====== + +The Awesome window manager takes a "tiling" approach, meaning that each window you launch takes up a fraction of your desktop according to the number of windows you have open. + +Awesome is a window manager for the [Linux desktop][1]. A "window manager" is a graphical interface that primarily (if not literally) just manages the drawing and arrangement of windows. In practice, even the [most rudimentary][2] of window managers actually provides a little more than just the ability to draw a window. Most also provide a pop-up menu so you can launch an application, some provide a dock or panel so you can switch between different applications you have running. They stop short at providing desktop conveniences such as drawing a wallpaper in the background of your screen, mounting and unmounting devices, providing a system tray, and so on. A window manager assumes you can use other applications to build a desktop experience to your own liking, and so it focuses on managing windows. The Awesome window manager takes a "tiling" approach, meaning that each window you launch takes up a fraction of your desktop according to the number of windows you have open. + +![Image of the Awesome desktop.][3] + +### My Linux desktop is the terminal + +When you're a [systems administrator][4], you tend to spend a lot of time in a terminal window. It's a direct and efficient interface to your local machine, to remote machines, the network, the Internet, and everything else, so it's usually the easiest and most sensible way to do a lot of things to a lot of computers at once. And when you spend all day in a terminal, you understandably start to question whether you actually need a desktop at all. + +To be perfectly honest, the answer's often no, at least for 80% of your tasks. The reality of modern computing, however, is that there are some applications that are just easier to use through a graphical interface. For instance, even though there are issue tracking systems, like the open source Bugzilla, that provide terminal commands as an interface, sometimes you're on a team that uses an issue tracker (usually it's not open source) that provides only a web application. Like it or not, you need a web browser to interact with the ticketing system. And even though you may use a perfectly reasonable markup language like [AsciiDoc][5], you're probably sent a word processor document sometimes and, while you could use [Pandoc][6] to convert the document into AsciiDoc and then back into an office document, that risks losing something in translation. Like it or not, you need an office suite. + +The bottom line is that, whether you like it or not, you need a desktop. Or at least a window manager. + +### Tiling windows + +Awesome understands your plight. With Awesome, your "primary" desktop can be your terminal. When you first launch it, your terminal window is full screen, just like the text console you really want to be greeted with upon login. When you really need web browser, though, you can launch it and Awesome makes room for it by splitting your screen in half. Your terminal is on one side, the web browser's on the other. + +If you need to open a third application, you can launch that and Awesome makes room for it by splitting your screen into thirds. + +![Image of Awesome tiles.][7] + +When you're finished with an application, Awesome adjusts your layout again until, eventually, you're back to a full-screen terminal, just the way you like it. + +### Lua configuration + +Awesome uses the [Lua][8] scripting language for configuration. Lua has a similar philosophy to Awesome. It's a simple language that's pretty intuitive once you understand a few basic concepts. + +The simplest concept, and yet the most important, is the Lua table construct. Lua stores information in what it calls a "table", and it means that most everything in Lua has a structured hierarchy. For instance, this creates a Lua table: + +``` +zombie = {} + +zombie.apocalypse = true +zombie.defeat = false +``` + +Now when you need to know whether there's an active zombie apocalypse, you can "call" the zombie table and query the `apocalypse` value: + +``` +> print(zombie.apocalypse) +true +``` + +Both the `apocalypse` and the `defeat` values are "children" of the `zombie` table, which makes them each distinct from the `apocalypse` and `defeat` values of the `alien` table. + +It's a simple system of data classification, and you see several tables used in the Awesome configuration: + +``` +-- Table of layouts +awful.layout.layouts = { + awful.layout.suit.floating, + awful.layout.suit.tile, + awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, + awful.layout.suit.tile.top, + awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, + awful.layout.suit.spiral, + awful.layout.suit.spiral.dwindle, + awful.layout.suit.max, + awful.layout.suit.max.fullscreen, + awful.layout.suit.magnifier, + awful.layout.suit.corner.nw, +} +``` + +You may not know what options are available from reading the configuration file itself, but understanding that the options are grouped into Lua tables means you know what to look up in the Awesome documentation. + +Of course, if you don't feel like reading through the documentation, you can also just comment options out and see what changes. A comment in Lua are two dashes, as in the first line of this snippet: + +``` +-- Create a launcher widget and a main menu +myawesomemenu = { + { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, + { "manual", terminal .. " -e man awesome" }, + { "edit config", editor_cmd .. " " .. awesome.conffile }, + { "restart", awesome.restart }, + { "quit", function() awesome.quit() end }, +} +``` + +Lua is a consistent and logical language. Any amount of Lua you pick up from configuring Awesome is Lua you can use for real life Lua scripting. If you're ready to move up from basic Bash scripting, you might consider Lua. + +### Adjusting tiles + +While you're working in a split screen in Awesome, you might find the need to adjust the proportions. To do this graphically, right-click on the intersection the windows you want to adjust, and then drag all window borders to suit your preference. + +When you learn enough Lua to get really good at configuring Awesome, you can configure default preferences. + +### Floating windows + +Some applications never make sense as tiled windows. The Awesome configuration provided by your Linux distribution probably has a few examples set: + +``` +-- Floating clients. +class = { + "Blueman-manager", + "Kruler", + "MessageWin", + "Tor Browser", + "Wpa_gui"}, +}, +``` + +### Assemble your own Linux desktop + +Using a window manager instead of a desktop means you get to choose the components you use for everything else you want to do with your computer. You can launch KDE applications from the [Plasma Desktop][9], or use bits and pieces of [XFCE][10] (such as the panel, the network manager, and more), or you can eschew the desktop model entirely and use a particularly robust file manager and the terminal commands you know and love. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/linux-awesome-window-manager + +作者:[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/article/20/5/linux-desktops +[2]: https://opensource.com/article/19/12/twm-linux-desktop +[3]: https://opensource.com/sites/default/files/2022-10/awesome-desktop.png +[4]: https://www.redhat.com/sysadmin/?intcmp=7013a000002qLH8AAM +[5]: https://opensource.com/article/22/8/drop-markdown-asciidoc +[6]: https://opensource.com/article/20/5/pandoc-cheat-sheet +[7]: https://opensource.com/sites/default/files/2022-10/awesome-tiles.png +[8]: https://opensource.com/article/22/11/lua-worth-learning +[9]: https://opensource.com/article/19/12/linux-kde-plasma +[10]: https://opensource.com/article/18/6/xfce-desktop From 43dfe1cda84d94841642bf426af75f839c416e96 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 10 Nov 2022 07:45:57 +0800 Subject: [PATCH 1948/3123] RP @geekpi https://linux.cn/article-15234-1.html --- ...les and folders from Windows to Linux with PSCP.md | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) rename {translated/tech => published}/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md (78%) diff --git a/translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md b/published/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md similarity index 78% rename from translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md rename to published/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md index 3a058f58d1..aa68907328 100644 --- a/translated/tech/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md +++ b/published/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md @@ -3,36 +3,38 @@ [#]: author: "Paul https://opensource.com/users/plaubscher" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15234-1.html" 使用 PSCP 将文件和文件夹从 Windows 传输到 Linux ====== -开源 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。 +![](https://img.linux.net.cn/data/attachment/album/202211/10/074452ys2lgjdqq8gaj8rg.jpg) -你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法?开源 PSCP 程序可以轻松传输文件和文件夹,当然它是开源的。 +> 开源的 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。 + +你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法?开源的 PSCP 程序可以轻松传输文件和文件夹,当然它是开源的。 ### 在 Windows 中设置 PATH -了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程,请阅读[如何在 Windows 上设置 PATH][1]。 +了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程,请阅读 [如何在 Windows 上设置 PATH][1]。 ### 使用 PSCP PSCP(PuTTY 安全复制协议)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。 -- 从[网站][2]下载 `pscp.exe`。 -- 将 `pscp.exe` 移动到 PATH 中的文件夹(例如,如果你按照 [Opensource.com][3] 上的 PATH 教程进行操作,则为 `Desktop\App`)。如果你没有设置 PATH 变量,你也可以将 `pscp.exe` 移动到保存要传输的文件的文件夹中。 +- 从 [网站][2] 下载 `pscp.exe`。 +- 将 `pscp.exe` 移动到 `PATH` 中的文件夹(例如,如果你按照 [Opensource.com][3] 上的 PATH 教程进行操作,则为 `Desktop\App`)。如果你没有设置 `PATH` 变量,你也可以将 `pscp.exe` 移动到保存要传输的文件的文件夹中。 - 使用 Windows 任务栏中的搜索栏在 Windows 计算机上打开 Powershell(在搜索栏中输入 `powershell`。) -- 输入 `pscp –version` 以确认你的计算机可以找到该命令。 +- 输入 `pscp -version` 以确认你的计算机可以找到该命令。 ### IP 地址 在进行传输之前,你必须知道目标计算机的 IP 地址或完全限定域名。假设它是同一网络上的计算机,并且你没有运行 DNS 服务器来解析计算机名称,你可以在 Linux 机器上使用 `ip` 命令找到目标 IP 地址: ``` -[linux]$ ip addr show |grep'inet ' +[linux]$ ip addr show |grep 'inet ' inet 127.0.0.1/8 scope host lo inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 ``` @@ -48,31 +50,34 @@ inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 如果你不确定你的 Linux 机器是否正在运行 SSH,请在 Linux 机器上运行以下命令: ``` -[linux]$ sudo systemctl enable--now sshd +[linux]$ sudo systemctl enable --now sshd ``` 要确保你的防火墙允许 SSH 流量,请运行以下命令: ``` -[linux]$ sudo firewall-cmd --add-servicessh--permanent +[linux]$ sudo firewall-cmd --add-servicessh --permanent ``` -有关 Linux 上的防火墙的更多信息,请阅读[使用防火墙使 Linux 更强大][4]。 +有关 Linux 上的防火墙的更多信息,请阅读 [使用防火墙使 Linux 更强大][4]。 ### 传输文件 -在这个例子中,我有一个名为 `pscp-test.txt` 的文件,我想将它从我的 Windows 计算机上的 `C:\Users\paul\Documents` 传输到我的目标 Linux 计算机主目录 `/_home_/paul`。 +在这个例子中,我有一个名为 `pscp-test.txt` 的文件,我想将它从我的 Windows 计算机上的 `C:\Users\paul\Documents` 传输到我的目标 Linux 计算机主目录 `/home/paul`。 现在你已经有了 `pscp` 命令和目标地址,你可以传输测试文件 `pscp-test.txt`。打开 Powershell 并使用 `dir` 命令切换到示例文件所在的 `Documents` 文件夹: +``` PS> dir %USERPROFILE%\Documents\ +``` 现在执行传输: ``` -PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul| Password: +PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul +| Password: End of keyboard-interactive prompts from server -pscp-test.txt |0 kb |0.0 kB/s | ETA: 00:00:00 |100% +pscp-test.txt | 0 kb | 0.0 kB/s | ETA: 00:00:00 | 100% ``` 这是语法,逐字逐句来: @@ -85,7 +90,7 @@ pscp-test.txt |0 kb |0.0 kB/s | ETA: 00:00:00 |100% ### 验证已传输 -在你的 Linux 计算机上,打开终端并使用 `ls` 命令验证文件 `pscp-test.txt` 是否出现在您的主目录中。 +在你的 Linux 计算机上,打开终端并使用 `ls` 命令验证文件 `pscp-test.txt` 是否出现在你的主目录中。 ``` [linux]$ ls @@ -116,7 +121,7 @@ PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp ### 远程复制 -借助开源 `pscp` 命令的强大功能,你可以访问家中的任何计算机、拥有帐户的服务器,甚至是移动设备和[边缘设备][6]。 +借助开源 `pscp` 命令的强大功能,你可以访问家中的任何计算机、拥有帐户的服务器,甚至是移动设备和 [边缘设备][6]。 -------------------------------------------------------------------------------- @@ -125,7 +130,7 @@ via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp 作者:[Paul][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/) 荣誉推出 From aaf314711ae19d7201bf29593d2a948949f9499e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 10 Nov 2022 08:47:07 +0800 Subject: [PATCH 1949/3123] RP @hadisi1993 https://linux.cn/article-15235-1.html --- .../20210623 Parsing config files with Lua.md | 220 ++++++++++++++++++ .../20210623 Parsing config files with Lua.md | 211 ----------------- 2 files changed, 220 insertions(+), 211 deletions(-) create mode 100644 published/20210623 Parsing config files with Lua.md delete mode 100644 translated/tech/20210623 Parsing config files with Lua.md diff --git a/published/20210623 Parsing config files with Lua.md b/published/20210623 Parsing config files with Lua.md new file mode 100644 index 0000000000..81149510af --- /dev/null +++ b/published/20210623 Parsing config files with Lua.md @@ -0,0 +1,220 @@ +[#]: subject: (Parsing config files with Lua) +[#]: via: (https://opensource.com/article/21/6/parsing-config-files-lua) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (hadisi1993) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15235-1.html) + +使用 Lua 解析配置文件 +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/10/084609uq6vvp1vjzqzpc9k.jpg) + +> 使用 Lua 配置持久化应用设置。 + +不是所有的应用都需要配置文件;对很多应用来说,在启动时变得焕然一新对它们更有利。例如,简单的工具就极少需要偏好项和设置在使用过程中保持稳定不变。然而,当你编写一个复杂的应用程序时,如果能让用户设置与应用的交互方式,以及应用与系统交互的方式会很不错。这就是配置文件用来做的事情。本文将讨论一些利用 Lua 进行持久化配置的方法。 + +### 选择一种格式 + +关于配置文件很重要的两点是一致性和可预见性。你不会希望为了保存用户偏好项,将信息转储到文件中,然后再花几天去编码实现“逆向工程”,处理最后出现在文件里的随机信息。 + +这里用一些常用的 [配置文件格式][2]。Lua 有一些库可以处理大多数常用的配置格式;在本文中,我会采用 INI 格式。 + +### 安装库 + +Lua 库的核心仓库是 [Luarocks.org][3]。你可以在这个网站搜索库,或者你可以安装并使用 `luarocks` 终端命令。 + +Linux 环境中,你可以从发行版的软件仓库中下载它,例如: + +``` +$ sudo dnf install luarocks +``` + +在 macOS 上,请使用 [MacPorts][4] 或者 [Homebrew][5]。在 Windows 上,请使用 [Chocolatey][6]。 + +`luarocks` 安装后,你可以使用 `search` 子命令来搜索一个恰当的库。如果你不知道库的名字,可以通过关键词来搜索这个库,例如 `ini`、xml` 或者 `json`,这取决于你想要用这个库做什么。打个比方,你可以搜索 `inifile`, 这个库被我用来解析 INI 格式的文本文件。 + +``` +$ luarocks search inifile +Search results: +inifile + 1.0-2 (rockspec) - https://luarocks.org + 1.0-2 (src) - https://luarocks.org + 1.0-1 (rockspec) - https://luarocks.org + [...] +``` + +一个开发者容易犯的错误是在系统上安装了这个库却忘了把它和应用打包。这会给没有安装这个库的用户带来麻烦。为了防止这个问题发生,可以使用 `--tree` 选项将它安装在项目的本地文件夹中。如果你没有这个项目文件夹,那就先创建这个文件夹再安装库: + +``` +$ mkdir demo +$ cd demo +$ luarocks install --tree=local inifile +``` + +`--tree` 选项指示 `luarocks` 创建一个新文件夹并在其中安装你的库,例如这个例子中的 `local` 文件夹。 使用这个简单的技巧,你可以将所有你项目要使用的依赖项直接安装到项目文件夹中。 + +### 配置代码 + +首先,在一个名 `myconfig.ini` 的文件中创建一些 INI 数据。 + +``` +[example] +name=Tux +species=penguin +enabled=false + +[demo] +name=Beastie +species=demon +enabled=false +``` + +将这个文件保存到你的主目录下,命名为 `myconfig.ini`, _不要_ 存到项目文件夹下。你通常会希望配置文件独立于你的文件存在,这样当用户卸载你的应用时,使用应用时产生的数据可以保存在系统中。有些用户会删除不重要的配置文件,但大多数不会。最终,如果他们要重装这个应用,还会保留着所有的用户偏好项。 + +配置文件的位置以技术来说并不重要,但每一个操作系统都有存储它们的特定或者默认的路径。在 Linux 中,这个路径由 [Freedesktop 规范][7] 指定。它规定配置文件被保存在一个名为 `~/.config` 的隐藏文件夹中。为了操作时更加清晰明确,可以在主目录下存储配置文件,以便于使用和寻找。 + +创建第二个文件,命名为 `main.lua`,并在你喜欢的文本编辑器中打开它。 + +首先,你必须告诉 Lua 你将想要使用的附加库放置在哪里。`package.path` 变量决定了 Lua 到哪里去寻找这些库。你可以从终端中查看 Lua 默认的包地址: + +``` +$ Lua +> print(package.path) +./?.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua +``` + +在你的 Lua 代码中,将你本地库的路径添加到 `package.path` 中: + +``` +package.path = package.path .. ';local/share/lua/5.3/?.lua +``` + +### 使用 Lua 解析 INI 文件 + +当包的位置确定以后,下一件事就是引入 `inifile` 库并处理一些操作系统逻辑。即使这是一个很简单的应用,代码也需要从操作系统获取到用户主目录的路径,并建立在必要时将文件系统路径返回给操作系统的通信方式。 + +``` +package.path = package.path .. ';local/share/lua/5.3/?.lua +inifile = require('inifile') + +-- find home directory +home = os.getenv('HOME') + +-- detect path separator +-- returns '/' for Linux and Mac +-- and '\' for Windows +d = package.config:sub(1,1) +``` + +现在你可使用 `inifile` 来从配置文件解析数据到 Lua 表中。一旦这些数据被导入进表中,你可以像查询其他的 Lua 表一样查询它。 + +``` +-- parse the INI file and +-- put values into a table called conf +conf = inifile.parse(home .. d .. 'myconfig.ini') + +-- print the data for review +print(conf['example']['name']) +print(conf['example']['species']) +print(conf['example']['enabled']) +``` + +在终端中运行代码可以看见结果: + +``` +$ lua ./main.lua +Tux +penguin +false +``` + +这看起来是正确的。试试在 `demo` 块中执行同样的操作。 + +### 使用 INI 格式存储数据 + +不是所有用来解析的库都会读写数据(通常被称为 _编码 和 _解码_),但是 `inifile` 会这样做。这意味着你可以使用它对配置文件进行修改。 + +为了改变配置文件中的值,你可以对被解析的表中的变量进行设置,然后把表重写回配置文件中。 + +``` +-- set enabled to true +conf['example']['enabled'] = true +conf['demo']['enabled'] = true + +-- save the change +inifile.save(home .. d .. 'myconfig.ini', conf) +``` + +现在再来看看配置文件: + +``` +$ cat ~/myconfig.ini +[example] +name=Tux +species=penguin +enabled=true + +[demo] +name=Beastie +species=demon +enabled=true +``` + +### 配置文件 + +按照用户的设想来存储数据对程序来说是至关重要的。幸运的是,这对工程师来说是一个很常规的任务,大多数工作可能早已被完成了。只要找到一个好用的库完成开放格式下编码和解码,你就能为用户提供一致且持续的体验。 + +以下是完整的演示代码,可供参考。 + +``` +package.path = package.path .. ';local/share/lua/5.3/?.lua' +inifile = require('inifile') + +-- find home directory +home = os.getenv('HOME') + +-- detect path separator +-- returns '/' for Linux and Mac +-- and '\' for Windows +d = package.config:sub(1,1) + +-- parse the INI file and +-- put values into a table called conf +conf = inifile.parse(home .. d .. 'myconfig.ini') + +-- print the data for review +print(conf['example']['name']) +print(conf['example']['species']) +print(conf['example']['enabled']) + +-- enable Tux +conf['example']['enabled'] = true + +-- save the change +inifile.save(home .. d .. 'myconfig.ini', conf) +``` + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/parsing-config-files-lua + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[hadisi1993](https://github.com/hadisi1993) +校对:[wxy](https://github.com/wxy) + +本文由 [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/OSDC_women_computing_2.png?itok=JPlR5aCA (坐在电脑前的女人) +[2]: https://opensource.com/article/21/6/config-files-and-their-formats +[3]: https://opensource.com/article/19/11/getting-started-luarocks +[4]: https://opensource.com/article/20/11/macports +[5]: https://opensource.com/article/20/6/homebrew-mac +[6]: https://opensource.com/article/20/3/chocolatey +[7]: https://www.freedesktop.org/wiki/Specifications +[8]: http://www.opengroup.org/onlinepubs/009695399/functions/getenv.html diff --git a/translated/tech/20210623 Parsing config files with Lua.md b/translated/tech/20210623 Parsing config files with Lua.md deleted file mode 100644 index d8467d752b..0000000000 --- a/translated/tech/20210623 Parsing config files with Lua.md +++ /dev/null @@ -1,211 +0,0 @@ -[#]: subject: (Parsing config files with Lua) -[#]: via: (https://opensource.com/article/21/6/parsing-config-files-lua) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: ( hadisi1993) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -使用Lua解析配置文件 -====== -使用Lua配置持久化应用设置 - - -![坐在电脑前的女人][1] -不是所有的应用都需要配置文件;对很多应用来说,在启动时变得焕然一新对它们更有利。例如,简单的工具就极少需要偏好项和设置在使用过程中保持稳定不变。然而,当你编写一个复杂的应用程序时,如果能让用户设置与应用的交互方式,以及应用与系统交互的方式会很不错。这就是配置文件用来做的事情。本文将讨论一些利用Lua进行持久化配置的方法。 - -### 选择一种格式 -关于配置文件很重要的两点是一致性和可预见性。你不会希望为了保存用户偏好项,将信息转储到文件中,然后再花几天去编码实现“逆向工程”,处理最后出现在文件里的随机信息。 - -这里用一些常用的[配置文件格式][2]。Lua有一些库可以处理大多数常用的配置格式;在本文中,我会采用INI格式。 -### 安装库 -Lua库的核心仓库是[Luarocks.org][3].你可以在这个网站搜索库,或者你可以安装并使用`luarocks`终端命令。 -Linux环境中,你可以从发行版的软件仓库中下载它,例如: - -``` -`$ sudo dnf install luarocks` -``` - -在macOS上,请使用[MacPorts][4] 或者[Homebrew][5]. 在Windows上,请使用[Chocolatey][6]. -一旦`luarocks`被安装,你可以使用`search`子命令来搜索一个恰当的库。如果你不知道库的名字,可以通过关键词来搜索这个库,例如`ini` ,`xml` 或者 `json`,这取决于你想要用这个库做什么。打个比方,你可以搜索`inifile`, 这个库被我用来解析INI格式的文本文件。 - -``` -$ luarocks search inifile -Search results: -inifile - 1.0-2 (rockspec) - - 1.0-2 (src) - - 1.0-1 (rockspec) - - [...] -``` - -A common trap programmers fall into is installing a library on their system and forgetting to bundle it with their application. This can create problems for users who don't have the library installed. To avoid this, use the `--tree` option to install the library to a local folder within your project directory. If you don't have a project directory, create one first, and then install: -一个开发者容易犯的错误是在系统上安装了这个库却忘了把它和应用打包。这会给没有安装这个库的用户带来麻烦。为了防止这个问题发生,可以使用`--tree`选项将它安装在项目的本地文件夹中。如果你没有这个项目文件夹,那就先创建这个文件夹再安装库。 - -``` -$ mkdir demo -$ cd demo -$ luarocks install --tree=local inifile -``` - -`--tree` 选项指示`luarocks`创建一个新文件夹并在其中安装你的库,例如这个例子中的`local`文件夹。 使用这个简单的技巧,你可以将所有你项目要使用的依赖项直接安装到项目文件夹中。 -### 配置代码 -首先,在一个名`myconfig.ini`的文件中创建一些INI数据 - -``` -[example] -name=Tux -species=penguin -enabled=false - -[demo] -name=Beastie -species=demon -enabled=false -``` - -将这个文件保存到你的home文件夹下,命名为`myconfig.ini`, _不要_ 存到项目文件夹下。你通常会希望配置文件独立于你的文件存在,这样当用户卸载你的应用时,使用应用时产生的数据可以保存在系统中。有些用户会删除不重要的配置文件,但大多数不会。最终,如果他们要重装这个应用,还会保留着所有的用户偏好项。 - - -配置文件的地址以技术来说并不重要,但每一个操作系统都有特指或者默认的路径存储它们。在Linux中,这个路径被[Freedesktop specification][7]指定。它规定配置文件被保存在一个名为`~/.config`的隐藏文件夹中。为了操作时更加清晰明确,可以在home目录下存储配置文件,以便于使用和寻找 - - -创建第二个文件,命名为`main.lua`,并在你喜欢的文本编辑器中打开它。 - -首先,你必须告诉Lua你将想要使用的附加库放置在哪里。`package.path`变量决定了Lua到哪里去寻找这些库。你可以中终端中查看Lua默认的包地址: - -``` -$ Lua -> print(package.path) -./?.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua -``` - -在你的Lua代码中,将你本地库的路径添加到`package.path`中: - -``` -`package.path = package.path .. ';local/share/lua/5.3/?.lua` -``` - -### 使用Lua解析INI文件 -当包地址被创建以后,下一个件事就是引入`inifile`库并处理OS逻辑。即使这是一个很简单的应用,代码也需要从操作系统获取到用户home目录的路径并建立在必要时将文件系统路径返回给操作系统的通信方式。 - -``` -package.path = package.path .. ';local/share/lua/5.3/?.lua -inifile = require('inifile') - -\-- find home directory -home = os.getenv('HOME') - -\-- detect path separator -\-- returns '/' for Linux and Mac -\-- and '\' for Windows -d = package.config:sub(1,1) -``` - -现在你可使用`inifile`来从配置文件解析数据到Lua表中。一旦这些数据被导入进表中,你可以像查询其他的Lua表一样查询它。 - -``` -\-- parse the INI file and -\-- put values into a table called conf -conf = inifile.parse(home .. d .. 'myconfig.ini') - -\-- print the data for review -print(conf['example']['name']) -print(conf['example']['species']) -print(conf['example']['enabled']) -``` - -在终端中运行代码可以看见结果: - -``` -$ lua ./main.lua -Tux -penguin -false -``` - -这看起来是正确的。试试在demo块中执行同样的操作。 -### 使用INI格式存储数据 -不是所有用来解析的库都会读写数据(通常被称为 _编码 和 _解码_), 但是`inifile`会这样做。这意味着你可以使用它对配置文件进行修改。 - -为了改变配置文件中的值,你可以对被解析的表中的变量进行设置,然后把表重写回配置文件中。 - -``` -\-- set enabled to true -conf['example']['enabled'] = true -conf['demo']['enabled'] = true - -\-- save the change -inifile.save(home .. d .. 'myconfig.ini', conf) -``` - -现在再来看看配置文件: - -``` -$ cat ~/myconfig.ini -[example] -name=Tux -species=penguin -enabled=true - -[demo] -name=Beastie -species=demon -enabled=true -``` - -### 配置文件 -按照用户的设想来存储数据对程序来说是至关重要的。幸运的是, 这对工程师来说是一个很常规的任务,大多数工作可能早已被完成了。只要找到一个好用的库完成开放格式下编码和解码,你就能为用户提供一致且持续的体验。 - -以下是完整的demo,可供参考。 - -``` -package.path = package.path .. ';local/share/lua/5.3/?.lua' -inifile = require('inifile') - -\-- find home directory -home = os.[getenv][8]('HOME') - -\-- detect path separator -\-- returns '/' for Linux and Mac -\-- and '\' for Windows -d = package.config:sub(1,1) - -\-- parse the INI file and -\-- put values into a table called conf -conf = inifile.parse(home .. d .. 'myconfig.ini') - -\-- print the data for review -print(conf['example']['name']) -print(conf['example']['species']) -print(conf['example']['enabled']) - -\-- enable Tux -conf['example']['enabled'] = true - -\-- save the change -inifile.save(home .. d .. 'myconfig.ini', conf) -``` - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/parsing-config-files-lua - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[译者ID](hadisi1993) -校对:[校对者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/OSDC_women_computing_2.png?itok=JPlR5aCA (坐在电脑前的女人) -[2]: https://opensource.com/article/21/6/config-files-and-their-formats -[3]: https://opensource.com/article/19/11/getting-started-luarocks -[4]: https://opensource.com/article/20/11/macports -[5]: https://opensource.com/article/20/6/homebrew-mac -[6]: https://opensource.com/article/20/3/chocolatey -[7]: https://www.freedesktop.org/wiki/Specifications -[8]: http://www.opengroup.org/onlinepubs/009695399/functions/getenv.html From 18061b918eb0ad72e704ac4bbab105d4a8b65085 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 10 Nov 2022 08:54:38 +0800 Subject: [PATCH 1950/3123] translated --- ...st Speaker Volume in Ubuntu and Other Linux.md | 89 ------------------- ...st Speaker Volume in Ubuntu and Other Linux.md | 89 +++++++++++++++++++ 2 files changed, 89 insertions(+), 89 deletions(-) delete mode 100644 sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md create mode 100644 translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md diff --git a/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md b/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md deleted file mode 100644 index 447ea5c453..0000000000 --- a/sources/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "How to Boost Speaker Volume in Ubuntu and Other Linux" -[#]: via: "https://www.debugpoint.com/boost-speaker-volume-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Boost Speaker Volume in Ubuntu and Other Linux -====== - -**Here’s how you can boost your Laptop and desktop’s volume more in Ubuntu and other Linux distributions.** - -Have you ever felt that your Ubuntu Laptop’s volume is too low, despite you selected the volume to 100%? I’m sure you had. The primary reason is – obviously, laptop speaker output intensity is lower than large speakers. - -In addition, Ubuntu and other distros set the default maximum volume to 100%, i.e. 0dB (decibel). The 0dB is the maximum volume reference. To compare, if you set the volume to -10dB, that means your volume is quieter than the maximum 0dB. - -VLC and some media players allow you to increase the volume by up to 200%. Using some settings in the latest Ubuntu, you can boost the volume to further. - -**Note**: Before you try this and use the following method, remember that each speaker has a hardware limitation set by its manufacturer. Once in a while, playing audio more than 100% is fine. But continuous amplification to higher decibels may distort output audio & may damage your speaker amplifier in the longer term. So, use it with caution and limitation. - -### Boost Speaker Volume in Ubuntu and other distros - -#### For the latest Ubuntu 22.04 and above (GNOME): - -Open Settings from the application menu and go to the Sound tab. - -Enable the “Over Amplification” switch. The moment you enable you should see the volume bar is expanded. - -![Boost volume more than 100 percent in Ubuntu][1] - -Now you can enjoy a volume boost to listen to music. - -#### Fedora, Arch Linux and other distros - -If you use Fedora Workstation with GNOME, you will not get the above option since it is an Ubuntu-specific setting. See below. - -![Speaker volume is max 100 percent in Fedora (GNOME)][2] - -So, for any other Linux distributions (Arch, Fedora, RedHat, etc.) or desktops (KDE, Xfce, LXQt, etc.), open a terminal and install [PulseAudio Volume Control][3]. - -**Fedora, RedHat Linux, OpenSUSE and related rpm-based distributions:** - -``` -sudo dnf install pavucontrol -``` - -**For Arch Linux, Manjaro** - -``` -sudo pacman -S pavucontrol -``` - -**Non-GNOME Ubuntu-based distros** - -``` -sudo apt install pavucontrol -``` - -### How to Use - -After installation, open the `pavucontrol` from the application menu, it should appear as ‘PulseAudio Volume Control’ as a menu item. - -![Increase Volume using PulseAudio Volume Control][4] - -### Wrapping Up - -Remember, the above methods boost the speaker volume for the entire system. That means the system sounds and alerts are also impacted. So, keep that in mind. As I mentioned earlier, boosting speaker volume by more than 100% may result in distrotion or damage to the speaker if used continuously. - -I hope this tutorial helps you to increase your system volume. Do let me know in the comment box if you run into issues. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/boost-speaker-volume-ubuntu/ - -作者:[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/11/Boost-volume-more-than-100-percent-in-Ubuntu.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/Speaker-volume-is-max-100-percent-in-Fedora-GNOME.jpg -[3]: https://freedesktop.org/software/pulseaudio/pavucontrol/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Increase-Volume-using-PulseAudio-Volume-Control-1024x508.jpg diff --git a/translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md b/translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..56545275df --- /dev/null +++ b/translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md @@ -0,0 +1,89 @@ +[#]: subject: "How to Boost Speaker Volume in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/boost-speaker-volume-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何提高 Ubuntu 和其他 Linux 系统中的扬声器音量 +====== + +**以下是如何在 Ubuntu 和其他 Linux 发行版中提高笔记本和桌面的音量的方法。** + +你有没有觉得你的 Ubuntu 笔记本的音量太小,尽管你把音量调到了 100%?我相信你有过。主要原因是:很明显,笔记本电脑的扬声器输出强度比大型扬声器要低。 + +此外,Ubuntu 和其他发行版将默认的最大音量设置为 100%,也就是 0dB(分贝)。0dB 是最大音量的参考值。做个比较,如果你把音量设置为 -10dB,这意味着你的音量比最大的 0dB 安静。 + +VLC 和一些媒体播放器允许你将音量提高到 200%。在最新的 Ubuntu 中使用一些设置,你可以将音量进一步提高。 + +**注意**:在你尝试和使用以下方法之前,请记住,每个扬声器都有其制造商设定的硬件限制。偶尔一次,播放超过 100% 的音频是可以的。但是,连续放大到更高的分贝可能会使输出的音频失真,并且从长远来看可能会损坏你的扬声器。因此,在使用时要小心谨慎,并有所限制。 + +### 在 Ubuntu 和其他发行版中提高扬声器音量 + +#### 对于最新的 Ubuntu 22.04 及以上版本(GNOME)。 + +从应用菜单中打开设置,进入声音标签。 + +启用 “Over Amplification” 开关。在你启用的那一刻,你应该看到音量条被扩大了。 + +![在 Ubuntu 中提升音量超过 100%][1] + +现在你可以享受音量提升来听音乐了。 + +#### Fedora, Arch Linux 和其他发行版 + +如果你使用带有 GNOME 的 Fedora 工作站,你将看不到上述选项,因为这是 Ubuntu 特有的设置。见下面。 + +![在 Fedora (GNOME)中,扬声器音量最大为 100%][2] + +因此,对于任何其他 Linux 发行版(Arch、Fedora、RedHat 等)或桌面(KDE、Xfce、LXQt 等),打开终端并安装 [PulseAudio Volume Control][3]。 + +**Fedora、RedHat Linux、OpenSUSE 和相关基于 rpm 的发行版:** + +``` +sudo dnf install pavucontrol +``` + +**对于 Arch Linux, Manjaro** + +``` +sudo pacman -S pavucontrol +``` + +**基于 Ubuntu 的非 GNOME 发行版** + +``` +sudo apt install pavucontrol +``` + +### 如何使用 + +安装后,从应用菜单中打开 `pavucontrol`,它应该有个 “PulseAudio Volume Control” 菜单项。 + +![使用PulseAudio音量控制增加音量][4] + +### 总结 + +记住,上述方法可以提高整个系统的扬声器音量。这意味着系统的声音和警报也会受到影响。所以,要记住这一点。正如我前面提到的,如果连续使用,提升扬声器音量超过 100% 可能会导致扬声器变形或损坏。 + +我希望这个教程能帮助你提高系统音量。如果你遇到问题,请在评论栏里告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/boost-speaker-volume-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/11/Boost-volume-more-than-100-percent-in-Ubuntu.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/Speaker-volume-is-max-100-percent-in-Fedora-GNOME.jpg +[3]: https://freedesktop.org/software/pulseaudio/pavucontrol/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Increase-Volume-using-PulseAudio-Volume-Control-1024x508.jpg \ No newline at end of file From 00beb2651d69b2065869ab249c57d1fb5c6447b4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 10 Nov 2022 08:56:35 +0800 Subject: [PATCH 1951/3123] translating --- ... ⭐️ How to Find Systemd or Any Other init System in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md b/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md index a4815bb415..d8693c87a6 100644 --- a/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md +++ b/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/systemd-or-init/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 123eb5b5642764af07b6619512a1a5dc172291dd Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 10 Nov 2022 08:57:36 +0800 Subject: [PATCH 1952/3123] translating --- .../tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md index 5069dbf0d4..e8608ed120 100644 --- a/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md +++ b/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/" [#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From da04c878563c1cf29e8cba5965d340092b731f82 Mon Sep 17 00:00:00 2001 From: Cubik Date: Wed, 9 Nov 2022 22:03:07 -0500 Subject: [PATCH 1953/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?]=20[news]=2020221101.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20Kate=20Editor=20is=20Getting=20Four=20New=20Awesome=20Featur?= =?UTF-8?q?es.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ate Editor is Getting Four New Awesome Features.md | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md b/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md index cfb4af945c..e40e79595e 100644 --- a/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md +++ b/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md @@ -7,87 +7,87 @@ [#]: publisher: " " [#]: url: " " -Kate Editor is Getting Four New Awesome Features +Kate 文本编辑器获得了四个非常棒的新功能 ====== -KDE's feature-packed text editor is getting better and more useful! +由 KDE 开发的功能丰富的文本编辑器正在变得更好和更有用! -![Kate Editor is Getting Four New Awesome Features][1] +![Kate 文本编辑器获得了四个非常棒的新功能][1] -[Kate Editor][2] is a constantly evolving and powerful open-source text editor that acts as a viable alternative to Microsoft's proprietary Visual Studio Code application. +[Kate 文本编辑器][2] 是一个不断发展和强大的开源文本编辑器,它是微软专有的 Visual Studio Code 应用程序的替代品。 -It is available for Linux, Windows, and macOS. +它可以在 Linux、Windows 和 macOS 上使用。 -The code editor received a significant upgrade in 2021 potentially making it KDE's answer to Microsoft's offering. +这个代码编辑器在 2021 年获得了重大升级,这可能使它成为了 KDE 面对微软所提供的产品交出的答卷。 -With the upcoming Kate and KWrite 22.12 release, they aim to add a number of much-needed features. +在即将到来的 Kate 和 KWrite 22.12 版本上,他们的目标是添加许多非常有用的功能。 -Let's take a brief look at what we can expect from Kate. +来简单看看我们可以从 Kate 中期待什么。 -### 🆕 Kate Editor: New Feature Additions +### 🆕 Kate Editor: 新增功能 -If you have been reading [Nate's blog][3] for KDE improvements, you probably know all about the upgrades coming to KDE Plasma and the applications. +如果你读过 [Nate 的博客][3] 来了解 KDE 的改进,你可能已经知道了 KDE Plasma 和应用程序即将获得的升级。 -However, some exciting additions are coming to Kate 22.12 that I wanted to highlight: +但是,我想强调一些 Kate 22.12 将会带来的令人激动的新功能: -- **Support for Qt Widgets** -- **Updated Welcome Page** -- **Git Diff Viewer** -- **Configuration Tab** -- **Clipboard History** +- **对 Qt Widgets 的支持** +- **更新的欢迎页面** +- **Git 差异查看器** +- **配置标签页** +- **剪切板历史** -#### Welcome Page +#### 欢迎页面 -![kate 22.12 welcome page][4] +![kate 22.12 欢迎页面][4] -Image Credits: KDE +图片来源:KDE -Like many other [KDE apps][5], Kate will now show a welcome page that will greet users with a welcome screen and include options like creating or opening a file, starting a new session, viewing recent documents, and more. +和许多其他 [KDE 应用程序][6] 一样,Kate 现在将显示一个欢迎页面,该页面将欢迎用户并显示创建或打开文件、启动新会话、查看最近的文档等选项。 -For users who might not like this, an option will be provided on the welcome page to disable this behavior for a new window. +对于不喜欢这个页面的用户,欢迎页面上将提供一个选项,以在新窗口上禁用欢迎页面。 -#### Git Diff Viewer +#### Git 差异查看器 -![kate 22.12 git diff support][6] +![kate 22.12 git 差异支持][6] -Image Credits: KDE +图片来源:KDE -Kate will finally get support for viewing git-diff; users will be able to compare their code to check for differences and find those pesky bugs that are causing their application not to run correctly. +Kate 终于增加了对显示 git-diff 的支持;用户将能够比较他们的代码以检查差异并找到那些令人讨厌的,会导致他们的应用程序无法正常运行 bug。 -Users will also be able to choose from a variety of views, such as unified, side-by-side, and raw. +用户也可以从多种视图中进行选择,例如合并、并排和原始文件。 -#### New Clipboard History Paste Dialog +#### 新的剪贴板历史粘贴对话框 -![kate 22.12 clipboard history][7] +![kate 22.12 剪贴板历史][7] -Image Credits: KDE +图片来源:KDE -A new dialog has been added to Kate, showing users a list of previous clipboard content while pasting. +Kate 现在添加了一个新的对话框,在粘贴的时候显示用户剪贴板内容的列表。 -This can be helpful if you are juggling between multiple lines of code and don't want to lose track of the essential bits. +当你在多行代码之间切换时,这可能会很有用,因为你不想丢失重要的内容。 -#### Configuration Tab +#### 配置标签页 -![kate 22.12 configuration tab][8] +![kate 22.12 配置标签页][8] -Image Credits: KDE +图片来源:KDE -Kate will also feature a configuration tab that lets users change significant settings and a search bar to quickly find specific settings. +Kate 也将添加一个配置标签页,让用户可以更改重要的设置,并添加一个搜索栏,使用户可以快速查找特定的设置。 -#### 🛠️ Other Changes and Improvements +#### 🛠️ 其他变更和改进 -Some other notable improvements to be featured on Kate 22.12 are: +Kate 22.12 将带来的其他值得注意的改进包括: -- **Optimized Status Bar** -- **Improvements to the Build Plugin** -- **Moveable Sidebar Buttons** -- **Improvements to Window Handling** +- **优化的状态栏** +- **对构建插件的改进** +- **可移动的侧边栏按钮** +- **对窗口处理的改进** -Kate is shaping to be a suitable alternative to Microsoft's [Visual Studio Code][9] and has come a long way since its major revamp in 2021. +Kate 正在成为微软的 [Visual Studio Code][9] 的合适替代品,并且自 2021 年大规模重构以来已经取得了很大的进步。 -In Kate's [official blog post][10], you can learn more about these changes and watch them in action. +在 Kate 的 [官方博客文章][10] 中,你可以了解更多关于这些变化的信息,并看看它们实际是怎么工作的。 -💬 Are you looking forward to the release of Kate 22.12? Or do you prefer VS Code? +💬 你期待 Kate 22.12 的发布吗?还是更喜欢 VS Code? -------------------------------------------------------------------------------- From a72a5ff69aa5bfabd68bd4157c249ac55b67569d Mon Sep 17 00:00:00 2001 From: Cubik Date: Wed, 9 Nov 2022 22:03:33 -0500 Subject: [PATCH 1954/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?]=20[news]=2020221101.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=20Kate=20Editor=20is=20Getting=20Four=20New=20Awesome=20Featur?= =?UTF-8?q?es.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md (100%) diff --git a/sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md b/translated/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md similarity index 100% rename from sources/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md rename to translated/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md From df71941e046703aa55a9310d53d003296519061c Mon Sep 17 00:00:00 2001 From: Muggle Wei Date: Thu, 10 Nov 2022 11:26:21 +0800 Subject: [PATCH 1955/3123] translate: Is Lua worth learning --- .../20221103.0 ⭐️⭐️ Is Lua worth learning.md | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md index 179addf957..49d6fc7c30 100644 --- a/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md +++ b/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md @@ -2,49 +2,49 @@ [#]: via: "https://opensource.com/article/22/11/lua-worth-learning" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MuggleWei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -Is Lua worth learning? +Lua值得学习吗? ====== -Lua is a fun and robust language, with progressive improvements made with each release, and an ever-growing developer base. Discover all of its possibilities. +Lua是一个有趣且强大的语言, 随着版本的推进, 功能愈发的强大, 开发者也在不断的增长. 这篇文章我们将探索一下它的可能性. -Lua is a scripting language used for procedural programming, functional programming, and even [object-oriented programming][1]. It uses a C-like syntax, but is dynamically typed, features automatic memory management and garbage collection, and runs by interpreting bytecode with a register-based virtual machine. This makes it a great language for beginners, but also a powerful tool for experienced programmers. +Lua是一个脚本语言, 它面向过程, 函数式编程, 甚至可以是[面向对象的][1]. 它使用类c的语法, 但却是动态类型, 具有自动内存管理和垃圾回收功能, 使用基于寄存器的虚拟机来解释字节码. 这些特点使得它对于初学者来说是个很好的语言, 同时也是经验丰富的程序员的强大工具. -Lua has been somewhat eclipsed from the public view by languages like [Python][2] and [JavaScript][3], but Lua has several advantages that make it popular in some major software projects. Lua is easily embedded within other languages, meaning that you can include Lua files in the code base of something written in (for instance) Java and it runs as if it were native Java code. It sounds like magic, but of course there are projects like [luaj][4] working to make it possible, and it's only possible because Lua is designed for it. It's partly because of this flexibility that you're likely to find Lua as the scripting language for video games, graphic applications, and more. +虽然与[Python][2]和[JavaScript][3]相比, Lua现在已经有点儿黯然失色了, 但是Lua拥有的一些优点使得它在许多的重大软件项目中很受欢迎. Lua很容易嵌入到其他语言当中, 这意味着你可以在(例如)Java编写的代码中包含Lua文件, 就像原生的Java代码一样运行. 这听起来就像魔法一般, 现在有许多项目如[luaj][4]使得其成为可能, 之所以可以实现, 正是因为Lua就是为此而设计的. 正因这部分的灵活性, 你可以在许多游戏, 图形应用的程序中发现Lua脚本的身影. -As with anything, it takes time to perfect, but Lua is easy (and fun) to learn. It's a consistent language, a friendly language with useful error messages, and there's lots of great support online. Ready to get started? +就像其他任何事情一样, 做到完美是需要时间的, 但是Lua是很易于学习(并且有趣)的语言. 它是一种一致性的语言, 一种带有有用的错误消息的友好的语言, 并且可以在网上轻松找到许多有用的资料. 那么就让我们开始吧! -### Installing Lua +### 安装Lua -On Linux, you can install Lua using your distribution's package manager. For instance, on Fedora, CentOS, Mageia, OpenMandriva, and similar distributions: +在Linux下, 你可以使用发行版自带的包管理来安装Lua. 例如, 在Fedora, CentOS, Mageia, OpenMandriva以及相似的发行版中: ``` $ sudo dnf install lua ``` -On Debian and Debian-based systems: +在Debian以及基于Debian的系统中: ``` $ sudo apt install lua ``` -For Mac, you can use [MacPorts][5] or [Homebrew][6]. +对于Mac, 你可以使用[MacPorts][5] 或者 [Homebrew][6]. ``` $ sudo port install lua ``` -For Windows, install Lua using [Chocolatey][7]. +对于Windows, 可以使用[Chocolatey][7]安装Lua. -To test Lua in an interactive interpreter, type `lua` in a terminal. +完成安装后, 可以在终端中输入`lua`来在交互式解释器中使用Lua. -### Functions +### 函数 -As with many programming languages, Lua syntax generally involves a built-in function or keyword, followed by an argument. For instance, the `print` function displays any argument you provide to it. +如许多编程语言一样, Lua调用一个内建的函数或关键字, 后面跟着参数. 例如, `print`函数显示你传给它的所有参数. ``` $ lua @@ -54,16 +54,16 @@ Lua 5.4.2 Copyright (C) 1994-2020 Lua.org, PUC-Rio hello ``` -Lua's `string` library can manipulate words (called "strings" in programming.) For instance, to count the letters in a string, you use the `len` function of the `string` library: +Lua的`string`库可以操作单词(在编程中称为"字符串"). 例如, 统计字符串中的字母数量, 你可以使用`string`库中`len`函数: ``` > string.len('hello') 5 ``` -### Variables +### 变量 -A variable allows you to create a special place in your computer's memory for temporary data. You can create variables in Lua by inventing a name for your variable, and then putting some data into it. +一个变量允许你在计算机内存中为临时的数据创建一个指定的空间. Lua中创建变量的方法是赋予变量一个名字, 接着将数据放入其中. ``` > foo = "hello world" @@ -74,17 +74,17 @@ hello world 3 ``` -### Tables +### 表 -Second only to the popularity of variables in programming is the popularity of arrays. The word "array" literally means an arrangement, and that's all a programming array is. It's a specific arrangement of data, and because there is an arrangement, an array has the advantage of being structured. An array is often used to perform essentially the same purpose as a variable, except that an array can enforce an order to its data. In Lua, an array is called a `table`. +在编程中, 数组的使用频率仅次于变量的存在. "数组"这个词的字面意思就是一种排列, 而这就是程序中数组的意义了. 它是数据的一种排列, 因为有排列, 所有数组具有结构化的优势. 本只上数组通常用于和变量相同的目的, 只不过数组会给对其中的数据进行排序. 在Lua中, 数组被称为`表`. -Creating a table is like creating a variable, except that you set its initial content to two braces (`{}`): +创建表和创建变量类似, 区别仅在于它的初始化内容被设置为`{}`: ``` > mytable = {} ``` -When you add data to a table, it's also a lot like creating a variable, except that your variable name always begins with the name of the table, and is separated with a dot: +当往表中增加数据时, 它就如同创建变量一样, 区别在于这里的变量之前总是以表名开头, 中间使用`.`来连接: ``` > mytable.foo = "hello world" @@ -95,17 +95,17 @@ hello world 3 ``` -### Scripting with Lua +### 使用Lua作为脚本 -Running Lua in the terminal is great for getting instant feedback, but it's more useful to run Lua as a script. A Lua script is just a text file containing Lua code, which the Lua command can interpret and execute. +在终端交互环境中运行Lua可以得到良好的反馈, 但是将Lua作为脚本运行会更为有用. 一个Lua脚本就是包含Lua代码的文本文件, Lua命令可以解析并执行此文件. -The eternal question, when just starting to learn a programming language, is how you're supposed to know what to write. This article has provided a good start, but so far you only know two or three Lua functions. The key, of course, is in documentation. The Lua language isn't that complex, and it's very reasonable to refer to the [Lua documentation site][8] for a list of keywords and functions. +对于开始学习一门编程语言, 永恒的问题是你怎么知道该写什么. 这篇文章将提供一个不错的开端, 截至目前, 你仅知道了两三个Lua函数. 懂得查阅文档是很关键的. Lua并不是一个复杂的语言, 可以通过[Lua文档网站][8]很方便的获取关键字以及函数的用法. -Here's a practice problem. +下面是一个练习题. -Suppose you want to write a Lua script that counts words in a sentence. As with many programming challenges, there are many ways to go about this, but say the first relevant function you find in the Lua docs is `string.gmatch`, which can search for a specific character in a string. Words are usually separated by an empty space, so you decide that counting spaces + 1 ought to render a reasonably accurate count of the words they're separating. +假设你想编写一个Lua脚本来统计句子中的单词数量. 与众多的编程挑战一样, 有许多方法可以解决这个问题, 假设你在Lua文档中找到的第一个相关的函数是`string.gmatch`, 此函数可以搜索字符串中的特定字符. 单词通常通过空格分隔开来, 所以你决定计算空格数并加1来作为单词的数量. -Here's the code for that function: +下面是实现的代码 ``` function wc(words,delimiter) @@ -118,20 +118,20 @@ function wc(words,delimiter) end ``` -These are the components of that sample code: +下面是这个样例代码的解释 -- `function`: A keyword declaring the start of a function. A custom function works basically the same way as built-in functions (like `print` and `string.len`.) -- `words` and `delimiter`: Arguments required for the function to run. In the statement `print('hello')`, the word `hello` is an argument. -- `counter`: A variable set to 1. -- `for`: A loop using the `string.gmatch` function as it iterates over the `words` you've input into the function, and searches for the `delimiter` you've input. -- `count = count +1`: For each `delimiter` found, the value of `count` is re-set to its current value plus 1. -- `end`: A keyword ending the `for` loop. -- `return count`: This function outputs (or returns) the contents of the `count` variable. -- `end`: A keyword ending the function. +- `function`: 这是声明函数开始的关键字. 自定义函数的工作方式与内置函数(如`print`和`string.len`)基本相同 +- `words`和`delimiter`: 这是函数运行所需的参数. 正如`print('hello')`当中, `hello`是一个参数 +- `counter`: 一个变量, 且被初始化为1 +- `for`: 在循环中使用`string.gmatch`作为迭代器遍历`words`, 并且在其中搜索`delimiter` +- `count = count +1`: 当搜索到了`delimiter`, 则对`count`进行自增1的操作 +- `end`: `for`循环的结束关键字 +- `return count`: 这个函数输出(或返回)`count`变量的内容 +- `end`: 函数结束的关键字 -Now that you've created a function all your own, you can use it. That's an important thing to remember about a function. It doesn't run on its own. It waits for you to call it in your code. +现在你已经创建了一个函数, 你可以使用它. 需要记住, 函数不会自动运行, 而是等待你在代码中调用它. -Type this sample code into a text file and save it as `words.lua`: +将下面的代码写入文件并保存为`words.lua` ``` function wc(words,delimiter) @@ -152,7 +152,7 @@ result = wc('can you find the bug? ', ' ') print(result) ``` -You've just created a Lua script. You can run it with Lua. Can you find the problem with this method of counting words? +你现在创建了一个Lua脚本. 你可以使用Lua运行它. 随后你会发现统计单词的结果有些问题 ``` $ lua ./words.lua @@ -161,11 +161,11 @@ $ lua ./words.lua 6 ``` -You might notice that the count is incorrect for the final phrase because there's a trailing space in the argument. Lua correctly detected the space and tallied it into `count`, but the word count is incorrect because that particular space happens not to delimit a word. I leave it to you to solve that problem, or to find other ways in which this method isn't ideal. There's a lot of rumination in programming. Sometimes it's purely academic, and other times it's a question of whether an application works at all. +你也许已经注意到了最后一个句子的单词统计不正确, 因为在句子的最后带有一个额外的空格. Lua正确的检测到了空格, 并将其计入`count`中, 但是单子的统计是错误的, 因为有个空格并没有作为单词的分隔出现. 我把这个问题留给你来解决, 或者去发现其他方法, 即使这个方法不太理想. 编程中有很多需要思考的地方. 有时是纯粹学术性的思考, 有时也许是应用是否运训正常的思考. -### Learning Lua +### 学习Lua -Lua is a fun and robust language, with progressive improvements made with each release, and an ever-growing developer base. You can use Lua as a utilitarian language for personal scripts, or to advance your career, or just as an experiment in learning a new language. Give it a try, and see what Lua brings to the table. +Lua是一个有趣且强大的语言, 随着版本的推进, 功能愈发的强大, 开发者也在不断的增长. 你可以将Lua作为实用性的个人脚本使用, 或者在工作中使用, 或者仅仅是体验一下一个新的语言. 尝试一下, 看看Lua能给你带来什么吧. -------------------------------------------------------------------------------- @@ -173,7 +173,7 @@ via: https://opensource.com/article/22/11/lua-worth-learning 作者:[Seth Kenlon][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[MuggleWei](https://github.com/MuggleWei) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a1fb2212b8a575b322c0b188ae4f45447ed3b211 Mon Sep 17 00:00:00 2001 From: Muggle Wei Date: Thu, 10 Nov 2022 11:32:26 +0800 Subject: [PATCH 1956/3123] move tech/20221103.0 Is Lua worth learning.md to translated --- .../20221103.0 ⭐️⭐️ Is Lua worth learning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {sources/tech => translated}/20221103.0 ⭐️⭐️ Is Lua worth learning.md (97%) diff --git a/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/translated/20221103.0 ⭐️⭐️ Is Lua worth learning.md similarity index 97% rename from sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md rename to translated/20221103.0 ⭐️⭐️ Is Lua worth learning.md index 49d6fc7c30..70c83a953f 100644 --- a/sources/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md +++ b/translated/20221103.0 ⭐️⭐️ Is Lua worth learning.md @@ -16,7 +16,7 @@ Lua是一个脚本语言, 它面向过程, 函数式编程, 甚至可以是[面 虽然与[Python][2]和[JavaScript][3]相比, Lua现在已经有点儿黯然失色了, 但是Lua拥有的一些优点使得它在许多的重大软件项目中很受欢迎. Lua很容易嵌入到其他语言当中, 这意味着你可以在(例如)Java编写的代码中包含Lua文件, 就像原生的Java代码一样运行. 这听起来就像魔法一般, 现在有许多项目如[luaj][4]使得其成为可能, 之所以可以实现, 正是因为Lua就是为此而设计的. 正因这部分的灵活性, 你可以在许多游戏, 图形应用的程序中发现Lua脚本的身影. -就像其他任何事情一样, 做到完美是需要时间的, 但是Lua是很易于学习(并且有趣)的语言. 它是一种一致性的语言, 一种带有有用的错误消息的友好的语言, 并且可以在网上轻松找到许多有用的资料. 那么就让我们开始吧! +就像其他任何事情一样, 做到完美是需要时间的, Lua是很易于学习(并且有趣)的语言. 它是一种一致性的语言, 一种带有有用的错误消息的友好的语言, 并且可以在网上轻松找到许多有用的资料. 那么就让我们开始吧! ### 安装Lua From b2ed67a289c8053fe48bfe7f8c85337cba55f263 Mon Sep 17 00:00:00 2001 From: Donkey Date: Thu, 10 Nov 2022 11:44:53 +0800 Subject: [PATCH 1957/3123] PR --- ...0221020.7 ⭐️ 4 open source editors I use for my writing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md b/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md index 91ac8e2066..d544839c70 100644 --- a/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md +++ b/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/open-source-editors" [#]: author: "Alan Formy-Duval https://opensource.com/users/alanfdoss" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey-Hao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -42,7 +42,7 @@ via: https://opensource.com/article/22/10/open-source-editors 作者:[Alan Formy-Duval][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From dfb13c142051e552e8fe3fae3dde8a4c58d49cdc Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Thu, 10 Nov 2022 20:29:49 +0800 Subject: [PATCH 1958/3123] =?UTF-8?q?Rename=20translated/20221103.0=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Is=20Lua=20worth=20learn?= =?UTF-8?q?ing.md=20to=20translated/tech/20221103.0=20=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Is=20Lua=20worth=20learning.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translated/{ => tech}/20221103.0 ⭐️⭐️ Is Lua worth learning.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translated/{ => tech}/20221103.0 ⭐️⭐️ Is Lua worth learning.md (100%) diff --git a/translated/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md similarity index 100% rename from translated/20221103.0 ⭐️⭐️ Is Lua worth learning.md rename to translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md From 3560542752ba08087c58d3b23cd071b51c14f389 Mon Sep 17 00:00:00 2001 From: FYJNEVERFOLLOWS Date: Thu, 10 Nov 2022 20:37:27 +0800 Subject: [PATCH 1959/3123] translated1110 --- ...files with this versatile Linux command.md | 183 ++++++++---------- 1 file changed, 83 insertions(+), 100 deletions(-) diff --git a/sources/tech/20210202 Convert audio files with this versatile Linux command.md b/sources/tech/20210202 Convert audio files with this versatile Linux command.md index a9d1803e4e..fea685931d 100644 --- a/sources/tech/20210202 Convert audio files with this versatile Linux command.md +++ b/sources/tech/20210202 Convert audio files with this versatile Linux command.md @@ -7,85 +7,75 @@ [#]: via: (https://opensource.com/article/20/2/linux-sox) [#]: author: (Klaatu https://opensource.com/users/klaatu) -Convert audio files with this versatile Linux command +使用这个多功能的 Linux 命令转换音频文件 ====== -SoX Sound Exchange can even add effects to your audio files. +SoX Sound Exchange 甚至可以为您的音频文件添加特效。 ![HiFi vintage stereo][1] -I work with media, and when you work with any kind of media, you learn pretty quickly that standardization is a valuable tool. Just as you wouldn't try to add a fraction to a decimal without converting one or the other, I've learned that it's not ideal to combine media of differing formats. Most hobbyist-level applications make the conversion process invisible to the user as a convenience. Flexible software aimed at users needing control over the fine details of their assets, however, often leave it up to you to convert your media to your desired format in advance. I have a few favorite tools for conversion, and one of those is the so-called _Swiss army knife of sound_, [SoX][2]. +我与媒体打交道,当你与任何一种媒体打交道时,你很快就会知道标准化是一种有价值的工具。就像你不会试图在不转换其中一个或另一个的情况下将分数加到小数中一样,我已经了解到组合不同格式的媒体并不是理想的。为了方便用户,大多数爱好者级应用程序使转换过程不可见。然而,对于那些需要控制媒体细节的用户的灵活软件,会通常让你自己提前将媒体转换为所需的格式。我有一些最喜欢的音频转换工具,其中之一就是号称“声音的瑞士军刀” —— [SoX][2]。 -### Installing +### 安装 +在 Linux 或 BSD 上,可以从软件存储库或端口树中安装 **sox** 命令(和一些有用的符号链接)。 -On Linux or BSD, you can install the **sox** command (and some helpful symlinks) from your software repository or ports tree. +你也可以从 [Sourceforge.net][3] 上安装 SoX。它不经常发布,但它的代码库往往是稳定的,所以如果你想要最新的功能(如 Opus 支持),构建它是容易和安全的。 -You can also install SoX from its home on [Sourceforge.net][3]. It doesn't release often, but its codebase tends to be stable, so if you want the latest features (such as Opus support), it's easy and safe to build. +SoX 主要提供了 **SoX** 命令,但是安装 SoX 也创建了一些有用的符号链接:**play**、**rec** 和 **soxi**。 -SoX provides primarily the **sox** command, but installation also creates a few useful symlinks: **play**, **rec**, and **soxi**. - -### Getting information about files with SoX - -SoX reads and rewrites audio data. Whether it stores the rewritten audio data is up to you. There are use cases in which you don't need to store the converted data, for instance, when you're sending the output directly to your speakers for playback. Before doing any conversion, however, it's usually a good idea to determine exactly what you're dealing with in the first place. - -To gather information about an audio file, use the **soxi** command. This is a symlink to **sox --info**. +### 使用 SoX 获取有关文件的信息 +SoX 读取和重写音频数据。它是否存储重写的音频数据取决于你。在有些情况下,你不需要存储转换后的数据,例如,当你将输出直接发送到扬声器进行回放时。然而,在进行任何转换之前,最好首先确定要处理的是什么。 +使用 **soxi** 命令也可以收集音频文件信息。**soxi** 会符号链接到 **soxi--info**。 ``` $ soxi countdown.mp3 -Input File     : '/home/tux/countdown.mp3' -Channels       : 1 -Sample Rate    : 44100 -Precision      : 16-bit -Duration       : 00:00:11.21 = 494185 samples... -File Size      : 179k -Bit Rate       : 128k -Sample Encoding: MPEG audio (layer I, II or III) +Input File(输入文件)    : '/home/tux/countdown.mp3' +Channels(通道数)       : 1 +Sample Rate(采样率)    : 44100 +Precision(数据精度)      : 16-bit(16 比特) +Duration(时长)       : 00:00:11.21 = 494185 samples...(11.21 秒 = 494185 采样点) +File Size(文件大小)      : 179k +Bit Rate(比特率)       : 128k +Sample Encoding(编码格式): MPEG audio (layer I, II or III) ``` -This output gives you a good idea of what codec the audio file is encoded in, the file length, file size, sample rate, and the number of channels. Some of these you might _think_ you already know, but I never trust assumptions when media is brought to me by a client. Verify media attributes with **soxi**. +这个输出可以让你很好地了解音频文件的编码方式、文件长度、文件大小、采样率和通道数。其中一些你可能*认为*你已经知道了,但当客户把媒体带到我面前时,我从不相信这些假设。使用 **soxi** 验证媒体属性。 -### Converting files +### 转换文件 +在本例中,游戏节目的音频以 MP3 文件的形式展示倒计时。虽然几乎所有的编辑应用程序都接受压缩音频,但它们都没有真正编辑压缩数据。转换是在某个地方发生的,可能是一个秘密的后台任务,也可能是让你保存一份副本的提示。我通常喜欢自己提前完成转换。这样,我可以控制使用的格式。我可以在一夜之间批量制作大量的媒体,而不是浪费宝贵的制作时间,等待编辑应用程序按需浏览它们。 -In this example, the audio of a game show countdown has been delivered as an MP3 file. While nearly all editing applications accept compressed audio, none of them actually edit the compressed data. Conversion is happening somewhere, whether it's a secret background task or a prompt for you to save a copy. I generally prefer to do the conversion myself, in advance. This way, I can control what format I'm using. I can do lots of media in batches overnight instead of wasting valuable production time waiting for an editing application to churn through them on demand. - -The **sox** command is meant for converting audio files. There are a few stages in the **sox** pipeline: - - * input - * combine - * effects - * output - - - -In command syntax, the effects step is, confusingly, written _last_. That means the pipeline is composed this way: +**sox** 命令用于转换音频文件。在 **sox** 流程中有几个阶段: + * 输入 + * 合并 + * 特效 + * 输出 +在命令语法中,特效步骤令人困惑地写到*最后一步*。这意味着 **sox** 流程是这样组成的: ``` -`input → combine → output → effects` +输入 → 合并 → 输出 → 特效 ``` -### Encoding - -The simplest conversion command involves only an input file and an output file. Here's the command to convert an MP3 file to a lossless FLAC file: +### 编码 +最简单的转换命令只涉及一个输入文件和一个输出文件。下面是转换 MP3 文件为无损 FLAC 文件的命令: ``` $ sox countdown.mp3 output.flac $ soxi output.flac -Input File     : 'output.flac' -Channels       : 1 -Sample Rate    : 44100 -Precision      : 16-bit -Duration       : 00:00:11.18 = 493056 samples... -File Size      : 545k -Bit Rate       : 390k -Sample Encoding: 16-bit FLAC -Comment        : 'Comment=Processed by SoX' +Input File(输入文件)     : 'output.flac' +Channels(通道数)       : 1 +Sample Rate(采样率)    : 44100 +Precision(数据精度)      : 16-bit(16 比特) +Duration(时长)       : 00:00:11.18 = 493056 samples...(11.18 秒 = 493056 采样点) +File Size(文件大小)      : 545k +Bit Rate(比特率)       : 390k +Sample Encoding(编码格式): 16-bit FLAC +Comment(注释)        : 'Comment=Processed by SoX' ``` -#### Effects - -The effects chain is specified at the end of a command. It can alter audio prior to sending the data to its final destination. For instance, sometimes audio that's too loud can cause problems during conversion: +#### 特效 +特效可以在命令末尾指定。它可以在将数据发送到最终目的地之前更改音频。例如,有时声音太大会在转换过程中造成问题: ``` @@ -93,106 +83,99 @@ $ sox bad.wav bad.ogg sox WARN sox: `bad.ogg' output clipped 126 samples; decrease volume? ``` -Applying a **gain** effect can often solve this problem: +应用**增益** (gain) 效果通常可以解决此问题: ``` `$ sox bad.wav bad.ogg gain -1` ``` -#### Fade +#### 淡入淡出 +另一个常用的效果是**淡入淡出**。此效果允许你定义淡入或淡出的形状,以及你希望淡入淡出效果持续的时间。 -Another useful effect is **fade**. This effect lets you define the shape of a fade-in or fade-out, along with how many seconds you want the fade to span. - -Here's an example of a six-second fade-in using an inverted parabola: +下面是一个使用倒抛物线的 6 秒淡入示例: ``` `$ sox intro.ogg intro.flac fade p 6` ``` -This applies a three-second fade-in to the head of the audio and a fade-out starting at the eight-second mark (the intro music is only 11 seconds, so the fade-out is also three-seconds in this case): - +这将对音频的头部应用 3 秒的淡入,并从 8 秒标记开始淡出(介绍音乐只有 11 秒,因此在这种情况下淡出也是3秒): ``` `$ sox intro.ogg intro.flac fade p 3 8` ``` -The different kinds of fades (sine, linear, inverted parabola, and so on), as well as the options **fade** offers (fade-in, fade-out), are listed in the **sox** man page. +**sox** 手册页中列出了不同类型的淡入淡出(正弦、线性、倒抛物线等)以及**淡入淡出提供的选项。 -#### Effect syntax +#### 特效语法 +每个特效插件都有自己的语法,因此请参阅手册页了解如何调用每个特效插件的详细信息。要做到这一点,你需要一个图形声波编辑器或数字音频工作站,例如 [LMMS][4] 或 [Rosegarden][5]。但是,如果你只想应用一次特效,可以在同一命令中将它们一起列出。 -Each effect plugin has its own syntax, so refer to the man page for details on how to invoke each one. - -Effects can be daisy-chained in one command, at least to the extent that you want to combine them. In other words, there's no syntax to apply a **flanger** effect only during a six-second fade-out. For something that precise, you need a graphical sound wave editor or a digital audio workstation such as [LMMS][4] or [Rosegarden][5]. However, if you just have effects that you want to apply once, you can list them together in the same command. - -This command applies a -1 **gain** effect, a tempo **stretch** of 1.35, and a **fade-out**: +此命令应用 -1 的**增益**效果、1.35 的速度**拉伸**和**淡入淡出**: ``` $ sox intro.ogg output.flac gain -1 stretch 1.35 fade p 0 6 $ soxi output.flac -Input File     : 'output.flac' -Channels       : 1 -Sample Rate    : 44100 -Precision      : 16-bit -Duration       : 00:00:15.10 = 665808 samples... -File Size      : 712k -Bit Rate       : 377k -Sample Encoding: 16-bit FLAC -Comment        : 'Comment=Processed by SoX' +Input File(输入文件)     : 'output.flac' +Channels(通道数)       : 1 +Sample Rate(采样率)    : 44100 +Precision(数据精度)      : 16-bit(16 比特) +Duration(时长)       : 00:00:15.10 = 665808 samples...(15.10 秒 = 665808 采样点) +File Size(文件大小)      : 712k +Bit Rate(比特率)       : 377k +Sample Encoding(编码格式): 16-bit FLAC +Comment(注释)        : 'Comment=Processed by SoX' ``` -### Combining audio +### 组合音频 +SoX 还可以通过连接或混合音频文件来组合音频文件。 -SoX can also combine audio files, either by concatenating them or by mixing them. - -To join (or _concatenate_) files into one, provide more than one input file in your command: +要连接(或*拼接*)文件合并为一个文件,请在命令中提供多个输入文件: ``` `$ sox countdown.mp3 intro.ogg output.flac` ``` -In this example, **output.flac** now contains **countdown** audio, followed immediately by **intro** music. +在本例中,**output.flac** 现在包含 **倒计时** 音频,紧接着是**简介** 音乐。 -If you want the two tracks to play over one another at the same time, though, you can use the **\--combine mix** option: +但是,如果你希望两首曲目同时播放,可以使用 **\--combine mix** 选项: ``` `$ sox --combine mix countdown.mp3 intro.ogg output.flac` ``` -Imagine, however, that the two input files differed in more than just their codecs. It's not uncommon for vocal tracks to be recorded in mono (one channel), but for music to be recorded in at least stereo (two channels). SoX won't default to a solution, so you have to standardize the format of the two files yourself first. +然而,想象一下,这两个输入文件的不同之处不仅仅在于它们的编解码器。声音用单声道(一个声道)录制并不少见,但音乐要用立体声(至少两个声道)来录制。SoX 不会给出默认的解决方案,因此你必须首先自己标准化这两个文件的格式。 -#### Altering audio files - -Options related to the file name listed _after_ it. For instance, the **\--channels** option in this command applies _only_ to **input.wav** and NOT to **example.ogg** or **output.flac**: +#### 更改音频文件 +选项只与后面列出的文件名相关。例如,此命令中的 **\--channels** 选项将*仅仅*应用于 **input.wav**,而*不被*应用于 **example.ogg** 和 **output.flac**: ``` `$ sox --channels 2 input.wav example.ogg output.flac` ``` -This means that the position of an option is very significant in SoX. Should you specify an option at the start of your command, you're essentially only overriding what SoX gleans from the input files on its own. Options placed immediately before the _output_ file, however, determine how SoX writes the audio data. +这意味着在 SoX 中,选项的位置非常重要。如果你在命令开始时指定一个选项,那么实际上只会覆盖 SoX 自己从输入文件中收集的内容。然而,在*输出文件*名 前的选项决定了 SoX 如何写入音频数据。 -To solve the previous problem of incompatible channels, you can first standardize your inputs, and then mix: +要解决以前的不兼容通道问题,你可以首先标准化输入,然后混合: ``` $ sox countdown.mp3 --channels 2 countdown-stereo.flac gain -1 $ soxi countdown-stereo.flac -Input File     : 'countdown-stereo.flac' -Channels       : 2 -Sample Rate    : 44100 -Precision      : 16-bit -Duration       : 00:00:11.18 = 493056 samples... -File Size      : 545k -Bit Rate       : 390k -Sample Encoding: 16-bit FLAC -Comment        : 'Comment=Processed by SoX' +Input File(输入文件)     : 'countdown-stereo.flac' +Channels(通道数)       : 2 +Sample Rate(采样率)    : 44100 +Precision(数据精度)      : 16-bit(16 比特) +Duration(时长)       : 00:00:11.18 = 493056 samples...(11.18 秒 = 493056 采样点) +File Size(文件大小)      : 545k +Bit Rate(比特率)       : 390k +Sample Encoding(编码格式): 16-bit FLAC +Comment(注释)        : 'Comment=Processed by SoX' $ sox --combine mix \ countdown-stereo.flac \ @@ -200,11 +183,11 @@ intro.ogg \ output.flac ``` -SoX absolutely requires multiple commands for complex actions, so it's normal to create several temporary and intermediate files as needed. +SoX 绝对需要多个命令来执行复杂的操作,因此根据需要创建几个临时和中间文件是正常的。 -### Multichannel audio +### 多通道音频 -Not all audio is constrained to one or two channels, of course. If you want to combine several audio channels into one file, you can do that with SoX and the **\--combine merge** option: +当然,并非所有音频都被限制在一个或两个声道。如果您想将多个音频通道组合成一个文件,可以使用 SoX 和 **\--combine merge** 选项: ``` @@ -216,9 +199,9 @@ Channels       : 3 [...] ``` -### Easy audio manipulation +### 简单的音频操作 -It might seem strange to work with audio using no visual interface, and for some tasks, SoX definitely isn't the best tool. However, for many tasks, SoX provides an easy and lightweight toolkit. SoX is a simple command with powerful potential. With it, you can convert audio, manipulate channels and waveforms, and even generate your own sounds. This article has only provided a brief overview of its capabilities, so go read its man page or [online documentation][2] and then see what you can create. +在没有视觉界面的情况下操作音频似乎很奇怪,而且对于某些任务来说,SoX 绝对不是最好的工具。然而,对于许多任务,SoX 提供了一个简单而轻量级的工具包。SoX 是一个具有强大潜力的简单命令。有了它,你可以转换音频,操纵通道和波形,甚至生成自己的声音。本文仅简要概述了其功能,因此请阅读其手册页或[在线文档][2],然后看看你能创造什么。 -------------------------------------------------------------------------------- From d17f82a7d298c08668a3345de93bdd62fe10cd28 Mon Sep 17 00:00:00 2001 From: FYJNEVERFOLLOWS Date: Thu, 10 Nov 2022 20:39:30 +0800 Subject: [PATCH 1960/3123] move --- ...10202 Convert audio files with this versatile Linux command.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210202 Convert audio files with this versatile Linux command.md (100%) diff --git a/sources/tech/20210202 Convert audio files with this versatile Linux command.md b/translated/tech/20210202 Convert audio files with this versatile Linux command.md similarity index 100% rename from sources/tech/20210202 Convert audio files with this versatile Linux command.md rename to translated/tech/20210202 Convert audio files with this versatile Linux command.md From b06e3c954df88b89b55f37ae84c40f994158efcd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 10 Nov 2022 23:48:47 +0800 Subject: [PATCH 1961/3123] RP @Cubik65536 https://linux.cn/article-15239-1.html --- ...ate Editor is Getting Four New Awesome Features.md | 54 ++++++++----------- 1 file changed, 23 insertions(+), 31 deletions(-) rename {translated/news => published}/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md (68%) diff --git a/translated/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md b/published/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md similarity index 68% rename from translated/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md rename to published/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md index e40e79595e..a7e33280c5 100644 --- a/translated/news/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md +++ b/published/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md @@ -3,45 +3,43 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15239-1.html" -Kate 文本编辑器获得了四个非常棒的新功能 +Kate 文本编辑器增加了四个非常棒的新功能 ====== -由 KDE 开发的功能丰富的文本编辑器正在变得更好和更有用! +> 这个由 KDE 开发的功能丰富的文本编辑器正在变得更好和更有用! ![Kate 文本编辑器获得了四个非常棒的新功能][1] -[Kate 文本编辑器][2] 是一个不断发展和强大的开源文本编辑器,它是微软专有的 Visual Studio Code 应用程序的替代品。 +[Kate 文本编辑器][2] 是一个不断发展和强大的开源文本编辑器,它可以作为微软的 Visual Studio Code 应用程序的替代品。 它可以在 Linux、Windows 和 macOS 上使用。 -这个代码编辑器在 2021 年获得了重大升级,这可能使它成为了 KDE 面对微软所提供的产品交出的答卷。 +这个代码编辑器在 2021 年进行了重大升级,这可能使它成为了 KDE 对微软产品的回应。 在即将到来的 Kate 和 KWrite 22.12 版本上,他们的目标是添加许多非常有用的功能。 来简单看看我们可以从 Kate 中期待什么。 -### 🆕 Kate Editor: 新增功能 +### 🆕 Kate Editor 的新增功能 -如果你读过 [Nate 的博客][3] 来了解 KDE 的改进,你可能已经知道了 KDE Plasma 和应用程序即将获得的升级。 +如果你读了 [Nate 的博客][3] 了解 KDE 的改进,你可能已经知道了 KDE Plasma 和应用程序即将获得的升级。 但是,我想强调一些 Kate 22.12 将会带来的令人激动的新功能: -- **对 Qt Widgets 的支持** -- **更新的欢迎页面** -- **Git 差异查看器** -- **配置标签页** -- **剪切板历史** +- 对 Qt 部件的支持 +- 更新的欢迎页面 +- Git 差异查看器 +- 配置标签页 +- 剪切板历史 #### 欢迎页面 ![kate 22.12 欢迎页面][4] -图片来源:KDE - 和许多其他 [KDE 应用程序][6] 一样,Kate 现在将显示一个欢迎页面,该页面将欢迎用户并显示创建或打开文件、启动新会话、查看最近的文档等选项。 对于不喜欢这个页面的用户,欢迎页面上将提供一个选项,以在新窗口上禁用欢迎页面。 @@ -50,38 +48,32 @@ Kate 文本编辑器获得了四个非常棒的新功能 ![kate 22.12 git 差异支持][6] -图片来源:KDE +Kate 终于增加了对显示 git-diff 的支持;用户将能够比较他们的代码以检查差异,并找到那些令人讨厌的、会导致他们的应用程序无法正常运行错误。 -Kate 终于增加了对显示 git-diff 的支持;用户将能够比较他们的代码以检查差异并找到那些令人讨厌的,会导致他们的应用程序无法正常运行 bug。 - -用户也可以从多种视图中进行选择,例如合并、并排和原始文件。 +用户也可以从多种视图中进行选择,例如统一视图、并排视图和原始视图。 #### 新的剪贴板历史粘贴对话框 ![kate 22.12 剪贴板历史][7] -图片来源:KDE - Kate 现在添加了一个新的对话框,在粘贴的时候显示用户剪贴板内容的列表。 -当你在多行代码之间切换时,这可能会很有用,因为你不想丢失重要的内容。 +当你在多行代码之间切换,而又不想丢失重要的内容时,这可能会很有用。 #### 配置标签页 ![kate 22.12 配置标签页][8] -图片来源:KDE - -Kate 也将添加一个配置标签页,让用户可以更改重要的设置,并添加一个搜索栏,使用户可以快速查找特定的设置。 +Kate 也将添加一个配置标签页,让用户可以更改重要的设置,并添加了一个搜索栏,使用户可以快速查找特定的设置。 #### 🛠️ 其他变更和改进 Kate 22.12 将带来的其他值得注意的改进包括: -- **优化的状态栏** -- **对构建插件的改进** -- **可移动的侧边栏按钮** -- **对窗口处理的改进** +- 优化的状态栏 +- 对构建插件的改进 +- 可移动的侧边栏按钮 +- 对窗口处理的改进 Kate 正在成为微软的 [Visual Studio Code][9] 的合适替代品,并且自 2021 年大规模重构以来已经取得了很大的进步。 @@ -96,7 +88,7 @@ via: https://news.itsfoss.com/kate-editor-22-12-features/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 35916c691e506224c58f130c79d66d3932b61e8c Mon Sep 17 00:00:00 2001 From: Cubik Date: Thu, 10 Nov 2022 18:05:20 -0500 Subject: [PATCH 1962/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?][tech]:=2020221109.6=20=E2=AD=90=EF=B8=8F=20Using=20Python=20i?= =?UTF-8?q?n=20VS=20Code=20and=20Codium.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md b/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md index f3852a3bc9..73ee51ffb7 100644 --- a/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md +++ b/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/python-vs-code-codium" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -97,7 +97,7 @@ via: https://opensource.com/article/22/11/python-vs-code-codium 作者:[Don Watkins][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From bcb39c58b9f425d0dd3325f8591688c1f52c2065 Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Fri, 11 Nov 2022 08:40:15 +0800 Subject: [PATCH 1963/3123] update1111 --- ... Record Audio in Linux With Audacity -and Reduce Noise-.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md index b32cba6876..6fa3cf4c43 100644 --- a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md +++ b/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/audacity-recording/" [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "FYJNEVERFOLLOWS " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -113,7 +113,7 @@ via: https://itsfoss.com/audacity-recording/ 作者:[Anuj Sharma][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 932eb382f286f3daeb4a329e12b7b5a08128b336 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 11 Nov 2022 08:42:41 +0800 Subject: [PATCH 1964/3123] translated --- ...d Systemd or Any Other init System in Linux.md | 81 ------------------ ...d Systemd or Any Other init System in Linux.md | 82 +++++++++++++++++++ 2 files changed, 82 insertions(+), 81 deletions(-) delete mode 100644 sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md create mode 100644 translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md diff --git a/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md b/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md deleted file mode 100644 index d8693c87a6..0000000000 --- a/sources/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md +++ /dev/null @@ -1,81 +0,0 @@ -[#]: subject: "How to Find Systemd or Any Other init System in Linux" -[#]: via: "https://www.debugpoint.com/systemd-or-init/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Find Systemd or Any Other init System in Linux -====== - -**Here’s how you can determine if you are running systems or any other init system in your Linux distribution.** - -The first process, which starts when you boot up your Linux distribution, is called init (short for initialization). It has the process identifier 1 (i.e. pid=1). All the processes and applications in your Unix-based system are direct descendants of this init process. - -Based on functionality and features, different types of init processes are present. For example, [systemd][1], Runit, OpenRC, sysVinit, etc. Among those, the systemd is the most popular and modern one, which is used and adopted by all the modern Linux distributions, including Ubuntu and Fedora. - -There are ongoing debates about Systemd and its performance compared to the traditional Unix-based init systems. But that’s a topic for another article. - -let’s find out how you can determine whether you are running a systemd or any other init system in your Linux distribution. - -### Systemd or what init system? - -Unfortunately, there’s no direct command to find it out. You can trace it back from the init process id=1, which is basically a symbolic link to `/sbin/init` i.e. pid=1. - -Use `[strings][2]` command to print the text embedded in the binary file `/sbin/init` & search for init with the following command. - -``` -strings /sbin/init | grep init -``` - -**Example 1**: In this below output where it’s a sysVinit system running Debian (via Peppermint OS). As you can see, it clearly shows the init process name. - -``` -strings /sbin/init | grep init -``` - -![example showing the init is used and not systemd][3] - -If you find systemd in the same above system, there won’t be any entries. Hence you can conclude that you are running sysvinit and not systemd. - -**Example 2**: If you run the above command in a systemd system, you can easily see the systemd and its version at the first line of the output. - -``` -strings /sbin/init | grep systemd -``` - -![example showing it uses systemd][4] - -**Example 3**: You can also try to print the process tree using `pstree` command, which should show you the first process name. It should be either systemd or init, as shown in the below example. - -``` -pstree -``` - -![pstree is showing systemd is used][5] - -![pstree is showing init is used][6] - -That’s it. This is how you can easily find out whether your distro uses systemd or something else. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/systemd-or-init/ - -作者:[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/tag/systemd -[2]: https://linux.die.net/man/1/strings -[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/example-showing-the-init-is-used-and-not-systemd.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/example-showing-it-uses-systemd.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/pstree-is-showing-systemd-is-used.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/pstree-is-showing-init-is-used.jpg diff --git a/translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md b/translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md new file mode 100644 index 0000000000..33f26da1f0 --- /dev/null +++ b/translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md @@ -0,0 +1,82 @@ +[#]: subject: "How to Find Systemd or Any Other init System in Linux" +[#]: via: "https://www.debugpoint.com/systemd-or-init/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中查找 Systemd 或任何其他 init 系统 +====== + +**你可以通过以下方式确定你的 Linux 发行版中是否正在运行系统或任何其他 init 系统。** + +第一个进程在你启动 Linux 发行版时开始,称为 init(初始化的缩写)。它的进程标识符为 1(即 pid=1)。基于 Unix 的系统中的所有进程和应用程序都是这个 init 进程的直接后代。 + +根据功能和特性,存在不同类型的初始化进程。例如,[systemd][1]、Runit、OpenRC、sysVinit 等。其中,systemd 是最流行和最现代的一种,被包括 Ubuntu 和 Fedora 在内的所有现代 Linux 发行版使用和采用。 + +与传统的基于 Unix 的 init 系统相比,Systemd 及其性能一直存在争议。但这是另一篇文章的主题。 + +让我们看看如何确定在 Linux 发行版中运行的是 systemd 还是任何其他 init 系统。 + +### systemd 还是什么 init 系统? + +不幸的是,没有直接的命令可以找到它。你可以从初始化进程 id=1 追溯它,它基本上是到 `/sbin/init` 的符号链接,即 pid=1。 + +使用 `[strings][2]` 命令打印嵌入在二进制文件 `/sbin/init` 中的文本并使用以下命令搜索 init。 + + +``` +strings /sbin/init | grep init +``` + +**示例 1**:在下面的输出中,它是一个运行 Debian(通过 Peppermint OS)的 sysVinit 系统。如你所见,它清楚地显示了 init 进程名称。 + +``` +strings /sbin/init | grep init +``` + +![显示使用 init 而不是 systemd 的示例][3] + +如果在上述同一个系统中找到 systemd,那么不会有任何条目。因此,你可以得出结论,你正在运行 sysvinit 而不是 systemd。 + +**示例 2**:如果你在 systemd 系统中运行上述命令,你可以在输出的第一行轻松看到 systemd 及其版本。 + +``` +strings /sbin/init | grep systemd +``` + +![显示它使用 systemd 的示例][4] + +**示例 3**:你也可以尝试使用 `pstree` 命令打印进程树,它应该会显示第一个进程名称。它应该是 systemd 或 init,如下例所示。 + +``` +pstree +``` + +![pstree 显示使用 systemd][5] + +![pstree 显示使用 init][6] + +这就好了。这样你就可以轻松找出你的发行版是使用 systemd 还是其他的。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/systemd-or-init/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/tag/systemd +[2]: https://linux.die.net/man/1/strings +[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/example-showing-the-init-is-used-and-not-systemd.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/example-showing-it-uses-systemd.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/pstree-is-showing-systemd-is-used.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/pstree-is-showing-init-is-used.jpg From f491c2c8af05fd04017b3c51133375a7bd6f5b0f Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 11 Nov 2022 08:48:10 +0800 Subject: [PATCH 1965/3123] translating --- .../tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md b/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md index 117c015832..596bf99a97 100644 --- a/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md +++ b/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/fixing-scanned-images-imagemagick" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8bf3e468932ae4f2afb59b4aa5819a065a3f9143 Mon Sep 17 00:00:00 2001 From: Cubik Date: Thu, 10 Nov 2022 21:24:38 -0500 Subject: [PATCH 1966/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?][tech]:=2020221109.6=20=E2=AD=90=EF=B8=8F=20Using=20Python=20i?= =?UTF-8?q?n=20VS=20Code=20and=20Codium.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 ⭐️ Using Python in VS Code and Codium.md | 70 ++++++++++--------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md b/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md index 73ee51ffb7..84e28d5b9f 100644 --- a/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md +++ b/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md @@ -7,89 +7,93 @@ [#]: publisher: " " [#]: url: " " -Using Python in VS Code and Codium +在 VS Code 和 Codium 中使用 Python ====== -If you're looking for a good, general-purpose, open source code editor with Python integration, then you might give Codium a try. +如果你正在寻找一个优秀的、通用的、开源的、带有 Python 集成的代码编辑器,那么你可以尝试一下 Codium。 -Over the past couple of years, I have had the privilege of working with middle school children to introduce them to [Python coding][1] and the Raspberry Pi 400. It's been a lot of fun, and the Pi has been a great platform for the students and me. We've used [Code with Mu][2] and it's been quite successful. Our aptitude with Python has grown with experience, and so recently I started looking for ways to offer these students more. +在过去几年内,我有幸和中学生们一起,并带他们入门 [Python 开发][1] 和 Raspberry Pi 400。这一切都很有趣,Pi 对于学生和我来说都是一个很好的平台。我们使用了 [Code with Mu][2],并且一切都很成功。我们的 Python 技能随着经验的增长而增长,因此最近我开始寻找给这些学生提供更多东西的方法。 -I participated in a Python learning class, and during that class I got introduced to Microsoft's Visual Studio Code. I learned a lot in that class about how to set up a virtual environment for Python, and how to configure VS Code for Python programming. During that learning journey, I also got introduced to [Codium][3], which is essentially VS Code without Microsoft's branding and telemetry. +我参与了一个 Python 课程并在课程中接触了 Microsoft 的 Visual Studio Code。我在课程中学到了很多关于如何为 Python 设置虚拟环境以及如何为 Python 编程配置 VS Code 的知识。在学习过程中,我也认识了 [Codium][3],它本质上是 VS Code,但没有 Microsoft 的品牌和遥测。 -If you're looking for a good, general-purpose, open source code editor with Python integration, then you might give Codium a try. Here's how I got Codium set up for Python on my Linux system. +如果你正在寻找一个优秀的、通用的、开源的、带有 Python 集成的代码编辑器,那么你可以尝试一下 Codium。下面是我在 Linux 系统上为 Python 设置 Codium 的方法。 -### Install or update Python on Linux +### 在 Linux 上安装或更新 Python -First, make sure you are running the latest version of Python. You can do this with your package manager. On Debian and Debian-based systems: +首先,确保你正在运行最新版本的 Python。你可以使用你的软件包管理器来完成这项工作。在 Debian 和基于 Debian 的系统上: ``` $ sudo apt install python3-pip ``` -On Fedora, CentOS, Mageia, OpenMandriva, and similar: +在 Fedora、CentOS、Mageia、OpenMandriva 和类似的系统上: ``` $ sudo dnf update python3 ``` -On some systems, you may also need to install the software to create Python virtual environments: +在某些系统上,你可能还需要安装创建 Python 虚拟环境的软件: ``` $ sudo apt install python3.10-venv ``` -### Install Codium +### 安装 Codium -Next, [install Codium][4] on your computer. On Linux, you can download a package and install it with your package manager, or [use the Flatpak][5]. +接下来,在你的电脑上 [安装 Codium][4]。在 Linux 上,你可以下载一个包并使用你的包管理器安装它,或者 [使用 Flatpak][5]。 -To launch Codium once it's installed, open your application or Activities menu and type "Code". +在安装好 Codium 之后,打开你的应用程序或活动菜单,输入 “Code” 以启动它。 -### Install the VS Code Python extension +### 安装 VS Code Python 扩展 -There's nothing special about code. It's just plain text that gets interpreted by some other application, whether it's a compiler or a runtime. You can write Python code in Codium without special extensions. However, having a Python extension adds several conveniences. +代码其实不是什么特别的东西。它只是一些其他应用程序(编译器或运行时)解释的纯文本。你可以在 Codium 中编写 Python 代码而不需要特殊的扩展。但是,有一个 Python 扩展可以为你带来一些方便的功能。 -Click on the **File** menu, select **Preferences**, and choose **Extensions**. In the **Extensions** panel, find the Python IntelliSense extension. +点击**文件**菜单,选择**首选项**,然后选择**扩展**。在**扩展**面板中,搜索 Python IntelliSense 扩展。 -![VS Code and Codium have an extension manager that opens in the left column, allowing you to install add-on modules.][6] +![VS Code 和 Codium 都有一个扩展管理器,它会在页面左侧打开,允许你安装附加模块。][6] -You've got Python set up in Codium. All that's left to do is to put it to good use. +你已经在 Codium 中设置了 Python。剩下的就是把它用起来。 -### Setup a virtual environment for VS Code or Codium +### 为 VS Code 或 Codium 设置虚拟环境 -You can create a project directory and add it to Codium so that while you work, the files you create and save default to the active project directory. It's a fast way to stay organized, and it saves you from having to click around File Save and Open dialogues constantly. +我们可以创建一个项目目录并将其添加到 Codium 中,这样在工作时,你创建和保存的文件都将默认保存到活动项目目录。这是一种快速的管理方式,可以让你不必经常点击文件保存和打开对话框。 -When you create a virtual Python environment as a work folder, Codium (because you have the Python extension installed) detects it. When you activate a virtual environment folder as the active project directory, Codium automatically runs the activation code required to use the virtual environment. +在你创建一个虚拟 Python 环境作为工作目录时,Codium(因为你已经安装了 Python 扩展)会检测到它。当你激活一个虚拟环境文件夹作为活动项目目录时,Codium 会自动运行使用虚拟环境所需的激活代码。 -To create a virtual environment for Python, open a terminal and type: +要为 Python 创建一个虚拟环境,请打开终端并输入: ``` $ python3 -m venv ~/PythonCoding ``` -### Add a project directory +### 添加项目目录 -In Codium, click on the **File** menu and choose **Add Folder to Workspace**. Open the virtual environment you've just set up (for me, that's `/home/don/PythonCoding`.) +在 Codium 中,点击**文件**菜单,选择**将文件夹添加到工作区**。打开你刚刚设置的虚拟环境(对我来说,是 `/home/don/PythonCoding`)。 -Now you're ready to write some Python code! Create a new Python file in your workspace and insert some basic code. You may notice, as you type, that Codium helpfully suggests auto-completion for the Python modules the environment contains. +现在你已经准备好写一些 Python 代码了!在你的工作区中创建一个新的 Python 文件并插入一些基本代码。当你输入时,你可能会注意到,Codium 会为环境包含的 Python 模块提供自动补齐建议。 -``` -importsysprint("Codium running Python " + sys.version) +``` python +import sys +print("Codium running Python " + sys.version) ``` -Now click the **Play** button in the top right corner of the Codium window. This opens a console panel at the bottom of the window, displaying the output of your code: +现在点击 Codium 窗口右上角的**运行**按钮。这会在窗口底部打开一个控制台面板显示你的代码的输出: ``` -(PythonCode) sh-5.1$ /home/bogus/PythonCode/bin/python /home/bogus/PythonCode/app.py -Codium running Python 3.10.6 (main…)[GCC 12.1.0](PythonCode) sh-5.1$ +(PythonCode) sh-5.1$ /home/bogus/PythonCode/bin/python +/home/bogus/PythonCode/app.py +Codium running Python 3.10.6 (main…)[GCC 12.1.0] +(PythonCode) sh-5.1$ ``` -As you can see from this output, Codium is running within the `PythonCode` environment, and it's successfully run your Python code. +就像你从输出中看到的,Codium 在 `PythonCode` 环境中运行,并成功运行了你的 Python 代码。 -### Codium and Python +### Codium 和 Python -Using Codium for Python makes writing and running code easier than ever, but Python isn't the only language Codium supports. You can easily find and install other extensions from the [Open VSX Registry][7], a vendor-neutral open source "marketplace" for VS Code extensions. +使用 Codium 编写 Python 代码比以往任何时候都更容易,但 Python 并不是 Codium 支持的唯一语言。你可以轻松地从 [Open VSX Registry][7] 中找到并安装其他扩展,这是一个中立的开源 VS Code 扩展 “市场”。 + +Codium 的界面比一些基本的编辑器更复杂,但它有我在学习过程中所需要的东西。如果你需要一个更专业的编辑器,或者你想从当前的编辑器切换到新的编辑器,那么试试 Codium 吧。 -The Codium interface is more complicated than some basic editors, but it has what I'm looking for at this point in my learning journey. If you're looking to graduate to something professional, or you're looking to switch from your current editor to something new, then give Codium a try. -------------------------------------------------------------------------------- From 2c0df57e030eaca8228d023c680332dc31b86c0d Mon Sep 17 00:00:00 2001 From: Cubik Date: Thu, 10 Nov 2022 21:25:10 -0500 Subject: [PATCH 1967/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221109.6=20=E2=AD=90=EF=B8=8F=20Using=20Python=20i?= =?UTF-8?q?n=20VS=20Code=20and=20Codium.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md (100%) diff --git a/sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md b/translated/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md similarity index 100% rename from sources/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md rename to translated/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md From 122032fbfd5045fb243133fd79eb826dd3d44427 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 11 Nov 2022 13:10:26 +0800 Subject: [PATCH 1968/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 这篇确实不好翻译,辛苦了。 --- ... are the Mascots of All Ubuntu Releases.md | 166 ++++++++++-------- 1 file changed, 93 insertions(+), 73 deletions(-) diff --git a/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md index 95a5fa019c..5c740a1cff 100644 --- a/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md +++ b/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md @@ -3,28 +3,34 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -对 Ubuntu 的热爱:Ubuntu 所有版本的吉祥物 +Ubuntu 所有版本的吉祥物 ====== -在这篇文章中,我们会介绍迄今为止所有 Ubuntu 发行版本的 吉祥物 mascot 。 +![](https://img.linux.net.cn/data/attachment/album/202211/11/130502q6500yvm0znvktz9.jpg) -你可能已经注意到了:每个 Ubuntu 版本都会有一个 版本名称 version name 代号 codename 。代号由两个单词组成,这两个单词有相同的首字母,第一个单词是形容词,另一个单词通常是一个濒危的物种名称。 +> 在这篇文章中,我们会介绍迄今为止所有 Ubuntu 发行版本的吉祥物。 -对应于其代号,这些 Ubuntu 版本也有一个吉祥物。例如,Ubuntu 22.04 的代号为 Jammy Jellyfish,因此 Ubuntu 22.04 的桌面壁纸上有 **吉祥物:水母** 的图像。 +你可能已经注意到了:每个 Ubuntu 版本都会有一个版本名称和代号。代号由两个单词组成,这两个单词有相同的首字母,第一个单词是形容词,另一个单词通常是一个濒危的物种名称。 + +对应于其代号,这些 Ubuntu 版本也有一个吉祥物。例如,Ubuntu 22.04 的代号为 “Jammy Jellyfish”,因此 Ubuntu 22.04 的桌面壁纸上有 **吉祥物:水母** 的图像。 但是实际上,这些“吉祥物”并不总是 Ubuntu 版本的一部分,因为吉祥物在早期的 Ubuntu 版本中是没有的。 -有史以来第一个 Ubuntu 版本是在 2004 年 10 月发布的 4.10 版(LCTT 译注:Ubuntu 的版本号是由年份和月份的组合来表示的。)但是,直到 Ubuntu 8.04 LTS Hardy Heron 版本,你才会看到相关的吉祥物。 +有史以来第一个 Ubuntu 版本是在 2004 年 10 月发布的 4.10 版(LCTT 译注:Ubuntu 的版本号是由年份和月份的组合来表示的。)但是,直到 Ubuntu 8.04 LTS “Hardy Heron” 版本,你才会看到相关的吉祥物。 在我之前写的 [另一篇文章][1] 中,我整理了所有 Ubuntu 版本的默认壁纸。在本文中,你将了解到所有 Ubuntu 版本的吉祥物。 现在,就让我们按时间倒序,一起进入 Ubuntu 的吉祥物之旅吧。 -### Ubuntu 22.04 Jammy Jellyfish(幸运的水母) +(LCTT 校注:本文原文发表时,Ubuntu 22.10 尚未发布,它的代号是 “Kinetic Kudu”,吉祥物是“捻角羚”。) + +(LCTT 校注:由于 Ubuntu 系列的代号和吉祥物选择的都是比较少见的动物和晦涩的描述,因此尽管译者和校对虽然尽力了,但是应该还有谬误。我觉得原文作者为了找出这些说明也尽力,恐怕真正权威的诠释只有 Canonical 才能给出吧。) + +### Ubuntu 22.04 Jammy Jellyfish(幸运水母) ![Ubuntu 22.04 mascot][2] @@ -32,9 +38,9 @@ Jammy 的意思是被果酱覆盖着的、充满果酱的。不太正式地,Jammy 还有**幸运**的意思。 -水母 Jellyfish 是一种自由游动的水生动物,它的身体就像是一把透明伞,还具有拖曳的触须。 +水母 Jellyfish 是一种自由游动的水生动物,它的身体就像是一把透明伞,还具有拖曳的触须。少数水母是通过茎干固定在海床上,而不能移动。全世界的海洋中有超过两百种的水母,它们分布于全球各地的水域里。 -### Ubuntu 21.10 Impish Indri(顽皮的大狐猴) +### Ubuntu 21.10 Impish Indri(顽皮大狐猴) ![Ubuntu 21.10 mascot][3] @@ -42,21 +48,25 @@ Jammy 的意思是被果酱覆盖着的、充满果酱的。不太正式地,Ja Impish 的意思是以**顽皮**而不是严肃的方式,对某人/某事不太尊重。 -大狐猴 Indri ,也称为 babakoto,是最大的狐猴之一。它的头身长约 64 至 72 厘米,体重在 6 至 9.5 公斤之间。它的毛发是黑白相间的。在攀爬或攀爬时,它会保持竖直的姿势。 +大狐猴 Indri ,也称为 babakoto,是现存的最大的狐猴之一。它的头身长约 64 至 72 厘米,体重在 6 至 9.5 公斤之间。它的毛发是黑白相间的。在攀爬或攀爬时,它会保持竖直的姿势。 -### Ubuntu 21.04 Hirsute Hippo(毛茸茸的河马) +> 据维基:2014 年的世界自然保护联盟(IUCN) 红色名录 Red List 中,仅出现在马达加斯加的大狐猴首次被提升至极危级别。 + +### Ubuntu 21.04 Hirsute Hippo(多毛河马) ![Ubuntu 21.04 mascot][4] 于 2021 年 4 月 22 日发布。 -Hirsute 的意思是多毛的、**毛茸茸的**。 +Hirsute 的意思是**多毛的**。 河马 Hippo ,是一种生活在非洲大陆撒哈拉以南的大型半水生哺乳动物。河马是河马科中仅有的两个现存物种之一,另一个物种是 侏儒河马 pygmy hippopotamus 。河马的名字来源于古希腊语“river horse”。 -但是其实,我并没有见过很多毛茸茸的河马😅。 +> 据维基:在 2006 年 5 月已被 IUCN 红色名录中分为易危物种,世界仅存约 12.5 万-15 万头 -### Ubuntu 20.10 Groovy Gorilla(时髦的大猩猩) +但是其实,我并没有见过很多多毛的河马 😅。 + +### Ubuntu 20.10 Groovy Gorilla(时髦大猩猩) ![Ubuntu 20.10 mascot][5] @@ -64,19 +74,19 @@ Hirsute 的意思是多毛的、**毛茸茸的**。 Groovy 的意思是**时尚的**和令人兴奋的。 -大猩猩 Gorilla ,是一种草​​食性的地面类人猿。它主要栖息在赤道非洲的热带森林中。大猩猩属分为两个物种:东部大猩猩和西部大猩猩,以及进一步可分为四个或五个亚种。 +大猩猩 Gorilla ,是一种草​​食性的地栖巨猿。它主要栖息在赤道非洲的热带森林中。大猩猩属分为两个物种:东部大猩猩和西部大猩猩,以及进一步可分为四个或五个亚种。 -### Ubuntu 20.04 LTS Focal Fossa(令人注目的狸猫) +### Ubuntu 20.04 LTS Focal Fossa(瞩目狸猫) -![Ubuntu 20.04 mascot 1][6] +![Ubuntu 20.04 mascot][6] 于 2020 年 4 月 23 日发布。 -Focal 的意思是**令人注目的**。 +Focal 的意思是令人注目的、**瞩目**。 马岛长尾狸猫 Fossa ,是**马达加斯加岛上最大的食肉性哺乳动物**。它身体的长度可以达到近六英尺,其中它们的长尾巴占了一半。它们看起来就像是猫、狗和獴的杂交体。它们有细长的身体、肌肉发达的四肢和短的红棕色毛发。 -### Ubuntu 19.10 Eoan Ermine(东方的貂) +### Ubuntu 19.10 Eoan Ermine(东方白鼬) ![Ubuntu 19.10 mascot][7] @@ -84,9 +94,11 @@ Focal 的意思是**令人注目的**。 Eoan 的意思是**与黎明或东方有关的**。 -白鼬 Stoat ,也被称为欧亚貂、白令貂,简称 Ermine ,是一种原产于欧亚大陆和北美北部的鼬科动物。由于鼬在极地广泛分布,因此它被列为是 世界自然保护联盟红色名录 IUCN Red List 中最不担忧灭绝的物种。 +白鼬 Stoat ,也被称为欧亚貂、白令貂,简称 Ermine ,是一种原产于欧亚大陆和北美北部的鼬科动物。由于鼬在极地广泛分布,因此它被 IUCN 列为最不担忧灭绝的物种。 -### Ubuntu 19.04 Disco Dingo(迪斯科野狗) +> 据维基:IUCN 将其列为世界百大外来入侵种。 + +### Ubuntu 19.04 Disco Dingo(迪斯科野犬) ![Ubuntu 19.04 mascot][8] @@ -96,7 +108,7 @@ Disco 与**迪斯科**音乐和夜总会有关。 澳洲野犬 Dingo ,是在澳大利亚发现的一种古老的犬种。澳洲野犬的科属分类在不同出版物中不太一样,因此它的科属分类存在争议。 -### Ubuntu 18.10 Cosmic Cuttlefish(不同的墨鱼) +### Ubuntu 18.10 Cosmic Cuttlefish(外星墨鱼) ![Ubuntu 18.10 mascot][9] @@ -106,19 +118,21 @@ Cosmic 意味着与地球**不同的**、宇宙的。 墨鱼 Cuttlefish ,是乌贼目的一种海洋软体动物。它属于头足类,这一类还包含了鱿鱼、章鱼和鹦鹉螺。墨鱼有一个独特的内壳,即墨鱼骨,它可以用于控制浮力。 -### Ubuntu 18.04 LTS Bionic Beaver(仿生海狸) +### Ubuntu 18.04 LTS Bionic Beaver(仿生河狸) ![Ubuntu 18.04 mascot][10] 于 2018 年 4 月 26 日发布。 -Bionic 意味着**人工的**,或者是机电的。 +Bionic 意味着**仿生的**,或者是机电的。 -海狸 Beaver ,是北半球温带的一种大型半水生啮齿动物。有两种现存的海狸:北美海狸和欧亚海狸。海狸是仅次于水豚的第二大啮齿动物。 +河狸 Beaver ,是北半球温带的一种大型半水生啮齿动物。有两种现存的海狸:北美河狸和欧亚河狸。河狸是仅次于水豚的现存第二大啮齿动物。 + +> 据维基:它们处于 IUCN 哺乳动物红色名录中的无危物种,在中国河狸被列为一级保护动物。 英国用户认为这个版本的名称特别有趣。 -### Ubuntu 17.10 Artful Aardvark(机灵的土豚) +### Ubuntu 17.10 Artful Aardvark(机灵土豚) ![Ubuntu 17.10 mascot][11] @@ -128,9 +142,9 @@ Ubuntu 在此版本中默认切换回了 GNOME。 Artful 的意思是聪明的或**机灵的**。 -土豚 Aardvark ,是一种原产于非洲的中型、穴居、夜间活动的哺乳动物。它是管齿目中唯一的现存物种。与大多数其他食虫动物不同,它有一个长长的像猪一样的鼻子,可以闻出食物在哪里。 +土豚 Aardvark ,是一种原产于非洲的穴居、夜间活动的中型哺乳动物。它是管齿目中唯一的现存物种。与大多数其他食虫动物不同,它有一个长长的像猪一样的鼻子,可以闻出食物在哪里。 -### Ubuntu 17.04 Zesty Zapus(开心的跳鼠) +### Ubuntu 17.04 Zesty Zapus(开心跳鼠) ![Ubuntu 17.04 mascot][12] @@ -138,21 +152,21 @@ Artful 的意思是聪明的或**机灵的**。 这个版本是最后一个以 Unity 桌面为特色的版本。 -Zesty 意味着有一种强烈的、**令人愉快的**、有点辛辣的味道。 +Zesty 意味着有一种强烈的、**令人开心的**、有点辛辣的味道。 -Zapus 是北美跳鼠中唯一一个有牙齿的一个属。Zapus 是除 指猴 Aye-aye 之外,唯一现存的有 18 颗牙齿的哺乳动物。 +跳鼠Zapus 是北美跳鼠中唯一一个有牙齿的一个属。跳鼠是除 指猴 Aye-aye 之外,唯一现存的有 18 颗牙齿的哺乳动物。 -### Ubuntu 16.10 Yakkety Yak(牦牛) +### Ubuntu 16.10 Yakkety Yak(唠叨牦牛) ![Ubuntu 16.10 mascot][13] 于 2016 年 10 月 13 日发布。 -Yakkety 有很多意思。yakking 有唠唠叨叨这一非正式意思,yakkety 还可能是 喋喋不休的萨克斯 Yakety Sax 的另一种拼写。 +Yakkety 有很多意思。OMG Ubuntu 说,“yakking” 有唠唠叨叨这一非正式意思,yakkety 还可能是一种知名的流行爵士乐器 “Yakety Sax” 的另一种拼写。 -牦牛 Yak ,是一种大型驯养的野牛。它的毛发蓬松,肩部隆起,有很大的角。在西藏,它是一种驮畜,人们也可以食用它的奶和肉、以及加工它的皮制作东西。 +牦牛 Yak ,是一种大型驯养的野牛。它的毛发蓬松,肩部隆起,有很大的角。在一些地方它是一种驮畜,人们也可以食用它的奶和肉、以及加工它的皮制作东西。 -### Ubuntu 16.04 LTS Xenial Xerus(好客的非洲地松鼠) +### Ubuntu 16.04 LTS Xenial Xerus(好客地松鼠) ![Ubuntu 16.04 mascot][14] @@ -160,27 +174,27 @@ Yakkety 有很多意思。yakking 有唠唠叨叨这一非正式意思,yakkety Xenial 的意思是**热情好客的**。 -非洲地松鼠 Xerus ,有四个亚种,分别是**开普地松鼠,条纹地松鼠,山地松鼠和无条纹地松鼠**。这些动物是昼行性的,是食草动物,通常吃坚果、根和种子。然而,有时他们也会吃鸡蛋和其他小动物。 +非洲地松鼠 Xerus ,有四个亚种,分别是**开普地松鼠,条纹地松鼠,山地松鼠和无条纹地松鼠**。这些动物是昼行性的,是食草动物,通常吃坚果、根和种子。然而,有时它们也会吃蛋类和其他小动物。 -### Ubuntu 15.10 Wily Werewolf(狡猾的狼人) +### Ubuntu 15.10 Wily Werewolf(狡猾狼人) ![Ubuntu 15.10 mascot][15] 于 2015 年 10 月 22 日发布。 -这个版本可能是其发布代号中带有虚构动物的 Ubuntu 版本之一。 +这个版本可能是少有的发布代号中带有虚构动物的 Ubuntu 版本之一。 Wily 的意思是善于获得优势,尤其在欺骗上十分**狡猾的**。 狼人 Werewolf ,是可以隐藏住耳朵和尾巴的一种神话生物。它是人,也是狼,大多数人因为它们的长相而害怕它们。 -### Ubuntu 15.04 Vivid Vervet(活泼的小猴) +### Ubuntu 15.04 Vivid Vervet(活泼绿猴) ![Ubuntu 15.04 mascot][16] 于 2015 年 4 月 23 日发布。 -Vivid 的意思是**生动**的、明亮的。 +Vivid 的意思是**活泼**的、明亮的。 黑长尾猴 Vervet monkey ,是一种原产于非洲的角猿科的旧大陆猴。“vervet”一词也用于表示绿猴属 Chlorocebus 的所有动物,其中包含五个不同的亚种,这五个不同的亚种主要分布在南部非洲以及一些东部国家。 @@ -196,7 +210,7 @@ Utopic 与**乌托邦**有关,乌托邦是一个虚构的、不存在但是一 独角兽 Unicorn ,是一种传说中的生物。自古以来,它就被描述为前额有一个巨大的、尖的、螺旋状的角的一种野兽。 -### Ubuntu 14.04 LTS Trusty Tahr(可靠的塔尔羊) +### Ubuntu 14.04 LTS Trusty Tahr(可靠塔尔羊) ![Ubuntu 14.04 mascot][18] @@ -206,7 +220,7 @@ Trusty 意味着**可靠的**或忠实的。 塔尔羊 Tahr ,是一种很像山羊的哺乳动物。它们会栖息在阿曼、印度南部和喜马拉雅山脉的悬崖和山坡上。 -### Ubuntu 13.10 Saucy Salamander(活泼的蝾螈) +### Ubuntu 13.10 Saucy Salamander(活泼蝾螈) ![Ubuntu 13.10 mascot][19] @@ -214,9 +228,9 @@ Trusty 意味着**可靠的**或忠实的。 Saucy 意味着大胆的、**活泼的**或精神饱满的。 -蝾螈 Salamander 是一类两栖动物。其典型特征是有着蜥蜴般的外观,它们有细长的身体,钝的鼻子,以及与身体成直角突出的短肢,并且幼体和成体都有尾巴。现存的所有十个蝾螈科都属于 乌罗德拉目 Urodela 。 +蝾螈 Salamander 是一类两栖动物。其典型特征是有着蜥蜴般的外观,它们有细长的身体,钝的鼻子,以及与身体成直角突出的短肢,并且幼体和成体都有尾巴。现存的所有十个蝾螈科都属于有尾目。 -### Ubuntu 13.04 Raring Ringtail(铆足了劲的猫熊) +### Ubuntu 13.04 Raring Ringtail(热情猫熊) ![Ubuntu 13.04 mascot][20] @@ -224,9 +238,9 @@ Saucy 意味着大胆的、**活泼的**或精神饱满的。 Raring 的意思是热情的和**非常渴望做某事**。 -猫熊 Ringtail ,是**一种像猫一样大的食肉动物,类似于一只长着浣熊尾巴的小狐狸**。它浓密的尾巴是扁平的,几乎和头部和身体一样长,有交替的黑色和白色皮毛。它们是夜行动物,一天中的大部分时间都在它们的巢穴里睡觉。 +猫熊 Ringtail ,是**一种像猫一样大的食肉动物,类似于一只长着浣熊尾巴的小狐狸**。它浓密的尾巴是扁平的,几乎和头部和身体一样长,有黑白交替的环。它们是夜行动物,一天中的大部分时间都在它们的巢穴里睡觉。 -### Ubuntu 12.10 Quantal Quetzal(量子的大咬鹃) +### Ubuntu 12.10 Quantal Quetzal(量子大咬鹃) ![Ubuntu 12.10 mascot][21] @@ -236,17 +250,19 @@ Quantal 意味着与**量子**或量子理论有关的。 大咬鹃 Quetzal ,是咬鹃家族中的一种色彩鲜艳的鸟类。它们生活在森林中,主要是在潮湿的高地。来自*凤尾绿咬鹃属*的五种物种生活在新热带的,而另外一个物种,即角咬鹃,生活在墨西哥和美国最南端的局部地区。大咬鹃相当地大,它们的身体长度超过 32 厘米或者有 13 英寸长,比其他咬鹃科的物种都大。绚丽的大咬鹃因其鲜艳的色彩,而成为危地马拉的国鸟。 -### Ubuntu 12.04 LTS Precise Pangolin(精准的穿山甲) +### Ubuntu 12.04 LTS Precise Pangolin(精准穿山甲) ![Ubuntu 12.04 mascot][22] 于 2012 年 4 月 26 日发布。 -Precise 意味着能**准确**地表达细节的。 +Precise 意味着能**精确**或准确地表达细节。 穿山甲 Pangolin ,有时被称为有鳞食蚁兽,是鳞甲目的一种哺乳动物。它现存的一个科是穿山甲科,有三个属:穿山甲亚属、长尾穿山甲亚属和地穿山甲亚属。穿山甲亚属包括在亚洲发现的四种物种,而长尾穿山甲亚属和地穿山甲亚属各包括两种物种,均在撒哈拉以南非洲发现。 -### Ubuntu 11.10 Oneiric Ocelot(梦幻的豹猫) +> 据维基百科:2014 年,IUCN 红色名录物种存续委员会穿山甲专门小组,指出穿山甲是目前全世界最常被走私买卖的哺乳动物。所有穿山甲都面临巨大的生存威胁,其中中华穿山甲和马来穿山甲被 IUCN 评估为“极危”物种,非法走私的活动极为猖獗。随着亚洲的 4 种穿山甲数量锐减,走私贸易商家已转移目标至非洲,以满足市场上的庞大需求。 + +### Ubuntu 11.10 Oneiric Ocelot(梦幻豹猫) ![Ubuntu 11.10 mascot][23] @@ -254,21 +270,23 @@ Precise 意味着能**准确**地表达细节的。 Oneiric 的意思是与**梦**有关的。 -豹猫 Ocelot (Leopardus pardalis),是一种中等大小的斑点野猫。它的肩长可达 40 至 50 厘米(15.7 至 19.7 英寸),体重在 8 至 15.5 公斤(17.6 至 34.2 磅)之间。卡尔·林奈于 1758 年首次在书中描述了它。 +豹猫 Ocelot ,是一种中等大小的斑点野猫。它的肩长可达 40 至 50 厘米,体重在 8 至 15.5 公斤之间。卡尔·林奈Carl Linnaeus 于 1758 年首次在书中描述了它。 -### Ubuntu 11.04 Natty Narwhal(敏捷的独角鲸) +> 据维基:华盛顿公约将孟加拉国、印度以及泰国的豹猫族群列入附录一禁止进行国际贸易,而其他族群亦列入华盛顿公约附录二。 + +### Ubuntu 11.04 Natty Narwhal(聪明独角鲸) ![Ubuntu 11.04 mascot][24] 于 2011 年 4 月 28 日发布。 -这个版本是第一个以 Unity 桌面为特色的版本。 +这个版本是第一个采用 Unity 桌面的版本。 Natty 意味着**聪明**和时尚的。 -独角鲸 Narwhal ,是一种中等大小的齿鲸。它从突出的犬齿中长出了大“獠牙”。它全年生活在格陵兰、加拿大和俄罗斯周围的北极水域。它是一角鲸科中现存的两种鲸鱼物种之一,另一个物种是 白鲸 Beluga whale 。 +独角鲸 Narwhal ,是一种中等大小的齿鲸。拥有一颗突出的犬齿的大“獠牙”。它常年生活在格陵兰、加拿大和俄罗斯周围的北极水域。它是一角鲸科中现存的两种鲸鱼物种之一,另一个物种是 白鲸 Beluga whale 。 -### Ubuntu 10.10 Maverick Meerkat(特立独行的猫鼬) +### Ubuntu 10.10 Maverick Meerkat(独行猫鼬) ![Ubuntu 10.10 mascot][25] @@ -276,9 +294,9 @@ Natty 意味着**聪明**和时尚的。 Maverick 的意思是**特立独行的**或有独立思想的。 -猫鼬 Meerkat ,是一种在南部非洲发现的小型猫鼬。它的特点是头宽,眼睛大,鼻子尖,腿长,尾巴很细,毛色有斑纹。 +猫鼬 Meerkat ,是一种在南部非洲发现的小型猫鼬。它的特点是头宽、眼睛大、鼻子尖、腿长、尾巴很细,毛色有斑纹。 -### Ubuntu 10.04 LTS Lucid Lynx(清醒的猞狸) +### Ubuntu 10.04 LTS Lucid Lynx(清醒猞狸) ![Ubuntu 10.04 mascot][26] @@ -288,17 +306,19 @@ Lucid 意味着**易于理解的**或明亮的。 猞猁 Lynx ,是中型野猫属猞猁中的一种。猞猁这个名字起源于中古英语,源自希腊语 λύγξ,λύγξ 又源自于印欧语词根 leuk-,指的是它眼睛能反射发光的样子。 -### Ubuntu 9.10 Karmic Koala(幸运的考拉) +### Ubuntu 9.10 Karmic Koala(幸运考拉) ![Ubuntu 9.10 mascot][27] 于 2009 年 10 月 29 日发布。 -Karmic 意味着与**命运**有关的。 +Karmic 意味着与**命运**、业力有关。 考拉 Koala ,是一种原产于澳大利亚的树栖草食性的有袋动物。它是袋鼠科唯一现存的物种,它的近亲是袋熊 Wombat 。 -### Ubuntu 9.04 Jaunty Jackalope(自信的鹿角兔) +> 据维基:在 19 世纪初树袋熊遭到捕杀出口,数量由百万只锐减至一千多只,于是澳大利亚政府立法保护。 + +### Ubuntu 9.04 Jaunty Jackalope(自信鹿角兔) ![Ubuntu 9.04 mascot][28] @@ -310,7 +330,7 @@ Jaunty 是指拥有活泼、开朗和**自信**的态度。 鹿角兔 Jackalope ,是**北美民间传说中的一种神话动物**,被描述为长着羚羊角的可怕的长角兔。Jackalope 这个词是由 jackrabbit 和 antelope 组合而成的。许多鹿角兔的标本都是由用鹿角制成的。 -### Ubuntu 8.10 Intrepid Ibex(勇敢的野山羊) +### Ubuntu 8.10 Intrepid Ibex(无畏野山羊) ![Ubuntu 8.10 mascot][29] @@ -318,9 +338,9 @@ Jaunty 是指拥有活泼、开朗和**自信**的态度。 Intrepid 意味着**无所畏惧**、冒险的。 -野山羊 Ibex ,其特点是雄性的野山羊大角十分弯曲,在前面形成像横向的脊那样。它主要分布于欧亚大陆、北非和东非。 +野山羊 Ibex ,以雄性的大弯角为特征,在前面形成像横向的脊那样。它主要分布于欧亚大陆、北非和东非。 -### Ubuntu 8.04 LTS Hardy Heron(耐寒的苍鹭) +### Ubuntu 8.04 LTS Hardy Heron(坚韧苍鹭) ![Ubuntu 8.04 mascot][30] @@ -328,21 +348,21 @@ Intrepid 意味着**无所畏惧**、冒险的。 这个版本是第一个吉祥物出现在其默认壁纸上的 Ubuntu 版本。 -Hardy 意味着能够忍受困难的条件的、**强大的**。 +Hardy 意味着能够**忍受**困难条件的、强大的。 苍鹭 Heron ,是一种长腿、长颈、生活在淡水和沿海的鸟类。 -### Ubuntu 7.10 Gutsy Gibbon(勇敢的长臂猿) +### Ubuntu 7.10 Gutsy Gibbon(阵风长臂猿) ![Ubuntu 7.10 mascot][31] 于 2007 年 10 月 18 日发布。 -Gusty 表示**阵风**的。 +Gusty 表示以**阵风**的方式吹动。 长臂猿 Gibbon ,是一种猿类,它们生活在孟加拉国东部、印度东北部、中国南部和印度尼西亚的亚热带和热带雨林地区。 -### Ubuntu 7.04 Feisty Fawn(活泼的小鹿) +### Ubuntu 7.04 Feisty Fawn(活泼小鹿) ![Ubuntu 7.04 mascot][32] @@ -352,7 +372,7 @@ Feisty 意味着**小而坚定**的。 小鹿 Fawn ,指的是第一年刚出生的小鹿。 -### Ubuntu 6.10 Edgy Eft(紧张的水蜥) +### Ubuntu 6.10 Edgy Eft(紧张水蜥) ![Ubuntu 6.10 mascot][33] @@ -360,11 +380,11 @@ Feisty 意味着**小而坚定**的。 Edgy 的意思是**紧张的**。 -水蜥 Eft ,是蝾螈的陆生幼年期。蝾螈是一种蜥蜴,它具有三个不同的发育生命阶段:水生幼虫、陆生幼体 (即 eft) 和成体。 +水蜥 Eft ,是蝾螈的陆生幼年期。蝾螈是一种蜥蜴,它具有三个不同的发育生命阶段:水生幼虫、陆生幼体和成体。 所以水蜥指的是一个青年的蝾螈。 -### Ubuntu 6.06 Dapper Drake(整洁的公鸭) +### Ubuntu 6.06 Dapper Drake(整洁公鸭) ![Ubuntu 6.06 mascot][34] @@ -374,7 +394,7 @@ Dapper 的意思是衣着整洁,**外表整洁的**。 公鸭 Drake ,是完全性成熟的成年雄性鸭子。 -### Ubuntu 5.10 Breezy Badger(活泼的獾) +### Ubuntu 5.10 Breezy Badger(微风之獾) ![Ubuntu 5.10 mascot][35] @@ -382,9 +402,9 @@ Dapper 的意思是衣着整洁,**外表整洁的**。 Breezy 的意思是有**微风**的。 - Badger ,一种是短腿的杂食动物。 + Badger ,一种是短腿的杂食动物,经常蹲下身挤在一起。 -### Ubuntu 5.04 Hoary Hedgehog(灰白的刺猬) +### Ubuntu 5.04 Hoary Hedgehog(灰白刺猬) ![Ubuntu 5.04 mascot][36] @@ -394,7 +414,7 @@ Hoary 是**灰白色的**意思。 刺猬 Hedgehogis ,是一种多刺的哺乳动物,遍布于欧洲、亚洲和非洲的部分地区,并引入到了新西兰。 -### Ubuntu 4.10 : Warty Warthog(长疣的疣猪) +### Ubuntu 4.10 : Warty Warthog(有疣疣猪) ![Ubuntu 4.10 mascot][37] @@ -421,7 +441,7 @@ via: https://itsfoss.com/all-Ubuntu-mascots/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9608a07d2a204df4a3d07acc85a905fc9719e6e3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 11 Nov 2022 13:10:51 +0800 Subject: [PATCH 1969/3123] P @chai001125 https://linux.cn/article-15240-1.html --- ... of Ubuntu- Here are the Mascots of All Ubuntu Releases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md (99%) diff --git a/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/published/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md similarity index 99% rename from translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md rename to published/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md index 5c740a1cff..de6287f76d 100644 --- a/translated/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md +++ b/published/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "chai001125" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15240-1.html" Ubuntu 所有版本的吉祥物 ====== From 6c08a4e6c0d08b7620c3ab2f50df78ce3bbd986c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 11 Nov 2022 15:33:06 +0800 Subject: [PATCH 1970/3123] RP @geekpi https://linux.cn/article-15241-1.html --- ...m a Video in VLC Player [If You Really Want to].md | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) rename {translated/tech => published}/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md (69%) diff --git a/translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md b/published/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md similarity index 69% rename from translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md rename to published/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md index a2fb07ea02..229b9304a6 100644 --- a/translated/tech/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md +++ b/published/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md @@ -3,20 +3,22 @@ [#]: author: "Sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15241-1.html" -如何在 VLC 播放器中裁剪视频(如果你真的想要) +如何在 VLC 播放器中裁剪视频 ====== -VLC 媒体播放器是[最好的媒体播放器][1]之一。这款跨平台播放器功能丰富,可以播放任何可用的媒体格式。 +![](https://img.linux.net.cn/data/attachment/album/202211/11/153202yhomxyc1ysuq57x1.jpg) + +VLC 媒体播放器是 [最好的媒体播放器][1] 之一。这款跨平台播放器功能丰富,可以播放任何可用的媒体格式。 你会惊讶地发现 VLC 不仅仅是一个视频播放器。它可以对你的媒体文件做很多事情。 -[使用 VLC 下载 YouTube 视频][2]是我们在 It's FOSS 上分享的 [VLC 技巧][3]之一。 +我们分享过 [使用 VLC 下载 YouTube 视频][2] 的 [VLC 技巧][3]。 -让我再和你分享一个。用 VLC 裁剪视频怎么样?这不是[裁剪视频][4]的最佳方式,但它可以作为一个选择使用。 +让我再和你分享一个。用 VLC 裁剪视频怎么样?这不是 [裁剪视频][4] 的最佳方式,但它可以作为一个选择使用。 ### 使用 VLC 裁剪视频 @@ -28,13 +30,13 @@ VLC 媒体播放器是[最好的媒体播放器][1]之一。这款跨平台播 要获取控件,你需要使其在主控制面板上可见。 -首先选择视图选项,然后选中高级控件复选框。现在,如截图所示,出现了带有几个按钮的新控件行。 +首先选择“视图View”选项,然后选中“高级控件Advanced Controls”复选框。现在,如截图所示,出现了带有几个按钮的新控件行。 ![在 vlc 播放器中启用高级控件视图][5] #### 步骤 2:打开视频 -为了裁剪视频,你需要在 VLC 中打开它。你可以通过“媒体 > 打开文件”在 VLC 播放器中打开视频: +为了裁剪视频,你需要在 VLC 中打开它。你可以通过“媒体Media > 打开文件Open File”在 VLC 播放器中打开视频: ![通过 vlc 文件菜单打开媒体文件][6] @@ -44,15 +46,15 @@ VLC 媒体播放器是[最好的媒体播放器][1]之一。这款跨平台播 #### 步骤 3:使用 VLC 的录制功能裁剪视频 -打开视频文件后,将时间线设置为所需输出的起点并暂停视频。之后,按录制按钮并播放视频。 +打开视频文件后,将时间线设置为所需输出的起点并暂停视频。之后,按“录制”按钮并播放视频。 ![在起点暂停,按录制键开始录制][8] -当达到所需输出的终点时,暂停视频并再次按下录制按钮停止录制。 +当达到所需输出的终点时,暂停视频并再次按下“录制”按钮停止录制。 ![在终点暂停并按下录制][9] -这应该将裁剪后的输出保存到你的 \~/Videos 目录中。 +这应该将裁剪后的输出保存到你的 `~/Videos` 目录中。 ![nautilus 文件管理器中的原始和裁剪后文件][10] @@ -66,39 +68,39 @@ VLC 以 .ts 文件格式录制视频。这在 VLC 中受支持,你可以根据 ![转换后的视频在 gnome 视频播放器中显示播放错误][11] -你可以点击上图所示的 “Find in Ubuntu Software” 按钮,这将打开 ubuntu 软件中心。你可以在那里安装所需的编解码器包。 +你可以点击上图所示的 “在 Ubuntu 软件应用中查找Find in Ubuntu Software” 按钮,这将打开 Ubuntu 软件中心。你可以在那里安装所需的编解码器包。 -![根据 gnome 视频播放器的提示从软件中心安装 gstreamer][12] +![根据 GNOME 视频播放器的提示从软件中心安装 gstreamer][12] -安装过程相同并再次使用 Gnome-videos 打开视频将解决问题。 +同样安装 Gnome-videos 并使用它打开视频将解决问题。 #### 使用 VLC 转换视频文件 如果你不想为此安装任何额外的软件包,你可以使用 VLC 本身将 .ts 文件转换为 mp4 格式以在任何其他播放器中播放。 -为此,打开 VLC 并在文件菜单下选择转换选项。 +为此,打开 VLC 并在“媒体Media”菜单下选择“转换/保存Conver/Save”选项。 ![从媒体菜单中选择转换][13] -现在,使用“添加”按钮提供需要转换的文件的位置,然后选择转换/保存,如截图所示。 +现在,使用“添加Add”按钮提供需要转换的文件的位置,然后选择“转换/保存Conver/Save”,如截图所示。 ![在媒体转换对话框中选择要转换的文件][14] -选择所需的输出配置 (MP4) 并为输出设置文件名,然后按“开始”。 +选择所需的输出配置(MP4)并为输出设置文件名,然后按“开始Start”。 ![在 vlc 媒体转换菜单中设置转换配置和输出文件名][15] -这将开始转换,并根据源的时长决定转换时间。完成后,你可以从 \~/Videos 目录访问转换后的输出。 +这将开始转换,并根据源的时长决定转换时间。完成后,你可以从 `~/Videos` 目录访问转换后的输出。 ![nautilus 文件管理器中的原始裁剪和转换文件][16] ### 总结 -虽然确实可以使用 VLC 播放器来裁剪视频,但整个过程与专门的[视频编辑器][17]完全不同。 +虽然确实可以使用 VLC 播放器来裁剪视频,但整个过程与专门的 [视频编辑器][17] 完全不同。 最大的问题是你需要观看所有裁剪部分才能完成裁剪,如果你要裁剪跨越数分钟的视频的一大部分,这就不方便了。 -无论如何,这个很酷的功能在某些情况下可能是一个方便的工具,比如你想要的只是裁剪一个特定的小剪辑或从电影场景中制作一个 gif。 +无论如何,这个很酷的功能在某些情况下可能是一个方便的工具,比如你想要的只是裁剪一个特定的小剪辑或从电影场景中制作一个 Gif。 -------------------------------------------------------------------------------- @@ -107,7 +109,7 @@ via: https://itsfoss.com/vlc-trim-video/ 作者:[Sreenath][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/) 荣誉推出 From cf804c4193b25bdb89dfb242935060acfdfa6c90 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Fri, 11 Nov 2022 21:50:35 +0800 Subject: [PATCH 1971/3123] translating --- ...07 Identify security properties on Linux using checksec.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20210607 Identify security properties on Linux using checksec.md b/sources/tech/20210607 Identify security properties on Linux using checksec.md index 3d1e118830..e10996be18 100644 --- a/sources/tech/20210607 Identify security properties on Linux using checksec.md +++ b/sources/tech/20210607 Identify security properties on Linux using checksec.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/linux-checksec) [#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chai001125) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -435,4 +435,4 @@ The topic of security is never-ending, and while it's not possible to cover ever You don't have to provide each binary to checksec individually. Instead, you can provide a directory path where multiple binaries reside, and checksec will verify all of them for you in one go: ``` -`$ checksec --dir=/usr \ No newline at end of file +`$ checksec --dir=/usr From 3978331cf1a262d7d2bab39ebb02fd3687ae4856 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Fri, 11 Nov 2022 21:50:38 +0800 Subject: [PATCH 1972/3123] =?UTF-8?q?littlebirdnest=20=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Update or Upgrade Ubuntu Offline without Internet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md b/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md index 27ae2c5881..db5103f8d9 100644 --- a/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md +++ b/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/how-to-update-or-upgrade-ubuntu-offline-without-internet/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "littlebirdnest" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From cd80d4e779d56c5561c53b1e18fe622b8d396d7a Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Fri, 11 Nov 2022 22:47:46 +0800 Subject: [PATCH 1973/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... or Upgrade Ubuntu Offline without Internet.md | 60 +++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md b/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md index db5103f8d9..e5449214d1 100644 --- a/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md +++ b/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md @@ -7,48 +7,47 @@ [#]: publisher: " " [#]: url: " " -How to Update or Upgrade Ubuntu Offline without Internet +如何在没有网络的情况下,离线更新或升级 Ubuntu ====== -**This guide explains the steps to update Ubuntu offline without an active internet connection.** +**此教程关于如何一步一步在没有网络的情况下,升级ubuntu** -There are many situations where you may need to update your Ubuntu installation without an internet connection. You may be staying remotely or have a set of network Ubuntu systems that are not connected to the internet. In any case, keeping your system updated with the latest packages is always required. +在有些情况下,你可能需要离线更新ubuntu,又或者你可能在远程状态下需要更新一堆未联网的ubuntu,总的来说你想要升级最新的系统 -Of course, updating any system while connected to the internet is always recommended. +当然,始终建议通过联网升级系统。 -But sometimes, it is not possible for security reasons also. Connecting to the internet may bring additional hardening steps for your systems to protect them from hackers and malware. +但有时,离线更新系统,有助于网络安全,远离黑客和恶意软件 -The following method using [apt-offline][1] helps to fix those use cases and outlines the steps to update your Ubuntu offline without the internet. +以下的方法使用[apt-offline][1]来解决这些问题,离线更新ubuntu +### 准备环节 -### Pre-requisite +- 一台能连接到网络的ubuntu(你朋友的,咖啡馆,实验室系统) +- 装了安装包的u盘 +- 两个系统都安装了 apt-offline.一个系统离线,另一个系统联网 -- You need to have access to a Ubuntu system that has an internet connection (e.g. your friends, cafe, or lab system) -- A USB pen drive to hold the packages -- Install the apt-offline package in both the systems – a) the offline system and b) the system with an internet connection. +### 安装 apt-offline -### Install apt-offline +在两个系统下安装apt-offline -both systems - -You can install the `apt-offline` using the following command. Remember, you have to get it installed in . +你可以使用以下命令安装 apt-offline。 ``` sudo apt install apt-offline ``` -In case you need the `apt-offline` to be installed in the target system, you can download the deb package from the below link and copy it to the target system via a USB stick. Then run the below command to install. +如果你想装离线安装 apt-offline ,你可以提前下载到u盘里,然后拷出来,再使用下面的命令 -The download link for Ubuntu 22.04 LTS and other versions is present below. You can choose a mirror and download the deb file. +Ubuntu 22.04 LTS 和其他版本的下载链接如下所示。您可以选择一个镜像并下载 deb 文件。 -[download .deb files – apt-offline][2] +[下载 .deb 文件 – apt-offline][2] ``` sudo dpkg -i name_of_package.deb ``` -### Update Ubuntu offline: Steps +### 如何更新ubuntu -Open a terminal in the offline Ubuntu system and create a signature file using the following command in your home directory. +离线打开终端,且使用以下命令创建一个.sig签名文件 ``` sudo apt-offline set ~/offline-data.sig @@ -56,15 +55,15 @@ sudo apt-offline set ~/offline-data.sig [![Create the sig file][3]][4] -This creates a file containing the required package paths and details for download. +这个刚创建的签名文件中,包含下载所需的包路径和详细信息。 [![sig file contents][5]][6] -Copy this .sig file to a USB and take it to a Ubuntu system with internet access. +把签名文件,拷到u盘中,再插到有网的ubuntu -Create a directory (see example below) to hold the downloaded packages in the Ubuntu system with an internet connection. +创建有一个目录去装这些文件 -Open a terminal and run the following command to download the required packages. Remember to change the download directory and .sig file path as per your system. +打开一个终端,运行以下命令,记得根据你的系统,更改下载目录和.sig签名文件的路径 ``` apt-offline get -d ~/offline-data-dir offline-data.sig @@ -72,11 +71,11 @@ apt-offline get -d ~/offline-data-dir offline-data.sig [![Download the packages to install offline][7]][8] -offline Ubuntu system +更新离线的Ubuntu -You should see the files are downloaded properly. Now copy the entire downloaded directory to the USB drive and plug it into the . +文件下载完,拷贝整个目录,再插到没联网的ubuntu -Then run the following command to install the downloaded packages to the offline system. Change the directory path as per your system. +然后运行以下命令将下载的包装到离线系统,记得根据你的系统更改目录路径 ``` sudo apt-offline install offline-data-dir/ @@ -84,19 +83,18 @@ sudo apt-offline install offline-data-dir/ [![Installing packages - offline update ubuntu][9]][10] -The update should run smoothly if all goes well, and you should have an updated Ubuntu system. +如果一切顺利,你将获得一个更新完的ubuntu -You must repeat the steps above to keep your Ubuntu system up-to-date offline whenever you need to update. - -I hope this guide helps you to update your Ubuntu system in an offline mode. If you face any trouble, let me know in the comment box below. +重复食用以上步骤,就可以保持你的离线ubuntu是最新版 +希望以上教程能帮到你更新离线的ubnuntu系统,如果您遇到任何问题,请在下面的评论框中告诉我。 -------------------------------------------------------------------------------- via: https://www.debugpoint.com/how-to-update-or-upgrade-ubuntu-offline-without-internet/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[littlebirdnest](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fbfad9660f73ceb83641fa4dc89dcbb9a14ae565 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Fri, 11 Nov 2022 22:48:39 +0800 Subject: [PATCH 1974/3123] =?UTF-8?q?=E7=A7=BB=E5=88=B0translated=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md (100%) diff --git a/sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md b/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md similarity index 100% rename from sources/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md rename to translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md From b1b1dfa4c4543a87b81e47231b9e7aeb526ca3bd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 12 Nov 2022 11:21:12 +0800 Subject: [PATCH 1975/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @MuggleWei 感谢您,完成了第一篇翻译贡献! 顺便,请注意使用中文标点,以及在中英文间插入空格(可参考我的校对和本项目的排版风格指南。) --- .../20221103.0 ⭐️⭐️ Is Lua worth learning.md | 96 ++++++++++--------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md index 70c83a953f..848ebb0928 100644 --- a/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md +++ b/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md @@ -3,58 +3,60 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "MuggleWei" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Lua值得学习吗? +Lua 值得学习吗? ====== -Lua是一个有趣且强大的语言, 随着版本的推进, 功能愈发的强大, 开发者也在不断的增长. 这篇文章我们将探索一下它的可能性. +![](https://img.linux.net.cn/data/attachment/album/202211/12/111937y0kior1oyf44tttt.jpg) -Lua是一个脚本语言, 它面向过程, 函数式编程, 甚至可以是[面向对象的][1]. 它使用类c的语法, 但却是动态类型, 具有自动内存管理和垃圾回收功能, 使用基于寄存器的虚拟机来解释字节码. 这些特点使得它对于初学者来说是个很好的语言, 同时也是经验丰富的程序员的强大工具. +> Lua 是一个有趣而强大的语言,随着各个版本的推进,功能愈发的强大,开发者群体也在不断的增长。这篇文章我们将探索一下它的各种前景。 -虽然与[Python][2]和[JavaScript][3]相比, Lua现在已经有点儿黯然失色了, 但是Lua拥有的一些优点使得它在许多的重大软件项目中很受欢迎. Lua很容易嵌入到其他语言当中, 这意味着你可以在(例如)Java编写的代码中包含Lua文件, 就像原生的Java代码一样运行. 这听起来就像魔法一般, 现在有许多项目如[luaj][4]使得其成为可能, 之所以可以实现, 正是因为Lua就是为此而设计的. 正因这部分的灵活性, 你可以在许多游戏, 图形应用的程序中发现Lua脚本的身影. +Lua 是一个脚本语言,它面向过程、函数式编程,甚至可以是 [面向对象的][1]。它使用类 C 语言的语法,但却是动态类型,具有自动内存管理和垃圾回收功能,使用基于寄存器的虚拟机来解释字节码。这些特点使得它对于初学者来说是个很好的语言,同时也是经验丰富的程序员的强大工具。 -就像其他任何事情一样, 做到完美是需要时间的, Lua是很易于学习(并且有趣)的语言. 它是一种一致性的语言, 一种带有有用的错误消息的友好的语言, 并且可以在网上轻松找到许多有用的资料. 那么就让我们开始吧! +虽然与 [Python][2] 和 [JavaScript][3] 相比,Lua 现在已经有点儿黯然失色了,但是 Lua 拥有的一些优点使得它在许多的重大软件项目中很受欢迎。Lua 很容易嵌入到其他语言当中, 这意味着你可以在(例如)Java 编写的代码中包含 Lua 文件,就像原生的 Java 代码一样运行。这听起来就像魔法一般,现在有许多项目如 [luaj][4] 使得其成为可能,之所以可以实现,正是因为 Lua 就是为此而设计的。部分出于这种灵活性,你可以在许多游戏、图形应用的程序中发现 Lua 脚本的身影。 -### 安装Lua +就像其他任何事情一样,做到完美是需要时间的,但 Lua 是很易于学习(并且有趣)的语言。它是一种一致的语言、一种带有有用的错误消息的友好的语言,并且可以在网上轻松找到许多有用的资料。那么就让我们开始吧! -在Linux下, 你可以使用发行版自带的包管理来安装Lua. 例如, 在Fedora, CentOS, Mageia, OpenMandriva以及相似的发行版中: +### 安装 Lua + +在 Linux 下,你可以使用发行版自带的包管理来安装 Lua。例如,在 Fedora、CentOS、 Mageia、OpenMandriva 以及类似发行版中: ``` $ sudo dnf install lua ``` -在Debian以及基于Debian的系统中: +在 Debian 以及基于 Debian 的系统中: ``` $ sudo apt install lua ``` -对于Mac, 你可以使用[MacPorts][5] 或者 [Homebrew][6]. +对于 Mac,你可以使用 [MacPorts][5] 或者 [Homebrew][6]: ``` $ sudo port install lua ``` -对于Windows, 可以使用[Chocolatey][7]安装Lua. +对于 Windows,可以使用 [Chocolatey][7] 安装 Lua。 -完成安装后, 可以在终端中输入`lua`来在交互式解释器中使用Lua. +完成安装后,可以在终端中输入 `lua` 来在交互式解释器中使用 Lua。 ### 函数 -如许多编程语言一样, Lua调用一个内建的函数或关键字, 后面跟着参数. 例如, `print`函数显示你传给它的所有参数. +如许多编程语言一样,Lua 的语法通常是一个内建的函数或关键字,后面跟着参数。例如,`print` 函数显示你传给它的所有参数。 ``` $ lua -Lua 5.4.2 Copyright (C) 1994-2020 Lua.org, PUC-Rio +Lua 5.4.2 Copyright (C) 1994-2020 Lua.org,PUC-Rio > print('hello') hello ``` -Lua的`string`库可以操作单词(在编程中称为"字符串"). 例如, 统计字符串中的字母数量, 你可以使用`string`库中`len`函数: +Lua 的 `string` 库可以操作单词(在编程中称为“字符串”)。例如,要统计字符串中的字母数量,你可以使用 `string` 库中 `len` 函数: ``` > string.len('hello') @@ -63,7 +65,7 @@ Lua的`string`库可以操作单词(在编程中称为"字符串"). 例如, 统 ### 变量 -一个变量允许你在计算机内存中为临时的数据创建一个指定的空间. Lua中创建变量的方法是赋予变量一个名字, 接着将数据放入其中. +变量允许你在计算机内存中为临时的数据创建一个指定的空间。Lua 中创建变量的方法是赋予变量一个名字,接着将数据放入其中。 ``` > foo = "hello world" @@ -76,15 +78,15 @@ hello world ### 表 -在编程中, 数组的使用频率仅次于变量的存在. "数组"这个词的字面意思就是一种排列, 而这就是程序中数组的意义了. 它是数据的一种排列, 因为有排列, 所有数组具有结构化的优势. 本只上数组通常用于和变量相同的目的, 只不过数组会给对其中的数据进行排序. 在Lua中, 数组被称为`表`. +在编程中,数组的使用频率仅次于变量。“数组”这个词的字面意思就是一种排列,而这就是程序中数组的意义了。它是数据的一种排列,因为有排列,所有数组具有结构化的优势。本质上,数组通常用于和变量相同的目的,只不过数组会给对其中的数据进行排序。在 Lua 中,数组被称为“表”。(LCTT 译注:使用过其它编程语言的同学可以发现,Lua 的表相当于其它语言中的关联数组、哈希。) -创建表和创建变量类似, 区别仅在于它的初始化内容被设置为`{}`: +创建表和创建变量类似,区别仅在于它的初始化内容被设置为 `{}`: ``` > mytable = {} ``` -当往表中增加数据时, 它就如同创建变量一样, 区别在于这里的变量之前总是以表名开头, 中间使用`.`来连接: +当往表中增加数据时,它就如同创建变量一样,区别在于这里的变量之前总是以表名开头,中间使用 `.` 来连接: ``` > mytable.foo = "hello world" @@ -95,22 +97,22 @@ hello world 3 ``` -### 使用Lua作为脚本 +### 使用 Lua 编写脚本 -在终端交互环境中运行Lua可以得到良好的反馈, 但是将Lua作为脚本运行会更为有用. 一个Lua脚本就是包含Lua代码的文本文件, Lua命令可以解析并执行此文件. +在终端交互环境中运行 Lua 可以得到良好的反馈,但是将 Lua 作为脚本运行会更为有用。Lua 脚本就是包含 Lua 代码的文本文件,Lua 命令可以解析并执行此文件。 -对于开始学习一门编程语言, 永恒的问题是你怎么知道该写什么. 这篇文章将提供一个不错的开端, 截至目前, 你仅知道了两三个Lua函数. 懂得查阅文档是很关键的. Lua并不是一个复杂的语言, 可以通过[Lua文档网站][8]很方便的获取关键字以及函数的用法. +在刚刚开始学习一门编程语言时,一个永恒的问题是你怎么知道该写什么。这篇文章将提供一个不错的开端,截至目前,你仅知道了两三个 Lua 函数。懂得查阅文档是很关键的。Lua 并不是一个复杂的语言,可以通过 [Lua 文档网站][8] 很方便的获取关键字以及函数的用法。 -下面是一个练习题. +下面是一个练习题。 -假设你想编写一个Lua脚本来统计句子中的单词数量. 与众多的编程挑战一样, 有许多方法可以解决这个问题, 假设你在Lua文档中找到的第一个相关的函数是`string.gmatch`, 此函数可以搜索字符串中的特定字符. 单词通常通过空格分隔开来, 所以你决定计算空格数并加1来作为单词的数量. +假设你想编写一个 Lua 脚本来统计句子中的单词数量。与众多的编程挑战一样,有许多方法可以解决这个问题,假设你在 Lua 文档中找到的第一个相关的函数是 `string.gmatch`,此函数可以搜索字符串中的特定字符。单词通常通过空格分隔开来,所以你决定计算空格数并加 1 来作为单词的数量。 -下面是实现的代码 +下面是实现的代码: ``` function wc(words,delimiter) count=1 - for w in string.gmatch(words, delimiter) do + for w in string.gmatch(words,delimiter) do count = count + 1 end @@ -118,41 +120,41 @@ function wc(words,delimiter) end ``` -下面是这个样例代码的解释 +下面是这个样例代码的解释: -- `function`: 这是声明函数开始的关键字. 自定义函数的工作方式与内置函数(如`print`和`string.len`)基本相同 -- `words`和`delimiter`: 这是函数运行所需的参数. 正如`print('hello')`当中, `hello`是一个参数 -- `counter`: 一个变量, 且被初始化为1 -- `for`: 在循环中使用`string.gmatch`作为迭代器遍历`words`, 并且在其中搜索`delimiter` -- `count = count +1`: 当搜索到了`delimiter`, 则对`count`进行自增1的操作 -- `end`: `for`循环的结束关键字 -- `return count`: 这个函数输出(或返回)`count`变量的内容 -- `end`: 函数结束的关键字 +- `function`:这是声明函数开始的关键字。自定义函数的工作方式与内置函数(如 `print` 和 `string.len`)基本相同。 +- `words` 和 `delimiter`:这是函数运行所需的参数。正如 `print('hello')` 当中,`hello` 是一个参数。 +- `counter`:一个变量,且被初始化为 `1`。 +- `for`:在循环中使用 `string.gmatch` 作为迭代器遍历 `words`,并且在其中搜索`delimiter`。 +- `count = count + 1`:当搜索到了 `delimiter`,则对 `count` 进行自增 1 的操作。 +- `end`:`for` 循环的结束关键字。 +- `return count`:这个函数输出(或返回)`count` 变量的内容。 +- `end`:函数结束的关键字。 -现在你已经创建了一个函数, 你可以使用它. 需要记住, 函数不会自动运行, 而是等待你在代码中调用它. +现在你已经创建了一个函数,你可以使用它。需要记住,函数不会自动运行,而是等待你在代码中调用它。 -将下面的代码写入文件并保存为`words.lua` +将下面的代码写入文件并保存为 `words.lua`: ``` function wc(words,delimiter) count=1 - for w in string.gmatch(words, delimiter) do + for w in string.gmatch(words,delimiter) do count = count + 1 end return count end -result = wc('zombie apocalypse', ' ') +result = wc('zombie apocalypse',' ') print(result) -result = wc('ice cream sandwich', ' ') +result = wc('ice cream sandwich',' ') print(result) -result = wc('can you find the bug? ', ' ') +result = wc('can you find the bug? ',' ') print(result) ``` -你现在创建了一个Lua脚本. 你可以使用Lua运行它. 随后你会发现统计单词的结果有些问题 +你现在创建了一个 Lua 脚本。你可以使用 Lua 运行它。随后你会发现统计单词的结果有些问题: ``` $ lua ./words.lua @@ -161,11 +163,13 @@ $ lua ./words.lua 6 ``` -你也许已经注意到了最后一个句子的单词统计不正确, 因为在句子的最后带有一个额外的空格. Lua正确的检测到了空格, 并将其计入`count`中, 但是单子的统计是错误的, 因为有个空格并没有作为单词的分隔出现. 我把这个问题留给你来解决, 或者去发现其他方法, 即使这个方法不太理想. 编程中有很多需要思考的地方. 有时是纯粹学术性的思考, 有时也许是应用是否运训正常的思考. +你也许已经注意到了最后一个句子的单词统计不正确,因为在句子的最后带有一个额外的空格。Lua正确的检测到了空格,并将其计入 `count` 中,但是单子的统计是错误的,因为有个空格并没有作为单词的分隔出现。我把这个问题留给你来解决,或者去发现其他方法,即使方法不太理想。编程中有很多需要思考的地方。有时是纯粹学术性的思考,有时也许是应用是否运训正常的思考。 -### 学习Lua +### 学习 Lua -Lua是一个有趣且强大的语言, 随着版本的推进, 功能愈发的强大, 开发者也在不断的增长. 你可以将Lua作为实用性的个人脚本使用, 或者在工作中使用, 或者仅仅是体验一下一个新的语言. 尝试一下, 看看Lua能给你带来什么吧. +Lua 是一个有趣且强大的语言,随着版本的推进,功能愈发的强大,开发者群体也在不断的增长。你可以将 Lua 作为实用性的个人脚本使用,或者在工作中使用,或者仅仅是体验一下一个新的语言。尝试一下,看看 Lua 能给你带来什么吧。 + +(LCTT 译注:顺便问一句,你知道 “Lua” 怎么发音吗? 🤣) -------------------------------------------------------------------------------- @@ -174,7 +178,7 @@ via: https://opensource.com/article/22/11/lua-worth-learning 作者:[Seth Kenlon][a] 选题:[lkxed][b] 译者:[MuggleWei](https://github.com/MuggleWei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 90b06f6f3d11f4b9ff103aab3d289513feb2fcad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 12 Nov 2022 11:22:14 +0800 Subject: [PATCH 1976/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @MuggleWei 本文首发地址:https://linux.cn/article-15243-1.html 您的 LCTT 专页:https://linux.cn/lctt/MuggleWei --- .../20221103.0 ⭐️⭐️ Is Lua worth learning.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221103.0 ⭐️⭐️ Is Lua worth learning.md (99%) diff --git a/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/published/20221103.0 ⭐️⭐️ Is Lua worth learning.md similarity index 99% rename from translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md rename to published/20221103.0 ⭐️⭐️ Is Lua worth learning.md index 848ebb0928..705e1d3780 100644 --- a/translated/tech/20221103.0 ⭐️⭐️ Is Lua worth learning.md +++ b/published/20221103.0 ⭐️⭐️ Is Lua worth learning.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "MuggleWei" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15243-1.html" Lua 值得学习吗? ====== From 19a58defbd95a1338902cbc56ee92dfe6361dd24 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 12 Nov 2022 11:37:48 +0800 Subject: [PATCH 1977/3123] RP @geekpi https://linux.cn/article-15244-1.html --- ...ine Image to Another Host Using GNOME Boxes.md | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md (55%) diff --git a/translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md b/published/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md similarity index 55% rename from translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md rename to published/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md index 31986e2154..c1f96d1ad9 100644 --- a/translated/tech/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md +++ b/published/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md @@ -3,16 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15244-1.html" -使用 GNOME Box 将虚拟机镜像移动到另一台主机 +使用 GNOME Boxes 将虚拟机镜像移动到另一台主机 ====== -**本指南介绍了使用 GNOME Boxes 将虚拟机镜像移动到另一台主机所需的步骤。** +![](https://img.linux.net.cn/data/attachment/album/202211/12/113707ewb6ope663w86e5e.jpg) -GNOME Boxes 是由 GNOME 项目创建的虚拟化程序。此程序用作 libvirt 的前端。 libvirt 是用于管理平台虚拟化的开源 API、守护进程和管理工具。它支持不同的虚拟化技术,如 KVM、Xen、VMware ESXi、QEMU 等。 +> 本指南介绍了使用 GNOME Boxes 将虚拟机镜像移动到另一台主机所需的步骤。 + +GNOME Boxes 是由 GNOME 项目创建的虚拟化程序。此程序用作 libvirt 的前端。libvirt 是用于管理平台虚拟化的开源 API、守护进程和管理工具。它支持不同的虚拟化技术,如 KVM、Xen、VMware ESXi、QEMU 等。 如果你想使用 GNOME Boxes 创建虚拟机,[请参阅本指南][1]。 @@ -20,13 +22,13 @@ GNOME Boxes 是由 GNOME 项目创建的虚拟化程序。此程序用作 libvir 这样,你不再需要从操作系统重新安装虚拟机。此外,它是便携式的,你可以将虚拟机镜像放在 U 盘中。 -### 如何使用 GNOME Box 将虚拟机镜像移动到另一台主机 +### 如何使用 GNOME Boxes 将虚拟机镜像移动到另一台主机 -我希望你已经在 GNOME Boxes 中创建了一个虚拟机。如果没有,请查看[本指南][1]。 +我希望你已经在 GNOME Boxes 中创建了一个虚拟机。如果没有,请查看 [本指南][1]。 -- GNOME Boxes 和 [libvert][2] 使用以下目录存储虚拟机镜像和配置。如下所述,你需要仔细备份每个文件。 +GNOME Boxes 和 [libvert][2] 使用以下目录存储虚拟机镜像和配置。如下所述,你需要仔细备份每个文件。 -- GNOME Boxes 将虚拟机的物理镜像(通常为数 GB 大小)保存在以下路径中。对于你的每个虚拟机,你都会在其中找到一个镜像。 +GNOME Boxes 将虚拟机的物理镜像(通常为数 GB 大小)保存在以下路径中。对于你的每个虚拟机,你都会在其中找到一个镜像。 ``` ~/.local/share/gnome-boxes/images/ @@ -34,9 +36,9 @@ GNOME Boxes 是由 GNOME 项目创建的虚拟化程序。此程序用作 libvir ![机器镜像][3] -- 将图像文件复制到新主机的路径:`~/.local/share/gnome-boxes/images/` +将图像文件复制到新主机的路径:`~/.local/share/gnome-boxes/images/`。 -- 将 libvirt 的 XML 配置从以下路径复制到新主机的相同位置。 +将 libvirt 的 XML 配置从以下路径复制到新主机的相同位置。 ``` ~/.config/libvirt/qemu/ @@ -44,21 +46,21 @@ GNOME Boxes 是由 GNOME 项目创建的虚拟化程序。此程序用作 libvir ![镜像 XML][4] -- 在上述路径中,你应该会看到每个虚拟机的单独 xml 文件。复制你需要的那个。 +在上述路径中,你应该会看到每个虚拟机的单独 xml 文件。复制你需要的那个。 -- 在你当前的系统中打开以下文件。 +在你当前的系统中打开以下文件。 ``` ~/.config/gnome-boxes/sources/'QEMU Session' ``` -- 复制属于你的虚拟机的部分(从“[display” ... 到本部分的末尾)。你可以使用名称轻松找到它(看下面的 “last seen name”)。 +复制属于你的虚拟机的部分(从 `[display` ... 到本部分的末尾)。你可以使用名称轻松找到它(看下面的 `last-seen-name`)。 ![QEMU 会话文件][5] -- 在另一台主机上打开相同的上述文件并将复制的内容附加到末尾。保存文件。 +在另一台主机上打开相同的上述文件并将复制的内容附加到末尾。保存文件。 -- 关闭新主机中的所有应用,包括 GNOME Boxes。 +关闭新主机中的所有应用,包括 GNOME Boxes。 现在打开 GNOME Boxes,你应该会看到你的虚拟机和它的内容一起被移动到新主机中。 @@ -71,7 +73,7 @@ via: https://www.debugpoint.com/move-virtual-machine-image-another-host/ 作者:[Arindam][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/) 荣誉推出 From bb78c26526c080ac52a9176765272ee3801758d7 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Sat, 12 Nov 2022 15:03:31 +0800 Subject: [PATCH 1978/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20210922 Install PowerShell on Fedora Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210922 Install PowerShell on Fedora Linux.md b/sources/tech/20210922 Install PowerShell on Fedora Linux.md index 05a2aa5445..fd2a75d94b 100644 --- a/sources/tech/20210922 Install PowerShell on Fedora Linux.md +++ b/sources/tech/20210922 Install PowerShell on Fedora Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://fedoramagazine.org/install-powershell-on-fedora-linux/" [#]: author: "TheEvilSkeletonOzymandias42 https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "cool-summer-021" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4a04ea5f90165f26de276555a24c373b1bfeab21 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Sat, 12 Nov 2022 17:00:17 +0800 Subject: [PATCH 1979/3123] =?UTF-8?q?littlebirdnest=20=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow to Install AWS CLI on Linux Step-by-Step.md | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) rename {sources => translated}/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md (55%) diff --git a/sources/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md b/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md similarity index 55% rename from sources/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md rename to translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md index 1bc2265ed9..cc8b5a5d40 100644 --- a/sources/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md +++ b/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md @@ -7,38 +7,38 @@ [#]: publisher: " " [#]: url: " " -How to Install AWS CLI on Linux Step-by-Step +如何在Linux上安装 AWS CLI ====== -This post describes how to install latest version of AWS CLI on a linux system step-by-step. AWS CLI is a command line interface which allows us to interact with our AWS account. Developer and sysadmin use aws cli to perform day to day activities and automation. +本文讲述如何一步步Linux上安装 AWS CLI。 AWS CLI是一个能够和aws账户进行交互的命令行程序。开发者和系统管理员用它管理日常的活动和自动化 -##### Prerequisites +##### 准备环节 -- Pre-Installed Linux System -- Sudo User with admin rights -- Internet Connectivity +- 提前安装好Linux系统 +- 有管理员权限 +- 能够联网 -Without any further delay, let’s jump into AWS Cli installations steps. +现在让我们开始安装 -### 1) Download installation file +### 1) 下载安装文件 -Open the terminal and run following curl command to download aws cli installation file, +打开终端使用curl命令下载AWS CLI 的安装文件 ``` $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ``` -Above command will download file as ‘awscliv2.zip’ in current working directory. +以上命令会安装一个 ‘awscliv2.zip’的文件在当前工作目录 -Execute below [ls command][1] to verify downloaded file, +使用ls命令确认当前下载下来的文件 ``` $ ls -l awscliv2.zip -rw-rw-r-- 1 linuxtechi linuxtechi 47244662 Oct 20 10:53 awscliv2.zip $ ``` -### 2) Unzip downloaded installation file +### 2) 解压下载的文件 -Run beneath [unzip command][2] to unzip the installer. +使用unzip命令解压安装包 if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-3','ezslot_6',320,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-3-0'); @@ -46,41 +46,41 @@ if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_co $ unzip awscliv2.zip ``` -It will create aws folder in present working directory and unzip all required files into it. +它会在当前目录创建一个aws的文件夹,把解压好的文件放进去 ``` $ ls -ld aws drwxr-xr-x 3 linuxtechi linuxtechi 4096 Oct 19 17:18 aws $ ``` -### 3) Run install script +### 3) 运行安装脚本 -To install aws cli, run following install script, +使用以下命令允许安装脚本 ``` $ sudo ./aws/install ``` -Script will install all files under /usr/local/aws-cli and will create symbolic link in /usr/local/bin. +脚本会把所有安装的文件放到 /usr/local/aws-cli目录下,然后创建一个链接文件在/usr/local/bin目录. if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-4','ezslot_7',340,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-4-0'); -### 4) Verify AWS CLI version +### 4) 检查AWS CLI的版本 -To verify the aws cli version, run +运行以下脚本检查版本 ``` $ aws --version aws-cli/2.8.4 Python/3.9.11 Linux/5.15.0-48-generic exe/x86_64.ubuntu.22 prompt/off $ ``` -### 5) Configure AWS CLI +### 5) 配置 AWS CLI -To verify the AWS Cli installation, let’s configure aws cli. +安装好AWS CLI,开始配置 AWS CLI -Login to your AWS management console and retrieve AWS access key id and secret access key. +登录你的AWS管理控制台,取得AWS访问密钥id和访问密钥 -In case it is not created yet then create access key ID and secret access key. Copy these keys somewhere safe. +如果还没完成创建,就创建一个密钥id和密钥,把密钥复制到安全的地方 -Now head back to Linux terminal, run following aws command, +然后回到命令行,运行以下命令 if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-box-4','ezslot_8',260,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-box-4-0'); @@ -88,29 +88,29 @@ if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_co $ aws configure AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxx AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxx Default region name [None]: us-west-2 Default output format [None]: json $ ``` -Above credentials will be saved in following file, +以上的证书会被保存到这个文件 ``` $ cat  ~/.aws/credentials ``` -Output of above commands, +输出上面的命令 -Run aws command to list s3 bucket and vpc of your account. +运行aws命令,列出你账户中的 s3储存和vpc ``` $ aws s3 ls $ aws ec2 describe-vpcs ``` -Output, +输出, -Output above confirms that aws cli has been configured successfully. +成功输出内容,说明你的 AWS CLI 已经配置完成 -That’s all from this post, please do post your queries and feedback in below comments sections. +以上是全部内容,有问题评论区问 if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-banner-1','ezslot_9',360,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-banner-1-0'); -Also Read:[How to Setup EKS Cluster along with NLB on AWS][3] +其他文章:[How to Setup EKS Cluster along with NLB on AWS][3] -------------------------------------------------------------------------------- @@ -118,7 +118,7 @@ via: https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[littlebirdnest](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 909f9e6d1a1c3c55debc71ad5c82472230a7f083 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 12 Nov 2022 17:07:26 +0800 Subject: [PATCH 1980/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ommands On Remote Linux Systems Via SSH.md | 335 ----------------- ...ommands On Remote Linux Systems Via SSH.md | 350 ++++++++++++++++++ 2 files changed, 350 insertions(+), 335 deletions(-) delete mode 100644 sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md create mode 100644 translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md diff --git a/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md b/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md deleted file mode 100644 index 9142a40421..0000000000 --- a/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md +++ /dev/null @@ -1,335 +0,0 @@ -[#]: subject: "Execute Commands On Remote Linux Systems Via SSH" -[#]: via: "https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Execute Commands On Remote Linux Systems Via SSH -====== -Invoking Commands Or Programs On Remote Machines Over A Secure Network Connection - -The other day I was testing how to [keep file permissions intact while copying files or directories][1] to multiple locations and systems. When I wanted to check the file permissions on a remote system, I had to login to that system over SSH and check the attributes. The process of login and log-out from the remote system multiple times was bit annoying to me. I thought it would be better if I could **execute commands on remote Linux systems via SSH**. - -Fortunately, I found a workaround to invoke commands and programs on a remote machine over a secure network connection after skimming through the man pages of `ssh` command. - -If you ever wondered how to run a command or script on a remote system from your local system itself without logging in to that remote system, here is how to do it. - -#### Contents - -1. 1. Execute Commands On Remote Linux Systems Via SSH 2. 1.1. Run A Single Command On Remote Systems Over SSH 3. 1.2. Execute Multiple Commands On Remote Hosts Via SSH 4. 1.3. Invoke Commands With Sudo Privileges On Remote Machines Over SSH 5. 1.4. Run Local Scripts On Remote Systems Via SSH 6. 1.5. Save Command Output From Remote Host To Local Host 7. 1.6. Configure SSH Key-based Authentication To Avoid Password Typing -8. 2. Use sshpass While Running Commands On Remote Machines Over SSH 9. 2.1. What Is sshpass? 10. 2.2. Install sshpass In Linux 11. 2.3. Execute Commands On Remote Machines Over SSH With sshpass -12. Conclusion - -### 1. Execute Commands On Remote Linux Systems Via SSH - -The typical way to run a command or script on a remote system over SSH from the local system is: - -``` -$ ssh -``` - -Allow me to show you some examples. - -#### 1.1. Run A Single Command On Remote Systems Over SSH - -Let us say you want to [find Kernel details][2] of your remote Linux system. To do so, simply, run: - -``` -$ ssh sk@192.168.225.22 uname -a -``` - -Here, - -* sk is the username of my remote system, -* 192.168.225.22 is the IP address of the remote system, -* And `"uname -a"` is the command that I want to run on the remote system from my local system. - -**Sample output:** - -![Execute Commands On Remote Linux Systems Via SSH][3] - -See? I haven't actually logged-in to the remote system, but executed the `uname` command on the remote system over SSH and displayed the output in my local system's Terminal. - -You can also specify the command in quotes like below. - -``` -$ ssh sk@192.168.225.22 "uname -a" -``` - -Or, - -``` -$ ssh sk@192.168.225.22 'uname -a' -``` - -If you have [changed default port of SSH protocol][4], just mention it using **-p** parameter like below. - -``` -$ ssh -p 2200 sk@192.168.225.22 uname -a -``` - -#### 1.2. Execute Multiple Commands On Remote Hosts Via SSH - -You can also run multiple commands on a remote host by specifying them within quotes like below. - -``` -$ ssh sk@192.168.225.22 "uname -r && lsb_release -a" -``` - -Or, - -``` -$ ssh sk@192.168.225.22 "uname -r ; lsb_release -a" -``` - -The above commands will display the Kernel version and distribution details of my Ubuntu server. - -**Sample output:** - -![Run Multiple Commands On Remote Hosts Over SSH On Linux][5] - -As one one of our reader mentioned in the comment section below, you should specify multiple commands in quotes. If you don't use quotes, the first command will execute on the remote system and second command will be evaluated on local machine only. The whole command in quotes will be processed remotely as intended. - -#### 1.3. Invoke Commands With Sudo Privileges On Remote Machines Over SSH - -Some commands requires `"sudo"` privileges to run. For instance, the following command will install **Vim** on my remote system. - -``` -$ ssh -t sk@192.168.225.22 sudo apt install apache2 -``` - -**Sample output:** - -![Run Commands With Sudo Privileges On Remote Machines Over SSH][6] - -Did you notice? I have used **-t** flag in the above command. We need to mention this **-t** flag to force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. - -Also, I have entered password **twice**. The first time I entered the password of the remote user to access the remote system over SSH from my local system and the second password is required to give sudo permission to the remote user to install application (i.e. apache2 in this case) on the remote system. - -Let us check if the Apache service is running using command: - -``` -$ ssh -t sk@192.168.225.22 sudo systemctl status apache2 -sk@192.168.225.22's password: -[sudo] password for sk: -● apache2.service - The Apache HTTP Server -Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) -Drop-In: /lib/systemd/system/apache2.service.d -└─apache2-systemd.conf -Active: active (running) since Thu 2019-12-19 11:08:03 UTC; 52s ago -Main PID: 5251 (apache2) -Tasks: 55 (limit: 2318) -CGroup: /system.slice/apache2.service -├─5251 /usr/sbin/apache2 -k start -├─5253 /usr/sbin/apache2 -k start -└─5254 /usr/sbin/apache2 -k start - -Dec 19 11:08:03 ubuntuserver systemd[1]: Starting The Apache HTTP Server... -Dec 19 11:08:03 ubuntuserver apachectl[5227]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 2409:4072:51f:a1b6:a00:27ff:f -Dec 19 11:08:03 ubuntuserver systemd[1]: Started The Apache HTTP Server. -``` - -Similarly, we can run any command or script on a remote system over SSH from the local system. - -#### 1.4. Run Local Scripts On Remote Systems Via SSH - -Let us a create a simple script on our local system to display all the available information about your remote system's distribution name, package management and base details etc. - -``` -$ vi system_information.sh -``` - -Add the following lines: - -``` -#!/bin/bash -#Name: Display System Details -#Owner: OSTechNIx -#---------------------------- -echo /etc/*_ver* /etc/*-rel*; cat /etc/*_ver* /etc/*-rel* -``` - -Press **ESC** key and type **:wq** to save the file and exit. - -Now run this script on your remote system over SSH using command: - -``` -$ ssh sk@192.168.225.22 'bash -s' < system_information.sh -``` - -**Sample output:** - -``` -sk@192.168.225.22's password: -/etc/debian_version /etc/lsb-release /etc/os-release -buster/sid -DISTRIB_ID=Ubuntu -DISTRIB_RELEASE=18.04 -DISTRIB_CODENAME=bionic -DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS" -NAME="Ubuntu" -VERSION="18.04.2 LTS (Bionic Beaver)" -ID=ubuntu -ID_LIKE=debian -PRETTY_NAME="Ubuntu 18.04.2 LTS" -VERSION_ID="18.04" -HOME_URL="https://www.ubuntu.com/" -SUPPORT_URL="https://help.ubuntu.com/" -BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" -PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" -VERSION_CODENAME=bionic -UBUNTU_CODENAME=bionic -``` - -If you don't specify `'bash -s'` in the above command, you will get the details of the remote system but Pseudo-terminal will not be allocated. - -#### 1.5. Save Command Output From Remote Host To Local Host - -This can be useful if you want to share the output of a command that you run on the remote system over SSH with your support team or colleague. - -The following command will run **"du -ah"** on your remote system over SSH and save the output in **diskusage.txt** file in your local system. - -``` -$ ssh sk@192.168.225.22 du -ah > diskusage.txt -``` - -You can then analyze the disk usage details by viewing the `diskusage.txt` file using **cat** command or text viewers. - -``` -$ cat diskusage.txt -4.0K ./.profile -4.0K ./.gnupg/private-keys-v1.d -8.0K ./.gnupg -76K ./data/image.jpg -128K ./data/file.pdf -20K ./data/text.docx -5.9M ./data/audio.mp3 -6.1M ./data -0 ./.sudo_as_admin_successful -4.0K ./pacman?inline=false -4.0K ./.bash_logout -4.0K ./.wget-hsts -4.0K ./.bash_history -0 ./.cache/motd.legal-displayed -4.0K ./.cache -4.0K ./deb-pacman_1.0-0.deb -4.0K ./.bashrc -6.2M . -``` - -#### 1.6. Configure SSH Key-based Authentication To Avoid Password Typing - -If you run commands on remote systems often, you may want to configure SSH key-based authentication to skip password typing every time. More details can be found in the following link. - -* [How To Configure SSH Key-based Authentication In Linux][7] - -After configuring SSH key-based authentication, we can execute commands on Remote machines over SSH without entering the password: - -``` -$ ssh sk@192.168.225.22 sudo apt update -``` - -### 2. Use sshpass While Running Commands On Remote Machines Over SSH - -If you don't want to configure SSH key-based authentication, you can use **sshpass** utility to run commands on remote machines via without entering password. - -#### 2.1. What Is sshpass? - -The sshpass utility is designed for running ssh using the keyboard-interactive password authentication mode, but in non-interactive way. To put this in simple terms - sshpass offers non-interactive way to authenticate a SSH session. - -SSH uses direct TTY access to make sure that the password is indeed issued by an interactive keyboard user. Sshpass runs ssh in a dedicated tty, fooling it into thinking it is getting the password from an interactive user. - -#### 2.2. Install sshpass In Linux - -The sshpass utility is available in the default repositories of many Linux distributions. For instance, you can use the following command to install sshpass in Debian, Ubuntu and its derivatives: - -``` -$ sudo apt install sshpass -``` - -#### 2.3. Execute Commands On Remote Machines Over SSH With sshpass - -sshpass can accept password as an argument, or read the password via an environment variable, or read the password from a text file. - -**A word of caution:** All of these methods are **highly insecure**. All system users can see the password in the commands by simply issuing the **ps** command. It is **NOT RECOMMENDED** to use these methods in production. It is better to use key-based authentication instead. - -Let us see examples for each method. - -**Provide Password as an argument:** - -To provide password as an argument, use `-p` option like below. - -``` -$ sshpass -p ssh remoteuser@ip-address -``` - -**Example:** - -``` -$ sshpass -p ubuntu ssh ostechnix@192.168.1.30 uname -a -``` - -Here, - -* -p ubuntu - provides the password for the remote system. -* ostechnix@192.168.1.30 - Remote username and IP address. -* 'uname -a' - Command to execute on the remote machine. - -**Sample output:** - -``` -Linux Ubuntu22CT 5.15.60-1-pve #1 SMP PVE 5.15.60-1 (Mon, 19 Sep 2022 17:53:17 +0200) x86_64 x86_64 x86_64 GNU/Linux -``` - -**Provide Password as an Environment variable:** - -In this method, we declare an environment variable called **SSHPASS** with the remote system's password as its value. And then we provide the password with **-e** flag like below: - -``` -$ SSHPASS=ubuntu sshpass -e ssh ostechnix@192.168.1.30 uname -a -``` - -**Read Password from a text file:** - -Append the password in a text file with echo command: - -``` -$ echo "ubuntu" > mypassword.txt -``` - -Now, pass the password file to sshpass lwith **-f**flag like below: - -``` -$ sshpass -f mypassword.txt ssh ostechnix@192.168.1.30 uname -a -``` - -![Execute Commands On Remote Machines Over SSH With sshpass][8] - -### Conclusion - -In this tutorial, we learned a few methods to invoke a command or program on a remote machine over a secure network connection. Among all the methods, the sshpass method is least secure. The users are encouraged to avoid using sshpass in production systems. - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/ - -作者:[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-keep-ownership-and-file-permissions-intact-when-copying-files-or-directories/ -[2]: https://ostechnix.com/find-out-the-linux-distribution-name-version-and-kernel-details/ -[3]: https://ostechnix.com/wp-content/uploads/2019/12/Execute-Commands-On-Remote-Linux-Systems-Via-SSH.gif -[4]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ -[5]: https://ostechnix.com/wp-content/uploads/2019/12/Run-multiple-commands-on-remote-systems-via-SSH-on-Linux.png -[6]: https://ostechnix.com/wp-content/uploads/2019/12/Run-commands-with-sudo-privileges-on-remote-systems-via-SSH.png -[7]: https://ostechnix.com/configure-ssh-key-based-authentication-linux/ -[8]: https://ostechnix.com/wp-content/uploads/2022/09/Execute-Commands-On-Remote-Machines-Over-SSH-With-sshpass.png diff --git a/translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md b/translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md new file mode 100644 index 0000000000..3d9c63ec5c --- /dev/null +++ b/translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md @@ -0,0 +1,350 @@ +[#]: subject: "Execute Commands On Remote Linux Systems Via SSH" +[#]: via: "https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过 SSH 在远程 Linux 系统上执行命令 +====== +通过安全的网络连接在远程计算机上调用命令或程序 + +有一天,我正在测试如何在[将文件或目录复制到多个位置和系统时保持完整的文件权限][1]。当我想检查远程系统上的文件权限时,我必须通过 SSH 登录它并检查属性。从远程系统多次登录和注销的过程让我有点烦,我想,如果我可以**在远程 Linux 系统上通过 SSH 执行命令**就好了。 + +幸运的是,在浏览了 `ssh` 命令的手册页后,我找到了一个解决办法。 + +如果你想知道如何本地运行远程系统上运行命令或脚本,而不登录到远程系统,下面的内容会告诉你如何做。 + +### 1. 通过 SSH 在远程 Linux 系统上执行命令 + +从本地系统通过 SSH 在远程系统上运行命令或脚本的典型方法是: + +```bash +$ ssh +``` + +允许我给你们举几个例子。 + +#### 1.1. 通过 SSH 在远程系统上运行单个命令 + +假设你想要[查找远程 Linux 系统的内核详细信息][2]。为此,只需运行: + +```bash +$ ssh sk@192.168.225.22 uname -a +``` + +这里, + +* sk 是远程系统的用户名, +* 192.168.225.22 是远程系统的 IP 地址, +* `"uname -a"` 是我想在远程系统上运行的命令。 + +**示例输出:** + +![通过 SSH 在远程 Linux 系统上执行命令][3] + +看到没?我并没有实际登录到远程系统,但通过 SSH 在远程系统上执行了 `uname` 命令,并在本地系统的终端上显示了输出。 + +你还可以像下面这样用引号指定命令。 + +``` +$ ssh sk@192.168.225.22 "uname -a" +``` + +或者, + +``` +$ ssh sk@192.168.225.22 'uname -a' +``` + +如果你已经[更改了 SSH 协议的默认端口][4],只需使用 **-p** 参数指定它。 + +```bash +$ ssh -p 2200 sk@192.168.225.22 uname -a +``` + +#### 1.2. 通过 SSH 在远程主机上执行多个命令 + +你还可以在远程主机上运行多个命令,方法是将它们放在引号中。 + +```bash +$ ssh sk@192.168.225.22 "uname -r && lsb_release -a" +``` + +或者: + +``` +$ ssh sk@192.168.225.22 "uname -r ; lsb_release -a" +``` + +上面的命令将显示我的 Ubuntu 服务器的内核版本和发行版详细信息。 + +**示例输出:** + +![在 Linux 上通过 SSH 在远程主机上运行多个命令][5] + +正如一位读者在下面的评论部分提到的那样,你应该用引号指定多个命令。如果不使用引号,第一个命令将在远程系统上执行,第二个命令将仅在本地计算机上执行。整个带引号的命令将按预期在远程计算机上运行。 + +**提示:**了解 `"&&"` 和 `";"` 在命令中的区别: + +`"&&"` 操作符只有在第一个命令成功时才执行第二个命令。 + +示例: +``` +sudo apt-get update && sudo apt-get upgrade +``` + +在上述示例中,如果第一个命令成功,才会执行 `sudo apt-get upgrade`。否则,它将不会运行。 + +`";"` 操作符会执行第二个命令,无论第一个命令是成功还是失败。 + +示例: + +``` +sudo apt-get update ; sudo apt-get upgrade +``` + +在上述示例中,即使第一个命令失败,`sudo apt-get upgrade` 也会执行。 + +#### 1.3. 通过 SSH 在远程机器上调用有 Sudo 权限的命令 + +有些命令需要 `"sudo"` 权限才能运行。例如,以下命令将在我的远程系统上安装 **apache2**。 + +```bash +$ ssh -t sk@192.168.225.22 sudo apt install apache2 +``` + +**示例输出:** + +![通过 SSH 在远程机器上运行有 Sudo 权限的命令][6] + +注意到了吗?我在上面的命令中使用了 **-t** 标志,我们需要使用它来强制进行伪终端分配。它用于在远程机器上执行任意基于屏幕的程序,这非常有用。例如,在实现菜单服务时。 + +另外,我输入了**两次**密码。第一次是远程用户的密码,以便从本地系统通过 SSH 访问远程系统,第二次是为了向远程用户赋予 sudo 权限,以便安装应用程序(在本例中为 apache2)。 + +让我们用以下命令检查 Apache 服务是否正在运行: + +```bash +$ ssh -t sk@192.168.225.22 sudo systemctl status apache2 +sk@192.168.225.22's password: +[sudo] password for sk: +● apache2.service - The Apache HTTP Server +Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) +Drop-In: /lib/systemd/system/apache2.service.d +└─apache2-systemd.conf +Active: active (running) since Thu 2019-12-19 11:08:03 UTC; 52s ago +Main PID: 5251 (apache2) +Tasks: 55 (limit: 2318) +CGroup: /system.slice/apache2.service +├─5251 /usr/sbin/apache2 -k start +├─5253 /usr/sbin/apache2 -k start +└─5254 /usr/sbin/apache2 -k start + +Dec 19 11:08:03 ubuntuserver systemd[1]: Starting The Apache HTTP Server... +Dec 19 11:08:03 ubuntuserver apachectl[5227]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 2409:4072:51f:a1b6:a00:27ff:f +Dec 19 11:08:03 ubuntuserver systemd[1]: Started The Apache HTTP Server. +``` + +同样的,我们可以通过 SSH 在本地系统上运行远程系统上的任何命令或脚本。 + +#### 1.4. 通过 SSH 在远程系统上运行本地脚本 + +让我们在本地系统上创建一个简单的脚本来显示关于远程系统的发行版名称、包管理和基本细节等。 + +```bash +$ vi system_information.sh +``` + +添加以下行: + +```bash +#!/bin/bash +#Name: Display System Details +#Owner: OSTechNIx +#---------------------------- +echo /etc/*_ver* /etc/*-rel*; cat /etc/*_ver* /etc/*-rel* +``` + +按下 **ESC** 键,输入 **:wq** 保存退出。 + +现在,通过 SSH 命令在远程系统上运行这个脚本: + +```bash +$ ssh sk@192.168.225.22 'bash -s' < system_information.sh +``` + +**示例输出:** + +```bash +sk@192.168.225.22's password: +/etc/debian_version /etc/lsb-release /etc/os-release +buster/sid +DISTRIB_ID=Ubuntu +DISTRIB_RELEASE=18.04 +DISTRIB_CODENAME=bionic +DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS" +NAME="Ubuntu" +VERSION="18.04.2 LTS (Bionic Beaver)" +ID=ubuntu +ID_LIKE=debian +PRETTY_NAME="Ubuntu 18.04.2 LTS" +VERSION_ID="18.04" +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +VERSION_CODENAME=bionic +UBUNTU_CODENAME=bionic +``` + +如果你没有在上面的命令中指定 `bash -s`,你将获得远程系统的详细信息,但伪终端不会被分配。 + +#### 1.5. 将远程主机的命令输出保存到本地主机 + +如果你希望与支持团队或同事共享远程系统上运行的命令输出,那么这非常有用。 + +以下命令将通过 SSH 在远程系统运行 **"du -ah"**,并将输出保存在本地系统的 **diskusage** 文件中。 + +```bash +$ ssh sk@192.168.225.22 du -ah > diskusage.txt +``` + +然后,你可以通过使用 **cat** 命令或文本编辑器查看 `diskusage.txt` 文件来分析磁盘使用细节。 + +```bash +$ cat diskusage.txt +4.0K ./.profile +4.0K ./.gnupg/private-keys-v1.d +8.0K ./.gnupg +76K ./data/image.jpg +128K ./data/file.pdf +20K ./data/text.docx +5.9M ./data/audio.mp3 +6.1M ./data +0 ./.sudo_as_admin_successful +4.0K ./pacman?inline=false +4.0K ./.bash_logout +4.0K ./.wget-hsts +4.0K ./.bash_history +0 ./.cache/motd.legal-displayed +4.0K ./.cache +4.0K ./deb-pacman_1.0-0.deb +4.0K ./.bashrc +6.2M . +``` + +#### 1.6. 配置 SSH 密钥认证,避免输入密码 + +如果你经常在远程系统上运行命令,你可能需要配置基于 SSH 密钥的身份验证,以便每次跳过密码输入。更多细节可以在以下链接中找到。 + +* [Linux 系统下如何配置 SSH 密钥认证][7] + +配置了基于 SSH 密钥的认证后,我们可以通过 SSH 在远程机器上执行命令,从而不需要输入密码: + +```bash +$ ssh sk@192.168.225.22 sudo apt update +``` + +### 2. 通过 sshpass 在远程机器上运行命令 + +如果你不想配置基于 SSH 密钥的身份验证,你可以使用 **sshpass** 实用程序。 + +#### 2.1. 什么是 sshpass? + +sshpass 是为使用键盘交互密码身份验证模式运行 ssh 而设计的,但它以非交互的方式。简单来说,sshpass 提供了非交互式的方式来验证 SSH 会话。 + +SSH 使用直接 TTY 访问来确保密码确实是由交互式键盘用户发出的。Sshpass 在一个专用 tty 中运行 ssh,让它误以为从交互用户那里获得了密码。 + +#### 2.2. 在 Linux 中安装 sshpass + +在许多 Linux 发行版的默认仓库中都有 sshpass 实用程序。例如,在 Debian、Ubuntu 及其衍生版本中,你可以使用下面的命令来安装 sshpass: + +```bash +$ sudo apt install sshpass +``` + +#### 2.3. 通过 SSH 和 sshpass 在远程机器上执行命令 + +Sshpass 可以接受 password 作为参数,或者通过环境变量读取密码,也可以从文本文件中读取密码。 + +**警告:**所有这些方法都是**高度不安全的**。所有系统用户都可以通过 **ps** 命令看到命令中的密码。**不建议**在生产中使用这些方法。最好使用基于密钥的身份验证。 + +让我们看看每种方法的示例。 + +**将密码作为参数提供:** + +将密码作为参数提供,使用 `-p` 选项,如下所示: + +```bash +$ sshpass -p ssh remoteuser@ip-address +``` + +**示例:** + +```bash +$ sshpass -p ubuntu ssh ostechnix@192.168.1.30 uname -a +``` + +其中, + +* -p ubuntu - 提供远程系统的密码。 +* ostechnix@192.168.1.30 - 远程系统用户名和地址。 +* 'uname -a' - 要在远程计算机上执行的命令。 + +**示例输出:** + +```bash +Linux Ubuntu22CT 5.15.60-1-pve #1 SMP PVE 5.15.60-1 (Mon, 19 Sep 2022 17:53:17 +0200) x86_64 x86_64 x86_64 GNU/Linux +``` + +**密码作为环境变量提供:** + +在这个方法中,我们声明一个名为 **SSHPASS** 的环境变量,用远程环境的密码作为其值。然后我们使用 **-e** 标志,如下所示: + +```bash +$ SSHPASS=ubuntu sshpass -e ssh ostechnix@192.168.1.30 uname -a +``` + +**从文本文件中读取密码:** + +使用 echo 命令在文本文件中追加密码: + +```bash +$ echo "ubuntu" > mypassword.txt +``` + +现在,将密码文件传递给带有 **-f** 标志的 sshpass,如下所示: + +```bash +$ sshpass -f mypassword.txt ssh ostechnix@192.168.1.30 uname -a +``` + +![通过 SSH 和 sshpass 在远程机器上执行命令][8] + +### 总结 + +在本教程中,我们学习了一些通过安全的网络连接在远程计算机上调用命令或程序的方法。在所有的方法中,sshpass 方法是最不安全的,建议用户避免在生产系统中使用它。 + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/ + +作者:[sk][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://ostechnix.com/author/sk/ +[b]: https://github.com/lkxed +[1]: https://ostechnix.com/how-to-keep-ownership-and-file-permissions-intact-when-copying-files-or-directories/ +[2]: https://ostechnix.com/find-out-the-linux-distribution-name-version-and-kernel-details/ +[3]: https://ostechnix.com/wp-content/uploads/2019/12/Execute-Commands-On-Remote-Linux-Systems-Via-SSH.gif +[4]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ +[5]: https://ostechnix.com/wp-content/uploads/2019/12/Run-multiple-commands-on-remote-systems-via-SSH-on-Linux.png +[6]: https://ostechnix.com/wp-content/uploads/2019/12/Run-commands-with-sudo-privileges-on-remote-systems-via-SSH.png +[7]: https://ostechnix.com/configure-ssh-key-based-authentication-linux/ +[8]: https://ostechnix.com/wp-content/uploads/2022/09/Execute-Commands-On-Remote-Machines-Over-SSH-With-sshpass.png From 88440a395f400b18c38263cf6dab7bf87963f673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 12 Nov 2022 19:47:23 +0800 Subject: [PATCH 1981/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221110.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Fix=20s?= =?UTF-8?q?udo=20Command=20Not=20Found=20Error.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Fix sudo Command Not Found Error.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md diff --git a/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md b/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md new file mode 100644 index 0000000000..4641133f19 --- /dev/null +++ b/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md @@ -0,0 +1,102 @@ +[#]: subject: "How to Fix: sudo Command Not Found Error" +[#]: via: "https://www.debugpoint.com/sudo-command-not-found/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Fix: sudo Command Not Found Error +====== + +**Here’s how you can fix the “sudo command not found” error in Debian, Ubuntu and other distros.** + +Sometimes, when you set up or install [Linux distributions][1] for the first time, you get the “sudo command not found” error while trying some commands with sudo. + +The sudo command is an abbreviation of “superuser do”, and it is a program which allows a user to execute a command with admin privileges. The sudo command helps you run programs/commands like an admin user. + +Also, the user, who is running the command with sudo must be a part of the sudo group. + +The primary reason you get this error is that the package itself is not installed. However, most modern Linux distribution provides this by default, but some don’t. + +Here are the steps you should follow to fix it. + +#### Troubleshooting#1 + +- First, install the sudo package to fix the problem. Open a terminal, refresh your system and run the following commands to install sudo. + +For Ubuntu, Debian and related distros: + +``` +su -apt updateapt install sudo +``` + +For Arch Linux: + +``` +pacman -S sudo +``` + +For Fedora, RHEL, etc: + +``` +su -dnf updatednf install sudo +``` + +- After the above installation is complete, you have to add the user to `sudo` group using the following command + +`usermod -aG sudo ` + +- Then run the `visudo` from the terminal and the following line. Press CTRL+O and CTRL+X to save & exit. + +![Updating the sudoers file using visudo][2] + +- Log off and log in again to reflect the change. + +#### Troubleshooting#2 + +After the above change, if you are still getting the error, then follow the below steps. + +Make sure your `$PATH` variable contains the proper path to the `sudo` executable. If the `sudo` is installed, but the `$PATH` is incorrect, you can also get this error. Ideally, your path should contain all the below paths. + +``` +echo $PATH +``` + +``` +/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin +``` + +To change the path variable, use the following command. For example, if the `/usr/bin` is not present, then you can add it via below + +``` +export PATH=$PATH:/usr/bin +``` + +Then log out and log in to see the effect. + +### Wrapping Up + +I hope this guide helps you to fix the sudo error in your Linux distros. The apparent solution is quite simple, really. + +Drop a note below if it helps/or if you have any questions. + +[Reference][3] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/sudo-command-not-found/ + +作者:[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/category/distributions +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Updating-the-sudoers-file-using-visudo.jpg +[3]: https://linux.die.net/man/8/sudo From 85c39b68184533cf4bf84c144a9b73afc5583aba Mon Sep 17 00:00:00 2001 From: Donkey Date: Sat, 12 Nov 2022 23:03:34 +0800 Subject: [PATCH 1982/3123] translated --- ... 4 open source editors I use for my writing.md | 56 ------------------- ... 4 open source editors I use for my writing.md | 56 +++++++++++++++++++ 2 files changed, 56 insertions(+), 56 deletions(-) delete mode 100644 sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md create mode 100644 translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md diff --git a/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md b/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md deleted file mode 100644 index d544839c70..0000000000 --- a/sources/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md +++ /dev/null @@ -1,56 +0,0 @@ -[#]: subject: "4 open source editors I use for my writing" -[#]: via: "https://opensource.com/article/22/10/open-source-editors" -[#]: author: "Alan Formy-Duval https://opensource.com/users/alanfdoss" -[#]: collector: "lkxed" -[#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -4 open source editors I use for my writing -====== - -I've done a lot of writing throughout my career, mostly as an IT consultant creating product documentation as client deliverables. These documents generally provide instructions on installing various operating systems and software products. - -Since 2018, I've contributed to opensource.com with articles about open source software. Of course, I use open source editors to write my pieces. Here are the four open source editors that I have used. - -### 1. Vi - -[Vi][1], also referred to as Vim, is the first open source editor that I learned. This was the editor taught by my computer science classes and that I used for all of my C programming. I have used it as my de facto command line editor since the mid-1990s. There are so many iterations of this tool that I could write a whole series on them. Suffice it to say that I stick to its basic command line form with minimal customization for my daily use. - -### 2. LibreOffice Writer - -Writer is part of the open source LibreOffice office suite. It is a full-featured word processor maintained by The Document Foundation. It supports industry-standard formats such as the Open Document Format (ODF), Open XML, and MS Office DOC, DOCX. [Learn more about Writer][2] on its official site. - -### 3. Ghostwriter - -Ghostwriter is a [text editor for Markdown][3]. It has a nice real-time viewer and syntax guide or cheat sheet feature. [Visit the official website][4] to discover more. - -### 4. Gedit - -Gedit is the basic graphical editor found in many Linux distributions and is described as "a small and lightweight text editor for the GNOME desktop." I have begun using it lately to create articles in the Asciidoc format. The benefit of using Asciidoc is that the syntax is easily manageable and importable into web rendering systems such as Drupal. [See the Gedit Wiki][5] for many tips and tricks. - -### Editing text - -An extensive list of editing software is available in the open source world. This list will likely grow as I continue writing. The primary goal for me is simplicity in formatting. I want my articles to be easy to import, convert, and publish in a web-focused platform. - -Your writing style, feature needs, and target audience will guide you in determining your preferred tools. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/open-source-editors - -作者:[Alan Formy-Duval][a] -选题:[lkxed][b] -译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/alanfdoss -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/20/12/vi-text-editor -[2]: https://www.libreoffice.org/discover/writer/ -[3]: https://opensource.com/article/21/10/markdown-editors -[4]: https://github.com/KDE/ghostwriter -[5]: https://wiki.gnome.org/Apps/Gedit diff --git a/translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md b/translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md new file mode 100644 index 0000000000..091ba343c8 --- /dev/null +++ b/translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md @@ -0,0 +1,56 @@ +[#]: subject: "4 open source editors I use for my writing" +[#]: via: "https://opensource.com/article/22/10/open-source-editors" +[#]: author: "Alan Formy-Duval https://opensource.com/users/alanfdoss" +[#]: collector: "lkxed" +[#]: translator: "Donkey-Hao" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我使用的 4 款开源编辑器 +====== + +在职业生涯中我已经写过很多东西,主要是作为一名 IT 顾问,将产品文档创建为客户可交付成果。这些文档通常针对不同操作系统和软件产品提供说明。 + +自 2018 年,我开始在 `www.opensource.com` 上发表关于开源软件的文章。当然,我使用开源软件进行协作。接下来我将介绍我使用过的四款开源编辑器。 + +### 1. Vi + +[Vi][1] 也被称为 `Vim`,是我学习的第一款开源编辑器。这是我在计算机科学课程中学习的编辑器,并且我所有的 C 语言编程都是通过它完成的。自 1995 年以来,实际上我一直使用它作为命令行编辑器。这款工具有多个迭代版本,以至于我都可以为之写一系列文章了。为了日常使用方便,仅进行了一点点的改动,可以说我一直用它的基本命令行形式。 + +### 2. LibreOffice Writer + +Writer 是 LibreOffice 开源办公套件的一部分。它是由文档基金会(Document Foundation)维护的全功能文字处理器。它支持行业标准格式,例如开放文档格式 (ODF)、Open XML 和 MS Office DOC、DOCX。可以在其官方网站上 [了解有关 Writer 的更多信息][2]。 + +### 3. Ghostwriter + +Ghostwriter 是用于 [Markdown 的文本编辑器][3]。它有一个很好的实时查看器和语法指南或备忘单功能。[访问官方网站][4] 了解更多内容。 + +### 4. Gedit + +Gedit 是许多 Linux 发行版中的基本图形编辑器,被描述为“用于 GNOME 桌面的小型轻量级文本编辑器”。我最近开始使用它来创建 Asciidoc 格式的文章。使用 Asciidoc 的好处是语法易于管理并可导入到 Drupal 等 Web 渲染系统中。通过 [Gedit Wiki][5] 了解许多提示和技巧。 + +### 编辑文本 + +开源世界中有大量编辑软件。随着我继续写作,这个列表可能会增加。我的主要目标是格式简单。我希望我的文章易于在互联网平台上导入、转换和发布。 + +你的写作风格、功能需求和目标受众将指导你确定首选工具。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/open-source-editors + +作者:[Alan Formy-Duval][a] +选题:[lkxed][b] +译者:[Donkey-Hao](https://github.com/Donkey-Hao) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/alanfdoss +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/12/vi-text-editor +[2]: https://www.libreoffice.org/discover/writer/ +[3]: https://opensource.com/article/21/10/markdown-editors +[4]: https://github.com/KDE/ghostwriter +[5]: https://wiki.gnome.org/Apps/Gedit From c2ce37ec378175e4d77bed867b9b6e5f34ba1311 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 13 Nov 2022 10:44:44 +0800 Subject: [PATCH 1983/3123] RP @FYJNEVERFOLLOWS https://linux.cn/article-15246-1.html --- ...files with this versatile Linux command.md | 101 +++++++++--------- 1 file changed, 53 insertions(+), 48 deletions(-) rename {translated/tech => published}/20210202 Convert audio files with this versatile Linux command.md (54%) diff --git a/translated/tech/20210202 Convert audio files with this versatile Linux command.md b/published/20210202 Convert audio files with this versatile Linux command.md similarity index 54% rename from translated/tech/20210202 Convert audio files with this versatile Linux command.md rename to published/20210202 Convert audio files with this versatile Linux command.md index fea685931d..5d4010c370 100644 --- a/translated/tech/20210202 Convert audio files with this versatile Linux command.md +++ b/published/20210202 Convert audio files with this versatile Linux command.md @@ -1,30 +1,34 @@ [#]: collector: (lujun9972) -[#]: translator: (FYJNEVERFOLLOWS ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: translator: (FYJNEVERFOLLOWS) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15246-1.html) [#]: subject: (Convert audio files with this versatile Linux command) [#]: via: (https://opensource.com/article/20/2/linux-sox) [#]: author: (Klaatu https://opensource.com/users/klaatu) 使用这个多功能的 Linux 命令转换音频文件 ====== -SoX Sound Exchange 甚至可以为您的音频文件添加特效。 -![HiFi vintage stereo][1] -我与媒体打交道,当你与任何一种媒体打交道时,你很快就会知道标准化是一种有价值的工具。就像你不会试图在不转换其中一个或另一个的情况下将分数加到小数中一样,我已经了解到组合不同格式的媒体并不是理想的。为了方便用户,大多数爱好者级应用程序使转换过程不可见。然而,对于那些需要控制媒体细节的用户的灵活软件,会通常让你自己提前将媒体转换为所需的格式。我有一些最喜欢的音频转换工具,其中之一就是号称“声音的瑞士军刀” —— [SoX][2]。 +> SoX Sound Exchange 甚至可以为你的音频文件添加特效。 + +![](https://img.linux.net.cn/data/attachment/album/202211/13/104314skttlizoioyeaw3w.jpg) + +我工作需要使用音视频媒体,不管你处理哪种媒体,你肯定知道标准化是一种有价值的工具。就像你不会试图把一个分数加到一个小数上而不转换其中一个一样,我已经知道,把不同格式的媒体组合起来并不理想。为了方便用户,大多数爱好者级应用程序使转换过程不可见。然而,对于那些需要控制媒体细节的用户的灵活软件,会通常让你自己提前将媒体转换为所需的格式。我有一些最喜欢的音频转换工具,其中之一就是号称“音频的瑞士军刀” —— [SoX][2]。 ### 安装 -在 Linux 或 BSD 上,可以从软件存储库或端口树中安装 **sox** 命令(和一些有用的符号链接)。 + +在 Linux 或 BSD 上,可以从软件存储库或 Ports 树中安装 `sox` 命令(,以及一些有用的符号链接)。 你也可以从 [Sourceforge.net][3] 上安装 SoX。它不经常发布,但它的代码库往往是稳定的,所以如果你想要最新的功能(如 Opus 支持),构建它是容易和安全的。 -SoX 主要提供了 **SoX** 命令,但是安装 SoX 也创建了一些有用的符号链接:**play**、**rec** 和 **soxi**。 +SoX 主要提供了 `sox` 命令,但是创建了一些有用的符号链接:`play`、`rec` 和 `soxi`。 -### 使用 SoX 获取有关文件的信息 -SoX 读取和重写音频数据。它是否存储重写的音频数据取决于你。在有些情况下,你不需要存储转换后的数据,例如,当你将输出直接发送到扬声器进行回放时。然而,在进行任何转换之前,最好首先确定要处理的是什么。 +### 使用 SoX 获取文件信息 -使用 **soxi** 命令也可以收集音频文件信息。**soxi** 会符号链接到 **soxi--info**。 +SoX 可以读取和重写音频数据。它是否存储重写的音频数据取决于你。在有些情况下,你不需要存储转换后的数据,例如,当你将输出直接发送到扬声器进行回放时。然而,在进行任何转换之前,最好首先确定要处理的是什么。 + +使用 `soxi` 命令也可以收集音频文件信息。`soxi` 会符号链接到 `soxi --info`。 ``` $ soxi countdown.mp3 @@ -38,26 +42,28 @@ Bit Rate(比特率)       : 128k Sample Encoding(编码格式): MPEG audio (layer I, II or III) ``` -这个输出可以让你很好地了解音频文件的编码方式、文件长度、文件大小、采样率和通道数。其中一些你可能*认为*你已经知道了,但当客户把媒体带到我面前时,我从不相信这些假设。使用 **soxi** 验证媒体属性。 +这个输出可以让你很好地了解音频文件的编码方式、文件长度、文件大小、采样率和通道数。其中一些你可能*认为*你已经知道了,但当客户把媒体带到我面前时,我从不相信这些假设。使用 `soxi` 验证媒体属性。 ### 转换文件 -在本例中,游戏节目的音频以 MP3 文件的形式展示倒计时。虽然几乎所有的编辑应用程序都接受压缩音频,但它们都没有真正编辑压缩数据。转换是在某个地方发生的,可能是一个秘密的后台任务,也可能是让你保存一份副本的提示。我通常喜欢自己提前完成转换。这样,我可以控制使用的格式。我可以在一夜之间批量制作大量的媒体,而不是浪费宝贵的制作时间,等待编辑应用程序按需浏览它们。 -**sox** 命令用于转换音频文件。在 **sox** 流程中有几个阶段: +在本例中,,一个游戏节目倒计时的音频是以MP3文件的形式提供的。虽然几乎所有的编辑应用程序都接受压缩音频,但它们并不是在压缩的数据上进行编辑。转换是在某个地方发生的,可能是一个秘密的后台任务,也可能提示让你保存一份副本。我通常喜欢自己提前完成转换。这样,我可以控制使用的格式。我可以在夜间批量处理大量的媒体,而不是浪费宝贵的制作时间,等待编辑应用程序按需处理它们。 + +`sox` 命令用于转换音频文件。在 `sox` 流程中有几个阶段: + * 输入 * 合并 * 特效 * 输出 -在命令语法中,特效步骤令人困惑地写到*最后一步*。这意味着 **sox** 流程是这样组成的: +但在命令语法中,特效步骤令人困惑地放到了*最后一步*。这意味着 `sox` 流程是这样组成的: ``` 输入 → 合并 → 输出 → 特效 ``` ### 编码 -最简单的转换命令只涉及一个输入文件和一个输出文件。下面是转换 MP3 文件为无损 FLAC 文件的命令: +最简单的转换命令只涉及一个输入文件和一个输出文件。下面是转换 MP3 文件为无损 FLAC 文件的命令: ``` $ sox countdown.mp3 output.flac @@ -75,44 +81,46 @@ Comment(注释)        : 'Comment=Processed by SoX' ``` #### 特效 -特效可以在命令末尾指定。它可以在将数据发送到最终目的地之前更改音频。例如,有时声音太大会在转换过程中造成问题: +特效可以在命令末尾指定。它可以在将数据发送到最终目的地之前更改音频。例如,有时声音太大会在转换过程中造成问题: ``` $ sox bad.wav bad.ogg sox WARN sox: `bad.ogg' output clipped 126 samples; decrease volume? ``` -应用**增益** (gain) 效果通常可以解决此问题: +应用**增益**(`gain`)效果通常可以解决此问题: ``` -`$ sox bad.wav bad.ogg gain -1` +$ sox bad.wav bad.ogg gain -1 ``` #### 淡入淡出 -另一个常用的效果是**淡入淡出**。此效果允许你定义淡入或淡出的形状,以及你希望淡入淡出效果持续的时间。 + +另一个常用的效果是**淡入淡出**(`fade`)。此效果允许你定义淡入或淡出的类型,以及你希望淡入淡出效果持续的时间。 下面是一个使用倒抛物线的 6 秒淡入示例: - ``` -`$ sox intro.ogg intro.flac fade p 6` +$ sox intro.ogg intro.flac fade p 6 ``` -这将对音频的头部应用 3 秒的淡入,并从 8 秒标记开始淡出(介绍音乐只有 11 秒,因此在这种情况下淡出也是3秒): +这将对音频的头部应用 3 秒的淡入,并从 8 秒标记开始淡出(这段音乐只有 11 秒,因此在这种情况下淡出也是 3 秒): ``` -`$ sox intro.ogg intro.flac fade p 3 8` +$ sox intro.ogg intro.flac fade p 3 8 ``` -**sox** 手册页中列出了不同类型的淡入淡出(正弦、线性、倒抛物线等)以及**淡入淡出提供的选项。 +`sox` 手册页中列出了不同类型的淡入淡出(正弦、线性、倒抛物线等)以及淡入淡出提供的选项。 #### 特效语法 -每个特效插件都有自己的语法,因此请参阅手册页了解如何调用每个特效插件的详细信息。要做到这一点,你需要一个图形声波编辑器或数字音频工作站,例如 [LMMS][4] 或 [Rosegarden][5]。但是,如果你只想应用一次特效,可以在同一命令中将它们一起列出。 -此命令应用 -1 的**增益**效果、1.35 的速度**拉伸**和**淡入淡出**: +每个特效插件都有自己的语法,因此请参阅手册页了解如何调用每个特效插件的详细信息。 +效果可以在一个命令中以菊花链的方式进行,至少在你想组合它们的范围内是如此。换句话说,没有语法可以只在六秒钟的淡出期间应用一个镶边效果。对于如此精确的东西,你需要一个图形声波编辑器或数字音频工作站,例如 [LMMS][4] 或 [Rosegarden][5]。但是,如果你只想应用一次特效,可以在同一命令中将它们一起列出。 + +此命令应用了一个 -1 的**增益**效果、1.35 的节奏**拉伸**和**淡出**: ``` $ sox intro.ogg output.flac gain -1 stretch 1.35 fade p 0 6 @@ -130,38 +138,36 @@ Comment(注释)        : 'Comment=Processed by SoX' ``` ### 组合音频 + SoX 还可以通过连接或混合音频文件来组合音频文件。 -要连接(或*拼接*)文件合并为一个文件,请在命令中提供多个输入文件: - +要连接(或者说*拼接*)文件合并为一个文件,请在命令中提供多个输入文件: ``` -`$ sox countdown.mp3 intro.ogg output.flac` +$ sox countdown.mp3 intro.ogg output.flac ``` -在本例中,**output.flac** 现在包含 **倒计时** 音频,紧接着是**简介** 音乐。 - -但是,如果你希望两首曲目同时播放,可以使用 **\--combine mix** 选项: +在本例中,`output.flac` 现在包含 `countdown.mp3` 音频,紧接着是 `intro.ogg` 音乐。 +但是,如果你希望两首曲目同时播放,可以使用 `--combine mix` 选项: ``` -`$ sox --combine mix countdown.mp3 intro.ogg output.flac` +$ sox --combine mix countdown.mp3 intro.ogg output.flac ``` -然而,想象一下,这两个输入文件的不同之处不仅仅在于它们的编解码器。声音用单声道(一个声道)录制并不少见,但音乐要用立体声(至少两个声道)来录制。SoX 不会给出默认的解决方案,因此你必须首先自己标准化这两个文件的格式。 +然而,想象一下,这两个输入文件的不同之处不仅仅在于它们的编解码器。人声音轨用单声道(一个声道)录制并不少见,但音乐至少要用立体声(至少两个声道)来录制。SoX 不会给出默认的解决方案,因此你必须首先自己标准化这两个文件的格式。 #### 更改音频文件 -选项只与后面列出的文件名相关。例如,此命令中的 **\--channels** 选项将*仅仅*应用于 **input.wav**,而*不被*应用于 **example.ogg** 和 **output.flac**: +选项与后面列出文件名有关。例如,此命令中的 `--channels` 选项将*仅仅*应用于 `input.wav`,而*不被*应用于 `example.ogg` 和 **output.flac**: ``` -`$ sox --channels 2 input.wav example.ogg output.flac` +$ sox --channels 2 input.wav example.ogg output.flac ``` -这意味着在 SoX 中,选项的位置非常重要。如果你在命令开始时指定一个选项,那么实际上只会覆盖 SoX 自己从输入文件中收集的内容。然而,在*输出文件*名 前的选项决定了 SoX 如何写入音频数据。 - -要解决以前的不兼容通道问题,你可以首先标准化输入,然后混合: +这意味着在 SoX 中,选项的位置非常重要。如果你在命令开始时指定一个选项,那么实际上只会覆盖 SoX 自己从输入文件中收集的内容。然而,在*输出文件*名前的选项决定了 SoX 如何写入音频数据。 +要解决前面的通道不兼容问题,你可以首先标准化输入,然后混合: ``` $ sox countdown.mp3 --channels 2 countdown-stereo.flac gain -1 @@ -178,17 +184,16 @@ Sample Encoding(编码格式): 16-bit FLAC Comment(注释)        : 'Comment=Processed by SoX' $ sox --combine mix \ -countdown-stereo.flac \ -intro.ogg \ -output.flac + countdown-stereo.flac \ + intro.ogg \ + output.flac ``` SoX 绝对需要多个命令来执行复杂的操作,因此根据需要创建几个临时和中间文件是正常的。 ### 多通道音频 -当然,并非所有音频都被限制在一个或两个声道。如果您想将多个音频通道组合成一个文件,可以使用 SoX 和 **\--combine merge** 选项: - +当然,并非所有音频都被限制在一个或两个声道。如果你想将多个音频通道组合成一个文件,可以使用 SoX 的 `--combine merge` 选项: ``` $ sox --combine merge countdown.mp3 intro.ogg output.flac @@ -201,7 +206,7 @@ Channels       : 3 ### 简单的音频操作 -在没有视觉界面的情况下操作音频似乎很奇怪,而且对于某些任务来说,SoX 绝对不是最好的工具。然而,对于许多任务,SoX 提供了一个简单而轻量级的工具包。SoX 是一个具有强大潜力的简单命令。有了它,你可以转换音频,操纵通道和波形,甚至生成自己的声音。本文仅简要概述了其功能,因此请阅读其手册页或[在线文档][2],然后看看你能创造什么。 +在没有视觉界面的情况下操作音频似乎很奇怪,而且对于某些任务来说,SoX 绝对不是最好的工具。然而,对于许多任务,SoX 提供了一个简单而轻量级的工具包。SoX 是一个具有强大潜力的简单命令。有了它,你可以转换音频,操纵通道和波形,甚至生成自己的声音。本文仅简要概述了其功能,因此请阅读其手册页或 [在线文档][2],然后看看你能创造什么。 -------------------------------------------------------------------------------- @@ -210,7 +215,7 @@ via: https://opensource.com/article/20/2/linux-sox 作者:[Klaatu][a] 选题:[lujun9972][b] 译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 87e4ca42d4045f672e4305542227dc798ca42387 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sun, 13 Nov 2022 11:19:06 +0800 Subject: [PATCH 1984/3123] translated --- ...rity properties on Linux using checksec.md | 438 ------------------ ...rity properties on Linux using checksec.md | 422 +++++++++++++++++ 2 files changed, 422 insertions(+), 438 deletions(-) delete mode 100644 sources/tech/20210607 Identify security properties on Linux using checksec.md create mode 100644 translated/tech/20210607 Identify security properties on Linux using checksec.md diff --git a/sources/tech/20210607 Identify security properties on Linux using checksec.md b/sources/tech/20210607 Identify security properties on Linux using checksec.md deleted file mode 100644 index e10996be18..0000000000 --- a/sources/tech/20210607 Identify security properties on Linux using checksec.md +++ /dev/null @@ -1,438 +0,0 @@ -[#]: subject: (Identify security properties on Linux using checksec) -[#]: via: (https://opensource.com/article/21/6/linux-checksec) -[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) -[#]: collector: (lujun9972) -[#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Identify security properties on Linux using checksec -====== -Learn how to use checksec to identify an executable's security -properties, understand what they mean, and know how to use them. -![Target practice][1] - -Compiling source code produces a binary. During compilation, you can provide flags to the compiler to enable or disable certain properties on the binary. Some of these properties are relevant to security. - -Checksec is a nifty little tool (and shell script) that, among other functions, identifies the security properties that were built into a binary when it was compiled. A compiler might enable some of these properties by default, and you might have to provide specific flags to enable others. - -This article explains how to use checksec to identify the security properties on a binary, including: - - 1. The underlying commands checksec uses to find information on the security properties - 2. How to enable security properties using the GNU Compiler Collection (GCC) when compiling a sample binary - - - -## Install checksec - -To install checksec on Fedora and other RPM-based systems, use: - - -``` -`$ sudo dnf install checksec` -``` - -For Debian-based distros, use the equivalent `apt` command. - -## The shell script - -Checksec is a single-file shell script, albeit a rather large one. An advantage is that you can read through the script quickly and understand all the system commands running to find information about binaries or executables: - - -``` -$ file /usr/bin/checksec -/usr/bin/checksec: Bourne-Again shell script, ASCII text executable, with very long lines - -$ wc -l /usr/bin/checksec -2111 /usr/bin/checksec -``` - -Take checksec for a drive with a binary you probably run daily: the ubiquitous `ls` command. The command's format is `checksec --file=` followed by the absolute path of the `ls` binary: - - -``` -$ checksec --file=/usr/bin/ls -RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable     FILE -Full RELRO      Canary found      NX enabled    PIE enabled     No RPATH   No RUNPATH   No Symbols        Yes   5       17              /usr/bin/ls -``` - -When you run this in a terminal, you see color-coding that shows what is good and what probably isn't. I say "probably" because even if something is in red, it doesn't necessarily mean things are horrible—it might just mean the distro vendors made some tradeoffs when compiling the binaries. - -The first line provides various security properties that are usually available for binaries, like `RELRO`, `STACK CANARY`, `NX`, and so on (I explain in detail below). The second line shows the status of these properties for the given binary (`ls`, in this case). For example, `NX enabled` means some property is enabled for this binary. - -## A sample binary - -For this tutorial, I'll use the following "hello world" program as the sample binary. - - -``` -#include <stdio.h> - -int main() -{ -        [printf][2]("Hello World\n"); -        return 0; -} -  -``` - -Note that I did not provide `gcc` with any additional flags during compilation: - - -``` -$ gcc hello.c -o hello -  -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped - -$ ./hello -Hello World -``` - -Run the binary through checksec. Some of the properties are different than with the `ls` command above (on your screen, these may be displayed in red): - - -``` -$ checksec --file=./hello -RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable     FILE -Partial RELRO   No canary found   NX enabled    No PIE          No RPATH   No RUNPATH   85) Symbols       No    0       0./hello -$ -``` - -## Changing the output format - -Checksec allows various output formats, which you can specify with `--output`. I'll choose the JSON format and pipe the output to the `jq` utility for pretty printing. - -To follow along, [ensure you have `jq` installed][3] because this tutorial uses this output format to quickly grep for specific properties from the output and report `yes` or `no` on each: - - -``` -$ checksec --file=./hello --output=json | jq -{ -  "./hello": { -    "relro": "partial", -    "canary": "no", -    "nx": "yes", -    "pie": "no", -    "rpath": "no", -    "runpath": "no", -    "symbols": "yes", -    "fortify_source": "no", -    "fortified": "0", -    "fortify-able": "0" -  } -} -``` - -## Walking through the security properties - -The binary above includes several security properties. I'll compare that binary against the `ls` binary above to examine what is enabled and explain how checksec found this information. - -### 1\. Symbols - -I'll start with the easy one first. During compilation, certain symbols are included in the binary, mostly for debugging. These symbols are required when you are developing software and require multiple cycles for debugging and fixing things. - -These symbols are usually stripped (removed) from the final binary before it's released for general use. This does not affect the binary's execution in any way; it will run just as it would with the symbols. Stripping is often done to save space, as the binary is somewhat lighter once the symbols have been stripped. In closed-source or proprietary software, symbols often are removed because having these symbols in a binary makes it somewhat easy to infer the software's inner workings. - -According to checksec, symbols are present in this binary, yet they were not in the `ls` binary. You can also find this information by running the `file` command on the program—you see `not stripped` in the output towards the end: - - -``` -$ checksec --file=/bin/ls --output=json | jq | grep symbols -    "symbols": "no", - -$ checksec --file=./hello --output=json | jq | grep symbols -    "symbols": "yes", - -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped -``` - -How did checksec find this information? Well, it provides a handy `--debug` option to show which functions ran. Therefore, running the following command should show you which functions ran within the shell script: - - -``` -`$ checksec --debug --file=./hello` -``` - -In this tutorial, I'm looking for the underlying commands used to find this information. Since it's a shell script, you can always utilize Bash features. This command will output every command that ran from within the shell script: - - -``` -`$ bash -x /usr/bin/checksec --file=./hello` -``` - -If you scroll through the output, you should see an `echo_message` followed by the security property's category. Here is what checksec reports about whether the binary contains symbols: - - -``` -\+ readelf -W --symbols ./hello -\+ grep -q '\\.symtab' -\+ echo_message '\033[31m96) Symbols\t\033[m  ' Symbols, ' symbols="yes"' '"symbols":"yes",' -``` - -To simplify this, checksec utilizes the `readelf` utility to read the binary and provides a special `--symbols` flag that lists all symbols within the binary. Then it greps for a special value, `.symtab`, that provides a count of entries (symbols) it finds. You can try out the following commands on the test binary you compiled above: - - -``` -$ readelf -W --symbols ./hello -$ readelf -W --symbols ./hello | grep -i symtab -``` - -## How to strip symbols - -You can strip symbols after compilation or during compilation. - - * **Post compilation:** After compilation, you can use the `strip` utility on the binary to remove the symbols. Confirm it worked using the `file` command, which now shows the output as `stripped`: [code] $ gcc hello.c -o hello -$ -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, not stripped -$ -$ strip hello -$ -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, stripped -$ -``` -## How to strip symbols during compilation - -Instead of stripping symbols manually after compilation, you can ask the compiler to do it for you by providing the `-s` argument: -``` - - -$ gcc -s hello.c -o hello -$ -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=247de82a8ad84e7d8f20751ce79ea9e0cf4bd263, for GNU/Linux 3.2.0, stripped -$ - -``` -After rerunning checksec, you can see that `symbols` are shown as `no`: -``` - - -$ checksec --file=./hello --output=json | jq | grep symbols -    "symbols": "no", -$ - -``` -### 2\. Canary - -Canaries are known values that are placed between a buffer and control data on the _stack_ to monitor buffer overflows. When an application executes, two kinds of memory are assigned to it.  One of them is a _stack_, which is simply a data structure with two operations: `push`, which puts data onto the stack, and `pop`, which removes data from the stack in reverse order. Malicious input could overflow or corrupt the stack with specially crafted input and cause the program to crash: -``` - - -$ checksec --file=/bin/ls --output=json | jq | grep canary -    "canary": "yes", -$ -$ checksec --file=./hello --output=json | jq | grep canary -    "canary": "no", -$ - -``` -How does checksec find out if the binary is enabled with a canary? Using the method above, you can narrow it down by running the following command within the shell script: -``` -`$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie'` -``` -#### Enable canary - -To protect against these cases, the compiler provides the `-stack-protector-all` flag, which adds extra code to the binary to check for such buffer overflows: -``` - - -$ gcc -fstack-protector-all hello.c -o hello - -$ checksec --file=./hello --output=json | jq | grep canary -    "canary": "yes", - -``` -Checksec shows that the property is now enabled. You can also verify this with: -``` - - -$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie' -     2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail@GLIBC_2.4 (3) -    83: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail@@GLIBC_2.4 -$ - -``` -### 3\. PIE - -PIE stands for position-independent executable. As the name suggests, it's code that is placed somewhere in memory for execution regardless of its absolute address: -``` - - -$ checksec --file=/bin/ls --output=json | jq | grep pie -    "pie": "yes", - -$ checksec --file=./hello --output=json | jq | grep pie -    "pie": "no", - -``` -Often, PIE is enabled only for libraries and not for standalone command-line programs. In the output below, `hello` is shown as `LSB executable`, whereas, the `libc` standard library (`.so`) file is marked `LSB shared object`: -``` - - -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped - -$ file /lib64/libc-2.32.so -/lib64/libc-2.32.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4a7fb374097fb927fb93d35ef98ba89262d0c4a4, for GNU/Linux 3.2.0, not stripped - -``` -Checksec tries to find this information with: -``` - - -$ readelf -W -h ./hello | grep EXEC -  Type:                              EXEC (Executable file) - -``` -If you try the same command on a shared library instead of `EXEC`, you will see a `DYN`: -``` - - -$ readelf -W -h /lib64/libc-2.32.so | grep DYN -  Type:                              DYN (Shared object file) - -``` -#### Enable PIE - -To enable PIE on a test program, send the following arguments to the compiler: -``` -`$ gcc -pie -fpie hello.c -o hello` -``` -You can verify PIE is enabled using checksec: -``` - - -$ checksec --file=./hello --output=json | jq | grep pie -    "pie": "yes", -$ - -``` -It should show as a PIE executable with the type changed from `EXEC` to `DYN`: -``` - - -$ file hello -hello: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb039adf2530d97e02f534a94f0f668cd540f940, for GNU/Linux 3.2.0, not stripped - -$ readelf -W -h ./hello | grep DYN -  Type:                              DYN (Shared object file) - -``` -### 4\. NX - -NX stands for "non-executable." It's often enabled at the CPU level, so an operating system with NX enabled can mark certain areas of memory as non-executable. Often, buffer-overflow exploits put code on the stack and then try to execute it. However, making this writable area non-executable can prevent such attacks. This property is enabled by default during regular compilation using `gcc`: -``` - - -$ checksec --file=/bin/ls --output=json | jq | grep nx -    "nx": "yes", - -$ checksec --file=./hello --output=json | jq | grep nx -    "nx": "yes", - -``` -Checksec determines this information with the command below. `RW` towards the end means the stack is readable and writable; since there is no `E`, it's not executable: -``` - - -$ readelf -W -l ./hello | grep GNU_STACK -  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x10 - -``` -#### Disable NX for demo purposes - -It's not recommended, but you can disable `NX` when compiling a program by using the `-z execstack` argument: -``` - - -$ gcc -z execstack hello.c -o hello - -$ checksec --file=./hello --output=json | jq | grep nx -    "nx": "no", - -``` -Upon compilation, the stack becomes executable (`RWE`), which allows malicious code to execute: -``` - - -$ readelf -W -l ./hello | grep GNU_STACK -  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10 - -``` -### 5\. RELRO - -RELRO stands for Relocation Read-Only. An Executable Linkable Format (ELF) binary uses a Global Offset Table (GOT) to resolve functions dynamically. When enabled, this security property makes the GOT within the binary read-only, which prevents some form of relocation attacks: -``` - - -$ checksec --file=/bin/ls --output=json | jq | grep relro -    "relro": "full", - -$ checksec --file=./hello --output=json | jq | grep relro -    "relro": "partial", - -``` -Checksec finds this information by using the command below. Here, one of the RELRO properties is enabled; therefore, the binary shows "partial" when verifying via checksec: -``` - - -$ readelf -W -l ./hello | grep GNU_RELRO -  GNU_RELRO      0x002e10 0x0000000000403e10 0x0000000000403e10 0x0001f0 0x0001f0 R   0x1 - -$ readelf -W -d ./hello | grep BIND_NOW - -``` -#### Enable full RELRO - -To enable full RELRO, use the following command-line arguments when compiling with `gcc`: -``` - - -$ gcc -Wl,-z,relro,-z,now hello.c -o hello - -$ checksec --file=./hello --output=json | jq | grep relro -    "relro": "full", - -``` -Now, the second property is also enabled, making the program full RELRO: -``` - - -$ readelf -W -l ./hello | grep GNU_RELRO -  GNU_RELRO      0x002dd0 0x0000000000403dd0 0x0000000000403dd0 0x000230 0x000230 R   0x1 - -$ readelf -W -d ./hello | grep BIND_NOW - 0x0000000000000018 (BIND_NOW)           - -``` -### 6\. Fortify - -Fortify is another security property, but it's out of scope for this article. I will leave learning how checksec verifies fortify in binaries and how it's enabled with `gcc` as an exercise for you to tackle. -``` - - -$ checksec --file=/bin/ls --output=json | jq  | grep -i forti -    "fortify_source": "yes", -    "fortified": "5", -    "fortify-able": "17" - -$ checksec --file=./hello --output=json | jq  | grep -i forti -    "fortify_source": "no", -    "fortified": "0", -    "fortify-able": "0" - -``` -## Other checksec features - -The topic of security is never-ending, and while it's not possible to cover everything here, I do want to mention a few more features of the `checksec` command that make it a pleasure to work with. - -### Run against multiple binaries - -You don't have to provide each binary to checksec individually. Instead, you can provide a directory path where multiple binaries reside, and checksec will verify all of them for you in one go: -``` -`$ checksec --dir=/usr diff --git a/translated/tech/20210607 Identify security properties on Linux using checksec.md b/translated/tech/20210607 Identify security properties on Linux using checksec.md new file mode 100644 index 0000000000..7d355380b7 --- /dev/null +++ b/translated/tech/20210607 Identify security properties on Linux using checksec.md @@ -0,0 +1,422 @@ +[#]: subject: (Identify security properties on Linux using checksec) +[#]: via: (https://opensource.com/article/21/6/linux-checksec) +[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) +[#]: collector: (lujun9972) +[#]: translator: (chai001125) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +在 Linux 上使用 Checksec 识别二进制文件的安全属性 +====== + +>这篇文章能让你了解如何使用 Checksec ,来识别一个可执行文件的安全属性,了解安全属性的含义,并知道如何使用它们。 + +![Target practice][1] + + +编译源代码会生成一个二进制文件(即 .o 文件)。在编译期间,你可以向 `gcc` 编译器提供 标志 flags ,以启用或禁用二进制文件的某些属性,这些属性与安全性相关。 + +Checksec 是一个漂亮的小工具,同时它也是一个 shell 脚本。Checksec 可以识别编译时构建到二进制文件中的安全属性。编译器可能会默认启用一些安全属性,你也可以提供特定的标志,来启用其他的安全属性。 + +本文将介绍如何使用 Checksec ,来识别二进制文件的安全属性,包括: + + 1. Checksec 在查找有关安全属性的信息时,使用了什么**底层的命令** + 2. 在将源代码编译成二进制文件时,如何使用 GNU 编译器套件 GNU Compiler Collection (即 GCC) ,来**启用安全属性**。 + +## 安装 checksec + +要在 Fedora 和其他基于 RPM 的 Linux 系统上,安装 Checksec,请使用以下命令: + +``` +$ sudo dnf install checksec +``` + +对于基于 Debian 的 Linux 发行版,使用对应的 `apt` 命令,来安装 Checksec。 + +``` +$ sudo apt install checksec +``` + +## shell 脚本 + +在安装完 Checksec 后,能够发现 Checksec 是一个**单文件**的 shell 脚本,它位于 `/usr/bin/checksec`,并且这个文件挺大的。Checksec 的一个优点是你可以通过快速通读这个 shell 脚本,从而了解 Checksec 的执行原理、明白所有能查找有关二进制文件或可执行文件的安全属性的**系统命令**: + +``` +$ file /usr/bin/checksec +/usr/bin/checksec: Bourne-Again shell script, ASCII text executable, with very long lines + +$ wc -l /usr/bin/checksec +2111 /usr/bin/checksec +``` + +以下的命令展示了如何对你每天都会使用的:`ls` 命令的二进制文件,进行 Checksec。Checksec 命令的格式是:`checksec --file=`,后面再跟上二进制文件的绝对路径: + +``` +$ checksec --file=/usr/bin/ls +RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable     FILE +Full RELRO      Canary found      NX enabled    PIE enabled     No RPATH   No RUNPATH   No Symbols        Yes   5       17              /usr/bin/ls +``` + +当你在终端中对某个二进制文件运行 Checksec 时,你会看到安全属性有颜色上的区分,显示什么是好的安全属性(绿色),什么可能不是好的安全属性(红色)。我在这里说 **“可能”** 是因为即使有些安全属性是红色的,也不一定意味着这个二进制文件很糟糕,它可能只是表明发行版供应商在编译二进制文件时做了一些权衡,从而舍弃了部分安全属性。 + +Checksec 输出的第一行提供了二进制文件的各种安全属性,例如 `RELRO`、`STACK CANARY`、`NX` 等(我将在后文进行详细解释)。第二行打印出给定二进制文件(本例中为 `ls`)在这些安全属性的状态(例如,`NX enabled` 表示为堆栈中的数据没有执行权限)。 + +## 示例二进制文件 + +在本文中,我将使用以下的“hello world”程序作为示例二进制文件。 + +``` +#include <stdio.h> + +int main() +{ +        [printf][2]("Hello World\n"); +        return 0; +} +  +``` + +请注意,在编译源文件 `hello.c` 的时候,我没有给 `gcc` 提供任何额外的标志: + +``` +$ gcc hello.c -o hello +  +$ file hello +hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped + +$ ./hello +Hello World +``` + +使用 Checksec 运行二进制文件 `hello`,打印的某些安全属性的状态,与上面的 `ls` 二进制文件的结果不同(在你的屏幕上,某些属性可能显示为红色): + +``` +$ checksec --file=./hello +RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable     FILE +Partial RELRO   No canary found   NX enabled    No PIE          No RPATH   No RUNPATH   85) Symbols       No    0       0./hello +$ +``` +LCTT 译注:在我的 Ubuntu 22.04 虚拟机,使用 11.3.0 版本的 gcc,结果与上述不太相同,利用默认参数进行编译,会得到 RELRO、PIE、NX 保护是全开的情况。 + +## 更改 Checksec 的输出格式 + +Checksec 允许自定义各种输出格式,你可以使用 `--output` 来自定义输出格式。我将选择的输出格式是 JSON 格式,并将输出结果通过管道传输到 `jq` 实用程序,来得到漂亮的打印。 + +接下来,确保你已安装好了 [`jq`][3],因为本教程会使用 `jq`,从 Checksec 的输出结果中,用 `grep` 来快速得到某一特定的安全属性状态,并报告该安全属性是否启动(启动为 `yes`,未启动为 `no`): + +``` +$ checksec --file=./hello --output=json | jq +{ +  "hello": { +    "relro": "partial", +    "canary": "no", +    "nx": "yes", +    "pie": "no", +    "rpath": "no", +    "runpath": "no", +    "symbols": "yes", +    "fortify_source": "no", +    "fortified": "0", +    "fortify-able": "0" +  } +} +``` + +## 看一看所有的安全属性 + +上面的二进制文件 `hello` 包括几个安全属性。我将该二进制文件与 `ls` 的二进制文件进行比较,以检查启用的安全属性有何不同,并解释 Checksec 是如何找到此信息。 + +### 1\. 符号(Symbol) + +我先从简单的讲起。在编译期间,某些 符号 symbols 包含在二进制文件中,这些符号主要用作于调试。开发软件时,需要用到这些符号,来调试和修复 bug。 + +这些符号通常会从供用户普遍使用的最终二进制文件中删除。删除这些符号不会影响到二进制文件的执行。删除符号通常是为了节省空间,因为一旦符号被删除了,二进制文件就会稍微小一些。在闭源或专有软件中,符号通常都会被删除,因为把这些符号放在二进制文件中,可以很容易地推断出软件的内部工作原理。 + +根据 Checksec 的结果,在二进制文件 `hello` 中有符号,但在 `ls` 的二进制文件中不会有符号。同样地,你还可以用 `file` 命令,来找到符号的信息,在二进制文件 `hello` 的输出结果的最后,看到 `not stripped`,表明二进制文件 `hello` 有符号: + +``` +$ checksec --file=/bin/ls --output=json | jq | grep symbols +    "symbols": "no", + +$ checksec --file=./hello --output=json | jq | grep symbols +    "symbols": "yes", + +$ file hello +hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped +``` + +Checksec 是如何找到符号的信息呢?Checksec 提供了一个方便的 `--debug` 选项,来显示运行了哪些函数。因此,运行以下的命令,会显示在 shell 脚本中运行了哪些函数: + +``` +$ checksec --debug --file=./hello +``` + +在本教程中,我试图寻找 Checksec 查找安全属性信息时,使用了什么**底层命令**。由于 Checksec 是一个 shell 脚本,因此你始终可以使用 Bash 功能。以下的命令将输出从 shell 脚本中运行的每个命令: + +``` +$ bash -x /usr/bin/checksec --file=./hello +``` + +如果你滚动浏览上述的输出结果的话,你会看到 `echo_message` 后面有各个安全属性的类别。以下显示了 Checksec 检测二进制文件是否包含符号时,运行的底层命令: + +``` +\+ readelf -W --symbols ./hello +\+ grep -q '\\.symtab' +\+ echo_message '\033[31m96) Symbols\t\033[m  ' Symbols, ' symbols="yes"' '"symbols":"yes",' +``` + +上面的输出显示,Checksec 利用 `readelf`,来读取二进制文件,并提供一个特殊 `--symbols` 标志,来列出二进制文件中的所有符号。然后它会查找一个特殊值:`.symtab`,它提供了所能找到的条目的计数(即符号的个数)。你可以在上面编译的测试二进制文件 `hello` 上,尝试以下命令,得到与 Checksec 查看二进制文件类似的符号信息: + +``` +$ readelf -W --symbols ./hello +$ readelf -W --symbols ./hello | grep -i symtab +``` +LCTT 译注:也可以通过直接查看 `/usr/bin/checksec` 下的 Checksec 源文件。 + +## 如何删除符号 + +你可以在编译后或编译时删除符号。 + + * **编译后:** 在编译后,你可以使用 `strip`,手动地来删除二进制文件的符号。删除后,使用 `file` 命令,来检验是否还有符号,现在显示 `stripped`,表明二进制文件 `hello` 无符号了: + + ``` + $ gcc hello.c -o hello + $ + $ file hello + hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, not stripped + $ + $ strip hello + $ + $ file hello + hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, stripped + $ + ``` + +## 如何在编译时删除符号 + +你也可以在编译时,用 `-s` 参数让 gcc 编译器帮你自动地删除符号: + +``` +$ gcc -s hello.c -o hello +$ +$ file hello +hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=247de82a8ad84e7d8f20751ce79ea9e0cf4bd263, for GNU/Linux 3.2.0, stripped +$ +``` + +重新运行 Checksec,你可以看到现在二进制文件 `hello` 的 `symbols` 这一属性的值是`no`: + +``` +$ checksec --file=./hello --output=json | jq | grep symbols +    "symbols": "no", +$ +``` + +### 2\. Canary(堆栈溢出哨兵) + +Canary 是放置在缓冲区和_栈_ stack 上的控制数据之间的已知值,它用于监视缓冲区是否溢出。当应用程序执行时,会为其分配两种内存,其中之一就是 _栈_。栈是一个具有两个操作的数据结构:第一个操作 `push`,将数据压入堆栈;第二个操作 `pop`,以后进先出的顺序从栈中弹出数据。恶意的输入可能会导致栈溢出,或使用特制的输入破坏栈,并导致程序崩溃: + +``` +$ checksec --file=/bin/ls --output=json | jq | grep canary +    "canary": "yes", +$ +$ checksec --file=./hello --output=json | jq | grep canary +    "canary": "no", +$ +``` + +Checksec 是如何确定二进制文件是否启用了 Canary 的呢?使用上述同样的方法,得到 Checksec 在检测二进制文件是否启用 Canary 时,运行的底层命令: + +``` +$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie' +``` + +#### 启用 Canary + +为了防止栈溢出等情况,编译器提供了 `-stack-protector-all` 标志,它向二进制文件添加了额外的代码,来检查缓冲区是否溢出: + +``` +$ gcc -fstack-protector-all hello.c -o hello + +$ checksec --file=./hello --output=json | jq | grep canary +    "canary": "yes", +``` + +Checksec 显示 Canary 属性现已启用。你还可以通过以下方式,来验证这一点: + +``` +$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie' +     2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail@GLIBC_2.4 (3) +    83: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail@@GLIBC_2.4 +$ +``` + +### 3\. 位置无关可执行文件(PIE) + +PIE(Position-Independent Executable)的意思是与位置无关的可执行文件。顾名思义,它指的是放置在内存中某处执行的代码,不管其绝对地址的位置,即代码段、数据段地址随机化(ASLR): + +``` +$ checksec --file=/bin/ls --output=json | jq | grep pie +    "pie": "yes", + +$ checksec --file=./hello --output=json | jq | grep pie +    "pie": "no", +``` + +通常,PIE 仅对 libraries 启用,并不对独立命令行程序启用 PIE。在下面的输出中,`hello` 显示为 `LSB executable`,而 `libc` 标准库 (`.so`) 文件被标记为 `LSB shared object`: + +``` +$ file hello +hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped + +$ file /lib64/libc-2.32.so +/lib64/libc-2.32.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4a7fb374097fb927fb93d35ef98ba89262d0c4a4, for GNU/Linux 3.2.0, not stripped +``` + +Checksec 查找是否启用 PIE 的底层命令如下: + +``` +$ readelf -W -h ./hello | grep EXEC +  Type:                              EXEC (Executable file) +``` + +如果你在共享库上尝试相同的命令,你将看到 `DYN`,而不是`EXEC`: + +``` +$ readelf -W -h /lib64/libc-2.32.so | grep DYN +  Type:                              DYN (Shared object file) +``` + +#### 启用 PIE + +要在测试程序 `hello.c` 上启用 PIE,请在编译时,使用以下命令: + +``` +$ gcc -pie -fpie hello.c -o hello` +``` + +你可以使用 Checksec,来验证 PIE 是否已启用: + +``` +$ checksec --file=./hello --output=json | jq | grep pie +    "pie": "yes", +$ +``` + +现在,应该会显示为 PIE 可执行 pie executable ,其类型从 `EXEC` 更改为 `DYN`: + +``` +$ file hello +hello: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb039adf2530d97e02f534a94f0f668cd540f940, for GNU/Linux 3.2.0, not stripped + +$ readelf -W -h ./hello | grep DYN +  Type:                              DYN (Shared object file) +``` + +### 4\. NX(堆栈禁止执行) + +NX 代表 不可执行 non-executable 。它通常在 CPU 层面上启用,因此启用 NX 的操作系统可以将某些内存区域标记为不可执行。通常,缓冲区溢出漏洞将恶意代码放在堆栈上,然后尝试执行它。但是,让堆栈这些可写区域变得不可执行,可以防止这种攻击。在使用 `gcc` 对源程序进行编译时,默认启用此安全属性: + +``` +$ checksec --file=/bin/ls --output=json | jq | grep nx +    "nx": "yes", + +$ checksec --file=./hello --output=json | jq | grep nx +    "nx": "yes", +``` + +Checksec 使用以下底层命令,来确定是否启用了 NX。在尾部的 `RW` 表示堆栈是可读可写的;因为没有 `E`,所以堆栈是不可执行的: + +``` +$ readelf -W -l ./hello | grep GNU_STACK +  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x10 +``` + +#### 演示如何禁用 NX + +我们不建议禁用 NX,但你可以在编译程序时,使用 `-z execstack` 参数,来禁用 NX: + +``` +$ gcc -z execstack hello.c -o hello + +$ checksec --file=./hello --output=json | jq | grep nx +    "nx": "no", +``` + +编译后,堆栈会变为可读可写可执行(`RWE`),允许在堆栈上的恶意代码执行: + +``` +$ readelf -W -l ./hello | grep GNU_STACK +  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10 +``` + +### 5\. RELRO(GOT写保护) + +RELRO 代表 重定位只读 Relocation Read-Only 。可执行链接格式 (ELF) 二进制文件使用全局偏移表(GOT),来动态地解析函数。启用 RELRO 后,会设置二进制文件中的 GOT 表为只读,从而防止重定位攻击: + +``` +$ checksec --file=/bin/ls --output=json | jq | grep relro +    "relro": "full", + +$ checksec --file=./hello --output=json | jq | grep relro +    "relro": "partial", +``` + +Checksec 使用以下底层命令,来查找是否启用 RELRO。在二进制文件 `hello` 仅启用了 RELRO 属性中的一个属性,因此,在 Checksec 验证时,显示“partial”: + +``` +$ readelf -W -l ./hello | grep GNU_RELRO +  GNU_RELRO      0x002e10 0x0000000000403e10 0x0000000000403e10 0x0001f0 0x0001f0 R   0x1 + +$ readelf -W -d ./hello | grep BIND_NOW +``` + +#### 启用 full RELRO + +要启用 full RELRO,请在 `gcc` 编译时,使用以下命令行参数: + +``` +$ gcc -Wl,-z,relro,-z,now hello.c -o hello + +$ checksec --file=./hello --output=json | jq | grep relro +    "relro": "full", +``` + +现在, RELRO 中的第二个属性也被启用,使程序变成 full RELRO: + +``` +$ readelf -W -l ./hello | grep GNU_RELRO +  GNU_RELRO      0x002dd0 0x0000000000403dd0 0x0000000000403dd0 0x000230 0x000230 R   0x1 + +$ readelf -W -d ./hello | grep BIND_NOW + 0x0000000000000018 (BIND_NOW)       +``` + +### 6\. Fortify + +Fortify 是另一个安全属性,但它超出了本文的范围。Checksec 是如何在二进制文件中验证 Fortify,以及如何在 `gcc` 编译时启用 Fortify,作为你需要解决的课后练习。 + +``` +$ checksec --file=/bin/ls --output=json | jq  | grep -i forti +    "fortify_source": "yes", +    "fortified": "5", +    "fortify-able": "17" + +$ checksec --file=./hello --output=json | jq  | grep -i forti +    "fortify_source": "no", +    "fortified": "0", +    "fortify-able": "0" +``` + +## 其他的 Checksec 功能 + +关于安全性的话题是永无止境的,不可能在本文涵盖所有关于安全性的内容,但我还想提一下 Checksec 命令的一些其他功能,这些功能也很好用。 + +### 针对多个二进制文件运行 + +你不必对每个二进制文件都进行一次 Checksec。相反,你可以提供多个二进制文件所在的目录路径,Checksec 将一次性为你验证所有文件: + +``` +$ checksec --dir=/usr +``` From 6a03e9658681d4c5627bd8d4d045e810ef2c0ef3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 13 Nov 2022 11:27:13 +0800 Subject: [PATCH 1985/3123] RP @geekpi https://linux.cn/article-15247-1.html --- ...o Remove Firefox Snap from Ubuntu (21.10 +).md | 138 ++++++++++++++++++ ...o Remove Firefox Snap from Ubuntu (21.10 +).md | 131 ----------------- 2 files changed, 138 insertions(+), 131 deletions(-) create mode 100644 published/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md delete mode 100644 translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md diff --git a/published/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/published/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md new file mode 100644 index 0000000000..9d673255d5 --- /dev/null +++ b/published/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md @@ -0,0 +1,138 @@ +[#]: subject: "How to Remove Firefox Snap from Ubuntu (21.10 +)" +[#]: via: "https://www.debugpoint.com/remove-firefox-snap-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15247-1.html" + +如何从 Ubuntu 21.10 及以后版本中删除 Firefox Snap +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/13/112531vis11sa2z1jbs215.jpg) + +> Ubuntu 21.10 “Impish Indri” 及之后的版本将 Firefox Snap 设为默认浏览器。如果你不喜欢 Snap,可以通过以下方式将其删除并使用库存版本。 + +关于 Snap 是否是 APT 的更好替代品,一直存在争议。而许多用户更喜欢 Snap 系统,也有一些人非常讨厌它。Ubuntu 和 Canonical 认为它是 Linux 的最佳安装仓库和包管理工具之一。 Snap 被讨厌的主要原因是它的启动很慢。然而,这个论点是另一篇文章的内容。 + +### 从 Ubuntu 中删除 Firefox Snap 版本 + +所以,如果你还没有 [听说过这件事][1],Ubuntu 21.10(和所有后续版本)默认提供 Firefox Snap 包。因此,当你从 Ubuntu 21.10 开始安装时,默认的左侧停靠区的快捷方式是 Firefox 的 Snap 版本。你可以使用以下各种方法对其进行验证。 + +![snap 列表 - Firefox][2] + +![Firefox snap 桌面快捷方式][3] + +如果你因为 [性能][4] 和存储问题而不喜欢 Snap,可以通过以下命令将其删除。 + +如果已经打开,那么关闭所有 Firefox 实例。 + +打开一个终端。然后运行以下命令: + +``` +sudo snap remove firefox +``` + +等待命令完成。这将从你的系统中删除它的 Snap 可执行文件,并断开 Firefox 与各种系统服务的连接。但是主目录下的 Snap 目录仍然存在。你可以使用以下命令手动删除它: + +``` +cd ~/snap +rm -r firefox +``` + +### 安装 Firefox 替代方法 + +现在,当你删除了 Firefox,你可以通过以下方式来使用此浏览器。 + +#### 方法 1 – 使用 PPA(推荐) + +在使用此方法之前,请确保如上删除了 Firefox 的 Snap 版本。 + +有一个 [官方 Firefox PPA][5],由其开发团队维护。你可以将此 PPA 添加到你的软件源中,并使用它来安装最新的 Firefox。 + +确保使用文本编辑器创建一个首选项文件,以阻止 Ubuntu 在运行 `apt update` 命令时获取 Firefox 的 Snap 版本: + +``` +sudo gedit /etc/apt/preferences.d/firefox-no-snap +``` + +将以下行添加到上面的文件并保存: + +``` +Package: firefox* +Pin: release o=Ubuntu* +Pin-Priority: -1 +``` + +依次使用以下命令。第一个命令将其从你的系统中完全清除它: + +``` +sudo apt purge firefox +sudo add-apt-repository ppa:mozillateam/firefox +sudo apt-get update +sudo apt install firefox +``` + +安装完成后,请确保使用以下命令启用自动升级: + +``` +echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox +``` + +重启系统(可选)并使用 deb 版本的 Firefox。 + +#### 方法 2 – 使用 Firefox 的压缩可执行文件 + +你可以从官方网站(链接如下)下载适用于 Ubuntu 和其他 Linux 的 Firefox 可执行文件压缩包。然后解压并双击运行 Firefox 可执行文件。这是最安全的方法。如果你使用此方法,你仍然可以获得更新。 + +> **[下载 Firefox][6]** + +![下载 Firefox 并解压][7] + +![然后运行可执行文件][8] + +#### 方法 3 – 使用 Flatpak 版本的 Firefox + +你也可以使用 [Flatpak 版本的 Firefox][9],这在 [Ubuntu 中设置 Flatpak][10] 后可用。然后你可以运行以下命令进行安装: + +``` +flatpak install flathub org.mozilla.firefox +``` + +#### 方法 4 – 使用与系统耦合更少的 Snap 版本 Firefox + +如果你认为你仍然可以继续使用 Snap 版本,但希望在系统中减少沙盒化,那么你可能需要使用以下命令和 [classic 开关][11] 重新安装 Firefox: + +``` +sudo snap install firefox --classic +``` + +### 结束语 + +因此,这是从 Ubuntu 21.10 开始删除 firefox Snap 版本的步骤,以及一些替代方案。我很想知道 Linux Mint 采取了什么措施,因为他们不支持 Snap。此外,这些发行版依赖于 Firefox 的 Ubuntu 上游仓库,看看它们会做什么很有趣。Debian 维护自己的仓库,但主要是 ESR 版本。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1943840 +[2]: https://www.debugpoint.com/wp-content/uploads/2021/09/snap-list-Firefox.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Firefox-snap-desktop-shortcut-1024x490.jpg +[4]: https://www.debugpoint.com/2021/03/clean-up-snap/ +[5]: https://launchpad.net/~mozillateam/+archive/ubuntu/ppa +[6]: https://www.mozilla.org/en-US/firefox/new/ +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Download-Firefox-and-Extract.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/09/And-then-run-the-executable.jpg +[9]: https://flathub.org/apps/details/org.mozilla.firefox +[10]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ +[11]: https://snapcraft.io/docs/snap-confinement diff --git a/translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md deleted file mode 100644 index 9956e89083..0000000000 --- a/translated/tech/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md +++ /dev/null @@ -1,131 +0,0 @@ -[#]: subject: "How to Remove Firefox Snap from Ubuntu (21.10 +)" -[#]: via: "https://www.debugpoint.com/remove-firefox-snap-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何从 Ubuntu (21.10 +) 中删除 Firefox Snap -====== - -**Ubuntu 21.10 Impish Indri 及之后的版本将 Firefox Snap 设为默认浏览器。如果你不喜欢 Snap,可以通过以下方式将其删除并使用库存版本。** - -关于 Snap 是否是 apt 的更好替代品,一直存在争议。而许多用户更喜欢它的系统,也有一些人非常讨厌 snap。 Ubuntu 和 Canonical 认为它是 Linux 的最佳安装仓库和包管理工具之一。 Snap 被讨厌的主要原因是它的启动很慢。然而,这个论点是另一篇文章的内容。 - -### 从 Ubuntu 中删除 Firefox Snap 版本 - -所以,如果你还没有[听说过这个故事][1],Ubuntu 21.10(和所有后续版本)默认提供 Firefox Snap 包。因此,当你从 Ubuntu 21.10 开始安装时,默认的 left-dock 快捷方式是 Firefox 的 snap 版本。你可以使用以下各种方法对其进行验证。 - -![snap 列表 - Firefox][2] - -![Firefox snap 桌面快捷方式][3] - -如果你因为[性能][4]和存储问题而不喜欢 Snap,可以通过以下命令将其删除。 - -- 如果打开,那么关闭所有 Firefox 实例。 - -- 打开一个终端。然后运行以下命令。 - -``` -sudo snap remove firefox -``` - -- 等待命令完成。这将从你的系统中删除 snap 可执行文件,并断开 Firefox 与各种系统服务的连接。但是主 snap 目录仍然存在。你可以使用以下命令手动删除它。 - -``` -cd ~/snaprm -r firefox -``` - -### 安装 Firefox 替代方法 - -现在,当你删除 Firefox 时,你可以通过以下选项来使用此浏览器。 - -#### 方法 1 – 使用 PPA(推荐) - -- 在使用此方法之前,请确保如上删除了 Firefox 的 snap 版本。 -- 有一个[官方 Firefox PPA][5],由其开发团队维护。你可以将此 PPA 添加到你的软件源中,并使用它来安装最新的 Firefox。 -- 确保使用文本编辑器创建一个首选项文件,以阻止 Ubuntu 在运行 apt update 命令时获取 Firefox 的 snap 版本。 - -``` -sudo gedit /etc/apt/preferences.d/firefox-no-snap -``` - -- 将以下行添加到上面的文件并保存。 - -``` -Package: firefox*Pin: release o=Ubuntu*Pin-Priority: -1 -``` - -- 依次使用以下命令。第一个命令将其从你的系统中完全删除。 - -``` -sudo apt purge firefox -sudo add-apt-repository ppa:mozillateam/firefox -sudo apt-get update -sudo apt install firefox -``` - -- 安装完成后,请确保使用以下命令启用自动升级。 - -``` -echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox -``` - -- 重启系统(可选)并享受 deb 版本的 Firefox。 - -#### 方法 2 – 使用 Firefox 的压缩可执行文件 - -- 你可以从官方网站(下面的链接)下载适用于 Ubuntu 和其他 Linux 的压缩 Firefox 可执行文件。然后解压并双击运行 firefox 可执行文件。这是最安全的方法。如果你使用此方法,你仍然可以获得更新。 - -[下载 Firefox][6] - -![下载 Firefox 并解压][7] - -![然后运行可执行文件][8] - -#### 方法 3 – 使用 Flatpak 版本的 Firefox - -- 你也可以使用 [Flatpak 版本的 Firefox][9],这在 [Ubuntu 中设置 Flatpak][10] 后可用。然后你可以运行以下命令进行安装。 - -``` -flatpak install flathub org.mozilla.firefox -``` - -#### 方法 4 – 使用与系统耦合更少的 Snap 版本 Firefox - -- 如果你认为你仍然可以继续使用 Snap 版本但希望在系统中减少沙盒,那么你可能需要使用以下命令和 [classic 开关][11]重新安装 Firefox。 - -``` -sudo snap install firefox --classic -``` - -### 结束语 - -因此,这是从 Ubuntu 21.10 开始删除 firefox snap 版本的步骤。以及一些替代品。我很想知道 Linux Mint 采取了什么措施,因为他们与 Snap 不兼容。。此外,这些发行版依赖于 Firefox 的 Ubuntu 上游仓库,看看它们会做什么很有趣。 Debian 维护自己的仓库,但主要是 ESR 版本。 - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/remove-firefox-snap-ubuntu/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1943840 -[2]: https://www.debugpoint.com/wp-content/uploads/2021/09/snap-list-Firefox.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Firefox-snap-desktop-shortcut-1024x490.jpg -[4]: https://www.debugpoint.com/2021/03/clean-up-snap/ -[5]: https://launchpad.net/~mozillateam/+archive/ubuntu/ppa -[6]: https://www.mozilla.org/en-US/firefox/new/ -[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Download-Firefox-and-Extract.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/09/And-then-run-the-executable.jpg -[9]: https://flathub.org/apps/details/org.mozilla.firefox -[10]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/ -[11]: https://snapcraft.io/docs/snap-confinement From c5313884c60b445545840237f0435f6ce6893d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:11:39 +0800 Subject: [PATCH 1986/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221110.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Fix=20b?= =?UTF-8?q?ash=20wget=20Command=20Not=20Found=20Error.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow to Fix bash wget Command Not Found Error.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md diff --git a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md new file mode 100644 index 0000000000..dd8e9bb4e8 --- /dev/null +++ b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md @@ -0,0 +1,98 @@ +[#]: subject: "How to Fix: bash wget Command Not Found Error" +[#]: via: "https://www.debugpoint.com/wget-not-found-error/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Fix: bash wget Command Not Found Error +====== + +**Here’s how you can fix the “bash: wget command not found” error in Debian, Ubuntu and other distros.** + +The famous wget utility is used to download any files from a URL via a terminal. It’s one of the most popular and fastest utilities for Linux terminals. + +Being a GNU utility, wget brings some fantastic features to the table. You can implement any project, such as extracting information from the web, downloading files, pausing/resuming, etc. + +However, many [Linux distros][1] do not come with this utility with default installation. So, when you want to download some files using wget, you get the wget command not found error. + +Fixing it is really easy. + +### Fixing wget command not found + +All you need to do is open a terminal prompt and run the following command to install wget. + +For Ubuntu, Linux Mint, elementaryOS, Debian and related distros: + +``` +sudo apt install wget +``` + +Arch Linux: + +``` +pacman -S wget +``` + +For Fedora (although it includes by default): + +``` +sudo dnf install wget +``` + +After installation, you can use the wget program. You can also verify whether it’s installed correctly by checking its version. + +``` +wget --version +``` + +### How to use wget + +Here are some examples of how you can use the wget program. + +The syntax of the command is below: + +``` +wget [OPTION]… [URL]… +``` + +For example, if I want to download an Ubuntu ISO file, then I can run the following command to download with the direct URL. + +``` +wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso +``` + +![Sample example of how to use wget][2] + +Similarly, you can also download using the above command or, by combining several switches as described below. You can also get this via `wget --help` command. + +``` +-t, --tries=NUMBER set number of retries to NUMBER (0 unlimits)--retry-connrefused retry even if connection is refused--retry-on-http-error=ERRORS comma-separated list of HTTP errors to retry-O, --output-document=FILE write documents to FILE-nc, --no-clobber skip downloads that would download toexisting files (overwriting them)--no-netrc don't try to obtain credentials from .netrc-c, --continue resume getting a partially-downloaded file--start-pos=OFFSET start downloading from zero-based position OFFSET--progress=TYPE select progress gauge type--show-progress display the progress bar in any verbosity mode-N, --timestamping don't re-retrieve files unless newer thanlocal--no-if-modified-since don't use conditional if-modified-since getrequests in timestamping mode--no-use-server-timestamps don't set the local file's timestamp bythe one on the server-S, --server-response print server response--spider don't download anything-T, --timeout=SECONDS set all timeout values to SECONDS--dns-timeout=SECS set the DNS lookup timeout to SECS--connect-timeout=SECS set the connect timeout to SECS--read-timeout=SECS set the read timeout to SECS-w, --wait=SECONDS wait SECONDS between retrievals(applies if more then 1 URL is to be retrieved)--waitretry=SECONDS wait 1..SECONDS between retries of a retrieval(applies if more then 1 URL is to be retrieved)--random-wait wait from 0.5WAIT…1.5WAIT secs between retrievals(applies if more then 1 URL is to be retrieved) +``` + +### Wrapping Up + +I hope this guide helps you to fix the wget error in your Linux distros. The apparent solution is quite simple. + +Drop a note below if it helps/or if you have any questions. + +[Reference][3] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wget-not-found-error/ + +作者:[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/category/distributions +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Sample-example-of-how-to-use-wget.jpg +[3]: https://www.gnu.org/software/wget/ From 1f4fd4a75fb9d6920c44d893c3f426137a194eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:13:25 +0800 Subject: [PATCH 1987/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221110.2=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20Enlightenment=20Desktop=20in=20Arch=20Linux=20[Complete=20Gu?= =?UTF-8?q?ide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ment Desktop in Arch Linux [Complete Guide].md | 308 ++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..64574c5032 --- /dev/null +++ b/sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,308 @@ +[#]: subject: "How to Install Enlightenment Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/enlightenment-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Enlightenment Desktop in Arch Linux [Complete Guide] +====== + +**This guide explains the steps you need to install Enlightenment Desktop in Arch Linux.** + +This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete Enlightenment desktop environment on top of Arch Linux. + +### What is Enlightenment Desktop + +[Enlightenment][1] is one of the oldest window manager, compositor for X11 in Linux. It is more than a decade old and one of the first “eye-candy” desktop. It consists of core libraries called EFL (Enlightenment Foundation Libraries) which provides features such as widgets, networking, graphics and more. Enlightenment evolved over the years to be suitable for Mobiles, Wearables, TV UI and of course vanilla desktop environment. It provides a standard menu, icon driven desktop with its own native applications. With the help of a suitable display manager, it can be a full-fledged productive desktop. + +### Install Enlightenment Desktop in Arch Linux + +#### Part 1: Install Arch Linux + +If you have already Arch Linux installed, you can skip this step and directly go to the [installation of Enlightenment Desktop][2] section below. + +For a quick Arch Linux base installation, follow the automated archinstall guide, which is present in the below link. + +[Arch Installation with automated script (recommended)][3] + +if you prefer the older/legacy way of installing Arch, then follow the steps below. + +##### Download Arch Linux + +Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive. + +[Download Arch Linux][4] + +If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive. + +##### Boot and Configure Partitions + +After you boot from the Arch Linux iso, you have to run a series of commands to install the base system. + +First, run the below command to find out the device identifier. + +``` +fdisk -l +``` + +![fdisk -l before][5] + +Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. + +``` +cfdisk /dev/sda +``` + +Select `label type = dos` in the next prompt. + +Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below. + +``` +/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap +``` + +![cfdisk][6] + +In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. + +Repeat the same step for the main root partition of size 5GB. + +![Swap partition type change][7] + +Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. + +![final partition list in cfdisk][8] + +Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system. + +Run the below command to check before you proceed. You can see in this example, three partitions are listed. + +``` +fdisk -l +``` + +![final partition list in fdisk][9] + +Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. + +``` +mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 +``` + +After completion, mount the system and create necessary directories. + +``` +mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot +``` + +Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. + +![prepare file system][10] + +##### Install the base system + +I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection, which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][11] to configure a wireless or Wi-Fi network using Arch Linux installer. + +Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. + +``` +pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +``` + +![Install base system][12] + +Once complete, generate a file system table, without which you can’t boot the system. + +``` +genfstab -U /mnt >> /mnt/etc/fstab +``` + +##### Configure the base system + +Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet. + +``` +arch-chroot /mntnano /etc/locale.gen +``` + +Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. + +![change locale][13] + +Generate the locale using: + +``` +locale-gen +``` + +Setup the language using the below command. + +``` +echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 +``` + +Setup the local time zone. + +``` +ln -s /usr/share/zoneinfo/America/New_York /etc/localtime +``` + +Again, you can choose them as per your need. You can list the local timezones via the below commands. + +``` +ls /usr/share/zoneinfo +ls /usr/share/zoneinfo/America +``` + +Set up the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. + +``` +hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd +``` + +The next step is to set up the root user password, create an admin user, and add the user in the sudoers file. + +Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need. + +``` +passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint +``` + +![create user][14] + +Open the sudoers file and add the below lines. + +``` +nano /etc/sudoers +``` + +Add below lines. As you already created the root user, the entry should be there. + +``` +root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL +``` + +![update sudoers file][15] + +Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence. + +``` +grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit +``` + +![configure grub][16] + +Then reboot your system. + +``` +umount /mnt/bootumount /mntreboot +``` + +You have now successfully installed the Arch Linux base system. It’s time to install the complete Enlightenment desktop. + +![Arch is installed][17] + +#### Part 2: Install Enlightenment Desktop in Arch Linux + +After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install Xorg server, display manager, Enlightenment desktop components and EFL. + +For all the commands use default i.e. press enter when asked. + +- **Install Xorg. Approx install size is 80 MB.** + +``` +sudo pacman -S --needed xorg +``` + +- **Install display manager.** I have used lightdm for this guide. You can choose any alternative display manager of your choice. + +``` +sudo pacman -S --needed lightdm lightdm-gtk-greeter +``` + +- **Install desktop** + +The Enlightenment desktop requires the [Enlightenment Foundation Library][18] (EFL) and base [enlightenment][19] package. Both are in Arch community repo. You can install them using the below commands. + +``` +sudo pacman -S efl +``` + +![Installing EFL][20] + +``` +sudo pacman -S enlightenment +``` + +![Installing Enlightenment][21] + +Above two are enough for a basic desktop. If you need additional native applications of this desktop, you need to [set up AUR][22] and follow the [instruction here.][23] + +Make sure to install the terminal and some additional apps. + +``` +sudo pacman -S --needed terminology +sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper +``` + +Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd. + +``` +systemctl enable lightdm +systemctl enable NetworkManager +``` + +Reboot the system using the reboot command. + +``` +reboot +``` + +If all goes well, you should see a login prompt. Login using the ID and password you created above. Then Enlightenment desktop require some initial setup. Follow the onscreen instructions. + +And after setup, you should see the nice Enlightenment Desktop. + +![Enlightenment Desktop in Arch Linux (version 0.25)][24] + +I hope this guide helps you create your own Arch Linux environment with Enlightenment desktop from scratch. If you run into trouble, let me know using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/enlightenment-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.enlightenment.org/ +[2]: https://www.debugpoint.com#install-enlightenment-desktop +[3]: https://www.debugpoint.com/archinstall-guide/ +[4]: https://www.archlinux.org/download/ +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg +[11]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg +[18]: https://archlinux.org/packages/community/x86_64/efl/ +[19]: https://archlinux.org/packages/community/x86_64/enlightenment/ +[20]: https://www.debugpoint.com/wp-content/uploads/2021/09/Installing-EFL-2.png +[21]: https://www.debugpoint.com/wp-content/uploads/2021/09/Installing-Enlightenment.png +[22]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[23]: https://wiki.archlinux.org/title/enlightenment#From_the_AUR +[24]: https://www.debugpoint.com/wp-content/uploads/2021/09/Enlightenment-Desktop-in-Arch-Linux-version-0.25.jpg From 3ee5fb9f42165d01ecab87b1b75cec328869a789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:14:02 +0800 Subject: [PATCH 1988/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221110.3=20=E2=AD=90=EF=B8=8F=20How=20to=20Upgrade?= =?UTF-8?q?=20to=20Linux=20Mint=2021=20from=20Mint=2020.3=20[Complete=20Gu?= =?UTF-8?q?ide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nux Mint 21 from Mint 20.3 [Complete Guide].md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md diff --git a/sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md b/sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md new file mode 100644 index 0000000000..b4ef984259 --- /dev/null +++ b/sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md @@ -0,0 +1,116 @@ +[#]: subject: "How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide]" +[#]: via: "https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide] +====== + +**This guide gives you all the information you need to Upgrade to Linux Mint 21 (Vanessa) from Linux 20.3.** + +Linux Mint 21 Vanessa was recently released with the latest Ubuntu 22.04 base and other additional features. If you are running the earlier Linux Mint 20.3, now it is possible to do a major version upgrade using the graphical tool by Linux Mint. + +But before you upgrade, you need to do some housekeeping because major version upgrades always come with a fair amount of risk. + +That said, make sure of the following before performing the upgrade. + +Before you perform the upgrade, remember the followings: + +- The current version upgrade is only possible from Linux Mint 20.3 to Linux Mint 21 Vanessa. + +- What does this mean? If you are running Linux Mint 20.2 or Linux Mint 20.1, you can not directly upgrade to 21. Instead, you need to perform `sudo apt update` and `sudo apt upgrade` to reach 20.3. And then follow the steps. + +### Things to do before the Upgrade Attempt + +- Open the Update Manager and make sure your system is up to date until Linux Mint 20.3. +- Use TImeshift to create a system restore point after you apply all the pending updates in the above step. If something happens, you can always restore it to this point in time. +- Take a backup of all of your home, downloads, documents, pictures and videos folders. +- Disable any third-party PPA that you may have added. You can find those in the `System Settings > Software Sources > PPAs` or `Additional Repositories` tabs. +- Make sure you have a minimum of 10 GB to 15 GB of free disk space in the root file system. +- (Optional) [Prepare a LIVE USB][1] of Linux Mint 20.3 if you cannot boot it after a failed upgrade. It will help to restore via Timeshift. +- (Optional) Finally, do a fresh reboot before you follow the steps. +- Ensure you have a stable internet connection and have around 1.5 hours to give attention to the upgrade process. + +### Upgrade to Linux Mint 21 from Linux Mint 20.3 [Graphical Method] + +- Open a terminal window and run the following command to install [mintupgrade][2] utility. This is a GUI-based program which Linux Mint modified for major version upgrades. It makes the upgrade easier for general users who are not comfortable with the command prompt. + +``` +sudo apt install mintupgrade +``` + +- Now, from the command, run the program. + +``` +sudo mintupgrade +``` + +- You should see the following prompt, which tells you the ‘upgrade to Linux Mint 21’ is available. Click on Let’s Go. + +![Upgrade to Linux Mint 21 from 20.3 via mintupgrade tool][3] + +- The tool will verify your system for any problems and tell you to fix them. If you see a **FIX** button, click on that to resolve the error (after reading the details in the window). +- It will also give you a list of packages which require a downgrade. +- In the end, you should see a summary of the packages to be downloaded or removed. +- Press OK to start the upgrade process. + +![Final Upgrade summary][4] + +- The program first downloads the packages. Then start to upgrade each one of the packages. Wait for the process to finish for close to an hour (based on your standard internet speed). + +![Upgrading to Mint 21][5] + +- After the download and installation, you should see a successful upgrade prompt. + +![Successful Upgrade][6] + +- Now, reboot the system, and you should be greeted with brand new Linux Mint 21. + +### Things to remember during the Upgrade + +- Usually, the upgrade process is smooth and should not be an issue. It takes around 1 hour and 15 minutes for a base install. +- The upgrade process may seem stalled sometime up to ~10 minutes, and you may not see any visible progress on the screen other than the progress animation. +- So, you need to wait until it completes all the steps. Alternatively, you can also watch the status in the terminal window. +- If you end up with a broken upgrade system, you can boot from a LIVE Mint USB/CD and restore your system with Timeshift backup. + +If the upgrade fails, you may try for a new upgrade via this official [guide][7]. + +### Post Upgrade Steps + +- If you have disabled the third-party PPAs, enable them and do a system update check. You can find the third-party PPs at the `System Settings > Software Sources > PPAs` or `Additional Repositories` tabs. +- Verify whether your documents, pictures and videos are present. +- Also, check if your browser add-ons and extensions are working fine. +- For this version, you should also check whether your **Printer and Bluetooth**are working. Because Mint 21 introduces IPP (a new protocol for printing) and a new Bluetooth manager. +- Finally, you may want to check out the [Top 10 features of Linux Mint 21][8] before you start using it. + +### Wrapping Up + +It is always better to do a fresh installation if you can afford it. However, upgrades are also acceptable. + +I hope this guide helped you to do the Linux Mint upgrade. If you face any issues, let me know using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/ + +作者:[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/etcher-bootable-usb-linux/ +[2]: https://www.debugpoint.com/mint-upgrade-tool/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrade-to-Linux-Mint-21-from-20.3-via-mintupgrade-tool.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Final-Upgrade-summary.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrading-to-Mint-21.gif +[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Successfull-Upgrade.jpg +[7]: https://community.linuxmint.com/tutorial/view/2 +[8]: https://www.debugpoint.com/linux-mint-21-features/ From 2dc13491bebc8619ee5b5ec5ef37e535a961bb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:14:44 +0800 Subject: [PATCH 1989/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221111.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20LibreOffice=20Base=20Database=20in=20Ubuntu=20and=20Other=20?= =?UTF-8?q?Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ice Base Database in Ubuntu and Other Linux.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md diff --git a/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md b/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..b4d8271f1a --- /dev/null +++ b/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md @@ -0,0 +1,65 @@ +[#]: subject: "How to Install LibreOffice Base Database in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/install-libreoffice-base-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install LibreOffice Base Database in Ubuntu and Other Linux +====== + +**Here’s how to install the LibreOffice Base database module in Ubuntu and other Linux distributions.** + +The popular free and open-source office suite LibreOffice consists of six individual components. However, the default installation of LibreOffice in Ubuntu and related distributions only include five of them: + +- Calc +- Writer +- Impress +- Draw +- Math + +Due to some reason, the database module LibreOffice Base is not included. So, here’s how you can install it separately in Ubuntu and other distros. + +### Install LibreOffice Base in Ubuntu and Other Linux + +You can use either the Software app or use the terminal to install `libreoffice-base` package. I would recommend using the terminal to install it. Open a terminal window and run the following command to install it. + +``` +sudo apt install libreoffice-base +``` + +If you prefer Software or any other GUI-based installer, search for “libreoffice-base” and hit install. + +For **Fedora and RPM-based distros**, use the following command: + +``` +sudo dnf install libreoffice-base +``` + +And if you installed LibreOffice in **Arch Linux**– either [libreoffice-fresh][1] or [libreoffice-still][2] package, then no action is required. LibreOffice Base is already included in those two packages. So, you are good to go. + +On another note, if you want to check out how to install the latest LibreOffice, check out [this guide][3]. + +![Install Libreoffice Base in Ubuntu][4] + +Finally, after installation, you can find out the LibreOffice Base in the application menu. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-libreoffice-base-ubuntu/ + +作者:[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://archlinux.org/packages/extra/x86_64/libreoffice-fresh/ +[2]: https://archlinux.org/packages/extra/x86_64/libreoffice-still/ +[3]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-Libreoffice-Base-in-Ubuntu.jpg From 874dc966c0e6563735f2752dc47a7c4d0f33ce4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:15:18 +0800 Subject: [PATCH 1990/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221111.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20FFmpeg=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Install FFmpeg in Ubuntu and Other Linux.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md diff --git a/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md b/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..e5f96bd934 --- /dev/null +++ b/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md @@ -0,0 +1,164 @@ +[#]: subject: "How to Install FFmpeg in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/install-ffmpeg-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install FFmpeg in Ubuntu and Other Linux +====== + +**This tutorial outlines the steps required to install FFmpeg in Ubuntu and Other Linux systems.** + +The ffmpeg is a collection library and software program to manipulate multimedia files. The entire ffmpeg is a robust set of libraries that allows you to convert, stream, and manipulate audio and video files. Many frontend Linux applications use it as a backend and hence depend on it. For example, a screen recording application may need ffmpeg to convert recorded streams to gif images. + +Popular applications and services that use FFmpeg are VLC Media Player, YouTube, Blender, Kodi, Shotcut, and Handbrake – to name a few. + +Fun fact: NASA’s Mars 2020 mission rover Perseverance used FFmpeg to complete and process images and video before beaming back to Earth! + +### About ffmpeg package + +The [ffmpeg][1] itself is a powerful program as a command-line utility. It is available for Linux, Windows, and macOS and supports many architectures. It is written in C and Assembly, providing extensive performance and a cross-platform utility. + +#### The Core + +The core of ffmpeg is the command-line utility or programs. They can be used on the command line or called from any programming language. For example, you can use these from your shell program, python script, etc. + +- **ffmpeg**: Used to convert audio and video streams, including sources from LIVE streams such as TV cards +- **ffplay**: Media player bundled in this package to play media +- **ffprobe**: Command line tool to show media information – can output as txtm csv, xml, json formats + +### FFmpeg Installation + +Installing FFmpeg is easy in Ubuntu and other Linux distributions. Open a terminal prompt and run the following commands to install. + +#### Ubuntu and similar distro + +``` +sudo apt install ffmpeg +``` + +#### Fedora + +For Fedora Linux, you need to add the [RPM Fusion repo][2] for FFmpeg. The official Fedora repo doesn’t have the FFmpeg package. + +``` +sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm +``` + +``` +sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree- +``` + +``` +sudo dnf install ffmpeg +``` + +#### Arch Linux + +``` +pacman -S ffmpeg +``` + +After the successful installation, you can verify the installation using the below command. + +``` +ffmpeg --version +``` + +![FFmpeg installed in Ubuntu Linux][3] + +### Example: How to do basic tasks using ffmpeg + +First, let me give you a simple example of the basic syntax. Consider the following example. It simply converts an mp4 file to mkv file. + +- **Convert a basic video file** + +``` +ffmpeg -i big_buck_bunny.mp4 big_buck_bunny.mkv +``` + +Of course, this is the easiest method, but it’s not complete because it doesn’t have the bit rate, resolution and other attributes of the video file required for the conversion. + +- **Convert an audio file** + +Secondly, you can convert an audio file using a similar command. + +``` +ffmpeg -i sunny_day.ogg sunny_day.mp3 +``` + +- **Convert with an audio and video codec** + +Finally, the following example can convert a video file using specified codecs. The parameter `-c` with `a` or `v` defines audio and video, respectively. The below command uses `libvpx` video and `libvorbis` audio codec for conversion. + +``` +ffmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm +``` + +### How to find out about the available codecs, encoders and decoders in your system? + +#### List all codecs + +To list all the codecs available, run the below command. + +``` +ffmpeg -codecs +``` + +This command lists all the codecs available with their capability, whether they support decoding or encoding, etc. Moreover, they are identified with the position as per the below table. + +``` +D..... = Decoding supported.E.... = Encoding supported..V... = Video codec..A... = Audio codec..S... = Subtitle codec...I.. = Intra frame-only codec....L. = Lossy compression.....S = Lossless compression +``` + +![FFmpeg Codec list][4] + +#### List all encoders + +Listing all the encoders is accessible via the below command. + +``` +ffmpeg -encoders +``` + +#### List all decoders + +Similarly, the decoders list you can get via the below command. + +``` +ffmpeg -decoders +``` + +#### Details + +You can also get more details about the encoders or decoders using the parameter -h. + +``` +ffmpeg -h decoder=mp3 +``` + +### Summary + +I hope you learned the basics of FFmpeg and its commands. You can learn more about the program via the official [documentation][5]. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-ffmpeg-ubuntu/ + +作者:[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://ffmpeg.org/ +[2]: https://www.debugpoint.com/2020/07/enable-rpm-fusion-fedora-rhel-centos/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/FFmpeg-installed-in-Ubuntu-Linux.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/FFmpeg-Codec-list.jpg +[5]: https://ffmpeg.org/documentation.html From bf2e3fe93578dc5bce3e1576a090ab93acead44b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:17:16 +0800 Subject: [PATCH 1991/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221111.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20Elementary=20OS=E2=80=99s=20Pantheon=20Des?= =?UTF-8?q?ktop=20in=20Arch=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Elementary OS’s Pantheon Desktop in Arch Linux.md | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md diff --git a/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md b/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md new file mode 100644 index 0000000000..2867e669bb --- /dev/null +++ b/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md @@ -0,0 +1,176 @@ +[#]: subject: "How to Install Elementary OS’s Pantheon Desktop in Arch Linux" +[#]: via: "https://www.debugpoint.com/pantheon-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Elementary OS’s Pantheon Desktop in Arch Linux +====== + +**Pantheon is the default desktop environment for the elementary OS. This quick guide explains the steps to install the Pantheon desktop environment in Arch Linux.** + +Pantheon is a beautiful desktop environment used by the elementary OS. It is based on GTK3 (GTK4 porting in progress) and Vala and is a nice and clean desktop that provides you with a refined experience of a Linux desktop. + +The desktop is primarily used by the elementary OS. Elementary OS provides a modified version of Pantheon desktop, which is based on the GNOME software base. + +The elementary OS is based on the Ubuntu LTS release. Hence it is super easy to install the Pantheon desktop in ubuntu-based distributions. That means if you want to experience Pantheon without installing elementary OS – it’s just one or two commands to install it in Ubuntu. + +In Fedora, you can also install using group packages. However, a distro called [Ultramarine Linux][1] provides it by default with a Fedora base. + +But, installing Pantheon in Arch Linux requires some work. It is not straightforward with a simple pacman command and won’t work out of the box at all. Some configuration is required and might break your system. + +Here I give you the guideline and steps to install Pantheon Desktop in Arch Linux. + +**Warning:**Things may not go well the first time, so I suggest you do it on a virtual machine before installing it on a physical system. Because installing Pantheon in Arch is not as streamlined as installing GNOME, Xfce, and KDE Plasma desktop in Arch Linux. It requires some additional manual configuration as well. + +Here are the steps to install Pantheon Desktop in Arch Linux. + +### Install Pantheon Desktop in Arch Linux + +#### Step 1: Install Base System + +Make sure you install the Arch Linux base system by following the automated [archinstall script using this guide][2]. If you’re already running an Arch installation, you can skip this step and follow the next step. + +#### Step 2: Update Your System + +Open a terminal in your Arch installation. And make sure the system is up to date by running the below command: + +``` +pacman -Syu +``` + +#### Step 3: Instal yay AUR Helper + +Many packages that are required for Pantheon are not available in the Arch official repository. They are available in Arch User Repo (AUR). Hence you need to install yay for additional packages. Follow [this guide to install yay AUR helper][3]. + +#### Step 4: Install Pantheon Desktop in Arch Linux + +Install the following packages using the below command. These are required packages available in the Arch official repository consisting of all necessary components, wingpanel, icons, and wallpapers. + +- [pantheon][4] +- lightdm-pantheon-greeter +- sound-theme-elementary +- switchboard +- lightdm-gtk-greeter +- elementary-icon-theme +- elementary-wallpapers +- pantheon-applications-menu +- wingpanel-indicator-session +- wingpanel-indicator-datetime + +``` +pacman -S --needed pantheon lightdm-pantheon-greeter sound-theme-elementary switchboard lightdm-gtk-greeter elementary-icon-theme elementary-wallpapers pantheon-applications-menu wingpanel-indicator-session wingpanel-indicator-datetime inter-font firefox +``` + +Install the following packages from the user repository. These are some additional packages that are not available in the Arch official repository. And these might take some time to install. + +- pantheon-session-git +- gnome-settings-daemon-elementary +- pantheon-default-settings +- switchboard-plug-pantheon-tweaks-git +- urutau-icons-git +- pantheon-dock-git + +``` +yay -S pantheon-session-git pantheon-default-settings switchboard-plug-pantheon-tweaks-git urutau-icons-git pantheon-dock-git +``` + +The next step is to install the display server and manager. Use `lightdm` as the display manager for Pantheon in Arch. I tried using other display managers with Pantheon but that didn’t end well. + +``` +pacman -S --needed xorg lightdm +``` + +#### Step 5: Configure + +The default greeter needs some modifications. Run the below command to check the available sessions. + +``` +ls -1 /usr/share/xgreeters +``` + +![greeters list][5] + +Open the lightdm configuration file and change the greeter-session to io.elementary.greeter. + +``` +sudo nano /etc/lightdm/lightdm.conf + +greeter-session=io.elementary.greeter +``` + +Save and close the file (CTRL+O, ENTER and CTRL+X). + +![lightdm conf][6] + +Enable the display manager and network manager in systemd. + +``` +systemctl enable lightdmsystemctl enable NetworkManager +``` + +Reboot the system. + +``` +systemctl reboot +``` + +If all went well, you should see the following login screen (I know, it doesn’t look cool at all, anyway). Change the session from the top dropdown and log in with the username and password. + +![Login screen - Pantheon in Arch][7] + +#### Step 6: Post-Install Configuration + +When I first logged in to my test system, many things didn’t work. Here’s a list of items and their possible solutions. + +a) **Wallpaper**: The wallpaper module seems not to be working at all. So, there was no wallpaper by default. Even the “Change Wallpaper” option is not opening. If you face this, install `dconf` editor and change the wallpaper via the below steps. + +``` +pacman -S --needed dconf-editor +``` + +Then Launch the dconf editor from the menu. Navigate to `"org > gnome > desktop > background > picture-uri"`. Turn off the default value and add the custom value `file:////usr/share/backgrounds/Ashim DSilva.jpg`. You can use any other image as well. Save and close. + +![Change background property using dconf-editor][8] + +b) **Icons**: Change the icons via `Settings > Tweaks.` Then change the icon and cursors to urutau-icons. + +After all the configurations and installation, you should be all set with the Pantheon Desktop in Arch Linux. Here’s a screenshot of my test machine. + +![Pantheon Desktop in Arch Linux][9] + +### Closing Notes + +I hope this guide helps you eventually install the Pantheon desktop in Arch Linux. It took me a couple of days to finally able to fit the pieces together and make them work. + +Although some small features are still not working, a workable Pantheon desktop is still available. + +The only thing that surprises me is the performance of Pantheon in Arch. The elementary OS installation is not that fast in my same test machine. But the Pantheon base is faster in Arch than a vanilla elementary OS. However, if you would like Pantheon, give it a go. + +If you face any errors, let me know using the comment box below. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/pantheon-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/ultramarine-linux-36/ +[2]: https://www.debugpoint.com/archinstall-guide/ +[3]: https://www.debugpoint.com/install-yay-arch/ +[4]: https://wiki.archlinux.org/index.php/Pantheon +[5]: https://www.debugpoint.com/wp-content/uploads/2021/02/greeters-list.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/02/lightdm-conf.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Login-screen-Pantheon-in-Arch.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Change-background-property-using-dconf-editor.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/02/Pantheon-Desktop-in-Arch-Linux-1.jpg From e72660ef7b8fcf0b6af5cac4006cc41823152e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:18:11 +0800 Subject: [PATCH 1992/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221110.4=20=E2=AD=90=EF=B8=8F=20KDE=20Plasma=205.2?= =?UTF-8?q?7=20Bringing=20Subtle=20Outline=20on=20Windows.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...sma 5.27 Bringing Subtle Outline on Windows.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md diff --git a/sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md b/sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md new file mode 100644 index 0000000000..3a7dd6eca7 --- /dev/null +++ b/sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md @@ -0,0 +1,58 @@ +[#]: subject: "KDE Plasma 5.27 Bringing Subtle Outline on Windows" +[#]: via: "https://debugpointnews.com/kde-plasma-5-27-outline-windows/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +KDE Plasma 5.27 Bringing Subtle Outline on Windows +====== + +![][1] + +**A new feature arriving on the KDE Plasma desktop that enables a subtle outline in Breeze theme window borders for better usability and design.** + +A [recent merge request][2] for the upcoming KDE Plasma 5.27 release (for 2023) shows how a nice, subtle window border can make a difference in the overall desktop look. + +Today, the drop-shadow distinguishes two overlapped windows in the default Plasma Breeze theme. That’s the only thing that differentiates the edges of two application windows. + +Sometimes it becomes difficult to find out the edges when you want to drag the window or do something else, especially in the dark Breeze theme. + +In the light theme, it’s not that difficult, though. + +To make it look more professional, the new border gives a pleasant look to the default Breeze theme. + +![KDE Plasma new outline comparison][3] + +KDE Plasma new outline comparison + +The colour of the new window outline is adaptive and not a fixed colour. It adapts based on the wallpaper and the theme’s default colour. But there is a catch, though. There won’t be any settings for this to disable. Because making a switch for this would be irrelevant since it’s very subtle and should work with all types of KDE customization. + +![KDE Plasma - new outline in windows -2][4] + +KDE Plasma – new outline in windows -2 + +KDE Plasma 5.27 is currently under development and will be an LTS release. Also, it will be the final release of the Plasma 5 series. It’s currently scheduled for Feb 2023. + +Via [blog][5] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/kde-plasma-5-27-outline-windows/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/11/kdenewborder.jpg +[2]: https://invent.kde.org/plasma/breeze/-/merge_requests/241 +[3]: https://debugpointnews.com/wp-content/uploads/2022/11/KDE-Plasma-new-outline-comparison.jpg +[4]: https://debugpointnews.com/wp-content/uploads/2022/11/KDE-Plasma-new-outline-in-windows-2.jpg +[5]: https://www.akselmo.dev/2022/10/31/I-made-outlines-for-KDE-Breeze.html From 1eb6ec6972aed0b533c4d809cd1427bf08ba1f10 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sun, 13 Nov 2022 14:18:50 +0800 Subject: [PATCH 1993/3123] add links --- ...rity properties on Linux using checksec.md | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/translated/tech/20210607 Identify security properties on Linux using checksec.md b/translated/tech/20210607 Identify security properties on Linux using checksec.md index 7d355380b7..58b32c4720 100644 --- a/translated/tech/20210607 Identify security properties on Linux using checksec.md +++ b/translated/tech/20210607 Identify security properties on Linux using checksec.md @@ -14,7 +14,6 @@ ![Target practice][1] - 编译源代码会生成一个二进制文件(即 .o 文件)。在编译期间,你可以向 `gcc` 编译器提供 标志 flags ,以启用或禁用二进制文件的某些属性,这些属性与安全性相关。 Checksec 是一个漂亮的小工具,同时它也是一个 shell 脚本。Checksec 可以识别编译时构建到二进制文件中的安全属性。编译器可能会默认启用一些安全属性,你也可以提供特定的标志,来启用其他的安全属性。 @@ -67,12 +66,12 @@ Checksec 输出的第一行提供了二进制文件的各种安全属性,例 在本文中,我将使用以下的“hello world”程序作为示例二进制文件。 ``` -#include <stdio.h> +#include int main() { -        [printf][2]("Hello World\n"); -        return 0; + printf("Hello World\n"); + return 0; }   ``` @@ -413,10 +412,49 @@ $ checksec --file=./hello --output=json | jq  | grep -i forti 关于安全性的话题是永无止境的,不可能在本文涵盖所有关于安全性的内容,但我还想提一下 Checksec 命令的一些其他功能,这些功能也很好用。 -### 针对多个二进制文件运行 +### 对多个二进制文件运行 Checksec 你不必对每个二进制文件都进行一次 Checksec。相反,你可以提供多个二进制文件所在的目录路径,Checksec 将一次性为你验证所有文件: ``` $ checksec --dir=/usr ``` + +### 对进程运行 Checksec + +Checksec 除了能检查二进制文件的安全属性,Checksec 还能对程序起作用。以下的命令用于查找你系统上所有正在运行的程序的安全属性。如果你希望 Checksec 检查所有正在运行的进程,可以使用 `--proc-all`,或者你也可以使用进程名称,选择特定的进程进行检查: + +``` +$ checksec --proc-all + +$ checksec --proc=bash +``` + +### 对内核运行 Checksec + +除了本文介绍的用 Checksec 检查用户态应用程序的安全属性之外,你还可以使用它来检查系统内置的 内核属性 kernel properties : + +``` +$ checksec --kernel +``` + +## 快来试一试 Checksec 吧 + +Checksec 是一个能了解哪些用户空间和内核的安全属性被启用的好方法。现在,你就可以开始使用 Checksec,来了解每个安全属性是什么,并明白启用每个安全属性的原因,以及它能阻止的攻击类型。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/linux-checksec + +作者:[Gaurav Kamathe][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/gkamathe +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/lead-images/target-security.png +[2]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html +[3]: https://stedolan.github.io/jq/download/ From 4cb06d344f52c35b1a480de0c23233bbf4b8a4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:19:39 +0800 Subject: [PATCH 1994/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221111.3=20=E2=AD=90=EF=B8=8F=20Meet=20Tabby,=20A?= =?UTF-8?q?=20New=20Open-Source=20Cross-Platform=20Terminal=20App.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...New Open-Source Cross-Platform Terminal App.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md diff --git a/sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md b/sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md new file mode 100644 index 0000000000..54e3eb4f51 --- /dev/null +++ b/sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md @@ -0,0 +1,106 @@ +[#]: subject: "Meet Tabby, A New Open-Source Cross-Platform Terminal App" +[#]: via: "https://news.itsfoss.com/tabby/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Meet Tabby, A New Open-Source Cross-Platform Terminal App +====== + +Tabby is a mind-blowing terminal app for a local shell, SSH, and Telnet connections. Let's take a look! + +![Meet Tabby, A New Open-Source Cross-Platform Terminal App][1] + +There are a lot of terminal apps out there that offer a range of functionalities. + +So, what's unique about Tabby? + +Tabby is a cross-platform customizable terminal app with SSH integration. It is a terminal emulator that does not try to be a new shell or Cygwin replacement. + +Let's take a look at what Tabby aims to be. + +### ⭐ An Impressive Customizable Terminal App + +![tabby][2] + +Formerly known as 'Terminus', [Tabby][3] is a highly customizable cross-platform open-source terminal emulator. + +It can connect to SSH servers using its integrated connection manager and offers various customization options in terms of appearance and other functionalities. It also supports plugins; these can be added from the settings menu to add more functionality to the app. + +If you have been a user of PowerShell ISE, PuTTY, or the mac terminal, Tabby will suit you as a perfect replacement. + +> 💡Tabby is not a lightweight app, so one needs to be careful about system resources. + +It is available for Linux, Windows, and macOS. You can also run Tabby as a portable app for Windows. + +They also offer an experimental web app, if you are a fan of it, feel free to try it out. + +An **integrated SSH client, font ligature, Unicode support, and configurable shortcuts** make Tabby worth trying. + +#### Related Read 📖 + +### Features of Tabby + +![tabby ssh][4] + +Tabby has an integrated SSH and Telnet client with support for X11, port forwarding and automatic jump host management. + +You can customize Tabby's appearance by using various theming and color options. + +![tabby themes][5] + +For starters, features like these provide an excellent user experience. But it does not end here. + +Tabby has a bunch of features to offer; some of the key highlights include: + +![tabby tabs][6] + +- **Integrated serial terminal** +- **Remember previously opened tabs and supports multi-pane nesting.** +- **Full Unicode Support** +- **Smart Tabs and progress bars for tabs** +- **Optional Quake mode.** +- **Integrated encrypted container for SSH secrets and configuration** +- **Zmodem Transfers** +- **Customizable Hotkeys** +- **Multiple Profiles with Profile Manager** + +### 👇 Download and Try Tabby + +Keep in mind that Tabby is currently in its early stages and under heavy development. + +**It is fun, feature-rich, and engaging, but it may not be for everyone!** + +If it does not sound too overwhelming, head to their [GitHub repo][7] and download the latest package for the platform you want. + +Various packages such as **.deb, .rpm, .tar.gz, .pacman,** and more are available for Linux. + +You can also explore its official website for more info. + +[Tabby][3] + +💬 Are you willing to give Tabby a try? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/tabby/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/tabby-first-look.png +[2]: https://news.itsfoss.com/content/images/2022/11/Tabby-1.png +[3]: https://tabby.sh +[4]: https://news.itsfoss.com/content/images/2022/11/Tabby_SSH.png +[5]: https://news.itsfoss.com/content/images/2022/11/Tabby_Themes-1.png +[6]: https://news.itsfoss.com/content/images/2022/11/Tabby_MultiPane-1.png +[7]: https://github.com/Eugeny/tabby/releases/tag/v1.0.186 From 0139c9377617e52c6e6a7d22ab62288de6f9cd80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:20:26 +0800 Subject: [PATCH 1995/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221110.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Audit=20your=20sharding=20database=20algorithm.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Audit your sharding database algorithm.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md diff --git a/sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md b/sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md new file mode 100644 index 0000000000..dee2e4e3a7 --- /dev/null +++ b/sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md @@ -0,0 +1,218 @@ +[#]: subject: "Audit your sharding database algorithm" +[#]: via: "https://opensource.com/article/22/11/audit-sharding-database" +[#]: author: "Yacine Si Tayeb, PhD https://opensource.com/users/y2so" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Audit your sharding database algorithm +====== + +This demonstration of ShardingSphere 5.2.0 elaborates on the implementation logic for auditing data sharding with specific SQL examples. + +Thanks to the [ShardingSphere community's][1] continuous review and feedback to develop features such as [data sharding][2] and read/write splitting, our team found that some users create many shards when using the data sharding feature. + +In such cases, there can be 1,000 physical tables corresponding to a sharding logical table, which disturbs users. + +For instance, a `SELECT * FROM t_order` statement will lead to a full-route, which is obviously not the case for [OLTP][3]. This SQL can be placed in another Proxy to avoid blocking other requests. + +However, if users are not familiar with Proxy or how to write a `where` condition and don't know that sharding is not supported in this condition, a full-route is still required. + +A full-route can lower the performance of Proxy and even result in the failure of a reasonable request. Imagine that there are 1,000 shards in a physical database. If they are executed in parallel, 1,000 connections are needed, and if in serial, the request can lead to a timeout. For this reason, community users asked whether the unreasonable request could be intercepted directly. + +Our team considered the issue for a while. One option is to simply block the full-route operation. Doing so requires a check in the code and adding a switch to the configuration file. On the other hand, if the user later needs to set a table to read-only or requires the update operation to carry a `limit`, does that mean the code and configuration change again? This approach obviously goes against the pluggable logic of Proxy. + +In response to the above problems, the recently released [Apache ShardingSphere 5.2.0][4] provides users with auditing for the SQL sharding function. The audit can either be an interception operation or a statistical operation. Similar to the sharding and unique key generation algorithms, the audit algorithm is plugin-oriented, user-defined, and configurable. + +Next, I will elaborate on the implementation logic for auditing data sharding with specific SQL examples. + +### Audit for sharding interface + +The entrance to Apache ShardingSphere's audit is in the `org.apache.shardingsphere.infra.executor.check.SQLCheckEngine` class, which will invoke the `check` method of the `SQLChecker` interface. Currently, the ShardingSphere audit contains an audit for permission (verify username and password) and an audit for sharding. + +This example focuses on the parent interface implemented in the `ShardingAuditChecker` of audit for sharding. + +![Audit for sharding design][5] + +You can learn its working principles quickly by viewing the `check` code of `org.apache.shardingsphere.sharding.checker.audit.ShardingAuditChecker`. + +``` +public interface ShardingAuditAlgorithm extends ShardingSphereAlgorithm {/** +     * Sharding audit algorithm SQL check. +     * +     * @param sqlStatementContext SQL statement context +     * @param parameters SQL parameters +     * @param grantee grantee +     * @param database database +     * @return SQL check result +     */ +    SQLCheckResult CHECK(SQLStatementContext sqlStatementContext, List parameters, Grantee grantee, ShardingSphereDatabase DATABASE); +} +``` + +This method obtains the audit strategies of all the sharding tables involved and invokes the audit algorithms configured in each sharding table audit strategy. An exception is displayed to the user if an audit algorithm fails to pass. + +Some users may wonder what `disableAuditNames` does here. The sharding audit also allows users to skip this process. In some cases, users may need to execute SQL that should have been blocked by the audit, and they are aware of the impact of this SQL. + +Users can utilize the `Hint: disableAuditNames` to skip audit interception, which will be described with practical examples later. The Proxy Administrators can configure `allowHintDisable` to control whether to allow users to skip this process. The default value is `true`, indicating that a Hint-based skip is permitted. + +### Audit for sharding algorithm + +The audit for sharding algorithm interface `org.apache.shardingsphere.sharding.spi.ShardingAuditAlgorithm` is inherited from SPI class `ShardingSphereAlgorithm`. It inherits `type` and `props` properties and defines its own `check` method. If you want to customize your audit algorithm, just implement the interface and add it to `INF.services`. + +![Implement audit for sharding][6] + +``` +public interface ShardingAuditAlgorithm extends ShardingSphereAlgorithm {/** +     * Sharding audit algorithm SQL check. +     * +     * @param sqlStatementContext SQL statement context +     * @param parameters SQL parameters +     * @param grantee grantee +     * @param database database +     * @return SQL check result +     */ +    SQLCheckResult CHECK(SQLStatementContext sqlStatementContext, List parameters, Grantee grantee, ShardingSphereDatabase DATABASE); +} +``` + +Apache ShardingSphere implements a general audit for sharding algorithm `org.apache.shardingsphere.sharding.algorithm.audit.DMLShardingConditionsShardingAuditAlgorithm`, namely the above-mentioned SQL statement that intercepts the full-route. + +The algorithm makes decisions by determining whether the sharding condition is `null`. Of course, it won't intercept broadcast tables and non-sharding tables. + +``` +public final class DMLShardingConditionsShardingAuditAlgorithm implements ShardingAuditAlgorithm { +    @Getter +    private Properties props; +    @Override +    public void init(final Properties props){ +        this.props = props;} +    @SuppressWarnings({"rawtypes","unchecked"}) +    @Override +    public SQLCheckResult CHECK(final SQLStatementContext sqlStatementContext, final List parameters, final Grantee grantee, final ShardingSphereDatabase DATABASE){IF(sqlStatementContext.getSqlStatement() instanceof DMLStatement){ +            ShardingRule rule =DATABASE.getRuleMetaData().getSingleRule(ShardingRule.class);IF(rule.isAllBroadcastTables(sqlStatementContext.getTablesContext().getTableNames())|| sqlStatementContext.getTablesContext().getTableNames().stream().noneMatch(rule::isShardingTable)){RETURNNEW SQLCheckResult(TRUE,"");} +            ShardingConditionEngine shardingConditionEngine = ShardingConditionEngineFactory.createShardingConditionEngine(sqlStatementContext,DATABASE, rule);IF(shardingConditionEngine.createShardingConditions(sqlStatementContext, parameters).isEmpty()){RETURNNEW SQLCheckResult(FALSE,"Not allow DML operation without sharding conditions");}}RETURNNEW SQLCheckResult(TRUE,"");} +    @Override +    public String getType(){RETURN"DML_SHARDING_CONDITIONS";}} +``` + +I'd like to introduce another audit for the sharding algorithm: `LimitRequiredShardingAuditAlgorithm`. This algorithm can intercept SQL without carrying a `limit` in the `update` and `delete` operations. + +As this algorithm is less universal, it is not currently integrated into Apache ShardingSphere. As you can see, it is very easy to implement a custom algorithm, which is why the audit for sharding framework is needed. Thanks to its plugin-oriented architecture, ShardingSphere boasts great scalability. + +``` +public final class LimitRequiredShardingAuditAlgorithm implements ShardingAuditAlgorithm { +    @Getter +    private Properties props; +    @Override +    public void init(final Properties props){ +        this.props = props;} +    @SuppressWarnings({"rawtypes","unchecked"}) +    @Override +    public SQLCheckResult CHECK(final SQLStatementContext sqlStatementContext, final List parameters, final Grantee grantee, final ShardingSphereDatabase DATABASE){IF(sqlStatementContext instanceof UpdateStatementContext && !((MySQLUpdateStatement) sqlStatementContext.getSqlStatement()).getLimit().isPresent()){RETURNNEW SQLCheckResult(FALSE,"Not allow update without limit");}IF(sqlStatementContext instanceof DeleteStatementContext && !((MySQLDeleteStatement) sqlStatementContext.getSqlStatement()).getLimit().isPresent()){RETURNNEW SQLCheckResult(FALSE,"Not allow delete without limit");}RETURNNEW SQLCheckResult(TRUE,"");} +    @Override +    public String getType(){RETURN"LIMIT_REQUIRED";}} +``` + +### Use audit for sharding + +Audit for sharding requires you to configure an audit strategy for logical tables. To help you get started quickly, its configuration is the same as that of the sharding algorithm and the sharding key value generator. + +There is an algorithm definition and strategy definition, and a default audit strategy is also supported. If the audit strategy is configured in the logical table, it affects only that logical table. + +If `defaultAuditStrategy` is configured in the logical table, it takes effect for all the logical tables under the sharding rule. `Auditors` are similar to `ShardingAlgorithms`, `auditStrategy` to `databaseStrategy`, and `defaultAuditStrategy` to `defaultDatabaseStrategy` or `defaultTableStrategy`. + +Please refer to the following example. Only the configuration of the audit for sharding is displayed. You must configure the sharding algorithm and data source yourself. + +``` +rules:- !SHARDINGTABLES: +      t_order: +        actualDataNodes: ds_${0..1}.t_order_${0..1} +        auditStrategy: +          auditorNames:- sharding_key_required_auditor +          allowHintDisable: TRUE +    defaultAuditStrategy: +      auditorNames:- sharding_key_required_auditor +      allowHintDisable: TRUE +    auditors: +      sharding_key_required_auditor:TYPE: DML_SHARDING_CONDITIONS +``` + +**Step 1**: Execute a query operation. An error is displayed as the audit strategy for intercepting the full-database route is configured. + +``` +mysql>SELECT*FROM t_order; +ERROR 13000(44000): SQLCHECK failed, error message: NOT allow DML operation WITHOUT sharding conditions +``` + +**Step 2**: Add `HINT`. The name of the `HINT` is `/* ShardingSphere hint: disableAuditNames */`,and `disableAuditNames` is followed by the `auditorsNames` configured in the preceding command. + +If multiple names exist, separate them with spaces such as`/* ShardingSphere hint: disableAuditNames=auditName1 auditName2*/`. After using `HINT`, you can see that the SQL operation is successfully executed. + +``` +mysql>/* ShardingSphere hint: disableAuditNames=sharding_key_required_auditor */SELECT*FROM t_order; ++----------+---------+------------+--------+| order_id | user_id | address_id |STATUS|+----------+---------+------------+--------+|30|20|10|20||32|22|10|20|+----------+---------+------------+--------+2ROWSINSET(0.01 sec) +``` + +**Note**: `HINT` requires you to modify the `server.yaml` configuration of Proxy. In addition, if you are using MySQL terminal to connect to Proxy directly, you need to add the `-c` property—otherwise, `HINT` comments will be filtered out of the MySQL terminal and will not be parsed by Proxy on the backend. + +``` +rules:- !SQL_PARSER +    sqlCommentParseEnabled: TRUE +    sqlStatementCache: +      initialCapacity: 2000 +      maximumSize: 65535 +    parseTreeCache: +      initialCapacity: 128 +      maximumSize: 1024 +props: +  proxy-hint-enabled: TRUE +mysql -uroot -proot -h127.0.0.1 -P3307  -c +``` + +### DistSQL with audit for sharding + +As you can see from the [release notes][7], Apache ShardingSphere 5.2.0 supports the following [DistSQL][8] with audit for sharding function: + +``` +CREATE SHARDING AUDITOR +ALTER SHARDING AUDITOR +SHOW SHARDING AUDIT ALGORITHMS +The following DistSQL will be supported IN future releases: + +DROP SHARDING AUDITOR +SHOW UNUSED SHARDING AUDIT ALGORITHMS +CREATE SHARDING TABLE RULE # including AUDIT_STRATEGY +``` + +This post introduced how audit for sharding works with specific examples. I believe you already have a basic understanding of this function and can use it whenever you need or use a custom algorithm. + +You are also welcome to submit general algorithms to the community. If you have any ideas to contribute or encounter issues with your ShardingSphere, feel free to post them on [GitHub][9]. + +This article originally appeared on [ShardingSphere 5.2.0: Audit for sharding intercepts unreasonable requests in multi-shards scenarios][10] and is republished with permission. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/audit-sharding-database + +作者:[Yacine Si Tayeb, PhD][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/y2so +[b]: https://github.com/lkxed +[1]: https://shardingsphere.apache.org/ +[2]: https://opensource.com/article/21/12/apache-shardingsphere +[3]: https://shardingsphere.apache.org/blog/en/material/2022_04_26_how_to_use_shardingsphere-proxy_in_real_production_scenarios_your_quick_start_guide/ +[4]: https://faun.pub/apache-shardingsphere-5-2-0-is-released-bringing-new-cloud-native-possibilities-8d674d964a93?source=your_stories_page------------------------------------- +[5]: https://opensource.com/sites/default/files/2022-10/Audit-for-sharding.png +[6]: https://opensource.com/sites/default/files/2022-10/implement-audit-algorithm_0.png +[7]: https://github.com/apache/shardingsphere/releases/tag/5.2.0 +[8]: https://shardingsphere.apache.org/document/5.1.0/en/concepts/distsql/ +[9]: https://github.com/apache/shardingsphere +[10]: https://blog.devgenius.io/shardingsphere-5-2-0-audit-for-sharding-intercepts-unreasonable-requests-in-multi-shards-scenarios-9a113312062b From 6d3c2cb54652bf12c777c06699eac27c1ab8a239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:21:20 +0800 Subject: [PATCH 1996/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221110.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?4=20key=20differences=20between=20Twitter=20and=20Mastodon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 4 key differences between Twitter and Mastodon.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md new file mode 100644 index 0000000000..47d1016c92 --- /dev/null +++ b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -0,0 +1,81 @@ +[#]: subject: "4 key differences between Twitter and Mastodon" +[#]: via: "https://opensource.com/article/22/11/twitter-vs-mastodon" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 key differences between Twitter and Mastodon +====== + +Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Here are a few other advantages. + +Social media is not always sociable, and sometimes we need a sufficient impetus to change what we do and what we read. I began using Twitter as a replacement for my RSS reader in 2008, which revolutionized how I read and learned up to that point. Tweets from educators and free and open source (FOSS) advocates worldwide kept me informed and engaged in a learning network that was without equal. That's changed over the past half dozen years, and recently a change in ownership and the shaping of what I read was driven more by an algorithm than by my personal interests and choices. During a yearly meetup of correspondents and editors of Opensource.com a few years ago, [Seth Kenlon][1] suggested giving [Mastodon][2] a try. I joined [Fosstodon][3] in 2019. Fosstodon is a Mastodon instance for a community of like-minded people who enjoy free and open source software. + +### Mastodon vs Twitter + +Change is not easy. Being a creature of habit, I stayed with my old standby even though it was becoming increasingly tiresome. The threat of its sale in the spring of 2022 invited me to reconsider Fosstodon. + +### 1. Favorite instead of like + +The Mastodon interface is similar to Twitter. Rather than "liking" a post, you "favorite" a post on Mastodon by clicking the star icon under the post content. + +![Favorite button][4] + +### 2. Share a post + +Re-sharing on my old network is a "retweet," but on Mastodon, it's a "boost." You click the double-arrow icon under the post content to boost a post. + +![Boost button][5] + +### 3. Mastodon instances + +Because anyone can run a Mastodon instance, different instances not only have unique communities (like the ones that form around specific hashtags on Twitter, but Mastodon also has hashtags). Some have a unique set of rules. For instance, unlike my former social network, there were content moderation rules on Fosstodon that seemed strict initially. I made a post unrelated to FOSS software, and my post was removed. I was told it had been removed because I'd not issued a "content warning." That irked me, so I looked for another instance and found a couple more to my liking. One was [Mastodon.social][6], and the other [Scholar.social][7]. The former is a general server with no expectation about what you will post. The latter was an instance dedicated to academics. In all cases, there are well-enforced codes of conduct. + +Each instance has rules, and while they differ slightly in the description, they clearly spell out what is and is not acceptable behavior. Fosstodon published its [code of conduct][8], which established the rules and expectations of behavior on the site. + +### 4. Open source social networking + +If you want to run your own Mastodon instance or help develop one, you'll be happy to know that Mastodon is open source. It uses an AGPLv3 license, and its source code is available as a [Git repository][9]. The software provides a social network server that uses the [ActivityPub][10] protocol to communicate with other servers worldwide. + +Mastodon is not a single site on the internet but a series of sites spanning the globe and communicating with each other. This federated network is referred to as the "fediverse." Unlike other social networks, where there's a single owner of the network, Mastodon and other ActivityPub sites are owned by anyone who runs a server. + +From a user's perspective, this doesn't matter at first. You can sign up on any Mastodon instance and then connect to all other instances. + +There is power to this distributed design, though. If you encounter an instance with a community producing content you'd rather not see, you can block either a single user from that instance or the whole instance. + +In the past month, I've returned to Fosstodon primarily because open source is my passion. I enjoy sharing open source content on Fosstodon because the other users of Fosstodon are generally receptive to posts about free and open source software. When I have something to share that's not considered appropriate on Fosstodon, I share it on Scholar.social or Mastodon.social. + +Not all instances have topics they focus on, and even those that do often use their topical interests as a guideline rather than grounds for strict removal of posts. If you have a particular interest, you might be able to find a community built around that topic, and you're likely to see that you have an instant audience. Of course, you'll still always be able to communicate with users of other instances, too. + +### Try Mastodon + +Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Some instances make it easy to support them with Patreon or PayPal. + +I have found the fediverse a welcoming place that brings joy back into social networking. Have you joined Mastodon? What are your takeaways? Let us know in the comments. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/twitter-vs-mastodon + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/users/seth +[2]: https://joinmastodon.org/ +[3]: https://fosstodon.org/about/ +[4]: https://opensource.com/sites/default/files/2022-11/favorite-button.webp +[5]: https://opensource.com/sites/default/files/2022-11/boost-button.webp +[6]: https://mastodon.social/about +[7]: https://scholar.social/about/more +[8]: https://hub.fosstodon.org/coc/ +[9]: https://github.com/mastodon/mastodon +[10]: https://en.wikipedia.org/wiki/ActivityPub From 95c58df4c0abf675b1b8a709fbe8735c3c26dabd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:22:04 +0800 Subject: [PATCH 1997/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221111.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Drop=20swap=20for=20zram=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 191 ++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md diff --git a/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md new file mode 100644 index 0000000000..df8dd3e3fa --- /dev/null +++ b/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md @@ -0,0 +1,191 @@ +[#]: subject: "Drop swap for zram on Linux" +[#]: via: "https://opensource.com/article/22/11/zram-swap-linux" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Drop swap for zram on Linux +====== + +Zram is a tool for creating an in-RAM compressed cache, specifically for use as swap space. + +I spend a lot of time playing (I mean working) on my computers, and I've found a lot of interesting things. One that has most recently come to my attention is the `zram0` device. I first noticed it when working on one of my Opensource.com articles several months ago. It showed up in the output from the `lsblk` command: + +``` +# lsblk +NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS +sda             8:00 931.5G  0 disk +├─sda1          8:10   600M  0 part +[...] +zram0         252:00     8G  0 disk [SWAP] +``` + +It's identified as swap space, which is what first piqued my curiosity, so I did some exploration. Zram was originally called "compcache," which stands for "compressed cache." It turns out that zram is a tool for creating an in-RAM compressed cache, specifically for use as swap space. + +But Why? + +When I began researching zram, all I found were a couple of basic articles about using zram for swap space. At first, this seemed a bit counterintuitive to me. After all, if you're running out of RAM and you swap pages into a virtual drive in RAM, what's gained? + +I then found the Fedora Project wiki page that proposed the use of [Swap on zram][1]. The proposal says: "Swap is useful, except when it's slow. zram is a RAM drive that uses compression. Create a swap-on-zram during start-up. And no longer use swap partitions by default." + +The rest of the page is about details, benefits, side effects, and feedback. + +### Zram for swap space on Linux + +Using zram for swap space is intended to do the same thing as regular partition-based or file-based swap space. When memory pressure becomes too great, some of the least recently used data is moved to swap space. On average, it's compressed to about 50% of its original size, and placed in zram space in RAM. This is much faster than storing those memory pages on a hard drive and frees up the RAM it was using for other use. + +### Saving on swap + +I tried to find revised recommendations for how much swap or zram swap to configure. This led me back to a reassessment of swap, and my previous article, [What's the right amount of swap space for a modern Linux system?][2] As far as I can tell from the most current documentation for RHEL and Fedora, the recommended amount of swap space has not changed. That documentation, however, ignores the use of zram. + +However, the tables in that previous article still provide a good starting point for swap space allocation when using older releases of Linux that don't use zram or in cases where zram has been disabled. + +The documents I found for the Zram feature are inconsistent in terms of how zram is allocated with respect to RAM size, and the amount of space allocated to zram swap. + +Due to the lack of authoritative documentation, I performed some experiments to empirically determine the algorithm used to allocate zram swap. I used my own physical and virtual systems for this. The results are interesting and do not match any documentation I've so far found. + +The default size of zram is 8 GB on all systems large enough to support that, but it's typically reduced significantly on hosts with small amounts of RAM. On one virtual machine (VM) I use for testing, with access to 4 GB of RAM, the zram virtual swap space is allocated to 3.8 GB. One old Dell I have contains 8 GB of RAM, and the zram is set to 7.6 GB. When RAM is reduced to 2 GB, Zram is reduced to 1.9 GB. + +All physical and virtual hosts I have with more than 8 GB of RAM show exactly 8 GB of zram. This includes my primary workstation with 64 GB of RAM and other hosts with 16 GB or 32 GB of RAM. + +Based on these few data points, I can draw the conclusion that the current default settings are for 8 GB of zram at most, and for zram to be 95% of RAM on hosts with 8 GB or less. + +I have read a number of articles that mention other sizes for zram swap, even up to 100% of RAM, but those all seem to be theoretical rather than reality. + +Your distribution may be different, but here are the actual zram swap allocations for Fedora and similar distributions: + +- **RAM ⇐ 8 GB:** 0.95 × RAM +- **RAM > 8 GB:** 8 GB + +Be aware that the zram swap size algorithm is not based on any recommendations for the "best" swap size for any given real-world system or application. This zram swap allocation is a rather probabilistic approach to what should work well on a wide range of Linux hosts. However, the fact that the maximum zram swap size is configured for 8 GB and the fact that I have always recommended 8 GB as the maximum amount of traditional swap, I think I can say it's reflective of the optimum sizes for zram swap. + +### Managing zram swap + +Zram defaults are stored in the `/usr/lib/systemd/zram-generator.conf` configuration file. The following is from one of my test VMs with 5097 GB of RAM allocated. + +``` +# cat /usr/lib/systemd/zram-generator.conf +# This config file enables a /dev/zram0 device with the default settings: +# - size - same as available RAM or 8GB, whichever is less +# - compression - most likely lzo-rle +# +# To disable, uninstall zram-generator-defaults or create empty +# /etc/systemd/zram-generator.conf file. +[zram0]zram-size= min(ram, 8192) +``` + +You can change the default Zram swap size in the last line of the `zram-generator.conf` configuration file. I recommend against doing that, unless you can definitively show a reason for doing so, and test your results once you make any changes. Like many other configuration defaults in Linux, the zram ones have been well-tested and are appropriate for most use cases. + +### Monitor zram + +The zramctl utility can be used to view the current state of zram. + +``` +# zramctl +NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT +/dev/zram0 lzo-rle       4.8G   4K   80B   12K       4[SWAP] +``` + +The traditional `swapon` command can also be used to view swap including zram used as swap: + +``` +# swapon --show +NAME       TYPE      SIZE USED PRIO +/dev/zram0 partition 4.8G   0B  100 +``` + +One thing to be aware of is that `zramctl` does not report on zram when it contains no data, so the results contain null output. Tools like `lsblk`, `swapon`, `top`, `free`, `htop`, and so on, do show zram even when it contains no data. + +### Deactivate zram + +The `swapoff -a` command turns off `zram` swap as well as traditional HDD or SSD storage used as swap. The `swapon -a` command does not show zram when it is empty. Use `zramctl /dev/zram0` instead. + +``` +# swapon --show# lsblk +NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS +sda             8:00  120G  0 disk +├─sda1          8:10    1G  0 part /boot/efi +├─sda2          8:20    1G  0 part /boot +└─sda3          8:30  118G  0 part +  ├─vg01-root 253:00   10G  0 lvm  / +  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] +  ├─vg01-usr  253:10   30G  0 lvm  /usr +  ├─vg01-home 253:20   10G  0 lvm  /home +  ├─vg01-var  253:30   30G  0 lvm  /var +  └─vg01-tmp  253:40   10G  0 lvm  /tmp +sr0            11:01 1024M  0 rom +zram0         252:00    0B  0 disk +# zramctl## zramctl /dev/zram0 +NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT +/dev/zram0 lzo-rle         0B   0B    0B    0B       4 +``` + +Note that `/dev/zram0` doesn't show up in these commands as swap space until it's being used for that purpose. This caused me some confusion until my experiments showed it to be the case. + +### Creating Zram Swap + +Zram itself has been around for about 20 years, but has only been in use as swap space on some distributions for the last year or two. The current Linux installation on some or all of your hosts may not have been created with zram for swap. If that's the case, it can be easily remedied. + +For Fedora 32, the last release prior to the default use of zram for swap, it only takes three easy commands. + +First, verify the presence of the `zram-swap.service` file, installed as part of the `zram` RPM package. + +``` +# systemctl status zram-swap +● zram-swap.service - Enable compressed swap in memory using zram +     Loaded: loaded (/usr/lib/systemd/system/zram-swap.service; disabled; vendor preset: disabled) +     Active: inactive (dead) +``` + +Next, install the `zram-generator-defaults` and `zram-generator` packages. + +``` +# dnf install zram-generator-defaults zram-generator +``` + +Enable and start the zram-swap service: + +``` +# systemctl enable zram-swap.service# systemctl start zram-swap.service +``` + +And then verify that `zram0` exists, and is being used as swap space: + +``` +# lsblk +NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT +sda             8:00  120G  0 disk +├─sda1          8:10    2G  0 part /boot +└─sda2          8:20  118G  0 part +  ├─vg01-root 253:00   10G  0 lvm  / +  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] +  ├─vg01-usr  253:20   35G  0 lvm  /usr +  ├─vg01-tmp  253:30   15G  0 lvm  /tmp +  ├─vg01-var  253:40   35G  0 lvm  /var +  └─vg01-home 253:50   20G  0 lvm  /home +sr0            11:01 1024M  0 rom +zram0         252:00  7.5G  0 disk [SWAP] +``` + +### Improve swap with zram + +That's all there is to it. It was easy with Fedora. Different distributions will likely be just as easy, with some possible different details in the package names and commands. Give zram swap a try on your computer. In my next article, I'll demonstrate some further zram options. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/zram-swap-linux + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM +[2]: https://opensource.com/article/19/2/swap-space-poll From 1347c093cd172537d2560cf3d94ce3424d1a3a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:22:37 +0800 Subject: [PATCH 1998/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221111.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20switch=20from=20Twitter=20to=20Mastodon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ How to switch from Twitter to Mastodon.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md diff --git a/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md new file mode 100644 index 0000000000..de816dc913 --- /dev/null +++ b/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md @@ -0,0 +1,118 @@ +[#]: subject: "How to switch from Twitter to Mastodon" +[#]: via: "https://opensource.com/article/22/11/switch-twitter-mastodon" +[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to switch from Twitter to Mastodon +====== + +Mastodon is an open source microblogging community. + +Like many people, I find social media somewhat exciting and also...a bit much. Sometimes you get deep-fried in algorithms, tracking data, and ads catered especially for you. You lack administrative control over what you want to see, especially on the old platforms many of us are used to. As usual, you must look to open source to fix the problem. And that's exactly what [Mastodon][1], an open source microblogging community, does. + +With Mastodon social, not only are you working with open source software, but everything is decentralized, which means you can pick what you want to see partly based on the instance you want to occupy. Mastodon uses separate instances, each with its own code of conduct, privacy options, and moderation policies. That means that when you join an instance, you're less likely to see the stuff you're not interested in and more likely to see messages from people who share your interests. + +However, you can also interact with other instances. All Mastodon installs have the potential to be "federated" in what its users call the "fediverse." + +### What is the fediverse? + +The fediverse is an ensemble of federated (or interconnected) servers. The word comes from the mix of "federated" and "universe." You can use this for all sorts of web publishing, from social networking to websites to file hosting. While each instance is hosted independently, they can talk to each other. + +### So how can I sign up for Mastodon? + +First, go to [Mastodon.social][2] to sign up. + +On the right-hand side of the screen, there are **Sign in** and **Create account** buttons. + +![Sign-in or Create Account interface][3] + +However, because anyone can run a Mastodon server, there are many instances, and some servers are already home to a community with interests that may align with your own. As I've said, you'll have access to the whole fediverse no matter what, but it can be nice to start on a server where people already "speak your language" (that can be literal, too, because you can add a filter to find a server in your native language). + +To find a server, click the **Find another server** button. + +![Signing up interface][4] + +When you click that button, you're brought to the [Join Mastodon page][5], with a button to list available servers. + +![Getting started interface][6] + +As you scroll down, you can pick a topic on the left to help you find where you would like to be hosted. + +![Topic list][7] + +I'm all about open source, so let's see what we have in the technology topic. + +![Technology topics][8] + +As you can see, there's a large index with many waiting lists. In this case, it looks like Don Watkins, a fellow Opensource.com author, has chosen an instance that works for himself and our talented group. So I'll skip ahead and tell you where I'm going: There's a free open source software server known as [Fosstodon][9], and I've chosen to sign up there so I can share my articles freely. + +Here are the sign-in steps. + +First, enter your information: + +![Steps for signing in][10] + +Next, you get a message about a confirmation email: + +![Confirmation message][11] + +When you get to your email, click the **Verify** button, and the system prompts you to confirm your login information. + +This server does have an application process to join. This process isn't just for safety reasons but also for privacy. Once approved, you get this amazing email! + +![Welcome message][12] + +I kept my handle from other social media venues, so it's easy to move back and forth from one place to another and cross-post with replication and API calls. + +### Complete control + +Now that I have a new profile, I can change preferences on what emails I receive, allowing for more control over what I see. This is a good way to give me more power over my media intake, and it's greatly appreciated. Once I click **Preferences**, Mastodon offers me cool appearance, language information, and many other options. + +![Appearance settings][13] + +Next, I can click notifications and limit what I see and what I get notified for, so I can opt for less noise. + +![Notifications settings][14] + +This complete control of my media without algorithmic intervention is great. You can also set up featured hashtags for what you want on your profile to follow long-term projects or allow people to find you by following those hashtags. You also have the options for filters, followers, and so much more. + +### Final notes + +This open source social media is a great way to find your group of people and broadly interact with those in a broad universe of interests. Controlling media intake is great for some balance in your life, and you can opt-in to contributing by checking the [contributor rules][15]. + +In addition to the control over your own social media experience, you also gain phone apps that work on all devices, including Toot for iPhone and Tusky for Android. + +Long story short: I think we should all get ready for a new open source world of social media. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/switch-twitter-mastodon + +作者:[Jessica Cherry][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/cherrybomb +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/11/twitter-vs-mastodon +[2]: https://mastodon.social/ +[3]: https://opensource.com/sites/default/files/2022-11/1signin-createaccount.png +[4]: https://opensource.com/sites/default/files/2022-11/2signingup.png +[5]: https://joinmastodon.org/servers +[6]: https://opensource.com/sites/default/files/2022-11/3gettingstarted.png +[7]: https://opensource.com/sites/default/files/2022-11/4topics.png +[8]: https://opensource.com/sites/default/files/2022-11/5techtopic.png +[9]: https://fosstodon.org/ +[10]: https://opensource.com/sites/default/files/2022-11/6signin.jpg +[11]: https://opensource.com/sites/default/files/2022-11/7confirmation.png +[12]: https://opensource.com/sites/default/files/2022-11/8welcome.png +[13]: https://opensource.com/sites/default/files/2022-11/9appearance.png +[14]: https://opensource.com/sites/default/files/2022-11/10notifications.png +[15]: https://github.com/mastodon/mastodon/blob/main/CONTRIBUTING.md From 5c7f68ee178c44ec08b0171f8c3c2860771775be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:24:24 +0800 Subject: [PATCH 1999/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221112.0=20=E2=AD=90=EF=B8=8F=20Learn=20Python=207?= =?UTF-8?q?=20of=20my=20favorite=20resources.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Learn Python 7 of my favorite resources.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md diff --git a/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md b/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md new file mode 100644 index 0000000000..8186cd607e --- /dev/null +++ b/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md @@ -0,0 +1,80 @@ +[#]: subject: "Learn Python: 7 of my favorite resources" +[#]: via: "https://opensource.com/article/22/11/learn-python" +[#]: author: "Don Watkins https://opensource.com/users/don-watkins" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Python: 7 of my favorite resources +====== + +Over the years, I've honed my Python skills thanks to these open source resources. + +I made a decision recently that I wanted to learn more Python so I could improve my instructional skills and broaden the horizons of my students. In the process, I have discovered these excellent resources that have me learning new code and improving my understanding of Python in general. + +### 1. Teach your kids to code + +I began the Python journey about seven years ago when I discovered connections between Apple LOGO and the [Turtle module][1] in Python. The Linux computer I was using at the time defaulted to Python 2.7, and I soon discovered that I wanted to use Python 3. I managed to get it installed and began writing some simple programs using the Turtle module. After reading Dr. Bryson Payne’s [Teach Your Kids to Code][2], I realized there was a lot more to Python than just Turtle. That’s when I installed [IDLE][3]. + +### 2. IDLE + +Working with IDLE, the interactive interface improved my experience and made me confident enough to consider teaching Python to students. I volunteered to help a group of home-schooled children in my community and soon found myself teaching a class of sixteen! I’m glad their parents stayed and agreed to be my assistants, otherwise I think I’d have been overwhelmed. The experience whetted my appetite to learn more so I could teach more. + +### 3. Mu Editor + +The following spring in 2018 I attended PyConUS. I listened to a talk by [Nicholas Tollervey][4], a middle school teacher, who had written a Python development environment for school-age children. The [Mu editor][5] has a linter built into it, which helped me to see where my errors in programming were. Mu helped me improve my coding skills, and I was able to share that with students, who benefitted as well. + +As my confidence and experience grew, I became eager to share the Python journey with still more students. I co-wrote a grant the following year to teach a class that used Raspberry Pi 4 computers and Python. The pandemic interrupted that experience. In the interim, the Raspberry Pi Foundation released the Pi 400. In the spring of 2021, I used the materials I had developed the previous year and a generous grant from a local library to [teach two groups][6] of students how to program. That event was so successful that it was repeated this year. + +### 4. Codium + +Several years ago, I learned that Microsoft’s Visual Studio Code is an open source code editor that can be used on Linux. One of the aspects of my Python learning journey that had eluded me until recently was how to set up and use a virtual environment for Python programming, which had been suggested when using VS Code. My questions were answered here on Opensource.com in an [article about venv][7], and that opened the door to learning how to set up and configure Python virtual environments on my Linux computer. Around the same time, I found [Codium][8], a community project built around VS Code. + +Now I want to share the VS Codium experience with my students and open their understanding of Python beyond the Turtle module. This zest for learning has me looking for training resources that are open source and freely available on the internet. + +### 5. Python gently explained + +The book [Automate the Boring Stuff with Python][9] by Al Sweigart has long been a favorite of mine. Now, the author has released [Python Programming Exercises, Gently Explained][10]. Both books are available online for free and are openly licensed with Creative Commons license. + +### 6. Python for everyone + +Dr. Charles Severance released [Python for Everyone][11] in 2017, which I highly recommend. He provides "bite size" lessons for aspiring programmers like me. The code for the course is available on [GitHub][12], so you can download it and install it on your own computer or school network. + +### 7. Python videos + +Recently I learned that Opensource.com alumnus [Jay LaCroix][13] has an excellent series of twenty-eight videos available for free on YouTube that begin with Python basics and span the gamut of a solid introduction to [Python programming][14]. Best of all, he uses a Linux computer, so his lessons are especially appropriate for a Linux programming environment. One of the takeaways from these videos is learning to use [nano][15] as a programming environment, and it’s included by default in most Linux distributions. + +### Your learning path + +These seven resources have helped me grow as a programmer, and it’s all open source and available to share with others. How have you been honing your programming skills? What would you like to share? Let us know in the comments. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/learn-python + +作者:[Don Watkins][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/don-watkins +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/9/logo-python-turtle +[2]: https://opensource.com/education/15/9/review-bryson-payne-teach-your-kids-code +[3]: https://docs.python.org/3/library/idle.html +[4]: https://us.pycon.org/2018/speaker/profile/194/ +[5]: https://opensource.com/article/20/9/teach-python-mu +[6]: https://opensource.com/article/21/6/teach-python-raspberry-pi +[7]: https://opensource.com/article/20/10/venv-python +[8]: https://opensource.com/article/22/11/python-vs-code-codium +[9]: https://automatetheboringstuff.com/#toc +[10]: https://inventwithpython.com/pythongently/ +[11]: https://www.py4e.com/lessons +[12]: https://github.com/csev/py4e +[13]: https://opensource.com/users/jlacroix +[14]: https://youtube.com/playlist?list=PLT98CRl2KxKGIazPd2nQEPbG7sQpT8LEj +[15]: https://opensource.com/article/20/12/gnu-nano From 0abb164c8f23c72371440f0fde37d30269f4980b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 13 Nov 2022 14:30:18 +0800 Subject: [PATCH 2000/3123] =?UTF-8?q?Update=2020221110.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20How=20to=20Fix=20bash=20wget=20Command=20Not=20Foun?= =?UTF-8?q?d=20Error.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow to Fix bash wget Command Not Found Error.md | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md index dd8e9bb4e8..5d010bc7e5 100644 --- a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md +++ b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md @@ -69,7 +69,28 @@ wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso Similarly, you can also download using the above command or, by combining several switches as described below. You can also get this via `wget --help` command. ``` --t, --tries=NUMBER set number of retries to NUMBER (0 unlimits)--retry-connrefused retry even if connection is refused--retry-on-http-error=ERRORS comma-separated list of HTTP errors to retry-O, --output-document=FILE write documents to FILE-nc, --no-clobber skip downloads that would download toexisting files (overwriting them)--no-netrc don't try to obtain credentials from .netrc-c, --continue resume getting a partially-downloaded file--start-pos=OFFSET start downloading from zero-based position OFFSET--progress=TYPE select progress gauge type--show-progress display the progress bar in any verbosity mode-N, --timestamping don't re-retrieve files unless newer thanlocal--no-if-modified-since don't use conditional if-modified-since getrequests in timestamping mode--no-use-server-timestamps don't set the local file's timestamp bythe one on the server-S, --server-response print server response--spider don't download anything-T, --timeout=SECONDS set all timeout values to SECONDS--dns-timeout=SECS set the DNS lookup timeout to SECS--connect-timeout=SECS set the connect timeout to SECS--read-timeout=SECS set the read timeout to SECS-w, --wait=SECONDS wait SECONDS between retrievals(applies if more then 1 URL is to be retrieved)--waitretry=SECONDS wait 1..SECONDS between retries of a retrieval(applies if more then 1 URL is to be retrieved)--random-wait wait from 0.5WAIT…1.5WAIT secs between retrievals(applies if more then 1 URL is to be retrieved) +-t, --tries=NUMBER set number of retries to NUMBER (0 unlimits) +--retry-connrefused retry even if connection is refused +--retry-on-http-error=ERRORS comma-separated list of HTTP errors to retry +-O, --output-document=FILE write documents to FILE +-nc, --no-clobber skip downloads that would download toexisting files (overwriting them) +--no-netrc don't try to obtain credentials from .netrc +-c, --continue resume getting a partially-downloaded file +--start-pos=OFFSET start downloading from zero-based position OFFSET +--progress=TYPE select progress gauge type +--show-progress display the progress bar in any verbosity mode +-N, --timestamping don't re-retrieve files unless newer than local +--no-if-modified-since don't use conditional if-modified-since get requests in timestamping mode +--no-use-server-timestamps don't set the local file's timestamp by the one on the server +-S, --server-response print server response +--spider don't download anything +-T, --timeout=SECONDS set all timeout values to SECONDS +--dns-timeout=SECS set the DNS lookup timeout to SECS +--connect-timeout=SECS set the connect timeout to SECS +--read-timeout=SECS set the read timeout to SECS +-w, --wait=SECONDS wait SECONDS between retrievals (applies if more then 1 URL is to be retrieved) +--wait retry=SECONDS wait 1..SECONDS between retries of a retrieval (applies if more then 1 URL is to be retrieved) +--random-wait wait from 0.5WAIT…1.5WAIT secs between retrievals(applies if more then 1 URL is to be retrieved) ``` ### Wrapping Up From 2338fee845b00433a2abf2cc05e5d9e1092a23c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 13 Nov 2022 15:40:08 +0800 Subject: [PATCH 2001/3123] RP @Donkey-Hao https://linux.cn/article-15248-1.html --- ... 4 open source editors I use for my writing.md | 60 +++++++++++++++++++ ... 4 open source editors I use for my writing.md | 56 ----------------- 2 files changed, 60 insertions(+), 56 deletions(-) create mode 100644 published/20221020.7 ⭐️ 4 open source editors I use for my writing.md delete mode 100644 translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md diff --git a/published/20221020.7 ⭐️ 4 open source editors I use for my writing.md b/published/20221020.7 ⭐️ 4 open source editors I use for my writing.md new file mode 100644 index 0000000000..bf7e54d2f9 --- /dev/null +++ b/published/20221020.7 ⭐️ 4 open source editors I use for my writing.md @@ -0,0 +1,60 @@ +[#]: subject: "4 open source editors I use for my writing" +[#]: via: "https://opensource.com/article/22/10/open-source-editors" +[#]: author: "Alan Formy-Duval https://opensource.com/users/alanfdoss" +[#]: collector: "lkxed" +[#]: translator: "Donkey-Hao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15248-1.html" + +我使用的 4 款开源编辑器 +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/13/153838gs7u2z33qxxfigx3.jpg) + +> 分享一些我最喜欢的开源写作工具。 + +在我的职业生涯中,我已经写过很多东西,主要是作为一名 IT 顾问,创建产品文档作为给的客户可交付成果。这些文档通常针对不同操作系统和软件产品提供说明。 + +自 2018 年,我开始在 www.opensource.com 上发表关于开源软件的文章。当然,我使用开源软件进行协作。接下来我将介绍我使用过的四款开源编辑器。 + +### 1、Vi + +[Vi][1] 也被称为 `Vim`(LCTT 校注:此外不确,Vi 和 Vim 是两个软件,只是 Vim 取代了 Vi,并以 `vi` 的名字运行。),是我学习的第一款开源编辑器。这是我在计算机科学课程中学习的编辑器,并且我所有的 C 语言编程都是通过它完成的。自 1995 年以来,实际上我一直使用它作为命令行编辑器。这款工具有多个迭代版本,以至于我都可以为之写一系列文章了。我只想说,在我的日常使用中,我坚持使用它的基本命令行形式,并进行最小的定制。 + +### 2、LibreOffice Writer + +Writer 是 LibreOffice 开源办公套件的一部分。它是由文档基金会Document Foundation维护的全功能文字处理器。它支持行业标准格式,例如开放文档格式 (ODF)、Open XML 和 MS Office DOC、DOCX。可以在其官方网站上 [了解有关 Writer 的更多信息][2]。 + +### 3、Ghostwriter + +Ghostwriter 是一个用于 [Markdown 的文本编辑器][3]。它有一个很好的实时查看器和语法指南或备忘单功能。[访问官方网站][4] 了解更多内容。 + +### 4、Gedit + +Gedit 是许多 Linux 发行版中的基本图形编辑器,被描述为“用于 GNOME 桌面的小型轻量级文本编辑器”。我最近开始使用它来创建 Asciidoc 格式的文章。使用 Asciidoc 的好处是语法易于管理并可导入到 Drupal 等 Web 渲染系统中。通过 [Gedit Wiki][5] 了解许多提示和技巧。 + +### 编辑文本 + +开源世界中有大量编辑软件。随着我继续写作,这个列表可能会增加。我的主要目标是格式简单。我希望我的文章易于在互联网平台上导入、转换和发布。 + +你的写作风格、功能需求和目标受众将指导你确定首选工具。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/open-source-editors + +作者:[Alan Formy-Duval][a] +选题:[lkxed][b] +译者:[Donkey-Hao](https://github.com/Donkey-Hao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/alanfdoss +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/12/vi-text-editor +[2]: https://www.libreoffice.org/discover/writer/ +[3]: https://opensource.com/article/21/10/markdown-editors +[4]: https://github.com/KDE/ghostwriter +[5]: https://wiki.gnome.org/Apps/Gedit diff --git a/translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md b/translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md deleted file mode 100644 index 091ba343c8..0000000000 --- a/translated/tech/20221020.7 ⭐️ 4 open source editors I use for my writing.md +++ /dev/null @@ -1,56 +0,0 @@ -[#]: subject: "4 open source editors I use for my writing" -[#]: via: "https://opensource.com/article/22/10/open-source-editors" -[#]: author: "Alan Formy-Duval https://opensource.com/users/alanfdoss" -[#]: collector: "lkxed" -[#]: translator: "Donkey-Hao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -我使用的 4 款开源编辑器 -====== - -在职业生涯中我已经写过很多东西,主要是作为一名 IT 顾问,将产品文档创建为客户可交付成果。这些文档通常针对不同操作系统和软件产品提供说明。 - -自 2018 年,我开始在 `www.opensource.com` 上发表关于开源软件的文章。当然,我使用开源软件进行协作。接下来我将介绍我使用过的四款开源编辑器。 - -### 1. Vi - -[Vi][1] 也被称为 `Vim`,是我学习的第一款开源编辑器。这是我在计算机科学课程中学习的编辑器,并且我所有的 C 语言编程都是通过它完成的。自 1995 年以来,实际上我一直使用它作为命令行编辑器。这款工具有多个迭代版本,以至于我都可以为之写一系列文章了。为了日常使用方便,仅进行了一点点的改动,可以说我一直用它的基本命令行形式。 - -### 2. LibreOffice Writer - -Writer 是 LibreOffice 开源办公套件的一部分。它是由文档基金会(Document Foundation)维护的全功能文字处理器。它支持行业标准格式,例如开放文档格式 (ODF)、Open XML 和 MS Office DOC、DOCX。可以在其官方网站上 [了解有关 Writer 的更多信息][2]。 - -### 3. Ghostwriter - -Ghostwriter 是用于 [Markdown 的文本编辑器][3]。它有一个很好的实时查看器和语法指南或备忘单功能。[访问官方网站][4] 了解更多内容。 - -### 4. Gedit - -Gedit 是许多 Linux 发行版中的基本图形编辑器,被描述为“用于 GNOME 桌面的小型轻量级文本编辑器”。我最近开始使用它来创建 Asciidoc 格式的文章。使用 Asciidoc 的好处是语法易于管理并可导入到 Drupal 等 Web 渲染系统中。通过 [Gedit Wiki][5] 了解许多提示和技巧。 - -### 编辑文本 - -开源世界中有大量编辑软件。随着我继续写作,这个列表可能会增加。我的主要目标是格式简单。我希望我的文章易于在互联网平台上导入、转换和发布。 - -你的写作风格、功能需求和目标受众将指导你确定首选工具。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/open-source-editors - -作者:[Alan Formy-Duval][a] -选题:[lkxed][b] -译者:[Donkey-Hao](https://github.com/Donkey-Hao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/alanfdoss -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/20/12/vi-text-editor -[2]: https://www.libreoffice.org/discover/writer/ -[3]: https://opensource.com/article/21/10/markdown-editors -[4]: https://github.com/KDE/ghostwriter -[5]: https://wiki.gnome.org/Apps/Gedit From 41cb2e5953ffc383325bccfbef1eebbb10e243fa Mon Sep 17 00:00:00 2001 From: Muggle Wei Date: Sun, 13 Nov 2022 20:39:11 +0800 Subject: [PATCH 2002/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91:=20tech/20221014?= =?UTF-8?q?=2013=20Independent=20Linux=20Distros=20That=20are=20Built=20Fr?= =?UTF-8?q?om=20Scratch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nux Distros That are Built From Scratch.md | 205 +++++++++--------- 1 file changed, 103 insertions(+), 102 deletions(-) diff --git a/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md index 0983918cc6..01e814cbe3 100644 --- a/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md +++ b/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md @@ -2,60 +2,60 @@ [#]: via: "https://itsfoss.com/independent-linux-distros/" [#]: author: "sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MuggleWei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -13 Independent Linux Distros That are Built From Scratch +13个从头开始构建的独立Linux发行版 ====== -There are hundreds of Linux distributions available. +时至今日, 世界上已经有成百上千种不同的Linux发行版. -But most of them fall into these three categories: Debian, Red Hat (Fedora) and Arch Linux. +它们中的大多数都可以被划归为三个大类: Debian, Red Hat (Fedora) 以及 Arch Linux. -Using a distribution based on Debian/Ubuntu, Red Hat/SUSE or Arch Linux has its advantages. They are popular and hence their package manager offers a huge range of software. +使用基于Debian/Ubuntu, Red Hat/SUSE 或者 Arch的Linux发行版自然有它们的优势. 它们很受大众欢迎, 因此它们的包管理器能够提供大量的软件包. -However, some users prefer to use Linux distributions built from scratch and be independent of DEB/RPM packaging system. +然而, 有一些用户更倾向于使用从头开始构建, 独立于DEB/RPM这类包管理系统的发行版本. -In this article, we will list some of the best Linux distributions developed independently. +在这篇文章当中, 我们将列出一些优秀的独立Linux发行版. -**Note:** Obviously, this list excludes popular options like Debian, Ubuntu, and Fedora, which are used as bases for creating new distros. Moreover, the distributions are in no particular order of ranking. +**注意:** 显然, 下面的列表显然不会包括一些广受欢迎, 通常作为创建新的发现版基础的发行版, 如Debian, Ubuntu 和 Fedora等. 此外, 列表顺序不分先后, 没有特定的排名. ### 1. NixOS ![Image Credits: Distrowatch][1] -Initially released in 2003, Nix OS is built on top of the Nix Package Manager. It provides two releases every year, usually scheduled in May and November. +NixOS最初发布于2003年, NixOS 建立在 Nix 包管理器之上. 它每年发布两个版本, 通常是在5月和11月. -NixOS may not be a distribution directly geared to new and average users. However, its unique approach to [package management][2] attracts various kinds of users. +NixOS显然不是一个直接面向新用户或普通用户的发行版. 然而, 其独特的[包管理][2]方法吸引了各种用户. -Additionally, 32-bit support systems are also supported. +此外, 它仍然支持32位系统. -##### Other Features: +##### 其他特性: -* Builds packages isolated -* Reliable upgrade with rollback feature -* Reproducible system configuration +* 构建隔离的包 +* 可靠的升级, 并且具有回滚功能 +* 可重现的系统配置 [NixOS][3] -**Related**: [Advanced Linux Distributions for Expert Linux Users][4] +**相关链接**: [面向专家用户的高级 Linux 发行版][4] ### 2. Gentoo Linux ![Image Credits: Distrowatch][5] -Gentoo Linux is an independently developed distribution aimed mainly at system experts. It is built for users who want the freedom to customize, fine-tune and optimize the operating system to suit their requirements. +Geetoo Linux是一个主要针对系统专家的独立Linux发行版. 它是为那些希望自由定制、微调和优化操作系统以满足其要求的用户而构建。 -Gentoo uses [Portage package management][6] that lets you create and install packages, often allowing you to optimize them for your hardware. **Chromium OS**, the open-source version of Chrome OS, uses Gentoo at its core. +Gentoo 使用[Portage 包管理器][6]来创建和安装软件包, 通常还允许你针对你的硬件来优化它们. Chrome的开源版本**Chromium OS**便是使用Gentoo作为其核心的. -Not to forget, Gentoo is one of those [distributions that still support 32-bit architectures][7]. +不要忘记, Gentoo是[仍然支持 32 位架构的发行版][7]之一. -##### Other Features: +##### 其他特性: -* Incremental Updates -* Source-based approach to software management -* Concept of overlay repositories like GURU (Gentoo’s user repository), where users can add packages not yet provided by Gentoo +* 增量更新 +* 基于源码的软件管理方法 +* 支持GURU(Gentoo用户仓库)的Overlay仓库的概念, 允许用户添加Gentoo尚未提供的软件包 [Gentoo Linux][8] @@ -63,37 +63,38 @@ Not to forget, Gentoo is one of those [distributions that still support 32-bit a ![Image Credits: Distrowatch][9] -Void Linux is a [rolling release distribution][10] with its own X Binary Package System (XBPS) for installing and removing software. It was created by **Juan Romero Pardines**, a former NetBSD developer. +Void Linux是一个[滚动发布的发行版][10], 使用X Binary Package System(XBPS)来安装和删除软件. 它由前NetBSD开发者**Juan Romero Pardines**创建. -It avoids systemd and instead uses runit as its init system. Furthermore, it gives you the option to use several [desktop environments][11]. +它使用runit而不是systemd作为其初始化系统. 此外, 它还让你可以选择使用多个 [桌面环境][11]. -##### Other Features: +##### 其他特性: -* Minimal system requirements -* Offers an official repository for non-free packages -* Support for Raspberry Pi -* Integration of OpenBSD’s LibreSSL software -* Support for musl C library -* 32-bit support +* 最低的系统要求 +* 官方库也提供非自由软件包 +* 支持树莓派 +* 集成OpenBSD的LibreSSL +* 支持musl C库 +* 支持32位系统 [Void Linux][12] **Related:** [Not a Systemd Fan? Here are 13+ Systemd-Free Linux Distributions][13] +**相关链接:** [不是Systemd的粉丝? 这里有13个无Systemd的Linux发行版][13] ### 4. Solus Linux ![solus budgie 2022][14] -Formerly EvolveOS, Solus Linux offers some exciting features while built from scratch. Solus features its own homegrown budgie desktop environment as its flagship version. +Solus的前身是EvolveOS, 它从头开始构建并提供了一些令人兴奋的特性. Solus的旗舰版本使用自己的homegrown budgie作为桌面环境. -Compared to other options, Solus Linux is one of the few independent distributions that new Linux users can use. It manages to be one of the [best Linux distributions][15] available. +与本篇文章介绍的其他系统相比, Solus对于新手较为友好. 它设法成为[最好的Linux发行版][15]之一. -It uses eopkg package management with a semi-rolling release model. As per the developers, Solus is exclusively developed for personal computing purposes. +它使用eopkg作为其包管理系统, 支持版滚动发布模型. 按照开发人员的说法, 开发Solus的目标是个人电脑. -##### Other Features: +##### 其他特性: -* Available in Budgie, Gnome, MATE, and KDE Plasma editions -* Variety of software out of the box, which reduces setup efforts +* 支持Budgie、Gnome、MATE和KDE Plasma +* 各种开箱即用的软件,从而减少设置工作 [Solus Linux][16] @@ -101,35 +102,35 @@ It uses eopkg package management with a semi-rolling release model. As per the d ![Image Credits: Distrowatch][17] -Mageia started as a fork of Mandriva Linux back in 2010. It aims to be a stable and secure operating system for desktop and server usage. +Mageia始于2010年, 它是Mandriva Linux的一个分支. 它的目标是成为稳定且安全的桌面和服务器操作系统。 -Mageia is a community-driven project supported by a non-profit organization and elected contributors. You will notice a major release every year. +Mageia是一个社区驱动的项目, 由非营利组织和贡献者支持. 每年会发布一个大版本. -##### Other Features +##### 其他特性: -* Supports 32-bit system -* KDE Plasma, Gnome, and XFCE editions are available from the website -* Minimal system requirements +* 支持32位系统 +* 支持KDE Plasma, Gnome和XFCE +* 最低的系统要求 [Mageia][18] -**Related:** **[Linux Distros That Still Support 32-Bit Systems][19]** +**相关链接:** **[仍然支持32位系统的Linux发行版][19]** ### 6. Clear Linux ![Image Credits: Distrowatch][20] -Clear Linux is a distribution by Intel, primarily designed with performance and cloud use cases in mind. +Clear Linux是一个由Intel发布的发行版, 主要设计考虑是性能和云服务的使用. -One interesting thing about Clear Linux is the operating system upgrades as a whole rather than individual packages. So, even if you mess up with the system accidentally, it should boot correctly, performing a factory reset to let you set it up again. +有趣的是, Clear Linux升级时是作为一个整体而非去升级单个的软件包. 所以, 即使你不小心弄乱了系统设置, 它也可以正确的启动, 执行恢复出厂设置, 并让用户重新设置. -It is not geared toward personal use. But it can be a unique choice to try. +它不太适合个人用户使用. 但可以作为一个独特的选择而尝试一下. -##### Other Features: +##### 其他特性: -* Highly tuned for Intel platforms -* A strict separation between User and System files -* Constant vulnerability scanning +* 针对Intel平台的高度调优 +* 用户和系统文件之间严格分离 +* 持续的漏洞扫描 [Clear Linux OS][21] @@ -137,14 +138,14 @@ It is not geared toward personal use. But it can be a unique choice to try. ![Image Credits: Distrowatch][22] -PCLinuxOS is an x86_64 Linux distribution that uses APT-RPM packages. You can get KDE Plasma, Mate, and XFCE desktops, while it also offers several community editions featuring more desktops. +PCLinuxOS是一个x86_64的Linux发行版, 使用APT-RPM包管理. 你可以使用KDE Plasma, Mate以及XFCE桌面, 它同时还提供了更多特性的社区版本的桌面. -Locally installed versions of PCLinuxOS utilize the APT package management system thanks to [Synaptic package manager][23]. You can also find rpm packages from its repositories. +本地安装的PCLinuxOS利用了APT包管理系统要感谢[Synaptic包管理器][23]. 你可以从它的仓库中找到rpm包. -##### Other Features: +##### 其他特性: -* mylivecd script allows the user to take a ‘snapshot’ of their current hard drive installation (all settings, applications, documents, etc.) and compress it into an ISO CD/DVD/USB image. -* Additional support for over 85 languages. +* mylivecd脚本允许用户去生成一个当前已安装的硬件驱动的'快照'(所有的配置, 应用, 文档等)并且将它压缩为ISO CD/DVD/USB映像 +* 附加支持超过85种语言 [PCLinuxOS][24] @@ -152,19 +153,19 @@ Locally installed versions of PCLinuxOS utilize the APT package management syste ![4m linux 2022][25] -[4MLinux][26] is a general-purpose Linux distribution with a strong focus on the following four **“M”**  of computing: +[4MLinux][26] 是一个通用的Linux发行版, 重点聚焦于下面四个 **“M”** -* Maintenance (system rescue Live CD) -* Multimedia (full support for a huge number of image, audio and video formats) -* Miniserver (DNS, FTP, HTTP, MySQL, NFS, Proxy, SMTP, SSH, and Telnet) -* Mystery (meaning a collection of classic Linux games) +* Maintenance (系统救援Live CD) +* Multimedia (支持大量的图形, 音频和视频格式) +* Miniserver (支持DNS, FTP, HTTP, MySQL, NFS, Proxy, SMTP, SSH, and Telnet) +* Mystery (包含了经典Linux游戏的集合) -It has a minimal system requirement and is available as a desktop and server version. +它具有最低的系统要求, 可作为桌面和服务器版本使用. -##### Other Features +##### 其他特性 -* Support for large number of image, audio/video formats -* Small and general-purpose Linux distribution +* 支持大量的图形, 音频和视频格式 +* 是小型并且通用的Linux发行版 [4MLinux][27] @@ -172,17 +173,17 @@ It has a minimal system requirement and is available as a desktop and server ver ![Image Credits: Distrowatch][28] -Tiny Core Linux focuses on providing a base system using BusyBox and FLTK. It is not a complete desktop. So, you do not expect it to run on every system. +Tiny Core Linux专注于使用BusyBox和FLTK提供一个基础的系统. 它不是一个复杂的桌面. 所有, 并不能保证它可以运行于任何系统. -It represents only the core needed to boot into a very minimal X desktop, typically with wired internet access. +它代表了启动到非常小的X桌面所需的核心功能, 通常带有有线互联网访问权限. -The user gets great control over everything, but it may not be an easy out-of-the-box experience for new Linux users. +用户可以很好的控制一切, 但对于新Linux用户来说, 它并不是一个轻松的开箱即用的系统. -##### Other Features +##### 其他特性 -* Designed to run from a RAM copy created at boot time -* By default, operates like a cloud/internet client -* Users can run appbrowser to browse repositories and download applications +* 旨在从启动时创建的内存副本中运行 +* 默认情况下, 其操作就像像云/互联网客户端一样 +* 用户可以使用appbrowser来游览库以及下载应用 [Tiny Core Linux][29] @@ -192,15 +193,15 @@ The user gets great control over everything, but it may not be an easy out-of-th [Reddit][31] -Linux From Scratch is a way to install a working Linux system by building all its components manually. Once completed, it provides a compact, flexible and secure system and a greater understanding of the internal workings of the Linux-based operating systems. +Linux From Scratch并不是一个系统, 而是通过手动构建所有组件来安装Linux的一种方法. 一旦完成, 它提供了一个紧凑、灵活和安全的系统, 并且可以很好的理解一个基于Linux的操作系统内部是如何工作的. -If you need to dive deep into how a Linux system works and explore its nuts and bolts, Linux From Scratch is the project you need to try. +如果你希望去深入理解Linux是如何工作的并且探寻其具体细节, 那么Linux From Scratch是你一定要去尝试, 不能错过的一个项目. -##### Other Features +##### 其他特性 -* Customised Linux system, entirely from scratch -* Extremely flexible -* Offers added security because of self compile from source +* 完全从头开始, 定制化的构建Linux系统 +* 极度的灵活性 +* 由于从源码开始编译, 提供了额外的安全性 [Linux From Scratch][32] @@ -208,15 +209,15 @@ If you need to dive deep into how a Linux system works and explore its nuts and ![Image Credits: Distrowatch][33] -Slackware is the oldest distribution that is still being maintained. Originally created in 1993, with Softlanding Linux System as base, Slackware later became the base for many Linux distributions. +Slackware是现今还在维护的最老的发行版. 最初创建于1993年, 以Softlanding Linux 系统为基础, 随后, 许多的Linux发行版都是基于Slackware. -Slackware aims at producing the most UNIX-like Linux distribution while keeping simplicity and stability. +Slackware目标是称为最类似于UNIX的Linux发行版, 同时保持简单和稳定. -##### Other Features +##### 其他特性 -* Available for 32-bit and 64-bit systems -* Extensive online documentation -* Can run on Pentium system to latest machines +* 支持32位和64位系统 +* 大量的在线文档 +* 从奔腾处理器到最新的机器, 它都可以运行 [Slackware][34] @@ -224,15 +225,15 @@ Slackware aims at producing the most UNIX-like Linux distribution while keeping ![alpine linux xfce 2022][35] -Alpine Linux is a community-developed operating system designed for routers, firewalls, VPNs, VoIP boxes, and servers. It began as a fork of the LEAF Project. +Alpine Linux是一个社区开发的操作系统, 专为路由器、防火墙、VPN、VoIP 盒子和服务器而设计. 它是LEAF项目的一个分支. -Alpine Linux uses apk-tools package management, initially written as a shell script and later written in C programming language. This is a minimal Linux distribution, which still supports 32-bit systems and can be installed as a run-from-RAM operating system. +Alpine Linux使用apk-tools包管理器, 最初由shell脚本编写, 而后使用c语言重构. 它是最小的Linux发行版之一, 仍然支持32位系统, 并且是一个可以完全从电脑RAM运行的操作系统. -##### Other Features: +##### 其他特性: -* Provides a minimal container image of just 5 MB in size -* 2-year support for the main repository and support until the next stable release for the community repository -* Made around musl libc and Busybox with resource-efficient containers +* 提供大小仅为5MB的最小容器映像 +* 对于主库, 提供2年的支持; 对于社区库, 在下一个稳定版本发布前提供支持 +* 使用musl libc制作, Busybox使用资源效率高的容器 [Alpine Linux][36] @@ -240,26 +241,26 @@ Alpine Linux uses apk-tools package management, initially written as a shell scr ![Image Credits: Distrowatch][37] -KaOS is a Linux distribution built from scratch and inspired by Arch Linux. It uses [pacman for package management][38]. It is built with the philosophy “*One Desktop Environment (KDE Plasma), One Toolkit (Qt), One Architecture (x86_64)*“. +KaOS是一个受到Arch启发, 从头开始构建的Linux发行版. 它使用[pacman包管理器][38]. 它是按照"*一个桌面环境(KDE Plasma), 一个工具包(QT), 一个架构(X86_64)*"的理念构建的. -It has limited repositories, but still, it offers plenty of tools for a regular user. +它的软件库比较有限, 但依然为普通用户提供了许多工具. -##### Other Features: +##### 其他特性: -* Most up-to-date Plasma desktop -* Tightly integrated rolling and transparent distribution for the modern desktop +* 最新的Plasma桌面 +* 紧密集成的滚动和透明的现代桌面发行版 [KaOS][39] -#### Wrapping Up +#### 总结 -If you need a unique experience, these independent Linux distributions should serve the purpose. +如果你需要一些独特的体验, 那么这些独立Linux发行版应该能很好的满足你. -However, if you want to replace it with a mainstream distribution like Ubuntu for your desktop…You might want to think twice, considering most of the options (if not all) above are not ideal options for day-to-day desktop usage. +然而, 如果你想要用其来替换如Ubuntu这样主流的Linux发行版作为你的桌面系统...你也许需要三思而后行, 上面大多数的发行版(并不代表所有)都不是一个日常使用的桌面系统的理想的选项. -But then again, if you have a fair share of experience with Linux distributions, you can undoubtedly take up the task for an adventure! +但是话又说回来, 如果你对Linux发行版充满了经验, 那么毫无疑问, 你会享受这项冒险的任务的. -*If you were to try one of these indie distros, which one would it be? Share with us in the comments.* +*如果你想尝试这些独立发行版的其中一种, 哪一个会是你的优先选择呢? 请在评论中与我们分享.* -------------------------------------------------------------------------------- @@ -267,7 +268,7 @@ via: https://itsfoss.com/independent-linux-distros/ 作者:[sreenath][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[MuggleWei](https://github.com/MuggleWei) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9bd3b10973baf2c8ee9de3d6715a59bb812e322a Mon Sep 17 00:00:00 2001 From: Muggle Wei Date: Sun, 13 Nov 2022 20:40:33 +0800 Subject: [PATCH 2003/3123] move sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md -> translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md --- ...14 13 Independent Linux Distros That are Built From Scratch.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md (100%) diff --git a/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md similarity index 100% rename from sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md rename to translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md From 0c280943cd1e50a570878d6e61a64f706dfe833e Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sun, 13 Nov 2022 20:44:45 +0800 Subject: [PATCH 2004/3123] APL --- .../20220912 Why do domain names sometimes end with a dot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220912 Why do domain names sometimes end with a dot.md b/sources/tech/20220912 Why do domain names sometimes end with a dot.md index c8b73a55d5..1e5103eb90 100644 --- a/sources/tech/20220912 Why do domain names sometimes end with a dot.md +++ b/sources/tech/20220912 Why do domain names sometimes end with a dot.md @@ -2,7 +2,7 @@ [#]: via: "https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/" [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "lxbwolf" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 496d2d177c21fbfe3d8a944dd92c7555a2420ace Mon Sep 17 00:00:00 2001 From: Muggle Wei Date: Sun, 13 Nov 2022 20:55:25 +0800 Subject: [PATCH 2005/3123] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=91=E6=96=87:?= =?UTF-8?q?=20tech/20221014=2013=20Independent=20Linux=20Distros=20That=20?= =?UTF-8?q?are=20Built=20From=20Scratch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 参考排版风格指南, 改为使用中文标点,以及在中英文间插入空格 --- ...nux Distros That are Built From Scratch.md | 124 +++++++++--------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md index 01e814cbe3..f6b83f5f03 100644 --- a/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md +++ b/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md @@ -9,32 +9,32 @@ 13个从头开始构建的独立Linux发行版 ====== -时至今日, 世界上已经有成百上千种不同的Linux发行版. +时至今日,世界上已经有成百上千种不同的Linux发行版。 -它们中的大多数都可以被划归为三个大类: Debian, Red Hat (Fedora) 以及 Arch Linux. +它们中的大多数都可以被划归为三个大类: Debian,Red Hat (Fedora) 以及 Arch Linux。 -使用基于Debian/Ubuntu, Red Hat/SUSE 或者 Arch的Linux发行版自然有它们的优势. 它们很受大众欢迎, 因此它们的包管理器能够提供大量的软件包. +使用基于 Debian/Ubuntu ,Red Hat/SUSE 或者 Arch 的 Linux 发行版自然有它们的优势。它们很受大众欢迎,因此它们的包管理器能够提供大量的软件包。 -然而, 有一些用户更倾向于使用从头开始构建, 独立于DEB/RPM这类包管理系统的发行版本. +然而,有一些用户更倾向于使用从头开始构建,独立于DEB/RPM这类包管理系统的发行版本。 -在这篇文章当中, 我们将列出一些优秀的独立Linux发行版. +在这篇文章当中,我们将列出一些优秀的独立Linux发行版。 -**注意:** 显然, 下面的列表显然不会包括一些广受欢迎, 通常作为创建新的发现版基础的发行版, 如Debian, Ubuntu 和 Fedora等. 此外, 列表顺序不分先后, 没有特定的排名. +**注意:** 显然,下面的列表显然不会包括一些广受欢迎,通常作为创建新的发现版基础的发行版,如Debian,Ubuntu 和 Fedora 等。此外,列表顺序不分先后,没有特定的排名。 ### 1. NixOS ![Image Credits: Distrowatch][1] -NixOS最初发布于2003年, NixOS 建立在 Nix 包管理器之上. 它每年发布两个版本, 通常是在5月和11月. +NixOS最初发布于2003年,NixOS 建立在 Nix 包管理器之上。它每年发布两个版本,通常是在5月和11月。 -NixOS显然不是一个直接面向新用户或普通用户的发行版. 然而, 其独特的[包管理][2]方法吸引了各种用户. +NixOS显然不是一个直接面向新用户或普通用户的发行版。然而,其独特的[包管理][2]方法吸引了各种用户。 -此外, 它仍然支持32位系统. +此外,它仍然支持32位系统。 ##### 其他特性: * 构建隔离的包 -* 可靠的升级, 并且具有回滚功能 +* 可靠的升级,并且具有回滚功能 * 可重现的系统配置 [NixOS][3] @@ -45,17 +45,17 @@ NixOS显然不是一个直接面向新用户或普通用户的发行版. 然而, ![Image Credits: Distrowatch][5] -Geetoo Linux是一个主要针对系统专家的独立Linux发行版. 它是为那些希望自由定制、微调和优化操作系统以满足其要求的用户而构建。 +Geetoo Linux 是一个主要针对系统专家的独立 Linux 发行版。它是为那些希望自由定制、微调和优化操作系统以满足其要求的用户而构建。 -Gentoo 使用[Portage 包管理器][6]来创建和安装软件包, 通常还允许你针对你的硬件来优化它们. Chrome的开源版本**Chromium OS**便是使用Gentoo作为其核心的. +Gentoo 使用[Portage 包管理器][6]来创建和安装软件包,通常还允许你针对你的硬件来优化它们。 Chrome 的开源版本 **Chromium OS** 便是使用 Gentoo 作为其核心的。 -不要忘记, Gentoo是[仍然支持 32 位架构的发行版][7]之一. +不要忘记,Gentoo 是[仍然支持 32 位架构的发行版][7]之一。 ##### 其他特性: * 增量更新 * 基于源码的软件管理方法 -* 支持GURU(Gentoo用户仓库)的Overlay仓库的概念, 允许用户添加Gentoo尚未提供的软件包 +* 支持 GURU (Gentoo用户仓库)的 Overlay 仓库的概念,允许用户添加 Gentoo 尚未提供的软件包 [Gentoo Linux][8] @@ -63,17 +63,17 @@ Gentoo 使用[Portage 包管理器][6]来创建和安装软件包, 通常还允 ![Image Credits: Distrowatch][9] -Void Linux是一个[滚动发布的发行版][10], 使用X Binary Package System(XBPS)来安装和删除软件. 它由前NetBSD开发者**Juan Romero Pardines**创建. +Void Linux是一个[滚动发布的发行版][10],使用 X Binary Package System(XBPS) 来安装和删除软件。它由前 NetBSD 开发者 **Juan Romero Pardines** 创建。 -它使用runit而不是systemd作为其初始化系统. 此外, 它还让你可以选择使用多个 [桌面环境][11]. +它使用 runit 而不是 systemd 作为其初始化系统。此外,它还让你可以选择使用多个 [桌面环境][11]。 ##### 其他特性: * 最低的系统要求 * 官方库也提供非自由软件包 * 支持树莓派 -* 集成OpenBSD的LibreSSL -* 支持musl C库 +* 集成 OpenBSD 的 LibreSSL +* 支持 musl C 库 * 支持32位系统 [Void Linux][12] @@ -85,15 +85,15 @@ Void Linux是一个[滚动发布的发行版][10], 使用X Binary Package System ![solus budgie 2022][14] -Solus的前身是EvolveOS, 它从头开始构建并提供了一些令人兴奋的特性. Solus的旗舰版本使用自己的homegrown budgie作为桌面环境. +Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴奋的特性。Solus的旗舰版本使用自己的 homegrown budgie 作为桌面环境。 -与本篇文章介绍的其他系统相比, Solus对于新手较为友好. 它设法成为[最好的Linux发行版][15]之一. +与本篇文章介绍的其他系统相比,Solus 对于新手较为友好。它设法成为[最好的Linux发行版][15]之一。 -它使用eopkg作为其包管理系统, 支持版滚动发布模型. 按照开发人员的说法, 开发Solus的目标是个人电脑. +它使用 eopkg 作为其包管理系统,支持版滚动发布模型。按照开发人员的说法,开发 Solus 的目标是个人电脑。 ##### 其他特性: -* 支持Budgie、Gnome、MATE和KDE Plasma +* 支持 Budgie、Gnome、MATE 和 KDE Plasma * 各种开箱即用的软件,从而减少设置工作 [Solus Linux][16] @@ -102,14 +102,14 @@ Solus的前身是EvolveOS, 它从头开始构建并提供了一些令人兴奋 ![Image Credits: Distrowatch][17] -Mageia始于2010年, 它是Mandriva Linux的一个分支. 它的目标是成为稳定且安全的桌面和服务器操作系统。 +Mageia 始于2010年,它是 Mandriva Linux 的一个分支。它的目标是成为稳定且安全的桌面和服务器操作系统。 -Mageia是一个社区驱动的项目, 由非营利组织和贡献者支持. 每年会发布一个大版本. +Mageia 是一个社区驱动的项目,由非营利组织和贡献者支持。每年会发布一个大版本。 ##### 其他特性: * 支持32位系统 -* 支持KDE Plasma, Gnome和XFCE +* 支持 KDE Plasma,Gnome 和 XFCE * 最低的系统要求 [Mageia][18] @@ -120,11 +120,11 @@ Mageia是一个社区驱动的项目, 由非营利组织和贡献者支持. 每 ![Image Credits: Distrowatch][20] -Clear Linux是一个由Intel发布的发行版, 主要设计考虑是性能和云服务的使用. +Clear Linux 是一个由 Intel 发布的发行版,主要设计考虑是性能和云服务的使用。 -有趣的是, Clear Linux升级时是作为一个整体而非去升级单个的软件包. 所以, 即使你不小心弄乱了系统设置, 它也可以正确的启动, 执行恢复出厂设置, 并让用户重新设置. +有趣的是,Clear Linux 升级时是作为一个整体而非去升级单个的软件包。所以,即使你不小心弄乱了系统设置,它也可以正确的启动,执行恢复出厂设置,并让用户重新设置。 -它不太适合个人用户使用. 但可以作为一个独特的选择而尝试一下. +它不太适合个人用户使用。但可以作为一个独特的选择而尝试一下。 ##### 其他特性: @@ -138,13 +138,13 @@ Clear Linux是一个由Intel发布的发行版, 主要设计考虑是性能和 ![Image Credits: Distrowatch][22] -PCLinuxOS是一个x86_64的Linux发行版, 使用APT-RPM包管理. 你可以使用KDE Plasma, Mate以及XFCE桌面, 它同时还提供了更多特性的社区版本的桌面. +PCLinuxOS 是一个 x86_64 的 Linux 发行版,使用 APT-RPM 包管理。你可以使用 KDE Plasma,Mate 以及 XFCE 桌面,它同时还提供了更多特性的社区版本的桌面。 -本地安装的PCLinuxOS利用了APT包管理系统要感谢[Synaptic包管理器][23]. 你可以从它的仓库中找到rpm包. +本地安装的 PCLinuxOS 利用了 APT 包管理系统要感谢 [Synaptic包管理器][23]。你可以从它的仓库中找到 rpm 包。 ##### 其他特性: -* mylivecd脚本允许用户去生成一个当前已安装的硬件驱动的'快照'(所有的配置, 应用, 文档等)并且将它压缩为ISO CD/DVD/USB映像 +* mylivecd 脚本允许用户去生成一个当前已安装的硬件驱动的'快照'(所有的配置,应用,文档等)并且将它压缩为 ISO CD/DVD/USB 映像 * 附加支持超过85种语言 [PCLinuxOS][24] @@ -153,19 +153,19 @@ PCLinuxOS是一个x86_64的Linux发行版, 使用APT-RPM包管理. 你可以使 ![4m linux 2022][25] -[4MLinux][26] 是一个通用的Linux发行版, 重点聚焦于下面四个 **“M”** +[4MLinux][26] 是一个通用的 Linux 发行版,重点聚焦于下面四个 **“M”** -* Maintenance (系统救援Live CD) -* Multimedia (支持大量的图形, 音频和视频格式) -* Miniserver (支持DNS, FTP, HTTP, MySQL, NFS, Proxy, SMTP, SSH, and Telnet) +* Maintenance (系统救援 Live CD) +* Multimedia (支持大量的图形,音频和视频格式) +* Miniserver (支持 DNS,FTP,HTTP,MySQL,NFS,Proxy,SMTP,SSH,and Telnet) * Mystery (包含了经典Linux游戏的集合) -它具有最低的系统要求, 可作为桌面和服务器版本使用. +它具有最低的系统要求,可作为桌面和服务器版本使用. ##### 其他特性 -* 支持大量的图形, 音频和视频格式 -* 是小型并且通用的Linux发行版 +* 支持大量的图形,音频和视频格式 +* 是小型并且通用的 Linux 发行版 [4MLinux][27] @@ -173,17 +173,17 @@ PCLinuxOS是一个x86_64的Linux发行版, 使用APT-RPM包管理. 你可以使 ![Image Credits: Distrowatch][28] -Tiny Core Linux专注于使用BusyBox和FLTK提供一个基础的系统. 它不是一个复杂的桌面. 所有, 并不能保证它可以运行于任何系统. +Tiny Core Linux 专注于使用 BusyBox 和 FLTK 提供一个基础的系统。它不是一个复杂的桌面。所有,并不能保证它可以运行于任何系统。 -它代表了启动到非常小的X桌面所需的核心功能, 通常带有有线互联网访问权限. +它代表了启动到非常小的X桌面所需的核心功能,通常带有有线互联网访问权限。 -用户可以很好的控制一切, 但对于新Linux用户来说, 它并不是一个轻松的开箱即用的系统. +用户可以很好的控制一切,但对于新 Linux 用户来说,它并不是一个轻松的开箱即用的系统。 ##### 其他特性 * 旨在从启动时创建的内存副本中运行 -* 默认情况下, 其操作就像像云/互联网客户端一样 -* 用户可以使用appbrowser来游览库以及下载应用 +* 默认情况下,其操作就像像云/互联网客户端一样 +* 用户可以使用 appbrowser 来游览库以及下载应用 [Tiny Core Linux][29] @@ -193,15 +193,15 @@ Tiny Core Linux专注于使用BusyBox和FLTK提供一个基础的系统. 它不 [Reddit][31] -Linux From Scratch并不是一个系统, 而是通过手动构建所有组件来安装Linux的一种方法. 一旦完成, 它提供了一个紧凑、灵活和安全的系统, 并且可以很好的理解一个基于Linux的操作系统内部是如何工作的. +Linux From Scratch 并不是一个系统,而是通过手动构建所有组件来安装 Linux 的一种方法。一旦完成,它提供了一个紧凑、灵活和安全的系统,并且可以很好的理解一个基于 Linux 的操作系统内部是如何工作的。 -如果你希望去深入理解Linux是如何工作的并且探寻其具体细节, 那么Linux From Scratch是你一定要去尝试, 不能错过的一个项目. +如果你希望去深入理解 Linux 是如何工作的并且探寻其具体细节,那么 Linux From Scratch 是你一定要去尝试,不能错过的一个项目。 ##### 其他特性 -* 完全从头开始, 定制化的构建Linux系统 +* 完全从头开始,定制化的构建 Linux 系统 * 极度的灵活性 -* 由于从源码开始编译, 提供了额外的安全性 +* 由于从源码开始编译,提供了额外的安全性 [Linux From Scratch][32] @@ -209,15 +209,15 @@ Linux From Scratch并不是一个系统, 而是通过手动构建所有组件来 ![Image Credits: Distrowatch][33] -Slackware是现今还在维护的最老的发行版. 最初创建于1993年, 以Softlanding Linux 系统为基础, 随后, 许多的Linux发行版都是基于Slackware. +Slackware 是现今还在维护的最老的发行版。最初创建于1993年,以 Softlanding Linux 系统为基础,随后,许多的 Linux 发行版都是基于 Slackware。 -Slackware目标是称为最类似于UNIX的Linux发行版, 同时保持简单和稳定. +Slackware 目标是称为最类似于 UNIX 的 Linux 发行版,同时保持简单和稳定。 ##### 其他特性 * 支持32位和64位系统 * 大量的在线文档 -* 从奔腾处理器到最新的机器, 它都可以运行 +* 从奔腾处理器到最新的机器,它都可以运行 [Slackware][34] @@ -225,15 +225,15 @@ Slackware目标是称为最类似于UNIX的Linux发行版, 同时保持简单和 ![alpine linux xfce 2022][35] -Alpine Linux是一个社区开发的操作系统, 专为路由器、防火墙、VPN、VoIP 盒子和服务器而设计. 它是LEAF项目的一个分支. +Alpine Linux 是一个社区开发的操作系统,专为路由器、防火墙、VPN、VoIP 盒子和服务器而设计。它是 LEAF 项目的一个分支。 -Alpine Linux使用apk-tools包管理器, 最初由shell脚本编写, 而后使用c语言重构. 它是最小的Linux发行版之一, 仍然支持32位系统, 并且是一个可以完全从电脑RAM运行的操作系统. +Alpine Linux 使用 apk-tools 包管理器,最初由shell脚本编写,而后使用c语言重构。它是最小的 Linux 发行版之一,仍然支持32位系统,并且是一个可以完全从电脑 RAM 运行的操作系统。 ##### 其他特性: -* 提供大小仅为5MB的最小容器映像 -* 对于主库, 提供2年的支持; 对于社区库, 在下一个稳定版本发布前提供支持 -* 使用musl libc制作, Busybox使用资源效率高的容器 +* 提供大小仅为 5MB 的最小容器映像 +* 对于主库,提供2年的支持; 对于社区库,在下一个稳定版本发布前提供支持 +* 使用 musl libc 制作,Busybox 使用资源效率高的容器 [Alpine Linux][36] @@ -241,26 +241,26 @@ Alpine Linux使用apk-tools包管理器, 最初由shell脚本编写, 而后使 ![Image Credits: Distrowatch][37] -KaOS是一个受到Arch启发, 从头开始构建的Linux发行版. 它使用[pacman包管理器][38]. 它是按照"*一个桌面环境(KDE Plasma), 一个工具包(QT), 一个架构(X86_64)*"的理念构建的. +KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它使用[pacman包管理器][38]。它是按照"*一个桌面环境(KDE Plasma),一个工具包(QT),一个架构(X86_64)*"的理念构建的。 -它的软件库比较有限, 但依然为普通用户提供了许多工具. +它的软件库比较有限,但依然为普通用户提供了许多工具。 ##### 其他特性: -* 最新的Plasma桌面 +* 最新的 Plasma 桌面 * 紧密集成的滚动和透明的现代桌面发行版 [KaOS][39] #### 总结 -如果你需要一些独特的体验, 那么这些独立Linux发行版应该能很好的满足你. +如果你需要一些独特的体验,那么这些独立 Linux 发行版应该能很好的满足你。 -然而, 如果你想要用其来替换如Ubuntu这样主流的Linux发行版作为你的桌面系统...你也许需要三思而后行, 上面大多数的发行版(并不代表所有)都不是一个日常使用的桌面系统的理想的选项. +然而,如果你想要用其来替换如 Ubuntu 这样主流的 Linux 发行版作为你的桌面系统...你也许需要三思而后行,上面大多数的发行版(并不代表所有)都不是一个日常使用的桌面系统的理想的选项。 -但是话又说回来, 如果你对Linux发行版充满了经验, 那么毫无疑问, 你会享受这项冒险的任务的. +但是话又说回来,如果你对 Linux 发行版充满了经验,那么毫无疑问,你会享受这项冒险的任务的。 -*如果你想尝试这些独立发行版的其中一种, 哪一个会是你的优先选择呢? 请在评论中与我们分享.* +*如果你想尝试这些独立发行版的其中一种,哪一个会是你的优先选择呢? 请在评论中与我们分享.* -------------------------------------------------------------------------------- From 564a6c2c033e887ccdcc8cec006a190fdd4fc3dc Mon Sep 17 00:00:00 2001 From: Muggle Wei Date: Sun, 13 Nov 2022 21:08:04 +0800 Subject: [PATCH 2006/3123] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=91=E6=96=87:?= =?UTF-8?q?=20tech/20221014=2013=20Independent=20Linux=20Distros=20That=20?= =?UTF-8?q?are=20Built=20From=20Scratch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用脚本, 格式化译文以满足'中文文案排版指北'的要求 --- ...nux Distros That are Built From Scratch.md | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md index f6b83f5f03..1d2a5af3ec 100644 --- a/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md +++ b/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md @@ -7,31 +7,31 @@ [#]: publisher: " " [#]: url: " " -13个从头开始构建的独立Linux发行版 +13 个从头开始构建的独立 Linux 发行版 ====== -时至今日,世界上已经有成百上千种不同的Linux发行版。 +时至今日,世界上已经有成百上千种不同的 Linux 发行版。 -它们中的大多数都可以被划归为三个大类: Debian,Red Hat (Fedora) 以及 Arch Linux。 +它们中的大多数都可以被划归为三个大类 : Debian,Red Hat (Fedora) 以及 Arch Linux。 使用基于 Debian/Ubuntu ,Red Hat/SUSE 或者 Arch 的 Linux 发行版自然有它们的优势。它们很受大众欢迎,因此它们的包管理器能够提供大量的软件包。 -然而,有一些用户更倾向于使用从头开始构建,独立于DEB/RPM这类包管理系统的发行版本。 +然而,有一些用户更倾向于使用从头开始构建,独立于 DEB/RPM 这类包管理系统的发行版本。 -在这篇文章当中,我们将列出一些优秀的独立Linux发行版。 +在这篇文章当中,我们将列出一些优秀的独立 Linux 发行版。 -**注意:** 显然,下面的列表显然不会包括一些广受欢迎,通常作为创建新的发现版基础的发行版,如Debian,Ubuntu 和 Fedora 等。此外,列表顺序不分先后,没有特定的排名。 +**注意 :** 显然,下面的列表显然不会包括一些广受欢迎,通常作为创建新的发现版基础的发行版,如 Debian,Ubuntu 和 Fedora 等。此外,列表顺序不分先后,没有特定的排名。 ### 1. NixOS ![Image Credits: Distrowatch][1] -NixOS最初发布于2003年,NixOS 建立在 Nix 包管理器之上。它每年发布两个版本,通常是在5月和11月。 +NixOS 最初发布于 2003 年,NixOS 建立在 Nix 包管理器之上。它每年发布两个版本,通常是在 5 月和 11 月。 -NixOS显然不是一个直接面向新用户或普通用户的发行版。然而,其独特的[包管理][2]方法吸引了各种用户。 +NixOS 显然不是一个直接面向新用户或普通用户的发行版。然而,其独特的[包管理][2]方法吸引了各种用户。 -此外,它仍然支持32位系统。 +此外,它仍然支持 32 位系统。 -##### 其他特性: +##### 其他特性 : * 构建隔离的包 * 可靠的升级,并且具有回滚功能 @@ -51,11 +51,11 @@ Gentoo 使用[Portage 包管理器][6]来创建和安装软件包,通常还允 不要忘记,Gentoo 是[仍然支持 32 位架构的发行版][7]之一。 -##### 其他特性: +##### 其他特性 : * 增量更新 * 基于源码的软件管理方法 -* 支持 GURU (Gentoo用户仓库)的 Overlay 仓库的概念,允许用户添加 Gentoo 尚未提供的软件包 +* 支持 GURU (Gentoo 用户仓库)的 Overlay 仓库的概念,允许用户添加 Gentoo 尚未提供的软件包 [Gentoo Linux][8] @@ -63,35 +63,35 @@ Gentoo 使用[Portage 包管理器][6]来创建和安装软件包,通常还允 ![Image Credits: Distrowatch][9] -Void Linux是一个[滚动发布的发行版][10],使用 X Binary Package System(XBPS) 来安装和删除软件。它由前 NetBSD 开发者 **Juan Romero Pardines** 创建。 +Void Linux 是一个[滚动发布的发行版][10],使用 X Binary Package System(XBPS) 来安装和删除软件。它由前 NetBSD 开发者 **Juan Romero Pardines** 创建。 它使用 runit 而不是 systemd 作为其初始化系统。此外,它还让你可以选择使用多个 [桌面环境][11]。 -##### 其他特性: +##### 其他特性 : * 最低的系统要求 * 官方库也提供非自由软件包 * 支持树莓派 * 集成 OpenBSD 的 LibreSSL * 支持 musl C 库 -* 支持32位系统 +* 支持 32 位系统 [Void Linux][12] **Related:** [Not a Systemd Fan? Here are 13+ Systemd-Free Linux Distributions][13] -**相关链接:** [不是Systemd的粉丝? 这里有13个无Systemd的Linux发行版][13] +**相关链接 :** [不是 Systemd 的粉丝 ? 这里有 13 个无 Systemd 的 Linux 发行版][13] ### 4. Solus Linux ![solus budgie 2022][14] -Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴奋的特性。Solus的旗舰版本使用自己的 homegrown budgie 作为桌面环境。 +Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴奋的特性。Solus 的旗舰版本使用自己的 homegrown budgie 作为桌面环境。 -与本篇文章介绍的其他系统相比,Solus 对于新手较为友好。它设法成为[最好的Linux发行版][15]之一。 +与本篇文章介绍的其他系统相比,Solus 对于新手较为友好。它设法成为[最好的 Linux 发行版][15]之一。 它使用 eopkg 作为其包管理系统,支持版滚动发布模型。按照开发人员的说法,开发 Solus 的目标是个人电脑。 -##### 其他特性: +##### 其他特性 : * 支持 Budgie、Gnome、MATE 和 KDE Plasma * 各种开箱即用的软件,从而减少设置工作 @@ -102,19 +102,19 @@ Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴 ![Image Credits: Distrowatch][17] -Mageia 始于2010年,它是 Mandriva Linux 的一个分支。它的目标是成为稳定且安全的桌面和服务器操作系统。 +Mageia 始于 2010 年,它是 Mandriva Linux 的一个分支。它的目标是成为稳定且安全的桌面和服务器操作系统。 Mageia 是一个社区驱动的项目,由非营利组织和贡献者支持。每年会发布一个大版本。 -##### 其他特性: +##### 其他特性 : -* 支持32位系统 +* 支持 32 位系统 * 支持 KDE Plasma,Gnome 和 XFCE * 最低的系统要求 [Mageia][18] -**相关链接:** **[仍然支持32位系统的Linux发行版][19]** +**相关链接 :** **[仍然支持 32 位系统的 Linux 发行版][19]** ### 6. Clear Linux @@ -126,9 +126,9 @@ Clear Linux 是一个由 Intel 发布的发行版,主要设计考虑是性能 它不太适合个人用户使用。但可以作为一个独特的选择而尝试一下。 -##### 其他特性: +##### 其他特性 : -* 针对Intel平台的高度调优 +* 针对 Intel 平台的高度调优 * 用户和系统文件之间严格分离 * 持续的漏洞扫描 @@ -140,12 +140,12 @@ Clear Linux 是一个由 Intel 发布的发行版,主要设计考虑是性能 PCLinuxOS 是一个 x86_64 的 Linux 发行版,使用 APT-RPM 包管理。你可以使用 KDE Plasma,Mate 以及 XFCE 桌面,它同时还提供了更多特性的社区版本的桌面。 -本地安装的 PCLinuxOS 利用了 APT 包管理系统要感谢 [Synaptic包管理器][23]。你可以从它的仓库中找到 rpm 包。 +本地安装的 PCLinuxOS 利用了 APT 包管理系统要感谢 [Synaptic 包管理器][23]。你可以从它的仓库中找到 rpm 包。 -##### 其他特性: +##### 其他特性 : * mylivecd 脚本允许用户去生成一个当前已安装的硬件驱动的'快照'(所有的配置,应用,文档等)并且将它压缩为 ISO CD/DVD/USB 映像 -* 附加支持超过85种语言 +* 附加支持超过 85 种语言 [PCLinuxOS][24] @@ -153,12 +153,12 @@ PCLinuxOS 是一个 x86_64 的 Linux 发行版,使用 APT-RPM 包管理。你 ![4m linux 2022][25] -[4MLinux][26] 是一个通用的 Linux 发行版,重点聚焦于下面四个 **“M”** +[4MLinux][26] 是一个通用的 Linux 发行版,重点聚焦于下面四个 **“ M ”** * Maintenance (系统救援 Live CD) * Multimedia (支持大量的图形,音频和视频格式) * Miniserver (支持 DNS,FTP,HTTP,MySQL,NFS,Proxy,SMTP,SSH,and Telnet) -* Mystery (包含了经典Linux游戏的集合) +* Mystery (包含了经典 Linux 游戏的集合) 它具有最低的系统要求,可作为桌面和服务器版本使用. @@ -175,14 +175,14 @@ PCLinuxOS 是一个 x86_64 的 Linux 发行版,使用 APT-RPM 包管理。你 Tiny Core Linux 专注于使用 BusyBox 和 FLTK 提供一个基础的系统。它不是一个复杂的桌面。所有,并不能保证它可以运行于任何系统。 -它代表了启动到非常小的X桌面所需的核心功能,通常带有有线互联网访问权限。 +它代表了启动到非常小的 X 桌面所需的核心功能,通常带有有线互联网访问权限。 用户可以很好的控制一切,但对于新 Linux 用户来说,它并不是一个轻松的开箱即用的系统。 ##### 其他特性 * 旨在从启动时创建的内存副本中运行 -* 默认情况下,其操作就像像云/互联网客户端一样 +* 默认情况下,其操作就像像云 / 互联网客户端一样 * 用户可以使用 appbrowser 来游览库以及下载应用 [Tiny Core Linux][29] @@ -209,13 +209,13 @@ Linux From Scratch 并不是一个系统,而是通过手动构建所有组件 ![Image Credits: Distrowatch][33] -Slackware 是现今还在维护的最老的发行版。最初创建于1993年,以 Softlanding Linux 系统为基础,随后,许多的 Linux 发行版都是基于 Slackware。 +Slackware 是现今还在维护的最老的发行版。最初创建于 1993 年,以 Softlanding Linux 系统为基础,随后,许多的 Linux 发行版都是基于 Slackware。 Slackware 目标是称为最类似于 UNIX 的 Linux 发行版,同时保持简单和稳定。 ##### 其他特性 -* 支持32位和64位系统 +* 支持 32 位和 64 位系统 * 大量的在线文档 * 从奔腾处理器到最新的机器,它都可以运行 @@ -227,12 +227,12 @@ Slackware 目标是称为最类似于 UNIX 的 Linux 发行版,同时保持简 Alpine Linux 是一个社区开发的操作系统,专为路由器、防火墙、VPN、VoIP 盒子和服务器而设计。它是 LEAF 项目的一个分支。 -Alpine Linux 使用 apk-tools 包管理器,最初由shell脚本编写,而后使用c语言重构。它是最小的 Linux 发行版之一,仍然支持32位系统,并且是一个可以完全从电脑 RAM 运行的操作系统。 +Alpine Linux 使用 apk-tools 包管理器,最初由 shell 脚本编写,而后使用 c 语言重构。它是最小的 Linux 发行版之一,仍然支持 32 位系统,并且是一个可以完全从电脑 RAM 运行的操作系统。 -##### 其他特性: +##### 其他特性 : * 提供大小仅为 5MB 的最小容器映像 -* 对于主库,提供2年的支持; 对于社区库,在下一个稳定版本发布前提供支持 +* 对于主库,提供 2 年的支持 ; 对于社区库,在下一个稳定版本发布前提供支持 * 使用 musl libc 制作,Busybox 使用资源效率高的容器 [Alpine Linux][36] @@ -241,11 +241,11 @@ Alpine Linux 使用 apk-tools 包管理器,最初由shell脚本编写,而后 ![Image Credits: Distrowatch][37] -KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它使用[pacman包管理器][38]。它是按照"*一个桌面环境(KDE Plasma),一个工具包(QT),一个架构(X86_64)*"的理念构建的。 +KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它使用[pacman 包管理器][38]。它是按照"*一个桌面环境(KDE Plasma),一个工具包(QT),一个架构(X86_64)*"的理念构建的。 它的软件库比较有限,但依然为普通用户提供了许多工具。 -##### 其他特性: +##### 其他特性 : * 最新的 Plasma 桌面 * 紧密集成的滚动和透明的现代桌面发行版 @@ -260,7 +260,7 @@ KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它 但是话又说回来,如果你对 Linux 发行版充满了经验,那么毫无疑问,你会享受这项冒险的任务的。 -*如果你想尝试这些独立发行版的其中一种,哪一个会是你的优先选择呢? 请在评论中与我们分享.* +*如果你想尝试这些独立发行版的其中一种,哪一个会是你的优先选择呢 ? 请在评论中与我们分享.* -------------------------------------------------------------------------------- @@ -269,9 +269,9 @@ via: https://itsfoss.com/independent-linux-distros/ 作者:[sreenath][a] 选题:[lkxed][b] 译者:[MuggleWei](https://github.com/MuggleWei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[校对者 ID](https://github.com/ 校对者 ID) -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 [a]: https://itsfoss.com/author/sreenath/ [b]: https://github.com/lkxed From 4f2cfe638e86dc8cca6744d4f47e6c9eb84a624e Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sun, 13 Nov 2022 22:44:48 +0800 Subject: [PATCH 2007/3123] TSL --- ...o domain names sometimes end with a dot.md | 256 ------------------ ...o domain names sometimes end with a dot.md | 256 ++++++++++++++++++ 2 files changed, 256 insertions(+), 256 deletions(-) delete mode 100644 sources/tech/20220912 Why do domain names sometimes end with a dot.md create mode 100644 translated/tech/20220912 Why do domain names sometimes end with a dot.md diff --git a/sources/tech/20220912 Why do domain names sometimes end with a dot.md b/sources/tech/20220912 Why do domain names sometimes end with a dot.md deleted file mode 100644 index 1e5103eb90..0000000000 --- a/sources/tech/20220912 Why do domain names sometimes end with a dot.md +++ /dev/null @@ -1,256 +0,0 @@ -[#]: subject: "Why do domain names sometimes end with a dot?" -[#]: via: "https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/" -[#]: author: "Julia Evans https://jvns.ca/" -[#]: collector: "lujun9972" -[#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Why do domain names sometimes end with a dot? -====== - -Hello! When I was writing the zine [How DNS Works][1] earlier this year, someone asked me – why do people sometimes put a dot at the end of a domain name? For example, if you look up the IP for `example.com` by running `dig example.com`, you’ll see this: - -``` - - $ dig example.com - example.com. 5678 IN A 93.184.216.34 - -``` - -`dig` has put a `.` to the end of `example.com` – now it’s `example.com.`! What’s up with that? - -Also, some DNS tools require domains to have a `"."` at the end: if you try to pass `example.com` to [miekg/dns][2], like this, it’ll fail: - -``` - - // trying to send this message will return an error - m := new(dns.Msg) - m.SetQuestion("example.com", dns.TypeA) - -``` - -Originally I thought I knew the answer to this (“uh, the dot at the end means the domain is fully qualified?“). And that’s true – a fully qualified domain name is a domain with a “.” at the end! - -But that doesn’t explain _why_ dots at the end are useful or important. - -### in a DNS request/response, domain names don’t have a trailing “.” - -I once (incorrectly) thought the answer to “why is there a dot at the end?” might be “In a DNS request/response, domain names have a “.” at the end, so we put it in to match what actually gets sent/received by your computer”. But that’s not true at all! - -When a computer sends a DNS request or response, the domain names in it don’t have a trailing dot. Actually, the domain names don’t have _any_ dots. - -Instead, they’re encoded as a series of length/string pairs. For example, the domain `example.com` is encoded as these 13 bytes: - -``` - - 7example3com0 - -``` - -So there are no dots at all. Instead, an ASCII domain name (like “example.com”) gets translated into the format used in a DNS request / response by various DNS software. - -So let’s talk about one place where domain names are translated into DNS responses: zone files. - -### the trailing “.” in zone files - -One way that some people manage DNS records for a domain is to create a text file called a “zone file” and then configure some DNS server software (like `nsd` or `bind`) to serve the DNS records specified in that zone file. - -Here’s an imaginary zone file for `example.com`: - -``` - - orange 300 IN A 1.2.3.4 - fruit 300 IN CNAME orange - grape 3000 IN CNAME example.com. - -``` - -In this zone file, anything that doesn’t end in a `"."` (like `"orange"`) gets `.example.com` added to it. So `"orange"` is shorthand for `"orange.example.com"`. The DNS server knows from its configuration that this is a zone file for `example.com`, so it knows to automatically append `example.com` at the end of any name that doesn’t end with a dot. - -I assume the idea here is just to save typing – you could imagine writing this zone file by fully typing out all of the domain names: - -``` - - orange.example.com. 300 IN A 1.2.3.4 - fruit.example.com. 300 IN CNAME orange.example.com. - grape.example.com. 3000 IN CNAME example.com. - -``` - -But that’s a lot of typing. - -### you don’t need zone files to use DNS - -Even though the zone file format is defined in the official DNS RFC ([RFC 1035][3]), you don’t have to use zone files at all to use DNS. For example, AWS Route 53 doesn’t use zone files to store DNS records! Instead you create records through the web interface or API, and I assume they store records in some kind of database and not a bunch of text files. - -Route 53 (like many other DNS tools) does support importing and exporting zone files though and it can be a good way to migrate records from one DNS provider to another. - -### the trailing “.” in dig - -Now, let’s talk about `dig`’s output: - -``` - - $ dig example.com - ; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> +all example.com - ;; global options: +cmd - ;; Got answer: - ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10712 - ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 - - ;; OPT PSEUDOSECTION: - ; EDNS: version: 0, flags:; udp: 65494 - ;; QUESTION SECTION: - ;example.com. IN A - - ;; ANSWER SECTION: - example.com. 81239 IN A 93.184.216.34 - -``` - -One weird thing about this is that almost every line starts with a `;;`. What’s up with that? Well `;` is the comment character in zone files! - -So I think the reason that dig prints out its output in this weird way is so that if you wanted, you could just paste this into a zone file and have it work without any changes. - -This also explains why there’s a `.` at the end of `example.com.` – zone files require a trailing dot at the end of a domain name (because otherwise they’re interpreted as being relative to the zone). So `dig` does too. - -I really wish dig had a `+human` flag that printed out all of this information in a more human readable way, but for now I’m too lazy to put in the work to actually contribute code to do that (and I’m a pretty bad C programmer) so I’ll just complain about it on my blog instead :) - -### the trailing `"."` in curl - -Let’s talk about another case where the trailing `"."` shows up: curl! - -One of the computers in my house is called “grapefruit”, and it’s running a webserver. Here’s what happens if I run `curl grapefruit`: - -``` - - $ curl grapefruit - - - - - -``` - -It works! Cool. But what happens if I add a `.` at the end? Suddenly it doesn’t work: - -``` - - $ curl grapefruit. - curl: (6) Could not resolve host: grapefruit. - -``` - -What’s going on? To understand, we need to learn about search domains: - -### meet search domains - -When I run `curl grapefrult`, how does that get translated into a DNS request? You might think that my computer would send a request for the domain `grapefruit`, right? But that’s not true. - -Let’s use `tcpdump` to see what domain is actually being looked up: - -``` - - $ sudo tcpdump -i any port 53 - [...] A? grapefruit.lan. (32) - -``` - -It’s actually sending a request for `grapefruit.lan`. What’s up with that? - -Well, what’s going on is that: - - 1. To look up `grapefruit`, `curl` calls a function called `getaddrinfo` - - 2. `getaddrinfo` looks in a file on my computer called `/etc/resolv.conf` - - 3. `/etc/resolv.conf` contains these 2 lines: - -``` - nameserver 127.0.0.53 - search lan - -``` - - 4. Because it sees `search lan`, `getaddrinfo` adds a `lan` at the end of `grapefruit` and looks up `grapefruit.lan` instead - - - - -### when are search domains used? - -Now we know something weird: that when we look up a domain, sometimes an extra thing (like `lan`) will be added to the end. But when does that happen? - - 1. If we put a `"."` at the **end** of the domain (like `curl grapefruit.`, then search domains aren’t used - 2. If the domain has an `"."` **inside** it (like `example.com` has a dot in it), then by default search domains aren’t used either. But this can be changed with configuration (see this blog post about [ndots][4] that talks about this more) - - - -So now we know why `curl grapefruit.` has different results than `curl grapefruit` – it’s because one looks up the domain `grapefruit.` and the other one looks up `grapefruit.lan.` - -### how does my computer know what search domain to use? - -When I connect to my router, it tells me that its search domain is `lan` with DHCP – it’s the same way that my computer gets assigned an IP address. - -### so why do people put a dot at the end of domain names? - -Now that we know about zone files and search domains, here’s why I think people like to put dots at the end of a domain name. - -There are two contexts where domain names are modified and get something else added to the end: - - * in a zone file for `example.com`, `grapefruit` get translated to `grapefruit.example.com` - * on my local network (with my computer configured to use the search domain `lan`), `grapefruit` gets translated to `grapefruit.lan` - - - -So because domain names can actually be translated to something else in some cases, people like to put a `"."` at the end to communicate “THIS IS THE DOMAIN NAME, NOTHING GETS ADDED AT THE END, THIS IS THE WHOLE THING”. Because otherwise it can get confusing. - -The technical term for “THIS IS THE WHOLE THING” is **“fully qualified domain name”** or **“FQDN”**. So `google.com.` is a fully qualified domain name, and `google.com` isn’t. - -I always have to remind myself for the reasons for this because I rarely use zone files or search domains, so I often feel like – “of course I mean `google.com` and not `google.com.something.else`! Why would I mean anything else?? That’s silly!” - -But some people do use zone files and search domains (search domains are used in Kubernetes, for example!), so the “.” at the end is useful to make it 100% clear that nothing else should be added. - -### when to put a “.” at the end? - -Here are a couple of quick notes about when to put a “.” at the end of your domain names: - -**Yes: when configuring DNS** - -It’s never bad to use fully qualified domain names when configuring DNS. You don’t always have to: a non-fully-qualified domain name will often work just fine as well, but I’ve never met a piece of DNS software that wouldn’t accept a fully qualified domain name. - -And some DNS software requires it: right now the DNS server I use for `jvns.ca` makes me put a `"."` at the end of domains names (for example in CNAME records) and warns me otherwise it’ll append `.jvns.ca` to whatever I typed in. I don’t agree with this design decision but it’s not a big deal, I just put a “.” at the end. - -**No: in a browser** - -Confusingly, it often _doesn’t_ work to put a `"."` at the end of a domain name in a browser! For example, if I type `https://twitter.com.` into my browser, it doesn’t work! It gives me a 404. - -I think what’s going on here is that it’s setting the HTTP Host header to `Host: twitter.com.` and the web server on the other end is expecting `Host: twitter.com`. - -Similarly, `https://jvns.ca.` gives me an SSL error for some reason. - -### I think relative domain names used to be more common - -One last thing: I think that “relative” domain names (like me using `grapefruit` to refer to the other computer in my house, `grapefruit.lan`) used to be more commonly used, because DNS was developed in the context of universities or other big institutions which have big internal networks. - -On the internet today, it seems like it’s more common to use “absolute” domain names (like `example.com`). - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/ - -作者:[Julia Evans][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://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://wizardzines.com/zines/dns/ -[2]: https://github.com/miekg/dns -[3]: https://www.rfc-editor.org/rfc/rfc1035#section-4.1.1 -[4]: https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html diff --git a/translated/tech/20220912 Why do domain names sometimes end with a dot.md b/translated/tech/20220912 Why do domain names sometimes end with a dot.md new file mode 100644 index 0000000000..fb582dfb7a --- /dev/null +++ b/translated/tech/20220912 Why do domain names sometimes end with a dot.md @@ -0,0 +1,256 @@ +[#]: subject: "Why do domain names sometimes end with a dot?" +[#]: via: "https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: "lxbwolf" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为什么有时候域名的末尾有个点? +====== + +大家好!今年早些时候,我在写杂志 [DNS 是如何工作的][1] 时,有人问我——为什么人们有时在域名的末尾加一个点?例如,如果你通过运行 `dig example.com` 查询 `example.com` 的 IP,你会看到一下内容: + +``` + + $ dig example.com + example.com. 5678 IN A 93.184.216.34 + +``` + +执行完 `dig` 命令后,`example.com` 有一个 `.`——变成了 `example.com.`!发生了什么? + +有些 DNS 工具也要求传给它的域名后加一个 `.`:如果你在使用 [miekg/dns][2] 时传给它 `example.com`,它会报错: + +``` + + // trying to send this message will return an error + m := new(dns.Msg) + m.SetQuestion("example.com", dns.TypeA) + +``` + +最初我以为我知道这个问题的答案("呃,末尾的点意味着域名是完全合格的?")。这是对的——一个完全合格的域名是一个末尾有 `“.”` 的域名! + +但是*为什么*末尾的点是有用且重要的呢? + +### 在 DNS 的请求/响应中,域名的末尾并没有 “.” + +我曾经(错误地)认为 "为什么末尾有一个点?"的答案可能是 "在 DNS 请求/响应中,域名末尾有一个".",所以我们把它放进去,以匹配你的计算机实际发送/接收的内容"。但事实并不是这样! + +当计算机发送 DNS 请求/响应时,域名的末尾并没有点。实际上,域名中*没有一个*点。 + +域名会被编码成一系列的长度/字符串对。例如,域名 `example.com` 被编码为这13个字节。 + +``` + + 7example3com0 + +``` + +编码后的内容一个点也没有。一个 ASCII 域名(如 "example.com")被转成了各种 DNS 软件的 DNS 请求/响应中使用的格式。 + +今天我们来讨论域名被转成 DNS 响应的一个地方:zone 文件。 + +### zone文件中域名末尾的 “.” + +一些人管理域名的 DNS 记录的方法是创建一个被称为 "zone 文件"的文本文件,然后配置一些 DNS 服务器软件(如 `nsd` 或 `bind`)来为该 zone 文件中指定的 DNS 记录提供服务。 + +下面是一个对应 `example.com` 的示例 zone 文件: + +``` + + orange 300 IN A 1.2.3.4 + fruit 300 IN CNAME orange + grape 3000 IN CNAME example.com. + +``` + +在这个文件中,任何不以 `"."` 结尾的域名(比如 `"orange"`)后都会自动加上 `.example.com`。所以 `"orange"` 成了 `"orange.example.com"` 的简称。DNS 服务器从它的配置中得知这是一个 `example.com` 的 zone 文件,所以它知道在所有不以点结尾的名字后面自动添加 `example.com`。 + +我想这里的想法只是为了少打几个字符——如果要打出全称,zone 文件会是这样: + +``` + + orange.example.com. 300 IN A 1.2.3.4 + fruit.example.com. 300 IN CNAME orange.example.com. + grape.example.com. 3000 IN CNAME example.com. + +``` + +确实多了很多字符。 + +### 你也可以不通过 zone 文件来使用 DNS + +尽管官方的 DNS RFC([RFC 1035][3])中定义了 zone 文件格式,但你也可以不通过 zone 文件来使用 DNS。例如,AWS Route 53 就不用 zone 文件来存储 DNS 记录!你可以通过 Web 界面或 API 来创建记录,我猜他们是用某种数据库而不是一堆文本文件来存储记录。 + +不过,Route 53(像许多其他 DNS 工具一样)确实支持导入和导出 zone 文件,这个功能或许在你更换 DNS 提供商时很有用。 + +### `dig` 命令输出中末尾的 “.” + +现在我们来讨论下 `dig` 命令的输出: + +``` + + $ dig example.com + ; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> +all example.com + ;; global options: +cmd + ;; Got answer: + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10712 + ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + + ;; OPT PSEUDOSECTION: + ; EDNS: version: 0, flags:; udp: 65494 + ;; QUESTION SECTION: + ;example.com. IN A + + ;; ANSWER SECTION: + example.com. 81239 IN A 93.184.216.34 + +``` + +有一件奇怪的事是,几乎每一行都以 `;;` 开头,这是怎么回事?`;` 是 zone 文件中的注释字符! + +我想 `dig` 以这种奇怪的方式输出的原因可能是为了方便你粘贴这些内容到 zone 文件时不用修改就可以直接用。 + +这也是 `example.com` 末尾有个 `.` 的原因 ——zone 文件要求域名末尾必须有点(否则它们会被解释为是相对于该区域的)。因此 `dig` 也这么处理了。 + +我真的希望 dig 有一个 `+human` 选项,以更人性化的方式打印出这些信息,但现在我太懒了,懒得花工夫去实际贡献代码来做这件事(而且我并不擅长 C),所以我只能在我的博客上抱怨一下 :) + +### curl 命令输出中末尾的 “.” + +我们来看下另一个末尾有 `.` 的例子:curl! + +我家里有台计算机名为 “grapefruit”,其上运行着 webserver。当我执行 `curl grapefruit` 时,会输出: + +``` + + $ curl grapefruit + + + + + +``` + +这样运行没问题!但是如果我在域名后加一个 `.` 会怎样呢?它报错了: + +``` + + $ curl grapefruit. + curl: (6) Could not resolve host: grapefruit. + +``` + +发生了什么?为了搞清楚,我们需要先来学习下搜索域: + +### 初识搜索域 + +当我执行 `curl grapefrult` 时,它是怎么被转成一个 DNS 请求的?你可能会认为我的计算机会向域名 `grapefruit` 发送一个请求,对吗?但事实并不是这样。 + +让我们用 `tcpdump` 来看看到底是什么域名在被查询。 + +``` + + $ sudo tcpdump -i any port 53 + [...] A? grapefruit.lan. (32) + +``` + +实际上是向 `grapefruit.lan.` 发送的请求。为什么呢? + +解释一下: + + 1. `curl` 调用函数 `getaddrinfo` 来查询 `grapefruit` + + 2. `getaddrinfo` 查询了我计算机上的文件 `/etc/resolv.conf` + + 3. `/etc/resolv.conf` 包含两行内容: + +``` + nameserver 127.0.0.53 + search lan + +``` + + 4. 因为有 `search lan` 这行内容,所以 `getaddrinfo` 在 `grapefruit` 的末尾添加了一个 `lan`,去查询 `grapefruit.lan` + + + + +### 什么时候搜索域被使用? + +现在我们知道了一些奇怪的事情:当我们查询一个域名时,有时会有一个额外的东西(如`lan`)被加到最后。但是什么时候会发生这种情况呢? + + 1. 如果我们在域名**末尾**添加一个 `.`,那么这时不会用到搜索域 + 2. 如果域名**中间包含**一个 `.`(如 `example),那么默认也不会用到搜索域。但是可以通过修改配置来改变处理逻辑(在 [ndots][4] 里有更详细的说明) + + + +我们现在知道了 `curl grapefruit.` 与 `curl grapefruit` 结果不一样的原因——因为一个查询的是 `grapefruit.`,而另一个查询的是 `grapefruit.lan.`。 + +### 我的计算机怎么知道使用哪个搜索域呢? + +当我连接路由时,它会通过 DHCP 告诉我它的搜索域是 `lan`——它也是通过这个方式给我的计算机分配 IP。 + +### 所以为什么要在域名末尾加一个点呢? + +现在我们已经了解了 zone 文件和搜索域,下面是我认为的人们要在域名末尾加点的原因: + +有两种情况下,域名会被修改,并在末尾添加其他东西。 + + * 在 `example.com` 的 zone 文件中,`grapefruit` 会被转为 `grapefruit.example.com` + * 在我的本地网络(我的计算机已经配置了使用搜索域 `lan`),`grapefruit` 被转为 `grapefruit.lan` + + + +因此,由于域名在某些情况下实际上可能被转成其他名字,人们就在结尾处加一个 `.`,以此来表示 "这是域名,末尾不需要添加任何东西,这就是全部的东西"。因为否则会引起混乱。 + +“这就是全部内容”的技术术语是**"完全合格域名"**,简称为**"FQDN "**。所以 `google.com.` 是一个完全合格的域名,而 `google.com` 不是。 + +我总是要提醒自己这样做的原因,因为我很少使用 zone 文件和搜索域,所以我经常觉得——"我当然是指 `google.com` 而不是 `google.com.something.else`! 我为什么要指其他东西?那太傻了!" + +但是有些人确实在使用 zone 文件和搜索域(例如 Kubernetes 中使用了搜索域!),所以结尾的 ". " 很有用,可以让人确切的知道,不应该再添加其他东西。 + +### 什么时候在末尾添加 “.”? + +以下是关于何时在域名末尾加 ". " 的几个简单说明: + +**需要添加:配置 DNS 时** + +在配置 DNS 时,使用完全合格的域名从来都不是坏事。你不一定要这样做:非完全合格的域名通常也能正常工作,但我从来没有遇到过不接受完全合格域名的 DNS 软件。 + +有些 DNS 软件需要这样做:现在我为 `jvns.ca` 使用的 DNS 服务器让我在域名的末尾加上 `"."`(例如在 CNAME 记录中),并提示如果我不添加,它将在我输入的内容末尾加上 `.jvns.ca`。我不同意这个设计决定,但这不是什么大问题,我只是在最后加一个 "."。 + +**不需要加:在浏览器中** + +令人困惑的是,在浏览器中,在域名结尾处加一个 `.` *不能*正常运行。例如,如果我在浏览器中输入 `https://twitter.com.`,它就会报错。它会返回 404。 + +我认为这里发生的事情是,它将 HTTP Host header 设置为`Host:twitter.com.`,而对端的网络服务器则期望 `Host:twitter.com`。 + +同样地,`https://jvns.ca.` 由于某种原因,返回了一个 SSL 错误。 + +### 我认为相对域名在过去是比较常见的 + +最后一件事:我认为"相对"域名(比如我用 `grapefruit` 来指代我家的另一台计算机 `grapefruit.lan`)在过去更常用,因为 DNS 是在大学或其他有大型内部网络的大机构中开发的。 + +在今天的互联网上,使用"绝对"域名(如 `example.com`)似乎更为普遍。 + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://wizardzines.com/zines/dns/ +[2]: https://github.com/miekg/dns +[3]: https://www.rfc-editor.org/rfc/rfc1035#section-4.1.1 +[4]: https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html From 82569745d1f280f54f21c86a553d11232fc89b4b Mon Sep 17 00:00:00 2001 From: Cubik Date: Sun, 13 Nov 2022 14:00:01 -0500 Subject: [PATCH 2008/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?][tech]:=2020221111.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20FFmpeg=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...11.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md b/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md index e5f96bd934..3b0c307b9c 100644 --- a/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md +++ b/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-ffmpeg-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -150,7 +150,7 @@ via: https://www.debugpoint.com/install-ffmpeg-ubuntu/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c9b3b4200bb42ce18fa051a3ac885d014c6a2160 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 14 Nov 2022 08:24:55 +0800 Subject: [PATCH 2009/3123] RP @geekpi https://linux.cn/article-15250-1.html --- ...st Speaker Volume in Ubuntu and Other Linux.md | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md (69%) diff --git a/translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md b/published/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md similarity index 69% rename from translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md rename to published/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md index 56545275df..cff6529075 100644 --- a/translated/tech/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md +++ b/published/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md @@ -3,14 +3,16 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15250-1.html" 如何提高 Ubuntu 和其他 Linux 系统中的扬声器音量 ====== -**以下是如何在 Ubuntu 和其他 Linux 发行版中提高笔记本和桌面的音量的方法。** +![](https://img.linux.net.cn/data/attachment/album/202211/14/082359euz72h2utucf2v5u.jpg) + +> 以下是如何在 Ubuntu 和其他 Linux 发行版中提高笔记本和桌面的音量的方法。 你有没有觉得你的 Ubuntu 笔记本的音量太小,尽管你把音量调到了 100%?我相信你有过。主要原因是:很明显,笔记本电脑的扬声器输出强度比大型扬声器要低。 @@ -18,41 +20,41 @@ VLC 和一些媒体播放器允许你将音量提高到 200%。在最新的 Ubuntu 中使用一些设置,你可以将音量进一步提高。 -**注意**:在你尝试和使用以下方法之前,请记住,每个扬声器都有其制造商设定的硬件限制。偶尔一次,播放超过 100% 的音频是可以的。但是,连续放大到更高的分贝可能会使输出的音频失真,并且从长远来看可能会损坏你的扬声器。因此,在使用时要小心谨慎,并有所限制。 +> **注意**:在你尝试和使用以下方法之前,请记住,每个扬声器都有其制造商设定的硬件限制。偶尔一次,播放超过 100% 的音频是可以的。但是,连续放大到更高的分贝可能会使输出的音频失真,并且从长远来看可能会损坏你的扬声器。因此,在使用时要小心谨慎,并有所限制。 ### 在 Ubuntu 和其他发行版中提高扬声器音量 -#### 对于最新的 Ubuntu 22.04 及以上版本(GNOME)。 +#### 对于最新的 Ubuntu 22.04 及以上版本(GNOME) -从应用菜单中打开设置,进入声音标签。 +从应用菜单中打开“设置Settings”,进入“声音Sound”标签。 -启用 “Over Amplification” 开关。在你启用的那一刻,你应该看到音量条被扩大了。 +启用 “过度放大Over Amplification” 开关。在你启用的那一刻,你应该看到音量条被扩大了。 ![在 Ubuntu 中提升音量超过 100%][1] 现在你可以享受音量提升来听音乐了。 -#### Fedora, Arch Linux 和其他发行版 +#### Fedora、Arch Linux 和其他发行版 如果你使用带有 GNOME 的 Fedora 工作站,你将看不到上述选项,因为这是 Ubuntu 特有的设置。见下面。 ![在 Fedora (GNOME)中,扬声器音量最大为 100%][2] -因此,对于任何其他 Linux 发行版(Arch、Fedora、RedHat 等)或桌面(KDE、Xfce、LXQt 等),打开终端并安装 [PulseAudio Volume Control][3]。 +因此,对于任何其他 Linux 发行版(Arch、Fedora、RedHat 等)或桌面(KDE、Xfce、LXQt 等),打开终端并安装 [PulseAudio 音量控制器][3]。 -**Fedora、RedHat Linux、OpenSUSE 和相关基于 rpm 的发行版:** +Fedora、RedHat Linux、OpenSUSE 等基于 RPM 的发行版: ``` sudo dnf install pavucontrol ``` -**对于 Arch Linux, Manjaro** +对于 Arch Linux、Manjaro: ``` sudo pacman -S pavucontrol ``` -**基于 Ubuntu 的非 GNOME 发行版** +基于 Ubuntu 的非 GNOME 发行版: ``` sudo apt install pavucontrol @@ -62,7 +64,7 @@ sudo apt install pavucontrol 安装后,从应用菜单中打开 `pavucontrol`,它应该有个 “PulseAudio Volume Control” 菜单项。 -![使用PulseAudio音量控制增加音量][4] +![使用 PulseAudio 音量控制增加音量][4] ### 总结 @@ -77,7 +79,7 @@ via: https://www.debugpoint.com/boost-speaker-volume-ubuntu/ 作者:[Arindam][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/) 荣誉推出 From 0640f6156011b5bc7367ff5aebe91ba443439e7f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 14 Nov 2022 08:40:39 +0800 Subject: [PATCH 2010/3123] translating --- ...3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 184 ----------------- ...3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 185 ++++++++++++++++++ 2 files changed, 185 insertions(+), 184 deletions(-) delete mode 100644 sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md create mode 100644 translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md diff --git a/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md deleted file mode 100644 index e8608ed120..0000000000 --- a/sources/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md +++ /dev/null @@ -1,184 +0,0 @@ -[#]: subject: "How to Install Node.js on RHEL 9" -[#]: via: "https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/" -[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Node.js on RHEL 9 -====== - -In this post, we will explain how to install Node.js on RHEL 9 system step-by-step. - -Built on Google’s V8 Javascript engine, [Node.js][1] is a free and opensource, cross-platform JavaScript runtime that is mostly used for building server-side applications. It uses an event-driven and asynchronous model that helps developers build highly scalable, data-intensive real-time applications (RTAs ). You can use NodeJS to build both front-end and back-end applications. - -Node.js is commonly used in building the following applications: - -- Chat applications -- Streaming applications -- Browser games -- Command-line tools -- Embedded systems - -Top companies that use NodeJS in their tech stacks include PayPal, Netflix, and Uber to mention a few. - -There are three main ways of installing Node.JS: - -- Installing Node.JS from the NodeSource repository -- Installing Node.JS from the distribution’s Official repository -- Installing Node.JS using NVM - -Let us check out how to install Node.JS on RHEL 9 using each of these methods. - -##### Prerequisites - -- Minimal Installed RHEL 9 System -- [Sudo User][2] with admin rights -- Internet Connectivity -- Red Hat Subscription or locally configured repository - -### Installing Node.js from NodeSource Repository - -[NodeSource][3]is a technology company that seeks to help organizations run production-ready Node.Js applications with more focus on resource usage and enhanced security and application performance. It provides the latest versions of Node.JS and NPM. - -To install Node.SJ from Nodesource, first, update the system packages as shown. - -``` -$ sudo dnf update -y -``` - -Next, install the required build tools which will be required during the installation of Node.JS. These include the GCC c/c++ compiler, Perl, and Python debuggers to mention a few. - -``` -$ sudo dnf groupinstall 'Development Tools' -y -``` - -Next, we are going to install Node.JS 18.x from Nodesource. To do this, download and run the NodeSource setup script as follows. - -``` -$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - -``` - -The script adds the Nodesource repository to your system among other tasks - -At the tail end of the output, you will see some additional instructions provided on how to install Node.JS and npm. - -Therefore, to install Node.JS and npm (Node Package Manager), run the command: - -``` -$ sudo dnf install nodejs -y -``` - -Once the installation is complete, verify the version of Node.JS and NPM as shown. - -``` -$ node -v -$ npm -v -``` - -The output shows that we are running Node v18.12 which is the latest LTS release and NPM 8.19.2. - -### Installing Node.js from the official RHEL repositories - -The other way of installing NodeJS and NPM is by installing them from your distribution’s official repository. However, this approach does not provide the latest versions. - -If you don’t mind not installing the latest versions of Node and NPM. , then run the following command on the command line. - -``` -$ sudo dnf update -y -$ sudo dnf install nodejs npm -y -``` - -### Installing Node.js using NVM - -Lastly, you can install Node.JS using NVM ( Node Version Manager) which is a tool for managing Node versions on your system. The tool helps developers work efficiently on different projects which require different versions of Node.JS - -NVM is not installed by default You need to install it by running the Shell script which is available on the [Official GitHub Page][4]. - -``` -$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash -``` - -This downloads and saves nvm in the .nvm directory in your home directory. - -Once installed, close your terminal sessions and open a new terminal. Then run the following command to confirm that NVM has been installed. - -``` -$ command -v nvm -``` - -Next, you can list all the available versions of Node.JS using the following command: - -``` -$ nvm ls-remote -``` - -Alternatively, you can list all the latest LTS releases for Node.JS versions as shown. - -``` -$ nvm ls-remote | grep -i latest -``` - -To install the very latest version of Node.JS (currently v19.0.0 ), run the command: - -``` -$ nvm install node -``` - -You can then verify the version of Node installed as shown. - -``` -$ node -v -``` - -In addition, you can install a specific version of Node. JS. For example, to install v18.2.0, run the command: - -``` -$ nvm install v18.12.0 -``` - -To list all the installed versions of NodeJS on your system, run the command: - -``` -$ nvm ls -``` - -The first entry with the sign ( – > ) points to the version of Node.JS that is currently in use. This is then followed by other versions as indicated below - -To switch to another version of Node.JS, use the syntax: - -``` -$ nvm use -``` - -For example, to use Node version 19.0.0, run the command: - -``` -$ nvm use 19.0.0 -``` - -Again, check the installed versions of Node.JS, and this time the  ( – > ) sign will point to v19.0.0 - -##### Conclusion - -In this guide, we have demonstrated how to install Node.js using three different methods. In addition, we have provided a few ways in which you can manage the Node versions using NVM. We hope that you can now comfortably install NodeJS on RHEL and choose the version that you want to work with on your project. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/ - -作者:[James Kiarie][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/james/ -[b]: https://github.com/lkxed -[1]: https://nodejs.org/en/about/ -[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/ -[3]: https://nodesource.com/ -[4]: https://github.com/nvm-sh/nvm diff --git a/translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md new file mode 100644 index 0000000000..cd96c378a6 --- /dev/null +++ b/translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md @@ -0,0 +1,185 @@ +[#]: subject: "How to Install Node.js on RHEL 9" +[#]: via: "https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/" +[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 RHEL 9 上安装 Node.js +====== + +在这篇文章中,我们将逐步解释如何在 RHEL 9 系统上安装 Node.js。 + +[Node.js][1] 是基于 Google 的 V8 Javascript 引擎构建,它是一个免费的开源跨平台 JavaScript 运行时,主要用于构建服务器端应用。它使用事件驱动和异步模型,帮助开发人员构建高度可扩展的数据密集型实时应用 (RTA)。你可以使用 NodeJS 来构建前端和后端应用。 + +Node.js 通常用于构建以下应用: + +- 聊天应用 +- 流媒体应用 +- 浏览器游戏 +- 命令行工具 +- 嵌入式系统 + +在其技术栈中使用 NodeJS 的顶级公司包括 PayPal、Netflix 和 Uber 等等。 + +安装 Node.JS 主要有以下三种方式: + +- 从 NodeSource 仓库安装 Node.JS +- 从发行版的官方仓库安装 Node.JS +- 使用 NVM 安装 Node.JS + +让我们看看如何使用这些方法在 RHEL 9 上安装 Node.JS。 + +##### 先决条件 + +- 最少化安装的 RHEL 9 系统 +- 具有管理员权限的 [Sudo 用户][2] +- 互联网连接 +- Red Hat 订阅或本地配置的仓库 + +### 从 NodeSource 存储库安装 Node.js + +[NodeSource][3] 是一家技术公司,旨在帮助组织运行生产就绪的 Node.Js 应用,更加关注资源使用以及增强的安全性和应用程序性能。它提供了最新版本的 Node.JS 和 NPM。 + +要从 Nodesource 安装 Node.JS,首先,如下所示更新系统包。 + +``` +$ sudo dnf update -y +``` + +接下来,安装在安装 Node.JS 期间所需的构建工具。其中包括 GCC c/c++ 编译器、Perl 和 Python 调试器等等。 + +``` +$ sudo dnf groupinstall 'Development Tools' -y +``` + +接下来,我们将从 Nodesource 安装 Node.JS 18.x。为此,请下载并运行 NodeSource 设置脚本,如下所示。 + +``` +$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - +``` + +该脚本在其他任务中将 Nodesource 仓库添加到您的系统。 + +在输出的末尾,你将看到一些关于如何安装 Node.JS 和 npm 的附加说明。 + +因此,要安装 Node.JS 和 npm(Node 包管理器),请运行以下命令: + +``` +$ sudo dnf install nodejs -y +``` + +安装完成后,如图所示验证 Node.JS 和 NPM 的版本。 + +``` +$ node -v +$ npm -v +``` + +输出显示我们正在运行 Node v18.12,它是最新的 LTS 版本和 NPM 8.19.2。 + +### 从官方 RHEL 仓库安装 Node.js + +安装 NodeJS 和 NPM 的另一种方法是从发行版的官方仓库中安装它们。但是,这种方法不提供最新版本。 + +如果你不介意不安装最新版本的 Node 和 NPM。 那么在命令行上运行以下命令。 + +``` +$ sudo dnf update -y +$ sudo dnf install nodejs npm -y +``` + +### 使用 NVM 安装 Node.js + +最后,你可以使用 NVM(Node 版本管理器)安装 Node.JS,这是一种用于管理系统上 Node 版本的工具。该工具可帮助开发人员在需要不同版本 Node.JS 的不同项目上高效工作。 + +默认情况下没安装 NVM。你需要通过运行[官方 GitHub 页面][4]上提供的 Shell 脚本来安装它。 + +``` +$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash +``` + +这会下载 nvm 并将其保存在主目录的 .nvm 目录中。 + +安装后,关闭终端会话并打开一个新终端。然后运行以下命令确认 NVM 已经安装。 + +``` +$ command -v nvm +``` + +接下来,你可以使用以下命令列出所有可用的 Node.JS 版本: + +``` +$ nvm ls-remote +``` + +或者,你可以列出 Node.JS 版本的所有最新 LTS 版本,如图所示。 + +``` +$ nvm ls-remote | grep -i latest +``` + +要安装最新版本的 Node.JS(当前为 v19.0.0),请运行以下命令: + +``` +$ nvm install node +``` + +然后,你可以验证安装的 Node 版本,如下所示。 + +``` +$ node -v +``` + +此外,你可以安装特定版本的 Node.JS。例如,要安装 v18.2.0,请运行以下命令: + + +``` +$ nvm install v18.12.0 +``` + +要列出系统上所有已安装的 NodeJS 版本,请运行以下命令: + +``` +$ nvm ls +``` + +第一行带有 (->) 符号的条目指向当前使用的 Node.JS 版本。然后是其他版本。 + +要切换到另一个版本的 Node.JS,请使用以下语法: + +``` +$ nvm use +``` + +例如,要使用 Node 版本 19.0.0,请运行以下命令: + +``` +$ nvm use 19.0.0 +``` + +再次检查已安装的 Node.JS 版本,这次(->)符号将指向 v19.0.0 + +##### 总结 + +在本指南中,我们演示了如何使用三种不同的方法安装 Node.js。 此外,我们还提供了几种使用 NVM 管理 Node 版本的方法。 我们希望你现在可以轻松地在 RHEL 上安装 NodeJS,并选择你想要在项目中使用的版本。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/ + +作者:[James Kiarie][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.linuxtechi.com/author/james/ +[b]: https://github.com/lkxed +[1]: https://nodejs.org/en/about/ +[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/ +[3]: https://nodesource.com/ +[4]: https://github.com/nvm-sh/nvm From 78080fbdbdfb2903a308c8d47bcb8453c05116b7 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 14 Nov 2022 08:47:51 +0800 Subject: [PATCH 2011/3123] translating --- ...0221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md index 5d010bc7e5..91b0cc8d7b 100644 --- a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md +++ b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/wget-not-found-error/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3cba4f319420b2c4b04e89e3dc5db3d12f574d16 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 14 Nov 2022 09:31:33 +0800 Subject: [PATCH 2012/3123] translating --- ... Diagnose connectivity issues with the Linux ping command.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md b/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md index 2af97315bf..0104beb081 100644 --- a/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md +++ b/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/10/linux-ping-command" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 617b2afc57fdabd0d17f1f4da0cab7d437c5a492 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 14 Nov 2022 09:56:28 +0800 Subject: [PATCH 2013/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @MuggleWei https://linux.cn/article-15251-1.html 恭喜你,升级为二星贡献者~ --- ...nux Distros That are Built From Scratch.md | 174 +++++++++--------- 1 file changed, 85 insertions(+), 89 deletions(-) rename {translated/tech => published}/20221014 13 Independent Linux Distros That are Built From Scratch.md (58%) diff --git a/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/published/20221014 13 Independent Linux Distros That are Built From Scratch.md similarity index 58% rename from translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md rename to published/20221014 13 Independent Linux Distros That are Built From Scratch.md index 1d2a5af3ec..37eee8a1c9 100644 --- a/translated/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md +++ b/published/20221014 13 Independent Linux Distros That are Built From Scratch.md @@ -3,102 +3,100 @@ [#]: author: "sreenath https://itsfoss.com/author/sreenath/" [#]: collector: "lkxed" [#]: translator: "MuggleWei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15251-1.html" 13 个从头开始构建的独立 Linux 发行版 ====== + +![](https://img.linux.net.cn/data/attachment/album/202211/14/095522os6236zrzcgs79e9.jpg) + 时至今日,世界上已经有成百上千种不同的 Linux 发行版。 -它们中的大多数都可以被划归为三个大类 : Debian,Red Hat (Fedora) 以及 Arch Linux。 +它们中的大多数都可以被划归为三个大类 : Debian、Red Hat(Fedora)以及 Arch Linux。 -使用基于 Debian/Ubuntu ,Red Hat/SUSE 或者 Arch 的 Linux 发行版自然有它们的优势。它们很受大众欢迎,因此它们的包管理器能够提供大量的软件包。 +使用基于 Debian/Ubuntu、Red Hat/SUSE 或者 Arch 的 Linux 发行版自然有它们的优势。它们很受大众欢迎,因此它们的包管理器能够提供大量的软件包。 -然而,有一些用户更倾向于使用从头开始构建,独立于 DEB/RPM 这类包管理系统的发行版本。 +然而,有一些用户更倾向于使用从头开始构建、独立于 DEB/RPM 这类包管理系统之外的发行版。 在这篇文章当中,我们将列出一些优秀的独立 Linux 发行版。 -**注意 :** 显然,下面的列表显然不会包括一些广受欢迎,通常作为创建新的发现版基础的发行版,如 Debian,Ubuntu 和 Fedora 等。此外,列表顺序不分先后,没有特定的排名。 +> **注意 :** 显然,下面的列表显然不会包括一些广受欢迎,通常作为创建新发行版的基础的发行版,如 Debian、Ubuntu 和 Fedora 等。此外,列表顺序不分先后,没有特定的排名。 -### 1. NixOS +### 1、NixOS ![Image Credits: Distrowatch][1] NixOS 最初发布于 2003 年,NixOS 建立在 Nix 包管理器之上。它每年发布两个版本,通常是在 5 月和 11 月。 -NixOS 显然不是一个直接面向新用户或普通用户的发行版。然而,其独特的[包管理][2]方法吸引了各种用户。 +NixOS 可能不是一个直接面向新用户或普通用户的发行版。然而,其独特的 [包管理][2] 方法吸引了各种用户。 此外,它仍然支持 32 位系统。 -##### 其他特性 : +其他特性: * 构建隔离的包 * 可靠的升级,并且具有回滚功能 * 可重现的系统配置 -[NixOS][3] +> **[NixOS][3]** -**相关链接**: [面向专家用户的高级 Linux 发行版][4] - -### 2. Gentoo Linux +### 2、Gentoo Linux ![Image Credits: Distrowatch][5] -Geetoo Linux 是一个主要针对系统专家的独立 Linux 发行版。它是为那些希望自由定制、微调和优化操作系统以满足其要求的用户而构建。 +Geetoo Linux 是一个主要针对操作系统专家的独立 Linux 发行版。它是为那些希望自由定制、微调和优化操作系统以满足其要求的用户而构建。 -Gentoo 使用[Portage 包管理器][6]来创建和安装软件包,通常还允许你针对你的硬件来优化它们。 Chrome 的开源版本 **Chromium OS** 便是使用 Gentoo 作为其核心的。 +Gentoo 使用 [Portage 包管理器][6] 来创建和安装软件包,通常还允许你针对你的硬件来优化它们。Chrome 的开源版本 **Chromium OS** 便是使用 Gentoo 作为其核心的。 -不要忘记,Gentoo 是[仍然支持 32 位架构的发行版][7]之一。 +不要忘记,Gentoo 是 [仍然支持 32 位架构的发行版][7] 之一。 -##### 其他特性 : +其他特性: * 增量更新 * 基于源码的软件管理方法 -* 支持 GURU (Gentoo 用户仓库)的 Overlay 仓库的概念,允许用户添加 Gentoo 尚未提供的软件包 +* 支持 GURU(Gentoo 用户仓库)的层叠 Overlay 仓库的概念,允许用户添加 Gentoo 尚未提供的软件包 -[Gentoo Linux][8] +> **[Gentoo Linux][8]** -### 3. Void Linux +### 3、Void Linux ![Image Credits: Distrowatch][9] -Void Linux 是一个[滚动发布的发行版][10],使用 X Binary Package System(XBPS) 来安装和删除软件。它由前 NetBSD 开发者 **Juan Romero Pardines** 创建。 +Void Linux 是一个 [滚动发布的发行版][10],使用 X 二进制软件包系统(XBPS)来安装和删除软件。它由前 NetBSD 开发者 Juan Romero Pardines 创建。 它使用 runit 而不是 systemd 作为其初始化系统。此外,它还让你可以选择使用多个 [桌面环境][11]。 -##### 其他特性 : +其他特性: -* 最低的系统要求 +* 最小化的系统要求 * 官方库也提供非自由软件包 * 支持树莓派 * 集成 OpenBSD 的 LibreSSL * 支持 musl C 库 * 支持 32 位系统 -[Void Linux][12] +> **[Void Linux][12]** -**Related:** [Not a Systemd Fan? Here are 13+ Systemd-Free Linux Distributions][13] -**相关链接 :** [不是 Systemd 的粉丝 ? 这里有 13 个无 Systemd 的 Linux 发行版][13] - -### 4. Solus Linux +### 4、Solus Linux ![solus budgie 2022][14] -Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴奋的特性。Solus 的旗舰版本使用自己的 homegrown budgie 作为桌面环境。 +Solus 的前身是 EvolveOS,它从头开始构建并提供了一些令人兴奋的特性。Solus 的旗舰版本使用自己打造的 Budgie 作为桌面环境。 -与本篇文章介绍的其他系统相比,Solus 对于新手较为友好。它设法成为[最好的 Linux 发行版][15]之一。 +与本篇文章介绍的其他系统相比,Solus 对于新手较为友好。它设法成为 [最好的 Linux 发行版][15] 之一。 -它使用 eopkg 作为其包管理系统,支持版滚动发布模型。按照开发人员的说法,开发 Solus 的目标是个人电脑。 +它使用 eopkg 作为其包管理系统,支持版滚动发布模型。按照开发人员的说法,开发 Solus 的目标是用于个人电脑。 -##### 其他特性 : +其他特性: * 支持 Budgie、Gnome、MATE 和 KDE Plasma * 各种开箱即用的软件,从而减少设置工作 -[Solus Linux][16] +> **[Solus Linux][16]** -### 5. Mageia +### 5、Mageia ![Image Credits: Distrowatch][17] @@ -106,161 +104,159 @@ Mageia 始于 2010 年,它是 Mandriva Linux 的一个分支。它的目标是 Mageia 是一个社区驱动的项目,由非营利组织和贡献者支持。每年会发布一个大版本。 -##### 其他特性 : +其他特性: * 支持 32 位系统 -* 支持 KDE Plasma,Gnome 和 XFCE +* 支持 KDE Plasma、Gnome 和 XFCE * 最低的系统要求 -[Mageia][18] +> **[Mageia][18]** -**相关链接 :** **[仍然支持 32 位系统的 Linux 发行版][19]** - -### 6. Clear Linux +### 6、Clear Linux ![Image Credits: Distrowatch][20] -Clear Linux 是一个由 Intel 发布的发行版,主要设计考虑是性能和云服务的使用。 +Clear Linux 是一个由英特尔发布的发行版,主要设计考虑是性能和云服务的使用。 有趣的是,Clear Linux 升级时是作为一个整体而非去升级单个的软件包。所以,即使你不小心弄乱了系统设置,它也可以正确的启动,执行恢复出厂设置,并让用户重新设置。 它不太适合个人用户使用。但可以作为一个独特的选择而尝试一下。 -##### 其他特性 : +其他特性: -* 针对 Intel 平台的高度调优 +* 针对英特尔平台的高度调优 * 用户和系统文件之间严格分离 * 持续的漏洞扫描 -[Clear Linux OS][21] +> **[Clear Linux OS][21]** -### 7. PCLinuxOS +### 7、PCLinuxOS ![Image Credits: Distrowatch][22] -PCLinuxOS 是一个 x86_64 的 Linux 发行版,使用 APT-RPM 包管理。你可以使用 KDE Plasma,Mate 以及 XFCE 桌面,它同时还提供了更多特性的社区版本的桌面。 +PCLinuxOS 是一个 x86_64 的 Linux 发行版,使用 APT/RPM 包管理。你可以使用 KDE Plasma、Mate 以及 XFCE 桌面,它同时还提供了更多特性的社区版本的桌面。 -本地安装的 PCLinuxOS 利用了 APT 包管理系统要感谢 [Synaptic 包管理器][23]。你可以从它的仓库中找到 rpm 包。 +得益于 [Synaptic 包管理器][23],本地安装的 PCLinuxOS 采用了 APT 包管理系统。但你也可以从它的仓库中找到 RPM 包。 -##### 其他特性 : +其他特性: -* mylivecd 脚本允许用户去生成一个当前已安装的硬件驱动的'快照'(所有的配置,应用,文档等)并且将它压缩为 ISO CD/DVD/USB 映像 -* 附加支持超过 85 种语言 +* mylivecd 脚本允许用户去生成一个当前已安装的硬件驱动的“快照”(所有的配置、应用、文档等)并且将它压缩为 ISO CD/DVD/USB 镜像 +* 额外支持超过 85 种语言 -[PCLinuxOS][24] +> **[PCLinuxOS][24]** -### 8. 4MLinux +### 8、4MLinux ![4m linux 2022][25] -[4MLinux][26] 是一个通用的 Linux 发行版,重点聚焦于下面四个 **“ M ”** +[4MLinux][26] 是一个通用的 Linux 发行版,重点聚焦于下面四个 **“M”** -* Maintenance (系统救援 Live CD) -* Multimedia (支持大量的图形,音频和视频格式) -* Miniserver (支持 DNS,FTP,HTTP,MySQL,NFS,Proxy,SMTP,SSH,and Telnet) -* Mystery (包含了经典 Linux 游戏的集合) +* 维护Maintenance(系统救援 Live CD) +* 多媒体Multimedia(支持大量的图形、音频和视频格式) +* 微服务器Miniserver(支持 DNS、FTP、HTTP、MySQL、NFS、Proxy、SMTP、SSH 和 Telnet) +* 神秘Mystery(包含了经典 Linux 游戏的集合) 它具有最低的系统要求,可作为桌面和服务器版本使用. -##### 其他特性 +其他特性: -* 支持大量的图形,音频和视频格式 +* 支持大量的图形、音频和视频格式 * 是小型并且通用的 Linux 发行版 -[4MLinux][27] +> **[4MLinux][27]** -### 9. Tiny Core Linux +### 9、Tiny Core Linux ![Image Credits: Distrowatch][28] -Tiny Core Linux 专注于使用 BusyBox 和 FLTK 提供一个基础的系统。它不是一个复杂的桌面。所有,并不能保证它可以运行于任何系统。 +Tiny Core Linux 专注于使用 BusyBox 和 FLTK 提供一个基础的系统。它不是一个完备的桌面,所以,并不能保证它可以运行于任何系统。 -它代表了启动到非常小的 X 桌面所需的核心功能,通常带有有线互联网访问权限。 +它只是一个启动到非常精简的 X 桌面所需的核心,通常带有有线互联网访问权限。 用户可以很好的控制一切,但对于新 Linux 用户来说,它并不是一个轻松的开箱即用的系统。 -##### 其他特性 +其他特性: * 旨在从启动时创建的内存副本中运行 -* 默认情况下,其操作就像像云 / 互联网客户端一样 +* 默认情况下,其操作就像像云端 / 互联网客户端一样 * 用户可以使用 appbrowser 来游览库以及下载应用 -[Tiny Core Linux][29] +> **[Tiny Core Linux][29]** -### 10. Linux From Scratch +### 10、Linux From Scratch(LFS) ![Image Credit: Reddit][30] [Reddit][31] -Linux From Scratch 并不是一个系统,而是通过手动构建所有组件来安装 Linux 的一种方法。一旦完成,它提供了一个紧凑、灵活和安全的系统,并且可以很好的理解一个基于 Linux 的操作系统内部是如何工作的。 +Linux From Scratch(LFS)并不是一个系统,而是通过手动构建所有组件来安装 Linux 的一种方法。一旦完成,它提供了一个紧凑、灵活和安全的系统,并且可以很好的理解一个基于 Linux 的操作系统内部是如何工作的。 -如果你希望去深入理解 Linux 是如何工作的并且探寻其具体细节,那么 Linux From Scratch 是你一定要去尝试,不能错过的一个项目。 +如果你希望去深入理解 Linux 是如何工作的并且探寻其具体细节,那么 Linux From Scratch(LFS) 是你一定要去尝试,不能错过的一个项目。 -##### 其他特性 +其他特性 * 完全从头开始,定制化的构建 Linux 系统 * 极度的灵活性 * 由于从源码开始编译,提供了额外的安全性 -[Linux From Scratch][32] +> **[Linux From Scratch][32]** -### 11. Slackware +### 11、Slackware ![Image Credits: Distrowatch][33] -Slackware 是现今还在维护的最老的发行版。最初创建于 1993 年,以 Softlanding Linux 系统为基础,随后,许多的 Linux 发行版都是基于 Slackware。 +Slackware 是现今还在维护的最古老的发行版。最初创建于 1993 年,以 Softlanding Linux 系统为基础,随后,许多的 Linux 发行版都是基于 Slackware。 Slackware 目标是称为最类似于 UNIX 的 Linux 发行版,同时保持简单和稳定。 -##### 其他特性 +其他特性: * 支持 32 位和 64 位系统 * 大量的在线文档 * 从奔腾处理器到最新的机器,它都可以运行 -[Slackware][34] +> **[Slackware][34]** -### 12. Alpine Linux +### 12、Alpine Linux ![alpine linux xfce 2022][35] Alpine Linux 是一个社区开发的操作系统,专为路由器、防火墙、VPN、VoIP 盒子和服务器而设计。它是 LEAF 项目的一个分支。 -Alpine Linux 使用 apk-tools 包管理器,最初由 shell 脚本编写,而后使用 c 语言重构。它是最小的 Linux 发行版之一,仍然支持 32 位系统,并且是一个可以完全从电脑 RAM 运行的操作系统。 +Alpine Linux 使用 apk-tools 包管理器,最初由 shell 脚本编写,而后使用 c 语言重构。它是最小的 Linux 发行版之一,仍然支持 32 位系统,并且是一个可以完全从电脑内存运行的操作系统。 -##### 其他特性 : +其他特性: -* 提供大小仅为 5MB 的最小容器映像 -* 对于主库,提供 2 年的支持 ; 对于社区库,在下一个稳定版本发布前提供支持 +* 提供大小仅为 5MB 的最小容器镜像 +* 对于主库,提供 2 年的支持;对于社区库,在下一个稳定版本发布前提供支持 * 使用 musl libc 制作,Busybox 使用资源效率高的容器 -[Alpine Linux][36] +> **[Alpine Linux][36]** -### 13. KaOS +### 13、KaOS ![Image Credits: Distrowatch][37] -KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它使用[pacman 包管理器][38]。它是按照"*一个桌面环境(KDE Plasma),一个工具包(QT),一个架构(X86_64)*"的理念构建的。 +KaOS 是一个受到 Arch 启发,从头开始构建的 Linux 发行版。它使用 [pacman 包管理器][38]。它是按照"*一个桌面环境(KDE Plasma),一个工具包(Qt),一个架构(X86_64)*"的理念构建的。 它的软件库比较有限,但依然为普通用户提供了许多工具。 -##### 其他特性 : +其他特性: * 最新的 Plasma 桌面 * 紧密集成的滚动和透明的现代桌面发行版 -[KaOS][39] +> **[KaOS][39]** #### 总结 如果你需要一些独特的体验,那么这些独立 Linux 发行版应该能很好的满足你。 -然而,如果你想要用其来替换如 Ubuntu 这样主流的 Linux 发行版作为你的桌面系统...你也许需要三思而后行,上面大多数的发行版(并不代表所有)都不是一个日常使用的桌面系统的理想的选项。 +然而,如果你想要用其来替换如 Ubuntu 这样主流的 Linux 发行版作为你的桌面系统……你也许需要三思而后行,上面大多数的发行版(并不代表所有)都不是一个日常使用的桌面系统的理想的选项。 但是话又说回来,如果你对 Linux 发行版充满了经验,那么毫无疑问,你会享受这项冒险的任务的。 -*如果你想尝试这些独立发行版的其中一种,哪一个会是你的优先选择呢 ? 请在评论中与我们分享.* +*如果你想尝试这些独立发行版的其中一种,哪一个会是你的优先选择呢 ? 请在评论中与我们分享。* -------------------------------------------------------------------------------- @@ -269,7 +265,7 @@ via: https://itsfoss.com/independent-linux-distros/ 作者:[sreenath][a] 选题:[lkxed][b] 译者:[MuggleWei](https://github.com/MuggleWei) -校对:[校对者 ID](https://github.com/ 校对者 ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 From 59ea973b968f69e18f1497fcf2d94aeb5c0e2d00 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 14 Nov 2022 23:28:11 +0800 Subject: [PATCH 2014/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @littlebirdnest 这几篇不够严谨。请参照我的校对。 翻译不但需要达意,而且需要尽量不丢失原文要素。望加油。 --- ... or Upgrade Ubuntu Offline without Internet.md | 68 +++++++++---------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md b/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md index e5449214d1..0a6abedf30 100644 --- a/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md +++ b/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md @@ -3,99 +3,97 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "littlebirdnest" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -如何在没有网络的情况下,离线更新或升级 Ubuntu +如何在没有互联网连接的情况下离线更新 Ubuntu ====== -**此教程关于如何一步一步在没有网络的情况下,升级ubuntu** +> 本指南介绍了如何在没有互联网连接的情况下离线更新 Ubuntu 的步骤。 -在有些情况下,你可能需要离线更新ubuntu,又或者你可能在远程状态下需要更新一堆未联网的ubuntu,总的来说你想要升级最新的系统 +在很多情况下,你可能需要在没有互联网连接的情况下更新你的 Ubuntu 系统。你可能在外地不方便上网,也可能你需要更新一堆未联网的 Ubuntu,不管是哪种情况,保持你的系统更新最新的软件包总是需要的。 -当然,始终建议通过联网升级系统。 +当然,始终建议通过联网来更新系统。 -但有时,离线更新系统,有助于网络安全,远离黑客和恶意软件 +但有时,出于安全考虑,这是不行的。连接到互联网可能需要给你的系统进行额外的加固,以保护它们免受黑客和恶意软件的攻击。 + +以下的方法使用 [apt-offline][1] 来解决这些问题,并概述了在没有互联网的情况下离线更新 Ubuntu 的步骤。 -以下的方法使用[apt-offline][1]来解决这些问题,离线更新ubuntu ### 准备环节 -- 一台能连接到网络的ubuntu(你朋友的,咖啡馆,实验室系统) -- 装了安装包的u盘 -- 两个系统都安装了 apt-offline.一个系统离线,另一个系统联网 +- 一台能连接到网络的 Ubuntu(你朋友的、咖啡馆、实验室系统) +- 存储了软件包的 U 盘 +- 两个系统都安装了 `apt-offline`:一个系统离线,另一个系统联网 ### 安装 apt-offline -在两个系统下安装apt-offline - -你可以使用以下命令安装 apt-offline。 +在两个系统下安装 `apt-offline`。你可以使用以下命令安装: ``` sudo apt install apt-offline ``` -如果你想装离线安装 apt-offline ,你可以提前下载到u盘里,然后拷出来,再使用下面的命令 +如果你想在离线的目标系统安装 `apt-offline`,你可以提前下载到 U 盘里,然后复制到目标系统,再使用下面的命令安装。 -Ubuntu 22.04 LTS 和其他版本的下载链接如下所示。您可以选择一个镜像并下载 deb 文件。 +Ubuntu 22.04 LTS 和其他版本的下载链接如下所示。你可以选择一个镜像并下载 deb 文件。 -[下载 .deb 文件 – apt-offline][2] +> **[下载 .deb 文件 – apt-offline][2]** ``` sudo dpkg -i name_of_package.deb ``` -### 如何更新ubuntu +### 如何更新 Ubuntu -离线打开终端,且使用以下命令创建一个.sig签名文件 +在离线的目标系统上打开终端,使用以下命令创建一个 .sig 签名文件: ``` sudo apt-offline set ~/offline-data.sig ``` -[![Create the sig file][3]][4] +![创建签名文件][4] -这个刚创建的签名文件中,包含下载所需的包路径和详细信息。 +在这个刚创建的签名文件中,包含下载所需的软件包的路径和详细信息。 -[![sig file contents][5]][6] +![签名文件的内容][6] -把签名文件,拷到u盘中,再插到有网的ubuntu +把签名文件复制到 U 盘中,再插到联网的 Ubuntu 系统上。 -创建有一个目录去装这些文件 +在联网的 Ubuntu 上创建一个目录(参见下面)来存放这些文件。 -打开一个终端,运行以下命令,记得根据你的系统,更改下载目录和.sig签名文件的路径 +打开一个终端,运行以下命令来下载所需的软件包。记得根据你的系统,更改下载目录和 .sig 签名文件的路径。 ``` apt-offline get -d ~/offline-data-dir offline-data.sig ``` -[![Download the packages to install offline][7]][8] +![下载软件包以离线安装][8] -更新离线的Ubuntu +你可以看到文件相应下载,然后复制整个下载目录到 U 盘,再插到离线的 Ubuntu 系统。 -文件下载完,拷贝整个目录,再插到没联网的ubuntu - -然后运行以下命令将下载的包装到离线系统,记得根据你的系统更改目录路径 +运行以下命令将下载的软件包安装到离线系统,记得根据你的系统更改目录路径。 ``` sudo apt-offline install offline-data-dir/ ``` -[![Installing packages - offline update ubuntu][9]][10] +![安装软件包][10] -如果一切顺利,你将获得一个更新完的ubuntu +如果一切顺利,你将获得一个更新完的 Ubuntu。 -重复食用以上步骤,就可以保持你的离线ubuntu是最新版 +重复以上步骤,就可以保持你的离线 Ubuntu 为最新版本。 + +希望以上教程能帮到你更新离线的 Ubuntu 系统,如果你遇到任何问题,请在下面的评论框中告诉我。 -希望以上教程能帮到你更新离线的ubnuntu系统,如果您遇到任何问题,请在下面的评论框中告诉我。 -------------------------------------------------------------------------------- via: https://www.debugpoint.com/how-to-update-or-upgrade-ubuntu-offline-without-internet/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[littlebirdnest](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 764ea0d6cab78224c936845b220d140a9860e820 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 14 Nov 2022 23:30:34 +0800 Subject: [PATCH 2015/3123] P @littlebirdnest https://linux.cn/article-15253-1.html --- ... How to Update or Upgrade Ubuntu Offline without Internet.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md (96%) diff --git a/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md b/published/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md similarity index 96% rename from translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md rename to published/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md index 0a6abedf30..8e7e78fd04 100644 --- a/translated/tech/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md +++ b/published/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md @@ -4,12 +4,14 @@ [#]: collector: "lkxed" [#]: translator: "littlebirdnest" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15253-1.html" 如何在没有互联网连接的情况下离线更新 Ubuntu ====== +![](https://img.linux.net.cn/data/attachment/album/202211/14/232951blxmbe6wn5eympxq.jpg) + > 本指南介绍了如何在没有互联网连接的情况下离线更新 Ubuntu 的步骤。 在很多情况下,你可能需要在没有互联网连接的情况下更新你的 Ubuntu 系统。你可能在外地不方便上网,也可能你需要更新一堆未联网的 Ubuntu,不管是哪种情况,保持你的系统更新最新的软件包总是需要的。 From 29a723cb4b3be1c60bda2b3914452287706dd0c7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 15 Nov 2022 00:13:41 +0800 Subject: [PATCH 2016/3123] RP @lxbwolf https://linux.cn/article-15254-1.html --- ...o domain names sometimes end with a dot.md | 231 ++++++++++++++++ ...o domain names sometimes end with a dot.md | 256 ------------------ 2 files changed, 231 insertions(+), 256 deletions(-) create mode 100644 published/20220912 Why do domain names sometimes end with a dot.md delete mode 100644 translated/tech/20220912 Why do domain names sometimes end with a dot.md diff --git a/published/20220912 Why do domain names sometimes end with a dot.md b/published/20220912 Why do domain names sometimes end with a dot.md new file mode 100644 index 0000000000..f8ed0a81d4 --- /dev/null +++ b/published/20220912 Why do domain names sometimes end with a dot.md @@ -0,0 +1,231 @@ +[#]: subject: "Why do domain names sometimes end with a dot?" +[#]: via: "https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/" +[#]: author: "Julia Evans https://jvns.ca/" +[#]: collector: "lujun9972" +[#]: translator: "lxbwolf" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15254-1.html" + +为什么有时候域名的末尾有个点? +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/15/001222ytut3qvtau32f2p2.jpg) + +大家好!今年早些时候,我在写《[DNS 是如何工作的][1]》 时,有人问我——为什么人们有时在域名的末尾加一个点?例如,如果你通过运行 `dig example.com` 查询 `example.com` 的 IP,你会看到一下内容: + +``` +$ dig example.com +example.com. 5678 IN A 93.184.216.34 +``` + +执行完 `dig` 命令后,`example.com` 有一个 `.` ——变成了 `example.com.`!发生了什么? + +有些 DNS 工具也要求传给它的域名后加一个 `.`:如果你在使用 [miekg/dns][2] 时传给它 `example.com`,它会报错: + +``` +// trying to send this message will return an error +m := new(dns.Msg) +m.SetQuestion("example.com", dns.TypeA) +``` + +最初我以为我知道这个问题的答案(“呃,末尾的点意味着域名是完全限定的?”)。这是对的 —— 一个完全限定域名fully qualified domain name(FQDN)是一个末尾有 `.` 的域名! + +但是*为什么*末尾的点是有用且重要的呢? + +### 在 DNS 的请求/响应中,域名的末尾并没有 “.” + +我曾经(错误地)认为 “为什么末尾有一个点?”的答案可能是 “在 DNS 请求/响应中,域名末尾有一个 `.`,所以我们把它放进去,以匹配你的计算机实际发送/接收的内容”。但事实并不是这样! + +当计算机发送 DNS 请求/响应时,域名的末尾并没有点。实际上,域名中*没有*点。 + +域名会被编码成一系列的长度/字符串对。例如,域名 `example.com` 被编码为这 13 个字节。 + +``` +7example3com0 +``` + +编码后的内容一个点也没有。一个 ASCII 域名(如 `example.com`)被转成了各种 DNS 软件的 DNS 请求/响应中使用的格式。 + +今天我们来讨论域名被转成 DNS 响应的一个地方:区域文件。 + +### 区域文件中域名末尾的 “.” + +一些人管理域名的 DNS 记录的方法是创建一个被称为 “区域文件” 的文本文件,然后配置一些 DNS 服务器软件(如 `nsd` 或 `bind`)来为该区域文件中指定的 DNS 记录提供服务。 + +下面是一个对应 `example.com` 的示例区域文件: + +``` +orange 300 IN A 1.2.3.4 +fruit 300 IN CNAME orange +grape 3000 IN CNAME example.com. +``` + +在这个文件中,任何不以 `.` 结尾的域名(比如 `orange`)后都会自动加上 `.example.com`。所以 `orange` 成了 `orange.example.com` 的简称。DNS 服务器从它的配置中得知这是一个 `example.com` 的区域文件,所以它知道在所有不以点结尾的名字后面自动添加 `example.com`。 + +我想这里的想法只是为了少打几个字符——如果要打出全称,区域文件会是这样: + +``` + + orange.example.com. 300 IN A 1.2.3.4 + fruit.example.com. 300 IN CNAME orange.example.com. + grape.example.com. 3000 IN CNAME example.com. + +``` + +确实多了很多字符。 + +### 你也可以不通过区域文件来使用 DNS + +尽管官方的 DNS RFC([RFC 1035][3])中定义了区域文件格式,但你也可以不通过区域文件来使用 DNS。例如,AWS Route 53 就不用区域文件来存储 DNS 记录!你可以通过 Web 界面或 API 来创建记录,我猜他们是用某种数据库而不是一堆文本文件来存储记录。 + +不过,Route 53(像许多其他 DNS 工具一样)确实支持导入和导出区域文件,这个功能或许在你更换 DNS 提供商时很有用。 + +### dig 命令输出中末尾的 “.” + +现在我们来讨论下 `dig` 命令的输出: + +``` +$ dig example.com +; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> +all example.com +;; global options: +cmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10712 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 + +;; OPT PSEUDOSECTION: +; EDNS: version: 0, flags:; udp: 65494 +;; QUESTION SECTION: +;example.com. IN A + +;; ANSWER SECTION: +example.com. 81239 IN A 93.184.216.34 +``` + +有一件奇怪的事是,几乎每一行都以 `;;` 开头,这是怎么回事?`;` 是区域文件中的注释字符! + +我想 `dig` 以这种奇怪的方式输出的原因可能是为了方便你粘贴这些内容到区域文件时,不用修改就可以直接用。 + +这也是 `example.com` 末尾有个 `.` 的原因 —— 区域文件要求域名末尾必须有点(否则它们会被解释为是相对于该区域的)。因此 `dig` 也这么处理了。 + +我真的希望 dig 有一个 `+human` 选项,以更人性化的方式打印出这些信息,但现在我太懒了,懒得花工夫去实际贡献代码来做这件事(而且我并不擅长 C),所以我只能在我的博客上抱怨一下 :) + +### curl 命令输出中末尾的 “.” + +我们来看下另一个末尾有 `.` 的例子:`curl`! + +我家里有台计算机名为 `grapefruit`,其上运行着 Web 服务器。当我执行 `curl grapefruit` 时,会输出: + +``` +$ curl grapefruit + + + + +...... +``` + +这样运行没问题!但是如果我在域名后加一个 `.` 会怎样呢?它报错了: + +``` +$ curl grapefruit. +curl: (6) Could not resolve host: grapefruit. +``` + +发生了什么?为了搞清楚,我们需要先来学习下搜索域: + +### 初识搜索域 + +当我执行 `curl grapefrult` 时,它是怎么被转成一个 DNS 请求的?你可能会认为我的计算机会向域名 `grapefruit` 发送一个请求,对吗?但事实并不是这样。 + +让我们用 `tcpdump` 来看看到底是什么域名在被查询。 + +``` +$ sudo tcpdump -i any port 53 +[...] A? grapefruit.lan. (32) +``` + +实际上是向 `grapefruit.lan.` 发送的请求。为什么呢? + +解释一下: + + 1. `curl` 调用函数 `getaddrinfo` 来查询 `grapefruit` + 2. `getaddrinfo` 查询了我计算机上的文件 `/etc/resolv.conf` + 3. `/etc/resolv.conf` 包含两行内容: + ``` + nameserver 127.0.0.53 + search lan + ``` + 4. 因为有 `search lan` 这行内容,所以 `getaddrinfo` 在 `grapefruit` 的末尾添加了一个 `lan`,去查询 `grapefruit.lan` + +### 什么时候搜索域被使用? + +现在我们知道了一些奇怪的事情:当我们查询一个域名时,有时会有一个额外的东西(如 `lan`)被加到最后。但是什么时候会发生这种情况呢? + + 1. 如果我们在域名**末尾**添加一个 `.`,那么这时不会用到搜索域 + 2. 如果域名**中间包含**一个 `.`(如 `example.com`),那么默认也不会用到搜索域。但是可以通过修改配置来改变处理逻辑(在 [ndots][4] 里有更详细的说明) + +我们现在知道了 `curl grapefruit.` 与 `curl grapefruit` 结果不一样的原因——因为一个查询的是 `grapefruit.`,而另一个查询的是 `grapefruit.lan.`。 + +### 我的计算机怎么知道使用哪个搜索域呢? + +当我连接路由时,它会通过 DHCP 告诉我它的搜索域是 `lan` —— 它也是通过这个方式给我的计算机分配 IP。 + +### 所以为什么要在域名末尾加一个点呢? + +现在我们已经了解了区域文件和搜索域,下面是我认为的人们要在域名末尾加点的原因: + +有两种情况下,域名会被修改,并在末尾添加其他东西。 + + * 在 `example.com` 的区域文件中,`grapefruit` 会被转为 `grapefruit.example.com` + * 在我的本地网络(我的计算机已经配置了使用搜索域 `lan`),`grapefruit` 被转为 `grapefruit.lan` + +因此,由于域名在某些情况下实际上可能被转成其他名字,人们就在结尾处加一个 `.`,以此来表示 “**这是域名,末尾不需要添加任何东西,这就是全部内容**”。否则会引起混乱。 + +“这就是全部内容”的技术术语是**“完全限定域名”**,简称为**“FQDN”**。所以 `google.com.` 是一个完全限定域名,而 `google.com` 不是。 + +我总是要提醒自己这样做的原因,因为我很少使用区域文件和搜索域,所以我经常觉得——“我当然是指 `google.com` 而不是 `google.com.something.else`! 我为什么要指其他东西?那太傻了!” + +但是有些人确实在使用区域文件和搜索域(例如 Kubernetes 中使用了搜索域!),所以结尾的 `.` 很有用,可以让人确切的知道,不应该再添加其他东西。 + +### 什么时候在末尾添加 “.”? + +以下是关于何时在域名末尾加 ". " 的几个简单说明: + +**需要添加:配置 DNS 时** + +在配置 DNS 时,使用完全限定域名从来都不是坏事。你不一定要这样做:非完全限定域名通常也能正常工作,但我从来没有遇到过不接受完全限定域名的 DNS 软件。 + +有些 DNS 软件需要这样做:现在我为 `jvns.ca` 使用的 DNS 服务器让我在域名的末尾加上 `.`(例如在 CNAME 记录中),并提示如果我不添加,它将在我输入的内容末尾加上 `.jvns.ca`。我不同意这个设计决定,但这不是什么大问题,我只是在最后加一个 `.`。 + +**不需要加:在浏览器中** + +令人困惑的是,在浏览器中,在域名结尾处加一个 `.` *不能*正常运行。例如,如果我在浏览器中输入 `https://twitter.com.`,它就会报错。它会返回 404。 + +我认为这里发生的事情是,它将 HTTP `Host` 标头设置为 `Host:twitter.com.`,而对端的 Web 服务器则期望 `Host:twitter.com`。 + +同样地,`https://jvns.ca.` 由于某种原因,返回了一个 SSL 错误。 + +### 我认为相对域名在过去是比较常见的 + +最后一件事:我认为“相对”域名(比如我用 `grapefruit` 来指代我家的另一台计算机 `grapefruit.lan`)在过去更常用,因为 DNS 是在大学或其他有大型内部网络的大机构中开发的。 + +在今天的互联网上,使用“绝对”域名(如 `example.com`)似乎更为普遍。 + +-------------------------------------------------------------------------------- + +via: https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/ + +作者:[Julia Evans][a] +选题:[lujun9972][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://jvns.ca/ +[b]: https://github.com/lujun9972 +[1]: https://wizardzines.com/zines/dns/ +[2]: https://github.com/miekg/dns +[3]: https://www.rfc-editor.org/rfc/rfc1035#section-4.1.1 +[4]: https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html diff --git a/translated/tech/20220912 Why do domain names sometimes end with a dot.md b/translated/tech/20220912 Why do domain names sometimes end with a dot.md deleted file mode 100644 index fb582dfb7a..0000000000 --- a/translated/tech/20220912 Why do domain names sometimes end with a dot.md +++ /dev/null @@ -1,256 +0,0 @@ -[#]: subject: "Why do domain names sometimes end with a dot?" -[#]: via: "https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/" -[#]: author: "Julia Evans https://jvns.ca/" -[#]: collector: "lujun9972" -[#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -为什么有时候域名的末尾有个点? -====== - -大家好!今年早些时候,我在写杂志 [DNS 是如何工作的][1] 时,有人问我——为什么人们有时在域名的末尾加一个点?例如,如果你通过运行 `dig example.com` 查询 `example.com` 的 IP,你会看到一下内容: - -``` - - $ dig example.com - example.com. 5678 IN A 93.184.216.34 - -``` - -执行完 `dig` 命令后,`example.com` 有一个 `.`——变成了 `example.com.`!发生了什么? - -有些 DNS 工具也要求传给它的域名后加一个 `.`:如果你在使用 [miekg/dns][2] 时传给它 `example.com`,它会报错: - -``` - - // trying to send this message will return an error - m := new(dns.Msg) - m.SetQuestion("example.com", dns.TypeA) - -``` - -最初我以为我知道这个问题的答案("呃,末尾的点意味着域名是完全合格的?")。这是对的——一个完全合格的域名是一个末尾有 `“.”` 的域名! - -但是*为什么*末尾的点是有用且重要的呢? - -### 在 DNS 的请求/响应中,域名的末尾并没有 “.” - -我曾经(错误地)认为 "为什么末尾有一个点?"的答案可能是 "在 DNS 请求/响应中,域名末尾有一个".",所以我们把它放进去,以匹配你的计算机实际发送/接收的内容"。但事实并不是这样! - -当计算机发送 DNS 请求/响应时,域名的末尾并没有点。实际上,域名中*没有一个*点。 - -域名会被编码成一系列的长度/字符串对。例如,域名 `example.com` 被编码为这13个字节。 - -``` - - 7example3com0 - -``` - -编码后的内容一个点也没有。一个 ASCII 域名(如 "example.com")被转成了各种 DNS 软件的 DNS 请求/响应中使用的格式。 - -今天我们来讨论域名被转成 DNS 响应的一个地方:zone 文件。 - -### zone文件中域名末尾的 “.” - -一些人管理域名的 DNS 记录的方法是创建一个被称为 "zone 文件"的文本文件,然后配置一些 DNS 服务器软件(如 `nsd` 或 `bind`)来为该 zone 文件中指定的 DNS 记录提供服务。 - -下面是一个对应 `example.com` 的示例 zone 文件: - -``` - - orange 300 IN A 1.2.3.4 - fruit 300 IN CNAME orange - grape 3000 IN CNAME example.com. - -``` - -在这个文件中,任何不以 `"."` 结尾的域名(比如 `"orange"`)后都会自动加上 `.example.com`。所以 `"orange"` 成了 `"orange.example.com"` 的简称。DNS 服务器从它的配置中得知这是一个 `example.com` 的 zone 文件,所以它知道在所有不以点结尾的名字后面自动添加 `example.com`。 - -我想这里的想法只是为了少打几个字符——如果要打出全称,zone 文件会是这样: - -``` - - orange.example.com. 300 IN A 1.2.3.4 - fruit.example.com. 300 IN CNAME orange.example.com. - grape.example.com. 3000 IN CNAME example.com. - -``` - -确实多了很多字符。 - -### 你也可以不通过 zone 文件来使用 DNS - -尽管官方的 DNS RFC([RFC 1035][3])中定义了 zone 文件格式,但你也可以不通过 zone 文件来使用 DNS。例如,AWS Route 53 就不用 zone 文件来存储 DNS 记录!你可以通过 Web 界面或 API 来创建记录,我猜他们是用某种数据库而不是一堆文本文件来存储记录。 - -不过,Route 53(像许多其他 DNS 工具一样)确实支持导入和导出 zone 文件,这个功能或许在你更换 DNS 提供商时很有用。 - -### `dig` 命令输出中末尾的 “.” - -现在我们来讨论下 `dig` 命令的输出: - -``` - - $ dig example.com - ; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> +all example.com - ;; global options: +cmd - ;; Got answer: - ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10712 - ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 - - ;; OPT PSEUDOSECTION: - ; EDNS: version: 0, flags:; udp: 65494 - ;; QUESTION SECTION: - ;example.com. IN A - - ;; ANSWER SECTION: - example.com. 81239 IN A 93.184.216.34 - -``` - -有一件奇怪的事是,几乎每一行都以 `;;` 开头,这是怎么回事?`;` 是 zone 文件中的注释字符! - -我想 `dig` 以这种奇怪的方式输出的原因可能是为了方便你粘贴这些内容到 zone 文件时不用修改就可以直接用。 - -这也是 `example.com` 末尾有个 `.` 的原因 ——zone 文件要求域名末尾必须有点(否则它们会被解释为是相对于该区域的)。因此 `dig` 也这么处理了。 - -我真的希望 dig 有一个 `+human` 选项,以更人性化的方式打印出这些信息,但现在我太懒了,懒得花工夫去实际贡献代码来做这件事(而且我并不擅长 C),所以我只能在我的博客上抱怨一下 :) - -### curl 命令输出中末尾的 “.” - -我们来看下另一个末尾有 `.` 的例子:curl! - -我家里有台计算机名为 “grapefruit”,其上运行着 webserver。当我执行 `curl grapefruit` 时,会输出: - -``` - - $ curl grapefruit - - - - - -``` - -这样运行没问题!但是如果我在域名后加一个 `.` 会怎样呢?它报错了: - -``` - - $ curl grapefruit. - curl: (6) Could not resolve host: grapefruit. - -``` - -发生了什么?为了搞清楚,我们需要先来学习下搜索域: - -### 初识搜索域 - -当我执行 `curl grapefrult` 时,它是怎么被转成一个 DNS 请求的?你可能会认为我的计算机会向域名 `grapefruit` 发送一个请求,对吗?但事实并不是这样。 - -让我们用 `tcpdump` 来看看到底是什么域名在被查询。 - -``` - - $ sudo tcpdump -i any port 53 - [...] A? grapefruit.lan. (32) - -``` - -实际上是向 `grapefruit.lan.` 发送的请求。为什么呢? - -解释一下: - - 1. `curl` 调用函数 `getaddrinfo` 来查询 `grapefruit` - - 2. `getaddrinfo` 查询了我计算机上的文件 `/etc/resolv.conf` - - 3. `/etc/resolv.conf` 包含两行内容: - -``` - nameserver 127.0.0.53 - search lan - -``` - - 4. 因为有 `search lan` 这行内容,所以 `getaddrinfo` 在 `grapefruit` 的末尾添加了一个 `lan`,去查询 `grapefruit.lan` - - - - -### 什么时候搜索域被使用? - -现在我们知道了一些奇怪的事情:当我们查询一个域名时,有时会有一个额外的东西(如`lan`)被加到最后。但是什么时候会发生这种情况呢? - - 1. 如果我们在域名**末尾**添加一个 `.`,那么这时不会用到搜索域 - 2. 如果域名**中间包含**一个 `.`(如 `example),那么默认也不会用到搜索域。但是可以通过修改配置来改变处理逻辑(在 [ndots][4] 里有更详细的说明) - - - -我们现在知道了 `curl grapefruit.` 与 `curl grapefruit` 结果不一样的原因——因为一个查询的是 `grapefruit.`,而另一个查询的是 `grapefruit.lan.`。 - -### 我的计算机怎么知道使用哪个搜索域呢? - -当我连接路由时,它会通过 DHCP 告诉我它的搜索域是 `lan`——它也是通过这个方式给我的计算机分配 IP。 - -### 所以为什么要在域名末尾加一个点呢? - -现在我们已经了解了 zone 文件和搜索域,下面是我认为的人们要在域名末尾加点的原因: - -有两种情况下,域名会被修改,并在末尾添加其他东西。 - - * 在 `example.com` 的 zone 文件中,`grapefruit` 会被转为 `grapefruit.example.com` - * 在我的本地网络(我的计算机已经配置了使用搜索域 `lan`),`grapefruit` 被转为 `grapefruit.lan` - - - -因此,由于域名在某些情况下实际上可能被转成其他名字,人们就在结尾处加一个 `.`,以此来表示 "这是域名,末尾不需要添加任何东西,这就是全部的东西"。因为否则会引起混乱。 - -“这就是全部内容”的技术术语是**"完全合格域名"**,简称为**"FQDN "**。所以 `google.com.` 是一个完全合格的域名,而 `google.com` 不是。 - -我总是要提醒自己这样做的原因,因为我很少使用 zone 文件和搜索域,所以我经常觉得——"我当然是指 `google.com` 而不是 `google.com.something.else`! 我为什么要指其他东西?那太傻了!" - -但是有些人确实在使用 zone 文件和搜索域(例如 Kubernetes 中使用了搜索域!),所以结尾的 ". " 很有用,可以让人确切的知道,不应该再添加其他东西。 - -### 什么时候在末尾添加 “.”? - -以下是关于何时在域名末尾加 ". " 的几个简单说明: - -**需要添加:配置 DNS 时** - -在配置 DNS 时,使用完全合格的域名从来都不是坏事。你不一定要这样做:非完全合格的域名通常也能正常工作,但我从来没有遇到过不接受完全合格域名的 DNS 软件。 - -有些 DNS 软件需要这样做:现在我为 `jvns.ca` 使用的 DNS 服务器让我在域名的末尾加上 `"."`(例如在 CNAME 记录中),并提示如果我不添加,它将在我输入的内容末尾加上 `.jvns.ca`。我不同意这个设计决定,但这不是什么大问题,我只是在最后加一个 "."。 - -**不需要加:在浏览器中** - -令人困惑的是,在浏览器中,在域名结尾处加一个 `.` *不能*正常运行。例如,如果我在浏览器中输入 `https://twitter.com.`,它就会报错。它会返回 404。 - -我认为这里发生的事情是,它将 HTTP Host header 设置为`Host:twitter.com.`,而对端的网络服务器则期望 `Host:twitter.com`。 - -同样地,`https://jvns.ca.` 由于某种原因,返回了一个 SSL 错误。 - -### 我认为相对域名在过去是比较常见的 - -最后一件事:我认为"相对"域名(比如我用 `grapefruit` 来指代我家的另一台计算机 `grapefruit.lan`)在过去更常用,因为 DNS 是在大学或其他有大型内部网络的大机构中开发的。 - -在今天的互联网上,使用"绝对"域名(如 `example.com`)似乎更为普遍。 - --------------------------------------------------------------------------------- - -via: https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/ - -作者:[Julia Evans][a] -选题:[lujun9972][b] -译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://jvns.ca/ -[b]: https://github.com/lujun9972 -[1]: https://wizardzines.com/zines/dns/ -[2]: https://github.com/miekg/dns -[3]: https://www.rfc-editor.org/rfc/rfc1035#section-4.1.1 -[4]: https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html From 1f5756beaa80457c75b9dfeafd07493c2a12f768 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 15 Nov 2022 08:36:56 +0800 Subject: [PATCH 2017/3123] translated --- ...️⭐️ Fix scanned images with ImageMagick.md | 91 ------------------- ...️⭐️ Fix scanned images with ImageMagick.md | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 91 deletions(-) delete mode 100644 sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md create mode 100644 translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md diff --git a/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md b/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md deleted file mode 100644 index 596bf99a97..0000000000 --- a/sources/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "Fix scanned images with ImageMagick" -[#]: via: "https://opensource.com/article/22/11/fixing-scanned-images-imagemagick" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fix scanned images with ImageMagick -====== - -It's easy to correct images, even in batches, with this open source tool. - -Years ago while rummaging through the contents of a shelf in a used bookstore, I happened upon a booklet titled "UNIX System Command Summary for Berkeley 4.2 & 4.3 BSD," published by Specialized Systems Consultants. I bought it as a curiosity item because it was nearly 20 years old yet still largely applicable to modern Linux and BSD. - -That amused me then and now. A booklet written in 1986 was still largely relevant in 2016, while books on the same shelf about a proprietary OS weren't worth the paper they were printed on. (Think about it: What technology do you think is going to survive a zombie apocalypse?) I've had the booklet on my own bookshelf for several years now, but it occurred to me that it's probably worth doing a little digital preservation of this artifact, so I decided to scan the booklet to create a [CBZ ebook][1]. - -Scanning was easy, albeit time-consuming, with [Skanlite][2]. After I was finished, however, I discovered that some pages weren't quite level. - -![A page of text, including a table of contents and a glossary, that is crooked and distorted][3] - -In printing, this is called a registration problem, meaning that the position of what's being printed isn't correctly orientated on the page. - -### ImageMagick - -[ImageMagick][4] is a non-interactive terminal-based graphics editor. It might seem counterintuitive to try to edit a graphic in a graphic-less environment like a text-only terminal, but it's actually very common. For instance, when you upload an image to use as a profile picture to a web application, it's likely that a script on the application's server processes your image using ImageMagick or its libraries. The advantage of a non-interactive editor is that you can formulate what needs to be done to a sample image, then apply those effects to hundreds of other images at the press of a button. - -ImageMagick is generally just as capable as any graphics editor, as long as you take the time to uncover its many functions and how to combine them to achieve the desired effects. In this case, I want to rotate pages that are askew. After searching through ImageMagick's documentation, I discovered that the ImageMagick term for the solution I needed was called deskew. Aligning your terminology with somebody else's terminology is a challenge in anything that you don't already know, so when you approach ImageMagick (or anything), keep in mind that the word you've decided describes a problem or solution may not be the same word used by someone else. - -To deskew an image with crooked text using ImageMagick: - -``` -$ convert page_0052.webp -deskew25% fix_0052.webp -``` - -The `-deskew` option represents the threshold of acceptable skew. A skew is determined by tracing peaks and valleys of objects that appear to be letters. Depending on how crooked your scan is, you may need more or less than 25% threshold. I've gone as high as 80%, and so far nothing under 25% has had an effect. - -Here's the result: - -![The same page of text, now with the text properly aligned][5] - -Fixed! Applying this to the remaining 55 pages of the document fixed skewed pages while doing nothing to pages that were already straight. In other words, it was safe to run this command on pages that needed no adjustment, thanks to my threshold setting. - -### Cropping an image with ImageMagick - -After correcting for a skew, and because I scanned more of each page than necessary anyway to prevent accidentally cutting off words, I decided that it made sense to crop my corrected pages. I was happy to keep some space around the margins, but not quite as much as I had. I use the `crop` function of ImageMagick often enough for images on this very website, so I was familiar with the option. However, I needed to determine how to crop each page. - -First, I needed the size of the image: - -``` -$ identify fixed_0052.webp -WEBP 1128x2593 1128x2593+0+08-bit sRGB 114732B 0.020u 0:00.021 -``` - -Knowing the size, I was able to make some estimations about how many pixels I could stand to lose. After a few trial runs, I came up with this: - -``` -convert fix_0052.webp -gravity Center -crop 950x2450+0+0 crop_0052.webp -``` - -This isn't an exact fit, but it proved important when I applied it to other images in the booklet. The pages varied in content and scanner placement here and there, so I was happy to give each one a little breathing room. - -Here's the corrected and cropped image: - -![The same page of text, with the previous fixes applied and crooked white margins around the page cropped out.][6] - -### Batch image editing with open source - -The beauty of ImageMagick is that once you've figured out the formula for fixing your image, you can apply that fix to all images requiring the same fix. I do this with [GNU Parallel][7], which uses all my CPU cores to finish image correction across hundreds of pages. It doesn't take long, and the results speak for themselves. More importantly, I've got a digital archive of a fun artifact of UNIX history. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/fixing-scanned-images-imagemagick - -作者:[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/article/19/3/comic-book-archive-djvu -[2]: https://opensource.com/article/22/2/scan-documents-skanlite-linux-kde -[3]: https://opensource.com/sites/default/files/2022-10/imagemagick-crook_1.png -[4]: https://opensource.com/article/17/8/imagemagick -[5]: https://opensource.com/sites/default/files/2022-10/imagemagick-deskew-fix.png -[6]: https://opensource.com/sites/default/files/2022-10/imagemagick-deskew-crop.png -[7]: http://LINK-TO-SETH-GNU-PARALLEL-REDHAT.COM/SYSADMIN diff --git a/translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md b/translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md new file mode 100644 index 0000000000..329a0cb7dc --- /dev/null +++ b/translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md @@ -0,0 +1,91 @@ +[#]: subject: "Fix scanned images with ImageMagick" +[#]: via: "https://opensource.com/article/22/11/fixing-scanned-images-imagemagick" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 ImageMagick 修复扫描图像 +====== + +使用这个开源工具,即使是批量校正图像也很容易。 + +多年前,在翻阅一家旧书店的书架上的内容时,我偶然发现了一本名为 《UNIX System Command Summary for Berkeley 4.2 & 4.3 BSD》 的小册子,由 Specialized Systems Consultants 出版。我买它是出于好奇,因为它已经有将近 20 年的历史了,但仍然在很大程度上适用于现代 Linux 和 BSD。 + +这让我当时和现在都很开心。一本写于 1986 年的小册子在 2016 年仍然很重要,而同一个书架上关于专有操作系统的书籍并不值得印刷它们的纸张。(想一想:你认为什么技术可以在僵尸末日中幸存下来?)这本小册子已经放在我自己的书架上好几年了,但我突然想到可能值得对这个作品做一点数字保存,所以我决定扫描这本小册子来创建一本 [CBZ 电子书][1]。 + +使用 [Skanlite][2] 进行扫描很容易,但很耗时。然而,当我完成后,我发现有些页面不是很平整。 + +![A page of text, including a table of contents and a glossary, that is crooked and distorted][3] + +在打印中,这称为配准问题,这意味着打印内容的位置在页面上的方向不正确。 + +### ImageMagick + +[ImageMagick][4] 是基于终端的非交互式图形编辑器。尝试在无图形环境(如纯文本终端)中编辑图形似乎违反直觉,但实际上很常见。例如,当你将图像上传到 Web 应用用作个人资料图片时,应用服务器上的脚本可能会使用 ImageMagick 或其库处理你的图像。非交互式编辑器的优点是你可以制定需要对示例图像执行的操作,然后只需按一下按钮即可将这些效果应用于数百个其他图像。 + +ImageMagick 通常与其他图形编辑器一样强大,只要你花时间了解它的许多功能以及如何组合它们以实现所需的效果。在这种情况下,我想旋转歪斜的页面。在搜索了 ImageMagick 的文档后,我发现我需要的解决方案的 ImageMagick 术语称为纠偏。将你的术语与其他人的术语保持一致对于你不知道的任何事情都是一个挑战,因此当你使用 ImageMagick(或其他任何东西)时,请记住,你描述问题或解决方案的用词可能和别人不一样。 + +要使用 ImageMagick 对带有弯曲文本的图像进行校正: + +``` +$ convert page_0052.webp -deskew25% fix_0052.webp +``` + +`-deskew` 选项表示可接受偏差的阈值。通过跟踪看似字母的对象的峰谷来确定倾斜。根据扫描的弯曲程度,你可能需要多于或少于 25% 的阈值。我已经达到了 80%,到目前为止,低于 25% 没用效果。 + +结果如下: + +![The same page of text, now with the text properly aligned][5] + +修复了!将其应用于文档的剩余 55 页以修复倾斜的页面,而对已经笔直的页面不做任何事情。换句话说,由于我的阈值设置,在不需要调整的页面上运行此命令是安全的。 + +### 使用 ImageMagick 裁剪图像 + +在纠正了歪斜之后,因为无论如何我扫描的每一页都比必要的要多,以防止意外切断单词,我认为裁剪我纠正的页面是有意义的。我很高兴在页边空白处保留一些空间,但没有以前那么多。我经常使用 ImageMagick 的“裁剪”功能来处理这个网站上的图像,所以我很熟悉这个选项。但是,我需要确定如何裁剪每一页。 + +首先,我需要图像的大小: + +``` +$ identify fixed_0052.webp +WEBP 1128x2593 1128x2593+0+08-bit sRGB 114732B 0.020u 0:00.021 +``` + +知道尺寸后,我能够对我可以承受的丢失多少像素做出一些估计。经过几次试运行,我得到了这个: + +``` +convert fix_0052.webp -gravity Center -crop 950x2450+0+0 crop_0052.webp +``` + +这并不完全适合,但当我将它应用于册子中的其他图像时,它被证明很重要。这些页面的内容和扫描仪位置各不相同,所以我很高兴给每一页一点空余空间。 + +这是校正和裁剪的图像: + +![The same page of text, with the previous fixes applied and crooked white margins around the page cropped out.][6] + +### 使用开源批量编辑图像 + +ImageMagick 的美妙之处在于,当你确定了修复图像的公式,你就可以将该修复应用于需要相同修复的所有图像。我使用 [GNU Parallel][7] 执行此操作,它使用我所有的 CPU 内核来完成数百页的图像校正。这并不需要很长时间,而且结果不言而喻。更重要的是,我已经有了一个 UNIX 历史上有趣作品的数字档案。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/fixing-scanned-images-imagemagick + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/3/comic-book-archive-djvu +[2]: https://opensource.com/article/22/2/scan-documents-skanlite-linux-kde +[3]: https://opensource.com/sites/default/files/2022-10/imagemagick-crook_1.png +[4]: https://opensource.com/article/17/8/imagemagick +[5]: https://opensource.com/sites/default/files/2022-10/imagemagick-deskew-fix.png +[6]: https://opensource.com/sites/default/files/2022-10/imagemagick-deskew-crop.png +[7]: http://LINK-TO-SETH-GNU-PARALLEL-REDHAT.COM/SYSADMIN From a2a3a5079715a8e8a0d7f26488b6bfca366d29f8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 15 Nov 2022 08:46:10 +0800 Subject: [PATCH 2018/3123] translated --- .../20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md b/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md index 4641133f19..b8d26eeaf6 100644 --- a/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md +++ b/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/sudo-command-not-found/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 361382130ac6931868eeb1af23618c220f4e446d Mon Sep 17 00:00:00 2001 From: "qfzy1233@163.com" Date: Tue, 15 Nov 2022 10:44:27 +0800 Subject: [PATCH 2019/3123] =?UTF-8?q?Update=2020221102.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Linux=20Mint's=20Update=20Manager=20Now=20Supports?= =?UTF-8?q?=20Flatpak.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Mint's Update Manager Now Supports Flatpak.md | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md index 6f05ff9fd5..8ddcaa0461 100644 --- a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md +++ b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md @@ -7,73 +7,73 @@ [#]: publisher: " " [#]: url: " " -Linux Mint's Update Manager Now Supports Flatpak +Linux Mint 的更新管理器现在支持 Flatpak ====== -Linux Mint's Update Manager just got more helpful! +Linux Mint的更新管理器变得为易用了! ![Linux Mint's Update Manager Now Supports Flatpak][1] -Linux Mint's Update Manager is an essential part of the distro that makes the experience easier for new users. +Linux Mint 的更新管理器是发行版的一个重要组成部分,它使新用户获得更为方便简易的体验。 -A recent update has pushed many improvements to Linux Mint 21, including Flatpak support with the update manager. +Linux Mint 21最近的一次更新推出了的许多改进,包括更新管理器对 Flatpak 的支持。 -**You just need to update your system to get these refinements.** +**你只需要更新你的系统来获得这些改进。** -### ⭐ Flatpak Support In Update Manager +### ⭐ 更新管理器中支持 Flatpak ![linux mint 21 flatpak support in update manager][2] -Image Credits: The Linux Mint Blog +图片来源:Linux Mint 博客 -Yes, you read that right. It is finally happening. +是的,你没看错。这终于实现了。 -Flatpak support has been added to the Update Manager, letting users update Flatpak applications and runtimes in a few clicks. +Flatpak已被添加到更新管理器中,用户只需单击几下即可通过 Flatpak 更新应用程序和运行时。 -This should make way for a unified update experience that further improves the user experience. +这将为进一步改善用户体验的统一更新体验让路。 -It is beneficial for new users who need not be familiar with terminal commands to update Flatpak. Also, you do not require to integrate Flatpak with the software center (for GNOME). +对于不熟悉终端命令的新用户来说,更新 Flatpak 是有助益的。此外,你不需要将 Flatpak 与软件中心集成(对于 GNOME )。 -In other words, the Linux Mint team enhanced your experience with Flatpak apps. +换句话说,Linux Mint 团队增强了你使用 Flatpak 应用程序的体验。 -**Alongside Flatpak support, the update includes a few more enhancements to Linux Mint 21, which is immediately available as an update.** +**除了对Flatpak的支持,更新还包括对Linux Mint 21的更多增强,这是一个开箱即用的更新。** -Some of the refinements include: +这些改进包括: -### Improvements To Corner Bar +### 对Corner Bar(LCTT译注:类似Windows系统内的“显示桌面”按钮)的改进 ![linux mint 21 updated corner bar][3] -Image Credits: The Linux Mint Blog +图片来源:Linux Mint 博客 -The corner bar on Linux Mint 21 has received two new additions: +Linux Mint 21 中的 corner barhas 添加了两项新特性 -- **Ability to set left click and middle click actions to the corner bar; you can configure it to show the desktop, the workspace selector, or the desklets.** -- **A new option lets you hover your mouse on the corner bar to show the desktop.** +- **能够在 corner barhas 设置左键点击和中键点击的动作;你可以配置它以显示桌面、工作区选择器或桌面。** +- **一个允许你将鼠标悬停在 corner bar 上以显示桌面的新选项。** ### Updates To Nemo ![linux mint 21 updated nemo file manager][4] -Image Credits: The Linux Mint Blog +图片来源:Linux Mint 博客 -The Nemo file manager has received a few tweaks; now, when files are selected, only the file names will be highlighted instead of the icon and file name. +Nemo文件管理器做了一些调整;现在,当文件被选中时,只会高亮显示文件名,而不是图标和文件名。 -**If you did not know**, you could enhance the Nemo file manager experience with some of our suggested tweaks as well: +**如果你还不知道**, 你也可以通过我们建议的一些调整来增强 Nemo 文件管理器的体验: -Furthermore, the desktop icon has been flipped vertically, and a new shortcut has been added to the desktop's context menu to give quick access to the display settings. +此外,桌面图标被垂直翻转,桌面上下文菜单中添加了一个新的快捷方式,可以快速打开显示设置。 -### Fewer Password Prompts +### 更少的密码提示 -This is another user experience tweak that many of you might like. +.这是你们很多人可能喜欢的另一个用户体验调整。 -When removing a Flatpak or any shortcut or local application, it will no longer ask you for a password. +当删除 Flatpak 或任何快捷方式或本地应用程序时,它将不再要求你输入密码。 -Similarly, in the case of Synaptic and the Update Manager, pkexec will be used to remember the password. +类似地,在新立得(LCTT译注:Linux 下的一个包管理工具)和更新管理器的情况下,将使用pkexec来记住密码。 -This way, users do not have to enter the password every time they perform multiple operations. +这样,用户就不需要每次执行多个操作时都输入密码。 -You can refer to [Linux Mint's monthly blog post][5] to learn about other changes. +你可以浏览[Linux Mint's monthly blog post][5] 以了解更多特性。 **Via: [DebugPointNews][6]** From 43119f0cd334bd904429e07f38c6b8dd44699133 Mon Sep 17 00:00:00 2001 From: "qfzy1233@163.com" Date: Tue, 15 Nov 2022 10:47:22 +0800 Subject: [PATCH 2020/3123] =?UTF-8?q?Update=2020221102.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Linux=20Mint's=20Update=20Manager=20Now=20Supports?= =?UTF-8?q?=20Flatpak.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md index 8ddcaa0461..765cf8c446 100644 --- a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md +++ b/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md @@ -32,7 +32,7 @@ Flatpak已被添加到更新管理器中,用户只需单击几下即可通过 这将为进一步改善用户体验的统一更新体验让路。 -对于不熟悉终端命令的新用户来说,更新 Flatpak 是有助益的。此外,你不需要将 Flatpak 与软件中心集成(对于 GNOME )。 +对于不熟悉终端命令的新用户来说,更新 Flatpak 是有助益的。此外,你不需要将 Flatpak 与软件中心集成(对于 GNOME 而言)。 换句话说,Linux Mint 团队增强了你使用 Flatpak 应用程序的体验。 From 0a76b751226a2b93fed038f4a6787b1c1a387e40 Mon Sep 17 00:00:00 2001 From: qfzy1233 Date: Tue, 15 Nov 2022 10:50:12 +0800 Subject: [PATCH 2021/3123] =?UTF-8?q?Rename=20sources/news/20221102.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Linux=20Mint's=20Update=20Manager=20Now=20?= =?UTF-8?q?Supports=20Flatpak.md=20to=20translated/news/20221102.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Linux=20Mint's=20Update=20Manager=20Now=20?= =?UTF-8?q?Supports=20Flatpak.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md (100%) diff --git a/sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/translated/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md similarity index 100% rename from sources/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md rename to translated/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md From b916878c7903ab7f08747d630406ab6720a8121a Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 14 Nov 2022 22:10:01 -0500 Subject: [PATCH 2022/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?][tech]:=2020221111.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20FFmpeg=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Install FFmpeg in Ubuntu and Other Linux.md | 115 ++++++++++-------- 1 file changed, 61 insertions(+), 54 deletions(-) diff --git a/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md b/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md index 3b0c307b9c..63ebd28355 100644 --- a/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md +++ b/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md @@ -7,142 +7,149 @@ [#]: publisher: " " [#]: url: " " -How to Install FFmpeg in Ubuntu and Other Linux +如何在 Ubuntu 和其他 Linux 发行版中安装 FFmpeg ====== -**This tutorial outlines the steps required to install FFmpeg in Ubuntu and Other Linux systems.** +**本教程讲述了在 Ubuntu 和其他 Linux 系统中安装 FFmpeg 所需的步骤。** -The ffmpeg is a collection library and software program to manipulate multimedia files. The entire ffmpeg is a robust set of libraries that allows you to convert, stream, and manipulate audio and video files. Many frontend Linux applications use it as a backend and hence depend on it. For example, a screen recording application may need ffmpeg to convert recorded streams to gif images. +FFmpeg 是一系列用于操作多媒体文件的库和软件程序。整个 ffmpeg 是一组强大的库,允许您转换,推流和操作音频和视频文件。许多前端 Linux 应用程序将其用作后端并依赖它。例如,屏幕录制应用程序可能需要 ffmpeg 将录制的流转换为 gif 图像。 -Popular applications and services that use FFmpeg are VLC Media Player, YouTube, Blender, Kodi, Shotcut, and Handbrake – to name a few. +主流的应用程序和服务,如 VLC 媒体播放器,YouTube,Blender,Kodi,Shotcut 和 Handbrake 等,都使用 FFmpeg。 -Fun fact: NASA’s Mars 2020 mission rover Perseverance used FFmpeg to complete and process images and video before beaming back to Earth! +趣事:NASA 2020 年发射的毅力号火星探测器使用 FFmpeg 完成和处理图像和视频,然后将其发送回地球! -### About ffmpeg package +### 关于 ffmpeg 包 -The [ffmpeg][1] itself is a powerful program as a command-line utility. It is available for Linux, Windows, and macOS and supports many architectures. It is written in C and Assembly, providing extensive performance and a cross-platform utility. +[FFmped][1] 是一个强大的命令行工具。它支持 Linux,Windows 和 macOS,并支持多种架构。它是用 C 和汇编编写的,提供了强大的性能和跨平台实用性。 -#### The Core +#### 核心 -The core of ffmpeg is the command-line utility or programs. They can be used on the command line or called from any programming language. For example, you can use these from your shell program, python script, etc. +FFmpeg 的核心是命令行实用程序。它们可以在命令行上使用,也可以从任何编程语言中调用。例如,您可以从 shell 程序,python 脚本等程序中使用它们。 -- **ffmpeg**: Used to convert audio and video streams, including sources from LIVE streams such as TV cards -- **ffplay**: Media player bundled in this package to play media -- **ffprobe**: Command line tool to show media information – can output as txtm csv, xml, json formats +- **ffmpeg**:用于转换音频和视频流,包括来自 TV 卡等 LIVE 流的源 +- **ffplay**:此软件包中捆绑的媒体播放器,用于播放媒体 +- **ffprobe**:命令行工具,用于显示媒体信息 - 可以以 txtm,csv,xml,json 格式输出 -### FFmpeg Installation +### FFmpeg 安装 -Installing FFmpeg is easy in Ubuntu and other Linux distributions. Open a terminal prompt and run the following commands to install. +安装 FFmpeg 在 Ubuntu 和其他 Linux 发行版中很容易。打开终端并运行以下命令以安装。 -#### Ubuntu and similar distro +#### Ubuntu 以及相似的发行版 -``` +``` bash sudo apt install ffmpeg ``` #### Fedora -For Fedora Linux, you need to add the [RPM Fusion repo][2] for FFmpeg. The official Fedora repo doesn’t have the FFmpeg package. +对于 Fedora Linux,您需要添加 [RPM Fusion repo][2]。Fedora 官方仓库没有 FFmpeg 包。 -``` +``` bash sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm ``` -``` +``` bash sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree- ``` -``` +``` bash sudo dnf install ffmpeg ``` #### Arch Linux -``` +``` bash pacman -S ffmpeg ``` -After the successful installation, you can verify the installation using the below command. +在安装完成后,您可以使用以下命令验证安装。 -``` +``` bash ffmpeg --version ``` -![FFmpeg installed in Ubuntu Linux][3] +![Ubuntu Linux 中安装的 FFmpeg][3] -### Example: How to do basic tasks using ffmpeg +### 示例:ffmpeg 的基础用法 -First, let me give you a simple example of the basic syntax. Consider the following example. It simply converts an mp4 file to mkv file. +首先,让我给你一个简单的例子。考虑以下示例。它只是将 mp4 文件转换为 mkv 文件。 -- **Convert a basic video file** +- **转换基本视频文件** -``` +``` bash ffmpeg -i big_buck_bunny.mp4 big_buck_bunny.mkv ``` -Of course, this is the easiest method, but it’s not complete because it doesn’t have the bit rate, resolution and other attributes of the video file required for the conversion. +当然,这是最简单的方法,但它不完整,因为它没有转换所需的视频文件的比特率,分辨率和其他属性。 -- **Convert an audio file** +- **转换一个音频文件** -Secondly, you can convert an audio file using a similar command. +第二,您可以使用类似的命令转换音频文件。 -``` +``` bash ffmpeg -i sunny_day.ogg sunny_day.mp3 ``` -- **Convert with an audio and video codec** +- **使用音频和视频编解码器转换** -Finally, the following example can convert a video file using specified codecs. The parameter `-c` with `a` or `v` defines audio and video, respectively. The below command uses `libvpx` video and `libvorbis` audio codec for conversion. +最后,以下示例可以使用指定的编解码器转换视频文件。参数 `-c` 与 `a` 或 `v` 分别定义音频和视频。下面的命令使用 `libvpx` 视频和 `libvorbis` 音频编解码器进行转换。 -``` +``` bash ffmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm ``` -### How to find out about the available codecs, encoders and decoders in your system? +### 如何找出系统中可用的编解码器,编码器和解码器? -#### List all codecs +#### 列出所有编解码器 -To list all the codecs available, run the below command. +要列出所有可用的编解码器,请运行以下命令。 -``` +``` bash ffmpeg -codecs ``` -This command lists all the codecs available with their capability, whether they support decoding or encoding, etc. Moreover, they are identified with the position as per the below table. +该命令列出了所有可用的编解码器及其功能,是否支持解码或编码等。此外,它们根据下表的位置进行标识。 -``` -D..... = Decoding supported.E.... = Encoding supported..V... = Video codec..A... = Audio codec..S... = Subtitle codec...I.. = Intra frame-only codec....L. = Lossy compression.....S = Lossless compression +``` plain +D..... = Decoding supported +.E.... = Encoding supported +..V... = Video codec +..A... = Audio codec +..S... = Subtitle codec +...I.. = Intra frame-only codec +....L. = Lossy compression +.....S = Lossless compression ``` -![FFmpeg Codec list][4] +![FFmpeg 编码器列表][4] -#### List all encoders +### 列出所有编码器 -Listing all the encoders is accessible via the below command. +通过以下命令列出所有编码器。 -``` +``` bash ffmpeg -encoders ``` -#### List all decoders +#### 列出所有解码器 -Similarly, the decoders list you can get via the below command. +同样的,您可以通过以下命令获取解码器列表。 -``` +``` bash ffmpeg -decoders ``` -#### Details +#### 详细信息 -You can also get more details about the encoders or decoders using the parameter -h. +你还可以使用参数 -h 获取编码器或解码器的更多详细信息。 -``` +``` bash ffmpeg -h decoder=mp3 ``` -### Summary +### 总结 -I hope you learned the basics of FFmpeg and its commands. You can learn more about the program via the official [documentation][5]. +我希望你学会了 FFmpeg 和它的命令的基础知识。您可以通过[官方文档][5]了解更多有关该程序的信息。 -------------------------------------------------------------------------------- From 49109d6db80cd582a0ad2a5a0c587bc3302a1b63 Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 14 Nov 2022 22:10:33 -0500 Subject: [PATCH 2023/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221111.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20FFmpeg=20in=20Ubuntu=20and=20Other=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md (100%) diff --git a/sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md b/translated/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md similarity index 100% rename from sources/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md rename to translated/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md From ccdbb8e79a1384bccd8051e9ffd2a2f9d2107dc3 Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 14 Nov 2022 22:17:18 -0500 Subject: [PATCH 2024/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?][talk]:=2020221112.0=20=E2=AD=90=EF=B8=8F=20Learn=20Python=207?= =?UTF-8?q?=20of=20my=20favorite=20resources.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221112.0 ⭐️ Learn Python 7 of my favorite resources.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md b/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md index 8186cd607e..275e9c9527 100644 --- a/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md +++ b/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/learn-python" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -56,7 +56,7 @@ via: https://opensource.com/article/22/11/learn-python 作者:[Don Watkins][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1eaa9eccf0942683e936ecc36404c080f4353303 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 15 Nov 2022 18:30:49 +0800 Subject: [PATCH 2025/3123] RP @geekpi https://linux.cn/article-15256-1.html --- ...d Systemd or Any Other init System in Linux.md | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md (51%) diff --git a/translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md b/published/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md similarity index 51% rename from translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md rename to published/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md index 33f26da1f0..7741d5b271 100644 --- a/translated/tech/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md +++ b/published/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md @@ -3,45 +3,50 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15256-1.html" -如何在 Linux 中查找 Systemd 或任何其他 init 系统 +如何在 Linux 中确定运行的是那种初始化系统 ====== -**你可以通过以下方式确定你的 Linux 发行版中是否正在运行系统或任何其他 init 系统。** +![](https://img.linux.net.cn/data/attachment/album/202211/15/183009zafv77ru1afwprr7.jpg) -第一个进程在你启动 Linux 发行版时开始,称为 init(初始化的缩写)。它的进程标识符为 1(即 pid=1)。基于 Unix 的系统中的所有进程和应用程序都是这个 init 进程的直接后代。 +> 你可以通过以下方式确定你的 Linux 发行版中是否正在运行 systemd 或其它初始化系统。 + +首个进程在你启动 Linux 发行版时开始运行,它称为初始化进程 init(初始化initialization的缩写)。它的进程标识符为 1(即 pid=1)。基于 Unix 的系统中的所有进程和应用程序都是这个初始化进程的后代。 根据功能和特性,存在不同类型的初始化进程。例如,[systemd][1]、Runit、OpenRC、sysVinit 等。其中,systemd 是最流行和最现代的一种,被包括 Ubuntu 和 Fedora 在内的所有现代 Linux 发行版使用和采用。 -与传统的基于 Unix 的 init 系统相比,Systemd 及其性能一直存在争议。但这是另一篇文章的主题。 +与传统的基于 Unix 的初始化系统相比,systemd 及其性能一直存在争议。但这就是另外一个话题了。 -让我们看看如何确定在 Linux 发行版中运行的是 systemd 还是任何其他 init 系统。 +让我们看看如何确定在 Linux 发行版中运行的是 systemd 还是其它初始化系统。 -### systemd 还是什么 init 系统? +### systemd 还是其它初始化系统? -不幸的是,没有直接的命令可以找到它。你可以从初始化进程 id=1 追溯它,它基本上是到 `/sbin/init` 的符号链接,即 pid=1。 - -使用 `[strings][2]` 命令打印嵌入在二进制文件 `/sbin/init` 中的文本并使用以下命令搜索 init。 +不幸的是,没有直接的命令可以找到它。你可以从初始化进程追溯它,它基本上是到 `/sbin/init` 的符号链接,即 pid=1。 +使用 [strings][2] 命令打印嵌入在二进制文件 `/sbin/init` 中的文本并使用以下命令搜索 `init`: ``` strings /sbin/init | grep init ``` -**示例 1**:在下面的输出中,它是一个运行 Debian(通过 Peppermint OS)的 sysVinit 系统。如你所见,它清楚地显示了 init 进程名称。 +#### 示例 1 + +在下面的输出中,它是一个运行 Debian(Peppermint OS)的 sysVinit 系统。如你所见,它清楚地显示了 `init` 进程名称。 ``` strings /sbin/init | grep init ``` -![显示使用 init 而不是 systemd 的示例][3] +![显示使用 sysVinit 而不是 systemd 的示例][3] -如果在上述同一个系统中找到 systemd,那么不会有任何条目。因此,你可以得出结论,你正在运行 sysvinit 而不是 systemd。 +如果在上述同一个系统中找 `systemd`,那么不会有任何结果。因此,你可以得出结论,你正在运行 sysVinit 而不是 systemd。 -**示例 2**:如果你在 systemd 系统中运行上述命令,你可以在输出的第一行轻松看到 systemd 及其版本。 +#### 示例 2 + +如果你在 systemd 系统中运行上述命令,你可以在输出的第一行轻松看到 systemd 及其版本。 ``` strings /sbin/init | grep systemd @@ -49,7 +54,9 @@ strings /sbin/init | grep systemd ![显示它使用 systemd 的示例][4] -**示例 3**:你也可以尝试使用 `pstree` 命令打印进程树,它应该会显示第一个进程名称。它应该是 systemd 或 init,如下例所示。 +#### 示例 3 + +你也可以尝试使用 `pstree` 命令打印进程树,它应该会显示第一个进程名称。它应该是 `systemd` 或 `init`,如下例所示。 ``` pstree @@ -68,7 +75,7 @@ via: https://www.debugpoint.com/systemd-or-init/ 作者:[Arindam][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/) 荣誉推出 From 811e25475782968ff27ddafd1975bb7895212e45 Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Tue, 15 Nov 2022 22:09:11 +0800 Subject: [PATCH 2026/3123] translated --- ...vity issues with the Linux ping command.md | 162 ------------------ ...vity issues with the Linux ping command.md | 152 ++++++++++++++++ 2 files changed, 152 insertions(+), 162 deletions(-) delete mode 100644 sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md create mode 100644 translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md diff --git a/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md b/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md deleted file mode 100644 index 0104beb081..0000000000 --- a/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md +++ /dev/null @@ -1,162 +0,0 @@ -[#]: subject: "Diagnose connectivity issues with the Linux ping command" -[#]: via: "https://opensource.com/article/21/10/linux-ping-command" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lujun9972" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Diagnose connectivity issues with the Linux ping command -====== -One of the most fundamental diagnostic tools for networked connectivity -is the ping command. -![World locations with red dots with a sun burst background][1] - -Networked computers are so common these days that most of us take it for granted that a computer on one side of a room can contact one on the other side of the room, much less the other side of the world. When it works as designed, networking is what makes the Internet, the cloud, file shares, media streaming, remote administration, printing, and much more possible. When something goes wrong, it can sometimes be challenging to diagnose. One of the most fundamental diagnostic tools for networked connectivity is the `ping` command. - -### The basic ping - -When you can't reach a computer on your local network, or a server on the Internet, you can ping it. A ping sends an Internet Control Message Protocol (ICMP) packet to a destination IP address. ICMP is, by design, a rudimentary format used mostly for diagnostics: It's essentially a call and response signal. - -But there's an order to troubleshooting, and it starts as close to home as possible. When in doubt, first ping your own computer to ensure you're running a networking stack. The computer you're operating is also called your _localhost_, and it has a special IP address assigned for speaking to itself: 12.0.0.1. - -The `ping`** **command understands the _localhost_ hostname, its IP address, and a shortcut of just `0`. - -You can control how many signals you send with the `-c` (as in _count_)** **option. - - -``` -$ ping 0 -c1 -PING 0 (127.0.0.1) 56(84) bytes of data. -64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms - -\--- 0 ping statistics --- -1 packets transmitted, 1 received, 0% packet loss, time 0ms -rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms -``` - -After you've established that your local networking stack is up and running, you can ping your router. The address of a router usually starts with 192,168, or 10. The exact IP address depends on your router's configuration. - -When you don't specify how many pings to send, you can stop `ping` from running with **Ctrl**+**C**. - - -``` -$ ping 192.168.0.1  -PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. -From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1) -From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1) -From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1) -From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1) -^C -``` - -If you can reach your router, that means your wired or wireless connection is working.  - -What about other hosts on my network? You can ping all kinds of devices. Not all are guaranteed to respond (some devices drop ICMP packets), but many do. For instance, I can ping my printer: - - -``` -`$ ping 192.168.0.4 ` -``` - -### Pinging beyond your network - -Beyond establishing that your own network is working as expected, you can also ping out into the wider world beyond your router. Again, not all servers are permitted to receive, much less respond to, ICMP. However, there are some that do, and a vital server to the working of the Internet is a nameserver. - -Google's DNS server is relatively easy to remember, and it does respond to pings: - - -``` -$ ping -c 2 8.8.8.8 -PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. -64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms -64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms - -\--- 8.8.8.8 ping statistics --- -2 packets transmitted, 2 received, 0% packet loss, time 1000ms -rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms -``` - -When a site has apparently disappeared, you might be able to probe the worldwide DNS network to find out what its host server's address is, and then ping that server. This at least tells you whether the host is down or whether it's just a web server issue. - -For example, say you're trying unsuccessfully to reach example.com. First, find the IP address using the `host` command: - - -``` -$ host example.com -example.com has address 93.184.216.34 -example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946 -example.com mail is handled by 0 -``` - -And then ping the website's host by IP: - - -``` -`$ ping 93.184.216.34 -c 1` -``` - -### Ping and IPv6 - -Ping works over IPv4 as well as IPv6. Using only one of them explicitly can be enforced by specifying `-4` or `-6`.  - -### Packet size - -You can change the size of the ICMP packets you're sending with the `-s` option. The default packet size is 56, which translates into 64 ICMP data bytes when combined with the 8-byte header. This command sends 43 bytes: - - -``` -`$ ping -s 35 -c 5 8.8.8.8` -``` - -You can print a timestamp before each ping report in your terminal with the `-D` option. This provides the UNIX epoch time, plus microseconds: - - -``` -$ ping -D 8.8.8.8  -PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. -[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms -[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms -``` - -### Ping time - -You can change the time interval between pings using the `-i` option. This changes the ping interval to two seconds: - - -``` -`$ ping -s 2 ` -``` - -You can also stop pinging after some value of time (in seconds) with the `-w` option: - - -``` -`$ ping -w 6` -``` - -### Variants - -There are many implementations of ping. The `iputils` package provides a `ping` command, [Busybox ][2]has a `ping` command, and there's one from BSD and others. There's even a GUI for `ping`: Gping is available for Linux, macOS, and Windows. You can find more information for `gping` on [Github][3].  - -### Learn to ping - -The `ping` command is simple, but it can be eyes and ears out on the vast expanse that is your network. Next time you have connectivity issues, let `ping` be the first tool you turn to. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/10/linux-ping-command - -作者:[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/world_remote_teams.png?itok=Wk1yBFv6 (World locations with red dots with a sun burst background) -[2]: https://opensource.com/article/21/8/what-busybox -[3]: https://github.com/orf/gping diff --git a/translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md b/translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md new file mode 100644 index 0000000000..3499ad3b90 --- /dev/null +++ b/translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md @@ -0,0 +1,152 @@ +[#]: subject: "Diagnose connectivity issues with the Linux ping command" +[#]: via: "https://opensource.com/article/21/10/linux-ping-command" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lujun9972" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 Linux ping 命令诊断网络连接问题 +====== +>在本文中,我们将讨论网络连接最基本的诊断工具之一——ping 命令。 + +![World locations with red dots with a sun burst background][1] + +如今,联网计算机变得十分普遍,以至于我们大多数人都理所当然地认为,房间一侧的计算机可以连接上房间另一侧的计算机,更不用说能连接上世界的另一端的计算机了。如此,网络使 Internet、云、文件共享、媒体流、远程管理、打印等服务成为可能。但是当网络出现问题时,有时很难诊断到底是其中哪一环节出现了问题。下面,我们就来介绍:网络连接最基本的诊断工具之一——`ping` 命令。 + +### 基本的 ping 命令 + +当你无法访问本地网络上的计算机或 Internet 上的服务器时,你可以 `ping` 它的 IP 地址。`ping` 将 Internet 控制报文协议 Internet Control Message Protocol (ICMP) 数据包发送到目标 IP 地址。当我们要对网路连接状况进行判断时,ICMP 是个非常有用的协议,本质上 ICMP 是一个响应和应答信号。 + +让我们由近及远地进行故障排除。请先 `ping` 你自己的计算机,以确保你的计算机正在运行 网络栈 networking stack 。你正在操作的计算机称为 _主机_ localhost ,本地回环地址是:127.0.0.1。 + +`ping` 命令能用主机的 主机名 hostname 、IP 地址(即 127.0.0.1)或者仅仅用简写 `0`,来表示 _主机_。 + +你可以使用 `-c`选项,来控制发送数据包的 次数 count 。 + +``` +$ ping 0 -c 1 +PING 0 (127.0.0.1) 56(84) bytes of data. +64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms + +\--- 0 ping statistics --- +1 packets transmitted, 1 received, 0% packet loss, time 0ms +rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms +``` + +在你确认本地网络栈已启动并运行后,接下来,你可以 `ping` 你的路由器的 IP 地址。路由器的 IP 地址通常以 192,168 或 10 开头。实际的 IP 地址取决于路由器的配置。 + +当你没有指定要发送多少次请求时,你可以用 **Ctrl**+**C**,来终止 `ping` 的运行。 + +``` +$ ping 192.168.0.1  +PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. +From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1) +From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1) +From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1) +From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1) +^C +``` + +如果你能 `ping` 通路由器,则表示你的有线或无线连接能正常工作。 + +对于你的局域网上的其他主机呢?你可以 `ping` 各种设备,但是并非所有设备都能保证响应,因为一些设备会丢弃 ICMP 数据包,但许多设备会做出响应。例如,我可以 `ping` 我的打印机: + +``` +`$ ping 192.168.0.4 ` +``` + +### Ping 路由器以外的其他服务器 + +在确定你自己的网络内部都能连通以后,你还可以 `ping` 通到路由器以外的其他服务器。同样地,并非所有服务器都能接收 ICMP 数据包,更不用说响应 ICMP 数据包了。然而,也有一些服务器可以接收并响应 ICMP 数据包,而在互联网中的一个重要服务器是 **域名服务器** nameserver 。 + +Google 的 域名解析服务器 DNS server 的 IP 地址很容易记住,而且它会响应 `ping` 请求: + +``` +$ ping -c 2 8.8.8.8 +PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. +64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms +64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms + +\--- 8.8.8.8 ping statistics --- +2 packets transmitted, 2 received, 0% packet loss, time 1000ms +rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms +``` + +当你连不上一个网站时,你可以查询全球 DNS 网络,以找出其主机服务器的地址,然后 `ping` 该服务器。这至少可以告诉你,网站不通的原因是主机已关闭,或者只是 Web 服务器问题。 + +例如,假设你尝试访问 example.com,但是发现失败了。首先,使用 `host` 命令找到 example.com 的 IP 地址: + +``` +$ host example.com +example.com has address 93.184.216.34 +example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946 +example.com mail is handled by 0 +``` + +然后,`ping` 该网站的的 IP 地址: + +``` +`$ ping 93.184.216.34 -c 1` +``` + +### Ping 使用 IPv6 + +`ping` 不仅可以使用 IPv4,还能使用 IPv6。可以通过指定 `-4` 或 `-6` 选项,来只使用 IPv4 或 IPv6。 + +### Ping 设置数据包大小 + +你可以使用 `-s` 选项,来更改要发送的 ICMP 数据包的 大小 size 。默认的数据大小为 56 字节,加上 8 字节包头,总共得到 64 字节的 ICMP 数据包。以下的示例将发送的 ICMP 数据包大小修改为 35+8=43 个字节: + +``` +`$ ping -s 35 -c 5 8.8.8.8` +``` + +你可以使用 `-D` 选项,使得在终端中的每个 ping 回复之前,先打印出当前的时间戳。该时间戳为 UNIX 时间戳,加上微秒: + +``` +$ ping -D 8.8.8.8  +PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. +[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms +[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms +``` + +### Ping 设置时间间隔/长短 + +你可以使用 `-i` 选项,来更改两次 `ping` 请求之间的 时间间隔 interval 。以下的示例将 `ping` 间隔更改为 2 秒: + +``` +`$ ping -i 2 ` +``` + +你也可以使用 `-w` 选项,来在一段时间后终止 `ping`。 + +``` +`$ ping -w 6` +``` + +### 使用 ping 的工具 + +使用 `ping` 的工具有很多。例如,`iputils` 包提供了 `ping` 命令;[Busybox][2] 也有`ping` 命令;BSD 也有;甚至还有一个用于 `ping` 的 GUI:Gping,它可用于 Linux、macOS 和 Windows。你可以在 [Github][3] 上找到更多有关 `gping` 的信息。 + +### 一起来学习吧 + +`ping` 命令很简单,但它可以帮你诊断网络连接问题。下次再遇到网络连接问题时,让 `ping` 命令成为你解决问题的第一个工具吧。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/10/linux-ping-command + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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/world_remote_teams.png?itok=Wk1yBFv6 (World locations with red dots with a sun burst background) +[2]: https://opensource.com/article/21/8/what-busybox +[3]: https://github.com/orf/gping From 87da9cf23e3a73e63f840c32d7277b1880febf03 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 16 Nov 2022 05:02:51 +0800 Subject: [PATCH 2027/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020221115?= =?UTF-8?q?=20Announcing=20Fedora=20Linux=2037?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20221115 Announcing Fedora Linux 37.md --- .../20221115 Announcing Fedora Linux 37.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sources/tech/20221115 Announcing Fedora Linux 37.md diff --git a/sources/tech/20221115 Announcing Fedora Linux 37.md b/sources/tech/20221115 Announcing Fedora Linux 37.md new file mode 100644 index 0000000000..1c4e6cf739 --- /dev/null +++ b/sources/tech/20221115 Announcing Fedora Linux 37.md @@ -0,0 +1,83 @@ +[#]: subject: "Announcing Fedora Linux 37" +[#]: via: "https://fedoramagazine.org/announcing-fedora-37/" +[#]: author: "Matthew Miller https://fedoramagazine.org/author/mattdm/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Announcing Fedora Linux 37 +====== + +![][1] + +Today I’m excited to share the results of the hard work of thousands of Fedora Project contributors: the Fedora Linux 37 release is here! Let’s see what the latest release brings you. As always, you should make sure your system is fully up-to-date before upgrading from a previous release. Can’t wait to get started? [Download][2] while you read! + +### New editions + +Fedora Editions are flagship offerings targeted at a particular “market”. With Fedora Linux 37, we’re adding two new Editions. Fedora CoreOS is the successor to what you may remember as Atomic Host. Drawing from Project Atomic and the original CoreOS work, it provides an automatic update mechanism geared toward hosting container-based workloads. With atomic updates and easy rollback, it adds peace of mind to your infrastructure. + +Fedora Cloud is also back as an Edition. The Cloud Working Group has seen a resurgence in activity. Cloud provides a great Fedora base to run in your favorite public or private cloud. AMIs will be available in the AWS Marketplace later this week and community channels are available now. Check the [website][3] for images in other cloud providers or for your own cloud! + +### Desktop improvements + +Fedora Workstation focuses on the desktop experience. As usual, Fedora Workstation features the latest GNOME release. [GNOME 43][4] includes a new device security panel in Settings, providing the user with information about the security of hardware and firmware on the system. Building on the previous release, more core GNOME apps have been ported to the latest version of the GTK toolkit, providing improved performance and a modern look.  + +With this release, we’ve made a few changes to allow you to slim down your installation a bit. We split the language packs for the Firefox browser into subpackages. This means you can remove the “firefox-langpacks” package if you don’t need the localization. The runtime packages for gettext — the tools that help other packages produce multilingual text — are split into a separate, optional subpackage. + +Of course, we produce more than just the Editions. [Fedora Spins][5] and [Labs][6] target a variety of audiences and use cases, including [Fedora Comp Neuro][7], which provides tools for computational neuroscience, and desktop environments like [Fedora LXQt][8], which provides a lightweight desktop environment. And, don’t forget our alternate architectures: [ARM AArch64, Power, and S390x][9]. + +### Sysadmin improvements + +Fedora Server now produces a KVM disk image to make running Server in a virtual machine easier. If you’ve disabled SELinux (it’s okay — we still love you!), you can turn it back on with less impact. The autorelabel now runs in parallel, making the “fixfiles” operation much faster. + +In order to keep up with advances in cryptography, this release introduces a TEST-FEDORA39 policy that previews changes planned for future releases. The new policy includes a move away from SHA-1 signatures. Researchers have long known that this hash (like MD5 before it) is not safe to use for many security purposes. + +In the future, we are likely to remove SHA-1 from the list of acceptable security algorithms in Fedora Linux. (As the name TEST-FEDORA39 implies, perhaps as soon as next year.) We know there are still SHA-1 hashes in use today, however. The new policy helps you test your critical applications now so that you’ll be ready. Please try it out, and let us know where you encounter problems. + +Speaking of cryptography, the openssl1.1 package is now deprecated. It will remain available, but we recommend you update your code to work with openssl 3. + +### Other updates + +The Raspberry Pi 4 is now officially supported in Fedora Linux, including accelerated graphics. In other ARM news, Fedora Linux 37 drops support for the ARMv7 architecture (also known as arm32 or armhfp). + +Following our “[First][10]” foundation, we’ve updated key programming language and system library packages, including Python 3.11, Golang 1.19, glibc 2.36, and LLVM 15. + +We’re excited for you to try out the new release! Go to and download it now. Or if you’re already running Fedora Linux, follow the [easy upgrade instructions][11]. For more information on the new features in Fedora Linux 37, see the [release notes][12]. + +### In the unlikely event of a problem… + +If you run into a problem, visit our [Ask Fedora][13] user-support forum. This includes a category for [common issues][14]. + +### Thank you everyone + +Thanks to the thousands of people who contributed to the Fedora Project in this release cycle. We love having you in the Fedora community. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/announcing-fedora-37/ + +作者:[Matthew Miller][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/mattdm/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/f37-release-1-816x345.jpg +[2]: https://getfedora.org +[3]: https://getfedora.org/en/cloud/ +[4]: https://release.gnome.org/43/ +[5]: https://spins.fedoraproject.org/ +[6]: https://labs.fedoraproject.org/ +[7]: https://labs.fedoraproject.org/en/comp-neuro/ +[8]: https://spins.fedoraproject.org/en/lxqt/ +[9]: https://alt.fedoraproject.org/alt/ +[10]: https://docs.fedoraproject.org/en-US/project/#_first +[11]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/ +[12]: https://docs.fedoraproject.org/en-US/fedora/f37/release-notes/ +[13]: https://ask.fedoraproject.org/ +[14]: https://ask.fedoraproject.org/c/common-issues/141/none From 51d1425aafb243aedd503280ee1266f22440af0d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 16 Nov 2022 05:03:00 +0800 Subject: [PATCH 2028/3123] add done: 20221115 Announcing Fedora Linux 37.md --- sources/tech/20221110 .md | 25 +++++++++++++++++++++++++ sources/tech/20221111 .md | 25 +++++++++++++++++++++++++ sources/tech/20221114 .md | 25 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 sources/tech/20221110 .md create mode 100644 sources/tech/20221111 .md create mode 100644 sources/tech/20221114 .md diff --git a/sources/tech/20221110 .md b/sources/tech/20221110 .md new file mode 100644 index 0000000000..de266343ef --- /dev/null +++ b/sources/tech/20221110 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/fastly-open-source-initiative/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fastly-open-source-initiative/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221111 .md b/sources/tech/20221111 .md new file mode 100644 index 0000000000..9f0b04e879 --- /dev/null +++ b/sources/tech/20221111 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/foss-weekly-22-42/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/foss-weekly-22-42/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221114 .md b/sources/tech/20221114 .md new file mode 100644 index 0000000000..3910d61488 --- /dev/null +++ b/sources/tech/20221114 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/nestbox/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/nestbox/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 From 75617b658e1950802d938d7aabfb2f4fd31ffc5c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 16 Nov 2022 05:03:15 +0800 Subject: [PATCH 2029/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020221022?= =?UTF-8?q?=20What=E2=80=99s=20new=20in=20Fedora=20Workstation=2037?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20221022 What-s new in Fedora Workstation 37.md --- ...022 What-s new in Fedora Workstation 37.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20221022 What-s new in Fedora Workstation 37.md diff --git a/sources/tech/20221022 What-s new in Fedora Workstation 37.md b/sources/tech/20221022 What-s new in Fedora Workstation 37.md new file mode 100644 index 0000000000..fb85a3e284 --- /dev/null +++ b/sources/tech/20221022 What-s new in Fedora Workstation 37.md @@ -0,0 +1,96 @@ +[#]: subject: "What’s new in Fedora Workstation 37" +[#]: via: "https://fedoramagazine.org/whats-new-fedora-37-workstation/" +[#]: author: "Merlin Cooper https://fedoramagazine.org/author/mxanthropocene/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What’s new in Fedora Workstation 37 +====== + +![][1] + +Fedora Workstation 37 is the latest version of the Fedora Project’s desktop operating system, made by a worldwide community dedicated to pushing forward innovation in open source. This article describes some of the new user-facing features in Fedora Workstation 37. Upgrade today from GNOME Software, or by using _[dnf system-upgrade][2]_ in your favourite terminal emulator! + +### GNOME 43 + +Fedora Workstation 37 features the latest version of the GNOME desktop environment which sees more core applications ported to GTK 4, user interface tweaks, and performance tune-ups. Check out the [GNOME 43 release notes][3] for more information! + +#### Redesigned Quick Settings menu + +![No need to open Settings just to change to and from Dark Mode][4] + +The new Quick Settings menu offers more control and convenience. You can now easily switch your Wi-Fi network in the menu instead of being taken to a full-screen dialogue box, change between default and dark modes, and enable Night Light without opening the Settings app. A convenient button for taking screenshots and screencasts is also now present. + +#### Core applications + +The GNOME core applications included in Fedora Workstation 37 have seen a round of tweaks and improvements. + + * Files has been ported to GTK 4, and the user interface has seen many improvements. Here are just some of them: + * It is now adaptive – meaning it automatically adjusts to a narrower size, making better use of the available space. + * The list view has been re-architected to make rubber-band selections easier. + * The “Properties” and “Open With…” dialogues have been redesigned. + + + +![Rubber-band selection in Files 43][5] + + * Calendar features a new sidebar that shows your upcoming events at a glance. It, along with Contacts, now feature adaptive user interfaces. + * Characters now shows you different skin tone, hair colour, and gender options for emoji. + * The package source selector in Software has been redesigned and moved to a more visible location. + * Maps has been ported to GTK 4. + * Settings includes a new Device Security panel, allowing you to easily see the hardware security features your devices offers – or lacks! + + + +![Uh oh!][6] + +### New supplemental default wallpapers + +Fedora Workstation 37 ships with a new set of supplemental wallpapers. [See how they were made here!][7] + +![The six new wallpapers come in both light and dark variants][8] + +### Under-the-hood changes throughout Fedora Linux 37 + +Fedora Linux 37 features many under-the-hood changes. Here are some notable ones: + + * The Raspberry Pi 4 single-board computer is now officially supported, including 3D acceleration! + * New installs on BIOS systems will use the GPT disk layout instead of the legacy MBR layout. The installer images will also now use GRUB instead of syslinux to boot on BIOS systems. + * If you disable and then re-enable SELinux, or run the _fixfiles onboot_ command, the file system relabelling processes will now be done in parallel, allowing for a significant speed boost. + * The default fonts for Persian has been changed from DejaVu and Noto Sans Arabic to Vazirmatn, providing a more consistent experience for those who use Fedora Linux in Persian. + + + +### Also check out… + +Cool happenings throughout the Fedora Project! + + * Fedora CoreOS and Fedora Cloud Base have been promoted to Edition status! + * Preview installer images with a new GUI for Anaconda, the Fedora Linux system installer, will become available in about a week. An article will be published with more details, so watch this space! + + + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/whats-new-fedora-37-workstation/ + +作者:[Merlin Cooper][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/mxanthropocene/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/10/f37-whats_new-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/ +[3]: https://release.gnome.org/43/ +[4]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/ezgif.com-gif-maker1.gif +[5]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/ezgif.com-gif-maker2.gif +[6]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/Screenshot-from-2022-09-16-20-25-28-1024x708.png +[7]: https://blog.linuxgrrl.com/2022/06/27/abstract-wallpapers-in-blender-using-geometry-nodes/ +[8]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/dfg-1-1024x679.png From cd602dbcbe42976413a8f45e5694df0930d2c6c8 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 16 Nov 2022 08:22:33 +0800 Subject: [PATCH 2030/3123] Delete 20221110 .md --- sources/tech/20221110 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221110 .md diff --git a/sources/tech/20221110 .md b/sources/tech/20221110 .md deleted file mode 100644 index de266343ef..0000000000 --- a/sources/tech/20221110 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/fastly-open-source-initiative/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/fastly-open-source-initiative/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From d8d89a0fcc9b2a63da1dfd6b9d799aab7f4e2de3 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 16 Nov 2022 08:22:43 +0800 Subject: [PATCH 2031/3123] Delete 20221111 .md --- sources/tech/20221111 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221111 .md diff --git a/sources/tech/20221111 .md b/sources/tech/20221111 .md deleted file mode 100644 index 9f0b04e879..0000000000 --- a/sources/tech/20221111 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/foss-weekly-22-42/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/foss-weekly-22-42/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 49e860dd5a40809a3acf71f68e2e3b51b6564278 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 16 Nov 2022 08:23:53 +0800 Subject: [PATCH 2032/3123] Rename sources/tech/20221115 Announcing Fedora Linux 37.md to sources/news/20221115 Announcing Fedora Linux 37.md --- sources/{tech => news}/20221115 Announcing Fedora Linux 37.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20221115 Announcing Fedora Linux 37.md (100%) diff --git a/sources/tech/20221115 Announcing Fedora Linux 37.md b/sources/news/20221115 Announcing Fedora Linux 37.md similarity index 100% rename from sources/tech/20221115 Announcing Fedora Linux 37.md rename to sources/news/20221115 Announcing Fedora Linux 37.md From 122f6aa8fc44a67504b8aaa2429e077eac807e08 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 16 Nov 2022 08:25:52 +0800 Subject: [PATCH 2033/3123] Delete 20221114 .md --- sources/tech/20221114 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221114 .md diff --git a/sources/tech/20221114 .md b/sources/tech/20221114 .md deleted file mode 100644 index 3910d61488..0000000000 --- a/sources/tech/20221114 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/nestbox/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/nestbox/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 797c8106d5e9c30ee841e6a34b29a7032442092f Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 16 Nov 2022 08:47:31 +0800 Subject: [PATCH 2034/3123] translated --- ...ow to Fix bash wget Command Not Found Error.md | 119 ------------------ ...ow to Fix bash wget Command Not Found Error.md | 119 ++++++++++++++++++ 2 files changed, 119 insertions(+), 119 deletions(-) delete mode 100644 sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md create mode 100644 translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md diff --git a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md deleted file mode 100644 index 91b0cc8d7b..0000000000 --- a/sources/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "How to Fix: bash wget Command Not Found Error" -[#]: via: "https://www.debugpoint.com/wget-not-found-error/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Fix: bash wget Command Not Found Error -====== - -**Here’s how you can fix the “bash: wget command not found” error in Debian, Ubuntu and other distros.** - -The famous wget utility is used to download any files from a URL via a terminal. It’s one of the most popular and fastest utilities for Linux terminals. - -Being a GNU utility, wget brings some fantastic features to the table. You can implement any project, such as extracting information from the web, downloading files, pausing/resuming, etc. - -However, many [Linux distros][1] do not come with this utility with default installation. So, when you want to download some files using wget, you get the wget command not found error. - -Fixing it is really easy. - -### Fixing wget command not found - -All you need to do is open a terminal prompt and run the following command to install wget. - -For Ubuntu, Linux Mint, elementaryOS, Debian and related distros: - -``` -sudo apt install wget -``` - -Arch Linux: - -``` -pacman -S wget -``` - -For Fedora (although it includes by default): - -``` -sudo dnf install wget -``` - -After installation, you can use the wget program. You can also verify whether it’s installed correctly by checking its version. - -``` -wget --version -``` - -### How to use wget - -Here are some examples of how you can use the wget program. - -The syntax of the command is below: - -``` -wget [OPTION]… [URL]… -``` - -For example, if I want to download an Ubuntu ISO file, then I can run the following command to download with the direct URL. - -``` -wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso -``` - -![Sample example of how to use wget][2] - -Similarly, you can also download using the above command or, by combining several switches as described below. You can also get this via `wget --help` command. - -``` --t, --tries=NUMBER set number of retries to NUMBER (0 unlimits) ---retry-connrefused retry even if connection is refused ---retry-on-http-error=ERRORS comma-separated list of HTTP errors to retry --O, --output-document=FILE write documents to FILE --nc, --no-clobber skip downloads that would download toexisting files (overwriting them) ---no-netrc don't try to obtain credentials from .netrc --c, --continue resume getting a partially-downloaded file ---start-pos=OFFSET start downloading from zero-based position OFFSET ---progress=TYPE select progress gauge type ---show-progress display the progress bar in any verbosity mode --N, --timestamping don't re-retrieve files unless newer than local ---no-if-modified-since don't use conditional if-modified-since get requests in timestamping mode ---no-use-server-timestamps don't set the local file's timestamp by the one on the server --S, --server-response print server response ---spider don't download anything --T, --timeout=SECONDS set all timeout values to SECONDS ---dns-timeout=SECS set the DNS lookup timeout to SECS ---connect-timeout=SECS set the connect timeout to SECS ---read-timeout=SECS set the read timeout to SECS --w, --wait=SECONDS wait SECONDS between retrievals (applies if more then 1 URL is to be retrieved) ---wait retry=SECONDS wait 1..SECONDS between retries of a retrieval (applies if more then 1 URL is to be retrieved) ---random-wait wait from 0.5WAIT…1.5WAIT secs between retrievals(applies if more then 1 URL is to be retrieved) -``` - -### Wrapping Up - -I hope this guide helps you to fix the wget error in your Linux distros. The apparent solution is quite simple. - -Drop a note below if it helps/or if you have any questions. - -[Reference][3] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/wget-not-found-error/ - -作者:[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/category/distributions -[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Sample-example-of-how-to-use-wget.jpg -[3]: https://www.gnu.org/software/wget/ diff --git a/translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md new file mode 100644 index 0000000000..7be19b24fb --- /dev/null +++ b/translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md @@ -0,0 +1,119 @@ +[#]: subject: "How to Fix: bash wget Command Not Found Error" +[#]: via: "https://www.debugpoint.com/wget-not-found-error/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何修复:“bash wget Command Not Found” 错误 +====== + +**以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “bash: wget command not found” 的错误。** + +著名的 wget 工具被用来通过终端从 URL 下载任何文件。它是 Linux 终端中最流行和最快速的工具之一。 + +作为一个 GNU 工具,wget 带来了一些奇妙的功能。你可以实现任何项目,如从网上提取信息、下载文件、暂停/恢复等。 + +然而,许多 [Linux 发行版][1]在默认安装时并没有附带这个工具。因此,当你想用 wget 下载一些文件时,你会得到 wget 命令未找到的错误。 + +修复它其实很容易。 + +### 修复 wget 命令未找到 + +你所需要做的就是打开终端,运行以下命令来安装 wget。 + +对于 Ubuntu, Linux Mint, elementaryOS, Debian 和相关发行版: + +``` +sudo apt install wget +``` + +Arch Linux: + +``` +pacman -S wget +``` + +对于 Fedora(虽然它默认包括): + +``` +sudo dnf install wget +``` + +安装后,你可以使用 wget 程序。你也可以通过检查其版本来验证它是否正确安装。 + +``` +wget --version +``` + +### 如何使用 wget + +下面是一些关于如何使用 wget 程序的例子。 + +命令的语法如下: + +``` +wget [选项]… [URL]… +``` + +例如,如果我想下载 Ubuntu 的 ISO 文件,那么我可以运行下面的命令,用直接的 URL 下载。 + +``` +wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso +``` + +![如何使用 wget 的例子][2] + +同样,你也可以使用上述命令下载,或者,通过下面描述的几个开关组合。你也可以通过 `wget --help` 命令得到这个。 + +``` +-t, --tries=NUMBER 设置重试次数为 NUMBER(0 为不限)。 +--retry-connrefused 即使连接被拒绝,也要重试。 +--retry-on-http-error=ERRORS 逗号分隔的 HTTP 错误列表,以便重试。 +-O, --output-document=FILE 将文件写入 FILE 中 +--nc, --no-clobber 跳过那些会下载到现有文件的下载(覆盖它们) +--no-netrc 不要试图从 .netrc 中获取证书。 +-c, --continue 继续已部分下载的文件 +--start-pos=OFFSET 从 0 开始 OFFSET 位置开始下载 +--progress=TYPE 选择进度表类型 +--show-progress 在任何详细模式下显示进度条 +--N, --timestamping 不重新检索文件,除非比本地文件新。 +--no-if-modified-since 在时间戳模式下不使用条件性的 if-modified-since 获取请求 +--no-use-server-timestamps 不以服务器上的时间戳来设置本地文件的时间戳。 +--S, --server-response 打印服务器响应 +--spider 不下载任何东西 +-T, --timeout=SECONDS 设置所有的超时值为 SECONDS +--dns-timeout=SECS 将 DNS 查询超时设置为 SECS +--connect-timeout=SECS 将连接超时设置为 SECS +--read-timeout=SECS 设置读取超时为 SECS +--w, --wait=SECONDS 在两次检索之间等待 SECONDS(适用于检索的 URL 超过 1个)。 +--wait retry=SECONDS 在检索的重试之间等待1...SECONDS(适用于检索的 URL 超过 1 个)。 +--random-wait 在两次检索之间等待 0.5WAIT...1.5WAIT 秒(适用于检索的 URL 超过 1 个) +``` + +### 总结 + +我希望这个指南能帮助你解决 Linux 发行版中的 wget 错误。明显的方案是非常简单的。 + +如果有帮助或者你有任何问题,请在下面留言。 + +[参考][3] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wget-not-found-error/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/distributions +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Sample-example-of-how-to-use-wget.jpg +[3]: https://www.gnu.org/software/wget/ From e380f736df58903b8cf0173a5fd01101efc544ed Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 16 Nov 2022 08:53:40 +0800 Subject: [PATCH 2035/3123] translating --- sources/tech/20221022 What-s new in Fedora Workstation 37.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221022 What-s new in Fedora Workstation 37.md b/sources/tech/20221022 What-s new in Fedora Workstation 37.md index fb85a3e284..c18faec875 100644 --- a/sources/tech/20221022 What-s new in Fedora Workstation 37.md +++ b/sources/tech/20221022 What-s new in Fedora Workstation 37.md @@ -2,7 +2,7 @@ [#]: via: "https://fedoramagazine.org/whats-new-fedora-37-workstation/" [#]: author: "Merlin Cooper https://fedoramagazine.org/author/mxanthropocene/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b3744abde60af895fcaa955f08b862aab3eb859a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 16 Nov 2022 09:02:27 +0800 Subject: [PATCH 2036/3123] RP @qfzy1233 https://linux.cn/article-15257-1.html --- ... Mint's Update Manager Now Supports Flatpak.md | 54 +++++++++---------- 1 file changed, 24 insertions(+), 30 deletions(-) rename {translated/news => published}/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md (51%) diff --git a/translated/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/published/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md similarity index 51% rename from translated/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md rename to published/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md index 765cf8c446..c961b20f61 100644 --- a/translated/news/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md +++ b/published/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md @@ -3,79 +3,73 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "qfzy1233" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15257-1.html" Linux Mint 的更新管理器现在支持 Flatpak ====== -Linux Mint的更新管理器变得为易用了! +> Linux Mint 的更新管理器变得更有用了! ![Linux Mint's Update Manager Now Supports Flatpak][1] -Linux Mint 的更新管理器是发行版的一个重要组成部分,它使新用户获得更为方便简易的体验。 +Linux Mint 的更新管理器是该发行版的一个重要组成部分,它使新用户可以获得更为方便简易的体验。 -Linux Mint 21最近的一次更新推出了的许多改进,包括更新管理器对 Flatpak 的支持。 +最近的一次更新 Linux Mint 21 推出了许多改进,包括更新管理器对 Flatpak 的支持。 -**你只需要更新你的系统来获得这些改进。** +**你只需要更新你的系统就可以获得这些改进。** ### ⭐ 更新管理器中支持 Flatpak ![linux mint 21 flatpak support in update manager][2] -图片来源:Linux Mint 博客 - 是的,你没看错。这终于实现了。 -Flatpak已被添加到更新管理器中,用户只需单击几下即可通过 Flatpak 更新应用程序和运行时。 +Flatpak 支持已被添加到更新管理器中,用户只需单击几下就能更新 Flatpak 应用程序和运行时。 -这将为进一步改善用户体验的统一更新体验让路。 +这将为进一步改善用户体验的统一更新体验提供了帮助。 -对于不熟悉终端命令的新用户来说,更新 Flatpak 是有助益的。此外,你不需要将 Flatpak 与软件中心集成(对于 GNOME 而言)。 +这对新用户来说很有好处,他们不需要熟悉终端命令就能更新 Flatpak。此外,你不需要将 Flatpak 与软件中心集成(对于 GNOME 而言)。 换句话说,Linux Mint 团队增强了你使用 Flatpak 应用程序的体验。 -**除了对Flatpak的支持,更新还包括对Linux Mint 21的更多增强,这是一个开箱即用的更新。** +**除了对 Flatpak 的支持,本次更新还包括对 Linux Mint 21 的更多增强,这是一个开箱即用的更新。** -这些改进包括: +这些改进包括: -### 对Corner Bar(LCTT译注:类似Windows系统内的“显示桌面”按钮)的改进 +### 对角栏的改进 ![linux mint 21 updated corner bar][3] -图片来源:Linux Mint 博客 +Linux Mint 21 中的 角栏Corner Bar 添加了两项新特性: -Linux Mint 21 中的 corner barhas 添加了两项新特性 +- 能够在角栏设置左键点击和中键点击的动作;你可以配置它以显示桌面、工作区选择器或桌面。 +- 一个允许你将鼠标悬停在角栏上以显示桌面的新选项。 -- **能够在 corner barhas 设置左键点击和中键点击的动作;你可以配置它以显示桌面、工作区选择器或桌面。** -- **一个允许你将鼠标悬停在 corner bar 上以显示桌面的新选项。** - -### Updates To Nemo +### Nemo 的更新 ![linux mint 21 updated nemo file manager][4] -图片来源:Linux Mint 博客 +Nemo 文件管理器做了一些调整;现在,当文件被选中时,只会高亮显示文件名,而不是图标和文件名。 -Nemo文件管理器做了一些调整;现在,当文件被选中时,只会高亮显示文件名,而不是图标和文件名。 +**如果你还不知道**, 你也可以通过我们建议的一些调整来增强 Nemo 文件管理器的体验: -**如果你还不知道**, 你也可以通过我们建议的一些调整来增强 Nemo 文件管理器的体验: +> **[调整 Linux 中的 Nemo 文件管理器,让它更好用的 15 种方法](https://itsfoss.com/nemo-tweaks/)** 此外,桌面图标被垂直翻转,桌面上下文菜单中添加了一个新的快捷方式,可以快速打开显示设置。 ### 更少的密码提示 -.这是你们很多人可能喜欢的另一个用户体验调整。 +这是很多人可能喜欢的另一个用户体验调整。 当删除 Flatpak 或任何快捷方式或本地应用程序时,它将不再要求你输入密码。 -类似地,在新立得(LCTT译注:Linux 下的一个包管理工具)和更新管理器的情况下,将使用pkexec来记住密码。 +类似地,在新立得(LCTT 译注:Linux 下的一个包管理工具)和更新管理器的情况下,将使用 pkexec 来记住密码。 这样,用户就不需要每次执行多个操作时都输入密码。 -你可以浏览[Linux Mint's monthly blog post][5] 以了解更多特性。 - -**Via: [DebugPointNews][6]** +你可以浏览 [Linux Mint 月度博客][5] 以了解其它变化。 -------------------------------------------------------------------------------- @@ -84,7 +78,7 @@ via: https://news.itsfoss.com/linux-mint-update-manager/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[qfzy1233](https://github.com/qfzy1233) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6680aa339559fc87333476aaaaaaa32a0c0d2839 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 16 Nov 2022 10:03:55 +0800 Subject: [PATCH 2037/3123] ALL @wxy https://linux.cn/article-15258-1.html --- .../20221115 Announcing Fedora Linux 37.md | 85 +++++++++++++++++++ .../20221115 Announcing Fedora Linux 37.md | 83 ------------------ 2 files changed, 85 insertions(+), 83 deletions(-) create mode 100644 published/20221115 Announcing Fedora Linux 37.md delete mode 100644 sources/news/20221115 Announcing Fedora Linux 37.md diff --git a/published/20221115 Announcing Fedora Linux 37.md b/published/20221115 Announcing Fedora Linux 37.md new file mode 100644 index 0000000000..4ce0157c9f --- /dev/null +++ b/published/20221115 Announcing Fedora Linux 37.md @@ -0,0 +1,85 @@ +[#]: subject: "Announcing Fedora Linux 37" +[#]: via: "https://fedoramagazine.org/announcing-fedora-37/" +[#]: author: "Matthew Miller https://fedoramagazine.org/author/mattdm/" +[#]: collector: "lujun9972" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15258-1.html" + +Fedora Linux 37 发布 +====== + +![][1] + +今天我很兴奋地与大家分享成千上万的 Fedora 项目贡献者的辛勤工作成果:Fedora Linux 37 版本来了!让我们看看这个最新版本给你带来了什么。一如既往,在从以前的版本升级之前,你应该确保你的系统是完全最新的。迫不及待地想开始了吗?在你阅读的同时 [下载][2]! + +> **[下载 Fedora Linux 37][2]** + +### 两个新的版本 + +Fedora 的各个“版本Edition”是针对某一特定“市场”的旗舰产品。在 Fedora Linux 37 中,我们增加了两个新版本:Fedora CoreOS 是你可能还记得的 Atomic Host 的后续版本。从 Project Atomic 和 CoreOS 的初始的工作中汲取营养,它提供了一种自动更新机制,以托管基于容器的工作负载。通过原子更新和简单的回滚,它为你的基础设施增加了安全感。 + +Fedora Cloud 也作为一个版本回来了。云计算工作组的活动已经重新开始了。Cloud 版本提供了一个很棒的 Fedora 基础,可以在你喜欢的公共或私有云中运行。AMI 将在本周晚些时候在 AWS 市场上提供,在社区频道上现在已经可以使用。请查看 [此网站][3] 以了解可以在其他云供应商或你自己的云上运行的镜像! + +### 桌面的改进 + +Fedora Workstation 专注于桌面体验。像往常一样,Fedora Workstation 采用了最新的 GNOME 版本。[GNOME 43][4] 在设置中包括一个新的设备安全面板,为用户提供关于系统中硬件和固件的安全信息。在上一个版本的基础上,更多的 GNOME 核心应用程序被移植到了最新版本的 GTK 工具包,提供了更好的性能和现代的外观。  + +在这个版本中,我们做了一些改变,让你的安装变得更精简。我们把 Firefox 浏览器的语言包分成了子包。这意味着如果你不需要本地化,你可以删除 `firefox-langpacks` 包。gettext 的运行包(帮助其他包产生多语言文本的工具)被分割成一个单独的、可选择的子包。 + +当然,我们生产的不仅仅是“版本”。Fedora [定制版][5]Spins[实验室][6]Labs 针对的是不同的受众和使用情况,包括 [Fedora Comp Neuro][7] ,它为计算神经科学提供工具,以及像 [Fedora LXQt][8] 这样的桌面环境,它提供一个轻量级桌面环境。而且,别忘了我们的备用架构。[ARM AArch64、Power 和 S390x][9]。 + +### 系统管理方面的改进 + +Fedora Server 现在可以生成一个 KVM 磁盘镜像,使在虚拟机中运行 Server 更加容易。如果你已经禁用了 SELinux(没关系 —— 我们仍然爱你!),你可以在影响较小的情况下重新开启它。自动标签现在以并行方式运行,使 “fixfiles” 操作更快。 + +为了跟上密码学的发展,这个版本引入了一个 `TEST-FEDORA39` 策略,预览了计划在未来版本中的变化。新策略之一是不再使用 SHA-1 签名。研究人员早就知道这种哈希值(就像之前的 MD5 一样)在许多安全方面的使用是不安全的。 + +在未来,我们可能会将 SHA-1 从 Fedora Linux 可接受的安全算法列表中移除。(正如 `TEST-FEDORA39` 这个名字所暗示的那样,也许最快也要到明年。)不过我们知道如今 SHA-1 哈希值仍然在使用。新的策略可以帮助你现在就测试你的关键应用程序,这样你就可以做好准备。请尝试一下,并让我们知道你在哪里遇到了问题。 + +说到密码学,openssl1.1 包现在已经废弃了。它还能用,但我们建议你更新你的代码,以使用 openssl 3。 + +### 其他更新 + +树莓派 4 现在在 Fedora Linux 中得到了正式支持,包括图形加速。在 ARM 的其他方面,Fedora Linux 37 放弃了对 ARMv7 架构(也被称为 arm32 或 armhfp)的支持。 + +在我们的“[First][10]”基础上,我们已经更新了关键的编程语言和系统库包,包括 Python 3.11、Golang 1.19、glibc 2.36 和 LLVM 15。 + +我们很高兴你能试用这个新版本!请到 下载。或者如果你已经在运行 Fedora Linux,请按照 [简易升级说明][11]。更多关于 Fedora Linux 37 的新功能的信息,请看 [发行说明][12]。 + +### 在不太可能发生的情况下... + +如果你遇到了问题,请访问我们的 [Ask Fedora][13] 用户支持论坛。这里有一个 [常见问题][14] 的分类。 + +### 谢谢大家 + +感谢在这个发布周期为 Fedora 项目做出贡献的成千上万的人。我们很高兴 Fedora 社区有你们。 + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/announcing-fedora-37/ + +作者:[Matthew Miller][a] +选题:[lujun9972][b] +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/mattdm/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/f37-release-1-816x345.jpg +[2]: https://getfedora.org +[3]: https://getfedora.org/en/cloud/ +[4]: https://release.gnome.org/43/ +[5]: https://spins.fedoraproject.org/ +[6]: https://labs.fedoraproject.org/ +[7]: https://labs.fedoraproject.org/en/comp-neuro/ +[8]: https://spins.fedoraproject.org/en/lxqt/ +[9]: https://alt.fedoraproject.org/alt/ +[10]: https://docs.fedoraproject.org/en-US/project/#_first +[11]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/ +[12]: https://docs.fedoraproject.org/en-US/fedora/f37/release-notes/ +[13]: https://ask.fedoraproject.org/ +[14]: https://ask.fedoraproject.org/c/common-issues/141/none diff --git a/sources/news/20221115 Announcing Fedora Linux 37.md b/sources/news/20221115 Announcing Fedora Linux 37.md deleted file mode 100644 index 1c4e6cf739..0000000000 --- a/sources/news/20221115 Announcing Fedora Linux 37.md +++ /dev/null @@ -1,83 +0,0 @@ -[#]: subject: "Announcing Fedora Linux 37" -[#]: via: "https://fedoramagazine.org/announcing-fedora-37/" -[#]: author: "Matthew Miller https://fedoramagazine.org/author/mattdm/" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Announcing Fedora Linux 37 -====== - -![][1] - -Today I’m excited to share the results of the hard work of thousands of Fedora Project contributors: the Fedora Linux 37 release is here! Let’s see what the latest release brings you. As always, you should make sure your system is fully up-to-date before upgrading from a previous release. Can’t wait to get started? [Download][2] while you read! - -### New editions - -Fedora Editions are flagship offerings targeted at a particular “market”. With Fedora Linux 37, we’re adding two new Editions. Fedora CoreOS is the successor to what you may remember as Atomic Host. Drawing from Project Atomic and the original CoreOS work, it provides an automatic update mechanism geared toward hosting container-based workloads. With atomic updates and easy rollback, it adds peace of mind to your infrastructure. - -Fedora Cloud is also back as an Edition. The Cloud Working Group has seen a resurgence in activity. Cloud provides a great Fedora base to run in your favorite public or private cloud. AMIs will be available in the AWS Marketplace later this week and community channels are available now. Check the [website][3] for images in other cloud providers or for your own cloud! - -### Desktop improvements - -Fedora Workstation focuses on the desktop experience. As usual, Fedora Workstation features the latest GNOME release. [GNOME 43][4] includes a new device security panel in Settings, providing the user with information about the security of hardware and firmware on the system. Building on the previous release, more core GNOME apps have been ported to the latest version of the GTK toolkit, providing improved performance and a modern look.  - -With this release, we’ve made a few changes to allow you to slim down your installation a bit. We split the language packs for the Firefox browser into subpackages. This means you can remove the “firefox-langpacks” package if you don’t need the localization. The runtime packages for gettext — the tools that help other packages produce multilingual text — are split into a separate, optional subpackage. - -Of course, we produce more than just the Editions. [Fedora Spins][5] and [Labs][6] target a variety of audiences and use cases, including [Fedora Comp Neuro][7], which provides tools for computational neuroscience, and desktop environments like [Fedora LXQt][8], which provides a lightweight desktop environment. And, don’t forget our alternate architectures: [ARM AArch64, Power, and S390x][9]. - -### Sysadmin improvements - -Fedora Server now produces a KVM disk image to make running Server in a virtual machine easier. If you’ve disabled SELinux (it’s okay — we still love you!), you can turn it back on with less impact. The autorelabel now runs in parallel, making the “fixfiles” operation much faster. - -In order to keep up with advances in cryptography, this release introduces a TEST-FEDORA39 policy that previews changes planned for future releases. The new policy includes a move away from SHA-1 signatures. Researchers have long known that this hash (like MD5 before it) is not safe to use for many security purposes. - -In the future, we are likely to remove SHA-1 from the list of acceptable security algorithms in Fedora Linux. (As the name TEST-FEDORA39 implies, perhaps as soon as next year.) We know there are still SHA-1 hashes in use today, however. The new policy helps you test your critical applications now so that you’ll be ready. Please try it out, and let us know where you encounter problems. - -Speaking of cryptography, the openssl1.1 package is now deprecated. It will remain available, but we recommend you update your code to work with openssl 3. - -### Other updates - -The Raspberry Pi 4 is now officially supported in Fedora Linux, including accelerated graphics. In other ARM news, Fedora Linux 37 drops support for the ARMv7 architecture (also known as arm32 or armhfp). - -Following our “[First][10]” foundation, we’ve updated key programming language and system library packages, including Python 3.11, Golang 1.19, glibc 2.36, and LLVM 15. - -We’re excited for you to try out the new release! Go to and download it now. Or if you’re already running Fedora Linux, follow the [easy upgrade instructions][11]. For more information on the new features in Fedora Linux 37, see the [release notes][12]. - -### In the unlikely event of a problem… - -If you run into a problem, visit our [Ask Fedora][13] user-support forum. This includes a category for [common issues][14]. - -### Thank you everyone - -Thanks to the thousands of people who contributed to the Fedora Project in this release cycle. We love having you in the Fedora community. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/announcing-fedora-37/ - -作者:[Matthew Miller][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/mattdm/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/f37-release-1-816x345.jpg -[2]: https://getfedora.org -[3]: https://getfedora.org/en/cloud/ -[4]: https://release.gnome.org/43/ -[5]: https://spins.fedoraproject.org/ -[6]: https://labs.fedoraproject.org/ -[7]: https://labs.fedoraproject.org/en/comp-neuro/ -[8]: https://spins.fedoraproject.org/en/lxqt/ -[9]: https://alt.fedoraproject.org/alt/ -[10]: https://docs.fedoraproject.org/en-US/project/#_first -[11]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/ -[12]: https://docs.fedoraproject.org/en-US/fedora/f37/release-notes/ -[13]: https://ask.fedoraproject.org/ -[14]: https://ask.fedoraproject.org/c/common-issues/141/none From 62b7022a75410905e812738894a484e003c3a0c2 Mon Sep 17 00:00:00 2001 From: Cubik Date: Wed, 16 Nov 2022 10:35:50 -0500 Subject: [PATCH 2038/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?][talk]:=2020221112.0=20=E2=AD=90=EF=B8=8F=20Learn=20Python=207?= =?UTF-8?q?=20of=20my=20favorite=20resources.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Learn Python 7 of my favorite resources.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md b/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md index 275e9c9527..e72764c99b 100644 --- a/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md +++ b/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md @@ -7,48 +7,48 @@ [#]: publisher: " " [#]: url: " " -Learn Python: 7 of my favorite resources +学习 Python:我最喜欢的 7 个资源 ====== -Over the years, I've honed my Python skills thanks to these open source resources. +这些年来,我通过这些开源资源提高了我的 Python 技能。 -I made a decision recently that I wanted to learn more Python so I could improve my instructional skills and broaden the horizons of my students. In the process, I have discovered these excellent resources that have me learning new code and improving my understanding of Python in general. +我最近决定进一步学习 Python,以便提高我的教学技能,拓宽我的学生的视野。在这个过程中,我发现了这些优秀的资源,让我学习新的代码,并提高了对 Python 的整体理解。 -### 1. Teach your kids to code +### 1. 教你的孩子编程 -I began the Python journey about seven years ago when I discovered connections between Apple LOGO and the [Turtle module][1] in Python. The Linux computer I was using at the time defaulted to Python 2.7, and I soon discovered that I wanted to use Python 3. I managed to get it installed and began writing some simple programs using the Turtle module. After reading Dr. Bryson Payne’s [Teach Your Kids to Code][2], I realized there was a lot more to Python than just Turtle. That’s when I installed [IDLE][3]. +我的 Python 之旅大约是 7 年前开始的,当时我发现了 Apple LOGO 和 Python 中的 [Turtle 模块][1] 之间的联系。当时使用的 Linux 计算机的默认 Python 版本为 Python 2.7,我很快发现我想使用 Python 3。我成功地安装了它,并开始使用 Turtle 模块编写一些简单的程序。在阅读 Dr. Bryson Payne 的 [教你的孩子编程][2] 之后,我意识到 Python 不仅仅是 Turtle。那时我安装了 [IDLE][3]。 ### 2. IDLE -Working with IDLE, the interactive interface improved my experience and made me confident enough to consider teaching Python to students. I volunteered to help a group of home-schooled children in my community and soon found myself teaching a class of sixteen! I’m glad their parents stayed and agreed to be my assistants, otherwise I think I’d have been overwhelmed. The experience whetted my appetite to learn more so I could teach more. +在使用 IDLE 工作的过程中,交互式界面优化了我的体验,并让我有足够的信心来考虑向学生教授 Python。我志愿帮助我社区中的一群在家学习的孩子,很快我发现自己在教授一个有十六个孩子的班级!我很高兴他们的父母同意帮助我,否则我想我会被压垮。这个经历激发了我学习更多的欲望,以便我可以教授更多。 -### 3. Mu Editor +### 3. Mu 编辑器 -The following spring in 2018 I attended PyConUS. I listened to a talk by [Nicholas Tollervey][4], a middle school teacher, who had written a Python development environment for school-age children. The [Mu editor][5] has a linter built into it, which helped me to see where my errors in programming were. Mu helped me improve my coding skills, and I was able to share that with students, who benefitted as well. +2018 年春天,我参加了 PyConUS。我听了一场由中学老师 [Nicholas Tollervey][4] 主讲的演讲,他为学龄前儿童编写了一个 Python 开发环境。[Mu 编辑器][5] 内置了一个可以帮助我找到代码中的错误的 linter。Mu 帮助我提高了我的编码技能,我也能够与学生分享这些技能,他们也从中受益。 -As my confidence and experience grew, I became eager to share the Python journey with still more students. I co-wrote a grant the following year to teach a class that used Raspberry Pi 4 computers and Python. The pandemic interrupted that experience. In the interim, the Raspberry Pi Foundation released the Pi 400. In the spring of 2021, I used the materials I had developed the previous year and a generous grant from a local library to [teach two groups][6] of students how to program. That event was so successful that it was repeated this year. +我的自信和经验增长后,我希望与更多的学生分享 Python 之旅。我与其他人合作撰写了一个申请书,以教授一个使用树莓派 4 和 Python 的课程。疫情打断了这个计划。在此期间,树莓派基金会发布了 Pi 400。2021 年春天,我使用了前一年开发的材料和一个来自当地图书馆的慷慨的资助,来 [教授两组][6] 学生如何编程。这个活动非常成功并在今年再次举办。 ### 4. Codium -Several years ago, I learned that Microsoft’s Visual Studio Code is an open source code editor that can be used on Linux. One of the aspects of my Python learning journey that had eluded me until recently was how to set up and use a virtual environment for Python programming, which had been suggested when using VS Code. My questions were answered here on Opensource.com in an [article about venv][7], and that opened the door to learning how to set up and configure Python virtual environments on my Linux computer. Around the same time, I found [Codium][8], a community project built around VS Code. +几年前,我了解到微软的 Visual Studio Code 是一个可以在 Linux 上使用的开源代码编辑器。我最近才了解到,如何在 VS Code 中配置和使用 Python 虚拟环境。我的问题在 Opensource.com 上一篇 [关于虚拟环境的文章][7] 中得到了解答,这让我可以知道如何在 Linux 计算机上设置和配置 Python 虚拟环境。大约在同一时间,我发现了 [Codium][8],一个围绕 VS Code 构建的社区项目。 -Now I want to share the VS Codium experience with my students and open their understanding of Python beyond the Turtle module. This zest for learning has me looking for training resources that are open source and freely available on the internet. +现在我希望与我的学生分享 VS Codium 的体验,并让他们对 Python 的理解不再局限于 Turtle 模块。这种学习的热情让我寻找开源且可以在互联网上随意获得的教学资源。 -### 5. Python gently explained +### 5. 简单解释 Python -The book [Automate the Boring Stuff with Python][9] by Al Sweigart has long been a favorite of mine. Now, the author has released [Python Programming Exercises, Gently Explained][10]. Both books are available online for free and are openly licensed with Creative Commons license. +[使用 Python 自动化繁琐的事情][9] 这本书是我最喜欢的一本书。现在,作者已经发布了 [Python 编程练习,简单解释][10]。这两本书都可以免费在线阅读,并且都采用了知识共享许可证。 -### 6. Python for everyone +### 6. Python for Everyone -Dr. Charles Severance released [Python for Everyone][11] in 2017, which I highly recommend. He provides "bite size" lessons for aspiring programmers like me. The code for the course is available on [GitHub][12], so you can download it and install it on your own computer or school network. +Dr. Charles Severance 在 2017 年发布了 [Python for Everyone][11],我非常推荐这本书。他为像我这样的有抱负的程序员提供了简短的课程。课程的代码可以在 [GitHub][12] 上找到,所以你可以下载它并在自己的计算机或学校网络上安装它。 -### 7. Python videos +### 7. Python 视频 -Recently I learned that Opensource.com alumnus [Jay LaCroix][13] has an excellent series of twenty-eight videos available for free on YouTube that begin with Python basics and span the gamut of a solid introduction to [Python programming][14]. Best of all, he uses a Linux computer, so his lessons are especially appropriate for a Linux programming environment. One of the takeaways from these videos is learning to use [nano][15] as a programming environment, and it’s included by default in most Linux distributions. +最近,我了解到 Opensource.com 的成员 [Jay LaCroix][13] 在 YouTube 上有一系列精彩的视频,其中包括 28 个免费视频,从 Python 基础开始,涵盖了 [Python 编程][14] 的全面介绍。最重要的是,他使用的是 Linux 计算机,因此他的课程特别适合 Linux 编程环境。这些视频的其中一个收获是学习如何使用 [nano][15] 作为编程环境,它默认情况下包含在大多数 Linux 发行版中。 -### Your learning path +### 你的学习之路 -These seven resources have helped me grow as a programmer, and it’s all open source and available to share with others. How have you been honing your programming skills? What would you like to share? Let us know in the comments. +此处提到的这七个资源帮助我成长为一名程序员,它们都是开源的并可以与其他人分享。你是如何提高编程技能的?你有什么要分享的吗?在评论中告诉我们。 -------------------------------------------------------------------------------- From aa5fbe65508415cd8cc17838265b23a0390c4b9f Mon Sep 17 00:00:00 2001 From: Cubik Date: Wed, 16 Nov 2022 10:36:14 -0500 Subject: [PATCH 2039/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][talk]:=2020221112.0=20=E2=AD=90=EF=B8=8F=20Learn=20Python=207?= =?UTF-8?q?=20of=20my=20favorite=20resources.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md (100%) diff --git a/sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md b/translated/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md similarity index 100% rename from sources/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md rename to translated/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md From 43b54eb56ae410f6ea4411561c130af80a682309 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 17 Nov 2022 08:42:27 +0800 Subject: [PATCH 2040/3123] translated --- ...️ How to Fix sudo Command Not Found Error.md | 102 ----------------- ...️ How to Fix sudo Command Not Found Error.md | 103 ++++++++++++++++++ 2 files changed, 103 insertions(+), 102 deletions(-) delete mode 100644 sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md create mode 100644 translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md diff --git a/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md b/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md deleted file mode 100644 index b8d26eeaf6..0000000000 --- a/sources/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md +++ /dev/null @@ -1,102 +0,0 @@ -[#]: subject: "How to Fix: sudo Command Not Found Error" -[#]: via: "https://www.debugpoint.com/sudo-command-not-found/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Fix: sudo Command Not Found Error -====== - -**Here’s how you can fix the “sudo command not found” error in Debian, Ubuntu and other distros.** - -Sometimes, when you set up or install [Linux distributions][1] for the first time, you get the “sudo command not found” error while trying some commands with sudo. - -The sudo command is an abbreviation of “superuser do”, and it is a program which allows a user to execute a command with admin privileges. The sudo command helps you run programs/commands like an admin user. - -Also, the user, who is running the command with sudo must be a part of the sudo group. - -The primary reason you get this error is that the package itself is not installed. However, most modern Linux distribution provides this by default, but some don’t. - -Here are the steps you should follow to fix it. - -#### Troubleshooting#1 - -- First, install the sudo package to fix the problem. Open a terminal, refresh your system and run the following commands to install sudo. - -For Ubuntu, Debian and related distros: - -``` -su -apt updateapt install sudo -``` - -For Arch Linux: - -``` -pacman -S sudo -``` - -For Fedora, RHEL, etc: - -``` -su -dnf updatednf install sudo -``` - -- After the above installation is complete, you have to add the user to `sudo` group using the following command - -`usermod -aG sudo ` - -- Then run the `visudo` from the terminal and the following line. Press CTRL+O and CTRL+X to save & exit. - -![Updating the sudoers file using visudo][2] - -- Log off and log in again to reflect the change. - -#### Troubleshooting#2 - -After the above change, if you are still getting the error, then follow the below steps. - -Make sure your `$PATH` variable contains the proper path to the `sudo` executable. If the `sudo` is installed, but the `$PATH` is incorrect, you can also get this error. Ideally, your path should contain all the below paths. - -``` -echo $PATH -``` - -``` -/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin -``` - -To change the path variable, use the following command. For example, if the `/usr/bin` is not present, then you can add it via below - -``` -export PATH=$PATH:/usr/bin -``` - -Then log out and log in to see the effect. - -### Wrapping Up - -I hope this guide helps you to fix the sudo error in your Linux distros. The apparent solution is quite simple, really. - -Drop a note below if it helps/or if you have any questions. - -[Reference][3] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/sudo-command-not-found/ - -作者:[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/category/distributions -[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Updating-the-sudoers-file-using-visudo.jpg -[3]: https://linux.die.net/man/8/sudo diff --git a/translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md b/translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md new file mode 100644 index 0000000000..53ae33a283 --- /dev/null +++ b/translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md @@ -0,0 +1,103 @@ +[#]: subject: "How to Fix: sudo Command Not Found Error" +[#]: via: "https://www.debugpoint.com/sudo-command-not-found/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何修复:“sudo Command Not Found” 错误 +====== + +**以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “sudo command not found” 错误的方法**。 + +有时,当你第一次设置或安装 [Linux 发行版][1]时,你在用 sudo 尝试一些命令时,会出现 “sudo command not found” 的错误。 + +sudo 命令是 “superuser do” 的缩写,它是一个允许用户以管理员权限执行命令的程序。sudo 命令帮助你像管理员用户一样运行程序/命令。 + +此外,用 sudo 运行命令的用户必须是 sudo 组的一部分。 + +你看到这个错误的主要原因是该软件包本身没有安装。然而,大多数现代 Linux 发行版都默认提供了这个功能,但有些则没有。 + +下面是解决这个问题需要遵循的步骤。 + +#### 故障排除#1 + +- 首先,安装 sudo 包来解决这个问题。打开一个终端,刷新你的系统,并运行以下命令来安装 sudo。 + +对于 Ubuntu、Debian 和相关发行版: + +``` +su -apt updateapt install sudo +``` + +对于 Arch Linux: + +``` +pacman -S sudo +``` + +对于 Fedora、RHEL 等: + +``` +su -dnf updatednf install sudo +``` + +- 上述安装完成后,你必须使用以下命令将用户添加到 `sudo` 组中。 + +`usermod -aG sudo ` + +- 然后从终端运行 `visudo`,并运行以下行。按 CTRL+O 和 CTRL+X 来保存和退出。 + + +![使用 visudo 更新 sudoers 文件][2] + +- 退出并再次登录使变化生效。 + +#### 故障排除#2 + +在做了上述改变之后,如果你仍然收到错误信息,那么请按照以下步骤操作。 + +确保你的 `$PATH` 变量包含 `sudo` 可执行文件的正确路径。如果 `sudo` 已经安装,但 `$PATH` 不正确,你也会得到这个错误。理想情况下,你的路径应该包含以下所有的路径。 + +``` +echo $PATH +``` + +``` +/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin +``` + +要改变路径变量,使用以下命令。例如,如果 `/usr/bin` 不存在,那么你可以通过以下方式添加它。 + +``` +export PATH=$PATH:/usr/bin +``` + +然后注销并登录查看效果。 + +### 总结 + +我希望这个指南能帮助你解决 Linux 发行版中的 sudo 错误。表面上的解决方案很简单,真的。 + +如果有帮助,或者如果你有任何问题,请在下面留言,。 + +[参考][3] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/sudo-command-not-found/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/distributions +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Updating-the-sudoers-file-using-visudo.jpg +[3]: https://linux.die.net/man/8/sudo \ No newline at end of file From 78eaa632bd3de651718faa9cf6efc228076963cf Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 17 Nov 2022 09:10:32 +0800 Subject: [PATCH 2041/3123] translating --- ...o Install LibreOffice Base Database in Ubuntu and Other Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md b/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md index b4d8271f1a..02f6c67b5b 100644 --- a/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md +++ b/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-libreoffice-base-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From db5561e96f5f6e464a881059f65be65a879af4f0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 17 Nov 2022 09:25:00 +0800 Subject: [PATCH 2042/3123] RP @geekpi https://linux.cn/article-15260-1.html --- ...3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 238 ++++++++++++++++++ ...3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 185 -------------- 2 files changed, 238 insertions(+), 185 deletions(-) create mode 100644 published/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md delete mode 100644 translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md diff --git a/published/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/published/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md new file mode 100644 index 0000000000..61887b03ba --- /dev/null +++ b/published/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md @@ -0,0 +1,238 @@ +[#]: subject: "How to Install Node.js on RHEL 9" +[#]: via: "https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/" +[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15260-1.html" + +如何在 RHEL 9 上安装 Node.js +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/17/092223tdodvvfdnsjiezxv.jpg) + +> 在这篇文章中,我们将逐步解释如何在 RHEL 9 系统上安装 Node.js。 + +[Node.js][1] 基于谷歌的 V8 JavaScript 引擎构建,它是一个自由开源的跨平台 JavaScript 运行时环境,主要用于构建服务器端应用。它使用事件驱动和异步模型,帮助开发人员构建高度可扩展的数据密集型的实时应用(RTA)。你可以使用 NodeJS 来构建前端和后端应用。 + +Node.js 通常用于构建以下应用: + +- 聊天应用 +- 流媒体应用 +- 浏览器游戏 +- 命令行工具 +- 嵌入式系统 + +在其技术栈中使用 NodeJS 的顶级公司包括 PayPal、NetFlix 和 Uber 等等。 + +安装 Node.js 主要有以下三种方式: + +- 从 NodeSource 仓库安装 Node.js +- 从发行版的官方仓库安装 Node.js +- 使用 NVM 安装 Node.js + +让我们看看如何使用这些方法在 RHEL 9 上安装 Node.js。 + +先决条件: + +- 最小化安装的 RHEL 9 系统 +- 具有管理员权限的 [sudo 用户][2] +- 互联网连接 +- Red Hat 订阅或本地配置的仓库 + +### 从 NodeSource 存储库安装 Node.js + +[NodeSource][3] 是一家技术公司,旨在帮助组织运行生产就绪的 Node.js 应用,关注资源使用以及增强的安全性和应用程序性能。它提供了最新版本的 Node.js 和 NPM。 + +要从 NodeSource 安装 Node.js,首先,按如下所示更新系统包。 + +``` +$ sudo dnf update -y +``` + +![][5] + +接下来,安装这期间所需的构建工具。其中包括 GCC C/C++ 编译器、Perl 和 Python 调试器等等。 + +``` +$ sudo dnf groupinstall 'Development Tools' -y +``` + +![][6] + +接下来,我们将从 NodeSource 安装 Node.js 18.x。为此,请下载并运行 NodeSource 设置脚本,如下所示。 + +``` +$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - +``` + +该脚本在其他任务中将 NodeSource 仓库添加到你的系统。 + +![][7] + +在输出的末尾,你将看到一些关于如何安装 Node.js 和 NPM 的附加说明。 + +![][8] + +因此,要安装 Node.js 和 NPM(Node 包管理器),请运行以下命令: + +``` +$ sudo dnf install nodejs -y +``` + +![][9] + +安装完成后,按如下所示验证 Node.js 和 NPM 的版本。 + +``` +$ node -v +$ npm -v +``` + +![][10] + +输出显示我们正在运行 Node v18.12,它是最新的 LTS 版本和 NPM 8.19.2。 + +### 从官方 RHEL 仓库安装 Node.js + +安装 NodeJS 和 NPM 的另一种方法是从发行版的官方仓库中安装它们。但是,这种方法不提供最新版本。 + +如果你不介意不安装最新版本的 Node 和 NPM。 那么在命令行上运行以下命令。 + +``` +$ sudo dnf update -y +$ sudo dnf install nodejs npm -y +``` + +![][11] + +### 使用 NVM 安装 Node.js + +最后,你可以使用 NVM(Node 版本管理器)安装 Node.js,这是一种用于管理系统上 Node 版本的工具。该工具可帮助开发人员在需要不同版本 Node.js 的不同项目上高效工作。 + +默认情况下没安装 NVM。你需要通过运行 [官方 GitHub 页面][4] 上提供的 Shell 脚本来安装它。 + +``` +$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash +``` + +这会下载 NVM 并将其保存在主目录的 `.nvm` 目录中。 + +![][12] + +安装后,关闭终端会话并打开一个新终端。然后运行以下命令确认 NVM 已经安装。 + +``` +$ command -v nvm +``` + +![][13] + +接下来,你可以使用以下命令列出所有可用的 Node.js 版本: + +``` +$ nvm ls-remote +``` + +![][14] + +或者,你可以列出 Node.js 版本的所有最新 LTS 版本,如图所示。 + +``` +$ nvm ls-remote | grep -i latest +``` + +![][15] + +要安装最新版本的 Node.js(当前为 v19.0.0),请运行以下命令: + +``` +$ nvm install node +``` + +![][16] + +然后,你可以验证安装的 Node.js 版本,如下所示。 + +``` +$ node -v +``` + +![][17] + +此外,你可以安装特定版本的 Node.js。例如,要安装 v18.2.0,请运行以下命令: + + +``` +$ nvm install v18.12.0 +``` + +![][18] + +要列出系统上所有已安装的 NodeJS 版本,请运行以下命令: + +``` +$ nvm ls +``` + +第一行带有 “->” 符号的条目指向当前使用的 Node.js 版本。然后是其他版本。 + +![][19] + +要切换到另一个版本的 Node.js,请使用以下语法: + +``` +$ nvm use +``` + +例如,要使用 Node 版本 19.0.0,请运行以下命令: + +``` +$ nvm use 19.0.0 +``` + +![][20] + +再次检查已安装的 Node.js 版本,这次“->” 符号将指向 v19.0.0。 + +![][21] + +### 总结 + +在本指南中,我们演示了如何使用三种不同的方法安装 Node.js。此外,我们还提供了几种使用 NVM 管理 Node 版本的方法。我们希望可以帮助你轻松地在 RHEL 上安装 NodeJS,并选择你想要在项目中使用的版本。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/ + +作者:[James Kiarie][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxtechi.com/author/james/ +[b]: https://github.com/lkxed +[1]: https://nodejs.org/en/about/ +[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/ +[3]: https://nodesource.com/ +[4]: https://github.com/nvm-sh/nvm +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Install-updates-rhel9-system.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Install-development-tools-rhel9-dnf-command.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Add-NodeSource-Repository-RHEL9.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/11/NodeSource-Repository-Output-RHEL9.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2022/11/dnf-install-nodejs-rhel9.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Verify-NodeJs-NPM-Version-RHEL9.png +[11]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Install-NodeJS-NPM-RHEL9-Official-Repo.png +[12]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Installing-NodeJS-Using-NVM.png +[13]: https://www.linuxtechi.com/wp-content/uploads/2022/11/nmv-command-interface-rhel9.png +[14]: https://www.linuxtechi.com/wp-content/uploads/2022/11/list-nodejs-using-nvm-command-rhel9.png +[15]: https://www.linuxtechi.com/wp-content/uploads/2022/11/list-latest-nodejs-using-nvm-command-rhel9.png +[16]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Install-latest-nodejs-with-nvm-rhel9.png +[17]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Verify-nodejs-npm-version-with-node-nvm.png +[18]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Install-specific-nodejs-version-nvm-command-rhel9.png +[19]: https://www.linuxtechi.com/wp-content/uploads/2022/11/nvm-ls-command-rhel9.png +[20]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Use-Specific-NodeJs-Version-RHEL9.png +[21]: https://www.linuxtechi.com/wp-content/uploads/2022/11/Check-NodeJS-Version-after-switching-rhel9.png \ No newline at end of file diff --git a/translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md deleted file mode 100644 index cd96c378a6..0000000000 --- a/translated/tech/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "How to Install Node.js on RHEL 9" -[#]: via: "https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/" -[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何在 RHEL 9 上安装 Node.js -====== - -在这篇文章中,我们将逐步解释如何在 RHEL 9 系统上安装 Node.js。 - -[Node.js][1] 是基于 Google 的 V8 Javascript 引擎构建,它是一个免费的开源跨平台 JavaScript 运行时,主要用于构建服务器端应用。它使用事件驱动和异步模型,帮助开发人员构建高度可扩展的数据密集型实时应用 (RTA)。你可以使用 NodeJS 来构建前端和后端应用。 - -Node.js 通常用于构建以下应用: - -- 聊天应用 -- 流媒体应用 -- 浏览器游戏 -- 命令行工具 -- 嵌入式系统 - -在其技术栈中使用 NodeJS 的顶级公司包括 PayPal、Netflix 和 Uber 等等。 - -安装 Node.JS 主要有以下三种方式: - -- 从 NodeSource 仓库安装 Node.JS -- 从发行版的官方仓库安装 Node.JS -- 使用 NVM 安装 Node.JS - -让我们看看如何使用这些方法在 RHEL 9 上安装 Node.JS。 - -##### 先决条件 - -- 最少化安装的 RHEL 9 系统 -- 具有管理员权限的 [Sudo 用户][2] -- 互联网连接 -- Red Hat 订阅或本地配置的仓库 - -### 从 NodeSource 存储库安装 Node.js - -[NodeSource][3] 是一家技术公司,旨在帮助组织运行生产就绪的 Node.Js 应用,更加关注资源使用以及增强的安全性和应用程序性能。它提供了最新版本的 Node.JS 和 NPM。 - -要从 Nodesource 安装 Node.JS,首先,如下所示更新系统包。 - -``` -$ sudo dnf update -y -``` - -接下来,安装在安装 Node.JS 期间所需的构建工具。其中包括 GCC c/c++ 编译器、Perl 和 Python 调试器等等。 - -``` -$ sudo dnf groupinstall 'Development Tools' -y -``` - -接下来,我们将从 Nodesource 安装 Node.JS 18.x。为此,请下载并运行 NodeSource 设置脚本,如下所示。 - -``` -$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - -``` - -该脚本在其他任务中将 Nodesource 仓库添加到您的系统。 - -在输出的末尾,你将看到一些关于如何安装 Node.JS 和 npm 的附加说明。 - -因此,要安装 Node.JS 和 npm(Node 包管理器),请运行以下命令: - -``` -$ sudo dnf install nodejs -y -``` - -安装完成后,如图所示验证 Node.JS 和 NPM 的版本。 - -``` -$ node -v -$ npm -v -``` - -输出显示我们正在运行 Node v18.12,它是最新的 LTS 版本和 NPM 8.19.2。 - -### 从官方 RHEL 仓库安装 Node.js - -安装 NodeJS 和 NPM 的另一种方法是从发行版的官方仓库中安装它们。但是,这种方法不提供最新版本。 - -如果你不介意不安装最新版本的 Node 和 NPM。 那么在命令行上运行以下命令。 - -``` -$ sudo dnf update -y -$ sudo dnf install nodejs npm -y -``` - -### 使用 NVM 安装 Node.js - -最后,你可以使用 NVM(Node 版本管理器)安装 Node.JS,这是一种用于管理系统上 Node 版本的工具。该工具可帮助开发人员在需要不同版本 Node.JS 的不同项目上高效工作。 - -默认情况下没安装 NVM。你需要通过运行[官方 GitHub 页面][4]上提供的 Shell 脚本来安装它。 - -``` -$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash -``` - -这会下载 nvm 并将其保存在主目录的 .nvm 目录中。 - -安装后,关闭终端会话并打开一个新终端。然后运行以下命令确认 NVM 已经安装。 - -``` -$ command -v nvm -``` - -接下来,你可以使用以下命令列出所有可用的 Node.JS 版本: - -``` -$ nvm ls-remote -``` - -或者,你可以列出 Node.JS 版本的所有最新 LTS 版本,如图所示。 - -``` -$ nvm ls-remote | grep -i latest -``` - -要安装最新版本的 Node.JS(当前为 v19.0.0),请运行以下命令: - -``` -$ nvm install node -``` - -然后,你可以验证安装的 Node 版本,如下所示。 - -``` -$ node -v -``` - -此外,你可以安装特定版本的 Node.JS。例如,要安装 v18.2.0,请运行以下命令: - - -``` -$ nvm install v18.12.0 -``` - -要列出系统上所有已安装的 NodeJS 版本,请运行以下命令: - -``` -$ nvm ls -``` - -第一行带有 (->) 符号的条目指向当前使用的 Node.JS 版本。然后是其他版本。 - -要切换到另一个版本的 Node.JS,请使用以下语法: - -``` -$ nvm use -``` - -例如,要使用 Node 版本 19.0.0,请运行以下命令: - -``` -$ nvm use 19.0.0 -``` - -再次检查已安装的 Node.JS 版本,这次(->)符号将指向 v19.0.0 - -##### 总结 - -在本指南中,我们演示了如何使用三种不同的方法安装 Node.js。 此外,我们还提供了几种使用 NVM 管理 Node 版本的方法。 我们希望你现在可以轻松地在 RHEL 上安装 NodeJS,并选择你想要在项目中使用的版本。 - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/how-to-install-nodejs-on-rhel/ - -作者:[James Kiarie][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.linuxtechi.com/author/james/ -[b]: https://github.com/lkxed -[1]: https://nodejs.org/en/about/ -[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/ -[3]: https://nodesource.com/ -[4]: https://github.com/nvm-sh/nvm From faec27129595393e266641f56e76b9ea2739a214 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 17 Nov 2022 10:10:52 +0800 Subject: [PATCH 2043/3123] RP @Cubik65536 https://linux.cn/article-15261-1.html --- ...6 ⭐️ Using Python in VS Code and Codium.md | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) rename {translated/tech => published}/20221109.6 ⭐️ Using Python in VS Code and Codium.md (63%) diff --git a/translated/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md b/published/20221109.6 ⭐️ Using Python in VS Code and Codium.md similarity index 63% rename from translated/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md rename to published/20221109.6 ⭐️ Using Python in VS Code and Codium.md index 84e28d5b9f..a605e375ed 100644 --- a/translated/tech/20221109.6 ⭐️ Using Python in VS Code and Codium.md +++ b/published/20221109.6 ⭐️ Using Python in VS Code and Codium.md @@ -3,18 +3,20 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15261-1.html" -在 VS Code 和 Codium 中使用 Python +在 VS Code 和 Codium 中编写 Python 程序 ====== -如果你正在寻找一个优秀的、通用的、开源的、带有 Python 集成的代码编辑器,那么你可以尝试一下 Codium。 +![][0] -在过去几年内,我有幸和中学生们一起,并带他们入门 [Python 开发][1] 和 Raspberry Pi 400。这一切都很有趣,Pi 对于学生和我来说都是一个很好的平台。我们使用了 [Code with Mu][2],并且一切都很成功。我们的 Python 技能随着经验的增长而增长,因此最近我开始寻找给这些学生提供更多东西的方法。 +> 如果你正在寻找一个优秀的、通用的、开源的、带有 Python 集成的代码编辑器,那么你可以尝试一下 Codium。 -我参与了一个 Python 课程并在课程中接触了 Microsoft 的 Visual Studio Code。我在课程中学到了很多关于如何为 Python 设置虚拟环境以及如何为 Python 编程配置 VS Code 的知识。在学习过程中,我也认识了 [Codium][3],它本质上是 VS Code,但没有 Microsoft 的品牌和遥测。 +在过去几年内,我有幸和中学生们一起,并带他们入门 [Python 开发][1] 和树莓派 400。这一切都很有趣,树莓派对于学生和我来说都是一个很好的平台。我们使用了 [Code with Mu][2],并且一切都很成功。我们的 Python 技能随着经验的增长而增长,因此最近我开始寻找给这些学生提供更多东西的方法。 + +我参与了一个 Python 课程并在课程中接触了微软的 Visual Studio Code。我在课程中学到了很多关于如何为 Python 设置虚拟环境,以及如何为 Python 编程配置 VS Code 的知识。在学习过程中,我也认识了 [Codium][3],它基本上是没有微软品牌和遥测的 VS Code。 如果你正在寻找一个优秀的、通用的、开源的、带有 Python 集成的代码编辑器,那么你可以尝试一下 Codium。下面是我在 Linux 系统上为 Python 设置 Codium 的方法。 @@ -42,23 +44,23 @@ $ sudo apt install python3.10-venv 接下来,在你的电脑上 [安装 Codium][4]。在 Linux 上,你可以下载一个包并使用你的包管理器安装它,或者 [使用 Flatpak][5]。 -在安装好 Codium 之后,打开你的应用程序或活动菜单,输入 “Code” 以启动它。 +在安装好 Codium 之后,打开你的应用程序或活动菜单,输入 `code` 以启动它。 ### 安装 VS Code Python 扩展 代码其实不是什么特别的东西。它只是一些其他应用程序(编译器或运行时)解释的纯文本。你可以在 Codium 中编写 Python 代码而不需要特殊的扩展。但是,有一个 Python 扩展可以为你带来一些方便的功能。 -点击**文件**菜单,选择**首选项**,然后选择**扩展**。在**扩展**面板中,搜索 Python IntelliSense 扩展。 +点击“文件File”菜单,选择“首选项Preferences”,然后选择“扩展Extensions”。在“扩展Extensions”面板中,搜索 Python IntelliSense 扩展。 -![VS Code 和 Codium 都有一个扩展管理器,它会在页面左侧打开,允许你安装附加模块。][6] +![VS Code 和 Codium 都有一个扩展管理器,它会在页面左侧打开,允许你安装附加模块][6] 你已经在 Codium 中设置了 Python。剩下的就是把它用起来。 ### 为 VS Code 或 Codium 设置虚拟环境 -我们可以创建一个项目目录并将其添加到 Codium 中,这样在工作时,你创建和保存的文件都将默认保存到活动项目目录。这是一种快速的管理方式,可以让你不必经常点击文件保存和打开对话框。 +我们可以创建一个项目目录,并将其添加到 Codium 中,这样在工作时,你创建和保存的文件都将默认保存到活动项目目录。这是一种快速的管理方式,可以让你不必经常点击文件保存和打开对话框。 -在你创建一个虚拟 Python 环境作为工作目录时,Codium(因为你已经安装了 Python 扩展)会检测到它。当你激活一个虚拟环境文件夹作为活动项目目录时,Codium 会自动运行使用虚拟环境所需的激活代码。 +在你创建一个虚拟 Python 环境作为工作目录时,Codium 会检测到它(因为你已经安装了 Python 扩展)。当你激活一个虚拟环境文件夹作为活动项目目录时,Codium 会自动运行使用虚拟环境所需的激活代码。 要为 Python 创建一个虚拟环境,请打开终端并输入: @@ -68,16 +70,16 @@ $ python3 -m venv ~/PythonCoding ### 添加项目目录 -在 Codium 中,点击**文件**菜单,选择**将文件夹添加到工作区**。打开你刚刚设置的虚拟环境(对我来说,是 `/home/don/PythonCoding`)。 +在 Codium 中,点击“文件File”菜单,选择“将文件夹添加到工作区Add Folder to Workspace”。打开你刚刚设置的虚拟环境(对我来说,是 `/home/don/PythonCoding`)。 现在你已经准备好写一些 Python 代码了!在你的工作区中创建一个新的 Python 文件并插入一些基本代码。当你输入时,你可能会注意到,Codium 会为环境包含的 Python 模块提供自动补齐建议。 -``` python +``` import sys print("Codium running Python " + sys.version) ``` -现在点击 Codium 窗口右上角的**运行**按钮。这会在窗口底部打开一个控制台面板显示你的代码的输出: +现在点击 Codium 窗口右上角的“运行”按钮。这会在窗口底部打开一个控制台面板显示你的代码的输出: ``` (PythonCode) sh-5.1$ /home/bogus/PythonCode/bin/python @@ -94,7 +96,6 @@ Codium running Python 3.10.6 (main…)[GCC 12.1.0] Codium 的界面比一些基本的编辑器更复杂,但它有我在学习过程中所需要的东西。如果你需要一个更专业的编辑器,或者你想从当前的编辑器切换到新的编辑器,那么试试 Codium 吧。 - -------------------------------------------------------------------------------- via: https://opensource.com/article/22/11/python-vs-code-codium @@ -102,7 +103,7 @@ via: https://opensource.com/article/22/11/python-vs-code-codium 作者:[Don Watkins][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -115,3 +116,4 @@ via: https://opensource.com/article/22/11/python-vs-code-codium [5]: https://flathub.org/apps/details/com.vscodium.codium [6]: https://opensource.com/sites/default/files/2022-10/codium-extension-python.webp [7]: https://open-vsx.org/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/17/100909py38rj0tqxlyrq0t.jpg \ No newline at end of file From 3d0435c8ea2ccaf8a95aa27393db92ae316c4760 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 17 Nov 2022 16:39:52 +0800 Subject: [PATCH 2044/3123] RP @MjSeven https://linux.cn/article-15263-1.html --- ...ommands On Remote Linux Systems Via SSH.md | 184 +++++++++--------- 1 file changed, 94 insertions(+), 90 deletions(-) rename {translated/tech => published}/20220929 Execute Commands On Remote Linux Systems Via SSH.md (63%) diff --git a/translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md b/published/20220929 Execute Commands On Remote Linux Systems Via SSH.md similarity index 63% rename from translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md rename to published/20220929 Execute Commands On Remote Linux Systems Via SSH.md index 3d9c63ec5c..7a457748e9 100644 --- a/translated/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md +++ b/published/20220929 Execute Commands On Remote Linux Systems Via SSH.md @@ -3,45 +3,48 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15263-1.html" 通过 SSH 在远程 Linux 系统上执行命令 ====== -通过安全的网络连接在远程计算机上调用命令或程序 -有一天,我正在测试如何在[将文件或目录复制到多个位置和系统时保持完整的文件权限][1]。当我想检查远程系统上的文件权限时,我必须通过 SSH 登录它并检查属性。从远程系统多次登录和注销的过程让我有点烦,我想,如果我可以**在远程 Linux 系统上通过 SSH 执行命令**就好了。 +![](https://img.linux.net.cn/data/attachment/album/202211/17/163910g9u42ssfcuk9c290.jpg) + +> 通过安全的网络连接在远程计算机上调用命令或程序。 + +有一天,我正在测试如何在 [将文件或目录复制到多个位置和系统时保持完整的文件权限][1]。当我想检查远程系统上的文件权限时,我必须通过 SSH 登录它并检查属性。从远程系统多次登录和注销的过程让我有点烦,我想,如果我可以**在远程 Linux 系统上通过 SSH 执行命令**就好了。 幸运的是,在浏览了 `ssh` 命令的手册页后,我找到了一个解决办法。 如果你想知道如何本地运行远程系统上运行命令或脚本,而不登录到远程系统,下面的内容会告诉你如何做。 -### 1. 通过 SSH 在远程 Linux 系统上执行命令 +### 1、通过 SSH 在远程 Linux 系统上执行命令 从本地系统通过 SSH 在远程系统上运行命令或脚本的典型方法是: -```bash +``` $ ssh ``` -允许我给你们举几个例子。 +允许我给你们举几个例子: -#### 1.1. 通过 SSH 在远程系统上运行单个命令 +#### 1.1、通过 SSH 在远程系统上运行单个命令 -假设你想要[查找远程 Linux 系统的内核详细信息][2]。为此,只需运行: +假设你想要 [查找远程 Linux 系统的内核详细信息][2]。为此,只需运行: -```bash +``` $ ssh sk@192.168.225.22 uname -a ``` 这里, -* sk 是远程系统的用户名, -* 192.168.225.22 是远程系统的 IP 地址, -* `"uname -a"` 是我想在远程系统上运行的命令。 +* `sk` 是远程系统的用户名, +* `192.168.225.22` 是远程系统的 IP 地址, +* `uname -a` 是我想在远程系统上运行的命令。 -**示例输出:** +示例输出: ![通过 SSH 在远程 Linux 系统上执行命令][3] @@ -59,17 +62,17 @@ $ ssh sk@192.168.225.22 "uname -a" $ ssh sk@192.168.225.22 'uname -a' ``` -如果你已经[更改了 SSH 协议的默认端口][4],只需使用 **-p** 参数指定它。 +如果你已经 [更改了 SSH 协议的默认端口][4],只需使用 `-p` 参数指定它。 -```bash +``` $ ssh -p 2200 sk@192.168.225.22 uname -a ``` -#### 1.2. 通过 SSH 在远程主机上执行多个命令 +#### 1.2、通过 SSH 在远程主机上执行多个命令 你还可以在远程主机上运行多个命令,方法是将它们放在引号中。 -```bash +``` $ ssh sk@192.168.225.22 "uname -r && lsb_release -a" ``` @@ -81,52 +84,53 @@ $ ssh sk@192.168.225.22 "uname -r ; lsb_release -a" 上面的命令将显示我的 Ubuntu 服务器的内核版本和发行版详细信息。 -**示例输出:** +示例输出: ![在 Linux 上通过 SSH 在远程主机上运行多个命令][5] 正如一位读者在下面的评论部分提到的那样,你应该用引号指定多个命令。如果不使用引号,第一个命令将在远程系统上执行,第二个命令将仅在本地计算机上执行。整个带引号的命令将按预期在远程计算机上运行。 -**提示:**了解 `"&&"` 和 `";"` 在命令中的区别: +> **提示:** 了解 `&&` 和 `;` 在命令中的区别: +> +> `&&` 操作符只有在第一个命令成功时才执行第二个命令。 +> +> 示例: +> +> ``` +> sudo apt-get update && sudo apt-get upgrade +> ``` +> +> 在上述示例中,如果第一个命令成功,才会执行 `sudo apt-get upgrade`。否则,它将不会运行。 +> +> `;` 操作符会执行第二个命令,无论第一个命令是成功还是失败。 +> +> 示例: +> +> ``` +> sudo apt-get update ; sudo apt-get upgrade +> ``` +> +> 在上述示例中,即使第一个命令失败,`sudo apt-get upgrade` 也会执行。 -`"&&"` 操作符只有在第一个命令成功时才执行第二个命令。 +#### 1.3、通过 SSH 在远程机器上调用有 sudo 权限的命令 -示例: -``` -sudo apt-get update && sudo apt-get upgrade -``` - -在上述示例中,如果第一个命令成功,才会执行 `sudo apt-get upgrade`。否则,它将不会运行。 - -`";"` 操作符会执行第二个命令,无论第一个命令是成功还是失败。 - -示例: +有些命令需要 `sudo` 权限才能运行。例如,以下命令将在我的远程系统上安装 `apache2`。 ``` -sudo apt-get update ; sudo apt-get upgrade -``` - -在上述示例中,即使第一个命令失败,`sudo apt-get upgrade` 也会执行。 - -#### 1.3. 通过 SSH 在远程机器上调用有 Sudo 权限的命令 - -有些命令需要 `"sudo"` 权限才能运行。例如,以下命令将在我的远程系统上安装 **apache2**。 - -```bash $ ssh -t sk@192.168.225.22 sudo apt install apache2 ``` -**示例输出:** +示例输出: ![通过 SSH 在远程机器上运行有 Sudo 权限的命令][6] -注意到了吗?我在上面的命令中使用了 **-t** 标志,我们需要使用它来强制进行伪终端分配。它用于在远程机器上执行任意基于屏幕的程序,这非常有用。例如,在实现菜单服务时。 +注意到了吗?我在上面的命令中使用了 `-t` 标志,我们需要使用它来强制进行伪终端分配。它用于在远程机器上执行任意基于屏幕的程序,这非常有用。例如,在实现菜单服务时。 另外,我输入了**两次**密码。第一次是远程用户的密码,以便从本地系统通过 SSH 访问远程系统,第二次是为了向远程用户赋予 sudo 权限,以便安装应用程序(在本例中为 apache2)。 让我们用以下命令检查 Apache 服务是否正在运行: -```bash +``` $ ssh -t sk@192.168.225.22 sudo systemctl status apache2 sk@192.168.225.22's password: [sudo] password for sk: @@ -149,17 +153,17 @@ Dec 19 11:08:03 ubuntuserver systemd[1]: Started The Apache HTTP Server. 同样的,我们可以通过 SSH 在本地系统上运行远程系统上的任何命令或脚本。 -#### 1.4. 通过 SSH 在远程系统上运行本地脚本 +#### 1.4、通过 SSH 在远程系统上运行本地脚本 让我们在本地系统上创建一个简单的脚本来显示关于远程系统的发行版名称、包管理和基本细节等。 -```bash +``` $ vi system_information.sh ``` 添加以下行: -```bash +``` #!/bin/bash #Name: Display System Details #Owner: OSTechNIx @@ -167,17 +171,17 @@ $ vi system_information.sh echo /etc/*_ver* /etc/*-rel*; cat /etc/*_ver* /etc/*-rel* ``` -按下 **ESC** 键,输入 **:wq** 保存退出。 +按下 `ESC` 键,输入 `:wq` 保存退出。 现在,通过 SSH 命令在远程系统上运行这个脚本: -```bash +``` $ ssh sk@192.168.225.22 'bash -s' < system_information.sh ``` -**示例输出:** +示例输出: -```bash +``` sk@192.168.225.22's password: /etc/debian_version /etc/lsb-release /etc/os-release buster/sid @@ -201,19 +205,19 @@ UBUNTU_CODENAME=bionic 如果你没有在上面的命令中指定 `bash -s`,你将获得远程系统的详细信息,但伪终端不会被分配。 -#### 1.5. 将远程主机的命令输出保存到本地主机 +#### 1.5、将远程主机的命令输出保存到本地主机 如果你希望与支持团队或同事共享远程系统上运行的命令输出,那么这非常有用。 -以下命令将通过 SSH 在远程系统运行 **"du -ah"**,并将输出保存在本地系统的 **diskusage** 文件中。 +以下命令将通过 SSH 在远程系统运行 `du -ah`,并将输出保存在本地系统的 `diskusage.txt` 文件中。 -```bash +``` $ ssh sk@192.168.225.22 du -ah > diskusage.txt ``` -然后,你可以通过使用 **cat** 命令或文本编辑器查看 `diskusage.txt` 文件来分析磁盘使用细节。 +然后,你可以通过使用 `cat` 命令或文本编辑器查看 `diskusage.txt` 文件来分析磁盘使用细节。 -```bash +``` $ cat diskusage.txt 4.0K ./.profile 4.0K ./.gnupg/private-keys-v1.d @@ -235,89 +239,89 @@ $ cat diskusage.txt 6.2M . ``` -#### 1.6. 配置 SSH 密钥认证,避免输入密码 +#### 1.6、配置 SSH 密钥认证,避免输入密码 如果你经常在远程系统上运行命令,你可能需要配置基于 SSH 密钥的身份验证,以便每次跳过密码输入。更多细节可以在以下链接中找到。 -* [Linux 系统下如何配置 SSH 密钥认证][7] +> **[Linux 系统下如何配置 SSH 密钥认证][7]** 配置了基于 SSH 密钥的认证后,我们可以通过 SSH 在远程机器上执行命令,从而不需要输入密码: -```bash +``` $ ssh sk@192.168.225.22 sudo apt update ``` -### 2. 通过 sshpass 在远程机器上运行命令 +### 2、通过 sshpass 在远程机器上运行命令 -如果你不想配置基于 SSH 密钥的身份验证,你可以使用 **sshpass** 实用程序。 +如果你不想配置基于 SSH 密钥的身份验证,你可以使用 `sshpass` 实用程序。 -#### 2.1. 什么是 sshpass? +#### 2.1、什么是 sshpass? -sshpass 是为使用键盘交互密码身份验证模式运行 ssh 而设计的,但它以非交互的方式。简单来说,sshpass 提供了非交互式的方式来验证 SSH 会话。 +`sshpass` 是为使用键盘交互密码身份验证模式运行 ssh 而设计的,但它以非交互的方式。简单来说,`sshpass` 提供了非交互式的方式来验证 SSH 会话。 -SSH 使用直接 TTY 访问来确保密码确实是由交互式键盘用户发出的。Sshpass 在一个专用 tty 中运行 ssh,让它误以为从交互用户那里获得了密码。 +SSH 使用直接 TTY 访问来确保密码确实是由交互式键盘用户发出的。`sshpass` 在一个专用 tty 中运行 SSH,让它误以为从交互用户那里获得了密码。 -#### 2.2. 在 Linux 中安装 sshpass +#### 2.2、在 Linux 中安装 sshpass -在许多 Linux 发行版的默认仓库中都有 sshpass 实用程序。例如,在 Debian、Ubuntu 及其衍生版本中,你可以使用下面的命令来安装 sshpass: +在许多 Linux 发行版的默认仓库中都有 `sshpass` 实用程序。例如,在 Debian、Ubuntu 及其衍生版本中,你可以使用下面的命令来安装 `sshpass`: -```bash +``` $ sudo apt install sshpass ``` -#### 2.3. 通过 SSH 和 sshpass 在远程机器上执行命令 +#### 2.3、通过 SSH 和 sshpass 在远程机器上执行命令 -Sshpass 可以接受 password 作为参数,或者通过环境变量读取密码,也可以从文本文件中读取密码。 +`sshpass` 可以通过参数接受密码,或者通过环境变量读取密码,也可以从文本文件中读取密码。 -**警告:**所有这些方法都是**高度不安全的**。所有系统用户都可以通过 **ps** 命令看到命令中的密码。**不建议**在生产中使用这些方法。最好使用基于密钥的身份验证。 +**警告:** 所有这些方法都是 **高度不安全的**。所有系统用户都可以通过 `ps` 命令看到命令中的密码。**不建议**在生产中使用这些方法。最好使用基于密钥的身份验证。 让我们看看每种方法的示例。 -**将密码作为参数提供:** +##### 将密码作为参数提供 将密码作为参数提供,使用 `-p` 选项,如下所示: -```bash +``` $ sshpass -p ssh remoteuser@ip-address ``` -**示例:** +示例输出: -```bash +``` $ sshpass -p ubuntu ssh ostechnix@192.168.1.30 uname -a ``` 其中, -* -p ubuntu - 提供远程系统的密码。 -* ostechnix@192.168.1.30 - 远程系统用户名和地址。 -* 'uname -a' - 要在远程计算机上执行的命令。 +* `-p ubuntu` - 提供远程系统的密码。 +* `ostechnix@192.168.1.30` - 远程系统用户名和地址。 +* `uname -a` - 要在远程计算机上执行的命令。 -**示例输出:** +示例输出: -```bash +``` Linux Ubuntu22CT 5.15.60-1-pve #1 SMP PVE 5.15.60-1 (Mon, 19 Sep 2022 17:53:17 +0200) x86_64 x86_64 x86_64 GNU/Linux ``` -**密码作为环境变量提供:** +##### 密码作为环境变量提供 -在这个方法中,我们声明一个名为 **SSHPASS** 的环境变量,用远程环境的密码作为其值。然后我们使用 **-e** 标志,如下所示: +在这个方法中,我们声明一个名为 `SSHPASS` 的环境变量,用远程环境的密码作为其值。然后我们使用 `-e` 标志,如下所示: -```bash +``` $ SSHPASS=ubuntu sshpass -e ssh ostechnix@192.168.1.30 uname -a ``` -**从文本文件中读取密码:** +##### 从文本文件中读取密码 -使用 echo 命令在文本文件中追加密码: +使用 `echo` 命令在文本文件中追加密码: -```bash +``` $ echo "ubuntu" > mypassword.txt ``` -现在,将密码文件传递给带有 **-f** 标志的 sshpass,如下所示: +现在,将密码文件传递给带有 `-f` 标志的 `sshpass`,如下所示: -```bash +``` $ sshpass -f mypassword.txt ssh ostechnix@192.168.1.30 uname -a ``` @@ -325,7 +329,7 @@ $ sshpass -f mypassword.txt ssh ostechnix@192.168.1.30 uname -a ### 总结 -在本教程中,我们学习了一些通过安全的网络连接在远程计算机上调用命令或程序的方法。在所有的方法中,sshpass 方法是最不安全的,建议用户避免在生产系统中使用它。 +在本教程中,我们学习了一些通过安全的网络连接在远程计算机上调用命令或程序的方法。在所有的方法中,`sshpass` 方法是最不安全的,建议用户避免在生产系统中使用它。 -------------------------------------------------------------------------------- @@ -334,7 +338,7 @@ via: https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/ 作者:[sk][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 60fbece7ae6d0ebf22326c9da461ca492eb3da14 Mon Sep 17 00:00:00 2001 From: littlebirdnest <63171986+littlebirdnest@users.noreply.github.com> Date: Thu, 17 Nov 2022 05:07:51 -0500 Subject: [PATCH 2045/3123] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atest LibreOffice in Ubuntu and other Linux.md | 134 ------------------ ...atest LibreOffice in Ubuntu and other Linux.md | 134 ++++++++++++++++++ 2 files changed, 134 insertions(+), 134 deletions(-) delete mode 100644 sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md create mode 100644 translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md diff --git a/sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md b/sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md deleted file mode 100644 index 79b939b88d..0000000000 --- a/sources/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md +++ /dev/null @@ -1,134 +0,0 @@ -[#]: subject: "How to Install Latest LibreOffice in Ubuntu and other Linux" -[#]: via: "https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Latest LibreOffice in Ubuntu and other Linux -====== - -**Here’s a quick guide on how to install the latest LibreOffice version in Ubuntu and other Linux.** - -The free and open-source office suite LibreOffice comes in two versions. The Community and Enterprise versions. The “community” version is for early adopters who want the latest bleeding-edge software tech. And the “enterprise” version is more stable and may not include all the latest features, but it is ideal for the production environment and professional work. - -### Install Latest LibreOffice in Ubuntu and other Linux - -#### 1. Remove pre-installed LibreOffice - -The Ubuntu operating system and other Linux ideally come with pre-installed LibreOffice. That might not be the latest one because of the distribution-specific release cycles. However, before you do a fresh install, you can remove the stock version of LibreOffice in Ubuntu and its related derivatives via the below command: - -Open a terminal and run the below commands to remove the installed LibreOffice in Ubuntu and related distributions. For others, you can use your distro’s package manager to remove it. - -``` -sudo apt remove –purge libreoffice* -sudo apt autoclean -sudo apt autoremove -``` - -Do a reboot to ensure everything is okay (though you could skip this step). - -#### 2. Install via download - -Go to the [official download page][1]. And download the “Fresh” version by choosing the type from the drop-down. For Ubuntu and other derivatives, choose the .deb file. - -![LibreOffice download and install from official website][2] - -After downloading, extract the files; you should see all the packages below. - -![Extracted LibreOffice DEB files][3] - -Now, open a terminal at the extracted files’ exact location and run the commands below in sequence. Firstly, you need to install the `ure` package. The second is the `core` package and followed by all the basic packages. Finally, the main `LibreOffice` packages. A typical set of commands are present below. You need to change the version numbers for other releases. - -``` -sudo dpkg -i libobasis7.0-ure_7.0.4.2-2_amd64.deb -sudo dpkg -i libobasis7.0-core_7.0.4.2-2_amd64.deb -sudo dpkg -i libobasis7.0* -``` - -``` -sudo dpkg -i libreoffice7.0* -``` - -If you are using Fedora Linux or Red Hat Linux, use the [dnf command][4] to install in the same order as mentioned above. - -![Install LibreOffice via dpkg][5] - -Wait for the installation to finish. After completion, you can find LibreOffice via the application menu. - -![Latest LibreOffice in Menu][6] - -This should complete the steps to install the latest LibreOffice. If you don’t want to follow the above method, see the below options. - -#### Install via PPA - -If you like to install it via PPA, then follow the below steps. Make sure to remove the existing LibreOffice in step 1 above. - -``` -sudo add-apt-repository ppa:libreoffice/ppa -``` - -And finally, run the below commands to install the latest LibreOffice 5.4 series from this official PPA. - -``` -sudo apt update -sudo apt install libreoffice -``` - -Once installed, you can launch LibreOffice via Dash search. - -![LibreOffice 5.4.2 Running in Ubuntu][7] - -#### Install via Snap and Flatpak - -If you are a Linux user, you may try the LibreOffice self-contained executable, which runs in a sandbox like Snap or Flatpak. - -- To install LibreOffice via [Flatpak][8], visit [this page][9] to set it up and then run the below command to install it. - -``` -flatpak install flathub org.libreoffice.LibreOffice -``` - -- Similarly, for the [Snap version][10], use the following command to install. - -``` -sudo snap install libreoffice -``` - -### How can I upgrade to the latest LibreOffice version? - -If you do not want to remove LibreOffice but want to upgrade to the latest version, please read our complete guide below. - -> [Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows][11] - -![“Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows” — DebugPoint.com][12] - -Feel free to comment if you are having trouble installing the latest LibreOffice. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ - -作者:[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.libreoffice.org/download/download/ -[2]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-download-and-install-from-official-website.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2017/10/Extracted-LibreOffice-DEB-files.jpg -[4]: https://www.debugpoint.com/dnf-commands-examples/ -[5]: https://www.debugpoint.com/wp-content/uploads/2017/10/Install-LibreOffice-via-dpkg.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2017/10/Latest-LibreOffice-in-Menu.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-5.4.2-Running-in-Ubuntu-.png -[8]: https://flathub.org/apps/details/org.libreoffice.LibreOffice -[9]: https://flatpak.org/setup/ -[10]: https://snapcraft.io/libreoffice -[11]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ -[12]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/embed/#?secret=KINquNxuYI#?secret=FGij1s6Mfc diff --git a/translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md b/translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md new file mode 100644 index 0000000000..3eaae1e4ba --- /dev/null +++ b/translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md @@ -0,0 +1,134 @@ +[#]: subject: "How to Install Latest LibreOffice in Ubuntu and other Linux" +[#]: via: "https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "littlebirdnest" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在Ubuntu和其他Linux中安装最新的Libreoffice +====== + +**在Ubuntu和其他Linux中安装最新的Libreoffice版本的快速指南。** + +免费和开源的办公套件Libreoffice有两个版本。社区版本和企业版本。社区版本主要是给前期的用户尝鲜,有较前沿的技术. 企业版本较为稳定但不会包括最新的功能,是生产环境和专业工作的最佳选择 + +### 在Ubuntu和其他Linux中安装最新的Libreoffice + +#### 1.删除预安装的libreoffice + +ubuntu和其他linux,带预安装的Libreoffice。这可能不是最新的,因为发行版的发行周期是之前的版本.但是,在进行新安装之前,您可以通过以下命令删除Ubuntu及其相关的旧版本: + +打开一个终端并运行以下命令,以删除Ubuntu和相关分布中的已安装的Libreoffice。对于其他人,您可以使用Distro的软件包管理器将其删除。 + +``` +sudo apt remove –purge libreoffice* +sudo apt autoclean +sudo apt autoremove +``` + +然后重启以确保一切正常(你也可以跳过) + +#### 2. 从网站上下载安装 + +前往[官方下载页面][1]. 并通过从下拉菜单中选择类型下载“Fresh”版本。对于Ubuntu和其他导数,请选择.deb文件。 + +![LibreOffice download and install from official website][2] + +下载后,提取文件;您应该看到下面的所有软件包。 + +![Extracted LibreOffice DEB files][3] + +下载解压后y,在提取文件的位置打开终端并按顺序运行以下命令。首先,你需要安装 ure 包。第二个是核心包,然后是所有基本包。最后,就是主要的 LibreOffice 软件包。下面是主要一些的命令。但是您需要更具体版本的版本号。 + +``` +sudo dpkg -i libobasis7.0-ure_7.0.4.2-2_amd64.deb +sudo dpkg -i libobasis7.0-core_7.0.4.2-2_amd64.deb +sudo dpkg -i libobasis7.0* +``` + +``` +sudo dpkg -i libreoffice7.0* +``` + +如果您使用的是 Fedora Linux 或 Red Hat Linux,请按照上述相同的顺序使用[dnf 命令][4] + +![Install LibreOffice via dpkg][5] + +等待安装完成。完成后,您可以通过应用程序菜单找到 LibreOffice。 + +![Latest LibreOffice in Menu][6] + +这应该完成安装最新 LibreOffice 的步骤。如果您不想遵循上述方法,请参阅以下选项。 + +#### 通过 PPA 安装 + +如果您想通过 PPA 安装它,请按照以下步骤操作。确保在上面的第 1 步中删除现有的 LibreOffice。 + +``` +sudo add-apt-repository ppa:libreoffice/ppa +``` + +最后,运行以下命令从这个官方 PPA 安装最新的 LibreOffice 5.4 系列。 + +``` +sudo apt update +sudo apt install libreoffice +``` + +安装后,您可以通过 Dash 搜索启动 LibreOffice。 + +![LibreOffice 5.4.2 Running in Ubuntu][7] + +#### 通过 Snap 和 Flatpak 安装 + +如果您是 Linux 用户,您可以尝试 LibreOffice 独立的可执行文件,它在 Snap 或 Flatpak 等沙箱中运行。 + +- 要通过[Flatpak][8]安装 LibreOffice ,请访问this page][9] 进行设置,然后运行以下命令进行安装 + +``` +flatpak install flathub org.libreoffice.LibreOffice +``` + +- 同样,对于[Snap version][10],使用以下命令进行安装。 + +``` +sudo snap install libreoffice +``` + +### 如何升级到最新的 LibreOffice 版本? + +如果您不想删除 LibreOffice 但想升级到最新版本,请阅读我们下面的完整指南。 + +> [在 Ubuntu、Linux Mint 和 Windows 中升级到最新的 LibreOffice[11] + +![“在 Ubuntu、Linux Mint 和 Windows 中升级到最新的 LibreOffice” — DebugPoint.com][12] + +如果您在安装最新的 LibreOffice 时遇到问题,请随时发表评论。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[littlebirdnest](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.libreoffice.org/download/download/ +[2]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-download-and-install-from-official-website.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2017/10/Extracted-LibreOffice-DEB-files.jpg +[4]: https://www.debugpoint.com/dnf-commands-examples/ +[5]: https://www.debugpoint.com/wp-content/uploads/2017/10/Install-LibreOffice-via-dpkg.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2017/10/Latest-LibreOffice-in-Menu.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-5.4.2-Running-in-Ubuntu-.png +[8]: https://flathub.org/apps/details/org.libreoffice.LibreOffice +[9]: https://flatpak.org/setup/ +[10]: https://snapcraft.io/libreoffice +[11]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ +[12]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/embed/#?secret=KINquNxuYI#?secret=FGij1s6Mfc From dc9d995c18b8aff0756c980104b64a2b7d324e9b Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Fri, 18 Nov 2022 08:43:03 +0800 Subject: [PATCH 2046/3123] Update 20210618 5 more reasons to run Kubernetes in your Linux homelab.md --- ...18 5 more reasons to run Kubernetes in your Linux homelab.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md index dd5ec7ed2c..6820507282 100644 --- a/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md +++ b/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/kubernetes-linux-homelab) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chai001125) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From f2997dac5a6352c224ebbea204487eb239c81e0c Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 18 Nov 2022 08:44:12 +0800 Subject: [PATCH 2047/3123] translated --- ...022 What-s new in Fedora Workstation 37.md | 96 ------------------- ...022 What-s new in Fedora Workstation 37.md | 95 ++++++++++++++++++ 2 files changed, 95 insertions(+), 96 deletions(-) delete mode 100644 sources/tech/20221022 What-s new in Fedora Workstation 37.md create mode 100644 translated/tech/20221022 What-s new in Fedora Workstation 37.md diff --git a/sources/tech/20221022 What-s new in Fedora Workstation 37.md b/sources/tech/20221022 What-s new in Fedora Workstation 37.md deleted file mode 100644 index c18faec875..0000000000 --- a/sources/tech/20221022 What-s new in Fedora Workstation 37.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "What’s new in Fedora Workstation 37" -[#]: via: "https://fedoramagazine.org/whats-new-fedora-37-workstation/" -[#]: author: "Merlin Cooper https://fedoramagazine.org/author/mxanthropocene/" -[#]: collector: "lujun9972" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What’s new in Fedora Workstation 37 -====== - -![][1] - -Fedora Workstation 37 is the latest version of the Fedora Project’s desktop operating system, made by a worldwide community dedicated to pushing forward innovation in open source. This article describes some of the new user-facing features in Fedora Workstation 37. Upgrade today from GNOME Software, or by using _[dnf system-upgrade][2]_ in your favourite terminal emulator! - -### GNOME 43 - -Fedora Workstation 37 features the latest version of the GNOME desktop environment which sees more core applications ported to GTK 4, user interface tweaks, and performance tune-ups. Check out the [GNOME 43 release notes][3] for more information! - -#### Redesigned Quick Settings menu - -![No need to open Settings just to change to and from Dark Mode][4] - -The new Quick Settings menu offers more control and convenience. You can now easily switch your Wi-Fi network in the menu instead of being taken to a full-screen dialogue box, change between default and dark modes, and enable Night Light without opening the Settings app. A convenient button for taking screenshots and screencasts is also now present. - -#### Core applications - -The GNOME core applications included in Fedora Workstation 37 have seen a round of tweaks and improvements. - - * Files has been ported to GTK 4, and the user interface has seen many improvements. Here are just some of them: - * It is now adaptive – meaning it automatically adjusts to a narrower size, making better use of the available space. - * The list view has been re-architected to make rubber-band selections easier. - * The “Properties” and “Open With…” dialogues have been redesigned. - - - -![Rubber-band selection in Files 43][5] - - * Calendar features a new sidebar that shows your upcoming events at a glance. It, along with Contacts, now feature adaptive user interfaces. - * Characters now shows you different skin tone, hair colour, and gender options for emoji. - * The package source selector in Software has been redesigned and moved to a more visible location. - * Maps has been ported to GTK 4. - * Settings includes a new Device Security panel, allowing you to easily see the hardware security features your devices offers – or lacks! - - - -![Uh oh!][6] - -### New supplemental default wallpapers - -Fedora Workstation 37 ships with a new set of supplemental wallpapers. [See how they were made here!][7] - -![The six new wallpapers come in both light and dark variants][8] - -### Under-the-hood changes throughout Fedora Linux 37 - -Fedora Linux 37 features many under-the-hood changes. Here are some notable ones: - - * The Raspberry Pi 4 single-board computer is now officially supported, including 3D acceleration! - * New installs on BIOS systems will use the GPT disk layout instead of the legacy MBR layout. The installer images will also now use GRUB instead of syslinux to boot on BIOS systems. - * If you disable and then re-enable SELinux, or run the _fixfiles onboot_ command, the file system relabelling processes will now be done in parallel, allowing for a significant speed boost. - * The default fonts for Persian has been changed from DejaVu and Noto Sans Arabic to Vazirmatn, providing a more consistent experience for those who use Fedora Linux in Persian. - - - -### Also check out… - -Cool happenings throughout the Fedora Project! - - * Fedora CoreOS and Fedora Cloud Base have been promoted to Edition status! - * Preview installer images with a new GUI for Anaconda, the Fedora Linux system installer, will become available in about a week. An article will be published with more details, so watch this space! - - - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/whats-new-fedora-37-workstation/ - -作者:[Merlin Cooper][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/mxanthropocene/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/10/f37-whats_new-816x345.jpg -[2]: https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/ -[3]: https://release.gnome.org/43/ -[4]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/ezgif.com-gif-maker1.gif -[5]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/ezgif.com-gif-maker2.gif -[6]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/Screenshot-from-2022-09-16-20-25-28-1024x708.png -[7]: https://blog.linuxgrrl.com/2022/06/27/abstract-wallpapers-in-blender-using-geometry-nodes/ -[8]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/dfg-1-1024x679.png diff --git a/translated/tech/20221022 What-s new in Fedora Workstation 37.md b/translated/tech/20221022 What-s new in Fedora Workstation 37.md new file mode 100644 index 0000000000..f92a77c09b --- /dev/null +++ b/translated/tech/20221022 What-s new in Fedora Workstation 37.md @@ -0,0 +1,95 @@ +[#]: subject: "What’s new in Fedora Workstation 37" +[#]: via: "https://fedoramagazine.org/whats-new-fedora-37-workstation/" +[#]: author: "Merlin Cooper https://fedoramagazine.org/author/mxanthropocene/" +[#]: collector: "lujun9972" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora Workstation 37 中的新功能 +====== + +![][1] + +Fedora Workstation 37 是 Fedora Project 桌面操作系统的最新版本,由致力于推动开源创新的全球社区开发。本文介绍了 Fedora Workstation 37 中一些面向用户的新功能。今天从 GNOME Software 升级,或者在你最喜欢的终端模拟器中使用 _[dnf system-upgrade][2]_! + +### GNOME 43 + +Fedora Workstation 37 具有最新版本的 GNOME 桌面环境,其中包含更多移植到 GTK 4 的核心应用、用户界面调整和性能调整。查看 [GNOME 43 发行说明][3]了解更多信息! + +#### 重新设计的快速设置菜单 + +![无需打开设置即可切换深色模式][4] + +新的快速设置菜单提供更多控制和便利。你现在可以在菜单中轻松切换你的 Wi-Fi 网络,而不用进入全屏对话框,在默认模式和深色模式之间切换,以及在不打开“设置”应用的情况下启用夜灯。现在还提供了一个方便的截屏和截屏视频按钮。 + +#### 核心应用 + +Fedora Workstation 37 中包含的 GNOME 核心应用已经进行了一轮调整和改进。 + + * 文件已移植到 GTK 4,并且用户界面有许多改进。这里只是其中的一些: + * 它现在是自适应的,这意味着它会自动调整到更窄的尺寸,从而更好地利用可用空间。 + * 列表视图已重新设计,使橡皮筋选择更容易。 + * 重新设计了 “Properties” 和 “Open With…” 对话框。 + + + +![Files 43 中的橡皮筋选择][5] + + * 日历有一个新的边栏,可以一目了然地显示即将发生的事件。它与联系人一起,现在具有自适应用户界面。 + * 角色现在会向你显示不同的肤色、头发颜色和表情符号的性别选项。 + * Software 中的包源选择器已重新设计并移至更显眼的位置。 + * 地图已移植到 GTK 4。 + * 设置包括一个新的设备安全面板,让你可以轻松查看你的设备提供或缺少的硬件安全功能! + + + +![呃哦!][6!] + +### 新的补充默认壁纸 + +Fedora Workstation 37 附带一组新的补充壁纸。 [在这里看看它们是如何制作的!][7] + +![六张新壁纸有浅色和深色两种][8] + +### Fedora Linux 37 的底层变化 + +Fedora Linux 37 具有许多底层更改。以下是一些值得注意的: + + * 现已正式支持树莓派 4 单板机,包括 3D 加速! + * BIOS 系统上的新安装将使用 GPT 磁盘布局,而不是传统的 MBR 布局。安装程序镜像现在还将使用 GRUB 而不是 syslinux 在 BIOS 系统上引导。 + * 如果你禁用然后重新启用 SELinux,或运行 _fixfiles onboot_ 命令,文件系统重新标记过程现在将并行完成,从而显着提高速度。 + * 波斯语的默认字体已从 DejaVu 和 Noto Sans Arabic 更改为 Vazirmatn,为在波斯语中使用 Fedora Linux 的用户提供更一致的体验。 + + +### 还有这些... + +Fedora 项目中发生的很酷的事情! + + * Fedora CoreOS 和 Fedora Cloud Base 已升级为 Edition 状态! + * Fedora Linux 系统安装程序 Anaconda 的带有新 GUI 的预览安装程序镜像将在大约一周内可用。我将发布一篇文章以提供更多详细信息,敬请关注此空间! + + + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/whats-new-fedora-37-workstation/ + +作者:[Merlin Cooper][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/mxanthropocene/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/10/f37-whats_new-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/ +[3]: https://release.gnome.org/43/ +[4]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/ezgif.com-gif-maker1.gif +[5]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/ezgif.com-gif-maker2.gif +[6]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/Screenshot-from-2022-09-16-20-25-28-1024x708.png +[7]: https://blog.linuxgrrl.com/2022/06/27/abstract-wallpapers-in-blender-using-geometry-nodes/ +[8]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/09/dfg-1-1024x679.png From 8e8a42881bec273d97ba531795aeb75fd3d33148 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 18 Nov 2022 08:48:44 +0800 Subject: [PATCH 2048/3123] translating --- ...️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md b/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md index 2867e669bb..b44c292758 100644 --- a/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md +++ b/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/pantheon-arch-linux-install/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 96554d88a14cc68d864b06264cfb28ab68b7bbbc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 18 Nov 2022 09:57:59 +0800 Subject: [PATCH 2049/3123] RP @chai001125 https://linux.cn/article-15264-1.html --- ...rity properties on Linux using checksec.md | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) rename {translated/tech => published}/20210607 Identify security properties on Linux using checksec.md (75%) diff --git a/translated/tech/20210607 Identify security properties on Linux using checksec.md b/published/20210607 Identify security properties on Linux using checksec.md similarity index 75% rename from translated/tech/20210607 Identify security properties on Linux using checksec.md rename to published/20210607 Identify security properties on Linux using checksec.md index 58b32c4720..385303b6b3 100644 --- a/translated/tech/20210607 Identify security properties on Linux using checksec.md +++ b/published/20210607 Identify security properties on Linux using checksec.md @@ -3,27 +3,27 @@ [#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) [#]: collector: (lujun9972) [#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15264-1.html) 在 Linux 上使用 Checksec 识别二进制文件的安全属性 ====== ->这篇文章能让你了解如何使用 Checksec ,来识别一个可执行文件的安全属性,了解安全属性的含义,并知道如何使用它们。 +> 这篇文章能让你了解如何使用 Checksec ,来识别一个可执行文件的安全属性,了解安全属性的含义,并知道如何使用它们。 -![Target practice][1] +![][0] -编译源代码会生成一个二进制文件(即 .o 文件)。在编译期间,你可以向 `gcc` 编译器提供 标志 flags ,以启用或禁用二进制文件的某些属性,这些属性与安全性相关。 +编译源代码会生成一个二进制文件(LCTT 译注:即 `.o` 文件)。在编译期间,你可以向 `gcc` 编译器提供 标志 flags ,以启用或禁用二进制文件的某些属性,这些属性与安全性相关。 Checksec 是一个漂亮的小工具,同时它也是一个 shell 脚本。Checksec 可以识别编译时构建到二进制文件中的安全属性。编译器可能会默认启用一些安全属性,你也可以提供特定的标志,来启用其他的安全属性。 本文将介绍如何使用 Checksec ,来识别二进制文件的安全属性,包括: 1. Checksec 在查找有关安全属性的信息时,使用了什么**底层的命令** - 2. 在将源代码编译成二进制文件时,如何使用 GNU 编译器套件 GNU Compiler Collection (即 GCC) ,来**启用安全属性**。 + 2. 在将源代码编译成二进制文件时,如何使用 GNU 编译器套件 GNU Compiler Collection (即 GCC)来**启用安全属性**。 -## 安装 checksec +### 安装 checksec 要在 Fedora 和其他基于 RPM 的 Linux 系统上,安装 Checksec,请使用以下命令: @@ -37,7 +37,7 @@ $ sudo dnf install checksec $ sudo apt install checksec ``` -## shell 脚本 +### shell 脚本 在安装完 Checksec 后,能够发现 Checksec 是一个**单文件**的 shell 脚本,它位于 `/usr/bin/checksec`,并且这个文件挺大的。Checksec 的一个优点是你可以通过快速通读这个 shell 脚本,从而了解 Checksec 的执行原理、明白所有能查找有关二进制文件或可执行文件的安全属性的**系统命令**: @@ -49,7 +49,7 @@ $ wc -l /usr/bin/checksec 2111 /usr/bin/checksec ``` -以下的命令展示了如何对你每天都会使用的:`ls` 命令的二进制文件,进行 Checksec。Checksec 命令的格式是:`checksec --file=`,后面再跟上二进制文件的绝对路径: +以下的命令展示了如何对你每天都会使用的:`ls` 命令的二进制文件运行 Checksec。Checksec 命令的格式是:`checksec --file=`,后面再跟上二进制文件的绝对路径: ``` $ checksec --file=/usr/bin/ls @@ -61,9 +61,9 @@ Full RELRO      Canary found      NX enabled    PIE enabled     No RPA Checksec 输出的第一行提供了二进制文件的各种安全属性,例如 `RELRO`、`STACK CANARY`、`NX` 等(我将在后文进行详细解释)。第二行打印出给定二进制文件(本例中为 `ls`)在这些安全属性的状态(例如,`NX enabled` 表示为堆栈中的数据没有执行权限)。 -## 示例二进制文件 +### 示例二进制文件 -在本文中,我将使用以下的“hello world”程序作为示例二进制文件。 +在本文中,我将使用以下的 “hello world” 程序作为示例二进制文件。 ``` #include @@ -96,13 +96,14 @@ RELRO           STACK CANARY      NX            PIE           Partial RELRO   No canary found   NX enabled    No PIE          No RPATH   No RUNPATH   85) Symbols       No    0       0./hello $ ``` -LCTT 译注:在我的 Ubuntu 22.04 虚拟机,使用 11.3.0 版本的 gcc,结果与上述不太相同,利用默认参数进行编译,会得到 RELRO、PIE、NX 保护是全开的情况。 -## 更改 Checksec 的输出格式 +(LCTT 译注:在我的 Ubuntu 22.04 虚拟机,使用 11.3.0 版本的 `gcc`,结果与上述不太相同,利用默认参数进行编译,会得到 RELRO、PIE、NX 保护是全开的情况。) + +### 更改 Checksec 的输出格式 Checksec 允许自定义各种输出格式,你可以使用 `--output` 来自定义输出格式。我将选择的输出格式是 JSON 格式,并将输出结果通过管道传输到 `jq` 实用程序,来得到漂亮的打印。 -接下来,确保你已安装好了 [`jq`][3],因为本教程会使用 `jq`,从 Checksec 的输出结果中,用 `grep` 来快速得到某一特定的安全属性状态,并报告该安全属性是否启动(启动为 `yes`,未启动为 `no`): +接下来,确保你已安装好了 [jq][3],因为本教程会使用 `jq` 从 Checksec 的输出结果中,用 `grep` 来快速得到某一特定的安全属性状态,并报告该安全属性是否启动(启动为 `yes`,未启动为 `no`): ``` $ checksec --file=./hello --output=json | jq @@ -122,13 +123,13 @@ $ checksec --file=./hello --output=json | jq } ``` -## 看一看所有的安全属性 +### 看一看所有的安全属性 上面的二进制文件 `hello` 包括几个安全属性。我将该二进制文件与 `ls` 的二进制文件进行比较,以检查启用的安全属性有何不同,并解释 Checksec 是如何找到此信息。 -### 1\. 符号(Symbol) +#### 1、符号(Symbol) -我先从简单的讲起。在编译期间,某些 符号 symbols 包含在二进制文件中,这些符号主要用作于调试。开发软件时,需要用到这些符号,来调试和修复 bug。 +我先从简单的讲起。在编译期间,某些 符号 symbols 包含在二进制文件中,这些符号主要用作于调试。开发软件时,需要用到这些符号,来调试和修复错误。 这些符号通常会从供用户普遍使用的最终二进制文件中删除。删除这些符号不会影响到二进制文件的执行。删除符号通常是为了节省空间,因为一旦符号被删除了,二进制文件就会稍微小一些。在闭源或专有软件中,符号通常都会被删除,因为把这些符号放在二进制文件中,可以很容易地推断出软件的内部工作原理。 @@ -160,9 +161,9 @@ $ bash -x /usr/bin/checksec --file=./hello 如果你滚动浏览上述的输出结果的话,你会看到 `echo_message` 后面有各个安全属性的类别。以下显示了 Checksec 检测二进制文件是否包含符号时,运行的底层命令: ``` -\+ readelf -W --symbols ./hello -\+ grep -q '\\.symtab' -\+ echo_message '\033[31m96) Symbols\t\033[m  ' Symbols, ' symbols="yes"' '"symbols":"yes",' ++ readelf -W --symbols ./hello ++ grep -q '\\.symtab' ++ echo_message '\033[31m96) Symbols\t\033[m  ' Symbols, ' symbols="yes"' '"symbols":"yes",' ``` 上面的输出显示,Checksec 利用 `readelf`,来读取二进制文件,并提供一个特殊 `--symbols` 标志,来列出二进制文件中的所有符号。然后它会查找一个特殊值:`.symtab`,它提供了所能找到的条目的计数(即符号的个数)。你可以在上面编译的测试二进制文件 `hello` 上,尝试以下命令,得到与 Checksec 查看二进制文件类似的符号信息: @@ -171,50 +172,48 @@ $ bash -x /usr/bin/checksec --file=./hello $ readelf -W --symbols ./hello $ readelf -W --symbols ./hello | grep -i symtab ``` -LCTT 译注:也可以通过直接查看 `/usr/bin/checksec` 下的 Checksec 源文件。 -## 如何删除符号 +(LCTT 译注:也可以通过直接查看 `/usr/bin/checksec` 下的 Checksec 源文件。) + +##### 如何删除符号 你可以在编译后或编译时删除符号。 * **编译后:** 在编译后,你可以使用 `strip`,手动地来删除二进制文件的符号。删除后,使用 `file` 命令,来检验是否还有符号,现在显示 `stripped`,表明二进制文件 `hello` 无符号了: - ``` - $ gcc hello.c -o hello - $ - $ file hello - hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, not stripped - $ - $ strip hello - $ - $ file hello - hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, stripped - $ - ``` + ``` + $ gcc hello.c -o hello + $ + $ file hello + hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, not stripped + $ + $ strip hello + $ + $ file hello + hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, stripped + $ + ``` + * **编译时:** 你也可以在编译时,用 `-s` 参数让 gcc 编译器帮你自动地删除符号: -## 如何在编译时删除符号 + ``` + $ gcc -s hello.c -o hello + $ + $ file hello + hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=247de82a8ad84e7d8f20751ce79ea9e0cf4bd263, for GNU/Linux 3.2.0, stripped + $ + ``` -你也可以在编译时,用 `-s` 参数让 gcc 编译器帮你自动地删除符号: + 重新运行 Checksec,你可以看到现在二进制文件 `hello` 的 `symbols` 这一属性的值是`no`: -``` -$ gcc -s hello.c -o hello -$ -$ file hello -hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=247de82a8ad84e7d8f20751ce79ea9e0cf4bd263, for GNU/Linux 3.2.0, stripped -$ -``` + ``` + $ checksec --file=./hello --output=json | jq | grep symbols +     "symbols": "no", + $ + ``` -重新运行 Checksec,你可以看到现在二进制文件 `hello` 的 `symbols` 这一属性的值是`no`: +#### 2、Canary(堆栈溢出哨兵) -``` -$ checksec --file=./hello --output=json | jq | grep symbols -    "symbols": "no", -$ -``` - -### 2\. Canary(堆栈溢出哨兵) - -Canary 是放置在缓冲区和_栈_ stack 上的控制数据之间的已知值,它用于监视缓冲区是否溢出。当应用程序执行时,会为其分配两种内存,其中之一就是 _栈_。栈是一个具有两个操作的数据结构:第一个操作 `push`,将数据压入堆栈;第二个操作 `pop`,以后进先出的顺序从栈中弹出数据。恶意的输入可能会导致栈溢出,或使用特制的输入破坏栈,并导致程序崩溃: +Canary 是放置在缓冲区和 stack 上的控制数据之间的已知值,它用于监视缓冲区是否溢出。当应用程序执行时,会为其分配两种内存,其中之一就是 _栈_。栈是一个具有两个操作的数据结构:第一个操作 `push`,将数据压入堆栈;第二个操作 `pop`,以后进先出的顺序从栈中弹出数据。恶意的输入可能会导致栈溢出,或使用特制的输入破坏栈,并导致程序崩溃: ``` $ checksec --file=/bin/ls --output=json | jq | grep canary @@ -231,7 +230,7 @@ Checksec 是如何确定二进制文件是否启用了 Canary 的呢?使用上 $ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie' ``` -#### 启用 Canary +##### 启用 Canary 为了防止栈溢出等情况,编译器提供了 `-stack-protector-all` 标志,它向二进制文件添加了额外的代码,来检查缓冲区是否溢出: @@ -251,9 +250,9 @@ $ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie' $ ``` -### 3\. 位置无关可执行文件(PIE) +#### 3、位置无关可执行文件(PIE) -PIE(Position-Independent Executable)的意思是与位置无关的可执行文件。顾名思义,它指的是放置在内存中某处执行的代码,不管其绝对地址的位置,即代码段、数据段地址随机化(ASLR): +位置无关可执行文件Position-Independent Executable(PIE),顾名思义,它指的是放置在内存中某处执行的代码,不管其绝对地址的位置,即代码段、数据段地址随机化(ASLR): ``` $ checksec --file=/bin/ls --output=json | jq | grep pie @@ -263,7 +262,7 @@ $ checksec --file=./hello --output=json | jq | grep pie     "pie": "no", ``` -通常,PIE 仅对 libraries 启用,并不对独立命令行程序启用 PIE。在下面的输出中,`hello` 显示为 `LSB executable`,而 `libc` 标准库 (`.so`) 文件被标记为 `LSB shared object`: +通常,PIE 仅对 libraries 启用,并不对独立命令行程序启用 PIE。在下面的输出中,`hello` 显示为 `LSB executable`,而 `libc` 标准库(`.so`) 文件被标记为 `LSB shared object`: ``` $ file hello @@ -280,14 +279,14 @@ $ readelf -W -h ./hello | grep EXEC   Type:                              EXEC (Executable file) ``` -如果你在共享库上尝试相同的命令,你将看到 `DYN`,而不是`EXEC`: +如果你在共享库上尝试相同的命令,你将看到 `DYN`,而不是 `EXEC`: ``` $ readelf -W -h /lib64/libc-2.32.so | grep DYN   Type:                              DYN (Shared object file) ``` -#### 启用 PIE +##### 启用 PIE 要在测试程序 `hello.c` 上启用 PIE,请在编译时,使用以下命令: @@ -303,7 +302,7 @@ $ checksec --file=./hello --output=json | jq | grep pie $ ``` -现在,应该会显示为 PIE 可执行 pie executable ,其类型从 `EXEC` 更改为 `DYN`: +现在,应该会显示为 “ PIE 可执行 pie executable ”,其类型从 `EXEC` 更改为 `DYN`: ``` $ file hello @@ -313,7 +312,7 @@ $ readelf -W -h ./hello | grep DYN   Type:                              DYN (Shared object file) ``` -### 4\. NX(堆栈禁止执行) +#### 4、NX(堆栈禁止执行) NX 代表 不可执行 non-executable 。它通常在 CPU 层面上启用,因此启用 NX 的操作系统可以将某些内存区域标记为不可执行。通常,缓冲区溢出漏洞将恶意代码放在堆栈上,然后尝试执行它。但是,让堆栈这些可写区域变得不可执行,可以防止这种攻击。在使用 `gcc` 对源程序进行编译时,默认启用此安全属性: @@ -332,7 +331,7 @@ $ readelf -W -l ./hello | grep GNU_STACK   GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x10 ``` -#### 演示如何禁用 NX +##### 演示如何禁用 NX 我们不建议禁用 NX,但你可以在编译程序时,使用 `-z execstack` 参数,来禁用 NX: @@ -350,9 +349,9 @@ $ readelf -W -l ./hello | grep GNU_STACK   GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10 ``` -### 5\. RELRO(GOT写保护) +#### 5、RELRO(GOT 写保护) -RELRO 代表 重定位只读 Relocation Read-Only 。可执行链接格式 (ELF) 二进制文件使用全局偏移表(GOT),来动态地解析函数。启用 RELRO 后,会设置二进制文件中的 GOT 表为只读,从而防止重定位攻击: +RELRO 代表 “重定位只读 Relocation Read-Only ”。可执行链接格式(ELF)二进制文件使用全局偏移表(GOT)来动态地解析函数。启用 RELRO 后,会设置二进制文件中的 GOT 表为只读,从而防止重定位攻击: ``` $ checksec --file=/bin/ls --output=json | jq | grep relro @@ -362,7 +361,7 @@ $ checksec --file=./hello --output=json | jq | grep relro     "relro": "partial", ``` -Checksec 使用以下底层命令,来查找是否启用 RELRO。在二进制文件 `hello` 仅启用了 RELRO 属性中的一个属性,因此,在 Checksec 验证时,显示“partial”: +Checksec 使用以下底层命令,来查找是否启用 RELRO。在二进制文件 `hello` 仅启用了 RELRO 属性中的一个属性,因此,在 Checksec 验证时,显示 `partial`: ``` $ readelf -W -l ./hello | grep GNU_RELRO @@ -371,9 +370,9 @@ $ readelf -W -l ./hello | grep GNU_RELRO $ readelf -W -d ./hello | grep BIND_NOW ``` -#### 启用 full RELRO +##### 启用全 RELRO -要启用 full RELRO,请在 `gcc` 编译时,使用以下命令行参数: +要启用全 RELRO,请在 `gcc` 编译时,使用以下命令行参数: ``` $ gcc -Wl,-z,relro,-z,now hello.c -o hello @@ -382,7 +381,7 @@ $ checksec --file=./hello --output=json | jq | grep relro     "relro": "full", ``` -现在, RELRO 中的第二个属性也被启用,使程序变成 full RELRO: +现在, RELRO 中的第二个属性也被启用,使程序变成全 RELRO: ``` $ readelf -W -l ./hello | grep GNU_RELRO @@ -392,7 +391,7 @@ $ readelf -W -d ./hello | grep BIND_NOW  0x0000000000000018 (BIND_NOW)       ``` -### 6\. Fortify +#### 6、Fortify Fortify 是另一个安全属性,但它超出了本文的范围。Checksec 是如何在二进制文件中验证 Fortify,以及如何在 `gcc` 编译时启用 Fortify,作为你需要解决的课后练习。 @@ -408,11 +407,11 @@ $ checksec --file=./hello --output=json | jq  | grep -i forti     "fortify-able": "0" ``` -## 其他的 Checksec 功能 +### 其他的 Checksec 功能 关于安全性的话题是永无止境的,不可能在本文涵盖所有关于安全性的内容,但我还想提一下 Checksec 命令的一些其他功能,这些功能也很好用。 -### 对多个二进制文件运行 Checksec +#### 对多个二进制文件运行 Checksec 你不必对每个二进制文件都进行一次 Checksec。相反,你可以提供多个二进制文件所在的目录路径,Checksec 将一次性为你验证所有文件: @@ -420,7 +419,7 @@ $ checksec --file=./hello --output=json | jq  | grep -i forti $ checksec --dir=/usr ``` -### 对进程运行 Checksec +#### 对进程运行 Checksec Checksec 除了能检查二进制文件的安全属性,Checksec 还能对程序起作用。以下的命令用于查找你系统上所有正在运行的程序的安全属性。如果你希望 Checksec 检查所有正在运行的进程,可以使用 `--proc-all`,或者你也可以使用进程名称,选择特定的进程进行检查: @@ -430,7 +429,7 @@ $ checksec --proc-all $ checksec --proc=bash ``` -### 对内核运行 Checksec +#### 对内核运行 Checksec 除了本文介绍的用 Checksec 检查用户态应用程序的安全属性之外,你还可以使用它来检查系统内置的 内核属性 kernel properties : @@ -438,7 +437,7 @@ $ checksec --proc=bash $ checksec --kernel ``` -## 快来试一试 Checksec 吧 +### 快来试一试 Checksec 吧 Checksec 是一个能了解哪些用户空间和内核的安全属性被启用的好方法。现在,你就可以开始使用 Checksec,来了解每个安全属性是什么,并明白启用每个安全属性的原因,以及它能阻止的攻击类型。 @@ -449,7 +448,7 @@ via: https://opensource.com/article/21/6/linux-checksec 作者:[Gaurav Kamathe][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -458,3 +457,4 @@ via: https://opensource.com/article/21/6/linux-checksec [1]: https://opensource.com/sites/default/files/lead-images/target-security.png [2]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html [3]: https://stedolan.github.io/jq/download/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/18/095702dzvm482460vnrv6y.jpg \ No newline at end of file From b940de80058c8f72b56dc4957ebed8541f7e5aad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 18 Nov 2022 11:30:26 +0800 Subject: [PATCH 2050/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @littlebirdnest 首先非常感谢你愿意贡献的态度,但是我希望你能认真,而不是糊弄我。 这篇文章让你修改,我给你也留了言,但是你没有修改。 请参照我的校对来改进你的翻译质量。 --- ...ow to Install AWS CLI on Linux Step-by-Step.md | 111 ++++++++++-------- 1 file changed, 65 insertions(+), 46 deletions(-) diff --git a/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md b/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md index cc8b5a5d40..ad56a12a8e 100644 --- a/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md +++ b/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md @@ -2,115 +2,129 @@ [#]: via: "https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " +[#]: translator: "littlebirdnest" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" [#]: url: " " -如何在Linux上安装 AWS CLI +如何在 Linux 上安装 AWS 命令行工具 ====== -本文讲述如何一步步Linux上安装 AWS CLI。 AWS CLI是一个能够和aws账户进行交互的命令行程序。开发者和系统管理员用它管理日常的活动和自动化 +> 本文讲述如何一步步在 Linux 上安装 AWS CLI(命令行工具)。 + +AWS CLI 是一个能够和 AWS 账户进行交互的命令行程序。开发者和系统管理员用它管理日常的活动和自动化。 -##### 准备环节 +### 准备环节 -- 提前安装好Linux系统 -- 有管理员权限 +- 安装好的 Linux 系统 +- 具有管理员权限的 sudo 账户 - 能够联网 -现在让我们开始安装 +现在让我们开始安装: -### 1) 下载安装文件 +### 1、下载安装文件 -打开终端使用curl命令下载AWS CLI 的安装文件 +打开终端使用 `curl` 命令下载 AWS CLI 的安装文件: ``` $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ``` -以上命令会安装一个 ‘awscliv2.zip’的文件在当前工作目录 +![][4] -使用ls命令确认当前下载下来的文件 +以上命令会在当前工作目录下载一个 `awscliv2.zip` 的文件。 + +使用 [ls 命令][1] 确认当前下载下来的文件: ``` -$ ls -l awscliv2.zip -rw-rw-r-- 1 linuxtechi linuxtechi 47244662 Oct 20 10:53 awscliv2.zip $ +$ ls -l awscliv2.zip +-rw-rw-r-- 1 linuxtechi linuxtechi 47244662 Oct 20 10:53 awscliv2.zip +$ ``` -### 2) 解压下载的文件 +### 2、解压缩下载的文件 -使用unzip命令解压安装包 - -if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-3','ezslot_6',320,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-3-0'); +使用 [unzip 命令][2] 解压安装包: ``` $ unzip awscliv2.zip ``` -它会在当前目录创建一个aws的文件夹,把解压好的文件放进去 +它会在当前目录创建一个 `aws` 文件夹,把解压好的文件放进去: ``` -$ ls -ld aws drwxr-xr-x 3 linuxtechi linuxtechi 4096 Oct 19 17:18 aws $ +$ ls -ld aws +drwxr-xr-x 3 linuxtechi linuxtechi 4096 Oct 19 17:18 aws +$ ``` -### 3) 运行安装脚本 +### 3、运行安装脚本 -使用以下命令允许安装脚本 +使用以下命令运行安装脚本: ``` $ sudo ./aws/install ``` -脚本会把所有安装的文件放到 /usr/local/aws-cli目录下,然后创建一个链接文件在/usr/local/bin目录. +![][5] -if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-4','ezslot_7',340,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-4-0'); +脚本会把所有安装的文件放到 `/usr/local/aws-cli` 目录下,然后创建一个链接文件到 `/usr/local/bin` 目录。 -### 4) 检查AWS CLI的版本 +### 4、检查 AWS CLI 的版本 -运行以下脚本检查版本 +运行以下脚本检查版本: ``` -$ aws --version aws-cli/2.8.4 Python/3.9.11 Linux/5.15.0-48-generic exe/x86_64.ubuntu.22 prompt/off $ +$ aws --version +aws-cli/2.8.4 Python/3.9.11 Linux/5.15.0-48-generic exe/x86_64.ubuntu.22 prompt/off +$ ``` -### 5) 配置 AWS CLI +### 5、配置 AWS CLI -安装好AWS CLI,开始配置 AWS CLI +为了验证 AWS CLI 是否安装正确,开始配置 AWS CLI: -登录你的AWS管理控制台,取得AWS访问密钥id和访问密钥 +登录你的 AWS 管理控制台,取得 AWS 访问密钥 IDAccess Key ID安全访问密钥Secret Access Key。 -如果还没完成创建,就创建一个密钥id和密钥,把密钥复制到安全的地方 +如果还没完成创建,请先创建,并把它们复制到安全的地方。 -然后回到命令行,运行以下命令 +![][6] -if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-box-4','ezslot_8',260,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-box-4-0'); +然后回到命令行,运行以下命令: ``` -$ aws configure AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxx AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxx Default region name [None]: us-west-2 Default output format [None]: json $ +$ aws configure +AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxx +AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxx +Default region name [None]: us-west-2 +Default output format [None]: json +$ ``` -以上的证书会被保存到这个文件 +以上的证书会被保存到这个文件: ``` $ cat  ~/.aws/credentials ``` -输出上面的命令 +上面的命令的输出: -运行aws命令,列出你账户中的 s3储存和vpc +![][7] + +运行 `aws` 命令列出你账户中的 s3 储存和 VPC: ``` -$ aws s3 ls $ aws ec2 describe-vpcs +$ aws s3 ls +$ aws ec2 describe-vpcs ``` -输出, +输出如下: -成功输出内容,说明你的 AWS CLI 已经配置完成 +![][8] -以上是全部内容,有问题评论区问 +成功输出内容,说明你的 AWS CLI 已经配置完成。 -if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-banner-1','ezslot_9',360,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-banner-1-0'); - -其他文章:[How to Setup EKS Cluster along with NLB on AWS][3] +这就是这篇文章的全部内容,请在下面的评论区发表你的疑问和反馈。 -------------------------------------------------------------------------------- @@ -118,8 +132,8 @@ via: https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] -译者:[littlebirdnest](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -128,3 +142,8 @@ via: https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/ [1]: https://www.linuxtechi.com/linux-ls-command-examples-beginners/ [2]: https://www.linuxtechi.com/linux-zip-unzip-command-examples/ [3]: https://www.linuxtechi.com/how-to-setup-eks-cluster-nlb-on-aws/ +[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Download-AWS-CLI-Curl-Command.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-CLI-Install-Script-Linux.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Account-Access-Secret-Key.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Configure-Command-Output-Linux.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Command-List-S3-VPC.png \ No newline at end of file From 576c41885c6dc3f304d38c9337c03993a743c0e7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 18 Nov 2022 11:31:25 +0800 Subject: [PATCH 2051/3123] P @littlebirdnest https://linux.cn/article-15265-1.html --- ...21.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md (95%) diff --git a/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md b/published/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md similarity index 95% rename from translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md rename to published/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md index ad56a12a8e..11c4fca5d1 100644 --- a/translated/tech/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md +++ b/published/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md @@ -5,11 +5,13 @@ [#]: translator: "littlebirdnest" [#]: reviewer: "wxy" [#]: publisher: "wxy" -[#]: url: " " +[#]: url: "https://linux.cn/article-15265-1.html" 如何在 Linux 上安装 AWS 命令行工具 ====== +![][0] + > 本文讲述如何一步步在 Linux 上安装 AWS CLI(命令行工具)。 AWS CLI 是一个能够和 AWS 账户进行交互的命令行程序。开发者和系统管理员用它管理日常的活动和自动化。 @@ -146,4 +148,5 @@ via: https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/ [5]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-CLI-Install-Script-Linux.png [6]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Account-Access-Secret-Key.png [7]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Configure-Command-Output-Linux.png -[8]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Command-List-S3-VPC.png \ No newline at end of file +[8]: https://www.linuxtechi.com/wp-content/uploads/2022/10/AWS-Command-List-S3-VPC.png +[0]: https://img.linux.net.cn/data/attachment/album/202211/18/112836c2d0bekaxu75ffbx.jpg \ No newline at end of file From 452bfa438ce567269d4fdf6041eda3dea42c67e0 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 19 Nov 2022 05:02:39 +0800 Subject: [PATCH 2052/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020221118?= =?UTF-8?q?=20How=20to=20rebase=20to=20Fedora=20Linux=2037=20on=20Silverbl?= =?UTF-8?q?ue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md --- ...rebase to Fedora Linux 37 on Silverblue.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md diff --git a/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md b/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md new file mode 100644 index 0000000000..85923564ae --- /dev/null +++ b/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md @@ -0,0 +1,118 @@ +[#]: subject: "How to rebase to Fedora Linux 37 on Silverblue" +[#]: via: "https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/" +[#]: author: "Michal Konečný https://fedoramagazine.org/author/zlopez/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to rebase to Fedora Linux 37 on Silverblue +====== + +![][1] + +Fedora Silverblue is [an operating system for your desktop built][2][ on Fedora Linux][2]. It’s excellent for daily use, development, and container-based workflows. It offers [numerous advantages][3] such as being able to roll back in case of any problems. If you want to update or rebase to Fedora Linux 37 on your Fedora Silverblue system (these instructions are similar for Fedora Kinoite), this article tells you how. It not only shows you what to do, but also how to revert things if something unforeseen happens. + +Prior to actually doing the rebase to Fedora Linux 37, you should apply any pending updates. Enter the following in the terminal: + +``` + + $ rpm-ostree update + +``` + +or install updates through GNOME Software and reboot. + +### Rebasing using GNOME Software + +GNOME Software shows you that there is new version of Fedora Linux available on the Updates screen. + +![Fedora 37 update available][4] + +First thing you need to do is download the new image, so click on the _Download_ button. This will take some time. When it’s done you will see that the update is ready to install. + +![Fedora 37 update ready to install][5] + +Click on the _Restart & Upgrade_ button. This step will take only a few moments and the computer will be restarted at the end. After restart you will end up in new and shiny release of Fedora Linux 37. Easy, isn’t it? + +### Rebasing using terminal + +If you prefer to do everything in a terminal, then this part of the guide is for you. + +Rebasing to Fedora Linux 37 using the terminal is easy. First, check if the 37 branch is available: + +``` + + $ ostree remote refs fedora + +``` + +You should see the following in the output: + +``` + + fedora:fedora/37/x86_64/silverblue + +``` + +If you want to pin the current deployment (this deployment will stay as option in GRUB until you remove it), you can do it by running: + +``` + + # 0 is entry position in rpm-ostree status + $ sudo ostree admin pin 0 + +``` + +To remove the pinned deployment use the following command: + +``` + + # 2 is entry position in rpm-ostree status + $ sudo ostree admin pin --unpin 2 + +``` + +where 2 is the position in the rpm-ostree status. + +Next, rebase your system to the Fedora Linux 37 branch. + +``` + + $ rpm-ostree rebase fedora:fedora/37/x86_64/silverblue + +``` + +Finally, the last thing to do is restart your computer and boot to Fedora Linux 37. + +### How to roll back + +If anything bad happens—for instance, if you can’t boot to Fedora Linux 37 at all—it’s easy to go back. Pick the previous entry in the GRUB menu at boot (if you don’t see it, try to press ESC during boot), and your system will start in its previous state before switching to Fedora Linux 37. To make this change permanent, use the following command: + +``` + + $ rpm-ostree rollback + +``` + +That’s it. Now you know how to rebase Fedora Silverblue to Fedora Linux 37 and roll back. So why not do it today? + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/ + +作者:[Michal Konečný][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/zlopez/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2021/04/silverblue-rebase-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/fedora-silverblue/ +[3]: https://fedoramagazine.org/give-fedora-silverblue-a-test-drive/ +[4]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-15-11-11-32-1024x714.png +[5]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-15-11-12-22-1024x714.png From f233d2983de658830a33a49ad7b4dfdf076c548a Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 19 Nov 2022 05:02:47 +0800 Subject: [PATCH 2053/3123] add done: 20221118 How to rebase to Fedora Linux 37 on Silverblue.md --- sources/tech/20221115 .md | 25 +++++++++++++++++++++++++ sources/tech/20221116 .md | 25 +++++++++++++++++++++++++ sources/tech/20221117 .md | 25 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 sources/tech/20221115 .md create mode 100644 sources/tech/20221116 .md create mode 100644 sources/tech/20221117 .md diff --git a/sources/tech/20221115 .md b/sources/tech/20221115 .md new file mode 100644 index 0000000000..fef5b63dd8 --- /dev/null +++ b/sources/tech/20221115 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/unity-arch-linux/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unity-arch-linux/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221116 .md b/sources/tech/20221116 .md new file mode 100644 index 0000000000..906b1621e6 --- /dev/null +++ b/sources/tech/20221116 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/canonical-intel-iot/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/canonical-intel-iot/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221117 .md b/sources/tech/20221117 .md new file mode 100644 index 0000000000..a4590eebe7 --- /dev/null +++ b/sources/tech/20221117 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/wsl-stable-available/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/wsl-stable-available/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 From 4a7be916d502a35ba45d861f7341fd8b5f303419 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 19 Nov 2022 10:12:51 +0800 Subject: [PATCH 2054/3123] Delete 20221115 .md --- sources/tech/20221115 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221115 .md diff --git a/sources/tech/20221115 .md b/sources/tech/20221115 .md deleted file mode 100644 index fef5b63dd8..0000000000 --- a/sources/tech/20221115 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/unity-arch-linux/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/unity-arch-linux/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From eb4794283a288f8527347ebe40f5fc65c44190b8 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 19 Nov 2022 10:13:04 +0800 Subject: [PATCH 2055/3123] Delete 20221116 .md --- sources/tech/20221116 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221116 .md diff --git a/sources/tech/20221116 .md b/sources/tech/20221116 .md deleted file mode 100644 index 906b1621e6..0000000000 --- a/sources/tech/20221116 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/canonical-intel-iot/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/canonical-intel-iot/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From e4b703bc140b0398579bd3bd407695d8013234b4 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 19 Nov 2022 10:13:24 +0800 Subject: [PATCH 2056/3123] Delete 20221117 .md --- sources/tech/20221117 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221117 .md diff --git a/sources/tech/20221117 .md b/sources/tech/20221117 .md deleted file mode 100644 index a4590eebe7..0000000000 --- a/sources/tech/20221117 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/wsl-stable-available/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/wsl-stable-available/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 919d98f166f13b6eb533e1a87c49b34de36fee49 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 19 Nov 2022 10:58:10 +0800 Subject: [PATCH 2057/3123] RP @Cubik65536 https://linux.cn/article-15267-1.html --- ...️ Learn Python 7 of my favorite resources.md | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) rename {translated/talk => published}/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md (57%) diff --git a/translated/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md b/published/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md similarity index 57% rename from translated/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md rename to published/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md index e72764c99b..8f359d285a 100644 --- a/translated/talk/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md +++ b/published/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md @@ -3,48 +3,50 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15267-1.html" 学习 Python:我最喜欢的 7 个资源 ====== -这些年来,我通过这些开源资源提高了我的 Python 技能。 +![](https://img.linux.net.cn/data/attachment/album/202211/19/105720mfgygbzyg3ccttce.jpg) + +> 这些年来,我通过这些开源资源提高了我的 Python 技能。 我最近决定进一步学习 Python,以便提高我的教学技能,拓宽我的学生的视野。在这个过程中,我发现了这些优秀的资源,让我学习新的代码,并提高了对 Python 的整体理解。 -### 1. 教你的孩子编程 +### 1、《教孩子学编程 Python 语言版》 -我的 Python 之旅大约是 7 年前开始的,当时我发现了 Apple LOGO 和 Python 中的 [Turtle 模块][1] 之间的联系。当时使用的 Linux 计算机的默认 Python 版本为 Python 2.7,我很快发现我想使用 Python 3。我成功地安装了它,并开始使用 Turtle 模块编写一些简单的程序。在阅读 Dr. Bryson Payne 的 [教你的孩子编程][2] 之后,我意识到 Python 不仅仅是 Turtle。那时我安装了 [IDLE][3]。 +我的 Python 之旅大约是 7 年前开始的,当时我发现了 Apple LOGO 和 Python 中的 [Turtle 模块][1] 之间的联系。当时使用的 Linux 计算机的默认 Python 版本为 Python 2.7,我很快发现我想使用 Python 3。我成功地安装了它,并开始使用 Turtle 模块编写一些简单的程序。在阅读 Dr. Bryson Payne 的 《[教孩子学编程 Python 语言版][2]》 之后,我意识到 Python 不仅仅是 Turtle。那时我安装了 [IDLE][3]。 -### 2. IDLE +### 2、IDLE 在使用 IDLE 工作的过程中,交互式界面优化了我的体验,并让我有足够的信心来考虑向学生教授 Python。我志愿帮助我社区中的一群在家学习的孩子,很快我发现自己在教授一个有十六个孩子的班级!我很高兴他们的父母同意帮助我,否则我想我会被压垮。这个经历激发了我学习更多的欲望,以便我可以教授更多。 -### 3. Mu 编辑器 +### 3.、Mu 编辑器 -2018 年春天,我参加了 PyConUS。我听了一场由中学老师 [Nicholas Tollervey][4] 主讲的演讲,他为学龄前儿童编写了一个 Python 开发环境。[Mu 编辑器][5] 内置了一个可以帮助我找到代码中的错误的 linter。Mu 帮助我提高了我的编码技能,我也能够与学生分享这些技能,他们也从中受益。 +2018 年春天,我参加了 PyConUS。我听了一场由中学老师 [Nicholas Tollervey][4] 主讲的演讲,他为学龄前儿童编写了一个 Python 开发环境。[Mu 编辑器][5] 内置了一个可以帮助我找到代码中的错误的 质检工具Linter。Mu 帮助我提高了我的编码技能,我也能够与学生分享这些技能,他们也从中受益。 -我的自信和经验增长后,我希望与更多的学生分享 Python 之旅。我与其他人合作撰写了一个申请书,以教授一个使用树莓派 4 和 Python 的课程。疫情打断了这个计划。在此期间,树莓派基金会发布了 Pi 400。2021 年春天,我使用了前一年开发的材料和一个来自当地图书馆的慷慨的资助,来 [教授两组][6] 学生如何编程。这个活动非常成功并在今年再次举办。 +我的自信和经验增长后,我希望与更多的学生分享 Python 之旅。我与其他人合作撰写了一个申请书,以教授一个使用树莓派 4 和 Python 的课程。疫情打断了这个计划。在此期间,树莓派基金会发布了树莓派 400。2021 年春天,我使用了前一年开发的材料和一个来自当地图书馆的慷慨的资助,来 [教授两组][6] 学生如何编程。这个活动非常成功并在今年再次举办。 -### 4. Codium +### 4、Codium -几年前,我了解到微软的 Visual Studio Code 是一个可以在 Linux 上使用的开源代码编辑器。我最近才了解到,如何在 VS Code 中配置和使用 Python 虚拟环境。我的问题在 Opensource.com 上一篇 [关于虚拟环境的文章][7] 中得到了解答,这让我可以知道如何在 Linux 计算机上设置和配置 Python 虚拟环境。大约在同一时间,我发现了 [Codium][8],一个围绕 VS Code 构建的社区项目。 +几年前,我了解到微软的 VS Code 是一个可以在 Linux 上使用的开源代码编辑器。我最近才了解到,如何在 VS Code 中配置和使用 Python 虚拟环境。我的问题在一篇 [关于虚拟环境的文章][7] 中得到了解答,这让我可以知道如何在 Linux 计算机上设置和配置 Python 虚拟环境。大约在同一时间,我发现了 [Codium][8],一个围绕 VS Code 构建的社区项目。 现在我希望与我的学生分享 VS Codium 的体验,并让他们对 Python 的理解不再局限于 Turtle 模块。这种学习的热情让我寻找开源且可以在互联网上随意获得的教学资源。 -### 5. 简单解释 Python +### 5、《Python 编程练习,简单解释》 -[使用 Python 自动化繁琐的事情][9] 这本书是我最喜欢的一本书。现在,作者已经发布了 [Python 编程练习,简单解释][10]。这两本书都可以免费在线阅读,并且都采用了知识共享许可证。 +《[Python 编程快速上手 让繁琐工作自动化][9]》 这本书是我最喜欢的一本书。现在,作者已经发布了 《[Python 编程练习,简单解释][10]》。这两本书都可以免费在线阅读,并且都采用了知识共享许可证。 -### 6. Python for Everyone +### 6、《每个人都可以使用 Python》 -Dr. Charles Severance 在 2017 年发布了 [Python for Everyone][11],我非常推荐这本书。他为像我这样的有抱负的程序员提供了简短的课程。课程的代码可以在 [GitHub][12] 上找到,所以你可以下载它并在自己的计算机或学校网络上安装它。 +Dr. Charles Severance 在 2017 年发布了 《[每个人都可以使用 Python][11]》,我非常推荐这本书。他为像我这样的有抱负的程序员提供了简短的课程。课程的代码可以在 [GitHub][12] 上找到,所以你可以下载它并在自己的计算机或学校网络上安装它。 ### 7. Python 视频 -最近,我了解到 Opensource.com 的成员 [Jay LaCroix][13] 在 YouTube 上有一系列精彩的视频,其中包括 28 个免费视频,从 Python 基础开始,涵盖了 [Python 编程][14] 的全面介绍。最重要的是,他使用的是 Linux 计算机,因此他的课程特别适合 Linux 编程环境。这些视频的其中一个收获是学习如何使用 [nano][15] 作为编程环境,它默认情况下包含在大多数 Linux 发行版中。 +最近,我了解到 [Jay LaCroix][13] 在 YouTube 上有一系列精彩的视频,其中包括 28 个免费视频,从 Python 基础开始,涵盖了 [Python 编程][14] 的全面介绍。最重要的是,他使用的是 Linux 计算机,因此他的课程特别适合 Linux 编程环境。这些视频的其中一个收获是学习如何使用 [nano][15] 作为编程环境,它默认情况下包含在大多数 Linux 发行版中。 ### 你的学习之路 @@ -57,7 +59,7 @@ via: https://opensource.com/article/22/11/learn-python 作者:[Don Watkins][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b9a10c7c4bda047ab62f7e585778a5b02e7bcde4 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 19 Nov 2022 15:30:33 +0800 Subject: [PATCH 2058/3123] Update and rename sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md to translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md --- ...to run Kubernetes in your Linux homelab.md | 100 ------------------ ...to run Kubernetes in your Linux homelab.md | 99 +++++++++++++++++ 2 files changed, 99 insertions(+), 100 deletions(-) delete mode 100644 sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md create mode 100644 translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md diff --git a/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md deleted file mode 100644 index 6820507282..0000000000 --- a/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: (5 more reasons to run Kubernetes in your Linux homelab) -[#]: via: (https://opensource.com/article/21/6/kubernetes-linux-homelab) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -5 more reasons to run Kubernetes in your Linux homelab -====== -Kubernetes' advantages aren't just what it can do, they're also what -knowing it can do for you. -![Working from home at a laptop][1] - -In [5 reasons to run Kubernetes on your Raspberry Pi homelab][2], I explain why you might want to use Kubernetes at home. Those reasons are relatively arbitrary, and they mostly focus on outcomes. Aside from what Kubernetes can do, there are several other good reasons to look at Kubernetes as an important next step in your personal computing experience. - -### 1\. It's built on the foundation of Linux - -![T-shirt reading "Containers are Linux"][3] - -(Seth Kenlon, [CC BY-SA 4.0][4]) - -Kubernetes has a certain reputation. More accurately, it has several reputations. For some people, it's a mysterious technology with an unpronounceable name. To other people, it's a sheepdog helping them herd an over-abundance of containers. For others, it's a kind of operating system for the cloud, a useful interface to effective cloud development. And for most people, probably, it's back-end software they've never even heard of. As you might expect, it's all of these things and more. - -Not everyone interacts with Kubernetes the same way, but if you have an inclination toward systems administration, you'll find that Kubernetes is _just another Linux command_. - -I have a t-shirt that reads "Containers are Linux," which states what is, upon reflection, obvious. Container technology uses cgroups to run images of a minimal Linux operating system containing an application or set of applications. From start to finish, when you choose to run a container, you're choosing to run Linux. While Kubernetes commands run on many platforms, it's managing Linux containers, and when you interact with Kubernetes through a terminal, it's Linux business as usual: command, options, args, syntax. Running `kubeadm` or (on OKD or OpenShift) `oc` commands feels familiar because they work like any other Linux command you're used to running. What starts out seeming foreign feels natural in no time, and any Linux user interested in spending time in the terminal can find plenty of fun things to explore in Kubernetes. - -### 2\. Flexible - -Kubernetes used to be a little rigid. It supported, essentially, one container runtime—so stringently, in fact, that there's a hardcoded shim to this day to get around that legacy. Luckily, today Kubernetes has become flexible enough to allow for admins' many diverse needs. There's [Podman][5] and [CRI-O][6] available as container engines, both of which can integrate with [systemd][7]. (I meant what I said when I told you it was all Linux underneath.) You have choices of filesystems, cluster size and construction, monitoring tools, images, programming languages, and much more. Frankly, some people say there's _too much_ choice, which is usually when I suspect that after a few more years, it'll have just enough choice for me. - -### 3\. Personal development - -Containers are a fruitful business, and they have the habit of multiplying rapidly. That's by design. Containers are meant to scale, and they scale by spawning clones. Stick the containers into groups (call them _pods_), and automate how pod lifecycles are managed. That's all Kubernetes really is, and it's changing how servers can run. - -You might not need an infinitely scaleable collection of containers, and you may not need anything to help you manage the one or two containers you do run. However, if you're looking to profit from your ability to wrangle pods, then Kubernetes is exactly the tool you want. As more and more companies and organizations go global and embrace [digital transformation][8], Kubernetes is becoming a required skill in IT. If that's the path you're on, it's a good investment to learn it now and get familiar with common problems and their solutions. - -### 4\. Make containers make sense - -You may remember several years ago when open source projects started distributing their code as container images. For many, it was puzzling at the time. Not many admins really [understood what a container was][9], or where the boundaries of the imaginary container were, or how to get into the container, or why data couldn't live inside the container. - -Now, the IT world—including developers—is comfortable with the concept of containers. Delivery to containers just makes sense for a modern [CI/CD workflow][10]. For the sysadmin, though, the advantages of containers are twofold: installation is (theoretically) easier than waiting for a distro to update its packages, and containers scale. Yet it's very likely that neither of these benefits really manifests for you until you've used Kubernetes. Once you start managing containers with Kubernetes and related tools, the benefits of continuous delivery and the ability to scale are probably merely ideas you've read about. Integrate containers into how you manage your servers, and you suddenly understand what the excitement is all about. - -![Apache JMeter][11] - -(Seth Kenlon, [CC BY-SA 4.0][4]) - -The most basic of tests makes it pretty clear. Just spin up your favorite web server in a container, create a pod, then hit your server with traffic from [Apache JMeter][12], and watch containers respond. - -### 5\. Cloud-native - -If you do more development than systems administration, Kubernetes provides an excellent platform for what has easily become the biggest target of all: web apps. We all use web apps now, even though most people just think of them as "websites." The web has a hugely significant user base (to say the least), so it makes sense to provide open source applications through the browser. There are some great open source applications that run over a network, and many of those are delivered as containers to provide easy installation and a consistent user experience. - -### Bonus: It's fun - -Remember when you were still new to Linux? For some people, that might have been decades ago, and for others, it's still around the corner. For all of us, though, learning something new can be a fun challenge. If you've reached the point that Linux installs are more a bother than a challenge, you might want to try building a Kubernetes cluster in your broom closet. It will reintroduce you to all kinds of concepts you'd forgotten about. Hacking on plain-text ([YAML][13] specifically) configuration files, configuring network interfaces and networks, routing traffic, poring over the advantages and disadvantages of one backend over another, running `--dry-run` after `--dry-run` tests, tentatively pressing Return to find out whether you got everything right. Honestly, Kubernetes is just fun. - -If you want to build your own infrastructure, there's nothing quite like building your own Kubernetes cluster. A whole new world will open to you. You quickly become a cloud architect, perfecting your open cloud, installing amazing open source web applications in containers, and maybe even offering access to your family and friends. - -You become the solution. It's so very satisfying. - -### Explore Kubernetes - -Kubernetes might seem out of reach at first. It's new, a little scary, and worst yet, it apparently requires a cloud. However, there are a few ways to get started. - -First, install either [Minikube][14] or [Minishift][14]. Both of these allow you to run a local instance of Kubernetes on your personal computer. It's not quite as satisfying as building a cluster and opening it up to your friends, but it's a great, safe way to get familiar with the landscape, commands, and toolkit. - -Once you're ready for the real thing, read Chris Collins' article [Build a Kubernetes cluster with the Raspberry Pi][15]. After that, download our free ebook [Running Kubernetes on your Raspberry Pi homelab][16]. Before you know it, you'll find yourself wearing Kubernetes t-shirts, too. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/kubernetes-linux-homelab - -作者:[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/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) -[2]: https://opensource.com/article/20/8/kubernetes-raspberry-pi -[3]: https://opensource.com/sites/default/files/uploads/containers-are-linux.jpg (T-shirt reading "Containers are Linux") -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: http://podman.io -[6]: http://cri-o.io -[7]: https://opensource.com/article/21/5/systemd -[8]: https://enterprisersproject.com/what-is-digital-transformation -[9]: https://opensource.com/article/18/11/behind-scenes-linux-containers -[10]: https://opensource.com/article/18/8/what-cicd -[11]: https://opensource.com/sites/default/files/uploads/jmeter.png (Apache JMeter) -[12]: https://jmeter.apache.org -[13]: https://www.redhat.com/sysadmin/yaml-beginners -[14]: https://opensource.com/article/18/10/getting-started-minikube -[15]: https://opensource.com/article/20/6/kubernetes-raspberry-pi -[16]: https://opensource.com/downloads/kubernetes-raspberry-pi diff --git a/translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md new file mode 100644 index 0000000000..7f6f78304c --- /dev/null +++ b/translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md @@ -0,0 +1,99 @@ +[#]: subject: (5 more reasons to run Kubernetes in your Linux homelab) +[#]: via: (https://opensource.com/article/21/6/kubernetes-linux-homelab) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (chai001125) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +在你的 Linux 主机上运行 Kubernetes 的 5 个理由 +====== + +>Kubernetes 的优势不仅在于它能够做什么,还在于知道它能为你做什么。 + +![Working from home at a laptop][1] + +在 [Raspberry Pi 家庭实验室 homelab 上运行 Kubernetes 的 5 个理由][2] 这篇文章中,我解释了为什么推荐在家里使用 Kubernetes。其中的理由相对来说会有点随意,并且主要于关注结果。除了 Kubernetes 好用的功能之外,还有其他几个应将 Kubernetes 包含在你自己的计算机的理由。 + +(LCTT译注:Homelab 指的是安置在你家里的一个服务器或者多服务器的组合配置。在之上托管了多个服务和虚拟系统,以此来进行测试、开发,或者提供家庭功能用途。) + +### 1、Kubernetes 是基于 Linux 而建立的 + +![T-shirt reading "Containers are Linux"][3] + +Kubernetes 有很高的知名度。对于一些人来说,Kubernetes 是一种难以言说的神秘技术;对其他人来说,Kubernetes 就好像是牧羊犬放牧羊群一样,可以帮助他们管理过多的容器;对于另一些人来说,Kubernetes 是一种 cloud 的操作系统,是 实效云开发 effective cloud development 的一个有用的界面;对于大多数人来说,Kubernetes 可能是他们从未听说过的后端软件。正如人们所想的那样,Kubernetes 具有所有这些能力,甚至有更多的功能。 + +并非每个人都以相同的方式使用 Kubernetes,但如果你主要的工作是系统管理,你会发现 Kubernetes _只是另一个 Linux 命令_。 + +我有一件 T 恤,上面写着 “容器就是 Linux” Containers are Linux ,它的意思是显而易见的。容器技术使用 cgroups,来运行包含一个或一组应用程序的最小 Linux 操作系统映像。当你运行容器时,实际上你就是在运行 Linux。虽然在许多平台上都能使用 Kubernetes 命令,但 Kubernetes 命令管理的是 Linux 容器。当你通过终端与 Kubernetes 交互时,Kubernetes 命令类似于 Linux 的使用:有命令、选项、参数和语法。运行 Kubernetes 的 `kubeadm` 或(在 OKD 或 OpenShift 上)运行 `oc` 命令,你会感觉到很熟悉,是因为它们的工作方式与你习惯使用的任何其他 Linux 命令一样。开始时看似陌生的东西很快就会变得自然,任何有兴趣花时间在终端上的 Linux 用户都可以在 Kubernetes 中探索到许多有趣的东西。 + +### 2、Kubernetes 很灵活 + +在过去,Kubernetes 有点死板,因为从本质上来说,它仅能支持一个 容器运行时 container runtime 。这个规定非常严格,以至于今天需要一个 硬编码的垫片 hardcoded shim ,才能绕过这个遗留问题。幸运的是,如今 Kubernetes 已经变得足够灵活,可以满足管理员的许多不同需求了。[Podman][5] 和 [CRI-O][6] 可用作于容器引擎,它们都可以与 [systemd][7] 集成(这是因为 Kubernetes 的底层都是 Linux)。你可以自己选择 Kubernetes 所使用的文件系统、集群大小和构造、监控工具、镜像、编程语言等等配置。甚至现在有些人说 Kubernetes 有 _太多_ 的选择了。 + +### 3、学习 Kubernetes 有助于个人发展 + +容器是一个硕果累累的事物,它们会快速地成倍增长。这是设计使然的,容器旨在扩展,它们通过生成克隆来扩展。将容器分组(称为 _pods_),并自动化 Pod 生命周期的管理方式,这就是 Kubernetes 运用的方式。Kubernetes 正在改变服务器的运行方式。 + +你可能不需要无限扩展的容器集合,也不需要任何东西来帮助你管理正运行的一或两个容器。但是,如果你希望受益于处理 Pods 的能力,那么 Kubernetes 正是你需要学习的工具。随着越来越多的公司和组织走向全球,并拥抱 [数字化转型][8],Kubernetes 正在成为 IT 领域的必备技能。如果你想要在这个领域中发展,那么现在开始学习 Kubernetes 并熟悉它的常见问题及其解决方案,将会是一项很好的投资。 + +### 4、Kubernetes 让容器更有意义 + +你可能还记得几年前,当开源项目刚开始将它们的代码作为容器镜像分发时,对于许多人来说,容器这一概念是令人费解的:没有多少系统管理员真正理解 [容器是什么][9],或者明白容器的边界在哪里、如何进入容器,以及为什么数据不能存在于容器内。 + +现在,IT 界(包括开发人员在内)都对容器的概念都十分熟悉了。对于现代的 [CI/CD 工作流程][10] 来说,分发容器十分有意义。不过,对于系统管理员来说,容器的优势如下:安装容器比等待发行版更新其软件包和容器规模,更为容易。然而,在你使用 Kubernetes 之前,你很可能都不会真正地感受到这些好处。当你开始使用 Kubernetes 和相关工具管理容器之前,持续交付容器的好处和容器的扩展能力可能只是你读过的想法。将容器集成到你管理服务器的方式中,你会突然明白 Kubernetes 中令人兴奋的是什么。 + +![Apache JMeter][11] + +你可以试试看这个最基本的测试:只需在容器中启动你最喜欢的 Web 服务器,创建一个 pod,然后使用来自 [Apache JMeter][12] 的流量访问你的服务器,然后观察容器响应。 + +### 5、Kubernetes 是 云原生的 Cloud-native + +如果你主要做的是系统开发,而不是系统管理,那么 Kubernetes 也是 网络应用程序 web apps 的一个很好的平台。我们现在都在使用网络应用程序,尽管大多数人只是将它们视为“网站 website ”。Web 拥有庞大的用户群,因此通过浏览器提供开源的应用程序是非常有意义的。有一些很棒的开源应用程序在网络上运行,其中许多的应用程序都以容器的形式分发的,它们可以支持简单的安装和持续的用户体验。 + +### Kubernetes 的其他优势:Kubernetes 很有意思 + +你还记得你还是 Linux 新手的时候吗?对于一些人来说,那可能是几年前的事了,而对于其他人来说,可能是不久的过去。不过,对于所有人来说,学习一项新事物会是一个有趣的挑战。如果你达到了认为“Linux 的安装是麻烦多于挑战”的程度,那么你可以尝试一下构建一个 Kubernetes 集群。它会让你回忆起你忘记的各种概念:如何破解纯文本(特别是 [YAML][13] 格式的)配置文件,如何配置网络接口和网络,如何路由流量,知道一个后端相对于另一个后端的优缺点,在 `--dry-run` 测试之后运行 `dry-run` 测试,试探性地按 Return 来确定你是否做对了。老实说,使用 Kubernetes 很有趣。 + +如果你想自己构建基础架构,没有什么比构建你自己的 Kubernetes 集群更好的了。Kubernetes 集群将会为你打开一个全新的世界。你很快就会成为一名云架构师,学会完善你的开放云,在容器中安装令人惊叹的开源 Web 应用程序,也能为你的家人和朋友提供访问权限。 + +你自己就能得到解决方案。这真是太棒啦。 + +### 快来试试看 Kubernetes 吧 + +对 Kubernetes 的初学者来说,Kubernetes 似乎很难快速上手,因为 Kubernetes 是一个新的工具,会让你感到有点害怕,而且它还需要云。但是,以下有几种方法可以让你开始 Kubernetes 体验。 + +首先,安装 [Minikube][14] 或 [Minishift][14]。这两个工具都允许你在自己的计算机上运行 Kubernetes 的本地实例。虽然这种方式比不上“构建一个集群并与你的朋友共享”那么令人满意,但它是一种让你熟悉 Kubernetes 环境、命令和工具包的很好且安全的方式。 + +当你准备进一步研究 Kubernetes 后,请进一步阅读 Chris Collins 关于 [使用 Raspberry Pi 构建 Kubernetes 集群][15] 的文章。之后,再下载我们的免费电子书 [在你的 Raspberry Pi 家庭实验室上运行 Kubernetes][16]。在不知不觉中,你会发现自己也明白了“容器就是 Linux”的含义。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/kubernetes-linux-homelab + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) +[2]: https://opensource.com/article/20/8/kubernetes-raspberry-pi +[3]: https://opensource.com/sites/default/files/uploads/containers-are-linux.jpg (T-shirt reading "Containers are Linux") +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: http://podman.io +[6]: http://cri-o.io +[7]: https://opensource.com/article/21/5/systemd +[8]: https://enterprisersproject.com/what-is-digital-transformation +[9]: https://opensource.com/article/18/11/behind-scenes-linux-containers +[10]: https://opensource.com/article/18/8/what-cicd +[11]: https://opensource.com/sites/default/files/uploads/jmeter.png (Apache JMeter) +[12]: https://jmeter.apache.org +[13]: https://www.redhat.com/sysadmin/yaml-beginners +[14]: https://opensource.com/article/18/10/getting-started-minikube +[15]: https://opensource.com/article/20/6/kubernetes-raspberry-pi +[16]: https://opensource.com/downloads/kubernetes-raspberry-pi From 4b6029f290614312868883badfce10439be2ed9f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 19 Nov 2022 15:59:08 +0800 Subject: [PATCH 2059/3123] RP @geekpi https://linux.cn/article-15268-1.html --- ...0 ⭐️⭐️ Fix scanned images with ImageMagick.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) rename {translated/tech => published}/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md (80%) diff --git a/translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md b/published/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md similarity index 80% rename from translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md rename to published/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md index 329a0cb7dc..991acefdef 100644 --- a/translated/tech/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md +++ b/published/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md @@ -3,18 +3,20 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15268-1.html" 使用 ImageMagick 修复扫描图像 ====== -使用这个开源工具,即使是批量校正图像也很容易。 +![](https://img.linux.net.cn/data/attachment/album/202211/19/155829valiu5lulmhuuhiz.jpg) + +> 使用这个开源工具,即使是批量校正图像也很容易。 多年前,在翻阅一家旧书店的书架上的内容时,我偶然发现了一本名为 《UNIX System Command Summary for Berkeley 4.2 & 4.3 BSD》 的小册子,由 Specialized Systems Consultants 出版。我买它是出于好奇,因为它已经有将近 20 年的历史了,但仍然在很大程度上适用于现代 Linux 和 BSD。 -这让我当时和现在都很开心。一本写于 1986 年的小册子在 2016 年仍然很重要,而同一个书架上关于专有操作系统的书籍并不值得印刷它们的纸张。(想一想:你认为什么技术可以在僵尸末日中幸存下来?)这本小册子已经放在我自己的书架上好几年了,但我突然想到可能值得对这个作品做一点数字保存,所以我决定扫描这本小册子来创建一本 [CBZ 电子书][1]。 +无论是当时还是现在,我都很开心。一本写于 1986 年的小册子在 2016 年仍然很重要,而同一个书架上关于专有操作系统的书籍并不值得印刷它们的纸张。(想一想:你认为什么技术可以在僵尸末日中幸存下来?)这本小册子已经放在我自己的书架上好几年了,但我突然想到可能值得对这个作品做一点数字保存,所以我决定扫描这本小册子来创建一本 [CBZ 电子书][1]。 使用 [Skanlite][2] 进行扫描很容易,但很耗时。然而,当我完成后,我发现有些页面不是很平整。 @@ -44,7 +46,7 @@ $ convert page_0052.webp -deskew25% fix_0052.webp ### 使用 ImageMagick 裁剪图像 -在纠正了歪斜之后,因为无论如何我扫描的每一页都比必要的要多,以防止意外切断单词,我认为裁剪我纠正的页面是有意义的。我很高兴在页边空白处保留一些空间,但没有以前那么多。我经常使用 ImageMagick 的“裁剪”功能来处理这个网站上的图像,所以我很熟悉这个选项。但是,我需要确定如何裁剪每一页。 +在纠正了歪斜之后,因为我扫描每一页都比必要的范围要多,以防止意外切断单词,我认为裁剪我纠正的页面是有意义的。我很高兴在页边空白处保留一些空间,但没有以前那么多。我经常使用 ImageMagick 的“裁剪”功能来处理这个网站上的图像,所以我很熟悉这个选项。但是,我需要确定如何裁剪每一页。 首先,我需要图像的大小: @@ -76,7 +78,7 @@ via: https://opensource.com/article/22/11/fixing-scanned-images-imagemagick 作者:[Seth Kenlon][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/) 荣誉推出 From b59bb8cb96f04653382065ceba25d6f3bd28ce1a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 19 Nov 2022 16:23:56 +0800 Subject: [PATCH 2060/3123] RP @Cubik65536 https://linux.cn/article-15269-1.html --- ...to Install FFmpeg in Ubuntu and Other Linux.md | 91 ++++++++++--------- 1 file changed, 47 insertions(+), 44 deletions(-) rename {translated/tech => published}/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md (57%) diff --git a/translated/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md b/published/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md similarity index 57% rename from translated/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md rename to published/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md index 63ebd28355..8b4e3da3ed 100644 --- a/translated/tech/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md +++ b/published/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md @@ -3,68 +3,70 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15269-1.html" 如何在 Ubuntu 和其他 Linux 发行版中安装 FFmpeg ====== -**本教程讲述了在 Ubuntu 和其他 Linux 系统中安装 FFmpeg 所需的步骤。** +![][0] -FFmpeg 是一系列用于操作多媒体文件的库和软件程序。整个 ffmpeg 是一组强大的库,允许您转换,推流和操作音频和视频文件。许多前端 Linux 应用程序将其用作后端并依赖它。例如,屏幕录制应用程序可能需要 ffmpeg 将录制的流转换为 gif 图像。 +> 本教程讲述了在 Ubuntu 和其他 Linux 系统中安装 FFmpeg 所需的步骤。 -主流的应用程序和服务,如 VLC 媒体播放器,YouTube,Blender,Kodi,Shotcut 和 Handbrake 等,都使用 FFmpeg。 +FFmpeg 是一系列用于操作多媒体文件的库和软件程序。整个 FFmpeg 是一组强大的库,允许你转换、推流和操作音频和视频文件。许多前端 Linux 应用程序将其用作后端并依赖它。例如,屏幕录制应用程序可能需要 FFmpeg 将录制的流转换为 Gif 图像。 -趣事:NASA 2020 年发射的毅力号火星探测器使用 FFmpeg 完成和处理图像和视频,然后将其发送回地球! +主流的应用程序和服务,如 VLC 媒体播放器、YouTube、Blender、Kodi、Shotcut 和 Handbrake 等,都使用 FFmpeg。 -### 关于 ffmpeg 包 +> 趣事:NASA 2020 年发射的毅力号火星探测器使用 FFmpeg 完成和处理图像和视频,然后将其发送回地球! -[FFmped][1] 是一个强大的命令行工具。它支持 Linux,Windows 和 macOS,并支持多种架构。它是用 C 和汇编编写的,提供了强大的性能和跨平台实用性。 +### 关于 FFmpeg 包 + +[FFmped][1] 是一个强大的命令行工具。它支持 Linux、Windows 和 macOS,并支持多种架构。它是用 C 和汇编编写的,提供了强大的性能和跨平台实用性。 #### 核心 -FFmpeg 的核心是命令行实用程序。它们可以在命令行上使用,也可以从任何编程语言中调用。例如,您可以从 shell 程序,python 脚本等程序中使用它们。 +FFmpeg 的核心是命令行实用程序。它们可以在命令行上使用,也可以从任何编程语言中调用。例如,你可以从 Shell 程序、Python 脚本等程序中使用它们。 -- **ffmpeg**:用于转换音频和视频流,包括来自 TV 卡等 LIVE 流的源 -- **ffplay**:此软件包中捆绑的媒体播放器,用于播放媒体 -- **ffprobe**:命令行工具,用于显示媒体信息 - 可以以 txtm,csv,xml,json 格式输出 +- `ffmpeg`:用于转换音频和视频流,包括来自 TV 卡等实时流的源 +- `ffplay`:此软件包中捆绑的媒体播放器,用于播放媒体 +- `ffprobe`:命令行工具,用于显示媒体信息 - 可以以 txt、csv、xml、json 格式输出 ### FFmpeg 安装 -安装 FFmpeg 在 Ubuntu 和其他 Linux 发行版中很容易。打开终端并运行以下命令以安装。 +在 Ubuntu 和其他 Linux 发行版中安装 FFmpeg 很容易。打开终端并运行以下命令以安装。 #### Ubuntu 以及相似的发行版 -``` bash +``` sudo apt install ffmpeg ``` #### Fedora -对于 Fedora Linux,您需要添加 [RPM Fusion repo][2]。Fedora 官方仓库没有 FFmpeg 包。 +对于 Fedora Linux,你需要添加 [RPM Fusion repo][2]。Fedora 官方仓库没有 FFmpeg 包。 -``` bash +``` sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm ``` -``` bash +``` sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree- ``` -``` bash +``` sudo dnf install ffmpeg ``` #### Arch Linux -``` bash +``` pacman -S ffmpeg ``` -在安装完成后,您可以使用以下命令验证安装。 +在安装完成后,你可以使用以下命令验证安装。 -``` bash +``` ffmpeg --version ``` @@ -74,27 +76,27 @@ ffmpeg --version 首先,让我给你一个简单的例子。考虑以下示例。它只是将 mp4 文件转换为 mkv 文件。 -- **转换基本视频文件** +1、转换一个基本的视频文件 -``` bash +``` ffmpeg -i big_buck_bunny.mp4 big_buck_bunny.mkv ``` -当然,这是最简单的方法,但它不完整,因为它没有转换所需的视频文件的比特率,分辨率和其他属性。 +当然,这是最简单的方法,但它不完整,因为它没有转换所需的视频文件的比特率、分辨率和其他属性。 -- **转换一个音频文件** +2、转换一个音频文件 -第二,您可以使用类似的命令转换音频文件。 +其次,你可以使用类似的命令转换音频文件。 -``` bash +``` ffmpeg -i sunny_day.ogg sunny_day.mp3 ``` -- **使用音频和视频编解码器转换** +3、使用音频和视频编解码器转换 -最后,以下示例可以使用指定的编解码器转换视频文件。参数 `-c` 与 `a` 或 `v` 分别定义音频和视频。下面的命令使用 `libvpx` 视频和 `libvorbis` 音频编解码器进行转换。 +最后,以下示例可以使用指定的编解码器转换视频文件。参数 `-c` 带有的 `a` 或 `v` 分别定义音频和视频。下面的命令使用 `libvpx` 视频和 `libvorbis` 音频编解码器进行转换。 -``` bash +``` ffmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm ``` @@ -102,15 +104,15 @@ ffmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm #### 列出所有编解码器 -要列出所有可用的编解码器,请运行以下命令。 +要列出所有可用的编解码器,请运行以下命令: -``` bash +``` ffmpeg -codecs ``` 该命令列出了所有可用的编解码器及其功能,是否支持解码或编码等。此外,它们根据下表的位置进行标识。 -``` plain +``` D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec @@ -121,35 +123,35 @@ D..... = Decoding supported .....S = Lossless compression ``` -![FFmpeg 编码器列表][4] +![FFmpeg 编解码器列表][4] -### 列出所有编码器 +#### 列出所有编码器 -通过以下命令列出所有编码器。 +通过以下命令列出所有编码器: -``` bash +``` ffmpeg -encoders ``` #### 列出所有解码器 -同样的,您可以通过以下命令获取解码器列表。 +同样的,你可以通过以下命令获取解码器列表: -``` bash +``` ffmpeg -decoders ``` #### 详细信息 -你还可以使用参数 -h 获取编码器或解码器的更多详细信息。 +你还可以使用参数 `-h` 获取编码器或解码器的更多详细信息。 -``` bash +``` ffmpeg -h decoder=mp3 ``` ### 总结 -我希望你学会了 FFmpeg 和它的命令的基础知识。您可以通过[官方文档][5]了解更多有关该程序的信息。 +我希望你学会了 FFmpeg 和它的命令的基础知识。你可以通过 [官方文档][5] 了解更多有关该程序的信息。 -------------------------------------------------------------------------------- @@ -158,7 +160,7 @@ via: https://www.debugpoint.com/install-ffmpeg-ubuntu/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -169,3 +171,4 @@ via: https://www.debugpoint.com/install-ffmpeg-ubuntu/ [3]: https://www.debugpoint.com/wp-content/uploads/2022/06/FFmpeg-installed-in-Ubuntu-Linux.jpg [4]: https://www.debugpoint.com/wp-content/uploads/2022/06/FFmpeg-Codec-list.jpg [5]: https://ffmpeg.org/documentation.html +[0]: https://img.linux.net.cn/data/attachment/album/202211/19/162251wxt2kaajvvayar8c.jpg \ No newline at end of file From 262915dced0d1734c3c1542aac7af398ab321e17 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 20 Nov 2022 09:42:07 +0800 Subject: [PATCH 2061/3123] RP @chai001125 https://linux.cn/article-15271-1.html --- ...vity issues with the Linux ping command.md | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) rename {translated/tech => published}/20211020 Diagnose connectivity issues with the Linux ping command.md (66%) diff --git a/translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md b/published/20211020 Diagnose connectivity issues with the Linux ping command.md similarity index 66% rename from translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md rename to published/20211020 Diagnose connectivity issues with the Linux ping command.md index 3499ad3b90..dbeff9ef51 100644 --- a/translated/tech/20211020 Diagnose connectivity issues with the Linux ping command.md +++ b/published/20211020 Diagnose connectivity issues with the Linux ping command.md @@ -3,41 +3,42 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lujun9972" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15271-1.html" -使用 Linux ping 命令诊断网络连接问题 +使用 Linux 的 ping 命令诊断网络连接问题 ====== ->在本文中,我们将讨论网络连接最基本的诊断工具之一——ping 命令。 -![World locations with red dots with a sun burst background][1] +> 在本文中,我们将讨论网络连接最基本的诊断工具之一:`ping` 命令。 -如今,联网计算机变得十分普遍,以至于我们大多数人都理所当然地认为,房间一侧的计算机可以连接上房间另一侧的计算机,更不用说能连接上世界的另一端的计算机了。如此,网络使 Internet、云、文件共享、媒体流、远程管理、打印等服务成为可能。但是当网络出现问题时,有时很难诊断到底是其中哪一环节出现了问题。下面,我们就来介绍:网络连接最基本的诊断工具之一——`ping` 命令。 +![][0] + +如今,联网计算机变得十分普遍,以至于我们大多数人都理所当然地认为,房间一侧的计算机可以连接上房间另一侧的计算机,更不用说能连接上世界的另一端的计算机了。如此,网络使互联网、云、文件共享、媒体流、远程管理、打印等服务成为可能。但是当网络出现问题时,有时很难诊断到底是其中哪一环节出现了问题。下面,我们就来介绍:网络连接最基本的诊断工具之一—— `ping` 命令。 ### 基本的 ping 命令 -当你无法访问本地网络上的计算机或 Internet 上的服务器时,你可以 `ping` 它的 IP 地址。`ping` 将 Internet 控制报文协议 Internet Control Message Protocol (ICMP) 数据包发送到目标 IP 地址。当我们要对网路连接状况进行判断时,ICMP 是个非常有用的协议,本质上 ICMP 是一个响应和应答信号。 +当你无法访问本地网络上的计算机或互联网上的服务器时,你可以 `ping` 它的 IP 地址。`ping` 将 互联网控制报文协议 Internet Control Message Protocol (ICMP)数据包发送到目标 IP 地址。当我们要对网路连接状况进行判断时,ICMP 是个非常有用的协议,本质上 ICMP 是一个响应和应答信号。 -让我们由近及远地进行故障排除。请先 `ping` 你自己的计算机,以确保你的计算机正在运行 网络栈 networking stack 。你正在操作的计算机称为 _主机_ localhost ,本地回环地址是:127.0.0.1。 +让我们由近及远地进行故障排除。请先 `ping` 你自己的计算机,以确保你的计算机正在运行 网络栈 networking stack 。你正在操作的计算机称为 主机 localhost ,本地回环地址是:`127.0.0.1`。 -`ping` 命令能用主机的 主机名 hostname 、IP 地址(即 127.0.0.1)或者仅仅用简写 `0`,来表示 _主机_。 +`ping` 命令能用主机的 主机名 hostname 、IP 地址(即 `127.0.0.1`)或者仅仅用简写 `0` 来表示 “主机”。 -你可以使用 `-c`选项,来控制发送数据包的 次数 count 。 +你可以使用 `-c` 选项,来控制发送数据包的 次数 count 。 ``` $ ping 0 -c 1 PING 0 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms -\--- 0 ping statistics --- +--- 0 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms ``` -在你确认本地网络栈已启动并运行后,接下来,你可以 `ping` 你的路由器的 IP 地址。路由器的 IP 地址通常以 192,168 或 10 开头。实际的 IP 地址取决于路由器的配置。 +在你确认本地网络栈已启动并运行后,接下来,你可以 `ping` 你的路由器的 IP 地址。路由器的 IP 地址通常以 `192.168` 或 `10` 开头。实际的 IP 地址取决于路由器的配置。 -当你没有指定要发送多少次请求时,你可以用 **Ctrl**+**C**,来终止 `ping` 的运行。 +当你没有指定要发送多少次请求时,你可以用 `Ctrl+C`,来终止 `ping` 的运行。 ``` $ ping 192.168.0.1  @@ -54,14 +55,14 @@ From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1) 对于你的局域网上的其他主机呢?你可以 `ping` 各种设备,但是并非所有设备都能保证响应,因为一些设备会丢弃 ICMP 数据包,但许多设备会做出响应。例如,我可以 `ping` 我的打印机: ``` -`$ ping 192.168.0.4 ` +$ ping 192.168.0.4  ``` -### Ping 路由器以外的其他服务器 +### ping 路由器以外的其他服务器 -在确定你自己的网络内部都能连通以后,你还可以 `ping` 通到路由器以外的其他服务器。同样地,并非所有服务器都能接收 ICMP 数据包,更不用说响应 ICMP 数据包了。然而,也有一些服务器可以接收并响应 ICMP 数据包,而在互联网中的一个重要服务器是 **域名服务器** nameserver 。 +在确定你自己的网络内部都能连通以后,你还可以 `ping` 通到路由器以外的其他服务器。同样地,并非所有服务器都能接收 ICMP 数据包,更不用说响应 ICMP 数据包了。然而,也有一些服务器可以接收并响应 ICMP 数据包,而在互联网中的一个重要服务器是 域名服务器 nameserver 。 -Google 的 域名解析服务器 DNS server 的 IP 地址很容易记住,而且它会响应 `ping` 请求: +谷歌的 域名解析服务器 DNS server 的 IP 地址很容易记住,而且它会响应 `ping` 请求: ``` $ ping -c 2 8.8.8.8 @@ -69,14 +70,14 @@ PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms -\--- 8.8.8.8 ping statistics --- +--- 8.8.8.8 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms ``` 当你连不上一个网站时,你可以查询全球 DNS 网络,以找出其主机服务器的地址,然后 `ping` 该服务器。这至少可以告诉你,网站不通的原因是主机已关闭,或者只是 Web 服务器问题。 -例如,假设你尝试访问 example.com,但是发现失败了。首先,使用 `host` 命令找到 example.com 的 IP 地址: +例如,假设你尝试访问 `example.com`,但是发现失败了。首先,使用 `host` 命令找到 `example.com` 的 IP 地址: ``` $ host example.com @@ -88,22 +89,22 @@ example.com mail is handled by 0 然后,`ping` 该网站的的 IP 地址: ``` -`$ ping 93.184.216.34 -c 1` +$ ping 93.184.216.34 -c 1 ``` -### Ping 使用 IPv6 +### 使用 IPv6 `ping` 不仅可以使用 IPv4,还能使用 IPv6。可以通过指定 `-4` 或 `-6` 选项,来只使用 IPv4 或 IPv6。 -### Ping 设置数据包大小 +### 设置数据包大小 你可以使用 `-s` 选项,来更改要发送的 ICMP 数据包的 大小 size 。默认的数据大小为 56 字节,加上 8 字节包头,总共得到 64 字节的 ICMP 数据包。以下的示例将发送的 ICMP 数据包大小修改为 35+8=43 个字节: ``` -`$ ping -s 35 -c 5 8.8.8.8` +$ ping -s 35 -c 5 8.8.8.8 ``` -你可以使用 `-D` 选项,使得在终端中的每个 ping 回复之前,先打印出当前的时间戳。该时间戳为 UNIX 时间戳,加上微秒: +你可以使用 `-D` 选项,使得在终端中的每个 `ping` 回复之前,先打印出当前的时间戳。该时间戳为 UNIX 时间戳,加上微秒: ``` $ ping -D 8.8.8.8  @@ -112,23 +113,23 @@ PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. [1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms ``` -### Ping 设置时间间隔/长短 +### 设置时间间隔/长短 你可以使用 `-i` 选项,来更改两次 `ping` 请求之间的 时间间隔 interval 。以下的示例将 `ping` 间隔更改为 2 秒: ``` -`$ ping -i 2 ` +$ ping -i 2  ``` -你也可以使用 `-w` 选项,来在一段时间后终止 `ping`。 +你也可以使用 `-w` 选项,来在一段时间后终止 `ping`,单位为秒。 ``` -`$ ping -w 6` +$ ping -w 6 ``` -### 使用 ping 的工具 +### ping 的变体 -使用 `ping` 的工具有很多。例如,`iputils` 包提供了 `ping` 命令;[Busybox][2] 也有`ping` 命令;BSD 也有;甚至还有一个用于 `ping` 的 GUI:Gping,它可用于 Linux、macOS 和 Windows。你可以在 [Github][3] 上找到更多有关 `gping` 的信息。 +`ping` 有很多变体。例如,`iputils` 包提供了 `ping` 命令;[Busybox][2] 也有`ping` 命令;BSD 也有;甚至还有一个图形界面的 `ping`:`gping`,它可用于 Linux、macOS 和 Windows。你可以在 [GitHub][3] 上找到更多有关 `gping` 的信息。 ### 一起来学习吧 @@ -141,7 +142,7 @@ via: https://opensource.com/article/21/10/linux-ping-command 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -150,3 +151,4 @@ via: https://opensource.com/article/21/10/linux-ping-command [1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/world_remote_teams.png?itok=Wk1yBFv6 (World locations with red dots with a sun burst background) [2]: https://opensource.com/article/21/8/what-busybox [3]: https://github.com/orf/gping +[0]: https://img.linux.net.cn/data/attachment/album/202211/20/094045mhhkqhepke4qebks.jpg \ No newline at end of file From 3261ef630f88287b93b2a5347ff73502b99dc269 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 20 Nov 2022 11:02:30 +0800 Subject: [PATCH 2062/3123] RP @geekpi https://linux.cn/article-15272-1.html --- ...022 What-s new in Fedora Workstation 37.md | 54 ++++++++----------- 1 file changed, 23 insertions(+), 31 deletions(-) rename {translated/tech => published}/20221022 What-s new in Fedora Workstation 37.md (51%) diff --git a/translated/tech/20221022 What-s new in Fedora Workstation 37.md b/published/20221022 What-s new in Fedora Workstation 37.md similarity index 51% rename from translated/tech/20221022 What-s new in Fedora Workstation 37.md rename to published/20221022 What-s new in Fedora Workstation 37.md index f92a77c09b..66f5c68f19 100644 --- a/translated/tech/20221022 What-s new in Fedora Workstation 37.md +++ b/published/20221022 What-s new in Fedora Workstation 37.md @@ -3,51 +3,46 @@ [#]: author: "Merlin Cooper https://fedoramagazine.org/author/mxanthropocene/" [#]: collector: "lujun9972" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15272-1.html" Fedora Workstation 37 中的新功能 ====== ![][1] -Fedora Workstation 37 是 Fedora Project 桌面操作系统的最新版本,由致力于推动开源创新的全球社区开发。本文介绍了 Fedora Workstation 37 中一些面向用户的新功能。今天从 GNOME Software 升级,或者在你最喜欢的终端模拟器中使用 _[dnf system-upgrade][2]_! +Fedora Workstation 37 是 Fedora Project 桌面操作系统的最新版本,由致力于推动开源创新的全球社区开发。本文介绍了 Fedora Workstation 37 中一些面向用户的新功能。现在就从 GNOME “软件Software”应用升级,或者在你最喜欢的终端模拟器中使用 [dnf system-upgrade][2] 升级! ### GNOME 43 -Fedora Workstation 37 具有最新版本的 GNOME 桌面环境,其中包含更多移植到 GTK 4 的核心应用、用户界面调整和性能调整。查看 [GNOME 43 发行说明][3]了解更多信息! +Fedora Workstation 37 具有最新版本的 GNOME 桌面环境,其中包含更多移植到 GTK 4 的核心应用、用户界面调整和性能调整。查看 [GNOME 43 发行说明][3] 了解更多信息! #### 重新设计的快速设置菜单 ![无需打开设置即可切换深色模式][4] -新的快速设置菜单提供更多控制和便利。你现在可以在菜单中轻松切换你的 Wi-Fi 网络,而不用进入全屏对话框,在默认模式和深色模式之间切换,以及在不打开“设置”应用的情况下启用夜灯。现在还提供了一个方便的截屏和截屏视频按钮。 +新的“快速设置Quick Settings”菜单提供更多控制和便利。你现在可以在菜单中轻松切换你的 Wi-Fi 网络,而不用进入全屏对话框;在默认模式和深色模式之间切换;以及在不打开“设置Settings”应用的情况下启用夜灯。现在还提供了一个方便的截屏和录屏按钮。 #### 核心应用 -Fedora Workstation 37 中包含的 GNOME 核心应用已经进行了一轮调整和改进。 +Fedora Workstation 37 中包含的 GNOME 核心应用已经进行了一轮调整和改进: - * 文件已移植到 GTK 4,并且用户界面有许多改进。这里只是其中的一些: + * “文件Files”应用已移植到 GTK 4,并且用户界面有许多改进。这里只是其中的一些: * 它现在是自适应的,这意味着它会自动调整到更窄的尺寸,从而更好地利用可用空间。 * 列表视图已重新设计,使橡皮筋选择更容易。 - * 重新设计了 “Properties” 和 “Open With…” 对话框。 + * 重新设计了 “属性Properties” 和 “打开方式……Open With…” 对话框。 + + ![Files 43 中的橡皮筋选择][5] + * “日历Calendar”应用有一个新的边栏,可以一目了然地显示即将发生的事件。它与“联系人Contacts”应用一起,现在具有自适应用户界面。 + * “角色Characters”应用现在会向你显示不同的肤色、头发颜色和表情符号的性别选项。 + * “软件Software” 中的包源选择器已重新设计并移至更显眼的位置。 + * “地图Maps”应用已移植到 GTK 4。 + * “设置Settings”应用包括一个新的“设备安全Device Security”面板,让你可以轻松查看你的设备提供或缺少的硬件安全功能! + ![呃哦!][6] - -![Files 43 中的橡皮筋选择][5] - - * 日历有一个新的边栏,可以一目了然地显示即将发生的事件。它与联系人一起,现在具有自适应用户界面。 - * 角色现在会向你显示不同的肤色、头发颜色和表情符号的性别选项。 - * Software 中的包源选择器已重新设计并移至更显眼的位置。 - * 地图已移植到 GTK 4。 - * 设置包括一个新的设备安全面板,让你可以轻松查看你的设备提供或缺少的硬件安全功能! - - - -![呃哦!][6!] - -### 新的补充默认壁纸 +### 新补充的默认壁纸 Fedora Workstation 37 附带一组新的补充壁纸。 [在这里看看它们是如何制作的!][7] @@ -58,19 +53,16 @@ Fedora Workstation 37 附带一组新的补充壁纸。 [在这里看看它们 Fedora Linux 37 具有许多底层更改。以下是一些值得注意的: * 现已正式支持树莓派 4 单板机,包括 3D 加速! - * BIOS 系统上的新安装将使用 GPT 磁盘布局,而不是传统的 MBR 布局。安装程序镜像现在还将使用 GRUB 而不是 syslinux 在 BIOS 系统上引导。 - * 如果你禁用然后重新启用 SELinux,或运行 _fixfiles onboot_ 命令,文件系统重新标记过程现在将并行完成,从而显着提高速度。 + * 在 BIOS 系统上的新安装将使用 GPT 磁盘布局,而不是传统的 MBR 布局。在 BIOS 系统上,安装程序镜像现在还将使用 GRUB 而不是 syslinux 进行引导。 + * 如果你禁用然后重新启用 SELinux,或运行 `fixfiles onboot` 命令,文件系统的重新标记过程现在将并行完成,从而显着提高速度。 * 波斯语的默认字体已从 DejaVu 和 Noto Sans Arabic 更改为 Vazirmatn,为在波斯语中使用 Fedora Linux 的用户提供更一致的体验。 - ### 还有这些... Fedora 项目中发生的很酷的事情! - * Fedora CoreOS 和 Fedora Cloud Base 已升级为 Edition 状态! - * Fedora Linux 系统安装程序 Anaconda 的带有新 GUI 的预览安装程序镜像将在大约一周内可用。我将发布一篇文章以提供更多详细信息,敬请关注此空间! - - + * Fedora CoreOS 和 Fedora Cloud Base 已升级为 “版本Edition” 级别! + * Fedora Linux 系统安装程序,带有新 GUI 的 Anaconda 预览安装程序镜像将在大约一周内可用。我将发布一篇文章以提供更多详细信息,敬请关注! -------------------------------------------------------------------------------- @@ -79,7 +71,7 @@ via: https://fedoramagazine.org/whats-new-fedora-37-workstation/ 作者:[Merlin Cooper][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8c9612c98bb9a13cc92f6203a249f50477d963a0 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 20 Nov 2022 21:58:08 +0800 Subject: [PATCH 2063/3123] Translating --- ...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index 2858b33b75..29e1dbb48d 100644 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 9f512574afcd22031a737f1b669fa256a49b029c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 20 Nov 2022 23:37:15 +0800 Subject: [PATCH 2064/3123] =?UTF-8?q?=E8=B6=85=E6=9C=9F=E5=9B=9E=E6=94=B6?= =?UTF-8?q?=20&=20=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @gpchn @KevinZonda @FelixYFZ @CoWave-Fall --- ...essive Web App Experience is Here for Linux.md | 102 ----------------- ...sma 5.27 Bringing Subtle Outline on Windows.md | 58 ---------- ...New Open-Source Cross-Platform Terminal App.md | 106 ------------------ ...hat was your first programming language.md | 2 +- ...njaro- Here-s What I Think After a Week.md | 2 +- ...roviders- How to keep your options open.md | 2 +- ...SL Certificates- Make the Right Choice.md | 2 +- ...o Enable and Access USB Drive in VirtualBox.md | 2 +- 8 files changed, 5 insertions(+), 271 deletions(-) delete mode 100644 sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md delete mode 100644 sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md delete mode 100644 sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md diff --git a/sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md b/sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md deleted file mode 100644 index 64296aea6c..0000000000 --- a/sources/news/20221109.2 ⭐️ Microsoft Teams Progressive Web App Experience is Here for Linux.md +++ /dev/null @@ -1,102 +0,0 @@ -[#]: subject: "Microsoft Teams Progressive Web App Experience is Here for Linux" -[#]: via: "https://news.itsfoss.com/microsoft-teams-pwa-linux/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft Teams Progressive Web App Experience is Here for Linux -====== - -Microsoft Teams PWA is now available for Linux users! - -![Microsoft Teams Progressive Web App Experience is Here for Linux][1] - -After recently [dropping support][2] for a native Microsoft Teams Linux app, Microsoft has finally made the **PWA** (progressive web app) available to everyone. - -PWA is an app that uses the same code as a website but with a few changes that make it easier to use it as an app. - -Users of the native Linux app have mixed feelings about this move, some welcoming it and others not. - -Let us take a look at what Microsoft has done with this app. - -### ⭐ Microsoft Teams Progressive Web App - -![microsoft teams pwa][3] - -With the [Microsoft Teams][4] PWA, you get several features already available on the Windows client. So, it is a good thing for most users. - -The features include: - -- **Ability to set custom backgrounds** -- **A new gallery view** -- **Reactions to chats** -- **Raise-a-hand feature during meetings** -- **System Notifications** - -The Teams PWA comes with a dock icon and can be set to auto-start on system boot. - -Additionally, it gets easy access to app permissions and can be used with Conditional Access configuration (for Azure users), applied via the Endpoint Manager. - -**Related Read 📖** - -### 👇 How to Use the PWA - -![microsoft teams pwa install prompt][5] - -When you first log in to Teams on a web browser, it should show you a pop-up similar to the one shown above. - -Click on it to install the PWA, launch it from your application list, and then use it like a desktop app. - -> 💡Users of Firefox beware: Only Chromium-based browsers like Chrome and Edge support PWAs. - -But, if it doesn't show you a pop-up, or you mistakenly clicked on 'Not-now', follow these steps to install the Teams PWA. - -![microsoft teams pwa edge][6] - -For **Microsoft Edge**: - -1. Log in to Teams through the [official website][7]. 2. Click on the three-dot menu of the browser. 3. Then go into '**Apps**.' as shown in the screenshot above. 4. Click on '**Install this site as an app.**'  5. Set the app name and click on '**Install**' to set up the Teams PWA. - -If you are using Google Chrome on Linux, here's what it looks like: - -![microsoft teams pwa chrome][8] - -The steps include login to **Teams → Three-dot menu → More tools → Create shortcut.** - -Next, you need to do the following to create the PWA: - -![microsoft teams pwa chrome 2][9] - -- **Set app name** -- **Enable 'Open as window'** -- **Click on 'Create'** - -That's pretty easy! So, have you tried Microsoft Teams PWA experience on Linux yet? - -Share your thoughts in the comments below! - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/microsoft-teams-pwa-linux/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/ms-teams-pwa-arrives-on-linux.png -[2]: https://news.itsfoss.com/microsoft-linux-app-retire/ -[3]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA.png -[4]: https://www.microsoft.com/en-in/microsoft-teams/group-chat-software -[5]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Install.png -[6]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Edge.png -[7]: https://teams.live.com -[8]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Chrome.png -[9]: https://news.itsfoss.com/content/images/2022/11/MicrosoftTeams_PWA_Chrome_2.png diff --git a/sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md b/sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md deleted file mode 100644 index 3a7dd6eca7..0000000000 --- a/sources/news/20221110.4 ⭐️ KDE Plasma 5.27 Bringing Subtle Outline on Windows.md +++ /dev/null @@ -1,58 +0,0 @@ -[#]: subject: "KDE Plasma 5.27 Bringing Subtle Outline on Windows" -[#]: via: "https://debugpointnews.com/kde-plasma-5-27-outline-windows/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -KDE Plasma 5.27 Bringing Subtle Outline on Windows -====== - -![][1] - -**A new feature arriving on the KDE Plasma desktop that enables a subtle outline in Breeze theme window borders for better usability and design.** - -A [recent merge request][2] for the upcoming KDE Plasma 5.27 release (for 2023) shows how a nice, subtle window border can make a difference in the overall desktop look. - -Today, the drop-shadow distinguishes two overlapped windows in the default Plasma Breeze theme. That’s the only thing that differentiates the edges of two application windows. - -Sometimes it becomes difficult to find out the edges when you want to drag the window or do something else, especially in the dark Breeze theme. - -In the light theme, it’s not that difficult, though. - -To make it look more professional, the new border gives a pleasant look to the default Breeze theme. - -![KDE Plasma new outline comparison][3] - -KDE Plasma new outline comparison - -The colour of the new window outline is adaptive and not a fixed colour. It adapts based on the wallpaper and the theme’s default colour. But there is a catch, though. There won’t be any settings for this to disable. Because making a switch for this would be irrelevant since it’s very subtle and should work with all types of KDE customization. - -![KDE Plasma - new outline in windows -2][4] - -KDE Plasma – new outline in windows -2 - -KDE Plasma 5.27 is currently under development and will be an LTS release. Also, it will be the final release of the Plasma 5 series. It’s currently scheduled for Feb 2023. - -Via [blog][5] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/kde-plasma-5-27-outline-windows/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/11/kdenewborder.jpg -[2]: https://invent.kde.org/plasma/breeze/-/merge_requests/241 -[3]: https://debugpointnews.com/wp-content/uploads/2022/11/KDE-Plasma-new-outline-comparison.jpg -[4]: https://debugpointnews.com/wp-content/uploads/2022/11/KDE-Plasma-new-outline-in-windows-2.jpg -[5]: https://www.akselmo.dev/2022/10/31/I-made-outlines-for-KDE-Breeze.html diff --git a/sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md b/sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md deleted file mode 100644 index 54e3eb4f51..0000000000 --- a/sources/news/20221111.3 ⭐️ Meet Tabby, A New Open-Source Cross-Platform Terminal App.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Meet Tabby, A New Open-Source Cross-Platform Terminal App" -[#]: via: "https://news.itsfoss.com/tabby/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Meet Tabby, A New Open-Source Cross-Platform Terminal App -====== - -Tabby is a mind-blowing terminal app for a local shell, SSH, and Telnet connections. Let's take a look! - -![Meet Tabby, A New Open-Source Cross-Platform Terminal App][1] - -There are a lot of terminal apps out there that offer a range of functionalities. - -So, what's unique about Tabby? - -Tabby is a cross-platform customizable terminal app with SSH integration. It is a terminal emulator that does not try to be a new shell or Cygwin replacement. - -Let's take a look at what Tabby aims to be. - -### ⭐ An Impressive Customizable Terminal App - -![tabby][2] - -Formerly known as 'Terminus', [Tabby][3] is a highly customizable cross-platform open-source terminal emulator. - -It can connect to SSH servers using its integrated connection manager and offers various customization options in terms of appearance and other functionalities. It also supports plugins; these can be added from the settings menu to add more functionality to the app. - -If you have been a user of PowerShell ISE, PuTTY, or the mac terminal, Tabby will suit you as a perfect replacement. - -> 💡Tabby is not a lightweight app, so one needs to be careful about system resources. - -It is available for Linux, Windows, and macOS. You can also run Tabby as a portable app for Windows. - -They also offer an experimental web app, if you are a fan of it, feel free to try it out. - -An **integrated SSH client, font ligature, Unicode support, and configurable shortcuts** make Tabby worth trying. - -#### Related Read 📖 - -### Features of Tabby - -![tabby ssh][4] - -Tabby has an integrated SSH and Telnet client with support for X11, port forwarding and automatic jump host management. - -You can customize Tabby's appearance by using various theming and color options. - -![tabby themes][5] - -For starters, features like these provide an excellent user experience. But it does not end here. - -Tabby has a bunch of features to offer; some of the key highlights include: - -![tabby tabs][6] - -- **Integrated serial terminal** -- **Remember previously opened tabs and supports multi-pane nesting.** -- **Full Unicode Support** -- **Smart Tabs and progress bars for tabs** -- **Optional Quake mode.** -- **Integrated encrypted container for SSH secrets and configuration** -- **Zmodem Transfers** -- **Customizable Hotkeys** -- **Multiple Profiles with Profile Manager** - -### 👇 Download and Try Tabby - -Keep in mind that Tabby is currently in its early stages and under heavy development. - -**It is fun, feature-rich, and engaging, but it may not be for everyone!** - -If it does not sound too overwhelming, head to their [GitHub repo][7] and download the latest package for the platform you want. - -Various packages such as **.deb, .rpm, .tar.gz, .pacman,** and more are available for Linux. - -You can also explore its official website for more info. - -[Tabby][3] - -💬 Are you willing to give Tabby a try? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/tabby/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w1200/2022/11/tabby-first-look.png -[2]: https://news.itsfoss.com/content/images/2022/11/Tabby-1.png -[3]: https://tabby.sh -[4]: https://news.itsfoss.com/content/images/2022/11/Tabby_SSH.png -[5]: https://news.itsfoss.com/content/images/2022/11/Tabby_Themes-1.png -[6]: https://news.itsfoss.com/content/images/2022/11/Tabby_MultiPane-1.png -[7]: https://github.com/Eugeny/tabby/releases/tag/v1.0.186 diff --git a/sources/talk/20210816 What was your first programming language.md b/sources/talk/20210816 What was your first programming language.md index ecc66550ad..7e13d19ddb 100644 --- a/sources/talk/20210816 What was your first programming language.md +++ b/sources/talk/20210816 What was your first programming language.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/8/first-programming-language" [#]: author: "Jen Wike Huger https://opensource.com/users/jen-wike" [#]: collector: "lujun9972" -[#]: translator: "gpchn" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md b/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md index ba9a2cf4d2..948d479519 100644 --- a/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md +++ b/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/manjaro-linux-experience/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lujun9972" -[#]: translator: "KevinZonda" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/talk/20220509 Cloud service providers- How to keep your options open.md b/sources/talk/20220509 Cloud service providers- How to keep your options open.md index 2d7819ac3a..277e470cda 100644 --- a/sources/talk/20220509 Cloud service providers- How to keep your options open.md +++ b/sources/talk/20220509 Cloud service providers- How to keep your options open.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/cloud-service-providers-open" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: "FelixYFZ " +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/talk/20220609 SSL Certificates- Make the Right Choice.md b/sources/talk/20220609 SSL Certificates- Make the Right Choice.md index 2d6d4eed87..7f66bd67f9 100644 --- a/sources/talk/20220609 SSL Certificates- Make the Right Choice.md +++ b/sources/talk/20220609 SSL Certificates- Make the Right Choice.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/ssl-certificates-make-the-right-choice/" [#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/" [#]: collector: "lkxed" -[#]: translator: "KevinZonda" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md index edb15071c3..14f0539a0f 100644 --- a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md +++ b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: "CoWave-Fall" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b06004ff9a560671be862b618a77f7e64aa6faa4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 21 Nov 2022 08:44:45 +0800 Subject: [PATCH 2065/3123] translated --- ...ice Base Database in Ubuntu and Other Linux.md | 65 ------------------- ...ice Base Database in Ubuntu and Other Linux.md | 65 +++++++++++++++++++ 2 files changed, 65 insertions(+), 65 deletions(-) delete mode 100644 sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md create mode 100644 translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md diff --git a/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md b/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md deleted file mode 100644 index 02f6c67b5b..0000000000 --- a/sources/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md +++ /dev/null @@ -1,65 +0,0 @@ -[#]: subject: "How to Install LibreOffice Base Database in Ubuntu and Other Linux" -[#]: via: "https://www.debugpoint.com/install-libreoffice-base-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install LibreOffice Base Database in Ubuntu and Other Linux -====== - -**Here’s how to install the LibreOffice Base database module in Ubuntu and other Linux distributions.** - -The popular free and open-source office suite LibreOffice consists of six individual components. However, the default installation of LibreOffice in Ubuntu and related distributions only include five of them: - -- Calc -- Writer -- Impress -- Draw -- Math - -Due to some reason, the database module LibreOffice Base is not included. So, here’s how you can install it separately in Ubuntu and other distros. - -### Install LibreOffice Base in Ubuntu and Other Linux - -You can use either the Software app or use the terminal to install `libreoffice-base` package. I would recommend using the terminal to install it. Open a terminal window and run the following command to install it. - -``` -sudo apt install libreoffice-base -``` - -If you prefer Software or any other GUI-based installer, search for “libreoffice-base” and hit install. - -For **Fedora and RPM-based distros**, use the following command: - -``` -sudo dnf install libreoffice-base -``` - -And if you installed LibreOffice in **Arch Linux**– either [libreoffice-fresh][1] or [libreoffice-still][2] package, then no action is required. LibreOffice Base is already included in those two packages. So, you are good to go. - -On another note, if you want to check out how to install the latest LibreOffice, check out [this guide][3]. - -![Install Libreoffice Base in Ubuntu][4] - -Finally, after installation, you can find out the LibreOffice Base in the application menu. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-libreoffice-base-ubuntu/ - -作者:[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://archlinux.org/packages/extra/x86_64/libreoffice-fresh/ -[2]: https://archlinux.org/packages/extra/x86_64/libreoffice-still/ -[3]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-Libreoffice-Base-in-Ubuntu.jpg diff --git a/translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md b/translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md new file mode 100644 index 0000000000..0673e29e41 --- /dev/null +++ b/translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md @@ -0,0 +1,65 @@ +[#]: subject: "How to Install LibreOffice Base Database in Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/install-libreoffice-base-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 和其他 Linux 下安装 LibreOffice Base 数据库 +====== + +**以下是如何在 Ubuntu 和其他 Linux 发行版中安装 LibreOffice Base 数据库模块。** + +流行的免费和开源办公套件 LibreOffice 由六个独立的组件组成。然而,Ubuntu 和相关发行版中默认安装的 LibreOffice 只包括其中的五个: + +- Calc +- Writer +- Impress +- Draw +- Math + +由于某些原因,数据库模块 LibreOffice Base 没有被包括在内。所以,这里告诉你如何在 Ubuntu 和其他发行版中单独安装它。 + +### 在 Ubuntu 和其他 Linux 中安装 LibreOffice Base + +你可以使用 Software 应用或终端来安装 `libreoffic-base` 包。我建议使用终端来安装它。打开一个终端窗口,运行以下命令来安装它。 + +``` +sudo apt install libreoffice-base +``` + +如果你喜欢 Software 或其他基于 GUI 的安装程序,搜索 “libreoffic-base” 并点击安装。 + +对于 **Fedora 和基于 RPM 的发行版**,使用以下命令: + +``` +sudo dnf install libreoffice-base +``` + +如果你在 **Arch Linux** 中安装了 LibreOffice,无论是 [libreoffic-fresh][1] 还是 [libreoffic-still][2],那么就不需要任何操作了。LibreOffice Base 已经包含在这两个软件包中了。你可以开始使用了。 + +在另一个方面,如果你想看看如何安装最新的 LibreOffice,请查看[这个指南][3]。 + +![在 Ubuntu 中安装 Libreoffice Base][4] + +最后,安装完毕后,你可以在应用菜单中找出 LibreOffice Base。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-libreoffice-base-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://archlinux.org/packages/extra/x86_64/libreoffice-fresh/ +[2]: https://archlinux.org/packages/extra/x86_64/libreoffice-still/ +[3]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-Libreoffice-Base-in-Ubuntu.jpg From 823e845528ba68b96bfac64da0ff2d8b11e2fd93 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 21 Nov 2022 08:49:27 +0800 Subject: [PATCH 2066/3123] translating --- ...015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md index 14f0539a0f..3570d136cb 100644 --- a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md +++ b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 86f67b0871be0378cf80b4169c6e0968ecc09c69 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 21 Nov 2022 09:54:34 +0800 Subject: [PATCH 2067/3123] RP @geekpi https://linux.cn/article-15274-1.html --- ...ow to Fix bash wget Command Not Found Error.md | 120 ++++++++++++++++++ ...ow to Fix bash wget Command Not Found Error.md | 119 ----------------- 2 files changed, 120 insertions(+), 119 deletions(-) create mode 100644 published/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md delete mode 100644 translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md diff --git a/published/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/published/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md new file mode 100644 index 0000000000..a5e7f9cc32 --- /dev/null +++ b/published/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md @@ -0,0 +1,120 @@ +[#]: subject: "How to Fix: bash wget Command Not Found Error" +[#]: via: "https://www.debugpoint.com/wget-not-found-error/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15274-1.html" + +如何修复:“bash wget Command Not Found” 错误 +====== + +![][0] + +> 以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “bash: wget command not found” 的错误。 + +著名的 `wget` 工具被用来通过终端从 URL 下载任何文件。它是 Linux 终端中最流行和最快速的工具之一。 + +作为一个 GNU 工具,`wget` 带来了一些奇妙的功能。你可以实现各种目的,如从网上提取信息、下载文件、暂停/恢复等。 + +然而,许多 [Linux 发行版][1] 在默认安装时并没有附带这个工具。因此,当你想用 `wget` 下载一些文件时,你会得到 wget 命令未找到的错误。 + +修复它其实很容易。 + +### 修复 wget 命令未找到 + +你所需要做的就是打开终端,运行以下命令来安装 `wget`。 + +对于 Ubuntu、Linux Mint、elementaryOS、Debian 和相关发行版: + +``` +sudo apt install wget +``` + +Arch Linux: + +``` +pacman -S wget +``` + +对于 Fedora(虽然它默认包括): + +``` +sudo dnf install wget +``` + +安装后,你就可以使用 `wget` 程序了。你也可以通过检查其版本来验证它是否正确安装。 + +``` +wget --version +``` + +### 如何使用 wget + +下面是一些关于如何使用 `wget` 的例子。 + +命令的语法如下: + +``` +wget [选项]… [URL]… +``` + +例如,如果我想下载 Ubuntu 的 ISO 文件,那么我可以运行下面的命令,用 URL 直接下载。 + +``` +wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso +``` + +![如何使用 wget 的例子][2] + +同样,你也可以使用上述命令下载,或者,通过下面描述的几个开关组合。你也可以通过 `wget --help` 命令得到这个: + +- `-t, --tries=NUMBER` 设置重试次数为 `NUMBER`(0 为不限) +- `--retry-connrefused` 即使连接被拒绝,也要重试 +- `--retry-on-http-error=ERRORS` 逗号分隔的 HTTP 错误列表,以便重试 +- `-O, --output-document=FILE` 将文件写入 `FILE` 中 +- `--nc, --no-clobber` 跳过那些会下载到现有文件的下载(即覆盖它们) +- `--no-netrc` 不要试图从 `.netrc` 中获取证书 +- `-c, --continue` 继续已部分下载的文件 +- `--start-pos=OFFSET` 从 `OFFSET` 位置开始下载 +- `--progress=TYPE` 选择进度条类型 +- `--show-progress` 在详细模式下显示进度条 +- `--N, --timestamping` 不重新获取文件,除非比本地文件新 +- `--no-if-modified-since` 在时间戳模式下不使用条件性的 `if-modified-since` 获取请求的资源 +- `--no-use-server-timestamps` 不以服务器上的时间戳来设置本地文件的时间戳 +- `--S, --server-response` 打印服务器响应 +- `--spider` 不下载任何东西 +- `-T, --timeout=SECONDS` 设置所有的超时值为 `SECONDS` 秒 +- `--dns-timeout=SECS` 将 DNS 查询超时设置为 `SECS` +- `--connect-timeout=SECS` 将连接超时设置为 `SECS` +- `--read-timeout=SECS` 设置读取超时为 `SECS` +- `--w, --wait=SECONDS` 在两次检索之间等待 `SECONDS` 秒(适用于检索的 URL 超过 1个) +- `--waitretry=SECONDS` 在检索的重试之间等待 1 到 `SECONDS` 秒(适用于检索的 URL 超过 1 个) +- `--random-wait` 在两次检索之间等待 `0.5WAIT` 到 `1.5WAIT` 秒(适用于检索的 URL 超过 1 个) + +### 总结 + +我希望这个指南能帮助你解决 Linux 发行版中的 `wget` 错误。显然方案是非常简单的。 + +如果有帮助或者你有任何问题,请在下面留言。 + +> **[参考][3]** + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wget-not-found-error/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/distributions +[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Sample-example-of-how-to-use-wget.jpg +[3]: https://www.gnu.org/software/wget/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/21/095343hnxjfinvbpzf2x5f.jpg \ No newline at end of file diff --git a/translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md deleted file mode 100644 index 7be19b24fb..0000000000 --- a/translated/tech/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "How to Fix: bash wget Command Not Found Error" -[#]: via: "https://www.debugpoint.com/wget-not-found-error/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何修复:“bash wget Command Not Found” 错误 -====== - -**以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “bash: wget command not found” 的错误。** - -著名的 wget 工具被用来通过终端从 URL 下载任何文件。它是 Linux 终端中最流行和最快速的工具之一。 - -作为一个 GNU 工具,wget 带来了一些奇妙的功能。你可以实现任何项目,如从网上提取信息、下载文件、暂停/恢复等。 - -然而,许多 [Linux 发行版][1]在默认安装时并没有附带这个工具。因此,当你想用 wget 下载一些文件时,你会得到 wget 命令未找到的错误。 - -修复它其实很容易。 - -### 修复 wget 命令未找到 - -你所需要做的就是打开终端,运行以下命令来安装 wget。 - -对于 Ubuntu, Linux Mint, elementaryOS, Debian 和相关发行版: - -``` -sudo apt install wget -``` - -Arch Linux: - -``` -pacman -S wget -``` - -对于 Fedora(虽然它默认包括): - -``` -sudo dnf install wget -``` - -安装后,你可以使用 wget 程序。你也可以通过检查其版本来验证它是否正确安装。 - -``` -wget --version -``` - -### 如何使用 wget - -下面是一些关于如何使用 wget 程序的例子。 - -命令的语法如下: - -``` -wget [选项]… [URL]… -``` - -例如,如果我想下载 Ubuntu 的 ISO 文件,那么我可以运行下面的命令,用直接的 URL 下载。 - -``` -wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso -``` - -![如何使用 wget 的例子][2] - -同样,你也可以使用上述命令下载,或者,通过下面描述的几个开关组合。你也可以通过 `wget --help` 命令得到这个。 - -``` --t, --tries=NUMBER 设置重试次数为 NUMBER(0 为不限)。 ---retry-connrefused 即使连接被拒绝,也要重试。 ---retry-on-http-error=ERRORS 逗号分隔的 HTTP 错误列表,以便重试。 --O, --output-document=FILE 将文件写入 FILE 中 ---nc, --no-clobber 跳过那些会下载到现有文件的下载(覆盖它们) ---no-netrc 不要试图从 .netrc 中获取证书。 --c, --continue 继续已部分下载的文件 ---start-pos=OFFSET 从 0 开始 OFFSET 位置开始下载 ---progress=TYPE 选择进度表类型 ---show-progress 在任何详细模式下显示进度条 ---N, --timestamping 不重新检索文件,除非比本地文件新。 ---no-if-modified-since 在时间戳模式下不使用条件性的 if-modified-since 获取请求 ---no-use-server-timestamps 不以服务器上的时间戳来设置本地文件的时间戳。 ---S, --server-response 打印服务器响应 ---spider 不下载任何东西 --T, --timeout=SECONDS 设置所有的超时值为 SECONDS ---dns-timeout=SECS 将 DNS 查询超时设置为 SECS ---connect-timeout=SECS 将连接超时设置为 SECS ---read-timeout=SECS 设置读取超时为 SECS ---w, --wait=SECONDS 在两次检索之间等待 SECONDS(适用于检索的 URL 超过 1个)。 ---wait retry=SECONDS 在检索的重试之间等待1...SECONDS(适用于检索的 URL 超过 1 个)。 ---random-wait 在两次检索之间等待 0.5WAIT...1.5WAIT 秒(适用于检索的 URL 超过 1 个) -``` - -### 总结 - -我希望这个指南能帮助你解决 Linux 发行版中的 wget 错误。明显的方案是非常简单的。 - -如果有帮助或者你有任何问题,请在下面留言。 - -[参考][3] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/wget-not-found-error/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/category/distributions -[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Sample-example-of-how-to-use-wget.jpg -[3]: https://www.gnu.org/software/wget/ From 3756cb49e89e4e971889b5cb4053fa2a05d21bab Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 21 Nov 2022 14:47:53 +0800 Subject: [PATCH 2068/3123] translating --- ...initive Guide to Using and Customizing the Dock in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md index 9689098aec..637e7c9ee1 100644 --- a/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md +++ b/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chai001125) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 81f3d6f90efcacc0f91ca9c1657d302da5d4a431 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 21 Nov 2022 15:38:23 +0800 Subject: [PATCH 2069/3123] ALL @wxy https://linux.cn/article-15275-1.html --- ...istributions for Programmers in 2022 [Featured].md | 225 +++++++++++++++++ ...istributions for Programmers in 2022 [Featured].md | 229 ------------------ 2 files changed, 225 insertions(+), 229 deletions(-) create mode 100644 published/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md delete mode 100644 sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md diff --git a/published/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md b/published/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md new file mode 100644 index 0000000000..82419d578b --- /dev/null +++ b/published/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md @@ -0,0 +1,225 @@ +[#]: subject: "Top 10 Linux Distributions for Programmers in 2022 [Featured]" +[#]: via: "https://www.debugpoint.com/top-linux-distributions-programmers-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15275-1.html" + +适合程序员的十大 Linux 发行版(2022 版) +====== + +![](https://img.linux.net.cn/data/attachment/album/202211/21/153625z44s41qcviv5ckip.jpg) + +> 我们点评了为程序员和开发人员提供的十大最佳 Linux 发行版(2022 版),以帮助他们完成工作和个人项目。 + +程序员和开发人员在其工作或项目中会使用各种工具和应用程序,包括代码编辑器、编程语言编译器、附加组件、数据库等。如果你对现代开发者的工作流程进行分类,它包含以下典型的工作流程: + +- 访问代码库 +- 编程 +- 调试 +- 测试 +- 部署 + +而这种典型的工作流程可能需要各种工具。一个标准的清单可能是这样的: + +- 代码编辑器 +- 简单的文本编辑器 +- 网页浏览器(网页开发者需要所有变体) +- 数据库引擎 +- 一个本地服务器 +- 编程语言相应的编译器 +- 调试器 +- 监测或剖析工具(可执行文件或网络版) + +可以说,与 Windows 相比,Linux 是编程的最佳选择。(出于几个原因,我在本文中不对 macOS 进行比较。)Linux 是最佳选择的主要原因是,与 Windows 相比,在 Linux 发行版中已经预装具有现代技术的软件包和应用程序,或非常容易安装。 + +因此,在这篇文章中,我们想列出 2022 年最适合程序员的 Linux 发行版。 + +### 2022 年适合程序员的十大 Linux 发行版 + +#### 1、Fedora Workstation + +![Fedora 35 Workstation][1] + +也许这个名单中最完美的 Linux 发行版是 Fedora Linux。它用于桌面的默认 Workstation 版通过其选择的软件包带来了正宗的 GNOME 桌面体验。 + +Fedora Linux 的默认安装为你提供了所有主要的开发包,开箱即用。它们包括 PHP、OpenJDK、PostgreSQL、Django、Ruby on Rails、Ansible 等。 + +通过 dnf 软件包管理器安装更多的应用程序是非常简单的,如 VS Code 编辑器和其他软件包。你也可以借助“软件Software”应用来安装,这是一个应用商店,你只需点击一个按钮就可以搜索和安装应用程序。 + +Fedora Linux 支持 Snap 和 Flatpak,这给了你更多的灵活性。你也可以利用 Fedora 中的 RPM Fusion 仓库,这个仓库让你可以访问许多自由和非自由的软件包。由于许可证和其他明显的原因,Fedora Linux 不想在他们的主仓库中包括这些包。 + +你可以在下面的官网上查看最新的 Fedora Linux。 + +> **[下载 Fedora][2]** + +#### 2、Ubuntu Linux + +![Ubuntu 桌面是一个适合程序员的完美的Linux发行版][3] + +本列表中的第二个 Linux 发行版是 Ubuntu Linux。Ubuntu Linux 是目前在服务器和桌面上使用最多的 Linux 发行版。Ubuntu 提供长期支持(LTS)版本,有五年的官方支持(另外还有五年的维护支持),期间还有短期支持版本供高级用户使用。 + +由于它很流行,所有最新的软件包和应用程序供应商都提供 Ubuntu(.deb)版本。因其流行,也带来了论坛和文档的大量支持,这对开发者来说是完美的,特别是当你在开发阶段被错误困住的时候。在下面的链接中了解更多关于 Ubuntu 的信息。 + +> **[下载 Ubuntu][4]** + +#### 3、openSUSE + +openSUSE 是全球在关键系统中使用的最稳定和最专业的 Linux 发行版之一。这个 Linux 发行版是企业级工作负载的首选解决方案之一,包括台式机、服务器和瘦客户机。 + +它比 Ubuntu 和 Fedora 有一些优势。首先,它有两个变种:Leap 和 Tumbleweed。openSUSE Leap 是一个长期支持版本(LTS),提供最新的稳定性。openSUSE Tumbleweed 是一个滚动发布的软件,提供尖端的软件包。 + +如果你的开发需要最新的软件包和硬件支持,那么 Tumbleweed 就是你的选择。如果你需要稳定性和一个运行时间较长、维护量较小的系统,请选择 openSUSE Leap。 + +使用 openSUSE 进行开发工作的优势之一是其软件包管理器 YaST。使用 YaST 软件包管理器,你可以轻松地将许多事情自动化。 + +除此之外,openSUSE 的软件交付方式也很出色。它的软件门户在网上,你可以访问它,搜索一个软件包,然后点击安装。 + +如果与新用户相比,你对 Linux 有一定的经验,请选择 openSUSE 进行开发工作。 + +> **[下载 openSUSE][5]** + +#### 4、Manjaro Linux + +Manjaro Linux 是一个基于 Arch Linux 的发行版,它使 Arch 的安装变得简单。它基于 Arch Linux,但带来了一些功能,如像 Ubuntu 或 Linux Mint 那样的图形化安装程序、 pamac 安装程序、精心策划的软件仓库等。Manjaro 有三种主要的桌面风格:GNOME、KDE Plasma 和 Xfce,可以满足几乎所有用户的需求。 + +如果你想用 Arch Linux 和它的滚动发布包来满足你的开发需求,但又不想陷入安装原生 Arch 的麻烦,Manjaro 是你的完美选择。 + +> **[下载 Manjaro][6]** + +#### 5、Arch Linux + +虽然 Manjaro 和其他基于 Arch 的易于安装的 Linux 发行版已经出现,但你可能还是想用 [原生 Arch][7] 来亲手定制你的桌面。 + +这更多的是针对那些想要更多控制权和为项目或需求建立自定义 Linux 操作系统的资深开发者或程序员。在这些情况下,你可能想用你最喜欢的桌面安装 Arch Linux 来设置你的开发操作系统。 + +假设你对 Arch Linux 和计算机有一定的经验。在这种情况下,这是所有选择中最好的,因为它可以让你完全控制定制的 Linux 操作系统中的每个软件包。 + +> **[下载 Arch Linux][8]** + +#### 6、Pop OS + +Pop OS(写作 Pop!_OS )是由计算机制造商 System76 为其系列硬件开发的。Pop OS 是自由开源的,基于 Ubuntu。它遵循 Ubuntu 的发布周期,同时带来额外的调整,以及为用户定制的软件包。 + +![Pop OS 21.10 桌面 Linux 发行版][9] + +Pop OS 是程序员的完美选择,因为它原生支持许多 Ubuntu 支持的编程语言。它因其打造的软件中心而在计算机科学家和程序员中广受欢迎,该软件中心有一个专门的部分介绍开发和编程的应用程序。 + +除此之外,Pop OS 中的 COSMIC 桌面(一个定制的 GNOME 桌面)为程序员提供了独特的体验,包括自动平铺、可爱的调色板、原生的深色模式和丰富的设置。 + +如果你需要一个基于 Ubuntu、稳定的、并对程序员友好的 Linux 发行版,那么请选择 Pop OS。 + +> **[下载 POP OS][10]** + +#### 7、KDE Neon + +如果你是一个很习惯 KDE Plasma 桌面的开发者,并且想要一个基于 Qt 的开发环境,那么 KDE Neon 就非常适合你。 + +KDE Neon 是一个基于 Ubuntu LTS 版本的 Linux 发行版,带有最新的 KDE Plasma 桌面和 KDE 框架包。因此,在 KDE Neon 中,你可以得到 Ubuntu LTS 的稳定性和带有 Qt 的最新 KDE 软件包。 + +如果你需要一个拥有开箱即用的应用程序的快速系统、一个友好的用户界面和巨大的社区支持,这是一个完美的 Linux 发行版。 + +> **[下载 KDE Neon][11]** + +#### 8、Debian + +Debian GNU/Linux 无需介绍。Debian 的稳定分支是 Ubuntu 及其所有衍生品的基础。因此,它是主要和稳定的 Linux 之一。它是你的开发环境的完美选择,因为它为你提供了终极稳定性和多年的支持。 + +不过,Debian 的稳定分支在采用最新软件包方面略显保守。Debian 的维护者会仔细检查和合并软件包,因为整个世界(嗯,几乎)都依赖于 Debian 的稳定性。 + +对于高级用户和系统管理员来说,如果你想要一个稳定的、长期运行的开发环境,并且维护工作量较少,那么它是一个完美的编程环境。 + +> **[下载 Debian Linux][12]** + +#### 9、Kali Linux + +Kali Linux 是由 Offensive Security 开发的,主要针对寻找网络漏洞的道德黑客和渗透测试人员。它预装了大量的黑客工具和应用程序。 + +如果你有足够的经验,它可以成为程序员和开发人员的一个完美的 Linux 发行版。如果你对 Linux 很熟悉,并且在处理错误和依赖关系方面有一定的经验,就可以选择 Kali Linux。 + +> **[下载 Kali Linux][13]** + +#### 10、Fedora 实验室 + +而这个名单上的最后一个 Linux 发行版是 Fedora Linux 的发行版组合。 + +Fedora 实验室Labs为程序员、科学家和学生提供了专门策划的 Linux 发行版,并预装了应用程序、相应的软件包和实用程序。很多人都不知道这些,如果配置得当,它们可以作为完美的现成 Linux 发行版为你服务。 + +下面是对它们的总结: + +**Fedora 科学** + +- 科学和数值开源工具与 KDE Plasma 桌面的结合 +- 应用列表包括: + - 用于 C/C++ 的 GNU 科学库 + - 与 MATLAB 兼容的 MGNU Octave + - LaTeX + - Maxima 计算机代数系统 + - 用于绘制二维和三维图形的 Gnuplot + - 用于数据科学的 Pandas Python 库 + - IPython + - 用于 Java 和 R 编程语言的软件包 +- 关于 Fedora 科学,[在此下载][14] 和了解更多。 + +**Fedora 计算神经科学** + +- 带有 GNOME 桌面环境的开源神经科学应用程序和软件包。 +- 了解更多并 [在此下载][15]。 + +**Fedora 机器人套件** + +- 这个完美的 Linux 发行版结合了最好的开源机器人应用程序和软件包,针对初级和经验丰富的机器人科学家和程序员。 +- 了解更多并 [在此下载][16]。 + +来自 Fedora Linux 的**其他解决方案**包括 [Fedora 安全实验室][17]、[Fedora 天文学][18] 和 [Fedora Python 教室][19],你或许想看看这些解决方案。 + +这些 Fedora 实验室选项可以成为编程项目或在特定科学领域工作的完美 Linux 发行版。 + +### 总结 + +那么,你如何在这份最适合程序员的 Linux 发行版名单中选择你的最爱? + +如果你不确定,并希望以最小的努力来建立和运行一个开发系统,那就选择 Fedora Workstation 或 Ubuntu。 + +如果你有空闲时间,或者想对你的系统有更多的控制,喜欢做实验,对偶尔出现的错误也不在意,那么就选择基于 Arch Linux 的系统。 + +对于刚进入 Linux 生态系统的新开发者来说,Pop OS 也是一个不错的选择。对于特定的需求,请到 Fedora 实验室选择。 + +我希望这份 2022 年最适合程序员的 Linux 发行版清单能给你一些指导,让你选择最喜欢的 Linux 发行版进行编程和开发。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/top-linux-distributions-programmers-2022/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/11/Fedora-35-Workstation.jpg +[2]: https://getfedora.org/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Ubuntu-Desktop-is-a-perfect-Linux-Distribution-for-Programmers.jpg +[4]: https://ubuntu.com/download +[5]: https://www.opensuse.org/ +[6]: https://manjaro.org/download/ +[7]: https://www.debugpoint.com/2022/01/archinstall-guide/ +[8]: https://archlinux.org/download/ +[9]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pop-OS-21.10-Desktop.jpg +[10]: https://pop.system76.com/ +[11]: https://neon.kde.org/download +[12]: https://www.debian.org/distrib/ +[13]: https://www.kali.org/ +[14]: https://labs.fedoraproject.org/en/scientific/ +[15]: https://labs.fedoraproject.org/en/comp-neuro/ +[16]: https://labs.fedoraproject.org/en/robotics/ +[17]: https://labs.fedoraproject.org/en/security +[18]: https://labs.fedoraproject.org/en/astronomy +[19]: https://labs.fedoraproject.org/en/python-classroom diff --git a/sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md b/sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md deleted file mode 100644 index 5cb6d9db74..0000000000 --- a/sources/tech/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md +++ /dev/null @@ -1,229 +0,0 @@ -[#]: subject: "Top 10 Linux Distributions for Programmers in 2022 [Featured]" -[#]: via: "https://www.debugpoint.com/top-linux-distributions-programmers-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Linux Distributions for Programmers in 2022 [Featured] -====== - -**We review the top 10 best Linux distributions for programmers and developers (in 2022) to help with their work and personal projects.** - -The developers or the programmers use various tools and applications for their job or projects. It includes code editors, programming language compilers, add-ons, databases, etc. If you categorise the workflow of a modern developer – it contains a typical workflow as below – - -- accessing to the code repo -- programming -- debugging -- testing -- deploying - -And this typical workflow may need a wide range of tools. A standard list might be like this – - -- Code editors -- Simple Text Editors -- Web browsers (all variants for a web developer) -- Database engine -- A local server -- The respective programming language compiler -- Debuggers -- Monitoring or profiling tools (executables or network) - -Arguably, Linux is the best choice for programming compared to Windows. I am not comparing macOS in this article for several reasons. The primary reason for Linux is the best is because packages and apps with modern technology come as pre-installed or very easy to install in Linux distributions than Windows. - -Hence, in this post, we would like to list the best Linux Distributions for programmers in 2022. - -### Top 10 Linux Distributions for Programmers in 2022 - -#### 1. Fedora Workstation - -![Fedora 35 Workstation][1] - -Fedora 35 Workstation - -Perhaps the perfect Linux distribution among this list is Fedora Linux. Its default workstation edition for desktop brings an authentic GNOME desktop experience with its choice of packages. - -Fedora Linux default installation gives you all major development packages out of the box. They include PHP, OpenJDK, PostgreSQL, Django, Ruby on Rails, Ansible, etc. - -Installing additional applications such as Code editors and other packages are super simple with the dnf package manager. You can also take advantage of Software which is an app store where you can search and install applications with just a click of a button. - -Fedora Linux supports Snap and Flatpak, and that gives you more flexibility. You can also take advantage of the RPM Fusion repository in Fedora. The RPM Fusion repo gives you access to many free and non-free packages. Fedora Linux doesn’t want to include these packages in their main repo for license and other obvious reasons. - -You can check out the latest Fedora Linux on their official website below. - -[Download Fedora][2] - -#### 2. Ubuntu Linux - -![Ubuntu Desktop is a perfect Linux Distribution for Programmers][3] - -Ubuntu Desktop is a perfect Linux Distribution for Programmers. - -The second Linux distribution in this list is Ubuntu Linux. Ubuntu Linux is the most used Linux distribution today in server and desktop both. Ubuntu provides a long-term support release with five years of official support (plus another five years of maintenance support) and two short-term releases per year for power users. - -Due to its popularity, all the latest packages and application vendors provide Ubuntu (.deb) variants. The popularity also brings massive support in forums and documentation, perfect for developers, especially when you are stuck with errors during the development phase. Learn more about Ubuntu in the below link. - -[Download Ubuntu][4] - -#### 3. openSUSE - -openSUSE is one of the most stable and professionally built Linux distributions used in critical systems worldwide. This Linux Distribution is a go-to solution for enterprise-level workloads that include desktops, servers and thin clients. - -It has some advantages over Ubuntu and Fedora. First, it has two variants – Leap and Tumbleweed. The openSUSE Leap is a long-term support release (LTS) that provides up-to-date stability. The openSUSE Tumbleweed is a rolling release software that features bleeding edge packages. - -If you need the latest packages and hardware support for your development, then Tumbleweed is your choice. If you need stability and a longer-running system with low maintenance, choose openSUSE Leap. - -One of the advantages of using openSUSE for your development work is its package manager YaST. You can automate many activities with ease using the YaST package manager. - -On top of that, the openSUSE software delivery method is outstanding. Its software portal is on the web, which you can visit, search for a package and click install. - -If you are a little experienced in Linux compared to the new users, choose openSUSE for your development work. - -[Download openSUSE][5] - -#### 4. Manjaro Linux - -Manjaro Linux is an Arch Linux-based distribution that makes Arch installation easy. It is based on Arch Linux but brings several features such as a GUI installer like Ubuntu or Linux Mint, pamac installer, its curated repositories and more. Manjaro comes in three primary desktop flavours – GNOME, KDE Plasma and Xfce to cater to almost all user base. - -If you want Arch Linux and its rolling release package base for your development needs but do not want to get into the hassles of installing vanilla Arch, Manjaro is your perfect choice. - -[Download Manjaro][6] - -#### 5. Arch Linux - -While Manjaro and other Arch-based easy installation Linux distributions are out there, you may still want to get your hands dirty with the [vanilla Arch installation][7] with your custom desktop. - -This is more for power developers or programmers who want more control and a custom Linux operating system built for projects or needs. You may want to install Arch Linux with your favourite desktop to set up your development operating system in those cases. - -Suppose you are experienced in Arch Linux and computers in general. In that case, this is the best choice among all because it gives you complete control over each package in your custom build Linux operating system. - -[Download Arch Linux][8] - -#### 6. Pop OS - -The Pop OS (represented as Pop!_OS) was developed by computer manufacturer System76 for their series of hardware. Pop OS is free and open-source, based on Ubuntu. It follows the Ubuntu release cycle for its base while bringing additional tweaks, and packages customised for users. - -![Pop OS 21.10 Desktop Linux Distributions][9] - -Pop OS 21.10 Desktop - -Pop OS is perfect for programmers because it natively supports many programming languages based on Ubuntu. It markets itself as popular among computer scientists and programmers for its curated software centre, which has a dedicated section featuring applications for development and programming. - -On top of that, the COSMIC desktop (customised GNOME desktop) in Pop OS gives a unique experience to programmers with auto-tiling, a lovely colour palette, native dark mode and a wide range of settings. - -If you need an Ubuntu base and want a stable programmer-friendly Linux distribution, then choose Pop OS. - -[Download POP OS][10] - -#### 7. KDE Neon - -If you are a developer who feels comfortable in the KDE Plasma desktop and wants a Qt-based development environment, then KDE Neon is perfect for you. - -KDE Neon is a Linux distribution based on the Ubuntu LTS version with the latest KDE Plasma desktop, and KDE Framework packages. So, in KDE Neon, you get Ubuntu LTS stability with bleeding-edge KDE packages with Qt. - -This is a perfect Linux Distribution if you need a fast system with out-of-the-box applications, a friendly user interface and huge community support. - -[Download KDE Neon][11] - -#### 8. Debian - -Debian GNU/Linux needs no introduction. Debian’s stable branch is the base of Ubuntu and all its derivatives. Hence it is one of the primary and stable Linux. And it is perfect for your development environment because it gives you ultimate stability with multi-year support. - -Although, Debian’s stable branch is slightly conservative in adopting the latest packages. Debian maintainers carefully check and merge packages because the entire world (well, almost) depends on Debian stability. - -It is a perfect programming environment for advanced users and sysadmins if you want a stable and long-running dev environment with low maintenance effort. - -[Download Debian Linux][12] - -#### 9. Kali Linux - -The Kali Linux is developed by Offensive Security and primarily targets ethical hackers and penetration testers looking out for network vulnerabilities. It comes with tons of hacking tools and applications pre-installed. - -It can be a perfect Linux distribution for programmers and developers if you are experienced enough. Go for Kali Linux if you are well versed with Linux with some experience in navigating around errors and dependencies. - -[Download Kali Linux][13] - -#### 10. Fedora Labs Options - -And the final Linux Distribution in this list is a combination of Linux Distributions from Fedora Linux. - -Fedora Labs provides specially curated Linux Distributions for programmers, scientists and students with pre-loaded applications, respective packages and utilities. Many people are unaware of these, and when appropriately configured, they can act as perfect ready-made Linux distribution for you. - -Here’s a summary of them. - -**Fedora Scientific** - -- GNU Scientific Library for C/C++ -- MATLAB Compatible MGNU Octave -- LaTeX -- Maxima Computer Algebra System -- Gnuplot for drawing 2D and 3D graphs -- Pandas Python library for data science -- IPython -- Packages for Java and R programming languages - -- Combination of Scientific and numerical open-source tools with KDE Plasma desktop. -- Application list includes – -- Learn more about Fedora Scientific and [download it here][14]. - -**Fedora COMP NEURO** - -- Open source neuroscience applications and packages with GNOME Desktop environment. Learn more and [download it here][15]. - -**Fedora Robotics Suite** - -- Perfect Linux distribution combines the best open-source robotics applications and packages targeted to beginner and experienced Robotics scientists and programmers. -- Learn more and [download it here][16]. - -**Other solutions** from Fedora Linux include [Fedora Security Labs][17], [Fedora Astronomy][18] and [Fedora Python Classroom][19], which you want to check out. - -These Fedora Labs options can be perfect Linux distributions for programming projects or working in specific science fields. - -### Summary - -So, how do you choose your favourite among this list of best Linux Distributions for programmers? - -If you are unsure and want to have a development system up and running with minimal effort, go for Fedora Workstation or Ubuntu. - -If you have spare time or want more control over your system, like experimenting and being comfortable with occasional errors, then go for Arch Linux-based systems. - -Pop OS is also a good choice for new developers new to the Linux ecosystem. For specific needs, go to the Fedora Labs options. - -I hope this list of best Linux Distributions for programmers in 2022 gives you some guidance on choosing your favourite Linux distributions for programming and development. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/top-linux-distributions-programmers-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2021/11/Fedora-35-Workstation.jpg -[2]: https://getfedora.org/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Ubuntu-Desktop-is-a-perfect-Linux-Distribution-for-Programmers.jpg -[4]: https://ubuntu.com/download -[5]: https://www.opensuse.org/ -[6]: https://manjaro.org/download/ -[7]: https://www.debugpoint.com/2022/01/archinstall-guide/ -[8]: https://archlinux.org/download/ -[9]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pop-OS-21.10-Desktop.jpg -[10]: https://pop.system76.com/ -[11]: https://neon.kde.org/download -[12]: https://www.debian.org/distrib/ -[13]: https://www.kali.org/ -[14]: https://labs.fedoraproject.org/en/scientific/ -[15]: https://labs.fedoraproject.org/en/comp-neuro/ -[16]: https://labs.fedoraproject.org/en/robotics/ -[17]: https://labs.fedoraproject.org/en/security -[18]: https://labs.fedoraproject.org/en/astronomy -[19]: https://labs.fedoraproject.org/en/python-classroom From 4d74ef76de8bfb000349ac09f368d82c6b78c5b7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 21 Nov 2022 23:23:20 +0800 Subject: [PATCH 2070/3123] RP @littlebirdnest https://linux.cn/article-15277-1.html --- ...atest LibreOffice in Ubuntu and other Linux.md | 135 ++++++++++++++++++ ...atest LibreOffice in Ubuntu and other Linux.md | 134 ----------------- 2 files changed, 135 insertions(+), 134 deletions(-) create mode 100644 published/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md delete mode 100644 translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md diff --git a/published/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md b/published/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md new file mode 100644 index 0000000000..179b548be1 --- /dev/null +++ b/published/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md @@ -0,0 +1,135 @@ +[#]: subject: "How to Install Latest LibreOffice in Ubuntu and other Linux" +[#]: via: "https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "littlebirdnest" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15277-1.html" + +如何在 Ubuntu 中安装最新的 LibreOffice +====== + +![][0] + +> 在 Ubuntu 和其他 Linux 中安装最新的 LibreOffice 版本的快速指南。 + +自由开源的办公套件 LibreOffice 有两个版本:社区版和企业版。“社区” 版是为那些希望获得最新的尖端软件技术的早期采用者准备的。而 “企业” 版本更加稳定,可能不包括所有的最新功能,但它是生产环境和专业工作的理想选择。 + +### 在 Ubuntu 和其他 Linux 中安装最新的 LibreOffice + +#### 1、删除预安装的 LibreOffice + +Ubuntu 和其他的 Linux 发行版带有预安装的 LibreOffice。这可能不是最新的,这是因为发行版有特定的发行周期。在进行新安装之前,你可以通过以下命令删除 Ubuntu 及其衍生发行版中的的旧版本。 + +打开一个终端并运行以下命令,以删除 Ubuntu 和相关发行版中的已安装的 LibreOffice。对于其他发行版,你可以使用发行版的软件包管理器将其删除。 + +``` +sudo apt remove –purge libreoffice* +sudo apt autoclean +sudo apt autoremove +``` + +然后重启以确保一切正常(尽管你也可以跳过这一步)。 + +#### 2、从网站上下载安装 + +前往 [官方下载页面][1]. 并通过从下拉菜单中选择类型下载 “最新的” 版本。对于 Ubuntu 和其他衍生产品,请选择 .deb 文件。 + +![LibreOffice download and install from official website][2] + +下载后,提取文件;你应该看到下面的所有软件包。 + +![Extracted LibreOffice DEB files][3] + +在提取文件的位置打开终端,并按顺序运行以下命令。首先,你需要安装 ure 包,其次是核心包,然后是所有的基本包。最后,就是主要的 LibreOffice 软件包。下面是一组典型的命令。你需要更改为具体版本的版本号。 + +``` +sudo dpkg -i libobasis7.0-ure_7.0.4.2-2_amd64.deb +sudo dpkg -i libobasis7.0-core_7.0.4.2-2_amd64.deb +sudo dpkg -i libobasis7.0* +``` + +``` +sudo dpkg -i libreoffice7.0* +``` + +如果你使用的是 Fedora Linux 或 Red Hat Linux,请按照上述相同的顺序使用 [dnf 命令][4]。 + +![Install LibreOffice via dpkg][5] + +等待安装完成。完成后,你可以通过应用程序菜单找到 LibreOffice。 + +![Latest LibreOffice in Menu][6] + +这应该完成安装最新 LibreOffice 的步骤。如果你不想遵循上述方法,请参阅以下选项。 + +### 通过 PPA 安装 + +如果你想通过 PPA 安装它,请按照以下步骤操作。确保在上面的第 1 步中删除现有的 LibreOffice。 + +``` +sudo add-apt-repository ppa:libreoffice/ppa +``` + +最后,运行以下命令从这个官方 PPA 安装最新的 LibreOffice 5.4 系列。 + +``` +sudo apt update +sudo apt install libreoffice +``` + +安装后,你可以通过 Dash 搜索启动 LibreOffice。 + +![LibreOffice 5.4.2 Running in Ubuntu][7] + +### 通过 Snap 和 Flatpak 安装 + +如果你是 Linux 用户,你可以尝试 LibreOffice 独立的可执行文件,它在 Snap 或 Flatpak 等沙箱中运行。 + +要通过 [Flatpak][8] 安装 LibreOffice ,请访问 [这个页面][9] 进行设置,然后运行以下命令进行安装: + +``` +flatpak install flathub org.libreoffice.LibreOffice +``` + +同样,对于 [Snap][10] 版本,使用以下命令进行安装: + +``` +sudo snap install libreoffice +``` + +### 如何升级到最新的 LibreOffice 版本? + +如果你不想删除 LibreOffice 但想升级到最新版本,请阅读我们下面的完整指南。 + +> **[在 Ubuntu、Linux Mint 和 Windows 中升级到最新的 LibreOffice][11]** + +如果你在安装最新的 LibreOffice 时遇到问题,请随时留言。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[littlebirdnest](https://github.com/littlebirdnest) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.libreoffice.org/download/download/ +[2]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-download-and-install-from-official-website.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2017/10/Extracted-LibreOffice-DEB-files.jpg +[4]: https://www.debugpoint.com/dnf-commands-examples/ +[5]: https://www.debugpoint.com/wp-content/uploads/2017/10/Install-LibreOffice-via-dpkg.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2017/10/Latest-LibreOffice-in-Menu.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-5.4.2-Running-in-Ubuntu-.png +[8]: https://flathub.org/apps/details/org.libreoffice.LibreOffice +[9]: https://flatpak.org/setup/ +[10]: https://snapcraft.io/libreoffice +[11]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ +[12]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/embed/#?secret=KINquNxuYI#?secret=FGij1s6Mfc +[0]: https://img.linux.net.cn/data/attachment/album/202211/21/232133g8pmpgssszv6p1v8.jpg \ No newline at end of file diff --git a/translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md b/translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md deleted file mode 100644 index 3eaae1e4ba..0000000000 --- a/translated/tech/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md +++ /dev/null @@ -1,134 +0,0 @@ -[#]: subject: "How to Install Latest LibreOffice in Ubuntu and other Linux" -[#]: via: "https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "littlebirdnest" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何在Ubuntu和其他Linux中安装最新的Libreoffice -====== - -**在Ubuntu和其他Linux中安装最新的Libreoffice版本的快速指南。** - -免费和开源的办公套件Libreoffice有两个版本。社区版本和企业版本。社区版本主要是给前期的用户尝鲜,有较前沿的技术. 企业版本较为稳定但不会包括最新的功能,是生产环境和专业工作的最佳选择 - -### 在Ubuntu和其他Linux中安装最新的Libreoffice - -#### 1.删除预安装的libreoffice - -ubuntu和其他linux,带预安装的Libreoffice。这可能不是最新的,因为发行版的发行周期是之前的版本.但是,在进行新安装之前,您可以通过以下命令删除Ubuntu及其相关的旧版本: - -打开一个终端并运行以下命令,以删除Ubuntu和相关分布中的已安装的Libreoffice。对于其他人,您可以使用Distro的软件包管理器将其删除。 - -``` -sudo apt remove –purge libreoffice* -sudo apt autoclean -sudo apt autoremove -``` - -然后重启以确保一切正常(你也可以跳过) - -#### 2. 从网站上下载安装 - -前往[官方下载页面][1]. 并通过从下拉菜单中选择类型下载“Fresh”版本。对于Ubuntu和其他导数,请选择.deb文件。 - -![LibreOffice download and install from official website][2] - -下载后,提取文件;您应该看到下面的所有软件包。 - -![Extracted LibreOffice DEB files][3] - -下载解压后y,在提取文件的位置打开终端并按顺序运行以下命令。首先,你需要安装 ure 包。第二个是核心包,然后是所有基本包。最后,就是主要的 LibreOffice 软件包。下面是主要一些的命令。但是您需要更具体版本的版本号。 - -``` -sudo dpkg -i libobasis7.0-ure_7.0.4.2-2_amd64.deb -sudo dpkg -i libobasis7.0-core_7.0.4.2-2_amd64.deb -sudo dpkg -i libobasis7.0* -``` - -``` -sudo dpkg -i libreoffice7.0* -``` - -如果您使用的是 Fedora Linux 或 Red Hat Linux,请按照上述相同的顺序使用[dnf 命令][4] - -![Install LibreOffice via dpkg][5] - -等待安装完成。完成后,您可以通过应用程序菜单找到 LibreOffice。 - -![Latest LibreOffice in Menu][6] - -这应该完成安装最新 LibreOffice 的步骤。如果您不想遵循上述方法,请参阅以下选项。 - -#### 通过 PPA 安装 - -如果您想通过 PPA 安装它,请按照以下步骤操作。确保在上面的第 1 步中删除现有的 LibreOffice。 - -``` -sudo add-apt-repository ppa:libreoffice/ppa -``` - -最后,运行以下命令从这个官方 PPA 安装最新的 LibreOffice 5.4 系列。 - -``` -sudo apt update -sudo apt install libreoffice -``` - -安装后,您可以通过 Dash 搜索启动 LibreOffice。 - -![LibreOffice 5.4.2 Running in Ubuntu][7] - -#### 通过 Snap 和 Flatpak 安装 - -如果您是 Linux 用户,您可以尝试 LibreOffice 独立的可执行文件,它在 Snap 或 Flatpak 等沙箱中运行。 - -- 要通过[Flatpak][8]安装 LibreOffice ,请访问this page][9] 进行设置,然后运行以下命令进行安装 - -``` -flatpak install flathub org.libreoffice.LibreOffice -``` - -- 同样,对于[Snap version][10],使用以下命令进行安装。 - -``` -sudo snap install libreoffice -``` - -### 如何升级到最新的 LibreOffice 版本? - -如果您不想删除 LibreOffice 但想升级到最新版本,请阅读我们下面的完整指南。 - -> [在 Ubuntu、Linux Mint 和 Windows 中升级到最新的 LibreOffice[11] - -![“在 Ubuntu、Linux Mint 和 Windows 中升级到最新的 LibreOffice” — DebugPoint.com][12] - -如果您在安装最新的 LibreOffice 时遇到问题,请随时发表评论。 - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[littlebirdnest](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.libreoffice.org/download/download/ -[2]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-download-and-install-from-official-website.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2017/10/Extracted-LibreOffice-DEB-files.jpg -[4]: https://www.debugpoint.com/dnf-commands-examples/ -[5]: https://www.debugpoint.com/wp-content/uploads/2017/10/Install-LibreOffice-via-dpkg.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2017/10/Latest-LibreOffice-in-Menu.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2017/10/LibreOffice-5.4.2-Running-in-Ubuntu-.png -[8]: https://flathub.org/apps/details/org.libreoffice.LibreOffice -[9]: https://flatpak.org/setup/ -[10]: https://snapcraft.io/libreoffice -[11]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/ -[12]: https://www.debugpoint.com/libreoffice-upgrade-update-latest/embed/#?secret=KINquNxuYI#?secret=FGij1s6Mfc From 11fca21dd0cb42266f9aa37f99c5971783bd0635 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 22 Nov 2022 00:02:30 +0800 Subject: [PATCH 2071/3123] RP @chai001125 https://linux.cn/article-15278-1.html --- ...to run Kubernetes in your Linux homelab.md | 100 ++++++++++++++++++ ...to run Kubernetes in your Linux homelab.md | 99 ----------------- 2 files changed, 100 insertions(+), 99 deletions(-) create mode 100644 published/20210618 5 more reasons to run Kubernetes in your Linux homelab.md delete mode 100644 translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md diff --git a/published/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/published/20210618 5 more reasons to run Kubernetes in your Linux homelab.md new file mode 100644 index 0000000000..92af1e9e3a --- /dev/null +++ b/published/20210618 5 more reasons to run Kubernetes in your Linux homelab.md @@ -0,0 +1,100 @@ +[#]: subject: (5 more reasons to run Kubernetes in your Linux homelab) +[#]: via: (https://opensource.com/article/21/6/kubernetes-linux-homelab) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (chai001125) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15278-1.html) + +在你的 Linux 家庭实验室上运行 Kubernetes 的 5 个理由 +====== + +> Kubernetes 的优势不仅在于它能够做什么,还在于知道它能为你做什么。 + +![][0] + +在 [树莓派家庭实验室上运行 Kubernetes 的 5 个理由][2] 这篇文章中,我解释了为什么推荐在家里使用 Kubernetes。其中的理由相对来说会有点随意,并且主要于关注结果。除了 Kubernetes 好用的功能之外,还有其他几个应将 Kubernetes 包含在你自己的计算机的理由。 + +(LCTT 译注:家庭实验室Homelab 指的是安置在你家里的一个服务器或者多服务器的组合配置。在之上托管了多个服务和虚拟系统,以此来进行测试、开发,或者提供家庭功能用途。) + +### 1、Kubernetes 是基于 Linux 而建立的 + +![T-shirt reading "Containers are Linux"][3] + +Kubernetes 有很高的知名度。对于一些人来说,Kubernetes 是一种神秘技术,有一个不好念的名字;而对另一些人来说,Kubernetes 就好像是牧羊犬放牧羊群一样,可以帮助他们管理过多的容器;对于其它人来说,Kubernetes 是一种 cloud 的操作系统,是 实效云开发 effective cloud development 的一个有用的界面;对于大多数人来说,Kubernetes 可能是他们从未听说过的后端软件。正如人们所想的那样,Kubernetes 具有所有这些能力,甚至有更多的功能。 + +并非每个人都以相同的方式使用 Kubernetes,但如果你主要的工作是系统管理,你会发现 Kubernetes _只是又一个 Linux 命令_。 + +我有一件 T 恤,上面写着 “容器就是 Linux Containers are Linux ”,它的意思是显而易见的。容器技术使用 cgroup,来运行包含一个或一组应用程序的最小 Linux 操作系统镜像。当你运行容器时,实际上你就是在运行 Linux。虽然 Kubernetes 能在许多平台上使用,但 Kubernetes 管理的是 Linux 容器。当你通过终端与 Kubernetes 交互时,就像是使用 Linux:有命令、选项、参数和语法。运行 Kubernetes 的 `kubeadm` 或(在 OKD 或 OpenShift 上)运行 `oc` 命令,你会感觉到很熟悉,是因为它们的工作方式与你习惯使用的任何其他 Linux 命令一样。开始时看似陌生的东西很快就会变得自然,任何有兴趣在终端上花时间的 Linux 用户都可以在 Kubernetes 中探索到许多有趣的东西。 + +### 2、Kubernetes 很灵活 + +在过去,Kubernetes 有点死板,因为从本质上来说,它仅能支持一个 容器运行时 container runtime 。这个规定非常严格,以至于今天需要一个 硬编码的垫片 hardcoded shim ,才能绕过这个遗留问题。幸运的是,如今 Kubernetes 已经变得足够灵活,可以满足管理员的许多不同需求了。[Podman][5] 和 [CRI-O][6] 可用作于容器引擎,它们都可以与 [systemd][7] 集成(这是因为 Kubernetes 的底层都是 Linux)。你可以自己选择 Kubernetes 所使用的文件系统、集群大小和构造、监控工具、镜像、编程语言等等配置。甚至现在有些人说 Kubernetes 有 _太多_ 的选择了。 + +### 3、学习 Kubernetes 有助于个人发展 + +容器是一个硕果累累的事物,它们会快速地成倍增长,这就是它的设计。容器旨在扩展,它们通过生成克隆来扩展。将容器分组(称为 “容器荚pod”),并自动管理容器荚的生命周期,这就是 Kubernetes 运用的方式。它正在改变服务器的运行方式。 + +你可能不需要无限扩展的容器集合,也不需要任何东西来帮助你管理正运行的一或两个容器。但是,如果你希望受益于处理容器荚的能力,那么 Kubernetes 正是你需要学习的工具。随着越来越多的公司和组织走向全球,拥抱 [数字化转型][8],Kubernetes 正在成为 IT 领域的必备技能。如果你想要在这个领域中发展,那么现在开始学习 Kubernetes 并熟悉它的常见问题及其解决方案,将会是一项很好的投资。 + +### 4、Kubernetes 让容器更有意义 + +你可能还记得几年前,当开源项目刚开始将它们的代码作为容器镜像分发时,对于许多人来说,容器这一概念是令人费解的:没有多少系统管理员真正理解 [容器是什么][9],或者明白容器的边界在哪里、如何进入容器,以及为什么数据不能存在于容器内。 + +现在,IT 界(包括开发人员在内)都对容器的概念都十分熟悉了。对于现代的 [CI/CD 工作流程][10] 来说,交付给容器十分有意义。不过,对于系统管理员来说,容器的优势如下:安装容器(理论上)比等待发行版更新其软件包更为容易,而且容器可以扩展。然而,在你使用 Kubernetes 之前,你很可能都不会真正地感受到这些好处。当你开始使用 Kubernetes 和相关工具管理容器之前,持续交付容器的好处和容器的扩展能力可能只是你从文章里面读过的想法。将容器集成到你管理服务器的方式中,你会突然明白 Kubernetes 中令人兴奋的是什么。 + +![Apache JMeter][11] + +你可以试试看这个最基本的测试:只需在容器中启动你最喜欢的 Web 服务器,创建一个容器荚,然后使用来自 [Apache JMeter][12] 的流量访问你的服务器,然后观察容器响应。 + +### 5、Kubernetes 是云原生的 + +如果你主要做的是软件开发,而不是系统管理,那么 Kubernetes 也是 网页应用程序 web apps 的一个很好的平台。我们现在都在使用网页应用程序,尽管大多数人只是将它们视为 “网站 website ”。网络拥有庞大的用户群,因此通过浏览器提供开源的应用程序是非常有意义的。有一些很棒的开源应用程序在网络上运行,其中许多的应用程序都以容器的形式分发的,它们可以支持简单的安装和持续的用户体验。 + +### Kubernetes 的其他优势:Kubernetes 很有意思 + +你还记得你还是 Linux 新手的时候吗?对于一些人来说,那可能是几十年前的事了,而对于其他人来说,可能是不久的过去。不过,对于所有人来说,学习一项新事物会是一个有趣的挑战。如果你达到了认为 “Linux 的安装与其说是一个挑战,不如说是一个麻烦” 的程度,那么你可以尝试一下构建一个 Kubernetes 集群。它会让你回忆起你忘记的各种概念:如何修改纯文本(特别是 [YAML][13] 格式的)配置文件,如何配置网络接口和网络,如何路由流量,知道一个后端相对于另一个后端的优缺点,在 `--dry-run` 测试之后运行 `--dry-run` 测试,试探性地按回车键来确定你是否做对了。老实说,使用 Kubernetes 很有趣。 + +如果你想构建自己的基础架构,没有什么比构建你自己的 Kubernetes 集群更好的了。Kubernetes 集群将会为你打开一个全新的世界。你很快就会成为一名云架构师,学会完善你的开放云,在容器中安装令人惊叹的开源 Web 应用程序,也能为你的家人和朋友提供访问权限。 + +你自己就能得到解决方案。这真是太棒啦。 + +### 快来试试看 Kubernetes 吧 + +对 Kubernetes 的初学者来说,Kubernetes 似乎很难快速上手,因为 Kubernetes 是一个新的工具,会让你感到有点害怕,而且它还需要云服务。但是,以下有几种方法可以让你开始 Kubernetes 体验。 + +首先,安装 [Minikube][14] 或 [Minishift][14]。这两个工具都允许你在自己的计算机上运行 Kubernetes 的本地实例。虽然这种方式比不上“构建一个集群并与你的朋友共享”那么令人满意,但它是一种让你熟悉 Kubernetes 环境、命令和工具包的很好且安全的方式。 + +当你准备进一步研究 Kubernetes 后,请进一步阅读 Chris Collins 的《[使用树莓派构建 Kubernetes 集群][15]》 的文章。之后,再下载我们的免费电子书 《[在你树莓派家庭实验室上运行 Kubernetes][16]》。在不知不觉中,你会发现自己也明白了“容器就是 Linux”的含义。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/kubernetes-linux-homelab + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[wxy](https://github.com/wxy) + +本文由 [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/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) +[2]: https://opensource.com/article/20/8/kubernetes-raspberry-pi +[3]: https://opensource.com/sites/default/files/uploads/containers-are-linux.jpg (T-shirt reading "Containers are Linux") +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: http://podman.io +[6]: http://cri-o.io +[7]: https://opensource.com/article/21/5/systemd +[8]: https://enterprisersproject.com/what-is-digital-transformation +[9]: https://opensource.com/article/18/11/behind-scenes-linux-containers +[10]: https://opensource.com/article/18/8/what-cicd +[11]: https://opensource.com/sites/default/files/uploads/jmeter.png (Apache JMeter) +[12]: https://jmeter.apache.org +[13]: https://www.redhat.com/sysadmin/yaml-beginners +[14]: https://opensource.com/article/18/10/getting-started-minikube +[15]: https://opensource.com/article/20/6/kubernetes-raspberry-pi +[16]: https://opensource.com/downloads/kubernetes-raspberry-pi +[0]: https://img.linux.net.cn/data/attachment/album/202211/22/000124imal02j2yollqbqj.jpg \ No newline at end of file diff --git a/translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md deleted file mode 100644 index 7f6f78304c..0000000000 --- a/translated/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: (5 more reasons to run Kubernetes in your Linux homelab) -[#]: via: (https://opensource.com/article/21/6/kubernetes-linux-homelab) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -在你的 Linux 主机上运行 Kubernetes 的 5 个理由 -====== - ->Kubernetes 的优势不仅在于它能够做什么,还在于知道它能为你做什么。 - -![Working from home at a laptop][1] - -在 [Raspberry Pi 家庭实验室 homelab 上运行 Kubernetes 的 5 个理由][2] 这篇文章中,我解释了为什么推荐在家里使用 Kubernetes。其中的理由相对来说会有点随意,并且主要于关注结果。除了 Kubernetes 好用的功能之外,还有其他几个应将 Kubernetes 包含在你自己的计算机的理由。 - -(LCTT译注:Homelab 指的是安置在你家里的一个服务器或者多服务器的组合配置。在之上托管了多个服务和虚拟系统,以此来进行测试、开发,或者提供家庭功能用途。) - -### 1、Kubernetes 是基于 Linux 而建立的 - -![T-shirt reading "Containers are Linux"][3] - -Kubernetes 有很高的知名度。对于一些人来说,Kubernetes 是一种难以言说的神秘技术;对其他人来说,Kubernetes 就好像是牧羊犬放牧羊群一样,可以帮助他们管理过多的容器;对于另一些人来说,Kubernetes 是一种 cloud 的操作系统,是 实效云开发 effective cloud development 的一个有用的界面;对于大多数人来说,Kubernetes 可能是他们从未听说过的后端软件。正如人们所想的那样,Kubernetes 具有所有这些能力,甚至有更多的功能。 - -并非每个人都以相同的方式使用 Kubernetes,但如果你主要的工作是系统管理,你会发现 Kubernetes _只是另一个 Linux 命令_。 - -我有一件 T 恤,上面写着 “容器就是 Linux” Containers are Linux ,它的意思是显而易见的。容器技术使用 cgroups,来运行包含一个或一组应用程序的最小 Linux 操作系统映像。当你运行容器时,实际上你就是在运行 Linux。虽然在许多平台上都能使用 Kubernetes 命令,但 Kubernetes 命令管理的是 Linux 容器。当你通过终端与 Kubernetes 交互时,Kubernetes 命令类似于 Linux 的使用:有命令、选项、参数和语法。运行 Kubernetes 的 `kubeadm` 或(在 OKD 或 OpenShift 上)运行 `oc` 命令,你会感觉到很熟悉,是因为它们的工作方式与你习惯使用的任何其他 Linux 命令一样。开始时看似陌生的东西很快就会变得自然,任何有兴趣花时间在终端上的 Linux 用户都可以在 Kubernetes 中探索到许多有趣的东西。 - -### 2、Kubernetes 很灵活 - -在过去,Kubernetes 有点死板,因为从本质上来说,它仅能支持一个 容器运行时 container runtime 。这个规定非常严格,以至于今天需要一个 硬编码的垫片 hardcoded shim ,才能绕过这个遗留问题。幸运的是,如今 Kubernetes 已经变得足够灵活,可以满足管理员的许多不同需求了。[Podman][5] 和 [CRI-O][6] 可用作于容器引擎,它们都可以与 [systemd][7] 集成(这是因为 Kubernetes 的底层都是 Linux)。你可以自己选择 Kubernetes 所使用的文件系统、集群大小和构造、监控工具、镜像、编程语言等等配置。甚至现在有些人说 Kubernetes 有 _太多_ 的选择了。 - -### 3、学习 Kubernetes 有助于个人发展 - -容器是一个硕果累累的事物,它们会快速地成倍增长。这是设计使然的,容器旨在扩展,它们通过生成克隆来扩展。将容器分组(称为 _pods_),并自动化 Pod 生命周期的管理方式,这就是 Kubernetes 运用的方式。Kubernetes 正在改变服务器的运行方式。 - -你可能不需要无限扩展的容器集合,也不需要任何东西来帮助你管理正运行的一或两个容器。但是,如果你希望受益于处理 Pods 的能力,那么 Kubernetes 正是你需要学习的工具。随着越来越多的公司和组织走向全球,并拥抱 [数字化转型][8],Kubernetes 正在成为 IT 领域的必备技能。如果你想要在这个领域中发展,那么现在开始学习 Kubernetes 并熟悉它的常见问题及其解决方案,将会是一项很好的投资。 - -### 4、Kubernetes 让容器更有意义 - -你可能还记得几年前,当开源项目刚开始将它们的代码作为容器镜像分发时,对于许多人来说,容器这一概念是令人费解的:没有多少系统管理员真正理解 [容器是什么][9],或者明白容器的边界在哪里、如何进入容器,以及为什么数据不能存在于容器内。 - -现在,IT 界(包括开发人员在内)都对容器的概念都十分熟悉了。对于现代的 [CI/CD 工作流程][10] 来说,分发容器十分有意义。不过,对于系统管理员来说,容器的优势如下:安装容器比等待发行版更新其软件包和容器规模,更为容易。然而,在你使用 Kubernetes 之前,你很可能都不会真正地感受到这些好处。当你开始使用 Kubernetes 和相关工具管理容器之前,持续交付容器的好处和容器的扩展能力可能只是你读过的想法。将容器集成到你管理服务器的方式中,你会突然明白 Kubernetes 中令人兴奋的是什么。 - -![Apache JMeter][11] - -你可以试试看这个最基本的测试:只需在容器中启动你最喜欢的 Web 服务器,创建一个 pod,然后使用来自 [Apache JMeter][12] 的流量访问你的服务器,然后观察容器响应。 - -### 5、Kubernetes 是 云原生的 Cloud-native - -如果你主要做的是系统开发,而不是系统管理,那么 Kubernetes 也是 网络应用程序 web apps 的一个很好的平台。我们现在都在使用网络应用程序,尽管大多数人只是将它们视为“网站 website ”。Web 拥有庞大的用户群,因此通过浏览器提供开源的应用程序是非常有意义的。有一些很棒的开源应用程序在网络上运行,其中许多的应用程序都以容器的形式分发的,它们可以支持简单的安装和持续的用户体验。 - -### Kubernetes 的其他优势:Kubernetes 很有意思 - -你还记得你还是 Linux 新手的时候吗?对于一些人来说,那可能是几年前的事了,而对于其他人来说,可能是不久的过去。不过,对于所有人来说,学习一项新事物会是一个有趣的挑战。如果你达到了认为“Linux 的安装是麻烦多于挑战”的程度,那么你可以尝试一下构建一个 Kubernetes 集群。它会让你回忆起你忘记的各种概念:如何破解纯文本(特别是 [YAML][13] 格式的)配置文件,如何配置网络接口和网络,如何路由流量,知道一个后端相对于另一个后端的优缺点,在 `--dry-run` 测试之后运行 `dry-run` 测试,试探性地按 Return 来确定你是否做对了。老实说,使用 Kubernetes 很有趣。 - -如果你想自己构建基础架构,没有什么比构建你自己的 Kubernetes 集群更好的了。Kubernetes 集群将会为你打开一个全新的世界。你很快就会成为一名云架构师,学会完善你的开放云,在容器中安装令人惊叹的开源 Web 应用程序,也能为你的家人和朋友提供访问权限。 - -你自己就能得到解决方案。这真是太棒啦。 - -### 快来试试看 Kubernetes 吧 - -对 Kubernetes 的初学者来说,Kubernetes 似乎很难快速上手,因为 Kubernetes 是一个新的工具,会让你感到有点害怕,而且它还需要云。但是,以下有几种方法可以让你开始 Kubernetes 体验。 - -首先,安装 [Minikube][14] 或 [Minishift][14]。这两个工具都允许你在自己的计算机上运行 Kubernetes 的本地实例。虽然这种方式比不上“构建一个集群并与你的朋友共享”那么令人满意,但它是一种让你熟悉 Kubernetes 环境、命令和工具包的很好且安全的方式。 - -当你准备进一步研究 Kubernetes 后,请进一步阅读 Chris Collins 关于 [使用 Raspberry Pi 构建 Kubernetes 集群][15] 的文章。之后,再下载我们的免费电子书 [在你的 Raspberry Pi 家庭实验室上运行 Kubernetes][16]。在不知不觉中,你会发现自己也明白了“容器就是 Linux”的含义。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/6/kubernetes-linux-homelab - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[chai001125](https://github.com/chai001125) -校对:[校对者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/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) -[2]: https://opensource.com/article/20/8/kubernetes-raspberry-pi -[3]: https://opensource.com/sites/default/files/uploads/containers-are-linux.jpg (T-shirt reading "Containers are Linux") -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: http://podman.io -[6]: http://cri-o.io -[7]: https://opensource.com/article/21/5/systemd -[8]: https://enterprisersproject.com/what-is-digital-transformation -[9]: https://opensource.com/article/18/11/behind-scenes-linux-containers -[10]: https://opensource.com/article/18/8/what-cicd -[11]: https://opensource.com/sites/default/files/uploads/jmeter.png (Apache JMeter) -[12]: https://jmeter.apache.org -[13]: https://www.redhat.com/sysadmin/yaml-beginners -[14]: https://opensource.com/article/18/10/getting-started-minikube -[15]: https://opensource.com/article/20/6/kubernetes-raspberry-pi -[16]: https://opensource.com/downloads/kubernetes-raspberry-pi From a3bc3ff1e1789e5d8312609d691ce948833ef76e Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 22 Nov 2022 08:42:08 +0800 Subject: [PATCH 2072/3123] translated --- ... Elementary OS’s Pantheon Desktop in Arch Linux.md | 176 ----------------- ... Elementary OS’s Pantheon Desktop in Arch Linux.md | 177 ++++++++++++++++++ 2 files changed, 177 insertions(+), 176 deletions(-) delete mode 100644 sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md create mode 100644 translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md diff --git a/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md b/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md deleted file mode 100644 index b44c292758..0000000000 --- a/sources/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md +++ /dev/null @@ -1,176 +0,0 @@ -[#]: subject: "How to Install Elementary OS’s Pantheon Desktop in Arch Linux" -[#]: via: "https://www.debugpoint.com/pantheon-arch-linux-install/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Elementary OS’s Pantheon Desktop in Arch Linux -====== - -**Pantheon is the default desktop environment for the elementary OS. This quick guide explains the steps to install the Pantheon desktop environment in Arch Linux.** - -Pantheon is a beautiful desktop environment used by the elementary OS. It is based on GTK3 (GTK4 porting in progress) and Vala and is a nice and clean desktop that provides you with a refined experience of a Linux desktop. - -The desktop is primarily used by the elementary OS. Elementary OS provides a modified version of Pantheon desktop, which is based on the GNOME software base. - -The elementary OS is based on the Ubuntu LTS release. Hence it is super easy to install the Pantheon desktop in ubuntu-based distributions. That means if you want to experience Pantheon without installing elementary OS – it’s just one or two commands to install it in Ubuntu. - -In Fedora, you can also install using group packages. However, a distro called [Ultramarine Linux][1] provides it by default with a Fedora base. - -But, installing Pantheon in Arch Linux requires some work. It is not straightforward with a simple pacman command and won’t work out of the box at all. Some configuration is required and might break your system. - -Here I give you the guideline and steps to install Pantheon Desktop in Arch Linux. - -**Warning:**Things may not go well the first time, so I suggest you do it on a virtual machine before installing it on a physical system. Because installing Pantheon in Arch is not as streamlined as installing GNOME, Xfce, and KDE Plasma desktop in Arch Linux. It requires some additional manual configuration as well. - -Here are the steps to install Pantheon Desktop in Arch Linux. - -### Install Pantheon Desktop in Arch Linux - -#### Step 1: Install Base System - -Make sure you install the Arch Linux base system by following the automated [archinstall script using this guide][2]. If you’re already running an Arch installation, you can skip this step and follow the next step. - -#### Step 2: Update Your System - -Open a terminal in your Arch installation. And make sure the system is up to date by running the below command: - -``` -pacman -Syu -``` - -#### Step 3: Instal yay AUR Helper - -Many packages that are required for Pantheon are not available in the Arch official repository. They are available in Arch User Repo (AUR). Hence you need to install yay for additional packages. Follow [this guide to install yay AUR helper][3]. - -#### Step 4: Install Pantheon Desktop in Arch Linux - -Install the following packages using the below command. These are required packages available in the Arch official repository consisting of all necessary components, wingpanel, icons, and wallpapers. - -- [pantheon][4] -- lightdm-pantheon-greeter -- sound-theme-elementary -- switchboard -- lightdm-gtk-greeter -- elementary-icon-theme -- elementary-wallpapers -- pantheon-applications-menu -- wingpanel-indicator-session -- wingpanel-indicator-datetime - -``` -pacman -S --needed pantheon lightdm-pantheon-greeter sound-theme-elementary switchboard lightdm-gtk-greeter elementary-icon-theme elementary-wallpapers pantheon-applications-menu wingpanel-indicator-session wingpanel-indicator-datetime inter-font firefox -``` - -Install the following packages from the user repository. These are some additional packages that are not available in the Arch official repository. And these might take some time to install. - -- pantheon-session-git -- gnome-settings-daemon-elementary -- pantheon-default-settings -- switchboard-plug-pantheon-tweaks-git -- urutau-icons-git -- pantheon-dock-git - -``` -yay -S pantheon-session-git pantheon-default-settings switchboard-plug-pantheon-tweaks-git urutau-icons-git pantheon-dock-git -``` - -The next step is to install the display server and manager. Use `lightdm` as the display manager for Pantheon in Arch. I tried using other display managers with Pantheon but that didn’t end well. - -``` -pacman -S --needed xorg lightdm -``` - -#### Step 5: Configure - -The default greeter needs some modifications. Run the below command to check the available sessions. - -``` -ls -1 /usr/share/xgreeters -``` - -![greeters list][5] - -Open the lightdm configuration file and change the greeter-session to io.elementary.greeter. - -``` -sudo nano /etc/lightdm/lightdm.conf - -greeter-session=io.elementary.greeter -``` - -Save and close the file (CTRL+O, ENTER and CTRL+X). - -![lightdm conf][6] - -Enable the display manager and network manager in systemd. - -``` -systemctl enable lightdmsystemctl enable NetworkManager -``` - -Reboot the system. - -``` -systemctl reboot -``` - -If all went well, you should see the following login screen (I know, it doesn’t look cool at all, anyway). Change the session from the top dropdown and log in with the username and password. - -![Login screen - Pantheon in Arch][7] - -#### Step 6: Post-Install Configuration - -When I first logged in to my test system, many things didn’t work. Here’s a list of items and their possible solutions. - -a) **Wallpaper**: The wallpaper module seems not to be working at all. So, there was no wallpaper by default. Even the “Change Wallpaper” option is not opening. If you face this, install `dconf` editor and change the wallpaper via the below steps. - -``` -pacman -S --needed dconf-editor -``` - -Then Launch the dconf editor from the menu. Navigate to `"org > gnome > desktop > background > picture-uri"`. Turn off the default value and add the custom value `file:////usr/share/backgrounds/Ashim DSilva.jpg`. You can use any other image as well. Save and close. - -![Change background property using dconf-editor][8] - -b) **Icons**: Change the icons via `Settings > Tweaks.` Then change the icon and cursors to urutau-icons. - -After all the configurations and installation, you should be all set with the Pantheon Desktop in Arch Linux. Here’s a screenshot of my test machine. - -![Pantheon Desktop in Arch Linux][9] - -### Closing Notes - -I hope this guide helps you eventually install the Pantheon desktop in Arch Linux. It took me a couple of days to finally able to fit the pieces together and make them work. - -Although some small features are still not working, a workable Pantheon desktop is still available. - -The only thing that surprises me is the performance of Pantheon in Arch. The elementary OS installation is not that fast in my same test machine. But the Pantheon base is faster in Arch than a vanilla elementary OS. However, if you would like Pantheon, give it a go. - -If you face any errors, let me know using the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/pantheon-arch-linux-install/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/ultramarine-linux-36/ -[2]: https://www.debugpoint.com/archinstall-guide/ -[3]: https://www.debugpoint.com/install-yay-arch/ -[4]: https://wiki.archlinux.org/index.php/Pantheon -[5]: https://www.debugpoint.com/wp-content/uploads/2021/02/greeters-list.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/02/lightdm-conf.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Login-screen-Pantheon-in-Arch.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Change-background-property-using-dconf-editor.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2021/02/Pantheon-Desktop-in-Arch-Linux-1.jpg diff --git a/translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md b/translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md new file mode 100644 index 0000000000..ed4ecc1d09 --- /dev/null +++ b/translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md @@ -0,0 +1,177 @@ +[#]: subject: "How to Install Elementary OS’s Pantheon Desktop in Arch Linux" +[#]: via: "https://www.debugpoint.com/pantheon-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中安装 Elementary OS 的 Pantheon 桌面 +====== + +**Pantheon 是 Elementary OS 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Pantheon 桌面环境的步骤**。 + +Pantheon 是 elementary OS 使用的一个漂亮的桌面环境。它基于 GTK3(GTK4 移植正在进行中)和 Vala,是一个漂亮而干净的桌面,为你提供了一个精致的 Linux 桌面体验。 + +该桌面主要由 elementary OS 使用。Elementary OS 提供了 Pantheon 桌面的修改版,它是基于 GNOME 软件基础的。 + +Elementary OS 是基于 Ubuntu LTS 版本。因此,在基于 ubuntu 的发行版中安装 Pantheon 桌面是超级容易的。这意味着如果你想在不安装 elementary OS 的情况下体验 Pantheon,在 Ubuntu 中这只需要一两个命令就可以安装。 + +在 Fedora 中,你也可以使用组包进行安装。然而,一个以 Fedora 为基础,名为 [Ultramarine Linux][1] 的发行版默认提供了它。 + +但是,在 Arch Linux 中安装 Pantheon 需要一些工作。它不是用简单的 pacman 命令就能直接完成的,而且不能开箱即用。需要一些配置,这可能会破坏你的系统。 + +这里我给你提供了在 Arch Linux 中安装 Pantheon 桌面的指南和步骤。 + +**警告:**第一次可能不顺利,所以我建议你在物理系统上安装前先在虚拟机上进行。因为在 Arch 中安装 Pantheon 并不像在 Arch Linux 中安装 GNOME、Xfce 和 KDE Plasma 桌面那样流畅。它还需要一些额外的手动配置。 + +下面是在 Arch Linux 中安装 Pantheon 桌面的步骤。 + +### 在 Arch Linux 中安装 Pantheon 桌面 + +#### 第 1 步:安装基础系统 + +确保你按照[本指南的自动 archinstall 脚本][2]安装了 Arch Linux 基础系统。如果你已经在完成了 Arch 安装,你可以跳过这一步,按照下一步进行。 + +#### 第 2 步:更新你的系统 + +在你的 Arch 中打开一个终端。并通过运行以下命令确保系统是最新的: + +``` +pacman -Syu +``` + +#### 第 3 步:安装 yay AUR 助手 + +Many packages that are required for Pantheon are not available in the Arch official repository. They are available in Arch User Repo (AUR). Hence you need to install yay for additional packages. Follow [this guide to install yay AUR helper][3]. +Pantheon 所需的许多包在 Arch 官方仓库中不可用。它们存在于 Arch 用户仓库 (AUR) 中。因此你您需要安装 yay 以获得额外的软件包。按照[本指南安装 yay AUR 助手][3]。 + +#### 第 4 步:在 Arch Linux 中安装 Pantheon 桌面 + +使用以下命令安装以下软件包。这些是 Arch 官方仓库中可用的必需软件包,包括所有必要的组件、wingpanel、图标和壁纸。 + +- [pantheon][4] +- lightdm-pantheon-greeter +- sound-theme-elementary +- switchboard +- lightdm-gtk-greeter +- elementary-icon-theme +- elementary-wallpapers +- pantheon-applications-menu +- wingpanel-indicator-session +- wingpanel-indicator-datetime + +``` +pacman -S --needed pantheon lightdm-pantheon-greeter sound-theme-elementary switchboard lightdm-gtk-greeter elementary-icon-theme elementary-wallpapers pantheon-applications-menu wingpanel-indicator-session wingpanel-indicator-datetime inter-font firefox +``` + +从用户仓库安装以下包。这些是 Arch 官方仓库中不可用的一些附加包。这些可能需要一些时间来安装。 + +- pantheon-session-git +- gnome-settings-daemon-elementary +- pantheon-default-settings +- switchboard-plug-pantheon-tweaks-git +- urutau-icons-git +- pantheon-dock-git + +``` +yay -S pantheon-session-git pantheon-default-settings switchboard-plug-pantheon-tweaks-git urutau-icons-git pantheon-dock-git +``` + +下一步是安装显示服务器和管理器。使用 `lightdm` 作为 Arch 中 Pantheon 的显示管理器。我尝试将其他显示管理器与 Pantheon 一起使用,但结果并不理想。 + +``` +pacman -S --needed xorg lightdm +``` + +#### 第 5 步:配置 + +默认欢迎程序需要一些修改。运行以下命令以检查可用会话。 + +``` +ls -1 /usr/share/xgreeters +``` + +![greeters 列表][5] + +打开 lightdm 配置文件并将 greeter-session 更改为 io.elementary.greeter。 + +``` +sudo nano /etc/lightdm/lightdm.conf + +greeter-session=io.elementary.greeter +``` + +保存并关闭文件(CTRL+O、回车 和 CTRL+X)。 + +![lightdm 配置][6] + +在 systemd 中启用显示管理器和网络管理器。 + +``` +systemctl enable lightdmsystemctl enable NetworkManager +``` + +重启系统。 + +``` +systemctl reboot +``` + +如果一切顺利,你应该会看到以下登录屏幕(我知道,它看起来一点也不酷)。从顶部下拉菜单更改会话并使用用户名和密码登录。 + +![Pantheon 在 Arch 中的登录页面][7] + +#### 第 6 步:安装后配置 + +当我第一次登录到我的测试系统时,很多东西都不起作用。以下是列表及其可能的解决方案。 + +a) **壁纸**:壁纸模块似乎根本不起作用。因此,默认情况下没有壁纸。甚至“更改壁纸”选项也没有打开。如果遇到这种情况,请安装 `dconf` 编辑器并通过以下步骤更改壁纸。 + +``` +pacman -S --needed dconf-editor +``` + +接着从菜单启动 dconf 编辑器。进入 `“org > gnome > desktop > background > picture-uri”`。关闭默认值并添加自定义值 `file:////usr/share/backgrounds/Ashim DSilva.jpg`。你也可以使用任何其他图像。保存并关闭。 + +![使用 dconf-editor 更改背景属性][8] + +b) **图标**:通过 `Settings > Tweaks` 更改图标。然后将图标和光标更改为 urutau-icons。 + +在完成所有配置和安装之后,你应该已经在 Arch Linux 中设置了 Pantheon 桌面。这是我的测试机的截图。 + +![Arch Linux 中的 Pantheon 桌面][9] + +### 结束语 + +我希望本指南能帮助你最终在 Arch Linux 中安装 Pantheon 桌面。我花了几天时间才终于能够将各个部分组合在一起并使它们发挥作用。 + +尽管一些小功能仍然无法使用,但有一个可用的 Pantheon 桌面。 + +唯一让我惊喜的是 Pantheon 在 Arch 中的表现。在我的同一台测试机上,elementary OS 安装不是那么快。但 Pantheon 基础版在 Arch 中的速度比原始 elementary OS 快。不过,如果你喜欢 Pantheon,可以试试。 + +如果你遇到任何错误,请使用下面的评论栏告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/pantheon-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/ultramarine-linux-36/ +[2]: https://www.debugpoint.com/archinstall-guide/ +[3]: https://www.debugpoint.com/install-yay-arch/ +[4]: https://wiki.archlinux.org/index.php/Pantheon +[5]: https://www.debugpoint.com/wp-content/uploads/2021/02/greeters-list.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/02/lightdm-conf.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Login-screen-Pantheon-in-Arch.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Change-background-property-using-dconf-editor.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2021/02/Pantheon-Desktop-in-Arch-Linux-1.jpg From 0c8328b1f3188425dabace588d218ec532a558f1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 22 Nov 2022 08:49:51 +0800 Subject: [PATCH 2073/3123] translating --- .../20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md index de816dc913..80cf78e2dd 100644 --- a/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md +++ b/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/switch-twitter-mastodon" [#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4372f211fb1913f196267c0287f48f799008537f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 23 Nov 2022 05:02:44 +0800 Subject: [PATCH 2074/3123] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020221122?= =?UTF-8?q?=20Anaconda=20Web=20UI=20preview=20image=20now=20public!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20221122 Anaconda Web UI preview image now public.md --- ...naconda Web UI preview image now public.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/tech/20221122 Anaconda Web UI preview image now public.md diff --git a/sources/tech/20221122 Anaconda Web UI preview image now public.md b/sources/tech/20221122 Anaconda Web UI preview image now public.md new file mode 100644 index 0000000000..ce0de4368e --- /dev/null +++ b/sources/tech/20221122 Anaconda Web UI preview image now public.md @@ -0,0 +1,97 @@ +[#]: subject: "Anaconda Web UI preview image now public!" +[#]: via: "https://fedoramagazine.org/anaconda-web-ui-preview-image-now-public/" +[#]: author: "Jiří Konečný https://fedoramagazine.org/author/jkonecny/" +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Anaconda Web UI preview image now public! +====== + +![][1] + +Background photo taken by [David Cantrell][2] (cropped) + +We are excited to announce the first public preview image of the new Anaconda web interface!  Our vision is to reimagine and modernize our installer’s user experience (see our blog post [“Anaconda is getting a new suit”][3]). We are doing this by redesigning the user experience on all fronts to make it more easy and approachable for everyone to use. + +Today, we would like to introduce our [plans][4] for the public preview release, as our new project has already reached a point where core code functionality is already developed and the new interface can be used for real installations.  + +So, we’re giving you something to play with! 🙂 + +![][5] + +### Why public preview image? + +By giving you a working ISO as soon as we can, you have the opportunity to help us to define this new UI. This task allows us to rethink what we have and find new ways to overcome the challenges of the UI instead of re-creating what we had already. Please take this opportunity and reach us with your feedback to help us to create the best OS installer ever! + +Please let us know what you require from Anaconda. **What** features ****are important to you and **why** are these important? That will allow us to prioritize our focus on development and design. See below for [how to contact us][6]. + +### How to get public preview image? + +Download the Anaconda preview image [here][7].  + +Thanks a lot to the [Image Builder][8] team for providing us with a way to build ISO with the Fedora 37 Workstation GA content. We are planning to provide additional images with an updated installer to give you the newest features and fixes with the link above. There are no updates to the installation payload (installed system data) yet. We will announce important updates of the ISO image by sending mail to [anaconda-devel@lists.fedoraproject.org][9] with CC to [devel@lists.fedoraproject.org][10]. Please subscribe to either of these to get information about the news. This way we will be able to iterate on your feedback. + +### What you will get with the preview ISO + +The ISO will allow you to install the system and let you get a taste of the new UI, so you can provide us early feedback. However, it is pretty early in the development cycle. We advise you to not use this ISO to install critical infrastructure or machines where you have important data. + +Let’s go to the more interesting part of what you can do with the ISO: + + * Choose installation language + * Select your disks + * Automatically partition the disks. **BEWARE! This will erase everything on the selected disks.** + * Automatically install Fedora 37 GA Workstation system + * Basic review screen of your selections + * Installation progress screen + * Built-in help (on Installation destination screen only) + + + +#### Known issues: + + * In the bootloader menu you’ll see “Install Fedora 38”, it’s expected because the installation environment is from Rawhide. However, the content installed will be Fedora 37 GA, so don’t worry. + * Virtual Box on Mac might have resolution issues. We are working on resolving this issue. + * Aspect ratio and window handling. We know we need to solve this better, feedback is welcome. + + + +### How to provide feedback? + +Your feedback is critical to have a project which you and we can be proud of, so please share it with us. To give us feedback: + + * Use our [GitHub repository discussions][11] + * Send mail to the [anaconda-devel@lists.fedoraproject.org][9] mailing list + + + +Please take your time to play with the UI and tell us what you think. What works great, what is not working and what you would like to have. Ideally, follow future updates and tell us if the situation is better or worse.  + +We are really counting on your feedback and we are thankful to have you all supporting us in this journey! + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/anaconda-web-ui-preview-image-now-public/ + +作者:[Jiří Konečný][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/jkonecny/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/anaconda-816x345.jpg +[2]: https://fedoraproject.org/wiki/User:Dcantrell +[3]: https://communityblog.fedoraproject.org/anaconda-is-getting-a-new-suit/ +[4]: https://fedoraproject.org/wiki/Changes/Anaconda_Web_UI_preview_image +[5]: https://lh3.googleusercontent.com/wYYvx8Cp5YJBLlMTWu4PCQlFsTQqs_ZflspDg7cjLyPE2lZUChhiJGKkdT3BcALPyiR0A04rR32S8YRoOfQHGLm22HaEQK6opM4cSUE_xchqmiowJPnDNCu7qsQSEg85ClJku_-ZSlwFoy3PQPhmactnKnHPjsEa9gS4tAqrINTfZ_Pj0Gg_jLJ4u1tNVw +[6]: tmp.UJAFNoc8ku#provide-feedback +[7]: https://fedorapeople.org/groups/anaconda/webui_preview_image/x86_64/webui_latest_install.iso +[8]: https://github.com/osbuild/osbuild-composer +[9]: mailto:anaconda-devel@lists.fedoraproject.org +[10]: mailto:devel@lists.fedoraproject.org +[11]: https://github.com/rhinstaller/anaconda/discussions/new?category=web-ui From cfc3a8c39493ea0d95c048a6e4322327dae19349 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 23 Nov 2022 05:02:52 +0800 Subject: [PATCH 2075/3123] add done: 20221122 Anaconda Web UI preview image now public.md --- sources/tech/20221118 .md | 25 +++++++++++++++++++++++++ sources/tech/20221121 .md | 25 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 sources/tech/20221118 .md create mode 100644 sources/tech/20221121 .md diff --git a/sources/tech/20221118 .md b/sources/tech/20221118 .md new file mode 100644 index 0000000000..314f58ecf0 --- /dev/null +++ b/sources/tech/20221118 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/foss-weekly-22-43/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/foss-weekly-22-43/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 diff --git a/sources/tech/20221121 .md b/sources/tech/20221121 .md new file mode 100644 index 0000000000..cfef8289c3 --- /dev/null +++ b/sources/tech/20221121 .md @@ -0,0 +1,25 @@ +[#]: subject: "" +[#]: via: "https://news.itsfoss.com/vmware-workstation-17-release/" +[#]: author: " " +[#]: collector: "lujun9972" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + + +====== + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vmware-workstation-17-release/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 From b8b87fe38e3b14255e2fc3d989bbbcb64e68bb89 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 23 Nov 2022 08:38:29 +0800 Subject: [PATCH 2076/3123] translated --- ...o Enable and Access USB Drive in VirtualBox.md | 108 ------------------ ...o Enable and Access USB Drive in VirtualBox.md | 108 ++++++++++++++++++ 2 files changed, 108 insertions(+), 108 deletions(-) delete mode 100644 sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md create mode 100644 translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md diff --git a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md deleted file mode 100644 index 3570d136cb..0000000000 --- a/sources/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "How to Enable and Access USB Drive in VirtualBox" -[#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Enable and Access USB Drive in VirtualBox -====== -Here’s a precise guide on how you can enable USB in Oracle VirtualBox. - -![][1] - -When you work in a Virtual machine environment, the USB is usually plugged into the host system. But it is a little difficult to access that USB content from the guest system. - -In VirtualBox, you need to install some extensions and enable some settings to access USB in. Here’s how. - -This article assumes that you have already installed VirtualBox and also installed some Linux distribution or operating system inside it. - -If not, check out the [articles here][2]. - -### Enable USB in VirtualBox 7.0 - -#### Install VirtualBox Extension Pack - -* Open the VirtualBox download page and download the VirtualBox Extension pack for all supported platforms using [this link][3]. - -![Download the extension pack][4] - -* Then Click on `File > Tools > Extension Pack Manager.` - -* Click on the `Install` button in the toolbar and select the downloaded .vbox-extpak file. - -* Hit `Install`. Accept the terms, and give the admin password for the installation. - -![install extension pack manager][5] - -![install extension pack manager after accepting terms][6] - -* After successful installation, you can see it in the installed list. - -* Restart your host system. Restarting is mandatory. - -#### Enable USB in the guest box - -* Plugin the USB stick into your host system – which you want to access from the guest virtual machine. - -* Start VirtualBox and right-click on the VM name where you want to enable USB. Select Settings. - -![Launch settings for the virtual machine][7] - -* On the left pane, click on USB. Then select the controller version. For example, you can select USB 3.0. Then click on the small plus icon to add a USB filter. - -* In this list, you should see your USB stick name (which you plugged in). For this example, I can see my Transcend Jetflash drive, which I plugged in. - -* Select it and press OK. - -![Select the USB stick][8] - -* Now, start your virtual machine. Open the file manager, and you should see the USB is enabled and mounted on your virtual machine. - -* In this demonstration, you can see the Thunar file manager of my [Arch-Xfce][9] virtual machine is showing the contents of my USB stick. - -![Enabling USB and accessing contents from VirtualBox][10] - -### Usage notes - -Now, here are a couple of things you should remember. - -* When you plug in the USB in the host system, keep it mounted. But do not open or access any file before launching the virtual machine. - -* Once you start your virtual machine, the USB will be unmounted in the host system and auto-mounted in the guest system, i.e. your virtual machine. - -* After you finish with a USB stick, ensure to eject or unmount it inside a virtual machine. Then it will be accessible again inside your host system. - -### Wrapping Up - -VirtualBox is a powerful utility and provides easy-to-use features to extensively set up your Virtual Machines. The steps are straightforward, and make sure your USB stick is detected properly in the host system to work. - -Also, remember that USB stick detection via extension pack is not related to VirtualBox guest addition. They are completely unrelated and provide separate functions. - -Finally, let me know if this guide helps you in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/enable-usb-virtualbox/ - -作者:[Arindam][a] -选题:[lkxed][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://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/usb-vbox-1024x576.jpg -[2]: https://www.debugpoint.com/tag/virtualbox -[3]: https://www.virtualbox.org/wiki/Downloads -[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Download-the-extension-pack.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager-after-accepting-terms.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Launch-settings-for-the-virtual-machine.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg -[9]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/ -[10]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg diff --git a/translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md new file mode 100644 index 0000000000..231302dd62 --- /dev/null +++ b/translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md @@ -0,0 +1,108 @@ +[#]: subject: "How to Enable and Access USB Drive in VirtualBox" +[#]: via: "https://www.debugpoint.com/enable-usb-virtualbox/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 VirtualBox 中启用和访问 USB 驱动器 +====== +这是有关如何在 Oracle VirtualBox 中启用 USB 的指南。 + +![][1] + +当你在虚拟机环境中工作时,USB 通常插入主机系统。但是从访客系统访问 USB 内容有点困难。 + +在 VirtualBox 中,你需要安装一些扩展并启用一些设置才能访问 USB。方法如下。 + +本文假设你已经安装了 VirtualBox,并且还在其中安装了一些 Linux 发行版或操作系统。 + +如果没有,请查看[此处的文章][2]。 + +### 在 VirtualBox 7.0 中启用 USB + +#### 安装 VirtualBox 扩展包 + +* 打开 VirtualBox 下载页面并从[此链接][3]下载适用于所有支持平台的 VirtualBox 扩展包。 + +![下载扩展包][4] + +* 然后单击 `文件 > 工具 > 扩展包管理器`。 + +* 单击工具栏中的`安装`按钮并选择下载的 .vbox-extpak 文件。 + +* 点击`安装`。接受条款,并为安装提供管理员密码。 + +![安装扩展包管理器][5] + +![接受条款后安装扩展包管理器][6] + +* 安装成功后,可以在已安装列表中看到。 + +* 重启主机系统。重启是强制性的。 + +#### 在客户机中启用 USB + +* 将 U 盘插入你的宿主机系统,你希望从虚拟机中访问该系统。 + +* 启动 VirtualBox 并右键单击要启用 USB 的 VM 名称。选择设置。 + +![虚拟机的启动设置][7] + +* 在左窗格中,单击 USB。然后选择控制器版本。例如,你可以选择 USB 3.0。然后单击小加号图标添加 USB 过滤器。 + +* 在此列表中,你应该看到你的 U 盘名称(你插入的)。对于这个例子,我可以看到我插入的 Transcend Jetflash 驱动器。 + +* 选择它并按 OK。 + +![选择 U 盘][8] + +* 现在,启动你的虚拟机。打开文件管理器,你应该会看到 USB 已启用并挂载到你的虚拟机上。 + +* 在此演示中,你可以看到我的 [Arch-Xfce][9] 虚拟机的 Thunar 文件管理器正在显示我的 U 盘中的内容。 + +![启用 USB 并从 VirtualBox 访问内容][10] + +### 使用说明 + +现在,这里有几件事你应该记住。 + +* 当你在主机系统中插入 USB 时,请保持挂载状态。但在启动虚拟机之前不要打开或访问任何文件。 + +* 启动虚拟机后,USB 将在主机系统中卸载并自动挂载到客户机系统中,即你的虚拟机。 + +* 使用完 U 盘后,确保在虚拟机中将其弹出或卸载。然后它将能再从你的宿主机系统内访问。 + +### 总结 + +VirtualBox 是一个功能强大的程序,提供易于使用的功能来设置的你虚拟机。这些步骤很简单,并确保你的 U 盘在主机系统中被正确检测到以正常工作。 + +另外,请记住,通过扩展包检测 U 盘与 VirtualBox 客户端增强包无关。它们完全不相关并提供独立的功能。 + +最后,如果本指南对你有帮助,请在评论栏中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/enable-usb-virtualbox/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/usb-vbox-1024x576.jpg +[2]: https://www.debugpoint.com/tag/virtualbox +[3]: https://www.virtualbox.org/wiki/Downloads +[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Download-the-extension-pack.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager-after-accepting-terms.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Launch-settings-for-the-virtual-machine.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg +[9]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/ +[10]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg From 76d9be3c7fa284da0b4a7601c4af16663b0ff01a Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 23 Nov 2022 08:42:13 +0800 Subject: [PATCH 2077/3123] translated --- ...sing and Customizing the Dock in Ubuntu.md | 245 ----------------- ...sing and Customizing the Dock in Ubuntu.md | 246 ++++++++++++++++++ 2 files changed, 246 insertions(+), 245 deletions(-) delete mode 100644 sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md create mode 100644 translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md diff --git a/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md deleted file mode 100644 index 637e7c9ee1..0000000000 --- a/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md +++ /dev/null @@ -1,245 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (The Definitive Guide to Using and Customizing the Dock in Ubuntu) -[#]: via: (https://itsfoss.com/customize-ubuntu-dock/) -[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) - -The Definitive Guide to Using and Customizing the Dock in Ubuntu -====== - -When you log into Ubuntu, you’ll see the dock on the left side with some application icons on it. This dock (also known as launcher or sometimes as panel) allows you to quickly launch your frequently used programs. - -![][1] - -I rely heavily on the dock and I am going to share a few tips about using the dock effectively and customize its looks and position. - -You’ll learn the following in this tutorial: - - * Basic usage of the dock: adding more applications and using shortcuts for launching applications. - * Customize the looks of the dock: Change the icon size, icon positions. - * Change the position: for single screen and multi-monitor setup - * Hide mounted disk from the dock - * Auto-hide or disable the dock - * Possibility of additional dock customization with dconf-editor - * Replace dock with other docking applications - - - -I’ll use the terms dock, panel and launcher in the tutorial. All of them refer to the same thing. - -### Using the Ubuntu dock: Absolute basic that you must know - -If you are new to Ubuntu, you should know a few things about using the dock. You’ll eventually discover these dock features, I’ll just speed up the discovery process for you. - -#### Add new applications to the dock (or remove them) - -The steps are simple. Search for the application from the menu and run it. - -The running application appears in the dock, below all other icons. Right click on it and select the “Add to Favorites” option. This will lock the icon to the dock. - -![Right-click on the icon and select “Add to Favorites”][2] - -Removing an app icon from the doc is even easier. You don’t even need to run the application. Simply right click on it and select “Remove From Favorites”. - -![Right-click on the icon and select “Remove from Favorites”][3] - -#### Reorder icon position - -By default, new application icons are added after all the other icons on the launcher. You don’t have to live with it as it is. - -To change the order of the icons, you just need to drag and drop to the other position of your choice. No need to “lock it” or any additional effort. It stays on that location until you make some changes again. - -![Reorder Icons On Ubuntu Docks][4] - -#### Right click to get additional options for some apps - -Left-clicking on an icon launches the application or bring it to focus if the application is already running. - -Right-clicking the icon gives you additional options. Different applications will have different options. - -For browsers, you can open a new private window or preview all the running windows. - -![][5] - -For file manager, you can go to all the bookmarked directories or preview opened windows. - -You can, of course, quit the application. Most applications will quit while some applications like Telegram will be minimized to the system tray. - -#### Use keyboard shortcut to launch applications quickly [Not many people know about this one] - -The dock allows you to launch an application in a single mouse click. But if you are like me, you can save that mouse click with a keyboard shortcut. - -Using the Super/Window key and a number key will launch the application on that position. - -![][6] - -If the application is already running, it is brought to focus, i.e. it appears in front of all the other running application windows. - -Since it is position-based, you should make sure that you don’t reorder the icons all the time. Personally, I keep Firefox at position 1, file manager at 2 and the alternate browser at 3 and so on until number 9. This way, I quickly launch the file manager with Super+2. - -I find it easier specially because I have a three screen setup and moving the mouse to the launcher on the first screen is a bit too much of trouble. You can enable or disable the dock on additional screen. I’ll show that to you later in this tutorial. - -### Change the position of the dock - -By default, the dock is located on the left side of your screen. Some people like the launcher at the bottom, in a more traditional way. - -Ubuntu allows you to change the position of the dock. You can move it to the bottom or to the right side or on the top. I am not sure many people actually put the dock on the top or the right side, so moving the dock to the top is not an option here. - -![Change Launcher Position][7] - -To change the dock position, go to Settings->Appearance. You should see some options under Dock section. You need to change the “Position on screen” settings here. - -![Go to Settings->Appearance->Dock][8] - -#### Position of dock on a multiple monitor setup - -If you have multiple screens attached to your system, you can choose whether to display the dock on all screens or one of chosen screens. - -![Ubuntu Dock Settings Multimonitor][9] - -Personally, I display the dock on my laptop screen only which is my main screen. This gives me maximum space on the additional two screens. - -### Change the appearance of the dock - -Let’s see some more dock customization options in Ubuntu. - -Imagine you added too many applications to the dock or have too many applications open. It will fill up the space and you’ll have to scroll to the top and bottom to go to the applications at end points. - -What you can do here is to change the icon size and the dock will now accommodate more icons. Don’t make it too small, though. - -![][10] - -To do that, go to Settings-> Appearance and change it by moving the slider under Icon size. The default icons size is 48 pixels. - -![Changing Icon Size In Ubuntu Dock][11] - -#### Hide mounted disks from the launcher - -If you plug in a USB disk or SD Card, it is mounted to the system, and an icon appear in the launcher immediately. This is helpful because you can right click on it and select safely remove drive option. - -![Mounted disks are displayed In the Ubuntu Dock][12] - -If you somehow find it troublesome, you can turn this feature off. Don’t worry, you can still access the mounted drives from the file manager. - -Open a terminal and use the following command: - -``` -gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false -``` - -The changes take into effect immediately. You won’t be bothered with mounted disk being displayed in the launcher. - -If you want the default behavior back, use this command: - -``` -gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true -``` - -### Change the behavior of dock - -Let’s customize the default behavior of the dock and make it more suitable to your needs. - -#### Enable minimize on click - -If you click on the icon of a running application, its window will be brought to focus. That’s fine. However, if you click on it, nothing happens. By default, clicking on the same icon won’t minimize the application. - -Well, this is the behavior in modern desktop, but I don’t like it. I prefer that the application is minimized when I click on its icon for the second time. - -If you are like me, you may want to [enable click to minimize option in Ubuntu][13]: - -To do that, open a terminal and enter the following command: - -``` -gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' -``` - -#### Auto-hide Ubuntu dock and get more screen space - -If you want to utilize the maximum screen space, you can enable auto-hide option for the dock in Ubuntu. - -This will hide the dock, and you’ll get the entire screen. The dock is still accessible, though. Move your cursor to the location of the dock where it used to be, and it will appear again. When the dock reappears, it is overlaid on the running application window. And that’s a good thing otherwise too many elements would start moving on the screen. - -The auto-hide option is available in Settings-> Appearance and under Dock section. Just toggle it. - -![Auto-hide the dock][14] - -If you don’t like this behavior, you can enable it again the same way. - -#### Disable Ubuntu dock - -Auto-hide option is good enough for many people, but some users simply don’t like the dock. If you are one of those users, you also have the option to disable the Ubuntu dock entirely. - -Starting with Ubuntu 20.04, you have the Extensions application available at your disposal to [manage GNOME Extensions][15]. - -![Look for Extensions app in the menu][16] - -With this Extensions application, you can easily disable or re-enable the dock. - -![Disable Ubuntu Dock][17] - -### Advanced dock customization with dconf-editor [Not recommended] - -##### Warning - -The dconf-editor allows you to change almost every aspect of the GNOME desktop environment. This is both good and bad because you must be careful in editing. Most of the settings can be changed on the fly, without asking for conformation. While you may reset the changes, you could still put your system in such a state that it would be difficult to put things back in order. - -For this reason, I advise not to play with dconf-editor, specially if you don’t like spending time in troubleshooting and fixing problems or if you are not too familiar with Linux and GNOME. - -The [dconf editor][18] gives you additional options to customize the dock in Ubuntu. Install it from the software center and then navigate to org > gnome > shell > extensions > dash-to-dock. You’ll find plenty of options here. I cannot even list them all here. - -![][19] - -### Replace the dock in Ubuntu - -There are several third-party dock applications available for Ubuntu and other Linux distributions. You can install a dock of your choice and use it. - -For example, you can install Plank dock from the software center and use it in similar fashion to Ubuntu dock. - -![Plank Dock in Ubuntu][20] - -Disabling Ubuntu Dock would be a better idea in this case. It won’t be wise to use multiple docks at the same time. - -### Conclusion - -This tutorial is about customizing the default dock or launcher provided in Ubuntu’s GNOME implementation. Some suggestions should work on the dock in vanilla GNOME as work well. - -I have shown you most of the common Ubuntu dock customization. You don’t need to go and blindly follow all of them. Read and think which one suits your need and then act upon it. - -Was it too trivial or did you learn something new? Would you like to see more such tutorials? I welcome your suggestions and feedback on dock customization. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/customize-ubuntu-dock/ - -作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/ -[b]: https://github.com/lujun9972 -[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock.png?resize=800%2C450&ssl=1 -[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/add-icons-to-dock.png?resize=800%2C450&ssl=1 -[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/remove-icons-from-dock.png?resize=800%2C450&ssl=1 -[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/reorder-icons-on-ubuntu-docks.gif?resize=800%2C430&ssl=1 -[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/right-click-icons-ubuntu-dock.png?resize=800%2C450&ssl=1 -[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/keyboard-shortcut-for-ubuntu-dock.png?resize=800%2C450&ssl=1 -[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-launcher-position-ubuntu.png?resize=800%2C450&ssl=1 -[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-dock-position-ubuntu.png?resize=800%2C450&ssl=1 -[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock-settings-multimonitor.png?resize=800%2C450&ssl=1 -[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/normal-icon-size-dock.jpg?resize=1024%2C1080&ssl=1 -[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/changing-icon-size-in-ubuntu-dock.png?resize=800%2C450&ssl=1 -[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/external-mounted-disks-in-ubuntu-dock.png?resize=800%2C450&ssl=1 -[13]: https://itsfoss.com/click-to-minimize-ubuntu/ -[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/autohide-dock-ubuntu.png?resize=800%2C450&ssl=1 -[15]: https://itsfoss.com/gnome-shell-extensions/ -[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/06/GNOME-extensions-app-ubuntu.jpg?resize=800%2C240&ssl=1 -[17]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/disable-dock-ubuntu.png?resize=800%2C450&ssl=1 -[18]: https://wiki.gnome.org/Apps/DconfEditor -[19]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/dconf-editor-dock.png?resize=592%2C599&ssl=1 -[20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/plank-dock-Ubuntu.jpg?resize=800%2C382&ssl=1 diff --git a/translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md new file mode 100644 index 0000000000..56fe9a39fa --- /dev/null +++ b/translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md @@ -0,0 +1,246 @@ +[#]: collector: (lujun9972) +[#]: translator: (chai001125) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (The Definitive Guide to Using and Customizing the Dock in Ubuntu) +[#]: via: (https://itsfoss.com/customize-ubuntu-dock/) +[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) + +在 Ubuntu 中使用和自定义程序坞 +====== + +当你登录 Ubuntu 时,你会看到屏幕左侧的 程序坞/停靠栏 dock ,上面有一些应用程序的图标。程序坞(也称为 启动器 launcher ,或者 面板 panel )可以让你快速启动某个常用的应用程序。 + +![][1] + +我经常使用程序坞。在本文中,我将分享一些关于有效使用程序坞的小技巧,并介绍自定义程序坞的外观和位置的方法。 + +你将在本教程中学习到以下内容: + + * 程序坞的基本用途:添加应用程序,并使用快捷方式来启动应用程序 + * 自定义程序坞的外观:更改图标大小、图标位置 + * 更改程序坞的位置:可用于单屏和多显示器的设置 + * 在程序坞中隐藏已安装的磁盘图标 + * 自动隐藏或禁用程序坞 + * 使用 dconf-editor 对程序坞进行额外的定制 + * 用其他程序坞应用程序替换 Ubuntu 默认的程序坞 + +我将在教程中使用 程序坞 dock 面板 panel 启动器 launcher 等术语,它们的意思是等同的。 + +### 如何使用 Ubuntu 程序坞:你必须知道的基础知识 + +如果你是 Ubuntu 的新手,你需要掌握如何使用程序坞。尽管,在一段时间后你总会熟悉程序坞的功能,但是阅读本文能让你更快地明白。 + +#### 向程序坞添加新的应用程序(或删除应用程序) + +这一步骤十分简单。从菜单中搜索你想要添加在程序坞的应用程序,然后运行它。 + +正在运行的应用程序会显示在程序坞中,它的图标在程序坞中所有图标的下方。右键单击该图标,然后选择 “添加到收藏夹” Add to Favorites 选项。这会把该应用程序的图标锁定到程序坞上。 + +![Right-click on the icon and select “Add to Favorites”][2] + +从程序坞中删除应用程序的图标,操作起来更为简单。你不需要运行你想要在程序坞删除的应用程序,只需右键单击应用程序图标,然后选择 “从收藏夹中删除” Remove From Favorites 即可。 + +![Right-click on the icon and select “Remove from Favorites”][3] + +#### 更改程序坞中的图标顺序 + +默认情况下,新添加到程序坞的应用程序图标会放置在程序坞上的所有图标之后。但是,你也可以改变图标的位置。 + +要更改图标的顺序,你只需将它拖放到另一个位置即可,不用 “锁定位置” lock it ,或者做其他的事情。如果你不做任何的更改,这个图标会一直停留在那个位置。 + +![Reorder Icons On Ubuntu Docks][4] + +#### 右键单击程序坞中的图标,以获取应用程序的额外选项 + +左键单击程序坞中的图标会启动应用程序,或者如果应用程序已经在运行,则这个应用程序会被聚焦,即它会出现在所有其他正在运行的应用程序窗口前面。 + +右键单击程序坞中的图标会为你提供应用程序的额外选项。不同的应用程序会有不同的选项。 + +右键单击**浏览器**图标,在它的额外选项中,你可以打开一个新的私人窗口,或预览所有正在运行的窗口。 + +![][5] + +右键单击**文件管理器**图标,在它的额外选项中,你可以查看所有已添加书签的目录,或预览打开的窗口。 + +当然,你也可以通过右键单击图标,来退出应用程序。大多数应用程序能够通过右键单击而退出,而一些应用程序(例如 Telegram 等),将被最小化到 系统托盘 system tray 中。 + +#### 使用键盘快捷键,以快速启动程序坞中的应用程序 [知道这个的人不多] + +你只需用鼠标单击程序坞上的图标,即可启动应用程序。但是,你也可以用键盘快捷键,来启动应用程序。 + +使用 **WIN/Super 键** + **数字键**的组合,能够启动程序坞中该位置的应用程序。 + +![][6] + +如果应用程序已经在运行了,它将被聚焦。 + +由于这个功能是基于位置的,所以请不要一直对图标进行重新排序。就我个人而言,我把 Firefox 放在程序坞的第 1 个位置,文件管理器放在第 2 个位置,备用浏览器放在第 3 个位置,以此类推,直到第 9 个位置。这样,我可以使用 Super + 2,从而快速启动文件管理器。 + +因为我的系统连接了 3 个屏幕,所以我发现这个快速启动应用程序的功能特别好用,我不必再将鼠标移动到第一个屏幕上的程序坞上了。你也可以在其他屏幕上启用或禁用程序坞,我将在本教程的后面部分向你展示如何设置。 + +### 改变程序坞在屏幕上的位置 + +默认情况下,程序坞位于屏幕的左侧。但是,有些人喜欢将程序坞放置在屏幕底部。 + +Ubuntu 允许你更改程序坞的位置。你可以将程序坞移至底部或右侧。我不确定很多人真的想要把扩展坞放在了顶部,所以将扩展坞移到顶部并不是一个选项。 + +![Change Launcher Position][7] + +要更改程序坞位置,请进入 “设置” Settings 菜单,然后点击 “外观” Appearance ,你可以在 Dock 栏下看到一些选项,然后你可以在此处更改 “屏幕上的位置” Position on screen 这一设置。 + +![Go to Settings->Appearance->Dock][8] + +#### 程序坞在多显示器设置中的位置 + +如果你的系统连接了多个屏幕,你可以选择是在所有的屏幕上还是在某个选定的屏幕上,显示扩展坞。 + +![Ubuntu Dock Settings Multimonitor][9] + +对于我个人而言,我只在我的笔记本电脑屏幕上显示程序坞,因为这是我的主屏幕。这样在我的另外两个屏幕会留有最大的空间。 + +### 更改程序坞的外观 + +让我们继续看看 Ubuntu 程序坞中的更多自定义选项吧。 + +想象一下,如果你在程序坞中添加了太多的应用程序或打开了太多应用程序,那么程序坞的空间会被填满。如果你想要进入到程序坞端点处的应用程序,那么你必须滚动到程序坞顶部和底部才可以。 + +你可以更改程序坞的图标大小,来解决这个问题,这样程序坞就能够容纳更多图标来。不过,也不要让图标太小。 + +![][10] + +要更改程序坞的图标大小,请进入 “设置” Settings 菜单,然后点击 “外观” Appearance ,并通过移动 “图标大小” Icon size 下的滑块来更改它。默认的图标大小为 48 像素。 + +![Changing Icon Size In Ubuntu Dock][11] + +#### 在程序坞中隐藏已安装的磁盘图标 + +当你插入 U 盘或 SD 卡时,它的驱动器会安装到系统中,并且在程序坞中会立即出现一个图标。这个图标很有用,因为你可以直接通过右键单击它,来安全地删除驱动器选项。 + +![Mounted disks are displayed In the Ubuntu Dock][12] + +如果你认为在程序坞中显示已安装的磁盘图标很麻烦的话,你也可以关闭这个功能。别担心,你仍然可以从文件管理器访问已安装的驱动器。 + +打开终端,使用以下命令,来隐藏程序坞中已安装的磁盘图标: + +``` +gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false +``` + +更改会立即生效。你不再会为程序坞中显示已安装的磁盘而烦恼了。 + +如果你想要恢复默认情况,请使用以下命令: + +``` +gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true +``` + +### 改变程序坞的行为 + +接下来,让我们自定义程序坞的默认行为,使它能更适合你的需求吧。 + +#### 启用点击最小化 + +如果你单击一个正在运行的应用程序的图标,那么这个应用程序的窗口将成为焦点。当如果你**再次单击**这个图标时,将什么都不会发生。这是因为,在默认情况下,第二次点击同一图标不会最小化应用程序。 + +这是现代桌面的默认行为,但我不太喜欢,我更喜欢的是:当我**第二次点击图标时,应用程序会被最小化**。 + +如果你像我一样,那么你可能想要在 Ubuntu 中 [启用点击最小化选项][13]: + +为此,请打开终端并输入以下命令: + +``` +gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' +``` + +#### 自动隐藏 Ubuntu 程序坞,以获得更多屏幕空间 + +如果你想要有最大的屏幕空间,你可以在 Ubuntu 中为程序坞启用自动隐藏选项。 + +自动隐藏选项会隐藏程序坞,你就能获得整个屏幕。不过,程序坞仍然可以使用。将光标移动到程序坞原来所在的位置,它就会再次出现。当程序坞重新出现时,它会覆盖在正在运行的应用程序窗口上。这是一件好事,否则太多元素会开始在屏幕上移动。 + +要设置程序坞自动隐藏,请进入 “设置” Settings 菜单,然后点击 “外观” Appearance ,你可以在 Dock 栏下开启 自动隐藏选项 Auto-hide the Dock 。 + +![Auto-hide the dock][14] + +如果你不喜欢自动隐藏程序坞的话,你可以用同样的方式禁用它。 + +#### 禁用 Ubuntu 默认的程序坞 + +Ubuntu 程序坞的自动隐藏选项对很多人来说已经足够好了,但是依旧有些用户根本不喜欢 Ubuntu 自带的程序坞。如果你也是其中的一员,你可以选择完全禁用 Ubuntu 的程序坞。 + +从 Ubuntu 20.04 开始,你可以使用 扩展应用程序 Extensions application ,来管理 [GNOME 扩展][15]。 + +![Look for Extensions app in the menu][16] + +使用这个扩展应用程序,你就可以轻松地禁用或重新启用程序坞了。 + +![Disable Ubuntu Dock][17] + +### 使用 dconf-editor 进行高级的程序坞定制 [不推荐] + + +##### 请注意 + +dconf-editor 能让你更改 GNOME 桌面环境的几乎每个方面。这个性质喜忧参半,因为你在更改时必须小心,而且大多数设置都可以即时更改,无需确认。虽然你可以重置你的更改,但你仍可能会将系统置于难以恢复正常的状态。 + +出于这个原因,我不推荐你使用 dconf-editor,特别是如果你不喜欢花时间在故障排除和修复问题上,或者如果你不太熟悉 Linux 和 GNOME。 + +[dconf editor][18] 给你提供了在 Ubuntu 中自定义程序坞的其他选项。你可以在从软件中心安装 dconf editor,然后导航到 org > gnome > shell > extensions > dash-to-dock,在这里你会找到很多自定义程序坞的选择。 + +![][19] + +### 替换 Ubuntu 默认的程序坞 + +有几个第三方的程序坞应用程序可用于 Ubuntu 和其他 Linux 发行版。你可以安装你想要的第三方程序坞,并使用它。 + +例如,你可以从软件中心下载 Plank dock,并以与 Ubuntu 程序坞类似的方式来使用它。 + +![Plank Dock in Ubuntu][20] + +在这种情况下,禁用 Ubuntu 默认的程序坞会是一个更好的主意,因为同时使用多个扩展坞是不太明智的。 + +### 总结 + +本教程介绍了在 GNOME 实现中,如何自定义 Ubuntu 默认的程序坞。上述程序坞的更改在 vanilla GNOME 的程序坞上运行良好。 + +我已经向你展示了大多数常见的 Ubuntu 程序坞的定制方法。你不需要去盲目地跟随教程中的所有步骤。阅读并思考哪一个是你需要的,然后根据教程中的方法更改配置。 + +如果你不喜欢 Ubuntu 默认的程序坞,也有其他的程序坞可供试验。 + +这个教程让你学到了新东西吗?你还想看到更多这样的教程吗?欢迎你在评论区中建议和反馈。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/customize-ubuntu-dock/ + +作者:[Abhishek Prakash][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock.png?resize=800%2C450&ssl=1 +[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/add-icons-to-dock.png?resize=800%2C450&ssl=1 +[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/remove-icons-from-dock.png?resize=800%2C450&ssl=1 +[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/reorder-icons-on-ubuntu-docks.gif?resize=800%2C430&ssl=1 +[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/right-click-icons-ubuntu-dock.png?resize=800%2C450&ssl=1 +[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/keyboard-shortcut-for-ubuntu-dock.png?resize=800%2C450&ssl=1 +[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-launcher-position-ubuntu.png?resize=800%2C450&ssl=1 +[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-dock-position-ubuntu.png?resize=800%2C450&ssl=1 +[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock-settings-multimonitor.png?resize=800%2C450&ssl=1 +[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/normal-icon-size-dock.jpg?resize=1024%2C1080&ssl=1 +[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/changing-icon-size-in-ubuntu-dock.png?resize=800%2C450&ssl=1 +[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/external-mounted-disks-in-ubuntu-dock.png?resize=800%2C450&ssl=1 +[13]: https://itsfoss.com/click-to-minimize-ubuntu/ +[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/autohide-dock-ubuntu.png?resize=800%2C450&ssl=1 +[15]: https://itsfoss.com/gnome-shell-extensions/ +[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/06/GNOME-extensions-app-ubuntu.jpg?resize=800%2C240&ssl=1 +[17]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/disable-dock-ubuntu.png?resize=800%2C450&ssl=1 +[18]: https://wiki.gnome.org/Apps/DconfEditor +[19]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/dconf-editor-dock.png?resize=592%2C599&ssl=1 +[20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/plank-dock-Ubuntu.jpg?resize=800%2C382&ssl=1 From dfb36d0c020664b489bda139c63d15ea4639cd6c Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 23 Nov 2022 08:44:19 +0800 Subject: [PATCH 2078/3123] translating --- .../20221118 How to rebase to Fedora Linux 37 on Silverblue.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md b/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md index 85923564ae..86f9ef58b3 100644 --- a/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md +++ b/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md @@ -2,7 +2,7 @@ [#]: via: "https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/" [#]: author: "Michal Konečný https://fedoramagazine.org/author/zlopez/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8da0f4d38e216fa9adbf65b7949756ad6a91bf09 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 23 Nov 2022 09:32:14 +0800 Subject: [PATCH 2079/3123] Delete 20221118 .md --- sources/tech/20221118 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221118 .md diff --git a/sources/tech/20221118 .md b/sources/tech/20221118 .md deleted file mode 100644 index 314f58ecf0..0000000000 --- a/sources/tech/20221118 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/foss-weekly-22-43/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/foss-weekly-22-43/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 5bdb02b48ae3202d9a3e6b3ca7c0e4624978c1a6 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 23 Nov 2022 09:32:29 +0800 Subject: [PATCH 2080/3123] Delete 20221121 .md --- sources/tech/20221121 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20221121 .md diff --git a/sources/tech/20221121 .md b/sources/tech/20221121 .md deleted file mode 100644 index cfef8289c3..0000000000 --- a/sources/tech/20221121 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: "" -[#]: via: "https://news.itsfoss.com/vmware-workstation-17-release/" -[#]: author: " " -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -====== - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/vmware-workstation-17-release/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From 3f6cf16c171c49a22b7d6854f09b082310794af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Wed, 23 Nov 2022 09:57:29 +0800 Subject: [PATCH 2081/3123] Translated --- ...s and folders from Windows to Linux with WinSCP.md | 112 ------------------ ...s and folders from Windows to Linux with WinSCP.md | 112 ++++++++++++++++++ 2 files changed, 112 insertions(+), 112 deletions(-) delete mode 100644 sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md create mode 100644 translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md diff --git a/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md b/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md deleted file mode 100644 index 127132272e..0000000000 --- a/sources/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md +++ /dev/null @@ -1,112 +0,0 @@ -[#]: subject: "Transfer files and folders from Windows to Linux with WinSCP" -[#]: via: "https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp" -[#]: author: "Paul https://opensource.com/users/plaubscher" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Transfer files and folders from Windows to Linux with WinSCP -====== - -If you're looking for a way to quickly transfer files from your Windows computer to your Linux computer, then the open source WinSCP utility makes it easy to transfer a file or a folder of files over the network. - -Sometimes you need to transfer files over a network. There are lots of file sharing services out there, but most require that you send your file to the Internet. This seems like a long way to go (not to mention the privacy concerns) when two computers are right beside each other, or at least in the same building. The open source WinSCP utility makes it quick and easy to transfer a file or a folder of files over the network from your Windows computer to your Linux computer. - -### IP address - -Before you can make the transfer, you must know the IP address or fully-qualified domain name of the destination computer. Assuming it's a computer on your same network, and that you're not running a DNS server to resolve computer names, you can find the destination IP address using the `ip` command on the Linux machine: - -``` -[linux]$ ip addr show |grep'inet ' -inet 127.0.0.1/8 scope host lo   -inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 -``` - -In all cases, 127.0.0.1 is a loopback address that the computer uses only to talk to itself, so in this example the correct address is 192.168.1.23. On your system, the IP address is likely to be different. If you're not sure which is which, you can try each one in succession until you get the right one (and then write it down somewhere!) - -Alternatively, you can look in your router's settings, which list all addresses assigned over DHCP. - -### Firewalls and servers - -The `WinSCP` command uses the OpenSSH protocol, so your Linux computer must be running the OpenSSH server software, and its firewall must allow SSH traffic. - -If you're not sure whether your Linux machine is running SSH, then run this command on the Linux machine: - -``` -[linux]$ sudo systemctl enable--now sshd -``` - -To ensure your firewall allows SSH traffic, run this command: - -``` -[linux]$ sudo firewall-cmd --add-servicessh--permanent -``` - -For more information on firewalls on Linux, read [Make Linux stronger with firewalls][1]. - -### Using WinSCP - -WinSCP is an open source SSH file transfer application for Microsoft Windows. To use it, you first must [download and][2][install][2] it. - -Once you're installed it, open WinSCP and select the **SCP** option in the **File Protocol** field. - -Add the IP address or DNS name of your Linux computer in the **Host name** field, and enter **22** in the **Port number** field. Enter you user name and password for the Linux computer, and then click the **Login** button at the bottom of the WinSCP window. - -![Image of the WinSCP login window.][3] - -Verify that you are authenticated to the Linux computer. Upon success, your Linux computer's IP address or DNS name appears at the top of the window. - -![Image of a WinSCP window showing where IP adress is located.][4] - -Now you can drag and drop a file (I used `winscp-test.txt` as an example) from the left Windows pane to the destination Linux computer pane on the right, and the file transfers. - -![Image of drag and drop window in WinSCP.][5] - -Alternatively, you can right-click on a file in the left pane and upload it to the remote destination in the right pane. - -![Image of a right click option to upload files in WinSCP.][6] - -### Verify the copy - -Open a Linux terminal and use the `ls` command to view the transferred `winscp-test.txt` file. In my example, it appears in my home directory, `/_home_/sysadmin`. - -``` -$ ls -Desktop -Documents -Downloads -Music -Pictures -pscp-test.txt[...] -``` - -You've successfully transferred a file from a Windows computer to a Linux computer over the network! - -Of course, you can use the same technique as above to transfer files and folders from a Linux computer to a Windows computer. - -### Remote copying - -With the power of the open source WinSCP application, you have access to any computer in your house or workplace, to servers you have accounts on, and even mobile, [edge][7], and Internet of Things devices. Use this great tool to transfer files as easily as you would copy a file from one local directory to another! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp - -作者:[Paul][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/plaubscher -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/19/7/make-linux-stronger-firewalls -[2]: https://sourceforge.net/projects/winscp/files/ -[3]: https://opensource.com/sites/default/files/2022-10/winscp.loginwindow.png -[4]: https://opensource.com/sites/default/files/2022-10/WinSCPwindow.showing.IPinfo.png -[5]: https://opensource.com/sites/default/files/2022-10/WinSCP.drapdropwindow.png -[6]: https://opensource.com/sites/default/files/2022-10/RightclickUploadfileWInSCP.png -[7]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM diff --git a/translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md b/translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md new file mode 100644 index 0000000000..35e8d23732 --- /dev/null +++ b/translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md @@ -0,0 +1,112 @@ +[#]: subject: "Transfer files and folders from Windows to Linux with WinSCP" +[#]: via: "https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp" +[#]: author: "Paul https://opensource.com/users/plaubscher" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 WinSCP 将文件和文件夹从 Windows 传输到 Linux +====== + +如果你正在寻找一种快速的从你的 Windows 计算机传输文件到你的 Linux 计算机的方法,那么开源的 WinSCP 实用程序会使其很容易地通过网络传输一个文件或一个文件夹。 + +有时,你需要通过文件传输文件。这里有很多文件共享服务,但是大多数的共享服务都要求你发送你的文件到互联网上。当两台计算机并排在一起或在一栋建筑物中时,通过互联网传输文件,这似乎看起来是一条很长的路 (更不用说隐私问题)。开源 WinSCP 实用程序会使其很轻易地通过网络将一个文件或一个文件夹从你的 Windows 计算机传输到你的 Linux 计算机。 + +### IP 地址 + +在你可以传输之前,你必需知道目标计算机的 IP 地址或完全限定的域名。假设它是一台在你的同一个网络上的计算机,并且你没有运行一个 DNS 服务器来解析计算机名称,你可以在 Linux 计算机上使用 `ip` 命令来找到目标 IP 地址: + +``` +[linux]$ ip addr show |grep'inet ' +inet 127.0.0.1/8 scope host lo   +inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 +``` + +在所有的情况下,127.0.0.1 都是一个 回送地址loopback address ,计算机仅使用它来自我通信,因此在这个示例中,正确的地址是 192.168.1.23 。在你的系统中,IP 地址可能会看起来有所不同。如果你不确定哪个是哪个,你可以逐个尝试到你找到正确的 IP 地址 (然后,在一些地方写下来!) + +或者,你可以查找你的路由器设置,它列出了所有通过 DHCP 分配的地址。 + +### 防火墙和地址 + +`WinSCP` 命令使用 OpenSSH 协议,因此,你的 Linux 计算机必需运行 OpenSSH 服务器软件,并且你的 Linux 计算机的防火墙必需允许 SSH 通信。 + +如果你不确定你的 Linux 机器是否在运行 SSH ,那么在 Linux 机器的终端上运行这个命令: + +``` +[linux]$ sudo systemctl enable--now sshd +``` + +为确保你的防火墙允许 SSH 通信,运行这个命令: + +``` +[linux]$ sudo firewall-cmd --add-servicessh--permanent +``` + +关于 Linux 上的防火墙的更多信息,阅读 [增强 Linux 防火墙][1] 。 + +### 使用 WinSCP + +WinSCP 是一款针对 Microsoft Windows 的开源 SSH 文件传输应用程序。为使用它,你必需先 [下载][2] 和 [安装][2] 它。 + +在你安装完成后,打开 WinSCP ,并在 文件协议File Protocol 区域中选择 **SCP** 选项。 + +在 主机名称Host name 区域中添加你的 Linux 计算机的 IP 地址或 DNS 名称,并在 端口编号Port number 区域中输入 **22** 。针对该 Linux 计算机,输入你的用户名称和密码,然后单击 WinSCP 窗口底部的 登录Login 按钮。 + +![Image of the WinSCP login window.][3] + +验证你是否获取登录 Linux 计算机的身份授权。在验证成功后,你的 Linux 计算机的 IP 地址或 DNS 名称将显示在窗口的顶部。 + +![Image of a WinSCP window showing where IP adress is located.][4] + +现在,你可以从左侧的 Windows 面板中拖拽一个文件 (如示例,我使用 `winscp-test.txt` 文件) 到右侧的目标 Linux 计算机目标,接下来文件或传输。 + +![Image of drag and drop window in WinSCP.][5] + +或者,你可以在左侧的面板中右键单击一个文件,然后上传它到右侧的远程目标的面板。 + +![Image of a right click option to upload files in WinSCP.][6] + +### 验证复制件 + +打开一个 Linux 终端,然后使用 `ls` 命令来查看已传输的 `winscp-test.txt` 文件。在我的示例中,它出现在我的 home 目录, `/_home_/sysadmin` 。 + +``` +$ ls +Desktop +Documents +Downloads +Music +Pictures +pscp-test.txt[...] +``` + +你已经通过网络成功地将一个文件从一台 Windows 计算机传输到一台 Linux 计算机! + +当然,你也可以使用类似上述的技术,将文件和文件夹从一台 Linux 计算机传输到一台 Windows 计算机。 + +### 远程复制 + +使用强大的开源 WinSCP 应用程序,你可以访问在你家中或工作场所的任意一台计算机、你拥有账户的服务器、甚至是移动设备、[边缘设备][7]、物联网设备。使用这个极好的工具来传输文件就像你在本地目录下将一个文件复制到另一个本地目录一样容易! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp + +作者:[Paul][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://opensource.com/users/plaubscher +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/7/make-linux-stronger-firewalls +[2]: https://sourceforge.net/projects/winscp/files/ +[3]: https://opensource.com/sites/default/files/2022-10/winscp.loginwindow.png +[4]: https://opensource.com/sites/default/files/2022-10/WinSCPwindow.showing.IPinfo.png +[5]: https://opensource.com/sites/default/files/2022-10/WinSCP.drapdropwindow.png +[6]: https://opensource.com/sites/default/files/2022-10/RightclickUploadfileWInSCP.png +[7]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM From ec1d5caa626deca19389e2949ac5d698b9c02a7f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 23 Nov 2022 09:58:06 +0800 Subject: [PATCH 2082/3123] RP @geekpi https://linux.cn/article-15280-1.html --- ...️ How to Fix sudo Command Not Found Error.md | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) rename {translated/tech => published}/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md (63%) diff --git a/translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md b/published/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md similarity index 63% rename from translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md rename to published/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md index 53ae33a283..2e557e41c5 100644 --- a/translated/tech/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md +++ b/published/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md @@ -3,28 +3,30 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15280-1.html" 如何修复:“sudo Command Not Found” 错误 ====== -**以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “sudo command not found” 错误的方法**。 +![][0] -有时,当你第一次设置或安装 [Linux 发行版][1]时,你在用 sudo 尝试一些命令时,会出现 “sudo command not found” 的错误。 +> 以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “sudo command not found” 错误的方法。 -sudo 命令是 “superuser do” 的缩写,它是一个允许用户以管理员权限执行命令的程序。sudo 命令帮助你像管理员用户一样运行程序/命令。 +有时,当你第一次设置或安装 [Linux 发行版][1] 时,你在用 `sudo` 尝试一些命令时,会出现 “sudo command not found” 的错误。 -此外,用 sudo 运行命令的用户必须是 sudo 组的一部分。 +`sudo` 命令是 “superuser do” 的缩写,它是一个允许用户以管理员权限执行命令的程序。`sudo` 命令帮助你像管理员用户一样运行程序/命令。 + +此外,用 `sudo` 运行命令的用户必须是 `sudo` 组的一部分。 你看到这个错误的主要原因是该软件包本身没有安装。然而,大多数现代 Linux 发行版都默认提供了这个功能,但有些则没有。 下面是解决这个问题需要遵循的步骤。 -#### 故障排除#1 +#### 故障排除 #1 -- 首先,安装 sudo 包来解决这个问题。打开一个终端,刷新你的系统,并运行以下命令来安装 sudo。 +首先,安装 `sudo` 包来解决这个问题。打开一个终端,刷新你的系统,并运行以下命令来安装 `sudo`。 对于 Ubuntu、Debian 和相关发行版: @@ -44,18 +46,19 @@ pacman -S sudo su -dnf updatednf install sudo ``` -- 上述安装完成后,你必须使用以下命令将用户添加到 `sudo` 组中。 +上述安装完成后,你必须使用以下命令将用户添加到 `sudo` 组中。 -`usermod -aG sudo ` - -- 然后从终端运行 `visudo`,并运行以下行。按 CTRL+O 和 CTRL+X 来保存和退出。 +``` +usermod -aG sudo +``` +然后从终端运行 `visudo`,并运行以下行。按 `CTRL+O` 和 `CTRL+X` 来保存和退出。 ![使用 visudo 更新 sudoers 文件][2] -- 退出并再次登录使变化生效。 +退出并再次登录使变化生效。 -#### 故障排除#2 +#### 故障排除 #2 在做了上述改变之后,如果你仍然收到错误信息,那么请按照以下步骤操作。 @@ -81,9 +84,9 @@ export PATH=$PATH:/usr/bin 我希望这个指南能帮助你解决 Linux 发行版中的 sudo 错误。表面上的解决方案很简单,真的。 -如果有帮助,或者如果你有任何问题,请在下面留言,。 +如果有帮助,或者如果你有任何问题,请在下面留言。 -[参考][3] +> **[参考][3]** -------------------------------------------------------------------------------- @@ -92,7 +95,7 @@ via: https://www.debugpoint.com/sudo-command-not-found/ 作者:[Arindam][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/) 荣誉推出 @@ -100,4 +103,5 @@ via: https://www.debugpoint.com/sudo-command-not-found/ [b]: https://github.com/lkxed [1]: https://www.debugpoint.com/category/distributions [2]: https://www.debugpoint.com/wp-content/uploads/2022/09/Updating-the-sudoers-file-using-visudo.jpg -[3]: https://linux.die.net/man/8/sudo \ No newline at end of file +[3]: https://linux.die.net/man/8/sudo +[0]: https://img.linux.net.cn/data/attachment/album/202211/23/095652r00yigyouzgo838c.jpg \ No newline at end of file From 7fe844d6e5d058033c16a149c4c26b1ce5893122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Wed, 23 Nov 2022 10:11:12 +0800 Subject: [PATCH 2083/3123] Translating --- ... 10 Lightweight Linux Distributions for your Old Hardware in 2022.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md b/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md index c1de1e201f..7e8f5b4931 100644 --- a/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md +++ b/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/lightweight-linux-distributions-2022/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1b12c6ce6dffa3fe86ecd6da2908e19c15bf9c11 Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Wed, 23 Nov 2022 10:45:02 +0800 Subject: [PATCH 2084/3123] translated1123 --- ... Linux With Audacity -and Reduce Noise-.md | 131 ------------------ ... Linux With Audacity -and Reduce Noise-.md | 130 +++++++++++++++++ 2 files changed, 130 insertions(+), 131 deletions(-) delete mode 100644 sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md create mode 100644 translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md diff --git a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md deleted file mode 100644 index 6fa3cf4c43..0000000000 --- a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md +++ /dev/null @@ -1,131 +0,0 @@ -[#]: subject: "How to Record Audio in Linux With Audacity (and Reduce Noise)" -[#]: via: "https://itsfoss.com/audacity-recording/" -[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" -[#]: collector: "lkxed" -[#]: translator: "FYJNEVERFOLLOWS " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Record Audio in Linux With Audacity (and Reduce Noise) -====== - -[Audacity][1] is a free and open source cross-platform [audio editor][2]. Professionals use it for the tone of features it provides in such a small package. - -You don’t have to be a professional and use all of its features. You can use it to record audio from your microphone and do some basics like background noise removal. - -I will show you how to do that in this tutorial. - -### Installing Audacity on Linux - -Installing Audacity on Linux is quite a straightforward process. Because of its popularity, it is available in the official repositories of most Linux distributions. - -You can search for it in your distribution’s software center or package manager. - -As a terminal fan, let me share the commands for the common distros. - -For Debian or Ubuntu-based distributions: - -``` -sudo apt install audacity -``` - -For RHEL or Fedora-based distributions: - -``` -sudo dnf install audacity -``` - -If you use an Arch-based distribution: - -``` -sudo pacman -Syu audacity -``` - -**Note** that installing via the official repositories may not give you the [latest version][3]. To get the latest version, you may use the AppImage, or Flatpak/Snap packages. - -### Recording audio using Audacity - -Once Audacity is installed, open it from the application menu or launch it from the terminal. You will be greeted with something like this: - -![Audacity Interface][4] - -It is easy to start recording by clicking on the **record** button (the red dot). When you are done, click on the **stop** button (square icon) to finish. You also get a waveform preview of your recording, as shown below: - -![record audio with audacity][5] - -Then, you can check what was recorded by clicking the **play** button (the green icon). - -In case you do not see any waveform it indicates that nothing has been recorded. Probably, you have not set up your input correctly. Ensure that you have selected the correct microphone and it is not muted in the **system settings**. You can also access this from the Audacity interface. - -The recordings are not saved automatically as MP3 or other formats. **To save the recording**, you can go to File → Export and select **Export as MP3** (or any other preferred format). - -### Reducing background noise with Audacity - -There is another fantastic feature available in Audacity which you can use to reduce white noise in recorded audio. - -The best practice would be to not say anything for the first five seconds when you start recording with Audacity. This should give you desired background noise. - -On the waveform of your audio recording, select the part you think is the background noise. - -![Background noise][6] - -With the noise part selected, go to **Effects → Noise Reduction** from the top file menu. - -It will open a pop-up window like this. Click on the “**Get Noise Profile**” here. - -![Noise Reduction Effect Popup Window][7] - -Now, you have got the noise profile set. Now you have to use it to reduce it from the recording. - -Press Ctrl + A shortcut key to select the entire recording. You may also select part of it, noise will be reduced from the selected portion only. - -With the audio track selected, again go to **Effect → Noise Reduction**. - -**Don’t click** on ‘Get Noise Profile’ this time. This time, you should be able to press the **OK** button. - -Just press the OK button and this will apply the noise reduction effect to your recording, which gets reflected on the waveform as shown below: - -![Audio Waveform after Noise Reduction][8] - -Now the recorded audio will have less noise as compared. You can fine-tune the noise filtering while selecting the Noise Reduction effect. - -To summarize: - -* Select the noise part, go to Effect->Noise Reduction and then click “Get Noise Profile” -* Press Ctrl+A to select entire audio recording, go to Effect->Noise Reduction and press OK this time - -Note that you cannot remove every type of noise, but this should help nonetheless. - -### Audacity can do a lot more - -Recording audio with Audacity may not seem as easy as using GNOME Sound Recorder, but it’s not overly complicated. The noise reduction feature comes in handy if you are recording voiceovers. - -Audacity has a lot more features, and it is not possible to cover all of them in a single tutorial. This is why I’ll keep this short and simple. - -If you have a problem with [Audacity’s privacy policy adjustments][9] (in 2021), try out some of the available forks. - -I hope this little tutorial helps you use Audacity for audio recording. Let me know if you have questions or suggestions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/audacity-recording/ - -作者:[Anuj Sharma][a] -选题:[lkxed][b] -译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/anuj/ -[b]: https://github.com/lkxed -[1]: https://github.com/audacity/audacity -[2]: https://itsfoss.com/best-audio-editors-linux/ -[3]: https://github.com/audacity/audacity/releases -[4]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-interface.png -[5]: https://itsfoss.com/wp-content/uploads/2022/08/record-audio-with-audacity.png -[6]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduction.png -[7]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-steps.png -[8]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduced.png -[9]: https://news.itsfoss.com/audacity-fiasco-fork/ diff --git a/translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md new file mode 100644 index 0000000000..6db8dae03b --- /dev/null +++ b/translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md @@ -0,0 +1,130 @@ +[#]: subject: "How to Record Audio in Linux With Audacity (and Reduce Noise)" +[#]: via: "https://itsfoss.com/audacity-recording/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: "FYJNEVERFOLLOWS" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中使用 Audacity 录制音频(并降低噪音) +====== + +[Adacity][1] 是一个免费的开源跨平台[音频编辑器][2]。专业人士使用它是因为它提供的功能仅需安装很小的软件包。 + +你不必成为一名专业人士并使用它的所有功能。你可以使用它从麦克风录制音频,并执行一些基本操作,如背景噪声消除。 + +我将在本教程中向你展示如何做到这一点。 + +### 在 Linux 上安装 Audacity + +在 Linux 上安装 Audacity 是一个非常简单的过程。由于其受欢迎,可以在大多数 Linux 发行版的官方存储库中找到它。 + +你可以在发行版的软件中心或软件包管理器中搜索它。 + +作为一个终端爱好者,让我分享一下常见发行版的命令。 + +对于基于 Debian 或 Ubuntu 的发行版: + +``` +sudo apt install audacity +``` + +对于基于 RHEL 或 Fedora 的发行版: + +``` +sudo dnf install audacity +``` + +如果你在用基于 Arch 的发行版: + +``` +sudo pacman -Syu audacity +``` +**注意**,通过官方存储库安装可能无法获得[最新版本][3]。要获得最新版本,你可以使用 AppImage 或 Flatpak/Snap 软件包。 + +### 使用 Audacity 录制音频 + +安装 Audacity 后,从应用程序菜单打开它或从终端启动它。你会看到这样的界面: + +![Audacity Interface][4] +单击**录制**按钮(红点)即可轻松开始录制。完成后,单击**停止**按钮(方形图标)来结束录制。你还可以预览录制的波形,如下所示: + +![record audio with audacity][5] + +然后,你可以通过单击**播放**按钮(绿色图标)检查录制的内容。 + +如果你没有看到任何波形,则表示未录制到任何内容。很可能,你没有正确设置音频输入。确保你选择了正确的麦克风,并确保在**系统设置**中其未被静音。你也可以通过 Audacity 接口设置。 + +录音不会自动保存为 MP3 或其他格式。**要保存录音**,你可以转到 `File` → `Export` 并选择 `Export as MP3`(或任何其他想要的格式)。 + +### 使用 Audacity 降低背景噪声 + +Audacity 还有另一个很棒的功能,你可以使用它来减少录制音频中的白噪声。 + +最好的做法是在开始使用 Audacity 录制时的前五秒不要说任何话。这将为你提供所需的背景噪声。 + +在录制音频的波形上,选择你认为是背景噪声的部分。 + +![Background noise][6] + +选择噪声部分后,从顶部文件菜单中转到 `Effects` → `Noise Reduction`。 + +它会像这样打开一个弹出窗口。单击此处的 `Get Noise Profile`。 + +![Noise Reduction Effect Popup Window][7] + +现在,你已经设置了噪声配置文件。现在,你必须使用它来减少录音中的噪声。 + +按 `Ctrl + A` 快捷键选择整段录音。你也可以选择其中的一部分,仅对所选部分减少噪声。 + +选择音轨后,再次转到 `Effect` → `Noise Reduction`。 + +**这次不要单击** `Get Noise Profile`。这一次,你应该能够按下 `OK` 按钮。 + +只需按下 `OK` 按钮,即可将降噪效果应用到录音中,并反映在波形上,如下所示: + +![Audio Waveform after Noise Reduction][8] + +现在,相较而言,录制的音频将具有更少的噪声。你可以在选择 `Noise Reduction` 效果时微调噪声过滤。 + +总结如下: + +* 选择噪声部分,转到 `Effects` → `Noise Reduction`,然后单击 `Get Noise Profile` + +* 按 `Ctrl + A` 选择整段音频录制,转到 `Effects` → `Noise Reduction`,这次按 `OK` 按钮 + +请注意,你无法移除所有类型的噪声,但这应该会有所帮助。 + +### Audacity 能做更多事情 + +使用 Audacity 录制音频可能不像使用 GNOME 录音机那样简单,但它并不太复杂。如果你正在录制画外音,降噪功能将非常有用。 + +Audacity 有更多其他功能,不可能在一个教程中涵盖所有这些功能。这就是为什么我会保持简短的原因。 + +如果你不能接受 2021 年的 [Audacity 的隐私政策调整][9],试试其他可用的工具。 + +我希望这个小教程能帮助你使用 Audacity 进行音频录制。如果你有问题或建议,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/audacity-recording/ + +作者:[Anuj Sharma][a] +选题:[lkxed][b] +译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/anuj/ +[b]: https://github.com/lkxed +[1]: https://github.com/audacity/audacity +[2]: https://itsfoss.com/best-audio-editors-linux/ +[3]: https://github.com/audacity/audacity/releases +[4]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-interface.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/record-audio-with-audacity.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduction.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-steps.png +[8]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduced.png +[9]: https://news.itsfoss.com/audacity-fiasco-fork/ From 3c81701260dee5ac17d19ad5bcb6d7532b68c793 Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Wed, 23 Nov 2022 11:06:48 +0800 Subject: [PATCH 2085/3123] translating --- ...Streaming Audio in Ubuntu and other Linux Distributions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md index 8620d214f8..ac6e8dca33 100644 --- a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md +++ b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/record-streaming-audio/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "FYJNEVERFOLLOWS" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -160,7 +160,7 @@ via: https://itsfoss.com/record-streaming-audio/ 作者:[Abhishek Prakash][a] 选题:[lkxed][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/) 荣誉推出 From 7b0f7491035d084edb34c6fe32758cf1367f780e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 23 Nov 2022 14:37:03 +0800 Subject: [PATCH 2086/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 https://linux.cn/article-15281-1.html 这篇翻译的很用心,就是 RUBY 标签和双引号的用法我做了一点调整。 --- ...sing and Customizing the Dock in Ubuntu.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) rename {translated/tech => published}/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md (80%) diff --git a/translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/published/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md similarity index 80% rename from translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md rename to published/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md index 56fe9a39fa..4cbc192479 100644 --- a/translated/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md +++ b/published/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15281-1.html) [#]: subject: (The Definitive Guide to Using and Customizing the Dock in Ubuntu) [#]: via: (https://itsfoss.com/customize-ubuntu-dock/) [#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) @@ -10,6 +10,8 @@ 在 Ubuntu 中使用和自定义程序坞 ====== +![][0] + 当你登录 Ubuntu 时,你会看到屏幕左侧的 程序坞/停靠栏 dock ,上面有一些应用程序的图标。程序坞(也称为 启动器 launcher ,或者 面板 panel )可以让你快速启动某个常用的应用程序。 ![][1] @@ -23,10 +25,10 @@ * 更改程序坞的位置:可用于单屏和多显示器的设置 * 在程序坞中隐藏已安装的磁盘图标 * 自动隐藏或禁用程序坞 - * 使用 dconf-editor 对程序坞进行额外的定制 + * 使用 `dconf-editor` 对程序坞进行额外的定制 * 用其他程序坞应用程序替换 Ubuntu 默认的程序坞 -我将在教程中使用 程序坞 dock 面板 panel 启动器 launcher 等术语,它们的意思是等同的。 +我将在教程中使用 程序坞 dock 面板 panel 启动器 launcher 等术语,它们的意思是等同的。 ### 如何使用 Ubuntu 程序坞:你必须知道的基础知识 @@ -36,11 +38,11 @@ 这一步骤十分简单。从菜单中搜索你想要添加在程序坞的应用程序,然后运行它。 -正在运行的应用程序会显示在程序坞中,它的图标在程序坞中所有图标的下方。右键单击该图标,然后选择 “添加到收藏夹” Add to Favorites 选项。这会把该应用程序的图标锁定到程序坞上。 +正在运行的应用程序会显示在程序坞中,它的图标在程序坞中所有图标的下方。右键单击该图标,然后选择 “添加到收藏夹 Add to Favorites ” 选项。这会把该应用程序的图标锁定到程序坞上。 ![Right-click on the icon and select “Add to Favorites”][2] -从程序坞中删除应用程序的图标,操作起来更为简单。你不需要运行你想要在程序坞删除的应用程序,只需右键单击应用程序图标,然后选择 “从收藏夹中删除” Remove From Favorites 即可。 +从程序坞中删除应用程序的图标,操作起来更为简单。你不需要运行你想要在程序坞删除的应用程序,只需右键单击应用程序图标,然后选择 “从收藏夹中删除 Remove From Favorites ” 即可。 ![Right-click on the icon and select “Remove from Favorites”][3] @@ -48,7 +50,7 @@ 默认情况下,新添加到程序坞的应用程序图标会放置在程序坞上的所有图标之后。但是,你也可以改变图标的位置。 -要更改图标的顺序,你只需将它拖放到另一个位置即可,不用 “锁定位置” lock it ,或者做其他的事情。如果你不做任何的更改,这个图标会一直停留在那个位置。 +要更改图标的顺序,你只需将它拖放到另一个位置即可,不用 “锁定位置 lock it ”,或者做其他的事情。如果你不做任何的更改,这个图标会一直停留在那个位置。 ![Reorder Icons On Ubuntu Docks][4] @@ -64,19 +66,19 @@ 右键单击**文件管理器**图标,在它的额外选项中,你可以查看所有已添加书签的目录,或预览打开的窗口。 -当然,你也可以通过右键单击图标,来退出应用程序。大多数应用程序能够通过右键单击而退出,而一些应用程序(例如 Telegram 等),将被最小化到 系统托盘 system tray 中。 +当然,你也可以通过右键单击图标,来退出应用程序。大多数应用程序能够通过右键单击而退出,而一些应用程序(例如 Telegram 等),将被最小化到 系统托盘 system tray 中。 #### 使用键盘快捷键,以快速启动程序坞中的应用程序 [知道这个的人不多] 你只需用鼠标单击程序坞上的图标,即可启动应用程序。但是,你也可以用键盘快捷键,来启动应用程序。 -使用 **WIN/Super 键** + **数字键**的组合,能够启动程序坞中该位置的应用程序。 +使用 `WIN`/`Super` + `数字键` 的组合,能够启动程序坞中该位置的应用程序。 ![][6] 如果应用程序已经在运行了,它将被聚焦。 -由于这个功能是基于位置的,所以请不要一直对图标进行重新排序。就我个人而言,我把 Firefox 放在程序坞的第 1 个位置,文件管理器放在第 2 个位置,备用浏览器放在第 3 个位置,以此类推,直到第 9 个位置。这样,我可以使用 Super + 2,从而快速启动文件管理器。 +由于这个功能是基于位置的,所以请不要一直对图标进行重新排序。就我个人而言,我把 Firefox 放在程序坞的第 1 个位置,文件管理器放在第 2 个位置,备用浏览器放在第 3 个位置,以此类推,直到第 9 个位置。这样,我可以使用 `Super + 2`,从而快速启动文件管理器。 因为我的系统连接了 3 个屏幕,所以我发现这个快速启动应用程序的功能特别好用,我不必再将鼠标移动到第一个屏幕上的程序坞上了。你也可以在其他屏幕上启用或禁用程序坞,我将在本教程的后面部分向你展示如何设置。 @@ -84,11 +86,11 @@ 默认情况下,程序坞位于屏幕的左侧。但是,有些人喜欢将程序坞放置在屏幕底部。 -Ubuntu 允许你更改程序坞的位置。你可以将程序坞移至底部或右侧。我不确定很多人真的想要把扩展坞放在了顶部,所以将扩展坞移到顶部并不是一个选项。 +Ubuntu 允许你更改程序坞的位置。你可以将程序坞移至底部或右侧。我不觉得有很多人真的想要把扩展坞放在了顶部,所以没有将扩展坞移到顶部的选项。 ![Change Launcher Position][7] -要更改程序坞位置,请进入 “设置” Settings 菜单,然后点击 “外观” Appearance ,你可以在 Dock 栏下看到一些选项,然后你可以在此处更改 “屏幕上的位置” Position on screen 这一设置。 +要更改程序坞位置,请进入 “设置 Settings ” 菜单,然后点击 “外观 Appearance ” ,你可以在 Dock 栏下看到一些选项,然后你可以在此处更改 “屏幕上的位置 Position on screen ” 这一设置。 ![Go to Settings->Appearance->Dock][8] @@ -110,7 +112,7 @@ Ubuntu 允许你更改程序坞的位置。你可以将程序坞移至底部或 ![][10] -要更改程序坞的图标大小,请进入 “设置” Settings 菜单,然后点击 “外观” Appearance ,并通过移动 “图标大小” Icon size 下的滑块来更改它。默认的图标大小为 48 像素。 +要更改程序坞的图标大小,请进入 “设置 Settings ” 菜单,然后点击 “外观 Appearance ” ,并通过移动 “图标大小 Icon size ” 下的滑块来更改它。默认的图标大小为 48 像素。 ![Changing Icon Size In Ubuntu Dock][11] @@ -160,7 +162,7 @@ gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' 自动隐藏选项会隐藏程序坞,你就能获得整个屏幕。不过,程序坞仍然可以使用。将光标移动到程序坞原来所在的位置,它就会再次出现。当程序坞重新出现时,它会覆盖在正在运行的应用程序窗口上。这是一件好事,否则太多元素会开始在屏幕上移动。 -要设置程序坞自动隐藏,请进入 “设置” Settings 菜单,然后点击 “外观” Appearance ,你可以在 Dock 栏下开启 自动隐藏选项 Auto-hide the Dock 。 +要设置程序坞自动隐藏,请进入 “设置 Settings ” 菜单,然后点击 “外观 Appearance ” ,你可以在 Dock 栏下开启 自动隐藏选项 Auto-hide the Dock ” 。 ![Auto-hide the dock][14] @@ -180,14 +182,13 @@ Ubuntu 程序坞的自动隐藏选项对很多人来说已经足够好了,但 ### 使用 dconf-editor 进行高级的程序坞定制 [不推荐] - ##### 请注意 -dconf-editor 能让你更改 GNOME 桌面环境的几乎每个方面。这个性质喜忧参半,因为你在更改时必须小心,而且大多数设置都可以即时更改,无需确认。虽然你可以重置你的更改,但你仍可能会将系统置于难以恢复正常的状态。 +`dconf-editor` 能让你更改 GNOME 桌面环境的几乎每个方面。这个性质喜忧参半,因为你在更改时必须小心,而且大多数设置都可以即时更改,无需确认。虽然你可以重置你的更改,但你仍可能会将系统置于难以恢复正常的状态。 -出于这个原因,我不推荐你使用 dconf-editor,特别是如果你不喜欢花时间在故障排除和修复问题上,或者如果你不太熟悉 Linux 和 GNOME。 +出于这个原因,我不推荐你使用 `dconf-editor`,特别是如果你不喜欢花时间在故障排除和修复问题上,或者如果你不太熟悉 Linux 和 GNOME。 -[dconf editor][18] 给你提供了在 Ubuntu 中自定义程序坞的其他选项。你可以在从软件中心安装 dconf editor,然后导航到 org > gnome > shell > extensions > dash-to-dock,在这里你会找到很多自定义程序坞的选择。 +[dconf-editor][18] 给你提供了在 Ubuntu 中自定义程序坞的其他选项。你可以在从软件中心安装 `dconf-editor`,然后导航到 `org > gnome > shell > extensions > dash-to-dock`,在这里你会找到很多自定义程序坞的选择。 ![][19] @@ -195,7 +196,7 @@ dconf-editor 能让你更改 GNOME 桌面环境的几乎每个方面。这个性 有几个第三方的程序坞应用程序可用于 Ubuntu 和其他 Linux 发行版。你可以安装你想要的第三方程序坞,并使用它。 -例如,你可以从软件中心下载 Plank dock,并以与 Ubuntu 程序坞类似的方式来使用它。 +例如,你可以从软件中心下载 “Plank dock”,并以与 Ubuntu 程序坞类似的方式来使用它。 ![Plank Dock in Ubuntu][20] @@ -218,7 +219,7 @@ via: https://itsfoss.com/customize-ubuntu-dock/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -244,3 +245,4 @@ via: https://itsfoss.com/customize-ubuntu-dock/ [18]: https://wiki.gnome.org/Apps/DconfEditor [19]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/dconf-editor-dock.png?resize=592%2C599&ssl=1 [20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/plank-dock-Ubuntu.jpg?resize=800%2C382&ssl=1 +[0]: https://img.linux.net.cn/data/attachment/album/202211/23/143533heym0bybbfm0bfbj.jpg \ No newline at end of file From 7424288497fcc04345be263883de72e27311ef55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Wed, 23 Nov 2022 15:01:07 +0800 Subject: [PATCH 2087/3123] Translating --- ...1025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md index af8661718c..778b9f7ada 100644 --- a/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md +++ b/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 10f1869342183a91dea47df9cb8f117e364a5491 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 24 Nov 2022 08:44:43 +0800 Subject: [PATCH 2088/3123] translated --- ...⭐️ How to switch from Twitter to Mastodon.md | 118 ------------------ ...⭐️ How to switch from Twitter to Mastodon.md | 118 ++++++++++++++++++ 2 files changed, 118 insertions(+), 118 deletions(-) delete mode 100644 sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md create mode 100644 translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md diff --git a/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md deleted file mode 100644 index 80cf78e2dd..0000000000 --- a/sources/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md +++ /dev/null @@ -1,118 +0,0 @@ -[#]: subject: "How to switch from Twitter to Mastodon" -[#]: via: "https://opensource.com/article/22/11/switch-twitter-mastodon" -[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to switch from Twitter to Mastodon -====== - -Mastodon is an open source microblogging community. - -Like many people, I find social media somewhat exciting and also...a bit much. Sometimes you get deep-fried in algorithms, tracking data, and ads catered especially for you. You lack administrative control over what you want to see, especially on the old platforms many of us are used to. As usual, you must look to open source to fix the problem. And that's exactly what [Mastodon][1], an open source microblogging community, does. - -With Mastodon social, not only are you working with open source software, but everything is decentralized, which means you can pick what you want to see partly based on the instance you want to occupy. Mastodon uses separate instances, each with its own code of conduct, privacy options, and moderation policies. That means that when you join an instance, you're less likely to see the stuff you're not interested in and more likely to see messages from people who share your interests. - -However, you can also interact with other instances. All Mastodon installs have the potential to be "federated" in what its users call the "fediverse." - -### What is the fediverse? - -The fediverse is an ensemble of federated (or interconnected) servers. The word comes from the mix of "federated" and "universe." You can use this for all sorts of web publishing, from social networking to websites to file hosting. While each instance is hosted independently, they can talk to each other. - -### So how can I sign up for Mastodon? - -First, go to [Mastodon.social][2] to sign up. - -On the right-hand side of the screen, there are **Sign in** and **Create account** buttons. - -![Sign-in or Create Account interface][3] - -However, because anyone can run a Mastodon server, there are many instances, and some servers are already home to a community with interests that may align with your own. As I've said, you'll have access to the whole fediverse no matter what, but it can be nice to start on a server where people already "speak your language" (that can be literal, too, because you can add a filter to find a server in your native language). - -To find a server, click the **Find another server** button. - -![Signing up interface][4] - -When you click that button, you're brought to the [Join Mastodon page][5], with a button to list available servers. - -![Getting started interface][6] - -As you scroll down, you can pick a topic on the left to help you find where you would like to be hosted. - -![Topic list][7] - -I'm all about open source, so let's see what we have in the technology topic. - -![Technology topics][8] - -As you can see, there's a large index with many waiting lists. In this case, it looks like Don Watkins, a fellow Opensource.com author, has chosen an instance that works for himself and our talented group. So I'll skip ahead and tell you where I'm going: There's a free open source software server known as [Fosstodon][9], and I've chosen to sign up there so I can share my articles freely. - -Here are the sign-in steps. - -First, enter your information: - -![Steps for signing in][10] - -Next, you get a message about a confirmation email: - -![Confirmation message][11] - -When you get to your email, click the **Verify** button, and the system prompts you to confirm your login information. - -This server does have an application process to join. This process isn't just for safety reasons but also for privacy. Once approved, you get this amazing email! - -![Welcome message][12] - -I kept my handle from other social media venues, so it's easy to move back and forth from one place to another and cross-post with replication and API calls. - -### Complete control - -Now that I have a new profile, I can change preferences on what emails I receive, allowing for more control over what I see. This is a good way to give me more power over my media intake, and it's greatly appreciated. Once I click **Preferences**, Mastodon offers me cool appearance, language information, and many other options. - -![Appearance settings][13] - -Next, I can click notifications and limit what I see and what I get notified for, so I can opt for less noise. - -![Notifications settings][14] - -This complete control of my media without algorithmic intervention is great. You can also set up featured hashtags for what you want on your profile to follow long-term projects or allow people to find you by following those hashtags. You also have the options for filters, followers, and so much more. - -### Final notes - -This open source social media is a great way to find your group of people and broadly interact with those in a broad universe of interests. Controlling media intake is great for some balance in your life, and you can opt-in to contributing by checking the [contributor rules][15]. - -In addition to the control over your own social media experience, you also gain phone apps that work on all devices, including Toot for iPhone and Tusky for Android. - -Long story short: I think we should all get ready for a new open source world of social media. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/switch-twitter-mastodon - -作者:[Jessica Cherry][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/cherrybomb -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/22/11/twitter-vs-mastodon -[2]: https://mastodon.social/ -[3]: https://opensource.com/sites/default/files/2022-11/1signin-createaccount.png -[4]: https://opensource.com/sites/default/files/2022-11/2signingup.png -[5]: https://joinmastodon.org/servers -[6]: https://opensource.com/sites/default/files/2022-11/3gettingstarted.png -[7]: https://opensource.com/sites/default/files/2022-11/4topics.png -[8]: https://opensource.com/sites/default/files/2022-11/5techtopic.png -[9]: https://fosstodon.org/ -[10]: https://opensource.com/sites/default/files/2022-11/6signin.jpg -[11]: https://opensource.com/sites/default/files/2022-11/7confirmation.png -[12]: https://opensource.com/sites/default/files/2022-11/8welcome.png -[13]: https://opensource.com/sites/default/files/2022-11/9appearance.png -[14]: https://opensource.com/sites/default/files/2022-11/10notifications.png -[15]: https://github.com/mastodon/mastodon/blob/main/CONTRIBUTING.md diff --git a/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md new file mode 100644 index 0000000000..ed4d7ffa54 --- /dev/null +++ b/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md @@ -0,0 +1,118 @@ +[#]: subject: "How to switch from Twitter to Mastodon" +[#]: via: "https://opensource.com/article/22/11/switch-twitter-mastodon" +[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何从 Twitter 切换到 Mastodon +====== + +Mastodon 是一个开源微博社区。 + +像许多人一样,我发现社交媒体有些令人兴奋,而且……有点多。有时,你会在算法、跟踪数据和针对你的广告中大受煎熬。你对想要查看的内容缺乏管理控制,尤其是在我们许多人习惯的旧平台上。像往常一样,你必须寻求开源来解决问题。而这正是开源微博社区 [Mastodon][1] 所做的。 + +使用 Mastodon social,你不仅可以使用开源软件,而且一切都是去中心化的,这意味着你可以部分地根据你想要占用的实例来选择你想要查看的内容。 Mastodon 使用不同的实例,每个实例都有自己的行为准则、隐私选项和审核政策。这意味着当你加入一个实例时,你不太可能看到您不感兴趣的内容,而更有可能看到来自与你有共同兴趣的人的消息。 + +但是,你也可以与其他实例进行交互。所有 Mastodon 用户都有可能在用户称之为 “fediverse” 的地方“联合”。 + +### 什么是 fediverse? + +fediverse 是联合(或互连)服务器的集合。这个词来自“联邦”和“宇宙”的组合。你可以将其用于各种网络发布,从社交网络到网站再到文件托管。虽然每个实例都是独立托管的,但它们可以相互通信。 + +### 那么我该如何注册 Mastodon? + +首先,前往 [Mastodon.social][2] 进行注册。 + +在屏幕的右侧,有**登录**和**创建帐户**按钮。 + +![Sign-in or Create Account interface][3] + +但是,因为任何人都可以运行 Mastodon 服务器,所以有很多实例,并且一些服务器已经成为社区的所在地,这些社区的兴趣可能与你的兴趣一致。正如我所说的,无论如何你都可以访问整个 fediverse,但如果能在一个人们已经“说你的语言”的服务器上开始,那就更好了(也可以是字面意思,因为你可以添加一个过滤器以查找使用你的母语的服务器)。 + +要查找服务器,请单击**查找另一台服务器**按钮。 + +![Signing up interface][4] + +当你单击该按钮时,你将进入[加入 Mastodon 页面][5],其中有一个列出可用服务器的按钮。 + +![Getting started interface][6] + +向下滚动时,你可以在左侧选择一个主题,以帮助你找到希望托管的位置。 + +![Topic list][7] + +我的都是关于开源的,所以让我们看看我们在技术主题中有什么。 + +![Technology topics][8] + +如你所见,有一个包含许多等候名单的大型索引。在这种情况下,Opensource.com 的一位作者 Don Watkins 似乎选择了一个适合他自己和我们天才小组的实例。因此,我将跳过并告诉你我要去哪里:有一个名为 [Fosstodon][9] 的免费开源软件服务器,我选择在那里注册,这样我就可以自由分享我的文章。 + +以下是登录步骤。 + +首先,输入你的信息: + +![Steps for signing in][10] + +接下来,你会收到有关确认电子邮件的消息: + +![Confirmation message][11] + +当你收到邮件时,点击**验证**按钮,系统会提示你确认你的登录信息。 + +该服务器确实有申请加入的过程。这个过程不仅是出于安全原因,也是为了隐私。获得批准后,你就会收到这封很棒的电子邮件! + +![Welcome message][12] + +我保留了其他社交媒体场所的地址,因此很容易从一个地方来回移动到另一个地方,并通过复制和 API 调用交叉发布。 + +### 完全控制 + +现在我有了一个新的个人资料,我可以更改我收到的电子邮件的偏好,从而更好地控制我看到的内容。这是让我对媒体接收有更多控制权的好方法,非常感谢。单击 **Preferences** 后,Mastodon 会为我提供炫酷的外观、语言信息和许多其他选项。 + +![Appearance settings][13] + +接下来,我可以点击通知并限制我看到的内容和收到通知的内容,这样我就可以选择更少的噪音。 + +![Notifications settings][14] + +在没有算法干预的情况下完全控制我的媒体非常棒。你还可以为个人资料上的内容设置特色主题标签,以关注长期项目或让人们通过关注这些主题标签找到你。你还可以选择过滤器、关注者等等。 + +### 总结 + +这种开源社交媒体是找到你的人群并与兴趣广泛的人进行广泛互动的好方法。控制媒体摄入量对于你生活中的某种平衡非常有用,你可以查看[贡献者规则][15]选择加入贡献。 + +除了控制你自己的社交媒体体验外,你还可以获得适用于所有设备的手机应用,包括适用于 iPhone 的 Toot 和适用于 Android 的 Tusky。 + +长话短说:我认为我们都应该做好新的额开源社交媒体世界的准备。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/switch-twitter-mastodon + +作者:[Jessica Cherry][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/cherrybomb +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/11/twitter-vs-mastodon +[2]: https://mastodon.social/ +[3]: https://opensource.com/sites/default/files/2022-11/1signin-createaccount.png +[4]: https://opensource.com/sites/default/files/2022-11/2signingup.png +[5]: https://joinmastodon.org/servers +[6]: https://opensource.com/sites/default/files/2022-11/3gettingstarted.png +[7]: https://opensource.com/sites/default/files/2022-11/4topics.png +[8]: https://opensource.com/sites/default/files/2022-11/5techtopic.png +[9]: https://fosstodon.org/ +[10]: https://opensource.com/sites/default/files/2022-11/6signin.jpg +[11]: https://opensource.com/sites/default/files/2022-11/7confirmation.png +[12]: https://opensource.com/sites/default/files/2022-11/8welcome.png +[13]: https://opensource.com/sites/default/files/2022-11/9appearance.png +[14]: https://opensource.com/sites/default/files/2022-11/10notifications.png +[15]: https://github.com/mastodon/mastodon/blob/main/CONTRIBUTING.md From 130ef3614e8b0c62bf812943cdd2dacef93c4434 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 24 Nov 2022 08:51:09 +0800 Subject: [PATCH 2089/3123] translating --- ... How to Install OpenOffice in Arch Linux [Beginner’s Guide].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md index bc730a3db8..3765db74bb 100644 --- a/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md +++ b/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-openoffice-arch/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From eb101103574582f1a8b9a932e895d9d38dace522 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 24 Nov 2022 11:16:03 +0800 Subject: [PATCH 2090/3123] RP @geekpi https://linux.cn/article-15283-1.html --- ...ice Base Database in Ubuntu and Other Linux.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) rename {translated/tech => published}/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md (61%) diff --git a/translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md b/published/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md similarity index 61% rename from translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md rename to published/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md index 0673e29e41..c30fbaca71 100644 --- a/translated/tech/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md +++ b/published/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md @@ -3,16 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15283-1.html" 如何在 Ubuntu 和其他 Linux 下安装 LibreOffice Base 数据库 ====== -**以下是如何在 Ubuntu 和其他 Linux 发行版中安装 LibreOffice Base 数据库模块。** +![][0] -流行的免费和开源办公套件 LibreOffice 由六个独立的组件组成。然而,Ubuntu 和相关发行版中默认安装的 LibreOffice 只包括其中的五个: +> 以下是如何在 Ubuntu 和其他 Linux 发行版中安装 LibreOffice Base 数据库模块。 + +流行的自由开源的办公套件 LibreOffice 由六个独立的组件组成。然而,Ubuntu 和相关发行版中默认安装的 LibreOffice 只包括其中的五个: - Calc - Writer @@ -24,23 +26,23 @@ ### 在 Ubuntu 和其他 Linux 中安装 LibreOffice Base -你可以使用 Software 应用或终端来安装 `libreoffic-base` 包。我建议使用终端来安装它。打开一个终端窗口,运行以下命令来安装它。 +你可以使用 “软件Software” 应用或终端来安装 `libreoffic-base` 包。我建议使用终端来安装它。打开一个终端窗口,运行以下命令来安装它。 ``` sudo apt install libreoffice-base ``` -如果你喜欢 Software 或其他基于 GUI 的安装程序,搜索 “libreoffic-base” 并点击安装。 +如果你喜欢 “软件Software” 应用 或其他基于 GUI 的安装程序,搜索 “libreoffic-base” 并点击安装。 -对于 **Fedora 和基于 RPM 的发行版**,使用以下命令: +对于 Fedora 和基于 RPM 的发行版,使用以下命令: ``` sudo dnf install libreoffice-base ``` -如果你在 **Arch Linux** 中安装了 LibreOffice,无论是 [libreoffic-fresh][1] 还是 [libreoffic-still][2],那么就不需要任何操作了。LibreOffice Base 已经包含在这两个软件包中了。你可以开始使用了。 +如果你在 Arch Linux 中安装了 LibreOffice,无论是 [libreoffic-fresh][1] 还是 [libreoffic-still][2],那么就不需要任何操作了。LibreOffice Base 已经包含在这两个软件包中了。你可以开始使用了。 -在另一个方面,如果你想看看如何安装最新的 LibreOffice,请查看[这个指南][3]。 +在另一个方面,如果你想看看如何安装最新的 LibreOffice,请查看 [这个指南][3]。 ![在 Ubuntu 中安装 Libreoffice Base][4] @@ -53,7 +55,7 @@ via: https://www.debugpoint.com/install-libreoffice-base-ubuntu/ 作者:[Arindam][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/) 荣誉推出 @@ -63,3 +65,4 @@ via: https://www.debugpoint.com/install-libreoffice-base-ubuntu/ [2]: https://archlinux.org/packages/extra/x86_64/libreoffice-still/ [3]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ [4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-Libreoffice-Base-in-Ubuntu.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202211/24/111503yhkq3mihfxkxsh1v.jpg \ No newline at end of file From fa379c8573282cacba89b85af83de53fe1f0508a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 24 Nov 2022 11:51:01 +0800 Subject: [PATCH 2091/3123] RP @FYJNEVERFOLLOWS https://linux.cn/article-15284-1.html --- ... Linux With Audacity -and Reduce Noise-.md | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) rename {translated/tech => published}/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md (61%) diff --git a/translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/published/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md similarity index 61% rename from translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md rename to published/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md index 6db8dae03b..2f52b58b26 100644 --- a/translated/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md +++ b/published/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md @@ -3,14 +3,16 @@ [#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" [#]: collector: "lkxed" [#]: translator: "FYJNEVERFOLLOWS" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15284-1.html" -如何在 Linux 中使用 Audacity 录制音频(并降低噪音) +如何在 Linux 中使用 Audacity 录制音频(并降噪) ====== -[Adacity][1] 是一个免费的开源跨平台[音频编辑器][2]。专业人士使用它是因为它提供的功能仅需安装很小的软件包。 +![][0] + +[Audacity][1] 是一个自由开源的跨平台 [音频编辑器][2]。专业人士使用它是因为它提供的功能仅需安装很小的软件包。 你不必成为一名专业人士并使用它的所有功能。你可以使用它从麦克风录制音频,并执行一些基本操作,如背景噪声消除。 @@ -41,22 +43,25 @@ sudo dnf install audacity ``` sudo pacman -Syu audacity ``` -**注意**,通过官方存储库安装可能无法获得[最新版本][3]。要获得最新版本,你可以使用 AppImage 或 Flatpak/Snap 软件包。 + +**注意**,通过官方存储库安装可能无法获得 [最新版本][3]。要获得最新版本,你可以使用 AppImage 或 Flatpak/Snap 软件包。 ### 使用 Audacity 录制音频 安装 Audacity 后,从应用程序菜单打开它或从终端启动它。你会看到这样的界面: ![Audacity Interface][4] -单击**录制**按钮(红点)即可轻松开始录制。完成后,单击**停止**按钮(方形图标)来结束录制。你还可以预览录制的波形,如下所示: + +单击“录制”按钮(红点)即可轻松开始录制。完成后,单击“ +停止”按钮(方形图标)来结束录制。你还可以预览录制的波形,如下所示: ![record audio with audacity][5] -然后,你可以通过单击**播放**按钮(绿色图标)检查录制的内容。 +然后,你可以通过单击“播放”按钮(绿色图标)检查录制的内容。 -如果你没有看到任何波形,则表示未录制到任何内容。很可能,你没有正确设置音频输入。确保你选择了正确的麦克风,并确保在**系统设置**中其未被静音。你也可以通过 Audacity 接口设置。 +如果你没有看到任何波形,则表示未录制到任何内容。很可能,你没有正确设置音频输入。确保你选择了正确的麦克风,并确保在“系统设置system settings”中其未被静音。你也可以通过 Audacity 接口设置。 -录音不会自动保存为 MP3 或其他格式。**要保存录音**,你可以转到 `File` → `Export` 并选择 `Export as MP3`(或任何其他想要的格式)。 +录音不会自动保存为 MP3 或其他格式。**要保存录音**,你可以转到 “文件File导出Export” 并选择 “导出为 MP3Export as MP3”(或任何其他想要的格式)。 ### 使用 Audacity 降低背景噪声 @@ -68,9 +73,9 @@ Audacity 还有另一个很棒的功能,你可以使用它来减少录制音 ![Background noise][6] -选择噪声部分后,从顶部文件菜单中转到 `Effects` → `Noise Reduction`。 +选择噪声部分后,从顶部文件菜单中转到 “效果Effects降低噪音Noise Reduction”。 -它会像这样打开一个弹出窗口。单击此处的 `Get Noise Profile`。 +它会像这样打开一个弹出窗口。单击此处的 “获取噪音配置文件Get Noise Profile”。 ![Noise Reduction Effect Popup Window][7] @@ -78,21 +83,20 @@ Audacity 还有另一个很棒的功能,你可以使用它来减少录制音 按 `Ctrl + A` 快捷键选择整段录音。你也可以选择其中的一部分,仅对所选部分减少噪声。 -选择音轨后,再次转到 `Effect` → `Noise Reduction`。 +选择音轨后,再次转到 “效果Effects降低噪音Noise Reduction”。 -**这次不要单击** `Get Noise Profile`。这一次,你应该能够按下 `OK` 按钮。 +**这次不要单击** “获取噪音配置文件Get Noise Profile”。这一次,你应该能够按下 “OK” 按钮。 -只需按下 `OK` 按钮,即可将降噪效果应用到录音中,并反映在波形上,如下所示: +只需按下 “OK” 按钮,即可将降噪效果应用到录音中,并反映在波形上,如下所示: ![Audio Waveform after Noise Reduction][8] -现在,相较而言,录制的音频将具有更少的噪声。你可以在选择 `Noise Reduction` 效果时微调噪声过滤。 +现在,相较而言,录制的音频将具有更少的噪声。你可以在选择 “降低噪音Noise Reduction” 效果时微调噪声过滤。 总结如下: -* 选择噪声部分,转到 `Effects` → `Noise Reduction`,然后单击 `Get Noise Profile` - -* 按 `Ctrl + A` 选择整段音频录制,转到 `Effects` → `Noise Reduction`,这次按 `OK` 按钮 +* 选择噪声部分,转到 “效果Effects降低噪音Noise Reduction”,然后单击 “获取噪音配置文件Get Noise Profile” +* 按 `Ctrl + A` 选择整段音频录制,转到 “效果Effects降低噪音Noise Reduction”,这次按 `OK` 按钮 请注意,你无法移除所有类型的噪声,但这应该会有所帮助。 @@ -113,7 +117,7 @@ via: https://itsfoss.com/audacity-recording/ 作者:[Anuj Sharma][a] 选题:[lkxed][b] 译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -128,3 +132,4 @@ via: https://itsfoss.com/audacity-recording/ [7]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-steps.png [8]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduced.png [9]: https://news.itsfoss.com/audacity-fiasco-fork/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/24/114858g6vpfg3gfglvxnp4.jpg \ No newline at end of file From eec628dc385a28b5fd29c69b68707cf4ea32aa12 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 24 Nov 2022 19:02:44 +0800 Subject: [PATCH 2092/3123] ALL @wxy https://linux.cn/article-15286-1.html --- ...️ 31 Linux Commands Every Ubuntu User Should Know.md | 790 ++++++++++++++++++ ...️ 31 Linux Commands Every Ubuntu User Should Know.md | 755 ----------------- 2 files changed, 790 insertions(+), 755 deletions(-) create mode 100644 published/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md delete mode 100644 sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md diff --git a/published/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md b/published/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md new file mode 100644 index 0000000000..3ddd8e2172 --- /dev/null +++ b/published/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md @@ -0,0 +1,790 @@ +[#]: subject: "31 Linux Commands Every Ubuntu User Should Know" +[#]: via: "https://itsfoss.com/essential-ubuntu-commands/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15286-1.html" + +每个 Linux 用户都应该知道的 31 条命令 +====== + +![][0] + +哪些是**最基本**的 Linux 的命令? + +经常有读者问我这个问题,我一直试图避免回答这个问题。 + +为什么呢?我不知道 Linux 命令吗?不是的。这不是原因。而是因为很难对它们进行分类。对我来说必不可少的东西对你来说可能并不重要。 + +但我想这适用于所有的东西,我们网站上的每一个这样的推荐应用程序列表也都是这样。 + +这就是为什么我最终放弃了,并创建了这个基本但**重要的** Linux 命令列表,它应该对作为 Linux 用户的你有所帮助。这更多的是针对 Ubuntu 这样的桌面用户,但如果你把 Ubuntu 作为服务器使用,它们也应该对你有所帮助。 + +### Linux 的基本命令 + +我在这里列出的每个命令都有多个选项和多种用途。如果我尝试给出每个命令的最常见的例子,它将很容易变成一本超过一万字的口袋书。 + +我不会详述这些命令中的任何一个。我将列出每个命令的目的及其基本语法。你可以从这些命令的链接教程中阅读更多关于使用这些命令的信息。 + +在你开始阅读列表之前推荐阅读: + +- [Linux 中路径的概念][1] +- [文件权限的概念][2] +- [了解 Linux 终端的行话][3] + +还有一件事。我在这里更多地使用了**文件夹**这个术语,而不是**目录**。 + +[在 Linux 中文件夹被称为目录][4],有些人可能不喜欢这样。然而,我相信对于初学者来说,这更容易掌握。 + +#### 1、ls 命令:列出一个文件夹的内容 + +这是一个新的 Linux 用户最先学会的几个命令之一。这个命令可以让你看到当前文件夹里有哪些文件和文件夹。 + +``` +ls +``` + +你可以使用长列表选项 `ls -l` 来查看细节,如文件大小、权限、修改时间等。如果你想,你可以对这些选项进行排序和控制。 + +``` +ls -l +``` + +![ls 命令][5] + +推荐阅读: + +> **[ls 命令示例][6]** + +#### 2、cd 命令:改变目录 + +默认情况下,你从你的主目录下开始。你经常需要改变目录并移动到另一个目录。 + +例如,你下载了一个 deb 文件或脚本。现在你想运行它。你可以通过提供完整的路径从你现在的工作目录运行它,但是切换到下载的位置会让事情更简单。 + +`cd` 命令代表“改变目录change directory”,你可以改变你的位置,移动到另一个目录。 + +![cd 命令示例][7] + +在这一点上,我强烈建议阅读关于 Linux 中路径的概念,这样在 Linux 命令行中浏览目录时,事情就容易理解了。 + +推荐阅读: + +> **[cd 命令示例][8]** + +#### 3、cat 命令:读取一个文本文件 + +如果你想在 Linux 中快速查看一个文本文件的内容,`cat` 是你需要使用的命令。它在屏幕上显示内容。 + +``` +cat filename +``` + +![cat 命令示例][9] + +你也可以使用 `cat` 命令来创建新的文件或给现有文件添加更多的文本。 + +推荐阅读: + +> **[cat 命令的例子][10]** + +#### 4、less 命令:读取一个大的文本文件 + +`cat` 命令对于查看小的文本文件已经足够了。但是,如果你有一个有数百行的巨大文本文件,我不建议使用 `cat`。它将用所有的文本淹没你的屏幕,而你将很难处理它。 + +这就是 `less` 命令有用的地方。当你用 `less` 打开一个文件时,它会分页打开文件。你可以向上/向下滚动,寻找文本等等。 + +![用 less 命令阅读大文件][11] + +一旦你读完了文件,你可以按 `Q` 键退出 `less` 视图。你会注意到,屏幕上什么都没有显示。你的屏幕是干净的。 + +推荐阅读: + +> **[less 命令示例][12]** + +#### 5、touch 命令:创建新文件 + +在 Linux 终端中,有多种创建新文件的方法。你在上面看到的 `cat` 命令也可以创建新文件。 + +然而,我更喜欢用 `touch` 命令来实现这一目的。 + +``` +touch new_file_name +``` + +![touch command ubuntu][13] + +如果你对现有的文件使用它,它们的时间戳会被修改。 + +推荐阅读: + +> **[touch 命令示例][14]** + +#### 6、mkdir 命令:创建新的文件夹 + +虽然没有创建新文件的特定命令,但有一个专门的命令用于创建新的文件夹(或目录,我们在 Linux 中称之为“目录”)。 + +``` +mkdir new_dir +``` + +![mkdir 命令示例][15] + +推荐阅读: + +> **[mkdir 命令示例][16]** + +#### 7、cp 命令:复制文件和文件夹 + +在命令行中复制文件和文件夹也是你会遇到的常见任务之一。`cp` 命令是“复制Copy”的简称,用于这一目的。 + +想象一下,你必须修改一个配置文件。一个聪明的做法是用另一个名字复制该文件。这样一来,你就有了一个文件的备份。 + +``` +cp existing_file.txt existing_file.back +``` + +你也可以使用同样的 `cp` 命令来复制目录。为此,你必须指定递归选项 `-r`。 + +``` +cp -r dir another_location +``` + +![cp 命令示例][17] + +推荐阅读: + +> **[cp 命令示例][18]** + +#### 8、mv 命令:剪贴或重命名文件和文件夹 + +`mv` 命令是 “移动Move” 的意思。当你把一个文件复制到另一个地方时,它仍然保留在原来的地方。 + +`mv` 命令将文件和文件夹移动到另一个位置。你可以把它看作是一个剪切-粘贴的操作。 + +``` +mv file.txt /another/location +``` + +你也可以使用 `mv` 命令来重命名文件。 + +``` +mv file.txt new_file.txt +``` + +同样的 `mv` 命令也可以移动或重命名文件夹,不需要任何特殊的选项。 + +![mv 命令示例][19] + +推荐阅读: + +> **[mv 命令示例][20]** + +#### 9、rm 命令:删除文件和文件夹 + +要在 Linux 终端中删除文件,你可以使用 `rm`(“删除Remove”的缩写)命令。 + +``` +rm filename +``` + +在命令行中删除文件后,没有撤销选项。这就是为什么你在删除文件时要非常小心。如果你害怕删除错误的文件,可以使用选项 `-i` 的交互式模式,它给你一个额外的提示来确认操作。 + +``` +rm -i filename +``` + +使用递归选项 `-r`,你也可以使用相同的 `rm` 命令来删除文件夹。 + +![rm 命令示例][21] + +推荐阅读: + +> **[rm 命令示例][22]** + +#### 10、nano 命令:编辑文件 + +迟早有一天,你会被要求对一个文件的内容进行修改。想象一下,你必须改变 SSH、Grub 或其他一些应用程序的配置文件。 + +有一些 [基于命令行的][23] 文本编辑器可以达到这个目的。Ubuntu 预装了 Nano 编辑器,它比 Vim、Emacs 等更容易使用。 + +**如果你好奇它们有什么不同**,请阅读我们的 [Nano vs. Vim 对比][24] 文章。 + +更容易使用并不意味着和基于 GUI 的文本编辑器一样舒适。你将不得不使用键盘快捷键来移动、修改、保存和退出文件。 + +要用 `nano` 打开一个新的、未命名的文件,请使用: + +``` +nano +``` + +要在 nano 中编辑一个现有的文件,请使用: + +``` +nano filename +``` + +在这两种情况下,你都应该看到一个类似这样的界面。 + +![nano 命令示例][25] + +要保存(或放弃修改)并退出编辑器界面,请使用 `Ctrl+x` 键。 + +请参考我之前创建的 [nano 初学者指南][26] 来适应它。 + +#### 11、clear 命令:清除终端屏幕 + +Nano 感觉很复杂,对吗?让我来分享一个简单的命令。 + +`clear` 命令可以清除终端。就是这样。 + +``` +clear +``` + +你为什么需要这样做呢?嗯,如果你的终端屏幕充斥着随机的东西,而你想做一些新的事情。清理终端就像清理黑板或在你的笔记本上打开一个新页。 + +#### 12、ps 命令:检查和管理进程 + +`ps` 命令是用来管理你系统上运行的进程的。每个进程都有一个相关的 ID,称为 PID,它可以用于各种目的,例如 [终止一个进程][27]。 + +``` +~$ ps + pid tty time cmd + 15358 ? 00:00:00 bash + 15404 ? 00:00:00 ps +``` + +这里, + +- `PID`:进程 ID +- `TTY`:与进程相关的控制终端(现在已经不那么重要了) +- `TIME`:总的 CPU 使用时间 +- `CMD`:运行该进程的命令名称 + +但一个系统不可能只运行两到三个进程,不是吗?要查看所有用户运行的所有进程,请使用: + +``` +ps aux +``` + +这将给出一个庞大的进程列表和关于它们的更多细节。如果你运行这个命令,现在将是使用 `clear` 命令的绝佳时机。 + +![进程列表][29] + +推荐阅读: + +> **[ps 命令示例][30]** + +#### 13、top 命令:系统监控 + +`ps` 命令给你提供了所有正在运行的进程,而 `top` 命令给你提供了进程和系统资源消耗的实时视图。 + +``` +top +``` + +把它看作是 Linux 中任务管理器的终端版本。通过 `top` 命令,你会看到很多有趣的细节。 + +我主要使用 `top` 命令来检查哪个进程占用了太多的 CPU 或内存。如果你有兴趣做实验,还有 [更好的 top 替代品][31]。 + +![top 命令][32] + +要 [停止运行的 top 命令][33],请使用 `Ctrl+C` 键盘快捷键。 + +推荐阅读: + +> **[有效使用 top 命令作为任务管理器][34]** + +#### 14、lsblk 命令: 列出磁盘和分区 + +`lsblk` 命令列出了你系统中所有的块设备。用非常简单(技术上不完全准确)的术语来说,它显示的是磁盘和分区。 + +``` +~# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +loop0 7:0 0 79.9M 1 loop /snap/lxd/22923 +loop1 7:1 0 103M 1 loop /snap/lxd/23541 +loop2 7:2 0 63.2M 1 loop /snap/core20/1623 +loop3 7:3 0 48M 1 loop /snap/snapd/17336 +loop4 7:4 0 48M 1 loop /snap/snapd/17029 +loop6 7:6 0 63.2M 1 loop /snap/core20/1634 +vda 252:0 0 25G 0 disk +├─vda1 252:1 0 24.9G 0 part / +├─vda14 252:14 0 4M 0 part +└─vda15 252:15 0 106M 0 part /boot/efi +vdb 252:16 0 466K 1 disk +~# +``` + +#### 15、fdisk 命令:列出并管理磁盘和分区 + +另一个类似但更好的命令是 `fdisk` 命令。它可以让你操作磁盘的分区。这意味着你可以用这个命令创建新的分区,删除和调整现有分区的大小。 + +你还可以用它来列出系统中所有的块设备,包括 [回环设备][35]。 + +``` +sudo fdisk -l +``` + +如果你有许多分区、磁盘和回环设备(由 Snap 应用程序创建),输出结果可能是巨大的。我在这里展示的是输出的相关部分: + +``` +Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors +Units: sectors of 1 * 512 = 512 bytes +Sector size (logical/physical): 512 bytes / 512 bytes +I/O size (minimum/optimal): 512 bytes / 512 bytes +Disklabel type: gpt +Disk identifier: 0B7C796D-51CD-4DD4-962A-7D94B31690E2 + +Device Start End Sectors Size Type +/dev/vda1 227328 52428766 52201439 24.9G Linux filesystem +/dev/vda14 2048 10239 8192 4M BIOS boot +/dev/vda15 10240 227327 217088 106M EFI System +``` + +#### 16、find 命令:搜索文件 + +即使作为一个桌面用户,你也会遇到在 Linux 命令行中搜索文件的情况。 + +`find` 命令是一个用于此目的的广泛而通用的命令。它有 50 多个选项,而你可能永远不会需要所有的选项。 + +下面是一个 `find` 命令的例子,它将给你提供当前目录中所有以 `.txt` 扩展名结尾的文件。 + +``` +find . -type f -name "*.txt" +``` + +其他常见的例子包括按大小、修改时间等查找文件。你可以 [将 find 与 exec][36] 或 [xargs][37] 结合起来,对 `find` 命令的结果采取行动。例如,你可以寻找所有的 `.txt` 文件并选择删除它们。 + +推荐阅读: + +> **[find 命令示例][38]** + +#### 17、grep 命令:在文件内容中搜索 + +`find` 命令根据文件的名称和类型来搜索文件。如果你想根据文件的内容进行搜索,你可以使用 `grep`命令。 + +因此,与其寻找所有以 `.txt` 结尾的文件,不如用 `grep` 寻找所有包含文本 `foss` 的文件。 + +``` +grep -ri search_term +``` + +![grep 命令示例][39] + +想学习更多吗?这里有一些更多的 [grep 命令示例][40]。方便的 [grep 速查表][41] 应该可以帮助你。 + +#### 18、kill 命令:终止进程 + +暴力不是答案......它是解决方案。 + +开个玩笑! + +如果你有一个行为不端的进程,占用了太多的系统资源,你可以 [找到它,然后终止][27] 它,[使用 kill 命令][42] 就行。 + +``` +sudo kill -9 process_ID_or_Name +``` + +正如你在上面的命令中看到的,你需要知道进程 ID(PID)或进程名称来终止它。你可以使用 `ps` 或 `top` 命令来获得 PID或确切的进程名称。 + +``` +ps aux | grep -i “name of your desired program” +``` + +你注意到 `grep` 命令的使用了吗?你已经在利用这个列表中提到的命令了。 + +![find kill process][43] + +我不知道你怎么想的,但是当我寻找流氓进程来终止时,我觉得自己就像 [《飓风营救》中的连姆·尼森][44]。 + +![Taken meme find you kill you][45] + +#### 19、history 命令:回头看看你过去运行了哪些命令 + +比如,你在几天前使用了一个特定的 Linux 命令。现在你需要再次运行它,但你不能正确地想起它。 + +你可以按上下方向键。 + +这对许多 Linux 用户来说是一个熟悉的场景:这就是 `history` 命令的作用。 + +在 Ubuntu 中,你的 Shell 会保存你所运行的命令的历史。在终端输入 `history`,你会看到你过去运行的命令的历史。 + +![history 命令][46] + +你可以选择从历史记录中运行一个条目,使用其编号,像这样。 + +``` +!number +``` + +但即使是历史记录也可能是巨大的,所以(再次)使用 `grep` 命令来过滤你的搜索词。 + +``` +~$ history | grep aux + 1915 ps aux + 1952 ps aux | grep -i spotify + 1955 ps -aux | grep -i calculator + 1957 ps -aux | grep -i calculator + 1959 ps -aux | grep -i calculator + 1970 history | grep aux +``` + +还有一种方法可以进入命令历史并进行搜索。按 `Ctrl+R`,然后输入搜索词。 + +推荐阅读: + +> **[history 命令示例][47]** + +#### 20、chmod 命令:改变文件权限 + +我强烈建议在这个阶段阅读有关 [Linux 文件权限][2]。这将有助于你更好地理解,而不是盲目地运行 [chmod 命令][48]。 + +`chmod`(“改变模式change mode”)命令是用来改变文件的权限的。 + +这个命令最常见的用途是当你想让一个文件可执行时。有一个Shell脚本?像这样让它可执行: + +``` +chmod u+x file-executable +``` + +还有更多的使用情况,使 `chmod `成为 Ubuntu 用户必须知道的命令。 + +**有趣的事实**:`chmod 777` 命令为所有用户提供了所有的权限。这代表了我们的座右铭是 “让每个人都能获得知识”。 + +#### 21、lshw 命令:获取硬件细节 + +在 Linux 中,有大量的命令行 [工具可以用来获取硬件细节][49] 和其他系统信息。 + +可能预装在 Ubuntu 上的是 `lshw`(“列出硬件list hardware”的缩写)。 + +现在,默认情况下,它显示了大量关于所有硬件组件的详细信息,相信我,这不是很容易理解。 + +``` +lshw +``` + +你可能会感到在这里使用 `grep` 的诱惑,但没有必要这样做。`lshw` 的输出被分成几类,你可以用它来显示一类硬件的细节。 + +[想知道你的网络适配器的制造商][50]?使用这个: + +``` +lshw -C network +``` + +![lshw 命令示例][51] + +#### 22、sudo 命令:以 root 权限运行命令 + +你一定注意到,我在之前讨论的一些命令中使用了 `sudo` 作为前缀。 + +默认情况下,在 Ubuntu 中,`sudo` 的配置方式是,它允许你(默认的管理用户)以 root 权限运行任何命令。 + +你被要求输入一个密码,而且是你的用户账户密码。当你输入密码时,屏幕上没有任何显示。新用户对此感到困惑,但这是 UNIX/Linux 的预期行为。你输入密码并按回车键。 + +![使用 sudo 的例子][52] + +推荐阅读: + +> **[Ubuntu 中的 root 用户][53]** + +#### 23、apt 命令: 安装、删除和管理 .deb 包 + +在 Ubuntu 中,`apt` 命令被用来管理软件包。你必须和 `sudo` 一起使用它,因为这些是管理任务。 + +要安装一个软件包,请使用: + +``` +sudo apt install package_name +``` + +要删除一个安装软件,请使用: + +``` +sudo apt remove package_name +``` + +要一次性用所有可升级的软件包更新你的 Ubuntu 系统: + +``` +sudo apt update && sudo apt upgrade +``` + +[apt update 和 upgrade 的区别][54] 是:`update` 会刷新软件包的缓存,而 `upgrade` 则是实际安装更新。 + +`apt` 命令还有很多内容。你可以阅读 [这个详细的 apt 命令指南][55]。 + +#### 24、add-apt-repository 命令:添加和删除 PPA + +好吧,这个命令已经不像十年前那么流行了。你仍然会在这里和那里遇到 [add-apt-repository 命令][56]。它是用来管理你系统中的 PPA(非官方的、用户生成的软件库)。 + +在跟随网络上的教程时,你可能会遇到由三行组成的安装说明: + +``` +sudo add-apt-repository ppa:dr-akulavich/lighttable +sudo apt update +sudo apt install lighttable-installer +``` + +第一个命令是添加 PPA(外部资源库)。你已经熟悉了下面两条,它们用于更新软件包缓存和安装你刚刚添加的 PPA 仓库提供的软件。 + +要删除一个 PPA,你应该首先删除你从它那里安装的软件,然后像这样删除它: + +``` +sudo add-apt-repository -r ppa:dr-akulavich/lighttable +``` + +我有一篇 [关于 PPA 的完整指南][57],可以了解关于这个主题的更多细节。 + +#### 25、snap 命令:安装、删除和管理 Snap 包 + +到目前为止,你知道 apt 软件包和它们的管理。然而,Ubuntu 也使用并积极推荐使用其 Snap 打包格式。 + +学习一些基本的 `snap` 命令将帮助你有效地管理这些软件包。 + +要找到一个软件包,请使用: + +``` +snap find search_term +``` + +要安装一个软件包,请使用: + +``` +sudo snap install package_name +``` + +要列出已安装的 Snap 应用程序: + +``` +snap list +``` + +要删除一个已安装的 Snap 应用程序,请使用: + +``` +sudo snap remove package_name +``` + +#### 26、ip 命令:检查 IP 地址和其他信息 + +`ip` 命令可以让你 [检查你的 IP 地址][58]。你还可以查看和操作路由、网络设备等。 + +``` +ip a +``` + +![ip 地址检查][59] + +#### 27、ping 命令:检查远程系统是否可达 + +`ping` 是另一个你应该知道的 [Linux 网络命令][60]。要检查一个远程系统是否可用,把它的 IP 地址给 `ping` 命令: + +``` +ping ip_address +``` + +你也可以用它来检查一个网站是否关闭,尽管现在它不是很准确。 + +![ping command ubuntu][61] + +使用 `Ctrl+C` 来停止运行的 `ping` 命令。 + +推荐阅读: + +> **[ping 命令示例][62]** + +#### 28、ssh 命令:连接到远程系统 + +我对把 `ssh` 添加到必须知道的 Linux 命令列表中持怀疑态度。许多桌面用户可能不需要它。SSH 被用于从你的终端连接到其他 Linux系统。 + +``` +ssh user@address_of_remote_system +``` + +当然,你需要知道远程系统的用户和密码。 + +如果你有云服务器或家庭设置,其中有其他 Linux 系统,你可以用它从你的主系统连接到它们。 + +#### 29、scp 命令:在远程系统之间复制文件 + +既然我在列表中包括了 `ssh`,那么包括一些 [通过 SSH 连接在远程系统之间传输文件的命令][63] 才是公平的。 + +`scp` 命令的工作原理与你之前看到的 `cp` 命令差不多。 + +下面是一个例子,它把文件从远程系统上的用户的主目录复制到你本地登录系统的当前目录。 + +``` +scp user@remote_address:/home/username/filename . +``` + +推荐阅读: + +> **[scp 命令示例][64]** + +#### 30、exit 命令:关闭终端 + +Linux 的基本命令列表就要结束了。那么让我们来谈谈退出终端的问题。这很简单。只要输入 + +``` +exit +``` + +如果你正在使用另一个用户或 Shell,你就会从那里注销。 + +你也可以使用 `Ctrl+D` 键来退出终端。 + +#### 31、shutdown 命令:关闭或重启系统 + +好了。如果你还没有退出终端,让我分享一个最后的命令。 + +从命令行中 [关闭你的系统][65] 怎么样? + +[使用 shutdown 命令][66] 来达到这个目的: + +``` +shutdown +``` + +上述命令 [安排在一分钟内关机][67]。你可以用以下方法让它立即关闭: + +``` +shutdown -now +``` + +你也可以使用同样的关机命令来 [重启你的 Ubuntu 系统][68]。 + +``` +shutdown -r now +``` + +#### 更多:man 命令:详细了解命令 + +还有一个,这也是最后一个,我保证。所有的 Linux 系统都有一个命令的手册。它被称为手册页,你可以通过以下方式访问已安装命令的手册页: + +``` +man command_name +``` + +[了解手册页][69] 对于新用户来说,可能会让人不知所措,但它却很方便。它为你提供了一个命令的通用语法和所有选项的描述。 + +当你对使用一个命令没有把握时,可以先查看它的手册页,然后再在网上搜索它。 + +### 总是有更多…… + +**这只是大约 30 个命令。而且这还不到 Linux 命令的20%**。我还没有涉及很多网络命令。我甚至没有涉及用户管理命令。 + +我在写这篇文章时,考虑到了普通的 Ubuntu 桌面用户。这些是你更可能使用的命令。从长远来看,掌握一些这方面的知识会很有帮助。 + +除此以外,学习是没有止境的。即使是最老练的 Linux 用户也会不断发现和学习新东西。 + +考虑到你对学习 Linux 命令感兴趣,让我推荐一些 [好的 Linux书籍][70] 和资源。 + +- [Linux 如何工作][71]:解释了 Linux 如何工作,而不是命令。 +- William Shotts 的《[Linux 命令行][72]》:可以合法地免费下载 PDF 格式的文件。 +- Daniel J Barrett 的《[Linux口袋指南][73]》:将 Linux 命令分为不同的类别,并通过小例子进行简单的解释。 +- [快速学习 Linux][74]:完全专注于 Linux 命令,有适当的例子和练习。 + +除此之外,你还可以从 [Linux Journey][75] 和 [Linux Handbook][76] 等网站学习。 + +**我知道你已经读了很久了**,但这还不到冰山一角。总有更多的东西需要学习,但也不是说如果你不知道所有的 Linux 命令,你就必须感到痛苦。 + +**没有人知道所有的东西。** + +现在,轮到你了。你觉得这份 Linux 命令列表有帮助吗? + +**如果你要在其中增加一些命令,会是什么?评论区是你的**。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/essential-ubuntu-commands/ + +作者:[Abhishek Prakash][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://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://linuxhandbook.com/absolute-vs-relative-path/ +[2]: https://linuxhandbook.com/linux-file-permissions/ +[3]: https://itsfoss.com/basic-terminal-tips-ubuntu/ +[4]: https://itsfoss.com/folder-directory-linux/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/ls-command-ubuntu.png +[6]: https://linuxhandbook.com/ls-command/ +[7]: https://itsfoss.com/wp-content/uploads/2022/11/cd-command-examples.png +[8]: https://linuxhandbook.com/cd-command-examples/ +[9]: https://itsfoss.com/wp-content/uploads/2022/11/cat-command-example.png +[10]: https://linuxhandbook.com/cat-command/ +[11]: https://itsfoss.com/wp-content/uploads/2022/11/reading-large-files-with-less-command.png +[12]: https://linuxhandbook.com/less-command/ +[13]: https://itsfoss.com/wp-content/uploads/2022/11/touch-command-ubuntu.png +[14]: https://linuxhandbook.com/touch-command/ +[15]: https://itsfoss.com/wp-content/uploads/2022/11/mkdir-command-example.png +[16]: https://linuxhandbook.com/mkdir-command/ +[17]: https://itsfoss.com/wp-content/uploads/2022/11/cp-command-example.png +[18]: https://linuxhandbook.com/cp-command/ +[19]: https://itsfoss.com/wp-content/uploads/2022/11/mv-command-example.png +[20]: https://linuxhandbook.com/mv-command/ +[21]: https://itsfoss.com/wp-content/uploads/2022/11/rm-command-examples.png +[22]: https://linuxhandbook.com/remove-files-directories/ +[23]: https://itsfoss.com/command-line-text-editors-linux/ +[24]: https://itsfoss.com/vim-vs-nano/ +[25]: https://itsfoss.com/wp-content/uploads/2022/11/nano-command-example.png +[26]: https://itsfoss.com/nano-editor-guide/ +[27]: https://itsfoss.com/how-to-find-the-process-id-of-a-program-and-kill-it-quick-tip/ +[28]: https://itsfoss.com/cdn-cgi/l/email-protection +[29]: https://itsfoss.com/wp-content/uploads/2022/11/list-processes-ubuntu.webp +[30]: https://linuxhandbook.com/ps-command/ +[31]: https://itsfoss.com/linux-system-monitoring-tools/ +[32]: https://itsfoss.com/wp-content/uploads/2022/11/top-command-ubuntu.png +[33]: https://itsfoss.com/stop-program-linux-terminal/ +[34]: https://linuxhandbook.com/top-command/ +[35]: https://itsfoss.com/loop-device-linux/ +[36]: https://linuxhandbook.com/find-exec-command/ +[37]: https://linuxhandbook.com/xargs-command/ +[38]: https://linuxhandbook.com/find-command-examples/ +[39]: https://itsfoss.com/wp-content/uploads/2022/11/grep-command-examples.png +[40]: https://linuxhandbook.com/grep-command-examples/ +[41]: https://linuxhandbook.com/grep-command-cheatsheet/ +[42]: https://linuxhandbook.com/kill-process/ +[43]: https://itsfoss.com/wp-content/uploads/2022/11/find-kill-process-ubuntu-800x264.png +[44]: https://www.imdb.com/title/tt0936501/?ref_=tt_urv +[45]: https://itsfoss.com/wp-content/uploads/2022/11/taken-meme-find-you-kill-you.jpg +[46]: https://itsfoss.com/wp-content/uploads/2022/11/history-command-ubuntu-800x534.png +[47]: https://linuxhandbook.com/history-command/ +[48]: https://linuxhandbook.com/chmod-command/ +[49]: https://itsfoss.com/hardinfo/ +[50]: https://itsfoss.com/find-network-adapter-ubuntu-linux/ +[51]: https://itsfoss.com/wp-content/uploads/2022/11/lshw-command-examples.png +[52]: https://itsfoss.com/wp-content/uploads/2022/11/using-sudo-example-ubuntu.png +[53]: https://itsfoss.com/root-user-ubuntu/ +[54]: https://itsfoss.com/apt-update-vs-upgrade/ +[55]: https://itsfoss.com/apt-command-guide/ +[56]: https://itsfoss.com/add-apt-repository-command-not-found/ +[57]: https://itsfoss.com/ppa-guide/ +[58]: https://itsfoss.com/check-ip-address-ubuntu/ +[59]: https://itsfoss.com/wp-content/uploads/2022/11/ip-address-check-ubuntu.png +[60]: https://itsfoss.com/basic-linux-networking-commands/ +[61]: https://itsfoss.com/wp-content/uploads/2022/11/ping-command-ubuntu.png +[62]: https://linuxhandbook.com/ping-command/ +[63]: https://linuxhandbook.com/transfer-files-ssh/ +[64]: https://linuxhandbook.com/scp-command/ +[65]: https://learnubuntu.com/shutdown-ubuntu/ +[66]: https://linuxhandbook.com/linux-shutdown-command/ +[67]: https://itsfoss.com/schedule-shutdown-ubuntu/ +[68]: https://learnubuntu.com/restart-ubuntu/ +[69]: https://itsfoss.com/linux-man-page-guide/ +[70]: https://itsfoss.com/best-linux-books/ +[71]: https://nostarch.com/howlinuxworks3 +[72]: https://linuxcommand.org/tlcl.php +[73]: https://www.oreilly.com/library/view/linux-pocket-guide/9780596806347/ +[74]: https://linuxhandbook.gumroad.com/l/mEsrwA +[75]: https://linuxjourney.com/ +[76]: https://linuxhandbook.com/a-to-z-linux-commands/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/24/184845y5i7757o708odem7.png \ No newline at end of file diff --git a/sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md b/sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md deleted file mode 100644 index b3d18742d5..0000000000 --- a/sources/tech/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md +++ /dev/null @@ -1,755 +0,0 @@ -[#]: subject: "31 Linux Commands Every Ubuntu User Should Know" -[#]: via: "https://itsfoss.com/essential-ubuntu-commands/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -31 Linux Commands Every Ubuntu User Should Know -====== - -What are the **essential Ubuntu commands**? - -I have been asked this question several times by regular readers, and I have tried to avoid answering it. - -Why? Don’t I know Ubuntu commands? Nope. That’s not the reason. It is because it is difficult to categorize them. What’s essential to me may not be essential to you. - -But I guess that applies to everything and every such list of recommended applications on our portal. - -That’s why I finally gave in and created this list of basic yet **essential Linux commands** that should be helpful to you as a Ubuntu user. This is more focused on desktop Ubuntu users, but if you use Ubuntu as a server, they should also help you. - -### Essential Ubuntu Commands - -Every command I list here has multiple options and several uses. If I try giving even the most common examples of each command, it will easily turn into a pocketbook of more than 10,000 words. - -I will not go into detail with any of these commands. I’ll list the purpose of each command with its basic syntax. You can read more about using these commands from their linked tutorials. - -**Recommended reading before you start following the list:** - -- Concept of [path in Linux][1] -- [Concept of file permission][2] -- Knowing the [terminal jargon][3] - -Another thing. I have used the term **folder** here more than the **directory**. - -A [folder is called a directory in Linux][4], and puritans may not like this. However, I believe it is easier to grasp for beginners. - -#### 1. ls command: List the content of a folder - -This is among the first few commands a new Linux user learns. This command lets you see what files and folders are in your current folder. - -``` -ls -``` - -You can use the long listing option ls -l to see details like file size, permission, modified time, etc. You can sort and control these options if you want to. - -``` -ls -l -``` - -![ls command ubuntu][5] - -**Related Read**: [ls command examples][6] - -#### 2. cd command: Change the directory - -By default, you start in your home directory. You’ll often require to change the directory and move to another one. - -For example, you downloaded a deb file or script. Now you want to run it. You can do that from your present working directory by providing the full path but switching to that location makes things easier. - -The cd command stands for **change directory;**with this, you can change your location and move to another directory. - -![cd command examples][7] - -At this point, I highly recommend reading about the concept of paths in Linux so that things are easy to understand while navigating through directories in the Linux command line. - -**Recommended Read**: [cd command examples][8] - -#### 3. cat command: Read a text file - -If you quickly want to see the contents of a text file in Linux, **cat** is the command you use. It displays the contents on the screen. - -``` -cat filename -``` - -![cat command example][9] - -You can also use the cat command to create new files or add more text to existing files. - -**Recommended Read**: [cat command examples][10] - -#### 4. less command: Read a large text file - -The cat command is good enough for viewing small text files. But I won’t recommend using cat if you have a huge text file with hundreds of lines. It will flood your screen with all the text, and you will have difficulty with it. - -This is where the less command comes into the picture. When you open a file with less, it opens the file in pages. You can scroll up/down, look for text, and more. - -![reading large files with less command][11] - -Once you are done reading the file, you can **exit the less view by pressing the Q key**. You’ll notice that nothing is displayed on the screen. Your screen is clean. - -**Suggested Read**: [less command examples][12] - -#### 5. touch command: Create new files - -There are multiple ways of creating new files in the Linux terminal. The cat command you saw above can also create new files. - -However, I prefer the touch command for this purpose. - -``` -touch new_file_name -``` - -![touch command ubuntu][13] - -If you use it with existing files, their timestamps will be modified. - -**Also Read**: [touch command examples][14] - -#### 6. mkdir command: Make new folders - -While there is no specific command for creating new files, there is a dedicated command for making new folders (or directories, as we call them in Linux). - -``` -mkdir new_dir -``` - -![mkdir command example][15] - -**Explore More Here**: [mkdir command examples][16] - -#### 7. cp command: Copy files and folders - -Copying files and folders in the command line is also one of the common tasks you will encounter. The cp command, short for copy, is used for this purpose. - -Imagine that you have to modify a configuration file. A smart move will be to copy the file with another name. This way, you’ll have a backup of the file. - -``` -cp existing_file.txt existing_file.back -``` - -You can use the same cp command for copying directories as well. For that, you must specify the recursive option `**-r**`: - -``` -cp -r dir another_location -``` - -![cp command example][17] - -**You May Also Read**: [cp command examples][18] - -#### 8. mv command: Cut-paste or rename files and folders - -The mv command stands for ‘move’. When you copy a file to another location, it remains in its original place. - -The mv command moves the files and folders to the other location. You can think of it as a cut-paste operation. - -``` -mv file.txt /another/location -``` - -You can use the mv command to rename the file as well. - -``` -mv file.txt new_file.txt -``` - -The same mv command also moves or renames folders without any special options. - -![mv command example][19] - -**Recommended Read**: [mv command examples][20] - -#### 9. rm command: Remove files and folders - -To delete files in the Linux terminal, you use the **rm** (short for remove) command. - -``` -rm filename -``` - -There is no undo option after you delete files in the command line. This is why you should be extremely careful while deleting files. If you are afraid of deleting the wrong file, use the interactive mode with option -i, which gives you an additional prompt to confirm the action. - -``` -rm -i filename -``` - -With the recursive option -r, you can also use the same rm command to delete folders. - -![rm command examples][21] - -**Recommended Read**: [rm command examples][22] - -#### 10. nano: Edit files - -Sooner or later, you’ll be required to make changes to the contents of a file. Imagine that you have to change a configuration file of SSH, grub, or some other application. - -There are [command line-based t][23]ext editors for this purpose. Ubuntu comes with Nano editor preinstalled, and it is relatively easier to use than Vim, Emacs, etc. - -**If you are curious****about differences**, read our [Nano vs. Vim comparison][24] article. - -Easier to use doesn’t mean the same comfort as a GUI-based text editor. You will have to use the keyboard shortcuts for moving around, making changes, saving, and exiting files. - -To open a new, unnamed file with nano, use: - -``` -nano -``` - -To edit an existing file in Nano, use: - -``` -nano filename -``` - -In both cases, you should see an interface like this. - -![nano command example][25] - -To save (or discord changes) and exit the editor interface, use the Ctrl+x keys. - -Please refer to the [Nano beginner guide][26] I created earlier to get comfortable with it. - -#### 11. clear: Clear terminal screen - -Nano feels like a complicated one, right? Let me share a simple command. - -The clear command clears the terminal. That’s it. - -``` -clear -``` - -And why do you need to do that? Well, if your terminal screen is flooded with random stuff and you want to do something new. Cleaning the terminal is like cleaning the board or opening a new page in your notebook. - -#### 12. ps: Check and handle processes - -The ps command is for handling the processes running on your system. Each process has an associated ID called PID, which can be used for various purposes, such as [terminating a process][27]. - -``` -[[email protected]][28]:~$ ps - PID TTY TIME CMD - 15358 ? 00:00:00 bash - 15404 ? 00:00:00 ps -``` - -Here, - -- **PID: Process ID** -- **TTY: Controlling terminal associated with the process (Not that important these days)** -- **TIME: Total CPU usage time** -- **CMD: Name of command that runs the process** - -But a system cannot run just 2-3 processes, can it? To see all the processes running by all users, use: - -``` -ps aux -``` - -This will give a massive list of processes and more details about them. If you run this command, now will be an excellent time to use the **clear** command. - -![list processes ubuntu][29] - -**Recommended Read**: [ps command examples][30] - -#### 13. top: System monitor - -While the ps command gives you all the running processes, the top command gives you a real-time view of the processes and the system resource consumption. - -``` -top -``` - -Consider it like the terminal variant of the task manager in Linux. You’ll see a lot of interesting details with the top command. - -I primarily use the top command to check which process takes too much CPU or RAM. There are [better top alte][31][r][31][natives][31] if you are interested to experiment. - -![top command ubuntu][32] - -To [stop the running top command][33], use the **Ctrl+C** keyboard shortcut. - -**Recommended Read**: [Using top command effectively as a task manager][34] - -#### 14. lsblk: List disks and partitions - -The **lsblk** command lists all the block devices on your system. In really simple (and not entirely technically accurate) terms, it displays the disks and partitions. - -``` -[email protected]:~# lsblk -NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS -loop0 7:0 0 79.9M 1 loop /snap/lxd/22923 -loop1 7:1 0 103M 1 loop /snap/lxd/23541 -loop2 7:2 0 63.2M 1 loop /snap/core20/1623 -loop3 7:3 0 48M 1 loop /snap/snapd/17336 -loop4 7:4 0 48M 1 loop /snap/snapd/17029 -loop6 7:6 0 63.2M 1 loop /snap/core20/1634 -vda 252:0 0 25G 0 disk -├─vda1 252:1 0 24.9G 0 part / -├─vda14 252:14 0 4M 0 part -└─vda15 252:15 0 106M 0 part /boot/efi -vdb 252:16 0 466K 1 disk -[email protected]:~# -``` - -#### 15. fdisk: List and Manage disks and partition - -Another similar but better command is the **fdisk** command. It lets you manipulate the disk partitions. This means you can create new partitions and delete and resize existing ones with this command. - -You can also use it to list all the block devices, including [loop devices][35], on your system. - -``` -sudo fdisk -l -``` - -The output could be huge if you have many partitions, disks, and loop devices (created by snap applications). I am showing a relevant part of the output here: - -``` -Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors -Units: sectors of 1 * 512 = 512 bytes -Sector size (logical/physical): 512 bytes / 512 bytes -I/O size (minimum/optimal): 512 bytes / 512 bytes -Disklabel type: gpt -Disk identifier: 0B7C796D-51CD-4DD4-962A-7D94B31690E2 - -Device Start End Sectors Size Type -/dev/vda1 227328 52428766 52201439 24.9G Linux filesystem -/dev/vda14 2048 10239 8192 4M BIOS boot -/dev/vda15 10240 227327 217088 106M EFI System -``` - -#### 16. find: Search for files - -Even as a desktop user, you’ll encounter cases where you may have to search for files in the Linux command line. - -The find command is an extensive and versatile command for this purpose. It has more than fifty options, and you will probably never need all of them. - -Here’s an example of the find command that will give you all the files that end with .**txt** extension in the current directory. - -``` -find . -type f -name "*.txt" -``` - -Other common examples include finding files by size, modified time, etc. You can [combine find with exec][36] or [xargs][37] to take actions on the result of the find command. For example, you can look for all the .txt files and choose to delete them. - -**Also Read:**[find command examples][38] - -#### 17. grep: Search in file content - -The find command search for files based on their name and type. If you want to search based on the content of the files, you use the grep command. - -So, instead of looking for all files ending with .txt, you look for all files containing the text ‘foss’ with grep. - -``` -grep -ri search_term -``` - -![grep command examples][39] - -Want more? Here are some more [practical examples of the grep command][40]. The handy [grep cheat sheet][41] should help you out. - -#### 18. kill: Terminate processes - -Violence is not the answer … it’s the solution. - -Just kidding! - -If you have a misbehaving process that takes too many system resources, you can [find it and then terminate][27] it [using the kill command][42]. - -``` -sudo kill -9 process_ID_or_Name -``` - -As you can see in the above command, you need to know the process ID (PID) or the name to terminate it. You can use the ps or the top command to get the PID or exact process name. - -``` -ps aux | grep -i “name of your desired program” -``` - -Did you notice the use of grep command? You are already utilizing the commands mentioned in this list. - -![find kill process ubuntu][43] - -I don’t know about you, but I feel like [Liam Nesson in Taken][44] when I look for rogue processes to terminate. - -![taken meme find you kill you][45] - -#### 19. history: Look back into what commands you ran in the past - -So, you used a specific Linux command a few days ago. Now you need to run it again, but you cannot recall it correctly. - -You can press the up and down arrow keys. - -That’s a familiar scenario for many Linux users; this is where the history command helps. - -In Ubuntu, your shell keeps a history of the commands you run. Enter history in the terminal, and you should see a history of commands you ran in the past. - -![history command ubuntu][46] - -You can choose to run an entry from the history using its number like this: - -``` -!number -``` - -But even the history could be huge, so (again) use the grep command to filter your search term. - -``` -[email protected]:~$ history | grep aux - 1915 ps aux - 1952 ps aux | grep -i spotify - 1955 ps -aux | grep -i calculator - 1957 ps -aux | grep -i calculator - 1959 ps -aux | grep -i calculator - 1970 history | grep aux -``` - -There is another way to access the command history and search it. Press **Ctrl+R** and then enter the search term. - -**Recommended Read**: [history command examples][47] - -#### 20. chmod: Change File Permissions - -I highly recommend reading about [Linux file permissions][2] at this stage. That will help you understand things better than just running the [chmod command][48] blindly. - -The chmod (change mode) command is used for changing the permissions on a file. - -The most common use of this command is when you want to make a file executable. Got a shell script? Make it executable like this: - -``` -chmod u+x file executable -``` - -There are many more use cases that make chmod a must-know command for Ubuntu users. - -**Fun fact**: The parent company of **It’s FOSS** is **chmod777 Media Tech**. chmod 777 command gives all the permissions to all the users. This represents our motto of ‘knowledge access to everyone‘. - -#### 21. lshw: Get the Hardware Details - -There are tons of command line [tools to get the hardware details][49] and other system information in Linux. - -The one that probably comes preinstalled on Ubuntu is**lshw** (short for list hardware). - -Now, by default, it displays a vast output with details about all the hardware component,s and trust me, that’s not very easy to understand. - -``` -lshw -``` - -You may feel the temptation of using grep here, but there is no need for that. The output of lshw is divided into classes and you can use that to show the details for a class of hardware. - -Want to [know the manufacturer of your network adapters][50]? Use this: - -``` -lshw -C network -``` - -![lshw command examples][51] - -#### 22. sudo: Run Commands With root Privileges - -You must have noticed that I used sudo as a prefix for some commands I discussed previously. - -By default, in Ubuntu, **sudo** is configured in a way that it allows you (to the default admin user) to run any command with root privileges. - -You are asked to enter a password, and it’s your user account password. When you enter the password, nothing is displayed on the screen. New users get baffled by it, but it’s the expected behavior in UNIX/Linux. You type the password and press enter. - -![using sudo example ubuntu][52] - -More about [root user in Ubuntu here][53]. - -#### 23. apt: Install, Remove and Manage .deb packages - -The**apt** command is used for managing packages in Ubuntu. You’ll have to use it with sudo as these are administrative tasks. - -To install a package, use: - -``` -sudo apt install package_name -``` - -To delete an install software, use: - -``` -sudo apt remove package_name -``` - -To update your Ubuntu system with all upgradable packages at once: - -``` -sudo apt update && sudo apt upgrade -``` - -The [difference between apt update and upgrade][54] is that an update refreshes the package cache and the upgrade actually installs the update. - -There is a lot more to the apt command. You can read [this detailed apt command guide][55]. - -#### 24. add-apt-repository: Add, and Remove PPAs - -Alright! This one is not as popular as it was a decade ago. You’ll still come across the [add-apt-repository command][56] here and there. It’s used for managing PPA (unofficial, user-generated repositories) in your system. - -While following tutorials on the web, you may come across installation instructions that are composed of three lines: - -``` -sudo add-apt-repository ppa:dr-akulavich/lighttable -sudo apt update -sudo apt install lighttable-installer -``` - -The first command is adding the PPA (external repository). You are already familiar with the following two, which are used to update the package cache and install software provided by the PPA repository you just added. - -To delete a PPA, you should first delete the software you installed from it and then remove it like this: - -``` -sudo add-apt-repository -r ppa:dr-akulavich/lighttable -``` - -I have a [complete guide on PPA][57] for more details on this topic. - -#### 25. snap: Install, Remove and Manage snap packages - -So far, you know apt packages and their management. However, Ubuntu also uses and actively recommends using its snap packaging format. - -Learning a few basic snap commands will help you manage these packages effectively. - -To find a package, use: - -``` -snap find search_term -``` - -To install a package, use: - -``` -sudo snap install package_name -``` - -To list installed snap applications: - -``` -snap list -``` - -To remove an installed Snap application, use: - -``` -sudo snap remove package_name -``` - -#### 26. ip: Check IP address and other info - -The **ip** command lets you [check your IP address][58]. You can also see and manipulate the routes, network devices, and more. - -``` -ip a -``` - -![ip address check ubuntu][59] - -#### 27. ping: Check if the remote system is reachable - -Ping is another [Linux networking command][60] you should be aware of. To check whether a remote system is available or not, give its IP address to the ping command: - -``` -ping ip_address -``` - -You can also use it to check if a website is down though it is not very accurate these days. - -![ping command ubuntu][61] - -Use **Ctrl+C** to stop the running ping command. - -**Recommended Read**: [ping command examples][62] - -#### 28. ssh: Connecting to remote systems - -I was skeptical about adding ssh to the list of must-know Linux commands. Many desktop users may not need it. SSH is used for connecting to other Linux systems from your terminal. - -``` -ssh [email protected]_address_of_remote_system -``` - -You need to know the user and password of the remote system, of course. - -If you have cloud servers or a home setup where other Linux systems are available, you can use it to connect to them from your primary system. - -#### 29. scp: Copy files between remote systems - -Since I included ssh in the list, it was only fair to include something for [transferring files between the remote systems over SSH connection][63]. - -The scp command works almost like the cp command you saw earlier. - -Here’s an example that copies the file from the home directory of the user on the remote system to the current directory of your locally logged in system. - -``` -scp [email protected]_address:/home/username/filename . -``` - -**Recommended Read**: [scp command examples][64] - -#### 30. exit: Close the terminal - -The list of essential Linux commands is ending. So let’s talk about exiting the terminal. It’s quite simple. Just enter: - -``` -exit -``` - -If you are using another user or shell, you’ll be logged out from that. - -You may also use **Ctrl+D**keys to exit the terminal. - -#### 31. shutdown: Turn off or reboot the system - -Alright. Let me share a final command if you haven’t exited the terminal yet. - -How about [turning off your system][65] from the command line? - -[Use the shutdown command][66] for this purpose: - -``` -shutdown -``` - -The above command [schedules a shutdown][67] in one minute. You can make it turn off immediately with: - -``` -shutdown -now -``` - -You can use the same shutdown command for [rebooting your Ubuntu system][68] as well: - -``` -shutdown -r now -``` - -#### Bonus tip: man: Learn about commands in detail - -One more, and this is the last one, I promise. All Linux systems come with a manual for the commands. It’s called manpage, and you can access the manual page of an installed command with the following: - -``` -man command_name -``` - -[Understanding the manpage][69] can be overwhelming for new users, but it comes quite handy. It gives you the generic syntax and description of all the options a command has. - -When you are unsure about using a command, try checking its man page before searching for it on the internet. - -### There’s Always More … - -**That’s just about 30 commands. And that’s not even 20% of the Linux commands**. I haven’t covered many networking commands. I didn’t even go for the user management commands. - -I wrote this keeping a regular Ubuntu desktop user in mind. These are the kinds of commands you are more likely to use. Having some knowledge about them would be helpful in the long run. - -Other than that, there is no end to learning. Even the most seasoned Linux users constantly discover and learn new stuff. - -Considering that you are interested in learning Linux commands, let me recommend some[good Linux books][70] and resources. - -- [How Linux Works][71]: Explains the working of Linux more than the commands -- [The Linux Command Line by William Shotts][72]: Legally available to download for free in PDF format -- [Linux Pocket Guide by Daniel J Barrett][73]: Linux commands into category and briefly explained with small examples -- [Learn Linux Quickly][74]: Entirely focused on Linux commands with proper examples and sample exercises - -Apart from that, you can also learn from websites like [Linux Journey][75] and [Linux Handbook][76]. - -**I know it’s been a long read**, but it’s not even the tip of the iceberg. There is always more to learn, but it’s also not the case that you have to feel miserable if you don’t know all the Linux commands. - -**No one knows everything.** - -Now, it’s your turn. Did you find this list of Ubuntu commands helpful? - -**If you had to add some more commands to it, what would they be? The comment section is all yours.** - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/essential-ubuntu-commands/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://linuxhandbook.com/absolute-vs-relative-path/ -[2]: https://linuxhandbook.com/linux-file-permissions/ -[3]: https://itsfoss.com/basic-terminal-tips-ubuntu/ -[4]: https://itsfoss.com/folder-directory-linux/ -[5]: https://itsfoss.com/wp-content/uploads/2022/11/ls-command-ubuntu.png -[6]: https://linuxhandbook.com/ls-command/ -[7]: https://itsfoss.com/wp-content/uploads/2022/11/cd-command-examples.png -[8]: https://linuxhandbook.com/cd-command-examples/ -[9]: https://itsfoss.com/wp-content/uploads/2022/11/cat-command-example.png -[10]: https://linuxhandbook.com/cat-command/ -[11]: https://itsfoss.com/wp-content/uploads/2022/11/reading-large-files-with-less-command.png -[12]: https://linuxhandbook.com/less-command/ -[13]: https://itsfoss.com/wp-content/uploads/2022/11/touch-command-ubuntu.png -[14]: https://linuxhandbook.com/touch-command/ -[15]: https://itsfoss.com/wp-content/uploads/2022/11/mkdir-command-example.png -[16]: https://linuxhandbook.com/mkdir-command/ -[17]: https://itsfoss.com/wp-content/uploads/2022/11/cp-command-example.png -[18]: https://linuxhandbook.com/cp-command/ -[19]: https://itsfoss.com/wp-content/uploads/2022/11/mv-command-example.png -[20]: https://linuxhandbook.com/mv-command/ -[21]: https://itsfoss.com/wp-content/uploads/2022/11/rm-command-examples.png -[22]: https://linuxhandbook.com/remove-files-directories/ -[23]: https://itsfoss.com/command-line-text-editors-linux/ -[24]: https://itsfoss.com/vim-vs-nano/ -[25]: https://itsfoss.com/wp-content/uploads/2022/11/nano-command-example.png -[26]: https://itsfoss.com/nano-editor-guide/ -[27]: https://itsfoss.com/how-to-find-the-process-id-of-a-program-and-kill-it-quick-tip/ -[28]: https://itsfoss.com/cdn-cgi/l/email-protection -[29]: https://itsfoss.com/wp-content/uploads/2022/11/list-processes-ubuntu.webp -[30]: https://linuxhandbook.com/ps-command/ -[31]: https://itsfoss.com/linux-system-monitoring-tools/ -[32]: https://itsfoss.com/wp-content/uploads/2022/11/top-command-ubuntu.png -[33]: https://itsfoss.com/stop-program-linux-terminal/ -[34]: https://linuxhandbook.com/top-command/ -[35]: https://itsfoss.com/loop-device-linux/ -[36]: https://linuxhandbook.com/find-exec-command/ -[37]: https://linuxhandbook.com/xargs-command/ -[38]: https://linuxhandbook.com/find-command-examples/ -[39]: https://itsfoss.com/wp-content/uploads/2022/11/grep-command-examples.png -[40]: https://linuxhandbook.com/grep-command-examples/ -[41]: https://linuxhandbook.com/grep-command-cheatsheet/ -[42]: https://linuxhandbook.com/kill-process/ -[43]: https://itsfoss.com/wp-content/uploads/2022/11/find-kill-process-ubuntu-800x264.png -[44]: https://www.imdb.com/title/tt0936501/?ref_=tt_urv -[45]: https://itsfoss.com/wp-content/uploads/2022/11/taken-meme-find-you-kill-you.jpg -[46]: https://itsfoss.com/wp-content/uploads/2022/11/history-command-ubuntu-800x534.png -[47]: https://linuxhandbook.com/history-command/ -[48]: https://linuxhandbook.com/chmod-command/ -[49]: https://itsfoss.com/hardinfo/ -[50]: https://itsfoss.com/find-network-adapter-ubuntu-linux/ -[51]: https://itsfoss.com/wp-content/uploads/2022/11/lshw-command-examples.png -[52]: https://itsfoss.com/wp-content/uploads/2022/11/using-sudo-example-ubuntu.png -[53]: https://itsfoss.com/root-user-ubuntu/ -[54]: https://itsfoss.com/apt-update-vs-upgrade/ -[55]: https://itsfoss.com/apt-command-guide/ -[56]: https://itsfoss.com/add-apt-repository-command-not-found/ -[57]: https://itsfoss.com/ppa-guide/ -[58]: https://itsfoss.com/check-ip-address-ubuntu/ -[59]: https://itsfoss.com/wp-content/uploads/2022/11/ip-address-check-ubuntu.png -[60]: https://itsfoss.com/basic-linux-networking-commands/ -[61]: https://itsfoss.com/wp-content/uploads/2022/11/ping-command-ubuntu.png -[62]: https://linuxhandbook.com/ping-command/ -[63]: https://linuxhandbook.com/transfer-files-ssh/ -[64]: https://linuxhandbook.com/scp-command/ -[65]: https://learnubuntu.com/shutdown-ubuntu/ -[66]: https://linuxhandbook.com/linux-shutdown-command/ -[67]: https://itsfoss.com/schedule-shutdown-ubuntu/ -[68]: https://learnubuntu.com/restart-ubuntu/ -[69]: https://itsfoss.com/linux-man-page-guide/ -[70]: https://itsfoss.com/best-linux-books/ -[71]: https://nostarch.com/howlinuxworks3 -[72]: https://linuxcommand.org/tlcl.php -[73]: https://www.oreilly.com/library/view/linux-pocket-guide/9780596806347/ -[74]: https://linuxhandbook.gumroad.com/l/mEsrwA -[75]: https://linuxjourney.com/ -[76]: https://linuxhandbook.com/a-to-z-linux-commands/ From 6af636c4f235525df4331ace9a5b190f07c89f7b Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Thu, 24 Nov 2022 21:02:36 +0800 Subject: [PATCH 2093/3123] Update 20210415 5 reasons sysadmins love systemd.md --- sources/tech/20210415 5 reasons sysadmins love systemd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210415 5 reasons sysadmins love systemd.md b/sources/tech/20210415 5 reasons sysadmins love systemd.md index f063a55ddc..5ce9e73653 100644 --- a/sources/tech/20210415 5 reasons sysadmins love systemd.md +++ b/sources/tech/20210415 5 reasons sysadmins love systemd.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/sysadmins-love-systemd) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (chai001125) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 6408be692a21096ea04e5e2ede4d54619f4e3867 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 25 Nov 2022 08:40:59 +0800 Subject: [PATCH 2094/3123] translated --- ...rebase to Fedora Linux 37 on Silverblue.md | 118 ------------------ ...rebase to Fedora Linux 37 on Silverblue.md | 118 ++++++++++++++++++ 2 files changed, 118 insertions(+), 118 deletions(-) delete mode 100644 sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md create mode 100644 translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md diff --git a/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md b/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md deleted file mode 100644 index 86f9ef58b3..0000000000 --- a/sources/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md +++ /dev/null @@ -1,118 +0,0 @@ -[#]: subject: "How to rebase to Fedora Linux 37 on Silverblue" -[#]: via: "https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/" -[#]: author: "Michal Konečný https://fedoramagazine.org/author/zlopez/" -[#]: collector: "lujun9972" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to rebase to Fedora Linux 37 on Silverblue -====== - -![][1] - -Fedora Silverblue is [an operating system for your desktop built][2][ on Fedora Linux][2]. It’s excellent for daily use, development, and container-based workflows. It offers [numerous advantages][3] such as being able to roll back in case of any problems. If you want to update or rebase to Fedora Linux 37 on your Fedora Silverblue system (these instructions are similar for Fedora Kinoite), this article tells you how. It not only shows you what to do, but also how to revert things if something unforeseen happens. - -Prior to actually doing the rebase to Fedora Linux 37, you should apply any pending updates. Enter the following in the terminal: - -``` - - $ rpm-ostree update - -``` - -or install updates through GNOME Software and reboot. - -### Rebasing using GNOME Software - -GNOME Software shows you that there is new version of Fedora Linux available on the Updates screen. - -![Fedora 37 update available][4] - -First thing you need to do is download the new image, so click on the _Download_ button. This will take some time. When it’s done you will see that the update is ready to install. - -![Fedora 37 update ready to install][5] - -Click on the _Restart & Upgrade_ button. This step will take only a few moments and the computer will be restarted at the end. After restart you will end up in new and shiny release of Fedora Linux 37. Easy, isn’t it? - -### Rebasing using terminal - -If you prefer to do everything in a terminal, then this part of the guide is for you. - -Rebasing to Fedora Linux 37 using the terminal is easy. First, check if the 37 branch is available: - -``` - - $ ostree remote refs fedora - -``` - -You should see the following in the output: - -``` - - fedora:fedora/37/x86_64/silverblue - -``` - -If you want to pin the current deployment (this deployment will stay as option in GRUB until you remove it), you can do it by running: - -``` - - # 0 is entry position in rpm-ostree status - $ sudo ostree admin pin 0 - -``` - -To remove the pinned deployment use the following command: - -``` - - # 2 is entry position in rpm-ostree status - $ sudo ostree admin pin --unpin 2 - -``` - -where 2 is the position in the rpm-ostree status. - -Next, rebase your system to the Fedora Linux 37 branch. - -``` - - $ rpm-ostree rebase fedora:fedora/37/x86_64/silverblue - -``` - -Finally, the last thing to do is restart your computer and boot to Fedora Linux 37. - -### How to roll back - -If anything bad happens—for instance, if you can’t boot to Fedora Linux 37 at all—it’s easy to go back. Pick the previous entry in the GRUB menu at boot (if you don’t see it, try to press ESC during boot), and your system will start in its previous state before switching to Fedora Linux 37. To make this change permanent, use the following command: - -``` - - $ rpm-ostree rollback - -``` - -That’s it. Now you know how to rebase Fedora Silverblue to Fedora Linux 37 and roll back. So why not do it today? - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/ - -作者:[Michal Konečný][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/zlopez/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2021/04/silverblue-rebase-816x345.jpg -[2]: https://docs.fedoraproject.org/en-US/fedora-silverblue/ -[3]: https://fedoramagazine.org/give-fedora-silverblue-a-test-drive/ -[4]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-15-11-11-32-1024x714.png -[5]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-15-11-12-22-1024x714.png diff --git a/translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md b/translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md new file mode 100644 index 0000000000..d9ea169c6d --- /dev/null +++ b/translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md @@ -0,0 +1,118 @@ +[#]: subject: "How to rebase to Fedora Linux 37 on Silverblue" +[#]: via: "https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/" +[#]: author: "Michal Konečný https://fedoramagazine.org/author/zlopez/" +[#]: collector: "lujun9972" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Silverblue 上变基到 Fedora Linux 37 +====== + +![][1] + +Fedora Silverblue 是[基于 Fedora Linux 构建的桌面操作系统][2]。它非常适合日常使用、开发和基于容器的工作流程。它提供了[众多优势][3],例如能够在出现任何问题时回滚。如果你想在 Fedora Silverblue 系统上更新或变基到 Fedora Linux 37(这些说明与 Fedora Kinoite 类似),本文将告诉你如何操作。它不仅向你展示了该做什么,而且还向你展示了在发生不可预见的事情时如何恢复。 + +在实际对 Fedora Linux 37 进行变基之前,你应该应用任何待定的更新。在终端中输入以下内容: + +``` + +$ rpm-ostree update + +``` + +或通过 GNOME Software 安装更新并重新启动。 + +### 使用 GNOME Software 变基 + +GNOME Software 向你显示更新页面上有新版本的 Fedora Linux 可用。 + +![Fedora 37 更新可用][4] + +你需要做的第一件事是下载新图片,因此请点击_下载_按钮。这需要一些时间。完成后,你将看到更新已准备好安装。 + +![Fedora 37 更新准备好安装][5] + +点击 _Restart &Upgrade_ 按钮。此步骤只需要几分钟,最后计算机将重启。重启后,你将获得全新的 Fedora Linux 37 版本。很简单,不是吗? + +### 使用终端变基 + +如果你喜欢在终端中完成所有操作,那么本指南的这一部分适合你。 + +使用终端变基到 Fedora Linux 37 很容易。首先,检查 37 分支是否可用: + +``` + +$ ostree remote refs fedora + +``` + +你应该在输出中看到以下内容: + +``` + +fedora:fedora/37/x86_64/silverblue + +``` + +如果你想置顶当前部署(该部署将作为 GRUB 中的选项保留,直到你删除它),你可以通过运行以下命令来完成: + +``` + +# 0 is entry position in rpm-ostree status +$ sudo ostree admin pin 0 + +``` + +要删除置顶部署,请使用以下命令: + +``` + +# 2 is entry position in rpm-ostree status +$ sudo ostree admin pin --unpin 2 + +``` + +其中 2 是 rpm-ostree 状态中的位置。 + +接下来,将你的系统重新设置为 Fedora Linux 37 分支。 + +``` + +$ rpm-ostree rebase fedora:fedora/37/x86_64/silverblue + +``` + +最后,要做的最后一件事是重新启动计算机并引导至 Fedora Linux 37。 + +### 如何回滚 + +如果发生任何不好的事情,例如,如果你根本无法启动到 Fedora Linux 37,这很容易回滚。在引导时选择 GRUB 菜单中的上一个条目(如果你没有看到它,请尝试在引导过程中按 ESC),你的系统将以切换到 Fedora Linux 37 之前的先前状态启动。要使此更改永久生效,请使用以下命令: + +``` + +$ rpm-ostree rollback + +``` + +就是这样。现在你知道如何将 Fedora Silverblue 变基到 Fedora Linux 37 并回滚。那么为什么不在今天做呢? + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/ + +作者:[Michal Konečný][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/zlopez/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2021/04/silverblue-rebase-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/fedora-silverblue/ +[3]: https://fedoramagazine.org/give-fedora-silverblue-a-test-drive/ +[4]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-15-11-11-32-1024x714.png +[5]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-15-11-12-22-1024x714.png \ No newline at end of file From e4fa7016a3802e23c855f0625b68d60450d1a034 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 25 Nov 2022 08:47:05 +0800 Subject: [PATCH 2095/3123] translating --- ...221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md b/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md index 3c354cd47f..ace1587af9 100644 --- a/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md +++ b/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/cinnamon-arch-linux-install/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ae8bdcc95a12bec174da747bd8e46f65022aab3b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 25 Nov 2022 10:02:43 +0800 Subject: [PATCH 2096/3123] RP @geekpi https://linux.cn/article-15287-1.html --- ...o Enable and Access USB Drive in VirtualBox.md | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) rename {translated/tech => published}/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md (52%) diff --git a/translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/published/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md similarity index 52% rename from translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md rename to published/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md index 231302dd62..5f6ec9d629 100644 --- a/translated/tech/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md +++ b/published/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md @@ -3,65 +3,68 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15287-1.html" -如何在 VirtualBox 中启用和访问 USB 驱动器 +如何在 VirtualBox 中启用和访问 U 盘 ====== -这是有关如何在 Oracle VirtualBox 中启用 USB 的指南。 + +> 这是有关如何在 Oracle VirtualBox 中启用 USB 的指南。 ![][1] -当你在虚拟机环境中工作时,USB 通常插入主机系统。但是从访客系统访问 USB 内容有点困难。 +当你在虚拟机环境中工作时,USB 通常插入主机系统。但是从客体系统访问 USB 内容有点困难。 在 VirtualBox 中,你需要安装一些扩展并启用一些设置才能访问 USB。方法如下。 本文假设你已经安装了 VirtualBox,并且还在其中安装了一些 Linux 发行版或操作系统。 -如果没有,请查看[此处的文章][2]。 +如果没有,请查看 [这篇文章][2]。 + +> **请注意,Oracle VM VirtualBox 扩展包采用 Oracle 的个人使用和评估许可证(PUEL)。该许可证与 VirtualBox 不同,后者采用的是 GPL。如果你将下面的步骤用于商业目的,请确保你仔细阅读 [本页面][11]。** ### 在 VirtualBox 7.0 中启用 USB #### 安装 VirtualBox 扩展包 -* 打开 VirtualBox 下载页面并从[此链接][3]下载适用于所有支持平台的 VirtualBox 扩展包。 +打开 VirtualBox 下载页面并从 [此链接][3] 下载适用于所有支持平台的 VirtualBox 扩展包。 ![下载扩展包][4] -* 然后单击 `文件 > 工具 > 扩展包管理器`。 +然后单击 “文件File > 工具Tools > 扩展包管理器Extension Pack Manager”。 -* 单击工具栏中的`安装`按钮并选择下载的 .vbox-extpak 文件。 +单击工具栏中的 “安装Install” 按钮并选择下载的 .vbox-extpak 文件。 -* 点击`安装`。接受条款,并为安装提供管理员密码。 +点击 “安装Install”。接受条款,并为安装提供管理员密码。 ![安装扩展包管理器][5] ![接受条款后安装扩展包管理器][6] -* 安装成功后,可以在已安装列表中看到。 +安装成功后,可以在已安装列表中看到。 -* 重启主机系统。重启是强制性的。 +重启主机系统。重启是强制性的。 -#### 在客户机中启用 USB +#### 在客体机中启用 USB -* 将 U 盘插入你的宿主机系统,你希望从虚拟机中访问该系统。 +将 U 盘插入你的宿主机系统,你希望从虚拟机中访问该系统。 -* 启动 VirtualBox 并右键单击要启用 USB 的 VM 名称。选择设置。 +启动 VirtualBox 并右键单击要启用 USB 的虚拟机名称。选择“设置Settings”。 ![虚拟机的启动设置][7] -* 在左窗格中,单击 USB。然后选择控制器版本。例如,你可以选择 USB 3.0。然后单击小加号图标添加 USB 过滤器。 +在左窗格中,单击 USB。然后选择控制器版本。例如,你可以选择 USB 3.0。然后单击小加号图标添加 USB 过滤器。 -* 在此列表中,你应该看到你的 U 盘名称(你插入的)。对于这个例子,我可以看到我插入的 Transcend Jetflash 驱动器。 +在此列表中,你应该看到你的 U 盘名称(你插入的)。对于这个例子,我可以看到我插入的 Transcend Jetflash 驱动器。 -* 选择它并按 OK。 +选择它并按 “OK”。 ![选择 U 盘][8] -* 现在,启动你的虚拟机。打开文件管理器,你应该会看到 USB 已启用并挂载到你的虚拟机上。 +现在,启动你的虚拟机。打开文件管理器,你应该会看到 U 盘已启用并挂载到你的虚拟机上。 -* 在此演示中,你可以看到我的 [Arch-Xfce][9] 虚拟机的 Thunar 文件管理器正在显示我的 U 盘中的内容。 +在此演示中,你可以看到我的 [Arch-Xfce][9] 虚拟机的 Thunar 文件管理器正在显示我的 U 盘中的内容。 ![启用 USB 并从 VirtualBox 访问内容][10] @@ -69,11 +72,11 @@ 现在,这里有几件事你应该记住。 -* 当你在主机系统中插入 USB 时,请保持挂载状态。但在启动虚拟机之前不要打开或访问任何文件。 +当你在主机系统中插入 U 盘时,请保持挂载状态。但在启动虚拟机之前不要打开或访问任何文件。 -* 启动虚拟机后,USB 将在主机系统中卸载并自动挂载到客户机系统中,即你的虚拟机。 +启动虚拟机后,U 盘将在主机系统中卸载并自动挂载到客体系统中,即你的虚拟机。 -* 使用完 U 盘后,确保在虚拟机中将其弹出或卸载。然后它将能再从你的宿主机系统内访问。 +使用完 U 盘后,确保在虚拟机中将其弹出或卸载。然后它将能再从你的主机系统内访问。 ### 总结 @@ -90,7 +93,7 @@ via: https://www.debugpoint.com/enable-usb-virtualbox/ 作者:[Arindam][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/) 荣誉推出 @@ -106,3 +109,4 @@ via: https://www.debugpoint.com/enable-usb-virtualbox/ [8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg [9]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/ [10]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg +[11]: https://www.virtualbox.org/wiki/VirtualBox_PUEL \ No newline at end of file From e1ac85ac7d095b55bfa7025e8eae1dede37d6cd9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 25 Nov 2022 10:25:28 +0800 Subject: [PATCH 2097/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=92=8C=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2.10- Top New Features and Release Wiki.md | 169 ------------ ...tu 22.10 Kinetic Kudu- Top New Features.md | 88 ------ ...ie 22.10 Kinetic Kudu- Top New Features.md | 93 ------- ...Inspiring Facts From Its Glorious Past!.md | 193 ------------- ...0 Best Linux Distributions in 2022 For Everyone.md | 221 --------------- ...nux Distributions for your Old Hardware in 2022.md | 218 --------------- ...0 Most Beautiful Linux Distributions [Featured].md | 216 --------------- ...0 32-Bit Linux Distributions in 2022 [Compared].md | 255 ------------------ ...Make LibreOffice Look Like Microsoft Office.md | 112 -------- 9 files changed, 1565 deletions(-) delete mode 100644 sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md delete mode 100644 sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md delete mode 100644 sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md delete mode 100644 sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md delete mode 100644 sources/tech/20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md delete mode 100644 sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md delete mode 100644 sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md delete mode 100644 sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md delete mode 100644 sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md diff --git a/sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md b/sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md deleted file mode 100644 index 4e78ea7df5..0000000000 --- a/sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md +++ /dev/null @@ -1,169 +0,0 @@ -[#]: subject: "Ubuntu 22.10: Top New Features and Release Wiki" -[#]: via: "https://www.debugpoint.com/ubuntu-22-10/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu 22.10: Top New Features and Release Wiki -====== -Here’s the list of new features and tech which is coming up in Ubuntu 22.10 Kinetic Kudu. - -![Ubuntu 22.10 Kinetic Kudu Desktop (dev)][1] - -The development of Ubuntu 22.10 is almost at the finishing stage, and the BETA is out. At this stage, features are frozen, and only testing/bug fixes are ongoing for Ubuntu 22.10. - -In this article, I will touch upon the essential features of Ubuntu 22.10 Kinetic Kudu. But before that, a quick summary of the schedule. - -Ubuntu 22.10 BETA was released on September 29, 2022, and it’s currently under testing. - -The final release of Ubuntu 22.10 is on October 20, 2022. - -Since it is a short-term release, it is supported for nine months until July 20, 2023. - -### Ubuntu 22.10 Kinetic Kudu Desktop: Top Features - -Following the letter-based code name, we are at “K” following the “J” of Jammy Jellyfish. This version is code-named “Kinetic Kudu”, named after a [long-horned animal species][2] found in Africa. - -All the packages and repos are named as “kinetic” in applicable places for this release. - -#### Linux Kernel - -Ubuntu 22.10 features Linux Kernel 5.19, which was released a few days back. The current mainline kernel, which is dubbed as [version 6.0][3], won’t feature in this version due to a schedule mismatch. - -Linux Kernel 5.19 brings regular updates across CPU, GPU and other peripherals. Significant features in this Kernel include multi-platform ARM support, LoongArch arch support, support for AMD RDNA, CDNA, Intel’s Raptor Lake and many important updates. You can read in detail about its new features on [this page][4]. - -#### GNOME 43 - -In Ubuntu 22.10, GNOME 43 is the base desktop version. GNOME 43 is an impressive release in terms of features and work around the GTK4 and libadwaita. A lot of features which was missed to reach in Ubuntu 22.04 LTS, finally arrived in this version. - -Since the feature list is vast, I will try to summarize it here. - -First and foremost, GNOME Shell gets high-resolution scroll wheel support, colour support in server decoration, and improved animation and performance all around the desktop. - -Secondly, the vital app – Files (Nautilus) 43 brings a vast set of tweaks after its migration to GTK4. In Files 43, you get the redesigned context menu, rubberband selection, adaptive sidebar, which auto-hides based on its size, emblems support and new GtkColumnView support for a better experience. - -Third, the stunning [GNOME 43 quick settings][5] arrive in Ubuntu. The settings will give you easy access to several key items right from the tray. - -Other important changes in GNOME 43 include: - -* An updated properties dialog window with intelligent behaviour based on file types -* GNOME Web gets web extension API support enabling you to install Firefox and Chrome add-ons -* Improved context menu in Files sidebar -* Updated app info page in Software - -Don’t forget to review my detailed [GNOME 43 feature write-up][6] to learn more. - -#### New Settings Panel - -There are some [key changes][7] arrive in the Settings panel. A new panel is introduced – “Ubuntu Desktop” which has the desktop icon and dock options. This panel is unavailable in vanilla GNOME (e.g. in Fedora Workstation). - -![New Ubuntu desktop and Appearance tab in settings][8] - -The Background tab is now merged with the Appearance tab. This essentially consolidates Ubuntu’s theming options to one single setting page. Effectively, it’s a good change and a wise UI decision. In addition, a new “Device Security Panel” is also introduced. - -#### PipeWire by Default - -Ubuntu 22.10 is all about adopting the new tech, and leaving the legacy items behind. With that motto, in this release, the Pipewire sound server is made default for the first time in Ubuntu. PulseAudio will still be there but inactive for now. - -For those folks in Audio recording, mixing work would greatly benefit from this. - -#### IWD replacing the wpa_supplicant - -Similarly, with PipeWire, another new tech adoption is coming in Ubuntu 22.10. The legacy `wpa_supplicant` wireless module is changing, and IWD (iNet Wireless Daemon) is replacing it. The IWD was developed by Intel, and it had certain advantages and more features over wpa_supplicant. - -Besides, the wpa_supplicant is almost two decades old and served its purpose in GNU/Linux and BSD systems. - -In my personal experience, I had some difficult experiences with wpa_supplicant, which manages the Wi-Fi connections. For example, sudden disconnection, and not waking up the Wi-Fi after standby, to name a few. - -With the modern IWD, I hope the continuous struggle with several users with Ubuntu and Wi-Fi shall disappear. If you want to learn more about IWD, you can read some excellent discussions [here][9] and [here][10]. - -#### Official desktop flavours - -All the official desktop flavours of Ubuntu are getting their current stable release. If you are already using Xubuntu, Ubuntu MATE – well, you get the same version as the prior one. Because these desktops did not have a major upgrade recently. - -Lubuntu users should get the recently released LXQt 1.1.0 desktop which brings additional features such as compact and a new application menu, new theming changes and more. - -Kubuntu users should get KDE Plasma 5.25, which brings you some unique features such as a floating panel, dynamic accent colour and many [such exciting features][11]. - -Budgie lovers should get the new features that are under development via Ubuntu Budgie 22.10. I will write up a separate article on Budgie because of the changes. - -So, in summary, you get [Xfce 4.16][12], MATE 1.24, KDE Plasma 5.25 and LXQt 1.1.0 as the desktop versions. - -#### Tool-chain updates - -Now, it’s time to find out about the important packages and programming updates for developers. In this release, you get the following version upgrades for individual items. - -* BlueZ 5.65 -* CUPS 2.4 -* Python 3.10.6 -* NetworkManager 1.38 -* Mesa 22 -* Pipewire 0.3.56 -* PulseAudio 16 -* xdg-desktop-portal 1.14 - -Although, I am not sure whether Python 3.11 will be ready ([currently in RC][13]) before release. I hope not. - -#### Wallpaper - -Finally, a brand new wallpaper featuring the official Kudu mascot is ready to give your desktop a nice touch. - -#### Summary of the key changes in Ubuntu 22.10 - -* Linux Kernel 5.19 -* GNOME 43 -* Pipewire by default -* IWD is replacing wpa_supplicant -* KDE Plasma 5.25 in Kubuntu -* LXQt 1.1.0 in Lubuntu -* Firefox 104 -* LibreOffice 7.4 -* Thunderbird 102 - -You can download the BETA builds of this release (which are stable with the condition) [from this page][14] for testing. - -The flavours’ BETA builds are available on the below pages. - -| Ubuntu Flavour | Link for daily builds .iso image(s) | -| :- | :- | -| Ubuntu 22.10 Desktop | http://cdimage.ubuntu.com/daily-live/current/ | -| Xubuntu 22.10 | https://cdimage.ubuntu.com/xubuntu/releases/kinetic/beta/ | -| Ubuntu MATE 22.10 | https://cdimage.ubuntu.com/ubuntu-mate/releases/kinetic/beta/ | -| Ubuntu Kylin 22.10 | https://cdimage.ubuntu.com/ubuntukylin/releases/kinetic/beta/ | -| Lubuntu 22.10 | https://cdimage.ubuntu.com/lubuntu/releases/kinetic/beta/ | -| Kubuntu 22.10 | https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/ | -| Ubuntu Budgie 22.10 | https://cdimage.ubuntu.com/ubuntu-budgie/releases/kinetic/beta/ | -| Ubuntu Unity 22.10 | https://cdimage.ubuntu.com/ubuntu-unity/releases/kinetic/beta/ | - -So, that’s about it on the changes in Ubuntu 22.10. Do let me know about your favourite feature in the comment box. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/ubuntu-22-10/ - -作者:[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/08/Ubuntu-22.10-Kinetic-Kudu-Desktop-dev.jpg -[2]: https://en.wikipedia.org/wiki/Kudu -[3]: https://www.debugpoint.com/linux-kernel-6-0/ -[4]: https://www.debugpoint.com/linux-kernel-5-19/ -[5]: https://www.debugpoint.com/gnome-43-quick-settings/ -[6]: https://www.debugpoint.com/gnome-43/ -[7]: https://launchpad.net/ubuntu/kinetic/+source/gnome-control-center/+changelog -[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/New-Ubuntu-desktop-and-Appearance-tab-in-settings.jpg -[9]: https://bbs.archlinux.org/viewtopic.php?id=237074 -[10]: https://bbs.archlinux.org/viewtopic.php?pid=1858588#p1858588 -[11]: https://www.debugpoint.com/kde-plasma-5-25/ -[12]: https://www.debugpoint.com/xfce-4-16-review/ -[13]: https://pythoninsider.blogspot.com/2022/08/python-3110rc1-is-now-available.html -[14]: https://cdimage.ubuntu.com/daily-live/current/ diff --git a/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md b/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md deleted file mode 100644 index 3396550fa8..0000000000 --- a/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: subject: "Kubuntu 22.10 Kinetic Kudu: Top New Features" -[#]: via: "https://www.debugpoint.com/kubuntu-22-10-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kubuntu 22.10 Kinetic Kudu: Top New Features -====== -A brief summary of Kubuntu 22.10 “Kinetic Kudu” and additional information about the release. - -![Kubuntu 22.10 Kinetic Kudu Desktop][1] - -### Kubuntu 22.10: Top New Features - -Among all the [great KDE Plasma-based distributions][2], Kubuntu is the best. Because it brings stability to both Plasma and at its core, that is Ubuntu. - -Kubuntu 22.10 is a short-term release based on Ubuntu 22.10 – supported for nine months from the release. Since short-term releases are to adopt the latest technologies, removing the obsolete ones, its features list is minimal. - -This release of Kubuntu features Linux Kernel 5.19, which brings run-time Average Power Limiting (RAPL) support for Intel’s Raptor and Alder Lake processor, multiple families of ARM updates in mainline kernel and usual processor/GPU and file-system updates. Learn more about Kernel 5.19 features in [this article][3]. - -Compared to the prior [Kubuntu release 22.04 LTS][4] (with Plasma 5.24), you get the latest KDE Plasma 5.25 (final point release) desktop with all the bug fixes and updates. - -Although, [KDE Plasma 5.26][5], which has just got released, could not make it to this version. But I believe it should come in as a point release, just not on the release day. - -Besides, Plasma 5.25 is not small in terms of features. It’s, in fact, packed with new cool advancements. If you are especially using Kubuntu’s earlier version, you should be aware of these new items. - -Firstly, Kubuntu 22.10 enables you to make your default panel “float”. We call it the Floating Panel. So, no more using the add-ons for this. - -Secondly, the accent colour of your desktop can change based on the wallpaper’s tone. Now you can see your Kubuntu desktop changes dynamically when you enable it from Settings > Global Theme > Colours. - -![KDE Plasma - Dynamic Accent Colour and Floating Panel Demo][6] - -In addition, switching between dark and light modes becomes more smooth thanks to the change. Also, in Kubuntu 22.10 with Wayland, you can now see and apply the display-specific resolutions in the settings dropdown. - -On the other hand, Discover is more friendly to Flatpak, with additional app details and an additional options button to notify you that there is still data for uninstalled apps. - -![The app page gives more clarity in Plasma 5.25][7] - -Furthermore, the Krunner launcher in Kubuntu now detects the search language and display results accordingly. Also, the network manager applet now shows the Wi-Fi frequency alongside the access point name (this is help full for cases where you have the same access point name for 4G and 5G bands). - -All of these changes are powered by Qt 5.15.6 and Framework 5.98. If you want to learn more about Plasma 5.25, refer to the dedicated feature guide [here][8]. - -### Other features of Kubuntu 22.10 - -The core applications and packages bump up to their respective versions based on Ubuntu 22.10, and here’s a summary. - -* Linux Kernel 5.19 -* KDE Plasma 5.25.5 (hopefully will get 5.26 soon) -* KDE Framework 5.98 -* Qt 5.15.6 -* Firefox 105.0.1 -* Thunderbird 102.3.2 -* LibreOffice 7.4.2.3 -* VLC Media Player 3.0.17 -* Pipewire replacing PulseAudio - -Finally, you can download the Kubuntu 22.10 BETA from the below links. - -[https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/][9] - -While the developers are preparing for the final release (due on Oct 20, 2022), you can try it on a [virtual machine][10], Or a physical system. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/kubuntu-22-10-features/ - -作者:[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/10/Kubuntu-22.10-Kinetic-Kudu-Desktop.jpg -[2]: https://www.debugpoint.com/top-linux-distributions-kde-plasma/ -[3]: https://www.debugpoint.com/linux-kernel-5-19/ -[4]: https://www.debugpoint.com/kubuntu-22-04-lts/ -[5]: https://www.debugpoint.com/kde-plasma-5-26/ -[6]: https://youtu.be/npfHwMLXXHs -[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/App-page-gives-more-clarity-in-Plasma-5.25.jpg -[8]: https://www.debugpoint.com/kde-plasma-5-25/ -[9]: https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/ -[10]: https://www.debugpoint.com/tag/virtual-machine diff --git a/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md b/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md deleted file mode 100644 index 0bee836b7f..0000000000 --- a/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: subject: "Ubuntu Budgie 22.10 Kinetic Kudu: Top New Features" -[#]: via: "https://www.debugpoint.com/ubuntu-budgie-22-10-features/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu Budgie 22.10 Kinetic Kudu: Top New Features -====== -Here’s a brief overview of the Ubuntu Budgie 22.10 (upcoming) and its features. - -![Ubuntu Budgie 22.10 KInetic Kudu Desktop][1] - -### Ubuntu Budgie 22.10: Top New Features - -The Budgie desktop has a different fan base because of its fusion of simplicity, feature and performance. Ubuntu Budgie 22.10 is an official Budgie flavour of Ubuntu, where you get the latest Ubuntu base with a stable Budgie desktop. - -Ubuntu Budgie 22.10 is a short-term release, supported for nine months until July 2023. - -This release of Ubuntu Budgie features Linux Kernel 5.19, which brings run-time Average Power Limiting (RAPL) support for Intel’s Raptor and Alder Lake processor, multiple families of ARM updates in mainline kernel and usual processor/GPU and file-system updates. Learn more about Kernel 5.19 features in [this article][2]. - -At the heart of this version, Ubuntu Budgie is powered by Budgie Desktop version 10.6.4, which brings updated applications and additional core tweaks. If you are using the prior Ubuntu budgie version, i.e. 22.04 or 21.10, you will notice some changes. And you should be aware of those. - -First of all, the Budgie Control Center gets modern protocols for screensharing (both RDP and VNC), enhanced fractional scaling and colour profile support for your monitor. In addition, the Control centre now shows the monitor refresh rate and additional support added for Wacom tablets. - -Secondly, Budgie desktop settings get a global option to control applets spacing and additional refinements. - -After removing the calendar launcher, the clock at the top bar now only gives the launcher for date/time settings. You can access the Calendar from the applets at the extreme right of the top bar. - -Ubuntu Budgie 22.10 fundamentally changed its application stack, which ships by default. Earlier (22.04 and prior), Budgie featured the GNOME applications as default for several desktop functions. Since GNOME is already moved to libadwaita/GTK4 with its own styling and theming, those apps wouldn’t look consistent in Budgie’s styling. - -That is correct. Because these rounded corners with budgie/mate apps really look off. - -![Budgie desktop with GTK4-libadwaita and MATE apps][3] - -So, from this release onwards, the default app sets are slowly moving away from GNOME Apps to native or MATE apps/alternatives. - -For Example, GNOME Calculator and System Monitor are now replaced by Mate Calculator and Mate system monitor. Atril document viewer replaces Evince reader. In addition, font-manager replaces GNOME Font Viewer, and a list of other GNOME apps are in “wait and watch” mode. They may get replaced in upcoming Budgie desktop point releases. - -However, the text editor is still Gedit in this version, which is already a [great choice][4]. And a new native screenshot application debuts with a tweak tool for Raspberry Pi devices. - -If you want to learn more about this transition, read the discussion [here][5]. - -So, that’s about the core changes in this release and here’s a quick summary of Ubuntu Budgie alongside other applications. - -### Summary of the core items of Ubuntu Budgie 22.10 - -#### Core and major items - -* [Ubuntu 22.10][6] -* Linux Kernel 5.19 -* Budgie desktop version 10.6.4 -* Firefox 105.0.1 (Snap version) -* Thunderbird 102.3.2 -* LibreOffice 7.4.2.3 - -#### Other changes - -* Pipewire replacing PulseAudio. The PulseAudio package is removed from ISO. -* WebP support by default -* New Tweak Tool for ARM devices (Raspberry Pi) -* Tilix Terminal 1.9.5 -* Transmission torrent client 3.0.0 -* GNOME Software 43.0 - -Finally, you can download Ubuntu Budgie 22.10 Beta from the below link. Also you can try out the Raspberry Pi beta image as well. - -* [Link to the beta build][7] -* [Link to Raspberry Pi build][8] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/ubuntu-budgie-22-10-features/ - -作者:[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/10/Ubuntu-Budgie-22.10-KInetic-Kudu-Desktop-1024x578.jpg -[2]: https://www.debugpoint.com/linux-kernel-5-19/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Budgie-desktop-with-GTK4-libadwaita-and-MATE-apps.jpg -[4]: https://www.debugpoint.com/gedit-features/ -[5]: https://discourse.ubuntubudgie.org/t/default-applications-review-for-22-10-23-04-and-beyond/5883 -[6]: https://www.debugpoint.com/ubuntu-22-10/ -[7]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/kinetic/beta/ -[8]: https://sourceforge.net/projects/budgie-remix/files/budgie-raspi-22.10/ diff --git a/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md b/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md deleted file mode 100644 index 552185aee7..0000000000 --- a/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md +++ /dev/null @@ -1,193 +0,0 @@ -[#]: subject: "Celebrating KDE’s 26th Birthday With Some Inspiring Facts From Its Glorious Past!" -[#]: via: "https://itsfoss.com/kde-facts-trivia/" -[#]: author: "Avimanyu Bandyopadhyay https://www.gizmoquest.com" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Celebrating KDE’s 26th Birthday With Some Inspiring Facts From Its Glorious Past! -====== - -Wishing a Very Happy Birthday to **KDE**! - -Let us celebrate this moment by looking back on its glorious history with some inspiring facts on this legendary and much-loved Desktop Environment! - -![kde birthday][1] - -### KDE’s Origin - -**26 years ago**, [Matthias Ettrich][2] (a German Computer Scientist currently working at [HERE][3]) founded KDE. - -![matthias 2950607241][4] - -When Matthias was a student at the [Eberhard Karls University of Tübingen][5], he was not satisfied as a [Common Desktop Environment (CDE)][6] user. - -CDE is a desktop environment for Unix. - -However, he wanted an interface that was more comfortable, simpler, and easy to use, with a better look and feel. - -So, in 1996, Matthias Ettrich announced the **Kool Desktop Environment (KDE)**, a GUI (graphical user interface) for Unix systems, built with Qt and C ++. - -Note that the full form of KDE was an innocent pun intended to CDE at the time. You do not usually say it as “Kool Desktop Environment”, just KDE as of now. You can read the [original announcement post][7] to get a dose of nostalgia. - -**Trivia**: The official mascot of KDE is Konqi who has a girlfriend named Katie. Previously there used to be a wizard named [Kandalf][8] but was later replaced by Konqi because many people loved and preferred the mascot to be this charming and friendly dragon! - -![Konqi is KDE's mascot. Katie is his girlfriend and mascot of KDE women's project.][9] - -[Konqi][10] - -[Katie][11] - -And, here’s how it looked like with KDE mascot: - -![Screenshot of earlier version of KDE desktop][12] - -### 13 Interesting and Inspiring Facts on KDE - -We’ve looked back into some interesting yet inspiring events that took place over the last 26 years of the KDE project: - -#### 1. Early Development Events - -15 developers met in Arnsberg, Germany, in 1997, to work on the KDE project and discuss its future. This event came to be known as [KDE One][13] followed by [KDE Two][14] and [KDE Three][15] and so on in the later years. They even had [one][16] for a beta version. - -#### 2. The KDE Free Qt Foundation Agreement - -The foundation agreement for the [KDE Free Qt Foundation][17] was signed by [KDE e.V.][18] and [Trolltech][19], then owner of the Qt Foundation who [ensured the permanent availability][20] of Qt as free software. - -#### 3. First Stable Version - -![kde 1][21] - -The [first stable version][22] of KDE was released in **1998**, in addition to highlighting an application development framework, the [KOM/OpenParts][23], and an office suite preview. You can check out the [KDE 1.x Screenshots][24]. - -#### 4. The KDE Women Initiative - -The community women’s group, [KDE Women][25], was created and announced in March 2001 with the primary goal to increase the number of women in free software communities, particularly in KDE. - -#### 5. 1 Million Commits - -The community [reached 1 million commits][26] within a span of only 19 months, from 500,000 in January 2006 and 750,000 in December 2007, with the launch of KDE 4 at the same time. - -#### 6. Release Candidate of Development Platform Announced - -A [release candidate][27] of KDE’s development platform consisting of basic libraries and tools to develop KDE applications was announced on October 2007. - -#### 7. First KDE & Qt event in India - -The [first conference][28] of the KDE and Qt community in India happened in Bengaluru in March 2011 that became an annual event henceforth. - -#### 8. GCompris and KDE - -In **December 2014**, the educational software suite [GCompris joined][29] the [project incubator of KDE community][30] (We have [previously][31] discussed GCompris, which is bundled with Escuelas Linux, a comprehensive educational distro for teachers and students). - -#### 9. KDE Slimbooks - -In **2016**, the KDE community partnered with a Spanish laptop retailer and [announced the launch of the KDE Slimbook][32], an ultrabook with KDE Plasma and KDE Applications pre-installed. Slimbook offers a pre-installed version of [KDE Neon][33] and [can be purchased from their website][34]. - -#### 10. Transition to GitLab - -In **2019**, KDE [migrated][35] from Phabricator to GitLab to enhance the development process and let new contributors easy access to the workflow. However, KDE still uses bugzilla for tracking bugs. - -#### 11. Adopts Decentralized Matrix Protocol - -KDE added Matrix bridge to the IRC channels and powered up its native chat clients using the open-source decentralized Matrix protocol in **2019**. - -#### 12. KDE PinePhone - -KDE developers teamed up with [PINE64][36] in **2020** to introduce a community edition PinePhone powered by KDE. - -#### 13. Valve Picks KDE for Steam Deck - -Steam Deck is undoubtedly a super trending Linux gaming console right now. And, Valve chose KDE as its desktop environment to make it work in **2021**. - -### Today, KDE is Powered by Three Great Projects - -#### KDE Plasma - -Previously called Plasma Workspaces, KDE Plasma facilitates a unified workspace environment for running and managing applications on various devices like desktops, netbooks, tablets or even [smartphones][37]. - -Currently, [KDE Plasma 5.26][38] is the most recent version and was released some days ago. The KDE Plasma 5 project is the fifth generation of the desktop environment and is the successor to KDE Plasma 4. - -#### KDE Applications - -KDE Applications are a bundled set of applications and libraries designed by the KDE community. Most of these applications are cross-platform, though primarily made for Linux. - -A very [nice][39] project in this category is a music player called Elisa focused on an optimised integration with Plasma. - -#### KDE Development Platform - -The KDE Development Platform is what significantly empowers the above two initiatives, and is a collection of libraries and software frameworks released by KDE to promote better collaboration among the community to develop KDE software. - -**Personal Note**: It was an honour covering this article on KDE’s Birthday and I would like to take this opportunity to brief some of my personal favourite KDE based apps and distros that I have extensively used in the past and continue to. - -Check out the entire [timeline][40] in detail here for a more comprehensive outline or you can take a look at this 19-year visual changes in this interesting video: - -![A Video from YouTube][41] - -### Best KDE-Based Distributions - -If you have heard all the good things about KDE, you should try out the distributions powered by KDE. - -We have a [list of Linux distributions based on KDE][42], if you are curious. - -*Hope you liked our favourite moments in KDE history on their 26th Anniversary! Please do write about any thoughts you might have about any of your memorable experiences with KDE in the comments below.* - -This article was originally published in 2018, and has been edited to reflect latest information. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/kde-facts-trivia/ - -作者:[Avimanyu Bandyopadhyay][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.gizmoquest.com -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/10/kde-birthday.png -[2]: https://en.wikipedia.org/wiki/Matthias_Ettrich -[3]: https://here.com/ -[4]: https://itsfoss.com/wp-content/uploads/2022/10/matthias-2950607241.jpg -[5]: https://www.uni-tuebingen.de/en -[6]: https://en.wikipedia.org/wiki/Common_Desktop_Environment -[7]: https://kde.org/announcements/announcement/ -[8]: https://en.wikipedia.org/wiki/Konqi#Kandalf -[9]: https://itsfoss.com/wp-content/uploads/2018/10/Konqi-and-Katie.jpg -[10]: https://en.wikipedia.org/wiki/Konqi -[11]: https://community.kde.org/Katie -[12]: https://itsfoss.com/wp-content/uploads/2018/10/Konqi-from-the-early-days-who-replaced-Kandalf-right.jpg -[13]: https://community.kde.org/KDE_Project_History/KDE_One_(Developer_Meeting) -[14]: https://community.kde.org/KDE_Project_History/KDE_Two_(Developer_Meeting) -[15]: https://community.kde.org/KDE_Project_History/KDE_Three_(Developer_Meeting) -[16]: https://community.kde.org/KDE_Project_History/KDE_Three_Beta_(Developer_Meeting) -[17]: https://www.kde.org/community/whatiskde/kdefreeqtfoundation.php -[18]: https://www.kde.org/announcements/fsfe-associate-member.php -[19]: https://dot.kde.org/2007/02/28/trolltech-becomes-first-corporate-patron-kde -[20]: https://dot.kde.org/2016/01/13/qt-guaranteed-stay-free-and-open-%E2%80%93-legal-update -[21]: https://itsfoss.com/wp-content/uploads/2022/10/kde-1.jpg -[22]: https://www.kde.org/announcements/announce-1.0.php -[23]: https://www.kde.org/kdeslides/Usenix1998/sld016.htm -[24]: https://czechia.kde.org/screenshots/kde1shots.php -[25]: https://community.kde.org/KDE_Women -[26]: https://dot.kde.org/2009/07/20/kde-reaches-1000000-commits-its-subversion-repository -[27]: https://www.kde.org/announcements/announce-4.0-platform-rc1.php -[28]: https://dot.kde.org/2010/12/28/confkdein-first-kde-conference-india -[29]: https://dot.kde.org/2014/12/11/gcompris-joins-kde-incubator-and-launches-fundraiser -[30]: https://community.kde.org/Incubator -[31]: https://itsfoss.com/escuelas-linux/ -[32]: https://dot.kde.org/2017/01/26/kde-and-slimbook-release-laptop-kde-fans -[33]: https://en.wikipedia.org/wiki/KDE_neon -[34]: https://slimbook.es/en/store/slimbook-kde -[35]: https://pointieststick.com/2020/05/23/this-week-in-kde-we-have-migrated-to-gitlab/ -[36]: https://www.pine64.org -[37]: https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp -[38]: https://news.itsfoss.com/kde-plasma-5-26-release/ -[39]: https://mgallienkde.wordpress.com/2018/10/09/0-3-release-of-elisa-music-player/ -[40]: https://timeline.kde.org/ -[41]: https://youtu.be/1UG4lQOMBC4 -[42]: https://itsfoss.com/best-kde-distributions/ diff --git a/sources/tech/20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md b/sources/tech/20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md deleted file mode 100644 index abb6345f04..0000000000 --- a/sources/tech/20221017.0 ⭐️⭐️ Top 10 Best Linux Distributions in 2022 For Everyone.md +++ /dev/null @@ -1,221 +0,0 @@ -[#]: subject: "Top 10 Best Linux Distributions in 2022 For Everyone" -[#]: via: "https://www.debugpoint.com/best-linux-distributions-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Best Linux Distributions in 2022 For Everyone -====== - -**We compiled a list of the 10 best Linux distributions for everyone in 2022 based on their stability, attractiveness and time required to configure after installation.** - -The Linux Distribution space is heavily fragmented to the point that a new fork is being created almost daily. A very few of them are unique and bring something different to the table. Most of them are just the same Ubuntu or Debian based with a different theme or a wrapper. - -The Linux distro landscape is so dynamic that it changes every month. Some Linux distributions become more stable with ever-changing packages and components, while others become unstable in quality. Hence, it’s challenging to pick and choose the best Linux distribution for your school, work or just casual browsing, watching movies, etc. Not to mention, many Linux distributions are discontinued yearly due to a lack of contributions, cost overruns and other reasons. - -That said, we compiled the below 10 best Linux distributions in 2022, which are perfect for any user or use case. That includes casual dual-boot users with Windows 10 or 11, students, teachers, developers, creators, etc. Take a look. - -### Best Linux Distributions of 2022 - -#### 1. Fedora KDE - -The first Linux distribution, which I think is the best on this list, is Fedora Linux KDE Edition. The primary reason is that Fedora Linux is very stable with the latest tech, and KDE Plasma is super fast and perfect for all users. Moreover, this Fedora and KDE Plasma combination doesn’t require further modification or tweaks after installation. Over the last couple of releases and after the latest [Fedora 36][1] release feedback, Fedora Linux with KDE Plasma has become the go-to distribution for every possible use case and workflow. - -In addition, KDE Plasma also brings KDE Applications and goodies, eliminating additional software you need. And with the help of Fedora repo and [RPM Fusion][2], you can blindly trust Fedora Linux with KDE Edition for your daily driver. - -[![Fedora KDE Edition - Best Linux Distributions of 2022][3]][4] - -On a side note, you can also consider the [Fedora Linux workstation][5] edition with GNOME if you prefer a GNOME-styled desktop. In addition, you might consider other [Fedora Spins][6] or [Fedora Labs][7] if you like a different desktop flavour. - -You can download Fedora KDE Edition here. Other downloads with [torrent details][8] are present here. - -[Download Fedora][9] - -#### 2. KDE Neon - -The second distribution we would like to feature in this list is KDE Neon. The KDE Neon is based on the Ubuntu LTS release at its base. But the KDE Framework and KDE Applications with KDE Plasma desktop are the latest from the team. The primary reason for featuring this is that it is perfect for you if you want a Ubuntu LTS base distribution but want the latest KDE Applications. In fact, you can use it for your daily driver for years to come, provided you keep your system up to date. - -In contrast, the Kubuntu LTS releases are also perfect. But they may not have the latest KDE Framework or applications. - -[![KDE Neon - Best Linux Distributions of 2022][10]][11] - -You can download the KDE Neon at the below link. Make sure to choose the user edition while downloading. - -[Download KDE Neon][12] - -#### 3. Ubuntu LTS Releases with GNOME - -The Ubuntu LTS releases (with default GNOME Desktop) are the most used Linux Distribution today. It’s the most popular, most downloaded and used by users, enterprises and several real-world needs. - -There is no doubt about the Ubuntu LTS version’s power and stability. It has been time-tested. With the vast community support, Ubuntu LTS versions with customised GNOME might be the perfect fit for your needs. - -Most third-party applications and games primarily target Ubuntu, and you get a much bigger support base than all the distributions in this list. But the recent trends of decisions from Canonical (Ubuntu’s creator), such as forcing users to adopt Snap and other stuff, may raise a concern for you if you are an advanced user. - -But for casual users who want to browse the internet, watch movies, listen to music and do personal work, you can blindly trust Ubuntu LTS versions as your best Linux distribution. - -[![Ubuntu LTS with GNOME][13]][14] - -Finally, you can download Ubuntu 22.04 LTS (the current one) using the below link. - -[Download Ubuntu][15] - -#### 4. Linux Mint Cinnamon - -One of the Linux distributions that “just works” out-of-the-box in “any” type of hardware. The [Linux Mint][16] is fourth on this list. The above three distributions (Fedora, Ubuntu LTS) may not work well in older hardware (PC or Laptop) having low memory and older CPU. But Linux Mint is perfect in those use cases with its unique ability to make everyone welcome. - -Furthermore, with Linux Mint, you do not need to install any additional applications after a fresh install. It comes with every possible driver and utility for all use cases. For example, your printer, webcam, and Bluetooth would work in Linux Mint. - -In addition, if you are new to Linux or Windows users who plan to migrate, then it is a perfect distribution to start. Its legacy menu-driven Cinnamon desktop is one of the best open-source desktops today. - -[![Linux Mint Cinnamon Edition][17]][18] - -If you ever get confused or have no time to choose which distribution is best for you, choose the Linux Mint Cinnamon edition. With that said, you can download Linux Mint using the below link. - -[Download Linux Mint][19] - -#### 5. Pop OS - -The Pop OS is developed by American computer manufacturer System76 for their hardware lineup. But it is one of the famous and emerging Linux distributions based on Ubuntu. The Pop OS is primarily known to have perfect for modern hardware (including NVIDIA graphics) and brings some unique features absent in the traditional Ubuntu with GNOME desktop. - -For example, you get a well-designed COSMIC desktop with Pop OS (which is currently being written with Rust), a built-in tiling feature, well-optimized power controls, and a stunning Pop Shop. The Pop Shop is a software store designed by its maker to give you a well-categorized set of applications for your study, learning, development, gaming, etc. This distribution is also perfect for gaming if you plan to start your Linux journey with gaming in mind. - -In addition, if you want a professional-grade Linux distribution with official help and support, you should check out actual System76 hardware with Pop OS. - -[![Pop OS - Best Linux Distributions of 2022][20]][21] - -However, you can download the Pop OS for various hardware for free using the link below. - -[Download Pop OS][22] - -#### 6. MX Linux - -MX Linux is a well-designed Linux distribution primarily targeted at older hardware with productivity and stability in mind. It’s an emerging Linux distribution that is free from systemd and uses the init system. Based on the Debian Stable branch, it brings Xfce Desktop, KDE Plasma desktop and Fluxbox with its own powerful MX utilities. - -You can use MX Linux for all of your needs. But I would not recommend it for gaming or development work. If you need a stable Linux distribution for your older hardware, free from systemd, you can choose MX Linux. Especially the Fluxbox edition. - -[![MX Linux][23]][24] - -You can download MX Linux from its official website below. - -[Download MX Linux][25] - -#### 7. Endeavour OS - -If you like the concept of “Rolling release”, which gives you all the latest packages and operating system components, Arch Linux is perhaps the best you can have. However, installing Arch Linux might be tricky for new users, although the recent [archinstall][26] does a pretty job. - -However, EndeavourOS is a perfect Arch Linux-based distribution which features Xfce, KDE Plasma and other popular desktops out of the box. Armed with the Calamares installer, it is super easy to install Endeavour OS. - -However, this might not be the best Linux distribution for beginners. But it is the best one for little advanced users who are already familiar with Linux. - -On the brighter side, you get to say, “btw, I use Arch”. - -[![EndeavourOS - Best Linux Distributions of 2022][27]][28] - -Last but not least, EndeavourOS has excellent community support, and its Telegram channel support is the best in my personal experience. So, if you ever get stuck, help is just a message away. - -Download this excellent and emerging Linux distribution using the link below. - -[Download Endeavour OS][29] - -#### 8. Zorin OS - -Zorin OS is a Linux distribution based on Ubuntu Linux and is best for those who want nice looks, power, stability, and a productive system. In this Linux distribution, the default desktop is a blend of Xfce and GNOME 3, heavily customised. One of the advantages of Zorin is it comes with ready-made themes. With those themes, you can make Zorin OS look like Windows and macOS with just one click. - -This helps the new users easily migrate to Linux and use Zorin for their day-to-day work. - -[![Zorin OS - Best Linux Distributions of 2022][30]][31] - -Additionally, Zorin OS maintains three editions – Pro, Lite and Core, which cater to different user bases. The Pro edition is a paid version with additional themes and tweaks for a minimal fee. - -You can download Zorin OS from the below link. - -[Download Zorin OS][32] - -#### 9. Debian with Xfce - -There are many Linux distributions which are based on Debian. But I have included vanilla Debian in this list because of its excellent stability and power. Debian – termed a “Universal Operating System”, is perfect for moderately experienced users of Linux. But if you can set up a daily driver with Debian Stable with Xfce, you can run it for years without reformating or reinstalling for fear of breaking your system. - -Debian package repo contains all possible packages, which gives you the ultimate flexibility to set up any custom system you want. - -![Debian with Xfce Desktop][33] - -A perfect Linux distribution if you know how to set up a Debian box with some experience. You can download and install Debian after choosing the proper installer for your system here. Debian comes with an installer for several architectures. You may [read our guide][34]if you are confused about which one to choose and how to install it. - -[Download Debian][35] - -#### 10. Ubuntu Studio - -The final best Linux distribution we feature in this list is Ubuntu Studio. Ubuntu Studio is an official Ubuntu Linux distribution specially curated for Multimedia production type of work. - -Ubuntu Studio comes with the low-latency mainline Linux Kernel to give additional advantages to multiple operations. In addition, Ubuntu Studio brings its native “Ubuntu Studio Controls”, which provides creators with several options to tweak CPU settings for heavy CPU-intensive rendering and processing. - -[![Ubuntu Studio 22.04 LTS Desktop][36]][37] - -Moreover, a massive list of free and open-source audio, graphics, and video applications is pre-loaded into the ISO, saving time if you plan to build a multimedia workstation. - -Ubuntu Studio is powered by the KDE Plasma desktop, the perfect Linux distribution for all creators worldwide. - -You can download Ubuntu Studio from the below link. - -[Download Ubuntu Studio][38] - -### Closing Notes - -I hope this list of “curated and best Linux distributions” helps you pick one for yourself, your friends and co-workers. These are based on their current status (active project), prospects (i.e. it has a well-defined vision for the future) and how easy to set up and out-of-the-box experience. - -Finally, which Linux distribution should you think should be in the top 10? Let me know in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/best-linux-distributions-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/2022/02/fedora-36/ -[2]: https://www.debugpoint.com/2020/07/enable-rpm-fusion-fedora-rhel-centos/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-KDE-Edition-1024x640.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-KDE-Edition.jpg -[5]: https://getfedora.org/en/workstation/download/ -[6]: https://spins.fedoraproject.org/ -[7]: https://labs.fedoraproject.org/ -[8]: https://torrent.fedoraproject.org/ -[9]: https://spins.fedoraproject.org/kde/download/index.html -[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Neon-1024x578.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Neon.jpg -[12]: https://neon.kde.org/download -[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ubuntu-LTS-with-GNOME-1024x575.jpg -[14]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ubuntu-LTS-with-GNOME.jpg -[15]: https://ubuntu.com/download/desktop -[16]: https://www.debugpoint.com/linux-mint/ -[17]: https://www.debugpoint.com/wp-content/uploads/2022/05/Linux-Mint-Cinnamon-Edition-1024x576.jpg -[18]: https://www.debugpoint.com/wp-content/uploads/2022/05/Linux-Mint-Cinnamon-Edition.jpg -[19]: https://linuxmint.com/download.php -[20]: https://www.debugpoint.com/wp-content/uploads/2022/05/Pop-OS-1024x577.jpg -[21]: https://www.debugpoint.com/wp-content/uploads/2022/05/Pop-OS.jpg -[22]: https://pop.system76.com/ -[23]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux-1024x522.jpg -[24]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux.jpg -[25]: https://mxlinux.org/download-links/ -[26]: https://www.debugpoint.com/2022/01/archinstall-guide/ -[27]: https://www.debugpoint.com/wp-content/uploads/2022/05/EndeavourOS-1024x574.jpg -[28]: https://www.debugpoint.com/wp-content/uploads/2022/05/EndeavourOS.jpg -[29]: https://endeavouros.com/download/ -[30]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS-1024x575.jpg -[31]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS.jpg -[32]: https://zorin.com/os/download/ -[33]: https://www.debugpoint.com/wp-content/uploads/2022/05/Debian-with-Xfce-Desktop.jpg -[34]: https://www.debugpoint.com/2021/01/install-debian-buster/ -[35]: https://www.debian.org/distrib/ -[36]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-22.04-LTS-Desktop-1024x631.jpg -[37]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-Studio-22.04-LTS-Desktop.jpg -[38]: https://ubuntustudio.org/download/ diff --git a/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md b/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md deleted file mode 100644 index 7e8f5b4931..0000000000 --- a/sources/tech/20221027.4 ⭐️⭐️ 10 Lightweight Linux Distributions for your Old Hardware in 2022.md +++ /dev/null @@ -1,218 +0,0 @@ -[#]: subject: "10 Lightweight Linux Distributions for your Old Hardware in 2022" -[#]: via: "https://www.debugpoint.com/lightweight-linux-distributions-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -10 Lightweight Linux Distributions for your Old Hardware in 2022 -====== - -**We highlight a list of 10 lightweight Linux Distributions ideal for your older PC in 2022. We give you their features and what makes them perfect for reviving older hardware.** - -We believe that you should not throw away any hardware, especially PC and its components. Ideally, well-designed software should always run on any hardware. There are many [Linux Distributions][1] specifically designed for older hardware and PCs. And you can quickly revive them with the help of these Linux operating systems. In this post, we highlight ten such Linux Distributions which are lightweight and old hardware friendly in 2022. - -### 10 Lightweight Linux Distributions 2022 - -#### 1. Linux Lite - -The first lightweight Linux Distribution we feature in this list for 2022 is Linux Lite. Linux Lite is a continually developed and improved Linux Distribution based on Ubuntu and Debian. This decade-old Linux Distribution is perfect for your older hardware which needs a friendly and well-designed distro. The team markets this distro as an ideal starting point for Windows users who ends up with not supported hardware with Windows. The primary advantages of this distro are well customized and nice-looking Xfce desktop with an Ubuntu base, the latest Kernel and, of course, a 32-bit ISO image. - -![Linux Lite - Lightweight Linux Distributions][2] - -Linux Lite - -Advantages of Linux Lite: - -- Ubuntu-based -- Customized Xfce desktop -- Native applications -- 32-bit support -- Active development -- Minimum system requirement < 1 GB RAM - -[Download Linux Lite][3] - -#### 2. Puppy Linux - -The second distro that we feature in this list is Puppy Linux. Puppy Linux is a little different than traditional distros out there. It is designed to run from RAM without needing to install it in a physical system. If appropriately configured, you can save the sessions, plus it continues to work well even if you remove the bootable medium. - -![Puppy Linux - one of the best lightweight Linux Distribution in 2022][4] - -Puppy Linux – one of the best lightweight Linux Distribution in 2022 - -This Linux distro is binary compatible with Ubuntu LTS versions; the latest version is based on Ubuntu 20.04 LTS. Since Ubuntu dropped the 32-bit support, the newest version dropped the 32-bit version. - -Puppy Linux use cases are perfect for older computers, Netbooks, and hardware with less than 1GB of RAM. At the core, it is run by superfast JWM (Jow’s Window Manager), Puppy Package Manager that supports .deb, .rpm and its native PET packages. - -Overall, it’s a perfect and well-designed Linux Distribution for older hardware, hands down. - -Features: - -- Based on the Ubuntu LTS Version -- It can run on low-end Netbooks -- Works directly from RAM even after removing the bootable media -- Unique package manager – Puppy Package Manager -- Powered by JWM - -#### 3. BunsenLabs Linux - -The third lightweight Linux distro in this list is BunsenLabs Linux, a successor of the Crunchbang project. The BunsenLabs Linux is based on the Debian Stable branch, bringing modern applications to your low-end system. This distro provides a 32-bit version image for low-end systems and a standard 64-bit system for your regular hardware. At the core, BunsenLabds is powered by a pre-configured OpenBox window manager with a stunning tint2 panel, pre-configured Conky and jgmenu. - -![BunsenLabs Linux -Lightweight Linux Distribution ][5] - -BunsenLabs Linux - -This is a well-designed, superfast, stable and nice-looking distribution for older systems. - -Feature summary: - -- Based on Debian Stable branch -- Openbox window manager with tint2 panel, conky and jgmenu -- It provides a 32-bit installer -- Help and support are available via official forums - -[Download BunsenLabs Linux][6] - -#### 4. Lubuntu - -Lubuntu is famous for being a lightweight Linux Distribution. It is an official Ubuntu Linux flavour that features the lightweight LxQt desktop environment. Lubuntu gives you modern Ubuntu Linux packages and technology while it features the LxQt for your low-end hardware. Although it might require some extra system resources compared to other distros in this list, it is still a go-to Linux distro for older hardware. - -![Lubuntu - Lightweight Linux Distribution ][7] - -Lubuntu - -If you need a moderately lighter Linux Distribution which is stable and works out of the box, then choose Lubuntu. - -[Download Lubuntu][8] - -#### 5. Absolute Linux - -The fifth lightweight Linux distribution is Absolute Linux, based on Slackware Linux. This distro packages all necessary day-to-day applications in its installer image so that you get a complete distro out of the box. Absolute Linux features the IceWM and ROX Desktop, which gives you ultimate speed while using it on your older hardware. It is systemd-free, which offers an extra advantage over other distributions. - -![Absolute Linux - Lightweight Linux Distributions][9] - -Absolute Linux - -Feature Summary: - -- Based on Slackware -- Systemd-free -- Packages necessary software -- Powered by IceWM and package manager Slapt-get - -[Download Absolute Linux][10] - -#### 6. antiX Linux - -Yet another lightweight Linux distribution we want to highlight is antiX Linux. The antiX Linux is based on Debian stable branch and has several attractive features. At its core, it uses IceWM, Fluxbox, and ROX Desktop options, giving you an excellent and fast desktop experience. It is entirely systemd-free and uses sysVinit and runit system. The antiX Linux also gives you a 32-bit installer and has four variants – Full, Core, Base and net catering to different use cases. - -![antiX Linux - Lightweight Linux Distributions][11] - -antiX Linux - -Features: - -- Based on Debian stable -- It provides a 32-bit installer -- Systemd free -- Powered by IceWM and other window manager flavours - -[Download antiX Linux][12] - -#### 7. LXLE - -The LXLE Linux is a spin of the Lubuntu LTS series with an LXDE desktop instead of an LXQt desktop. The choice of applications, installer and other features makes it a perfect distro for older hardware. It is ideal for reviving your old system with a stable Ubuntu-LTS base and a fast LXDE desktop environment. - -![LXLE Linux - Lightweight Linux Distributions][13] - -LXLE Linux - -However, in my personal opinion, I feel LXQt is a little faster than LXDE. Well, that feedback might be relative and can be different for you. There are not many Linux distributions today, which give you an LXDE flavour. Hence it is one of the unique and lightweight Linux distributions for your daily use. - -[Download LXLE][14] - -#### 8. Porteus Linux - -The Porteus Linux is a remix of Slackware Linux that features the old KDE 4.0+ desktop environment (before the KDE Plasma series). This superfast Linux distribution is perfect for your antique hardware because it is based on bleeding-edge Slackware and gives you a 32-bit version. This distro can run from Live USB or a CD, or any bootable media and comes with just 300 MB of installer size. - -If you love the old KDE (like me!) and Slackware simplicity, this is a perfect distro for you, even your new hardware. - -![Porteus Linux][15] - -Porteus Linux - -[Download Porteus Linux][16] - -#### 9. Q4OS - -Q4OS is a unique Linux Distribution in this list. It targets the older Windows systems, which have become obsolete today. Many older PCs used to run Windows XP and Windows 7. They no longer work well with Windows and some modern Linux Distributions because the modern and updated OS requires much more computing power and resources. - -Q4OS targets those use cases and give you a well-designed Linux Distribution with features such as a 32-bit installer, Windows installer, Trinity Desktop environments, pre-made Windows themes, etc. - -![Q4OS - KDE Plasma Edition][17] - -Q4OS – KDE Plasma Edition - -[Download Q4OS][18] - -#### 10. MX Linux - -The final Linux Distribution in this list is the famous MX Linux, which has made its features and uniqueness in recent times. However, I doubted whether I would list MX Linux as lightweight. Because in my opinion, it is a medium-weight Linux Distribution if you consider its KDE Plasma flavour. - -![MX Linux][19] - -MX Linux - -However, it has some features which make it a perfect candidate for lightweight Linux distributions. MX Linux is based on the Debian Stable branch and created with antiX components. It features its own MX Linux native applications for your additional workflow. You get KDE Plasma, Xfce and Fluxbox as desktop options. - -[Download MX Linux][20] - -### Summary & Conclusion - -If you look closely, most of the lightweight Linux distribution we listed here is based on Debian Linux. It is truly the “Universal Operating System”. Modern Linux Desktop Environments like GNOME 40+, and KDE Plasma with Systemd init systems are no longer compatible with older hardware. Also, as technology progresses, more software complexity is introduced, requiring higher-end systems. - -That said, I hope you get some idea about which lightweight Linux distributions to choose for your old laptop or PC from this list. Each of them serves different tastes and needs with one goal: to revive your older systems. So, take your pick. - -Cheers. - -Some image credit: Respective Linux Distributions - -This article, Top Ten Lightweight Linux Distributions of 2022, is filed under the [Top Ten List][21]. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/lightweight-linux-distributions-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/category/distributions -[2]: https://www.debugpoint.com/wp-content/uploads/2022/03/Linux-Lite.jpg -[3]: http://www.linuxliteos.com/ -[4]: https://www.debugpoint.com/wp-content/uploads/2022/03/Puppy-Linux-one-of-the-best-lightweight-Linux-Distribution-in-2022.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/BunsenLabs-Linux.jpg -[6]: https://www.bunsenlabs.org/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/03/Lubuntu.jpg -[8]: https://lubuntu.me/ -[9]: https://www.debugpoint.com/wp-content/uploads/2022/03/Absolute-Linux.jpg -[10]: https://www.absolutelinux.org/ -[11]: https://www.debugpoint.com/wp-content/uploads/2022/03/antiX-Linux-1024x640.jpg -[12]: https://antixlinux.com/ -[13]: https://www.debugpoint.com/wp-content/uploads/2022/03/LXLE-Linux.jpg -[14]: http://www.lxle.net/ -[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Porteus-Linux.jpg -[16]: http://www.porteus.org/ -[17]: https://www.debugpoint.com/wp-content/uploads/2022/03/Q4OS-KDE-Plasma-Edition.jpg -[18]: https://q4os.org/ -[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/MX-Linux-1.jpg -[20]: https://mxlinux.org/ -[21]: https://www.debugpoint.com/tag/top-10-list diff --git a/sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md b/sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md deleted file mode 100644 index d6b6fd5a35..0000000000 --- a/sources/tech/20221027.5 ⭐️⭐️ Top 10 Most Beautiful Linux Distributions [Featured].md +++ /dev/null @@ -1,216 +0,0 @@ -[#]: subject: "Top 10 Most Beautiful Linux Distributions [Featured]" -[#]: via: "https://www.debugpoint.com/beautiful-linux-distributions-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Most Beautiful Linux Distributions [Featured] -====== - -**We give you the top 10 beautiful Linux Distributions of 2022. They are a visual treat to your eyes while being a robust operating system.** - -The most fantastic thing about [Linux Distributions][1] is you can customize them to any extent to satisfy your visual needs. Whether based on Ubuntu or Fedora, you have all the tools you need to customize a Linux desktop. - -But, there are many Linux Distributions that looks stunning without any customization. The developers have made them so that you can experience the visual treat right after installation without any additional effort on customization. - -Hence, we compiled a list of the most beautiful Linux distributions you can try right now and give your PC a visual makeover. - -### Most Beautiful Linux Distributions of 2022 - -#### 1. Zorin OS - -The first Linux Distribution which we would like to feature is Zorin OS. The Zorin OS is a beautiful Linux distribution that uses Zorin Desktop based on GNOME. It is perfect for newcomers who want a nice desktop but are also productive at the same time. - -One unique feature of Zorin OS is its ability to transform its look to make it like any other operating system. That means the taskbar, application menu, and Dock can change with just one click option from its Layout settings, giving you the utmost flexibility and out-of-the-box experience while using ZorinOS. - -[Read more about Zorin OS][2] - -![Zorin OS 16 Desktop][3] - -Zorin OS 16 Desktop - -#### 2. Elementary OS - -The elementaryOS is one of the most beautiful Linux distributions today based on Ubuntu Long Term Support (LTS) release. This Linux Distribution uses the stunning Pantheon Desktop environment, whose look and feel is inspired by macOS. - -The elementary OS is perfect for those coming from macOS to the Linux world as they would find many things familiar, such as gestures and window decorations. - -However, you may not find many customization options available in elementary OS settings. You may need to depend on external script commands to make further customization. However, the default looks are beautiful and serve their purpose for the majority of users. - -The most significant advantage of elementary OS is its curated app store. The App Store provides you with all categories of applications specially designed for the elementary OS, which looks and works great. - -[Read more about elementaryOS][4] - -![elementary OS 6 ODIN Desktop][5] - -elementary OS 6 ODIN Desktop - -#### 3. Deepin OS - -The third distribution which we would like to highlight is Deepin OS. The Deepin OS is based on Debian and was created by Deepin Technology Co from China. It uses its own Deepin Desktop Environment based on Qt. The Deepin desktop looks incredible with its widgets, colour schemes, window decorations, and wallpapers that give you an out-of-the-box visual treat. - -With its well-polished visual components, you may think that it looks almost similar to macOS. And thanks to the Debian “stable” branch, Deepin OS is the perfect choice if you want an excellent-looking Linux distribution with stability. - -Why is Deepin OS beautiful? - -- Awesome Qt-based Deepin Desktop -- Native widgets and dark theme support -- Several options to customize the Dock -- Transparency, Window effects, CursDockheme, Icon Theme support -- Accent Color - -[Read more about Deepin OS][6] - -![Deepin 20 Desktop][7] - -Deepin 20 Desktop - -#### 4. Cutefish OS - -**Note**: Cutefish OS is currently undergoing a team change and will take time to get a new release. [Learn more here][8]. - -The fourth Linux Distribution which we feature here is [CutefishOS][9]. This Debian and Ubuntu-based Linux distribution feature a natively developed Cutefish desktop. This Linux Distribution is currently under development. But its looks are already making waves across the user’s base. - -Under the hood, CutefishOS is built upon Qt and KDE Framework. This efficient Linux Distribution with Cutefish desktop features the global menu feature at the top bar out of the box. - -The customization options are still being worked on as its currently under development. But with the latest release, you get the native dark mode, accent colour, animation effects, and dock position (left, right, bottom), among other options. - -You may go ahead if you want to experiment with a nice desktop that looks completely different. Also, you may go over the complete review and tutorials of this desktop presented below. - -[Cutefish OS Review][10] - -![Cutefish OS][11] - -Cutefish OS - -#### 5. Manjaro KDE Plasma - -The Manjaro Linux KDE Edition is one of the best-looking Linux distributions today. Based on Arch Linux, Manjaro KDE Edition features the stock KDE Plasma desktop environment with some additional tweaks and widgets. The green colour palette of Manjaro gives you a fresh look and feel. You can customize further with built-in KDE tools and settings and change icons and themes from KDE Stores. - -The Manjar KDE Edition is a perfect combination of performance and beauty with the power of Arch Linux. And it is an ideal starting point for the new Arch Linux users. - -[Read more about Manjaro KDE Desktop][12] - -![Manjaro KDE Plasma][13] - -Manjaro KDE Plasma - -#### 6. Garuda Linux - -The famous Garduda Linux is the 6th OS on this list. Garuda Linux is based on Arch Linux and brings a beautiful desktop for you. It features all major desktop environments with custom-designed icon themes and colour palettes. This operating system uses Zen Kernel, optimized for performance in your hardware. - -The look and feel are stunning in Garuda Linux. The macOS style looks like you get out of the box. The combination of neon icon theme, lovely colour palette, blur and Transparency with the global menu is perfect for its own. - -One of the primary advantages of Garuda is it provides you with the choice of all desktop environments – KDE Plasma, GNOME, Xfce, LXQt, MATE and others. - -[Read more about Garuda Linux][14] - -![Garuda Linux][15] - -Garuda Linux - -#### 7. Linux Mint Cinnamon Edition - -We all love Linux Mint because of its simplicity, elegance and stability. It is one of the most widely used and famous Linux distributions today. And perhaps the most used Linux distribution after Ubuntu. However, it is not that fancy-looking if you compare this with other Linux Distributions here in this list. - -But the default Cinnamon desktop looks clean and perfect if you like the legacy user interface, which looks fantastic. - -The Linux Mint Cinnamon edition is perfect for all users, especially new users of Linux or even those are migrating from Windows. The default looks and feels with Mint’s green colour palette look refreshing. - -If you cannot decide on an eye-candy Linux distribution with stability, choose the Linux Mint Cinnamon edition without a doubt. - -[Read more about Linux Mint][16] - -![Linux Mint 20 - Cinnamon Edition Desktop][17] - -Linux Mint 20 – Cinnamon Edition Desktop - -#### 8. Nitrux OS - -[Nitrux Linux][18]is based on Debian, which features a modified version of the KDE Plasma desktop called NX Desktop. This unique Linux distribution brings its own set of Nitrux applications built upon Maui kit and Qt. Nitrux is systemd-free and uses OpenRC as an init system. With all these unique features and stunning looks, it is one of the best Linux distributions today. - -Nitrux OS’s default look is perfectly designed with a modified KDE Plasma desktop with Kvantum theme engine, icon theme, colour palette and cursor theme. The team behind Nitrux OS also brings a separate desktop called Maui Shell, a beautiful convergent desktop that adapts itself based on screen size. - -If you need a KDE Plasma desktop with out-of-the-box modification with stability, then go for Nitrux OS. You won’t be disappointed. - -[Read more about Nitrux OS][18] - -![Nitrux 2.0 + Desktop][19] - -Nitrux 2.0 + Desktop - -#### 9. Ubuntu Kylin - -The Ubuntu Kylin is an official Ubuntu flavour designed explicitly for Chinese people who use a simplified Chinese script. However, it supports another language as well. - -This modified Ubuntu flavour uses Ubuntu Kylin User Interface (aka UKUI). The UKUI desktop is created using Qt to support MATE Desktop components. - -Ubuntu Kylin looks elegant, and it would remind you of a combination of GNOME and KDE Plasma in terms of looks and design. - -It features a nicely designed icon set, bottom taskbar, nice application view, app switcher, rounded corner, and more These features are carefully crafted. - -[Read more about Ubuntu Kylin][20] - -![Ubuntu Kylin Desktop][21] - -Ubuntu Kylin Desktop - -#### 10. Pop OS - -The Pop OS is developed by System76, which manufactures computer hardware. This Ubuntu-based Linux Distribution comes pre-installed in all the System6 hardware. However, you can separately download and install it from its official repository in your system. - -The Pop OS features the default GNOME desktop with additional tweaks and configurations. This desktop features the pre-GNOME 40-era desktop with several extensions and tweaks pre-configured. For example, you get a bottom dock that can be configured to move around on the desktop, a launcher to launch applications, rounded corners and many such features. This desktop also features auto-tiling and optimized keyboard navigation to make you more productive. - -The look and feel are clean and beautifully designed with a colour palette, built-in dark mode, rounded corners in the application window, and an icon theme. - -[Read more about Pop OS][22] - -![Pop OS 21.10 Desktop][23] - -Pop OS 21.10 Desktop - -### Closing Notes - -I hope this list of beautiful Linux distributions of 2022 helps you decide which one you want for your desktop or laptop. Because these are already configured to look beautiful, they are powerful. - -Take your pick and start your Linux journey. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/beautiful-linux-distributions-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/category/distributions -[2]: https://zorin.com -[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/Zorin-OS-16-Desktop.jpg -[4]: https://elementary.io/ -[5]: https://www.debugpoint.com/wp-content/uploads/2021/08/elementary-OS-6-ODIN-Desktop.jpg -[6]: https://www.deepin.org/en/ -[7]: https://www.debugpoint.com/wp-content/uploads/2020/09/Deepin-20-Desktop.jpg -[8]: https://www.debugpoint.com/cutefish-development-restarts/ -[9]: https://en.cutefishos.com/ -[10]: https://www.debugpoint.com/2021/11/cutefish-os-review-2021/ -[11]: https://www.debugpoint.com/wp-content/uploads/2021/11/Cutefish-OS-1024x581.jpg -[12]: https://manjaro.org/downloads/official/kde/ -[13]: https://www.debugpoint.com/wp-content/uploads/2022/03/Manjaro-KDE-Plasma-1024x576.jpg -[14]: https://garudalinux.org/ -[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Garuda-Linux-1024x577.jpg -[16]: https://linuxmint.com/ -[17]: https://www.debugpoint.com/wp-content/uploads/2020/07/Linux-Mint-20-Cinnamon-Edition-Desktop.png -[18]: https://nxos.org/ -[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/Nitrux-2.0-Desktop-1024x581.jpg -[20]: https://www.ubuntukylin.com -[21]: https://www.debugpoint.com/wp-content/uploads/2022/03/Ubuntu-Kylin-Desktop.jpg -[22]: https://pop.system76.com/ -[23]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pop-OS-21.10-Desktop.jpg diff --git a/sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md b/sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md deleted file mode 100644 index 02cfb6ff2a..0000000000 --- a/sources/tech/20221102.3 ⭐️⭐️ Top 10 32-Bit Linux Distributions in 2022 [Compared].md +++ /dev/null @@ -1,255 +0,0 @@ -[#]: subject: "Top 10 32-Bit Linux Distributions in 2022 [Compared]" -[#]: via: "https://www.debugpoint.com/32-bit-linux-distributions/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 32-Bit Linux Distributions in 2022 [Compared] -====== - -**We list the best 32-bit Linux distributions that still support ancient systems.** - -### What is happening with 32-bit Linux Distros? - -Linux always supports older hardware, thanks to the community. But more and more Linux operating systems are dropping support for 32-bit systems mainly because it takes additional testing effort to keep another build apart from 64-bit, and the number of 32-bit systems is reducing daily. - -Most of the older hardware manufactured before 2007 has 32-bit architecture-based CPUs, which we mostly know as i386, i586, i486 and x86. However, the hardware manufactured after 2007 are primarily 64-bit and may term as modern. - -Recently, many famous and lightweight Linux distros dropped support for 32-bit architecture. But some projects are still strong and provide users with an option to run the older machines with full functionality. - -I will list the ten best Linux distros that still support 32-bit systems. - -### Top 10 32-bit Linux distros in 2022 - -#### 1. Debian - -Debian Linux is the foundation of hundreds of Linux distributions across multiple architectures. Millions use it as a desktop and server operating system. Debian is a “universal operating system” because it supports x86-64, arm64, armel,armhf, i386, mips, mipsel, mips64el, ppc64el, s390x architectures with work in progress for riscv64. - -In addition, it supports a wide range of hardware and includes free and non-free packages. On the desktop side, all the major [desktop environments][1] are available for you to install on your older hardware. - -Perhaps, it is the safest choice if you are looking for a vanilla 32-bit Linux distro experience. - -![Debian Logo][2] - -#### Why is Debian the best 32-bit distro? - -- Most popular and widely used -- Dependable and used by millions -- Well documentation, tutorials and user guides -- Proper framed future roadmap -- [Support for all architectures and platforms][3] - -[Download Debian][4] - -#### 2. MX Linux - -MX Linux is a systemd-free distro based on Debian stable branch. It is recently trending among users who want a clean system that supports older to modern hardware. - -MX Linux is popular because it’s carefully created to give you a perfect and stable system with its native applications and tools. - -![MX Linux][5] - -The team behind it gives a lot of thought while packaging the applications in this distro. Besides that, it is also based on antiX components and comes with KDE Plasma desktop, Xfce and Fluxbox. - -MX Linux is probably the best choice in this list because it is easy to download and use in older systems. - -![mx linux logo][6] - -#### Why is MX Linux the best? - -- Systemd free, hence faster -- Based on Debian stable, it gives a more stable system -- Unique in-house applications to help users with generic tasks -- 3 desktop flavour options to choose from -- Well-supported community and user-base - -[Download MX Linux][7] - -#### 3. Q4OS - -The third 32-bit Linux distro in this list is Q4OS. Q4OS is a unique Linux operating system based on Debian and brings KDE and Trinity desktop environments. It comes with a 32-bit installer which can be used to install. In addition, Q4OS also features a Windows installer where you can parallel run this distro inside WIndows. - -An exciting and related trivia about Q4OS is that it was created as an alternative to Windows XP when Microsoft discontinued it on 2014. And it’s still going strong and providing a stable 32-bit alternative to many users. - -![Q4OS Logo][8] - -#### Here are some of the critical advantages of Q4OS - -- Well-defined roadmap and unlikely to be discontinued -- Based on Debian and long-term support has been available for more than five years -- Provides KDE and Trinity desktop both (for those who like KDE 3) -- The unique installer gives the ability to install it inside Windows and take advantage of the entire hardware (not like in VM) -- Themes, Software centre, and third-party app installers are available - -[Download Q4OS][9] - -#### 4. NixOS - -The fourth Linux distro in this list of 32-bit distributions is NixOS, built on top of the Nix Package manager. This independent Linux distribution is perfect for DevOps and deployment pipeline tasks and supports atomic updates. It uses a configuration script for several tasks, including installation. - -That said, NixOS is not for the beginner or average Linux users, although it functions like other Linux distributions. It’s not designed to be an end-user Linux operating system. - -However, since it provides a 32-bit variant, it’s perfect for some use cases where you need to set up a remote server or pipeline in older hardware. You can learn more and download using the below link. - -[Download NixOS][10] - -#### 5. Void Linux - -Void Linux is an independent Linux distro (not depending on Debian or Fedora, etc.) which follows a unique rolling release model. It comes with X Binary Package System (XBPS), which helps you to install apps and packages directly from sources. In addition, it uses runit as init system, instead of systemd.  - -Void Linux provides a 32-bit installer with the latest packages alongside the usual 64-bit and ARM installation methods. Hence, you can quickly try it out on your older hardware. Moreover, Void Linux also support all major desktop environments, such as Xfce, Cinnamon, LXDE, LXQt and more. - -![Void Linux Logo][11] - -#### Here are some of the advantages of Void Linux - -- Independent distribution and free from Debian, Ubuntu or Fedora base -- Well-defined path for future updates and continuity -- Excellent XBPS package management system -- A rolling release-based distro which is stable -- All major desktop environments supported - -[Download Void Linux][12] - -#### 6. Zorin OS Lite 15.3 - -Zorin OS is an excellent and popular Linux distribution, a fusion of Xfce and GNOME 3 desktop. It comes with a Pro and Lite version. The Zorin OS Lite version provides a 32-bit installer at the moment. - -![Zorin OS - Best Linux Distributions of 2022][13] - -But there is a catch. Currently, the Zorin OS 15.3 Lite version only supports the 32-bit version. And its support ends on April 2023. - -After that, Zorin OS will not be supporting the 32-bit version anymore. The reason is it is based on Ubuntu LTS. And Ubuntu discontinued the 32-bit image from Ubuntu 20.04 LTS Focal Fossa version. - -Hence, you can use Zorin OS 15.3 Lite until April 2023 and take advantage of its beautiful desktop and additional features. - -[Download Zorin OS 15.3 Lite (32 bit)][14] - -#### 7. Porteus - -If you are a fan of the Old-KDE desktop and looking for a 32-bit operating system, then you can try Porteus Linux. Porteus is a Slackware Linux spin that features a KDE 4.0+ desktop environment. It is based on bleeding edge Slackware Linux and provides a fast desktop experience. Moreover, it can run from a Live USB/CD. The installer size is 300 MB, perfect for CD-based older hardware. - -![Porteus Logo][15] - -#### The reason why Porteus can be an ideal 32-bit Linux OS - -- Based on bleeding-edge Slackware Linux -- Enjoy the simplicity of Slackware -- Installer size can fit into a CD (300 MB only) -- Legacy KDE 4.0 Desktop support -- Can run off a USB or CD - -[Download Porteus Linux][16] - -#### 8. antiX - -The antiX Linux is slightly different on the desktop level than other 32-bit distros in this list. It is a lightweight Linux distribution based on Debian stable branch and brings some exciting features. First and foremost, it comes with a 32-bit installer, which has four variants – Full, Core, Base and Net. Secondly, it features famous primarily Windows Managers and Not desktop environments. Hence it is faster. - -The antiX Linux features IceWM, Fluxbox, and ROX desktop options. In addition, it is free of systemd and uses sysVinit & runit as init system. - -A perfect 32-bit Linux distribution that brings window manager, sydtemd-free and Debian base. - -![Antix Logo][17] - -#### Why is antiX an excellent 32-bit distro? - -- Provides stability with Debian stable branch -- Provides a 32-bit installer with four variants -- Systemd free distribution  -- Window manager support, rather than desktops - -[Download antiX][18] - -#### 9. BunsenLabs Linux - -Remember the famous Crunchbang project? The BunsenLabs Linux is a successor of the Crunchbang project based on the Debian stable branch. Like antiX, it also features Windows Manager rather than desktop environments. It brings Openbox Window manager with an excellent tint2 panel at its core. In addition, some goodies such as Conky presets, jgmenu makes it a well-designed 32-bit distro for that ancient hardware. - -![BunsenLabs Logo][19] - -#### Why is BunsenLabs the best? - -- Powered by Debian stable branch -- Openbox Window manager is for the desktop experience -- Pre-configured Concky with tint2 panel, jgmenu -- A good amount of help and support is available - -[Download BunsenLabs][20] - -#### 10. Alpine Linux - -A list of 32-bit Linux distributions is incomplete without Alpine Linux. Alpine Linux is an almost two-decade-old Linux distro created for developers and power users. It’s unique and provides a 32-bit variant among other architectures. - -At its core, it uses musl and BusyBox instead of GNU tools and packages. Also, Alpine uses OpenRC as init system. - -This independent Linux is perfect for containers and hypervisors and boasts about its security. Perhaps, not so suitable for usual desktop usage. However, the popular PostmarketOS mobile Linux OS platform is based on Alpine Linux. - -![Alpine Logo][21] - -#### Alpine Linux advantages - -- Independent Linux distro -- Not based on GNU toolchain (uses musl and BusyBox) -- APK package manager -- Suitable for containers and Hypervisors -- Well secured at the core level - -[Download AlpineLinux][22] - -### List of significant distros that dropped support of 32-bit recently - -Since you went thru the above list, it’s always to remember that a bunch of distros which depended on Ubuntu dropped their 32-bit support. From the version Ubuntu 20.04 Focal Fossa, Ubuntu officially closed the support for 32-bit. Hence all the Ubuntu-LTS variants are also forced to follow this decision. - -Here’s a brief list of awesome distros which unfortunately discontinued the 32-bit support in the recent past. - -- Linux Mint 20 and above -- Puppy Linux 9.5 and above -- Ubuntu 20.04 LTS Focal Fossa and above -- All the official Ubuntu flavours (such as Lubuntu and Xubuntu) from 20.04 onwards - -### Closing Notes - -You can rest assured that there will always be support for 32-bit Linux distributions to support older hardware. If a day comes when all distro stops support, Debian will always support all hardware possible. That’s the beauty of Debian. - -Also, other niche distros, such as Puppy and Void Linux – will continue to support 32-bit hardware in the coming days. Because they are built with this purpose only. - -Finally, I hope this list helps you to pick the best 32-bit distro for your PC or hardware. Also, don’t forget to check out the [best lightweight distros][23] for older hardware which contain 64-bit distros for older hardware. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/32-bit-linux-distributions/ - -作者:[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/category/desktop-environment -[2]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_debian.png -[3]: https://www.debugpoint.com/install-debian-buster/ -[4]: https://www.debian.org/distrib/ -[5]: https://www.debugpoint.com/wp-content/uploads/2022/05/MX-Linux.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/mx-linux-logo-2.png -[7]: https://mxlinux.org/download-links/ -[8]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_q4os_lightblue.png -[9]: https://www.q4os.org/downloads1.html -[10]: https://nixos.org/ -[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_void.png -[12]: https://voidlinux.org/download/ -[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Zorin-OS.jpg -[14]: https://zorin.com/os/download/15/lite/32/ -[15]: https://www.debugpoint.com/wp-content/uploads/2022/07/Porteus-Logo.png -[16]: http://www.porteus.org/ -[17]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_antix.png -[18]: https://antixlinux.com/download/ -[19]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_bunsenlabs_yellow_black.png -[20]: https://www.bunsenlabs.org/installation.html -[21]: https://www.debugpoint.com/wp-content/uploads/2022/07/512_alpine.png -[22]: https://alpinelinux.org/downloads/ -[23]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ diff --git a/sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md b/sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md deleted file mode 100644 index efc97c43b2..0000000000 --- a/sources/tech/20221104.1 ⭐️ How to Make LibreOffice Look Like Microsoft Office.md +++ /dev/null @@ -1,112 +0,0 @@ -[#]: subject: "How to Make LibreOffice Look Like Microsoft Office" -[#]: via: "https://www.debugpoint.com/libreoffice-like-microsoft-office/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Make LibreOffice Look Like Microsoft Office -====== - -**We attempted to make the LibreOffice suite look like Microsoft Office. Is it possible? Let’s find out.** - -[LibreOffice][1] is a free and open-source office productivity suite that provides you with a complete collection of applications. It consists of a Word processor (Writer), a spreadsheet program (Calc), Presentation (Impress), and a drawing program (Draw). It also gives you a stand-alone database system LibreOffice Base while LibreOffice Math is a program that helps students and researchers write formulas and equations. - -While the widely used [Microsoft Office][2] is a paid office productivity suite that gives you excellent programs to perform almost all tasks related to study, office, and enterprise usage. - -Adopting LibreOffice is sometimes difficult compared to Microsoft Office – although most of the menu items and tools are the same. Both programs are different, but their objective is the same in terms of functionality. Due to its popularity, Microsoft office is used widely and is well-known to users. However, many users prefer the free LibreOffice for their work and activities. - -That said, if you can make LibreOffice look like Microsoft Office, it is much easier for first-time users to adopt – mostly coming from a Microsoft Office background. The look and feel play a big part in users’ minds, including their muscle memory, familiarity with colours, and menu items. - -Of course, you can not make it exactly like Microsoft Office because of the different icons, fonts, etc. However, you can make it look up to a certain amount. - -### Make LibreOffice Look Like Microsoft Office - -#### 1. User Interface changes - -LibreOffice has a “Ribbon” style toolbar called Tabbed Bar. However, it has many toolbar options (see below). For this guide, I have used the Tabbed bar option. - -- Open LibreOffice and go to `Menu > View > User Interface`. -- Select `Tabbed` from the UI Section. - -![tabbed bar option][3] - -- Click on Apply to All. -- LibreOffice also provides an option to apply the toolbar type-specific to Writer or Calc. If you want a different toolbar type, you can choose that way. But I would recommend using the Apply to All to make it consistent. - -- Now you should have the Microsoft Office-style Ribbon. Although they are not precisely the same, you get the feel of it. - -#### 2. Microsoft Office Icons for LibreOffice - -The Icons in the toolbar play a big part in your workflow. LibreOffice provides some nice icons for your toolbar. The best ones are the – - -- Karasa Jaga -- Colibre -- Elementary - -For this guide, we will use Office 2013 icon set, which an author develops. It is available in Devian Art. - -- Go to the below link and download the LibreOffice extension file (*.oxt). For the newer versions of LibreOffice, you need to use extension files to install icon sets. - -[download office 2013 icon sets for libreoffice][4] - -- After downloading, double-click the .oxt file to open. Or, press CTRL+ALT+E to open the Extension Manager and select the downloaded .oxt file using the Add button. Close the window once done. - -![Import icon sets in Extension Manager][5] - -- Now go to `Tools > Options > View`. From the Icon style, choose Office 2013. - -- Change the icon size via `Icon Size > Notebookbar > Large`. If you feel the icons are small, you can change them. However, I think to make it more Office-like, the large settings work better. - -![Change icons in Options][6] - -And that’s it. Your LibreOffice installation should look like this. - -![Making LibreOffice look like Microsoft Office in KDE Plasma][7] - -![Making LibreOffice look like Microsoft Office in Windows 10][8] - -![Making LibreOffice look like Microsoft Office in GNOME][9] - -Remember, the looks may be different if you are using Ubuntu, KDE Plasma, or any Linux distribution. But I think it looks closer to Microsoft Office in KDE Plasma than GNOME. LibreOffice doesn’t look good in GTK-based systems at the moment. - -In Windows, however, it looks better because it uses a system font and colour palette. - -These are some settings that you can use. However, you can play around with more customizations, icons, and themes as you wish. If you fancy dark mode in LibreOffice, you may want to read our tutorial – on [how to enable dark mode in LibreOffice][10]. - -### Closing Notes - -Microsoft Office is undoubtedly the market leader in the Office productivity space. There is a reason for it, it comes with decades of development, and it’s not a free product. The latest Office 365 Home usage price is around ~7 USD per month for 3 to 4 devices, which is a bit pricy if you ask me. - -Whereas LibreOffice is free and community-developed and headed by The Document Foundation. It is not trying to be Microsoft Office, but it allows millions of users, schools, non-profits, colleges, and students to work and learn using a free office suite. Hence, the development is slower, and features arrive late. - -Hence, it is beneficial if it can mimic the basic look and feel to make it like Microsoft Office to increase LibreOffice’s adoption. And I hope this guide serves a little purpose in that direction. - -[Link: Official Feature comparison between LibreOffice and Microsoft Office.][11] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/libreoffice-like-microsoft-office/ - -作者:[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]: http://libreoffice.com -[2]: http://office.com -[3]: https://www.debugpoint.com/wp-content/uploads/2021/06/tabbed-bar-option.jpg -[4]: https://www.deviantart.com/users/outgoing?https://1drv.ms/u/s!ArgKmgFcmBYHhSQkPfyMZRnXX5LJ -[5]: https://www.debugpoint.com/wp-content/uploads/2021/06/Import-icon-sets-in-Extension-Manager.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/06/Change-icons-in-Options-1024x574.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-KDE-Plasma.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-Windows-10.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-GNOME.jpg -[10]: https://www.debugpoint.com/how-to-enable-dark-mode-libreoffice/ -[11]: https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office From e3f3fc2f209fe4b3b52b26d40a7467062b0dcb54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 25 Nov 2022 11:46:18 +0800 Subject: [PATCH 2098/3123] ALL @wxy https://linux.cn/article-15288-1.html --- .../20221004 5 Best Python IDE-s- and Code Editor-s-.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources/tech => published}/20221004 5 Best Python IDE-s- and Code Editor-s-.md (100%) diff --git a/sources/tech/20221004 5 Best Python IDE-s- and Code Editor-s-.md b/published/20221004 5 Best Python IDE-s- and Code Editor-s-.md similarity index 100% rename from sources/tech/20221004 5 Best Python IDE-s- and Code Editor-s-.md rename to published/20221004 5 Best Python IDE-s- and Code Editor-s-.md From 2c7bfb78aee512a0b20e7f82743f120a79f0f53e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 25 Nov 2022 11:51:41 +0800 Subject: [PATCH 2099/3123] ALL --- ...5 Best Python IDE-s- and Code Editor-s-.md | 221 ++++++++++-------- 1 file changed, 127 insertions(+), 94 deletions(-) diff --git a/published/20221004 5 Best Python IDE-s- and Code Editor-s-.md b/published/20221004 5 Best Python IDE-s- and Code Editor-s-.md index 0869aeb644..edd7c987d6 100644 --- a/published/20221004 5 Best Python IDE-s- and Code Editor-s-.md +++ b/published/20221004 5 Best Python IDE-s- and Code Editor-s-.md @@ -2,157 +2,187 @@ [#]: via: "https://www.debugpoint.com/5-best-python-ide-code-editor/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15288-1.html" -5 Best Python IDE(s) and Code Editor(s) +6 个最好的 Python IDE 和代码编辑器 ====== -We list the five best Python code editors for Ubuntu/Linux and Windows in 2022. -[Python][1] is everywhere today, and it is arguably the C programming language of the modern era. You can find Python everywhere, from websites, apps, data science projects, and AI to IoT devices. So being a popular programming language of this decade, it is essential to know the development environment of Python, where developers create applications, especially if you are starting afresh. +![][0] -Many Python development environments are available with features and utilities catering to your need. Some of them are useful for beginners learning Python by setting up the environment and other users for heavy Python development and complex setups. Here, in this post, I will touch upon the five best of them that would help you to pick one for your own need and use case. +> 我们列出了 2022 年适用于 Linux 和 Windows 的六个最佳 Python 代码编辑器。 -### Best Python Editor for Coding +如今,[Python][1] 无处不在,它可以说是现代版的 C 语言编程语言。从网站、应用程序、数据科学项目、人工智能到物联网设备,你可以发现 Python 无处不在。因此,作为这十年来流行的编程语言,了解 Python 的开发环境是很有必要的,开发人员用它创建应用程序,特别是如果你是刚刚开始学习 Python 编程,更需要了解 Python 开发环境。 -This top list features the following editors: +许多 Python 开发环境都提供了可以满足你需求的功能和工具。其中有些环境对学习 Python 的初学者很有用,而另外一些用户则适用于重型 Python 开发和复杂的设置。在这里,在这篇文章中,我将谈一谈其中最好的几个,这将有助于你根据自己的需要和使用情况选择一个。 -1. Eclipse -2. PyCharm -3. Spyder -4. Sublime Text -5. Thonny +### 最好的 Python 编码编辑器 -#### 1. Eclipse with PyDev +这个榜单上有以下几个编辑器: -![Eclipse Editor][2] +1. Visual Studio Code +2. Eclipse +3. PyCharm +4. Spyder +5. Sublime Text +6. Thonny -[Eclipse][3] is a free and open-source IDE developed by IBM. This complete IDE is used for Java and Android development. However, it supports many other programming languages, including Python. You can use Eclipse with the popular PyDev plugin, which enables you to convert Eclipse to a complete Python development environment. With PyDev integration in Eclipse, you can do the compilation, code analysis, live debugging, interactive console access, and many more features. +#### 1、Visual Studio Code -##### Advantage +![Visual Studio Code][46] -* Extensive features and complete Python development IDE. +尽管它是微软创造的,但 Visual Studio Code 是最好的代码编辑器之一。不仅是 Python,对于所有流行和趋势的编程语言都是。 -##### Disadvantage +它具有语法高亮、代码补完、调试、代码片段、内置 Git 等诸如此类的功能。对于新手来说,它有点复杂,但也只需几个小时就能学会。 -* A heavyweight on system performance. -* Targetted for advanced users. +然而,它是用 Electron 框架构建的,可能会感觉稍微慢一些。但在高端的开发硬件下这不是问题。它是一个自由开源的应用程序,适用于 Linux、macOS 和 Windows。 -##### Installation and more information +以下是适用于 Ubuntu、Fedora 和相关发行版的单个 deb 和 RPM 包: -* Platform: Linux -* Type: IDE -* Price: Free -* Source: Open Source -* Official Download link: [PyDev][4], [Eclipse][5] -* Official Website: [Eclipse][6], [PyDev Plugin][7] -* Flatpak: [Eclipse for Java is available as Flatpak via Flathub][8]. You can try this version after [setting up Flatpak.][9] +> **[下载 VS Code][47]** -#### 2. PyCharm Editor +你也可以为 Flatpak 设置你的系统,并从终端运行以下命令,在所有 Linux 发行版上安装它。 -![PyCharm Editor][14] +``` +flatpak install flathub com.visualstudio.code +``` -Developed by JetBrains, [PyCharm][15] provides intelligent code completion, code inspections, on-the-fly error highlighting, quick fixes, automated code refactorings, and rich navigation capabilities. +#### 2、带有 PyDev 的 Eclipse -PyCharm’s massive collection of tools out of the box includes an integrated debugger and test runner; Python profiler; a built-in terminal; integration with major VCS and built-in database tools; remote development capabilities with remote interpreters; an integrated ssh terminal; and integration with Docker and Vagrant. +![Eclipse 编辑器][2] -In addition to Python, PyCharm provides first-class support for various Python web development frameworks, specific template languages, JavaScript, CoffeeScript, TypeScript, HTML/CSS, AngularJS, Node.js, and more. +[Eclipse][3] 是一个由 IBM 开发的自由开源的 IDE。这个完备的 IDE 可用于 Java 和 Android 开发。然而,它也支持许多其他编程语言,包括 Python。你可以将 Eclipse 与流行的 PyDev 插件一起使用,它可以将 Eclipse 转换成一个完整的 Python 开发环境。通过将 PyDev 集成在 Eclipse 中,你可以进行编译、代码分析、实时调试、交互式控制台访问,以及更多的功能。 -PyCharm has two versions of installers. The professional version and a community version. The community version is free and open source. The professional version is not free as it comes with professional tools and extensive support. The professional edition has a monthly subscription version of <10 USD for individual use. +优势: -However, if you are a beginner, you can start with the free Community edition of PyCharm. +* 丰富的功能和完整的 Python 开发 IDE。 -For both Scientific and Web Python development. With HTML, JS, and SQL support. +劣势: -##### Advantage +* 对系统性能有很大影响。 +* 针对高级用户。 -* Advanced and modern editing capabilities for professionals that aid rapid developments. +安装和更多信息: -##### Disadvantage +* 平台:Linux、Mac 和 Windows +* 类型:集成开发环境 +* 价格:免费 +* 源代码:开源 +* 官方下载链接:[PyDev][4]、[Eclipse][5] +* 官方网站:[Eclipse][6]、[PyDev 插件][7] +* Flatpak:[Eclipse for Java 通过 Flathub 以 Flatpak 的形式提供][8],你可以在 [设置 Flatpak][9] 之后尝试这个版本 -* Most professional tools are available in the paid version (approximately 8 to 10 USD per month for individual use). +#### 3、PyCharm 编辑器 -##### Installation and additional information +![PyCharm 编辑器][14] -* Platform: Linux, Mac, and Windows -* Type: IDE -* Price: Free (Community edition) and Paid (Professional Edition) -* Source: Open Source (Community Edition) -* [Official Download link][16] -* Flatpak:You can install the [community version via Flathub][17] after [setting up your Linux system for Flatpak][18]. +由 JetBrains 开发的 [PyCharm][15] 提供了智能代码补完、代码检查、即时错误高亮、快速修复、自动代码重构和丰富的导航功能。 -#### 3. Spyder Editor +PyCharm 开箱即用的大量工具包括:集成的调试器和测试运行器;Python 剖析器;内置终端;与主要版本控制系统和内置数据库工具的集成;借助远程解释器提供的远程开发能力;集成 SSH 终端;以及与 Docker 和 Vagrant 的集成。 + +除了 Python,PyCharm 还为各种 Python 网页开发框架、特定模板语言、JavaScript、CoffeeScript、TypeScript、HTML/CSS、AngularJS、Node.js 等提供了一流的支持。 + +PyCharm 有两个版本的安装程序:专业版和社区版。社区版是自由开源的。专业版不是免费的,因为它带有专业工具和广泛的支持。专业版有一个不到 10 美元的月度订阅版本,供个人使用。 + +然而,如果你是一个初学者,你可以从 PyCharm 免费的社区版开始。 + +它适用于科学和网页 Python 开发。具有 HTML、JS 和 SQL 支持。 + +优势: + +* 为专业人士提供先进的现代编辑功能,有助于快速开发。 + +劣势: + +* 大多数专业工具都在付费版本中提供(个人使用时每月约 8 至 10 美元)。 + +安装和其他信息: + +* 平台:Linux、Mac 和 Windows +* 类型:IDE +* 价格:免费(社区版)和付费(专业版) +* 源代码:开源(社区版) +* [官方下载链接][16] +* Flatpak:你可以在 [为 Flatpak 设置你的 Linux 系统][18] 之后安装 [Flathub 提供的社区版本][17] + +#### 4、Spyder 编辑器 ![Spyder Editor][23] -[Spyder][24] is a powerful Python editor written in Python for Python. It is designed to be used by scientists, engineers, and data scientists. It offers a unique combination of a comprehensive development tool’s advanced editing, analysis, debugging, and profiling functionality with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package. +[Spyder][24] 是一个强大的 Python 编辑器,是用 Python 编写的。它是为科学家、工程师和数据科学家所设计的。它将综合开发工具的高级编辑、分析、调试和剖析功能与科学软件包的数据探索、交互式执行、深度检查和漂亮的可视化功能独特地结合起来。 -##### Advantage +优势: -* Lightweight and Free +* 轻量级和免费 -##### Disadvantage +劣势: -* You have to download it as part of the Anaconda package. No standalone installer. +* 你必须把它作为 Anaconda 软件包的一部分来下载。没有独立的安装程序。 -##### Installation and additional instructions +安装和其他说明: -* Platform: Anaconda -* Type: IDE -* Price: Free -* Source: Open Source -* [Official Download link][25] -* [Official Website][26] +* 平台:Anaconda +* 类型:IDE +* 价格:免费 +* 源代码:开源 +* [官方下载链接][25] +* [官方网站][26] -#### 4. Sublime Text +#### 5、Sublime Text ![Sublime Text][27] -[Sublime Text][28] is a sophisticated code editor with a Python programming interface. It is a cross-platform utility and natively supports many programming languages. You can extend its features and functionality using plugins. The sublime text comes with productivity-boosting features such as Goto anything, changes to multiple sections of your file simultaneously. +[Sublime Text][28] 是一个支持 Python 编程的复杂的代码编辑器。它是一个跨平台的工具,原生支持许多编程语言。你可以使用插件来扩展其特性和功能。Sublime Text 带有提高生产力的功能,如 “Goto anything”,可以同时对文件的多个部分进行修改。 -##### Advantages +优点: -* Lightweight, free, and available for Windows, Mac, and Linux. +* 轻量级、免费、可用于 Windows、Mac 和 Linux。 -##### Disadvantages +缺点: -* It is free to evaluate, but you must buy a license for advanced usage. +* 它是免费评估的,但你必须购买一个许可证来进行高级使用。(LCTT 译注:但可以一直免费评估,而不限制时间,只是会时不时提醒) -##### Additional information and installation +其他信息和安装: -* Platform: Windows, Linux, OS X -* Type: IDE -* Price: Free, but a license must be purchased for continuous use -* Source: Closed Source -* [Official Download link][29] -* [Official Website][30] -* Flatpak: Sublime Text is available via [Flathub as Flatpak][31]. Set up your [Linux system for Flatpak][32] and then install it. +* 平台:Windows、Linux、OS X +* 类型:IDE +* 价格:免费,但必须购买许可证才能继续使用 +* 源代码:闭源 +* [官方下载链接][29] +* [官方网站][30] +* Flatpak:Sublime Text 可以通过 [Flathub 以 Flatpak 软件包][31] 获得。设置你的 [Linux 上的 Flatpak][32],然后安装它。 -#### 5. Thonny Python Editor +#### 6、Thonny Python 编辑器 -![Thonny Editor][37] +![Thonny 编辑器][37] -[Thonny][38] is a beginner’s Python IDE and is simple to use. It comes with the latest Python (3.7+ as of writing) built-in, so you do not need to worry about installing Python separately in your operating system. The user interface is clutterless and distraction-free for beginners. Some of the other notable features of Thonny include – a variable view, simple debugger, steps, and syntax errors. +[Thonny][38] 是一个面向初学者的 Python IDE,使用起来很简单。它内置了最新的 Python(截至本文撰写时为 3.7+),所以你不需要在你的操作系统中单独安装 Python。用户界面毫不杂乱,对初学者来说没有任何干扰。Thonny 的其他一些显著特点包括:变量视图、简单调试器、单步调试和语法错误。 -##### Advantages +优点: -* Lightweight, free, and available for Windows, Mac, and Linux. -* Perfect for absolute beginners in Python (or even in coding). +* 轻量级、免费,可用于 Windows、Mac 和 Linux。 +* 非常适合 Python 的绝对初学者(甚至是编码的初学者)。 -##### Disadvantages +缺点: -* Available with basic features as it is a beginner’s IDE. +* 由于它是一个初学者的 IDE,所以只有基本的功能。 -##### Installation and additional info +安装和其他信息: -* Platform: Windows, Linux, Mac -* Type: IDE -* Price: Free -* Source: Open Source -* [Official Download link][39] -* Flatpak: It’s available as [Flatpak via Flathub][40]. Set up your [Linux system to install Flatpak][41], and they go for installing it. +* 平台:Windows、Linux 和 Mac +* 类型:IDE +* 价格:免费 +* 源代码:开源 +* [官方下载链接][39] +* Flatpak:它通过 [Flathub 以 Flatpak][40] 的形式提供。设置你的 [Linux 系统安装 Flatpak][41],然后去安装它。 + +--- + +有很多 Python 编辑器可用,这些是用于编码的六个最好的 Python 编辑器。你可以尝试其他值得注意的 Python 编辑器:VIM、IDLE(默认 Python 自带)、Cloud 9 和 Emacs。 + +🗨️ 你最喜欢哪个编辑器?请在下面的评论区告诉我们。 -------------------------------------------------------------------------------- @@ -160,8 +190,8 @@ via: https://www.debugpoint.com/5-best-python-ide-code-editor/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -212,3 +242,6 @@ via: https://www.debugpoint.com/5-best-python-ide-code-editor/ [43]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ [44]: https://flathub.org/apps/details/org.thonny.Thonny [45]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[46]: https://www.debugpoint.com/wp-content/uploads/2022/10/Visual-Studio-Code.jpg +[47]: https://code.visualstudio.com/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/25/114333wj3t354qjhrggrvw.jpg \ No newline at end of file From c1e3b81fe07dd17e9173692f5025cf82d1152b89 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Fri, 25 Nov 2022 20:44:57 +0800 Subject: [PATCH 2100/3123] APL --- ...w to Install Kubernetes Cluster on Debian 11 with Kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md b/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md index eafa316839..f8051c9d5b 100644 --- a/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md +++ b/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lxbwolf" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 19f1b3720160ef2f14d682ee807bfb592c28abcb Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Fri, 25 Nov 2022 21:46:00 +0800 Subject: [PATCH 2101/3123] TSL --- ...netes Cluster on Debian 11 with Kubeadm.md | 128 +++++++++--------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md b/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md index f8051c9d5b..d4c0604d27 100644 --- a/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md +++ b/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md @@ -7,36 +7,36 @@ [#]: publisher: " " [#]: url: " " -How to Install Kubernetes Cluster on Debian 11 with Kubeadm +如何用 Kubeadm 在 Debian 11 上安装 Kubernetes 集群 ====== -Are you looking for an easy guide for installing Kubernetes Cluster on Debian 11 (Bullseye)? +你是否在寻找一份在 Debian 11 (Bullseye) 上安装 Kubernetes 集群的简易指南? -The step-by-step guide on this page will demonstrate you how to install Kubernetes cluster on Debian 11 with Kubeadm utility. +本页的分步指南将向您展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。 -Kubernetes (k8s) cluster contains master and worker nodes which are used to run containerized applications. Master node works as control plan and worker nodes offers environment for actual workload. +Kubernetes(k8s)集群包含主节点和工作节点,用于运行容器化的应用程序。主节点作为控制平面,工作节点为实际工作负载提供环境。 -##### Prerequisites +##### 前置条件 -* Minimal Installed Debian 11 +* 已安装 Debian 11 * 2 CPU / vCPU * 2 GB RAM -* 20 GB free disk space -* Sudo User with Admin rights -* Stable Internet Connectivity +* 20 GB 空闲硬盘空间 +* 有管理员权限的 sudo 用户 +* 稳定的网络连接 -##### Lab Setup +##### Lab 配置 -For the demonstration, I am using three Debian 11 systems with following details, +在本文中,我使用了 3 个 Debian 11 系统的节点,配置如下 * Master Node (k8s-master) – 192.168.1.236 * Worker Node 1 (k8s-worker1) – 192.168.1.237 * Worker Node 2 (k8s-worker2) – 192.168.1.238 -Without any further delay, let’s jump into the installation steps. +事不宜迟,我们直接进入安装步骤。 -### 1 ) Set Host Name and update /etc/hosts file +### 1 ) 设置主机名和更新 /etc/hosts 文件 -Use hostnamectl command to set the hostname on master and worker nodes. +在主节点和工作节点上使用 hostnamectl 命令来设置主机名。 ``` $ sudo hostnamectl set-hostname "k8s-master"       // Run on master node @@ -44,7 +44,7 @@ $ sudo hostnamectl set-hostname "k8s-worker1"      // Run on 1st worker nod $ sudo hostnamectl set-hostname "k8s-worker2"      // Run on 2nd worker node ``` -Add the following entries in /etc/hosts file on all the nodes, +在所有节点的 /etc/hosts 文件末尾添加下面几行内容, ``` 192.168.1.236       k8s-master @@ -52,20 +52,20 @@ Add the following entries in /etc/hosts file on all the nodes, 192.168.1.238       k8s-worker2 ``` -### 2) Disable Swap on all nodes +### 2) 在所有节点上关闭交换分区 -For kubelet to work smoothly, it is recommended to disable swap. Run following commands on master and worker nodes to turn off swap. +我推荐关闭交换分区,以便更丝滑地使用 kubelet。在所有节点上执行以下命令来关闭交换分区。 ``` $ sudo swapoff -a $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ``` -### 3) Configure Firewall Rules for Kubernetes Cluster +### 3) 配置 Kubernetes 集群相关的防火墙规则 -In case, OS firewall is enabled on your debian systems then allow following ports on master and worker nodes respectively. +如果你的操作系统防火墙是打开的,请分别在主节点和工作节点允许以下的端口。 -On Master node, run +在主节点,执行 ``` $ sudo ufw allow 6443/tcp @@ -78,7 +78,7 @@ $ sudo ufw allow 10255/tcp $ sudo ufw reload ``` -On Worker Nodes, +在工作节点,执行 ``` $ sudo ufw allow 10250/tcp @@ -86,13 +86,13 @@ $ sudo ufw allow 30000:32767/tcp $ sudo ufw reload ``` -Note: If firewall is disabled on your Debian 11 systems, then you can skip this step. +注意:如果你的 Debian 11系统防火墙是关闭的,可以跳过此步骤。 -### 4) Install Containerd run time on all nodes +### 4) 在所有节点安装 Containerd 运行时 -Containerd is the industry standard container run time, we must install containerd on all master and worker nodes. +Containerd 是容器运行时的行业标准,所有节点必须安装 containerd。 -Before installing containerd, set the following kernel parameters on all the nodes. +先在所有节点上配置如下的核心参数,再安装 containerd。 ``` $ cat </dev/null 2>&1 ``` -Set cgroupdriver to systemd on all the nodes, +在所有节点上设置 cgroupdriver 为 systemd, -Edit the file ‘/etc/containerd/config.toml’ and look for the section ‘[plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options]’ and add SystemdCgroup = true +编辑 “/etc/containerd/config.toml” 文件,找到 ‘[plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options]’ 部分,添加一行内容:SystemdCgroup = true ``` $ sudo vi /etc/containerd/config.toml @@ -139,18 +139,18 @@ $ sudo vi /etc/containerd/config.toml ![systemdCgroup-true-containerd-config-toml][1] -Save and close the file. +保存并退出文件。 -Restart and enable containerd service on all the nodes, +在所有节点上重启并打开 containerd service。 ``` $ sudo systemctl restart containerd $ sudo systemctl enable containerd ``` -### 5) Enable Kubernetes Apt Repository +### 5) 添加 Kubernetes Apt 库 -Enable Kubernetes apt repository on all the nodes, run +执行以下命令,添加 Kubernetes Apt 库 ``` $ sudo apt install gnupg gnupg2 curl software-properties-common -y @@ -158,9 +158,9 @@ $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dea $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" ``` -### 6) Install Kubelet, Kubectl and Kubeadm on all nodes +### 6) 在所有节点上安装 Kubelet, Kubectl 和 Kubeadm -Run the following apt commands on all the nodes to install Kubernetes cluster components like kubelet, kubectl and Kubeadm. +在所有节点上执行以下 apt 命令,安装 Kubernetes 集群组件,如 kubelet,kubectl 以及 Kubeadm。 ``` $ sudo apt update @@ -168,21 +168,21 @@ $ sudo apt install kubelet kubeadm kubectl -y $ sudo apt-mark hold kubelet kubeadm kubectl ``` -### 7) Create Kubernetes Cluster with Kubeadm +### 7) 使用 Kubeadm 创建 Kubernetes 集群 -Now, we are all set to create Kubernetes cluster, run following command only from master node, +现在我们可以创建 Kubernetes 集群了,在主节点上执行以下命令 ``` $ sudo kubeadm init --control-plane-endpoint=k8s-master ``` -Output, +命令输出 ![Kubernetes-Control-Plane-Initialization-Debian11][2] -Above output confirms that control plane has been initialized successfully. In the output, we have commands for regular user for interacting with the cluster and also the command to join any worker node to this cluster. +出现以上内容,说明控制平面初始化成功。在输出中,有普通用户与集群交互的命令,也有把任何工作节点加入到集群的命令。 -To start interacting with cluster, run following commands on master node, +要开始与集群进行交互,请在主节点上运行以下命令。 ``` $ mkdir -p $HOME/.kube @@ -190,20 +190,20 @@ $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` -Run following kubectl command to get nodes and cluster information, +执行以下 kubectl 命令来获取节点和集群的信息, ``` $ kubectl get nodes $ kubectl cluster-info ``` -Output of above commands, +以上命令的输出 ![Nodes-Cluster-Info-Kubectl][3] -Join both the worker nodes to the cluster by running ‘Kubeadm join’ command. +通过执行 ‘Kubeadm join’ 命令来把两个工作节点加入到集群。 -Note: Copy the exact command from the output of ‘kubeadm init’ command. In my case, following is the command +注意:请从 ‘kubeadm init’ 命令的输出中复制完整的命令。在我的例子中,命令如下: ``` $ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \ @@ -211,15 +211,15 @@ $ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \   --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17 ``` -Output from Worker Node 1, +在工作节点 1 上的输出如下 ![Worker-Node1-Join-Kunernetes-Cluster][4] -Output from Worker Nod 2 , +在工作节点 2 上的输出如下 ![Worker-Node2-Join-Kubernetes-Cluster][5] -Check the nodes status by running following command from master node, +在主节点上执行以下命令,检查节点的状态: ``` $ kubectl get nodes @@ -230,21 +230,21 @@ k8s-worker2   NotReady             2m19s   v1.25.0 $ ``` -To make nodes status ready, we must install POD network addons like Calico or flannel. +为了使节点状态变为 ready,我们需要安装 POD 网络插件,如 Calico 或 flannel。 -### 8) Install Calico Pod Network Addon +### 8) 安装 Calico Pod 网络插件 -On the master node, run beneath command to install calico, +在主节点上执行以下命令安装 calico: ``` $ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml ``` -Output, +输出 ![Install-calico-pod-network-addon-debian11][6] -Allow Calico ports in OS firewall, run beneath ufw commands on all the nodes, +在所有节点上执行以下命令,配置防火墙允许 Calico 的端口, ``` $ sudo ufw allow 179/tcp @@ -255,7 +255,7 @@ $ sudo ufw allow 4789/udp $ sudo ufw reload ``` -Verify the status of Calico pods, run +执行以下命令检查下 Calico 的状态 ``` $ kubectl get pods -n kube-system @@ -263,15 +263,15 @@ $ kubectl get pods -n kube-system ![Calico-Pods-Status-Kuberenetes-Debian11][7] -Perfect, now check nodes status again, +完美!现在再检查下节点状态。 ![Nodes-status-after-calico-Installation][8] -Great, output above confirms that master and worker nodes are in ready status. Now, this cluster is ready for the workload. +非常棒!上面的输出说明主节点和工作节点的状态都是 ready。现在这个集群可以正常工作了。 -### 9) Test Kubernetes Cluster Installation +### 9) 检查 Kubernetes 集群安装是否正确 -To test Kubernetes cluster installation, let’s try to deploy nginx based application via deployment. Run beneath commands, +我们尝试通过 deployment 命令来部署基于 nginx 的应用程序,来验证Kubernetes 集群的安装是否正确。执行以下命令: ``` $ kubectl create deployment nginx-app --image=nginx --replicas 2 @@ -279,13 +279,13 @@ $ kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --por $ kubectl describe svc nginx-web-svc ``` -Output of above commands, +以上命令的输出: ![Nginx-Based-App-Kubernetes-Cluster-Debian11][9] -Try to access the nginx based application using following curl command along with the nodeport 30036. +使用以下的 curl 命令通过节点端口 30036 来访问基于 nginx 的应用程序。 -Note : In the curl command we can use either of worker node’s hostname. +注意:在 curl 命令中,两个工作节点的主机名都可以使用 ``` $ curl http://k8s-worker1:30036 @@ -293,9 +293,9 @@ $ curl http://k8s-worker1:30036 ![Access-Nginx-Based-App-via-NodePort-Kubernetes-Debian11][10] -Above command’s output confirm that we are able to access our nginx based application. +以上的输出说明我们可以正常访问基于 nginx 的应用程序了。 -That’s all from this guide, I hope you have found it informative and able to install Kubernetes cluster on Debian 11 smoothly. Kindly do post your queries and feedback in below comments section. +以上为全部内容。希望本文对你有用,参照本文可以在 Debian 11 上正常安装 Kubernetes 集群。如有任何问题,请在下面评论区告诉我。 -------------------------------------------------------------------------------- @@ -303,7 +303,7 @@ via: https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[lxbwolf](https://github.com/lxbwolf) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 84ad9425fbcd5bf2c08698404f2f6bbce43c4464 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 26 Nov 2022 09:58:02 +0800 Subject: [PATCH 2102/3123] RP @geekpi https://linux.cn/article-15290-1.html --- ...rebase to Fedora Linux 37 on Silverblue.md | 36 ++++++------------- 1 file changed, 11 insertions(+), 25 deletions(-) rename {translated/tech => published}/20221118 How to rebase to Fedora Linux 37 on Silverblue.md (66%) diff --git a/translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md b/published/20221118 How to rebase to Fedora Linux 37 on Silverblue.md similarity index 66% rename from translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md rename to published/20221118 How to rebase to Fedora Linux 37 on Silverblue.md index d9ea169c6d..24833b8085 100644 --- a/translated/tech/20221118 How to rebase to Fedora Linux 37 on Silverblue.md +++ b/published/20221118 How to rebase to Fedora Linux 37 on Silverblue.md @@ -3,38 +3,36 @@ [#]: author: "Michal Konečný https://fedoramagazine.org/author/zlopez/" [#]: collector: "lujun9972" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15290-1.html" 如何在 Silverblue 上变基到 Fedora Linux 37 ====== ![][1] -Fedora Silverblue 是[基于 Fedora Linux 构建的桌面操作系统][2]。它非常适合日常使用、开发和基于容器的工作流程。它提供了[众多优势][3],例如能够在出现任何问题时回滚。如果你想在 Fedora Silverblue 系统上更新或变基到 Fedora Linux 37(这些说明与 Fedora Kinoite 类似),本文将告诉你如何操作。它不仅向你展示了该做什么,而且还向你展示了在发生不可预见的事情时如何恢复。 +Fedora Silverblue 是 [基于 Fedora Linux 构建的桌面操作系统][2]。它非常适合日常使用、开发和基于容器的工作流程。它提供了 [众多优势][3],例如能够在出现任何问题时回滚。如果你想在 Fedora Silverblue 系统上更新或变基到 Fedora Linux 37(这些说明与 Fedora Kinoite 类似),本文将告诉你如何操作。它不仅向你展示了该做什么,而且还向你展示了在发生不可预见的事情时如何恢复。 在实际对 Fedora Linux 37 进行变基之前,你应该应用任何待定的更新。在终端中输入以下内容: ``` - $ rpm-ostree update - ``` -或通过 GNOME Software 安装更新并重新启动。 +或通过 GNOME 软件Software 应用安装更新并重新启动。 -### 使用 GNOME Software 变基 +### 使用 GNOME 软件应用变基 -GNOME Software 向你显示更新页面上有新版本的 Fedora Linux 可用。 +在更新页面上,GNOME 软件Software 应用向你显示有新版本的 Fedora Linux 可用。 ![Fedora 37 更新可用][4] -你需要做的第一件事是下载新图片,因此请点击_下载_按钮。这需要一些时间。完成后,你将看到更新已准备好安装。 +你需要做的第一件事是下载新镜像,因此请点击“下载Download”按钮。这需要一些时间。完成后,你将看到更新已准备好安装。 ![Fedora 37 更新准备好安装][5] -点击 _Restart &Upgrade_ 按钮。此步骤只需要几分钟,最后计算机将重启。重启后,你将获得全新的 Fedora Linux 37 版本。很简单,不是吗? +点击 “重启并更新Restart & Upgrade” 按钮。此步骤只需要几分钟,最后计算机将重启。重启后,你将获得全新的 Fedora Linux 37 版本。很简单,不是吗? ### 使用终端变基 @@ -43,35 +41,27 @@ GNOME Software 向你显示更新页面上有新版本的 Fedora Linux 可用。 使用终端变基到 Fedora Linux 37 很容易。首先,检查 37 分支是否可用: ``` - $ ostree remote refs fedora - ``` 你应该在输出中看到以下内容: ``` - fedora:fedora/37/x86_64/silverblue - ``` 如果你想置顶当前部署(该部署将作为 GRUB 中的选项保留,直到你删除它),你可以通过运行以下命令来完成: ``` - # 0 is entry position in rpm-ostree status $ sudo ostree admin pin 0 - ``` 要删除置顶部署,请使用以下命令: ``` - # 2 is entry position in rpm-ostree status $ sudo ostree admin pin --unpin 2 - ``` 其中 2 是 rpm-ostree 状态中的位置。 @@ -79,21 +69,17 @@ $ sudo ostree admin pin --unpin 2 接下来,将你的系统重新设置为 Fedora Linux 37 分支。 ``` - $ rpm-ostree rebase fedora:fedora/37/x86_64/silverblue - ``` 最后,要做的最后一件事是重新启动计算机并引导至 Fedora Linux 37。 ### 如何回滚 -如果发生任何不好的事情,例如,如果你根本无法启动到 Fedora Linux 37,这很容易回滚。在引导时选择 GRUB 菜单中的上一个条目(如果你没有看到它,请尝试在引导过程中按 ESC),你的系统将以切换到 Fedora Linux 37 之前的先前状态启动。要使此更改永久生效,请使用以下命令: +如果发生任何不好的事情,例如,如果你根本无法启动到 Fedora Linux 37,这很容易回滚。在引导时选择 GRUB 菜单中的上一个条目(如果你没有看到它,请尝试在引导过程中按 `ESC`),你的系统将以切换到 Fedora Linux 37 之前的先前状态启动。要使此更改永久生效,请使用以下命令: ``` - $ rpm-ostree rollback - ``` 就是这样。现在你知道如何将 Fedora Silverblue 变基到 Fedora Linux 37 并回滚。那么为什么不在今天做呢? @@ -105,7 +91,7 @@ via: https://fedoramagazine.org/how-to-rebase-to-fedora-linux-37-on-silverblue/ 作者:[Michal Konečný][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1b4bfd95deb7e148e49482ad25f3773c4d85a83c Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Sat, 26 Nov 2022 11:21:05 +0800 Subject: [PATCH 2103/3123] TSL --- ...How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md (100%) diff --git a/sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md b/translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md similarity index 100% rename from sources/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md rename to translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md From f8e1a5910635ebd171f345edd41246a58493384a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 26 Nov 2022 11:39:29 +0800 Subject: [PATCH 2104/3123] ALL @wxy https://linux.cn/article-15291-1.html --- ...sktop Clients for Ubuntu and Other Linux [2022].md | 199 ++++++++++++++++++ ...sktop Clients for Ubuntu and Other Linux [2022].md | 195 ----------------- 2 files changed, 199 insertions(+), 195 deletions(-) create mode 100644 published/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md delete mode 100644 sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md diff --git a/published/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md b/published/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md new file mode 100644 index 0000000000..a3d0cdfbe6 --- /dev/null +++ b/published/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md @@ -0,0 +1,199 @@ +[#]: subject: "Best Remote Desktop Clients for Ubuntu and Other Linux [2022]" +[#]: via: "https://www.debugpoint.com/best-remote-desktop-clients-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15291-1.html" + +最佳 Linux 远程桌面客户端 +====== + +![][0] + +> 一个适用于 Ubuntu 和其他 Linux 发行版的最佳远程桌面客户端的列表。 + +远程桌面客户端允许你连接到任何其他桌面/服务器,并远程执行任务。它是一种重要的 IT 支持和商业用例。在 Linux 中,有许多远程桌面客户端可用。其中一些是免费的,而另一些是付费版本。所有这些客户端都支持流行的 远程桌面协议Remote Desktop Protocol(RDP),如 VNC、RDP 等等。 + +本文将介绍一些适用于 Ubuntu 和其他发行版的最佳免费远程桌面客户端。该列表包括自由开源的应用程序,以及一些免费使用但专有的应用程序。 + +注意:你的目标系统中需要一个远程桌面服务器(如 Xrdp)来成功建立远程连接。然后你才能使用以下应用程序进行连接。这是一个双向的过程。如果你想了解更多的情况,请参考我们的一个案例研究: + +> **[通过 RDP 从 Windows 连接到 Ubuntu][1]** + +### 适用于 Linux 的最佳远程桌面客户端 + +#### GNOME Connections + +![GNOME 连接][2] + +第一个远程桌面客户端是一个原生的 [GNOME 应用程序][3]:GNOME 连接Connections 应用。这个基于 GTK 的应用程序带来了一个简单的用户界面。它是一个非常适合初学者的应用程序。它可以在一分钟内快速设置和连接(如果你知道 IP 和其他细节)。 + +此外,它还提供了清晰的指示,说明你是要连接到 Linux 还是 Windows。GNOME 连接应用支持 VNC(针对 Linux)和 RDP(针对 Windows)协议。 + +用 Flatpak 安装这个应用程序超级简单。[设置你的系统以使用 Flatpak][7],并使用以下命令进行安装: + +``` +flatpak install flathub org.gnome.Connections +``` + +更多信息: + +- [源代码和主页][4] + +#### KRDC + +![KRDC][5] + +下一个应用程序是 KRDC,这是一个 [KDE 应用程序][6],允许你查看和控制另一台机器上的远程桌面会话。它支持 VNC 和 RDP 协议。你还可以控制分辨率和设置密码;当然,它与你的 Plasma 桌面整合得很好。 + +所以,如果你正在寻找一个原生的 KDE 远程桌面应用程序,那就是它。对于 KDE Plasma 桌面,它应该是默认安装的。 + +如果没有,理想的方法是使用 Flatpak 来安装它。[设置你的系统以使用 Flatpak][7],然后使用下面的命令来安装: + +``` +flatpak install flathub org.kde.krdc +``` + +更多信息: + +- [主页][8] +- [文档][9] +- [源代码][10] + +#### Remmina + +![Remmina 远程桌面客户端][11] + +Remmina 是 Linux 系统中最古老的远程桌面客户端之一。可能是你有需要时的“首选”客户端。这个自由开源的应用程序可用于 Linux,也可用于 macOS。它支持许多远程协议,如 RDP、VNC、NX、X2GO、SPICE、HTTPS 和 SSH。 + +此外,它的用户界面简单而厚重,而且在开发和错误修复方面超级活跃。 + +这个应用程序已经在所有主要发行版的软件库中。你可以在 Ubuntu 的软件应用中搜索 “remmina”,或在其他发行版的相关应用中搜索。然后点击安装即可。 + +此外,你也可以 [为 Flatpak 设置你的系统][7],用下面的命令以 Flatpak 安装: + +``` +flatpak install flathub org.remmina.Remmina +``` + +更多信息: + +- [主页][12] +- [源代码][13] + +#### TigerVNC + +TigerVNC 是一个自由开源的“平台中立”的 VNC(虚拟网络计算Virtual Network Computing)协议的实现,带有客户端和服务器包。当有高性能需求时,你可以使用这个远程桌面,因为它在远程连接的 3D/视频数据方面效果最好,经过了优化。 + +此外,它仍然提供了一个 32 位的安装程序,以及通常的 64 位程序和命令行界面。TigerVNC 的客户端程序名称是 `vncviewer`,请 [参考这里][14] 的各种选项。 + +你可以从 [Sourceforge 页面][15] 获得预编译的 deb 和 RPM 包。 + +更多信息: + +- [主页][16] +- [文档][17] +- [源代码][18] + +#### X2Go + +![X2Go][19] + +[X2Go][20] 是一个基于 Linux 的远程桌面软件,基于 NX 技术,由 NoMachine 开发。它是一个客户端和服务器包的集合,使你能够通过代理连接到远程机器。 + +对于远程客户端部分,它有两种选择。你可以使用 X2Go 客户端或 Pyhoca-GUI(基于 Python)。所有这些都被捆绑在一起,放在 Linux 的存储库中。此外,所有的组件也可用于 Windows 和 macOS。 + +你可以从以下页面下载该软件的客户端和服务器部分: + +[下载 X2Go][31] + +#### Chrome 远程桌面 + +![Chrome 远程桌面][21] + +如果你喜欢通过网页浏览器进行远程连接,或者在安装 RDP 服务器时遇到了限制,你可以尝试通过 Chrome 浏览器进行远程连接。 + +Chrome 远程桌面Chrome Remote Desktop 服务是由谷歌创建的,可以通过互联网使用。这项服务通过 WebRTC 协议在浏览器上运行,并使用一些专有技术。 + +一旦启动,就会从主机上下载一个服务器组件,并使用 Chrome 来提供功能。而在客户机上使用 Chrome 浏览器扩展来启用你的远程连接。 + +你可以打开以下网址,通过 Chrome 和支持 WebRTC 的浏览器访问这项服务。 + +> **[https://remotedesktop.google.com/][22]** + +此外,它为远程查看你的系统提供了一个基于 PIN 的即时认证机制。而且它限制只能被最多 100 个客户端使用。 + +### 更多的远程客户端 + +上面的列表应该足以满足大多数常见的使用情况。然而,如果你仍然渴望得到更多的远程桌面客户端,这里是我为你准备的一个列表,并简要介绍了它们的性质。 + +#### 自由开源的 + +- [TurboVNC][23](自由开源) +- [UltraVNC][24](自由开源) +- FreeRDP(免费开源 + 需要编译 + 支持 Wayland) + +#### 商业闭源,需要许可证才能使用 + +- [Thincast][25] (免费使用;Flatpak 软件包;可用于树莓派;闭源和专有许可证) +- [NoMachine][26] (个人免费使用;商业付费;流行,可用于 Linux、Windows、macOS、树莓派) +- [AnyDesk][27] (个人免费;企业付费;闭源) +- [VNC Connect][28] (付费;闭源) +- [TightVNC][29] (需要带有电子邮件地址的许可证才能在 Linux 中使用) +- [itopia][30] (免费,有试用版;Flatpak) + +### 总结 + +本文列出了一些适用于 Ubuntu 和其他 Linux 发行版的最新远程桌面客户端。其中一些是免费的,而且很容易使用。你可以将它们用于远程支持、学习和其他使用情况。此外,我还提到了基于 WebRTC 的远程服务,除了浏览器扩展,不需要任何安装。 + +此外,为了大家方便,我也提到了一些商业的。因为如果你是一个中小型企业,你可能想看看有支持的付费版本应用程序。 + +最后,哪一个远程客户端软件是你的 “首选” 应用程序?请在下面的评论栏里告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-remote-desktop-clients-ubuntu/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/connect-ubuntu-20-04-windows-10/ +[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/GNOME-Connections.jpg +[3]: https://www.debugpoint.com/best-gnome-apps-part-1/ +[4]: https://gitlab.gnome.org/GNOME/connections +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/KRDC.jpg +[6]: https://www.debugpoint.com/best-kde-apps-part-1/ +[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[8]: https://apps.kde.org/krdc/ +[9]: https://docs.kde.org/?application=krdc +[10]: https://invent.kde.org/network/krdc +[11]: https://www.debugpoint.com/wp-content/uploads/2020/03/Remmina.png +[12]: https://remmina.org/ +[13]: https://gitlab.com/Remmina/Remmina +[14]: https://tigervnc.org/doc/vncviewer.html +[15]: https://sourceforge.net/projects/tigervnc/files/stable/ +[16]: https://tigervnc.org/ +[17]: https://github.com/TigerVNC/tigervnc/wiki +[18]: https://github.com/TigerVNC/tigervnc/releases +[19]: https://www.debugpoint.com/wp-content/uploads/2020/03/X2Go.jpg +[20]: https://wiki.x2go.org/doku.php/download:start +[21]: https://www.debugpoint.com/wp-content/uploads/2020/03/Chrome-Remote-Desktop.png +[22]: https://remotedesktop.google.com/ +[23]: https://www.turbovnc.org/ +[24]: https://www.uvnc.com/ +[25]: https://thincast.com/ +[26]: https://www.nomachine.com/ +[27]: https://anydesk.com/ +[28]: https://www.realvnc.com/en/connect/ +[29]: https://www.tightvnc.com/ +[30]: https://itopia.com/ +[31]: https://wiki.x2go.org/doku.php/download:start +[0]: https://img.linux.net.cn/data/attachment/album/202211/26/113747n4iymaq6afri2fqq.jpg \ No newline at end of file diff --git a/sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md b/sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md deleted file mode 100644 index 758bb8c21e..0000000000 --- a/sources/tech/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md +++ /dev/null @@ -1,195 +0,0 @@ -[#]: subject: "Best Remote Desktop Clients for Ubuntu and Other Linux [2022]" -[#]: via: "https://www.debugpoint.com/best-remote-desktop-clients-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Best Remote Desktop Clients for Ubuntu and Other Linux [2022] -====== - -**A list of best remote desktop clients for Ubuntu and other Linux distros.** - -Remote desktop clients allow you to connect to any other desktop/server and perform tasks remotely. It’s one of the important aspects of IT support and other commercial use cases. In Linux, there are many remote desktop clients available. Some of them are free, while others are paid versions. All of these clients support popular remote desktop protocols (RDP) such as VNC, RDP and others. - -This article looks at some of the best free remote desktop clients for Ubuntu and other distros. The list includes free and open-source apps and some free-to-use but proprietary apps. - -Note: You need a remote desktop server (such as Xrdp) in your target system to establish a remote connection successfully. Then only you can connect using the following apps. It’s a two-way process. If you want to get more insight, refer to one of our case studies: [Connecting to Ubuntu from Windows via RDP][1]. - -### Best Remote Desktop Clients for Ubuntu + Others - -#### GNOME Connections - -![GNOME Connections][2] - -The first remote desktop client is a native [GNOME app][3] – “GNOME Connections”. This GTK-based app brings a simple user interface. It’s a perfect app for beginners. It’s also a perfect way quickly set up and connect in a minute (if you know the IP and other details). - -In addition, it comes with clear instructions on whether you want to connect to a Linux machine or Windows. GNOME Connections support VNC (for Linux) and RDP (for Windows) protocols. - -Installing this app is super easy with Flatpak. Set up your system to use Flatpak and install it using the following command. - -``` -flatpak install flathub org.gnome.Connections -``` - -**More information** - -- [Source code and home page][4] - -#### KRDC - -![KRDC][5] - -The next app is KRDC, a [KDE app][6] that allows you to view and control remote desktop sessions on another machine. It supports VNC and RDP protocol. You can also control the resolutions and passwords; of course, it integrates well with your Plasma desktop. - -So, this is it if you are looking for a native-KDE app for a remote desktop. For the KDE Plasma desktop, it should be installed by default. - -If not, the ideal way to install it is using Flatpak. [Set up your system to use Flatpak][7], and then use the following command to install. - -``` -flatpak install flathub org.kde.krdc -``` - -**More information** - -- [Home page][8] -- [Documentation][9] -- [Source code][10] - -#### Remmina - -![Remmina remote desktop client][11] - -Remmina is one of the oldest remote desktop clients for Linux systems. Probably the “go-to” client when you are in need. This free and open-source app is available Linux as well as for macOS. It supports many remote protocols, such as RDP, VNC, NX, X2GO, SPICE, HTTPS and SSH. - -Moreover, it is powerful with its simple yet profound user interface and is super-active in development and bug fixes. - -This app is already in all the major distro’s repositories. You can search for “remmina” in your Software app in Ubuntu and related apps in other distros. And hit install. - -Alternatively, you can also use the following commands to install. - -Furthermore, you can also [set up your system for Flatpak][7] and install it as Flatpak using the following command. - -``` -flatpak install flathub org.remmina.Remmina -``` - -**More information** - -- [Home page][12] -- [Source code][13] - -#### TigerVNC - -TigerVNC is a free and open-source “platform-neutral” implementation of the VNC (Virtual Network Computing) protocol that comes with both client and server packages. You can use this remote desktop when there is a need for high performance because it works best and is optimized for 3D/Video data over a remote connection. - -Furthermore, it still provides a 32-bit installer, along with the usual 64-bit and a command line interface. The client program name for TigerVNC is `vncviewer` and options are present [here][14]. - -You can get the pre-compiled deb and RPM packages from the [Sourceforge page here][15]. - -**More information** - -- [Home page][16] -- [Documentation][17] -- [Source code][18] - -#### X2Go - -![X2Go][19] - -[X2][20][G][20][o][20] is a Linux-based remote desktop software based on NX technology which is developed by NoMachine. It is a collection of client and server packages that enables you to connect to remote machines via proxy. - -For the remote client part – it comes with two options. You can use either the X2Go client or Pyhoca-GUI (based on Python). All of these are bundled together in the repositories available for Linux. In addition, all the components are also available for Windows and macOS. - -You can download this software’s client and server parts from the below page. - -Download X2Go - -#### Chrome Remote Desktop - -![Chrome Remote Desktop][21] - -If you prefer a remote connection over a web browser or have limitations in installing an RDP server, you can try out a remote connection via Google Chrome. - -The Chrome Remote Desktop service is created by Google and is available over the internet. This service runs via WebRTC protocol over a browser and uses some proprietary technology. - -Once launched, a server component is downloaded from the host machine and uses Chrome to provide the functionality. And in the client machine uses a Google Chrome Extension to enable your remote connection. - -You can open the below URL to access this service via Chrome and WebRTC-supported browser. - -[https://remotedesktop.google.com/][22] - -Furthermore, it provides an on-the-fly PIN-based authentication mechanism for remote viewing of your systems. And it is limited to being used by up to 100 clients only. - -### More remote clients - -The above list should suffice for most of the common use cases. However, if you are still hungry for more remote desktop clients, here’s a list I have prepared for you with a brief of their nature. - -#### Free and open-source - -- [TurboVNC][23] (Free and open-source) -- [UltraVNC][24] (Free and open-source) -- FreeRDP (Free + require compilation + support Wayland) - -#### Commercial closed source and requires a license to use - -- [Thincast][25] (Free to use; Flatpak package; Available for Raspberry Pi; Closed source & Proprietary license) -- [NoMachine][26] (Free for personal; Paid for business; Popular, available for Linux, Windows, macOS, Raspberry Pi) -- [AnyDesk][27] (Free for personal; Paid for business; closed source) -- [VNC Connect][28] (Paid; closed source) -- [TightVNC][29] (requires a license with an email address to be used in Linux) -- [itopia][30] (Free with a trial version; Flatpak) - -### Wrapping Up - -This article lists some of the latest remote desktop clients for Ubuntu and other Linux distributions. Some of them are free and easy to use. You can use them for remote support, studying, and other use cases. IN addition, I also mentioned WebRTC-based remote service, which doesn’t require any installation except a browser extension. - -Furthermore, for the benefit of everyone, I have mentioned some of the commercial ones as well. Because if you are a small and medium enterprise, you might want to check the paid version apps with support. - -Finally, which one of the remote client software is your “go-to” app? Let me know in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/best-remote-desktop-clients-ubuntu/ - -作者:[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/connect-ubuntu-20-04-windows-10/ -[2]: https://www.debugpoint.com/wp-content/uploads/2022/11/GNOME-Connections.jpg -[3]: https://www.debugpoint.com/best-gnome-apps-part-1/ -[4]: https://gitlab.gnome.org/GNOME/connections -[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/KRDC.jpg -[6]: https://www.debugpoint.com/best-kde-apps-part-1/ -[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ -[8]: https://apps.kde.org/krdc/ -[9]: https://docs.kde.org/?application=krdc -[10]: https://invent.kde.org/network/krdc -[11]: https://www.debugpoint.com/wp-content/uploads/2020/03/Remmina.png -[12]: https://remmina.org/ -[13]: https://gitlab.com/Remmina/Remmina -[14]: https://tigervnc.org/doc/vncviewer.html -[15]: https://sourceforge.net/projects/tigervnc/files/stable/ -[16]: https://tigervnc.org/ -[17]: https://github.com/TigerVNC/tigervnc/wiki -[18]: https://github.com/TigerVNC/tigervnc/releases -[19]: https://www.debugpoint.com/wp-content/uploads/2020/03/X2Go.jpg -[20]: https://wiki.x2go.org/doku.php/download:start -[21]: https://www.debugpoint.com/wp-content/uploads/2020/03/Chrome-Remote-Desktop.png -[22]: https://remotedesktop.google.com/ -[23]: https://www.turbovnc.org/ -[24]: https://www.uvnc.com/ -[25]: https://thincast.com/ -[26]: https://www.nomachine.com/ -[27]: https://anydesk.com/ -[28]: https://www.realvnc.com/en/connect/ -[29]: https://www.tightvnc.com/ -[30]: https://itopia.com/ From ee1225716a6d9c5e1fb27fc1f81bc4e7d3f1a335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:19:54 +0800 Subject: [PATCH 2105/3123] This article is collected by lkxed. --- ...all With UFW in Ubuntu Linux [Beginner’s Guide].md | 337 ++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 sources/tech/20221114.0 ⭐️⭐️ Using Firewall With UFW in Ubuntu Linux [Beginner’s Guide].md diff --git a/sources/tech/20221114.0 ⭐️⭐️ Using Firewall With UFW in Ubuntu Linux [Beginner’s Guide].md b/sources/tech/20221114.0 ⭐️⭐️ Using Firewall With UFW in Ubuntu Linux [Beginner’s Guide].md new file mode 100644 index 0000000000..14aa6e1ce7 --- /dev/null +++ b/sources/tech/20221114.0 ⭐️⭐️ Using Firewall With UFW in Ubuntu Linux [Beginner’s Guide].md @@ -0,0 +1,337 @@ +[#]: subject: "Using Firewall With UFW in Ubuntu Linux [Beginner’s Guide]" +[#]: via: "https://itsfoss.com/ufw-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Using Firewall With UFW in Ubuntu Linux [Beginner’s Guide] +====== + +UFW (Uncomplicated Firewall) is a simple-to-use firewall utility with plenty of options for all kinds of users. + +It is actually an interface for iptables, which is the classic low-level tool (and harder to get comfortable with) to set up rules for your network. + +### Why should you use a Firewall? + +A firewall is a way to regulate the incoming and outgoing traffic on your network. This is crucial for servers, but it also makes a regular user’s system much safer, giving you control. If you are one of those people who like to keep things under control on an advanced level even on the desktop, you may consider setting up a firewall. + +In short, the firewall is a must for servers. On desktops, it is up to you if you want to set it up. + +### Setting up a firewall with UFW + +It is important to properly set up firewalls. An incorrect setup may leave the server inaccessible if you are doing it for a remote Linux system, like a cloud or VPS server. For example, you block all incoming traffic on the server you are accessing via SSH. Now you won’t be able to access the server via SSH. + +In this tutorial, I’ll go over configuring a firewall that suits your needs, giving you an overview of what can be done using this simple utility. This should be suitable for both [Ubuntu server and desktop users][1]. + +Please note that I’ll be using the command line method here. There is a GUI frontend called [Gufw][2] for desktop users but I won’t be covering it in this tutorial. There is a dedicated [guide to Gufw][3] if you want to use that. + +#### Install UFW + +If you are using Ubuntu, [UFW][4] should already be installed. If not, you can install it using the following command: + +``` +sudo apt install ufw +``` + +For other distributions, please use your package manager for installing UFW. + +To check that UFW is properly installed, enter: + +``` +ufw --version +``` + +If it is installed, you should see the version details: + +``` +[email protected]:~$ ufw --version +ufw 0.36.1 +Copyright 2008-2021 Canonical Ltd. +``` + +Great! So you have UFW on your system. Let’s see about using it now. + +**Note: You need to use sudo or be root to run (almost) all the ufw commands.** + +#### Check ufw status and rules + +UFW works by setting up rules for incoming and outgoing traffic. These rules consist of **allowing** and **denying** specific sources and destinations. + +You can check the firewall rules by using the following command: + +``` +sudo ufw status +``` + +This should give you the following output at this stage: + +``` +Status: inactive +``` + +The above command would have shown you the firewall rules if the firewall was enabled. By default, UFW is not enabled and doesn’t affect your network. We’ll take care of that in the next section. + +![check ufw status][5] + +But here’s the thing, you can see and modify the firewall rules even ufw is not enabled. + +``` +sudo ufw show added +``` + +And in my case, it showed this result: + +``` +[email protected]:~$ sudo ufw show added +Added user rules (see 'ufw status' for running firewall): +ufw allow 22/tcp +[email protected]:~$ +``` + +Now, I don’t remember if I added this rule manually or not. It’s not a fresh system. + +#### Default policies + +By default, UFW denies all incoming and allows all outgoing traffic. This behavior makes perfect sense for the average desktop user, since you want to be able to connect to various services (such as http/https to access web pages) and don’t want to have anyone connect to your machine. + +However, **if you are using a remote server, you must allow traffic on the SSH port** so that you can connect to the system remotely. + +You can either allow traffic on SSH default port 22: + +``` +sudo ufw allow 22 +``` + +In case you are using SSH on some other port, allow it at the service level: + +``` +sudo ufw allow ssh +``` + +Do note that the firewall is not active yet. This is a good thing. You can modify rules before you enable ufw so that essential services are not impacted. + +If you are going to use UFW a production server, please ensure to [allow ports through UFW][6] for the running services. + +For example, web servers usually use port 80, so use “sudo ufw allow 80”. You may also do it at service level “sudo ufw allow apache”. + +This onus lies on your side and it is your responsibility to ensure your server runs properly. + +For **desktop users**, you can go ahead with the default policies. + +``` +sudo ufw default deny incoming +sudo ufw default allow outgoing +``` + +#### Enable and disable UFW + +For UFW to work, you have to enable it: + +``` +sudo ufw enable +``` + +Doing so will start the firewall and schedule it to start every time you boot up. You receive the following message: + +``` +Firewall is active and enabled on system startup. +``` + +**Again**: _if you are connected to a machine via ssh, make sure ssh is allowed before enabling ufw by entering_**sudo ufw allow ssh**_._ + +If you want to turn UFW off, type in: + +``` +sudo ufw disable +``` + +You’ll get back: + +``` +Firewall stopped and disabled on system startup +``` + +#### Reload firewall for new rules + +If UFW is already enabled and you modify the firewall rules, you need to reload it before the changes take into effect. + +You can restart UFW by disabling it and enabling it again: + +``` +sudo ufw disable && sudo ufw enable +``` + +Or **reload** the rules: + +``` +sudo ufw reload +``` + +#### Reset to default firewall rules + +If at any time you screw up any of your rules and want to return to the default rules (that is, no exceptions for allowing incoming or denying outgoing traffic), you can start it afresh with: + +``` +sudo ufw reset +``` + +**_Keep in mind that this will delete all your firewall configs._** + +### Configuring firewall with UFW (more detailed view) + +Alright! So you have learned most of the basic ufw commands. At this stage, I would prefer to go a bit in more detail on the firewall rule configuration. + +#### Allow and deny by protocol and ports + +This is how you add new exceptions to your firewall; **allow** enables your machine to receive data from the specified service, while **deny** does the opposite + +By default, these commands will add rules for both **IP** and **IPv6**. If you’d like to modify this behavior, you’ll have to edit **/etc/default/ufw**. Change + +``` +IPV6=yes +``` + +to + +``` +IPV6=no +``` + +That being said, the basic commands are: + +``` +sudo ufw allow / +sudo ufw deny / +``` + +If the rule was successfully added, you’ll get back: + +``` +Rules updated +Rules updated (v6) +``` + +For example: + +``` +sudo ufw allow 80/tcp +sudo ufw deny 22 +sudo ufw deny 443/udp +``` + +**Note:**_if you don’t include a specific protocol, the rule will be applied for both **tcp** and **udp**._ + +If you enable(or, if already running, reload) UFW and check out its status, you can see that the new rules have been successfully applied. + +![UFW Ports][7] + +You can also allow/deny **port ranges**. For this type of rule, you must specify the protocol. For example: + +``` +sudo ufw allow 90:100/tcp +``` + +Will allow all services on ports 90 to 100 using the TCP protocol. You can reload and verify the status: + +![UFW Port Ranges][8] + +#### Allow and deny by services + +To make things easier, you can also add rules using the service name: + +``` +sudo ufw allow +sudo ufw deny +``` + +For example, to allow incoming ssh and block and incoming HTTP services: + +``` +sudo ufw allow ssh +sudo ufw deny http +``` + +While doing so, **UFW** will read the services from **/etc/services**. You can check out the list yourself: + +``` +less /etc/services +``` + +![List /etc/services][9] + +#### Add rules for applications + +Some apps provide specific named services for ease of use and might even utilize different ports. One such example is **ssh**. You can see a list of such apps that are present on your machine with the following: + +``` +sudo ufw app list +``` + +![UFW App List][10] + +In my case, the available applications are **CUPS** (a network printing system) and **OpenSSH**. + +To add a rule for an application, type: + +``` +sudo ufw allow +sudo ufw deny +``` + +For example: + +``` +sudo ufw allow OpenSSH +``` + +Reloading and checking the status, you should see that the rule has been added: + +![UFW Apps][11] + +### Conclusion + +This was just the tip of the iceberg firewall. There is so much more to firewalls in Linux that a book can be written on it. In fact, there is already an excellent book Linux Firewalls by Steve Suehring. + +[Linux Firewalls: Enhancing Security with nftables and Beyond: Enhancing Security with nftables and Beyond (4th Edition)][12] + +$49.99 + +[Buy on Amazon][12] + +We earn a commission if you make a purchase, at no additional cost to you. + + +11/26/2022 03:17 am GMT + +If you think setting up a firewall with UFW, you should try using iptables or nftables. Then you’ll realize how UFW uncomplicates the firewall configuration. + +I hope you liked this beginner’s guide to UFW. Let me know if you have questions or suggestions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/ufw-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/ubuntu-server-vs-desktop/ +[2]: http://gufw.org/ +[3]: https://itsfoss.com/set-up-firewall-gufw/ +[4]: https://help.ubuntu.com/community/UFW +[5]: https://itsfoss.com/wp-content/uploads/2022/11/check-ufw-status.png +[6]: https://learnubuntu.com/allow-port-firewall/ +[7]: https://itsfoss.com/wp-content/uploads/2019/03/ufw_ports.png +[8]: https://itsfoss.com/wp-content/uploads/2019/03/ufw_port_ranges-1.png +[9]: https://itsfoss.com/wp-content/uploads/2019/03/etc_services.png +[10]: https://itsfoss.com/wp-content/uploads/2019/03/ufw_app_list.png +[11]: https://itsfoss.com/wp-content/uploads/2019/03/ufw_apps.png +[12]: https://www.amazon.com/dp/0134000021?tag=AAWP_PLACEHOLDER_TRACKING_ID From d9b061eb3f1c610e3735730b4073be51c13f6133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:31:00 +0800 Subject: [PATCH 2106/3123] This article is collected by lkxed. --- ...Install GNOME Desktop Environment in Linux Mint.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md diff --git a/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md new file mode 100644 index 0000000000..5a87ca942c --- /dev/null +++ b/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md @@ -0,0 +1,116 @@ +[#]: subject: "How to Install GNOME Desktop Environment in Linux Mint" +[#]: via: "https://itsfoss.com/install-gnome-linux-mint/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install GNOME Desktop Environment in Linux Mint +====== + +Linux Mint is an excellent Linux distribution, especially for beginners. + +I like that it stays on the familiar Ubuntu/Debian front and yet it does several things [better than Ubuntu][1]. One of them is that it doesn’t push Snaps down my throat. + +However, I am not a fan of the Cinnamon desktop as I never really liked the Windows XP or 7’s default setup either. + +As I was looking for the stability that Linux Mint offered with the ability to use GNOME and here’s what I got in the end: + +![install gnome in linux mint][2] + +Nothing too fancy but this is my Linux Mint 21 running GNOME 42.5. + +And if you want to install GNOME on Linux Mint, this guide is for you. + +### Things to know before installing GNOME on Linux Mint + +You really should have good enough reasons to install GNOME on Mint. If you are just feeling experimental, try it in a virtual machine. I performed this tutorial with [Linux Mint installed in VirtualBox][3]. + +The thing about installing a desktop environment other than the one provided by the distribution is that the removal part complicates the matter. + +Cinnamon uses some GNOME elements. If you decide to remove GNOME later, it may impact some parts of Cinnamon. + +This could be a cause of panic for inexperienced users. Of course, reinstalling the Cinnamon desktop from the TTY screen could be a possible solution here. + +The gist of all this is that if you easily get spooked and don’t like troubleshooting, you should not do these ‘experiments’ on your main computer. + +With that aside, let’s see the simple procedure of getting GNOME on Linux Mint. + +### Install GNOME Desktop Environment in Linux Mint + +Here you have two options. Either you can go with a complete GNOME desktop which includes all the GNOME utilities, or you can go with the stripped-down version having the least amount of GNOME packages. + +And I will be covering both. + +To **install GNOME with the least amount of GNOME utilities,** you’d have to install a package named `vanilla-GNOME` using the given command: + +``` +sudo apt install vanilla-gnome-desktop +``` + +And **if you want to have a complete GNOME experience**, you can simply install the `gnome` package: + +``` +sudo apt install gnome +``` + +Once you execute any of the two shown commands, you will be asked to choose the preferred display manager in the next step. + +![choose display manager][4] + +`gdm3` is a display manager for the GNOME desktop while Linux Mint uses `lightdm` by default and both should work just fine, but I will suggest you go with gdm3 to have the complete GNOME experience. + +#### Switching to GNOME + +Once done, log out and hit enter once, and there you’d see a small gear icon. From here, choose GNOME: + +![choose gnome while logging in][5] + +And now, you have GNOME with Linux Mint as a base! + +#### Bonus Tip: How to Apply Themes with consistency + +You can use that Cinnamon themes, but most of them don’t work as expected, so I will recommend using GNOME themes such as Adwaita to have consistency around the desktop. + +For me, the default fonts do not work at all, and I prefer something close to what Fedora offers. So open GNOME tweaks from the system menu and make changes as shown: + +![change fonts in ubuntu to have vanilla gnome experience][6] + +Here’s what I have used: + +- **Cantarell Regular (11)** for both interface and document text. +- **Noto Sans Mono Regular (13)** for monospace text. +- **Cantarell Bold (11)** for window titles. + +And it turned out to be far better than the default Ubuntu font scheme. + +Since you have GNOME, you can use our detailed guide on installing and [changing GNOME themes on Linux][7] to make it as your heart desires. + +### Wrapping Up + +As you can see, installing GNOME on Linux Mint is quite simple. And as I mentioned earlier, the removal part could complicate things as it has the possibility of removing some GNOME packages required by Cinnamon. + +What is powering your main machine right now? I’m on Pop!_OS. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-gnome-linux-mint/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/linux-mint-vs-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/install-gnome-in-linux-mint.png +[3]: https://itsfoss.com/install-linux-mint-in-virtualbox/ +[4]: https://itsfoss.com/wp-content/uploads/2022/11/choose-display-manager.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/choose-gnome-while-logging-in.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/change-fonts-in-ubuntu-to-have-vanilla-gnome-experience.png +[7]: https://itsfoss.com/install-switch-themes-gnome-shell/ From d3f8d858a992abf9d02513e79baf0b83056f94b1 Mon Sep 17 00:00:00 2001 From: aREversez <53844261+aREversez@users.noreply.github.com> Date: Sat, 26 Nov 2022 23:33:51 +0800 Subject: [PATCH 2107/3123] translated --- ...iend- The Facebook That Could Have Been.md | 242 ------------------ ...iend- The Facebook That Could Have Been.md | 238 +++++++++++++++++ 2 files changed, 238 insertions(+), 242 deletions(-) delete mode 100644 sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md create mode 100644 translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md diff --git a/sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md deleted file mode 100644 index 024278de13..0000000000 --- a/sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md +++ /dev/null @@ -1,242 +0,0 @@ -[#]: subject: "Friend of a Friend: The Facebook That Could Have Been" -[#]: via: "https://twobithistory.org/2020/01/05/foaf.html" -[#]: author: "Two-Bit History https://twobithistory.org" -[#]: collector: "lujun9972" -[#]: translator: "aREversez" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Friend of a Friend: The Facebook That Could Have Been -====== - -> _I express my network in a FOAF file, and that is the start of the revolution._ —Tim Berners-Lee (2007) - -The FOAF standard, or Friend of a Friend standard, is a now largely defunct/ignored/superseded[1][1] web standard dating from the early 2000s that hints at what social networking might have looked like had Facebook not conquered the world. Before we talk about FOAF though, I want to talk about the New York City Subway. - -The New York City Subway is controlled by a single entity, the Metropolitan Transportation Agency, better known as the MTA. The MTA has a monopoly on subway travel in New York City. There is no legal way to travel in New York City by subway without purchasing a ticket from the MTA. The MTA has no competitors, at least not in the “subway space.” - -This wasn’t always true. Surprisingly, the subway system was once run by two corporations that competed with each other. The Inter-borough Rapid Transit Company (IRT) operated lines that ran mostly through Manhattan, while the Brooklyn-Manhattan Transit Corporation (BMT) operated lines in Brooklyn, some of which extended into Manhattan also. In 1932, the City opened its own service called the Independent Subway System to compete with the IRT and BMT, and so for a while there were _three_ different organizations running subway lines in New York City. - -One imagines that this was not an effective way to run a subway. It was not. Constructing interchanges between the various systems was challenging because the IRT and BMT used trains of different widths. Interchange stations also had to have at least two different fare-collection areas since passengers switching trains would have to pay multiple operators. The City eventually took over the IRT and BMT in 1940, bringing the whole system together under one operator, but some of the inefficiencies that the original division entailed are still problems today: Trains designed to run along lines inherited from the BMT (e.g. the A, C, or E) cannot run along lines inherited from the IRT (e.g. the 1, 2, or 3) because the IRT tunnels are too narrow. As a result, the MTA has to maintain two different fleets of mutually incompatible subway cars, presumably at significant additional expense relative to other subway systems in the world that only have to deal with a single tunnel width. - -This legacy of the competition between the IRT and BMT suggests that subway systems naturally tend toward monopoly. It just makes more sense for there to be a single operator than for there to be competing operators. Average passengers are amply compensated for the loss of choice by never having to worry about whether they brought their IRT MetroCard today but forgot their BMT MetroCard at home. - -Okay, so what does the Subway have to do with social networking? Well, I have wondered for a while now whether Facebook has, like the MTA, a natural monopoly. Facebook does seem to have _a_ monopoly, whether natural or unnatural—not over social media per se (I spend much more time on Twitter), but over my internet social connections with real people I know. It has a monopoly over, as they call it, my digitized “social graph”; I would quit Facebook tomorrow if I didn’t worry that by doing so I might lose many of those connections. I get angry about this power that Facebook has over me. I get angry in a way that I do not get angry about the MTA, even though the Subway is, metaphorically and literally, a sprawling trash fire. And I suppose I get angry because at root I believe that Facebook’s monopoly, unlike the MTA’s, is not a natural one. - -What this must mean is that I think Facebook owns all of our social data now because they happened to get there first and then dig a big moat around themselves, not because a world with competing Facebook-like platforms is inefficient or impossible. Is that true, though? There are some good reasons to think it isn’t: Did Facebook simply get there first, or did they instead just do social networking better than everyone else? Isn’t the fact that there is only one Facebook actually convenient if you are trying to figure out how to contact an old friend? In a world of competing Facebooks, what would it mean if you and your boyfriend are now Facebook official, but he still hasn’t gotten around to updating his relationship status on VisageBook, which still says he is in a relationship with his college ex? Which site will people trust? Also, if there were multiple sites, wouldn’t everyone spend a lot more time filling out web forms? - -In the last few years, as the disadvantages of centralized social networks have dramatically made themselves apparent, many people have attempted to create decentralized alternatives. These alternatives are based on open standards that could potentially support an ecosystem of inter-operating social networks (see e.g. [the Fediverse][2]). But none of these alternatives has yet supplanted a dominant social network. One obvious explanation for why this hasn’t happened is the power of network effects: With everyone already on Facebook, any one person thinking of leaving faces a high cost for doing so. Some might say this proves that social networks are natural monopolies and stop there; I would say that Facebook, Twitter, et al. chose to be walled gardens, and given that people have envisioned and even built social networks that inter-operate, the network effects that closed platforms enjoy tell us little about the inherent nature of social networks. - -So the real question, in my mind, is: Do platforms like Facebook continue to dominate merely because of their network effects, or is having a single dominant social network more efficient in the same way that having a single operator for a subway system is more efficient? - -Which finally brings me back to FOAF. Much of the world seems to have forgotten about the FOAF standard, but FOAF was an attempt to build a decentralized and open social network before anyone had even heard of Facebook. If any decentralized social network ever had a chance of occupying the redoubt that Facebook now occupies before Facebook got there, it was FOAF. Given that a large fraction of humanity now has a Facebook account, and given that relatively few people know about FOAF, should we conclude that social networking, like subway travel, really does lend itself to centralization and natural monopoly? Or does the FOAF project demonstrate that decentralized social networking was a feasible alternative that never became popular for other reasons? - -### The Future from the Early Aughts - -The FOAF project, begun in 2000, set out to create a universal standard for describing people and the relationships between them. That might strike you as a wildly ambitious goal today, but aspirations like that were par for the course in the late 1990s and early 2000s. The web (as people still called it then) had just trounced closed systems like America Online and [Prodigy][3]. It could only have been natural to assume that further innovation in computing would involve the open, standards-based approach embodied by the web. - -Many people believed that the next big thing was for the web to evolve into something called the Semantic Web. [I have written about][4] what exactly the Semantic Web was supposed to be and how it was supposed to work before, so I won’t go into detail here. But I will sketch the basic vision motivating the people who worked on Semantic Web technologies, because the FOAF standard was an application of that vision to social networking. - -There is an essay called [“How Google beat Amazon and Ebay to the Semantic Web”][5] that captures the lofty dream of the Semantic Web well. It was written by Paul Ford in 2002. The essay imagines a future (as imminent as 2009) in which Google, by embracing the Semantic Web, has replaced Amazon and eBay as the dominant e-commerce platform. In this future, you can search for something you want to purchase—perhaps a second-hand Martin guitar—by entering `buy:martin guitar` into Google. Google then shows you all the people near your zipcode selling Martin guitars. Google knows about these people and their guitars because Google can read RDF, a markup language and core Semantic Web technology focused on expressing relationships. Regular people can embed RDF on their web pages to advertise (among many other things) the items they have to sell. Ford predicts that as the number of people searching for and advertising products this way grows, Amazon and eBay will lose their near-monopolies over, respectively, first-hand and second-hand e-commerce. Nobody will want to search a single centralized database for something to buy when they could instead search the whole web. Even Google, Ford writes, will eventually lose its advantage, because in theory anyone could crawl the web reading RDF and offer a search feature similar to Google’s. At the very least, if Google wanted to make money from its Semantic Web marketplace by charging a percentage of each transaction, that percentage would probably by forced down over time by competitors offering a more attractive deal. - -Ford’s imagined future was an application of RDF, or the Resource Description Framework, to e-commerce, but the exciting thing about RDF was that hypothetically it could be used for anything. The RDF standard, along with a constellation of related standards, once widely adopted, was supposed to blow open database-backed software services on the internet the same way HTML had blown open document publishing on the internet. - -One arena that RDF and other Semantic Web technologies seemed poised to takeover immediately was social networking. The FOAF project, known originally as “RDF Web Ring” before being renamed, was the Semantic Web effort offshoot that sought to accomplish this. FOAF was so promising in its infancy that some people thought it would inevitably make all other social networking sites obsolete. A 2004 Guardian article about the project introduced FOAF this way: - -> In the beginning, way back in 1996, it was SixDegrees. Last year, it was Friendster. Last week, it was Orkut. Next week, it could be Flickr. All these websites, and dozens more, are designed to build networks of friends, and they are currently at the forefront of the trendiest internet development: social networking. But unless they can start to offer more substantial benefits, it is hard to see them all surviving, once the Friend Of A Friend (FOAF) standard becomes a normal part of life on the net.[2][6] - -The article goes on to complain that the biggest problem with social networking is that there are too many social networking sites. Something is needed that can connect all of the different networks together. FOAF is the solution, and it will revolutionize social networking as a result. - -FOAF, according to the article, would tie the different networks together by doing three key things: - - * It would establish a machine-readable format for social data that could be read by any social networking site, saving users from having to enter this information over and over again - * It would allow “personal information management programs,” i.e. your “Contacts” application, to generate a file in this machine-readable format that you could feed to social networking sites - * It would further allow this machine-readable format to be hosted on personal homepages and read remotely by social networking sites, meaning that you would be able to keep your various profiles up-to-date by just pushing changes to your own homepage - - - -It is hard to believe today, but the problem in 2004, at least for savvy webizens and technology columnists aware of all the latest sites, was not the lack of alternative social networks but instead the proliferation of them. Given _that_ problem—so alien to us now—one can see why it made sense to pursue a single standard that promised to make the proliferation of networks less of a burden. - -### The FOAF Spec - -According to the description currently given on the FOAF project’s website, FOAF is “a computer language defining a dictionary of people-related terms that can be used in structured data.” Back in 2000, in a document they wrote to explain the project’s goals, Dan Brickley and Libby Miller, FOAF’s creators, offered a different description that suggests more about the technology’s ultimate purpose—they introduced FOAF as a tool that would allow computers to read the personal information you put on your homepage the same way that other humans do.[3][7] FOAF would “help the web do the sorts of things that are currently the proprietary offering of centralised services.”[4][8] By defining a standard vocabulary for people and the relationships between them, FOAF would allow you to ask the web questions such as, “Find me today’s web recommendations made by people who work for Medical organizations,” or “Find me recent publications by people I’ve co-authored documents with.” - -Since FOAF is a standardized vocabulary, the most important output of the FOAF project was the FOAF specification. The FOAF specification defines a small collection of RDF _classes_ and RDF _properties_. (I’m not going to explain RDF here, but again see [my post about the Semantic Web][4] if you want to know more.) The RDF _classes_ defined by the FOAF specification represent subjects you might want to describe, such as people (the `Person` class) and organizations (the `Organization` class). The RDF _properties_ defined by the FOAF specification represent logical statements you might make about the different subjects. A person could have, for example, a first name (the `givenName` property), a last name (the `familyName` property), perhaps even a personality type (the `myersBriggs` property), and be near another person or location (the `based_near` property). The idea was that these classes and properties would be sufficient to represent the kind of the things people say about themselves and their friends on their personal homepage. - -The FOAF specification gives the following as an example of a well-formed FOAF document. This example uses XML, though an equivalent document could be written using JSON or a number of other formats: - -``` - - - Dan Brickley - - - - - -``` - -This FOAF document describes a person named “Dan Brickley” (one of the specification’s authors) that has a homepage at `http://danbri.org`, something called an “open ID,” and a picture available at `/images/me.jpg`, presumably relative to the base address of Brickley’s homepage. The FOAF-specific terms are prefixed by `foaf:`, indicating that they are part of the FOAF namespace, while the more general RDF terms are prefixed by `rdf:`. - -Just to persuade you that FOAF isn’t tied to XML, here is a similar FOAF example from Wikipedia, expressed using a format called JSON-LD[5][9]: - -``` - - { - "@context": { - "name": "http://xmlns.com/foaf/0.1/name", - "homepage": { - "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage", - "@type": "@id" - }, - "Person": "http://xmlns.com/foaf/0.1/Person" - }, - "@id": "https://me.example.com", - "@type": "Person", - "name": "John Smith", - "homepage": "https://www.example.com/" - } - -``` - -This FOAF document describes a person named John Smith with a homepage at `www.example.com`. - -Perhaps the best way to get a feel for how FOAF works is to play around with [FOAF-a-matic][10], a web tool for generating FOAF documents. It allows you to enter information about yourself using a web form, then uses that information to create the FOAF document (in XML) that represents you. FOAF-a-matic demonstrates how FOAF could have been used to save everyone from having to enter their social information into a web form ever again—if every social networking site could read FOAF, all you’d need to do to sign up for a new site is point the site to the FOAF document that FOAF-a-matic generated for you. - -Here is a slightly more complicated FOAF example, representing me, that I created using FOAF-a-matic: - -``` - - - - - - - - - - Sinclair Target - Sinclair - Target - - - - - John Smith - - - - - - - -``` - -This example has quite a lot of preamble setting up the various XML namespaces used by the document. There is also a section containing data about the tool that was used to generate the document, largely so that, it seems, people know whom to email with complaints. The `foaf:Person` element describing me tells you my name, email address, and homepage. There is also a nested `foaf:knows` element telling you that I am friends with John Smith. - -This example illustrates another important feature of FOAF documents: They can link to each other. If you remember from the previous example, my friend John Smith has a homepage at `www.example.com`. In this example, where I list John Smith as a `foaf:person` with whom I have a `foaf:knows` relationship, I also provide a `rdfs:seeAlso` element that points to John Smith’s FOAF document hosted on his homepage. Because I have provided this link, any program reading my FOAF document could find out more about John Smith by following the link and reading his FOAF document. In the FOAF document we have for John Smith above, John did not provide any information about his friends (including me, meaning, tragically, that our friendship is unidirectional). But if he had, then the program reading my document could find out not only about me but also about John, his friends, their friends, and so on, until the program has crawled the whole social graph that John and I inhabit. - -This functionality will seem familiar to anyone that has used Facebook, which is to say that this functionality will seem familiar to you. There is no `foaf:wall` property or `foaf:poke` property to replicate Facebook’s feature set exactly. Obviously, there is also no slick blue user interface that everyone can use to visualize their FOAF social network; FOAF is just a vocabulary. But Facebook’s core feature—the feature that I have argued is key to Facebook’s monopoly power over, at the very least, myself—is here provided in a distributed way. FOAF allows a group of friends to represent their real-life social graph digitally by hosting FOAF documents on their own homepages. It allows them to do this without surrendering control of their data to a centralized database in the sky run by a billionaire android-man who spends much of his time apologizing before congressional committees. - -### FOAF on Ice - -If you visit the current FOAF project homepage, you will notice that, in the top right corner, there is an image of the character Fry from the TV series Futurama, stuck inside some sort of stasis chamber. This is a still from the pilot episode of Futurama, in which Fry gets frozen in a cryogenic tank in 1999 only to awake a millennium later in 2999. Brickley, whom I messaged briefly on Twitter, told me that he put that image there as a way communicating that the FOAF project is currently “in stasis,” though he hopes that there will be a future opportunity to resuscitate the project along with its early 2000s optimism about how the web should work. - -FOAF never revolutionized social networking the way that the 2004 Guardian article about it expected it would. Some social networking sites decided to support the standard: LiveJournal and MyOpera are examples.[6][11] FOAF even played a role in Howard Dean’s presidential campaign in 2004—a group of bloggers and programmers got together to create a network of websites they called “DeanSpace” to promote the campaign, and these sites used FOAF to keep track of supporters and volunteers.[7][12] But today FOAF is known primarily for being one of the more widely used vocabularies of RDF, itself a niche standard on the modern web. If FOAF is part of your experience of the web today at all, then it is as an ancestor to the technology that powers Google’s “knowledge panels” (the little sidebars that tell you the basics about a person or a thing if you searched for something simple). Google uses vocabularies published by the schema.org project—the modern heir to the Semantic Web effort—to populate its knowledge panels.[8][13] The schema.org vocabulary for describing people seems to be somewhat inspired by FOAF and serves many of the same purposes. - -So why didn’t FOAF succeed? Why do we all use Facebook now instead? Let’s ignore that FOAF is a simple standard with nowhere near as many features as Facebook—that’s true today, clearly, but if FOAF had enjoyed more momentum it’s possible that applications could have been built on top of it to deliver a Facebook-like experience. The interesting question is: Why didn’t this nascent form of distributed social networking catch fire when Facebook was not yet around to compete with it? - -There probably is no single answer to that question, but if I had to pick one, I think the biggest issue is that FOAF only makes sense on a web where everyone has a personal website. In the late 1990s and early 2000s, it might have been easy to assume the web would eventually look like this, especially since so many of the web’s early adopters were, as far as I can tell, prolific bloggers or politically engaged technologists excited to have a platform. But the reality is that regular people don’t want to have to learn how to host a website. FOAF allows you to control your own social information and broadcast it to social networks instead of filling out endless web forms, which sounds pretty great if you already have somewhere to host that information. But most people in practice found it easier to just fill out the web form and sign up for Facebook than to figure out how to buy a domain and host some XML. - -What does this mean for my original question about whether or not Facebook’s monopoly is a natural one? I think I have to concede that the FOAF example is evidence that social networking _does_ naturally lend itself to monopoly. - -That people did not want to host their own data isn’t especially meaningful itself—modern distributed social networks like [Mastodon][14] have solved that problem by letting regular users host their profiles on nodes set up by more savvy users. It is a sign, however, of just how much people hate complexity. This is bad news for decentralized social networks, because they are inherently more complex under the hood than centralized networks in a way that is often impossible to hide from users. - -Consider FOAF: If I were to write an application that read FOAF data from personal websites, what would I do if Sally’s FOAF document mentions a John Smith with a homepage at `example.com`, and Sue’s FOAF document mentions a John Smith with a homepage at `example.net`? Are we talking about a single John Smith with two websites or two entirely different John Smiths? What if the both FOAF documents list John Smith’s email as `johnsmith@gmail.com`? This issue of identity was an acute one for FOAF. In a 2003 email, Brickley wrote that because there does not exist and probably should not exist a “planet-wide system for identifying people,” the approach taken by FOAF is “pluralistic.”[9][15] Some properties of FOAF people, such as email addresses and homepage addresses, are special in that their values are globally unique. So these different properties can be used to merge (or, as Libby Miller called it, “smoosh”) FOAF documents about people together. But none of these special properties are privileged above the others, so it’s not obvious how to handle our John Smith case. Do we trust the homepages and conclude we have two different people? Or do we trust the email addresses and conclude we have a single person? Could I really write an application capable of resolving this conflict without involving (and inconveniencing) the user? - -Facebook, with its single database and lack of political qualms, could create a “planet-wide system for identifying people” and so just gave every person a unique Facebook ID. Problem solved. - -Complexity alone might not doom distributed social networks if people cared about being able to own and control their data. But FOAF’s failure to take off demonstrates that people have never valued control very highly. As one blogger has put it, “‘Users want to own their own data’ is an ideology, not a use case.”[10][16] If users do not value control enough to stomach additional complexity, and if centralized systems are more simple than distributed ones—and if, further, centralized systems tend to be closed and thus the successful ones enjoy powerful network effects—then social networks are indeed natural monopolies. - -That said, I think there is still a distinction to be drawn between the subway system case and the social networking case. I am comfortable with the MTA’s monopoly on subway travel because I expect subway systems to be natural monopolies for a long time to come. If there is going to be only one operator of the New York City Subway, then it ought to be the government, which is at least nominally more accountable than a private company with no competitors. But I do not expect social networks to stay natural monopolies. The Subway is carved in granite; the digital world is writ in water. Distributed social networks may now be more complicated than centralized networks in the same way that carrying two MetroCards is more complicated than carrying one. In the future, though, the web, or even the internet, could change in fundamental ways that make distributed technology much easier to use. - -If that happens, perhaps FOAF will be remembered as the first attempt to build the kind of social network that humanity, after a brief experiment with corporate mega-databases, does and always will prefer. - -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][17] on Twitter or subscribe to the [RSS feed][18] to make sure you know when a new post is out._ - -_Previously on TwoBitHistory…_ - -> I know it's been too long since my last post, but my new one is here! I wrote almost 5000 words on John Carmack, Doom, and the history of the binary space partitioning tree. -> -> — TwoBitHistory (@TwoBitHistory) [November 6, 2019][19] - - 1. Please note that I did not dare say “dead.” [↩︎][20] - - 2. Jack Schofield, “Let’s be Friendsters,” The Guardian, February 19, 2004, accessed January 5, 2020, . [↩︎][21] - - 3. Dan Brickley and Libby Miller, “Introducing FOAF,” FOAF Project, 2008, accessed January 5, 2020, . [↩︎][22] - - 4. ibid. [↩︎][23] - - 5. Wikipedia contributors, “JSON-LD,” Wikipedia: The Free Encyclopedia, December 13, 2019, accessed January 5, 2020, . [↩︎][24] - - 6. “Data Sources,” FOAF Project Wiki, December 11 2009, accessed January 5, 2020, . [↩︎][25] - - 7. Aldon Hynes, “What is Dean Space?”, Extreme Democracy, accessed January 5, 2020, . [↩︎][26] - - 8. “Understand how structured data works,” Google Developer Portal, accessed January 5, 2020, . [↩︎][27] - - 9. tef, “Why your distributed network will not work,” Progamming is Terrible, January 2, 2013, . [↩︎][28] - - 10. Dan Brickley, “Identifying things in FOAF,” rdfweb-dev Mailing List, July 10, 2003, accessed on January 5, 2020, . [↩︎][29] - - - - --------------------------------------------------------------------------------- - -via: https://twobithistory.org/2020/01/05/foaf.html - -作者:[Two-Bit History][a] -选题:[lujun9972][b] -译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://twobithistory.org -[b]: https://github.com/lujun9972 -[1]: tmp.mJHAgyVHGr#fn:1 -[2]: https://en.wikipedia.org/wiki/Fediverse -[3]: https://en.wikipedia.org/wiki/Prodigy_(online_service) -[4]: https://twobithistory.org/2018/05/27/semantic-web.html -[5]: https://www.ftrain.com/google_takes_all -[6]: tmp.mJHAgyVHGr#fn:2 -[7]: tmp.mJHAgyVHGr#fn:3 -[8]: tmp.mJHAgyVHGr#fn:4 -[9]: tmp.mJHAgyVHGr#fn:5 -[10]: http://www.ldodds.com/foaf/foaf-a-matic -[11]: tmp.mJHAgyVHGr#fn:6 -[12]: tmp.mJHAgyVHGr#fn:7 -[13]: tmp.mJHAgyVHGr#fn:8 -[14]: https://en.wikipedia.org/wiki/Mastodon_(software) -[15]: tmp.mJHAgyVHGr#fn:9 -[16]: tmp.mJHAgyVHGr#fn:10 -[17]: https://twitter.com/TwoBitHistory -[18]: https://twobithistory.org/feed.xml -[19]: https://twitter.com/TwoBitHistory/status/1192196764239093760?ref_src=twsrc%5Etfw -[20]: tmp.mJHAgyVHGr#fnref:1 -[21]: tmp.mJHAgyVHGr#fnref:2 -[22]: tmp.mJHAgyVHGr#fnref:3 -[23]: tmp.mJHAgyVHGr#fnref:4 -[24]: tmp.mJHAgyVHGr#fnref:5 -[25]: tmp.mJHAgyVHGr#fnref:6 -[26]: tmp.mJHAgyVHGr#fnref:7 -[27]: tmp.mJHAgyVHGr#fnref:8 -[28]: tmp.mJHAgyVHGr#fnref:9 -[29]: tmp.mJHAgyVHGr#fnref:10 diff --git a/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md new file mode 100644 index 0000000000..3d46287b2b --- /dev/null +++ b/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md @@ -0,0 +1,238 @@ +[#]: subject: "Friend of a Friend: The Facebook That Could Have Been" +[#]: via: "https://twobithistory.org/2020/01/05/foaf.html" +[#]: author: "Two-Bit History https://twobithistory.org" +[#]: collector: "lujun9972" +[#]: translator: "aREversez" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Friend of a Friend: The Facebook That Could Have Been +====== + +> 我把自己的网络写进 FOAF 文件,由此开启了变革。——互联网之父蒂姆·伯纳斯·李(2007) + +目前,FOAF 标准(Friend of a Friend)基本上已经不再使用了,或者说被人们忘记了,亦或者说已经被取代了[1][1]。回顾本世纪第一个十年,假如 Facebook 没有征服世界的话,FOAF 将会定义我们今天所用的社交网络。不过在开始探讨这一 web 标准之前,我想先来谈一谈纽约地铁。 + +目前,纽约地铁的唯一管理机构是 大都会运输署Metropolitan Transportation Agency,简称 MTA。MTA 对纽约市的地铁交通拥有垄断权。在纽约乘地铁必须先从 MTA 购买车票,否则属于非法行为。也就是说,MTA 在地铁行业没有任何竞争对手。 + +不过,以前可不是这样。说起来可能有些让人吃惊,纽约市的地铁交通曾由两家企业相互竞争,共同运营。跨区捷运公司Inter-borough Rapid Transit Company(IRT)的势力范围是穿过曼哈顿的线路,布鲁克林-曼哈顿运输股份有限公司Brooklyn-Manhattan Transit Corporation(BMT)管理的则是布鲁克林区内的线路,其中也有部分线路延伸到了曼哈顿。1932 年,纽约市投入使用了独立地铁系统,与 IRT 和 BMT 展开竞争,所以当时纽约共有三家不同公司控制着市内地铁交通。 + +可能会有人觉得这样的地铁运营效率不高。事实上也确是如此。由于 IRT 和 BMT 投入使用的列车宽度不同,所以在不同的运营系统之间建造换乘站十分困难。此外,乘客换乘时还需向不同的运营商支付费用,这就意味着在换乘站至少要设置两个不同的检票区域。后来,纽约市于 1940 年取缔了 IRT 和 BMT,将整个纽约市的地铁交通置于一家运营商的管理之下,不过由于此前分而治之而造成的效率低下问题时至今日依然存在:能在 BMT 的线路上运行的列车无法在 IRT 的线路上运行,因为 IRT 的线路隧道比较窄。因此,MTA 不得不同时管理这两种互不兼容的列车系统,由此带来的支出可能远比世界上其他单一隧道宽度的地铁系统要多得多。 + +IRT 和 BMT 之间的竞争所造成的历史遗留问题告诉我们,地铁系统本身就趋向于垄断经营。相比较于两家运营商相互竞争,只有一家运营商更能解决问题。乘客们虽然失去了选择的余地,但再也不用担心带了一张地铁卡却忘记了另一张的问题。 + +那么,地铁和社交网络又有什么关系呢?我在想,Facebook 是否和 MTA 一样都有自然垄断的属性呢?事实上,无论是自然垄断还是非自然垄断,Facebook 貌似确有垄断能力。当然它垄断的不是社交媒体本身(我在 Twitter 上面花的时间更多),而是垄断了与现实中认识的人之间的线上联系。Facebook 能够垄断所谓的“社交图谱”;如果我不用担心会失去与别人的联系方式,那我明天就会卸载 Facebook,因为我对 Facebook 的垄断权力感到非常气愤。不过,我却不会生 MTA 的气,即便从字面上和比喻义上来讲,纽约市地铁都是一堆焚烧着的、火舌乱窜的垃圾。说到底,我愤怒是因为我觉得不同于 MTA 的自然垄断,Facebook 的垄断属于非自然垄断。 + +我的意思是,如今 Facebook 之所以能拥有所有人的社交数据,因为它碰巧是第一个做大做强,确立巨头地位的社交平台,而不是因为其他社交平台难以或者无法与之竞争。不过,难道真是因为这样吗?许多事实告诉我们,原因并非如此。Facebook 真的是第一个社交平台吗?它提供的服务真的比其他社交平台要好吗?如果你想联系老朋友,只有 Facebook 这一个平台的话,不会方便许多吗?在 Facebook 有很多竞争对手的情况下,如果你和你男朋友 Facebook 上面的感情状态都显示“交往中”,但是他始终没来得及更新他在 VisageBook 上的感情状态,说不定现在上面还是他和他大学前任那时候的关系,那么这种情况意味着什么呢?人们信任的又是哪个社交网站呢?如果社交网站有很多,难道在填写信息上面不会很耗时间吗? + +过去几年,由于中心化社交网络的缺陷暴露出来,许多人尝试构建去中心化的平台。基于开放标准,去中心化平台有望建立互通的社交网络生态(比如 [Fediverse][2])。可惜的是,其中没有一个平台能够取代主流社交网络。一个比较明显的原因是 网络效应network effects的力量:既然每个人都在用 Facebook,那么任何想要放弃 Facebook 的人都将会付出巨大的代价。有人会说,这一点恰恰证明了社交网络属于自然垄断行业。但我想说,Facebook、Twitter等平台是自己选择封闭起来的。此外,鉴于人们已经设想出社交网络的互通性,并且付诸实践,那么封闭的社交平台引发的网络效应就无法证明社交网络具有自然垄断属性。 + +因此,在我看来,真正的问题是:之所以 Facebook 等平台到现在仍是主流社交网络,仅仅是因为网络效应,还是说与只有一家运营商的地铁系统一样,单一的主流社交网络效率更高? + +最后,这些问题让我想起了 FOAF。尽管人们似乎已经忘记了 FOAF 标准,但是早在 Facebook 出现之前,人们就尝试使用 FOAF 建立开放的、去中心化的社交网络。如果过去有哪个去中心化社交网络有机会早于 Facebook 占领如今 Facebook 驻守的阵地,那只可能是 FOAF。考虑到世界上大部分人都有 Facebook 账号,而且了解 FOAF 的人相对较少,我们是否可以得到如下结论:同地铁一样,社交网络也有中心化和自然垄断的性质;亦或者,FOAF 项目说明,尽管去中心化社交网络可行,但由于其他原因,无法获得人们的广泛支持。 + +### 早期社交媒体的未来 + +FOAF 项目诞生于 2000 年,旨在建立一套表示个人身份以及人与人之间关系的通用标准。在今天看来,这一雄心勃勃的项目可能会让人感到惊讶,但是在上世纪末本世纪初,这样的想法再寻常不过了。当时在网络上,美国在线America Online 与 [Prodigy][3] 等封闭系统遭遇惨败。这让人很自然地想到,计算机领域的创新发展必须要保持开放、基于标准,而且这也正是网络的特点。 + +许多人认为,网络下一场重头戏会是 语义网Semantic Web。我有篇文章介绍了关于语义网概念与运行原理的设想,所以这里不再赘述。但是我会简单谈谈推动人们研究语义网技术的愿景,因为 FOAF 标准正是这一愿景在社交网络方面的应用。 + +一篇题为 [《谷歌如何击败亚马逊和易贝,朝着语义网进军How Google beat Amazon and Ebay to the Semantic Web》][5] 的文章很好地描绘了语义网这一崇高理想。文章写于 2002 年,作者是 Paul Ford。这篇文章设想了 2002 年至 2009 年的情景:通过使用语义网,谷歌取代了亚马逊和易贝,成为电商平台主导者。文章指出,在未来,如果你想买东西,比如说一把二手的马丁吉他,可以在谷歌中输入 `buy:martin guitar`。根据你的邮编,谷歌会告诉你附近哪些人在卖马丁吉他。谷歌之所以可以获取卖家及其吉他的信息,是因为它可以读取资源描述框架标记语言 RDF,该语言是语义网的核心技术,用于描述资源之间的关系。人们可以将 RDF 内容嵌入网页,能实现的用途比较广泛,比如给要卖的东西打广告。Ford 预测,随着使用这种方式搜索和售卖商品的人数增加,亚马逊和易贝将失去它们在电商领域近乎垄断的地位。如果可以搜索全网,又有谁会执着于某个封闭的数据库呢?Ford 写道,即便是谷歌,最终也会失势。因为理论上,任何一个人都可以检索网络,查阅 RDF,提供类似于谷歌的搜索功能。起码,如果谷歌打算对语义网上的每笔交易按一定比例收取费用,以此盈利,那么以后随着相关竞争越来越激烈,谷歌的抽成比例很有可能会被迫降低。 + +Ford 所设想的未来是关于 RDF 在电商领域的应用,不过 RDF 更振奋人心的地方在于,它或许可以应用于各个领域。RDF 标准以及一系列相关标准曾一度得到广泛应用,被认为可以突破基于数据库的开放软件服务面临的发展瓶颈,如同 HTML 为开放文档排版带来新的发展契机一般。 + +RDF 以及其他语义网技术唾手可得的另一个领域是社交网络。FOAF 项目最初的名字是“RDF Web Ring”,是语义网发展的产物,旨在实现语义网的设想。FOAF 自诞生之初就被人们看好,有人甚至认为,FOAF 必定会淘汰掉其他社交网站。2004 年《卫报》的一篇文章这样介绍该项目: + +> 最初是 1996 年,SixDegrees 开始运营;接着是去年,出现了 Friendster;上周是 Orkut;下周 Flickr 也会登上舞台。这些网站不胜枚举,都是为了建立社交网络。如今,它们处在互联网发展的最前沿。但是,如果它们无法提供更优质的服务,在 FOAF 标准得到广泛应用之后,它们就会很难存活下去。[2][6] + +文章继续指出,社交网络面临的最大问题就是网站数量过多。这就需要一种能够将所有这些网站连接起来的手段。可行方案就是 FOAF ,它终将变革整个社交网络。 + +根据该文章,FOAF 可将不同的社交网站紧密连接起来,实现途径有三个要点: + + * FOAF 将创建机器可读的社交数据格式,可为各个社交网站识别读取,避免让用户在不同的网站上重复输入信息。 + * FOAF 标准下,联系人Contacts(个人信息管理程序)可生成上述格式的文件,供用户在各社交网站使用。 + * FOAF 标准下,该文件可寄放在个人主页上,可为各社交网站读取。这样一来,用户只需将修改过的信息推到主页,其他平台就会同步更新。 + + + +在今天可能难以想象,但在 2004 年,至少在熟悉技术的网民和技术专栏记者看来,当时社交网络并不算少,但是每个网络的用户群体都很小。虽然与我们十分遥远,但若能考虑到这一问题,我们就会明白为什么需要建立单一标准来推动社交网络扩大用户基础。 + +### FOAF 规则 + +根据 FOAF 项目官网现有的介绍,FOAF 指的是“一种计算机语言,用于生成与人相关的各种条目的字典,条目以结构化数据的形式储存”。2000 年,FOAF 的创始人 Dan Brickley 和 Libby Miller 发表了一份关于该项目目标的文件,给出了不同的解释,强调了 FOAF 的最终目标:作为工具,FOAF 可让计算机像人类一样读取用户主页的个人信息[3][7]。FOAF 将会“帮助网络提供当前只有中心化平台才能提供的服务”[4][8]。通过为个人以及人际关系定义标准词汇表,FOAF 可以理解用户输入的内容,比如“查找医院医疗人员今天给出的推荐”,或者“查找曾与我合作过的人最近发表的文章”。 + +由于 FOAF 是标准化的词汇表,所以该项目最重要的成果莫过于 FOAF 规则。FOAF 规则规定了 RDF 类 和 RDF 属性(这里我不再解释什么是 RDF,如果感兴趣可查阅[我关于语义网的文章][4])。RDF 的类由 FOAF 规则规定,表示要描述的对象,比如人(`Person` 类)和组织(`Organization` 类)。RDF 属性由 FOAF 规则规定,表示针对不同对象所做的逻辑声明。例如,一个人可以有一个名字(`givenName` 属性)、一个姓氏(`familyName` 属性),可能还有人格类型(`myersBriggs` 属性)以及与他人的距离或者位置信息(`based_near` 属性)。FOAF 规则的思想是,这些类和属性要足以表示人们在个人主页上显示的身份信息和朋友信息。【注:Myers–Briggs 即迈尔斯布里格斯类型指标,是一种人格类型理论模型】 + +FOAF 规则给出了 FOAF 文件的一份范例文档。该实例的格式是 XML,不过也可以使用 JSON 等格式进行编写: + +``` + + + Dan Brickley + + + + + +``` + +这份 FOAF 文件对一个人进行了描述,他的名字叫做 Dan Brickley,在 `http://danbri.org` 网站上设有个人主页,他还有个叫做“open ID”的东西,`/images/me.jpg` 表示图片,可能和 Brickley 的主页地址相关。FOAF 的元素名称都会有 `foaf:` 前缀,表示它们是 FOAF 命名空间的一部分。相应地,RDF 的元素名称前面也都会有 `rdf:`。 + +为了说明 FOAF 不限于 XML 格式,这里从维基百科摘取了一个相似的例子,格式为 JSON-LD [5][9]: + +``` + + { + "@context": { + "name": "http://xmlns.com/foaf/0.1/name", + "homepage": { + "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage", + "@type": "@id" + }, + "Person": "http://xmlns.com/foaf/0.1/Person" + }, + "@id": "https://me.example.com", + "@type": "Person", + "name": "John Smith", + "homepage": "https://www.example.com/" + } + +``` + +上面这份 FOAF 文件也描述了一个人,他的名字叫 John Smith,在 `www.example.com` 网站上有自己的主页。 + +理解 FOAF 原理的最好方法可能就是使用 [FOAF-a-matic][10],一个在线生成 FOAF 文档的工具。你可以在工具页面的表单里输入自己的相关信息,创建表示自己的 FOAF 文档(XML 格式)。FOAF-a-matic 说明了 FOAF 是如何避免在注册不同社交网站账号时重复输入社交信息的麻烦:如果每个社交网站都可以读取 FOAF,你只需要在没有注册过帐号的网站上引用你在 FOAF-a-matic 生成的 FOAF 文档,就可以注册一个新帐号了。 + +下面这个实例是我用 FOAF-a-matic 生成的,稍微复杂一些,表示我自己: + +``` + + + + + + + + + + Sinclair Target + Sinclair + Target + + + + + John Smith + + + + + + + +``` + +本例中,主要信息之前有很多其他内容,用于设置文档使用的各种 XML 命名空间。其中就有文档生成工具的信息,这样用户就能明白出了问题要向谁进行反馈。`foaf:Person` 元素给出了我的名字,电子邮箱和主页。其中嵌套了 `foaf:knows` 元素,说明我有个叫 John Smith 的朋友。 + +该例还体现了 FOAF 文档的另外一个重要功能:相互关联。还记得之前 John Smith 的例子吗?他在 `www.example.com` 上面有自己的主页。在我的这个例子中,我将 John Smith 列在了 `foaf:person` 元素里,上一级元素是 `foaf:knows`,表示我认识的人。此外,我还加入了 `rdfs:seeAlso` 元素,放了 John Smith 主页的 FOAF 文档链接。由于加入了这一链接,程序在读取我的 FOAF 文档时,就能根据该链接读取他的 FOAF 文档,查找到更多关于 John Smith 的信息。在之前 John Smith 的 FOAF 文档里,John 并没有提供任何有关朋友的信息(包括我在内),这意味着程序无法确定我们两人之间的朋友关系。但如果他加入了朋友信息,程序在读取我的文档之后,不仅会发现我,也会发现 John、他的朋友、他的朋友的朋友,以此类推,直到程序穷尽我和 John 各自的社交图谱。 + +该功能在 Facebook 用户的大家看来应该很熟悉了。FOAF 没有 `foaf:wall` 属性和 `foaf:poke` 属性,无法完美复制 Facebook 的功能。很明显,FOAF 也没有漂亮的蓝色界面,无法为用户提供可视化的 FOAF 社交网络,它只是一个词汇表。不过,Facebook 的核心功能是以分布式的方式提供的,我认为这正是 Facebook 垄断能力的关键。在 FOAF 标准下,好友可以将 FOAF 文档上传至个人主页,数字化展示他们真实的社交图谱,用户无需将个人数据的控制权交给 Facebook 这样一个中心化的数据库。要知道,由于对用户个人数据管理不当,扎克伯格在国会委员会召开之前的大多数时间都在向公众道歉。 + +### 暂时搁置的 FOAF + +浏览 FOAF 项目主页,你会发现在页面的右上角,有一张喜剧动画《飞出个未来》主角弗莱躺在休眠舱内的图片。这张图片是《飞出个未来》某一集的截图,讲的是弗莱在 1999 年不小心跌进了低温休眠舱,到了 2999 年再次苏醒过来的故事。我曾和 Brickley 在 Twitter 上简短地聊了一下,他告诉我,挂这张图片是为了告诉人们,未来 FOAF 项目将有机会重获新生,继续探索 20 世纪初关于网络运作方式的设想。 + +FOAF 绝不可能像《卫报》期望的那般变革社交网络。一些社交网站选择支持 FOAF 标准,比如 LiveJournal 和 MyOpera [6][11]。FOAF 甚至还在 2004 年霍华德·迪恩竞选总统时发挥了一定作用:一群博主和程序员合力搭建起了一个将网站连接起来的网络,称其为“迪恩空间DeanSpace”,帮助迪恩竞选,并在网站上使用 FOAF 记录迪恩的支持者和帮助迪恩竞选的志愿者[7][12]。不过,今天人们了解到 FOAF 主要还是因为它是 RDF 应用最为广泛的词汇表之一,而 RDF 正是现代网络的一个重要标准。如果在今天还能用到 FOAF 的话,可能就是谷歌“知识面板knowledge panels”所用技术的原型。知识面板是在用谷歌搜索时,出现在搜索结果右侧的一小块内容,会提供搜索关键词的基本信息。谷歌为推行其知识面板,使用了语义网项目的“后继者” schema.org 项目发布的词汇表[8][13]。schema.org 用来描述人物的词汇表似乎有着 FOAF 的影子,两者的目的大多也是相同的。 + +那么,为什么 FOAF 还是失败了呢?为什么人们都在用 Facebook 呢?且不提 FOAF 只是一个简单的标准,没有 Facebook 那么丰富的功能,如果 FOAF 发展势头保持下去,很有可能就会出现相关软件和应用,带来像 Facebook 那样的体验。问题是,在 Facebook 还未发展到能与之分庭抗礼之时,FOAF 这股分布式社交网络的新生力量为什么没能得到广泛应用呢? + +恐怕这个问题的答案并不唯一,不过非要我说的话,我觉得最关键的一点是,只有在每个人都有个人网站的情况下,FOAF 才有意义。19 世纪 90 年代末到 20 世纪初,人们理所当然地觉得网络最终会出现这种情况,因为就我所知,互联网的早期用户多是高产的博客写手,参政的技术专家,他们都希望能有个自己的平台。但是,现实情况却是,普通用户并不愿意学习怎么搭建和运营网站。FOAF 的用户可以掌控自己的社交信息并将其推送到各类社交网络上,省去了到处注册账号的麻烦。如果你已经有了储存社交信息的个人网站,那么这个想法应该很诱人。但实际上,相比较于买域名、折腾 XML 文档,大多数人觉得填写信息、注册 Facebook 账号来得更容易些。 + +那么,这与我最初的问题(Facebook 是否属于自然垄断)有什么相关呢?我不得不承认,FOAF 的案例说明,社交网络 _的确_ 拥有自然垄断属性。 + +其实,关于用户不愿管理自己的数据这一问题,本身并没有那么重要,因为通过让普通用户在熟悉技术的用户所设置的节点上储存个人信息,[Mastodon][14] 等现代分布式社交网络已经解决了这个问题。这也表明,人们多么不愿意折腾复杂的东西。对去中心化社交网络来说,这无疑是个坏消息,因为相较于中心化网络,去中心化网络更为复杂,这是用户再清楚不过的。 + +FOAF:如果我要写一个能读取个人网站上 FOAF 数据的程序,假设 Sally 的 FOAF 文档提到了 John Smith,说他在 `example.com` 有自己的主页;Sue 的 FOAF 文档也提到了 John Smith,说他在 `example.net` 有自己的主页。在这种情况下,我应该怎么办呢?到底是只有一个 John Smith 而他正好有两个主页呢,还是这两个 John Smith 是不同的人呢?如果两个 FOAF 文档中 John Smith 的邮箱都是 `johnsmith@gmail.com`,又该怎么办呢?这种身份问题是 FOAF 的软肋。在一封 2003 年的邮件里,Brickley 写道,由于不存在而且可能也不应该存在一个“全球性的身份识别系统”,FOAF 采取的方法只能是“多元的”[9][15]。FOAF 用户的邮件地址和主页地址等部分属性具有特殊性,因为邮件地址和主页地址都是独一无二的。因此,这些内容不可能相同的属性可以将人们的多个 FOAF 文档合并起来(用 Libby Miller 的话来说,“挤”在一起)。不过这些特殊属性不存在所谓优先级的说法,所以前面 John Smith 的问题还是不好解决。换句话说,是该相信主页,判定他们不是同一个人呢?还是要相信邮件地址,判定他们是同一个人呢?我真的能够在不干扰到用户的前提下,写出一个程序,解决这类问题吗? + +Facebook 拥有单一的数据库,不用顾虑政治性问题,有条件创建“全球性的身份识别系统”,给每个人发行独一无二的身份 ID,于是问题就迎刃而解了。 + +如果人们真的在乎对自己数据的持有权和掌控权,单是因为复杂难解应该不足以导致分布式社交网络的失败。但是 FOAF 的失败表明,人们从未重视过对自己数据的掌控权。正如一位博主所说,“所谓‘用户想要拥有自己的数据’只不过是一个想法,和实际应用没有关系”[10][16]。如果用户不够重视个人数据,无法忍受过于复杂的平台,如果中心化系统比去中心化系统更为简单易用,如果中心化系统有发展为封闭系统的趋向,借此取得成功,享受网络效应带来的巨大效益,那么社交网络确实属于自然垄断。 + +即便如此,我认为地铁系统的案例和社交网络的案例仍存在不同之处。我可以欣然接受 MTA 对地铁交通的垄断,因为我希望地铁系统本身就应该是长期垄断行业。如果纽约地铁只有一家运营商,那么它只能是政府,至少在名义上,政府比没有竞争对手的私企更加负责。但是我却不希望社交网络属于自然垄断。地铁建好了基本上就是一成不变的,但数字世界却在不断演变发展。在今天,分布式社交网络也许比中心化网络更加复杂,就好比带两张地铁卡总是比只带一张要麻烦的多。不过,在未来,互联网会发生根本性变革,那时分布式技术将会更易于使用。 + +如果未来果真如此,FOAF 可能会作为建立分布式社交网络的第一次尝试为人们记住。在企业大型数据库所驱动的中心化网络时代结束之后,分布式网络将会得到人们的长期青睐。 + +_如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][28],也可通过 [RSS feed][29] 订阅,获取更多最新文章。_ + + + + 1. 请注意,这里我没有用“消亡”一词。[↩︎][20] + + 2. Jack Schofield, “Let’s be Friendsters,” The Guardian, February 19, 2004, accessed January 5, 2020, . [↩︎][21] + + 3. Dan Brickley and Libby Miller, “Introducing FOAF,” FOAF Project, 2008, accessed January 5, 2020, . [↩︎][22] + + 4. 同上。[↩︎][23] + + 5. Wikipedia contributors, “JSON-LD,” Wikipedia: The Free Encyclopedia, December 13, 2019, accessed January 5, 2020, . [↩︎][24] + + 6. “Data Sources,” FOAF Project Wiki, December 11 2009, accessed January 5, 2020, . [↩︎][25] + + 7. Aldon Hynes, “What is Dean Space?”, Extreme Democracy, accessed January 5, 2020, . [↩︎][26] + + 8. “Understand how structured data works,” Google Developer Portal, accessed January 5, 2020, . [↩︎][27] + + 9. tef, “Why your distributed network will not work,” Progamming is Terrible, January 2, 2013, . [↩︎][28] + + 10. Dan Brickley, “Identifying things in FOAF,” rdfweb-dev Mailing List, July 10, 2003, accessed on January 5, 2020, . [↩︎][29] + + + + +-------------------------------------------------------------------------------- + +via: https://twobithistory.org/2020/01/05/foaf.html + +作者:[Two-Bit History][a] +选题:[lujun9972][b] +译者:[aREversez](https://github.com/aREversez) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://twobithistory.org +[b]: https://github.com/lujun9972 +[1]: tmp.mJHAgyVHGr#fn:1 +[2]: https://en.wikipedia.org/wiki/Fediverse +[3]: https://en.wikipedia.org/wiki/Prodigy_(online_service) +[4]: https://twobithistory.org/2018/05/27/semantic-web.html +[5]: https://www.ftrain.com/google_takes_all +[6]: tmp.mJHAgyVHGr#fn:2 +[7]: tmp.mJHAgyVHGr#fn:3 +[8]: tmp.mJHAgyVHGr#fn:4 +[9]: tmp.mJHAgyVHGr#fn:5 +[10]: http://www.ldodds.com/foaf/foaf-a-matic +[11]: tmp.mJHAgyVHGr#fn:6 +[12]: tmp.mJHAgyVHGr#fn:7 +[13]: tmp.mJHAgyVHGr#fn:8 +[14]: https://en.wikipedia.org/wiki/Mastodon_(software) +[15]: tmp.mJHAgyVHGr#fn:9 +[16]: tmp.mJHAgyVHGr#fn:10 +[17]: https://twitter.com/TwoBitHistory +[18]: https://twobithistory.org/feed.xml +[19]: https://twitter.com/TwoBitHistory/status/1192196764239093760?ref_src=twsrc%5Etfw +[20]: tmp.mJHAgyVHGr#fnref:1 +[21]: tmp.mJHAgyVHGr#fnref:2 +[22]: tmp.mJHAgyVHGr#fnref:3 +[23]: tmp.mJHAgyVHGr#fnref:4 +[24]: tmp.mJHAgyVHGr#fnref:5 +[25]: tmp.mJHAgyVHGr#fnref:6 +[26]: tmp.mJHAgyVHGr#fnref:7 +[27]: tmp.mJHAgyVHGr#fnref:8 +[28]: tmp.mJHAgyVHGr#fnref:9 +[29]: tmp.mJHAgyVHGr#fnref:10 From 5a93d3b20023a3c49a2ce246627e6da5fef09e9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:46:03 +0800 Subject: [PATCH 2108/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221115.0=20=E2=AD=90=EF=B8=8F=20You=20Can=20Now=20?= =?UTF-8?q?Install=20Unity=207.6=20Desktop=20on=20Arch=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Now Install Unity 7.6 Desktop on Arch Linux.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md diff --git a/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md new file mode 100644 index 0000000000..855082ebf9 --- /dev/null +++ b/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md @@ -0,0 +1,70 @@ +[#]: subject: "You Can Now Install Unity 7.6 Desktop on Arch Linux" +[#]: via: "https://news.itsfoss.com/unity-arch-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +You Can Now Install Unity 7.6 Desktop on Arch Linux +====== + +Unity Desktop is a classic desktop environment built by Canonical and was a part of Ubuntu from 2010 to 2017 but dropped in favor of GNOME. + +And, we thought it was killed forever. But it made a comeback. + +Earlier this year, a revamped version of Unity was released after a long 6-year period since its last update in May 2016. + +The development was spearheaded by a young developer [Rudra Saraswat][1], who is also the creator of [Ubuntu Unity][1], an official flavor of Ubuntu now. + +The release of Unity 7.6 marked the arrival of a host of improvements. + +And, to take that further, Unity 7.6 has been made available for Arch Linux. The developer mentions: + +> This port is based on an earlier effort, Unity-for-Arch by chenxiaolong (maintained from 2011-2016). + +### Trying Unity 7.6 on Arch Linux + +![unity on arch linux][2] + +First, you must ensure that you have Arch Linux already set up. + +Then you can follow these steps to run Unity 7.6 on Arch Linux: + +- **Install '[Paru][3]', it is an AUR helper.** +- **Install a script called 'unity-installer-arch' using 'paru -S unity-installer-arch'** +- **Run 'unity-installer-arch' in a TTY/terminal window.** +- **Select 'Install Unity desktop'.** +- **Change default display manager to 'lightdm'.** +- **Use 'unity-greeter' as the default greeter.** + +My colleague Sreenath tried it out, and during installation, he had to start with a fresh copy of Arch because of multiple dependency conflicts. + +It may be different for you, but do keep that in mind. If you do not want to spend time on that, you might want to try [Ubuntu Unity][4] instead. + +### Wrapping Up + +For Unity desktop fans, this is a good thing. More distributions may consider having a variant with a Unity desktop on board. + +Do you want that to happen? + +_💬 Are you an existing user of Unity desktop? Want to give it a try? Share your thoughts in the comments._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unity-arch-linux/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://about.ruds.io +[2]: https://news.itsfoss.com/content/images/2022/11/unity_for_arch.jpg +[3]: https://itsfoss.com/paru-aur-helper/ +[4]: https://ubuntuunity.org From d5f25c1ecbd4400666623b290d9057cf2f72fb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:50:08 +0800 Subject: [PATCH 2109/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221117.0=20=E2=AD=90=EF=B8=8F=20Authenticator=20A?= =?UTF-8?q?=20Simple=20Open-Source=20App=20to=20Replace=20Authy=20on=20Lin?= =?UTF-8?q?ux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e Open-Source App to Replace Authy on Linux.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md diff --git a/sources/tech/20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/sources/tech/20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md new file mode 100644 index 0000000000..0cccbd0d2b --- /dev/null +++ b/sources/tech/20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md @@ -0,0 +1,96 @@ +[#]: subject: "Authenticator: A Simple Open-Source App to Replace Authy on Linux" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Authenticator: A Simple Open-Source App to Replace Authy on Linux +====== + +Authy is a popular app for storing and managing two-factor codes. It is a cloud-based service that gives you convenience with industry-grade security. Unfortunately, it is not open-source. + +Would you consider using a more straightforward (and open-source) authenticator app on your Linux desktop? + +Well, of course, you cannot cloud sync here. But you can generate a backup for the two-factor authentication codes. Keeping that in mind, let me tell you more about Authenticator. + +![authenticator app ft][1] + +### Authenticator: Generate Two-Factor Authentication Codes + +When you enable two-factor authentication with online services, most services give you a token/QR code that you can add/scan to generate codes. + +Authenticator is one such app for Linux that lets you add two-factor authentication codes. + +![authenticator ui][2] + +It is a free and open-source app with essential features to add a variety of tokens and websites that support two-factor authentication. + +**Recommended Read**: [Best Password Managers for Linux Desktop][3] + +### Features of Authenticator + +![authenticator auto lock][4] + +Some of the essential options that you get with it include: + +- QR Code scanner using a camera or a screenshot +- Protect the app using a passphrase +- Autolock the app +- Support for different algorithms (SHA-1/SHA-256/SHA-512) +- Time-based/Counter-based/Steam computing methods supported +- Backup/Restore options (FreeOTP, Aegis, andOTP, Bitwarden, and Google Authenticator) + +You get customization options and the ability to add a custom provider as per the support provided by the service. One can add a custom icon for the provider to help you distinguish between the authentication codes. + +![authenticator custom provider][5] + +For the most part, the default settings should work with websites. However, you might want to check the exact details with the provider if it does not work. + +The app also features multiple providers out of the box, like Google Drive and Proton Mail. So, you do not need to add custom configurations for every entry you add. + +### Installing Authenticator on Linux + +![authenticator add new code][6] + +Authenticator is available as a Flatpak. So, you can install it on any Linux distribution. + +Just type in the following command to get it installed: + +``` +flatpak install flathub com.belmoussaoui.Authenticator +``` + +You can head to its [Flathub][7] or GitLab page to explore more. + +If you are new to the Linux world, refer to our [Flatpak guide][8] to set it up. Your software center might already have Flatpak integration enabled out of the box. You can search for it to get it installed in such a case. + +### Use Open Source Authenticator App For Security and Reliability + +We often depend on cloud-powered tools for everything. Sure, it is convenient. + +However, sometimes desktop apps are more helpful. If you are in the same boat and thinking of making a switch, Authenticator can be an excellent app to have installed for two-factor authentication codes. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[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/wp-content/uploads/2022/11/authenticator-app-ft.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-ui.png +[3]: https://itsfoss.com/password-managers-linux/ +[4]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-auto-lock.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-custom-provider.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-add-new-code.png +[7]: https://flathub.org/apps/details/com.belmoussaoui.Authenticator +[8]: https://itsfoss.com/flatpak-guide/ From 8ce29a9b47ceb5390bc5c2de32a3c8b617875566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:52:05 +0800 Subject: [PATCH 2110/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20and=20Use=20htop=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ How to Install and Use htop in Linux.md | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md diff --git a/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md b/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md new file mode 100644 index 0000000000..8837e31e64 --- /dev/null +++ b/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md @@ -0,0 +1,197 @@ +[#]: subject: "How to Install and Use htop in Linux" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install and Use htop in Linux +====== + +Windows has its famous task manager. Linux has several GUI and [command line system monitors][1]. Every Linux system comes with a couple of them. + +On the command line, the top command is perhaps the goto command for checking the system resource utilization quickly. + +[Using top command][2] apart from viewing the processes could be tricky. And this is where htop tops top. Pun aside, htop is a top-like utility but with a better and user-friendly interface. + +In this guide, I will be showing you how you can install and use htop in Linux. + +### Install htop utility in Linux + +You won’t find htop pre-installed on the majority of Linux distributions but being one of the most popular utilities, you will find htop in default repositories of almost every Linux distro. + +So if your machine is powered by something that is based on Debian/Ubuntu, the following command should get your job done: + +``` +sudo apt install htop +``` + +Similarly, if you’re on Fedora, you can use the given command: + +``` +sudo dnf install htop +``` + +And there’s also a snap package available if you like to avoid building packages from the source: + +``` +sudo snap install htop +``` + +If you’re on something else or want to build from a source, you can always refer to [htop’s GitHub page][3] for detailed instructions. + +Once you’re done with the installation, you just have to use the htop command in the terminal, and it will reflect all the ongoing processes in your system: + +``` +htop +``` + +![install and use htop][4] + +In htop, there is a color coding for the individual section, so let’s have a look at what each color indicates while using htop. + +##### What different colors and statistics indicate in htop + +So let’s start with the CPU usage bar, as it utilizes the maximum number of colors. + +#### CPU usage bar + +![cpu process in htop][5] + +- **Green:** Resources consumed by user processes. +- **Blue:** Indicates low-priority threads. +- **Red:** CPU resources used by system (kernel) processes. +- **Aqua blue:** Indicates virtualized processes. + +#### Memory bar + +![memory bar in htop][6] + +- **Green:** Memory being utilized by system processes. +- **Blue:** Memory used by buffer pages. +- **Orange:** Memory allocated for cache pages. + +#### Statistics + +![task statistics in htop][7] + +- **1.86** is the average load for the last minute. +- **1.75** is the average load for the last 4 minutes. +- **1.47** is the average load for the last 15 minutes. + +- **Tasks: 166** shows there is a total of 166 ongoing processes. +- **1249 thr** indicates that those 166 processes are handled by 1249 threads. +- **1 running** indicates that from those 166 processes, only one task is in a state of running. +- **The load** average indicates the average system load over a period of time. Since my system is Hexa-Core, anything under 6.0 is ok. This number may exceed, such as 6.1, so the upcoming processes have to wait for ongoing tasks to be completed. +- **Uptime** is nothing but hours since you logged in. + +Now, let’s jump to the actual implementation part. + +### How to use htop in Linux + +As the htop is mainly used to check for system resources, let’s have a look at how you can sort the processes based on resource consumption. + +#### Sort processes based on Resource Consumption + +The easiest way to sort processes based on CPU and memory usage is to use your mouse pointer. Hover the cursor over the CPU or Memory section and click on any of those. + +And there you will see an icon of a triangle `△` and based on that you can sort the process based on highest to lowest resource consumption: + +But if you are dealing with remote servers, you might not have the privilege to use a mouse and in those cases, you can use keyboard shortcuts. + +Press **F6** and it will bring up every option available to sort the ongoing processes: + +![sort processes in htop using keyboard shortcut][8] + +You can use arrow keys to select a preferred sorting option and then press the Enter key, results should reflect as intended. + +#### Search for a specific process + +If you want to look for a specific process and its resource consumption, you can press **F3** and it will get you a search prompt as shown below: + +![search processes in htop][9] + +For example, I searched for htop, and it highlighted the process with light orange color. And you can press **F3** for the next result. + +#### Filter ongoing processes + +While searching may get you the intended results, I find the filtering process using keywords even more effective as it presents a list of processes. + +To filter processes, you have to press **F4** and type the name of the process. For example, I filtered processes related to gnome-boxes: + +![filter processes in htop][10] + +#### Kill process + +Once you made it to find the most resource-hungry and unnecessary process, you just have to press **F9**, and it will present you with termination signals: + +![kill process in htop][11] + +I can’t cover all 15 termination signals, we have a separate guide on [different termination signals][12], so you can refer to that guide if you intend to learn more about them. + +But I will recommend you use SIGTERM first, as it is the most efficient and friendly way to kill the process. + +#### Customize htop + +Here, my aim is to add a date and time and change the color scheme to monochrome. + +First, press **F2**, and it will being setup prompt allowing users to change how htop looks: + +![customize htop in ubuntu][13] + +First, hover to the `Colors` sections and press Enter and it will allow us to change the color scheme. From there, select the Monochrome option and press Enter to save changes: + +![change htop colors in linux][14] + +Now, go back to the setup option, and from there, use the left arrow key to explore available meters: + +![explore available meters in htop][15] + +As I intend to add the Date and time, I have to press Enter once I find the option for it. + +Here, it will allow you to place the date and time in any of the left and right columns and you can use the up and down arrow keys to change the order of columns. + +So I placed the date and time meter with the last styling option (you can change styles using the spacebar): + +![add date and time htop][16] + +Once you are done aligning the date and time meter, press the enter key to save changes and **F10** to close the setup prompt. + +### Wrapping Up + +In this guide, I explained how you can install the htop utility in different Linux distributions and how you can use some basic functionalities of htop to manage system resources efficiently. + +But htop can do a lot more and for that and to learn more, you can always refer to its man page, and we have a detailed guide on [how you can get the most out of the man page in Linux][17]. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/linux-system-monitoring-tools/ +[2]: https://linuxhandbook.com/top-command/ +[3]: https://github.com/htop-dev/htop +[4]: https://itsfoss.com/wp-content/uploads/2022/11/install-and-use-htop.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/cpu-process-in-htop-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/memory-bar-in-htop.png +[7]: https://itsfoss.com/wp-content/uploads/2022/11/task-statistics-in-htop.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/sort-processes-in-htop-using-keyboard-shortcut.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/search-processes-in-htop.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/filter-processes-in-htop.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/kill-process-in-htop.png +[12]: https://linuxhandbook.com/termination-signals/ +[13]: https://itsfoss.com/wp-content/uploads/2022/11/customize-htop-in-ubuntu.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/change-htop-colors-in-linux.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/explore-available-meters-in-htop.png +[16]: https://itsfoss.com/wp-content/uploads/2022/11/add-date-and-time-htop.png +[17]: https://linuxhandbook.com/man-pages/ From e7e0279c3a4f8840073f7c2249dc0b4c5b017cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:53:05 +0800 Subject: [PATCH 2111/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221118.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Fixing=20=E2=80=9CKey=20is=20stored=20in=20legacy=20trusted.gpg?= =?UTF-8?q?=20keyring=E2=80=9D=20Issue=20in=20Ubuntu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ed in legacy trusted.gpg keyring” Issue in Ubuntu.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md diff --git a/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md b/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md new file mode 100644 index 0000000000..6bdb4bc00f --- /dev/null +++ b/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md @@ -0,0 +1,144 @@ +[#]: subject: "Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu +====== + +If you use a PPA or add an external repository in Ubuntu 22.04 and later versions, chances are that you will see a message like this: + +``` +W: https://packagecloud.io/slacktechnologies/slack/debian/dists/jessie/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. +``` + +![ubuntu key is stored legacy][1] + +First thing first. It is not an error, it is a warning message. A warning does not stop the procedure. You can continue upgrading your system even if you see this warning message during an update. + +If you don’t like seeing the warning message, you can take some manual steps to get rid of it. + +There are two ways; the proper way and the quick and dirty way. Read both methods and see which one you feel comfortable with. + +### Method 1: Import the key [Proper but complicated way] + +First, list all the GPG keys added to your system. + +``` +sudo apt-key list +``` + +This will show a huge list of keys stored in your system. What you have to do here is to look for the keys associated with the warning message. + +``` +[email protected]:~$ sudo apt-key list +[sudo] password for abhishek: +Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). +/etc/apt/trusted.gpg +-------------------- +pub rsa4096 2014-01-13 [SCEA] [expired: 2019-01-12] + 418A 7F2F B0E1 E6E7 EABF 6FE8 C2E7 3424 D590 97AB +uid [ expired] packagecloud ops (production key) <[email protected]> + +pub rsa4096 2016-02-18 [SCEA] + DB08 5A08 CA13 B8AC B917 E0F6 D938 EC0D 0386 51BD +uid [ unknown] https://packagecloud.io/slacktechnologies/slack (https://packagecloud.io/docs#gpg_signing) <[email protected]> +sub rsa4096 2016-02-18 [SEA] + +/etc/apt/trusted.gpg.d/audio-recorder-ubuntu-ppa.gpg +---------------------------------------------------- +pub rsa4096 2015-08-30 [SC] + 42EF 41ED 9813 B713 D4F1 F06D 5CF1 2638 ACF9 669F +uid [ unknown] Launchpad PPA for Team audio-recorder + +/etc/apt/trusted.gpg.d/danielrichter2007-ubuntu-grub-customizer.gpg +------------------------------------------------------------------- +pub rsa1024 2010-10-08 [SC] + 59DA D276 B942 642B 1BBD 0EAC A8AA 1FAA 3F05 5C03 +``` + +How do you do that? Read the message carefully. + +``` +W: https://packagecloud.io/slacktechnologies/slack/debian/dists/jessie/InRelease: Key is stored in legacy +``` + +In my case, the repository has keywords like packagecloud, slacktechnologies. It is shown at the top of the apt-key list output. You may have to scroll a bit in your case. + +In this rare case, the external repository added by Slack, has two GPG keys. One of them is expired and I’ll ignore it. You may not have such a situation. + +You should the last 8 characters (excluding the space) under the line after pub. + +``` +/etc/apt/trusted.gpg +-------------------- +pub rsa4096 2014-01-13 [SCEA] [expired: 2019-01-12] + 418A 7F2F B0E1 E6E7 EABF 6FE8 C2E7 3424 D590 97AB +uid [ expired] packagecloud ops (production key) <[email protected]> + +pub rsa4096 2016-02-18 [SCEA] + DB08 5A08 CA13 B8AC B917 E0F6 D938 EC0D 0386 51BD +uid [ unknown] https://packagecloud.io/slacktechnologies/slack (https://packagecloud.io/docs#gpg_signing) <[email protected]> +``` + +So from the line “DB08 5A08 CA13 B8AC B917 E0F6 D938 EC0D 0386 51BD”, I’ll take the last 8 characters “0386 51BD”, remove the space and then use it to import the GPG key in its dedicated file under the /etc/apt/trusted.gpg.d directory: + +``` +sudo apt-key export 038651BD | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/slack.gpg +``` + +I created a new file slack.gpg here, in case you didn’t notice it. I named it slack.gpg because it is associated with Slack application I installed earlier. The filename does not matter but it’s good for identification. + +If the command runs successfully, you won’t see any message. You can verify that by checking if the newly created gpg file exists or not. + +![import gpg key to trusted ubuntu][2] + +Run the update again and now you should not see the warning message anymore. + +### Method 2: Copy to the trusted.gpd.d directory [Quick and dirty way] + +If you don’t feel comfortable doing all the above stuff manually, well, you can ignore the warning message. I mean, ignoring it is always an option. + +Another option is to copy the /etc/apt/trusted.gpg file to /etc/apt/trusted.gpg.d directory. After all, Ubuntu only complains that it needs the GPG keys in /etc/apt/trusted.gpg.d directory. + +You’ll still have to use the terminal. Open it and use the following command: + +``` +sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d +``` + +Now, if you run the update, you won’t see the “Key is stored in legacy trusted.gpg keyring” warning message anymore. + +![quick dirty way to fix apt key stored legacy][3] + +### Conclusion + +I have written a detailed article on [apt-key deprecation][4]. Apparently, that article had some readers confused and hence I wrote this one to give them direct steps for getting rid of the message. + +As I said before, it is a warning message and can be ignored for now. The onus to ‘fix’ this issue lies on the external software developers and Ubuntu developers. The external software developers should make sure that their GPG keys are no longer added in the /etc/apt/trusted.gpg file. + +The end users should not take the pain for their laziness. + +So, which method did you use to get rid of the ‘key is stored in legacy’ warning message? The first one or the second one? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/ubuntu-key-is-stored-legacy.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/import-gpg-key-to-trusted-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/quick-dirty-way-to-fix-apt-key-stored-legacy.png +[4]: https://itsfoss.com/apt-key-deprecated/ From b7aee9fd0ee32d227e54c563e36629275ed4e5a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:54:11 +0800 Subject: [PATCH 2112/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221119.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?7=20Reasons=20Why=20Cinnamon=20is=20a=20Fantastic=20(Yet=20Unde?= =?UTF-8?q?rrated)=20Linux=20Desktop=20Environment.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...stic (Yet Underrated) Linux Desktop Environment.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md diff --git a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md new file mode 100644 index 0000000000..b0bb7c538a --- /dev/null +++ b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md @@ -0,0 +1,185 @@ +[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment +====== + +Linux Mint is one of my favorite distributions. The flagship (or default) Cinnamon desktop is why I like it so much. + +The user experience offered by Cinnamon desktop may not be mind-blowing or fancy. But, the desktop environment provides enough reasons for users to like it and easily work with it to get things done. + +At the end of the day, that’s what we want. A user interface that works as expected and does not get in the way. + +I think Cinnamon desktop does a few things right to give you an exciting experience. Let me mention some of those here. + +**If you did not know**, the Cinnamon desktop is a fork of the GNOME 3 created in **2011** by **Clement Lefebvre** (Linux Mint creator) with enhancements over the years. + +### 1. Familiar User Interface + +![linux mint 21 full][1] + +The primary objective of building Cinnamon was to keep the GNOME 2 desktop style alive. + +And that is why you get a familiar desktop layout compared to the most popular consumer desktop operating system, i.e., Windows. + +Of course, Windows 11 has evolved its usual layout with time. But, accessing a start menu, a taskbar, system icons in the tray, and a couple of window decorations make it easy to grasp. + +Whether you are a Windows user or a macOS user, the Cinnamon desktop layout should not feel challenging at all. + +![linux mint welcome][2] + +To help you further, the “**Welcome Screen**” in Linux Mint provides you with all the information quickly. + +### 2. Lightweight + +To get a comfortable experience with Cinnamon desktop (usually with Linux Mint), you have the following system requirements: + +- 4 GB RAM +- 100 GB of disk space +- 1024×768 resolution screen + +In the modern computing age, these specifications should suit almost everyone. So, you do not have to worry about needing an insane amount of memory or disk space to run a Linux distro powered by Cinnamon. + +Of course, you can try [installing Cinnamon desktop on Ubuntu][3]. + +But, for this article, we consider Linux Mint as the ideal use case. + +### 3. Fast Performance Without Sacrificing User Experience + +When we think about a lightweight desktop environment—we usually imagine a bland user interface that focuses on performance. + +![linux mint perf][4] + +With Cinnamon desktop, that is not the case. It does include subtle animations and features icons/themes that make up for a modern look, if not the best. + +It looks pleasing to the eyes with a minimal approach. + +Typically, I am a sucker for pretty user interfaces, but I can still live with Linux Mint’s straightforward user experience running it on a dual-monitor setup (**1440p + 1080p**). + +It may not be the best dual-monitor experience with Linux Mint Cinnamon edition (no dock/panel on the second screen for me). So, there is little room for improvement. + +### 4. Default Customization Options + +You might already know that KDE is probably the king when it comes to giving the ability to customize out-of-the-box. + +We have super useful guides if you are curious about going that way: + +- [KDE Customization Guide][5] +- [How to Properly Theme KDE Plasma [In-depth Guide]][6] +- [Best Gorgeous KDE Plasma Themes][7] + +But, for many users, it is **overwhelming**. + +I think Linux Mint gives the right amount of extra controls/customizations, which you also learn on its **Welcome Screen**. + +![cinnamon theme customize][8] + +Some of the elements that you can easily customize include: + +- Desktop color (accent) +- Light/Dark theme toggle +- Panel layout +- Icons, buttons, and mouse pointer. + +You can head to the system settings and navigate to “Themes” to find the essential tweaks. + +**Recommended Read:**[7 Ways to Customize Cinnamon Desktop on Linux][9] + +### 5. Official Add-ons to Spice Up Your Experience + +![cinnamon desklet][10] + +Linux Mint supports various add-ons to enhance your experience. These are all part of its [Cinnamon Spices][11] offering. They include: + +- Themes +- Extensions +- Applets +- Desklets + +Applets and Desklets are tiny programs that you can add on top of the panel (near the system tray) and the desktop, respectively. + +![applet cinnamon][12] + +You can manage system default applets or download more from the official repositories: + +![applets cinnamon][13] + +Similarly, you can add a Desklet from the available defaults or get a new one from the repositories. + +![desklet cinnamon][14] + +Plenty of valuable utilities to monitor system resources, check the weather, and more. + +In addition, you get access to various themes built by the community that could easily give you a look you always wanted. + +![cinnamon theme][15] + +To complement all the above spices, you can use extensions to make the panel transparent, add a watermark to your desktop, enable windows tiling, and add some exciting window animations. + +![linux mint extensions][16] + +### 6. Compatible and Seamless User Experience + +Why do I highlight the user experience again? + +The best part about Cinnamon desktop is that it evolves in a way that respects and supports all functionalities. + +For instance, if you want to install an app you enjoyed using on KDE Plasma, it should work the same way here. There’s nothing special with Cinnamon desktop that would break the experience. + +![gnome accounts cinnamon][17] + +Similarly, the desktop adds features that try to co-exist with services from other desktop environments. For instance, calendar events support using GNOME Online Accounts. + +### 7. Panel Customization + +![linux mint panel][18] + +The dock, taskbar, or panel comprises an integral part of the user interface. + +Yes, other desktop environments allow you to customize the same to some extent. With Cinnamon, you get a good amount of control to tweak it. + +I think you get all the essential options a user would want. + +### Wrapping Up + +GNOME and KDE Plasma are popular desktop environments. However, Cinnamon is not far off on essential parts to provide an optimal user experience. + +_What do you think of the Cinnamon desktop environment? Do you prefer to try it with Linux Mint? Share your thoughts in the comments section below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[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/wp-content/uploads/2022/11/linux-mint-21-full.jpg +[2]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-welcome.png +[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/ +[4]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-perf.png +[5]: https://itsfoss.com/kde-customization/ +[6]: https://itsfoss.com/properly-theme-kde-plasma/ +[7]: https://itsfoss.com/best-kde-plasma-themes/ +[8]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme-customize.png +[9]: https://itsfoss.com/customize-cinnamon-desktop/ +[10]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-desklet.png +[11]: https://cinnamon-spices.linuxmint.com +[12]: https://itsfoss.com/wp-content/uploads/2022/11/applet-cinnamon.png +[13]: https://itsfoss.com/wp-content/uploads/2022/11/applets-cinnamon.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/desklet-cinnamon.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme.png +[16]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-extensions.png +[17]: https://itsfoss.com/wp-content/uploads/2022/11/gnome-accounts-cinnamon.png +[18]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-panel.png From 87795780f696be9c9db0e17159e5024452e79968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:55:16 +0800 Subject: [PATCH 2113/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221121.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20htop=20Alternatives=20to=20Enhance=20Your=20Linux=20System?= =?UTF-8?q?=20Monitoring=20Experience.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Enhance Your Linux System Monitoring Experience.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/tech/20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md diff --git a/sources/tech/20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/sources/tech/20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md new file mode 100644 index 0000000000..fb2969556c --- /dev/null +++ b/sources/tech/20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md @@ -0,0 +1,159 @@ +[#]: subject: "5 htop Alternatives to Enhance Your Linux System Monitoring Experience" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 htop Alternatives to Enhance Your Linux System Monitoring Experience +====== + +htop is a popular command-line tool to help monitor the system’s resources and performance on Linux. + +**It’s better than top**, often available by default out of the box. + +With htop, you can filter and sort processes to understand things better, get a tree view of the processes running, and kill processes when needed. + +![htop 2022][1] + +I use htop over other system monitoring tools because it displays what’s essential to me and allows terminating rogue/frozen processes when I need to take control of running services. + +But, if you want something else that displays more info or looks different, what are some **htop alternatives**? Let’s take a look. + +**Recommended Read**: [7 System Monitoring Tools for Linux to Keep an Eye on Vital System Stats][2] + +### 1. atop + +![atop 2022][3] + +[atop][4] is all about running process details. You get all the data you need to understand the processing on your system. + +It also provides the ability to make a permanent log of resource utilization for long-term analysis. A system administrator might find this more useful than anyone else. + +Unfortunately, it does not provide you with a pretty output. So, if you want that, keep looking at the other options below. + +#### How to install atop? + +For Ubuntu/Debian-based distributions, type in: + +``` +sudo apt install atop +``` + +### 2. vtop + +![vtop 2022][5] + +[vtop][6] is the perfect system monitoring utility if you want a good-looking output and essential features to manage processes. + +The output looks like a GUI in a terminal, as I’ve stated in some of my other articles. You can have mouse support or choose to disable it. The theme can also be customized. + +It is built using Node.js. So, you need to install additional packages to get it installed. + +Unfortunately, this project seems to be no longer actively maintained. But, it worked for me at the time of writing this article. + +#### How to install vtop? + +For Ubuntu-based distros, enter the following commands in the terminal: + +``` +sudo apt install nodejs +sudo apt install npm +sudo npm install -g vtop +``` + +### 3. btop++ + +![btop][7] + +[btop++][8] is a C++ version of bashtop and bpytop. And, yes, it is the third iteration of those projects by the same developer. + +btop++ includes full mouse support, features a game-inspired menu system, lets you filter processes, get a tree view, and more. + +#### How to install btop++? + +Using the official repositories, you can easily install it on Fedora, OpenSUSE, and FreeBSD. + +For Fedora, you can type in: + +``` +sudo dnf install btop +``` + +You can explore its [GitHub page][8] for options to install on other Linux distributions. + +### 4. Glances + +![glances 2022][9] + +Glances is similar to htop, but with more features. + +It is a cross-platform system monitoring utility that can export data as CSV or other formats for InfluxDB, Elasticsearch, and more. + +You can also utilize its web user interface to check the stats remotely or without access to the terminal. + +#### How to Install Glances? + +For Ubuntu-based distros, you can type in: + +``` +sudo apt install glances +``` + +### 5. nmon + +![nmon 2022 1][10] + +[nmon][11] is an impressive monitoring utility that lets you control what you want to display as the output. + +You can extract the monitoring data (export it as CSV) and use it for further analysis. It is easy to toggle statistics and switch between different views. + +By default, it refreshes the data every two seconds, but you can customize it and access more options to tweak your experience. + +#### How to install nmon? + +You can find it in the official repositories. For Ubuntu-based distros, type in the following in the terminal: + +``` +sudo apt install nmon +``` + +### Wrapping Up + +![top 2022][12] + +The top command utility comes baked in with your Linux system. If you want a no-nonsense monitoring utility and want to keep an eye on system processes and some stats, top is sufficient. + +Not sure if I can count it as an enhanced experience over htop and that’s the reason why top is not included in the main list. + +As you can see here, some monitoring utilities may be fun and prove to be more insightful than htop. + +_What is your favorite htop replacement? Do you think htop is more than enough for your use-case? Feel free to let me know your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[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/wp-content/uploads/2022/11/htop-2022.png +[2]: https://itsfoss.com/linux-system-monitoring-tools/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/atop-2022.png +[4]: https://www.atoptool.nl/index.php +[5]: https://itsfoss.com/wp-content/uploads/2022/11/vtop-2022.png +[6]: https://github.com/MrRio/vtop +[7]: https://itsfoss.com/wp-content/uploads/2022/11/btop.png +[8]: https://github.com/aristocratos/btop +[9]: https://itsfoss.com/wp-content/uploads/2022/11/glances-2022.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/nmon-2022-1.png +[11]: https://nmon.sourceforge.net/pmwiki.php?n=Main.HomePage +[12]: https://itsfoss.com/wp-content/uploads/2022/11/top-2022.png From 194cb375e7f8fec47f8713a2fcf5494bc5452ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:55:55 +0800 Subject: [PATCH 2114/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221121.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Learn=20Git=203=20commands=20to=20level=20up=20your=20skill.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Learn Git 3 commands to level up your skill.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md diff --git a/sources/tech/20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/sources/tech/20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md new file mode 100644 index 0000000000..80773e6f6f --- /dev/null +++ b/sources/tech/20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md @@ -0,0 +1,132 @@ +[#]: subject: "Learn Git: 3 commands to level up your skill" +[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" +[#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Git: 3 commands to level up your skill +====== + +When I talk to people about Git, almost everyone has a strong reaction to [the `git rebase` command][1]. This command has caused many people to change directory, remove the repository, and just re-clone to start over. I think this comes from misconceptions about how branching actually works, a pretty terrible default interface, and some merge conflicts mucking things up. + +### Git squash + +If you've ever made a lot of commits locally and wish there was a way to smash them all down into a single commit, you're in luck. Git calls this concept "squashing commits." I discovered the concept while working on documentation. It took me over a dozen commits to finally get a bit of markdown just right. The repo maintainer didn't want to see all my attempts cluttering up the project's history, so I was told to "just git squash your commits." + +Squashing sounded like a solid plan. There was just one issue. I didn't know how to do it. As someone new to Git, I did what anyone would do. I consulted the manual for `squash` and immediately hit a snag: + +``` +$ man git-squash> No manual entry for git-squash +``` + +It turns out I wasn't being told to run a Git command called `squash`, I was being asked to [run an entirely separate command][2] that would, in the end, combine all my commits into one. This is a common scenario: someone who has been using a tool for a while uses jargon or refers to a concept, which to them is absolutely clear, but isn't obvious to someone new to the tech. + +Conceptually it would look like this: + +![Image of 6 bowls of different colored spices, and an arrow pointing to the second image of all the spices blended into one bowl.][3] + +I'm laying it out this way to encourage you that you are definitely not the first or last person that would be confused by Git or someone talking about Git. It's OK to ask for clarification and for help finding the right documentation. What that docs maintainer actually meant was, "use Git rebase to squash the commits into one." + +### Git rebase + +The git rebase command removes a chain of commits away from its first parent and places it at the end of another chain of commits, combining both chains of commits into one long chain, instead of two parallel chains. I realize that's a dense statement. + +If you think back to how Git commits are chained together, you can see that any branch aside from your initial `main` branch has a parent commit that serves as the "base" of that chain. Rebasing is the act of making the last commit in another chain the new "base" commit for a specified branch. + +You might already be more familiar with Git merge. Take a look at how the [git-scm.com][4] site explains the difference: + +![Image of Git merge versus git rebase shown as numbered bubbles.][5] + +In this example merge, Git preserves the chain of commits shown in the image as C4, which has a parent of C2, when combining the changes in C3 to make a whole new commit, C5. The branch pointer for "experiment" still exists and still points at C4. + +The rebase in this example shows a similar situation of C4 first existing as a separate branch with a parent of C2. But then, instead of merging with the code of C3, it makes C3 the new parent of C4, resulting in a new commit called C4. Notably, the branch pointer "main" has not moved yet. To make Git move the pointer to the end of the chain, currently pointed at by "experiment", you also need to perform a merge. + +Rebase is not a replacement for merge. It's a tool for making cleaner histories to be used in conjunction with merge. + +#### Interactive rebase is your best friend! + +One of the scariest parts of performing a rebase from the command line is the horrifying interface. Running the command `git rebase ` either works or blows up. There's not a lot of feedback or way to ensure it is doing what you precisely want. Fortunately, the rebase command and many other Git commands have an interactive mode, which you can invoke with the parameter `-i' or`–interactive`. + +![Image of the Git lens interactive Rebase tool in VS Code.][6] + +When invoking interactive mode, rebase transforms from a terrifying black box into a menu of options that let you do several things to the chain of commits you are rebasing. For every commit, you can choose to: + +- Pick: Include it as is +- Reword: Rewrite the commit message +- Edit: Make further changes to the files in the commit before the rebase finishes +- Squash: Smash multiple commits into one commit, keeping all commit messages +- Fixup: Smash multiple commits into one commit, but just keep the last commit message +- Drop: Discard this commit + +I personally like the way that the open source [GitLens extension for VS Code][7] lays out the options with dropdown picklists, but Git lets you assign these options using any editor. For text-only tools like Emacs or Vim, you need to type out the selection rather than pick from a menu, but the end result is still the same. + +#### When to rebase + +Knowing _when_ to rebase is as important as knowing _how_ to rebase. In truth, if you don't care about your repos histories being a bit messy, then you might never perform a rebase. But if you do want to make cleaner histories and have fewer commits cluttering up your graph view, then there is one clear rule of thumb to always keep in mind: + +> "Do not rebase commits that exist outside your repository and that people may have based work on." + +If you follow that guideline, you'll be fine. + +Simply put, if you make a local branch to do your work, feel free to rebase it all you want. But as soon as that branch is pushed, do not rebase it. It is really up to you. + +Hopefully you found this helpful in understanding how the git rebase command works and can use it with more confidence. As with any Git command, practice is the only real way to learn and understand what is going on. I encourage you to brave and experiment with interactive rebase! + +### Git cherry-pick + +Most developers have committed work only to realize they have been working on the wrong branch. Ideally, they could just pick up that one commit and move it over to the right branch. That is exactly what `git cherry-pick` does. + +Cherry-picking is the art of rebasing single commits. This was so common of a pattern that they gave it its own command. + +![Image of a woman picking a cherry from one tree and putting on another tree.][8] + +To perform a cherry pick, you simply tell Git the ID of the commit you want to move to "here", where HEAD is pointing: + +``` +$ git cherry-pick +``` + +Should something go wrong, it's straightforward to recover, thanks to the error messages that Git provides: + +``` +$ git cherry-pick -i 2bc01cd +Auto-merging README.md +CONFLICT (content): Merge conflict in README.md +error: could not apply 2bc01cd… added EOF lines +hint: After resolving the conflicts, mark them with +hint: "git add/rm ", then run +hint: "git cherry-pick --continue". +hint: You can instead skip this commit with "git cherry-pick --skip". +hint: To abort and get back to the state before "git cherry-pick", +hint: run "git cherry-pick --abort". +$ git cherry-pick --abort +``` + +### Git more power + +The `git rebase` command is a powerful part of the Git utility. It's probably best to practice using it with a test repo before you have to use it under stress, but once you're familiar with its concepts and workflow, you can help provide a clear history of a repository's development. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/advanced-git-commands + +作者:[Dwayne McDaniel][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/dwaynemcdaniel +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/4/git-rebase-i +[2]: https://opensource.com/article/22/4/manage-git-commits-rebase-i-command +[3]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.spices.png +[4]: http://git-scm.com +[5]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.gitmerger.png +[6]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.GitLens%20Interactive%20Rebase%20tool%20in%20VS%20Code.png +[7]: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens +[8]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.cherrypicking.png From e4e3432454f7695bda8a2cd2eaa60dc71c6f9ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:56:36 +0800 Subject: [PATCH 2115/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221121.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?7=20Git=20tips=20for=20technical=20writers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 ⭐️⭐️ 7 Git tips for technical writers.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 sources/tech/20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md diff --git a/sources/tech/20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md b/sources/tech/20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md new file mode 100644 index 0000000000..a71cbac625 --- /dev/null +++ b/sources/tech/20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md @@ -0,0 +1,131 @@ +[#]: subject: "7 Git tips for technical writers" +[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" +[#]: author: "Maximilian Kolb https://opensource.com/users/kolb" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Git tips for technical writers +====== + +As a technical writer working for [ATIX][1], my tasks include creating and maintaining documentation for [Foreman][2] at [github.com/theforeman/foreman-documentation][3]. Git helps me track versions of content, and to collaborate with the open source community. It's an integral part of storing the results of my work, sharing it, and discussing improvements. My main tools include my browser, OpenSSH to connect to Foreman instances, [Vim][4] to edit source files, and Git to version content. + +This article focuses on recurring challenges when taking the first steps with Git and contributing to Foreman documentation. This is meant for intermediate Git users. + +### Prerequisites + +- You have installed and configured Git on your system. You must at least set your user name and email address. +- You have an account on [github.com][5]. GitHub isn't an open source project itself, but it's the site where many open source Git repositories are stored (including Foreman's documentation.) +- You have forked the [foreman-documentation][3] repository into your own account or organization (for example, _github.com/__My_User_Account__/foreman-documentation_. For more information, see [A step-by-step guide to Git][6] by Kedar Vijay Kulkarni. +- You have added your SSH public key to GitHub. This is necessary to push your changes to GitHub. For more information, see [A short introduction to GitHub][7] by Nicole C. Baratta. + +### Contributing to Foreman documentation + +Foreman is an open source project and thrives on community contributions. The project welcomes everyone and there are only a few requirements to make meaningful contributions. Requirements and conventions are documented in the [README.md][8] and [CONTRIBUTING.md][9] files. + +Here are some of the most frequent tasks when working on Foreman documentation. + +### I want to start working on Foreman documentation + +- Clone the repository from github.com:`$ git clone git@github.com:theforeman/foreman-documentation.git +$ cd foreman-documentation/` +- Rename the remote:`$ git remote rename origin upstream` +- Optional: Ensure that your local master branch is tracking the master branch from the **foreman-documentation** repository from the **theforeman** organization:`$ git status`This automatically starts you on the latest commit of the default branch, which in this case is **master**. +- If you do not have a fork of the repository in your own account or organization already, create one.Go to [github.com/theforeman/foreman-documentation][3] and click **Fork**. +- Add your fork to your repository.`$ git remote add github git@github.com:_My_User_Account_/foreman-documentation.git`Your local repository now has two remotes: `upstream` and `github`. + +### I want to extend the Foreman documentation + +For simple changes such as fixing a spelling mistake, you can create a pull request (PR) directly. + +- Create a branch named, for example, `fix_spelling`. The `git switch` command changes the currently checked out branch, and `-c` creates the branch:`$ git switch -c fix_spelling` +- Make your change. +- Add your change and commit:`$ git add guides/common/modules/abc.adoc +$ git commit -m "Fix spelling of existing"`I cannot emphasise the importance of good Git commit messages enough. A commit message tells contributors what you have done, and because it's preserved along with the rest of the codebase, it serves as a historical footnote when someone's looking back through code to determine what's happened over its lifespan. For more information on great git commit messages, see [The seven rules of a great Git commit message][10] by cbeams. +- Optional but recommended: View and verify the diff to the default branch. The default branch for **foreman-documentation** is called `master`, but other projects may name theirs differently (for example, `main`, `dev`, or `devel`.)`$ git diff master` +- Push your branch to Github. This publishes your change to your copy of the codebase.`$ git push --set-upstream github fix_spelling` +- Click on the link provided by Git in your terminal to create a pull request (PR).`remote: Create a pull request for 'fix_spelling' on Github by visiting: +remote:      https://github.com/_My_User_Account_/foreman-documentation/pull/new/fix_spelling` +- Add an explanation on _why_ the community should accept your change. This isn't necessary for a trivial PR, such as fixing a spelling mistake, but for major changes it's important. + +### I want to rebase my branch to master. + +- Ensure your local master branch tracks the master branch from [github.com/theforeman/foreman-documentation][3], not **foreman-documentation** in your own namespace:`$ git switch master`This should read `Your branch is up to date with 'upstream/master'`, with `upstream` being the name of your remote repository pointing to `github.com/theforeman/foreman-documentation`. You can review your remotes by running `git remote -v`. +- Fetch possible changes from your remote. The `git fetch` command downloads the tracked branch from your remote, and the `--all` option updates all branches simultaneously. This is necessary when working with additional branches. The `--prune` option removes references to branches that no longer exist.`$ git fetch --all --prune` +- Pull possible changes from `upstream/master` into your local `master` branch. The `git pull` command copies commits from the branch you're tracking into your current branch. This is used to "update" your local `master` branch to the latest state of the `master` branch in your remote (Github, in this case.)`$ git pull` +- Rebase your branch to "master".`$ git switch my_branch +$ git rebase -i master` + +### I have accidentally committed to master + +- Create a branch to save your work:`$ git switch -c my_feature` +- Switch back to the `master` branch:`$ git switch master` +- Drop the last commit on `master`:`$ git reset --soft HEAD~1` +- Switch back to `my_feature` branch and continue working:`$ git switch my_feature` + +### I want to reword my commit message + +- If you only have one commit on your branch, use `git amend` to change your last commit:`$ git commit --amend`This assumes that you don't have any other files added to your staging area (that is, you did not run `git add My_File` without also committing it.) +- Push your "change" to Github, using the `--force` option because the Git commit message is part of your existing commit, so you're changing the history on your branch.`$ git push --force` + +### I want to restructure multiple changes on a single branch + +- Use **e** to make actual changes to your commit. This interrupts your rebase! +- Use **f** to combine a commit with its parent. +- Use **d** to completely remove the commit from your branch. +- Move the lines to change the order of your changes.After successfully rebasing, your own commits are on top of the last commit from `master`. + +- Optional but strongly recommended: Fetch changes from Github.`$ git switch master +$ git fetch +$ git pull`This ensures that you directly incorporate any other changes into your branch in the order they've been merged to `master`. +- To restructure your work, rebase your branch and make changes as necessary. Rebasing to `master` means changing the parent commit of your first commit on your branch:`$ git rebase --interactive master`Replace the first word `pick` to modify the commit. + +### I want to copy a commit from another branch + +- Get the commit ID from a stable branch (for example, a branch named `3.3`), using the `-n` option to limit the number of commits.`$ git log -n 5 3.3` +- Replicate changes by cherry-picking commits to your branch. The `-x` option adds the commit ID to your commit message. This is only recommended when cherry-picking commits from a stable branch.`$ git switch My_Branch +$ git cherry-pick -x Commit_ID` + +### More tips + +At ATIX, we run a [GitLab][11] instance to share code, collaborate, and automate tests and builds internally. With the open source community surrounding the Foreman ecosystem, we rely on Github. + +I recommend that you always point the remote named `origin` in any Git repository to your _internal_ version control system. This prevents leaking information to external services when doing a `git push` based on pure muscle memory. + +Additionally, I recommend using a fixed naming scheme for remotes. I always name the remote pointing to my own GitLab instance `origin`, the open source project `upstream`, and my fork on Github `github`. + +For `foreman-documentation`, the repository has a relatively flat history. When working with a more complex structure, I tend to think of Git repositories in a very visual way with nodes (commits) pointing to nodes on lines (branches) that potentially intertwine. Graphical tools such as `gitk` or [Git Cola][12] can help visualize your Git history. Once you have fully grasped how Git works, you can move on to aliases, if you prefer the command line. + +Before a big rebase with a lot of expected merge conflicts, I recommend creating a "backup" branch that you can quickly view diffs against. Note that it's pretty hard to irreversibly delete commits, so play around in your local Git repository before making big changes. + +### Git for tech writers + +Git is a tremendous help for technical writers. Not only can you use Git to version your own content, but you can actively collaborate with others. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/advanced-git-commands + +作者:[Maximilian Kolb][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/kolb +[b]: https://github.com/lkxed +[1]: https://atix.de/en/ +[2]: https://opensource.com/article/17/8/system-management-foreman +[3]: https://github.com/theforeman/foreman-documentation +[4]: https://opensource.com/resources/what-vim +[5]: https://github.com/ +[6]: https://opensource.com/article/18/1/step-step-guide-git +[7]: https://opensource.com/life/15/11/short-introduction-github +[8]: https://github.com/theforeman/foreman-documentation/blob/master/guides/README.md#contribution-guidelines +[9]: https://github.com/theforeman/foreman-documentation/blob/master/CONTRIBUTING.md#contributing-to-foreman-documentation +[10]: https://cbea.ms/git-commit/#seven-rules +[11]: https://about.gitlab.com/ +[12]: https://opensource.com/article/20/3/git-cola From 979d22795df97281d211a7f6f2b1074824963835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:57:37 +0800 Subject: [PATCH 2116/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221121.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Setup=20Python=20Development=20Environment=20in=20Ub?= =?UTF-8?q?untu=20and=20Fedora.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...on Development Environment in Ubuntu and Fedora.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md diff --git a/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md new file mode 100644 index 0000000000..f7e578e4c6 --- /dev/null +++ b/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md @@ -0,0 +1,142 @@ +[#]: subject: "How to Setup Python Development Environment in Ubuntu and Fedora" +[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Setup Python Development Environment in Ubuntu and Fedora +====== + +**This article helps you with the basics and steps to setup your Python development environment in Ubuntu and Fedora.** + +[Python][1] became popular in the last couple of years due to its powerful libraries, easy syntax, and portability. It is being used currently almost every system across businesses. + +So, if you are trying to set up your Python box and wondering how to begin etc., then you are at the right place. Here, I tried to give you some steps to get started. + +### Setup Python Development Environment in Ubuntu and Fedora + +#### Python Versions + +If you are starting up Python development fresh, then it is recommended that you use the latest Python 3.x for your development, as Python 2.x is already out of support. Almost all the leading Linux distributions removed the dependency on Python 2. + +If you are running the latest distributions as of today for Fedora or Ubuntu, then you should have Python 3.x already installed and set as the default interpreter. For example, Fedora 37 and Ubuntu 22.04 LTS, which are currently available, have [Python 3.11][2] as the default Python shell. + +A quick way to find out what Python version you have is by running the below command from a terminal in both Ubuntu and Fedora. + +``` +python2 +``` + +``` +python3 +``` + +![python3][3] + +If you are running earlier versions of Ubuntu or Fedora, then you can install the latest Python 3.x using the below commands: + +**Ubuntu** + +``` +sudo apt install python3 +``` + +**Fedora** + +``` +sudo dnf install python3 +``` + +Also, run the below command to find out the path of your Python executable in the current system: + +``` +which python +``` + +#### Switching Versions as the default interpreter + +If your system has multiple Python versions installed – 2.x and 3.x and you want to switch between them, it is possible.  + +_If you have only one version installed, you can skip this section._ + +To switch, first, run python from the terminal to find out the default executable path. Ideally, it should be `/usr/bin/python`. Now, run below to find out the symbolic link to the executable. + +``` +ln -l /usr/bin/python +``` + +``` +lrwxrwxrwx 1 root root .... /usr/bin/pyhton -> python2 +``` + +Now check out the `$PATH` variable to determine the order of path concatenation which the system looks up for executables. + +``` +echo $PATH +``` + +![PATH-Variable][4] + +As you can see `/usr/local/bin`is preceding the `/usr/bin/` then you can create a soft symbolic link to `python3`. Then your interpreter should pick up the latest Python 3 instead of Python 2 while running the python command.  + +``` +ls -s /usr/bin/python3 /usr/local/bin/python +``` + +Now you should logout and log in again to clear any hash entries, or you can run `hash -r` to clear them out. + +Now you can run python from the terminal, and you should have the latest Python 3 picked up. + +#### Python IDE + +An integrated development environment (IDE) helps you write and compile and execute your code. There are [several free Python IDE available][5] – such as PyCharm, Eclipse, Eric, etc., which you can use. That would be another write-up on their pros and cons.  + +If you download Python from the official [python.org][1] website, Python accompanies a default development environment called IDLE. IDLE is good for starting up your system, and later you can decide to pick any of the best free Python IDE available. + +IDLE is not included in Ubuntu and Fedora along with python as default, you have to install it manually. Run the below commands from the terminal to manually install IDLE. + +**Ubuntu** + +``` +sudo apt install idle +``` + +**Fedora** + +``` +sudo dnf install python-tools +``` + +Once installed, you can launch IDLE from the command line idle or search from the application. + +![IDLE-environment`][6] + +Now, you can use IDLE to start your development. Most of the basic options you can find in the File menu of IDLE. + +I hope this guide explains what you should know before starting your Python development. Although this guide is primarily targeted to Ubuntu and Fedora, you can still follow the instructions for all Ubuntu and Fedora-based distributions as well. If you are facing problems with the Python environment setup, let me know in the comment section below.  + +[Next:Learn Bash base64 Encode and Decode With Examples][7] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ + +作者:[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.python.org/ +[2]: https://www.debugpoint.com/install-python-3-11-ubuntu/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/python3.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/PATH-Variable.png +[5]: https://www.debugpoint.com/5-best-python-ide-code-editor/ +[6]: https://www.debugpoint.com/wp-content/uploads/2020/06/IDLE-environment.png +[7]: https://www.debugpoint.com/bash-base64-encode-decode/ From 1091ec0f3df5e5fa1189488b1f58a541ac9d20e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 26 Nov 2022 23:59:11 +0800 Subject: [PATCH 2117/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221126.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Pop=20OS=20Review=20Reasons=20why=20its=20an=20all-rounder=20Li?= =?UTF-8?q?nux=20distro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iew Reasons why its an all-rounder Linux distro.md | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md diff --git a/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md b/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md new file mode 100644 index 0000000000..a73ad75ed5 --- /dev/null +++ b/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md @@ -0,0 +1,158 @@ +[#]: subject: "Pop OS Review: Reasons why its an all-rounder Linux distro" +[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pop OS Review: Reasons why its an all-rounder Linux distro +====== + +**Few reasons why System76’s Pop OS is the best all-rounder Ubuntu-based Linux distribution.** + +Pop!_OS is a Ubuntu Linux-based derivative developed and created by American computer manufacturer System76 for their lines of hardware devices. System76 sells high-end servers, desktops, laptops and other peripherals. And all of their runs on the Ubuntu variant Pop!_OS. + +Since its inception, the Pop!_OS team has had a different vision of the customized Ubuntu and the default desktop GNOME. + +![][1] + +![Pop OS 22.04 LTS Desktop][2] + +### Pop OS review + +#### Well configured GNOME + +Although, for the past few releases, there have been massive core design changes in the GNOME desktop to modernize itself, moving away from the GNOME 3.38 days. The recently released [GNOME 43][3] is a testament to that. Key changes include completing the GTK4 and libadwaita port, improving mutter changes and creating a newly designed user interface in [quick settings][4] and Files. + +But System76 still features a **customized version of GNOME** today to cater to their commercial needs and make it look more “professional”. And productive, too, while being a well-looking GNOME. + +A few vital built-in features of GNOME which I want to highlight here. + +The super-useful **Auto Tiling** in GNOME desktop work by default. Those who experienced tiling can never go back to non-tiling mode. It helps to efficiently organize your work with open windows and eventually saves time. The Pop!_OS auto-tiling takes care of it by default. + +Again, too much tiling of windows may create problems with smaller screens. To counter that, Pop!_OS also brings auto **stacking of window** features. It makes your windows remain on top of one another, and you can easily stack or unstack them with simple keyboard shortcuts. + +Talking about **Keyboard shortcuts**, the GNOME desktop in Pop!_OS is well coupled with keyboard shortcuts to move, resize windows, quickly search and launch applications. + +![Pop OS Tiling and other options for windows][5] + +#### Productivity Built-in + +![Workspace and Dock - is simple yet powerful][6] + +The **workspace** and the switcher are easy to use with a vertical menu. That gives you easy access whenever you want to look at your open workspaces and applications. The primary dock is well settled at the bottom with usable default shortcuts. + +The settings give you several customization options to change the dock’s behaviour and appearance. Built-in options include **“no dock”, “extended dock up to edges”, and “compact dock”**. All these options are available without needing to install any GNOME extension. + +The **global launcher** in Pop!_OS is a [KDE’s Krunner type search][7]. It can be kicked off with a super key at any time in your workflow. You can search for any app and launch it directly without visiting the application menu. + +![Pop OS Launcher][8] + +#### Perfect for Engineering Work + +The most important of any productive work system is how easy for you to install and remove applications. And not to mention the discovery of apps. + +Pop!_OS features its native app, **Pop!_Shop**, for software management. It is very nicely organized, with categories for all of your needs. + +Furthermore, Flatpak is installed, and **Flathub is added by default**. Basically, you don’t need a “things to do” guide for Pop!_OS. + +For core **engineering, machine learning, data science and AI** – Pop!_Shop has a separate section for discovery and installing software. With just one click, you can set up your engineering environment – without worrying about dependencies and other errors in Linux. + +The same applies to other engineering and science streams, such as Biotech, mobile app development, math modelling and media production. + +Pop!_OS get out of your way and enables your system in no time. + +In addition, thousands of Linux software are compatible with Pop!_OS since it supports deb files, Snap, Flatpak and AppImages. + +![Pop Shop categories][9] + +#### Tweaked to System76 Hardware + Dedicated NVIDIA Support + +It’s 2022, and we all have difficulties getting proper NVIDIA GPU support in Linux because NVIDIA is being NVIDIA. Pop!_OS features a separate installation ISO file, which includes a **proprietary NVIDIA driver** pre-packed so that you can be assured that things should work out of the box. No more following tutorials and running commands to install NVIDIA drivers. + +Furthermore, if you use **high-resolution laptops** or monitors, Pop!_OS has the best support via its settings. + +#### Gaming Ready and Hardware + +Pop!_OS is famous for default gaming support in Linux. Its Pop!_Shop allows you to install **Steam, game hub and Lutris** with just a click of a button. And your system is ready for gaming without worrying about dependencies and other problems. If you are using System76’s own hardware with NVIDIA GPU, you enjoy the full Linux gaming experience. + +For other high-end gaming laptops or desktops, I think Pop!_OS is the best Ubuntu-based Linux distro for gaming today, considering how easy to install and play. No doubt about it. + +#### Security and Privacy Aspects + +Pop!_OS supports **full disk encryption** via the installer. While installing Pop!_OS, it gives you the option to encrypt the entire disk! And you can enable a password to boot into Pop!_OS. + +It’s the only Linux distribution which allows full-disk encryption by default. Pop!_OS does not collect much of your usage data besides simple hardware and OS information. The firmware update is automatic via settings for System76 hardware. + +![Full-disk encryption in Pop OS - during installation][10] + +#### Roadmap and System76 Vision + +Being a distribution backed by a commercial entity has its advantage. For example, you get timely security, software and firmware updates. Although System76 steers Pop!_OS’s direction of its own needs, end users can use it for their own use and work. + +For example, two crucial decisions that System76 took related to Pop!_OS. First, it’s developing a **new Rust-based Linux desktop** environment ground up. The reason is to move away from GNOME desktops and probably to adopt a more modern programming framework for Linux desktops. + +Second, the Pop!_OS release schedule changed after its current release, [Pop!_OS 22.04 LTS][11]. Usually, it follows Ubuntu’s release cycle – twice a year. But from the release of Ubuntu 22.10 onwards, Pop!_OS breaking away from it and will release its own version with all the upstream changes. + +> [Oh No! There Won’t Be A Pop OS 22.10 Release][12] + +The timings of the new release are unknown. But my optimistic guess would be one Pop!_OS release yearly. Although the direction is changing, it matters significantly less for the more extensive user base who want their workstation to work out of the box with a stable Linux distro. + +### Summary + +To summarise, why Pop!_OS might be the most stable & usable Ubuntu-based distro today: + +- Auto Tiling and Auto Stacking by default +- Super useful Keyboard shortcuts +- Not too fancy, but productive GNOME workspace application menu. dock and tray +- Curated Pop Shop to easily install applications for your basic and advanced needs. +- NVIDIA support included in ISO file +- Gaming ready via Pop Shop +- Default support of Flatpak with Flathub and other app formats +- Automatic firmware updates +- Full disk encryption +- Well-defined future roadmap + +### Closing Notes + +I hope this Pop OS review gives you some perspective about this distro and its easy use for the average user base. In addition, it can be well placed as a [beginner Ubuntu-based Linux distro][13]. + +With all the friendship events between Ubuntu and Microsoft and its direction, we don’t know what may happen in a few years. With that in mind, if you or anyone ever gets too overwhelmed with which Linux to try, then try Pop!_OS. It should work out of the box. + +You can download Pop!_OS from the [official website][14]. + +[More Pop OS coverage][15] (all recent articles) + +[Next:How to use journalctl to View and Analyze Systemd Logs [With Examples]][16] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ + +作者:[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/11/popreview.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Pop-OS-22.04-LTS-Desktop.jpg +[3]: https://www.debugpoint.com/gnome-43/ +[4]: https://www.debugpoint.com/gnome-43-quick-settings/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Pop-OS-Tiling-and-other-options-for-windows.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/Workspace-and-Dock-is-simple-yet-powerful.jpg +[7]: https://www.debugpoint.com/top-10-kde-plasma-tips-2021/ +[8]: https://www.debugpoint.com/wp-content/uploads/2021/06/Pop-OS-Launcher.png +[9]: https://www.debugpoint.com/wp-content/uploads/2022/11/Pop-Shop-categories.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/11/Full-disk-encryption-in-Pop-OS-during-installation.jpg +[11]: https://www.debugpoint.com/pop-os-22-04-lts/ +[12]: https://debugpointnews.com/no-pop-os-22-10/ +[13]: https://www.debugpoint.com/linux-distro-beginners/ +[14]: https://pop.system76.com/ +[15]: https://www.debugpoint.com/tag/pop-os +[16]: https://www.debugpoint.com/systemd-journalctl/ From 3409ff8af0e9dcbf213b65a86a95d5e4319b0374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 00:01:53 +0800 Subject: [PATCH 2118/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221122.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?macOS=20Alternative=20helloSystem=20(0.7.0)=20is=20moving=20tow?= =?UTF-8?q?ards=20stability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...helloSystem (0.7.0) is moving towards stability.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/tech/20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md diff --git a/sources/tech/20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/sources/tech/20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md new file mode 100644 index 0000000000..8b13e9ad3c --- /dev/null +++ b/sources/tech/20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md @@ -0,0 +1,85 @@ +[#]: subject: "macOS Alternative helloSystem (0.7.0) is moving towards stability" +[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +macOS Alternative helloSystem (0.7.0) is moving towards stability +====== + +**With the release of helloSystem 0.7.0 and more internal work, helloSystem is moving towards stability for an “open” alternative to macOS.** + +The helloSystem is a FreeBSD-based lightweight operating system aiming for an “open” alternative to macOS. The primary objective of helloSystem is to provide an easy-to-install and use FreeBSD alternative with a truly “open” system. In addition, the team also aims for macOS switchers who can feel comfortable with a similar desktop without a lockdown system or the complexity of a Linux distribution. + +Making such an operating system takes time, considering the hardware support in the BSD system. The team is working on creating a desktop – “hellodesktop” from the ground up. Written in C++, the hellodesktop and other improvements are coming along nicely. + +![helloSystem 0.7.0 Desktop][1] + +### helloSystem 0.7.0 + +At the end of 2021, the team released the last stable version, [helloSystem 0.7.0][2], based on FreeBSD 13.0 and is currently porting the system to FreeBSD 13.1 and 14 versions. + +Along with that, a bunch of new features that work now in this system; here’s a summary: + +- Powered by FreeBSD 13.0 +- Refinements in the LIVE medium with updated boot time and compressed UFS filesystem +- Reduced ISO image size to 800 MB to fit into a CD +- Compatible with Ventoy USB creator +- NVIDIA GPU support, including older models +- exFAT support is added while installing in the target partition +- KDE’s Falkon browser is added, with additional menu items to download and install Chromium and Firefox +- System alert sounds +- Brightness and sound control support via Laptop keyboard dedicated keys + +![Menu and apps in helloSystem 0.7.0][3] + +In addition to the above, a new section is added in helloSystem 0.7.0 to give you an early look at the features which the team is currently working on. Some of the coolest features arriving in future releases include: + +- Debian runtime install utility to run Linux applications inside BSD! +- A separate app for downloading applications. +- New update utility + +Furthermore, a bunch of bug fixes and translation updates landed in 0.7.0. + +![Installing Linux Runtime is under development][4] + +That being said, it still needs significant time to become an easy-to-use BSD variant and an “open” alternative to macOS. Since I [reported first][5], huge updates have already been made within a year across the graphical installer, desktop apps, and bug fixes. I hope it will become more mainstream in 2023 with FreeBSD 14 port. + +### Download + +If you want to try it in real hardware, make sure to take backups and try. Also, helloSystem is now fully compatible with virtual machines such as [VirtualBox][6]. You can give it a try. If you are trying in VirtualBox, make sure to change the CPU to 64-bit. + +Official download of the versions (including helloSystem 0.7.0 stable) is available on [this page][7], or you can grab the ISO using the below link. + +[Download helloSystem 0.7.0][8] + +If you want to contribute to testing, development or any capacity, [visit the GitHub page for details][9]. + +[Next:Boost Your Productivity with Folder Color App in Ubuntu][10] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ + +作者:[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/11/helloSystem-0.7.0-Desktop.jpg +[2]: https://github.com/helloSystem/ISO/releases/tag/r0.7.0 +[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/Menu-and-apps-in-helloSystem-0.7.0.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Installing-Linux-Runtime-is-under-development.jpg +[5]: https://www.debugpoint.com/tag/hellosystem +[6]: https://www.debugpoint.com/tag/virtualbox +[7]: https://github.com/helloSystem/ISO/releases +[8]: https://github.com/helloSystem/ISO/releases/download/r0.7.0/hello-0.7.0_0G160-FreeBSD-13.0-amd64.iso +[9]: https://github.com/helloSystem +[10]: https://www.debugpoint.com/folder-colors-in-mate-and-ubuntu/ From 411503857f82d6cd1e849cba04af3b982b835179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 00:02:16 +0800 Subject: [PATCH 2119/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221123.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?apt=20remove=20vs=20apt=20purge=20What=E2=80=99s=20the=20Differ?= =?UTF-8?q?ence.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... apt remove vs apt purge What’s the Difference.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md diff --git a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md new file mode 100644 index 0000000000..d31fadca1d --- /dev/null +++ b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -0,0 +1,121 @@ +[#]: subject: "apt remove vs apt purge: What’s the Difference?" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +apt remove vs apt purge: What’s the Difference? +====== + +To [uninstall an application in the Ubuntu terminal][1], you can use: + +``` +sudo apt remove package_name +``` + +But in various forums, you may come across the suggestion to use the apt purge command for removing applications completely. + +This leaves you confused because using apt purge is quite similar to apt remove: + +``` +sudo apt purge package_name +``` + +So, why are there two similar commands for removing packages? What’s the difference between the two? Let me explain it to you with a few examples. + +### What’s the difference between apt-remove and apt-purge? + +Both apt-remove and apt-purge do the same thing and that is to uninstall a package. The apt-purge removes the package and purges any configuration files associated with it. That’s the only difference between the two. Neither command touches the application files under the home directory of the user. + +Have you ever removed an application and installed it again, only to notice that all your settings are in place? It’s because the apt remove command doesn’t remove the configuration files. + +#### See what’s being removed and what remains + +Let me share a practical example of removing the mplayer application using both apt remove and apt purge commands. The focus is on seeing what files remain after each operation. + +Here are the files associated with mplayer before removal. + +![mplayer before removal][2] + +Now, if I run the apt remove command. + +![apt uninstall package ubuntu][3] + +Here are the files that remain in the system: + +![files after mplayer removal][4] + +As you can see, there are mplayer files remaining in two locations: /etc and /home/abhishek. + +Now, if I install mplayer again and use apt purge to remove mplayer application this time. + +![apt purge command][5] + +Let’s look for files associated mplayer now. + +![files after mplayer removal][6] + +As you can see, the files from /etc directory no longer exists. + +But what about the files in the home directory? Should apt purge not remove it? + +The answer is negative. The apt commands do not touch the configuration files located under the home directory. They remain in the system unless you manually remove them. Those files are really small in size and hardly take disk space. + +Do note that not all applications create configuration files under /etc or home directory. + +#### The effect of using apt remove or apt purge + +A practical example I can think of is Discord. You [install Discord on Ubuntu][7] with deb file. Start using it by logging into your account. Remove discord and install it again using deb file. + +Now if you start Discord, you’ll notice that you are already logged into your account. Surprising, no? + +But this is a feature because some applications like Discord, VirtualBox provide you updates similarly. You remove the current version and install the newer one (even if you don’t see this process). Since the application configuration files are not touched, you are logged back in without additional effort. + +The apt remove command gives you the option to reuse an application with similar configuration that you used in the past. + +However, you may not always want it. If you configured an application in a bad way and want to start from scratch, the apt purge command is the way to go forward. + +#### Does apt purge perform a wild-card removal? + +When you purge a package, you’ll notice that it mentions removing package-name*. This indicates that it will remove all the packages with names starting from package-name. + +![apt purge wild card][8] + +I didn’t find a definite answer on this point in the documentation (i.e. man page). So, I did a little test on my own. I installed espeak and espeak-ng packages. The espeak* should expand to espeak-ng as well. + +But when espeak was pruged, the espeak-ng package was untouched. So there seems to be a mechanism that protects against such wild card expansions. + +### So, should you use apt remove or apt purge? + +Few people just get addicted to using apt purge. + +In my opinion, apt remove is what you should use most of the time. Use apt purge when you have to get rid of the custom configuration files. + +In both cases, you’ll have to remove the remaining configuration files from the user’s home directory and run apt autoremove to eliminate any leftover dependencies. + +Over to you now. Do you understand the difference between apt remove and apt purge better now? Which one do you prefer to use? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/apt-remove/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png +[7]: https://itsfoss.com/install-discord-linux/ +[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png From 8d227f1da1663ee7f4fb61b2fab0175db1931a1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 00:02:56 +0800 Subject: [PATCH 2120/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221122.0=20=E2=AD=90=EF=B8=8F=20Find=20bugs=20with?= =?UTF-8?q?=20the=20git=20bisect=20command.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Find bugs with the git bisect command.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md diff --git a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md new file mode 100644 index 0000000000..d47ef7e576 --- /dev/null +++ b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md @@ -0,0 +1,75 @@ +[#]: subject: "Find bugs with the git bisect command" +[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" +[#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Find bugs with the git bisect command +====== + +Have you ever found a bug in code and needed to know when it was first introduced? Chances are, whoever committed the bug didn't declare it in their Git commit message. In some cases, it might have been present for weeks, months, or even years, meaning you would need to search through hundreds or thousands of commits to find when the problem was introduced. This is the problem that `git bisect` was built to solve! + +The `git bisect` command is a powerful tool that quickly checks out a commit halfway between a known good state and a known bad state and then asks you to identify the commit as either good or bad. Then it repeats until you find the exact commit where the code in question was first introduced. + +![Image of Zeno's paradox of Achilles.][1] + +This "mathmagical" tool works by leveraging the power of halving. No matter how many steps you need to get through, by looking at the halfway point and deciding if it is the new top or bottom of the list of commits, you can find any desired commit in a handful of steps. Even if you have 10,000 commits to hunt through, it only takes a maximum of 13 steps to find the first offending commit. + +- commit 1 bad <> commit 10,000 good => commit 5,000 is bad +- commit 5,000 bad <> commit 10,000 good => commit 7,500 is good +- commit 5,000 bad <> commit 7,500 good => commit 6,250 is good +- commit 5,000 bad <> commit 6,250 good => commit 5,625 is bad +- commit 5,625 bad <> commit 6,250 good => commit 5,938 is bad +- commit 5,938 bad <> commit 6,250 good => commit 6,094 is good +- commit 5,938 bad <> commit 6,094 good => commit 6,016 is bad +- commit 6,016 bad <> commit 6,094 good => commit 6,055 is good +- commit 6,016 bad <> commit 6,055 good => commit 6,036 is bad +- commit 6036 bad <> commit 6055 good => commit 6046 is bad +- commit 6,046 bad <> commit 6,055 good => commit 6,050 is bad +- commit 6,050 bad <> commit 6,055 good => commit 6,053 is good +- commit 6,053 bad <> commit 6,055 good => commit 6,054 is good + +So, the first bad commit of the 10,000 is commit number 6,053. With `git bisect`, this would take a couple of minutes at maximum. I can't even imagine how long this would take to investigate crawling through each commit one at a time. + +### Using Git bisect + +Using the `git bisect`command is very straightforward: + +``` +$ git bisect start +$ git bisect bad        # Git assumes you mean HEAD by default +$ git bisect good # specify a tag or commit ID for +``` + +Git checks out the commit in the middle and waits for you to declare either: + +``` +$ git bisect good## or +$ git bisect bad +``` + +Then the bisect tool repeats checking out the commit halfway between good and bad commits until you tell it: + +``` +$ git bisect reset +``` + +Advanced users can even write scripts that determine good and bad states as well as any remediation actions to take upon finding the specific commit. You might not use the `git bisect` command every day of your life, but when you need it, it is a lifesaver. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/advanced-git-commands + +作者:[Dwayne McDaniel][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/dwaynemcdaniel +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-11/beyondgit.paradox.png From 7e208b5b85f101a0e3ed361e708e7a89f1cbad35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 09:42:33 +0800 Subject: [PATCH 2121/3123] =?UTF-8?q?Rename=2020221122.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20macOS=20Alternative=20helloSystem?= =?UTF-8?q?=20(0.7.0)=20is=20moving=20towards=20stability.md=20to=20202211?= =?UTF-8?q?22.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20macOS=20Alternati?= =?UTF-8?q?ve=20helloSystem=20(0.7.0)=20is=20moving=20towards=20stability.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md => 20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md} (100%) diff --git a/sources/tech/20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/sources/tech/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md similarity index 100% rename from sources/tech/20221122.0 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md rename to sources/tech/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md From 124d64dc23d4b35e44b53a57adf00145834995cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 09:45:01 +0800 Subject: [PATCH 2122/3123] =?UTF-8?q?Rename=2020221117.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Authenticator=20A=20Simple=20Open-Source=20App=20to?= =?UTF-8?q?=20Replace=20Authy=20on=20Linux.md=20to=2020221117.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Authenticator=20A=20Simple=20Open-Source?= =?UTF-8?q?=20App=20to=20Replace=20Authy=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Authenticator A Simple Open-Source App to Replace Authy on Linux.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md => 20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md} (100%) diff --git a/sources/tech/20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md similarity index 100% rename from sources/tech/20221117.0 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md rename to sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md From 784d04efb10d19b5280e7c91d4046e5a755645a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 09:46:17 +0800 Subject: [PATCH 2123/3123] =?UTF-8?q?Rename=2020221121.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=207=20Git=20tips=20for=20technical?= =?UTF-8?q?=20writers.md=20to=2020221121.1=20=E2=AD=90=EF=B8=8F=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=207=20Git=20tips=20for=20technical=20writers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cal writers.md => 20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md => 20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md} (100%) diff --git a/sources/tech/20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md similarity index 100% rename from sources/tech/20221121.0 ⭐️⭐️ 7 Git tips for technical writers.md rename to sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md From 7bfea04f21f3b07d3a8cd392d969aaf656d74931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 09:46:47 +0800 Subject: [PATCH 2124/3123] =?UTF-8?q?Rename=2020221121.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20Git=203=20commands=20to?= =?UTF-8?q?=20level=20up=20your=20skill.md=20to=2020221121.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20Git=203=20commands=20to?= =?UTF-8?q?=20level=20up=20your=20skill.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....md => 20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md => 20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md} (100%) diff --git a/sources/tech/20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md similarity index 100% rename from sources/tech/20221121.0 ⭐️⭐️ Learn Git 3 commands to level up your skill.md rename to sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md From fb39f8f6d7e92123dd057ec834e1c1a84e4c1dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 09:47:09 +0800 Subject: [PATCH 2125/3123] =?UTF-8?q?Rename=2020221121.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=205=20htop=20Alternatives=20to=20En?= =?UTF-8?q?hance=20Your=20Linux=20System=20Monitoring=20Experience.md=20to?= =?UTF-8?q?=2020221121.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=205=20htop?= =?UTF-8?q?=20Alternatives=20to=20Enhance=20Your=20Linux=20System=20Monito?= =?UTF-8?q?ring=20Experience.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md => 20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md} (100%) diff --git a/sources/tech/20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md similarity index 100% rename from sources/tech/20221121.0 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md rename to sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md From f2081dd44c0952edef05436659b0dbd8d74337c0 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 27 Nov 2022 10:03:34 +0800 Subject: [PATCH 2126/3123] =?UTF-8?q?Rename=20sources/tech/20221122.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20macOS=20Alternative=20he?= =?UTF-8?q?lloSystem=20(0.7.0)=20is=20moving=20towards=20stability.md=20to?= =?UTF-8?q?=20sources/news/20221122.1=20=E2=AD=90=EF=B8=8F=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20macOS=20Alternative=20helloSystem=20(0.7.0)=20is=20?= =?UTF-8?q?moving=20towards=20stability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... macOS Alternative helloSystem (0.7.0) is moving towards stability.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md (100%) diff --git a/sources/tech/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md similarity index 100% rename from sources/tech/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md rename to sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md From 024d3d592a24dbfb4ba83ab707345a0317cc56ea Mon Sep 17 00:00:00 2001 From: Cubik Date: Sat, 26 Nov 2022 21:12:55 -0500 Subject: [PATCH 2127/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?][news]:=2020221122.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?macOS=20Alternative=20helloSystem=20(0.7.0)=20is=20moving=20tow?= =?UTF-8?q?ards=20stability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cOS Alternative helloSystem (0.7.0) is moving towards stability.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md index 8b13e9ad3c..09a5237e82 100644 --- a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md +++ b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -66,7 +66,7 @@ via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From edddabcd632df973a18506ac921862cd896a9ee1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 27 Nov 2022 10:42:12 +0800 Subject: [PATCH 2128/3123] RP @geekpi https://linux.cn/article-15293-1.html --- ... Elementary OS’s Pantheon Desktop in Arch Linux.md | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) rename {translated/tech => published}/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md (66%) diff --git a/translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md b/published/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md similarity index 66% rename from translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md rename to published/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md index ed4ecc1d09..809730e839 100644 --- a/translated/tech/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md +++ b/published/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md @@ -3,28 +3,30 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15293-1.html" -如何在 Arch Linux 中安装 Elementary OS 的 Pantheon 桌面 +如何在 Arch Linux 中安装 elementary OS 的 Pantheon 桌面 ====== -**Pantheon 是 Elementary OS 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Pantheon 桌面环境的步骤**。 +![][0] + +> Pantheon 是 elementary OS 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Pantheon 桌面环境的步骤。 Pantheon 是 elementary OS 使用的一个漂亮的桌面环境。它基于 GTK3(GTK4 移植正在进行中)和 Vala,是一个漂亮而干净的桌面,为你提供了一个精致的 Linux 桌面体验。 -该桌面主要由 elementary OS 使用。Elementary OS 提供了 Pantheon 桌面的修改版,它是基于 GNOME 软件基础的。 +该桌面主要由 elementary OS 使用。elementary OS 提供了 Pantheon 桌面的修改版,它是基于 GNOME 的。 -Elementary OS 是基于 Ubuntu LTS 版本。因此,在基于 ubuntu 的发行版中安装 Pantheon 桌面是超级容易的。这意味着如果你想在不安装 elementary OS 的情况下体验 Pantheon,在 Ubuntu 中这只需要一两个命令就可以安装。 +elementary OS 基于 Ubuntu LTS 版本。因此,在基于 Ubuntu 的发行版中安装 Pantheon 桌面是超级容易的。这意味着如果你想在不安装 elementary OS 的情况下体验 Pantheon,在 Ubuntu 中这只需要一两个命令就可以安装。 在 Fedora 中,你也可以使用组包进行安装。然而,一个以 Fedora 为基础,名为 [Ultramarine Linux][1] 的发行版默认提供了它。 -但是,在 Arch Linux 中安装 Pantheon 需要一些工作。它不是用简单的 pacman 命令就能直接完成的,而且不能开箱即用。需要一些配置,这可能会破坏你的系统。 +但是,在 Arch Linux 中安装 Pantheon 需要一些工作。它不是用简单的 `pacman` 命令就能直接完成的,而且不能开箱即用。需要一些配置,这可能会破坏你的系统。 这里我给你提供了在 Arch Linux 中安装 Pantheon 桌面的指南和步骤。 -**警告:**第一次可能不顺利,所以我建议你在物理系统上安装前先在虚拟机上进行。因为在 Arch 中安装 Pantheon 并不像在 Arch Linux 中安装 GNOME、Xfce 和 KDE Plasma 桌面那样流畅。它还需要一些额外的手动配置。 +**警告:** 第一次可能不顺利,所以我建议你在物理系统上安装前先在虚拟机上进行。因为在 Arch 中安装 Pantheon 并不像在 Arch Linux 中安装 GNOME、Xfce 和 KDE Plasma 桌面那样流畅。它还需要一些额外的手动配置。 下面是在 Arch Linux 中安装 Pantheon 桌面的步骤。 @@ -32,7 +34,7 @@ Elementary OS 是基于 Ubuntu LTS 版本。因此,在基于 ubuntu 的发行 #### 第 1 步:安装基础系统 -确保你按照[本指南的自动 archinstall 脚本][2]安装了 Arch Linux 基础系统。如果你已经在完成了 Arch 安装,你可以跳过这一步,按照下一步进行。 +确保你按照 [本指南的自动 archinstall 脚本][2] 安装了 Arch Linux 基础系统。如果你已经在完成了 Arch 安装,你可以跳过这一步,按照下一步进行。 #### 第 2 步:更新你的系统 @@ -44,8 +46,7 @@ pacman -Syu #### 第 3 步:安装 yay AUR 助手 -Many packages that are required for Pantheon are not available in the Arch official repository. They are available in Arch User Repo (AUR). Hence you need to install yay for additional packages. Follow [this guide to install yay AUR helper][3]. -Pantheon 所需的许多包在 Arch 官方仓库中不可用。它们存在于 Arch 用户仓库 (AUR) 中。因此你您需要安装 yay 以获得额外的软件包。按照[本指南安装 yay AUR 助手][3]。 +Pantheon 所需的许多包在 Arch 官方仓库中不可用。它们存在于 Arch 用户仓库(AUR)中。因此你需要安装 `yay` 以获得额外的软件包。按照 [本指南安装 yay AUR 助手][3]。 #### 第 4 步:在 Arch Linux 中安装 Pantheon 桌面 @@ -66,7 +67,7 @@ Pantheon 所需的许多包在 Arch 官方仓库中不可用。它们存在于 A pacman -S --needed pantheon lightdm-pantheon-greeter sound-theme-elementary switchboard lightdm-gtk-greeter elementary-icon-theme elementary-wallpapers pantheon-applications-menu wingpanel-indicator-session wingpanel-indicator-datetime inter-font firefox ``` -从用户仓库安装以下包。这些是 Arch 官方仓库中不可用的一些附加包。这些可能需要一些时间来安装。 +从 Arch 用户仓库安装以下包。这些是 Arch 官方仓库中不可用的一些附加包。这些可能需要一些时间来安装。 - pantheon-session-git - gnome-settings-daemon-elementary @@ -95,15 +96,17 @@ ls -1 /usr/share/xgreeters ![greeters 列表][5] -打开 lightdm 配置文件并将 greeter-session 更改为 io.elementary.greeter。 +打开 lightdm 配置文件并将 `greeter-session` 更改为 `io.elementary.greeter`。 ``` sudo nano /etc/lightdm/lightdm.conf +``` +``` greeter-session=io.elementary.greeter ``` -保存并关闭文件(CTRL+O、回车 和 CTRL+X)。 +保存并关闭文件(`CTRL+O`、`回车` 和 `CTRL+X`)。 ![lightdm 配置][6] @@ -127,17 +130,17 @@ systemctl reboot 当我第一次登录到我的测试系统时,很多东西都不起作用。以下是列表及其可能的解决方案。 -a) **壁纸**:壁纸模块似乎根本不起作用。因此,默认情况下没有壁纸。甚至“更改壁纸”选项也没有打开。如果遇到这种情况,请安装 `dconf` 编辑器并通过以下步骤更改壁纸。 +a、**壁纸**:壁纸模块似乎根本不起作用。因此,默认情况下没有壁纸。甚至“更改壁纸”选项也没有打开。如果遇到这种情况,请安装 `dconf` 编辑器并通过以下步骤更改壁纸。 ``` pacman -S --needed dconf-editor ``` -接着从菜单启动 dconf 编辑器。进入 `“org > gnome > desktop > background > picture-uri”`。关闭默认值并添加自定义值 `file:////usr/share/backgrounds/Ashim DSilva.jpg`。你也可以使用任何其他图像。保存并关闭。 +接着从菜单启动 dconf 编辑器。进入 `org > gnome > desktop > background > picture-uri`。关闭默认值并添加自定义值 `file:////usr/share/backgrounds/Ashim DSilva.jpg`。你也可以使用任何其他图像。保存并关闭。 ![使用 dconf-editor 更改背景属性][8] -b) **图标**:通过 `Settings > Tweaks` 更改图标。然后将图标和光标更改为 urutau-icons。 +b、**图标**:通过 “设置Settings > 优化Tweaks” 更改图标。然后将图标和光标更改为 `urutau-icons`。 在完成所有配置和安装之后,你应该已经在 Arch Linux 中设置了 Pantheon 桌面。这是我的测试机的截图。 @@ -149,7 +152,7 @@ b) **图标**:通过 `Settings > Tweaks` 更改图标。然后将图标和光 尽管一些小功能仍然无法使用,但有一个可用的 Pantheon 桌面。 -唯一让我惊喜的是 Pantheon 在 Arch 中的表现。在我的同一台测试机上,elementary OS 安装不是那么快。但 Pantheon 基础版在 Arch 中的速度比原始 elementary OS 快。不过,如果你喜欢 Pantheon,可以试试。 +唯一让我惊喜的是 Pantheon 在 Arch 中的表现。在我的同一台测试机上,elementary OS 安装不是那么快。但 Pantheon 基础版在 Arch 中的速度比原始 elementary OS 快。如果你喜欢 Pantheon,可以试试。 如果你遇到任何错误,请使用下面的评论栏告诉我。 @@ -159,8 +162,8 @@ via: https://www.debugpoint.com/pantheon-arch-linux-install/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +译者:[ ](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -175,3 +178,4 @@ via: https://www.debugpoint.com/pantheon-arch-linux-install/ [7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Login-screen-Pantheon-in-Arch.jpg [8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Change-background-property-using-dconf-editor.jpg [9]: https://www.debugpoint.com/wp-content/uploads/2021/02/Pantheon-Desktop-in-Arch-Linux-1.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202211/27/104052h7iwfcw4larkio1i.jpg \ No newline at end of file From c4da98ad62393056b1ff9fe7f47db74cbac31ce6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 27 Nov 2022 11:38:06 +0800 Subject: [PATCH 2129/3123] ALL @wxy https://linux.cn/article-15294-1.html --- ...Enhance Your Linux System Monitoring Experience.md | 160 ++++++++++++++++++ ...Enhance Your Linux System Monitoring Experience.md | 159 ----------------- 2 files changed, 160 insertions(+), 159 deletions(-) create mode 100644 published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md delete mode 100644 sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md diff --git a/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md new file mode 100644 index 0000000000..8ad1c589a7 --- /dev/null +++ b/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md @@ -0,0 +1,160 @@ +[#]: subject: "5 htop Alternatives to Enhance Your Linux System Monitoring Experience" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15294-1.html" + +5 个 htop 替代:增强你的 Linux 系统监控体验 +====== + +![][0] + +`htop` 是一个流行的命令行工具,可以帮助监测 Linux 上的系统资源和性能。 + +**它比通常默认开箱即用的 top 好**。 + +使用 `htop`,你可以对进程进行过滤和排序,以便更好地了解情况,获得正在运行的进程的树状视图,并在需要时杀死进程。 + +![htp 2022][1] + +我使用 `htop` 而不是其他系统监控工具,因为它可以显示对我来说至关重要的东西,并允许在我需要控制运行中的服务时终止流氓进程或冻结进程。 + +但是,如果你想要其他显示更多信息,或一个看起来不同的东西,有哪些**htop 替代品**呢?让我们来看看。 + +### 1、atop + +![atop 2022][3] + +[atop][4] 可以提供所有运行的进程的细节。你可以得到你需要的所有数据,以了解你系统上的进程情况。 + +它还提供了对资源利用率进行永久记录的能力,以便进行长期分析。系统管理员可能会发现这比其他工具更有用。 + +不幸的是,它并没有为你提供漂亮的输出。因此,如果你想要的话,请继续看下面的其他替代品。 + +#### 如何安装 atop? + +对于基于 Ubuntu/Debian 的发行版,键入: + +``` +sudo apt install atop +``` + +### 2、vtop + +![vtop 2022][5] + +如果你想要一个漂亮的输出和管理进程的基本功能,[vtop][6] 是一个完美的系统监控工具。 + +正如我在其他一些文章中所说,它的输出看起来像终端中的 GUI。你可以使用鼠标,也可以选择禁用它。也可以定制它的主题。 + +它是用 Node.js 构建的。所以,你需要安装额外的包来安装它。 + +不幸的是,这个项目似乎不再积极维护。但是,在写这篇文章的时候,它对我来说还是有用的。 + +#### 如何安装 vtop? + +对于基于 Ubuntu 的发行版,在终端输入以下命令: + +``` +sudo apt install nodejs +sudo apt install npm +sudo npm install -g vtop +``` + +### 3、btop++ + +![btop][7] + +[btop++][8] 是 bashtop 和 bpytop 的一个 C++ 版本。是的,它是这些项目的第三次迭代,由同一个开发者完成。 + +`btop++` 包括完全的鼠标支持,带有一个受游戏启发的菜单系统,可以让你过滤进程、树状视图等等。 + +#### 如何安装 btop++? + +使用官方软件库,你可以很容易地在 Fedora、openSUSE 和 FreeBSD 上安装它。 + +对于 Fedora,你可以键入: + +``` +sudo dnf install btop +``` + +你可以探索它的 [GitHub 页面][8],了解在其他 Linux 发行版上的安装方式。 + +### 4、Glances + +![glances 2022][9] + +Glances 与 `htop` 类似,但有更多的功能。 + +它是一个跨平台的系统监控工具,可以将数据以 CSV 或其他格式导出,用于 InfluxDB、Elasticsearch 等。 + +你也可以利用它的网页用户界面,远程(或在不能访问终端的情况下)查看统计数据。 + +#### 如何安装 Glances? + +对于基于 Ubuntu 的发行版,你可以键入: + +``` +sudo apt install glances +``` + +### 5、nmon + +![nmon 2022 1][10] + +[nmon][11] 是一个令人印象深刻的监测工具,它可以让你控制你想显示的输出内容。 + +你可以提取监测数据(以 CSV 格式导出)并用于进一步分析。它很容易切换统计数据和在不同的视图之间进行切换。 + +默认情况下,它每两秒刷新一次数据,但你可以自定义它,并使用更多的选项来调整你的体验。 + +#### 如何安装 nmon? + +你可以在官方软件库中找到它。对于基于 Ubuntu 的发行版,在终端键入以下内容: + +``` +sudo apt install nmon +``` + +### 总结 + +[top 2022][12] + +`top` 命令工具被植入在你的 Linux 系统中。如果你想要一个基本的监控工具,想要关注系统进程和一些统计信息,`top` 就足够了。 + +我不确定它是否可以算作比 `htop` 更强的体验,这也是 `top` 没有被列入主要列表的原因。 + +正如你在这里看到的,一些监控工具可能很有趣,而且证明比 `htop` 更有洞察力。 + +*你最喜欢的 `htop` 替代品是什么?你认为 `htop` 对你的使用情况来说已经足够了吗?欢迎在下面的评论中让我知道你的想法。* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[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://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/htop-2022.png +[2]: https://itsfoss.com/linux-system-monitoring-tools/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/atop-2022.png +[4]: https://www.atoptool.nl/index.php +[5]: https://itsfoss.com/wp-content/uploads/2022/11/vtop-2022.png +[6]: https://github.com/MrRio/vtop +[7]: https://itsfoss.com/wp-content/uploads/2022/11/btop.png +[8]: https://github.com/aristocratos/btop +[9]: https://itsfoss.com/wp-content/uploads/2022/11/glances-2022.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/nmon-2022-1.png +[11]: https://nmon.sourceforge.net/pmwiki.php?n=Main.HomePage +[12]: https://itsfoss.com/wp-content/uploads/2022/11/top-2022.png +[0]: https://img.linux.net.cn/data/attachment/album/202211/27/113700npcbceb0c0prbqcn.jpg \ No newline at end of file diff --git a/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md deleted file mode 100644 index fb2969556c..0000000000 --- a/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md +++ /dev/null @@ -1,159 +0,0 @@ -[#]: subject: "5 htop Alternatives to Enhance Your Linux System Monitoring Experience" -[#]: via: "https://itsfoss.com/authenticator/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 htop Alternatives to Enhance Your Linux System Monitoring Experience -====== - -htop is a popular command-line tool to help monitor the system’s resources and performance on Linux. - -**It’s better than top**, often available by default out of the box. - -With htop, you can filter and sort processes to understand things better, get a tree view of the processes running, and kill processes when needed. - -![htop 2022][1] - -I use htop over other system monitoring tools because it displays what’s essential to me and allows terminating rogue/frozen processes when I need to take control of running services. - -But, if you want something else that displays more info or looks different, what are some **htop alternatives**? Let’s take a look. - -**Recommended Read**: [7 System Monitoring Tools for Linux to Keep an Eye on Vital System Stats][2] - -### 1. atop - -![atop 2022][3] - -[atop][4] is all about running process details. You get all the data you need to understand the processing on your system. - -It also provides the ability to make a permanent log of resource utilization for long-term analysis. A system administrator might find this more useful than anyone else. - -Unfortunately, it does not provide you with a pretty output. So, if you want that, keep looking at the other options below. - -#### How to install atop? - -For Ubuntu/Debian-based distributions, type in: - -``` -sudo apt install atop -``` - -### 2. vtop - -![vtop 2022][5] - -[vtop][6] is the perfect system monitoring utility if you want a good-looking output and essential features to manage processes. - -The output looks like a GUI in a terminal, as I’ve stated in some of my other articles. You can have mouse support or choose to disable it. The theme can also be customized. - -It is built using Node.js. So, you need to install additional packages to get it installed. - -Unfortunately, this project seems to be no longer actively maintained. But, it worked for me at the time of writing this article. - -#### How to install vtop? - -For Ubuntu-based distros, enter the following commands in the terminal: - -``` -sudo apt install nodejs -sudo apt install npm -sudo npm install -g vtop -``` - -### 3. btop++ - -![btop][7] - -[btop++][8] is a C++ version of bashtop and bpytop. And, yes, it is the third iteration of those projects by the same developer. - -btop++ includes full mouse support, features a game-inspired menu system, lets you filter processes, get a tree view, and more. - -#### How to install btop++? - -Using the official repositories, you can easily install it on Fedora, OpenSUSE, and FreeBSD. - -For Fedora, you can type in: - -``` -sudo dnf install btop -``` - -You can explore its [GitHub page][8] for options to install on other Linux distributions. - -### 4. Glances - -![glances 2022][9] - -Glances is similar to htop, but with more features. - -It is a cross-platform system monitoring utility that can export data as CSV or other formats for InfluxDB, Elasticsearch, and more. - -You can also utilize its web user interface to check the stats remotely or without access to the terminal. - -#### How to Install Glances? - -For Ubuntu-based distros, you can type in: - -``` -sudo apt install glances -``` - -### 5. nmon - -![nmon 2022 1][10] - -[nmon][11] is an impressive monitoring utility that lets you control what you want to display as the output. - -You can extract the monitoring data (export it as CSV) and use it for further analysis. It is easy to toggle statistics and switch between different views. - -By default, it refreshes the data every two seconds, but you can customize it and access more options to tweak your experience. - -#### How to install nmon? - -You can find it in the official repositories. For Ubuntu-based distros, type in the following in the terminal: - -``` -sudo apt install nmon -``` - -### Wrapping Up - -![top 2022][12] - -The top command utility comes baked in with your Linux system. If you want a no-nonsense monitoring utility and want to keep an eye on system processes and some stats, top is sufficient. - -Not sure if I can count it as an enhanced experience over htop and that’s the reason why top is not included in the main list. - -As you can see here, some monitoring utilities may be fun and prove to be more insightful than htop. - -_What is your favorite htop replacement? Do you think htop is more than enough for your use-case? Feel free to let me know your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/authenticator/ - -作者:[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/wp-content/uploads/2022/11/htop-2022.png -[2]: https://itsfoss.com/linux-system-monitoring-tools/ -[3]: https://itsfoss.com/wp-content/uploads/2022/11/atop-2022.png -[4]: https://www.atoptool.nl/index.php -[5]: https://itsfoss.com/wp-content/uploads/2022/11/vtop-2022.png -[6]: https://github.com/MrRio/vtop -[7]: https://itsfoss.com/wp-content/uploads/2022/11/btop.png -[8]: https://github.com/aristocratos/btop -[9]: https://itsfoss.com/wp-content/uploads/2022/11/glances-2022.png -[10]: https://itsfoss.com/wp-content/uploads/2022/11/nmon-2022-1.png -[11]: https://nmon.sourceforge.net/pmwiki.php?n=Main.HomePage -[12]: https://itsfoss.com/wp-content/uploads/2022/11/top-2022.png From b5589e6c662c1118f414ab8556acdea8bc34b1d5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 27 Nov 2022 11:42:52 +0800 Subject: [PATCH 2130/3123] R --- ...p Alternatives to Enhance Your Linux System Monitoring Experience.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md index 8ad1c589a7..ea32ca458a 100644 --- a/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md +++ b/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md @@ -18,7 +18,7 @@ 使用 `htop`,你可以对进程进行过滤和排序,以便更好地了解情况,获得正在运行的进程的树状视图,并在需要时杀死进程。 -![htp 2022][1] +![htop 2022][1] 我使用 `htop` 而不是其他系统监控工具,因为它可以显示对我来说至关重要的东西,并允许在我需要控制运行中的服务时终止流氓进程或冻结进程。 From 06c1d65e481210f8c8cdeae896958383b7571ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 12:17:51 +0800 Subject: [PATCH 2131/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221126.1=20=E2=AD=90=EF=B8=8F=20How=20I=20Fixed=20?= =?UTF-8?q?Buzzing=20Noise=20Coming=20from=20Speakers=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Buzzing Noise Coming from Speakers in Linux.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md diff --git a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md new file mode 100644 index 0000000000..a6e34a26fe --- /dev/null +++ b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md @@ -0,0 +1,130 @@ +[#]: subject: "How I Fixed Buzzing Noise Coming from Speakers in Linux" +[#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I Fixed Buzzing Noise Coming from Speakers in Linux +====== + +I used a laptop for a long time but only recently switched to a desktop setup for my remote work at It’s FOSS. + +I noticed a constant buzzing sound coming from the speakers. It was annoying and gave me headaches. I started out to fix the issue. It was quite interesting to know the root cause of the issue. + +I will share my experience of fixing the buzzing noise from speakers in Linux. I found it working with Ubuntu, Debian and Pop OS on the same hardware. + +One thing to consider is that you may have a serious hardware issue if this guide does not work for you. For most users, the given solution should get the job done. + +**Before you try the fix …** + +I have tried to make things easy to follow safely. You try the temporary fix and if it works, you make the changes permanent. However, it would be a good idea to make system snapshots with Timeshift. If you are easily panicked when things do not work, you can restore the system to the earlier state. + +Also, check your sound card. In my case, it was snd_hda_intel. For USB card, it could be snd_usb_audio. You have to change the commands according to your sound card. + +``` +cat /proc/asound/modules +``` + +### The reason behind the buzzing noise from speakers in Linux + +After combing through numerous forum posts and websites, I learned the root cause of the issue. It is because of capacitor discharge in the speakers. And it can be solved by turning off the power-saving setting of a sound card. + +By turning off power saving, you are allowing the system to charge those capacitors when they get discharged. It is similar to using a phone while charging constantly. + +And you can check whether the power-saving setting for the sound card is enabled on your system by using the given command: + +``` +cat /sys/module/snd_hda_intel/parameters/power_save +``` + +![power saving setting in sound card making buzzing sound in linux][1] + +And if you get 1 in output like mine, the power saving is turned on. So let’s have a look at the solution. + +Don’t worry. This will not affect your battery percentage drastically, as the shown method is only applied to the sound card. + +### Try fixing the buzzing noise issue (temporary) + +The reason why I included the temporary way is to identify whether the humming sound is being caused due to capacitor discharge or if there is any serious hardware problem going on. + +If this temporary solution works, you can go ahead with the permanent solution. + +The first step is to switch to the root user: + +``` +sudo su +``` + +And then, execute the given command, and it should stop the buzzing sound until the next boot: + +``` +echo 0 > /sys/module/snd_hda_intel/parameters/power_save +``` + +If you are using **a USB sound card**, you have to interchange `snd_hda_intel` with `snd_usb_audio` as given: + +``` +echo 0 > /sys/module/snd_usb_audio/parameters/power_save +``` + +If the above trick fixed the issue, you have to make things permanent. Otherwise, the changes will be lost when you next reboot your system. + +### Fixing the buzzing noise issue (permanently) + +Here, I’m going to make changes in kernel parameters. + +Change your working directory to /etc/modprobe.d: + +``` +cd /etc/modprobe.d +``` + +And now, create a new file named `audio_disable_powersave.conf` and open with the nano text editor using the given command: + +``` +sudo nano audio_disable_powersave.conf +``` + +And put the following lines in that file to turn off the power-saving setting in the sound card permanently: + +``` +options snd_hda_intel power_save=0 +``` + +![fix buzzing sound in linux][2] + +For **a USB sound card**, you can use `snd_usb_audio`: + +``` +options snd_usb_audio power_save=0 +``` + +Now, [save changes and exit the Nano text editor][3] by pressing Ctrl+X keys. Reboot your system, and you can enjoy a noise-free workspace. + +### Wrapping Up + +This guide explains the cause of the buzzing noise and how you can straightforwardly solve that issue. + +Again, you may have some other issue rather than discharging capacitors, so you should always try the temporary method. + +Let me know if you were able to fix the buzzing noise from speakers in Linux this way or not. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/buzzing-noise-speaker-linux + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png +[3]: https://linuxhandbook.com/nano-save-exit/ From 28e5eb533e7b96b4bf9edead71bbad03ac7e1aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 12:19:59 +0800 Subject: [PATCH 2132/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221121.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Using=20the=20Lesser=20Known=20File=20Tagging=20Feature=20in=20?= =?UTF-8?q?KDE=E2=80=99s=20Dolphin=20File=20Manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e Tagging Feature in KDE’s Dolphin File Manager.md | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 sources/tech/20221121.4 ⭐️⭐️ Using the Lesser Known File Tagging Feature in KDE’s Dolphin File Manager.md diff --git a/sources/tech/20221121.4 ⭐️⭐️ Using the Lesser Known File Tagging Feature in KDE’s Dolphin File Manager.md b/sources/tech/20221121.4 ⭐️⭐️ Using the Lesser Known File Tagging Feature in KDE’s Dolphin File Manager.md new file mode 100644 index 0000000000..07609577d4 --- /dev/null +++ b/sources/tech/20221121.4 ⭐️⭐️ Using the Lesser Known File Tagging Feature in KDE’s Dolphin File Manager.md @@ -0,0 +1,211 @@ +[#]: subject: "Using the Lesser Known File Tagging Feature in KDE’s Dolphin File Manager" +[#]: via: "https://itsfoss.com/file-tagging-kde/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Using the Lesser Known File Tagging Feature in KDE’s Dolphin File Manager +====== + +[Dolphin][1] is the default file manager of the KDE Plasma Desktop Environment. It is considered as one of the most comprehensive and feature-rich file managers available for Linux distributions. + +Yes. It has tons of features and you may not be aware of all of them. One such feature is file tagging. + +File tagging is a way of organizing files or folder by applying tags to them. This tag can then be used to search for data, and sort the files accordingly. With this feature, you can tag files into categories irrespective of their location. This gives you a new way to organize your files. + +While there are dedicated tools like [Tagspaces][2] for this purpose, this feature comes baked into KDE’s Dolphin file manager. + +In this tutorial, I’ll show you how to use the file tagging feature in Dolphin. + +### Adding tags to files and folders in KDE + +There are two ways you can add tags: + +- Through the right-click menu +- Through the information panel + +Let’s see them one by one. + +#### Method 1: Adding tags through right-click context menu + +Select the file(s) and folders to which you want to add tags. Now press the right click. + +You need to select the “Add Tags” option and here, you can add the name of the tag, by pressing **Create New**. + +![create tags on the go using right click context menu][3] + +You need to enter the name of the new tag and press **OK**. + +![provide the name of the tag you like to use and press ok to add the tag][4] + +Once created, the tag will be visible the next time you try to tag a file. + +![add an existing tag to a file using right click context menu][5] + +**_Also, you can toggle the check box according to your need to add or remove a file/folder from a particular tag._** + +#### Method 2: Adding tags through the information panel + +Dolphin provides an information panel where you can view the details of a file/folder, including a small preview. + +This is turned off by default. But you can enable it by going to **Show Panel > Information** from the top right hamburger menu. + +![enable information panel in dolphin][6] + +Once this is checked, you will notice the new panel on the right side. Here, you can see the tags listed as an entry. + +![add tags using information panel][7] + +First, select the file/folder to which you want to add tags and then press **Add** on the information panel. Now, you can either create a new tag or add an existing tag to the respective file/folder, as shown in the above screenshot. Press **Save** once you are done. + +The same information panel will also show the tag information of the selected items if it has any. + +### Showing tag information of a file or folder + +As I mentioned above, the information panel lists the tags attached to the file/folder under selection. But there are more ways to list the tags. Those methods are detailed below. + +#### Method 1: Show the associated tags under file name + +On the default Icon View in Dolphin, you can get the tags associated with each item just beneath the name of that item. + +Select Show Additional Information > Tags from the hamburger menu in the top right corner. + +![showing assigned tags beneath each item][8] + +Once the box is checked, as shown in the above screenshot, you will notice that the tag information appears beneath the name of each item. + +#### Method 2: Show associated tags in list view + +Dolphin also provides a **Detailed** view. Here, the contents are listed with columns for each information. + +By default, tag data column is not shown. To add that, you can right-click anywhere on the top column, as shown in the screenshot below. Now, check the tag box. + +![see tag information in dolphin detailed list view][9] + +You will notice a new column, with tags of individual entries, is appeared. + +By clicking on the tag button (blue rectangle in the screenshot), you can sort the entries of the current location according to tags (alphabetical or reverse). + +### Listing all the files associated with a particular tag + +If you have many tags, you may want to list all the files and folders associated with a particular tag. + +For this, there is an entry called **Tags** on the sidebar. Clicking on this will list all the available tags that you have created. + +![all tags are listed on all tags section on side bar][10] + +Now, clicking on individual tag entries here will display the contents of that particular tag. + +Even more simple is that the tags are placed as a list on the sidebar itself. You can click on the entries to go to that particular list. + +### Searching for files with specific tags + +You can search by file names in Dolphin. That’s not new. But you may refine the search based on tags as well. + +For this, first press the search button on top right side. + +![select search icon to start a search][11] + +You will get a view for entering your search term. Here you can search in the current directory or in all files. + +Click on the **dropdown on right** as shown and select tags. Here you can filter your search by selecting the target tags. + +![perform searches using different crieteria and tags][12] + +### Sorting items according to tags + +In dolphin, you can start a sort operation based on tags (alphabetical or reverse). Also, you can sort the folders before files are mixed. + +To do this, click on the hamburger menu and select **sort by.** + +![sort entries according to tag][13] + +Here, you can select the **Tags** check box to sort**.** As shown in the above screenshot, you can specify the criteria also for the sorting. + +### Changing emblems of tags + +This is purely cosmetic and for those who have OCD about organizing files. You can change the emblem (icon) of a tag to be visually more distinguishable. + +In the above screenshots, you may have noticed that each tag appearing in the sidebar has different emblems. Right click on the name of the tag in sidebar and select **edit.** + +![edit a tag to change emblems][14] + +You can press the image button in the new dialog box to change the icon as shown below. + +![change emblem of tags][15] + +Note that the emblems will appear only on the sidebar. + +### Removing tags + +Don’t need a tag anymore? You can easily remove it. + +**_Note that removing tags does NOT remove the files associated with them._** + +To remove an existing tag, you can go to all tags in the sidebar. Right click on a tag and press **delete.** + +![delete a particular tag][16] + +That particular tag will be removed automatically from all the associated files/folders. + +### Buggy feature: Copy a tag as a directory + +On the **All tags** page, you can right-click and copy a particular tag and paste it to a location you like. This will paste all the entries with that particular tag into a separate folder. + +You should keep in mind that while copying, there will be some warning messages about missing files. You can skip them. Those warning messages are shown because a directory under the tag you copied may contain other files/directories, which essentially are not part of the tag you are copying. + +![warning message showing missing files][17] + +Here, some files inside the **Folders-One** directory are not part of the tag Tagger. So those files will not be copied. + +Also, another glitch that I found was if the copied tag contains files, the same files will be duplicated inside the tag. + +![duplicate files inside the tag because of copying tags inside system folders][18] + +It is an issue only if you are copying the tag within your system directories and will not be an issue if you are copying a tag to an outside storage like an external hard disk or USB device. + +### Wrapping Up + +Tags are indeed a great way to organize files, be they images or documents. Tagging feature can improve your productivity by enforcing neatness and order to your file storage and retrieval. + +It’s good to see KDE providing this as a built-in feature. I guess this is one of the many [differences between KDE and GNOME][19]. + +I feel I bit a bit more in detail as I wanted to give you all the required details. I hope you find it useful. + +If you know any other cool KDE features you love, do share them in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/file-tagging-kde/ + +作者:[Sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://apps.kde.org/en-gb/dolphin/ +[2]: https://www.tagspaces.org/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/create-tags-on-the-go-using-right-click-context-menu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/provide-the-name-of-the-tag-you-like-to-use-and-press-ok-to-add-the-tag.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/add-an-existing-tag-to-a-file-using-right-click-context-menu.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/enable-information-panel-in-dolphin.png +[7]: https://itsfoss.com/wp-content/uploads/2022/11/add-tags-using-information-panel.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/showing-assigned-tags-beneath-each-item.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/see-tag-information-in-dolphin-detailed-list-view.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/all-tags-are-listed-on-all-tags-section-on-side-bar.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/select-search-icon-to-start-a-search.png +[12]: https://itsfoss.com/wp-content/uploads/2022/11/perform-searches-using-different-crieteria-and-tags.png +[13]: https://itsfoss.com/wp-content/uploads/2022/11/sort-entries-according-to-tag.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/edit-a-tag-to-change-emblems.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/change-emblem-of-tags.png +[16]: https://itsfoss.com/wp-content/uploads/2022/11/delete-a-particular-tag.png +[17]: https://itsfoss.com/wp-content/uploads/2022/11/warning-message-showing-missing-files.png +[18]: https://itsfoss.com/wp-content/uploads/2022/11/duplicate-files-inside-the-tag-because-of-copying-tags-inside-system-folders.png +[19]: https://itsfoss.com/kde-vs-gnome/ From c5fb37d695908e1fc897c78360937e600f9dbd71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 12:20:55 +0800 Subject: [PATCH 2133/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221123.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Build=20an=20interactive=20timeline=20in=20React=20with=20this?= =?UTF-8?q?=20open=20source=20tool.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ve timeline in React with this open source tool.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sources/tech/20221123.1 ⭐️⭐️ Build an interactive timeline in React with this open source tool.md diff --git a/sources/tech/20221123.1 ⭐️⭐️ Build an interactive timeline in React with this open source tool.md b/sources/tech/20221123.1 ⭐️⭐️ Build an interactive timeline in React with this open source tool.md new file mode 100644 index 0000000000..3c5449b6da --- /dev/null +++ b/sources/tech/20221123.1 ⭐️⭐️ Build an interactive timeline in React with this open source tool.md @@ -0,0 +1,54 @@ +[#]: subject: "Build an interactive timeline in React with this open source tool" +[#]: via: "https://opensource.com/article/22/11/react-timeline-planby" +[#]: author: "Karol Kozer https://opensource.com/users/karolkozer" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Build an interactive timeline in React with this open source tool +====== + +For several years, I worked in the TV online and video-on-demand (VOD) industry. While working on a scheduler web application, I realized that there were no good solutions for electronic program guides (EPG) and scheduling. Admittedly, this is a niche feature for most web developers, but it's a common requirement for TV applications. I've seen and analyzed a number of websites that have implemented their own EPG or timeline, and I often wondered why everyone seemed to be inventing their own solutions instead of working on a shared solution everyone could use. And that's when I started developing Planby. + +[Planby][1] is a React (JavaScript) component to help you create schedules, timelines, and electronic program guides (EPG) for online TV and video-on-demand (VOD) services, music and sporting events, and more. Planby uses a custom virtual view, allowing you to operate on a lot of data, and present it to your viewers in a friendly and useful way. + +Planby has a simple API that you can integrate with third party UI libraries. The component theme is customised to the needs of the application design. + +### Timeline performance + +The most significant thing when implementing a timeline feature is performance. You're potentially handling basically an endless stream of data across many many different channels. Applications can struggle with refreshing, moving, and scrolling. You want the user's interactions with the content to be fluid. + +There's also the potential for poor design. Sometimes, an app implements an EPG timeline in the form of a list that you must scroll vertically, meaning you must click on buttons to move left and right through time, which quickly becomes tiring. What's more, sometimes customization for interacting with an EPG (such as rating, choosing your favorite channels, reading right-to-left (RTL), and so on) aren't available at all, or when they are, they cause performance issues. + +Another problem I often face is that an app is too verbose in its data transfer. When an app requests data _while_ you scroll through the EPG, the timeline feels slow and can even crash. + +### What is Planby? + +This is where Planby comes in. Planby is built from scratch, using React and Typescript and a minimal amount of resources. It uses a custom virtual view, allowing you to operate on vast amounts of data. It displays programs and channels to the user, and automatically positions all elements according to hours and assigned channels. When a resource contains no content, Planby calculates the positioning so the time slots are properly aligned. + +Planby has a simple interface and includes all necessary features, such as a sidebar, the timeline itself, a pleasant layout, and live program refreshing. In addition, there's an optional feature allowing you to hide any element you don't want to include in the layout. + +Planby has a simple API that allows you as the developer to implement your own items along with your user preferences. You can use Planby's theme to develop new features, or you can make custom styles to fit in with your chosen design. You can easily integrate with other features, like a calendar, rating options, a list of user favorites, scroll, "now" buttons, a recording schedule, catch-up content, and much more. What's more, you can add custom global styles, including register-transfer level (RTL) functionality. + +And best of all, it uses the open source MIT licensed. + +### Try Planby + +If you would like to try Planby, or just to learn more about it, visit the [Git repository][1]. There, I've got some examples of what's possible and you can read the documentation for the details. The package is also available with `npm`. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/react-timeline-planby + +作者:[Karol Kozer][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/karolkozer +[b]: https://github.com/lkxed +[1]: https://github.com/karolkozer/planby From 2969636b21d3f1afd05dad338634088424824658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 12:43:53 +0800 Subject: [PATCH 2134/3123] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...helloSystem (0.7.0) is moving towards stability.md | 4 +- ...️⭐️ How to Install and Use htop in Linux.md | 4 +- ...ed in legacy trusted.gpg keyring” Issue in Ubuntu.md | 4 +- ...stic (Yet Underrated) Linux Desktop Environment.md | 4 +- ...1 ⭐️⭐️ 7 Git tips for technical writers.md | 4 +- ...Enhance Your Linux System Monitoring Experience.md | 4 +- ...️ Find bugs with the git bisect command.md | 4 +- ... Anaconda Web UI preview image now public.md} | 84 ++++++++----------- ... apt remove vs apt purge What’s the Difference.md | 4 +- ...iew Reasons why its an all-rounder Linux distro.md | 4 +- 10 files changed, 53 insertions(+), 67 deletions(-) rename sources/tech/{20221122 Anaconda Web UI preview image now public.md => 20221122.1 ⭐️ Anaconda Web UI preview image now public.md} (54%) diff --git a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md index 09a5237e82..f23c3f745a 100644 --- a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md +++ b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md @@ -1,5 +1,5 @@ [#]: subject: "macOS Alternative helloSystem (0.7.0) is moving towards stability" -[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: via: "https://www.debugpoint.com/hellosystem-0-7-0/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" @@ -62,7 +62,7 @@ If you want to contribute to testing, development or any capacity, [visit the Gi -------------------------------------------------------------------------------- -via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ +via: https://www.debugpoint.com/hellosystem-0-7-0/ 作者:[Arindam][a] 选题:[lkxed][b] diff --git a/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md b/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md index 8837e31e64..b4c89ddb3c 100644 --- a/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md +++ b/sources/tech/20221117.0 ⭐️⭐️ How to Install and Use htop in Linux.md @@ -1,5 +1,5 @@ [#]: subject: "How to Install and Use htop in Linux" -[#]: via: "https://itsfoss.com/authenticator/" +[#]: via: "https://itsfoss.com/use-htop/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: " " @@ -167,7 +167,7 @@ But htop can do a lot more and for that and to learn more, you can always refer -------------------------------------------------------------------------------- -via: https://itsfoss.com/authenticator/ +via: https://itsfoss.com/use-htop/ 作者:[Sagar Sharma][a] 选题:[lkxed][b] diff --git a/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md b/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md index 6bdb4bc00f..45b626bd9d 100644 --- a/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md +++ b/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md @@ -1,5 +1,5 @@ [#]: subject: "Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu" -[#]: via: "https://itsfoss.com/authenticator/" +[#]: via: "https://itsfoss.com/key-is-stored-in-legacy-trusted-gpg/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: " " @@ -127,7 +127,7 @@ So, which method did you use to get rid of the ‘key is stored in legacy’ war -------------------------------------------------------------------------------- -via: https://itsfoss.com/authenticator/ +via: https://itsfoss.com/key-is-stored-in-legacy-trusted-gpg/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] diff --git a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md index b0bb7c538a..9a06dfdbc8 100644 --- a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md +++ b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md @@ -1,5 +1,5 @@ [#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment" -[#]: via: "https://itsfoss.com/authenticator/" +[#]: via: "https://itsfoss.com/why-cinnamon/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: " " @@ -154,7 +154,7 @@ _What do you think of the Cinnamon desktop environment? Do you prefer to try it -------------------------------------------------------------------------------- -via: https://itsfoss.com/authenticator/ +via: https://itsfoss.com/why-cinnamon/ 作者:[Ankush Das][a] 选题:[lkxed][b] diff --git a/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md index a71cbac625..02f5fa8a79 100644 --- a/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md +++ b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md @@ -1,5 +1,5 @@ [#]: subject: "7 Git tips for technical writers" -[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" +[#]: via: "https://opensource.com/article/22/11/git-tips-technical-writers" [#]: author: "Maximilian Kolb https://opensource.com/users/kolb" [#]: collector: "lkxed" [#]: translator: " " @@ -106,7 +106,7 @@ Git is a tremendous help for technical writers. Not only can you use Git to vers -------------------------------------------------------------------------------- -via: https://opensource.com/article/22/11/advanced-git-commands +via: https://opensource.com/article/22/11/git-tips-technical-writers 作者:[Maximilian Kolb][a] 选题:[lkxed][b] diff --git a/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md index fb2969556c..b800f93837 100644 --- a/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md +++ b/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md @@ -1,5 +1,5 @@ [#]: subject: "5 htop Alternatives to Enhance Your Linux System Monitoring Experience" -[#]: via: "https://itsfoss.com/authenticator/" +[#]: via: "https://itsfoss.com/htop-alternatives/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: " " @@ -134,7 +134,7 @@ _What is your favorite htop replacement? Do you think htop is more than enough f -------------------------------------------------------------------------------- -via: https://itsfoss.com/authenticator/ +via: https://itsfoss.com/htop-alternatives/ 作者:[Ankush Das][a] 选题:[lkxed][b] diff --git a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md index d47ef7e576..7250da150b 100644 --- a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md +++ b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md @@ -1,5 +1,5 @@ [#]: subject: "Find bugs with the git bisect command" -[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" +[#]: via: "https://opensource.com/article/22/11/git-bisect" [#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" [#]: collector: "lkxed" [#]: translator: " " @@ -61,7 +61,7 @@ Advanced users can even write scripts that determine good and bad states as well -------------------------------------------------------------------------------- -via: https://opensource.com/article/22/11/advanced-git-commands +via: https://opensource.com/article/22/11/git-bisect 作者:[Dwayne McDaniel][a] 选题:[lkxed][b] diff --git a/sources/tech/20221122 Anaconda Web UI preview image now public.md b/sources/tech/20221122.1 ⭐️ Anaconda Web UI preview image now public.md similarity index 54% rename from sources/tech/20221122 Anaconda Web UI preview image now public.md rename to sources/tech/20221122.1 ⭐️ Anaconda Web UI preview image now public.md index ce0de4368e..7079d88bc2 100644 --- a/sources/tech/20221122 Anaconda Web UI preview image now public.md +++ b/sources/tech/20221122.1 ⭐️ Anaconda Web UI preview image now public.md @@ -1,7 +1,7 @@ [#]: subject: "Anaconda Web UI preview image now public!" [#]: via: "https://fedoramagazine.org/anaconda-web-ui-preview-image-now-public/" [#]: author: "Jiří Konečný https://fedoramagazine.org/author/jkonecny/" -[#]: collector: "lujun9972" +[#]: collector: "lkxed" [#]: translator: " " [#]: reviewer: " " [#]: publisher: " " @@ -10,62 +10,52 @@ Anaconda Web UI preview image now public! ====== -![][1] +We are excited to announce the first public preview image of the new Anaconda web interface!  Our vision is to reimagine and modernize our installer’s user experience (see our blog post [“Anaconda is getting a new suit”][1]). We are doing this by redesigning the user experience on all fronts to make it more easy and approachable for everyone to use. -Background photo taken by [David Cantrell][2] (cropped) - -We are excited to announce the first public preview image of the new Anaconda web interface!  Our vision is to reimagine and modernize our installer’s user experience (see our blog post [“Anaconda is getting a new suit”][3]). We are doing this by redesigning the user experience on all fronts to make it more easy and approachable for everyone to use. - -Today, we would like to introduce our [plans][4] for the public preview release, as our new project has already reached a point where core code functionality is already developed and the new interface can be used for real installations.  +Today, we would like to introduce our [plans][2] for the public preview release, as our new project has already reached a point where core code functionality is already developed and the new interface can be used for real installations.  So, we’re giving you something to play with! 🙂 -![][5] +![Installation progress of the preview image][3] -### Why public preview image? +## Why public preview image? By giving you a working ISO as soon as we can, you have the opportunity to help us to define this new UI. This task allows us to rethink what we have and find new ways to overcome the challenges of the UI instead of re-creating what we had already. Please take this opportunity and reach us with your feedback to help us to create the best OS installer ever! -Please let us know what you require from Anaconda. **What** features ****are important to you and **why** are these important? That will allow us to prioritize our focus on development and design. See below for [how to contact us][6]. +Please let us know what you require from Anaconda. **What** featuresare important to you and **why** are these important? That will allow us to prioritize our focus on development and design. See below for[how to contact us][4]. -### How to get public preview image? +## How to get public preview image? -Download the Anaconda preview image [here][7].  +Download the Anaconda preview image [here][5].  -Thanks a lot to the [Image Builder][8] team for providing us with a way to build ISO with the Fedora 37 Workstation GA content. We are planning to provide additional images with an updated installer to give you the newest features and fixes with the link above. There are no updates to the installation payload (installed system data) yet. We will announce important updates of the ISO image by sending mail to [anaconda-devel@lists.fedoraproject.org][9] with CC to [devel@lists.fedoraproject.org][10]. Please subscribe to either of these to get information about the news. This way we will be able to iterate on your feedback. +Thanks a lot to the [Image Builder][6] team for providing us with a way to build ISO with the Fedora 37 Workstation GA content. We are planning to provide additional images with an updated installer to give you the newest features and fixes with the link above. There are no updates to the installation payload (installed system data) yet. We will announce important updates of the ISO image by sending mail to [anaconda-devel@lists.fedoraproject.org][7] with CC to [devel@lists.fedoraproject.org][8]. Please subscribe to either of these to get information about the news. This way we will be able to iterate on your feedback. -### What you will get with the preview ISO +## What you will get with the preview ISO The ISO will allow you to install the system and let you get a taste of the new UI, so you can provide us early feedback. However, it is pretty early in the development cycle. We advise you to not use this ISO to install critical infrastructure or machines where you have important data. Let’s go to the more interesting part of what you can do with the ISO: - * Choose installation language - * Select your disks - * Automatically partition the disks. **BEWARE! This will erase everything on the selected disks.** - * Automatically install Fedora 37 GA Workstation system - * Basic review screen of your selections - * Installation progress screen - * Built-in help (on Installation destination screen only) +- Choose installation language +- Select your disks +- Automatically partition the disks. **BEWARE! This will erase everything on the selected disks.** +- Automatically install Fedora 37 GA Workstation system +- Basic review screen of your selections +- Installation progress screen +- Built-in help (on Installation destination screen only) +### Known issues: +- In the bootloader menu you’ll see “Install Fedora 38”, it’s expected because the installation environment is from Rawhide. However, the content installed will be Fedora 37 GA, so don’t worry. +- Virtual Box on Mac might have resolution issues. We are working on resolving this issue. +- Aspect ratio and window handling. We know we need to solve this better, feedback is welcome. -#### Known issues: - - * In the bootloader menu you’ll see “Install Fedora 38”, it’s expected because the installation environment is from Rawhide. However, the content installed will be Fedora 37 GA, so don’t worry. - * Virtual Box on Mac might have resolution issues. We are working on resolving this issue. - * Aspect ratio and window handling. We know we need to solve this better, feedback is welcome. - - - -### How to provide feedback? +## How to provide feedback? Your feedback is critical to have a project which you and we can be proud of, so please share it with us. To give us feedback: - * Use our [GitHub repository discussions][11] - * Send mail to the [anaconda-devel@lists.fedoraproject.org][9] mailing list - - +- Use our [GitHub repository discussions][9] +- Send mail to the [anaconda-devel@lists.fedoraproject.org][7] mailing list Please take your time to play with the UI and tell us what you think. What works great, what is not working and what you would like to have. Ideally, follow future updates and tell us if the situation is better or worse.  @@ -76,22 +66,18 @@ We are really counting on your feedback and we are thankful to have you all supp via: https://fedoramagazine.org/anaconda-web-ui-preview-image-now-public/ 作者:[Jiří Konečný][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://fedoramagazine.org/author/jkonecny/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramag.wpenginepowered.com/wp-content/uploads/2022/11/anaconda-816x345.jpg -[2]: https://fedoraproject.org/wiki/User:Dcantrell -[3]: https://communityblog.fedoraproject.org/anaconda-is-getting-a-new-suit/ -[4]: https://fedoraproject.org/wiki/Changes/Anaconda_Web_UI_preview_image -[5]: https://lh3.googleusercontent.com/wYYvx8Cp5YJBLlMTWu4PCQlFsTQqs_ZflspDg7cjLyPE2lZUChhiJGKkdT3BcALPyiR0A04rR32S8YRoOfQHGLm22HaEQK6opM4cSUE_xchqmiowJPnDNCu7qsQSEg85ClJku_-ZSlwFoy3PQPhmactnKnHPjsEa9gS4tAqrINTfZ_Pj0Gg_jLJ4u1tNVw -[6]: tmp.UJAFNoc8ku#provide-feedback -[7]: https://fedorapeople.org/groups/anaconda/webui_preview_image/x86_64/webui_latest_install.iso -[8]: https://github.com/osbuild/osbuild-composer -[9]: mailto:anaconda-devel@lists.fedoraproject.org -[10]: mailto:devel@lists.fedoraproject.org -[11]: https://github.com/rhinstaller/anaconda/discussions/new?category=web-ui +[b]: https://github.com/lkxed +[1]: https://communityblog.fedoraproject.org/anaconda-is-getting-a-new-suit/ +[2]: https://fedoraproject.org/wiki/Changes/Anaconda_Web_UI_preview_image +[3]: https://lh3.googleusercontent.com/wYYvx8Cp5YJBLlMTWu4PCQlFsTQqs_ZflspDg7cjLyPE2lZUChhiJGKkdT3BcALPyiR0A04rR32S8YRoOfQHGLm22HaEQK6opM4cSUE_xchqmiowJPnDNCu7qsQSEg85ClJku_-ZSlwFoy3PQPhmactnKnHPjsEa9gS4tAqrINTfZ_Pj0Gg_jLJ4u1tNVw +[4]: https://fedoramagazine.org#provide-feedback +[5]: https://fedorapeople.org/groups/anaconda/webui_preview_image/x86_64/webui_latest_install.iso +[6]: https://github.com/osbuild/osbuild-composer +[7]: https://fedoramagazine.orgmailto:anaconda-devel@lists.fedoraproject.org +[8]: https://fedoramagazine.orgmailto:devel@lists.fedoraproject.org +[9]: https://github.com/rhinstaller/anaconda/discussions/new?category=web-ui diff --git a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md index d31fadca1d..aa796127cd 100644 --- a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -1,5 +1,5 @@ [#]: subject: "apt remove vs apt purge: What’s the Difference?" -[#]: via: "https://itsfoss.com/authenticator/" +[#]: via: "https://itsfoss.com/apt-remove/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: " " @@ -100,7 +100,7 @@ Over to you now. Do you understand the difference between apt remove and apt pur -------------------------------------------------------------------------------- -via: https://itsfoss.com/authenticator/ +via: https://itsfoss.com/apt-remove/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] diff --git a/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md b/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md index a73ad75ed5..91ab28fcb9 100644 --- a/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md +++ b/sources/tech/20221126.0 ⭐️⭐️ Pop OS Review Reasons why its an all-rounder Linux distro.md @@ -1,5 +1,5 @@ [#]: subject: "Pop OS Review: Reasons why its an all-rounder Linux distro" -[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: via: "https://www.debugpoint.com/pop-os-review/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: " " @@ -129,7 +129,7 @@ You can download Pop!_OS from the [official website][14]. -------------------------------------------------------------------------------- -via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ +via: https://www.debugpoint.com/pop-os-review/ 作者:[Arindam][a] 选题:[lkxed][b] From 427e28b1708a7299a884bc2df7b3dff08102db8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 12:49:00 +0800 Subject: [PATCH 2135/3123] =?UTF-8?q?Update=2020221121.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=205=20htop=20Alternatives=20to=20En?= =?UTF-8?q?hance=20Your=20Linux=20System=20Monitoring=20Experience.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Alternatives to Enhance Your Linux System Monitoring Experience.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md index ea32ca458a..7fdb75fdd0 100644 --- a/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md +++ b/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md @@ -1,5 +1,5 @@ [#]: subject: "5 htop Alternatives to Enhance Your Linux System Monitoring Experience" -[#]: via: "https://itsfoss.com/authenticator/" +[#]: via: "https://itsfoss.com/htop-alternatives/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "wxy" @@ -134,7 +134,7 @@ sudo apt install nmon -------------------------------------------------------------------------------- -via: https://itsfoss.com/authenticator/ +via: https://itsfoss.com/htop-alternatives/ 作者:[Ankush Das][a] 选题:[lkxed][b] From 7c288d5e43a1d6b1dc816432844170f924ac3730 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sun, 27 Nov 2022 13:26:59 +0800 Subject: [PATCH 2136/3123] translated --- ...210415 5 reasons sysadmins love systemd.md | 204 ------------------ ...210415 5 reasons sysadmins love systemd.md | 196 +++++++++++++++++ 2 files changed, 196 insertions(+), 204 deletions(-) delete mode 100644 sources/tech/20210415 5 reasons sysadmins love systemd.md create mode 100644 translated/tech/20210415 5 reasons sysadmins love systemd.md diff --git a/sources/tech/20210415 5 reasons sysadmins love systemd.md b/sources/tech/20210415 5 reasons sysadmins love systemd.md deleted file mode 100644 index 5ce9e73653..0000000000 --- a/sources/tech/20210415 5 reasons sysadmins love systemd.md +++ /dev/null @@ -1,204 +0,0 @@ -[#]: subject: (5 reasons sysadmins love systemd) -[#]: via: (https://opensource.com/article/21/4/sysadmins-love-systemd) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -5 reasons sysadmins love systemd -====== -Systemd's speed and ease make it a popular way to manage modern Linux -systems. -![Woman sitting in front of her laptop][1] - -As systems administrators know, there's a lot happening on modern computers. Applications run in the background, automated events wait to be triggered at a certain time, log files are written, status reports are delivered. Traditionally, these disparate processes have been managed and monitored with a collection of Unix tools to great effect and with great efficiency. However, modern computers are diverse, with local services running alongside containerized applications, easy access to clouds and the clusters they run on, real-time processes, and more data to process than ever. - -Having a unified method of managing them is an expectation for users and a useful luxury for busy sysadmins. For this nontrivial task, the system daemon, or **systemd**, was developed and quickly adopted by all major Linux distributions. - -Of course, systemd isn't the only way to manage a Linux system. There are many alternative init systems, including sysvinit, OpenRC, runit, s6, and even BusyBox, but systemd treats Linux as a unified data set, meant to be manipulated and queried consistently with robust tools. For a busy systems administrator and many users, the speed and ease of systemd is an important feature. Here are five reasons why. - -### Boot management - -Booting a Linux computer can be a surprisingly rare event, if you want it to be. Certainly in the server world, uptimes are often counted in _years_ rather than months or weeks. Laptops and desktops tend to be shut down and booted pretty frequently, although even these are as likely to be suspended or hibernated as they are to be shut down. Either way, the time since the most recent boot event can serve as a sort of session manager for a computer health check. It's a useful way to limit what data you look at when monitoring your system or diagnosing problems. - -In the likely event that you can't remember the last time you booted your computer, you can list boot sessions with systemd's logging tool, `journalctl`: - - -``` -$ journalctl --list-boots --42 7fe7c3... Fri 2020-12-04 05:13:59 - Wed 2020-12-16 16:01:23 --41 332e99... Wed 2020-12-16 20:07:39 - Fri 2020-12-18 22:08:13 -[...] --1 e0fe5f... Mon 2021-03-29 20:47:46 - Mon 2021-03-29 21:59:29 - 0 37fbe4... Tue 2021-03-30 04:46:13 - Tue 2021-03-30 10:42:08 -``` - -The latest boot sessions appear at the bottom of the list, so you can pipe the output to `tail` for just the latest boots. - -The numbers on the left (42, 41, 1, and 0 in this example) are index numbers for each boot session. In other words, to view logs for only a specific boot session, you can use its index number as reference. - -### Log reviews - -Looking at logs is an important method of extrapolating information about your system. Logs provide a history of much of the activity your computer engages in without your direct supervision. You can see when services launched, when timed jobs ran, what services are running in the background, which activities failed, and more. One of the most common initial troubleshooting steps is to review logs, which is easy to do with `journalctl`: - - -``` -`$ journalctl --pager-end` -``` - -The `--pager-end` (or `-e` for short) option starts your view of the logs at the end of the `journalctl` output, so you must scroll up to see events that happened earlier. - -Systemd maintains a "catalog" of errors and messages filled with records of errors, possible solutions, pointers to support forums, and developer documentation. This can provide important context to a log event, which can otherwise be a confusing blip in a sea of messages, or worse, could go entirely unnoticed. To integrate error messages with explanatory text, you can use the `--catalog` (or `-x` for short) option: - - -``` -`$ journalctl --pager-end --catalog` -``` - -To further limit the log output you need to wade through, you can specify which boot session you want to see logs for. Because each boot session is indexed, you can specify certain sessions with the `--boot` option and view only the logs that apply to it: - - -``` -`$ journalctl --pager-end --catalog --boot 42` -``` - -You can also see logs for a specific systemd unit. For instance, to troubleshoot an issue with your secure shell (SSH) service, you can specify `--unit sshd` to see only the logs that apply to the `sshd` daemon: - - -``` -$ journalctl --pager-end \ -\--catalog --boot 42 \ -\--unit sshd -``` - -### Service management - -The first task for systemd is to boot your computer, and it generally does that promptly, efficiently, and effectively. But the task that's never finished is service management. By design, systemd ensures that the services you want to run do indeed start and continue running during your session. This is nicely robust, because in theory even a crashed service can be restarted without your intervention. - -Your interface to help systemd manage services is the `systemctl` command. With it, you can view the unit files that define a service: - - -``` -$ systemctl cat sshd -# /usr/lib/systemd/system/sshd.service -[Unit] -Description=OpenSSH server daemon -Documentation=man:sshd(8) man:sshd_config(5) -After=network.target sshd-keygen.target -Wants=sshd-keygen.target - -[Service] -Type=notify -EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config -EnvironmentFile=-/etc/sysconfig/sshd -ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY -ExecReload=/bin/kill -HUP $MAINPID -KillMode=process -Restart=on-failure -RestartSec=42s - -[Install] -WantedBy=multi-user.target -``` - -Most unit files exist in `/usr/lib/systemd/system/` but, as with many important configurations, you're encouraged to modify them with local changes. There's an interface for that, too: - - -``` -`$ systemctl edit sshd` -``` - -You can see whether a service is currently active: - - -``` -$ systemctl is-active sshd -active -$ systemctl is-active foo -inactive -``` - -Similarly, you can see whether a service has failed with `is-failed`. - -Starting and stopping services is nicely intuitive: - - -``` -$ systemctl stop sshd -$ systemctl start sshd -``` - -And enabling a service to start at boot time is simple: - - -``` -`$ systemctl enable sshd` -``` - -Add the `--now` option to enable a service to start at boot time or to start it for your current session. - -### Timers - -Long ago, when you wanted to automate a task on Linux, the canonical tool for the job was `cron`. There's still a place for the cron command, but there are also some compelling alternatives. For instance, the [`anacron` command][2] is a versatile, cron-like system capable of running tasks that otherwise would have been missed during downtime. - -Scheduled events are little more than services activated at a specific time, so systemd manages a cron-like function called [timers][3]. You can list active timers: - - -``` -$ systemctl list-timers -NEXT                          LEFT       -Tue 2021-03-30 12:37:54 NZDT  16min left [...] -Wed 2021-03-31 00:00:00 NZDT  11h left [...] -Wed 2021-03-31 06:42:02 NZDT  18h left [...] - -3 timers listed. -Pass --all to see loaded but inactive timers, too. -``` - -You can enable a timer the same way you enable a service: - - -``` -`$ systemctl enable myMonitor.timer` -``` - -### Targets - -Targets are the final major component of the systemd matrix. A target is defined by a unit file, the same as services and timers. Targets can also be started and enabled in the same way. What makes targets unique is that they group other unit files in an arbitrarily significant way. For instance, you might want to boot to a text console instead of a graphical desktop, so the `multi-user` target exists. However, the `multi-user` target is only the `graphical` target without the desktop unit files as dependencies. - -In short, targets are an easy way for you to collect services, timers, and even other targets together to represent an intended state for your machine. - -In fact, within systemd, a reboot, a power-off, or a shut-down action is just another target. - -You can list all available targets using the `list-unit-files` option, constraining it with the `--type` option set to `target`: - - -``` -`$ systemctl list-unit-files --type target` -``` - -### Taking control with systemd - -Modern Linux uses systemd for service management and log introspection. It provides everything from personal Linux systems to enterprise servers with a modern mechanism for monitoring and easy maintenance. The more you use it, the more systemd becomes comfortably predictable and intuitive, and the more you discover how disparate parts of your system are interconnected. - -To get better acquainted with systemd, you must use it. And to get comfortable with using it, [download our cheat sheet][4] and refer to it often. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/4/sysadmins-love-systemd - -作者:[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/OSDC_women_computing_4.png?itok=VGZO8CxT (Woman sitting in front of her laptop) -[2]: https://opensource.com/article/21/2/linux-automation -[3]: https://opensource.com/article/20/7/systemd-timers -[4]: https://opensource.com/downloads/linux-systemd-cheat-sheet diff --git a/translated/tech/20210415 5 reasons sysadmins love systemd.md b/translated/tech/20210415 5 reasons sysadmins love systemd.md new file mode 100644 index 0000000000..4efee33aa8 --- /dev/null +++ b/translated/tech/20210415 5 reasons sysadmins love systemd.md @@ -0,0 +1,196 @@ +[#]: subject: (5 reasons sysadmins love systemd) +[#]: via: (https://opensource.com/article/21/4/sysadmins-love-systemd) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (chai001125) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +系统管理员喜欢 systemd 的 5 个理由 +====== + +>Systemd 的速度和易用性使其成为管理现代 Linux 系统的流行方式。 + +![Woman sitting in front of her laptop][1] + +系统管理员知道一台运行着的**现代计算机**上会发生了很多事情:应用程序在后台运行、预定事件等待在特定时间被触发、事件写入日志文件、发送状态报告。在以前,不同的进程可以通过一系列 Unix 工具,来进行有效地管理和监控。然而,现代的计算机运作更为复杂了:本地服务与容器化应用程序一同运行、能够轻松访问云及其运行的集群、有实时进程以及有比以往都多的数据。 + +拥有统一的管理方法不但是用户想要的,也是忙碌的系统管理员所迫切渴望的。为了完成这项重要的任务,系统守护进程 system daemon 或 **systemd** 被开发出来,并迅速被所有主要的 Linux 发行版所采用了。 + +当然,systemd 并不是管理 Linux 系统的唯一方式,还有许多其他可供选择的 init 系统,包括 sysvinit、OpenRC、runit、s6,和 BusyBox,但 systemd 将 Linux 视为一个统一的数据集,意味着 systemd 能用强大的工具对 Linux 进行一致的操作和查询。对于忙碌的系统管理员和许多用户来说,systemd 的速度和易用性是一个重要的特性。有以下的五个原因。 + +### systemd 的 计算机启动管理 Boot management + +启动 Linux 计算机可能是一件非常罕见的事情。**服务器**的正常运行时间通常以 _年_ 来计算,而不是月或周。**笔记本电脑和台式机**可能会频繁地关闭和启动,但更多的时候它们是被挂起或休眠了。无论哪种类型,**最近一次开机的时刻**都可用于检查一段时间内的计算机健康情况,因为当你在监视系统或诊断问题时,这一时刻能够限制查看的数据量大小,从而让你快速地找到问题所在。 + +如果你不记得上次启动计算机的时间,你可以使用 systemd 的日志记录工具 `journalctl`,来列出计算机的所有启动时间: + +``` +$ journalctl --list-boots +-42 7fe7c3... Fri 2020-12-04 05:13:59 - Wed 2020-12-16 16:01:23 +-41 332e99... Wed 2020-12-16 20:07:39 - Fri 2020-12-18 22:08:13 +[...] +-1 e0fe5f... Mon 2021-03-29 20:47:46 - Mon 2021-03-29 21:59:29 + 0 37fbe4... Tue 2021-03-30 04:46:13 - Tue 2021-03-30 10:42:08 +``` + +最近一次启动时间输出在结果列表的底部,因此你可以通过管道将输出传输到 `tail`,来查看最近一次启动时间。 + +左侧的数字(在本例中为 42、41、1 和 0)是每个启动时间的索引号。换句话说,如果你要查看某一特定启动时间的日志,你可以使用这个索引号作为参数。 + +### systemd 的 日志记录 Log reviews + +查看日志是推断系统信息的一种重要方法。日志提供了计算机运行的大部分事件的历史记录,这些记录都是在没有你直接监督的情况下生成的。通过日志,你可以知道某一服务何时启动、定时任务何时运行、哪些服务在后台运行、哪些事件运行失败等等信息。故障排除的初始步骤是使用 systemd 的 `journalctl` 来查看日志: + +``` +`$ journalctl --pager-end` +``` + +`--pager-end` 选项(简写为 `-e`)会在 `journalctl` 的输出末尾开始查看日志,因此要查看更早发生的日志,你需要向上滚动。 + +Systemd 维护一个错误信息的“目录”,错误信息包含错误记录、可能的解决方案、支持论坛的指针和开发人员文档。这个错误信息的“目录”能为日志事件提供重要的上下文,否则它可能会成为海量日志中的一个令人困惑的信息,或者更糟的是,错误信息可能会完全被忽视。要将错误消息与日志中的解释性文本放在一起输出,你可以使用`--catalog`选项(简写为 `-x`): + +``` +`$ journalctl --pager-end --catalog` +``` + +要进一步限定日志输出,你可以指定要查看哪个启动时间的日志。因为每个启动时间都有索引,所以你可以使用 `--boot` 选项,来指定某个启动时间,并仅查看该启动时间的日志: + +``` +`$ journalctl --pager-end --catalog --boot 42` +``` + +你还可以查看特定 systemd 单元的日志。例如,要解决 SSH 服务的问题,你可以指定 `--unit sshd` 选项,来仅查看适用于 `sshd` 守护程序的日志: + +``` +$ journalctl --pager-end \ +\--catalog --boot 42 \ +\--unit sshd +``` + +### systemd 的 服务管理 Service management + +systemd 的第一个任务就是启动你的计算机,systemd 会迅速、高效且有效地执行这一任务。但 systemd 一直需要管理的任务是 服务管理 service management ,因为 systemd 需要确保你要运行的服务确实在你的会话期间启动,并继续运行。systemd 的这一功能非常稳健,因为理论上即使是一个崩溃的服务也可以在没有你干预的情况下重新启动。 + +你可以通过使用 `systemctl` 命令,来接入 systemd 管理服务接口,并能查看定义服务的 单元文件 unit files : + +``` +$ systemctl cat sshd +# /usr/lib/systemd/system/sshd.service +[Unit] +Description=OpenSSH server daemon +Documentation=man:sshd(8) man:sshd_config(5) +After=network.target sshd-keygen.target +Wants=sshd-keygen.target + +[Service] +Type=notify +EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config +EnvironmentFile=-/etc/sysconfig/sshd +ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY +ExecReload=/bin/kill -HUP $MAINPID +KillMode=process +Restart=on-failure +RestartSec=42s + +[Install] +WantedBy=multi-user.target +``` + +大多数单元文件都在 `/usr/lib/systemd/system/` 目录下,但是你也可以在本地更改文件中的配置,请使用以下的接口: + +``` +`$ systemctl edit sshd` +``` + +你可以通过 `is-active` 选项,来查看某一服务当前是否处于活动状态: + +``` +$ systemctl is-active sshd +active +$ systemctl is-active foo +inactive +``` + +同样地,你可以通过 `is-failed` 选项,来查看某一服务是否运行失败了。 + +``` +$ systemctl is-failed sshd +``` + +使用以下命令,来启动或者停止某一服务: + +``` +$ systemctl stop sshd +$ systemctl start sshd +``` + +使用以下命令,让某一服务在开机时自启动: + +``` +`$ systemctl enable sshd` +``` + +添加 `--now` 选项,让某一服务在开机时启动或在当前会话中立即启动。 + +### systemd 的 Timers 管理 + +在以前,当你想在 Linux 上自动执行一项任务时,你可以使用的工具是 `cron`。如今,`cron` 命令仍能使用,但对于在 Linux 上自动执行一项任务,也有一些其他好用的替代方案。例如,[`anacron` 命令][2] 是一个多功能的、类似于 `cron` 的系统,它能够运行在停机期间可能会错过的任务。 + +计划的事件就是在特定时间需要激活的服务。systemd 管理一个名为 [timers][3] 的工具,它类似 cron 的功能。你可以使用以下命令,来列出活动中的计时器: + +``` +$ systemctl list-timers +NEXT                          LEFT       +Tue 2021-03-30 12:37:54 NZDT  16min left [...] +Wed 2021-03-31 00:00:00 NZDT  11h left [...] +Wed 2021-03-31 06:42:02 NZDT  18h left [...] + +3 timers listed. +Pass --all to see loaded but inactive timers, too. +``` + +你可以使用以下命令,来像启用服务一样启用计时器: + +``` +`$ systemctl enable myMonitor.timer` +``` + +### systemd 的 Targets 管理 + +Targets 是 systemd 的最后一个主要组成部分。Targets 是一个单元文件,与服务和计时器相同,Targets 也可以以相同的方式启动和启用。Targets 的独特之处在于它们以一种任意重要的方式对其他单元文件进行分组。例如,你可能希望开机到文本控制台界面而不是图形桌面,因此有 `multi-user` Target 存在。但是,`multi-user` Target 只是没有桌面单元文件作为依赖项的 `graphical` target。 + +简而言之,Targets 是一种将服务、计时器甚至其他的 Targets 收集在一起,以表示机器的预期状态的简单方法。 + +事实上,在 systemd 中,重启、关机或关闭操作只是又一个 Target。 + +你可以使用 `list-unit-files` 选项,来列出所有可用的 Targets,用 `--type` 选项将其限制为 `target`: + +``` +`$ systemctl list-unit-files --type target` +``` + +### 快使用 systemd 对计算机进行控制管理吧 + +现代的 Linux 使用 systemd 进行服务管理和日志检查。从个人的 Linux 系统到企业服务器,systemd 都能提供有效的监控,并且十分易于维护。你越频繁地使用 systemd,systemd 对你而言就会变得越容易预测和直观,你就会明白系统的不同部分是如何相互关联的。 + +为了更好地熟悉 systemd,请现在就开始使用它吧。请 [下载关于 systemd 相关命令的备忘录][4],你可以在实际使用 systemd 中经常参考这个备忘录,这样你就能更快熟悉使用 systemd 啦! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/sysadmins-love-systemd + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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/OSDC_women_computing_4.png?itok=VGZO8CxT (Woman sitting in front of her laptop) +[2]: https://opensource.com/article/21/2/linux-automation +[3]: https://opensource.com/article/20/7/systemd-timers +[4]: https://opensource.com/downloads/linux-systemd-cheat-sheet From c64dd35b55920764173d9c77d3005cd695d52603 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 27 Nov 2022 14:33:13 +0800 Subject: [PATCH 2137/3123] =?UTF-8?q?Delete=2020221121.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=205=20htop=20Alternatives=20to=20En?= =?UTF-8?q?hance=20Your=20Linux=20System=20Monitoring=20Experience.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Enhance Your Linux System Monitoring Experience.md | 159 ------------------ 1 file changed, 159 deletions(-) delete mode 100644 sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md diff --git a/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md deleted file mode 100644 index b800f93837..0000000000 --- a/sources/tech/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md +++ /dev/null @@ -1,159 +0,0 @@ -[#]: subject: "5 htop Alternatives to Enhance Your Linux System Monitoring Experience" -[#]: via: "https://itsfoss.com/htop-alternatives/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 htop Alternatives to Enhance Your Linux System Monitoring Experience -====== - -htop is a popular command-line tool to help monitor the system’s resources and performance on Linux. - -**It’s better than top**, often available by default out of the box. - -With htop, you can filter and sort processes to understand things better, get a tree view of the processes running, and kill processes when needed. - -![htop 2022][1] - -I use htop over other system monitoring tools because it displays what’s essential to me and allows terminating rogue/frozen processes when I need to take control of running services. - -But, if you want something else that displays more info or looks different, what are some **htop alternatives**? Let’s take a look. - -**Recommended Read**: [7 System Monitoring Tools for Linux to Keep an Eye on Vital System Stats][2] - -### 1. atop - -![atop 2022][3] - -[atop][4] is all about running process details. You get all the data you need to understand the processing on your system. - -It also provides the ability to make a permanent log of resource utilization for long-term analysis. A system administrator might find this more useful than anyone else. - -Unfortunately, it does not provide you with a pretty output. So, if you want that, keep looking at the other options below. - -#### How to install atop? - -For Ubuntu/Debian-based distributions, type in: - -``` -sudo apt install atop -``` - -### 2. vtop - -![vtop 2022][5] - -[vtop][6] is the perfect system monitoring utility if you want a good-looking output and essential features to manage processes. - -The output looks like a GUI in a terminal, as I’ve stated in some of my other articles. You can have mouse support or choose to disable it. The theme can also be customized. - -It is built using Node.js. So, you need to install additional packages to get it installed. - -Unfortunately, this project seems to be no longer actively maintained. But, it worked for me at the time of writing this article. - -#### How to install vtop? - -For Ubuntu-based distros, enter the following commands in the terminal: - -``` -sudo apt install nodejs -sudo apt install npm -sudo npm install -g vtop -``` - -### 3. btop++ - -![btop][7] - -[btop++][8] is a C++ version of bashtop and bpytop. And, yes, it is the third iteration of those projects by the same developer. - -btop++ includes full mouse support, features a game-inspired menu system, lets you filter processes, get a tree view, and more. - -#### How to install btop++? - -Using the official repositories, you can easily install it on Fedora, OpenSUSE, and FreeBSD. - -For Fedora, you can type in: - -``` -sudo dnf install btop -``` - -You can explore its [GitHub page][8] for options to install on other Linux distributions. - -### 4. Glances - -![glances 2022][9] - -Glances is similar to htop, but with more features. - -It is a cross-platform system monitoring utility that can export data as CSV or other formats for InfluxDB, Elasticsearch, and more. - -You can also utilize its web user interface to check the stats remotely or without access to the terminal. - -#### How to Install Glances? - -For Ubuntu-based distros, you can type in: - -``` -sudo apt install glances -``` - -### 5. nmon - -![nmon 2022 1][10] - -[nmon][11] is an impressive monitoring utility that lets you control what you want to display as the output. - -You can extract the monitoring data (export it as CSV) and use it for further analysis. It is easy to toggle statistics and switch between different views. - -By default, it refreshes the data every two seconds, but you can customize it and access more options to tweak your experience. - -#### How to install nmon? - -You can find it in the official repositories. For Ubuntu-based distros, type in the following in the terminal: - -``` -sudo apt install nmon -``` - -### Wrapping Up - -![top 2022][12] - -The top command utility comes baked in with your Linux system. If you want a no-nonsense monitoring utility and want to keep an eye on system processes and some stats, top is sufficient. - -Not sure if I can count it as an enhanced experience over htop and that’s the reason why top is not included in the main list. - -As you can see here, some monitoring utilities may be fun and prove to be more insightful than htop. - -_What is your favorite htop replacement? Do you think htop is more than enough for your use-case? Feel free to let me know your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/htop-alternatives/ - -作者:[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/wp-content/uploads/2022/11/htop-2022.png -[2]: https://itsfoss.com/linux-system-monitoring-tools/ -[3]: https://itsfoss.com/wp-content/uploads/2022/11/atop-2022.png -[4]: https://www.atoptool.nl/index.php -[5]: https://itsfoss.com/wp-content/uploads/2022/11/vtop-2022.png -[6]: https://github.com/MrRio/vtop -[7]: https://itsfoss.com/wp-content/uploads/2022/11/btop.png -[8]: https://github.com/aristocratos/btop -[9]: https://itsfoss.com/wp-content/uploads/2022/11/glances-2022.png -[10]: https://itsfoss.com/wp-content/uploads/2022/11/nmon-2022-1.png -[11]: https://nmon.sourceforge.net/pmwiki.php?n=Main.HomePage -[12]: https://itsfoss.com/wp-content/uploads/2022/11/top-2022.png From 848e5464857ba4cf6203d05911bfa5cb5bed4c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 27 Nov 2022 18:23:34 +0800 Subject: [PATCH 2138/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221122.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Introducing=20Rust=20calls=20to=20C=20libr?= =?UTF-8?q?ary=20functions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Introducing Rust calls to C library functions.md | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md diff --git a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md new file mode 100644 index 0000000000..43f516aa5c --- /dev/null +++ b/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md @@ -0,0 +1,283 @@ +[#]: subject: "Introducing Rust calls to C library functions" +[#]: via: "https://opensource.com/article/22/11/rust-calls-c-library-functions" +[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Introducing Rust calls to C library functions +====== + +Why call C functions from Rust? The short answer is software libraries. A longer answer touches on where C stands among programming languages in general and towards Rust in particular. C, C++, and Rust are systems languages, which give programmers access to machine-level data types and operations. Among these three systems languages, C remains the dominant one. The kernels of modern operating systems are written mainly in C, with assembly language accounting for the rest. The standard system libraries for input and output, number crunching, cryptography, security, networking, internationalization, string processing, memory management, and more, are likewise written mostly in C. These libraries represent a vast infrastructure for applications written in any other language. Rust is well along the way to providing fine libraries of its own, but C libraries—​around since the 1970s and still growing—​are a resource not to be ignored. Finally, C is still the [lingua franca][1] among programming languages: most languages can talk to C and, through C, to any other language that does so. + +### Two proof-of-concept examples + +Rust has an FFI (Foreign Function Interface) that supports calls to C functions. An issue for any FFI is whether the calling language covers the data types in the called language. For example, `ctypes` is an FFI for calls from Python into C, but Python doesn't cover the unsigned integer types available in C. As a result, `ctypes` must resort to workarounds. + +By contrast, Rust covers all the primitive (that is, machine-level) types in C. For example, the Rust `i32` type matches the C `int` type. C specifies only that the `char` type must be one byte in size and other types, such as `int`, must be at least this size; but nowadays every reasonable C compiler supports a four-byte `int`, an eight-byte `double` (in Rust, the `f64` type), and so on. + +There is another challenge for an FFI directed at C: Can the FFI handle C's raw pointers, including pointers to arrays that count as strings in C? C does not have a string type, but rather implements strings as character arrays with a non-printing terminating character, the _null terminator_ of legend. By contrast, Rust has two string types: `String` and `&str` (string slice). The question, then, is whether the Rust FFI can transform a C string into a Rust one—​and the answer is _yes_. + +Pointers to structures also are common in C. The reason is efficiency. By default, a C structure is passed _by_value (that is, by a byte-per-byte copy) when a structure is either an argument passed to a function or a value returned from one. C structures, like their Rust counterparts, can include arrays and nest other structures and so be arbitrarily large in size. Best practice in either language is to pass and return structures by reference, that is, by passing or returning the structure's address rather than a copy of the structure. Once again, the Rust FFI is up to the task of handling C pointers to structures, which are common in C libraries. + +The first code example focuses on calls to relatively simple C library functions such as `abs` (absolute value) and `sqrt` (square root). These functions take non-pointer scalar arguments and return a non-pointer scalar value. The second code example, which covers strings and pointers to structures, introduces the [bindgen][2] utility, which generates Rust code from C interface (header) files such as `math.h` and `time.h`. C header files specify the calling syntax for C functions and define structures used in such calls. The two code examples are [available on my homepage][3]. + +### Calling relatively simple C functions + +The first code example has four Rust calls to C functions in the standard mathematics library: one call apiece to `abs` (absolute value) and `pow` (exponentiation), and two calls to `sqrt` (square root). The program can be built directly with the `rustc` compiler, or more conveniently with the `cargo build` command: + +``` +use std::os::raw::c_int; // 32 bits +use std::os::raw::c_double; // 64 bits + +// Import three functions from the standard library libc. +// Here are the Rust declarations for the C functions: +extern "C" { + fn abs(num: c_int) -> c_int; + fn sqrt(num: c_double) -> c_double; + fn pow(num: c_double, power: c_double) -> c_double; +} + +fn main() { + let x: i32 = -123; + println!("\nAbsolute value of {x}: {}.", unsafe { abs(x) }); + + let n: f64 = 9.0; + let p: f64 = 3.0; + println!("\n{n} raised to {p}: {}.", unsafe { pow(n, p) }); + + let mut y: f64 = 64.0; + println!("\nSquare root of {y}: {}.", unsafe { sqrt(y) }); + + y = -3.14; + println!("\nSquare root of {y}: {}.", unsafe { sqrt(y) }); //** NaN = NotaNumber +} +``` + +The two `use` declarations at the top are for the Rust data types `c_int` and `c_double`, which match the C types `int` and `double`, respectively. The standard Rust module `std::os::raw` defines fourteen such types for C compatibility. The module `std::ffi` has the same fourteen type definitions together with support for strings. + +The `extern "C"` block above the `main` function then declares the three C library functions called in the `main` function below. Each call uses the standard C function's name, but each call must occur within an `unsafe` block. As every programmer new to Rust discovers, the Rust compiler enforces memory safety with a vengeance. Other languages (in particular, C and C++) do not make the same guarantees. The `unsafe` block thus says: Rust takes no responsibility for whatever unsafe operations may occur in the external call. + +The first program's output is: + +``` +Absolute value of -123: 123. +9 raised to 3: 729 +Square root of 64: 8. +Square root of -3.14: NaN. +``` + +In the last output line, the `NaN` stands for Not a Number: the C `sqrt` library function expects a non-negative value as its argument, which means that the argument -3.14 generates `NaN` as the returned value. + +### Calling C functions involving pointers + +C library functions in security, networking, string processing, memory management, and other areas regularly use pointers for efficiency. For example, the library function `asctime` (time as an ASCII string) expects a pointer to a structure as its single argument. A Rust call to a C function such as `asctime` is thus trickier than a call to `sqrt`, which involves neither pointers nor structures. + +The C structure for the `asctime` function call is of type `struct tm`. A pointer to such a structure also is passed to library function `mktime` (make a time value). The structure breaks a time into units such as the year, the month, the hour, and so forth. The structure's fields are of type `time_t`, an alias for for either `int` (32 bits) or `long` (64 bits). The two library functions combine these broken-apart time pieces into a single value: `asctime` returns a string representation of the time, whereas `mktime` returns a `time_t` value that represents the number of elapsed seconds since the _epoch_, which is a time relative to which a system's clock and timestamp are determined. Typical epoch settings are January 1 00:00:00 (zero hours, minutes, and seconds) of either 1900 or 1970. + +The C program below calls `asctime` and `mktime`, and uses another library function `strftime` to convert the `mktime` returned value into a formatted string. This program acts as a warm-up for the Rust version: + +``` +#include +#include + +int main () { + struct tm sometime; /* time broken out in detail */ + char buffer[80]; + int utc; + + sometime.tm_sec = 1; + sometime.tm_min = 1; + sometime.tm_hour = 1; + sometime.tm_mday = 1; + sometime.tm_mon = 1; + sometime.tm_year = 1; + sometime.tm_hour = 1; + sometime.tm_wday = 1; + sometime.tm_yday = 1; + + printf("Date and time: %s\n", asctime(&sometime)); + + utc = mktime(&sometime); + if( utc < 0 ) { + fprintf(stderr, "Error: unable to make time using mktime\n"); + } else { + printf("The integer value returned: %d\n", utc); + strftime(buffer, sizeof(buffer), "%c", &sometime); + printf("A more readable version: %s\n", buffer); + } + + return 0; +} +``` + +The program outputs: + +``` +Date and time: Fri Feb  1 01:01:01 1901 +The integer value returned: 2120218157 +A more readable version: Fri Feb  1 01:01:01 1901 +``` + +In summary, the Rust calls to library functions `asctime` and `mktime` must deal with two issues: + +- Passing a raw pointer as the single argument to each library function. +- Converting the C string returned from `asctime` into a Rust string. + +### Rust calls to `asctime` and `mktime` + +The `bindgen` utility generates Rust support code from C header files such as `math.h` and `time.h`. In this example, a simplified version of `time.h` will do but with two changes from the original: + +- The built-in type `int` is used instead of the alias type `time_t`. The bindgen utility can handle the `time_t` type but generates some distracting warnings along the way because `time_t` does not follow Rust naming conventions: in `time_t` an underscore separates the `t` at the end from the `time` that comes first; Rust would prefer a CamelCase name such as `TimeT`. +- The type `struct tm` type is given `StructTM` as an alias for the same reason. + +Here is the simplified header file with declarations for `mktime` and `asctime` at the bottom: + +``` +typedef struct tm { + int tm_sec; /* seconds */ + int tm_min; /* minutes */ + int tm_hour; /* hours */ + int tm_mday; /* day of the month */ + int tm_mon; /* month */ + int tm_year; /* year */ + int tm_wday; /* day of the week */ + int tm_yday; /* day in the year */ + int tm_isdst; /* daylight saving time */ +} StructTM; + +extern int mktime(StructTM*); +extern char* asctime(StructTM*); +``` + +With `bindgen` installed, `%` as the command-line prompt, and `mytime.h` as the header file above, the following command generates the required Rust code and saves it in the file `mytime.rs`: + +``` +% bindgen mytime.h > mytime.rs +``` + +Here is the relevant part of `mytime.rs`: + +``` +/* automatically generated by rust-bindgen 0.61.0 */ + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, +} + +pub type StructTM = tm; + +extern "C" { + pub fn mktime(arg1: *mut StructTM) -> ::std::os::raw::c_int; +} + +extern "C" { + pub fn asctime(arg1: *mut StructTM) -> *mut ::std::os::raw::c_char; +} + +#[test] +fn bindgen_test_layout_tm() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 36usize, + concat!("Size of: ", stringify!(tm)) + ); + ... +``` + +The Rust structure `struct tm`, like the C original, contains nine 4-byte integer fields. The field names are the same in C and Rust. The `extern "C"` blocks declare the library functions `asctime` and `mktime` as taking one argument apiece, a raw pointer to a mutable `StructTM` instance. (The library functions may mutate the structure via the pointer passed as an argument.) + +The remaining code, under the `#[test]` attribute, tests the layout of the Rust version of the time structure. The test can be run with the `cargo test` command. At issue is that C does not specify how the compiler must lay out the fields of a structure. For example, the C `struct tm` starts out with the field `tm_sec` for the second; but C does not require that the compiled version has this field as the first. In any case, the Rust tests should succeed and the Rust calls to the library functions should work as expected. + +### Getting the second example up and running + +The code generated from `bindgen` does not include a `main` function and, therefore, is a natural module. Below is the `main` function with the `StructTM` initialization and the calls to `asctime` and `mktime`: + +``` +mod mytime; +use mytime::*; +use std::ffi::CStr; + +fn main() { + let mut sometime = StructTM { + tm_year: 1, + tm_mon: 1, + tm_mday: 1, + tm_hour: 1, + tm_min: 1, + tm_sec: 1, + tm_isdst: -1, + tm_wday: 1, + tm_yday: 1 + }; + + unsafe { + let c_ptr = &mut sometime; // raw pointer + + // make the call, convert and then own + // the returned C string + let char_ptr = asctime(c_ptr); + let c_str = CStr::from_ptr(char_ptr); + println!("{:#?}", c_str.to_str()); + + let utc = mktime(c_ptr); + println!("{}", utc); + } +} +``` + +The Rust code can be compiled (using either `rustc` directly or `cargo`) and then run. The output is: + +``` +Ok( +    "Mon Feb  1 01:01:01 1901\n", +) +2120218157 +``` + +The calls to the C functions `asctime` and `mktime` again must occur inside an `unsafe` block, as the Rust compiler cannot be held responsible for any memory-safety mischief in these external functions. For the record, `asctime` and `mktime` are well behaved. In the calls to both functions, the argument is the raw pointer `ptr`, which holds the (stack) address of the `sometime` structure. + +The call to `asctime` is the trickier of the two calls because this function returns a pointer to a C `char`, the character `M` in `Mon` of the text output. Yet the Rust compiler does not know where the C string (the null-terminated array of `char`) is stored. In the static area of memory? On the heap? The array used by the `asctime` function to store the text representation of the time is, in fact, in the static area of memory. In any case, the C-to-Rust string conversion is done in two steps to avoid compile-time errors: + +- The call `Cstr::from_ptr(char_ptr)` converts the C string to a Rust string and returns a reference stored in the `c_str` variable. +- The call to `c_str.to_str()` ensures that `c_str` is the owner. + +The Rust code does not generate a human-readable version of the integer value returned from `mktime`, which is left as an exercise for the interested. The Rust module `chrono::format` includes a `strftime` function, which can be used like the C function of the same name to get a text representation of the time. + +### Calling C with FFI and bindgen + +The Rust FFI and the `bindgen` utility are well designed for making Rust calls out to C libraries, whether standard or third-party. Rust talks readily to C and thereby to any other language that talks to C. For calling relatively simple library functions such as `sqrt`, the Rust FFI is straightforward because Rust's primitive data types cover their C counterparts. + +For more complicated interchanges—​in particular, Rust calls to C library functions such as `asctime` and `mktime` that involve structures and pointers—​the `bindgen` utility is the way to go. This utility generates the support code together with appropriate tests. Of course, the Rust compiler cannot assume that C code measures up to Rust standards when it comes to memory safety; hence, calls from Rust to C must occur in `unsafe` blocks. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/rust-calls-c-library-functions + +作者:[Marty Kalin][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/mkalindepauledu +[b]: https://github.com/lkxed +[1]: https://en.wikipedia.org/wiki/Lingua_franca +[2]: https://github.com/rust-lang/rust-bindgen +[3]: https://condor.depaul.edu/mkalin + From 10940d9bf06a59697a7aa7d2586967ea1a869b8b Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sun, 27 Nov 2022 19:44:36 +0800 Subject: [PATCH 2139/3123] translating --- .../tech/20221122.0 ⭐️ Find bugs with the git bisect command.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md index 7250da150b..ca9338b162 100644 --- a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md +++ b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/git-bisect" [#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 05154729e2d10aa88bf5e597d4dd6c0af124d859 Mon Sep 17 00:00:00 2001 From: ZZJ Date: Sun, 27 Nov 2022 23:49:35 +0800 Subject: [PATCH 2140/3123] translating --- .../tech/20210330 A DevOps guide to documentation.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sources/tech/20210330 A DevOps guide to documentation.md b/sources/tech/20210330 A DevOps guide to documentation.md index 4f9defbb3b..159dcda360 100644 --- a/sources/tech/20210330 A DevOps guide to documentation.md +++ b/sources/tech/20210330 A DevOps guide to documentation.md @@ -2,13 +2,13 @@ [#]: via: (https://opensource.com/article/21/3/devops-documentation) [#]: author: (Will Kelly https://opensource.com/users/willkelly) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Veryzzj) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) - A DevOps guide to documentation ====== + Bring your documentation writing into the DevOps lifecycle. ![Typewriter with hands][1] @@ -52,11 +52,9 @@ Documentation also plays a role in DevOps transformation. You're going to want t Often it's developers who shoulder the work of documenting DevOps practices. Even if their organizations have technical writers, they might work across development teams. Thus, it's important that developers and sysadmins can capture, document, and communicate their best practices. Here are some tips to get that effort going in the right direction: - * Invest the time upfront to create a standard template for your DevOps best practices. Don't fall into the trap of copying a template you find online. Interview your stakeholders and teams to create a template that meets your team's needs. - * Look for ways to be creative with information gathering, such as recording your team meetings and using chat system logs to serve as a foundation for your documentation. - * Establish a wiki for publishing your best practices. Use a wiki that lets you maintain an audit trail of edits and updates. Such a platform sets your teams up to update and maintain best practices as they change. - - +* Invest the time upfront to create a standard template for your DevOps best practices. Don't fall into the trap of copying a template you find online. Interview your stakeholders and teams to create a template that meets your team's needs. +* Look for ways to be creative with information gathering, such as recording your team meetings and using chat system logs to serve as a foundation for your documentation. +* Establish a wiki for publishing your best practices. Use a wiki that lets you maintain an audit trail of edits and updates. Such a platform sets your teams up to update and maintain best practices as they change. It's smart to document dependencies as you build out your CI/CD toolchains. Such an effort pays off when you onboard new team members. It's also a little bit of insurance when a team member forgets something. From 94580f87b088d93215a7f787e696bde244288a7f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 28 Nov 2022 08:36:50 +0800 Subject: [PATCH 2141/3123] translated --- ...OpenOffice in Arch Linux [Beginner’s Guide].md | 84 ------------------- ...OpenOffice in Arch Linux [Beginner’s Guide].md | 84 +++++++++++++++++++ 2 files changed, 84 insertions(+), 84 deletions(-) delete mode 100644 sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md create mode 100644 translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md diff --git a/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md deleted file mode 100644 index 3765db74bb..0000000000 --- a/sources/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md +++ /dev/null @@ -1,84 +0,0 @@ -[#]: subject: "How to Install OpenOffice in Arch Linux [Beginner’s Guide]" -[#]: via: "https://www.debugpoint.com/install-openoffice-arch/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install OpenOffice in Arch Linux [Beginner’s Guide] -====== - -**An absolute beginner’s guide to install OpenOffice in Arch Linux and its derivatives.** - -[OpenOffice][1] is the oldest free and open-source office productivity suite which has been under maintenance for some time. It was developed by Apache and is still a sought-after suite, although it has been forked as LibreOffice. - -This tutorial is for those who want to install OpenOffice for their work and other needs. - -**Note**: Before you install, remember that many updated features and compatibility with Microsoft Office are not thoroughly supported in OpenOffice. If you want a more modern version of Office suite, try [LibreOffice][2]. - -### Installing OpenOffice in Arch Linux - -The [OpenOffice package][3] is available in Arch User Repository. So, to install it, you need to use an Aur helper program. Here’s what you need to do. Follow the steps mentioned below to install Yay AUR helper. A detailed guide is [present here][4] if you want to learn more about Yay. - -- Run the following commands in sequence to install basic packages and clone Yay. - -``` -sudo pacman -S base-develsudo pacman -S gitcd /optsudo git clone https://aur.archlinux.org/yay.git -``` - -- Run the following command by replacing `debugpoint` with your Arch system’s user name. - -``` -sudo chown -R debugpoint:users ./yay -``` - -- Finally, install the AUR helper using the following command. - -``` -cd yaymakepkg -si -``` - -- Once finished, install OpenOffice using the following: - -``` -yay -S openoffice-bin -``` - -![Install OpenOffice in Arch Linux via Yay helper][5] - -Follow the onscreen instructions. After installation, you can find it in the application menu, as shown in the below image. - -Launch OpenOffice and add your name and details to the start wizard, and you are good to go. - -![OpenOffice in Arch Linux Application Menu (XFCE)][6] - -![Latest OpenOffice running in Arch Linux][7] - -### Wrapping Up - -Using the above method, you can also install OpenOffice in Majnaro and other Arch Linux-based distros. Although it is an older office productivity suite, you should remember that it is not fully compatible with modern Microsoft Office document types (such as docx, xlsx). - -If you run into any errors during installation, drop us a note in the comment box below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-openoffice-arch/ - -作者:[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.openoffice.org/ -[2]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ -[3]: https://aur.archlinux.org/packages/openoffice-bin -[4]: https://www.debugpoint.com/install-yay-arch/ -[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-OpenOffice-in-Arch-Linux-via-Yay-helper.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/OpenOffice-in-Arch-Linux-Application-Menu-XFCE.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Latest-OpenOffice-running-in-Arch-Linux.jpg diff --git a/translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md new file mode 100644 index 0000000000..9fefcb15a6 --- /dev/null +++ b/translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md @@ -0,0 +1,84 @@ +[#]: subject: "How to Install OpenOffice in Arch Linux [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-openoffice-arch/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中安装 OpenOffice(新手指南) +====== + +**在 Arch Linux 及其衍生版中安装 OpenOffice 的初学者指南。** + +[OpenOffice][1] 是最古老的免费开源办公生产力套件,已经维护了一段时间。它是由 Apache 开发,尽管它已经被分叉为 LibreOffice,但仍然是一个受欢迎的套件。 + +本教程适用于那些想要安装 OpenOffice 以满足工作和其他需要的人。 + +**注意**:在安装之前,请记住许多更新的功能和与 Microsoft Office 的兼容性在 OpenOffice 中并未得到完全支持。如果你想要更现代的 Office 套件版本,请尝试 [LibreOffice][2]。 + +### 在 Arch Linux 中安装 OpenOffice + +[OpenOffice 软件包][3]在 Arch 用户仓库中可用。因此,要安装它,你需要使用 Aur 助手程序。这是你需要做的。按照下面提到的步骤安装 Yay AUR 助手。如果你想了解有关 Yay 的更多信息,请参阅[此处提供][4]的详细指南。 + +- 依次运行以下命令来安装基本包并克隆 Yay。 + +``` +sudo pacman -S base-develsudo pacman -S gitcd /optsudo git clone https://aur.archlinux.org/yay.git +``` + +- 通过将 `debugpoint` 替换为你的 Arch 系统的用户名来运行以下命令。 + +``` +sudo chown -R debugpoint:users ./yay +``` + +- 最后,使用以下命令安装 AUR 助手。 + +``` +cd yaymakepkg -si +``` + +- 完成后,使用以下命令安装 OpenOffice: + +``` +yay -S openoffice-bin +``` + +![通过 Yay 助手在 Arch Linux 中安装 OpenOffice][5] + +按照屏幕上的说明进行操作。安装后,你可以在应用菜单中找到它,如下图所示。 + +启动 OpenOffice 并将你的姓名和详细信息添加到启动向导中,你就可以使用了。 + +![Arch Linux 应用菜单 (XFCE) 中的 OpenOffice][6] + +![在 Arch Linux 中运行的最新 OpenOffice][7] + +### 总结 + +使用上述方法,你还可以在 Majnaro 和其他基于 Arch Linux 的发行版中安装 OpenOffice。尽管它是一个较旧的办公生产力套件,但你应该记住,它并不完全兼容现代 Microsoft Office 文档类型(例如 docx、xlsx)。 + +如果你在安装过程中遇到任何错误,请在下面的评论栏中给我们留言。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-openoffice-arch/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.openoffice.org/ +[2]: https://www.debugpoint.com/install-latest-libreoffice-ubuntu-linux/ +[3]: https://aur.archlinux.org/packages/openoffice-bin +[4]: https://www.debugpoint.com/install-yay-arch/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-OpenOffice-in-Arch-Linux-via-Yay-helper.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/11/OpenOffice-in-Arch-Linux-Application-Menu-XFCE.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Latest-OpenOffice-running-in-Arch-Linux.jpg From 91f080d057e8f37b36bca295ad925d5c7100e876 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 28 Nov 2022 08:43:06 +0800 Subject: [PATCH 2142/3123] translating --- ...henticator A Simple Open-Source App to Replace Authy on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md index 0cccbd0d2b..7d45fb7afd 100644 --- a/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md +++ b/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/authenticator/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2345c31219c53af7268b6cd73f6d60d259b395b0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 28 Nov 2022 08:59:36 +0800 Subject: [PATCH 2143/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 https://linux.cn/article-15296-1.html 根据语境和惯例,我做了一些校对。 --- ...210415 5 reasons sysadmins love systemd.md | 83 ++++++++++--------- 1 file changed, 42 insertions(+), 41 deletions(-) rename {translated/tech => published}/20210415 5 reasons sysadmins love systemd.md (58%) diff --git a/translated/tech/20210415 5 reasons sysadmins love systemd.md b/published/20210415 5 reasons sysadmins love systemd.md similarity index 58% rename from translated/tech/20210415 5 reasons sysadmins love systemd.md rename to published/20210415 5 reasons sysadmins love systemd.md index 4efee33aa8..80c82ef369 100644 --- a/translated/tech/20210415 5 reasons sysadmins love systemd.md +++ b/published/20210415 5 reasons sysadmins love systemd.md @@ -3,28 +3,28 @@ [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) [#]: translator: (chai001125) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15296-1.html) 系统管理员喜欢 systemd 的 5 个理由 ====== ->Systemd 的速度和易用性使其成为管理现代 Linux 系统的流行方式。 +> systemd 的速度和易用性使其成为管理现代 Linux 系统的流行方式。 -![Woman sitting in front of her laptop][1] +![][0] -系统管理员知道一台运行着的**现代计算机**上会发生了很多事情:应用程序在后台运行、预定事件等待在特定时间被触发、事件写入日志文件、发送状态报告。在以前,不同的进程可以通过一系列 Unix 工具,来进行有效地管理和监控。然而,现代的计算机运作更为复杂了:本地服务与容器化应用程序一同运行、能够轻松访问云及其运行的集群、有实时进程以及有比以往都多的数据。 +系统管理员知道,在一台运行着的**现代计算机**上会发生很多事情:应用程序在后台运行、预定事件等待在特定时间被触发、事件写入日志文件、发送状态报告。在以前,不同的进程可以通过一系列 Unix 工具,来进行有效地管理和监控。然而,现代的计算机运作更为复杂了:本地服务与容器化应用程序一同运行、能够轻松访问云及其运行的集群、实时进程、以及有比以往都多的数据。 -拥有统一的管理方法不但是用户想要的,也是忙碌的系统管理员所迫切渴望的。为了完成这项重要的任务,系统守护进程 system daemon 或 **systemd** 被开发出来,并迅速被所有主要的 Linux 发行版所采用了。 +拥有统一的管理方法不但是用户想要的,也是忙碌的系统管理员所迫切渴望的。为了完成这项重要的任务,系统守护进程 system daemon (**systemd**) 被开发出来,并迅速被所有主要的 Linux 发行版所采用了。 -当然,systemd 并不是管理 Linux 系统的唯一方式,还有许多其他可供选择的 init 系统,包括 sysvinit、OpenRC、runit、s6,和 BusyBox,但 systemd 将 Linux 视为一个统一的数据集,意味着 systemd 能用强大的工具对 Linux 进行一致的操作和查询。对于忙碌的系统管理员和许多用户来说,systemd 的速度和易用性是一个重要的特性。有以下的五个原因。 +当然,systemd 并不是管理 Linux 系统的唯一方式,还有许多其他可供选择的初始化系统,包括 sysvinit、OpenRC、runit、s6 和 BusyBox,但 systemd 将 Linux 视为一个统一的数据集,意味着 systemd 能用强大的工具对 Linux 进行一致的操作和查询。对于忙碌的系统管理员和许多用户来说,systemd 的速度和易用性是一个重要的特性。有以下的五个原因。 -### systemd 的 计算机启动管理 Boot management +### 启动管理 启动 Linux 计算机可能是一件非常罕见的事情。**服务器**的正常运行时间通常以 _年_ 来计算,而不是月或周。**笔记本电脑和台式机**可能会频繁地关闭和启动,但更多的时候它们是被挂起或休眠了。无论哪种类型,**最近一次开机的时刻**都可用于检查一段时间内的计算机健康情况,因为当你在监视系统或诊断问题时,这一时刻能够限制查看的数据量大小,从而让你快速地找到问题所在。 -如果你不记得上次启动计算机的时间,你可以使用 systemd 的日志记录工具 `journalctl`,来列出计算机的所有启动时间: +如果你不记得上次启动计算机的时间,你可以使用 systemd 的日志记录工具 `journalctl`,来列出计算机的所有启动会话: ``` $ journalctl --list-boots @@ -35,45 +35,45 @@ $ journalctl --list-boots  0 37fbe4... Tue 2021-03-30 04:46:13 - Tue 2021-03-30 10:42:08 ``` -最近一次启动时间输出在结果列表的底部,因此你可以通过管道将输出传输到 `tail`,来查看最近一次启动时间。 +最近一次启动会话输出在结果列表的底部,因此你可以通过管道将输出传输到 `tail`,来查看最近一次启动会话。 -左侧的数字(在本例中为 42、41、1 和 0)是每个启动时间的索引号。换句话说,如果你要查看某一特定启动时间的日志,你可以使用这个索引号作为参数。 +左侧的数字(在本例中为 42、41、1 和 0)是每个启动会话的索引号。换句话说,如果你要查看某一特定启动会话的日志,你可以使用这个索引号作为参数。 -### systemd 的 日志记录 Log reviews +### 日志检查 查看日志是推断系统信息的一种重要方法。日志提供了计算机运行的大部分事件的历史记录,这些记录都是在没有你直接监督的情况下生成的。通过日志,你可以知道某一服务何时启动、定时任务何时运行、哪些服务在后台运行、哪些事件运行失败等等信息。故障排除的初始步骤是使用 systemd 的 `journalctl` 来查看日志: ``` -`$ journalctl --pager-end` +$ journalctl --pager-end ``` -`--pager-end` 选项(简写为 `-e`)会在 `journalctl` 的输出末尾开始查看日志,因此要查看更早发生的日志,你需要向上滚动。 +`--pager-end` 选项(简写为 `-e`)会从 `journalctl` 的输出末尾开始查看日志,因此要查看更早发生的日志,你需要向上滚动。 -Systemd 维护一个错误信息的“目录”,错误信息包含错误记录、可能的解决方案、支持论坛的指针和开发人员文档。这个错误信息的“目录”能为日志事件提供重要的上下文,否则它可能会成为海量日志中的一个令人困惑的信息,或者更糟的是,错误信息可能会完全被忽视。要将错误消息与日志中的解释性文本放在一起输出,你可以使用`--catalog`选项(简写为 `-x`): +systemd 维护一个错误信息的“目录”,错误信息包含错误记录、可能的解决方案、支持论坛的链接和开发人员文档。这个错误信息的“目录”能为日志事件提供重要的上下文,否则它可能会成为海量日志中的一个令人困惑的信息,或者更糟的是,错误信息可能会完全被忽视。要将错误消息与日志中的解释性文本放在一起输出,你可以使用 `--catalog` 选项(简写为 `-x`): ``` -`$ journalctl --pager-end --catalog` +$ journalctl --pager-end --catalog ``` -要进一步限定日志输出,你可以指定要查看哪个启动时间的日志。因为每个启动时间都有索引,所以你可以使用 `--boot` 选项,来指定某个启动时间,并仅查看该启动时间的日志: +要进一步限定日志输出,你可以指定要查看哪个启动会话的日志。因为每个启动会话都有索引,所以你可以使用 `--boot` 选项,来指定某个启动会话,并仅查看该启动会话的日志: ``` -`$ journalctl --pager-end --catalog --boot 42` +$ journalctl --pager-end --catalog --boot 42 ``` 你还可以查看特定 systemd 单元的日志。例如,要解决 SSH 服务的问题,你可以指定 `--unit sshd` 选项,来仅查看适用于 `sshd` 守护程序的日志: ``` $ journalctl --pager-end \ -\--catalog --boot 42 \ -\--unit sshd + --catalog --boot 42 \ + --unit sshd ``` -### systemd 的 服务管理 Service management +### 服务管理 -systemd 的第一个任务就是启动你的计算机,systemd 会迅速、高效且有效地执行这一任务。但 systemd 一直需要管理的任务是 服务管理 service management ,因为 systemd 需要确保你要运行的服务确实在你的会话期间启动,并继续运行。systemd 的这一功能非常稳健,因为理论上即使是一个崩溃的服务也可以在没有你干预的情况下重新启动。 +systemd 的第一个任务就是启动你的计算机,systemd 会迅速、高效且有效地执行这一任务。但 systemd 一直需要管理的任务是服务管理,因为 systemd 需要确保你要运行的服务确实在你的会话期间启动,并继续运行。systemd 的这一功能非常稳健,因为理论上即使是一个崩溃的服务也可以在没有你干预的情况下重新启动。 -你可以通过使用 `systemctl` 命令,来接入 systemd 管理服务接口,并能查看定义服务的 单元文件 unit files : +你可以通过使用 `systemctl` 命令来让 systemd 管理服务,并能查看定义服务的 单元文件 unit file : ``` $ systemctl cat sshd @@ -98,10 +98,10 @@ RestartSec=42s WantedBy=multi-user.target ``` -大多数单元文件都在 `/usr/lib/systemd/system/` 目录下,但是你也可以在本地更改文件中的配置,请使用以下的接口: +大多数单元文件都在 `/usr/lib/systemd/system/` 目录下,但是你也可以用局部更改来修改配置,请使用以下的方式: ``` -`$ systemctl edit sshd` +$ systemctl edit sshd ``` 你可以通过 `is-active` 选项,来查看某一服务当前是否处于活动状态: @@ -129,16 +129,16 @@ $ systemctl start sshd 使用以下命令,让某一服务在开机时自启动: ``` -`$ systemctl enable sshd` +$ systemctl enable sshd ``` -添加 `--now` 选项,让某一服务在开机时启动或在当前会话中立即启动。 +添加 `--now` 选项,让某一服务在开机时启动并在当前会话中立即启动。 -### systemd 的 Timers 管理 +### 定时器管理 -在以前,当你想在 Linux 上自动执行一项任务时,你可以使用的工具是 `cron`。如今,`cron` 命令仍能使用,但对于在 Linux 上自动执行一项任务,也有一些其他好用的替代方案。例如,[`anacron` 命令][2] 是一个多功能的、类似于 `cron` 的系统,它能够运行在停机期间可能会错过的任务。 +在以前,当你想在 Linux 上自动执行一项任务时,你可以使用的工具是 `cron`。如今,`cron` 命令仍能使用,但对于在 Linux 上自动执行一项任务,也有一些其他好用的替代方案。例如,[anacron 命令][2] 是一个多功能的、类似于 `cron` 的系统,它能够运行在停机期间可能会错过的任务。 -计划的事件就是在特定时间需要激活的服务。systemd 管理一个名为 [timers][3] 的工具,它类似 cron 的功能。你可以使用以下命令,来列出活动中的计时器: +计划的事件就是在特定时间需要激活的服务。systemd 管理一个名为 [定时器][3] 的工具,它类似 cron 的功能。你可以使用以下命令,来列出活动中的定时器: ``` $ systemctl list-timers @@ -151,27 +151,27 @@ Wed 2021-03-31 06:42:02 NZDT  18h left [...] Pass --all to see loaded but inactive timers, too. ``` -你可以使用以下命令,来像启用服务一样启用计时器: +你可以使用以下命令,来像启用服务一样启用定时器: ``` -`$ systemctl enable myMonitor.timer` +$ systemctl enable myMonitor.timer ``` -### systemd 的 Targets 管理 +### 目标管理 -Targets 是 systemd 的最后一个主要组成部分。Targets 是一个单元文件,与服务和计时器相同,Targets 也可以以相同的方式启动和启用。Targets 的独特之处在于它们以一种任意重要的方式对其他单元文件进行分组。例如,你可能希望开机到文本控制台界面而不是图形桌面,因此有 `multi-user` Target 存在。但是,`multi-user` Target 只是没有桌面单元文件作为依赖项的 `graphical` target。 +目标target 是 systemd 的最后一个主要组成部分。像服务和定时器一样,目标也是一个单元文件,也可以以相同的方式启动和启用。目标的独特之处在于它们可以将其他单元文件任意分组。例如,你可能希望开机启动到文本控制台界面而不是图形桌面,因此有一个 `multi-user` 目标。但是,`multi-user` 目标只是没有包括桌面单元文件的 `graphical` 目标。 -简而言之,Targets 是一种将服务、计时器甚至其他的 Targets 收集在一起,以表示机器的预期状态的简单方法。 +简而言之,目标是一种将服务、定时器甚至其他的目标集合在一起,以表示机器的预期状态的简单方法。 -事实上,在 systemd 中,重启、关机或关闭操作只是又一个 Target。 +事实上,在 systemd 中,重启、关机或关闭操作只是一个目标而已。 -你可以使用 `list-unit-files` 选项,来列出所有可用的 Targets,用 `--type` 选项将其限制为 `target`: +你可以使用 `list-unit-files` 选项,用 `--type` 选项将其限制为 `target` 来列出所有可用的目标: ``` -`$ systemctl list-unit-files --type target` +$ systemctl list-unit-files --type target ``` -### 快使用 systemd 对计算机进行控制管理吧 +### 使用 systemd 对计算机进行控制管理 现代的 Linux 使用 systemd 进行服务管理和日志检查。从个人的 Linux 系统到企业服务器,systemd 都能提供有效的监控,并且十分易于维护。你越频繁地使用 systemd,systemd 对你而言就会变得越容易预测和直观,你就会明白系统的不同部分是如何相互关联的。 @@ -184,7 +184,7 @@ via: https://opensource.com/article/21/4/sysadmins-love-systemd 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -194,3 +194,4 @@ via: https://opensource.com/article/21/4/sysadmins-love-systemd [2]: https://opensource.com/article/21/2/linux-automation [3]: https://opensource.com/article/20/7/systemd-timers [4]: https://opensource.com/downloads/linux-systemd-cheat-sheet +[0]: https://img.linux.net.cn/data/attachment/album/202211/28/085754t9sztkt26452ys4s.png \ No newline at end of file From 2c97f10ad25ec92ee5300ab03dae5b6881f67db0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 28 Nov 2022 09:30:18 +0800 Subject: [PATCH 2144/3123] RP @robsean https://linux.cn/article-15297-1.html --- ...s and folders from Windows to Linux with WinSCP.md | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md (55%) diff --git a/translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md b/published/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md similarity index 55% rename from translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md rename to published/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md index 35e8d23732..dab44cba47 100644 --- a/translated/tech/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md +++ b/published/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md @@ -3,28 +3,30 @@ [#]: author: "Paul https://opensource.com/users/plaubscher" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15297-1.html" 使用 WinSCP 将文件和文件夹从 Windows 传输到 Linux ====== -如果你正在寻找一种快速的从你的 Windows 计算机传输文件到你的 Linux 计算机的方法,那么开源的 WinSCP 实用程序会使其很容易地通过网络传输一个文件或一个文件夹。 +![][0] -有时,你需要通过文件传输文件。这里有很多文件共享服务,但是大多数的共享服务都要求你发送你的文件到互联网上。当两台计算机并排在一起或在一栋建筑物中时,通过互联网传输文件,这似乎看起来是一条很长的路 (更不用说隐私问题)。开源 WinSCP 实用程序会使其很轻易地通过网络将一个文件或一个文件夹从你的 Windows 计算机传输到你的 Linux 计算机。 +> 如果你正在寻找一种快速的从你的 Windows 计算机传输文件到你的 Linux 计算机的方法,那么开源的 WinSCP 实用程序会使其很容易地通过网络传输文件或文件夹。 + +有时,你需要通过文件传输文件。有很多文件共享服务,但是大多数的共享服务都要求你发送你的文件到互联网上。当两台计算机并排在一起或在一栋建筑物中时,通过互联网传输文件,这似乎看起来绕了很远的路(更不用说隐私问题)。开源的 WinSCP 实用程序会使其很轻易地通过网络将一个文件或一个文件夹从你的 Windows 计算机传输到你的 Linux 计算机。 ### IP 地址 -在你可以传输之前,你必需知道目标计算机的 IP 地址或完全限定的域名。假设它是一台在你的同一个网络上的计算机,并且你没有运行一个 DNS 服务器来解析计算机名称,你可以在 Linux 计算机上使用 `ip` 命令来找到目标 IP 地址: +在你可以传输之前,你必须知道目标计算机的 IP 地址或完全限定域名。假设它是一台在你的同一个网络上的计算机,并且你没有运行 DNS 服务器来解析计算机名称,你可以在 Linux 计算机上使用 `ip` 命令来找到目标 IP 地址: ``` -[linux]$ ip addr show |grep'inet ' +[linux]$ ip addr show |grep 'inet ' inet 127.0.0.1/8 scope host lo   inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 ``` -在所有的情况下,127.0.0.1 都是一个 回送地址loopback address ,计算机仅使用它来自我通信,因此在这个示例中,正确的地址是 192.168.1.23 。在你的系统中,IP 地址可能会看起来有所不同。如果你不确定哪个是哪个,你可以逐个尝试到你找到正确的 IP 地址 (然后,在一些地方写下来!) +`127.0.0.1` 是一个 环回地址loopback address ,计算机仅使用它来自我通信,因此在这个示例中,正确的地址是 `192.168.1.23` 。在你的系统中,IP 地址可能会看起来有所不同。如果你不确定哪个是哪个,你可以逐个尝试到你找到正确的 IP 地址 (然后,在一些地方写下来!) 或者,你可以查找你的路由器设置,它列出了所有通过 DHCP 分配的地址。 @@ -35,7 +37,7 @@ inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 如果你不确定你的 Linux 机器是否在运行 SSH ,那么在 Linux 机器的终端上运行这个命令: ``` -[linux]$ sudo systemctl enable--now sshd +[linux]$ sudo systemctl enable --now sshd ``` 为确保你的防火墙允许 SSH 通信,运行这个命令: @@ -48,19 +50,19 @@ inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0 ### 使用 WinSCP -WinSCP 是一款针对 Microsoft Windows 的开源 SSH 文件传输应用程序。为使用它,你必需先 [下载][2] 和 [安装][2] 它。 +WinSCP 是一款针对微软 Windows 的开源 SSH 文件传输应用程序。为使用它,你必须先 [下载][2] 和 [安装][2] 它。 -在你安装完成后,打开 WinSCP ,并在 文件协议File Protocol 区域中选择 **SCP** 选项。 +在你安装完成后,打开 WinSCP ,并在 “文件协议File Protocol” 字段中选择 “SCP” 选项。 -在 主机名称Host name 区域中添加你的 Linux 计算机的 IP 地址或 DNS 名称,并在 端口编号Port number 区域中输入 **22** 。针对该 Linux 计算机,输入你的用户名称和密码,然后单击 WinSCP 窗口底部的 登录Login 按钮。 +在 “主机名称Host name” 字段中添加你的 Linux 计算机的 IP 地址或 DNS 名称,并在 “端口号Port number” 字段中输入 **22** 。针对该 Linux 计算机,输入你的用户名称和密码,然后单击 WinSCP 窗口底部的 “登录Login” 按钮。 ![Image of the WinSCP login window.][3] -验证你是否获取登录 Linux 计算机的身份授权。在验证成功后,你的 Linux 计算机的 IP 地址或 DNS 名称将显示在窗口的顶部。 +验证你是否获取了登录 Linux 计算机的身份授权。在验证成功后,你的 Linux 计算机的 IP 地址或 DNS 名称将显示在窗口的顶部。 ![Image of a WinSCP window showing where IP adress is located.][4] -现在,你可以从左侧的 Windows 面板中拖拽一个文件 (如示例,我使用 `winscp-test.txt` 文件) 到右侧的目标 Linux 计算机目标,接下来文件或传输。 +现在,你可以从左侧的 Windows 面板中拖拽一个文件(如示例,我使用 `winscp-test.txt` 文件)到右侧的目标 Linux 计算机目标,接下来文件会传输。 ![Image of drag and drop window in WinSCP.][5] @@ -68,9 +70,9 @@ WinSCP 是一款针对 Microsoft Windows 的开源 SSH 文件传输应用程序 ![Image of a right click option to upload files in WinSCP.][6] -### 验证复制件 +### 验证副本 -打开一个 Linux 终端,然后使用 `ls` 命令来查看已传输的 `winscp-test.txt` 文件。在我的示例中,它出现在我的 home 目录, `/_home_/sysadmin` 。 +打开一个 Linux 终端,然后使用 `ls` 命令来查看已传输的 `winscp-test.txt` 文件。在我的示例中,它出现在我的主目录, `/home/sysadmin` 。 ``` $ ls @@ -96,8 +98,8 @@ via: https://opensource.com/article/22/11/transfer-files-folders-windows-linux-w 作者:[Paul][a] 选题:[lkxed][b] -译者:[robsean]](https://github.com/robsean) -校对:[校对者ID](https://github.com/校对者ID) +译者:[robsean](https://github.com/robsean) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -110,3 +112,4 @@ via: https://opensource.com/article/22/11/transfer-files-folders-windows-linux-w [5]: https://opensource.com/sites/default/files/2022-10/WinSCP.drapdropwindow.png [6]: https://opensource.com/sites/default/files/2022-10/RightclickUploadfileWInSCP.png [7]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM +[0]: https://img.linux.net.cn/data/attachment/album/202211/28/092919hf6y9ojjlmmsfmlm.jpg \ No newline at end of file From 5531d3fec69bee7ed80b43158dd0a0a999ca91b2 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 28 Nov 2022 10:27:01 +0800 Subject: [PATCH 2145/3123] translated --- ...️ Find bugs with the git bisect command.md | 75 ----------------- ...️ Find bugs with the git bisect command.md | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 75 deletions(-) delete mode 100644 sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md create mode 100644 translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md diff --git a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md b/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md deleted file mode 100644 index ca9338b162..0000000000 --- a/sources/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: "Find bugs with the git bisect command" -[#]: via: "https://opensource.com/article/22/11/git-bisect" -[#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Find bugs with the git bisect command -====== - -Have you ever found a bug in code and needed to know when it was first introduced? Chances are, whoever committed the bug didn't declare it in their Git commit message. In some cases, it might have been present for weeks, months, or even years, meaning you would need to search through hundreds or thousands of commits to find when the problem was introduced. This is the problem that `git bisect` was built to solve! - -The `git bisect` command is a powerful tool that quickly checks out a commit halfway between a known good state and a known bad state and then asks you to identify the commit as either good or bad. Then it repeats until you find the exact commit where the code in question was first introduced. - -![Image of Zeno's paradox of Achilles.][1] - -This "mathmagical" tool works by leveraging the power of halving. No matter how many steps you need to get through, by looking at the halfway point and deciding if it is the new top or bottom of the list of commits, you can find any desired commit in a handful of steps. Even if you have 10,000 commits to hunt through, it only takes a maximum of 13 steps to find the first offending commit. - -- commit 1 bad <> commit 10,000 good => commit 5,000 is bad -- commit 5,000 bad <> commit 10,000 good => commit 7,500 is good -- commit 5,000 bad <> commit 7,500 good => commit 6,250 is good -- commit 5,000 bad <> commit 6,250 good => commit 5,625 is bad -- commit 5,625 bad <> commit 6,250 good => commit 5,938 is bad -- commit 5,938 bad <> commit 6,250 good => commit 6,094 is good -- commit 5,938 bad <> commit 6,094 good => commit 6,016 is bad -- commit 6,016 bad <> commit 6,094 good => commit 6,055 is good -- commit 6,016 bad <> commit 6,055 good => commit 6,036 is bad -- commit 6036 bad <> commit 6055 good => commit 6046 is bad -- commit 6,046 bad <> commit 6,055 good => commit 6,050 is bad -- commit 6,050 bad <> commit 6,055 good => commit 6,053 is good -- commit 6,053 bad <> commit 6,055 good => commit 6,054 is good - -So, the first bad commit of the 10,000 is commit number 6,053. With `git bisect`, this would take a couple of minutes at maximum. I can't even imagine how long this would take to investigate crawling through each commit one at a time. - -### Using Git bisect - -Using the `git bisect`command is very straightforward: - -``` -$ git bisect start -$ git bisect bad        # Git assumes you mean HEAD by default -$ git bisect good # specify a tag or commit ID for -``` - -Git checks out the commit in the middle and waits for you to declare either: - -``` -$ git bisect good## or -$ git bisect bad -``` - -Then the bisect tool repeats checking out the commit halfway between good and bad commits until you tell it: - -``` -$ git bisect reset -``` - -Advanced users can even write scripts that determine good and bad states as well as any remediation actions to take upon finding the specific commit. You might not use the `git bisect` command every day of your life, but when you need it, it is a lifesaver. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/git-bisect - -作者:[Dwayne McDaniel][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/dwaynemcdaniel -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/2022-11/beyondgit.paradox.png diff --git a/translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md b/translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md new file mode 100644 index 0000000000..948e255712 --- /dev/null +++ b/translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md @@ -0,0 +1,80 @@ +[#]: subject: "Find bugs with the git bisect command" +[#]: via: "https://opensource.com/article/22/11/git-bisect" +[#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 git bisect 命令定位首次引入错误的提交 +====== + +你是不是有过这样的经历:发现代码中有 错误 bug ,但不知道这个错误是什么时候第一次引入的。这有可能是因为,某个人提交了一份有错误的代码,但没有在他的 Git 提交 commit 消息中声明这个错误。这个错误可能已经存在了几周、几个月甚至几年,这意味着你需要搜索数百或数千个提交,才能找到问题何时出现的。而 `git bisect` 命令能够完美地解决这个问题! + +`git bisect` 命令是一个强大的工具。你可以给 `git bisect` 命令一个范围,一端是一个已知的好状态,另一端是一个已知的坏状态。它会自动地确认当前范围的中点,在这个中点上进行测试,然后要求你告诉它那次提交是一个 好提交 good commit 还是一个 坏提交 bad commit ,然后它会重复这一“二分查找”的过程,直到你找到首次引入错误的那一次提交。 + +![Image of Zeno's paradox of Achilles.][1] + +这个“数学”工具是利用“二分查找”来找到错误之处的。`git bisect` 命令通过**查看中点**,然后由你来决定它是提交列表的新起点(即 bad commit )还是新终点(即 good commit),进而来缩小查找范围,如此在几次查找中你可以就能定位到有错误的提交。即使你有 10,000 个提交要检查,最多只需要 13 次查找,就能很快地定位到首次引入错误的提交。 + +- commit 1 bad <> commit 10,000 good => commit 5,000 is bad +- commit 5,000 bad <> commit 10,000 good => commit 7,500 is good +- commit 5,000 bad <> commit 7,500 good => commit 6,250 is good +- commit 5,000 bad <> commit 6,250 good => commit 5,625 is bad +- commit 5,625 bad <> commit 6,250 good => commit 5,938 is bad +- commit 5,938 bad <> commit 6,250 good => commit 6,094 is good +- commit 5,938 bad <> commit 6,094 good => commit 6,016 is bad +- commit 6,016 bad <> commit 6,094 good => commit 6,055 is good +- commit 6,016 bad <> commit 6,055 good => commit 6,036 is bad +- commit 6036 bad <> commit 6055 good => commit 6046 is bad +- commit 6,046 bad <> commit 6,055 good => commit 6,050 is bad +- commit 6,050 bad <> commit 6,055 good => commit 6,053 is good +- commit 6,053 bad <> commit 6,055 good => commit 6,054 is good + +对于上面这个例子,我们能知道 10,000 个提交中的第一个错误提交是第 6053 次提交。对于 `git bisect` 命令,最多需要几分钟就能完成检索。但是如果要一个一个查找每个提交是否错误,我甚至无法想象需要多长时间。 + +### 使用 Git bisect 命令 + +`git bisect` 命令使用起来非常简单: + +(LCTT 译注:使用 `git bisect start` 命令来进入 bisect 模式,并且该命令指定了一个检查范围。它会告诉我们一共有多少次提交,大概需要几步就可以定位到具体的提交。) + +``` +$ git bisect start +$ git bisect bad # Git assumes you mean HEAD by default +$ git bisect good # specify a tag or commit ID for +``` + +Git 检查中间的提交,并等待你声明这次提交是一个好提交还是一个坏提交: + +(LCTT 译注:如果某一提交是可以通过的,则使用 `git bisect good` 命令标记;同样地,如果某一提交不能通过,则使用 `git bisect bad` 命令标记。) + +``` +$ git bisect good +## or +$ git bisect bad +``` + +然后,`git bisect` 工具重复检查好提交和坏提交中间的那次提交,直到你告诉它: + +``` +$ git bisect reset +``` + +一些高级用户甚至可以自己编写脚本,来确定提交的好坏状态、并在找到特定提交时采取某一补救措施。你可能不会每天都使用 `git bisect` 命令,但当你需要它来定位首次引入错误的提交时,它会是一个很有用的救星。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/git-bisect + +作者:[Dwayne McDaniel][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dwaynemcdaniel +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-11/beyondgit.paradox.png From 32373b99a91fd853fa3f37dcee0bc6ef420db6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 11:46:24 +0800 Subject: [PATCH 2146/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221124.0=20=E2=AD=90=EF=B8=8F=205=20NeoVim=20GUI?= =?UTF-8?q?=20Editors=20You=20Could=20Try=20If=20You=20are=20Not=20a=20Tot?= =?UTF-8?q?al=20Terminal=20Junkie.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Try If You are Not a Total Terminal Junkie.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md diff --git a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md new file mode 100644 index 0000000000..e8fcabb8c0 --- /dev/null +++ b/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md @@ -0,0 +1,139 @@ +[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" +[#]: via: "https://itsfoss.com/neovim-gui-editors/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie +====== + +Vim is awesome. NeoVim is newer and even more awesome. Both Vim and NeoVim are terminal-based text editors with similar features. + +If you are someone who is accustomed to using [GUI text editors like VS Code][1] and wish to have the similar functionality that NeoVim provides, you should explore GUI options. + +Although I know you can use NeoVim as an add-on for your current text editor, working directly with NeoVim is much more effective and convenient for managing plugins. + +There are a few different options available when choosing a NeoVim GUI, and I have put together a list of some of the best ones below. + +### 1. Neovide + +![neovide][2] + +**Key Features:** + +- Animated cursor +- Smooth scrolling +- Animated windows +- Blurred floating windows +- Emoji support + +[Neovide][3] aims to be a no-nonsense graphical user interface for NeoVim. + +While you won’t see many graphical elements, it only adds some GUI features, such as animations, using a library called Skulpin to render animations. + +And my favorite part of using Neovide is having an animated cursor and smooth scrolling. I mean, have a look at this: + +Looks cool. Right? + +### 2. Neovim Qt + +![neovim qt][4] + +**Key Features:** + +- Hover features +- Multiple GUI tabs +- Auto tab completion +- Cross-platform support + +As the name suggests, [Neovim Qt][5] is built with the Qt5 library, which you’ll often see being used by KDE. Nothing too fancy, adds some additional GUI features like multiple tabs, auto-tab completion, and more. + +So if you are already using Qt5 libraries and want a minimal GUI for NeoVim, this would work like a charm and save you some dependencies. + +**Recommended:**[Vim vs Nano: What Should You Choose?][6] + +### 3. Uivonim + +![uivonim][7] + +**Key Features:** + +- WebGL GPU rendering and multithreading +- Support for VSCode extensions +- Nyancat (ANSI-text program for classic cat animation) +- Hover and code actions + +[Uivonim][8] is a fork of Veonim (A simple IDE built on VSCode plugins and NeoVim) written in electron, making it the perfect choice if you switch from VSCode. + +And the only goal of uivonim is to provide a rich NeoVim experience that supports the latest features of NeoVim, including floating windows, built-in LSP, and more. You do not need to rely on VSCode extensions to get these features. + +[Uivonim][8] + +### 4. FVim + +![fvim][9] + +**Key Features:** + +- Detach windows (using `Ctrl+w and GE`). +- Custom popup menu entry icons. +- HiDPI support. +- GPU acceleration. + +[FVim][10] is a cross-platform GUI for NeoVim built with F# + Avalonia that comes with some groundbreaking features such as high-performance rendering (60FPS on 4K display). + +And I often use the detach window feature as I prefer to have separate windows for different text files. Also, if you are an advanced remote user, FVim won’t let you down either. + +### 5. Goneovim + +![goneovim][11] + +**Key Features:** + +- Support for a terminal with bash and zsh +- Minimap +- Animated cursor +- High DPI scaling +- External float window + +As its name suggests, [Goneovim][12] is written in GO and is a fork of Gonvim. And offers enough GUI features to get your job done such as an animated cursor, pixel scrolling, and more. + +And it does not compromise on getting you basic text editing features, such as drag-and-drop support for text files. + +**Useful Read**: [How to Install Latest Vim on Ubuntu Linux][13] + +### Wrapping Up + +This was my take on what are some good options when it comes to GUI for NeoVim and I hope you found what you were looking for. + +If I missed any of your favorites, let me know your thoughts in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/neovim-gui-editors/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/neovide.png +[3]: https://neovide.dev/index.html +[4]: https://itsfoss.com/wp-content/uploads/2022/11/neovim-qt.png +[5]: https://github.com/equalsraf/neovim-qt +[6]: https://itsfoss.com/vim-vs-nano/ +[7]: https://itsfoss.com/wp-content/uploads/2022/11/uivonim.png +[8]: https://github.com/smolck/uivonim +[9]: https://itsfoss.com/wp-content/uploads/2022/11/fvim-1.png +[10]: https://github.com/yatli/fvim +[11]: https://itsfoss.com/wp-content/uploads/2022/11/goneovim-1.png +[12]: https://github.com/akiyosi/goneovim +[13]: https://itsfoss.com/install-latest-vim-ubuntu/ From 45d18fa4fb0d04d21fed702d21e4f66c009fb5bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 11:47:32 +0800 Subject: [PATCH 2147/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221126.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Create=20a=20holiday=20light=20display=20with=20your=20Raspberr?= =?UTF-8?q?y=20Pi=20and=20ping=20pong=20balls.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...play with your Raspberry Pi and ping pong balls.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md diff --git a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md new file mode 100644 index 0000000000..4ebf7de3b9 --- /dev/null +++ b/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md @@ -0,0 +1,130 @@ +[#]: subject: "Create a holiday light display with your Raspberry Pi and ping pong balls" +[#]: via: "https://opensource.com/article/22/11/raspberry-pi-holiday-light-display" +[#]: author: "Brian McCafferty https://opensource.com/users/bdm" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create a holiday light display with your Raspberry Pi and ping pong balls +====== + +I love Christmas decorations and lights, and I'd been wanting to do an programmable LED project for a long time. Recently, I built a light array made of LED lights, ping pong balls, and a Raspberry Pi Zero. I thought it was worth sharing, because it ended up being relatively easy but also educational. + +It's mostly my own design, with some inspiration from YouTube videos. You can find the source code and build instructions in my [Git repository][1]. + +### Shopping list + +- [Raspberry Pi Zero][2] +- [Pibow Case][3] +- 5v 2A USB power supply +- Poster frame +- 255 ping pong balls +- Hot glue gun and LOTS of hot glue sticks +- Soldering iron +- Solder +- 22 AWG 0.35mm solid core wiring +- 10 meters of WS2812(B) LED strip lights (30 pixels per meter) +- Multimeter +- Wire cutters +- Wire strippers + +### Design the Raspberry Pi light display + +My design was driven by the size of the poster frame I happened to have available. I got 30 pixel per meter tape from Ali Express, which cut nicely into 0.5m sections, so that gave me 15 LEDs across. Ping pong balls are 40mm, so I measured and placed the lines 40mm apart, with the LED Strip in the middle of each 40mm section. This gave me 17 lines down in total. My array was therefore 15×17. If you try this yourself, yours can be a different size. + +To get power to the array and the Raspberry Pi, I placed the open connections for both data and power at the bottom of the board. I didn't have that many LEDs needing power, so I was able to use the 5v out GPIO from the Raspberry Pi Zero to power them. I run them at 50% brightness, which is easily bright enough to see in the day and at night through my window. + +### Wiring + +In my design, I started at the bottom of the board and wired up in an S-curve. This made soldering easier because loops at the end of each row didn't have to return all the way back to the start of each line. The WS2812 data lines do require you to wire the data the correct way: power can be fed from either side of the strip, but data must be fed from the side with the arrows pointing away. + +My wiring looks like this (this is abbreviated for clarity, in real life it's 17 lines deep): + +``` +<---------------\ +                | +/---------------/ +| +\---------------< # Pi connected here +``` + +### Build the display with your Raspberry Pi + +Once the design and wiring plan was sorted, it was time to get started on the build. + +I measured and drew my lines in pencil on the poster backboard. The WS2812 strips I got came with sticky tape on the back, so I just removed the backing and attached that directly to the backboard. I was sure to position each strip so that the data arrows went one way, then back the other, to ensure that the lights could be daisy-chained correctly for the Pi's instructions. + +Once all light strips were attached, I cut three similar lengths of wire and connected the 5v, data, and ground lines from the end of each light section to the one above it. + +![Connect each light strip at the end of each line.][4] + +After completing each row, I checked continuity between the 5v and ground lines between each strip to ensure my joins were correct. I also checked that I had not accidentally bridged any connections, so I verified that there was no continuity between the 5v and ground lines (in other words, a 5v wire on one line didn't bridge to the ground on the next line.) I also ran some tests to ensure everything was lighting up correctly (see [the code][5] section for my strand tests.) + +Once this was complete, I started to cut holes in the ping pong balls by stabbing scissors into the bottom of them, and cutting a small hole for the LED to shine into. There was no exact science to this, and each one was different, but the effect really worked. I was working with 30 pixels per meter, so my lighting had about 30mm between each LED. A ping pong ball is 40mm across, but I wasn't about to start soldering each LED individually! First of all, I'm not that good at soldering (as my photos show), and anyway, I thought "Well, they're ping pong balls. I can just squash them together!" + +And that's what I did. + +I placed a hot glue blob around each LED and then placed a ping pong ball onto the LED, held it for about five seconds, and moved on to the next one. I held onto the previous ping pong ball as I slid the next one in, pushing it against the first before "folding" it into its neighbor. The effect worked really well. I was happy with what it was looking like straight away. It also had the nice bonus of hiding my bad soldering job ;) + +![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6] + +I continued doing this for 255 LEDs and ping pong balls. There were a few crushed ping pong balls in the process, but in the end, I got there. + +![255 LEDs and 255 ping pong balls in an array.][7] + +### Test the code + +For the test code to ensure that everything was working, I used this [Adafruit guide][8] which lights each LED in red, green, and blue, and then does a rainbow cycle. I used this when I was building to ensure my connections were correct and that everything was soldered correctly. + +After that, I designed a grid in a spreadsheet to map each pixel to a grid position. This helped to make building the images easier. Since my pixel numbers run in a zig-zag pattern, it would have been hard to keep track of each LED (e.g. LED A1 was 256 and B1 was 226).  + +Once this was all set, it was time to design some images on paper and in the spreadsheet. Then it was time to code! It got a bit addictive and I started adding some animation (using loops and turning pixels onto one color and then another color).  + +The end result was everything I'd hoped it would be. + +![A Christmas gift in LED.][9] + +![Reindeer painted with light.][10] + +![An LED snowflake.][11] + +### A Raspberry Pi light display all year + +I am not sure this will ever be truly finished. Nearly every night since it's been up in the window, I've added some new images and animations. I'm already thinking about what to do for New Year's Eve. I also won't be putting this back in storage with my Christmas decorations in January. I just need to think of other things to draw on it to make it a year-round project! A friend of mine suggested a pixel Mario and I love that idea! + +My code also needs a little work. For example, I do some scrolling text, but I redraw the whole board for each position of the text, so it took quite a bit of time to do. I think I can do something with loops, or perhaps the image library can help scroll the letters easier, and make it easier to add text rather than turning each pixel on and off at every step. + +I've got a photo record of my progress from start to finish: [LED Ping Pong Wall][12]. + +You can also see a video of it in action here: [XMas light display][13]. + +I'm really pleased with how this turned out, and I think it looks amazing. I'm very excited to try some other LED projects in the future. I encourage you to try a light array of your own even as your first project. It's easier than it looks! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display + +作者:[Brian McCafferty][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/bdm +[b]: https://github.com/lkxed +[1]: https://github.com/bmccafferty/ping-pong-led-wall +[2]: https://shop.pimoroni.com/products/raspberry-pi-zero-wh-with-pre-soldered-header +[3]: https://shop.pimoroni.com/products/pibow-zero-w +[4]: https://opensource.com/sites/default/files/2022-11/IMG_20201126_115520.jpeg +[5]: https://opensource.com#the-code +[6]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_101409.webp +[7]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_160500.webp +[8]: https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage +[9]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_181931.webp +[10]: https://opensource.com/sites/default/files/2022-11/IMG_20201202_215902.webp +[11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp +[12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/ +[13]: https://youtu.be/zc0501GzpMw From 03a8ae9bc5906c5b49ab5c8c7e98af2176b65050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 11:50:53 +0800 Subject: [PATCH 2148/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221127.0=20=E2=AD=90=EF=B8=8F=20lnav=20Advanced=20?= =?UTF-8?q?Log=20File=20Viewer=20for=20Linux=20Desktops=20and=20Servers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... File Viewer for Linux Desktops and Servers.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md diff --git a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md new file mode 100644 index 0000000000..ab3e8307ac --- /dev/null +++ b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md @@ -0,0 +1,127 @@ +[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers" +[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +lnav: Advanced Log File Viewer for Linux Desktops and Servers +====== + +**If you want to debug or troubleshoot any issues, you need an advanced log file viewer like lnav – which works wonders in the terminal for any Linux system.** + +### lnav: Log file viewer + +lnav can unzip all the compressed log files on the fly and merge them together for a nice display. The display is parsed and formatted based on the types of errors/warnings – this helps to quickly glance through the thousands of logs, especially in servers. + +While analysing the logs, timestamps are very important. So lnav merges multiple logs based on timestamps, which is very helpful for tracking down system issues. + +Most of the important log file format detection is built-in; see below: + +- Common Web Access Log format +- CUPS page_log +- Syslog +- Glog +- VMware ESXi/vCenter Logs +- dpkg.log +- uwsgi +- “Generic” – Any message that starts with a timestamp +- Strace +- sudo +- GZIP, BZIP + +That is not all; lnav is also capable of the below features, making it an important app for Linux systems. + +- Filter messages based on regular expression +- A timeline view of errors +- Pretty-Print view- helps to reformat +- Query Log using SQL +- A log is updated in real-time while being searched. +- Syntax highlight via regular expression (say you want to find out an IP address in the entire log) +- Tab completion of any word from the log which is displayed !! + +![lnav-running-in-ubutu][1] + +To view the screenshots of the above features and learn more, visit [this page.][2] + +### How to Install + +This program is available in official Ubuntu, Debian repo. Install it using the following command. + +``` +sudo apt install lnav +``` + +And for Fedora, RHEL users, use the below command: + +``` +sudo dnf install lnav +``` + +Also the developers provides an offline standalone executable which you don’t need to install. You can download the zip from the [GitHub release page][3] and execute as: + +``` +./lnav +``` + +**Note**: It’s also available for macOS which you can find in the above GitHub page. + +### lnav: How to use (Basics) + +The simple command syntax is: + +``` +lnav [options] [logfile1 logfile2 …] +``` + +If you run just lnav from the command, it shows all the logs from your system (/var/log/messages and /var/log/syslog) + +``` +lnav +``` + +To view any specific log file, provide it via the command line: + +``` +lnav /var/log/syslog +``` + +Add timestamp in your log output using -t parameter + +``` +lnav -t /var/log/syslog +``` + +Here are some of the key switches of lnav + +``` +-d file Write debug messages to the given file.-a Load all of the most recent log file types.-r Load older rotated log files as well.-t Prepend timestamps to the lines of data being read inon the standard input.-w file Write the contents of the standard input to this file.-c cmd Execute a command after the files have been loaded.-f path Execute the commands in the given file.-n Run without the curses UI. (headless mode) +``` + +![lnav running in Ubuntu 22.04][4] + +For further reading and exploration, visit the [official documentation][5]. + +[Next:How to Make LibreOffice Look Like Microsoft Office][6] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ + +作者:[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/2016/11/lnav-Running-in-Ubutu.png +[2]: http://lnav.org/features/ +[3]: https://github.com/tstack/lnav/releases/ +[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg +[5]: https://docs.lnav.org/en/latest/intro.html +[6]: https://www.debugpoint.com/libreoffice-like-microsoft-office/ From 13714bc0265d2706544a4ed5d4d79ad740df0a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 11:51:49 +0800 Subject: [PATCH 2149/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221124.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Merge?= =?UTF-8?q?=20PDF=20Files=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...24.1 ⭐️ How to Merge PDF Files in Linux.md | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 sources/tech/20221124.1 ⭐️ How to Merge PDF Files in Linux.md diff --git a/sources/tech/20221124.1 ⭐️ How to Merge PDF Files in Linux.md b/sources/tech/20221124.1 ⭐️ How to Merge PDF Files in Linux.md new file mode 100644 index 0000000000..6663b4731b --- /dev/null +++ b/sources/tech/20221124.1 ⭐️ How to Merge PDF Files in Linux.md @@ -0,0 +1,182 @@ +[#]: subject: "How to Merge PDF Files in Linux" +[#]: via: "https://itsfoss.com/merge-pdf-linux/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Merge PDF Files in Linux +====== + +Got several PDFs on the same subject and now you want to combine them into a single PDF? + +Or perhaps you need to upload a single file consisting of different files? Many government and academic portals require that. + +As a Linux user, if you are in a situation where you need to merge PDFs, this tutorial will help you out. + +In this tutorial, I’ll share three methods of combining multiple PDF files: + +- Using PDF Tricks GUI tool +- Using LibreOffice (allows you to select pages as well) +- Using the ImageMagick command line tool (Can a Linux tutorial be completed without the terminal method?) + +You can read them all and pick the one that works best for you. + +### Method 1: Use PDF Tricks GUI tool to merge PDF in Linux + +After experimenting with several GUI tools, I found that the PDF Tricks was straightforward to use and easy to navigate. + +Furthermore, it includes additional functionality beyond only merging PDF files, including: + +- Compress PDFs. +- Split PDFs. +- Compress PDFs (into JPG, PNG, and text formats). + +It is available as a [Flatpak][1]. Please [ensure that your Linux system has Flatpak support enabled][2]. + +I am sharing the steps for enabling Flatpak on Ubuntu: + +``` +sudo apt install flatpak +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` + +Now, use the below command to install PDF Tricks in your system: + +``` +flatpak install flathub com.github.muriloventuroso.pdftricks +``` + +Once you are done with the installation, open the PDF Tricks application from the system menu. + +On the first run, you will get you a list of actions you can perform with this tool. To merge PDF files, go with the third option, obviously. + +![merge pdf files using in ubuntu][3] + +In the next step, click on **Add file** and select the files you want to merge: + +![choose files to merge][4] + +Once you select files, click on the **Merge** button: + +![click on merge button][5] + +And it will open the default file manager of your system. Here you can select where you want to save the merged file and what it should be named: + +![locate and name the merged pdf file][6] + +And that’s it. The combined pdf has been saved. + +And if you are looking for a tool, we have a list of the [best PDF readers that you can use to read and edit PDF files.][7] + +**Related read**: List of [PDF editors available for Linux][7]. + +### Method 2: Merge PDF Files using LibreOffice + +The awesome LibreOffice is capable of handling many PDF related tasks. You can even [edit PDF files with LibreOffice Draw tool][8] for adding a digital signature, adding text, and much more. + +The good thing is that you don’t need to install another application. LibreOffice is already installed on most distributions, if not all. + +Open the file manager and select the PDF files that you want to merge. + +**Right-click on selected files > Open With Other Application > LibreOffice Draw from there**, and it will open selected PDF files. + +And it will open every PDF file you selected in a separate LibreOffice Draw instance: + +![open pdf file in libreoffice][9] + +Now, you have to **select individual pages or entire PDF file** (using Ctrl + A) from the left preview bar and drop it to the preview bar of the file that you want to combine with: + +Once you are done with drag and drop, click on the 5th option from the top left, labeled as **Export Directly as PDF**: + +![export directly as pdf in libreoffice][10] + +And it will open a file manager from where you can locate and name the file: + +![save merged file from libreoffice][11] + +And that’s it! + +### Bonus Tip: Merge PDFs in the command line [For advanced users] + +What kind of Linux tutorial would it be if I didn’t include the command line method? To merge PDF files in the command line, you can use ImageMagick. + +ImageMagick is actually an image-related tool. PDF files are essentially images and this is why ImageMagick can work with them. + +You probably don’t even need to [install ImageMagick][12] as it is already installed in most distros by default. + +For example, I will be adding 3 PDF files named pdf-1.pdf, pdf-2.pdf, and pdf-3.pdf and will name the final merged PDF file output as MergedFile.pdf (how clever): + +``` +convert pdf-1.pdf pdf-2.pdf pdf-3.pdf MergedFile.pdf +``` + +#### Troubleshooting no images defined + +If you see a policy error like this: + +![convert im6.q16: attempt to perform an operation not allowed by the security policy `pdf' @ error constitute.c iscoderauthorized 421.][13] + +The problem is quite easy to solve. You just have to make minor changes in the ImageMagick policy file. + +Open the policy file for editing: + +``` +sudo nano /etc/ImageMagick-6/policy.xml +``` + +And look for the following line: + +``` + +``` + +Now, you have to change the `rights="none"` to `rights=read|write`: + +``` + +``` + +![change policy in imagemagick to merge pdf files][14] + +Save the changes, and now you can easily merge files using ImageMagick: + +![merge pdf files using imagemagick in linux terminal][15] + +### Wrapping Up + +Now you know several ways of combining PDF files in Linux. Chances are that the merged PDF file is big in size. If you have to upload the merged PDF file on a portal that has size restrictions, you can [compress the PDF file][16]. + +Let me know if you face any issues with above discussed methods. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/merge-pdf-linux/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/what-is-flatpak/ +[2]: https://itsfoss.com/flatpak-guide/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/merge-pdf-files-using-in-ubuntu-1.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/choose-files-to-merge.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/click-on-merge-button.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/locate-and-name-the-merged-pdf-file.png +[7]: https://itsfoss.com/pdf-editors-linux/ +[8]: https://itsfoss.com/edit-pdf-files-ubuntu-linux/ +[9]: https://itsfoss.com/wp-content/uploads/2022/11/open-pdf-file-in-libreoffice.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/export-directly-as-pdf-in-libreoffice.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/save-merged-file-from-libreoffice.png +[12]: https://itsfoss.com/install-imagemagick-ubuntu/ +[13]: https://itsfoss.com/wp-content/uploads/2022/11/convert-im6.q16-attempt-to-perform-an-operation-not-allowed-by-the-security-policy-pdf-@-error-constitute.c-iscoderauthorized-421.0a.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/change-policy-in-imagemagick-to-merge-pdf-files.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/merge-pdf-files-using-imagemagick-in-linux-terminal.png +[16]: https://itsfoss.com/compress-pdf-linux/ From de5b1fbb322a1788c0d7e424596e4ea668ddfbb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:10:31 +0800 Subject: [PATCH 2150/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221125.1=20=E2=AD=90=EF=B8=8F=20Excellent=20News!?= =?UTF-8?q?=20Midori=20Browser=20to=20Integrate=20its=20Own=20Open=20Sourc?= =?UTF-8?q?e=20Engine=20for=20a=20Strong=20Comeback.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...wn Open Source Engine for a Strong Comeback.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md diff --git a/sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md b/sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md new file mode 100644 index 0000000000..af1f94d14c --- /dev/null +++ b/sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md @@ -0,0 +1,103 @@ +[#]: subject: "Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback" +[#]: via: "https://news.itsfoss.com/midori-astiango/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback +====== + +Midori was a decently popular lightweight open-source web browser a few years back. + +Some of us thought it was discontinued and did not know if it was active. + +**Good news!** + +**Midori web browser is active (in beta)** and [available][1] as a **free and open-source** offering. + +It is an electron-powered browser based on Chromium without Google stuff and privacy protection features. + +> 💡 In 2019, the project got discontinued and merged with [Astian][2] as a mobile browser, where we did not get immediate clarification if the browser would be making a comeback or remain open-source. + +Additionally, with the upcoming update to the browser, they plan to integrate their own open-source search engine **AstianGO** with it. 🤯 + +This is somewhat similar to Brave (and its search engine), but **Brave Search is not open-source**. + +### AstianGO: Open-Source Search Engine + +In a [Reddit post][3], someone from Astian announced the plan to add an integrated open-source search engine, i.e., [AstianGO][4], in the Midori web browser with the next update. + +The source code is not yet available and should be available through [this GitLab page][5]. + +![astiango][6] + +The details are slim, but here's what they mention: + +> We have implemented and developed a fully open source search engine, without the use of third-party APIs, which does not store the IP address of the users, does not store the search history. We have called this search engine, ****AstianGO****, this search engine is developed in PHP, it is self-hosting, although it does not have an integrated update system yet, people can deploy it on their servers. + +The search engine uses data from Google, Qwant, and Brave Search to serve results. You can look at its [FAQ][7] to understand how it works. + +Regarding other browsers, some have a privacy-focused search engine integrated, and some promise privacy protection features. + +![][8] + +Sure, the search engine looks like a work in progress. + +But, an **open-source web browser with a privacy-friendly search engine** (also open-source) is probably unknown to most users. + +![midori browser][9] + +Midori aims to change that with this addition. + +### Midori Web Browser Status + +That sounds all good, **but I think this is not adequately planned out.** + +There is an **AppImage** and a **.deb package** available. It is also available for other platforms. + +I tried to install the Midori browser (.deb package)from its [download page][10], and I could not install it on Ubuntu 22.04 LTS 🚫 + +The AppImage file worked ✅ + +The download page does not reflect all the information to inform Linux distro support; it just mentions "**Debian x64**" and is not entirely translated into English. + +![][11] + +So, **I'm not sure we can recommend using the browser yet**. + +Of course, considering it is in beta, you should not rely on it. You can explore its [GitLab page][12] to know more. + +### Thoughts? + +I think a new open-source search engine is a good thing. I'm still not sure about Midori web browser for Linux, I need to test things through to recommend it in future. + +_Is the open-source search engine more exciting to you or the browser? Let me know your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/midori-astiango/ + +作者:[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://astian.org/en/midori-browser/ +[2]: https://astian.org +[3]: https://www.reddit.com/r/opensource/comments/z44jut/midori_browser_now_with_its_own_search_engine/ +[4]: https://astiango.com +[5]: https://gitlab.com/astiango/astian-search/ +[6]: https://news.itsfoss.com/content/images/2022/11/astiango.jpg +[7]: https://astiango.com/faq.php +[8]: https://news.itsfoss.com/content/images/2022/11/astiango.png +[9]: https://news.itsfoss.com/content/images/2022/11/midori-screenshot.png +[10]: https://astian.org/download/midori-browser-for-debian-x64/ +[11]: https://news.itsfoss.com/content/images/2022/11/midori-download.png +[12]: https://gitlab.com/midori-web/midori-desktop From 5321a4849736ce63cb1acbca3e4ebcd825e11c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:11:14 +0800 Subject: [PATCH 2151/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221125.2=20=E2=AD=90=EF=B8=8F=20Rnote=20An=20Open-?= =?UTF-8?q?Source=20Drawing=20App=20for=20Notes=20and=20Annotation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Source Drawing App for Notes and Annotation.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md diff --git a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md new file mode 100644 index 0000000000..e4284fe38c --- /dev/null +++ b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md @@ -0,0 +1,108 @@ +[#]: subject: "Rnote: An Open-Source Drawing App for Notes and Annotation" +[#]: via: "https://itsfoss.com/rnote/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Rnote: An Open-Source Drawing App for Notes and Annotation +====== + +**_Brief:_**_Rnote allows you to take notes, draw, and annotate documents. Sounds like you need it? Let us explore more._ + +We have featured numerous note-taking applications, but options that support handwritten notes are a handful. + +Rnote is one such helpful application that lets you take handwritten notes and annotate documents/pictures. + +Of course, you need a drawing tablet or a setup with a stylus to use Rnote. + +### Rnote: Vector-based Drawing App for Sketching and Handwritten Notes + +![rnote screenshot][1] + +Rnote is an impressive open-source app written in Rust and GTK 4. + +It provides an adaptive UI focused on stylus input. It looks pretty minimal and yet offers some of the essential features that one would need for handwritten notes. + +Let me highlight some of the things it can do. + +**Recommended Read**: [**Best Note-Taking Apps for Linux Users**][2] + +### Features of Rnote + +![rnote settings][3] + +[Rnote][4] is a simple yet capable sketching/note-taking app. Some features include: + +- Supports pressure-sensitive stylus input with various stroke styles +- Add different shapes with the shape tool +- A selection tool to move, rotate, resize, and modify the content you add/draw. +- Document expand layouts +- Customizable page format +- Customizable background colors, patterns, and sizes +- Pen sound support for feedback +- Reconfigurable stylus button shortcuts +- Integrated workspace browser for quick media file access +- Drag and drop support +- Clipboard support +- Common page formats supported (A6, A5, US letter, etc) +- Import from PDF, bitmap, and SVG files. +- Native .rnote file to save/load documents. +- Export to SVG and PDF supported +- Autosave functionality +- Dark/Light mode + +The developers note that the native file format used by Rnote may not be stable enough for compatibility between newer versions of the application. + +So, it is best to export your work when you are done before upgrading Rnote to its latest version. + +In addition to its features, you get a good user experience with the available options. It does not feel overwhelming, and you can access all the tools quickly. + +Some customization is available to hide the scrollbars, change the cursor, and tweak the drawing cursor. + +You can also adjust the time interval for autosave to kick in, which should come in handy for various use cases. + +![rnote screenshot 1][5] + +### Installing Rnote on Linux + +Rnote is available as a Flatpak on [Flathub][6]. So, as long as you have [Flatpak enabled on your system][7], you can install it on any Linux distribution. + +You can find it in your software center (if Flatpak integration has been enabled) or type in the following command to get it installed: + +``` +flatpak install flathub com.github.flxzt.rnote +``` + +To explore more about Rnote, head to its [GitHub page][8]. + +### Wrapping Up + +Rnote is actively developed and making good progress with its feature set. If you like Rnote, you might want to look at [Xournal++][9], another app that enables you to take handwritten notes. + +_Do you know of any other exciting apps like Rnote? What do you think of Rnote? Share your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/rnote/ + +作者:[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/wp-content/uploads/2022/11/rnote-screenshot.png +[2]: https://itsfoss.com/note-taking-apps-linux/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-settings.png +[4]: https://rnote.flxzt.net +[5]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-screenshot-1.png +[6]: https://flathub.org/apps/details/com.github.flxzt.rnote +[7]: https://itsfoss.com/flatpak-guide/ +[8]: https://github.com/flxzt/rnote +[9]: https://xournalpp.github.io From 2a7f8bca642341fd4dd103f43edd03b283a1a896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:11:37 +0800 Subject: [PATCH 2152/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221125.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Leaving=20Twitter=20for=20Mastodon=20Here=20are=20the=207=20Bes?= =?UTF-8?q?t=20Mastodon=20Instances=20You=20Can=20Join.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... are the 7 Best Mastodon Instances You Can Join.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md diff --git a/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md b/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md new file mode 100644 index 0000000000..554d510dcb --- /dev/null +++ b/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md @@ -0,0 +1,159 @@ +[#]: subject: "Leaving Twitter for Mastodon? Here are the 7 Best Mastodon Instances You Can Join" +[#]: via: "https://itsfoss.com/best-mastodon-instances/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Leaving Twitter for Mastodon? Here are the 7 Best Mastodon Instances You Can Join +====== + +Leaving Twitter after Elon Musk’s takeover? Well, you are not alone. Many users have decided to leave Twitter for a different platform. + +Whether you entirely leave the platform or not is up to you. However, if you are looking for an alternative, **Mastodon** is the one you should pick. + +### What Is Mastodon? + +![x mastodon instances to join][1] + +Mastodon is a **decentralized open-source social media platform**. The highlights include the following: + +- It is an independent platform, not under the control of a single individual or a company. +- No algorithm that collects/analyzes the pattern of your usage. +- You get total control of the platform, which can be used to build a customized experience for your community. +- No ads. + +It primarily aims to be an open-source replacement to Twitter (considering posts were called “**toots**” similar to “**tweets**“) and the post layout can look a bit similar. Gradually it is evolving as an open-source social media platform all around. + +You can deploy Mastodon on your server (taking control of your data) or sign up on any available Mastodon instances (hosted by someone else). Every server is run by individuals and passionate users who dislike using platforms run by tech giants. + +We already had an article [explaining what Mastodon is][2] by a server admin if you wanted more in-depth details. + +### What Are Mastodon Servers or Instances? + +![itsfoss mastodon][3] + +Mastodon is an open-source social media software. + +Anyone can host it on their servers. Sometimes it is a group of individuals, an individual, or an entity. They are responsible to maintain and moderate it. + +Just think of it as “communities” instead of “servers” or an instance. There are many Mastodon communities run by a variety of people. You can join any available communities and interact with users across the Mastodon network. + +**You can always find servers** using [Mastodon’s official server portal][4]. + +If you are a user and want to use the platform to post stuff, follow other users, and engage with the community, you do not need to worry about how it all works. + +However, it is essential to choose the right community, as **every server has different rules, guidelines, and preferences**. + +To help you save time, I recommend some of the **best (or most popular) Mastodon servers** you can join for a good experience **in no particular order of ranking**. + +Unlike other social media platforms, Mastodon servers are mostly community-powered. So, we encourage you to donate/help the server administrators to continue enjoying the platform. + +### 1. Fosstodon + +![fosstodon][5] + +[Fosstodon][6] is the best Mastodon instance for **Linux users and open-source enthusiasts**. It is not one of the most popular options, but it is good. + +You can discuss anything you like as long as you follow its code of conduct; the focus is on free and open-source software. If you need like-minded users to discuss the same, Fosstodon is an excellent option. + +I have been a user of this server for a couple of years, and you will find engaging/valuable posts. + +### 2. Mstdn.social + +![mstdn social][7] + +[Mstdn.social][8] is one of the most exciting Mastodon server instances. The administrator of this instance (**stux**) is super active and welcoming. + +You can discuss anything here using the language of your choice, whether it is about technology, general stuff, or cute cat pictures. The admin regularly shares pictures of his cats; you might want to give him a follow just for that. + +### 3. Mas.to! + +![mas to][9] + +[Mas.to][10] is yet another interactive server where you can have fun posting various content. + +It features a good number of active users. So, you can always expect things to be engaging and active. You should not have any issues as long as you abide by the server rules. + +At the time of writing this, Mas.to temporarily stopped accepting new user registrations to increase the server capacity. You might want to keep an eye on this. + +### 4. Vivaldi Social + +![vivaldi mastodon][11] + +If you are not confident about relying on Mastodon servers run by individuals, you might want to opt to use [Vivaldi Social][12]. + +Built by the makers of [Vivaldi Browser][13]. + +It is good to see companies like Vivaldi promoting the adoption of open-source and decentralized tech through this instance. + +Sure, you will find Vivaldi’s branding replacing the Mastodon logo and posts by the Vivaldi team promoting their services occasionally, and that’s it. You will not find any advertisements. Also, it allows you to discuss anything in general, not restricted to a single language. + +### 5. Mastodon.art + +![mastodon art][14] + +[Mastodon.art][15] is a server that caters to all kinds of art (illustration, paintings, etc.). The server does not allow NFTs / Crypto Art. + +This server should be an excellent place to start if you want a feed full of creative stuff. At the time of writing this, Mastodon.art does not accept new sign-ups until the waitlist is cleared. You can check back in sometime to try creating an account with them. + +### 6. Techhub.social + +![techhub][16] + +[Techhub.social][17] aims to cater to users passionate about all technologies. + +Anyone can join the server if you follow the server rules. You do not have to be a tech geek to join the server, but the primary focus remains technology. + +### 7. Mastodon.lol + +![mastodon lol][18] + +[Mastodon.lol][19] is for you if you want a server that aims to welcome members of LBGTQ+, hackers, and a similar group of users. + +Just like a few other servers, Mastodon.lol is overwhelmed by new user registrations. However, the administration plans to re-open the registrations once new moderators have been added to the server. + +### Frequently Asked Questions (FAQ) + +- **Are Mastodon servers privacy-friendly?**Yes, Mastodon is designed in a way where no advanced algorithm collects any form of data to serve you advertisements.For the rest of the stuff, the server administrator has access to the data that you provide to them when signing up and other general statistics (number of posts, likes, IP address, email, etc). So, you may use [VPN services][20] or [Tor][21] and various other [privacy tools][22] to keep your identity anonymous.You might want to check the privacy policy for the server you intend to join. +- **Does Mastodon allow NSFW content?**Some servers do, and some servers do not. You must read the rules and regulations of the server.A feature to mark content as sensitive gives users a warning before they try to see your post. +- **What happens when a Mastodon server is no longer available?**Considering Mastodon servers are run by individuals, some may have hiccups.If you want to prepare for the d-day, you can always use the **account options to move to a different account (or from a different one).**You can find it under **Account → Account settings → Move to a different account (or from)** +- **Can I talk to my friends from another Mastodon server/instance?**No matter what server/instance you choose to join, you can talk to any user from any server/instance.The entire Mastodon network consists of all the servers out there. You do not need to join another server to be able to interact with another user. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-mastodon-instances/ + +作者:[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/wp-content/uploads/2022/11/x-mastodon-instances-to-join.png +[2]: https://itsfoss.com/mastodon-open-source-alternative-twitter/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/itsfoss-mastodon.jpg +[4]: https://joinmastodon.org/servers +[5]: https://itsfoss.com/wp-content/uploads/2022/11/fosstodon.jpg +[6]: https://fosstodon.org/explore +[7]: https://itsfoss.com/wp-content/uploads/2022/11/mstdn-social.jpg +[8]: https://mstdn.social/about +[9]: https://itsfoss.com/wp-content/uploads/2022/11/mas-to.jpg +[10]: https://mas.to/about +[11]: https://itsfoss.com/wp-content/uploads/2022/11/vivaldi-mastodon.jpg +[12]: https://social.vivaldi.net/about +[13]: https://itsfoss.com/install-vivaldi-ubuntu-linux/ +[14]: https://itsfoss.com/wp-content/uploads/2022/11/mastodon-art.jpg +[15]: https://mastodon.art/about +[16]: https://itsfoss.com/wp-content/uploads/2022/11/techhub.png +[17]: https://techhub.social/about +[18]: https://itsfoss.com/wp-content/uploads/2022/11/mastodon-lol.jpg +[19]: https://mastodon.lol/about +[20]: https://itsfoss.com/best-vpn-linux/ +[21]: https://itsfoss.com/install-tar-browser-linux/ +[22]: https://itsfoss.com/privacy-tools/ From f3b3ea0414f78371b479ac29282d004e9252f9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:14:23 +0800 Subject: [PATCH 2153/3123] =?UTF-8?q?Update=2020221125.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Leaving=20Twitter=20for=20Mastodo?= =?UTF-8?q?n=20Here=20are=20the=207=20Best=20Mastodon=20Instances=20You=20?= =?UTF-8?q?Can=20Join.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... are the 7 Best Mastodon Instances You Can Join.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md b/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md index 554d510dcb..b0ec4f21e1 100644 --- a/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md +++ b/sources/tech/20221125.3 ⭐️⭐️ Leaving Twitter for Mastodon Here are the 7 Best Mastodon Instances You Can Join.md @@ -117,10 +117,21 @@ Just like a few other servers, Mastodon.lol is overwhelmed by new user registrat ### Frequently Asked Questions (FAQ) -- **Are Mastodon servers privacy-friendly?**Yes, Mastodon is designed in a way where no advanced algorithm collects any form of data to serve you advertisements.For the rest of the stuff, the server administrator has access to the data that you provide to them when signing up and other general statistics (number of posts, likes, IP address, email, etc). So, you may use [VPN services][20] or [Tor][21] and various other [privacy tools][22] to keep your identity anonymous.You might want to check the privacy policy for the server you intend to join. -- **Does Mastodon allow NSFW content?**Some servers do, and some servers do not. You must read the rules and regulations of the server.A feature to mark content as sensitive gives users a warning before they try to see your post. -- **What happens when a Mastodon server is no longer available?**Considering Mastodon servers are run by individuals, some may have hiccups.If you want to prepare for the d-day, you can always use the **account options to move to a different account (or from a different one).**You can find it under **Account → Account settings → Move to a different account (or from)** -- **Can I talk to my friends from another Mastodon server/instance?**No matter what server/instance you choose to join, you can talk to any user from any server/instance.The entire Mastodon network consists of all the servers out there. You do not need to join another server to be able to interact with another user. +- **Are Mastodon servers privacy-friendly?** + +Yes, Mastodon is designed in a way where no advanced algorithm collects any form of data to serve you advertisements.For the rest of the stuff, the server administrator has access to the data that you provide to them when signing up and other general statistics (number of posts, likes, IP address, email, etc). So, you may use [VPN services][20] or [Tor][21] and various other [privacy tools][22] to keep your identity anonymous.You might want to check the privacy policy for the server you intend to join. + +- **Does Mastodon allow NSFW content?** + +Some servers do, and some servers do not. You must read the rules and regulations of the server.A feature to mark content as sensitive gives users a warning before they try to see your post. + +- **What happens when a Mastodon server is no longer available?** + +Considering Mastodon servers are run by individuals, some may have hiccups.If you want to prepare for the d-day, you can always use the **account options to move to a different account (or from a different one).** You can find it under **Account → Account settings → Move to a different account (or from)**. + +- **Can I talk to my friends from another Mastodon server/instance?** + +No matter what server/instance you choose to join, you can talk to any user from any server/instance.The entire Mastodon network consists of all the servers out there. You do not need to join another server to be able to interact with another user. -------------------------------------------------------------------------------- From 9ae23e0bdd7099e6ad3684704d866d510052436f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:16:05 +0800 Subject: [PATCH 2154/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221124.2=20=E2=AD=90=EF=B8=8F=20Alpine=20Linux=203?= =?UTF-8?q?.17=20is=20out=20with=20OpenSSL=203.0=20and=20new=20packages.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...17 is out with OpenSSL 3.0 and new packages.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md diff --git a/sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md b/sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md new file mode 100644 index 0000000000..880333fc3d --- /dev/null +++ b/sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md @@ -0,0 +1,58 @@ +[#]: subject: "Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages" +[#]: via: "https://debugpointnews.com/alpine-linux-3-17/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages +====== + +**Container Linux operating system Alpine Linux released version 3.17. This is a release summary.** + +![Alpine Linux 3.17][1] + +### Alpine Linux 3.17 + +Alpine Linux 3.17 is the first major release of this series, coming within a few months since its last iteration of the 3.16 series beginning this year. Usually, the Alpine team releases it twice a year. And hence this will be the final release of this year. + +Feature-wise, mostly the core package updates arrives in Alpine 3.17 – those are needed. The most significant update is the OpenSSL 3.0 version as default, bringing the recent high vulnerability fixes, which [caused delays][2] in some distro releases. + +In addition, the Alpine core repo is refreshed with an updated toolchain. Significant versions include GCC 12, bash 5.2, Perl 5.36 and Rust 1.64. + +Although Alpine Linux is ideal for server-based distributions, its repo has GNOME and KDE Plasma desktops. This release refreshed GNOME version 43 and KDE Plasma to 5.26 – which are the latest offerings of this distribution. + +However, PHP 8 is deprecated in this version. Finally, it is powered by Linux kernel 5.15.79, which is the current LTS mainline kernel available. + +Alpine Linux is available for download for all major architectures, including Raspberry Pi. This version is available to download using the official website below. + +[Download Alpine Linux][3] + +If you are using Alpine Linux 3.16, you can simply kick off the upgrade using the following command. + +``` +apk upgrade --available +``` + +Via [official release announcement][4]. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/alpine-linux-3-17/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/11/Alpine-Linux-3.17.jpg +[2]: https://debugpointnews.com/openssl-3-0-7/ +[3]: https://alpinelinux.org/downloads/ +[4]: https://alpinelinux.org/posts/Alpine-3.17.0-released.html + From c8785b2d6946cf269e94788109229519b7ff464c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:16:18 +0800 Subject: [PATCH 2155/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221124.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?10=20Best=20Steam=20Games=20on=20Sale=20for=20Linux=20Users=20?= =?UTF-8?q?=F0=9F=8E=AE(November=202022).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Games on Sale for Linux Users 🎮(November 2022).md | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 sources/news/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md diff --git a/sources/news/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md b/sources/news/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md new file mode 100644 index 0000000000..fe0621e77e --- /dev/null +++ b/sources/news/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md @@ -0,0 +1,213 @@ +[#]: subject: "10 Best Steam Games on Sale for Linux Users 🎮(November 2022)" +[#]: via: "https://news.itsfoss.com/best-steam-games-linux-sale/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +10 Best Steam Games on Sale for Linux Users 🎮(November 2022) +====== + +[Gaming on Linux][1] has been evolving over the years, thanks to Steam's **Proton** and Wine and many other tools like **Bottles, Lutris, and Heroic Game Launcher**. + +This means even if a game is unavailable natively on Linux, you can still play some of them thanks to [Steam Play][2]. + +That's great. Now, you would need some great discounts on games to give them a try, right? + +Well, you are in luck; the yearly **Steam Autumn Sale** is live right now (until **29th November**), with offers on much of the catalog. + +I have picked a few games for Linux systems (even if they are not officially supported) that might pique your interest. + +Let's get started. 🎮 + +> 💡 This article will be updated regularly (monthly/quarterly) when there are discounts on games. + +**Note:** _Regional pricing can differ. The prices mentioned are in US dollars._ + +### 1. The Witcher 3: Wild Hunt + +![the witcher 3 wild hunt][3] + +**Steam Deck status**: _Verified_ ✔️ + +Follow the life of a Witcher as war rages on in the Northern Realms. + +This open-world RPG game takes you deep into the conflicts between humans and non-humans. + +It is set to receive a remastered release on 14th December with better visuals and various fixes, so hurry up and grab it. + +It's **80% off** on Steam right now at **$7.99.** + +[The Witcher 3: Wild Hunt][4] + +### 2. Kena: Bridge of Spirits + +![kena bridge of spirits][5] + +**Steam Deck status**: _Verified_ ✔️ + +This is a story-driven, action-adventure game that follows the journey of Kena, a young Spirit Guide searching for the sacred Mountain Shrine. + +This game offers fast-paced combat with exciting puzzles to solve along the way. + +It's **50% off** on Steam right now at **$19.99**. + +[Kena: Bridge of Spirits][6] + +### 3. Control + +![control][7] + +**Steam Deck status**: _Verified_ ✔️ + +It is a third-person action-adventure game that promises to keep you on your toes. + +You fight a 'corruptive presence' that has invaded the 'Federal Bureau of Control' using your powers. + +It's **75% off** on Steam right now at **$9.99** + +[Control][8] + +### 4. Carrion (Native Linux) + +![Carrion - Release Date Announcement Trailer][9] + +**Steam Deck status**: _Verified_ ✔️ + +Want to be the reason to scare others? + +Then Carrion is the game for you! + +It is a reverse horror game that lets you play as a creature of unknown origins, who is on the hunt, stalking and consuming those who imprisoned it. + +It's **60% off** on Steam right now at **$7.99.** + +[CARRION][10] + +### 5. Death Stranding + +![DEATH STRANDING DIRECTOR'S CUT PC - Launch Trailer - [ESRB] 4K][11] + +**Steam Deck status**: _Verified_ ✔️ + +One of Hideo Kojima's works, this game takes you on a journey through a future where a mysterious event called the 'Death Stranding' had opened a doorway between the living and the dead. + +It's **40% off** on Steam right now at **$23.99**. + +[DEATH STRANDING][12] + +### 6. Stray + +![stray][13] + +**Steam Deck status**: _Verified_ ✔️ + +In this game, you take on the role of a stray cat who has been separated from its family. + +Set in a Cyberpunk world filled with robots, you face various obstacles, puzzles, and adversaries along the way. + +It's **20% off** on Steam right now at **$23.99.** + +[Stray][14] + +### 7. Ghostwire: Tokyo + +![Ghostwire: Tokyo - Official Gameplay Deep Dive][15] + +**Steam Deck status**: _Playable_ 🟡 + +Set in Tokyo, it is an open-world horror game that lets you use an array of elemental abilities to solve the mystery behind the disappearance of the people of Tokyo. + +It's **60% off** on Steam right now at **$23.99**. + +[Ghostwire: Tokyo][16] + +### 8. Valheim (Native Linux) + +![valheim][17] + +**Steam Deck status**: _Verified_ ✔️ + +This is an exploration, building, and survival game for up to 10 players set in a procedurally-generated world inspired by Viking culture. + +It's **30% off** on Steam right now at **$13.99**. + +[Valheim][18] + +### 9. Scorn + +![scorn][19] + +**Steam Deck status**: _Unsupported_ 🚫 + +Not for the faint-hearted, this is a first-person horror adventure game set to give you nightmares! + +Designed in such a way that you will feel isolated and lost inside the game. It features different interconnected regions for you to explore. + +It's **20% off** on Steam right now at **$31.99**. + +[Scorn][20] + +### 10. Amnesia: Rebirth (Native Linux) + +![Amnesia: Rebirth : Gameplay Reveal Trailer][21] + +**Steam Deck status**: _Verified_ ✔️ + +This is also a first-person horror game that is not for the faint-hearted. + +It takes you on a terrifying journey through the Algerian desert to uncover your character's past, Tasi Trianon. + +It's **70% off** on Steam right now at **$8.99.** + +[Amnesia: Rebirth][22] + +**Game Over?** No, this list does not represent all the awesome games discounted on the Steam store for Linux. + +You will find massive discounts on several amazing titles, such as [Red Dead Redemption 2][23], [Cyberpunk 2077][24], [Euro Truck Simulator 2][25], and more. + +And if you like getting games at a discount, try the [Humble Bundle membership][26]. They give several PC games for free every month. Some, but not all, such games are also supported on Linux. + +_💬 These are just some of my best picks I want you to try. If you have suggestions, feel free to share them in the comments box below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/best-steam-games-linux-sale/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/linux-gaming-guide/ +[2]: https://itsfoss.com/steam-play/ +[3]: https://news.itsfoss.com/content/images/2022/11/Witcher_3.jpg +[4]: https://store.steampowered.com/app/292030/The_Witcher_3_Wild_Hunt/ +[5]: https://news.itsfoss.com/content/images/2022/11/Kena.jpg +[6]: https://store.steampowered.com/app/1954200/Kena_Bridge_of_Spirits/ +[7]: https://news.itsfoss.com/content/images/2022/11/Control.jpg +[8]: https://store.steampowered.com/app/870780/Control_Ultimate_Edition/ +[9]: https://youtu.be/EbXBqae_iJI +[10]: https://store.steampowered.com/app/953490/CARRION/ +[11]: https://youtu.be/s2GUQcbz_8Q +[12]: https://store.steampowered.com/app/1850570/DEATH_STRANDING_DIRECTORS_CUT/ +[13]: https://news.itsfoss.com/content/images/2022/11/Stray.jpg +[14]: https://store.steampowered.com/app/1332010/Stray/ +[15]: https://youtu.be/vGScfDMeId8 +[16]: https://store.steampowered.com/app/1475810/Ghostwire_Tokyo/ +[17]: https://news.itsfoss.com/content/images/2022/11/Valheim.jpg +[18]: https://store.steampowered.com/app/892970/Valheim/ +[19]: https://news.itsfoss.com/content/images/2022/11/Scorn.jpg +[20]: https://store.steampowered.com/app/698670/Scorn/ +[21]: https://youtu.be/jChsLiRvWXw +[22]: https://store.steampowered.com/app/999220/Amnesia_Rebirth/ +[23]: https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/ +[24]: https://store.steampowered.com/app/1091500/Cyberpunk_2077/ +[25]: https://store.steampowered.com/app/227300/Euro_Truck_Simulator_2/ +[26]: https://www.humblebundle.com/membership?partner=itsfoss From c275b84e46ce228f0c16b69a3548846f10cf32a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:17:47 +0800 Subject: [PATCH 2156/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221124.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Write=20a=20C++=20extension=20module=20for?= =?UTF-8?q?=20Python.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Write a C++ extension module for Python.md | 318 ++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md diff --git a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md new file mode 100644 index 0000000000..14355235cb --- /dev/null +++ b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md @@ -0,0 +1,318 @@ +[#]: subject: "Write a C++ extension module for Python" +[#]: via: "https://opensource.com/article/22/11/extend-c-python" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Write a C++ extension module for Python +====== + +In a previous article, I gave an overview of [six Python interpreters][1]. On most systems, the CPython interpreter is the default, and also the poll in my last article showed that CPython is the most popular one. Specific to CPython is the ability to write Python modules in C using CPythons extensions API. Writing Python modules in C allows you to move computation-intensive code to C while preserving the ease of access of Python. + +In this article, I’ll show you how to write an extension module. Instead of plain C, I use C++ because most compilers usually understand both. I have to mention one major drawback in advance: Python modules built this way are not portable to other interpreters. They only work in conjunction with the CPython interpreter. So if you are looking for a more portable way of interacting with C libraries, consider using the [ctypes][2] module. + +### Source code + +As usual, you can find the related source code on [GitHub][3]. The C++ files in the repository have the following purpose: + +- `my_py_module.cpp`: Definition of the Python module _MyModule_ +- `my_cpp_class.h`: A header-only C++ class which gets exposed to Python +- `my_class_py_type.h/cpp`: Python representation of our C++ class +- `pydbg.cpp`: Separate application for debugging purpose + +The Python module you build in this article won’t have any meaningful use, but is a good example. + +### Build the module + +Before looking into the source code, you can check whether the module compiles on your system. [I use CMake][4] for creating the build configuration, so CMake must be installed on your system. In order to configure and build the module, you can either let Python run the process: + +``` +$ python3 setup.py build +``` + +Or run the process manually: + +``` +$ cmake -B build +$ cmake --build build +``` + +After that, you have a file called `MyModule.so` in the `/build` subdirectory. + +### Defining an extension module + +First, take a look on `my_py_module.cpp`, in particular, the function `PyInit_MyModule`: + +``` +PyMODINIT_FUNC +PyInit_MyModule(void) { + PyObject* module = PyModule_Create(&my_module); + + PyObject *myclass = PyType_FromSpec(&spec_myclass); + if (myclass == NULL){ + return NULL; + } + Py_INCREF(myclass); + + if(PyModule_AddObject(module, "MyClass", myclass) < 0){ + Py_DECREF(myclass); + Py_DECREF(module); + return NULL; + } + return module; +} +``` + +This is the most important code in this example because it acts as the entry point for CPython. In general, when a Python C extension is compiled and made available as a shared object binary, CPython searches for the function `PyInit_` in the eponymous binary (`.so`) and executes it when attempting to import it. + +All Python types, whether declarations or instances, are exposed as pointers to [PyObject][5]. In the first part of this function, the root definition of the module is created by running `PyModule_Create(...)`. As you can see in the module specification (`my_module`, same file), it doesn’t have any special functionality. + +Afterward, [PyType_FromSpec][6] is called to create a Python [heap type][7] definition for the custom type MyClass. A heap type corresponds to a Python class. The type definition is then assigned to the module MyModule. + +_Note that if one of the functions fails, the reference count of previously created PyObjects must be decremented so that they get deleted by the interpreter._ + +### Specifying a Python type + +The specification for the type MyClass is found inside [my_class_py_type.h][8] as an instance of [PyType_Spec][9]: + +``` +static PyType_Spec spec_myclass = { + "MyClass", // name + sizeof(MyClassObject) + sizeof(MyClass), // basicsize + 0, // itemsize + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, // flags + MyClass_slots // slots +}; +``` + +This structure defines some basic type information for the class. The value passed for the size consists of the size of the Python representation (`MyClassObject`) and the size of the plain C++ class (`MyClass`). The `MyClassObject` is defined as follows: + +``` +typedef struct { + PyObject_HEAD + int m_value; + MyClass* m_myclass; +} MyClassObject; +``` + +The Python representation is basically of type [PyObject][5], defined by the macro `PyObject_HEAD`, and some additional members. The member `m_value` is exposed as ordinary class member while the member `m_myclass` is only accessible from inside C++ code. + +The [PyType_Slot][10] defines some additional functionality: + +``` +static PyType_Slot MyClass_slots[] = { + {Py_tp_new, (void*)MyClass_new}, + {Py_tp_init, (void*)MyClass_init}, + {Py_tp_dealloc, (void*)MyClass_Dealloc}, + {Py_tp_members, MyClass_members}, + {Py_tp_methods, MyClass_methods}, + {0, 0} /* Sentinel */ +}; +``` + +Here, the jump addressed for some initialization and de-initialization functions are set as well as ordinary class methods and members. Additional functionality, like assigning an initial attribute dictionary, could also be set, but this is optional. Those definitions usually end with a sentinel, consisting of `NULL` values. + +To complete the type specification, here is the method and member table: + +``` +static PyMethodDef MyClass_methods[] = { + {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")}, + {NULL, NULL} /* Sentinel */ +}; + +static struct PyMemberDef MyClass_members[] = { + {"value", T_INT, offsetof(MyClassObject, m_value)}, + {NULL} /* Sentinel */ +}; +``` + +In the method table, the Python method `addOne` is defined, and it points to the related function `MyClass_addOne`. This function acts as a wrapper. It invokes the `addOne()` method in the C++ class. + +In the member table, there is just one member defined for demonstration purposes. Unfortunately, the use of [offsetof][11] in [PyMemberDef][12] doesn’t allow C++ specific types to be added to `MyClassObject`. If you try to place some C++ type container (such as [std::optional][13]), the compiler complains about it in the form of warnings related to memory layout. + +### Initialization and de-initialization + +The method `MyClass_new` acts only to provide initial values for `MyClassObject` and allocates memory for the base type: + +``` +PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){ + std::cout << "MtClass_new() called!" << std::endl; + + MyClassObject *self; + self = (MyClassObject*) type->tp_alloc(type, 0); + if(self != NULL){ // -> allocation successfull + // assign initial values + self->m_value = 0; + self->m_myclass = NULL; + } + return (PyObject*) self; +} +``` + +Actual initialization takes place in `MyClass_init`, which corresponds to the [__init__()][14] method in Python: + +``` +int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){ + + ((MyClassObject *)self)->m_value = 123; + + MyClassObject* m = (MyClassObject*)self; + m->m_myclass = (MyClass*)PyObject_Malloc(sizeof(MyClass)); + + if(!m->m_myclass){ + PyErr_SetString(PyExc_RuntimeError, "Memory allocation failed"); + return -1; + } + + try { + new (m->m_myclass) MyClass(); + } catch (const std::exception& ex) { + PyObject_Free(m->m_myclass); + m->m_myclass = NULL; + m->m_value = 0; + PyErr_SetString(PyExc_RuntimeError, ex.what()); + return -1; + } catch(...) { + PyObject_Free(m->m_myclass); + m->m_myclass = NULL; + m->m_value = 0; + PyErr_SetString(PyExc_RuntimeError, "Initialization failed"); + return -1; + } + + return 0; +} +``` + +If you want to have arguments passed during initialization, you must call [PyArg_ParseTuple][15] at this point. For the sake of simplicity, all arguments passed during initialization are ignored in this example. In the first part of the function, the `PyObject` pointer (`self`) is reinterpreted to a pointer to `MyClassObject` in order to get access to our additional members. Additionally, the memory for the C++ class is allocated and its constructor is executed. + +Note that exception handling and memory allocation (and de-allocation) must be carefully done in order to prevent memory leaks. When the reference count drops to zero, the `MyClass_dealloc` function takes care of freeing all related heap memory. There’s a [dedicated chapter][16] in the documentation about memory management for C and C++ extensions. + +### Method wrapper + +Calling a related C++ class method from the Python class is easy: + +``` +PyObject* MyClass_addOne(PyObject *self, PyObject *args){ + assert(self); + + MyClassObject* _self = reinterpret_cast(self); + unsigned long val = _self->m_myclass->addOne(); + return PyLong_FromUnsignedLong(val); +} +``` + +Again, the `PyObject*` argument (`self`) is casted to `MyClassObject*` in order to get access to `m_myclass`, a pointer to the C++ class instance. With this information, the classes method `addOne()` is called and the result is returned in form of a [Python integer object][17]. + +### 3 ways to debug + +For debugging purposes, it can be valuable to compile the CPython interpreter in debugging configuration. A detailed description can be found in the [official documentation][18]. It’s possible to follow the next steps, as long as additional debug symbols for the pre-installed interpreter are downloaded. + +#### GNU Debugger + +Good old [GNU Debugger (GDB)][19] is, of course, also useful here. I include a [gdbinit][20] file, defining some options and breakpoints. There’s also the [gdb.sh][21] script, which creates a debug build and initiates a GDB session: + +![Gnu Debugger (GDB) is useful for your Python C and C++ extensions.][22] + +GDB invokes the CPython interpreter with the script file [main.py][23]. The script file allows you to easily define all the actions you want to perform with the Python extension module. + +#### C++ application + +Another approach is to embed the CPython interpreter in a separate C++ application. In the repository, this can be found in the file [pydbg.cpp][24]: + +``` +int main(int argc, char *argv[], char *envp[]) +{ + Py_SetProgramName(L"DbgPythonCppExtension"); + Py_Initialize(); + + PyObject *pmodule = PyImport_ImportModule("MyModule"); + if (!pmodule) { + PyErr_Print(); + std::cerr << "Failed to import module MyModule" << std::endl; + return -1; + } + + PyObject *myClassType = PyObject_GetAttrString(pmodule, "MyClass"); + if (!myClassType) { + std::cerr << "Unable to get type MyClass from MyModule" << std::endl; + return -1; + } + + PyObject *myClassInstance = PyObject_CallObject(myClassType, NULL); + + if (!myClassInstance) { + std::cerr << "Instantioation of MyClass failed" << std::endl; + return -1; + } + + Py_DecRef(myClassInstance); // invoke deallocation + return 0; +} +``` + +Using the [high level interface][25], it’s possible to include the extension module and perform actions on it. This allows you to debug in the native IDE environment. It also gives you finer control of the variables passed from and to the extension module. + +The drawback is the high expense of creating an extra application. + +#### VSCode and VSCodium LLDB extension + +Using a debugger extension like [CodeLLDB][26] is probably the most convenient debugging option. The repository includes the VSCode or VSCodium configuration files for building the extension ([task.json][27], [CMake Tools][28]) and invoking the debugger ([launch.json][29]). This approach combines the advantages of the previous ones: Debugging in an graphical IDE, defining actions in a Python script file or even dynamically in the interpreter prompt. + +![VSCodium features an integrated debugger.][30] + +### Extend C++ with Python + +All functionality available from Python code is also available from within a C or C++ extension. While coding in Python is often considered as an easy win, extending Python in C or C++ can also be a pain. On the other hand, while native Python code is slower than C++, a C or C++ extension makes it possible to elevate a computation-intensive task to the speed of native machine code. + +You must also consider the usage of an ABI. The stable ABI provides a way to maintain backwards compatibility to older versions of CPython as described in [the documentation][31]. + +In the end, you must weigh the advantages and disadvantages yourself. Should you decide to use C extensions to make certain functionality available to you in Python, you’ve seen how it can be done. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/extend-c-python + +作者:[Stephan Avenwedde][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/hansic99 +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/9/python-interpreters-2022 +[2]: https://docs.python.org/3/library/ctypes.html#module-ctypes +[3]: https://github.com/hANSIc99/PythonCppExtension +[4]: https://opensource.com/article/21/5/cmake +[5]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject +[6]: https://docs.python.org/3/c-api/type.html#c.PyType_FromSpec +[7]: https://docs.python.org/3/c-api/typeobj.html#heap-types +[8]: https://github.com/hANSIc99/PythonCppExtension/blob/main/my_class_py_type.h +[9]: https://docs.python.org/3/c-api/type.html#c.PyType_Spec +[10]: https://docs.python.org/release/3.9.1/c-api/type.html?highlight=pytype_slot#c.PyType_Slot +[11]: https://en.cppreference.com/w/cpp/types/offsetof +[12]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pymemberdef#c.PyMemberDef +[13]: https://en.cppreference.com/w/cpp/utility/optional +[14]: https://docs.python.org/3/library/dataclasses.html?highlight=__init__ +[15]: https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple +[16]: https://docs.python.org/3/c-api/memory.html +[17]: https://docs.python.org/3/c-api/long.html +[18]: https://docs.python.org/3/c-api/intro.html#debugging-builds +[19]: https://opensource.com/article/21/3/debug-code-gdb +[20]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdbinit +[21]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdb.sh +[22]: https://opensource.com/sites/default/files/2022-11/gdb_session_b_0.png +[23]: https://github.com/hANSIc99/PythonCppExtension/blob/main/main.py +[24]: https://github.com/hANSIc99/PythonCppExtension/blob/main/pydbg.cpp +[25]: https://docs.python.org/3/extending/embedding.html#very-high-level-embedding +[26]: https://github.com/vadimcn/vscode-lldb +[27]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/tasks.json +[28]: https://github.com/microsoft/vscode-cmake-tools +[29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json +[30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png +[31]: https://docs.python.org/3/c-api/stable.html From 8050a6fef75fd8a2e34597e77a4795f925870898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 28 Nov 2022 12:19:21 +0800 Subject: [PATCH 2157/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221123.3=20=E2=AD=90=EF=B8=8F=20Tails=205.7=20Rele?= =?UTF-8?q?ases=20With=20Metadata=20Cleaner=20Tool.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ils 5.7 Releases With Metadata Cleaner Tool.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md diff --git a/sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md b/sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md new file mode 100644 index 0000000000..0d041a485d --- /dev/null +++ b/sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md @@ -0,0 +1,79 @@ +[#]: subject: "Tails 5.7 Releases With "Metadata Cleaner" Tool" +[#]: via: "https://news.itsfoss.com/tails-5-7-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Tails 5.7 Releases With "Metadata Cleaner" Tool +====== + +[Tails][1] is a portable operating system that protects against censorship and surveillance. + +It is one of the most popular privacy-focused Linux distributions preferred by journalists and activists who do not want their information exposed to malicious actors. + +With this update, it aims to become even more privacy-friendly and secure by offering many improvements. + +Let's take a look at them. + +#### Limited Time Deals ⌛ + +### 🆕 Tails 5.7: What's new? + +![tails 5.7][2] + +This update has brought in a new tool to clean metadata from files, alongside various package updates and bug fixes. + +Sounds promising! 😄 + +#### Metadata Cleaner + +![tails 5.7 metadata cleaner][3] + +This is a new addition to Tails, which you can use to clean a file's metadata. By extracting the metadata from your files, you can use this to prevent malicious actors from personally identifying you. + +A file's metadata contains a lot of sensitive information that can be used to identify the author (creator of the file), how it was created, and the date of creation. + +In the case of photos and videos, they can also contain geolocation data showing exactly where they were captured. + +We also have an article on it if you want to explore the tool separately. + +#### Package Updates + +Tails 5.7 features the recently updated Tor Browser 11.5.8. + +It contains a variety of CVE fixes, updated translations, OpenSSL 1.1.1.s, NoScript 11.4.12, tor 0.4.7.11 and [more][4]. + +Two stability issues with the Tor connection were also fixed, and a workaround for a known issue of the Tor connection getting stuck around 50% was provided. + +> 💡 You can try one of two methods to fix it: either close and reopen the Tor connection or try a different obfs4 bridge. + +In addition to that, the 'pdf-redact-tools' package was removed as it was not functioning correctly since Tails 5.6. + +### 📥 Download Tails 5.7 + +You can download Tails 5.7 from its [official website][5]. + +If you want to dive deep into the technical details of this update, then you can refer to the [changelog][6] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/tails-5-7-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://tails.boum.org +[2]: https://news.itsfoss.com/content/images/2022/11/Tails_5.7.png +[3]: https://news.itsfoss.com/content/images/2022/11/Tails_5.7_MetadataCleaner.png +[4]: https://blog.torproject.org/new-release-tor-browser-1158/ +[5]: https://tails.boum.org/install/ +[6]: https://tails.boum.org/news/version_5.7/ From d19d20fcc3029dea7729361da30e0e237458c5c4 Mon Sep 17 00:00:00 2001 From: Tingze-G <119109831+Tingze-G@users.noreply.github.com> Date: Mon, 28 Nov 2022 16:47:21 +0800 Subject: [PATCH 2158/3123] =?UTF-8?q?Update=2020221123.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20apt=20remove=20vs=20apt=20purge?= =?UTF-8?q?=20What=E2=80=99s=20the=20Difference.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md index aa796127cd..7eb690888a 100644 --- a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/apt-remove/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Tngze-G" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 62823445fa3372f3c3d9a7e8916daf04694d6d56 Mon Sep 17 00:00:00 2001 From: "jx.zeng" Date: Tue, 29 Nov 2022 06:26:34 +0800 Subject: [PATCH 2159/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Packages From External Repositories in Ubuntu -Explained.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md index 8cd2bba801..8e7be7b565 100644 --- a/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md +++ b/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/adding-external-repositories-ubuntu/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "nophDog" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 04788bbd562d11e7af18716d22a16e9550952270 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 29 Nov 2022 08:57:42 +0800 Subject: [PATCH 2160/3123] translated --- ...w to Install Cinnamon Desktop in Arch Linux.md | 137 ------------------ ...w to Install Cinnamon Desktop in Arch Linux.md | 136 +++++++++++++++++ 2 files changed, 136 insertions(+), 137 deletions(-) delete mode 100644 sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md create mode 100644 translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md diff --git a/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md b/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md deleted file mode 100644 index ace1587af9..0000000000 --- a/sources/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md +++ /dev/null @@ -1,137 +0,0 @@ -[#]: subject: "How to Install Cinnamon Desktop in Arch Linux" -[#]: via: "https://www.debugpoint.com/cinnamon-arch-linux-install/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Cinnamon Desktop in Arch Linux -====== - -**Cinnamon is the default desktop environment for Linux Mint. This quick guide explains the steps to install the Cinnamon desktop environment in Arch Linux.** - -The [Cinnamon desktop environment][1] is the default desktop flavour for [Linux Mint][2]. This GTK-based desktop environment is created to provide a traditional desktop flavour with old GNOME (i.e. pre-GNOME 3 looks). The desktop itself is lightweight and very user-friendly. Because it keeps the time-tested icon and menu-driven desktop behaviour, hence it is considered (in combination with Linux Mint) one of the easy-to-use desktops for new Linux users. - -Although Cinnamon and its packages are closely coupled with Linux Mint, this desktop can be installed as a separate desktop environment in Ubuntu, Fedora, or Arch Linux. - -Installing Cinnamon in Arch Linux is fairly easy, like other desktops such as Xfce and KDE Plasma in Arch. But it requires some specific packages to be installed to make it look like a proper Cinnamon desktop. - -Let’s dive in. - -### Install Cinnamon Desktop in Arch Linux - -#### Step 1: Install Base System - -This guide assumes that you have installed the base Arch system already. If you do not have the base system installed, please install it using the [automated arch install guide][3] (recommended method). Then follow the below steps. - -#### Step 2: Update Your System - -Open a terminal in your Arch installation. And make sure the system is up to date by running the below command: - -``` -pacman -Syu -``` - -#### Step 3: Instal yay AUR Helper - -Some packages that are required for configuring Cinnamon are not available in the Arch official repository. They are available in Arch User Repo (AUR). Hence you need to install yay for additional packages. Follow [this guide to install yay AUR helper][4]. - -#### Step 4: Install Cinnamon Desktop in Arch Linux - -The basic Cinnamon desktop is available in the [cinnamon][5] package, which is present in the Community repo. Open a terminal and run the following commands to install the Cinnamon desktop and the terminal application. - -``` -sudo pacman -S cinnamon gnome-terminal -``` - -Install the display server and display manager. LightDM is lightweight and ideal for Cinnamon. Although, you can use any other display manager, such as SDDM or GDM. But I would recommend that you stick with lightdm. - -``` -sudo pacman -S xorg lightdm lightdm-gtk-greeter -``` - -Enable the display manager and Network services to start in the next boot. - -``` -systemctl enable lightdm -systemctl enable NetworkManager -``` - -Reboot the system. - -#### Step 5: Configure Cinnamon Desktop - -After a successful reboot, you should see the lightdm login prompt. Log in using the username and password which you may have created while installing the base system. - -When I first log in to the base Cinnamon desktop, it looks very bland. So it needed a bit of customization. - -![Cinnamon Desktop in Arch (Before Configuration)][6] - -Open a terminal and install some important packages such as sound drivers, browsers, etc. This would ensure that proper fonts and additional items are installed. - -``` -sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol firefox vlc gimp xfburn thunderbird gedit gnome-system-monitor -``` - -Then install faenza icon theme for a Cinnamon-specific icon set. - -``` -sudo pacman -S mate-icon-theme-faenza -``` - -The numix themes require yay to be installed. Make sure you follow [this guide][4]to install yay AUR helper before running the below command to install it. - -``` -yay -S numix-themes -``` - -After all the installation is complete, reboot the system. - -When you log in back, open the Themes application and change the Window borders, Icons, Controls, and Desktop as per below. - -![Theme Changes for this guide][7] - -You may also choose to download additional themes in the second tab (Add/remove) as well. - -![Additional Themes for you to download][8] - -Change the default GNOME wallpaper (which comes with Cinnamon) to something you like. This guide uses the Cinnamon logo wallpaper from [cinnamon-look.org][9]. - -If all goes well, your desktop should look like this. - -![Cinnamon Desktop in Arch Linux][10] - -![Cinnamon Desktop Running in Arch Linux][11] - -So, that concludes the basic steps for installing and configuring the Cinnamon desktop in Arch Linux. You may want to add additional settings, such as desklets, etc. - -### Closing Notes - -Cinnamon is a modern and easy-to-use desktop for new users. And with the flexibility of Arch Linux and Cinnamon at its core, this combo can be ideal for many users who like Cinnamon desktop (mainly Linux Mint) but want Arch Linux with it. I hope this guide helps you set up your Cinnamon box with Arch Linux. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/cinnamon-arch-linux-install/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://cinnamon-spices.linuxmint.com/ -[2]: https://www.debugpoint.com/linux-mint/ -[3]: https://www.debugpoint.com/archinstall-guide/ -[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ -[5]: https://archlinux.org/packages/community/x86_64/cinnamon/ -[6]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Before-Configuration.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Theme-Changes-for-this-guide.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Additional-Themes-for-you-to-download.jpg -[9]: https://www.cinnamon-look.org/browse/cat/ -[10]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Linux-1024x535.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-Running-in-Arch-Linux-1024x640.jpg diff --git a/translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md b/translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md new file mode 100644 index 0000000000..be6e7c36d3 --- /dev/null +++ b/translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md @@ -0,0 +1,136 @@ +[#]: subject: "How to Install Cinnamon Desktop in Arch Linux" +[#]: via: "https://www.debugpoint.com/cinnamon-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中安装 Cinnamon 桌面 +====== + +**Cinnamon 是 Linux Mint 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Cinnamon 桌面环境的步骤。** + +[Cinnamon 桌面环境][1]是 [Linux Mint][2] 的默认桌面风格。创建这个基于 GTK 的桌面环境是为了提供具有以前的 GNOME 的传统桌面风格(即 GNOME 3 之前的外观)。桌面本身很轻巧,非常人性化。因为它保留了经过时间考验的图标和菜单驱动的桌面行为,因此它被认为(与 Linux Mint 结合)是新 Linux 用户易于使用的桌面之一。 + +尽管 Cinnamon 及其软件包与 Linux Mint 紧密结合,但该桌面可以作为单独的桌面环境安装在 Ubuntu、Fedora 或 Arch Linux 中。 +在 Arch Linux 中安装 Cinnamon 相当容易,就像在 Arch 中安装其他桌面(例如 Xfce 和 KDE Plasma)一样。但它需要安装一些特定的软件包才能使其看起来像一个合适的 Cinnamon 桌面。 + +让我们开始吧。 + +### 在 Arch Linux 中安装 Cinnamon 桌面 + +#### 第 1 步:安装基本系统 + +本指南假设你已经安装了基本的 Arch 系统。如果你没有安装基本系统,请按照[自动化 arch 安装指南][3](推荐方法)进行安装。然后按照以下步骤操作。 + +#### 第 2 步:更新你的系统 + +在你的 Arch 中打开一个终端。并通过运行以下命令确保系统是最新的: + +``` +pacman -Syu +``` + +#### 第 3 步:安装 yay AUR 助手 + +配置 Cinnamon 所需的某些包在 Arch 官方仓库中不可用。它们在 Arch 用户仓库 (AUR) 中。因此,你需要安装 yay 以获得额外的软件包。按照[本指南安装 yay AUR 助手][4]。 + +#### 第 4 步:在 Arch Linux 中安装 Cinnamon 桌面 + +基本的 Cinnamon 桌面在 [cinnamon][5] 包中,它存在于社区仓库中。打开终端并运行以下命令来安装 Cinnamon 桌面和终端应用。 + +``` +sudo pacman -S cinnamon gnome-terminal +``` + +安装显示服务器和显示管理器。LightDM 是轻量级的,非常适合 Cinnamon。不过,你可以使用任何其他显示管理器,例如 SDDM 或 GDM。但我建议你坚持使用 lightdm。 + +``` +sudo pacman -S xorg lightdm lightdm-gtk-greeter +``` + +使显示管理器和网络服务在下次启动时启动。 + +``` +systemctl enable lightdm +systemctl enable NetworkManager +``` + +重启系统。 + +#### 第 5 步:配置 Cinnamon 桌面 + +成功重启后,你应该会看到 lightdm 登录提示。使用你在安装基本系统时可能已创建的用户名和密码登录。 + +当我第一次登录基本的 Cinnamon 桌面时,它看起来非常平淡。所以它需要一些定制。 + +![Arch 中的 Cinnamon 桌面(配置前)][6] + +打开终端并安装一些重要的软件包,例如声音驱动、浏览器等。这将确保安装正确的字体和其他项目。 + +``` +sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol firefox vlc gimp xfburn thunderbird gedit gnome-system-monitor +``` + +然后为 Cinnamon 特定的图标集安装 faenza 图标主题。 + +``` +sudo pacman -S mate-icon-theme-faenza +``` + +numix 主题需要安装 yay。在运行以下命令安装之前,请确保按照[该指南][4]安装 yay AUR 助手程序。 + +``` +yay -S numix-themes +``` + +全部安装完成后,重启系统。 + +当你重新登录时,打开主题应用并按照以下更改窗口边框、图标、控件和桌面。 + +![本指南的主题更改][7] + +你也可以在第二个选项卡(添加/删除)中下载其他主题。 + +![其他主题供你下载][8] + +将默认的 GNOME 壁纸(Cinnamon 附带)更改为你喜欢的内容。本指南使用来自 [cinnamon-look.org][9] 的 Cinnamon logo 壁纸。 + +如果一切顺利,你的桌面应该如下所示。 + +![Arch Linux 中的 Cinnamon 桌面][10] + +![在 Arch Linux 中运行的 Cinnamon 桌面][11] + +因此,在 Arch Linux 中安装和配置 Cinnamon 桌面的基本步骤到此结束。你可能想要添加其他设置,例如 desklets 等。 + +### 结束语 + +Cinnamon 是一款适合新用户的现代且易于使用的桌面。以 Arch Linux 和 Cinnamon 的灵活性为核心,这个组合非常适合许多喜欢 Cinnamon 桌面(主要是 Linux Mint)但又希望同时使用 Arch Linux 的用户。我希望本指南能帮助你在 Arch Linux 中设置 Cinnamon 环境。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cinnamon-arch-linux-install/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://cinnamon-spices.linuxmint.com/ +[2]: https://www.debugpoint.com/linux-mint/ +[3]: https://www.debugpoint.com/archinstall-guide/ +[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[5]: https://archlinux.org/packages/community/x86_64/cinnamon/ +[6]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Before-Configuration.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/02/Theme-Changes-for-this-guide.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/02/Additional-Themes-for-you-to-download.jpg +[9]: https://www.cinnamon-look.org/browse/cat/ +[10]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Linux-1024x535.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-Running-in-Arch-Linux-1024x640.jpg From cab1ce8ef4a0a30e8b710f1b2af1cc22d0f7849a Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 29 Nov 2022 09:18:51 +0800 Subject: [PATCH 2161/3123] translating --- ....0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md index 855082ebf9..f358a8de1e 100644 --- a/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md +++ b/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/unity-arch-linux/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 217a056b2160251dc3fdaa88500a2be4cb345152 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Tue, 29 Nov 2022 10:02:12 +0800 Subject: [PATCH 2162/3123] =?UTF-8?q?Rename=20sources/news/20221124.3=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=2010=20Best=20Steam=20Game?= =?UTF-8?q?s=20on=20Sale=20for=20Linux=20Users=20=F0=9F=8E=AE(November=202?= =?UTF-8?q?022).md=20to=20sources/tech/20221124.3=20=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=2010=20Best=20Steam=20Games=20on=20Sale=20fo?= =?UTF-8?q?r=20Linux=20Users=20=F0=9F=8E=AE(November=202022).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{news => tech}/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md (100%) diff --git a/sources/news/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md b/sources/tech/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md similarity index 100% rename from sources/news/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md rename to sources/tech/20221124.3 ⭐️⭐️ 10 Best Steam Games on Sale for Linux Users 🎮(November 2022).md From a4e6e788f2a81f3c727247239e051125bd08ca96 Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 28 Nov 2022 21:38:30 -0500 Subject: [PATCH 2163/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?][news]:=2020221122.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?macOS=20Alternative=20helloSystem=20(0.7.0)=20is=20moving=20tow?= =?UTF-8?q?ards=20stability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...helloSystem (0.7.0) is moving towards stability.md | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md index f23c3f745a..9589b50b0c 100644 --- a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md +++ b/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md @@ -7,58 +7,58 @@ [#]: publisher: " " [#]: url: " " -macOS Alternative helloSystem (0.7.0) is moving towards stability +macOS 替代品 helloSystem (0.7.0) 正在增强稳定性 ====== -**With the release of helloSystem 0.7.0 and more internal work, helloSystem is moving towards stability for an “open” alternative to macOS.** +**随着 helloSystem 0.7.0 的发布和更多内部工作,helloSystem 正在增强稳定性,为 macOS 提供一个“开放”的替代方案。** -The helloSystem is a FreeBSD-based lightweight operating system aiming for an “open” alternative to macOS. The primary objective of helloSystem is to provide an easy-to-install and use FreeBSD alternative with a truly “open” system. In addition, the team also aims for macOS switchers who can feel comfortable with a similar desktop without a lockdown system or the complexity of a Linux distribution. +helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS 提供一个“开放”的替代方案。helloSystem 的主要目标是提供一个易于安装和使用的,真正“开放”的 FreeBSD 替代方案。此外,该团队还专注于 macOS 转换者,他们可以舒适的使用类似的桌面,而不会受到系统锁定或 Linux 发行版的复杂性的影响。 -Making such an operating system takes time, considering the hardware support in the BSD system. The team is working on creating a desktop – “hellodesktop” from the ground up. Written in C++, the hellodesktop and other improvements are coming along nicely. +考虑到 BSD 系统中的硬件支持,开发这样的操作系统需要时间。团队正在努力从零创建一个桌面 - “hellodesktop”。用 C++ 编写的 hellodesktop 和其他改进正在进行中。 -![helloSystem 0.7.0 Desktop][1] +![helloSystem 0.7.0 桌面][1] ### helloSystem 0.7.0 -At the end of 2021, the team released the last stable version, [helloSystem 0.7.0][2], based on FreeBSD 13.0 and is currently porting the system to FreeBSD 13.1 and 14 versions. +在 2021 年底,团队发布了最后一个稳定版本,基于 FreeBSD 13.0 的 [helloSystem 0.7.0][2],并且目前正在将系统移植到 FreeBSD 13.1 和 14 版本。 -Along with that, a bunch of new features that work now in this system; here’s a summary: +除此之外,一些新功能也可以在系统中工作了;这是一个总览: -- Powered by FreeBSD 13.0 -- Refinements in the LIVE medium with updated boot time and compressed UFS filesystem -- Reduced ISO image size to 800 MB to fit into a CD -- Compatible with Ventoy USB creator -- NVIDIA GPU support, including older models -- exFAT support is added while installing in the target partition -- KDE’s Falkon browser is added, with additional menu items to download and install Chromium and Firefox -- System alert sounds -- Brightness and sound control support via Laptop keyboard dedicated keys +- 由 FreeBSD 13.0 驱动 +- 通过更新的启动时间和压缩的 UFS 文件系统改进的 LIVE 媒体 +- 将 ISO 镜像大小减少到 800 MB,以适合 CD +- 与 Ventoy USB creator 兼容 +- 英伟达 GPU 支持,包括旧型号 +- 在目标分区安装时添加了 exFAT 支持 +- 增加了 KDE 开发的 Falkon 浏览器,附带了下载和安装 Chromium 和 Firefox 的附加菜单项 +- 系统提示音 +- 支持通过笔记本电脑键盘的专用键控制亮度和音量 -![Menu and apps in helloSystem 0.7.0][3] +![helloSystem 0.7.0 中的菜单与应用][3] -In addition to the above, a new section is added in helloSystem 0.7.0 to give you an early look at the features which the team is currently working on. Some of the coolest features arriving in future releases include: +除了上述内容之外,helloSystem 0.7.0 中还添加了一个新部分,以让你可以提前了解团队正在开发的功能。未来版本中将到来的一些最酷的功能包括: -- Debian runtime install utility to run Linux applications inside BSD! -- A separate app for downloading applications. -- New update utility +- BSD 中的 Debian 运行时安装程序,以在 BSD 中运行 Linux 应用程序! +- 一个独立的应用程序,用于下载应用程序。 +- 新的更新实用程序 -Furthermore, a bunch of bug fixes and translation updates landed in 0.7.0. +此外,0.7.0 中还修复了一些错误并更新了翻译。 -![Installing Linux Runtime is under development][4] +![安装 Linux 运行时正在开发中][4] -That being said, it still needs significant time to become an easy-to-use BSD variant and an “open” alternative to macOS. Since I [reported first][5], huge updates have already been made within a year across the graphical installer, desktop apps, and bug fixes. I hope it will become more mainstream in 2023 with FreeBSD 14 port. +话虽如此,但它仍然需要大量的时间才能成为易于使用的 BSD 变体和 macOS 的“开放”替代方案。自从我[首次报道][5]以来,已经在图形安装程序,桌面应用程序和错误修复方面进行了巨大的更新。我希望它在随着 2023 年移植到 FreeBSD 14 之后,会变得更加主流。 -### Download +### 下载 -If you want to try it in real hardware, make sure to take backups and try. Also, helloSystem is now fully compatible with virtual machines such as [VirtualBox][6]. You can give it a try. If you are trying in VirtualBox, make sure to change the CPU to 64-bit. +如果你想在真实的硬件上尝试它,请先进行备份然后尝试。此外,helloSystem 现在完全兼容 [VirtualBox][6] 之类的虚拟机。你可以试试。如果你在 VirtualBox 中尝试,请确保将 CPU 更改为 64 位。 -Official download of the versions (including helloSystem 0.7.0 stable) is available on [this page][7], or you can grab the ISO using the below link. +官方下载链接(包括 helloSystem 0.7.0 稳定版)可在 [此页面][7] 上找到,或者您可以使用下面的链接获取 ISO。 -[Download helloSystem 0.7.0][8] +[下载 helloSystem 0.7.0][8] -If you want to contribute to testing, development or any capacity, [visit the GitHub page for details][9]. +如果你想为测试,开发或任何其他事情做出贡献,请[访问 GitHub 页面以获取详细信息][9]。 -[Next:Boost Your Productivity with Folder Color App in Ubuntu][10] +[接下来:在 Ubuntu 中使用文件夹颜色应用程序提高生产力][10] -------------------------------------------------------------------------------- From 78e26999467dd7c66127ee0e5812e1e9eda4d088 Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 28 Nov 2022 21:38:41 -0500 Subject: [PATCH 2164/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][news]:=2020221122.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?macOS=20Alternative=20helloSystem=20(0.7.0)=20is=20moving=20tow?= =?UTF-8?q?ards=20stability.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... macOS Alternative helloSystem (0.7.0) is moving towards stability.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md (100%) diff --git a/sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/translated/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md similarity index 100% rename from sources/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md rename to translated/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md From 11f43a955005a69a0433cc28648dece292945e02 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 29 Nov 2022 11:30:00 +0800 Subject: [PATCH 2165/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @geekpi 这篇不发布了。 --- ...⭐️ How to switch from Twitter to Mastodon.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md index ed4d7ffa54..b38a52944f 100644 --- a/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md +++ b/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md @@ -3,40 +3,40 @@ [#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 如何从 Twitter 切换到 Mastodon ====== -Mastodon 是一个开源微博社区。 +> Mastodon 是一个开源的微博社区。 -像许多人一样,我发现社交媒体有些令人兴奋,而且……有点多。有时,你会在算法、跟踪数据和针对你的广告中大受煎熬。你对想要查看的内容缺乏管理控制,尤其是在我们许多人习惯的旧平台上。像往常一样,你必须寻求开源来解决问题。而这正是开源微博社区 [Mastodon][1] 所做的。 +像许多人一样,我发现社交媒体有些令人兴奋,而且……有点过分。有时,你会陷入到算法、跟踪数据和针对你的广告中。你对想要查看的内容缺乏管理控制,尤其是在我们许多人习惯的旧平台上。像往常一样,你必须寻求开源来解决问题。而这正是开源微博社区 [Mastodon][1] 所做的。 -使用 Mastodon social,你不仅可以使用开源软件,而且一切都是去中心化的,这意味着你可以部分地根据你想要占用的实例来选择你想要查看的内容。 Mastodon 使用不同的实例,每个实例都有自己的行为准则、隐私选项和审核政策。这意味着当你加入一个实例时,你不太可能看到您不感兴趣的内容,而更有可能看到来自与你有共同兴趣的人的消息。 +使用 Mastodon 社交,你不仅是在使用开源软件,而且一切都是去中心化的,这意味着你可以部分地根据你想要使用的实例来选择你想要查看的内容。 Mastodon 使用不同的实例,每个实例都有自己的行为准则、隐私选项和审核政策。这意味着当你加入一个实例时,你不太可能看到你不感兴趣的内容,而更有可能看到来自与你有共同兴趣的人的消息。 -但是,你也可以与其他实例进行交互。所有 Mastodon 用户都有可能在用户称之为 “fediverse” 的地方“联合”。 +但是,你也可以与其他实例进行交互。所有 Mastodon 实例都能在用户称之为 “联邦宇宙fediverse” 的地方 “联合”。 -### 什么是 fediverse? +### 什么是联邦宇宙? -fediverse 是联合(或互连)服务器的集合。这个词来自“联邦”和“宇宙”的组合。你可以将其用于各种网络发布,从社交网络到网站再到文件托管。虽然每个实例都是独立托管的,但它们可以相互通信。 +“联邦宇宙fediverse” 是联合(互连)服务器的集合。这个词来自 “联邦federated” 和 “宇宙universe” 的组合。你可以将其用于各种网络发布,从社交网络到网站再到文件托管。虽然每个实例都是独立托管的,但它们可以相互通信。 ### 那么我该如何注册 Mastodon? 首先,前往 [Mastodon.social][2] 进行注册。 -在屏幕的右侧,有**登录**和**创建帐户**按钮。 +在屏幕的右侧,有 “登录Sign in” 和 “创建帐户Create account” 按钮。 ![Sign-in or Create Account interface][3] -但是,因为任何人都可以运行 Mastodon 服务器,所以有很多实例,并且一些服务器已经成为社区的所在地,这些社区的兴趣可能与你的兴趣一致。正如我所说的,无论如何你都可以访问整个 fediverse,但如果能在一个人们已经“说你的语言”的服务器上开始,那就更好了(也可以是字面意思,因为你可以添加一个过滤器以查找使用你的母语的服务器)。 +但是,因为任何人都可以运行 Mastodon 服务器,所以有很多实例,并且一些服务器已经成为社区的所在地,这些社区的兴趣可能与你的兴趣一致。正如我所说的,无论如何你都可以访问整个联邦宇宙,但如果能在一个人们已经“说你的语言”的服务器上开始,那就更好了(也可以是字面意思,因为你可以添加一个过滤器以查找使用你的母语的服务器)。 -要查找服务器,请单击**查找另一台服务器**按钮。 +要查找服务器,请单击 “查找另一台服务器Find another server”按钮。 ![Signing up interface][4] -当你单击该按钮时,你将进入[加入 Mastodon 页面][5],其中有一个列出可用服务器的按钮。 +当你单击该按钮时,你将进入 [加入 Mastodon 页面][5],其中有一个列出可用服务器的按钮。 ![Getting started interface][6] @@ -44,11 +44,11 @@ fediverse 是联合(或互连)服务器的集合。这个词来自“联邦 ![Topic list][7] -我的都是关于开源的,所以让我们看看我们在技术主题中有什么。 +我的主题都是关于开源的,所以让我们看看我们在技术主题中有什么。 ![Technology topics][8] -如你所见,有一个包含许多等候名单的大型索引。在这种情况下,Opensource.com 的一位作者 Don Watkins 似乎选择了一个适合他自己和我们天才小组的实例。因此,我将跳过并告诉你我要去哪里:有一个名为 [Fosstodon][9] 的免费开源软件服务器,我选择在那里注册,这样我就可以自由分享我的文章。 +如你所见,有一个包含许多等候名单的大型索引。在这种情况下,Opensource.com 的一位作者 Don Watkins 似乎选择了一个适合他自己和我们天才小组的实例。因此,我将跳过并告诉你我要去哪里:有一个名为 [Fosstodon][9] 的自由开源软件服务器,我选择在那里注册,这样我就可以自由分享我的文章。 以下是登录步骤。 @@ -60,7 +60,7 @@ fediverse 是联合(或互连)服务器的集合。这个词来自“联邦 ![Confirmation message][11] -当你收到邮件时,点击**验证**按钮,系统会提示你确认你的登录信息。 +当你收到邮件时,点击 “验证Verify” 按钮,系统会提示你确认你的登录信息。 该服务器确实有申请加入的过程。这个过程不仅是出于安全原因,也是为了隐私。获得批准后,你就会收到这封很棒的电子邮件! @@ -70,11 +70,11 @@ fediverse 是联合(或互连)服务器的集合。这个词来自“联邦 ### 完全控制 -现在我有了一个新的个人资料,我可以更改我收到的电子邮件的偏好,从而更好地控制我看到的内容。这是让我对媒体接收有更多控制权的好方法,非常感谢。单击 **Preferences** 后,Mastodon 会为我提供炫酷的外观、语言信息和许多其他选项。 +现在我有了一个新的个人资料页,我可以更改我收到的电子邮件的偏好,从而更好地控制我看到的内容。这是让我对媒体接收有更多控制权的好方法,非常感谢。单击 “偏好Preferences” 后,Mastodon 会为我提供炫酷的外观、语言信息和许多其他选项。 ![Appearance settings][13] -接下来,我可以点击通知并限制我看到的内容和收到通知的内容,这样我就可以选择更少的噪音。 +接下来,我可以点击 “通知Notifications” 并限制我看到的内容和收到通知的内容,这样我就可以选择更少的噪音。 ![Notifications settings][14] @@ -82,11 +82,11 @@ fediverse 是联合(或互连)服务器的集合。这个词来自“联邦 ### 总结 -这种开源社交媒体是找到你的人群并与兴趣广泛的人进行广泛互动的好方法。控制媒体摄入量对于你生活中的某种平衡非常有用,你可以查看[贡献者规则][15]选择加入贡献。 +这种开源社交媒体是找到你的人群并与兴趣广泛的人进行广泛互动的好方法。控制媒体摄入量对于你生活中的某种平衡非常有用,你可以查看 [贡献者规则][15] 选择加入贡献。 除了控制你自己的社交媒体体验外,你还可以获得适用于所有设备的手机应用,包括适用于 iPhone 的 Toot 和适用于 Android 的 Tusky。 -长话短说:我认为我们都应该做好新的额开源社交媒体世界的准备。 +总而言之:我认为我们都应该做好新的开源社交媒体世界的准备。 -------------------------------------------------------------------------------- @@ -95,7 +95,7 @@ via: https://opensource.com/article/22/11/switch-twitter-mastodon 作者:[Jessica Cherry][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/) 荣誉推出 From 5b5403cb199bafde77cefea8c0906cf7ef8fc62e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 29 Nov 2022 11:30:53 +0800 Subject: [PATCH 2166/3123] NO PUB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @geekpi 这篇先不发布了。 --- .../20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md (100%) diff --git a/translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/published/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md similarity index 100% rename from translated/tech/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md rename to published/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md From b9505f30bf1b0b5aba6d824d6740d060c5277d52 Mon Sep 17 00:00:00 2001 From: nophDog Date: Tue, 29 Nov 2022 13:19:22 +0800 Subject: [PATCH 2167/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Translated by nophDog 20221129 --- ...ernal Repositories in Ubuntu -Explained.md | 189 ------------------ ...ernal Repositories in Ubuntu -Explained.md | 188 +++++++++++++++++ 2 files changed, 188 insertions(+), 189 deletions(-) delete mode 100644 sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md create mode 100644 translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md diff --git a/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md deleted file mode 100644 index 8e7be7b565..0000000000 --- a/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md +++ /dev/null @@ -1,189 +0,0 @@ -[#]: subject: "Installing Packages From External Repositories in Ubuntu [Explained]" -[#]: via: "https://itsfoss.com/adding-external-repositories-ubuntu/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lujun9972" -[#]: translator: "nophDog" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Installing Packages From External Repositories in Ubuntu [Explained] -====== - -You have some ideas about installing packages in Ubuntu with apt command. Those packages come from Ubuntu’s repositories. - -How about third-party or external repository? No, I am not talking about PPA here. - -Sooner or later, you’ll come across installation instructions that goes in at least four lines. You install something called ‘apt-transport-https’ and then do something with gpg and sources list. After that, you install the package. - -Can’t recall completely. Let me share an example for [installing the latest version Yarn on Ubuntu][1]: - -``` -sudo apt install apt-transport-https curl -curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - -sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' -sudo apt update && sudo apt install yarn -``` - -You’ll often come across such installation method while installing programming tools directly from the developers. - -Many people just follow the instructions without thinking twice about what’s going on here. Nothing wrong with that but knowing the process actually improves your knowledge on the matter and could also help in troubleshooting. - -Let me explain the logic behind those lines. - -### Understanding the procedure of installation from external repositories - -Before you proceed, I highly recommend reading these two articles so that things are a bit more clear to you: - - * [Concept of repositories in Ubuntu][2] - * [Concept of PPA in Ubuntu][3] - - - -To recall quickly, here’s a visual representation of repositories and [package manager in Linux][4]. - -![Illustration of repository and package manager][5] - -The entire idea here is that you add a new, external repository to your system. This way, you’ll be able to download and install packages available from this new repository. If the repository provides an update on the package version, you get to update the installed package along with the system updates (apt update && apt upgrade). - -So, how does this work? Let’s go through the lines one by one. - -#### Part 1: Getting HTTPS support for apt - -The first line is this: - -``` -sudo apt install apt-transport-https curl -``` - -Curl is a [tool for downloading files in Linux terminal][6]. The main part here is the installation of **apt-transport-https** and frankly speaking not needed anymore. - -Confused? This apt-transport-https package allows your system to access repositories over the secure HTTPS protocol. By design, Ubuntu repositories use http, not https. - -Take a look at the screenshot below. The https ones are the external repositories I have added into my system. Ubuntu repositories and PPA use http. - -![][7] - -In the older version of apt package manager, https support was not included. apt-transport-https package adds https support to apt. To add a repository that uses https, this package is installed first. - -Did I not say it is not needed anymore? Yes because the newer versions of apt (higher than 1.5) support https and thus you do not need to install apt-transport-https anymore. - -And yet you see this package mentioned in the instructions. This is more for legacy reasons or for really old distribution versions that might be using an older version of apt. - -Now, you may wonder why Ubuntu repositories use http, not https when https is the secure protocol. Is it not a security risk? The next segment will answer that question. - -#### Part 2: Adding GPG key of the remote repository - -Linux repositories have this built-in GPG-key based security mechanism. Every repository added its public GPG key to your system’s trusted keys. The packages from the repositories are ‘signed’ by this GPG key and thanks to the stored public key, your system verifies that the package is coming from the repository. - -If there is a [mismatch between the keys, your system will throw an error][8] instead of installing or updating packages from the said repository. - -So far, so good. The next step is to add the public GPG key of the external repository to your Linux system so that it trusts the package from this repository. - -``` -curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - -``` - -In the above command, you download the GPG key from the given URL using curl. The option `sS` ensures that you don’t see the flooded output (silent mode) but shows the error (if any). The last `-` tells apt-key to take stdin instead of a file (which is the output of the curl command in this case). - -The download key is added to the system with `apt-key add` command. - -You can see the GPG keys added by various repositories in your system using the `apt-key list` command. - -![List GPG keys][9] - -That’s one way of adding the GPG key to the system. You’ll some other commands that my look slightly different but do the same job of adding the public key of the repository to your system. - -``` -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 -``` - -You’ll notice a warning that apt-key is deprecated. You could still use apt-key command till Ubuntu 22.04 but it will eventually be removed. Let’s not worry about it at the moment. - -#### Part 3: Adding the external repository to your sources list - -The next command adds a new entry into the sources list of your system. This way, your system will know that it has to check this repository for packages and updates. - -``` -sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' -``` - -There is a file /etc/apt/sources.list that contains the details of the Ubuntu repositories. This file should not be touched. All the additional repositories should be placed in their own respective file (ending with .list convention) in the /etc/apt/sources.list.d directory. - -![External repository should have their own sources list file in the /etc/apt/sources.list.d directory][10] - -This makes package management easier. If you are removing a repository from the system, you just need to delete the corresponding sources file. No need to mess with the main sources.list file. - -Let’s look at the command in a bit more detail. - -``` -sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' -``` - -With sh, you are asking to run the command in a new shell, instead of the [subshell][11]. `-c` option tells the sh command to read the commands from the operand instead of standard input. Then it runs the echo command which basically adds line **deb stable main** to /etc/apt/sources.list.d/yarn.list file (file will be created) - -Now, there could be numerous ways you can create a .list file in the specified directory and add the line with repository details in it. You could use it like this as well: - -``` -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list -``` - -You get the gist, right? - -#### Part 4: Installing the application from newly added repository - -So far, you have added the GPG key of the repository and the URL of the repository to the system. - -But your system still does not know about the package available from this new repository. This is why you need to update the local cache of package metadata first with this command: - -``` -sudo apt update -``` - -Your system will have the information about the packages available from the newly added repository and you can install the package now: - -``` -sudo apt install yarn -``` - -To save time, you can [run the two commands one after another in a single lin][12]e. - -``` -sudo apt update && sudo apt install yarn -``` - -The `&&` ensures that the second command only runs when the previous command completed without any error. - -And thus the process completes. - -### Did it make things clear or confused you even more? - -I explained the logic behind the steps for using external repositories in Ubuntu. I hope you have a better understanding of the topic now, but it is also possible that too much detail could be confusing. - -If things are still not clear or if you have additional questions, please let me know. If you notice technical inaccuracies, please let me know in the comment section. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/adding-external-repositories-ubuntu/ - -作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/install-yarn-ubuntu/ -[2]: https://itsfoss.com/ubuntu-repositories/ -[3]: https://itsfoss.com/ppa-guide/#comments -[4]: https://itsfoss.com/package-manager/ -[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png?resize=800%2C450&ssl=1 -[6]: https://itsfoss.com/download-files-from-linux-terminal/ -[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/apt-update-http-https.png?resize=800%2C527&ssl=1 -[8]: https://itsfoss.com/solve-gpg-error-signatures-verified-ubuntu/ -[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/list-apt-key-gpg-ubuntu.png?resize=800%2C547&ssl=1 -[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/sources-list-ubuntu.png?resize=800%2C313&ssl=1 -[11]: https://linuxhandbook.com/subshell/ -[12]: https://itsfoss.com/run-multiple-commands-linux/ diff --git a/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md new file mode 100644 index 0000000000..fa56cf89b8 --- /dev/null +++ b/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md @@ -0,0 +1,188 @@ +[#]: subject: "Installing Packages From External Repositories in Ubuntu [Explained]" +[#]: via: "https://itsfoss.com/adding-external-repositories-ubuntu/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lujun9972" +[#]: translator: "nophDog" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +# 在 Ubuntu 从外部存储库安装软件包 [详解] + +你大概知道怎么在 Ubuntu 中使用 apt 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。 + +那第三方或者外部存储库呢?不,我这里并不是要讲 PPA。 + +早晚你会碰到那种至少四行的安装教程。你需要安装名为 `apt-transport-https` 的包,操作一下 gpg 和源列表「source list」之后,你才能正常安装软件包。 + +没有什么印象的话,那我分享一个[在 Ubuntu 上安装最新版本的 Yarn][1]:的例子 + +```shell +sudo apt install apt-transport-https curl +curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - +sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' +sudo apt update && sudo apt install yarn +``` + +当你需要直接从开发者那里安装编程工具的时候,大概率会碰到这种安装方式。 + +许多人只是按照说明进行操作,并不会去思考其中的原理。这也没什么不对,但了解该过程实际上可以提升你在这方面的知识,而且有助于之后排除故障。 + +我来解释一下这些代码背后的逻辑。 + +### 理解从外部存储库安装的过程 + +在你继续往下阅读之前,我强烈建议你先看看下面这两篇文章,方便理解后续的概念: + + * [什么是 Ubuntu 中的存储库][2] + * [什么是 Ubuntu 中 PPA][3] + + + +为了让你有点印象,这里有一张软件包存储库和 [Linux 中的包管理器][4] 的图片。 + +![Illustration of repository and package manager][5] + +整件事情其实就是在系统中添加一个新的外部存储库。这样,你就可以从这个新存储库下载并安装可用的软件包。如果这个存储库提供了包版本的更新,你可以在更新系统的同时更新这些软件包(`apt update && apt upgrade`)。 + +那么,这是什么工作原理呢?让我们一条一条地过一遍。 + +#### 第 1 部分:为 apt 获取 HTTPS 支持 + +第一行是这样的: + +```shell +sudo apt install apt-transport-https curl +``` + +Curl 是一个[Linux 终端下载文件的工具][6]。这里主要的部分是安装 **apt-transport-https**,但事实上已经不需要了。 + +明白了吗?这个 apt-transport-https 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。 + +看看下面的截图。 https 这张是我已经添加到系统中的外部存储库。 Ubuntu 的存储库和 PPA 使用 http 协议。 + +![][7] + +在旧版本的 apt 包管理器中,不支持 https 协议。 apt-transport-https 包为 apt 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。 + +我之前不是说不需要安装这个包了吗?是的,因为较新版本的 apt(高于 1.5)已经支持 https,所以你不需要再安装 apt-transport-https。 + +但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 apt 包。 + +现在,你可能想知道既然 https 是安全协议,那为什么 Ubuntu 的存储库还要使用 http 而不是 https。这难道没有安全风险吗?接着往下看你就知道答案了。 + +#### 第 2 部分:添加远程存储库的 GPG 密钥 + +Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“签名”「signed」,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。 + +如果[密钥之间不匹配,你的系统会发出提醒][8],而不会继续从该存储库安装或者更新软件包。 + +到目前为止,一切都很顺利。下一步是将外部存储库的 GPG 公钥添加到你的 Linux 系统,以便它能接收来自该存储库的软件包。 + +```shell +curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - +``` + +在上面的命令中,你使用 curl 从指定的 URL 下载 GPG 密钥。选项 `sS` 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 `-` 告诉 apt-key 使用标准输入「stdin」而不是文件(在本例中是 curl 命令的输出)。 + +`apt-key add` 命令已经将下载的密钥添加到系统中。 + +你可以通过 `apt-key list` 命令查看系统中各种存储库添加的 GPG 密钥。 + +![List GPG keys][9] + +这是将 GPG 密钥添加到系统的一种方法。你会看到一些其它的命令,看起来略有不同,但效果一样,都是将存储库的公钥添加到你的系统里面。 + +```shell +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 +``` + +你会注意到 apt-key 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 apt-key 命令,但它最终会被删除。现在不需要杞人忧天。 + +#### 第 3 部分:将外部存储库添加到源列表 + +下个命令是在系统的源列表中添加一个新条目。这样,你的系统就会知道它得检查该存储库中的包和更新。 + +```shell +sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' +``` + +有一个文件 /etc/apt/sources.list 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 /etc/apt/sources.list.d 目录中相应的文件里(约定以 .list 结尾)。 + +![External repository should have their own sources list file in the /etc/apt/sources.list.d directory][10] + +这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 sources.list 文件。 + +让我们再仔细地看一下这行命令。 + +```shell +sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' +``` + +使用 sh 可以在一个新的 shell 进程中运行命令,而不是 [subshel​​l][11]。 `-c` 选项告诉 sh 命令从参数而不是标准输入读取命令。然后它运行 echo 命令,也就是把 **deb stable main** 这一行添加到 /etc/apt/sources.list.d/yarn.list 文件(会创建该文件) + +现在,你可以通过各种方法在指定目录中创建 .list 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用: + +```shell +echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list +``` + +明白了吧? + +#### 第 4 部分:从新添加的存储库安装应用程序 + +到目前为止,你已经将存储库的 GPG 密钥和存储库的 URL 添加到系统中。 + +但是系统仍然不晓得这个新存储库中有哪些可用的包。这就是为什么你需要先使用下面这个命令更新包元数据的本地缓存: + +``` +sudo apt update +``` + +这时你的系统就已经知道新增存储库中可用软件包的信息,现在可以试试安装软件包: + +```shell +sudo apt install yarn +``` + +为了节省时间,你可以在[同一行挨着运行这两个命令][12]e。 + +``` +sudo apt update && sudo apt install yarn +``` + +`&&` 可以确保第二个命令只会在前一个命令没有任何报错的前提下运行。 + +整个流程就是这样。 + +#### 有没有豁然开朗呢,还是一脸懵逼? + +我已经解释了在 Ubuntu 中使用外部存储库背后的逻辑。希望你现在能更好地理解它,当然可能还有很多细节会让你困惑。 + +如果你还不清楚或者还有其他问题,可以联系我。如果你发现了技术上的纰漏,记得在评论区告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/adding-external-repositories-ubuntu/ + +作者:[Abhishek Prakash][a] +选题:[lujun9972][b] +译者:[nophDog](https://github.com/nophDog) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/install-yarn-ubuntu/ +[2]: https://itsfoss.com/ubuntu-repositories/ +[3]: https://itsfoss.com/ppa-guide/#comments +[4]: https://itsfoss.com/package-manager/ +[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png?resize=800%2C450&ssl=1 +[6]: https://itsfoss.com/download-files-from-linux-terminal/ +[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/apt-update-http-https.png?resize=800%2C527&ssl=1 +[8]: https://itsfoss.com/solve-gpg-error-signatures-verified-ubuntu/ +[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/list-apt-key-gpg-ubuntu.png?resize=800%2C547&ssl=1 +[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/sources-list-ubuntu.png?resize=800%2C313&ssl=1 +[11]: https://linuxhandbook.com/subshell/ +[12]: https://itsfoss.com/run-multiple-commands-linux/ From fc8b619e681943455ef2dc30243325c373f6741a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 29 Nov 2022 15:45:22 +0800 Subject: [PATCH 2168/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @nophDog https://linux.cn/article-15299-1.html 翻译的很好,很用心。 --- ...ernal Repositories in Ubuntu -Explained.md | 68 ++++++++++--------- 1 file changed, 35 insertions(+), 33 deletions(-) rename {translated/tech => published}/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md (66%) diff --git a/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md similarity index 66% rename from translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md rename to published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md index fa56cf89b8..a0667bb2a2 100644 --- a/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md +++ b/published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md @@ -3,21 +3,24 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lujun9972" [#]: translator: "nophDog" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15299-1.html" -# 在 Ubuntu 从外部存储库安装软件包 [详解] +详解在 Ubuntu 从外部存储库安装软件包 +====== -你大概知道怎么在 Ubuntu 中使用 apt 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。 +![][0] + +你大概知道怎么在 Ubuntu 中使用 `apt` 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。 那第三方或者外部存储库呢?不,我这里并不是要讲 PPA。 -早晚你会碰到那种至少四行的安装教程。你需要安装名为 `apt-transport-https` 的包,操作一下 gpg 和源列表「source list」之后,你才能正常安装软件包。 +早晚你会碰到那种至少四行的安装说明:你需要安装名为 `apt-transport-https` 的包、操作一下 GPG 和 源列表source list 之后,你才能正常安装软件包。 -没有什么印象的话,那我分享一个[在 Ubuntu 上安装最新版本的 Yarn][1]:的例子 +没有什么印象的话,那我分享一个 [在 Ubuntu 上安装最新版本的 Yarn][1] 的例子: -```shell +``` sudo apt install apt-transport-https curl curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' @@ -37,8 +40,6 @@ sudo apt update && sudo apt install yarn * [什么是 Ubuntu 中的存储库][2] * [什么是 Ubuntu 中 PPA][3] - - 为了让你有点印象,这里有一张软件包存储库和 [Linux 中的包管理器][4] 的图片。 ![Illustration of repository and package manager][5] @@ -51,39 +52,39 @@ sudo apt update && sudo apt install yarn 第一行是这样的: -```shell +``` sudo apt install apt-transport-https curl ``` -Curl 是一个[Linux 终端下载文件的工具][6]。这里主要的部分是安装 **apt-transport-https**,但事实上已经不需要了。 +`curl` 是一个 [Linux 终端下载文件的工具][6]。这里主要的部分是安装 `apt-transport-https`,但事实上已经不需要了。 -明白了吗?这个 apt-transport-https 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。 +明白了吗?这个 `apt-transport-https` 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。 -看看下面的截图。 https 这张是我已经添加到系统中的外部存储库。 Ubuntu 的存储库和 PPA 使用 http 协议。 +看看下面的截图。 https 这张图是我已经添加到系统中的外部存储库。Ubuntu 的存储库和 PPA 使用 http 协议。 ![][7] -在旧版本的 apt 包管理器中,不支持 https 协议。 apt-transport-https 包为 apt 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。 +在旧版本的 `apt` 包管理器中,不支持 https 协议。`apt-transport-https` 包为 `apt` 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。 -我之前不是说不需要安装这个包了吗?是的,因为较新版本的 apt(高于 1.5)已经支持 https,所以你不需要再安装 apt-transport-https。 +我之前不是说不需要安装这个包了吗?是的,因为较新版本的 `apt`(高于 1.5)已经支持 https,所以你不需要再安装 `apt-transport-https`。 -但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 apt 包。 +但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 `apt` 包。 现在,你可能想知道既然 https 是安全协议,那为什么 Ubuntu 的存储库还要使用 http 而不是 https。这难道没有安全风险吗?接着往下看你就知道答案了。 #### 第 2 部分:添加远程存储库的 GPG 密钥 -Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“签名”「signed」,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。 +Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“签名signed”,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。 -如果[密钥之间不匹配,你的系统会发出提醒][8],而不会继续从该存储库安装或者更新软件包。 +如果 [密钥之间不匹配,你的系统会发出提醒][8],而不会继续从该存储库安装或者更新软件包。 到目前为止,一切都很顺利。下一步是将外部存储库的 GPG 公钥添加到你的 Linux 系统,以便它能接收来自该存储库的软件包。 -```shell +``` curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - ``` -在上面的命令中,你使用 curl 从指定的 URL 下载 GPG 密钥。选项 `sS` 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 `-` 告诉 apt-key 使用标准输入「stdin」而不是文件(在本例中是 curl 命令的输出)。 +在上面的命令中,你使用 `curl` 从指定的 URL 下载 GPG 密钥。选项 `-sS` 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 `-` 告诉 `apt-key` 使用标准输入stdin而不是文件(在本例中是 `curl` 命令的输出)。 `apt-key add` 命令已经将下载的密钥添加到系统中。 @@ -93,37 +94,37 @@ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - 这是将 GPG 密钥添加到系统的一种方法。你会看到一些其它的命令,看起来略有不同,但效果一样,都是将存储库的公钥添加到你的系统里面。 -```shell +``` sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 ``` -你会注意到 apt-key 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 apt-key 命令,但它最终会被删除。现在不需要杞人忧天。 +你会注意到 `apt-key` 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 `apt-key` 命令,但它最终会被删除。现在不需要杞人忧天。 #### 第 3 部分:将外部存储库添加到源列表 下个命令是在系统的源列表中添加一个新条目。这样,你的系统就会知道它得检查该存储库中的包和更新。 -```shell +``` sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' ``` -有一个文件 /etc/apt/sources.list 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 /etc/apt/sources.list.d 目录中相应的文件里(约定以 .list 结尾)。 +有一个文件 `/etc/apt/sources.list` 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 `/etc/apt/sources.list.d` 目录中相应的文件里(约定以 `.list` 结尾)。 ![External repository should have their own sources list file in the /etc/apt/sources.list.d directory][10] -这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 sources.list 文件。 +这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 `sources.list` 文件。 让我们再仔细地看一下这行命令。 -```shell +``` sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' ``` -使用 sh 可以在一个新的 shell 进程中运行命令,而不是 [subshel​​l][11]。 `-c` 选项告诉 sh 命令从参数而不是标准输入读取命令。然后它运行 echo 命令,也就是把 **deb stable main** 这一行添加到 /etc/apt/sources.list.d/yarn.list 文件(会创建该文件) +使用 `sh` 可以在一个新的 shell 进程中运行命令,而不是 [子 shel​​l][11]。 `-c` 选项告诉 `sh` 命令从参数而不是标准输入读取命令。然后它运行 `echo` 命令,也就是把 `deb https://dl.yarnpkg.com/debian/ stable main` 这一行添加到 `/etc/apt/sources.list.d/yarn.list` 文件(会创建该文件)。 -现在,你可以通过各种方法在指定目录中创建 .list 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用: +现在,你可以通过各种方法在指定目录中创建 `.list` 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用: -```shell +``` echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list ``` @@ -141,11 +142,11 @@ sudo apt update 这时你的系统就已经知道新增存储库中可用软件包的信息,现在可以试试安装软件包: -```shell +``` sudo apt install yarn ``` -为了节省时间,你可以在[同一行挨着运行这两个命令][12]e。 +为了节省时间,你可以在 [同一行挨着运行这两个命令][12]e。 ``` sudo apt update && sudo apt install yarn @@ -168,7 +169,7 @@ via: https://itsfoss.com/adding-external-repositories-ubuntu/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] 译者:[nophDog](https://github.com/nophDog) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -186,3 +187,4 @@ via: https://itsfoss.com/adding-external-repositories-ubuntu/ [10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/sources-list-ubuntu.png?resize=800%2C313&ssl=1 [11]: https://linuxhandbook.com/subshell/ [12]: https://itsfoss.com/run-multiple-commands-linux/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/29/154339id0xb2exw0c8y222.jpg \ No newline at end of file From 4cb9efc70f9c7f764b9bbb33d4c4ff2f8bfee387 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 29 Nov 2022 16:05:29 +0800 Subject: [PATCH 2169/3123] RP @Cubik65536 https://linux.cn/article-15300-1.html --- ...helloSystem (0.7.0) is moving towards stability.md | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) rename {translated/news => published}/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md (71%) diff --git a/translated/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/published/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md similarity index 71% rename from translated/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md rename to published/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md index 9589b50b0c..c4b5a4f9e1 100644 --- a/translated/news/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md +++ b/published/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md @@ -3,16 +3,16 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15300-1.html" -macOS 替代品 helloSystem (0.7.0) 正在增强稳定性 +macOS 替代品 helloSystem 0.7.0 正在增强稳定性 ====== -**随着 helloSystem 0.7.0 的发布和更多内部工作,helloSystem 正在增强稳定性,为 macOS 提供一个“开放”的替代方案。** +> 随着 helloSystem 0.7.0 的发布和更多内部工作,helloSystem 正在增强稳定性,为 macOS 提供一个“开源”的替代方案。 -helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS 提供一个“开放”的替代方案。helloSystem 的主要目标是提供一个易于安装和使用的,真正“开放”的 FreeBSD 替代方案。此外,该团队还专注于 macOS 转换者,他们可以舒适的使用类似的桌面,而不会受到系统锁定或 Linux 发行版的复杂性的影响。 +helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS 提供一个“开源”的替代方案。helloSystem 的主要目标是提供一个易于安装和使用的,真正“开源”的 FreeBSD 替代方案。此外,该团队还专注于从 macOS 转换过来的用户,他们可以舒适的使用类似的桌面,而不会受到系统锁定或 Linux 发行版的复杂性的影响。 考虑到 BSD 系统中的硬件支持,开发这样的操作系统需要时间。团队正在努力从零创建一个桌面 - “hellodesktop”。用 C++ 编写的 hellodesktop 和其他改进正在进行中。 @@ -20,15 +20,15 @@ helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS ### helloSystem 0.7.0 -在 2021 年底,团队发布了最后一个稳定版本,基于 FreeBSD 13.0 的 [helloSystem 0.7.0][2],并且目前正在将系统移植到 FreeBSD 13.1 和 14 版本。 +在 2021 年底,该团队发布了最新一个稳定版本,基于 FreeBSD 13.0 的 [helloSystem 0.7.0][2],并且目前正在将系统移植到 FreeBSD 13.1 和 14 版本。 除此之外,一些新功能也可以在系统中工作了;这是一个总览: - 由 FreeBSD 13.0 驱动 -- 通过更新的启动时间和压缩的 UFS 文件系统改进的 LIVE 媒体 +- 通过更新的启动时间和压缩的 UFS 文件系统改进的现场介质Live Media - 将 ISO 镜像大小减少到 800 MB,以适合 CD - 与 Ventoy USB creator 兼容 -- 英伟达 GPU 支持,包括旧型号 +- 支持英伟达 GPU,包括旧型号 - 在目标分区安装时添加了 exFAT 支持 - 增加了 KDE 开发的 Falkon 浏览器,附带了下载和安装 Chromium 和 Firefox 的附加菜单项 - 系统提示音 @@ -46,7 +46,7 @@ helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS ![安装 Linux 运行时正在开发中][4] -话虽如此,但它仍然需要大量的时间才能成为易于使用的 BSD 变体和 macOS 的“开放”替代方案。自从我[首次报道][5]以来,已经在图形安装程序,桌面应用程序和错误修复方面进行了巨大的更新。我希望它在随着 2023 年移植到 FreeBSD 14 之后,会变得更加主流。 +话虽如此,但它仍然需要大量的时间才能成为易于使用的 BSD 变体和 macOS 的“开源”替代方案。自从我 [首次报道][5] 以来,已经在图形安装程序,桌面应用程序和错误修复方面进行了巨大的更新。我希望它在随着 2023 年移植到 FreeBSD 14 之后,会变得更加主流。 ### 下载 @@ -54,11 +54,9 @@ helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS 官方下载链接(包括 helloSystem 0.7.0 稳定版)可在 [此页面][7] 上找到,或者您可以使用下面的链接获取 ISO。 -[下载 helloSystem 0.7.0][8] +> **[下载 helloSystem 0.7.0][8]** -如果你想为测试,开发或任何其他事情做出贡献,请[访问 GitHub 页面以获取详细信息][9]。 - -[接下来:在 Ubuntu 中使用文件夹颜色应用程序提高生产力][10] +如果你想为测试、开发或任何其他事情做出贡献,请 [访问 GitHub 页面以获取详细信息][9]。 -------------------------------------------------------------------------------- @@ -67,7 +65,7 @@ via: https://www.debugpoint.com/hellosystem-0-7-0/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ed09b08f17a6fbe428f993f27ba603eaa97dc836 Mon Sep 17 00:00:00 2001 From: Songling Gu <1563156662@qq.com> Date: Tue, 29 Nov 2022 20:28:32 +0800 Subject: [PATCH 2170/3123] =?UTF-8?q?[=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= =?UTF-8?q?][tech]:=2020221126.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Create=20a=20holiday=20light=20display=20with=20your=20Raspberr?= =?UTF-8?q?y=20Pi=20and=20ping=20pong=20balls.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... holiday light display with your Raspberry Pi and ping pong balls.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md index 4ebf7de3b9..c1e4f1b306 100644 --- a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md +++ b/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/raspberry-pi-holiday-light-display" [#]: author: "Brian McCafferty https://opensource.com/users/bdm" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Return7g" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 23ecc000186140e0ff8cb810318d25abbb62471b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 29 Nov 2022 21:25:16 +0800 Subject: [PATCH 2171/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221128.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?3=20open=20source=20audio=20tools=20for=20creators.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ 3 open source audio tools for creators.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md diff --git a/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md new file mode 100644 index 0000000000..04358b14b2 --- /dev/null +++ b/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md @@ -0,0 +1,69 @@ +[#]: subject: "3 open source audio tools for creators" +[#]: via: "https://opensource.com/article/22/11/open-source-audio-tools" +[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 open source audio tools for creators +====== + +Finding good quality, open source audio samples can be a challenge. I've been getting increasingly into composition and creating music in my spare time, using the open source tool [Ardour][1] and the creator-focused distribution Ubuntu Studio. I've been looking for samples of specific sounds or loops to include. + +I'm familiar with many tools to find images, but until recently, I hadn't come across a similar option for audio resources. + +### Open source sound samples + +Finding specific sounds can be challenging if you can't record them yourself. Several resources are available, but not many provide sounds under an open source license. + +#### Freesound + +Enter the incredible treasure trove that is [Freesound][2], a collaborative database of [Creative Commons][3] licensed sounds where you can browse, download, and even contribute. + +You can find pretty much anything on Freesound, from the sounds of a sleepy tour bus on the road to a door opening and closing or a ghostly shriek. While Freesound mainly focuses on sound samples, there are also some loops on the site. Many sounds are licensed under Creative Commons 0, so you can do whatever you like with them from a licensing perspective. However, that's not true for all of them, so check the license before you use anything, as you may need to credit the creator. + +The site allows you to check out the sample rate, bit depth, and channels so you can be sure that the sample will work with your composition, and it has a built-in rating system and download count. A waveform display allows you to get some insight into the character of the sound sample before you preview it. + +The search filters on Freesound are not as strong as other sites. Sounds will sometimes be grouped into packs of similar sounds, like this one for [scary noises][4]. This can help you quickly grab a bunch of similar sounds to play with. The quality of the samples is variable, so you might need to clean up the audio on some samples. If you're feeling bored, there's even an option to select a random sound from the database—and trust me, some are very random! Freesound also has a community forum where you can participate and learn from others. + +#### Nasa space sounds + +If you are looking for some otherworldly sounds or want to snoop on the conversations between Earth and space, the [Nasa Space Sounds database][5] might be a great place to look. It's fascinating to explore the recordings from the various missions and listen in on the communications back and forth, some of which are narrated. Several recordings have different sounds from different space missions, from the Sounds of Mars from Perseverance Rover to audio from the Apollo missions. + +Sounds from the Nasa site are released under the Creative Commons category Public Domain Mark 1.0, meaning that it is free of known restrictions under copyright law. + +### Loops for music creation + +If your focus is more on creating music, you might be looking for loops: short recordings of music that you can alter and tweak in your own compositions. + +There are all kinds of sample packs out there from commercial sources, but there are also a lot of royalty-free loops available on [Looperman][6]. With over 200,000 loops uploaded by musicians, DJs, producers, and creators, there's everything from electronic dance music and trap to classical. There are also over 12,000 a cappella and spoken-word loops, and it's a great resource for finding things like bass lines or drum beats. You need to have an account to download, and you must download tracks before you can upload anything. + +Looperman resources are not Creative Commons, but the site defaults to a similar concept: "All samples and loops are free to use in commercial and noncommercial projects," according to the site license, but "you can NOT claim copyright of those loops." A cappella and vocal samples are in a separate category, so checking the specific terms for any loop you consider using is important. + +Each loop tells you the beats-per-minute, key signature (where relevant), and software it was created in. A waveform shows the character of the loop, which gives you a good idea of whether it is likely to work with your project. You can preview loops within the browser and leave comments for the creator. There is a lively community and many great resources to help you create your own loops. + +### Get creative + +I hope this gives you some ideas of where to find audio resources for your next project, and I look forward to hearing what you have created! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/open-source-audio-tools + +作者:[Ruth Cheesley][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/rcheesley +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/12/music-linux-ardour +[2]: https://freesound.org +[3]: https://opensource.com/article/20/1/what-creative-commons +[4]: https://freesound.org/people/SamsterBirdies/packs/31184/ +[5]: https://www.nasa.gov/connect/sounds/index.html +[6]: https://www.looperman.com/ From ae5c1a2d7b24ac0330364664a56497df188ab272 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Tue, 29 Nov 2022 21:25:28 +0800 Subject: [PATCH 2172/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0922 Install PowerShell on Fedora Linux.md | 320 ------------------ ...0922 Install PowerShell on Fedora Linux.md | 320 ++++++++++++++++++ 2 files changed, 320 insertions(+), 320 deletions(-) delete mode 100644 sources/tech/20210922 Install PowerShell on Fedora Linux.md create mode 100644 translated/tech/20210922 Install PowerShell on Fedora Linux.md diff --git a/sources/tech/20210922 Install PowerShell on Fedora Linux.md b/sources/tech/20210922 Install PowerShell on Fedora Linux.md deleted file mode 100644 index fd2a75d94b..0000000000 --- a/sources/tech/20210922 Install PowerShell on Fedora Linux.md +++ /dev/null @@ -1,320 +0,0 @@ -[#]: subject: "Install PowerShell on Fedora Linux" -[#]: via: "https://fedoramagazine.org/install-powershell-on-fedora-linux/" -[#]: author: "TheEvilSkeletonOzymandias42 https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/" -[#]: collector: "lujun9972" -[#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Install PowerShell on Fedora Linux -====== - -![][1] - -Photos by [NOAA][2] and [Cedric Fox][3] on [Unsplash][4] - -PowerShell (also written pwsh) is a powerful open source command-line and object-oriented shell developed and maintained by Microsoft. It is syntactically verbose and intuitive for the user. This article is a guide on how to install PowerShell on the host and inside a Podman or Toolbox container. - -### Table of contents - - * [Why use PowerShell][5] - * [Demonstration][6] - * [Comparison between Bash and PowerShell][7] - * [Install PowerShell][8] - * [Install PowerShell on a host using the package manager][9] - * [Method 1: Microsoft repositories][10] - * [Method 2: RPM file][11] - * [Install via container][12] - * [Method 1: Podman container][13] - * [Method 2: Fedora Linux Toolbox container][14] - - - -### Why use PowerShell - -PowerShell, as the name suggests, is _power_ful. The syntax is verbose and semantically clear to the end user. For those that don’t want to write long commands all the time, most commands are aliased. The aliases can be viewed with _Get-Alias_ or [here][15]. - -The most important difference between PowerShell and traditional shells, however, is its output pipeline. While normal shells output strings or character streams, PowerShell outputs objects. This has far reaching implications for how command pipelines work and comes with quite a few advantages. - -#### Demonstration - -The following examples illustrate the verbosity and simplicity. Lines that start with the pound symbol (**#**) are comments. Lines that start with **PS >** are commands, **PS >** being the prompt: - -``` -# Return all files greater than 50MB in the current directory. -## Longest form -PS > Get-Childitem | Where-Object Length -gt 50MB -## Shortest form (with use of aliases) -PS > gci | ? Length -gt 40MB -## Output looks like this - Directory: /home/Ozymandias42/Downloads -Mode LastWriteTime Length Name ----- ------------- ------ ---- ------ 20/08/2020 13:55 2000683008 40MB-file.img - - -# In order: get VMs, get snapshots, only select the last 3 and remove selected list: -PS > Get-VM VM-1 | Get-Snapshot | Select-Object -Last 3 | Remove-Snapshot -``` - -What this shows quite well is that input-output reformatting with tools like _cut_, _sed_, _awk_ or similar, which Bash scripts often need, is usually not necessary in PowerShell. The reason for this is that PowerShell works fundamentally different than traditional POSIX shells such as Bash, Zsh, or other shells like Fish. The commands of traditional shells are output as strings whereas in PowerShell they are output as objects. - -#### Comparison between Bash and PowerShell - -The following example illustrates the advantages of the object-output in PowerShell in contrast to the traditional string-output in Bash. Suppose you want a script that outputs all processes that occupy 200MB or more in RAM. With Bash, this might look something like this: - -``` -$ ps -eO rss | awk -F' ' \ - '{ if($2 >= (1024*200)) { \ - printf("%s\t%s\t%s\n",$1,$2,$6);} \ - }' - -PID RSS COMMAND -A B C -[...] -``` - -The first obvious difference is readability or more specifically, semantic clarity. Neither _ps_ nor _awk_ are self-descriptive. _ps_ shows the **p**rocess **s**tatus and _awk_ is a text processing tool and language whose letters are the initials of its developers’ last names, **A**ho, **W**einberger, **K**ernighan (see [Wikipedia][16]). Before contrasting it with PowerShell however, examine the script: - - * _ps -e_ outputs all running processes; - - * _-O rss_ outputs the default output of _ps_ plus the amount of kilobytes each process uses, the _rss_ field; this output looks like this: - -``` -PID RSS S TTY TIME COMMAND 1 13776 S ? 00:00:01 /usr/lib/systemd/systemd -``` - - * | pipe operator uses the output of the command on the left side as input for the command on the right side. - - * _awk -F’ ‘_ declares “space” as the input field separator. So going with the above example, PID is the first, RSS the second and so on. - - * _‘{ if($2 >= (1024*200)_ is the beginning of the actual AWK-script. It checks whether field 2 ([RSS][17]) contains a number larger than or equal to 1024*200KB (204800KB, or 200MB); - - * _{ printf(“%s\t%s\t%s\n”,$1,$2,$6);} }’_ continues the script. If the previous part evaluates to true, this outputs the first, second and sixth field ([PID][18], [RSS][17] and COMMAND fields respectively). - - - - -With this in mind, step back and look at what was required for this script to be written and for it to work: - - * The input command _ps_ had to have the field we wanted to filter against in its output. This was not the case by default and required us to use the _-O_ flag with the _rss_ field as argument. - * We had to treat the output of _ps_ as a list of input fields, requiring us to know their order and structure. Or in other words, we had to at least _know_ that _RSS_ would be the second field. Meaning we had to know how the output of _ps_ would look beforehand. - * We then had to know what unit the data we were filtering against was in as well as what unit the processing tool would work in. Meaning we had to know that the _RSS_ field uses kilobytes and that _awk_ does too. Otherwise we would not have been able to write the expression _($2 <= 1024*200)_ - - - -Now, contrast the above with the PowerShell equivalent: - -``` -# Longest form -PS > Get-Process | Where-Object WorkingSet -ge 200MB -# Shortest form (with use of aliases) -PS > gps | ? ws -ge 200MB - -NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------- ----- ----- ------ -- -- ----------- - A B C D E F G -[...] -``` - -This first thing to notice is that we have perfect semantic clarity. The commands are perfectly self-descriptive in what they do. - -Furthermore there is no requirement for input-output reformatting, nor is there concern about the unit used by the input command. The reason for this is that PowerShell does not output strings, but objects. - -To understand this think about the following. In Bash the output of a command is equal to that what it prints out in the terminal. In PowerShell what is printed on the terminal is not equal to the information, that is actually available. This is, because the output-printing system in PowerShell also works with objects. So every command in PowerShell marks some of the properties of its output objects as printable and others not. However, it always includes all properties, whereas Bash only includes what it actually prints. One can think of it like JSON objects. Where output in Bash would be separated into “fields” by a delimiter such as a space or tab, it becomes an easily addressable object property in PowerShell, with the only requirement being, that one has to know its name. Like _WorkingSet_ in the above example. - -To see all available properties of a command’s output objects and their types, one can simply do something like: - -``` -PS > Get-Process | Get-Member -``` - -### Install PowerShell - -PowerShell is available in several package formats, including RPM used by Fedora Linux. This article shows how to install PowerShell on Fedora Linux using various methods. - -I recommend installing it natively. But I will also show how to do it in a container. I will show using both the official Microsoft PowerShell container and a Fedora Linux 30 toolbox container. The advantage of the container-method is that it’s guaranteed to work, since all dependencies are bundled in it, and isolation from the host. Regardless, I recommend doing it natively, despite the official docs only explicitly stating Fedora Linux releases 28 to 30 as being supported. - -**Note:** Supported means guaranteed to work. It does not necessarily mean incompatible with other releases. This means, that while not guaranteed, releases higher than 30 should still work. They did in fact work in our tests. - -It is more difficult to set up PowerShell and run it in a container than to run it directly on a host. It takes more time to install and you will not be able to run host commands directly. - -#### Install PowerShell on a host using the package manager - -##### Method 1: Microsoft repositories - -Installation is as straight-forward as can be and the procedure doesn’t differ from any other software installed through third party repositories. - -It can be split into four general steps: - - 1. Adding the new repository’s GPG key - 2. Adding repository to DNF repository list - 3. Refreshing DNF cache to include available packages from the new repository - 4. Installing new packages - - - -Powershell is then launched with the command _pwsh_. - -``` -$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc -$ curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo -$ sudo dnf makecache -$ sudo dnf install powershell -$ pwsh -``` - -To remove the repository and packages, run the following. - -``` -$ sudo rm /etc/yum.repos.d/microsoft.repo -$ sudo dnf remove powershell -``` - -##### Method 2: RPM file - -This method is not meaningfully different from the first method. In fact it adds the GPG key and the repository implicitly when installing the RPM file. This is because the RPM file contains the link to both in it’s metadata. - -First, get the _.rpm_ file for the version you want from the [PowerShell Core GitHub repository][19]. See the readme.md -“Get Powershell” table for links. - -Second, enter the following: - -``` -$ sudo dnf install powershell-.rhel.7..rpm -``` - -Substitute _<version>_ and _<architecture>_ with the version and architecture you want to use respectively, for example [powershell-7.1.3-1.rhel.7.x86_64.rpm][20]. - -Alternatively you could even run it with the link instead, skipping the need to download it first. - -``` -$ sudo dnf install https://github.com/PowerShell/PowerShell/releases/download/v/powershell-.rhel.7..rpm -``` - -To remove PowerShell, run the following. - -``` -$ sudo dnf remove powershell -``` - -#### Install via container - -##### Method 1: Podman container - -Podman is an [Open Container Initiative][21] (OCI) compliant drop-in replacement for Docker. - -Microsoft provides a [PowerShell Docker container][22]. The following example will use that container with Podman. - -For more information about Podman, visit [Podman.io][23]. Fedora Magazine has a [tag][24] dedicated to Podman. - -To use PowerShell in Podman, run the following script: - -``` -$ podman run \ - -it \ - --privileged \ - --rm \ - --name powershell \ - --env-host \ - --net=host --pid=host --ipc=host \ - --volume $HOME:$HOME \ - --volume /:/var/host \ - mcr.microsoft.com/powershell \ - /usr/bin/pwsh -WorkingDirectory $(pwd) -``` - -This script creates a Podman container for PowerShell and immediately attaches to it. It also mounts the _/home_ and the host’s root directories into the container so they’re available there. However, the host’s root directory is available in _/var/host_. - -Unfortunately, you can only indirectly run host commands while inside the container. As a workaround, run _chroot /var/host_ to chroot to the root and then run host commands. - -To break the command down, everything is mandatory unless specified: - - * -it creates a persistent environment that does not kick you out when you enter it; - * \--privileged gives extended privileges to the container (optional); - * \--rm removes the container when you exit; - * \--name powershell sets the name of the container to _powershell_; - * \--env-host sets all host environment variables to the container’s variables (optional); - * \--volume $HOME:$HOME mounts the user directory; - * \--volume /:/var/host mounts the root directory to _/var/host_ (optional); - * \--net=host --pid=host --ipc=host runs the process in the host’s namespaces instead of a separate set of namespaces for the contained process; - * docker.io/microsoft/powershell enters the container; - * /usr/bin/pwsh -WorkingDirectory $(pwd) enters the container in the current directory (optional). - - - -Optional but very convenient: alias _pwsh_ with the script to easily access the Podman container by typing _pwsh_. - -To remove the PowerShell image, run the following. - -``` -$ podman rmi mcr.microsoft.com/powershell -``` - -##### Method 2: Fedora Linux Toolbox container - -Toolbox is an elegant solution to setup persistent environments without affecting the host system as a whole. It acts as a wrapper around Podman and takes care of supplying a lot of the flags demonstrated in the previous method. For this reason, Toolbox is a lot easier to use than Podman. It was designed to work for development and debugging. With Toolbox, you can run any command the same as you would directly on the Fedora Workstation host (including _dnf_). - -The installation procedure is similar to the installation on the host methods, with the only difference being that those steps are done inside a container. Make sure you have the _toolbox_ package installed. - -Preparing and entering the Fedora 34 Toolbox container is a two step process: - - 1. Creating the Fedora 34 Toolbox container - 2. Running the Fedora 34 Toolbox container - - - -``` -$ toolbox create --image registry.fedoraproject.org/f34/fedora-toolbox -$ toolbox enter --container fedora-toolbox -``` - -Then, follow the instructions at [Method 1: Microsoft repositories][10]. - -Optional but very convenient: alias _pwsh_ with _toolbox run –container fedora-toolbox_ _pwsh_ to easily access the Toolbox container by typing _pwsh_. - -To remove the Toolbox container, make certain you have stopped the Toolbox session by entering _exit_ and then run the following: - -``` -$ podman kill fedora-toolbox -$ toolbox rm fedora-toolbox -``` - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/install-powershell-on-fedora-linux/ - -作者:[TheEvilSkeletonOzymandias42][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/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2021/05/powershell-816x345.jpg -[2]: https://unsplash.com/@noaa?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/@thecedfox?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://unsplash.com/s/photos/shell?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[5]: tmp.c7U2gcu9Hl#why-use-powershell -[6]: tmp.c7U2gcu9Hl#demonstration -[7]: tmp.c7U2gcu9Hl#comparison-between-bash-and-powershell -[8]: tmp.c7U2gcu9Hl#install-powershell -[9]: tmp.c7U2gcu9Hl#install-on-host-via-package-manager -[10]: tmp.c7U2gcu9Hl#method-1-microsoft-repositories -[11]: tmp.c7U2gcu9Hl#method-2-rpm-file -[12]: tmp.c7U2gcu9Hl#install-via-container -[13]: tmp.c7U2gcu9Hl#method-1-podman-container -[14]: tmp.c7U2gcu9Hl#method-2-fedora-toolbox-container -[15]: https://ilovepowershell.com/2011/11/03/list-of-top-powershell-alias/ -[16]: https://en.wikipedia.org/wiki/AWK -[17]: https://en.wikipedia.org/wiki/Resident_set_size -[18]: https://en.wikipedia.org/wiki/Process_identifier -[19]: https://github.com/PowerShell/PowerShell -[20]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-1.rhel.7.x86_64.rpm -[21]: https://opencontainers.org/ -[22]: https://hub.docker.com/_/microsoft-powershell -[23]: https://podman.io/ -[24]: https://fedoramagazine.org/tag/podman/ diff --git a/translated/tech/20210922 Install PowerShell on Fedora Linux.md b/translated/tech/20210922 Install PowerShell on Fedora Linux.md new file mode 100644 index 0000000000..3c41b43ef4 --- /dev/null +++ b/translated/tech/20210922 Install PowerShell on Fedora Linux.md @@ -0,0 +1,320 @@ +[#]: subject: "Install PowerShell on Fedora Linux" +[#]: via: "https://fedoramagazine.org/install-powershell-on-fedora-linux/" +[#]: author: "TheEvilSkeletonOzymandias42 https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/" +[#]: collector: "lujun9972" +[#]: translator: "cool-summer-021" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在Fedora Linux 系统上安装 PowerShell +====== + +![][1] + +Photos by [NOAA][2] and [Cedric Fox][3] on [Unsplash][4] + +PowerShell(也可写作 pwsh) 是一个功能强大的开源命令行工具,它是面向对象的,由微软开发和维护。它的语法特征冗长,但对用户来说比较直观。本文介绍如何在主机上和在 Podman 或其他容器内安装 PowerShell。 + +### 目录 + + * [为何使用 PowerShell][5] + * [演示实例][6] + * [Bash 和 PowerShell 的比较][7] + * [安装 PowerShell][8] + * [使用包管理器在主机上安装 PowerShell][9] + * [方法1:通过微软仓库][10] + * [方法2:通过 RPM 文件][11] + * [借助容器安装 PowerShell][12] + * [方法1:使用 Podman 容器][13] + * [方法2:使用 Fedora Linux 系统的 Toolbox 容器][14] + + + +### 为何使用 PowerShell + +PowerShell,正如它的名字那样,是一个强大的工具。它的句法冗长,但语义清晰。对那些不愿意写长命令的开发者来说,PowerShell 的大多数命令都有别名。可以使用 _Get-Alias_ 或点击[此处][15]查询别名的使用方法。 + +PowerShell 和传统的 Shell 最大的区别在于它的输出管道。普通的 Shell 输出的是字符串或字符流,PowerShell 输出的是对象。这对命令管道的工作方式具有深远的影响,而且它具有很多的优点。 + +#### 演示例子 + +下面的例子体现的是冗长而清晰的特点。以#号开头的行为注释行。以PS > 开头的行为命令行,**PS >**是提示: + +``` +# Return all files greater than 50MB in the current directory. +## Longest form +PS > Get-Childitem | Where-Object Length -gt 50MB +## Shortest form (with use of aliases) +PS > gci | ? Length -gt 40MB +## Output looks like this + Directory: /home/Ozymandias42/Downloads +Mode LastWriteTime Length Name +---- ------------- ------ ---- +----- 20/08/2020 13:55 2000683008 40MB-file.img + + +# In order: get VMs, get snapshots, only select the last 3 and remove selected list: +PS > Get-VM VM-1 | Get-Snapshot | Select-Object -Last 3 | Remove-Snapshot +``` + +上述例子说明了:带有 _cut_, _sed_, _awk_ 等类似工具的输入-输出格式,在使用 Bash 脚本时是必须具备的技能,而使用 PowerShell 时就不是必备技能了。这是因为 PowerShell 的工作机制跟传统的 POSIX shell(例如 Bash、Zsh、Fish等)有本质的不同。传统的 Shell 的命令输出形式是字符串,而在 PowerShell 中,命令输出形式为对象。 + +#### Bash 与 PowerShell 的比较 + +下面的例子说明了与 Bash 中的字符串输出模式相比,PowerShell 的对象输出模式的优点。假设你需要写一段脚本,该脚本的作用显示所有进程,这些进程一共占用了 200MB 内存空间。如果使用 Bash,大致如下: + +``` +$ ps -eO rss | awk -F' ' \ + '{ if($2 >= (1024*200)) { \ + printf("%s\t%s\t%s\n",$1,$2,$6);} \ + }' + +PID RSS COMMAND +A B C +[...] +``` + +第一个显而易见的差别就是可读性,或更确切地说是语义清晰性。 _ps_ 和 _awk_ 都不是自描述的。_ps_ 命令的功能是显示进程状态,_awk_ 是一种文本处理工具和语言,这个词汇每个字母都是前期开发人员的名字(**A**ho, **W**einberger, **K**ernighan (详见 [Wikipedia][16]))的首字母。然而,在把它与 PowerShell 作比较前,考察以下脚本: + + * _ps -e_ 输出所有运行中的进程; + + * _-O rss_ 输出 _ps_ 的默认输出内容,每个进程分别显示其占用的字节数(以 KB 为单位);输出结果类似于: + +``` +PID RSS S TTY TIME COMMAND 1 13776 S ? 00:00:01 /usr/lib/systemd/systemd +``` + + * | 管道操作符使用左边命令的输出作为右边命令的输入。 + + * _awk -F’ ‘_ 定义"空格",作为输入域操作符。再回到上面的例子,PID 是第一个,RSS 是第二个,依此类推。 + + * _‘{ if($2 >= (1024*200)_ 是实际的 AWK-script 代码起始处。它的作用是检查第2个字段([RSS][17])是否包含大于或等于 1024*200 的数字; + + * _{ printf(“%s\t%s\t%s\n”,$1,$2,$6);} }’_ 继续分析脚本代码。如果前面的条件成立,则输出第一、第二和第六个字段(分别是 [PID][18], [RSS][17] 和 COMMAND)。 + + + + +记住这点,往回看编写这段脚本需要什么以及如何令它正常工作: + + * 输入命令_ps_的输出中必须包含我们想要过滤的字段。这不是默认的实例,需要我们使用 _-O_ 标志和 _rss_ 字段作为参数。 + * 我们需要将 _ps_ 的输出当作一组输入字段,所以我们还应当知道它们的顺序和结构。换句话说,我们至少需要确定 _RSS_ 是第二个字段。这也意味着我们需要提前知道 _ps_ 的输出信息的大致情况。 + * 然后我们需要知道过滤的数据位于什么单元以及相关工具运行于什么单元。也就是我们需要得到 _RSS_ 和 _awk_ 字段占用了多少字节。不然我们也不会写出 _($2 >= 1024*200)_ 这样的表达式。 + + + +现在,我们把前面的命令跟 PoserShell 中等价的命令比较: + +``` +# Longest form +PS > Get-Process | Where-Object WorkingSet -ge 200MB +# Shortest form (with use of aliases) +PS > gps | ? ws -ge 200MB + +NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName +------ ----- ----- ------ -- -- ----------- + A B C D E F G +[...] +``` + +首先应该注意到,语义非常清晰。这些命令都是自描述的,能清晰描述它们做什么。 + +此外,不需要对输入-输出重新格式化,也不需要关心输入命令使用的单元。这是因为 PowerShell 输出的是对象,而非字符串。 + +考虑下述情况,就可以理解这些内容。在 Bash 中,命令的输出信息就是终端显示的信息。在 PowerShell 中,终端显示的信息并不等于实际可用的信息。这是由于 PowerShell 中的输出-打印系统使用的也是对象。因此 PowerShell 中每一条命令都对输出的对象的一些属性作了可打印的标记,也对一些属性作了不可打印的标记。Bash 中的输出位置被分为一些“字段”,以空格或制表符为标志,在 PowerShell 中它是一个容易寻址的对象属性,只需要知道它的名称即可使用。就像上述例子中的 _WorkingSet_ 那样。 + +为了看到一条命令的输出对象的所有属性和它们的类型,可以进行以下操作: + +``` +PS > Get-Process | Get-Member +``` + +### 安装 PowerShell + +PowerShell 安装包的形式有若干种,包括 Fedora Linux 中使用的 RPM 安装包。本文介绍在 Fedora Linux 中如何使用多种方法安装 PowerShell。 + +我推荐使用原生的方法安装。但我也会介绍如何在容器中安装。官方 Microsoft PowerShell 容器和 Fedora Linux 30 工具箱容器的使用,我都会介绍。使用容器的优点在于,所有的依赖捆绑在其中,并且会从主机分离出去,所以它一定是有效的。无论如何,虽然官方文档只是明确支持 Fedora Linux 发行版 28-30,我还是建议使用原生的方法安装。 + +**注意:** 官方支持意味着一定有效。其他的版本也不是一定不兼容。也就是说,高于 30 的发行版也应该有效。经过测试,的确如此。 + +在容器中设置并运行 PowerShell 比直接在主机上运行它难度更大,安装需要花费更多时间,而且你还不能直接运行命令。 + +#### 在主机上使用包管理器安装 PowerShell + +##### 方法一:使用微软仓库 + +安装过程很直接,而且跟通过第三方仓库安装其他软件没什么区别。 + +通俗地说,安装过程可以分为四步: + + 1. 添加新仓库的 GPG 密码 + 2. 在 DNF 仓库列表中新增相应的仓库 + 3. 刷新 DNF 缓存,将新仓库中的有关包包含进来 + 4. 安装新包 + + + +使用命令 _pwsh_ 启动 PowerShell。 + +``` +$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc +$ curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo +$ sudo dnf makecache +$ sudo dnf install powershell +$ pwsh +``` + +欲删除仓库和包,运行以下命令。 + +``` +$ sudo rm /etc/yum.repos.d/microsoft.repo +$ sudo dnf remove powershell +``` + +##### 方法2:使用 PRM 文件 + +这种方法与第一种方法没有明显的差别。实际上,在安装 RPM 文件时,隐式添加了 GPG 密码和仓库。这是由于 RPM 文件包含它们两者的关联关系,保存在它的元数据中。 + +首先,从 [PowerShell GitHub 仓库][19] 获取相应版本的 _.rpm_ 文件。然后查看 readme.md 文件中的 “获取 PowerShell” 部分的内容。 + + +第二步,输入以下命令: + +``` +$ sudo dnf install powershell-.rhel.7..rpm +``` + +在 version 和 architecture 节点中填写各自的内容,例如 [powershell-7.1.3-1.rhel.7.x86_64.rpm][20]。 + +你也可以使用链接运行它,不指定版本和架构,先把它下载到本地。 + +``` +$ sudo dnf install https://github.com/PowerShell/PowerShell/releases/download/v/powershell-.rhel.7..rpm +``` + +欲删除 PowerShell,运行以下命令。 + +``` +$ sudo dnf remove powershell +``` + +#### 通过容器安装 + +##### 方法一:使用 Podman 容器 + +Podman 是一个兼容[开放容器倡议][21](OCI)的、嵌入式的容器引擎,它可以代替 Docker。 + +微软提供了[PowerShell Docker 容器集成工具][22]。下面的例子将在 Podman 中使用容器。 + +欲了解更多关于 Podman 的信息,可以访问 [Podman.io][23]。Fedora 杂志还有一个专为 Podman 设计的[标签][24]。 + +欲在 Podman 中使用 PowerShell,运行以下脚本: + +``` +$ podman run \ + -it \ + --privileged \ + --rm \ + --name powershell \ + --env-host \ + --net=host --pid=host --ipc=host \ + --volume $HOME:$HOME \ + --volume /:/var/host \ + mcr.microsoft.com/powershell \ + /usr/bin/pwsh -WorkingDirectory $(pwd) +``` + +这段脚本为使用 PowerShell 创建了一个 Podman 容器,并立即将它连接起来。它还将 _/home_ 和主机的根目录挂载到容器中,确保它们在容器中是可用的。无论如何,在 _/var/host_ 目录下,主机的根目录是可获取的。 + +但是,在容器内部,你只能间接运行主机命令。有一种变通办法,就是先运行 _chroot /var/host_ 改变根目录,然后运行主机命令。 + +为了把命令拆分开来讲解,除非特别指定,以下所有内容都是强制性的: + + * -it 创建一个持久环境,当您进入该环境后,不会轻易退出; + * \--privileged 给予容器扩展的权限(可选); + * \--rm 当你退出时移除容器; + * \--name 设置容器名称; + * \--env-host 将所有主机的环境变量设置为容器的变量值(可选); + * \--volume $HOME:$HOME 加载用户目录; + * \--volume /:/var/host 将根目录挂载到 _/var/host_(可选); + * \--net=host --pid=host --ipc=host 在主机的命名空间中运行进程(而非一组单独的名称空间); + * docker.io/microsoft/powershell 进入容器 + * /usr/bin/pwsh -WorkingDirectory $(pwd) 在当前目录下进入容器(可选)。 + + + +可选但很方便的参数:别名 _pwsh_,脚本中有了它,可以输入 _pwsh_ 轻松访问 Podman 容器。 + +欲移除 PowerShell 镜像,运行以下命令: + +``` +$ podman rmi mcr.microsoft.com/powershell +``` + +##### 方法二:Fedora 系统的 Toolbox 容器 + +在不影响主机系统的情况下安装持久化环境,使用 Toolbox 是一种巧妙的解决方案。它类似于 Podman 的封装器,负责提供大量的标志,就像方法一中提到的那样。因此,Toolbox 比 Podman 容易使用。它可以用来开发和调试。有了 Toolbox,你可以运行任何命令,跟你直接在 Fedora 工作站主机上运行是一样的。 + +安装步骤跟在主机上安装一样,唯一的区别就是在容器内部进行。你需要确保已经安装了 _toolbox_ 包。 + +使用 Fedora 34 Toolbox 容器需要两个步骤: + + 1. 创建 Fedora 34 Toolbox 容器 + 2. 运行 Fedora 34 Toolbox 容器 + + + +``` +$ toolbox create --image registry.fedoraproject.org/f34/fedora-toolbox +$ toolbox enter --container fedora-toolbox +``` + +接着,按照[方法一:使用微软仓库][10]中的相关内容操作。 + +可选但非常方便的做法:使用别名,可以轻松地访问 Toolbox 容器。 + +欲移除 Toolbox 容器,需要确保你已经使用 _exit_ 关闭了 Toolbox 会话,然后运行以下命令: + +``` +$ podman kill fedora-toolbox +$ toolbox rm fedora-toolbox +``` + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/install-powershell-on-fedora-linux/ + +作者:[TheEvilSkeletonOzymandias42][a] +选题:[lujun9972][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/05/powershell-816x345.jpg +[2]: https://unsplash.com/@noaa?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/@thecedfox?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://unsplash.com/s/photos/shell?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[5]: tmp.c7U2gcu9Hl#why-use-powershell +[6]: tmp.c7U2gcu9Hl#demonstration +[7]: tmp.c7U2gcu9Hl#comparison-between-bash-and-powershell +[8]: tmp.c7U2gcu9Hl#install-powershell +[9]: tmp.c7U2gcu9Hl#install-on-host-via-package-manager +[10]: tmp.c7U2gcu9Hl#method-1-microsoft-repositories +[11]: tmp.c7U2gcu9Hl#method-2-rpm-file +[12]: tmp.c7U2gcu9Hl#install-via-container +[13]: tmp.c7U2gcu9Hl#method-1-podman-container +[14]: tmp.c7U2gcu9Hl#method-2-fedora-toolbox-container +[15]: https://ilovepowershell.com/2011/11/03/list-of-top-powershell-alias/ +[16]: https://en.wikipedia.org/wiki/AWK +[17]: https://en.wikipedia.org/wiki/Resident_set_size +[18]: https://en.wikipedia.org/wiki/Process_identifier +[19]: https://github.com/PowerShell/PowerShell +[20]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-1.rhel.7.x86_64.rpm +[21]: https://opencontainers.org/ +[22]: https://hub.docker.com/_/microsoft-powershell +[23]: https://podman.io/ +[24]: https://fedoramagazine.org/tag/podman/ From 2282dc0a88c6296f6979d9681eebce2b4d9bc2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 29 Nov 2022 21:26:03 +0800 Subject: [PATCH 2173/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221128.2=20=E2=AD=90=EF=B8=8F=20Elon=20Musk's=20Tw?= =?UTF-8?q?itter=20to=20Add=20Open-Source=20Signal=20Protocol=20for=20Encr?= =?UTF-8?q?ypted=20DMs.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...en-Source Signal Protocol for Encrypted DMs.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md diff --git a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md new file mode 100644 index 0000000000..0bb1e9762a --- /dev/null +++ b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md @@ -0,0 +1,80 @@ +[#]: subject: "Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs" +[#]: via: "https://news.itsfoss.com/twitter-signal/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs +====== + +Earlier this year, Elon Musk [tweeted][1] that Twitter DMs needed end-to-end encryption like Signal. + +Even back in 2016, **Edward Snowden**[asked][2]**Jack Dorsey**, former CEO and Co-Founder of Twitter, to add something similar to the platform. + +But, it never came to be. It was probably tested but never implemented. + +With a recent announcement (kind of), this seems to be coming to fruition😌 + +Elon shared a few slides from his company talks, which included '**Encrypted DMs**' for the platform with the Twitter 2.0 roadmap. + +### 🔒 Signal Protocol to Twitter DMs + +![twitter encrypted dms][3] + +While some tinkerers like [Jane Manchun Wong][4](security researcher) found code references to the [Signal Protocol][5] in Twitter's iOS and Android applications. + +Elon Musk confirmed the plan for it in a [tweet][6] about the improvements set to come to the platform under the '**Twitter 2.0**' roadmap. + +In other words, Elon confirmed that encrypted DMs are coming soon. + +![twitter dm signal protocol][7] + +**For those who don't know:** Signal Protocol is an open-source cryptographic protocol that allows the implementation of end-to-end encryption in a perfect forward secrecy ([PFS][8]) manner. + +The protocol uses a '_Double Ratchet algorithm_' where two parties exchange encrypted messages based on a constantly changing shared secret key. + +This ensures that no third party can access the message's contents, as the shared keys only exist on the devices of the two parties. + +The [Signal][9] app makes the best of it. However, you do have several privacy-focused alternatives if you want to explore: + +**How can it help with Twitter DMs?** + +Well, it can make Twitter a more secure platform by preventing malicious actors and governments from snooping around the messages of Twitter users. + +The implementation of Encrypted DMs can be beneficial for whistleblowers, journalists, and activists who are constantly at risk of being censored or targeted for their work. + +Sure, encrypted DMs may not be the most extreme protection measure in terms of privacy. **But it is better than nothing.** + +### 🔏 Encrypted Messaging Should be the Standard + +In these turbulent times, we see more malicious actors trying to gain unauthorized access to sensitive information than ever before. + +Support for End-to-end encryption should be the de facto standard for all messaging platforms, and I hope that Twitter adds it soon. + +_Thoughts? Feel free to share what you think in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/twitter-signal/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://twitter.com/elonmusk/status/1519469891455234048 +[2]: https://twitter.com/Snowden/status/808736772830195713 +[3]: https://news.itsfoss.com/content/images/2022/11/Encrypted_DM_Twitter.jpg +[4]: https://twitter.com/wongmjane +[5]: https://github.com/signalapp/libsignal +[6]: https://twitter.com/elonmusk/status/1596718851097755648 +[7]: https://news.itsfoss.com/content/images/2022/11/Signal_Protocol_Twitter.jpg +[8]: https://en.wikipedia.org/wiki/Forward_secrecy +[9]: https://signal.org/en/ From 6b407a030e73d5726ce1cb4637faabcf1cfcf47a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 29 Nov 2022 21:28:35 +0800 Subject: [PATCH 2174/3123] =?UTF-8?q?Update=2020221128.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Elon=20Musk's=20Twitter=20to=20Add=20Open-Source=20?= =?UTF-8?q?Signal=20Protocol=20for=20Encrypted=20DMs.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md index 0bb1e9762a..7dbdd6fe00 100644 --- a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md +++ b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md @@ -40,6 +40,8 @@ This ensures that no third party can access the message's contents, as the share The [Signal][9] app makes the best of it. However, you do have several privacy-focused alternatives if you want to explore: +[Looking to Ditch WhatsApp? Here are 5 Better Privacy Alternatives to WhatsApp][10] + **How can it help with Twitter DMs?** Well, it can make Twitter a more secure platform by preventing malicious actors and governments from snooping around the messages of Twitter users. @@ -78,3 +80,4 @@ via: https://news.itsfoss.com/twitter-signal/ [7]: https://news.itsfoss.com/content/images/2022/11/Signal_Protocol_Twitter.jpg [8]: https://en.wikipedia.org/wiki/Forward_secrecy [9]: https://signal.org/en/ +[10]: https://itsfoss.com/private-whatsapp-alternatives/ From bab2e74ffc7a0793c2266d3d0af41405448d9a34 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 30 Nov 2022 08:56:33 +0800 Subject: [PATCH 2175/3123] translated --- ...e Open-Source App to Replace Authy on Linux.md | 96 ------------------- ...e Open-Source App to Replace Authy on Linux.md | 94 ++++++++++++++++++ 2 files changed, 94 insertions(+), 96 deletions(-) delete mode 100644 sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md create mode 100644 translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md diff --git a/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md deleted file mode 100644 index 7d45fb7afd..0000000000 --- a/sources/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Authenticator: A Simple Open-Source App to Replace Authy on Linux" -[#]: via: "https://itsfoss.com/authenticator/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Authenticator: A Simple Open-Source App to Replace Authy on Linux -====== - -Authy is a popular app for storing and managing two-factor codes. It is a cloud-based service that gives you convenience with industry-grade security. Unfortunately, it is not open-source. - -Would you consider using a more straightforward (and open-source) authenticator app on your Linux desktop? - -Well, of course, you cannot cloud sync here. But you can generate a backup for the two-factor authentication codes. Keeping that in mind, let me tell you more about Authenticator. - -![authenticator app ft][1] - -### Authenticator: Generate Two-Factor Authentication Codes - -When you enable two-factor authentication with online services, most services give you a token/QR code that you can add/scan to generate codes. - -Authenticator is one such app for Linux that lets you add two-factor authentication codes. - -![authenticator ui][2] - -It is a free and open-source app with essential features to add a variety of tokens and websites that support two-factor authentication. - -**Recommended Read**: [Best Password Managers for Linux Desktop][3] - -### Features of Authenticator - -![authenticator auto lock][4] - -Some of the essential options that you get with it include: - -- QR Code scanner using a camera or a screenshot -- Protect the app using a passphrase -- Autolock the app -- Support for different algorithms (SHA-1/SHA-256/SHA-512) -- Time-based/Counter-based/Steam computing methods supported -- Backup/Restore options (FreeOTP, Aegis, andOTP, Bitwarden, and Google Authenticator) - -You get customization options and the ability to add a custom provider as per the support provided by the service. One can add a custom icon for the provider to help you distinguish between the authentication codes. - -![authenticator custom provider][5] - -For the most part, the default settings should work with websites. However, you might want to check the exact details with the provider if it does not work. - -The app also features multiple providers out of the box, like Google Drive and Proton Mail. So, you do not need to add custom configurations for every entry you add. - -### Installing Authenticator on Linux - -![authenticator add new code][6] - -Authenticator is available as a Flatpak. So, you can install it on any Linux distribution. - -Just type in the following command to get it installed: - -``` -flatpak install flathub com.belmoussaoui.Authenticator -``` - -You can head to its [Flathub][7] or GitLab page to explore more. - -If you are new to the Linux world, refer to our [Flatpak guide][8] to set it up. Your software center might already have Flatpak integration enabled out of the box. You can search for it to get it installed in such a case. - -### Use Open Source Authenticator App For Security and Reliability - -We often depend on cloud-powered tools for everything. Sure, it is convenient. - -However, sometimes desktop apps are more helpful. If you are in the same boat and thinking of making a switch, Authenticator can be an excellent app to have installed for two-factor authentication codes. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/authenticator/ - -作者:[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/wp-content/uploads/2022/11/authenticator-app-ft.png -[2]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-ui.png -[3]: https://itsfoss.com/password-managers-linux/ -[4]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-auto-lock.png -[5]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-custom-provider.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-add-new-code.png -[7]: https://flathub.org/apps/details/com.belmoussaoui.Authenticator -[8]: https://itsfoss.com/flatpak-guide/ diff --git a/translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md new file mode 100644 index 0000000000..bcd56c0b15 --- /dev/null +++ b/translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md @@ -0,0 +1,94 @@ +[#]: subject: "Authenticator: A Simple Open-Source App to Replace Authy on Linux" +[#]: via: "https://itsfoss.com/authenticator/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Authenticator:一个简单的开源应用来替代 Linux 上的 Authy +====== + +Authy 是一款流行的应用,用于存储和管理双因素码。它是一项基于云的服务,可为你提供便利的工业级安全性。不幸的是,它不是开源的。 + +你会考虑在 Linux 桌面上使用更直接(和开源)的身份验证器应用吗? + + +嗯,当然,你不能使用云同步。但是你可以为双因素身份验证码生成备份。记住这点,让我告诉您更多有关 Authenticator 的信息。 + +![authenticator app ft][1] + +### Authenticator:生成双因素身份验证代码 + +当你启用在线服务的双因素身份验证时,大多数服务都会为你提供令牌/QR 码,你可以添加/扫描以生成代码。 + +Authenticator 就是这样一款适用于 Linux 的应用,他可让你添加双因素身份验证码。 + +![authenticator ui][2] + +它是一个免费的开源应用,具有添加各种支持双因素身份验证的令牌和网站的基本功能。 + +### 身份验证器的特点 + +![authenticator 自动锁定][4] + +你获得的一些基本功能包括: + +- 使用相机或截图的二维码扫描器 +- 使用密码保护应用 +- 自动锁定应用 +- 支持不同的算法 (SHA-1/SHA-256/SHA-512) +- 支持基于时间/基于计数器/Steam 计算方法 +- 备份/恢复选项(FreeOTP、Aegis 和 OTP、Bitwarden 和 Google Authenticator) + +你可以获得自定义选项,并能够根据服务提供的支持添加自定义提供程序。可以为提供商添加自定义图标,以帮助你区分身份验证代码。 + +![authenticator 自定义提供程序][5] + +在大多数情况下,默认设置应该适用于网站。但是,如果它不起作用,你可能需要与提供商核实确切的详细信息。 + +该应用还具有开箱即用的多个提供商,例如 Google Drive 和 Proton Mail。因此,你无需为添加的每个条目添加自定义配置。 + +### 在 Linux 上安装 Authenticator + +![authenticator 添加新代码][6] + +Authenticator 以 Flatpak 的形式提供。因此,你可以将它安装在任何 Linux 发行版上。 + +只需输入以下命令即可安装它: + +``` +flatpak install flathub com.belmoussaoui.Authenticator +``` + +你可以前往其 [Flathub][7] 或 GitLab 页面探索更多信息。 + +如果你是 Linux 世界的新手,请参阅我们的 [Flatpak 指南][8]进行设置。你的软件中心可能已经启用了 Flatpak 集成。这种情况下,你可以搜索安装它。 + +### 使用开源身份验证器应用确保安全性和可靠性 + +我们经常依赖云驱动的工具来处理所有事情。当然,这很方便。 + +但是,有时桌面应用更有用。如果你在同一条船上并考虑进行转换,Authenticator 可能是一款出色的应用,可以安装用于双因素身份验证码。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/authenticator/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-app-ft.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-ui.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-auto-lock.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-custom-provider.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/authenticator-add-new-code.png +[7]: https://flathub.org/apps/details/com.belmoussaoui.Authenticator +[8]: https://itsfoss.com/flatpak-guide/ From c04ff0f539848a430d7bfda7404aad635451deb4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 30 Nov 2022 09:01:29 +0800 Subject: [PATCH 2176/3123] translating --- .../20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md index 04358b14b2..b01f41fe17 100644 --- a/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md +++ b/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/open-source-audio-tools" [#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6dc8eacee4474ba223038092907731a82fba0c79 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 30 Nov 2022 09:12:53 +0800 Subject: [PATCH 2177/3123] translating --- ... Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md index 7dbdd6fe00..1bc7c40341 100644 --- a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md +++ b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/twitter-signal/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ada045d731ecbe5bca1005a7b37247d7cc1b9edf Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 30 Nov 2022 09:20:36 +0800 Subject: [PATCH 2178/3123] RP @lxbwolf https://linux.cn/article-15302-1.html --- ...netes Cluster on Debian 11 with Kubeadm.md | 127 +++++++++--------- 1 file changed, 64 insertions(+), 63 deletions(-) rename {translated/tech => published}/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md (59%) diff --git a/translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md b/published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md similarity index 59% rename from translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md rename to published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md index d4c0604d27..dd56f79b7c 100644 --- a/translated/tech/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md +++ b/published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md @@ -3,19 +3,22 @@ [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" [#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15302-1.html" 如何用 Kubeadm 在 Debian 11 上安装 Kubernetes 集群 ====== -你是否在寻找一份在 Debian 11 (Bullseye) 上安装 Kubernetes 集群的简易指南? -本页的分步指南将向您展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。 +![][0] -Kubernetes(k8s)集群包含主节点和工作节点,用于运行容器化的应用程序。主节点作为控制平面,工作节点为实际工作负载提供环境。 +> 你是否在寻找一份在 Debian 11(Bullseye)上安装 Kubernetes 集群的简易指南? -##### 前置条件 +这份分步指南将向你展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。 + +Kubernetes(k8s)集群包含主控节点和工作节点,用于运行容器化的应用程序。主控节点作为控制平面,工作节点为实际工作负载提供环境。 + +前置条件: * 已安装 Debian 11 * 2 CPU / vCPU @@ -24,27 +27,27 @@ Kubernetes(k8s)集群包含主节点和工作节点,用于运行容器化 * 有管理员权限的 sudo 用户 * 稳定的网络连接 -##### Lab 配置 +实验环境配置: 在本文中,我使用了 3 个 Debian 11 系统的节点,配置如下 -* Master Node (k8s-master) – 192.168.1.236 -* Worker Node 1 (k8s-worker1) – 192.168.1.237 -* Worker Node 2 (k8s-worker2) – 192.168.1.238 +* 主控节点(`k8s-master`) – 192.168.1.236 +* 工作节点 1(`k8s-worker1`) – 192.168.1.237 +* 工作节点 2(`k8s-worker2`) – 192.168.1.238 事不宜迟,我们直接进入安装步骤。 -### 1 ) 设置主机名和更新 /etc/hosts 文件 +### 1、设置主机名和更新 /etc/hosts 文件 -在主节点和工作节点上使用 hostnamectl 命令来设置主机名。 +在主控节点和工作节点上使用 `hostnamectl` 命令来设置主机名: ``` -$ sudo hostnamectl set-hostname "k8s-master"       // Run on master node -$ sudo hostnamectl set-hostname "k8s-worker1"      // Run on 1st worker node -$ sudo hostnamectl set-hostname "k8s-worker2"      // Run on 2nd worker node +$ sudo hostnamectl set-hostname "k8s-master"       // 在主控节点运行 +$ sudo hostnamectl set-hostname "k8s-worker1"      // 在工作节点 1 运行 +$ sudo hostnamectl set-hostname "k8s-worker2"      // 在工作节点 2 运行 ``` -在所有节点的 /etc/hosts 文件末尾添加下面几行内容, +在所有节点的 `/etc/hosts` 文件末尾添加下面几行内容: ``` 192.168.1.236       k8s-master @@ -52,20 +55,20 @@ $ sudo hostnamectl set-hostname "k8s-worker2"      // Run on 2nd worker nod 192.168.1.238       k8s-worker2 ``` -### 2) 在所有节点上关闭交换分区 +### 2、在所有节点上关闭交换分区 -我推荐关闭交换分区,以便更丝滑地使用 kubelet。在所有节点上执行以下命令来关闭交换分区。 +我推荐关闭交换分区,以便更丝滑地使用 `kubelet`。在所有节点上执行以下命令来关闭交换分区: ``` $ sudo swapoff -a $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ``` -### 3) 配置 Kubernetes 集群相关的防火墙规则 +### 3、配置 Kubernetes 集群相关的防火墙规则 -如果你的操作系统防火墙是打开的,请分别在主节点和工作节点允许以下的端口。 +如果你的操作系统防火墙是打开的,请分别在主控节点和工作节点允许以下的端口。 -在主节点,执行 +在主控节点,执行: ``` $ sudo ufw allow 6443/tcp @@ -78,7 +81,7 @@ $ sudo ufw allow 10255/tcp $ sudo ufw reload ``` -在工作节点,执行 +在工作节点,执行: ``` $ sudo ufw allow 10250/tcp @@ -86,13 +89,13 @@ $ sudo ufw allow 30000:32767/tcp $ sudo ufw reload ``` -注意:如果你的 Debian 11系统防火墙是关闭的,可以跳过此步骤。 +注意:如果你的 Debian 11 系统防火墙是关闭的,可以跳过此步骤。 -### 4) 在所有节点安装 Containerd 运行时 +### 4、在所有节点安装 Containerd 运行时 -Containerd 是容器运行时的行业标准,所有节点必须安装 containerd。 +Containerd 是容器运行时的行业标准,所有节点必须安装 Containerd。 -先在所有节点上配置如下的核心参数,再安装 containerd。 +先在所有节点上配置如下的核心参数,再安装 Containerd。 ``` $ cat </dev/null 2>&1 ``` -在所有节点上设置 cgroupdriver 为 systemd, - -编辑 “/etc/containerd/config.toml” 文件,找到 ‘[plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options]’ 部分,添加一行内容:SystemdCgroup = true +在所有节点上设置 `cgroupdriver` 为 `systemd`,编辑 `/etc/containerd/config.toml` 文件,找到 `[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]` 部分,添加一行内容:`SystemdCgroup = true`: ``` $ sudo vi /etc/containerd/config.toml @@ -141,16 +142,16 @@ $ sudo vi /etc/containerd/config.toml 保存并退出文件。 -在所有节点上重启并打开 containerd service。 +在所有节点上重启并启用 `containerd` 服务: ``` $ sudo systemctl restart containerd $ sudo systemctl enable containerd ``` -### 5) 添加 Kubernetes Apt 库 +### 5、添加 Kubernetes Apt 库 -执行以下命令,添加 Kubernetes Apt 库 +执行以下命令,添加 Kubernetes Apt 库: ``` $ sudo apt install gnupg gnupg2 curl software-properties-common -y @@ -158,9 +159,9 @@ $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dea $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" ``` -### 6) 在所有节点上安装 Kubelet, Kubectl 和 Kubeadm +### 6、在所有节点上安装 kubelet、kubectl 和 kubeadm -在所有节点上执行以下 apt 命令,安装 Kubernetes 集群组件,如 kubelet,kubectl 以及 Kubeadm。 +在所有节点上执行以下 `apt` 命令,安装 Kubernetes 集群组件,如 `kubelet`、`kubectl` 以及 `kubeadm`。 ``` $ sudo apt update @@ -168,21 +169,21 @@ $ sudo apt install kubelet kubeadm kubectl -y $ sudo apt-mark hold kubelet kubeadm kubectl ``` -### 7) 使用 Kubeadm 创建 Kubernetes 集群 +### 7、使用 Kubeadm 创建 Kubernetes 集群 -现在我们可以创建 Kubernetes 集群了,在主节点上执行以下命令 +现在我们可以创建 Kubernetes 集群了,在主控节点上执行以下命令: ``` $ sudo kubeadm init --control-plane-endpoint=k8s-master ``` -命令输出 +命令输出: ![Kubernetes-Control-Plane-Initialization-Debian11][2] 出现以上内容,说明控制平面初始化成功。在输出中,有普通用户与集群交互的命令,也有把任何工作节点加入到集群的命令。 -要开始与集群进行交互,请在主节点上运行以下命令。 +要开始与集群进行交互,请在主控节点上运行以下命令: ``` $ mkdir -p $HOME/.kube @@ -190,36 +191,35 @@ $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` -执行以下 kubectl 命令来获取节点和集群的信息, +执行以下 `kubectl` 命令来获取节点和集群的信息: ``` $ kubectl get nodes $ kubectl cluster-info ``` -以上命令的输出 +以上命令的输出: ![Nodes-Cluster-Info-Kubectl][3] -通过执行 ‘Kubeadm join’ 命令来把两个工作节点加入到集群。 +通过执行 `kubeadm join` 命令来把两个工作节点加入到集群。 -注意:请从 ‘kubeadm init’ 命令的输出中复制完整的命令。在我的例子中,命令如下: +注意:请从 `kubeadm init` 命令的输出中复制完整的命令。在我的例子中,命令如下: ``` $ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \ -   --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17 ``` -在工作节点 1 上的输出如下 +在工作节点 1 上的输出如下: ![Worker-Node1-Join-Kunernetes-Cluster][4] -在工作节点 2 上的输出如下 +在工作节点 2 上的输出如下: ![Worker-Node2-Join-Kubernetes-Cluster][5] -在主节点上执行以下命令,检查节点的状态: +在主控节点上执行以下命令,检查节点的状态: ``` $ kubectl get nodes @@ -230,21 +230,21 @@ k8s-worker2   NotReady             2m19s   v1.25.0 $ ``` -为了使节点状态变为 ready,我们需要安装 POD 网络插件,如 Calico 或 flannel。 +为了使节点状态变为 `ready`,我们需要安装容器荚Pod网络插件,如 Calico 或 flannel。 -### 8) 安装 Calico Pod 网络插件 +### 8、安装 Calico Pod 网络插件 -在主节点上执行以下命令安装 calico: +在主控节点上执行以下命令安装 Calico: ``` $ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml ``` -输出 +输出: ![Install-calico-pod-network-addon-debian11][6] -在所有节点上执行以下命令,配置防火墙允许 Calico 的端口, +在所有节点上执行以下命令,配置防火墙允许 Calico 的端口: ``` $ sudo ufw allow 179/tcp @@ -255,7 +255,7 @@ $ sudo ufw allow 4789/udp $ sudo ufw reload ``` -执行以下命令检查下 Calico 的状态 +执行以下命令检查下 Calico 的状态: ``` $ kubectl get pods -n kube-system @@ -263,15 +263,15 @@ $ kubectl get pods -n kube-system ![Calico-Pods-Status-Kuberenetes-Debian11][7] -完美!现在再检查下节点状态。 +完美!现在再检查下节点状态: ![Nodes-status-after-calico-Installation][8] -非常棒!上面的输出说明主节点和工作节点的状态都是 ready。现在这个集群可以正常工作了。 +非常棒!上面的输出说明主控节点和工作节点的状态都是 `ready`。现在这个集群可以正常工作了。 -### 9) 检查 Kubernetes 集群安装是否正确 +### 9、检查 Kubernetes 集群安装是否正确 -我们尝试通过 deployment 命令来部署基于 nginx 的应用程序,来验证Kubernetes 集群的安装是否正确。执行以下命令: +我们尝试通过 `deployment` 命令来部署基于 Nginx 的应用程序,来验证 Kubernetes 集群的安装是否正确。执行以下命令: ``` $ kubectl create deployment nginx-app --image=nginx --replicas 2 @@ -283,9 +283,9 @@ $ kubectl describe svc nginx-web-svc ![Nginx-Based-App-Kubernetes-Cluster-Debian11][9] -使用以下的 curl 命令通过节点端口 30036 来访问基于 nginx 的应用程序。 +使用以下的 `curl` 命令通过节点端口 30036 来访问基于 nginx 的应用程序。 -注意:在 curl 命令中,两个工作节点的主机名都可以使用 +注意:在 `curl` 命令中,可以使用两个工作节点任一的主机名。 ``` $ curl http://k8s-worker1:30036 @@ -304,7 +304,7 @@ via: https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] 译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -320,3 +320,4 @@ via: https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/ [8]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nodes-status-after-calico-Installation.png [9]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nginx-Based-App-Kubernetes-Cluster-Debian11.png [10]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Access-Nginx-Based-App-via-NodePort-Kubernetes-Debian11.png +[0]: https://img.linux.net.cn/data/attachment/album/202211/30/091928zlxbvttw58x6rztw.jpg \ No newline at end of file From 76322b9184c0270070a20eab6483d003d7c6fb20 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 30 Nov 2022 11:27:03 +0800 Subject: [PATCH 2179/3123] RP @geekpi https://linux.cn/article-15303-1.html --- ...w to Install Cinnamon Desktop in Arch Linux.md | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) rename {translated/tech => published}/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md (80%) diff --git a/translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md b/published/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md similarity index 80% rename from translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md rename to published/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md index be6e7c36d3..58c85293ba 100644 --- a/translated/tech/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md +++ b/published/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md @@ -3,18 +3,21 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15303-1.html" 如何在 Arch Linux 中安装 Cinnamon 桌面 ====== -**Cinnamon 是 Linux Mint 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Cinnamon 桌面环境的步骤。** +![][0] -[Cinnamon 桌面环境][1]是 [Linux Mint][2] 的默认桌面风格。创建这个基于 GTK 的桌面环境是为了提供具有以前的 GNOME 的传统桌面风格(即 GNOME 3 之前的外观)。桌面本身很轻巧,非常人性化。因为它保留了经过时间考验的图标和菜单驱动的桌面行为,因此它被认为(与 Linux Mint 结合)是新 Linux 用户易于使用的桌面之一。 +> Cinnamon 是 Linux Mint 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Cinnamon 桌面环境的步骤。 + +[Cinnamon 桌面环境][1] 是 [Linux Mint][2] 的默认桌面风格。创建这个基于 GTK 的桌面环境是为了提供具有以前的 GNOME 的传统桌面风格(即 GNOME 3 之前的外观)。该桌面本身很轻巧,非常人性化。因为它保留了经过时间考验的图标和菜单驱动的桌面行为,因此它被认为(与 Linux Mint 结合)是新 Linux 用户易于使用的桌面之一。 尽管 Cinnamon 及其软件包与 Linux Mint 紧密结合,但该桌面可以作为单独的桌面环境安装在 Ubuntu、Fedora 或 Arch Linux 中。 + 在 Arch Linux 中安装 Cinnamon 相当容易,就像在 Arch 中安装其他桌面(例如 Xfce 和 KDE Plasma)一样。但它需要安装一些特定的软件包才能使其看起来像一个合适的 Cinnamon 桌面。 让我们开始吧。 @@ -23,7 +26,7 @@ #### 第 1 步:安装基本系统 -本指南假设你已经安装了基本的 Arch 系统。如果你没有安装基本系统,请按照[自动化 arch 安装指南][3](推荐方法)进行安装。然后按照以下步骤操作。 +本指南假设你已经安装了基本的 Arch 系统。如果你没有安装基本系统,请按照 [自动化 Arch 安装指南][3](推荐方法)进行安装。然后按照以下步骤操作。 #### 第 2 步:更新你的系统 @@ -35,7 +38,7 @@ pacman -Syu #### 第 3 步:安装 yay AUR 助手 -配置 Cinnamon 所需的某些包在 Arch 官方仓库中不可用。它们在 Arch 用户仓库 (AUR) 中。因此,你需要安装 yay 以获得额外的软件包。按照[本指南安装 yay AUR 助手][4]。 +配置 Cinnamon 所需的某些包在 Arch 官方仓库中不可用。它们在 Arch 用户仓库(AUR)中。因此,你需要安装 yay 以获得额外的软件包。按照 [本指南安装 yay AUR 助手][4]。 #### 第 4 步:在 Arch Linux 中安装 Cinnamon 桌面 @@ -45,7 +48,7 @@ pacman -Syu sudo pacman -S cinnamon gnome-terminal ``` -安装显示服务器和显示管理器。LightDM 是轻量级的,非常适合 Cinnamon。不过,你可以使用任何其他显示管理器,例如 SDDM 或 GDM。但我建议你坚持使用 lightdm。 +安装显示服务器和显示管理器。LightDM 是轻量级的,非常适合 Cinnamon。不过,你可以使用任何其他显示管理器,例如 SDDM 或 GDM。但我建议你坚持使用 Lightdm。 ``` sudo pacman -S xorg lightdm lightdm-gtk-greeter @@ -62,7 +65,7 @@ systemctl enable NetworkManager #### 第 5 步:配置 Cinnamon 桌面 -成功重启后,你应该会看到 lightdm 登录提示。使用你在安装基本系统时可能已创建的用户名和密码登录。 +成功重启后,你应该会看到 Lightdm 登录提示。使用你在安装基本系统时可能已创建的用户名和密码登录。 当我第一次登录基本的 Cinnamon 桌面时,它看起来非常平淡。所以它需要一些定制。 @@ -80,7 +83,7 @@ sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol firefox vlc gimp xfburn th sudo pacman -S mate-icon-theme-faenza ``` -numix 主题需要安装 yay。在运行以下命令安装之前,请确保按照[该指南][4]安装 yay AUR 助手程序。 +numix 主题需要安装 yay。在运行以下命令安装之前,请确保按照 [该指南][4] 安装 yay AUR 助手程序。 ``` yay -S numix-themes @@ -96,7 +99,7 @@ yay -S numix-themes ![其他主题供你下载][8] -将默认的 GNOME 壁纸(Cinnamon 附带)更改为你喜欢的内容。本指南使用来自 [cinnamon-look.org][9] 的 Cinnamon logo 壁纸。 +将默认的 GNOME 壁纸(Cinnamon 附带)更改为你喜欢的内容。本指南使用来自 [cinnamon-look.org][9] 的 Cinnamon 徽标壁纸。 如果一切顺利,你的桌面应该如下所示。 @@ -104,7 +107,7 @@ yay -S numix-themes ![在 Arch Linux 中运行的 Cinnamon 桌面][11] -因此,在 Arch Linux 中安装和配置 Cinnamon 桌面的基本步骤到此结束。你可能想要添加其他设置,例如 desklets 等。 +因此,在 Arch Linux 中安装和配置 Cinnamon 桌面的基本步骤到此结束。你可能想要添加其他设置,例如桌面小程序等。 ### 结束语 @@ -117,7 +120,7 @@ via: https://www.debugpoint.com/cinnamon-arch-linux-install/ 作者:[Arindam][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/) 荣誉推出 @@ -134,3 +137,4 @@ via: https://www.debugpoint.com/cinnamon-arch-linux-install/ [9]: https://www.cinnamon-look.org/browse/cat/ [10]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-in-Arch-Linux-1024x535.jpg [11]: https://www.debugpoint.com/wp-content/uploads/2021/02/Cinnamon-Desktop-Running-in-Arch-Linux-1024x640.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202211/30/112417w4nrt4cii4hiidti.jpg \ No newline at end of file From e426569424e04d0eb8e9845ce4514864294d2aa8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 30 Nov 2022 12:49:37 +0800 Subject: [PATCH 2180/3123] RP @wxy https://linux.cn/article-15304-1.html --- ...wn Open Source Engine for a Strong Comeback.md | 107 ++++++++++++++++++ ...wn Open Source Engine for a Strong Comeback.md | 103 ----------------- 2 files changed, 107 insertions(+), 103 deletions(-) create mode 100644 published/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md delete mode 100644 sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md diff --git a/published/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md b/published/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md new file mode 100644 index 0000000000..2f76cd89de --- /dev/null +++ b/published/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md @@ -0,0 +1,107 @@ +[#]: subject: "Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback" +[#]: via: "https://news.itsfoss.com/midori-astiango/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15304-1.html" + +Midori 浏览器将整合自己的开源搜索引擎强势归来 +====== + +> Midori 网页浏览器还是活跃的,即将到来的更新整合了一个开源搜索引擎! + +![](https://news.itsfoss.com/content/images/size/w2000/2022/11/midori-browser-astiango.jpg) + +几年前,Midori 是一个相当受欢迎的轻量级开源网页浏览器。 + +有些人认为它已经终止了,不知道它是否还在活动。 + +**好消息是:** + +作为一个 **自由开源的** 产品,**Midori 网页浏览器是活跃的(在测试阶段)**、[可用的][1] 。 + +它是一个基于 Chromium 的以 Electron 构建的浏览器,但没有谷歌的东西和隐私保护功能。 + +> 💡 2019 年,该项目被终止,并与 Astian 合并为一个移动浏览器,当时我们并没有立即得到消息该浏览器是否将卷土重来或保持开源。 + +此外,在即将到来的浏览器更新中,他们计划将自己的开源搜索引擎 **AstianGO** 与之整合。🤯 + +这与 Brave(及其搜索引擎)有些类似,但 **Brave Search 不是开源的**。 + +### AstianGO:开源搜索引擎 + +在一个 [Reddit 帖子][3] 中,来自 Astian 的某个人宣布计划在 Midori 网页浏览器中集成一个开源搜索引擎,即 [AstianGO][4],并在下次更新时加入。 + +源代码还没有发布,应该可以通过 [这个 GitLab 页面][5] 获得。 + +![Astiango][6] + +透露的细节不多,但以下是他们提到的内容: + +> 我们已经实现并开发了一个完全开源的搜索引擎,没有使用第三方的 API,它不存储用户的 IP 地址,不存储搜索历史。我们把这个搜索引擎称为 **AstianGO**,这个搜索引擎是用 PHP 开发的,它是自我托管的,尽管它还没有一个集成的更新系统,人们可以把它部署在他们的服务器上。 + +该搜索引擎使用来自谷歌、Qwant 和 Brave Search 的数据来提供结果。你可以看看它的 [FAQ][7] 来了解它的工作原理。 + +其他的浏览器,有些集成了以隐私为重点的搜索引擎,有些承诺提供隐私保护功能。 + +![][8] + +当然,这个搜索引擎看起来是一个正在进行的工作。 + +但是,一个**开源的网页浏览器,带有隐私保护的搜索引擎**(也是开源的),可能对大多数用户来说是带有太多不确定性。 + +![Midori 浏览器][9] + +Midori 的目标是通过这一补充来改变这一状况。 + +### Midori 网页浏览器的状态 + +这听起来不错,**但我认为这并没有充分的计划。** + +有一个 **AppImage** 和一个 **.deb包** 可用。它也可用于其他平台。 + +我试着从它的 [下载页面][10] 安装 Midori 浏览器(.deb 包),但我无法在 Ubuntu 22.04 LTS 上安装它 🚫 + +AppImage 文件可以使用 ✅ + +下载页面没有反映出所有的信息来告知 Linux 发行版的支持情况;它只是提到了 **Debian x64**,并没有完全翻译成英文。 + +![][11] + +所以,**我不确定我们是否可以推荐使用该浏览器**。 + +当然,考虑到它还在测试阶段,你不应该依赖它。你可以浏览它的 [GitLab 页面][12] 来了解更多。 + +### 思考? + +我认为一个新的开源搜索引擎是一件好事。我仍然不确定 Linux 的 Midori 网页浏览器是否可以推荐,我需要通过测试才能在将来推荐它。 + +_是这个开源搜索引擎更让你兴奋,还是浏览器?请在下面的评论中告诉我你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/midori-astiango/ + +作者:[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://astian.org/en/midori-browser/ +[2]: https://astian.org +[3]: https://www.reddit.com/r/opensource/comments/z44jut/midori_browser_now_with_its_own_search_engine/ +[4]: https://astiango.com +[5]: https://gitlab.com/astiango/astian-search/ +[6]: https://news.itsfoss.com/content/images/2022/11/astiango.jpg +[7]: https://astiango.com/faq.php +[8]: https://news.itsfoss.com/content/images/2022/11/astiango.png +[9]: https://news.itsfoss.com/content/images/2022/11/midori-screenshot.png +[10]: https://astian.org/download/midori-browser-for-debian-x64/ +[11]: https://news.itsfoss.com/content/images/2022/11/midori-download.png +[12]: https://gitlab.com/midori-web/midori-desktop diff --git a/sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md b/sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md deleted file mode 100644 index af1f94d14c..0000000000 --- a/sources/news/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md +++ /dev/null @@ -1,103 +0,0 @@ -[#]: subject: "Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback" -[#]: via: "https://news.itsfoss.com/midori-astiango/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback -====== - -Midori was a decently popular lightweight open-source web browser a few years back. - -Some of us thought it was discontinued and did not know if it was active. - -**Good news!** - -**Midori web browser is active (in beta)** and [available][1] as a **free and open-source** offering. - -It is an electron-powered browser based on Chromium without Google stuff and privacy protection features. - -> 💡 In 2019, the project got discontinued and merged with [Astian][2] as a mobile browser, where we did not get immediate clarification if the browser would be making a comeback or remain open-source. - -Additionally, with the upcoming update to the browser, they plan to integrate their own open-source search engine **AstianGO** with it. 🤯 - -This is somewhat similar to Brave (and its search engine), but **Brave Search is not open-source**. - -### AstianGO: Open-Source Search Engine - -In a [Reddit post][3], someone from Astian announced the plan to add an integrated open-source search engine, i.e., [AstianGO][4], in the Midori web browser with the next update. - -The source code is not yet available and should be available through [this GitLab page][5]. - -![astiango][6] - -The details are slim, but here's what they mention: - -> We have implemented and developed a fully open source search engine, without the use of third-party APIs, which does not store the IP address of the users, does not store the search history. We have called this search engine, ****AstianGO****, this search engine is developed in PHP, it is self-hosting, although it does not have an integrated update system yet, people can deploy it on their servers. - -The search engine uses data from Google, Qwant, and Brave Search to serve results. You can look at its [FAQ][7] to understand how it works. - -Regarding other browsers, some have a privacy-focused search engine integrated, and some promise privacy protection features. - -![][8] - -Sure, the search engine looks like a work in progress. - -But, an **open-source web browser with a privacy-friendly search engine** (also open-source) is probably unknown to most users. - -![midori browser][9] - -Midori aims to change that with this addition. - -### Midori Web Browser Status - -That sounds all good, **but I think this is not adequately planned out.** - -There is an **AppImage** and a **.deb package** available. It is also available for other platforms. - -I tried to install the Midori browser (.deb package)from its [download page][10], and I could not install it on Ubuntu 22.04 LTS 🚫 - -The AppImage file worked ✅ - -The download page does not reflect all the information to inform Linux distro support; it just mentions "**Debian x64**" and is not entirely translated into English. - -![][11] - -So, **I'm not sure we can recommend using the browser yet**. - -Of course, considering it is in beta, you should not rely on it. You can explore its [GitLab page][12] to know more. - -### Thoughts? - -I think a new open-source search engine is a good thing. I'm still not sure about Midori web browser for Linux, I need to test things through to recommend it in future. - -_Is the open-source search engine more exciting to you or the browser? Let me know your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/midori-astiango/ - -作者:[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://astian.org/en/midori-browser/ -[2]: https://astian.org -[3]: https://www.reddit.com/r/opensource/comments/z44jut/midori_browser_now_with_its_own_search_engine/ -[4]: https://astiango.com -[5]: https://gitlab.com/astiango/astian-search/ -[6]: https://news.itsfoss.com/content/images/2022/11/astiango.jpg -[7]: https://astiango.com/faq.php -[8]: https://news.itsfoss.com/content/images/2022/11/astiango.png -[9]: https://news.itsfoss.com/content/images/2022/11/midori-screenshot.png -[10]: https://astian.org/download/midori-browser-for-debian-x64/ -[11]: https://news.itsfoss.com/content/images/2022/11/midori-download.png -[12]: https://gitlab.com/midori-web/midori-desktop From c5b83f54eb4c0f82f1285b61dde6b90710e0d31f Mon Sep 17 00:00:00 2001 From: chai001125 <1637519169@qq.com> Date: Wed, 30 Nov 2022 14:04:22 +0800 Subject: [PATCH 2181/3123] translated --- ...en-Source Signal Protocol for Encrypted DMs.md | 83 ------------------ ...en-Source Signal Protocol for Encrypted DMs.md | 85 +++++++++++++++++++ 2 files changed, 85 insertions(+), 83 deletions(-) delete mode 100644 sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md create mode 100644 translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md diff --git a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md deleted file mode 100644 index 1bc7c40341..0000000000 --- a/sources/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md +++ /dev/null @@ -1,83 +0,0 @@ -[#]: subject: "Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs" -[#]: via: "https://news.itsfoss.com/twitter-signal/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs -====== - -Earlier this year, Elon Musk [tweeted][1] that Twitter DMs needed end-to-end encryption like Signal. - -Even back in 2016, **Edward Snowden**[asked][2]**Jack Dorsey**, former CEO and Co-Founder of Twitter, to add something similar to the platform. - -But, it never came to be. It was probably tested but never implemented. - -With a recent announcement (kind of), this seems to be coming to fruition😌 - -Elon shared a few slides from his company talks, which included '**Encrypted DMs**' for the platform with the Twitter 2.0 roadmap. - -### 🔒 Signal Protocol to Twitter DMs - -![twitter encrypted dms][3] - -While some tinkerers like [Jane Manchun Wong][4](security researcher) found code references to the [Signal Protocol][5] in Twitter's iOS and Android applications. - -Elon Musk confirmed the plan for it in a [tweet][6] about the improvements set to come to the platform under the '**Twitter 2.0**' roadmap. - -In other words, Elon confirmed that encrypted DMs are coming soon. - -![twitter dm signal protocol][7] - -**For those who don't know:** Signal Protocol is an open-source cryptographic protocol that allows the implementation of end-to-end encryption in a perfect forward secrecy ([PFS][8]) manner. - -The protocol uses a '_Double Ratchet algorithm_' where two parties exchange encrypted messages based on a constantly changing shared secret key. - -This ensures that no third party can access the message's contents, as the shared keys only exist on the devices of the two parties. - -The [Signal][9] app makes the best of it. However, you do have several privacy-focused alternatives if you want to explore: - -[Looking to Ditch WhatsApp? Here are 5 Better Privacy Alternatives to WhatsApp][10] - -**How can it help with Twitter DMs?** - -Well, it can make Twitter a more secure platform by preventing malicious actors and governments from snooping around the messages of Twitter users. - -The implementation of Encrypted DMs can be beneficial for whistleblowers, journalists, and activists who are constantly at risk of being censored or targeted for their work. - -Sure, encrypted DMs may not be the most extreme protection measure in terms of privacy. **But it is better than nothing.** - -### 🔏 Encrypted Messaging Should be the Standard - -In these turbulent times, we see more malicious actors trying to gain unauthorized access to sensitive information than ever before. - -Support for End-to-end encryption should be the de facto standard for all messaging platforms, and I hope that Twitter adds it soon. - -_Thoughts? Feel free to share what you think in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/twitter-signal/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://twitter.com/elonmusk/status/1519469891455234048 -[2]: https://twitter.com/Snowden/status/808736772830195713 -[3]: https://news.itsfoss.com/content/images/2022/11/Encrypted_DM_Twitter.jpg -[4]: https://twitter.com/wongmjane -[5]: https://github.com/signalapp/libsignal -[6]: https://twitter.com/elonmusk/status/1596718851097755648 -[7]: https://news.itsfoss.com/content/images/2022/11/Signal_Protocol_Twitter.jpg -[8]: https://en.wikipedia.org/wiki/Forward_secrecy -[9]: https://signal.org/en/ -[10]: https://itsfoss.com/private-whatsapp-alternatives/ diff --git a/translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md new file mode 100644 index 0000000000..94754d9ab7 --- /dev/null +++ b/translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md @@ -0,0 +1,85 @@ +[#]: subject: "Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs" +[#]: via: "https://news.itsfoss.com/twitter-signal/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +埃隆马斯克的推特将添加开源 Signal 协议,实现加密私信 +====== + +今年早些时候,埃隆马斯克 [在推特上表示][1]:Twitter 的 私信 Direct Messages (DM)需要像 Signal 协议这样的 端到端加密 End-to-End Encryption 。 + +早在 2016 年,**爱德华·斯诺登**就 [要求][2] Twitter 的前首席执行官兼联合创始人**杰克·多尔西**添加 Signal 协议类似的安全措施到 Twitter 平台。 + +但是,这个协议从来没有被添加到 Twitter。它可能经过测试但还未部署实施。 + +根据最近的公告,Twitter 似乎即将实现这个安全协议😌。 + +Elon 分享了他在公司演讲中的几张幻灯片,其中就包括为 Twitter 2.0 路线图规划的“**加密私信**”。 + +### 🔒 Twitter 通信的 Signal 协议 + +![twitter encrypted dms][3] + +虽然有一些安全研究员,例如 [黄文津][4],已经在 Twitter 的 iOS 和 Android 应用程序中发现了对 [Signal 协议][5] 的代码引用。 + +但是直到现在,埃隆马斯克才在 [推文][6] 中确认了该计划,该推文介绍了根据 **“Twitter 2.0”** 路线图将对 Twitter 平台进行的改进。 + +换句话说,埃隆马斯克正式确认 Twitter 即将推出**加密的私信**。 + +![twitter dm signal protocol][7] + +**对于那些不知道 Signal 协议的人**,我们简要地介绍一下 Signal 协议:Signal 协议是一种开源的加密协议,它允许以 完全前向保密 ([PFS][8]) perfect forward secrecy 方式实施端到端加密。 + +该协议使用 “_双棘轮算法_” Double Ratchet algorithm ,通信双方根据不断变化的共享密钥,来交换加密的消息。 + +这确保没有第三方可以得到通信消息的内容,因为共享密钥仅存在于通信双方的设备上。 + +[Signal][9] 应用程序充分利用了这个方法。但是,进一步来说,还有几个以隐私为中心的替代方案: + +[不想用 WhatsApp 这一通讯软件?这是 WhatsApp 的 5 种更好的隐私替代方案][10] + +(LCTT 译注:Signal 协议是一种真正的端到端加密的通讯协议,号称是世界上最安全的通讯协议。只有参与通讯的用户可以读取并解密信息,而任何第三方(包括服务器)都无法查看到通讯的内容。总的来说,它可以防止潜在的窃听者(包括:通信服务商、互联网服务提供商甚至是该通讯系统的提供者),获取能够用以解密通讯内容的密钥。目前有大量即时通讯软件也使用或借鉴参考了 Signal 协议,例如:Skype、What’sApp、Facebook Messenger) + +**Signal 协议如何帮助 Twitter DM?** + +它可以防止恶意攻击者和政府去窥探 Twitter 用户的消息,从而使 Twitter 成为一个更加安全的平台。 + +Twitter 添加加密私信会对举报人、记者和社会活动家有益,因为他们经常会因其工作而面临被审查或成为攻击目标。 + +诚然,就隐私而言,加密私信可能不是最严厉的保护措施。但**有总比没有好**。 + +### 🔏 加密消息应该成为通讯软件的标准 + +在这个动荡的信息时代,我们看到更多的恶意攻击者试图未经授权访问敏感信息。 + +端到端加密应成为所有通讯软件的必要标准,我希望 Twitter 能够尽快添加它。 + +_你有什么想法吗?请在下面的评论区中分享你的想法吧。_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/twitter-signal/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://twitter.com/elonmusk/status/1519469891455234048 +[2]: https://twitter.com/Snowden/status/808736772830195713 +[3]: https://news.itsfoss.com/content/images/2022/11/Encrypted_DM_Twitter.jpg +[4]: https://twitter.com/wongmjane +[5]: https://github.com/signalapp/libsignal +[6]: https://twitter.com/elonmusk/status/1596718851097755648 +[7]: https://news.itsfoss.com/content/images/2022/11/Signal_Protocol_Twitter.jpg +[8]: https://en.wikipedia.org/wiki/Forward_secrecy +[9]: https://signal.org/en/ +[10]: https://itsfoss.com/private-whatsapp-alternatives/ From cff9d525f88950ded80b3450a47b6d200a255b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:44:19 +0800 Subject: [PATCH 2182/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221129.0=20=E2=AD=90=EF=B8=8F=20VLC=203.0.18=20Rel?= =?UTF-8?q?ease=20Brings=20RISC-V=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... VLC 3.0.18 Release Brings RISC-V Support.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md diff --git a/sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md b/sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md new file mode 100644 index 0000000000..5212d2c853 --- /dev/null +++ b/sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md @@ -0,0 +1,94 @@ +[#]: subject: "VLC 3.0.18 Release Brings RISC-V Support" +[#]: via: "https://news.itsfoss.com/vlc-3-0-18-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +VLC 3.0.18 Release Brings RISC-V Support +====== + +VLC 3.0.18 finally adds RISC-V support among other improvements. + +![VLC 3.0.18 Release Brings RISC-V Support][1] + +VLC Media Player is a popular open-source and cross-platform media player by VideoLAN that has been around for quite some time. Undoubtedly, it's also one of the best media players for Linux. + +VLC's latest maintenance update, specifically v3.0.18, includes a set of enhancements and bug fixes. + +Let's look at some of the key highlights of this release. + +### VLC 3.0.18: What's New? + +![][2] + +- **Support for RISC-V architecture** +- **Significant updates to adaptive streaming, including multiple timelines and WebVTT (Web Video Text Tracks Format)** +- **Y16 chroma support** +- **DVBSub support inside MKV files** + +#### RISC-V Support + +Users with devices based on the RISC-V hardware can now enjoy using VLC. + +If you're not aware, RISC-V is a popular open-source hardware architecture. And you can expect more hardware to feature RISC-V in the near future. + +#### Other Changes + +As briefed above, there are several other enhancements as well, these include: + +- Improved FTP compatibility +- Better playback of FLAC files +- Improved seeking in OGG and fragmented MP4 files + +Tons of bugs were fixed as well. Here are some of the most notable ones that were addressed. + +- Video-related issues and crashes related to OpenGL, DirectX and VAAPI +- Performance and rendering issues with older graphics cards +- Password search in the KWallet module +- Throttled YouTube video playback using a Lua script + +Some native bugs related to the macOS have also been addressed. + +- 10-bit accelerated video filters +- Inaccurate translations +- Decoding errors on HEVC files + +On the other hand, Windows users should see fixes for UPnP and Windows Media Player compatibility. + +Check out the [official changelog][3] for detailed information. + +### Download VLC 3.0.18 + +For now, the latest version is only available through [Flathub][4]. You cannot find the latest packages for Windows/macOS on the website yet. + +However, you can get the source tarball through the [official website][5] (thanks to [9to5Linux][6] for spotting this) + +Hopefully, VLC's official site gets updated soon to reflect the latest maintenance release. + +Ubuntu users can check out our step-by-step guide too if you need help: + +[How to Install VLC in Ubuntu Linux [Latest Release]][7] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vlc-3-0-18-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w300/2022/11/vlc-3-0-18-release.png +[2]: https://news.itsfoss.com/content/images/2022/11/VLC-v3-0-18.png +[3]: https://code.videolan.org/videolan/vlc/-/raw/3.0.x/NEWS +[4]: https://flathub.org/apps/details/org.videolan.VLC +[5]: https://download.videolan.org/pub/videolan/vlc/3.0.18/ +[6]: https://9to5linux.com/vlc-3-0-18-is-out-with-risc-v-support-dvbsub-support-inside-mkv-smbv2-improvements +[7]: https://itsfoss.com/install-latest-vlc/ From 3b20a6c01857eefd28f64fc91c846a4effb93ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:45:46 +0800 Subject: [PATCH 2183/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221129.1=20=E2=AD=90=EF=B8=8F=20Bodhi=20Linux=207.?= =?UTF-8?q?0.0=20Testing=20Begins=20with=20New=20Features,=20Packages.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Testing Begins with New Features, Packages.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md diff --git a/sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md b/sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md new file mode 100644 index 0000000000..d14062bf06 --- /dev/null +++ b/sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md @@ -0,0 +1,58 @@ +[#]: subject: "Bodhi Linux 7.0.0 Testing Begins with New Features, Packages" +[#]: via: "https://debugpointnews.com/bodhi-linux-7-0-0-testing/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Bodhi Linux 7.0.0 Testing Begins with New Features, Packages +====== + +**Bodhi Linux team started the testing phase with its recent Alpha packages for the upcoming Bodhi Linux 7.0.0 release.** + +![Bodhi Linux 7.0.0 Desktop][1] + +Bodhi Linux is based on Ubuntu LTS and features the Enlightenment-based Moksha desktop environment. Moksha desktop is lightweight while being an eye-candy desktop. In addition, it only includes base applications to get you started. + +The current Bodi Linux 6 series is based on Ubuntu 20.04 LTS and was released in 2021, just following the release of Ubuntu 20.04 LTS. The upcoming Bodhi Linux 7.0.0 will be based on Ubuntu 22.04 LTS, which was released in April this year, bringing all the stable and refreshed packages from the Ubuntu base. + +At its core, it is based on Linux Kernel 5.15 LTS aligned with Ubuntu 22.04. With that, you get the improved Mokhsna desktop environment based on the latest Enlightenment desktop/Enlightenment foundation library (efl). + +Since the official change log is not yet available, here’s a quick summary of the versions you get in this release. + +### Summary of Bodhi Linux 7.0.0 (tentative) + +- Based on Ubuntu 22.04 LTS, Jammy Jellyfish +- Linux Kernel 5.15 LTS +- Enlightenment Foundation Library (efl) 1.26.99 +- Moksha Desktop 0.4.0 +- Python 3.10 +- Systemd 249.11 + +### Download + +The team suggested that this pre-release version is unstable and should not be used for your daily work. However, if you want to give it a spin, you can download it from the below link. + +[Download][2] + +### Timelines + +The Alpha testing phase should go on for about two months, and then a release candidate version. And the final release after that. Timeline-wise, as per the historical records – alpha testing goes on for about two months and a month of RC testing. So, that gives a tentative final release date of February 2023-end or beginning of March 2023. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/bodhi-linux-7-0-0-testing/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/11/Bodhi-Linux-7.0.0-Desktop.jpg +[2]: https://sourceforge.net/projects/bodhidev/files/7.0.0-alpha/ From ca24ae2a4ed9e8864eff20b7971e82cc4588b96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:51:26 +0800 Subject: [PATCH 2184/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221129.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Parse=20arguments=20with=20Lua.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0221129.3 ⭐️⭐️ Parse arguments with Lua.md | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md diff --git a/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md new file mode 100644 index 0000000000..b44bf66c2d --- /dev/null +++ b/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md @@ -0,0 +1,122 @@ +[#]: subject: "Parse arguments with Lua" +[#]: via: "https://opensource.com/article/22/11/lua-command-arguments" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Parse arguments with Lua +====== + +Most computer commands consist of two parts: The command and arguments. The command is the program meant to be executed, while the arguments might be command options or user input. Without this structure, a user would have to edit the command's code just to change the data that the command processes. Imagine rewriting the [printf][1] command just to get your computer to greet you with a "hello world" message. Arguments are vital to interactive computing, and the [Lua programming language][2] provides the `{…​}` expression to encapsulate varargs given at the time of launching a Lua script. + +### Use arguments in Lua + +Almost every command given to a computer assumes an argument, even if it expects the argument to be an empty list. Lua records what's written after it launches, even though you may do nothing with those arguments. To use arguments provided by the user when Lua starts, iterate over the `{…​}` table: + +``` +local args = {...} + +for i,v in ipairs(args) do +    print(v) +end +``` + +Run the code: + +``` +$ lua ./myargs.lua +$ lua ./myargs.lua foo --bar baz +foo +--bar +baz +---- +``` + +Having no arguments is safe, and Lua prints all arguments exactly as entered. + +### Parse arguments + +For simple commands, the basic Lua faculties are sufficient to parse and process arguments. Here's a simple example: + +``` +-- setup + +local args = {...} + +-- engine + +function echo(p) + print(p) +end + +-- go + +for i,v in ipairs(args) do + print(i .. ": " .. v) +end + +for i,v in ipairs(args) do + if args[i] == "--say" then + echo("echo: " .. args[i+1]) + end +end +``` + +In the `setup` section, dump all command arguments into a variable called `args`. + +In the `engine` section, create a function called `echo` that prints whatever you "feed" into it. + +Finally, in the `go` section, parse the index and values in the `args` variable (the arguments provided by the user at launch). In this sample code, the first `for` loop just prints each index and value for clarity. + +The second `for` loop uses the index to examine the first argument, which is assumed to be an option. The only valid option in this sample code is `--say`. If the loop finds the string `--say`, it calls the `echo` function, and the index of the current argument _plus 1_ (the _next_ argument) is provided as the function parameter. + +The delimiter for command arguments is one or more empty spaces. Run the code to see the result: + +``` +$ lua ./echo.lua --say zombie apocalypse +1: --say +2: zombie +3: apocalypse +echo: zombie +``` + +Most users learn that spaces are significant when giving commands to a computer, so dropping the third argument, in this case, is expected behavior. Here's a variation to demonstrate two valid "escape" methods: + +``` +$ lua ./echo.lua --say "zombie apocalypse" +1: --say +2: zombie apocalypse +echo: zombie apocalypse + +$ lua ./echo.lua --say zombie\ apocalypse +1: --say +2: zombie apocalypse +echo: zombie apocalypse +``` + +### Parse arguments + +Parsing arguments manually is simple and dependency-free. However, there are details you must consider. Most modern commands allow for short options (for instance, `-f`) and long options (`--foo`), and most offer a help menu with `-h` or `--help` or when a required argument isn't supplied. + +Using [LuaRocks][3] makes it easy to install additional libraries. There are some very good ones, such as [alt-getopt][4], that provide additional infrastructure for parsing arguments. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/lua-command-arguments + +作者:[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/article/20/8/printf +[2]: https://opensource.com/article/22/11/lua-worth-learning +[3]: https://opensource.com/article/19/11/getting-started-luarocks +[4]: https://opensource.com/article/21/8/parsing-commands-lua From 93da6e0ea6172c254d0e9e252d4d5dffa9a069c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:53:15 +0800 Subject: [PATCH 2185/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221129.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Set=20Up=20Pi-hole=20to=20Get=20an=20Ad-free=20Life.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to Set Up Pi-hole to Get an Ad-free Life.md | 262 ++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 sources/tech/20221129.5 ⭐️⭐️ How to Set Up Pi-hole to Get an Ad-free Life.md diff --git a/sources/tech/20221129.5 ⭐️⭐️ How to Set Up Pi-hole to Get an Ad-free Life.md b/sources/tech/20221129.5 ⭐️⭐️ How to Set Up Pi-hole to Get an Ad-free Life.md new file mode 100644 index 0000000000..0c8732bca5 --- /dev/null +++ b/sources/tech/20221129.5 ⭐️⭐️ How to Set Up Pi-hole to Get an Ad-free Life.md @@ -0,0 +1,262 @@ +[#]: subject: "How to Set Up Pi-hole to Get an Ad-free Life" +[#]: via: "https://itsfoss.com/setup-pi-hole/" +[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Set Up Pi-hole to Get an Ad-free Life +====== + +Pi-hole is a DNS-based advertisement blocker. Unlike a Chrome or Firefox extension, a Pi-hole can block ads even on your TV! So let’s see how to install and take advantage of this amazing tool! + +### What is Pi-hole? + +Pi-hole is a DNS Server. It blocks advertisement serving domains. Set it up on a dedicated Raspberry Pi or some other computer and then use its IP address as the DNS of your device. If you use it as DNS of your router, you’ll get an ad-free experience on all connected devices, even your smart TVs and smartphones. + +Want more details? Let me explain. + +A DNS Server tells your computer what the IP address for `google.com` is. Without a _valid_ IP address, your computer can not communicate over the Internet to another computer. + +Pi-hole has a list of domains that must be blocked. Once a computer queries Pi-hole’s DNS Server for the IP address for a website like `adservice.google.com`, if it is a domain that must be blocked, then, Pi-hole will respond back with an invalid IP address (which is usually `0.0.0.0`). + +Since “0.0.0.0” is not a valid IP address, your computer can never talk to the `adservice.google.com` website. This results in the blocking of advertisements. + +Set it at the router level and you go ad-free for your entire home network–yes, even for your “smart” devices like TV, toaster and washing machine–instead of being limited to your browser. + +### Setting up Pi-hole + +Using something like this requires some level of experience with the Linux command line, time and patience. It’s more of a [DIY Raspberry Pi project][1] but you can also use it with a normal computer running [Pi-hole][2] in a container. + +So, I’ll be discussing two methods of installing Pi-hole: + +- Automated install on a Raspberry Pi device +- Using Docker or Podman to run Pi-hole in a container + +Let us cover the easier method first method. + +#### Method 1: Automated installation of Pi-hole (requires Raspberry Pi) + +The automated installation is the simplest installation method for installing Pi-hole. It has a few requirements. The picture below mentions OS and hardware support. + +![Pi-hole support for hardware and Operating System][3] + +As you can see above, Pi-hole supports most of the popular Linux distributions. From my personal experience, Pi-hole does not consume more than ~100 MB of RAM and only uses less than 1% of CPU. Meaning it can even run on a [Raspberry Pi Zero W][4]! + +Now that you know which hardware is supported, let us start with the installation steps! + +To install Pi-hole using the automated installation method, all you need to do is run the following command. I understand that running a bash script downloaded from the internet is not usual but this is the official installation method. + +``` +curl -sSL https://install.pi-hole.net | bash +``` + +Once you run the above command, the Pi-hole installer will start and begin to install necessary dependencies and then prompt you with the following screen, indicating that the installer has begun. + +![Pi-hole installer's initial screen][5] + +PS: You can use your mouse to interact with this command line installer ;) + +As depicted from the message shown below, Pi-hole is a free and open source software that mainly relies on donations made by normal folks like you and me. If you find Pi-hole to be useful, please consider donating. [Here is the hyperlink to Pi-hole’s donations so you don’t have to type the URL yourself][6] ;) + +![Pi-hole is a FOSS project. Please donate if it helped you.][7] + +Next up, you will be asked if the computer on which Pi-hole is being installed has a static IP address for your Local Area Network or not. Since your computers need to know about Pi-hole’s IP address beforehand, it is best that the assigned IP address does not change. For more information on how to achieve this, please consult your router’s manual; look for the part with “static/reserved IP address”. + +![The Pi-hole installer recommends that the IP address of your computer is a static IP address.][8] + +Once you have a static IP assigned to the computer running the Pi-hole, press continue. In the next step you will be asked to choose a DNS provider. This is the server that is asked for [DNS Resolution][9]. Some of the most popular DNS providers are listed for you to choose from. + +Generally, I would recommend that you use either the “Quad9 (filtered, ECS, DNSSEC)” option or the “OpenDNS (ECS, DNSSEC)” option or “Cloudflare (DNSSEC)” option. They are quite trusted and have good privacy policy (as opposed to Google’s DNS service). + +![Choosing an upstream DNS provider for the Pi-hole][10] + +Once you have selected a DNS provider, you will be asked for another choice. Here, you are asked to choose a “blocklist” that contains a list of websites to block. Pi-hole has a recommended blocklist and is asking if you want to use said blocklist. + +I have used this blocklist and it does a good job of blocking a _majority_ of advertisements so I highly recommend you say “Yes” to this prompt. + +![Choosing between using the default blocklist or no blocklist][11] + +If you want to monitor items like “Number of total DNS queries”, “Number of DNS queries blocked/passed”, etc, you can enable the Web UI to view this data. [This is what the Pi-hole Web UI looks like][12] (this is an older announcement and the Web UI may have changed by the time you read this article). + +Disabling or enabling the Pi-hole Web UI will not affect the functionality of Pi-hole itself. It is just another way to manage Pi-hole. + +![The Pi-hole installer needs user input regarding the availibility of a Web UI.][13] + +If you chose to install the Pi-hole Web UI, the installer will ask you to if you want to install the “lighttpd” web server. This is unnecessary if you already have a web server like Apache. But if you do not already have a web server installed already, I recommend you let the Pi-hole installer handle the installation and setup of the lighttpd web server. + +![Should the Pi-hole installer install 'lighttpd' web server or does the user already have a web server?][14] + +For the Pi-hole Web UI to show accurate statistics, the data needs to be logged. The next step is asking if you want to enable logging of queries. It logs items like which computer made a query for which domain name and if it was blocked or allowed, etc. + +If you have enabled the Pi-hole Web UI, I recommend that you enable this. + +![THe Pi-hole installer is asking if the user needs queries logged.][15] + +If you enabled query logging in the previous step, you will now be asked for the verbosity of logging. Choose the logging level that you are most comfortable with and proceed with the next step. + +![The Pi-hole installer is asking for verbosity of logs.][16] + +The installation is now complete! Pi-hole is up and running now. + +**But don’t close this window just yet!** If you have enabled the Pi-hole Web UI, you will be given a password that will be used to log in the Pi-hole Web UI. Please note this down. + +![The final screen of Pi-hole automated installation that shows you methods of accessing the Pi-hole Web UI and the randomly generated password][17] + +Once the installation finishes, you will be shown the methods for accessing Pi-hole. + +In my case, since the computer’s IP address is “192.168.122.191”, I will type the address `http://192.168.122.191/admin` in my web browser to access Pi-hole Web UI. + +Or, if I am already using “192.168.122.191” as my DNS server, I can simply type in `http://pi.hole/admin` to view it. + +#### Method 2: Install Pi-hole using Podman/Docker + +This is the recommended method: + +- If you want to deploy Pi-hole without much hassle and/or do not wish to interact with any installer prompts (it is only a 3-step process!) +- If you want to test Pi-hole without actually having to install it and without having your config files modified +- If you want a “reproducible” setup without having to configure everything exactly like before + +For this method, you must have either Podman or Docker installed. For this tutorial, I will be using Docker on Ubuntu 22.04 LTS. However, you can follow the steps on any Linux distribution. + +##### Step 1: Install Docker + +As discussed above, you must have Docker installed. If you don’t have it installed, we have covered the procedure about [installing Docker on Ubuntu][18]. + +##### Step 2: Create a docker-compose file + +The easiest way to get a container like Pi-hole up and running via Docker is by using the docker-compose file. + +You can create the docker-compose file anywhere you wish; its location does not matter. Below are the contents of the `docker-compose.yml` file: + +``` +version: '3' + +services: + pihole: + image: docker.io/pihole/pihole:latest + container_name: pihole-aditi + restart: unless-stopped + ports: + - '53:53/tcp' + volumes: + - './pi-hole/etc-pihole:/etc/pihole' + - './pi-hole/etc-dnsmasq.d:/etc/dnsmasq.d' + environment: + TZ: 'Asia/Kolkata' + WEBPASSWORD: 'your-password-here' +``` + +**Please replace the string `your-password-here` with a safe and strong password**. This is the password for the Pi-hole Web UI. + +##### Step 3: Starting the Pi-hole container + +We have a few prerequisites to satisfy before starting the Pi-hole container. + +The first pre-requisite is to create a few directories. Do so by running the following command in your terminal: + +``` +mkdir -vp pi-hole/etc-{pihole,dnsmasq.d} +``` + +These directories will store only the configuration files, so their size will not be greater than a few hundred MBs. These directories should be created in the same location as the `docker-compose.yml` file. + +**This next step is optional but if you are following this guide on Fedora or a RHEL-based distribution**, you need to open port 53 in your firewall. + +``` +sudo firewall-cmd --add-service=dns --permanent +sudo firewall-cmd --reload +``` + +Once this is done, we can start out Pi-hole container! Do so by running the following command: + +``` +docker-compose up -d +``` + +Executing the above command will automatically fetch the latest Pi-hole image and start a container for you. Logging into the Pi-hole Web UI is the same as the previous method. Either type in the IP address of your computer or the `pi.hole` address in your web browser followed by the `/admin` string. + +Both of the following methods are valid for accessing the Pi-hole Web UI: + +- `http:///admin` +- `http://pi.hole/admin` + +You now have Pi-hole installed on your comptuer using Docker! How cool is that?! + +### Setting up Pi-hole + +To start using Pi-hole, you must follow either of the following methods: + +- Add the computer’s IP address with Pi-hole installed as the DNS server for your router. This is the most recommended method since it enables blocking ads on tricky devices to configure. Please refer to your router’s manual on how this can be achieved. +- You can add the IP address of the computer hosting Pi-hole as the DNS server for every computer, phone or tablet on your network. This can be tedious but useful in cases where you wish to allow ads on particular devices. I do not recommend this unless you know what you are doing. + +Once you have followed either method 1 or method 2, you can check whether Pi-hole is working. + +``` +dig +short @ ads.google.com +``` + + The `dig` utility is helpful for looking up corresponding IP address for each domain name. In this command, you are querying our Pi-hole server to get the IP address of “ads.google.com” is. The website “ads.google.com” is used to serve ads. So, if you get back `0.0.0.0`, your Pi-hole is working! + +Below is the output from my computer: + +``` +$ dig +short @192.168.122.191 ads.google.com +0.0.0.0 +``` + +As you can see, the IP address I got back from Pi-hole is infact an invalid IP address. Meaning any communication to Google’s Ad servers is blocked. Yay! + +But let us also see if “google.com” is working. Where will we go to solve our future problems if it doesn’t work? So let’s see that too! + +You can run the same command as above but with “google.com” instead of “ads.google.com”. If the Pi-hole is working correctly, **we should get a** _**valid**_ **IP address in return**. Let’s see what happens on my computer. + +``` +$ dig +short @10.0.0.14 google.com +216.58.203.46 +``` + +As expected, “google.com” works but “ads.google.com” is blocked. Our Pi-hole server is working as intended. Perfect! + +### Conclusion + +It requires some effort and expertise to set up Pi-hole to get an ad-free internet experience. As you can see, it’s not entirely complicated. You need to be patience with such DIY projects. + +For a Raspberry Pi lover like me, using Pi-hole gives good practice for building projects with [amazing single-board computers][19]. + +I have tried giving all the proper steps but I understand if it doesn’t work for you. If you face any issues, please let me know in the comments and I’ll try to help you out. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/setup-pi-hole/ + +作者:[Pratham Patel][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/pratham/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/raspberry-pi-projects/ +[2]: https://pi-hole.net/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/image.png +[4]: https://itsfoss.com/raspberry-pi-zero-w/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-01.png +[6]: https://pi-hole.net/donate/ +[7]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-02.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-03.png +[9]: https://www.datadoghq.com/knowledge-center/dns-resolution/#how-does-dns-resolution-work +[10]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-04.png +[11]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-05.png +[12]: https://pi-hole.net/blog/2018/01/13/pi-hole-web-interface-the-next-generation/ +[13]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-06.png +[14]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-07.png +[15]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-08.png +[16]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-09.png +[17]: https://itsfoss.com/wp-content/uploads/2022/11/pihole-automated-install-10.png +[18]: https://linuxhandbook.com/install-docker-ubuntu/ +[19]: https://itsfoss.com/raspberry-pi-alternatives/ From d54e05fb07f82920e10ce946d27f12dcdea70df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:53:51 +0800 Subject: [PATCH 2186/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221129.6=20=E2=AD=90=EF=B8=8F=20Heroic=20Games=20L?= =?UTF-8?q?auncher=202.5.0=20Released=20as=20its=20Biggest=20Feature=20Upd?= =?UTF-8?q?ate.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....5.0 Released as its Biggest Feature Update.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md diff --git a/sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md b/sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md new file mode 100644 index 0000000000..2d4c56b8cf --- /dev/null +++ b/sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md @@ -0,0 +1,136 @@ +[#]: subject: "Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update" +[#]: via: "https://news.itsfoss.com/heroic-games-launcher-2-5-0/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update +====== + +Heroic Games Launcher is making good progress with its feature set upgrades. What do you think about this one? + +![Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update][1] + +Heroic Game Launcher is a helpful tool that lets you access gaming services such as Epic Games and GOG via a single app on platforms like Linux, Windows, and macOS. + +It comes in handy to organize your game library and lets you install games that are not natively available for a platform. + +Now, they have pushed a new version update **v2.5.0**, which they claim to be **their****biggest release in a long time**. + +Let me highlight the good stuff here. + +### 🆕 Heroic Game Launcher 2.5.0: What's New? + +![heroic 2.5.0][2] + +Heroic is receiving a bunch of improvements and features; some of the highlights include: + +- **Download Manager** +- **New Themes** +- **Custom User Theme Support** +- **HowLongToBeat data** +- **Support For Other App Launchers and Games** + +#### Download Manager + +![heroic 2.5.0 download manager][3] + +Heroic now allows you to queue multiple games to download from the various gaming services. + +The download manager also shows essential details such as the download speed, the ETA, buttons to start or stop the download, and the download queue. + +They also plan to add the ability to change the queue order and check the remaining disk space before adding items to the queue soon. + +#### New Themes + +![heroic 2.5.0 nord dark theme][4] + +Heroic 2.5.0 features two new built-in themes Nord Light and Nord Dark. + +The themes have been designed by [redromnon][5] aka **Rishabh Moharir**, one of our contributors, who you might have noticed covering a couple of news here. + +![heroic 2.5.0 nord light theme][6] + +#### Custom User Theme Support + +![heroic 2.5.0 custom theme support][7] + +In case you want to create a new theme, you can do that and share it with others on their [theme repo][8]. Note that you need to know CSS to be able to do it. + +If you are interested, you can follow the instructions to learn how it's done. + +#### HowLongToBeat data on the Game Page + +![heroic games launcher][9] + +When you read the game information, you also get an estimate of the time you need to spend to complete the campaign, DLCs, and everything else. + +It may not be a big deal for you, but if someone is picky with the time they want to spend on game, this information can help them prioritize if they want to play it. + +#### Support For Other App Launchers + +![heroic 2.5.0 other app launcher][10] + +Many of us were looking forward to this feature, and now it's here. + +Heroic now lets you add apps outside of Epic and GOG. In other words, you can sideload any app or game. + +You can now add other games, software, or even app launchers to launch from within Heroic. That's what I call an added convenience!😌 + +#### 🛠️ Other Important Changes + +![heroic games launcher][11] + +Here are some refinements that are worth mentioning: + +- **Detect if a game is available or not (and mention if it is a supported game).** +- **Legendary v0.20.30.** +- **Settings re-organized.** +- **Redesigned login screen.** +- **Improvements to Cloud Saves.** +- **Various bug fixes.** + +> 💡 You can go through the [full release notes][12] to learn more about the subtle changes and technical improvements. + +### 📥 Download Heroic Game Launcher 2.5.0 + +You can download the latest Heroic Games Launcher from the official [downloads page][13]. + +It is also available on [Flathub][14] if you do not prefer AppImage and other packages. + +You can also find the packages in its [GitHub releases][12] section. + +[Download Heroic Game Launcher 2.5.0][13] + +_💬 What do you think of this release of Heroic Games Launcher? Share your thoughts in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/heroic-games-launcher-2-5-0/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w300/2022/11/heroic-games-launcher-2-5-0-release.png +[2]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0.png +[3]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Download_Manager.png +[4]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Nord_Dark.png +[5]: https://github.com/redromnon +[6]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Nord_Light.png +[7]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Custom_Theme-1.png +[8]: https://github.com/Heroic-Games-Launcher/heroic-themes +[9]: https://news.itsfoss.com/content/images/2022/11/howlongtobeat.jpg +[10]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Other_Apps.png +[11]: https://news.itsfoss.com/content/images/2022/11/settings-heroic-games.jpg +[12]: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.5.0 +[13]: https://heroicgameslauncher.com/downloads +[14]: https://flathub.org/apps/details/com.heroicgameslauncher.hgl From 01949e2011b9f7ec8e24bcce28c65712ef39cc2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:54:36 +0800 Subject: [PATCH 2187/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221130.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Terminator=20The=20Tiling=20Terminal=20Emulator=20for=20Linux?= =?UTF-8?q?=20Pros.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tor The Tiling Terminal Emulator for Linux Pros.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20221130.0 ⭐️⭐️ Terminator The Tiling Terminal Emulator for Linux Pros.md diff --git a/sources/tech/20221130.0 ⭐️⭐️ Terminator The Tiling Terminal Emulator for Linux Pros.md b/sources/tech/20221130.0 ⭐️⭐️ Terminator The Tiling Terminal Emulator for Linux Pros.md new file mode 100644 index 0000000000..421d0a199f --- /dev/null +++ b/sources/tech/20221130.0 ⭐️⭐️ Terminator The Tiling Terminal Emulator for Linux Pros.md @@ -0,0 +1,152 @@ +[#]: subject: "Terminator: The Tiling Terminal Emulator for Linux Pros" +[#]: via: "https://itsfoss.com/terminator/" +[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Terminator: The Tiling Terminal Emulator for Linux Pros +====== + +You might have seen some colleagues or YouTubers using a terminal window with multiple terminal sessions running in it. + +![gnu screen][1] + +Some pro Linux users do the multiple split pane with screen or [tmux commands][2]. These commands work in any terminal application but involve a steep learning curve. + +If you want multiple terminal sessions in the same application window without the complexity of the tmux or [screen commands][3], Terminator is your friend. + + No, not that terminator. This terminator 👇 + +![terminator htop neofetch cmatrix][4] + +The [terminal emulators][5] installed on your system may have multiple-tab support. On the other hand, Terminator supports multiple resizable terminal panels. + +It emulates something like a tiling window manager and tiles the terminal panel in a single window. + +In this article, I’ll show you how to install and use Terminator in Ubuntu and other Linux distributions. + +But before that, let’s have a quick look at the features Terminator offers. + +### Terminator gives you multiple terminal sessions in the same window + +[Terminator][6] is a GTK application based on GNOME Terminal that uses VTE3 (Virtual Terminal Emulator widget GTK3). + +Being an application based on GNOME Terminal it has some dependencies linked with the GNOME Desktop Environment. + +However, I found the application relatively lightweight, even with the GNOME dependencies. Perhaps it should not be a problem to use it on other desktop environments. + +From the outside, Terminator might look like any other terminal emulator. But the possibilities are endless with Terminator and I will show them to you in later sections. + +![terminator htop multiple][7] + +#### Features + +Let me summarize some of the main features of Terminator: + +- Terminals in tiling layout +- Supports multiple tabs +- Drag and drop terminal panel (great mouse support) +- Keyboard shortcuts akin to tiling window managers +- Saving layouts and profiles so one can get a quick head start +- Extensible through plugins + +### Installing Terminator + +Installing Terminator is as simple as installing any other package because it is available in the official repositories of all mainstream distributions you can name. + +For your convenience, I have listed the commands for some major distributions below. + +For Ubuntu and Debian based distributions, enter the below command to install Terminator: + +``` +sudo apt install terminator +``` + +For Fedora and Red Hat based distributions, use: + +``` +sudo dnf install terminator +``` + +For Arch and Manjaro based distributions, enter the below command to update and install Terminator: + +``` +sudo pacman -Syu terminator +``` + +Note: You might not get the latest version of Terminator in some of the Long term release distributions’ repos. + +One can also install Terminator using the Graphical Package Manager provided by your distribution. But, there is no fun in installing a Terminal Emulator from the GUI. + +### Using Terminator + +When you launch Terminator default window will look like a simple Terminal window. But, with some patience, it can work like a tiling window manager inside a single window. + +![terminator default window][8] + +Terminator allows you to use the mouse for creating new panes by splitting the present one horizontally and vertically. + +![terminator right click option][9] + +However, you’ll be a lot faster with keyboard shortcuts. It takes some time to get used to the keys but you’ll get there eventually. + +Here, I opened [htop][10] in the first panel as shown below. + +![terminator htop][11] + +To create a new terminal panel to the right, just enter `Ctrl + Shift + e` shortcut keys. Secondly, I have used [neofetch][12] in the right panel, as shown below. + +![terminator htop neofetch][13] + +Lastly, I created another panel below the one with neofetch using `Ctrl + Shift + o` shortcut keys and launched `cmatrix` here. It’s one of those useless but [amusing Linux commands][14]. + +![terminator htop neofetch cmatrix][15] + +Above is the final screenshot of what I did in this walkthrough. Now you understand why I said that Terminator creates a tiling window manager like environment in a single window. + +This tiling feature will come in handy if you need to open many terminals without installing a Tiling Window Manager. Terminator also supports tabs but the tiling feature is the USP of this application, in my opinion. + +Terminator is one of the few applications that come with great documentation. If you need more information, please take a look at its [documentation][16]. + +### Conclusion + +I believe all terminal emulators support tabbed interface. But you’ll have to switch between the tabs and it’s not convenient when you have to keep an eye on multiple sessions simultaneously. + +Terminator may not look as good as [Blackbox][17] or [GNOME Console][18]. But it has features that seasoned Linux users love. + +It serves a purpose that may not what every Linux user needs or wants. I leave it up to you to decide if it is worth your time. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/terminator/ + +作者:[Anuj Sharma][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/anuj/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/gnu-screen.webp +[2]: https://linuxhandbook.com/tmux/ +[3]: https://linuxhandbook.com/screen-command/ +[4]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-htop-neofetch-cmatrix.png +[5]: https://itsfoss.com/linux-terminal-emulators/ +[6]: https://github.com/gnome-terminator/terminator +[7]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-htop-multiple.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-default-window.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-right-click-option.png +[10]: https://itsfoss.com/use-htop/ +[11]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-htop.png +[12]: https://itsfoss.com/using-neofetch/ +[13]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-htop-neofetch.png +[14]: https://itsfoss.com/funny-linux-commands/ +[15]: https://itsfoss.com/wp-content/uploads/2022/11/terminator-htop-neofetch-cmatrix.png +[16]: https://gnome-terminator.readthedocs.io/en/latest/ +[17]: https://itsfoss.com/blackbox-terminal/ +[18]: https://itsfoss.com/gnome-console/ From d830d6f7a91a3c66931cba50e0f41b44d630ba28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:55:42 +0800 Subject: [PATCH 2188/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221130.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Get=20to=20know=20Lua=20for=20loops=20in=204=20minutes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Get to know Lua for loops in 4 minutes.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md diff --git a/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md new file mode 100644 index 0000000000..4098162525 --- /dev/null +++ b/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md @@ -0,0 +1,140 @@ +[#]: subject: "Get to know Lua for loops in 4 minutes" +[#]: via: "https://opensource.com/article/22/11/lua-for-loops" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Get to know Lua for loops in 4 minutes +====== + +In programming, iteration is an important concept because code often must scan over a set of data several times so that it can process each item individually. Control structures enable you to direct the flow of the program based on conditions that are often established dynamically as the program is running. Different languages provide different controls, and in [Lua][1], there's the while loop, for loop, and repeatuntil loop. This article covers for loops. I will cover while and repeat until loops in a separate article. + +### For loop + +A for loop takes a known quantity of items and ensures that each item is processed. An "item" can be a number. It can also be a table containing several entries or any Lua data type. The syntax and logic are a little flexible, but the syntax allows for these parameters, each of which essentially describes a counter: + +- Starting value of the counter +- Stop value +- The increment you want the counter to advance + +For instance, suppose you have three items and want Lua to process each. Your counter could start at 3 and last until 1, at an increment of -1. That renders the count of 3, 2, 1. + +``` +mytable = { "zombie", "Halloween", "apocalypse" } +for count = 3, 1, -1 do +  print(count .. ": " .. mytable[count]) +end +``` + +Run the code to ensure all three items are getting processed: + +``` +$ lua ./for.lua3: apocalypse2: Halloween1: zombie +``` + +This code effectively processed the table in "reverse" because it was a countdown. You can count up, instead: + +``` +for count = 1, 3, 1 do +  print(mytable[count]) +end +``` + +This example processes the table from lowest index to highest: + +``` +$ lua ./for.lua1: zombie2: Halloween3: apocalypse +``` + +### Increments + +You can change the increment, too. For instance, maybe you want a zombie apocalypse without all the pomp and circumstance of Halloween: + +``` +mytable = { "zombie", "Halloween", "apocalypse" } +for count = 1, 3, 2 do +  print(mytable[count]) +end +``` + +Run the code: + +``` +$ lua ./for.lua +zombie +apocalypse +``` + +The example printed 1 and 3 because the first count was 1, which was then incremented by 2 (for a total of 3). + +### Counter + +Sometimes you don't know the number of times you need Lua to iterate over data. In this case, you can set your counter to a variable populated by some other process. + +Also, the word `count` isn't a keyword. It's just what I'm using in my sample code for clarity. It's common for programmers to use something shorter, such as `i` or `c`. + +``` +var = os.time() +if var%2 == 0 then +  mytable = { var } +else +  mytable = { "foo", "bar", "baz" } +end +for c = 1, #mytable, 1 do +  print(mytable[c]) +end +``` + +This code creates a variable containing the timestamp of when it was launched. If the timestamp is even (it has a modulo of 0 when divided by 2), then just the timestamp is placed into a table. If the timestamp is odd, it puts three strings into a table. + +Now you can't be sure how many times your for loop needs to run. It's either once or thrice, but there's no way to be sure. The solution is to set the starting count to 1 and the final count to the length of the table (`#mytable` is the built-in shortcut to determine the length of a table). + +It might take a few times of running the script to see both results, but eventually, you end up with something like this: + +``` +$ lua ./dynamic.lua1665447960 +$ lua ./dynamic.lua +foo +bar +baz +``` + +### For loops with pairs and ipairs + +If you've already read my article on [table iteration][2], then you're already familiar with one of the most common for loops in Lua. This one uses the `pairs` or `ipairs` function to iterate over a table: + +``` +mytable = { "zombie", "Halloween", "apocalypse" } +for i,v in ipairs(mytable) do +  print(i .. ": " v) +end +``` + +The `pairs` and `ipairs` functions "unpack" the table and dump the values into the variables you provide. In this example, I use `i` for _index_ and `v` for _value_, but the variables' names don't matter. + +``` +$ lua ./for.lua1: zombie2: Halloween3: apocalypse +``` + +### For loop + +The for loop structure is common in programming and very common in Lua due to its frequent use of tables and the `pairs` function. Understanding the for loop structure and the options you have when controlling it means you can make clever decisions about how to process data in Lua. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/lua-for-loops + +作者:[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/article/22/11/lua-worth-learning +[2]: https://opensource.com/article/22/11/iterate-over-tables-lua From d4c8056f6ff526f47b96e76c150124aba4dc19be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:56:22 +0800 Subject: [PATCH 2189/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221130.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Build=20test=20scripts=20for=20your=20IoT?= =?UTF-8?q?=20platform.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Build test scripts for your IoT platform.md | 341 ++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 sources/tech/20221130.2 ⭐️⭐️⭐️ Build test scripts for your IoT platform.md diff --git a/sources/tech/20221130.2 ⭐️⭐️⭐️ Build test scripts for your IoT platform.md b/sources/tech/20221130.2 ⭐️⭐️⭐️ Build test scripts for your IoT platform.md new file mode 100644 index 0000000000..e11e7d618c --- /dev/null +++ b/sources/tech/20221130.2 ⭐️⭐️⭐️ Build test scripts for your IoT platform.md @@ -0,0 +1,341 @@ +[#]: subject: "Build test scripts for your IoT platform" +[#]: via: "https://opensource.com/article/22/11/test-scripts-iot-jmeter" +[#]: author: "Chongyuan Yin https://opensource.com/users/chongyuanyin" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Build test scripts for your IoT platform +====== + +In [my previous article][1], I introduced the open source test tool JMeter and used a simple HTTP test as an example to demonstrate its capabilities. This article shows you how to build test scripts for complex test scenarios. + +The user interface displays a JMeter test script in the "tree" format. The saved test script (in the `.jmx` format) is [XML][2]. The JMeter script tree treats a test plan as the root node, and the test plan includes all test components. In the test plan, you can configure user-defined variables called by components throughout the entire test plan. Variables can also thread group behavior, library files used in the test, and so on. You can build rich test scenarios using various test components in the test plan. + +Test components in JMeter generally have the following categories: + +- Thread group +- Sampler +- Logic controller +- Listener +- Configuration element +- Assertion +- Timer +- Pre-processor +- Post-processor + +### Thread groups + +A thread group is the beginning point for all test plans (so all samplers and controllers must be placed under a thread group). A thread group can be regarded as a virtual user pool in which each thread is essentially a virtual user, and multiple virtual users perform the same batch of tasks simultaneously. Each thread is independent and doesn't affect the others. During the execution of one thread, the variable of the current thread doesn't affect the variable value of other threads. + +![Threaded groups][3] + +In this interface, the thread group can be configured in various ways. + +#### 1. Action to be taken after a sampler error + +The following configuration items control whether a test continues when an error is encountered: + +- **Continue**: Ignore errors and continue execution. +- **Start Next Thread Loop**: Ignore the error, terminate the current loop of the thread, and execute the next loop. +- **Stop Thread**: Stop executing the current thread without affecting the normal execution of other threads. +- **Stop Test**: Stop the entire thread after executing threads have finished the current sampling. +- **Stop Test Now**: The entire test execution stops immediately, even if it interrupts currently executing samplers. + +#### 2. Number of threads + +This is the number of concurrent (virtual) users. Each thread runs the test plan completely independently without interfering with any others. The test uses multiple threads to simulate concurrent access to the server. + +#### 3. Ramp-up period + +The Ramp-up time sets the time required to start all threads. For example, if the number of threads is set to 10 and the ramp-up time is set to 100 seconds, then JMeter uses 100 seconds to start and runs 10 threads (each thread begins 10 seconds after the previous thread was started). + +If the ramp-up value is set small and the number of threads is set large, there's a lot of stress on the server at the beginning of the test. + +#### 4. Loop count + +Sets the number of loops per thread in the thread group before ending. + +#### 5. Delay thread creation until needed + +By default, all threads are created when the test starts. If this option is checked, threads are created when they are needed. + +#### 6. Specify thread lifetime + +Control the execution time of thread groups. You can set the duration and startup delay (in seconds). + +### Samplers + +A sampler simulates user operations. It's a running unit that sends requests to the server and receives response data from the server. A sampler is a component inside a thread group, so it must be added to the thread group. JMeter natively supports a variety of samplers, including a TCP Sampler, HTTP Request, FTP Request, JDBC Request, Java Request, and so on. Each type of sampler sends different requests to the server according to the set parameters. + +#### TCP Sampler + +The TCP Sampler connects to the specified server over TCP/IP, sends a message to the server after the connection is successful, and then waits for the server to reply. + +![TCP sampler][4] + +The properties that can be set in the TCP Sampler are as follows: + +##### TCPClient classname + +This represents the implementation class that handles the request. By default, `org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl` is used, and plain text is used for transmission. In addition, JMeter also has built-in support for `BinaryTCPClientImpl` and `LengthPrefixedBinaryTCPClientImpl`. The former uses hexadecimal packets, and the latter adds a 2-byte length prefix to `BinaryTCPClientImpl`. + +You can also provide custom implementation classes by extending `org.apache.jmeter.protocol.tcp.sampler.TCPClient`. + +- **Re-use connection**: If enabled, this connection is always open; otherwise, it's closed after reading data. +- **Close Connection**: If enabled, this connection is closed after the TCP sampler has finished running. +- **Set No-Delay**: If enabled, the Nagle algorithm is disabled, and the sending of small packets is allowed. +- **SO_LINGER**: Controls whether to wait for data in the buffer to complete transmission before closing the connection. +- **End of line (EOL) byte value**: Determines the byte value at the end of the line. The EOL check is skipped if the specified value is greater than 127 or less than -128. For example, if a string returned by the server ends with a carriage return, you can set this option to 10. + +- Target server settings: **Server Name or IP** and **Port Number** specify the hostname or IP address and port number of the server application. +- Connection Options: Determines how you connect to the server. +- **Timeouts**: Set the connect timeout and response timeout. +- **Text to send**: Contains the payload you want to send. +- **Login configuration**: Sets the username and password used for the connection. + +#### HTTP Request Sampler + +The HTTP Sampler sends HTTP and HTTPS requests to the web server. + +![HTTP request sampler][5] + +Here are the settings available: + +- **Redirect Automatically**: Redirection is not treated as a separate request and is not recorded by JMeter. +- **Follow Redirects**: Each redirection is treated as a separate request and is recorded by JMeter. +- **Use KeepAlive**: If enabled, `Connection: keep-alive` is added to the request header when JMeter communicates with the target server. +- **Use multipart/form-data for POST**: If enabled, requests are sent using `multipart/form-data or application/x-www-form-urlencoded`. + +- **Name and comments** +- **Protocol**: Set the protocol to send the request to the target server, which can be HTTP, HTTPS, or FILE. The default is HTTP. +- **Server name or IP address**: The hostname or IP address of the target server to which the request is sent. +- **Port number**: The port number that the web service listens on. The default port is 80 for HTTP and 443 for HTTPS. +- **Request method**: The method for sending the request, commonly including GET, POST, DELETE, PUT, TRACE, HEAD, OPTIONS, and so on. +- **Path**: The target URL (excluding server address and port) to request. +- **Content encoding**: How to encode the request (applicable to POST, PUT, PATCH, and FILE). +- **Advanced request options**: A few extra options, including: +- **Parameters**: JMeter uses parameter key-value pairs to generate request parameters and send these request parameters in different ways depending on the request method. For example, for GET, DELETE requests, parameters are appended to the request URL. +- **Message body data**: If you want to pass parameters in JSON format, you must configure the Content-Type as `application/json` in the request header. +- **File upload**: Send a file in the request. The HTTP file upload behavior can be simulated in this way (usually). + +### Logic Controllers + +The JMeter Logic Controller controls the execution logic of components. The JMeter website explains it like this: "Logic Controllers determine the order in which Samplers are processed." + +The Logic Controller can control the execution order of the samplers. Therefore, the controller needs to be used together with the sampler. Except for the once_-_only controller, other logic controllers can be nested within each other. + +Logic controllers in JMeter are mainly divided into two categories. They can control the logical execution order of nodes during the execution of the test plan (a loop or conditional controller), or they can act in response to specific throughput or transaction count. + +#### Transaction Controller + +Sometimes, you want to count the overall response time of a group of related requests. In this case, you need to use a Transaction Controller. + +The Transaction Controller counts the sampler execution time of all child nodes under the controller. If multiple samplers are defined under the Transaction Controller, then the transaction is considered successful only when all samplers run successfully. + +Add a transaction controller using the contextual menu: + +![Image of available settings.][6] + +**Generate parent sample**: If enabled, the Transaction Controller is used as a parent sample for other samplers. Otherwise, the Transaction Controller is only used as an independent sample. + +![Generate parent sample option is enabled.][7] + +For example, the unchecked Summary Report is as follows: + +![Unchecked summary report][8] + +If checked, the Summary Report is as follows: + +![Checked summary report][9] + +**Include duration of timer**: If enabled, include a timer (a delay is added before and after the sampler runs). + +#### Once Only Controller + +The Once Only Controller, as its name implies, is a controller that executes only once. The request under the controller is executed only once during the loop execution process under the thread group. For tests that require a login, you can consider putting the login request in a Once Only Controller because the login request only needs to be executed once to establish a session. + +![Once-only controller][10] + +If you set the loop count to 2 and check the result tree after running, you can see that the `HTTP request 3` under the Once Only Controller is only executed once, and other requests are executed twice. + +![Loop count][11] + +### Listeners + +A listener is a series of components that process and visualize test result data. **View Results Tree**, **Graph Results**, and **Aggregate Report** are common listener components. + +#### View Results Tree + +This component displays the result, request content, response time, response code, and response content of each sampler in a tree structure. Viewing the information can assist in analyzing whether there is a problem. It provides various viewing formats and filtering methods and can also write the results to specified files for batch analysis and processing. + +![Results tree][12] + +### Configuration element + +Configuration element provides support for static data configuration. It can be defined at the test plan level, or at the thread group or sampler level, with different scopes for different levels. Configuration elements mainly include User Defined Variables, CSV Data Set Config, TCP Sampler Config, HTTP Cookie Manager, etc. + +#### User-Defined Variables + +![Enter variables in the User defined variables screen][13] + +By setting a series of variables, you cause a random selection of values to be used in the performance test. Variable names can be referenced within the scope, and variables can be referenced as `${variable name}`. + +In addition to the User Defined Variables component, variables can also be defined in other components, such as Test Plans and HTTP Requests: + +![Define a test plan][14] + +For example, a defined variable is referenced in an HTTP Request: + +![Defined variables can be used in settings][15] + +Viewing the execution results, you can see that the value of the variable has been obtained: + +![Viewing results][16] + +#### CSV Data Set Config + +During a performance test, you may need parameterized input, such as the username and password, in the login operation. When the amount of concurrency is relatively large, the data generation at runtime causes a heavy burden on the CPU and memory. The CSV Data Set Config can be used as the source of parameters required in this scenario. + +![CSV dataset][17] + +The descriptions of some parameters in the CSV Data Set Config: + +- **Variable name**: Defines the parameter name in the CSV file, which the script can reference as `${variable name}`. +- **Recycle on EOF**: If set to True, this allows looping again from the beginning when reaching the end of the CSV file. +- **Stop thread on EOF**: If set to True, this stops running after reading the last record in the CSV file. +- **Sharing mode**: Sets the mode shared between threads and thread groups. + +### Assertions + +The Assertion checks whether the request is returned as expected. Assertions are an important part of automated test scripts, so you should pay great attention to it. + +JMeter commonly used assertions include Response Assertion, JSON Assertion, Size Assertion, Duration Assertion, Beanshell Assertion, etc. Below I introduce the frequently-used JSON Assertion. + +#### JSON Assertion + +This is used to assert the content of the response in JSON format. A JSON Assertion is added on an HTTP Sampler in this example, as shown in the following image: + +![JSON assertion][18] + +The root of the JSON path is always called `$`, which can be represented by two different styles: dot-notation (`.`) or bracket-notation (`[]`). For example; `$.message[0].name` or `$['message'][0]['name']`. + +Here's an example of a request made to `https://www.google.com/doodles/json/2022/11`. The `$[0].name` value represents the 'name' part in the first array element in the response. + +![The name variable from the first array is used.][19] + +The `Additionally assert value` specifies that the `value of 'name'` is to be verified, and the `Expected value` is expected to be '2022-world-cup-opening-day'. + +Run the script and look at the results. You can see that the assertion has passed. + +![The results tree view shows that the assertion has passed.][20] + +Here are the possible conditions and how they're treated: + +- If a response result is not in JSON format, it's treated as a failure. +- If the JSON path cannot find the element, it fails. +- If the JSON path finds the element, but no conditions are set, it passes. +- If the JSON path finds an element that does not meet the conditions, it fails. +- If the JSON path finds the element that meets the conditions, it passes. +- If the JSON path returns an array, it iterates to determine whether any elements meet the conditions. If yes, it passes. If not, it fails. + +Go back to JSON Assertion and check the `Invert assertion.` + +![Invert assertion][21] + +Run the script, check the results, and you can see that the assertion failed: + +![Assertion failed][22] + +### Timers + +The pause time between requests in the performance test is called "thinking time." In the real world, the pause time can be spent on content search or reading, and the Timer simulates this pause. + +All timers in the same scope are executed before the samplers. + +If you want the timer to be applied to only one of the samplers, add the timer to the child node of the sampler. + +JMeter timers mainly include Constant Timer, Uniform Random Timer, Precise Throughput Timer, Constant Throughput Timer, Gaussian Random Timer, JSR223 Timer, Poisson Random Timer, Synchronizing Timer, and BeanShell Timer. + +#### Constant Timer + +A Constant Timer means that the interval between each request is a fixed value. + +![Constant timer][23] + +After configuring the thread delay to 100 and 1000, respectively, run the script: + +![Threaded delay][24] + +Check the data in the table, where #1 and #2 are the running results when the configuration is 100 milliseconds, and #4 and #5 are the running results when the configuration is 1000 milliseconds. You can see that the interval between #4 and #5 is significantly greater than that between #1 and #2: + +![Greater delay][25] + +#### Constant Throughput Timer + +The Constant Throughput Timer controls the execution of requests according to the specified throughput. + +![Constant throughput][26] + +Configure the target throughput as 120 (note that the unit is minutes), and then select **All active threads in current thread group (shared)** based on the calculated throughput: + +![Throughput][27] + +Run the script, check the results, and observe that the throughput is approximately 2/second (120/60). + +![Throughput][28] + +### Pre-processors and post-processors + +A pre-processor performs some operations before the sampler request. It's often used to modify parameters, set environment variables, or update variables. + +Similarly, a post-processor performs some operations after the sampler request. Sometimes, the response data needs to be used in subsequent requests, and you need to process the response data. For example, if the `jwt` token in the response is obtained and used for authentication in subsequent requests, the post-processor is used. + +### Using JMeter + +The above is the introduction to the main test components of JMeter, and now you can feel confident in starting your own tests. In another article, I will explain using the [MQTT plugin][29] in JMeter. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/test-scripts-iot-jmeter + +作者:[Chongyuan Yin][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/chongyuanyin +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/10/iot-test-jmeter +[2]: https://opensource.com/article/21/7/what-xml +[3]: https://opensource.com/sites/default/files/2022-11/1.png +[4]: https://opensource.com/sites/default/files/2022-11/2.png +[5]: https://opensource.com/sites/default/files/2022-11/3.png +[6]: https://opensource.com/sites/default/files/2022-11/4.webp +[7]: https://opensource.com/sites/default/files/2022-11/5.webp +[8]: https://opensource.com/sites/default/files/2022-11/6.png +[9]: https://opensource.com/sites/default/files/2022-11/7.png +[10]: https://opensource.com/sites/default/files/2022-11/8.png +[11]: https://opensource.com/sites/default/files/2022-11/9.png +[12]: https://opensource.com/sites/default/files/2022-11/10.png +[13]: https://opensource.com/sites/default/files/2022-11/11-2_1.webp +[14]: https://opensource.com/sites/default/files/2022-11/12-2.webp +[15]: https://opensource.com/sites/default/files/2022-11/14.webp +[16]: https://opensource.com/sites/default/files/2022-11/15-2.webp +[17]: https://opensource.com/sites/default/files/2022-11/16.png +[18]: https://opensource.com/sites/default/files/2022-11/17_0.png +[19]: https://opensource.com/sites/default/files/2022-11/18-2.webp +[20]: https://opensource.com/sites/default/files/2022-11/19-2.webp +[21]: https://opensource.com/sites/default/files/2022-11/20.png +[22]: https://opensource.com/sites/default/files/2022-11/21.png +[23]: https://opensource.com/sites/default/files/2022-11/22_0.png +[24]: https://opensource.com/sites/default/files/2022-11/23.png +[25]: https://opensource.com/sites/default/files/2022-11/24.png +[26]: https://opensource.com/sites/default/files/2022-11/25.png +[27]: https://opensource.com/sites/default/files/2022-11/26_0.png +[28]: https://opensource.com/sites/default/files/2022-11/27_0.png +[29]: https://github.com/emqx/mqtt-jmeter From a8a2e5d89e6e72411c223c81194fb871dae07f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 01:59:07 +0800 Subject: [PATCH 2190/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221130.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Wayland=20Protocols=201.31=20Release=20Adds=20Fractional=20Scal?= =?UTF-8?q?ing=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ls 1.31 Release Adds Fractional Scaling Support.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md diff --git a/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md b/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md new file mode 100644 index 0000000000..71e610fe2c --- /dev/null +++ b/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md @@ -0,0 +1,70 @@ +[#]: subject: "Wayland Protocols 1.31 Release Adds Fractional Scaling Support" +[#]: via: "https://news.itsfoss.com/wayland-protocols-fractional-scaling/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wayland Protocols 1.31 Release Adds Fractional Scaling Support +====== + +Wayland Protocols 1.31 releases with fractional scaling support. + +![Wayland Protocols 1.31 Release Adds Fractional Scaling Support][1] + +If you are using a high-resolution display, then you may have noticed issues like blurriness, jaggedness, and lag when using a program. + +This issue is caused by the fact that many programs use a default screen resolution (usually 1920×1080) to display their contents. This makes for a bad user interface experience on HiDPI devices. + +But you might be wondering, is there a solution to this? Yes, there is, in fact, a solution. + +It's called 'Fractional Scaling'. This method uses fractional values to scale a program's interface according to your display's resolution, resulting in a consistent look and feel. + +So, it would ensure that you had the same experience on any HiDPI device, regardless of the program you were using. + +Moving on. + +With Wayland slowly replacing X11 with its advancements, adding Fractional Scaling support via Wayland Protocols 1.31 makes the transition more obvious. + +> 💡 [Wayland protocols][2] add functionality that is usually not found with Wayland core. + +Let's take a look at what's in store for Wayland. + +### Fractional Scaling Support for Wayland Protocols + +**How did it come to be?:** This was in the making for many months; code-named 'wp-fractional-scale-v1', it communicates with the compositor to suggest surfaces for rendering at fractional scales. + +It is paired with the 'wp-viewport protocol' to provide a fractional scaling implementation rather than an integer-based scaling implementation, as noted by [Phoronix][3]. + +**How does it affect you?:** The implementation of this allows you to run higher resolutions on your Wayland-enabled Linux systems without compromising visual quality across different programs and displays. + +So, what does it mean for KDE and GTK apps? + +Technically, **PointiestStick** (_KDE Dev_) responded to a [Reddit thread][4] that gives you a better insight: + +> For KDE, it simply means that once Qt and KWin implement support for this protocol, then native Wayland Qt apps will be able to use Qt's pre-existing support for fractional scaling, just like how it already works on X11.The result should be slightly better performance, visual sharpness, and power efficiency when using a non-integer scale factor like 125%.Nothing will change soon for GTK apps, because GTK has no existing fractional scaling support and thus cannot implement this Wayland protocol to do something it couldn't already do. + +In conclusion, this seems like a reasonable addition to Wayland, which should enhance the overall user experience across the board with a minimal performance impact. + +You can read more about **Wayland Protocols 1.31** release in its [official mailing list][5]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/wayland-protocols-fractional-scaling/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w300/2022/11/wayland-protocols-1-31-release.jpg +[2]: https://gitlab.freedesktop.org/wayland/wayland-protocols +[3]: https://www.phoronix.com/news/Wayland-Fractional-Scale-Ready +[4]: https://www.reddit.com/r/linux/comments/z7pc61/comment/iya2uu1/?utm_source=reddit&utm_medium=web2x&context=3 +[5]: https://lists.freedesktop.org/archives/wayland-devel/2022-November/042524.html From 6594470548b21787ae0bde59151c9722dc23b8cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 02:35:56 +0800 Subject: [PATCH 2191/3123] =?UTF-8?q?Update=2020221130.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Wayland=20Protocols=201.31=20Rele?= =?UTF-8?q?ase=20Adds=20Fractional=20Scaling=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md b/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md index 71e610fe2c..df503ccf83 100644 --- a/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md +++ b/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md @@ -63,7 +63,7 @@ via: https://news.itsfoss.com/wayland-protocols-fractional-scaling/ [a]: https://news.itsfoss.com/author/sourav/ [b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w300/2022/11/wayland-protocols-1-31-release.jpg +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/11/wayland-protocols-1-31-release.jpg [2]: https://gitlab.freedesktop.org/wayland/wayland-protocols [3]: https://www.phoronix.com/news/Wayland-Fractional-Scale-Ready [4]: https://www.reddit.com/r/linux/comments/z7pc61/comment/iya2uu1/?utm_source=reddit&utm_medium=web2x&context=3 From d05276ec8daaaa50acb87811d6b0d20e1571aa44 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 1 Dec 2022 08:51:18 +0800 Subject: [PATCH 2192/3123] translated --- ...Now Install Unity 7.6 Desktop on Arch Linux.md | 70 ------------------ ...Now Install Unity 7.6 Desktop on Arch Linux.md | 71 +++++++++++++++++++ 2 files changed, 71 insertions(+), 70 deletions(-) delete mode 100644 sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md create mode 100644 translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md diff --git a/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md deleted file mode 100644 index f358a8de1e..0000000000 --- a/sources/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md +++ /dev/null @@ -1,70 +0,0 @@ -[#]: subject: "You Can Now Install Unity 7.6 Desktop on Arch Linux" -[#]: via: "https://news.itsfoss.com/unity-arch-linux/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -You Can Now Install Unity 7.6 Desktop on Arch Linux -====== - -Unity Desktop is a classic desktop environment built by Canonical and was a part of Ubuntu from 2010 to 2017 but dropped in favor of GNOME. - -And, we thought it was killed forever. But it made a comeback. - -Earlier this year, a revamped version of Unity was released after a long 6-year period since its last update in May 2016. - -The development was spearheaded by a young developer [Rudra Saraswat][1], who is also the creator of [Ubuntu Unity][1], an official flavor of Ubuntu now. - -The release of Unity 7.6 marked the arrival of a host of improvements. - -And, to take that further, Unity 7.6 has been made available for Arch Linux. The developer mentions: - -> This port is based on an earlier effort, Unity-for-Arch by chenxiaolong (maintained from 2011-2016). - -### Trying Unity 7.6 on Arch Linux - -![unity on arch linux][2] - -First, you must ensure that you have Arch Linux already set up. - -Then you can follow these steps to run Unity 7.6 on Arch Linux: - -- **Install '[Paru][3]', it is an AUR helper.** -- **Install a script called 'unity-installer-arch' using 'paru -S unity-installer-arch'** -- **Run 'unity-installer-arch' in a TTY/terminal window.** -- **Select 'Install Unity desktop'.** -- **Change default display manager to 'lightdm'.** -- **Use 'unity-greeter' as the default greeter.** - -My colleague Sreenath tried it out, and during installation, he had to start with a fresh copy of Arch because of multiple dependency conflicts. - -It may be different for you, but do keep that in mind. If you do not want to spend time on that, you might want to try [Ubuntu Unity][4] instead. - -### Wrapping Up - -For Unity desktop fans, this is a good thing. More distributions may consider having a variant with a Unity desktop on board. - -Do you want that to happen? - -_💬 Are you an existing user of Unity desktop? Want to give it a try? Share your thoughts in the comments._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/unity-arch-linux/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://about.ruds.io -[2]: https://news.itsfoss.com/content/images/2022/11/unity_for_arch.jpg -[3]: https://itsfoss.com/paru-aur-helper/ -[4]: https://ubuntuunity.org diff --git a/translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md new file mode 100644 index 0000000000..1cb5d92805 --- /dev/null +++ b/translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md @@ -0,0 +1,71 @@ +[#]: subject: "You Can Now Install Unity 7.6 Desktop on Arch Linux" +[#]: via: "https://news.itsfoss.com/unity-arch-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +你现在可以在 Arch Linux 上安装 Unity 7.6 桌面 +====== + +Unity Desktop 是由 Canonical 构建的经典桌面环境,它从 2010 年到 2017 年是 Ubuntu 的一部分,但为了支持 GNOME 而放弃。 + +我们认为它永远被杀死了。但它卷土重来。 + +今年早些时候,自 2016 年 5 月上次更新以来,经过长达 6 年的时间,Unity 的改进版本发布了。 + +开发由一位年轻的开发人员 [Rudra Saraswat][1] 带头,他也是 [Ubuntu Unity][1] 的创建者,它现在是 Ubuntu 的官方版本。 + +Unity 7.6 的发布标志着大量改进的到来。 + +而且,更进一步,Unity 7.6 已可用于 Arch Linux。开发者提到: + +> 此移植基于 chenxiaolong 的早期成果 Unity-for-Arch(2011-2016 年维护)。 + +### 在 Arch Linux 上试用 Unity 7.6 + +![unity on arch linux][2] + +首先,你必须确保你已经安装了 Arch Linux。 + +Then you can follow these steps to run Unity 7.6 on Arch Linux: +然后你可以按照以下步骤在 Arch Linux 上运行 Unity 7.6: + +- **安装“[Paru][3]”,它是一个 AUR 助手。** +- **使用 “paru -S unity-installer-arch” 安装名为 “unity-installer-arch” 的脚本** +- **在 TTY/终端窗口中运行 “unity-installer-arch”。** +- **选择 “安装 Unity 桌面”。** +- **将默认显示管理器更改为 “lightdm”。** +- **使用 “unity-greeter” 作为默认登录界面。** + +的同事 Sreenath 尝试了一下,在安装过程中,由于多重依赖冲突,他不得不从全新的 Arch 开始。 + +对你来说可能有所不同,但请记住这一点。如果你不想花时间在这上面,你可能想试试 [Ubuntu Unity][4]。 + +### 总结 + +对于 Unity 桌面爱好者来说,这是一件好事。更多发行版可能会考虑使用带有 Unity 桌面的变体。 + +你想让那发生吗? + +_💬 你是 Unity 桌面的现有用户吗?想试试看么?在评论区分享你的观点。_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unity-arch-linux/ + +作者:[Sourav Rudra][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://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://about.ruds.io +[2]: https://news.itsfoss.com/content/images/2022/11/unity_for_arch.jpg +[3]: https://itsfoss.com/paru-aur-helper/ +[4]: https://ubuntuunity.org From edbe5a1624f6738a3a7edff3c9344c3f647dea25 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Dec 2022 08:55:32 +0800 Subject: [PATCH 2193/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202211?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...efinitive Guide to Using and Customizing the Dock in Ubuntu.md | 0 ...10202 Convert audio files with this versatile Linux command.md | 0 .../{ => 202211}/20210415 5 reasons sysadmins love systemd.md | 0 ... an open source design system to create new community logos.md | 0 ...210607 Identify security properties on Linux using checksec.md | 0 ...0618 5 more reasons to run Kubernetes in your Linux homelab.md | 0 published/{ => 202211}/20210623 Parsing config files with Lua.md | 0 ...ng Packages From External Repositories in Ubuntu -Explained.md | 0 .../20210811 My top 5 tips for setting up Terraform.md | 0 ...20 Diagnose connectivity issues with the Linux ping command.md | 0 ...Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md | 0 .../20220524 12 essential Linux commands for beginners.md | 0 ...w to Record Audio in Linux With Audacity -and Reduce Noise-.md | 0 .../{ => 202211}/20220903 Infuse your awk scripts with Groovy.md | 0 .../20220912 Why do domain names sometimes end with a dot.md | 0 ...How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md | 0 .../20220929 Execute Commands On Remote Linux Systems Via SSH.md | 0 .../20221004 5 Best Python IDE-s- and Code Editor-s-.md | 0 .../20221013 What you need to know about compiling code.md | 0 ...14 13 Independent Linux Distros That are Built From Scratch.md | 0 ...21015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md | 0 ...⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md | 0 ...0221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md | 0 ...9.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md | 0 .../20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md | 0 .../20221020.7 ⭐️ 4 open source editors I use for my writing.md | 0 ...ow to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md | 0 .../20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md | 0 .../{ => 202211}/20221022 What-s new in Fedora Workstation 37.md | 0 .../20221022.3 ⭐️⭐️ Use open source commands in Powershell.md | 0 .../20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md | 0 ... How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md | 0 ...play commits created on a specific day with the git log command.md | 0 ...⭐️ Transfer files and folders from Windows to Linux with PSCP.md | 0 ... How to Install Python 3.11 in Ubuntu and Other Related Linux.md | 0 ...26.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md | 0 .../20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md | 0 ...️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md | 0 .../20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md | 0 ...️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md | 0 ...⭐️ Transfer files and folders from Windows to Linux with WinSCP.md | 0 ...️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md | 0 ...⭐️ The Android Open Source Project Is Now RISC-V Compatible.md | 0 ...101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md | 0 published/{ => 202211}/20221101.5 ⭐️ Linux Lite 6.2 Released.md | 0 ... Move Virtual Machine Image to Another Host Using GNOME Boxes.md | 0 ...21102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md | 0 published/{ => 202211}/20221103.0 ⭐️⭐️ Is Lua worth learning.md | 0 ...️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md | 0 .../20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md | 0 ...️ How to Install Latest LibreOffice in Ubuntu and other Linux.md | 0 ...21104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md | 0 .../20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md | 0 ...20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md | 0 .../20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md | 0 ....4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md | 0 ...09.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md | 0 ....5 ⭐️ How to Find Systemd or Any Other init System in Linux.md | 0 .../20221109.6 ⭐️ Using Python in VS Code and Codium.md | 0 .../20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md | 0 .../20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md | 0 ... to Install LibreOffice Base Database in Ubuntu and Other Linux.md | 0 ...221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md | 0 ...️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md | 0 .../20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md | 0 .../20221112.0 ⭐️ Learn Python 7 of my favorite resources.md | 0 published/{ => 202211}/20221115 Announcing Fedora Linux 37.md | 0 .../20221118 How to rebase to Fedora Linux 37 on Silverblue.md | 0 ...top Alternatives to Enhance Your Linux System Monitoring Experience.md | 0 ... macOS Alternative helloSystem (0.7.0) is moving towards stability.md | 0 ...r to Integrate its Own Open Source Engine for a Strong Comeback.md | 0 71 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202211}/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md (100%) rename published/{ => 202211}/20210202 Convert audio files with this versatile Linux command.md (100%) rename published/{ => 202211}/20210415 5 reasons sysadmins love systemd.md (100%) rename published/{ => 202211}/20210426 How we built an open source design system to create new community logos.md (100%) rename published/{ => 202211}/20210607 Identify security properties on Linux using checksec.md (100%) rename published/{ => 202211}/20210618 5 more reasons to run Kubernetes in your Linux homelab.md (100%) rename published/{ => 202211}/20210623 Parsing config files with Lua.md (100%) rename published/{ => 202211}/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md (100%) rename published/{ => 202211}/20210811 My top 5 tips for setting up Terraform.md (100%) rename published/{ => 202211}/20211020 Diagnose connectivity issues with the Linux ping command.md (100%) rename published/{ => 202211}/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md (100%) rename published/{ => 202211}/20220524 12 essential Linux commands for beginners.md (100%) rename published/{ => 202211}/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md (100%) rename published/{ => 202211}/20220903 Infuse your awk scripts with Groovy.md (100%) rename published/{ => 202211}/20220912 Why do domain names sometimes end with a dot.md (100%) rename published/{ => 202211}/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md (100%) rename published/{ => 202211}/20220929 Execute Commands On Remote Linux Systems Via SSH.md (100%) rename published/{ => 202211}/20221004 5 Best Python IDE-s- and Code Editor-s-.md (100%) rename published/{ => 202211}/20221013 What you need to know about compiling code.md (100%) rename published/{ => 202211}/20221014 13 Independent Linux Distros That are Built From Scratch.md (100%) rename published/{ => 202211}/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md (100%) rename published/{ => 202211}/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md (100%) rename published/{ => 202211}/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md (100%) rename published/{ => 202211}/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md (100%) rename published/{ => 202211}/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md (100%) rename published/{ => 202211}/20221020.7 ⭐️ 4 open source editors I use for my writing.md (100%) rename published/{ => 202211}/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md (100%) rename published/{ => 202211}/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md (100%) rename published/{ => 202211}/20221022 What-s new in Fedora Workstation 37.md (100%) rename published/{ => 202211}/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md (100%) rename published/{ => 202211}/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md (100%) rename published/{ => 202211}/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md (100%) rename published/{ => 202211}/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md (100%) rename published/{ => 202211}/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md (100%) rename published/{ => 202211}/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md (100%) rename published/{ => 202211}/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md (100%) rename published/{ => 202211}/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md (100%) rename published/{ => 202211}/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md (100%) rename published/{ => 202211}/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md (100%) rename published/{ => 202211}/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md (100%) rename published/{ => 202211}/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md (100%) rename published/{ => 202211}/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md (100%) rename published/{ => 202211}/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md (100%) rename published/{ => 202211}/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md (100%) rename published/{ => 202211}/20221101.5 ⭐️ Linux Lite 6.2 Released.md (100%) rename published/{ => 202211}/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md (100%) rename published/{ => 202211}/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md (100%) rename published/{ => 202211}/20221103.0 ⭐️⭐️ Is Lua worth learning.md (100%) rename published/{ => 202211}/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md (100%) rename published/{ => 202211}/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md (100%) rename published/{ => 202211}/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md (100%) rename published/{ => 202211}/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md (100%) rename published/{ => 202211}/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md (100%) rename published/{ => 202211}/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md (100%) rename published/{ => 202211}/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md (100%) rename published/{ => 202211}/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md (100%) rename published/{ => 202211}/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md (100%) rename published/{ => 202211}/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md (100%) rename published/{ => 202211}/20221109.6 ⭐️ Using Python in VS Code and Codium.md (100%) rename published/{ => 202211}/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md (100%) rename published/{ => 202211}/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md (100%) rename published/{ => 202211}/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md (100%) rename published/{ => 202211}/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md (100%) rename published/{ => 202211}/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md (100%) rename published/{ => 202211}/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md (100%) rename published/{ => 202211}/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md (100%) rename published/{ => 202211}/20221115 Announcing Fedora Linux 37.md (100%) rename published/{ => 202211}/20221118 How to rebase to Fedora Linux 37 on Silverblue.md (100%) rename published/{ => 202211}/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md (100%) rename published/{ => 202211}/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md (100%) rename published/{ => 202211}/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md (100%) diff --git a/published/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/published/202211/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md similarity index 100% rename from published/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md rename to published/202211/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md diff --git a/published/20210202 Convert audio files with this versatile Linux command.md b/published/202211/20210202 Convert audio files with this versatile Linux command.md similarity index 100% rename from published/20210202 Convert audio files with this versatile Linux command.md rename to published/202211/20210202 Convert audio files with this versatile Linux command.md diff --git a/published/20210415 5 reasons sysadmins love systemd.md b/published/202211/20210415 5 reasons sysadmins love systemd.md similarity index 100% rename from published/20210415 5 reasons sysadmins love systemd.md rename to published/202211/20210415 5 reasons sysadmins love systemd.md diff --git a/published/20210426 How we built an open source design system to create new community logos.md b/published/202211/20210426 How we built an open source design system to create new community logos.md similarity index 100% rename from published/20210426 How we built an open source design system to create new community logos.md rename to published/202211/20210426 How we built an open source design system to create new community logos.md diff --git a/published/20210607 Identify security properties on Linux using checksec.md b/published/202211/20210607 Identify security properties on Linux using checksec.md similarity index 100% rename from published/20210607 Identify security properties on Linux using checksec.md rename to published/202211/20210607 Identify security properties on Linux using checksec.md diff --git a/published/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/published/202211/20210618 5 more reasons to run Kubernetes in your Linux homelab.md similarity index 100% rename from published/20210618 5 more reasons to run Kubernetes in your Linux homelab.md rename to published/202211/20210618 5 more reasons to run Kubernetes in your Linux homelab.md diff --git a/published/20210623 Parsing config files with Lua.md b/published/202211/20210623 Parsing config files with Lua.md similarity index 100% rename from published/20210623 Parsing config files with Lua.md rename to published/202211/20210623 Parsing config files with Lua.md diff --git a/published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/published/202211/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md similarity index 100% rename from published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md rename to published/202211/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md diff --git a/published/20210811 My top 5 tips for setting up Terraform.md b/published/202211/20210811 My top 5 tips for setting up Terraform.md similarity index 100% rename from published/20210811 My top 5 tips for setting up Terraform.md rename to published/202211/20210811 My top 5 tips for setting up Terraform.md diff --git a/published/20211020 Diagnose connectivity issues with the Linux ping command.md b/published/202211/20211020 Diagnose connectivity issues with the Linux ping command.md similarity index 100% rename from published/20211020 Diagnose connectivity issues with the Linux ping command.md rename to published/202211/20211020 Diagnose connectivity issues with the Linux ping command.md diff --git a/published/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/published/202211/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md similarity index 100% rename from published/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md rename to published/202211/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md diff --git a/published/20220524 12 essential Linux commands for beginners.md b/published/202211/20220524 12 essential Linux commands for beginners.md similarity index 100% rename from published/20220524 12 essential Linux commands for beginners.md rename to published/202211/20220524 12 essential Linux commands for beginners.md diff --git a/published/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/published/202211/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md similarity index 100% rename from published/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md rename to published/202211/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md diff --git a/published/20220903 Infuse your awk scripts with Groovy.md b/published/202211/20220903 Infuse your awk scripts with Groovy.md similarity index 100% rename from published/20220903 Infuse your awk scripts with Groovy.md rename to published/202211/20220903 Infuse your awk scripts with Groovy.md diff --git a/published/20220912 Why do domain names sometimes end with a dot.md b/published/202211/20220912 Why do domain names sometimes end with a dot.md similarity index 100% rename from published/20220912 Why do domain names sometimes end with a dot.md rename to published/202211/20220912 Why do domain names sometimes end with a dot.md diff --git a/published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md b/published/202211/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md similarity index 100% rename from published/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md rename to published/202211/20220916 How to Install Kubernetes Cluster on Debian 11 with Kubeadm.md diff --git a/published/20220929 Execute Commands On Remote Linux Systems Via SSH.md b/published/202211/20220929 Execute Commands On Remote Linux Systems Via SSH.md similarity index 100% rename from published/20220929 Execute Commands On Remote Linux Systems Via SSH.md rename to published/202211/20220929 Execute Commands On Remote Linux Systems Via SSH.md diff --git a/published/20221004 5 Best Python IDE-s- and Code Editor-s-.md b/published/202211/20221004 5 Best Python IDE-s- and Code Editor-s-.md similarity index 100% rename from published/20221004 5 Best Python IDE-s- and Code Editor-s-.md rename to published/202211/20221004 5 Best Python IDE-s- and Code Editor-s-.md diff --git a/published/20221013 What you need to know about compiling code.md b/published/202211/20221013 What you need to know about compiling code.md similarity index 100% rename from published/20221013 What you need to know about compiling code.md rename to published/202211/20221013 What you need to know about compiling code.md diff --git a/published/20221014 13 Independent Linux Distros That are Built From Scratch.md b/published/202211/20221014 13 Independent Linux Distros That are Built From Scratch.md similarity index 100% rename from published/20221014 13 Independent Linux Distros That are Built From Scratch.md rename to published/202211/20221014 13 Independent Linux Distros That are Built From Scratch.md diff --git a/published/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md b/published/202211/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md similarity index 100% rename from published/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md rename to published/202211/20221015.0 ⭐️ How to Enable and Access USB Drive in VirtualBox.md diff --git a/published/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md b/published/202211/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md similarity index 100% rename from published/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md rename to published/202211/20221017.1 ⭐️ How to Update or Upgrade Ubuntu Offline without Internet.md diff --git a/published/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md b/published/202211/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md similarity index 100% rename from published/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md rename to published/202211/20221019.1 ⭐️ How to Install Viber in Ubuntu and Other Linux.md diff --git a/published/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md b/published/202211/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md similarity index 100% rename from published/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md rename to published/202211/20221019.2 ⭐️ How to Clean Up Snap Versions to Free Up Disk Space.md diff --git a/published/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md b/published/202211/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md similarity index 100% rename from published/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md rename to published/202211/20221020.0 ⭐️ How to Check:Xorg or Wayland Display Server.md diff --git a/published/20221020.7 ⭐️ 4 open source editors I use for my writing.md b/published/202211/20221020.7 ⭐️ 4 open source editors I use for my writing.md similarity index 100% rename from published/20221020.7 ⭐️ 4 open source editors I use for my writing.md rename to published/202211/20221020.7 ⭐️ 4 open source editors I use for my writing.md diff --git a/published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md b/published/202211/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md similarity index 100% rename from published/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md rename to published/202211/20221021.1 ⭐️ How to Upgrade to Ubuntu 22.10 From 22.04 LTS (Jammy to Kinetic).md diff --git a/published/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md b/published/202211/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md similarity index 100% rename from published/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md rename to published/202211/20221021.3 ⭐️ How to Install AWS CLI on Linux Step-by-Step.md diff --git a/published/20221022 What-s new in Fedora Workstation 37.md b/published/202211/20221022 What-s new in Fedora Workstation 37.md similarity index 100% rename from published/20221022 What-s new in Fedora Workstation 37.md rename to published/202211/20221022 What-s new in Fedora Workstation 37.md diff --git a/published/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md b/published/202211/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md similarity index 100% rename from published/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md rename to published/202211/20221022.3 ⭐️⭐️ Use open source commands in Powershell.md diff --git a/published/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md b/published/202211/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md similarity index 100% rename from published/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md rename to published/202211/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md diff --git a/published/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md b/published/202211/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md similarity index 100% rename from published/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md rename to published/202211/20221024.1 ⭐️ How to Check CPU and HDD Temperature in Ubuntu and Other Linux.md diff --git a/published/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md b/published/202211/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md similarity index 100% rename from published/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md rename to published/202211/20221024.3 ⭐️ How to display commits created on a specific day with the git log command.md diff --git a/published/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md b/published/202211/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md similarity index 100% rename from published/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md rename to published/202211/20221025.0 ⭐️⭐️ Transfer files and folders from Windows to Linux with PSCP.md diff --git a/published/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md b/published/202211/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md similarity index 100% rename from published/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md rename to published/202211/20221026.4 ⭐️ How to Install Python 3.11 in Ubuntu and Other Related Linux.md diff --git a/published/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md b/published/202211/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md similarity index 100% rename from published/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md rename to published/202211/20221026.5 ⭐️ Vanilla OS More Than Just Vanilla GNOME With Ubuntu.md diff --git a/published/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md b/published/202211/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md similarity index 100% rename from published/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md rename to published/202211/20221027.0 ⭐️ How to Upgrade Python Packages with Pip.md diff --git a/published/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md b/published/202211/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md similarity index 100% rename from published/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md rename to published/202211/20221027.6 ⭐️⭐️ Top 10 Linux Distributions for Programmers in 2022 [Featured].md diff --git a/published/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md b/published/202211/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md similarity index 100% rename from published/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md rename to published/202211/20221030.0 ⭐️ How to Enable Dark Mode in Web Browser.md diff --git a/published/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md b/published/202211/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md similarity index 100% rename from published/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md rename to published/202211/20221030.2 ⭐️⭐️ Install WoeUSB on Ubuntu to Create a Bootable Windows USB.md diff --git a/published/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md b/published/202211/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md similarity index 100% rename from published/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md rename to published/202211/20221101.1 ⭐️⭐️ Transfer files and folders from Windows to Linux with WinSCP.md diff --git a/published/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md b/published/202211/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md similarity index 100% rename from published/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md rename to published/202211/20221101.10 ⭐️⭐️ Best Remote Desktop Clients for Ubuntu and Other Linux [2022].md diff --git a/published/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md b/published/202211/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md similarity index 100% rename from published/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md rename to published/202211/20221101.3 ⭐️ The Android Open Source Project Is Now RISC-V Compatible.md diff --git a/published/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md b/published/202211/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md similarity index 100% rename from published/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md rename to published/202211/20221101.4 ⭐️⭐️ Kate Editor is Getting Four New Awesome Features.md diff --git a/published/20221101.5 ⭐️ Linux Lite 6.2 Released.md b/published/202211/20221101.5 ⭐️ Linux Lite 6.2 Released.md similarity index 100% rename from published/20221101.5 ⭐️ Linux Lite 6.2 Released.md rename to published/202211/20221101.5 ⭐️ Linux Lite 6.2 Released.md diff --git a/published/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md b/published/202211/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md similarity index 100% rename from published/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md rename to published/202211/20221101.7 ⭐️ Move Virtual Machine Image to Another Host Using GNOME Boxes.md diff --git a/published/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md b/published/202211/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md similarity index 100% rename from published/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md rename to published/202211/20221102.1 ⭐️ Linux Mint's Update Manager Now Supports Flatpak.md diff --git a/published/20221103.0 ⭐️⭐️ Is Lua worth learning.md b/published/202211/20221103.0 ⭐️⭐️ Is Lua worth learning.md similarity index 100% rename from published/20221103.0 ⭐️⭐️ Is Lua worth learning.md rename to published/202211/20221103.0 ⭐️⭐️ Is Lua worth learning.md diff --git a/published/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md b/published/202211/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md similarity index 100% rename from published/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md rename to published/202211/20221103.2 ⭐️⭐️ How to Trim a Video in VLC Player [If You Really Want to].md diff --git a/published/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md b/published/202211/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md similarity index 100% rename from published/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md rename to published/202211/20221103.3 ⭐️⭐️ Xfce 4.18 Top New Features & Release Guide.md diff --git a/published/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md b/published/202211/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md similarity index 100% rename from published/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md rename to published/202211/20221104.3 ⭐️ How to Install Latest LibreOffice in Ubuntu and other Linux.md diff --git a/published/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md b/published/202211/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md similarity index 100% rename from published/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md rename to published/202211/20221104.4 ⭐️ How to Remove Firefox Snap from Ubuntu (21.10 +).md diff --git a/published/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md b/published/202211/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md similarity index 100% rename from published/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md rename to published/202211/20221105.0 ⭐️⭐️ Fix scanned images with ImageMagick.md diff --git a/published/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md b/published/202211/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md similarity index 100% rename from published/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md rename to published/202211/20221105.1 ⭐️ How to Install Cinnamon Desktop in Arch Linux.md diff --git a/published/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md b/published/202211/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md similarity index 100% rename from published/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md rename to published/202211/20221107.3 ⭐️⭐️ How to Install Node.js on RHEL 9.md diff --git a/published/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md b/published/202211/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md similarity index 100% rename from published/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md rename to published/202211/20221107.4 ⭐️ How to Boost Speaker Volume in Ubuntu and Other Linux.md diff --git a/published/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md b/published/202211/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md similarity index 100% rename from published/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md rename to published/202211/20221109.1 ⭐️⭐️⭐️ 31 Linux Commands Every Ubuntu User Should Know.md diff --git a/published/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md b/published/202211/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md similarity index 100% rename from published/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md rename to published/202211/20221109.5 ⭐️ How to Find Systemd or Any Other init System in Linux.md diff --git a/published/20221109.6 ⭐️ Using Python in VS Code and Codium.md b/published/202211/20221109.6 ⭐️ Using Python in VS Code and Codium.md similarity index 100% rename from published/20221109.6 ⭐️ Using Python in VS Code and Codium.md rename to published/202211/20221109.6 ⭐️ Using Python in VS Code and Codium.md diff --git a/published/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md b/published/202211/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md similarity index 100% rename from published/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md rename to published/202211/20221110.0 ⭐️ How to Fix sudo Command Not Found Error.md diff --git a/published/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md b/published/202211/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md similarity index 100% rename from published/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md rename to published/202211/20221110.1 ⭐️ How to Fix bash wget Command Not Found Error.md diff --git a/published/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md b/published/202211/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md similarity index 100% rename from published/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md rename to published/202211/20221111.0 ⭐️ How to Install LibreOffice Base Database in Ubuntu and Other Linux.md diff --git a/published/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md b/published/202211/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md similarity index 100% rename from published/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md rename to published/202211/20221111.1 ⭐️ How to Install FFmpeg in Ubuntu and Other Linux.md diff --git a/published/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md b/published/202211/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md similarity index 100% rename from published/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md rename to published/202211/20221111.2 ⭐️⭐️ How to Install Elementary OS’s Pantheon Desktop in Arch Linux.md diff --git a/published/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md b/published/202211/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md similarity index 100% rename from published/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md rename to published/202211/20221111.5 ⭐️⭐️ How to switch from Twitter to Mastodon.md diff --git a/published/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md b/published/202211/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md similarity index 100% rename from published/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md rename to published/202211/20221112.0 ⭐️ Learn Python 7 of my favorite resources.md diff --git a/published/20221115 Announcing Fedora Linux 37.md b/published/202211/20221115 Announcing Fedora Linux 37.md similarity index 100% rename from published/20221115 Announcing Fedora Linux 37.md rename to published/202211/20221115 Announcing Fedora Linux 37.md diff --git a/published/20221118 How to rebase to Fedora Linux 37 on Silverblue.md b/published/202211/20221118 How to rebase to Fedora Linux 37 on Silverblue.md similarity index 100% rename from published/20221118 How to rebase to Fedora Linux 37 on Silverblue.md rename to published/202211/20221118 How to rebase to Fedora Linux 37 on Silverblue.md diff --git a/published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md b/published/202211/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md similarity index 100% rename from published/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md rename to published/202211/20221121.3 ⭐️⭐️ 5 htop Alternatives to Enhance Your Linux System Monitoring Experience.md diff --git a/published/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md b/published/202211/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md similarity index 100% rename from published/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md rename to published/202211/20221122.1 ⭐️⭐️ macOS Alternative helloSystem (0.7.0) is moving towards stability.md diff --git a/published/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md b/published/202211/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md similarity index 100% rename from published/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md rename to published/202211/20221125.1 ⭐️ Excellent News! Midori Browser to Integrate its Own Open Source Engine for a Strong Comeback.md From dec16838261822d9903720a6fb2e4db16d6ddad0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 1 Dec 2022 09:01:01 +0800 Subject: [PATCH 2194/3123] translating --- sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md index b44bf66c2d..c5581962f0 100644 --- a/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md +++ b/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/lua-command-arguments" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1ab8e7ebf8457ed8fb49b53afe4067cd3ee071c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Dec 2022 09:41:44 +0800 Subject: [PATCH 2195/3123] RP @chai001125 https://linux.cn/article-15306-1.html --- ...en-Source Signal Protocol for Encrypted DMs.md | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) rename {translated/news => published}/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md (69%) diff --git a/translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md similarity index 69% rename from translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md rename to published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md index 94754d9ab7..d4a75354af 100644 --- a/translated/news/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md +++ b/published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md @@ -3,22 +3,26 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15306-1.html" -埃隆马斯克的推特将添加开源 Signal 协议,实现加密私信 +埃隆·马斯克的 Twitter 将添加开源 Signal 协议,实现加密私信 ====== -今年早些时候,埃隆马斯克 [在推特上表示][1]:Twitter 的 私信 Direct Messages (DM)需要像 Signal 协议这样的 端到端加密 End-to-End Encryption 。 +> 埃隆·马斯克证实,加密的私信即将到来! 这是好东西。 + +![](https://news.itsfoss.com/content/images/size/w2000/2022/11/twitter-to-add-signal-encrypted-dms.png) + +今年早些时候,埃隆·马斯克 [在 Twitter 上表示][1]:Twitter 的 私信 Direct Messages (DM)需要像 Signal 协议这样的 端到端加密 End-to-End Encryption 。 早在 2016 年,**爱德华·斯诺登**就 [要求][2] Twitter 的前首席执行官兼联合创始人**杰克·多尔西**添加 Signal 协议类似的安全措施到 Twitter 平台。 但是,这个协议从来没有被添加到 Twitter。它可能经过测试但还未部署实施。 -根据最近的公告,Twitter 似乎即将实现这个安全协议😌。 +根据最近的公告,Twitter 似乎即将实现这个安全协议 😌。 -Elon 分享了他在公司演讲中的几张幻灯片,其中就包括为 Twitter 2.0 路线图规划的“**加密私信**”。 +马斯克分享了他在公司演讲中的几张幻灯片,其中就包括为 Twitter 2.0 路线图规划的“**加密私信**”。 ### 🔒 Twitter 通信的 Signal 协议 @@ -26,31 +30,29 @@ Elon 分享了他在公司演讲中的几张幻灯片,其中就包括为 Twitt 虽然有一些安全研究员,例如 [黄文津][4],已经在 Twitter 的 iOS 和 Android 应用程序中发现了对 [Signal 协议][5] 的代码引用。 -但是直到现在,埃隆马斯克才在 [推文][6] 中确认了该计划,该推文介绍了根据 **“Twitter 2.0”** 路线图将对 Twitter 平台进行的改进。 +但是直到现在,埃隆·马斯克才在 [推文][6] 中确认了该计划,该推文介绍了根据 **“Twitter 2.0”** 路线图将对 Twitter 平台进行的改进。 -换句话说,埃隆马斯克正式确认 Twitter 即将推出**加密的私信**。 +换句话说,埃隆·马斯克正式确认 Twitter 即将推出**加密私信**。 ![twitter dm signal protocol][7] -**对于那些不知道 Signal 协议的人**,我们简要地介绍一下 Signal 协议:Signal 协议是一种开源的加密协议,它允许以 完全前向保密 ([PFS][8]) perfect forward secrecy 方式实施端到端加密。 +**对于那些不知道 Signal 协议的人**,我们简要地介绍一下 Signal 协议:Signal 协议是一种开源的加密协议,它允许以 [完全前向保密][8] perfect forward secrecy (PFS)方式实施端到端加密。 -该协议使用 “_双棘轮算法_” Double Ratchet algorithm ,通信双方根据不断变化的共享密钥,来交换加密的消息。 +该协议使用 “双棘轮算法 Double Ratchet algorithm ”,通信双方根据不断变化的共享密钥,来交换加密的消息。 这确保没有第三方可以得到通信消息的内容,因为共享密钥仅存在于通信双方的设备上。 [Signal][9] 应用程序充分利用了这个方法。但是,进一步来说,还有几个以隐私为中心的替代方案: -[不想用 WhatsApp 这一通讯软件?这是 WhatsApp 的 5 种更好的隐私替代方案][10] +(LCTT 译注:Signal 协议是一种真正的端到端加密的通讯协议,号称是世界上最安全的通讯协议。只有参与通讯的用户可以读取并解密信息,而任何第三方(包括服务器)都无法查看到通讯的内容。总的来说,它可以防止潜在的窃听者(包括:通信服务商、互联网服务提供商甚至是该通讯系统的提供者),获取能够用以解密通讯内容的密钥。目前有大量即时通讯软件也使用或借鉴参考了 Signal 协议,例如:Skype、What'sApp、Facebook Messenger) -(LCTT 译注:Signal 协议是一种真正的端到端加密的通讯协议,号称是世界上最安全的通讯协议。只有参与通讯的用户可以读取并解密信息,而任何第三方(包括服务器)都无法查看到通讯的内容。总的来说,它可以防止潜在的窃听者(包括:通信服务商、互联网服务提供商甚至是该通讯系统的提供者),获取能够用以解密通讯内容的密钥。目前有大量即时通讯软件也使用或借鉴参考了 Signal 协议,例如:Skype、What’sApp、Facebook Messenger) - -**Signal 协议如何帮助 Twitter DM?** +#### Signal 协议如何帮助 Twitter DM? 它可以防止恶意攻击者和政府去窥探 Twitter 用户的消息,从而使 Twitter 成为一个更加安全的平台。 Twitter 添加加密私信会对举报人、记者和社会活动家有益,因为他们经常会因其工作而面临被审查或成为攻击目标。 -诚然,就隐私而言,加密私信可能不是最严厉的保护措施。但**有总比没有好**。 +诚然,就隐私而言,加密私信可能不是最严格的保护措施。但**有总比没有好**。 ### 🔏 加密消息应该成为通讯软件的标准 @@ -67,7 +69,7 @@ via: https://news.itsfoss.com/twitter-signal/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e0d804f3ce6acd05ed9502c5e7eda08750890073 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 1 Dec 2022 15:13:17 +0800 Subject: [PATCH 2196/3123] RP @geekpi https://linux.cn/article-15308-1.html --- ...OpenOffice in Arch Linux [Beginner’s Guide].md | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) rename {translated/tech => published}/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md (65%) diff --git a/translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md similarity index 65% rename from translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md rename to published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md index 9fefcb15a6..ed68a3711c 100644 --- a/translated/tech/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md +++ b/published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md @@ -3,44 +3,46 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15308-1.html" 如何在 Arch Linux 中安装 OpenOffice(新手指南) ====== -**在 Arch Linux 及其衍生版中安装 OpenOffice 的初学者指南。** +![][0] -[OpenOffice][1] 是最古老的免费开源办公生产力套件,已经维护了一段时间。它是由 Apache 开发,尽管它已经被分叉为 LibreOffice,但仍然是一个受欢迎的套件。 +> 在 Arch Linux 及其衍生版中安装 OpenOffice 的初学者指南。 + +[OpenOffice][1] 是最古老的自由开源的办公生产力套件,已经维护了一段时间。它是由 Apache 开发,尽管它已经被分叉为 LibreOffice,但仍然是一个受欢迎的套件。 本教程适用于那些想要安装 OpenOffice 以满足工作和其他需要的人。 -**注意**:在安装之前,请记住许多更新的功能和与 Microsoft Office 的兼容性在 OpenOffice 中并未得到完全支持。如果你想要更现代的 Office 套件版本,请尝试 [LibreOffice][2]。 +**注意**:在安装之前,请记住许多更新的功能和与微软 Office 的兼容性在 OpenOffice 中并未得到完全支持。如果你想要更现代的 Office 套件版本,请尝试 [LibreOffice][2]。 ### 在 Arch Linux 中安装 OpenOffice -[OpenOffice 软件包][3]在 Arch 用户仓库中可用。因此,要安装它,你需要使用 Aur 助手程序。这是你需要做的。按照下面提到的步骤安装 Yay AUR 助手。如果你想了解有关 Yay 的更多信息,请参阅[此处提供][4]的详细指南。 +[OpenOffice 软件包][3] 在 Arch 用户仓库中可用。因此,要安装它,你需要使用 AUR 助手程序。这是你需要做的。按照下面提到的步骤安装 Yay AUR 助手。如果你想了解有关 Yay 的更多信息,请参阅 [此处提供][4] 的详细指南。 -- 依次运行以下命令来安装基本包并克隆 Yay。 +依次运行以下命令来安装基本包并克隆 Yay: ``` sudo pacman -S base-develsudo pacman -S gitcd /optsudo git clone https://aur.archlinux.org/yay.git ``` -- 通过将 `debugpoint` 替换为你的 Arch 系统的用户名来运行以下命令。 +通过将 `debugpoint` 替换为你的 Arch 系统的用户名来运行以下命令: ``` sudo chown -R debugpoint:users ./yay ``` -- 最后,使用以下命令安装 AUR 助手。 +最后,使用以下命令安装 AUR 助手: ``` cd yaymakepkg -si ``` -- 完成后,使用以下命令安装 OpenOffice: +完成后,使用以下命令安装 OpenOffice: ``` yay -S openoffice-bin @@ -58,7 +60,7 @@ yay -S openoffice-bin ### 总结 -使用上述方法,你还可以在 Majnaro 和其他基于 Arch Linux 的发行版中安装 OpenOffice。尽管它是一个较旧的办公生产力套件,但你应该记住,它并不完全兼容现代 Microsoft Office 文档类型(例如 docx、xlsx)。 +使用上述方法,你还可以在 Majnaro 和其他基于 Arch Linux 的发行版中安装 OpenOffice。尽管它是一个较旧的办公生产力套件,但你应该记住,它并不完全兼容现代微软 Office 文档类型(例如 docx、xlsx)。 如果你在安装过程中遇到任何错误,请在下面的评论栏中给我们留言。 @@ -69,7 +71,7 @@ via: https://www.debugpoint.com/install-openoffice-arch/ 作者:[Arindam][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/) 荣誉推出 @@ -82,3 +84,4 @@ via: https://www.debugpoint.com/install-openoffice-arch/ [5]: https://www.debugpoint.com/wp-content/uploads/2022/11/Install-OpenOffice-in-Arch-Linux-via-Yay-helper.jpg [6]: https://www.debugpoint.com/wp-content/uploads/2022/11/OpenOffice-in-Arch-Linux-Application-Menu-XFCE.jpg [7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Latest-OpenOffice-running-in-Arch-Linux.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202212/01/151227rcrfy8marckyftyg.jpg \ No newline at end of file From 69035db5ba81b86ef7cb4c92b3405afe86aae2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 21:32:36 +0800 Subject: [PATCH 2197/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221130.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Exodia=20OS=20Emerging=20BSPWM-based=20Arch=20Linux=20for=20Pen?= =?UTF-8?q?testers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Emerging BSPWM-based Arch Linux for Pentesters.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md diff --git a/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md b/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md new file mode 100644 index 0000000000..d0356a01de --- /dev/null +++ b/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md @@ -0,0 +1,146 @@ +[#]: subject: "Exodia OS: Emerging BSPWM-based Arch Linux for Pentesters" +[#]: via: "https://www.debugpoint.com/exodia-os-first-look/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Exodia OS: Emerging BSPWM-based Arch Linux for Pentesters +====== + +**Meet Exodia OS, an Arch-Linux-based distribution in the making**, **for general and advanced usage. Here’s a first look.** + +![Exodia OS home edition][1] + +### Exodia OS: First Look + +A small team of Arch Linux enthusiasts from Egypt is developing Exodia OS based on BSP window manager (BSPWM). The primary use case of this distribution is to be a perfect distro for wire & wireless penetration testing by providing all the necessary tools by default (similar to Kali Linux). + +Exodia OS currently features three editions. The “wireless” edition brings 400+ pre-installed tools for both wire and wireless pen-testers. + +The “home” edition is primarily for daily use and general users. It features all the basic tools and apps for your general use. + +And finally, a third edition called the “predator” edition, specially designed for Acer Predator series Laptops. + +### Installation and first impression + +For this quick review, I did a test run in [Virtualbox][2] virtual machine with the “home” edition. + +The installation was pretty smooth with the Calamares installer. No surprise there. Because a well-customized Calamares hardly fails. After a successful boot, you get a nice login screen with a custom lightdm theme. + +![Exodia-OS login screen - home edition][3] + +In my personal opinion, all the window manager looks way better than desktop environments. And fast too. At its core, Exodia OS uses the BSPWM tiling window manager with custom themes preloaded. There are a total of 16 cool themes pre-loaded, which you can apply via theme chooser (CTRL+ALT+T). + +![Default BSPWM themes][4] + +### BSPWM and themes + +The 16 themes are combined with the context menu [jgmenu][5] and [rofi][6] launcher. When you change the theme, Exodia OS also changes the underlying rofi launcher and themes. + +The jgmenu is super productive with runtime search for applications and settings – which really saves time. In addition, you can browse thru the list of well-categorised apps. Furthermore, jgmneu is completely keyboard-driven, saving your workflow more time. + +![Dynamic search in jgmenu][7] + +![Rofi laucnher theme selector][8] + +![jgmenu looks stunning in BSPWM][9] + +Among all the themes, the top bar ([which is polybar][10]) is pre-selected with all the necessary items. And it’s clickable. The list of items which are available in the top bar: + +- Intelligent workspace switcher by app shortcuts +- Main menu launcher (jgmenu) +- Internet connection status (upload, download and network) +- Battery status, processor + +If you are playing music, a small section shows the artist’s name and playing controls. + +Also, you can see the update notifications. + +Furthermore, Exodia OS is configured to use tiling and floating windows while tiling. You can switch between them with keyboard combinations. + +![Exodia OS with Tiling in BSPWM][11] + +On another note, you can easily custom-make an awesome-looking Arch Linux box for yourself with jgmenu, dmenu, polybar and rofi! + +### Applications and sources + +The home edition is loaded with the application by default. This might be why an Arch distro’s ISO size is slightly over 3GB. However, most of the necessary apps are already installed. If you are a new user, you don’t need to go over the hassles of installing all those apps. + +Here’s a summary for the home edition: + +- Firefox web browser +- Thunar file manager +- Alacritty terminal +- Nitrogen wallpaper chooser +- Vim, Leafpad and Geany text editor +- GParted partition manager +- Timeshift backup tool +- Additional mix of GNOME and Xfce apps + +However, LibreOffice and the [desktop email client][12] are not installed. + +Furthermore, the “wireless” edition includes more applications in addition to the above list. Those are primarily for penetration testing. + +And the “predator” edition features special utilities such as PredatorSense to control CPU/GPU fans and the Keybaord RGB colour of these high-end Acer predator laptops. + +Exodia OS features a set of cool anime-flavoured wallpaper to beautify your Arch Linux further. + +### Performance + +Exodia OS consumes around 875 MB of memory at idle, and the CPU is at 7% average for all cores. And it may go higher from this baseline as you start launching for applications. + +![Exodia OS - performance (idle)][13] + +Most of the resources are consumed by the polybar, X11 and systems for several services. + +Being an Arch distro with the window manager, this metric might be slightly higher due to many pre-built customizations and processes. + +Overall, it should perform fast in recent hardware (not more than five years old). + +### Wrapping up + +Exodia OS is a newborn project and is still under development by a small team from Egypt. It seems the target audience is the security researchers who want a pre-built system with an Arch Linux base. Although, Debian-based Kali Linux is the “go-to” distro for anything related to security and hacking workflow. But Exodia OS might try to be the same with an Arch base. + +The good thing about being an Arch-based distro is – you get easy access to the largest repo with thousands of packages with rolling-release. Plus, the one and only [ArchWiki][14] and documentation. + +With that said, if you want to try it, test it in a [virtual machine][15] before installing it in the physical system. The LIVE medium has a user id `liveuser`, and the password is `exodia`. Also, make sure you know the key bindings of BSPWM before trying it out. The close window combination is `Super+Shift+C`. + +You can download all three editions of ISO files from the [official website][16]. + +Cheers. + +[Next:Download Firefox Browser: All Version Links and Details][17] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/exodia-os-first-look/ + +作者:[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/11/Exodia-OS-home-edition.jpg +[2]: https://www.debugpoint.com/tag/virtualbox +[3]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-login-screen-home-edition.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Default-BSPWM-themes-150x93.jpg +[5]: https://jgmenu.github.io/screenshots.html +[6]: https://github.com/davatorium/rofi +[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Dynamic-search-in-jgmenu-150x186.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/11/Rofi-laucnher-theme-selector-150x93.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/11/jgmenu-looks-stunning-in-BSPWM.jpg +[10]: https://github.com/polybar/polybar +[11]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-with-Tiling-in-BSPWM.jpg +[12]: https://www.debugpoint.com/best-email-client-linux-windows/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-performance-idle-150x109.jpg +[14]: https://wiki.archlinux.org/ +[15]: https://www.debugpoint.com/tag/virtual-machine +[16]: https://exodia-os.github.io/exodia-website/ +[17]: https://www.debugpoint.com/download-firefox/ From ef8415a7f3fe5ee2945bbcdd304813d0dab60be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 22:14:06 +0800 Subject: [PATCH 2198/3123] =?UTF-8?q?Update=2020221130.4=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Exodia=20OS=20Emerging=20BSPWM-ba?= =?UTF-8?q?sed=20Arch=20Linux=20for=20Pentesters.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md b/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md index d0356a01de..d5ae7edc63 100644 --- a/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md +++ b/sources/tech/20221130.4 ⭐️⭐️ Exodia OS Emerging BSPWM-based Arch Linux for Pentesters.md @@ -130,16 +130,16 @@ via: https://www.debugpoint.com/exodia-os-first-look/ [1]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-home-edition.jpg [2]: https://www.debugpoint.com/tag/virtualbox [3]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-login-screen-home-edition.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Default-BSPWM-themes-150x93.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/11/Default-BSPWM-themes.jpg [5]: https://jgmenu.github.io/screenshots.html [6]: https://github.com/davatorium/rofi -[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Dynamic-search-in-jgmenu-150x186.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/11/Rofi-laucnher-theme-selector-150x93.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/11/Dynamic-search-in-jgmenu.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/11/Rofi-laucnher-theme-selector.jpg [9]: https://www.debugpoint.com/wp-content/uploads/2022/11/jgmenu-looks-stunning-in-BSPWM.jpg [10]: https://github.com/polybar/polybar [11]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-with-Tiling-in-BSPWM.jpg [12]: https://www.debugpoint.com/best-email-client-linux-windows/ -[13]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-performance-idle-150x109.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/11/Exodia-OS-performance-idle.jpg [14]: https://wiki.archlinux.org/ [15]: https://www.debugpoint.com/tag/virtual-machine [16]: https://exodia-os.github.io/exodia-website/ From 32554eae4360c994e653ab5c765e3d8f15eadc9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 1 Dec 2022 22:37:18 +0800 Subject: [PATCH 2199/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221127.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Automat?= =?UTF-8?q?ically=20Indent=20Your=20Code=20in=20Visual=20Studio=20Code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ally Indent Your Code in Visual Studio Code.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md diff --git a/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md new file mode 100644 index 0000000000..fb2a25277f --- /dev/null +++ b/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md @@ -0,0 +1,95 @@ +[#]: subject: "How to Automatically Indent Your Code in Visual Studio Code" +[#]: via: "https://itsfoss.com/auto-indent-vs-code/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Automatically Indent Your Code in Visual Studio Code +====== + +The indent in code refers to the space you have at the beginning of the code line. Like other code editors and IDEs, VS Code allows you to indent your code automatically. + +You can set tabs or spaces or whatever you prefer for the indentation. + +Sounds good? Let’s see how to do it. + +### Enable automatic indent in VS Code + +There are multiple ways you can achieve this. In this guide, I will show you three ways to indent your code in visual studio code automatically. + +#### Method 1: Configuring global user settings + +You can access the global user settings via the command pallet. Use `Ctrl + Shift + P` to open the command pallet and search for `Open User Settings` and hit enter: + +![access user setting from command pallet in vscode][1] + +It will open up the settings. From there, you will have to search for `Auto Indent` and choose **Full** as an indent option in **Editor: Auto Indent**: + +![enable auto indent from global user settings in vscode][2] + +And the automatic indent is enabled and applied to every opened file in VSCode. + +#### Method 2: Using linter or formatter for automatic indent in VS Code + +In this method, you will be required to add extensions such as a code formatter or linter to have the desired results. + +Linters will identify the errors in code, whereas formatters will only format your code to make it more readable. You can search for code formatters in the [VSCode marketplace][3] specific to your programming language. + +And here are some of my favorite code formatters and linters for widely popular languages: + +- [C/C++][4]: For C and C++ programming language. +- [PHP][5]: For PHP. +- [markdownlint][6]: For markdown files. +- [Python][7]: For Python programming language. +- [ESLint][8]: For JSON and javascript. +- [Beautify][9]: For javascript, JSON, CSS, Sass, and HTML. + +Once you are done adding a formatter for your preferred programming language, you can press `Ctrl _ Shift + I` to format the code. + +Similarly, you can use do the same using the command pallet. Press `Ctrl + Shift + P` to and search for **Format document**, and hit enter. + +![indent code in VSCode][10] + +#### Method 3: Enable auto indent while saving the file + +VSCode allows you to format your code while saving it with a little tweak. Let me show you how. + +Press `Ctrl + ,` and it will open the user settings prompt. From there, search for **Format On Save**: + +![enable format on save option][11] + + And from now on, your files will add an indent automatically when you save them. + +### Wrapping Up + +In this guide, I explained how you can add an indent automatically in VSCode. I would recommend using the second method for better flexibility. + +I hope you will find this guide helpful and if you have any queries or suggestions, let me know in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/auto-indent-vs-code/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/access-user-setting-from-command-pallet-in-vscode.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/enable-auto-indent-from-global-user-settings-in-vscode.png +[3]: https://marketplace.visualstudio.com/vscode +[4]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools +[5]: https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode +[6]: https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint +[7]: https://marketplace.visualstudio.com/items?itemName=ms-python.python +[8]: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint +[9]: https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify +[10]: https://itsfoss.com/wp-content/uploads/2022/11/format-document-.gif +[11]: https://itsfoss.com/wp-content/uploads/2022/11/enable-format-on-save-option.png From 32212b0c2a182cdb523689c68de27a096f58f3fd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 2 Dec 2022 09:10:35 +0800 Subject: [PATCH 2200/3123] ALL @wxy https://linux.cn/article-15309-1.html --- ... Testing Begins with New Features, Packages.md | 58 +++++++++++++++++++ ... Testing Begins with New Features, Packages.md | 58 ------------------- 2 files changed, 58 insertions(+), 58 deletions(-) create mode 100644 published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md delete mode 100644 sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md diff --git a/published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md b/published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md new file mode 100644 index 0000000000..74843d60dd --- /dev/null +++ b/published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md @@ -0,0 +1,58 @@ +[#]: subject: "Bodhi Linux 7.0.0 Testing Begins with New Features, Packages" +[#]: via: "https://debugpointnews.com/bodhi-linux-7-0-0-testing/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15309-1.html" + +Bodhi Linux 7.0.0 开始测试新的功能和软件包 +====== + +> Bodhi Linux 团队为即将发布的 Bodhi Linux 7.0.0 版本启动了 Alpha 测试。 + +![Bodhi Linux 7.0.0 桌面][1] + +Bodhi Linux 基于 Ubuntu LTS,其带有基于 Enlightenment 的 Moksha 桌面环境。Moksha 桌面是轻量级的,同时也是一个养眼的桌面。此外,它只包括了可以让你开始使用的基本的应用程序。 + +目前的 Bodhi Linux 6 系列基于 Ubuntu 20.04 LTS,发布于 2021 年,正好在 Ubuntu 20.04 LTS 发布后。即将推出的 Bodhi Linux 7.0.0 将基于今年 4 月发布的 Ubuntu 22.04 LTS,带来了基于 Ubuntu 稳定性和更新的软件包。 + +在其核心部分,它采用与 Ubuntu 22.04 一致的 Linux 5.15 LTS 内核。你可以得到基于最新的 Enlightenment 桌面/Enlightenment 基础库(EFL)的改进的 Mokhsna 桌面环境。 + +由于官方的变化日志还没有发布,这里是你在这个版本中得到的版本的一个快速总结。 + +### Bodhi Linux 7.0.0 摘要(暂定) + +- 基于 Ubuntu 22.04 LTS “Jammy Jellyfish” +- Linux 5.15 LTS 内核 +- Enlightenment 基础库(EFL)1.26.99 +- Moksha 桌面 0.4.0 +- Python 3.10 +- Systemd 249.11 + +### 下载 + +该团队建议,这个预发布版本是不稳定的,不应该用于你的日常工作。不过,如果你想体验一下,可以从下面的链接下载。 + +> **[下载][2]** + +### 时间表 + +Alpha 测试阶段应该持续两个月左右,然后是候选版本。之后是最终版本。从时间上看,根据历史记录 —— Alpha 测试大约持续两个月,然后是一个月的 RC 测试。因此,暂定的最终发布日期为 2023 年 2 月底或 3 月初。 + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/bodhi-linux-7-0-0-testing/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/11/Bodhi-Linux-7.0.0-Desktop.jpg +[2]: https://sourceforge.net/projects/bodhidev/files/7.0.0-alpha/ diff --git a/sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md b/sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md deleted file mode 100644 index d14062bf06..0000000000 --- a/sources/news/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md +++ /dev/null @@ -1,58 +0,0 @@ -[#]: subject: "Bodhi Linux 7.0.0 Testing Begins with New Features, Packages" -[#]: via: "https://debugpointnews.com/bodhi-linux-7-0-0-testing/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Bodhi Linux 7.0.0 Testing Begins with New Features, Packages -====== - -**Bodhi Linux team started the testing phase with its recent Alpha packages for the upcoming Bodhi Linux 7.0.0 release.** - -![Bodhi Linux 7.0.0 Desktop][1] - -Bodhi Linux is based on Ubuntu LTS and features the Enlightenment-based Moksha desktop environment. Moksha desktop is lightweight while being an eye-candy desktop. In addition, it only includes base applications to get you started. - -The current Bodi Linux 6 series is based on Ubuntu 20.04 LTS and was released in 2021, just following the release of Ubuntu 20.04 LTS. The upcoming Bodhi Linux 7.0.0 will be based on Ubuntu 22.04 LTS, which was released in April this year, bringing all the stable and refreshed packages from the Ubuntu base. - -At its core, it is based on Linux Kernel 5.15 LTS aligned with Ubuntu 22.04. With that, you get the improved Mokhsna desktop environment based on the latest Enlightenment desktop/Enlightenment foundation library (efl). - -Since the official change log is not yet available, here’s a quick summary of the versions you get in this release. - -### Summary of Bodhi Linux 7.0.0 (tentative) - -- Based on Ubuntu 22.04 LTS, Jammy Jellyfish -- Linux Kernel 5.15 LTS -- Enlightenment Foundation Library (efl) 1.26.99 -- Moksha Desktop 0.4.0 -- Python 3.10 -- Systemd 249.11 - -### Download - -The team suggested that this pre-release version is unstable and should not be used for your daily work. However, if you want to give it a spin, you can download it from the below link. - -[Download][2] - -### Timelines - -The Alpha testing phase should go on for about two months, and then a release candidate version. And the final release after that. Timeline-wise, as per the historical records – alpha testing goes on for about two months and a month of RC testing. So, that gives a tentative final release date of February 2023-end or beginning of March 2023. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/bodhi-linux-7-0-0-testing/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/11/Bodhi-Linux-7.0.0-Desktop.jpg -[2]: https://sourceforge.net/projects/bodhidev/files/7.0.0-alpha/ From aedeb749cf676bee8b6ff9094d581a90b38889ef Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 2 Dec 2022 09:19:58 +0800 Subject: [PATCH 2201/3123] translating --- .../20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md index 4098162525..938ced0d56 100644 --- a/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md +++ b/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/lua-for-loops" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ad36628e3345d3c9dfec7e6e6880646c0bf4194a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 2 Dec 2022 09:26:53 +0800 Subject: [PATCH 2202/3123] RP @chai001125 https://linux.cn/article-15310-1.html --- ...️ Find bugs with the git bisect command.md | 53 +++++++++++-------- 1 file changed, 31 insertions(+), 22 deletions(-) rename {translated/tech => published}/20221122.0 ⭐️ Find bugs with the git bisect command.md (56%) diff --git a/translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md b/published/20221122.0 ⭐️ Find bugs with the git bisect command.md similarity index 56% rename from translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md rename to published/20221122.0 ⭐️ Find bugs with the git bisect command.md index 948e255712..f870c884c0 100644 --- a/translated/tech/20221122.0 ⭐️ Find bugs with the git bisect command.md +++ b/published/20221122.0 ⭐️ Find bugs with the git bisect command.md @@ -3,34 +3,38 @@ [#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15310-1.html" -使用 git bisect 命令定位首次引入错误的提交 +使用 Git bisect 命令定位首次引入错误的提交 ====== -你是不是有过这样的经历:发现代码中有 错误 bug ,但不知道这个错误是什么时候第一次引入的。这有可能是因为,某个人提交了一份有错误的代码,但没有在他的 Git 提交 commit 消息中声明这个错误。这个错误可能已经存在了几周、几个月甚至几年,这意味着你需要搜索数百或数千个提交,才能找到问题何时出现的。而 `git bisect` 命令能够完美地解决这个问题! +![][0] -`git bisect` 命令是一个强大的工具。你可以给 `git bisect` 命令一个范围,一端是一个已知的好状态,另一端是一个已知的坏状态。它会自动地确认当前范围的中点,在这个中点上进行测试,然后要求你告诉它那次提交是一个 好提交 good commit 还是一个 坏提交 bad commit ,然后它会重复这一“二分查找”的过程,直到你找到首次引入错误的那一次提交。 +> Git 的 bisect 工具通过快速识别坏的提交,节省了时间和精力。 + +你是不是有过这样的经历:发现代码中有 错误 bug ,但不知道这个错误是什么时候引入的。这有可能是因为,某个人提交了一份有错误的代码,但没有在他的 Git 提交 commit 消息中声明它。这个错误可能已经存在了几周、几个月甚至几年,这意味着你需要搜索数百或数千个提交,才能找到问题何时出现的。而 `git bisect` 命令能够完美地解决这个问题! + +`git bisect` 命令是一个强大的工具。你可以给 `git bisect` 命令一个范围,一端是一个已知的好状态,另一端是一个已知的坏状态。它会自动地确认当前范围的中点,在这个中点上进行测试,然后要求你确定那次提交是一个 好提交 good commit 还是一个 坏提交 bad commit ,然后它会重复这一“二分查找”的过程,直到你找到首次引入错误的那一次提交。 ![Image of Zeno's paradox of Achilles.][1] -这个“数学”工具是利用“二分查找”来找到错误之处的。`git bisect` 命令通过**查看中点**,然后由你来决定它是提交列表的新起点(即 bad commit )还是新终点(即 good commit),进而来缩小查找范围,如此在几次查找中你可以就能定位到有错误的提交。即使你有 10,000 个提交要检查,最多只需要 13 次查找,就能很快地定位到首次引入错误的提交。 +这个“数学”工具是利用“二分查找”来找到错误之处的。`git bisect` 命令通过**查看中点**,然后由你来决定它是提交列表的新起点(即 “坏提交” )还是新终点(即 “好提交”),进而来缩小查找范围,如此在几次查找中你可以就能定位到有错误的提交。即使你有 10,000 个提交要检查,最多只需要 13 次查找,就能很快地定位到首次引入错误的提交。 -- commit 1 bad <> commit 10,000 good => commit 5,000 is bad -- commit 5,000 bad <> commit 10,000 good => commit 7,500 is good -- commit 5,000 bad <> commit 7,500 good => commit 6,250 is good -- commit 5,000 bad <> commit 6,250 good => commit 5,625 is bad -- commit 5,625 bad <> commit 6,250 good => commit 5,938 is bad -- commit 5,938 bad <> commit 6,250 good => commit 6,094 is good -- commit 5,938 bad <> commit 6,094 good => commit 6,016 is bad -- commit 6,016 bad <> commit 6,094 good => commit 6,055 is good -- commit 6,016 bad <> commit 6,055 good => commit 6,036 is bad -- commit 6036 bad <> commit 6055 good => commit 6046 is bad -- commit 6,046 bad <> commit 6,055 good => commit 6,050 is bad -- commit 6,050 bad <> commit 6,055 good => commit 6,053 is good -- commit 6,053 bad <> commit 6,055 good => commit 6,054 is good +1. 提交 1 坏 <> 提交 10,000 好 => 提交 5,000 是坏的 +2. 提交 5,000 坏 <> 提交 10,000 好 => 提交 7,500 是好的 +3. 提交 5,000 坏 <> 提交 7,500 好 => 提交 6,250 是好的 +4. 提交 5,000 坏 <> 提交 6,250 好 => 提交 5,625 是坏的 +5. 提交 5,625 坏 <> 提交 6,250 好 => 提交 5,938 是坏的 +6. 提交 5,938 坏 <> 提交 6,250 好 => 提交 6,094 是好的 +7. 提交 5,938 坏 <> 提交 6,094 好 => 提交 6,016 是坏的 +8. 提交 6,016 坏 <> 提交 6,094 好 => 提交 6,055 是好的 +9. 提交 6,016 坏 <> 提交 6,055 好 => 提交 6,036 是坏的 +10. 提交 6,036 坏 <> 提交 6,055 好 => 提交 6,046 是坏的 +11. 提交 6,046 坏 <> 提交 6,055 好 => 提交 6,050 是坏的 +12. 提交 6,050 坏 <> 提交 6,055 好 => 提交 6,053 是好的 +13. 提交 6,053 坏 <> 提交 6,055 好 => 提交 6,054 是好的 对于上面这个例子,我们能知道 10,000 个提交中的第一个错误提交是第 6053 次提交。对于 `git bisect` 命令,最多需要几分钟就能完成检索。但是如果要一个一个查找每个提交是否错误,我甚至无法想象需要多长时间。 @@ -52,7 +56,11 @@ Git 检查中间的提交,并等待你声明这次提交是一个好提交还 ``` $ git bisect good -## or +``` + +或 + +``` $ git bisect bad ``` @@ -71,10 +79,11 @@ via: https://opensource.com/article/22/11/git-bisect 作者:[Dwayne McDaniel][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://opensource.com/users/dwaynemcdaniel [b]: https://github.com/lkxed [1]: https://opensource.com/sites/default/files/2022-11/beyondgit.paradox.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/02/092549j2o7h9cif3hcu34z.jpg \ No newline at end of file From 97be4259df537637b146f5b637911183cb4b14f7 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 2 Dec 2022 09:40:48 +0800 Subject: [PATCH 2203/3123] translated --- ...⭐️ Get to know Lua for loops in 4 minutes.md | 140 ------------------ ...⭐️ Get to know Lua for loops in 4 minutes.md | 140 ++++++++++++++++++ 2 files changed, 140 insertions(+), 140 deletions(-) delete mode 100644 sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md create mode 100644 translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md diff --git a/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md deleted file mode 100644 index 938ced0d56..0000000000 --- a/sources/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "Get to know Lua for loops in 4 minutes" -[#]: via: "https://opensource.com/article/22/11/lua-for-loops" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Get to know Lua for loops in 4 minutes -====== - -In programming, iteration is an important concept because code often must scan over a set of data several times so that it can process each item individually. Control structures enable you to direct the flow of the program based on conditions that are often established dynamically as the program is running. Different languages provide different controls, and in [Lua][1], there's the while loop, for loop, and repeatuntil loop. This article covers for loops. I will cover while and repeat until loops in a separate article. - -### For loop - -A for loop takes a known quantity of items and ensures that each item is processed. An "item" can be a number. It can also be a table containing several entries or any Lua data type. The syntax and logic are a little flexible, but the syntax allows for these parameters, each of which essentially describes a counter: - -- Starting value of the counter -- Stop value -- The increment you want the counter to advance - -For instance, suppose you have three items and want Lua to process each. Your counter could start at 3 and last until 1, at an increment of -1. That renders the count of 3, 2, 1. - -``` -mytable = { "zombie", "Halloween", "apocalypse" } -for count = 3, 1, -1 do -  print(count .. ": " .. mytable[count]) -end -``` - -Run the code to ensure all three items are getting processed: - -``` -$ lua ./for.lua3: apocalypse2: Halloween1: zombie -``` - -This code effectively processed the table in "reverse" because it was a countdown. You can count up, instead: - -``` -for count = 1, 3, 1 do -  print(mytable[count]) -end -``` - -This example processes the table from lowest index to highest: - -``` -$ lua ./for.lua1: zombie2: Halloween3: apocalypse -``` - -### Increments - -You can change the increment, too. For instance, maybe you want a zombie apocalypse without all the pomp and circumstance of Halloween: - -``` -mytable = { "zombie", "Halloween", "apocalypse" } -for count = 1, 3, 2 do -  print(mytable[count]) -end -``` - -Run the code: - -``` -$ lua ./for.lua -zombie -apocalypse -``` - -The example printed 1 and 3 because the first count was 1, which was then incremented by 2 (for a total of 3). - -### Counter - -Sometimes you don't know the number of times you need Lua to iterate over data. In this case, you can set your counter to a variable populated by some other process. - -Also, the word `count` isn't a keyword. It's just what I'm using in my sample code for clarity. It's common for programmers to use something shorter, such as `i` or `c`. - -``` -var = os.time() -if var%2 == 0 then -  mytable = { var } -else -  mytable = { "foo", "bar", "baz" } -end -for c = 1, #mytable, 1 do -  print(mytable[c]) -end -``` - -This code creates a variable containing the timestamp of when it was launched. If the timestamp is even (it has a modulo of 0 when divided by 2), then just the timestamp is placed into a table. If the timestamp is odd, it puts three strings into a table. - -Now you can't be sure how many times your for loop needs to run. It's either once or thrice, but there's no way to be sure. The solution is to set the starting count to 1 and the final count to the length of the table (`#mytable` is the built-in shortcut to determine the length of a table). - -It might take a few times of running the script to see both results, but eventually, you end up with something like this: - -``` -$ lua ./dynamic.lua1665447960 -$ lua ./dynamic.lua -foo -bar -baz -``` - -### For loops with pairs and ipairs - -If you've already read my article on [table iteration][2], then you're already familiar with one of the most common for loops in Lua. This one uses the `pairs` or `ipairs` function to iterate over a table: - -``` -mytable = { "zombie", "Halloween", "apocalypse" } -for i,v in ipairs(mytable) do -  print(i .. ": " v) -end -``` - -The `pairs` and `ipairs` functions "unpack" the table and dump the values into the variables you provide. In this example, I use `i` for _index_ and `v` for _value_, but the variables' names don't matter. - -``` -$ lua ./for.lua1: zombie2: Halloween3: apocalypse -``` - -### For loop - -The for loop structure is common in programming and very common in Lua due to its frequent use of tables and the `pairs` function. Understanding the for loop structure and the options you have when controlling it means you can make clever decisions about how to process data in Lua. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/lua-for-loops - -作者:[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/article/22/11/lua-worth-learning -[2]: https://opensource.com/article/22/11/iterate-over-tables-lua diff --git a/translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md new file mode 100644 index 0000000000..f2753b859d --- /dev/null +++ b/translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md @@ -0,0 +1,140 @@ +[#]: subject: "Get to know Lua for loops in 4 minutes" +[#]: via: "https://opensource.com/article/22/11/lua-for-loops" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 分钟了解 Lua for 循环 +====== + +在编程中,迭代是一个重要的概念,因为代码通常必须多次扫描一组数据,以便它可以单独处理每个项目。控制结构使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供不同的控制,在 [Lua][1] 中,有 while 循环、for 循环和 repeatuntil 循环。本文介绍 for 循环。我将在另一篇文章中介绍 while 和 repeat until 循环。 + +### For 循环 + +for 循环采用已知数量的项目并确保处理每个项目。“项目”可以是数字。它也可以是一个包含多个条目或任何 Lua 数据类型的表。语法和逻辑有点灵活,但语法允许这些参数,每个参数本质上描述了一个计数器: + +- 计数器的起始值 +- 停止值 +- 你希望计数器前进的增量 + +例如,假设你有三个项目并希望 Lua 处理每个项目。你的计数器可以从 3 开始一直持续到 1,增量为 -1。这呈现为 3、2、1 的计数。 + +``` +mytable = { "zombie", "Halloween", "apocalypse" } +for count = 3, 1, -1 do +  print(count .. ": " .. mytable[count]) +end +``` + +运行代码以确保所有三个项目都得到处理: + +``` +$ lua ./for.lua3: apocalypse2: Halloween1: zombie +``` + +这段代码有效地“反向”处理了表,因为它是倒数。你可以正数: + +``` +for count = 1, 3, 1 do +  print(mytable[count]) +end +``` + +此示例从最低索引到最高索引处理表: + +``` +$ lua ./for.lua1: zombie2: Halloween3: apocalypse +``` + +### 增量 + +你也可以更改增量。例如,也许你想要一个没有万圣节盛况的僵尸启示录: + +``` +mytable = { "zombie", "Halloween", "apocalypse" } +for count = 1, 3, 2 do +  print(mytable[count]) +end +``` + +运行代码: + +``` +$ lua ./for.lua +zombie +apocalypse +``` + +该示例打印了 1 和 3,因为第一个计数是 1,然后递增 2(总共 3)。 + +### 计数器 + +有时你不知道需要 Lua 遍历数据的次数。在这种情况下,你可以将计数器设置为由其他进程填充的变量。 + +另外,`count` 这个词不是关键字。为了清楚起见,这正是我在示例代码中使用的内容。程序员通常使用更短的名称,例如 `i` 或 `c`。 + +``` +var = os.time() +if var%2 == 0 then +  mytable = { var } +else +  mytable = { "foo", "bar", "baz" } +end +for c = 1, #mytable, 1 do +  print(mytable[c]) +end +``` + +此代码创建一个变量,其中包含启动时的时间戳。如果时间戳是偶数(除以 2 时模数为 0),则只将时间戳放入表中。如果时间戳是奇数,它将三个字符串放入一个表中。 + +现在你无法确定您的 for 循环需要运行多少次。可能是一次或是三次,但没有办法确定。解决方案是将起始计数设置为 1,将最终计数设置为表的长度(`#mytable` 是确定表长度的内置快捷方式)。 + +可能需要多次运行脚本才能看到这两个结果,但最终,你会得到如下结果: + +``` +$ lua ./dynamic.lua1665447960 +$ lua ./dynamic.lua +foo +bar +baz +``` + +### 带 pairs 和 ipairs 的 for 循环 + +如果你已经阅读了我关于[表迭代][2]的文章,那么你已经熟悉了 Lua 中最常见的 for 循环之一。这个使用 `pairs` 或 `ipairs` 函数来迭代一个表: + +``` +mytable = { "zombie", "Halloween", "apocalypse" } +for i,v in ipairs(mytable) do +  print(i .. ": " v) +end +``` + +`pairs` 和 `ipairs` 函数“解包”表并将值转储到你提供的变量中。在此示例中,我将 `i` 用于 _index_,将 `v` 用于 _value_,但变量名称无关紧要。 + +``` +$ lua ./for.lua1: zombie2: Halloween3: apocalypse +``` + +### For 循环 + +for 循环结构在编程中很常见,由于经常使用表和 pairs 函数,因此在 Lua 中非常常见。了解 for 循环结构和控制它时的选项意味着你可以就如何在 Lua 中处理数据做出明智的决定。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/lua-for-loops + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/11/lua-worth-learning +[2]: https://opensource.com/article/22/11/iterate-over-tables-lua From ba9948d2363787a0458451eb4f07a6b24dd4d13c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 3 Dec 2022 09:56:26 +0800 Subject: [PATCH 2204/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ils 5.7 Releases With Metadata Cleaner Tool.md | 79 ---------- ...17 is out with OpenSSL 3.0 and new packages.md | 58 -------- ... VLC 3.0.18 Release Brings RISC-V Support.md | 94 ------------ ....5.0 Released as its Biggest Feature Update.md | 136 ------------------ ...ls 1.31 Release Adds Fractional Scaling Support.md | 70 --------- 5 files changed, 437 deletions(-) delete mode 100644 sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md delete mode 100644 sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md delete mode 100644 sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md delete mode 100644 sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md delete mode 100644 sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md diff --git a/sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md b/sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md deleted file mode 100644 index 0d041a485d..0000000000 --- a/sources/news/20221123.3 ⭐️ Tails 5.7 Releases With Metadata Cleaner Tool.md +++ /dev/null @@ -1,79 +0,0 @@ -[#]: subject: "Tails 5.7 Releases With "Metadata Cleaner" Tool" -[#]: via: "https://news.itsfoss.com/tails-5-7-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Tails 5.7 Releases With "Metadata Cleaner" Tool -====== - -[Tails][1] is a portable operating system that protects against censorship and surveillance. - -It is one of the most popular privacy-focused Linux distributions preferred by journalists and activists who do not want their information exposed to malicious actors. - -With this update, it aims to become even more privacy-friendly and secure by offering many improvements. - -Let's take a look at them. - -#### Limited Time Deals ⌛ - -### 🆕 Tails 5.7: What's new? - -![tails 5.7][2] - -This update has brought in a new tool to clean metadata from files, alongside various package updates and bug fixes. - -Sounds promising! 😄 - -#### Metadata Cleaner - -![tails 5.7 metadata cleaner][3] - -This is a new addition to Tails, which you can use to clean a file's metadata. By extracting the metadata from your files, you can use this to prevent malicious actors from personally identifying you. - -A file's metadata contains a lot of sensitive information that can be used to identify the author (creator of the file), how it was created, and the date of creation. - -In the case of photos and videos, they can also contain geolocation data showing exactly where they were captured. - -We also have an article on it if you want to explore the tool separately. - -#### Package Updates - -Tails 5.7 features the recently updated Tor Browser 11.5.8. - -It contains a variety of CVE fixes, updated translations, OpenSSL 1.1.1.s, NoScript 11.4.12, tor 0.4.7.11 and [more][4]. - -Two stability issues with the Tor connection were also fixed, and a workaround for a known issue of the Tor connection getting stuck around 50% was provided. - -> 💡 You can try one of two methods to fix it: either close and reopen the Tor connection or try a different obfs4 bridge. - -In addition to that, the 'pdf-redact-tools' package was removed as it was not functioning correctly since Tails 5.6. - -### 📥 Download Tails 5.7 - -You can download Tails 5.7 from its [official website][5]. - -If you want to dive deep into the technical details of this update, then you can refer to the [changelog][6] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/tails-5-7-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://tails.boum.org -[2]: https://news.itsfoss.com/content/images/2022/11/Tails_5.7.png -[3]: https://news.itsfoss.com/content/images/2022/11/Tails_5.7_MetadataCleaner.png -[4]: https://blog.torproject.org/new-release-tor-browser-1158/ -[5]: https://tails.boum.org/install/ -[6]: https://tails.boum.org/news/version_5.7/ diff --git a/sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md b/sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md deleted file mode 100644 index 880333fc3d..0000000000 --- a/sources/news/20221124.2 ⭐️ Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages.md +++ /dev/null @@ -1,58 +0,0 @@ -[#]: subject: "Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages" -[#]: via: "https://debugpointnews.com/alpine-linux-3-17/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Alpine Linux 3.17 is out with OpenSSL 3.0 and new packages -====== - -**Container Linux operating system Alpine Linux released version 3.17. This is a release summary.** - -![Alpine Linux 3.17][1] - -### Alpine Linux 3.17 - -Alpine Linux 3.17 is the first major release of this series, coming within a few months since its last iteration of the 3.16 series beginning this year. Usually, the Alpine team releases it twice a year. And hence this will be the final release of this year. - -Feature-wise, mostly the core package updates arrives in Alpine 3.17 – those are needed. The most significant update is the OpenSSL 3.0 version as default, bringing the recent high vulnerability fixes, which [caused delays][2] in some distro releases. - -In addition, the Alpine core repo is refreshed with an updated toolchain. Significant versions include GCC 12, bash 5.2, Perl 5.36 and Rust 1.64. - -Although Alpine Linux is ideal for server-based distributions, its repo has GNOME and KDE Plasma desktops. This release refreshed GNOME version 43 and KDE Plasma to 5.26 – which are the latest offerings of this distribution. - -However, PHP 8 is deprecated in this version. Finally, it is powered by Linux kernel 5.15.79, which is the current LTS mainline kernel available. - -Alpine Linux is available for download for all major architectures, including Raspberry Pi. This version is available to download using the official website below. - -[Download Alpine Linux][3] - -If you are using Alpine Linux 3.16, you can simply kick off the upgrade using the following command. - -``` -apk upgrade --available -``` - -Via [official release announcement][4]. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/alpine-linux-3-17/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/11/Alpine-Linux-3.17.jpg -[2]: https://debugpointnews.com/openssl-3-0-7/ -[3]: https://alpinelinux.org/downloads/ -[4]: https://alpinelinux.org/posts/Alpine-3.17.0-released.html - diff --git a/sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md b/sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md deleted file mode 100644 index 5212d2c853..0000000000 --- a/sources/news/20221129.0 ⭐️ VLC 3.0.18 Release Brings RISC-V Support.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "VLC 3.0.18 Release Brings RISC-V Support" -[#]: via: "https://news.itsfoss.com/vlc-3-0-18-release/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -VLC 3.0.18 Release Brings RISC-V Support -====== - -VLC 3.0.18 finally adds RISC-V support among other improvements. - -![VLC 3.0.18 Release Brings RISC-V Support][1] - -VLC Media Player is a popular open-source and cross-platform media player by VideoLAN that has been around for quite some time. Undoubtedly, it's also one of the best media players for Linux. - -VLC's latest maintenance update, specifically v3.0.18, includes a set of enhancements and bug fixes. - -Let's look at some of the key highlights of this release. - -### VLC 3.0.18: What's New? - -![][2] - -- **Support for RISC-V architecture** -- **Significant updates to adaptive streaming, including multiple timelines and WebVTT (Web Video Text Tracks Format)** -- **Y16 chroma support** -- **DVBSub support inside MKV files** - -#### RISC-V Support - -Users with devices based on the RISC-V hardware can now enjoy using VLC. - -If you're not aware, RISC-V is a popular open-source hardware architecture. And you can expect more hardware to feature RISC-V in the near future. - -#### Other Changes - -As briefed above, there are several other enhancements as well, these include: - -- Improved FTP compatibility -- Better playback of FLAC files -- Improved seeking in OGG and fragmented MP4 files - -Tons of bugs were fixed as well. Here are some of the most notable ones that were addressed. - -- Video-related issues and crashes related to OpenGL, DirectX and VAAPI -- Performance and rendering issues with older graphics cards -- Password search in the KWallet module -- Throttled YouTube video playback using a Lua script - -Some native bugs related to the macOS have also been addressed. - -- 10-bit accelerated video filters -- Inaccurate translations -- Decoding errors on HEVC files - -On the other hand, Windows users should see fixes for UPnP and Windows Media Player compatibility. - -Check out the [official changelog][3] for detailed information. - -### Download VLC 3.0.18 - -For now, the latest version is only available through [Flathub][4]. You cannot find the latest packages for Windows/macOS on the website yet. - -However, you can get the source tarball through the [official website][5] (thanks to [9to5Linux][6] for spotting this) - -Hopefully, VLC's official site gets updated soon to reflect the latest maintenance release. - -Ubuntu users can check out our step-by-step guide too if you need help: - -[How to Install VLC in Ubuntu Linux [Latest Release]][7] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/vlc-3-0-18-release/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w300/2022/11/vlc-3-0-18-release.png -[2]: https://news.itsfoss.com/content/images/2022/11/VLC-v3-0-18.png -[3]: https://code.videolan.org/videolan/vlc/-/raw/3.0.x/NEWS -[4]: https://flathub.org/apps/details/org.videolan.VLC -[5]: https://download.videolan.org/pub/videolan/vlc/3.0.18/ -[6]: https://9to5linux.com/vlc-3-0-18-is-out-with-risc-v-support-dvbsub-support-inside-mkv-smbv2-improvements -[7]: https://itsfoss.com/install-latest-vlc/ diff --git a/sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md b/sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md deleted file mode 100644 index 2d4c56b8cf..0000000000 --- a/sources/news/20221129.6 ⭐️ Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update.md +++ /dev/null @@ -1,136 +0,0 @@ -[#]: subject: "Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update" -[#]: via: "https://news.itsfoss.com/heroic-games-launcher-2-5-0/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update -====== - -Heroic Games Launcher is making good progress with its feature set upgrades. What do you think about this one? - -![Heroic Games Launcher 2.5.0 Released as its Biggest Feature Update][1] - -Heroic Game Launcher is a helpful tool that lets you access gaming services such as Epic Games and GOG via a single app on platforms like Linux, Windows, and macOS. - -It comes in handy to organize your game library and lets you install games that are not natively available for a platform. - -Now, they have pushed a new version update **v2.5.0**, which they claim to be **their****biggest release in a long time**. - -Let me highlight the good stuff here. - -### 🆕 Heroic Game Launcher 2.5.0: What's New? - -![heroic 2.5.0][2] - -Heroic is receiving a bunch of improvements and features; some of the highlights include: - -- **Download Manager** -- **New Themes** -- **Custom User Theme Support** -- **HowLongToBeat data** -- **Support For Other App Launchers and Games** - -#### Download Manager - -![heroic 2.5.0 download manager][3] - -Heroic now allows you to queue multiple games to download from the various gaming services. - -The download manager also shows essential details such as the download speed, the ETA, buttons to start or stop the download, and the download queue. - -They also plan to add the ability to change the queue order and check the remaining disk space before adding items to the queue soon. - -#### New Themes - -![heroic 2.5.0 nord dark theme][4] - -Heroic 2.5.0 features two new built-in themes Nord Light and Nord Dark. - -The themes have been designed by [redromnon][5] aka **Rishabh Moharir**, one of our contributors, who you might have noticed covering a couple of news here. - -![heroic 2.5.0 nord light theme][6] - -#### Custom User Theme Support - -![heroic 2.5.0 custom theme support][7] - -In case you want to create a new theme, you can do that and share it with others on their [theme repo][8]. Note that you need to know CSS to be able to do it. - -If you are interested, you can follow the instructions to learn how it's done. - -#### HowLongToBeat data on the Game Page - -![heroic games launcher][9] - -When you read the game information, you also get an estimate of the time you need to spend to complete the campaign, DLCs, and everything else. - -It may not be a big deal for you, but if someone is picky with the time they want to spend on game, this information can help them prioritize if they want to play it. - -#### Support For Other App Launchers - -![heroic 2.5.0 other app launcher][10] - -Many of us were looking forward to this feature, and now it's here. - -Heroic now lets you add apps outside of Epic and GOG. In other words, you can sideload any app or game. - -You can now add other games, software, or even app launchers to launch from within Heroic. That's what I call an added convenience!😌 - -#### 🛠️ Other Important Changes - -![heroic games launcher][11] - -Here are some refinements that are worth mentioning: - -- **Detect if a game is available or not (and mention if it is a supported game).** -- **Legendary v0.20.30.** -- **Settings re-organized.** -- **Redesigned login screen.** -- **Improvements to Cloud Saves.** -- **Various bug fixes.** - -> 💡 You can go through the [full release notes][12] to learn more about the subtle changes and technical improvements. - -### 📥 Download Heroic Game Launcher 2.5.0 - -You can download the latest Heroic Games Launcher from the official [downloads page][13]. - -It is also available on [Flathub][14] if you do not prefer AppImage and other packages. - -You can also find the packages in its [GitHub releases][12] section. - -[Download Heroic Game Launcher 2.5.0][13] - -_💬 What do you think of this release of Heroic Games Launcher? Share your thoughts in the comments below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/heroic-games-launcher-2-5-0/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w300/2022/11/heroic-games-launcher-2-5-0-release.png -[2]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0.png -[3]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Download_Manager.png -[4]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Nord_Dark.png -[5]: https://github.com/redromnon -[6]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Nord_Light.png -[7]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Custom_Theme-1.png -[8]: https://github.com/Heroic-Games-Launcher/heroic-themes -[9]: https://news.itsfoss.com/content/images/2022/11/howlongtobeat.jpg -[10]: https://news.itsfoss.com/content/images/2022/11/Heroic_2.5.0_Other_Apps.png -[11]: https://news.itsfoss.com/content/images/2022/11/settings-heroic-games.jpg -[12]: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.5.0 -[13]: https://heroicgameslauncher.com/downloads -[14]: https://flathub.org/apps/details/com.heroicgameslauncher.hgl diff --git a/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md b/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md deleted file mode 100644 index df503ccf83..0000000000 --- a/sources/news/20221130.3 ⭐️⭐️ Wayland Protocols 1.31 Release Adds Fractional Scaling Support.md +++ /dev/null @@ -1,70 +0,0 @@ -[#]: subject: "Wayland Protocols 1.31 Release Adds Fractional Scaling Support" -[#]: via: "https://news.itsfoss.com/wayland-protocols-fractional-scaling/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Wayland Protocols 1.31 Release Adds Fractional Scaling Support -====== - -Wayland Protocols 1.31 releases with fractional scaling support. - -![Wayland Protocols 1.31 Release Adds Fractional Scaling Support][1] - -If you are using a high-resolution display, then you may have noticed issues like blurriness, jaggedness, and lag when using a program. - -This issue is caused by the fact that many programs use a default screen resolution (usually 1920×1080) to display their contents. This makes for a bad user interface experience on HiDPI devices. - -But you might be wondering, is there a solution to this? Yes, there is, in fact, a solution. - -It's called 'Fractional Scaling'. This method uses fractional values to scale a program's interface according to your display's resolution, resulting in a consistent look and feel. - -So, it would ensure that you had the same experience on any HiDPI device, regardless of the program you were using. - -Moving on. - -With Wayland slowly replacing X11 with its advancements, adding Fractional Scaling support via Wayland Protocols 1.31 makes the transition more obvious. - -> 💡 [Wayland protocols][2] add functionality that is usually not found with Wayland core. - -Let's take a look at what's in store for Wayland. - -### Fractional Scaling Support for Wayland Protocols - -**How did it come to be?:** This was in the making for many months; code-named 'wp-fractional-scale-v1', it communicates with the compositor to suggest surfaces for rendering at fractional scales. - -It is paired with the 'wp-viewport protocol' to provide a fractional scaling implementation rather than an integer-based scaling implementation, as noted by [Phoronix][3]. - -**How does it affect you?:** The implementation of this allows you to run higher resolutions on your Wayland-enabled Linux systems without compromising visual quality across different programs and displays. - -So, what does it mean for KDE and GTK apps? - -Technically, **PointiestStick** (_KDE Dev_) responded to a [Reddit thread][4] that gives you a better insight: - -> For KDE, it simply means that once Qt and KWin implement support for this protocol, then native Wayland Qt apps will be able to use Qt's pre-existing support for fractional scaling, just like how it already works on X11.The result should be slightly better performance, visual sharpness, and power efficiency when using a non-integer scale factor like 125%.Nothing will change soon for GTK apps, because GTK has no existing fractional scaling support and thus cannot implement this Wayland protocol to do something it couldn't already do. - -In conclusion, this seems like a reasonable addition to Wayland, which should enhance the overall user experience across the board with a minimal performance impact. - -You can read more about **Wayland Protocols 1.31** release in its [official mailing list][5]. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/wayland-protocols-fractional-scaling/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/11/wayland-protocols-1-31-release.jpg -[2]: https://gitlab.freedesktop.org/wayland/wayland-protocols -[3]: https://www.phoronix.com/news/Wayland-Fractional-Scale-Ready -[4]: https://www.reddit.com/r/linux/comments/z7pc61/comment/iya2uu1/?utm_source=reddit&utm_medium=web2x&context=3 -[5]: https://lists.freedesktop.org/archives/wayland-devel/2022-November/042524.html From 90ae7ce0f22b9eee052879db40b4fbd58a1b1dc1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 3 Dec 2022 12:08:40 +0800 Subject: [PATCH 2205/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @cool-summer-021 翻译的不错 --- ...0922 Install PowerShell on Fedora Linux.md | 174 ++++++++---------- 1 file changed, 73 insertions(+), 101 deletions(-) diff --git a/translated/tech/20210922 Install PowerShell on Fedora Linux.md b/translated/tech/20210922 Install PowerShell on Fedora Linux.md index 3c41b43ef4..fdd7f7c72b 100644 --- a/translated/tech/20210922 Install PowerShell on Fedora Linux.md +++ b/translated/tech/20210922 Install PowerShell on Fedora Linux.md @@ -1,45 +1,28 @@ [#]: subject: "Install PowerShell on Fedora Linux" [#]: via: "https://fedoramagazine.org/install-powershell-on-fedora-linux/" -[#]: author: "TheEvilSkeletonOzymandias42 https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/" +[#]: author: "TheEvilSkeleton, Ozymandias42 https://fedoramagazine.org/author/theevilskeleton/ https://fedoramagazine.org/author/ozymandias42/" [#]: collector: "lujun9972" [#]: translator: "cool-summer-021" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -在Fedora Linux 系统上安装 PowerShell +在 Fedora Linux 系统上安装 PowerShell ====== -![][1] - -Photos by [NOAA][2] and [Cedric Fox][3] on [Unsplash][4] - -PowerShell(也可写作 pwsh) 是一个功能强大的开源命令行工具,它是面向对象的,由微软开发和维护。它的语法特征冗长,但对用户来说比较直观。本文介绍如何在主机上和在 Podman 或其他容器内安装 PowerShell。 - -### 目录 - - * [为何使用 PowerShell][5] - * [演示实例][6] - * [Bash 和 PowerShell 的比较][7] - * [安装 PowerShell][8] - * [使用包管理器在主机上安装 PowerShell][9] - * [方法1:通过微软仓库][10] - * [方法2:通过 RPM 文件][11] - * [借助容器安装 PowerShell][12] - * [方法1:使用 Podman 容器][13] - * [方法2:使用 Fedora Linux 系统的 Toolbox 容器][14] - +![][0] +PowerShell(也可写作 pwsh)是一个功能强大的开源命令行工具,它是面向对象的,由微软开发和维护。它的语法特征冗长,但对用户来说比较直观。本文介绍如何在主机上和在 Podman 或其他容器内安装 PowerShell。 ### 为何使用 PowerShell -PowerShell,正如它的名字那样,是一个强大的工具。它的句法冗长,但语义清晰。对那些不愿意写长命令的开发者来说,PowerShell 的大多数命令都有别名。可以使用 _Get-Alias_ 或点击[此处][15]查询别名的使用方法。 +PowerShell,正如它的名字那样,是一个强大的工具。它的句法冗长,但语义清晰。对那些不愿意写长命令的开发者来说,PowerShell 的大多数命令都有别名。可以使用 `Get-Alias` 或点击 [此处][15] 查询别名的使用方法。 PowerShell 和传统的 Shell 最大的区别在于它的输出管道。普通的 Shell 输出的是字符串或字符流,PowerShell 输出的是对象。这对命令管道的工作方式具有深远的影响,而且它具有很多的优点。 #### 演示例子 -下面的例子体现的是冗长而清晰的特点。以#号开头的行为注释行。以PS > 开头的行为命令行,**PS >**是提示: +下面的例子体现的是冗长而清晰的特点。以 `#` 号开头的行是注释行。以 `PS > ` 开头的行是命令行,`PS > ` 是提示符: ``` # Return all files greater than 50MB in the current directory. @@ -58,7 +41,7 @@ Mode LastWriteTime Length Name PS > Get-VM VM-1 | Get-Snapshot | Select-Object -Last 3 | Remove-Snapshot ``` -上述例子说明了:带有 _cut_, _sed_, _awk_ 等类似工具的输入-输出格式,在使用 Bash 脚本时是必须具备的技能,而使用 PowerShell 时就不是必备技能了。这是因为 PowerShell 的工作机制跟传统的 POSIX shell(例如 Bash、Zsh、Fish等)有本质的不同。传统的 Shell 的命令输出形式是字符串,而在 PowerShell 中,命令输出形式为对象。 +上述例子说明了:Bash 脚本经常需要用 `cut`、`sed`、`awk` 等工具对输入/输出进行格式化,而使用 PowerShell 时通常就没有这个必要了。这是因为 PowerShell 的工作机制跟传统的 POSIX shell(例如 Bash、Zsh、Fish等)有本质的不同。传统的 Shell 的命令输出形式是字符串,而在 PowerShell 中,命令输出形式为对象。 #### Bash 与 PowerShell 的比较 @@ -75,34 +58,25 @@ A B C [...] ``` -第一个显而易见的差别就是可读性,或更确切地说是语义清晰性。 _ps_ 和 _awk_ 都不是自描述的。_ps_ 命令的功能是显示进程状态,_awk_ 是一种文本处理工具和语言,这个词汇每个字母都是前期开发人员的名字(**A**ho, **W**einberger, **K**ernighan (详见 [Wikipedia][16]))的首字母。然而,在把它与 PowerShell 作比较前,考察以下脚本: +第一个显而易见的差别就是可读性,或更确切地说是语义清晰度。 `ps` 和 `awk` 都不是自描述的。`ps` 命令的功能是显示进程状态;`awk` 是一种文本处理工具和语言,这个词汇每个字母都是前期开发人员的名字(**A**ho, **W**einberger, **K**ernighan(详见 [维基百科][16])的首字母。然而,在把它与 PowerShell 作比较前,先看看这个脚本: - * _ps -e_ 输出所有运行中的进程; + * `ps -e` 输出所有运行中的进程; + * `-O rss` 输出 `ps` 的默认输出内容,再加上 RSS 字段 —— 每个进程使用的千字节数(以 KB 为单位);输出结果类似于: - * _-O rss_ 输出 _ps_ 的默认输出内容,每个进程分别显示其占用的字节数(以 KB 为单位);输出结果类似于: - -``` -PID RSS S TTY TIME COMMAND 1 13776 S ? 00:00:01 /usr/lib/systemd/systemd -``` - - * | 管道操作符使用左边命令的输出作为右边命令的输入。 - - * _awk -F’ ‘_ 定义"空格",作为输入域操作符。再回到上面的例子,PID 是第一个,RSS 是第二个,依此类推。 - - * _‘{ if($2 >= (1024*200)_ 是实际的 AWK-script 代码起始处。它的作用是检查第2个字段([RSS][17])是否包含大于或等于 1024*200 的数字; - - * _{ printf(“%s\t%s\t%s\n”,$1,$2,$6);} }’_ 继续分析脚本代码。如果前面的条件成立,则输出第一、第二和第六个字段(分别是 [PID][18], [RSS][17] 和 COMMAND)。 - - - - -记住这点,往回看编写这段脚本需要什么以及如何令它正常工作: - - * 输入命令_ps_的输出中必须包含我们想要过滤的字段。这不是默认的实例,需要我们使用 _-O_ 标志和 _rss_ 字段作为参数。 - * 我们需要将 _ps_ 的输出当作一组输入字段,所以我们还应当知道它们的顺序和结构。换句话说,我们至少需要确定 _RSS_ 是第二个字段。这也意味着我们需要提前知道 _ps_ 的输出信息的大致情况。 - * 然后我们需要知道过滤的数据位于什么单元以及相关工具运行于什么单元。也就是我们需要得到 _RSS_ 和 _awk_ 字段占用了多少字节。不然我们也不会写出 _($2 >= 1024*200)_ 这样的表达式。 + ``` + PID RSS S TTY TIME COMMAND + 1 13776 S ? 00:00:01 /usr/lib/systemd/systemd + ``` + * `|` 管道操作符使用左边命令的输出作为右边命令的输入。 + * `awk -F' '` 定义“空格”,作为输入字段分隔符。以上面的例子来说,PID 是第一个字段,RSS 是第二个字段,依此类推。 + * `'{ if($2 >= (1024*200)) {` 是实际的 AWK 代码起始处。它的作用是检查第二个字段([RSS][17])是否包含一个大于或等于 1024*200 的数字; + * `printf(“%s\t%s\t%s\n”,$1,$2,$6);}` 脚本继续。如果前面的条件成立,则输出第一、第二和第六个字段(分别是 [PID][18]、[RSS][17] 和 `COMMAND` 字段)。 +考虑到这一点,退一步说,编写这段脚本需要什么才能令它工作: + * 输入命令 `ps` 的输出中必须包含我们想要过滤的字段。这在默认情况下是没有的,需要我们使用 `-O` 标志和 `rss` 字段作为参数。 + * 我们需要将 `ps` 的输出当作一组输入字段,所以我们还应当知道它们的顺序和结构。换句话说,我们至少需要确定 `RSS` 是第二个字段。这也意味着我们需要提前知道 `ps` 的输出信息的大致情况。 + * 然后我们需要知道过滤的数据是什么单位,以及相关工具的单位是什么。也就是我们需要知道 `RSS` 和 `awk` 字段使用 kb。不然我们就不能写出 `($2 >= 1024*200)` 这样的表达式。 现在,我们把前面的命令跟 PoserShell 中等价的命令比较: @@ -120,9 +94,9 @@ NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName 首先应该注意到,语义非常清晰。这些命令都是自描述的,能清晰描述它们做什么。 -此外,不需要对输入-输出重新格式化,也不需要关心输入命令使用的单元。这是因为 PowerShell 输出的是对象,而非字符串。 +此外,不需要对输入-输出重新格式化,也不需要关心输入命令使用的单位。这是因为 PowerShell 输出的是对象,而非字符串。 -考虑下述情况,就可以理解这些内容。在 Bash 中,命令的输出信息就是终端显示的信息。在 PowerShell 中,终端显示的信息并不等于实际可用的信息。这是由于 PowerShell 中的输出-打印系统使用的也是对象。因此 PowerShell 中每一条命令都对输出的对象的一些属性作了可打印的标记,也对一些属性作了不可打印的标记。Bash 中的输出位置被分为一些“字段”,以空格或制表符为标志,在 PowerShell 中它是一个容易寻址的对象属性,只需要知道它的名称即可使用。就像上述例子中的 _WorkingSet_ 那样。 +考虑下述情况,就可以理解这些内容。在 Bash 中,命令的输出信息就是终端显示的信息。在 PowerShell 中,终端显示的信息并不等于实际可用的信息。这是由于 PowerShell 中的输出-打印系统使用的也是对象。因此 PowerShell 中每一条命令都对输出的对象的一些属性作了可打印的标记,也对一些属性作了不可打印的标记。然而,它总是包括所有的属性,而 Bash 只包括它实际打印的内容。我们可以把它想象成 JSON 对象。Bash 中的输出位置被分为一些“字段”,以空格或制表符为标志,在 PowerShell 中它是一个容易寻址的对象属性,只需要知道它的名称即可使用。就像上述例子中的 `WorkingSet` 那样。 为了看到一条命令的输出对象的所有属性和它们的类型,可以进行以下操作: @@ -134,11 +108,11 @@ PS > Get-Process | Get-Member PowerShell 安装包的形式有若干种,包括 Fedora Linux 中使用的 RPM 安装包。本文介绍在 Fedora Linux 中如何使用多种方法安装 PowerShell。 -我推荐使用原生的方法安装。但我也会介绍如何在容器中安装。官方 Microsoft PowerShell 容器和 Fedora Linux 30 工具箱容器的使用,我都会介绍。使用容器的优点在于,所有的依赖捆绑在其中,并且会从主机分离出去,所以它一定是有效的。无论如何,虽然官方文档只是明确支持 Fedora Linux 发行版 28-30,我还是建议使用原生的方法安装。 +我推荐使用原生的方法安装。但我也会介绍如何在容器中安装。我将展示使用官方微软 PowerShell 容器和 Fedora Linux 30 的 Toolbox 容器。使用容器的优点在于,所有的依赖捆绑在其中,并且与主机隔离,所以它一定是有效的。无论如何,虽然官方文档只是明确指出支持 Fedora Linux 发行版的 28-30 版本,我还是建议使用原生的方法安装。 -**注意:** 官方支持意味着一定有效。其他的版本也不是一定不兼容。也就是说,高于 30 的发行版也应该有效。经过测试,的确如此。 +**注意:** 官方支持意味着一定有效。但其他的版本也不是一定不兼容。也就是说,高于 30 的发行版也应该有效。经过测试,的确如此。 -在容器中设置并运行 PowerShell 比直接在主机上运行它难度更大,安装需要花费更多时间,而且你还不能直接运行命令。 +在容器中设置并运行 PowerShell 比直接在主机上运行它难度更大,安装需要花费更多时间,而且你还不能直接运行主机的命令。 #### 在主机上使用包管理器安装 PowerShell @@ -153,9 +127,7 @@ PowerShell 安装包的形式有若干种,包括 Fedora Linux 中使用的 RPM 3. 刷新 DNF 缓存,将新仓库中的有关包包含进来 4. 安装新包 - - -使用命令 _pwsh_ 启动 PowerShell。 +然后使用命令 `pwsh` 启动 PowerShell。 ``` $ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc @@ -165,19 +137,18 @@ $ sudo dnf install powershell $ pwsh ``` -欲删除仓库和包,运行以下命令。 +欲删除仓库和包,运行以下命令: ``` $ sudo rm /etc/yum.repos.d/microsoft.repo $ sudo dnf remove powershell ``` -##### 方法2:使用 PRM 文件 +##### 方法 2:使用 PRM 文件 这种方法与第一种方法没有明显的差别。实际上,在安装 RPM 文件时,隐式添加了 GPG 密码和仓库。这是由于 RPM 文件包含它们两者的关联关系,保存在它的元数据中。 -首先,从 [PowerShell GitHub 仓库][19] 获取相应版本的 _.rpm_ 文件。然后查看 readme.md 文件中的 “获取 PowerShell” 部分的内容。 - +首先,从 [PowerShell GitHub 仓库][19] 获取相应版本的 `.rpm` 文件。然后查看 `readme.md` 文件中的 “获取 PowerShell” 部分的内容。 第二步,输入以下命令: @@ -185,7 +156,7 @@ $ sudo dnf remove powershell $ sudo dnf install powershell-.rhel.7..rpm ``` -在 version 和 architecture 节点中填写各自的内容,例如 [powershell-7.1.3-1.rhel.7.x86_64.rpm][20]。 +在 `` 和 `` 节点中填写各自的内容,例如 [powershell-7.1.3-1.rhel.7.x86_64.rpm][20]。 你也可以使用链接运行它,不指定版本和架构,先把它下载到本地。 @@ -193,7 +164,7 @@ $ sudo dnf install powershell-.rhel.7..rpm $ sudo dnf install https://github.com/PowerShell/PowerShell/releases/download/v/powershell-.rhel.7..rpm ``` -欲删除 PowerShell,运行以下命令。 +欲删除 PowerShell,运行以下命令: ``` $ sudo dnf remove powershell @@ -203,48 +174,46 @@ $ sudo dnf remove powershell ##### 方法一:使用 Podman 容器 -Podman 是一个兼容[开放容器倡议][21](OCI)的、嵌入式的容器引擎,它可以代替 Docker。 +Podman 是一个兼容 [开放容器倡议][21](OCI)的、嵌入式的容器引擎,它可以代替 Docker。 -微软提供了[PowerShell Docker 容器集成工具][22]。下面的例子将在 Podman 中使用容器。 +微软提供了 [PowerShell Docker 容器集成工具][22]。下面的例子将在 Podman 中使用容器。 -欲了解更多关于 Podman 的信息,可以访问 [Podman.io][23]。Fedora 杂志还有一个专为 Podman 设计的[标签][24]。 +欲了解更多关于 Podman 的信息,可以访问 [Podman.io][23]。Fedora 杂志还有一个专为 Podman 设计的 [标签][24]。 欲在 Podman 中使用 PowerShell,运行以下脚本: ``` $ podman run \ - -it \ - --privileged \ - --rm \ - --name powershell \ - --env-host \ - --net=host --pid=host --ipc=host \ - --volume $HOME:$HOME \ - --volume /:/var/host \ - mcr.microsoft.com/powershell \ - /usr/bin/pwsh -WorkingDirectory $(pwd) + -it \ + --privileged \ + --rm \ + --name powershell \ + --env-host \ + --net=host --pid=host --ipc=host \ + --volume $HOME:$HOME \ + --volume /:/var/host \ + mcr.microsoft.com/powershell \ + /usr/bin/pwsh \ + -WorkingDirectory $(pwd) ``` -这段脚本为使用 PowerShell 创建了一个 Podman 容器,并立即将它连接起来。它还将 _/home_ 和主机的根目录挂载到容器中,确保它们在容器中是可用的。无论如何,在 _/var/host_ 目录下,主机的根目录是可获取的。 +这段脚本为使用 PowerShell 创建了一个 Podman 容器,并立即接入其中。它还将 `/home` 和主机的根目录挂载到容器中,确保它们在容器中是可用的。无论如何,在 `/var/host` 目录下,主机的根目录是可访问的。 -但是,在容器内部,你只能间接运行主机命令。有一种变通办法,就是先运行 _chroot /var/host_ 改变根目录,然后运行主机命令。 +但是,在容器内部,你只能间接运行主机命令。有一种变通办法,就是先运行 `chroot /var/host` 改变根目录,然后运行主机命令。 为了把命令拆分开来讲解,除非特别指定,以下所有内容都是强制性的: - * -it 创建一个持久环境,当您进入该环境后,不会轻易退出; - * \--privileged 给予容器扩展的权限(可选); - * \--rm 当你退出时移除容器; - * \--name 设置容器名称; - * \--env-host 将所有主机的环境变量设置为容器的变量值(可选); - * \--volume $HOME:$HOME 加载用户目录; - * \--volume /:/var/host 将根目录挂载到 _/var/host_(可选); - * \--net=host --pid=host --ipc=host 在主机的命名空间中运行进程(而非一组单独的名称空间); - * docker.io/microsoft/powershell 进入容器 - * /usr/bin/pwsh -WorkingDirectory $(pwd) 在当前目录下进入容器(可选)。 - - - -可选但很方便的参数:别名 _pwsh_,脚本中有了它,可以输入 _pwsh_ 轻松访问 Podman 容器。 + * `-it` 创建一个持久环境,当你进入该环境后,不会轻易退出; + * `--privileged` 给予容器扩展的权限(可选); + * `--rm` 当你退出时移除容器; + * `--name` 设置容器名称; + * `--env-host` 将所有主机的环境变量设置为容器的变量(可选); + * `--net=host --pid=host --ipc=host` 在主机的命名空间中运行进程(而非一组单独的名称空间); + * `--volume $HOME:$HOME` 挂载用户目录; + * `--volume /:/var/host` 将主机根目录挂载到 `/var/host`(可选); + * `mcr.microsoft.com/powershell` 进入容器; + * `/usr/bin/pwsh` 可选但很方便的参数:用别名 `pwsh`,脚本中有了它,可以输入 `pwsh` 轻松访问 Podman 容器; + * `-WorkingDirectory $(pwd)` 在当前目录下进入容器(可选)。 欲移除 PowerShell 镜像,运行以下命令: @@ -254,27 +223,29 @@ $ podman rmi mcr.microsoft.com/powershell ##### 方法二:Fedora 系统的 Toolbox 容器 -在不影响主机系统的情况下安装持久化环境,使用 Toolbox 是一种巧妙的解决方案。它类似于 Podman 的封装器,负责提供大量的标志,就像方法一中提到的那样。因此,Toolbox 比 Podman 容易使用。它可以用来开发和调试。有了 Toolbox,你可以运行任何命令,跟你直接在 Fedora 工作站主机上运行是一样的。 +在不影响主机系统的情况下安装持久化环境,使用 Toolbox 容器是一种巧妙的解决方案。它充当了 Podman 的封装器,负责提供大量的标志,就像方法一中提到的那样。因此,Toolbox 比 Podman 容易使用。它可以用来开发和调试。有了 Toolbox,你可以运行任何命令,跟你直接在 Fedora 工作站主机上运行是一样的。 -安装步骤跟在主机上安装一样,唯一的区别就是在容器内部进行。你需要确保已经安装了 _toolbox_ 包。 +安装步骤跟在主机上安装一样,唯一的区别就是在容器内部进行。你需要确保已经安装了 `toolbox` 包。 使用 Fedora 34 Toolbox 容器需要两个步骤: 1. 创建 Fedora 34 Toolbox 容器 2. 运行 Fedora 34 Toolbox 容器 - - ``` $ toolbox create --image registry.fedoraproject.org/f34/fedora-toolbox $ toolbox enter --container fedora-toolbox ``` -接着,按照[方法一:使用微软仓库][10]中的相关内容操作。 +接着,按照 [方法一:使用微软仓库][10] 中的相关内容操作。 -可选但非常方便的做法:使用别名,可以轻松地访问 Toolbox 容器。 +可选但非常方便的做法:使用别名 `pwsh`,可以轻松地访问 Toolbox 容器: -欲移除 Toolbox 容器,需要确保你已经使用 _exit_ 关闭了 Toolbox 会话,然后运行以下命令: +``` +toolbox run –container fedora-toolbox pwsh +``` + +欲移除 Toolbox 容器,需要确保你已经使用 `exit` 关闭了 Toolbox 会话,然后运行以下命令: ``` $ podman kill fedora-toolbox @@ -285,10 +256,10 @@ $ toolbox rm fedora-toolbox via: https://fedoramagazine.org/install-powershell-on-fedora-linux/ -作者:[TheEvilSkeletonOzymandias42][a] +作者:[TheEvilSkeleton, Ozymandias42][a] 选题:[lujun9972][b] 译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -318,3 +289,4 @@ via: https://fedoramagazine.org/install-powershell-on-fedora-linux/ [22]: https://hub.docker.com/_/microsoft-powershell [23]: https://podman.io/ [24]: https://fedoramagazine.org/tag/podman/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/03/120749nkevgkb12exbeffg.jpg \ No newline at end of file From e4373bbe5384f484fb0a38ffce41a15ce4f743a0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 3 Dec 2022 12:09:01 +0800 Subject: [PATCH 2206/3123] P @cool-summer-021 https://linux.cn/article-15312-1.html --- .../20210922 Install PowerShell on Fedora Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210922 Install PowerShell on Fedora Linux.md (99%) diff --git a/translated/tech/20210922 Install PowerShell on Fedora Linux.md b/published/20210922 Install PowerShell on Fedora Linux.md similarity index 99% rename from translated/tech/20210922 Install PowerShell on Fedora Linux.md rename to published/20210922 Install PowerShell on Fedora Linux.md index fdd7f7c72b..e008f88174 100644 --- a/translated/tech/20210922 Install PowerShell on Fedora Linux.md +++ b/published/20210922 Install PowerShell on Fedora Linux.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "cool-summer-021" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15312-1.html" 在 Fedora Linux 系统上安装 PowerShell ====== From bc72d0608a5a6dc3aa926a0fad9f498cc3f0dde0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 3 Dec 2022 15:14:50 +0800 Subject: [PATCH 2207/3123] RP @geekpi https://linux.cn/article-15313-1.html --- ...e Open-Source App to Replace Authy on Linux.md | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) rename {translated/tech => published}/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md (69%) diff --git a/translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md similarity index 69% rename from translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md rename to published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md index bcd56c0b15..6cf779848d 100644 --- a/translated/tech/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md +++ b/published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md @@ -3,19 +3,18 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15313-1.html" -Authenticator:一个简单的开源应用来替代 Linux 上的 Authy +Authenticator:一个 Linux 上的 Authy 的简单的开源替代品 ====== -Authy 是一款流行的应用,用于存储和管理双因素码。它是一项基于云的服务,可为你提供便利的工业级安全性。不幸的是,它不是开源的。 +Authy 是一款流行的应用,用于存储和管理双因素代码。它是一项基于云的服务,可为你提供便利的工业级安全性。不幸的是,它不是开源的。 你会考虑在 Linux 桌面上使用更直接(和开源)的身份验证器应用吗? - -嗯,当然,你不能使用云同步。但是你可以为双因素身份验证码生成备份。记住这点,让我告诉您更多有关 Authenticator 的信息。 +嗯,当然,你不能使用云同步。但是你可以为双因素身份验证码做个备份。记住这点,让我告诉你更多有关 Authenticator 的信息。 ![authenticator app ft][1] @@ -27,7 +26,7 @@ Authenticator 就是这样一款适用于 Linux 的应用,他可让你添加 ![authenticator ui][2] -它是一个免费的开源应用,具有添加各种支持双因素身份验证的令牌和网站的基本功能。 +它是一个自由开源的应用,具有添加各种支持双因素身份验证的令牌和网站的基本功能。 ### 身份验证器的特点 @@ -38,17 +37,17 @@ Authenticator 就是这样一款适用于 Linux 的应用,他可让你添加 - 使用相机或截图的二维码扫描器 - 使用密码保护应用 - 自动锁定应用 -- 支持不同的算法 (SHA-1/SHA-256/SHA-512) -- 支持基于时间/基于计数器/Steam 计算方法 +- 支持各种算法(SHA-1/SHA-256/SHA-512) +- 支持基于时间/基于计数器/流式计算方法 - 备份/恢复选项(FreeOTP、Aegis 和 OTP、Bitwarden 和 Google Authenticator) -你可以获得自定义选项,并能够根据服务提供的支持添加自定义提供程序。可以为提供商添加自定义图标,以帮助你区分身份验证代码。 +你可以设置自定义选项,并能够根据服务提供的支持添加自定义的提供者。可以为提供者添加自定义图标,以帮助你区分身份验证代码。 ![authenticator 自定义提供程序][5] -在大多数情况下,默认设置应该适用于网站。但是,如果它不起作用,你可能需要与提供商核实确切的详细信息。 +在大多数情况下,默认设置应该适用于网站。但是,如果它不起作用,你可能需要与提供者核实确切的详细信息。 -该应用还具有开箱即用的多个提供商,例如 Google Drive 和 Proton Mail。因此,你无需为添加的每个条目添加自定义配置。 +该应用还具有开箱即用的多个提供者,例如 Google Drive 和 Proton Mail。因此,你无需为添加的每个条目添加自定义配置。 ### 在 Linux 上安装 Authenticator @@ -64,13 +63,13 @@ flatpak install flathub com.belmoussaoui.Authenticator 你可以前往其 [Flathub][7] 或 GitLab 页面探索更多信息。 -如果你是 Linux 世界的新手,请参阅我们的 [Flatpak 指南][8]进行设置。你的软件中心可能已经启用了 Flatpak 集成。这种情况下,你可以搜索安装它。 +如果你是 Linux 世界的新手,请参阅我们的 [Flatpak 指南][8] 进行设置。你的软件中心可能已经启用了 Flatpak 集成。这种情况下,你可以搜索安装它。 ### 使用开源身份验证器应用确保安全性和可靠性 我们经常依赖云驱动的工具来处理所有事情。当然,这很方便。 -但是,有时桌面应用更有用。如果你在同一条船上并考虑进行转换,Authenticator 可能是一款出色的应用,可以安装用于双因素身份验证码。 +但是,有时桌面应用更有用。如果你也这么想并考虑进行转换,Authenticator 可能是一款值得安装的出色的应用,可以用于双因素身份验证码。 -------------------------------------------------------------------------------- @@ -79,7 +78,7 @@ via: https://itsfoss.com/authenticator/ 作者:[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/) 荣誉推出 From 38bfd18541e33b17009b2dc9157c6bee8b34e2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 20:07:03 +0800 Subject: [PATCH 2208/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221201.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20reasons=20I=20use=20the=20Dolphin=20file=20manager=20on=20L?= =?UTF-8?q?inux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...reasons I use the Dolphin file manager on Linux.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 sources/tech/20221201.1 ⭐️⭐️ 5 reasons I use the Dolphin file manager on Linux.md diff --git a/sources/tech/20221201.1 ⭐️⭐️ 5 reasons I use the Dolphin file manager on Linux.md b/sources/tech/20221201.1 ⭐️⭐️ 5 reasons I use the Dolphin file manager on Linux.md new file mode 100644 index 0000000000..4a5fef54fb --- /dev/null +++ b/sources/tech/20221201.1 ⭐️⭐️ 5 reasons I use the Dolphin file manager on Linux.md @@ -0,0 +1,78 @@ +[#]: subject: "5 reasons I use the Dolphin file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dolphin" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 reasons I use the Dolphin file manager on Linux +====== + +Computers are basically fancy file cabinets, full of folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. Of course, the files and folders are only virtual, and so software developers came up with the modern "desktop" user interface. Your screen is the top of your "desk," which you can use as a surface for taking out files from their folders so you can review and work on them. The analogy seems almost quaint these days because computers are so much more than just a filing cabinet. And yet the model remains, for many of us, as the primary way we interact with data on our personal computers, which makes humble file manager software some of the most important applications you use. + +### Dolphin on Linux + +![Image of an open window in Dolphin.][1] + +The KDE Plasma Desktop provides Dolphin as its file manager. At first glance, it's a simple and almost minimal application. Don't let that fool you, though. There's a lot of potential in how you interact with the files on your computer, and Dolphin recognizes that. Here are five of my favorite Dolphin features. + +### 1. Fast launches + +Dolphin is quick to launch, and I don't mean that Dolphin itself launches quickly, but that the files you use within Dolphin can be opened quickly. A longtime KDE convention is that a single click of the mouse opens a file. That's admittedly counter-intuitive at first. After all, everybody knows you use a single click to select something and a double-click to open. But think about it. When you're selecting something, you're probably engaged in something relatively ponderous. You select files to then do something with them. The act of selection isn't the main action, it's the prep work for the action. There's no immediacy to selection. + +But when you open something, you've already made up your mind. You want the file opened so you can start working. There's immediacy to opening a file. + +If you look at it that way, it makes sense to require fewer clicks to open a file. So with Dolphin, by default at least, a single click opens a file in its default application. To select a file, you can either click on a **Selection** button overlaid over the icon, or click and drag to make a group selection. None of this is what you're used to, maybe, and it may seem unnatural, but after you've tried it you won't be able to tolerate a less efficient system. + +#### Faster launch (the other kind) + +This isn't a Dolphin feature specifically, but it deserves recognition. Thanks to the `kdeinit` subsystem of the KDE Plasma Desktop, Dolphin and many other KDE applications benefit from function pre-loading. Essentially, processes are launched by forking and loading a dynamic library containing a ''kdemain()'' function, which gives the typical KDE application a boost to launch time (I haven't timed it myself, but they say it's 2.5 times faster than without) and a reduction in memory consumption. + +### 2. Contextual actions + +One of the most basic and most common actions you do with a file manager is move and copy files. In fact, for many people, that's all a file manager is for. + +In Dolphin, when you drag-and-drop a file from one place to another, you're given a pop-up contextual menu so you can quickly choose whether you're copying, moving, or symlinking the file. If that slows you down, you can press a modifier key while dragging: **Shift** to move, **Ctrl** to copy, or **Ctrl+Shift** to link. It's fast, efficient, and friendly. + +![Image of a minimal Dophin window][2] + +### 3. Power of Qt + +The KDE Framework is based on the Qt framework, a famously flexible graphical toolkit. Not all KDE applications have the opportunity to take advantage of that, but Dolphin has several features that draw upon Qt's modular design. For instance, if you don't like the **Places** panel on the left of the window, you can move it to the right side of the window, or remove it entirely. Move the toolbar, remove the menu bar and status bar. Qt stops short of letting you redesign Dolphin entirely, but there's enough malleability for you to be able to change its layout to what works best for you. + +Here's my personal Dolphin configuration: + +![Image of drag and drop actions in Dolphin.][3] + +### 4. Plugins + +Dolphin isn't just Dolphin. It's Dolphin plus any number of plugins you choose to enable. There are plugins for several version control systems, including Git. There are lots of ways to interact with Git, and Dolphin adds one more way for convenience. I don't often think that I'm going to use Dolphin as my Git interface, but with Dolphin version control plugins enabled, it's too easy _not_ to use Dolphin as my Git interface. Nothing could be more natural than adding a file to staging, or adding a commit message, or even pushing to a remote repository, with the file manager that you're using to browse through the files anyway. + +### 5. Options + +They're not technically plugins because they're built along with the application, but Dolphin has a staggering number of optional features. You don't have to activate them all at once, but there's plenty of features in Dolphin for you to discover over years of use. For instance, there's an option to show a filter bar, which you can use as a kind of instant `find`command. You can use tabs in Dolphin, or split the Dolphin window into panes, you can enable expandable folders or choose to click into them, you can open archives as folders, you can choose to view thumbnail previews of certain files or deactivate them for other filetypes, and much more. + +### Dolphin and the modern Linux desktop + +Dolphin, like KDE, thrives on providing you, the user, options, by letting you decide what you want activated and what you want to ignore. Dolphin isn't the minimal lightweight file manager you compile and install on a [10-year old computer you've rescued from the bin][4] (although I've run it as a file manager for [Fluxbox][5] on some surprisingly old computers with success), it's the one you feature on your latest PC build. In short, Dolphin is the high tech desktop experience you'd expect from an advanced operating system like Linux. Dive in! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-dolphin + +作者:[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/2022-09/dolphinwindow.png +[2]: https://opensource.com/sites/default/files/2022-09/dolphin-minimal.png +[3]: https://opensource.com/sites/default/files/2022-09/dolphin-drag-and-drop.png +[4]: https://opensource.com/article/19/7/how-make-old-computer-useful-again +[5]: https://opensource.com/article/19/12/fluxbox-linux-desktop From 4a7dabc3d45e41ab06e489091685daf910e43bf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 20:08:11 +0800 Subject: [PATCH 2209/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221201.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Microsoft=20Office=20365=20Declared=20illegal=20for=20German=20?= =?UTF-8?q?Schools,=20Again!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...365 Declared illegal for German Schools, Again!.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md diff --git a/sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md b/sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md new file mode 100644 index 0000000000..447bf79c0e --- /dev/null +++ b/sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md @@ -0,0 +1,87 @@ +[#]: subject: "Microsoft Office 365 Declared illegal for German Schools, Again!" +[#]: via: "https://news.itsfoss.com/microsoft-office-365-illegal-germany/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft Office 365 Declared illegal for German Schools, Again! +====== + +Microsoft under fire for its Office 365 privacy concerns in Germany, again! + +![Microsoft Office 365 Declared illegal for German Schools, Again!][1] + +Recently, I stumbled upon a blog post by [Tutanota][2], stating that Microsoft's Office 365 had once again been declared illegal for use in German schools. + +Well, what a surprise! 😬The last time this happened was in [2019][3], when Office 365 was banned from schools in the German state of Hesse. + +**If you're curious:** Office 365 package offers a polished set of proprietary tools used by many professionals worldwide, which is why it is popular. + +However, it poses quite a few privacy concerns, as noted by German authorities, which have not been addressed yet. + +🛑 Hence, the decision was taken by the **German Data Protection Conference (DSK or** _Datenschutzkonferenz_**)** to ban the use of Microsoft Office 365 in schools across the country. + +> 💡 DSK is a group that consists of independent German Federal and State Data Protection supervisory authorities. + +### Microsoft Office 365 Cannot be used in German Schools + +**A bold move:** The DSK has banned the use of Microsoft Office 365 in schools, citing various privacy violations by Microsoft. + +Negotiations had been going on for the past two years to ensure its compliance with European data protection standards. + +However, things did not turn out well. + +In a statement made by the [DSK][4], they mention: + +> Controllers must be able to meet their accountability obligations pursuant to Art. 5 (2) GDPR at all times. When using Microsoft 365, difficulties can still be expected in this regard on the basis of the "data protection supplement", as Microsoft does not fully disclose which processing operations take place in detail.In addition, Microsoft does not fully disclose which processing operations are carried out on behalf of the customer or which are carried out for its own purposes. + +In other words, they feel that Microsoft has not been complying with the [GDPR][5], and there has been a consistent lack of transparency from Microsoft. + +**What is different from 2019?:** Well, after getting banned from the schools of Hesse, Microsoft made a few changes after 2019. + +But, they barely scratched the surface by adopting just a few of the EU Commission's standard contractual clauses and updating their '_Products and Services Data Protection [Addendum][6]_'. + +**What caused this again?:** The DSK was not pleased when they discovered that personal data was being sent to the US when Office 365 was used, making that data accessible to American authorities. + +They also discovered that it was impossible to use Microsoft Office 365 without transferring personal data to the USA. + +As a result, they also advise private users not to use Office 365 since Microsoft cannot be trusted to handle their data. + +The folks at Tutanota also noted that many trade schools use Office 365 to prepare their students for office work. Now, they will have to use on-premise licenses (deployed locally) of Microsoft Office to achieve the same. + +**What's Next?:** In a recent [statement][7], Microsoft has said that they do not agree with the DSK and have taken steps to ensure that their Office 365 products either meet the European data standards or often exceed them. + +Microsoft mentions: + +> We take the DSK's call for more transparency to heart. While our transparency standards already exceed those of most other providers in our sector, we are committed to getting even better. In particular, we will provide further documentation on our customers' data streams and the purposes of processing within the framework of our planned EU data limit in the sense of transparency. We will also create more transparency about the locations and processing by subcontractors and Microsoft employees outside the EU. + +So, to sum things up. Microsoft has a long way to go in ensuring compliance with the strict EU data handling guidelines. + +I think German schools should switch to Linux and opt for open-source Microsoft Office alternatives such as LibreOffice, Calligra, ONLYOFFICE, and [more][8] to keep their data secure and in the right hands. + +_💬 What do you think? Is Microsoft struggling to keep its position in Germany? Feel free to share your thoughts._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-office-365-illegal-germany/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/german-schools-ban-ms-office-365.png +[2]: https://tutanota.com/blog/posts/microsoft-office-365-email-alternative/ +[3]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ +[4]: https://datenschutzkonferenz-online.de +[5]: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation +[6]: https://www.microsoft.com/licensing/docs/view/Microsoft-Products-and-Services-Data-Protection-Addendum-DPA +[7]: https://news.microsoft.com/de-de/microsoft-erfuellt-und-uebertrifft-europaeische-datenschutzgesetze/ +[8]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ From fb372f163fdb85f2f2455f2034f4245c914c9a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 20:08:54 +0800 Subject: [PATCH 2210/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221201.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Monica=20An=20Open-Source=20App=20for=20Personal=20Relationship?= =?UTF-8?q?=20Management.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Source App for Personal Relationship Management.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md diff --git a/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md new file mode 100644 index 0000000000..2f5f0ad2f4 --- /dev/null +++ b/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md @@ -0,0 +1,86 @@ +[#]: subject: "Monica: An Open-Source App for Personal Relationship Management" +[#]: via: "https://itsfoss.com/monica/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Monica: An Open-Source App for Personal Relationship Management +====== + +You probably know what CRM stands for – **Customer Relationship Management**. We already have a list of [open-source CRM software][1] that helps small businesses. + +Here, I talk about an interesting open-source web application that takes the same concept for personal relationships. Sounds unique, right? + +Monica is an application that enables you to organize and record your interactions with loved ones. It is **free if you self-host it** and needs a **subscription if you need the hosted version**. + +### Monica: Keep Track of Social Interactions + +![contacts][2] + +It is tough to remember every little detail regarding your interactions with your family, friends, or colleagues. + +You can use [note-taking applications][3] or knowledge management apps like [CubyText][4] to add some information. But those are not tailored to record your interactions. So, you will have to make some effort to add the information in a manner that comes in handy when needed. + +With Monica, it becomes easier to add information about your family, work, the relation between contacts, activities, journals, reminders for important dates, debts, and more. + +You can install it on your own server or opt for a **$90/year** subscription to get the hosted version. + +It is interesting to note that the developer initially built it for his personal requirements. + +### Features of Monica + +![dashboard][5] + +You get loads of options to add information about people and interactions in your daily life. Some of these include: + +- Add notes about a person +- List names of significant others associated with a contact (their children, pets, etc.) +- Phone call logs +- Alternate contact methods for each contact +- Reminders for important dates and events with people. Birthdays are automatically set as reminders. +- Manage gift information +- Useful dashboard to see things at a glance +- Journal entry supported + +It looks like Monica comes packed with various functionalities that make it an all-in-one tool to write journals, take notes, add contact information, add events, and more. + +Unfortunately, there are no mobile apps available. You can access it from the web browser, but it may not be the best experience for everyone. So, if you stick to your smartphone for notes and stuff, you may want to look elsewhere. + +### Self-Host or Subscribe for Access + +If you want a hosted version of Monica, you can look at its [pricing page][6] to know more. + +For self-hosting, you need to head to its [GitHub page][7] and follow the instructions to download and get it installed. There are options to quickly deploy on Platform.sh or Heroku. + +Check the minimum system requirements before choosing a server to host Monica. + +There are no special premium features, and you get the same stuff when self-hosting it compared to its premium subscription for the hosted version. + +It all comes down to convenience. So, choose what sounds good to you. + +Head to its [official website][8] to get all the details and get started. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/monica/ + +作者:[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/best-open-source-crm/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/contacts.png +[3]: https://itsfoss.com/note-taking-apps-linux/ +[4]: https://news.itsfoss.com/cubytext-experimental-project/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/dashboard.png +[6]: https://www.monicahq.com/pricing +[7]: https://github.com/monicahq/monica#get-started +[8]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ From 2fe215885d535bcd8866fb97ef442b375996546f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 23:10:12 +0800 Subject: [PATCH 2211/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221202.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?8=20ideas=20for=20measuring=20your=20open=20source=20software?= =?UTF-8?q?=20usage.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s for measuring your open source software usage.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md new file mode 100644 index 0000000000..892fce0de0 --- /dev/null +++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -0,0 +1,142 @@ +[#]: subject: "8 ideas for measuring your open source software usage" +[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" +[#]: author: "Georg Link https://opensource.com/users/georglink" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +8 ideas for measuring your open source software usage +====== + +Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched. + +To make a long story short: We cannot answer these questions directly. + +Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers. + +The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings. + +### Downloads + +When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while. + +However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person. + +Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices. + +Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software? + +For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from: + +- the project website +- package managers such as npm, PyPi, and Maven +- code repositories like GitHub, GitLab, and Gitee + +You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include: + +- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee +- The number of archives (tar, zip) downloaded from the website +- The number of source code downloads through package managers like npm, PyPi, and Maven + +Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache. + +**[ Related read [5 metrics to track in your open source community][2] ]** + +In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test. + +### Issues + +As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature. + +Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ. + +With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include: + +- The number of issue authors +- The number of active issue authors (opened an issue in the last 6 months) +- The number of issue authors who also contribute code +- The number of issues opened +- The number of issue comments written + +### User mailing lists, forums, and Q&A sites + +Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including: + +- The number of user mailing list subscribers +- The number of forum users +- The number of questions asked +- The number of answers provided +- The number of messages created + +### Call-home feature + +To get accurate counts of users, one idea is to have your software report back when it is in use. + +This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use. + +Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term." + +### Stars and forks + +Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software. + +Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks. + +### Social media + +Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project. + +We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include: + +- The number of followers or subscribers +- The number of messages +- The number of active message authors +- The number of likes, shares, reactions, and other interactions + +### Web analytics and documentation + +Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include: + +- The number of website visitors +- The number of documentation visitors +- The duration visitors spend on your website or in documentation + +### Events + +Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base. + +You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM). + +Metrics you might consider: + +- The number of attendees at your project-centric event +- The number of talks submitted to your project-centric event +- The number of attendees at your project-centric talks + +### Conclusion about approximating usage of open source software + +As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines. + +Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis. + +In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results. + +We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-usage-metrics + +作者:[Georg Link][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/georglink +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/18/5/metrics-project-success +[2]: https://opensource.com/article/22/11/community-metrics From 66ddc04ad80412c7a20717b650d0ef3ced9249a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 23:10:52 +0800 Subject: [PATCH 2212/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221202.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Try=20this=20Java=20file=20manager=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Try this Java file manager on Linux.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md diff --git a/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md new file mode 100644 index 0000000000..7cc31a09ec --- /dev/null +++ b/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md @@ -0,0 +1,63 @@ +[#]: subject: "Try this Java file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Try this Java file manager on Linux +====== + +Computers are fancy filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, we're taking a look at a file manager for your Linux system. + +At the tail end of the Sun Microsystem days, there was something called the Java Desktop System, which was strangely _not_ written in Java. Instead, it was a (according to sun.com at the time) "judicious selection of integrated and tuned desktop software, most based on open source and open standards." It was based on GNOME, with an office suite, email and calendaring apps, instant messaging, "and Java technology." I found myself musing about what it would take to create a desktop in Java. Objectively, a desktop doesn't actually consist of all that much. The general consensus seems to be that a desktop is made up of a panel, a system tray, an application menu, and a file manager. + +It's an interesting thought exercise to imagine an actual Java desktop. Not enough to start an open source project with that as its aim, but enough for a quick web search for the necessary components. And as it turns out, someone has written and maintains a file manager in Java. + +### JFileProcessor + +The Java file manager I found is called JFileProcessor, or JFP for short. It's a fascinating exercise not just in Java, but specifically in [Groovy][1], a popular scripting language for Java. + +![Image of the JfileProcessor folders.][2] + +As a file manager, JFileProcessor takes a minimal approach to both design and function. It lets you view, open, move, copy, cut, or delete files on your local system and on remote systems. It's not particularly customizable, it doesn't have extra features like split panels or movable panes. It's not built around any central theme aside from managing files. JFileProcessor is refreshing, in a way, because of its simplicity. This is a file manager, and that's all. And sometimes that's all you want in a file manager. + +I've written about options to [theme Java Swing][3] before, and that technique is technically an option for this open source application. However, I think part of the charm of this application is what OpenSolaris called its "Blueprint" theme. It's a nostalgic look of Java, and I've enjoyed running it in its native GUI appearance as a callback to my OpenSolaris (now OpenIndiana) laptop. + +### User experience + +Design aside, what really matters is user experience. JFileProcessor has just three buttons that you use on a daily basis: Up, back, and forward. They aren't bound to keyboard shortcuts, so you do have to click the buttons to navigate (or use the **Tab** key to select a button). I do a lot with keyboard shortcuts when using graphical applications, so this slowed me down a lot as I tried to navigate my system. However, there are times when I'm actually just lazily browsing files, and for that JFileProcessor worked exactly as I needed it. + +There's a search component to JFileProcessor, too. As long as you set a reasonable starting folder, the search is quick and intelligent, allowing for both search globs and regex patterns. I used this feature regularly when searching for a specific e-book or comic archive or game rulebook, for instance, or any time that I had a rough idea that directory contained an item but couldn't be bothered to click all the way through to the destination. A quick search through the subdirectories inevitably returned the obvious result, and a double-click opened the file to whatever XDG preference I had set (Evince for PDFs, Foliate for eBooks, and so on.) + +A right-click on any file or directory brings up a context menu. It's got most of the common tasks you'd expect: Copy, Cut, Paste, Delete, Rename, New. It's got some nice additions, too. + +![Right-click context menu in JFileProcessor][4] + +For instance, you can copy just the filename to your clipboard or save a path to a file. You can also run some scripts, including one to batch rename files, one to run a command on selected files, one to create a ZIP or TAR archive, and many more. And of course, there are several options for the coder, including opening a terminal at your current location and opening a new coding window. + +### Install + +I'm a real fan of Java. It's a clear language with sensible delimiters and a firm stance on cross-platform compatibility. I enjoy it as a language, and I love seeing what programmers create with it. + +JFileProcessor is aptly named. It's an effective way to process files, in the sense that JFileProcessor gives you a simple window into the files of data on your system and allows you to interact with them, graphically, in the same way you're likely to interact with them from a terminal. It's not the most efficient file manager I've used, nor the one with the most features. However, it's a pleasant application that provides you with the basic tools you need for file management with a relatively small codebase that makes for some stellar afternoon reading. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor + +作者:[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/article/20/12/groovy +[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp +[3]: https://opensource.com/article/22/3/beautify-java-applications +[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp From 21f5098aba3bd9cfbf6672a4e78ed0c7fc87aa5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 23:12:02 +0800 Subject: [PATCH 2213/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221202.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Privacy-Preserving=20Ads=20Make=20a=20Debut=20on=20Brave=20Sear?= =?UTF-8?q?ch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...acy-Preserving Ads Make a Debut on Brave Search.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md diff --git a/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md b/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md new file mode 100644 index 0000000000..2d0561c3c3 --- /dev/null +++ b/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md @@ -0,0 +1,96 @@ +[#]: subject: "Privacy-Preserving Ads Make a Debut on Brave Search" +[#]: via: "https://news.itsfoss.com/brave-search-ads/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Privacy-Preserving Ads Make a Debut on Brave Search +====== + +Brave Search is testing privacy-preserving ads. But, the Brave browser does not seem to block them by default. + +![Privacy-Preserving Ads Make a Debut on Brave Search][1] + +Brave Search is an independent search engine that claims not to track its users and provides a safe and secure search experience. + +It aims to be a privacy-friendly alternative to the extensive tech services from Microsoft and Google. + +With a [recent announcement][2], they introduced a new feature to Brave Search. The search will now show '_privacy-preserving_' ads as part of a global beta program. + +What does this mean? Allow me to explain. + +### Privacy-Preserving Ads: Meaning? + +![brave search privacy preserving ads][3] + +Brave is planning to run ads on their search platform; they claim that these ads are anonymous, are marked, and follow its commitment of putting users first. + +These ads are said to be clearly labeled and are integrated into Brave Search. + +To display relevant advertisements, Brave Search will only use your **search query, country, and device type**. + +So, in theory, this should stop them from keeping a profile of your searches. + +They also add that: + +> Brave Search ads protect users’ data and anonymity, while supporting their access to independent and transparent search as a true alternative to Big Tech search engines. + +This has been released as a beta test globally, where Brave Search users will be shown text-based ads in search results. + +Users who opted for Brave Private Ads (for _Brave Rewards_) and are using the latest version of Brave won't be shown search ads since these are not yet eligible for BAT earnings. + +Additionally, they offer a '**Search Premium**' subscription for an ad-free search experience, which costs **$3 per month**. + +With this subscription, you get a completely ad-free search experience while also supporting Brave. + +### Is This a Step in the Right Direction? + +Even though Brave Search is based on an **open-source search project**[Tailcat][4], they have no plans to make it open-source. + +So, Brave Search already has a red flag 🚩 for many privacy enthusiasts who prefer open-source solutions for their transparency. + +**Will privacy-preserving ads make a difference, just like Brave Search's original claims for its search engine?** + +Well, I certainly hope so. Why? **Because we need more competitors to Google**. And something is better than nothing. + +Even without open-source code, we will have to sit back and see what kind of transparency they provide in their advertisement testing soon. + +Though, the implementation of Brave's privacy-preserving ads has got a few users upset. + +A [comment][5] made by a Reddit user on the official Subreddit of Brave Browser mentions: + +> Putting in an exception for your own ads is in exceptionally bad taste. All the marketing fluff around "independent, private search" is not an excuse. + +Brave Browser seems to be **not blocking Brave search ads** with its in-built ad-blocker (Brave Shields). + +On that, a member of the Brave support team clarified: + +> Shields at this time does not block 1st part, non tracking ads by default anyway (with the exception of setting to Aggressive, I believe) so it's actually just following the standard we've already set. + +So, you can block the Brave search ads with the privacy protection settings set to aggressive, I believe? + +However, not everyone prefers the aggressive blocker. So, let us see how things turn out for Brave search ad experimentation. + +💭 **Thoughts? Feel free to share them in the comments section.** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/brave-search-ads/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/brave-privacy-preserving-ads.png +[2]: https://brave.com/private-search-ads/ +[3]: https://news.itsfoss.com/content/images/2022/12/Brave_Search_Ads.jpg +[4]: https://www.tailcat.com +[5]: https://www.reddit.com/r/brave_browser/comments/z9t171/comment/iyjledp/?utm_source=share&utm_medium=web2x&context=3 From cb97fbc66bb0b275a60556f8a38a5f504b880d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 23:13:50 +0800 Subject: [PATCH 2214/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221201.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Getting=20Nostalgic=20With=20the=20Historical=20Coherent=20Oper?= =?UTF-8?q?ating=20System.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...c With the Historical Coherent Operating System.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/tech/20221201.4 ⭐️⭐️ Getting Nostalgic With the Historical Coherent Operating System.md diff --git a/sources/tech/20221201.4 ⭐️⭐️ Getting Nostalgic With the Historical Coherent Operating System.md b/sources/tech/20221201.4 ⭐️⭐️ Getting Nostalgic With the Historical Coherent Operating System.md new file mode 100644 index 0000000000..d4cf8dcba5 --- /dev/null +++ b/sources/tech/20221201.4 ⭐️⭐️ Getting Nostalgic With the Historical Coherent Operating System.md @@ -0,0 +1,85 @@ +[#]: subject: "Getting Nostalgic With the Historical Coherent Operating System" +[#]: via: "https://itsfoss.com/coherent-operating-system/" +[#]: author: "Bill Dyer http://www.dyrobooks.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Getting Nostalgic With the Historical Coherent Operating System +====== + +Here’s a blast from the past. Years ago, back in the early 1990s, there was an operating system called Coherent. The price wasn’t so bad – $99. A few years ago, it was made freely available. Coherent never claimed to be UNIX, but UNIX-like. I learned a lot with that OS. + +When the Mark Williams Company closed in 1995, Coherent was a closed-source product. In 2015, it was released under a 3-clause BSD License so, if you’re interested, you can grab a free copy of Coherent at [Internet Archive][1] or [here][2].  + +Here’s a little look-back at Coherent. + +### Coherent’s Requirements + +Coherent was able to run on most Intel-based PCs with Intel 8088, 286, 386, and 486 processors. Coherent version 3, the version I started on, required at least a 286, and Coherent version 4 needed a 386. The drives that were supported were MFM or RLL. + +![coherent v3.0 ad 1][3] + +Coherent 3.0 which was a clone of the AT&T V7 UNIX. It ran very well on a ‘386 and 20mb MFM drive. When Coherent 4.0 came out, I upgraded and also replaced the hard disk to a 40mb MFM unit. In both cases, Coherent ran on less than 10mb. Coherent 4 was closer to AT&T’s Sys5R4 UNIX. + +Coherent 3.0 was a 16-bit OS but Coherent 4.0 was a bigger upgrade, able to take advantage of 32-bit operations. It still had a handful of programs limited to 16-bit operations, but all in all, it was a good system. + +### Coherent’s Offerings + +For a small package, it was remarkably complete. Not only was it a standalone operating system, but came with a big box of goodies, such as a Bourne Shell, C compiler, assembler, debugger, DOS disk support, uucp, at least three editors, some games, mail, and around 200 of the most used and useful UNIX commands. + +![coherent v4.0 ad2][4] + +The shell had a few bugs and was missing some features, but it was sufficient for the small stuff I normally did with it. X Windows was available, but I don’t think it came with the basic system and, if I remember correctly, was a separate purchase. I remember having it and it worked, but it had a few problems, but the Mark Williams Company continually worked on it. + +### Using Coherent + +Having a small UNIX system on a personal PC at home was nice. I was well versed with DOS, but UNIX was the operating system in use where I worked at the time and I preferred it over DOS and Windows 3.1. Coherent wasn’t as powerful as UNIX but it was a good learning tool. With it, I learned much about system administration and got a massive amount of hands-on experience with the command line. + +Programming was fun, but since the C compiler only had small model support (64K of code and 64K of data), I was limited in what programs I could write. Some might laugh at the small model, but some nifty programs could be written with it. + +Using Coherent at home, I was a single user, using it mainly for the experience with the command line and to learn a bit about system administration. + +I really can’t recall how well Coherent handled networking; I never concerned myself with it. I don’t recall it having a lot of network support – it certainly didn’t have TCP/IP. However, it did have `uucp`. It took me some time to get it working right, but once that was done, it delivered all the Usenet news I could ever want. + +One might think that it wouldn’t do well in a large setting, such as a school, but I attended one college that actually had several Coherent workstations. They were used mainly as training stations for classes in operating systems. + +### The XWindows vs. TCP/IP Argument + +There are some arguments over whether or not the Mark Williams Company’s efforts on XWindows was wise, or if they should have concentrated on implementing a TCP/IP stack. To some, this is the main reason why the Mark Williams Company folded. + +The Mark Williams Company spent a lot of time and effort on getting X Windows to work. I don’t recall that they truly finished, but they had at least gone a long way toward completing it. It makes sense to me that they would focus on it – the goal was to make an affordable UNIX-like system and X was definitely considered a part of UNIX. + +A small company would have to choose its projects carefully. XWindows was chosen. Even Linux, in its early days, didn’t offer TCP/IP support at first – [KA9Q][5] was used for a short time, so I don’t think that the decision to focus on XWindows was unwise at all. + +### Conclusion + +Coherent just couldn’t keep up with the competition and the Mark Williams Company closed in 1995. I certainly don’t consider Coherent a failure in the slightest, however. It was an excellent UNIX option at the time and the efforts of the Mark Williams Company was quite impressive. + +I learned more about the command line and general system administration than I ever could have where I worked at the time. I once recommended Coherent to an individual who wanted to learn UNIX on her own. After a year with it, she hired on as a system administrator. The last I heard from her, she was the senior UNIX admin at a large site in the Midwest US. + +I’m right glad that I got to play with Coherent. I credit Coherent with being a key part in my education; it had a part in how my career developed and I went on to be a system administrator on different UNIX systems. + +At home, I would eventually settle on Linux – a decision I do not regret, but if you decide to play with it remember that it’s old – you will be experiencing a bit of history. If you would like to try out Coherent, you can run it through VirtualBox. Thorough setup instructions can be found at: [https://www.autometer.de/unix4fun/coherent/][6]. Not only does the page cover VirtualBox setup, but the page also contains a link to disk images and installation instructions – a one-stop site. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/coherent-operating-system/ + +作者:[Bill Dyer][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.dyrobooks.com/ +[b]: https://github.com/lkxed +[1]: https://archive.org/details/mwc-coherent-unix-clone +[2]: http://www.nesssoftware.com/home/mwc/source.php +[3]: https://itsfoss.com/wp-content/uploads/2022/11/coherent-v3.0-ad-1.jpg +[4]: https://itsfoss.com/wp-content/uploads/2022/11/coherent-1.jpg +[5]: http://www.ka9q.net/code/ka9qnos/ +[6]: https://www.autometer.de/unix4fun/coherent/ From c0a80ccd2fa6bfa5f90550ec00081be8b9f17399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 3 Dec 2022 23:14:45 +0800 Subject: [PATCH 2215/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221203.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Feel=20like=20a=20Linux=20wizard=20with=20the=20Thunar=20file?= =?UTF-8?q?=20manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ike a Linux wizard with the Thunar file manager.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/tech/20221203.0 ⭐️⭐️ Feel like a Linux wizard with the Thunar file manager.md diff --git a/sources/tech/20221203.0 ⭐️⭐️ Feel like a Linux wizard with the Thunar file manager.md b/sources/tech/20221203.0 ⭐️⭐️ Feel like a Linux wizard with the Thunar file manager.md new file mode 100644 index 0000000000..7b7fb97fec --- /dev/null +++ b/sources/tech/20221203.0 ⭐️⭐️ Feel like a Linux wizard with the Thunar file manager.md @@ -0,0 +1,79 @@ +[#]: subject: "Feel like a Linux wizard with the Thunar file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-thunar" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Feel like a Linux wizard with the Thunar file manager +====== + +Computers are fancy filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, I'll take a look at a file manager for your Linux system. + +The [XFCE desktop][1] is well-known and respected for its careful and methodical development cycle. It's actively maintained and has continued to evolve over the years, its focus tends to be on delivering a consistent experience with just the right amount of new features. It's a pleasure to use XFCE on everything from the old computer you've repurposed as a home server to the new PC you've just built and are too greedy to waste GPU cycles on fancy desktop effects. XFCE is a budget desktop that doesn't make you skimp on experience, and its file manager exemplifies that. + +### Linux Thunar file manager + +The Thunar file manager is a lightweight file manager based on the GTK toolkit. If you're running GNOME already, you have most of what you need to run Thunar already installed. If you're not running GNOME, you probably still have most of what you need to run Thunar, because much of what Thunar uses is part of a typical Linux install. + +The visual design of Thunar is, like much of XFCE, "normal." By that, I mean it's exactly what you'd expect from a file manager: the side pane on the left contains common places you use often, and the pane on the right lists the files and folders on your system. + +![Image of the Thunar file manager.][2] + +### Side pane + +The panel on the left contains the default folders of a conventional POSIX system: Desktop, Documents, Downloads, Music, Pictures, Videos, and so on. It also has a slot for removable devices, such as USB drives and SD cards. In addition, it has a place for Network locations, in the event that you interact with a remote computer or a file share. + +Most options in Thunar are provided through its main menu, and that includes the option to change the side pane to a tree view. This view displays common places in an expandable list so you can collapse an entry you're not using at the moment. + +![Image of a side panel in Thunar.][3] + +### Menu + +Much of Thunar's power is accessible through its menu bar. Sure, there's a right-click contextual menu, but you will find the most powerful functions in the main menu. From the menu, you can perform quick but meaningful actions. + +- **Invert selection**: Select one or more items, then go to the **Edit** menu and choose **Invert selection**. Everything you had selected is now unselected, and everything else in the directory is selected. +- **Select by pattern**: Select files based on some combination of characters appearing in their names. For instance, type in `jpg`to select all filesendingin**`*jpg`,** or**`*nix`** to select all files containing the contiguous letters `nix`. +- **Show hidden files**: Sometimes you need to see the files you normally want out of sight. +- **Open terminal here**: Open a terminal window with its working directory set to your location. +- **Make link**: Make a symlink (sometimes called an "alias" or "shortcut") of the selected file or folder. + +### Fast + +The beautiful thing about Thunar, aside from its straight-forward simplicity, is how it defaults to immediately performing the action you've requested. There are file managers out there (including my personal favorite) that, at least without advanced knowledge of special shortcuts, interrupt a process in the interest of verification or clarification. Thunar only pauses when it absolutely needs feedback from you. + +A great example is the **Make link** function in the **Edit** menu. In some file managers, when you create a symlink you're asked first whether or not you want to make a symlink, and then maybe what you'd like to name the symlink, and maybe even where you want the symlink to be created. All of that's really important information and results in a targeted and precise action. However, sometimes you don't need precision. Sometimes you just want speed, which is why Thunar just _makes the symlink_. No questions asked. When you tell it to create a symlink, it creates a symlink, with a name prefixed with "link to", in your current directory. If that's not what you wanted the symlink to be named, then you can rename it. If that's not where you want the symlink to exist, then you can relocate it. Your upfront investment is minimal, and you get results fast. + +### Bulk rename + +Possibly Thunar's greatest contribution to the desktop is its bulk renaming function. How many times have you come home from vacation with a hundred photos called some variation of `IMG_2022-01-04_10-55-12.JPG`, which you add to a thousand other photos with similarly meaningless names? There are lots of [photo managers][4] out there that can help you [organize, browse, and tag][5] those photos, but there's nothing like a descriptive name to start out with. With Thunar, you can select hundreds of files, right-click, and select **Rename** for a bulk renaming interface. + +![Image of Thunar's bulk rename window.][6] + +Imagine opening your `~/Pictures` folder and seeing hundreds of photos with meaningful names! You probably don't even dare, but with Thunar it's actually possible! + +### Runic magic + +It's unclear whether Thunar is the product of mortal programmers or the magical denizens of Asgard. There's a very high probability of the former, but there's also the likelihood that you'll feel like the latter when you use it. It's a humble and simple file manager with a powerful feature set. It may even be a worthy replacement for your existing GNOME file manager, or at the very least worthy of being included in your dock. Install Thunar and wield its power. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-thunar + +作者:[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/article/19/12/xfce-linux-desktop +[2]: https://opensource.com/sites/default/files/2022-09/thunarfilemanager.png +[3]: https://opensource.com/sites/default/files/2022-09/thunar-side-panel.png +[4]: https://opensource.com/life/16/5/how-use-digikam-photo-management +[5]: https://opensource.com/life/16/4/how-use-darktable-digital-darkroom +[6]: https://opensource.com/sites/default/files/2022-09/thunar-bulk-rename.png From b066b31a6c7f94438c229199fafb67b1bb05457f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 4 Dec 2022 09:53:29 +0800 Subject: [PATCH 2216/3123] ALL @wxy https://linux.cn/article-15315-1.html --- ...365 Declared illegal for German Schools, Again!.md | 95 +++++++++++++++++++ ...365 Declared illegal for German Schools, Again!.md | 87 ----------------- 2 files changed, 95 insertions(+), 87 deletions(-) create mode 100644 published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md delete mode 100644 sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md diff --git a/published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md b/published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md new file mode 100644 index 0000000000..37f815aec6 --- /dev/null +++ b/published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md @@ -0,0 +1,95 @@ +[#]: subject: "Microsoft Office 365 Declared illegal for German Schools, Again!" +[#]: via: "https://news.itsfoss.com/microsoft-office-365-illegal-germany/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15315-1.html" + +微软 Office 365 再次在德国学校被宣布为非法 +====== + +> 再一次,微软因其 Office 365 的隐私问题而在德国受到抨击! + +![微软 Office 365 再次在德国学校被宣布为非法!][1] + +最近,我偶然看到 [Tutanota][2] 的一篇博文,说微软的 Office 365 再次被宣布在德国学校使用是非法的。 + +好吧,真让人吃惊!😬 + +上一次发生这种情况还是在 [2019 年][3],当时 Office 365 被禁止在德国黑森州Hesse的学校使用。 + +补充说明一下,Office 365 软件包提供了一套完善的专有工具,被全球许多专业人士使用,这就是它受欢迎的原因。 + +然而,正如德国当局指出的那样,它带来了相当多的隐私问题,这些问题还没有得到解决。 + +🛑 因此,德国数据保护会议(DSK、Datenschutzkonferenz)决定禁止在全国的学校使用微软 Office 365。 + +> 💡 DSK 是一个由独立的德国联邦和州数据保护监督机构组成的团体。 + +### 微软 Office 365 不能在德国学校使用 + +**一个大胆的举动:** DSK 已经禁止在学校使用微软 Office 365,理由是微软存在各种隐私侵犯的行为。 + +过去两年一直在进行谈判,以确保其符合欧洲数据保护标准。 + +然而,事情的结果并不理想。 + +在 [DSK][4] 的一份声明中,他们提到: + +> 控制者必须能够根据 GDPR 第 5(2) 条履行其责任义务。在使用微软 365 时,根据“数据保护附录”,在这方面仍然会遇到困难,因为微软没有完全披露具体发生了哪些处理操作。 +> +> 此外,微软没有完全披露哪些处理操作是代表客户进行的,哪些是为自己的目的进行的。 + +换句话说,他们觉得微软没有遵守 [GDPR][5] 的规定,而且微软一直缺乏透明度。 + +**与 2019 年那次有什么不同?:** 好吧,在被黑森州的学校取缔后,微软在 2019 年后做了一些改变。 + +但是,他们只是采用了欧盟委员会的一些标准合同条款,并更新了他们的《产品和服务数据保护 [附录][6]》,几乎只是表面功夫。 + +**这次又是什么原因造成的?:** 当 DSK 发现使用 Office 365 时,个人数据被发送到美国,使美国当局可以获得这些数据时,他们很不高兴。 + +他们还发现,如果不将个人数据传输到美国,就无法使用微软 Office 365。 + +因此,他们也建议私人用户不要使用 Office 365,因为不能信任微软对他们的数据的处理。 + +Tutanota 的人还指出,许多贸易学校使用 Office 365 来让他们的学生学习办公室工作。现在,他们将不得不使用微软 Office 的本地许可证(在本地部署)来实现同样的目的。 + +**下一步是什么?** 在最近的一份 [声明][7] 中,微软表示,他们不同意 DSK 的做法,并已采取措施,确保他们的 Office 365 产品符合欧洲数据标准,或者经常超过这些标准。 + +微软提到: + +> 我们谨记 DSK 关于提高透明度的呼吁。虽然我们的透明度标准已经超过了我们行业中的大多数其他供应商,但我们承诺会做得更好。 +> +> 特别是,我们将在我们计划的欧盟数据限制的框架内,在透明度的意义上提供关于我们客户的数据流和处理目的的进一步文档。 +> +> 我们还将增加欧盟以外的分包商和微软员工的地点和处理的透明度。 + +因此,总结一下。在遵守严格的欧盟数据处理准则方面,微软还有很长的路要走。 + +我认为德国学校应该改用 Linux,并选择开源的微软 Office 替代品,如 LibreOffice、Calligra、ONLYOFFICE [等等][8],以保证他们的数据安全并掌握在正确的人手中。 + +你怎么看?微软是否在努力保持其在德国的地位?欢迎分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-office-365-illegal-germany/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/german-schools-ban-ms-office-365.png +[2]: https://tutanota.com/blog/posts/microsoft-office-365-email-alternative/ +[3]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ +[4]: https://datenschutzkonferenz-online.de +[5]: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation +[6]: https://www.microsoft.com/licensing/docs/view/Microsoft-Products-and-Services-Data-Protection-Addendum-DPA +[7]: https://news.microsoft.com/de-de/microsoft-erfuellt-und-uebertrifft-europaeische-datenschutzgesetze/ +[8]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ diff --git a/sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md b/sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md deleted file mode 100644 index 447bf79c0e..0000000000 --- a/sources/news/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md +++ /dev/null @@ -1,87 +0,0 @@ -[#]: subject: "Microsoft Office 365 Declared illegal for German Schools, Again!" -[#]: via: "https://news.itsfoss.com/microsoft-office-365-illegal-germany/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft Office 365 Declared illegal for German Schools, Again! -====== - -Microsoft under fire for its Office 365 privacy concerns in Germany, again! - -![Microsoft Office 365 Declared illegal for German Schools, Again!][1] - -Recently, I stumbled upon a blog post by [Tutanota][2], stating that Microsoft's Office 365 had once again been declared illegal for use in German schools. - -Well, what a surprise! 😬The last time this happened was in [2019][3], when Office 365 was banned from schools in the German state of Hesse. - -**If you're curious:** Office 365 package offers a polished set of proprietary tools used by many professionals worldwide, which is why it is popular. - -However, it poses quite a few privacy concerns, as noted by German authorities, which have not been addressed yet. - -🛑 Hence, the decision was taken by the **German Data Protection Conference (DSK or** _Datenschutzkonferenz_**)** to ban the use of Microsoft Office 365 in schools across the country. - -> 💡 DSK is a group that consists of independent German Federal and State Data Protection supervisory authorities. - -### Microsoft Office 365 Cannot be used in German Schools - -**A bold move:** The DSK has banned the use of Microsoft Office 365 in schools, citing various privacy violations by Microsoft. - -Negotiations had been going on for the past two years to ensure its compliance with European data protection standards. - -However, things did not turn out well. - -In a statement made by the [DSK][4], they mention: - -> Controllers must be able to meet their accountability obligations pursuant to Art. 5 (2) GDPR at all times. When using Microsoft 365, difficulties can still be expected in this regard on the basis of the "data protection supplement", as Microsoft does not fully disclose which processing operations take place in detail.In addition, Microsoft does not fully disclose which processing operations are carried out on behalf of the customer or which are carried out for its own purposes. - -In other words, they feel that Microsoft has not been complying with the [GDPR][5], and there has been a consistent lack of transparency from Microsoft. - -**What is different from 2019?:** Well, after getting banned from the schools of Hesse, Microsoft made a few changes after 2019. - -But, they barely scratched the surface by adopting just a few of the EU Commission's standard contractual clauses and updating their '_Products and Services Data Protection [Addendum][6]_'. - -**What caused this again?:** The DSK was not pleased when they discovered that personal data was being sent to the US when Office 365 was used, making that data accessible to American authorities. - -They also discovered that it was impossible to use Microsoft Office 365 without transferring personal data to the USA. - -As a result, they also advise private users not to use Office 365 since Microsoft cannot be trusted to handle their data. - -The folks at Tutanota also noted that many trade schools use Office 365 to prepare their students for office work. Now, they will have to use on-premise licenses (deployed locally) of Microsoft Office to achieve the same. - -**What's Next?:** In a recent [statement][7], Microsoft has said that they do not agree with the DSK and have taken steps to ensure that their Office 365 products either meet the European data standards or often exceed them. - -Microsoft mentions: - -> We take the DSK's call for more transparency to heart. While our transparency standards already exceed those of most other providers in our sector, we are committed to getting even better. In particular, we will provide further documentation on our customers' data streams and the purposes of processing within the framework of our planned EU data limit in the sense of transparency. We will also create more transparency about the locations and processing by subcontractors and Microsoft employees outside the EU. - -So, to sum things up. Microsoft has a long way to go in ensuring compliance with the strict EU data handling guidelines. - -I think German schools should switch to Linux and opt for open-source Microsoft Office alternatives such as LibreOffice, Calligra, ONLYOFFICE, and [more][8] to keep their data secure and in the right hands. - -_💬 What do you think? Is Microsoft struggling to keep its position in Germany? Feel free to share your thoughts._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/microsoft-office-365-illegal-germany/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/german-schools-ban-ms-office-365.png -[2]: https://tutanota.com/blog/posts/microsoft-office-365-email-alternative/ -[3]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ -[4]: https://datenschutzkonferenz-online.de -[5]: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation -[6]: https://www.microsoft.com/licensing/docs/view/Microsoft-Products-and-Services-Data-Protection-Addendum-DPA -[7]: https://news.microsoft.com/de-de/microsoft-erfuellt-und-uebertrifft-europaeische-datenschutzgesetze/ -[8]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ From 0008e424e5c72c8b41636cd25d0f70f5231286f2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 4 Dec 2022 11:33:47 +0800 Subject: [PATCH 2217/3123] RP @geekpi https://linux.cn/article-15316-1.html --- ...Now Install Unity 7.6 Desktop on Arch Linux.md | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md (65%) diff --git a/translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md similarity index 65% rename from translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md rename to published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md index 1cb5d92805..61b8645189 100644 --- a/translated/tech/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md +++ b/published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md @@ -3,13 +3,17 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15316-1.html" -你现在可以在 Arch Linux 上安装 Unity 7.6 桌面 +你现在可以在 Arch Linux 上安装 Unity 7.6 桌面了 ====== +> 想在 Arch Linux 上试试 Unity 吗?现在可以了! + +![](https://news.itsfoss.com/content/images/size/w2000/2022/11/unity-on-arch-linux.png) + Unity Desktop 是由 Canonical 构建的经典桌面环境,它从 2010 年到 2017 年是 Ubuntu 的一部分,但为了支持 GNOME 而放弃。 我们认为它永远被杀死了。但它卷土重来。 @@ -22,7 +26,7 @@ Unity 7.6 的发布标志着大量改进的到来。 而且,更进一步,Unity 7.6 已可用于 Arch Linux。开发者提到: -> 此移植基于 chenxiaolong 的早期成果 Unity-for-Arch(2011-2016 年维护)。 +> 此移植基于 chenxiaolong (于 2011-2016 年维护)的早期成果 Unity-for-Arch。 ### 在 Arch Linux 上试用 Unity 7.6 @@ -30,17 +34,21 @@ Unity 7.6 的发布标志着大量改进的到来。 首先,你必须确保你已经安装了 Arch Linux。 -Then you can follow these steps to run Unity 7.6 on Arch Linux: 然后你可以按照以下步骤在 Arch Linux 上运行 Unity 7.6: -- **安装“[Paru][3]”,它是一个 AUR 助手。** -- **使用 “paru -S unity-installer-arch” 安装名为 “unity-installer-arch” 的脚本** -- **在 TTY/终端窗口中运行 “unity-installer-arch”。** -- **选择 “安装 Unity 桌面”。** -- **将默认显示管理器更改为 “lightdm”。** -- **使用 “unity-greeter” 作为默认登录界面。** +安装 [Paru][3],它是一个 AUR 助手。 -的同事 Sreenath 尝试了一下,在安装过程中,由于多重依赖冲突,他不得不从全新的 Arch 开始。 +使用 `paru -S unity-installer-arch` 安装名为 `unity-installer-arch` 的脚本。 + +在 TTY/终端窗口中运行 `unity-installer-arch`。 + +选择 “安装 Unity 桌面Install Unity desktop”。 + +将默认显示管理器更改为 `lightdm`。 + +使用 `unity-greeter` 作为默认登录界面。 + +我的同事 Sreenath 尝试了一下,在安装过程中,由于多重依赖冲突,他不得不从全新的 Arch 开始。 对你来说可能有所不同,但请记住这一点。如果你不想花时间在这上面,你可能想试试 [Ubuntu Unity][4]。 @@ -50,7 +58,7 @@ Then you can follow these steps to run Unity 7.6 on Arch Linux: 你想让那发生吗? -_💬 你是 Unity 桌面的现有用户吗?想试试看么?在评论区分享你的观点。_ +💬 你是 Unity 桌面的用户吗?想试试看么?在评论区分享你的观点。 -------------------------------------------------------------------------------- @@ -59,7 +67,7 @@ via: https://news.itsfoss.com/unity-arch-linux/ 作者:[Sourav Rudra][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/) 荣誉推出 From d5d0eca59901862d9de1682172f92d2469a2e996 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sun, 4 Dec 2022 15:04:26 +0800 Subject: [PATCH 2218/3123] translating --- ...221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md index 80773e6f6f..fa23d27aa3 100644 --- a/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md +++ b/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/advanced-git-commands" [#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From c0422b80d72fa464affdf0b0450406669a7ce2f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 01:29:27 +0800 Subject: [PATCH 2219/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221201.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?What=20is=20Firefox=20ESR=20How=20to=20Install=20it=20in=20Ubun?= =?UTF-8?q?tu.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...What is Firefox ESR How to Install it in Ubuntu.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md diff --git a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md new file mode 100644 index 0000000000..ab1be90f2f --- /dev/null +++ b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md @@ -0,0 +1,142 @@ +[#]: subject: "What is Firefox ESR? How to Install it in Ubuntu?" +[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What is Firefox ESR? How to Install it in Ubuntu? +====== + +The snap version of Ubuntu is not to your liking? Don’t like constantly changing things with every Firefox release? You can try the Firefox ESR version if you value stability over features. + +### What is Firefox ESR? + +Firefox ESR is a special edition of Firefox browser that doesn’t necessarily get new features monthly as the regular edition but it provides a stable and secure browsing experience. This is suitable for enterprises, organizations and institutes where stability and core features matter more than shiny new features. + +Think of Firefox ESR as the long-term stable release of Linux distributions. They do not necessarily get brand-new features but they get regular security and maintenance updates. This gives the users a familiar and stable environment. + +#### Why should you care for Firefox ESR? + +Firefox releases a new version almost every month. It contains security and feature updates. + +But some people may not like the inclusion and removal of features. If, after an update, you keep wondering where did certain settings go or do not like things that are different than before, Firefox ESR could be worth a try. + +Basically, if you value stability more than new features, Firefox ESR is for you. This is the same version of Firefox that ships with Debian, which is known for being one of the most stable distros you can get in the market. + +Let me show you how to get Firefox ESR on Ubuntu. **_You can have both Firefox and Firefox-ESR versions installed simultaneously. There is no visual difference in their logos so you have to pay attention to which Firefox version you are opening._** + +### Installing Firefox ESR in Ubuntu + +Before I jump to the installation part, let me share what’s the version difference between regular Firefox and Firefox-ESR. While writing, + +- Firefox is running at version **107.0-2**. +- Firefox-ESR is currently having **102.5.0esr**. + +So if that’s fine for you, let’s look at the first method. + +#### Method 1: Install Firefox-ESR using PPA + +Firefox-ESR is not available in the default repository of Ubuntu, so you can use the PPA. + +PPA is nothing but a repository being maintained by individual techies or developers to have what the default repository does not. + +And if you want to learn more about PPA, I would recommend checking our other guide that explains [how you can use PPA on Linux.][1] + +Open your terminal and use the given command to add PPA for Firefox-ESR: + +``` +sudo add-apt-repository ppa:mozillateam/ppa +``` + +And press Enter to confirm you want to add PPA: + +![add firefox esr repository in ubuntu][2] + +Once done, you will have to update the repository index in Ubuntu to take effect from the changes: + +``` +sudo apt update +``` + +And now, you can install Firefox-ESR by using the given command: + +``` +sudo apt install firefox-esr +``` + +Next, you can use the given command to check the installed version of Firefox-ESR in your system: + +``` +firefox-esr -v +``` + +![check installed version of firefox esr in ubuntu][3] + +##### Uninstalling Firefox-ESR from Ubuntu + +If the ESR felt too outdated for your work or for any other reason you want to remove it from your system, you can follow the steps to remove the Firefox-ESR package and the repository. + +First, let’s remove the Firefox-ESR package using the following: + +``` +sudo apt remove firefox-esr +``` + +Now, you can use the given command to [remove PPA from Ubuntu][4]: + +``` +sudo add-apt-repository --remove ppa:mozillateam/ppa +``` + +And that’s it! + +#### Method 2: Install Firefox-ESR using Snap + +Love it or hate it, Snaps comes pre-configured on Ubuntu and I find using snaps a neat way of installing packages, especially when you want to avoid building them for source or using PPA. + +All you need to do to install Firefox-ESR using snaps is to follow the given command: + +``` +sudo snap install firefox --channel=esr/stable +``` + +![install firefox esr using snaps in ubuntu][5] + +##### Removing Firefox-ESR Snap + +To remove Firefox-ESR (snap package), use the [snap remove command][6]: + +``` +sudo snap remove firefox +``` + +And that’s it! + +### Wrapping Up + +I explained how to install Firefox-ESR in Ubuntu using multiple methods in this guide. I personally use Firefox-ESR instead of the regular version as I was having random crashes. + +Since I shifted to Firefox-ESR, things have been going rock-solid for me. And if you were having the same, you should give it a try. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/firefox-esr-ubuntu/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/ppa-guide/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png +[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png +[6]: https://itsfoss.com/remove-snap/ From 59942650bd03ad27d6cb9285023dac0fb4cae189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 01:29:53 +0800 Subject: [PATCH 2220/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221204.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Make=20your=20Linux=20computer=20feel=20faster=20with=20the=20X?= =?UTF-8?q?fe=20file=20manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... computer feel faster with the Xfe file manager.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20221204.0 ⭐️⭐️ Make your Linux computer feel faster with the Xfe file manager.md diff --git a/sources/tech/20221204.0 ⭐️⭐️ Make your Linux computer feel faster with the Xfe file manager.md b/sources/tech/20221204.0 ⭐️⭐️ Make your Linux computer feel faster with the Xfe file manager.md new file mode 100644 index 0000000000..0b2541b075 --- /dev/null +++ b/sources/tech/20221204.0 ⭐️⭐️ Make your Linux computer feel faster with the Xfe file manager.md @@ -0,0 +1,91 @@ +[#]: subject: "Make your Linux computer feel faster with the Xfe file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-xfe" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Make your Linux computer feel faster with the Xfe file manager +====== + +Computers are like filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, I'll look at a file manager for your Linux system. + +Back before NVMe drives and 12-core processors, applications could take seconds to launch. While that wait time is fine for a big application like LibreOffice or Blender, it's a little painful when it's a tiny application you use frequently. 2 seconds times 10 file manager windows in an hour, times 12 hours a day, is 4 whole minutes of wasted time. OK, I admit that's actually not that much when you do the math, but ask anybody and they'll tell you that it _felt_ like 4 hours. One way to make a computer, whether it's last year's model or something hot off the shelf, feel faster is to use "lightweight" applications. An application is usually considered lightweight when it's designed around minimal code libraries that don't demand much from your system's resources. + +The X File Explorer (Xfe) file manager is one of those applications. It's quick to launch, it doesn't feature fancy animations or effects, and it has few dependencies beyond some basic libraries, most of which are probably already on your Linux system. + +![Image of the XFE file manager.][1] + +### Install on Linux + +On Fedora, CentOS, Mageia, and similar, you can install Xfe from your software repository: + +``` +$ sudo dnf install xfe +``` + +On Debian, Elementary, Linux Mint, and similar: + +``` +$ sudo apt install xfe xfe-themes +``` + +Xfe is open source, so you can alternately just [download the source code][2] and [compile it yourself][3]. + +### Using Xfe + +The first thing you're likely to notice about Xfe is that by default it's a little top-heavy. There's a menu bar, and then not one but five toolbars along the top of the window. Those toolbars aren't hard coded in position, though, and you can choose which toolbar you actually need on screen at all times in the **View** menu. Personally, I keep the **Location** toolbar on and hide the rest. But I think all Xfe users are likely to have a favorite set of toolbars all their own, so when you first try Xfe give yourself time to see which toolbar you actually end up using. + +Here's a list of the toolbars and some of the important buttons they each contain: + +- **General**: Navigation buttons, view refresh, new file, new directory, copy, cut, paste, and other standard file manager actions. This could replace the menu bar, were there a way to hide the menu bar. +- **Tools**: Launch a new Xfe window as user or root, execute a command, launch a terminal. +- **Panel**: Split the Xfe window into two panes, two panes with panels, one pane with panel, or a single pane. +- **Location**: Enter a path for quick navigation. + +It's not just the toolbars that are configurable. You can hide most components of Xfe, including the side pane displaying your filesystem tree and the status bar. Xfe can look as minimal as its memory footprint: + +![Image of Xfe in a minimal style.][4] + +### Power menu + +The beautiful thing about Xfe's design is that you never sacrifice features regardless of your configuration. You can hide toolbars and panels, but you still have access to every option from the menu. + +From the **Panel** menu, for instance, you can filter files by regex strings, show hidden files, activate and deactivate thumbnails (the fewer things your computer has to render, the faster it can draw the screen), switch icon views between a list or detailed list, choose to ignore case, reverse the sort order, and more. + +There's even a menu for the **Trash**, so you can always get to the place you need to be to rescue something you've thrown out. + +### Two dots + +The feature I appreciate more than I'd expected I would is Xfe's inclusion of a meta folder with a name of just two dots. The `..` folder isn't really a folder. It's shorthand for going "up" in your directory tree. If you don't think of folders existing in a tree configuration, that might not make immediate sense, but in computing, you can express the hierarchy of data storage in the same way you might express a family tree. If the `penguins` folder contains the `emperor` and `rockhopper` folders, then you can think of the `penguin` directory as their "parent." + +![Image of a file system tree.][5] + +Computers use two dots as an instruction to move out of the current directory and "up" the tree. When you're in the `rockhopper` folder, two dots mean _ascend up_ to `penguins`. When you're in the `emperor` folder, two dots also mean _ascend up_ to `penguins`, because `emperor` and `rockhopper` are both "children" of the `penguins` directory. + +This two dot convention is common in Linux and in fact the entire Internet (you can test this out by appending `/..` to the end of the URL of this article. It won't get you very far due to restricted permissions, but it does successfully take you off this page, so wait until you're done reading!) Having access to two dots in every directory of Xfe is a familiar and convenient way to navigate. + +### Make it quick + +Running fast applications makes your computing faster. It's a secret that experienced Linux users have known for years, and it's one of the many reasons you often see Linux users with ancient computers. When you use a terminal and a handful of lightweight applications, even a computer from a decade ago doesn't feel slow. The Xfe file manager, whether you use it for speed or just because it's a reliable app that's got everything you need, is an excellent choice for a file manager. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-xfe + +作者:[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/2022-09/xfefilemanager.png +[2]: https://sourceforge.net/projects/xfe/ +[3]: https://opensource.com/article/21/11/compiling-code +[4]: https://opensource.com/sites/default/files/2022-09/xfe-minimal.png +[5]: https://opensource.com/sites/default/files/2022-09/filesystem-tree.png From 84b1558c01696705ec904a1e67702907a49edf0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 01:37:57 +0800 Subject: [PATCH 2221/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221204.1=20=E2=AD=90=EF=B8=8F=204MLinux=2041.0=20s?= =?UTF-8?q?table=20is=20now=20available=20with=20SDL=20games=20+=20More.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...able is now available with SDL games + More.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md diff --git a/sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md b/sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md new file mode 100644 index 0000000000..0502fc3cfa --- /dev/null +++ b/sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md @@ -0,0 +1,90 @@ +[#]: subject: "4MLinux 41.0 stable is now available with SDL games + More" +[#]: via: "https://debugpointnews.com/4mlinux-41-0-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4MLinux 41.0 stable is now available with SDL games + More +====== + +![][1] + +**The new stable version of 4MLinux 41.0 is now generally available for download and installation.** + +4MLinux is a decade-old small Linux distribution that focuses on four main capabilities: maintenance (e.g., as a system rescue live CD), multimedia (e.g., playing video DVDs), miniserver (using the inetd daemon), and mystery (small Linux games). It is independently developed and comes with 32-bit images as well. A perfect [lightweight Linux distribution][2] for older hardware. + +The 4MLinux 41.0 series have been updated to its stable version. This version includes tools for editing documents such as LibreOffice and GNOME Office, file sharing with DropBox, web browsing with Firefox and Chromium, email with Thunderbird, and more. It also includes a LAMP server setup and programming languages like Perl, Python, and Ruby. + +Here’s a summary of the changes. + +![4MLinux 41.0 desktop][3] + +### 4MLinux 41.0: What’s New + +Firstly, 4MLinux 41.0 brings LibreOffice 7.4.3 and GNOME Office (including AbiWord 3.0.5, GIMP 2.10.32, and Gnumeric 1.12.52) to edit your documents. In addition, DropBox 151.4.4304 is available for sharing your files, and you can use Firefox 107.0 and Chromium 106.0.5249 to surf the internet. + +Thunderbird 102.5.0 is included for sending and receiving emails, and Audacious 4.2 allows you to enjoy your music collection. You can also watch videos with VLC 3.0.17.3 and SMPlayer 22.2.0, and play games with the help of Mesa 22.1.4 and Wine 7.18. + +Additionally, the 4MLinux LAMP Server (featuring Linux 6.0.9, Apache 2.4.54, MariaDB 10.6.11, PHP 5.6.40 and PHP 7.4.33) is included for setting up your own web server. The stable version of 4MLinux 41.0 also includes the programming languages Perl 5.36.0, Python 2.7.18, Python 3.10.6, and Ruby 3.1.2. + +Furthermore, this release also includes several new features and applications. + +Out of the box, it includes FileZilla (FTP client), XPaint and GNU Paint (simple image-editing tools), and nvme (command-line utility for managing NVM-Express partitions), as well as a collection of small SDL games. Additionally, there are several downloadable extensions available, including BlueGriffon (HTML editor), The Legend of Edgar (platform game), ioquake3 (Quake III port), and BZFlag (tank battle game). + +SMPlayer is now the default video player in 4MLinux, and Audacious is the default audio player. It is also now possible to install 4MLinux on a BTRFS partition with the help of Syslinux, which acts as a boot manager. + +### Summary of changes + +- Mainline Linux Kernel 6.0.9 +- jwm (Joe’s window manager) 2.4.0 +- LibreOffice 7.4.3 +- GNOME Office (including AbiWord 3.0.5, GIMP 2.10.32, and Gnumeric 1.12.52) +- DropBox 151.4.4304 +- Firefox 107.0 +- Chromium 106.0.5249 +- Thunderbird 102.5.0 +- Audacious 4.2 +- VLC 3.0.17.3 +- SMPlayer 22.2.0 +- Mesa 22.1.4 +- Wine 7.18 +- 4MLinux LAMP Server (featuring Linux 6.0.9, Apache 2.4.54, MariaDB 10.6.11, PHP 5.6.40 and PHP 7.4.33) +- Perl 5.36.0 +- Python 2.7.18 +- Python 3.10.6 +- Ruby 3.1.2 + +### Download + +The latest version, 4MLinux 41.0, is now available for download at the following link: + +[Download 4MLinux 41.0][4] + +This release includes new applications and features, such as SMPlayer as the default video player and the ability to install 4MLinux on a BTRFS partition with Syslinux. We encourage you to try out 4MLinux in a [virtual machine][5] and see all it offers. + +- [Changelog][6] +- [Release announcement][7] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/4mlinux-41-0-release/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/4mlinux-head.jpg +[2]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ +[3]: https://debugpointnews.com/wp-content/uploads/2022/12/4MLinux-41.0-desktop.jpg +[4]: https://sourceforge.net/projects/linux4m/ +[5]: https://www.debugpoint.com/install-ubuntu-virtualbox/ +[6]: http://4mlinux.com/addons-41.0.txt +[7]: https://4mlinux-releases.blogspot.com/2022/12/4mlinux-410-stable-released.html From 11fc870f86eba52c4917b4019450e4a66e94d5d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 01:38:50 +0800 Subject: [PATCH 2222/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221204.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Trinity=20Desktop=20Environment=20R14.0.13=20is=20now=20out=20w?= =?UTF-8?q?ith=20updates!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...p Environment R14.0.13 is now out with updates!.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md diff --git a/sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md b/sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md new file mode 100644 index 0000000000..9600c86b94 --- /dev/null +++ b/sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md @@ -0,0 +1,114 @@ +[#]: subject: "Trinity Desktop Environment R14.0.13 is now out with updates!" +[#]: via: "https://debugpointnews.com/trinity-desktop-environment-r14-0-13/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Trinity Desktop Environment R14.0.13 is now out with updates! +====== + +![][1] + +**Missing old-KDE? The new minor release of Trinity Desktop Environment (TDE R14.0.13) brings a few new features and bug fixes. This is a release summary.** + +![Trinity Desktop Environment R14.0.13][2] + +If you are one of those users who miss the good ol’ KDE (3.5) look, then you can get it via Trinity Desktop Environment (TDE). The TDE is a fork of the KDE 3.5 desktop environment developed by a small team of volunteers. It’s a continuation of the KDE 3 desktop methodology, providing updates and bug fixes for those who appreciate its features and design. + +Despite being a small and independent project, TDE is still actively developed and maintained, offering users an alternative to more mainstream desktop environments. And following the [prior R14.0.12 release][3], the thirteenth minor release brings a few goodies. + +### Trinity Desktop Environment release R14.0.13: What’s New + +#### Desktop usability updates + +This release introduces the ability to use Ctrl + mouse wheel to increase or decrease the font size in Konsole, Kate, KWrite, TDevelop, and other applications using the Kate part editor. In addition, the Kate text editor now includes syntax highlighting for Markdown files, making it easier to read and edit these types of documents. + +These enhancements give users more control over their text editor’s appearance and improve the overall user experience. + +Furthermore, Trinity Desktop Environment R14.0.13 also includes improvements to how users set a wallpaper, making it easier and more intuitive. The Konqueror action menu now offers all available options for setting an image as the background, providing users with more flexibility and control.These enhancements enhance the overall user experience when setting wallpaper and make it more convenient for users. + +On top of that, this release includes improvements to the khotkeys Input Actions, providing users with more control and flexibility. The GUI for creating and editing actions now includes new move-up/move-down buttons, making it easier to reorder actions. + +In addition, this release includes fixes to the GUI to improve its overall usability and performance.These enhancements enhance the user experience when working with khotkeys Input Actions and make it more convenient for users to customize their keyboard shortcuts. + +![twin-style-machbunt - a KDE window decoration theme from SuSE][4] + +#### Core and supports + +This release includes a new waiting action component that allows users to introduce a delay between steps. The SFTP tdeioslave has been updated to use libssh, providing a more secure and stable connection. The taskbar now includes moving tasks and dragging and dropping grouped task buttons, enhancing the user experience. + +This release includes improved API visualization and enhanced Python3 support. The language used throughout the release has been updated to be gender-neutral. These enhancements improve the overall user experience and make the TDE more inclusive and accessible. + +Other than that, on the core apps side, the TDE R14.0.13 release includes several updates to improve compatibility with popular multimedia and document processing libraries. This includes support for ffmpeg 5.0, Jasper 3.x, and Poppler >= 22.04. These updates allow TDE to take advantage of these libraries’ latest features and performance improvements. In addition, this release includes man pages for several TDE applications, providing users with more detailed documentation and information about how to use these programs. These enhancements improve the overall functionality and performance of the TDE. + +### Download and Install Trinity desktop environment R14.0.13 + +If you are using Ubuntu 22.04 LTS Jammy Jellyfish, you can run the following command to install it on top of your existing Ubuntu installation. + +``` +sudo gedit /etc/apt/sources.list +``` + +Add the following line and save the file. + +``` +deb http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-sb jammy deps-r14 main-r14deb-src http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-sb jammy deps-r14 main-r14 +``` + +``` +wget http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-keyring.debsudo dpkg -i trinity-keyring.debsudo apt updatesudo apt install kubuntu-default-settings-trinity kubuntu-desktop-trinity +``` + +After installation, restart your system and choose Trinity from the login screen. Note: As of publishing this, the repo is yet unavailable for Ubuntu 22.10 Kinetic Kudu. + +For Arch Linux users, you can install it via the following commands: + +Open `/etc/pacman.conf` using admin privilege and add the following lines at the end and save the fine. + +``` +[trinity]Server = https://mirror.ppa.trinitydesktop.org/trinity/archlinux/$arch +``` + +Then open a terminal and run the following: + +``` +pacman-key --recv-key D6D6FAA25E9A3E4ECD9FBDBEC93AF1698685AD8B +pacman-key --lsign-key D6D6FAA25E9A3E4ECD9FBDBEC93AF1698685AD8B +``` + +And finally, use the below to install. + +``` +pacman -Sy +``` + +``` +pacman -S tde-meta +``` + +For other distros, you can find the detailed download and install guide for TDE on [this page][5]. + +Via [release announcement][6] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/trinity-desktop-environment-r14-0-13/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tde-head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Trinity-Desktop-Environment-R14.0.13.jpg +[3]: https://www.debugpoint.com/tde-release-r14-0-12/ +[4]: https://debugpointnews.com/wp-content/uploads/2022/12/twin-style-machbunt-a-KDE-window-decoration-theme-from-SuSE.jpg +[5]: http://pacman -S tde-meta +[6]: https://www.trinitydesktop.org/newsentry.php?entry=2022.10.30 From 15cb80ff1cbface3a25905cc0371ecf0ea00266d Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 5 Dec 2022 08:35:57 +0800 Subject: [PATCH 2223/3123] translated --- ...⭐️ 3 open source audio tools for creators.md | 69 ------------------- ...⭐️ 3 open source audio tools for creators.md | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 69 deletions(-) delete mode 100644 sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md create mode 100644 translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md diff --git a/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md deleted file mode 100644 index b01f41fe17..0000000000 --- a/sources/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "3 open source audio tools for creators" -[#]: via: "https://opensource.com/article/22/11/open-source-audio-tools" -[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -3 open source audio tools for creators -====== - -Finding good quality, open source audio samples can be a challenge. I've been getting increasingly into composition and creating music in my spare time, using the open source tool [Ardour][1] and the creator-focused distribution Ubuntu Studio. I've been looking for samples of specific sounds or loops to include. - -I'm familiar with many tools to find images, but until recently, I hadn't come across a similar option for audio resources. - -### Open source sound samples - -Finding specific sounds can be challenging if you can't record them yourself. Several resources are available, but not many provide sounds under an open source license. - -#### Freesound - -Enter the incredible treasure trove that is [Freesound][2], a collaborative database of [Creative Commons][3] licensed sounds where you can browse, download, and even contribute. - -You can find pretty much anything on Freesound, from the sounds of a sleepy tour bus on the road to a door opening and closing or a ghostly shriek. While Freesound mainly focuses on sound samples, there are also some loops on the site. Many sounds are licensed under Creative Commons 0, so you can do whatever you like with them from a licensing perspective. However, that's not true for all of them, so check the license before you use anything, as you may need to credit the creator. - -The site allows you to check out the sample rate, bit depth, and channels so you can be sure that the sample will work with your composition, and it has a built-in rating system and download count. A waveform display allows you to get some insight into the character of the sound sample before you preview it. - -The search filters on Freesound are not as strong as other sites. Sounds will sometimes be grouped into packs of similar sounds, like this one for [scary noises][4]. This can help you quickly grab a bunch of similar sounds to play with. The quality of the samples is variable, so you might need to clean up the audio on some samples. If you're feeling bored, there's even an option to select a random sound from the database—and trust me, some are very random! Freesound also has a community forum where you can participate and learn from others. - -#### Nasa space sounds - -If you are looking for some otherworldly sounds or want to snoop on the conversations between Earth and space, the [Nasa Space Sounds database][5] might be a great place to look. It's fascinating to explore the recordings from the various missions and listen in on the communications back and forth, some of which are narrated. Several recordings have different sounds from different space missions, from the Sounds of Mars from Perseverance Rover to audio from the Apollo missions. - -Sounds from the Nasa site are released under the Creative Commons category Public Domain Mark 1.0, meaning that it is free of known restrictions under copyright law. - -### Loops for music creation - -If your focus is more on creating music, you might be looking for loops: short recordings of music that you can alter and tweak in your own compositions. - -There are all kinds of sample packs out there from commercial sources, but there are also a lot of royalty-free loops available on [Looperman][6]. With over 200,000 loops uploaded by musicians, DJs, producers, and creators, there's everything from electronic dance music and trap to classical. There are also over 12,000 a cappella and spoken-word loops, and it's a great resource for finding things like bass lines or drum beats. You need to have an account to download, and you must download tracks before you can upload anything. - -Looperman resources are not Creative Commons, but the site defaults to a similar concept: "All samples and loops are free to use in commercial and noncommercial projects," according to the site license, but "you can NOT claim copyright of those loops." A cappella and vocal samples are in a separate category, so checking the specific terms for any loop you consider using is important. - -Each loop tells you the beats-per-minute, key signature (where relevant), and software it was created in. A waveform shows the character of the loop, which gives you a good idea of whether it is likely to work with your project. You can preview loops within the browser and leave comments for the creator. There is a lively community and many great resources to help you create your own loops. - -### Get creative - -I hope this gives you some ideas of where to find audio resources for your next project, and I look forward to hearing what you have created! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/open-source-audio-tools - -作者:[Ruth Cheesley][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/rcheesley -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/21/12/music-linux-ardour -[2]: https://freesound.org -[3]: https://opensource.com/article/20/1/what-creative-commons -[4]: https://freesound.org/people/SamsterBirdies/packs/31184/ -[5]: https://www.nasa.gov/connect/sounds/index.html -[6]: https://www.looperman.com/ diff --git a/translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md new file mode 100644 index 0000000000..5984ab3628 --- /dev/null +++ b/translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md @@ -0,0 +1,69 @@ +[#]: subject: "3 open source audio tools for creators" +[#]: via: "https://opensource.com/article/22/11/open-source-audio-tools" +[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 个面向创作者的开源音频工具 +====== + +寻找优质的开源音频样本可能是一项挑战。我越来越多地使用开源工具 [Ardour][1] 和以创作者为中心的发行版 Ubuntu Studio,利用业余时间创作音乐。我一直在寻找要包含的特定声音或循环的样本。 + +我熟悉许多查找图像的工具,但直到最近,我才遇到类似的音频资源需求。 + +### 开源声音样本 + +如果你不能自己录制特定的声音,那么寻找特定的声音可能会很困难。有多种资源可用,但在开源许可下提供声音的资源并不多。 + +#### Freesound + +进入令人难以置信的宝库 [Freesound][2],这是一个 [Creative Commons][3] 许可声音的协作数据库,你可以在其中浏览、下载甚至贡献。 + +你几乎可以在 Freesound 上找到任何东西,从路上让人昏昏欲睡的旅游巴士的声音到开门关门的声音或幽灵般的尖叫声。虽然 Freesound 主要侧重于声音样本,但网站上也有一些循环。许多声音都是 Creative Commons 0 许可的,因此从许可的角度来看,你可以随心所欲地使用它们。但是,并非所有人都如此,因此在使用任何内容之前请检查许可证,因为你可能需要注明创作者的姓名。 + +该站点允许你检查采样率、位深度和通道,因此你可以确保该样本适用于你的作品,并且它具有内置评级系统和下载计数。波形显示可让你在预览之前深入了解声音样本的特性。 + +Freesound 的搜索过滤器不如其他网站强大。声音有时会被分成一组相似的声音,例如[可怕的噪音][4]。这可以帮助你快速获取一堆相似的声音来播放。样本的质量是可变的,因此你可能需要清理某些样本的音频。如果你觉得无聊,甚至可以选择从数据库中随机选择声音,相信我,有些声音非常随机! Freesound 还有一个社区论坛,你可以参与其中并向他人学习。 + +#### NASA 太空声音 + +如果你正在寻找一些超凡脱俗的声音或想窥探地球与太空之间的对话,[NASA 太空声音数据库][5]可能是个不错的去处。探索各种任务的录音并听取来回的通信是很有趣的,其中一些是旁白的。一些录音包含来自不同太空任务的不同声音,从毅力号漫游者的火星之声到阿波罗任务的音频。 + +来自 NASA 网站的声音在知识共享类别 Public Domain Mark 1.0 下发布,这意味着它不受版权法的已知限制。 + +### 音乐创作循环 + +如果你更专注于创作音乐,你可能正在寻找循环:你可以在自己的作品中修改和调整的简短音乐录音。 + +商业来源有各种样本包,但 [Looperman][6] 上也有很多免版税的循环。音乐家、DJ、制作人和创作者上传了超过 200,000 个循环,从电子舞曲和 trap 到古典音乐应有尽有。还有超过 12,000 首无伴奏合唱和口语循环,它是查找低音线或鼓点等内容的绝佳资源。你需要有一个帐户才能下载,并且你必须先下载曲目才能上传任何内容。 + +Looperman 资源不是 Creative Commons,但该站点默认采用类似的概念:根据站点许可,“所有样本和循环都可以在商业和非商业项目中免费使用”,但“你不能声明这些循环的版权”。无伴奏合唱和人声样本属于不同的类别,所以检查你考虑使用的任何循环的具体条款是很重要的。 + +每个循环都会告诉你每分钟的节拍数、调号(如果相关)以及创建它的软件。波形显示循环的特征,让你清楚它是否可能适用于你的项目.你可以在浏览器中预览循环并为创作者留下评论。有一个活跃的社区和许多很棒的资源可以帮助你创建自己的循环。 + +### 发挥创意 + +我希望这可以让你了解在何处可以为你的下一个项目找到音频资源,我期待听到你创建的内容! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/open-source-audio-tools + +作者:[Ruth Cheesley][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/rcheesley +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/12/music-linux-ardour +[2]: https://freesound.org +[3]: https://opensource.com/article/20/1/what-creative-commons +[4]: https://freesound.org/people/SamsterBirdies/packs/31184/ +[5]: https://www.nasa.gov/connect/sounds/index.html +[6]: https://www.looperman.com/ From b37da5434523f041722b1a0fe8b826b638722df5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 5 Dec 2022 08:42:26 +0800 Subject: [PATCH 2224/3123] translating --- ... How to Automatically Indent Your Code in Visual Studio Code.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md index fb2a25277f..b8df4cc8bc 100644 --- a/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md +++ b/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/auto-indent-vs-code/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 883b9775640da3aabfda6639cf6071d1a8a39c13 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 5 Dec 2022 12:52:30 +0800 Subject: [PATCH 2225/3123] ALL @wxy https://linux.cn/article-15318-1.html --- ...able is now available with SDL games + More.md | 90 +++++++++++++++++++ ...able is now available with SDL games + More.md | 90 ------------------- 2 files changed, 90 insertions(+), 90 deletions(-) create mode 100644 published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md delete mode 100644 sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md diff --git a/published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md b/published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md new file mode 100644 index 0000000000..b241461da1 --- /dev/null +++ b/published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md @@ -0,0 +1,90 @@ +[#]: subject: "4MLinux 41.0 stable is now available with SDL games + More" +[#]: via: "https://debugpointnews.com/4mlinux-41-0-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15318-1.html" + +4MLinux 41.0 稳定版发布 +====== + +![][1] + +> 新的 4MLinux 41.0 稳定版现已可供公众下载和安装。 + +4MLinux 是一个有十年历史的小型 Linux 发行版,主要有四个功能:维护Maintenance(如作为系统救援的现场 CD)、多媒体Multimedia(如播放视频 DVD)、微服务器 Miniserver(使用 inetd 守护程序),以及 神秘Mystery(小型 Linux 游戏)。它是独立开发的,也同时提供了 32 位镜像。是一个适合于老旧硬件的完美的 [轻量级 Linux 发行版][2]。 + +4MLinux 41.0 系列已经更新到其稳定版本。这个版本包括编辑文档的工具,如 LibreOffice 和 GNOME Office,可以用 DropBox 共享文件,用 Firefox 和 Chromium 浏览网页,用 Thunderbird 发送电子邮件,等等。它还包括 LAMP 服务器环境和 Perl、Python 和 Ruby 等编程语言。 + +以下是对这些变化的总结: + +![4MLinux 41.0 桌面][3] + +### 4MLinux 41.0:新增内容 + +首先,4MLinux 41.0 提供了 LibreOffice 7.4.3 和 GNOME Office(包括 AbiWord 3.0.5、GIMP 2.10.32 和 Gnumeric 1.12.52),用于编辑你的文档。此外,DropBox 151.4.4304 可用于分享你的文件,你可以使用 Firefox 107.0 和 Chromium 106.0.5249 来上网。 + +它包括了 Thunderbird 102.5.0,用于发送和接收电子邮件,Audacious 4.2 允许你享受你的音乐收藏。你还可以用 VLC 3.0.17.3 和 SMPlayer 22.2.0 观看视频,并在 Mesa 22.1.4 和 Wine 7.18 的帮助下进行游戏。 + +此外,4MLinux LAMP 服务器(Linux 6.0.9、Apache 2.4.54、MariaDB 10.6.11、PHP 5.6.40 和 PHP 7.4.33)也包括在内,可以用于设置你自己的 Web 服务器。4MLinux 41.0 稳定版还包括编程语言 Perl 5.36.0、Python 2.7.18、 Python 3.10.6 和 Ruby 3.1.2。 + +此外,这个版本还包括一些新的功能和应用程序。 + +开箱即用,它包括 FileZilla(FTP 客户端)、XPaint 和 GNU Paint(简单的图像编辑工具)和 nvme(管理 NVM-Express 分区的命令行工具),以及一系列小型 SDL 游戏。此外,还有几个可下载的扩展程序,包括 BlueGriffon(HTML 编辑器)、The Legend of Edgar(跳台游戏platform game)、ioquake3(Quake III 移植版)和 BZFlag(坦克大战游戏)。 + +SMPlayer 现在是 4MLinux 的默认视频播放器,Audacious 是默认音频播放器。在启动管理器 Syslinux 的帮助下,现在也可以将4MLinux 安装在 BTRFS 分区上。 + +### 更新摘要 + +- 主线 Linux 内核 6.0.9 +- jwm(乔氏窗口管理器)2.4.0 +- LibreOffice 7.4.3 +- GNOME Office (包括 AbiWord 3.0.5、GIMP 2.10.32 和 Gnumeric 1.12.52) +- DropBox 151.4.4304 +- Firefox 107.0 +- Chromium 106.0.5249 +- Thunderbird 102.5.0 +- Audacious 4.2 +- VLC 3.0.17.3 +- SMPlayer 22.2.0 +- Mesa 22.1.4 +- Wine 7.18 +- 4MLinux LAMP 服务器(包括:Linux 6.0.9、Apache 2.4.54、MariaDB 10.6.11、PHP 5.6.40 和 PHP 7.4.33) +- Perl 5.36.0 +- Python 2.7.18 +- Python 3.10.6 +- Ruby 3.1.2 + +### 下载 + +最新的版本 4MLinux 41.0,现在可以通过以下链接下载。 + +> **[下载 4MLinux 41.0][4]** + +这个版本包括了新的应用程序和功能,例如将 SMPlayer 作为默认的视频播放器,以及将 4MLinux 安装在带有 Syslinux 的 BTRFS 分区上的能力。我们鼓励你在 [虚拟机][5] 中试用 4MLinux,看看它提供的一切。 + +- [更新日志][6] +- [发布公告][7] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/4mlinux-41-0-release/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/4mlinux-head.jpg +[2]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ +[3]: https://debugpointnews.com/wp-content/uploads/2022/12/4MLinux-41.0-desktop.jpg +[4]: https://sourceforge.net/projects/linux4m/ +[5]: https://www.debugpoint.com/install-ubuntu-virtualbox/ +[6]: http://4mlinux.com/addons-41.0.txt +[7]: https://4mlinux-releases.blogspot.com/2022/12/4mlinux-410-stable-released.html diff --git a/sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md b/sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md deleted file mode 100644 index 0502fc3cfa..0000000000 --- a/sources/news/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "4MLinux 41.0 stable is now available with SDL games + More" -[#]: via: "https://debugpointnews.com/4mlinux-41-0-release/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -4MLinux 41.0 stable is now available with SDL games + More -====== - -![][1] - -**The new stable version of 4MLinux 41.0 is now generally available for download and installation.** - -4MLinux is a decade-old small Linux distribution that focuses on four main capabilities: maintenance (e.g., as a system rescue live CD), multimedia (e.g., playing video DVDs), miniserver (using the inetd daemon), and mystery (small Linux games). It is independently developed and comes with 32-bit images as well. A perfect [lightweight Linux distribution][2] for older hardware. - -The 4MLinux 41.0 series have been updated to its stable version. This version includes tools for editing documents such as LibreOffice and GNOME Office, file sharing with DropBox, web browsing with Firefox and Chromium, email with Thunderbird, and more. It also includes a LAMP server setup and programming languages like Perl, Python, and Ruby. - -Here’s a summary of the changes. - -![4MLinux 41.0 desktop][3] - -### 4MLinux 41.0: What’s New - -Firstly, 4MLinux 41.0 brings LibreOffice 7.4.3 and GNOME Office (including AbiWord 3.0.5, GIMP 2.10.32, and Gnumeric 1.12.52) to edit your documents. In addition, DropBox 151.4.4304 is available for sharing your files, and you can use Firefox 107.0 and Chromium 106.0.5249 to surf the internet. - -Thunderbird 102.5.0 is included for sending and receiving emails, and Audacious 4.2 allows you to enjoy your music collection. You can also watch videos with VLC 3.0.17.3 and SMPlayer 22.2.0, and play games with the help of Mesa 22.1.4 and Wine 7.18. - -Additionally, the 4MLinux LAMP Server (featuring Linux 6.0.9, Apache 2.4.54, MariaDB 10.6.11, PHP 5.6.40 and PHP 7.4.33) is included for setting up your own web server. The stable version of 4MLinux 41.0 also includes the programming languages Perl 5.36.0, Python 2.7.18, Python 3.10.6, and Ruby 3.1.2. - -Furthermore, this release also includes several new features and applications. - -Out of the box, it includes FileZilla (FTP client), XPaint and GNU Paint (simple image-editing tools), and nvme (command-line utility for managing NVM-Express partitions), as well as a collection of small SDL games. Additionally, there are several downloadable extensions available, including BlueGriffon (HTML editor), The Legend of Edgar (platform game), ioquake3 (Quake III port), and BZFlag (tank battle game). - -SMPlayer is now the default video player in 4MLinux, and Audacious is the default audio player. It is also now possible to install 4MLinux on a BTRFS partition with the help of Syslinux, which acts as a boot manager. - -### Summary of changes - -- Mainline Linux Kernel 6.0.9 -- jwm (Joe’s window manager) 2.4.0 -- LibreOffice 7.4.3 -- GNOME Office (including AbiWord 3.0.5, GIMP 2.10.32, and Gnumeric 1.12.52) -- DropBox 151.4.4304 -- Firefox 107.0 -- Chromium 106.0.5249 -- Thunderbird 102.5.0 -- Audacious 4.2 -- VLC 3.0.17.3 -- SMPlayer 22.2.0 -- Mesa 22.1.4 -- Wine 7.18 -- 4MLinux LAMP Server (featuring Linux 6.0.9, Apache 2.4.54, MariaDB 10.6.11, PHP 5.6.40 and PHP 7.4.33) -- Perl 5.36.0 -- Python 2.7.18 -- Python 3.10.6 -- Ruby 3.1.2 - -### Download - -The latest version, 4MLinux 41.0, is now available for download at the following link: - -[Download 4MLinux 41.0][4] - -This release includes new applications and features, such as SMPlayer as the default video player and the ability to install 4MLinux on a BTRFS partition with Syslinux. We encourage you to try out 4MLinux in a [virtual machine][5] and see all it offers. - -- [Changelog][6] -- [Release announcement][7] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/4mlinux-41-0-release/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/4mlinux-head.jpg -[2]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ -[3]: https://debugpointnews.com/wp-content/uploads/2022/12/4MLinux-41.0-desktop.jpg -[4]: https://sourceforge.net/projects/linux4m/ -[5]: https://www.debugpoint.com/install-ubuntu-virtualbox/ -[6]: http://4mlinux.com/addons-41.0.txt -[7]: https://4mlinux-releases.blogspot.com/2022/12/4mlinux-410-stable-released.html From 10ad20cf9656a4f6d377e273d11f1fd1e3f103c7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 5 Dec 2022 14:44:46 +0800 Subject: [PATCH 2226/3123] RP @geekpi https://linux.cn/article-15319-1.html --- ...⭐️ 3 open source audio tools for creators.md | 74 +++++++++++++++++++ ...⭐️ 3 open source audio tools for creators.md | 69 ----------------- 2 files changed, 74 insertions(+), 69 deletions(-) create mode 100644 published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md delete mode 100644 translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md diff --git a/published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md new file mode 100644 index 0000000000..9bab60b6be --- /dev/null +++ b/published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md @@ -0,0 +1,74 @@ +[#]: subject: "3 open source audio tools for creators" +[#]: via: "https://opensource.com/article/22/11/open-source-audio-tools" +[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15319-1.html" + +3 个面向创作者的开源音频资源 +====== + +![][0] + +> 这些有用的开源资源, 提供了采样声音和音乐旋律。 + +寻找优质的开源音频样本可能是一项挑战。我越来越多地使用开源工具 [Ardour][1] 和以创作者为中心的发行版 Ubuntu Studio,利用业余时间创作音乐。我一直在寻找要包含的特定声音或旋律循环的样本。 + +我熟悉许多查找图像的工具,但直到最近,我才遇到类似的音频资源需求。 + +### 开源声音样本 + +如果你不能自己录制特定的声音,那么寻找特定的声音可能会很困难。有多种资源可用,但在开源许可下提供声音的资源并不多。 + +#### Freesound + +来看看令人难以置信的宝库 [Freesound][2],这是一个 [知识共享][3] 许可的声音协作数据库,你可以在其中浏览、下载甚至贡献。 + +你几乎可以在 Freesound 上找到任何东西,从路上让人昏昏欲睡的旅游巴士的声音到开门关门的声音或幽灵般的尖叫声。虽然 Freesound 主要侧重于声音样本,但网站上也有一些旋律循环。许多声音都是 CC0 许可的,因此从许可证的角度来看,你可以随心所欲地使用它们。但是,并非所有人都如此,因此在使用任何内容之前请检查许可证,因为你可能需要注明创作者的姓名。 + +该站点允许你检查采样率、位深度和通道,因此你可以确保该样本适用于你的作品,并且它具有内置评级系统和下载计数。波形显示可让你在预览之前深入了解声音样本的特性。 + +Freesound 的搜索过滤器不如其他网站强大。声音有时会被分成一组相似的声音,例如 [可怕的噪音][4]。这可以帮助你快速获取一堆相似的声音来播放。样本的质量是可变的,因此你可能需要清理某些样本的音频。如果你觉得无聊,甚至可以选择从数据库中随机选择声音,相信我,有些声音非常随机! Freesound 还有一个社区论坛,你可以参与其中并向他人学习。 + +#### NASA 太空声音 + +如果你正在寻找一些超凡脱俗的声音或想窥探地球与太空之间的对话,[NASA 太空声音数据库][5]可能是个不错的去处。探索各种任务的录音并听取来回的通信是很有趣的,其中一些是有旁白的。一些录音包含来自不同太空任务的不同声音,从毅力号漫游者的火星之声到阿波罗任务的音频。 + +来自 NASA 网站的声音在知识共享类别公共领域标记 1.0 下发布的,这意味着它不受版权法的已知限制。 + +### 音乐创作的旋律循环 + +如果你更关注于创作音乐,你可能正在寻找旋律循环 —— 这是你可以在自己的作品中修改和调整的简短音乐录音。 + +有各种商业来源的样本包,但 [Looperman][6] 上也有很多免版税的旋律循环。音乐家、DJ、制作人和创作者上传了超过 200,000 个旋律循环,从电子舞曲、trap 到古典音乐应有尽有。还有超过 12,000 首无伴奏合唱和口语旋律循环,它是查找低音线或鼓点等内容的绝佳资源。你需要有一个帐户才能下载,并且你必须先下载曲目才能上传任何内容。 + +Looperman 资源不是知识共享的,但该站点默认采用类似的概念:根据站点许可,“所有样本和旋律循环都可以在商业和非商业项目中免费使用”,但“你不能声明这些旋律循环的版权”。无伴奏合唱和人声样本属于不同的类别,所以检查你考虑使用的任何旋律循环的具体条款是很重要的。 + +每个旋律循环都会告诉你每分钟的节拍数、调号(如果相关)以及创建它的软件。波形显示旋律循环的特征,让你清楚它是否可能适用于你的项目.你可以在浏览器中预览旋律循环并为创作者留下评论。有一个活跃的社区和许多很棒的资源可以帮助你创建自己的旋律循环。 + +### 发挥创意 + +我希望这可以让你了解在何处可以为你的下一个项目找到音频资源,我期待听到你创建的内容! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/open-source-audio-tools + +作者:[Ruth Cheesley][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/rcheesley +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/12/music-linux-ardour +[2]: https://freesound.org +[3]: https://opensource.com/article/20/1/what-creative-commons +[4]: https://freesound.org/people/SamsterBirdies/packs/31184/ +[5]: https://www.nasa.gov/connect/sounds/index.html +[6]: https://www.looperman.com/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/05/144352hbfp7pg77o5fgi6x.jpg \ No newline at end of file diff --git a/translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md deleted file mode 100644 index 5984ab3628..0000000000 --- a/translated/tech/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "3 open source audio tools for creators" -[#]: via: "https://opensource.com/article/22/11/open-source-audio-tools" -[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -3 个面向创作者的开源音频工具 -====== - -寻找优质的开源音频样本可能是一项挑战。我越来越多地使用开源工具 [Ardour][1] 和以创作者为中心的发行版 Ubuntu Studio,利用业余时间创作音乐。我一直在寻找要包含的特定声音或循环的样本。 - -我熟悉许多查找图像的工具,但直到最近,我才遇到类似的音频资源需求。 - -### 开源声音样本 - -如果你不能自己录制特定的声音,那么寻找特定的声音可能会很困难。有多种资源可用,但在开源许可下提供声音的资源并不多。 - -#### Freesound - -进入令人难以置信的宝库 [Freesound][2],这是一个 [Creative Commons][3] 许可声音的协作数据库,你可以在其中浏览、下载甚至贡献。 - -你几乎可以在 Freesound 上找到任何东西,从路上让人昏昏欲睡的旅游巴士的声音到开门关门的声音或幽灵般的尖叫声。虽然 Freesound 主要侧重于声音样本,但网站上也有一些循环。许多声音都是 Creative Commons 0 许可的,因此从许可的角度来看,你可以随心所欲地使用它们。但是,并非所有人都如此,因此在使用任何内容之前请检查许可证,因为你可能需要注明创作者的姓名。 - -该站点允许你检查采样率、位深度和通道,因此你可以确保该样本适用于你的作品,并且它具有内置评级系统和下载计数。波形显示可让你在预览之前深入了解声音样本的特性。 - -Freesound 的搜索过滤器不如其他网站强大。声音有时会被分成一组相似的声音,例如[可怕的噪音][4]。这可以帮助你快速获取一堆相似的声音来播放。样本的质量是可变的,因此你可能需要清理某些样本的音频。如果你觉得无聊,甚至可以选择从数据库中随机选择声音,相信我,有些声音非常随机! Freesound 还有一个社区论坛,你可以参与其中并向他人学习。 - -#### NASA 太空声音 - -如果你正在寻找一些超凡脱俗的声音或想窥探地球与太空之间的对话,[NASA 太空声音数据库][5]可能是个不错的去处。探索各种任务的录音并听取来回的通信是很有趣的,其中一些是旁白的。一些录音包含来自不同太空任务的不同声音,从毅力号漫游者的火星之声到阿波罗任务的音频。 - -来自 NASA 网站的声音在知识共享类别 Public Domain Mark 1.0 下发布,这意味着它不受版权法的已知限制。 - -### 音乐创作循环 - -如果你更专注于创作音乐,你可能正在寻找循环:你可以在自己的作品中修改和调整的简短音乐录音。 - -商业来源有各种样本包,但 [Looperman][6] 上也有很多免版税的循环。音乐家、DJ、制作人和创作者上传了超过 200,000 个循环,从电子舞曲和 trap 到古典音乐应有尽有。还有超过 12,000 首无伴奏合唱和口语循环,它是查找低音线或鼓点等内容的绝佳资源。你需要有一个帐户才能下载,并且你必须先下载曲目才能上传任何内容。 - -Looperman 资源不是 Creative Commons,但该站点默认采用类似的概念:根据站点许可,“所有样本和循环都可以在商业和非商业项目中免费使用”,但“你不能声明这些循环的版权”。无伴奏合唱和人声样本属于不同的类别,所以检查你考虑使用的任何循环的具体条款是很重要的。 - -每个循环都会告诉你每分钟的节拍数、调号(如果相关)以及创建它的软件。波形显示循环的特征,让你清楚它是否可能适用于你的项目.你可以在浏览器中预览循环并为创作者留下评论。有一个活跃的社区和许多很棒的资源可以帮助你创建自己的循环。 - -### 发挥创意 - -我希望这可以让你了解在何处可以为你的下一个项目找到音频资源,我期待听到你创建的内容! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/open-source-audio-tools - -作者:[Ruth Cheesley][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/rcheesley -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/21/12/music-linux-ardour -[2]: https://freesound.org -[3]: https://opensource.com/article/20/1/what-creative-commons -[4]: https://freesound.org/people/SamsterBirdies/packs/31184/ -[5]: https://www.nasa.gov/connect/sounds/index.html -[6]: https://www.looperman.com/ From ee5dc1c18b44ef239d7aa1ce23097a85731bde14 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Mon, 5 Dec 2022 17:04:43 +0800 Subject: [PATCH 2227/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20221004 Learn the OSI model in 5 minutes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221004 Learn the OSI model in 5 minutes.md b/sources/tech/20221004 Learn the OSI model in 5 minutes.md index 717e6d1946..eb53583bb2 100644 --- a/sources/tech/20221004 Learn the OSI model in 5 minutes.md +++ b/sources/tech/20221004 Learn the OSI model in 5 minutes.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/osi-model-network-communications" [#]: author: "Anamika https://opensource.com/users/anamika" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "cool-summer-021" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -83,7 +83,7 @@ via: https://opensource.com/article/22/10/osi-model-network-communications 作者:[Anamika][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[cool-summer-021](https://github.com/cool-summer-021) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e26473c46ce3b111c9bacb2ae1a3a2a028d09ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 20:05:15 +0800 Subject: [PATCH 2228/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221205.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Linux=20Mint=2021.1=20beta=20is=20now=20available=20for=20testi?= =?UTF-8?q?ng.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nux Mint 21.1 beta is now available for testing.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md diff --git a/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md b/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md new file mode 100644 index 0000000000..871161bbc8 --- /dev/null +++ b/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md @@ -0,0 +1,90 @@ +[#]: subject: "Linux Mint 21.1 beta is now available for testing" +[#]: via: "https://debugpointnews.com/linux-mint-21-1-beta/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint 21.1 beta is now available for testing +====== + +![][1] + +**Check out the new features of Linux Mint 21.1 beta, which is now slowly available for download in mirrors. The official announcement is awaited.** + +![Linux Mint 21.1 beta Cinnamon desktop][2] + +Linux Mint 21.1 is the first point release of the 21 series and will be released before Christmas this year. Codenamed “Vera”, which was [announced a few weeks back][3], is now available for beta testing. + +The beta testing is expected to continue for at least a week before the final release. Since it is the first point, the feature list is not at that higher end. But some significant updates are arriving in the final release. + +### Linux Mint 21.1 beta & new features + +One of the biggest updates to the Driver Manager in this release is the ability to run the app with your user account without requiring a password to launch it. This is a major convenience, as it means you don’t have to enter a password every time you want to use the Driver Manager. In addition, when you remove a driver, the app now purges it from the system completely, ensuring that no trace of the driver remains on your computer. + +Another key update to the Driver Manager is the ability to detect USB installation media and help you mount them. This is particularly useful if you’re installing software or drivers from a USB drive, as it makes the process much easier and more streamlined. + +In addition to these updates, the Mint team has also included a feature for verifying the checksum of ISO files. This is an important part of any installation process, as it ensures that your ISO file is legitimate and hasn’t been tampered with. While other [utilities][4] are available for verifying ISO checksums, including command line tools, it’s nice to see this feature included in the default desktop environment. + +Another change in this release is the default desktop view, which is expected to be updated. The default icons for the Computer, Home, Trash, and Network are now hidden from view, as the Computer icon is already included in the Panel, and the other icons are not used as frequently. + +Other noteworthy updates in this release include the inclusion of Timeshift backports for prior releases (such as Mint 20.x) and an updated version of Blueman. Overall, this is a solid point release that includes several useful updates and bug fixes. + +![New default icon set and bibata cursor][5] + +Finally, you may notice the “green” icon sets and the cursor is different in the Cinnamon flavour. Linux Mint 21.1 brings the “Mint-y-Aqua” theme and the stunning “Bibata-modern” cursor theme to pair with it. Both of them look awesome together, giving a much-needed fresh vibe. + +### Summary of changes + +- First point release of Linux Mint 21, based on Ubuntu 22.04.1 release +- Linux Kernel 5.15 LTS +- Cinnamon 5.6.4 desktop +- Xfce 4.16 desktop +- MATE 1.26 desktop +- Friendly driver manager +- Cleaner default desktop view with fewer icons +- Default theme changes to “Mint-Y-Aqua” from the green-based icons +- New cursor theme: Bibata (one of the best cursor theme in Linux) +- A bunch of stunning wallpapers +- And an array of bug fixes + +### Download and bug reporting for beta + +While the team is preparing for the official announcement, the ISO images are slowly becoming available to the public. As always, being a beta release, it may have bugs. So use it with caution. + +If you are running Linux Mint 21.0, don’t upgrade it yet. Wait for the final release. + +Still, if you want to try it on a virtual machine, download the Cinnamon, Xfce and MATE flavours of this beta release from the torrent links below. + +- [linuxmint-21.1-cinnamon-64bit-beta.iso.torrent][6] +- [linuxmint-21.1-mate-64bit-beta.iso.torrent][7] +- [linuxmint-21.1-xfce-64bit-beta.iso.torrent][8] + +I will update the changelog here once it is available. And finally, report any issues or bugs at the dedicated [21.1 beta bug tracking page][9]. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/linux-mint-21-1-beta/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/21-1-beta-head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Linux-Mint-21.1-beta-Cinnamon-desktop.jpg +[3]: https://debugpointnews.com/linux-mint-21-1-announcement/ +[4]: https://www.debugpoint.com/collision/ +[5]: https://debugpointnews.com/wp-content/uploads/2022/12/New-default-icon-set-and-bibata-cursor.jpg +[6]: https://linuxmint.com/torrents/linuxmint-21.1-cinnamon-64bit-beta.iso.torrent +[7]: https://linuxmint.com/torrents/linuxmint-21.1-mate-64bit-beta.iso.torrent +[8]: https://linuxmint.com/torrents/linuxmint-21.1-xfce-64bit-beta.iso.torrent +[9]: https://github.com/linuxmint/mint21.1-beta/issues From fffaf9ef0383f1be1eb4d8d5843a2ce687d31242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 20:05:57 +0800 Subject: [PATCH 2229/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221205.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Linen=20is=20a=20Google-Searchable=20Open-Source=20Alternative?= =?UTF-8?q?=20to=20Slack=20and=20Discord.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...le Open-Source Alternative to Slack and Discord.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md diff --git a/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md b/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md new file mode 100644 index 0000000000..e0478f7f27 --- /dev/null +++ b/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md @@ -0,0 +1,99 @@ +[#]: subject: "Linen is a Google-Searchable Open-Source Alternative to Slack and Discord" +[#]: via: "https://news.itsfoss.com/linen/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linen is a Google-Searchable Open-Source Alternative to Slack and Discord +====== + +An interesting open-source alternative to Slack and Discord. + +![Linen is a Google-Searchable Open-Source Alternative to Slack and Discord][1] + +Linen is an interesting open-source project brewing up. + +It aims to be an **open alternative to Slack and Discord**, focusing on making communities more accessible and helping reduce the support burden. + +It could be worth adding it as an open-source Slack alternative, but it is in its **early stages of development** when publishing this. + +**_What's different with Linen, exactly?_** + +- **Open Source** +- **Unlimited history retention** +- **Communities are Google searchable** +- **Supports sync from Slack and Discord** +- **Eliminate the need to join Slack/Discord for information** + +### Community-Focused Slack Alternative + +[Linen][2] pitches itself as an open-source app for communities rather than primarily targeting teams for collaboration/communication. + +![linen ui][3] + +In contrast, Slack is primarily for team discussions and collaboration. You cannot share the conversation through a URL or find the discussions indexed on search engines like Google. + +But with Linen, you can **find a URL for every conversation** that can be shared with anyone to view/join the conversation. + +![linen message url][4] + +Here's something for the test: [https://linen.dev/s/itsfoss/t/5099789/topic][5] + +**You can also find this conversation listed on Google** (it may take time to find it exactly). + +For example, suppose we are a community of an open-source project where we discuss an issue or a solution; listing it on Google enables more users to find out about it. + +Here's an example of a conversation listed on Google that could help me if I was exploring solutions to fix my code issues with Kotlin: + +![linen google search][6] + +As a developer/user, I could view the conversation, get my answer, and move on without troubling anyone else in the community with a repeat question. + +**Sounds lovely, right? Linen helps you enhance community support.** + +Sure, you can use it for your team communication as well. But, it is a more appropriate solution to create an open community chat network. + +Currently, it does not provide the feature to create a private community for the public. They only use it for internal team discussions, per their [GitHub page][7]. + +![][8] + +### How To Get Started? + +Linen does not support self-hosting at the moment. But, their roadmap on [GitHub][9] indicates that it has been planned for the near future. + +So, you can [sign up for a free account][10] using the official cloud instance or opt for the business/premium edition to use custom domain/branding benefits for your team. + +You can **import your Slack/Discord conversations for free**. + +> 💡 The free community edition is hosted under Linen.dev where you rely on community support. Opt for its premium edition to get priority support. + +Linen may not be for everyone, but it sounds like a useful idea for many communities and teams. + +_💬 What do you think about it? Let me know in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linen/ + +作者:[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/content/images/size/w2000/2022/11/linen-slack-discord-alternative.png +[2]: https://www.linen.dev +[3]: https://news.itsfoss.com/content/images/2022/11/linen-example.png +[4]: https://news.itsfoss.com/content/images/2022/11/linen-conversation-url.png +[5]: https://linen.dev/s/itsfoss/t/5099789/topic +[6]: https://news.itsfoss.com/content/images/2022/11/linen-google-seo.png +[7]: https://github.com/linen-dev/linen.dev +[8]: https://news.itsfoss.com/content/images/2022/11/linen-settings.png +[9]: https://github.com/Linen-dev/linen.dev +[10]: https://www.linen.dev/signup From 045891ec226359454df265fa5d07fdea52c3981d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 5 Dec 2022 20:06:58 +0800 Subject: [PATCH 2230/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221205.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Why=20you=20should=20try=20the=20Nemo=20file=20manager=20on=20L?= =?UTF-8?q?inux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y you should try the Nemo file manager on Linux.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md diff --git a/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md new file mode 100644 index 0000000000..b17a2b4718 --- /dev/null +++ b/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md @@ -0,0 +1,82 @@ +[#]: subject: "Why you should try the Nemo file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-nemo" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why you should try the Nemo file manager on Linux +====== + +Computers are fancy filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, I'm taking a look at a file manager for your Linux system. + +The [Cinnamon][1] project was formed as a reimplementation of GNOME 2 using the components of GNOME 3. Eventually, it diverged enough to be a true fork, and today the Cinnamon desktop uses GTK3 libraries and forked versions of key GNOME 3 applications to create a "classic" GNOME experience. One of the components contributing to the traditional GNOME experience is Nemo, a file manager based on the GNOME 2 version of Nautilus. + +### Install Nemo on Linux + +The source code for Nemo is [available online][2] but it requires `cinnamon-desktop` to build, so the easiest way to install Nemo is to just install Cinnamon. + +On Fedora, Mageia, and similar: + +``` +$ sudo dnf install cinnamon-desktop +``` + +On Linux Mint, Debian, and similar: + +``` +$ sudo dnf install cinnamon-desktop-environment +``` + +Of course, as the desktop's progenitor, Linux Mint is also available with Cinnamon preinstalled. + +### A familiar interface + +If you're used to GNOME, either of the past or of today, then Nemo feels like home from the start. It's got a familiar look and feel, with buttons in similar places and options that you're likely to recognize. + +![Image of Nemo's file manager.][3] + +The GNOME-ish convention of placing view control buttons in the top right is retained, and you can use the buttons to quickly switch your view of your files from large icons to a detailed list or a compact view. There's also a search function there, and the option to toggle the location bar between editable text and a button. + +Editable URI bars are sometimes undervalued. It's a simple design decision, but it can be a huge feature contributing to efficiency. It's like having a one-line terminal at the top of each window, in which you can type a destination anywhere on your system and instantly be taken there. And you don't even have to type `cd`. + +At the top right corner, there are navigation buttons: up, forward, and back. As with many Linux file managers, you can forego the use of these buttons with the **Alt** key plus the appropriate **Arrow** key. + +The side pane, shows a list of important folders (Home, Documents, Downloads, and so on), can be hidden or displayed with the click of a button at the bottom of the window. + +### Familiarity but not the same + +The comfort and familiarity of Nemo doesn't mean that it just mindlessly mimics Nautilus. Nemo has a collection of nice features that feel unique. Most of these are in **Preferences**, and here are just a few of my favorites: + +- **Full path in window title**: This is my favorite feature. Never question where you are in your filesystem again. Let your window title tell you. +- **Single or double click**: If you're a longtime [KDE][4] user, you might find single-clicking to open a file refreshing. With Nemo, you have that choice. +- **Double-click to rename**: If you're using a single click to open, why not repurpose the double-click to rename? +- **Open each folder in a new window**: There are operating systems out there that open a new window for each folder opened. +- **Plugins**: Nemo has the ability to invoke actions, scripts, and extensions. Some are included, including an action to change the desktop background, create launchers, and mount an archive. Others are yet to be created, but this kind of extensibility is vital to open source. + +### Everything close at hand + +After using Nemo for a few weeks on Linux Mint, one interesting trait stood out to me. It seemed that Nemo had, or could have with quick configuration, everything I used most often close at hand. Many of the features, admittedly, I didn't know I needed or wanted until Nemo made it easy to click. You might argue that I was bending my usage to meet Nemo's design, and maybe that is the case. But when the experience is so pleasant and efficient, does it matter? + +Nemo is a great file manager. It hearkens back to the days of GNOME 2, but with updates and design choices that make it feel fresh. If you like [Thunar][5] or Nautilus, you'll love Nemo. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-nemo + +作者:[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/article/19/12/cinnamon-linux-desktop +[2]: https://github.com/linuxmint/nemo/releases +[3]: https://opensource.com/sites/default/files/2022-09/nemo.png +[4]: https://opensource.com/article/22/2/why-i-love-linux-kde +[5]: https://opensource.com/article/22/12/linux-file-manager-thunar From c905cdac41096ef398922ad1df2db61521664c74 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 6 Dec 2022 08:54:51 +0800 Subject: [PATCH 2231/3123] translated --- ...0221129.3 ⭐️⭐️ Parse arguments with Lua.md | 122 ------------------ ...0221129.3 ⭐️⭐️ Parse arguments with Lua.md | 122 ++++++++++++++++++ 2 files changed, 122 insertions(+), 122 deletions(-) delete mode 100644 sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md create mode 100644 translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md diff --git a/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md deleted file mode 100644 index c5581962f0..0000000000 --- a/sources/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md +++ /dev/null @@ -1,122 +0,0 @@ -[#]: subject: "Parse arguments with Lua" -[#]: via: "https://opensource.com/article/22/11/lua-command-arguments" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Parse arguments with Lua -====== - -Most computer commands consist of two parts: The command and arguments. The command is the program meant to be executed, while the arguments might be command options or user input. Without this structure, a user would have to edit the command's code just to change the data that the command processes. Imagine rewriting the [printf][1] command just to get your computer to greet you with a "hello world" message. Arguments are vital to interactive computing, and the [Lua programming language][2] provides the `{…​}` expression to encapsulate varargs given at the time of launching a Lua script. - -### Use arguments in Lua - -Almost every command given to a computer assumes an argument, even if it expects the argument to be an empty list. Lua records what's written after it launches, even though you may do nothing with those arguments. To use arguments provided by the user when Lua starts, iterate over the `{…​}` table: - -``` -local args = {...} - -for i,v in ipairs(args) do -    print(v) -end -``` - -Run the code: - -``` -$ lua ./myargs.lua -$ lua ./myargs.lua foo --bar baz -foo ---bar -baz ----- -``` - -Having no arguments is safe, and Lua prints all arguments exactly as entered. - -### Parse arguments - -For simple commands, the basic Lua faculties are sufficient to parse and process arguments. Here's a simple example: - -``` --- setup - -local args = {...} - --- engine - -function echo(p) - print(p) -end - --- go - -for i,v in ipairs(args) do - print(i .. ": " .. v) -end - -for i,v in ipairs(args) do - if args[i] == "--say" then - echo("echo: " .. args[i+1]) - end -end -``` - -In the `setup` section, dump all command arguments into a variable called `args`. - -In the `engine` section, create a function called `echo` that prints whatever you "feed" into it. - -Finally, in the `go` section, parse the index and values in the `args` variable (the arguments provided by the user at launch). In this sample code, the first `for` loop just prints each index and value for clarity. - -The second `for` loop uses the index to examine the first argument, which is assumed to be an option. The only valid option in this sample code is `--say`. If the loop finds the string `--say`, it calls the `echo` function, and the index of the current argument _plus 1_ (the _next_ argument) is provided as the function parameter. - -The delimiter for command arguments is one or more empty spaces. Run the code to see the result: - -``` -$ lua ./echo.lua --say zombie apocalypse -1: --say -2: zombie -3: apocalypse -echo: zombie -``` - -Most users learn that spaces are significant when giving commands to a computer, so dropping the third argument, in this case, is expected behavior. Here's a variation to demonstrate two valid "escape" methods: - -``` -$ lua ./echo.lua --say "zombie apocalypse" -1: --say -2: zombie apocalypse -echo: zombie apocalypse - -$ lua ./echo.lua --say zombie\ apocalypse -1: --say -2: zombie apocalypse -echo: zombie apocalypse -``` - -### Parse arguments - -Parsing arguments manually is simple and dependency-free. However, there are details you must consider. Most modern commands allow for short options (for instance, `-f`) and long options (`--foo`), and most offer a help menu with `-h` or `--help` or when a required argument isn't supplied. - -Using [LuaRocks][3] makes it easy to install additional libraries. There are some very good ones, such as [alt-getopt][4], that provide additional infrastructure for parsing arguments. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/lua-command-arguments - -作者:[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/article/20/8/printf -[2]: https://opensource.com/article/22/11/lua-worth-learning -[3]: https://opensource.com/article/19/11/getting-started-luarocks -[4]: https://opensource.com/article/21/8/parsing-commands-lua diff --git a/translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md new file mode 100644 index 0000000000..59a9f659ca --- /dev/null +++ b/translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md @@ -0,0 +1,122 @@ +[#]: subject: "Parse arguments with Lua" +[#]: via: "https://opensource.com/article/22/11/lua-command-arguments" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 Lua 解析参数 +====== + +大多数计算机命令由两部分组成:命令和参数。命令是要执行的程序,而参数可能是命令选项或用户输入。如果没有这种结构,用户将不得不编辑命令的代码,以改变命令所处理的数据。想象一下重写 [printf][1] 命令只是为了让你的计算机用 “hello world” 消息问候您。参数对于交互式计算至关重要,[Lua 编程语言][2] 提供了 `{...}` 表达式来封装在启动 Lua 脚本时给定的可变参数。 + +### 在 Lua 中使用参数 + +几乎每一个给计算机的命令都假定一个参数,即使它期望参数是一个空列表。 Lua 会记录启动后写入的内容,即使你可能对这些参数不做任何操作。要在 Lua 启动时使用用户提供的参数,请迭代 `{...}` 表: + +``` +local args = {...} + +for i,v in ipairs(args) do + print(v) +end +``` + +运行代码: + +``` +$ lua ./myargs.lua +$ lua ./myargs.lua foo --bar baz +foo +--bar +baz +---- +``` + +没有参数是安全的,Lua 会完全按照输入的方式打印所有参数。 + +### 解析参数 + +对于简单的命令,Lua 的基本功能足以解析和处理参数。这是一个简单的例子: + +``` +-- setup + +local args = {...} + +-- engine + +function echo(p) + print(p) +end + +-- go + +for i,v in ipairs(args) do + print(i .. ": " .. v) +end + +for i,v in ipairs(args) do + if args[i] == "--say" then + echo("echo: " .. args[i+1]) + end +end +``` + +在 `setup` 部分,将所有命令参数转储到名为 `args` 的变量中。 + +在 `engine` 部分,创建一个名为 `echo` 的函数,用于打印你“输入”其中的任何内容。 + +最后,在 `go` 部分,解析 `args` 变量(用户在启动时提供的参数)中的索引和值。在此示例代码中,为清楚起见,第一个 `for` 循环仅打印每个索引和值。 + +第二个 `for` 循环使用索引来检查第一个参数,它被假定是一个选项。此示例代码中唯一有效的选项是 `--say`。如果循环找到字符串 `--say`,它会调用 `echo` 函数,并将当前参数的索引_加 1_(_next_ 参数)作为函数参数提供。 + +命令参数的分隔符是一个或多个空格。运行代码查看结果: + +``` +$ lua ./echo.lua --say zombie apocalypse +1: --say +2: zombie +3: apocalypse +echo: zombie +``` + +大多数用户都知道在向计算机发出命令时空格很重要,因此在这种情况下删除第三个参数是预期的行为。下面是演示两种有效“转义”方法的变体: + +``` +$ lua ./echo.lua --say "zombie apocalypse" +1: --say +2: zombie apocalypse +echo: zombie apocalypse + +$ lua ./echo.lua --say zombie\ apocalypse +1: --say +2: zombie apocalypse +echo: zombie apocalypse +``` + +### 解析参数 + +手动解析参数简单且无依赖性。但是,你必须考虑一些细节。大多数现代命令都允许使用短选项(例如,`-f`)和长选项(`--foo`),并且大多数命令都提供 `-h` 或 `--help` 或者在没有所需参数时显示帮助菜单。 + +使用 [LuaRocks][3] 可以轻松安装其他库。有一些非常好的工具,例如 [alt-getopt][4],它们为解析参数提供了额外的基础设施。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/lua-command-arguments + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/8/printf +[2]: https://opensource.com/article/22/11/lua-worth-learning +[3]: https://opensource.com/article/19/11/getting-started-luarocks +[4]: https://opensource.com/article/21/8/parsing-commands-lua From 8bbc4aa8e90b89f8d30b9e8ecdbcde0e3277232a Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 6 Dec 2022 09:10:26 +0800 Subject: [PATCH 2232/3123] translating --- ... Monica An Open-Source App for Personal Relationship Management.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md index 2f5f0ad2f4..ab87277b7e 100644 --- a/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md +++ b/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/monica/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3232d0cbc6f7ce5e9914324e99365e7184aaf36c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 6 Dec 2022 11:16:43 +0800 Subject: [PATCH 2233/3123] RP @geekpi https://linux.cn/article-15321-1.html --- ...0221129.3 ⭐️⭐️ Parse arguments with Lua.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) rename {translated/tech => published}/20221129.3 ⭐️⭐️ Parse arguments with Lua.md (85%) diff --git a/translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md similarity index 85% rename from translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md rename to published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md index 59a9f659ca..3457ab1f9c 100644 --- a/translated/tech/20221129.3 ⭐️⭐️ Parse arguments with Lua.md +++ b/published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md @@ -3,14 +3,18 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15321-1.html" 用 Lua 解析参数 ====== -大多数计算机命令由两部分组成:命令和参数。命令是要执行的程序,而参数可能是命令选项或用户输入。如果没有这种结构,用户将不得不编辑命令的代码,以改变命令所处理的数据。想象一下重写 [printf][1] 命令只是为了让你的计算机用 “hello world” 消息问候您。参数对于交互式计算至关重要,[Lua 编程语言][2] 提供了 `{...}` 表达式来封装在启动 Lua 脚本时给定的可变参数。 +![][0] + +> 参数对于交互式计算至关重要,Lua 编程语言提供了 `{...}` 表达式来封装在启动 Lua 脚本时给定的可变参数。 + +大多数计算机命令由两部分组成:命令和参数。命令是要执行的程序,而参数可能是命令选项或用户输入。如果没有这种结构,用户将不得不编辑命令的代码,以改变命令所处理的数据。想象一下重写 [printf][1] 命令只是为了让你的计算机用 “hello world” 消息问候你。参数对于交互式计算至关重要,[Lua 编程语言][2] 提供了 `{...}` 表达式来封装在启动 Lua 脚本时给定的可变参数。 ### 在 Lua 中使用参数 @@ -35,7 +39,7 @@ baz ---- ``` -没有参数是安全的,Lua 会完全按照输入的方式打印所有参数。 +参数是不安全的,Lua 会完全按照输入的方式打印所有参数。 ### 解析参数 @@ -71,7 +75,7 @@ end 最后,在 `go` 部分,解析 `args` 变量(用户在启动时提供的参数)中的索引和值。在此示例代码中,为清楚起见,第一个 `for` 循环仅打印每个索引和值。 -第二个 `for` 循环使用索引来检查第一个参数,它被假定是一个选项。此示例代码中唯一有效的选项是 `--say`。如果循环找到字符串 `--say`,它会调用 `echo` 函数,并将当前参数的索引_加 1_(_next_ 参数)作为函数参数提供。 +第二个 `for` 循环使用索引来检查第一个参数,它被假定是一个选项。此示例代码中唯一有效的选项是 `--say`。如果循环找到字符串 `--say`,它会调用 `echo` 函数,并将当前参数的索引 _加 1_(_下一个_ 参数)作为函数参数提供。 命令参数的分隔符是一个或多个空格。运行代码查看结果: @@ -110,7 +114,7 @@ via: https://opensource.com/article/22/11/lua-command-arguments 作者:[Seth Kenlon][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/) 荣誉推出 @@ -120,3 +124,4 @@ via: https://opensource.com/article/22/11/lua-command-arguments [2]: https://opensource.com/article/22/11/lua-worth-learning [3]: https://opensource.com/article/19/11/getting-started-luarocks [4]: https://opensource.com/article/21/8/parsing-commands-lua +[0]: https://img.linux.net.cn/data/attachment/album/202212/06/111552sofsllzdfffgfakh.jpg \ No newline at end of file From f621caec2518f87bc642b6112a1ea61cbcceaca9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 6 Dec 2022 12:27:18 +0800 Subject: [PATCH 2234/3123] ALL @wxy https://linux.cn/article-15322-1.html --- ...p Environment R14.0.13 is now out with updates!.md | 117 ++++++++++++++++++ ...p Environment R14.0.13 is now out with updates!.md | 114 ----------------- 2 files changed, 117 insertions(+), 114 deletions(-) create mode 100644 published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md delete mode 100644 sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md diff --git a/published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md b/published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md new file mode 100644 index 0000000000..c625b97865 --- /dev/null +++ b/published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md @@ -0,0 +1,117 @@ +[#]: subject: "Trinity Desktop Environment R14.0.13 is now out with updates!" +[#]: via: "https://debugpointnews.com/trinity-desktop-environment-r14-0-13/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15322-1.html" + +Trinity 桌面环境 R14.0.13 版发布更新 +====== + +![][1] + +> 怀念美好的旧式 KDE?Trinity 桌面环境新发布的小版本(TDE R14.0.13)带来了一些新功能和错误修复。以下是发布摘要。 + +![Trinity 桌面环境 R14.0.13][2] + +如果你是那些怀念美好的旧式 KDE(3.5)外观的人,那么你可以通过 Trinity 桌面环境(TDE)获得它。TDE 是一个由志愿者组成的小团队开发的一个复刻版的 KDE 3.5 桌面环境。它是 KDE 3 桌面理念的延续,为那些欣赏其功能和设计的人提供了更新和错误修复。 + +尽管是一个小而独立的项目,TDE 仍然在积极地开发和维护,为用户提供了一个主流桌面环境的替代品。而继 [之前的 R14.0.12 版本][3] 之后,第 13 个小版本带来了一些好东西。 + +### Trinity 桌面环境 R14.0.13 的新内容 + +#### 桌面易用性得到了更新 + +这个版本引入了使用 `Ctrl + 鼠标滚轮` 来增加或减少字体大小的功能,这可以用在 Konsole、Kate、KWrite、TDevelop 和其他使用 Kate 嵌入编辑器的应用程序中。此外,Kate 文本编辑器现在包括 Markdown 文件的语法高亮,使其更容易阅读和编辑这些类型的文档。 + +这些增强功能使用户对文本编辑器的外观有更多的控制,并改善了整体的用户体验。 + +此外,Trinity 桌面环境 R14.0.13 还改进了用户设置墙纸的方式,使其更容易设置,也更直观。Konqueror 的动作菜单现在提供了设置图像作为背景的各种选项,为用户提供了更多的灵活性和控制力。这些改进提高了设置墙纸时的整体用户体验,使用户更加方便。 + +除此之外,这个版本还改进了 khotkeys 输入动作,为用户提供了更多的控制和灵活性。它的用于创建和编辑动作的图形用户界面现在包括新的上移/下移按钮,使其更容易重新排列动作。此外,该版本还包括对图形用户界面的修复,以提高其整体可用性和性能。这些改进提高了用户在使用 khotkeys 输入动作时的体验,使用户更方便地定制他们的键盘快捷键。这个版本还包括一个新的等待动作组件,允许用户在步骤之间引入一个延迟。 + +![twin-style-machbunt - 来自 SuSE 的 KDE 窗口装饰主题][4] + +#### 核心和支持 + +SFTP tdeioslave 已经更新,现在使用 libssh,它提供了更安全和稳定的连接。任务栏现在包括移动任务和拖放分组任务按钮,增强了用户体验。 + +这个版本包括了改进的 API 可视化和增强的 Python3 支持。整个版本使用的语言已经更新为性别中立。这些改进提高了整体的用户体验,使 TDE 更具包容性和可及性。 + +除此之外,在核心应用程序方面,TDE R14.0.13 版本包括了几个更新,以提高与流行的多媒体和文件处理库的兼容性。这包括对 ffmpeg 5.0、Jasper 3.x 和 Poppler >= 22.04 的支持。这些更新使 TDE 能够利用这些库的最新功能和性能改进。此外,这个版本包括了几个 TDE 应用程序的手册页,为用户提供了关于如何使用这些程序的更详细的文档和信息。这些改进提高了 TDE 的整体功能和性能。 + +### 下载并安装 Trinity 桌面环境 R14.0.13 + +如果你使用的是 Ubuntu 22.04 LTS Jammy Jellyfish,你可以运行下面的命令将其安装在你现有的 Ubuntu 上: + +``` +sudo gedit /etc/apt/sources.list +``` + +添加以下行并保存文件: + +``` +deb http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-sb jammy deps-r14 main-r14 +deb-src http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-sb jammy deps-r14 main-r14 +``` + +``` +wget http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-keyring.deb +sudo dpkg -i trinity-keyring.deb +sudo apt update +sudo apt install kubuntu-default-settings-trinity kubuntu-desktop-trinity +``` + +安装完成后,重新启动你的系统,在登录界面选择 Trinity。注意:截至发稿时,针对 Ubuntu 22.10 Kinetic Kudu 的仓库还不可用。 + +对于 Arch Linux 用户,你可以通过以下命令安装它。 + +使用管理员权限打开 `/etc/pacman.conf`,在最后添加以下几行并保存好: + +``` +[trinity] +Server = https://mirror.ppa.trinitydesktop.org/trinity/archlinux/$arch +``` + +然后打开一个终端,运行以下内容: + +``` +pacman-key --recv-key D6D6FAA25E9A3E4ECD9FBDBEC93AF1698685AD8B +pacman-key --lsign-key D6D6FAA25E9A3E4ECD9FBDBEC93AF1698685AD8B +``` + +最后,用下面的方法来安装: + +``` +pacman -Sy +``` + +``` +pacman -S td-meta +``` + +对于其他发行版,你可以在 [本页][5] 找到 TDE 的详细下载和安装指南。 + +来自 [发布公告][6]。 + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/trinity-desktop-environment-r14-0-13/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tde-head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Trinity-Desktop-Environment-R14.0.13.jpg +[3]: https://www.debugpoint.com/tde-release-r14-0-12/ +[4]: https://debugpointnews.com/wp-content/uploads/2022/12/twin-style-machbunt-a-KDE-window-decoration-theme-from-SuSE.jpg +[5]: https://wiki.trinitydesktop.org/Category:Documentation#Installing_from_a_Package_Manager +[6]: https://www.trinitydesktop.org/newsentry.php?entry=2022.10.30 diff --git a/sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md b/sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md deleted file mode 100644 index 9600c86b94..0000000000 --- a/sources/news/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md +++ /dev/null @@ -1,114 +0,0 @@ -[#]: subject: "Trinity Desktop Environment R14.0.13 is now out with updates!" -[#]: via: "https://debugpointnews.com/trinity-desktop-environment-r14-0-13/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Trinity Desktop Environment R14.0.13 is now out with updates! -====== - -![][1] - -**Missing old-KDE? The new minor release of Trinity Desktop Environment (TDE R14.0.13) brings a few new features and bug fixes. This is a release summary.** - -![Trinity Desktop Environment R14.0.13][2] - -If you are one of those users who miss the good ol’ KDE (3.5) look, then you can get it via Trinity Desktop Environment (TDE). The TDE is a fork of the KDE 3.5 desktop environment developed by a small team of volunteers. It’s a continuation of the KDE 3 desktop methodology, providing updates and bug fixes for those who appreciate its features and design. - -Despite being a small and independent project, TDE is still actively developed and maintained, offering users an alternative to more mainstream desktop environments. And following the [prior R14.0.12 release][3], the thirteenth minor release brings a few goodies. - -### Trinity Desktop Environment release R14.0.13: What’s New - -#### Desktop usability updates - -This release introduces the ability to use Ctrl + mouse wheel to increase or decrease the font size in Konsole, Kate, KWrite, TDevelop, and other applications using the Kate part editor. In addition, the Kate text editor now includes syntax highlighting for Markdown files, making it easier to read and edit these types of documents. - -These enhancements give users more control over their text editor’s appearance and improve the overall user experience. - -Furthermore, Trinity Desktop Environment R14.0.13 also includes improvements to how users set a wallpaper, making it easier and more intuitive. The Konqueror action menu now offers all available options for setting an image as the background, providing users with more flexibility and control.These enhancements enhance the overall user experience when setting wallpaper and make it more convenient for users. - -On top of that, this release includes improvements to the khotkeys Input Actions, providing users with more control and flexibility. The GUI for creating and editing actions now includes new move-up/move-down buttons, making it easier to reorder actions. - -In addition, this release includes fixes to the GUI to improve its overall usability and performance.These enhancements enhance the user experience when working with khotkeys Input Actions and make it more convenient for users to customize their keyboard shortcuts. - -![twin-style-machbunt - a KDE window decoration theme from SuSE][4] - -#### Core and supports - -This release includes a new waiting action component that allows users to introduce a delay between steps. The SFTP tdeioslave has been updated to use libssh, providing a more secure and stable connection. The taskbar now includes moving tasks and dragging and dropping grouped task buttons, enhancing the user experience. - -This release includes improved API visualization and enhanced Python3 support. The language used throughout the release has been updated to be gender-neutral. These enhancements improve the overall user experience and make the TDE more inclusive and accessible. - -Other than that, on the core apps side, the TDE R14.0.13 release includes several updates to improve compatibility with popular multimedia and document processing libraries. This includes support for ffmpeg 5.0, Jasper 3.x, and Poppler >= 22.04. These updates allow TDE to take advantage of these libraries’ latest features and performance improvements. In addition, this release includes man pages for several TDE applications, providing users with more detailed documentation and information about how to use these programs. These enhancements improve the overall functionality and performance of the TDE. - -### Download and Install Trinity desktop environment R14.0.13 - -If you are using Ubuntu 22.04 LTS Jammy Jellyfish, you can run the following command to install it on top of your existing Ubuntu installation. - -``` -sudo gedit /etc/apt/sources.list -``` - -Add the following line and save the file. - -``` -deb http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-sb jammy deps-r14 main-r14deb-src http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-sb jammy deps-r14 main-r14 -``` - -``` -wget http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-keyring.debsudo dpkg -i trinity-keyring.debsudo apt updatesudo apt install kubuntu-default-settings-trinity kubuntu-desktop-trinity -``` - -After installation, restart your system and choose Trinity from the login screen. Note: As of publishing this, the repo is yet unavailable for Ubuntu 22.10 Kinetic Kudu. - -For Arch Linux users, you can install it via the following commands: - -Open `/etc/pacman.conf` using admin privilege and add the following lines at the end and save the fine. - -``` -[trinity]Server = https://mirror.ppa.trinitydesktop.org/trinity/archlinux/$arch -``` - -Then open a terminal and run the following: - -``` -pacman-key --recv-key D6D6FAA25E9A3E4ECD9FBDBEC93AF1698685AD8B -pacman-key --lsign-key D6D6FAA25E9A3E4ECD9FBDBEC93AF1698685AD8B -``` - -And finally, use the below to install. - -``` -pacman -Sy -``` - -``` -pacman -S tde-meta -``` - -For other distros, you can find the detailed download and install guide for TDE on [this page][5]. - -Via [release announcement][6] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/trinity-desktop-environment-r14-0-13/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tde-head.jpg -[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Trinity-Desktop-Environment-R14.0.13.jpg -[3]: https://www.debugpoint.com/tde-release-r14-0-12/ -[4]: https://debugpointnews.com/wp-content/uploads/2022/12/twin-style-machbunt-a-KDE-window-decoration-theme-from-SuSE.jpg -[5]: http://pacman -S tde-meta -[6]: https://www.trinitydesktop.org/newsentry.php?entry=2022.10.30 From 4d3e991974648a94e4a66fb81d87231011e09f63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:48:39 +0800 Subject: [PATCH 2235/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221205.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?True=20Lightweight=20Notepad=20for=20Ubuntu=20and=20Other=20Lin?= =?UTF-8?q?ux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Lightweight Notepad for Ubuntu and Other Linux.md | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 sources/tech/20221205.4 ⭐️⭐️ True Lightweight Notepad for Ubuntu and Other Linux.md diff --git a/sources/tech/20221205.4 ⭐️⭐️ True Lightweight Notepad for Ubuntu and Other Linux.md b/sources/tech/20221205.4 ⭐️⭐️ True Lightweight Notepad for Ubuntu and Other Linux.md new file mode 100644 index 0000000000..f11a34a66c --- /dev/null +++ b/sources/tech/20221205.4 ⭐️⭐️ True Lightweight Notepad for Ubuntu and Other Linux.md @@ -0,0 +1,220 @@ +[#]: subject: "True Lightweight Notepad for Ubuntu and Other Linux" +[#]: via: "https://www.debugpoint.com/lightweight-notepad-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +True Lightweight Notepad for Ubuntu and Other Linux +====== + +**A current list of lightweight and resource-friendly basic GUI-based notepad(s) for Ubuntu and other Linux.** + +![][1] + +Linux is a popular operating system known for its speed, stability, and flexibility. One of the key features of Linux is the ability to customize and configure the system to suit your needs. This includes choosing the right applications and tools to use on your system. This tutorial will explore some of the best lightweight notepads for Linux. We will look at their features, pros, and cons and provide tips on choosing the right notepad for your needs. Whether you’re a student, programmer, or simply someone who likes to take notes, a good notepad is an essential tool for any Linux user. + +### Why this list? + +We highlighted some of the best Notepad++ replacements for Ubuntu and other Linux distros a few days back. Since Notepad++ is an advanced notepad, it may not fit the actual lightweight criteria. For example, if you want to take some quick notes and nothing else, then Notepad++ or code editors can be an overkill. + +Also, a thin resource footprint-based editor can be kept open for longer without worrying about memory and other things. + +In addition, many DebugPoint readers commented about the following editors in the [Notepad++ article][2]. Hence this special list. + +### Best lightweight notepad for Ubuntu and other distros + +#### 1. Mousepad + +The first on this list is the popular text editor – mousepad. It’s Xfce desktop’s default text editor developed with GTK. It’s simple and lightweight but has more settings and features, especially if you compare it with the leafpad in this list. + +You may call it a leafpad with some additional features. + +Key feature includes dark/light themes, tabbed editing support, font and plugin features. You can discover more such settings after installation and during usage. + +Here’s how it looks. + +![mousepad running in Ubuntu][3] + +Installing mousepad is easy since it is available in all the major Linux distro’s repo. + +For Ubuntu, Linux Mint and related distributions, use the following command to install. + +``` +sudo apt install mousepad +``` + +For Fedora Linux, use the following command: + +``` +sudo dnf install mousepad +``` + +And Arch Linux users can install it using the following command: + +``` +sudo pacman -S mousepad +``` + +#### 2. Featherpad + +[FeatherPad][4] is a lightweight Qt-based text editor for Ubuntu and other Linux distros that is independent of any desktop environment. Some key features include drag-and-drop support, including the ability to detach and attach tabs, virtual desktop awareness, and an optional permanent search bar with individual entries for each tab. + +In addition, it can instantly highlight found matches when searching, a docked window for text replacement and support for showing line numbers and jumping to specific lines. + +Furthermore, featherpad can detect text encoding, provide syntax highlighting for common programming languages, and support session management. It also has features like spell-checking with Hunspell, text zooming, printing, and auto-saving. + +Installing featherpad is easy. + +For Ubuntu and related distros you can install it using the following command from the terminal: + +``` +sudo apt install featherpad +``` + +For Fedora Linux, use the following command to install; + +``` +sudo dnf install featherpad +``` + +Arch Linux users can use the following to install: + +``` +sudo pacman -S featherpad +``` + +![featherpad running in Ubuntu][5] + +#### 3. Leafpad + +[Leafpad][6] is a simple and lightweight text editor for Linux based on GTK. It is designed to be fast, easy to use, and require minimal resources. Leafpad features a clean and intuitive user interface, with all the basic text editing tools you need, such as cut, copy, and paste, and support for undo and redo. Furthermore, it also includes support for syntax highlighting for several programming languages, making it a useful tool for programmers. + +Leafpad is a popular choice among Linux users due to its simplicity and efficiency. It is perhaps the exact replacement for the Windows Notepad application. It has all the basic features, including word wrap, line numbers, font selection and auto-indentation. + +Here’s how it looks. The most simple and lightweight notepad in this list. + +![leafpad - a simple notepad running in Ubuntu][7] + +But installing Leafpad is a little tricky in Ubuntu. Unfortunately, it’s unavailable in the Universe repo and only available as Snap and not Flatpak. + +However, you can get it from the Debian repo and install it in Ubuntu. + +Download the deb file from the Debian repo and install it using the following commands. + +``` +wget http://ftp.us.debian.org/debian/pool/main/l/leafpad/leafpad_0.8.18.1-5_amd64.deb +``` + +``` +sudo dpkg -i leafpad_0.8.18.1-5_amd64.deb +``` + +Fedora users can install it using the following command. + +``` +sudo dnf install leafpad +``` + +And Arch Linux users via below. + +``` +sudo pacman -S leafpad +``` + +#### 4. Beaver editor + +[Beaver][8] editor is a lightweight, fast-starting text editor with minimal dependencies. It is built on the GTK+2 library and does not require additional libraries to be installed, making it well-suited for use on older computers and in small Linux distributions. Beaver’s core features include basic functionality and syntax highlighting, and additional functionality can be added through plugins. Its interface is clean and efficient, and it includes high-quality Tango artwork. + +![Beaver editor running in Ubuntu][9] + +It’s a little older app, but it works fine. However, it is only available for Ubuntu and related distros at the moment. You can download the pre-compiled deb file and install it using the following command: + +``` +wget https://www.bristolwatch.com/debian/packages/beaver_amd64.deb +``` + +``` +sudo dpkg -i beaver_amd64.deb +``` + +#### 5. Gedit + +The [gedit text editor][10] is the default text editor for the GNOME desktop environment and is used by millions of people on various Linux distributions such as Ubuntu and Fedora. It is a part of the core GNOME applications and is intended to be a lightweight, general-purpose text editor. However, gedit also includes many productivity features through its settings and installed plugins, allowing it to compete with other popular text editors. + +That said, it has been “demoted” recently from its default editor tag on the GNOME desktop. The modern GTK4-based [gnome-text-editor][11] has replaced it. + +However, it’s one of the best editors, and you can expand it from a simple editor to a more advanced editor using plugins and [various tips][12]. + +![gedit text editor][13] + +To install it, use the following commands for Ubuntu and related distributions/ + +``` +sudo apt install gedit +``` + +For Fedora Linux users, use the following command. + +``` +sudo dnf install hgedit +``` + +Finally, Arch Linux users can use the following command to install it: + +``` +sudo pacman -S gedit +``` + +### Memory and resource comparison + +Since we are discussing the performance here, which is key to the comparison, we listed below the memory consumed by all the above apps in the latest Ubuntu install. + +As you can see, the Xfce’s mousepad is the most lightweight, whereas the gedit is the heavier. + +| **App name** | **memory consumed at idle in Ubuntu** | +| :- | :- | +| mousepad | 303 KB | +| featherpad | 1.7 MB | +| leafpad | 7.7 MB | +| beaver pad | 11.1 MB | +| gedit | 30.2 MB | + +### Wrapping Up + +In conclusion, a lightweight notepad for Linux is essential for every use case. Whether you need to take notes, write code, or edit text, a lightweight notepad can make your work faster, easier, and more efficient. The Linux operating system offers a wide range of notepad applications, each with its unique features and capabilities. + +This top list of lightweight Linux notepad(s) explored some apps, including Leafpad, Gedit, mousepad and others. + +No matter which notepad you choose, you can be sure it will provide the features you need to complete your work on your Linux system. + +Which one is your favourite? Let me know in the comment box. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/lightweight-notepad-linux/ + +作者:[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/12/notepad-1head.jpg +[2]: https://www.debugpoint.com/notepad-replacement-ubuntu/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/mousepad-running-in-Ubuntu.jpg +[4]: https://github.com/tsujan/FeatherPad +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/featherpad-running-in-Ubuntu.jpg +[6]: http://tarot.freeshell.org/leafpad/v +[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/leafpad-a-simple-notepad-running-in-Ubuntu.jpg +[8]: https://sourceforge.net/projects/beaver-editor/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/Beaver-editor-running-in-Ubuntu.jpg +[10]: https://wiki.gnome.org/Apps/Gedit +[11]: https://www.debugpoint.com/gnome-text-editor/ +[12]: https://www.debugpoint.com/gedit-features/ +[13]: https://www.debugpoint.com/wp-content/uploads/2022/12/gedit-text-editor.jpg From 1d14160832fd5198e664001cd5c1d3238f0e55c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:49:04 +0800 Subject: [PATCH 2236/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221206.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Top=205=20Live=20Streaming=20Applications=20for=20Ubuntu=20and?= =?UTF-8?q?=20Other=20Linux=20[2022=20Edition].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tions for Ubuntu and Other Linux [2022 Edition].md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md diff --git a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md new file mode 100644 index 0000000000..93ee5ab1e4 --- /dev/null +++ b/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md @@ -0,0 +1,185 @@ +[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]" +[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 5 Live Streaming Applications 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.** + +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. + +So, in this post, we will list out some of the free software for Ubuntu and other Linux primarily that are easy to use for creating super interesting live streaming content for you and your businesses. + +### Top 5 Live Streaming Applications for Linux in 2022 + +#### OBS Studio + +The first free application in this list is OBS Studio (also known as Open Broadcaster Software). It is a live streaming application with screencasting capabilities available for Linux, Windows and macOS. + +OBS Studio is the best one on this list because several reasons. The encoding is built-in, and it supports RTMP broadcasting, multiple sources, webcams, green-screen, capture cards and your application windows. + +The user interface is reasonably straightforward and feature-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 - Live Streaming Applications for Linux][1] + +**How to Install** + +OBS Studio is available in all Linux Distribution’s official repositories. Detailed instruction for installations is present in the below link. + +[Download OBS Studio][2] + +More Information + +- [Home Page][3] +- [Documentation][4] + +#### VokoscreenNG + +The second application we would feature in this list is VokoscreenNG. It is a fork of the discontinued Vokoscreen project. The new application is entirely written in Qt with the GStreamer library. It can record your screen and accept multiple audio and video sources. VokoscreenNG’s toolbox is also quite impressive. It includes a magnifying glass, timer, system tray plugins that ease up your workflow. + +It is available for Linux and Windows for free. + +![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. + +Remember, this application requires X11, PulseAudio and GStreamer plugins installed in your Linux system to work. If you use a modern Linux system with Wayland and Pipewire sound server (e.g. Fedora), this application may not work. + +[Download VokoscreenNG][6] + +**More Information** + +- [Home page][7] + +#### Restreamer + +The Restreamer application lets you live stream videos and screencasts directly to your website without any streaming provider. It is also possible to use popular streaming solutions, such as YouTube, Twitch, etc., with this application. + +This application is feature-rich and comes with a fair list of features. Here’s 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 + +![Restreamer][9] + +**How to Install** + +The installation of Restreamer is a little tricky because it’s distributed via Docker images. You can find the instructions to install Linux, Windows, and macOS on the below link. + +[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 for it. Although it is available as a command line, you can use 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 - - 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/ffscreencastcd ffscreencastsudo cp bin/ffscreencast /usr/local/bin +``` + +You can run this application with `ffscreencast` command from the terminal. + +[Source code & Home page][15] + +#### Open Streaming platforms + +The final application in this list is Open Streaming Platform (OSP), an open-source RTMP streamer software that can act as a self-hosted alternative to YouTube LIVE, Twitch.tv, etc. + +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 simultaneously 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 isn’t 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][16] + +**More Information** + +- [Home Page][17] +- [Source Code][18] +- [Documentation][19] + +### Closing Notes + +There are very few free and open-source live streaming applications available for Linux. However, several commercial live streaming applications are available, which may give you more options, quality, and support. But as I said, they may cost you some bucks. So, if you are new to the streaming world, you may want to get started with the above-listed free live streaming applications in Ubuntu or other Linux systems. I hope this article gives you ideas about which to use based on your need and get you started. + +Let me know your favourite live streaming software in the comment box below. + +Cheers. + +[Next:How to Create Ubuntu, Linux OS Bootable USB in Windows][20] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/live-streaming-applications-linux-2022/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/02/OBS-Studio.jpg +[2]: https://obsproject.com/wiki/install-instructions#linux +[3]: https://obsproject.com/ +[4]: https://obsproject.com/wiki/Home +[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg +[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html +[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://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-2048x1026.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/ +[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/ From dbbb527dd974718049c842037435b9a9fd1a0a78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:49:50 +0800 Subject: [PATCH 2237/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221206.1=20=E2=AD=90=EF=B8=8F=20Gnoppix=20Linux=20?= =?UTF-8?q?22.12=20is=20out=20with=20GNOME=2043,=20Kernel=206.0,=20+=20Mor?= =?UTF-8?q?e.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...12 is out with GNOME 43, Kernel 6.0, + More.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md diff --git a/sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md b/sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md new file mode 100644 index 0000000000..9096b0dbf3 --- /dev/null +++ b/sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md @@ -0,0 +1,81 @@ +[#]: subject: "Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More" +[#]: via: "https://debugpointnews.com/gnoppix-22-12-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More +====== + +![][1] + +**Kali-linux-based rolling Linux distro Gnoppix 22.12 brings GNOME 43, Linux Kernel 6.0 and new upgrades.** + +![Gnoppix 22.12 desktop][2] + +The successor of the legacy live-cd Knoppix project, [Gnoppix][3] Linux is designed specifically for use in penetration testing and reverse engineering. It is optimized for web application security and for protecting digital rights. In addition to its focus on security, Gnoppix can also be used as a regular desktop operating system. It is a rolling release that receives frequent updates and new features. + +At its core, it is based on Kali Linux and Debian-rolling for some parts. And brings a GNOME desktop in contrast with Xfce for Kali Linux. + +### Gnoppix Linux 22.12: What’s New + +The current major release is Gnoppix 22, which is an ongoing point release, and recently its team released Gnoppix 22.12 with the following updates. + +Firstly the Kernel version is bumped up to Linux Kernel 6.0 and the latest [GNOME 43.2 desktop][4]. If you want to use this distro as a desktop, then some good news for you on the default application list. + +Gnoppix 22.12 added the GIMP image editor, Deluge & Transmission, clapper music player and gnome-firmware updater. + +Furthermore, all the native GNOME packages are bumped up to the 43.2 version while the team started working on 44, which is due on February 2023. + +![GNOME 43.2 workspace view][5] + +Other key components and apps include the following: + +- LibreOffice 7.4.2.3 +- Linux mainline Kernel 6.0.7 +- OpenJDK 11 +- pipewire 0.3.60 +- Firefox ESR 102 +- Python 3.10 + +Gnoppix Linux also adds a couple of Microsoft apps by default. In this release, you get the Microsoft Edge Browser 107 and the Microsoft Teams preview edition for meetings and communications. + +You have a complete change log with a huge list of package updates you can find in the [changelog][6]. + +### Download + +If you want to try it, you can download it using the following link. + +[Download Gnoppix 22.12][7] + +Remember, it is ideal to be used in live media. However, you can easily install it on your hardware and run it as a Debian-GNOME-rolling release. Also, please note that it needs a minimum of 50GB of disk space for installation! That’s a hard requirement of its Calamares installer. + +Furthermore, the Kali Linux’s repo has already been added to the /etc/apt/sources.list – hence you can be sure of almost stable packages from Debian-rolling. So, it should be well stable. + +Cheers. + +Via [annoucement][6]. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/gnoppix-22-12-release/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/gnoppix-head1.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Gnoppix-22.12-desktop.jpg +[3]: https://www.gnoppix.com/ +[4]: https://debugpointnews.com/gnome-43-release/ +[5]: https://debugpointnews.com/wp-content/uploads/2022/12/GNOME-43.2-workspace-view.jpg +[6]: https://sourceforge.net/p/gnoppixng/releases/general/thread/bc187de53a/#f258 +[7]: https://sourceforge.net/projects/gnoppixng/files/releases/ From 74ecdd9ef069cbd90b42c7c54a89712b9db8a9ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:50:32 +0800 Subject: [PATCH 2238/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020221206.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?'Don't=20be=20Afraid=20to=20Contribute'=20Mirko=20Brombin=20Tal?= =?UTF-8?q?ks=20about=20Vanilla=20OS=20and=20Other=20Future=20Projects.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...alks about Vanilla OS and Other Future Projects.md | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md new file mode 100644 index 0000000000..afe4c238a8 --- /dev/null +++ b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md @@ -0,0 +1,155 @@ +[#]: subject: "'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects" +[#]: via: "https://news.itsfoss.com/interview-mirko-brombin/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects +====== + +A conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator. + +!['Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects][1] + +There are many interesting personalities in the Linux and open-source world. + +We aim to interact with them and share their stories/thoughts with you. While we did a few interviews in 2021, we are resuming the mission to share insightful conversations with amazing folks in our open-source and Linux universe. + +[Mirko Brombin][2] is one such cool guy 😎 He works as a UX designer full-time, and despite doing all that, he is involved with open-source projects that we admire! + +If you did not know, he is the creator of **[Bottles][3]** (an app to run Windows apps/games on Linux) and **[Vanilla OS][4]**'s founder. + +So, I asked a couple of questions to provide details about his **projects**, his **work/life**, and some **valuable tips** for our readers who want to join the open-source community. + +**Q.** _**Many people think that we have more than enough distros. Why Vanilla OS?**_ + +![vanilla os][5] + +**A:** It is because this one is 10x faster and safer than all the others! Just kidding. **Vanilla OS was born mainly out of a need of mine and a desire to experiment**. I have been a Linux user for many years and have tried many distributions. They always suffered from the lack of certain features and concepts that led me to compulsively distro-hop. In recent years I have been a happy user of Silverblue, a distribution that made me explore the benefits of immutable systems. + +Silverblue is a fantastic project. It's one of the most solid distributions I have tried. However, it does not fully meet my needs. Maintaining Bottles often requires me to play games for testing purposes, and having an NVIDIA GPU, I have had quite a few problems with Silverblue, from driver installation to constant driver breakage and a distinctly noticeable drop in performance. Let's be clear, **NVIDIA is a problem in every distribution** but there is much that can be done to improve the quality of life for users using these GPUs, such as guiding driver installation, pre-configuring the setup for Optimus (Integrated+Dedicated) laptops, and allowing PRIME profile switching in an easy way. To date, only Ubuntu and derivatives have been pre-configured for this workflow. + +![nvidia illustration][6] + +My problem with Ubuntu-based distributions is that they do not offer an experience compatible with my needs either. **I am a devoted GNOME user**, I fully endorse the user experience envisioned by GNOME, and I am completely addicted to it. + +I understand the need for **Ubuntu, Pop!_OS,** and others to provide their own vision and branding, but these modifications are deal breakers for me and probably for many users. GNOME designers and developers are professionals that have been working in this industry for countless years, perfecting their vision, but many distributions change the workflow in ways that I cannot use my systems effectively. + +**Another problem with Ubuntu is that it does not offer immutability and atomicity of transactions**, two mechanisms that make the system solid and safe from easy breakage, for example, when an update goes wrong. + +![solving ubuntu problems][7] + +Adding up all those shortcomings and my passion for throwing myself into increasingly complex projects, I decided to create **Vanilla OS, an Ubuntu-based distribution, with a stock GNOME desktop** and all the merits of immutability and atomicity. + +**Q.****_Some of your projects, like Bottles and the upcoming Vanilla OS, are immensely popular. Do you have other project ideas for the future?_****A:** I have a long list of projects that I would like to accomplish in the future, but my next goal is to develop and contribute to a project idealized by @[TheEvilSkeleton][8]: a **utility to configure MangoHud, an overlay that displays useful information about game FPS, temperatures, CPU/GPU load and more**. + +With this new project, we plan to integrate it in Bottles and provide a graphical interface to customize MangoHud parameters. Similarly, we did the same thing for vkBasalt with vkbasalt-cli. + +**_Q. There will always be a new distro, even if some of us would rather not see more. When I tried out Vanilla OS, it did not feel like “just another distro” but with a unique angle to it._****_So, what’s your near future plan with Vanilla OS?_****A:** My future plan for Vanilla OS is **to make the project sustainable so that I can work on it full-time**. This is more of a dream in my drawer but, who knows. + +I have many ideas that I'll share on social media eventually. Something I can tell you now is that one of my dreams is to see Vanilla OS on multiple platforms like desktops, mobile, and tablets. I want to create an environment with an Apple-like continuity, without the scamming, as the **user experience is always the main focus for me.** + +Q. _**Bottles is a fantastic tool to help users run Windows software on Linux in a few clicks. Various other tools like Heroic Games Launcher have been trying to make things easy for Windows users to play their favorite games on Linux easily.**__**How do you think that’s going? Do you have any stats to share about that through Bottles?**_**A:** Heroic is a project that I admire and follow closely. I am friends with [Flavio][9] (the founder) and [Linguin][10] (one of the developers), and I know how hard the whole team is working to make the gaming experience on Linux more and more fulfilling, so **a Hooray! for Heroic**. + +![Heroic Games launcher][11] + +**Bottles** is like a son to me, I have raised him at my best, and he is giving me a lot of satisfaction. Recently I had to decrease my presence in the project to focus on others and my daily job. This has been possible thanks to a team of contributors who have joined over time, people who share the same vision of the project as I do and cherish its ideals. + +![bottles screenshot][12] + +The structure of the project is changing radically. Initially, I was the one making every decision, whereas now everything is discussed and put to a vote, trying to get a shared verdict. In this, it is like watching a son grow up and make his own decisions, aware of what I have taught him over time. + +**Release 2022.11.14**, is the first release entirely developed by the Bottles team. One of the best releases ever in my opinion. For this, I have to give special thanks to @**TheEvilSkeleton,** who led the release, and [noëlle][13], who made the graphics part. + +A small milestone I would like to share with you is the **achievement of 400,000+ downloads from Flathub.** 🎉 + +![Bottle download stats][14] + +_**Q. If someone gets interested in contributing to any one of your projects. What advice would you give them? What programming language should they focus on if they want to collaborate with you?**_**A:** My advice is not to be afraid to contribute and ask questions, even if it's a "bad" question. Even if you are afraid. There is no such thing as a bad contribution. A well-written ticket is already a great way to do your part. Personally, I don't give weight to contributions, I give credit to those who have spent much more time certainly, but for me, every single contribution is a small brick that helps the project grow. + +**I mostly use Python and Go** for my projects but I would not make it a requirement. If a user wants to help with Vanilla OS, for example by making an application we need, well, they can use whatever language they like. + +![python programming][15] + +The only thing I would ask is to carefully consider the language and choose the one best suited for the type of project you need to create, as the choice will affect who can contribute (or not), for example, I would never choose Rust for a small tool, as Rust is not an easy language for newcomers and new contributors typically contribute to smaller projects that are written in user-friendly languages. + +_**Q. Other than your creations, what other project or distro would you mention as one of your favorites?**_**A:** I have many projects that I would like to mention here, but it would become a season of Vikings. Among all of them, the one that, in my opinion, deserves mention is **Distrobox, a project made by** [Luca di Maio][16]**, a friend of mine as well as an active member in the making of the Vanilla OS project.** + +Distrobox is a tool that installs Linux distributions inside managed containers integrated with the system, allowing, for example, to install and run software in a Fedora container while running Ubuntu, integrating it seamlessly with the host system. + +Distrobox is also employed by Apx, the Vanilla OS package manager. Every package installed through Apx resides in the Distrobox container, keeping the system safe from any discrepancies or breaks from a possible update gone wrong. + +_**Q. How do you keep up with all the projects you’re working on? What’s your mantra on productivity or time management?**_**A:** Contrary to what you may think, I don't work much on my projects, my daily job takes a lot of my time, and I have many other passions to cultivate. + +![productivity][17] + +I don't have any particular time management or organization; normally I try to stay focused on my projects by reasoning about them in my spare time and taking notes, so as soon as I get back to work on a project, I already have a clear idea of what I need to do. + +_**Q. You are also a GNOME Foundation member. What’s it like being a GNOME foundation member? Can anyone apply to be a part of it?**_**A:** I am still a very recent member and I don't have much to say, except that it is wonderful to be inside the project that I absolutely love and respect the most, as it has changed the way I use my PC, with a workflow designed to be free of distractions and where everything is intuitive and immediate; in short, where the user experience is always first. + +Anyone can apply, as long as they are an active person with demonstrable contributions. + +**_Q. As a GNOME foundation member, what do you think GNOME should improve compared to the KDE Plasma side?_****A:** I don't want to sound brash but I think **GNOME is currently complete as it is**. I've seen it grow since the beginning and I know how many steps have been taken since GNOME 2 and 3, I'm sure many more are to come but **right now I can't find a lack in comparison to KDE**. + +![gnome user][18] + +I know at this point someone is saying "_Eh but KDE has themes and a setting for this and that._" and I agree, it is a fact that KDE is the most customizable desktop environment of all, but you have to understand that GNOME doesn't implement all these settings because the whole thing is designed to provide a single, but efficient, user experience. Providing a setting to change every single aspect of it is more of an invitation for the user to do so, feeding bug reports for a different experience than designed. + +It is important to understand that more customization inevitably leads to more discrepancies and bugs, as all components of the system are meant to work in a certain way, and altering them takes you out of the testing environment that is used in GNOME. + +**_Q. What do you like to do in your spare time?_** + +![world history and podcast][19] + +**A:** In my free time, I love to **write recipes** or listen to the **world's history podcasts**. + +10-yo Mirko would find me boring, haha 😁 + +_**Q. A message to our readers (to inspire them/add a tip that you always wanted to share, etc)**_ + +![dialogue is good][20] + +**A:** Don't be afraid to contribute or speak. I often find that someone has a great idea to solve a problem and has never told anyone because of the fear that it was wrong. Let's be clear that a contribution is something to improve and is therefore always welcome. + +Certainly, not all ideas are feasible or correct but dialogue is a great way to find out. + +Don't be shy; come on! + +> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/interview-mirko-brombin/ + +作者:[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/content/images/size/w2000/2022/12/interview-with-mirko-brombin.png +[2]: https://mirko.pm +[3]: https://usebottles.com +[4]: https://vanillaos.org +[5]: https://news.itsfoss.com/content/images/2022/12/vanillaos.jpg +[6]: https://news.itsfoss.com/content/images/2022/12/nvidia.png +[7]: https://news.itsfoss.com/content/images/2022/12/ubuntu.png +[8]: https://github.com/TheEvilSkeleton +[9]: https://github.com/flavioislima +[10]: https://github.com/imLinguin +[11]: https://news.itsfoss.com/content/images/2022/12/Heroic_2.jpg +[12]: https://news.itsfoss.com/content/images/2022/12/bottle-creation-dark.png +[13]: https://github.com/jannuary +[14]: https://news.itsfoss.com/content/images/2022/12/download-milestone.png +[15]: https://news.itsfoss.com/content/images/2022/12/python.png +[16]: https://github.com/89luca89 +[17]: https://news.itsfoss.com/content/images/2022/12/productivity.png +[18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png +[19]: https://news.itsfoss.com/content/images/2022/12/history-1.png +[20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png From 092da90aff1c1bff4ef58c91ac9de2c0bf45a47d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:51:49 +0800 Subject: [PATCH 2239/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221206.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?A=20data=20scientist's=20guide=20to=20open=20source=20community?= =?UTF-8?q?=20analysis.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ntist's guide to open source community analysis.md | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 sources/tech/20221206.3 ⭐️⭐️ A data scientist's guide to open source community analysis.md diff --git a/sources/tech/20221206.3 ⭐️⭐️ A data scientist's guide to open source community analysis.md b/sources/tech/20221206.3 ⭐️⭐️ A data scientist's guide to open source community analysis.md new file mode 100644 index 0000000000..d1f530342f --- /dev/null +++ b/sources/tech/20221206.3 ⭐️⭐️ A data scientist's guide to open source community analysis.md @@ -0,0 +1,201 @@ +[#]: subject: "A data scientist's guide to open source community analysis" +[#]: via: "https://opensource.com/article/22/12/data-scientists-guide-open-source-community-analysis" +[#]: author: "Cali Dolfi https://opensource.com/users/cdolfi" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A data scientist's guide to open source community analysis +====== + +In the golden age of data analysis, open source communities are not exempt from the frenzy around getting some big, fancy numbers onto presentation slides. Such information can bring even more value if you master the art of generating a well-analyzed question with proper execution. + +You might expect me, a [data scientist][1], to tell you that data analysis and automation will inform your community decisions. It's actually the opposite. Use data analysis to build on your existing open source community knowledge, incorporate others, and uncover potential biases and perspectives not considered. You might be an expert at implementing community events, while your colleague is a wiz at all things code. As each of you develops visualizations within the context of your own knowledge, you both can benefit from that information. + +Let's have a moment of realness. Everyone has a thousand and one things to keep up with, and it feels like there is never enough time in a day to do so. If getting an answer about your community takes hours, you won't do it regularly (or ever). Spending the time to create a fully developed visualization makes it feasible to keep up with different aspects of the communities you care about. + +With the ever-increasing pressure of being "data-driven," the treasure trove of information around open source communities can be a blessing and a curse. Using the methodology below, I will show you how to pick the needle out of the data haystack. + +### What is your perspective? + +When thinking about a metric, one of the first things you must consider is the perspective you want to provide. The following are a few concepts you could establish. + +**Informative vs. influencing action:** Is there an area of your community that is not understood? Are you taking that first step in getting there? Are you trying to decide on a particular direction? Are you measuring an existing initiative? + +**Exposing areas of improvement vs. highlighting strengths:** There are times when you are trying to hype up your community and show how great it is, especially when trying to demonstrate business impact or advocate for your project. When it comes to informing yourself and the community, you can often get the most value from your metrics by identifying shortcomings. Highlighting strengths is not a bad practice, but there is a time and place. Don't use metrics as a cheerleader inside your community to tell you how great everyone is; instead, share that with outsiders for recognition or promotion. + +**Community and business impact:** Numbers and data are the languages of many businesses. That can make it incredibly difficult to advocate for your community and truly show its value. Data can be a way to speak in their language and show what they want to see to get the rest of your messaging across. Another perspective is the impact on open source overall. How does your community impact others and the ecosystem? + +These are not always either/or perspectives. Proper framing will help in creating a more deliberate metric. + +![Data science and machine learning workflow][2] + +People often describe some version of this workflow when talking about general data science or machine learning work. I will focus on the first step, codifying problems and metrics, and briefly mention the second. From a data science perspective, this presentation can be considered a case study of this step. This step is sometimes overlooked, but your analysis's actual value starts here. You don't just wake up one day and know exactly what to look at. Begin with understanding what you want to know and what data you have to get you to the true goal of thoughtful execution of data analysis. + +### 3 data analysis use cases in open source + +Here are three different scenarios you might run into in your open source data analysis journey. + +#### Scenario 1: Current data analysis + +Suppose you are starting to go down the analysis path, and you already know what you're looking into is generally useful to you/your community. How can you improve? The idea here is to build off "traditional" open source community analysis. Suppose your data indicates you have had 120 total contributors over the project's lifetime. That's a value you can put on a slide, but you can't make decisions from it. Start taking incremental steps from just having a number to having insights. For example, you can break out the sample of total contributors into active versus drifting contributors (contributors who have not contributed in a set amount of time) from the same data. + +#### Scenario 2: Community campaign impact measurement + +![Goals and impacts][3] + +Consider meetups, conferences, or any community outreach initiative. How do you view your impacts and goals? These two steps actually feed into each other. Once you establish the campaign goals, determine what can be measured to detect the effect. That information helps set the campaign's goals. It's easy to fall into the trap of being vague rather than concrete with plans when a campaign begins. + +#### Scenario 3: Form new analysis areas to impact + +![New analysis areas][4] + +This situation occurs when you work from scratch in data analysis. The previous examples are different parts of this workflow. The workflow is a living cycle; you can always make improvements or extensions. From this concept, the following are the necessary steps you should work through. Later in this article, there will be three different examples of how this approach works in the real world. + +#### Step 1: Break down focus areas and perspectives + +First, consider a magic eight ball—the toy you can ask anything, shake, and get an answer. Think about your analysis area. If you could get any answer immediately, what would it be? + +Next, think about the data. From your magic eight-ball question, what data sources could have anything to do with the question or focus area? + +What questions could be answered in the data context to move you closer to your proposed magic eight-ball question? It's important to note that you must consider the assumptions made if you try to bring all the data together. + +#### Step 2: Convert a question to a metric + +Here is the process for each sub-question from the first step: + +- Select the specific data points needed. +- Determine visualization to get the goal analysis. +- Hypothesize the impacts of this information. + +Next, bring in the community to provide feedback and trigger an iterative development process. The collaborative portion of this can be where the real magic happens. The best ideas often come when bringing a concept to someone that inspires them in a way you or they would not have imagined. + +#### Step 3: Analysis in action + +This step is where you start working through the implications of the metric or visualization you have created. + +The first thing to consider is if this metric follows what is currently known about the community. + +- If **yes**: Are there assumptions made that catered to the results? +- If **no**: You want to investigate further whether this is potentially a data or calculation issue or if it is just a previously misunderstood part of the community. + +Once you have determined if your analysis is stable enough to make inferences on, you can start to implement community initiatives on the information. As you are taking in the analysis to determine the next best step, you should identify specific ways to measure the initiative's success. + +Now, observe these community initiatives informed by your metric. Determine if the impact is observable by your priorly established measurement of success. If not, consider the following: + +- Are you measuring the right thing? +- Does the initiative strategy need to change? + +### Example analysis area: New contributors + +#### What is my magic eight-ball question? + +- Do people have an experience that establishes them as consistent contributors? + +#### What data do I have that goes into the analysis area and magic eight-ball question? + +- What contributor activity exists for repos, including timestamps? + +Now that you have the information and a magic eight-ball question, break the analysis down into subparts and follow each of them to the end. This idea correlates with steps 2 and 3 above. + +**Sub-question 1:** "How are people coming into this project?" + +This question aims to see what new contributors are doing first. + +**Data:** GitHub data on first contributions over time (issues, PR, comments, etc.). + +![Chart of first time contributions per quarter][5] + +**Visualization:** Bar chart with first-time contributions broken down by quarter. + +**Potential extension:** After you talk with other community members, further examination breaks the information down by quarter and whether the contributor was a repeat or drive-by. You can see what people are doing when they come in and if that tells you anything about whether they will stick around. + +![Chart of drive-by contributions per quarter][6] + +**Potential actions informed by this information:** + +- Does the current documentation support contributors for the most common initial contribution? Could you support those contributors better, and would that help more of them stay? +- Is there a contribution area that is not common overall but is a good sign for a repeat contributor? Perhaps PR is a common area for repeat contributors, but most people don't work in that area. + +**Action items:** + +- Label "good first issues" consistently and link these issues to the contribution docs. +- Add a PR buddy to these. + +**Sub-question 2:** "Is our code base really dependent on drive-by contributors?" + +**Data:** Contribution data from GitHub. + +![Chart of contributor types over time][7] + +**Visualization:** "Total contributions: Broken down by contributions by drive-by and repeat contributor." + +**Potential actions informed by this information:** + +- Does this ratio achieve the program's goals? Is a lot of the work done by drive-by contributors? Is this an underutilized resource, and is the project not doing its part to bring them in? + +### Analysis: Lessons learned + +Number and data analysis are not "facts." They can say anything, and your internal skeptic should be very active when working with data. The iterative process is what will bring value. You don't want your analysis to be a "yes man." Take time to take a step back and evaluate the assumptions you've made. + +If a metric just points you in a direction to investigate, that is a huge win. You can't look at or think of everything. Rabbit holes can be a good thing, and conversation starters can bring you to a new place. + +Sometimes exactly what you want to measure is not there, but you might be able to get valuable details. You can't assume that you have all the puzzle pieces to get an exact answer to your original question. If you start to force an answer or solution, you can take yourself down a dangerous path led by assumptions. Leaving room for the direction or goal of analysis to change can lead you to a better place or insight than your original idea. + +Data is a tool. It is not the answer, but it can bring together insights and information that would not have been accessible otherwise. The methodology of breaking down what you want to know into manageable chunks and building on that is the most important part. + +Open source data analysis is a great example of the care you must take with all data science: + +- The nuance of the topic area is the most important. +- The process of working through "what to ask/answer" is often overlooked. +- Knowing what to ask can be the hardest part, and when you come up with something insightful and innovative, it's much more than whatever tool you choose. + +If you are a community member with no data science experience looking at where to start, I hope this information shows you how important and valuable you can be to this process. You bring the insights and perspectives of the community. If you are a data scientist or someone implementing the metrics or visualizations, you have to listen to the voices around you, even if you are also an active community member. More information on data science is listed at the end of this article. + +### Wrap up + +Use the above example as a framework for establishing data analysis of your own open source project. There are many questions to ask of your results, and knowing both the questions and their answers can lead your project in an exciting and fruitful direction. + +#### More on data science + +Consider the following sources for more information on data science and the technologies that provide it with data: + +- [What is data science?][8] +- [What is Python?][9] +- [How to become a data scientist][10] +- [Data scientist: A day in the life][11] +- [What is big data?][12] +- [Whitepaper: Data-intensive intelligent applications in a hybrid cloud blueprint][13] +- [MariaDB and MySQL cheat sheet][14] +- [Latest data science articles][15] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/data-scientists-guide-open-source-community-analysis + +作者:[Cali Dolfi][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/cdolfi +[b]: https://github.com/lkxed +[1]: https://enterprisersproject.com/article/2022/9/data-scientist-day-life?intcmp=7013a000002qLH8AAM +[2]: https://opensource.com/sites/default/files/2022-11/datascience-machinelearning-workflow.jpg +[3]: https://opensource.com/sites/default/files/2022-11/goals-impact.png +[4]: https://opensource.com/sites/default/files/2022-11/new-analysis-areas.png +[5]: https://opensource.com/sites/default/files/2022-11/first-time-contributions-per-quarter.png +[6]: https://opensource.com/sites/default/files/2022-11/driveby-contributions-per-quarter.png +[7]: https://opensource.com/sites/default/files/2022-11/contributor-types-over-time.png +[8]: https://opensource.com/resources/data-science?intcmp=7013a000002CxqkAAC +[9]: https://opensource.com/resources/python?intcmp=7013a000002CxqkAAC +[10]: https://opensource.com/article/17/9/data-scientist?intcmp=7013a000002CxqkAAC +[11]: https://enterprisersproject.com/article/2022/9/data-scientist-day-life?intcmp=7013a000002CxqkAAC +[12]: https://opensource.com/resources/big-data?intcmp=7013a000002CxqkAAC +[13]: https://www.redhat.com/en/resources/data-intensive-applications-hybrid-cloud-blueprint-detail?intcmp=7013a000002CxqkAAC +[14]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet?intcmp=7013a000002CxqkAAC +[15]: https://opensource.com/tags/data-science?intcmp=7013a000002CxqkAAC From 0f76613ff5025d8fd08cf7634a0c3f17961c2d73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:52:23 +0800 Subject: [PATCH 2240/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221206.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=2010-minute=20guide=20to=20the=20Linux?= =?UTF-8?q?=20ABI.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️⭐️ A 10-minute guide to the Linux ABI.md | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 sources/tech/20221206.4 ⭐️⭐️⭐️ A 10-minute guide to the Linux ABI.md diff --git a/sources/tech/20221206.4 ⭐️⭐️⭐️ A 10-minute guide to the Linux ABI.md b/sources/tech/20221206.4 ⭐️⭐️⭐️ A 10-minute guide to the Linux ABI.md new file mode 100644 index 0000000000..eec93fd329 --- /dev/null +++ b/sources/tech/20221206.4 ⭐️⭐️⭐️ A 10-minute guide to the Linux ABI.md @@ -0,0 +1,151 @@ +[#]: subject: "A 10-minute guide to the Linux ABI" +[#]: via: "https://opensource.com/article/22/12/linux-abi" +[#]: author: "Alison Chaiken https://opensource.com/users/chaiken" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A 10-minute guide to the Linux ABI +====== + +Many Linux enthusiasts are familiar with Linus Torvalds' [famous admonition][1], "we don't break user space," but perhaps not everyone who recognizes the phrase is certain about what it means. + +The "#1 rule" reminds developers about the stability of the applications' binary interface via which applications communicate with and configure the kernel. What follows is intended to familiarize readers with the concept of an ABI, describe why ABI stability matters, and discuss precisely what is included in Linux's stable ABI. The ongoing growth and evolution of Linux necessitate changes to the ABI, some of which have been controversial. + +### What is an ABI? + +ABI stands for Applications Binary Interface. One way to understand the concept of an ABI is to consider what it is not. Applications Programming Interfaces (APIs) are more familiar to many developers. Generally, the headers and documentation of libraries are considered to be their API, as are standards documents like those for [HTML5][2], for example. Programs that call into libraries or exchange string-formatted data must comply with the conventions described in the API or expect unwanted results. + +ABIs are similar to APIs in that they govern the interpretation of commands and exchange of binary data. For C programs, the ABI generally comprises the return types and parameter lists of functions, the layout of structs, and the meaning, ordering, and range of enumerated types. The Linux kernel remains, as of 2022, almost entirely a C program, so it must adhere to these specifications. + +"[The kernel syscall interface][3]" is described by [Section 2 of the Linux man pages][4] and includes the C versions of familiar functions like "mount" and "sync" that are callable from middleware applications. The binary layout of these functions is the first major part of Linux's ABI. In answer to the question, "What is in Linux's stable ABI?" many users and developers will respond with "the contents of sysfs (/sys) and procfs (/proc)." In fact, the [official Linux ABI documentation][5] concentrates mostly on these [virtual filesystems][6]. + +The preceding text focuses on how the Linux ABI is exercised by programs but fails to capture the equally important human aspect. As the figure below illustrates, the functionality of the ABI requires a joint, ongoing effort by the kernel community, C compilers (such as [GCC][7] or [clang][8]), the developers who create the userspace C library (most commonly [glibc][9]) that implements system calls, and binary applications, which much be laid out in accordance with the Executable and Linking Format ([ELF][10]). + +![Cooperation within the development community][11] + +### Why do we care about the ABI? + +The Linux ABI stability guarantee that comes from Torvalds himself enables Linux distros and individual users to update the kernel independently of the operating system. + +If Linux did not have a stable ABI, then every time the kernel needed patching to address a security problem, a large part of the operating system, if not the entirety, would need to be reinstalled. Obviously, the stability of the binary interface is a major contributing factor to Linux's usability and wide adoption. + +![Terminal output][12] + +As the second figure illustrates, both the kernel (in linux-libc-dev) and Glibc (in `libc6-dev`) provide bitmasks that define file permissions. Obviously the two sets of definitions must agree! The `apt` package manager identifies which software project provided each file. The potentially unstable part of Glibc's ABI is found in the `bits/` directory. + +For the most part, the Linux ABI stability guarantee works just fine. In keeping with [Conway's Law][13], vexing technical issues that arise in the course of development most frequently occur due to misunderstandings or disagreements between different software development communities that contribute to Linux. The interface between communities is easy to envision via Linux package-manager metadata, as shown in the image above. + +### Y2038: An example of an ABI break + +The Linux ABI is best understood by considering the example of the ongoing, [slow-motion][14] "Y2038" ABI break. In January 2038, 32-bit time counters will roll over to all zeroes, just like the odometer of an older vehicle. January 2038 sounds far away, but assuredly many IoT devices sold in 2022 will still be operational. Mundane products like [smart electrical meters][15] and [smart parking systems][16] installed this year may or may not have 32-bit processor architectures and may or may not support software updates. + +The Linux kernel has already moved to a 64-bit `time_t` opaque data type internally to represent later timepoints. The implication is that system calls like `time()` have already changed their function signature on 64-bit systems. The arduousness of these efforts is on ready display in kernel headers like [time_types.h][17], which includes new and "_old" versions of data structures. + +![Odometer rolling over][18] + +The Glibc project also [supports 64-bit time][19], so yay, we're done, right? Unfortunately, no, as a [discussion on the Debian mailing list][20] makes clear. Distros are faced with the unenviable choice of either providing two versions of all binary packages for 32-bit systems or two versions of installation media. In the latter case, users of 32-bit time will have to recompile their applications and reinstall. As always, proprietary applications will be a real headache. + +### What precisely is in the Linux stable ABI anyway? + +Understanding the stable ABI is a bit subtle. Consider that, while most of sysfs is stable ABI, the debug interfaces are guaranteed to be _un_stable since they expose kernel internals to userspace. In general, Linus Torvalds has pronounced that by "don't break userspace," he means to protect ordinary users who "just want it to work" rather than system programmers and kernel engineers, who should be able to read the kernel documentation and source code to figure out what has changed between releases. The distinction is illustrated in the figure below. + +![Stability guarantee][21] + +Ordinary users are unlikely to interact with unstable parts of the Linux ABI, but system programmers may do so inadvertently. All of sysfs (`/sys`) and procfs (`/proc`) are guaranteed stable except for `/sys/kernel/debug`. + +But what about other binary interfaces that are userspace-visible, including miscellaneous ABI bits like device files in `/dev`, the kernel log file (readable with the `dmesg` command), filesystem metadata, or "bootargs" provided on the kernel "command line" that are visible in a bootloader like GRUB or u-boot? Naturally, "it depends." + +### Mounting old filesystems + +Next to observing a Linux system hang during the boot sequence, having a filesystem fail to mount is the greatest disappointment. If the filesystem resides on an SSD belonging to a paying customer, the matter is grave indeed. Surely a Linux filesystem that mounts with an old kernel version will still mount when the kernel is upgraded, right? Actually, "[it depends][22]." + +In 2020 an aggrieved Linux developer [complained on the kernel's mailing list][23]: + +> The kernel already accepted this as a valid mountable filesystem format, without a single error or warning of any kind, and has done so stably for years. . . . I was generally under the impression that mounting existing root filesystems fell under the scope of the kernel<->userspace or kernel<->existing-system boundary, as defined by what the kernel accepts and existing userspace has used successfully, and that upgrading the kernel should work with existing userspace and systems. + +But there was a catch: The filesystems that failed to mount were created with a proprietary tool that relied on a flag that was defined but not used by the kernel. The flag did not appear in Linux's API header files or procfs/sysfs but was instead an [implementation detail][24]. Therefore, interpreting the flag in userspace code meant relying on "[undefined behavior][25]," a phrase that will make software developers almost universally shudder. When the kernel community improved its internal testing and started making new consistency checks, the "[man 2 mount][26]" system call suddenly began rejecting filesystems with the proprietary format. Since the format creator was decidedly a software developer, he got little sympathy from kernel filesystem maintainers. + +![Construction sign reading crews working in trees][27] + +### Threading the kernel dmesg log + +Is the format of files in `/dev` guaranteed stable or not? The [command dmesg][28] reads from the file `/dev/kmsg`. In 2018, a developer [made output to dmesg threaded][29], enabling the kernel "to print a series of printk() messages to consoles without being disturbed by concurrent printk() from interrupts and/or other threads." Sounds excellent! Threading was made possible by adding a thread ID to each line of the `/dev/kmsg` output. Readers following closely will realize that the addition changed the ABI of `/dev/kmsg`, meaning that applications that parse that file needed to change too. Since many distros didn't compile their kernels with the new feature enabled, most users of `/bin/dmesg` won't have noticed, but the change broke the [GDB debugger][30]'s ability to read the kernel log. + +Assuredly, astute readers will think users of GDB are out of luck because debuggers are developer tools. Actually, no, since the code that needed to be updated to support the new `/dev/kmsg` format was "[in-tree][31]," meaning part of the kernel's own Git source repository. The failure of programs within a single repo to work together is just an out-and-out bug for any sane project, and a [patch that made GDB work with threaded /dev/kmsg][32] was merged. + +### What about BPF programs? + +[BPF][33] is a powerful tool to monitor and even configure the running kernel dynamically. BPF's original purpose was to support on-the-fly network configuration by allowing sysadmins to modify packet filters from the command line instantly. [Alexei Starovoitov and others greatly extended BPF][34], giving it the power to trace arbitrary kernel functions. Tracing is clearly the domain of developers rather than ordinary users, so it is certainly not subject to any ABI guarantee (although the [bpf() system call][35] has the same stability promise as any other). On the other hand, BPF programs that create new functionality present the possibility of "[replacing kernel modules as the de-facto means of extending the kernel][36]." Kernel modules make devices, filesystems, crypto, networks, and the like work, and therefore clearly are a facility on which the "just want it to work" user relies. The problem arises that BFP programs have not traditionally been "in-tree" as most open-source kernel modules are. A proposal in spring 2022 to [provide support to the vast array of human interface devices (HIDs) like mice and keyboards via tiny BPF programs][37] rather than patches to device drivers brought the issue into sharp focus. + +A rather heated discussion followed, but the issue was apparently settled by [Torvalds' comments at Open Source Summit][38]: + +> He specified if you break 'real user space tools, that normal (non-kernel developers) users use,' then you need to fix it, regardless of whether it is using eBPF or not. + +A consensus appears to be forming that developers who expect their BPF programs to withstand kernel updates [will need to submit them to an as-yet unspecified place in the kernel source repository][39]. Stay tuned to find out what policy the kernel community adopts regarding BPF and ABI stability. + +### Conclusion + +The kernel ABI stability guarantee applies to procfs, sysfs, and the system call interface, with important exceptions. When "in-tree" code or userspace applications are "broken" by kernel changes, the offending patches are typically quickly reverted. When proprietary code relies on kernel implementation details that are incidentally accessible from userspace, it is not protected and garners little sympathy when it breaks. When, as with Y2038, there is no way to avoid an ABI break, the transition is made as thoughtfully and methodically as possible. Newer features like BPF programs present as-yet-unanswered questions about where exactly the ABI-stability border lies. + +##### Acknowledgments + +Thanks to [Akkana Peck][40], [Sarah R. Newman][41], and [Luke S. Crawford][42] for their helpful comments on early versions of this material. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-abi + +作者:[Alison Chaiken][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/chaiken +[b]: https://github.com/lkxed +[1]: https://lkml.org/lkml/2018/12/22/232 +[2]: https://www.w3.org/TR/2014/REC-html5-20141028/ +[3]: https://www.kernel.org/doc/html/v6.0/admin-guide/abi-stable.html#the-kernel-syscall-interface +[4]: https://www.man7.org/linux/man-pages/dir_section_2.html +[5]: https://www.kernel.org/doc/html/v6.0/admin-guide/abi.html +[6]: https://opensource.com/article/19/3/virtual-filesystems-linux +[7]: https://gcc.gnu.org/ +[8]: https://clang.llvm.org/get_started.html +[9]: https://www.gnu.org/software/libc/ +[10]: https://www.man7.org/linux/man-pages/man5/elf.5.html +[11]: https://opensource.com/sites/default/files/2022-11/1cooperation.png +[12]: https://opensource.com/sites/default/files/2022-12/better_apt-file-find_ABI-boundary.png +[13]: https://en.wikipedia.org/wiki/Conway's_law +[14]: https://www.phoronix.com/news/MTc2Mjg +[15]: https://www.lfenergy.org/projects/super-advanced-meter-sam/ +[16]: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7506899/ +[17]: https://github.com/torvalds/linux/blob/master/include/uapi/linux/time_types.h +[18]: https://opensource.com/sites/default/files/2022-11/3speedometerrollingover_0.jpg +[19]: https://www.phoronix.com/scan.php?page=news_item&px=Glibc-More-Y2038-Work +[20]: https://groups.google.com/g/linux.debian.ports.arm/c/_KBFSz4YRZs +[21]: https://opensource.com/sites/default/files/2022-11/4stability.png +[22]: https://lwn.net/Articles/833696/ +[23]: https://lwn.net/ml/linux-kernel/20201006050306.GA8098@localhost/ +[24]: https://en.wikipedia.org/wiki/Encapsulation_(computer_programming) +[25]: https://en.wikipedia.org/wiki/Undefined_behavior +[26]: https://www.man7.org/linux/man-pages/man2/mount.2.html +[27]: https://opensource.com/sites/default/files/2022-11/5crewworkingintrees.jpg +[28]: https://www.man7.org/linux/man-pages/man1/dmesg.1.html +[29]: https://lkml.org/lkml/2018/11/24/180 +[30]: https://sourceware.org/gdb/current/onlinedocs/gdb/ +[31]: https://unix.stackexchange.com/questions/208638/linux-kernel-meaning-of-source-tree-in-tree-and-out-of-tree +[32]: https://lore.kernel.org/all/20191011142500.2339-1-joel.colledge@linbit.com/ +[33]: https://opensource.com/article/19/8/introduction-bpftrace +[34]: https://lwn.net/Articles/740157/ +[35]: https://www.man7.org/linux/man-pages/man2/bpf.2.html +[36]: https://lwn.net/Articles/909095/ +[37]: https://lwn.net/ml/ksummit-discuss/CAO-hwJJxCteD_BHZTeqQ1f7gWOHoj+05qP8bmFsRYVfMc_3FxQ@mail.gmail.com/ +[38]: https://lwn.net/ml/ksummit-discuss/20220621110514.6ef174d0@rorschach.local.home/ +[39]: https://lwn.net/ml/ksummit-discuss/20220616125128.68151432@gandalf.local.home/ +[40]: https://shallowsky.com/blog/ +[41]: https://www.socallinuxexpo.org/scale/19x/presentations/live-patching-down-trenches-view +[42]: https://www.amazon.com/Book-Xen-Practical-System-Administrator/dp/1593271867 From aaa0a0bf3a7073ebeca9f216c51fa0ddb4574dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:52:52 +0800 Subject: [PATCH 2241/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221206.5=20=E2=AD=90=EF=B8=8F=20How=20the=20Linux?= =?UTF-8?q?=20Worker=20file=20manager=20can=20work=20for=20you.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Linux Worker file manager can work for you.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/tech/20221206.5 ⭐️ How the Linux Worker file manager can work for you.md diff --git a/sources/tech/20221206.5 ⭐️ How the Linux Worker file manager can work for you.md b/sources/tech/20221206.5 ⭐️ How the Linux Worker file manager can work for you.md new file mode 100644 index 0000000000..5a8b4e8bea --- /dev/null +++ b/sources/tech/20221206.5 ⭐️ How the Linux Worker file manager can work for you.md @@ -0,0 +1,92 @@ +[#]: subject: "How the Linux Worker file manager can work for you" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-worker" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How the Linux Worker file manager can work for you +====== + +Computers are like filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, I'm taking a look at the Worker file manager for your Linux system. + +The Worker file manager dates back to 1999. That's the previous century, and a good seven years before I'd boot into Linux for the first time. Even so, it's still being updated today, but judiciously. Worker isn't an application where arbitrary changes get made, and using Worker today is a lot like using Worker 20 years ago, only better. + +![Image of the download directory in Worker.][1] + +### Install Worker on Linux + +Worker is written in C++ and uses only the basic X11 libraries for its GUI, plus a few extra libraries for extra functionality. You may be able to find Worker in your software repository. For example, on Debian, Elementary, Linux Mint, and similar: + +``` +$ sudo apt install worker +``` + +Worker is open source, so you can alternately just [download the source code][2] and [compile it yourself][3]. + +### Using Worker + +Worker is a two-panel, tabbed file manager. Most of the Worker window is occupied by these panels, listing the files and directories on your system. The panes function independently of one another, so what's displayed in the left pane has no relationship to what's in the right. That's by design. This isn't a column view of a hierarchy, these are two separate locations within a filesystem, and for that reason, you can easily copy or move a file from one pane to the other (which is, after all, probably half the reason you use a file manager at all.) + +To descend into a directory, double-click. To open a file in the default application defined for your system, double-click. All in all, there are a lot of intuitive and "obvious" interactions in Worker. It may look old-fashioned, but in the end, it's still just a file manager. What you might not be used to, though, is that Worker actions are largely based around the keyboard or on-screen buttons. To copy a file from one pane to the other, you can either press **F5** on your keyboard, or click the **F5 - Copy** button at the bottom of the Worker window. There are two panels, so the destination panel is always the one that isn't active. + +### Actions + +The most common actions are listed as buttons at the bottom of the Worker window. For example: + +- **$HOME** Changes active pane to your home directory +- **F4 - Edit**: Open a file in a text editor +- **F5 - Copy**: Copy active selection to inactive pane +- **F6 - Move**: Move active selection to inactive pane +- **F7 - New directory**: Make new directory in active pane +- **Duplicate**: Copy active selection to active pane + +You don't have to use the buttons, though. As the buttons indicate, there are many keyboard shortcuts defined, and even more capable of being assigned in your Working configuration. These are some of the actions I found myself using most: + +- **Tab**: Change active pane +- **Ctrl+Return**: Edit path of active pane +- **Home** and **End**: Jump to the first or last entry in a file list +- **Left Arrow**: Go to the parent directory +- **Right Arrow**: Go to the selected directory +- **Insert**: Change the selection state of the currently active entry +- **NumLock +**: Select all (like **Ctrl+A**) +- **NumLock -**: Select none +- **Return**: Double click +- **Alt+B**: Show bookmarks +- **Ctrl+Space**: Open contextual menu +- **Ctrl+S**: Filter by filename + +I was ambivalent about Worker until I started using the keyboard shortcuts. While it's nice that you can interact with Worker using a mouse, it's actually most effective as a viewport for the whims of your file management actions. Unlike controlling many graphical file managers with a keyboard, Worker's keyboard shortcuts are specific to very precise actions and fields. And because there are always two panes open, your actions always have a source and a target. + +It doesn't take long to get into the rhythm of Worker. First, you set up the location of the panes by pressing **Tab** to make one active, and **Ctrl+Return** to edit the path. Once you have each pane set, select the file you want to interact with, and press the keyboard shortcut for the action you want to invoke (**Return** to open, **F5** to copy, and so on.) It's a little like a visual version of a terminal. Admittedly, it's slower than a terminal, because it lacks tabbed completion, but if you're in the mood for visual confirmation of how you're moving about your system, Worker is a great option. + +### Buttons + +If you're not a fan of keyboard navigation, then there are plenty of options for using buttons instead. The buttons at the bottom of Worker are "banks" of buttons. Instead of showing all possible buttons, Worker displays just the most common actions. You can set how many buttons you want displayed (by default it's 4 rows, but I set it to 2). To "scroll" to the next bank of buttons, click the clock bar at the very bottom of the window. + +### Configuration + +Click the gear icon in the top left corner of the Worker window to view its configuration options. In the configuration window, you can adjust Worker's color scheme, fonts, mouse button actions, keyboard shortcuts, default applications, default actions for arbitrary file types, and much more. + +### Get to work + +Worker is a powerful file manager, with few dependencies and a streamlined code base. The features I've listed in this article are a fraction of what it's capable of doing. I haven't even mentioned Worker's Git integration, archive options, and interface for executing your own custom commands. What I'm trying to say is that Worker lives up to its name, so try it out and put it to work for you. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-worker + +作者:[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/2022-10/worker.directory.downloadview.png +[2]: http://www.boomerangsworld.de/cms/worker/download.html +[3]: https://opensource.com/article/21/11/compiling-code From 2e0fe766521e57550cbda7f1559966bee790edae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 00:53:18 +0800 Subject: [PATCH 2242/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221206.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?LibreOffice=20vs=20FreeOffice=20Comparing=20Popular=20Free=20Of?= =?UTF-8?q?fice=20Suites.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...FreeOffice Comparing Popular Free Office Suites.md | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 sources/tech/20221206.6 ⭐️⭐️ LibreOffice vs FreeOffice Comparing Popular Free Office Suites.md diff --git a/sources/tech/20221206.6 ⭐️⭐️ LibreOffice vs FreeOffice Comparing Popular Free Office Suites.md b/sources/tech/20221206.6 ⭐️⭐️ LibreOffice vs FreeOffice Comparing Popular Free Office Suites.md new file mode 100644 index 0000000000..fd33812b3e --- /dev/null +++ b/sources/tech/20221206.6 ⭐️⭐️ LibreOffice vs FreeOffice Comparing Popular Free Office Suites.md @@ -0,0 +1,172 @@ +[#]: subject: "LibreOffice vs FreeOffice: Comparing Popular Free Office Suites" +[#]: via: "https://itsfoss.com/libreoffice-vs-freeoffice/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +LibreOffice vs FreeOffice: Comparing Popular Free Office Suites +====== + +LibreOffice is undoubtedly an excellent open-source Microsoft Office alternative. It is backed by a vast open-source community and constantly evolves to keep up with modern office requirements. + +However, other options work well on Linux, so comparing tools should help you decide what you want. + +Here, I focus on comparing SoftMaker’s free offering, “FreeOffice” with LibreOffice, highlighting the differences you can expect when using them. + +### LibreOffice vs. FreeOffice: Background Information + +[LibreOffice][1] is an entirely free and open-source solution by The Document Foundation. It was created as a replacement for OpenOffice and evolved as a much more powerful alternative. + +[FreeOffice][2] is a free edition of [SoftMaker Office][3] with some feature restrictions. If you did not know, SoftMaker Office is a premium office suite available on multiple platforms, including Linux. + +_Note that FreeOffice is **not open-source**._ + +Now that you have a brief idea, let us talk about the distinctions. + +### Installation and Platform Availability + +If it is easy to install and available on multiple platforms, it is a good candidate for users. + +LibreOffice is available for **Linux, Windows, and macOS.** It is also available on mobile platforms such as [Collabora Office][4]. + +![libreoffice software center][5] + +You can easily install it through the software center, Flathub, and Snapcraft. + +FreeOffice is also available on **Linux, Windows, and macOS**. However, you cannot find it in your software center or Flathub/Snapcraft. + +You must head to its [official download page][6] and grab the **.deb/.rpm/.tgz** package to install it. + +![freeoffice linux download][7] + +A little inconvenient but doable. + +**You should not have an issue installing any of them. It is easy and usually hassle-free.** + +### User Experience + +![libreoffice home 2022][8] + +LibreOffice has improved its user experience over the years. It takes a simple and clean approach to make things aesthetically pleasing. + +Sure, it may not be a fancy user interface. But it keeps up with modern standards by a good margin. + +I believe that LibreOffice’s layout can use improvements, providing more clarity to the available tools/icons on the main screen. + +![libreoffice writer 2022][9] + +The screenshots above show how LibreOffice looks on Ubuntu 22.04 LTS. + +Unless you want a user interface similar to/close to Microsoft Office, it should be plenty good. + +SoftMaker’s FreeOffice gets an edge for its **variety of user interface options** and provides a modern user experience comparatively. + +![freeoffice layout][10] + +The user experience makes you feel right at home if you are a Windows-first user. Even if you are not a Windows user, it looks polished and provides a good experience for free. + +![freeoffice textmaker][11] + +### Features + +**LibreOffice gets an advantage here**, considering it provides a variety of programs and features for free. + +You get access to programs like: + +- Math (Scientific formula) +- Writer (Documents) +- Impress (Presentations) +- Draw (Drawings, Flow Charts, etc.) +- Calc (Spreadsheets) +- Base (Database) + +In contrast, FreeOffice suite is limited to: + +- Spreadsheets +- TextMaker +- Presentations + +Additionally, FreeOffice cuts back on features like Spell checking, synonym dictionaries, tabs, macros, and free technical support. You can only avail of these benefits with SoftMaker Office with a premium subscription. + +With LibreOffice, you can get free help from the community of fellow active users. And you get more features out of the box. + +**If you are an enterpris**e, you can opt for LibreOffice [professional support][12] that provides you with priority technical support and certification programs to provide your team with the necessary training to use/manage LibreOffice. + +In contrast, I could not find SoftMaker’s enterprise offering. You can use the same subscription to use it for your business but nothing special to support a range of devices at once. + +### File Format Compatibility + +![file format illustration][13] + +Both FreeOffice and LibreOffice handle Microsoft Office files (DOCS, XLSX, and PPTX) just fine. + +The differences arrive when it comes to the quality of compatibility. FreeOffice handles Microsoft Office files a tad bit better than LibreOffice, considering SoftMaker Office is famous for the same reason. + +Sure, LibreOffice has improved over the years, but some still like FreeOffice’s capability to open Microsoft Office files without much distortion. + +**Regarding the variety of file format extensions supported, FreeOffice falls short, and LibreOffice gets ahead with more file format support and additional programs like Math and Draw to handle them.** + +**Related Read**: [LibreOffice vs. OpenOffice: What’s the Difference?][14] + +### Updates + +![software update illustration][15] + +If you want a hassle-free experience and expect updates to fix any of the issues present with the current version, both provide maintenance software updates to take care of it. + +With SoftMaker’s FreeOffice, you get free service packs to fix bugs and issues. + +However, LibreOffice gets regular (and more frequent) updates comparatively. So, if something’s bothering you with FreeOffice, it may take a while to get it fixed. But LibreOffice should fix it quickly unless it is something big. + +### Licensing + +![license illustration][16] + +LibreOffice uses Mozilla Public License v2.0 as a free and open-source office suite. You can install it for any use case without restrictions on the number of installations/devices. + +FreeOffice is a proprietary solution. You can use it for personal or business use. However, you must register to get a free product key and continue using the product. + +You cannot use it for more than ten days without registering for a free license. Furthermore, with the same license, you can use it on up to 3 computers. + +### LibreOffice vs FreeOffice: What Should You Pick? + +LibreOffice is the ideal choice even if you do not care if it’s open source or not. You don’t have to register just to use it, it gets regular updates and it is present on all the major desktop operating systems. + +FreeOffice can be picked if you have an aversion to LibreOffice (some people don’t like its interface) and you need a slightly better MS Office compatibility with a good user experience. + +It is available free of cost but it is not open source. So that may also be a factor when choosing between FreeOffice and LibreOffice. Also keep in mind that FreeOffice has limited features compared to LibreOffice. You should keep that in mind as well. + +I believe I have given you enough points to + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/libreoffice-vs-freeoffice/ + +作者:[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://www.libreoffice.org +[2]: https://www.freeoffice.com/en/ +[3]: https://itsfoss.com/softmaker-office/ +[4]: https://www.collaboraoffice.com +[5]: https://itsfoss.com/wp-content/uploads/2022/07/libreoffice-software-center.png +[6]: https://www.freeoffice.com/en/download/applications +[7]: https://itsfoss.com/wp-content/uploads/2022/12/freeoffice-linux-download.jpg +[8]: https://itsfoss.com/wp-content/uploads/2022/12/libreoffice-home-2022.png +[9]: https://itsfoss.com/wp-content/uploads/2022/12/libreoffice-writer-2022.png +[10]: https://itsfoss.com/wp-content/uploads/2022/12/freeoffice-layout.png +[11]: https://itsfoss.com/wp-content/uploads/2022/12/freeoffice-textmaker.png +[12]: https://www.documentfoundation.org/professional-support/ +[13]: https://itsfoss.com/wp-content/uploads/2022/07/file-format-illustration.jpg +[14]: https://itsfoss.com/libreoffice-vs-openoffice/ +[15]: https://itsfoss.com/wp-content/uploads/2022/07/software-update-illustration.jpg +[16]: https://itsfoss.com/wp-content/uploads/2022/12/license-illustration.jpg From 081227ac5a6435e784d8287862e50398bbb1f748 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 7 Dec 2022 08:37:10 +0800 Subject: [PATCH 2243/3123] translated --- ...ally Indent Your Code in Visual Studio Code.md | 95 ------------------ ...ally Indent Your Code in Visual Studio Code.md | 96 +++++++++++++++++++ 2 files changed, 96 insertions(+), 95 deletions(-) delete mode 100644 sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md create mode 100644 translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md diff --git a/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md deleted file mode 100644 index b8df4cc8bc..0000000000 --- a/sources/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: "How to Automatically Indent Your Code in Visual Studio Code" -[#]: via: "https://itsfoss.com/auto-indent-vs-code/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Automatically Indent Your Code in Visual Studio Code -====== - -The indent in code refers to the space you have at the beginning of the code line. Like other code editors and IDEs, VS Code allows you to indent your code automatically. - -You can set tabs or spaces or whatever you prefer for the indentation. - -Sounds good? Let’s see how to do it. - -### Enable automatic indent in VS Code - -There are multiple ways you can achieve this. In this guide, I will show you three ways to indent your code in visual studio code automatically. - -#### Method 1: Configuring global user settings - -You can access the global user settings via the command pallet. Use `Ctrl + Shift + P` to open the command pallet and search for `Open User Settings` and hit enter: - -![access user setting from command pallet in vscode][1] - -It will open up the settings. From there, you will have to search for `Auto Indent` and choose **Full** as an indent option in **Editor: Auto Indent**: - -![enable auto indent from global user settings in vscode][2] - -And the automatic indent is enabled and applied to every opened file in VSCode. - -#### Method 2: Using linter or formatter for automatic indent in VS Code - -In this method, you will be required to add extensions such as a code formatter or linter to have the desired results. - -Linters will identify the errors in code, whereas formatters will only format your code to make it more readable. You can search for code formatters in the [VSCode marketplace][3] specific to your programming language. - -And here are some of my favorite code formatters and linters for widely popular languages: - -- [C/C++][4]: For C and C++ programming language. -- [PHP][5]: For PHP. -- [markdownlint][6]: For markdown files. -- [Python][7]: For Python programming language. -- [ESLint][8]: For JSON and javascript. -- [Beautify][9]: For javascript, JSON, CSS, Sass, and HTML. - -Once you are done adding a formatter for your preferred programming language, you can press `Ctrl _ Shift + I` to format the code. - -Similarly, you can use do the same using the command pallet. Press `Ctrl + Shift + P` to and search for **Format document**, and hit enter. - -![indent code in VSCode][10] - -#### Method 3: Enable auto indent while saving the file - -VSCode allows you to format your code while saving it with a little tweak. Let me show you how. - -Press `Ctrl + ,` and it will open the user settings prompt. From there, search for **Format On Save**: - -![enable format on save option][11] - - And from now on, your files will add an indent automatically when you save them. - -### Wrapping Up - -In this guide, I explained how you can add an indent automatically in VSCode. I would recommend using the second method for better flexibility. - -I hope you will find this guide helpful and if you have any queries or suggestions, let me know in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/auto-indent-vs-code/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/11/access-user-setting-from-command-pallet-in-vscode.png -[2]: https://itsfoss.com/wp-content/uploads/2022/11/enable-auto-indent-from-global-user-settings-in-vscode.png -[3]: https://marketplace.visualstudio.com/vscode -[4]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools -[5]: https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode -[6]: https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint -[7]: https://marketplace.visualstudio.com/items?itemName=ms-python.python -[8]: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint -[9]: https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify -[10]: https://itsfoss.com/wp-content/uploads/2022/11/format-document-.gif -[11]: https://itsfoss.com/wp-content/uploads/2022/11/enable-format-on-save-option.png diff --git a/translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md new file mode 100644 index 0000000000..72c5eb6e8d --- /dev/null +++ b/translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md @@ -0,0 +1,96 @@ +[#]: subject: "How to Automatically Indent Your Code in Visual Studio Code" +[#]: via: "https://itsfoss.com/auto-indent-vs-code/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Visual Studio 代码中自动缩进你的代码 +====== + +代码中的缩进指的是你在代码行的开头处的空格。像其他代码编辑器和 IDE 一样,VS Code 允许你自动缩进你的代码。 + +你可以设置制表符或空格或任何你喜欢的缩进方式。 + +听起来不错吧?让我们来看看怎么做。 + +### 在 VS Code 中启用自动缩进 + +你有多种方法可以实现这个目标。在本指南中,我将向你展示三种在 visual studio 代码中自动缩进代码的方法。 + +#### 方法 1:配置全局用户设置 + +你可以通过命令托盘访问全局用户设置。使用 `Ctrl + Shift + P` 来打开命令托盘,搜索 `Open User Settings` 并点击回车: + +![access user setting from command pallet in vscode][1] + +它将打开设置。在那里,你需要搜索 `Auto Indent`,并在 **Editor: Auto Indent** 中选择 **Full**: + +![enable auto indent from global user settings in vscode][2] + +接着自动缩进会被启用,并应用于 VSCode 中每个打开的文件。 + +#### 方法 2:在 VS Code 中使用 linter 或 formatter 进行自动缩进 + +在这种方法中,你需要添加扩展程序,如 code formatter 或者 linter,以获得理想的结果。 + +Linter 会识别代码中的错误,而 formatter 只对你的代码进行格式化,使其更具可读性。你可以在 [VSCode 市场][3]中搜索特定于你的编程语言的代码格式化器。 + +And here are some of my favorite code formatters and linters for widely popular languages: +这里有一些我最喜欢的广泛流行语言的代码格式化器和 linter: + +- [C/C++][4]:适用于 C 和 C++ 编程语言。 +- [PHP][5]:适用于 PHP。 +- [markdownlint][6]:适用于 markdown 文件。 +- [Python][7]:适用于 Python 编程语言。 +- [ESLint][8]:适用于 JSON 和 javascript。 +- [Beautify][9]: 适用于 javascript、JSON、CSS、Sass 和 HTML。 + +当你完成了为你喜欢的编程语言添加 formatter,你可以按 `Ctrl + Shift + I` 来格式化代码。 + +同样地,你也可以使用命令托盘做同样的事情。按 `Ctrl + Shift + P`,并搜索 **Format document**,然后点击回车。 + +![indent code in VSCode][10] + +#### 方法 3:在保存文件时启用自动缩进功能 + +VSCode 允许你在保存你的代码时,通过一个小小的调整来格式化它。让我告诉你怎么做。 + +按 `Ctrl + ,`,它将打开用户设置提示。在那里,搜索 **Format On Save**。 + +![enable format on save option][11] + +从现在开始,当你保存文件时,你的文件将自动添加缩进。 + +### 总结 + +在本指南中,我解释了如何在 VSCode 中自动添加缩进。我建议使用第二种方法以获得更好的灵活性。 + +我希望你会发现本指南对你有帮助,如果你有任何疑问或建议,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/auto-indent-vs-code/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/access-user-setting-from-command-pallet-in-vscode.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/enable-auto-indent-from-global-user-settings-in-vscode.png +[3]: https://marketplace.visualstudio.com/vscode +[4]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools +[5]: https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode +[6]: https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint +[7]: https://marketplace.visualstudio.com/items?itemName=ms-python.python +[8]: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint +[9]: https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify +[10]: https://itsfoss.com/wp-content/uploads/2022/11/format-document-.gif +[11]: https://itsfoss.com/wp-content/uploads/2022/11/enable-format-on-save-option.png From 41b8508d91ae55a9b8861b0a8110c0f591b95ef6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 7 Dec 2022 08:44:57 +0800 Subject: [PATCH 2244/3123] translating --- ....3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md index b17a2b4718..bbdbaef307 100644 --- a/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md +++ b/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-nemo" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e97b777bf25f72d7a34e6bef86d7f7f47948eb6e Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 7 Dec 2022 10:32:15 +0800 Subject: [PATCH 2245/3123] translated --- ...️ Learn Git 3 commands to level up your skill.md | 132 --------------- ...️ Learn Git 3 commands to level up your skill.md | 155 ++++++++++++++++++ 2 files changed, 155 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md create mode 100644 translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md diff --git a/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md deleted file mode 100644 index fa23d27aa3..0000000000 --- a/sources/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "Learn Git: 3 commands to level up your skill" -[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" -[#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn Git: 3 commands to level up your skill -====== - -When I talk to people about Git, almost everyone has a strong reaction to [the `git rebase` command][1]. This command has caused many people to change directory, remove the repository, and just re-clone to start over. I think this comes from misconceptions about how branching actually works, a pretty terrible default interface, and some merge conflicts mucking things up. - -### Git squash - -If you've ever made a lot of commits locally and wish there was a way to smash them all down into a single commit, you're in luck. Git calls this concept "squashing commits." I discovered the concept while working on documentation. It took me over a dozen commits to finally get a bit of markdown just right. The repo maintainer didn't want to see all my attempts cluttering up the project's history, so I was told to "just git squash your commits." - -Squashing sounded like a solid plan. There was just one issue. I didn't know how to do it. As someone new to Git, I did what anyone would do. I consulted the manual for `squash` and immediately hit a snag: - -``` -$ man git-squash> No manual entry for git-squash -``` - -It turns out I wasn't being told to run a Git command called `squash`, I was being asked to [run an entirely separate command][2] that would, in the end, combine all my commits into one. This is a common scenario: someone who has been using a tool for a while uses jargon or refers to a concept, which to them is absolutely clear, but isn't obvious to someone new to the tech. - -Conceptually it would look like this: - -![Image of 6 bowls of different colored spices, and an arrow pointing to the second image of all the spices blended into one bowl.][3] - -I'm laying it out this way to encourage you that you are definitely not the first or last person that would be confused by Git or someone talking about Git. It's OK to ask for clarification and for help finding the right documentation. What that docs maintainer actually meant was, "use Git rebase to squash the commits into one." - -### Git rebase - -The git rebase command removes a chain of commits away from its first parent and places it at the end of another chain of commits, combining both chains of commits into one long chain, instead of two parallel chains. I realize that's a dense statement. - -If you think back to how Git commits are chained together, you can see that any branch aside from your initial `main` branch has a parent commit that serves as the "base" of that chain. Rebasing is the act of making the last commit in another chain the new "base" commit for a specified branch. - -You might already be more familiar with Git merge. Take a look at how the [git-scm.com][4] site explains the difference: - -![Image of Git merge versus git rebase shown as numbered bubbles.][5] - -In this example merge, Git preserves the chain of commits shown in the image as C4, which has a parent of C2, when combining the changes in C3 to make a whole new commit, C5. The branch pointer for "experiment" still exists and still points at C4. - -The rebase in this example shows a similar situation of C4 first existing as a separate branch with a parent of C2. But then, instead of merging with the code of C3, it makes C3 the new parent of C4, resulting in a new commit called C4. Notably, the branch pointer "main" has not moved yet. To make Git move the pointer to the end of the chain, currently pointed at by "experiment", you also need to perform a merge. - -Rebase is not a replacement for merge. It's a tool for making cleaner histories to be used in conjunction with merge. - -#### Interactive rebase is your best friend! - -One of the scariest parts of performing a rebase from the command line is the horrifying interface. Running the command `git rebase ` either works or blows up. There's not a lot of feedback or way to ensure it is doing what you precisely want. Fortunately, the rebase command and many other Git commands have an interactive mode, which you can invoke with the parameter `-i' or`–interactive`. - -![Image of the Git lens interactive Rebase tool in VS Code.][6] - -When invoking interactive mode, rebase transforms from a terrifying black box into a menu of options that let you do several things to the chain of commits you are rebasing. For every commit, you can choose to: - -- Pick: Include it as is -- Reword: Rewrite the commit message -- Edit: Make further changes to the files in the commit before the rebase finishes -- Squash: Smash multiple commits into one commit, keeping all commit messages -- Fixup: Smash multiple commits into one commit, but just keep the last commit message -- Drop: Discard this commit - -I personally like the way that the open source [GitLens extension for VS Code][7] lays out the options with dropdown picklists, but Git lets you assign these options using any editor. For text-only tools like Emacs or Vim, you need to type out the selection rather than pick from a menu, but the end result is still the same. - -#### When to rebase - -Knowing _when_ to rebase is as important as knowing _how_ to rebase. In truth, if you don't care about your repos histories being a bit messy, then you might never perform a rebase. But if you do want to make cleaner histories and have fewer commits cluttering up your graph view, then there is one clear rule of thumb to always keep in mind: - -> "Do not rebase commits that exist outside your repository and that people may have based work on." - -If you follow that guideline, you'll be fine. - -Simply put, if you make a local branch to do your work, feel free to rebase it all you want. But as soon as that branch is pushed, do not rebase it. It is really up to you. - -Hopefully you found this helpful in understanding how the git rebase command works and can use it with more confidence. As with any Git command, practice is the only real way to learn and understand what is going on. I encourage you to brave and experiment with interactive rebase! - -### Git cherry-pick - -Most developers have committed work only to realize they have been working on the wrong branch. Ideally, they could just pick up that one commit and move it over to the right branch. That is exactly what `git cherry-pick` does. - -Cherry-picking is the art of rebasing single commits. This was so common of a pattern that they gave it its own command. - -![Image of a woman picking a cherry from one tree and putting on another tree.][8] - -To perform a cherry pick, you simply tell Git the ID of the commit you want to move to "here", where HEAD is pointing: - -``` -$ git cherry-pick -``` - -Should something go wrong, it's straightforward to recover, thanks to the error messages that Git provides: - -``` -$ git cherry-pick -i 2bc01cd -Auto-merging README.md -CONFLICT (content): Merge conflict in README.md -error: could not apply 2bc01cd… added EOF lines -hint: After resolving the conflicts, mark them with -hint: "git add/rm ", then run -hint: "git cherry-pick --continue". -hint: You can instead skip this commit with "git cherry-pick --skip". -hint: To abort and get back to the state before "git cherry-pick", -hint: run "git cherry-pick --abort". -$ git cherry-pick --abort -``` - -### Git more power - -The `git rebase` command is a powerful part of the Git utility. It's probably best to practice using it with a test repo before you have to use it under stress, but once you're familiar with its concepts and workflow, you can help provide a clear history of a repository's development. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/advanced-git-commands - -作者:[Dwayne McDaniel][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/dwaynemcdaniel -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/20/4/git-rebase-i -[2]: https://opensource.com/article/22/4/manage-git-commits-rebase-i-command -[3]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.spices.png -[4]: http://git-scm.com -[5]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.gitmerger.png -[6]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.GitLens%20Interactive%20Rebase%20tool%20in%20VS%20Code.png -[7]: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens -[8]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.cherrypicking.png diff --git a/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md new file mode 100644 index 0000000000..c7d65c0a8f --- /dev/null +++ b/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md @@ -0,0 +1,155 @@ +[#]: subject: "Learn Git: 3 commands to level up your skill" +[#]: via: "https://opensource.com/article/22/11/advanced-git-commands" +[#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +学习 3 个 Git 命令来提高你的能力 +====== + +当我与别人谈到 Git 时,几乎每个人都对 [`git rebase` 命令][1] 有强烈的印象,这个命令让许多人遇到了问题,而不得不更改目录、删除仓库、然后再重新克隆一个仓库。我认为这是因为他们误解了分支是如何工作,遇到了一个非常糟糕的默认界面,并搞砸了一些合并冲突。 + +### 怎么找不到 `Git squash` 命令? + +如果你曾在本地的仓库提交过很多次,并希望能把这些提交都压缩为 **一个提交** commit ,接下来,我们就来介绍能用什么 Git 命令达到这个目的。Git 称这个概念为 “**压缩提交**” squash commits 。我在处理文档时发现了这个概念:我花了十几个提交才修改好我的文档,但是仓库的维护者不想看到我所有的提交,以免都扰乱了该项目的历史,所以我被告知“需要压缩你的提交”。 + +**压缩提交**听起来是一个很有用的方法。但是只有一个问题:我不知道该怎么做。作为 Git 的新手,我做了任何人会做的事情:我查阅了 `git-squash` 的手册,但我立即遇到了障碍: + +``` +$ man git-squash +> No manual entry for git-squash +``` + +我发现没有一个名为 `squash` 的 Git 命令,而是被要求 [运行一个完全独立的命令:`git-rebase` 命令][2],该命令能将我的所有提交最终合并为一个提交。 + +我知道我碰到一个常见的情形:已经使用工具一段时间的人使用了**行话**或引用了一个概念,这个概念对他们来说是非常清楚的,但对新手来说就不能明白了。从概念上讲,这个情况看起来是这样的: + +![Image of 6 bowls of different colored spices, and an arrow pointing to the second image of all the spices blended into one bowl.][3] + +我这样说是为了鼓励你,你绝对不是第一个或最后一个 _被 Git 或谈论 Git 的人_ 弄糊涂的人。你可以要求对方说明白他的意见,并帮助你应该使用的正确命令。仓库的维护者实际上的意思是,“使用 **`Git rebase` 命令**,将很多提交压缩成一个提交”。 + +### 现在就来学习 `Git rebase` 命令吧 + +`git rebase` 命令会从其第一个父级中删除一个提交链,并将其放置在另一个提交链的末尾,将两个提交链组合成一个长链,而不是两个并行链。我意识到这是一个很复杂的定义。 + +回想一下 Git 提交是如何链接在一起的,你可以看到,除了初始的 `main` 分支外,任何分支都有一个 父提交 parent commit 作为该链的 “基础” base **变基** rebase 能使另一个链中的最后一个提交成为指定分支的新 “基础”提交 base commit 。 + +在 Git 中整合来自不同分支的修改主要有两种方法:**merge** 以及 **rebase**,你可能更熟悉 `Git merge` 命令。接下来,就来看看 [git-scm.com] 是如何解释 `Git merge` 和 `Git rebase` 的差异: + +![Image of Git merge versus git rebase shown as numbered bubbles.][5] + +在 **merge** 示例中,它会把两个分支的最新快照(C3 和 C4)以及二者最近的共同祖先(C2)进行三方合并,合并的结果是生成一个新的快照(C5)。“experiment”的分支指针仍然存在,仍然指向 C4。 + +在 **rebase** 示例中,它提取在 C4 中引入的补丁和修改,然后在 C3 的基础上应用一次,使 C3 成为 C4 的新父级,并产生了一个名为 C4' 的新提交。 + +(LCTT 译注:具体的命令如下: +``` +$ git checkout experiment +$ git rebase main +First, rewinding head to replay your work on top of it... +Applying: added staged command +``` +它的原理是首先找到这两个分支(即当前分支 experiment、变基操作的目标基底分支 main)的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用。) + +值得注意的是,分支指针“main”没有移动。要让 Git 将指针移动到链的末尾(由“experiment”指向),你还需要执行合并。 + +(LCTT 译注:具体的命令如下: +``` +$ git checkout main +$ git merge experiment +``` +![master 分支的快进合并](https://www.progit.cn/images/basic-rebase-4.png) + +此时,C4' 指向的快照就和上面使用 merge 命令的例子中 C5 指向的快照一模一样了。) + +`Git rebase` 并不能替代 `Git merge`。`Git rebase` 是一种用于制作更清晰的历史记录,以与 `Git merge` 结合使用的工具。 + +(LCTT 译注:使用 `Git rebase` 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。) + +#### 交互式重基 Interactive rebase 能给你一个更友好的界面! + +从命令行执行 `Git rebase` 命令,最可怕的地方在于它**糟糕的默认界面**。运行命令 `git rebase ` 要么有效,要么会变得一团糟,因为它没有太多的反馈或方法来确保它做你想做的事情。幸运的是,`Git rebase` 命令和许多其他 Git 命令一样,具有 **交互模式** interactive mode ,你可以使用参数 `-i` 或者 `-interactive` 来使用交互模式。 + +![Image of the Git lens interactive Rebase tool in VS Code.][6] + +在使用交互式模式时,`Git rebase` 会从一个糟糕的黑框界面转换为一个**选项菜单**,允许你选择对正在重基的提交链所做的事。对于每个提交,你可以**选择**: + +- Pick:按原样包含 +- Reword:重写提交消息 +- Edit:在重基完成之前对提交中的文件进行进一步更改 +- Squash:将多个提交压缩成一个提交,保留所有提交消息 +- Fixup:将多个提交压缩成一个提交,但只保留最后一个提交消息 +- Drop:丢弃此提交 + +就我个人而言,我更喜欢 [VS Code 的开源 GitLens 扩展][7] 使用下拉选择列表布局选项的方式,但 Git 允许你使用任何编辑器选择这些选项。对于 Emacs 或 Vim 等纯文本工具,你需要键入选择,而不是从菜单中选择,但最终结果仍然是相同的。 + +#### 何时做 `Git rebase` + +知道 _何时_ 做重基与知道 _如何_ 做重基同样重要。事实上,如果你不在乎你的仓库历史提交消息有点混乱的话,那么你可以永远都不使用 `Git rebase` 命令。但是,如果你想要更干净的历史提交消息,并且想要更少扰乱你的图形视图的提交,那么当你使用 `Git rebase` 命令时,有一个重要的**经验法则**需要时刻记住: + +> “不要重基你存储库以外的以及人们可能要用的提交。” Do not rebase commits that exist outside your repository and that people may have based work on. + +如果你遵循该准则,不会发生什么大问题的。 + +简而言之,如果你让一个**本地分支**来完成你的工作,重基是没有问题的。但一旦该分支被 推送 push 了,就不要再重基该分支了。当然,你想要怎么做完全取决于你自己。 + +希望你会认为上述内容有助于你理解 `Git rebase` 命令的工作原理,并能让你更有信心地使用它。与任何 Git 命令一样,**练习**是学习和理解怎么做的唯一方法。我鼓励你勇敢地尝试 交互式重基 interactive rebase `git rebase -i `! + +### 接下来学习 `Git cherry-pick` 命令吧 + +大多数开发人员将修改提交到某一分支上,但是之后发现他们一直**提交到了错误的分支上**。理想情况下,他们可以拿起那个提交,然后把它移到正确的分支,这正是 `git cherry-pick` 命令的作用。 + +`git cherry-pick` 命令利用了重基单个提交的方法。这一用法非常常见,以至于有了它自己的命令。 + +![Image of a woman picking a cherry from one tree and putting on another tree.][8] + +要使用 `git cherry-pick`,你只需告诉 Git 你要移动到“那个分支”的提交 ID(由 HEAD 指向): + +``` +$ git cherry-pick +``` + +如果出现问题,你可以根据 Git 提供的错误消息,来进行恢复: + +``` +$ git cherry-pick -i 2bc01cd +Auto-merging README.md +CONFLICT (content): Merge conflict in README.md +error: could not apply 2bc01cd… added EOF lines +hint: After resolving the conflicts, mark them with +hint: "git add/rm ", then run +hint: "git cherry-pick --continue". +hint: You can instead skip this commit with "git cherry-pick --skip". +hint: To abort and get back to the state before "git cherry-pick", +hint: run "git cherry-pick --abort". +$ git cherry-pick --abort +``` + +### Git more power + +`git rebase` 命令是 Git 实用程序强大的地方之一。你最好在测试仓库中先练习一下怎么使用,一旦你熟悉了它的概念和工作流程,你就可以给仓库一个清晰历史消息记录了。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/advanced-git-commands + +作者:[Dwayne McDaniel][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dwaynemcdaniel +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/4/git-rebase-i +[2]: https://opensource.com/article/22/4/manage-git-commits-rebase-i-command +[3]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.spices.png +[4]: http://git-scm.com +[5]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.gitmerger.png +[6]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.GitLens%20Interactive%20Rebase%20tool%20in%20VS%20Code.png +[7]: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens +[8]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.cherrypicking.png From 7b9df658667923a6941956a67808e7147bc84db5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 7 Dec 2022 13:39:13 +0800 Subject: [PATCH 2246/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 翻译的很好,很用心! --- ...️ Learn Git 3 commands to level up your skill.md | 87 ++++++++++--------- 1 file changed, 48 insertions(+), 39 deletions(-) diff --git a/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md index c7d65c0a8f..94dbb6f291 100644 --- a/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md +++ b/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md @@ -3,110 +3,118 @@ [#]: author: "Dwayne McDaniel https://opensource.com/users/dwaynemcdaniel" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -学习 3 个 Git 命令来提高你的能力 +掌握强大的 Git 变基命令 ====== -当我与别人谈到 Git 时,几乎每个人都对 [`git rebase` 命令][1] 有强烈的印象,这个命令让许多人遇到了问题,而不得不更改目录、删除仓库、然后再重新克隆一个仓库。我认为这是因为他们误解了分支是如何工作,遇到了一个非常糟糕的默认界面,并搞砸了一些合并冲突。 +![][0] -### 怎么找不到 `Git squash` 命令? +> 学习如何使用 Git 来压扁、变基和精选。 -如果你曾在本地的仓库提交过很多次,并希望能把这些提交都压缩为 **一个提交** commit ,接下来,我们就来介绍能用什么 Git 命令达到这个目的。Git 称这个概念为 “**压缩提交**” squash commits 。我在处理文档时发现了这个概念:我花了十几个提交才修改好我的文档,但是仓库的维护者不想看到我所有的提交,以免都扰乱了该项目的历史,所以我被告知“需要压缩你的提交”。 +当我与别人谈到 Git 时,几乎每个人都对 [git rebase 命令][1] 有强烈的印象,这个命令让许多人遇到了问题,而不得不更改目录、删除仓库、然后再重新克隆一个仓库。我认为这是因为他们误解了分支是如何工作,遇到了一个非常糟糕的默认界面,还有一些合并冲突把事情搞得一团糟。 -**压缩提交**听起来是一个很有用的方法。但是只有一个问题:我不知道该怎么做。作为 Git 的新手,我做了任何人会做的事情:我查阅了 `git-squash` 的手册,但我立即遇到了障碍: +### 怎么找不到 git squash 命令? + +如果你曾在本地的仓库提交过很多次,并希望能把这些提交都合并为一个提交,接下来,我们就来介绍能用什么 Git 命令达到这个目的。Git 称这个概念为 “压扁提交 squash commits ”。我在编写文档时发现了这个概念:我花了十几个提交才修改好我的 Markdown 文档,但是仓库的维护者不想看到我的所有尝试,以免扰乱了该项目的历史,所以我被告知“需要压扁你的提交”。 + +**压扁提交**听起来是一个很有用的方法。但是只有一个问题:我不知道该怎么做。作为 Git 的新手,我做了任何人会做的事情:我去查阅 `git-squash` 的手册,但我立即遇到了阻碍: ``` $ man git-squash > No manual entry for git-squash ``` -我发现没有一个名为 `squash` 的 Git 命令,而是被要求 [运行一个完全独立的命令:`git-rebase` 命令][2],该命令能将我的所有提交最终合并为一个提交。 +我发现没有一个名为 `squash` 的 Git 命令,而是被要求 [运行一个完全独立的命令:git rebase 命令][2],该命令能将我的所有提交最终合并为一个提交。 我知道我碰到一个常见的情形:已经使用工具一段时间的人使用了**行话**或引用了一个概念,这个概念对他们来说是非常清楚的,但对新手来说就不能明白了。从概念上讲,这个情况看起来是这样的: ![Image of 6 bowls of different colored spices, and an arrow pointing to the second image of all the spices blended into one bowl.][3] -我这样说是为了鼓励你,你绝对不是第一个或最后一个 _被 Git 或谈论 Git 的人_ 弄糊涂的人。你可以要求对方说明白他的意见,并帮助你应该使用的正确命令。仓库的维护者实际上的意思是,“使用 **`Git rebase` 命令**,将很多提交压缩成一个提交”。 +我这样说是为了鼓励你,你绝对不是第一个或最后一个 _被 Git 或谈论 Git 的人_ 弄糊涂的人。你可以要求对方说明白他的意见,并帮助你应该使用的正确命令。仓库的维护者实际上的意思是,“使用 `git rebase` 命令**,将很多提交压扁成一个提交”。 -### 现在就来学习 `Git rebase` 命令吧 +### 现在就来学习 git rebase 命令吧 -`git rebase` 命令会从其第一个父级中删除一个提交链,并将其放置在另一个提交链的末尾,将两个提交链组合成一个长链,而不是两个并行链。我意识到这是一个很复杂的定义。 +`git rebase` 命令会将一个提交链从其第一个父级中删除,并将其放置在另一个提交链的末尾,将两个提交链组合成一个长链,而不是两个并行链。我意识到这是一个很复杂的定义。 -回想一下 Git 提交是如何链接在一起的,你可以看到,除了初始的 `main` 分支外,任何分支都有一个 父提交 parent commit 作为该链的 “基础” base **变基** rebase 能使另一个链中的最后一个提交成为指定分支的新 “基础”提交 base commit 。 +回想一下 Git 的提交是如何链接在一起的,你可以看到,除了初始的 `main`(或 `master`)分支外,任何分支都有一个 父提交 parent commit 作为该链的 “基础 base ”。“变基 rebase ” 能使另一个链中的最后一个提交成为指定分支的新 “基础提交 base commit ”。 -在 Git 中整合来自不同分支的修改主要有两种方法:**merge** 以及 **rebase**,你可能更熟悉 `Git merge` 命令。接下来,就来看看 [git-scm.com] 是如何解释 `Git merge` 和 `Git rebase` 的差异: +在 Git 中整合来自不同分支的修改主要有两种方法:合并merge 以及 变基rebase,你可能更熟悉 `git merge` 命令。接下来,就来看看 [git-scm.com] 是如何解释 `git merge` 和 `git rebase` 的差异: ![Image of Git merge versus git rebase shown as numbered bubbles.][5] -在 **merge** 示例中,它会把两个分支的最新快照(C3 和 C4)以及二者最近的共同祖先(C2)进行三方合并,合并的结果是生成一个新的快照(C5)。“experiment”的分支指针仍然存在,仍然指向 C4。 +在合并示例中,它会把两个分支的最新快照(`C3` 和 `C4`)以及二者最近的共同祖先(`C2`)进行三方合并,合并的结果是生成一个新的快照(`C5`)。`experiment` 的分支指针仍然存在,仍然指向 `C4`。 -在 **rebase** 示例中,它提取在 C4 中引入的补丁和修改,然后在 C3 的基础上应用一次,使 C3 成为 C4 的新父级,并产生了一个名为 C4' 的新提交。 +在变基示例中,它提取在 `C4` 中引入的补丁和修改,然后在 `C3` 的基础上应用一次,使 `C3` 成为 `C4` 的新父级,并产生了一个名为 `C4'` 的新提交。 (LCTT 译注:具体的命令如下: + ``` $ git checkout experiment $ git rebase main First, rewinding head to replay your work on top of it... Applying: added staged command ``` -它的原理是首先找到这两个分支(即当前分支 experiment、变基操作的目标基底分支 main)的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用。) -值得注意的是,分支指针“main”没有移动。要让 Git 将指针移动到链的末尾(由“experiment”指向),你还需要执行合并。 +它的原理是首先找到这两个分支 —— 即当前分支 `experiment`、变基操作的目标基底分支 `main` —— 的最近共同祖先 `C2`,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将当前分支指向目标基底 `C3`,最后以此将之前另存为临时文件的修改依序应用。) + +值得注意的是,分支指针 `main` 没有移动。要让 Git 将指针移动到链的末尾(由`experiment` 指向),你还需要执行合并。 (LCTT 译注:具体的命令如下: + ``` $ git checkout main $ git merge experiment ``` + ![master 分支的快进合并](https://www.progit.cn/images/basic-rebase-4.png) -此时,C4' 指向的快照就和上面使用 merge 命令的例子中 C5 指向的快照一模一样了。) +此时,`C4'` 指向的快照就和上面使用 `merge` 命令的例子中 `C5` 指向的快照一模一样了。) -`Git rebase` 并不能替代 `Git merge`。`Git rebase` 是一种用于制作更清晰的历史记录,以与 `Git merge` 结合使用的工具。 +`git rebase` 并不能替代 `git merge`。`git rebase` 是一种用于制作更清晰的历史记录,以与 `git merge` 结合使用的工具。 -(LCTT 译注:使用 `Git rebase` 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。) +(LCTT 译注:使用 `git rebase` 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。) -#### 交互式重基 Interactive rebase 能给你一个更友好的界面! +#### 交互式变基能给你一个更友好的界面! -从命令行执行 `Git rebase` 命令,最可怕的地方在于它**糟糕的默认界面**。运行命令 `git rebase ` 要么有效,要么会变得一团糟,因为它没有太多的反馈或方法来确保它做你想做的事情。幸运的是,`Git rebase` 命令和许多其他 Git 命令一样,具有 **交互模式** interactive mode ,你可以使用参数 `-i` 或者 `-interactive` 来使用交互模式。 +从命令行执行 `git rebase` 命令,最可怕的地方在于它**糟糕的默认界面**。运行命令 `git rebase ` 要么有效,要么会变得一团糟,因为它没有太多的反馈或方法来确保它做你想做的事情。幸运的是,`git rebase` 命令和许多其他 Git 命令一样,具有 交互模式 interactive mode ,你可以使用参数 `-i` 或者 `-interactive` 来使用交互模式。 ![Image of the Git lens interactive Rebase tool in VS Code.][6] -在使用交互式模式时,`Git rebase` 会从一个糟糕的黑框界面转换为一个**选项菜单**,允许你选择对正在重基的提交链所做的事。对于每个提交,你可以**选择**: +在使用交互式模式时,`git rebase` 会从一个糟糕的黑框界面转换为一个**选项菜单**,允许你选择对正在变基的提交链所做的事。对于每个提交,你可以**选择**: -- Pick:按原样包含 -- Reword:重写提交消息 -- Edit:在重基完成之前对提交中的文件进行进一步更改 -- Squash:将多个提交压缩成一个提交,保留所有提交消息 -- Fixup:将多个提交压缩成一个提交,但只保留最后一个提交消息 -- Drop:丢弃此提交 +- 选用pick:按原样包含 +- 重写reword:重写提交消息 +- 编写edit:在变基完成之前对提交中的文件进行进一步更改 +- 压扁squash:将多个提交压缩成一个提交,保留所有提交消息 +- 修理fixup:将多个提交压缩成一个提交,但只保留最后一个提交消息 +- 丢弃drop:丢弃此提交 就我个人而言,我更喜欢 [VS Code 的开源 GitLens 扩展][7] 使用下拉选择列表布局选项的方式,但 Git 允许你使用任何编辑器选择这些选项。对于 Emacs 或 Vim 等纯文本工具,你需要键入选择,而不是从菜单中选择,但最终结果仍然是相同的。 -#### 何时做 `Git rebase` +#### 何时做变基 -知道 _何时_ 做重基与知道 _如何_ 做重基同样重要。事实上,如果你不在乎你的仓库历史提交消息有点混乱的话,那么你可以永远都不使用 `Git rebase` 命令。但是,如果你想要更干净的历史提交消息,并且想要更少扰乱你的图形视图的提交,那么当你使用 `Git rebase` 命令时,有一个重要的**经验法则**需要时刻记住: +知道 _何时_ 做变基与知道 _如何_ 做变基同样重要。事实上,如果你不在乎你的仓库历史提交消息有点混乱的话,那么你可以永远都不使用 `git rebase` 命令。但是,如果你想要更干净的历史提交消息,并且想要更少扰乱你的图形视图的提交,那么当你使用 `git rebase` 命令时,有一个重要的**经验法则**需要时刻记住: -> “不要重基你存储库以外的以及人们可能要用的提交。” Do not rebase commits that exist outside your repository and that people may have based work on. +> “不要变基你存储库以外的的提交,那些提交可能是别人工作的基础。” 如果你遵循该准则,不会发生什么大问题的。 -简而言之,如果你让一个**本地分支**来完成你的工作,重基是没有问题的。但一旦该分支被 推送 push 了,就不要再重基该分支了。当然,你想要怎么做完全取决于你自己。 +简而言之,如果你让一个**本地分支**来完成你的工作,变基是没有问题的。但一旦该分支被 推送 push 了,就不要再变基该分支了。当然,你想要怎么做完全取决于你自己。 -希望你会认为上述内容有助于你理解 `Git rebase` 命令的工作原理,并能让你更有信心地使用它。与任何 Git 命令一样,**练习**是学习和理解怎么做的唯一方法。我鼓励你勇敢地尝试 交互式重基 interactive rebase `git rebase -i `! +希望你会认为上述内容有助于你理解 `git rebase` 命令的工作原理,并能让你更有信心地使用它。与任何 Git 命令一样,**练习**是学习和理解怎么做的唯一方法。我鼓励你勇敢地尝试 交互式变基 interactive rebase `git rebase -i `! -### 接下来学习 `Git cherry-pick` 命令吧 +### 接下来学习 Git cherry-pick 命令吧 -大多数开发人员将修改提交到某一分支上,但是之后发现他们一直**提交到了错误的分支上**。理想情况下,他们可以拿起那个提交,然后把它移到正确的分支,这正是 `git cherry-pick` 命令的作用。 +大多数开发人员将修改提交到某一分支上,但是之后发现他们一直**提交到了错误的分支上**。理想情况下,他们可以拿走那个提交,然后把它移到正确的分支,这正是 `git cherry-pick` 命令的作用。 -`git cherry-pick` 命令利用了重基单个提交的方法。这一用法非常常见,以至于有了它自己的命令。 +`git cherry-pick` 命令利用了变基单个提交的方法。这一用法非常常见,以至于有了它自己的命令。 ![Image of a woman picking a cherry from one tree and putting on another tree.][8] -要使用 `git cherry-pick`,你只需告诉 Git 你要移动到“那个分支”的提交 ID(由 HEAD 指向): +要使用 `git cherry-pick`,你只需告诉 Git 你要移动到“那个分支”的提交 ID(由 `HEAD` 指向): ``` $ git cherry-pick @@ -128,7 +136,7 @@ hint: run "git cherry-pick --abort". $ git cherry-pick --abort ``` -### Git more power +### 让 Git 更强大 `git rebase` 命令是 Git 实用程序强大的地方之一。你最好在测试仓库中先练习一下怎么使用,一旦你熟悉了它的概念和工作流程,你就可以给仓库一个清晰历史消息记录了。 @@ -139,7 +147,7 @@ via: https://opensource.com/article/22/11/advanced-git-commands 作者:[Dwayne McDaniel][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -153,3 +161,4 @@ via: https://opensource.com/article/22/11/advanced-git-commands [6]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.GitLens%20Interactive%20Rebase%20tool%20in%20VS%20Code.png [7]: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens [8]: https://opensource.com/sites/default/files/2022-11/gitbeyond2.cherrypicking.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/07/133637yq2526zsp7f1t7a2.jpg \ No newline at end of file From 3fa78169fd99ed06f27bd22abead8b48d2b44a66 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 7 Dec 2022 13:39:37 +0800 Subject: [PATCH 2247/3123] P @chai001125 https://linux.cn/article-15324-1.html --- ...1121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md (99%) diff --git a/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md similarity index 99% rename from translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md rename to published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md index 94dbb6f291..db24a51375 100644 --- a/translated/tech/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md +++ b/published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "chai001125" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15324-1.html" 掌握强大的 Git 变基命令 ====== From 104225334ff8bce30ba7c6d1b47fa5eaef8f19d3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 7 Dec 2022 14:21:31 +0800 Subject: [PATCH 2248/3123] ALL @wxy https://linux.cn/article-15325-1.html --- ...12 is out with GNOME 43, Kernel 6.0, + More.md | 81 +++++++++++++++++++ ...12 is out with GNOME 43, Kernel 6.0, + More.md | 81 ------------------- 2 files changed, 81 insertions(+), 81 deletions(-) create mode 100644 published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md delete mode 100644 sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md diff --git a/published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md b/published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md new file mode 100644 index 0000000000..b64c75b7c0 --- /dev/null +++ b/published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md @@ -0,0 +1,81 @@ +[#]: subject: "Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More" +[#]: via: "https://debugpointnews.com/gnoppix-22-12-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15325-1.html" + +Gnoppix Linux 22.12 发布 +====== + +![][1] + +> 基于 Kali Linux 的 Linux 滚动发行版 Gnoppix 22.12 带来了 GNOME 43、Linux 内核 6.0 和新的升级。 + +![Gnoppix 22.12桌面][2] + +作为传统的现场 CD 发行版 Knoppix 项目的继承者,[Gnoppix Linux][3] 是专门为渗透测试和反向工程而设计的。它为网页应用安全和数字权利保护进行了优化。除了对安全的关注,Gnoppix 也可以作为一个普通的桌面操作系统使用。它是一个滚动的版本,经常收到更新和新功能。 + +在其核心部分,它基于 Kali Linux,并采用了 Debian-rolling 的某些部分。与 Kali Linux 的 Xfce 相比,它采用的是 GNOME 桌面。 + +### Gnoppix Linux 22.12 的最新变化 + +目前的主要版本是 Gnoppix 22,它是一个持续的小版本发布,最近其团队发布了 Gnoppix 22.12,有以下更新。 + +首先,内核版本被提升到了 Linux 内核 6.0 ,采用了最新的 [GNOME 43.2 桌面][4]。如果你想把这个发行版作为桌面使用,那么默认的应用程序列表会给你带来一些好消息。 + +Gnoppix 22.12 增加了 GIMP 图像编辑器、Deluge & Transmission、Clapper 音乐播放器和 GNOME 固件更新器。 + +此外,所有的 GNOME 原生软件包都被升级到了 43.2 版本,同时团队开始着手开发 44 版本,该版本将于 2023 年 2 月发布。 + +![GNOME 43.2 工作区视图][5] + +其他关键组件和应用程序包括以下内容: + +- LibreOffice 7.4.2.3 +- Linux 主线内核 6.0.7 +- OpenJDK 11 +- pipewire 0.3.60 +- Firefox ESR 102 +- Python 3.10 + +Gnoppix Linux 还默认增加了几个微软的应用程序。在这个版本中,你可以得到微软 Edge 浏览器 107 和用于会议和通信的微软 Teams 预览版。 + +在完整的变更日志中有一个巨大的软件包更新列表,你可以在 [这里][6] 中找到。 + +### 下载 + +如果你想尝试一下,你可以使用以下链接下载它。 + +> **[下载 Gnoppix 22.12][7]** + +请记住,它是在现场介质中使用的理想选择。然而,你可以很容易地在你的硬件上安装它,并作为 Debian-GNOME-rolling 版本运行。另外,请注意,它需要至少 50GB 的磁盘空间来安装!这是其 Calamares 安装程序的一个硬性要求。 + +此外,Kali Linux 的软件仓库已经被添加到 `/etc/apt/sources.list` 中,来自 Debian-rolling 的软件包基本稳定,所以,它应该是很稳定的。 + +干杯。 + +参考自 [发布公告][6]。 + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/gnoppix-22-12-release/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/gnoppix-head1.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Gnoppix-22.12-desktop.jpg +[3]: https://www.gnoppix.com/ +[4]: https://debugpointnews.com/gnome-43-release/ +[5]: https://debugpointnews.com/wp-content/uploads/2022/12/GNOME-43.2-workspace-view.jpg +[6]: https://sourceforge.net/p/gnoppixng/releases/general/thread/bc187de53a/#f258 +[7]: https://sourceforge.net/projects/gnoppixng/files/releases/ diff --git a/sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md b/sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md deleted file mode 100644 index 9096b0dbf3..0000000000 --- a/sources/news/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md +++ /dev/null @@ -1,81 +0,0 @@ -[#]: subject: "Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More" -[#]: via: "https://debugpointnews.com/gnoppix-22-12-release/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More -====== - -![][1] - -**Kali-linux-based rolling Linux distro Gnoppix 22.12 brings GNOME 43, Linux Kernel 6.0 and new upgrades.** - -![Gnoppix 22.12 desktop][2] - -The successor of the legacy live-cd Knoppix project, [Gnoppix][3] Linux is designed specifically for use in penetration testing and reverse engineering. It is optimized for web application security and for protecting digital rights. In addition to its focus on security, Gnoppix can also be used as a regular desktop operating system. It is a rolling release that receives frequent updates and new features. - -At its core, it is based on Kali Linux and Debian-rolling for some parts. And brings a GNOME desktop in contrast with Xfce for Kali Linux. - -### Gnoppix Linux 22.12: What’s New - -The current major release is Gnoppix 22, which is an ongoing point release, and recently its team released Gnoppix 22.12 with the following updates. - -Firstly the Kernel version is bumped up to Linux Kernel 6.0 and the latest [GNOME 43.2 desktop][4]. If you want to use this distro as a desktop, then some good news for you on the default application list. - -Gnoppix 22.12 added the GIMP image editor, Deluge & Transmission, clapper music player and gnome-firmware updater. - -Furthermore, all the native GNOME packages are bumped up to the 43.2 version while the team started working on 44, which is due on February 2023. - -![GNOME 43.2 workspace view][5] - -Other key components and apps include the following: - -- LibreOffice 7.4.2.3 -- Linux mainline Kernel 6.0.7 -- OpenJDK 11 -- pipewire 0.3.60 -- Firefox ESR 102 -- Python 3.10 - -Gnoppix Linux also adds a couple of Microsoft apps by default. In this release, you get the Microsoft Edge Browser 107 and the Microsoft Teams preview edition for meetings and communications. - -You have a complete change log with a huge list of package updates you can find in the [changelog][6]. - -### Download - -If you want to try it, you can download it using the following link. - -[Download Gnoppix 22.12][7] - -Remember, it is ideal to be used in live media. However, you can easily install it on your hardware and run it as a Debian-GNOME-rolling release. Also, please note that it needs a minimum of 50GB of disk space for installation! That’s a hard requirement of its Calamares installer. - -Furthermore, the Kali Linux’s repo has already been added to the /etc/apt/sources.list – hence you can be sure of almost stable packages from Debian-rolling. So, it should be well stable. - -Cheers. - -Via [annoucement][6]. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/gnoppix-22-12-release/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/gnoppix-head1.jpg -[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Gnoppix-22.12-desktop.jpg -[3]: https://www.gnoppix.com/ -[4]: https://debugpointnews.com/gnome-43-release/ -[5]: https://debugpointnews.com/wp-content/uploads/2022/12/GNOME-43.2-workspace-view.jpg -[6]: https://sourceforge.net/p/gnoppixng/releases/general/thread/bc187de53a/#f258 -[7]: https://sourceforge.net/projects/gnoppixng/files/releases/ From 9f43f60e840121645d78347714880e69f6d81d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Wed, 7 Dec 2022 15:49:54 +0800 Subject: [PATCH 2249/3123] Translated --- ...to Change Login Screen Background in Ubuntu.md | 107 ------------------ ...to Change Login Screen Background in Ubuntu.md | 107 ++++++++++++++++++ 2 files changed, 107 insertions(+), 107 deletions(-) delete mode 100644 sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md create mode 100644 translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md diff --git a/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md deleted file mode 100644 index 778b9f7ada..0000000000 --- a/sources/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md +++ /dev/null @@ -1,107 +0,0 @@ -[#]: subject: "How to Change Login Screen Background in Ubuntu" -[#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Change Login Screen Background in Ubuntu -====== - -**This is how you can get rid of that boring login screen background in Ubuntu and set a nice picture to welcome you each time you log on.** - -I, always think that when you boot up your system, a nice login screen should greet you. That itself set the context of your upcoming work or activity that you are about to do. Although, I am not a Windows fan, but I admire how Windows 10 login background changes every day from Bing wallpapers, and it looks nice. Isn’t it? - -A while back, we covered how to [change login background in Fedora][1] and [elementary OS][2]. And now this guide explains how you change it in vanilla Ubuntu with GNOME Shell. - -Login screen background is part of display manager property. This guide uses a script in GitHub created by a user to make it seamless and easy for average user. Otherwise, you have to change the Gnome Display Manager (gdm) CSS files manually after extracting the `.gresource` file, then compile it – which is complicated in general. - -![Ubuntu Login screen - before change][3] - -Ubuntu Login screen – before change - -### Change Login Background in Ubuntu - -- Open a terminal (press CTRL+ALT+T) - -- Download the [GitHub repo][4] using the below command. - -``` -wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background -``` - -**Note**: If you do not have wget, install it using `sudo apt install wget` - -**Ubuntu 22.04 Jammy Jellyfish** users require an additional code change to make it work because the developer did not fix it in GitHub. So here’s what you need to do. - -Open the `change-gdm-background` file via gedit. Then, go to the following line (#15) and add `|jammy`. - -![script change to allow jammy][5] - -script change to allow jammy - -Then, go to the following two lines (#144 and #184). Change `gdm3.css` to `gdm.css`. As shown below. - -![correct the css file for gdm][6] - -correct the css file for gdm - -And finally, save the file and follow the instructions as below. This workaround is only for Ubuntu 22.04 login screen change. - -- Change the permission of the script to make it executable - -``` -chmod +x change-gdm-background -``` - -- Then change the login background wallpaper in Ubuntu using the below command. Change the path of your image. - -``` -sudo ./change-gdm-background ~/Pictures/tree.jpg -``` - -This step might require `libglib2.0-dev` package, which will be installed automatically. This is required to extract/compile the `.gresource`. - -And after installation, it would prompt you to restart gdm. Press N, to be on the safe side. - -- Log out and you can see the changed background in Ubuntu. -- If you are not seeing the change, try restarting your system and then try to log in. - -![Ubuntu Login screen After Change][7] - -Ubuntu Login screen with background After Change - -### Restore the stock login screen - -The script also provides a feature to revert the stock login screen. It takes a backup of your `.gresource` file before changing it. So, from the terminal, simply run below to restore the original login screen. - -``` -sudo ./change-gdm-background --restore -``` - -That should change the login screen back to its original form. - -Let me know whether it worked for you using the comment box below. This should work for all the latest versions of Ubuntu Linux. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/change-login-background-ubuntu/ - -作者:[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/2021/09/change-login-background-fedora/ -[2]: https://www.debugpoint.com/2021/07/change-lock-login-screen-background-elementary-os/ -[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-before-change-1024x539.jpg -[4]: https://github.com/thiggy01/change-gdm-background -[5]: https://www.debugpoint.com/wp-content/uploads/2022/09/script-change-to-allow-jammy.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/correct-the-css-file-for-gdm.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-After-Change-1024x538.jpg diff --git a/translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md new file mode 100644 index 0000000000..844e2e9396 --- /dev/null +++ b/translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md @@ -0,0 +1,107 @@ +[#]: subject: "How to Change Login Screen Background in Ubuntu" +[#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何更改 Ubuntu 的登录屏幕背景 +====== + +**这是让你如何摆脱 Ubuntu 的无趣的登录背景屏幕,并在你每次登录时设置一张极好的图片来欢迎你的指南。** + +我总是认为,在你启动你的系统后,一个极好的登录屏幕来欢迎你,是一件美妙的事。这本身就为你即将开始的工作或活动渲染了愉快的氛围。尽管,我不是一名 Windows 的粉丝,但是我很欣赏 Windows 10 的登录背景都会每天随着 Bing 壁纸进行更改,它看起来好极了,不是吗? + +前段时间,我们讨论了如何 [更改 Fedora 的登录屏幕背景][1] 和 [更改 elementary OS 的登录屏幕背景][2] 。现在这篇指南将向你解释,如何更改使用 GNOME Shell 的 Ubuntu 的登录屏幕背景。 + +登录屏幕背景是显示管理器属性的一部分。这篇指南将使用一位用户在 GitHub 中创建的一个脚本,来使普通的用户能够纵享丝滑。否则,在提取 `.gresource` 文件后,你必须手动更改 Gnome 显示管理器Gnome Display Manager (gdm) 的 CSS 文件,接下来再编译它 – 一般来说,这是很复杂的。 + +![Ubuntu Login screen - before change][3] + +Ubuntu 登录屏幕 – 在更改前 + +### 更改 Ubuntu 的登录背景 + +- 打开一个终端 (按下组合键 CTRL+ALT+T) + +- 下载 [GitHub repo][4] ,使用下面的命令。 + +``` +wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background +``` + +**注意**: 如果你没有 wget ,使用 `sudo apt install wget` 来安装它 + +**Ubuntu 22.04 Jammy Jellyfish** 用户需要更改一些额外的代码来使其工作,因为,在 GitHub 中,开发者没有修复它。因此,在这里你需要自己来更改。 + +使用 gedit 来打开 `change-gdm-background` 文件。接下来,转到下面的行 (#15) 并添加 `|jammy` 。 + +![script change to allow jammy][5] + +脚本更改为允许 jammy + +接下来,转到下面的两行 (#144 和 #184)。将 `gdm3.css` 更改为 `gdm.css` 。如下图所示。 + +![correct the css file for gdm][6] + +修正针对 gdm 的 css 文件 + +最后,保存文件,并遵循如下的操作指南。这种解决方法只适用于 Ubuntu 22.04 的登录屏幕的更改。 + +- 更改脚本的权限来使其可执行 + +``` +chmod +x change-gdm-background +``` + +- 接下来,更改 Ubuntu 的登录背景壁纸,使用下面的命令。按照你的图片相应地更改路径 + +``` +sudo ./change-gdm-background ~/Pictures/tree.jpg +``` + +这一步骤可能需要 `libglib2.0-dev` 软件包,它将会自动地安装。提取/编译 `.gresource` 会用到它 + +在安装后,它应该会提示你重新启动 gdm 。慎重起见,按下 N 按键。 + +- 注销后,你可以看到更改后的 Ubuntu 的背景。 +- 如果你没有看到更改,尝试重新启动你的系统,然后尝试登录。 + +![Ubuntu Login screen After Change][7] + +在更改后的,Ubuntu 的登录屏幕背景 + +### 恢复先前的登录屏幕 + +该脚本也提供了一种恢复先前的登录屏幕的特色功能。它在更改你的 `.gresource` 文件前,会将其进行备份。因此,恢复先前的登录屏幕,只需要在终端中简单地运行下面的命令。 + +``` +sudo ./change-gdm-background --restore +``` + +这应该会将其登录屏幕更改回其先前的形式。 + +在下面的评论框中,让我知道这篇指南的内容是否对你有效果,这应该适用于所有的最新版本的 Ubuntu Linux 。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/change-login-background-ubuntu/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2021/09/change-login-background-fedora/ +[2]: https://www.debugpoint.com/2021/07/change-lock-login-screen-background-elementary-os/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-before-change-1024x539.jpg +[4]: https://github.com/thiggy01/change-gdm-background +[5]: https://www.debugpoint.com/wp-content/uploads/2022/09/script-change-to-allow-jammy.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/correct-the-css-file-for-gdm.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-After-Change-1024x538.jpg From dc5d48491e686dc314c1c3ac6ba069112d339f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Wed, 7 Dec 2022 15:56:01 +0800 Subject: [PATCH 2250/3123] Transalting --- ...️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md index 5a87ca942c..a00f08127f 100644 --- a/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md +++ b/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/install-gnome-linux-mint/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "robsean" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f65d2d8c57ce22eb7f07bcf6f4a898e765290a90 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Wed, 7 Dec 2022 18:57:22 +0800 Subject: [PATCH 2251/3123] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...210209 Understanding Linus-s Law for open source security.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20210209 Understanding Linus-s Law for open source security.md b/sources/talk/20210209 Understanding Linus-s Law for open source security.md index bbaf38fdb0..258d401019 100644 --- a/sources/talk/20210209 Understanding Linus-s Law for open source security.md +++ b/sources/talk/20210209 Understanding Linus-s Law for open source security.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (CanYellow) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 4acef28c8277af1a132d6b14ea2346951583e515 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 7 Dec 2022 19:12:25 +0800 Subject: [PATCH 2252/3123] translating --- .../tech/20220628 Linux su vs sudo- what-s the difference-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md b/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md index 01bb0f2517..7dab5d8703 100644 --- a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md +++ b/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin" [#]: author: "David Both https://opensource.com/users/dboth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 6e2c8b290d482c770655bb362954d203a1b20238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 19:51:15 +0800 Subject: [PATCH 2253/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221207.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Find=20a=20Process=20ID=20and=20Kill=20it=20in=20Lin?= =?UTF-8?q?ux=20[CLI=20&=20GUI].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d a Process ID and Kill it in Linux [CLI & GUI].md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 sources/tech/20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md diff --git a/sources/tech/20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/sources/tech/20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md new file mode 100644 index 0000000000..610f55149e --- /dev/null +++ b/sources/tech/20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md @@ -0,0 +1,145 @@ +[#]: subject: "How to Find a Process ID and Kill it in Linux [CLI & GUI]" +[#]: via: "https://www.debugpoint.com/find-process-id-kill-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Find a Process ID and Kill it in Linux [CLI & GUI] +====== + +**A simple tutorial demonstrates how to find a running process ID and kill it using the terminal and GUI method for various Linux distros.** + +The running applications in your Linux system can slow down your system, especially if you have a low-end system. In Linux (plus all OS), programs or apps contain a specific PID (process ID) by which you can identify them easily. + +However, as a beginner, many Linux users don’t know how to find a running process in Linux and kill it. So in this guide, we will explain different approaches to kill the currently running processes in Linux. That includes the terminal and GUI methods. + +Remember, you should only kill the process when it is not responding, or you are in a situation where the normal application closing is not working (for GUI-based apps). + +### How to find process id and kill them in Linux + +In this section, first, let’s learn the method to find the PID of a running process and then commands to kill them: + +#### Find the Currently Running Process + +You can use the `top` command to list the currently running process with their PID and other details. The top program is installed by default in all Linux distros and all Unix-based systems. + +``` +top +``` + +![Top program output][1] + +Similarly, you can run the `ps` command with additional options to get the PID of a specific process. For example, you can use the following command to get the PID of `firefox`: + +``` +ps -el | grep -i firefox +``` + +![Firefox process id using ps command - example][2] + +Now that you have found the process id, let’s see how you can kill it. + +#### Kill the Running Process + +You can either use the process name or PID to kill the currently running process using the following commands:  + +- **killall:** Kill a process using the name of a running process +- **[kill][3]:** Kill the process with PID + +Now, first, let’s use the `killall` process to kill Firefox with its name, and here is the command: + +``` +killall -9 firefox +``` + +- The parameter `-9` sends the SIGKILL signal to the OS to terminate the process. +- You can also list down several other signals using the following command. + +``` +kill -l +``` + +Similarly, if you want to kill the process from the process ID, you can use the command given below:  + +``` +kill -9 +``` + +For this example, the command would be: + +``` +kill -9 33665 +``` + +Let’s see how you can kill any process or application using the graphical user interface (GUI) in various distros. + +### Find process id to kill via GUI + +There are many graphical programs available to list down processes. Most Linux distribution ships it as part of their desktop environment. Here are some of them. + +#### GNOME (In Ubuntu, Fedora workstation, etc.) & in Linux Mint + +Search for “system monitor” in the application menu and open it. On the processes tab, find your process. Right-click on the process name to bring up the context menu and choose the option kill. + +![Kill a process in Linux using gnome system monitor][4] + +#### KDE Plasma (Kubuntu, Fedora-KDE or any Plasma-based distro) + +From the application menu, search and launch “system monitor”. This will launch the following program. From the left side, click on Processes, and you should see a list of programs running. You can right-click on the process/application and select Kill to terminate the process. + +![System monitor in KDE Plasma][5] + +#### Xfce desktop + +The native application for this task on the Xfce desktop is Task Manager, which you can launch via `Application > System > Task manager`. Right-click on the process name and select kill to terminate the app or process. + +![Xfce task manager to kill a process][6] + +#### Other desktops or distros to kill a process pr program + +If you can’t find anything similar, you can choose the terminal method. Or, you can install the gnome-system-monitor using the following commands. + +**For Ubuntu and related distros** + +``` +sudo apt install gnome-system-monitor +``` + +**In Fedora and related:** + +``` +sudo dnf install gnome-system-monitor +``` + +**And in Arch Linux:** + +``` +sudo pacman -S gnome-system-monitor +``` + +### Wrapping Up + +So this is how you can find a running process id in Linux and kill it. We have explained different approaches that you can try to kill the process either from its name or PID. I hope this helps. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/find-process-id-kill-linux/ + +作者:[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/12/Top-program-output.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/Firefox-process-id-using-ps-command-example.jpg +[3]: https://linux.die.net/man/1/kill +[4]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kill-a-process-in-Linux-using-gnome-system-monitor.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/System-monitor-in-KDE-Plasma.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Xfce-task-manager-to-kill-a-process.jpg From 89bb7507411e2a14a34bff418d9701eb96b55c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 19:52:39 +0800 Subject: [PATCH 2254/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221207.2=20=E2=AD=90=EF=B8=8F=20How=20to=20Access?= =?UTF-8?q?=20UEFI=20Settings=20in=20Linux=20Systems.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ow to Access UEFI Settings in Linux Systems.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md diff --git a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md new file mode 100644 index 0000000000..7492d39d28 --- /dev/null +++ b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md @@ -0,0 +1,119 @@ +[#]: subject: "How to Access UEFI Settings in Linux Systems" +[#]: via: "https://itsfoss.com/access-uefi-from-linux/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Access UEFI Settings in Linux Systems +====== + +Want to check the boot order or the power settings at the firmware level? **You can access the UEFI settings by pressing the F2, F10 or Del buttons when your system boots**. + +The problem with this approach is that you may not know the exact key and must be alert about pressing those keys at the right time. + +If you don’t want to feel like Mr. Bean in the above Gif, you can access the UEFI settings from the [Grub bootloader][1] screen in Linux. + +![uefi firmware settings grub linux][2] + +You see this screen when you turn on your Linux system. Most Linux distributions like Fedora and Ubuntu use Grub and they allow you to access the UEFI settings from the Grub screen like this. + +What if you don’t see this screen or your distro doesn’t use Grub? There are still ways to access UEFI settings from within Linux. + +Before you see how to do that, please [ensure that your system uses UEFI][3]. + +**_Another important thing. Your system will reboot into UEFI settings._** _You cannot access and modify the firmware settings from within an operating system._ + +### Boot into UEFI settings from Linux + +This method will only work on Linux distros having systemd. This means this method will work on anything based on Ubuntu, Debian, Fedora, and any mainstream Arch-based distros, including Manjaro and EndeavourOS. + +It is still a good idea to [ensure that your Linux distro uses systemd][4]. Use the given command and if it returns systemd you are good to go: + +``` +ps --no-headers -o comm 1 +``` + +![how to know if i am using systemd on linux?][5] + +Once you figure out that your distro is utilizing systemd, you can use the given command to boot into UEFI settings: + +``` +systemctl reboot --firmware-setup +``` + +Let me break down the used options first: + +- `reboot`: As its name suggest, it will reboot your system. +- `--firmware-setup`: When this option is used with `reboot`, it will indicate to the system’s firmware to boot into the firmware setup interface. + +Yup, that was it! A single command and you will be kicked into UEFI settings. I know Windows allows [booting into UEFI firmware settings from within Windows][6]. It’s good to see something similar in Linux as well. + +#### Create a desktop shortcut to boot into UEFI settings (optional) + +If you often find yourself booting into the UEFI settings and don’t remember the command all the time, you can make your life easier by creating a desktop shortcut. This will let you boot into UEFI by clicking on desktop icon. + +_**Now, this is unnecessary and not required for most Linux users. Do it only if you feel the need for it. The method requires [editing files in the command line][7].**_ + +First, use the given command to create a desktop shortcut file for UEFI settings: + +``` +sudo nano /usr/share/applications/uefi-reboot.desktop +``` + +And paste the following content in the file: + +``` +[Desktop Entry] +Name=UEFI Firmware Setup (Reboot) +Comment=Access the motherboard configuration utility +Exec=systemctl reboot --firmware-setup +Icon=system-restart +Terminal=false +Type=Application +Categories=System;Settings; +``` + +![create a desktop shortcut to boot into uefi settings][8] + +Once done, [save the changes and exit from the nano][9] text editor. + +And now, you will find the shortcut for UEFI Firmware Setup in your system menu: + +![boot into uefi firmware from system menu][10] + +That’s it! A neat way to get into UEFI settings. + +### Wrapping Up + +The classic ways of accessing the boot settings may be a little inconvenient for some people. The grub screen may not show the UEFI option for older versions. + +And this is where the systemd method shines. I found this method a lifesaver when my system crashed and my function keys were not responding, which are necessary to boot into UEFI (that’s what I thought then!). + +I hope you find it equally helpful. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/access-uefi-from-linux/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/what-is-grub/ +[2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp +[3]: https://itsfoss.com/check-uefi-or-bios/ +[4]: https://linuxhandbook.com/check-if-systemd/ +[5]: https://itsfoss.com/wp-content/uploads/2022/12/how-to-know-if-i-am-using-systemd-on-linux.png +[6]: https://itsfoss.com/access-uefi-settings-windows-10/ +[7]: https://learnubuntu.com/edit-files-command-line/ +[8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png +[9]: https://linuxhandbook.com/nano-save-exit/ +[10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png From 37868f6c5fe5b85185fc632a676d490245f04f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 19:56:15 +0800 Subject: [PATCH 2255/3123] =?UTF-8?q?Update=2020221207.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20How=20to=20Access=20UEFI=20Settings=20in=20Linux=20?= =?UTF-8?q?Systems.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md index 7492d39d28..61f685b396 100644 --- a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md +++ b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md @@ -14,6 +14,8 @@ Want to check the boot order or the power settings at the firmware level? **You The problem with this approach is that you may not know the exact key and must be alert about pressing those keys at the right time. +![Mr. Bean][1a] + If you don’t want to feel like Mr. Bean in the above Gif, you can access the UEFI settings from the [Grub bootloader][1] screen in Linux. ![uefi firmware settings grub linux][2] @@ -107,6 +109,7 @@ via: https://itsfoss.com/access-uefi-from-linux/ [a]: https://itsfoss.com/author/sagar/ [b]: https://github.com/lkxed +[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a [1]: https://itsfoss.com/what-is-grub/ [2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp [3]: https://itsfoss.com/check-uefi-or-bios/ From 3be87e8a9cc4d19e79758cd88b789678efedfdd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 19:58:02 +0800 Subject: [PATCH 2256/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221207.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?16=20reasons=20DDEV=20will=20be=20your=20new=20favorite=20devel?= =?UTF-8?q?opment=20environment.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ll be your new favorite development environment.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 sources/tech/20221207.3 ⭐️⭐️ 16 reasons DDEV will be your new favorite development environment.md diff --git a/sources/tech/20221207.3 ⭐️⭐️ 16 reasons DDEV will be your new favorite development environment.md b/sources/tech/20221207.3 ⭐️⭐️ 16 reasons DDEV will be your new favorite development environment.md new file mode 100644 index 0000000000..efe5125083 --- /dev/null +++ b/sources/tech/20221207.3 ⭐️⭐️ 16 reasons DDEV will be your new favorite development environment.md @@ -0,0 +1,145 @@ +[#]: subject: "16 reasons DDEV will be your new favorite development environment" +[#]: via: "https://opensource.com/article/22/12/ddev" +[#]: author: "Randy Fay https://opensource.com/users/rfay" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +16 reasons DDEV will be your new favorite development environment +====== + +In 2022, you have a wide variety of local development environments to choose from, whether you're a designer, developer, tester, or any kind of open source contributor. Because most of the tools and platforms contributors use happen to run on many different operating systems, you probably even have the choice of constructing your own environment. I'm the maintainer of [DDEV][1], and here are 15 reasons I think you'll like it for your development environment. + +### 1. Cross-platform + +DDEV supports and tests, and has a fully automated test suite for Linux (amd64 and Arm), WSL2, Windows, and macOS (M1 and amd64.) + +Some tools require you to use one exact version of Docker (and they may even take the liberty of installing it themselves), DDEV works with versions of Docker that are a couple of years old, and keeps up with the latest versions, as well. Alternatively, you can use [Colima][2] or Docker installed inside WSL2. + +DDEV’s binaries are signed and notarized on macOS and Windows, so you never have to sneak around scary operating system warnings when installing and using DDEV. + +### 2. Performance + +The DDEV team believes that DDEV on macOS and Windows has [the best performance][3] you can get on any local development, both in terms of starting DDEV (10 to 20 seconds) and in terms of webserving. With no setup required at all, the [Mutagen feature][4] speeds up webserving by a factor of 10, at least. And of course on Linux (including WSL2) it's truly superb. + +### 3. Settings file management + +DDEV is happy to get you started quickly and easily, and even manage your settings files. You can use your own repository or follow one of the [quickstart guides][5] to create something new and you'll have a project going in no time. You can also [turn off settings file management][6] to fine-tune your team's approach when you need more customization. + +DDEV's configuration files aren't used when they're not being used in a DDEV context, so your project won't accidentally have DDEV settings if you mistakenly deploy them to production. If you have the same project setup for Lando _and_ DDEV, then the DDEV settings won't break Lando. + +### 4. Trusted HTTPS + +DDEV uses [mkcert][7] to allow you to conduct all your work using [locally trusted HTTPS][8], just like it will work in the real world. You don't have to click around scary browser warnings to view your project in development. + +### 5. Database snapshots + +DDEV has the `ddev snapshot` feature, allowing you to quickly capture the state of your [database][9] and then quickly restore to a different point. You can name snapshots for different branches of your project. It's far faster than traditional export and import. + +### 6. Simple single-binary installation without dependencies + +[DDEV][10] is written in [Go][11]. Because Go is a fairly new language, this can be a bit of a disadvantage in terms of community involvement, but it's a huge advantage for cross-platform support. Go does cross-platform builds with ease, and the resulting self-contained binary has no dependencies at all (aside from Docker.) There are no libraries to install, no DLLs to maintain. And responsiveness to commands is excellent! + +### 7. Xdebug step-debugging + +Lots of people have their first experience with a [real step-debugging environment][12] for the first time with DDEV because it's really, _really_ easy. Thanks to PHPStorm, there's no setup at all. With VSCode or [Codium][13], there's about 2 minutes of setup. There's no need for inserting print statements into code anymore! + +### 8. Explicit support for your CMS + +DDEV has built-in support for many popular content management systems (CMS) and platforms. "Explicit support" means that there's setting management, and an NGINX configuration customized for the specific platform you're using. Here's a partial list of what's supported: + +- Drupal +- Backdrop +- WordPress +- TYPO3 +- Magento +- Laravel +- Shopware + +### 9. Integration and add-ons + +While DDEV provides explicit support with optional settings management for your CMS of choice, many developers use other platforms, including Symfony, Moodle, Mautic, and so on. DDEV has explicit support for NodeJS, both for processing and as daemons. + +DDEV also features a library of supported, maintained, and tested add-ons for Redis, Solr, Memcached, Elasticsearch, Mongo, Varnish, and more. + +### 10. Gitpod + +Your local development environment doesn't even have to be local anymore. DDEV has full support for use in [Gitpod][14] so you can move your development into the cloud. + +### 11. No vendor lock-in + +There is absolutely no vendor lock-in in DDEV. The idea behind the DDEV platform is that DDEV can be plugged into a dev-to-deploy workflow as pieces of a puzzle that work for you. Mix and match! DDEV is an open source community project that works great with any hosting service you can use. + +### 12. Respect for your host computer + +DDEV doesn't assume you use your computer (or containers) only for DDEV. + +Too many local dev tools happily reconfigure your host computer without your full involvement. More than one of them edit your `/etc/exports` file, with no way for you to opt out. A couple of them actually overwrite your Docker installation with a different version at install time. DDEV tries to ensure that in the unlikely situation that anything needs to be changed on your computer, you're the one doing it, and you have options. + +For example, HTTPS support requires running `mkcert -install` one time. [NFS support][15] requires a bit of additional setup. Because nearly everything is run in a container, there's very little that needs to be done on the host computer in the first place. + +### 13. Community + +The DDEV community has been phenomenal through the years, contributing ideas, code, and shared support. There are [open collections][16] of DDEV services, tools, snippets, approaches, as well as [blogs and presentations][17] and more from users all around the world. + +The [DDEV Advisory Group][18] provides oversight, direction, and feedback for the project. Anyone is welcome to join. + +### 14. Open source + +DDEV is a small cog in the huge open source ecosystem. It couldn't even exist without the hundreds or thousands of projects that make up the Linux containers that run it, and of course, PHP itself is a fundamental upstream project. We love to contribute upstream and downstream to projects like: + +- **Docker**: DDEV is involved with the Docker project, because DDEV users are always pushing the limits. We participate heavily in Docker issue queues. +- **Mutagen**: When you edit code in containers, there's a lot of synchronization between your local host and the container environment that needs to happen. [Mutagen][19] helps bridge that gap for DDEV users. +- **mkcert**: The [mkcert][7] tool allows DDEV to provide trusted HTTPS in your local development environment. We've benefited enormously from it, and have contributed back tests and bug fixes. +- **Xdebug**: DDEV is great with [Xdebug][20], and of course, we hear right away when there are problems. We report our findings back to the Xdebug issue queue. +- **deb.sury.org PHP packages**: The Debian PHP packages (5.6 all the way through 8.2, at the time of writing) we use come from [deb.sury.org][21]. Because the DDEV community is an early consumer of those packages, we're often in that [issue queue][22] too. + +### 15. DDEV Keeps Up + +DDEV is always keeping up with the dependencieis you need. For example, at this writing, neither PHP 8.2.0 nor Drupal 10 have yet been released, but both have been supported in DDEV for months. + +### 16. Your own reason + +I'd love to hear what makes DDEV your favorite, and the DDEV team is always [listening][23] to hear what you want in the future. Of course, we also want to hear when things don't work the way you want or expect. Visit our [Git repository][10] to contribute! + +Note: This is an updated version of a [blog post][24] that originally appeared on ddev.com. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/ddev + +作者:[Randy Fay][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/rfay +[b]: https://github.com/lkxed +[1]: http://ddev.com/ +[2]: https://opensource.com/article/22/9/replacing-docker-desktop-mac-colima-use-ddev-first-impressions +[3]: https://ddev.com/ddev-local/docker-desktop-and-colima-benchmarking-on-macos +[4]: https://ddev.readthedocs.io/en/stable/users/install/performance/#mutagen +[5]: https://ddev.readthedocs.io/en/stable/users/cli-usage/#quickstart-guides +[6]: https://ddev.com/ddev-local/controlling-cms-settings-files-in-ddev-local/ +[7]: https://github.com/FiloSottile/mkcert +[8]: https://ddev.com/ddev-local/ddev-local-trusted-https-certificates/ +[9]: https://ddev.readthedocs.io/en/stable/users/basics/database_management/ +[10]: https://github.com/drud/ddev +[11]: https://opensource.com/article/17/6/getting-started-go +[12]: https://ddev.readthedocs.io/en/latest/users/debugging-profiling/step-debugging/ +[13]: https://opensource.com/article/20/6/open-source-alternatives-vs-code#vscodium +[14]: https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#gitpod +[15]: https://ddev.com/ddev-local/ddev-local-nfs-mounting-setup-macos/ +[16]: https://ddev.readthedocs.io/en/latest/users/extend/additional-services/ +[17]: https://github.com/drud/awesome-ddev +[18]: https://github.com/drud/ddev/discussions/categories/ddev-advisory-group +[19]: http://mutagen.io +[20]: https://xdebug.org/ +[21]: https://deb.sury.org/ +[22]: https://github.com/oerdnj/deb.sury.org/issues +[23]: https://ddev.readthedocs.io/en/stable/users/support/ +[24]: https://ddev.com/ddev-local/whats-so-different-about-ddev-local From 9518ca0dfae17c51ff9ca4772fb22bd50d4bdeb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 20:00:35 +0800 Subject: [PATCH 2257/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221207.4=20=E2=AD=90=EF=B8=8F=20Why=20I=20use=20th?= =?UTF-8?q?e=20Enlightenment=20file=20manager=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...use the Enlightenment file manager on Linux.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/tech/20221207.4 ⭐️ Why I use the Enlightenment file manager on Linux.md diff --git a/sources/tech/20221207.4 ⭐️ Why I use the Enlightenment file manager on Linux.md b/sources/tech/20221207.4 ⭐️ Why I use the Enlightenment file manager on Linux.md new file mode 100644 index 0000000000..2c249e99ff --- /dev/null +++ b/sources/tech/20221207.4 ⭐️ Why I use the Enlightenment file manager on Linux.md @@ -0,0 +1,87 @@ +[#]: subject: "Why I use the Enlightenment file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-enlightenment" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why I use the Enlightenment file manager on Linux +====== + +Computers are like filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this series, I'm taking a look at the Enlightenment file manager for your Linux system. + +The [Enlightenment desktop][1] is designed to be a modern implementation of what's considered a traditional UNIX desktop. There are certain elements that are considered to be characteristic of graphical UNIX, most of which were defined in the [by early desktops like CDE or twm][2]. Enlightenment implements things like a dock, an on-demand global contextual menu, flexible focus, virtual workspaces, but with an almost hyper-modern flair. Enlightenment is able to combine these elements with effects and animations because it's also its own compositor, and the EFL libraries that the desktop uses are specific to Enlightenment and maintained by the Enlightenment team. That's a long way of confessing that in this entry in [my file manager series][3], I'm looking at a file manager that's mostly inextricable from the desktop it supports. If you want to try Enlightenment's file manager, you have to try Enlightenment. Luckily, it's a pleasant experience, and a fun diversion from the usual desktops. + +### Install Enlightenment on Linux + +You can probably install Enlightenment from your distribution's repository. For example, on Fedora: + +``` +$ sudo dnf install enlightenment +``` + +On Debian and similar: + +``` +$ sudo apt install enlightenment +``` + +### File manager + +When you first log in to Enlightenment, you must make some choices about configuration. After setting your language and visual theme, you can open a file manager window by either double-clicking on the **Home** icon on the desktop, or by clicking on the desktop and choosing **Navigate**. + +![Image of the file manager for Enlightenment.][4] + +### Customizing the panel + +The left panel of the file manager displays common places in your file system. Not everyone considers the same places common, though, so you're free to change the bookmarks in the panel to suit your needs. + +Start by removing the items you don't need. For instance, maybe you don't need an icon for your Desktop in your side panel. To remove it, right-click on it and select **Delete**. You're asked for confirmation, and it's safe to accept. You're not deleting your actual desktop or the items on it, you're just removing the **Desktop** item from the side panel. You can remove any of the items from the left panel in this way. + +Next, add directories you frequent. You can add items by dragging and dropping icons from the right panel into the left. Once there, they're considered bookmarks for Enlightenment's file manager. These items don't carry over into other file managers or file choosers. This is a bookmarks panel specific to the Enlightenment file manager. + +### Customizing the view + +A file manager's main purpose is to help you manage files. Part of managing files is getting a good look at what you have, and there are three different views Enlightenment offers. To access the different views, right-click in an empty space in the file manager and choose **View Mode**. + +- **Custom Icons**: Place icons anywhere in the file manager window you please. +- **Grid**: Sort icons, aligned to a grid. +- **List**: Sort small icons as an itemized list. + +In addition to altering your view of the icons representing your files and folders, you can control how they're sorted. The default is to alphabetize directories first, and then files. You can right-click in an empty space in the file manager and select **Sorting** to choose between other options: + +- **Size**: This is particularly useful when you're trying to find files that are occupying too much space on your hard drive. +- **File extension**: Group files together by file type! +- **Modification time**: Make recent files easy find. + +Grouping files together by file extension is the real epiphany of the Enlightenment file manager. In most other file managers, the closest you can get to this feature is the ability to filter files by manually typing in the extension you're interested in. But with this feature, your files "cluster" together by a sort of genealogical affinity. It makes files really easy to find without giving any particular preference to any one group of file types. You just locate the group of files you're interested in, and then the single file you want to work on. + +### Keyboard navigation + +The Enlightenment file manager has good keyboard support. As long as the file manager is in focus, you can press any **Arrow** key to move between items in the right panel. Press **Return** to enter a directory or to open a file. + +You can use **Alt** and the **Left Arrow** key to move back to the previously visited directory. Use **Alt** and the **Up Arrow** key to move to your current directory's parent. + +### The Enlightenment experience + +Enlightenment is a fun and beautiful desktop, and its default file manager does everything you need a file manager to do. It's got the essential customization options, good support for keyboard navigation, and it fits the rest of the desktop perfectly. If you're in the mood for something different, then give Enlightenment a try. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-enlightenment + +作者:[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/article/19/12/linux-enlightenment-desktop +[2]: https://opensource.com/article/20/5/linux-desktops#traditional +[3]: https://opensource.com/users/seth +[4]: https://opensource.com/sites/default/files/2022-10/enlightenment-file-manager.png From 8bb98e7dae7e97582357e7464845d1d657e55dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 20:01:31 +0800 Subject: [PATCH 2258/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221207.5=20=E2=AD=90=EF=B8=8F=20Kali=20Linux's=20L?= =?UTF-8?q?ast=20Update=20for=20the=20Year=20Brings=20a=20Lot=20of=20Early?= =?UTF-8?q?=20Christmas=20Gifts.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Year Brings a Lot of Early Christmas Gifts.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md diff --git a/sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md b/sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md new file mode 100644 index 0000000000..62db7e3017 --- /dev/null +++ b/sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md @@ -0,0 +1,136 @@ +[#]: subject: "Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts" +[#]: via: "https://news.itsfoss.com/kali-linux-2022-4-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts +====== + +Kali Linux 2022.4 is now available to download. Learn what's new here. + +![Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts][1] + +Kali Linux is an open-source, Debian-based distro focusing on penetration testing and security auditing. + +It consists of various tools, configurations, and automation to help you achieve that. + +Dubbed as the final release of this year, **Kali Linux 2022.4** promises many improvements over its [predecessor][2]. + +Let me take you through this release. + +### 🆕 What's New? + +![kali linux 22.04][3] + +Kali Linux 2022.4 comes bearing early Christmas gifts in the form of updates; here are some of the merry ones! 🎄 + +- **Linux Kernel 6.0** +- **Return to the Microsoft Azure Marketplace** +- **Pine 64 PinePhone Support** +- **New Desktop Environments** +- **QEMU image** +- **New Tools** + +#### Recommended Read 📖 + +#### Pine 64 PinePhone Support + +![kali linux nethunter pro on pinephone pro][4] + +Kali Linux now has official support for the Pine 64 PinePhone and PinePhone Pro. + +This support has come in the form of a new mobile-focused distro called '**Kali NetHunter Pro**'. + +They are marking it as a new beginning for Kali Linux and [NetHunter][5]; this distro has been optimized for mobile devices and can be dual-booted alongside the main OS from an SD card. + +In addition, they have also hinted at a future release of alternative versions of Kali NetHunter Pro. + +These will feature Plasma Mobile alongside new installers for installing Kali NetHunter Pro onto the internal flash memory of a device. + +#### Return to the Microsoft Azure Marketplace + +![kali linux 22.04 azure marketplace][6] + +After being absent from the Azure Marketplace for a long time, Kali Linux was finally [added back][7]. + +[Offensive Security][8], the company behind Kali Linux, mentions that the publishing process has now been automated thanks to [kali-cloud build-scripts][9]. + +Users will now enjoy the same consistency level as their [Amazon AWS image][10]. + +#### New Desktop Environments + +![kali linux 22.04 with gnome 43][11] + +Usually, Kali Linux uses the lightweight Xfce desktop environment as its default desktop environment. + +But now, it also features support for the recent KDE Plasma and GNOME versions. + +**In the case of Plasma:** Kali Linux now features KDE Plasma 5.26; it is meant to improve the overall desktop experience and has bought in many tweaks and improvements. + +**In the case of GNOME:** Including the usual enhancements with [GNOME 43][12], they have also added a few tweaks of their own. + +A new GTK3-based theme has been added based on the [adw-gtk3][13] project with a few of Kali's tweaks. + +Then, the new 'gnome-text-editor' replaces 'gedit' and comes with an updated Kali theme. + +#### QEMU image + +They have also added a new [QEMU image][14] to their pre-generated image library in the hopes that it will make it easier for people to implement Kali Linux on self-hosted environments like [Proxmox Virtual Environments][15], [virt-manager][16], or [libvirt][17]. + +#### 🛠️ Other Changes/Improvements + +Besides the above changes, there are several other notable ones: + +- Enhanced Bluetooth support for Kali NetHunter. +- Addition of Kali to Raspberry Pi Imager. +- The u-boot bootloader in USBArmory MKII has been updated to 2022.10. +- Updates to various Kali Documentation. +- New tools such as **bloodhound.py**, **certipy**, **rizin-cutter,** and a few more. +- Revamped social media channels of Kali Linux. + +You can go through the [release announcement][18] to get into the more technical details. + +### 📥 Download Kali Linux 2022.4 + +Kali Linux 2022.4 has been made available on the [official website][19]. + +[Kali Linux 2022.4][19] + +You can choose the image suitable for your requirements and download it. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kali-linux-2022-4-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kali-linux-2022-04-release.jpg +[2]: https://news.itsfoss.com/kali-linux-2022-3-release/ +[3]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4.png +[4]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_NetHunter_Pro.jpg +[5]: https://www.kali.org/docs/nethunter/ +[6]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_Azure.jpg +[7]: https://azuremarketplace.microsoft.com/en/marketplace/apps/kali-linux.kali +[8]: https://www.offensive-security.com +[9]: https://gitlab.com/kalilinux/build-scripts/kali-cloud +[10]: https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to +[11]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_GNOME43.jpg +[12]: https://news.itsfoss.com/gnome-43-release/ +[13]: https://github.com/lassekongo83/adw-gtk3 +[14]: https://qemu-project.gitlab.io/qemu/system/images.html +[15]: https://www.proxmox.com/en/proxmox-ve +[16]: https://virt-manager.org +[17]: https://libvirt.org +[18]: https://www.kali.org/blog/kali-linux-2022-4-release/#desktop-updates +[19]: https://www.kali.org/get-kali/ From 57b81e08fc67e84c6aa3a28ae6fba9ef5fed50ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 7 Dec 2022 20:02:18 +0800 Subject: [PATCH 2259/3123] =?UTF-8?q?Rename=2020221207.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20How=20to=20Find=20a=20Process=20I?= =?UTF-8?q?D=20and=20Kill=20it=20in=20Linux=20[CLI=20&=20GUI].md=20to=2020?= =?UTF-8?q?221207.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Find=20a=20Process?= =?UTF-8?q?=20ID=20and=20Kill=20it=20in=20Linux=20[CLI=20&=20GUI].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md => 20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md} (100%) diff --git a/sources/tech/20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md similarity index 100% rename from sources/tech/20221207.0 ⭐️⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md rename to sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md From 7bdc78d08a37796034ff97290a364dea55c48480 Mon Sep 17 00:00:00 2001 From: ZZJ Date: Wed, 7 Dec 2022 23:58:14 +0800 Subject: [PATCH 2260/3123] translated --- ...0210330 A DevOps guide to documentation.md | 91 ------------------ ...0210330 A DevOps guide to documentation.md | 92 +++++++++++++++++++ 2 files changed, 92 insertions(+), 91 deletions(-) delete mode 100644 sources/tech/20210330 A DevOps guide to documentation.md create mode 100644 translated/tech/20210330 A DevOps guide to documentation.md diff --git a/sources/tech/20210330 A DevOps guide to documentation.md b/sources/tech/20210330 A DevOps guide to documentation.md deleted file mode 100644 index 159dcda360..0000000000 --- a/sources/tech/20210330 A DevOps guide to documentation.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: (A DevOps guide to documentation) -[#]: via: (https://opensource.com/article/21/3/devops-documentation) -[#]: author: (Will Kelly https://opensource.com/users/willkelly) -[#]: collector: (lujun9972) -[#]: translator: (Veryzzj) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -A DevOps guide to documentation -====== - -Bring your documentation writing into the DevOps lifecycle. -![Typewriter with hands][1] - -DevOps is challenging technical documentation norms like at no other time in IT history. From automation to increased delivery velocity to dismantling the waterfall software development lifecycle model, these all spell the need for making dramatic changes to business and the philosophy of technical documentation. - -Here are some ways DevOps is influencing technical documentation. - -### The technical writer's changing role - -The technical writer's role must adapt to DevOps. The good news is that many technical writers are already embedded in development teams, and they may have a leg up by already having collaborative relationships and growing knowledge of the product. - -But you have some pivoting to do if your technical writers are used to working in siloes and relying on drafts written by subject matter experts as the basis for documentation. - -Make the investments to ensure your documentation and other project-related content development efforts gain the tools, structure, and support they require. Start by changing your [technical writer hiring practices][2]. Documentation at the [speed of DevOps][3] requires rethinking your content strategy and breaking down longstanding silos between your DevOps team and the technical writer assigned to support the project. - -DevOps also causes development teams to break away from the rigors of traditional documentation practices. Foremost, documentation's [definition of done][4] must change. Some corporate cultures make the technical writer a passive participant in software development. DevOps makes new demands—as the DevOps cultural transformation goes, so does the technical writer's role. Writers will need (and must adjust to) the transparency DevOps offers. They must integrate into DevOps teams. Depending on how an organization casts the role, bringing the technical writer into the team may present skillset challenges. - -### Documentation standards, methodologies, and specifications - -While DevOps has yet to influence technical documentation itself, the open source community has stepped up to help with application programming interface (API) documentation that's finding use among DevOps teams in enterprises of all sizes. - -Open source specifications and tools for documenting APIs are an exciting area to watch. I'd like to think it is due to the influence of [Google Season of Docs][5], which gives open source software projects access to professional technical writing talent to tackle their most critical documentation projects. - -Open source APIs are available and need to become part of the DevOps documentation discussion. The importance of cloud-native application integration requirements is on the rise. The [OpenAPI specification][6]—an open standard for defining and documenting an API—is a good resource for API documentation in DevOps environments. However, a significant criticism is that the specification can make documentation time-consuming to create and keep current. - -There were brief attempts to create a [Continuous Documentation][7] methodology. There was also a movement to create a [DocOps][8] Framework that came out of CA (now Broadcom). Despite its initial promise, DocOps never caught on as an industry movement. - -The current state of DevOps documentation standards means your DevOps teams (including your technical writer) need to begin creating documentation at the earliest stages of a project. You do this by adding documentation as both an agile story and (just as important) as a management expectation; you enforce it by tying it to annual performance reviews. - -### Documentation tools - -DevOps documentation authoring should occur online in a format or a platform accessible to all team members. MediaWiki, DokuWiki, TikiWiki, and other [open source wikis][9] offer DevOps teams a central repository for authoring and maintaining documentation. - -Let teams choose their wiki just as you let them choose their other continuous integration/continuous development (CI/CD) toolchains. Part of the power of open source wikis is their extensibility. For example, DokuWiki includes a range of extensions you can install to create an authoring platform that meets your DevOps team's authoring requirements. - -If you're ambitious enough to bolster your team's authoring and collaboration capabilities, [Nextcloud][10] (an open source cloud collaboration suite) is an option for putting your DevOps teams online and giving them the tools they need to author documentation. - -### DevOps best practices - -Documentation also plays a role in DevOps transformation. You're going to want to document the best practices that help your organization realize efficiency and process gains from DevOps. This information is too important to communicate only by word of mouth across your DevOps teams. Documentation is a unifying force if your organization has multiple DevOps teams; it promotes standardization of best practices and sets you up to capture and benchmark metrics for code quality. - -Often it's developers who shoulder the work of documenting DevOps practices. Even if their organizations have technical writers, they might work across development teams. Thus, it's important that developers and sysadmins can capture, document, and communicate their best practices. Here are some tips to get that effort going in the right direction: - -* Invest the time upfront to create a standard template for your DevOps best practices. Don't fall into the trap of copying a template you find online. Interview your stakeholders and teams to create a template that meets your team's needs. -* Look for ways to be creative with information gathering, such as recording your team meetings and using chat system logs to serve as a foundation for your documentation. -* Establish a wiki for publishing your best practices. Use a wiki that lets you maintain an audit trail of edits and updates. Such a platform sets your teams up to update and maintain best practices as they change. - -It's smart to document dependencies as you build out your CI/CD toolchains. Such an effort pays off when you onboard new team members. It's also a little bit of insurance when a team member forgets something. - -Finally, automation is enticing to DevOps stakeholders and practitioners alike. It's all fun and games until automation breaks. Having documentation for automation run books, admin guides, and other things in place (and up to date) means your staff can get automation working again regardless of when it breaks down. - -### Final thoughts - -DevOps is a net positive for technical documentation. It pulls content development into the DevOps lifecycle and breaks down the siloes between developers and technical writers within the organizational culture. Without the luxury of a technical writer, teams get the tools to accelerate their document authoring's velocity to match the speed of DevOps. - -What is your organization doing to bring documentation into the DevOps lifecycle? Please share your experience in the comments. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/3/devops-documentation - -作者:[Will Kelly][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/willkelly -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv (Typewriter with hands) -[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops -[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842 -[4]: https://www.agilealliance.org/glossary/definition-of-done -[5]: https://developers.google.com/season-of-docs -[6]: https://swagger.io/specification/ -[7]: https://devops.com/continuous-documentation -[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php -[9]: https://opensource.com/article/20/7/sharepoint-alternative -[10]: https://opensource.com/article/20/7/nextcloud diff --git a/translated/tech/20210330 A DevOps guide to documentation.md b/translated/tech/20210330 A DevOps guide to documentation.md new file mode 100644 index 0000000000..31fd2bffad --- /dev/null +++ b/translated/tech/20210330 A DevOps guide to documentation.md @@ -0,0 +1,92 @@ +[#]: subject: "A DevOps guide to documentation" +[#]: via: "https://opensource.com/article/21/3/devops-documentation" +[#]: author: "Will Kelly https://opensource.com/users/willkelly" +[#]: collector: "lujun9972" +[#]: translator: "Veryzzj" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +文档写作的 DevOps 指南 +====== + +将文档写作加入到 DevOps 的生命周期中 +![Typewriter with hands][1] + +DevOps 正在挑战技术文档的规范,这在IT历史上是前所未有的。从自动化到提高交付速度,再到拆除瀑布式软件开发生命周期模型,这意味着业务和技术文档的理念需要做出巨大改变。 + +以下是DevOps对技术文档不同方面的影响。 + +### 技术作家的角色变化 + +技术作家必须适应 DevOps。好消息是,许多技术作家已经加入到开发团队中,并且由于拥有合作关系和不断增长的产品知识,这些技术作家很具优势。 + +但是如果一个技术作家习惯独立工作,并依赖于领域专家的草稿作为文档的基础,那么就需要做一些调整。 + +进行一些投资以确保文档和其他与项目有关的开发工作获得所需的工具、结构和支持。 从改变[技术作家聘用习惯][2]开始。以[DevOps 的速度][3]编写文档需要重新思考内容规划,并打破DevOps 团队和支持项目的技术作家之间长期存在的隔阂。 + +DevOps 使开发团队摆脱了传统文档实践的束缚。首先,文档[完成的定义][4]必须改变。一些企业的文化使技术作家成为软件开发的被动参与者。DevOps提出了新的要求--随着 DevOps 文化的转变,技术作家的角色也应发生变化。技术作家需要(且必须适应)DevOps 提供的透明度。他们必须融入 DevOps 团队。取决于组织如何塑造这个角色,将技术作家带入团队可能会带来技能上的挑战。 + +### 文档标准、方法和规格 + +虽然 DevOps 还没有影响到技术文档本身,但开源社区已经加强了对应用编程接口(API)文档的帮助质保,已经有不同规模的企业的 DevOps 团队正在使用这些文档。 + +用于记录 API 的开源规范和工具是个非常值得关注的领域。我想这是由于[谷歌文档季][5]的影响,使得一些专业的技术作家能够接触到开源项目,并解决最关键的文档类项目。 + +开源 API 属于 DevOps文档讨论。云原生应用集成需求的重要性正在上升。[OpenAPI 规范][6]--一个定义和记录API的开放标准--是在 DevOps 环境下 API 文档的良好资源。然而,该规范会导致文档的创建和更新过程变得很费时,这使其饱受批评。 + +曾经也有短暂尝试过创建[持续文档][7],并且还有一个来自 CA(现在的Broadcom)的创建[DocOps][8]框架的运动。然而,DocOps 从来没有作为一个行业运动流行起来。 + +DevOps 文档标准的现状意味着 DevOps 团队(包括技术作家)需要在项目的最初阶段开始创建文档。要做到这一点,需要把文档作为一个敏捷故事和(同样重要的)管理期望来添加,并且把它与年度绩效评估放在一起执行。 + +### Documentation tools 文档工具 + +文档的编写应该以一种所有团队成员都可以使用的格式或平台在线进行。MediaWiki、DokuWiki、TikiWiki和其他[开源维基][9]为 DevOps 团队提供了一个编写和维护文档的中央仓库。 + +让团队选择他们的 wiki,就像让他们选择他们的其他持续集成/持续开发(CI/CD)工具链一样。开源维基强大之处在于其可扩展性。例如,DokuWiki包括一系列的扩展,你可以通过安装这些扩展来创建一个符合你的 DevOps 团队的创作要求的平台。 + +如果你有足够的野心来加强你的团队的编写和协作能力,[Nextcloud][10](一个开源的云协作套件)是一个让你的 DevOps 团队上网并给他们提供编写文档所需工具的选择。 + +### DevOps 最佳实践 + +文档在 DevOps 转型中也发挥着作用。例如,组织从 DevOps 实现效率和流程增益的最佳实践的相关记录,这些信息太重要了,不能靠着 DevOps团中之间口口相传。如果你所在的组织有多个 DevOps 团队,那么文档就是统一的力量,它可以促进最佳实践的标准化,并设置了衡量代码质量的基准指标。。 + +一般情况下,开发人员承担了记录 DevOps 实践的工作。即使他们的组织有技术作家,他们也可能跨开发团队工作。因此,开发人员和系统管理员能够捕捉、记录和交流他们的最佳实践是很重要的。这里有一些朝正确的方向发展的提示: + +* 提前花时间为 DevOps 最佳实践创建标准模板。不要陷入复制在线模板,采访利益相关者和团队来创建一个符合团队需求的模板。 +* 寻找一些方法进行信息收集,例如记录团队会议和使用聊天系统日志来作为文档的基础。 +* 建立一个用于发布最佳实践的 wiki。使用 wiki 可以跟踪编辑和更新。这样的平台可以帮助团队在最佳实践发生变化时进行更新和维护。 + +当在构建 CI/CD 工具链时记录依赖关系是非常明智的。尤其是当加入新的团队成员时,你会发现这些记录非常有用,另外当团队成员忘记一些事情时,这也是一种保险。 + +最后,自动化对 DevOps 利益相关者和从业者都很有吸引力。在自动化中断之前,一切都很有趣。拥有自动化运行手册、管理指南和其他内容的文档(并且是最新的)意味着无论何时发生故障,员工都可以让自动化重新工作。 + +### 最后一些想法 + +DevOps 对于技术文档来说是一个积极的因素。它将内容开发纳入DevOps生命周期,并打破组织文化中开发人员和技术作者之间的隔阂。没有技术作家的优势,团队就可以使用工具来加快文档创作的速度,以与DevOps的速度相匹配。 + +您的组织将如何把文档加入到 DevOps 生命周期?请在评论区分享您的经验。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/3/devops-documentation + +作者:[Will Kelly][a] +选题:[lujun9972][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/willkelly +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv "Typewriter with hands" +[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops +[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842 +[4]: https://www.agilealliance.org/glossary/definition-of-done +[5]: https://developers.google.com/season-of-docs +[6]: https://swagger.io/specification/ +[7]: https://devops.com/continuous-documentation +[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php +[9]: https://opensource.com/article/20/7/sharepoint-alternative +[10]: https://opensource.com/article/20/7/nextcloud From 4e46f57738ae4b5bd10a2e6bf286f14be7338def Mon Sep 17 00:00:00 2001 From: ZZJ Date: Thu, 8 Dec 2022 00:10:27 +0800 Subject: [PATCH 2261/3123] translated --- ... Useful Linux Command Line Tools that Everyone Should Use.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md b/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md index 93b41aa58e..9c40df67a5 100644 --- a/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md +++ b/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/2022/06/useful-linux-command/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Veryzzj" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 0eb1cca6a0a3580aa83f3b08bca83f4249bfbe07 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 8 Dec 2022 08:48:02 +0800 Subject: [PATCH 2262/3123] translated --- ...Source App for Personal Relationship Management.md | 86 ------------------- ...Source App for Personal Relationship Management.md | 86 +++++++++++++++++++ 2 files changed, 86 insertions(+), 86 deletions(-) delete mode 100644 sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md create mode 100644 translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md diff --git a/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md deleted file mode 100644 index ab87277b7e..0000000000 --- a/sources/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md +++ /dev/null @@ -1,86 +0,0 @@ -[#]: subject: "Monica: An Open-Source App for Personal Relationship Management" -[#]: via: "https://itsfoss.com/monica/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Monica: An Open-Source App for Personal Relationship Management -====== - -You probably know what CRM stands for – **Customer Relationship Management**. We already have a list of [open-source CRM software][1] that helps small businesses. - -Here, I talk about an interesting open-source web application that takes the same concept for personal relationships. Sounds unique, right? - -Monica is an application that enables you to organize and record your interactions with loved ones. It is **free if you self-host it** and needs a **subscription if you need the hosted version**. - -### Monica: Keep Track of Social Interactions - -![contacts][2] - -It is tough to remember every little detail regarding your interactions with your family, friends, or colleagues. - -You can use [note-taking applications][3] or knowledge management apps like [CubyText][4] to add some information. But those are not tailored to record your interactions. So, you will have to make some effort to add the information in a manner that comes in handy when needed. - -With Monica, it becomes easier to add information about your family, work, the relation between contacts, activities, journals, reminders for important dates, debts, and more. - -You can install it on your own server or opt for a **$90/year** subscription to get the hosted version. - -It is interesting to note that the developer initially built it for his personal requirements. - -### Features of Monica - -![dashboard][5] - -You get loads of options to add information about people and interactions in your daily life. Some of these include: - -- Add notes about a person -- List names of significant others associated with a contact (their children, pets, etc.) -- Phone call logs -- Alternate contact methods for each contact -- Reminders for important dates and events with people. Birthdays are automatically set as reminders. -- Manage gift information -- Useful dashboard to see things at a glance -- Journal entry supported - -It looks like Monica comes packed with various functionalities that make it an all-in-one tool to write journals, take notes, add contact information, add events, and more. - -Unfortunately, there are no mobile apps available. You can access it from the web browser, but it may not be the best experience for everyone. So, if you stick to your smartphone for notes and stuff, you may want to look elsewhere. - -### Self-Host or Subscribe for Access - -If you want a hosted version of Monica, you can look at its [pricing page][6] to know more. - -For self-hosting, you need to head to its [GitHub page][7] and follow the instructions to download and get it installed. There are options to quickly deploy on Platform.sh or Heroku. - -Check the minimum system requirements before choosing a server to host Monica. - -There are no special premium features, and you get the same stuff when self-hosting it compared to its premium subscription for the hosted version. - -It all comes down to convenience. So, choose what sounds good to you. - -Head to its [official website][8] to get all the details and get started. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/monica/ - -作者:[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/best-open-source-crm/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/contacts.png -[3]: https://itsfoss.com/note-taking-apps-linux/ -[4]: https://news.itsfoss.com/cubytext-experimental-project/ -[5]: https://itsfoss.com/wp-content/uploads/2022/11/dashboard.png -[6]: https://www.monicahq.com/pricing -[7]: https://github.com/monicahq/monica#get-started -[8]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ diff --git a/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md new file mode 100644 index 0000000000..4da016170e --- /dev/null +++ b/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md @@ -0,0 +1,86 @@ +[#]: subject: "Monica: An Open-Source App for Personal Relationship Management" +[#]: via: "https://itsfoss.com/monica/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Monica:个人关系管理的开源应用 +====== + +你可能已经知道 CRM 代表 **客户关系管理**。 我们已经有了一份帮助小型企业的[开源 CRM 软件][1]列表。 + +在这里,我将讨论一个有趣的开源 Web 应用,它采用相同的人际关系概念。 听起来很独特,对吧? + +Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果你自行托管,它是免费的,如果你需要托管版本那么订阅**。 + +### Monica:跟踪社交互动 + +![contacts][2] + +很难记住与家人、朋友或同事互动的每一个细节。 + +你可以使用[笔记应用][3]或 [CubyText][4] 等知识管理应用来添加一些信息。 但这些并不是为记录你的互动而量身定制的。 因此,你将不得不付出一些努力,以在需要时得心应手的方式添加信息。 + +使用 Monica,添加你的家庭、工作、联系人之间的关系、活动、日记、重要日期的提醒、债务等信息变得更加容易。 + +可以将其安装在自己的服务器上或选择 **$90/年**的订阅以获得托管版本。 + +有趣的是,开发人员最初是根据他的个人要求构建它的。 + +### Monica 的特点 + +![dashboard][5] + +你可以获得大量选项来添加有关你日常生活中的人和互动的信息。 其中一些包括: + +- 添加关于一个人的注释 +- 列出与联系人相关的重要其他人的姓名(他们的孩子、宠物等) +- 通话记录 +- 每个联系人的备用联系方式 +- 重要约会和重要事件提醒。 生日会自动设置为提醒。 +- 管理礼物信息 +- 有用的仪表板,一目了然 +- 支持日记条目 + +Monica 似乎配备了各种功能,使其成为写日记、做笔记、添加联系信息、添加事件等的一体化工具。 + +不幸的是,没有可用的移动应用。 你可以从 Web 浏览器访问它,但它可能不是每个人的最佳体验。 所以,如果你坚持用智能手机做笔记和其他东西,你可能想看看其他的。 + +### 自托管或订阅访问 + +如果你想要 Monica 的托管版本,可以查看它的[定价页面][6]了解更多信息。 + +对于自托管,你需要前往其 [GitHub 页面][7]并按照说明下载并安装它。 可以选择在 Platform.sh 或 Heroku 上快速部署。 + +在选择服务器来托管 Monica 之前,请检查最低系统要求。 + +没有特殊的高级功能,与托管版本的高级订阅相比,你在自行托管时获得相同的东西。 + +这一切都很方便。 所以,选择对你来说不错的。 + +前往其[官方网站][8]获取所有详细信息并开始使用。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/monica/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-open-source-crm/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/contacts.png +[3]: https://itsfoss.com/note-taking-apps-linux/ +[4]: https://news.itsfoss.com/cubytext-experimental-project/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/dashboard.png +[6]: https://www.monicahq.com/pricing +[7]: https://github.com/monicahq/monica#get-started +[8]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ From 1ac264b20b38d38d7c52a430aa3b57082e85f9f6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 8 Dec 2022 08:55:50 +0800 Subject: [PATCH 2263/3123] translating --- .../tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md index 7cc31a09ec..e43830f831 100644 --- a/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md +++ b/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8fa78d085841c43b8c49a0019e11f031b7717638 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 8 Dec 2022 09:46:53 +0800 Subject: [PATCH 2264/3123] RP @geekpi https://linux.cn/article-15328-1.html --- ...⭐️ Get to know Lua for loops in 4 minutes.md | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md (64%) diff --git a/translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md similarity index 64% rename from translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md rename to published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md index f2753b859d..8f382efbce 100644 --- a/translated/tech/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md +++ b/published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md @@ -3,18 +3,22 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15328-1.html" -4 分钟了解 Lua for 循环 +了解 Lua 的 for 循环 ====== -在编程中,迭代是一个重要的概念,因为代码通常必须多次扫描一组数据,以便它可以单独处理每个项目。控制结构使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供不同的控制,在 [Lua][1] 中,有 while 循环、for 循环和 repeatuntil 循环。本文介绍 for 循环。我将在另一篇文章中介绍 while 和 repeat until 循环。 +![][0] -### For 循环 +> 了解 for 循环结构和你在控制它时拥有的选项,这样你可以对如何在 Lua 中处理数据做出聪明的决定。 -for 循环采用已知数量的项目并确保处理每个项目。“项目”可以是数字。它也可以是一个包含多个条目或任何 Lua 数据类型的表。语法和逻辑有点灵活,但语法允许这些参数,每个参数本质上描述了一个计数器: +在编程中,迭代是一个重要的概念,因为代码通常必须多次扫描一组数据,以便它可以单独处理每个项目。控制结构使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供不同的控制,在 [Lua][1] 中,有 `while` 循环、`for` 循环和 `repeat until` 循环。本文介绍 `for` 循环。我将在另一篇文章中介绍 `while` 和 `repeat until` 循环。 + +### for 循环 + +`for` 循环接受已知数量的项目并确保处理每个项目。“项目”可以是数字,它也可以是一个包含多个条目或任何 Lua 数据类型的表。语法和逻辑有点灵活,但语法允许这些参数,每个参数本质上描述了一个计数器: - 计数器的起始值 - 停止值 @@ -32,7 +36,10 @@ end 运行代码以确保所有三个项目都得到处理: ``` -$ lua ./for.lua3: apocalypse2: Halloween1: zombie +$ lua ./for.lua +3: apocalypse +2: Halloween +1: zombie ``` 这段代码有效地“反向”处理了表,因为它是倒数。你可以正数: @@ -46,7 +53,10 @@ end 此示例从最低索引到最高索引处理表: ``` -$ lua ./for.lua1: zombie2: Halloween3: apocalypse +$ lua ./for.lua +1: zombie +2: Halloween +3: apocalypse ``` ### 增量 @@ -90,7 +100,7 @@ end 此代码创建一个变量,其中包含启动时的时间戳。如果时间戳是偶数(除以 2 时模数为 0),则只将时间戳放入表中。如果时间戳是奇数,它将三个字符串放入一个表中。 -现在你无法确定您的 for 循环需要运行多少次。可能是一次或是三次,但没有办法确定。解决方案是将起始计数设置为 1,将最终计数设置为表的长度(`#mytable` 是确定表长度的内置快捷方式)。 +现在你无法确定你的 `for` 循环需要运行多少次。可能是一次或是三次,但没有办法确定。解决方案是将起始计数设置为 1,将最终计数设置为表的长度(`#mytable` 是确定表长度的内置快捷方式)。 可能需要多次运行脚本才能看到这两个结果,但最终,你会得到如下结果: @@ -104,7 +114,7 @@ baz ### 带 pairs 和 ipairs 的 for 循环 -如果你已经阅读了我关于[表迭代][2]的文章,那么你已经熟悉了 Lua 中最常见的 for 循环之一。这个使用 `pairs` 或 `ipairs` 函数来迭代一个表: +如果你已经阅读了我关于 [表迭代][2] 的文章,那么你已经熟悉了 Lua 中最常见的 `for` 循环之一。这个使用 `pairs` 或 `ipairs` 函数来迭代一个表: ``` mytable = { "zombie", "Halloween", "apocalypse" } @@ -113,15 +123,15 @@ for i,v in ipairs(mytable) do end ``` -`pairs` 和 `ipairs` 函数“解包”表并将值转储到你提供的变量中。在此示例中,我将 `i` 用于 _index_,将 `v` 用于 _value_,但变量名称无关紧要。 +`pairs` 和 `ipairs` 函数“解包”表并将值转储到你提供的变量中。在此示例中,我将 `i` 用于 _索引_,将 `v` 用于 _值_,但变量名称无关紧要。 ``` $ lua ./for.lua1: zombie2: Halloween3: apocalypse ``` -### For 循环 +### for 循环 -for 循环结构在编程中很常见,由于经常使用表和 pairs 函数,因此在 Lua 中非常常见。了解 for 循环结构和控制它时的选项意味着你可以就如何在 Lua 中处理数据做出明智的决定。 +`for` 循环结构在编程中很常见,由于经常使用表和 `pairs` 函数,因此在 Lua 中非常常见。了解 `for` 循环结构和控制它时的选项意味着你可以就如何在 Lua 中处理数据做出明智的决定。 -------------------------------------------------------------------------------- @@ -130,7 +140,7 @@ via: https://opensource.com/article/22/11/lua-for-loops 作者:[Seth Kenlon][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/) 荣誉推出 @@ -138,3 +148,4 @@ via: https://opensource.com/article/22/11/lua-for-loops [b]: https://github.com/lkxed [1]: https://opensource.com/article/22/11/lua-worth-learning [2]: https://opensource.com/article/22/11/iterate-over-tables-lua +[0]: https://img.linux.net.cn/data/attachment/album/202212/08/094609xg8sgk832t0y6s68.jpg \ No newline at end of file From 56823c86e10b9dc2e34131254cab158abd25ee4d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 8 Dec 2022 12:17:53 +0800 Subject: [PATCH 2265/3123] RP @robsean https://linux.cn/article-15329-1.html --- ...to Change Login Screen Background in Ubuntu.md | 103 +++++++++++++++++ ...to Change Login Screen Background in Ubuntu.md | 107 ------------------ 2 files changed, 103 insertions(+), 107 deletions(-) create mode 100644 published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md delete mode 100644 translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md diff --git a/published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md new file mode 100644 index 0000000000..1c1701997a --- /dev/null +++ b/published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md @@ -0,0 +1,103 @@ +[#]: subject: "How to Change Login Screen Background in Ubuntu" +[#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15329-1.html" + +如何更改 Ubuntu 的登录屏幕背景 +====== + +![][0] + +> 这篇指南可以让你如何摆脱 Ubuntu 的无趣的登录背景屏幕,并在你每次登录时设置一张漂亮的图片来欢迎你。 + +我总是认为,在你启动你的系统后,应该有一个漂亮的登录屏幕来欢迎你。这本身就为你即将开始的工作或活动渲染了愉快的氛围。尽管,我不是一名 Windows 的粉丝,但是我很欣赏 Windows 10 的登录背景都会每天随着 Bing 壁纸进行更改,它看起来好极了,对吧? + +前段时间,我们讨论了如何 [更改 Fedora 的登录屏幕背景][1] 和 [更改 elementary OS 的登录屏幕背景][2] 。现在这篇指南将向你解释,如何更改使用 GNOME Shell 的 Ubuntu 的登录屏幕背景。 + +登录屏幕背景是显示管理器(DM)属性的一部分。这篇指南将使用一位用户在 GitHub 中创建的一个脚本,使得普通用户也能简单易用。否则,你需要在提取 `.gresource` 文件后,必须手动更改 Gnome 显示管理器Gnome Display Manager(GDM)的 CSS 文件,接下来再编译它。一般来说,这是很复杂的。 + +![Ubuntu 登录屏幕 – 在更改前][3] + +### 更改 Ubuntu 的登录背景 + +打开一个终端(按下组合键 `CTRL+ALT+T`)。 + +使用下面的命令,下载这个 [GitHub 仓库][4] : + +``` +wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background +``` + +**注意**: 如果你没有 `wget` ,使用 `sudo apt install wget` 来安装它。 + +> **Ubuntu 22.04 Jammy Jellyfish** 用户需要更改一些额外的代码来使其工作,因为,在 GitHub 仓库中,开发者没有修复它。因此,在这里你需要自己来更改。 +> +> 使用 gedit 来打开 `change-gdm-background` 文件。接下来,转到下面的行(`#15`) 并添加 `|jammy` 。 +> +> ![脚本更改为允许 jammy][5] +> +> 接下来,转到下面的两行(`#144` 和 `#184`)。将 `gdm3.css` 更改为 `gdm.css` 。如下图所示。 +> +> ![修正针对 gdm 的 css 文件][6] +> +> 最后,保存文件,并遵循如下的操作指南。这种解决方法只适用于 Ubuntu 22.04 的登录屏幕的更改。 + +更改脚本的权限来使其可执行: + +``` +chmod +x change-gdm-background +``` + +接下来,更改 Ubuntu 的登录背景壁纸,使用下面的命令。按照你的图片相应地更改路径: + +``` +sudo ./change-gdm-background ~/Pictures/tree.jpg +``` + +这一步骤可能需要 `libglib2.0-dev` 软件包,它将会自动地安装。提取和编译 `.gresource` 会用到它。 + +在安装后,它应该会提示你重新启动 GDM 。慎重起见,按下 `N` 按键。 + +注销后,你可以看到更改后的 Ubuntu 的背景。 + +如果你没有看到更改,尝试重新启动你的系统,然后尝试登录。 + +![在更改后的,Ubuntu 的登录屏幕背景][7] + +### 恢复先前的登录屏幕 + +该脚本也提供了一种恢复先前的登录屏幕的特色功能。它在更改你的 `.gresource` 文件前,会将其进行备份。因此,恢复先前的登录屏幕,只需要在终端中简单地运行下面的命令。 + +``` +sudo ./change-gdm-background --restore +``` + +这应该会将其登录屏幕更改回其先前的形式。 + +请在下面的评论框中,让我知道这篇指南的内容是否对你有效果,这应该适用于所有的最新版本的 Ubuntu Linux 。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/change-login-background-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[robsean](https://github.com/robsean) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2021/09/change-login-background-fedora/ +[2]: https://www.debugpoint.com/2021/07/change-lock-login-screen-background-elementary-os/ +[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-before-change-1024x539.jpg +[4]: https://github.com/thiggy01/change-gdm-background +[5]: https://www.debugpoint.com/wp-content/uploads/2022/09/script-change-to-allow-jammy.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/correct-the-css-file-for-gdm.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-After-Change-1024x538.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202212/08/121701hdfufrlqe4qtdtel.jpg \ No newline at end of file diff --git a/translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md deleted file mode 100644 index 844e2e9396..0000000000 --- a/translated/tech/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md +++ /dev/null @@ -1,107 +0,0 @@ -[#]: subject: "How to Change Login Screen Background in Ubuntu" -[#]: via: "https://www.debugpoint.com/change-login-background-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -如何更改 Ubuntu 的登录屏幕背景 -====== - -**这是让你如何摆脱 Ubuntu 的无趣的登录背景屏幕,并在你每次登录时设置一张极好的图片来欢迎你的指南。** - -我总是认为,在你启动你的系统后,一个极好的登录屏幕来欢迎你,是一件美妙的事。这本身就为你即将开始的工作或活动渲染了愉快的氛围。尽管,我不是一名 Windows 的粉丝,但是我很欣赏 Windows 10 的登录背景都会每天随着 Bing 壁纸进行更改,它看起来好极了,不是吗? - -前段时间,我们讨论了如何 [更改 Fedora 的登录屏幕背景][1] 和 [更改 elementary OS 的登录屏幕背景][2] 。现在这篇指南将向你解释,如何更改使用 GNOME Shell 的 Ubuntu 的登录屏幕背景。 - -登录屏幕背景是显示管理器属性的一部分。这篇指南将使用一位用户在 GitHub 中创建的一个脚本,来使普通的用户能够纵享丝滑。否则,在提取 `.gresource` 文件后,你必须手动更改 Gnome 显示管理器Gnome Display Manager (gdm) 的 CSS 文件,接下来再编译它 – 一般来说,这是很复杂的。 - -![Ubuntu Login screen - before change][3] - -Ubuntu 登录屏幕 – 在更改前 - -### 更改 Ubuntu 的登录背景 - -- 打开一个终端 (按下组合键 CTRL+ALT+T) - -- 下载 [GitHub repo][4] ,使用下面的命令。 - -``` -wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background -``` - -**注意**: 如果你没有 wget ,使用 `sudo apt install wget` 来安装它 - -**Ubuntu 22.04 Jammy Jellyfish** 用户需要更改一些额外的代码来使其工作,因为,在 GitHub 中,开发者没有修复它。因此,在这里你需要自己来更改。 - -使用 gedit 来打开 `change-gdm-background` 文件。接下来,转到下面的行 (#15) 并添加 `|jammy` 。 - -![script change to allow jammy][5] - -脚本更改为允许 jammy - -接下来,转到下面的两行 (#144 和 #184)。将 `gdm3.css` 更改为 `gdm.css` 。如下图所示。 - -![correct the css file for gdm][6] - -修正针对 gdm 的 css 文件 - -最后,保存文件,并遵循如下的操作指南。这种解决方法只适用于 Ubuntu 22.04 的登录屏幕的更改。 - -- 更改脚本的权限来使其可执行 - -``` -chmod +x change-gdm-background -``` - -- 接下来,更改 Ubuntu 的登录背景壁纸,使用下面的命令。按照你的图片相应地更改路径 - -``` -sudo ./change-gdm-background ~/Pictures/tree.jpg -``` - -这一步骤可能需要 `libglib2.0-dev` 软件包,它将会自动地安装。提取/编译 `.gresource` 会用到它 - -在安装后,它应该会提示你重新启动 gdm 。慎重起见,按下 N 按键。 - -- 注销后,你可以看到更改后的 Ubuntu 的背景。 -- 如果你没有看到更改,尝试重新启动你的系统,然后尝试登录。 - -![Ubuntu Login screen After Change][7] - -在更改后的,Ubuntu 的登录屏幕背景 - -### 恢复先前的登录屏幕 - -该脚本也提供了一种恢复先前的登录屏幕的特色功能。它在更改你的 `.gresource` 文件前,会将其进行备份。因此,恢复先前的登录屏幕,只需要在终端中简单地运行下面的命令。 - -``` -sudo ./change-gdm-background --restore -``` - -这应该会将其登录屏幕更改回其先前的形式。 - -在下面的评论框中,让我知道这篇指南的内容是否对你有效果,这应该适用于所有的最新版本的 Ubuntu Linux 。 - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/change-login-background-ubuntu/ - -作者:[Arindam][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://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/2021/09/change-login-background-fedora/ -[2]: https://www.debugpoint.com/2021/07/change-lock-login-screen-background-elementary-os/ -[3]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-before-change-1024x539.jpg -[4]: https://github.com/thiggy01/change-gdm-background -[5]: https://www.debugpoint.com/wp-content/uploads/2022/09/script-change-to-allow-jammy.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/09/correct-the-css-file-for-gdm.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2021/09/Ubuntu-Login-screen-After-Change-1024x538.jpg From c9b5c85c26004af36e5e8b5989e6ae0da08fa6bd Mon Sep 17 00:00:00 2001 From: yzuowei Date: Thu, 8 Dec 2022 16:28:44 +0800 Subject: [PATCH 2266/3123] translating... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 申请翻译 --- .../20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md index ae3e114946..de4bcc876e 100644 --- a/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md +++ b/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/64-bit-math" [#]: author: "Jerome Shidel https://opensource.com/users/shidel" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b81d766c9ca56d5ba7676090540416e3541c3525 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 8 Dec 2022 17:11:16 +0800 Subject: [PATCH 2267/3123] ALL @wxy https://linux.cn/article-15330-1.html --- ... Year Brings a Lot of Early Christmas Gifts.md | 134 +++++++++++++++++ ... Year Brings a Lot of Early Christmas Gifts.md | 136 ------------------ 2 files changed, 134 insertions(+), 136 deletions(-) create mode 100644 published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md delete mode 100644 sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md diff --git a/published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md b/published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md new file mode 100644 index 0000000000..d3c3370180 --- /dev/null +++ b/published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md @@ -0,0 +1,134 @@ +[#]: subject: "Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts" +[#]: via: "https://news.itsfoss.com/kali-linux-2022-4-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15330-1.html" + +Kali Linux 发布今年最后一个版本 +====== + +> Kali Linux 2022.4 现在已经可以下载了。从这里了解它的新内容。 + +![Kali Linux 今年的最后一次更新早早带来了很多圣诞礼物][1] + +Kali Linux 是一个开源的、基于 Debian 的发行版,专注于渗透测试和安全审计。 + +它由各种工具、配置和自动化脚本组成,以帮助你实现这一目标。 + +作为今年的最后一个版本,**Kali Linux 2022.4** 与其 [前一个版本][2] 相比有许多改进。 + +让我带你了解这个版本。 + +### 🆕 有什么新变化? + +![kali linux 22.04][3] + +Kali Linux 2022.4 以更新的形式早早带来了圣诞礼物;这里有一些快乐的东西!🎄 + +- Linux 内核 6.0 +- 返回微软 Azure 市场 +- 支持 Pine 64 的 PinePhone +- 新的桌面环境 +- QEMU 镜像 +- 新的工具 + +#### 支持 Pine 64 的 PinePhone + +![kali linux nethunter pro on pinephone pro][4] + +Kali Linux 现在已经正式支持 Pine 64 的 PinePhone 和 PinePhone Pro。 + +这种支持是以一种新的以移动为重点的发行版的形式出现的,名为 “Kali NetHunter Pro”。 + +他们把它标记为 Kali Linux 和 [NetHunter][5] 的一个新的起点;这个发行版已经为移动设备进行了优化,可以从 SD 卡上与主操作系统一起双启动。 + +此外,他们还暗示未来将发布 Kali NetHunter Pro 的替代版本。 + +这些版本将以 Plasma Mobile 为特色,同时提供了新的安装程序,可以将 Kali NetHunter Pro 安装到设备的内部闪存中。 + +#### 返回微软 Azure 市场 + +![kali linux 22.04 Azure Marketplace][6] + +在离开 Azure 市场很长时间后,Kali Linux 终于被 [添加回来][7] 了。 + +Kali Linux 背后的公司 [Offensive Security][8] 提到,借助 [kali-cloud build-scripts][9],现在发布过程已经自动化了。 + +用户现在将享受与他们的 [亚马逊 AWS 镜像][10] 相同的一致性水平。 + +#### 新的桌面环境 + +![kali linux 22.04 with gnome 43][11] + +通常情况下,Kali Linux 使用轻量级的 Xfce 桌面环境作为其默认的桌面环境。 + +但现在,它也支持最近的 KDE Plasma 和 GNOME。 + +**在 Plasma 方面:** Kali Linux 现在采用了 KDE Plasma 5.26;改善了整体的桌面体验,并引入了许多调整和改进。 + +**在 GNOME 方面:** 包括了 [GNOME 43][12] 的常规增强,他们也增加了一些自己的调整。 + +在 [adw-gtk3][13] 项目的基础上增加了一个新的基于 GTK3 的主题,并加入了一些 Kali 的调整。 + +然后,新的 GNOME 文本编辑器取代了 Gedit,并带有一个更新的 Kali 主题。 + +#### QEMU 镜像 + +他们还在预生成的镜像库中增加了一个新的 [QEMU 镜像][14],希望它能让人们更容易在 [Proxmox Virtual Environments][15]、[virt-manager][16] 或 [libvirt][17] 等自托管环境中部署 Kali Linux。 + +#### 🛠️ 其他变化/改进措施 + +除了上述变化,还有其他几个值得注意的变化: + +- 增强了对 Kali NetHunter 的蓝牙支持。 +- 增加了 Kali 对树莓派镜像烧录工具的支持。 +- USBArmory MKII 中的 u-boot 引导加载器已经更新到 2022.10。 +- 更新了各种 Kali 文档。 +- 新的工具,如 bloodhound.py、certipy、rizin-cutter 等等。 +- 重新打造了 Kali Linux 的社交媒体渠道。 + +你可以通过 [发布公告][18] 来了解更多技术细节。 + +### 📥 下载 Kali Linux 2022.4 + +Kali Linux 2022.4 已经在 [官方网站][19] 上提供了。 + +> **[Kali Linux 2022.4][19]** + +你可以选择适合你的要求的镜像并下载它。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kali-linux-2022-4-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kali-linux-2022-04-release.jpg +[2]: https://news.itsfoss.com/kali-linux-2022-3-release/ +[3]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4.png +[4]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_NetHunter_Pro.jpg +[5]: https://www.kali.org/docs/nethunter/ +[6]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_Azure.jpg +[7]: https://azuremarketplace.microsoft.com/en/marketplace/apps/kali-linux.kali +[8]: https://www.offensive-security.com +[9]: https://gitlab.com/kalilinux/build-scripts/kali-cloud +[10]: https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to +[11]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_GNOME43.jpg +[12]: https://news.itsfoss.com/gnome-43-release/ +[13]: https://github.com/lassekongo83/adw-gtk3 +[14]: https://qemu-project.gitlab.io/qemu/system/images.html +[15]: https://www.proxmox.com/en/proxmox-ve +[16]: https://virt-manager.org +[17]: https://libvirt.org +[18]: https://www.kali.org/blog/kali-linux-2022-4-release/#desktop-updates +[19]: https://www.kali.org/get-kali/ diff --git a/sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md b/sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md deleted file mode 100644 index 62db7e3017..0000000000 --- a/sources/news/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md +++ /dev/null @@ -1,136 +0,0 @@ -[#]: subject: "Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts" -[#]: via: "https://news.itsfoss.com/kali-linux-2022-4-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts -====== - -Kali Linux 2022.4 is now available to download. Learn what's new here. - -![Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts][1] - -Kali Linux is an open-source, Debian-based distro focusing on penetration testing and security auditing. - -It consists of various tools, configurations, and automation to help you achieve that. - -Dubbed as the final release of this year, **Kali Linux 2022.4** promises many improvements over its [predecessor][2]. - -Let me take you through this release. - -### 🆕 What's New? - -![kali linux 22.04][3] - -Kali Linux 2022.4 comes bearing early Christmas gifts in the form of updates; here are some of the merry ones! 🎄 - -- **Linux Kernel 6.0** -- **Return to the Microsoft Azure Marketplace** -- **Pine 64 PinePhone Support** -- **New Desktop Environments** -- **QEMU image** -- **New Tools** - -#### Recommended Read 📖 - -#### Pine 64 PinePhone Support - -![kali linux nethunter pro on pinephone pro][4] - -Kali Linux now has official support for the Pine 64 PinePhone and PinePhone Pro. - -This support has come in the form of a new mobile-focused distro called '**Kali NetHunter Pro**'. - -They are marking it as a new beginning for Kali Linux and [NetHunter][5]; this distro has been optimized for mobile devices and can be dual-booted alongside the main OS from an SD card. - -In addition, they have also hinted at a future release of alternative versions of Kali NetHunter Pro. - -These will feature Plasma Mobile alongside new installers for installing Kali NetHunter Pro onto the internal flash memory of a device. - -#### Return to the Microsoft Azure Marketplace - -![kali linux 22.04 azure marketplace][6] - -After being absent from the Azure Marketplace for a long time, Kali Linux was finally [added back][7]. - -[Offensive Security][8], the company behind Kali Linux, mentions that the publishing process has now been automated thanks to [kali-cloud build-scripts][9]. - -Users will now enjoy the same consistency level as their [Amazon AWS image][10]. - -#### New Desktop Environments - -![kali linux 22.04 with gnome 43][11] - -Usually, Kali Linux uses the lightweight Xfce desktop environment as its default desktop environment. - -But now, it also features support for the recent KDE Plasma and GNOME versions. - -**In the case of Plasma:** Kali Linux now features KDE Plasma 5.26; it is meant to improve the overall desktop experience and has bought in many tweaks and improvements. - -**In the case of GNOME:** Including the usual enhancements with [GNOME 43][12], they have also added a few tweaks of their own. - -A new GTK3-based theme has been added based on the [adw-gtk3][13] project with a few of Kali's tweaks. - -Then, the new 'gnome-text-editor' replaces 'gedit' and comes with an updated Kali theme. - -#### QEMU image - -They have also added a new [QEMU image][14] to their pre-generated image library in the hopes that it will make it easier for people to implement Kali Linux on self-hosted environments like [Proxmox Virtual Environments][15], [virt-manager][16], or [libvirt][17]. - -#### 🛠️ Other Changes/Improvements - -Besides the above changes, there are several other notable ones: - -- Enhanced Bluetooth support for Kali NetHunter. -- Addition of Kali to Raspberry Pi Imager. -- The u-boot bootloader in USBArmory MKII has been updated to 2022.10. -- Updates to various Kali Documentation. -- New tools such as **bloodhound.py**, **certipy**, **rizin-cutter,** and a few more. -- Revamped social media channels of Kali Linux. - -You can go through the [release announcement][18] to get into the more technical details. - -### 📥 Download Kali Linux 2022.4 - -Kali Linux 2022.4 has been made available on the [official website][19]. - -[Kali Linux 2022.4][19] - -You can choose the image suitable for your requirements and download it. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kali-linux-2022-4-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kali-linux-2022-04-release.jpg -[2]: https://news.itsfoss.com/kali-linux-2022-3-release/ -[3]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4.png -[4]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_NetHunter_Pro.jpg -[5]: https://www.kali.org/docs/nethunter/ -[6]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_Azure.jpg -[7]: https://azuremarketplace.microsoft.com/en/marketplace/apps/kali-linux.kali -[8]: https://www.offensive-security.com -[9]: https://gitlab.com/kalilinux/build-scripts/kali-cloud -[10]: https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to -[11]: https://news.itsfoss.com/content/images/2022/12/Kali-Linux-2022.4_GNOME43.jpg -[12]: https://news.itsfoss.com/gnome-43-release/ -[13]: https://github.com/lassekongo83/adw-gtk3 -[14]: https://qemu-project.gitlab.io/qemu/system/images.html -[15]: https://www.proxmox.com/en/proxmox-ve -[16]: https://virt-manager.org -[17]: https://libvirt.org -[18]: https://www.kali.org/blog/kali-linux-2022-4-release/#desktop-updates -[19]: https://www.kali.org/get-kali/ From ba3199b78a22bb5124ed7de6ffdbc9e1f2733842 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Thu, 8 Dec 2022 17:22:19 +0800 Subject: [PATCH 2268/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 156 ----------------- ...⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 157 ++++++++++++++++++ 2 files changed, 157 insertions(+), 156 deletions(-) delete mode 100644 sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md create mode 100644 translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md diff --git a/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md deleted file mode 100644 index de4bcc876e..0000000000 --- a/sources/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md +++ /dev/null @@ -1,156 +0,0 @@ -[#]: subject: "Doing 64-bit math on a 16-bit system" -[#]: via: "https://opensource.com/article/22/10/64-bit-math" -[#]: author: "Jerome Shidel https://opensource.com/users/shidel" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Doing 64-bit math on a 16-bit system -====== - -With a little basic understanding of assembly, these functions could be scaled to do math on integers of any bit size. - -A few years ago, I wrote a command-line math program for FreeDOS called VMATH. It was capable of performing only extremely simple mathematical operations on very small unsigned integers. With some recent interest in basic math in the FreeDOS community, I improved VMATH to provide basic math support on signed 64-bit integers. - -The process of manipulating big numbers using only 16-bit 8086 compatible assembly instructions is not straightforward. I would like to share some samples of the techniques used by VMATH. Some of the methods used are fairly easy to grasp. Meanwhile, others can seem a little strange. You may even learn an entirely new way of performing some basic math. - -The techniques explained here to add, subtract, multiply, and divide 64-bit integers are not limited to just 64-bits. With a little basic understanding of assembly, these functions could be scaled to do math on integers of any bit size. - -Before digging into those math functions, I want to cover some basics of numbers from the computer's perspective. - -### How computers read numbers - -An Intel-compatible CPU stores the value of numbers in bytes from least to most significant. Each byte is made up of 8 binary bits and two bytes make up a word. - -A 64-bit number that is stored in memory uses 8 bytes (or 4 words). For example, a value of 74565 (0x12345in hexadecimal) looks something like this: - -``` -as bytes: db 0x45, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 -as words: dw 0x2345, 0x0001, 0x0000, 0x0000 -``` - -When reading or writing data to memory, the CPU processes the bytes in the correct order. On a processor more modern than an 8086, there can be larger groups, such as a quadword which can represent the entire 64-bit integer as **0x0000000000012345**. - -The 8086 CPU doesn't understand such gigantic numbers. When writing a program for FreeDOS, you want something that can run on any PC, even an original IBM PC 5150. You also want to use techniques that can be scaled to any size integer. The capabilities of a more modern CPU do not really concern us. - -For the purpose of doing integer math, the data can represent two different types of numbers. - -The first is unsigned which uses all of its bit to represent a positive number. Their value can be from **0** up to **(2 ^ (numberofbits) - 1)**. For example, 8 bits can have any value from **0** to **255**, with 16 bits ranging from **0** to **65535**, and so on. - -Signed integers are very similar. However, the most significant bit of the number represents whether the number is positive (**0**) or negative (**1**). The first portion of the number is positive. It can range from **0** up to **(2 ^ (numberofbits - 1) - 1)**. The negative portion follows the positive, ranging from its lowest value **(0-(2 ^ (numberofbits - 1)))** up to **-1**. - -For example, an 8-bit number represents any value from **0** to **127** in the positive range, and **-128** through **-1** in the negative range. To help visualize it, consider the **byte** as the set of numbers **[0…127,-128…-1]**. Because **-128** follows **127** in the set, adding **1** to **127** equals **-128**. While this may seem strange and backward, it actually makes doing basic math at this level much easier. - -To perform basic addition, subtraction, multiplication, and division of very big integers, you should explore some simple routines to get a number's absolute or negative value. You will need them once you start doing math on signed integers. - -### Absolute and negative values - -Getting the absolute value of a signed integer is not as bad as it may first seem. Because of how unsigned and signed numbers are represented in memory, there is a fairly easy solution. You can simply invert all the bits of a negative number and add **1** to get the result. - -That might sound odd if you haven't worked in binary before, but that is how works. To give you an example, take an 8-bit representation of a negative number, such as **-5**. Since it would be near the end of the **[0…127,-128…-1]** byte set, it would have a value of **0xfb** in hexadecimal, or **11111011** in binary. If you flip all the bits, you get **0x04**, or **00000100** in binary. Add **1** to that result and you have the answer. You just changed the value from **-5** to **+5**. - -You can write this procedure in assembly to return the absolute value of any 64-bit number: - -``` -; syntax, NASM for DOS -proc_ABS: -  ; on entry, the SI register points to the memory location in the -  ; data segment (DS) for the program containing the 64-bit -  ; number that will be made positive. -  ; On exit, the Carry Flag (CF) is set if resulting number can -  ; not be made positive. This only happens with maximum -  ;  negative value. Otherwise, CF is cleared. -  ; check most significant bit of highest byte -  test [si+7], byte 0x80 -  ; if not set, the number is positive -  jz .done_ABS -  ; flip all the bits of word #4 -  not word [si+6] -  not word [si+4]       ; word #3 -  not word [si+2]       ; word #2 -  not word [si]                 ; word #1 -  ; increment the 1st word -  inc word [si] -  ; if it did not roll over back to zero, done -  jnz .done_ABS -  ; increment the 2nd word -  inc word [si+2] -  ; if it rolled over, increment the next word -  jnz .done_ABS -  inc word [si+4] -  jnz .done_ABS -  ; this cannot roll over -  inc word [si+6] -  ; check most significant bit once more -  test [si+7], byte 0x80 -  ; if it is not set we were successful, done -  jz .done_ABS -  ; overflow error, it reverted to Negative -  stc -  ; set Carry Flag and return -  ret -.done_ABS: -  ; Success, clear Carry Flag and return -  clc -  ret -``` - -As you may have noticed in the example, there is an issue that can occur in the function. Because of how positive and negative numbers are represented as binary values, the maximum negative number cannot be made positive. For 8-bit numbers, the maximum negative value is **-128**. If you flip all of the bits for **-128** (binary1__0000000), you get **127** (binary0__1111111) the maximum positive value. If you add **1** to that result, it will overflow back to the same negative number (-128). - -To turn a positive number negative, you can just repeat the process you used to get the absolute value. The example procedure is very similar, except you want to make sure the number is not already negative at the start. - -``` -; syntax, NASM for DOS -proc_NEG: -  ; on entry, the SI points to the memory location -  ; for the number to be made negative. -  ; on exit, the Carry Flag is always clear. -  ; check most significant bit of highest byte -  test [si+7], byte 0x80 -  ; if it is set, the number is negative -  jnz .done_NEG -  not word [si+6]       ; flip all the bits of word #4 -  not word [si+4]       ; word #3 -  not word [si+2]       ; word #2 -  not word [si]                 ; word #1 -  inc word [si]                 ; increment the 1st word -  ; if it did not roll over back to zero, done -  jnz .done_NEG -  ; increment the 2nd word -  inc word [si+2] -  ; if it rolled over, increment the next word -  jnz .done_NEG -  inc word [si+4] -  jnz .done_NEG -  ; this cannot roll over or revert back to -  inc word [si+6] -  ; positive. -.done_NEG: -  clc                   ; Success, clear Carry Flag and return -  ret -``` - -With all of that shared code between the absolute and negative functions, they should be combined to save some bytes. There are additional benefits when such code is combined. For one, it helps prevent simple typographic errors. It also can reduce testing requirements. Moreover, the source generally becomes easier to read, follow, and understand. Sometimes with a long series of assembly instructions, it is easy to lose track of what is actually happening. But for now, we can move along. - -Getting the absolute or negative value of a number was not very difficult. But, those functions will be critically important later on when we start doing math on signed integers. - -Now that I've covered the basics of how integer numbers are represented at the bit level and created a couple of basic routines to manipulate them a little, we can get to the fun stuff. - -Let's do some math! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/64-bit-math - -作者:[Jerome Shidel][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/shidel -[b]: https://github.com/lkxed - diff --git a/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md new file mode 100644 index 0000000000..da47247bb9 --- /dev/null +++ b/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md @@ -0,0 +1,157 @@ +[#]: subject: "Doing 64-bit math on a 16-bit system" +[#]: via: "https://opensource.com/article/22/10/64-bit-math" +[#]: author: "Jerome Shidel https://opensource.com/users/shidel" +[#]: collector: "lkxed" +[#]: translator: "yzuowei " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在16位系统上做64位数学 +====== + +只需要一点点汇编的基础理解,这些函数就能适应体任意大小的整型数学运算。 + +几年前,我为 FreeDOS 写了一个命令行数学程序叫做 VMATH。它可以在很小的无符号整型上执行十分简单的数学运算。出于近来对 FreeDOS 社区里基本数学的兴趣,我改进了 VMATH 使其可以为有符号64位整型提供基本的数学支持。 + +仅使用兼容16位 8086 的汇编来操控大型数字的过程并不直接。我希望能够分享一些在 VMATH 中用到的技术的例子。其中一些方法掌握起来还挺容易。同时,也有着别的看起来有点奇怪的方法。你甚至可能学到一种全新的进行基本数学运算的方式。 + +接下来要讲的加,减,乘,除会用到的技术将不局限于将不局限于64位整型。只需要一点点汇编的基础理解,这些函数就能适应任意大小的整型数学运算。 + +在深挖这些数学函数前,我想要覆盖一些计算机看数字的基础视角。 + +### 计算机是如何读取数字的 + +一个兼容 Intel 的 CPU 以字节 (byte) 的形式贮存数字,储存顺序为从最低有效字节到最高有效字节。每个字节由8个二进位组成,两个字节组成一个字 (word)。 + +一个储存在内存里的64位整型占用了8个字节 (或4个字)。例如,数字74565(十六进制表示为0x12345)的值长得是这个样子的: + +``` +as bytes: db 0x45, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +as words: dw 0x2345, 0x0001, 0x0000, 0x0000 +``` + +当读取或写入数据到内存时,CPU 会以正确的顺序处理这些字节。对于一个比 8086 更现代的处理器而言,数据组可以再大些,比如一个四字组就可以表达整个64为整型为 **0x0000000000012345**。 + +8086 CPU 不能理解这么大的数字。当为 FreeDOS 编程时,你想要写的是一个能在任意电脑上跑的程序,甚至是早期的 IBM PC 5150。你想要使用能够适应任意大小整型的技术。我们并不关心现代 CPU 的能力。 + +为了能做整型运算,我们的数据需要表达两种不同类型的数字。 + +第一种是无符号整型,其使用了所有字位来表达一个正数。无符号整型的值域为从 **0** 到 **(2 ^ (字位数量) - 1)**。例如,8位数可以是 **0** 到 **255** 之间的任意值,而16位数则在 **0** 到 +**65535** 之间,以此类推。 + +有符号整型也很类似。不同之处在于数字的最显著位代表了这个数是一个整数 (**0**) 还是一个负数 (**1**)。有符号整型的值域前半部分位正数,正数值域是从 **0** 到 **(2 ^ (字位数量 - 1) - 1)**。整型值域的后半部分为负数,负数值域则从 **(0-(2 ^ (字位数量 - 1)))** 到 **-1**。 + +比如说,一个8位数代表着 **0** 到 **127** 之间的任意正数,以及 **-128** 到 **-1** 之间的任意负数。为了能更好的理解这一点,想象 **字节** 为一列数组 **[0...127,-128...-1]**。因为 **-128** 在数组内紧跟着 **127**,**127** 加 **1** 等于 **-128**。当然这可能看起来有点奇怪甚至反常,但这其实让这个层级的基本数学运算变简单了。 + +为了能够对大型整型进行简单的加,减,乘,除,你应该摸索一些简单的公式来计算一个数的绝对值或负值。你在做有符号整型运算的时候会用上它们的。 + + +### 绝对值与负值 + +计算一个有符号整型的绝对值并没有它看起来的那么糟糕。由于无符号和有符号数字在内存里的储存形式,我们其实有一个简单的方案。你只需要翻转一个负数的所有字位,得出的结果再加 **1**。 + +如果你从没接触过二进制的话这可能听上去有点奇怪,但这就是这么工作的。让我们来举一个例子,取一个负数的8位表达,比如说 **-5**。因为 **-5** 靠近 **[0...127,-128...-1]** 字节组末端,它的十六进制值为 **0xfb**,二进制值为 **11111011**。如果你翻转了所有字位,你会得到 **0x04** 或二进制值 **00000100**。结果加 **1** 你就得到了你的答案。你刚刚把 **-5** 的值变成了 **+5**。 + +你可以用汇编写下这个程序用以返回任意64位数字的绝对值: + +``` +; 语法,NASM for DOS +proc_ABS: +  ; 启动时,SI寄存器会指向数据段 (DS) 内的内存位置,那里存放着程序内包含着 +  ; 会被转正的64位数。 +  ; 结束时,如果结果数字不能被转正,Carry Flag (CF) 会被设置。这种情况只 +  ; 有在遇到最大负值时会发生。其余情况,CF 不会被设置。 +  +  ; 检查最高字节的最高位 +  test [si+7], byte 0x80 +  ; 如不为1,值为正值 +  jz .done_ABS +  ; 翻转字的所有字位 #4 +  not word [si+6] +  not word [si+4]       ; 字 #3 +  not word [si+2]       ; 字 #2 +  not word [si]                 ; 字 #1 +  ; 字#1 加一 +  inc word [si] +  ; 如结果不为0,结束 +  jnz .done_ABS +  ; 字#2 加一 +  inc word [si+2] +  ; 如结果为0,进位下一个字 +  jnz .done_ABS +  inc word [si+4] +  jnz .done_ABS +  ; 此处无法进位 +  inc word [si+6] +  ; 再一次检查最高位 +  test [si+7], byte 0x80 +  ; 如不为1,我们成功了,结束 +  jz .done_ABS +  ; 溢出错误,它被转成了负数 +  stc +  ; 设置 Carry Flag 并返回 +  ret +.done_ABS: +  ; 成功,清理 Carry Flag 并返回 +  clc +  ret +``` + +你可能已经注意到了,这个函数有一个潜在问题。由于正负数的二进制值表达方式,最大负数无法被转成正数。以8位数为例,最大负数是 **-128**。如果你翻转了 **-128** 的所有位数 (二进制1__0000000),你会得到127 (二进制0__1111111) 即最大正值。如果你对结果加 **1**,它会因溢出回到同样的负数 (-128)。 + +你只需要重复计算绝对值的步骤就可以将正数转成负数。以下的程序十分相似,你唯一需要确认的就是一开始的数字不是已经负了。 + +``` +; 语法, NASM for DOS +proc_NEG: +  ; 开始时,SI会指向需要转负的数字在内存里的位置。 +  ; 结束时,Carry Flag永远不会被设置。 +  +  ; 检查最高字节的最高位 +  test [si+7], byte 0x80 +  ; 如为1,数已经是负数 +  jnz .done_NEG +  not word [si+6]       ; 翻转字的所有字位 #4 +  not word [si+4]       ; 字 #3 +  not word [si+2]       ; 字 #2 +  not word [si]                 ; 字 #1 +  inc word [si]                 ; 字#1 加一 +  ; 如结果不为0,结束 +  jnz .done_NEG +  ; 字#2 加一 +  inc word [si+2] +  ; 如结果为0,进位下一个字 +  jnz .done_NEG +  inc word [si+4] +  jnz .done_NEG +  ; 此处无法进位或转化 +  inc word [si+6] +  ; 正。 +.done_NEG: +  clc                   ; 成功,清理 Carry Flag 并返回 +  ret +``` + +看着这些绝对值与负值函数间的通用代码,它们应该被结合起来来节约一些字节。结合代码也会带来额外的好处。首先,结合代码能帮助防止简单的笔误。这样也可以减少测试的要求。进一步来讲,这样通常会让代码变得简单易懂。在阅读一长串的汇编指令时,忘记读到哪是常有的事。现在,我们可以不管这些。 + +计算一个数的绝对值或负值并不难。但是,这些函数对于我们即将开始的有符号整型数学运算至关重要。 + +我已经覆盖了整型数字在字位层的表达的基础,也创造了可以改变这些数字的基本程序,现在我们可以做点有趣的了。 + +让我们来做些数学吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/64-bit-math + +作者:[Jerome Shidel][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/shidel +[b]: https://github.com/lkxed + From f7630b69a2363bcdcc97f103d1e9e095631ec56e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:04:32 +0800 Subject: [PATCH 2269/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221208.1=20=E2=AD=90=EF=B8=8F=20Convert=20and=20Ma?= =?UTF-8?q?nipulate=20Images=20With=20=E2=80=98Converter=E2=80=99=20GUI=20?= =?UTF-8?q?Tool=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e Images With ‘Converter’ GUI Tool in Linux.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md diff --git a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md new file mode 100644 index 0000000000..3e2b35e83e --- /dev/null +++ b/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md @@ -0,0 +1,87 @@ +[#]: subject: "Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux" +[#]: via: "https://itsfoss.com/converter-tool/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux +====== + +You can always [install ImageMagick][1] on your system to convert images, but not everyone likes to use the terminal for converting and manipulating images. + +So, what if you have a GUI app as a front-end to help with that? **Converter** is precisely that. + +It is a front-end to ImageMagick. So you do not need to use commands to convert and manipulate images. + +Note that most Ubuntu systems usually have ImageMagick pre-installed. You can always refer to our [installation guide][1] if you do not have it on your system. + +### Converter: A Graphical Front-end to ImageMagick + +![converter gui][2] + +It should not take a lot of effort to convert images. It is a simple task, and that is how it should be. + +I do not want to type a command to convert an image quickly. Hence, I prefer graphical tools that enable me to do things faster. + +[Converter][3] is an open-source graphical front-end that enables you to do that. It is a GTK4+libadwaita application. + +You can convert the images to various file formats that include **png, webp, jpeg, heif, heic, and bmp**. It is safe to say that you get support for the most popular image file formats. So, it should come in pretty handy. + +![file format converter][4] + +You can set a location to save all the files, and the converted images will automatically be stored at that location. + +![customize converter][5] + +You can also adjust an image’s quality, size, and background color. To access these options, click on “**More Options**” in the user interface before converting the image. + +![converter more options][6] + +The image size can be customized using its percentage, exact pixels, or ratio. For precise manipulation, changing the dimensions should help. + +If you want the image scaled to an extent, the percentage or ratio functionality should help you do that. You can also choose to add filters to your images. + +Overall, you get the basic options to re-size, convert, and optimize the image quality with Converter. + +You can also [tweak Nautilus][7] to have the [resize option in the right-click context menu][8]. It won’t be as versatile as this tool. + +### Install Converter on Linux + +Converter is available as a Flatpak on [Flathub][9] to install on any Linux distribution of your choice. + +Unfortunately, you do not get any binary packages to install on your Linux system. So, you might want to refer to our [Flatpak guide][10] to get it installed. + +``` +flatpak install flathub io.gitlab.adhami3310.Converter +``` + +You can explore more about it on its [GitLab page][3]. + +_Do you have any suggestions to nifty tools like this for us to highlight next? Let us know in the comments._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/converter-tool/ + +作者:[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/install-imagemagick-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/12/converter-gui.png +[3]: https://gitlab.com/adhami3310/Converter +[4]: https://itsfoss.com/wp-content/uploads/2022/12/file-format-converter.png +[5]: https://itsfoss.com/wp-content/uploads/2022/12/customize-converter.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/converter-more-options.png +[7]: https://itsfoss.com/nautilus-tips-tweaks/ +[8]: https://itsfoss.com/resize-images-with-right-click/ +[9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter +[10]: https://itsfoss.com/flatpak-guide/ From 6be9cdd0e943c09a8b17b1285a655a8ca0dd1144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:09:56 +0800 Subject: [PATCH 2270/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221208.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?7=20pro=20tips=20for=20using=20the=20GDB=20step=20command.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 7 pro tips for using the GDB step command.md | 255 ++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md diff --git a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md new file mode 100644 index 0000000000..3fceebb26b --- /dev/null +++ b/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md @@ -0,0 +1,255 @@ +[#]: subject: "7 pro tips for using the GDB step command" +[#]: via: "https://opensource.com/article/22/12/gdb-step-command" +[#]: author: "Alexandra https://opensource.com/users/ahajkova" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 pro tips for using the GDB step command +====== + +A debugger is software that runs your code and examines any problems it finds. [GNU Debugger][1] (GBD) is one of the most popular debuggers, and in this article, I examine GDB's `step` command and related commands for several common use cases. Step is a widely used command but there are a few lesser known things about it which might be confusing. Also, there are ways to step into a function without actually using the `step` command itself such as using the less known `advance` command. + +### No debugging symbols + +Consider a simple example program: + +``` +#include + +int num() { + return 2; +} + +void bar(int i) { + printf("i = %d\n", i); +} + +int main() { + bar(num()); + return 0; +} +``` + +If you compile without the debugging symbols first, set a breakpoint on `bar` and then try to step within it. The GDB gives an error message about no line number information: + +``` +gcc exmp.c -o exmp +gdb ./exmp +(gdb) b bar +Breakpoint 1 at 0x401135 +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, 0x0000000000401135 in bar () +(gdb) step +Single stepping until exit from function bar, +which has no line number information. +i = 2 +0x0000000000401168 in main () +``` + +### Stepi + +It is still possible to step inside the function that has no line number information but the `stepi` command should be used instead. Stepi executes just one instruction at a time. When using GDB's `stepi` command, it's often useful to first do `display/i $pc`. This causes the program counter value and corresponding machine instruction to be displayed after each step: + +``` +(gdb) b bar +Breakpoint 1 at 0x401135 +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, 0x0000000000401135 in bar () +(gdb) display/i $pc +1: x/i $pc +=> 0x401135 : sub $0x10,%rsp +``` + +In the above `display` command, the `i` stands for machine instructions and `$pc` is the program counter register. + +It can be useful to use info registers and print some register contents: + +``` +(gdb) info registers +rax 0x2 2 +rbx 0x7fffffffdbc8 140737488346056 +rcx 0x403e18 4210200 +(gdb) print $rax +$1 = 2 +(gdb) stepi +0x0000000000401139 in bar () +1: x/i $pc +=> 0x401139 : mov %edi,-0x4(%rbp) +``` + +### Complicated function call + +After recompiling the example program with debugging symbols you can set the breakpoint on the `bar` call in main using its line number and then try to step into `bar` again: + +``` +gcc -g exmp.c -o exmp +gdb ./exmp +(gdb) b exmp.c:14 +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +``` + +Now, let's step into`bar()`: + +``` +(gdb) step +num () at exmp.c:4 +4 return 2; +``` + +The arguments for a function call need to be processed before the actual function call, so `num()` is expected to execute before `bar()`is called. But how do you step into the `bar` as was desired? You need to use the `finish` command and `step` again: + +``` +(gdb) finish +Run till exit from #0 num () at exmp.c:4 +0x0000000000401161 in main () at exmp.c:14 +14 bar(num()); +Value returned is $1 = 2 +(gdb) step +bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +### Tbreak + +The `tbreak` command sets a temporary breakpoint. It's useful for situations where you don't want to set a permanent breakpoint. For example, if you want to step into a complicated function call like `f(g(h()), i(j()), ...)` , in such a case you need a long sequence of `step/finish/step` to step into `f` . Setting a temporary breakpoint and then using continue can help to avoid using such sequences. To demonstrate this, you need to set the breakpoint to the `bar` call in `main` as before. Then set the temporary breakpoint on `bar`.  As a temporary breakpoint it is automatically removed after being hit: + +``` +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) tbreak bar +Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9. +``` + +After hitting the breakpoint on the call to `bar` and setting a temporary breakpoint on `bar`, you just need to continue to end up in  `bar`. + +``` +(gdb) continue +Continuing. +Temporary breakpoint 2, bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +### Disable command + +Alternatively, you could set a normal breakpoint on `bar` , continue, and then disable this second breakpoint when it's no longer needed. This way you can achieve the same results as with the `tbreak` with one extra command: + +``` +(gdb) b exmp.c:14 +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) b bar +Breakpoint 2 at 0x40113c: file exmp.c, line 9. +(gdb) c +Continuing. +Breakpoint 2, bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +(gdb) disable 2 +``` + +As you can see, the `info breakpoints`  command displays `n` under `Enb`which means it’s disabled but you can enable it later if it’s needed again. + +``` +(gdb) info breakpoints +Num Type Disp Enb Address What +1 breakpoint keep y 0x0000000000401157 in main at exmp.c:14 +breakpoint already hit 1 time +2 breakpoint keep n 0x000000000040113c in bar at exmp.c:9 +breakpoint already hit 1 time +(gdb) enable 2 +(gdb) info breakpoints +Num Type Disp Enb Address What +1 breakpoint keep y 0x000000000040116a in main at exmp.c:19 +breakpoint already hit 1 time +2 breakpoint keep y 0x0000000000401158 in bar at exmp.c:14 +breakpoint already hit 1 time +``` + +### Advance location + +Another option you can use is an `advance` command. Instead of `tbreak bar ; continue` , you can simply do `advance bar` . This command continues running the program up to the given location. + +The other cool thing about `advance` is that if the location that you try to advance to is not reached, GDB will stop after the current frame's function finishes. Thus, execution of the program is constrained: + +``` +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) advance bar +bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +### Skipping a function + +Yet another way to step into the `bar,` avoiding `num`, is using the `skip` command: + +``` +(gdb) b exmp.c:14 +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) skip num +Function num will be skipped when stepping. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) step +bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +To know which functions are currently skipped,  `info skip` is used.  The `num` function is marked as enabled to be skipped by `y`: + +``` +(gdb) info skip +Num Enb Glob File RE Function +1 y n n num +``` + +If `skip` is not needed any more it can be disabled (and re-enabled later) or deleted altogether. You can add another `skip` and disable the first one and then delete them all. To disable a certain `skip`, its number has to be specified, if not specified, each `skip`is disabled. It works the same for enabling or deleting a `skip`: + +``` +(gdb) skip bar +(gdb) skip disable 1 +(gdb) info skip +Num Enb Glob File RE Function +1 n n n num +2 y n n bar +(gdb) skip delete +(gdb) info skip +Not skipping any files or functions. +``` + +### GDB step command + +Using GDB's `step` command is a useful tool for debugging your application. There are several ways to step into even complicated functions, so give these GDB techniques a try next time you're troubleshooting your code. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/gdb-step-command + +作者:[Alexandra][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/ahajkova +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/3/debug-code-gdb From 546cdfde118921fd59c3793d08ac11dda5d2f4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:10:28 +0800 Subject: [PATCH 2271/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221208.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Our=20favorite=20markup=20languages=20for=20documentation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Our favorite markup languages for documentation.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md diff --git a/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md b/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md new file mode 100644 index 0000000000..90a24cfbc8 --- /dev/null +++ b/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md @@ -0,0 +1,173 @@ +[#]: subject: "Our favorite markup languages for documentation" +[#]: via: "https://opensource.com/article/22/12/markup-languages-documentation" +[#]: author: "Opensource.com https://opensource.com/users/admin" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Our favorite markup languages for documentation +====== + +Documentation is important for so many reasons. Readable documentation is even more so. In the world of open source software, documentation is how to use or contribute to an application. It's like the rulebook for a [game][1]. + +There are many different types of documentation: + +- Tutorials +- How-to guides +- Reference guides +- Software architecture +- Product manuals + +We asked some of the Opensource.com contributors about their technical documentation workflow, which markup language they preferred, and why they might use one over the other. Here's what they had to say. + +### AsciiDoc + +For the past several years, [Markdown][2] has been my standard language. But recently I decided to give [AsciiDoc][3] a try. The syntax is not difficult and [Gedit][4] on my Linux desktop supports it. I plan to stick with it for a while. + +—[Alan Formy-Duval][5] + +In terms of low-syntax markup, I prefer AsciiDoc. I like it because its conversion process is consistent and predictable, with no surprise "flavor" variations to confuse things. I also love that it outputs to [Docbook][6], which is a markup-heavy syntax that I trust for longevity and flexibility. + +But the "right" choice tends to be what a project is already using. I wouldn't write in AsciiDoc if a project uses Strawberry-flavored Markdown. Well, to be fair, I might write in AsciiDoc and then convert it to Strawberry-flavored Markdown with Pandoc. + +I do think there is a time and place for Markdown. I do find it more readable than AsciiDoc. Links in AsciiDoc: + +``` +http://example.com[Example website] +``` + +Links in Markdown: + +``` +[Example.com](http://example.com) +``` + +The Markdown syntax is intuitive, delivering the information in the same way that I think most of us parse the same data when reading HTML ("Example website…oh, that's blue text, I'll roll over it to see where it goes…it goes to [example.com][7]"). + +In other words, when my audience is a human reader, I do often choose Markdown because its syntax is subtle but it's got enough of a syntax to make conversion possible, so it's still an OK storage format. + +AsciiDoc, as minimal as it is, just looks scarier. + +If my audience is a computer that's going to parse a file, I choose AsciiDoc. + +—[Seth Kenlon][8] + +### reStructuredText + +I'm a big fan of [docs as code][9] and how it brings developer tools into the content workflows. It makes it easier to have efficient reviews and collaboration, especially if engineers are contributors. + +I'm also a bit of a markup connoisseur, having written whole books in AsciiDoc for O'Reilly, a lot of Markdown for various platforms, including a thousand posts on my blog. Currently, I'm a [reStructuredText][10] convert and maintain some of the tooling in that space. + +—[Lorna Mitchell][11] + +Obligatory mention of reStructuredText. That's my go-to these days as I do a lot of Python programming. It's also been Python's standard for documentation source and code comments for ages. + +I like that it doesn't suffer quite so much from the proliferation of nonstandards that Markdown does. That said, I do use a lot of Sphinx features and extensions when working on more complex documentation. + +—[Jeremy Stanley][12] + +### HTML + +I rarely use markup languages if I don't have to. + +I find HTML easier to use than other markup languages though. + +—[Rikard Grossman-Nielsen][13] + +For me, there are various ways to make documentation. It depends on where the documentation is going to be whether on a website, as part of the software package, or something downloadable. + +For [Scribus][14], the internal documentation is in HTML, since an internal browser is used to access it. On a website, you might need to use a Wiki language. For something downloadable you might create a PDF or an EPUB. + +I tend to write the documentation in a plain text editor. I might use XHTML, so that I can then import these files into an EPUB maker like Sigil. And, of course, Scribus is my go-to app for making a PDF, though I would probably be importing a text file created with a text editor. Scribus has the advantage of including and precisely controlling placement of graphics. + +Markdown has never caught on with me, and I've never tried AsciiDoc. + +—[Greg Pittman][15] + +I'm writing a lot of documentation in HTML right now, so I'll put in a plug for HTML. You can use HTML to create websites, or to create documentation. Note that the two are not really the same — when you're creating websites, most designers are concerned about presentation. But when you're writing documentation, tech writers should focus on content. + +When I write documentation in HTML, I stick to the tags and elements defined by HTML, and I don't worry about how it will look. In other words, I write documentation in "unstyled" HTML. I can always add a stylesheet later. So if I need to make some part of the text stronger (such as a warning) or add emphasis to a word or phrase, I might use the and tags, like this: + +``` +

              Warning: Lasers! Do not look into laser with remaining eye.

              +``` + +Or to provide a short code sample within the body of a paragraph, I might write: + +``` +

              The puts function prints some text to the user.

              +``` + +To format a block of code in a document, I use
              ..
              like this: + +``` +void +print_array(int *array, int size) +  { +  for (int i = 0; i < size; i++) { +  printf("array[%d] = %d\n", i, array[i]); +  }} +``` + +The great thing about HTML is you can immediately view the results with any web browser. And any documentation you write in unstyled HTML can be made prettier later by adding a stylesheet. + +—[Jim Hall][16] + +### Unexpected: LibreOffice + +Back in the 80s and 90s when I worked in System V Unix, SunOS, and eventually Solaris, I used the mm macros with `nroff,``troff`and finally `groff`. Read about MM using groff_mm (provided you have them installed.) + +MM isn't really a markup language, but it feels like one. It is a very semantic set of troff and groff macros. It has most things markup language users would expect—headings, numbered lists, and so on. + +My first Unix machine also had Writers' Workbench available on it, which was a boon for many in our organization who had to write technical reports but didn't particularly write in an "engaging manner". A few of its tools have made it to either BSD or Linux—style, diction, and look. + +I also recall a standard generalized markup language (SGML) tool that came with, or perhaps we bought for, Solaris in the very early 90s. I used this for awhile, which may explain why I don't mind typing in my own HTML. + +I've used Markdown a fair bit, but having said that, I should also be saying "which Markdown", because there are endless flavors and levels of features. I'm not a huge fan of Markdown because of that. I guess if I had a lot of Markdown to do I would probably try to gravitate toward some implementation of [CommonMark][17] because it actually has a formal definition. For example, [Pandoc][18] supports CommonMark (as well as several others). + +I started using AsciiDoc, which I much prefer to Markdown as it avoids the "which version are you using" conversation and provides many useful things. What has slowed me down in the past with respect to AsciiDoc is that for some time it seemed to require installing Asciidoctor—a Ruby toolchain which I was not anxious to install. But these days there are more implementations at least in my Linux distro. Curiously, Pandoc emits AsciiDoc but does not read it. + +Those of you laughing at me for not wanting a Ruby toolchain for AsciiDoc but being satisfied with a Haskell toolchain for Pandoc… I hear you. + +I blush to admit that I mostly use LibreOffice these days. + +—[Chris Hermansen][19] + +### Document now! + +Documentation can be achieved through many different avenues, as the writers here have demonstrated. It's important to document how to use your code, especially in open source. This ensures that other people can use and contribute to your code properly. It's also wise to tell future users what your code is providing. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/markup-languages-documentation + +作者:[Opensource.com][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/admin +[b]: https://github.com/lkxed +[1]: https://opensource.comttps://opensource.com/life/16/11/software-documentation-tabletop-gaming +[2]: https://opensource.com/article/19/9/introduction-markdown +[3]: https://opensource.com/article/22/8/drop-markdown-asciidoc +[4]: https://opensource.com/%20https%3A//opensource.com/article/20/12/gedit +[5]: https://opensource.com/users/alanfdoss +[6]: https://opensource.com/article/17/9/docboo +[7]: http://example.com/ +[8]: https://opensource.com/users/seth +[9]: https://opensource.com/article/22/10/docs-as-code +[10]: https://opensource.com/article/19/11/document-python-sphinx +[11]: https://opensource.com/users/lornajane +[12]: https://opensource.com/users/fungi +[13]: https://opensource.com/users/rikardgn +[14]: https://opensource.com/article/21/12/desktop-publishing-scribus +[15]: https://opensource.com/users/greg-p +[16]: https://opensource.com/users/jim-hall +[17]: https://commonmark.org/ +[18]: https://opensource.com/downloads/pandoc-cheat-sheet +[19]: https://opensource.com/users/clhermansen From fa8922aa48f54ea4ade5b78e581972aa8cdb201c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:12:15 +0800 Subject: [PATCH 2272/3123] =?UTF-8?q?Update=2020221208.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Our=20favorite=20markup=20languag?= =?UTF-8?q?es=20for=20documentation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Our favorite markup languages for documentation.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md b/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md index 90a24cfbc8..2a3c3452d8 100644 --- a/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md +++ b/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md @@ -26,7 +26,7 @@ We asked some of the Opensource.com contributors about their technical documenta For the past several years, [Markdown][2] has been my standard language. But recently I decided to give [AsciiDoc][3] a try. The syntax is not difficult and [Gedit][4] on my Linux desktop supports it. I plan to stick with it for a while. -—[Alan Formy-Duval][5] +—- [Alan Formy-Duval][5] In terms of low-syntax markup, I prefer AsciiDoc. I like it because its conversion process is consistent and predictable, with no surprise "flavor" variations to confuse things. I also love that it outputs to [Docbook][6], which is a markup-heavy syntax that I trust for longevity and flexibility. @@ -52,7 +52,7 @@ AsciiDoc, as minimal as it is, just looks scarier. If my audience is a computer that's going to parse a file, I choose AsciiDoc. -—[Seth Kenlon][8] +—- [Seth Kenlon][8] ### reStructuredText @@ -60,13 +60,13 @@ I'm a big fan of [docs as code][9] and how it brings developer tools into the co I'm also a bit of a markup connoisseur, having written whole books in AsciiDoc for O'Reilly, a lot of Markdown for various platforms, including a thousand posts on my blog. Currently, I'm a [reStructuredText][10] convert and maintain some of the tooling in that space. -—[Lorna Mitchell][11] +—- [Lorna Mitchell][11] Obligatory mention of reStructuredText. That's my go-to these days as I do a lot of Python programming. It's also been Python's standard for documentation source and code comments for ages. I like that it doesn't suffer quite so much from the proliferation of nonstandards that Markdown does. That said, I do use a lot of Sphinx features and extensions when working on more complex documentation. -—[Jeremy Stanley][12] +—- [Jeremy Stanley][12] ### HTML @@ -74,7 +74,7 @@ I rarely use markup languages if I don't have to. I find HTML easier to use than other markup languages though. -—[Rikard Grossman-Nielsen][13] +—- [Rikard Grossman-Nielsen][13] For me, there are various ways to make documentation. It depends on where the documentation is going to be whether on a website, as part of the software package, or something downloadable. @@ -84,7 +84,7 @@ I tend to write the documentation in a plain text editor. I might use XHTML, so Markdown has never caught on with me, and I've never tried AsciiDoc. -—[Greg Pittman][15] +—- [Greg Pittman][15] I'm writing a lot of documentation in HTML right now, so I'll put in a plug for HTML. You can use HTML to create websites, or to create documentation. Note that the two are not really the same — when you're creating websites, most designers are concerned about presentation. But when you're writing documentation, tech writers should focus on content. @@ -113,7 +113,7 @@ print_array(int *array, int size) The great thing about HTML is you can immediately view the results with any web browser. And any documentation you write in unstyled HTML can be made prettier later by adding a stylesheet. -—[Jim Hall][16] +—- [Jim Hall][16] ### Unexpected: LibreOffice @@ -133,7 +133,7 @@ Those of you laughing at me for not wanting a Ruby toolchain for AsciiDoc but be I blush to admit that I mostly use LibreOffice these days. -—[Chris Hermansen][19] +—- [Chris Hermansen][19] ### Document now! From 050d8dcc59c1bb7f133a5680394b6c688494ac08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:15:16 +0800 Subject: [PATCH 2273/3123] =?UTF-8?q?Update=2020221208.3=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Our=20favorite=20markup=20languag?= =?UTF-8?q?es=20for=20documentation.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️⭐️ Our favorite markup languages for documentation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md b/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md index 2a3c3452d8..d11843ff36 100644 --- a/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md +++ b/sources/tech/20221208.3 ⭐️⭐️ Our favorite markup languages for documentation.md @@ -88,7 +88,7 @@ Markdown has never caught on with me, and I've never tried AsciiDoc. I'm writing a lot of documentation in HTML right now, so I'll put in a plug for HTML. You can use HTML to create websites, or to create documentation. Note that the two are not really the same — when you're creating websites, most designers are concerned about presentation. But when you're writing documentation, tech writers should focus on content. -When I write documentation in HTML, I stick to the tags and elements defined by HTML, and I don't worry about how it will look. In other words, I write documentation in "unstyled" HTML. I can always add a stylesheet later. So if I need to make some part of the text stronger (such as a warning) or add emphasis to a word or phrase, I might use the and tags, like this: +When I write documentation in HTML, I stick to the tags and elements defined by HTML, and I don't worry about how it will look. In other words, I write documentation in "unstyled" HTML. I can always add a stylesheet later. So if I need to make some part of the text stronger (such as a warning) or add emphasis to a word or phrase, I might use the `` and `` tags, like this: ```

              Warning: Lasers! Do not look into laser with remaining eye.

              @@ -100,7 +100,7 @@ Or to provide a short code sample within the body of a paragraph, I might write:

              The puts function prints some text to the user.

              ``` -To format a block of code in a document, I use
              ..
              like this: +To format a block of code in a document, I use `
              ..
              ` like this: ``` void @@ -117,7 +117,7 @@ The great thing about HTML is you can immediately view the results with any web ### Unexpected: LibreOffice -Back in the 80s and 90s when I worked in System V Unix, SunOS, and eventually Solaris, I used the mm macros with `nroff,``troff`and finally `groff`. Read about MM using groff_mm (provided you have them installed.) +Back in the 80s and 90s when I worked in System V Unix, SunOS, and eventually Solaris, I used the mm macros with `nroff,``troff` and finally `groff`. Read about MM using groff_mm (provided you have them installed.) MM isn't really a markup language, but it feels like one. It is a very semantic set of troff and groff macros. It has most things markup language users would expect—headings, numbered lists, and so on. From 857c1814cd964f2900661dff93f71d8f885b6a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:16:37 +0800 Subject: [PATCH 2274/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221208.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Manage=20your=20file=20system=20from=20the=20Linux=20terminal.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Manage your file system from the Linux terminal.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 sources/tech/20221208.4 ⭐️⭐️ Manage your file system from the Linux terminal.md diff --git a/sources/tech/20221208.4 ⭐️⭐️ Manage your file system from the Linux terminal.md b/sources/tech/20221208.4 ⭐️⭐️ Manage your file system from the Linux terminal.md new file mode 100644 index 0000000000..d03ef5902a --- /dev/null +++ b/sources/tech/20221208.4 ⭐️⭐️ Manage your file system from the Linux terminal.md @@ -0,0 +1,150 @@ +[#]: subject: "Manage your file system from the Linux terminal" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-nnn" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manage your file system from the Linux terminal +====== + +I tend to enjoy lightweight applications. They're good for [low spec computers][1], for [remote shells][2], for the impatient user (OK, I admit, that's me), and for the systems we scrap together to fight the inevitable [zombie apocalypse][3]. In my search for a perfect blend of a lightweight application with all the modern conveniences we've learned from experience, I stumbled across a file manager called **nnn**. The nnn file manager exists in a terminal only, but it feels like a modern keyboard-driven application with intuitive actions and easy navigation. + +![Image of the nnn file manager.][4] + +### Install nnn + +On Linux, you may find nnn in your Linux distribution's software repository. For instance, on Debian: + +``` +$ sudo apt install nnn +``` + +If your repository doesn't have nnn available, you can download a package for your distribution from [OBS][5] or from the project [Git repository][6]. + +On macOS, use [Homebrew][7] or [MacPort][8]. + +### Using nnn + +Launch nnn from a terminal: + +``` +$ nnn +``` + +Your terminal is now the nnn interface, and by default it lists the contents of your current directory: + +``` +1 2 3 4 ~ +Desktop/ +Documents/ +Downloads/ +Music/ +Pictures/ +Public/ +Templates/ +Videos/4/8 2022-12-01 15:54 drwxr-xr-x 6B +``` + +At the top of the nnn interface are tabs (called a "context" in nnn terminology), numbered one to four. + +At the bottom of the nnn interface, there are ownership and permission details about your current selection. + +Use either the **Up** and **Down** arrow keys or the **k** and **j** keys (as in [Vim][9]) to change your selection. Use the **Right** arrow key, **Return**, or the **l** key to enter a directory or to open a file. Use the **Left** arrow key or **h** to back out of a directory. + +That's it for navigation. It's easier than any graphical file manager because there aren't any widgets that get in the way. There's no need to **Tab** over buttons, you just use the arrow keys or the QWERTY home row. + +### Open a file + +One of the reasons you use a file manager is to find a file and then open it. Your desktop already has default applications set, and nnn inherits this knowledge, so press `Return` or `Right` arrow to open a file in its default application. + +Should you need to open a file in something other than its default application, press `=` instead, and then type the name of the application in the prompt at the bottom of the nnn interface. + +### Copy a file + +To copy a file or any number of files, you must first select a file to copy, then navigate to its intended destination, and finally invoke the copy command. Thanks to nnn's context control (those are the numbers at the top of the screen, and you can think of them as tabs in a web browser), this is a quick process. + +- First, select the file you want to copy and press **Spacebar** to select the file. It's marked with a plus sign (**`+`**) to indicate its selected state. +- Press **`2`** to change to a new context. +- Navigate to the target directory and press **p** to copy. + +### Move a file + +Moving files is the same process as copying a file, but the keyboard shortcut for the action is **v**. + +### Selecting files + +There are a few ways to mark selections in nnn. The first is manual selection. You find a file you want to select, and then press **Spacebar** to mark it as selected. Press **Spacebar** again to deselect it. + +One selection doesn't cancel another, so you can select several files manually, but that can become tedious. Another way to select many files at once is to "mark in " and "mark out". To mark a selection, press `m` on the first file you want to select, and then use your arrow keys to move to the last file you want to select. Press `m` again to close the selection: + +``` +1 2 3 4 ~ ++Desktop/ ++Documents/ ++Downloads/ ++Music/ ++Pictures/ ++Public/ +Templates/ +Videos/6/8 [ +6 ] 2022-12-01 15:54 drwxr-xr-x 6B +``` + +Finally, the third way to select files is to press `a` to _select all_. Use **`A`** to invert the selection (in this case, to _select none_.) + +### Creating an archive + +To create an archive of a file or a selection of files, press `z`. At the bottom of the nnn interface, you're prompted to choose between your current item of your selection. Then you're prompted for a file name. Luckily, nnn is a smart application and derives its file type from the name you provide. If you name your archive `example.tar.xz` then nnn creates a TAR archive with lzma compression, but if you name it `example.zip` then it creates a ZIP file. + +You can verify the file type yourself by pressing the `f` key with your new archive selected: + +``` +File: /home/tux/Downloads/example.zip +  Size: 184707          Blocks: 368        IO Block: 4096   regular file +Device: fd00h/64768d    Inode: 17842380    Links: 1 +Access: (0664/-rw-rw-r--)  Uid: ( 1002/     tux)   Gid: ( 1002/     tux) +Context: unconfined_u:object_r:user_home_t:s0 +Access: 2022-09-20 15:12:09.770187616 +1200 +Modify: 2022-09-20 15:12:09.775187704 +1200 +Change: 2022-09-20 15:12:09.775187704 +1200 + Birth: 2022-09-20 15:12:09.770187616 +1200 +Zip archive data, at least v2.0 to extract +application/zip; charset=binary +``` + +### Cancel an action + +When you find yourself backed into a corner and need to press a panic button, use the **`Esc`** key. (This is likely to be the single most confusing keyboard shortcut for a longtime terminal user who's accustomed to **Ctrl+C**.) + +### Never close nnn + +To quit nnn, press **`Q`** at any time. + +It's a very capable file manager, with functions for symlinks, FIFO, bookmarks, batch renaming, and more. For a full list of what nnn can do, press the **`?`** key. + +The most clever feature is the shell function. Press **`!`** to open a shell over the nnn interface. You'll forget nnn is there, until you type `exit` and you find yourself back in the nnn interface. It's that easy to leave nnn open all the time, so you can always have quick access to the fastest lightweight file management you're likely to experience. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-nnn + +作者:[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/article/19/7/how-make-old-computer-useful-again +[2]: https://www.redhat.com/sysadmin/access-remote-systems-ssh +[3]: https://opensource.com/zombie +[4]: https://opensource.com/sites/default/files/2022-10/nnn.filemanager.png +[5]: https://software.opensuse.org//download.html?project=home%3Astig124%3Annn&package=nnn +[6]: https://github.com/jarun/nnn/releases +[7]: https://opensource.com/article/20/6/homebrew-mac +[8]: https://opensource.com/article/20/11/macports +[9]: https://opensource.com/article/19/3/getting-started-vim From a2e29d32ae198335528f6d2a096c9355f1c298b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:17:07 +0800 Subject: [PATCH 2275/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221208.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Apple=20Silicon=20GPU=20Driver=20is=20Now=20Available=20in=20As?= =?UTF-8?q?ahi=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...icon GPU Driver is Now Available in Asahi Linux.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md diff --git a/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md b/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md new file mode 100644 index 0000000000..8e115ba0d8 --- /dev/null +++ b/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md @@ -0,0 +1,91 @@ +[#]: subject: "Apple Silicon GPU Driver is Now Available in Asahi Linux" +[#]: via: "https://news.itsfoss.com/apple-gpu-driver-asahi-linux/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Apple Silicon GPU Driver is Now Available in Asahi Linux +====== + +We finally have a GPU driver for Apple M silicon systems on Asahi Linux. + +![Apple Silicon GPU Driver is Now Available in Asahi Linux][1] + +Asahi Linux aims to be a port of Linux for Apple Silicon Macs; work started on it back in 2020, right after the launch of Apple's M1 chips at the WWDC event. + +A small team is behind all the development behind Asahi Linux and reverse engineering stuff; they have been quite busy since the last time we looked at their work. + +Previously, they worked on improving support for Apple SoCs such as the M1, M1 Pro, and M1 Max. They provided varying levels of support for devices that used these chips. + +It still is a work in progress, but promising results in 2022. + +They have now taken it further by providing initial support for Apple Silicon GPUs by releasing drivers (in _alpha_). + +That sounds great! 😃 + +Let me take you through the gist of it. + +### Hardware Acceleration With Desktop Environments and Old Games + +![asahi linux running quake3][2] + +Introduced as an alpha-stage GPU driver, it can run desktop environments and a few games smoothly. + +**The implementation:** The driver features a work-in-progress implementation of OpenGL 2.1 and OpenGL ES 2.0 for current Apple M-series systems. + +They also mention that: + +> These drivers have not yet passed the OpenGL (ES) conformance tests. There will be bugs! + +So, you can expect plenty of hiccups along the way should you choose to run applications using these drivers. + +**How it works now?:** In its current form, the driver can run desktop environments like GNOME and KDE Plasma with hardware acceleration. + +Even older games like [Quake3][3] and [Neverball][4] can run quite well, with these and the desktop environments running at a solid **60 fps at 4k resolution**. + +Many users may also notice that quite a few apps don't work with this driver right away. On that, the developers mention: + +> Since the driver is still in development, there are lots of known issues and we’re still working hard on improving conformance test results. Please don’t open new bugs for random apps not working! It’s still the early days and we know there’s a lot of work to do. + +**What does the future hold?:** The developers have said that while OpenGL (ES) 2 suffices for some applications, newer applications will require new features such as multiple render targets, multisampling, and transform feedback. + +All of this can be achieved with OpenGL (ES) 3, and work on that has already started. But, it will need a lot of developmental effort to get ready. + +They have also hinted at support for Vulkan in the future, although it is a long time in the making. + +Here's what they tell about it: + +> We’re working on it! Although we’re only shipping OpenGL right now, we’re designing with Vulkan in mind. Most of the work we’re putting toward OpenGL will be reused for Vulkan. We estimated that we could ship working OpenGL 2 drivers much sooner than a working Vulkan 1.0 driver, and we wanted to get hardware accelerated desktops into your hands as soon as possible. + +When a Reddit user [asked][5] about **120 Hz support for MacBook Pro**, one of the maintainers had this to say: + +> 120Hz is disabled because it still is capped at 60Hz if we do nothing and was having other weird issues. It's still unclear exactly how VRR works on macOS, we need to figure that out first. + +It seems like Asahi Linux has a lot of room to grow, and improvements like this to GPU drivers on a new Silicon system should finally open up new opportunities in terms of performance. + +Linux users have been asking for something like this for a long time, and it is now closer to becoming a reality than ever before. + +If you are feeling adventurous and want to try the new GPU driver, you can try installing it on your Asahi Linux system. Refer to the [official announcement][6] for instructions to experiment with it. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/apple-gpu-driver-asahi-linux/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/apple-gpu-asahi-linux.png +[2]: https://news.itsfoss.com/content/images/2022/12/AsahiLinux_Quake3.jpg +[3]: https://ioquake3.org +[4]: https://neverball.org +[5]: https://www.reddit.com/r/AsahiLinux/comments/zeucpz/comment/iza3wwv/?utm_source=share&utm_medium=web2x&context=3 +[6]: https://asahilinux.org/2022/12/gpu-drivers-now-in-asahi-linux/ From dba188ad63047977775d20a4e054be48ed0d12a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 01:18:30 +0800 Subject: [PATCH 2276/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221208.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Mastodon's=20Adoption=20Gets=20a=20Boost=20With=20Vivaldi=20Bro?= =?UTF-8?q?wser=20Integration.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n Gets a Boost With Vivaldi Browser Integration.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md diff --git a/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md b/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md new file mode 100644 index 0000000000..63cc15a25f --- /dev/null +++ b/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md @@ -0,0 +1,90 @@ +[#]: subject: "Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration" +[#]: via: "https://news.itsfoss.com/vivaldi-mastodon-integration/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration +====== + +Vivaldi's making an effort to have more users join Mastodon with its new update. That's nice to see! + +![Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration][1] + +Vivaldi browser is one of the best web browsers for Linux (Windows, macOS, and mobile platforms). + +I know it is not an open-source pick, but it gets all the lead with its tab management, customizability, and productivity features. And it treats me better than Firefox nowadays (Mozilla, we still need you to do better)🙄 + +**Note:**_Vivaldi is **not open-source**. Most of it is based on Chromium, for which you can find the [source code][2]._ + +If you did not know, Vivaldi recently built a Mastodon instance (**Vivaldi Social**) to encourage people to use open-source and decentralized social media platforms. + +It is one of the best Mastodon instances you can join: + +To take this further, **Vivaldi 5.6 update** has integrated access to its Mastodon instance from within its web browser. + +> 🐘 Hey! We are on [Mastodon][3] for a while; follow **us if you haven't already**! 😄 + +### Access Mastodon From Web Panels + +Web panels on Vivaldi make it a breeze to multitask. You can keep browsing or working on what you want and still access additional services in a single click. + +Here's what it looks like: + +![mastodon on vivaldi][4] + +I can access Vivaldi's Mastodon instance quickly. + +Of course, you can add your custom web panel for any Mastodon instance you like. + +![vivaldi web panel addition][5] + +However, I believe out-of-the-box integration should encourage Vivaldi users to try Mastodon if they haven't yet. + +In the official announcement, Vivaldi also explains it properly for its users: + +> [Vivaldi Social][6] came into existence as we love the idea of distributed social networks based on open standards. We want to offer better alternatives to people to communicate in an algorithm-free environment with no surveillance capitalism, devoid of tracking or data profiling.The Mastodon server platform communicates through the [Activity Pub][7] standard, a decentralized social networking and messaging protocol recommended by the [World Wide Web Consortium (W3C)][8]. Any platform or application that implements ActivityPub becomes a part of a massive social network. This big social network is also called the [Fediverse][9] (“federated” + “universe”). + +Before anyone gets their pitchfork ready, I want Vivaldi to be 100% open-source, but we also want more companies in the mainstream to adopt and encourage the use of open-source tech. + +And I think Vivaldi has got an excellent approach to that. + +So, this integration should ultimately let every Vivaldi (or Linux user) use Mastodon more than often. + +In addition to this change, Vivaldi 5.6 release involves a couple of improvements that include: + +- A new search engine (You.com) +- Panels joining editable toolbars +- Revamped settings page +- Pin tab stacks (_this is exciting!_) + +You can update the browser to get the latest version or download Vivaldi 5.6 on its official website. + +[Download Vivaldi 5.6][10] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vivaldi-mastodon-integration/ + +作者:[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/content/images/size/w2000/2022/12/mastodon-integration-in-vivaldi-browser-1.png +[2]: https://vivaldi.com/source/ +[3]: https://mastodon.social/web/@itsfoss +[4]: https://news.itsfoss.com/content/images/2022/12/mastodon-vivaldi.jpg +[5]: https://news.itsfoss.com/content/images/2022/12/add-custom-panel.jpg +[6]: https://vivaldi.com/blog/news/vivaldi-social-a-new-mastodon-instance/ +[7]: https://en.wikipedia.org/wiki/ActivityPub +[8]: https://www.w3.org/ +[9]: https://en.wikipedia.org/wiki/Fediverse +[10]: https://vivaldi.com/download/ From e9d16c96612e83cee9b63459f82a97eb3fee5e67 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 9 Dec 2022 08:47:07 +0800 Subject: [PATCH 2277/3123] translated --- ...y you should try the Nemo file manager on Linux.md | 82 ------------------- ...y you should try the Nemo file manager on Linux.md | 82 +++++++++++++++++++ 2 files changed, 82 insertions(+), 82 deletions(-) delete mode 100644 sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md create mode 100644 translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md diff --git a/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md deleted file mode 100644 index bbdbaef307..0000000000 --- a/sources/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Why you should try the Nemo file manager on Linux" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-nemo" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Why you should try the Nemo file manager on Linux -====== - -Computers are fancy filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, I'm taking a look at a file manager for your Linux system. - -The [Cinnamon][1] project was formed as a reimplementation of GNOME 2 using the components of GNOME 3. Eventually, it diverged enough to be a true fork, and today the Cinnamon desktop uses GTK3 libraries and forked versions of key GNOME 3 applications to create a "classic" GNOME experience. One of the components contributing to the traditional GNOME experience is Nemo, a file manager based on the GNOME 2 version of Nautilus. - -### Install Nemo on Linux - -The source code for Nemo is [available online][2] but it requires `cinnamon-desktop` to build, so the easiest way to install Nemo is to just install Cinnamon. - -On Fedora, Mageia, and similar: - -``` -$ sudo dnf install cinnamon-desktop -``` - -On Linux Mint, Debian, and similar: - -``` -$ sudo dnf install cinnamon-desktop-environment -``` - -Of course, as the desktop's progenitor, Linux Mint is also available with Cinnamon preinstalled. - -### A familiar interface - -If you're used to GNOME, either of the past or of today, then Nemo feels like home from the start. It's got a familiar look and feel, with buttons in similar places and options that you're likely to recognize. - -![Image of Nemo's file manager.][3] - -The GNOME-ish convention of placing view control buttons in the top right is retained, and you can use the buttons to quickly switch your view of your files from large icons to a detailed list or a compact view. There's also a search function there, and the option to toggle the location bar between editable text and a button. - -Editable URI bars are sometimes undervalued. It's a simple design decision, but it can be a huge feature contributing to efficiency. It's like having a one-line terminal at the top of each window, in which you can type a destination anywhere on your system and instantly be taken there. And you don't even have to type `cd`. - -At the top right corner, there are navigation buttons: up, forward, and back. As with many Linux file managers, you can forego the use of these buttons with the **Alt** key plus the appropriate **Arrow** key. - -The side pane, shows a list of important folders (Home, Documents, Downloads, and so on), can be hidden or displayed with the click of a button at the bottom of the window. - -### Familiarity but not the same - -The comfort and familiarity of Nemo doesn't mean that it just mindlessly mimics Nautilus. Nemo has a collection of nice features that feel unique. Most of these are in **Preferences**, and here are just a few of my favorites: - -- **Full path in window title**: This is my favorite feature. Never question where you are in your filesystem again. Let your window title tell you. -- **Single or double click**: If you're a longtime [KDE][4] user, you might find single-clicking to open a file refreshing. With Nemo, you have that choice. -- **Double-click to rename**: If you're using a single click to open, why not repurpose the double-click to rename? -- **Open each folder in a new window**: There are operating systems out there that open a new window for each folder opened. -- **Plugins**: Nemo has the ability to invoke actions, scripts, and extensions. Some are included, including an action to change the desktop background, create launchers, and mount an archive. Others are yet to be created, but this kind of extensibility is vital to open source. - -### Everything close at hand - -After using Nemo for a few weeks on Linux Mint, one interesting trait stood out to me. It seemed that Nemo had, or could have with quick configuration, everything I used most often close at hand. Many of the features, admittedly, I didn't know I needed or wanted until Nemo made it easy to click. You might argue that I was bending my usage to meet Nemo's design, and maybe that is the case. But when the experience is so pleasant and efficient, does it matter? - -Nemo is a great file manager. It hearkens back to the days of GNOME 2, but with updates and design choices that make it feel fresh. If you like [Thunar][5] or Nautilus, you'll love Nemo. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-nemo - -作者:[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/article/19/12/cinnamon-linux-desktop -[2]: https://github.com/linuxmint/nemo/releases -[3]: https://opensource.com/sites/default/files/2022-09/nemo.png -[4]: https://opensource.com/article/22/2/why-i-love-linux-kde -[5]: https://opensource.com/article/22/12/linux-file-manager-thunar diff --git a/translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md new file mode 100644 index 0000000000..e0d1597598 --- /dev/null +++ b/translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md @@ -0,0 +1,82 @@ +[#]: subject: "Why you should try the Nemo file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-nemo" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为什么你要在 Linux 上尝试 Nemo 文件管理器? +====== + +计算机是奇特的文件柜,里面装满了等待引用、交叉引用、编辑、更新、保存、复制、移动、重命名和组织的虚拟文件夹和文件。在本文中,我将介绍一下 Linux 系统的文件管理器。 + +[Cinnamon][1] 项目是使用 GNOME 3 的组件重新实现 GNOME 2。最终,它的差异足以成为一个真正的分叉,今天,Cinnamon 桌面使用 GTK3 库和 GNOME 3 关键应用的分叉版本来创建一个“经典”的 GNOME 体验。Nemo 是促成传统 GNOME 体验的组件之一,它是一个基于 GNOME 2 版本的 Nautilus 的文件管理器。 + +### 在 Linux 上安装 Nemo + +Nemo 的源代码[在线提供][2],但它需要 `cinnamon-desktop` 来构建,所以安装 Nemo 最简单的方法是直接安装 Cinnamon。 + +在 Fedora、Mageia 和类似的系统上: + +``` +$ sudo dnf install cinnamon-desktop +``` + +在 Linux Mint、Debian 和类似系统上: + +``` +$ sudo dnf install cinnamon-desktop-environment +``` + +当然,作为桌面的始祖,Linux Mint 也有预装 Cinnamon 的版本。 + +### 一个熟悉的界面 + +如果你已经习惯了 GNOME,无论是过去的还是现在的,那么 Nemo 从一开始就有一种回家的感觉。它有一个熟悉的外观和感觉,在类似的地方有按钮和选项,你很可能会认出它们。 + +![Image of Nemo's file manager.][3] + +将视图控制按钮放在右上方的 GNOME 式惯例被保留了下来,你可以使用这些按钮快速地将你的文件视图从大图标切换到详细列表或紧凑视图。那里还有一个搜索功能,以及在可编辑文本和按钮之间切换位置栏的选项。 + +可编辑的 URI 栏有时被低估了。这是一个简单的设计决定,但它可以是一个有助于提高效率的巨大功能。这就像在每个窗口的顶部有一个单行终端,你可以在系统的任何地方输入一个目标,并立即被带到那里。而且你甚至不需要输入 `cd`。 + +在右上角,有导航按钮:向上、向前和向后。与许多 Linux 文件管理器一样,你可以用 **Alt** 键加上适当的**箭头**键来放弃使用这些按钮。 + +侧面窗格显示了重要文件夹的列表(家目录、文档、下载等),可以通过点击窗口底部的一个按钮来隐藏或显示。 + +### 熟悉但不一样 + +Nemo的舒适性和熟悉性并不意味着它只是无意识地模仿 Nautilus。Nemo 有一系列不错的功能,感觉很独特。其中大部分都在**偏好设置**中,以下是我最喜欢的几个: + +- **窗口标题中的全路径**:是我最喜欢的功能。不要再怀疑你在文件系统中的位置了。让你的窗口标题告诉你。 +- **单击或双击**:如果你是一个长期的 [KDE][4] 用户,你可能会发现单次点击打开一个文件是很新鲜的。有了 Nemo,你可以这样选择。 +- **双击来重命名**:如果你使用单击来打开,为什么不重新利用双击来重命名? +- **在一个新窗口中打开每个文件夹**:操作系统为每一个打开的文件夹打开一个新的窗口。 +- **插件**:Nemo 有能力调用动作、脚本和扩展。有些已经包括在内,包括改变桌面背景、创建启动器和挂载归档的动作。其他的还没有被创建,但这种可扩展性对开源是至关重要的。 + +### 一切近在咫尺 + +在 Linux Mint 上使用 Nemo 几周后,一个有趣的特征让我眼前一亮。似乎 Nemo 拥有,或者通过快速配置可以拥有,我最常使用的所有东西都近在咫尺。许多功能,我承认,我不知道我需要或想要,直到 Nemo 让我轻松点击。你可能会说,我是为了满足 Nemo 的设计而改变了我的使用方式,也许情况确实如此。但是,当这种体验是如此令人愉快和有效时,这有什么关系呢? + +Nemo 是一个很好的文件管理器。它让人想起了 GNOME 2 的时代,但其更新和设计选择让人感到新鲜。如果你喜欢 [Thunar][5] 或 Nautilus,你会喜欢 Nemo。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-nemo + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/12/cinnamon-linux-desktop +[2]: https://github.com/linuxmint/nemo/releases +[3]: https://opensource.com/sites/default/files/2022-09/nemo.png +[4]: https://opensource.com/article/22/2/why-i-love-linux-kde +[5]: https://opensource.com/article/22/12/linux-file-manager-thunar From 8a9140577eb95272bc8398f0f917d0206d78a865 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 9 Dec 2022 08:55:54 +0800 Subject: [PATCH 2278/3123] translating --- ...0221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md index 61f685b396..3ff19e8639 100644 --- a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md +++ b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/access-uefi-from-linux/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ddbb00d903e1168ca92e97099283f757960a78f6 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 9 Dec 2022 13:26:22 +0800 Subject: [PATCH 2279/3123] translating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 申请 --- ...️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md index 610f55149e..c8c5fff5b6 100644 --- a/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md +++ b/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/find-process-id-kill-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From b236dcd1c51bcc54891b8427c2abc4c065eb12ee Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 9 Dec 2022 15:09:18 +0800 Subject: [PATCH 2280/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yzouwei 感谢您,完成了第一篇翻译贡献! --- ...⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 109 +++++++++--------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md index da47247bb9..d5aa943880 100644 --- a/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md +++ b/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md @@ -2,83 +2,84 @@ [#]: via: "https://opensource.com/article/22/10/64-bit-math" [#]: author: "Jerome Shidel https://opensource.com/users/shidel" [#]: collector: "lkxed" -[#]: translator: "yzuowei " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -在16位系统上做64位数学 +如何在 16 位系统上进行 64 位数学运算 ====== -只需要一点点汇编的基础理解,这些函数就能适应体任意大小的整型数学运算。 +![][0] -几年前,我为 FreeDOS 写了一个命令行数学程序叫做 VMATH。它可以在很小的无符号整型上执行十分简单的数学运算。出于近来对 FreeDOS 社区里基本数学的兴趣,我改进了 VMATH 使其可以为有符号64位整型提供基本的数学支持。 +> 只要对汇编有一点基本的了解,这些函数就能扩展到任意位长的整型数学运算。 -仅使用兼容16位 8086 的汇编来操控大型数字的过程并不直接。我希望能够分享一些在 VMATH 中用到的技术的例子。其中一些方法掌握起来还挺容易。同时,也有着别的看起来有点奇怪的方法。你甚至可能学到一种全新的进行基本数学运算的方式。 +几年前,我为 FreeDOS 写了一个叫做 VMATH 的命令行数学程序。它只能在很小的无符号整型上执行十分简单的数学运算。随着近来 FreeDOS 社区里对基础数学的兴趣,我改进了 VMATH 使其可以为有符号 64 位整型提供基本的数学支持。 -接下来要讲的加,减,乘,除会用到的技术将不局限于将不局限于64位整型。只需要一点点汇编的基础理解,这些函数就能适应任意大小的整型数学运算。 +仅使用 16 位 8086 兼容的汇编指令来操控大型数字的过程并不简单。我希望能够分享一些在 VMATH 中用到的技术例子。其中一些方法掌握起来相当容易。而另外一些方法则看起来有点奇怪。你甚至可能学到一种进行基本数学运算的全新方式。 -在深挖这些数学函数前,我想要覆盖一些计算机看数字的基础视角。 +接下来要讲的加、减、乘、除会用到的技术将不局限于并不局限于 64 位整型。只要对汇编有一点基本的了解,这些函数就能扩展到任意位长的整型数学运算。 + +在深入研究这些数学函数前,我想先从计算机的角度介绍一下数字的一些基本知识。 ### 计算机是如何读取数字的 -一个兼容 Intel 的 CPU 以字节 (byte) 的形式贮存数字,储存顺序为从最低有效字节到最高有效字节。每个字节由8个二进位组成,两个字节组成一个字 (word)。 +一个英特尔兼容的 CPU 以字节Byte的形式贮存数字,储存顺序为从最低有效字节到最高有效字节。每个字节由 8 个二进Bit组成,两个字节组成一个Word。 -一个储存在内存里的64位整型占用了8个字节 (或4个字)。例如,数字74565(十六进制表示为0x12345)的值长得是这个样子的: +一个储存在内存里的 64 位整型占用了 8 个字节(即 4 个字)。例如,数字 `74565`(十六进制表示为 `0x12345`)的值长得是这个样子的: ``` -as bytes: db 0x45, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 -as words: dw 0x2345, 0x0001, 0x0000, 0x0000 +用字节表示:db 0x45, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +用字表示:dw 0x2345, 0x0001, 0x0000, 0x0000 ``` -当读取或写入数据到内存时,CPU 会以正确的顺序处理这些字节。对于一个比 8086 更现代的处理器而言,数据组可以再大些,比如一个四字组就可以表达整个64为整型为 **0x0000000000012345**。 +当读取或写入数据到内存时,CPU 会以正确的顺序处理这些字节。对于比 8086 更现代的处理器而言,数据分组可以再大些,比如一个四字组Quadword就可以表达整个 64 位整型 `0x0000000000012345`。 -8086 CPU 不能理解这么大的数字。当为 FreeDOS 编程时,你想要写的是一个能在任意电脑上跑的程序,甚至是早期的 IBM PC 5150。你想要使用能够适应任意大小整型的技术。我们并不关心现代 CPU 的能力。 +8086 CPU 不能理解这么大的数字。当为 FreeDOS 编程时,你想要写的是一个能在任意电脑上跑的程序,甚至是原始的 IBM PC 5150。你想要使用能够扩展到任意大小整型的技术。我们其实并不关心更现代 CPU 的能力。 为了能做整型运算,我们的数据需要表达两种不同类型的数字。 -第一种是无符号整型,其使用了所有字位来表达一个正数。无符号整型的值域为从 **0** 到 **(2 ^ (字位数量) - 1)**。例如,8位数可以是 **0** 到 **255** 之间的任意值,而16位数则在 **0** 到 -**65535** 之间,以此类推。 +第一种是无符号unsigned整型,其使用了所有的位来表达一个正数。无符号整型的值域为从 `0` 到 $2^{位长} - 1$。例如,8 位数可以是 `0` 到 `255` 之间的任意值,而 16 位数则在 `0` 到 +`65535` 之间,以此类推。 -有符号整型也很类似。不同之处在于数字的最显著位代表了这个数是一个整数 (**0**) 还是一个负数 (**1**)。有符号整型的值域前半部分位正数,正数值域是从 **0** 到 **(2 ^ (字位数量 - 1) - 1)**。整型值域的后半部分为负数,负数值域则从 **(0-(2 ^ (字位数量 - 1)))** 到 **-1**。 +有符号整型也很类似。不同之处在于数字的最高位代表了这个数是一个正数(`0`)还是一个负数 (`1`)。有符号整型的值域前半部分为正数,正数值域是从 `0` 到 $2^{(字长 - 1)} - 1$。整型值域的后半部分为负数,负数值域则从 $0 - (2^{位长 - 1})$ 到 `-1`。 -比如说,一个8位数代表着 **0** 到 **127** 之间的任意正数,以及 **-128** 到 **-1** 之间的任意负数。为了能更好的理解这一点,想象 **字节** 为一列数组 **[0...127,-128...-1]**。因为 **-128** 在数组内紧跟着 **127**,**127** 加 **1** 等于 **-128**。当然这可能看起来有点奇怪甚至反常,但这其实让这个层级的基本数学运算变简单了。 - -为了能够对大型整型进行简单的加,减,乘,除,你应该摸索一些简单的公式来计算一个数的绝对值或负值。你在做有符号整型运算的时候会用上它们的。 +比如说,一个 8 位数代表着 `0` 到 `127` 之间的任意正数,以及 `-128` 到 `-1` 之间的任意负数。为了能更好的理解这一点,想象 **字节** 为一列数组 `[0...127,-128...-1]`。因为 `-128` 在数组内紧跟着 `127`,`127` 加 `1` 等于 `-128`。当然这可能看起来有点奇怪甚至反常,但这其实让这个层级的基本数学运算变简单了。 +为了能够对大型整型进行简单的加、减、乘、除,你应该摸索一些简单的公式来计算一个数的绝对值或负值。你在做有符号整型运算的时候会用上它们的。 ### 绝对值与负值 -计算一个有符号整型的绝对值并没有它看起来的那么糟糕。由于无符号和有符号数字在内存里的储存形式,我们其实有一个简单的方案。你只需要翻转一个负数的所有字位,得出的结果再加 **1**。 +计算一个有符号整型的绝对值并没有它看起来的那么糟糕。由于无符号和有符号数字在内存里的储存形式,我们其实有一个简单的方案。你只需要翻转一个负数的所有字位,得出的结果再加 `1`。 -如果你从没接触过二进制的话这可能听上去有点奇怪,但这就是这么工作的。让我们来举一个例子,取一个负数的8位表达,比如说 **-5**。因为 **-5** 靠近 **[0...127,-128...-1]** 字节组末端,它的十六进制值为 **0xfb**,二进制值为 **11111011**。如果你翻转了所有字位,你会得到 **0x04** 或二进制值 **00000100**。结果加 **1** 你就得到了你的答案。你刚刚把 **-5** 的值变成了 **+5**。 +如果你从没接触过二进制的话,这可能听上去有点奇怪,但这就是这么工作的。让我们来举一个例子,取一个负数的 8 位表达,比如说 `-5`。因为 `-5` 靠近 `[0...127,-128...-1]` 字节组末端,它的十六进制值为 `0xfb`,二进制值为 `11111011`。如果你翻转了所有字位,你会得到 `0x04` 或二进制值 `00000100`。结果加 `1` 你就得到了你的答案:你刚刚把 `-5` 的值变成了 `+5`。 -你可以用汇编写下这个程序用以返回任意64位数字的绝对值: +你可以用汇编写下这个程序用以返回任意 64 位数字的绝对值: ``` ; 语法,NASM for DOS proc_ABS: -  ; 启动时,SI寄存器会指向数据段 (DS) 内的内存位置,那里存放着程序内包含着 -  ; 会被转正的64位数。 -  ; 结束时,如果结果数字不能被转正,Carry Flag (CF) 会被设置。这种情况只 -  ; 有在遇到最大负值时会发生。其余情况,CF 不会被设置。 +  ; 启动时,SI 寄存器会指向数据段(DS)内的内存位置,那里存放着程序内包含着 +  ; 会被转为正数的 64 位数。 +  ; 结束时,如果结果数字不能被转正,CF 寄存器会被设置。这种情况只 +  ; 有在遇到最大负值时会发生。其余情况,CF 不会被设置。     ; 检查最高字节的最高位   test [si+7], byte 0x80 -  ; 如不为1,值为正值 +  ; 如不为 1,值为正值   jz .done_ABS -  ; 翻转字的所有字位 #4 -  not word [si+6] +  ; 翻转所有位 +  not word [si+6] ; 字 #4   not word [si+4]       ; 字 #3   not word [si+2]       ; 字 #2 -  not word [si]                 ; 字 #1 -  ; 字#1 加一 +  not word [si]         ; 字 #1 +  ; 字 #1 加 1   inc word [si] -  ; 如结果不为0,结束 +  ; 如结果不为 0,结束   jnz .done_ABS -  ; 字#2 加一 +  ; 字 #2 加 1   inc word [si+2] -  ; 如结果为0,进位下一个字 +  ; 如结果为 0,进位下一个字   jnz .done_ABS   inc word [si+4]   jnz .done_ABS @@ -86,42 +87,42 @@ proc_ABS:   inc word [si+6]   ; 再一次检查最高位   test [si+7], byte 0x80 -  ; 如不为1,我们成功了,结束 +  ; 如不为 1,我们成功了,结束   jz .done_ABS   ; 溢出错误,它被转成了负数   stc -  ; 设置 Carry Flag 并返回 +  ; 设置 CF 并返回   ret .done_ABS: -  ; 成功,清理 Carry Flag 并返回 +  ; 成功,清理 CF 并返回   clc   ret ``` -你可能已经注意到了,这个函数有一个潜在问题。由于正负数的二进制值表达方式,最大负数无法被转成正数。以8位数为例,最大负数是 **-128**。如果你翻转了 **-128** 的所有位数 (二进制1__0000000),你会得到127 (二进制0__1111111) 即最大正值。如果你对结果加 **1**,它会因溢出回到同样的负数 (-128)。 +你可能已经注意到了,这个函数有一个潜在问题。由于正数和负数的二进制值表达方式,最大负数无法被转成正数。以 8 位数为例,最大负数是 `-128`。如果你翻转了 `-128` 的所有位数(二进制 `1__0000000`),你会得到 127(二进制 `0__1111111`)这个最大正值。如果你对结果加 `1`,它会因溢出回到同样的负数(`-128`)。 -你只需要重复计算绝对值的步骤就可以将正数转成负数。以下的程序十分相似,你唯一需要确认的就是一开始的数字不是已经负了。 +要将正数转成负数,你只需要重复计算绝对值的步骤就行。以下的程序十分相似,你唯一需要确认的就是一开始的数字不是已经负了。 ``` ; 语法, NASM for DOS proc_NEG: -  ; 开始时,SI会指向需要转负的数字在内存里的位置。 -  ; 结束时,Carry Flag永远不会被设置。 +  ; 开始时,SI 会指向需要转负的数字在内存里的位置。 +  ; 结束时,CF 永远不会被设置。     ; 检查最高字节的最高位   test [si+7], byte 0x80 -  ; 如为1,数已经是负数 +  ; 如为 1,数已经是负数   jnz .done_NEG -  not word [si+6]       ; 翻转字的所有字位 #4 +  not word [si+6]       ; 翻转字的所有位,字 #4   not word [si+4]       ; 字 #3   not word [si+2]       ; 字 #2 -  not word [si]                 ; 字 #1 -  inc word [si]                 ; 字#1 加一 -  ; 如结果不为0,结束 +  not word [si]         ; 字 #1 +  inc word [si]         ; 字 #1 加 1 +  ; 如结果不为 0,结束   jnz .done_NEG -  ; 字#2 加一 +  ; 字 #2 加 1   inc word [si+2] -  ; 如结果为0,进位下一个字 +  ; 如结果为 0,进位下一个字   jnz .done_NEG   inc word [si+4]   jnz .done_NEG @@ -129,17 +130,17 @@ proc_NEG:   inc word [si+6]   ; 正。 .done_NEG: -  clc                   ; 成功,清理 Carry Flag 并返回 +  clc                   ; 成功,清理 CF 并返回   ret ``` -看着这些绝对值与负值函数间的通用代码,它们应该被结合起来来节约一些字节。结合代码也会带来额外的好处。首先,结合代码能帮助防止简单的笔误。这样也可以减少测试的要求。进一步来讲,这样通常会让代码变得简单易懂。在阅读一长串的汇编指令时,忘记读到哪是常有的事。现在,我们可以不管这些。 +看着这些绝对值函数与负值函数间的通用代码,它们应该被合并起来节约一些字节。合并代码也会带来额外的好处。首先,合并代码能帮助防止简单的笔误。这样也可以减少测试的要求。进一步来讲,这样通常会让代码变得简单易懂。在阅读一长串的汇编指令时,忘记读到哪里是常有的事。现在,我们可以不管这些。 计算一个数的绝对值或负值并不难。但是,这些函数对于我们即将开始的有符号整型数学运算至关重要。 -我已经覆盖了整型数字在字位层的表达的基础,也创造了可以改变这些数字的基本程序,现在我们可以做点有趣的了。 +我已经介绍了整型数字在位这一层面的基本表示方法,也创造了可以改变这些数字的基本程序,现在我们可以做点有趣的了。 -让我们来做些数学吧! +让我们来做些数学运算吧! -------------------------------------------------------------------------------- @@ -148,10 +149,10 @@ via: https://opensource.com/article/22/10/64-bit-math 作者:[Jerome Shidel][a] 选题:[lkxed][b] 译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://opensource.com/users/shidel [b]: https://github.com/lkxed - +[0]: https://img.linux.net.cn/data/attachment/album/202212/09/150829g7c7x5e22qqo53c4.jpg \ No newline at end of file From a32ed0d15811a5322508f37b8b4990ec0cdbf983 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 9 Dec 2022 15:10:18 +0800 Subject: [PATCH 2281/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yzuowei 本文首发:https://linux.cn/article-15332-1.html 您的 LCTT 专页:https://linux.cn/lctt/yzuowei --- ...0221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md (98%) diff --git a/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md similarity index 98% rename from translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md rename to published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md index d5aa943880..e7597b2165 100644 --- a/translated/tech/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md +++ b/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md @@ -3,9 +3,9 @@ [#]: author: "Jerome Shidel https://opensource.com/users/shidel" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15332-1.html" 如何在 16 位系统上进行 64 位数学运算 ====== From 7e587e142c78c2315e0dbf15c59d1b6c1b209615 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 9 Dec 2022 15:25:42 +0800 Subject: [PATCH 2282/3123] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交翻译 --- ...Process ID and Kill it in Linux [CLI & GUI].md | 145 ----------------- ...Process ID and Kill it in Linux [CLI & GUI].md | 146 ++++++++++++++++++ 2 files changed, 146 insertions(+), 145 deletions(-) delete mode 100644 sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md create mode 100644 translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md diff --git a/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md deleted file mode 100644 index c8c5fff5b6..0000000000 --- a/sources/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md +++ /dev/null @@ -1,145 +0,0 @@ -[#]: subject: "How to Find a Process ID and Kill it in Linux [CLI & GUI]" -[#]: via: "https://www.debugpoint.com/find-process-id-kill-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Find a Process ID and Kill it in Linux [CLI & GUI] -====== - -**A simple tutorial demonstrates how to find a running process ID and kill it using the terminal and GUI method for various Linux distros.** - -The running applications in your Linux system can slow down your system, especially if you have a low-end system. In Linux (plus all OS), programs or apps contain a specific PID (process ID) by which you can identify them easily. - -However, as a beginner, many Linux users don’t know how to find a running process in Linux and kill it. So in this guide, we will explain different approaches to kill the currently running processes in Linux. That includes the terminal and GUI methods. - -Remember, you should only kill the process when it is not responding, or you are in a situation where the normal application closing is not working (for GUI-based apps). - -### How to find process id and kill them in Linux - -In this section, first, let’s learn the method to find the PID of a running process and then commands to kill them: - -#### Find the Currently Running Process - -You can use the `top` command to list the currently running process with their PID and other details. The top program is installed by default in all Linux distros and all Unix-based systems. - -``` -top -``` - -![Top program output][1] - -Similarly, you can run the `ps` command with additional options to get the PID of a specific process. For example, you can use the following command to get the PID of `firefox`: - -``` -ps -el | grep -i firefox -``` - -![Firefox process id using ps command - example][2] - -Now that you have found the process id, let’s see how you can kill it. - -#### Kill the Running Process - -You can either use the process name or PID to kill the currently running process using the following commands:  - -- **killall:** Kill a process using the name of a running process -- **[kill][3]:** Kill the process with PID - -Now, first, let’s use the `killall` process to kill Firefox with its name, and here is the command: - -``` -killall -9 firefox -``` - -- The parameter `-9` sends the SIGKILL signal to the OS to terminate the process. -- You can also list down several other signals using the following command. - -``` -kill -l -``` - -Similarly, if you want to kill the process from the process ID, you can use the command given below:  - -``` -kill -9 -``` - -For this example, the command would be: - -``` -kill -9 33665 -``` - -Let’s see how you can kill any process or application using the graphical user interface (GUI) in various distros. - -### Find process id to kill via GUI - -There are many graphical programs available to list down processes. Most Linux distribution ships it as part of their desktop environment. Here are some of them. - -#### GNOME (In Ubuntu, Fedora workstation, etc.) & in Linux Mint - -Search for “system monitor” in the application menu and open it. On the processes tab, find your process. Right-click on the process name to bring up the context menu and choose the option kill. - -![Kill a process in Linux using gnome system monitor][4] - -#### KDE Plasma (Kubuntu, Fedora-KDE or any Plasma-based distro) - -From the application menu, search and launch “system monitor”. This will launch the following program. From the left side, click on Processes, and you should see a list of programs running. You can right-click on the process/application and select Kill to terminate the process. - -![System monitor in KDE Plasma][5] - -#### Xfce desktop - -The native application for this task on the Xfce desktop is Task Manager, which you can launch via `Application > System > Task manager`. Right-click on the process name and select kill to terminate the app or process. - -![Xfce task manager to kill a process][6] - -#### Other desktops or distros to kill a process pr program - -If you can’t find anything similar, you can choose the terminal method. Or, you can install the gnome-system-monitor using the following commands. - -**For Ubuntu and related distros** - -``` -sudo apt install gnome-system-monitor -``` - -**In Fedora and related:** - -``` -sudo dnf install gnome-system-monitor -``` - -**And in Arch Linux:** - -``` -sudo pacman -S gnome-system-monitor -``` - -### Wrapping Up - -So this is how you can find a running process id in Linux and kill it. We have explained different approaches that you can try to kill the process either from its name or PID. I hope this helps. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/find-process-id-kill-linux/ - -作者:[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/12/Top-program-output.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/Firefox-process-id-using-ps-command-example.jpg -[3]: https://linux.die.net/man/1/kill -[4]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kill-a-process-in-Linux-using-gnome-system-monitor.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/System-monitor-in-KDE-Plasma.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Xfce-task-manager-to-kill-a-process.jpg diff --git a/translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md new file mode 100644 index 0000000000..f77e73d297 --- /dev/null +++ b/translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md @@ -0,0 +1,146 @@ +[#]: subject: "How to Find a Process ID and Kill it in Linux [CLI & GUI]" +[#]: via: "https://www.debugpoint.com/find-process-id-kill-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中找到一个进程 ID 并杀死它 [CLI & GUI] +====== + +**一个简单的教学展示教你如何找到正在运行中的进程 ID 并杀死它,你可以使用终端或着 GUI,这个方法适用于各类 Linux 发行版。** + +你的 Linux 系统中运行的应用可能会让你的电脑变慢,特别是你的电脑配置较低的时候。在 Linux (以及所有其他 OS)中,程序或者应用都携带一个特别的 PID (进程 ID)可供你简单地分辨它们。 + +然而,作为初学者,大部分 Linux 用户并不知道如何在 Linux 中寻找运行中的进程并杀死它。在这篇指南中,我们将会解释不同的方法用以杀死 Linux 中的运行进程。这包括了使用终端和 GUI 的方法。 + +记住,你只应该杀死未响应的进程,或者你发现应用无法被正常关闭 (针对基于 GUI 的应用)。 + +### 如何在 Linux 中找到进程 id 并杀掉它们 + +在这一部分中,我们首先应该先学会如何找到运行进程的 PID,然后再学习用以杀掉它们的命令: + +#### 找到正在运行中的进程 + +你可以使用命令 `top` 来列出所有正在进行中的进程和它们的 PID,以及其他细节。程序 top 在所有 Linux 发行版和所有基于 Unix 的系统中都是默认安装了的。 + +``` +top +``` + +![Top program output][1] + +同样地,你可以执行命令 `ps` 附带额外选项来获取某个指定的进程的 PID。例如,你可以使用以下命令来获得 `firefox` 的 PID。 + +``` +ps -el | grep -i firefox +``` + +![Firefox process id using ps command - example][2] + +现在你已经找到进程 id 了,让我们看看你该如何杀掉它。 + +#### 杀死运行中的进程 + +You can either use the process name or PID to kill the currently running process using the following commands:  +使用以下命令,你可以通过进程的名字或者 PID 来杀掉这个正在运行中的进程: + +- **killall:** 通过运行进程的名字来杀死进程 +- **[kill][3]:** 通过 PID 来杀死进程 + +现在,让我们首先使用进程 `killall` 通过 Firefox 这个名字来杀死它的,命令如下: + +``` +killall -9 firefox +``` + +- 参数 `-9` 发送了信号 SIGKILL 通知 OS 来终止这个进程。 +- 使用以下命令,你也可以列出一些别的信号。 + +``` +kill -l +``` + +同样地,如果你想要通过进程 ID 来杀死进程,你可以用以下命令: + +``` +kill -9 +``` + +在这个例子中,命令会长这样: + +``` +kill -9 33665 +``` + +让我们看看在不同发行版中,你该如何使用图形用户界面 (GUI) 来杀死任意进程或应用。 + +### 通过 GUI 寻找进程 id 并杀掉 + +现在有很多图形界面程序可以枚列进程。大部分 Linux 发行版的桌面环境中已经携带了它们。我们在这里列举出了一些。 + +#### GNOME (在 Ubuntu, Fedora workstation 中,诸如此类) & 在 Linux Mint 中 + +在应用菜单中搜索 "system monitor" 并打开它 (译者注:中文桌面环境也可以搜 "system monitor",我在 ubuntu 里试过了)。在进程 (Processes) 标签页下找到你的进程,右击进程名字打开快捷菜单,选择选项“杀死” (Kill)。 + +![Kill a process in Linux using gnome system monitor][4] + +#### KDE Plasma (Kubuntu,Fedora-KDE 或任何基于 Plasma 的发行版) + +在应用菜单中搜索并启动 "system monitor"。这会打开以下程序。在左边菜单栏点击进程,你因该能看见一列正在运行的程序。你可以右击列表里的进程或应用并选择“杀死”来终止进程。 + +![System monitor in KDE Plasma][5] + +#### Xfce 桌面 + +Xfce 桌面可以完成这项任务的原生应用是任务管理器 (Task Manager),你可以通过 `应用 (Application) > 系统 (System) > 任务管理器 (Task manager)` 来找到它。右击进程名字然后选择“杀死”来终止应用或进程。 + +![Xfce task manager to kill a process][6] + +#### 如何在其他桌面或发行版上杀死一个进程或程序 + +如果你找不到任何相似的程序,你可以选择使用终端的方法。或者,你可以使用以下命令来安装 gnome-system-monitor。 + +**Ubuntu 以及相关发行版** + +``` +sudo apt install gnome-system-monitor +``` + +**Fedora 以及其相关的:** + +``` +sudo dnf install gnome-system-monitor +``` + +**还有 Arch Linux:** + +``` +sudo pacman -S gnome-system-monitor +``` + +### 总结一下 + +这就是你该如何在 Linux 中找到一个运行中的进程 id 并杀死它。我们已经解释了不同的方法:你可以通过名字或者 PID 来杀死进程。我希望这对你有所帮助。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/find-process-id-kill-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[校对者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/12/Top-program-output.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/Firefox-process-id-using-ps-command-example.jpg +[3]: https://linux.die.net/man/1/kill +[4]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kill-a-process-in-Linux-using-gnome-system-monitor.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/System-monitor-in-KDE-Plasma.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Xfce-task-manager-to-kill-a-process.jpg From 4ac4ee34e964a81fa1ed8ce0476bfa26b963e405 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 9 Dec 2022 16:52:30 +0800 Subject: [PATCH 2283/3123] R --- .../20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md index e7597b2165..4630edf724 100644 --- a/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md +++ b/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md @@ -42,7 +42,7 @@ 第一种是无符号unsigned整型,其使用了所有的位来表达一个正数。无符号整型的值域为从 `0` 到 $2^{位长} - 1$。例如,8 位数可以是 `0` 到 `255` 之间的任意值,而 16 位数则在 `0` 到 `65535` 之间,以此类推。 -有符号整型也很类似。不同之处在于数字的最高位代表了这个数是一个正数(`0`)还是一个负数 (`1`)。有符号整型的值域前半部分为正数,正数值域是从 `0` 到 $2^{(字长 - 1)} - 1$。整型值域的后半部分为负数,负数值域则从 $0 - (2^{位长 - 1})$ 到 `-1`。 +有符号整型也很类似。不同之处在于数字的最高位代表了这个数是一个正数(`0`)还是一个负数 (`1`)。有符号整型的值域前半部分为正数,正数值域是从 `0` 到 $2^{(位长 - 1)} - 1$。整型值域的后半部分为负数,负数值域则从 $0 - (2^{位长 - 1})$ 到 `-1`。 比如说,一个 8 位数代表着 `0` 到 `127` 之间的任意正数,以及 `-128` 到 `-1` 之间的任意负数。为了能更好的理解这一点,想象 **字节** 为一列数组 `[0...127,-128...-1]`。因为 `-128` 在数组内紧跟着 `127`,`127` 加 `1` 等于 `-128`。当然这可能看起来有点奇怪甚至反常,但这其实让这个层级的基本数学运算变简单了。 From d298b374dd9daae123fddaba2e56e2550a428da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 21:11:55 +0800 Subject: [PATCH 2284/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221208.7=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Kumandar=20Linux=20Lightweight=20Debian=20&=20Xfce=20Spin=20wit?= =?UTF-8?q?h=20Windows=207=20Look.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...htweight Debian & Xfce Spin with Windows 7 Look.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/tech/20221208.7 ⭐️⭐️ Kumandar Linux Lightweight Debian & Xfce Spin with Windows 7 Look.md diff --git a/sources/tech/20221208.7 ⭐️⭐️ Kumandar Linux Lightweight Debian & Xfce Spin with Windows 7 Look.md b/sources/tech/20221208.7 ⭐️⭐️ Kumandar Linux Lightweight Debian & Xfce Spin with Windows 7 Look.md new file mode 100644 index 0000000000..4e1eb3472c --- /dev/null +++ b/sources/tech/20221208.7 ⭐️⭐️ Kumandar Linux Lightweight Debian & Xfce Spin with Windows 7 Look.md @@ -0,0 +1,121 @@ +[#]: subject: "Kumandar Linux: Lightweight Debian & Xfce Spin with Windows 7 Look" +[#]: via: "https://www.debugpoint.com/kumandar-linux-alpha/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kumandar Linux: Lightweight Debian & Xfce Spin with Windows 7 Look +====== + +**A new Linux distribution Kumandar Linux is under development (Alpha stage), and it makes switching to Linux easier with a default Windows 7 look.** + +![Kumandar Linux Desktop][1] + +Kumandar Linux is a new Linux distribution in the making coming from the Philippines. It is developed by Roy Hoejgaard and is currently in the Alpha stage. + +The name is a little unique, and as per the website: + +> “The name Kumander simply means Commander in English. It’s actually a homage to Commodore (my 1st computer – a VIC20 no less), but I didn’t think “Komodoro” sounded quite right. So Kumander it is.” + +Let’s take a look. + +### Kumandar Linux: A Quick First Look + +At first glance, it reminds you of the Windows 7 look, which is the default window manager GTK theme used here. Per the team, the drive to make this distro is to provide Linux users with a friendly user interface (which peaked in Windows 7 from Microsoft and went downhill after that). In addition to the look, it also promises a lightweight distro experience with Debian stable and Xfce desktop environment at the core. + +#### Installation + +Kumandar Linux uses Debian’s native installer with the branding changes only. It installs fine, and no surprises there. However, you can only launch the installation from the boot menu. There is no installation option from the LIVE medium. + +![Boot screen][2] + +![uses Debian installer][3] + +#### Login screen, Xfce desktop and components + +The login screen would remind you of the Windows 7 login screen. And when you log in, you should see a clean Xfce desktop in Kumandar Linux. + +It uses a natively developed Kumandar window manager theme, icon theme and the GTK2 theme. This includes the Xfce style as well. All of these blends nicely with the Xfce desktop to give you the following look. + +![Login screen][4] + +![Desktop look -2][5] + +The Xfce Panel is well configured to give you a perfect width, and the tray menu looks awesome. Usability-wise it is perfect with the default shortcuts and Xfce application menu. + +Default Sans font gives the final touch to make it look like Windows 7. The GTK2 theme really well built because of the animation on buttons during mouseover and desktop controls – they all look pleasant with the overall Windows 7 look. + +#### Applications + +All the necessary apps are pre-loaded in Kumandar Linux. That includes all the native Xfce apps. Furthermore, the developer also renamed some of the apps to make them feel like Windows apps. However, they are actually native Xfce apps. + +For example, the [default lightweight notepad][6] of Xfce desktop “mousepad” is changed to “Notepad” in the menu entry! + +Some of the key applications which are pre-loaded are the followings. These are in addition to the default Xfce apps. + +- Geany +- VSCodium +- Firefox +- GIMP +- Blender +- Inkscape +- LibreOffice +- Filezilla +- Putty +- Thunderbird email client +- Transmission torrent client +- Audacious and Ardour for audio work +- Parole music player + +![Kumandar Linux Running LibreOffice][7] + +Furthermore, the Synaptic package manager is there to install and uninstall apps. The list of pre-loaded applications, I believe, is almost complete for general use. And thanks to Debian stable, they should work fine. + +### Performance + +With all the customization and this theme, its performance is exceptionally well. I kept it running for almost 3 hours in Virtualbox. It consumes around 590 MB of memory which is really good. The CPU is in the 2% to 4% range. + +On top of that, if you run more apps, it may go up accordingly. But the baseline metric is impressive, and it might be one of the contenders on the [lightweight distro list][8] once it becomes a stable release. + +It uses only 6GB of disk space for the default installation. + +![Performance][9] + +### Wrapping Up + +The Kumandar Linux Alpha version looks promising, and I hope to see a stable release soon. For elders who want a familiar-looking distro to make a move to Linux for themselves, this might be a good “off the shelf” distro to start with. Because you probably do not need to configure anything or install any app. All the necessary configs and apps are done. + +And thanks to Debian-stable and Xfce desktop – the overall stability of the distro and desktop would be solid. Also, I believe this distro needs a 32-bit ISO, definitely. + +That being said, if you want to give it a try, download the ISO file from the [official website][10]. And let me know your opinion in the comment box. + +[Next:Mouse cursor is not visible in Fedora and Wayland [Fixed]][11] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kumandar-linux-alpha/ + +作者:[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/12/Kumandar-Linux-Desktop.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/Boot-scree.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/uses-Debian-installer.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/12/Login-screen.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Desktop-look-2.jpg +[6]: https://www.debugpoint.com/lightweight-notepad-linux/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kumandar-Linux-Running-LibreOffice.jpg +[8]: https://www.debugpoint.com/lightweight-linux-distributions-2022/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/Performance.jpg +[10]: https://www.kumander.org/?route=download +[11]: https://www.debugpoint.com/cursor-not-visible-wayland/ + From b6bb6da5485fc16d9deb7dff163f5dcc95060330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 21:14:23 +0800 Subject: [PATCH 2285/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221209.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Install=20open=20source=20solar=20power=20at=20home.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Install open source solar power at home.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md diff --git a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md new file mode 100644 index 0000000000..7f9e86514d --- /dev/null +++ b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md @@ -0,0 +1,61 @@ +[#]: subject: "Install open source solar power at home" +[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home" +[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Install open source solar power at home +====== + +You might have already given some thought to powering your home with solar. Solar photovoltaic panels, which convert sunlight directly into electricity, have fallen so far down in cost that it makes economic sense everywhere. That is why large companies have put in a lot of solar, and even the electric utilities have started installing massive solar farms—it simply costs less than antiquated fossil fuels. Like most homeowners, you would like to save money and eviscerate your electric bill, but you are probably cringing a bit at the upfront cost. To get a rough idea of the cost, a 5kW system that would power an average home installed at $3/W would cost about $15,000, while a larger home might need 10kW to offset all of their electricity purchases and cost $30,000. If you want batteries, double the cost (you don’t need batteries as most solar arrays connect to the grid, but if the grid goes down, so does your solar array until it is turned back on.) Paying for all your electricity for the next several decades is an investment, even if you save a lot of money. + +There is some good financial news. First, both the US and Canada have enacted a 30% tax credit for solar. This credit drops the price down to about $2/W. Second, [Opensource.com previously discussed][1] how you could get a free book, [_To Catch the Sun_][2], that walks you through how to design your own system (you will still need a certified electrician and inspections to attach it to the grid). If you are a little handy, you can cut the remaining cost by about 50%. These costs are primarily for materials, including solar panels, wiring, electronics, and racking. Amazingly, solar panel costs have dropped so low for small solar systems (like the ones for your house) the racking (mechanical structures that hold the solar panels up) can cost more than the panels! + +### Open source to the rescue again + +Applying the open source development paradigm to software results in faster innovation, better products, and lower costs. The same is true of open source hardware—and even in the relatively obscure area of photovoltaic racking. Nearly all commercial photovoltaic racking is made from proprietary odd aluminum extrusions. They cost a lot of money. If you have a bit of unshaded backyard, you have a few open source racking solutions to choose from. + +### Open source solar rack designs + +The first DIY solar rack design meets the following criteria: (1) made from locally-accessible renewable materials, (2) 25-year lifetime to match solar warranties, (3) able to be fabricated by average consumers, (4) able to meet Canadian structural building codes (if you live where there is no snow this is a bit overkill, but, hey, you might have other weather extremes like hurricanes to deal with), (5) low cost and (6) that it is shared using an open source license. [The open source wood-based fixed-tilt ground-mounted bifacial photovoltaic rack design][3] works throughout North America. The racking system saves from 49% to 77% compared to commercial proprietary racking. The racking design, however, is highly dependent on the cost of lumber, which varies worldwide. + +Check your local cost of wood before you dive into this open source design. + +![Non-tilting solar rack plans][4] + +If you are even more adventurous, you might consider this second design that allows you to change the tilt angle. The results of [the second study][5] show the racking systems with an optimal variable seasonal tilt angle have the best lifetime energy production, with 5.2% more energy generated compared to the fixed-tilt system (or 4.8% more energy, if limited to a maximum tilt angle of 60°). Both fixed and variable wooden racking systems show similar electricity costs, which are only 29% of that of proprietary commercial metal racking. The variable tilt rack provides the lowest cost option even when modest labor costs are included and also may provide specific advantages for applications such as [agrivoltaics][6] (i.e., you can garden underneath the panels and amazingly get increases in yields for shade-tolerant crops like lettuce). This design has been certified by [OSHWA with CERN-OHL-S-2.0 licenses][7]. + +IMAGE + +![Tilt-adjustable solar racks][8] + +There is about 1kW for each of the 2 PV module racks shown. So a house would need about five of them. Both papers provide full calculations and step-by-step build instructions. + +As anyone with a solar system will tell you, getting a negative electricity bill is pretty rewarding. This happens if you size your system to meet all of your load and live in a net-metered part of the country. Please note that the electric utilities don’t pay you; the credit carries over until you use it in the winter. + +Have fun with a little open source solar! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-solar-power-home + +作者:[Joshua Pearce][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/joshuapearce +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/11/open-source-solar-power +[2]: https://tocatchthesun.com/ +[3]: https://doi.org/10.3390/designs6030041 +[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png +[5]: https://doi.org/10.3390/designs6030054 +[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems +[7]: https://certification.oshwa.org/ca000013.html +[8]: https://opensource.com/sites/default/files/2022-11/tilt.png From e1053b81a47e751d93e7a090ab4dad299d9fe80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 21:14:57 +0800 Subject: [PATCH 2286/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221209.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?A=20Linux=20file=20manager=20for=20Emacs=20fans.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ A Linux file manager for Emacs fans.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 sources/tech/20221209.1 ⭐️⭐️ A Linux file manager for Emacs fans.md diff --git a/sources/tech/20221209.1 ⭐️⭐️ A Linux file manager for Emacs fans.md b/sources/tech/20221209.1 ⭐️⭐️ A Linux file manager for Emacs fans.md new file mode 100644 index 0000000000..a8460b53e5 --- /dev/null +++ b/sources/tech/20221209.1 ⭐️⭐️ A Linux file manager for Emacs fans.md @@ -0,0 +1,164 @@ +[#]: subject: "A Linux file manager for Emacs fans" +[#]: via: "https://opensource.com/article/22/10/linux-file-manager-dired" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A Linux file manager for Emacs fans +====== + +In 2009, I was working hard at a startup in Pittsburgh, and in the late evenings of coding, I developed a GNU Emacs habit. The thing about Emacs is that it's just too versatile to close. Whether you're writing code, writing articles about open source, jotting down a task list, or even playing music, you can do it all from within Emacs. And every time you think you've found a task outside of Emacs, you discover an Emacs mode to prove you wrong. One of my favorite reasons to not close Emacs is its file manager, called directory editor or just Dired. + +### Install GNU Emacs + +Dired is included with Emacs, so there's no install process aside from installing Emacs itself. + +On Linux, you can find GNU Emacs in your distribution's software repository. On Fedora, CentOS, Mageia, and similar: + +``` +$ sudo dnf install emacs +``` + +On Debian, Linux Mint, Elementary, and similar: + +``` +$ sudo apt install emacs +``` + +On macOS, use [Homebrew][1] or [MacPort][2]. + +For Windows, use [Chocolatey][3]. + +![Image of dired file directory.][4] + +### File management with Dired + +Dired mode is a text-based file management system. It can run in the graphical version of Emacs or in the terminal version of Emacs, making it a flexible, lightweight, and approved for use during a [zombie apocalypse][5]. + +To launch it, press **Ctrl+X** and then **d**. You're prompted in the mini buffer (the field at the bottom of the Emacs window) for the directory you want to open. It defaults to your home directory (`~`). + +``` +/home/tux: +total used in directory 40 available 88.1 GiB +drwx------. 17 tux  tux  4096 Sep 20 15:15 . +drwxr-xr-x.  5 root root   42 Sep 14 05:29 .. +-rw-------.  1 tux  tux   938 Sep 20 15:28 .bash_history +-rw-r--r--.  1 tux  tux    18 Nov  6  2021 .bash_logout +-rw-r--r--.  1 tux  tux   141 Nov  6  2021 .bash_profile +-rw-r--r--.  1 tux  tux   492 Nov  6  2021 .bashrc +drwxr-xr-x. 16 tux  tux  4096 Sep 20 14:23 .cache +drwx------. 16 tux  tux  4096 Sep 20 14:51 .config +drwxr-xr-x.  2 tux  tux    59 Sep 20 15:01 Desktop +drwxr-xr-x.  2 tux  tux     6 Sep 15 15:54 Documents +drwxr-xr-x.  3 tux  tux   166 Sep 20 15:12 Downloads +-rw-r--r--.  1 tux  tux   334 Oct  5  2021 .emacs +drwx------.  2 tux  tux     6 Sep 20 14:25 .emacs.d +-rw-------.  1 tux  tux    33 Sep 20 15:15 .lesshst +drwx------.  4 tux  tux    32 Sep 15 15:54 .local +drwxr-xr-x.  6 tux  tux    81 Sep 15 16:03 .mozilla +drwxr-xr-x.  2 tux  tux     6 Sep 15 15:54 Music +drwxr-xr-x.  2 tux  tux    59 Sep 20 14:52 Pictures[...] +``` + +The file listing provided looks familiar to anyone accustomed to `ls -l` in a terminal. From left to right: + +- Identifies the entry as a directory, if applicable, and then lists the [file permissions][6] +- The number of hard links to the entry (for example, the `Desktop` entry has 1 hard link representing itself, and 1 file in it) +- User +- Group +- Disk space used, in bytes +- Time last modified +- File name + +### Navigation + +To navigate Dired, you can use either the arrow keys or [standard Emacs key bindings][7]. For this article, I use Emacs notation: **C-** for **Ctrl** and **M-** for **Alt** or **Meta**. + +- **C-p** or **Up** arrow: Previous entry in list +- **C-n** or **Down** arrow: Next entry in list +- **Enter** or **v**: Descend into the selected directory +- **^**: Move "up" the directory tree to the current directory's parent + +### Refreshing the view + +Dired doesn't redraw the screen for every action, so sometimes you may need to prompt it to refresh. Press **g** to redraw a Dired listing. + +### Open a file + +One of the reasons you use a file manager is to find a file and then open it. Emacs can't open every file type, but you might be surprised at just how much it can handle. Then again, not everything it can handle is necessarily useful to you. For instance, it's nice that Emacs _can_ open a JPEG but I rarely view a JPEG in Emacs, and I certainly don't use it to edit a JPEG. + +Assuming you're considering the types of files you find Emacs useful for, you can open them directly from Dired. That includes text files (Asciidoc, Markdown, HTML, CSS, Lua, Python, and so on) as well as compressed TAR archives. + +To close a file that you've opened, use the **C-x****C-k** Emacs binding to invoke the `kill-buffer` function. + +### Copy a file + +To copy a file from one directory to another, press **C** (that's the capital letter `C`, not the **Ctrl** key). You're prompted to provide a destination directory and file name in the mini buffer at the bottom of the Emacs window. + +### Move a file + +Moving a file is, confusingly, _renaming_ a file (the exact opposite terminology used in Linux, where renaming a file is actually _moving_ a file.) I've used Dired for years and I still fail to remember this linguistic quirk. + +To rename a file, whether you're renaming it back into its current directory or renaming it to some other directory, press **R** (capital `R`.) You're prompted to provide a destination directory and a new file name in the mini buffer at the bottom of the Emacs window. + +### Selecting files + +There are a few ways to mark selections in Dired. The first is to have your cursor on the same line as a file or directory entry. If your cursor is on the same line as an entry, then that entry is considered the implicit selection. Any action you take in Dired that targets a file targets that one. This includes, incidentally, "marking" a file as selected. + +To mark a file as selected, press **m** while your cursor is on its line. You can mark as many files as you want, and each one is considered selected. To deselect (unmark) a file, press the **u** key. + +Yet another way to select multiple lines at once is to use a specialized selection function. Dired has several, including `dired-mark-directories` to mark all directories in a list, `dired-mark-executables` to select all binary executables in a list, `dired-mark-files-regexp` to mark files containing a regex pattern, and more. If you're not a regular Emacs user, this is a considered advanced because it requires you to invoke Emacs functions, but here's how to do it and what to look for. + +Suppose you want to select all directories in a list: + +- Press **M-x** to activate the mini buffer prompt. +- Type `dired-mark-directories` and press **Return** on your keyboard. +- Look at the mini buffer. It tells you how many directories have been marked, and then it tells you that you can invoke this function again in the future with *******/** key combination. + +Any function in GNU Emacs that has a key binding associated with it reveals the keys to you after you've invoked it in its long form. + +### Creating an archive + +To create an archive of a file or a selection of files, press `c` (that's a lower-case `c`, not **Ctrl**). If you have nothing selected (or "marked" in Emacs terminology), then the current line is compressed. If you have files marked, then they're compressed into a single archive. In the mini buffer at the bottom of the Emacs window, you're prompted for a file name and path. Luckily, Emacs is a smart application and derives the target file type from the name you provide. If you name your archive `example.tar.xz`, then Emacs creates a TAR archive with lzma compression, but if you name it `example.zip` then it creates a ZIP file. + +### Cancel an action + +Should you accidentally invoke a function you don't want to finish, press **C-g** (that's Emacs notation for **Ctrl+G**.) Depending on where you are in the course of the function, you may have to press **C-g** in the mini buffer specifically to stop it from prompting you to continue. This is true for Emacs as a whole, so learn this valuable trick for Dired and carry it over to every mode you use. + +### Emacs is always open + +To quit Dired, you press **C-x****C-k** to kill the Dired buffer, just as you kill any Emacs buffer. + +To quit Emacs altogether, press **C-x****C-c**. + +Dired is a very capable file manager, and I've only covered the basics here. For a full list of what Dired can do, press they `h` key. + +I think Dired is probably most useful to those using or intending to use Emacs. I probably wouldn't choose it as a general-purpose file manager on a graphical system, because there are so many great alternatives already configured to work with the rest of the system when opening files. Of course, Emacs is infinitely configurable, so if you really enjoy Dired you can set it to do whatever you want it to do. + +For a headless system, though, I find that Dired makes a great file manager. Emacs is such a robust operating environment as it is, and Dired only adds to its versatility. With Emacs open, you have a built-in file manager, shell, multiplexer, text editor, and file previewer. You could very nearly use Emacs essentially as your login shell. + +Dired is a good text-based file manager, and well worth a look. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/linux-file-manager-dired + +作者:[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/article/20/6/homebrew-mac +[2]: https://opensource.com/article/20/11/macports +[3]: https://opensource.com/article/20/3/chocolatey +[4]: https://opensource.com/sites/default/files/2022-10/dired.directory.png +[5]: https://opensource.com/zombie +[6]: https://www.redhat.com/sysadmin/suid-sgid-sticky-bit +[7]: https://opensource.com/article/20/1/emacs-cheat-sheet From ee50efa33f4adf688c3a08c74b59917dd29f1dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 9 Dec 2022 21:15:47 +0800 Subject: [PATCH 2287/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221209.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Tea=20Raises=20$8.9M=20to=20Introduce=20a=20New=20Protocol=20He?= =?UTF-8?q?lping=20Open-Source=20Developers=20Get=20Paid.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rotocol Helping Open-Source Developers Get Paid.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md diff --git a/sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md b/sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md new file mode 100644 index 0000000000..79302d8dd7 --- /dev/null +++ b/sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md @@ -0,0 +1,94 @@ +[#]: subject: "Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid" +[#]: via: "https://news.itsfoss.com/tea-open-source-new-protocol/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid +====== + +An exciting way to help open-source developers get paid for their efforts. + +![Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid][1] + +[Tea][2] is an open-source unified package manager used by many developers worldwide. + +If you didn't know, Tea is a project by the creator of Homebrew. + +In a recent announcement, they announced that they have raised $8.9 Million in seed funding and are planning to introduce a new [web3 protocol][3] that will help open-source developers get paid for their work. + +I came across this via an article posted on [TechCrunch][4], where they had a chat with the founders of Tea. + +Let's take a look at what's in store for Tea. + +### A New Protocol Proposed by Tea + +**What is it?** + +**Long story short:** This protocol will help package maintainers receive non-fungible tokens (NFTs) as a reward for their contributions to a Tea-equipped open-source project. + +The extended version is, that this is a web3 protocol that will help package maintainers get paid in the form of a non-fungible token (NFT). + +When a maintainer completes a package submission, they will receive a non-transferable token (NFT) that can be used as evidence of their work and contribution. + +Existing maintainers will also be able to transfer the maintenance ownership of a package by transferring the package's NFT to other developers. + +> 💡 These NFTs are at the core of how Tea is planning to reward its users. + +Implementing this will also involve entities called '**Package Supporters** and **Sponsors**'. + +These include organizations, package users, philanthropists, and entrepreneurs who use open-source software to build commercial products and are looking to support such an ecosystem. + +They also mention that: + +> To provide the broadest coverage, we believe that rewards mustn’t rely on a simplistic notion of tracking installations or uninstallations, but rather on incentive mechanisms that encourage the submission of quality packages and the reporting of nefarious or high-risk packages. + +**When to Expect?:** So far, with Tea, they have only released what they term as 'the base features that a CLI [command-line interface] tool of its kind should have'. + +As of now, no concrete release date has been mentioned for this new protocol, and their best estimate for the release of this protocol is 'some time in 2023'. + +They add: + +> Much like waiting until November to release our CLI, we’re not going to launch until we understand how it should be best built and have gone through trial and error internally. + +> We’re going to take our time and make sure the tool itself is very useful and valuable for developers. + +### How Does it Help? + +**According to Tea inc:** This is supposed to help them create an open, public, and stable registry for all open-source software. + +In turn, empowering projects to publish releases independently rather than relying on third parties who assemble their data unpredictably, resulting in a ton of separate and often duplicated systems. + +Here's what they tell about their goals with the protocol: + +> Tea’s goal is to implement decentralized incentive mechanisms through unique use cases of the tea token for any member of the tea community to contribute to the perpetual sustainability and continuous growth of open-source. + +> Package supporters and sponsors are free to decide which packages or package maintainers they want to support based on their work, beliefs, or any criteria and metric that would influence their decision. + +**In my opinion:** This is an exciting approach to rewarding open-source contributors who are frequently neglected, even after contributing a lot to various open-source projects. + +However, considering that NFTs have garnered a lot of criticism in recent times. This may or may not turn out well. + +If you'd like to know more, you can dive deep into its official [white paper][5] for this protocol. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/tea-open-source-new-protocol/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/cli-raise-funds-new-api-help-opensource-dev.png +[2]: https://tea.xyz +[3]: https://web3.foundation/about/ +[4]: https://techcrunch.com/2022/12/06/from-the-creator-of-homebrew-tea-raises-8-9m-to-build-a-protocol-that-helps-open-source-developers-get-paid/ +[5]: https://tea.xyz/tea.white-paper.pdf From a04b352a80e68ad522e85290b1fe02dff599c4f2 Mon Sep 17 00:00:00 2001 From: ZZJ Date: Fri, 9 Dec 2022 21:41:45 +0800 Subject: [PATCH 2288/3123] Update 20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md --- ... Useful Linux Command Line Tools that Everyone Should Use.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md b/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md index 9c40df67a5..93b41aa58e 100644 --- a/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md +++ b/sources/tech/20220623 5 Useful Linux Command Line Tools that Everyone Should Use.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/2022/06/useful-linux-command/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: "Veryzzj" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 236bc5d27023e95c27e0a958a078b9b41794a1e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91?= Date: Sat, 10 Dec 2022 06:44:22 +0800 Subject: [PATCH 2289/3123] Translated --- ...Install GNOME Desktop Environment in Linux Mint.md | 116 ------------------ ...Install GNOME Desktop Environment in Linux Mint.md | 116 ++++++++++++++++++ 2 files changed, 116 insertions(+), 116 deletions(-) delete mode 100644 sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md create mode 100644 translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md diff --git a/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md deleted file mode 100644 index a00f08127f..0000000000 --- a/sources/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md +++ /dev/null @@ -1,116 +0,0 @@ -[#]: subject: "How to Install GNOME Desktop Environment in Linux Mint" -[#]: via: "https://itsfoss.com/install-gnome-linux-mint/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install GNOME Desktop Environment in Linux Mint -====== - -Linux Mint is an excellent Linux distribution, especially for beginners. - -I like that it stays on the familiar Ubuntu/Debian front and yet it does several things [better than Ubuntu][1]. One of them is that it doesn’t push Snaps down my throat. - -However, I am not a fan of the Cinnamon desktop as I never really liked the Windows XP or 7’s default setup either. - -As I was looking for the stability that Linux Mint offered with the ability to use GNOME and here’s what I got in the end: - -![install gnome in linux mint][2] - -Nothing too fancy but this is my Linux Mint 21 running GNOME 42.5. - -And if you want to install GNOME on Linux Mint, this guide is for you. - -### Things to know before installing GNOME on Linux Mint - -You really should have good enough reasons to install GNOME on Mint. If you are just feeling experimental, try it in a virtual machine. I performed this tutorial with [Linux Mint installed in VirtualBox][3]. - -The thing about installing a desktop environment other than the one provided by the distribution is that the removal part complicates the matter. - -Cinnamon uses some GNOME elements. If you decide to remove GNOME later, it may impact some parts of Cinnamon. - -This could be a cause of panic for inexperienced users. Of course, reinstalling the Cinnamon desktop from the TTY screen could be a possible solution here. - -The gist of all this is that if you easily get spooked and don’t like troubleshooting, you should not do these ‘experiments’ on your main computer. - -With that aside, let’s see the simple procedure of getting GNOME on Linux Mint. - -### Install GNOME Desktop Environment in Linux Mint - -Here you have two options. Either you can go with a complete GNOME desktop which includes all the GNOME utilities, or you can go with the stripped-down version having the least amount of GNOME packages. - -And I will be covering both. - -To **install GNOME with the least amount of GNOME utilities,** you’d have to install a package named `vanilla-GNOME` using the given command: - -``` -sudo apt install vanilla-gnome-desktop -``` - -And **if you want to have a complete GNOME experience**, you can simply install the `gnome` package: - -``` -sudo apt install gnome -``` - -Once you execute any of the two shown commands, you will be asked to choose the preferred display manager in the next step. - -![choose display manager][4] - -`gdm3` is a display manager for the GNOME desktop while Linux Mint uses `lightdm` by default and both should work just fine, but I will suggest you go with gdm3 to have the complete GNOME experience. - -#### Switching to GNOME - -Once done, log out and hit enter once, and there you’d see a small gear icon. From here, choose GNOME: - -![choose gnome while logging in][5] - -And now, you have GNOME with Linux Mint as a base! - -#### Bonus Tip: How to Apply Themes with consistency - -You can use that Cinnamon themes, but most of them don’t work as expected, so I will recommend using GNOME themes such as Adwaita to have consistency around the desktop. - -For me, the default fonts do not work at all, and I prefer something close to what Fedora offers. So open GNOME tweaks from the system menu and make changes as shown: - -![change fonts in ubuntu to have vanilla gnome experience][6] - -Here’s what I have used: - -- **Cantarell Regular (11)** for both interface and document text. -- **Noto Sans Mono Regular (13)** for monospace text. -- **Cantarell Bold (11)** for window titles. - -And it turned out to be far better than the default Ubuntu font scheme. - -Since you have GNOME, you can use our detailed guide on installing and [changing GNOME themes on Linux][7] to make it as your heart desires. - -### Wrapping Up - -As you can see, installing GNOME on Linux Mint is quite simple. And as I mentioned earlier, the removal part could complicate things as it has the possibility of removing some GNOME packages required by Cinnamon. - -What is powering your main machine right now? I’m on Pop!_OS. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/install-gnome-linux-mint/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/linux-mint-vs-ubuntu/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/install-gnome-in-linux-mint.png -[3]: https://itsfoss.com/install-linux-mint-in-virtualbox/ -[4]: https://itsfoss.com/wp-content/uploads/2022/11/choose-display-manager.png -[5]: https://itsfoss.com/wp-content/uploads/2022/11/choose-gnome-while-logging-in.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/change-fonts-in-ubuntu-to-have-vanilla-gnome-experience.png -[7]: https://itsfoss.com/install-switch-themes-gnome-shell/ diff --git a/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md new file mode 100644 index 0000000000..2547594576 --- /dev/null +++ b/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md @@ -0,0 +1,116 @@ +[#]: subject: "How to Install GNOME Desktop Environment in Linux Mint" +[#]: via: "https://itsfoss.com/install-gnome-linux-mint/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "robsean" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux Mint 上安装 GNOME 桌面环境 +====== + +Linux Mint 是一款极好的 Linux 发行版,特别适合初学者。 + +我喜欢它仍然保持常见的 Ubuntu/Debian 字体,但是它还做了一些 [比 Ubuntu 更好的][1] 工作。其中之一就是它没有使用 Snaps 。 + +然而,我不是 Cinnamon 桌面环境的粉丝,因为我从来没有真正地喜欢过 Windows XP 或 7 的默认设置。 + +当我在为 Linux Mint 寻找能提供稳定使用 GNOME 的能力时,这便是我最终获得的结果: + +![install gnome in linux mint][2] + +这就是我运行 GNOME 42.5 的 Linux Mint 21 。 + +如果你想在 Linux Mint 上安装 GNOME ,那么这篇指南非常适合你。 + +### 在 Linux Mint 上安装GNOME 之前所要知道的事 + +你真的应该有足够的理由来在 Mint 上安装 GNOME 。如果你只是为了尝鲜,可以在虚拟机中尝试。我使用 [在 VirtualBox 中安装的 Linux Mint][3] 来演示这篇教程。 + +在发行版上安装一种桌面环境与直接使用来自发行版所提供的桌面环境相比,移除桌面环境部分会使其变成一件很复杂化的事。 + +Cinnamon 使用一些 GNOME 元素。如果你决定稍后移除 GNOME ,这可能会影响到 Cinnamon 的一部分功能。 + +这可能会导致缺少实战经验用户的恐慌。当然,在 TTY 屏幕中重新安装 Cinnamon 桌面环境可能是一种可行的解决方案。 + +最重要的一点是,如果你很容易惊慌地不知所措和不喜欢解决难题,那么你就不应该在你的主力计算机上做这些 ‘试验’ 。 + +抛开这些顾虑,让我们看看在 Linux Mint 上获取 GNOME 的简单过程。 + +### 在 Linux Mint 上安装 GNOME 桌面环境 + +在这里,你有两个选项。1、你可以使用包含所有的 GNOME 实用程序的完整的 GNOME 桌面,2、你也可以使用包含极少数软件包的 GNOME 精简版本、 + +我都将讲解一下。 + +为 **安装精简版本的 GNOME** ,你需要安装一个名称为 `vanilla-GNOME` 的软件包,使用下面给定的命令: + +``` +sudo apt install vanilla-gnome-desktop +``` + +**如果你想要完整的 GNOME 体验** ,你可以简单地安装 `gnome` 软件包: + +``` +sudo apt install gnome +``` + +在你执行上述任一个命令后,在接下来的步骤中将会要求你选择首选的显示管理器。 + +![choose display manager][4] + +`gdm3` 是 GNOME 桌面的显示管理器,而 Linux Mint 使用 `lightdm` 作为默认的显示管理器,这两种显示器都可以正常工作,但是,我建议你使用 gdm3 来获取完整的 GNOME 体验。 + +#### 切换到 GNOME + +在完成后,注销并按一次 enter 按键,在这里,你将看到一个小齿轮图标。从这里选择 GNOME : + +![choose gnome while logging in][5] + +现在,你拥有以 Linux Mint 为基础的 GNOME 桌面环境! + +#### 额外提示:如何应用整体风格一致的主题 + +你可以继续使用 Cinnamon 桌面的主题,但是它们大多不能如前工作,因此,我建议使用 GNOME 桌面的主题(例如 Adwaita )来保持桌面环境的一致性。 + +对我而言,其默认的字体没有一点效果。并且,我更喜欢 Fedora 提供的一些字体。因此,从系统菜单打开 GNOME 调整GNOME tweaks 窗口,并作出如下更改: + +![change fonts in ubuntu to have vanilla gnome experience][6] + +这里是我使用的一些东西: + +- **Cantarell Regular (11)** 用于界面和文档文本。 +- **Noto Sans Mono Regular (13)** 用于等宽字体文本。 +- **Cantarell Bold (11)** 用于窗口标题。 + +它们的结果是,比默认的 Ubuntu 字体方案要好得多。 + +既然你有了 GNOME ,你可以使用我们的详细指南来安装和 [更改 Linux 上的 GNOME 主题][7],来使其成为你所梦想的样子。 + +### 总结 + +如你所见,在 Linux Mint 上安装 GNOME 是非常简单的。正如我先前所提到的那样,移除部分可能会使事情复杂化,因为这可能会移除一些 Cinnamon 所需要的一些 GNOME 软件包。 + +你现在的主力计算机系统是什么?我的是 Pop!_OS 。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-gnome-linux-mint/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[robsean](https://github.com/robseans) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/linux-mint-vs-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/install-gnome-in-linux-mint.png +[3]: https://itsfoss.com/install-linux-mint-in-virtualbox/ +[4]: https://itsfoss.com/wp-content/uploads/2022/11/choose-display-manager.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/choose-gnome-while-logging-in.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/change-fonts-in-ubuntu-to-have-vanilla-gnome-experience.png +[7]: https://itsfoss.com/install-switch-themes-gnome-shell/ From 2d9d8f3a6d1532f72d26a6ad125a1a3dbd32c903 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 10 Dec 2022 10:31:23 +0800 Subject: [PATCH 2290/3123] Update and rename sources/tech/20220628 Linux su vs sudo- what-s the difference-.md to translated/tech/20220628 Linux su vs sudo- what-s the difference-.md --- ...inux su vs sudo- what-s the difference-.md | 150 ----------------- ...inux su vs sudo- what-s the difference-.md | 151 ++++++++++++++++++ 2 files changed, 151 insertions(+), 150 deletions(-) delete mode 100644 sources/tech/20220628 Linux su vs sudo- what-s the difference-.md create mode 100644 translated/tech/20220628 Linux su vs sudo- what-s the difference-.md diff --git a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md b/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md deleted file mode 100644 index 7dab5d8703..0000000000 --- a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md +++ /dev/null @@ -1,150 +0,0 @@ -[#]: subject: "Linux su vs sudo: what's the difference?" -[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin" -[#]: author: "David Both https://opensource.com/users/dboth" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux su vs sudo: what's the difference? -====== -A comparison of Linux commands for escalating privileges for non-root users. - -![bash logo on green background][1] - -Image by: Opensource.com - -Both the `su` and the `sudo` commands allow users to perform system administration tasks that are not permitted for non-privileged users—that is, everyone but the root user. Some people prefer the `sudo` command: For example, [Seth Kenlon][2] recently published "[5 reasons to use sudo on Linux][3]", in which he extols its many virtues. - -I, on the other hand, am partial to the `su` command and prefer it to `sudo` for most of the system administration work I do. In this article, I compare the two commands and explain why I prefer `su` over `sudo` but still use both. - -### Historical perspective of sysadmins - -The `su` and `sudo` commands were designed for a different world. Early Unix computers required full-time system administrators, and they used the root account as their only administrative account. In this ancient world, the person entrusted with the root password would log in as root on a teletype machine or CRT terminal such as the DEC VT100, then perform the administrative tasks necessary to manage the Unix computer. - -The root user would also have a non-root account for non-root activities such as writing documents and managing their personal email. There were usually many non-root user accounts on those computers, and none of those users needed total root access. A user might need to run one or two commands as root, but very infrequently. Many sysadmins log in as root to work as root and log out of our root sessions when finished. Some days require staying logged in as root all day long. Most sysadmins rarely use `sudo` because it requires typing more than necessary to run essential commands. - -These tools both provide escalated privileges, but the way they do so is significantly different. This difference is due to the distinct use cases for which they were originally intended. - -### sudo - -The original intent of `sudo` was to enable the root user to delegate to one or two non-root users access to one or two specific privileged commands they need regularly. The `sudo` command gives non-root users temporary access to the elevated privileges needed to perform tasks such as adding and deleting users, deleting files that belong to other users, installing new software, and generally any task required to administer a modern Linux host. - -Allowing the users access to a frequently used command or two that requires elevated privileges saves the sysadmin a lot of requests from users and eliminates the wait time. The `sudo` command does not switch the user account to become root; most non-root users should never have full root access. In most cases, `sudo` lets a user issue one or two commands then allows the privilege escalation to expire. During this brief time interval, usually configured to be 5 minutes, the user may perform any necessary administrative tasks that require elevated privileges. Users who need to continue working with elevated privileges but are not ready to issue another task-related command can run the `sudo -v` command to revalidate the credentials and extend the time for another 5 minutes. - -Using the `sudo` command does have the side effect of generating log entries of commands used by non-root users, along with their IDs. The logs can facilitate a problem-related postmortem to determine when users need more training. (You thought I was going to say something like "assign blame," didn't you?) - -### su - -The `su` command is intended to allow a non-root user to elevate their privilege level to that of root—in fact, the non-root user becomes the root user. The only requirement is that the user know the root password. There are no limits on this because the user is now logged in as root. - -No time limit is placed on the privilege escalation provided by the su command. The user can work as root for as long as necessary without needing to re-authenticate. When finished, the user can issue the exit command to revert from root back to their own non-root account. - -### Controversy and change - -There has been some recent disagreement about the uses of `su` versus `sudo`. - -> Real [Sysadmins] don't use sudo. —Paul Venezia - -Venezia contends in his [InfoWorld article][4] that `sudo` is used as an unnecessary prop for many people who act as sysadmins. He does not spend much time defending or explaining this position; he just states it as a fact. And I agree with him—for sysadmins. We don't need the training wheels to do our jobs. In fact, they get in the way. - -However, - -> The times they are a'changin.' —Bob Dylan - -Dylan was correct, although he was not singing about computers. The way computers are administered has changed significantly since the advent of the one-person, one-computer era. In many environments, the user of a computer is also its administrator. This makes it necessary to provide some access to the powers of root for those users. - -Some modern distributions, such as Ubuntu and its derivatives, are configured to use the `sudo` command exclusively for privileged tasks. In those distros, it is impossible to log in directly as the root user or even to `su` to root, so the `sudo` command is required to allow non-root users any access to root privileges. In this environment, all system administrative tasks are performed using `sudo`. - -This configuration is possible by locking the root account and adding the regular user account(s) to the wheel group. This configuration can be circumvented easily. Try a little experiment on any Ubuntu host or VM. Let me stipulate the setup here so you can reproduce it if you wish. I installed Ubuntu 16.04 LTS1 and installed it in a VM using VirtualBox. During the installation, I created a non-root user, student, with a simple password for this experiment. - -Log in as the user student and open a terminal session. Look at the entry for root in the `/etc/shadow` file, where the encrypted passwords are stored. - -``` -student@ubuntu1:~$ cat /etc/shadow -cat: /etc/shadow: Permission denied -``` - -Permission is denied, so we cannot look at the `/etc/shadow` file. This is common to all distributions to prevent non-privileged users from seeing and accessing the encrypted passwords, which would make it possible to use common hacking tools to crack those passwords. - -Now let's try to `su -` to root. - -``` -student@ubuntu1:~$ su - -Password: -su: Authentication failure -``` - -This fails because the root account has no password and is locked out. Use the `sudo` command to look at the `/etc/shadow` file. - -``` -student@ubuntu1:~$ sudo cat /etc/shadow -[sudo] password for student: -root:!:17595:0:99999:7::: - -student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7::: - -``` - -I have truncated the results to show only the entry for the root and student users. I have also shortened the encrypted password so the entry will fit on a single line. The fields are separated by colons (`:` ) and the second field is the password. Notice that the password field for root is a bang, known to the rest of the world as an exclamation point (`!` ). This indicates that the account is locked and that it cannot be used. - -Now all you need to do to use the root account as a proper sysadmin is to set up a password for the root account. - -``` -student@ubuntu1:~$ sudo su - -[sudo] password for student: -root@ubuntu1:~# passwd root -Enter new UNIX password: -Retype new UNIX password: -passwd: password updated successfully -root@ubuntu1:~# -``` - -Now you can log in directly on a console as root or `su` directly to root instead of using `sudo` for each command. Of course, you could just use `sudo su -` every time you want to log in as root, but why bother? - -Please do not misunderstand me. Distributions like Ubuntu and their up- and downstream relatives are perfectly fine, and I have used several of them over the years. When using Ubuntu and related distros, one of the first things I do is set a root password so that I can log in directly as root. Other distributions, like Fedora and its relatives, now provide some interesting choices during installation. The first Fedora release where I noticed this was Fedora 34, which I have installed many times while writing an upcoming book. - -One of those installation options can be found on the page to set the root password. The new option allows the user to choose "Lock root account" in the way an Ubuntu root account is locked. There is also an option on this page that allows remote SSH login to this host as root using a password, but that only works when the root account is unlocked. The second option is on the page that allows the creation of a non-root user account. One of the options on this page is "Make this user administrator." When this option is checked, the user ID is added to a special group called the wheel group, which authorizes members of that group to use the `sudo` command. Fedora 36 even mentions the wheel group in the description of that checkbox. - -More than one non-root user can be set as an administrator. Anyone designated as an administrator using this method can use the `sudo` command to perform all administrative tasks on a Linux computer. Linux only allows the creation of one non-root user during installation, so other new users can be added to the wheel group when created. Existing users can be added to the wheel group by the root user or another administrator directly by using a text editor or the `usermod` command. - -In most cases, today's administrators need to do only a few essential tasks such as adding a new printer, installing updates or new software, or deleting software that is no longer needed. These GUI tools require a root or administrative password and will accept the password from a user designated as an administrator. - -### How I use su and sudo on Linux - -I use both `su` and `sudo`. They each have an important place in my sysadmin toolbox. - -I can't lock the root account because I need to use it to run my [Ansible][5] playbooks and the [rsbu][6] Bash program I wrote to perform backups. Both of these need to be run as root, and so do several other administrative Bash scripts I have written. I use the `su` command to switch users to the root user so I can perform these and many other common tasks. Elevating my privileges to root using `su` is especially helpful when performing problem determination and resolution. I really don't want a `sudo` session timing out on me while I am in the middle of my thought process. - -I use the `sudo` command for tasks that need root privilege when a non-root user needs to perform them. I set the non-root account up in the sudoers file with access to only those one or two commands needed to complete the tasks. I also use `sudo` myself when I need to run only one or two quick commands with escalated privileges. - -### Conclusions - -The tools you use don't matter nearly as much as getting the job done. What difference does it make if you use vim or Emacs, systemd or SystemV, RPM or DEB, `sudo` or `su` ? The bottom line here is that you should use the tools with which you are most comfortable and that work best for you. One of the greatest strengths of Linux and open source is that there are usually many options available for each task we need to accomplish. - -Both `su` and `sudo` have strengths, and both can be secure when applied properly for their intended use cases. I choose to use both `su` and `sudo` mostly in their historical roles because that works for me. I prefer `su` for most of my own work because it works best for me and my workflow. - -Share how you prefer to work in the comments! - -This article is taken from Chapter 19 of my book The Linux Philosophy for Sysadmins (Apress, 2018) and is republished with permission. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin - -作者:[David Both][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/dboth -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png -[2]: https://opensource.com/users/seth -[3]: https://opensource.com/article/22/5/use-sudo-linux -[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr -[5]: https://opensource.com/article/20/10/first-day-ansible -[6]: https://opensource.com/article/17/1/rsync-backup-linux diff --git a/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md b/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md new file mode 100644 index 0000000000..7b8efbc4d5 --- /dev/null +++ b/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md @@ -0,0 +1,151 @@ +[#]: subject: "Linux su vs sudo: what's the difference?" +[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux 中的 `su` 和 `sudo` 命令有什么区别呢? +====== + +>本文将比较 非 root 用户 non-root user 提权为 root 用户的两个 **Linux 命令** 的区别。 + +![bash logo on green background][1] + +`su` 和 `sudo` 命令都允许用户执行非特权用户不允许做的系统管理任务,即只有 root 用户能执行的命令。有些人更喜欢 `sudo` 命令:例如 [Seth Kenlon][2] 最近发布的一篇 [《在 Linux 上使用 `sudo` 的 5 个理由》][3],他在其中详细阐述了 `sudo` 命令的许多优点。 + +但是,相较于 `sudo` 命令,我**更偏好于 `su` 命令**,来做系统管理工作。在本文中,我比较了这两个命令的区别,并解释了为什么我更喜欢 `su` 而不是 `sudo`,但我仍然同时使用这两个命令的原因。 + +### 过去的系统管理员主要使用 `su` 命令 + +`su` 和 `sudo` 命令是为**不同的世界**设计的。早期的 Unix 计算机需要全职系统管理员,他们使用 root 用户作为唯一的管理帐户。在这个古老的世界里,有管理员密码的人会在电传打字机或 CRT 终端(例如 DEC VT100)上以 root 用户登录,然后执行一些管理 Unix 计算机的工作。 + +root 用户还有一个非 root 帐户,用于执行一些非 root 的任务,例如编写文档和管理电子邮件等。在这些 Unix 计算机上通常有许多非 root 帐户,他们都不需要完全的 root 访问权限,只需要以 root 权限运行很少的命令,大约 1 至 2 个就可以了。许多系统管理员以 root 用户登录,完成 root 工作,并在任务完成后,退出 root 会话。系统管理员需要整天以 root 用户来登录,因为 `sudo` 命令需要键入更多的内容才能运行基本命令,因此大多数系统管理员很少使用 `sudo` 命令。 + +`sudo` 和 `su` 这两个命令都能够提权为 root 用户,但它们实现的方式大不相同。这种差异是由于它们**最初打算用于不同的情况**。 + +### `sudo` 命令 + +`sudo` 命令的初衷是让 root 用户能够将他们定期需要的 1 到 2 个特权命令委托给 1 至 2 个非 root 用户。`sudo` 命令允许非 root 用户暂时地获得更高权限,来执行一些特权命令,例如添加和删除用户、删除属于其他用户的文件、安装新软件以及管理现代 Linux 主机所需的任何命令。 + +`sudo` 命令允许非 root 用户访问 1 到 2 个 _需要更高权限_ 的常用命令,这样可以帮助系统管理员节省来自用户的许多请求,并减少等待时间。`sudo` 命令不会将用户帐户切换为 root 用户,因为大多数非 root 用户永远不应该拥有完全的 root 访问权限。在大多数情况下,`sudo` 允许用户执行 1 或 2 个命令,然后提权就会过期。在这个通常为 5 分钟的短暂的提权时间内,用户可以执行任何需要提权的管理命令。需要继续使用提权的用户可以运行 `sudo -v` 命令来重新验证 root 访问权限,并将提权时间再延长 5 分钟。 + +使用 `sudo` 命令还有一些副作用,例如生成非 root 用户使用命令的日志条目及其 ID。这些日志可以在之后作为出现问题的检验,来给用户更多的操作培训。你以为我会说“责备”用户,对吗? + +### `su` 命令 + +`su` 命令能够将非 root 用户提权到 root 权限——事实上,能让非 root 用户成为 root 用户。唯一的要求是用户知道根密码。因为用户已经以 root 权限登录,所以之后的操作就没有限制了。 + +`su` 命令所提供的提权没有时间限制。用户可以作为 root 执行命令,不需要进行重新认证是否有 root 权限。完成任务后,用户可以执行退出命令 `exit`,从 root 用户恢复到自己原来的非 root 帐户。 + +### `su` 和 `sudo` 在使用上的争议和变化 + +最近在 `su` 与 `sudo` 的使用上存在一些分歧。 + +> 真正的系统管理员不会使用 `sudo`。——保罗·威尼斯(Paul Venezia) + +Venezia 在他的 [InfoWorld 文章][4] 中辩称,对于许多担任系统管理员的人来说,`sudo` 是一个不必要的工具。他没有花太多时间为这个观点进行解释,他只是把它说成了一个事实。我同意他对于系统管理员的观点,因为我们不需要 `sudo` 来完成我们的工作。事实上,`sudo` 使得事情变得更复杂了。 + +然而, + +> 这时代正在“变革”当中。——鲍勃·迪伦 + +迪伦是对的,尽管他没有为电脑唱歌(LCTT 译注:鲍勃·迪伦是美国创作歌手、艺术家和作家,这里指他不是针对于电脑而说的)。 + +自从**个人计算机**时代到来以来,计算机的管理方式发生了重大变化。在许多环境中,计算机的使用者也是它的管理员,这使得为这些用户提供一些对 root 权限的访问是有必要的。 + +一些现代发行版,例如 Ubuntu 及其衍生版本,只能使用 `sudo` 命令来执行特权命令。在这些发行版中,用户无法直接以 root 用户身份登录,甚至无法通过 `su` 切换到 root,因此需要 `sudo` 命令来允许非 root 用户获得 root 权限。在这一环境中,所有系统管理任务均使用 `sudo` 来执行。 + +通过锁定 root 帐户并将常规用户帐户添加到 wheel 组,可以进行此配置,但是这种配置很容易被绕过。接下来,让我们在任何 Ubuntu 主机或 VM 上尝试一些小实验吧。我在这里说明一些我实验的设置,以便你可以根据需要来重现它。我安装的是 Ubuntu 16.04 LTS1,并使用 VirtualBox 将其安装在 VM 中。在安装过程中,我创建了一个非 root 用户 `student`,为了简便起见我给这个用户设置了一个简单的密码。 + +以 `student` 用户身份登录 Ubuntu,并打开终端。查看 `/etc/shadow` 文件中的 root 条目,其中存储了经哈希的密码。 + +``` +student@ubuntu1:~$ cat /etc/shadow +cat: /etc/shadow: Permission denied +``` + +可以看到终端拒绝了我们对 `/etc/shadow` 的访问,因此我们无法查看 `/etc/shadow` 文件。所有发行版都是如此,以防止非特权用户看到和访问加密的密码,因为非特权用户可能会使用常见的黑客工具来破解这些密码。 + +现在,让我们使用 `su -` 命令来成为 root 用户。 + +``` +student@ubuntu1:~$ su - +Password: +su: Authentication failure +``` + +认证失败的原因是因为根帐户没有密码、并且被锁定了。接下来,使用 `sudo` 命令查看 `/etc/shadow` 文件。 + +``` +student@ubuntu1:~$ sudo cat /etc/shadow +[sudo] password for student: +root:!:17595:0:99999:7::: + +student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7::: + +``` + +在这里,我仅截取了部分结果,只显示 root 和 `student` 用户的条目。我还缩短了加密密码,以便该条目能显示在一行中。各个字段以冒号(`:`)分隔,第二个字段是密码。请注意,root 的密码字段是一个感叹号(`!`),这表明 root 帐户已被锁定,且无法使用。 + +现在,要将根帐户变成一个合适的系统管理员,你只需为根帐户设置密码。 + +``` +student@ubuntu1:~$ sudo su - +[sudo] password for student: +root@ubuntu1:~# passwd root +Enter new UNIX password: +Retype new UNIX password: +passwd: password updated successfully +root@ubuntu1:~# +``` + +现在,你可以直接以 root 身份登录到控制台,或者直接使用 `su` 登录到 root,而不是在每个命令前都加一个 `sudo`。当然,你也可以在每次想以 root 身份登录时,使用 `sudo su -`,但这又是何必呢? + +请不要误解我的意思。像 Ubuntu 这样的发行版非常好,多年来我已经使用了其中的几个。在使用 Ubuntu 和相关发行版时,我做的第一件事就是设置一个 root 密码,这样我就可以直接以 root 身份登录。其他发行版,如 Fedora 及其相关发行版,现在在安装过程中提供了一些有趣的选择。我注意到的第一个 Fedora 版本是 Fedora 34,我在写我的一本即将出版的书时安装了很多次。 + +在安装页面上,可以找到其中一个安装选项,来设置 root 密码。这个新选项允许用户以锁定 Ubuntu root 帐户的方式选择“锁定 root 帐户 Lock root account ”。此页面上还有一个选项,允许使用密码以 root 身份远程 SSH 登录到此主机,但这仅在 root 帐户解锁时有效。第二个选项位于允许创建非根用户帐户的页面上。此页面上的选项之一是“让此用户成为管理员 Make this user administrator ”。选中此选项后,用户 ID 将添加到一个名为 wheel 组的特殊组中,该组授权该组的成员使用 `sudo` 命令。Fedora 36 甚至在该复选框的描述中提到了 wheel 组。 + +可以将多个非 root 用户设置为管理员。使用此方法指定为管理员的任何人都可以使用 `sudo` 命令在 Linux 计算机上执行所有管理任务。Linux 在安装时只允许创建一个非 root 用户,所以其他新用户可以在创建时添加到 wheel 组中。root 用户或其他管理员可以使用文本编辑器或 `usermod` 命令直接将现有用户添加到 wheel 组。 + +在大多数情况下,今天的管理员只需要执行一些基本任务,例如添加新的打印机、安装更新或新软件,或者删除不再需要的软件。这些 GUI 工具需要 root 或管理密码,并将接受来自管理员用户的密码。 + +### 在 Linux 上,我是怎么使用 `su` 和 `sudo` 的呢 + +我**同时使用 `su` 和 `sudo`**。它们都是我所使用的很重要的系统管理员工具。 + +我不锁定根帐户,因为我需要用根帐户来运行我的 [Ansible][5] 脚本和我编写的 [rsbu][6] Bash 程序,来执行备份。这两个程序都需要以 root 身份运行,我编写的其他几个管理 Bash 的脚本也是如此。我**使用 `su` 命令**,切换到 root 用户,这样我就可以执行这些脚本和许多其他常见的命令。当我需要确定问题和解决问题时,使用 `su` 命令将我的权限提升到 root 十分有用,因为我不希望 `sudo` 带来的提权会话超时。 + +当非 root 用户需要执行这些任务时,我**使用 `sudo` 命令**,来执行需要 root 权限的任务。我在 sudoers 文件中设置了非根帐户,只允许访问完成任务所需的 1 到 2 个命令。当我只需要运行 1 个或 2 个需要提权的快速命令时,我自己也会使用 `sudo` 命令。 + +### 结论 + +实际上只要你把工作完成好了,你使用什么工具都无大碍。你使用的是 vim 还是 Emacs,是 systemd 还是 SystemV,是 RPM 亦或是 DEB,是 `sudo` 亦或是 `su`,在结果上会有什么区别呢?这里的关键在于你应该使用**最适合你的工具**。Linux 和开源软件的最大优势之一是通常有许多选项可用于我们需要完成的任务。 + +`su` 和 `sudo` 都各有长处,如果正确使用的话,两者都是非常安全的。我选择同时使用 `su` 和 `sudo` 命令,基于它们的历史功能,因为这对我来说十分有用。对于我自己的大部分工作,我更喜欢 `su` 命令,因为它与我的工作流程最适配。 + +在评论区分享你喜欢的工作方式吧! + +本文摘自于我的书《系统管理员的 Linux 方法(Apress,2018 年)》(The Linux Philosophy for Sysadmins)一书的第 19 章,并经许可后重新发布。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin + +作者:[David Both][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png +[2]: https://opensource.com/users/seth +[3]: https://opensource.com/article/22/5/use-sudo-linux +[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr +[5]: https://opensource.com/article/20/10/first-day-ansible +[6]: https://opensource.com/article/17/1/rsync-backup-linux From 6ffea64e6613e0037a4487421a837eee4e3a86f2 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 10 Dec 2022 10:46:05 +0800 Subject: [PATCH 2291/3123] translating --- ...20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md index 3fceebb26b..8d0a0fecfd 100644 --- a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md +++ b/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/gdb-step-command" [#]: author: "Alexandra https://opensource.com/users/ahajkova" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f78a527fc8fa29ae69a4f4e387259db31029f5ed Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 10 Dec 2022 11:22:18 +0800 Subject: [PATCH 2292/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @aREversez 辛苦了,这么长的文章翻译可不容易! --- ...iend- The Facebook That Could Have Been.md | 213 ++++++++---------- 1 file changed, 97 insertions(+), 116 deletions(-) diff --git a/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md index 3d46287b2b..d03fd46a2f 100644 --- a/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md +++ b/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md @@ -3,196 +3,176 @@ [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" [#]: translator: "aREversez" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Friend of a Friend: The Facebook That Could Have Been +FOAF:本可以成为 Facebook ====== -> 我把自己的网络写进 FOAF 文件,由此开启了变革。——互联网之父蒂姆·伯纳斯·李(2007) +![][0] -目前,FOAF 标准(Friend of a Friend)基本上已经不再使用了,或者说被人们忘记了,亦或者说已经被取代了[1][1]。回顾本世纪第一个十年,假如 Facebook 没有征服世界的话,FOAF 将会定义我们今天所用的社交网络。不过在开始探讨这一 web 标准之前,我想先来谈一谈纽约地铁。 +> 我把自己的社交网络写进 FOAF 文件,这就是变革之始。—— 互联网之父蒂姆·伯纳斯·李(2007) -目前,纽约地铁的唯一管理机构是 大都会运输署Metropolitan Transportation Agency,简称 MTA。MTA 对纽约市的地铁交通拥有垄断权。在纽约乘地铁必须先从 MTA 购买车票,否则属于非法行为。也就是说,MTA 在地铁行业没有任何竞争对手。 +FOAF 标准(朋友的朋友Friend of a Friend),是一个可以追溯到本世纪初的网络标准,目前它基本上已经不再使用了,或者说被人们忘记了,亦或者说已经被取代了 [^1]。它暗示了,假如 Facebook 没有征服世界的话,FOAF 将会定义我们今天所用的社交网络。不过在开始探讨这一网络标准之前,我想先来谈一谈纽约地铁。 -不过,以前可不是这样。说起来可能有些让人吃惊,纽约市的地铁交通曾由两家企业相互竞争,共同运营。跨区捷运公司Inter-borough Rapid Transit Company(IRT)的势力范围是穿过曼哈顿的线路,布鲁克林-曼哈顿运输股份有限公司Brooklyn-Manhattan Transit Corporation(BMT)管理的则是布鲁克林区内的线路,其中也有部分线路延伸到了曼哈顿。1932 年,纽约市投入使用了独立地铁系统,与 IRT 和 BMT 展开竞争,所以当时纽约共有三家不同公司控制着市内地铁交通。 +目前,纽约地铁的唯一管理机构是 大都会运输署Metropolitan Transportation Agency(简称 MTA)。MTA 垄断了纽约市的地铁交通。在纽约乘地铁必须先从 MTA 购买车票,否则属于非法行为。也就是说,MTA 在地铁行业没有任何竞争对手。 -可能会有人觉得这样的地铁运营效率不高。事实上也确是如此。由于 IRT 和 BMT 投入使用的列车宽度不同,所以在不同的运营系统之间建造换乘站十分困难。此外,乘客换乘时还需向不同的运营商支付费用,这就意味着在换乘站至少要设置两个不同的检票区域。后来,纽约市于 1940 年取缔了 IRT 和 BMT,将整个纽约市的地铁交通置于一家运营商的管理之下,不过由于此前分而治之而造成的效率低下问题时至今日依然存在:能在 BMT 的线路上运行的列车无法在 IRT 的线路上运行,因为 IRT 的线路隧道比较窄。因此,MTA 不得不同时管理这两种互不兼容的列车系统,由此带来的支出可能远比世界上其他单一隧道宽度的地铁系统要多得多。 +不过,以前可不是这样。说起来可能有些让人吃惊,纽约市的地铁交通曾由两家企业相互竞争,共同运营。跨区捷运公司Inter-borough Rapid Transit Company(IRT)的势力范围是穿过曼哈顿的线路,布鲁克林-曼哈顿运输股份有限公司Brooklyn-Manhattan Transit Corporation(BMT)管理的则是布鲁克林区内的线路,其中也有部分线路延伸到了曼哈顿。1932 年,纽约市开通使用了自己的服务,称为独立地铁系统,与 IRT 和 BMT 展开竞争,所以当时纽约共有三家不同公司控制着市内地铁交通。 + +可能会有人觉得这样的地铁运营效率不高。事实上也确是如此。由于 IRT 和 BMT 投入使用的列车宽度不同,所以在不同的运营系统之间建造换乘站十分困难。此外,乘客换乘时还需向不同的运营商支付费用,这就意味着在换乘站至少要设置两个不同的检票区域。后来,纽约市于 1940 年接管了 IRT 和 BMT,将整个纽约市的地铁交通置于一家运营商的管理之下,不过由于此前分而治之而造成的效率低下问题时至今日依然存在:能在 BMT 的线路上(如 A、C、E 号线)运行的列车无法在 IRT 的线路上(如 1、2、3 号线)运行,因为 IRT 的线路隧道比较窄。因此,MTA 不得不同时管理这两种互不兼容的列车系统,由此带来的支出可能远比世界上其他单一隧道宽度的地铁系统要多得多。 IRT 和 BMT 之间的竞争所造成的历史遗留问题告诉我们,地铁系统本身就趋向于垄断经营。相比较于两家运营商相互竞争,只有一家运营商更能解决问题。乘客们虽然失去了选择的余地,但再也不用担心带了一张地铁卡却忘记了另一张的问题。 -那么,地铁和社交网络又有什么关系呢?我在想,Facebook 是否和 MTA 一样都有自然垄断的属性呢?事实上,无论是自然垄断还是非自然垄断,Facebook 貌似确有垄断能力。当然它垄断的不是社交媒体本身(我在 Twitter 上面花的时间更多),而是垄断了与现实中认识的人之间的线上联系。Facebook 能够垄断所谓的“社交图谱”;如果我不用担心会失去与别人的联系方式,那我明天就会卸载 Facebook,因为我对 Facebook 的垄断权力感到非常气愤。不过,我却不会生 MTA 的气,即便从字面上和比喻义上来讲,纽约市地铁都是一堆焚烧着的、火舌乱窜的垃圾。说到底,我愤怒是因为我觉得不同于 MTA 的自然垄断,Facebook 的垄断属于非自然垄断。 +那么,地铁和社交网络又有什么关系呢?我在想,Facebook 是否和 MTA 一样都有自然垄断的属性呢?事实上,无论是自然垄断还是非自然垄断,Facebook 貌似确有垄断能力。当然它垄断的不是社交媒体本身(我在 Twitter 上面花的时间更多),而是垄断了与现实中认识的人之间的线上联系。Facebook 能够垄断所谓的“社交图谱”;如果我不用担心会失去与别人的联系方式,那我明天就会卸载 Facebook。我对 Facebook 对我身上的这种垄断权力感到非常气愤。不过,我却不会生 MTA 的气,即便从字面上和隐喻上来讲,纽约市地铁都是一堆焚烧着的、火舌乱窜的垃圾。说到底,我愤怒是因为我觉得不同于 MTA 的自然垄断,Facebook 的垄断属于非自然垄断。 -我的意思是,如今 Facebook 之所以能拥有所有人的社交数据,因为它碰巧是第一个做大做强,确立巨头地位的社交平台,而不是因为其他社交平台难以或者无法与之竞争。不过,难道真是因为这样吗?许多事实告诉我们,原因并非如此。Facebook 真的是第一个社交平台吗?它提供的服务真的比其他社交平台要好吗?如果你想联系老朋友,只有 Facebook 这一个平台的话,不会方便许多吗?在 Facebook 有很多竞争对手的情况下,如果你和你男朋友 Facebook 上面的感情状态都显示“交往中”,但是他始终没来得及更新他在 VisageBook 上的感情状态,说不定现在上面还是他和他大学前任那时候的关系,那么这种情况意味着什么呢?人们信任的又是哪个社交网站呢?如果社交网站有很多,难道在填写信息上面不会很耗时间吗? +我的意思是,如今 Facebook 之所以能拥有所有人的社交数据,因为它碰巧是第一个做大做强、确立巨头地位的社交平台,而不是因为其他社交平台难以或者无法与之竞争。不过,难道真是因为这样吗?许多事实告诉我们,原因并非如此。Facebook 仅仅是先入为主,还是它提供的服务真的比其他社交平台要好?如果你想联系老朋友,只有 Facebook 这一个平台的话,不会方便许多吗?在一个有几个 “Facebook” 相互竞争的情况下,如果你和你男朋友 Facebook 上面的感情状态都显示“交往中”,但是他始终没来得及更新他在 VisageBook 上的感情状态,那上面现在还显示着他和他大学前任的关系,那么这种情况意味着什么呢?人们信任的又是哪个社交网站呢?如果社交网站有很多,难道在填写信息上面不会很耗时间吗? -过去几年,由于中心化社交网络的缺陷暴露出来,许多人尝试构建去中心化的平台。基于开放标准,去中心化平台有望建立互通的社交网络生态(比如 [Fediverse][2])。可惜的是,其中没有一个平台能够取代主流社交网络。一个比较明显的原因是 网络效应network effects的力量:既然每个人都在用 Facebook,那么任何想要放弃 Facebook 的人都将会付出巨大的代价。有人会说,这一点恰恰证明了社交网络属于自然垄断行业。但我想说,Facebook、Twitter等平台是自己选择封闭起来的。此外,鉴于人们已经设想出社交网络的互通性,并且付诸实践,那么封闭的社交平台引发的网络效应就无法证明社交网络具有自然垄断属性。 +过去几年,由于中心化社交网络的缺陷暴露出来,许多人尝试构建去中心化的平台。基于开放标准,去中心化平台有望建立互通的社交网络生态(比如 [Fediverse][2])。可惜的是,其中没有一个平台能够取代主流社交网络。一个比较明显的原因是 网络效应network effects的力量:既然每个人都在用 Facebook,那么任何想要放弃 Facebook 的人都将会付出巨大的代价。有人会说,这一点恰恰证明了社交网络属于自然垄断行业。但我想说,Facebook、Twitter 等平台是自己选择封闭起来的。此外,鉴于人们已经设想出社交网络的互通性,并且付诸实践,那么封闭的社交平台引发的网络效应就无法证明社交网络具有自然垄断属性。 因此,在我看来,真正的问题是:之所以 Facebook 等平台到现在仍是主流社交网络,仅仅是因为网络效应,还是说与只有一家运营商的地铁系统一样,单一的主流社交网络效率更高? -最后,这些问题让我想起了 FOAF。尽管人们似乎已经忘记了 FOAF 标准,但是早在 Facebook 出现之前,人们就尝试使用 FOAF 建立开放的、去中心化的社交网络。如果过去有哪个去中心化社交网络有机会早于 Facebook 占领如今 Facebook 驻守的阵地,那只可能是 FOAF。考虑到世界上大部分人都有 Facebook 账号,而且了解 FOAF 的人相对较少,我们是否可以得到如下结论:同地铁一样,社交网络也有中心化和自然垄断的性质;亦或者,FOAF 项目说明,尽管去中心化社交网络可行,但由于其他原因,无法获得人们的广泛支持。 +最后,这些问题让我想起了 FOAF。尽管人们似乎已经忘记了 FOAF 标准,但是早在 Facebook 出现之前,人们就尝试使用 FOAF 建立开放的、去中心化的社交网络。如果过去有哪个去中心化社交网络有机会早于 Facebook 占领如今它驻守的阵地,那只可能是 FOAF。考虑到世界上大部分人都有 Facebook 账号,而且了解 FOAF 的人相对较少,我们是否可以得到如下结论:同地铁一样,社交网络也有中心化和自然垄断的性质;亦或者,FOAF 项目说明,尽管去中心化社交网络可行,但由于其他原因,无法获得人们的广泛支持。 ### 早期社交媒体的未来 -FOAF 项目诞生于 2000 年,旨在建立一套表示个人身份以及人与人之间关系的通用标准。在今天看来,这一雄心勃勃的项目可能会让人感到惊讶,但是在上世纪末本世纪初,这样的想法再寻常不过了。当时在网络上,美国在线America Online 与 [Prodigy][3] 等封闭系统遭遇惨败。这让人很自然地想到,计算机领域的创新发展必须要保持开放、基于标准,而且这也正是网络的特点。 +FOAF 项目诞生于 2000 年,旨在建立一套表示个人身份以及人与人之间关系的通用标准。在今天看来,这一雄心勃勃的项目可能会让人感到惊讶,但是在上世纪末本世纪初,这样的想法再寻常不过了。当时网络Web(当时人们仍然这样称呼它)刚刚击败了 美国在线America Online 与 [Prodigy][3] 等封闭系统。这让人很自然地想到,计算机领域的创新发展必须要保持开放、基于标准,而且这也正是网络的特点。 许多人认为,网络下一场重头戏会是 语义网Semantic Web。我有篇文章介绍了关于语义网概念与运行原理的设想,所以这里不再赘述。但是我会简单谈谈推动人们研究语义网技术的愿景,因为 FOAF 标准正是这一愿景在社交网络方面的应用。 -一篇题为 [《谷歌如何击败亚马逊和易贝,朝着语义网进军How Google beat Amazon and Ebay to the Semantic Web》][5] 的文章很好地描绘了语义网这一崇高理想。文章写于 2002 年,作者是 Paul Ford。这篇文章设想了 2002 年至 2009 年的情景:通过使用语义网,谷歌取代了亚马逊和易贝,成为电商平台主导者。文章指出,在未来,如果你想买东西,比如说一把二手的马丁吉他,可以在谷歌中输入 `buy:martin guitar`。根据你的邮编,谷歌会告诉你附近哪些人在卖马丁吉他。谷歌之所以可以获取卖家及其吉他的信息,是因为它可以读取资源描述框架标记语言 RDF,该语言是语义网的核心技术,用于描述资源之间的关系。人们可以将 RDF 内容嵌入网页,能实现的用途比较广泛,比如给要卖的东西打广告。Ford 预测,随着使用这种方式搜索和售卖商品的人数增加,亚马逊和易贝将失去它们在电商领域近乎垄断的地位。如果可以搜索全网,又有谁会执着于某个封闭的数据库呢?Ford 写道,即便是谷歌,最终也会失势。因为理论上,任何一个人都可以检索网络,查阅 RDF,提供类似于谷歌的搜索功能。起码,如果谷歌打算对语义网上的每笔交易按一定比例收取费用,以此盈利,那么以后随着相关竞争越来越激烈,谷歌的抽成比例很有可能会被迫降低。 +一篇题为 《[谷歌如何击败亚马逊和易贝,朝着语义网进军][5]How Google beat Amazon and Ebay to the Semantic Web》 的文章很好地描绘了语义网这一崇高理想。文章写于 2002 年,作者是 Paul Ford。这篇文章设想了 2002 年至 2009 年的情景:通过使用语义网,谷歌取代了亚马逊和易贝,成为电商平台主导者。文章指出,在未来,如果你想买东西,比如说一把二手的马丁吉他,可以在谷歌中输入 `buy:martin guitar`。根据你的邮编,谷歌会告诉你附近哪些人在卖马丁吉他。谷歌之所以可以获取卖家及其吉他的信息,是因为它可以读取资源描述框架标记语言(RDF),该语言是语义网的核心技术,用于描述资源之间的关系。人们可以将 RDF 内容嵌入网页,能实现很多用途,比如给要卖的东西打广告。Ford 预测,随着使用这种方式搜索和售卖商品的人数增加,亚马逊和易贝将失去它们在电商领域近乎垄断的地位。如果可以搜索全网,又有谁会执着于某个封闭的数据库呢?Ford 写道,即便是谷歌,最终也会失势。因为理论上,任何一个人都可以检索网络,查阅 RDF,提供类似于谷歌的搜索功能。起码,如果谷歌打算对语义网上的每笔交易按一定比例收取费用,以此盈利,那么以后随着相关竞争越来越激烈,谷歌的抽成比例很有可能会被迫降低。 -Ford 所设想的未来是关于 RDF 在电商领域的应用,不过 RDF 更振奋人心的地方在于,它或许可以应用于各个领域。RDF 标准以及一系列相关标准曾一度得到广泛应用,被认为可以突破基于数据库的开放软件服务面临的发展瓶颈,如同 HTML 为开放文档排版带来新的发展契机一般。 +Ford 所设想的未来是将 RDF 应用于电商领域,不过 RDF 更振奋人心的地方在于,它或许可以应用于各个领域。RDF 标准以及一系列相关标准,一旦得到广泛应用,被认为可以掀开基于数据库的软件服务的发展,如同 HTML 为文档出版带来新的发展契机一般。 -RDF 以及其他语义网技术唾手可得的另一个领域是社交网络。FOAF 项目最初的名字是“RDF Web Ring”,是语义网发展的产物,旨在实现语义网的设想。FOAF 自诞生之初就被人们看好,有人甚至认为,FOAF 必定会淘汰掉其他社交网站。2004 年《卫报》的一篇文章这样介绍该项目: +RDF 以及其他语义网技术似乎准备立刻接管的另一个领域是社交网络。FOAF 项目最初的名字是“RDF 网络环RDF Web Ring”,是语义网发展的产物,旨在实现语义网的设想。FOAF 自诞生之初就被人们看好,有人甚至认为,FOAF 必定会淘汰掉其他社交网站。2004 年《卫报》的一篇文章这样介绍该项目: -> 最初是 1996 年,SixDegrees 开始运营;接着是去年,出现了 Friendster;上周是 Orkut;下周 Flickr 也会登上舞台。这些网站不胜枚举,都是为了建立社交网络。如今,它们处在互联网发展的最前沿。但是,如果它们无法提供更优质的服务,在 FOAF 标准得到广泛应用之后,它们就会很难存活下去。[2][6] +> 最初是 1996 年,SixDegrees 开始运营;接着是去年,出现了 Friendster;上周是 Orkut;下周 Flickr 也会登上舞台。这些网站不胜枚举,都是为了建立社交网络。如今,它们处在互联网发展的最前沿。但是,如果它们无法提供更实质性的好处,在 FOAF 标准得到广泛应用之后,它们就会很难存活下去。[^2] -文章继续指出,社交网络面临的最大问题就是网站数量过多。这就需要一种能够将所有这些网站连接起来的手段。可行方案就是 FOAF ,它终将变革整个社交网络。 +文章继续指出,社交网络面临的最大问题就是社交网站数量过多。这就需要一种能够将所有这些网站连接起来的手段。可行方案就是 FOAF ,它终将变革整个社交网络。 根据该文章,FOAF 可将不同的社交网站紧密连接起来,实现途径有三个要点: * FOAF 将创建机器可读的社交数据格式,可为各个社交网站识别读取,避免让用户在不同的网站上重复输入信息。 * FOAF 标准下,联系人Contacts(个人信息管理程序)可生成上述格式的文件,供用户在各社交网站使用。 - * FOAF 标准下,该文件可寄放在个人主页上,可为各社交网站读取。这样一来,用户只需将修改过的信息推到主页,其他平台就会同步更新。 + * FOAF 标准下,这种机器可读的文件可寄放在个人主页上,可为各社交网站读取。这样一来,用户只需将修改过的信息推到自己的主页,其他平台就会同步更新。 +在今天可能难以想象,但在 2004 年,至少在熟悉技术的网民和技术专栏记者看来,当时社交网络并不算少,但是每个网络的用户群体都很小。考虑到这个问题,虽然对现在的我们来说很陌生,我们就会明白为什么需要建立单一标准是有意义的,这个标准可以使网络的激增不再是一个负担。 +### FOAF 规范 -在今天可能难以想象,但在 2004 年,至少在熟悉技术的网民和技术专栏记者看来,当时社交网络并不算少,但是每个网络的用户群体都很小。虽然与我们十分遥远,但若能考虑到这一问题,我们就会明白为什么需要建立单一标准来推动社交网络扩大用户基础。 +根据 FOAF 项目官网现有的介绍,FOAF 是“一种计算机语言,用于生成与人相关的各种条目的字典,条目以结构化数据的形式储存”。2000 年,FOAF 的创始人 Dan Brickley 和 Libby Miller 发表了一份关于该项目目标的文件,给出了不同的解释,强调了 FOAF 的最终目标:作为工具,FOAF 可让计算机像人类一样读取用户主页的个人信息 [^3]。FOAF 将会“帮助网络提供当前只有中心化平台才能提供的服务”[^4]。通过为个人以及人际关系定义一个标准词汇,FOAF 可以理解用户输入的内容,比如“找找今天推荐的医院医疗人员”,或者“找找曾与我合作撰写过文件的人最近发表的文章”。 -### FOAF 规则 +由于 FOAF 是标准化的词汇表,所以该项目最重要的成果莫过于 FOAF 规范。FOAF 规范规定了 RDF 类 和 RDF 属性(这里我不再解释什么是 RDF,如果感兴趣可查阅 [我关于语义网的文章][4])。RDF 的类由 FOAF 规范规定,表示要描述的对象,比如人(`Person` 类)和组织(`Organization` 类)。RDF 属性由 FOAF 规范规定,表示针对不同对象所做的逻辑声明。例如,一个人可以有一个名字(`givenName` 属性)、一个姓氏(`familyName` 属性),可能还有人格类型(`myersBriggs` 属性)以及与他人的距离或者位置信息(`based_near` 属性)。FOAF 规范的思想是,这些类和属性要足以表示人们在个人主页上显示的身份信息和朋友信息。(LCTT 译注:Myers–Briggs 即迈尔斯布里格斯类型指标,是一种人格类型理论模型。) -根据 FOAF 项目官网现有的介绍,FOAF 指的是“一种计算机语言,用于生成与人相关的各种条目的字典,条目以结构化数据的形式储存”。2000 年,FOAF 的创始人 Dan Brickley 和 Libby Miller 发表了一份关于该项目目标的文件,给出了不同的解释,强调了 FOAF 的最终目标:作为工具,FOAF 可让计算机像人类一样读取用户主页的个人信息[3][7]。FOAF 将会“帮助网络提供当前只有中心化平台才能提供的服务”[4][8]。通过为个人以及人际关系定义标准词汇表,FOAF 可以理解用户输入的内容,比如“查找医院医疗人员今天给出的推荐”,或者“查找曾与我合作过的人最近发表的文章”。 - -由于 FOAF 是标准化的词汇表,所以该项目最重要的成果莫过于 FOAF 规则。FOAF 规则规定了 RDF 类 和 RDF 属性(这里我不再解释什么是 RDF,如果感兴趣可查阅[我关于语义网的文章][4])。RDF 的类由 FOAF 规则规定,表示要描述的对象,比如人(`Person` 类)和组织(`Organization` 类)。RDF 属性由 FOAF 规则规定,表示针对不同对象所做的逻辑声明。例如,一个人可以有一个名字(`givenName` 属性)、一个姓氏(`familyName` 属性),可能还有人格类型(`myersBriggs` 属性)以及与他人的距离或者位置信息(`based_near` 属性)。FOAF 规则的思想是,这些类和属性要足以表示人们在个人主页上显示的身份信息和朋友信息。【注:Myers–Briggs 即迈尔斯布里格斯类型指标,是一种人格类型理论模型】 - -FOAF 规则给出了 FOAF 文件的一份范例文档。该实例的格式是 XML,不过也可以使用 JSON 等格式进行编写: +FOAF 规范给出了一份 FOAF 文档的范例。该实例的格式是 XML,不过也可以使用 JSON 等格式进行编写: ``` - - - Dan Brickley - - - - - + + Dan Brickley + + + + ``` -这份 FOAF 文件对一个人进行了描述,他的名字叫做 Dan Brickley,在 `http://danbri.org` 网站上设有个人主页,他还有个叫做“open ID”的东西,`/images/me.jpg` 表示图片,可能和 Brickley 的主页地址相关。FOAF 的元素名称都会有 `foaf:` 前缀,表示它们是 FOAF 命名空间的一部分。相应地,RDF 的元素名称前面也都会有 `rdf:`。 +这份 FOAF 文件对一个人进行了描述,他的名字叫做 Dan Brickley(该规范的作者之一),他的主页在 `http://danbri.org`,他还有个叫做“open ID”的东西,还有一张图片在 `/images/me.jpg` —— 估计是 Brickley 的主页地址的相对链接。FOAF 的元素名称都会有 `foaf:` 前缀,表示它们是 FOAF 命名空间的一部分。相应地,RDF 的元素名称前面也都会有 `rdf:`。 -为了说明 FOAF 不限于 XML 格式,这里从维基百科摘取了一个相似的例子,格式为 JSON-LD [5][9]: +为了说明 FOAF 不限于 XML 格式,这里从维基百科摘取了一个相似的例子,格式为 JSON-LD [^5]: ``` - - { - "@context": { - "name": "http://xmlns.com/foaf/0.1/name", - "homepage": { - "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage", - "@type": "@id" - }, - "Person": "http://xmlns.com/foaf/0.1/Person" - }, - "@id": "https://me.example.com", - "@type": "Person", - "name": "John Smith", - "homepage": "https://www.example.com/" - } - +{ + "@context": { + "name": "http://xmlns.com/foaf/0.1/name", + "homepage": { + "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage", + "@type": "@id" + }, + "Person": "http://xmlns.com/foaf/0.1/Person" + }, + "@id": "https://me.example.com", + "@type": "Person", + "name": "John Smith", + "homepage": "https://www.example.com/" +} ``` -上面这份 FOAF 文件也描述了一个人,他的名字叫 John Smith,在 `www.example.com` 网站上有自己的主页。 +上面这份 FOAF 文件也描述了一个人,他的名字叫 John Smith,他的主页在 `www.example.com`。 -理解 FOAF 原理的最好方法可能就是使用 [FOAF-a-matic][10],一个在线生成 FOAF 文档的工具。你可以在工具页面的表单里输入自己的相关信息,创建表示自己的 FOAF 文档(XML 格式)。FOAF-a-matic 说明了 FOAF 是如何避免在注册不同社交网站账号时重复输入社交信息的麻烦:如果每个社交网站都可以读取 FOAF,你只需要在没有注册过帐号的网站上引用你在 FOAF-a-matic 生成的 FOAF 文档,就可以注册一个新帐号了。 +理解 FOAF 原理的最好方法可能就是体验一下 [FOAF-a-matic][10],一个在线生成 FOAF 文档的工具。你可以在工具页面的表单里输入自己的相关信息,创建表示自己的 FOAF 文档(XML 格式)。FOAF-a-matic 说明了 FOAF 是如何避免在注册不同社交网站账号时重复输入社交信息的麻烦:如果每个社交网站都可以读取 FOAF,你只需要在没有注册过帐号的网站上引用你在 FOAF-a-matic 生成的 FOAF 文档,就可以注册一个新帐号了。 -下面这个实例是我用 FOAF-a-matic 生成的,稍微复杂一些,表示我自己: +下面这个实例是我用 FOAF-a-matic 生成的稍微复杂一些的例子,表示我自己: ``` - - - - - - - - - - Sinclair Target - Sinclair - Target - - - - - John Smith - - - - + + + + + + + + + Sinclair Target + Sinclair + Target + + + + + John Smith + + - - + + + ``` -本例中,主要信息之前有很多其他内容,用于设置文档使用的各种 XML 命名空间。其中就有文档生成工具的信息,这样用户就能明白出了问题要向谁进行反馈。`foaf:Person` 元素给出了我的名字,电子邮箱和主页。其中嵌套了 `foaf:knows` 元素,说明我有个叫 John Smith 的朋友。 +本例中,主要信息之前有很多其他内容,用于设置文档使用的各种 XML 命名空间。其中就有文档生成工具的信息,这样用户就能明白出了问题要向谁进行反馈。`foaf:Person` 元素给出了我的名字、电子邮箱和主页。其中嵌套了 `foaf:knows` 元素,说明我有个叫 John Smith 的朋友。 -该例还体现了 FOAF 文档的另外一个重要功能:相互关联。还记得之前 John Smith 的例子吗?他在 `www.example.com` 上面有自己的主页。在我的这个例子中,我将 John Smith 列在了 `foaf:person` 元素里,上一级元素是 `foaf:knows`,表示我认识的人。此外,我还加入了 `rdfs:seeAlso` 元素,放了 John Smith 主页的 FOAF 文档链接。由于加入了这一链接,程序在读取我的 FOAF 文档时,就能根据该链接读取他的 FOAF 文档,查找到更多关于 John Smith 的信息。在之前 John Smith 的 FOAF 文档里,John 并没有提供任何有关朋友的信息(包括我在内),这意味着程序无法确定我们两人之间的朋友关系。但如果他加入了朋友信息,程序在读取我的文档之后,不仅会发现我,也会发现 John、他的朋友、他的朋友的朋友,以此类推,直到程序穷尽我和 John 各自的社交图谱。 +该例还体现了 FOAF 文档的另外一个重要功能:相互关联。还记得之前 John Smith 的例子吗?他的主页在 `www.example.com`。在我的这个例子中,我将 John Smith 列在了 `foaf:person` 元素里,上一级元素是 `foaf:knows`,表示我认识的人。此外,我还加入了 `rdfs:seeAlso` 元素,放了 John Smith 主页的 FOAF 文档链接。由于加入了这一链接,程序在读取我的 FOAF 文档时,就能根据该链接读取他的 FOAF 文档,查找到更多关于 John Smith 的信息。在之前 John Smith 的 FOAF 文档里,John 并没有提供任何有关朋友的信息(包括我在内),这意味着程序无法确定我们两人之间的朋友关系。但如果他加入了朋友信息,程序在读取我的文档之后,不仅会发现我,也会发现 John、他的朋友、他的朋友的朋友,以此类推,直到程序穷尽我和 John 各自的社交图谱。 -该功能在 Facebook 用户的大家看来应该很熟悉了。FOAF 没有 `foaf:wall` 属性和 `foaf:poke` 属性,无法完美复制 Facebook 的功能。很明显,FOAF 也没有漂亮的蓝色界面,无法为用户提供可视化的 FOAF 社交网络,它只是一个词汇表。不过,Facebook 的核心功能是以分布式的方式提供的,我认为这正是 Facebook 垄断能力的关键。在 FOAF 标准下,好友可以将 FOAF 文档上传至个人主页,数字化展示他们真实的社交图谱,用户无需将个人数据的控制权交给 Facebook 这样一个中心化的数据库。要知道,由于对用户个人数据管理不当,扎克伯格在国会委员会召开之前的大多数时间都在向公众道歉。 +对于使用过 Facebook 的人来说这似乎很熟悉,也就是说,这个功能对你来说也应该很熟悉。FOAF 没有 `foaf:wall` 属性和 `foaf:poke` 属性,无法完美复制 Facebook 的功能。很明显,FOAF 也没有漂亮的蓝色界面,无法为用户提供可视化的 FOAF 社交网络,它只是一个词汇表。不过,Facebook 的核心功能(我认为这正是 Facebook 垄断能力的关键)在这里是以分布式的方式提供的。在 FOAF 标准下,好友可以将 FOAF 文档上传至个人主页,数字化展示他们真实的社交图谱,用户无需将个人数据的控制权交给 Facebook 这样一个中心化的数据库。要知道,由于对用户个人数据管理不当,扎克伯格大多数时间都在国会委员会前在向公众道歉。 ### 暂时搁置的 FOAF -浏览 FOAF 项目主页,你会发现在页面的右上角,有一张喜剧动画《飞出个未来》主角弗莱躺在休眠舱内的图片。这张图片是《飞出个未来》某一集的截图,讲的是弗莱在 1999 年不小心跌进了低温休眠舱,到了 2999 年再次苏醒过来的故事。我曾和 Brickley 在 Twitter 上简短地聊了一下,他告诉我,挂这张图片是为了告诉人们,未来 FOAF 项目将有机会重获新生,继续探索 20 世纪初关于网络运作方式的设想。 +浏览 FOAF 项目主页,你会发现在页面的右上角,有一张喜剧动画《飞出个未来Futurama》主角弗莱躺在休眠舱内的图片。这张图片是《飞出个未来》试播剧集的剧照,讲的是弗莱在 1999 年不小心跌进了低温休眠舱,直到 2999 年才再次苏醒过来的故事。我曾和 Brickley 在 Twitter 上简短地聊了一下,他告诉我,挂这张图片是为了告诉人们,未来 FOAF 项目目前“处于停滞状态”,尽管他希望将来有机会恢复这个项目,继续探索 21 世纪初关于网络运作方式的设想。 -FOAF 绝不可能像《卫报》期望的那般变革社交网络。一些社交网站选择支持 FOAF 标准,比如 LiveJournal 和 MyOpera [6][11]。FOAF 甚至还在 2004 年霍华德·迪恩竞选总统时发挥了一定作用:一群博主和程序员合力搭建起了一个将网站连接起来的网络,称其为“迪恩空间DeanSpace”,帮助迪恩竞选,并在网站上使用 FOAF 记录迪恩的支持者和帮助迪恩竞选的志愿者[7][12]。不过,今天人们了解到 FOAF 主要还是因为它是 RDF 应用最为广泛的词汇表之一,而 RDF 正是现代网络的一个重要标准。如果在今天还能用到 FOAF 的话,可能就是谷歌“知识面板knowledge panels”所用技术的原型。知识面板是在用谷歌搜索时,出现在搜索结果右侧的一小块内容,会提供搜索关键词的基本信息。谷歌为推行其知识面板,使用了语义网项目的“后继者” schema.org 项目发布的词汇表[8][13]。schema.org 用来描述人物的词汇表似乎有着 FOAF 的影子,两者的目的大多也是相同的。 +FOAF 从未像《卫报》期望的那般彻底改变社交网络。一些社交网站选择支持 FOAF 标准,比如 LiveJournal 和 MyOpera [^6]。FOAF 甚至还在 2004 年霍华德·迪恩Howard Dean竞选总统时发挥了一定作用:一群博主和程序员合力搭建起了一个将网站连接起来的网络,称其为“迪恩空间DeanSpace”,帮助迪恩竞选,并在网站上使用 FOAF 记录迪恩的支持者和帮助迪恩竞选的志愿者[^7]。不过,今天人们了解到 FOAF 主要还是因为它是 RDF 应用最为广泛的词汇表之一,而 RDF 正是现代网络的一个重要标准。如果在今天还能用到 FOAF 的话,可能就是谷歌“知识面板knowledge panels”所用技术的原型。知识面板是在用谷歌搜索时,出现在搜索结果右侧的一小块内容,会提供搜索关键词的基本信息。谷歌为推行其知识面板,使用了语义网项目的“后继者” schema.org 项目发布的词汇表[^8]。schema.org 用来描述人物的词汇表似乎有着 FOAF 的影子,两者的目的大多也是相同的。 那么,为什么 FOAF 还是失败了呢?为什么人们都在用 Facebook 呢?且不提 FOAF 只是一个简单的标准,没有 Facebook 那么丰富的功能,如果 FOAF 发展势头保持下去,很有可能就会出现相关软件和应用,带来像 Facebook 那样的体验。问题是,在 Facebook 还未发展到能与之分庭抗礼之时,FOAF 这股分布式社交网络的新生力量为什么没能得到广泛应用呢? -恐怕这个问题的答案并不唯一,不过非要我说的话,我觉得最关键的一点是,只有在每个人都有个人网站的情况下,FOAF 才有意义。19 世纪 90 年代末到 20 世纪初,人们理所当然地觉得网络最终会出现这种情况,因为就我所知,互联网的早期用户多是高产的博客写手,参政的技术专家,他们都希望能有个自己的平台。但是,现实情况却是,普通用户并不愿意学习怎么搭建和运营网站。FOAF 的用户可以掌控自己的社交信息并将其推送到各类社交网络上,省去了到处注册账号的麻烦。如果你已经有了储存社交信息的个人网站,那么这个想法应该很诱人。但实际上,相比较于买域名、折腾 XML 文档,大多数人觉得填写信息、注册 Facebook 账号来得更容易些。 +恐怕这个问题可能没有唯一的答案,不过非要我说的话,我觉得最关键的一点是,只有在每个人都有个人网站的情况下,FOAF 才有意义。在上世纪末本世纪初,人们理所当然地觉得网络最终会出现这种情况,因为就我所知,互联网的早期用户多是高产的博客写手、参政的技术专家,他们都希望能有个自己的平台。但是,现实情况却是,普通用户并不愿意学习怎么搭建和运营网站。FOAF 允许你掌控自己的社交信息并将其推送到各类社交网络上,省去了到处注册账号的麻烦。如果你已经有了储存社交信息的个人网站,那么这个想法应该很诱人。但实际上,相比较于买域名、折腾 XML 文档,大多数人觉得填写信息、注册 Facebook 账号来得更容易些。 那么,这与我最初的问题(Facebook 是否属于自然垄断)有什么相关呢?我不得不承认,FOAF 的案例说明,社交网络 _的确_ 拥有自然垄断属性。 -其实,关于用户不愿管理自己的数据这一问题,本身并没有那么重要,因为通过让普通用户在熟悉技术的用户所设置的节点上储存个人信息,[Mastodon][14] 等现代分布式社交网络已经解决了这个问题。这也表明,人们多么不愿意折腾复杂的东西。对去中心化社交网络来说,这无疑是个坏消息,因为相较于中心化网络,去中心化网络更为复杂,这是用户再清楚不过的。 +其实,关于用户不愿管理自己的数据这一问题,本身并没有那么重要,因为通过让普通用户在熟悉技术的用户所设置的节点上储存个人信息,[Mastodon][14] 等现代分布式社交网络已经解决了这个问题。这也表明,人们多么不愿意折腾复杂的东西。对去中心化社交网络来说,这无疑是个坏消息,因为相较于中心化网络,去中心化网络更为复杂,用户对此再清楚不过了。 -FOAF:如果我要写一个能读取个人网站上 FOAF 数据的程序,假设 Sally 的 FOAF 文档提到了 John Smith,说他在 `example.com` 有自己的主页;Sue 的 FOAF 文档也提到了 John Smith,说他在 `example.net` 有自己的主页。在这种情况下,我应该怎么办呢?到底是只有一个 John Smith 而他正好有两个主页呢,还是这两个 John Smith 是不同的人呢?如果两个 FOAF 文档中 John Smith 的邮箱都是 `johnsmith@gmail.com`,又该怎么办呢?这种身份问题是 FOAF 的软肋。在一封 2003 年的邮件里,Brickley 写道,由于不存在而且可能也不应该存在一个“全球性的身份识别系统”,FOAF 采取的方法只能是“多元的”[9][15]。FOAF 用户的邮件地址和主页地址等部分属性具有特殊性,因为邮件地址和主页地址都是独一无二的。因此,这些内容不可能相同的属性可以将人们的多个 FOAF 文档合并起来(用 Libby Miller 的话来说,“挤”在一起)。不过这些特殊属性不存在所谓优先级的说法,所以前面 John Smith 的问题还是不好解决。换句话说,是该相信主页,判定他们不是同一个人呢?还是要相信邮件地址,判定他们是同一个人呢?我真的能够在不干扰到用户的前提下,写出一个程序,解决这类问题吗? +对于 FOAF:如果我要写一个能读取个人网站上 FOAF 数据的程序,假设 Sally 的 FOAF 文档提到了 John Smith,说他的主页是 `example.com`;Sue 的 FOAF 文档也提到了 John Smith,说他的主页是 `example.net`。在这种情况下,我应该怎么办呢?到底是只有一个 John Smith 而他正好有两个主页呢,还是这两个 John Smith 是不同的人呢?如果两个 FOAF 文档中 John Smith 的邮箱都是 `johnsmith@gmail.com`,又该怎么办呢?这种身份问题是 FOAF 的软肋。在一封 2003 年的邮件里,Brickley 写道,由于不存在而且可能也不应该存在一个“全球性的身份识别系统”,FOAF 采取的方法只能是“多元的”[^9]。FOAF 用户的邮件地址和主页地址等部分属性具有特殊性,因为邮件地址和主页地址都是独一无二的。因此,这些内容不可能相同的属性可以将人们的多个 FOAF 文档合并起来(用 Libby Miller 的话来说,“挤”在一起)。不过这些特殊属性不存在所谓优先级的说法,所以前面 John Smith 的问题还是不好解决。换句话说,是该相信主页,判定他们不是同一个人呢?还是要相信邮件地址,判定他们是同一个人呢?我真的能够在不干扰到用户的前提下,写出一个程序,解决这类问题吗? Facebook 拥有单一的数据库,不用顾虑政治性问题,有条件创建“全球性的身份识别系统”,给每个人发行独一无二的身份 ID,于是问题就迎刃而解了。 -如果人们真的在乎对自己数据的持有权和掌控权,单是因为复杂难解应该不足以导致分布式社交网络的失败。但是 FOAF 的失败表明,人们从未重视过对自己数据的掌控权。正如一位博主所说,“所谓‘用户想要拥有自己的数据’只不过是一个想法,和实际应用没有关系”[10][16]。如果用户不够重视个人数据,无法忍受过于复杂的平台,如果中心化系统比去中心化系统更为简单易用,如果中心化系统有发展为封闭系统的趋向,借此取得成功,享受网络效应带来的巨大效益,那么社交网络确实属于自然垄断。 +如果人们真的在乎对自己数据的持有权和掌控权,单是因为复杂难解应该不足以导致分布式社交网络的失败。但是 FOAF 的失败表明,人们从未重视过对自己数据的掌控权。正如一位博主所说,“所谓‘用户想要拥有自己的数据’只不过是一个想法,和实际应用没有关系”[^10]。如果用户对控制的重视程度不足以承受额外的复杂性,如果中心化系统比去中心化系统更为简单易用,如果中心化系统有发展为封闭系统的趋向,借此取得成功,从而享受网络效应带来的巨大效益,那么社交网络确实属于自然垄断。 即便如此,我认为地铁系统的案例和社交网络的案例仍存在不同之处。我可以欣然接受 MTA 对地铁交通的垄断,因为我希望地铁系统本身就应该是长期垄断行业。如果纽约地铁只有一家运营商,那么它只能是政府,至少在名义上,政府比没有竞争对手的私企更加负责。但是我却不希望社交网络属于自然垄断。地铁建好了基本上就是一成不变的,但数字世界却在不断演变发展。在今天,分布式社交网络也许比中心化网络更加复杂,就好比带两张地铁卡总是比只带一张要麻烦的多。不过,在未来,互联网会发生根本性变革,那时分布式技术将会更易于使用。 如果未来果真如此,FOAF 可能会作为建立分布式社交网络的第一次尝试为人们记住。在企业大型数据库所驱动的中心化网络时代结束之后,分布式网络将会得到人们的长期青睐。 -_如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][28],也可通过 [RSS feed][29] 订阅,获取更多最新文章。_ - - - - 1. 请注意,这里我没有用“消亡”一词。[↩︎][20] - - 2. Jack Schofield, “Let’s be Friendsters,” The Guardian, February 19, 2004, accessed January 5, 2020, . [↩︎][21] - - 3. Dan Brickley and Libby Miller, “Introducing FOAF,” FOAF Project, 2008, accessed January 5, 2020, . [↩︎][22] - - 4. 同上。[↩︎][23] - - 5. Wikipedia contributors, “JSON-LD,” Wikipedia: The Free Encyclopedia, December 13, 2019, accessed January 5, 2020, . [↩︎][24] - - 6. “Data Sources,” FOAF Project Wiki, December 11 2009, accessed January 5, 2020, . [↩︎][25] - - 7. Aldon Hynes, “What is Dean Space?”, Extreme Democracy, accessed January 5, 2020, . [↩︎][26] - - 8. “Understand how structured data works,” Google Developer Portal, accessed January 5, 2020, . [↩︎][27] - - 9. tef, “Why your distributed network will not work,” Progamming is Terrible, January 2, 2013, . [↩︎][28] - - 10. Dan Brickley, “Identifying things in FOAF,” rdfweb-dev Mailing List, July 10, 2003, accessed on January 5, 2020, . [↩︎][29] - - +_如果你喜欢这篇文章,欢迎关注推特 [@TwoBitHistory][28],也可通过 [RSS 馈送][29] 订阅,获取更多最新文章。_ +[^1]: 请注意,这里我没有用“消亡”一词。 +[^2]: Jack Schofield, “Let’s be Friendsters,” The Guardian, February 19, 2004, accessed January 5, 2020, .  +[^3]: Dan Brickley and Libby Miller, “Introducing FOAF,” FOAF Project, 2008, accessed January 5, 2020, .  +[^4]: 同上。 +[^5]: Wikipedia contributors, “JSON-LD,” Wikipedia: The Free Encyclopedia, December 13, 2019, accessed January 5, 2020, .  +[^6]: “Data Sources,” FOAF Project Wiki, December 11 2009, accessed January 5, 2020, .  +[^7]: Aldon Hynes, “What is Dean Space?”, Extreme Democracy, accessed January 5, 2020, .  +[^8]: “Understand how structured data works,” Google Developer Portal, accessed January 5, 2020, .  +[^9]: tef, “Why your distributed network will not work,” Progamming is Terrible, January 2, 2013, .  +[^10]: Dan Brickley, “Identifying things in FOAF,” rdfweb-dev Mailing List, July 10, 2003, accessed on January 5, 2020, .  -------------------------------------------------------------------------------- @@ -201,7 +181,7 @@ via: https://twobithistory.org/2020/01/05/foaf.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] 译者:[aREversez](https://github.com/aREversez) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -236,3 +216,4 @@ via: https://twobithistory.org/2020/01/05/foaf.html [27]: tmp.mJHAgyVHGr#fnref:8 [28]: tmp.mJHAgyVHGr#fnref:9 [29]: tmp.mJHAgyVHGr#fnref:10 +[0]: https://img.linux.net.cn/data/attachment/album/202212/10/112053vbi9icvy6xxuv6h9.jpg \ No newline at end of file From 4a8a303a04d17b12763c785ebad1c99072aaade5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 10 Dec 2022 11:22:49 +0800 Subject: [PATCH 2293/3123] P @aREversez https://linux.cn/article-15334-1.html --- ...5 Friend of a Friend- The Facebook That Could Have Been.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20200105 Friend of a Friend- The Facebook That Could Have Been.md (99%) diff --git a/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/published/20200105 Friend of a Friend- The Facebook That Could Have Been.md similarity index 99% rename from translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md rename to published/20200105 Friend of a Friend- The Facebook That Could Have Been.md index d03fd46a2f..b6e24592de 100644 --- a/translated/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md +++ b/published/20200105 Friend of a Friend- The Facebook That Could Have Been.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "aREversez" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15334-1.html" FOAF:本可以成为 Facebook ====== From 51b6f1e922a75d64f63531fae8b0b0e4509e9fb0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 10 Dec 2022 15:30:15 +0800 Subject: [PATCH 2294/3123] RP @geekpi https://linux.cn/article-15335-1.html --- ...ally Indent Your Code in Visual Studio Code.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) rename {translated/tech => published}/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md (63%) diff --git a/translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md similarity index 63% rename from translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md rename to published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md index 72c5eb6e8d..674924887b 100644 --- a/translated/tech/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md +++ b/published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md @@ -3,54 +3,55 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15335-1.html" -如何在 Visual Studio 代码中自动缩进你的代码 +如何在 VSCode 中自动缩进你的代码 ====== -代码中的缩进指的是你在代码行的开头处的空格。像其他代码编辑器和 IDE 一样,VS Code 允许你自动缩进你的代码。 +![][0] -你可以设置制表符或空格或任何你喜欢的缩进方式。 +代码中的缩进指的是你在代码行的开头处的空格。像其他代码编辑器和 IDE 一样,VSCode 允许你自动缩进你的代码。 + +你可以设置使用制表符或空格或任何你喜欢的缩进方式。 听起来不错吧?让我们来看看怎么做。 -### 在 VS Code 中启用自动缩进 +### 在 VSCode 中启用自动缩进 -你有多种方法可以实现这个目标。在本指南中,我将向你展示三种在 visual studio 代码中自动缩进代码的方法。 +你有多种方法可以实现这个目标。在本指南中,我将向你展示三种在 VSCode 中自动缩进代码的方法。 #### 方法 1:配置全局用户设置 -你可以通过命令托盘访问全局用户设置。使用 `Ctrl + Shift + P` 来打开命令托盘,搜索 `Open User Settings` 并点击回车: +你可以通过命令模式访问全局用户设置。使用 `Ctrl + Shift + P` 来打开命令模式,搜索 `Open User Settings` 并按下回车: ![access user setting from command pallet in vscode][1] -它将打开设置。在那里,你需要搜索 `Auto Indent`,并在 **Editor: Auto Indent** 中选择 **Full**: +它将打开设置。在那里,你需要搜索 `Auto Indent`,并在 “编辑器:自动缩进Editor: Auto Indent” 中选择 “全部Full”: ![enable auto indent from global user settings in vscode][2] 接着自动缩进会被启用,并应用于 VSCode 中每个打开的文件。 -#### 方法 2:在 VS Code 中使用 linter 或 formatter 进行自动缩进 +#### 方法 2:在 VSCode 中使用检查器或格式化工具进行自动缩进 -在这种方法中,你需要添加扩展程序,如 code formatter 或者 linter,以获得理想的结果。 +在这种方法中,你需要添加扩展程序,如代码格式化工具或者检查器,以获得理想的结果。 -Linter 会识别代码中的错误,而 formatter 只对你的代码进行格式化,使其更具可读性。你可以在 [VSCode 市场][3]中搜索特定于你的编程语言的代码格式化器。 +检查器Linter会识别代码中的错误,而格式化工具Formatter只对你的代码进行格式化,使其更具可读性。你可以在 [VSCode 市场][3] 中搜索特定于你的编程语言的代码格式化器。 -And here are some of my favorite code formatters and linters for widely popular languages: -这里有一些我最喜欢的广泛流行语言的代码格式化器和 linter: +这里有一些我最喜欢的广泛流行语言的代码格式化工具和检查器: - [C/C++][4]:适用于 C 和 C++ 编程语言。 - [PHP][5]:适用于 PHP。 -- [markdownlint][6]:适用于 markdown 文件。 +- [markdownlint][6]:适用于 Markdown 文件。 - [Python][7]:适用于 Python 编程语言。 - [ESLint][8]:适用于 JSON 和 javascript。 -- [Beautify][9]: 适用于 javascript、JSON、CSS、Sass 和 HTML。 +- [Beautify][9]: 适用于 JavaScript、JSON、CSS、SASS 和 HTML。 -当你完成了为你喜欢的编程语言添加 formatter,你可以按 `Ctrl + Shift + I` 来格式化代码。 +当你为你喜欢的编程语言添加了格式化工具,你可以按 `Ctrl + Shift + I` 来格式化代码。 -同样地,你也可以使用命令托盘做同样的事情。按 `Ctrl + Shift + P`,并搜索 **Format document**,然后点击回车。 +同样地,你也可以使用命令模式做同样的事情。按 `Ctrl + Shift + P`,并搜索 `Format document`,然后按下回车。 ![indent code in VSCode][10] @@ -58,7 +59,7 @@ And here are some of my favorite code formatters and linters for widely popular VSCode 允许你在保存你的代码时,通过一个小小的调整来格式化它。让我告诉你怎么做。 -按 `Ctrl + ,`,它将打开用户设置提示。在那里,搜索 **Format On Save**。 +按 `Ctrl + ,`,它将打开用户设置提示。在那里,搜索 `Format On Save`。 ![enable format on save option][11] @@ -77,7 +78,7 @@ via: https://itsfoss.com/auto-indent-vs-code/ 作者:[Sagar Sharma][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/) 荣誉推出 @@ -94,3 +95,4 @@ via: https://itsfoss.com/auto-indent-vs-code/ [9]: https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify [10]: https://itsfoss.com/wp-content/uploads/2022/11/format-document-.gif [11]: https://itsfoss.com/wp-content/uploads/2022/11/enable-format-on-save-option.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/10/152929zff61fqq13kkpvy8.jpg \ No newline at end of file From a6e54a93494421f9e5aacffc57cac2de0f8d350d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 10 Dec 2022 22:08:50 +0800 Subject: [PATCH 2295/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221210.0=20=E2=AD=90=EF=B8=8F=20How=20to=20use=20t?= =?UTF-8?q?he=20Linux=20file=20manager=20for=20GNOME=202.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...w to use the Linux file manager for GNOME 2.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md diff --git a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md new file mode 100644 index 0000000000..f14b97ed3f --- /dev/null +++ b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -0,0 +1,74 @@ +[#]: subject: "How to use the Linux file manager for GNOME 2" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to use the Linux file manager for GNOME 2 +====== + +Before GNOME 3 there was (unsurprisingly) GNOME 2, which had gained an ardent fanbase during its reign as one of the common default Linux desktops. The [Mate project][1] (named after the _yerba mate_ plant) began as an effort to continue the GNOME 2 desktop, at first using GTK 2 (the toolkit GNOME 2 was based upon) and later incorporating GTK 3. Today, Mate delivers a familiar desktop environment that looks and feels exactly like GNOME 2 did, using the GTK 3 toolkit. Part of that desktop is the Caja file manager, a simple but robust application that helps you sort and organize your data. + +### Install Caja + +Caja isn't exactly a stand-alone application. It's tightly coupled to the Mate desktop, so to try it you must install Mate. + +You may find Mate included in your Linux distribution's software repository, or you can download and install a distribution that ships Mate as its default desktop. Before you do, though, be aware that it's meant to provide a full desktop experience, so many Mate apps are installed along with the desktop. If you're running a different desktop, you may find yourself with redundant applications (two PDF readers, two media players, two file managers, and so on). To evaluate Caja without making major changes to your computer, install a Mate-based distribution in a virtual machine using [GNOME Boxes][2]. + +![Image of the ​Caja file manager.][3] + +### Clear layout + +The thing that you're likely to notice first about Caja is its clear and direct layout. There's a toolbar across the top of the Caja window with buttons for common tasks. I love this kind of design. Function isn't hidden away in a right-click menu, nor discoverable only after an action, nor buried in a menu. The "obvious" actions for the window are listed right across the top. + +Under the main toolbar is the location bar. This displays your current path, either as a series of buttons or as editable text. Use the **Edit** button to the left of the path to toggle whether it's editable or not. + +### Configurable + +For longtime users of GNOME 2 or Caja, the main toolbar can be redundant, especially once you know the keyboard shortcuts to invoke common actions. That's why the Caja interface is configurable. You can disable major components of the Caja window from the **View** menu, including: + +- Main toolbar +- Location bar +- Side panel +- Extra panel +- Status bar + +In short, you can make Caja as minimal as you want it to be. + +![Image of ​a minimal Caja layout.][4] + +### Tag your folders + +Some people are "visual" people. They like to organize files and folders according to how they perceive their data, rather than how the computer interprets it. For instance, if the two most significant folders for you are **Music** and **Work**, it can be hard to convince a computer that there's any relationship between those two. Alphabetically, there's a lot that should get started between the two, and the contents of each may be completely different (media files in one, spreadsheets in another). + +### Caja offers some assistance. + +With Caja, you can place directories manually within a window, and Caja remembers that placement. What's more, Caja has a variety of emblems available for you to use as visual labels. You can find them in the **Edit** menu, in **Backgrounds and Emblems**. Drag and drop them onto files and folders to help them stand apart. + +![Image of emblems in Caja.][5] + +### Caja + +As file managers go, Caja is one of the most inviting. It's configurable enough to appeal to many different use cases, and in those configuration options, you're likely to find a workflow that works for you. If you're a fan of GNOME 2, then you're sure to find Caja familiar, and if you've never used GNOME 2 then you might just find your new favorite desktop in Mate. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-caja + +作者:[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/article/19/12/mate-linux-desktop +[2]: https://opensource.com/article/19/5/getting-started-gnome-boxes-virtualization +[3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png +[4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png +[5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp From db3cc6fb0d035a1f39204e5cd2a4470bdf21cfa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 11 Dec 2022 13:09:36 +0800 Subject: [PATCH 2296/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221210.2=20=E2=AD=90=EF=B8=8F=20How=20to=20Update?= =?UTF-8?q?=20Flatpak=20Packages=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Update Flatpak Packages in Linux.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md diff --git a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md new file mode 100644 index 0000000000..ea9e63b118 --- /dev/null +++ b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md @@ -0,0 +1,127 @@ +[#]: subject: "How to Update Flatpak Packages in Linux" +[#]: via: "https://itsfoss.com/update-flatpak/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Update Flatpak Packages in Linux +====== + +I believe almost all Linux users keep their systems updated. + +But that update is usually for the default [package manager][1]. For example, [updating Ubuntu][2] often means updating all the APT packages. + +However, there are other packaging formats like Snap and Flatpak. The Snap applications get updated automatically but not the Flatpak ones. + +How do you update the Flatpak packages then? Well, you can update all the installed and updatable Flatpak packages using this command: + +``` +flatpak update +``` + +That’s quite simple. But let me discuss a few more things about updating Flatpak, such as: + +- Updating all or specific Flatpak packages +- Updating Flatpak packages via Software Center + +Let’s start with the terminal method first. + +### Method 1: Using the terminal for updating Flatpak packages + +Let me first start with the most practical approach that you should also begin with. + +#### Update every outdated Flatpak package + +Updating the whole catalog of existing flatpak packages is quite easy. + +Enter the given command, and it will get you the list of outdated packages: + +``` +flatpak update +``` + +![3. update flatpak packages in linux][3] + +You just have to enter “Y” and press the Enter key, which will take care of every update. + +#### Updating specific Flatpak package + +To update specific packages, you’d need the list of the packages that can be updated. You used the same command you saw earlier. + +``` +flatpak update +``` + +![3. update flatpak packages in linux][4] + +Copy the name of the package you want to update from the output. Use the package name in the following fashion: + +``` +flatpak update package_name +``` + +For example, if you want to update Telegram, the following command will get the job done: + +``` +flatpak update org.telegram.desktop +``` + +![4. update specific package in flatpak][5] + +That’s it! + +### Method 2: Update Flatpak applications from the software center + +Distributions that come up with Flatpak buil-in support provide updates to Flatpak applications in the software center. Fedora and Linux Mint are such distributions. + +But if you are using Ubuntu, you’d need to add flatpak support to the GNOME software center: + +``` +sudo apt install gnome-software-plugin-flatpak +``` + +Once done, you will have two software centers in Ubuntu. That’s because the default software center is not GNOME’s but Snap Store. + +Open this new software center from the system menu: + +![1. open software center in ubuntu][6] + +Go to the `Updates` section and you will find the list of outdated packages. This includes both APT and Flatpak packages. + +![2. update flatpak from software center][7] + +From here, you can update all the packages at once, or you can be selective with what to update. + +### Wrapping Up + +Many Linux desktop users tend to forget to update the Flatpak packages as they are not included in the regular system updates. + +As Flatpak is a sandboxed packaging solution, you may not face any issues related to outdated packages, but you will miss out on new features and fixes for sure. + +This is why I recommend running the Flatpak update command once ever few weeks. + +I hope you like this quick little Flatpak tip helpful. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/update-flatpak/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/package-manager/ +[2]: https://itsfoss.com/update-ubuntu/ +[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png +[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png +[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png From 24c71d207bfff5c206015ac0b3f1b5abd5958fa6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 11 Dec 2022 13:51:01 +0800 Subject: [PATCH 2297/3123] ALL @wxy https://linux.cn/article-15338-1.html --- ...rotocol Helping Open-Source Developers Get Paid.md | 94 +++++++++++++++++++ ...rotocol Helping Open-Source Developers Get Paid.md | 94 ------------------- 2 files changed, 94 insertions(+), 94 deletions(-) create mode 100644 published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md delete mode 100644 sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md diff --git a/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md b/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md new file mode 100644 index 0000000000..287cbba1bb --- /dev/null +++ b/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md @@ -0,0 +1,94 @@ +[#]: subject: "Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid" +[#]: via: "https://news.itsfoss.com/tea-open-source-new-protocol/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15338-1.html" + +Tea 筹集了 890 万美元,推出了一个帮助开源开发者获得报酬的新协议 +====== + +> 这是一种帮助开源开发者获得报酬的令人兴奋的方式。 + +![Tea 筹集了 890 万美元,推出了一个帮助开源开发者获得报酬的新协议][1] + +[Tea][2] 是一个开源的统一软件包管理器,被全球许多开发者使用。 + +顺便说一句,Tea 是 Homebrew 的创建者的一个新项目。 + +在最近的一份公告中,他们宣布已经筹集了 890 万美元的种子资金,并计划推出一个新的 [Web3 协议][3],帮助开源开发者为他们的工作获得报酬。 + +我是通过 [TechCrunch][4] 上发表的一篇文章看到的,他们对 Tea 的创始人进行了访谈。 + +让我们来看看 Tea 的发展情况。 + +### Tea 提出的一项新协议 + +#### 它是什么? + +**简而言之:** 该协议将帮助软件包维护者获得不可伪造的代币(NFT),作为他们对带有 Tea 支持的开源项目的贡献的奖励。 + +展开来说就是,这是一个 Web3 协议,将帮助软件包维护者以不可伪造的通证(NFT)的形式获得报酬。 + +当维护者完成了一个软件包的提交,他们将收到一个不可伪造的通证(NFT),可以作为他们工作和贡献的证据。 + +现有的维护者也将能够通过将软件包的 NFT 转让给其他开发者来转移软件包的维护所有权。 + +> 这些 NFT 是 Tea 计划奖励其用户的核心。 + +实施这一点还将涉及被称为“包支持者”和“赞助者”的实体。 + +这些人包括组织、软件包用户、慈善家和企业家,他们使用开源软件来构建商业产品,并希望支持这样一个生态系统。 + +他们还提到: + +> 为了提供最广泛的覆盖面,我们认为奖励不能依靠跟踪安装或卸载这样简单的概念,而是要依靠激励机制,鼓励提交高质量的软件包和报告邪恶或高风险的软件包。 + +**到目前为止,Tea 只发布了他们所说的 “同类 CLI(命令行界面)工具应具备的基本功能”。 + +到目前为止,还没有提到这个新协议的具体发布日期,他们对这个协议发布的最佳估计是“2023 年的某个时候”。 + +他们补充说: + +> 就像等到 11 月才发布我们的 CLI一样,我们会在了解它应该如何最好地构建并在内部经历了试验和错误之后才发布。 +> +> 我们要慢慢来,确保这个工具本身对开发者非常有用和有价值。 + +### 它有什么帮助? + +**根据 Tea 公司的说法:** 这应该有助于他们为所有开源软件创建一个开放、公开和稳定的注册中心。 + +反过来,鼓励项目独立发布版本,而不是依赖第三方,因为第三方会不可预测地收集他们的数据,导致大量的分立和经常重复的系统。 + +以下是他们对该协议的目标的描述: + +> Tea 的目标是通过 Tea 通证的独特用例来实现去中心化的激励机制,让 Tea 社区的任何成员为开源的永久可持续性和持续增长作出贡献。 +> +> 包的支持者和赞助者可以根据他们的工作、信仰或任何影响他们决定的标准和尺度,自由决定他们要支持哪些包或包维护者。 + +**在我看来:** 这是一个令人兴奋的方法,可以奖励那些经常被忽视的开源贡献者,即使他们为各种开源项目贡献了很多。 + +然而,考虑到 NFT 在最近一段时间获得了很多批评。这可能会或可能不会有好的结果。 + +如果你想了解更多,你可以深入研究它的官方 [白皮书][5] 上的协议。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/tea-open-source-new-protocol/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/cli-raise-funds-new-api-help-opensource-dev.png +[2]: https://tea.xyz +[3]: https://web3.foundation/about/ +[4]: https://techcrunch.com/2022/12/06/from-the-creator-of-homebrew-tea-raises-8-9m-to-build-a-protocol-that-helps-open-source-developers-get-paid/ +[5]: https://tea.xyz/tea.white-paper.pdf diff --git a/sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md b/sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md deleted file mode 100644 index 79302d8dd7..0000000000 --- a/sources/news/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid" -[#]: via: "https://news.itsfoss.com/tea-open-source-new-protocol/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid -====== - -An exciting way to help open-source developers get paid for their efforts. - -![Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid][1] - -[Tea][2] is an open-source unified package manager used by many developers worldwide. - -If you didn't know, Tea is a project by the creator of Homebrew. - -In a recent announcement, they announced that they have raised $8.9 Million in seed funding and are planning to introduce a new [web3 protocol][3] that will help open-source developers get paid for their work. - -I came across this via an article posted on [TechCrunch][4], where they had a chat with the founders of Tea. - -Let's take a look at what's in store for Tea. - -### A New Protocol Proposed by Tea - -**What is it?** - -**Long story short:** This protocol will help package maintainers receive non-fungible tokens (NFTs) as a reward for their contributions to a Tea-equipped open-source project. - -The extended version is, that this is a web3 protocol that will help package maintainers get paid in the form of a non-fungible token (NFT). - -When a maintainer completes a package submission, they will receive a non-transferable token (NFT) that can be used as evidence of their work and contribution. - -Existing maintainers will also be able to transfer the maintenance ownership of a package by transferring the package's NFT to other developers. - -> 💡 These NFTs are at the core of how Tea is planning to reward its users. - -Implementing this will also involve entities called '**Package Supporters** and **Sponsors**'. - -These include organizations, package users, philanthropists, and entrepreneurs who use open-source software to build commercial products and are looking to support such an ecosystem. - -They also mention that: - -> To provide the broadest coverage, we believe that rewards mustn’t rely on a simplistic notion of tracking installations or uninstallations, but rather on incentive mechanisms that encourage the submission of quality packages and the reporting of nefarious or high-risk packages. - -**When to Expect?:** So far, with Tea, they have only released what they term as 'the base features that a CLI [command-line interface] tool of its kind should have'. - -As of now, no concrete release date has been mentioned for this new protocol, and their best estimate for the release of this protocol is 'some time in 2023'. - -They add: - -> Much like waiting until November to release our CLI, we’re not going to launch until we understand how it should be best built and have gone through trial and error internally. - -> We’re going to take our time and make sure the tool itself is very useful and valuable for developers. - -### How Does it Help? - -**According to Tea inc:** This is supposed to help them create an open, public, and stable registry for all open-source software. - -In turn, empowering projects to publish releases independently rather than relying on third parties who assemble their data unpredictably, resulting in a ton of separate and often duplicated systems. - -Here's what they tell about their goals with the protocol: - -> Tea’s goal is to implement decentralized incentive mechanisms through unique use cases of the tea token for any member of the tea community to contribute to the perpetual sustainability and continuous growth of open-source. - -> Package supporters and sponsors are free to decide which packages or package maintainers they want to support based on their work, beliefs, or any criteria and metric that would influence their decision. - -**In my opinion:** This is an exciting approach to rewarding open-source contributors who are frequently neglected, even after contributing a lot to various open-source projects. - -However, considering that NFTs have garnered a lot of criticism in recent times. This may or may not turn out well. - -If you'd like to know more, you can dive deep into its official [white paper][5] for this protocol. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/tea-open-source-new-protocol/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/cli-raise-funds-new-api-help-opensource-dev.png -[2]: https://tea.xyz -[3]: https://web3.foundation/about/ -[4]: https://techcrunch.com/2022/12/06/from-the-creator-of-homebrew-tea-raises-8-9m-to-build-a-protocol-that-helps-open-source-developers-get-paid/ -[5]: https://tea.xyz/tea.white-paper.pdf From eeb94adaa97a13aa222221417ebd871efb4f3432 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 11 Dec 2022 13:53:06 +0800 Subject: [PATCH 2298/3123] R --- ... Introduce a New Protocol Helping Open-Source Developers Get Paid.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md b/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md index 287cbba1bb..8969498a72 100644 --- a/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md +++ b/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md @@ -46,7 +46,7 @@ Tea 筹集了 890 万美元,推出了一个帮助开源开发者获得报酬 > 为了提供最广泛的覆盖面,我们认为奖励不能依靠跟踪安装或卸载这样简单的概念,而是要依靠激励机制,鼓励提交高质量的软件包和报告邪恶或高风险的软件包。 -**到目前为止,Tea 只发布了他们所说的 “同类 CLI(命令行界面)工具应具备的基本功能”。 +到目前为止,Tea 只发布了他们所说的 “同类 CLI(命令行界面)工具应具备的基本功能”。 到目前为止,还没有提到这个新协议的具体发布日期,他们对这个协议发布的最佳估计是“2023 年的某个时候”。 From 859c5a832561938ca03bac9e4cb4caff7c1203b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 11 Dec 2022 23:53:46 +0800 Subject: [PATCH 2299/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221211.0=20=E2=AD=90=EF=B8=8F=20Simplify=20your=20?= =?UTF-8?q?Linux=20PC=20with=20the=20PCManFM=20file=20manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...your Linux PC with the PCManFM file manager.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md diff --git a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md new file mode 100644 index 0000000000..0ff3f068de --- /dev/null +++ b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md @@ -0,0 +1,78 @@ +[#]: subject: "Simplify your Linux PC with the PCManFM file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Simplify your Linux PC with the PCManFM file manager +====== + +The PCMan File Manager, or PCManFM for short, is a fast and lightweight file manager that's full of features. It was developed for the [LXDE][1] desktop environment, but is a stand-alone application and can be used with the desktop or window manager of your choice. + +### Install PCManFM + +On Linux, you can probably find PCManFM in your software repository. For instance, on Fedora, Mageia, and similar: + +``` +$ sudo dnf install pcmanfm +``` + +On Debian, Elementary, and similar: + +``` +$ sudo apt install pcmanfm +``` + +![Image of the PCMan file manager.][2] + +PCManFM doesn't have to replace your desktop's file manager, but some distributions assume that when you install a "third party" file manager, you want it to take precedence over the default. Depending on the desktop you're using, there are different ways of setting your default file manager. Usually, it's in **System Settings** under **Default Applications**. + +If your desktop environment or window manager has no interface to select your default applications, you can set your preference in the `~/.local/share/applications/mimeapps.list` file. To designate a file manager as default, place it at the top of the `[Default Applications]` section, first specifying the file type and then the name of the application file (as it appears in `/usr/share/applications`) you want to use to open it: + +``` +inode/directory=myfilemanager.desktop; +``` + +### PCManFM + +If you're a fan of GNOME 2 or the Mate project's [Caja file manager][3], then PCManFM is a great alternative to consider. PCManFM is a lot like Caja in design, but it's not bound to the desktop in the way Caja is, so it's available even on the latest GNOME desktop. + +The default layout of PCManFM has a helpful toolbar near the top of the window, a side panel providing quick access to common directories and drives, and a status bar with details about your current selection. You can hide or show any of these elements using the **View** menu. + +### Tabs and panels + +PCManFM also uses tabs. If you've never used a tabbed file manager before, then think of a web browser and how it uses tabs to let you open multiple web pages in just one window. PCManFM can similarly open several directories in the same window. + +To transfer a file or folder from one tab to another, just drag the file's icon to the tab and hover. After a nominal delay, PCManFM brings the target tab to the front so you can continue your drag-and-drop operation. It takes some getting used to if you're not used to interacting with tabs in a file manager, but it doesn't take long, and it's a very powerful feature for decluttering your workspace. + +Another nice feature of the PCManFM interface is its ability to split a window into two panels. Each panel is effectively a tab, but each one only takes up half of the window. + +![Image of dual panels in PCMan.png][4] + +This makes dragging from one to the other just as easy and natural as dragging a file into a folder. I find it useful for comparing the contents of folders, too. + +### File management with PCMan + +PCManFM is a great little file manager with all the basic features you need on an everyday basis. It's a natural replacement for a file manager you might find too complicated, as well as a great option on [old computers][5] that might struggle with a file manager that's constantly drawing thumbnails and refreshing and generating animations. PCMan focuses on the core task of a file manager: managing files. Try it out on your Linux PC. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm + +作者:[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/article/19/12/lxqt-lxde-linux-desktop +[2]: https://opensource.com/sites/default/files/2022-10/pcmanfilemanager.png +[3]: https://opensource.com/article/22/12/linux-file-manager-caja +[4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png +[5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity From 370ecbbb8409703cd7a3edc0e5a44c8535f4b878 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 12 Dec 2022 08:04:38 +0800 Subject: [PATCH 2300/3123] RP @geekpi https://linux.cn/article-15340-1.html --- ...y you should try the Nemo file manager on Linux.md | 87 +++++++++++++++++++ ...y you should try the Nemo file manager on Linux.md | 82 ----------------- 2 files changed, 87 insertions(+), 82 deletions(-) create mode 100644 published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md delete mode 100644 translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md diff --git a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md new file mode 100644 index 0000000000..b7b5a83fe8 --- /dev/null +++ b/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md @@ -0,0 +1,87 @@ +[#]: subject: "Why you should try the Nemo file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-nemo" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15340-1.html" + +为什么你要在 Linux 上尝试 Nemo 文件管理器? +====== + +![][0] + +> Nemo 感觉像是更新版的 GNOME 2 文件管理器。我喜欢它,我觉得你也会喜欢它。 + +计算机是一个奇特的文件柜,里面装满了虚拟文件夹和文件,等待着被引用、交叉引用、编辑、更新、保存、复制、移动、重命名和归类。在本文中,我将介绍一下 Linux 系统的文件管理器。 + +[Cinnamon][1] 项目是使用 GNOME 3 的组件重新实现的 GNOME 2。最终,它的差异足以成为一个真正的分叉,如今,Cinnamon 桌面使用 GTK3 库和 GNOME 3 关键应用的分叉版本来创建一个“经典”的 GNOME 体验。对传统的 GNOME 体验做出贡献的组件之一是 Nemo,它是一个基于 GNOME 2 版本的 Nautilus 的文件管理器。 + +### 在 Linux 上安装 Nemo + +Nemo 的源代码 [在线提供][2],但它需要 `cinnamon-desktop` 来构建,所以安装 Nemo 最简单的方法是直接安装 Cinnamon。 + +在 Fedora、Mageia 和类似的系统上: + +``` +$ sudo dnf install cinnamon-desktop +``` + +在 Linux Mint、Debian 和类似系统上: + +``` +$ sudo dnf install cinnamon-desktop-environment +``` + +当然,作为该桌面的发源地,Linux Mint 也预装了 Cinnamon。 + +### 一个熟悉的界面 + +如果你已经习惯了 GNOME,无论是过去的还是现在的,那么 Nemo 从一开始就让你有一种回家的感觉。它有一个熟悉的外观和感觉,在类似的地方有按钮和选项,你很可能会认出它们。 + +![Image of Nemo's file manager.][3] + +将视图控制按钮放在右上方的 GNOME 式惯例被保留了下来,你可以使用这些按钮快速地将你的文件视图从大图标切换到详细列表或紧凑视图。那里还有一个搜索功能,以及在可编辑文本和按钮之间切换位置栏的选项。 + +可编辑的 URI 栏有时被低估了。这是一个简单的设计决定,但它可以是一个有助于提高效率的巨大功能。这就像在每个窗口的顶部有一个单行终端,你可以在那里输入你的系统的任何目标位置,并立即被带到那里。而且你甚至不需要输入 `cd`。 + +在左上角,有导航按钮:向上、向前和向后。与许多 Linux 文件管理器一样,你可以用 `Alt` 键加上适当的 `箭头` 键,而放弃使用这些按钮。 + +侧面窗格显示了重要文件夹的列表(主目录、文档、下载等),可以通过点击窗口底部的一个按钮来隐藏或显示。 + +### 熟悉但不一样 + +Nemo 的舒适性和熟悉性并不意味着它只是无意识地模仿 Nautilus。Nemo 有一系列不错的功能,感觉很独特。其中大部分都在 偏好设置Preferences 中,以下是我最喜欢的几个: + +- 窗口标题中显示全路径Full path in window title:这是我最喜欢的功能。不要再怀疑你在文件系统中的位置了。让你的窗口标题告诉你。 +- 单击或双击Single or double click:如果你是一个长期的 [KDE][4] 用户,你可能会发现单次点击打开一个文件是很新鲜的。有了 Nemo,你可以这样选择。 +- 双击来重命名Double-click to rename:如果你使用单击来打开,为什么不重新利用双击来重命名呢? +- 在新窗口中打开每个文件夹Open each folder in a new window:操作系统为每一个打开的文件夹打开一个新的窗口。 +- 插件Plugins:Nemo 有能力调用动作、脚本和扩展。有些已经包括在内,有改变桌面背景、创建启动器和挂载归档的动作。其他的还没有被创建,但这种可扩展性对开源是至关重要的。 + +### 一切近在咫尺 + +在 Linux Mint 上使用 Nemo 几周后,一个有趣的特征让我眼前一亮。似乎 Nemo 可以,或者通过快速配置可以,让我最常使用的所有东西都近在咫尺。许多功能,我承认,我不知道我是否需要,直到 Nemo 让我轻松点击才知道。你可能会说,我是为了满足 Nemo 的设计而改变了我的使用方式,也许情况确实如此。但是,当这种体验是如此令人愉快和有效时,这有什么关系呢? + +Nemo 是一个很好的文件管理器。它让人想起了 GNOME 2 的时代,但其更新和设计选择让人有一种新鲜的感觉。如果你喜欢 [Thunar][5] 或 Nautilus,你会喜欢 Nemo。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-nemo + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/12/cinnamon-linux-desktop +[2]: https://github.com/linuxmint/nemo/releases +[3]: https://opensource.com/sites/default/files/2022-09/nemo.png +[4]: https://opensource.com/article/22/2/why-i-love-linux-kde +[5]: https://opensource.com/article/22/12/linux-file-manager-thunar +[0]: https://img.linux.net.cn/data/attachment/album/202212/12/080234oessb2lsx0s8esri.jpg \ No newline at end of file diff --git a/translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md deleted file mode 100644 index e0d1597598..0000000000 --- a/translated/tech/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Why you should try the Nemo file manager on Linux" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-nemo" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -为什么你要在 Linux 上尝试 Nemo 文件管理器? -====== - -计算机是奇特的文件柜,里面装满了等待引用、交叉引用、编辑、更新、保存、复制、移动、重命名和组织的虚拟文件夹和文件。在本文中,我将介绍一下 Linux 系统的文件管理器。 - -[Cinnamon][1] 项目是使用 GNOME 3 的组件重新实现 GNOME 2。最终,它的差异足以成为一个真正的分叉,今天,Cinnamon 桌面使用 GTK3 库和 GNOME 3 关键应用的分叉版本来创建一个“经典”的 GNOME 体验。Nemo 是促成传统 GNOME 体验的组件之一,它是一个基于 GNOME 2 版本的 Nautilus 的文件管理器。 - -### 在 Linux 上安装 Nemo - -Nemo 的源代码[在线提供][2],但它需要 `cinnamon-desktop` 来构建,所以安装 Nemo 最简单的方法是直接安装 Cinnamon。 - -在 Fedora、Mageia 和类似的系统上: - -``` -$ sudo dnf install cinnamon-desktop -``` - -在 Linux Mint、Debian 和类似系统上: - -``` -$ sudo dnf install cinnamon-desktop-environment -``` - -当然,作为桌面的始祖,Linux Mint 也有预装 Cinnamon 的版本。 - -### 一个熟悉的界面 - -如果你已经习惯了 GNOME,无论是过去的还是现在的,那么 Nemo 从一开始就有一种回家的感觉。它有一个熟悉的外观和感觉,在类似的地方有按钮和选项,你很可能会认出它们。 - -![Image of Nemo's file manager.][3] - -将视图控制按钮放在右上方的 GNOME 式惯例被保留了下来,你可以使用这些按钮快速地将你的文件视图从大图标切换到详细列表或紧凑视图。那里还有一个搜索功能,以及在可编辑文本和按钮之间切换位置栏的选项。 - -可编辑的 URI 栏有时被低估了。这是一个简单的设计决定,但它可以是一个有助于提高效率的巨大功能。这就像在每个窗口的顶部有一个单行终端,你可以在系统的任何地方输入一个目标,并立即被带到那里。而且你甚至不需要输入 `cd`。 - -在右上角,有导航按钮:向上、向前和向后。与许多 Linux 文件管理器一样,你可以用 **Alt** 键加上适当的**箭头**键来放弃使用这些按钮。 - -侧面窗格显示了重要文件夹的列表(家目录、文档、下载等),可以通过点击窗口底部的一个按钮来隐藏或显示。 - -### 熟悉但不一样 - -Nemo的舒适性和熟悉性并不意味着它只是无意识地模仿 Nautilus。Nemo 有一系列不错的功能,感觉很独特。其中大部分都在**偏好设置**中,以下是我最喜欢的几个: - -- **窗口标题中的全路径**:是我最喜欢的功能。不要再怀疑你在文件系统中的位置了。让你的窗口标题告诉你。 -- **单击或双击**:如果你是一个长期的 [KDE][4] 用户,你可能会发现单次点击打开一个文件是很新鲜的。有了 Nemo,你可以这样选择。 -- **双击来重命名**:如果你使用单击来打开,为什么不重新利用双击来重命名? -- **在一个新窗口中打开每个文件夹**:操作系统为每一个打开的文件夹打开一个新的窗口。 -- **插件**:Nemo 有能力调用动作、脚本和扩展。有些已经包括在内,包括改变桌面背景、创建启动器和挂载归档的动作。其他的还没有被创建,但这种可扩展性对开源是至关重要的。 - -### 一切近在咫尺 - -在 Linux Mint 上使用 Nemo 几周后,一个有趣的特征让我眼前一亮。似乎 Nemo 拥有,或者通过快速配置可以拥有,我最常使用的所有东西都近在咫尺。许多功能,我承认,我不知道我需要或想要,直到 Nemo 让我轻松点击。你可能会说,我是为了满足 Nemo 的设计而改变了我的使用方式,也许情况确实如此。但是,当这种体验是如此令人愉快和有效时,这有什么关系呢? - -Nemo 是一个很好的文件管理器。它让人想起了 GNOME 2 的时代,但其更新和设计选择让人感到新鲜。如果你喜欢 [Thunar][5] 或 Nautilus,你会喜欢 Nemo。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-nemo - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/19/12/cinnamon-linux-desktop -[2]: https://github.com/linuxmint/nemo/releases -[3]: https://opensource.com/sites/default/files/2022-09/nemo.png -[4]: https://opensource.com/article/22/2/why-i-love-linux-kde -[5]: https://opensource.com/article/22/12/linux-file-manager-thunar From ae4ad996968f8d101b6a6c2997098e625855449b Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 12 Dec 2022 08:55:07 +0800 Subject: [PATCH 2301/3123] translated --- ...️⭐️ Try this Java file manager on Linux.md | 63 ------------------ ...️⭐️ Try this Java file manager on Linux.md | 64 +++++++++++++++++++ 2 files changed, 64 insertions(+), 63 deletions(-) delete mode 100644 sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md create mode 100644 translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md diff --git a/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md deleted file mode 100644 index e43830f831..0000000000 --- a/sources/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md +++ /dev/null @@ -1,63 +0,0 @@ -[#]: subject: "Try this Java file manager on Linux" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Try this Java file manager on Linux -====== - -Computers are fancy filing cabinets, full of virtual folders and files waiting to be referenced, cross-referenced, edited, updated, saved, copied, moved, renamed, and organized. In this article, we're taking a look at a file manager for your Linux system. - -At the tail end of the Sun Microsystem days, there was something called the Java Desktop System, which was strangely _not_ written in Java. Instead, it was a (according to sun.com at the time) "judicious selection of integrated and tuned desktop software, most based on open source and open standards." It was based on GNOME, with an office suite, email and calendaring apps, instant messaging, "and Java technology." I found myself musing about what it would take to create a desktop in Java. Objectively, a desktop doesn't actually consist of all that much. The general consensus seems to be that a desktop is made up of a panel, a system tray, an application menu, and a file manager. - -It's an interesting thought exercise to imagine an actual Java desktop. Not enough to start an open source project with that as its aim, but enough for a quick web search for the necessary components. And as it turns out, someone has written and maintains a file manager in Java. - -### JFileProcessor - -The Java file manager I found is called JFileProcessor, or JFP for short. It's a fascinating exercise not just in Java, but specifically in [Groovy][1], a popular scripting language for Java. - -![Image of the JfileProcessor folders.][2] - -As a file manager, JFileProcessor takes a minimal approach to both design and function. It lets you view, open, move, copy, cut, or delete files on your local system and on remote systems. It's not particularly customizable, it doesn't have extra features like split panels or movable panes. It's not built around any central theme aside from managing files. JFileProcessor is refreshing, in a way, because of its simplicity. This is a file manager, and that's all. And sometimes that's all you want in a file manager. - -I've written about options to [theme Java Swing][3] before, and that technique is technically an option for this open source application. However, I think part of the charm of this application is what OpenSolaris called its "Blueprint" theme. It's a nostalgic look of Java, and I've enjoyed running it in its native GUI appearance as a callback to my OpenSolaris (now OpenIndiana) laptop. - -### User experience - -Design aside, what really matters is user experience. JFileProcessor has just three buttons that you use on a daily basis: Up, back, and forward. They aren't bound to keyboard shortcuts, so you do have to click the buttons to navigate (or use the **Tab** key to select a button). I do a lot with keyboard shortcuts when using graphical applications, so this slowed me down a lot as I tried to navigate my system. However, there are times when I'm actually just lazily browsing files, and for that JFileProcessor worked exactly as I needed it. - -There's a search component to JFileProcessor, too. As long as you set a reasonable starting folder, the search is quick and intelligent, allowing for both search globs and regex patterns. I used this feature regularly when searching for a specific e-book or comic archive or game rulebook, for instance, or any time that I had a rough idea that directory contained an item but couldn't be bothered to click all the way through to the destination. A quick search through the subdirectories inevitably returned the obvious result, and a double-click opened the file to whatever XDG preference I had set (Evince for PDFs, Foliate for eBooks, and so on.) - -A right-click on any file or directory brings up a context menu. It's got most of the common tasks you'd expect: Copy, Cut, Paste, Delete, Rename, New. It's got some nice additions, too. - -![Right-click context menu in JFileProcessor][4] - -For instance, you can copy just the filename to your clipboard or save a path to a file. You can also run some scripts, including one to batch rename files, one to run a command on selected files, one to create a ZIP or TAR archive, and many more. And of course, there are several options for the coder, including opening a terminal at your current location and opening a new coding window. - -### Install - -I'm a real fan of Java. It's a clear language with sensible delimiters and a firm stance on cross-platform compatibility. I enjoy it as a language, and I love seeing what programmers create with it. - -JFileProcessor is aptly named. It's an effective way to process files, in the sense that JFileProcessor gives you a simple window into the files of data on your system and allows you to interact with them, graphically, in the same way you're likely to interact with them from a terminal. It's not the most efficient file manager I've used, nor the one with the most features. However, it's a pleasant application that provides you with the basic tools you need for file management with a relatively small codebase that makes for some stellar afternoon reading. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor - -作者:[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/article/20/12/groovy -[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp -[3]: https://opensource.com/article/22/3/beautify-java-applications -[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp diff --git a/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md new file mode 100644 index 0000000000..8ef1bb47c1 --- /dev/null +++ b/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md @@ -0,0 +1,64 @@ +[#]: subject: "Try this Java file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 上试试这个 Java 文件管理器 +====== + +计算机是奇特的文件柜,里面装满了等待引用、交叉引用、编辑、更新、保存、复制、移动、重命名和组织的虚拟文件夹和文件。在本文中,我将介绍一下 Linux 系统的文件管理器。 + +在 Sun Microsystem 时代的末期,出现了一种叫做 Java 桌面系统的东西,奇怪的是它_不是_用 Java 编写的。相反,它是(根据当时的 sun.com 上的描述)“对集成和优化的桌面软件的明智选择,大部分基于开源代码和开放标准”。它基于 GNOME,带有办公套件、电子邮件和日历应用、即时消息和“Java 技术”。我发现自己在思考用 Java 创建桌面需要什么。客观地说,桌面实际上并没有那么多。一般的共识似乎是桌面由面板、系统托盘、应用菜单和文件管理器组成。 + +想象一个实际的 Java 桌面是一个有趣的思维练习。不足以以此为目标启动一个开源项目,但足以在网络上快速搜索必要的组件。事实证明,有人用 Java 编写并维护了一个文件管理器。 + +### JFileProcessor + +我找到的 Java 文件管理器叫做 JFileProcessor,简称 JFP。这不仅在 Java 中,而且在 [Groovy][1](一种流行的 Java 脚本语言)中都是一项迷人的练习。 + +![Image of the JfileProcessor folders.][2] + +作为文件管理器,JFileProcessor 在设计和功能上都采用了最小化的方法。它允许你查看、打开、移动、复制、剪切或删除本地系统和远程系统上的文件。它不是特别定制化的,它没有额外的功能,如拆分面板或可移动面板。除了管理文件外,它不围绕任何中心主题构建。JFileProcessor 在某种程度上令人耳目一新,因为它很简单。这是一个文件管理器,仅此而已。有时这就是你在文件管理器中想要的全部。 + +我之前写过关于[设置 Java Swing 主题][3]的方式,从技术上讲,该技术是这个开源应用的一个选项。但是,我认为这个应用的部分魅力在于 OpenSolaris 称之为 “Blueprint” 的主题。这是 Java 的怀旧外观,我喜欢以其原生 GUI 外观运行它,作为对我的 OpenSolaris(现为 OpenIndiana)笔记本电脑的回忆。 + + +### 用户体验 + +除了设计,真正重要的是用户体验。JFileProcessor 只有三个你日常使用的按钮:向上、后退和前进。它们未绑定到键盘快捷键,因此你必须单击按钮才能导航(或使用 **Tab** 键选择按钮)。在使用图形应用时,我经常使用键盘快捷键,所以当我尝试浏览我的系统时,这大大减慢了我的速度。但是,有时我实际上只是懒洋洋地浏览文件,因此 JFileProcessor 完全按照我的需要工作。 + +JFileProcessor 也有一个搜索组件。只要你设置合理的起始文件夹,搜索就会快速而智能,同时允许适用 glob 和正则模式搜索。例如,当我搜索特定的电子书或漫画档案或游戏规则手册时,或者任何时候我粗略地知道该目录包含一个项目但懒得一直点击到目的地址。在子目录中快速搜索,必然会得到明显的结果,然后双击打开文件,不管我设置了什么XDG偏好(Evince用于PDF,Foliate用于电子书,等等)。 + +右键单击任何文件或目录会弹出上下文菜单。它具有你期望的大部分常见任务:复制、剪切、粘贴、删除、重命名、新建。它也有一些不错的额外功能。 + +![Right-click context menu in JFileProcessor][4] + +例如,你可以只将文件名复制到剪贴板或保存文件路径。你还可以运行一些脚本,包括用于批量重命名文件的脚本、用于对选定文件运行命令的脚本、用于创建 ZIP 或 TAR 存档的脚本等等。当然,编码器有多种选择,包括在当前位置打开终端和打开新的编码窗口。 + +### 安装 + +我是 Java 的忠实粉丝。它是一种清晰的语言,具有合理的分隔符和对跨平台兼容性的坚定立场。我喜欢它作为一种语言,我喜欢看到程序员用它创造的东西。 + +JFileProcessor 的名字很贴切。这是一种处理文件的有效方法,从某种意义上说,JFileProcessor 为你提供了一个简单的窗口来查看系统上的文件数据,并允许你以图形方式与它们进行交互,就像你可能在终端中与它们交互一样。它不是我用过的最高效的文件管理器,也不是功能最多的一个。然而,这是一个令人愉快的应用,为你提供了文件管理所需的基本工具,其相对较小的代码库使你可以在下午阅读一些精彩的内容。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/12/groovy +[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp +[3]: https://opensource.com/article/22/3/beautify-java-applications +[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp From 58dd2374624af6ca75f90bc19dd416ec25c274d5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 12 Dec 2022 09:00:25 +0800 Subject: [PATCH 2302/3123] translating --- ...vert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md index 3e2b35e83e..318da04906 100644 --- a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md +++ b/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/converter-tool/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 71a2eb77921f6a8e664793a3d78c4789408e0126 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Mon, 12 Dec 2022 09:54:41 +0800 Subject: [PATCH 2303/3123] translating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译申请 --- ...22.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md index 43f516aa5c..d275e3617b 100644 --- a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md +++ b/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/rust-calls-c-library-functions" [#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 74d1e940d9175cf9300987cefccb7df20c9b9f6b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 12 Dec 2022 10:42:28 +0800 Subject: [PATCH 2304/3123] RP @yzuowei https://linux.cn/article-15341-1.html --- ...Process ID and Kill it in Linux [CLI & GUI].md | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) rename {translated/tech => published}/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md (55%) diff --git a/translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md similarity index 55% rename from translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md rename to published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md index f77e73d297..411007a152 100644 --- a/translated/tech/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md +++ b/published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md @@ -3,28 +3,30 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15341-1.html" -如何在 Linux 中找到一个进程 ID 并杀死它 [CLI & GUI] +如何在 Linux 中找到一个进程 ID 并杀死它 ====== -**一个简单的教学展示教你如何找到正在运行中的进程 ID 并杀死它,你可以使用终端或着 GUI,这个方法适用于各类 Linux 发行版。** +![][0] + +> 一个简单的教学展示,教你如何找到正在运行中的进程 ID 并杀死它,你可以使用终端或者 GUI,这个方法适用于各类 Linux 发行版。 你的 Linux 系统中运行的应用可能会让你的电脑变慢,特别是你的电脑配置较低的时候。在 Linux (以及所有其他 OS)中,程序或者应用都携带一个特别的 PID (进程 ID)可供你简单地分辨它们。 -然而,作为初学者,大部分 Linux 用户并不知道如何在 Linux 中寻找运行中的进程并杀死它。在这篇指南中,我们将会解释不同的方法用以杀死 Linux 中的运行进程。这包括了使用终端和 GUI 的方法。 +然而,大部分 Linux 初学者用户并不知道如何在 Linux 中寻找运行中的进程并杀死它。在这篇指南中,我们将会解释用不同的方法以杀死 Linux 中的运行进程。这包括了使用终端和 GUI 的方法。 记住,你只应该杀死未响应的进程,或者你发现应用无法被正常关闭 (针对基于 GUI 的应用)。 -### 如何在 Linux 中找到进程 id 并杀掉它们 +### 如何在 Linux 中找到 PID 并杀掉它们 在这一部分中,我们首先应该先学会如何找到运行进程的 PID,然后再学习用以杀掉它们的命令: #### 找到正在运行中的进程 -你可以使用命令 `top` 来列出所有正在进行中的进程和它们的 PID,以及其他细节。程序 top 在所有 Linux 发行版和所有基于 Unix 的系统中都是默认安装了的。 +你可以使用命令 `top` 来列出所有正在进行中的进程和它们的 PID,以及其他细节。程序 `top` 在所有 Linux 发行版和所有基于 Unix 的系统中都是默认安装了的。 ``` top @@ -40,15 +42,14 @@ ps -el | grep -i firefox ![Firefox process id using ps command - example][2] -现在你已经找到进程 id 了,让我们看看你该如何杀掉它。 +现在你已经找到 PID 了,让我们看看你该如何杀掉它。 #### 杀死运行中的进程 -You can either use the process name or PID to kill the currently running process using the following commands:  使用以下命令,你可以通过进程的名字或者 PID 来杀掉这个正在运行中的进程: -- **killall:** 通过运行进程的名字来杀死进程 -- **[kill][3]:** 通过 PID 来杀死进程 +- `killall`:通过运行进程的名字来杀死进程 +- [kill][3]:通过 PID 来杀死进程 现在,让我们首先使用进程 `killall` 通过 Firefox 这个名字来杀死它的,命令如下: @@ -56,14 +57,14 @@ You can either use the process name or PID to kill the currently running process killall -9 firefox ``` -- 参数 `-9` 发送了信号 SIGKILL 通知 OS 来终止这个进程。 +- 参数 `-9` 发送了信号 `SIGKILL` 通知 OS 来终止这个进程。 - 使用以下命令,你也可以列出一些别的信号。 ``` kill -l ``` -同样地,如果你想要通过进程 ID 来杀死进程,你可以用以下命令: +同样地,如果你想要通过 PID 来杀死进程,你可以用以下命令: ``` kill -9 @@ -75,27 +76,27 @@ kill -9 kill -9 33665 ``` -让我们看看在不同发行版中,你该如何使用图形用户界面 (GUI) 来杀死任意进程或应用。 +让我们看看在不同发行版中,你该如何使用图形用户界面(GUI)来杀死任意进程或应用。 -### 通过 GUI 寻找进程 id 并杀掉 +### 通过 GUI 寻找 PID 并杀掉 现在有很多图形界面程序可以枚列进程。大部分 Linux 发行版的桌面环境中已经携带了它们。我们在这里列举出了一些。 -#### GNOME (在 Ubuntu, Fedora workstation 中,诸如此类) & 在 Linux Mint 中 +#### GNOME(在 Ubuntu、Fedora 工作站等) & 在 Linux Mint 中 -在应用菜单中搜索 "system monitor" 并打开它 (译者注:中文桌面环境也可以搜 "system monitor",我在 ubuntu 里试过了)。在进程 (Processes) 标签页下找到你的进程,右击进程名字打开快捷菜单,选择选项“杀死” (Kill)。 +在应用菜单中搜索 “system monitor” 并打开它(LCTT 译注:中文桌面环境也可以搜 “system monitor”,我在 Ubuntu 里试过了)。在 “进程Processes” 标签页下找到你的进程,右击进程名字打开快捷菜单,选择选项 “杀死Kill”。 ![Kill a process in Linux using gnome system monitor][4] -#### KDE Plasma (Kubuntu,Fedora-KDE 或任何基于 Plasma 的发行版) +#### KDE Plasma(Kubuntu、Fedora-KDE 或任何基于 Plasma 的发行版) -在应用菜单中搜索并启动 "system monitor"。这会打开以下程序。在左边菜单栏点击进程,你因该能看见一列正在运行的程序。你可以右击列表里的进程或应用并选择“杀死”来终止进程。 +在应用菜单中搜索并启动 “system monitor”。这会打开以下程序。在左边菜单栏点击“进程Processes” ,你因该能看见一列正在运行的程序。你可以右击列表里的进程或应用并选择“杀死Kill”来终止进程。 ![System monitor in KDE Plasma][5] #### Xfce 桌面 -Xfce 桌面可以完成这项任务的原生应用是任务管理器 (Task Manager),你可以通过 `应用 (Application) > 系统 (System) > 任务管理器 (Task manager)` 来找到它。右击进程名字然后选择“杀死”来终止应用或进程。 +Xfce 桌面可以完成这项任务的原生应用是 任务管理器Task Manager,你可以通过 “应用Application > 系统System > 任务管理器Task manager” 来找到它。右击进程名字然后选择“杀死Kill”来终止应用或进程。 ![Xfce task manager to kill a process][6] @@ -103,19 +104,19 @@ Xfce 桌面可以完成这项任务的原生应用是任务管理器 (Task Manag 如果你找不到任何相似的程序,你可以选择使用终端的方法。或者,你可以使用以下命令来安装 gnome-system-monitor。 -**Ubuntu 以及相关发行版** +Ubuntu 以及相关发行版: ``` sudo apt install gnome-system-monitor ``` -**Fedora 以及其相关的:** +Fedora 以及其相关的发行版: ``` sudo dnf install gnome-system-monitor ``` -**还有 Arch Linux:** +还有 Arch Linux: ``` sudo pacman -S gnome-system-monitor @@ -123,7 +124,7 @@ sudo pacman -S gnome-system-monitor ### 总结一下 -这就是你该如何在 Linux 中找到一个运行中的进程 id 并杀死它。我们已经解释了不同的方法:你可以通过名字或者 PID 来杀死进程。我希望这对你有所帮助。 +这就是你该如何在 Linux 中找到一个运行中的进程的 PID 并杀死它。我们已经解释了不同的方法:你可以通过名字或者 PID 来杀死进程。我希望这对你有所帮助。 -------------------------------------------------------------------------------- @@ -132,7 +133,7 @@ via: https://www.debugpoint.com/find-process-id-kill-linux/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -144,3 +145,4 @@ via: https://www.debugpoint.com/find-process-id-kill-linux/ [4]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kill-a-process-in-Linux-using-gnome-system-monitor.jpg [5]: https://www.debugpoint.com/wp-content/uploads/2022/12/System-monitor-in-KDE-Plasma.jpg [6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Xfce-task-manager-to-kill-a-process.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202212/12/103939c8tv41t8391v6886.jpg \ No newline at end of file From 01945aa25467e527d9211902884ee16a7eaad513 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 12 Dec 2022 10:49:48 +0800 Subject: [PATCH 2305/3123] Second Translation Request --- sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md index c95461a3c6..82d777b905 100644 --- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md +++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/tooljet-open-source-journey" [#]: author: "Navaneeth PK https://opensource.com/users/navaneeth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 162e301137f1226cce141acbc3a6a9f7ae6ad579 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Mon, 12 Dec 2022 14:14:44 +0800 Subject: [PATCH 2306/3123] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 第一段结尾的 lingua franca 我没有翻译因为我认为这里不应该翻译 - 文中有一处提到 epoch 的地方我一半觉得不用翻译,一半不会翻译 - 链接中的 [1] 我把 lingua franca 的 wiki 链接换成了百度百科链接 - epoch 处我添加了 [4] UNIX时间 的百度百科链接 - 我在 ### 调用涉及指针的 C 函数 结尾处加入了较长一段注释,主要解释作者代码在本地运行时可能会遇到的问题,我在其中加入了两个链接 [5] 和 [6] - [1] 的原链接是 https://en.wikipedia.org/wiki/Lingua_franca - [4] epoch 的 wiki 链接是 https://en.wikipedia.org/wiki/Epoch_(computing) - 我感觉 wiki 写的比百度百科要好,但是写得好的 wiki 内容是英文的,访问也是个问题 --- ...️ Introducing Rust calls to C library functions.md | 283 ----------------- ...️ Introducing Rust calls to C library functions.md | 287 ++++++++++++++++++ 2 files changed, 287 insertions(+), 283 deletions(-) delete mode 100644 sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md create mode 100644 translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md diff --git a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md deleted file mode 100644 index d275e3617b..0000000000 --- a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md +++ /dev/null @@ -1,283 +0,0 @@ -[#]: subject: "Introducing Rust calls to C library functions" -[#]: via: "https://opensource.com/article/22/11/rust-calls-c-library-functions" -[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Introducing Rust calls to C library functions -====== - -Why call C functions from Rust? The short answer is software libraries. A longer answer touches on where C stands among programming languages in general and towards Rust in particular. C, C++, and Rust are systems languages, which give programmers access to machine-level data types and operations. Among these three systems languages, C remains the dominant one. The kernels of modern operating systems are written mainly in C, with assembly language accounting for the rest. The standard system libraries for input and output, number crunching, cryptography, security, networking, internationalization, string processing, memory management, and more, are likewise written mostly in C. These libraries represent a vast infrastructure for applications written in any other language. Rust is well along the way to providing fine libraries of its own, but C libraries—​around since the 1970s and still growing—​are a resource not to be ignored. Finally, C is still the [lingua franca][1] among programming languages: most languages can talk to C and, through C, to any other language that does so. - -### Two proof-of-concept examples - -Rust has an FFI (Foreign Function Interface) that supports calls to C functions. An issue for any FFI is whether the calling language covers the data types in the called language. For example, `ctypes` is an FFI for calls from Python into C, but Python doesn't cover the unsigned integer types available in C. As a result, `ctypes` must resort to workarounds. - -By contrast, Rust covers all the primitive (that is, machine-level) types in C. For example, the Rust `i32` type matches the C `int` type. C specifies only that the `char` type must be one byte in size and other types, such as `int`, must be at least this size; but nowadays every reasonable C compiler supports a four-byte `int`, an eight-byte `double` (in Rust, the `f64` type), and so on. - -There is another challenge for an FFI directed at C: Can the FFI handle C's raw pointers, including pointers to arrays that count as strings in C? C does not have a string type, but rather implements strings as character arrays with a non-printing terminating character, the _null terminator_ of legend. By contrast, Rust has two string types: `String` and `&str` (string slice). The question, then, is whether the Rust FFI can transform a C string into a Rust one—​and the answer is _yes_. - -Pointers to structures also are common in C. The reason is efficiency. By default, a C structure is passed _by_value (that is, by a byte-per-byte copy) when a structure is either an argument passed to a function or a value returned from one. C structures, like their Rust counterparts, can include arrays and nest other structures and so be arbitrarily large in size. Best practice in either language is to pass and return structures by reference, that is, by passing or returning the structure's address rather than a copy of the structure. Once again, the Rust FFI is up to the task of handling C pointers to structures, which are common in C libraries. - -The first code example focuses on calls to relatively simple C library functions such as `abs` (absolute value) and `sqrt` (square root). These functions take non-pointer scalar arguments and return a non-pointer scalar value. The second code example, which covers strings and pointers to structures, introduces the [bindgen][2] utility, which generates Rust code from C interface (header) files such as `math.h` and `time.h`. C header files specify the calling syntax for C functions and define structures used in such calls. The two code examples are [available on my homepage][3]. - -### Calling relatively simple C functions - -The first code example has four Rust calls to C functions in the standard mathematics library: one call apiece to `abs` (absolute value) and `pow` (exponentiation), and two calls to `sqrt` (square root). The program can be built directly with the `rustc` compiler, or more conveniently with the `cargo build` command: - -``` -use std::os::raw::c_int; // 32 bits -use std::os::raw::c_double; // 64 bits - -// Import three functions from the standard library libc. -// Here are the Rust declarations for the C functions: -extern "C" { - fn abs(num: c_int) -> c_int; - fn sqrt(num: c_double) -> c_double; - fn pow(num: c_double, power: c_double) -> c_double; -} - -fn main() { - let x: i32 = -123; - println!("\nAbsolute value of {x}: {}.", unsafe { abs(x) }); - - let n: f64 = 9.0; - let p: f64 = 3.0; - println!("\n{n} raised to {p}: {}.", unsafe { pow(n, p) }); - - let mut y: f64 = 64.0; - println!("\nSquare root of {y}: {}.", unsafe { sqrt(y) }); - - y = -3.14; - println!("\nSquare root of {y}: {}.", unsafe { sqrt(y) }); //** NaN = NotaNumber -} -``` - -The two `use` declarations at the top are for the Rust data types `c_int` and `c_double`, which match the C types `int` and `double`, respectively. The standard Rust module `std::os::raw` defines fourteen such types for C compatibility. The module `std::ffi` has the same fourteen type definitions together with support for strings. - -The `extern "C"` block above the `main` function then declares the three C library functions called in the `main` function below. Each call uses the standard C function's name, but each call must occur within an `unsafe` block. As every programmer new to Rust discovers, the Rust compiler enforces memory safety with a vengeance. Other languages (in particular, C and C++) do not make the same guarantees. The `unsafe` block thus says: Rust takes no responsibility for whatever unsafe operations may occur in the external call. - -The first program's output is: - -``` -Absolute value of -123: 123. -9 raised to 3: 729 -Square root of 64: 8. -Square root of -3.14: NaN. -``` - -In the last output line, the `NaN` stands for Not a Number: the C `sqrt` library function expects a non-negative value as its argument, which means that the argument -3.14 generates `NaN` as the returned value. - -### Calling C functions involving pointers - -C library functions in security, networking, string processing, memory management, and other areas regularly use pointers for efficiency. For example, the library function `asctime` (time as an ASCII string) expects a pointer to a structure as its single argument. A Rust call to a C function such as `asctime` is thus trickier than a call to `sqrt`, which involves neither pointers nor structures. - -The C structure for the `asctime` function call is of type `struct tm`. A pointer to such a structure also is passed to library function `mktime` (make a time value). The structure breaks a time into units such as the year, the month, the hour, and so forth. The structure's fields are of type `time_t`, an alias for for either `int` (32 bits) or `long` (64 bits). The two library functions combine these broken-apart time pieces into a single value: `asctime` returns a string representation of the time, whereas `mktime` returns a `time_t` value that represents the number of elapsed seconds since the _epoch_, which is a time relative to which a system's clock and timestamp are determined. Typical epoch settings are January 1 00:00:00 (zero hours, minutes, and seconds) of either 1900 or 1970. - -The C program below calls `asctime` and `mktime`, and uses another library function `strftime` to convert the `mktime` returned value into a formatted string. This program acts as a warm-up for the Rust version: - -``` -#include -#include - -int main () { - struct tm sometime; /* time broken out in detail */ - char buffer[80]; - int utc; - - sometime.tm_sec = 1; - sometime.tm_min = 1; - sometime.tm_hour = 1; - sometime.tm_mday = 1; - sometime.tm_mon = 1; - sometime.tm_year = 1; - sometime.tm_hour = 1; - sometime.tm_wday = 1; - sometime.tm_yday = 1; - - printf("Date and time: %s\n", asctime(&sometime)); - - utc = mktime(&sometime); - if( utc < 0 ) { - fprintf(stderr, "Error: unable to make time using mktime\n"); - } else { - printf("The integer value returned: %d\n", utc); - strftime(buffer, sizeof(buffer), "%c", &sometime); - printf("A more readable version: %s\n", buffer); - } - - return 0; -} -``` - -The program outputs: - -``` -Date and time: Fri Feb  1 01:01:01 1901 -The integer value returned: 2120218157 -A more readable version: Fri Feb  1 01:01:01 1901 -``` - -In summary, the Rust calls to library functions `asctime` and `mktime` must deal with two issues: - -- Passing a raw pointer as the single argument to each library function. -- Converting the C string returned from `asctime` into a Rust string. - -### Rust calls to `asctime` and `mktime` - -The `bindgen` utility generates Rust support code from C header files such as `math.h` and `time.h`. In this example, a simplified version of `time.h` will do but with two changes from the original: - -- The built-in type `int` is used instead of the alias type `time_t`. The bindgen utility can handle the `time_t` type but generates some distracting warnings along the way because `time_t` does not follow Rust naming conventions: in `time_t` an underscore separates the `t` at the end from the `time` that comes first; Rust would prefer a CamelCase name such as `TimeT`. -- The type `struct tm` type is given `StructTM` as an alias for the same reason. - -Here is the simplified header file with declarations for `mktime` and `asctime` at the bottom: - -``` -typedef struct tm { - int tm_sec; /* seconds */ - int tm_min; /* minutes */ - int tm_hour; /* hours */ - int tm_mday; /* day of the month */ - int tm_mon; /* month */ - int tm_year; /* year */ - int tm_wday; /* day of the week */ - int tm_yday; /* day in the year */ - int tm_isdst; /* daylight saving time */ -} StructTM; - -extern int mktime(StructTM*); -extern char* asctime(StructTM*); -``` - -With `bindgen` installed, `%` as the command-line prompt, and `mytime.h` as the header file above, the following command generates the required Rust code and saves it in the file `mytime.rs`: - -``` -% bindgen mytime.h > mytime.rs -``` - -Here is the relevant part of `mytime.rs`: - -``` -/* automatically generated by rust-bindgen 0.61.0 */ - -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct tm { - pub tm_sec: ::std::os::raw::c_int, - pub tm_min: ::std::os::raw::c_int, - pub tm_hour: ::std::os::raw::c_int, - pub tm_mday: ::std::os::raw::c_int, - pub tm_mon: ::std::os::raw::c_int, - pub tm_year: ::std::os::raw::c_int, - pub tm_wday: ::std::os::raw::c_int, - pub tm_yday: ::std::os::raw::c_int, - pub tm_isdst: ::std::os::raw::c_int, -} - -pub type StructTM = tm; - -extern "C" { - pub fn mktime(arg1: *mut StructTM) -> ::std::os::raw::c_int; -} - -extern "C" { - pub fn asctime(arg1: *mut StructTM) -> *mut ::std::os::raw::c_char; -} - -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(tm)) - ); - ... -``` - -The Rust structure `struct tm`, like the C original, contains nine 4-byte integer fields. The field names are the same in C and Rust. The `extern "C"` blocks declare the library functions `asctime` and `mktime` as taking one argument apiece, a raw pointer to a mutable `StructTM` instance. (The library functions may mutate the structure via the pointer passed as an argument.) - -The remaining code, under the `#[test]` attribute, tests the layout of the Rust version of the time structure. The test can be run with the `cargo test` command. At issue is that C does not specify how the compiler must lay out the fields of a structure. For example, the C `struct tm` starts out with the field `tm_sec` for the second; but C does not require that the compiled version has this field as the first. In any case, the Rust tests should succeed and the Rust calls to the library functions should work as expected. - -### Getting the second example up and running - -The code generated from `bindgen` does not include a `main` function and, therefore, is a natural module. Below is the `main` function with the `StructTM` initialization and the calls to `asctime` and `mktime`: - -``` -mod mytime; -use mytime::*; -use std::ffi::CStr; - -fn main() { - let mut sometime = StructTM { - tm_year: 1, - tm_mon: 1, - tm_mday: 1, - tm_hour: 1, - tm_min: 1, - tm_sec: 1, - tm_isdst: -1, - tm_wday: 1, - tm_yday: 1 - }; - - unsafe { - let c_ptr = &mut sometime; // raw pointer - - // make the call, convert and then own - // the returned C string - let char_ptr = asctime(c_ptr); - let c_str = CStr::from_ptr(char_ptr); - println!("{:#?}", c_str.to_str()); - - let utc = mktime(c_ptr); - println!("{}", utc); - } -} -``` - -The Rust code can be compiled (using either `rustc` directly or `cargo`) and then run. The output is: - -``` -Ok( -    "Mon Feb  1 01:01:01 1901\n", -) -2120218157 -``` - -The calls to the C functions `asctime` and `mktime` again must occur inside an `unsafe` block, as the Rust compiler cannot be held responsible for any memory-safety mischief in these external functions. For the record, `asctime` and `mktime` are well behaved. In the calls to both functions, the argument is the raw pointer `ptr`, which holds the (stack) address of the `sometime` structure. - -The call to `asctime` is the trickier of the two calls because this function returns a pointer to a C `char`, the character `M` in `Mon` of the text output. Yet the Rust compiler does not know where the C string (the null-terminated array of `char`) is stored. In the static area of memory? On the heap? The array used by the `asctime` function to store the text representation of the time is, in fact, in the static area of memory. In any case, the C-to-Rust string conversion is done in two steps to avoid compile-time errors: - -- The call `Cstr::from_ptr(char_ptr)` converts the C string to a Rust string and returns a reference stored in the `c_str` variable. -- The call to `c_str.to_str()` ensures that `c_str` is the owner. - -The Rust code does not generate a human-readable version of the integer value returned from `mktime`, which is left as an exercise for the interested. The Rust module `chrono::format` includes a `strftime` function, which can be used like the C function of the same name to get a text representation of the time. - -### Calling C with FFI and bindgen - -The Rust FFI and the `bindgen` utility are well designed for making Rust calls out to C libraries, whether standard or third-party. Rust talks readily to C and thereby to any other language that talks to C. For calling relatively simple library functions such as `sqrt`, the Rust FFI is straightforward because Rust's primitive data types cover their C counterparts. - -For more complicated interchanges—​in particular, Rust calls to C library functions such as `asctime` and `mktime` that involve structures and pointers—​the `bindgen` utility is the way to go. This utility generates the support code together with appropriate tests. Of course, the Rust compiler cannot assume that C code measures up to Rust standards when it comes to memory safety; hence, calls from Rust to C must occur in `unsafe` blocks. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/rust-calls-c-library-functions - -作者:[Marty Kalin][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/mkalindepauledu -[b]: https://github.com/lkxed -[1]: https://en.wikipedia.org/wiki/Lingua_franca -[2]: https://github.com/rust-lang/rust-bindgen -[3]: https://condor.depaul.edu/mkalin - diff --git a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md new file mode 100644 index 0000000000..c318bfa2dd --- /dev/null +++ b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md @@ -0,0 +1,287 @@ +[#]: subject: "Introducing Rust calls to C library functions" +[#]: via: "https://opensource.com/article/22/11/rust-calls-c-library-functions" +[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +介绍从 Rust 调用 C 库函数 +====== + +为什么要从 Rust 调用 C 函数?简短的回答就是软件库。冗长的答案则触及到 C 在众多编程语言中的地位,特别是相对 Rust 而言。C,C++,还有 Rust 都是系统语言,这意味着程序员会访问机器层面的数据类型与操作。在这三个系统语言中,C 依然占据主导地位。现代操作系统的内核大致用 C 来写,其余部分依靠汇编语言来补充。在标准系统函数库中,输入与输出、数字处理、加密计算、安全、网络、国际化、字符串处理、内存管理,还用更多,都大体用 C 来写。这些函数库所代表的是一个庞大的基础架构,支撑着用其他语言写出来的应用。Rust 发展至今也有着可观的函数库,但是 C 的函数库——自1970年代就已存在,迄今还在蓬勃发展——是一个无法被忽视的资源。最后一点是, C 依然还是编程语言中的 [lingua franca][1]:大部分语言都与 C 交流,透过 C,语言互相交流。 + +### 两个概念证明的例子 + +Rust 支持 FFI (外部函数接口)用以调用 C 函数。任何 FFI 所需要面临的问题是调用方语言是否包括了被调用语言的数据类型。例如,`ctypes` 是 Python 调用 C 的 FFI,但是 Python 并没有包括 C 所支持的无符号整数类型。结果就是,`ctypes` 必须寻求解决方案。 + +与之相对的是,Rust 包含了所有 C 中的原始(即,机器层面)类型。比如说,Rust 中的 `i32` 类对应 C 中的 `int` 类。C 特别声明了 `char` 类必须是一个字节大小,而其他类型,比如 `int`,必须至少是这个大小(LCTT 译注:原文处有评论指出 `int` 大小依照 C 标准应至少为2字节);然而如今所有合理的 C 编译器都支持四字节的 `int`,以及八字节的 `double`(Rust 中则是 `f64` 类),以此类推。 + +面向 C 的 FFI 所面临的另一个挑战是:FFI 是否能够处理 C 的裸指针,包括指向被看作是字符串的数组指针。C 没有字符串类型,它通过结合字符组和一个不会被打印的终止符来实现字符串,大名鼎鼎的_空终止符_。与之相对,Rust 有两个字符串类型:`String` 和 `&str` (字符串切片)。问题是,Rust FFI 是否能将 C 字符串转化成 Rust 字符串——答案是_肯定的_。 + +出于对效率的追求,结构体指针在 C 中也很常见。一个 C 结构体在作为一个函数的参数或者返回值的时候,其默认行为是传递值(即,一个字节一个字节的复制)。C 结构体,如同它在 Rust 中的对应部分一样,可以包含数组和嵌套其他结构体,所以其大小是不定的。结构体在两种语言中的最佳用法是传递或返回引用,也就是说,传递或返回结构体的地址而不是结构体本身的复制。Rust 再一次成功处理了 C 的结构体指针,其在 C 函数库中十分普遍。 + +第一段代码案例专注于调用相对简单的 C 库函数,比如 `abs`(绝对值)和 `sqrt`(平方根)。这些函数使用非指针标量参数并返回一个非指针标量值。第二段代码案例则涉及了字符串和结构体指针,在这里会介绍工具 [bindgen][2],其通过 C 接口(头)文件生成 Rust 代码,比如 `math.h` 以及 `time.h`。C 头文件声明了 C 函数的调用语法并定义了会被调用的结构体。两段代码都能在[我的主页上][3]找到。 + +### 调用相对简单的 C 函数 + +第一段代码案例有四处 Rust 对标准数学库内的 C 函数的调用:两处分别调用了 `abs`(绝对值)和 `pow`(幂),两处重复调用了 `sqrt`(平方根)。这个程序可以直接用 `rustc` 编译器进行构建,或者使用更方便的命令 `cargo build`: + +``` +use std::os::raw::c_int; // 32位 +use std::os::raw::c_double; // 64位 + +// 从标准库 libc 中引入三个函数。 +// 此处是 Rust 对三个 C 函数的声明: +extern "C" { + fn abs(num: c_int) -> c_int; + fn sqrt(num: c_double) -> c_double; + fn pow(num: c_double, power: c_double) -> c_double; +} + +fn main() { + let x: i32 = -123; + println!("\n{x}的绝对值是: {}.", unsafe { abs(x) }); + + let n: f64 = 9.0; + let p: f64 = 3.0; + println!("\n{n}的{p}次方是: {}.", unsafe { pow(n, p) }); + + let mut y: f64 = 64.0; + println!("\n{y}的平方根是: {}.", unsafe { sqrt(y) }); + + y = -3.14; + println!("\n{y}的平方根是: {}.", unsafe { sqrt(y) }); //** NaN = NotaNumber(不是数字) +} +``` + +顶部的两个 `use` 声明是 Rust 的数据类型 `c_int` 和 `c_double`,对应 C 类型里的 `int` 和 `double`。Rust 标准模块 `std::os::raw` 定义了十四个类似的类型以确保跟 C 的兼容性。模块 `std::ffi` 中有十四个同样的类型定义以及对字符串的支持。 + +位于 `main` 函数上的 `extern "C"` 区域声明了三个 C 库函数,这些函数会在 `main` 函数内被调用。每次调用都使用了标准的 C 函数名,但每次调用都必须发生在一个 `unsafe` 区域内。正如每个新接触 Rust 的程序员所发现的那样,Rust 编译器极度强制内存安全。其他语言(特别是 C 和 C++)作不出相同的保证。`unsafe` 区域其实是说:Rust 对外部调用中可能存在的不安全行为不负责。 + +第一个程序输出为: + +``` +-123的绝对值是: 123. +9的3次方是: 729. +64的平方根是: 8. +-3.14的平方根是: NaN. +``` + +输出的最后一行的 `NaN` 表示不是数字 (Not a Number):C 库函数 `sqrt` 期待一个非负值作为参数,这使得参数-3.14生成了 `NaN` 作为返回值。 + +### 调用涉及指针的 C 函数 + +C 库函数为了提高效率经常在安全、网络、字符串处理、内存管理,以及其他领域中使用指针。例如,库函数 `asctime`(时间作为 ASCII 字符串)期待一个结构体指针作为其参数。Rust 调用类似 `asctime` 的 C 函数就会比调用 `sqrt` 要更加棘手一些,后者既没有牵扯到指针,也不涉及到结构体。 + +函数 `asctime` 调用的 C 结构体类型为 `struct tm`。一个指向此结构体的指针会作为参数被传递给库函数 `mktime`(时间作为值)。此结构体会将时间拆分成诸如年、月、小时之类的单位。此结构体的字段 (fields) 类型为 `time_t`,是 `int`(32位)和 `long`(64位)的异名。两个库函数将这些破碎的时间碎片组合成了一个单一值:`asctime` 返回一个字符串用以表达时间,而 `mktime` 返回一个 `time_t` 值表示自 [_epoch_][4],即系统时钟和时间戳被决定的那一刻,以来所经历的秒数。典型的 epoch 设置为1900年或1970年,1月1日,0时0分0秒。 + +以下的 C 程序调用了 `asctime` 和 `mktime`,并使用了其他库函数 `strftime` 来将 `mktime` 的返回值转化成一个格式化的字符串。这个程序可被视作 Rust 对应版本的预热: + +``` +#include +#include + +int main () { + struct tm sometime; /* 时间被打破细分 */ + char buffer[80]; + int utc; + + sometime.tm_sec = 1; + sometime.tm_min = 1; + sometime.tm_hour = 1; + sometime.tm_mday = 1; + sometime.tm_mon = 1; + sometime.tm_year = 1; + sometime.tm_hour = 1; /*LCTT 译注:这里作者多敲了一行*/ + sometime.tm_wday = 1; + sometime.tm_yday = 1; + + printf("日期与时间: %s\n", asctime(&sometime)); + + utc = mktime(&sometime); + if( utc < 0 ) { + fprintf(stderr, "错误: mktime 无法生成时间\n"); + } else { + printf("返回的整数值: %d\n", utc); + strftime(buffer, sizeof(buffer), "%c", &sometime); + printf("更加可读的版本: %s\n", buffer); + } + + return 0; +} +``` + +程序输出为: + +``` +日期与时间: Fri Feb  1 01:01:01 1901 +返回的整数值: 2120218157 +更加可读的版本: Fri Feb  1 01:01:01 1901 +``` + +(LCTT 译注:如果你尝试在自己电脑上运行这段代码,然后得到了一行关于 `mktime` 的错误信息,然后又在网上随便找了个在线 C 编译器,复制代码然后得到了跟这里的结果有区别但是没有错误的结果,不要慌,我的电脑上也是这样的。导致本地机器上 `mktime` 失败的原因是作者没有设置 `tm_isdst`,这个是用来标记夏令时的 flag。[`tm_isdst` 大于零则夏令时生效中,等于零则不生效,小于零标记未知][5]。加入 `sometime.tm_isdst = 0` 或 `= -1` 后应该就能得到跟在线编译器大致一样的结果。不同的地方在于结果第一行我得到的是 `Mon Feb ...`,这个与作者代码中 `sometime.tm_wday = 1` 对应,这里因该是作者写错了;第二行我和作者和网上得到的数字都不一样,这大概是合理的,因为这与机器的 epoch 有关;第三行我跟作者的结果是一样的,1901年2月1日也确实是周五,这是因为 [`mktime` 其实会修正时间参数中不合理的地方][6]。至于夏令时具体是如何影响 `mktime` 这个问题,我能查到的只有 `mktime` 的计算受时区影响,更底层的原因我也不知道了。) + +总的来说,Rust 在调用库函数 `asctime` 和 `mktime` 时,必须处理以下两个问题: + +- 将裸指针作为唯一参数传递给每个库函数。 +- 把从 `asctime` 返回的 C 字符串转化为 Rust 字符串。 + +### Rust 调用 `asctime` 和 `mktime` + +工具 `bindgen` 会根据类似 `math.h` 和 `time.h` 之类的 C 头文件生成 Rust 支持的代码。下面这个简化版的 `time.h` 就可以用来做例子,简化版与原版主要有两个不同: + +- 内置类型 `int` 被用来取代异名类型 `time_t`。工具 bindgen 可以处理 `time_t` 类但是会生成一些烦人的警告,因为 `time_t` 不符合 Rust 的命名规范:`time_t` 以下划线区分 `time` 和 `t`;Rust 更偏好驼峰式命名方法,比如 `TimeT`。 +- 出于同样的原因,这里选择 `StructTM` 作为 `struct tm` 的异名。 + +以下是一份简化版的头文件,`mktime` 和 `asctime` 在文件底部: + +``` +typedef struct tm { + int tm_sec; /* 秒 */ + int tm_min; /* 分钟 */ + int tm_hour; /* 小时 */ + int tm_mday; /* 日 */ + int tm_mon; /* 月 */ + int tm_year; /* 年 */ + int tm_wday; /* 星期 */ + int tm_yday; /* 一年中的第几天 */ + int tm_isdst; /* 夏令时 */ +} StructTM; + +extern int mktime(StructTM*); +extern char* asctime(StructTM*); +``` + +`bindgen` 安装好后,`%` 作为命令行提示,`mytime.h` 作为以上提到的头文件,以下命令可以生成所需的 Rust 代码并将其保存到文件 `mytime.rs`: + +``` +% bindgen mytime.h > mytime.rs +``` + +以下是 `mytime.rs` 中的重要部分: + +``` +/* automatically generated by rust-bindgen 0.61.0 */ + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, +} + +pub type StructTM = tm; + +extern "C" { + pub fn mktime(arg1: *mut StructTM) -> ::std::os::raw::c_int; +} + +extern "C" { + pub fn asctime(arg1: *mut StructTM) -> *mut ::std::os::raw::c_char; +} + +#[test] +fn bindgen_test_layout_tm() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 36usize, + concat!("Size of: ", stringify!(tm)) + ); + ... +``` + +Rust 结构体 `struct tm`,跟原本在 C 中的一样,包含了九个4字节的整型字段。这些字段名称在 C 和 Rust 中是一样的。`extern "C"` 区域声明了库函数 `astime` 和 `mktime` 分别需要只一个参数,一个指向可变实例 `extern "C"` 的裸指针。(库函数可能会通过指针改变作为参数传递的结构体。) + +`#[test]` 属性下的其余代码是用来测试 Rust 版的时间结构体的布局。通过命令 `cargo test` 可以进行这些测试。一个 C 不会声明的问题是编译器应该如何对结构体中的字段进行布局。比如说,C 的 `struct tm` 以字段 `tm_sec` 开头用以表示秒;但是 C 不需要编译版本遵循这个排序。不管怎样,Rust 测试应该会成功而 Rust 对库函数的调用也应如预期般工作。 + +### 设置好第二个案例并开始运行 + +从 `bindgen` 生成的代码不包含 `main` 函数,所以是一个天然的模块。以下是一个 `main` 函数初始化了 `StructTM` 并调用了 `asctime` 和 `mktime`: + +``` +mod mytime; +use mytime::*; +use std::ffi::CStr; + +fn main() { + let mut sometime = StructTM { + tm_year: 1, + tm_mon: 1, + tm_mday: 1, + tm_hour: 1, + tm_min: 1, + tm_sec: 1, + tm_isdst: -1, + tm_wday: 1, + tm_yday: 1 + }; + + unsafe { + let c_ptr = &mut sometime; // 裸指针 + + // 调用,转化,并拥有 + // 返回的 C 字符串 + let char_ptr = asctime(c_ptr); + let c_str = CStr::from_ptr(char_ptr); + println!("{:#?}", c_str.to_str()); + + let utc = mktime(c_ptr); + println!("{}", utc); + } +} +``` + +这段 Rust 代码可以被编译(直接用 `rustc` 或使用 `cargo`)并运行。输出为: + +``` +Ok( +    "Mon Feb  1 01:01:01 1901\n", +) +2120218157 +``` + +对 C 函数 `asctime` 和 `mktime` 的调用必须再一次被放在 `unsafe` 区域内,因为 Rust 编译器无法对这些外部函数的潜在内存安全风险负责。此处声明一下,`asctime` 和 `mktime` 并没有安全风险。调用的两个函数的参数是裸指针 `ptr`,其指向结构体 `sometime` (在栈 (stack) 中)的地址。 + +`asctime` 是两个函数中调用起来更棘手的那个,因为这个函数返回的是一个指向 C `char` 的指针,如果函数返回 `Mon` 那么指针就指向 `M`。但是 Rust 编译器并不知道 C 字符串 (`char` 的空终止数组)的储存位置。是内存里的静态空间?还是堆 (heap)?`asctime` 函数内用来储存时间的文字表达的数组实际上是在内存的静态空间里。无论如何,C 到 Rust 字符串转化需要两个步骤来避免编译错误: + +- 调用 `Cstr::from_ptr(char_ptr)` 来将 C 字符串转化为 Rust 字符串并返回一个引用储存在变量 `c_str` 中。 +- 对 `c_str.to_str()` 的调用确保了 `c_str` 是所有者。 + +Rust 代码不会增加从 `mktime` 返回的整型值的易读性,这一部分留作课外作业给感兴趣的人去探究。Rust 模板 `chrono::format` 也有一个 `strftime` 函数,它可以被当作 C 的同名函数来使用,两者都是获取时间的文字表达。 + +### 使用 FFI 和 bindgen 调用 C + +Rust FFI 和工具 `bindgen` 都能够出色地协助 Rust 调用 C 库,无论是标准库还是第三方库。Rust 轻松地与 C 交流,并透过 C 与其他语言交流。对于调用像 `sqrt` 一样简单的库函数,Rust FFI 表现直截了当,这是因为 Rust 的原始数据类型覆盖了它们在 C 中的对应部分。 + +对于更为复杂的交流——特别是 Rust 调用像 `asctime` 和 `mktime` 一样,会涉及到结构体和指针的 C 库函数——工具 `bindgen` 是优秀的帮手。这个工具会生成支持代码以及所需要的测试。当然,Rust 编译器无法假设 C 代码对内存安全的考虑会符合 Rust 的标准;因此,Rust 必须在 `unsafe` 区域内调用 C。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/rust-calls-c-library-functions + +作者:[Marty Kalin][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/mkalindepauledu +[b]: https://github.com/lkxed +[1]: https://baike.baidu.com/item/lingua%20franka/5359711 +[2]: https://github.com/rust-lang/rust-bindgen +[3]: https://condor.depaul.edu/mkalin +[4]: https://baike.baidu.com/item/UNIX时间/8932323 +[5]: https://cplusplus.com/reference/ctime/tm/ +[6]: https://cplusplus.com/reference/ctime/mktime/ From 4d68f76999a3729fbd9c3303f2e4df66a6a09a00 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Mon, 12 Dec 2022 16:28:49 +0800 Subject: [PATCH 2307/3123] first translation --- ...ng Linus-s Law for open source security.md | 90 ------------------ ...ng Linus-s Law for open source security.md | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 90 deletions(-) delete mode 100644 sources/talk/20210209 Understanding Linus-s Law for open source security.md create mode 100644 translated/talk/20210209 Understanding Linus-s Law for open source security.md diff --git a/sources/talk/20210209 Understanding Linus-s Law for open source security.md b/sources/talk/20210209 Understanding Linus-s Law for open source security.md deleted file mode 100644 index 258d401019..0000000000 --- a/sources/talk/20210209 Understanding Linus-s Law for open source security.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (CanYellow) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Understanding Linus's Law for open source security) -[#]: via: (https://opensource.com/article/21/2/open-source-security) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) - -Understanding Linus's Law for open source security -====== -Linus's Law is that given enough eyeballs, all bugs are shallow. How -does this apply to open source software security? -![Hand putting a Linux file folder into a drawer][1] - -In 2021, there are more reasons why people love Linux than ever before. In this series, I'll share 21 different reasons to use Linux. This article discusses Linux's influence on the security of open source software. - -An often-praised virtue of open source software is that its code can be reviewed (or "audited," as security professionals like to say) by anyone and everyone. However, if you actually ask many open source users when the last time they reviewed code was, you might get answers ranging from a blank stare to an embarrassed murmur. And besides, there are some really big open source applications out there, so it can be difficult to review every single line of code effectively. - -Extrapolating from these slightly uncomfortable truths, you have to wonder: When nobody looks at the code, does it really matter whether it's open or not? - -### Should you trust open source? - -We tend to make a trite assumption in hobbyist computing that open source is "more secure" than anything else. We don't often talk about what that means, what the basis of comparison is ("more" secure than what?), or how the conclusion has even been reached. It's a dangerous statement to make because it implies that as long as you call something _open source_, it automatically and magically inherits enhanced security. That's not what open source is about, and in fact, it's what open source security is very much against. - -You should never assume an application is secure unless you have personally audited and understood its code. Once you have done this, you can assign _ultimate trust_ to that application. Ultimate trust isn't a thing you do on a computer; it's something you do in your own mind: You trust software because you choose to believe that it is secure, at least until someone finds a way to exploit that software. - -You're the only person who can place ultimate trust in that code, so every user who wants that luxury must audit the code for themselves. Taking someone else's word for it doesn't count! - -So until you have audited and understood a codebase for yourself, the maximum trust level you can give to an application is a spectrum ranging from approximately, _not trustworthy at all_ to _pretty trustworthy_. There's no cheat sheet for this. It's a personal choice you must make for yourself. If you've heard from people you strongly trust that an application is secure, then you might trust that software more than you trust something for which you've gotten no trusted recommendations. - -Because you cannot audit proprietary (non-open source) code, you can never assign it _ultimate trust_. - -### Linus's Law - -The reality is, not everyone is a programmer, and not everyone who is a programmer has the time to dedicate to reviewing hundreds and hundreds of lines of code. So if you're not going to audit code yourself, then you must choose to trust (to some degree) the people who _do_ audit code. - -So exactly who does audit code, anyway? - -Linus's Law asserts that _given enough eyeballs, all bugs are shallow_, but we don't really know how many eyeballs are "enough." However, don't underestimate the number. Software is very often reviewed by more people than you might imagine. The original developer or developers obviously know the code that they've written. However, open source is often a group effort, so the longer code is open, the more software developers end up seeing it. A developer must review major portions of a project's code because they must learn a codebase to write new features for it. - -Open source packagers also get involved with many projects in order to make them available to a Linux distribution. Sometimes an application can be packaged with almost no familiarity with the code, but often a packager gets familiar with a project's code, both because they don't want to sign off on software they don't trust and because they may have to make modifications to get it to compile correctly. Bug reporters and triagers also sometimes get familiar with a codebase as they try to solve anomalies ranging from quirks to major crashes. Of course, some bug reporters inadvertently reveal code vulnerabilities not by reviewing it themselves but by bringing attention to something that obviously doesn't work as intended. Sysadmins frequently get intimately familiar with the code of an important software their users rely upon. Finally, there are security researchers who dig into code exclusively to uncover potential exploits. - -### Trust and transparency - -Some people assume that because major software is composed of hundreds of thousands of lines of code, it's basically impossible to audit. Don't be fooled by how much code it takes to make an application run. You don't actually have to read millions of lines. Code is highly structured, and exploitable flaws are rarely just a single line hidden among the millions of lines; there are usually whole functions involved. - -There are exceptions, of course. Sometimes a serious vulnerability is enabled with just one system call or by linking to one flawed library. Luckily, those kinds of errors are relatively easy to notice, thanks to the active role of security researchers and vulnerability databases. - -Some people point to bug trackers, such as the [Common Vulnerabilities and Exposures (CVE)][2] website, and deduce that it's actually as plain as day that open source isn't secure. After all, hundreds of security risks are filed against lots of open source projects, out in the open for everyone to see. Don't let that fool you, though. Just because you don't get to see the flaws in closed software doesn't mean those flaws don't exist. In fact, we know that they do because exploits are filed against them, too. The difference is that _all_ exploits against open source applications are available for developers (and users) to see so those flaws can be mitigated. That's part of the system that boosts trust in open source, and it's wholly missing from proprietary software. - -There may never be "enough" eyeballs on any code, but the stronger and more diverse the community around the code, the better chance there is to uncover and fix weaknesses. - -### Trust and people - -In open source, the probability that many developers, each working on the same project, have noticed something _not secure_ but have all remained equally silent about that flaw is considered to be low because humans rarely mutually agree to conspire in this way. We've seen how disjointed human behavior can be recently with COVID-19 mitigation: - - * We've all identified a flaw (a virus). - * We know how to prevent it from spreading (stay home). - * Yet the virus continues to spread because one or more people deviate from the mitigation plan. - - - -The same is true for bugs in software. If there's a flaw, someone noticing it will bring it to light (provided, of course, that someone sees it). - -However, with proprietary software, there can be a high probability that many developers working on a project may notice something not secure but remain equally silent because the proprietary model relies on paychecks. If a developer speaks out against a flaw, then that developer may at best hurt the software's reputation, thereby decreasing sales, or at worst, may be fired from their job. Developers being paid to work on software in secret do not tend to talk about its flaws. If you've ever worked as a developer, you've probably signed an NDA, and you've been lectured on the importance of trade secrets, and so on. Proprietary software encourages, and more often enforces, silence even in the face of serious flaws. - -### Trust and software - -Don't trust software you haven't audited. - -If you must trust software you haven't audited, then choose to trust code that's exposed to many developers who independently are likely to speak up about a vulnerability. - -Open source isn't inherently more secure than proprietary software, but the systems in place to fix it are far better planned, implemented, and staffed. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/2/open-source-security - -作者:[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/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer) -[2]: https://cve.mitre.org diff --git a/translated/talk/20210209 Understanding Linus-s Law for open source security.md b/translated/talk/20210209 Understanding Linus-s Law for open source security.md new file mode 100644 index 0000000000..70ce78b0dd --- /dev/null +++ b/translated/talk/20210209 Understanding Linus-s Law for open source security.md @@ -0,0 +1,91 @@ +[#]: collector: (lujun9972) +[#]: translator: (CanYellow) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Understanding Linus's Law for open source security) +[#]: via: (https://opensource.com/article/21/2/open-source-security) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) + +理解开源安全中的李纳斯定律 +====== +李纳斯定律 (Linus's Law) 即“只要有足够多的眼睛关注,任何漏洞都无处隐藏” (given enough eyeballs, all bugs are shallow)。那么李纳斯定律是如何应用于开源软件安全的呢? + +![Hand putting a Linux file folder into a drawer][1] + +2021 年,有更多的原因使人们比以往更钟情 Linux 。在本系列中,我将分享 21 个使用 Linux 的不同原因。 这篇文章则讨论 Linux 对开源软件安全的影响。 + +开源软件的一个常被赞扬的优点是它的代码能够被任何人检查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,高效地审查每一行代码也是困难的。 + +根据上述这些稍显不安的事实,我们不得不思考:如果没有人察看这些代码,它是开源还是闭源真的有关系吗? + + +### 你应该相信开源吗? + +计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么更安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全所非常反对的。 + +除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它_最高信任_。_最高信任_不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。 + +使用者本人是唯一可以对软件代码最高信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。 + +只有你已经亲自审计并理解了软件代码,你才可以对一个应用程序给予最高信任,最高信任的范围可以是从_根本不信任_到_相当信任_之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经听说了一款应用程序的安全性是可以信任的,相比没有任何建议的情况而言,你可能更加信任它。 + +然而,因为无法审计专有(闭源)软件代码,你不可能给予它_最高信任_。 + +### 李纳斯定律 + +现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择相信(一定程度上)_亲自_审查了代码的人。 + +那么,有哪些人会审计代码呢? + +李纳斯定律声称_只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审计。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。 + +同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉基本代码的,因为他们需要尝试解决的问题小到运行异常,大到程序崩溃。当然,一些漏洞报告人员无意中揭示了代码漏洞不是通过亲自审查项目代码而是通过关注明显未按预期工作的现象。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,是安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。 + +### 信任与透明 + +很多人先入为主的认为大型软件的审计是基本不可能的,因为它由数以万计的代码行组成。不要被软件运行所需的代码量欺骗了。我们不需要真的阅读数以万计的代码行。代码是高度结构化的,可被利用的代码漏洞仅仅只是其中的一行,不过它通常影响软件的全部功能。 + +当然,也有例外。有时仅仅一个系统调用或者链接一个有缺陷的库文件就可能引入一系列漏洞。幸运的是,多亏安全研究人员以及漏洞数据库所扮演的积极角色,这些错误相对而言是容易发现的。 + +一些人指向错误追踪系统,比如 [通用漏洞披露 (CVE)][2] 网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们不能发现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的_所有的漏洞_从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。 + +对于任何代码而言,可能永远没有“足够的眼睛”来发现漏洞,但是开发社区越壮大、越多样化,越有机会发现和修复代码中的缺陷。 + +### 信任与人 + +在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞却保持沉默的的可能性是微乎其微的,因为人们彼此间不会同意以这样的方式密谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样: + + * 我们都识别出了漏洞(病毒)。 + * 我们知晓如何避免它传播(待在家里)。 + * 然而病毒还是在持续传播,因为总是有一个或者多个人偏离了消减疫情的计划。 + +开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。 + +然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于回报。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。付费秘密开发软件的开发者倾向于不讨论软件的缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (译者注:Non-Disclosure Agreement,保密协议),你可能被培训过商业秘密的重要性等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。 + + +### 信任与软件 + +不要信任未经你审计的软件。 + +如果你必须相信未经你审计的软件,那么选择相信已经面向那些更有可能将软件缺陷公之于众的开发者公开代码的软件。 + +开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划实施和人员配置。 + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/2/open-source-security + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[校对者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/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer) +[2]: https://cve.mitre.org From c40c6db51b7fd50fcbf8f46d60a1144e451987df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 12 Dec 2022 18:52:01 +0800 Subject: [PATCH 2308/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221212.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Linux=20Kernel=206.1=20Released=20With=20Initial=20Rust=20Code.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...inux Kernel 6.1 Released With Initial Rust Code.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md diff --git a/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md new file mode 100644 index 0000000000..f406377262 --- /dev/null +++ b/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md @@ -0,0 +1,146 @@ +[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code" +[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Kernel 6.1 Released With Initial Rust Code +====== + +Linux Kernel 6.1 is now available! Potentially an LTS version considering it is the last stable release of the year. + +![Linux Kernel 6.1 Released With Initial Rust Code][1] + +Linux Kernel 6.1 is finally here, and it comes bearing early Christmas gifts in the form of improvements and support for new hardware. 🎄 + +It comes a few months after the release of Linux Kernel 6.0, where the naming scheme was changed from 5.x.x to 6.x in favor of a less confusing alternative. + +As usual, the last kernel release of the year **may be considered a long-term release version** that gets support for a couple of years. + +#### Suggested Read 📖 + +Linux Kernel 6.1 promises many improvements and includes initial support for unreleased hardware by AMD and Intel. + +With the announcement, Linus Torvalds mentions: + +> So here we are, a week late, but last week was nice and slow, and I'm much happier about the state of 6.1 than I was a couple of weeks ago when things didn't seem to be slowing down. Of course, that means that now we have the merge window from hell, just before the holidays, with me having some pre-holiday travel coming up too. So while delaying things for a week was the right thing to do, it does make the timing for the 6.2 merge window awkward. + +He further adds that he will be stricter about the merge window rules considering it should be a calm holiday season for everyone. + +### 🆕 Linux Kernel 6.1: What’s New? + +With this release, we see various changes, such as improved support for ARM SoCs, initial support for Intel's upcoming Meteor lake CPUs, and AMD's RDNA 3 GPUs. + +You can find more technical details in its [announcement post][2]. + +#### Experimental Support for Rust + +![linux 6.1 rust code][3] + +While we expected this to happen with Linux Kernel 6.0, it arrives with Linux Kernel 6.1, allowing developers to write kernel code in Rust. + +#### Enablement Of Intel Meteor Lake + +![intel logo][4] + +Intel's open-source developers have been hard at work to provide initial support for the upcoming Meteor Lake chips. + +Dubbed as Intel's first 7 nm microarchitecture, developers have pushed various commits to DRM-next. + +These include a variety of firmware commits with initial support for the Meteor Lake CPUs and their integrated GPUs. + +#### Initial Support For AMD RDNA 3 Graphics + +![amd logo][5] + +AMD has been adding code for the RDNA 3 graphics architecture to Linux Kernel 6.1 for some time now. + +This includes support for their upcoming GPUs and various fixes for their old GPU products. + +You can go through the full list of patches [here][6]. + +#### Optimizations for AMD PCs + +![pc optimizations amd][7] + +AMD PMF has been introduced with this kernel release; it stands for AMD Platform Management Framework. + +This driver is meant to provide a framework for the quieter and more efficient running of AMD PCs. + +It makes use of the onboard sensors in tandem with AMD's various thermal and power kernel drivers to achieve that. + +#### Improved ARM SoC Support + +![arm soc][8] + +Linux Kernel 6.1 brings in support for additional ARM SoCs, such as: + +- MediaTek MT8186 +- Texas Instruments AM62A +- NXP i.MX8DXL +- Various variants of Qualcomm IPQ8064 + +The kernel also features support for a few smartphones such as PINE64 PinePhone Pro, Sony Xperia 1 IV, and Samsung Galaxy E5/E7/Grand Max. + +#### Storage Improvements + +The kernel has a lot of improvements for storage. + +For instance, Btrfs is bringing async buffered writes with this update, resulting in more than 2x throughput improvement. + +Then there are the improvements to EXT4 with performance optimization and a few bug fixes. + +Alongside this, [EROFS][9] has introduced FSCache-based shared domain support to Linux Kernel 6.1. + +#### 🛠️ Other Improvements + +Those are not the only improvements being offered with Linux Kernel 6.1; here are some of the other notable ones: + +- **Support for Microsoft Surface Pro 9 and Surface Laptop 5.** +- **Enablement of AMD Zen 4 LbrExtV2.** +- **AMD CPU Cache-To-Cache & Memory Reporting Capabilities.** +- **Introduction of AMD IOMMU v2.** +- **Preparations for Wi-Fi 802. 11be/Wi-Fi 7.** + +### How to Install Linux Kernel 6.1? + +You can easily upgrade if you use an Arch-based distro or Fedora. + +Unfortunately, if you are using other Linux distributions (Pop!_OS and Linux Lite can be an exception to some extent), you may not receive an upgrade directly from your distro. + +However, almost all Linux distributions explicitly allow you to install the latest kernel. Here's a guide for Ubuntu 👇 + +So, if you are feeling adventurous (and know what you are doing), you can find the newer kernel listed on [Linux Kernel Archives][10]. You can download the [tarball][11] to test it out. + +However, as always, we recommend waiting for your Linux distribution to push an update if you do not want to take any chances. It is best to stick to what’s being offered for your Linux distribution by default. + +[Download Linux 6.1][12] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-6-1-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png +[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u +[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png +[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png +[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png +[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html +[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png +[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png +[9]: https://en.wikipedia.org/wiki/EROFS +[10]: https://www.kernel.org/ +[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz +[12]: https://www.kernel.org From 63a13122d5b96d585b32fe650a8e88029e35a46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 12 Dec 2022 18:52:49 +0800 Subject: [PATCH 2309/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221212.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Install=20the=20Minimalist=20ArchBang=20Linux=20Dist?= =?UTF-8?q?ro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Install the Minimalist ArchBang Linux Distro.md | 301 ++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md diff --git a/sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md b/sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md new file mode 100644 index 0000000000..2a0195401f --- /dev/null +++ b/sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md @@ -0,0 +1,301 @@ +[#]: subject: "How to Install the Minimalist ArchBang Linux Distro" +[#]: via: "https://itsfoss.com/install-archbang/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install the Minimalist ArchBang Linux Distro +====== + +ArchBang is a minimal and lightweight [Arch Linux based distribution][1]. It uses the i3 window manager. With its minimal nature, ArchBang can help you revive your old computer or low-end devices. + +There are two ways to install Arch Bang: + +- Using the guided installer script +- Following Arch wiki + +No prizes for guessing that using the guided installer script will be easier to follow. + +In this tutorial, I’ll show you the steps for installing ArchBang with its text-based installer script. + +Please [check if your computer has UEFI or the legacy BIOS system][2]. Some steps are different for them. + +I have performed the demo in a virtual machine. And hence the wifi configuration part is not there. Internet connection is not mandatory here; you can also install it offline. You can connect to wifi from within the system after successfully installing ArchBang. + +Also, this method will remove any other operating system installed on your disk. Please be mindful of that. + +### Download ArchBang Live ISO + +To install ArchBang, you need the live ISO first. + +You can go to their [official website and download the required ISO][3], as shown in the below screenshot. + +![go to archbang iso images to download the iso file from sourceforge][4] + +It brings you to their Sourceforge page. Download the ISO, which is approximately 1.2 GiB in size. + +### Create the Live USB of ArchBang + +Once downloaded, you should make a bootable USB of ArchBang. You can [use software like Balena Etcher][5] to create it. It’s quite simple to use. + +Plug in your USB, browse to the downloaded ISO file and then hit the Flash button. + +![etcher flash][6] + +### Using text-based ArchBang installer + +ArchBang live ISO will bring you to the default i3 desktop with conky running. + +![archbang live iso home screen][7] + +You have two methods to start the installation process: + +- Press **Super + I** (as per desktop conky) to start installation directly. +- Press **Super + T** to enter the terminal and use the command: `sudo abinstall` + +A terminal with several options will appear when you do the above step: + +![archbang installer][8] + +The above screenshot shows the main menu of ArchBang installer. You can select each section with the associated number. + +When you complete each category of the above installer, it will return to this menu and you can select the next category by pressing the corresponding number and Enter key. + +Also, the completed sections will be checked with an “x” mark. + +#### Step 1: Select / Set Partition + +On the new installer screen, enter “1” to start [partitioning the disk][9]. + +Inside this, select the **Default** option. The installer has several tools to partition the disk, like cfdisk, fdisk, parted, etc. I used fdisk to do the job. + +##### Partitioning for Non-UEFI system + +Once the tool is selected, it will ask to choose the storage device. In my case, it was `/dev/sda` . Select the appropriate choice in your context. + +To start partitioning, enter “n” for a new partition. After that, select **Primary Partition.** + +![creating partition for non uefi system][10] + +For [non-UEFI systems][2], you can create one single root partition for all purposes. So, accept all the default values for “First Sector” and “Last Sector”. Then, press “w” to write the changes. + +On the next screen, you have to choose your filesystem and swap method. In this tutorial, I am using the EXT4 file system and Swap to File as the swap method. + +So set those according to the screenshot. + +![format the disk and select ext4 partition][11] + +##### Partitioning for UEFI system + +For UEFI users, you need to have two partitions, one EFI, with a 550 MB space, and another main root partition with the rest of the space (Swap as a file setting). + +Press n and select **Primary Partition.** Then select the Partition number as 1. + +Accept the default value for “First sector”. Now enter “+550M” as the value for “Last Sector”. + +Once again, press “n” and select **Primary Partition**. Accept the default value for the first and last sectors. + +![create two partitions for efi system][12] + +Press “t” to change the type and select the partition number “1” or `/dev/sda1`, whose type is to be changed from “Linux” to “EFI”. + +Select the partition type as EFI, as shown below: + +![change type of smaller partition to efi][13] + +Press “w” to write the changes. Then it will ask for filesystem selection. Here, you need to select the larger partition as the root partition (/dev/sda2, that is option 2 in the below screenshot). + +![select larger partition for root partition in efi system][14] + +Select EXT4 filesystem. This will again ask for mounting EFI partition. + +![select efi partition][15] + +In this step, you need to select the EFI partition at `/dev/sda1` and choose the mount point as `/boot/efi` . This will ask for format. Give consent by pressing “y”. + +Also, don’t forget to choose the swap to file option. + +#### Step 2: Start ArchBang installation + +This is pretty simple. Select the Install ArchBang option from the main menu by pressing the corresponding number (2 in this case). It will start the installation process. + +![installing archbang progress bar][16] + +You should wait for some time to complete the installation. + +#### Step 3: Set Hostname + +Once installation is completed, Select the 3rd option on the main menu, which is for setting the hostname. You need to enter a hostname. + +![provide hostname and press enter][17] + +#### Step 4: Set Location + +Location/Time Zone is typically mentioned in Zone/City format. I used Asia/Kolkata as the time zone. + +The installer provides the list of available zones and cities; you need to enter the number corresponding to your choice. + +![set time zone info][18] + +Also, set your location the same way. + +#### Step 5: Set Hardware Clock + +You have two options; Set Hardware Clock to UTC or Local Time. + +![set hardware clock time][19] + +There are two time standards:** localtime** and Coordinated Universal Time (UTC). The localtime standard depends on the current time zone, while UTC is the global time standard and is independent of time zone values. + +Enter your choice and press Enter key. + +#### Step 6: Set Locale + +Usually, you set the locale to en_US, if you are unsure what to do. That should be fine for most English-speaking users. + +If you want to use the operating system in some other language like French, Spanish, Dutch etc, you can choose the appropriate locale from the list. + +![set locale][20] + +#### Step 7: Desktop Keyboard Layout + +Similarly, most users should be fine with US keyboard. If you have some other keyboard (like French, or Italian), enter the appropriate choice from the available ones. + +![set desktop keyboard layout][21] + +#### Step 8: Configure Bootloader + +In ArchBang, you get GRUB2, Syslinux, or Systemd for the bootloader. To make it simple, I am selecting GRUB2 from the choice. + +![select grub2 as bootloader][22] + +Now, it will ask you to specify the method to install GRUB. Select **Automatic** and press enter. + +![select automatic grub][23] + +#### Step 9: Set Root Password + +Now, you should enter the root password. Select “Root Password” from the main menu. + +![enter and confirm root password][24] + +Here, enter and confirm the root password. + +#### Step 10: Create a New User + +Using a system with only a Root User is not secure. So, you should create a new user. In this installer, select the 10th option. Here, you should type a user name, password and confirm the password. + +![create user and password][25] + +Once done, press Enter to go to the main menu. + +#### Step 11: Finish configuration + +At this stage, you have reviewed all the configurations needed. You can now make it to effect by entering the letter “d” as shown in the screenshot below: + +![enter d option to finish the installation][26] + +This will ask permission to reboot your system. + +![press y to reboot your system to new archbang][27] + +Entering “y” will reboot your system to the newly installed ArchBang system. + +### Post Installation Tweaks + +Once rebooted, you will land in the same console. Probably there is no [display manager][28] installed. Here you should enter the username and password and press enter. + +![login to archbang through tty][29] + +This will bring you to the i3WM. + +![installed archbang with i3wm][30] + +Once installed, you need to do a couple of update tasks. **Connect to the internet first**. + +Firstly, you need to update the Pacman keys and archlinux-keyring. + +To do the same, open a terminal by pressing **Super + T** and run the following commands one by one: + +``` +sudo pacman-key –init +sudo pacman-key –populate +sudo pacman -Syyu archlinux-keyring +``` + +This will update system packages and keyrings. Reboot your system. + +Now, you should install a display manager. I prefer LightDM display manager. So open a terminal and enter the following command to install it: + +``` +sudo pacman -S lightdm lightdm-gtk-greeter +``` + +Once installed, use the following command to start the Lightdm service: + +``` +sudo systemctl enable lightdm.service +``` + +You will get a good and minimal login screen from the next reboot. + +![lightdm login screen in archbang][31] + +You can now enjoy ArchBang Linux according to your liking. + +### Wrapping Up + +ArchBang brings a good Arch Linux experience coupled with a not-so-hard installer and i3WM as the window manager. + +I understand that using a text-based installer like this one could be intimidating for some users. But then, it is [one of the joys of the Arch Linux][32] domain. It feels like a challenge and when you successfully install it, it gives you a sense of accomplishment. + +I have tried to detail all the steps with the necessary explanation. Please let me know if you face any issues or if you have any questions. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/install-archbang/ + +作者:[Sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/arch-based-linux-distros/ +[2]: https://itsfoss.com/check-uefi-or-bios/ +[3]: https://sourceforge.net/projects/archbang/files/ +[4]: https://itsfoss.com/wp-content/uploads/2022/12/go-to-archbang-iso-images-to-download-the-iso-file-from-sourceforge.png +[5]: https://itsfoss.com/install-etcher-linux/ +[6]: https://itsfoss.com/wp-content/uploads/2022/06/etcher-flash.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-live-iso-home-screen.webp +[8]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-installer.png +[9]: https://itsfoss.com/partition-managers-linux/ +[10]: https://itsfoss.com/wp-content/uploads/2022/12/creating-partition-for-non-uefi-system.png +[11]: https://itsfoss.com/wp-content/uploads/2022/12/format-the-disk-and-select-ext4-partition.png +[12]: https://itsfoss.com/wp-content/uploads/2022/12/create-two-partitions-for-efi-system.png +[13]: https://itsfoss.com/wp-content/uploads/2022/12/change-type-of-smaller-partition-to_efi.png +[14]: https://itsfoss.com/wp-content/uploads/2022/12/select-larger-partition-for-root-partition-in-efi-system.png +[15]: https://itsfoss.com/wp-content/uploads/2022/12/select-efi-partition.png +[16]: https://itsfoss.com/wp-content/uploads/2022/12/installing-archbang-progress-bar.png +[17]: https://itsfoss.com/wp-content/uploads/2022/12/provide-hostname-and-press-enter.png +[18]: https://itsfoss.com/wp-content/uploads/2022/12/set-time-zone-info.png +[19]: https://itsfoss.com/wp-content/uploads/2022/12/set-hardware-clock-time.png +[20]: https://itsfoss.com/wp-content/uploads/2022/12/set-locale.png +[21]: https://itsfoss.com/wp-content/uploads/2022/12/set-desktop-keyboard-layout.png +[22]: https://itsfoss.com/wp-content/uploads/2022/12/select-grub2-as-bootloader.png +[23]: https://itsfoss.com/wp-content/uploads/2022/12/select-automatic-grub.png +[24]: https://itsfoss.com/wp-content/uploads/2022/12/enter-and-confirm-root-password.png +[25]: https://itsfoss.com/wp-content/uploads/2022/12/create-user-and-password.png +[26]: https://itsfoss.com/wp-content/uploads/2022/12/enter-d-option-to-finish-the-installation.png +[27]: https://itsfoss.com/wp-content/uploads/2022/12/press-y-to-reboot-your-system-to-new-archbang.png +[28]: https://itsfoss.com/display-manager/ +[29]: https://itsfoss.com/wp-content/uploads/2022/12/login-to-archbang-through-tty.png +[30]: https://itsfoss.com/wp-content/uploads/2022/12/installed-archbang-with-i3wm.png +[31]: https://itsfoss.com/wp-content/uploads/2022/12/lightdm-login-screen-in-archbang.png +[32]: https://itsfoss.com/why-arch-linux/ From 20ad2a71ab3e39263e2323af638329da8eef3039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 12 Dec 2022 18:53:32 +0800 Subject: [PATCH 2310/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221212.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?A=20sysadmin's=20guide=20to=20Carbonio.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md diff --git a/sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md b/sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md new file mode 100644 index 0000000000..aad2bc5ffa --- /dev/null +++ b/sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md @@ -0,0 +1,119 @@ +[#]: subject: "A sysadmin's guide to Carbonio" +[#]: via: "https://opensource.com/article/22/12/carbonio-community-edition-sysadmin" +[#]: author: "Arman Khosravi https://opensource.com/users/arman-khosravi" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A sysadmin's guide to Carbonio +====== + +[Carbonio Community Edition (Carbonio CE)][1] is an open source no-cost email and collaboration platform by Zextras. It provides privacy for organizations seeking digital sovereignty by using on-premises self-hosted servers. Using self-hosted servers offers a deeper level of control over infrastructure and data. However, it requires more attention to server configurations and infrastructure management to guarantee data sovereignty. Tasks done by system administrators play an important role in this matter. This makes administrative tasks a crucial part of achieving digital sovereignty, therefore, an administrative console dedicated to such tasks becomes extremely valuable to facilitate sysadmins' everyday jobs. + +This is why Zextras launched the first release of its own admin panel for Carbonio CE on October 2022. For Carbonio CE system administrators, it is the first step toward the creation of an all-inclusive admin console. + +In this article, I go into detail about the Carbonio CE Admin Panel and take a deeper look into what it can accomplish. + +![Image of the Carbonio admin panel.][2] + +### What is the Carbonio CE Admin Panel? + +The Carbonio CE Admin Panel is designed to assist the Carbonio CE system administrators with the most repetitive and frequent tasks such as user management and domain configuration. It is a browser-based application that runs on a particular port and is available for system administrators to use in production environments as soon as Carbonio CE is installed. + +### Why do you need the admin panel? + +Everything done in Carbonio CE Admin Panel can be done through the command-line interface as well. This raises the question: why might system administrators prefer using the admin panel rather than the command-line interface? + +Using the admin panel has its own obvious advantages such as: + +- Making repetitive activities much easier to perform +- Saving system administrators' time monitoring servers +- Providing a much easier learning process for junior system administrators + +Even though using the admin panel makes administrative tasks easier to perform, there is more to using this native user interface for Carboino CE. In essence, the Carbonio CE Admin Panel gives you the ability to monitor and manage your organization server from a single centralized location. Even when you're far away, you may still access your admin panel to check the status of servers and carry out various administrative activities. + +### Creating and managing user accounts + +Managing users has always been one of the most, if not the most, performed action by sysadmins. Therefore it should be an essential part of every administrative GUI available for system administrators. Suppose you, as the system administrator of the company have received some request by users to edit some information on their account. For instance, giving them access to some features, or your company has hired new employees, or some employees have left the company. All these scenarios require a sysadmin to manage user accounts frequently. + +Using the Carbonio CE Admin Panel you can simply go to **Domains > select a domain > Accounts** and select any account to modify, or press the **+** button to add a new account. + +![Image of the accounts Carbonio adminpanel.][3] + +### Creating and managing mailing lists + +Besides creating user accounts, a system administrator is often required to create different mailing lists that reflect the organizational structure of the company. Using mailing lists, users can simply send emails to a group of users by inserting the list address instead of every user address one by one. + +Creating mailing lists in Carbonio CE is extremely easy using the admin panel. You need to go to **Domains > select a domain > Mailing List > press the + button**. You can now use the wizard that opens up to create a mailing list. + +![Image of the Carbonio admin panel mailing list.][4] + +The essential steps to follow are: + +- Insert the name +- Insert the mailing list address +- Press **NEXT** +- Insert the members +- Press **CREATE**. + +You can follow the same path to edit mail lists created before. + +### Creating and managing domains + +Managing domains is another task frequently done by system administrators. Similar to accounts, creating a domain is very easy in the Carbonio Admin Panel. You only need to go to **Domains > select a domain > under the details** and find different entries to monitor the status of the domain. To create a new domain simply click on the **CREATE** button on the top bar and select **Create New Domain** and insert the necessary information such as: + +- Domain name +- Maximum number of accounts and maximum email quota +- Mail server where the domain is hosted + +![Image of the Carbonio admin domains panel.][5] + +### Creating and managing mailstore servers + +The Carbonio CE Admin Panel allows system administrators to manage different servers present in the infrastructure and provide them with different tools to configure them. To monitor a new mailstore server you can go to **Mailstores > Servers List** and find all the available mailstore servers in your infrastructure in a list (when just one server is installed, only one server is shown in this area). + +Under **Server Details**, you can select any of the available servers in the list and select **Data Volumes** to show more details of the storage volumes attached to it. While multiple volumes can be mounted simultaneously, only one primary volume, one secondary volume, and one index volume can be designated as active. You can add new volumes using the **NEW VOLUME +** button in the same section. You can also change the volume properties simply by clicking on them to open their detail window. + +![Image of the Carbonio admin panel volumes.][6] + +### Creating and managing classes of service + +Another scenario that can be facilitated with the help of the admin panel is creating classes of service (COS). After the installation, a system administrator might need to create different classes (groups) and assign different properties to them. This way, later in the process each user or a group of users can be easily nominated to a class of service in order to have access to the features and properties assigned to that specific COS. + +![Image of the Carbonio admin panel COS features.][7] + +To create a COS simply click on the **CREATE** button and select **Create New COS** or alternatively go to **COS** on the left panel and click on **CREATE NEW COS +**. You can then insert the name of the COS and define the different services available to this specific class. + +To edit a COS, go to **COS** on the left panel and select a COS from the dropdown menu at top of the list. + +You can define settings like quotas, the mail servers that can host accounts from this COS, or enable features for this COS. You can also define features for general features like Mail, Calendar, and Contacts. Additional customizable options include Tagging, Out of Office Reply, Distribution List Folders, and so on. + +![Image of the Carbonio admin panel classes of service preferences.][8] + +### Conclusion + +In this article, you saw a few scenarios in which the Carbonio CE Admin Panel saves you time and effort. The admin panel is an evolution of classical administrative tools in a new and centralized interface that gives the possibility of accessing different functionalities and monitoring tools from the same location. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/carbonio-community-edition-sysadmin + +作者:[Arman Khosravi][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/arman-khosravi +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/3/open-source-collaboration-carbonio +[2]: https://opensource.com/sites/default/files/2022-11/carbonio_admin_panel.webp +[3]: https://opensource.com/sites/default/files/2022-11/accounts_carbonio_admin_panel.webp +[4]: https://opensource.com/sites/default/files/2022-11/mailing_list_carbonio_admin_panel.webp +[5]: https://opensource.com/sites/default/files/2022-11/domains_carbonio_admin_panel.webp +[6]: https://opensource.com/sites/default/files/2022-11/volumes_carbonio_admin_panel.webp +[7]: https://opensource.com/sites/default/files/2022-11/cos_features_carbonio_admin_panel.webp +[8]: https://opensource.com/sites/default/files/2022-11/cos_preferences_carbonio_admin_panel.webp From 732b5884e30a21430268ce79e1ad95ca45aaade5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 12 Dec 2022 18:55:25 +0800 Subject: [PATCH 2311/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221212.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Unfortunately,=20Komodo=20IDE=20is=20now=20Open=20Source!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Unfortunately, Komodo IDE is now Open Source!.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md diff --git a/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md b/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md new file mode 100644 index 0000000000..96da969f33 --- /dev/null +++ b/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md @@ -0,0 +1,89 @@ +[#]: subject: "Unfortunately, Komodo IDE is now Open Source!" +[#]: via: "https://news.itsfoss.com/komodo-ide-open-source/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Unfortunately, Komodo IDE is now Open Source! +====== + +Komodo IDE is now open-source and not at a great time. Curious to take a peek at the source code? Learn more here. + +![Unfortunately, Komodo IDE is now Open Source!][1] + +Komodo IDE is a popular integrated development environment for dynamic programming languages that was introduced back in May 2000. + +Used by many programmers around the world, it has proved to be quite helpful over the years. + +Unfortunately, all good things end. + +This is the case with Komodo IDE, it has now been retired, and all development has ceased. + +But there's a silver lining to this 😃 + +The company behind it, called '[ActiveState][2]', has now made the code openly available for anyone to use and modify. + +> 💡 Similar to "Komodo Edit" application, which was made open-source in 2008. + +They have cited numerous factors for their decision, which I will explain. + +### So, Why Open-Source it Now? + +![komodo ide][3] + +ActiveState felt that it was becoming difficult to maintain Komodo IDE without encountering various compatibility issues on newer systems. + +**What were the contributing factors?:** There were many factors that led to this. Take, for instance, the frameworks on which Komodo was built, '_XUL and XULRunner_'; they were retired by Mozilla back in 2016. + +Then there was the amount of effort needed to make Komodo compatible with newer systems. They would have to completely rewrite Komodo using a newer framework they felt was not feasible. + +And the final nail in the coffin was the fact that there are already a lot of free code editors available on the market right now doing better. They feel that '_it’s not a good business to be in anymore_'. + +**What now?:** ActiveState have made the whole Komodo IDE codebase available on their [GitHub repo][4] without the revision history. + +They have provided 3.2 million lines of code that consist of various programming languages such as Python, JavaScript, XUL, HTML, C++, and more. + +Anyone can copy, change, and use the code as they see fit. + +The forums for Komodo will be kept open for a year from their [original announcement][5], as it contains a treasure trove of information relating to Komodo. + +They are also open to moving the content to a different platform if anyone is willing to take on the task of managing it. + +On this topic, one of the employees from the Komodo dev team, Carey Hoffman, had this to add: + +> The extensive existing help information in the forums can act as a significant knowledge base for users and continue to be a central place to ask questions of the community and receive answers. I’ll very likely be there periodically on my own time to help where I can, such as when people are trying to build Komodo at home, or having difficulty making any kind of code edits. + +### Community Gets a Chance + +This can come in pretty handy for the community in general, as people can now try their hand at creating something truly special out of the code for Komodo. + +A Reddit user, [yvrelna][6] mentions: + +> I never used Komodo, but it's great to hear that Komodo is now freed from its cage. Companies should do this more often. If they're unwilling to support a software anymore, they should just release it as open source.It would've been better if the software is open source to begin with of course, but there's really no reason for a company to retain their codebase closed if they have no interest in maintaining it.Only thing is that they should've done it sooner, when there are still enough people that still cares about the software to possibly pick it up to maintain it. + +Indeed, the user is not wrong here; companies should go the extra mile by making code for their deprecated software open so that the community has a chance to create something out of it or even maintain it for the long term. + +ActiveState seems to have understood this sentiment and has thanked its users by open-sourcing Komodo. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/komodo-ide-open-source/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/komodo-ide-goes-open-source.png +[2]: https://www.activestate.com/ +[3]: https://news.itsfoss.com/content/images/2022/12/Komodo_IDE.png +[4]: https://github.com/ActiveState/OpenKomodoIDE +[5]: https://www.activestate.com/blog/activestate-komodo-ide-now-open-source/ +[6]: https://www.reddit.com/user/yvrelna/ From 3f54b6ae2c8996226d0f28656db69027ebacb62f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 12 Dec 2022 19:35:08 +0800 Subject: [PATCH 2312/3123] R --- ....3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md index b7b5a83fe8..9dfda0adff 100644 --- a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md +++ b/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md @@ -31,7 +31,7 @@ $ sudo dnf install cinnamon-desktop 在 Linux Mint、Debian 和类似系统上: ``` -$ sudo dnf install cinnamon-desktop-environment +$ sudo apt install cinnamon-desktop-environment ``` 当然,作为该桌面的发源地,Linux Mint 也预装了 Cinnamon。 From 64c825dd5dedabe5cb99ba4bde23a0e7368ae5fd Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Mon, 12 Dec 2022 21:36:09 +0800 Subject: [PATCH 2313/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...221004 Learn the OSI model in 5 minutes.md | 100 ------------------ ...221004 Learn the OSI model in 5 minutes.md | 100 ++++++++++++++++++ 2 files changed, 100 insertions(+), 100 deletions(-) delete mode 100644 sources/tech/20221004 Learn the OSI model in 5 minutes.md create mode 100644 translated/tech/20221004 Learn the OSI model in 5 minutes.md diff --git a/sources/tech/20221004 Learn the OSI model in 5 minutes.md b/sources/tech/20221004 Learn the OSI model in 5 minutes.md deleted file mode 100644 index eb53583bb2..0000000000 --- a/sources/tech/20221004 Learn the OSI model in 5 minutes.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Learn the OSI model in 5 minutes" -[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications" -[#]: author: "Anamika https://opensource.com/users/anamika" -[#]: collector: "lkxed" -[#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn the OSI model in 5 minutes -====== -Get the basics of the Open Systems Interconnection (OSI) framework for conceptualizing communication within a computer system. - -The Open Systems Interconnection (OSI) model is a standard for how computers, servers, and people communicate within a system. It was the first standard model for network communications and was adopted in the early 1980s by all major computer and telecommunications companies. - -The OSI model provides a universal language for describing networks and thinking about them in discrete chunks, or layers. - -### Layers of the OSI model - -The model describes the seven layers through which computer systems communicate over a network. - -1. [Application layer][2] -2. [Presentation layer][3] -3. [Session layer][4] -4. [Transport layer][5] -5. [Network layer][6] -6. [Data link layer][7] -7. [Physical layer][8] - -Each of these layers has its own way of working, with its own set of protocols that distinguish it from the others. This article provides a breakdown of the layers one by one. - -### Application layer - -The application layer is implemented in software. It is the layer used to interact with applications. - -Consider the example of sending a message. The sender will interact with the application layer and send the message. The application layer sends the message to the next layer in the OSI Model, the presentation layer. - -### Presentation layer - -The data from the application layer is forwarded to the presentation layer. The presentation layer receives the data in the form of words, characters, letters, numbers, and so on, and converts them into machine representable binary format. This process is known as translation. - -At this stage, ASCII characters (American Standard Code for Information Interchange) are converted into Extended Binary Coded Decimal Interchange Code (EBCDIC). Before the converted data goes further, it also undergoes encoding and encryption processes, using the SSL protocol for encryption and decryption. - -The presentation layer provides abstraction and assumes that the layers following it will take care of the data forwarded to them from this layer. It also plays a role in compression of the data. The compression can be lossy or lossless, depending on various factors beyond this article's scope. - -### Session layer - -The session layer helps in setting up and managing connections. The main work of this layer is to establish a session. For example, on an online shopping site, a session is created between your computer and the site's server. - -The session layer enables the sending and receiving of data, followed by the termination of connected sessions. Authentication is done before a session is established, followed by authorization. Like the previous layers, the session layer also assumes that, after its work is done, the data will be correctly handled by the subsequent layers. - -### Transport layer - -The transport layer manages data transportation and its own set of protocols for how data will be transferred. The data received here from the session layer is divided into smaller data units called segments. This process is known as segmentation. Every segment contains the source's and destination's port numbers and a sequence number. Port numbers identify the application on which the data needs to be sent. Note that the data is transferred in chunks. The sequence numbers are used to reassemble the segments in the correct order. - -The transport layer takes care of the flow control, or the amount of data transferred at a given time. It also accounts for error control, such as data loss, data corruption, and so on. It makes use of an error-detecting value known as a checksum. The transport layer adds a checksum to every data segment to check whether the sent data is received correctly. Data is then transferred to the network layer. - -### Network layer - -The network layer helps communicate with other networks. It works to transmit received data segments from one computer to another located in a different network. The router lives in the network layer. - -The function of the network layer is logical addressing (IP Addressing). It assigns the sender's and receiver's IP addresses to each data packet to ensure it is received at the correct destination. The network layer then routes the data packets. Load balancing also happens in the network layer to make sure that no overloading takes place. Next, the data is transported to the data link layer. - -### Data link layer - -The data link layer allows direct communication with other devices, such as computers and hosts. - -It receives data packets containing the IP addresses of the sender and receiver from the network layer and does the physical addressing, assigning the media access control (MAC) addresses of the sender and receiver to a data packet to form a frame. - -### Physical layer - -This layer consists of all the hardware and mechanical elements of a system, including the configuration of wires, pins, adapters, and so forth. The data received here by the preceding layers is in the form of 0s and 1s. The physical layer converts this data and transports it to local media via various means, including wires, electrical signals, light signals (as in optical fiber cables), and radio signals (as in WiFi). - -Note that the physical layer works at the receiver's end and transports the received signal to the data link as a frame (by converting it back to bits). The frame is moved to the higher layers, and ultimately the required data is received at the application layer, which is the software. - -### Conclusion - -The OSI model is helpful when you need to describe network architecture or troubleshoot network problems. I hope this article gave you a clearer understanding of the elements this model. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/osi-model-network-communications - -作者:[Anamika][a] -选题:[lkxed][b] -译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/anamika -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png -[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer -[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer -[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer -[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer -[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer -[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer -[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer diff --git a/translated/tech/20221004 Learn the OSI model in 5 minutes.md b/translated/tech/20221004 Learn the OSI model in 5 minutes.md new file mode 100644 index 0000000000..cd2b6d735a --- /dev/null +++ b/translated/tech/20221004 Learn the OSI model in 5 minutes.md @@ -0,0 +1,100 @@ +[#]: subject: "Learn the OSI model in 5 minutes" +[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications" +[#]: author: "Anamika https://opensource.com/users/anamika" +[#]: collector: "lkxed" +[#]: translator: "cool-summer-021" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 分钟内了解 OSI 模型 +====== +理解OSI框架的基本概念,掌握计算机系统通信机制 + +开放系统互联(OSI)模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型,在20世纪80年代早期,所有主流的计算机和通信公司都采用了这个标准。 + +OSI 模型提供了一种通用语言,用于描述网络,以及在离散的块或层中考虑相关的问题。 + +### OSI模型的各个层 + +该模型描述了计算机系统通过网络进行通信的七个层。 + +1. [应用层][2] +2. [表现层][3] +3. [会话层][4] +4. [传输层][5] +5. [网络层][6] +6. [数据链路层][7] +7. [物理层][8] + +每个层都有自己的工作方式和一系列跟其他层不同的协议。本文将逐个剖析这些层级。 + +### 应用层 + +应用层是在软件中实现的。它是与应用程序交互的层级。 + +考虑发送消息的例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表现层)发送消息。 + +### 表现层 + +来自应用层的数据被转发到表现层。表现层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。 + +在此阶段,ASCII(美国信息交换标准码) 字符被转换为扩充的二进制编码的十进制交换码(EBCDIC)。转换后的数据在继续传输前,也会进行编码和加密过程,使用SSL协议进行加密和解密。 + +表现层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,不属于本文的讨论范围。 + +### 会话层 + +会话层的作用是建立和管理连接。该层级的主要工作是建立会话。例如,你登录网上商城,就在你的机器和服务器之间建立了会话。 + +会话层的作用是实现数据的发送和接收,完成后连接的会话就终止了。在一个会话建立前,会进行身份验证。与上一层类似,会话层也假设在它的工作完成后,下面的层级也会准确无误地处理数据。 + +### 传输层 + +传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分割”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。 + +传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误的管理,比如数据丢失、损坏等情况。它利用一种错误探测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。 + +### 网络层 + +网络层的作用是跟其他网络进行通信。它把从一台机器接收到的数据片段传输给另一台位于不同网络的机器。路由器是作用于网络层的。 + +网络层的功能是逻辑寻址(就是确定 IP 地址)。它为发送方和接收方分配 IP 地址,数据包附带了这个地址,就可以被传输到正确的目标机器。接着网络层对数据包进行路由。负载均衡也是在网络层进行的,旨在确保不会发生过载。下一步,数据传输到数据链路层。 + +### 数据链路层 + +数据链路层支持跟其他设备直接通信。 + +它接收到来自网络层、包含发送方和接收方 IP 地址的数据包,进行物理寻址,然后将发送方和接收方的 MAC 地址分配给数据包,形成帧。 + +### 物理层 + +物理层由系统的所有硬件和物理设备(包括网线、导航系统、适配器等)组成。在这里,从前面层级接收到的数据都是 0 和 1 形式的。物理层把这些数据转换并通过各种方式(如果是光纤电缆,有电线、电信号、光信号;如果是 WIFI,则为无线电信号)传输至本地媒介。 + +注意,物理层作用于接收方的一端,把接收到的信号以帧的形式传输到数据链路层(把它转换回二进制数据形式)。然后帧传输到上面的层级,最终应用层(应用软件)会接收到需要的数据。 + +### 结语 + +当你需要描述网络架构或排除网络问题时,OSI 模型的相关知识会对你有所帮助。我希望本文能令你对这个模型的方方面面有清晰的理解。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/osi-model-network-communications + +作者:[Anamika][a] +选题:[lkxed][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/anamika +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png +[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer +[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer +[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer +[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer +[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer +[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer +[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer From 41204c3485994e890396d93288efa27fc9790efc Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 13 Dec 2022 08:43:58 +0800 Subject: [PATCH 2314/3123] translating --- ...ow to Access UEFI Settings in Linux Systems.md | 122 ------------------ ...ow to Access UEFI Settings in Linux Systems.md | 122 ++++++++++++++++++ 2 files changed, 122 insertions(+), 122 deletions(-) delete mode 100644 sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md create mode 100644 translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md diff --git a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md deleted file mode 100644 index 3ff19e8639..0000000000 --- a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md +++ /dev/null @@ -1,122 +0,0 @@ -[#]: subject: "How to Access UEFI Settings in Linux Systems" -[#]: via: "https://itsfoss.com/access-uefi-from-linux/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Access UEFI Settings in Linux Systems -====== - -Want to check the boot order or the power settings at the firmware level? **You can access the UEFI settings by pressing the F2, F10 or Del buttons when your system boots**. - -The problem with this approach is that you may not know the exact key and must be alert about pressing those keys at the right time. - -![Mr. Bean][1a] - -If you don’t want to feel like Mr. Bean in the above Gif, you can access the UEFI settings from the [Grub bootloader][1] screen in Linux. - -![uefi firmware settings grub linux][2] - -You see this screen when you turn on your Linux system. Most Linux distributions like Fedora and Ubuntu use Grub and they allow you to access the UEFI settings from the Grub screen like this. - -What if you don’t see this screen or your distro doesn’t use Grub? There are still ways to access UEFI settings from within Linux. - -Before you see how to do that, please [ensure that your system uses UEFI][3]. - -**_Another important thing. Your system will reboot into UEFI settings._** _You cannot access and modify the firmware settings from within an operating system._ - -### Boot into UEFI settings from Linux - -This method will only work on Linux distros having systemd. This means this method will work on anything based on Ubuntu, Debian, Fedora, and any mainstream Arch-based distros, including Manjaro and EndeavourOS. - -It is still a good idea to [ensure that your Linux distro uses systemd][4]. Use the given command and if it returns systemd you are good to go: - -``` -ps --no-headers -o comm 1 -``` - -![how to know if i am using systemd on linux?][5] - -Once you figure out that your distro is utilizing systemd, you can use the given command to boot into UEFI settings: - -``` -systemctl reboot --firmware-setup -``` - -Let me break down the used options first: - -- `reboot`: As its name suggest, it will reboot your system. -- `--firmware-setup`: When this option is used with `reboot`, it will indicate to the system’s firmware to boot into the firmware setup interface. - -Yup, that was it! A single command and you will be kicked into UEFI settings. I know Windows allows [booting into UEFI firmware settings from within Windows][6]. It’s good to see something similar in Linux as well. - -#### Create a desktop shortcut to boot into UEFI settings (optional) - -If you often find yourself booting into the UEFI settings and don’t remember the command all the time, you can make your life easier by creating a desktop shortcut. This will let you boot into UEFI by clicking on desktop icon. - -_**Now, this is unnecessary and not required for most Linux users. Do it only if you feel the need for it. The method requires [editing files in the command line][7].**_ - -First, use the given command to create a desktop shortcut file for UEFI settings: - -``` -sudo nano /usr/share/applications/uefi-reboot.desktop -``` - -And paste the following content in the file: - -``` -[Desktop Entry] -Name=UEFI Firmware Setup (Reboot) -Comment=Access the motherboard configuration utility -Exec=systemctl reboot --firmware-setup -Icon=system-restart -Terminal=false -Type=Application -Categories=System;Settings; -``` - -![create a desktop shortcut to boot into uefi settings][8] - -Once done, [save the changes and exit from the nano][9] text editor. - -And now, you will find the shortcut for UEFI Firmware Setup in your system menu: - -![boot into uefi firmware from system menu][10] - -That’s it! A neat way to get into UEFI settings. - -### Wrapping Up - -The classic ways of accessing the boot settings may be a little inconvenient for some people. The grub screen may not show the UEFI option for older versions. - -And this is where the systemd method shines. I found this method a lifesaver when my system crashed and my function keys were not responding, which are necessary to boot into UEFI (that’s what I thought then!). - -I hope you find it equally helpful. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/access-uefi-from-linux/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a -[1]: https://itsfoss.com/what-is-grub/ -[2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp -[3]: https://itsfoss.com/check-uefi-or-bios/ -[4]: https://linuxhandbook.com/check-if-systemd/ -[5]: https://itsfoss.com/wp-content/uploads/2022/12/how-to-know-if-i-am-using-systemd-on-linux.png -[6]: https://itsfoss.com/access-uefi-settings-windows-10/ -[7]: https://learnubuntu.com/edit-files-command-line/ -[8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png -[9]: https://linuxhandbook.com/nano-save-exit/ -[10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png diff --git a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md new file mode 100644 index 0000000000..779ee8e4ee --- /dev/null +++ b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md @@ -0,0 +1,122 @@ +[#]: subject: "How to Access UEFI Settings in Linux Systems" +[#]: via: "https://itsfoss.com/access-uefi-from-linux/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 系统中访问 UEFI 设置 +====== + +想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 F2、F10 或 Del 按键访问 UEFI 设置**。 + +这种方法的问题是你可能不知道确切的键,并且必须警惕在正确的时间按下这些键。 + +![Mr. Bean][1a] + +如果你不想像上面 Gif 中的憨豆先生,你可以从 Linux 中的 [Grub bootloader][1] 也没访问 UEFI 设置。 + +![uefi firmware settings grub linux][2] + +当你打开 Linux 系统时,你会看到这个页面。Fedora 和 Ubuntu 等大多数 Linux 发行版都使用 Grub,它们允许你像这样从 Grub 页面访问 UEFI 设置。 + +如果你没有看到此页面或你的发行版不使用 Grub 怎么办? 仍然有一些方法可以从 Linux 中访问 UEFI 设置。 + +在你了解如何操作之前,请[确保你的系统使用 UEFI][3]。 + +**_另一件重要的事情。你的系统将重启进入 UEFI 设置。_** _你无法从操作系统中访问和修改固件设置。_ + +### 从 Linux 启动到 UEFI 设置 + +此方法仅适用于具有 systemd 的 Linux 发行版。这意味着这种方法适用于任何基于 Ubuntu、Debian、Fedora 和任何主流的基于 Arch 的发行版,包括 Manjaro 和 EndeavourOS。 + +[确保你的 Linux 发行版使用 systemd][4] 仍然是一个好主意。使用给定的命令,如果它返回 systemd,你就可以开始了: + +``` +ps --no-headers -o comm 1 +``` + +![how to know if i am using systemd on linux?][5] + +当你发现你的发行版正在使用 systemd,你可以使用给定的命令启动到 UEFI 设置: + +``` +systemctl reboot --firmware-setup +``` + +让我首先分解使用的选项: + +- `reboot`:顾名思义,它将重启你的系统。 +- `--firmware-setup`: 当此选项与 `reboot` 一起使用时,它会指示系统固件启动进入固件设置界面。 + +就是这样! 一个命令,你将进入 UEFI 设置。我知道 Windows 允许[从 Windows 中启动进入 UEFI 固件设置][6]。很高兴在 Linux 中看到类似的东西。 + +#### 创建桌面快捷方式以启动到 UEFI 设置(可选) + +如果你经常发现自己启动进入 UEFI 设置并且不记得所有命令,你可以通过创建桌面快捷方式让你的生活更轻松。这将使你可以通过单击桌面图标启动到 UEFI。 + +_**现在,对于大多数 Linux 用户来说,这是不必要的,也不是必需的。只有当你觉得有必要时才去做。该方法需要[在命令行中编辑文件][7]。**_ + +首先,使用给定的命令为 UEFI 设置创建桌面快捷方式文件: + +``` +sudo nano /usr/share/applications/uefi-reboot.desktop +``` + +并将以下内容粘贴到文件中: + +``` +[Desktop Entry] +Name=UEFI Firmware Setup (Reboot) +Comment=Access the motherboard configuration utility +Exec=systemctl reboot --firmware-setup +Icon=system-restart +Terminal=false +Type=Application +Categories=System;Settings; +``` + +![create a desktop shortcut to boot into uefi settings][8] + +完成后,[保存更改并退出 nano][9] 文本编辑器。 + +现在,你将在系统菜单中找到 UEFI 固件设置的快捷方式: + +![boot into uefi firmware from system menu][10] + +完成了! 一种进入 UEFI 设置的巧妙方法。 + +### 总结 + +访问启动设置的经典方法对某些人来说可能有点不方便。grub 页面可能不会显示旧版本的 UEFI 选项。 + +这就是 systemd 方法的亮点所在。当我的系统崩溃并且我的功能键没有响应时,我发现这种方法是救命稻草,这是启动到 UEFI 所必需的(我当时就是这么想的!)。 + +我希望你发现它同样有用。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/access-uefi-from-linux/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a +[1]: https://itsfoss.com/what-is-grub/ +[2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp +[3]: https://itsfoss.com/check-uefi-or-bios/ +[4]: https://linuxhandbook.com/check-if-systemd/ +[5]: https://itsfoss.com/wp-content/uploads/2022/12/how-to-know-if-i-am-using-systemd-on-linux.png +[6]: https://itsfoss.com/access-uefi-settings-windows-10/ +[7]: https://learnubuntu.com/edit-files-command-line/ +[8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png +[9]: https://linuxhandbook.com/nano-save-exit/ +[10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png From c2faa4f0c3031d705decee6be7f6cf18bb8bdcdb Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 13 Dec 2022 08:47:37 +0800 Subject: [PATCH 2315/3123] translating --- .../20221209.0 ⭐️⭐️ Install open source solar power at home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md index 7f9e86514d..303c257fdb 100644 --- a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md +++ b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home" [#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 98e8512cef8cc4072eede063bde59ef40e1e4404 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 13 Dec 2022 10:34:44 +0800 Subject: [PATCH 2316/3123] ALL @wxy https://linux.cn/article-15343-1.html --- ...inux Kernel 6.1 Released With Initial Rust Code.md | 146 ++++++++++++++++++ ...inux Kernel 6.1 Released With Initial Rust Code.md | 146 ------------------ 2 files changed, 146 insertions(+), 146 deletions(-) create mode 100644 published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md delete mode 100644 sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md diff --git a/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md new file mode 100644 index 0000000000..d33491862c --- /dev/null +++ b/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md @@ -0,0 +1,146 @@ +[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code" +[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15343-1.html" + +Linux 内核 6.1 发布,包含初始 Rust 支持 +====== + +> Linux 内核 6.1 现在可以使用了!考虑到这是今年最后一个稳定版本,它有可能是 LTS 版本。 + +![Linux 内核 6.1 发布,包含初始 Rust 支持][1] + +Linux 内核 6.1 终于来了,它以改进和支持新硬件的形式为我们提前带来了节日礼物。🎄 + +它是在 Linux 内核 6.0 发布的几个月后出现的,当时的命名方案从 5.x.x 改为 6.x,以减少小版本号太多带来的混乱。 + +像往常一样,今年的最后一个内核版本 **可能被作为一个长期发布的版本**,从而得到几年的支持。 + +Linux 内核 6.1 如约带来了许多改进,并初步支持了 AMD 和英特尔尚未发布的硬件。 + +在发布公告中,Linus Torvalds 提到: + +> 所以到现在,我们晚了一个星期,不过上周已经没那么紧迫了,而且很顺利,我对 6.1 的状态要比几个星期前感到放心多了,当时似乎还比较紧迫。当然,这意味着现在我们有一个可怕的合并窗口,就在节日假期之前,而且我也有一些节前的旅行要安排。因此,虽然推迟一周是正确的做法,但它确实使 6.2 合并窗口的时间变得很尴尬。 + +他进一步补充说,考虑到每个人都应该过一个平静的假日季,他将会更严格的对合并窗口的规则进行要求。 + +### 🆕 Linux 内核 6.1 有什么新内容? + +在这个版本中,我们看到了各种变化,例如改进了对 ARM SoC 的支持,初步支持英特尔即将推出的 Meteor Lake CPU,以及 AMD 的 RDNA 3 GPU。 + +你可以在其 [公告][2] 中找到更多技术细节。 + +#### 对 Rust 的实验性支持 + +![linux 6.1 rust][3] + +虽然我们预计这将发生在 Linux 内核 6.0,但它在 Linux 内核 6.1 中才出现,这将允许开发者用 Rust 编写内核代码。 + +#### 英特尔 Meteor Lake 的启用 + +![英特尔][4] + +英特尔的开源开发者一直在努力工作,为即将到来的 Meteor Lake 芯片提供初步支持。 + +它被称为英特尔的第一个 7 纳米微架构,开发人员已经向 DRM-next 推送了各种提交。 + +这些包括各种固件提交,对 Meteor Lake CPU 及其集成 GPU 的初步支持。 + +#### 对 AMD RDNA 3 图形的初始支持 + +![AMD][5] + +这段时间,AMD 一直在为 Linux 内核 6.1 添加 RDNA 3 图形架构的代码。 + +这包括对他们即将推出的 GPU 的支持和对他们之前的 GPU 产品的各种修复。 + +你可以通过 [这里][6] 查看完整的补丁列表。 + +#### 对 AMD 电脑的优化 + +![优化 AMD][7] + +AMD PMF(AMD 平台管理框架)已经被引入这个内核版本。 + +该驱动旨在为 AMD PC 更安静、更高效的运行提供支持。 + +它利用板载传感器与 AMD 的各种热能和功率内核驱动来实现这一目标。 + +#### 改进的 ARM SoC 支持 + +![arm soc][8] + +Linux 内核 6.1 带来了对 ARM SoC 的更多支持,例如: + +- 联发科 MT8186 +- 德州仪器 AM62A +- 恩智浦 i.MX8DXL +- 高通 IPQ8064 的各种变体 + +该内核还对一些智能手机提供了支持,如 PINE64 PinePhone Pro、索尼 Xperia 1 IV 和三星 Galaxy E5/E7/Grand Max。 + +#### 存储的改进 + +内核在存储方面有很多改进。 + +例如,Btrfs 在这次更新中带来了异步缓冲写入,提供了超过 2 倍的吞吐量。 + +然后是对 EXT4 的改进,包括性能优化和一些错误修复。 + +与此同时,[EROFS][9] 为 Linux 内核 6.1 引入了基于 FSCache 的共享域支持。 + +#### 🛠️ 其他改进措施 + +这些并不是 Linux 内核 6.1 提供的唯一改进,以下是其他一些值得注意的改进: + +- 对微软 Surface Pro 9 和 Surface Laptop 5 的支持。 +- 启用 AMD Zen 4 LbrExtV2。 +- AMD CPU “缓存到缓存”和内存报告功能。 +- 引入 AMD IOMMU v2。 +- 为 Wi-Fi 802.11be/Wi-Fi 7 做准备。 + +### 如何安装 Linux 内核 6.1? + +如果你使用基于 Arch 的发行版或 Fedora,你可以轻松升级。 + +不幸的是,如果你使用其他 Linux 发行版(Pop!_OS 和 Linux Lite 在某种程度上可以是个例外),你可能无法直接从发行版中获得升级。 + +然而,几乎所有的 Linux 发行版都明确地允许你安装最新的内核。这里有一个关于 Ubuntu 的指南👇 + +> **[如何在 Ubuntu 中安装最新的主线 Linux 内核版本](https://itsfoss.com/upgrade-linux-kernel-ubuntu/)** + +所以,如果你乐于冒险(并且知道自己在做什么),你可以在 [Linux 内核档案][10] 上找到列出的较新的内核。你可以下载 [tarball][11] 来测试它。 + +然而,像往常一样,如果你不想冒任何风险,我们建议等待你的 Linux 发行版推送更新。最好是坚持使用你的 Linux 发行版默认提供的东西。 + +> **[下载 Linux 6.1][12]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-6-1-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png +[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u +[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png +[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png +[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png +[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html +[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png +[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png +[9]: https://en.wikipedia.org/wiki/EROFS +[10]: https://www.kernel.org/ +[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz +[12]: https://www.kernel.org diff --git a/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md deleted file mode 100644 index f406377262..0000000000 --- a/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md +++ /dev/null @@ -1,146 +0,0 @@ -[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code" -[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Kernel 6.1 Released With Initial Rust Code -====== - -Linux Kernel 6.1 is now available! Potentially an LTS version considering it is the last stable release of the year. - -![Linux Kernel 6.1 Released With Initial Rust Code][1] - -Linux Kernel 6.1 is finally here, and it comes bearing early Christmas gifts in the form of improvements and support for new hardware. 🎄 - -It comes a few months after the release of Linux Kernel 6.0, where the naming scheme was changed from 5.x.x to 6.x in favor of a less confusing alternative. - -As usual, the last kernel release of the year **may be considered a long-term release version** that gets support for a couple of years. - -#### Suggested Read 📖 - -Linux Kernel 6.1 promises many improvements and includes initial support for unreleased hardware by AMD and Intel. - -With the announcement, Linus Torvalds mentions: - -> So here we are, a week late, but last week was nice and slow, and I'm much happier about the state of 6.1 than I was a couple of weeks ago when things didn't seem to be slowing down. Of course, that means that now we have the merge window from hell, just before the holidays, with me having some pre-holiday travel coming up too. So while delaying things for a week was the right thing to do, it does make the timing for the 6.2 merge window awkward. - -He further adds that he will be stricter about the merge window rules considering it should be a calm holiday season for everyone. - -### 🆕 Linux Kernel 6.1: What’s New? - -With this release, we see various changes, such as improved support for ARM SoCs, initial support for Intel's upcoming Meteor lake CPUs, and AMD's RDNA 3 GPUs. - -You can find more technical details in its [announcement post][2]. - -#### Experimental Support for Rust - -![linux 6.1 rust code][3] - -While we expected this to happen with Linux Kernel 6.0, it arrives with Linux Kernel 6.1, allowing developers to write kernel code in Rust. - -#### Enablement Of Intel Meteor Lake - -![intel logo][4] - -Intel's open-source developers have been hard at work to provide initial support for the upcoming Meteor Lake chips. - -Dubbed as Intel's first 7 nm microarchitecture, developers have pushed various commits to DRM-next. - -These include a variety of firmware commits with initial support for the Meteor Lake CPUs and their integrated GPUs. - -#### Initial Support For AMD RDNA 3 Graphics - -![amd logo][5] - -AMD has been adding code for the RDNA 3 graphics architecture to Linux Kernel 6.1 for some time now. - -This includes support for their upcoming GPUs and various fixes for their old GPU products. - -You can go through the full list of patches [here][6]. - -#### Optimizations for AMD PCs - -![pc optimizations amd][7] - -AMD PMF has been introduced with this kernel release; it stands for AMD Platform Management Framework. - -This driver is meant to provide a framework for the quieter and more efficient running of AMD PCs. - -It makes use of the onboard sensors in tandem with AMD's various thermal and power kernel drivers to achieve that. - -#### Improved ARM SoC Support - -![arm soc][8] - -Linux Kernel 6.1 brings in support for additional ARM SoCs, such as: - -- MediaTek MT8186 -- Texas Instruments AM62A -- NXP i.MX8DXL -- Various variants of Qualcomm IPQ8064 - -The kernel also features support for a few smartphones such as PINE64 PinePhone Pro, Sony Xperia 1 IV, and Samsung Galaxy E5/E7/Grand Max. - -#### Storage Improvements - -The kernel has a lot of improvements for storage. - -For instance, Btrfs is bringing async buffered writes with this update, resulting in more than 2x throughput improvement. - -Then there are the improvements to EXT4 with performance optimization and a few bug fixes. - -Alongside this, [EROFS][9] has introduced FSCache-based shared domain support to Linux Kernel 6.1. - -#### 🛠️ Other Improvements - -Those are not the only improvements being offered with Linux Kernel 6.1; here are some of the other notable ones: - -- **Support for Microsoft Surface Pro 9 and Surface Laptop 5.** -- **Enablement of AMD Zen 4 LbrExtV2.** -- **AMD CPU Cache-To-Cache & Memory Reporting Capabilities.** -- **Introduction of AMD IOMMU v2.** -- **Preparations for Wi-Fi 802. 11be/Wi-Fi 7.** - -### How to Install Linux Kernel 6.1? - -You can easily upgrade if you use an Arch-based distro or Fedora. - -Unfortunately, if you are using other Linux distributions (Pop!_OS and Linux Lite can be an exception to some extent), you may not receive an upgrade directly from your distro. - -However, almost all Linux distributions explicitly allow you to install the latest kernel. Here's a guide for Ubuntu 👇 - -So, if you are feeling adventurous (and know what you are doing), you can find the newer kernel listed on [Linux Kernel Archives][10]. You can download the [tarball][11] to test it out. - -However, as always, we recommend waiting for your Linux distribution to push an update if you do not want to take any chances. It is best to stick to what’s being offered for your Linux distribution by default. - -[Download Linux 6.1][12] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-6-1-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png -[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u -[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png -[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png -[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png -[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html -[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png -[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png -[9]: https://en.wikipedia.org/wiki/EROFS -[10]: https://www.kernel.org/ -[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz -[12]: https://www.kernel.org From cd8f6383a9f320a2a4bb080b0de71a6b083fc463 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 13 Dec 2022 11:47:36 +0800 Subject: [PATCH 2317/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow 感谢您,完成了第一篇翻译贡献!翻译的很好。 --- ...ng Linus-s Law for open source security.md | 49 +++++++++---------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/translated/talk/20210209 Understanding Linus-s Law for open source security.md b/translated/talk/20210209 Understanding Linus-s Law for open source security.md index 70ce78b0dd..9657a6a3fa 100644 --- a/translated/talk/20210209 Understanding Linus-s Law for open source security.md +++ b/translated/talk/20210209 Understanding Linus-s Law for open source security.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (CanYellow) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Understanding Linus's Law for open source security) @@ -9,38 +9,38 @@ 理解开源安全中的李纳斯定律 ====== -李纳斯定律 (Linus's Law) 即“只要有足够多的眼睛关注,任何漏洞都无处隐藏” (given enough eyeballs, all bugs are shallow)。那么李纳斯定律是如何应用于开源软件安全的呢? -![Hand putting a Linux file folder into a drawer][1] +李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢? -2021 年,有更多的原因使人们比以往更钟情 Linux 。在本系列中,我将分享 21 个使用 Linux 的不同原因。 这篇文章则讨论 Linux 对开源软件安全的影响。 +![][0] -开源软件的一个常被赞扬的优点是它的代码能够被任何人检查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,高效地审查每一行代码也是困难的。 +这篇文章讨论 Linux 对开源软件安全的影响。 + +开源软件的一个常被赞扬的优点是它的代码能够被任何人审查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,有效地审查每一行代码也是困难的。 根据上述这些稍显不安的事实,我们不得不思考:如果没有人察看这些代码,它是开源还是闭源真的有关系吗? - ### 你应该相信开源吗? -计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么更安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全所非常反对的。 +计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么“更”安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全非常反对的。 -除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它_最高信任_。_最高信任_不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。 +除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它 终极信任ultimate trust。_终极信任_ 不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。 -使用者本人是唯一可以对软件代码最高信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。 +使用者本人是唯一可以对软件代码给予终极信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。 -只有你已经亲自审计并理解了软件代码,你才可以对一个应用程序给予最高信任,最高信任的范围可以是从_根本不信任_到_相当信任_之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经听说了一款应用程序的安全性是可以信任的,相比没有任何建议的情况而言,你可能更加信任它。 +在你已经亲自审计并理解了软件代码之前,你对一个应用程序给予的最大信任度是一个范围,可以是从 _根本不信任_ 到 _相当信任_ 之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经从非常信任的人那里听说了一款应用程序是安全的,那么你可能会更信任这个软件,而不是信任那些你没有得到信任建议的东西。 -然而,因为无法审计专有(闭源)软件代码,你不可能给予它_最高信任_。 +然而,因为无法审计专有(闭源)软件代码,你不可能给予它 _终极信任_。 ### 李纳斯定律 -现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择相信(一定程度上)_亲自_审查了代码的人。 +现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择(一定程度上)相信那些 _亲自_ 审查了代码的人。 -那么,有哪些人会审计代码呢? +那么,有哪些人会审查代码呢? -李纳斯定律声称_只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审计。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。 +李纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。 -同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉基本代码的,因为他们需要尝试解决的问题小到运行异常,大到程序崩溃。当然,一些漏洞报告人员无意中揭示了代码漏洞不是通过亲自审查项目代码而是通过关注明显未按预期工作的现象。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,是安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。 +同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉代码库的,因为他们需要尝试解决小到运行异常,大到程序崩溃的问题。当然,一些漏洞报告人员不是通过亲自审查项目代码,而是通过关注明显未按预期工作的现象,无意中揭示了代码漏洞。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,还有一些安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。 ### 信任与透明 @@ -48,22 +48,21 @@ 当然,也有例外。有时仅仅一个系统调用或者链接一个有缺陷的库文件就可能引入一系列漏洞。幸运的是,多亏安全研究人员以及漏洞数据库所扮演的积极角色,这些错误相对而言是容易发现的。 -一些人指向错误追踪系统,比如 [通用漏洞披露 (CVE)][2] 网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们不能发现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的_所有的漏洞_从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。 +一些人指着错误追踪系统,比如 [通用漏洞披露][2]Common Vulnerabilities and Exposures(CVE)网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们看不到现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的 _所有的漏洞_ 从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。 对于任何代码而言,可能永远没有“足够的眼睛”来发现漏洞,但是开发社区越壮大、越多样化,越有机会发现和修复代码中的缺陷。 ### 信任与人 -在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞却保持沉默的的可能性是微乎其微的,因为人们彼此间不会同意以这样的方式密谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样: +在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞,却保持沉默的的可能性是微乎其微的,因为人们很少同意以这样的方式合谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样: - * 我们都识别出了漏洞(病毒)。 - * 我们知晓如何避免它传播(待在家里)。 + * 我们都发现了漏洞(病毒)。 + * 我们知晓如何避免它传播(待在家里)。 * 然而病毒还是在持续传播,因为总是有一个或者多个人偏离了消减疫情的计划。 -开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。 - -然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于回报。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。付费秘密开发软件的开发者倾向于不讨论软件的缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (译者注:Non-Disclosure Agreement,保密协议),你可能被培训过商业秘密的重要性等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。 +开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。 +然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于薪水。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。开发人员拿着薪水秘密地研究软件,往往不会谈论其缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (LCTT 译注:保密协议Non-Disclosure Agreement),也被培训过商业秘密的重要性,等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。 ### 信任与软件 @@ -71,8 +70,7 @@ 如果你必须相信未经你审计的软件,那么选择相信已经面向那些更有可能将软件缺陷公之于众的开发者公开代码的软件。 -开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划实施和人员配置。 - +开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划、实施和人员配置。 -------------------------------------------------------------------------------- @@ -81,7 +79,7 @@ via: https://opensource.com/article/21/2/open-source-security 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -89,3 +87,4 @@ via: https://opensource.com/article/21/2/open-source-security [b]: https://github.com/lujun9972 [1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer) [2]: https://cve.mitre.org +[0]: https://img.linux.net.cn/data/attachment/album/202212/13/114637dg6w34suucuupucv.jpg \ No newline at end of file From bbbb0d3de4b70c9cca9ee1b3864b1a3368cc2e14 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 13 Dec 2022 11:49:40 +0800 Subject: [PATCH 2318/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow 本文首发地址:https://linux.cn/article-15344-1.html 您的 LCTT 专页:https://linux.cn/lctt/CanYellow --- ...09 Understanding Linus-s Law for open source security.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/talk => published}/20210209 Understanding Linus-s Law for open source security.md (97%) diff --git a/translated/talk/20210209 Understanding Linus-s Law for open source security.md b/published/20210209 Understanding Linus-s Law for open source security.md similarity index 97% rename from translated/talk/20210209 Understanding Linus-s Law for open source security.md rename to published/20210209 Understanding Linus-s Law for open source security.md index 9657a6a3fa..441574827d 100644 --- a/translated/talk/20210209 Understanding Linus-s Law for open source security.md +++ b/published/20210209 Understanding Linus-s Law for open source security.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (CanYellow) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15344-1.html) [#]: subject: (Understanding Linus's Law for open source security) [#]: via: (https://opensource.com/article/21/2/open-source-security) [#]: author: (Seth Kenlon https://opensource.com/users/seth) @@ -10,7 +10,7 @@ 理解开源安全中的李纳斯定律 ====== -李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢? +李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢? ![][0] From ab6e90fcdc37e3f999de3a823e61b04e98827854 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Tue, 13 Dec 2022 15:27:50 +0800 Subject: [PATCH 2319/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20220608 WiFi 6 Promises Much More than Faster Speeds.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md index ba0801c1a2..fd7b08a93e 100644 --- a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md +++ b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/" [#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "cool-summer-021" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -84,7 +84,7 @@ via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faste 作者:[Sharon Katta][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[cool-summer-021](https://github.com/cool-summer-021) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0aa2cac3e785a548eda63dddec9b05ed3a28d0dd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 13 Dec 2022 15:33:10 +0800 Subject: [PATCH 2320/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 采用被公开使用的译名 --- ... Understanding Linus-s Law for open source security.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/published/20210209 Understanding Linus-s Law for open source security.md b/published/20210209 Understanding Linus-s Law for open source security.md index 441574827d..4ff8387172 100644 --- a/published/20210209 Understanding Linus-s Law for open source security.md +++ b/published/20210209 Understanding Linus-s Law for open source security.md @@ -7,10 +7,10 @@ [#]: via: (https://opensource.com/article/21/2/open-source-security) [#]: author: (Seth Kenlon https://opensource.com/users/seth) -理解开源安全中的李纳斯定律 +理解开源安全中的林纳斯定律 ====== -李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢? +林纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么林纳斯定律是如何应用于开源软件安全的呢? ![][0] @@ -32,13 +32,13 @@ 然而,因为无法审计专有(闭源)软件代码,你不可能给予它 _终极信任_。 -### 李纳斯定律 +### 林纳斯定律 现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择(一定程度上)相信那些 _亲自_ 审查了代码的人。 那么,有哪些人会审查代码呢? -李纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。 +林纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。 同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉代码库的,因为他们需要尝试解决小到运行异常,大到程序崩溃的问题。当然,一些漏洞报告人员不是通过亲自审查项目代码,而是通过关注明显未按预期工作的现象,无意中揭示了代码漏洞。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,还有一些安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。 From a7e9ea4d8853375ae8ddaa8b075ae7abbddebfa4 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Tue, 13 Dec 2022 19:12:27 +0800 Subject: [PATCH 2321/3123] after work --- ....5 ⭐️⭐️ Our open source startup journey.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md index 82d777b905..3dcf5ba6af 100644 --- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md +++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md @@ -7,43 +7,98 @@ [#]: publisher: " " [#]: url: " " +开启我们的开源之旅 + +DN Our open source startup journey ====== +ToolJet 是一款开源的代码量少的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。 + +DN [ToolJet][1] is an open source, low-code framework for rapidly building and deploying internal tools. Our codebase is 100% JavaScript and TypeScript. +ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队了。 + +DN A lone developer in April 2021 started ToolJet. The public beta launched in June 2021 and was an instant hit. With this traction, ToolJet raised funding, and currently, we have a team of 20 members. +### 为什么选择开源 + +DN ### Why open source? +在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。 + +DN Before working on ToolJet, I worked with a few enterprise clients as a consultant. Many of these clients were large enough to build and maintain dozens of internal tools. Despite the constant requests from sales, support, and operations teams to add more features and fix the bugs in their internal tools, engineering teams struggled to find the bandwidth to work on the internal utilities. +我尝试过多个平台来构建和维护内部工具。大部分的平台是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台代码,而且大多数的平台工具都不支持本地托管。 + +DN I tried using a few platforms to build and maintain internal tools. Most of these tools were very expensive, and frequently, they didn't really fit the requirements. We needed modifications, and most utilities didn't support on-premise hosting. +作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。 + +DN As a Ruby developer, I primarily used ActiveAdmin and RailsAdmin to build internal tools. Both utilities are amazing, but making them work with more than one data source is difficult. I then realized there is a need in the market for a framework that could build user interfaces and connect to multiple data sources. I believe any tool built for developers should be open source. Most of the tools and frameworks that developers use daily result from people from all over the world collaborating in public. +### 第一次提交 + +DN ### The first commit +制作像 ToolJet 这样的工具需要全身心的投入,出售我的一个个人项目后我获得了5-6个月的空闲,我立即着手将在我脑海里酝酿了两年的想法付诸现实。 + +DN Building something like ToolJet needed a full-time commitment. Selling one of my side projects gave me a runway of 5-6 months, and I immediately started working on an idea I'd had in mind for at least two years. +2021年4月1日,我完成了 ToolJet 的第一次提交(使用 rails new 命令)。 + +DN The first commit (rails new) of ToolJet was on April 1, 2021. +稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。 + +DN Wait! I said the codebase is 100% JavaScript. Continue reading to discover why. +TD +### 构建工具并推销给投资者 + ### Building and pitching investors +4、5月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。 + +DN I sat in front of my screens for most of April and May, coding and pitching to investors for a pre-seed round. +我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。 + +DN My work also included creating the drag-and-drop application builder, documenting everything, ensuring there was documentation for setting ToolJet up on popular platforms, creating a website, creating posters and blog posts for launch, and more. The process went well without any major challenges. At this point, the frontend of ToolJet was built using React, with the backend using Ruby on Rails. +编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我来了电话。 + +DN While the coding was going well, investor pitches weren't going great. I sent around 40 cold emails to venture capitalist firms and "angel investors" focused on early-stage funding. While most of them ignored the email, some shared their reason for rejection, and some scheduled a call. +大部分的电话内容都是一样的:我无法说服他们接受开源商业模型。 + +DN Most of the calls were the same; I couldn't convince them of an open source business model. +### 工具发布 + +DN ### The launch +6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这是原始的[发布帖][2]。 + +DN June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2]. + I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars. ![ToolJet repo stats on GitHub][4] @@ -112,3 +167,5 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey [8]: https://blog.tooljet.com/how-we-migrated-tooljet-server-from-ruby-to-node-js [9]: https://opensource.com/sites/default/files/2022-10/tooljet-star-history.png [10]: https://opensource.com/article/19/11/product-vs-project + +[11]: https://www.producthunt.com/ From 08e6da5fd571213a9c38f682e704648ab4f2a07e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:45:58 +0800 Subject: [PATCH 2322/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221212.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20Best=20Linux=20Phones=20to=20Watch=20Out=20for=20in=202023.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 5 Best Linux Phones to Watch Out for in 2023.md | 226 ++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md diff --git a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md new file mode 100644 index 0000000000..4988fb5a7c --- /dev/null +++ b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md @@ -0,0 +1,226 @@ +[#]: subject: "5 Best Linux Phones to Watch Out for in 2023" +[#]: via: "https://www.debugpoint.com/best-linux-phones/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Best Linux Phones to Watch Out for in 2023 +====== + +**Here’s a list of the best Linux Phones which may become more mainstream in 2023 with their features and price.** + +Android and iOS smartphones are the most popular ones around the world. However, many of you look for something more “open” and better at privacy. If you use Android, you forfeit your privacy. Apple’s iOS is a little better on that – but again – it’s a “walled garden”. + +That’s why Linux phones are becoming popular nowadays because they contain many options for developers and end users. Although various types of Linux phones are currently available, it still becomes confusing to choose the best one. Looking at the trends of 2022, here are some of the Linux Phones which may become more mainstream in 2023. + +### Things you should know about Linux Phones + +Before you read or even plan to buy one, there are a couple of things you should know about. Here are some of them: + +- The Linux phones use a modified version of mainstream Linux distribution with a mobile-friendly desktop environment. This is the same for most of the phones available today. +- You must manage your expectations if you plan to buy a phone and use it for your daily driver. Because the Linux phone operating systems, device features, and app ecosystem is still in the early stages, and it’s not close to the Android or iOS ecosystem, +- However, Linux phones with the operating system provide the best privacy feature, which might be the reason you can make a move. + +### Best Linux Phones + +#### Librem from Purism + +The Librem 5 – Purism is quite a famous brand in the Linux phone market. The Librem 5 model comes with PureOS, an OS designed for Linux Mobiles and not based on the android or iOS platform. It is a natively designed free and open-source OS. PureOS also supports convergence. That means you can plug your phone into a monitor via a USB hub and use it as a desktop OS. + +The phone has premium hardware and feels and focuses on security and privacy. However, this impressive smartphone comes with a little higher price tag of $1299. + +#### Key features & specification + +- Fully free and open-source Linux-based mobile operating system: PureOS +- Separate modem, Wi-Fi and Bluetooth chip +- Three dedicated hardware keys to enable and disable – internet, camera, Wi-Fi and Bluetooth +- Smart card reader +- SD card reader +- User-replaceable battery + +![Librem 5][1] + +| Specification | Description | +| :- | :- | +| **Screen** | 5.7″ (IPS TFT 720×1440) | +| **RAM** | 3 GB | +| **Storage** | 32 GB eMMC | +| **Battery** | 4500mAh | +| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53 with 64 bit ARM @max 1.5GHz | +| **GPU** | Vivante GC7000 Lite | +| **Screen** | 5.7Inches IPS TFT 720×1440 | +| **Camera** | 13 Mpx with LED Flash (Rear) and 8 Mpx (Front) | +| **USB** | USB Type C | + +[Official page for buying options of Librem 5][2] + +#### Pinephone + +Second on the list is Pinephone, perhaps the most complete and usable Linux phone in the market. Developed by Pine64, it has excellent features and supports multiple Linux ARM distributions for mobile phones. + +In addition, PinePhone comes in multiple versions, including a pro version, simultaneously. It is an excellent option for Linux phones as it is also cheaper. PinePhone focuses on the user’s privacy and extensibility and can be a good option if you want to start the first time with Linux phones. + +#### Key features & specification + +- Supports KDE Plasma mobile, Manjaro mobile, Sailfish OS, and Ubuntu touch +- It comes with five kill switches for LTE, Cameras, Wifi/BT, and Microphones +- Bootable microSD and 16GB/32GB eMMC +- USB Type C (Power, Data and Video Out) +- Six pogo pins allow custom hardware extensions such as a thermal camera, wireless charging, NFC, an extended battery case, or a keyboard case. +- 3.5 headphone jack +- Supports convergence to extend it as a PC +- Affordable price with starting $149 and $199 + +![Pinephone][3] + +| Specification | Description | +| :- | :- | +| **Screen** | 5.95 Inches, HD IPS capacitive touchscreen | +| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53 and 64bit | +| **GPU** | Mali-400 MP2 | +| **RAM** | Two Variants: 2GB and 3GB LPDDR3 SDRAM | +| **Storage** | Two Variants: 16GB and 32GB eMMC. | +| **Camera** | Single 5MP, 1/4″, LED Flash (Rear) and Single 2MP, f/2.8, 1/5″ (Front) | +| **Battery** | Li-ion (capacity 2800mAh) | +| **Audio Jack** | 3.5 mm | + +[Pinephone buying options][4] + +#### Pro 1 X – F(X)tec + +[Pro 1 X – F(X)tec][5] is a smartphone that offers various options for operating systems. And it’s arguably the more exciting product in this Linux phone list. + +You can use LineageOS, Android, Ubuntu Touch, etc., on the same phone. Moreover, an inbuilt slide-out keyboard makes it more unique and attractive. + +Developed by F(x)tec company in London, its new in the market and shows promise. However, it’s not yet out, with planned shipping on December 2022. Hence, you may need to wait a few days for a review. + +![Pro 1 X][6] + +#### Key features + +- First Linux-based smartphone startup with a sliding QUERTY keyboard +- Supports Ubuntu touch out of the box with an Android option +- Unlocked bootloader +- 3.5 headphone jack +- AMOLED display +- 128GB/6GB (storage and RAM) starting price $829 +- 256GB/8GB (storage and RAM) starting price $899 + +| Specification | Description | +| :- | :- | +| **CPU** | Snapdragon 662 Qualcomm | +| **GPU** | Adreno 610 Qualcomm | +| **RAM** | Two Variants: 6GB and 8GB LPDDR4 | +| **Storage** | 128GB (expandable up to 2TB) | +| **Screen** | 5.99″ with curved edge Corning® Gorilla® Glass 3 ( 2160 x 1080 FHD AMOLED Display) | +| **Camera** | 12MP Sony IMX363 (Rear) and 8MP (Front) | +| **Battery** | 3200 mAh | +| **Audio Jack** | 3.5 mm  | + +[pro 1 x buying options][5] + +#### Volla Phone + +[Volla Phone][7] can operate simultaneously with two operating systems: Ubuntu Touch and VollaOS. Moreover, VollaOS is a modified android that is google-free and simultaneously focuses on the user’s privacy. At the same time, Ubuntu Touch is a popular Linux phone distro. + +#### Key features & specifications + +- Free from Google and services +- No cloud dependency +- Encrypted device storage +- Modified Android OS: Volla OS +- Supports Ubuntu Touch, Manjaro, Sailfish OS +- USB C charging +- 3.5 headphone jack +- Fingerprint log in +- Offline maps + +![Volla Phone][8] + +| Specification | Description | +| :- | :- | +| **CPU** | MediaTek Helio P23 | +| **GPU** | ARM Mali-G71 MP2  | +| **Storage** | 64 GB, eMMC | +| **RAM** | 4 GB DDR3 RAM | +| **Screen** | 6.3Inches, IPS, 2340×1080 Pixels | +| **Camera** | 16MP with Flash (Rear) and 16MP (Front) | +| **Battery** | 4700 mAh | +| **USB** | Type C & 3.5mm Audio Jack | + +[Volla Phone buying options][9] + +#### Fairphone 4 + +It comes with PostmarketOS; [Fairphone 4][10] is another smartphone that has modular hardware. You can replace its battery effortlessly. Moreover, not just the battery, you can also replace its display, etc., just with a screwdriver.   + +Fairphone is another Linux phone which comes with modular hardware. It supports PostmarketOS and uses a modified version of Android: FairPhone OS. The primary selling point of this device is its modularity, where you can replace any part of the mobile phone. That includes the display, battery and other components of this device. + +#### Specifications + +| Specification | Description | +| :- | :- | +| **CPU** | Octa-Core Kryo 570 | +| **RAM** | Two variants: 6GB and 8GB | +| **Storage** | Two variants: 128GB or 256GB | +| **GPU** | Adreno 619 | +| **Screen** | 6.3 inch Full HD+ IPS | +| **Camera** | Dual 48MP (Rear) and 25MP (Front) | +| **Battery** | 3905 mAh Li-ion | +| **Chipset** | Qualcomm SM7225 Snapdragon 750G | + +[FairPhone buying options][11] + +#### Are there any mainstream Android phones that support Linux OS? + +If you don’t want to buy an off-the-shelf mobile phone as listed above, then you can continue using Linux mobile OS in older branded phones because Android is a modified Linux Kernel-based. Hence these devices should work with Ubuntu Touch or PostmarketOS. + +- Google Pixel 3a/3a XL +- Sony Xperia X (F5121 & F5122) +- Google Nexus 5 +- OnePlus One + +- Supported by Ubuntu Touch OS ([full list][12]) + +- Xiaomi Redmi 2 +- Xiaomi Mi Note 2 +- OnePlus GT +- OnePlus 6 + +- Supported by PostmarketOS ([full list][13]) + +### Closing notes + +So, that’s about the best Linux phones available in the market today and will continue in 2023. You can learn more about the above devices from the official website. However, I believe there will be more adoption of Linux phones in the coming days as Privacy becomes a myth every day. + +It’s true that to compete with Android and iOS, the device or OS is not sufficient. What is important is the standard, global availability for buying, low entry-level pricing in emerging markets and investment in the app ecosystem. A streamlined vision is required in the phone ecosystem to win. Without it, Linux phones will become more fragmented, as in desktops. The device makers and major FOSS players need to work together to make it successful. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-linux-phones/ + +作者:[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/12/Librem-5-image2.jpg +[2]: https://puri.sm/products/librem-5/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pinephone.jpg +[4]: https://pine64.com/product-category/pinephone +[5]: https://www.fxtec.com/pro1x +[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pro-1-X.jpg +[7]: https://volla.online/de/index.html +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/Volla-Phone.jpg +[9]: https://volla.online/de/shop/ +[10]: https://shop.fairphone.com/en/buy-fairphone-4 +[11]: https://shop.fairphone.com/ +[12]: https://devices.ubuntu-touch.io/ +[13]: https://wiki.postmarketos.org/wiki/Devices From 948514ed28eaab53ca44d2bfd3ac59ff81cd78e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:46:50 +0800 Subject: [PATCH 2323/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221212.5=20=E2=AD=90=EF=B8=8F=20FreeBSD=2012.4=20i?= =?UTF-8?q?s=20out=20with=20100+=20improvements=20and=20fixes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2.4 is out with 100+ improvements and fixes.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md diff --git a/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md b/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md new file mode 100644 index 0000000000..85f90890c8 --- /dev/null +++ b/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md @@ -0,0 +1,69 @@ +[#]: subject: "FreeBSD 12.4 is out with 100+ improvements and fixes" +[#]: via: "https://debugpointnews.com/freebsd-12-4/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +FreeBSD 12.4 is out with 100+ improvements and fixes +====== + +![][1] + +**FreeBSD 12.4 was released a few days back with several updates and improvements. Here’s a release roundup.** + +FreeBSD is a UNIX-like operating system based on [U.C. Berkley’s BSD-Lite version][2]. It is primarily used for core infra systems, routers, networking devices, and possibly running in millions of devices. FreeBSD bundles thousands of packages from desktop apps to core modules, making it easier to build your system running this awesome operating system. + +### FreeBSD 12.4 Release: Key updates + +FreeBSD 12.4 is the 5th release of the current 12 stable series and coming up after a year’s package updates, improvements and bug fixes. + +Key changes in the release include the OpenSSL version being updated to 1.1.1q, whereas OpenSSH is bumped up to 9.1p1. The LLVM toolchain suite was also upgraded to 13.0.0. Other key version upgrades include `ena` kernel driver 2.6.1, `file` 5.43, `libarchieve` 3.6.0 and `dma` 2022-01-27. + +![FreeBSD 12.4 with Xfce desktop][3] + +Furthermore, this release now allows multiple cores to process traffic to improve performance by `if_repair` driver. Also, the `tcpdump` command now allows users to set several rules which will be exposed as part of the `pflog` header. + +On top of that, the `telnetd` daemon is deprecated in this version which should be noted for network professionals. + +The total number of changes and fixes exceeds 100+, which you can read in detail in the [change log][4]. + +### Download and Upgrade + +If you are running FreeBSD 12.3 version, you can upgrade your system by issuing the following commands: + +``` +freebsd-update -r 12.4-RELEASE upgrade +``` + +``` +freebsd-update install +``` + +For a fresh download, you can get the ISO image from the following page. + +[Download FreeBSD 12.4-RELEASE][5] + +Via [announcements][6] & [change log][4]. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/freebsd-12-4/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/bsd-generic-head.jpg +[2]: https://www.debugpoint.com/unix-history/ +[3]: https://debugpointnews.com/wp-content/uploads/2022/12/FreeBSD-12.4-with-Xfce-desktop.jpg +[4]: https://www.freebsd.org/releases/12.4R/relnotes/ +[5]: https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.4/ +[6]: https://www.freebsd.org/releases/12.4R/announce/ From 8143887efad84c2287e4a2d92fee2ea997a22e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:47:43 +0800 Subject: [PATCH 2324/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221213.0=20=E2=AD=90=EF=B8=8F=20Puppy=20Linux=2022?= =?UTF-8?q?.12=20(S15Pup)=20Arrives=20Based=20on=20Slackware=2015.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2.12 (S15Pup) Arrives Based on Slackware 15.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md diff --git a/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md b/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md new file mode 100644 index 0000000000..980ad2ec0a --- /dev/null +++ b/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md @@ -0,0 +1,82 @@ +[#]: subject: "Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15" +[#]: via: "https://debugpointnews.com/puppy-linux-22-12-s15pup/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15 +====== + +![][1] + +**A new Puppy Linux flavour (Puppy Linux 22.12 S15Pup) is now available based on Slackware 15.** + +Puppy Linux is a super lightweight distro which runs entirely on RAM and requires a very low memory footprint. It is almost loaded with all the necessary applications for everything you need. It is quite remarkable that the Puppy Linux team managed to package all these applications, which run in low memory and surprisingly within 400 MB of ISO size. There are many variants of Puppy Linux based on Ubuntu and other distros – thanks to the fantastic Puppy Builder Woof-CE. + +### Puppy Linux 22.12 (s15pup): What’s New + +The recent release of Puppy Linux 22.12 is based on the Slackware 15.0 components, which were released in February 2022. At its core, the JWM (Joe’s Window Manager) provides flexibility and good performance in Puppy Linux because it runs off the RAM. + +![Puppy Linux 22.12 based on Slackware 15][2] + +Based on Slackware, Puppy 22.12 comes with Linux Kernel LTS series 5.15 for the 64-bit. And the 5.10 for the 32-bit system. The desktop feel is the same as other Puppy flavours based on the JWM 2.4.3. The JWM is used in other distro-based Puppy flavours as well. + +In addition, FFmpeg is loaded with Mplayer for your media playing needs – if at all required in a LIVE system. Also, the “Light” web browser, based on Firefox, gives you easy and performant access to the internet. Alternative browser installation options are also present. + +Furthermore, Puppy Linux 22.12 s15pup pre-loads most of the LXDE apps and components for the overall lightweight experience, such as Lxrandr 0.3.2, Lxtask 0.1.10 and Lxterminal 0.4.0. + +ISO of this Slackware flavour is less than 400 MB in size, and, amazingly, all of the following applications are pre-loaded on it. Here’s a summary of the key packages in this version: + +| Abiword 3.0.1 | Gparted 1.3.1 | Parcellite 1.2.1 | +| Bash 5.1.016 | Grep 3.7 | Rox-filer 17w | +| Busybox 1.35.0 | Gtk+2 2.24.33 | Samba 4.12.15 | +| Cups 2.4.2 | Gtk+3 3.24.31 | Sed 4.8 | +| Curl 7.86.0 | Gtkdialog 0.8.5a | Sylpheed 3.7.0 | +| Dhcpcd 9.4.1 | Icu4c 69.1 | Syslinux 4.07 | +| Didiwiki 0.8 | Jwm 2.4.3 | Transmission 2.60 | +| Evince 2.32.0 | Lxrandr 0.3.2 | Util-linux 2.37.4 | +| Ffmpeg 4.4.3 | Lxtask 0.1.10 | Viewnior 1.7 | +| Gcc 11.2.0 | Lxterminal 0.4.0 | Xdelta 30.16 | +| Geany 1.35 | Mesa 21.3.5 | Xsane 0.999 | +| Ghostscript 9.55.0 | MPlayer 1.4 | +| Glib2 2.70.3 | Mtpaint 3.50.09 | +| Glibc 2.33 | Ncurses 6.3 | +| Gnumeric 1.10.17 | Openssl 1.1.1s | + +### Download + +Puppy Linux is one of those few distros which still provides a 32-bit installation file alongside 64-bit. You can download this version from the following links for the respective architectures. + +- [S15Pup 64-bit – based on Slackware 15.0][3] +- [S15Pup 32-bit – based on Slackware 15.0][4] +- [ScPup 64-bit – based on Slackware current][5] +- [ScPup 32-bit – based on Slackware current][6] + +If you are running it on a virtual machine, make sure to change the CPU architecture to 64-bit before installing it. + +_Via [release announcement][7] & [release notes][8]_ + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/puppy-linux-22-12-s15pup/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/pups15head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Puppy-Linux-22.12-based-on-Slackware-15.jpg +[3]: https://sourceforge.net/projects/spup/files/S15Pup64/ +[4]: https://sourceforge.net/projects/spup/files/S15Pup32/ +[5]: https://sourceforge.net/projects/spup/files/ScPup64/ +[6]: https://sourceforge.net/projects/spup/files/ScPup/ +[7]: https://forum.puppylinux.com/viewtopic.php?t=7464&sid=5ee2c343a8dbc0babc476139d188c50f +[8]: http://distro.ibiblio.org/puppylinux/puppy-s15pup/release-S15Pup-22.12.htm From 038fd1d15b4928fc80c9d4c54bb464cde1053645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:50:34 +0800 Subject: [PATCH 2325/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221213.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Battle=20of=20the=20Texts=20and=20the=20Un?= =?UTF-8?q?icode=20Savior.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Battle of the Texts and the Unicode Savior.md | 256 ++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md new file mode 100644 index 0000000000..4f5c63be1e --- /dev/null +++ b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -0,0 +1,256 @@ +[#]: subject: "Battle of the Texts and the Unicode Savior" +[#]: via: "https://itsfoss.com/unicode-linux/" +[#]: author: "Sylvain Leroux https://www.yesik.it/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Battle of the Texts and the Unicode Savior +====== + +We all know how to type text on the keyboard. Don’t we? + +So, may I challenge you to type that text in your favorite text editor: + +![«Ayumi moved to Tokyo in 1993 to pursue her career» said Dmitrii][1] + +This text is challenging to type since it contains: + +- typographical signs not directly available on the keyboard, +- hiragana Japanese characters, +- the name of the Japanese capital written with a macron on top of the two letters “o” to comply with the Hepburn romanization standard, +- and finally, the first name Dmitrii written using the Cyrillic alphabet. + +No doubt, writing such a sentence on early computers would have been simply impossible. Because computers used limited character sets, unable to let coexist several writing systems. But today such limitations are lifted as we will see in this article. + +### How do computers store text? + +Computers stores characters as numbers. And they use tables to map those numbers to the glyph used to represent them. + +For a long time, computers stored each character as a number between 0 and 255 (which fits exactly one byte). But that was far from being sufficient to represent the whole set of characters used in human writing. So, the trick was to use a different correspondence table depending on where in the world you lived. + +Here is the [ISO 8859-15][2] correspondence table commonly used in France: + +![The ISO 8859-15 encoding][3] + +But if you lived in Russia, your computer would have probably used the [KOI8-R][4] or [Windows-1251][5] encoding instead. Let’s assume that later was used: + +![The Windows-1251 encoding is a popular choice to store text written using the Cyrillic alphabets][6] + +For numbers lower than 128, the two tables are identical. This range is corresponding to the [US-ASCII][7] standard, some kind of minimum-compatible set between characters tables. But beyond 128, the two tables are completely different. + +For example, according to Windows-1251, the string _“said Дмитрий”_ is stored as: + +``` +115 97 105 100 32 196 236 232 242 240 232 233 +``` + +To follow a common practice in computer sciences, those twelve numbers can be rewritten using the more compact hexadecimal notation: + +``` +73 61 69 64 20 c4 ec e8 f2 f0 e8 e9 +``` + +If Dmitrii sends me that file, and I open it I might end up seeing that: + +``` +said Äìèòðèé +``` + +The file _appears_ to be corrupted. But it isn’t. The data— that is the _numbers_–stored in that file don’t have changed. As I live in France, my computer has _assumed_ the file to be encoded as ISO8859-15. And it displayed the characters _of that table_ corresponding to the data. And not the character of the encoding table used when the text was originally written. + +To give you an example, take the character Д. It has the numeric code 196 (c4) according to Windows-1251. The only thing stored in the file is the number 196. But that same number corresponds to Ä according to ISO8859-15. So my computer wrongly believed it was the glyph intended to be displayed. + +![When the same text file is written then read again but using a different encoding][8] + +As a side note, you can still occasionally see an illustration of those issues on ill-configured websites or in email send by [mail user agents][9] making false assumptions about the character encoding used on the recipient’s computer. Such glitches are sometimes nicknamed [mojibake][10]. Hopefully, this is less and less frequent today. + +![Example of Mojibake on the website of a French movie distributor. The website name has been changed to preserve the innocent.][11] + +### Unicode comes to save to the day + +I explained encoding issues when exchanging files between different countries. But things were even worst since the encodings used by different manufacturers for the same country were not always the same. You can understand what I mean if you had to exchange files between Mac and PC in the 80s. + +Is it a coincidence or not, the [Unicode][12] project started in 1987, led by people of Xerox and … Apple. + +The goal of the project was to define a universal character set allowing to _simultaneously_ use any character used in human writing within the same text. The original Unicode project was limited to 65536 different characters (each character being represented using 16 bits— that is two bytes per character). A number that has proven to be insufficient. + +So, in 1996 Unicode has been extended to support up to 1 million different [code points][13]. Roughly speaking, a “code point” a number that identifies an entry in the Unicode character table. And one core job of the Unicode project is to make an inventory of all letters, symbols, punctuation marks and other characters that are (or were) used worldwide, and to assign to each of them a code point that will uniquely identify that character. + +This is a huge project: to give you some idea, the version 10 of Unicode, published in 2017, defines over 136,000 characters covering 139 modern and historic scripts. + +With such a large number of possibilities, a basic encoding would require 32 bits (that is 4 bytes) per character. But for text using mainly the characters in the US-ASCII range, 4 bytes per character means 4 times more storage required to save the data and 4 times more bandwidth to transmit them. + +![Encoding text as UTF-32 requires 4 bytes per character][14] + +So besides the [UTF-32][15] encoding, the Unicode consortium defined the more space-efficient [UTF-16][16] and [UTF-8][17] encodings, using respectively 16 and 8 bits. But how to store over 100,000 different values in only 8 bits? Well, you can’t. But the trick is to use one code value (8 bits in UTF-8, 16 in UTF-16) to store the most frequently used characters. And to use several code values for the least commonly used characters. So UTF-8 and UTF-16 are _variable length_ encoding. Even if this has drawbacks, UTF-8 is a good compromise between space and time efficiency. Not mentioning being backward compatible with most 1-byte pre-Unicode encoding, since UTF-8 was specifically designed so any valid US-ASCII file is also a valid UTF-8 file. In a sense, UTF-8 is a superset of US-ASCII. And today, there is no reason for not using the UTF-8 encoding. Unless of course if you write mostly with languages requiring multi-byte encodings or if you have to deal with legacy systems. + +I let you compare the UTF-16 and UTF-8 encoding of the same string on the illustrations below. Pay special attention to the UTF-8 encoding using one byte to store the characters of the Latin alphabet. But using two bytes to store characters of the Cyrillic alphabet. That is twice more space than when storing the same characters using the Windows-1251 Cyrillic encoding. + +![UTF-16 is a variable length encoding requiring 2 bytes to encode most characters. Some character still requires 4 bytes though (for example][18] + +![UTF-8 is a variable length encoding requiring 1, 2, 3 or 4 bytes per character][19] + +### And how does that help for typing text? + +Well… It doesn’t hurt to have some knowledge of the underlying mechanism to understand the capabilities and limitations of your computer. Especially we will talk about Unicode and hexadecimal a little later. But for now… a little bit more history. Just a little bit, I promise… + +… just enough to say starting in the 80s, computer keyboard used to have a [compose key][20] (sometimes labeled the “multi” key) next to the shift key. By pressing that key, you entered in “compose” mode. And once in that mode, you were able to enter characters not directly available on your keyboard by entering mnemonics instead. For example, in compose mode, typing RO produced the ® character (which is easy to remember as an R inside an O). + +![compose key on lk201 keyboard][21] + +It is now a rarity to see the compose key on modern keyboards. Probably because of the domination of PCs that don’t make use of it. But on Linux (and possibly on other systems?) you can emulate the compose key. This is something that can be configured in the GUI on many desktop environments using the “keyboard” control panel: But the exact procedure varies depending on your desktop environment or even depending its version. If you changed that setting, don’t hesitate to use the comment section to share the specific steps you’ve followed on your computer. + +As for myself, for now, I will assume you use the default Shift+AltGr combination to emulate the compose key. + +So, as a practical example, to enter the LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, you can type Shift+AltGr<< (you don’t have to maintain Shift+AltGr pressed when entering the mnemonic). If you managed to do that, I think you should be able to guess by yourself how to enter the _RIGHT-POINTING_ DOUBLE ANGLE QUOTATION MARK. + +As another example, try Shift+AltGr--- to produce an EM DASH. For that to work, you have to press the [hyphen-minus][22] key on the main keyboard, not the one you will find on your numeric keypad. + +Worth mentioning the “compose” key works in a non-GUI environment too. But depending if you use you use X11 or a text-only console, the supported compose key sequence are not the same. + +On the console, you can check the list of supported compose key by using the `dumpkeys` command: + +``` +dumpkeys --compose-only +``` + +On the GUI, compose key is implemented at Gtk/X11 level. For a list of all mnemonics supported by the Gtk, take a look at that page: [https://help.ubuntu.com/community/GtkComposeTable][23] + +### Is there a way to avoid relying on Gtk for character composition? + +Maybe I’m a purist, but I found somewhat unfortunate the compose key support being hard-coded in Gtk. After all, not all GUI applications are using that library. And I cannot add my own mnemonics without re-compiling the Gtk. + +Hopefully, there is support for character composition at X11-level too. Formerly, through the venerable [X Input Method (XIM)][24]. + +This will work at lower-level than Gtk-based character composition. But will allow a great amount of flexibility. And will work with many X11 applications. + +For example, let’s imagine I just want to add the --> composition to enter the → character (U+2192 RIGHTWARDS ARROW), I would create a `~/.XCompose` file containing those lines: + +``` +cat > ~/.XCompose << EOT +# Load default compose table for the current local +include "%L" + +# Custom definitions + : U2192 # RIGHTWARDS ARROW +EOT +``` + +Then you can test by starting a new X11 application, forcing libraries to use XIM as input method: + +``` +GTK_IM_MODULE="xim" QT_IM_MODULE="xim" xterm +``` + +The new compose sequence should be available in the application you launched. I encourage you to learn more about the compose file format by typing `man 5 compose`. + +To make XIM the default input method for all your applications, just add to your `~/.profile` file the following two lines. that change will be effective the next time you’ll open a session on your computer: + +``` +export GTK_IM_MODULE="xim" +export QT_IM_MODULE="xim" +``` + +It’s pretty cool, isn’t it? That way you can add all the compose sequences you might want. And there are already a couple of funny ones in the default XIM settings. Try for example to press composeLLAP. + +Well, I must mention two drawbacks though. XIM is relatively old and is probably only suitable for those of us who don’t regularly need multi-bytes input methods. Second, when using XIM as your input method, you no longer can enter Unicode characters by their code point using the Ctrl+Shift+u sequence. What? Wait a minute? I didn’t talk about that yet? So let’s do it now: + +### What if there is no compose key sequence for the character I need? + +The compose key is a nice tool to type some characters not available on the keyboard. But the default set of combinations is limited, and switching to XIM and defining a new compose sequence for a character you will need only once in a lifetime can be cumbersome. + +Does that prevent you to mix Japanese, Latin and Cyrillic characters in the same text? Certainly not, thanks to Unicode. For example, the name あゆみ is made of: + +- the [HIRAGANA LETTER A (U+3042)][25] +- the [HIRAGANA LETTER YU (U+3086)][26] +- and the [HIRAGANA LETTER MI (U+307F)][27] + +I mentioned above the official Unicode character names, following the convention to write them in all upper cases. After their name, you will find their Unicode code point, written between parenthesis, as a 16-bit hexadecimal number. Does that remind you something? + +Anyway, once you know the code point of a character, you can enter it using the following combination: + +- Ctrl+Shift+u, then XXXX (the _hexadecimal_ code point of the character you want) and finally Enter. + +As a shorthand, if you don’t release Ctrl+Shift while entering the code point, you won’t have to press Enter. + +Unfortunately, that feature is implemented at software library level rather than at X11 level. So the support may be variable among different applications. In LibreOffice, for example, you have to type the code point using the main keyboard. Whereas Gtk-based application will accept entry from the numeric keypad as well. + +Finally, when working at the console on my Debian system, there is a similar feature, but requiring instead to press Alt+XXXXX where XXXXX is the code point of the character you want, but written in _decimal_ this time. I wonder if this is Debian-specific or related to the fact I’m using the en_US.UTF-8 locale. If you have more information about that, I would be curious to read you in the comment section! + +GUIConsoleCharacter | +| Ctrl+Shift+u3042Enter | Alt+12354 | あ | +| Ctrl+Shift+u3086Enter | Alt+12422 | ゆ | +| Ctrl+Shift+u307FEnter | Alt+12415 | み | + +### Dead keys + +Last but not least, there is a simpler method to enter key combinations that do not rely (necessarily) on the compose key. + +Some keys on your keyboard were specifically designed to create a combination of characters. Those are called [dead keys][28]. Because when you press them once, nothing seems to happen. But they will silently modify the character produced by the next key you will press. This is a behavior inspired from mechanical typewriter: with them, pressing a dead key imprinted a character, but will not move the carriage. So the next keystroke will imprint another character at the same position. Visually resulting in a combination of the two pressed keys. + +We use that a lot in French. For example, to enter the letter “ë” I have to press the ¨ dead key followed by the e key. Similarly, Spanish people have the ~ dead key on their keyboard. And on the keyboard layout for Nordic languages, you can find the ° key. And I could continue that list for a very long time. + +![hungary dead keys][29] + +Obviously, not all dead keys are available on all keyboard. I fact, most dead keys are NOT available on your keyboard. For example, I assume very few of you— if any— have a dead key ­­­¯ to enter the macron (“flat accent”) used to write Tōkyō. + +For those dead keys that are not directly available on your keyboard, you need to resort to other solutions. The good news is we’ve already used those techniques. But this time we will use them to emulate dead keys. Not “ordinary” keys. + +So, a first option could be to generate the macron dead key by using Compose- (the hyphen-minus key available on your keyboard). Nothing appears. But if after that you press the o key it will finally produce “ō”. + +The list of dead keys that Gtk can produce using the compose mode can be found [here][30]. + +A different solution would use the Unicode COMBINING MACRON (U+0304) character. Followed by the letter o. I will leave the details up to you. But if you’re curious, you may discover this leads to a very subtlely different result, rather than really producing a LATIN SMALL LETTER O WITH MACRON. And if I wrote the end of the previous sentence in all uppercase, this is a hint guiding you toward a method to enter ō with fewer keystrokes than by using a Unicode combining character… But I let that to your sagacity. + +### Your turn to practice! + +So, did you get it all? Does that work on your computer? It’s your turn to try that: using the clues given above, and a little bit of practice, now you can enter the text of the challenge given in the beginning of this article. Do it, then copy-paste your text in the comment section below as proof of your success. + +There is nothing to win, except maybe the satisfaction of impressing your peers! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/unicode-linux/ + +作者:[Sylvain Leroux][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.yesik.it/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2017/10//text-challenge.png +[2]: https://en.wikipedia.org/wiki/ISO/IEC_8859-15 +[3]: https://itsfoss.com/wp-content/uploads/2017/10//ISO_8859-15.png +[4]: https://en.wikipedia.org/wiki/KOI8-R +[5]: https://en.wikipedia.org/wiki/Windows-1251 +[6]: https://itsfoss.com/wp-content/uploads/2017/10//Windows-1251.png +[7]: https://en.wikipedia.org/wiki/ASCII +[8]: https://itsfoss.com/wp-content/uploads/2017/10//windows-1251-to-iso8859-15-encoding-decoding-error-example.png +[9]: https://en.wikipedia.org/wiki/Email_client +[10]: https://en.wikipedia.org/wiki/Mojibake +[11]: https://itsfoss.com/wp-content/uploads/2017/10/Mojibake-french-example.png +[12]: https://en.wikipedia.org/wiki/Unicode +[13]: https://en.wikipedia.org/wiki/Code_point +[14]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-32-encoding-example.png +[15]: https://en.wikipedia.org/wiki/UTF-32 +[16]: https://en.wikipedia.org/wiki/UTF-16 +[17]: https://en.wikipedia.org/wiki/UTF-8 +[18]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-16-encoding-example.png +[19]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-8-encoding-example.png +[20]: https://en.wikipedia.org/wiki/Compose_key +[21]: https://itsfoss.com/wp-content/uploads/2022/12/compose_key_on_lk201_keyboard.jpg +[22]: https://en.wikipedia.org/wiki/Hyphen-minus +[23]: https://help.ubuntu.com/community/GtkComposeTable +[24]: https://en.wikipedia.org/wiki/X_Input_Method +[25]: http://www.fileformat.info/info/unicode/char/3042/index.htm +[26]: http://www.fileformat.info/info/unicode/char/3086/index.htm +[27]: http://www.fileformat.info/info/unicode/char/307F/index.htm +[28]: https://en.wikipedia.org/wiki/Dead_key +[29]: https://itsfoss.com/wp-content/uploads/2022/12/hungary_dead_keys.png +[30]: https://help.ubuntu.com/community/GtkDeadKeyTable From 0f603275352f0f17b17cec1e46c2f1c80efe4e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:52:43 +0800 Subject: [PATCH 2326/3123] =?UTF-8?q?Update=2020221213.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Battle=20of=20t?= =?UTF-8?q?he=20Texts=20and=20the=20Unicode=20Savior.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index 4f5c63be1e..529dffde10 100644 --- a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -180,7 +180,8 @@ Unfortunately, that feature is implemented at software library level rather than Finally, when working at the console on my Debian system, there is a similar feature, but requiring instead to press Alt+XXXXX where XXXXX is the code point of the character you want, but written in _decimal_ this time. I wonder if this is Debian-specific or related to the fact I’m using the en_US.UTF-8 locale. If you have more information about that, I would be curious to read you in the comment section! -GUIConsoleCharacter | +| GUI | Console | Character | +| :- | :- | :- | | Ctrl+Shift+u3042Enter | Alt+12354 | あ | | Ctrl+Shift+u3086Enter | Alt+12422 | ゆ | | Ctrl+Shift+u307FEnter | Alt+12415 | み | From 738946292d165ba931b4ee270c764abcd5f1297b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:54:16 +0800 Subject: [PATCH 2327/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221213.2=20=E2=AD=90=EF=B8=8F=20Get=20ready=20to?= =?UTF-8?q?=20upgrade=20your=20video=20creation=20with=20Kdenlive=2022.12.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ade your video creation with Kdenlive 22.12.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md diff --git a/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md b/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md new file mode 100644 index 0000000000..c7477abc73 --- /dev/null +++ b/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md @@ -0,0 +1,88 @@ +[#]: subject: "Get ready to upgrade your video creation with Kdenlive 22.12" +[#]: via: "https://debugpointnews.com/kdenlive-22-12/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Get ready to upgrade your video creation with Kdenlive 22.12 +====== + +![][1] + +**Kdenlive 22.12: the free and open-source video editor scores another sizable update.** + +The best free and [open-source video editor][2] – Kdenlive 22.12, released with new filters, UI improvements, user-requested features and bug fixes. This release improves Kdenlive on top of its [already existing features][3] and gives you a platform to create professional-quality videos. + +Here’s what’s new. + +![Kdenlive 22.12 Running in Linux Mint][4] + +### Kdenlive 22.12: New Features + +A new “Timelines Guides” dock now lists all the timeline markers in your video project. Click on the timeline video clip to view the markers in this new dock. This is an imp[rovement in the marker features introduced in the past release. + +In addition to that, three new audio graph filters were introduced. They are audio level visualization filter, spectrum filter and waveform filter. These can be used in keyframe animations for more granular controls. Talking about keyframes, you can now use the standard CTRL+C and CTRL+V to copy/paste keyframes. + +Furthermore, if you are working in a complex timeline, you can now remove all the spaces between clips with two new options – remove spaces after playhead and all after playhead. + +![Two new UI improvements on timeline][5] + +Kdenlive also started work to move to Qt6 from Qt5 build for the upcoming releases. A continuous integration build pipeline is added for Qt6 to check the current build. However, the current version is not yet complete per the transition timeline. However, it is expected that Kdenline will be built with Qt6 as stable by mid of 2023. + +On top of the above changes, here are some key updates on this release: + +- More custom colour codes for categories +- Improved marker management with edit, add/remove multiple markers and import/export. +- Kdenlive now sends the content of the timeline to Glaxnimate (version >= 0.5.1), which then shows it as background. +- Set maximum cache with custom data storage size +- Option to hide the menu bar, replacing it with a hamburger menu +- The settings panel is cleaned up with better visibility and removed obsolete entries +- Work underway for Qt6 and KDE Frameworks 6 migration +- Improved Track composition + +### Download and upgrade + +If you are already running Kdenlive via the official distro repo, you should get this update within a couple of days. Simply update your system to get this version. + +Those of you running the Flatpak version, run the following command to get the update. + +``` +flatpak update org.kde.kdenlive +``` + +For fresh download and installation, visit the following page. + +[Download Kdenlive][6] + +If you prefer Flatpak, you can install this version from Flathub using the following command, after [setting up your system as Flatpak][7]. + +``` +flatpak install flathub org.kde.kdenlive +``` + +Via [release announcement][8] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/kdenlive-22-12/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/kdenlive-head.jpg +[2]: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/ +[3]: https://www.debugpoint.com/kdenlive-features/ +[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Kdenlive-22.12-Running-in-Linux-Mint.jpg +[5]: https://debugpointnews.com/wp-content/uploads/2022/12/Two-new-UI-improvements-on-timeline.jpg +[6]: https://kdenlive.org/en/download/ +[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[8]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/ From 41dedc290267948ab04ca67fcbd180be46fcf157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:55:26 +0800 Subject: [PATCH 2328/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221213.3=20=E2=AD=90=EF=B8=8F=20Linux=20Mint=20Upg?= =?UTF-8?q?rade=20Tool=20Usage=20Guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md diff --git a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md new file mode 100644 index 0000000000..8e3ccb1d82 --- /dev/null +++ b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md @@ -0,0 +1,104 @@ +[#]: subject: "Linux Mint Upgrade Tool: Usage Guide" +[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint Upgrade Tool: Usage Guide +====== + +**Here’s how you can upgrade to new Linux Mint versions using the Mint upgrade tool, i.e. mintupgrade GUI with actual upgrade process screenshots.** + +If you are looking for **detailed upgrade** steps to the recently released **Linux Mint 21 Vanessa**, read this guide 👉 [upgrade-linux-mint-21-from-20-3][1] + +### Linux Mint Upgrade Tool + +The Linux Mint team [announced][2] a few months back, that they built a new utility to upgrade the Linux Mint’s significant versions. It’s called the “mintupgrade2”. Development is complete, and It is currently under the support and planning for upgrading to the major versions—for example, Linux Mint 20 to 21 and not the minor version upgrades. + +Although you can upgrade the versions using the standard apt commands, the Mint team believes significant version upgrades are tricky. It would be difficult for the new users to perform a seamless upgrade because it involves the terminal and a set of complex steps with commands. + +Moreover, the GUI is a wrapper with additional features to the mintupgrade program, which brings a set of pre-system checks and upgrade processes with a one-click Fix. + +In addition, the mintupgrade checks basic checks, whether you are connected to power, the system is up to date, disk space availability and many more features. + +To show you how it looks and works, we set up a testbed with LMDE 4 and give it a go. + +But before that, here’s a quick set of features: + +- Entirely GUI-driven upgrade process +- Multi-language support +- Pre-upgrade checks: system backup, power, disk space, list of removed packages +- Configurable +- Alert you about the orphaned packages from the prior version +- It gives you the option to fix issues + +### How it works + +When we ran the mint upgrade utility via the command `mintupgrade`, the GUI, the friendly welcome screen gives you an excellent starting point and starts the upgrade process. And then, it begins with a series of checks on its own. + +![Starting the upgrade process][3] + +In addition to that, when it finds some problem in your system, it stops and gives you sufficient details about it. Once you click on Fix, it can resume the process again. + +That’s not all; it can resume the upgrade process if interrupted due to network or internet or any other problem. + +The utility found the following errors in our test system during our test and fixed them with just one click. + +![Apt Cache check][4] + +![Mint Upgrade detects that system snapshots not present][5] + +![Check for Orphan Packages][6] + +![Status before upgrade][7] + +![Mint Upgrade can detect the packages require downgrade][8] + +Lastly, we successfully upgraded a test system from LMDE 4 to LMDE 5. + +![Upgrade Complete][9] + +#### How to get this upgrade utility + +The installation of the utility is easy using the commands below. However, if you are running the latest version of Linux Mint 21, it should already be installed and try by running mintupgrade from the terminal. + +``` +sudo apt update +``` + +``` +sudo apt install mintupgrade +``` + +### Closing Notes + +Finally, I think it’s one of the best utilities by the Linux Mint team. As you can see above, it handled many errors on its own. All I did was click the “Fix” button. And the utility is smart enough to understand all the failure points and take care of the remediations. + +[GitHub and source code of mintupgrade][10] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/mint-upgrade-tool/ + +作者:[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/upgrade-linux-mint-21-from-20-3/ +[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg +[10]: https://github.com/linuxmint/mintupgrade From e987a42b69226bf089cfba03d1845e56ff6eb699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:57:20 +0800 Subject: [PATCH 2329/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221213.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Use=20Django=20to=20send=20emails=20with=20SMTP.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Use Django to send emails with SMTP.md | 300 ++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md diff --git a/sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md b/sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md new file mode 100644 index 0000000000..7e6ab1dc0a --- /dev/null +++ b/sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md @@ -0,0 +1,300 @@ +[#]: subject: "Use Django to send emails with SMTP" +[#]: via: "https://opensource.com/article/22/12/django-send-emails-smtp" +[#]: author: "Sofiia Tarhonska https://opensource.com/users/sofiiatarhonska" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use Django to send emails with SMTP +====== + +Numerous professions utilize simple mail transfer protocol (SMTP) to deliver emails to their end users. SMTP also retrieves messages, though that has not been its primary use case. Open source frameworks like Django, a Python-based web framework, allows more control for sending emails using functions and expressions. + +This article shows how to configure an SMTP server and send emails in Django using SMTP. + +### Project setup and overview + +Before proceeding, this tutorial requires a code editor (such as [VS Code or Codium][1]) on your preferred device. + +Start by creating a new directory using the command in the terminal: + +``` +mkdir exampledirectory +``` + +Then change into the directory using the command: + +``` +cd exampledirectory +``` + +Within the newly created directory, create a [virtual environment][2] using the built-in venv module in the command terminal: + +``` +python -m venv +``` + +This command creates a virtual environment within the folder created earlier. To activate it, use the following command in the terminal: + +On Linux and Mac: + +``` +source .virtenv/bin/activate +``` + +On Windows: + +``` +\Scripts\activate +``` + +### Creating a Django project + +After activating the virtual environment, proceed to install the Django package from [pip][3]: + +``` +pip install django +``` + +Create a new Django project: + +``` +python -m django startproject NewEmailProject +``` + +This command creates a project with the name `NewEmailProject`. To run the project, head to the project directory (`NewEmailProject`) and run the server: + +``` +python manage.py runserver +``` + +Open the link for the developmental server in a browser. You see the Django homepage with release notes. + +### Configuration for sending emails + +Next, open the `settings.py` file (in the `NewEmailProject` folder) to customize configurations for sending emails using Django. + +Scroll to the end of the code and update the file with the following code: + +``` +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_HOST = 'smtp.yourserver.com' +EMAIL_USE_TLS = False +EMAIL_PORT = 465 +EMAIL_USE_SSL = True +EMAIL_HOST_USER = 'your@djangoapp.com' +EMAIL_HOST_PASSWORD = 'your password' +``` + +Change the value of the `EMAIL_HOST` depending on your email client. Here are the acceptable values for common email clients: + +- **Gmail:**`smtp.gmail.com` +- **Outlook:**`smtp-mail.outlook.com` +- **Yahoo:**`smtp.mail.yahoo.com` + +You can change the `EMAIL_PORT` or leave 465 as the default. + +You can use the secure socket layer (SSL) and transport socket layer (TSL) interchangeably as they specify connection security. + +To figure out other custom configurations for your email server, check out the full [Django Project documentation][4]. + +### SMTP email backend + +The `EMAIL_BACKEND` expression helps determine the most suitable backend when sending emails through the Django SMTP server. This variable points to `smtp.EmailBackend`, which receives all the parameters needed for sending emails. It tells Django to send the email to the recipient email using SMTP and not to the console. + +### Sending emails with SMTP + +When the environment is set up and `settings.py` is updated, you can send emails in Django. You can use an HTML form that sends a post request of the necessary information needed for sending an email. + +Create a Django application for sending emails: + +``` +python manage.py startapp mail +``` + +Next, open the `settings.py` file and add the Django application (mail) to the `INSTALLED_APPS` list: + +``` +INSTALLED_APPS = [ +"django.contrib.admin", +"django.contrib.auth", +"django.contrib.contenttypes", +"django.contrib.sessions", +"django.contrib.messages", +"django.contrib.staticfiles", +"mail"] +``` + +### Send mail function + +In the mail application's `views.py` file, start by importing the `EmailMessage` and `get_connection` from `django.core.mail`: + +``` +from django.core.mail import EmailMessage, get_connection +``` + +The `EmailMessage` class is responsible for creating the email message itself. The `get_connection()` function returns an instance of the email backend specified in `EMAIL_BACKEND`. + +Now create a function that accepts a `POST` request, which contains form data submitted from the client side. Followed by the `get_connection()` functions parameters containing the email configurations created in the project `settings.py` file. + +Next, import the settings: + +``` +from django.conf import settings +``` + +This import allows access to the email configurations created in the `settings.py`. Next, create the variables: + +``` +subject, recipient_list, +``` + +Then you can `message`, and store the corresponding attributes used in the HTML form. The `email_from` variable contains the sender email, which is obtained from `EMAIL_HOST_USER` in the `settings.py` file. + +After the variables are processed, the `EmailMessage` class sends an email using the `sends()` method, and then closes the connection. The `send_email()` function renders the `home.html` file containing the email form. + +You can create a templates folder within your mail application and store the HTML files within that folder: + +``` +from django.core.mail import EmailMessage, get_connectionfrom django.conf import settingsdef send_email(request):   +   if request.method == "POST": +       with get_connection(   +           host=settings.EMAIL_HOST, +     port=settings.EMAIL_PORT,   +     username=settings.EMAIL_HOST_USER, +     password=settings.EMAIL_HOST_PASSWORD, +     use_tls=settings.EMAIL_USE_TLS   +       ) as connection:   +           subject = request.POST.get("subject")   +           email_from = settings.EMAIL_HOST_USER   +           recipient_list = [request.POST.get("email"), ]   +           message = request.POST.get("message")   +           EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()   +  +   return render(request, 'home.html') +``` + +This is a bootstrap form for generating a message: + +``` +
              + {% csrf_token %} + 
              +      +      +   
              +   
              +      +      +   
              +   
              +      +      +   
              +   
              +``` + +This form sends a post request to the `send_email()` function. This processes the form data and sends the email to the recipients. + +Now open the `urls.py` file in the `NewEmailProject` folder to create the homepage URL. Update the `urlpattern` list by adding the code `path("", send_email)` . + +### Sending email to multiple recipients + +To specify multiple recipients when sending the same email, create a new function called `send_emails` within the `views.py` file and modify the send function code: + +``` +def send_emails(request):   +    if request.method == "POST": +        with get_connection(   +              host=settings.EMAIL_HOST, +        port=settings.EMAIL_PORT,   +       username=settings.EMAIL_HOST_USER,   +       password=settings.EMAIL_HOST_PASSWORD,   +        use_tls=settings.EMAIL_USE_TLS +        ) as connection:   +            recipient_list = request.POST.get("email").split()   +            subject = request.POST.get("subject")   +            email_from = settings.EMAIL_HOST_USER   +            message = request.POST.get("message")   +            print(type(recipient_list)) +            EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()   +  +    return render(request, 'send_emails.html') +``` + +For the `recipient_list` variable, I'm using the Python `split()` method to convert the recipients email string to list so that I can email all of them. + +Next, create another HTML file called `send_emails.html` in the templates folder and use the same form code for the `home.html` file within it. + +To specify multiple email recipients, use a space between each email address: + +``` +first@gmail.com second@gmail.com third@gmail.com +``` + +You should also update the `urlpattern` list by adding the code: + +``` +path("send-emails/", send_email) +``` + +### Sending HTML emails + +You can also send HTML emails with Django using a slightly modified version of the `send_email` function: + +``` +html_message = '''

              this is an automated message

              ''' +msg = EmailMessage(subject, html_message, email_from,recipient_list, connection=connection) +msg.content_subtype = "html" +msg.send() +``` + +### Sending emails with attachment + +To include attachment to mails, create a variable and put it in the file path in a string like this: + +``` +attachment = "mail/templates/example.png" +``` + +Then, move the `EmailMessage` function to a variable and call the `attach_file` method followed by the `send` method: + +``` +msg = EmailMessage(subject, message, email_from, recipient_list, connection=connection) +msg.attach_file(attachment) +msg.send() +``` + +### Django email libraries + +This guide on sending emails in Django would not be complete if I didn't mention the email libraries that are available to users. Here are some noteworthy email libraries. + +- **Django mailer** is a Django app for queuing as it saves emails in a database and sends the mail out at a designated time. +- **Django templated email** aims to send templated emails. It offers features like configurable template naming and location, template inheritance, and adding recipients to the CC and BCC lists. +- **Anymail** allows the use of an email service provider (ESP). By using `django.core.mail`, it provides a sustained API that avoids tying your code to a single ESP. + +### Emailing with Django + +Sending emails in Django can sound daunting, but it's as simple as creating a virtual environment. You can add Django to the environment and create an email backend. Finally, you can set up an HTML template. Give it a try. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/django-send-emails-smtp + +作者:[Sofiia Tarhonska][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/sofiiatarhonska +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/6/open-source-alternatives-vs-code#vscodium +[2]: https://opensource.com/article/21/2/python-virtualenvwrapper +[3]: https://www.redhat.com/sysadmin/install-python-pip-linux +[4]: https://docs.djangoproject.com/en/3.2/ref/settings/#email-backend + From 162da5d306602bec897a453154215d5c9f2522f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 22:58:42 +0800 Subject: [PATCH 2330/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221213.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Drupal=2010=20is=20worth=20a=20fresh=20look.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....5 ⭐️⭐️ Drupal 10 is worth a fresh look.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md diff --git a/sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md b/sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md new file mode 100644 index 0000000000..408b105756 --- /dev/null +++ b/sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md @@ -0,0 +1,79 @@ +[#]: subject: "Drupal 10 is worth a fresh look" +[#]: via: "https://opensource.com/article/22/12/drupal-10-fresh-look" +[#]: author: "Martin Anderson-Clutz https://opensource.com/users/mandclu" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Drupal 10 is worth a fresh look +====== + +The popular Drupal open source content management system (CMS) reaches a significant milestone when version 10 is released on December 14. Personally, I think Drupal X sounds way cooler, but so far, my calls to name it that haven't gotten much traction. I enlisted the help of my friend Aaron Judd of [Northern Commerce][1] to give us a sense of how cool Drupal X could look: + +![New Drupal 10 racing 10 logo][2] + +### What's a Drupal, anyway? + +Drupal is an open source CMS and development framework. While other CMS options focus on simple long-form content (think blogs) or entirely free-form content (like in Wix or Squarespace), Drupal has made a name for itself in handling more complex content architectures, in multiple languages, with robust content governance. Drupal sites (like this site, Opensource.com!) benefit from a strong role-based access control (RBAC) system, unlimited custom roles and workflows, and a powerful and extensible media library. + +Here's a rundown for anyone who hasn't kept tabs on what's coming in the newest major version. + +### A fresh face + +Most Drupal sites use custom themes to give them a unique look and feel. Still, the initial experience you have when installing a CMS matters. In Drupal, themes define the look and feel of a site, and you can use different themes for public and administrative experiences. Until recently, the Bartik and Seven themes had been the default face of Drupal for more than a decade. To put that in context, when Bartik was released, the most popular browser in the world was Internet Explorer 8. A lot has changed since then, particularly around best practices for building websites. + +In fact, a significant change in Drupal 10 will be the removal of support for Internet Explorer (IE), which is itself no longer supported by Microsoft and hasn't seen major updates since 2013. That may not sound like an improvement, but continued support for IE kept the community from adopting modern markup and styling. For example, thanks to being unencumbered by support for legacy browsers, Drupal 10 includes a new responsive grid layout that's so innovative it got a writeup in [CSS Tricks][3]. + +![Responsive grid configuration][4] + +The new faces of Drupal are two brand new themes: Olivero for visitors and Claro for admins. In addition to being fresh and modern designs, both were developed with accessibility as a top priority. + +### Improvements under the hood + +More than a decade ago, the Drupal community decided to "Get Off the Drupal Island." That meant adopting solutions shared across popular projects and frameworks instead of ones developed and maintained exclusively by the Drupal community. Today Drupal leverages a variety of projects and libraries whose names will be familiar to open source developers who have never touched Drupal: Symfony, Composer, CKEditor, Twig, Nightwatch, and more. + +That has brought a variety of powerful capabilities to Drupal and allowed it to contribute back to those solutions, benefitting a broader set of developers. It has also become a determining factor for the cadence of Drupal's major version releases. + +To illustrate, consider that Drupal 7 was released in early 2011. Drupal 8 was released almost five years later, towards the end of 2015. Drupal 9 was released in June of 2020, with a key motivator being the move to supported versions of underlying dependencies and removing deprecated code. And now, roughly two and half years later, we're already planning to release Drupal 10. This new major version will leverage updated versions of PHP, Symfony, and Composer, among others. + +### An all-new editor + +An upgrade of particular note is the move to CKEditor 5. Although notionally an incremental update, under the hood CKEditor 5 was completely rewritten, much the same as the transition from Drupal 7 to 8. In addition to a sleeker interface, CKEditor 5 has the potential for exciting new capabilities, such as real-time collaboration. Drupal's CKEditor integration for version 5 has already been augmented with a number of UI enhancements. For example, media placed within content can be configured using an overlaid toolbar ribbon instead of needing to launch a modal dialog to access these settings. Also, the styles dropdown now includes a preview of each type available. + +![Real-time collaboration][5] + +### A look ahead + +Earlier in 2022, Drupal creator and project lead Dries Buytaert announced a focus on "ambitious site builders." This means that while the community will continue to work on making the developer experience better in general, moving forward there is a particular focus on making it easier to create engaging experiences in Drupal without having to write code or use command-line tools. Three strategic initiatives embody this new focus: Automatic Updates, the Project Browser, and Recipes. + +**Automatic Updates** will reduce the total cost of ownership for Drupal sites and help them be more secure by ensuring they always have the latest core security patches. This will be a major benefit for site owners and Drupal development teams everywhere. However, judging by personal experience, Wednesday night pizza sales may take a hit (traditionally, the Drupal security team releases updates on the third Wednesday of the month). There is now a stable release of Automatic Updates as a contrib module. Work has begun to move this into Drupal core, so all Drupal sites will eventually be able to leverage this capability. + +The **[Project Browser][6]** makes Drupal sites easier to build, maintain, and evolve by allowing site builders to search and browse through a subset of Drupal's vast catalog of available modules, prefiltered to the site's Drupal version, for security, stability, and more. A site builder can select, download, and install a module without leaving the site's web interface. In fact, there's an "app store" like interface meant to promote the most popular modules available that are compatible with the current site's version of Drupal. While other CMS options have had similar offerings, this advancement means you don't need to sacrifice ease-of-use to take advantage of the power of Drupal. Also, all of the thousands of modules listed are 100% free. + +For many years Drupal has had a concept of distributions. These are opinionated versions of Drupal designed to meet specific use cases such as media publishing, fundraising, intranet portals, and more. While distributions have proven an excellent way to accelerate initial development, in practice, they have been known to require significant work to maintain and create extra work for site owners during maintenance. The **Recipes** initiative aims to make more granular, composable functionality available when building a site. Want to add a staff directory, events calendar, or locations map to your site? In the future, this will be as easy as installing a recipe and then customizing it to meet your site's specific needs. + +### It's an exciting time to try Drupal + +Drupal 10 is the culmination of work contributed by thousands of dedicated and talented community members worldwide. If you're not already using Drupal, we hope you'll try it out for your next project. There's a common saying among Drupalists: "Come for the code, stay for the community." + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/drupal-10-fresh-look + +作者:[Martin Anderson-Clutz][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/mandclu +[b]: https://github.com/lkxed +[1]: https://www.northern.co/ +[2]: https://opensource.com/sites/default/files/2022-12/DrupalX-RacerSticker-DrupalBlue-300ppi.png +[3]: https://css-tricks.com/an-auto-filling-css-grid-with-max-columns +[4]: https://opensource.com/sites/default/files/2022-11/responsive-grid-config.png +[5]: https://opensource.com/sites/default/files/2022-11/realtime-collaboration_0.gif +[6]: https://www.drupal.org/project/project_browser From ccc0dd93df7c6334ea1080e2f90a18e89350f40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 23:00:40 +0800 Subject: [PATCH 2331/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221213.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Try=20this=20Linux=20web=20browser=20as=20your=20file=20manager?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Try this Linux web browser as your file manager.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md diff --git a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md new file mode 100644 index 0000000000..622adb597e --- /dev/null +++ b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md @@ -0,0 +1,96 @@ +[#]: subject: "Try this Linux web browser as your file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Try this Linux web browser as your file manager +====== + +Konqueror is a file manager and web browser for the KDE Plasma Desktop. In many ways, Konqueror defined "network transparency," as it applied to a personal desktop. With Konqueror, you can browse remote network files (including the Internet itself, which really is just a collection of remote files viewed through a fancy lens) just as easily as browsing your local files. Sometimes there was some configuration and setup required, depending on what kind of file share you needed to access. But ultimately, the goal of having instant access to all the data you had permission to view was a reality with Konqueror in ways no other file manager had achieved. And at its peak, the open source web engine it developed (KHTML) was adopted by both Apple and Google, and lives on today as the core library of modern web browsing and, technically, Electron app development. + +Today, the KDE Plasma Desktop lists Konqueror as a web browser. Officially, file management has shifted over to [Dolphin][1], but Konqueror is still capable of doing the job. For the full and classic Konqueror experience, you should try the Plasma Desktop 3.x fork [TDE][2], but in this article I use Konqueror in KDE Plasma Desktop version 5. + +### Install Konqueror + +If you're running KDE Plasma Desktop already, you may already have Konqueror installed. If not, you can install it from your distribution's software repository. On Fedora, CentOS, Mageia, OpenMandriva, and similar: + +``` +$ sudo dnf install -y konqueror konqueror-plugins +``` + +On Debian, Linux Mint, Elementary, and similar: + +``` +$ sudo apt install -y konqueror konqueror-plugins +``` + +![Image of ​Konqueror's file manager.][3] + +### Configure Konqueror as a file manager + +The most convenient feature of Konqueror is that it's a web browser in addition to being a file manager. Or at least, that's theoretically its most convenient feature. If you're not using Konqueror as a web browser, then you may not want the URL field or the search engine field at the top of every file manager window. + +As with most KDE applications, Konqueror is highly configurable. You can reposition and add and remove toolbars, add or remove buttons, and so on. + +To adjust what toolbars are displayed, launch Konqueror and go to the **Settings** menu and select **Toolbars Shown**. The **Main** toolbar is probably all you really need for file management. It's the toolbar with navigation buttons on it. However, you may not even need that, as long as you're happy to navigate with keyboard shortcuts or using the **Go** menu. + +Keyboard navigation in Konqueror is the same as in Dolphin: + +- **Alt+Left arrow**: Back one step +- **Alt+Up arrow**: Move to parent directory +- **Alt+Home**: Go to home directory + +### Side panel + +To get a side panel with a listing of common folders, press **F9** or select **Show Sidebar** from the **Settings** menu. This adds a button bar along the left side of the Konqueror window. Click the **Home** icon to display a file tree of your home directory. + +![Image of ​Konqueror with a sidebar.][4] + +As the button bar suggests, this side panel can serve many purposes. Instead of your home directory, you can display bookmarked locations, a history of recent locations you've visited, remote filesystems, and more. + +### Applications + +Some people are used to an application menu. It's efficient and quick, and always in the same place. Other people prefer to launch applications from the terminal. + +There's yet another way to view application launchers, though. Konqueror's **Go** menu allows you go to a meta location called **Applications**, which lists application launchers, by category, as files in a file manager. + +![Image of ​applications in Konqueror.][5] + +You can see this in Dolphin, too, by manually typing **applications:** in the location field, but of the two it's Konqueror that provides a menu option to go there directly. + +### Network folders + +Similarly, Konqueror also provides a menu selection to go to network folders. The greatest network folder of them all is the Internet, but **Network Folders** is the meta location for network protocols other than HTTP. Most remote locations require some setup because they usually require authentication to access. Most of them can be configured through **System Settings**, including file systems accessible over Bluetooth, SMB or CIFS, MTP devices, Fish (file system over SSH), and even Google Drive. + +### Split view + +You can split the Konqueror window into panes, allowing you to see two folders at once without opening two windows. There are two split options: a vertical split with one pane on the left and the other on the right, or a horizontal split with one pane above the other. + +To split the Konqueror window, go to the **Window** menu and select either **Split View Left/Right** or **Spit View Top/Bottom**. Each pane is independent of the other, so you can navigate around in one pane, and then drag and drop files from one to the other. + +### Conquering your file system + +Konqueror isn't _just_ a file manager, and I don't think the developers of the Plasma Desktop expect you to use it as your primary file manager. There's even an option in the **File** menu to open a location in **Dolphin**, which indicates that Konqueror is a web browser with a file manager component. But that file manager component is a nice feature to have when you need it. And if you're not a fan of all the features Dolphin offers, Konqueror could be a suitable alternative. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-konqueror + +作者:[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/article/22/12/linux-file-manager-dolphin +[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde +[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png +[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png +[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png From 6c0b75be8a3f8a7b2d3cf9643f7bef5298c5c669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 23:01:34 +0800 Subject: [PATCH 2332/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221213.7=20=E2=AD=90=EF=B8=8F=20Firefox=20108=20un?= =?UTF-8?q?locks=20the=20power=20of=20music=20on=20the=20web=20with=20new?= =?UTF-8?q?=20WebMIDI=20API=20support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...sic on the web with new WebMIDI API support.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md diff --git a/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md b/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md new file mode 100644 index 0000000000..b099cd8b00 --- /dev/null +++ b/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md @@ -0,0 +1,73 @@ +[#]: subject: "Firefox 108 unlocks the power of music on the web with new WebMIDI API support" +[#]: via: "https://debugpointnews.com/firefox-108/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Firefox 108 unlocks the power of music on the web with new WebMIDI API support +====== + +![][1] + +**Firefox 108 is now available to download, bringing the following new features.** + +The final Firefox release of this year is here – Firefox 108, closing an eventful year of this free and open-source web browser from Mozilla. + +![Firefox 108 Running in Ubuntu][2] + +### Firefox 108: Best new features + +If you are a music enthusiast, then some good news for you. Firefox now supports the [WebMIDI API][3] inside your browser with proper access controls. When you try to access MIDI devices via Firefox, then you get a prompt for installing a “[site permission add-on][4]” to enable this API. + +In addition, Firefox 108 enabled import maps by default, which means web pages can now control the behaviour of JavaScript imports more easily. And if you use Firefox, you’ll be happy to hear that it now supports proper colour correction for images tagged with ICCv4 profiles. + +Furthermore, developers added a handy keyboard shortcut – press SHIFT+ESC to open the Process Manager and quickly identify any processes using too many resources. And on Windows 11, Firefox added efficiency mode for processes used in background tabs to help save on resources. + +Elsewhere, your browser’s bookmark toolbar gets an option “Only show on New Tab” state, which now works correctly for blank new tabs. Also improved in this release is the handling of non-ASCII characters while exporting PDF forms from web pages. + +If you are a web developer, Firefox 108 also arrives with a handful of Math function updates which are summarised alongside other vital changes: + +- The `source` element supports `height` & `width` attributes when it is a child of a `picture` element. +- Trigonometric functions are now enabled with the `layout.css.trig.enabled` preference set to true by default. This allows the use of sin(), cos(), tan(), asin(), acos(), atan(), and atan2() functions +- CSS `calc-constant`type is implemented to allow for well-known constants such as pi and e within math functions +- Container query length units are now supported via the the `layout.css.container-queries.enabled` preference, which is set to false by default + +### Download and update + +For Linux distributions, if you used Firefox via your distribution’s official repository, then you should get this update within a couple of days from today. + +However, you can also download the compressed version of this release from the below page. For other download options, do visit our [Firefox download guide][5]. + +[Download Firefox 108][6] + +Happy browsing! + +- [Official release notes][7] +- [Beta108 release notes][8] +- [Developer release notes][9] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/firefox-108/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/04/firefox-head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Firefox-108-Running-in-Ubuntu.jpg +[3]: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API +[4]: https://support.mozilla.org/en-US/kb/site-permission-addons +[5]: https://www.debugpoint.com/download-firefox/ +[6]: https://ftp.mozilla.org/pub/firefox/releases/108.0/ +[7]: https://www.mozilla.org/en-US/firefox/108.0/releasenotes/ +[8]: https://www.mozilla.org/en-US/firefox/108.0beta/releasenotes/ +[9]: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/108 From 94da2fe1eef95a9d2cd9715e762506ba81fae4bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 13 Dec 2022 23:01:59 +0800 Subject: [PATCH 2333/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221213.8=20=E2=AD=90=EF=B8=8F=20Kdenlive=2022.12?= =?UTF-8?q?=20Release=20Adds=20Useful=20New=20Features.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...live 22.12 Release Adds Useful New Features.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md diff --git a/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md b/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md new file mode 100644 index 0000000000..7954cc1ae8 --- /dev/null +++ b/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md @@ -0,0 +1,106 @@ +[#]: subject: "Kdenlive 22.12 Release Adds Useful New Features" +[#]: via: "https://news.itsfoss.com/kdenlive-22-12-released/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kdenlive 22.12 Release Adds Useful New Features +====== + +Kdenlive 22.12 upgrade is here with nice enhancements across the board. + +![Kdenlive 22.12 Release Adds Useful New Features][1] + +Kdenlive is an open-source cross-platform video editing software built by the KDE community, which has been around since 2003. + +Built using Qt and KDE Frameworks, it has been the editor of choice for many users out there. + +Recently, the latest upgrade to it i.e Kdenlive 22.12 has been made available, let me take you through the release. + +### 🆕 Kdenlive 22.12: What's New? + +![kdenlive 22.12][2] + +Kdenlive 22.12 features numerous improvements, with over 350 commits made. It brings in many new features, bug fixes, and prepares the code base for future releases. + +Let me take you through some of the notable improvements with this release. + +#### Revamped Guide and Marker System + +![kdenlive 22.12 guides dock][3] + +The guide and marker system on Kdenlive has received a major overhaul, with the key changes being: + +- All marker and guide features are now made available in the new 'Guides' dock. +- The 'Guides' dock also lets you easily seek, search, sort, and filter through the various markers and guides. It also allows for navigation with keyboard. +- You can now create many categories to suit your needs, compared to the nine categories limit previously. +- It is now also possible to edit, add, or remove multiple markers at a time, and the import/export of markers has been improved. + +#### Improved Glaxnimate Integration + +![kdenlive 22.12 glaxnimate integration][4] + +Kdenlive already had support for Glaxnimate with its previous release, but now the developers have taken it a step further. + +The editor now lets you send the content of your Kdenlive timeline to [Glaxnimate][5] (version >= 0.5.1), which will then show up in the background. + +> 💡 Glaxnimate is an open-source 2D vector drawing and animation program. + +This allows you to create animations that play together with your videos in a much easier fashion than was possible before. + +#### Various UX Improvements + +Kdenlive includes a variety of usability improvements, such as: + +- A new hamburger menu in the toolbar that can be used instead of the menu bar. +- 'What's This?' Text has been added in several places to show what a specific element does. +- You can now define a maximum size for the cached data stored by Kdenlive in the environment settings. +- The 'Settings' page has received a cleanup, and now features a reordered list of all the important options. + +#### Keyframeable Audio Graph Filters + +Existing audio graph filters like the audio level visualization filter, audio spectrum filter and audio wave form filter are now keyframeable with Kdenlive 22.12. + +They also fixed several effects that were affected due to syntax errors in the XML code and added automated tests to the build system to avoid such an issue in the future. + +#### 🛠️ Other Changes + +Besides the changes listed above, here are some of the other notable ones: + +- Improved track composition. +- PipeWire as SDL output. +- The Color Picker has been fixed on Wayland. +- Pixabay as the new video provider. +- Improved search performance. + +If you want to dive deep into the release notes, refer to the [official announcement][6]. + +### 📥 Download Kdenlive 22.12 + +For Linux, the latest release is available as an AppImage, on Flathub, and as an Ubuntu PPA. + +Head over to the [official website][7] to download those. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kdenlive-22-12-released/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kdenlive-22-12-release.png +[2]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12.png +[3]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Guides_Dock.png +[4]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Glaxnimate.png +[5]: https://glaxnimate.mattbas.org +[6]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/ +[7]: https://kdenlive.org/en/download/ From 42e4565291a381af0f5106bc4771ab5bfe37715f Mon Sep 17 00:00:00 2001 From: CanYellow Date: Wed, 14 Dec 2022 08:42:16 +0800 Subject: [PATCH 2334/3123] home trans --- ...20221019.5 ⭐️⭐️ Our open source startup journey.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md index 3dcf5ba6af..f6f3514585 100644 --- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md +++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md @@ -98,17 +98,28 @@ DN DN June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2]. +下午6点左右,我又在 [HackerNews][3]上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。大量的访问者和用户报告了软件和文档中的漏洞。距离在 HackNews 上发帖八个小时之后,超过1000名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮星标,并且有了数百个 ToolJet 云端的注册请求。上升趋势一直持续到三天后,ToolJet 版本库总计得到了2400个星标。 +DN I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars. ![ToolJet repo stats on GitHub][4] +图片来源: + +DN Image by: GitHub StarTrack for ToolJet. (Navaneeth PK, CC BY-SA 4.0) +### 获得资助 + +DN ### Getting funding +ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们有了其他的选择,但从没有认真考虑过这些它们。这些选择包括: + +DN The traction on GitHub was enough to be noticed by the venture capitalist (VC) world. The days following the launch were packed with calls. We had other options, but did not consider seriously consider them, including: - Bootstrapping: During the early stages of the product, it was hard to find paying customers, and I did not have enough savings to fund the project until that happened. From be879fcb49a54a9c85c648f508596783275663a1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 14 Dec 2022 08:53:18 +0800 Subject: [PATCH 2335/3123] translated --- ...e Images With ‘Converter’ GUI Tool in Linux.md | 87 ------------------- ...e Images With ‘Converter’ GUI Tool in Linux.md | 87 +++++++++++++++++++ 2 files changed, 87 insertions(+), 87 deletions(-) delete mode 100644 sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md create mode 100644 translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md diff --git a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md deleted file mode 100644 index 318da04906..0000000000 --- a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md +++ /dev/null @@ -1,87 +0,0 @@ -[#]: subject: "Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux" -[#]: via: "https://itsfoss.com/converter-tool/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux -====== - -You can always [install ImageMagick][1] on your system to convert images, but not everyone likes to use the terminal for converting and manipulating images. - -So, what if you have a GUI app as a front-end to help with that? **Converter** is precisely that. - -It is a front-end to ImageMagick. So you do not need to use commands to convert and manipulate images. - -Note that most Ubuntu systems usually have ImageMagick pre-installed. You can always refer to our [installation guide][1] if you do not have it on your system. - -### Converter: A Graphical Front-end to ImageMagick - -![converter gui][2] - -It should not take a lot of effort to convert images. It is a simple task, and that is how it should be. - -I do not want to type a command to convert an image quickly. Hence, I prefer graphical tools that enable me to do things faster. - -[Converter][3] is an open-source graphical front-end that enables you to do that. It is a GTK4+libadwaita application. - -You can convert the images to various file formats that include **png, webp, jpeg, heif, heic, and bmp**. It is safe to say that you get support for the most popular image file formats. So, it should come in pretty handy. - -![file format converter][4] - -You can set a location to save all the files, and the converted images will automatically be stored at that location. - -![customize converter][5] - -You can also adjust an image’s quality, size, and background color. To access these options, click on “**More Options**” in the user interface before converting the image. - -![converter more options][6] - -The image size can be customized using its percentage, exact pixels, or ratio. For precise manipulation, changing the dimensions should help. - -If you want the image scaled to an extent, the percentage or ratio functionality should help you do that. You can also choose to add filters to your images. - -Overall, you get the basic options to re-size, convert, and optimize the image quality with Converter. - -You can also [tweak Nautilus][7] to have the [resize option in the right-click context menu][8]. It won’t be as versatile as this tool. - -### Install Converter on Linux - -Converter is available as a Flatpak on [Flathub][9] to install on any Linux distribution of your choice. - -Unfortunately, you do not get any binary packages to install on your Linux system. So, you might want to refer to our [Flatpak guide][10] to get it installed. - -``` -flatpak install flathub io.gitlab.adhami3310.Converter -``` - -You can explore more about it on its [GitLab page][3]. - -_Do you have any suggestions to nifty tools like this for us to highlight next? Let us know in the comments._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/converter-tool/ - -作者:[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/install-imagemagick-ubuntu/ -[2]: https://itsfoss.com/wp-content/uploads/2022/12/converter-gui.png -[3]: https://gitlab.com/adhami3310/Converter -[4]: https://itsfoss.com/wp-content/uploads/2022/12/file-format-converter.png -[5]: https://itsfoss.com/wp-content/uploads/2022/12/customize-converter.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/converter-more-options.png -[7]: https://itsfoss.com/nautilus-tips-tweaks/ -[8]: https://itsfoss.com/resize-images-with-right-click/ -[9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter -[10]: https://itsfoss.com/flatpak-guide/ diff --git a/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md new file mode 100644 index 0000000000..292044c8e9 --- /dev/null +++ b/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md @@ -0,0 +1,87 @@ +[#]: subject: "Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux" +[#]: via: "https://itsfoss.com/converter-tool/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 中使用 “Converter” GUI 工具转换和操作图像 +====== + +你可以随时在您的系统上[安装 ImageMagick][1] 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。 + +那么,如果你有一个 GUI 应用作为前端来帮助解决这个问题呢? **Converter** 就是这样的工具。 + +它是 ImageMagick 的前端。所以你不需要使用命令来转换和操作图像。 + +请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的[安装指南][1]。 + +### Converter:ImageMagick 的图形前端 + +![converter gui][2] + +转换图像不应该花费很多精力。这是一项简单的任务,而且应该如此。 + +我不想键入命令来快速转换图像。因此,我更喜欢使我能够更快地做事的图形工具。 + +[Converter][3] 是一个开源图形前端,可以让你做到这点。它是一个 GTK4+libadwaita 应用。 + +你可以将图像转换为各种文件格式,包括 **png、webp、jpeg、heif、heic 和 bmp**。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。 + +![file format converter][4] + +你可以设置一个位置来保存所有文件,转换后的图像将自动存储在该位置。 + +![customize converter][5] + +你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“**更多选项**”。 + +![converter more options][6] + +可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸应该有所帮助。 + +如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。 + +总体而言,您可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。 + +你还可以[调整 Nautilus][7] 以获得[右键单击上下文菜单中的调整大小选项][8]。它不会像这个工具那样通用。 + +### 在 Linux 上安装 Converter + +Converter 在 [Flathub][9] 上以 Flatpak 的形式提供,可以安装在你选择的任何 Linux 发行版上。 + +遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 [Flatpak 指南][10]来安装它。 + +``` +flatpak install flathub io.gitlab.adhami3310.Converter +``` + +你可以在其 [GitLab 页面][3]上探索更多相关信息。 + +_你对我们接下来要重点介绍的此类有趣工具有什么建议吗? 让我们在评论中知道。_ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/converter-tool/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/install-imagemagick-ubuntu/ +[2]: https://itsfoss.com/wp-content/uploads/2022/12/converter-gui.png +[3]: https://gitlab.com/adhami3310/Converter +[4]: https://itsfoss.com/wp-content/uploads/2022/12/file-format-converter.png +[5]: https://itsfoss.com/wp-content/uploads/2022/12/customize-converter.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/converter-more-options.png +[7]: https://itsfoss.com/nautilus-tips-tweaks/ +[8]: https://itsfoss.com/resize-images-with-right-click/ +[9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter +[10]: https://itsfoss.com/flatpak-guide/ From 94249e4608ea069ed7e29134c62f48cb93676121 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 14 Dec 2022 08:59:38 +0800 Subject: [PATCH 2336/3123] translating --- .../tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md index 8e3ccb1d82..fe68240171 100644 --- a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md +++ b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/mint-upgrade-tool/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 263a512492efc26f5888cddf281cfadddebce6cb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 14 Dec 2022 09:32:50 +0800 Subject: [PATCH 2337/3123] RP @geekpi https://linux.cn/article-15346-1.html --- ...Source App for Personal Relationship Management.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md (60%) diff --git a/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md similarity index 60% rename from translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md rename to published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md index 4da016170e..c159ea92bb 100644 --- a/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md +++ b/published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md @@ -3,18 +3,20 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15346-1.html" -Monica:个人关系管理的开源应用 +Monica:人际关系管理的开源应用 ====== -你可能已经知道 CRM 代表 **客户关系管理**。 我们已经有了一份帮助小型企业的[开源 CRM 软件][1]列表。 +![][0] -在这里,我将讨论一个有趣的开源 Web 应用,它采用相同的人际关系概念。 听起来很独特,对吧? +你可能已经知道 CRM 代表 客户关系管理Customer Relationship Management。 我们已经有了一份帮助小型企业的 [开源 CRM 软件][1] 列表。 -Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果你自行托管,它是免费的,如果你需要托管版本那么订阅**。 +在这里,我将讨论一个有趣的开源 Web 应用,它采用相同的人际关系概念。听起来很独特,对吧? + +Monica 是一款可让你组织和记录你与亲人互动的应用。**如果你自行托管,它是免费的,如果你需要托管版本那么订阅**。 ### Monica:跟踪社交互动 @@ -22,11 +24,11 @@ Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果 很难记住与家人、朋友或同事互动的每一个细节。 -你可以使用[笔记应用][3]或 [CubyText][4] 等知识管理应用来添加一些信息。 但这些并不是为记录你的互动而量身定制的。 因此,你将不得不付出一些努力,以在需要时得心应手的方式添加信息。 +你可以使用 [笔记应用][3] 或 [CubyText][4] 等知识管理应用来添加一些信息。但这些并不是为记录你的互动而量身定制的。 因此,你将不得不付出一些努力,以在需要时得心应手的方式添加信息。 使用 Monica,添加你的家庭、工作、联系人之间的关系、活动、日记、重要日期的提醒、债务等信息变得更加容易。 -可以将其安装在自己的服务器上或选择 **$90/年**的订阅以获得托管版本。 +可以将其安装在自己的服务器上或选择 **$90/年** 的订阅以获得托管版本。 有趣的是,开发人员最初是根据他的个人要求构建它的。 @@ -34,26 +36,26 @@ Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果 ![dashboard][5] -你可以获得大量选项来添加有关你日常生活中的人和互动的信息。 其中一些包括: +你可以获得大量选项来添加有关你日常生活中的人和互动的信息。其中一些包括: - 添加关于一个人的注释 - 列出与联系人相关的重要其他人的姓名(他们的孩子、宠物等) - 通话记录 - 每个联系人的备用联系方式 -- 重要约会和重要事件提醒。 生日会自动设置为提醒。 +- 重要约会和重要事件提醒。生日会自动设置为提醒。 - 管理礼物信息 - 有用的仪表板,一目了然 - 支持日记条目 Monica 似乎配备了各种功能,使其成为写日记、做笔记、添加联系信息、添加事件等的一体化工具。 -不幸的是,没有可用的移动应用。 你可以从 Web 浏览器访问它,但它可能不是每个人的最佳体验。 所以,如果你坚持用智能手机做笔记和其他东西,你可能想看看其他的。 +不幸的是,没有可用的移动应用。你可以从 Web 浏览器访问它,但它可能不是每个人的最佳体验。所以,如果你坚持用智能手机做笔记和其他东西,你可能想看看其他的。 ### 自托管或订阅访问 -如果你想要 Monica 的托管版本,可以查看它的[定价页面][6]了解更多信息。 +如果你想要 Monica 的托管版本,可以查看它的 [定价页面][6] 了解更多信息。 -对于自托管,你需要前往其 [GitHub 页面][7]并按照说明下载并安装它。 可以选择在 Platform.sh 或 Heroku 上快速部署。 +对于自托管,你需要前往其 [GitHub 页面][7] 并按照说明下载并安装它。可以选择在 Platform.sh 或 Heroku 上快速部署。 在选择服务器来托管 Monica 之前,请检查最低系统要求。 @@ -61,7 +63,7 @@ Monica 似乎配备了各种功能,使其成为写日记、做笔记、添加 这一切都很方便。 所以,选择对你来说不错的。 -前往其[官方网站][8]获取所有详细信息并开始使用。 +前往其 [官方网站][8] 获取所有详细信息并开始使用。 -------------------------------------------------------------------------------- @@ -84,3 +86,4 @@ via: https://itsfoss.com/monica/ [6]: https://www.monicahq.com/pricing [7]: https://github.com/monicahq/monica#get-started [8]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/14/093133zpw06jndpzbdpphp.jpg \ No newline at end of file From 8acf5763ad8338cf6a2e3b26ad8ddcfee0d37aa0 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Wed, 14 Dec 2022 16:17:09 +0800 Subject: [PATCH 2338/3123] translation finished , passed. --- ....5 ⭐️⭐️ Our open source startup journey.md | 123 +++++------------- 1 file changed, 30 insertions(+), 93 deletions(-) diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md index f6f3514585..c71c2778e3 100644 --- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md +++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md @@ -7,153 +7,90 @@ [#]: publisher: " " [#]: url: " " -开启我们的开源之旅 - -DN -Our open source startup journey +开始我们的开源之旅 ====== -ToolJet 是一款开源的代码量少的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。 +[ToolJet][1] 是一款开源的低代码量的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。 -DN -[ToolJet][1] is an open source, low-code framework for rapidly building and deploying internal tools. Our codebase is 100% JavaScript and TypeScript. - -ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队了。 - -DN -A lone developer in April 2021 started ToolJet. The public beta launched in June 2021 and was an instant hit. With this traction, ToolJet raised funding, and currently, we have a team of 20 members. +ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队。 ### 为什么选择开源 -DN -### Why open source? +在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员的对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。 -在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。 +我尝试过多个平台来构建和维护内部工具。大部分平台都是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台工具的代码,而且大多数的平台工具都不支持本地托管。 -DN -Before working on ToolJet, I worked with a few enterprise clients as a consultant. Many of these clients were large enough to build and maintain dozens of internal tools. Despite the constant requests from sales, support, and operations teams to add more features and fix the bugs in their internal tools, engineering teams struggled to find the bandwidth to work on the internal utilities. - -我尝试过多个平台来构建和维护内部工具。大部分的平台是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台代码,而且大多数的平台工具都不支持本地托管。 - -DN -I tried using a few platforms to build and maintain internal tools. Most of these tools were very expensive, and frequently, they didn't really fit the requirements. We needed modifications, and most utilities didn't support on-premise hosting. - -作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。 - -DN -As a Ruby developer, I primarily used ActiveAdmin and RailsAdmin to build internal tools. Both utilities are amazing, but making them work with more than one data source is difficult. I then realized there is a need in the market for a framework that could build user interfaces and connect to multiple data sources. I believe any tool built for developers should be open source. Most of the tools and frameworks that developers use daily result from people from all over the world collaborating in public. +作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源的任务上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。 ### 第一次提交 -DN -### The first commit - -制作像 ToolJet 这样的工具需要全身心的投入,出售我的一个个人项目后我获得了5-6个月的空闲,我立即着手将在我脑海里酝酿了两年的想法付诸现实。 - -DN -Building something like ToolJet needed a full-time commitment. Selling one of my side projects gave me a runway of 5-6 months, and I immediately started working on an idea I'd had in mind for at least two years. +制作像 ToolJet 这样的工具需要全身心的投入,通过出售我的一个业余项目,我获得了5-6个月的空闲,于是我立即着手将在我脑海里酝酿了两年的想法付诸现实。 2021年4月1日,我完成了 ToolJet 的第一次提交(使用 rails new 命令)。 -DN -The first commit (rails new) of ToolJet was on April 1, 2021. - 稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。 -DN -Wait! I said the codebase is 100% JavaScript. Continue reading to discover why. - TD -### 构建工具并推销给投资者 - -### Building and pitching investors +### 构建完成并推销给投资者 4、5月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。 -DN -I sat in front of my screens for most of April and May, coding and pitching to investors for a pre-seed round. - 我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。 -DN -My work also included creating the drag-and-drop application builder, documenting everything, ensuring there was documentation for setting ToolJet up on popular platforms, creating a website, creating posters and blog posts for launch, and more. The process went well without any major challenges. At this point, the frontend of ToolJet was built using React, with the backend using Ruby on Rails. +编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我回了电话。 -编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我来了电话。 - -DN -While the coding was going well, investor pitches weren't going great. I sent around 40 cold emails to venture capitalist firms and "angel investors" focused on early-stage funding. While most of them ignored the email, some shared their reason for rejection, and some scheduled a call. - -大部分的电话内容都是一样的:我无法说服他们接受开源商业模型。 - -DN -Most of the calls were the same; I couldn't convince them of an open source business model. +大部分的电话内容都是一样的:我无法说服他们接受开源商业模式。 ### 工具发布 -DN -### The launch - -6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这是原始的[发布帖][2]。 - -DN -June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2]. +6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这里是原始的[发布帖][2]。 下午6点左右,我又在 [HackerNews][3]上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。大量的访问者和用户报告了软件和文档中的漏洞。距离在 HackNews 上发帖八个小时之后,超过1000名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮星标,并且有了数百个 ToolJet 云端的注册请求。上升趋势一直持续到三天后,ToolJet 版本库总计得到了2400个星标。 -DN -I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars. - ![ToolJet repo stats on GitHub][4] 图片来源: -DN -Image by: - -GitHub StarTrack for ToolJet. (Navaneeth PK, CC BY-SA 4.0) +ToolJet GitHub StarTrack (Navaneeth PK, CC BY-SA 4.0) ### 获得资助 -DN -### Getting funding +ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们也有其他的选择,但从没有认真考虑过这些它们。这些选择包括: -ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们有了其他的选择,但从没有认真考虑过这些它们。这些选择包括: +- Bootstrapping:在项目初期,难以获得付费用户,而我此前也没有足够的存款来支撑整个项目。 -DN -The traction on GitHub was enough to be noticed by the venture capitalist (VC) world. The days following the launch were packed with calls. We had other options, but did not consider seriously consider them, including: +- 作为业余项目构建:在开发小型项目上这是可以的,但我不认为这在 ToolJet 的开发上行得通,毕竟在 ToolJet 平台能够为客户所用之前我们需要创建大量的集成和 UI 控件。作为一个业余项目,要实现这些可能需要花费数月甚至数年时间。 -- Bootstrapping: During the early stages of the product, it was hard to find paying customers, and I did not have enough savings to fund the project until that happened. -- Building as a side project: While this strategy works great for smaller projects, I didn't feel it would work for ToolJet because we needed to create dozens of integrations and UI widgets before the platform could become useful for customers. As a side project, it might take months or years to achieve that. +我知道如果将 ToolJet 作为一个业余项目来开发,我可能需要花几个月的时间才能达到我期望的程度。而我希望通过扩大团队加速项目的成熟。鉴于该项目的吸引力,引入风险投资(VC)的资助是显而易见的选择。 -I knew it could take months to build the platform I wanted if ToolJet became just a side project. I wanted to accelerate growth by expanding the team, and VC funding was the obvious choice, given the traction. +好消息是在 HackNews 上发布之后的两周内我们成功募集了[155万美元的资金][5]。 -The good news is that we raised[$1.55 million in funding][5] within two weeks of the HN launch. +### 在开源中积累很重要 -### Stack matters in open source +发布后不久,我们发现许多人希望为 ToolJet 项目做贡献,但是他们几乎都是 JavaScript 开发者。我们也意识到像 ToolJet 这样的项目在未来会有成百上千的数据接口,只有基于插件的架构才行得通。我们于2021年8月决定从 Ruby 迁移到 TypeScript 上来。即使这花费了一个月的时间和巨大的努力,这仍然是我们在 ToolJet 项目上作出的最正确的决定。今天,我们有一个由我们的[插件开发套件][6]支持的可扩展的基于插件的架构。我们获得了来自超过200名开发者的贡献。关于这次迁移的文章参见[这篇博客][7]和[另一篇博客][8] -Soon after the launch, we found that many people wanted to contribute to ToolJet, but they were mostly JavaScript developers. We also realized that for a framework like ToolJet that in the future should have hundreds of data source connectors, only a plugin-based architecture made sense. We decided to migrate from Ruby to TypeScript in August 2021. Even though this took about a month and significant effort, this was one of the best decisions we've made for the project. Today, we have an extensible plugin-based architecture powered by our [plugin development kit][6]. We have contributions from over 200 developers. We've written extensively about this migration [here][7] and [here][8]. +### 发布 v1.0 版本 -### Launching v1.0 +自8月份以后,很多用户已经在生产环境中使用 ToolJet ,该平台并没有出现过任何稳定性或扩展性的问题。我们准备在发布 v1.0 版本之前完成开发人员平台的功能。开发人员平台允许任何 JavaScript 开发者构建和发布 ToolJet 插件。这样开发人员就可以为 ToolJet 开发数据接口。把集成测试的时间算上,创建一个 ToolJet 接口的时间也只需要30分钟。 -Many users have been using ToolJet on production environments since August, and the platform did not show any stability or scalability issues. We were waiting to wrap up the developer platform feature before we called it v1.0. The ToolJet developer platform allows any JavaScript developer to build and publish plugins for ToolJet. Developers are now able to make connectors for ToolJet. Creating a ToolJet connector can take just 30 minutes, including integration tests. - -### Building a growing community +### 创建持续成长的社区 ![ToolJet star history][9] -Image by: +图片来源: ToolJet Star History (Navaneeth PK, CC BY-SA 4.0) -We didn't spend money on marketing. Most of our efforts in spreading the news about ToolJet have been writing about our learnings and being active in developer communities. We have a team of three members who take care of community queries. +我们没有在销售上投入资金,我们的大部分精力都放在了传播 ToolJet 的消息、撰写我们的经验教训以及维持开发社区的活跃上。我们有一个关注社区里问题的三人团队。 -### The business model -ToolJet won't be a sustainable business without a [commercial product][10] to pay the bills. We've built an enterprise edition of ToolJet, for which customers must pay. There's no limit on usage for the free community edition, and additional features in the enterprise edition are relevant only to large teams. We have very large companies as paying customers right now, but we haven't started monetizing ToolJet aggressively. We have enough money left in the bank to build an even better ToolJet, so our focus currently is on product improvement. +### 商业模式 -### What's next? +如果没有[商业产品][10]来支付账单 ToolJet 无法成为一项可持续的业务。我们构建了 ToolJet 的客户必须付费的企业版本。ToolJet 的免费的社区版本没有任何使用限制,企业版中的额外功能都只与大型团队有关。我们现在的客户已经有超大型公司。我们有足够的银行存款来打造更好的 ToolJet ,因此我们目前正聚焦于产品提升上。 -We frequently release better versions of ToolJet with the help of constant feedback and contributions from the open source community. Many major improvements and dozens of connectors and UI components are in progress. We're moving faster than ever towards our initial goal of being the open framework that can connect to hundreds of data sources and build even the most complicated user interfaces! +### 接下来做什么 + +我们在消费者反馈的帮助以及开源社区的贡献下经常性发布更好的 ToolJet 版本。很多主要的优化、大量的数据接口以及 UI 组件正在开发进程中。为了实现我们成为能够连接大量数据源并构建更复杂的用户界面的开源框架的初心,我们比以往行动得更加迅速。 -------------------------------------------------------------------------------- @@ -161,7 +98,7 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey 作者:[Navaneeth PK][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[CanYellow](https://github.com/CanYellow) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 850d82eec39096212041b4b63c640bc6bec64143 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Wed, 14 Dec 2022 16:20:17 +0800 Subject: [PATCH 2339/3123] move file --- .../talk/20221019.5 ⭐️⭐️ Our open source startup journey.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md (100%) diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md similarity index 100% rename from sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md rename to translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md From 7404c64fdcc02b4524771e014beb7e384e75d076 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 14 Dec 2022 17:16:03 +0800 Subject: [PATCH 2340/3123] RP @chai001125 https://linux.cn/article-15347-1.html --- ...inux su vs sudo- what-s the difference-.md | 152 ++++++++++++++++++ ...inux su vs sudo- what-s the difference-.md | 151 ----------------- 2 files changed, 152 insertions(+), 151 deletions(-) create mode 100644 published/20220628 Linux su vs sudo- what-s the difference-.md delete mode 100644 translated/tech/20220628 Linux su vs sudo- what-s the difference-.md diff --git a/published/20220628 Linux su vs sudo- what-s the difference-.md b/published/20220628 Linux su vs sudo- what-s the difference-.md new file mode 100644 index 0000000000..e0c0890a8a --- /dev/null +++ b/published/20220628 Linux su vs sudo- what-s the difference-.md @@ -0,0 +1,152 @@ +[#]: subject: "Linux su vs sudo: what's the difference?" +[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15347-1.html" + +Linux 中的 su 和 sudo 命令有什么区别? +====== + +> 本文将比较非 root 用户提权为 root 用户的两个 Linux 命令 的区别。 + +![][0] + +`su` 和 `sudo` 命令都允许用户执行非特权用户不允许做的系统管理任务,即只有 root 用户能执行的命令。有些人更喜欢 `sudo` 命令:例如 [Seth Kenlon][2] 最近发布的一篇 《[在 Linux 上使用 sudo 的 5 个理由][3]》,他在其中详细阐述了 `sudo` 命令的许多优点。 + +但是,相较于 `sudo` 命令,我**更偏好于 `su` 命令** 来做系统管理工作。在本文中,我比较了这两个命令的区别,并解释了为什么我更喜欢 `su` 而不是 `sudo`,但我仍然同时使用这两个命令的原因。 + +### 过去的系统管理员主要使用 su 命令 + +`su` 和 `sudo` 命令是为**不同的世界**设计的。早期的 Unix 计算机需要全职系统管理员,他们使用 root 用户作为唯一的管理帐户。在这个古老的世界里,有管理员密码的人会在电传打字机或 CRT 终端(例如 DEC VT100)上以 root 用户登录,然后执行一些管理 Unix 计算机的工作。 + +管理员还会有一些非 root 帐户,用于执行一些非 root 的任务,例如编写文档和管理电子邮件等。在这些 Unix 计算机上通常有许多非 root 帐户,他们都不需要完全的 root 访问权限,只需要以 root 权限运行很少的命令,大约 1 至 2 个就可以了。许多系统管理员以 root 用户登录,完成 root 工作,并在任务完成后,退出 root 会话。有时候,系统管理员需要整天以 root 用户来登录,因为 `sudo` 命令需要键入更多的内容才能运行必要的命令,因此大多数系统管理员很少使用 `sudo` 命令。 + +`sudo` 和 `su` 这两个命令都能够提权为 root 用户,但它们实现的方式大不相同。这种差异是由于它们**最初打算用于不同的情况**。 + +### sudo 命令 + +`sudo` 命令的初衷是让 root 用户能够让几个非 root 用户访问他们经常需要的一两个特权命令。`sudo` 命令允许非 root 用户暂时地获得更高权限,来执行一些特权命令,例如添加和删除用户、删除属于其他用户的文件、安装新软件以及管理现代 Linux 主机所需的任何命令。 + +`sudo` 命令允许非 root 用户访问一两个 _需要更高权限_ 的常用命令,这样可以帮助系统管理员节省来自用户的许多请求,并减少等待时间。`sudo` 命令不会将用户帐户切换为 root 用户,因为大多数非 root 用户永远不应该拥有完全的 root 访问权限。在大多数情况下,`sudo` 允许用户执行一两个命令,然后提权就会过期。在这个通常为 5 分钟的短暂的提权时间内,用户可以执行任何需要提权的管理命令。需要继续使用提权的用户可以运行 `sudo -v` 命令来重新验证 root 访问权限,并将提权时间再延长 5 分钟。 + +使用 `sudo` 命令还有一些副作用,例如生成非 root 用户使用命令的日志条目及其 ID。这些日志可以在之后作为出现问题的检验,来给用户更多的操作培训。(你以为我会说“问责”用户,对吧?) + +### su 命令 + +`su` 命令能够将非 root 用户提权到 root 权限 —— 事实上,能让非 root 用户成为 root 用户。唯一的要求是用户知道 root 密码。因为用户已经以 root 权限登录,所以之后的操作就没有限制了。 + +`su` 命令所提供的提权没有时间限制。用户可以作为 root 执行命令,不需要进行重新验证是否有 root 权限。完成任务后,用户可以执行退出命令 `exit`,从 root 用户恢复到自己原来的非 root 帐户。 + +### su 和 sudo 在使用上的争议和变化 + +最近在 `su` 与 `sudo` 的使用上存在一些分歧。 + +> 真正的系统管理员不会使用 `sudo`。—— Paul Venezia + +Venezia 在他的 [InfoWorld 文章][4] 中辩称,对于许多担任系统管理员的人来说,`sudo` 是一个不必要的工具。他没有花太多时间为这个观点进行解释,他只是把它说成了一个事实。我同意他对于系统管理员的观点,因为我们不需要 `sudo` 来完成我们的工作。事实上,`sudo` 使得事情变得更复杂了。 + +然而, + +> 时代在“改变”。—— Bob Dylan + +Bob Dylan 是对的,尽管他唱的歌不是指计算机(LCTT 译注:Bob Dylan 是美国创作歌手、艺术家和作家,这里指他不是针对于电脑而说的)。 + +自从人手一台的**个人计算机**时代到来,计算机的管理方式发生了重大变化。在许多环境中,计算机的使用者也是它的管理员,这使得为这些用户提供一些对 root 权限的访问是有必要的。 + +一些现代发行版,例如 Ubuntu 及其衍生版本,只能使用 `sudo` 命令来执行特权命令。在这些发行版中,用户无法直接以 root 用户身份登录,甚至无法通过 `su` 切换到 root,因此需要 `sudo` 命令来允许非 root 用户获得 root 权限。在这一环境中,所有系统管理任务均使用 `sudo` 来执行。 + +通过锁定 root 帐户并将常规用户帐户添加到“轮子”组(`wheel`),可以实现此配置,但是这种配置很容易被绕过。接下来,让我们在 Ubuntu 主机或虚拟机上尝试一些小实验吧。我在这里说明一些我的设置,以便你可以根据需要来重现它。我安装的是 Ubuntu 16.04 LTS1,并使用 VirtualBox 将其安装在虚拟机中。在安装过程中,我创建了一个非 root 用户 `student`,为了简便起见我给这个用户设置了一个简单的密码。 + +以 `student` 用户身份登录 Ubuntu,并打开终端。查看 `/etc/shadow` 文件中的 root 条目,其中存储了经哈希的密码。 + +``` +student@ubuntu1:~$ cat /etc/shadow +cat: /etc/shadow: Permission denied +``` + +可以看到终端拒绝了我们对 `/etc/shadow` 的访问,因此我们无法查看 `/etc/shadow` 文件。所有发行版都是如此,以防止非特权用户看到和访问加密的密码,因为非特权用户可能会使用常见的黑客工具来破解这些密码。 + +现在,让我们使用 `su -` 命令来成为 root 用户。 + +``` +student@ubuntu1:~$ su - +Password: +su: Authentication failure +``` + +认证失败的原因是因为 root 帐户没有密码、并且被锁定了。接下来,使用 `sudo` 命令查看 `/etc/shadow` 文件。 + +``` +student@ubuntu1:~$ sudo cat /etc/shadow +[sudo] password for student: +root:!:17595:0:99999:7::: +<截取> +student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7::: +<截取> +``` + +在这里,我仅截取了部分结果,只显示 root 和 `student` 用户的条目。我还缩短了加密密码,以便该条目能显示在一行中。各个字段以冒号(`:`)分隔,第二个字段是密码。请注意,root 的密码字段是一个感叹号(`!`),这表明 root 帐户已被锁定,且无法使用。 + +现在,要将 root 帐户变成一个合适的系统管理员,你只需为 root 帐户设置密码。 + +``` +student@ubuntu1:~$ sudo su - +[sudo] password for student: +root@ubuntu1:~# passwd root +Enter new UNIX password: +Retype new UNIX password: +passwd: password updated successfully +root@ubuntu1:~# +``` + +现在,你可以直接以 root 身份登录到控制台,或者直接使用 `su` 登录到 root,而不是在每个命令前都加一个 `sudo`。当然,你也可以在每次想以 root 身份登录时,使用 `sudo su -`,但这又是何必呢? + +请不要误解我的意思。像 Ubuntu 这样的发行版及其上下游衍生版非常好,多年来我已经使用了其中的几个。在使用 Ubuntu 和相关发行版时,我做的第一件事就是设置一个 root 密码,这样我就可以直接以 root 身份登录。其他发行版,如 Fedora 及其相关发行版,现在在安装过程中提供了一些有趣的选择。我注意到的第一个 Fedora 版本是 Fedora 34,我在写我的一本即将出版的书时安装了很多次。 + +在安装页面上,可以找到其中一个安装选项,来设置 root 密码。这个新选项允许用户选择“锁定 root 帐户 Lock root account ”,就像 Ubuntu 锁定 root 帐户的方式一样。此页面上还有一个选项,允许使用密码以 root 身份远程 SSH 登录到此主机,但这仅在 root 帐户解锁时有效。第二个选项位于允许创建非 root 帐户的页面上。此页面上的选项之一是“让此用户成为管理员 Make this user administrator ”。选中此选项后,用户 ID 将添加到一个名为 `wheel` 组的特殊组中,该组授权该组的成员使用 `sudo` 命令。Fedora 36 甚至在该复选框的描述中提到了 `wheel` 组。 + +可以将多个非 root 用户设置为管理员。使用此方法指定为管理员的任何人都可以使用 `sudo` 命令在 Linux 计算机上执行所有管理任务。Linux 在安装时只允许创建一个非 root 用户,所以其他新用户可以在创建时添加到 `wheel` 组中。root 用户或其他管理员可以使用文本编辑器或 `usermod` 命令直接将现有用户添加到 `wheel` 组。 + +在大多数情况下,今天的管理员只需要执行一些基本任务,例如添加新的打印机、安装更新或新软件,或者删除不再需要的软件。这些 GUI 工具需要 root 或管理密码,并将接受来自管理员用户的密码。 + +### 在 Linux 上,我是怎么使用 su 和 sudo 的呢 + +我**同时使用 `su` 和 `sudo`**。它们都是我所使用的很重要的系统管理员工具。 + +我不锁定 root 帐户,因为我需要用 root 帐户来运行我的 [Ansible][5] 脚本和我编写的 [rsbu][6] Bash 程序,来执行备份。这两个程序都需要以 root 身份运行,我编写的其他几个管理 Bash 的脚本也是如此。我**使用 `su` 命令**切换到 root 用户,这样我就可以执行这些脚本和许多其他常见的命令。当我需要确定问题和解决问题时,使用 `su` 命令将我的权限提升到 root 十分有用,因为我不希望 `sudo` 带来的提权会话超时。 + +当非 root 用户需要执行这些任务时,我**使用 `sudo` 命令**,来执行需要 root 权限的任务。我在 `sudoers` 文件中设置了非 root 帐户,只允许访问完成任务所需的一两个命令。当我只需要运行一两个需要提权的快速命令时,我自己也会使用 `sudo` 命令。 + +### 结论 + +实际上只要你把工作完成好了,你使用什么工具都无大碍。你使用的是 Vim 还是 Emacs,是 systemd 还是 SystemV,是 RPM 亦或是 DEB,是 `sudo` 亦或是 `su`,在结果上会有什么区别呢?这里的关键在于你应该使用**最适合你的工具**。Linux 和开源软件的最大优势之一是通常有许多选项可用于我们需要完成的任务。 + +`su` 和 `sudo` 都各有长处,如果正确使用的话,两者都是非常安全的。我选择同时使用 `su` 和 `sudo` 命令,基于它们的历史功能,因为这对我来说十分有用。对于我自己的大部分工作,我更喜欢 `su` 命令,因为它与我的工作流程最适配。 + +在评论区分享你喜欢的工作方式吧! + +本文摘自于我的书《系统管理员的 Linux 哲学The Linux Philosophy for Sysadmins(Apress,2018 年)》一书的第 19 章,并经许可后重新发布。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin + +作者:[David Both][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dboth +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png +[2]: https://opensource.com/users/seth +[3]: https://opensource.com/article/22/5/use-sudo-linux +[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr +[5]: https://opensource.com/article/20/10/first-day-ansible +[6]: https://opensource.com/article/17/1/rsync-backup-linux +[0]: https://img.linux.net.cn/data/attachment/album/202212/14/171220a47je4l0teaonzos.jpg \ No newline at end of file diff --git a/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md b/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md deleted file mode 100644 index 7b8efbc4d5..0000000000 --- a/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: subject: "Linux su vs sudo: what's the difference?" -[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin" -[#]: author: "David Both https://opensource.com/users/dboth" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux 中的 `su` 和 `sudo` 命令有什么区别呢? -====== - ->本文将比较 非 root 用户 non-root user 提权为 root 用户的两个 **Linux 命令** 的区别。 - -![bash logo on green background][1] - -`su` 和 `sudo` 命令都允许用户执行非特权用户不允许做的系统管理任务,即只有 root 用户能执行的命令。有些人更喜欢 `sudo` 命令:例如 [Seth Kenlon][2] 最近发布的一篇 [《在 Linux 上使用 `sudo` 的 5 个理由》][3],他在其中详细阐述了 `sudo` 命令的许多优点。 - -但是,相较于 `sudo` 命令,我**更偏好于 `su` 命令**,来做系统管理工作。在本文中,我比较了这两个命令的区别,并解释了为什么我更喜欢 `su` 而不是 `sudo`,但我仍然同时使用这两个命令的原因。 - -### 过去的系统管理员主要使用 `su` 命令 - -`su` 和 `sudo` 命令是为**不同的世界**设计的。早期的 Unix 计算机需要全职系统管理员,他们使用 root 用户作为唯一的管理帐户。在这个古老的世界里,有管理员密码的人会在电传打字机或 CRT 终端(例如 DEC VT100)上以 root 用户登录,然后执行一些管理 Unix 计算机的工作。 - -root 用户还有一个非 root 帐户,用于执行一些非 root 的任务,例如编写文档和管理电子邮件等。在这些 Unix 计算机上通常有许多非 root 帐户,他们都不需要完全的 root 访问权限,只需要以 root 权限运行很少的命令,大约 1 至 2 个就可以了。许多系统管理员以 root 用户登录,完成 root 工作,并在任务完成后,退出 root 会话。系统管理员需要整天以 root 用户来登录,因为 `sudo` 命令需要键入更多的内容才能运行基本命令,因此大多数系统管理员很少使用 `sudo` 命令。 - -`sudo` 和 `su` 这两个命令都能够提权为 root 用户,但它们实现的方式大不相同。这种差异是由于它们**最初打算用于不同的情况**。 - -### `sudo` 命令 - -`sudo` 命令的初衷是让 root 用户能够将他们定期需要的 1 到 2 个特权命令委托给 1 至 2 个非 root 用户。`sudo` 命令允许非 root 用户暂时地获得更高权限,来执行一些特权命令,例如添加和删除用户、删除属于其他用户的文件、安装新软件以及管理现代 Linux 主机所需的任何命令。 - -`sudo` 命令允许非 root 用户访问 1 到 2 个 _需要更高权限_ 的常用命令,这样可以帮助系统管理员节省来自用户的许多请求,并减少等待时间。`sudo` 命令不会将用户帐户切换为 root 用户,因为大多数非 root 用户永远不应该拥有完全的 root 访问权限。在大多数情况下,`sudo` 允许用户执行 1 或 2 个命令,然后提权就会过期。在这个通常为 5 分钟的短暂的提权时间内,用户可以执行任何需要提权的管理命令。需要继续使用提权的用户可以运行 `sudo -v` 命令来重新验证 root 访问权限,并将提权时间再延长 5 分钟。 - -使用 `sudo` 命令还有一些副作用,例如生成非 root 用户使用命令的日志条目及其 ID。这些日志可以在之后作为出现问题的检验,来给用户更多的操作培训。你以为我会说“责备”用户,对吗? - -### `su` 命令 - -`su` 命令能够将非 root 用户提权到 root 权限——事实上,能让非 root 用户成为 root 用户。唯一的要求是用户知道根密码。因为用户已经以 root 权限登录,所以之后的操作就没有限制了。 - -`su` 命令所提供的提权没有时间限制。用户可以作为 root 执行命令,不需要进行重新认证是否有 root 权限。完成任务后,用户可以执行退出命令 `exit`,从 root 用户恢复到自己原来的非 root 帐户。 - -### `su` 和 `sudo` 在使用上的争议和变化 - -最近在 `su` 与 `sudo` 的使用上存在一些分歧。 - -> 真正的系统管理员不会使用 `sudo`。——保罗·威尼斯(Paul Venezia) - -Venezia 在他的 [InfoWorld 文章][4] 中辩称,对于许多担任系统管理员的人来说,`sudo` 是一个不必要的工具。他没有花太多时间为这个观点进行解释,他只是把它说成了一个事实。我同意他对于系统管理员的观点,因为我们不需要 `sudo` 来完成我们的工作。事实上,`sudo` 使得事情变得更复杂了。 - -然而, - -> 这时代正在“变革”当中。——鲍勃·迪伦 - -迪伦是对的,尽管他没有为电脑唱歌(LCTT 译注:鲍勃·迪伦是美国创作歌手、艺术家和作家,这里指他不是针对于电脑而说的)。 - -自从**个人计算机**时代到来以来,计算机的管理方式发生了重大变化。在许多环境中,计算机的使用者也是它的管理员,这使得为这些用户提供一些对 root 权限的访问是有必要的。 - -一些现代发行版,例如 Ubuntu 及其衍生版本,只能使用 `sudo` 命令来执行特权命令。在这些发行版中,用户无法直接以 root 用户身份登录,甚至无法通过 `su` 切换到 root,因此需要 `sudo` 命令来允许非 root 用户获得 root 权限。在这一环境中,所有系统管理任务均使用 `sudo` 来执行。 - -通过锁定 root 帐户并将常规用户帐户添加到 wheel 组,可以进行此配置,但是这种配置很容易被绕过。接下来,让我们在任何 Ubuntu 主机或 VM 上尝试一些小实验吧。我在这里说明一些我实验的设置,以便你可以根据需要来重现它。我安装的是 Ubuntu 16.04 LTS1,并使用 VirtualBox 将其安装在 VM 中。在安装过程中,我创建了一个非 root 用户 `student`,为了简便起见我给这个用户设置了一个简单的密码。 - -以 `student` 用户身份登录 Ubuntu,并打开终端。查看 `/etc/shadow` 文件中的 root 条目,其中存储了经哈希的密码。 - -``` -student@ubuntu1:~$ cat /etc/shadow -cat: /etc/shadow: Permission denied -``` - -可以看到终端拒绝了我们对 `/etc/shadow` 的访问,因此我们无法查看 `/etc/shadow` 文件。所有发行版都是如此,以防止非特权用户看到和访问加密的密码,因为非特权用户可能会使用常见的黑客工具来破解这些密码。 - -现在,让我们使用 `su -` 命令来成为 root 用户。 - -``` -student@ubuntu1:~$ su - -Password: -su: Authentication failure -``` - -认证失败的原因是因为根帐户没有密码、并且被锁定了。接下来,使用 `sudo` 命令查看 `/etc/shadow` 文件。 - -``` -student@ubuntu1:~$ sudo cat /etc/shadow -[sudo] password for student: -root:!:17595:0:99999:7::: - -student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7::: - -``` - -在这里,我仅截取了部分结果,只显示 root 和 `student` 用户的条目。我还缩短了加密密码,以便该条目能显示在一行中。各个字段以冒号(`:`)分隔,第二个字段是密码。请注意,root 的密码字段是一个感叹号(`!`),这表明 root 帐户已被锁定,且无法使用。 - -现在,要将根帐户变成一个合适的系统管理员,你只需为根帐户设置密码。 - -``` -student@ubuntu1:~$ sudo su - -[sudo] password for student: -root@ubuntu1:~# passwd root -Enter new UNIX password: -Retype new UNIX password: -passwd: password updated successfully -root@ubuntu1:~# -``` - -现在,你可以直接以 root 身份登录到控制台,或者直接使用 `su` 登录到 root,而不是在每个命令前都加一个 `sudo`。当然,你也可以在每次想以 root 身份登录时,使用 `sudo su -`,但这又是何必呢? - -请不要误解我的意思。像 Ubuntu 这样的发行版非常好,多年来我已经使用了其中的几个。在使用 Ubuntu 和相关发行版时,我做的第一件事就是设置一个 root 密码,这样我就可以直接以 root 身份登录。其他发行版,如 Fedora 及其相关发行版,现在在安装过程中提供了一些有趣的选择。我注意到的第一个 Fedora 版本是 Fedora 34,我在写我的一本即将出版的书时安装了很多次。 - -在安装页面上,可以找到其中一个安装选项,来设置 root 密码。这个新选项允许用户以锁定 Ubuntu root 帐户的方式选择“锁定 root 帐户 Lock root account ”。此页面上还有一个选项,允许使用密码以 root 身份远程 SSH 登录到此主机,但这仅在 root 帐户解锁时有效。第二个选项位于允许创建非根用户帐户的页面上。此页面上的选项之一是“让此用户成为管理员 Make this user administrator ”。选中此选项后,用户 ID 将添加到一个名为 wheel 组的特殊组中,该组授权该组的成员使用 `sudo` 命令。Fedora 36 甚至在该复选框的描述中提到了 wheel 组。 - -可以将多个非 root 用户设置为管理员。使用此方法指定为管理员的任何人都可以使用 `sudo` 命令在 Linux 计算机上执行所有管理任务。Linux 在安装时只允许创建一个非 root 用户,所以其他新用户可以在创建时添加到 wheel 组中。root 用户或其他管理员可以使用文本编辑器或 `usermod` 命令直接将现有用户添加到 wheel 组。 - -在大多数情况下,今天的管理员只需要执行一些基本任务,例如添加新的打印机、安装更新或新软件,或者删除不再需要的软件。这些 GUI 工具需要 root 或管理密码,并将接受来自管理员用户的密码。 - -### 在 Linux 上,我是怎么使用 `su` 和 `sudo` 的呢 - -我**同时使用 `su` 和 `sudo`**。它们都是我所使用的很重要的系统管理员工具。 - -我不锁定根帐户,因为我需要用根帐户来运行我的 [Ansible][5] 脚本和我编写的 [rsbu][6] Bash 程序,来执行备份。这两个程序都需要以 root 身份运行,我编写的其他几个管理 Bash 的脚本也是如此。我**使用 `su` 命令**,切换到 root 用户,这样我就可以执行这些脚本和许多其他常见的命令。当我需要确定问题和解决问题时,使用 `su` 命令将我的权限提升到 root 十分有用,因为我不希望 `sudo` 带来的提权会话超时。 - -当非 root 用户需要执行这些任务时,我**使用 `sudo` 命令**,来执行需要 root 权限的任务。我在 sudoers 文件中设置了非根帐户,只允许访问完成任务所需的 1 到 2 个命令。当我只需要运行 1 个或 2 个需要提权的快速命令时,我自己也会使用 `sudo` 命令。 - -### 结论 - -实际上只要你把工作完成好了,你使用什么工具都无大碍。你使用的是 vim 还是 Emacs,是 systemd 还是 SystemV,是 RPM 亦或是 DEB,是 `sudo` 亦或是 `su`,在结果上会有什么区别呢?这里的关键在于你应该使用**最适合你的工具**。Linux 和开源软件的最大优势之一是通常有许多选项可用于我们需要完成的任务。 - -`su` 和 `sudo` 都各有长处,如果正确使用的话,两者都是非常安全的。我选择同时使用 `su` 和 `sudo` 命令,基于它们的历史功能,因为这对我来说十分有用。对于我自己的大部分工作,我更喜欢 `su` 命令,因为它与我的工作流程最适配。 - -在评论区分享你喜欢的工作方式吧! - -本文摘自于我的书《系统管理员的 Linux 方法(Apress,2018 年)》(The Linux Philosophy for Sysadmins)一书的第 19 章,并经许可后重新发布。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin - -作者:[David Both][a] -选题:[lkxed][b] -译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/dboth -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png -[2]: https://opensource.com/users/seth -[3]: https://opensource.com/article/22/5/use-sudo-linux -[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr -[5]: https://opensource.com/article/20/10/first-day-ansible -[6]: https://opensource.com/article/17/1/rsync-backup-linux From d4656495935e0d992b7ecc797d5ec35dbd231463 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Wed, 14 Dec 2022 17:47:05 +0800 Subject: [PATCH 2341/3123] =?UTF-8?q?Update=2020221028.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Write=20documentation=20like=20yo?= =?UTF-8?q?u=20develop=20code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20221028.1 ⭐️⭐️ Write documentation like you develop code.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md index eb64f1fb7a..1aea7321f7 100644 --- a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md +++ b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/docs-as-code" [#]: author: "Lorna Mitchell https://opensource.com/users/lornajane" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From bc6b3a109fd9b1f5073ad095c7e2117744406875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 14 Dec 2022 18:42:43 +0800 Subject: [PATCH 2342/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221214.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Experience=20Linux=20desktop=20nostalgia=20with=20Rox.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Experience Linux desktop nostalgia with Rox.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md diff --git a/sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md b/sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md new file mode 100644 index 0000000000..301f8b485e --- /dev/null +++ b/sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md @@ -0,0 +1,104 @@ +[#]: subject: "Experience Linux desktop nostalgia with Rox" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-rox" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Experience Linux desktop nostalgia with Rox +====== + +Rox-Filer is an open source file manager for Linux, once intended for the defunct Rox desktop but now a streamlined application for any window manager or desktop. There hasn't been much activity on the Rox project since 2014, and even then it is mostly in maintenance mode. And that's part of Rox-Filer's charm. In a way, Rox-Filer is a snapshot of an old desktop style that was progressive for its time but has given way to a more or less standardized, or at least conventional, interface. + +### Install Rox-Filer + +On Linux, your distribution's software repository may have Rox available for install. For instance, Debian packages it: + +``` +$ sudo apt install rox-filer +``` + +If your Linux distribution doesn't package Rox-Filer but you want to try it out, you can [compile from source][1] by downloading the [source code][2], installing its build dependencies, and then compiling: + +``` +$ sudo dnf install gtk2-devel libSM-devel \ +  shared-mime-info glade-libs xterm +$ wget https://codeload.github.com/rox-desktop/rox-filer/zip/refs/heads/master +$ unzip rox*zip +$ cd rox-filer-master +$ ./ROX-Filer/AppRun +``` + +### Configuring Rox + +The Rox file manager is based on the look and feel of RISC OS, an operating system developed by Acorn in Cambridge England (the same group responsible for the popular Arm microprocessor). Today, there's an [open source RISC OS][3] you can install on a Raspberry Pi, but for now, Rox is close enough. + +Rox has a simple layout. It has no menu bar, but there's a toolbar across the top, and the file panel is at the bottom. + +![Image of the Rox file manager.][4] + +As with the KDE Plasma Desktop, the default action of a single click in Rox is to open an item, whether it's a folder or a file. Unfortunately, no version of Rox, either packaged or compiled directly from the source, seems to be completely integrated with the mimetype definitions of the modern Linux desktop. For instance, Rox on CentOS renders an error when I click on even a basic text file, while the packaged version of Rox on Debian opens a plain text file but not a JPEG or archive file. You can fix this by setting a **Run Action** in the right-click context menu. + +![​Setting a run action in the Rox file manager.][5] + +Setting a run action can have broad definitions, so you don't have to set a separate run action for JPEG, PNG, WEBP, and all other image types, instead set the same run command for all mimetypes starting with `image`. + +Once you set that, you're ready to manage files with Rox. + +### Navigation + +You can navigate through your file system using the arrow icon in the top toolbar. The **Up** arrow takes you to the parent directory of your current location (in other words, the folder your current folder is in). To descend into a folder, click on it. + +### Refreshing the view + +Rox may not redraw the screen for every action, so sometimes you may need to prompt it to refresh. Click the **Circle** arrow in the Rox toolbar to refresh your current location's contents. + +### Copy or move a file + +There are two ways to copy or move a file in Rox. First, you can launch a second Rox window and drag and drop files from one window to the other. When you do, you're prompted to copy, move, or link the item you've dropped. + +Alternatively, you can right-click an item and open the **File** submenu from the context menu. In the **File** submenu, choose **Copy** and then enter the destination path for the item you want to move or copy. After you've confirmed that the file has successfully been copied to the target location, you can optionally select the item again, choosing **Delete** from the **File** menu. + +### Options + +You can customize some aspects of Rox by selecting **Options** from the right-click menu. This brings up a Rox configuration screen that's admittedly only partially relevant to Rox. The Rox options assume you're running a window manager, like [Windowmaker][6] which provides a traditional dock (or "pinboard" in Rox terminology). I wasn't able to get the pinboard options to work on [Fluxbox][7], my preferred window manager, or Windowmaker. In both cases, the window manager handled iconified windows, and I wasn't able to configure Rox to override the control. It's possible that I wasn't drastic enough in some of my configurations, but considering that Linux window managers are very capable of managing iconified windows, the pinboard mechanism of Rox isn't a vital feature (and probably not as flexible as the window manager's options). + +The other options, however, still work as expected. For instance, Rox by default resizes its window size to fit the contents of a folder. When you change from a directory containing twelve items to a directory containing just three, Rox shrinks its footprint. I find this jarring, so I chose the **Never automatically resize** option, forcing Rox to stay whatever size I set. + +### Window commands + +Some of my favorite features are four menu items hidden away at the bottom of the **Window** submenu in the right-click context menu. They are: + +- **Enter path**: Enter an arbitrary path and change directory to it. +- **Shell command**: Enter an arbitrary shell command and execute it. +- **Terminal here**: Open a terminal at your current location. +- **Switch to terminal**: Open a terminal at your current location, and close the Rox. + +I love options that allow for quick navigation or quick commands, so it's nice to have these close at hand. + +### Oldies + +Rox is a "blast from the past," whether or not you've ever used RISC OS or something like it. Rox represents a style of digital file management and even desktop configuration that just doesn't quite exist anymore. I've run Fluxbox, on and off again, at work and at home for the past decade, and I love manually configuring menus and configuration files. However, most of the Linux desktop has moved on from the conventions Rox relies upon. It's not impossible to make Rox fully functional, but it would take a lot of work, and most of what you'd be configuring are already provided by modern window managers and desktops. Even so, Rox is fun to use and experience. It's a great demonstration of how flexible a traditional Linux desktop setup was (and still can be, if you use only a window manager), and much of its charm is in its simplicity. I can't imagine a file manager today not having a dedicated move function, but Rox dares to force you to copy and delete instead. It's a different kind of file manager, and it might not be the one you use all day every day, but it's something you have to try if you miss, or literally missed, the "old days" of the Linux (or RISC OS) desktop. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-rox + +作者:[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/article/21/11/compiling-code +[2]: https://sourceforge.net/projects/rox/files/rox/ +[3]: https://www.riscosopen.org/content/downloads +[4]: https://opensource.com/sites/default/files/2022-10/rox-filemanager.png +[5]: https://opensource.com/sites/default/files/2022-10/rox-menu-run.png +[6]: https://opensource.com/article/19/12/linux-window-maker-desktop +[7]: https://opensource.com/article/19/12/fluxbox-linux-desktop From cb6e568e4aba470434eacddee89a72523b1a07dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 14 Dec 2022 18:44:35 +0800 Subject: [PATCH 2343/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221214.1=20=E2=AD=90=EF=B8=8F=20Microsoft=20Sounds?= =?UTF-8?q?cape=20to=20Go=20Open=20Source=20Marking=20the=20End=20of=20the?= =?UTF-8?q?=20Project.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Open Source Marking the End of the Project.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md diff --git a/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md b/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md new file mode 100644 index 0000000000..d18a3e8871 --- /dev/null +++ b/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md @@ -0,0 +1,73 @@ +[#]: subject: "Microsoft Soundscape to Go Open Source Marking the End of the Project" +[#]: via: "https://news.itsfoss.com/microsoft-soundscape-open-source/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Microsoft Soundscape to Go Open Source Marking the End of the Project +====== + +Microsoft makes an excellent decision to open-source its innovative audio app. + +![Microsoft Soundscape to Go Open Source Marking the End of the Project][1] + +The [Soundscape project][2] was a fascinating experimental research effort undertaken by Microsoft to use sound-based technology to help visually impaired people navigate their surroundings. + +Launched back in 2017, it used 3D audio cues and augmented reality to enhance a user's awareness by guiding them through places. + +Soon after, they also launched an iOS app to showcase their progress. + +The app could use the iPhone's sensors to read out points of interest as the user walked past something or even roads and intersections to help them figure out where they were. + +**Unfortunately,** with a [recent announcement][3], Microsoft has decided not to continue further with the development of this project and will be making the **code open-source**. + +### Microsoft Soundscape Source Code to be Available on GitHub + +![Microsoft Soundscape - an Illustrated Demonstration][4] + +**What Happened?:** Well, according to Microsoft, it's natural to either stop or transition a few projects as they evolve their research portfolio. + +With this move, Microsoft hopes the community will take over and benefit from the 'novel experiences' they helped develop. + +They also add that: + +> As Microsoft Research continues to expand into new accessibility innovation areas, we hope the open-source software release of the Soundscape code supports the community in further developing confidence and utility of spatial audio navigation experiences. + +You know, this move is quite similar to the one made by ActiveState recently, where they discontinued Komodo IDE and made the code open-source to say thank you to its users. + +**What's Next?:** Starting **January 3, 2023**, the source code for Soundscape will be made available on GitHub. Developers are free to use the code in any manner they see fit. + +Furthermore, the iOS app will also be discontinued, and existing users can use it until June 2023. + +They will also stop taking new feature requests and only focus on bug fixes and general maintenance of the iOS app until the time comes. + +As for the Microsoft Soundscape Authoring app, it will no longer be available after January 17, 2023. + +Microsoft has also clarified that its other offerings would remain unaffected. + +### Community-Driven Approach Wins + +As was the case with Komodo IDE, a community-driven approach can be of great help for deprecated software. + +Where the community can get together and create something truly unique while also helping the end users add value to their lives. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/microsoft-soundscape-open-source/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/microsoft-soundscape-goes-open-source.png +[2]: https://www.microsoft.com/en-us/research/product/soundscape/ +[3]: https://www.microsoft.com/en-us/research/blog/microsoft-soundscape-new-horizons-with-a-community-driven-approach/ +[4]: https://youtu.be/v5DXykmOdJ8 From eae41d70bfffad4f20f8143418b91dee6e789136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 14 Dec 2022 18:45:59 +0800 Subject: [PATCH 2344/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221214.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Best=20Screen=20Recorders=20for=20Wayland=20in=20Linux=20[Compa?= =?UTF-8?q?red=20&=20Tested].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...orders for Wayland in Linux [Compared & Tested].md | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md diff --git a/sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md b/sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md new file mode 100644 index 0000000000..a67e813001 --- /dev/null +++ b/sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md @@ -0,0 +1,182 @@ +[#]: subject: "Best Screen Recorders for Wayland in Linux [Compared & Tested]" +[#]: via: "https://www.debugpoint.com/screen-recorders-linux-wayland/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Best Screen Recorders for Wayland in Linux [Compared & Tested] +====== + +**Here’s a list of screen recorders which work in Wayland currently in most modern Linux distributions.** + +![][1] + +Modern Wayland protocol is used by default in most frontrunner Linux distributions, such as Ubuntu and Fedora. However, this X.Org successor comes with work for the app developers to re-platform their app for Wayland because Wayland is more secure and follows modern standards. + +Linux legacy applications, those written with X.Org in mind, don’t work well in most cases unless it is modified. + +Screen recorder apps fall into that category. There are many popular screen recorders which were developed for X.Org – doesn’t work anymore in Wayland. + +However, few of them work. In this list, I will walk you through a few that I tested in the Wayland session. And they work well. + +### Best screen recorder apps for Wayland in Linux distros + +#### 1. Kooha + +The first on this list is Kooha, written in GTK and supports X11 and Wayland. It’s a fast and simple screen recorder for the GNOME desktop. This application is one of the best GNOME apps that provides hassle-free recording experiences. This utility supports hardware acceleration, a timer, multiple sources as input and many advanced features. Here’s a summary: + +- Option to select monitor for multiple displays or any window +- Hardware accelerated encoding (disabled by default; enable it via settings) +- Option to record the area of a screen +- Record mic and computer sound together +- Delay timer for records +- Option to choose the frame rate +- Support for WebM, mp4, gif, Mkv file types + +![Kooha - Best Screen Recoder for GNOME][2] + +![Kooha Settings][3] + +Installing Kooha is easy using Flatpak. [Set up your system for Flatpak & Flathub][4] and run the following command to install it. + +``` +flatpak install io.github.seadve.Kooha +``` + +We tested it in the latest Ubuntu 22.10 and Fedora 37 with Wayland session, it works flawlessly. + +**More details about Kooha** + +- [Home page][5] +- [Source code][6] + +#### 2. GNOME screen recorder + +The second in the list is GNOME Shell’s built-in screen recorder. It’s part of the GNOME’s new screenshot utility which you can launch by searching “screenshot” in the application menu. + +GNOME Screen recorder provides you option to record the entire screen or a rectangular portion. In addition, you have the option to record the cursor as well. + +However it only supports recording to webM format. And you can’t do a delayed start of your recording. + +You don’t need to install anything extra to use this. Since it comes by default with GNOME desktop. + +Use the keyboard shortcut `CTRL+SHIFT+ALT+R` to launch it. And select your option, then hit the record button. + +The recordings saved at ~/home/Videos/Screencasts. + +![GNOME Screen recorder][7] + +#### 3. OBS Studio + +The popular free and open-source streaming application OBS Studio recently started supporting Wayland. Although it is primarily used for live streaming, but it’s screen recording feature actually works in Wayland and you can use it. + +Since its a professional grade software, you can take advantage of it’s recording feature. In addition, you can also record the sound from the mic of your system while recording the screen. + +Installing OBS Studio is easy with Flatpak. [Set up your system for Flathub][4] and install it using the following command. + +``` +flatpak install com.obsproject.Studio +``` + +Note: OBS Studio need FFmpeg to run. We have a guide [here][8], if you want to install FFmpeg. + +After you launch OBS Studio, click on + sign under Sources to add source. Then select “Screen capture..”. And then click ok. + +![Screen capture option][9] + +![recording in OBS Studio in Wayland][10] + +After you stop the recording, it is saved at your ~/home directory. + +**More details about OBS Studio** + +- [Home page][11] +- [Source code][12] + +#### 4. vokoscreenNG + +The vokoscreenNG is a little different screen recording app which is totally underrated. It’s an old application and supports window capture, rectangular caption. In addition, it also support audio capture alongside screen, system tray control, magnifying glass, countdown, timer and many cool features. + +Recently, an experimental Wayland support introduced which you can try out. It works fairly well. Currently it supports webm, m4, mkv, mov and avi formats for Wayland. However, audio recording is not yet available for Wayland sessions. + +You can download the pre-compiled executable for Linux distros which require no installation from the below link. And run. + +[Download][13] + +![vokoscreenNG][14] + +**More details about vokoscreenNG** + +- [Home page][15] + +#### 5. Wayfarer + +The final screen recorder in this list is Wayfarer, based on GTK4. It currently supports all the modern protocols such as Wayland, Pipewire with wireplumber. It’s simple user interface supports screen recording with audio capture. You can also select a portion of your desktop or the entire screen for recording. + +Furthermore, you can select the frame rate, select mouse capture and have the ability to delay the recording. Currently it supports webm, mp4 and mkv formats. + +![Wayfarer screen recorder for Linux][16] + +However, it is currently available in Arch User repository (AUR) for Arch Linux. You can setup any AUR helper such as Yay and install it using the following command. + +``` +yay -S wayfarer-git +``` + +**More details about Wayfarer** + +[Home page & source code][17] + +### Other excellent screen recorders which are currently not working with Wayland + +Other than the above list, there are some excellent screen recorders available for X.Org which is currently broken in Wayland. As per my test in Ubuntu 22.10 and Fedora 37 wayland session, none of these works. You can only see a black screen in the recording file. I hope they get fixed in coming days and become compatible with Wayland. + +- [Peek][18] (may work with XWayland backend) +- [Simple screen recorder][19] +- [Blue Recorder][20] (supports Wayland but is currently broken) + +### Wrapping Up + +From my personal experience, Wayland is faster and better. Since many modern distros are moving towards Wayland, you must change your workflow with replacement apps. I hope this list of screen recorders in Wayland helps you pick the one that suits you best. + +Do let me know if you know of any other apps of a similar category which work with Wayland. + +[Next:Top 10 32-Bit Linux Distributions in 2022 [Compared]][21] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/screen-recorders-linux-wayland/ + +作者:[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/12/wayrec.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2021/12/Kooha-Best-Screen-Recoder-for-GNOME.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kooha-Settings.jpg +[4]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[5]: https://apps.gnome.org/app/io.github.seadve.Kooha/ +[6]: https://github.com/SeaDve/Kooha +[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/GNOME-Screen-recorder.jpg +[8]: https://www.debugpoint.com/install-ffmpeg-ubuntu/ +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/Screen-capture-option.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/recording-in-OBS-Studio-in-Wayland.jpg +[11]: https://obsproject.com/ +[12]: https://github.com/obsproject/obs-studio +[13]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html +[14]: https://www.debugpoint.com/wp-content/uploads/2022/12/vokoscreenNG.jpg +[15]: https://linuxecke.volkoh.de/vokoscreen +[16]: https://www.debugpoint.com/wp-content/uploads/2022/12/Wayfarer-screen-recorder-for-Linux.jpg +[17]: https://github.com/stronnag/wayfarer +[18]: https://github.com/phw/peek +[19]: https://www.maartenbaert.be/simplescreenrecorder/ +[20]: https://github.com/xlmnxp/blue-recorder +[21]: https://www.debugpoint.com/32-bit-linux-distributions/ From 8dd4a59c99b126e56b174735e9a96df93a146e52 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 14 Dec 2022 20:44:31 +0800 Subject: [PATCH 2345/3123] translated --- ...️ 7 pro tips for using the GDB step command.md | 255 ----------------- ...️ 7 pro tips for using the GDB step command.md | 256 ++++++++++++++++++ 2 files changed, 256 insertions(+), 255 deletions(-) delete mode 100644 sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md create mode 100644 translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md diff --git a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md deleted file mode 100644 index 8d0a0fecfd..0000000000 --- a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md +++ /dev/null @@ -1,255 +0,0 @@ -[#]: subject: "7 pro tips for using the GDB step command" -[#]: via: "https://opensource.com/article/22/12/gdb-step-command" -[#]: author: "Alexandra https://opensource.com/users/ahajkova" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 pro tips for using the GDB step command -====== - -A debugger is software that runs your code and examines any problems it finds. [GNU Debugger][1] (GBD) is one of the most popular debuggers, and in this article, I examine GDB's `step` command and related commands for several common use cases. Step is a widely used command but there are a few lesser known things about it which might be confusing. Also, there are ways to step into a function without actually using the `step` command itself such as using the less known `advance` command. - -### No debugging symbols - -Consider a simple example program: - -``` -#include - -int num() { - return 2; -} - -void bar(int i) { - printf("i = %d\n", i); -} - -int main() { - bar(num()); - return 0; -} -``` - -If you compile without the debugging symbols first, set a breakpoint on `bar` and then try to step within it. The GDB gives an error message about no line number information: - -``` -gcc exmp.c -o exmp -gdb ./exmp -(gdb) b bar -Breakpoint 1 at 0x401135 -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, 0x0000000000401135 in bar () -(gdb) step -Single stepping until exit from function bar, -which has no line number information. -i = 2 -0x0000000000401168 in main () -``` - -### Stepi - -It is still possible to step inside the function that has no line number information but the `stepi` command should be used instead. Stepi executes just one instruction at a time. When using GDB's `stepi` command, it's often useful to first do `display/i $pc`. This causes the program counter value and corresponding machine instruction to be displayed after each step: - -``` -(gdb) b bar -Breakpoint 1 at 0x401135 -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, 0x0000000000401135 in bar () -(gdb) display/i $pc -1: x/i $pc -=> 0x401135 : sub $0x10,%rsp -``` - -In the above `display` command, the `i` stands for machine instructions and `$pc` is the program counter register. - -It can be useful to use info registers and print some register contents: - -``` -(gdb) info registers -rax 0x2 2 -rbx 0x7fffffffdbc8 140737488346056 -rcx 0x403e18 4210200 -(gdb) print $rax -$1 = 2 -(gdb) stepi -0x0000000000401139 in bar () -1: x/i $pc -=> 0x401139 : mov %edi,-0x4(%rbp) -``` - -### Complicated function call - -After recompiling the example program with debugging symbols you can set the breakpoint on the `bar` call in main using its line number and then try to step into `bar` again: - -``` -gcc -g exmp.c -o exmp -gdb ./exmp -(gdb) b exmp.c:14 -Breakpoint 1 at 0x401157: file exmp.c, line 14. -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, main () at exmp.c:14 -14 bar(num()); -``` - -Now, let's step into`bar()`: - -``` -(gdb) step -num () at exmp.c:4 -4 return 2; -``` - -The arguments for a function call need to be processed before the actual function call, so `num()` is expected to execute before `bar()`is called. But how do you step into the `bar` as was desired? You need to use the `finish` command and `step` again: - -``` -(gdb) finish -Run till exit from #0 num () at exmp.c:4 -0x0000000000401161 in main () at exmp.c:14 -14 bar(num()); -Value returned is $1 = 2 -(gdb) step -bar (i=2) at exmp.c:9 -9 printf("i = %d\n", i); -``` - -### Tbreak - -The `tbreak` command sets a temporary breakpoint. It's useful for situations where you don't want to set a permanent breakpoint. For example, if you want to step into a complicated function call like `f(g(h()), i(j()), ...)` , in such a case you need a long sequence of `step/finish/step` to step into `f` . Setting a temporary breakpoint and then using continue can help to avoid using such sequences. To demonstrate this, you need to set the breakpoint to the `bar` call in `main` as before. Then set the temporary breakpoint on `bar`.  As a temporary breakpoint it is automatically removed after being hit: - -``` -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, main () at exmp.c:14 -14 bar(num()); -(gdb) tbreak bar -Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9. -``` - -After hitting the breakpoint on the call to `bar` and setting a temporary breakpoint on `bar`, you just need to continue to end up in  `bar`. - -``` -(gdb) continue -Continuing. -Temporary breakpoint 2, bar (i=2) at exmp.c:9 -9 printf("i = %d\n", i); -``` - -### Disable command - -Alternatively, you could set a normal breakpoint on `bar` , continue, and then disable this second breakpoint when it's no longer needed. This way you can achieve the same results as with the `tbreak` with one extra command: - -``` -(gdb) b exmp.c:14 -Breakpoint 1 at 0x401157: file exmp.c, line 14. -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, main () at exmp.c:14 -14 bar(num()); -(gdb) b bar -Breakpoint 2 at 0x40113c: file exmp.c, line 9. -(gdb) c -Continuing. -Breakpoint 2, bar (i=2) at exmp.c:9 -9 printf("i = %d\n", i); -(gdb) disable 2 -``` - -As you can see, the `info breakpoints`  command displays `n` under `Enb`which means it’s disabled but you can enable it later if it’s needed again. - -``` -(gdb) info breakpoints -Num Type Disp Enb Address What -1 breakpoint keep y 0x0000000000401157 in main at exmp.c:14 -breakpoint already hit 1 time -2 breakpoint keep n 0x000000000040113c in bar at exmp.c:9 -breakpoint already hit 1 time -(gdb) enable 2 -(gdb) info breakpoints -Num Type Disp Enb Address What -1 breakpoint keep y 0x000000000040116a in main at exmp.c:19 -breakpoint already hit 1 time -2 breakpoint keep y 0x0000000000401158 in bar at exmp.c:14 -breakpoint already hit 1 time -``` - -### Advance location - -Another option you can use is an `advance` command. Instead of `tbreak bar ; continue` , you can simply do `advance bar` . This command continues running the program up to the given location. - -The other cool thing about `advance` is that if the location that you try to advance to is not reached, GDB will stop after the current frame's function finishes. Thus, execution of the program is constrained: - -``` -Breakpoint 1 at 0x401157: file exmp.c, line 14. -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, main () at exmp.c:14 -14 bar(num()); -(gdb) advance bar -bar (i=2) at exmp.c:9 -9 printf("i = %d\n", i); -``` - -### Skipping a function - -Yet another way to step into the `bar,` avoiding `num`, is using the `skip` command: - -``` -(gdb) b exmp.c:14 -Breakpoint 1 at 0x401157: file exmp.c, line 14. -(gdb) skip num -Function num will be skipped when stepping. -(gdb) r -Starting program: /home/ahajkova/exmp -Breakpoint 1, main () at exmp.c:14 -14 bar(num()); -(gdb) step -bar (i=2) at exmp.c:9 -9 printf("i = %d\n", i); -``` - -To know which functions are currently skipped,  `info skip` is used.  The `num` function is marked as enabled to be skipped by `y`: - -``` -(gdb) info skip -Num Enb Glob File RE Function -1 y n n num -``` - -If `skip` is not needed any more it can be disabled (and re-enabled later) or deleted altogether. You can add another `skip` and disable the first one and then delete them all. To disable a certain `skip`, its number has to be specified, if not specified, each `skip`is disabled. It works the same for enabling or deleting a `skip`: - -``` -(gdb) skip bar -(gdb) skip disable 1 -(gdb) info skip -Num Enb Glob File RE Function -1 n n n num -2 y n n bar -(gdb) skip delete -(gdb) info skip -Not skipping any files or functions. -``` - -### GDB step command - -Using GDB's `step` command is a useful tool for debugging your application. There are several ways to step into even complicated functions, so give these GDB techniques a try next time you're troubleshooting your code. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/gdb-step-command - -作者:[Alexandra][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/ahajkova -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/21/3/debug-code-gdb diff --git a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md new file mode 100644 index 0000000000..ea398cd4a0 --- /dev/null +++ b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md @@ -0,0 +1,256 @@ +[#]: subject: "7 pro tips for using the GDB step command" +[#]: via: "https://opensource.com/article/22/12/gdb-step-command" +[#]: author: "Alexandra https://opensource.com/users/ahajkova" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GDB 进入函数内部的 7 个命令 +====== + +>**调试器**是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 **GDB 进入函数内部的几个命令**,包含了 **`step` 命令**和其他几个**常见的 GDB 命令**。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。 + +### 1、无调试符号 + +考虑以下这个简单的示例程序: + +``` +#include + +int num() { + return 2; +} + +void bar(int i) { + printf("i = %d\n", i); +} + +int main() { + bar(num()); + return 0; +} +``` + +如果你在没有 调试符号 debugging sysbols 的情况下进行编译(即在使用 `gcc` 编译程序时上,没有写 `-g` 选项),然后在 `bar` 上设置一个断点,然后尝试在这个函数内使用 `step`,来单步执行语句。GDB 会给出一个 没有行号信息 no line number information 的错误信息。 + +``` +gcc exmp.c -o exmp +gdb ./exmp +(gdb) b bar +Breakpoint 1 at 0x401135 +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, 0x0000000000401135 in bar () +(gdb) step +Single stepping until exit from function bar, +which has no line number information. +i = 2 +0x0000000000401168 in main () +``` + +### 2、`stepi` 命令 + +但是你仍然可以在没有行号信息的函数内部单步执行语句,但要使用 `stepi` 命令来代替 `step`。`stepi` 一次只执行一条指令。当使用 GDB 的 `stepi` 命令时,先做 `display/i $pc` 通常很有用,这会在每一步之后**显示** **程序计数器的值** program counter value 和**相应的** **机器指令** machine instruction : + +``` +(gdb) b bar +Breakpoint 1 at 0x401135 +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, 0x0000000000401135 in bar () +(gdb) display/i $pc +1: x/i $pc +=> 0x401135 : sub $0x10,%rsp +``` + +在上述的 `display` 命令中,`i` 代表机器指令,`$pc` 表示程序计数器寄存器(即 PC 寄存器)。 + +使用 `info registers` 命令,来**打印寄存器的内容**,也是十分有用的。 + +``` +(gdb) info registers +rax 0x2 2 +rbx 0x7fffffffdbc8 140737488346056 +rcx 0x403e18 4210200 +(gdb) print $rax +$1 = 2 +(gdb) stepi +0x0000000000401139 in bar () +1: x/i $pc +=> 0x401139 : mov %edi,-0x4(%rbp) +``` + +### 3、复杂的函数调用 + +在带调试符号的 `-g` 选项,重新编译示例程序后,你可以用 `main` 中的行号,在 `bar` 上设置断点,然后再单步执行 `bar` 函数的语句: + +``` +gcc -g exmp.c -o exmp +gdb ./exmp +(gdb) b exmp.c:14 +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +``` + +接下来,用 `step`,来单步执行 `bar()` 函数的语句: + +``` +(gdb) step +num () at exmp.c:4 +4 return 2; +``` + +函数调用的参数需要在实际的函数调用之前进行处理,`bar()` 函数调用了 `num()` 函数,所以 `num()` 会在 `bar()` 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 `bar()` 函数呢?你可以使用 `finish` 命令,并再次使用 `step` 命令。 + +``` +(gdb) finish +Run till exit from #0 num () at exmp.c:4 +0x0000000000401161 in main () at exmp.c:14 +14 bar(num()); +Value returned is $1 = 2 +(gdb) step +bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +### 4、`Tbreak` 命令 + +`tbreak` 命令会设置一个**临时断点**。如果你不想设置永久断点,那么这个命令是很有用的。举个例子🌰,你想进入一个复杂的函数调用,例如 `f(g(h()), i(j()), ...)`,在这种情况下,你需要一个很长的 `step/finish/step` 序列,才能到达 `f` 函数。如果你设置一个临时断点,然后再使用 `continue` 命令,这样就不需要以上的序列了。为了证明这一点,你需要像以前一样将断点设置在 `main` 的 `bar` 调用上。然后在 `bar` 上设置临时断点。当到达该临时断点后,临时断点会被自动删除。 + + +``` +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) tbreak bar +Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9. +``` + +在调用 `bar` 的时候遇到断点,并在 `bar` 上设置临时断点后,你只需要使用`continue` 继续运行直到 `bar` 结束。 + +``` +(gdb) continue +Continuing. +Temporary breakpoint 2, bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +### 5、`disable` 命令 + +类似地,你也可以在 `bar` 上设置一个正常的断点,然后执行 `continue`,然后在不再需要第二个断点时,使用`disable` 命令禁用这个断点,这样也能达到与 `tbreak` 相同的效果。 + +``` +(gdb) b exmp.c:14 +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) b bar +Breakpoint 2 at 0x40113c: file exmp.c, line 9. +(gdb) c +Continuing. +Breakpoint 2, bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +(gdb) disable 2 +``` + +正如你所看到的,`info breakpoints` 命令在 `Enb` 下显示为 `n`,这意味着这个断点已被禁用。但你也能在再次需要这个断点时,再启用它。 + +``` +(gdb) info breakpoints +Num Type Disp Enb Address What +1 breakpoint keep y 0x0000000000401157 in main at exmp.c:14 +breakpoint already hit 1 time +2 breakpoint keep n 0x000000000040113c in bar at exmp.c:9 +breakpoint already hit 1 time +(gdb) enable 2 +(gdb) info breakpoints +Num Type Disp Enb Address What +1 breakpoint keep y 0x000000000040116a in main at exmp.c:19 +breakpoint already hit 1 time +2 breakpoint keep y 0x0000000000401158 in bar at exmp.c:14 +breakpoint already hit 1 time +``` + +### 6、`Advance` 命令运行程序到指定的位置 + +另一个进入函数内部的方法是 `advance` 命令。你可以简单地用 `advance bar`,来代替 `tbreak bar ; continue`。这一命令会将程序继续运行到指定的位置。 + +`advance` 命令的一个很棒的地方在于:如果程序并没有到达你试图进入的位置,那么 GDB 将在当前函数运行完成后停止。因此,程序的执行会受到限制: + +``` +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) advance bar +bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +### 7、`skip` 命令 + +进入 `bar` 函数的另一种方式是使用 `skip num` 命令: + +``` +(gdb) b exmp.c:14 +Breakpoint 1 at 0x401157: file exmp.c, line 14. +(gdb) skip num +Function num will be skipped when stepping. +(gdb) r +Starting program: /home/ahajkova/exmp +Breakpoint 1, main () at exmp.c:14 +14 bar(num()); +(gdb) step +bar (i=2) at exmp.c:9 +9 printf("i = %d\n", i); +``` + +请使用 `info skip` 命令,来了解 GDB 跳过了哪些函数。`num()` 函数被标记为 `y`,表示跳过了 `num()` 函数: + +``` +(gdb) info skip +Num Enb Glob File RE Function +1 y n n num +``` + +如果不再需要 `skip`,可以禁用(稍后重新启用)或完全删除它。你可以添加另一个 `skip`,并禁用第一个 `skip`,然后全部删除。要禁用某个 `skip`,必须指定其编号(例如,`skip disable 1`),如果没有指定,则会禁用所有的 `skip`。启用或删除 `skip` 的工作原理相同: + +``` +(gdb) skip bar +(gdb) skip disable 1 +(gdb) info skip +Num Enb Glob File RE Function +1 n n n num +2 y n n bar +(gdb) skip delete +(gdb) info skip +Not skipping any files or functions. +``` + +### GDB 的 `step` 命令 + +使用 GDB 的 `step` 命令是调试程序的一个有用工具。即使是复杂的函数,也有几种方法可以进入这些函数,所以下次你在排除代码问题的时候,可以尝试一下这些 GDB 技术。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/gdb-step-command + +作者:[Alexandra][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/ahajkova +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/3/debug-code-gdb From b9638d8f62ab2f362e5073d66aaa55d5715de506 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 14 Dec 2022 20:47:55 +0800 Subject: [PATCH 2346/3123] translating --- ...21212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md index 4988fb5a7c..d91fa7bea4 100644 --- a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md +++ b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/best-linux-phones/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From dd48a67ffe2f650867563e7844886805ae2e9bd3 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 15 Dec 2022 08:47:48 +0800 Subject: [PATCH 2347/3123] translated --- ...⭐️ Install open source solar power at home.md | 61 ------------------- ...⭐️ Install open source solar power at home.md | 61 +++++++++++++++++++ 2 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md create mode 100644 translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md diff --git a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md deleted file mode 100644 index 303c257fdb..0000000000 --- a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md +++ /dev/null @@ -1,61 +0,0 @@ -[#]: subject: "Install open source solar power at home" -[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home" -[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Install open source solar power at home -====== - -You might have already given some thought to powering your home with solar. Solar photovoltaic panels, which convert sunlight directly into electricity, have fallen so far down in cost that it makes economic sense everywhere. That is why large companies have put in a lot of solar, and even the electric utilities have started installing massive solar farms—it simply costs less than antiquated fossil fuels. Like most homeowners, you would like to save money and eviscerate your electric bill, but you are probably cringing a bit at the upfront cost. To get a rough idea of the cost, a 5kW system that would power an average home installed at $3/W would cost about $15,000, while a larger home might need 10kW to offset all of their electricity purchases and cost $30,000. If you want batteries, double the cost (you don’t need batteries as most solar arrays connect to the grid, but if the grid goes down, so does your solar array until it is turned back on.) Paying for all your electricity for the next several decades is an investment, even if you save a lot of money. - -There is some good financial news. First, both the US and Canada have enacted a 30% tax credit for solar. This credit drops the price down to about $2/W. Second, [Opensource.com previously discussed][1] how you could get a free book, [_To Catch the Sun_][2], that walks you through how to design your own system (you will still need a certified electrician and inspections to attach it to the grid). If you are a little handy, you can cut the remaining cost by about 50%. These costs are primarily for materials, including solar panels, wiring, electronics, and racking. Amazingly, solar panel costs have dropped so low for small solar systems (like the ones for your house) the racking (mechanical structures that hold the solar panels up) can cost more than the panels! - -### Open source to the rescue again - -Applying the open source development paradigm to software results in faster innovation, better products, and lower costs. The same is true of open source hardware—and even in the relatively obscure area of photovoltaic racking. Nearly all commercial photovoltaic racking is made from proprietary odd aluminum extrusions. They cost a lot of money. If you have a bit of unshaded backyard, you have a few open source racking solutions to choose from. - -### Open source solar rack designs - -The first DIY solar rack design meets the following criteria: (1) made from locally-accessible renewable materials, (2) 25-year lifetime to match solar warranties, (3) able to be fabricated by average consumers, (4) able to meet Canadian structural building codes (if you live where there is no snow this is a bit overkill, but, hey, you might have other weather extremes like hurricanes to deal with), (5) low cost and (6) that it is shared using an open source license. [The open source wood-based fixed-tilt ground-mounted bifacial photovoltaic rack design][3] works throughout North America. The racking system saves from 49% to 77% compared to commercial proprietary racking. The racking design, however, is highly dependent on the cost of lumber, which varies worldwide. - -Check your local cost of wood before you dive into this open source design. - -![Non-tilting solar rack plans][4] - -If you are even more adventurous, you might consider this second design that allows you to change the tilt angle. The results of [the second study][5] show the racking systems with an optimal variable seasonal tilt angle have the best lifetime energy production, with 5.2% more energy generated compared to the fixed-tilt system (or 4.8% more energy, if limited to a maximum tilt angle of 60°). Both fixed and variable wooden racking systems show similar electricity costs, which are only 29% of that of proprietary commercial metal racking. The variable tilt rack provides the lowest cost option even when modest labor costs are included and also may provide specific advantages for applications such as [agrivoltaics][6] (i.e., you can garden underneath the panels and amazingly get increases in yields for shade-tolerant crops like lettuce). This design has been certified by [OSHWA with CERN-OHL-S-2.0 licenses][7]. - -IMAGE - -![Tilt-adjustable solar racks][8] - -There is about 1kW for each of the 2 PV module racks shown. So a house would need about five of them. Both papers provide full calculations and step-by-step build instructions. - -As anyone with a solar system will tell you, getting a negative electricity bill is pretty rewarding. This happens if you size your system to meet all of your load and live in a net-metered part of the country. Please note that the electric utilities don’t pay you; the credit carries over until you use it in the winter. - -Have fun with a little open source solar! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-solar-power-home - -作者:[Joshua Pearce][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/joshuapearce -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/21/11/open-source-solar-power -[2]: https://tocatchthesun.com/ -[3]: https://doi.org/10.3390/designs6030041 -[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png -[5]: https://doi.org/10.3390/designs6030054 -[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems -[7]: https://certification.oshwa.org/ca000013.html -[8]: https://opensource.com/sites/default/files/2022-11/tilt.png diff --git a/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md new file mode 100644 index 0000000000..c73b0ee49b --- /dev/null +++ b/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md @@ -0,0 +1,61 @@ +[#]: subject: "Install open source solar power at home" +[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home" +[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在家里安装开源太阳能 +====== + +你可能已经考虑过用太阳能为您的家供电。将太阳光直接转化为电能的太阳能光伏电池板的成本已大幅下降,因此在任何地方都具有经济意义。这就是为什么大公司投入大量太阳能,甚至电力公司也开始安装大型太阳能发电场的原因,因为它的成本低于过时的化石燃料。像大多数房主一样,你想省钱并节省电费,但你可能对前期费用有点畏缩。为了大致了解成本,以 3 美元/瓦的价格为普通家庭供电的 5kW 系统的成本约为 15,000 美元,而更大的家庭可能需要 10kW 才能抵消所有电力购买,成本为 30,000 美元。如果你想要电池,成本加倍(你不需要电池,因为大多数太阳能电池阵列连接到电网,但如果电网瘫痪,你的太阳能电池阵列也会瘫痪,直到它重新开启)支付你未来几十年所有的电费是一种投资,即使你存了很多钱。 + +有一些好消息。首先,美国和加拿大都对太阳能实行了 30% 的税收抵免。此项优惠将价格降至约 2 美元/W。其次,[Opensource.com 之前讨论][1]过你可以获得一本免费书籍[_捕捉阳光_][2],它会引导你完成如何设计自己的系统(你仍然需要一个合格的电工和检查来把它连接到电网)。如果你有一点手艺,你可以将剩余成本削减约 50%。这些成本主要用于材料,包括太阳能电池板、布线、电子设备和支架。令人惊讶的是,对于小型太阳能系统(比如你家的太阳能系统)来说,太阳能电池板的成本下降得如此之低,以至于支架(支撑太阳能电池板的机械结构)的成本可能比面板还高! + +### 开源再次拯救 + +将开源开发范式应用于软件可以加快创新速度、改进产品并降低成本。开源硬件也是如此,甚至在光伏支架这个相对不为人知的领域也是如此。几乎所有的商业光伏支架都是由专有的奇特铝型材制成。它们会花很多钱。如果你有一些没有遮挡的后院,你有一些开源的支架解决方案可以选择。 + +### 开源太阳能支架设计 + +第一个 DIY 太阳能支架设计符合以下标准:(1) 由当地可获得的可再生材料制成,(2) 25 年的使用寿命与太阳能保修相匹配,(3) 能够由普通消费者制造,(4) 能够 符合加拿大结构建筑规范(如果你住在没有雪的地方,这有点矫枉过正,但是,嘿,你可能有其他极端天气需要应对,例如飓风),(5)低成本,(6)它是共享的 使用开源许可证。[开源的木质固定倾斜地面安装双面光伏支架设计][3]在整个北美都适用。与商业专有支架相比,该支架系统可节省 49% 至 77%。然而,支架设计高度依赖于世界各地不同的木材成本。 + +在深入研究这个开源设计之前,请检查你当地的木材成本。 + +![Non-tilting solar rack plans][4] + +如果你更喜欢冒险,你可能会考虑第二种允许改变倾斜角度的设计。[第二项研究][5]的结果表明,具有最佳可变季节性倾斜角的支架系统具有最佳的终身能量产生,与固定倾斜系统相比,产生的能量多 5.2%(或者,如果最大倾斜角限制为 60°,能量多 4.8%)。固定和可变木制支架系统的电力成本相似,仅为专有商业金属货架的 29%。可变倾斜支架提供了最低成本的选择,即使包括适度的劳动力成本,也可能为[农业光伏][6]等应用提供特定优势(即,你可以在面板下面种菜,对于莴苣等耐阴作物来说,能惊人地增加产量)。此设计已通过[具有 CERN-OHL-S-2.0 许可证的 OSHWA][7] 的认证。 + +图片 + +![Tilt-adjustable solar racks][8] + +所示的 2 个 PV 模块架中的每一个大约有 1kW。所以一所房子大约需要五个。这两篇论文都提供了完整的计算和分步建造说明。 + +正如拥有太阳能系统的任何人都会告诉你的那样,获得负电费是非常有益的。如果你的系统规模能满足你所有的负荷,并且住在该国的净计量地区,就会出现这种情况。请注意,电力公司不会向你付款; 额度会一直延续到你在冬天使用它为止。 + +享受一点开源太阳能带来的乐趣! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-solar-power-home + +作者:[Joshua Pearce][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/joshuapearce +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/11/open-source-solar-power +[2]: https://tocatchthesun.com/ +[3]: https://doi.org/10.3390/designs6030041 +[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png +[5]: https://doi.org/10.3390/designs6030054 +[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems +[7]: https://certification.oshwa.org/ca000013.html +[8]: https://opensource.com/sites/default/files/2022-11/tilt.png From 2a1098bed71e552f6a5cef3aebdacc2dadf93943 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 15 Dec 2022 08:50:50 +0800 Subject: [PATCH 2348/3123] translating --- ...0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md index 0ff3f068de..f97b3107bb 100644 --- a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md +++ b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5c93061c0e69976d2486ceafdbfc12dd11ccd04d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 15 Dec 2022 10:17:01 +0800 Subject: [PATCH 2349/3123] RP @Veryzzj https://linux.cn/article-15349-1.html --- ...0210330 A DevOps guide to documentation.md | 94 +++++++++++++++++++ ...0210330 A DevOps guide to documentation.md | 92 ------------------ 2 files changed, 94 insertions(+), 92 deletions(-) create mode 100644 published/20210330 A DevOps guide to documentation.md delete mode 100644 translated/tech/20210330 A DevOps guide to documentation.md diff --git a/published/20210330 A DevOps guide to documentation.md b/published/20210330 A DevOps guide to documentation.md new file mode 100644 index 0000000000..79f11c85c2 --- /dev/null +++ b/published/20210330 A DevOps guide to documentation.md @@ -0,0 +1,94 @@ +[#]: subject: "A DevOps guide to documentation" +[#]: via: "https://opensource.com/article/21/3/devops-documentation" +[#]: author: "Will Kelly https://opensource.com/users/willkelly" +[#]: collector: "lujun9972" +[#]: translator: "Veryzzj" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15349-1.html" + +文档写作的 DevOps 指南 +====== + +> 将文档写作加入到 DevOps 的生命周期中。 + +![][0] + +DevOps 正在挑战技术文档的规范,这在 IT 历史上是前所未有的。从自动化到提高交付速度,再到拆除瀑布式软件开发生命周期模型,这意味着业务和技术文档写作的理念需要做出巨大改变。 + +以下是 DevOps 对技术文档写作不同方面的影响。 + +### 技术写手的角色变化 + +技术写手必须适应 DevOps。好消息是,许多技术写手已经加入到开发团队中,并且拥有合作关系和不断增长的产品知识的技术写手很具优势。 + +但是如果一个技术写手习惯于独立工作,并依赖于领域专家的草稿作为文档的基础,那么就需要做一些调整。 + +进行一些投资,以确保文档和其他与项目有关的内容开发工作获得所需的工具、结构和支持。从改变 [技术写手聘用方式][2] 开始。以 [DevOps 的速度][3] 编写文档需要重新思考内容规划,并打破 DevOps 团队和支持项目的技术写手之间长期存在的隔阂。 + +DevOps 使开发团队摆脱了传统文档实践的束缚。首先,文档 [完成的定义][4] 必须改变。一些企业的文化使技术写手成为软件开发的被动参与者。DevOps 提出了新的要求:随着 DevOps 文化的转变,技术写手的角色也应发生变化。技术写手需要(且必须适应)DevOps 提供的透明度。他们必须融入 DevOps 团队。取决于组织如何塑造这个角色,将技术写手带入团队可能会带来技能上的挑战。 + +### 文档标准、方法和规格 + +虽然 DevOps 还没有影响到技术文档本身,但开源社区已经加强了对应用编程接口(API)文档的帮助,已经有不同规模的企业的 DevOps 团队正在使用这些文档。 + +用于记录 API 的开源规范和工具是个非常值得关注的领域。我想这是由于 [谷歌文档季][5] 的影响,它使开源软件项目能够获得专业的技术写作人才来解决他们最关键的文档项目。 + +开源 API 属于 DevOps 文档讨论的一部分。云原生应用集成需求的重要性正在上升。[OpenAPI 规范][6](一个定义和记录 API 的开放标准)是在 DevOps 环境下 API 文档的良好资源。然而,该规范会导致文档的创建和更新过程变得很费时,这使其饱受批评。 + +曾经也有短暂尝试过创建 [持续文档][7]Continuous Documentation,并且还有一个来自 CA(现在的 Broadcom)的创建 [DocOps][8] 框架的运动。然而,DocOps 从来没有作为一个行业运动流行起来。 + +DevOps 文档标准的现状意味着 DevOps 团队(包括技术写手)需要在项目的最初阶段就开始创建文档。要做到这一点,你需要把文档作为一个敏捷故事和(同样重要的)管理期望,并且把它与年度绩效评估放在一起执行。 + +### 文档工具 + +文档的编写应该以一种所有团队成员都可以使用的格式或平台在线进行。MediaWiki、DokuWiki、TikiWiki 和其他 [开源维基][9] 为 DevOps 团队提供了一个编写和维护文档的中央仓库。 + +让团队选择他们的维基平台,就像让他们选择他们的其他持续集成/持续开发(CI/CD)工具链一样。开源维基强大之处在于其可扩展性。例如,DokuWiki 包括一系列的扩展,你可以通过安装这些扩展来创建一个符合你的 DevOps 团队的创作要求的平台。 + +如果你有足够的野心来加强你的团队的编写和协作能力,[Nextcloud][10](一个开源的云协作套件)是一个让你的 DevOps 团队上网并给他们提供编写文档所需工具的选择。 + +### DevOps 最佳实践 + +文档在 DevOps 转型中也发挥着作用。例如,你会想要记录组织从 DevOps 实现效率和流程增益的最佳实践,这些信息太重要了,不能靠着 DevOps 团中之间口耳相传。如果你所在的组织有多个 DevOps 团队,那么文档就是统一的力量,它可以促进最佳实践的标准化,并设置了衡量代码质量的基准指标。 + +一般情况下,开发人员承担了记录 DevOps 实践的工作。即使他们的组织有技术写手,他们也可能跨开发团队工作。因此,开发人员和系统管理员能够捕捉、记录和交流他们的最佳实践是很重要的。这里有一些朝正确的方向发展的提示: + +* 提前花时间为 DevOps 最佳实践创建标准模板。不要陷入复制在线模板的陷阱。采访利益相关者和团队来创建一个符合团队需求的模板。 +* 寻找一些创造性的信息收集的方法,例如记录团队会议和使用聊天系统日志来作为文档的基础。 +* 建立一个用于发布最佳实践的维基。使用维基可以跟踪编辑和更新。这样的平台可以帮助团队在最佳实践发生变化时进行更新和维护。 + +当在构建 CI/CD 工具链时记录依赖关系是非常明智的。尤其是当加入新的团队成员时,你会发现这些记录非常有用,另外当团队成员忘记一些事情时,这也是一种保险。 + +最后,自动化对 DevOps 利益相关者和从业者都很有吸引力。在自动化中断之前,一切都很有趣。拥有自动化运行手册、管理指南和其他内容的文档(并且是最新的)意味着无论何时发生故障,员工都可以让自动化重新工作。 + +### 最后一些想法 + +DevOps 对于技术文档来说是一个积极的因素。它将内容开发纳入 DevOps 生命周期,并打破组织文化中开发人员和技术作者之间的隔阂。在没有技术写手的情况下,团队就可以使用工具来加快文档创作的速度,以与 DevOps 的速度相匹配。 + +你的组织将如何把文档加入到 DevOps 生命周期?请在评论区分享你的经验。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/3/devops-documentation + +作者:[Will Kelly][a] +选题:[lujun9972][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/willkelly +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv "Typewriter with hands" +[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops +[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842 +[4]: https://www.agilealliance.org/glossary/definition-of-done +[5]: https://developers.google.com/season-of-docs +[6]: https://swagger.io/specification/ +[7]: https://devops.com/continuous-documentation +[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php +[9]: https://opensource.com/article/20/7/sharepoint-alternative +[10]: https://opensource.com/article/20/7/nextcloud +[0]: https://img.linux.net.cn/data/attachment/album/202212/15/101537c4kcxxzqzh6fxkor.jpg \ No newline at end of file diff --git a/translated/tech/20210330 A DevOps guide to documentation.md b/translated/tech/20210330 A DevOps guide to documentation.md deleted file mode 100644 index 31fd2bffad..0000000000 --- a/translated/tech/20210330 A DevOps guide to documentation.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: "A DevOps guide to documentation" -[#]: via: "https://opensource.com/article/21/3/devops-documentation" -[#]: author: "Will Kelly https://opensource.com/users/willkelly" -[#]: collector: "lujun9972" -[#]: translator: "Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -文档写作的 DevOps 指南 -====== - -将文档写作加入到 DevOps 的生命周期中 -![Typewriter with hands][1] - -DevOps 正在挑战技术文档的规范,这在IT历史上是前所未有的。从自动化到提高交付速度,再到拆除瀑布式软件开发生命周期模型,这意味着业务和技术文档的理念需要做出巨大改变。 - -以下是DevOps对技术文档不同方面的影响。 - -### 技术作家的角色变化 - -技术作家必须适应 DevOps。好消息是,许多技术作家已经加入到开发团队中,并且由于拥有合作关系和不断增长的产品知识,这些技术作家很具优势。 - -但是如果一个技术作家习惯独立工作,并依赖于领域专家的草稿作为文档的基础,那么就需要做一些调整。 - -进行一些投资以确保文档和其他与项目有关的开发工作获得所需的工具、结构和支持。 从改变[技术作家聘用习惯][2]开始。以[DevOps 的速度][3]编写文档需要重新思考内容规划,并打破DevOps 团队和支持项目的技术作家之间长期存在的隔阂。 - -DevOps 使开发团队摆脱了传统文档实践的束缚。首先,文档[完成的定义][4]必须改变。一些企业的文化使技术作家成为软件开发的被动参与者。DevOps提出了新的要求--随着 DevOps 文化的转变,技术作家的角色也应发生变化。技术作家需要(且必须适应)DevOps 提供的透明度。他们必须融入 DevOps 团队。取决于组织如何塑造这个角色,将技术作家带入团队可能会带来技能上的挑战。 - -### 文档标准、方法和规格 - -虽然 DevOps 还没有影响到技术文档本身,但开源社区已经加强了对应用编程接口(API)文档的帮助质保,已经有不同规模的企业的 DevOps 团队正在使用这些文档。 - -用于记录 API 的开源规范和工具是个非常值得关注的领域。我想这是由于[谷歌文档季][5]的影响,使得一些专业的技术作家能够接触到开源项目,并解决最关键的文档类项目。 - -开源 API 属于 DevOps文档讨论。云原生应用集成需求的重要性正在上升。[OpenAPI 规范][6]--一个定义和记录API的开放标准--是在 DevOps 环境下 API 文档的良好资源。然而,该规范会导致文档的创建和更新过程变得很费时,这使其饱受批评。 - -曾经也有短暂尝试过创建[持续文档][7],并且还有一个来自 CA(现在的Broadcom)的创建[DocOps][8]框架的运动。然而,DocOps 从来没有作为一个行业运动流行起来。 - -DevOps 文档标准的现状意味着 DevOps 团队(包括技术作家)需要在项目的最初阶段开始创建文档。要做到这一点,需要把文档作为一个敏捷故事和(同样重要的)管理期望来添加,并且把它与年度绩效评估放在一起执行。 - -### Documentation tools 文档工具 - -文档的编写应该以一种所有团队成员都可以使用的格式或平台在线进行。MediaWiki、DokuWiki、TikiWiki和其他[开源维基][9]为 DevOps 团队提供了一个编写和维护文档的中央仓库。 - -让团队选择他们的 wiki,就像让他们选择他们的其他持续集成/持续开发(CI/CD)工具链一样。开源维基强大之处在于其可扩展性。例如,DokuWiki包括一系列的扩展,你可以通过安装这些扩展来创建一个符合你的 DevOps 团队的创作要求的平台。 - -如果你有足够的野心来加强你的团队的编写和协作能力,[Nextcloud][10](一个开源的云协作套件)是一个让你的 DevOps 团队上网并给他们提供编写文档所需工具的选择。 - -### DevOps 最佳实践 - -文档在 DevOps 转型中也发挥着作用。例如,组织从 DevOps 实现效率和流程增益的最佳实践的相关记录,这些信息太重要了,不能靠着 DevOps团中之间口口相传。如果你所在的组织有多个 DevOps 团队,那么文档就是统一的力量,它可以促进最佳实践的标准化,并设置了衡量代码质量的基准指标。。 - -一般情况下,开发人员承担了记录 DevOps 实践的工作。即使他们的组织有技术作家,他们也可能跨开发团队工作。因此,开发人员和系统管理员能够捕捉、记录和交流他们的最佳实践是很重要的。这里有一些朝正确的方向发展的提示: - -* 提前花时间为 DevOps 最佳实践创建标准模板。不要陷入复制在线模板,采访利益相关者和团队来创建一个符合团队需求的模板。 -* 寻找一些方法进行信息收集,例如记录团队会议和使用聊天系统日志来作为文档的基础。 -* 建立一个用于发布最佳实践的 wiki。使用 wiki 可以跟踪编辑和更新。这样的平台可以帮助团队在最佳实践发生变化时进行更新和维护。 - -当在构建 CI/CD 工具链时记录依赖关系是非常明智的。尤其是当加入新的团队成员时,你会发现这些记录非常有用,另外当团队成员忘记一些事情时,这也是一种保险。 - -最后,自动化对 DevOps 利益相关者和从业者都很有吸引力。在自动化中断之前,一切都很有趣。拥有自动化运行手册、管理指南和其他内容的文档(并且是最新的)意味着无论何时发生故障,员工都可以让自动化重新工作。 - -### 最后一些想法 - -DevOps 对于技术文档来说是一个积极的因素。它将内容开发纳入DevOps生命周期,并打破组织文化中开发人员和技术作者之间的隔阂。没有技术作家的优势,团队就可以使用工具来加快文档创作的速度,以与DevOps的速度相匹配。 - -您的组织将如何把文档加入到 DevOps 生命周期?请在评论区分享您的经验。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/3/devops-documentation - -作者:[Will Kelly][a] -选题:[lujun9972][b] -译者:[Veryzzj](https://github.com/Veryzzj) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/willkelly -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv "Typewriter with hands" -[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops -[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842 -[4]: https://www.agilealliance.org/glossary/definition-of-done -[5]: https://developers.google.com/season-of-docs -[6]: https://swagger.io/specification/ -[7]: https://devops.com/continuous-documentation -[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php -[9]: https://opensource.com/article/20/7/sharepoint-alternative -[10]: https://opensource.com/article/20/7/nextcloud From 3f3b569f75696010eb5327c852269a3c8f73ae37 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 15 Dec 2022 10:51:05 +0800 Subject: [PATCH 2350/3123] RP @robsean https://linux.cn/article-15350-1.html --- ...Install GNOME Desktop Environment in Linux Mint.md | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) rename {translated/tech => published}/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md (66%) diff --git a/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md similarity index 66% rename from translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md rename to published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md index 2547594576..f521aaceed 100644 --- a/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md +++ b/published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md @@ -3,48 +3,50 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "robsean" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15350-1.html" 如何在 Linux Mint 上安装 GNOME 桌面环境 ====== +![][0] + Linux Mint 是一款极好的 Linux 发行版,特别适合初学者。 -我喜欢它仍然保持常见的 Ubuntu/Debian 字体,但是它还做了一些 [比 Ubuntu 更好的][1] 工作。其中之一就是它没有使用 Snaps 。 +我喜欢它仍然保持常见的 Ubuntu/Debian 习惯,但是它还做了一些 [比 Ubuntu 更好的][1] 工作,其中之一就是它没有使用 Snap。 然而,我不是 Cinnamon 桌面环境的粉丝,因为我从来没有真正地喜欢过 Windows XP 或 7 的默认设置。 -当我在为 Linux Mint 寻找能提供稳定使用 GNOME 的能力时,这便是我最终获得的结果: +当我寻求保持 Linux Mint 稳定的同时而提供 GNOME 的能力时,这便是我最终获得的结果: ![install gnome in linux mint][2] -这就是我运行 GNOME 42.5 的 Linux Mint 21 。 +不太炫,这就是我运行 GNOME 42.5 的 Linux Mint 21 。 如果你想在 Linux Mint 上安装 GNOME ,那么这篇指南非常适合你。 ### 在 Linux Mint 上安装GNOME 之前所要知道的事 -你真的应该有足够的理由来在 Mint 上安装 GNOME 。如果你只是为了尝鲜,可以在虚拟机中尝试。我使用 [在 VirtualBox 中安装的 Linux Mint][3] 来演示这篇教程。 +要在 Mint 上安装 GNOME,你务必需要有足够的理由。如果你只是为了尝鲜,可以在虚拟机中尝试。我使用 [在 VirtualBox 中安装的 Linux Mint][3] 来演示这篇教程。 -在发行版上安装一种桌面环境与直接使用来自发行版所提供的桌面环境相比,移除桌面环境部分会使其变成一件很复杂化的事。 +安装除发行版提供的桌面环境之外的其他桌面环境,移除桌面环境部分会使其变成一件很复杂的事。 -Cinnamon 使用一些 GNOME 元素。如果你决定稍后移除 GNOME ,这可能会影响到 Cinnamon 的一部分功能。 +Cinnamon 使用了一些 GNOME 元素。如果你决定稍后移除 GNOME ,这可能会影响到 Cinnamon 的一部分功能。 这可能会导致缺少实战经验用户的恐慌。当然,在 TTY 屏幕中重新安装 Cinnamon 桌面环境可能是一种可行的解决方案。 -最重要的一点是,如果你很容易惊慌地不知所措和不喜欢解决难题,那么你就不应该在你的主力计算机上做这些 ‘试验’ 。 +最重要的一点是,如果你很容易惊慌地不知所措和不喜欢解决难题,那么你就不应该在你的主力计算机上做这些 “试验” 。 抛开这些顾虑,让我们看看在 Linux Mint 上获取 GNOME 的简单过程。 ### 在 Linux Mint 上安装 GNOME 桌面环境 -在这里,你有两个选项。1、你可以使用包含所有的 GNOME 实用程序的完整的 GNOME 桌面,2、你也可以使用包含极少数软件包的 GNOME 精简版本、 +在这里,你有两个选项:1、你可以使用包含所有的 GNOME 实用程序的完整的 GNOME 桌面,2、你也可以使用包含极少数软件包的 GNOME 精简版本。 我都将讲解一下。 -为 **安装精简版本的 GNOME** ,你需要安装一个名称为 `vanilla-GNOME` 的软件包,使用下面给定的命令: +为 **安装精简版本的 GNOME** ,你需要安装一个名称为 `vanilla-gnome-desktop` 的软件包,使用下面给定的命令: ``` sudo apt install vanilla-gnome-desktop @@ -60,29 +62,29 @@ sudo apt install gnome ![choose display manager][4] -`gdm3` 是 GNOME 桌面的显示管理器,而 Linux Mint 使用 `lightdm` 作为默认的显示管理器,这两种显示器都可以正常工作,但是,我建议你使用 gdm3 来获取完整的 GNOME 体验。 +`gdm3` 是 GNOME 桌面的显示管理器,而 Linux Mint 使用 `lightdm` 作为默认的显示管理器,这两种显示器都可以正常工作,但是,我建议你使用 `gdm3` 来获取完整的 GNOME 体验。 #### 切换到 GNOME -在完成后,注销并按一次 enter 按键,在这里,你将看到一个小齿轮图标。从这里选择 GNOME : +在完成后,注销并按一次回车键,在这里,你将看到一个小齿轮图标。从这里选择 “GNOME” : ![choose gnome while logging in][5] 现在,你拥有以 Linux Mint 为基础的 GNOME 桌面环境! -#### 额外提示:如何应用整体风格一致的主题 +#### 额外提示:如何应用整体风格一致的主题 你可以继续使用 Cinnamon 桌面的主题,但是它们大多不能如前工作,因此,我建议使用 GNOME 桌面的主题(例如 Adwaita )来保持桌面环境的一致性。 -对我而言,其默认的字体没有一点效果。并且,我更喜欢 Fedora 提供的一些字体。因此,从系统菜单打开 GNOME 调整GNOME tweaks 窗口,并作出如下更改: +对我而言,其默认的字体没有一点效果。并且,我更喜欢 Fedora 提供的一些字体。因此,从系统菜单打开 GNOME 调整GNOME tweaks,并作出如下更改: ![change fonts in ubuntu to have vanilla gnome experience][6] -这里是我使用的一些东西: +这里是我使用的一些设置: -- **Cantarell Regular (11)** 用于界面和文档文本。 -- **Noto Sans Mono Regular (13)** 用于等宽字体文本。 -- **Cantarell Bold (11)** 用于窗口标题。 +- `Cantarell Regular (11)` 用于界面和文档文本。 +- `Noto Sans Mono Regular (13)` 用于等宽字体文本。 +- `Cantarell Bold (11)` 用于窗口标题。 它们的结果是,比默认的 Ubuntu 字体方案要好得多。 @@ -101,7 +103,7 @@ via: https://itsfoss.com/install-gnome-linux-mint/ 作者:[Sagar Sharma][a] 选题:[lkxed][b] 译者:[robsean](https://github.com/robseans) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -114,3 +116,4 @@ via: https://itsfoss.com/install-gnome-linux-mint/ [5]: https://itsfoss.com/wp-content/uploads/2022/11/choose-gnome-while-logging-in.png [6]: https://itsfoss.com/wp-content/uploads/2022/11/change-fonts-in-ubuntu-to-have-vanilla-gnome-experience.png [7]: https://itsfoss.com/install-switch-themes-gnome-shell/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/15/104944fkv32vbys5x1hiv9.jpg \ No newline at end of file From c4e3906856be7866a4e4ed27964d4886ff77673e Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 15 Dec 2022 12:22:29 +0800 Subject: [PATCH 2351/3123] =?UTF-8?q?Update=2020221202.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=208=20ideas=20for=20measuring=20you?= =?UTF-8?q?r=20open=20source=20software=20usage.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ 8 ideas for measuring your open source software usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md index 892fce0de0..6c4a9eec17 100644 --- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" [#]: author: "Georg Link https://opensource.com/users/georglink" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From a12b71f4a9b23ff753d029da58944ca5ea6efd04 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 15 Dec 2022 12:26:09 +0800 Subject: [PATCH 2352/3123] =?UTF-8?q?Update=2020221202.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=208=20ideas=20for=20measuring=20you?= =?UTF-8?q?r=20open=20source=20software=20usage.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ 8 ideas for measuring your open source software usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md index 6c4a9eec17..892fce0de0 100644 --- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" [#]: author: "Georg Link https://opensource.com/users/georglink" [#]: collector: "lkxed" -[#]: translator: "CanYellow" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 422144d4f431c3a30560b470b3b39fab42d1482e Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Thu, 15 Dec 2022 19:36:24 +0800 Subject: [PATCH 2353/3123] translated --- ... 5 Best Linux Phones to Watch Out for in 2023.md | 226 ------------------ ... 5 Best Linux Phones to Watch Out for in 2023.md | 223 +++++++++++++++++ 2 files changed, 223 insertions(+), 226 deletions(-) delete mode 100644 sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md create mode 100644 translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md diff --git a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md deleted file mode 100644 index d91fa7bea4..0000000000 --- a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md +++ /dev/null @@ -1,226 +0,0 @@ -[#]: subject: "5 Best Linux Phones to Watch Out for in 2023" -[#]: via: "https://www.debugpoint.com/best-linux-phones/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 Best Linux Phones to Watch Out for in 2023 -====== - -**Here’s a list of the best Linux Phones which may become more mainstream in 2023 with their features and price.** - -Android and iOS smartphones are the most popular ones around the world. However, many of you look for something more “open” and better at privacy. If you use Android, you forfeit your privacy. Apple’s iOS is a little better on that – but again – it’s a “walled garden”. - -That’s why Linux phones are becoming popular nowadays because they contain many options for developers and end users. Although various types of Linux phones are currently available, it still becomes confusing to choose the best one. Looking at the trends of 2022, here are some of the Linux Phones which may become more mainstream in 2023. - -### Things you should know about Linux Phones - -Before you read or even plan to buy one, there are a couple of things you should know about. Here are some of them: - -- The Linux phones use a modified version of mainstream Linux distribution with a mobile-friendly desktop environment. This is the same for most of the phones available today. -- You must manage your expectations if you plan to buy a phone and use it for your daily driver. Because the Linux phone operating systems, device features, and app ecosystem is still in the early stages, and it’s not close to the Android or iOS ecosystem, -- However, Linux phones with the operating system provide the best privacy feature, which might be the reason you can make a move. - -### Best Linux Phones - -#### Librem from Purism - -The Librem 5 – Purism is quite a famous brand in the Linux phone market. The Librem 5 model comes with PureOS, an OS designed for Linux Mobiles and not based on the android or iOS platform. It is a natively designed free and open-source OS. PureOS also supports convergence. That means you can plug your phone into a monitor via a USB hub and use it as a desktop OS. - -The phone has premium hardware and feels and focuses on security and privacy. However, this impressive smartphone comes with a little higher price tag of $1299. - -#### Key features & specification - -- Fully free and open-source Linux-based mobile operating system: PureOS -- Separate modem, Wi-Fi and Bluetooth chip -- Three dedicated hardware keys to enable and disable – internet, camera, Wi-Fi and Bluetooth -- Smart card reader -- SD card reader -- User-replaceable battery - -![Librem 5][1] - -| Specification | Description | -| :- | :- | -| **Screen** | 5.7″ (IPS TFT 720×1440) | -| **RAM** | 3 GB | -| **Storage** | 32 GB eMMC | -| **Battery** | 4500mAh | -| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53 with 64 bit ARM @max 1.5GHz | -| **GPU** | Vivante GC7000 Lite | -| **Screen** | 5.7Inches IPS TFT 720×1440 | -| **Camera** | 13 Mpx with LED Flash (Rear) and 8 Mpx (Front) | -| **USB** | USB Type C | - -[Official page for buying options of Librem 5][2] - -#### Pinephone - -Second on the list is Pinephone, perhaps the most complete and usable Linux phone in the market. Developed by Pine64, it has excellent features and supports multiple Linux ARM distributions for mobile phones. - -In addition, PinePhone comes in multiple versions, including a pro version, simultaneously. It is an excellent option for Linux phones as it is also cheaper. PinePhone focuses on the user’s privacy and extensibility and can be a good option if you want to start the first time with Linux phones. - -#### Key features & specification - -- Supports KDE Plasma mobile, Manjaro mobile, Sailfish OS, and Ubuntu touch -- It comes with five kill switches for LTE, Cameras, Wifi/BT, and Microphones -- Bootable microSD and 16GB/32GB eMMC -- USB Type C (Power, Data and Video Out) -- Six pogo pins allow custom hardware extensions such as a thermal camera, wireless charging, NFC, an extended battery case, or a keyboard case. -- 3.5 headphone jack -- Supports convergence to extend it as a PC -- Affordable price with starting $149 and $199 - -![Pinephone][3] - -| Specification | Description | -| :- | :- | -| **Screen** | 5.95 Inches, HD IPS capacitive touchscreen | -| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53 and 64bit | -| **GPU** | Mali-400 MP2 | -| **RAM** | Two Variants: 2GB and 3GB LPDDR3 SDRAM | -| **Storage** | Two Variants: 16GB and 32GB eMMC. | -| **Camera** | Single 5MP, 1/4″, LED Flash (Rear) and Single 2MP, f/2.8, 1/5″ (Front) | -| **Battery** | Li-ion (capacity 2800mAh) | -| **Audio Jack** | 3.5 mm | - -[Pinephone buying options][4] - -#### Pro 1 X – F(X)tec - -[Pro 1 X – F(X)tec][5] is a smartphone that offers various options for operating systems. And it’s arguably the more exciting product in this Linux phone list. - -You can use LineageOS, Android, Ubuntu Touch, etc., on the same phone. Moreover, an inbuilt slide-out keyboard makes it more unique and attractive. - -Developed by F(x)tec company in London, its new in the market and shows promise. However, it’s not yet out, with planned shipping on December 2022. Hence, you may need to wait a few days for a review. - -![Pro 1 X][6] - -#### Key features - -- First Linux-based smartphone startup with a sliding QUERTY keyboard -- Supports Ubuntu touch out of the box with an Android option -- Unlocked bootloader -- 3.5 headphone jack -- AMOLED display -- 128GB/6GB (storage and RAM) starting price $829 -- 256GB/8GB (storage and RAM) starting price $899 - -| Specification | Description | -| :- | :- | -| **CPU** | Snapdragon 662 Qualcomm | -| **GPU** | Adreno 610 Qualcomm | -| **RAM** | Two Variants: 6GB and 8GB LPDDR4 | -| **Storage** | 128GB (expandable up to 2TB) | -| **Screen** | 5.99″ with curved edge Corning® Gorilla® Glass 3 ( 2160 x 1080 FHD AMOLED Display) | -| **Camera** | 12MP Sony IMX363 (Rear) and 8MP (Front) | -| **Battery** | 3200 mAh | -| **Audio Jack** | 3.5 mm  | - -[pro 1 x buying options][5] - -#### Volla Phone - -[Volla Phone][7] can operate simultaneously with two operating systems: Ubuntu Touch and VollaOS. Moreover, VollaOS is a modified android that is google-free and simultaneously focuses on the user’s privacy. At the same time, Ubuntu Touch is a popular Linux phone distro. - -#### Key features & specifications - -- Free from Google and services -- No cloud dependency -- Encrypted device storage -- Modified Android OS: Volla OS -- Supports Ubuntu Touch, Manjaro, Sailfish OS -- USB C charging -- 3.5 headphone jack -- Fingerprint log in -- Offline maps - -![Volla Phone][8] - -| Specification | Description | -| :- | :- | -| **CPU** | MediaTek Helio P23 | -| **GPU** | ARM Mali-G71 MP2  | -| **Storage** | 64 GB, eMMC | -| **RAM** | 4 GB DDR3 RAM | -| **Screen** | 6.3Inches, IPS, 2340×1080 Pixels | -| **Camera** | 16MP with Flash (Rear) and 16MP (Front) | -| **Battery** | 4700 mAh | -| **USB** | Type C & 3.5mm Audio Jack | - -[Volla Phone buying options][9] - -#### Fairphone 4 - -It comes with PostmarketOS; [Fairphone 4][10] is another smartphone that has modular hardware. You can replace its battery effortlessly. Moreover, not just the battery, you can also replace its display, etc., just with a screwdriver.   - -Fairphone is another Linux phone which comes with modular hardware. It supports PostmarketOS and uses a modified version of Android: FairPhone OS. The primary selling point of this device is its modularity, where you can replace any part of the mobile phone. That includes the display, battery and other components of this device. - -#### Specifications - -| Specification | Description | -| :- | :- | -| **CPU** | Octa-Core Kryo 570 | -| **RAM** | Two variants: 6GB and 8GB | -| **Storage** | Two variants: 128GB or 256GB | -| **GPU** | Adreno 619 | -| **Screen** | 6.3 inch Full HD+ IPS | -| **Camera** | Dual 48MP (Rear) and 25MP (Front) | -| **Battery** | 3905 mAh Li-ion | -| **Chipset** | Qualcomm SM7225 Snapdragon 750G | - -[FairPhone buying options][11] - -#### Are there any mainstream Android phones that support Linux OS? - -If you don’t want to buy an off-the-shelf mobile phone as listed above, then you can continue using Linux mobile OS in older branded phones because Android is a modified Linux Kernel-based. Hence these devices should work with Ubuntu Touch or PostmarketOS. - -- Google Pixel 3a/3a XL -- Sony Xperia X (F5121 & F5122) -- Google Nexus 5 -- OnePlus One - -- Supported by Ubuntu Touch OS ([full list][12]) - -- Xiaomi Redmi 2 -- Xiaomi Mi Note 2 -- OnePlus GT -- OnePlus 6 - -- Supported by PostmarketOS ([full list][13]) - -### Closing notes - -So, that’s about the best Linux phones available in the market today and will continue in 2023. You can learn more about the above devices from the official website. However, I believe there will be more adoption of Linux phones in the coming days as Privacy becomes a myth every day. - -It’s true that to compete with Android and iOS, the device or OS is not sufficient. What is important is the standard, global availability for buying, low entry-level pricing in emerging markets and investment in the app ecosystem. A streamlined vision is required in the phone ecosystem to win. Without it, Linux phones will become more fragmented, as in desktops. The device makers and major FOSS players need to work together to make it successful. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/best-linux-phones/ - -作者:[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/12/Librem-5-image2.jpg -[2]: https://puri.sm/products/librem-5/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pinephone.jpg -[4]: https://pine64.com/product-category/pinephone -[5]: https://www.fxtec.com/pro1x -[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pro-1-X.jpg -[7]: https://volla.online/de/index.html -[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/Volla-Phone.jpg -[9]: https://volla.online/de/shop/ -[10]: https://shop.fairphone.com/en/buy-fairphone-4 -[11]: https://shop.fairphone.com/ -[12]: https://devices.ubuntu-touch.io/ -[13]: https://wiki.postmarketos.org/wiki/Devices diff --git a/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md new file mode 100644 index 0000000000..e83a6dd39a --- /dev/null +++ b/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md @@ -0,0 +1,223 @@ +[#]: subject: "5 Best Linux Phones to Watch Out for in 2023" +[#]: via: "https://www.debugpoint.com/best-linux-phones/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +2023 年值得期待的 5 个最好的 Linux 手机 +====== + +>以下是一份**可能在 2023 年成为手机界主流的最好的 Linux 手机榜单**,其中还例举了各个 Linux 手机的**特点和价格**。 + +安卓和 iOS 智能手机是世界上最流行的手机。然而,还有许多人都想要更"开放"、且**在隐私方面做得更好的手机**。如果你使用安卓手机,那么你就是放弃了你的隐私。在个人隐私保护方面,苹果的 iOS 手机表现得要好一点,但它也仅提供了有限的隐私保护。 + +这就是现在 Linux 手机变得很流行的原因,因为它们为开发者和终端用户提供了许多选择。虽然,各种类型的 Linux 手机都已经上市,但是要选择最好的 Linux 手机仍然十分困难。从 2022 年的趋势来看,以下是一些可能在 2023 年成为主流的 Linux 手机。 + +### 关于 Linux 手机,你需要知道的事情 + +当你浏览或者计划购买一部 Linux 手机之前,你应该先了解以下关于 Linux 手机的事情: + +- Linux 手机使用的是主流 Linux 发行版的修改版,它有一个适合手机的桌面环境。这对今天的大多数手机(例如安卓、苹果 iOS)来说,也是类似的。 +- 如果你打算买一部 Linux 手机,并将其作为你日常所使用的手机的话,请不要太期待这个 Linux 手机。因为 Linux 手机的操作系统、功能和应用生态系统仍处于早期发展阶段,远远比不上与安卓或 iOS 手机。 +- 然而,Linux 手机的操作系统提供了最好的隐私功能,这会成为你想要出手买一部 Linux 手机的原因。 + +### 最好的 Linux 手机 + +#### 1、Librem🥇 + +**Purism** 公司是 Linux 手机市场上一个相当著名的品牌。Purism 公司推出的 **Librem 5 Linux** 智能手机支持 **PureOS**。PureOS 是一个专为 Linux 手机设计的操作系统,不基于安卓或 iOS 系统;并且它是一个开源的操作系统;它还支持 融合 convergence ,这意味着你可以通过 USB 集线器将手机插入电脑显示器,并将其作为一个桌面操作系统使用🆒。 + +这款手机拥有优质的硬件和手感,并还十分注重安全和隐私。但是,这款令人印象深刻的智能手机价格有点贵,售价为 1299 美元💔。 + +#### Librem 5 Linux 的主要特点和规格 + +- 完全免费和开源的,基于 Linux 的移动操作系统:PureOS +- 拥有独立的调制解调器、Wi-Fi 和蓝牙芯片 +- 拥有 3 个专门的硬件键,来启用和禁用互联网、相机、Wi-Fi 和蓝牙 +- 拥有智能卡读卡器 +- 拥有 SD 卡读卡器 +- 电池可更换 + +![Librem 5][1] + +| 规格 | 描述 | +| :- | :- | +| **屏幕** | 5.7 英寸(IPS TFT 720×1440) | +| **运行内存 RAM** | 3 GB | +| **内存** | 32 GB eMMC | +| **电池容量** | 4500 mAh | +| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53(四核),64 位 ARM,最高主频为 1.5GHz | +| **GPU** | Vivante GC7000 Lite | +| **屏幕尺寸、材质、分辨率** | 5.7 英寸,IPS TFT,720×1440 像素 | +| **摄像头** | 带 LED 闪光灯的 1300 万像素(后置)摄像头和 800 万像素(前置)摄像头 | +| **USB 接口** | Type C 接口 | + +有点兴趣?你可以进一步浏览 [Librem 5 的购买官网][2]。 + +#### 2、Pinephone🥈 + +Linux 手机榜单的第 2 名是 **Pinephone**。Pinephone 也许是市场上最完善、最实用的 Linux 手机了。它由 **Pine64** 公司开发,具有出色的功能,并是支持多种 Linux ARM 的移动发行版。 + +此外,PinePhone 同时有很多个版本,其中包括专业版本。PinePhone 的价格比较便宜,并且十分注重用户的隐私和可扩展性,如果你是第一次使用 Linux 手机,PinePhone 将会是一个不错的选择😌。 + +#### Pinephone 的主要特点和规格 + +- 支持的操作系统有 KDE Plasma mobile、Manjaro mobile、Sailfish OS 和 Ubuntu touch。 +- 配备启用和禁用 LTE、摄像头、Wifi/BT 和麦克风的 5 个开关 +- 可启动的 microSD 和 16GB/32GB eMMC 的内存空间 +- Type C 接口(可用于电源、数据和视频输出) +- 拥有 6 个 Pogo 引脚,允许自定义硬件扩展,如热像仪、无线充电、NFC、扩展电池盒或键盘盒。 +- 拥有 3.5 毫米耳机插孔 +- 支持融合,可将其插到一台电脑上 +- 价格实惠,2 种型号的售价分别为 149 美元和 199 美元起 + +![Pinephone][3] + +| 规格 | 描述 | +| :- | :- | +| **屏幕** | 5.95 英寸,高清 IPS 电容式触摸屏 | +| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53(四核),64 位 | +| **GPU** | Mali-400 MP2 | +| **运行内存 RAM** | 2 种型号:2GB 和 3GB LPDDR3 SDRAM | +| **内存** | 2 种型号:16GB and 32GB eMMC. | +| **摄像头** | 500 万像素、1/4英寸、LED 闪光灯(后置)摄像头和 200 万像素、1/5英寸(前置)摄像头 | +| **电池** | 锂离子电池(容量为 2800 mAh) | +| **音频插孔** | 3.5 毫米 | + +想要入手你的第一部 Linux 手机?请进一步浏览 [Pinephone 的购买官网][4] 吧。 + +#### 3、Pro 1 X – F(X)tec🥉 + +[**Pro 1 X** – F(X)tec][5] 是一款提供各种操作系统选择的智能手机,因此它是 Linux 手机榜单中十分令人激动的一项产品。 + +Pro 1 X **支持各种操作系统**,例如 LineageOS、安卓、Ubuntu Touch 等。此外,一个**内置的滑出式键盘**使它看起来更加独特且十分有吸引力。 + +Pro 1 X 由伦敦的 **F(x)tec** 公司开发。它是 Linux 手机市场上新出的产品,很有前景。然而,这个手机还没有上市,计划在 2022 年 12 月开始发货。因此,你可能需要等待几天,才能看到别人对这部手机的评价。 + +![Pro 1 X][6] + +#### Pro 1 X 的主要特点和规格 + +- 首款基于 Linux 的、有内置滑出式键盘的智能手机 +- 支持 Ubuntu touch 操作系统,并有安卓选项 +- 解锁的启动程序 +- 拥有 3.5 毫米耳机插孔 +- 拥有 AMOLED 显示屏 +- 128 GB 内存/6 GB 运行内存:售价为 829 美元起 +- 256 GB 内存/8 GB 运行内存:售价为 899 美元起 + +| 规格 | 描述 | +| :- | :- | +| **CPU** | Snapdragon 662 Qualcomm | +| **GPU** | Adreno 610 Qualcomm | +| **运行内存 RAM** | 2 种型号:6GB 和 8GB LPDDR4 | +| **内存** | 128 GB(可扩展至 2 TB) | +| **屏幕** | 5.99英寸,弧形边缘,Corning® Gorilla® Glass 3(分辨率为 2160 x 1080 像素的 AMOLED 显示屏) | +| **摄像头** | 1200 万像素 Sony IMX363(后置)摄像头和800万像素(前置)摄像头 | +| **电池容量** | 3200 mAh | +| **音频插孔** | 3.5 毫米 | + +它的内置滑出式键盘有没有吸引到你呢?去 [pro 1 x 的购买官网][5] 看看吧。 + +#### 4、Volla Phone + +[Volla Phone][7] 可以同时运行**两个操作系统:Ubuntu Touch 和 VollaOS**。 + +VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注重用户的隐私;Ubuntu Touch 是一个流行的 Linux 手机发行版。 + +#### Volla Phone 的主要特点和规格 + +- 没有谷歌及其服务 +- 不依赖云计算 +- 加密的设备存储 +- 使用安卓操作系统的修改版:Volla OS +- 支持的操作系统有 Ubuntu Touch,Manjaro,Sailfish OS +- 拥有 USB C 充电口 +- 拥有 3.5 毫米耳机插孔 +- 可以用指纹解锁 +- 拥有离线地图 + +![Volla Phone][8] + +| 规格 | 描述 | +| :- | :- | +| **CPU** | MediaTek Helio P23 | +| **GPU** | ARM Mali-G71 MP2  | +| **内存** | 64 GB,eMMC | +| **运行内存 RAM** | 4 GB DDR3 RAM | +| **屏幕尺寸、材质、分辨率** | 6.3 英寸,IPS,2340×1080 像素 | +| **摄像头** | 1600万像素带闪光灯的(后置)摄像头和1600万像素(前置)摄像头 | +| **电池容量** | 4700 mAh | +| **USB 接口** | Type C 接口和 3.5 毫米音频插孔 | + +这个手机看起来也很不错呢,不妨到 [Volla 的购买官网][9] 看看吧。 + +#### 5、Fairphone 4 + +[Fairphone 4][10] 是另一款具有模块化硬件的 Linux 智能手机。它支持 PostmarketOS 操作系统,并使用安卓操作系统的修改版本:FairPhone OS。这个手机的主要卖点是它的 模块化 modularity ,你可以替换手机的任何模块:你可以毫不费力地更换它的电池🔋;此外,不仅仅是更换电池,你还可以简单地用螺丝刀来更换它的显示屏等部件。 + +#### Fairphone 4 的规格 + +| 规格 | 描述 | +| :- | :- | +| **CPU** | Octa-Core Kryo 570(八核) | +| **运行内存 RAM** | 2 种型号:6GB 和 8GB | +| **内存** | 2 种型号:128GB 和 256GB | +| **GPU** | Adreno 619 | +| **屏幕** | 6.3 英寸,全高清,IPS | +| **摄像头** | 2 个 4800 万像素(后置)摄像头和 2500 万像素(前置)摄像头 | +| **电池** | 锂离子电池(容量为 3905 mAh)| +| **芯片组** | Qualcomm SM7225 Snapdragon 750G | + +进一步可浏览 [FairPhone 的购买官网][11]。 + +#### 是否有支持 Linux 操作系统的主流安卓手机呢? + +如果你不想购买上述现成的 Linux 手机,那么你也可以在**安卓手机**上使用 Linux 移动操作系统,因为安卓是基于 Linux 内核上修改的。因此,这些手机应该也能使用 Ubuntu Touch 或 PostmarketOS 操作系统。 + +- Google Pixel 3a/3a XL +- Sony Xperia X (F5121 & F5122) +- Google Nexus 5 +- OnePlus One +- 支持 Ubuntu Touch OS 操作系统的[完整列表][12] +- Xiaomi Redmi 2 +- Xiaomi Mi Note 2 +- OnePlus GT +- OnePlus 6 +- 支持 PostmarketOS 操作系统的[完整列表][13] + +### 结语 + +以上就是关于如今市场上最好的 Linux 手机的全部内容了。你可以从这些手机的官方网站上,了解更多信息。因为手机的隐私保护在当下变得越来越重要了,我相信在未来会有越来越多的人使用 Linux 手机。 + +诚然,Linux 手机本身的功能及其操作系统比不上安卓和苹果 iOS 手机。但是,对于 Linux 手机来说,更重要的是它的标准的设立、全球购买的可行性、在这一新兴市场的低入门价格以及对 Linux 手机应用生态系统的大力投资。在 Linux 手机的生态系统中需要更简化的界面,没有简单的界面,Linux 手机将变得更加零散,就像台式机一样。Linux 手机的制造商还需要和自由及开源软件(FOSS)参与者一起合作,最终才能使 Linux 手机广受欢迎。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/best-linux-phones/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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/12/Librem-5-image2.jpg +[2]: https://puri.sm/products/librem-5/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pinephone.jpg +[4]: https://pine64.com/product-category/pinephone +[5]: https://www.fxtec.com/pro1x +[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pro-1-X.jpg +[7]: https://volla.online/de/index.html +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/Volla-Phone.jpg +[9]: https://volla.online/de/shop/ +[10]: https://shop.fairphone.com/en/buy-fairphone-4 +[11]: https://shop.fairphone.com/ +[12]: https://devices.ubuntu-touch.io/ +[13]: https://wiki.postmarketos.org/wiki/Devices From 9dabf995363d2a9170f17bfa9e8f3dcd74268274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 15 Dec 2022 19:56:23 +0800 Subject: [PATCH 2354/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221215.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20Switch=20from=20Debian=20Stable=20to=20Testing.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ How to Switch from Debian Stable to Testing.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md diff --git a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md new file mode 100644 index 0000000000..3f0d190572 --- /dev/null +++ b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md @@ -0,0 +1,159 @@ +[#]: subject: "How to Switch from Debian Stable to Testing" +[#]: via: "https://itsfoss.com/switch-debian-stable-testing/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Switch from Debian Stable to Testing +====== + +If you are looking for the most stable Linux distribution, sure, Debian is the right choice. + +Especially if you are planning to use it on servers. + +But, on the desktop side, things are a bit different. I mean, you are given packages that are at least a year old and support for new-age hardware is even worse. + +So what do you do in those cases, Well, you can use Debian testing! + +But before jumping to the explanation part, let’s briefly understand Debian testing. + +### What is Debian Testing? + +Debian offers you 3 variants of Debian: + +- Debian stable (what you get by default from their homepage). +- Debian testing (has **newer packages** and breaks less often than Debian unstable). +- Debian unstable (has the most recent packages and is **considered the most fragile of all**). + +So Debian testing can be considered a sweet spot between stability and fresh packages. + +I’ve been playing around with Debian testing for some time and haven’t faced any issues. + +In fact, many Debian users prefer the testing variant over the stable version. Despite the name testing, it is pretty usable. + +But still, **I would recommend you to experiment with this on VM,** try using it with your primary tools and if things go well, you can apply those changes in the main system. + +### Switch from Debian stable to Debian testing + +**_Warning: You can not downgrade from Debian testing to Debian stable, as installer scripts and installation tools are only designed to replace the older version with the new one._** + +Also, I would recommend [using timeshift to create a backup][1] before applying the shown steps on your main machine. + +First, update the existing packages using the given command: + +``` +sudo apt update && sudo apt upgrade -y +``` + +Next, make a copy of original `sources.list` file: + +``` +sudo cp /etc/apt/sources.list sources.list.backup +``` + +Now, let’s start with the first step. + +#### Step 1: Edit sources.list file + +There are two ways of editing `sources.list` file. Either you can manually alter the current release name with `testing` or you can [use the sed command][2] to get your job done. + +And I’m going with a 2nd one to make the whole process easier. You just have to use the given command, and it will replace `bullseye` with `testing` for you: + +``` +sudo sed -i 's/bullseye/testing/g' /etc/apt/sources.list +``` + +Now, open your terminal and use the given command to open `sources.list` files: + +``` +sudo nano /etc/apt/sources.list +``` + +And comment out the lines having `security.debian.org` and anything that ends with `-updates` as shown below: + +![comment out security sources][3] + +If you are using nano as I do, you can press `Alt + /` to jump to the end of the line. And then you have to add the following line: + +``` +deb http://security.debian.org testing-security main +``` + +![2. add line to keep track of testing in debian][4] + +And [save the changes and exit from the nano][5] text editor. + +#### Step 2: Update the Repository and install new packages + +Now, update the repository index, and it will show you a massive update pending: + +``` +sudo apt update +``` + +![update repository in linux][6] + +Now, you can use the given command, and it will get you the most recent packages: + +``` +sudo apt upgrade +``` + +Sit back and relax as it is going to take a while. + +Once done, it will present you with the list of changes made as you switched from Debian stable to testing: + +![packages that are updated when switched to debian testing][7] + +You can read if you want or you can **just press q** to proceed further. + +Now, it will show you the message that some of the libraries installed on your system needs to restart. Press the **TAB** key, and it will select the **OK** option, and then press **Enter:** + +![libraries needs to be restarted after update][8] + +Next, it will ask you whether you want to restart services during the package upgrade. Here you have a choice. As I’m doing this for desktop usage only, I will go with `YES`: + +![restart services during package upgrades without asking?][9] + +Once done, you can reboot your system and then use the following command to have full effect from the changes you’ve just made: + +``` +sudo apt full-upgrade +``` + +Now, reboot your system, and you’ll have the most recent packages. Such as **I was running GNOME 43** when I got into the system: + +![running gnome 43 in debian][10] + +### Wrapping Up + +In this tutorial, I explained how you could switch from Debian stable to Debian testing. I hope this will be helpful to you. + +And if you face any issues or have any queries, let me know in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/switch-debian-stable-testing/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/backup-restore-linux-timeshift/ +[2]: https://linuxhandbook.com/sed-command-basics/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/comment-out-security-sources.gif +[4]: https://itsfoss.com/wp-content/uploads/2022/11/2.-add-line-to-keep-track-of-testing-in-debian.png +[5]: https://linuxhandbook.com/nano-save-exit/ +[6]: https://itsfoss.com/wp-content/uploads/2022/11/update-repository-in-linux.png +[7]: https://itsfoss.com/wp-content/uploads/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/libraries-needs-to-be-restarted-after-update.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/restart-services-during-package-upgrades-without-asking.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/running-gnome-43-in-debian.png From 60b3add05bc8ca84f0e0a79b824f6810bd4d1e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 15 Dec 2022 19:57:44 +0800 Subject: [PATCH 2355/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221215.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Why=20Drupal=20is=20the=20future=20of=20content=20strategy.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Why Drupal is the future of content strategy.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md diff --git a/sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md b/sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md new file mode 100644 index 0000000000..572d40c963 --- /dev/null +++ b/sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md @@ -0,0 +1,90 @@ +[#]: subject: "Why Drupal is the future of content strategy" +[#]: via: "https://opensource.com/article/22/12/drupal-content-strategy" +[#]: author: "Suzanne Dergacheva https://opensource.com/users/pixelite" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Why Drupal is the future of content strategy +====== + +As a long-time advocate for open source and a contributor to Drupal, I spend a lot of time thinking about how organizations can leverage the platform. I've been thinking about Drupal's position in the larger digital ecosystem and how it compares to the other options on the market. And how Drupal can lean more on its strengths when planning out the strategy for a new project. + +### How Drupal fits into the digital landscape + +In 2022, putting a site online can be as fast as the time it takes to make a coffee. This is made possible because websites have many similar features and there's usually no need to build one from scratch. When I started my career, frameworks like Ruby on Rails were appealing because of their flexibility. But I quickly learned that the lack of standard solutions for common things like multilingual content, media management, and workflows, meant that each project required a huge investment in custom development. + +On the other hand, web builders that have emerged over the last ten years, like Wix and Squarespace offer the dream of "drag-and-drop" website construction and customizable templates. But in reality, their flexibility is very surface-level. They don't offer enough flexibility to build a solid content model, create an experience, or provide the level of content compliance that large organizations need. + +This is where Drupal stands out, providing both powerful functionality out-of-the-box, and the tools to build out custom functionality on top of that content. + +### Drupal, the content management system + +When I started using Drupal 15 years ago, it was described as a content management system. And it is, as it gives content editors the power to log in and manage content, rather than relying on a webmaster or a web developer to do it. + +But there was also the promise that site builders could update not just the content, but the content model. Site builders could extend Drupal using configuration instead of writing code. This set it apart from the frameworks that were out at the time. From years of teaching people Drupal, I can tell you that there's a certain amount of joy and empowerment that people get when they realize how much they can do through the Drupal admin UI. + +At its core, this is still Drupal's strength. You can control not just the content, but how content is organized. The fact that taxonomy and localization are baked into Drupal's content model, gives a huge advantage over other systems that have a more limited concept of content. + +### Drupal, the platform + +Shortly after adopting Drupal as our agency's technology of choice, I started calling it a platform. As an ambitious 20-something, I was keen to build more than nice-looking content-rich websites. The ambition was to create more powerful tools to organize the flow of information. This includes integrating Drupal with other systems to build functionality and workflows around your content. You can also create content synchronizations between a CRM and Drupal. Finally, you can search interfaces that allow you to search diverse content sources and filter content in new ways. + +The fact that Drupal is so adaptable to these architectures distinguishes it immediately from other CMSs. When talking to large organizations, teams of developers or IT leaders see the benefit of using a technology that is so flexible and adaptable to functional needs. + +### Drupal, the digital experience platform + +While these attributes are still very compelling, Drupal is now referred to as a digital experience platform (DXP). Its main difference from the proprietary DXPs of the world is that it's open. It doesn't ship with a stack of integrated technologies but rather lets you decide what your stack will be. Whether it's for marketing integrations or multi-channel experiences, you can decide how content feeds into and out of Drupal. This flexibility is one of Drupal's strengths. But it can be a challenge when pitching Drupal against other DXPs that come with a complete marketing toolset. + +Marketing folks often look for a packaged solution. And while an agency can package Drupal with a stack of tools, it's hard for Drupal to market this type of ready-to-go solution. + +### Drupal's strength as a content strategy platform + +So how does Drupal position itself when talking to marketers? Drupal's core strength is still its flexible content architecture. This means that it's an ideal platform for implementing a content strategy and content governance plan. These are two things that plenty of organizations are missing. They are also the two reasons for marketers to adopt a platform like Drupal. + +### Better content strategy with Drupal + +While Drupal can already be adapted to the content strategy of any organization, it doesn't mean that every Drupal website has a strong content strategy. Drupal implementers have to proactively make choices that prioritize the needs of content and content editors. This means doing things like: + +- Organizing content around user needs, not organizational structure +- Structuring content to be reusable, adaptable, personalized, translatable +- Integrating content with digital services by making content available via API +- Setting up tools so that content compliance is checked systematically + +Meanwhile, beyond the website, organizations need to use best practices to prioritize their content strategy practice. This means: + +- Empowering communicators and treating content editors as first-class users +- Sharing best practices for web publishing across the organization +- Creating a clear, actionable content governance plan +- Using tools like the digital asset management (DAM) tool that fosters content governance +- Creating a smooth flow of content and feedback between content experts and users + +With new expectations of platforms to handle personalization and faster cycles for re-branding or implementing a completely new marketing strategy, it's more important than ever for your website to be a tool to help your content strategy. If you're looking for ways to orient your practice around a strong content strategy, here are some places to start: + +- Get content editors involved in the process when launching a new web project +- Build [documentation][1] that's driven by content needs, not just technology. Use real content examples in your documentation and talk about the "why" of the content. +- Prioritize ongoing content governance rather than just relying on big projects to revamp your content every 3-5 years +- Invest in cleaning up legacy content instead of migrating content as-is when you do invest in a website redesign +- Invest in the content editor experience, something that Drupal facilitates and continues to invest in, but still takes active effort to do for each project + +To sum up, Drupal is already a CMS and a DXP. But this is beside the point. There is a need to leverage Drupal's capabilities towards creating a strong content strategy to really get the most out of the platform. + +_This article is based on the author's talk at DrupalCon Portland: [Future of content management: using Drupal as a content strategy platform][2]._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/drupal-content-strategy + +作者:[Suzanne Dergacheva][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/pixelite +[b]: https://github.com/lkxed +[1]: https://opensource.com/tags/documentation +[2]: https://www.youtube.com/watch?v=iexCIUuMWDU From 1495bbf6d77a0038389d94c1edf63ace90f112e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 15 Dec 2022 20:03:04 +0800 Subject: [PATCH 2356/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221215.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Improve=20your=20documentation=20with=20JavaScript.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Improve your documentation with JavaScript.md | 236 ++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md diff --git a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md new file mode 100644 index 0000000000..921b12bf7a --- /dev/null +++ b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md @@ -0,0 +1,236 @@ +[#]: subject: "Improve your documentation with JavaScript" +[#]: via: "https://opensource.com/article/22/12/dynamic-documentation-javascript" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Improve your documentation with JavaScript +====== + +Open source software projects often have a very diverse user group. Some users might be very adept at using the system and need very little documentation. For these power users, documentation might only need to be reminders and hints, and can include more technical information such as commands to run at the shell. But other users may be beginners. These users need more help in setting up the system and learning how to use it. + +Writing documentation that suits both user groups can be daunting. The website's documentation needs to somehow balance "detailed technical information" with "providing more overview and guidance." This is a difficult balance to find. If your documentation can't meet both user groups, consider a third option — dynamic documentation. + +Explore how to add a little [JavaScript][1] to a web page so the user can choose to display just the information they want to see. + +### Structure your content + +You can use the example where documentation needs to suit both expert and novice users. In the simplest case, you can use a made-up music player called AwesomeProject. + +You can write a short installation document in HTML that provides instructions for both experts and novices by using the class feature in HTML. For example, you can define a paragraph intended for experts by using: + +``` +

              +``` + +This assigns both the expert class and the reader class. You can create a parallel set of instructions for novices using: + +``` +

              +``` + +The complete HTML file includes both paragraphs for novice readers and experts: + +``` + + + + + + +How to install the software + + + + +

              How to install the software

              + +

              Thanks for installing AwesomeProject! With AwesomeProject, +you can manage your music collection like a wizard.

              + +

              But first, we need to install it:

              + +

              You can install AwesomeProject from +source. Download the tar file, extract it, then run: +./configure ; make ; make install

              + +

              AwesomeProject is available in +most Linux distributions. Check your graphical package manager and search for AwesomeProject to install it.

              + + + + +``` + +This sample HTML document doesn't have a stylesheet associated with it, so viewing this in a web browser shows both paragraphs: + +![Image of html in black text.][2] + +We can apply some basic styling to the document to highlight any element with the reader, expert, or novice classes. To make the different text classes easier to differentiate, let's set the reader class to an off-white background color, expert to a dark red text color, and novice to a dark blue text color: + +``` + + + + + + +How to install the software + + + + + + + +

              How to install the software

              +``` + +These styles help the two sections stand out when you view the page in a web browser. Both paragraphs with the installation instructions have an off-white background color because they both have the reader class. The first paragraph uses dark red text, as defined by the expert class. The second installation paragraph is in dark blue text, from the novice class: + +![Image of html in red and black text.][3] + +### Add JavaScript controls + +With these classes applied, you can add a short JavaScript function that shows just one of the content blocks. One way to write this function is to first set `display:none` to all of the elements with the reader class. This hides the content so it won't display on the page. Then the function should set `display:block` to each of the elements with the class you want to display: + +``` + +``` + +To use this JavaScript in the HTML document, you can attach the function to a button. Since the `readerview`function takes an audience as its parameter, you can call the function with the audience class that you want to view, either novice or expert: + +``` + + + +How to install the software + + + + + + + +

              How to install the software

              + + + +

              Thanks for installing AwesomeProject! With AwesomeProject, +you can manage your music collection like a wizard.

              + +

              But first, we need to install it:

              +

              You can install AwesomeProject from +source. Download the tar file, extract it, then run +./configure ; make ; make install

              + +

              AwesomeProject is available in +most Linux distributions. Check your graphical package +manager and search for AwesomeProject to install it.

              + + + +``` + +With these controls in place, the web page now allows the user to select the text they want to see: + +![Image of window that allows you to select between novice and expert text.][4] + +Clicking either button will show just the text the user wants to read. For example, if you click the “view novice text” button, then you'll see just the blue paragraph: + +![Image showing blue text when you press the novice button.][5] + +Clicking the “view expert text” button hides the novice text and shows only the expert text in red: + +![Image of red text after the expert button is clicked.][6] + +### Extend this to your documentation + +If your project requires you to write multiple how-to documents for different audiences, consider using this method to publish once and read twice. Writing a single document for all your users makes it easy for everyone to find and share the documentation for your project. And you won't have to maintain parallel documentation that varies in just the details. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/dynamic-documentation-javascript + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/downloads/learn-javascript +[2]: https://opensource.com/sites/default/files/2022-12/publishonec.textblack.png +[3]: https://opensource.com/sites/default/files/2022-12/publishone.red_.blue_.png +[4]: https://opensource.com/sites/default/files/2022-12/publishone.novicexpert.png +[5]: https://opensource.com/sites/default/files/2022-12/publishone.blue_.png +[6]: https://opensource.com/sites/default/files/2022-12/publishone.red_.png From 34c7a0e3912dfc8e10a8999313e48a4eed1e9bba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 15 Dec 2022 20:04:08 +0800 Subject: [PATCH 2357/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221215.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Enjoy=20two-panel=20file=20management=20on=20Linux=20with=20far?= =?UTF-8?q?2l.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y two-panel file management on Linux with far2l.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md diff --git a/sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md b/sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md new file mode 100644 index 0000000000..53340252a5 --- /dev/null +++ b/sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md @@ -0,0 +1,148 @@ +[#]: subject: "Enjoy two-panel file management on Linux with far2l" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-far2l" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Enjoy two-panel file management on Linux with far2l +====== + +Far2l is a port of the Windows text-based file manager **Far**. And to be clear, that's a lower-case **L** (as in "Linux") not a number **1**. It runs in the terminal and is designed around a plug-in structure, enabling compatibility with SSH, WebDAV, NFS, and more. You can compile and run far2l on Linux, Mac, and BSD, or Far on Windows. + +### Install far2l + +Far2l is currently in beta, so you're unlikely to find it in your Linux distribution's software repository. However, you can [compile it from source][1] by downloading cloning its [Git repository][2]: + +``` +$ git clone --depth 1 https://github.com/elfmz/far2l.git +``` + +You can browse through the source code to see all of its different components. The main source files are in `utils/src`: + +``` +SharedResource.cpp +StackSerializer.cpp +StringConfig.cpp +StrPrintf.cpp +TestPath.cpp +Threaded.cpp +ThreadedWorkQueue.cpp +TimeUtils.cpp +TTYRawMode.cpp +utils.cpp +WideMB.cpp +ZombieControl.cpp +``` + +The file `ZombieControl.cpp` works to [mitigate a zombie apocalypse][3] (at least, in terms of processes), the file `ThreadedWorkQueue.cpp` helps speed processes along by using threading. Far2l isn't just built for extensibility, it's built responsibly! + +Assuming you've already prepared your system for compiling code, as described in the [compiling from source][1] article, you must also install some development libraries required by far2l. On Fedora, CentOS, OpenMandriva, and Mageia, the minimal list is: + +- wxGTK3-devel +- spdlog-devel +- xerces-c-devel +- uchardet-devel (your repository may not have this one, but there's a workaround) + +On Debian, the minimal list is: + +- libwxgtk3.0-gtk3-dev +- libuchardet-dev +- libspdlog-dev +- libxerces-c-dev + +Use [CMake][4] to prepare the makefiles: + +``` +$ mkdir build +$ cd !$ +$ cmake .. -DUSEUCD=no +``` + +The `-DUSECD=no` option is required only if you don't have the development libraries for `chardet` installed. If you do, then you can omit that option. + +Finally, compile the code and install far2l to a temporary location: + +``` +$ make -j$(nproc --all) +$ mkdir ~/far2l +$ make install DESTDIR=~/far2l +``` + +If you prefer to install it to your system instead of to a temporary directory, then omit the `DESTDIR=~/far2l` option. + +To launch far2l, invoke the binary stored in the `bin` subdirectory of your install path. For instance: + +``` +$ ~/far2l/local/bin/far2l +``` + +### Using far2l + +When you first launch far2l, it creates a configuration directory in `~/.config` and prompts you to choose what font you'd like to use. On my system, 16 pt font size was the default, and anything less than that was impossible to read. I used the open source Fantasque Mono Regular as my font, but any monospace font ought to work. + +Far2l is a two-panel file manager, meaning that the default view has a place to display two separate directories. At launch, both directories happen to be your home directory. To maximize the amount of screen space used for listing files, far2l uses two columns in each panel, and you can use the **Left** and **Right** arrows to change from one column to the other. + +In the right column, you can also use the **Right** arrow to move "down" the list of files by one screen. In the left column, use the **Left** arrow to move "up" the list of files by one screen. + +![Image of ​the far2l file manager.][5] + +This navigation takes some getting used to, especially if you're used to terminal file managers that only use the **Right** arrow to descend into a directory. However, once you get used to far2l's navigation, you're likely to appreciate the added speed you gain from this simple pagination. + +### Open a file or folder + +To open a folder, select a folder in your file list and press the **Return** key. This causes the active panel to change to a view of that directory. The inactive panel doesn't change, so it's not uncommon for far2l to always be showing two different directories at the same time. That's a feature of the two-panel file manager design, although it can take some getting used to if you're not in the habit of splitting windows. + +After you've moved into a directory, you can move back into its parent folder by selecting the double dots (`..`) at the top of the file listing and pressing **Return**. + +To open a file, select a folder in your file list and press the **Return** key. The file opens according to your desktop's mimetype preferences. + +### Panel and window navigation + +To move from one panel to another, press the **Tab** key. + +The fun thing about far2l is that its file listing is actually a layer over the top of your terminal. To hide the file listing temporarily, and to reveal it once it's gone, press **Ctrl+O** (that's the letter `O` not the digit zero). + +You can also adjust how much of your terminal the file panels take up. Press **Ctrl+Up** and **Ctrl+Down** to adjust the vertical size of the file panels. + +Make no mistake, though, you're not just suspending far2l when you access the terminal underneath. This isn't your usual terminal, it's a far2l terminal that interacts with the file manager and adds a few features to your standard terminal experience. For example, the [`find` command][6] gains graphical auto-completion. + +![Image of ​far2l responsive terminal.][7] + +### Copying and moving files + +All the usual file management functions are available within far2l are available with function keys. These are listed along the bottom of the far2l window. There are lots of options for some of the actions, which is either over-complex or really really powerful, depending on your preference. + +![Image of far21 move options.][8] + +### Exiting far2l + +To close far2l, type `exit far` into the command prompt at the bottom of the far2l window. + +### Far out + +Far2l is a dynamic and responsive text-based file manager. If you're a fan of classic two-panel file managers, then you'll feel at home with far2l. Far2l provides an interesting and novel interpretation of a terminal, and if you don't try far2l for its two-panel file management, you should at least try it for its terminal. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-far2l + +作者:[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/article/21/11/compiling-code +[2]: https://github.com/elfmz/far2l +[3]: https://www.redhat.com/sysadmin/killing-zombies-linux-style +[4]: https://opensource.com/article/21/5/cmake +[5]: https://opensource.com/sites/default/files/2022-10/far2l.filemanager.png +[6]: https://www.redhat.com/sysadmin/linux-find-command +[7]: https://opensource.com/sites/default/files/2022-10/far2l-popup.png +[8]: https://opensource.com/sites/default/files/2022-10/far2l-move-options.png From 88ea9c2f21354a1be55f7e1a16cb060fff5935e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 15 Dec 2022 20:04:38 +0800 Subject: [PATCH 2358/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221215.4=20=E2=AD=90=EF=B8=8F=20Pulsar=20A=20Commu?= =?UTF-8?q?nity-Led=20Open=20Source=20Code=20Editor=20to=20Continue=20the?= =?UTF-8?q?=20Legacy=20of=20Atom.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Code Editor to Continue the Legacy of Atom.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md diff --git a/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md new file mode 100644 index 0000000000..cfbb33c029 --- /dev/null +++ b/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md @@ -0,0 +1,82 @@ +[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom" +[#]: via: "https://news.itsfoss.com/pulsar-editor/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom +====== + +Pulsar aims to be a replacement for Atom users, and could challenge Visual Studio code as its development progresses further. + +![Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom][1] + +It is no surprise that Microsoft decided to kill the Atom text editor to favor Visual Studio Code. + +If you did not know, you could take a glance through our older coverage: + +While you may have had better options, Atom was an impressive tool when it was popular. + +**A community build for it is already available**; however, there seems to be a new version (**Pulsar**) that aims to bring feature parity with the original Atom and introduce modern features and updated architecture. + +As per its documentation, the original team that worked on Atom-Community is now involved with creating Pulsar. The reason why they made a separate fork is because of different goals for the projects. + +**Pulsar** wants to modernize everything to present a successor to Atom. + +> 💡 Pulsar is a new project, as a new fork to Atom, with dev/beta releases available to test. + +### Pulsar Editor: What's to see here? + +![pulsar editor][2] + +Of course, the user interface is much of the same. Considering Pulsar hasn't had a stable release yet, the branding could sometimes seem all over the place. + +However, the essentials seem to be there with the documentation, packages, and features like the ability to install packages from Git repositories. + +The key feature highlights for Pulsar, as per the official website, include: + +- **Cross-platform support (Linux, macOS, and Windows)** +- **Built-in package manager** +- **Smart autocompletion** +- **File system browser** +- **Multiple pane user interfaces** +- **Find and replace feature** + +At the time of writing this, automatic updates for Pulsar are not available. You will be able to install newer versions through the official website. + +![pulsar editor settings][3] + +You can customize the editor, change keybindings, manage packages, apply themes, and configure your experience with all the available options. + +As of now, it is too soon to say if Pulsar will become something better than what the Atom community version offers. However, it is something that we can keep an eye on. + +### Download and Try Pulsar + +As mentioned earlier, Pulsar is in its early development stage. So, you can find binaries for Linux distributions and AppImage file that you can try on any distro. + +In my test, it **did not work for Linux Mint**, but it worked fine with **Ubuntu 22.04 LTS**. + +You can head to its [official download page][4] to get the package required for your system and test it out. + +[Pulsar Editor][4] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/pulsar-editor/ + +作者:[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/content/images/size/w2000/2022/12/pulsar-hackable-text-editor.png +[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png +[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png +[4]: https://pulsar-edit.dev/download.html#releases From b9f4dff71a6b8aafd815d71ed068c4beb7103141 Mon Sep 17 00:00:00 2001 From: Songling Gu <1563156662@qq.com> Date: Fri, 16 Dec 2022 00:41:49 +0800 Subject: [PATCH 2359/3123] =?UTF-8?q?Create=2020221126.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Create=20a=20holiday=20light=20di?= =?UTF-8?q?splay=20with=20your=20Raspberry=20Pi=20and=20ping=20pong=20ball?= =?UTF-8?q?s.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...play with your Raspberry Pi and ping pong balls.md | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md diff --git a/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md new file mode 100644 index 0000000000..303c5388ae --- /dev/null +++ b/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md @@ -0,0 +1,129 @@ +[#]: subject: "Create a holiday light display with your Raspberry Pi and ping pong balls" +[#]: via: "https://opensource.com/article/22/11/raspberry-pi-holiday-light-display" +[#]: author: "Brian McCafferty https://opensource.com/users/bdm" +[#]: collector: "lkxed" +[#]: translator: "Return7g" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +利用树莓派和乒乓球制作一个假日彩灯 +====== + +我喜欢圣诞装饰品和灯饰,因此很长一段时间以来我一直想做一个可编程的 LED 项目。最近,我制作了一个由 LED 灯、乒乓球和树莓派 Zero 组成的灯阵列。这个项目相对简单并且具有教学价值,因此我认为它非常值得分享。 + +整个彩灯由我设计,但其中一些灵感也来自 YouTube。你可以在我的 [Git 存储库][1] 中找到源代码和构建说明。 + +### 购物清单 + +- [树莓派 Zero][2] +- [树莓派保护壳][3] +- 5V 2A 的电源线 +- 展架 +- 255 个乒乓球 +- 热熔胶枪和若干热熔胶棒 +- 烙铁 +- 焊锡丝 +- 22 AWG 0.35mm 实芯线 +- 10 米 WS2812(B) LED灯带(每米 30 像素) +- 万用表 +- 钢丝钳 +- 剥线钳 + + +### 设计树莓派的灯光效果 + +这个设计是由我展框的大小决定的。我在全球速卖通买到了每米 30 像素的灯带,它可以轻松地切成 0.5m 的长度,这样我就有了 15 个 LED。 乒乓球的直径是 40 毫米,所以我测量并放置了 40 毫米的线,每 40 毫米部分的中间都有 LED 灯条,这就产生了 17 行。 因此我的灯光阵列是 15×17。你可以根据实际情况来调整尺寸。 + +为了给灯带和树莓派供电,我在电路板底部设置了数据线和电源线。我的 LED 灯不需要很多电,所以我使用树莓派 Zero 的 5V 输出 GPIO 为它们供电。当我以 50% 的亮度运行时,这个亮度已经足以在白天和晚上透过我的窗户看到。 + +### 布线 + +我从电路板的底部以之字形开始布线,这使得焊接非常容易,因为每行的末尾不必返回到每行的开头。 + +我的线路大致像这样(为清楚起见,这里进行了简化,实际上它一共有 17 行): + +``` +<---------------\ +                | +/---------------/ +| +\---------------< # 这里连接树莓派 +``` + +### 使用树莓派搭建显示屏 + +当设计和布线的工作完成后就可以开始搭建显示屏了。 + +我在展板上测量并绘制了线路。我的灯带背面有胶带,所以我只需要取下背衬并将其贴在展板上。我检查了每个灯带的位置和数据线的方向以确保灯带可以按照树莓派的指令正确运作。 + +连接好所有灯带后,我剪下三段长度相同的电线,并将每个灯带末端的电源线、数据线和接地线连接到其上方。 + +![Connect each light strip at the end of each line.][4] + +在线路连接完成后,我检查了每条灯带之间的电源线和地线之间的连续性,以确保其连通性。我还检查了是否存在错误的桥接,所以我验证了电源线和地线之间的连续性。我还进行了一些测试以确保所有灯都正常点亮(参阅[测试代码][5]。) + +完成上述工作后,我开始在乒乓球上剪洞,用剪刀刺入乒乓球的底部,然后剪一个小洞让 LED 灯穿进去。我每米使用 30 个像素的 LED 灯,所以每个 LED 之间有大约 30 毫米的空隙。 + +在 LED 灯上滴上热熔胶,然后在 LED 上放了一个乒乓球并按住大约五秒钟,就粘好了一个乒乓球。粘贴下一个乒乓球时我只需要挨着上一个乒乓球就能让所有乒乓球都变得整齐了 + +![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6] + +我继续为余下的乒乓球进行焊接。尽管这个过程中有几个乒乓球被压碎了,但最终还是顺利完成了制作。 + +![255 LEDs and 255 ping pong balls in an array.][7] + +### 测试代码 + +测试代码需要确保所有部件都能正常工作,为此我使用了[Adafruit 指南][8],它以红、绿和蓝点亮每个 LED,然后依次进行循环。我在测试时使用它来确保我连接无误并且焊接正常。 + +在此之后,我在电子表格中设计了一个网格,将每个像素映射到一个网格位置。由于我的像素编号呈之字形排列,因此很难跟踪每个 LED(例如 A1 为 256,B1 为 226)。重新映射网格位置能使得我在构建图像时更容易。 + +在所有准备工作完成之后,我就可以在纸上和电子表格中设计图像,然后编码。于是我开始添加一些动画(使用循环并将像素变为一种颜色,然后变为另一种颜色)。 + +最终的结果还算顺利。 + +![A Christmas gift in LED.][9] + +![Reindeer painted with light.][10] + +![An LED snowflake.][11] + +### 全年可用的树莓派彩灯 + +我不确定这是否已经完全完成了。自从把它摆放到橱窗里,几乎每个晚上我都会添加一些新的图像和动画。我已经在考虑除夕夜的时候要做成什么样了。它不会像圣诞装饰品一起在圣诞节后被放进储藏室。 我只需要在上面显示其它图案,就能使它成为一个全年可用的彩灯! 我的一个朋友推荐了像素马里奥,这听起来是个好主意! + +我的代码仍然需要完善。 例如,我做了一些滚动文本,但当我为文本的每个位置重新绘制时却花了很多时间。我想我可以用循环做一些事情,或者图像库可以帮助更轻松地滚动字母,并使添加文本更容易,而不是在每一步打开和关闭每个像素。 + +这里有一张照片记录了我制作的全过程[LED 乒乓墙][12]。 + +可以在此处观看它的运行视频:[XMas 灯光展示][13]。 + +这个彩灯最终的效果我非常满意。以后我也会尝试更多利用 LED 彩灯完成的项目。我也鼓励大家亲自动手制作一个这样的彩灯,它会比你想象中更简单。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display + +作者:[Brian McCafferty][a] +选题:[lkxed][b] +译者:[Return7g](https://github.com/Return7g) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/bdm +[b]: https://github.com/lkxed +[1]: https://github.com/bmccafferty/ping-pong-led-wall +[2]: https://shop.pimoroni.com/products/raspberry-pi-zero-wh-with-pre-soldered-header +[3]: https://shop.pimoroni.com/products/pibow-zero-w +[4]: https://opensource.com/sites/default/files/2022-11/IMG_20201126_115520.jpeg +[5]: https://opensource.com#the-code +[6]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_101409.webp +[7]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_160500.webp +[8]: https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage +[9]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_181931.webp +[10]: https://opensource.com/sites/default/files/2022-11/IMG_20201202_215902.webp +[11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp +[12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/ +[13]: https://youtu.be/zc0501GzpMw From 26ee69a5f9b85849db67a04eb8b735be3df9a603 Mon Sep 17 00:00:00 2001 From: Songling Gu <1563156662@qq.com> Date: Fri, 16 Dec 2022 00:43:06 +0800 Subject: [PATCH 2360/3123] =?UTF-8?q?Delete=2020221126.2=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Create=20a=20holiday=20light=20di?= =?UTF-8?q?splay=20with=20your=20Raspberry=20Pi=20and=20ping=20pong=20ball?= =?UTF-8?q?s.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...play with your Raspberry Pi and ping pong balls.md | 130 ------------------ 1 file changed, 130 deletions(-) delete mode 100644 sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md diff --git a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md deleted file mode 100644 index c1e4f1b306..0000000000 --- a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md +++ /dev/null @@ -1,130 +0,0 @@ -[#]: subject: "Create a holiday light display with your Raspberry Pi and ping pong balls" -[#]: via: "https://opensource.com/article/22/11/raspberry-pi-holiday-light-display" -[#]: author: "Brian McCafferty https://opensource.com/users/bdm" -[#]: collector: "lkxed" -[#]: translator: "Return7g" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Create a holiday light display with your Raspberry Pi and ping pong balls -====== - -I love Christmas decorations and lights, and I'd been wanting to do an programmable LED project for a long time. Recently, I built a light array made of LED lights, ping pong balls, and a Raspberry Pi Zero. I thought it was worth sharing, because it ended up being relatively easy but also educational. - -It's mostly my own design, with some inspiration from YouTube videos. You can find the source code and build instructions in my [Git repository][1]. - -### Shopping list - -- [Raspberry Pi Zero][2] -- [Pibow Case][3] -- 5v 2A USB power supply -- Poster frame -- 255 ping pong balls -- Hot glue gun and LOTS of hot glue sticks -- Soldering iron -- Solder -- 22 AWG 0.35mm solid core wiring -- 10 meters of WS2812(B) LED strip lights (30 pixels per meter) -- Multimeter -- Wire cutters -- Wire strippers - -### Design the Raspberry Pi light display - -My design was driven by the size of the poster frame I happened to have available. I got 30 pixel per meter tape from Ali Express, which cut nicely into 0.5m sections, so that gave me 15 LEDs across. Ping pong balls are 40mm, so I measured and placed the lines 40mm apart, with the LED Strip in the middle of each 40mm section. This gave me 17 lines down in total. My array was therefore 15×17. If you try this yourself, yours can be a different size. - -To get power to the array and the Raspberry Pi, I placed the open connections for both data and power at the bottom of the board. I didn't have that many LEDs needing power, so I was able to use the 5v out GPIO from the Raspberry Pi Zero to power them. I run them at 50% brightness, which is easily bright enough to see in the day and at night through my window. - -### Wiring - -In my design, I started at the bottom of the board and wired up in an S-curve. This made soldering easier because loops at the end of each row didn't have to return all the way back to the start of each line. The WS2812 data lines do require you to wire the data the correct way: power can be fed from either side of the strip, but data must be fed from the side with the arrows pointing away. - -My wiring looks like this (this is abbreviated for clarity, in real life it's 17 lines deep): - -``` -<---------------\ -                | -/---------------/ -| -\---------------< # Pi connected here -``` - -### Build the display with your Raspberry Pi - -Once the design and wiring plan was sorted, it was time to get started on the build. - -I measured and drew my lines in pencil on the poster backboard. The WS2812 strips I got came with sticky tape on the back, so I just removed the backing and attached that directly to the backboard. I was sure to position each strip so that the data arrows went one way, then back the other, to ensure that the lights could be daisy-chained correctly for the Pi's instructions. - -Once all light strips were attached, I cut three similar lengths of wire and connected the 5v, data, and ground lines from the end of each light section to the one above it. - -![Connect each light strip at the end of each line.][4] - -After completing each row, I checked continuity between the 5v and ground lines between each strip to ensure my joins were correct. I also checked that I had not accidentally bridged any connections, so I verified that there was no continuity between the 5v and ground lines (in other words, a 5v wire on one line didn't bridge to the ground on the next line.) I also ran some tests to ensure everything was lighting up correctly (see [the code][5] section for my strand tests.) - -Once this was complete, I started to cut holes in the ping pong balls by stabbing scissors into the bottom of them, and cutting a small hole for the LED to shine into. There was no exact science to this, and each one was different, but the effect really worked. I was working with 30 pixels per meter, so my lighting had about 30mm between each LED. A ping pong ball is 40mm across, but I wasn't about to start soldering each LED individually! First of all, I'm not that good at soldering (as my photos show), and anyway, I thought "Well, they're ping pong balls. I can just squash them together!" - -And that's what I did. - -I placed a hot glue blob around each LED and then placed a ping pong ball onto the LED, held it for about five seconds, and moved on to the next one. I held onto the previous ping pong ball as I slid the next one in, pushing it against the first before "folding" it into its neighbor. The effect worked really well. I was happy with what it was looking like straight away. It also had the nice bonus of hiding my bad soldering job ;) - -![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6] - -I continued doing this for 255 LEDs and ping pong balls. There were a few crushed ping pong balls in the process, but in the end, I got there. - -![255 LEDs and 255 ping pong balls in an array.][7] - -### Test the code - -For the test code to ensure that everything was working, I used this [Adafruit guide][8] which lights each LED in red, green, and blue, and then does a rainbow cycle. I used this when I was building to ensure my connections were correct and that everything was soldered correctly. - -After that, I designed a grid in a spreadsheet to map each pixel to a grid position. This helped to make building the images easier. Since my pixel numbers run in a zig-zag pattern, it would have been hard to keep track of each LED (e.g. LED A1 was 256 and B1 was 226).  - -Once this was all set, it was time to design some images on paper and in the spreadsheet. Then it was time to code! It got a bit addictive and I started adding some animation (using loops and turning pixels onto one color and then another color).  - -The end result was everything I'd hoped it would be. - -![A Christmas gift in LED.][9] - -![Reindeer painted with light.][10] - -![An LED snowflake.][11] - -### A Raspberry Pi light display all year - -I am not sure this will ever be truly finished. Nearly every night since it's been up in the window, I've added some new images and animations. I'm already thinking about what to do for New Year's Eve. I also won't be putting this back in storage with my Christmas decorations in January. I just need to think of other things to draw on it to make it a year-round project! A friend of mine suggested a pixel Mario and I love that idea! - -My code also needs a little work. For example, I do some scrolling text, but I redraw the whole board for each position of the text, so it took quite a bit of time to do. I think I can do something with loops, or perhaps the image library can help scroll the letters easier, and make it easier to add text rather than turning each pixel on and off at every step. - -I've got a photo record of my progress from start to finish: [LED Ping Pong Wall][12]. - -You can also see a video of it in action here: [XMas light display][13]. - -I'm really pleased with how this turned out, and I think it looks amazing. I'm very excited to try some other LED projects in the future. I encourage you to try a light array of your own even as your first project. It's easier than it looks! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display - -作者:[Brian McCafferty][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/bdm -[b]: https://github.com/lkxed -[1]: https://github.com/bmccafferty/ping-pong-led-wall -[2]: https://shop.pimoroni.com/products/raspberry-pi-zero-wh-with-pre-soldered-header -[3]: https://shop.pimoroni.com/products/pibow-zero-w -[4]: https://opensource.com/sites/default/files/2022-11/IMG_20201126_115520.jpeg -[5]: https://opensource.com#the-code -[6]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_101409.webp -[7]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_160500.webp -[8]: https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage -[9]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_181931.webp -[10]: https://opensource.com/sites/default/files/2022-11/IMG_20201202_215902.webp -[11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp -[12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/ -[13]: https://youtu.be/zc0501GzpMw From a8daea810cc76cfb794ef7087c91db928ad72263 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 16 Dec 2022 08:36:01 +0800 Subject: [PATCH 2361/3123] translated --- ... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 104 ------------------ ... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 104 ++++++++++++++++++ 2 files changed, 104 insertions(+), 104 deletions(-) delete mode 100644 sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md create mode 100644 translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md diff --git a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md deleted file mode 100644 index fe68240171..0000000000 --- a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md +++ /dev/null @@ -1,104 +0,0 @@ -[#]: subject: "Linux Mint Upgrade Tool: Usage Guide" -[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Mint Upgrade Tool: Usage Guide -====== - -**Here’s how you can upgrade to new Linux Mint versions using the Mint upgrade tool, i.e. mintupgrade GUI with actual upgrade process screenshots.** - -If you are looking for **detailed upgrade** steps to the recently released **Linux Mint 21 Vanessa**, read this guide 👉 [upgrade-linux-mint-21-from-20-3][1] - -### Linux Mint Upgrade Tool - -The Linux Mint team [announced][2] a few months back, that they built a new utility to upgrade the Linux Mint’s significant versions. It’s called the “mintupgrade2”. Development is complete, and It is currently under the support and planning for upgrading to the major versions—for example, Linux Mint 20 to 21 and not the minor version upgrades. - -Although you can upgrade the versions using the standard apt commands, the Mint team believes significant version upgrades are tricky. It would be difficult for the new users to perform a seamless upgrade because it involves the terminal and a set of complex steps with commands. - -Moreover, the GUI is a wrapper with additional features to the mintupgrade program, which brings a set of pre-system checks and upgrade processes with a one-click Fix. - -In addition, the mintupgrade checks basic checks, whether you are connected to power, the system is up to date, disk space availability and many more features. - -To show you how it looks and works, we set up a testbed with LMDE 4 and give it a go. - -But before that, here’s a quick set of features: - -- Entirely GUI-driven upgrade process -- Multi-language support -- Pre-upgrade checks: system backup, power, disk space, list of removed packages -- Configurable -- Alert you about the orphaned packages from the prior version -- It gives you the option to fix issues - -### How it works - -When we ran the mint upgrade utility via the command `mintupgrade`, the GUI, the friendly welcome screen gives you an excellent starting point and starts the upgrade process. And then, it begins with a series of checks on its own. - -![Starting the upgrade process][3] - -In addition to that, when it finds some problem in your system, it stops and gives you sufficient details about it. Once you click on Fix, it can resume the process again. - -That’s not all; it can resume the upgrade process if interrupted due to network or internet or any other problem. - -The utility found the following errors in our test system during our test and fixed them with just one click. - -![Apt Cache check][4] - -![Mint Upgrade detects that system snapshots not present][5] - -![Check for Orphan Packages][6] - -![Status before upgrade][7] - -![Mint Upgrade can detect the packages require downgrade][8] - -Lastly, we successfully upgraded a test system from LMDE 4 to LMDE 5. - -![Upgrade Complete][9] - -#### How to get this upgrade utility - -The installation of the utility is easy using the commands below. However, if you are running the latest version of Linux Mint 21, it should already be installed and try by running mintupgrade from the terminal. - -``` -sudo apt update -``` - -``` -sudo apt install mintupgrade -``` - -### Closing Notes - -Finally, I think it’s one of the best utilities by the Linux Mint team. As you can see above, it handled many errors on its own. All I did was click the “Fix” button. And the utility is smart enough to understand all the failure points and take care of the remediations. - -[GitHub and source code of mintupgrade][10] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/mint-upgrade-tool/ - -作者:[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/upgrade-linux-mint-21-from-20-3/ -[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/ -[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg -[10]: https://github.com/linuxmint/mintupgrade diff --git a/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md new file mode 100644 index 0000000000..dbfa0952d0 --- /dev/null +++ b/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md @@ -0,0 +1,104 @@ +[#]: subject: "Linux Mint Upgrade Tool: Usage Guide" +[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint 升级工具:使用指南 +====== + +**以下是如何使用 Mint 升级工具升级到新的 Linux Mint 版本,即带有实际升级过程截图的 mintupgrade GUI。** + +如果你正在寻找最近发布的 **Linux Mint 21 Vanessa** 的**详细升级**步骤,请阅读本指南👉[从 Linux Mint 20.3 升级到 21][1] + +### Linux Mint 升级工具 + +Linux Mint 团队 [宣布][2]在几个月前,他们构建了一个新的程序来升级 Linux Mint 的重要版本。它被称为 “mintupgrade2”。开发已经完成,目前正在支持和计划升级到主要版本,例如 Linux Mint 20 到 21,而不是小版本升级。 + +尽管你可以使用标准的 apt 命令升级版本,但 Mint 团队认为重大版本升级是棘手的。新用户很难进行无缝升级,因为它涉及终端和一系列复杂的命令步骤。 + +此外,GUI 是一个封装器,具有 mintupgrade 程序的附加功能,它通过一键修复带来了一组系统前检查和升级过程。 + +此外,mintupgrade 会进行基本检查,你是否连接到电源、系统是否是最新的、磁盘空间可用性等。 + +为了向你展示它的外观和工作情况,我们安装了一台 LMDE 4 测试机测试。 + +但在此之前,这里有一组功能: + +- 完全由 GUI 驱动的升级过程 +- 多语言支持 +- 升级前检查:系统备份、电源、磁盘空间、已删除包列表 +- 可配置 +- 提醒你有关先前版本中的孤立包 +- 它为你提供了解决问题的选项 + +### 它如何运作 + +当我们通过命令 `mintupgrade` 运行 mint 升级程序时,GUI 友好的欢迎屏幕为你提供了一个很好的起点并开始升级过程。然后,它开始自己进行一系列检查。 + +![开始升级过程][3] + +除此之外,当它在你的系统中发现问题时,它会停止并为你提供足够的详细信息。单击“修复”后,它可以再次恢复该过程。 + +这不是全部。如果由于网络或互联网或任何其他问题而中断,它可以恢复升级过程。 + +这个程序在我们的测试过程中在我们的测试系统中发现了以下错误,并且只需单击一下即可修复它们。 + +![Apt 缓存检查][4] + +![Mint Upgrade 检测到系统快照不存在][5] + +![检查孤立包][6] + +![升级前状态][7] + +![Mint Upgrade 可以检测需要降级的包][8] + +最后,我们成功地将测试系统从 LMDE 4 升级到 LMDE 5。 + +![升级完成][9] + +#### 如何获取此升级程序 + +使用以下命令可以轻松安装该程序。但是,如果你正在运行最新版本的 Linux Mint 21,它应该已经安装并尝试从终端运行 mintupgrade。 + +``` +sudo apt update +``` + +``` +sudo apt install mintupgrade +``` + +### 结束语 + +最后,我认为它是 Linux Mint 团队最好的程序之一。正如你在上面看到的,它自己处理了许多错误。我所做的只是单击“修复”按钮。该程序足够智能,可以了解所有故障点并采取补救措施。 + +[GitHub 和 mintupgrade 源码][10] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/mint-upgrade-tool/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/ +[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/ +[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg +[10]: https://github.com/linuxmint/mintupgrade From 69d71eb44716b16c08d3f174cfa3705b9819a498 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 16 Dec 2022 08:40:48 +0800 Subject: [PATCH 2362/3123] translating --- ...13.6 ⭐️⭐️ Try this Linux web browser as your file manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md index 622adb597e..0d959b6e95 100644 --- a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md +++ b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 249d06c2537e77336544864ab73dca71c3dc48d7 Mon Sep 17 00:00:00 2001 From: duoluoxiaosheng <554765662@qq.com> Date: Fri, 16 Dec 2022 09:24:55 +0800 Subject: [PATCH 2363/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?]Improve=20your=20documentation=20with=20JavaScript?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21215.2 ⭐️⭐️ Improve your documentation with JavaScript.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md index 921b12bf7a..04434f2ebe 100644 --- a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md +++ b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/dynamic-documentation-javascript" [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "duoluoxiaosheng" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -221,7 +221,7 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[译者ID](https://github.com/duoluoxiaosehng) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e192948e962722e36f74672e1772880e89768974 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 16 Dec 2022 09:27:09 +0800 Subject: [PATCH 2364/3123] RP @cool-summer-021 https://linux.cn/article-15352-1.html --- ...221004 Learn the OSI model in 5 minutes.md | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) rename {translated/tech => published}/20221004 Learn the OSI model in 5 minutes.md (72%) diff --git a/translated/tech/20221004 Learn the OSI model in 5 minutes.md b/published/20221004 Learn the OSI model in 5 minutes.md similarity index 72% rename from translated/tech/20221004 Learn the OSI model in 5 minutes.md rename to published/20221004 Learn the OSI model in 5 minutes.md index cd2b6d735a..dc05565ee5 100644 --- a/translated/tech/20221004 Learn the OSI model in 5 minutes.md +++ b/published/20221004 Learn the OSI model in 5 minutes.md @@ -3,29 +3,32 @@ [#]: author: "Anamika https://opensource.com/users/anamika" [#]: collector: "lkxed" [#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15352-1.html" 5 分钟内了解 OSI 模型 ====== -理解OSI框架的基本概念,掌握计算机系统通信机制 -开放系统互联(OSI)模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型,在20世纪80年代早期,所有主流的计算机和通信公司都采用了这个标准。 +![][0] -OSI 模型提供了一种通用语言,用于描述网络,以及在离散的块或层中考虑相关的问题。 +> 理解 OSI 框架的基本概念,掌握计算机系统通信机制。 -### OSI模型的各个层 +开放系统互联Open Systems Interconnection(OSI)模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型,在上世纪 80 年代早期,所有主流的计算机和通信公司都采用了这个标准。 + +OSI 模型提供了一种用于描述网络的通用语言,并以离散的块或层的方式来描述。 + +### OSI 模型的各个层 该模型描述了计算机系统通过网络进行通信的七个层。 -1. [应用层][2] -2. [表现层][3] -3. [会话层][4] -4. [传输层][5] -5. [网络层][6] -6. [数据链路层][7] -7. [物理层][8] +- 7 应用层 +- 6 表示层 +- 5 会话层 +- 4 传输层 +- 3 网络层 +- 2 数据链路层 +- 1 物理层 每个层都有自己的工作方式和一系列跟其他层不同的协议。本文将逐个剖析这些层级。 @@ -33,15 +36,15 @@ OSI 模型提供了一种通用语言,用于描述网络,以及在离散的 应用层是在软件中实现的。它是与应用程序交互的层级。 -考虑发送消息的例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表现层)发送消息。 +用发送消息作为例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表示层)发送消息。 -### 表现层 +### 表示层 -来自应用层的数据被转发到表现层。表现层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。 +来自应用层的数据被转发到表示层。表示层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。 -在此阶段,ASCII(美国信息交换标准码) 字符被转换为扩充的二进制编码的十进制交换码(EBCDIC)。转换后的数据在继续传输前,也会进行编码和加密过程,使用SSL协议进行加密和解密。 +在此阶段,ASCII(美国信息交换标准码)字符被转换为扩充的二进制编码的十进制交换码(EBCDIC)。转换后的数据在继续传输前,也会进行编码和加密过程,使用 SSL 协议进行加密和解密。 -表现层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,不属于本文的讨论范围。 +表示层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,这不属于本文的讨论范围。 ### 会话层 @@ -51,9 +54,9 @@ OSI 模型提供了一种通用语言,用于描述网络,以及在离散的 ### 传输层 -传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分割”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。 +传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分段”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。 -传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误的管理,比如数据丢失、损坏等情况。它利用一种错误探测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。 +传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误控制,比如数据丢失、损坏等情况。它利用一种错误检测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。 ### 网络层 @@ -84,7 +87,7 @@ via: https://opensource.com/article/22/10/osi-model-network-communications 作者:[Anamika][a] 选题:[lkxed][b] 译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -98,3 +101,4 @@ via: https://opensource.com/article/22/10/osi-model-network-communications [6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer [7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer [8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer +[0]: https://img.linux.net.cn/data/attachment/album/202212/16/092612etn6gwaecb91bweg.jpg \ No newline at end of file From 27bf29e75471277c6ec0f0a1d4d217470e6c3888 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 16 Dec 2022 11:02:50 +0800 Subject: [PATCH 2365/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yzuowei 翻译的非常认真!很好。 --- ...️ Introducing Rust calls to C library functions.md | 67 ++++++++++--------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md index c318bfa2dd..824dd7b0e8 100644 --- a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md +++ b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md @@ -3,26 +3,30 @@ [#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -介绍从 Rust 调用 C 库函数 +从 Rust 调用 C 库函数 ====== -为什么要从 Rust 调用 C 函数?简短的回答就是软件库。冗长的答案则触及到 C 在众多编程语言中的地位,特别是相对 Rust 而言。C,C++,还有 Rust 都是系统语言,这意味着程序员会访问机器层面的数据类型与操作。在这三个系统语言中,C 依然占据主导地位。现代操作系统的内核大致用 C 来写,其余部分依靠汇编语言来补充。在标准系统函数库中,输入与输出、数字处理、加密计算、安全、网络、国际化、字符串处理、内存管理,还用更多,都大体用 C 来写。这些函数库所代表的是一个庞大的基础架构,支撑着用其他语言写出来的应用。Rust 发展至今也有着可观的函数库,但是 C 的函数库——自1970年代就已存在,迄今还在蓬勃发展——是一个无法被忽视的资源。最后一点是, C 依然还是编程语言中的 [lingua franca][1]:大部分语言都与 C 交流,透过 C,语言互相交流。 +![][0] + +> Rust FFI 和 bindgen 工具是为 Rust 调用 C 库而设计的。Rust 很容易与 C 语言对话,从而与任何其它可以与 C 语言对话的语言对话。 + +为什么要从 Rust 调用 C 函数?简短的答案就是软件库。冗长的答案则触及到 C 在众多编程语言中的地位,特别是相对 Rust 而言。C、C++,还有 Rust 都是系统语言,这意味着程序员可以访问机器层面的数据类型与操作。在这三个系统语言中,C 依然占据主导地位。现代操作系统的内核主要是用 C 来写的,其余部分依靠汇编语言补充。在标准系统函数库中,输入与输出、数字处理、加密计算、安全、网络、国际化、字符串处理、内存管理等等,大多都是用 C 来写的。这些函数库所代表的是一个庞大的基础设施,支撑着用其他语言写出来的应用。Rust 发展至今也有着可观的函数库,但是 C 的函数库 —— 自 1970 年代就已存在,迄今还在蓬勃发展 —— 是一种无法被忽视的资源。最后一点是,C 依然还是编程语言中的 [通用语][1]:大部分语言都可以与 C 交流,透过 C,语言之间可以互相交流。 ### 两个概念证明的例子 -Rust 支持 FFI (外部函数接口)用以调用 C 函数。任何 FFI 所需要面临的问题是调用方语言是否包括了被调用语言的数据类型。例如,`ctypes` 是 Python 调用 C 的 FFI,但是 Python 并没有包括 C 所支持的无符号整数类型。结果就是,`ctypes` 必须寻求解决方案。 +Rust 支持 FFI(外部函数接口Foreign Function Interface)用以调用 C 函数。任何 FFI 所需要面临的问题是调用方语言是否涵盖了被调用语言的数据类型。例如,`ctypes` 是 Python 调用 C 的 FFI,但是 Python 并没有包括 C 所支持的无符号整数类型。结果就是,`ctypes` 必须寻求解决方案。 -与之相对的是,Rust 包含了所有 C 中的原始(即,机器层面)类型。比如说,Rust 中的 `i32` 类对应 C 中的 `int` 类。C 特别声明了 `char` 类必须是一个字节大小,而其他类型,比如 `int`,必须至少是这个大小(LCTT 译注:原文处有评论指出 `int` 大小依照 C 标准应至少为2字节);然而如今所有合理的 C 编译器都支持四字节的 `int`,以及八字节的 `double`(Rust 中则是 `f64` 类),以此类推。 +相比之下,Rust 包含了所有 C 中的原始(即,机器层面)类型。比如说,Rust 中的 `i32` 类对应 C 中的 `int` 类。C 特别声明了 `char` 类必须是一个字节大小,而其他类型,比如 `int`,必须至少是这个大小(LCTT 译注:原文处有评论指出 `int` 大小依照 C 标准应至少为 2 字节);然而如今所有合理的 C 编译器都支持四字节的 `int`,以及八字节的 `double`(Rust 中则是 `f64` 类),以此类推。 -面向 C 的 FFI 所面临的另一个挑战是:FFI 是否能够处理 C 的裸指针,包括指向被看作是字符串的数组指针。C 没有字符串类型,它通过结合字符组和一个不会被打印的终止符来实现字符串,大名鼎鼎的_空终止符_。与之相对,Rust 有两个字符串类型:`String` 和 `&str` (字符串切片)。问题是,Rust FFI 是否能将 C 字符串转化成 Rust 字符串——答案是_肯定的_。 +针对 C 的 FFI 所面临的另一个挑战是:FFI 是否能够处理 C 的裸指针,包括指向被看作是字符串的数组指针。C 没有字符串类型,它通过结合字符组和一个非打印终止符(大名鼎鼎的 _空终止符_)来实现字符串。相比之下,Rust 有两个字符串类型:`String` 和 `&str` (字符串切片)。问题是,Rust FFI 是否能将 C 字符串转化成 Rust 字符串——答案是 _肯定的_。 -出于对效率的追求,结构体指针在 C 中也很常见。一个 C 结构体在作为一个函数的参数或者返回值的时候,其默认行为是传递值(即,一个字节一个字节的复制)。C 结构体,如同它在 Rust 中的对应部分一样,可以包含数组和嵌套其他结构体,所以其大小是不定的。结构体在两种语言中的最佳用法是传递或返回引用,也就是说,传递或返回结构体的地址而不是结构体本身的复制。Rust 再一次成功处理了 C 的结构体指针,其在 C 函数库中十分普遍。 +出于对效率的追求,结构体指针在 C 中也很常见。一个 C 结构体在作为一个函数的参数或者返回值的时候,其默认行为是传递值(即,逐字节复制)。C 结构体,如同它在 Rust 中的对应部分一样,可以包含数组和嵌套其他结构体,所以其大小是不定的。结构体在两种语言中的最佳用法是传递或返回引用,也就是说,传递或返回结构体的地址而不是结构体本身的副本。Rust FFI 再一次成功处理了 C 的结构体指针,其在 C 函数库中十分普遍。 -第一段代码案例专注于调用相对简单的 C 库函数,比如 `abs`(绝对值)和 `sqrt`(平方根)。这些函数使用非指针标量参数并返回一个非指针标量值。第二段代码案例则涉及了字符串和结构体指针,在这里会介绍工具 [bindgen][2],其通过 C 接口(头)文件生成 Rust 代码,比如 `math.h` 以及 `time.h`。C 头文件声明了 C 函数的调用语法并定义了会被调用的结构体。两段代码都能在[我的主页上][3]找到。 +第一段代码案例专注于调用相对简单的 C 库函数,比如 `abs`(绝对值)和 `sqrt`(平方根)。这些函数使用非指针标量参数并返回一个非指针标量值。第二段代码案例则涉及了字符串和结构体指针,在这里会介绍工具 [bindgen][2],其通过 C 接口(头文件)生成 Rust 代码,比如 `math.h` 以及 `time.h`。C 头文件声明了 C 函数的调用语法,并定义了会被调用的结构体。两段代码都能在 [我的主页上][3] 找到。 ### 调用相对简单的 C 函数 @@ -56,9 +60,9 @@ fn main() { } ``` -顶部的两个 `use` 声明是 Rust 的数据类型 `c_int` 和 `c_double`,对应 C 类型里的 `int` 和 `double`。Rust 标准模块 `std::os::raw` 定义了十四个类似的类型以确保跟 C 的兼容性。模块 `std::ffi` 中有十四个同样的类型定义以及对字符串的支持。 +顶部的两个 `use` 声明是 Rust 的数据类型 `c_int` 和 `c_double`,对应 C 类型里的 `int` 和 `double`。Rust 标准模块 `std::os::raw` 定义了 14 个类似的类型以确保跟 C 的兼容性。模块 `std::ffi` 中有 14 个同样的类型定义,以及对字符串的支持。 -位于 `main` 函数上的 `extern "C"` 区域声明了三个 C 库函数,这些函数会在 `main` 函数内被调用。每次调用都使用了标准的 C 函数名,但每次调用都必须发生在一个 `unsafe` 区域内。正如每个新接触 Rust 的程序员所发现的那样,Rust 编译器极度强制内存安全。其他语言(特别是 C 和 C++)作不出相同的保证。`unsafe` 区域其实是说:Rust 对外部调用中可能存在的不安全行为不负责。 +位于 `main` 函数上的 `extern "C"` 区域声明了 3 个 C 库函数,这些函数会在 `main` 函数内被调用。每次调用都使用了标准的 C 函数名,但每次调用都必须发生在一个 `unsafe` 区域内。正如每个新接触 Rust 的程序员所发现的那样,Rust 编译器极度强制内存安全。其他语言(特别是 C 和 C++)作不出相同的保证。`unsafe` 区域其实是说:Rust 对外部调用中可能存在的不安全行为不负责。 第一个程序输出为: @@ -69,13 +73,13 @@ fn main() { -3.14的平方根是: NaN. ``` -输出的最后一行的 `NaN` 表示不是数字 (Not a Number):C 库函数 `sqrt` 期待一个非负值作为参数,这使得参数-3.14生成了 `NaN` 作为返回值。 +输出的最后一行的 `NaN` 表示不是数字Not a Number:C 库函数 `sqrt` 期待一个非负值作为参数,这使得参数 `-3.14` 生成了 `NaN` 作为返回值。 ### 调用涉及指针的 C 函数 -C 库函数为了提高效率经常在安全、网络、字符串处理、内存管理,以及其他领域中使用指针。例如,库函数 `asctime`(时间作为 ASCII 字符串)期待一个结构体指针作为其参数。Rust 调用类似 `asctime` 的 C 函数就会比调用 `sqrt` 要更加棘手一些,后者既没有牵扯到指针,也不涉及到结构体。 +C 库函数为了提高效率,经常在安全、网络、字符串处理、内存管理,以及其他领域中使用指针。例如,库函数 `asctime`(ASCII 字符串形式的时间)期待一个结构体指针作为其参数。Rust 调用类似 `asctime` 的 C 函数就会比调用 `sqrt` 要更加棘手一些,后者既没有牵扯到指针,也不涉及到结构体。 -函数 `asctime` 调用的 C 结构体类型为 `struct tm`。一个指向此结构体的指针会作为参数被传递给库函数 `mktime`(时间作为值)。此结构体会将时间拆分成诸如年、月、小时之类的单位。此结构体的字段 (fields) 类型为 `time_t`,是 `int`(32位)和 `long`(64位)的异名。两个库函数将这些破碎的时间碎片组合成了一个单一值:`asctime` 返回一个字符串用以表达时间,而 `mktime` 返回一个 `time_t` 值表示自 [_epoch_][4],即系统时钟和时间戳被决定的那一刻,以来所经历的秒数。典型的 epoch 设置为1900年或1970年,1月1日,0时0分0秒。 +函数 `asctime` 调用的 C 结构体类型为 `struct tm`。一个指向此结构体的指针会作为参数被传递给库函数 `mktime`(时间作为值)。此结构体会将时间拆分成诸如年、月、小时之类的单位。此结构体的字段field类型为 `time_t`,是 `int`(32位)和 `long`(64 位)的别名。两个库函数将这些破碎的时间片段组合成了一个单一值:`asctime` 返回一个以字符串表示的时间,而 `mktime` 返回一个 `time_t` 值表示自 “[纪元][4]Epoch 以来所经历的秒数,这是一个系统的时钟和时间戳的相对时间。典型的纪元设置为 1900 年或 1970 年,1 月 1 日 0 时 0 分 0 秒。(LCTT 校注:Unix、Linux 乃至于如今所有主要的计算机和网络的时间纪元均采用 1970 年为起点。) 以下的 C 程序调用了 `asctime` 和 `mktime`,并使用了其他库函数 `strftime` 来将 `mktime` 的返回值转化成一个格式化的字符串。这个程序可被视作 Rust 对应版本的预热: @@ -93,8 +97,8 @@ int main () { sometime.tm_hour = 1; sometime.tm_mday = 1; sometime.tm_mon = 1; - sometime.tm_year = 1; - sometime.tm_hour = 1; /*LCTT 译注:这里作者多敲了一行*/ + sometime.tm_year = 1; /*LCTT 校注:注意,相对于 1900 年的年数*/ + sometime.tm_hour = 1; sometime.tm_wday = 1; sometime.tm_yday = 1; @@ -102,11 +106,11 @@ int main () { utc = mktime(&sometime); if( utc < 0 ) { - fprintf(stderr, "错误: mktime 无法生成时间\n"); + fprintf(stderr, "错误: mktime 无法生成时间\n"); } else { - printf("返回的整数值: %d\n", utc); - strftime(buffer, sizeof(buffer), "%c", &sometime); - printf("更加可读的版本: %s\n", buffer); + printf("返回的整数值: %d\n", utc); + strftime(buffer, sizeof(buffer), "%c", &sometime); + printf("更加可读的版本: %s\n", buffer); } return 0; @@ -121,19 +125,19 @@ int main () { 更加可读的版本: Fri Feb  1 01:01:01 1901 ``` -(LCTT 译注:如果你尝试在自己电脑上运行这段代码,然后得到了一行关于 `mktime` 的错误信息,然后又在网上随便找了个在线 C 编译器,复制代码然后得到了跟这里的结果有区别但是没有错误的结果,不要慌,我的电脑上也是这样的。导致本地机器上 `mktime` 失败的原因是作者没有设置 `tm_isdst`,这个是用来标记夏令时的 flag。[`tm_isdst` 大于零则夏令时生效中,等于零则不生效,小于零标记未知][5]。加入 `sometime.tm_isdst = 0` 或 `= -1` 后应该就能得到跟在线编译器大致一样的结果。不同的地方在于结果第一行我得到的是 `Mon Feb ...`,这个与作者代码中 `sometime.tm_wday = 1` 对应,这里因该是作者写错了;第二行我和作者和网上得到的数字都不一样,这大概是合理的,因为这与机器的 epoch 有关;第三行我跟作者的结果是一样的,1901年2月1日也确实是周五,这是因为 [`mktime` 其实会修正时间参数中不合理的地方][6]。至于夏令时具体是如何影响 `mktime` 这个问题,我能查到的只有 `mktime` 的计算受时区影响,更底层的原因我也不知道了。) +(LCTT 译注:如果你尝试在自己电脑上运行这段代码,然后得到了一行关于 `mktime` 的错误信息,然后又在网上随便找了个在线 C 编译器,复制代码然后得到了跟这里的结果有区别但是没有错误的结果,不要慌,我的电脑上也是这样的。导致本地机器上 `mktime` 失败的原因是作者没有设置 `tm_isdst`,这个是用来标记夏令时的标志。[`tm_isdst` 大于零则夏令时生效中,等于零则不生效,小于零标记未知][5]。加入 `sometime.tm_isdst = 0` 或 `= -1` 后应该就能得到跟在线编译器大致一样的结果。不同的地方在于结果第一行我得到的是 `Mon Feb ...`,这个与作者代码中 `sometime.tm_wday = 1` 对应,这里应该是作者**写错了**;第二行我和作者和网上得到的数字都不一样,这大概是合理的,因为这与机器的纪元有关;第三行我跟作者的结果是一样的,1901 年 2 月 1 日也确实是周五,这是因为 [`mktime` 其实会修正时间参数中不合理的地方][6]。至于夏令时具体是如何影响 `mktime` 这个问题,我能查到的只有 `mktime` 的计算受时区影响,更底层的原因我也不知道了。) 总的来说,Rust 在调用库函数 `asctime` 和 `mktime` 时,必须处理以下两个问题: - 将裸指针作为唯一参数传递给每个库函数。 - 把从 `asctime` 返回的 C 字符串转化为 Rust 字符串。 -### Rust 调用 `asctime` 和 `mktime` +### Rust 调用 asctime 和 mktime 工具 `bindgen` 会根据类似 `math.h` 和 `time.h` 之类的 C 头文件生成 Rust 支持的代码。下面这个简化版的 `time.h` 就可以用来做例子,简化版与原版主要有两个不同: -- 内置类型 `int` 被用来取代异名类型 `time_t`。工具 bindgen 可以处理 `time_t` 类但是会生成一些烦人的警告,因为 `time_t` 不符合 Rust 的命名规范:`time_t` 以下划线区分 `time` 和 `t`;Rust 更偏好驼峰式命名方法,比如 `TimeT`。 -- 出于同样的原因,这里选择 `StructTM` 作为 `struct tm` 的异名。 +- 内置类型 `int` 被用来取代别名类型 `time_t`。工具 bindgen 可以处理 `time_t` 类,但是会生成一些烦人的警告,因为 `time_t` 不符合 Rust 的命名规范:`time_t` 以下划线区分 `time` 和 `t`;Rust 更偏好驼峰式命名方法,比如 `TimeT`。 +- 出于同样的原因,这里选择 `StructTM` 作为 `struct tm` 的别名。 以下是一份简化版的头文件,`mktime` 和 `asctime` 在文件底部: @@ -154,7 +158,7 @@ extern int mktime(StructTM*); extern char* asctime(StructTM*); ``` -`bindgen` 安装好后,`%` 作为命令行提示,`mytime.h` 作为以上提到的头文件,以下命令可以生成所需的 Rust 代码并将其保存到文件 `mytime.rs`: +`bindgen` 安装好后,`mytime.h` 作为以上提到的头文件,以下命令(`%` 是命令行提示符)可以生成所需的 Rust 代码并将其保存到文件 `mytime.rs`: ``` % bindgen mytime.h > mytime.rs @@ -201,9 +205,9 @@ fn bindgen_test_layout_tm() { ... ``` -Rust 结构体 `struct tm`,跟原本在 C 中的一样,包含了九个4字节的整型字段。这些字段名称在 C 和 Rust 中是一样的。`extern "C"` 区域声明了库函数 `astime` 和 `mktime` 分别需要只一个参数,一个指向可变实例 `extern "C"` 的裸指针。(库函数可能会通过指针改变作为参数传递的结构体。) +Rust 结构体 `struct tm`,跟原本在 C 中的一样,包含了 9 个 4 字节的整型字段。这些字段名称在 C 和 Rust 中是一样的。`extern "C"` 区域声明了库函数 `astime` 和 `mktime` 分别需要只一个参数,一个指向可变实例 `StructTM` 的裸指针。(库函数可能会通过指针改变作为参数传递的结构体。) -`#[test]` 属性下的其余代码是用来测试 Rust 版的时间结构体的布局。通过命令 `cargo test` 可以进行这些测试。一个 C 不会声明的问题是编译器应该如何对结构体中的字段进行布局。比如说,C 的 `struct tm` 以字段 `tm_sec` 开头用以表示秒;但是 C 不需要编译版本遵循这个排序。不管怎样,Rust 测试应该会成功而 Rust 对库函数的调用也应如预期般工作。 +`#[test]` 属性下的其余代码是用来测试 Rust 版的时间结构体的布局。通过命令 `cargo test` 可以进行这些测试。问题在于,C 没有规定编译器应该如何对结构体中的字段进行布局。比如说,C 的 `struct tm` 以字段 `tm_sec` 开头用以表示秒;但是 C 不需要编译版本遵循这个排序。不管怎样,Rust 测试应该会成功,而 Rust 对库函数的调用也应如预期般工作。 ### 设置好第二个案例并开始运行 @@ -251,9 +255,9 @@ Ok( 2120218157 ``` -对 C 函数 `asctime` 和 `mktime` 的调用必须再一次被放在 `unsafe` 区域内,因为 Rust 编译器无法对这些外部函数的潜在内存安全风险负责。此处声明一下,`asctime` 和 `mktime` 并没有安全风险。调用的两个函数的参数是裸指针 `ptr`,其指向结构体 `sometime` (在栈 (stack) 中)的地址。 +对 C 函数 `asctime` 和 `mktime` 的调用必须再一次被放在 `unsafe` 区域内,因为 Rust 编译器无法对这些外部函数的潜在内存安全风险负责。此处声明一下,`asctime` 和 `mktime` 并没有安全风险。调用的两个函数的参数是裸指针 `ptr`,其指向结构体 `sometime` (在stack中)的地址。 -`asctime` 是两个函数中调用起来更棘手的那个,因为这个函数返回的是一个指向 C `char` 的指针,如果函数返回 `Mon` 那么指针就指向 `M`。但是 Rust 编译器并不知道 C 字符串 (`char` 的空终止数组)的储存位置。是内存里的静态空间?还是堆 (heap)?`asctime` 函数内用来储存时间的文字表达的数组实际上是在内存的静态空间里。无论如何,C 到 Rust 字符串转化需要两个步骤来避免编译错误: +`asctime` 是两个函数中调用起来更棘手的那个,因为这个函数返回的是一个指向 C `char` 的指针,如果函数返回 `Mon` 那么指针就指向 `M`。但是 Rust 编译器并不知道 C 字符串 (`char` 的空终止数组)的储存位置。是内存里的静态空间?还是heap?`asctime` 函数内用来储存时间的文字表达的数组实际上是在内存的静态空间里。无论如何,C 到 Rust 字符串转化需要两个步骤来避免编译错误: - 调用 `Cstr::from_ptr(char_ptr)` 来将 C 字符串转化为 Rust 字符串并返回一个引用储存在变量 `c_str` 中。 - 对 `c_str.to_str()` 的调用确保了 `c_str` 是所有者。 @@ -262,9 +266,9 @@ Rust 代码不会增加从 `mktime` 返回的整型值的易读性,这一部 ### 使用 FFI 和 bindgen 调用 C -Rust FFI 和工具 `bindgen` 都能够出色地协助 Rust 调用 C 库,无论是标准库还是第三方库。Rust 轻松地与 C 交流,并透过 C 与其他语言交流。对于调用像 `sqrt` 一样简单的库函数,Rust FFI 表现直截了当,这是因为 Rust 的原始数据类型覆盖了它们在 C 中的对应部分。 +Rust FFI 和工具 `bindgen` 都能够出色地协助 Rust 调用 C 库,无论是标准库还是第三方库。Rust 可以轻松地与 C 交流,并透过 C 与其他语言交流。对于调用像 `sqrt` 一样简单的库函数,Rust FFI 表现直截了当,这是因为 Rust 的原始数据类型覆盖了它们在 C 中的对应部分。 -对于更为复杂的交流——特别是 Rust 调用像 `asctime` 和 `mktime` 一样,会涉及到结构体和指针的 C 库函数——工具 `bindgen` 是优秀的帮手。这个工具会生成支持代码以及所需要的测试。当然,Rust 编译器无法假设 C 代码对内存安全的考虑会符合 Rust 的标准;因此,Rust 必须在 `unsafe` 区域内调用 C。 +对于更为复杂的交流 —— 特别是 Rust 调用像 `asctime` 和 `mktime` 一样,会涉及到结构体和指针的 C 库函数 —— `bindgen` 工具是优秀的帮手。这个工具会生成支持代码以及所需要的测试。当然,Rust 编译器无法假设 C 代码对内存安全的考虑会符合 Rust 的标准;因此,Rust 必须在 `unsafe` 区域内调用 C。 -------------------------------------------------------------------------------- @@ -273,7 +277,7 @@ via: https://opensource.com/article/22/11/rust-calls-c-library-functions 作者:[Marty Kalin][a] 选题:[lkxed][b] 译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -285,3 +289,4 @@ via: https://opensource.com/article/22/11/rust-calls-c-library-functions [4]: https://baike.baidu.com/item/UNIX时间/8932323 [5]: https://cplusplus.com/reference/ctime/tm/ [6]: https://cplusplus.com/reference/ctime/mktime/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/16/110147q4kk0qoqe0e3m6bb.jpg \ No newline at end of file From 3431b3e80fadb0ca6a53b7ba27d665ba4b67a38b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 16 Dec 2022 11:03:19 +0800 Subject: [PATCH 2366/3123] P @yzuowei https://linux.cn/article-15353-1.html --- ....2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md (99%) diff --git a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md similarity index 99% rename from translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md rename to published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md index 824dd7b0e8..f0f6e2de35 100644 --- a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md +++ b/published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "yzuowei" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15353-1.html" 从 Rust 调用 C 库函数 ====== From b7b0a4db99e3e73dbbd9e6a659a98d4278a0722b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 16 Dec 2022 23:08:48 +0800 Subject: [PATCH 2367/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221215.5=20=E2=AD=90=EF=B8=8F=20XFCE=204.18=20Rele?= =?UTF-8?q?ase=20Looks=20Impressive!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️ XFCE 4.18 Release Looks Impressive!.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md diff --git a/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md new file mode 100644 index 0000000000..0fa893a4df --- /dev/null +++ b/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md @@ -0,0 +1,138 @@ +[#]: subject: "XFCE 4.18 Release Looks Impressive!" +[#]: via: "https://news.itsfoss.com/xfce-4-18-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +XFCE 4.18 Release Looks Impressive! +====== + +Xfce 4.18 is here with interesting feature additions and subtle changes. + +![XFCE 4.18 Release Looks Impressive!][1] + +Xfce is one of the best desktop environments out there. It is popular for its simplicity and is a lightweight option. + +Unlike other desktop environments, you do not see regular feature additions to Xfce. So, it is always exciting to wait for an upgrade. + +Xfce 4.18 is the latest release with some useful feature additions and other technical improvements. Let me highlight the same. + +### Xfce 4.18: What's New? + +![Xfce 4.18 with its new default wallpaper][2] + +Although this is not a complete list of changes, some of the more noticeable ones include: + +- **File manager improvements** +- **Desktop and panel changes** +- **More settings for you to tinker with** +- **New Wallpapers** + +#### File Manager Improvements + +![Xfce 4.18 file manager with split view][3] + +Thunar, the default file manager for XFCE, has received quite a few changes with this release. A favorite of many Linux users, Thunar has a clean and intuitive user interface, making it easy for people of all skill levels. + +With this release, this useful tool has received several new features. For instance: + +- **The new search icon in the toolbar allows users to search for files and folders quickly** +- **You can now add a split view** +- **Enable a standalone image preview** + +There's also an interesting addition that helps you **highlight files** to quickly spot them. You can set a foreground and background color, and reset it if you want it gone. + +![xfce 4.18 file highlight][4] + +You can access this feature from the properties option of a file. + +There are a few other additions to Thunar file manager, including: + +- **A new tab for customizing keyboard shortcuts** +- **New bookmark menu** + +#### Refined Settings and Desktop Changes + +Xfce desktop remains much of the same. You should not expect a different user experience out of the box. + +There are no major visual overhauls but subtle refinements and feature improvements. + +For instance, you can find new abilities with the calendar widget. Display settings offer more options even if you do not have multiple displays connected. + +XFCE panel got some changes as well. + +![xfce 4.18 panel settings][5] + +These include adjusting the height in terms of pixels instead of percentages and a new "**keep panel above windows**" option. This allows windows to extend underneath the panel instead of being cut off at the top. + +Not to mention, the clock applet can now have its font family, font size, and layout customized. + +![xfce 4.18 clock][6] + +#### New Wallpapers + +Of course, we also get some new wallpapers; you've already seen the new default at the beginning of this article. + +![xfce 4.18 new wallpaper collection][7] + +If you are curious, you can check out various other submissions for the [wallpaper contest][8]. Maybe you will find something that others didn't like. + +![xfce 4.18 new wallpaper collection][9] + +These are the second and third-best choices planned to be added to the background collection. + +#### Other Changes + +Alongside those previously mentioned, a few more changes are also introduced with this release. + +- **Initial Wayland support, which allows Xfce to run on the Wayland display server.** +- **GTK4 updates, which provide improved performance and stability.** +- **A few minor updates to some core apps, including improvements to the Xfdesktop, Xfwm4, and Xfce4-panel applications.** + +For a complete list of changes, you can refer to the [official blog post][10]. + +### Getting XFCE 4.18 + +You can install it for rolling-release distributions like Arch Linux through the repositories. For other distributions, you may have to wait for an official update if you do not want to experiment with things yourself. + +For a quick try, you can install Xubuntu 23.04 daily builds to get your hands on the features. + +If you are using any other Linux distributions that do not provide quick desktop environment updates for stability purposes, you can try installing it manually if you know what you are doing. + +[Download Xfce 4.18][11] + +### Final Thoughts + +Xfce 4.18 is a significant update to the Xfce desktop environment, with many new features and improvements. + +The updates to the Thunar file manager are particularly noteworthy, as they provide users with more control and customization options. The initial Wayland support and GTK4 updates will improve performance and stability. + +Overall, Xfce 4.18 is a welcome update that will improve the user experience for Xfce users. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/xfce-4-18-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png +[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg +[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg +[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg +[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg +[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg +[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg +[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300 +[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg +[10]: https://alexxcons.github.io/blogpost_8.html +[11]: https://www.xfce.org/ From 2df5e1752505455e66d08530bac77d07c42585b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 16 Dec 2022 23:23:21 +0800 Subject: [PATCH 2368/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221216.1=20=E2=AD=90=EF=B8=8F=20Harmonoid=20A=20Be?= =?UTF-8?q?autiful=20Cross-Platform=20Music=20Player=20With=20Essential=20?= =?UTF-8?q?Features.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atform Music Player With Essential Features.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md diff --git a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md new file mode 100644 index 0000000000..9b02d56dcc --- /dev/null +++ b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md @@ -0,0 +1,107 @@ +[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features" +[#]: via: "https://itsfoss.com/harmonoid/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features +====== + +Fortunately, there’s no shortage of [good open-source music players for Linux][1]. We have covered a variety of options in the past. + +Here, I highlight a music player that is free to use, open-source, and available for multiple platforms, including **Linux, Windows, and Android**. + +### Harmonoid: Intuitive User Experience With Material Design + +![harmonoid player][2] + +Harmonoid is written in Dart programming language. It utilizes [libmpv][3] and [mpv][4] for its media playback capabilities on desktop platforms. + +It provides an excellent user interface to work with. And does not use electron.js. So, if you hate Electron, this is something you can try. + +Usually, you see apps feature material design UI on Android. If you did not know, Material is Google’s open-source design system. + +![harmonoid player info][5] + +Not a lot of creators use it for desktop applications. For a change, Harmonoid features a material design user experience that can be snappy and intuitive simultaneously. + +This lets Harmonoid present a unique user experience to Linux users. The animations feel smooth and easy to navigate and offer plenty of valuable features to help manage your music library. + +![harmonoid url][6] + +If you want a music player with a good UI and feature set, I recommend trying Harmonoid. + +**Recommended Read**: [Best Music Players for Linux Users][1] + +### Features of Harmonoid + +![harmonoid player options][7] + +[Harmonoid][8] may look like a simple music player, but it comes packed with some of the most valuable features. They include: + +- **Sing along feature where it finds lyrics, or you can manually add them** +- **Edit song details, including artist, year, genre, track number, album, and title** +- Easy sorting and ordering of your music list +- A quick search feature to find what you are looking for +- Caches metadata to offer a fast experience every time you load it +- Good integration support with Windows and Linux +- Discord rich presence support to show your music along with artwork and play buttons +- Adjust the speed, volume, and pitch of the music +- Raw metadata reader to read tags of any file or song in your library +- Playback is powered by MPV +- .LRC file compatibility +- **Online URL (YouTube) and radio stream supported** +- Cross-platform +- Multiple artist support +- Dark/light mode + +In addition to these, several subtle abilities go a long way, like **gapless playback and context menu integration, and it is a lightweight application** in general. + +Harmonoid should fit perfectly for users who want to play music or want to organize their collection simultaneously. I would say that it offers the best of both worlds. + +![harmonoid settings][9] + +### Install Harmonoid on Linux + +You can grab the **.deb/.rpm** package from its [download page][10] and install it on Ubuntu-based distros or Fedora. + +Additionally, you need to install mpv and libmpv using the following command (for Ubuntu): + +``` +sudo apt install mpv lipmpv-dev +``` + +Ensuring to install these packages will let you handle all kinds of files for playback with Harmonoid. + +You can also find Harmonoid on [AUR][11] for Arch-based distributions. To explore more about the player, head to its [GitHub page][12] and the [official website][8]. + +_Have you tried Harmonoid to play and organize music on your Linux system? What’s your favorite music player for Linux? Let me know your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/harmonoid/ + +作者:[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/best-music-players-linux/ +[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png +[3]: https://github.com/mpv-player/mpv/tree/master/libmpv +[4]: https://mpv.io +[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png +[8]: https://harmonoid.com +[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png +[10]: https://harmonoid.com/downloads +[11]: https://aur.archlinux.org/packages/harmonoid-bin +[12]: https://github.com/harmonoid/harmonoid From 7d595ec1cd2e42388646a032e5cf47c8bbbfb4af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 16 Dec 2022 23:24:04 +0800 Subject: [PATCH 2369/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221216.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20reasons=20to=20love=20Linux=20GNOME=20Files.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ 5 reasons to love Linux GNOME Files.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md diff --git a/sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md b/sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md new file mode 100644 index 0000000000..fda0ea984f --- /dev/null +++ b/sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md @@ -0,0 +1,96 @@ +[#]: subject: "5 reasons to love Linux GNOME Files" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-gnome" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 reasons to love Linux GNOME Files +====== + +The GNOME desktop is a common default desktop for most Linux distributions and, as with most operating systems, you manage your data on GNOME with software called a file manager. GNOME promotes a simple and clear naming scheme for its applications, and so its file manager is called, simply, Files. Its intuitive interface is simple enough that you forget what operating system you're using altogether. You're just using a computer, managing files in the most obvious way. GNOME Files is a shining example of thoughtful, human-centric design, and it's an integral part of modern computing. These are my top five favorite things about GNOME Files, and why I love using it. + +### 1. Intuitive design + +![THe GNOME Files file manager is an intuitive and friendly application.][1] + +As long as you've managed files on a computer before, you basically already know how to use GNOME Files. Sure, everybody loves innovation, and everybody loves seeing new ideas that make the computer world a little more exciting. However, there's a time and a place for everything, and frankly sometimes the familiar just feels better. Good file management is like breathing. It's something you do without thinking about what you're doing. When it becomes difficult for any reason, it's disruptive and uncomfortable. + +GNOME Files doesn't have any surprises in store for you, at least not the kind that make you stop what you thought you were doing in order to recalculate and start again. And my favorite aspect of the "do it the way you think you should do it" design of GNOME Files is that there isn't only one way to accomplish a task. One thing I've learned from teaching people how to do things on computers is that everyone seems to have a slightly different workflow for even the simplest of tasks, so it's a relief that GNOME Files accounts for that. + +When you need to move a file, do you open a second window so you can drag and drop between the two? Or do you right-click and Cut the file and then navigate to the destination and Paste the file? Or do you drag the file onto a button or folder icon, blazing a trail through directories as they open for you? In GNOME Files, the "standard" assumptions usually apply (insofar as there are standard assumptions.) + +### 2. Space saver + +If you manage a lot of files for a lot of the time you're at your computer, you're probably familiar with just how much screen real estate a file manager can take up. Many file managers have lots of buttons across several toolbars, a menu bar, and a status bar, such that just one file manager window takes up a good portion of your screen. To make matters worse, many users prefer to open several folders, each in its own window, which takes even more space. + +GNOME Files tends to optimize space. What takes up three separate toolbars in other file managers is in a single toolbar in GNOME Files, and that toolbar is what would traditionally be the window title bar. In the top bar, there's a forward and back button, file path information, a view settings button, and a drop-down menu with access to common functions. + +![The GNOME Files toolbar has just the essential buttons, and in a compact space.][2] + +### 3. Other locations + +Not all operating systems or file managers make it so you can interact with your network as naturally as you can interact with your own computer. Linux has a long tradition of viewing the network as just another computer, and in fact, the name "GNOME" was an acronym for "GNU Network Object Model Environment." + +In GNOME Files, it's trivial to open a folder on a computer you're not sitting in front of. Whether it's a server in a data center or just your office desktop while you're relaxing in your lounge with a laptop, the **Other Locations** bookmark in the GNOME Files side panel allows you to access files as if they were on your hard drive. + +![It's easy to connect to remote systems through GNOME Files.][3] + +To use it, you enter the file sharing protocol you want to use, along with the username and IP address of the computer you want to access. The `ssh://` protocol is most common between Linux or Unix machines, while `smb://` is useful for an environment with [Windows machines][4], and `dav://` is useful for applications running on the Internet. Assuming the target computer is accessible over the protocol you're using, and that its [firewall is set correctly][5] to permit you to pass through it, you can interact with a remote system as naturally as though they were on your local machine. + +### 4. Preferences + +Most file managers have configuration options, and to be fair GNOME Files actually doesn't give you very many choices compared to others. However, the options that it does offer are, like the modes of working it offers its users, the "standard" ones. I'm misusing the word "standard" intentionally: There is no standard, and what feels standard to one person is niche to someone else. But if you like what you're experiencing with GNOME Files under normal circumstances, and you feel that you're its intended audience, then the configuration options it offers are in line with the experience it promotes. For example: + +- Sort folders before files +- Expand folders in _list view_ +- Show the **Create link** option in the contextual menu +- Show the **Delete Permanently** option in the contextual menu +- Adjust visible information beneath a filename in _icon view_ + +That's nearly all the options you're given, and in a way it's surface-level choices. But that's GNOME Files. If you want something with more options, there are several very good alternatives that may better fit your style of work. If you're looking for a file manager that just covers the most common use cases, then try GNOME Files. + +### 5. It's full of stars + +I love the concept of metadata, and I generally hate the way it's _not_ implemented. Metadata has the potential to be hugely useful in a pragmatic way, but it's usually relegated to specialized metadata editing applications, hidden from view and out of reach. GNOME Files humbly contributes to improving this situation with one simple feature: The gold star. + +In GNOME Files, you can star any file or folder. It's a bit of metadata so simple that it's almost silly to call it metadata, but in my experience, it makes a world of difference. Instead of desperately running [find][6] command to filter files by recent changes, or re-sorting a folder by modification time, or using [grep][7] to find that one string I just know is in an important file, I can star the files that are important to me. + +Making plans for the zombie apocalypse all day? Star it so you can find it tomorrow when you resume your important work. After it's over and the brain-eaters have been dealt with, un-star the folder and resume normal operation. It's simple. Maybe too simple for some. But I'm a heavy star-user, and it saves me several methods of searching and instead reduces "what was I working on?" to the click of a single button. + +### Install GNOME Files + +If you've downloaded a mainstream Linux distribution, then chances are good that you already have GNOME and GNOME Files installed. However, not all distributions default to GNOME, and even those that do often have different desktops available for download. The development name of GNOME Files is `nautilus`, so to find out whether you have GNOME Files installed, open a terminal and type `nautilus &` and then press **Return**. If you see this error, you don't have GNOME Files available: + +``` +bash: nautilus: command not found... +``` + +To install GNOME Files, you must install the GNOME desktop. If you're happy with your current desktop, though, that's probably not what you want to do. Instead, consider trying [PCManFM][8] or [Thunar][9]. + +If you're interested in GNOME, though, this is a great reason to try it. You can probably install GNOME from your distribution's repository or software center. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-gnome + +作者:[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/2022-10/gnome-files.webp +[2]: https://opensource.com/sites/default/files/2022-10/gnome-files-toolbar.webp +[3]: https://opensource.com/sites/default/files/2022-10/gnome-files-connect.webp +[4]: https://opensource.com/article/21/4/share-files-linux-windows +[5]: https://www.redhat.com/sysadmin/secure-linux-network-firewall-cmd +[6]: https://opensource.com/article/21/9/linux-find-command +[7]: https://www.redhat.com/sysadmin/how-to-use-grep +[8]: http://linnk-to-pcmanfm-article +[9]: http://link-to-article From 8845ceb9c345aa23eb5ecddb345c10aa44b0ab84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Fri, 16 Dec 2022 23:24:28 +0800 Subject: [PATCH 2370/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221216.3=20=E2=AD=90=EF=B8=8F=20Better=20Late=20Th?= =?UTF-8?q?an=20Never!=20GNOME's=20File=20Picker=20Adds=20Thumbnail=20View?= =?UTF-8?q?=20After=2018=20Years.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e Picker Adds Thumbnail View After 18 Years.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md diff --git a/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md new file mode 100644 index 0000000000..2917f3aed7 --- /dev/null +++ b/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md @@ -0,0 +1,94 @@ +[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years" +[#]: via: "https://news.itsfoss.com/gnome-file-picker/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years +====== + +A long-lost request, and a much-needed one, finally made its way through! + +![Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years][1] + +Nowadays, the user interface of a program is extremely important; even the simplest of interactions can make or break the user's experience. + +The GNOME file picker lacked a proper thumbnail preview for viewing files, instead relying on a plain list view. This may have been unintuitive for many. + +The lack of this feature was also the topic of many memes and debates over the years. + +But now, finally, after 18 long years since the original [feature request][2] was put out, GNOME is set to receive support for a proper thumbnail view. + +Let's look at this upcoming change to GNOME's file picker. + +#### Recommended Read 📖 + +### Feature to Arrive With GNOME 44 + +![gnome file thumbnail view][3] + +As demonstrated by this early build screenshot provided by GNOME developer [Matthias Clasen][4]. The file picker on GNOME is going to feature a thumbnail view. + +This is how it looks like with GNOME 43 on board: + +![file picker with gnome 43][5] + +**How to access it?:** It is a grid view for the file picker on GNOME that shows the thumbnail previews of files and folders. + +It will now be easy to differentiate items in the file manager; no more opening a file to see what it contains! + +![gnome file thumbnail view selector][6] + +When this feature arrives, you can enable it by clicking on the new view toggle button at the top right. + +**What Changed?:** 18 years for a simple feature addition is a long time. Numerous technical reasons made the implementation of this an arduous task. + +But I am glad that it is finally here. 😃 + +One of the reasons that made this possible was the recent deprecations and modernization work carried out in the GTK code base. + +> 💡 GTK is the toolkit that is at the core of all things GNOME. + +And, those changes resulted in [GtkListView][7] and [GtkGridView][8] using the same data models to make this feature work. + +**When to expect?:** The historical [merge request][9] has already been accepted and is paving the way for its introduction to GNOME. + +You can expect this to arrive with GNOME 44 sometime in 2023. + +I'm looking forward to that! 😁 + +We would be covering it as part of GNOME 44's feature offerings. So, stay tuned to our coverage for that! + +_Don't forget to follow us on [Mastodon][10] and [Twitter][11]! Feel free to share your thoughts on this in the comments below._ + +Notion – One workspace. Every team.We’re more than a doc. Or a table. Customize Notion to work the way you do.![][12]Notion![][13] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-file-picker/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png +[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154 +[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png +[4]: https://twitter.com/matthias_clasen +[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png +[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png +[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c +[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c +[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163 +[10]: https://mastodon.social/@itsfoss +[11]: https://twitter.com/itsfoss2 +[12]: https://notion.grsm.io/front-static/logo-ios.png +[13]: https://www.notion.so/front-static/meta/default.png From 3b78945d148766da42f1a372e3fc1c64675f50e7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 00:06:32 +0800 Subject: [PATCH 2371/3123] ALL @wxy https://linux.cn/article-15355-1.html --- ... ⭐️ XFCE 4.18 Release Looks Impressive!.md | 138 ++++++++++++++++++ ... ⭐️ XFCE 4.18 Release Looks Impressive!.md | 138 ------------------ 2 files changed, 138 insertions(+), 138 deletions(-) create mode 100644 published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md delete mode 100644 sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md diff --git a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md new file mode 100644 index 0000000000..5519a26495 --- /dev/null +++ b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md @@ -0,0 +1,138 @@ +[#]: subject: "XFCE 4.18 Release Looks Impressive!" +[#]: via: "https://news.itsfoss.com/xfce-4-18-release/" +[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15355-1.html" + +Xfce 4.18 版本发布:令人印象深刻 +====== + +> Xfce 4.18 已发布,添加了一些有趣的功能和细微的变化。 + +![Xfce 4.18 版本看起来令人印象深刻!][1] + +Xfce 是目前最好的桌面环境之一。它因其简单性而受欢迎,是一个轻量级的选择。 + +不像其他桌面环境,你不会看到 Xfce 定期的添加功能。所以,等待升级总是令人兴奋的。 + +Xfce 4.18 是最新的版本,它增加了一些有用的功能和其他技术改进。让我重点介绍一下。 + +### Xfce 4.18 的新变化 + +![Xfce 4.18 有新的默认墙纸][2] + +虽然这不是一个完整的变化列表,但其中一些比较明显的变化包括: + +- 文件管理器的改进。 +- 桌面和面板的变化。 +- 更多的设置。 +- 新的墙纸。 + +#### 文件管理器的改进 + +![Xfce 4.18 文件管理器的分割视图][3] + +Xfce 的默认文件管理器 Thunar 在这个版本中得到了相当多的改变。作为许多 Linux 用户的最爱,Thunar 有一个干净直观的用户界面,使其对不同技能水平的人都很简单易用。 + +在这个版本中,这个有用的工具获得了几个新功能。比如说: + +- 工具条上新的搜索图标使用户能够快速搜索文件和文件夹。 +- 你现在可以添加一个分割视图。 +- 启用独立的图像预览。 + +还有一个有趣的新增功能,可以帮助你**高亮文件**,以便快速发现它们。你可以设置一个前景和背景颜色,如果你不想要这个功能,也可以重置。 + +![xfce 4.18 文件高亮][4] + +你可以从文件的属性选项中访问这个功能。 + +Thunar 文件管理器还增加了一些其他功能,包括: + +- 一个用于定制键盘快捷键的新标签。 +- 新的书签菜单。 + +#### 精致的设置和桌面变化 + +Xfce 桌面的大部分都保持不变。你不应该期待开箱后有不同的用户体验。 + +虽然没有重大的视觉改造,但有细微的完善和功能改进。 + +例如,你可以发现日历小部件的新能力。显示设置提供了更多选项,即使你没有连接多个显示器。 + +Xfce 面板也有一些变化。 + +![Xfce 4.18 面板设置][5] + +这些变化包括用像素而不是百分比来调整高度,以及一个新的 “保持面板在窗口上方” 选项。这使得窗口可以在面板下面延伸,而不是在顶部被切断。 + +更不用说,时钟小程序现在可以自定义其字体类、字体大小和布局。 + +![Xfce 4.18 时钟][6] + +#### 新壁纸 + +当然,我们也得到了一些新的壁纸;你已经在本文的开头看到了新的默认壁纸。 + +![Xfce 4.18 新壁纸集][7] + +如果你很好奇,你可以看看其他为 [墙纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。 + +![Xfce 4.18 新壁纸集锦][9] + +这些是计划添加到背景集的其它候选作品。 + +#### 其他变化 + +除了之前提到的那些,这个版本还引入了一些其他变化。 + +- 初步的 Wayland 支持,它允许 Xfce 在 Wayland 显示服务器上运行。 +- GTK4 的更新,提供了更好的性能和稳定性。 +- 一些核心应用程序的小更新,包括对 Xfdesktop、Xfwm4 和 Xfce4-panel 应用程序的改进。 + +关于完整的变化列表,你可以参考 [官方博客文章][10]。 + +### 获得 Xfce 4.18 + +你可以通过软件库为滚动发布的发行版(如 Arch Linux)安装它。对于其他发行版,如果你不想自己做实验,你可能必须等待官方的更新。 + +要想快速尝试,你可以安装 Xubuntu 23.04 日常构建版来获得这些功能。 + +如果你使用的是其他为了稳定起见而不提供快速桌面环境更新的 Linux 发行版,如果你知道自己在做什么,你可以尝试手动安装。 + +> **[下载 Xfce 4.18][11]** + +### 总结 + +Xfce 4.18 是 Xfce 桌面环境的一次重大更新,有许多新的功能和改进。 + +Thunar 文件管理器的更新尤其值得注意,因为它们为用户提供了更多的控制和定制选项。初步的 Wayland 支持和 GTK4 更新将提高性能和稳定性。 + +总的来说,Xfce 4.18是一个受欢迎的更新,将改善 Xfce 用户的用户体验。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/xfce-4-18-release/ + +作者:[Jacob Crume][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/jacob/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png +[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg +[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg +[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg +[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg +[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg +[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg +[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300 +[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg +[10]: https://alexxcons.github.io/blogpost_8.html +[11]: https://www.xfce.org/ diff --git a/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md deleted file mode 100644 index 0fa893a4df..0000000000 --- a/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md +++ /dev/null @@ -1,138 +0,0 @@ -[#]: subject: "XFCE 4.18 Release Looks Impressive!" -[#]: via: "https://news.itsfoss.com/xfce-4-18-release/" -[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -XFCE 4.18 Release Looks Impressive! -====== - -Xfce 4.18 is here with interesting feature additions and subtle changes. - -![XFCE 4.18 Release Looks Impressive!][1] - -Xfce is one of the best desktop environments out there. It is popular for its simplicity and is a lightweight option. - -Unlike other desktop environments, you do not see regular feature additions to Xfce. So, it is always exciting to wait for an upgrade. - -Xfce 4.18 is the latest release with some useful feature additions and other technical improvements. Let me highlight the same. - -### Xfce 4.18: What's New? - -![Xfce 4.18 with its new default wallpaper][2] - -Although this is not a complete list of changes, some of the more noticeable ones include: - -- **File manager improvements** -- **Desktop and panel changes** -- **More settings for you to tinker with** -- **New Wallpapers** - -#### File Manager Improvements - -![Xfce 4.18 file manager with split view][3] - -Thunar, the default file manager for XFCE, has received quite a few changes with this release. A favorite of many Linux users, Thunar has a clean and intuitive user interface, making it easy for people of all skill levels. - -With this release, this useful tool has received several new features. For instance: - -- **The new search icon in the toolbar allows users to search for files and folders quickly** -- **You can now add a split view** -- **Enable a standalone image preview** - -There's also an interesting addition that helps you **highlight files** to quickly spot them. You can set a foreground and background color, and reset it if you want it gone. - -![xfce 4.18 file highlight][4] - -You can access this feature from the properties option of a file. - -There are a few other additions to Thunar file manager, including: - -- **A new tab for customizing keyboard shortcuts** -- **New bookmark menu** - -#### Refined Settings and Desktop Changes - -Xfce desktop remains much of the same. You should not expect a different user experience out of the box. - -There are no major visual overhauls but subtle refinements and feature improvements. - -For instance, you can find new abilities with the calendar widget. Display settings offer more options even if you do not have multiple displays connected. - -XFCE panel got some changes as well. - -![xfce 4.18 panel settings][5] - -These include adjusting the height in terms of pixels instead of percentages and a new "**keep panel above windows**" option. This allows windows to extend underneath the panel instead of being cut off at the top. - -Not to mention, the clock applet can now have its font family, font size, and layout customized. - -![xfce 4.18 clock][6] - -#### New Wallpapers - -Of course, we also get some new wallpapers; you've already seen the new default at the beginning of this article. - -![xfce 4.18 new wallpaper collection][7] - -If you are curious, you can check out various other submissions for the [wallpaper contest][8]. Maybe you will find something that others didn't like. - -![xfce 4.18 new wallpaper collection][9] - -These are the second and third-best choices planned to be added to the background collection. - -#### Other Changes - -Alongside those previously mentioned, a few more changes are also introduced with this release. - -- **Initial Wayland support, which allows Xfce to run on the Wayland display server.** -- **GTK4 updates, which provide improved performance and stability.** -- **A few minor updates to some core apps, including improvements to the Xfdesktop, Xfwm4, and Xfce4-panel applications.** - -For a complete list of changes, you can refer to the [official blog post][10]. - -### Getting XFCE 4.18 - -You can install it for rolling-release distributions like Arch Linux through the repositories. For other distributions, you may have to wait for an official update if you do not want to experiment with things yourself. - -For a quick try, you can install Xubuntu 23.04 daily builds to get your hands on the features. - -If you are using any other Linux distributions that do not provide quick desktop environment updates for stability purposes, you can try installing it manually if you know what you are doing. - -[Download Xfce 4.18][11] - -### Final Thoughts - -Xfce 4.18 is a significant update to the Xfce desktop environment, with many new features and improvements. - -The updates to the Thunar file manager are particularly noteworthy, as they provide users with more control and customization options. The initial Wayland support and GTK4 updates will improve performance and stability. - -Overall, Xfce 4.18 is a welcome update that will improve the user experience for Xfce users. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/xfce-4-18-release/ - -作者:[Jacob Crume][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/jacob/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png -[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg -[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg -[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg -[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg -[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg -[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg -[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300 -[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg -[10]: https://alexxcons.github.io/blogpost_8.html -[11]: https://www.xfce.org/ From c2d083e5875d489df09c9f7eabc95ac5b2befe01 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 00:10:58 +0800 Subject: [PATCH 2372/3123] R --- .../20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md index 5519a26495..73a9c460db 100644 --- a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md +++ b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md @@ -22,14 +22,14 @@ Xfce 4.18 是最新的版本,它增加了一些有用的功能和其他技术 ### Xfce 4.18 的新变化 -![Xfce 4.18 有新的默认墙纸][2] +![Xfce 4.18 有新的默认壁纸][2] 虽然这不是一个完整的变化列表,但其中一些比较明显的变化包括: - 文件管理器的改进。 - 桌面和面板的变化。 - 更多的设置。 -- 新的墙纸。 +- 新的壁纸。 #### 文件管理器的改进 @@ -78,7 +78,7 @@ Xfce 面板也有一些变化。 ![Xfce 4.18 新壁纸集][7] -如果你很好奇,你可以看看其他为 [墙纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。 +如果你很好奇,你可以看看其他为 [壁纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。 ![Xfce 4.18 新壁纸集锦][9] From 85004fc10c7d4bff4c8d3623f8eb7ebed161f7b9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 10:07:45 +0800 Subject: [PATCH 2373/3123] =?UTF-8?q?=20=E8=B6=85=E6=9C=9F=E5=9B=9E?= =?UTF-8?q?=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index 29e1dbb48d..2858b33b75 100644 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: "MjSeven" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e3e99c1b25edbe51a7e0e6114597b2d6f42ea8fe Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 10:10:00 +0800 Subject: [PATCH 2374/3123] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...acy-Preserving Ads Make a Debut on Brave Search.md | 96 ---------------- ...nux Mint 21.1 beta is now available for testing.md | 90 --------------- ...le Open-Source Alternative to Slack and Discord.md | 99 ---------------- ...icon GPU Driver is Now Available in Asahi Linux.md | 91 --------------- ...n Gets a Boost With Vivaldi Browser Integration.md | 90 --------------- ...2.4 is out with 100+ improvements and fixes.md | 69 ------------ ...ade your video creation with Kdenlive 22.12.md | 88 --------------- ...sic on the web with new WebMIDI API support.md | 73 ------------ ...live 22.12 Release Adds Useful New Features.md | 106 ------------------ 9 files changed, 802 deletions(-) delete mode 100644 sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md delete mode 100644 sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md delete mode 100644 sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md delete mode 100644 sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md delete mode 100644 sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md delete mode 100644 sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md delete mode 100644 sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md delete mode 100644 sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md delete mode 100644 sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md diff --git a/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md b/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md deleted file mode 100644 index 2d0561c3c3..0000000000 --- a/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Privacy-Preserving Ads Make a Debut on Brave Search" -[#]: via: "https://news.itsfoss.com/brave-search-ads/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Privacy-Preserving Ads Make a Debut on Brave Search -====== - -Brave Search is testing privacy-preserving ads. But, the Brave browser does not seem to block them by default. - -![Privacy-Preserving Ads Make a Debut on Brave Search][1] - -Brave Search is an independent search engine that claims not to track its users and provides a safe and secure search experience. - -It aims to be a privacy-friendly alternative to the extensive tech services from Microsoft and Google. - -With a [recent announcement][2], they introduced a new feature to Brave Search. The search will now show '_privacy-preserving_' ads as part of a global beta program. - -What does this mean? Allow me to explain. - -### Privacy-Preserving Ads: Meaning? - -![brave search privacy preserving ads][3] - -Brave is planning to run ads on their search platform; they claim that these ads are anonymous, are marked, and follow its commitment of putting users first. - -These ads are said to be clearly labeled and are integrated into Brave Search. - -To display relevant advertisements, Brave Search will only use your **search query, country, and device type**. - -So, in theory, this should stop them from keeping a profile of your searches. - -They also add that: - -> Brave Search ads protect users’ data and anonymity, while supporting their access to independent and transparent search as a true alternative to Big Tech search engines. - -This has been released as a beta test globally, where Brave Search users will be shown text-based ads in search results. - -Users who opted for Brave Private Ads (for _Brave Rewards_) and are using the latest version of Brave won't be shown search ads since these are not yet eligible for BAT earnings. - -Additionally, they offer a '**Search Premium**' subscription for an ad-free search experience, which costs **$3 per month**. - -With this subscription, you get a completely ad-free search experience while also supporting Brave. - -### Is This a Step in the Right Direction? - -Even though Brave Search is based on an **open-source search project**[Tailcat][4], they have no plans to make it open-source. - -So, Brave Search already has a red flag 🚩 for many privacy enthusiasts who prefer open-source solutions for their transparency. - -**Will privacy-preserving ads make a difference, just like Brave Search's original claims for its search engine?** - -Well, I certainly hope so. Why? **Because we need more competitors to Google**. And something is better than nothing. - -Even without open-source code, we will have to sit back and see what kind of transparency they provide in their advertisement testing soon. - -Though, the implementation of Brave's privacy-preserving ads has got a few users upset. - -A [comment][5] made by a Reddit user on the official Subreddit of Brave Browser mentions: - -> Putting in an exception for your own ads is in exceptionally bad taste. All the marketing fluff around "independent, private search" is not an excuse. - -Brave Browser seems to be **not blocking Brave search ads** with its in-built ad-blocker (Brave Shields). - -On that, a member of the Brave support team clarified: - -> Shields at this time does not block 1st part, non tracking ads by default anyway (with the exception of setting to Aggressive, I believe) so it's actually just following the standard we've already set. - -So, you can block the Brave search ads with the privacy protection settings set to aggressive, I believe? - -However, not everyone prefers the aggressive blocker. So, let us see how things turn out for Brave search ad experimentation. - -💭 **Thoughts? Feel free to share them in the comments section.** - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/brave-search-ads/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/brave-privacy-preserving-ads.png -[2]: https://brave.com/private-search-ads/ -[3]: https://news.itsfoss.com/content/images/2022/12/Brave_Search_Ads.jpg -[4]: https://www.tailcat.com -[5]: https://www.reddit.com/r/brave_browser/comments/z9t171/comment/iyjledp/?utm_source=share&utm_medium=web2x&context=3 diff --git a/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md b/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md deleted file mode 100644 index 871161bbc8..0000000000 --- a/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "Linux Mint 21.1 beta is now available for testing" -[#]: via: "https://debugpointnews.com/linux-mint-21-1-beta/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Mint 21.1 beta is now available for testing -====== - -![][1] - -**Check out the new features of Linux Mint 21.1 beta, which is now slowly available for download in mirrors. The official announcement is awaited.** - -![Linux Mint 21.1 beta Cinnamon desktop][2] - -Linux Mint 21.1 is the first point release of the 21 series and will be released before Christmas this year. Codenamed “Vera”, which was [announced a few weeks back][3], is now available for beta testing. - -The beta testing is expected to continue for at least a week before the final release. Since it is the first point, the feature list is not at that higher end. But some significant updates are arriving in the final release. - -### Linux Mint 21.1 beta & new features - -One of the biggest updates to the Driver Manager in this release is the ability to run the app with your user account without requiring a password to launch it. This is a major convenience, as it means you don’t have to enter a password every time you want to use the Driver Manager. In addition, when you remove a driver, the app now purges it from the system completely, ensuring that no trace of the driver remains on your computer. - -Another key update to the Driver Manager is the ability to detect USB installation media and help you mount them. This is particularly useful if you’re installing software or drivers from a USB drive, as it makes the process much easier and more streamlined. - -In addition to these updates, the Mint team has also included a feature for verifying the checksum of ISO files. This is an important part of any installation process, as it ensures that your ISO file is legitimate and hasn’t been tampered with. While other [utilities][4] are available for verifying ISO checksums, including command line tools, it’s nice to see this feature included in the default desktop environment. - -Another change in this release is the default desktop view, which is expected to be updated. The default icons for the Computer, Home, Trash, and Network are now hidden from view, as the Computer icon is already included in the Panel, and the other icons are not used as frequently. - -Other noteworthy updates in this release include the inclusion of Timeshift backports for prior releases (such as Mint 20.x) and an updated version of Blueman. Overall, this is a solid point release that includes several useful updates and bug fixes. - -![New default icon set and bibata cursor][5] - -Finally, you may notice the “green” icon sets and the cursor is different in the Cinnamon flavour. Linux Mint 21.1 brings the “Mint-y-Aqua” theme and the stunning “Bibata-modern” cursor theme to pair with it. Both of them look awesome together, giving a much-needed fresh vibe. - -### Summary of changes - -- First point release of Linux Mint 21, based on Ubuntu 22.04.1 release -- Linux Kernel 5.15 LTS -- Cinnamon 5.6.4 desktop -- Xfce 4.16 desktop -- MATE 1.26 desktop -- Friendly driver manager -- Cleaner default desktop view with fewer icons -- Default theme changes to “Mint-Y-Aqua” from the green-based icons -- New cursor theme: Bibata (one of the best cursor theme in Linux) -- A bunch of stunning wallpapers -- And an array of bug fixes - -### Download and bug reporting for beta - -While the team is preparing for the official announcement, the ISO images are slowly becoming available to the public. As always, being a beta release, it may have bugs. So use it with caution. - -If you are running Linux Mint 21.0, don’t upgrade it yet. Wait for the final release. - -Still, if you want to try it on a virtual machine, download the Cinnamon, Xfce and MATE flavours of this beta release from the torrent links below. - -- [linuxmint-21.1-cinnamon-64bit-beta.iso.torrent][6] -- [linuxmint-21.1-mate-64bit-beta.iso.torrent][7] -- [linuxmint-21.1-xfce-64bit-beta.iso.torrent][8] - -I will update the changelog here once it is available. And finally, report any issues or bugs at the dedicated [21.1 beta bug tracking page][9]. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/linux-mint-21-1-beta/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/21-1-beta-head.jpg -[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Linux-Mint-21.1-beta-Cinnamon-desktop.jpg -[3]: https://debugpointnews.com/linux-mint-21-1-announcement/ -[4]: https://www.debugpoint.com/collision/ -[5]: https://debugpointnews.com/wp-content/uploads/2022/12/New-default-icon-set-and-bibata-cursor.jpg -[6]: https://linuxmint.com/torrents/linuxmint-21.1-cinnamon-64bit-beta.iso.torrent -[7]: https://linuxmint.com/torrents/linuxmint-21.1-mate-64bit-beta.iso.torrent -[8]: https://linuxmint.com/torrents/linuxmint-21.1-xfce-64bit-beta.iso.torrent -[9]: https://github.com/linuxmint/mint21.1-beta/issues diff --git a/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md b/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md deleted file mode 100644 index e0478f7f27..0000000000 --- a/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: "Linen is a Google-Searchable Open-Source Alternative to Slack and Discord" -[#]: via: "https://news.itsfoss.com/linen/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linen is a Google-Searchable Open-Source Alternative to Slack and Discord -====== - -An interesting open-source alternative to Slack and Discord. - -![Linen is a Google-Searchable Open-Source Alternative to Slack and Discord][1] - -Linen is an interesting open-source project brewing up. - -It aims to be an **open alternative to Slack and Discord**, focusing on making communities more accessible and helping reduce the support burden. - -It could be worth adding it as an open-source Slack alternative, but it is in its **early stages of development** when publishing this. - -**_What's different with Linen, exactly?_** - -- **Open Source** -- **Unlimited history retention** -- **Communities are Google searchable** -- **Supports sync from Slack and Discord** -- **Eliminate the need to join Slack/Discord for information** - -### Community-Focused Slack Alternative - -[Linen][2] pitches itself as an open-source app for communities rather than primarily targeting teams for collaboration/communication. - -![linen ui][3] - -In contrast, Slack is primarily for team discussions and collaboration. You cannot share the conversation through a URL or find the discussions indexed on search engines like Google. - -But with Linen, you can **find a URL for every conversation** that can be shared with anyone to view/join the conversation. - -![linen message url][4] - -Here's something for the test: [https://linen.dev/s/itsfoss/t/5099789/topic][5] - -**You can also find this conversation listed on Google** (it may take time to find it exactly). - -For example, suppose we are a community of an open-source project where we discuss an issue or a solution; listing it on Google enables more users to find out about it. - -Here's an example of a conversation listed on Google that could help me if I was exploring solutions to fix my code issues with Kotlin: - -![linen google search][6] - -As a developer/user, I could view the conversation, get my answer, and move on without troubling anyone else in the community with a repeat question. - -**Sounds lovely, right? Linen helps you enhance community support.** - -Sure, you can use it for your team communication as well. But, it is a more appropriate solution to create an open community chat network. - -Currently, it does not provide the feature to create a private community for the public. They only use it for internal team discussions, per their [GitHub page][7]. - -![][8] - -### How To Get Started? - -Linen does not support self-hosting at the moment. But, their roadmap on [GitHub][9] indicates that it has been planned for the near future. - -So, you can [sign up for a free account][10] using the official cloud instance or opt for the business/premium edition to use custom domain/branding benefits for your team. - -You can **import your Slack/Discord conversations for free**. - -> 💡 The free community edition is hosted under Linen.dev where you rely on community support. Opt for its premium edition to get priority support. - -Linen may not be for everyone, but it sounds like a useful idea for many communities and teams. - -_💬 What do you think about it? Let me know in the comments below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linen/ - -作者:[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/content/images/size/w2000/2022/11/linen-slack-discord-alternative.png -[2]: https://www.linen.dev -[3]: https://news.itsfoss.com/content/images/2022/11/linen-example.png -[4]: https://news.itsfoss.com/content/images/2022/11/linen-conversation-url.png -[5]: https://linen.dev/s/itsfoss/t/5099789/topic -[6]: https://news.itsfoss.com/content/images/2022/11/linen-google-seo.png -[7]: https://github.com/linen-dev/linen.dev -[8]: https://news.itsfoss.com/content/images/2022/11/linen-settings.png -[9]: https://github.com/Linen-dev/linen.dev -[10]: https://www.linen.dev/signup diff --git a/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md b/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md deleted file mode 100644 index 8e115ba0d8..0000000000 --- a/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "Apple Silicon GPU Driver is Now Available in Asahi Linux" -[#]: via: "https://news.itsfoss.com/apple-gpu-driver-asahi-linux/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Apple Silicon GPU Driver is Now Available in Asahi Linux -====== - -We finally have a GPU driver for Apple M silicon systems on Asahi Linux. - -![Apple Silicon GPU Driver is Now Available in Asahi Linux][1] - -Asahi Linux aims to be a port of Linux for Apple Silicon Macs; work started on it back in 2020, right after the launch of Apple's M1 chips at the WWDC event. - -A small team is behind all the development behind Asahi Linux and reverse engineering stuff; they have been quite busy since the last time we looked at their work. - -Previously, they worked on improving support for Apple SoCs such as the M1, M1 Pro, and M1 Max. They provided varying levels of support for devices that used these chips. - -It still is a work in progress, but promising results in 2022. - -They have now taken it further by providing initial support for Apple Silicon GPUs by releasing drivers (in _alpha_). - -That sounds great! 😃 - -Let me take you through the gist of it. - -### Hardware Acceleration With Desktop Environments and Old Games - -![asahi linux running quake3][2] - -Introduced as an alpha-stage GPU driver, it can run desktop environments and a few games smoothly. - -**The implementation:** The driver features a work-in-progress implementation of OpenGL 2.1 and OpenGL ES 2.0 for current Apple M-series systems. - -They also mention that: - -> These drivers have not yet passed the OpenGL (ES) conformance tests. There will be bugs! - -So, you can expect plenty of hiccups along the way should you choose to run applications using these drivers. - -**How it works now?:** In its current form, the driver can run desktop environments like GNOME and KDE Plasma with hardware acceleration. - -Even older games like [Quake3][3] and [Neverball][4] can run quite well, with these and the desktop environments running at a solid **60 fps at 4k resolution**. - -Many users may also notice that quite a few apps don't work with this driver right away. On that, the developers mention: - -> Since the driver is still in development, there are lots of known issues and we’re still working hard on improving conformance test results. Please don’t open new bugs for random apps not working! It’s still the early days and we know there’s a lot of work to do. - -**What does the future hold?:** The developers have said that while OpenGL (ES) 2 suffices for some applications, newer applications will require new features such as multiple render targets, multisampling, and transform feedback. - -All of this can be achieved with OpenGL (ES) 3, and work on that has already started. But, it will need a lot of developmental effort to get ready. - -They have also hinted at support for Vulkan in the future, although it is a long time in the making. - -Here's what they tell about it: - -> We’re working on it! Although we’re only shipping OpenGL right now, we’re designing with Vulkan in mind. Most of the work we’re putting toward OpenGL will be reused for Vulkan. We estimated that we could ship working OpenGL 2 drivers much sooner than a working Vulkan 1.0 driver, and we wanted to get hardware accelerated desktops into your hands as soon as possible. - -When a Reddit user [asked][5] about **120 Hz support for MacBook Pro**, one of the maintainers had this to say: - -> 120Hz is disabled because it still is capped at 60Hz if we do nothing and was having other weird issues. It's still unclear exactly how VRR works on macOS, we need to figure that out first. - -It seems like Asahi Linux has a lot of room to grow, and improvements like this to GPU drivers on a new Silicon system should finally open up new opportunities in terms of performance. - -Linux users have been asking for something like this for a long time, and it is now closer to becoming a reality than ever before. - -If you are feeling adventurous and want to try the new GPU driver, you can try installing it on your Asahi Linux system. Refer to the [official announcement][6] for instructions to experiment with it. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/apple-gpu-driver-asahi-linux/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/apple-gpu-asahi-linux.png -[2]: https://news.itsfoss.com/content/images/2022/12/AsahiLinux_Quake3.jpg -[3]: https://ioquake3.org -[4]: https://neverball.org -[5]: https://www.reddit.com/r/AsahiLinux/comments/zeucpz/comment/iza3wwv/?utm_source=share&utm_medium=web2x&context=3 -[6]: https://asahilinux.org/2022/12/gpu-drivers-now-in-asahi-linux/ diff --git a/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md b/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md deleted file mode 100644 index 63cc15a25f..0000000000 --- a/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: "Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration" -[#]: via: "https://news.itsfoss.com/vivaldi-mastodon-integration/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration -====== - -Vivaldi's making an effort to have more users join Mastodon with its new update. That's nice to see! - -![Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration][1] - -Vivaldi browser is one of the best web browsers for Linux (Windows, macOS, and mobile platforms). - -I know it is not an open-source pick, but it gets all the lead with its tab management, customizability, and productivity features. And it treats me better than Firefox nowadays (Mozilla, we still need you to do better)🙄 - -**Note:**_Vivaldi is **not open-source**. Most of it is based on Chromium, for which you can find the [source code][2]._ - -If you did not know, Vivaldi recently built a Mastodon instance (**Vivaldi Social**) to encourage people to use open-source and decentralized social media platforms. - -It is one of the best Mastodon instances you can join: - -To take this further, **Vivaldi 5.6 update** has integrated access to its Mastodon instance from within its web browser. - -> 🐘 Hey! We are on [Mastodon][3] for a while; follow **us if you haven't already**! 😄 - -### Access Mastodon From Web Panels - -Web panels on Vivaldi make it a breeze to multitask. You can keep browsing or working on what you want and still access additional services in a single click. - -Here's what it looks like: - -![mastodon on vivaldi][4] - -I can access Vivaldi's Mastodon instance quickly. - -Of course, you can add your custom web panel for any Mastodon instance you like. - -![vivaldi web panel addition][5] - -However, I believe out-of-the-box integration should encourage Vivaldi users to try Mastodon if they haven't yet. - -In the official announcement, Vivaldi also explains it properly for its users: - -> [Vivaldi Social][6] came into existence as we love the idea of distributed social networks based on open standards. We want to offer better alternatives to people to communicate in an algorithm-free environment with no surveillance capitalism, devoid of tracking or data profiling.The Mastodon server platform communicates through the [Activity Pub][7] standard, a decentralized social networking and messaging protocol recommended by the [World Wide Web Consortium (W3C)][8]. Any platform or application that implements ActivityPub becomes a part of a massive social network. This big social network is also called the [Fediverse][9] (“federated” + “universe”). - -Before anyone gets their pitchfork ready, I want Vivaldi to be 100% open-source, but we also want more companies in the mainstream to adopt and encourage the use of open-source tech. - -And I think Vivaldi has got an excellent approach to that. - -So, this integration should ultimately let every Vivaldi (or Linux user) use Mastodon more than often. - -In addition to this change, Vivaldi 5.6 release involves a couple of improvements that include: - -- A new search engine (You.com) -- Panels joining editable toolbars -- Revamped settings page -- Pin tab stacks (_this is exciting!_) - -You can update the browser to get the latest version or download Vivaldi 5.6 on its official website. - -[Download Vivaldi 5.6][10] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/vivaldi-mastodon-integration/ - -作者:[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/content/images/size/w2000/2022/12/mastodon-integration-in-vivaldi-browser-1.png -[2]: https://vivaldi.com/source/ -[3]: https://mastodon.social/web/@itsfoss -[4]: https://news.itsfoss.com/content/images/2022/12/mastodon-vivaldi.jpg -[5]: https://news.itsfoss.com/content/images/2022/12/add-custom-panel.jpg -[6]: https://vivaldi.com/blog/news/vivaldi-social-a-new-mastodon-instance/ -[7]: https://en.wikipedia.org/wiki/ActivityPub -[8]: https://www.w3.org/ -[9]: https://en.wikipedia.org/wiki/Fediverse -[10]: https://vivaldi.com/download/ diff --git a/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md b/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md deleted file mode 100644 index 85f90890c8..0000000000 --- a/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md +++ /dev/null @@ -1,69 +0,0 @@ -[#]: subject: "FreeBSD 12.4 is out with 100+ improvements and fixes" -[#]: via: "https://debugpointnews.com/freebsd-12-4/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -FreeBSD 12.4 is out with 100+ improvements and fixes -====== - -![][1] - -**FreeBSD 12.4 was released a few days back with several updates and improvements. Here’s a release roundup.** - -FreeBSD is a UNIX-like operating system based on [U.C. Berkley’s BSD-Lite version][2]. It is primarily used for core infra systems, routers, networking devices, and possibly running in millions of devices. FreeBSD bundles thousands of packages from desktop apps to core modules, making it easier to build your system running this awesome operating system. - -### FreeBSD 12.4 Release: Key updates - -FreeBSD 12.4 is the 5th release of the current 12 stable series and coming up after a year’s package updates, improvements and bug fixes. - -Key changes in the release include the OpenSSL version being updated to 1.1.1q, whereas OpenSSH is bumped up to 9.1p1. The LLVM toolchain suite was also upgraded to 13.0.0. Other key version upgrades include `ena` kernel driver 2.6.1, `file` 5.43, `libarchieve` 3.6.0 and `dma` 2022-01-27. - -![FreeBSD 12.4 with Xfce desktop][3] - -Furthermore, this release now allows multiple cores to process traffic to improve performance by `if_repair` driver. Also, the `tcpdump` command now allows users to set several rules which will be exposed as part of the `pflog` header. - -On top of that, the `telnetd` daemon is deprecated in this version which should be noted for network professionals. - -The total number of changes and fixes exceeds 100+, which you can read in detail in the [change log][4]. - -### Download and Upgrade - -If you are running FreeBSD 12.3 version, you can upgrade your system by issuing the following commands: - -``` -freebsd-update -r 12.4-RELEASE upgrade -``` - -``` -freebsd-update install -``` - -For a fresh download, you can get the ISO image from the following page. - -[Download FreeBSD 12.4-RELEASE][5] - -Via [announcements][6] & [change log][4]. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/freebsd-12-4/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/bsd-generic-head.jpg -[2]: https://www.debugpoint.com/unix-history/ -[3]: https://debugpointnews.com/wp-content/uploads/2022/12/FreeBSD-12.4-with-Xfce-desktop.jpg -[4]: https://www.freebsd.org/releases/12.4R/relnotes/ -[5]: https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.4/ -[6]: https://www.freebsd.org/releases/12.4R/announce/ diff --git a/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md b/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md deleted file mode 100644 index c7477abc73..0000000000 --- a/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md +++ /dev/null @@ -1,88 +0,0 @@ -[#]: subject: "Get ready to upgrade your video creation with Kdenlive 22.12" -[#]: via: "https://debugpointnews.com/kdenlive-22-12/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Get ready to upgrade your video creation with Kdenlive 22.12 -====== - -![][1] - -**Kdenlive 22.12: the free and open-source video editor scores another sizable update.** - -The best free and [open-source video editor][2] – Kdenlive 22.12, released with new filters, UI improvements, user-requested features and bug fixes. This release improves Kdenlive on top of its [already existing features][3] and gives you a platform to create professional-quality videos. - -Here’s what’s new. - -![Kdenlive 22.12 Running in Linux Mint][4] - -### Kdenlive 22.12: New Features - -A new “Timelines Guides” dock now lists all the timeline markers in your video project. Click on the timeline video clip to view the markers in this new dock. This is an imp[rovement in the marker features introduced in the past release. - -In addition to that, three new audio graph filters were introduced. They are audio level visualization filter, spectrum filter and waveform filter. These can be used in keyframe animations for more granular controls. Talking about keyframes, you can now use the standard CTRL+C and CTRL+V to copy/paste keyframes. - -Furthermore, if you are working in a complex timeline, you can now remove all the spaces between clips with two new options – remove spaces after playhead and all after playhead. - -![Two new UI improvements on timeline][5] - -Kdenlive also started work to move to Qt6 from Qt5 build for the upcoming releases. A continuous integration build pipeline is added for Qt6 to check the current build. However, the current version is not yet complete per the transition timeline. However, it is expected that Kdenline will be built with Qt6 as stable by mid of 2023. - -On top of the above changes, here are some key updates on this release: - -- More custom colour codes for categories -- Improved marker management with edit, add/remove multiple markers and import/export. -- Kdenlive now sends the content of the timeline to Glaxnimate (version >= 0.5.1), which then shows it as background. -- Set maximum cache with custom data storage size -- Option to hide the menu bar, replacing it with a hamburger menu -- The settings panel is cleaned up with better visibility and removed obsolete entries -- Work underway for Qt6 and KDE Frameworks 6 migration -- Improved Track composition - -### Download and upgrade - -If you are already running Kdenlive via the official distro repo, you should get this update within a couple of days. Simply update your system to get this version. - -Those of you running the Flatpak version, run the following command to get the update. - -``` -flatpak update org.kde.kdenlive -``` - -For fresh download and installation, visit the following page. - -[Download Kdenlive][6] - -If you prefer Flatpak, you can install this version from Flathub using the following command, after [setting up your system as Flatpak][7]. - -``` -flatpak install flathub org.kde.kdenlive -``` - -Via [release announcement][8] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/kdenlive-22-12/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/kdenlive-head.jpg -[2]: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/ -[3]: https://www.debugpoint.com/kdenlive-features/ -[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Kdenlive-22.12-Running-in-Linux-Mint.jpg -[5]: https://debugpointnews.com/wp-content/uploads/2022/12/Two-new-UI-improvements-on-timeline.jpg -[6]: https://kdenlive.org/en/download/ -[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ -[8]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/ diff --git a/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md b/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md deleted file mode 100644 index b099cd8b00..0000000000 --- a/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md +++ /dev/null @@ -1,73 +0,0 @@ -[#]: subject: "Firefox 108 unlocks the power of music on the web with new WebMIDI API support" -[#]: via: "https://debugpointnews.com/firefox-108/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Firefox 108 unlocks the power of music on the web with new WebMIDI API support -====== - -![][1] - -**Firefox 108 is now available to download, bringing the following new features.** - -The final Firefox release of this year is here – Firefox 108, closing an eventful year of this free and open-source web browser from Mozilla. - -![Firefox 108 Running in Ubuntu][2] - -### Firefox 108: Best new features - -If you are a music enthusiast, then some good news for you. Firefox now supports the [WebMIDI API][3] inside your browser with proper access controls. When you try to access MIDI devices via Firefox, then you get a prompt for installing a “[site permission add-on][4]” to enable this API. - -In addition, Firefox 108 enabled import maps by default, which means web pages can now control the behaviour of JavaScript imports more easily. And if you use Firefox, you’ll be happy to hear that it now supports proper colour correction for images tagged with ICCv4 profiles. - -Furthermore, developers added a handy keyboard shortcut – press SHIFT+ESC to open the Process Manager and quickly identify any processes using too many resources. And on Windows 11, Firefox added efficiency mode for processes used in background tabs to help save on resources. - -Elsewhere, your browser’s bookmark toolbar gets an option “Only show on New Tab” state, which now works correctly for blank new tabs. Also improved in this release is the handling of non-ASCII characters while exporting PDF forms from web pages. - -If you are a web developer, Firefox 108 also arrives with a handful of Math function updates which are summarised alongside other vital changes: - -- The `source` element supports `height` & `width` attributes when it is a child of a `picture` element. -- Trigonometric functions are now enabled with the `layout.css.trig.enabled` preference set to true by default. This allows the use of sin(), cos(), tan(), asin(), acos(), atan(), and atan2() functions -- CSS `calc-constant`type is implemented to allow for well-known constants such as pi and e within math functions -- Container query length units are now supported via the the `layout.css.container-queries.enabled` preference, which is set to false by default - -### Download and update - -For Linux distributions, if you used Firefox via your distribution’s official repository, then you should get this update within a couple of days from today. - -However, you can also download the compressed version of this release from the below page. For other download options, do visit our [Firefox download guide][5]. - -[Download Firefox 108][6] - -Happy browsing! - -- [Official release notes][7] -- [Beta108 release notes][8] -- [Developer release notes][9] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/firefox-108/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/04/firefox-head.jpg -[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Firefox-108-Running-in-Ubuntu.jpg -[3]: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API -[4]: https://support.mozilla.org/en-US/kb/site-permission-addons -[5]: https://www.debugpoint.com/download-firefox/ -[6]: https://ftp.mozilla.org/pub/firefox/releases/108.0/ -[7]: https://www.mozilla.org/en-US/firefox/108.0/releasenotes/ -[8]: https://www.mozilla.org/en-US/firefox/108.0beta/releasenotes/ -[9]: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/108 diff --git a/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md b/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md deleted file mode 100644 index 7954cc1ae8..0000000000 --- a/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Kdenlive 22.12 Release Adds Useful New Features" -[#]: via: "https://news.itsfoss.com/kdenlive-22-12-released/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kdenlive 22.12 Release Adds Useful New Features -====== - -Kdenlive 22.12 upgrade is here with nice enhancements across the board. - -![Kdenlive 22.12 Release Adds Useful New Features][1] - -Kdenlive is an open-source cross-platform video editing software built by the KDE community, which has been around since 2003. - -Built using Qt and KDE Frameworks, it has been the editor of choice for many users out there. - -Recently, the latest upgrade to it i.e Kdenlive 22.12 has been made available, let me take you through the release. - -### 🆕 Kdenlive 22.12: What's New? - -![kdenlive 22.12][2] - -Kdenlive 22.12 features numerous improvements, with over 350 commits made. It brings in many new features, bug fixes, and prepares the code base for future releases. - -Let me take you through some of the notable improvements with this release. - -#### Revamped Guide and Marker System - -![kdenlive 22.12 guides dock][3] - -The guide and marker system on Kdenlive has received a major overhaul, with the key changes being: - -- All marker and guide features are now made available in the new 'Guides' dock. -- The 'Guides' dock also lets you easily seek, search, sort, and filter through the various markers and guides. It also allows for navigation with keyboard. -- You can now create many categories to suit your needs, compared to the nine categories limit previously. -- It is now also possible to edit, add, or remove multiple markers at a time, and the import/export of markers has been improved. - -#### Improved Glaxnimate Integration - -![kdenlive 22.12 glaxnimate integration][4] - -Kdenlive already had support for Glaxnimate with its previous release, but now the developers have taken it a step further. - -The editor now lets you send the content of your Kdenlive timeline to [Glaxnimate][5] (version >= 0.5.1), which will then show up in the background. - -> 💡 Glaxnimate is an open-source 2D vector drawing and animation program. - -This allows you to create animations that play together with your videos in a much easier fashion than was possible before. - -#### Various UX Improvements - -Kdenlive includes a variety of usability improvements, such as: - -- A new hamburger menu in the toolbar that can be used instead of the menu bar. -- 'What's This?' Text has been added in several places to show what a specific element does. -- You can now define a maximum size for the cached data stored by Kdenlive in the environment settings. -- The 'Settings' page has received a cleanup, and now features a reordered list of all the important options. - -#### Keyframeable Audio Graph Filters - -Existing audio graph filters like the audio level visualization filter, audio spectrum filter and audio wave form filter are now keyframeable with Kdenlive 22.12. - -They also fixed several effects that were affected due to syntax errors in the XML code and added automated tests to the build system to avoid such an issue in the future. - -#### 🛠️ Other Changes - -Besides the changes listed above, here are some of the other notable ones: - -- Improved track composition. -- PipeWire as SDL output. -- The Color Picker has been fixed on Wayland. -- Pixabay as the new video provider. -- Improved search performance. - -If you want to dive deep into the release notes, refer to the [official announcement][6]. - -### 📥 Download Kdenlive 22.12 - -For Linux, the latest release is available as an AppImage, on Flathub, and as an Ubuntu PPA. - -Head over to the [official website][7] to download those. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kdenlive-22-12-released/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kdenlive-22-12-release.png -[2]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12.png -[3]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Guides_Dock.png -[4]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Glaxnimate.png -[5]: https://glaxnimate.mattbas.org -[6]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/ -[7]: https://kdenlive.org/en/download/ From b4a28c12d84908820e70611782d0a8450ac52e69 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 11:24:46 +0800 Subject: [PATCH 2375/3123] ALL @wxy https://linux.cn/article-15356-1.html --- ... Code Editor to Continue the Legacy of Atom.md | 85 +++++++++++++++++++ ... Code Editor to Continue the Legacy of Atom.md | 82 ------------------ 2 files changed, 85 insertions(+), 82 deletions(-) create mode 100644 published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md delete mode 100644 sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md diff --git a/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md new file mode 100644 index 0000000000..008fd59109 --- /dev/null +++ b/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md @@ -0,0 +1,85 @@ +[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom" +[#]: via: "https://news.itsfoss.com/pulsar-editor/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15356-1.html" + +Pulsar:一个由社区主导的以继承 Atom 的开源代码编辑器 +====== + +> Pulsar 的目标是成为 Atom 的替代品,随着其开发的进一步深入,将挑战 Visual Studio Code。 + +![Pulsar:一个由社区领导的开源代码编辑器,以延续 Atom 遗志][1] + +微软决定杀死 Atom 文本编辑器,以支持 Visual Studio Code,这并不奇怪。 + +如果你不知道,你可以看一下我们以前的报道: + +> [为了支持微软 VS Code,微软的 GitHub 正在扼杀 GitHub 的 Atom 编辑器][5] + +虽然你可能有了更好的选择,但曾经流行的 Atom 是一个令人印象深刻的工具。 + +**它有一个可用的社区构建版**;然而,还有一个新的版本(**Pulsar**),旨在实现与原始 Atom 对等的功能,并引入现代功能和更新架构。 + +根据它的文档,原来开发 Atom 社区版的团队现在参与创建了 Pulsar。他们之所以做一个独立的复刻版本,是因为项目的目标不同。 + +**Pulsar** 希望将一切现代化,以成为 Atom 的继承者。 + +> 💡 Pulsar 是一个新项目,作为 Atom 的新复刻,有开发/测试版本可供测试。 + +### Pulsar 编辑器看起来怎么样? + +![Pulsar 编辑器][2] + +当然,用户界面也是大同小异。考虑到 Pulsar 还没有一个稳定的版本,看起来有时会显得有些混淆。 + +然而,文档、软件包以及从 Git 仓库安装软件包的能力等基本要素看起来都已具备。 + +根据官方网站的介绍,Pulsar 的主要功能亮点包括: + +- 跨平台支持(Linux、macOS 和 Windows) +- 内置的软件包管理器 +- 智能自动补全 +- 文件系统浏览器 +- 多窗格的用户界面 +- 查找和替换功能 + +在写这篇文章时,Pulsar 还不能自动更新。你可以通过官方网站安装较新的版本。 + +![Pulsar 编辑器设置][3] + +你可以自定义编辑器、改变键盘绑定、管理软件包、应用主题,并通过所有可用选项配置你的体验。 + +到目前为止,要说 Pulsar 是否会比 Atom 社区版更好还为时过早。然而,这是我们可以关注的事情。 + +### 下载并试用 Pulsar + +如前所述,Pulsar 正处于早期开发阶段。因此,你可以找到用于 Linux 发行版的二进制文件和 AppImage 文件,你可以在任何发行版上试用。 + +在我的测试中,它 **在 Linux Mint 不能正常运行**,但在 **Ubuntu 22.04 LTS** 上工作良好。 + +你可以到它的 [官方下载页面][4] 去获取你的系统所需的软件包,并进行测试。 + +> **[Pulsar 编辑器][4]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/pulsar-editor/ + +作者:[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/content/images/size/w2000/2022/12/pulsar-hackable-text-editor.png +[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png +[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png +[4]: https://pulsar-edit.dev/download.html#releases +[5]: https://news.itsfoss.com/atom-being-discontinued/ \ No newline at end of file diff --git a/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md deleted file mode 100644 index cfbb33c029..0000000000 --- a/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom" -[#]: via: "https://news.itsfoss.com/pulsar-editor/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom -====== - -Pulsar aims to be a replacement for Atom users, and could challenge Visual Studio code as its development progresses further. - -![Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom][1] - -It is no surprise that Microsoft decided to kill the Atom text editor to favor Visual Studio Code. - -If you did not know, you could take a glance through our older coverage: - -While you may have had better options, Atom was an impressive tool when it was popular. - -**A community build for it is already available**; however, there seems to be a new version (**Pulsar**) that aims to bring feature parity with the original Atom and introduce modern features and updated architecture. - -As per its documentation, the original team that worked on Atom-Community is now involved with creating Pulsar. The reason why they made a separate fork is because of different goals for the projects. - -**Pulsar** wants to modernize everything to present a successor to Atom. - -> 💡 Pulsar is a new project, as a new fork to Atom, with dev/beta releases available to test. - -### Pulsar Editor: What's to see here? - -![pulsar editor][2] - -Of course, the user interface is much of the same. Considering Pulsar hasn't had a stable release yet, the branding could sometimes seem all over the place. - -However, the essentials seem to be there with the documentation, packages, and features like the ability to install packages from Git repositories. - -The key feature highlights for Pulsar, as per the official website, include: - -- **Cross-platform support (Linux, macOS, and Windows)** -- **Built-in package manager** -- **Smart autocompletion** -- **File system browser** -- **Multiple pane user interfaces** -- **Find and replace feature** - -At the time of writing this, automatic updates for Pulsar are not available. You will be able to install newer versions through the official website. - -![pulsar editor settings][3] - -You can customize the editor, change keybindings, manage packages, apply themes, and configure your experience with all the available options. - -As of now, it is too soon to say if Pulsar will become something better than what the Atom community version offers. However, it is something that we can keep an eye on. - -### Download and Try Pulsar - -As mentioned earlier, Pulsar is in its early development stage. So, you can find binaries for Linux distributions and AppImage file that you can try on any distro. - -In my test, it **did not work for Linux Mint**, but it worked fine with **Ubuntu 22.04 LTS**. - -You can head to its [official download page][4] to get the package required for your system and test it out. - -[Pulsar Editor][4] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/pulsar-editor/ - -作者:[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/content/images/size/w2000/2022/12/pulsar-hackable-text-editor.png -[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png -[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png -[4]: https://pulsar-edit.dev/download.html#releases From 6e1abf151841a223f1effad44635e40002943387 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 12:18:52 +0800 Subject: [PATCH 2376/3123] RP @geekpi https://linux.cn/article-15357-1.html --- ...️⭐️ Try this Java file manager on Linux.md | 68 +++++++++++++++++++ ...️⭐️ Try this Java file manager on Linux.md | 64 ----------------- 2 files changed, 68 insertions(+), 64 deletions(-) create mode 100644 published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md delete mode 100644 translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md diff --git a/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md new file mode 100644 index 0000000000..c32fe8144e --- /dev/null +++ b/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md @@ -0,0 +1,68 @@ +[#]: subject: "Try this Java file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15357-1.html" + +在 Linux 上试试这个 Java 文件管理器 +====== + +![][0] + +> JFileProcessor 作为一个 Linux 文件管理器,在设计和功能上都采取了极简理念。 + +计算机是一个奇特的文件柜,里面装满了虚拟文件夹和文件,等待着被引用、交叉引用、编辑、更新、保存、复制、移动、重命名和归类。在本文中,我将介绍一下 Linux 系统的文件管理器。 + +在 昇阳微系统Sun Microsystem 时代的末期,出现了一种叫做 Java 桌面系统Java Desktop System 的东西,奇怪的是它 _不是_ 用 Java 编写的。相反,它是(根据当时的 sun.com 上的描述)“对集成和优化的桌面软件的明智选择,大部分基于开源代码和开放标准”。它基于 GNOME,带有办公套件、电子邮件和日历应用、即时消息和“Java 技术”。我发现自己在思考用 Java 创建桌面需要什么。客观地说,桌面实际上并不包括那么多东西。一般的共识似乎是桌面由面板、系统托盘、应用菜单和文件管理器组成。 + +想象一个实际的 Java 桌面是一个有趣的思维练习。虽然不足以以此为目标启动一个开源项目,但足以在网络上快速搜索必要的组件。事实证明,有人用 Java 编写并维护了一个文件管理器。 + +### JFileProcessor + +我找到的 Java 文件管理器叫做 JFileProcessor,简称 JFP。它不仅是用 Java 编写的,更具体是说是用 [Groovy][1](一种流行的 Java 脚本语言)进行的一项迷人的实践。 + +![Image of the JfileProcessor folders.][2] + +作为文件管理器,JFileProcessor 在设计和功能上都采用了极简方式。它允许你查看、打开、移动、复制、剪切或删除本地系统和远程系统上的文件。它不是特别定制化的,它没有如拆分面板或可移动面板等额外功能。除了管理文件外,它没什么别的中心主题。JFileProcessor 在某种程度上令人耳目一新,因为它很简单。这是一个文件管理器,仅此而已。有时这就是你在文件管理器中想要的全部。 + +我之前写过关于 [设置 Java Swing 主题][3] 的方式,从技术上讲,该技术可以应用于这个开源应用。但是,我认为这个应用的部分魅力在于 OpenSolaris 称之为 “Blueprint” 的主题。这是 Java 的怀旧外观,我喜欢以其原生 GUI 外观运行它,作为对我的 OpenSolaris(现为 OpenIndiana)笔记本电脑的回忆。 + +### 用户体验 + +除了设计,真正重要的是用户体验。JFileProcessor 只有三个你日常使用的按钮:向上、后退和前进。它们未绑定到键盘快捷键,因此你必须单击按钮才能导航(或使用 `Tab` 键选择按钮)。在使用图形应用时,我经常使用键盘快捷键,所以当我尝试浏览我的系统时,这大大减慢了我的速度。但是,有时我实际上只是懒洋洋地浏览文件,因此 JFileProcessor 完全按照我的需要工作。 + +JFileProcessor 也有一个搜索组件。只要你设置合理的起始文件夹,搜索就会快速而智能,同时允许使用通配符和正则模式搜索。例如,当我搜索特定的电子书或漫画档案或游戏规则手册时,或者当我粗略地知道该目录包含一个项目但懒得一直点击到目的地址。在子目录中快速搜索,必然会得到明显的结果,然后双击打开文件,不管我设置了什么 XDG 偏好(Evince 用于 PDF,Foliate 用于电子书,等等)。 + +右键单击任何文件或目录会弹出上下文菜单。它具有你期望的大部分常见任务:复制、剪切、粘贴、删除、重命名、新建。它也有一些不错的额外功能。 + +![Right-click context menu in JFileProcessor][4] + +例如,你可以只将文件名复制到剪贴板或保存文件路径。你还可以运行一些脚本,包括用于批量重命名文件的脚本、用于对选定文件运行命令的脚本、用于创建 ZIP 或 TAR 存档的脚本等等。当然,编码器有多种选择,包括在当前位置打开终端和打开新的编码窗口。 + +### 安装 + +我是 Java 的忠实粉丝。它是一种清晰的语言,具有合理的分隔符和对跨平台兼容性的坚定立场。我喜欢它作为一种语言,我喜欢看到程序员用它创造的东西。 + +JFileProcessor 的名字很贴切。这是一种处理文件的有效方法,从某种意义上说,JFileProcessor 为你提供了一个简单的窗口来查看系统上的文件数据,并允许你以图形方式与它们进行交互,就像你可能在终端中与它们交互一样。它不是我用过的最高效的文件管理器,也不是功能最多的一个。然而,这是一个令人愉快的应用,为你提供了文件管理所需的基本工具,其相对较小的代码库使你可以在下午阅读一些精彩的内容。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/12/groovy +[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp +[3]: https://opensource.com/article/22/3/beautify-java-applications +[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp +[0]: https://img.linux.net.cn/data/attachment/album/202212/17/121727uuepuz1q3qhgippd.jpg \ No newline at end of file diff --git a/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md deleted file mode 100644 index 8ef1bb47c1..0000000000 --- a/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md +++ /dev/null @@ -1,64 +0,0 @@ -[#]: subject: "Try this Java file manager on Linux" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在 Linux 上试试这个 Java 文件管理器 -====== - -计算机是奇特的文件柜,里面装满了等待引用、交叉引用、编辑、更新、保存、复制、移动、重命名和组织的虚拟文件夹和文件。在本文中,我将介绍一下 Linux 系统的文件管理器。 - -在 Sun Microsystem 时代的末期,出现了一种叫做 Java 桌面系统的东西,奇怪的是它_不是_用 Java 编写的。相反,它是(根据当时的 sun.com 上的描述)“对集成和优化的桌面软件的明智选择,大部分基于开源代码和开放标准”。它基于 GNOME,带有办公套件、电子邮件和日历应用、即时消息和“Java 技术”。我发现自己在思考用 Java 创建桌面需要什么。客观地说,桌面实际上并没有那么多。一般的共识似乎是桌面由面板、系统托盘、应用菜单和文件管理器组成。 - -想象一个实际的 Java 桌面是一个有趣的思维练习。不足以以此为目标启动一个开源项目,但足以在网络上快速搜索必要的组件。事实证明,有人用 Java 编写并维护了一个文件管理器。 - -### JFileProcessor - -我找到的 Java 文件管理器叫做 JFileProcessor,简称 JFP。这不仅在 Java 中,而且在 [Groovy][1](一种流行的 Java 脚本语言)中都是一项迷人的练习。 - -![Image of the JfileProcessor folders.][2] - -作为文件管理器,JFileProcessor 在设计和功能上都采用了最小化的方法。它允许你查看、打开、移动、复制、剪切或删除本地系统和远程系统上的文件。它不是特别定制化的,它没有额外的功能,如拆分面板或可移动面板。除了管理文件外,它不围绕任何中心主题构建。JFileProcessor 在某种程度上令人耳目一新,因为它很简单。这是一个文件管理器,仅此而已。有时这就是你在文件管理器中想要的全部。 - -我之前写过关于[设置 Java Swing 主题][3]的方式,从技术上讲,该技术是这个开源应用的一个选项。但是,我认为这个应用的部分魅力在于 OpenSolaris 称之为 “Blueprint” 的主题。这是 Java 的怀旧外观,我喜欢以其原生 GUI 外观运行它,作为对我的 OpenSolaris(现为 OpenIndiana)笔记本电脑的回忆。 - - -### 用户体验 - -除了设计,真正重要的是用户体验。JFileProcessor 只有三个你日常使用的按钮:向上、后退和前进。它们未绑定到键盘快捷键,因此你必须单击按钮才能导航(或使用 **Tab** 键选择按钮)。在使用图形应用时,我经常使用键盘快捷键,所以当我尝试浏览我的系统时,这大大减慢了我的速度。但是,有时我实际上只是懒洋洋地浏览文件,因此 JFileProcessor 完全按照我的需要工作。 - -JFileProcessor 也有一个搜索组件。只要你设置合理的起始文件夹,搜索就会快速而智能,同时允许适用 glob 和正则模式搜索。例如,当我搜索特定的电子书或漫画档案或游戏规则手册时,或者任何时候我粗略地知道该目录包含一个项目但懒得一直点击到目的地址。在子目录中快速搜索,必然会得到明显的结果,然后双击打开文件,不管我设置了什么XDG偏好(Evince用于PDF,Foliate用于电子书,等等)。 - -右键单击任何文件或目录会弹出上下文菜单。它具有你期望的大部分常见任务:复制、剪切、粘贴、删除、重命名、新建。它也有一些不错的额外功能。 - -![Right-click context menu in JFileProcessor][4] - -例如,你可以只将文件名复制到剪贴板或保存文件路径。你还可以运行一些脚本,包括用于批量重命名文件的脚本、用于对选定文件运行命令的脚本、用于创建 ZIP 或 TAR 存档的脚本等等。当然,编码器有多种选择,包括在当前位置打开终端和打开新的编码窗口。 - -### 安装 - -我是 Java 的忠实粉丝。它是一种清晰的语言,具有合理的分隔符和对跨平台兼容性的坚定立场。我喜欢它作为一种语言,我喜欢看到程序员用它创造的东西。 - -JFileProcessor 的名字很贴切。这是一种处理文件的有效方法,从某种意义上说,JFileProcessor 为你提供了一个简单的窗口来查看系统上的文件数据,并允许你以图形方式与它们进行交互,就像你可能在终端中与它们交互一样。它不是我用过的最高效的文件管理器,也不是功能最多的一个。然而,这是一个令人愉快的应用,为你提供了文件管理所需的基本工具,其相对较小的代码库使你可以在下午阅读一些精彩的内容。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/20/12/groovy -[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp -[3]: https://opensource.com/article/22/3/beautify-java-applications -[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp From 93a0adef15e184330263dc30dea7345b9e3e1cf6 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 17 Dec 2022 16:35:05 +0800 Subject: [PATCH 2377/3123] Third Translation --- ...️ Write documentation like you develop code.md | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md index 1aea7321f7..9c373f96bd 100644 --- a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md +++ b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md @@ -7,51 +7,52 @@ [#]: publisher: " " [#]: url: " " -Write documentation like you develop code +像代码开发一样撰写文档 ====== -Don't want documentation to be an afterthought? Try a new approach. +不想让书写滞后于你的思考?或许你该尝试一下全新的写作方式。 -Many engineers and craftspeople are particular about their tools. To do a job well, you need the best tools and the skills to use them. The best tools in software development can be very powerful when applied to other kinds of digital creation. The [Docs as Code][1] approach is a great example. Docs as Code entails writing documentation using the same tools and workflows used for developing code. Proponents of Docs as Code report that this method leads to better documentation while easing the workload of the people who write it. +很多工程师与手工艺者都对他们使用的工具有特别的要求。为了顺利的完成工作,你需要最好的工具和使用它们的技巧。软件开发中最好的工具在应用到其他的数字创作领域中也可以是很强大的。[Docs as Code][1] (译注:代码化文档)的方式就是很好的例子。Doc as Code 意味者使用与代码开发相同的工具与工作流来撰写文档。Doc as Code 的支持者认为这样的方式可以在降低作者的工作符负荷的同时保证更好的文档结构。 -### Text formats and source control +### 文本格式与源文件控制 -The most significant adjustment when moving from a more traditional documentation platform to the Docs as Code approach is that the content is stored in a text-based markup format. This change makes all the tools for text-based materials available for generating documentation. Whether you choose [DocBook][2], [Markdown][3], or another markup language, the transition from using just one tool to using a standard format and a variety of tools is a big change. +从传统的写作平台切换到 Docs as Code 方式时,最主要的调整是写作内容保存在基于文本的标记格式中。这一转变使得基于纯文本材料的工具都适用于文档写作。当你选择 [DocBook][2], [Markdown][3] 或者其他的标记语言时,从只使用一种工具到使用一种标准格式配合多种工具是一种巨大的转变。 -Finding tools that support your workflow is really important. Many developers use their [coding editors][4] when working on Docs as Code projects. Since they are already advanced-level users with that tool, it works well for them. Finding tooling that fits the other professionals on the team, such as technical writers, editors, information architects, and documentation product owners, may take more effort. A few options to consider: +找到支持你的工作流程的工具是非常重要的。在 Docs as Code 项目中,很多开发者使用他们的 [代码编辑器][4]。考虑到他们已经是这些工具的高阶用户,一切都很顺利。而找到适合团队里适合其他专业从业者,比如技术撰稿、编辑、信息架构师和文档产品责任人,的工具可能需要一番努力。这里有一些选项可兹参考: -- One of the many [good markdown editors][5] available -- Coding editors with good preview tools, which make them approachable for non-coders -- The web interfaces of popular Git hosting services, especially for occasional contributors +- 各种[优秀的 Markdown 编辑器][5]之一是可行的 +- 附带良好的预览工具的代码编辑器可能更适合非程序员 +- 流行的 Git 托管服务的网页界面尤其适用于偶尔有需要的贡献者 -Once content is safely in a markup format, the project can use source control such as [Git][6], an open source tool with many more features than most documentation platforms can claim: +一旦内容以标记语言的格式安全保存就可以使用版本控制进行管理,比如 [Git][6]。Git 相比大多数文档平台具有更多的功能: -- A clear and detailed version history of who changed what and when. If you have good commit message culture, you may even be able to learn why the change was made. -- Easy parallel change processes. Working in branches in Git means everyone can make all the changes they want to and combine them at the end. -- Advanced collaboration and review tooling. All the source-control platforms are designed to review each change in detail and have as much discussion as needed until everyone is confident that the change can go ahead. -- Automated quality checks such as spellchecking and link checking. This saves time and catches errors that might otherwise be missed. +- 清晰详细的文档版本历史:谁在什么时候改变了什么。 +- 简明的并行修改过程支持。在 Git 中使用分支工作意味着任何人可以做出他们想要的任何改变并在最后合并所做的更改。 +- 高级的协作与审查工具。所有的源代码管理平台都设计支持评审每一条细节变更并在足够的讨论后使每个人都确信改变可以继续的流程。 +- 自动质量检查,比如拼写检查和链接检查。这不仅节省了时间,而且可以发现以前无法发现的错误。 -Source control has many benefits. Just keep in mind that if you're new to source control, it has a learning curve. There are some excellent [learning resources][7] and [articles for writers][8] that can help. You can also let your curious documentarians find the learning materials that work for them rather than asking your engineers to teach them. (Ask me how I learned this—the hard way of course!) +源代码管理有很多优点。但要记住,如果你准备入门源代码管理,它有一定的学习曲线。这是一些有助于入门的优秀的[学习资源][7]和[作者文章][8]。你也可以让具有好奇心的文档作者自行寻找对他们有用的学习材料,而不是请你的工程师来培训他们。(探寻他人的学习历程是最困难的学习方式) -### Pull requests and review cycles +### 拉取请求和评审循环 -All source-control platforms are designed around the concept of pull requests, sometimes also called merge requests. Someone, or some team, puts together a set of changes and then requests that the changes are pulled into the main project. In many ways, working with many changes at once is easier in documentation than in code. Changing one article in one place in documentation has fewer side effects than when you change code and find that there were several other sections depending on it. -The most powerful collaboration tool is the [diff][9], which shows the difference between old and new versions in a way that's easy to follow. There are many versions of this tool available to make the comparison view easier to look at: side-by-side, inline, or even as rendered markdown rather than just text. Each team member can use the tool or tools that work best for them. For example, the web view is commonly used to look at a small change, but for something bigger I would want to look at it locally using `vimdiff` or [Meld][10]. +所有的源代码管理平台都围绕拉取请求这一概念设计,这有时也称为合并请求。有时候,某些团队先将一系列改变整合到一起然后向主项目发起要求修改被拉取的请求。不过从许多方面来说,在文档中一次处理多个变更比在代码中更容易。改变文档中某处的一篇文章比之更改代码并找出有哪些地方依赖它具有更小的副作用。 -Review comments can be added to the change as a whole or to individual lines in the proposed change. Some projects adopt a maximum line length, called a hard wrap, or start each sentence on a new line to make it easier to attach comments to specific parts of a block of text. Further changes and comments can be added until the review process is complete and the change is accepted. Since the pull requests are shown in a queue on the repository for the project, this is a good way to show what's in progress and what needs review attention. The tools make it easy for reviewers to add their thoughts. In particular, if you are working with technical audiences it can be easier to get reviews from these folks via the tools they use daily. +最强大的协作工具是 [diff][9],它可以通过一个易于察觉的方式展示旧版本与新版本之间的差异。该工具有多种不同的版本来使得比较视图更易于查看:双栏模式、行内模式,甚至是渲染后的 Markdown 模式。团队中的每一个成员都可以选择最适合他们的版本。举例而言,网页视图通常用于查看细微变更,而对于更大的变更,我习惯于使用 `vimdiff` 或 [Meld][10] 在本地浏览。 -### Continuous integration and deployment +检查的注释可以整体提交到变更中,也可以提交到指定变更中的个别行中。一些项目限制了行的最大长度,即硬换行,或者一行一句,以使得向文本的特定的部分添加注释更加容易。进一步的变更与注释可以在检查完成接受变更时添加。由于拉取请求在项目仓库以队列形式展示,这是很好的方式来展示目前正在进行的任务以及需要进行检查操作的任务。diff 工具使得评审人员更方便地加入他们的思考。尤其是你在与技术受众工作时,你可以通过他们日常使用的工具获得来自他们的评论。 -Having the source of your documentation available in plain text has many benefits, such as making it easy to find every occurrence of something that needs changing and using existing tools such as [wc][11], [grep][12], or `tree` to work with potentially large document sets. When you combine this with a source-control platform, even more existing tools become available, and they're all open source. +### 持续集成与部署 -One big workflow improvement is the ability to have continuous deployment in place. This simply means that when a pull request is merged into the main project, the project is immediately and automatically deployed. If the change is good enough to be accepted into the project, it is also good enough to be live on the documentation site, helping your readers. Typically, continuous deployment is set up with either a separate automation server, such as [Jenkins][13], or [Git Hooks][14]. Either way, the text-based markup is combined with the Docs as Code platform (usually a static site generator such as [Hugo][15] or [Sphinx][16]) to produce the documentation website, which is then deployed. +以纯文本形式拥有你的文档的源代码有很多益处,你可以轻易找到每次需要修改的位置,你可以使用现有的诸如 [wc][11]、[grep][12]或 `tree` 之类的工具在潜在的大型文档集中工作。当你将这些与源代码管理平台结合起来之后,你可能获得更多的可用工具,并且它们都是开源的。 -The same automation can be used before deployment to add some excellent checks to the pull requests before they are merged. On a coding project, it's common to run code linters, tests, and other quality checks that a machine can do itself. Documentation projects can get the same treatment, with tools like [Vale][17] to do prose linting and check for correct heading styles, spellings, and so on. It's also useful to add other tools here, such as a link checker to make sure all the links go somewhere valid. +另一个工作流程上的巨大提升是持续部署的能力。简单来说,这意味着,每当一个拉取请求被合并到主项目中,项目可以直接自动化部署到位。如果变更好到足以接收进项目中,他同时可以在文档页面中实时更新,从而帮助到你的读者。典型情况下,持续部署是配置在任意一台分离的自动化服务器上的,比如 [Jenkins][13] 或者 [Git Hooks][14]。不论哪种方式,基于文本的标记语言与 Doc as Code 平台(通常是静态网页生成器,比如 [Hugo][15] 或 [Sphinx][16])结合来生成文档网站,然后自动部署。 -### Code tools for docs workflows +在部署之前,同样的自动化流程可以被用于对将要合并的拉取请求进行检查。在一个编程项目中,通过计算机自行进行代码检查、代码测试和其他的质量检查已经习以为常。通过类似 [Vale][17] 之类的工具进行文本检查、文档项目也可以同样对待,你也可以添加其他的工具,比如添加一个链接检查器来确保文中所有的链接都是有效的。 -The tools known and loved by engineers are very good tools, but they are useful for all sorts of other projects too. For documentation, they contribute valuable efficiency, especially when you need your documentation to be moving at the same speed as your development teams. All the tools discussed here are open source, so you can try them for yourself, deploy them for a huge global team, or anything in between. May your docs process be as smooth as any code process. +### 用于文档流程的代码工具 + +被工程师们熟知并喜爱的工具都是非常好的工具,它们同时也可以用于其他类型的项目中。在文档项目中,它们提升了宝贵的效率,尤其是当你希望你的文档与你的团队同步推进的时候。上面讨论到的所有工具都是开源的,你可以亲自尝试,为大型全球团队部署他们,亦或者介于两者之间,最终使你的成文过程和编程过程一样顺畅。 -------------------------------------------------------------------------------- @@ -59,7 +60,7 @@ via: https://opensource.com/article/22/10/docs-as-code 作者:[Lorna Mitchell][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[CanYellow](https://github.com/CanYellow) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From dee4803e9dee1a51c3b4c52f9169264b4f66ee76 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 17 Dec 2022 16:46:37 +0800 Subject: [PATCH 2378/3123] move --- .../20221028.1 ⭐️⭐️ Write documentation like you develop code.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md (100%) diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md similarity index 100% rename from sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md rename to translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md From 625e73fa8cc8be0a5c5f84bcd506be0d198ef234 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 22:16:56 +0800 Subject: [PATCH 2379/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow 总体翻译不错,有些地方你的理解可能有误。 --- ....5 ⭐️⭐️ Our open source startup journey.md | 65 +++++++++---------- 1 file changed, 29 insertions(+), 36 deletions(-) diff --git a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md index c71c2778e3..228d530700 100644 --- a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md +++ b/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md @@ -3,94 +3,87 @@ [#]: author: "Navaneeth PK https://opensource.com/users/navaneeth" [#]: collector: "lkxed" [#]: translator: "CanYellow" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -开始我们的开源之旅 +我们的开源创业之旅 ====== -[ToolJet][1] 是一款开源的低代码量的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。 +![][0] -ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队。 +> 以下是开源项目 ToolJet 是如何在一年的时间里取得 13000 颗星标和 200 个贡献者的故事。 + +[ToolJet][1] 是一款开源的低代码框架,用于快速构建和部署内部工具。它的代码库完全由 JavaScript 和 TypeScript 组成。 + +2021 年 4 月,一名开发者独自开始了 ToolJet 的开发,并于 2021 年 6 月推出公测版本,一炮而红。此后,ToolJet 成立了基金会。目前,我们已经有一个 20 人的开发团队。 ### 为什么选择开源 -在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员的对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。 +在开发 ToolJet 之前,我曾担任一些企业客户的顾问。这些客户中的许多都庞大到足以维护构建几十个内部工具。尽管来自销售人员、支持人员以及运营人员不断要求对内部工具添加更多功能和修复错误,但开发团队却很难有精力来开发内部工具。 -我尝试过多个平台来构建和维护内部工具。大部分平台都是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台工具的代码,而且大多数的平台工具都不支持本地托管。 +我尝试使用过多个平台来构建和维护内部工具。这些工具大多非常昂贵,而且经常不符合要求。我们需要进行修改,而且大多数工具不支持内部托管。 -作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源的任务上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。 +作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在使用多个数据源的任务上比较困难。于是我意识到市场上需要一种可以构建用户界面,并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。 ### 第一次提交 -制作像 ToolJet 这样的工具需要全身心的投入,通过出售我的一个业余项目,我获得了5-6个月的空闲,于是我立即着手将在我脑海里酝酿了两年的想法付诸现实。 +制作像 ToolJet 这样的工具需要全身心的投入,通过出售我的一个业余项目,我获得了五六个月的空闲,于是我立即着手将在我脑海里酝酿了两年的想法付诸现实。 -2021年4月1日,我完成了 ToolJet 的第一次提交(使用 rails new 命令)。 +2021 年 4 月 1 日,我完成了 ToolJet 的第一次提交(使用 `rails new` 命令)。 稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。 -TD ### 构建完成并推销给投资者 -4、5月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。 +4、5 月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。 -我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。 +我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时,ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。 -编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我回了电话。 +编程工作进行得很顺利,然而向投资者推广的工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约 40 封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我回了电话。 大部分的电话内容都是一样的:我无法说服他们接受开源商业模式。 ### 工具发布 -6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这里是原始的[发布帖][2]。 +6 月 7 日是发布日。我们首先在 ProductHunt(LCTT 译注:[ProductHunt][11] 是一个新品发布平台)上发布。六个小时后,只有 70 名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这里是原始的 [发布帖][2]。 -下午6点左右,我又在 [HackerNews][3]上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。大量的访问者和用户报告了软件和文档中的漏洞。距离在 HackNews 上发帖八个小时之后,超过1000名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮星标,并且有了数百个 ToolJet 云端的注册请求。上升趋势一直持续到三天后,ToolJet 版本库总计得到了2400个星标。 +下午 6 点左右,我又在 [HackerNews][3] 上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。许多访问者和用户报告了软件和文档中的错误。距离在 HackNews 上发帖八个小时之后,超过 1000 名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮了星标,并且有数百人注册了 ToolJet 云。上升趋势一直持续到三天后,ToolJet 版本库总计得到了 2400 个星标。 ![ToolJet repo stats on GitHub][4] -图片来源: - -ToolJet GitHub StarTrack (Navaneeth PK, CC BY-SA 4.0) - ### 获得资助 -ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们也有其他的选择,但从没有认真考虑过这些它们。这些选择包括: +ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们也有其他的选择,但从没有认真考虑过这些它们。这些选择包括: -- Bootstrapping:在项目初期,难以获得付费用户,而我此前也没有足够的存款来支撑整个项目。 +- 引导性融资:在项目初期,难以获得付费用户,而我此前也没有足够的储蓄来支撑整个项目。 +- 作为业余项目:在开发小型项目上这是可以的,但我不认为这在 ToolJet 的开发上行得通,毕竟在 ToolJet 平台能够为客户所用之前,我们需要创建大量的集成和 UI 控件。作为一个业余项目,要实现这些可能需要花费数月甚至数年时间。 -- 作为业余项目构建:在开发小型项目上这是可以的,但我不认为这在 ToolJet 的开发上行得通,毕竟在 ToolJet 平台能够为客户所用之前我们需要创建大量的集成和 UI 控件。作为一个业余项目,要实现这些可能需要花费数月甚至数年时间。 +我知道如果将 ToolJet 作为一个业余项目来开发,我可能需要花几个月的时间才能达到我期望的程度。而我希望通过扩大团队加速项目的成熟。鉴于该项目的吸引力,引入风险投资(VC)的资助是显而易见的选择。 -我知道如果将 ToolJet 作为一个业余项目来开发,我可能需要花几个月的时间才能达到我期望的程度。而我希望通过扩大团队加速项目的成熟。鉴于该项目的吸引力,引入风险投资(VC)的资助是显而易见的选择。 - -好消息是在 HackNews 上发布之后的两周内我们成功募集了[155万美元的资金][5]。 +好消息是在 HackNews 上发布之后的两周内我们成功募集了 [155 万美元的资金][5]。 ### 在开源中积累很重要 -发布后不久,我们发现许多人希望为 ToolJet 项目做贡献,但是他们几乎都是 JavaScript 开发者。我们也意识到像 ToolJet 这样的项目在未来会有成百上千的数据接口,只有基于插件的架构才行得通。我们于2021年8月决定从 Ruby 迁移到 TypeScript 上来。即使这花费了一个月的时间和巨大的努力,这仍然是我们在 ToolJet 项目上作出的最正确的决定。今天,我们有一个由我们的[插件开发套件][6]支持的可扩展的基于插件的架构。我们获得了来自超过200名开发者的贡献。关于这次迁移的文章参见[这篇博客][7]和[另一篇博客][8] +发布后不久,我们发现许多人希望为 ToolJet 项目做贡献,但是他们几乎都是 JavaScript 开发者。我们也意识到像 ToolJet 这样的项目在未来会有成百上千的数据接口,只有基于插件的架构才行得通。我们于 2021 年 8 月决定从 Ruby 迁移到 TypeScript 上来。即使这花费了一个月的时间和巨大的努力,这仍然是我们在 ToolJet 项目上作出的最正确的决定。今天,我们有一个由我们的 [插件开发套件][6] 支持的可扩展的基于插件的架构。我们获得了来自超过 200 名开发者的贡献。关于这次迁移的文章参见 [这篇博客][7] 和 [另一篇博客][8]。 ### 发布 v1.0 版本 -自8月份以后,很多用户已经在生产环境中使用 ToolJet ,该平台并没有出现过任何稳定性或扩展性的问题。我们准备在发布 v1.0 版本之前完成开发人员平台的功能。开发人员平台允许任何 JavaScript 开发者构建和发布 ToolJet 插件。这样开发人员就可以为 ToolJet 开发数据接口。把集成测试的时间算上,创建一个 ToolJet 接口的时间也只需要30分钟。 +自 8 月份以后,很多用户已经在生产环境中使用 ToolJet ,该平台并没有出现过任何稳定性或扩展性的问题。我们准备在发布 v1.0 版本之前完成开发人员平台的功能。开发人员平台允许任何 JavaScript 开发者构建和发布 ToolJet 插件。这样开发人员就可以为 ToolJet 开发数据接口。把集成测试的时间算上,创建一个 ToolJet 接口的时间也只需要30分钟。 ### 创建持续成长的社区 ![ToolJet star history][9] -图片来源: - -ToolJet Star History (Navaneeth PK, CC BY-SA 4.0) - 我们没有在销售上投入资金,我们的大部分精力都放在了传播 ToolJet 的消息、撰写我们的经验教训以及维持开发社区的活跃上。我们有一个关注社区里问题的三人团队。 - ### 商业模式 -如果没有[商业产品][10]来支付账单 ToolJet 无法成为一项可持续的业务。我们构建了 ToolJet 的客户必须付费的企业版本。ToolJet 的免费的社区版本没有任何使用限制,企业版中的额外功能都只与大型团队有关。我们现在的客户已经有超大型公司。我们有足够的银行存款来打造更好的 ToolJet ,因此我们目前正聚焦于产品提升上。 +如果没有 [商业产品][10] 来支付账单,ToolJet 就无法成为一项可持续的业务。我们构建了 ToolJet 的客户付费的企业版本。ToolJet 的免费的社区版本没有任何使用限制,企业版中的额外功能都只与大型团队有关。我们现在的客户已经有超大型公司。我们有足够的银行存款来打造更好的 ToolJet ,因此我们目前正聚焦于产品提升上。 ### 接下来做什么 -我们在消费者反馈的帮助以及开源社区的贡献下经常性发布更好的 ToolJet 版本。很多主要的优化、大量的数据接口以及 UI 组件正在开发进程中。为了实现我们成为能够连接大量数据源并构建更复杂的用户界面的开源框架的初心,我们比以往行动得更加迅速。 +我们在开源社区的不断反馈和贡献的帮助下,我们可以经常性发布更好的 ToolJet 版本。很多主要的优化、大量的数据接口以及 UI 组件正在开发进程中。我们正以前所未有的速度朝着我们的最初目标前进,即成为一个可以连接到数百个数据源和构建最复杂的用户界面的开源框架。 -------------------------------------------------------------------------------- @@ -99,7 +92,7 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey 作者:[Navaneeth PK][a] 选题:[lkxed][b] 译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -115,5 +108,5 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey [8]: https://blog.tooljet.com/how-we-migrated-tooljet-server-from-ruby-to-node-js [9]: https://opensource.com/sites/default/files/2022-10/tooljet-star-history.png [10]: https://opensource.com/article/19/11/product-vs-project - [11]: https://www.producthunt.com/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/17/221548rbp2t6z8ah3h031s.jpg \ No newline at end of file From d45b839c803e8a281ed3e7b23481fd5f26cdd26f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 17 Dec 2022 22:17:45 +0800 Subject: [PATCH 2380/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow https://linux.cn/article-15359-1.html 恭喜你升级为二星贡献者! --- .../20221019.5 ⭐️⭐️ Our open source startup journey.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20221019.5 ⭐️⭐️ Our open source startup journey.md (99%) diff --git a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/published/20221019.5 ⭐️⭐️ Our open source startup journey.md similarity index 99% rename from translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md rename to published/20221019.5 ⭐️⭐️ Our open source startup journey.md index 228d530700..b8180b32c2 100644 --- a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md +++ b/published/20221019.5 ⭐️⭐️ Our open source startup journey.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "CanYellow" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15359-1.html" 我们的开源创业之旅 ====== From 198a5ea3c3f86b0c7a58f47f11a60dad1371009b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 18 Dec 2022 14:59:55 +0800 Subject: [PATCH 2381/3123] R @geekpi --- ...ow to Access UEFI Settings in Linux Systems.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md index 779ee8e4ee..b18ba3bf7f 100644 --- a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md +++ b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md @@ -3,30 +3,30 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 如何在 Linux 系统中访问 UEFI 设置 ====== -想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 F2、F10 或 Del 按键访问 UEFI 设置**。 +想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 `F2`、`F10` 或 `Del` 按键访问 UEFI 设置**。 这种方法的问题是你可能不知道确切的键,并且必须警惕在正确的时间按下这些键。 ![Mr. Bean][1a] -如果你不想像上面 Gif 中的憨豆先生,你可以从 Linux 中的 [Grub bootloader][1] 也没访问 UEFI 设置。 +如果你不想像上面 Gif 中的憨豆先生,你可以从 Linux 中的 [Grub 引导加载器][1] 页面访问 UEFI 设置。 ![uefi firmware settings grub linux][2] 当你打开 Linux 系统时,你会看到这个页面。Fedora 和 Ubuntu 等大多数 Linux 发行版都使用 Grub,它们允许你像这样从 Grub 页面访问 UEFI 设置。 -如果你没有看到此页面或你的发行版不使用 Grub 怎么办? 仍然有一些方法可以从 Linux 中访问 UEFI 设置。 +如果你没有看到此页面,或你的发行版不使用 Grub 怎么办? 仍然有一些方法可以从 Linux 中访问 UEFI 设置。 -在你了解如何操作之前,请[确保你的系统使用 UEFI][3]。 +在你了解如何操作之前,请 [确保你的系统使用的是 UEFI][3]。 -**_另一件重要的事情。你的系统将重启进入 UEFI 设置。_** _你无法从操作系统中访问和修改固件设置。_ +另一件重要的事情。你的系统重启才能进入 UEFI 设置。你无法从操作系统中访问和修改固件设置。 ### 从 Linux 启动到 UEFI 设置 @@ -51,13 +51,13 @@ systemctl reboot --firmware-setup - `reboot`:顾名思义,它将重启你的系统。 - `--firmware-setup`: 当此选项与 `reboot` 一起使用时,它会指示系统固件启动进入固件设置界面。 -就是这样! 一个命令,你将进入 UEFI 设置。我知道 Windows 允许[从 Windows 中启动进入 UEFI 固件设置][6]。很高兴在 Linux 中看到类似的东西。 +就是这样! 一个命令,你将进入 UEFI 设置。我知道 Windows 允许 [从 Windows 中启动进入 UEFI 固件设置][6]。很高兴在 Linux 中看到类似的东西。 #### 创建桌面快捷方式以启动到 UEFI 设置(可选) -如果你经常发现自己启动进入 UEFI 设置并且不记得所有命令,你可以通过创建桌面快捷方式让你的生活更轻松。这将使你可以通过单击桌面图标启动到 UEFI。 +如果你经常发现自己启动进入 UEFI 设置,并且不记得所有命令,你可以通过创建桌面快捷方式让你的生活更轻松。这将使你可以通过单击桌面图标启动到 UEFI。 -_**现在,对于大多数 Linux 用户来说,这是不必要的,也不是必需的。只有当你觉得有必要时才去做。该方法需要[在命令行中编辑文件][7]。**_ +不过,对于大多数 Linux 用户来说,这是不必要的,也不是必需的。只有当你觉得有必要时才去做。该方法需要 [在命令行中编辑文件][7]。 首先,使用给定的命令为 UEFI 设置创建桌面快捷方式文件: @@ -86,11 +86,11 @@ Categories=System;Settings; ![boot into uefi firmware from system menu][10] -完成了! 一种进入 UEFI 设置的巧妙方法。 +完成了!一种进入 UEFI 设置的巧妙方法。 ### 总结 -访问启动设置的经典方法对某些人来说可能有点不方便。grub 页面可能不会显示旧版本的 UEFI 选项。 +访问启动设置的经典方法对某些人来说可能有点不方便。Grub 页面可能不会显示旧版本的 UEFI 选项。 这就是 systemd 方法的亮点所在。当我的系统崩溃并且我的功能键没有响应时,我发现这种方法是救命稻草,这是启动到 UEFI 所必需的(我当时就是这么想的!)。 @@ -103,7 +103,7 @@ via: https://itsfoss.com/access-uefi-from-linux/ 作者:[Sagar Sharma][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/) 荣誉推出 From a38cfd353d98ca35b44de3f11949437587d68e72 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 18 Dec 2022 16:45:58 +0800 Subject: [PATCH 2382/3123] R @chai001125 --- ...️ 7 pro tips for using the GDB step command.md | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md index ea398cd4a0..8073fbf1c6 100644 --- a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md +++ b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md @@ -7,10 +7,12 @@ [#]: publisher: " " [#]: url: " " -GDB 进入函数内部的 7 个命令 +GDB 的 7 个单步调试命令 ====== ->**调试器**是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 **GDB 进入函数内部的几个命令**,包含了 **`step` 命令**和其他几个**常见的 GDB 命令**。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。 +> 即使是复杂的函数,也有几种方法可以单步调试,所以下次在排除代码故障时,可以尝试一下这些 GDB 技术。 + +**调试器** 是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 GDB 的 `step` 命令和其他几种常见情况的相关命令。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。 ### 1、无调试符号 @@ -19,6 +21,7 @@ GDB 进入函数内部的 7 个命令 ``` #include + int num() { return 2; } @@ -27,13 +30,14 @@ void bar(int i) { printf("i = %d\n", i); } + int main() { bar(num()); return 0; } ``` -如果你在没有 调试符号 debugging sysbols 的情况下进行编译(即在使用 `gcc` 编译程序时上,没有写 `-g` 选项),然后在 `bar` 上设置一个断点,然后尝试在这个函数内使用 `step`,来单步执行语句。GDB 会给出一个 没有行号信息 no line number information 的错误信息。 +如果你在没有 调试符号 debugging sysbols 的情况下进行编译(LCTT 译注:即在使用 `gcc` 编译程序时没有写 `-g` 选项),然后在 `bar` 上设置一个断点,然后尝试在这个函数内使用 `step` 来单步执行语句。GDB 会给出一个 没有行号信息 no line number information 的错误信息。 ``` gcc exmp.c -o exmp @@ -50,9 +54,9 @@ i = 2 0x0000000000401168 in main () ``` -### 2、`stepi` 命令 +### 2、stepi 命令 -但是你仍然可以在没有行号信息的函数内部单步执行语句,但要使用 `stepi` 命令来代替 `step`。`stepi` 一次只执行一条指令。当使用 GDB 的 `stepi` 命令时,先做 `display/i $pc` 通常很有用,这会在每一步之后**显示** **程序计数器的值** program counter value 和**相应的** **机器指令** machine instruction : +但是你仍然可以在没有行号信息的函数内部单步执行语句,但要使用 `stepi` 命令来代替 `step`。`stepi` 一次只执行一条指令。当使用 GDB 的 `stepi` 命令时,先做 `display/i $pc` 通常很有用,这会在每一步之后**显示** 程序计数器 program counter 的值和**相应的** 机器指令 machine instruction : ``` (gdb) b bar @@ -84,7 +88,7 @@ $1 = 2 ### 3、复杂的函数调用 -在带调试符号的 `-g` 选项,重新编译示例程序后,你可以用 `main` 中的行号,在 `bar` 上设置断点,然后再单步执行 `bar` 函数的语句: +在带调试符号的 `-g` 选项,重新编译示例程序后,你可以使用行号在 `main` 中 `bar` 调用上设置断点,然后再单步执行 `bar` 函数的语句: ``` gcc -g exmp.c -o exmp @@ -105,7 +109,7 @@ num () at exmp.c:4 4 return 2; ``` -函数调用的参数需要在实际的函数调用之前进行处理,`bar()` 函数调用了 `num()` 函数,所以 `num()` 会在 `bar()` 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 `bar()` 函数呢?你可以使用 `finish` 命令,并再次使用 `step` 命令。 +函数调用的参数需要在实际的函数调用之前进行处理,`bar()` 函数的参数是 `num()` 函数,所以 `num()` 会在 `bar()` 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 `bar()` 函数呢?你可以使用 `finish` 命令,并再次使用 `step` 命令。 ``` (gdb) finish @@ -118,11 +122,10 @@ bar (i=2) at exmp.c:9 9 printf("i = %d\n", i); ``` -### 4、`Tbreak` 命令 +### 4、tbreak 命令 `tbreak` 命令会设置一个**临时断点**。如果你不想设置永久断点,那么这个命令是很有用的。举个例子🌰,你想进入一个复杂的函数调用,例如 `f(g(h()), i(j()), ...)`,在这种情况下,你需要一个很长的 `step/finish/step` 序列,才能到达 `f` 函数。如果你设置一个临时断点,然后再使用 `continue` 命令,这样就不需要以上的序列了。为了证明这一点,你需要像以前一样将断点设置在 `main` 的 `bar` 调用上。然后在 `bar` 上设置临时断点。当到达该临时断点后,临时断点会被自动删除。 - ``` (gdb) r Starting program: /home/ahajkova/exmp @@ -132,7 +135,7 @@ Breakpoint 1, main () at exmp.c:14 Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9. ``` -在调用 `bar` 的时候遇到断点,并在 `bar` 上设置临时断点后,你只需要使用`continue` 继续运行直到 `bar` 结束。 +在调用 `bar` 的时候遇到断点,并在 `bar` 上设置临时断点后,你只需要使用 `continue` 继续运行直到 `bar` 结束。 ``` (gdb) continue @@ -141,9 +144,9 @@ Temporary breakpoint 2, bar (i=2) at exmp.c:9 9 printf("i = %d\n", i); ``` -### 5、`disable` 命令 +### 5、disable 命令 -类似地,你也可以在 `bar` 上设置一个正常的断点,然后执行 `continue`,然后在不再需要第二个断点时,使用`disable` 命令禁用这个断点,这样也能达到与 `tbreak` 相同的效果。 +类似地,你也可以在 `bar` 上设置一个正常的断点,然后执行 `continue`,然后在不再需要第二个断点时,使用 `disable` 命令禁用这个断点,这样也能达到与 `tbreak` 相同的效果。 ``` (gdb) b exmp.c:14 @@ -161,7 +164,7 @@ Breakpoint 2, bar (i=2) at exmp.c:9 (gdb) disable 2 ``` -正如你所看到的,`info breakpoints` 命令在 `Enb` 下显示为 `n`,这意味着这个断点已被禁用。但你也能在再次需要这个断点时,再启用它。 +正如你所看到的,`info breakpoints` 命令在 `Enb` 列下显示为 `n`,这意味着这个断点已被禁用。但你也能在再次需要这个断点时,再启用它。 ``` (gdb) info breakpoints @@ -179,7 +182,7 @@ breakpoint already hit 1 time breakpoint already hit 1 time ``` -### 6、`Advance` 命令运行程序到指定的位置 +### 6、advance 命令运行程序到指定的位置 另一个进入函数内部的方法是 `advance` 命令。你可以简单地用 `advance bar`,来代替 `tbreak bar ; continue`。这一命令会将程序继续运行到指定的位置。 @@ -196,7 +199,7 @@ bar (i=2) at exmp.c:9 9 printf("i = %d\n", i); ``` -### 7、`skip` 命令 +### 7、skip 命令 进入 `bar` 函数的另一种方式是使用 `skip num` 命令: @@ -222,7 +225,7 @@ Num Enb Glob File RE Function 1 y n n num ``` -如果不再需要 `skip`,可以禁用(稍后重新启用)或完全删除它。你可以添加另一个 `skip`,并禁用第一个 `skip`,然后全部删除。要禁用某个 `skip`,必须指定其编号(例如,`skip disable 1`),如果没有指定,则会禁用所有的 `skip`。启用或删除 `skip` 的工作原理相同: +如果不再需要 `skip`,可以禁用(并稍后重新启用)或完全删除它。你可以添加另一个 `skip`,并禁用第一个 `skip`,然后全部删除。要禁用某个 `skip`,必须指定其编号(例如,`skip disable 1`),如果没有指定,则会禁用所有的 `skip`。启用或删除 `skip` 的工作原理相同: ``` (gdb) skip bar @@ -236,9 +239,9 @@ Num Enb Glob File RE Function Not skipping any files or functions. ``` -### GDB 的 `step` 命令 +### GDB 的 step 命令 -使用 GDB 的 `step` 命令是调试程序的一个有用工具。即使是复杂的函数,也有几种方法可以进入这些函数,所以下次你在排除代码问题的时候,可以尝试一下这些 GDB 技术。 +使用 GDB 的 `step` 命令是调试程序的一个有用工具。即使是复杂的函数,也有几种方法可以单步调试这些函数,所以下次你在排除代码问题的时候,可以尝试一下这些 GDB 技术。 -------------------------------------------------------------------------------- @@ -247,7 +250,7 @@ via: https://opensource.com/article/22/12/gdb-step-command 作者:[Alexandra][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 29941767a1fe0a75c04cea1ca3438225c00b533c Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Sun, 18 Dec 2022 17:06:04 +0800 Subject: [PATCH 2383/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= =?UTF-8?q?=20(#28261)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 Promises Much More than Faster Speeds.md | 95 ------------------- ...6 Promises Much More than Faster Speeds.md | 95 +++++++++++++++++++ 2 files changed, 95 insertions(+), 95 deletions(-) delete mode 100644 sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md create mode 100644 translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md diff --git a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md deleted file mode 100644 index fd7b08a93e..0000000000 --- a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: "WiFi 6 Promises Much More than Faster Speeds" -[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/" -[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/" -[#]: collector: "lkxed" -[#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -WiFi 6 Promises Much More than Faster Speeds -====== -WiFi 6 increases the network connectivity, and has been developed to ensure the trillions of devices connected in the near future continue to work seamlessly and efficiently. Though it was certified in 2019, it faced a few challenges in testing due to the pandemic. This article gives an overview of this technology. - -![WiFi-6][1] - -The next-generation standard in WiFi technology, termed ‘WiFi 6’, is also known as ‘AX WiFi’ or ‘802.11ax’. Developed to meet the exponential increase in demand for devices in the world, it can be used for virtual reality (VR) and smart home devices as well. It is an improvement on the current 802.11ac WiFi standard and meets current challenges in terms of capacity, efficiency, coverage and performance. - -![Figure 1: WiFi 6][2] - -Researched in 2014, this standard was invented in 2018 and launched by the IEEE High Efficiency WLAN Study Group (HEW SG). It began certifications in late 2019, with Samsung’s Galaxy Note 10 and Ruckus R750 employing this technology. Specified to operate between the 1GHz and 6GHz bands, WiFi 6 focuses mainly between the 2.4GHz and 5GHz frequencies. - -In an average household today, nine devices are connected to WiFi. WiFi 6 aims at improving the network rather than boosting the speed for individual devices. - -### Features of WiFi 6 - -**Multi-user, multi-input, multi-output (MU-MIMO):** This communication between routers and multiple devices concurrently. It supports four simultaneous data streams, added to which one user can have a considerable bandwidth of incoming data from a smart router, both on the 2.4GHz and 5GHz frequencies. -**1024-QAM:** This helps WiFi 6 encode more bits per packet. There is a 25 per cent increase in throughput. Not only does it improve efficiency in high-traffic situations, it also maximises data rates. This is a huge advantage for modern enterprise applications. -**Orthogonal frequency-division multiplexing (OFDM):** This allows four times as many subcarriers and increases speed by 11 per cent. The expanded signal allows for greater simultaneous packet delivery across users. Hence, the wait time between packets and latency is reduced. -*Increased channel width:* The 160MHz channel communication is added to the 80MHz band, thus doubling the channel width. This allows routers to handle more users and provide larger streams per user. -*Target wake time (TWT):* This feature is unique to WiFi 6. It allows each device to independently negotiate wake time for transmission and reception. This helps to increase total sleep time and maximise battery life. TWT enables many additional networking options, especially for IoT devices. -*Improved security:* All WiFi 6 devices will need to include Wi-Fi Protected Access 3 (WPA3). This will lead to encryption of unauthenticated traffic, robust password protection against brute-force dictionary attacks, and superior data reliability for sensitive information with 192-bit encryption. -*Beamforming:* With eight support antennas, beamforming helps to improve data rates, and the range is extended by directing signals towards specific clients at once. It offers a backup for rapidly moving devices that may face issues with MU-MIMO. Beamforming also helps to control transmissions from antennas that cause signals to interfere on purpose. The signal can then be redirected to a new direction. - -### Devices that support WiFi 6 - -Until recently, WiFi 5 was the standard used for routers, repeaters, mesh networks and many WiFi clients. WiFi 6 was launched in 2019. There will be some compatibility issues for the earlier devices that supported WiFi 5 — they will be able to utilise the WiFi 6 network but not be able to receive support for the same. - -WiFi 6 routers are backward-compatible, and it is better to make sure that the network is ready for that. - -WiFi 6 enables lower battery consumption, making it a great choice for any environment, including the Internet of Things (IoT). It reduces unnecessary data activity, and tells devices when to put their data to sleep and when to be active. As a result, unnecessary data activity is reduced, and performance and battery life are maximised. - -The Samsung Galaxy Note 10 and Ruckus R750 were the world’s first smartphone and access point certified to support Wi-Fi 6, with the latest generation of the Apple iPhone following suit. The Wi-Fi Alliance has set up its certification programme, and new wireless products hitting the market are expected to start applying for compliance certification. The devices listed below are already WiFi 6 enabled: - -* iPhone 11 and after -* Samsung Galaxy S10, S20, Note 10, and Note 20 -* Apple computers with M1 processors -* Smart TVs - -> To take advantage of the improvements in the 802.11ax standard fully, both hardware and software functionalities have to be built on this WiFi technology. - -### Hardware testing - -To unlock the full potential of the latest devices, a WiFi 6 router is needed to run the network. This was an expensive affair a few years ago, but now we have a number of options even for mesh systems, gaming routers, range extenders, and more. The best purchase can be made only when hands-on testing is done. Beating all its competitors, the current king in terms of speed for WiFi 6 routers is TP-Link Archer AX6000. This router was able to transmit data wirelessly at a rate of 1523 Mbps up to a distance of 1.5 metres (5 feet). - -One important thing to remember here is that these routers do not magically increase speeds. The theoretical maximum of achieving 9.6 Gbps is unlikely. This high theoretical speed can be split up across a whole network of devices. - -WiFi 6 emphasises quality connectivity in areas where connected devices are densely populated. It does not increase the speed of each device exponentially but ensures these operate at an optimum level. - -Only the combination of a faster plan from the Internet service providers (ISPs) along with the WiFi 6 router, can fulfil its true potential. The real challenge is for the ISPs, as they need new fibre rollouts to capitalise on this next-gen technology. An important question is: when faster ISP speeds come, will the existing hardware become redundant? - -### Applications of WiFi 6 - -**Large public venues (LPVs):** Stadiums and convention centres are a few of the common areas where thousands of devices connect to WiFi at the same time. WiFi 6 can help to improve attendee experiences, increase customer interactions, and create value-added services like viewing instant replays or ordering food from one’s seat at an event. WiFi 6 allows LPV owners to create new business opportunities. -**Transport hubs:** Public transport stations are also an area where people attempt to connect to the network simultaneously. OFDMA and BSS colouring in WiFi 6 provide the necessary tools needed to overcome this challenge. -**IoT and smart city deployments:** Power efficiencies in WiFi 6 enable IoT devices to go into sleep mode and turn on their transmitters at predefined intervals to prolong field time without much maintenance. -**Education:** Libraries, auditoriums, and lecture halls at college and university campuses have the highest density of WiFi users during the day, and almost no one at night. WiFi 6 is a perfect choice in this situation. - -### The challenges - -WiFi 6 does not promise an increase in speed, but is an upgrade designed to make sure the speeds of our devices within a given range/area doesn’t slow down a few years down the road. There are three major challenges it faces though, which are often overlooked. -Improving the functionality of unsupported devices: Even though WiFi 6 is backward- compatible, justice to it can only be done when this technology is used to the maximum. This means devices need to be upgraded each time. - -Speed and performance outside the internal network: WiFi 6 can provide excellent connectivity for services like cloud file shares. However, the assets and resources of ISPs can affect speed and performance. - -*Coverage issues:* Transmission and bandwidths are capped according to the regulations prevalent in each country. Hence, the coverage of WiFi 6 may be restricted to ensure this cap is met. - -In spite of these challenges, companies like Aruba, Asus, AT&T, Boingo, Broadcom, Cisco, Comcast, CommScope, Cypress, Extreme Networks, Intel, Netgear, Orange, Qualcomm, TP-Link and Xiaomi are all focusing on the potential WiFi 6 has. - -(LCTT 译注:选题删除了原文中的相关产品推荐部分。) - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/ - -作者:[Sharon Katta][a] -选题:[lkxed][b] -译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.opensourceforu.com/author/sharon-katta/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg diff --git a/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md new file mode 100644 index 0000000000..210c958523 --- /dev/null +++ b/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md @@ -0,0 +1,95 @@ +[#]: subject: "WiFi 6 Promises Much More than Faster Speeds" +[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/" +[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/" +[#]: collector: "lkxed" +[#]: translator: "cool-summer-021" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +WiFi 6 带来的不仅是高速 +====== +WiFi 6 提高了网络连通性,它在不久的将来有望为数万亿台设备组网,并且能够不间断而高效地工作。它虽然在2019年就取得了官方认证,但由于疫情原因,它的测试工作面临不少挑战。本文旨在对这项技术进行概述。 + +![WiFi-6][1] + +WiFi 技术的下一代标准,称为 ‘WiFi 6’,也可以称为 ‘AX WiFi’ 或 ‘802.11ax’。它是为满足指数级增长的设备组网需求而产生的,因此也可以用于 VR 和智能家居。它是现有的 802.11ac WiFi 标准的升级版,可以应对现有技术在容量、效率、覆盖范围和性能方面遇到的挑战。 + +![Figure 1: WiFi 6][2] + +这项技术是在 2014 年进行研发,完成于2018年,由 IEEE 高性能无线网络研究组发布。产品认证于 2019 年后期进行,此时 Samsung Galaxy Note 10 和 Ruckus R750 使用了这种技术。WiFi 6 运行于 1GHz 和 6GHz 波段,主要的频率为 2.4GHz-5GHz。 + +如今,每个家庭平均有九台设备需要连接 Wifi。WiFi 6 主要致力于改善网络质量,而不是提升某些设备的速度。 + +### WiFi 6的特点 + +**多用户、多输入、多输出(MU-MIMO):** 路由器和多台设备可以同时通信。支持即时数据流,用户可以从智能路由器接收的输入数据的带宽很大,在频率为 2.4GHz-5GHz 时都是可行的。 +**1024-QAM:** 这令 WiFi 6 的每个数据包能编码的字节数更多,吞吐量增加了 25%。它不仅提高了大业务量情况下的通信效率,也最大限度增加了传输速率。这在现代企业应用系统领域有很大的优势。 +**正交频分复用(OFDM):** 支持四倍的负载波,速度也提高了 11%。扩展的信号支持用户进行更大的即时数据包传输。所以数据包之间的等待时间和延迟就减少了。 +*增加的信道宽度:* 80MHz的波段加入了160MHz的信道通信,信道宽度增加了一倍。因此,路由器可以容纳更多用户,为每个用户提供更大的数据流。 +*目标唤醒时间(TWT):* 这是 WiFi 6 特有的。它支持每台设备协商发送和接收的唤醒时间。它可以增加总体处于睡眠状态的时间,令电池寿命最大化。它还支持许多额外的网络选项,特别是对 IoT 设备的支持。 +*提升安全性:* 一切支持 WiFi 6 的设备都需要包含 WPA3 协议。它可以对未经验证的通信进行加密,针对暴力字典攻击提供强大的密码保护,以及对敏感信息进行 192 位的加密,提升数据的可靠性。 +*波束赋形:* 借助八根天线,波束赋形能提高传输速率,通信范围也因直接定向到某个客户端而扩大。它对快速移动的、可能面临多用户、多输入、多输出的设备起到了支撑作用。波束赋形也有利于控制那些蓄意发出干扰信号的天线的传输。然后信号会被重新定向到新的目标。 + +### 支持 WiFi 6的设备 + +到目前为止,路由器、中继器、网状网络和多数 WiFi 使用者还是以 WiFi 5 为标准。WiFi 6 是 2019 年推出的。一些支持 WiFi 5 的早期设备存在一些兼容性问题——它们可以使用 WiFi 6 的网络,但得不到相应的支持服务。 + +WiFi 6 的路由器是向后兼容的。应该确保网络已经为此做好了准备。 + +WiFi 6 实现了较低的电量消耗,在任何场景(包括 IoT)下,都是个不错的选择。它减少了不必要的数据流动,还会通知设备何时将数据激活或令其睡眠。所以不必要的数据流动减少了,性能和电池寿命也提高了。 + +Samsung Galaxy Note 10 和 Ruckus R750 是全球第一款经认证支持 WiFi 6 的智能手机和接入设备,Apple iPhone 最新款也紧随其后。WiFi 联盟建、确立了认证方案,正如人们预期的那样,等待入市的那些新款无线产品也开始申请认证了。下列设备已支持 WiFi 6: + +* iPhone 11 和之后的型号 +* Samsung Galaxy S10, S20, Note 10 和 Note 20 +* 配置 M1 处理器的苹果电脑 +* 智能电视 + +> 为了全面享受到 802.11ax 标准带来的改进,硬件和软件的功能都需要基于这种 WiFi 技术进行升级。 + +### 硬件测试 + +为了充分挖掘最新款设备的潜力,需要一台 WiFi 6 路由器来运行网络。几年前,这么做的成本很高,但现在我们有多种选项,甚至可以使用网格系统,游戏路由器,范围扩展器等等。只有在进行实际测试时,才可以购买最划算的设备。如今,在速度方面,TP-Link Archer AX6000 是最快的,它击败了所有的竞争者。这款路由器可以以 1523 Mbps 的速率无线传输数据,有效传输距离为 1.5米(5英尺)。 + +很重要的一点,请务必记住,这些路由器提速,并不是在变魔术。理论上的最大速率9.6 Gbps是实现不了的。这种理论上的最大速率,实际上也会被多台设备分摊掉。 + +WiFi 6 侧重于在连接设备密集的地方提供高质量的连接。它不会令单台设备的速率指数级增长,但会使相关的操作处于理想水平。 + +只有各大互联网服务提供商(ISP)的加速计划组合起来,加上 WiFi 6 路由器,才能体现它的真正潜力。真正的挑战是那些 ISP 承受的,因为它们需要铺设新型的光纤来利用这种下一代技术。存在一个重要的问题:当ISP 的通信速率变得更快,现有的硬件会变得多余吗? + +### WiFi 6 的应用 + +**大型公共场所(LPVs):** 体育馆和会议室是上千台设备同时联网的公共场所。WiFi 6 能改善参会者体验,增强消费者互动,还能提供附加服务,比如即时回放,订购餐食等。它还支持 LPV 业主开拓新的商业机会。 +**交通枢纽:** 公共交通站点也是人们需要同时联网的场所。OFDMA 和 BSS 这类明显具有 WiFi 6 色彩的技术为解决这种问题提供了必要的工具。 +**物联网和智慧城市建设:** WiFi 6 的效率令物联网设备可以进入休眠模式,并且可以以预定的间隔信号开启信号传送器,以便在无需过多维护的情况下增加现场作业时间。 +**教育机构:** 大学校园内的图书馆、礼堂和报告厅内的日间 WiFi 使用密度也是最高的,夜晚几乎没有人。WiFi 6 是这类场景的完美选项。 + +### 面临的挑战 + +WiFi 6 不一定使速度更快,但它能确保在一定范围内的设备速率不会在未来几年变慢。虽然它面临三重挑战,但这些问题常常被忽视。 +需要对不支持的设备进行升级:即使 Wifi 6 向后兼容,但只能在最大限度使用这种技术时才能做得合理。这意味着每次都要更新设备。 + +内部网络以外的速度和性能:WiFi 6 能为诸如云文件共享之类服务提供极好的连接性。然而,ISP 的相关资源也会影响速度和性能。 + +*覆盖范围问题:* 在各个国家,传输信号和带宽都是由法律规定上限的。因此,为了符合法律规定的上限,WiFi 6 的覆盖范围也是受限的。 + +尽管存在这些挑战,一些企业,像Aruba, Asus, AT&T, Boingo, Broadcom, 思科, Comcast, CommScope, Cypress, Extreme Networks, 英特尔, Netgear, Orange, Qualcomm, TP-Link 和小米,都在关注 WiFi 6 更多的可能性。 + +(LCTT 译注:选题删除了原文中的相关产品推荐部分。) + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/ + +作者:[Sharon Katta][a] +选题:[lkxed][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/sharon-katta/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg From 122ae9951b963a70e2b6c3a6b36c4baa1485f501 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 18 Dec 2022 19:52:18 +0800 Subject: [PATCH 2384/3123] Translating --- ...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index 2858b33b75..29e1dbb48d 100644 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/" [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3ab08c034f1c55d53016e2354ad2137e027f1a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 18 Dec 2022 23:18:12 +0800 Subject: [PATCH 2385/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221218.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Use=20my=20Groovy=20color=20wheel=20calculator.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Use my Groovy color wheel calculator.md | 384 ++++++++++++++++++ 1 file changed, 384 insertions(+) create mode 100644 sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md diff --git a/sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md b/sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md new file mode 100644 index 0000000000..8b00c4240f --- /dev/null +++ b/sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md @@ -0,0 +1,384 @@ +[#]: subject: "Use my Groovy color wheel calculator" +[#]: via: "https://opensource.com/article/22/12/groovy-color-wheel" +[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use my Groovy color wheel calculator +====== + +Every so often, I find myself needing to calculate complementary colors. For example, I might be making a line graph in a web app or bar graphs for a report. When this happens, I want to use complementary colors to have the maximum "visual difference" between the lines or bars. + +Online calculators can be useful in calculating two or maybe three complementary colors, but sometimes I need a lot more–for instance, maybe 10 or 15. + +Many online resources explain how to do this and offer formulas, but I think it's high time for a Groovy color calculator. So please follow along. First, you might need to install Java and Groovy. + +### Install Java and Groovy + +Groovy is based on Java and requires a Java installation as well. Both a recent/decent version of Java and Groovy might be in your Linux distribution's repositories. Or you can install Groovy by following the instructions on the above link. + +A nice alternative for Linux users is [SDKMan][1], which can get multiple versions of Java, Groovy, and many other related tools. For this article, I'm using SDK's releases of: + +- Java: version 11.0.12-open of OpenJDK 11 +- Groovy: version 3.0.8 + +### Using a color wheel + +Before you start coding, look at a real color wheel. If you open [GIMP (the GNU Image Manipulation Program)][2] and look on the upper left-hand part of the screen, you'll see the controls to set the foreground and background colors, circled in red on the image below: + +![Controls to set foreground and background colors][3] + +If you click on the upper left square (the foreground color), a window will open that looks like this: + +![Set foreground color][4] + +If it doesn't quite look like that, click on the fourth from the left button on the top left row, which looks like a circle with a triangle inscribed in it. + +The ring around the triangle represents a nearly continuous range of colors. In the image above, starting from the triangle pointer (the black line that interrupts the circle on the left), the colors shade from blue into cyan into green, yellow, orange, red, magenta, violet, and back to blue. This is the color wheel. If you pick two colors opposite each other on that wheel, you will have two complementary colors. If you choose 17 colors evenly spaced around that wheel, you'll have 17 colors that are as distinct as possible. + +Make sure you have selected the **HSV** button in the top right of the window, then look at the sliders marked H, S, and V, respectively. These are **h**ue, **s**aturation, and **v**alue. When choosing contrasting colors, the hue is the interesting parameter. + +Its value runs from zero to 360 degrees; in the image above, it's 192.9 degrees. + +You can use this color wheel to calculate the complementary color to another manually–just add 180 to your color's value, giving you 372.9. Next, subtract 360, leaving 17.9 degrees. Type that 17.9 into the **H** box, replacing the 192.9, and poof, you have its complementary color: + +![Change foreground color][5] + +If you inspect the text box labeled **HTML notation** you'll see that the color you started with was **#0080a3,** and its complement is **#a33100**. Look at the fields marked **Current** and **Old** to see the two colors complementing each other. + +There is a most excellent and detailed [article on Wikipedia explaining HSL (hue, saturation, and lightness) and HSV (hue, saturation, and value) color models][6] and how to convert between them and the RGB standard most of us know. + +I'll automate this in Groovy. Because you might want to use this in various ways, create a **Color** class that provides constructors to create an instance of Color and then several methods to query the color of the instance in HSV and RGB. + +Here's the **Color** class, with an explanation following: + +``` +     1  /** +     2   *  This class based on the color transformation calculations +     3   *  in https://en.wikipedia.org/wiki/HSL_and_HSV +     4   * +     5   *  Once an instance of Color is created, it can be transformed +     6   *  between RGB triplets and HSV triplets and converted to and +     7   *  from hex codes. +     8   */ +        +     9  public class Color { +        +    10      /** +    11       * May as well keep the color as both RGB and HSL triplets +    12       * Keep each component as double to avoid as many rounding +    13       * errors as possible. +    14       */ +        +    15      private final Map rgb // keys 'r','g','b'; values 0-1,0-1,0-1 double +    16      private final Map hsv // keys 'h','s','v'; values 0-360,0-1,0-1 double +        +    17      /** +    18       * If constructor provided a single int, treat it as a 24-bit RGB representation +    19       * Throw exception if not a reasonable unsigned 24 bit value +    20       */ +        +    21      public Color(int color) { +    22          if (color < 0 || color > 0xffffff) { +    23              throw new IllegalArgumentException('color value must be between 0x000000 and 0xffffff') +    24          } else { +    25              this.rgb = [r: ((color & 0xff0000) >> 16) / 255d, g: ((color & 0x00ff00) >> 8) / 255d, b: (color & 0x0000ff) / 255d] +    26              this.hsv = rgb2hsv(this.rgb) +    27          } +    28      } +        +    29      /** +    30       * If constructor provided a Map, treat it as: +    31       * - RGB if map keys are 'r','g','b' +    32       *   - Integer and in range 0-255 ⇒ scale +    33       *   - Double and in range 0-1 ⇒ use as is +    34       * - HSV if map keys are 'h','s','v' +    35       *   - Integer and in range 0-360,0-100,0-100 ⇒ scale +    36       *   - Double and in range 0-360,0-1,0-1 ⇒ use as is +    37       * Throw exception if not according to above +    38       */ +        +    39      public Color(Map triplet) { +    40          def keySet = triplet.keySet() +    41          def types = triplet.values().collect { it.class } +    42          if (keySet == ['r','g','b'] as Set) { +    43              def minV = triplet.min { it.value }.value +    44              def maxV = triplet.max { it.value }.value +    45              if (types == [Integer,Integer,Integer] && 0 <= minV && maxV <= 255) { +    46                  this.rgb = [r: triplet.r / 255d, g: triplet.g / 255d, b: triplet.b / 255d] +    47                  this.hsv = rgb2hsv(this.rgb) +    48              } else if (types == [Double,Double,Double] && 0d <= minV && maxV <= 1d) { +    49                  this.rgb = triplet +    50                  this.hsv = rgb2hsv(this.rgb) +    51              } else { +    52                  throw new IllegalArgumentException('rgb triplet must have integer values between (0,0,0) and (255,255,255) or double values between (0,0,0) and (1,1,1)') +    53              } +    54          } else if (keySet == ['h','s','v'] as Set) { +    55              if (types == [Integer,Integer,Integer] && 0 <= triplet.h && triplet.h <= 360 +    56              && 0 <= triplet.s && triplet.s <= 100 && 0 <= triplet.v && triplet.v <= 100) { +    57                  this.hsv = [h: triplet.h as Double, s: triplet.s / 100d, v: triplet.v / 100d] +    58                  this.rgb = hsv2rgb(this.hsv) +    59              } else if (types == [Double,Double,Double] && 0d <= triplet.h && triplet.h <= 360d +    60              && 0d <= triplet.s && triplet.s <= 1d && 0d <= triplet.v && triplet.v <= 1d) { +    61                  this.hsv = triplet +    62                  this.rgb = hsv2rgb(this.hsv) +    63              } else { +    64                  throw new IllegalArgumentException('hsv triplet must have integer values between (0,0,0) and (360,100,100) or double values between (0,0,0) and (360,1,1)') +    65              } +    66          } else { +    67              throw new IllegalArgumentException('triplet must be a map with keys r,g,b or h,s,v') +    68          } +    69      } +        +    70      /** +    71       * Get the color representation as a 24 bit integer which can be +    72       * rendered in hex in the familiar HTML form. +    73       */ +        +    74      public int getHex() { +    75          (Math.round(this.rgb.r * 255d) << 16) + +    76          (Math.round(this.rgb.g * 255d) << 8) + +    77          Math.round(this.rgb.b * 255d) +    78      } +        +    79      /** +    80       * Get the color representation as a map with keys r,g,b +    81       * and the corresponding double values in the range 0-1 +    82       */ +        +    83      public Map getRgb() { +    84          this.rgb +    85      } +        +    86      /** +    87       * Get the color representation as a map with keys r,g,b +    88       * and the corresponding int values in the range 0-255 +    89       */ +        +    90      public Map getRgbI() { +    91          this.rgb.collectEntries {k, v -> [(k): Math.round(v*255d)]} +    92      } +        +    93      /** +    94       * Get the color representation as a map with keys h,s,v +    95       * and the corresponding double values in the ranges 0-360,0-1,0-1 +    96       */ +        +    97      public Map getHsv() { +    98          this.hsv +    99      } +        +   100      /** +   101       * Get the color representation as a map with keys h,s,v +   102       * and the corresponding int values in the ranges 0-360,0-100,0-100 +   103       */ +        +   104      public Map getHsvI() { +   105          [h: Math.round(this.hsv.h), s: Math.round(this.hsv.s*100d), v: Math.round(this.hsv.v*100d)] +   106      } +        +   107      /** +   108       * Internal routine to convert an RGB triple to an HSV triple +   109       * Follows the Wikipedia section https://en.wikipedia.org/wiki/HSL_and_HSV#Hue_and_chroma +   110       * (almost) - note that the algorithm given there does not adjust H for G < B +   111       */ +        +   112      private static def rgb2hsv(Map rgbTriplet) { +   113          def max = rgbTriplet.max { it.value } +   114          def min = rgbTriplet.min { it.value } +   115          double c = max.value - min.value +   116          if (c) { +   117              double h +   118              switch (max.key) { +   119              case 'r': h = ((60d * (rgbTriplet.g - rgbTriplet.b) / c) + 360d) % 360d; break +   120              case 'g': h = ((60d * (rgbTriplet.b - rgbTriplet.r) / c) + 120d) % 360d; break +   121              case 'b': h = ((60d * (rgbTriplet.r - rgbTriplet.g) / c) + 240d) % 360d; break +   122              } +   123              double v = max.value // hexcone model +   124              double s = max.value ? c / max.value : 0d +   125              [h: h, s: s, v: v] +   126          } else { +   127              [h: 0d, s: 0d, v: 0d] +   128          } +   129      } +        +   130      /** +   131       * Internal routine to convert an HSV triple to an RGB triple +   132       * Follows the Wikipedia section https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB +   133       */ +        +   134      private static def hsv2rgb(Map hsvTriplet) { +   135          double c = hsvTriplet.v * hsvTriplet.s +   136          double hp = hsvTriplet.h / 60d +   137          double x = c * (1d - Math.abs(hp % 2d - 1d)) +   138          double m = hsvTriplet.v - c +   139          if (hp < 1d)      [r: c  + m, g: x  + m, b: 0d + m] +   140          else if (hp < 2d) [r: x  + m, g: c  + m, b: 0d + m] +   141          else if (hp < 3d) [r: 0d + m, g: c  + m, b: x  + m] +   142          else if (hp < 4d) [r: 0d + m, g: x  + m, b: c  + m] +   143          else if (hp < 5d) [r: x  + m, g: 0d + m, b: c  + m] +   144          else if (hp < 6d) [r: c  + m, g: 0d + m, b: x  + m] +   145      } +        +   146  } +``` + +The **Color** class definition, which begins on line 9 and ends on line 146, looks a lot like a Java class definition (at first glance, anyway) that would do the same thing. But this is Groovy, so you have no imports up at the beginning, just comments. Plus, the details illustrate some more Groovyness. + +Line 15 creates the private final variable **rgb** that contains the color value supplied to the class constructor. You'll keep this value as **Map** with keys `r`, `g`, and `b` to access the RGB values. Keep the values as double values between 0 and 1 so that 0 would indicate a hexadecimal value of **#00** or an integer value of 0 and 1 would mean a hexadecimal value of **#ff** or an integer value of 255. Use double to avoid accumulating rounding errors when converting inside the class. + +Similarly, line 16 creates the private final variable **hsv** that contains the same color value but in HSV format–also a **Map**, but with keys `h`, `s`, and `v` to access the HSV values, which will be kept as double values between 0 and 360 (hue) and 0 and 1 (saturation and value). + +Lines 21-28 define a **Color** constructor to be called when passing in an int argument. For example, you might use this as: + +``` +def blue = new Color(0x0000ff) +``` + +- On lines 22-23, check to make sure the argument passed to the constructor is in the allowable range for a 24-bit integer RGB constructor, and throw an exception if not. +- On line 25, initialize the **rgb** private variable as the desired RGB Map, using bit shifts and dividing each by a double value 255 to scale the numbers between 0 and 1. +- On line 26, convert the RGB triplet to HSV and assign it to the **hsv** private variable. + +Lines 39-69 define another **Color** constructor to be called when passing in either an RGB or HSV triple as a **Map**. You might use this as: + +``` +def green = new Color([r: 0, g: 255, b: 0]) +``` + +or + +``` +def cyan = new Color([h: 180, s: 100, v: 100]) +``` + +Or similarly with double values scaled between 0 and 1 instead of integers between 0 and 255 in the RGB case and between 0 and 360, 0 and 1, and 0 and 1 for hue, saturation, and value, respectively. + +This constructor looks complicated, and in a way, it is. It checks the **keySet()** of the map argument to decide whether it denotes an RGB or HSV tuple. It checks the class of the values passed in to determine whether the values are to be interpreted as integers or double values and, therefore, whether they are scaled into 0-1 (or 0-360 for hue). + +Arguments that can't be sorted out using this checking are deemed incorrect, and an exception is thrown. + +Worth noting is the handy streamlining provided by Groovy: + +``` +def types = triplet.values().collect { it.class } +``` + +This uses the **values()** method on the map to get the values as a **List** and then the **collect()** method on that **List** to get the class of each value so that they can later be checked against **[Integer,Integer,Integer]** or **[Double,Double,Double]** to ensure that arguments meet expectations. + +Here is another useful streamlining provided by Groovy: + +``` +def minV = triplet.min { it.value }.value +``` + +The **min()** method is defined on **Map**; it iterates over the **Map** and returns the **MapEntry**—a (key, value) pair—having the minimum value encountered. The **.value** on the end selects the value field from that **MapEntry**, which gives something to check against later to determine whether the values need to be normalized. + +Both rely on the Groovy Closure, similar to a Java lambda–a kind of anonymous procedure defined where it is called. For example, **collect()** takes a single **Closure** argument and passes it to each **MapEntry** encountered, known as the parameter within the closure body. Also, the various implementations of the Groovy Collection interface, including here **Map**, define the **collect()** and **min()** methods that iterate over the elements of the **Collection** and call the **Closure** argument. Finally, the syntax of Groovy supports compact and low-ceremony invocations of these various features. + +Lines 70-106 define five "getters" that return the color used to create the instance in one of five formats: + +- **getHex()** returns an int corresponding to a 24-bit HTML RGB color. +- **getRgb()** returns a **Map** with keys `r`, `g`, `b` and corresponding double values in the range 0-1. +- **getRgbI()** returns a **Map** with keys `r`, `g`, `b` and corresponding int values in the range 0-255. +- **getHsv()** returns a **Map** with keys `h`, `s`, `v` and corresponding double values in the range 0-360, 0-1 and 0-1, respectively. +- **getHsvI()** returns a **Map** with keys `h`, `s`, `v` and corresponding int values in the range 0-360, 0-100 and 0-100, respectively. + +Lines 112-129 define a static private (internal) method **rgb2hsv()** that converts an RGB triplet to an HSV triplet. This follows the algorithm described in the Wikipedia article [section on Hue and chroma][7], except that the algorithm there yields negative hue values when the green value is less than the blue value, so the version is modified slightly. This code isn't particularly Groovy other than using the **max()** and **min()****Map** methods and returning a **Map** instance declaratively without a return statement. + +This method is used by the two getter methods to return the **Color** instance value in the correct form. Since it doesn't refer to any instance fields, it is static. + +Similarly, lines 134-145 define another private (internal) method **hsv2rgb()**, that converts an HSV triplet to an RGB triplet, following the algorithm described in the Wikipedia article [section on HSV to RGB conversion][8]. The constructor uses this method to convert HSV triple arguments into RGB triples. Since it doesn't refer to any instance fields, it is static. + +That's it. Here's an example of how to use this class: + +``` +     1  def favBlue = new Color(0x0080a3) +        +     2  def favBlueRgb = favBlue.rgb +     3  def favBlueHsv = favBlue.hsv +        +     4  println "favBlue hex = ${sprintf('0x%06x',favBlue.hex)}" +     5  println "favBlue rgbt = ${favBlue.rgb}" +     6  println "favBlue hsvt = ${favBlue.hsv}" +        +     7  int spokeCount = 8 +     8  double dd = 360d / spokeCount +     9  double d = favBlue.hsv.h +    10  for (int spoke = 0; spoke < spokeCount; spoke++) { +    11      def color = new Color(h: d, s: favBlue.hsv.s, v: favBlue.hsv.v) +    12      println "spoke $spoke $d° hsv ${color.hsv}" +    13      println "    hex ${sprintf('0x%06x',color.hex)} hsvI ${color.hsvI} rgbI ${color.rgbI}" +    14      d = (d + dd) % 360d +    15  } +``` + +As my starting value, I've chosen the lighter blue from the [opensource.com][9] header **#0080a3**, and I'm printing a set of seven more colors that give maximum separation from the original blue. I call each position going around the color wheel a spoke and compute its position in degrees in the variable **d**, which is incremented each time through the loop by the number of degrees **dd** between each spoke. + +As long as `Color.groovy` and this test script are in the same directory, you can compile and run them as follows: + +``` +$ groovy test1Color.groovy +favBlue hex = 0x0080a3 +favBlue rgbt = [r:0.0, g:0.5019607843137255, b:0.6392156862745098] +favBlue hsvt = [h:192.88343558282207, s:1.0, v:0.6392156862745098] +spoke 0 192.88343558282207° hsv [h:192.88343558282207, s:1.0, v:0.6392156862745098] +    hex 0x0080a3 hsvI [h:193, s:100, v:64] rgbI [r:0, g:128, b:163] +spoke 1 237.88343558282207° hsv [h:237.88343558282207, s:1.0, v:0.6392156862745098] +    hex 0x0006a3 hsvI [h:238, s:100, v:64] rgbI [r:0, g:6, b:163] +spoke 2 282.8834355828221° hsv [h:282.8834355828221, s:1.0, v:0.6392156862745098] +    hex 0x7500a3 hsvI [h:283, s:100, v:64] rgbI [r:117, g:0, b:163] +spoke 3 327.8834355828221° hsv [h:327.8834355828221, s:1.0, v:0.6392156862745098] +    hex 0xa30057 hsvI [h:328, s:100, v:64] rgbI [r:163, g:0, b:87] +spoke 4 12.883435582822074° hsv [h:12.883435582822074, s:1.0, v:0.6392156862745098] +    hex 0xa32300 hsvI [h:13, s:100, v:64] rgbI [r:163, g:35, b:0] +spoke 5 57.883435582822074° hsv [h:57.883435582822074, s:1.0, v:0.6392156862745098] +    hex 0xa39d00 hsvI [h:58, s:100, v:64] rgbI [r:163, g:157, b:0] +spoke 6 102.88343558282207° hsv [h:102.88343558282207, s:1.0, v:0.6392156862745098] +    hex 0x2fa300 hsvI [h:103, s:100, v:64] rgbI [r:47, g:163, b:0] +spoke 7 147.88343558282207° hsv [h:147.88343558282207, s:1.0, v:0.6392156862745098] +    hex 0x00a34c hsvI [h:148, s:100, v:64] rgbI [r:0, g:163, b:76] +``` + +You can see the degree position of the spokes reflected in the HSV triple. I've also printed the hex RGB value and the int version of the RGB and HSV triples. + +I could have built this in Java. Had I done so, I probably would have created separate **RgbTriple** and **HsvTriple** helper classes because Java doesn't provide the declarative syntax for **Map**. That would have made finding the min and max values more verbose. So, as usual, the Java would have been more lengthy without improving readability. There would have been three constructors, though, which might be a more straightforward proposition. + +I could have used 0-1 for the hue as I did for saturation and value, but somehow I like 0-360 better. + +Finally, I could have added–and I may still do so one day–other conversions, such as HSL. + +### Wrap up + +Color wheels are useful in many situations and building one in Groovy is a great exercise to learn both how the wheel works and the, well, grooviness of Groovy. Take your time; the code above is long. However, you can build your own practical color calculator and learn a lot along the way. + +#### Groovy resources + +The Apache Groovy language site provides [a good tutorial-level overview][10] of working with Collection, particularly Map classes. This documentation is quite concise and easy to follow, at least partly because the facility it is documenting has been designed to be itself concise and easy to use! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/groovy-color-wheel + +作者:[Chris Hermansen][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/clhermansen +[b]: https://github.com/lkxed +[1]: https://sdkman.io/ +[2]: https://www.gimp.org/ +[3]: https://opensource.com/sites/default/files/2022-12/1controls.png +[4]: https://opensource.com/sites/default/files/2022-12/2foregroundcolor.png +[5]: https://opensource.com/sites/default/files/2022-12/3changeforegroundcolor_0.png +[6]: https://en.wikipedia.org/wiki/HSL_and_HSV +[7]: https://en.wikipedia.org/wiki/HSL_and_HSV#Hue_and_chroma +[8]: https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB +[9]: https://opensource.com/ +[10]: https://groovy-lang.org/databases.html + From 919954f94f57c00b5c3f98ceae4af2e6a776ba33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 18 Dec 2022 23:18:44 +0800 Subject: [PATCH 2386/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221218.1=20=E2=AD=90=EF=B8=8F=20Try=20this=20Pytho?= =?UTF-8?q?n-based=20file=20manager=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Try this Python-based file manager on Linux.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md diff --git a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md new file mode 100644 index 0000000000..e68b102a96 --- /dev/null +++ b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md @@ -0,0 +1,108 @@ +[#]: subject: "Try this Python-based file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Try this Python-based file manager on Linux +====== + +Dragonfly Navigator is a general-purpose file manager written in Python and Qt. It's easy to install, easy to use, and a great example of what Python can do. + +Python is a popular language for several reasons, but I think one of its primary strengths is that it's equally useful to beginner-level programmers and to experienced coders. There's something exciting about a language you can take from [drawing basic geometric shapes][1] to [scraping the web][2] to programming a zombie apocalypse [video game][3], or writing desktop applications you can use every day. And that's what Dragonfly Navigator is: a desktop utility that everyone can use. + +### Installing Dragonfly Navigator + +To install Dragonfly Navigator, first download the source code from its [Git repository][4]. If you're on Debian Linux or similar, download the `.deb` file. If you're using Fedora, CentOS, Mageia, OpenMandriva, or similar, then download the `.tar.gz` file. + +Dragonfly Navigator has a few dependencies. Because you aren't installing it through your package manager, it's up to you to resolve those. There are just two, so use your package manager (`dnf` or `apt`) to find and install them: + +- PyQt5, also called `python-qt5` +- Python PIL, also called `pillow` + +### Launching Dragonfly Navigator + +To launch Dragonfly Navigator, either install the `.deb` file (on Debian-based systems) or unarchive the `.tar.gz` file: + +``` +$ tar xvf dragonfly*gz +``` + +On Debian-based systems, Dragonfly Navigator appears in your application menu. ON other systems, you must launch it manually unless you [manually install it][5]. + +For now, I'm not installing it, so I launch it manually: + +``` +$ cd dragonfly +$ ./dragonfly +``` + +![Dragonfly Navigator is a two-panel file manager][6] + +### Dual pane + +Dragonfly Navigator is a two-panel file manager, meaning that it's always showing you two directories. At launch, both directories happen to be your home directory. You can browse through files and folders in either panel. They function exactly the same, and it only matters which panel you're "in" when you start copying or moving files. + +### Open a directory + +To open a directory, double-click it. By default, the directory opens in that same pane. If you want to utilize the two-panel layout, though, hold down the **Ctrl** key as you double-click to display its contents in the other panel. + +### Open a file + +To open a file, double-click or right-click on it. + +Yes, you can right-click a file to open it. That takes some getting used to, if you're used to a right-click bringing up a contextual menu. There is no contextual menu in Dragonfly Navigator, though, and you might be surprised at how much time you feel like you're saving yourself when you reduce the very common action of opening a file to just one click. It may seem silly now, but trust me you'll grow to cherish it. + +### Quick preview + +Some files are available for a quick preview so you don't have to open them in any particular application. To preview a file, hover your mouse over it and press the **Alt** key on your keyboard. A preview appears in the opposite panel. + +![The second panel of Dragonfly Navigator can be used as a preview pane.][7] + +### Copying and moving files + +To copy or move a file from one directory to another (or a directory to a directory), there are a few steps. + +- In one panel, navigate to the destination directory. This is the location you want to copy a file _to_. +- In the other panel, select the file you want to copy. +- Click the **Copy** button in the middle strip of Dragonfly Navigator. + +For moving a file, follow the same steps but click the **Move** button instead. + +If you're not used to a dual-panel file manager, this feels unfamiliar at first. But if you think about it, there are several steps required to copy a file in your usual file manager (find the file, open another window, drag-and-drop, and so on.) After you do it a few times, it becomes second nature. + +### Selecting files + +Normally, you click a file or folder to make it your active selection. That's probably no different than your current file manager, or at least to some file manager you've used in the past. + +To select multiple items in a range, click one file, and then hold the **Shift** key and click another file. All items between the two files you clicked are also selected. + +To select multiple arbitrary files, hold the **Ctrl** key and click on the files you want selected. + +### The power of Qt and Python + +The Qt toolkit is a powerful programming utility, and Python is capable of creating great applications with it. I've only covered the basics of Dragonfly Navigator in this article, so download it, read the docs, click around, explore it, and maybe you'll have found a fun new file manager. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator + +作者:[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/article/17/10/python-101#turtle +[2]: https://opensource.com/article/20/5/web-scraping-python +[3]: https://opensource.com/downloads/python-gaming-ebook +[4]: https://github.com/suncore/dflynav/releases +[5]: https://opensource.com/article/18/1/how-install-apps-linux +[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp +[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp From 2b4955e3253e1270c369be6543c7e614418fd59a Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 19 Dec 2022 08:24:21 +0800 Subject: [PATCH 2387/3123] Forth Translation Request --- ...210103 How open principles will impact the future of work.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210103 How open principles will impact the future of work.md b/sources/tech/20210103 How open principles will impact the future of work.md index 9217b08384..c7ecf68511 100644 --- a/sources/tech/20210103 How open principles will impact the future of work.md +++ b/sources/tech/20210103 How open principles will impact the future of work.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (CanYellow) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From f6b365089bc9028a7a59978662951463673d4328 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 19 Dec 2022 08:36:23 +0800 Subject: [PATCH 2388/3123] translated --- ...your Linux PC with the PCManFM file manager.md | 78 ------------------- ...your Linux PC with the PCManFM file manager.md | 78 +++++++++++++++++++ 2 files changed, 78 insertions(+), 78 deletions(-) delete mode 100644 sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md create mode 100644 translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md diff --git a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md deleted file mode 100644 index f97b3107bb..0000000000 --- a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md +++ /dev/null @@ -1,78 +0,0 @@ -[#]: subject: "Simplify your Linux PC with the PCManFM file manager" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Simplify your Linux PC with the PCManFM file manager -====== - -The PCMan File Manager, or PCManFM for short, is a fast and lightweight file manager that's full of features. It was developed for the [LXDE][1] desktop environment, but is a stand-alone application and can be used with the desktop or window manager of your choice. - -### Install PCManFM - -On Linux, you can probably find PCManFM in your software repository. For instance, on Fedora, Mageia, and similar: - -``` -$ sudo dnf install pcmanfm -``` - -On Debian, Elementary, and similar: - -``` -$ sudo apt install pcmanfm -``` - -![Image of the PCMan file manager.][2] - -PCManFM doesn't have to replace your desktop's file manager, but some distributions assume that when you install a "third party" file manager, you want it to take precedence over the default. Depending on the desktop you're using, there are different ways of setting your default file manager. Usually, it's in **System Settings** under **Default Applications**. - -If your desktop environment or window manager has no interface to select your default applications, you can set your preference in the `~/.local/share/applications/mimeapps.list` file. To designate a file manager as default, place it at the top of the `[Default Applications]` section, first specifying the file type and then the name of the application file (as it appears in `/usr/share/applications`) you want to use to open it: - -``` -inode/directory=myfilemanager.desktop; -``` - -### PCManFM - -If you're a fan of GNOME 2 or the Mate project's [Caja file manager][3], then PCManFM is a great alternative to consider. PCManFM is a lot like Caja in design, but it's not bound to the desktop in the way Caja is, so it's available even on the latest GNOME desktop. - -The default layout of PCManFM has a helpful toolbar near the top of the window, a side panel providing quick access to common directories and drives, and a status bar with details about your current selection. You can hide or show any of these elements using the **View** menu. - -### Tabs and panels - -PCManFM also uses tabs. If you've never used a tabbed file manager before, then think of a web browser and how it uses tabs to let you open multiple web pages in just one window. PCManFM can similarly open several directories in the same window. - -To transfer a file or folder from one tab to another, just drag the file's icon to the tab and hover. After a nominal delay, PCManFM brings the target tab to the front so you can continue your drag-and-drop operation. It takes some getting used to if you're not used to interacting with tabs in a file manager, but it doesn't take long, and it's a very powerful feature for decluttering your workspace. - -Another nice feature of the PCManFM interface is its ability to split a window into two panels. Each panel is effectively a tab, but each one only takes up half of the window. - -![Image of dual panels in PCMan.png][4] - -This makes dragging from one to the other just as easy and natural as dragging a file into a folder. I find it useful for comparing the contents of folders, too. - -### File management with PCMan - -PCManFM is a great little file manager with all the basic features you need on an everyday basis. It's a natural replacement for a file manager you might find too complicated, as well as a great option on [old computers][5] that might struggle with a file manager that's constantly drawing thumbnails and refreshing and generating animations. PCMan focuses on the core task of a file manager: managing files. Try it out on your Linux PC. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm - -作者:[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/article/19/12/lxqt-lxde-linux-desktop -[2]: https://opensource.com/sites/default/files/2022-10/pcmanfilemanager.png -[3]: https://opensource.com/article/22/12/linux-file-manager-caja -[4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png -[5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity diff --git a/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md new file mode 100644 index 0000000000..760c9511e0 --- /dev/null +++ b/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md @@ -0,0 +1,78 @@ +[#]: subject: "Simplify your Linux PC with the PCManFM file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 PCManFM 文件管理器简化你的 Linux PC +====== + +PCMan 文件管理器,或简称 PCManFM,是一个功能齐全的快速轻量级文件管理器。它是为 [LXDE][1] 桌面环境开发的,但它是一个独立的应用,可以与你选择的桌面或窗口管理器一起使用。 + +### 安装 PCManFM + +在 Linux 上,你可能可以在软件仓库中找到 PCManFM。例如,在 Fedora、Mageia 和类似软件上: + +``` +$ sudo dnf install pcmanfm +``` + +在 Debian、Elementary 和类似系统上: + +``` +$ sudo apt install pcmanfm +``` + +![Image of the PCMan file manager.][2] + +PCManFM 不必替换你的桌面文件管理器,但某些发行版假定当你安装“第三方”文件管理器时,你希望它优先于默认设置。根据你使用的桌面,有不同的方法来设置默认文件管理器。通常,它位于**默认应用**下的**系统设置**中。 + +如果你的桌面环境或窗口管理器没有选择默认应用的界面,你可以在 `~/.local/share/applications/mimeapps.list` 文件中设置你的首选项。要将文件管理器指定为默认,请将其放在 `[Default Applications]` 部分的顶部,首先指定文件类型,然后指定你像用于打开的应用文件的名称(在 `/usr/share/applications` 下): + +``` +inode/directory=myfilemanager.desktop; +``` + +### PCManFM + +如果您是 GNOME 2 或 Mate 项目的 [Caja 文件管理器][3]的粉丝,那么 PCManFM 是一个不错的选择。PCManFM 在设计上很像 Caja,但它不像 Caja 那样绑定到桌面,所以它甚至可以在最新的 GNOME 桌面上使用。 + +PCManFM 的默认布局在窗口顶部附近有一个有用的工具栏,一个提供对常用目录和驱动器的快速访问的侧面板,以及一个包含有关你当前选择的详细信息的状态栏。你可以使用**视图**菜单隐藏或显示这些元素中的任何一个。 + +### 选项卡和面板 + +PCManFM 也使用选项卡。如果你以前从未使用过选项卡式文件管理器,那么想想 Web 浏览器以及它如何使用选项卡让你在一个窗口中打开多个网页。PCManFM 可以类似地在同一窗口中打开多个目录。 + +要将文件或文件夹从一个选项卡传输到另一个选项卡,只需将文件的图标拖动到选项卡并悬停即可。少许延迟后,PCManFM 将目标选项卡置于最前面,以便你可以继续进行拖放操作。如果你不习惯与文件管理器中的选项卡进行交互,则需要一些时间来适应,但这不会花很长时间,而且它是整理工作区的一项非常强大的功能。 + +PCManFM 界面的另一个不错的功能是它能够将一个窗口分成两个面板。每个面板实际上都是一个选项卡,但每个面板只占窗口的一半。 + +![Image of dual panels in PCMan.png][4] + +这使得从一个面板拖到另一个面板就像将文件拖到文件夹中一样简单自然。我发现它对于比较文件夹的内容也很有用。 + +### 使用 PCMan 进行文件管理 + +PCManFM 是一款很棒的小型文件管理器,具有你日常所需的所有基本功能。它是你可能会觉得过于复杂的文件管理器的自然替代品,也是[旧计算机][5]上的一个很好的选择,这些电脑可能对不断绘制缩略图、刷新和生成动画的文件管理器感到挣扎。PCMan 专注于文件管理器的核心任务:管理文件。在你的 Linux 电脑上试试吧。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/12/lxqt-lxde-linux-desktop +[2]: https://opensource.com/sites/default/files/2022-10/pcmanfilemanager.png +[3]: https://opensource.com/article/22/12/linux-file-manager-caja +[4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png +[5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity From 2fb704182e0dfce1a9c823f1d37ec3599600981f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 19 Dec 2022 08:42:04 +0800 Subject: [PATCH 2389/3123] translating --- ...Beautiful Cross-Platform Music Player With Essential Features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md index 9b02d56dcc..ddb9a321c0 100644 --- a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md +++ b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/harmonoid/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ea1ff36bc791891e2ea4cdcccd195bb2940ad049 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 19 Dec 2022 09:26:13 +0800 Subject: [PATCH 2390/3123] P @geekpi https://linux.cn/article-15361-1.html --- ....2 ⭐️ How to Access UEFI Settings in Linux Systems.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) rename {translated/tech => published}/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md (95%) diff --git a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md similarity index 95% rename from translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md rename to published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md index b18ba3bf7f..e1dadbc783 100644 --- a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md +++ b/published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md @@ -4,12 +4,14 @@ [#]: collector: "lkxed" [#]: translator: "geekpi" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15361-1.html" 如何在 Linux 系统中访问 UEFI 设置 ====== +![][0] + 想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 `F2`、`F10` 或 `Del` 按键访问 UEFI 设置**。 这种方法的问题是你可能不知道确切的键,并且必须警惕在正确的时间按下这些键。 @@ -109,7 +111,7 @@ via: https://itsfoss.com/access-uefi-from-linux/ [a]: https://itsfoss.com/author/sagar/ [b]: https://github.com/lkxed -[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a +[1a]: https://img.linux.net.cn/data/attachment/album/202212/19/092256nkeoyuou6h3ykud6.gif [1]: https://itsfoss.com/what-is-grub/ [2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp [3]: https://itsfoss.com/check-uefi-or-bios/ @@ -120,3 +122,4 @@ via: https://itsfoss.com/access-uefi-from-linux/ [8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png [9]: https://linuxhandbook.com/nano-save-exit/ [10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/19/092450oi0c0c7cp4ng2nem.jpg \ No newline at end of file From e550733f7b923ed02b2d491dbe24dfe70697e940 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 19 Dec 2022 09:39:23 +0800 Subject: [PATCH 2391/3123] P @chai001125 https://linux.cn/article-15362-1.html --- ...8.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) rename {translated/tech => published}/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md (97%) diff --git a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md similarity index 97% rename from translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md rename to published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md index 8073fbf1c6..d864f7db50 100644 --- a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md +++ b/published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md @@ -3,13 +3,15 @@ [#]: author: "Alexandra https://opensource.com/users/ahajkova" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15362-1.html" GDB 的 7 个单步调试命令 ====== +![][0] + > 即使是复杂的函数,也有几种方法可以单步调试,所以下次在排除代码故障时,可以尝试一下这些 GDB 技术。 **调试器** 是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 GDB 的 `step` 命令和其他几种常见情况的相关命令。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。 @@ -257,3 +259,4 @@ via: https://opensource.com/article/22/12/gdb-step-command [a]: https://opensource.com/users/ahajkova [b]: https://github.com/lkxed [1]: https://opensource.com/article/21/3/debug-code-gdb +[0]: https://img.linux.net.cn/data/attachment/album/202212/19/093831nrjrmozx1mixmgii.jpg \ No newline at end of file From 5cd21731c167c06dc4ef4617a2c495bf1487aeb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 19 Dec 2022 18:31:14 +0800 Subject: [PATCH 2392/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221219.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Use=20Rexx=20for=20scripting=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...9.0 ⭐️⭐️ Use Rexx for scripting in 2023.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md diff --git a/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md new file mode 100644 index 0000000000..6ede79a4bf --- /dev/null +++ b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md @@ -0,0 +1,169 @@ +[#]: subject: "Use Rexx for scripting in 2023" +[#]: via: "https://opensource.com/article/22/12/rexx-scripting" +[#]: author: "Howard Fosdick https://opensource.com/users/howtech" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use Rexx for scripting in 2023 +====== + +In a [previous article][1], I showed how the Rexx scripting language is both powerful and easy to use. It uses specific techniques to reconcile these two goals that are often considered in conflict. + +This article walks you through two example Rexx scripts so you can get a feel for the language. Rexx purports to be highly capable yet easy to work with. + +### An example of a Rexx script + +The [LISP programming language][2] is famous for its overuse of parentheses. It can be a real challenge for programmers to ensure they're all matched up correctly. + +This short script reads a line of LISP code from the user and determines whether the parentheses in the input are properly matched. If the parentheses aren't properly balanced, the program displays a syntax error. + +Below are three sample interactions with the program. In the first, the LISP code I entered was correctly typed. But the next two contain mismatched parentheses that the Rexx script identifies: + +``` +Enter a line to analyze: +(SECOND (LAMBDA (LIS) (FIRST (CDR LIS)) )) +Parentheses are balanced + +Enter a line to analyze: +((EQSTR (CAR LIS1) (CAR LIS2)) +Syntax error: too many left parens, not balanced + +Enter a line to analyze: +(EQSTR (CAR LIS1) CAR LIS2)) +Syntax error: right paren before or without left paren +``` + +Here's the Rexx program: + +``` +counter = 0 /* counts parentheses */ + +say 'Enter a line to analyze:' /* prompts user for input */ +pull input_string /* reads line of user input */ + +length_of_string = length(input_string) + +/* process each character of the input line, one at a time */ + +do j = 1 to length_of_string while counter >= 0 + + character = substr(input_string,j,1) + if character = '(' then counter = counter + 1 + if character = ')' then counter = counter - 1 + +end + +/* display the appropriate message to the user */ + +if counter = 0 then + say 'Parentheses are balanced' +else if counter < 0 then + say 'Syntax error: right paren before or without left paren' +else + say 'Syntax error: too many left parens, not balanced' +``` + +First, the program prompts the user to enter a line of input with the `say` instruction. Then it reads it with a `pull` instruction. + +`The say` and `pull`  instructions are used for conversational input/output, or direct interaction with users. Rexx also supports character-oriented and line- or record- oriented I/O. + +Next, the script uses the `length` function to place the length of the input line into the variable `length_of_string`. + +The `do` loop processes each character from the input line, one at a time. It increments the `counter` each time it encounters a left parenthesis, and decrements it each time it recognizes a right parenthesis. + +If the `counter` ends up as zero after processing the entire input line, the program knows that any parentheses in the input line match up correctly. If the `counter` is not 0 after processing, the input line has mismatched parentheses. + +The final `if` statements display the proper message to the user. One could code these `if` statements in any number of styles, as per individual preference. (The main requirement is that whenever multiple statements are coded within a branch, they must be enclosed in a `do...end` group.) + +This program shows that Rexx is free-form and case-insensitive. It does not rely on reserved words, so you're free to use common words like `counter` or `character` to represent variables. + +The one key requirement Rexx does impose is that any function must immediately be followed by a left parenthesis. Examples in the program are the `length` and `substr` functions. Put a space between a function name and its following parenthesis, and Rexx won't recognize the function. + +Outside of a few minimal requirements like these, Rexx requires very little from the programmer in terms of syntax, special characters, or restrictive coding rules. + +Rexx programs look and read like pseudo-code. This makes them relatively easy to read and work with. + +### A real-world example of a Rexx script + +Here's a program from the real world: + +Les Koehler, a Rexx user, had a legacy accounting program that matched accounting records on hand against those that a vendor sent to him daily. The legacy program ran for several hours every day to process 25,000 records. It employed a sequential "walk the list" technique to match one set of records against the other. + +Les replaced the legacy program with a Rexx script. The Rexx script performs matching by using associative arrays: + +``` +/* Create an associative array reflecting */ +/* the values in the first list of names */ +/* by Les Koehler */ + +flag. = 0 /* Create array, set all items to 0 */ +do a = 1 to list_a.0 /* Process all existing records */ + aa = strip(list_a.a) /* Strip preceding/trailing blanks */ + flag.aa = 1 /* Mark each record with a 1 */ +end + +/* Try to match names in the second list */ +/* against those in the associative array */ + +m = 0 /* M counts number of missing names */ +do b = 1 to list_b.0 /* Look for matching name from LIST_B */ + bb = strip(list_b.b) /* Put LIST_B name into variable BB */ + if \ flag.bb then do /* If name isn't in FLAG array */ + m = m+1 /* add 1 to count of missing names */ + missing.m = bb /* add missing name to MISSING array */ + end +end + +missing.0 = m /* Save the count of unmatched names */ +``` + +Les was able to reduce processing time from several hours down to a matter of seconds. + +The first line of code (`flag. = 0`) creates a new array called `flag` and initializes every element in that array to `0`. + +The array `list_a` contains all the existing accounting records. Its first element (`list_a.0`) by convention contains the number of elements in the array. + +So the first `do` loop processes all elements in the array of existing records (`list_a`) and marks each of them as existing in the `flag` array. The statement `flag.aa = 1` marks the content-addressable item in the `flag` array as present. + +The second `do` loop peddles through each item in the set of new records, contained in the array called `list_b`. + +The `if` statement checks whether an item from the second array of records is marked present in the `flag` array. If not, the program increments the number of items present in the new list of accounting records that do not exist in the old list of records. And it puts the missing item into the `missing` array: `missing.m = bb`. + +The final statement (`missing.0 = m`) simply updates the number of items in the `missing` array, by convention stored in array position 0. + +### Rexx improvements + +Why is this Rexx program so fast compared to the legacy code it replaces? First, the associative arrays allow direct lookup of a new record against the old records. Direct access is much faster than the sequential "walk-the-list" technique it replaced. + +Secondly, all the array elements reside in memory. Once the files of the old and new accounting records have been initialized into the Rexx arrays, no further disk I/O is needed. Disk I/O is always orders of magnitude slower than memory access. + +A Rexx array expands as much as memory allows. This script takes advantage of modern computers with seemingly endless amounts of RAM, and frees the programmer from managing memory. + +### Conclusion + +I hope these two simple programs have shown how easy Rexx is to read, write, and maintain. Rexx is designed to put the burden of programming on the machine instead of the programmer. Yet the language still has plenty of power, due to the design techniques I've described in this series of articles. + +For free Rexx downloads, tools, tutorials, and more, visit [RexxInfo.org][3]. You can join the [Rexx Language Association][4] for free. + +_This article is dedicated to the memory of Les Koehler, who was active with Rexx and the Rexx community since their very earliest days._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/rexx-scripting + +作者:[Howard Fosdick][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/howtech +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/10/rexx-scripting-language +[2]: https://opensource.com/article/21/5/learn-lisp +[3]: http://www.RexxInfo.org +[4]: http://www.RexxLA.org From 158232818de9b5ad0ec95a65edf6aa31681bb96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 19 Dec 2022 18:32:44 +0800 Subject: [PATCH 2393/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221219.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20I=20use=20my=20old=20camera=20as=20a=20webcam=20with=20Li?= =?UTF-8?q?nux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How I use my old camera as a webcam with Linux.md | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md diff --git a/sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md b/sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md new file mode 100644 index 0000000000..51a20186e9 --- /dev/null +++ b/sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md @@ -0,0 +1,260 @@ +[#]: subject: "How I use my old camera as a webcam with Linux" +[#]: via: "https://opensource.com/article/22/12/old-camera-webcam-linux" +[#]: author: "Tom Oliver https://opensource.com/users/tomoliver" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use my old camera as a webcam with Linux +====== + +This year after largely abandoning my MacBook in favor of a NixOS machine, I started getting requests to "turn my camera on" when video calling people. This was a problem because I didn't have a webcam. I thought about buying one, but then I realized I had a perfectly good Canon EOS Rebel XS DSLR from 2008 lying around on my shelf. This camera has a mini-USB port, so naturally, I pondered: Did a DSLR, mini-USB port, and a desktop PC mean I could have a webcam? + +There's just one problem. My Canon EOS Rebel XS isn't capable of recording video. It can take some nice pictures, but that's about it. So that's the end of that. + +Or is it? + +There happens to be some amazing open source software called [gphoto2][1]. Once installed, it allows you to control various supported cameras from your computer and it takes photos and videos. + +### Supported cameras + +First, find out whether yours is supported: + +``` +$ gphoto2 --list-cameras +``` + +### Capture an image + +You can take a picture with it: + +``` +$ gphoto2 --capture-image-and-download +``` + +The shutter activates, and the image is saved to your current working directory. + +### Capture video + +I sensed the potential here, so despite the aforementioned lack of video functionality on my camera, I decided to try `gphoto2 --capture-movie`. Somehow, although my camera does not support video natively, gphoto2 still manages to spit out an MJPEG file! + +On my camera, I need to put it in "live-view" mode before gphoto2 records video. This consists of setting the camera to portrait mode and then pressing the **Set** button so that the viewfinder is off and the camera screen displays an image. Unfortunately, though, this isn't enough to be able to use it as a webcam. It still needs to get assigned a video device, such as `/dev/video0`. + +### Install ffmpeg and v4l2loopback + +Not surprisingly, there's an open source solution to this problem. First, use your package manager to install `gphoto2`, `ffmpeg`, and `mpv`. For example, on Fedora, CentOS, Mageia, and similar: + +``` +$ sudo dnf install gphoto2 ffmpeg mpv +``` + +On Debian, Linux Mint, and similar: + +``` +$ sudo apt install gphoto2 ffmpeg mpv +``` + +I use NixOS, so here's my configuration: + +``` +# configuration.nix +... +environment.systemPackages = with pkgs; [ +  ffmpeg +  gphoto2 +  mpv +... +``` + +Creating a virtual video device requires the `v4l2loopback` Linux kernel module. At the time of this writing, that capability is not included in the mainline kernel, so you must download and compile it yourself: + +``` +$ git clone https://github.com/umlaeute/v4l2loopback +$ cd v4l2loopback +$ make +$ sudo make install +$ sudo depmod -a +``` + +If you're using NixOS like me, you can just add the extra module package in `configuration.nix`: + +``` +[...] +boot.extraModulePackages = with config.boot.kernelPackages; +[ v4l2loopback.out ]; +boot.kernelModules = [ +  "v4l2loopback" +]; +boot.extraModprobeConfig = '' +  options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" +''; +[...] +``` + +On NixOS, run `sudo nixos-rebuild switch` and then reboot. + +### Create a video device + +Assuming your computer currently has no `/dev/video` device, you can create one on demand thanks to the `v4l2loopback`. + +Run this command to send data from `gphoto2` to `ffmpeg`, using a device such as `/dev/video0` device: + +``` +$ gphoto2 --stdout --capture-movie | + ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0 +``` + +You get output like this: + +``` +ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers +  built with gcc 11.3.0 (GCC) +  configuration: --disable-static ... +  libavutil      56. 70.100 / 56. 70.100 +  libavcodec     58.134.100 / 58.134.100 +  libavformat    58. 76.100 / 58. 76.100 +  libavdevice    58. 13.100 / 58. 13.100 +  libavfilter     7.110.100 /  7.110.100 +  libavresample   4.  0.  0 /  4.  0.  0 +  libswscale      5.  9.100 /  5.  9.100 +  libswresample   3.  9.100 /  3.  9.100 +  libpostproc    55.  9.100 / 55.  9.100 +Capturing preview frames as movie to 'stdout'. Press Ctrl-C to abort.[mjpeg @ 0x1dd0380] Format mjpeg detected only with low score of 25, misdetection possible! +Input #0, mjpeg, from 'pipe:': +  Duration: N/A, bitrate: N/A +  Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 768x512 ... +Stream mapping: +  Stream #0:0 -> #0:0 (mjpeg (native) -> rawvideo (native))[swscaler @ 0x1e27340] deprecated pixel format used, make sure you did set range correctly +Output #0, video4linux2,v4l2, to '/dev/video0': +  Metadata: +    encoder         : Lavf58.76.100 +  Stream #0:0: Video: rawvideo (I420 / 0x30323449) ... +    Metadata: +      encoder         : Lavc58.134.100 rawvideoframe=  289 fps= 23 q=-0.0 size=N/A time=00:00:11.56 bitrate=N/A speed=0.907x +``` + +To see the video feed from your webcam, use `mpv`: + +``` +$ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed +``` + +![Streaming a live feed from the webcam][2] + +### Start your webcam automatically + +It's a bit annoying to execute a command every time you want to use your webcam. Luckily, you can run this command automatically at startup. I implement it as a `systemd` service: + +``` +# configuration.nix +... +  systemd.services.webcam = { +    enable = true; +    script = '' +      ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie | +        ${pkgs.ffmpeg}/bin/ffmpeg -i - \ +            -vcodec rawvideo -pix_fmt yuv420p -f v4l2  /dev/video0 +    ''; +wantedBy = [ "multi-user.target" ]; +  }; +... +``` + +On NixOS, run `sudo nixos-rebuild switch` and then reboot your computer. Your webcam is on and active. + +To check for any problems, you can use `systemctl status webcam`. This tells you the last time the service was run and provides a log of its previous output. It's useful for debugging. + +### Iterating to make it better + +It's tempting to stop here. However, considering the current global crises, it may be pertinent to wonder whether it's necessary to have a webcam on all the time. It strikes me as sub-optimal for two reasons: + +- It's a waste of electricity. +- There are privacy concerns associated with this kind of thing. + +My camera has a lens cap, so to be honest, the second point doesn't really bother me. I can always put the lens cap on when I'm not using the webcam. However, leaving a big power-hungry DSLR camera on all day (not to mention the CPU overhead required for decoding the video) isn't doing anything for my electricity bill. + +The ideal scenario: + +- I leave my camera plugged in to my computer all the time but switched off. +- When I want to use the webcam, I switch on the camera with its power button. +- My computer detects the camera and starts the systemd service. +- After finishing with the webcam, I switch it off again. + +To achieve this, you need to use a custom [udev rule][3]. + +A udev rule tells your computer to perform a certain task when it discovers that a device has become available. This could be an external hard drive or even a non-USB device. In this case, you need it to [recognize the camera through its USB connection][4]. + +First, specify what command to run when the udev rule is triggered. You can do that as a shell script (`systemctl restart webcam` should work). I run NixOS, so I just create a derivation (a Nix package) that restarts the systemd service: + +``` +# start-webcam.nix +with import { }; +writeShellScriptBin "start-webcam" '' +  systemctl restart webcam +  # debugging example +  # echo "hello" &> /home/tom/myfile.txt +  # If myfile.txt gets created then we know the udev rule has triggered properly'' +``` + +Next, actually define the udev rule. Find the device and vendor ID of the camera. Do this by using the `lsusb` command. That command is likely already installed on your distribution, but I don't use it often, so I just install it as needed using `nix-shell`: + +``` +$ nix-shell -p usbutils +``` + +Whether you already have it on your computer or you've just installed it, run `lsusb`: + +``` +$ lsusb +Bus 002 Device 008: ID 04a9:317b Canon, Inc. Canon Digital Camera[...] +``` + +In this output, the vendor ID is 04a9 and the device ID is 317b. That's enough to create the udev rule: + +``` +ACTION=="add", SUBSYSTEM=="usb", +ATTR{idVendor}=="04a9", +ATTR{idProduct}=="317b", +RUN+="/usr/local/bin/start-webcam.sh" +``` + +Alternatively, if you're using NixOS: + +``` +# configuration.nix[...]let +  startWebcam = import ./start-webcam.nix;[...] +services.udev.extraRules = '' +  ACTION=="add",  \ +  SUBSYSTEM=="usb", \ +  ATTR{idVendor}=="04a9", \ +  ATTR{idProduct}=="317b",  \ +  RUN+="${startWebcam}/bin/start-webcam"'';[...] +``` + +Finally, remove the **wantedBy = ["multi-user.target"];** line in your `start-webcam` systemd service. (If you leave it, then the service starts automatically when you next reboot, whether the camera is switched on or not.) + +### Reuse old technology + +I hope this article has made you think twice before chucking some of your old tech. Linux can breathe life back into technology, whether it's your [computer][5] or something simple like a digital camera or some other peripheral. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/old-camera-webcam-linux + +作者:[Tom Oliver][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/tomoliver +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/7/gphoto2-linux +[2]: https://opensource.com/sites/default/files/2022-12/streaming-webcam.png +[3]: https://opensource.com/article/18/11/udev +[4]: https://opensource.com/article/22/1/cameras-usb-ports-obs +[5]: https://opensource.com/article/22/4/how-linux-saves-earth + From 09280994a2ccc586af3854360351c95b1c86fb7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 19 Dec 2022 18:36:34 +0800 Subject: [PATCH 2394/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221219.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Discover=20the=20power=20of=20the=20Linux=20SpaceFM=20file=20ma?= =?UTF-8?q?nager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ver the power of the Linux SpaceFM file manager.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md diff --git a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md new file mode 100644 index 0000000000..d12b5b3c11 --- /dev/null +++ b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md @@ -0,0 +1,93 @@ +[#]: subject: "Discover the power of the Linux SpaceFM file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-spacefm" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Discover the power of the Linux SpaceFM file manager +====== + +SpaceFM is a tabbed file manager for Linux using the GTK toolkit, so it fits right in on desktops like [GNOME][1], [Mate][2], [Cinnamon][3], and others. SpaceFM also features a built-in device manager system, so it's particularly good for window managers, like [Fluxbox][4] or [fvwm][5], which typically don't include a graphical device manager. If you're happy with the file managers on Linux, but you want to try one that's a little bit different in design, SpaceFM is worth a look. + +### Install SpaceFM + +On Linux, you're likely to find **SpaceFM** in your distribution's software repository. On Fedora, Mageia, OpenMandriva, and similar: + +``` +$ sudo dnf install spacefm +``` + +On Debian and Debian-based systems: + +``` +$ sudo apt install spacefm +``` + +### Panels + +I don't know why SpaceFM is called SpaceFM, but it could be because it makes a concerted effort to let you use every bit of space in its window for something useful. By default, SpaceFM is actually pretty simple, standard-issue file manager. It has a single panel listing your files, a toolbar, and a menu bar. + +![SpaceFM is typical in design. At first.][6] + +All the "usual" rules apply. + +- **Double-click** to open a directory or to open a file in its default application. +- **Right-click** for a contextual menu providing lots of standard options (copy, paste, rename, view properties, create a new folder, and so on). + +The way SpaceFM sets itself apart, though, is its panel system. SpaceFM displays one panel by default. That's the big file window listing your files. But it can have up to four panel views, plus a few bonus panels for some specific tasks. + +### Opening a new panel + +Instead of seeing one directory in your file manager, you can see two. To bring up another directory in its own pane, press **Ctrl+2** or go to the **View** menu and select **Panel 2**. Alternatively, click the second green dot icon from the left in the menu panel. + +With two panels, you can move files from one directory to another without opening a new file manager window, or you can browse two directories to compare their contents. + +But why settle for two panels? Maybe you'd rather see _three_ directories at once. To bring up a third directory in a dedicated pane, press **Ctrl+3** or go to the **View** menu and select **Panel 3**. Alternatively, click the third green dot icon from the left in the menu panel. This panel appears at the bottom of the SpaceFM window. + +With three panels open, you can move files between several directories, or sort files from a common "dumping ground" (like your Desktop or Downloads folder) into specific directories. + +Of course, once you've tried three panels you'll probably find yourself itching for a fourth. To open a fourth directory in its own pane, press **Ctrl+4** or go to the **View** menu and select **Panel 4**. Alternatively, click the fourth green dot icon from the left in the menu panel. This one opens next to Panel 3, splitting your SpaceFM window into even quarters. + +![SpaceFM can have up to four panels.][7] + +What about a _fifth_ panel? Well, actually SpaceFM stops at four panels. If you really do want a fifth panel, you have to open a new SpaceFM window. However, there are still more panels, used for information other than file listings, to explore. + +### Special panels + +The **View** menu reveals that in addition to file panels, there are additionally task-specific panels you can choose to display. This includes: + +- **Task manager**: Lists ongoing file manager processes. This isn't a general-purpose task manager, so to set nice values or detect a zombie apocalypse of undead PIDs, [htop or top][8] is still your utility of choice. +- **Bookmarks**: Links to common folders, such as Desktop, Documents, Downloads, and any location you want to keep handy. +- **Devices**: USB thumb drives and remote file systems. +- **File tree**: A view of your file system in order of directory inheritance. + +These panels open on the left side of SpaceFM, but they do stack. You can have bookmarks, devices, tasks, and a file tree open at once, although it helps to have a very tall SpaceFM window. + +### Make space for SpaceFM + +SpaceFM is a configurable multi-tasking file manager. It maximizes the information you can build into a single window, and it lets you decide what's important, and when. This article has focused on the panels of SpaceFM because those are, at least in my view, the most unique aspect of the application. However, there's a lot more to SpaceFM, including plugins, preferences, a design mode, keyboard shortcuts, and customization. This isn't a small application, even though it is a lightweight one. Spend some time with SpaceFM, because you never know what you'll discover. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-spacefm + +作者:[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/article/19/12/gnome-linux-desktop +[2]: https://opensource.com/article/19/12/mate-linux-desktop +[3]: https://opensource.com/article/19/12/cinnamon-linux-desktop +[4]: https://opensource.com/article/19/12/fluxbox-linux-desktop +[5]: https://opensource.com/article/19/12/fvwm-linux-desktop +[6]: https://opensource.com/sites/default/files/2022-10/spacefm.webp +[7]: https://opensource.com/sites/default/files/2022-10/spacefm-panels.webp +[8]: https://opensource.com/life/16/2/open-source-tools-system-monitoring From 6c1b4f6a7cd68d5f86f55c5820bb4831c16a9026 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Mon, 19 Dec 2022 21:53:45 +0800 Subject: [PATCH 2395/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How To Securely Transfer Files With SCP In Linux.md | 537 ----------------- ... How To Securely Transfer Files With SCP In Linux.md | 539 ++++++++++++++++++ 2 files changed, 539 insertions(+), 537 deletions(-) delete mode 100644 sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md create mode 100644 translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md deleted file mode 100644 index 29e1dbb48d..0000000000 --- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ /dev/null @@ -1,537 +0,0 @@ -[#]: subject: "How To Securely Transfer Files With SCP In Linux" -[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/" -[#]: author: "sk https://ostechnix.com/author/sk/" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How To Securely Transfer Files With SCP In Linux -====== - -File transfer over a network can be done in various ways and using different protocols. The most commonly used protocols for **copying files remotely** are **Rsync**, **SCP** and **SFTP**. In this guide, we will look at **what is SCP** and how to **securely transfer files between local and remote computers with SCP** in Linux and Unix-like operating systems. - -### What is SCP? - -SCP, stands for **Secure Copy**, is a command line program to copy files and directories between a local and a remote system or between two remote systems in a secure way in Linux and Unix-like operating systems. - -Using `scp` command, you can securely copy a file or a directory, - -- from your local system to a remote system, -- from a remote system to your local system, -- between remote systems from your local system. - -When transferring data with the scp command, the files and directories are both encrypted. So even if your network is compromised, the perpetrators can't get any meaningful data. - -SCP is a component of the openSSH program and it uses the SSH protocol to securely transfer files. OpenSSH comes pre-installed with almost all modern Linux and Unix distributions, so don't bother installing it. - -#### A word of caution: - -According to the **official announcement** from the openSSH developers, - -> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. -> -> Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] - -However, the majority of the users still prefer SCP over other protocols. Because, SCP handles remote-to-remote file transfers more efficiently than its counterparts such as SFTP and Rsync. - -And also, SCP works exactly like `cp` command, while `rsync` changes its behavior based on whether the source directory has a **trailing slash** or not. Take a look at the following commands: - -- `rsync source destination/` - would copy the source into the destination folder. -- `rsync source/ destination/` - would copy the contents of the source folder into the destination folder. - -So you must always double check if you've put the trailing slash in the path. - -I personally use **[Rsync][2]** for copying large size files between two hosts and SCP for copying single files over a network. - -### SCP Command Syntax - -The general syntax for SCP command is given below: - -``` -scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target -``` - -Depending upon the file transfer path, the syntax will differ. Here I have included some example syntax format. - -Copy a file from your local system to a remote system: - -``` -scp SourceFile User@RemoteHost:RemotePath -``` - -Similarly, to copy a directory from your local system to a remote system, use `-r` flag: - -``` -scp -r SourceDirectory User@RemoteHost:RemotePath -``` - -Copy multiple files to a remote system: - -``` -scp SourceFile1 SourceFile2 User@RemoteHost:RemotePath -``` - -Copy a file from remote system to your local system: - -``` -scp User@RemoteHost:RemoteFilePath DestinationFile -``` - -Copy a directory from remote system to local system: - -``` -scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory -``` - -Copy a file from one remote system to another remote system from your local system: - -``` -scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath -``` - -Please note that when you copy files between two remote systems, the traffic will not pass through the local system. The operation takes place directly between two remote systems. You can, however, pass the traffic from the system on which you run scp command using `-3` option. - -Copy a directory from one remote system to another remote system from your local system: - -``` -scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath -``` - -### SCP Command Options - -The most commonly used options of SCP command are: - -- **`-C`** : Enable compression. Here, C stands for Compression. When you use this option, the data transfer speed will be faster, because the data is compressed. SCP will automatically enable the compression at the source system and decompression at the destination system. -- **`-c `** : c stands for cipher. By default, SCP uses **'AES-128'** encryption method for encrypting data. You can change the encryption method using `-c` option. -- **`-i `** : i stands for Identity file or Private key. As you already know, there are password-based and key-based authentication used in SSH. If you want to use key-based authentication while transferring files, you can use the -i option to specify the Identity file or Private key. -- **`-l limit`** : l stands for limit bandwidth. Using this option, you can set the maximum bandwidth used for transferring data. The limit should be specified in **`Kbit/s`**. -- **`-F `** : Some times, you may need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `-F` option. -- **`-P port`** - P stands for Port. Please note that it is uppercase P. By default, SSH uses port number 22. You might have changed the port number in the destination host for security reasons. In that case, you should explicitly mention the new port number using `-P` option. -- **`-p`** : if you want to preserve modification times, access times, and modes from the original file, you need to use -p option while copying files. Please note that it is lowercase p. -- **`-r`** : Recursively copy entire directories. -- **`-B`** : B stands for batch mode. It is used for selecting batch mode while transferring files. It prevents asking for passwords or passphrases. -- **`-S program`** : Name of the program to use for the encrypted connection. -- **`-v`** : v stands for verbose. When using the `-v` option, the command will print the progress in your Terminal screen. So, you will see the what exactly is going on when the files are being transferred. It is useful in debugging connection, authentication, and configuration problems. - -SCP has so many options. You can check the man pages of SCP command to learn about other options. Let us see some **useful scp command examples**. - -### Important Notes to Remember before You Begin - -- The `scp` command relies on `ssh` for secure file transfer. So you must have either a **ssh key** or **password** to authenticate to the remote systems. -- To be able to transfer files, you must have **read permission on the source files** and **write permission on the destination** location. -- The `scp` command will not check the destination location before writing. Any files in the destination with the same name will be **overwritten without notification**. -- To be able to distinguish between local and remote locations, use a **colon** (**`:`**). -- When transferring large files, it is recommended to start the task inside a **[Screen][3]** or **[Tmux][4]** session. - -### Transfer Files With SCP in Linux - -As I already mentioned, we can use `scp` command to copy a file or a directory from a local system to a remote system and vice versa and copy files and folders between one remote computer to another remote computer. - -#### 1 Copy Files with SCP from Local System to Remote System - -To copy a file from a local system to a remote system using `scp` command, run: - -``` -$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -**Sample Output:** - -``` -ostechnix@192.168.1.40's password: -File1.txt 100% 104 814.0KB/s 00:00 -``` - -Let us break down the above command and see what each option does. - -- `**File1.txt**` - The source file to be copied to the destination. -- `**ostechnix**` - The username of the remote system. -- `**192.168.1.40**` - The IP address of the remote system. -- `**/home/ostechnix/**` - The destination directory in the remote system. This is the absolute path where we want to transfer the source file i.e. `File.txt`. - -You can also copy the file and rename it as well. The following command transfers the **`File1.txt`** to the destination and saves the file with different name **`myfile.txt`**. - -``` -$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt -``` - -![Copy Files From Local System To Remote System][5] - -Copy Files from Local System to Remote System - -#### 2. Copy Multiple Files with SCP from Local System to Remote System - -To transfer multiple files from a local system to a remote system with `scp` command, run: - -``` -$ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -**Sample Output:** - -``` -ostechnix@192.168.1.40's password: -File1.txt 100% 104 689.4KB/s 00:00 -File2.txt 100% 496 6.3MB/s 00:00 -``` - -![Copy Multiple Files from Local System to Remote System][6] - -Copy Multiple Files from Local System to Remote System - -Here, - -- `**File1.txt**` and **`File2.txt`** - The name of the sources that will be copied to the specified destination. -- `**ostechnix@192.168.1.40**` - The username and IP address of the remote system. -- `**/home/ostechnix**` - The destination path where we want to put the copied files. - -If the files have same extension, you can use the following alternative commands to achieve the same goal. - -``` -$ scp {File1,File2}.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -Or, - -``` -$ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -#### 3. Recursively Copy Directories with SCP from Local System to Remote System - -To recursively copy an entire directory including the sub-directories and its contents from your local system to a remote system, use **`-r`** flag like below. - -``` -$ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/ -``` - -![Copy a Directory from Local System to Remote System][7] - -Copy a Directory from Local System to Remote System - -The above command will copy the entire directory **'`Documents`'** including its contents to the destination system. - -Here, - -- **`-r`** : Copy files and directories recursively including the sub-directories and its contents. -- **`Documents`** : The name of the source directory that we want to copy to the destination. -- `**ostechnix@192.168.1.40**` : The username and IP address of the remote system. -- `**/home/ostechnix**` : The destination path where we want to put the copied directory. - -#### 4. Transfer Files with SCP from Remote System to Local System - -Remember we copied `FIle1.txt` to the remote system from our local system. Let us copy it back to the local system. - -To copy a file from a remote system to your local system with `scp`, run: - -``` -$ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/ -``` - -Here, - -- `**ostechnix@192.168.1.40**` : The username and IP address of the remote system. -- **`/home/ostechnix/File.txt`** : The absolute path of file that we want to copy to the local system. -- **`Downloads`** - The location where to save the copied file. - -![Transfer Files from Remote System to Local System][8] - -Transfer Files from Remote System to Local System - -#### 5. Transfer Multiple Files using SCP from Remote System to Local System - -To copy multiple files from a remote system to your local system, mention the absolute path of the files that you want to copy **within the curly braces** as shown below. - -``` -$ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/ -``` - -![Transfer Multiple Files from Remote System to Local System][9] - -Transfer Multiple Files from Remote System to Local System - -The above command will copy the `File1.txt` and `File2.txt` from the `/home/ostechnix/` directory of the remote system to the `Downloads` directory of the local system. - -Please note that there is **no spaces after the commas within the curly braces**. - -#### 6. Recursively Copy Directories from Remote System to Local System - -To copy an entire directory including the sub-directories and its contents recursively from a remote computer to your local system using `scp`, use **`-r`** flag. - -``` -$ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/ -``` - -The above command will copy the entire **`Documents`** from the remote system to the **`Downloads`** directory in your local system. - -#### 7. Copy Files using SCP between Two Remote Computers - -To copy files directly from one remote system to another remote system with `scp`, run: - -``` -$ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ -``` - -You will be asked to enter the password of the both remote systems. - -Here, - -- **`senthil@192.168.1.40`** - The username and IP address of the remote system from the file is currently located. -- **`/home/senthil/File1.txt`** - The name the file1 that is being copied and its location. -- `**kumar@192.168.1.20**` - The username and IP address of the remote system where we want to copy the file. -- **`/home/kumar`** - The location where to save the copied file on the remote system. - -The above command will copy the `/home/senthil/File1.txt` from the remote host `192.168.1.40` to `/home/kumar/` directory on the remote host `192.168.1.20`. - -In this method, the data will be transferred directly from one remote system to another remote system. If you want to route the traffic through the machine on which the command is run, use `**-3**` flag like below. - -``` -$ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ -``` - -#### 8. Enable Compression while Copying Files with SCP - -So far we have transferred files without compressing them. Now we will enable compression while transferring files using **`-C`** flag. - -``` -$ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -The `-C` flag will enable compression of data at the source and automatically decompress the data at destination side. - -By enabling compression, you can increase the file copy or transfer speed significantly. - -#### 9. Limit Bandwidth while Transferring Files using SCP - -We can limit the bandwidth while copying files with SCP using `-l` flag. Please note that the maximum bandwidth is specified in Kbits/s. 1 byte=8 bits. So if you want to limit bandwidth to 200 KB/s, the value for `-l` would be **1600** (200*8). - -``` -$ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -This is useful when transferring large files to prevent SCP from throttling the bandwidth. - -#### 10. Use Different Port while Copying Files using SCP - -As a system admin, you might **[have changed the default port of your SSH protocol][10]** on the remote servers for security reasons. In such cases, you can specify the port number with `-P` flag when transferring files. Please note that this is **uppercase P**. - -``` -$ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -#### 11. Use Different Cipher while Copying Files with SCP - -By default, SCP uses **'`AES-128`'** for encrypting files. If you want to use different cipher, use **`-c`** flag followed by the cipher name. - -For example, if you want to use **'`3des-cbc`'** cipher, the command would be like below: - -``` -$ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -To view the list of supported ciphers, run: - -``` -$ ssh -Q cipher localhost | paste -d, -s - -``` - -**Sample Output:** - -``` -3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com -``` - -#### 12. Copying Files with SCP in Verbose Mode - -if you want to know what's going on behind the scenes while copying files with scp, you can use `**-v**` flag. When transferring files with SCP in Verbose mode, the step by step process of the SCP command execution will be displayed in the terminal. This comes in handy when troubleshooting times. - -``` -$ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -You will see a whole lot of output when sending files in Verbose mode as shown in the following output. - -![Copying Files with SCP in Verbose Mode][11] - -Copying Files with SCP in Verbose Mode - -#### 13. Transferring Files with SCP in Quiet Mode - -We can transfer files in quiet mode with **`-q`** flag. When sharing files in quiet mode, it will not show the copy progress, warning or diagnostic message in the output. - -``` -$ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -#### 14. Preserve File Attributes when Transferring Files with SCP - -To preserve file attributes such as file modification times, access times, and modes when copying files with SCP, use **`-p`** flag. Please note that this is **lowercase p**. - -``` -$ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -#### 15. Use Identity File when Copying Files with SCP - -SSH supports both password-based and key-based authentication. Key-based authentication is most widely used authentication method in Linux environments. - -If you want to use key-based authentication while transferring files, use the **`-i`** option to specify the Identity file or Private key. - -``` -$ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -#### 16. Use Different ssh_config File when Transferring Files with SCP - -There are situations where you need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `**-F**` option. - -``` -$ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -#### 17. Copy files with SCP using IPv4 or IPv6 - -We can force SCP to only use IPv4 or IPv6 addresses when copying files. This can be achieved by adding **`-4`** for IPv4 networks and **`-6`** for IPv6 networks. - -``` -$ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ -``` - -### Frequently Asked Questions - -#### Question 1: What is SCP? - -**Answer:** SCP is a command line program to securely transfer files and directories from a local system to a remote system and vice versa, or between two remote systems directly. - -#### Question 2: How to copy a file from the local computer to remote computer using SCP? - -To copy a file from your local system to a remote system, the command would be: - -``` -scp SourceFile.txt User@RemoteHost:/some/remote/directory -``` - -#### Question 3: How to copy recursively copy files and directories? - -To recursively copy a directory including the sub-directories, use `-r` flag. - -``` -scp -r /some/local/directory User@RemoteHost:/some/remote/directory -``` - -#### Question 4: Can I transfer multiple files using SCP? - -Yes, you can. Just mention the source file names with space separated. - -Copy multiple files from local to remote: - -``` -scp file1.txt file2.txt file3.txt User@RemoteHost:/some/remote/directory -scp {file1,file2,file3}.txt User@RemoteHost:/some/remote/directory -scp *.txt User@RemoteHost:/some/remote/directory -``` - -Copy multiple files from remote to local: - -``` -scp User@RemoteHost:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} /some/local/directory -``` - -Copy multiple files from remote to remote: - -``` -$ scp User@RemoteHost1:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} User@RemoteHost2:/some/remote/directory/ -``` - -#### Question 5: How to transfer all files in a directory? - -To transfer all files in a directory, switch to that directory: - -``` -cd dir_name -``` - -``` -scp *.txt User@RemoteHost:/some/remote/directory -``` - -#### Question 6: Can I compress files? - -Yes, you can. Use **`-C`** to compress files. The files are compressed at source and decompress at destination automatically. - -``` -scp -C /some/large/file User@RemoteHost:/some/remote/directory -``` - -#### Question 7: Can I preserve file attributes? - -To preserve file attributes such as modification times, access times, and modes from the original file, use `-p` flag. - -``` -scp -p file.txt User@RemoteHost:/some/remote/directory -``` - -#### Question 8: Can I use different port? - -Yes. SCP allows you to use different port with `-P` flag. - -``` -scp -P 2022 file.txt User@RemoteHost:/some/remote/directory -``` - -#### Question 9: Can I use different cipher? - -Yes, you can. Use -c flag to use different cipher. - -``` -scp -c 3des-cbc User@RemoteHost:/some/remote/directory -``` - -#### Question 10: How do I list the supported ciphers by SSH? - -To view the list of supported ciphers by SSH and SCP, use the following command - -``` -ssh -Q cipher localhost | paste -d, -s - -``` - -#### Question 11: Is SCP really secure? - -Yes, it is completely secure to use. SCP uses the same SSH mechanism used by openSSH. The data in transit is encrypted at the source side and decrypted at destination. - -#### Question 12: Can I transfer files from a Windows system to a Linux system? - -Yes, you can. Use either **PSCP** program to transfer files from windows platform to Linux platform. You can also use **WinSCP**. - -### Conclusion - -In this comprehensive guide, we learned what is SCP, and how to **securely transfer files with SCP** in Linux. We provided **17 SCP command examples**. We also looked at the commonly asked questions about SCP. - -Whether you're a Linux Admin, or a Developer or a Regular user, you will have to copy files to and from a remote system at some point. Knowing how to **use SCP to securely copy files** will be definitely useful. - --------------------------------------------------------------------------------- - -via: https://ostechnix.com/securely-transfer-files-with-scp-in-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://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html -[2]: https://ostechnix.com/linux-rsync-command-examples-for-beginners/ -[3]: https://ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/ -[4]: https://ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/ -[5]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Files-from-Local-System-to-Remote-System.png -[6]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Multiple-Files-from-Local-System-to-Remote-System.png -[7]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Directory-from-Local-System-to-Remote-System.png -[8]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Files-from-Remote-System-to-Local-System.png -[9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png -[10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ -[11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png diff --git a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md new file mode 100644 index 0000000000..b450a31ef7 --- /dev/null +++ b/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -0,0 +1,539 @@ +[#]: subject: "How To Securely Transfer Files With SCP In Linux" +[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/" +[#]: author: "sk https://ostechnix.com/author/sk/" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中使用 SCP 安全地传输文件 +====== + +在网络上文件传输可以通过各种不同的方式和协议来完成。**远程复制文件**最常用的协议是 **Rsync**、**SCP** 和 **SFTP**。在本文中,我们将了解**什么是 SCP** 以及如何在 Linux 和类 Unix 操作系统中**使用 SCP 在本地和远程计算机之间安全地传输文件**。 + +### 什么是 SCP? + +SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。 + +使用 `scp` 命令,你可以安全地复制文件或目录: + +- 从本地到远程系统 +- 从远程系统到本地 +- 在两个远程系统之间 + +使用 scp 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,犯罪者也无法获得任何有意义的数据。 + +SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。 + +#### 提醒一句: + +根据 openSSH 开发人员的**官方公告**: + +> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 sftp 和 rsync 来代替。 +> +> 参考 - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] + +但是,大多数用户仍然更喜欢 SCP 协议。因为,SCP 处理远程文件传输比同行 SFTP 和 Rsync 更快。 + +另外,SCP 的工作原理与 `cp` 命令完全相同,而 `rsync` 则会判断源目录是否有**结尾斜杠**而出现不同的行为。看一看下面的命令: + +- `rsync source destination/` - 将 source 目录复制到 destination 文件夹内。 +- `rsync source/ destination/` - 将 source 目录的内容复制到 destination 文件夹中。 + +所以,你必须反复检查是否在路径中添加了斜杠。 + +我个人使用 **[Rsync][2]** 在两台主机之间复制大文件,使用 SCP 在网络上复制单个文件。 + +### SCP 命令语法 + +SCP 的通用语法如下: + +```bash +scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target +``` + +根据文件传输路径的不同,语法也会有所不同。这里我罗列了一些语法格式示例。 + +从本地复制一个文件到远程系统: + +``` +scp SourceFile User@RemoteHost:RemotePath +``` + +类似的,从本地系统复制一个目录到远程系统,使用 `-r` 参数: + +``` +scp -r SourceDirectory User@RemoteHost:RemotePath +``` + +复制多个文件到远程系统: + +``` +scp SourceFile1 SourceFile2 User@RemoteHost:RemotePath +``` + +远程系统复制文件到本地: + +``` +scp User@RemoteHost:RemoteFilePath DestinationFile +``` + +远程系统复制目录到本地: + +``` +scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory +``` + +在本地将文件在两个远程系统之间复制: + +``` +scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath +``` + +注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数传递运行 scp 命令的系统的流量。 + +本地将目录从一个远程系统复制到另一个远程系统: + +``` +scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath +``` + +### SCP 命令参数 + +SCP 命令最常用的参数有: + +- **`-C`** : 启用压缩。C 代表压缩。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。 +- **`-c `** : c 代表加密。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。 +- **`-i `** : i 代表身份文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 -i 参数指定身份文件或私钥。 +- **`-l limit`** : l 代表极限带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 **`Kbit/s`**。 +- **`-F `** : 有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件。 +- **`-P port`** - P 代表端口。注意,这是大写的 P。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。 +- **`-p`** : 如果希望保留原始文件的修改时间、访问时间和模式,你需要使用 -p 参数。注意是小写 p。 +- **`-r`** : 递归复制整个目录。 +- **`-B`** : B 代表批处理模式。它用于在传输文件时选择批处理模式。可以防止询问密码。 +- **`-S program`** : 用于加密连接的程序名称。 +- **`-v`** : v 代表详细。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。 + +SCP 有很多参数,你可以查看它的手册页来了解其他参数。让我们看一些**有用的 scp 命令示例**。 + +### 开始前要记住的重要事项 + +- `scp` 命令依赖于 `ssh` 进行安全的文件传输。因此,你必须有一个 **ssh 密钥**或**密码**才能向远程系统进行身份验证。 +- 为了能传输文件,你必须对**源文件有读权限**,对**目标位置有写权限**。 +- `scp` 命令在写入前不会检查目标位置。目标位置中具有相同名称的任何文件都将被**覆盖而不通知**。 +- 为了能够区分本地和远程位置,使用**冒号**(`:`)。 +- 传输大文件时,建议在 **[Screen][3]** 或 **[Tmux][4]** 会话内启动任务。 + +### 在 Linux 中使用 SCP 传输文件 + +正如我所说,我们可以使用 `scp` 命令将文件或目录从本地复制到远程系统,反之亦然,或者在两台远程系统之间复制文件或目录。 + +### 1. 使用 SCP 从本地系统复制文件到远程系统 + +使用 `scp` 命令将文件从本地复制到远程系统,运行: + +``` +$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +**示例输出:** + +``` +ostechnix@192.168.1.40's password: +File1.txt 100% 104 814.0KB/s 00:00 +``` + +让我们分析一下上面的命令,看看每个参数都做了什么。 + +- **`File1.txt`** - 源文件 +- **`ostechnix`** - 远程系统的用户名 +- **`192.168.1.40`** - 远程系统的 IP 地址 +- **`/home/ostechnix/`** - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。 + +你还可以修改目标文件的名称。下面的命令将 `File1.txt` 传输到目的地,保存为 `myfile.txt`。 + +``` +$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt +``` + +![将文件从本地复制到远程系统][5] + +将文件从本地复制到远程系统 + +#### 2. 使用 SCP 从本地系统复制多个文件到远程系统 + +使用 `scp` 命令将多个文件从本地系统传输到远程系统,运行: + +```bash +$ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +**示例输出:** + +``` +ostechnix@192.168.1.40's password: +File1.txt 100% 104 689.4KB/s 00:00 +File2.txt 100% 496 6.3MB/s 00:00 +``` + +![从本地复制多个文件到远程系统][6] + +从本地复制多个文件到远程系统 + +这里: + +- **`File1.txt`** 和 **`File2.txt`** - 源文件名 +- **`ostechnix@192.168.1.40`** - 远程系统的用户名和 IP 地址 +- **`/home/ostechnix`** - 目标文件的路径 + +如果文件具有相同的扩展名,你可以使用以下替代命令来实现相同的目标。 + +``` +$ scp {File1,File2}.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +或者, + +``` +$ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 3. 使用 SCP 从本地到远程系统递归复制目录 + +递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 **`-r`** 参数。 + +```bash +$ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/ +``` + +![从本地复制目录到远程系统][7] + +从本地复制目录到远程系统 + +上述命令将整个 **`Documents`** 目录包括其内容复制到目标系统。 + +其中, + +- `-r` : 递归复制文件和目录,包括子目录及其内容 +- `Documents` : 源目录名称 +- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址 +- **`/home/ostechnix`** : 目标目录的路径 + +#### 4. 用 SCP 将文件从远程系统传输到本地 + +还记得我们从本地系统复制了 `File1.txt` 到远程系统,让我们把它复制回本地。 + +使用 `scp` 命令从远程系统复制文件到本地,运行: + +``` +$ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/ +``` + +其中 + +- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址 +- `/home/ostechnix/File.txt` : 远程系统文件的绝对路径 +- `Downloads` - 本地保存复制文件的位置 + +![从远程系统传输文件到本地][8] + +从远程系统传输文件到本地 + +#### 5. 使用 SCP 将多个文件从远程系统传输到本地 + +将多个文件从远程系统复制到本地,在**花括号内**注明文件的绝对路径,如下所示: + +``` +$ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/ +``` + +![将多个文件从远程系统传输到本地][9] + +将多个文件从远程系统传输到本地 + +上述命令将从远程系统的 `/home/ostechnix/` 目录中复制 `File1.txt` 和 `File2.txt` 到本地的 `Downloads` 目录中。 + +注意,**花括号内的逗号后面没有空格**。 + +#### 6. 从远程系统递归复制目录到本地 + +使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 **`-r`** 参数。 + +``` +$ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/ +``` + +上述命令将从远程系统将整个 **`Documents`** 目录复制到本地的 **`Downloads`** 目录。 + +#### 7. 使用 SCP 在两台远程计算机之间复制文件 + +使用 `scp` 命令将文件从一个远程系统直接复制到另一个远程系统,运行: + +``` +$ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ +``` + +它会要求你输入两个远程系统的密码: + +其中, + +- `senthil@192.168.1.40` - 文件源端远程系统的用户名和 IP 地址 +- `/home/senthil/File1.txt` - 复制的文件名及其位置 +- **`kumar@192.168.1.20`** - 复制文件到目标端的用户名和 IP 地址 +- `/home/kumar` - 在目标端上保存复制文件的位置 + +上述命令将从远程主机 `192.168.1.40` 复制 `/home/senthil/File1.txt` 到 `192.168.1.20` 上的 `/home/kumar/` 目录。 + +在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 **`-3`** 参数,如下所示: + +``` +$ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ +``` + +#### 8. 使用 SCP 复制文件时启用压缩 + +到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 **`-C`** 参数在传输文件时启用压缩。 + +``` +$ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +`-C` 参数将在源端启用压缩,并在目标端自动解压数据。 + +通过启用压缩,可以显著提高文件复制或传输速度。 + +#### 9. 使用 SCP 传输文件时限制带宽 + +我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 字节 = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。 + +``` +$ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +这在传输大文件时非常有用,可以防止 SCP 限制带宽。 + +#### 10. 使用 SCP 复制文件时使用不同端口 + +作为系统管理员,出于安全原因,你可能在远程服务器上[**更改了 SSH 协议的默认端口**][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:**大写的 P**。 + +``` +$ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 11. 使用 SCP 复制文件时使用不同的加密方法 + +默认情况下,SCP 使用 **`AES-128`** 对文件进行加密。如果你想使用不同的加密方法,使用 **`c`** 参数。 + +例如,如果你想使用 **3des-cbc** 加密方法,命令如下所示: + +``` +$ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +要查看支持的密码列表,执行: + +``` +$ ssh -Q cipher localhost | paste -d, -s - +``` + +**示例输出:** + +``` +3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com +``` + +#### 12. 在详细模式下使用 SCP 复制文件 + +如果你想知道使用 scp 复制文件时幕后发生了什么,你可以使用 **`-v`** 参数。使用详细模式传输文件时,终端上会显示执行 SCP 命令执行的每一步过程。这在故障排除时很方便。 + +``` +$ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +在详细模式下发送文件时,你将看到大量输出,如下所示: + +![在 Verbose 模式下使用 SCP 复制文件][11] + +在详细模式下使用 SCP 复制文件 + +#### 13. 在安静模式下使用 SCP 传输文件 + +我们可以使用 **`-q`** 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。 + +``` +$ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 14. 使用 SCP 传输文件时保留文件属性 + +使用 **`-p`** 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。 + +``` +$ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 15. 使用 SCP 复制文件时使用身份文件 + +SSH 同时支持基于密码和密钥的身份验证。密钥是 Linux 环境中使用最广泛的身份验证方法。 + +如果你想在传输文件时使用基于密钥的身份验证,使用 **`-i`** 参数指定身份文件或私钥。 + +``` +$ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 16. 使用不同的 ssh 配置文件 + +在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 **`-F`** 参数使用不同的 `ssh_config` 文件。 + +``` +$ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +#### 17. 使用 IPv4 或 IPv6 复制文件 + +在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 **`-4`** 参数,IPv6 网络添加 **`-6`** 参数可以实现这一点。 + +``` +$ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ +``` + +### 常见问题 + +#### 问题 1:什么是 SCP? + +**回答:** SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 + +#### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机? + +将文件从本地复制到远程系统,命令如下: + +``` +scp SourceFile.txt User@RemoteHost:/some/remote/directory +``` + +#### 问题 3:如何递归复制文件和目录? + +递归复制包含子目录的目录,使用 `-r` 参数: + +``` +scp -r /some/local/directory User@RemoteHost:/some/remote/directory +``` + +#### 问题 4:使用 SCP 可以传输多个文件吗? + +当然,只要用空格分隔源文件名即可。 + +从本地复制多个文件到远程: + +``` +scp file1.txt file2.txt file3.txt User@RemoteHost:/some/remote/directory +scp {file1,file2,file3}.txt User@RemoteHost:/some/remote/directory +scp *.txt User@RemoteHost:/some/remote/directory +``` + +从远程复制多个文件到本地: + +``` +scp User@RemoteHost:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} /some/local/directory +``` + +从一个远程系统复制多个文件到另一个远程系统: + +``` +$ scp User@RemoteHost1:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} User@RemoteHost2:/some/remote/directory/ +``` + +#### 问题 5:如何传输目录下的所有文件? + +传输整个目录,首先进入该目录: + +``` +cd dir_name +``` + +然后, + +``` +scp *.txt User@RemoteHost:/some/remote/directory +``` + +#### 问题 6:可以压缩文件吗? + +当然。使用 **`-C`** 压缩文件。文件会在源端压缩,在目标端自动解压缩。 + +``` +scp -C /some/large/file User@RemoteHost:/some/remote/directory +``` + +#### 问题 7:可以保留文件属性吗? + +保留原始文件的修改时间、访问时间和模式等文件属性,使用 **`-p`** 参数。 + +``` +scp -p file.txt User@RemoteHost:/some/remote/directory +``` + +#### 问题 8: 可以使用其他端口吗? + +当然。SCP 配合 **`-P`** 参数允许你使用其他端口。 + +``` +scp -P 2022 file.txt User@RemoteHost:/some/remote/directory +``` + +#### 问题 9: 可以使用不同的加密方法吗? + +当然。使用 **`-c`** 参数。 + +``` +scp -c 3des-cbc User@RemoteHost:/some/remote/directory +``` + +#### 问题 10: 如何列出 SSH 支持的加密方法? + +使用以下命令查看 SSH 和 SCP 支持的加密方法列表: + +``` +ssh -Q cipher localhost | paste -d, -s - +``` + +#### 问题 11:SCP 真的安全吗? + +当然,它用起来是完全安全的。SCP 和 openSSH 使用相同的 SSH 机制。传输的数据在源端加密,目标端解密。 + +#### 问题 12:可以从 Windows 系统传输文件到 Linux 吗? + +当然。使用 **PSCP** 程序将文件从 windows 传输到 Linux 平台,你也可以使用 **WinSCP**。 + +### 总结 + +在这篇全面指南中,我们了解了什么是 SCP,以及如何在 Linux 中使用 **SCP 安全地传输文件**,其中包括 **17 个 SCP 命令示例**,另外还回答了关于 SCP 的常见问题。 + +无论你是 Linux 管理人员、开发人员还是普通用户,你都会面临某个时候将文件复制到远程系统或从远程系统复制文件的情况,知道如何**使用 SCP 安全地复制文件**将是非常有用的。 + +-------------------------------------------------------------------------------- + +via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/ + +作者:[sk][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://ostechnix.com/author/sk/ +[b]: https://github.com/lkxed +[1]: https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html +[2]: https://ostechnix.com/linux-rsync-command-examples-for-beginners/ +[3]: https://ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/ +[4]: https://ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/ +[5]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Files-from-Local-System-to-Remote-System.png +[6]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Multiple-Files-from-Local-System-to-Remote-System.png +[7]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Directory-from-Local-System-to-Remote-System.png +[8]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Files-from-Remote-System-to-Local-System.png +[9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png +[10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ +[11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png From d87856982277770a41cdb6ebb2e0ab0898aaffda Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 19 Dec 2022 21:59:00 +0800 Subject: [PATCH 2396/3123] RP @CanYellow https://linux.cn/article-15364-1.html --- ...️ Write documentation like you develop code.md | 88 +++++++++++++++++++ ...️ Write documentation like you develop code.md | 86 ------------------ 2 files changed, 88 insertions(+), 86 deletions(-) create mode 100644 published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md delete mode 100644 translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md diff --git a/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md new file mode 100644 index 0000000000..95f0e82e50 --- /dev/null +++ b/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md @@ -0,0 +1,88 @@ +[#]: subject: "Write documentation like you develop code" +[#]: via: "https://opensource.com/article/22/10/docs-as-code" +[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane" +[#]: collector: "lkxed" +[#]: translator: "CanYellow" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15364-1.html" + +像书写代码一样撰写文档 +====== + +![][0] + +> 不想让文档成为事后的想法?或许你该尝试一下全新的写作方式。 + +很多工程师与手工艺者都对他们使用的工具有特别的要求。为了顺利的完成工作,你需要最好的工具和使用它们的技巧。软件开发中最好的工具在应用到其他的数字创作领域中也可以是很强大的。[文档即代码][1]Docs as Code 的方式就是很好的例子。“文档即代码”意味着使用与代码开发相同的工具和工作流来撰写文档。文档即代码的支持者认为,这样的方式可以在降低写作者的工作量的同时,也带来了更好的文档。 + +### 文本格式与源文件控制 + +从传统的写作平台切换到文档即代码方式时,最主要的调整是将写作内容保存在基于文本的标记格式中。这一转变使得基于纯文本的工具都适用于文档写作。无论你选择 [DocBook][2]、[Markdown][3] 或者其他的标记语言,从只使用一种工具到使用一种标准格式配合多种工具是一种巨大的转变。 + +找到支持你的工作流程的工具是非常重要的。很多开发者在文档即代码项目中使用他们的 [代码编辑器][4]。因为他们已经是这些工具的高阶用户,一切都很顺利。而找到适合团队里其他专业人员,比如技术撰稿、编辑、信息架构师和文档产品责任人的工具可能需要一番努力。这里有一些选项可供参考: + +- 各种 [优秀的 Markdown 编辑器][5] 之一 +- 附带良好的预览工具的代码编辑器可能更适合非程序员 +- 流行的 Git 托管服务的网页界面尤其适用于偶尔有需要的贡献者 + +一旦内容以标记语言的格式安全地保存,就可以使用 [Git][6] 这样的版本控制进行管理。Git 相比大多数文档平台具有更多的功能: + +- 清晰详细的文档版本历史:谁在什么时候改变了什么。如果你有良好的提交信息惯例,你甚至可以了解到为什么会有这样的变更。 +- 简明的并行修改过程。在 Git 中使用分支工作意味着任何人可以做出他们想要的任何改变,并在最后合并所做的变更。 +- 先进的协作与审查工具。所有的源代码管理平台都被设计成支持详细审查每一个变更,并根据需要进行讨论,使每个人都确信这个变更可以继续进行。 +- 自动质量检查,比如拼写检查和链接检查。这不仅节省了时间,而且可以发现可能遗漏的错误。 + +源代码管理有很多优点。但要记住,如果你准备入门源代码管理,它有一定的学习曲线。这是一些有助于撰写者入门的优秀的 [学习资源][7] 和 [文章][8]。你也可以让具有好奇心的文档撰写者自行寻找对他们有用的学习材料,而不是请你的工程师来培训他们。(问我是怎么学会的? —— 当然是通过艰苦的方式!) + +### 拉取请求和评审循环 + +所有的源代码管理平台都围绕 拉取请求Pull Request 这一概念设计的,这有时也称为 合并请求Merge Request:有时候,某个人或某个团队先将一系列改变整合到一起,然后请求把这些修改拉到主项目中。不过从许多方面来说,在文档中一次处理多个变更比在代码中更容易。改变一篇文章中的某个地方,比更改代码并发现有其它几个地方依赖它,副作用更小。 + +最强大的协作工具是 [diff][9],它可以通过一个易于理解的方式展示旧版本与新版本之间的差异。该工具有许多不同的版本,可以使比较视图更易于查看:双栏模式、行内模式,甚至是渲染过的 Markdown 模式。团队中的每一个成员都可以选择最适合他们的工具。举例而言,网页视图通常用于查看细微变更,而对于更大的变更,我习惯于使用 `vimdiff` 或 [Meld][10] 在本地浏览。 + +评审意见可以被添加到整个修改中,也可以添加到拟议的变更的个别行中。一些项目限制了行的最大长度,即硬换行,或者一行一句,以使得向文本的特定的部分添加注释更加容易。可以添加进一步的修改与评论,直到审查过程结束,修改被接受。由于拉取请求在项目仓库以队列形式展示,这是一种很好的方式,可以展示目前正在进行的任务以及需要进行检查操作的任务。`diff` 工具使得评审人员更方便地添加他们的思考。尤其是你在与技术受众工作时,你可以通过他们日常使用的工具获得来自他们的评论。 + +### 持续集成与部署 + +以纯文本形式提供你的文档的源代码有很多益处,你可以轻易找到每一个需要修改的位置,你可以使用现有的诸如 [wc][11]、[grep][12] 或 `tree` 之类的工具,来处理潜在的大型文档集。当你将这些与源代码管理平台结合起来之后,你可能获得更多的可用工具,并且它们都是开源的。 + +另一个工作流程上的巨大提升是持续部署的能力。简单来说,这意味着,每当一个拉取请求被合并到主项目中,项目可以直接自动化部署到位。如果这个变更足够好,就可以放进项目中,它也足够好到可以在放到文档网站上帮助你的读者。典型情况下,持续部署是配置在一台单独的自动化服务器上的,比如 [Jenkins][13] 或者 [Git 钩子][14]。不论哪种方式,基于文本的标记语言与文档即代码平台(通常是静态网页生成器,比如 [Hugo][15] 或 [Sphinx][16])结合来生成文档网站,然后自动部署。 + +在部署之前,同样的自动化流程可以被用于对将要合并的拉取请求进行检查。在一个编程项目中,通过计算机自行进行代码检查、代码测试和其他的质量检查已经习以为常。通过类似 [Vale][17] 之类的工具可以对文本进行检查,文档项目也可以同样对待。你也可以添加其他的工具,比如添加一个链接检查器来确保文中所有的链接都是有效的。 + +### 用于文档流程的代码工具 + +被工程师们熟知并喜爱的工具都是非常好的工具,它们同时也可以用于其他类型的项目中。对于文档而言,它们提升了宝贵的效率,尤其是当你希望你的文档与你的团队同步推进的时候。上面讨论到的所有工具都是开源的,你可以亲自尝试,也可以为大型全球团队,亦或者介于两者之间的团队,部署它们。愿你的成文过程和编程过程一样顺畅。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/docs-as-code + +作者:[Lorna Mitchell][a] +选题:[lkxed][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/lornajane +[b]: https://github.com/lkxed +[1]: https://www.writethedocs.org/guide/docs-as-code +[2]: https://opensource.com/article/17/9/docbook +[3]: http://commonmark.org +[4]: https://opensource.com/article/20/12/eclipse +[5]: https://opensource.com/article/21/10/markdown-editors +[6]: https://opensource.com/downloads/cheat-sheet-git +[7]: https://opensource.com/article/18/1/step-step-guide-git +[8]: https://opensource.com/article/19/4/write-git +[9]: https://opensource.com/article/21/11/linux-diff-patch +[10]: https://opensource.com/article/20/3/meld +[11]: https://www.redhat.com/sysadmin/linux-wc-command?intcmp=7013a000002qLH8AAM +[12]: https://opensource.com/downloads/grep-cheat-sheet +[13]: https://www.jenkins.io +[14]: https://www.redhat.com/sysadmin/git-hooks +[15]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo +[16]: https://opensource.com/article/19/11/document-python-sphinx +[17]: https://vale.sh +[0]: https://img.linux.net.cn/data/attachment/album/202212/19/215600m3bzhqlu23lskssl.jpg \ No newline at end of file diff --git a/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md deleted file mode 100644 index 9c373f96bd..0000000000 --- a/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md +++ /dev/null @@ -1,86 +0,0 @@ -[#]: subject: "Write documentation like you develop code" -[#]: via: "https://opensource.com/article/22/10/docs-as-code" -[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane" -[#]: collector: "lkxed" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -像代码开发一样撰写文档 -====== - -不想让书写滞后于你的思考?或许你该尝试一下全新的写作方式。 - -很多工程师与手工艺者都对他们使用的工具有特别的要求。为了顺利的完成工作,你需要最好的工具和使用它们的技巧。软件开发中最好的工具在应用到其他的数字创作领域中也可以是很强大的。[Docs as Code][1] (译注:代码化文档)的方式就是很好的例子。Doc as Code 意味者使用与代码开发相同的工具与工作流来撰写文档。Doc as Code 的支持者认为这样的方式可以在降低作者的工作符负荷的同时保证更好的文档结构。 - -### 文本格式与源文件控制 - -从传统的写作平台切换到 Docs as Code 方式时,最主要的调整是写作内容保存在基于文本的标记格式中。这一转变使得基于纯文本材料的工具都适用于文档写作。当你选择 [DocBook][2], [Markdown][3] 或者其他的标记语言时,从只使用一种工具到使用一种标准格式配合多种工具是一种巨大的转变。 - -找到支持你的工作流程的工具是非常重要的。在 Docs as Code 项目中,很多开发者使用他们的 [代码编辑器][4]。考虑到他们已经是这些工具的高阶用户,一切都很顺利。而找到适合团队里适合其他专业从业者,比如技术撰稿、编辑、信息架构师和文档产品责任人,的工具可能需要一番努力。这里有一些选项可兹参考: - -- 各种[优秀的 Markdown 编辑器][5]之一是可行的 -- 附带良好的预览工具的代码编辑器可能更适合非程序员 -- 流行的 Git 托管服务的网页界面尤其适用于偶尔有需要的贡献者 - -一旦内容以标记语言的格式安全保存就可以使用版本控制进行管理,比如 [Git][6]。Git 相比大多数文档平台具有更多的功能: - -- 清晰详细的文档版本历史:谁在什么时候改变了什么。 -- 简明的并行修改过程支持。在 Git 中使用分支工作意味着任何人可以做出他们想要的任何改变并在最后合并所做的更改。 -- 高级的协作与审查工具。所有的源代码管理平台都设计支持评审每一条细节变更并在足够的讨论后使每个人都确信改变可以继续的流程。 -- 自动质量检查,比如拼写检查和链接检查。这不仅节省了时间,而且可以发现以前无法发现的错误。 - -源代码管理有很多优点。但要记住,如果你准备入门源代码管理,它有一定的学习曲线。这是一些有助于入门的优秀的[学习资源][7]和[作者文章][8]。你也可以让具有好奇心的文档作者自行寻找对他们有用的学习材料,而不是请你的工程师来培训他们。(探寻他人的学习历程是最困难的学习方式) - -### 拉取请求和评审循环 - - -所有的源代码管理平台都围绕拉取请求这一概念设计,这有时也称为合并请求。有时候,某些团队先将一系列改变整合到一起然后向主项目发起要求修改被拉取的请求。不过从许多方面来说,在文档中一次处理多个变更比在代码中更容易。改变文档中某处的一篇文章比之更改代码并找出有哪些地方依赖它具有更小的副作用。 - -最强大的协作工具是 [diff][9],它可以通过一个易于察觉的方式展示旧版本与新版本之间的差异。该工具有多种不同的版本来使得比较视图更易于查看:双栏模式、行内模式,甚至是渲染后的 Markdown 模式。团队中的每一个成员都可以选择最适合他们的版本。举例而言,网页视图通常用于查看细微变更,而对于更大的变更,我习惯于使用 `vimdiff` 或 [Meld][10] 在本地浏览。 - -检查的注释可以整体提交到变更中,也可以提交到指定变更中的个别行中。一些项目限制了行的最大长度,即硬换行,或者一行一句,以使得向文本的特定的部分添加注释更加容易。进一步的变更与注释可以在检查完成接受变更时添加。由于拉取请求在项目仓库以队列形式展示,这是很好的方式来展示目前正在进行的任务以及需要进行检查操作的任务。diff 工具使得评审人员更方便地加入他们的思考。尤其是你在与技术受众工作时,你可以通过他们日常使用的工具获得来自他们的评论。 - -### 持续集成与部署 - -以纯文本形式拥有你的文档的源代码有很多益处,你可以轻易找到每次需要修改的位置,你可以使用现有的诸如 [wc][11]、[grep][12]或 `tree` 之类的工具在潜在的大型文档集中工作。当你将这些与源代码管理平台结合起来之后,你可能获得更多的可用工具,并且它们都是开源的。 - -另一个工作流程上的巨大提升是持续部署的能力。简单来说,这意味着,每当一个拉取请求被合并到主项目中,项目可以直接自动化部署到位。如果变更好到足以接收进项目中,他同时可以在文档页面中实时更新,从而帮助到你的读者。典型情况下,持续部署是配置在任意一台分离的自动化服务器上的,比如 [Jenkins][13] 或者 [Git Hooks][14]。不论哪种方式,基于文本的标记语言与 Doc as Code 平台(通常是静态网页生成器,比如 [Hugo][15] 或 [Sphinx][16])结合来生成文档网站,然后自动部署。 - -在部署之前,同样的自动化流程可以被用于对将要合并的拉取请求进行检查。在一个编程项目中,通过计算机自行进行代码检查、代码测试和其他的质量检查已经习以为常。通过类似 [Vale][17] 之类的工具进行文本检查、文档项目也可以同样对待,你也可以添加其他的工具,比如添加一个链接检查器来确保文中所有的链接都是有效的。 - -### 用于文档流程的代码工具 - -被工程师们熟知并喜爱的工具都是非常好的工具,它们同时也可以用于其他类型的项目中。在文档项目中,它们提升了宝贵的效率,尤其是当你希望你的文档与你的团队同步推进的时候。上面讨论到的所有工具都是开源的,你可以亲自尝试,为大型全球团队部署他们,亦或者介于两者之间,最终使你的成文过程和编程过程一样顺畅。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/docs-as-code - -作者:[Lorna Mitchell][a] -选题:[lkxed][b] -译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/lornajane -[b]: https://github.com/lkxed -[1]: https://www.writethedocs.org/guide/docs-as-code -[2]: https://opensource.com/article/17/9/docbook -[3]: http://commonmark.org -[4]: https://opensource.com/article/20/12/eclipse -[5]: https://opensource.com/article/21/10/markdown-editors -[6]: https://opensource.com/downloads/cheat-sheet-git -[7]: https://opensource.com/article/18/1/step-step-guide-git -[8]: https://opensource.com/article/19/4/write-git -[9]: https://opensource.com/article/21/11/linux-diff-patch -[10]: https://opensource.com/article/20/3/meld -[11]: https://www.redhat.com/sysadmin/linux-wc-command?intcmp=7013a000002qLH8AAM -[12]: https://opensource.com/downloads/grep-cheat-sheet -[13]: https://www.jenkins.io -[14]: https://www.redhat.com/sysadmin/git-hooks -[15]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo -[16]: https://opensource.com/article/19/11/document-python-sphinx -[17]: https://vale.sh From 6ace7e47b3d67d2a93d5f7102daf444613e95e23 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Mon, 19 Dec 2022 22:21:32 +0800 Subject: [PATCH 2397/3123] Translating --- ...20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md index 14355235cb..f5b8157ba3 100644 --- a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md +++ b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/extend-c-python" [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From bae6ed30668b27cf808de729ca8b2aa02107496d Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 20 Dec 2022 08:31:10 +0800 Subject: [PATCH 2398/3123] translated --- ...Try this Linux web browser as your file manager.md | 96 ------------------- ...Try this Linux web browser as your file manager.md | 96 +++++++++++++++++++ 2 files changed, 96 insertions(+), 96 deletions(-) delete mode 100644 sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md create mode 100644 translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md diff --git a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md deleted file mode 100644 index 0d959b6e95..0000000000 --- a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Try this Linux web browser as your file manager" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Try this Linux web browser as your file manager -====== - -Konqueror is a file manager and web browser for the KDE Plasma Desktop. In many ways, Konqueror defined "network transparency," as it applied to a personal desktop. With Konqueror, you can browse remote network files (including the Internet itself, which really is just a collection of remote files viewed through a fancy lens) just as easily as browsing your local files. Sometimes there was some configuration and setup required, depending on what kind of file share you needed to access. But ultimately, the goal of having instant access to all the data you had permission to view was a reality with Konqueror in ways no other file manager had achieved. And at its peak, the open source web engine it developed (KHTML) was adopted by both Apple and Google, and lives on today as the core library of modern web browsing and, technically, Electron app development. - -Today, the KDE Plasma Desktop lists Konqueror as a web browser. Officially, file management has shifted over to [Dolphin][1], but Konqueror is still capable of doing the job. For the full and classic Konqueror experience, you should try the Plasma Desktop 3.x fork [TDE][2], but in this article I use Konqueror in KDE Plasma Desktop version 5. - -### Install Konqueror - -If you're running KDE Plasma Desktop already, you may already have Konqueror installed. If not, you can install it from your distribution's software repository. On Fedora, CentOS, Mageia, OpenMandriva, and similar: - -``` -$ sudo dnf install -y konqueror konqueror-plugins -``` - -On Debian, Linux Mint, Elementary, and similar: - -``` -$ sudo apt install -y konqueror konqueror-plugins -``` - -![Image of ​Konqueror's file manager.][3] - -### Configure Konqueror as a file manager - -The most convenient feature of Konqueror is that it's a web browser in addition to being a file manager. Or at least, that's theoretically its most convenient feature. If you're not using Konqueror as a web browser, then you may not want the URL field or the search engine field at the top of every file manager window. - -As with most KDE applications, Konqueror is highly configurable. You can reposition and add and remove toolbars, add or remove buttons, and so on. - -To adjust what toolbars are displayed, launch Konqueror and go to the **Settings** menu and select **Toolbars Shown**. The **Main** toolbar is probably all you really need for file management. It's the toolbar with navigation buttons on it. However, you may not even need that, as long as you're happy to navigate with keyboard shortcuts or using the **Go** menu. - -Keyboard navigation in Konqueror is the same as in Dolphin: - -- **Alt+Left arrow**: Back one step -- **Alt+Up arrow**: Move to parent directory -- **Alt+Home**: Go to home directory - -### Side panel - -To get a side panel with a listing of common folders, press **F9** or select **Show Sidebar** from the **Settings** menu. This adds a button bar along the left side of the Konqueror window. Click the **Home** icon to display a file tree of your home directory. - -![Image of ​Konqueror with a sidebar.][4] - -As the button bar suggests, this side panel can serve many purposes. Instead of your home directory, you can display bookmarked locations, a history of recent locations you've visited, remote filesystems, and more. - -### Applications - -Some people are used to an application menu. It's efficient and quick, and always in the same place. Other people prefer to launch applications from the terminal. - -There's yet another way to view application launchers, though. Konqueror's **Go** menu allows you go to a meta location called **Applications**, which lists application launchers, by category, as files in a file manager. - -![Image of ​applications in Konqueror.][5] - -You can see this in Dolphin, too, by manually typing **applications:** in the location field, but of the two it's Konqueror that provides a menu option to go there directly. - -### Network folders - -Similarly, Konqueror also provides a menu selection to go to network folders. The greatest network folder of them all is the Internet, but **Network Folders** is the meta location for network protocols other than HTTP. Most remote locations require some setup because they usually require authentication to access. Most of them can be configured through **System Settings**, including file systems accessible over Bluetooth, SMB or CIFS, MTP devices, Fish (file system over SSH), and even Google Drive. - -### Split view - -You can split the Konqueror window into panes, allowing you to see two folders at once without opening two windows. There are two split options: a vertical split with one pane on the left and the other on the right, or a horizontal split with one pane above the other. - -To split the Konqueror window, go to the **Window** menu and select either **Split View Left/Right** or **Spit View Top/Bottom**. Each pane is independent of the other, so you can navigate around in one pane, and then drag and drop files from one to the other. - -### Conquering your file system - -Konqueror isn't _just_ a file manager, and I don't think the developers of the Plasma Desktop expect you to use it as your primary file manager. There's even an option in the **File** menu to open a location in **Dolphin**, which indicates that Konqueror is a web browser with a file manager component. But that file manager component is a nice feature to have when you need it. And if you're not a fan of all the features Dolphin offers, Konqueror could be a suitable alternative. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-konqueror - -作者:[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/article/22/12/linux-file-manager-dolphin -[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde -[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png -[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png -[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png diff --git a/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md new file mode 100644 index 0000000000..5ff7fe755a --- /dev/null +++ b/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md @@ -0,0 +1,96 @@ +[#]: subject: "Try this Linux web browser as your file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +试试这个 Linux 网络浏览器作为你的文件管理器 +====== + +Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面,Konqueror 定义了“网络透明度”,因为它适用于个人桌面。使用 Konqueror,你可以像浏览本地文件一样轻松地浏览远程网络文件(包括 Internet 本身,它实际上只是通过花哨的镜头查看的远程文件的集合)。有时需要进行一些配置和设置,具体取决于你需要访问的文件共享类型。但最终,通过 Konqueror 实现了即时访问你有权查看的所有数据的目标,这是其他文件管理器无法实现的。在其巅峰时期,它开发的开源网络引擎 (KHTML) 被苹果和谷歌采用,并作为现代网络浏览和 Electron 应用开发的核心库延续至今。 + +今天,KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理已正式转移到 [Dolphin][1],但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验,你应该尝试 Plasma Desktop 3.x fork [TDE][2],但在本文中,我在 KDE Plasma Desktop 版本 5 中使用 Konqueror。 + +### 安装 Konqueror + +如果你已经在运行 KDE Plasma Desktop,你可能已经安装了 Konqueror。如果没有,你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上: + +``` +$ sudo dnf install -y konqueror konqueror-plugins +``` + +在 Debian、Linux Mint、Elementary 和类似软件上: + +``` +$ sudo apt install -y konqueror konqueror-plugins +``` + +![Image of Konqueror's file manager.][3] + +### 将 Konqueror 配置为文件管理器 + +Konqueror 最方便的功能是它除了是一个文件管理器之外,还是一个网络浏览器。至少,这在理论上是它最方便的功能。如果那你没有将 Konqueror 用作 Web 浏览器,那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。 + +与大多数 KDE 应用一样,Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。 + +要调整显示的工具栏,请启动 Konqueror 并转到**设置** 菜单并选择**显示的工具栏**。**主**工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是,你甚至可能不需要它,只要你乐于使用键盘快捷键或使用 **Go** 菜单进行导航即可。 + +Konqueror 中的键盘导航与 Dolphin 中的相同: + +- **Alt+向左箭头**:后退一步 +- **Alt+向上箭头**:移动到父目录 +- **Alt+Home**:转到主目录 + +### 侧边栏 + +要获得包含常用文件夹列表的侧边栏,请按 **F9** 或从**设置**菜单中选择**显示边栏**。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 **Home** 图标以显示你的主目录的文件树。 + +![Image of Konqueror with a sidebar.][4] + +正如按钮栏所暗示的那样,此侧边栏可用于多种用途。你可以显示书签位置,你最近访问过的位置的历史,远程文件系统等。 + +### 应用 + +有些人习惯于应用菜单。它高效快捷,并且始终在同一个地方。其他人更喜欢从终端启动应用。 + +不过,还有另一种查看应用启动器的方法。Konqueror 的 **Go** 菜单允许你转到名为 **Applications** 的元位置,它按类别列出了应用程序启动器,就像文件管理器中的文件一样。 + +![Image of applications in Konqueror.][5] + +你也可以在 Dolphin 中看到这个,方法是在位置区域中手动输入 **applications:**,但在这两者中,Konqueror 提供了一个菜单选项,可以直接进入该位置。 + +### 网络文件夹 + +类似地,Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是 Internet,但**网络文件夹**是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置,因为它们通常需要身份验证才能访问。它们中的大多数都可以通过**系统设置**进行配置,包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish(通过 SSH 的文件系统)访问的文件系统,甚至是 Google Drive。 + +### 拆分视图 + +你可以将 Konqueror 窗口拆分为多个窗格,这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项:垂直拆分,一个窗格在左侧,另一个窗格在右侧,或者水平拆分,一个窗格在另一个窗格之上。 + +要分割 Konqueror 窗口,进入**窗口**菜单,选择**分割视图左/右**或**分割视图上/下**。每个窗格都是独立的,所以你可以在一个窗格中浏览,然后把文件从一个窗格拖到另一个窗格。 + +### 征服你的文件系统 + +Konqueror 不_仅仅_是一个文件管理器,我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在**文件**菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置,这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是,当你需要时,这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能,Konqueror 可能是一个合适的替代品。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-konqueror + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin +[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde +[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png +[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png +[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png From 06d450cd8cd6ee34e925157860bcc2d61e716417 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 20 Dec 2022 08:33:14 +0800 Subject: [PATCH 2399/3123] translating --- ...20221218.1 ⭐️ Try this Python-based file manager on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md index e68b102a96..6a349bd658 100644 --- a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md +++ b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7a8163efa147acd5244570ea5737e87550b3e076 Mon Sep 17 00:00:00 2001 From: duoluoxiaosheng <554765662@qq.com> Date: Tue, 20 Dec 2022 08:52:28 +0800 Subject: [PATCH 2400/3123] Translate20221216 (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 12191625 * Update and rename sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md to translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md --- ...️ Improve your documentation with JavaScript.md | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) rename {sources => translated}/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md (51%) diff --git a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md similarity index 51% rename from sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md rename to translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md index 04434f2ebe..66c50a8515 100644 --- a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md +++ b/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md @@ -7,32 +7,33 @@ [#]: publisher: " " [#]: url: " " -Improve your documentation with JavaScript + +使用 JavaScript 增强您的文档 ====== -Open source software projects often have a very diverse user group. Some users might be very adept at using the system and need very little documentation. For these power users, documentation might only need to be reminders and hints, and can include more technical information such as commands to run at the shell. But other users may be beginners. These users need more help in setting up the system and learning how to use it. +开源软件项目通常拥有非常多样化的用户人群。有些用户非常擅长使用该系统,并且只需要很少的文档。对于这些实力派的用户。文档只需要提供必要的提示,并且可以包含更多的技术信息,比如说在 shell 中运行的命令行。有些用户可能只是初学者。这些用户需要更多的帮助来设置系统并学习如何使用它。 -Writing documentation that suits both user groups can be daunting. The website's documentation needs to somehow balance "detailed technical information" with "providing more overview and guidance." This is a difficult balance to find. If your documentation can't meet both user groups, consider a third option — dynamic documentation. +写一个同时适合这两个用户群体的文档是令人生畏的。网站文档需要在 “提供详细的技术信息” 和 “提供更多的概述和指导” 之间寻求一个平衡。这是一个很难找到的平衡。如果你的文档不能同时满足这两个用户人群,那么考虑一下另外一个选择 —— 动态文档。 -Explore how to add a little [JavaScript][1] to a web page so the user can choose to display just the information they want to see. +探索在网页中添加一点 [JavaScript][1] 使用户可以选择自己想看的内容。 -### Structure your content +### 构建您的内容 -You can use the example where documentation needs to suit both expert and novice users. In the simplest case, you can use a made-up music player called AwesomeProject. +你可以把例程添加的你的文档中需要同时满足 专家expert初学者novice 的地方。在这个例程中,你可以使用一个叫做 AwesmeProject 的虚构的音乐播放器。 -You can write a short installation document in HTML that provides instructions for both experts and novices by using the class feature in HTML. For example, you can define a paragraph intended for experts by using: +你可以用 HTML 编写一个简短的安装文档,通过 HTML 的 class 功能同时为专家和初学者提供操作指南。例如,你可以用下面的代码来为专家定义一个段落: ```

              ``` -This assigns both the expert class and the reader class. You can create a parallel set of instructions for novices using: +这就同时指派了专家类 和读者类。 你可以用下面的代码来为初学者创建一个相同的段落。 ```

              ``` -The complete HTML file includes both paragraphs for novice readers and experts: +完整的 HTML 文件同时包含初学者的段落和专家的段落。 ``` @@ -65,11 +66,11 @@ most Linux distributions. Check your graphical package manager and search for Aw ``` -This sample HTML document doesn't have a stylesheet associated with it, so viewing this in a web browser shows both paragraphs: +例子中的 HTML 文档没有与之关联的样式表,所以浏览器中会显示所有的段落。 ![Image of html in black text.][2] -We can apply some basic styling to the document to highlight any element with the reader, expert, or novice classes. To make the different text classes easier to differentiate, let's set the reader class to an off-white background color, expert to a dark red text color, and novice to a dark blue text color: +我们可在文档中添加一些简单的样式来为 读者reader专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。 ``` @@ -103,13 +104,13 @@ color: darkblue;

              How to install the software

              ``` -These styles help the two sections stand out when you view the page in a web browser. Both paragraphs with the installation instructions have an off-white background color because they both have the reader class. The first paragraph uses dark red text, as defined by the expert class. The second installation paragraph is in dark blue text, from the novice class: +当你在浏览器中查看这个网页时,这些样式有助于这两个段落的突出。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。 ![Image of html in red and black text.][3] -### Add JavaScript controls +### 添加 JavaScript 控件 -With these classes applied, you can add a short JavaScript function that shows just one of the content blocks. One way to write this function is to first set `display:none` to all of the elements with the reader class. This hides the content so it won't display on the page. Then the function should set `display:block` to each of the elements with the class you want to display: +这些类的应用,使你可以添加一些简单的 JavaScript 函数,只显示其中一个内容块。一个方法是,首先给所有的读者类元素设置 `display:none` 。这会将内容隐藏,使其不会在页面上显示。然后,用函数将你想显示的类元素设置为 `display:block` : ``` ``` -To use this JavaScript in the HTML document, you can attach the function to a button. Since the `readerview`function takes an audience as its parameter, you can call the function with the audience class that you want to view, either novice or expert: +要在 HTML 文档中使用这个 JavaScript,你可以吧这个功能附加到一个按钮上。由于 `readerview` 函数需要一个听众audience(这应该是相对那个虚拟音乐播放器来说的)作为参数,你可以使用你想查看的听众类别来调用这个函数,可以是读者reader专家expert 或者 初学者novice 。 ``` @@ -199,21 +200,21 @@ manager and search for AwesomeProject to install it.

              ``` -With these controls in place, the web page now allows the user to select the text they want to see: +有了这些设置,用户可以在网页上选择他们想看的文本。 ![Image of window that allows you to select between novice and expert text.][4] -Clicking either button will show just the text the user wants to read. For example, if you click the “view novice text” button, then you'll see just the blue paragraph: +点击任何一个按钮都将只显示用户想要阅读的文本。例如,如果你点击了 “阅读初学者内容view novice text” 按钮,你就只会看到蓝色段落。 ![Image showing blue text when you press the novice button.][5] -Clicking the “view expert text” button hides the novice text and shows only the expert text in red: +点击 “阅读专家内容view expert text” 按钮,就会隐藏初学者文本,只显示红色的专家文本。 ![Image of red text after the expert button is clicked.][6] -### Extend this to your documentation +### 将此扩展到你的文档 -If your project requires you to write multiple how-to documents for different audiences, consider using this method to publish once and read twice. Writing a single document for all your users makes it easy for everyone to find and share the documentation for your project. And you won't have to maintain parallel documentation that varies in just the details. +如果你的项目需要你为不同的听众编写多个操作文档,你可以考虑使用这种方法,一次发布,多次阅读。为所有的用户编写一个文档,是每个人都能很容易的发现和分享你项目的文档。而你也不必同时维护尽在细节上有所不同的多个文档。 -------------------------------------------------------------------------------- @@ -221,7 +222,7 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript 作者:[Jim Hall][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/duoluoxiaosehng) +译者:[duoluoxiaosheng](https://github.com/duoluoxiaosehng) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From eaa1a96fdf48213a085fc77b76d6f174a036c2b3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 20 Dec 2022 10:05:55 +0800 Subject: [PATCH 2401/3123] RP @Return7g https://linux.cn/article-15365-1.html --- ...play with your Raspberry Pi and ping pong balls.md | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) rename {translated/tech => published}/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md (64%) diff --git a/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md similarity index 64% rename from translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md rename to published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md index 303c5388ae..bb08ef8d4b 100644 --- a/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md +++ b/published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md @@ -3,16 +3,20 @@ [#]: author: "Brian McCafferty https://opensource.com/users/bdm" [#]: collector: "lkxed" [#]: translator: "Return7g" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15365-1.html" 利用树莓派和乒乓球制作一个假日彩灯 ====== +![][0] + +> 这个树莓派教程用于制作一个可编程的 LED 灯光显示器,非常适合各种技能水平的人。 + 我喜欢圣诞装饰品和灯饰,因此很长一段时间以来我一直想做一个可编程的 LED 项目。最近,我制作了一个由 LED 灯、乒乓球和树莓派 Zero 组成的灯阵列。这个项目相对简单并且具有教学价值,因此我认为它非常值得分享。 -整个彩灯由我设计,但其中一些灵感也来自 YouTube。你可以在我的 [Git 存储库][1] 中找到源代码和构建说明。 +整个彩灯由我设计,但其中一些灵感也来自 YouTube。你可以在我的 [Git 存储库][1] 中找到源代码和制作说明。 ### 购物清单 @@ -25,15 +29,14 @@ - 烙铁 - 焊锡丝 - 22 AWG 0.35mm 实芯线 -- 10 米 WS2812(B) LED灯带(每米 30 像素) +- 10 米 WS2812(B) LED 灯带(每米 30 像素) - 万用表 - 钢丝钳 - 剥线钳 - ### 设计树莓派的灯光效果 -这个设计是由我展框的大小决定的。我在全球速卖通买到了每米 30 像素的灯带,它可以轻松地切成 0.5m 的长度,这样我就有了 15 个 LED。 乒乓球的直径是 40 毫米,所以我测量并放置了 40 毫米的线,每 40 毫米部分的中间都有 LED 灯条,这就产生了 17 行。 因此我的灯光阵列是 15×17。你可以根据实际情况来调整尺寸。 +这个设计是根据我展框的大小决定的。我在全球速卖通买到了每米 30 像素的灯带,它可以轻松地切成 0.5 米的长度,每条有 15 个 LED 灯。乒乓球的直径是 40 毫米,所以我测量并隔开 40 毫米划了线,LED 灯条放在每隔 40 毫米的中间部分,这就产生了 17 条线。因此我的灯光阵列是 15×17。你可以根据实际情况来调整尺寸。 为了给灯带和树莓派供电,我在电路板底部设置了数据线和电源线。我的 LED 灯不需要很多电,所以我使用树莓派 Zero 的 5V 输出 GPIO 为它们供电。当我以 50% 的亮度运行时,这个亮度已经足以在白天和晚上透过我的窗户看到。 @@ -51,21 +54,23 @@ \---------------< # 这里连接树莓派 ``` -### 使用树莓派搭建显示屏 +### 使用树莓派制作显示屏 -当设计和布线的工作完成后就可以开始搭建显示屏了。 +当设计和布线的工作完成后就可以开始制作显示屏了。 -我在展板上测量并绘制了线路。我的灯带背面有胶带,所以我只需要取下背衬并将其贴在展板上。我检查了每个灯带的位置和数据线的方向以确保灯带可以按照树莓派的指令正确运作。 +我在展板上测量并绘制了线路。我的灯带背面有胶带,所以我只需要取下背衬并将其贴在展板上。我检查了每个灯带的位置和数据线的方向,以确保灯带可以按照树莓派的指令正确串联起来。 连接好所有灯带后,我剪下三段长度相同的电线,并将每个灯带末端的电源线、数据线和接地线连接到其上方。 ![Connect each light strip at the end of each line.][4] -在线路连接完成后,我检查了每条灯带之间的电源线和地线之间的连续性,以确保其连通性。我还检查了是否存在错误的桥接,所以我验证了电源线和地线之间的连续性。我还进行了一些测试以确保所有灯都正常点亮(参阅[测试代码][5]。) +在线路连接完成后,我检查了每条灯带之间的电源线和地线之间的连接,以确保其连通性。我还检查了是否存在错误的桥接,所以我验证了电源线和地线之间的连接。我还进行了一些测试以确保所有灯都正常点亮(链路测试参阅 [测试代码][5])。 -完成上述工作后,我开始在乒乓球上剪洞,用剪刀刺入乒乓球的底部,然后剪一个小洞让 LED 灯穿进去。我每米使用 30 个像素的 LED 灯,所以每个 LED 之间有大约 30 毫米的空隙。 +完成上述工作后,我开始在乒乓球上剪洞,用剪刀刺入乒乓球的底部,然后剪一个小洞让 LED 灯穿进去。手工不太行,每个球都不太一样,但效果真的很好。我使用的每米 30 个像素的 LED 灯,所以每个 LED 之间有大约 30 毫米的空隙。一个乒乓球是 40 毫米宽,但我不打算开始单独焊接每一个 LED!我想,这是很重要的。首先,我并不擅长焊接(正如我的照片所显示的),而且无论如何,我想“好吧,它们是乒乓球。我可以把它们压在一起!” -在 LED 灯上滴上热熔胶,然后在 LED 上放了一个乒乓球并按住大约五秒钟,就粘好了一个乒乓球。粘贴下一个乒乓球时我只需要挨着上一个乒乓球就能让所有乒乓球都变得整齐了 +我是这样做的: + +在 LED 灯上滴上热熔胶,然后在 LED 上放了一个乒乓球并按住大约五秒钟,就粘好了一个乒乓球。粘贴下一个乒乓球时我只需要挤着上一个乒乓球,就能让所有乒乓球都变得整齐了。我对它的外观很满意。它还有一个很好的好处,就是掩盖了我糟糕的焊接工作;) ![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6] @@ -75,7 +80,7 @@ ### 测试代码 -测试代码需要确保所有部件都能正常工作,为此我使用了[Adafruit 指南][8],它以红、绿和蓝点亮每个 LED,然后依次进行循环。我在测试时使用它来确保我连接无误并且焊接正常。 +测试代码需要确保所有部件都能正常工作,为此我使用了这个 [Adafruit 指南][8],它以红、绿和蓝点亮每个 LED,然后依次进行循环。我在测试时使用它来确保我连接无误并且焊接正常。 在此之后,我在电子表格中设计了一个网格,将每个像素映射到一个网格位置。由于我的像素编号呈之字形排列,因此很难跟踪每个 LED(例如 A1 为 256,B1 为 226)。重新映射网格位置能使得我在构建图像时更容易。 @@ -89,13 +94,13 @@ ![An LED snowflake.][11] -### 全年可用的树莓派彩灯 +### 能玩一年的树莓派彩灯 -我不确定这是否已经完全完成了。自从把它摆放到橱窗里,几乎每个晚上我都会添加一些新的图像和动画。我已经在考虑除夕夜的时候要做成什么样了。它不会像圣诞装饰品一起在圣诞节后被放进储藏室。 我只需要在上面显示其它图案,就能使它成为一个全年可用的彩灯! 我的一个朋友推荐了像素马里奥,这听起来是个好主意! +我不确定这是否已经完全完成了。自从把它摆放到橱窗里,几乎每个晚上我都会添加一些新的图像和动画。我已经在考虑除夕夜的时候要做成什么样了。它不会像圣诞装饰品一起在圣诞节后被放进储藏室。我只需要在上面显示其它图案,就能使它成为一个能玩一年的彩灯!我的一个朋友推荐了像素版马里奥,这听起来是个好主意! -我的代码仍然需要完善。 例如,我做了一些滚动文本,但当我为文本的每个位置重新绘制时却花了很多时间。我想我可以用循环做一些事情,或者图像库可以帮助更轻松地滚动字母,并使添加文本更容易,而不是在每一步打开和关闭每个像素。 +我的代码仍然需要完善。例如,我做了一些滚动文本,但当我为文本的每个位置重新绘制时却花了很多时间。我想我可以用循环做一些事情,或者图像库可以帮助更轻松地滚动字母,并使添加文本更容易,而不是在每一步打开和关闭每个像素。 -这里有一张照片记录了我制作的全过程[LED 乒乓墙][12]。 +这里有一张照片记录了我制作的全过程:[LED 乒乓墙][12]。 可以在此处观看它的运行视频:[XMas 灯光展示][13]。 @@ -108,7 +113,7 @@ via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display 作者:[Brian McCafferty][a] 选题:[lkxed][b] 译者:[Return7g](https://github.com/Return7g) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -127,3 +132,4 @@ via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display [11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp [12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/ [13]: https://youtu.be/zc0501GzpMw +[0]: https://img.linux.net.cn/data/attachment/album/202212/20/095754r7q0z001lvx6p600.jpg \ No newline at end of file From a2c61c63b8fd6eb1652068c934e5c03e2f80e7bb Mon Sep 17 00:00:00 2001 From: toknow-gh Date: Wed, 21 Dec 2022 11:34:03 +0800 Subject: [PATCH 2402/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20210917 Open source game achievements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210917 Open source game achievements.md b/sources/tech/20210917 Open source game achievements.md index 663e6387a2..c8ae732235 100644 --- a/sources/tech/20210917 Open source game achievements.md +++ b/sources/tech/20210917 Open source game achievements.md @@ -2,7 +2,7 @@ [#]: via: "https://fedoramagazine.org/open-source-game-achievements/" [#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "toknow-gh" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ee66b0f93131eb6f7e7e6bbfcde68ae8203a5795 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 21 Dec 2022 16:18:01 +0800 Subject: [PATCH 2403/3123] RP @geekpi https://linux.cn/article-15368-1.html --- ...e Images With ‘Converter’ GUI Tool in Linux.md | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) rename {translated/tech => published}/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md (68%) diff --git a/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md similarity index 68% rename from translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md rename to published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md index 292044c8e9..eab96f22e5 100644 --- a/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md +++ b/published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md @@ -3,20 +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-15368-1.html" 在 Linux 中使用 “Converter” GUI 工具转换和操作图像 ====== -你可以随时在您的系统上[安装 ImageMagick][1] 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。 +![][0] + +你可以随时在你的系统上 [安装 ImageMagick][1] 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。 那么,如果你有一个 GUI 应用作为前端来帮助解决这个问题呢? **Converter** 就是这样的工具。 它是 ImageMagick 的前端。所以你不需要使用命令来转换和操作图像。 -请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的[安装指南][1]。 +请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的 [安装指南][1]。 ### Converter:ImageMagick 的图形前端 @@ -26,9 +28,9 @@ 我不想键入命令来快速转换图像。因此,我更喜欢使我能够更快地做事的图形工具。 -[Converter][3] 是一个开源图形前端,可以让你做到这点。它是一个 GTK4+libadwaita 应用。 +[Converter][3] 是一个开源图形前端,可以让你做到这点。它是一个 GTK4 + libadwaita 应用。 -你可以将图像转换为各种文件格式,包括 **png、webp、jpeg、heif、heic 和 bmp**。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。 +你可以将图像转换为各种文件格式,包括 png、webp、jpeg、heif、heic 和 bmp。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。 ![file format converter][4] @@ -36,29 +38,27 @@ ![customize converter][5] -你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“**更多选项**”。 +你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“更多选项More Options”。 ![converter more options][6] -可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸应该有所帮助。 +可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸可能更有用。如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。 -如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。 +总体而言,你可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。 -总体而言,您可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。 - -你还可以[调整 Nautilus][7] 以获得[右键单击上下文菜单中的调整大小选项][8]。它不会像这个工具那样通用。 +你还可以 [调整 Nautilus][7] 以获得 [右键单击上下文菜单中的调整大小选项][8]。但它不像这个工具那样通用。 ### 在 Linux 上安装 Converter Converter 在 [Flathub][9] 上以 Flatpak 的形式提供,可以安装在你选择的任何 Linux 发行版上。 -遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 [Flatpak 指南][10]来安装它。 +遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 [Flatpak 指南][10] 来安装它。 ``` flatpak install flathub io.gitlab.adhami3310.Converter ``` -你可以在其 [GitLab 页面][3]上探索更多相关信息。 +你可以在其 [GitLab 页面][3] 上探索更多相关信息。 _你对我们接下来要重点介绍的此类有趣工具有什么建议吗? 让我们在评论中知道。_ @@ -69,7 +69,7 @@ via: https://itsfoss.com/converter-tool/ 作者:[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/) 荣誉推出 @@ -85,3 +85,4 @@ via: https://itsfoss.com/converter-tool/ [8]: https://itsfoss.com/resize-images-with-right-click/ [9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter [10]: https://itsfoss.com/flatpak-guide/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/21/161705qzvydyyd8v8y3cyh.jpg \ No newline at end of file From 83c2a2f216c6c705b707b7c1b1dc627eadbed9c2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 21 Dec 2022 16:56:16 +0800 Subject: [PATCH 2404/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @cool-summer-021 https://linux.cn/article-15369-1.html 翻译的很好,文字流畅准确。 --- ...6 Promises Much More than Faster Speeds.md | 96 +++++++++++++++++++ ...6 Promises Much More than Faster Speeds.md | 95 ------------------ 2 files changed, 96 insertions(+), 95 deletions(-) create mode 100644 published/20220608 WiFi 6 Promises Much More than Faster Speeds.md delete mode 100644 translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md diff --git a/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md new file mode 100644 index 0000000000..959a4170f6 --- /dev/null +++ b/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md @@ -0,0 +1,96 @@ +[#]: subject: "WiFi 6 Promises Much More than Faster Speeds" +[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/" +[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/" +[#]: collector: "lkxed" +[#]: translator: "cool-summer-021" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15369-1.html" + +WiFi 6 带来的不仅是高速 +====== + +> WiFi 6 提高了网络连通性,它在不久的将来有望为数万亿台设备组网,并且能够不间断而高效地工作。它虽然在 2019 年就取得了官方认证,但由于疫情原因,它的测试工作面临不少挑战。本文旨在对这项技术进行概述。 + +![WiFi-6][1] + +WiFi 技术的下一代标准,称为 “WiFi 6”,也可以称为 “AX WiFi” 或 “802.11ax”。它是为满足指数级增长的设备组网需求而产生的,因此也可以用于 VR 和智能家居。它是现有的 802.11ac WiFi 标准的升级版,可以应对现有技术在容量、效率、覆盖范围和性能方面遇到的挑战。 + +![Figure 1: WiFi 6][2] + +这项技术是在 2014 年进行研发,完成于 2018 年,由 IEEE 高性能无线网络研究组(HEW SG)发布。产品认证于 2019 年后期进行,此时三星 Galaxy Note 10 和 Ruckus R750 使用了这种技术。WiFi 6 运行于 1GHz 和 6GHz 波段,主要的频率为 2.4GHz-5GHz。 + +如今,每个家庭平均有九台设备需要连接 WiFi。WiFi 6 主要致力于改善网络质量,而不是提升某些设备的速度。 + +### WiFi 6的特点 + +- **多用户、多输入、多输出(MU-MIMO):** 路由器和多台设备可以同时通信。在 2.4GHz 和 5GHz 频率上,它支持四个同步的数据流,当这些数据流添加到一个用户时,可以从智能路由器接收到相当大的输入数据的带宽。 +- **1024-QAM:** 这令 WiFi 6 的每个数据包能编码的字节数更多,吞吐量增加了 25%。它不仅提高了大业务量情况下的通信效率,也最大限度增加了传输速率。这在现代企业应用系统领域有很大的优势。 +- **正交频分复用(OFDM):** 支持四倍的副载波,速度也提高了 11%。扩展的信号支持用户同时进行更多数据包传输。所以数据包之间的等待时间和延迟就减少了。 +- **增加的信道宽度:** 80MHz 的波段加入了 160MHz 的信道通信,信道宽度增加了一倍。因此,路由器可以容纳更多用户,为每个用户提供更大的数据流。 +- **目标唤醒时间(TWT):** 这是 WiFi 6 特有的。它支持每台设备独立协商发送和接收的唤醒时间。它可以增加总体睡眠时间,令电池寿命最大化。它还支持许多额外的网络选项,特别是对 IoT 设备的支持。 +- **提升安全性:** 一切支持 WiFi 6 的设备都需要包含 WPA3 协议。它可以对未经验证的通信进行加密,针对暴力字典攻击提供了强大的密码保护,以及对敏感信息进行 192 位的加密,提升数据的可靠性。 +- **波束赋形:** 借助八根天线,波束赋形能提高传输速率,通信范围也因直接定向到某个客户端而扩大。它对快速移动的、可能面临多用户、多输入、多输出的设备起到了支撑作用。波束赋形也有利于控制那些蓄意发出干扰信号的天线的传输。然后信号会被重新定向到新的目标。 + +### 支持 WiFi 6 的设备 + +到目前为止,路由器、中继器、网状网络和多数 WiFi 使用者还是以 WiFi 5 为标准。WiFi 6 是 2019 年推出的。一些支持 WiFi 5 的早期设备存在一些兼容性问题 —— 它们可以使用 WiFi 6 的网络,但得不到相应的支持服务。 + +WiFi 6 的路由器是向后兼容的。应该确保网络已经为此做好了准备。 + +WiFi 6 实现了较低的电量消耗,在任何场景(包括 IoT)下,都是个不错的选择。它减少了不必要的数据流动,还会通知设备何时将数据激活或令其睡眠。所以不必要的数据流动减少了,性能和电池寿命也提高了。 + +三星 Galaxy Note 10 和 Ruckus R750 是全球第一款经认证支持 WiFi 6 的智能手机和接入设备,苹果的最新款 iPhone 也紧随其后。WiFi 联盟已经确立了认证方案,正如人们预期的那样,等待入市的那些新款无线产品也开始申请认证了。下列设备已支持 WiFi 6: + +* iPhone 11 和之后的型号 +* 三星 Galaxy S10、S20、Note 10 和 Note 20 +* 配置 M1 处理器的苹果电脑 +* 智能电视 + +> 为了全面享受到 802.11ax 标准带来的改进,硬件和软件的功能都需要基于这种 WiFi 技术进行升级。 + +### 硬件测试 + +为了充分挖掘最新款设备的潜力,需要一台 WiFi 6 路由器来运行网络。几年前,这么做的成本很高,但现在我们有多种选择,甚至可以使用网格系统、游戏路由器、范围扩展器等等。只有在进行实际测试时,才可以购买最划算的设备。如今,在速度方面,TP-Link Archer AX6000 是最快的,它击败了所有的竞争者。这款路由器可以以 1523 Mbps 的速率无线传输数据,有效传输距离为 1.5米(5 英尺)。 + +很重要的一点,请务必记住,这些路由器提速,并不是在变魔术。理论上的最大速率 9.6 Gbps是实现不了的。这种理论上的最大速率,实际上也会被多台设备分摊掉。 + +WiFi 6 侧重于在连接设备密集的地方提供高质量的连接。它不会令单台设备的速率指数级增长,但会使相关的设备运行处于理想水平。 + +只有各大互联网服务提供商(ISP)的加速计划与 WiFi 6 路由器结合起来,才能体现它的真正潜力。真正的挑战是那些 ISP 承受的,因为它们需要铺设新型的光纤来利用这种下一代技术。存在一个重要的问题:当ISP 的通信速率变得更快,现有的硬件会变得多余吗? + +### WiFi 6 的应用 + +- **大型公共场所(LPV):** 体育馆和会议中心是上千台设备同时联网的公共场所。WiFi 6 能改善参会者体验,增强消费者互动,还能提供附加服务,比如即时回放,订购餐食等。它还支持 LPV 业主开拓新的商业机会。 +- **交通枢纽:** 公共交通站点也是人们需要同时联网的场所。OFDMA 和 BSS 这类明显具有 WiFi 6 色彩的技术为解决这种问题提供了必要的工具。 +- **物联网和智慧城市建设:** WiFi 6 的能效令物联网设备可以进入休眠模式,并且可以在预定的间隔内开启信号发射器,以便在无需过多维护的情况下增加现场作业时间。 +- **教育机构:** 大学校园内的图书馆、礼堂和报告厅内的日间 WiFi 使用密度是最高的,夜晚几乎没有人。WiFi 6 是这类场景的完美选项。 + +(LCTT 译注:相关产品推荐部分节略。) + +### 面临的挑战 + +WiFi 6 不一定使速度更快,但它能确保在一定范围内的设备速率不会在未来几年变慢。虽然它面临三重挑战,但这些问题常常被忽视。 + +- 需要对不支持的设备进行升级:即使 Wifi 6 向后兼容,但只能在最大限度使用这种技术时才能做得合理。这意味着每次都要更新设备。 +- 内部网络以外的速度和性能:WiFi 6 能为诸如云文件共享之类服务提供极好的连接性。然而,ISP 的相关资源也会影响速度和性能。 +- 覆盖范围问题:在各个国家,传输信号和带宽都是由法律规定上限的。因此,为了符合法律规定的上限,WiFi 6 的覆盖范围也是受限的。 + +尽管存在这些挑战,一些企业,像 Aruba、华硕、AT&T、Boingo、博通、思科、Comcast、CommScope、Cypress、Extreme Networks、英特尔、Netgear、Orange、高通、TP-Link 和小米,都在关注 WiFi 6 更多的可能性。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/ + +作者:[Sharon Katta][a] +选题:[lkxed][b] +译者:[cool-summer-021](https://github.com/cool-summer-021) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/sharon-katta/ +[b]: https://github.com/lkxed +[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg +[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202212/21/165355hi20ky6mchmj0h38.jpg \ No newline at end of file diff --git a/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md deleted file mode 100644 index 210c958523..0000000000 --- a/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md +++ /dev/null @@ -1,95 +0,0 @@ -[#]: subject: "WiFi 6 Promises Much More than Faster Speeds" -[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/" -[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/" -[#]: collector: "lkxed" -[#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -WiFi 6 带来的不仅是高速 -====== -WiFi 6 提高了网络连通性,它在不久的将来有望为数万亿台设备组网,并且能够不间断而高效地工作。它虽然在2019年就取得了官方认证,但由于疫情原因,它的测试工作面临不少挑战。本文旨在对这项技术进行概述。 - -![WiFi-6][1] - -WiFi 技术的下一代标准,称为 ‘WiFi 6’,也可以称为 ‘AX WiFi’ 或 ‘802.11ax’。它是为满足指数级增长的设备组网需求而产生的,因此也可以用于 VR 和智能家居。它是现有的 802.11ac WiFi 标准的升级版,可以应对现有技术在容量、效率、覆盖范围和性能方面遇到的挑战。 - -![Figure 1: WiFi 6][2] - -这项技术是在 2014 年进行研发,完成于2018年,由 IEEE 高性能无线网络研究组发布。产品认证于 2019 年后期进行,此时 Samsung Galaxy Note 10 和 Ruckus R750 使用了这种技术。WiFi 6 运行于 1GHz 和 6GHz 波段,主要的频率为 2.4GHz-5GHz。 - -如今,每个家庭平均有九台设备需要连接 Wifi。WiFi 6 主要致力于改善网络质量,而不是提升某些设备的速度。 - -### WiFi 6的特点 - -**多用户、多输入、多输出(MU-MIMO):** 路由器和多台设备可以同时通信。支持即时数据流,用户可以从智能路由器接收的输入数据的带宽很大,在频率为 2.4GHz-5GHz 时都是可行的。 -**1024-QAM:** 这令 WiFi 6 的每个数据包能编码的字节数更多,吞吐量增加了 25%。它不仅提高了大业务量情况下的通信效率,也最大限度增加了传输速率。这在现代企业应用系统领域有很大的优势。 -**正交频分复用(OFDM):** 支持四倍的负载波,速度也提高了 11%。扩展的信号支持用户进行更大的即时数据包传输。所以数据包之间的等待时间和延迟就减少了。 -*增加的信道宽度:* 80MHz的波段加入了160MHz的信道通信,信道宽度增加了一倍。因此,路由器可以容纳更多用户,为每个用户提供更大的数据流。 -*目标唤醒时间(TWT):* 这是 WiFi 6 特有的。它支持每台设备协商发送和接收的唤醒时间。它可以增加总体处于睡眠状态的时间,令电池寿命最大化。它还支持许多额外的网络选项,特别是对 IoT 设备的支持。 -*提升安全性:* 一切支持 WiFi 6 的设备都需要包含 WPA3 协议。它可以对未经验证的通信进行加密,针对暴力字典攻击提供强大的密码保护,以及对敏感信息进行 192 位的加密,提升数据的可靠性。 -*波束赋形:* 借助八根天线,波束赋形能提高传输速率,通信范围也因直接定向到某个客户端而扩大。它对快速移动的、可能面临多用户、多输入、多输出的设备起到了支撑作用。波束赋形也有利于控制那些蓄意发出干扰信号的天线的传输。然后信号会被重新定向到新的目标。 - -### 支持 WiFi 6的设备 - -到目前为止,路由器、中继器、网状网络和多数 WiFi 使用者还是以 WiFi 5 为标准。WiFi 6 是 2019 年推出的。一些支持 WiFi 5 的早期设备存在一些兼容性问题——它们可以使用 WiFi 6 的网络,但得不到相应的支持服务。 - -WiFi 6 的路由器是向后兼容的。应该确保网络已经为此做好了准备。 - -WiFi 6 实现了较低的电量消耗,在任何场景(包括 IoT)下,都是个不错的选择。它减少了不必要的数据流动,还会通知设备何时将数据激活或令其睡眠。所以不必要的数据流动减少了,性能和电池寿命也提高了。 - -Samsung Galaxy Note 10 和 Ruckus R750 是全球第一款经认证支持 WiFi 6 的智能手机和接入设备,Apple iPhone 最新款也紧随其后。WiFi 联盟建、确立了认证方案,正如人们预期的那样,等待入市的那些新款无线产品也开始申请认证了。下列设备已支持 WiFi 6: - -* iPhone 11 和之后的型号 -* Samsung Galaxy S10, S20, Note 10 和 Note 20 -* 配置 M1 处理器的苹果电脑 -* 智能电视 - -> 为了全面享受到 802.11ax 标准带来的改进,硬件和软件的功能都需要基于这种 WiFi 技术进行升级。 - -### 硬件测试 - -为了充分挖掘最新款设备的潜力,需要一台 WiFi 6 路由器来运行网络。几年前,这么做的成本很高,但现在我们有多种选项,甚至可以使用网格系统,游戏路由器,范围扩展器等等。只有在进行实际测试时,才可以购买最划算的设备。如今,在速度方面,TP-Link Archer AX6000 是最快的,它击败了所有的竞争者。这款路由器可以以 1523 Mbps 的速率无线传输数据,有效传输距离为 1.5米(5英尺)。 - -很重要的一点,请务必记住,这些路由器提速,并不是在变魔术。理论上的最大速率9.6 Gbps是实现不了的。这种理论上的最大速率,实际上也会被多台设备分摊掉。 - -WiFi 6 侧重于在连接设备密集的地方提供高质量的连接。它不会令单台设备的速率指数级增长,但会使相关的操作处于理想水平。 - -只有各大互联网服务提供商(ISP)的加速计划组合起来,加上 WiFi 6 路由器,才能体现它的真正潜力。真正的挑战是那些 ISP 承受的,因为它们需要铺设新型的光纤来利用这种下一代技术。存在一个重要的问题:当ISP 的通信速率变得更快,现有的硬件会变得多余吗? - -### WiFi 6 的应用 - -**大型公共场所(LPVs):** 体育馆和会议室是上千台设备同时联网的公共场所。WiFi 6 能改善参会者体验,增强消费者互动,还能提供附加服务,比如即时回放,订购餐食等。它还支持 LPV 业主开拓新的商业机会。 -**交通枢纽:** 公共交通站点也是人们需要同时联网的场所。OFDMA 和 BSS 这类明显具有 WiFi 6 色彩的技术为解决这种问题提供了必要的工具。 -**物联网和智慧城市建设:** WiFi 6 的效率令物联网设备可以进入休眠模式,并且可以以预定的间隔信号开启信号传送器,以便在无需过多维护的情况下增加现场作业时间。 -**教育机构:** 大学校园内的图书馆、礼堂和报告厅内的日间 WiFi 使用密度也是最高的,夜晚几乎没有人。WiFi 6 是这类场景的完美选项。 - -### 面临的挑战 - -WiFi 6 不一定使速度更快,但它能确保在一定范围内的设备速率不会在未来几年变慢。虽然它面临三重挑战,但这些问题常常被忽视。 -需要对不支持的设备进行升级:即使 Wifi 6 向后兼容,但只能在最大限度使用这种技术时才能做得合理。这意味着每次都要更新设备。 - -内部网络以外的速度和性能:WiFi 6 能为诸如云文件共享之类服务提供极好的连接性。然而,ISP 的相关资源也会影响速度和性能。 - -*覆盖范围问题:* 在各个国家,传输信号和带宽都是由法律规定上限的。因此,为了符合法律规定的上限,WiFi 6 的覆盖范围也是受限的。 - -尽管存在这些挑战,一些企业,像Aruba, Asus, AT&T, Boingo, Broadcom, 思科, Comcast, CommScope, Cypress, Extreme Networks, 英特尔, Netgear, Orange, Qualcomm, TP-Link 和小米,都在关注 WiFi 6 更多的可能性。 - -(LCTT 译注:选题删除了原文中的相关产品推荐部分。) - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/ - -作者:[Sharon Katta][a] -选题:[lkxed][b] -译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.opensourceforu.com/author/sharon-katta/ -[b]: https://github.com/lkxed -[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg -[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg From c9a02f4fcd686f669d6d58147b5f4aa1c17b8998 Mon Sep 17 00:00:00 2001 From: fuyanjie Date: Wed, 21 Dec 2022 19:53:44 +0800 Subject: [PATCH 2405/3123] translated --- ...in Ubuntu and other Linux Distributions.md | 187 ------------------ ...in Ubuntu and other Linux Distributions.md | 186 +++++++++++++++++ 2 files changed, 186 insertions(+), 187 deletions(-) delete mode 100644 sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md create mode 100644 translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md diff --git a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md deleted file mode 100644 index ac6e8dca33..0000000000 --- a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md +++ /dev/null @@ -1,187 +0,0 @@ -[#]: subject: "How to Record Streaming Audio in Ubuntu and other Linux Distributions" -[#]: via: "https://itsfoss.com/record-streaming-audio/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "FYJNEVERFOLLOWS" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Record Streaming Audio in Ubuntu and other Linux Distributions -====== -How to record audio in Ubuntu and other Linux distributions? - -If you want to record a voice over through the microphone of your computer, you can use GNOME Sound recorder or Audacity. - -Using GNOME Sound Recorder is easy but it lacks features. Audacity could be overwhelming initially but it has plenty of features for professional level recording. However, I am not going into that detail in this tutorial. - -GNOME Sound Recorder works with the microphone. There is another tool called Audio recorder and you can use it to record streaming music (from Sptify, YouTube, internet radio, Skype and most other sources) apart from microphone input. - -To summarize, I’ll show you the steps: - -* To record sound using GNOME Sound Recorder -* To record streaming audio using Audio Recorder - -### Using Sound Recorder to record audio from the microphone - -GNOME desktop environment has a good variety of useful applications. Sound Recorder is one of them. - -You can install the [Sound Recorder][1] from the Ubuntu Software Center. - -![Sound Recorder can be installed from the Ubuntu Software Center][2] - -Or, you can use this command in the terminal to install it: - -``` -sudo apt install gnome-sound-recorder -``` - -Once installed, you can find it in the system menu and start from there. - -![GNOME Sound Recorder][3] - -Before you start using it, you should ensure that you have the correct input source chosen in the system settings. GNOME Sound Recorder - -![Ensure that you have chosen correct input in system settings][4] - -Once you open the Sound Recorder application, it will show an interface like the one below. - -![Hit the Record button to start audio recording][5] - -Hit on the record button and it starts recording audio instantly. While recording, you get options to pause, stop or discord the recording. - -![Options while recording audio][6] - -Your recordings are saved and available from the application interface itself. Click on the saved recordings to highlight it. - -You can replay the recordings or delete it. You can choose to save it to another location by clicking the save/download button. You may also rename the recordings using the edit button. - -![Saved recordings][7] - -That’s quite convenient, right? You can choose to record in MP3, FLAC and a couple of more formats. - -#### Removing GNOME Sound Recorder - -Don’t like it or find it lacking in terms of features? - -You can remove GNOME Sound Recorder from the Ubuntu Software Center or use the following command: - -``` -sudo apt remove gnome-sound-recorder -``` - -The application of GNOME Sound recorder is limited. It only records from the microphone and this is not what you would want in certain situations. - -Imagin you want to record a Skype call or something which is playing in an application or web browser? The nifty Audio Recorder helps in such cases. - -### Using Audio Recorder to record streaming audio - -You can watch this video to see how to use Audio Recorder. It’s a bit old but the steps are the same. - -![A Video from YouTube][8] - -[Subscribe to our YouTube channel for more Linux videos][9] - -You can use the [official PPA][10] to install Audio Recorder in Ubuntu and Linux Mint. Use the following commands in the terminal (Ctrl+Alt+T) one by one: - -``` -sudo apt-add-repository ppa:audio-recorder/ppa -sudo apt update -sudo apt install audio-recorder -``` - -Alternatively, you can download the source code from [launchpad][11]. Once installed, you can start the application from the Activity Overview: - -![Audio Recorder][12] - -#### Record all kinds of sound from various sources - -Audio Recorder records all kinds of sounds your computer makes. - -It records audio played through your system’s soundcard, microphones, browsers, webcams and more. - -In other words, it records even if your system sneezes (given that you want to record it). It allows you to select the recording device such as webcam, microphone, Skype, etc. - -To record the streaming music, select the appropriate source. For example, if you are playing streaming radio in Rhythmbox, then select Rythmbox. - -![Audio-Recorder Audio Settings][13] - -#### Record at your convenience - -Audio Recorder also gives you the option of setting timer. You can start, stop or pause recording at a given clock time or at a pre-defined interval. You can also set the limit on the recorded file size. - -Moreover, you can pause (and stop) when there is no audio (or very low sound) and resume it when sound comes back. - -All you have to do is to edit the text in the Timer panel. Comment out the “rules” you don’t want to apply and edit the ones per your requirement. - -![Audio-recorder Timer Settings][14] - -It provides additional settings like auto start at login, show tray icon and other record settings. - -![Audio-recorder Additional Settings][15] - -#### Save the recorded music file in various file formats - -Another gem. You can save the recorded file in your favourite file format. Supported file formats are OGG audio, Flac, MP3, SPX and WAV. I prefer MP3 for my recordings. - -The **recorded files are stored in ~/Audio** i.e., in the Audio folder inside your home directory. - -![Audio-recorder Audio Formats][16] - -#### How good is Audio Recorder? - -I used Audio Recorder in Ubuntu to [record the music played on YouTube][17]. I saved a 2-minute video in MP3 format that took 934 KB of space. But I must say I was not expecting the recorded sound quality to be so good. Honestly, I could not distinguish it from the original YouTube song. - -#### Removing Audio Recorder - -If you don’t find Audio Recorder to your liking, you can remove it using the following commands: - -``` -sudo apt remove audio-recorder -``` - -It will be a good idea to [remove the PPA as well][18]: - -``` -sudo apt-add-repository -r ppa:audio-recorder/ppa -``` - -### Conclusion - -There are probably several other tools for audio recording in Linux. Like GNOME, other desktop environments may also have sound recording apps. I know Deepin has one for sure. - -GNOME Sound Recorder is a decent tool for recording sound from your microphone. For recording sound from various sources, Audio Recorder is a good choice. - -I hope it helps with your audio recording needs. Let me know if you have any suggestions. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/record-streaming-audio/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/FYJNEVERFOLLOWS) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/ -[b]: https://github.com/lkxed -[1]: https://wiki.gnome.org/Apps/SoundRecorder -[2]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder.png -[4]: https://itsfoss.com/wp-content/uploads/2022/08/microphone-settings-ubuntu.png -[5]: https://itsfoss.com/wp-content/uploads/2022/08/using-sound-recorder-linux.png -[6]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recording-with-sound-recorder.png -[7]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-interface.png -[8]: https://youtu.be/o7Ia2QGeB7Q -[9]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 -[10]: https://launchpad.net/~audio-recorder/+archive/ubuntu/ppa -[11]: https://launchpad.net/audio-recorder -[12]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-in-overview.png -[13]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-settings.png -[14]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-timer-settings.png -[15]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-additional-settings.png -[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png -[17]: https://itsfoss.com/youtube-dl-audio-only/ -[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ diff --git a/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md new file mode 100644 index 0000000000..7287e7da5c --- /dev/null +++ b/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md @@ -0,0 +1,186 @@ +[#]: subject: "How to Record Streaming Audio in Ubuntu and other Linux Distributions" +[#]: via: "https://itsfoss.com/record-streaming-audio/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "FYJNEVERFOLLOWS" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 和其他 Linux 发行版中录制流音频 +====== +如何在 Ubuntu 和其他 Linux 发行版中录制音频? + +如果你想通过计算机的麦克风录制语音,可以使用 `GNOME Sound Recorder` 或 `Audacity`。 + +使用 `GNOME Sound Recorder` 很简单,但它缺乏功能。`Audacity` 最初可能会让人无法抗拒,但它有很多专业级录音的功能。然而,在本教程中,我不会详细讨论这个问题。 + +`GNOME Sound Recorder` 能与麦克风配合使用。还有一个叫做 `Audio recorder` 的工具,除了麦克风输入,你可以使用它来录制流媒体音乐(来自 Sptify、YouTube、互联网广播、Skype 和其他大多数来源)。 + +总而言之,我将向你展示以下步骤: + +* 使用 `GNOME Sound Recorder` 录制声音 +* 使用 `Audio Recorder` 录制流音频 + +### 使用 `Sound Recorder` 从麦克风录制音频 + +`GNOME` 桌面环境有很多有用的应用程序。Sound Recorder 就是其中之一。 + +你可以从 `Ubuntu` 软件中心安装 [Sound Recorder][1]。 + +![Sound Recorder can be installed from the Ubuntu Software Center][2] + +或者,你可以在终端中使用此命令来安装它: + +``` +sudo apt install gnome-sound-recorder +``` + +安装后,你可以在系统菜单中找到它并从那里开始。 + +![GNOME Sound Recorder][3] + +在开始使用它之前,应确保在系统设置中选择了正确的输入源 + +![Ensure that you have chosen correct input in system settings][4] + +一打开 `Sound Recorder`,它将显示如下界面。 + +![Hit the Record button to start audio recording][5] + +点击录制按钮,它立即开始录制音频。录制时,你可以选择暂停、停止或取消录制。 + +![Options while recording audio][6] + +你的录音将保存并可从应用程序界面本身获得。单击保存的录音以突出显示。 + +你可以回放或删除录音。你可以通过单击保存/下载按钮选择将其保存到其他位置。你也可以使用编辑按钮重命名录音。 + +![Saved recordings][7] + +这很方便,对吧?你可以选择以 `MP3`、`FLAC` 和多种格式录制。 + +#### 删除 GNOME Sound Recorder + +不喜欢它或发现它缺乏功能? + +你可以从 `Ubuntu` 软件中心删除 `GNOME Sound Recorder` 或使用以下命令: + +``` +sudo apt remove gnome-sound-recorder +``` + +`GNOME Sound Recorder` 的应用受到限制。它只从麦克风录制,在某些情况下这不是你想要的。 + +想象一下你想录制 Skype 通话或在应用程序或网络浏览器中播放的内容?在这种情况下,漂亮的 `Audio Recorder` 会有所帮助。 + +### 使用 Audio Recorder 来录制流音频 + +你可以观看以下视频以了解如何使用 `Audio Recorder`。它有点旧,但步骤是一样的。 + +![A Video from YouTube][8] + +[Subscribe to our YouTube channel for more Linux videos][9] +你可以使用 [官方 PPA][10] 在 Ubuntu 和 LinuxMint 中安装 `Audio Recorder`。在终端中依次使用以下命令(`Ctrl+Alt+T`): + +``` +sudo apt-add-repository ppa:audio-recorder/ppa +sudo apt update +sudo apt install audio-recorder +``` + +或者,你可以从[启动台][11]下载源代码。安装后,你可以从“活动概述”里启动应用程序: + +![Audio Recorder][12] + +#### 记录不同来源的各种声音 + +`Audio Recorder` 记录计算机产生的各种声音。 + +它记录通过系统声卡、麦克风、浏览器、网络摄像头等播放的音频。 + +换句话说,即使你的系统打喷嚏,它也会记录(如果你想记录的话)。它允许你选择录制设备,如网络摄像头、麦克风、Skype等。 + +要录制流媒体音乐,请选择适当的源。例如,如果你正在Rhythmbox 中播放流媒体广播,请选择 Rythbox。 + +![Audio-Recorder Audio Settings][13] + +#### 在你方便的时候录制 + +`Audio Recorder` 还提供了设置计时器的选项。你可以在给定的时钟时间或预定义的间隔开始、停止或暂停录制。你还可以设置录制文件大小的限制。 + +此外,你可以在没有音频(或声音很低)时暂停(和停止),并在声音恢复时继续。 + +你所要做的就是编辑计时器面板中的文本。注释掉你不想应用的“规则”,并根据你的要求编辑这些规则。 + +![Audio-recorder Timer Settings][14] + +它提供了其他设置,如登录时自动启动、显示托盘图标和其他记录设置。 + +![Audio-recorder Additional Settings][15] + +#### 以各种文件格式保存录制的音乐文件 + +另一个宝藏。你可以将录制的文件保存为你喜爱的文件格式。支持的文件格式有 OGG 音频、Flac、MP3、SPX 和 WAV。我录音时更喜欢用 MP3 格式。 + +**录制的文件存储在 `~/Audio`** 中,即主目录中的 `Audio` 文件夹中。 + +![Audio-recorder Audio Formats][16] + +#### `Audio Recorder` 有多好? + +我在 Ubuntu 中使用 `Audio Recorder` [录制YouTube上播放的音乐][17]。我用 MP3 格式保存了一段 2 分钟的视频,占用了 934 KB 的空间。但我必须说,我没想到录制的音质会这么好。老实说,我无法将它与 YouTube 上的原始歌曲区分开来。 + +#### 删除 `Audio Recorder` + +如果你不喜欢 `Audio Recorder`,可以使用以下命令将其删除: + +``` +sudo apt remove audio-recorder +``` + +[同时删除 PPA][18] 是个好主意: + +``` +sudo apt-add-repository -r ppa:audio-recorder/ppa +``` + +### 结论 + +Linux 中可能还有其他几种用于音频录制的工具。像 `GNOME` 一样,其他桌面环境也可能有录音应用程序。我知道 `Deepin` 肯定有一个。 + +`GNOME Sound Recorder` 是一个不错的工具,用于从麦克风录制声音。对于录制各种来源的声音,`Audio Recorder` 是一个不错的选择。 + +我希望这篇文章能满足你的录音需求。如果你有什么建议,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/record-streaming-audio/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/FYJNEVERFOLLOWS) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://wiki.gnome.org/Apps/SoundRecorder +[2]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder.png +[4]: https://itsfoss.com/wp-content/uploads/2022/08/microphone-settings-ubuntu.png +[5]: https://itsfoss.com/wp-content/uploads/2022/08/using-sound-recorder-linux.png +[6]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recording-with-sound-recorder.png +[7]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-interface.png +[8]: https://youtu.be/o7Ia2QGeB7Q +[9]: https://www.youtube.com/c/itsfoss?sub_confirmation=1 +[10]: https://launchpad.net/~audio-recorder/+archive/ubuntu/ppa +[11]: https://launchpad.net/audio-recorder +[12]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-in-overview.png +[13]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-settings.png +[14]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-timer-settings.png +[15]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-additional-settings.png +[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png +[17]: https://itsfoss.com/youtube-dl-audio-only/ +[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ From 645336b1366b52a16ba43de6642204a30895f2d6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 22 Dec 2022 15:03:30 +0800 Subject: [PATCH 2406/3123] RP @chai001125 https://linux.cn/article-15371-1.html --- ... 5 Best Linux Phones to Watch Out for in 2023.md | 86 ++++++++++--------- 1 file changed, 46 insertions(+), 40 deletions(-) rename {translated/tech => published}/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md (72%) diff --git a/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md similarity index 72% rename from translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md rename to published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md index e83a6dd39a..7673c4a30d 100644 --- a/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md +++ b/published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md @@ -3,18 +3,20 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15371-1.html" -2023 年值得期待的 5 个最好的 Linux 手机 +2023 年值得期待的 5 款最佳 Linux 手机 ====== ->以下是一份**可能在 2023 年成为手机界主流的最好的 Linux 手机榜单**,其中还例举了各个 Linux 手机的**特点和价格**。 +![][0] -安卓和 iOS 智能手机是世界上最流行的手机。然而,还有许多人都想要更"开放"、且**在隐私方面做得更好的手机**。如果你使用安卓手机,那么你就是放弃了你的隐私。在个人隐私保护方面,苹果的 iOS 手机表现得要好一点,但它也仅提供了有限的隐私保护。 +> 以下是一份可能在 2023 年成为主流的最佳 Linux 手机榜单,并介绍了各个 Linux 手机的特点和价格。 -这就是现在 Linux 手机变得很流行的原因,因为它们为开发者和终端用户提供了许多选择。虽然,各种类型的 Linux 手机都已经上市,但是要选择最好的 Linux 手机仍然十分困难。从 2022 年的趋势来看,以下是一些可能在 2023 年成为主流的 Linux 手机。 +安卓和 iOS 智能手机是世界上最流行的手机。然而,还有许多人都想要更“开放”、且**在隐私方面做得更好的手机**。如果你使用安卓手机,那么你就是放弃了你的隐私。在个人隐私保护方面,苹果的 iOS 手机表现得要好一点,但它也仅提供了有限的隐私保护。 + +这就是现在 Linux 手机变得很流行的原因,因为它们为开发者和终端用户提供了许多选择。虽然目前有各种类型的 Linux 手机,但是要选择最好的 Linux 手机仍然令人困惑。从 2022 年的趋势来看,以下是一些可能在 2023 年成为主流的 Linux 手机。 ### 关于 Linux 手机,你需要知道的事情 @@ -28,13 +30,13 @@ #### 1、Librem🥇 -**Purism** 公司是 Linux 手机市场上一个相当著名的品牌。Purism 公司推出的 **Librem 5 Linux** 智能手机支持 **PureOS**。PureOS 是一个专为 Linux 手机设计的操作系统,不基于安卓或 iOS 系统;并且它是一个开源的操作系统;它还支持 融合 convergence ,这意味着你可以通过 USB 集线器将手机插入电脑显示器,并将其作为一个桌面操作系统使用🆒。 +**Purism** 公司是 Linux 手机市场上一个相当著名的品牌。Purism 公司推出的 **Librem 5 Linux** 智能手机支持 **PureOS**。PureOS 是一个专为 Linux 手机设计的操作系统,不基于安卓或 iOS 系统,它是一个原生设计的自由开源的操作系统;它还支持 融合 convergence ,这意味着你可以通过 USB 集线器将手机插入电脑显示器,并将其作为一个桌面操作系统使用🆒。 -这款手机拥有优质的硬件和手感,并还十分注重安全和隐私。但是,这款令人印象深刻的智能手机价格有点贵,售价为 1299 美元💔。 +这款手机拥有优质的硬件和手感,还十分注重安全和隐私。但是,这款令人印象深刻的智能手机价格有点贵,售价为 1299 美元💔。 -#### Librem 5 Linux 的主要特点和规格 +Librem 5 Linux 的主要特点和规格: -- 完全免费和开源的,基于 Linux 的移动操作系统:PureOS +- 完全的自由开源,基于 Linux 的移动操作系统:PureOS - 拥有独立的调制解调器、Wi-Fi 和蓝牙芯片 - 拥有 3 个专门的硬件键,来启用和禁用互联网、相机、Wi-Fi 和蓝牙 - 拥有智能卡读卡器 @@ -45,13 +47,13 @@ | 规格 | 描述 | | :- | :- | -| **屏幕** | 5.7 英寸(IPS TFT 720×1440) | -| **运行内存 RAM** | 3 GB | -| **内存** | 32 GB eMMC | +| **屏幕** | 5.7 英寸(IPS TFT 720×1440) | +| **内存** | 3 GB | +| **存储** | 32 GB eMMC | | **电池容量** | 4500 mAh | | **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53(四核),64 位 ARM,最高主频为 1.5GHz | | **GPU** | Vivante GC7000 Lite | -| **屏幕尺寸、材质、分辨率** | 5.7 英寸,IPS TFT,720×1440 像素 | +| **屏幕** | 5.7 英寸,IPS TFT,720×1440 像素 | | **摄像头** | 带 LED 闪光灯的 1300 万像素(后置)摄像头和 800 万像素(前置)摄像头 | | **USB 接口** | Type C 接口 | @@ -63,12 +65,12 @@ Linux 手机榜单的第 2 名是 **Pinephone**。Pinephone 也许是市场上 此外,PinePhone 同时有很多个版本,其中包括专业版本。PinePhone 的价格比较便宜,并且十分注重用户的隐私和可扩展性,如果你是第一次使用 Linux 手机,PinePhone 将会是一个不错的选择😌。 -#### Pinephone 的主要特点和规格 +Pinephone 的主要特点和规格: - 支持的操作系统有 KDE Plasma mobile、Manjaro mobile、Sailfish OS 和 Ubuntu touch。 - 配备启用和禁用 LTE、摄像头、Wifi/BT 和麦克风的 5 个开关 - 可启动的 microSD 和 16GB/32GB eMMC 的内存空间 -- Type C 接口(可用于电源、数据和视频输出) +- Type C 接口(可用于电源、数据和视频输出) - 拥有 6 个 Pogo 引脚,允许自定义硬件扩展,如热像仪、无线充电、NFC、扩展电池盒或键盘盒。 - 拥有 3.5 毫米耳机插孔 - 支持融合,可将其插到一台电脑上 @@ -81,8 +83,8 @@ Linux 手机榜单的第 2 名是 **Pinephone**。Pinephone 也许是市场上 | **屏幕** | 5.95 英寸,高清 IPS 电容式触摸屏 | | **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53(四核),64 位 | | **GPU** | Mali-400 MP2 | -| **运行内存 RAM** | 2 种型号:2GB 和 3GB LPDDR3 SDRAM | -| **内存** | 2 种型号:16GB and 32GB eMMC. | +| **内存** | 2 种型号:2GB 和 3GB LPDDR3 SDRAM | +| **存储** | 2 种型号:16GB and 32GB eMMC | | **摄像头** | 500 万像素、1/4英寸、LED 闪光灯(后置)摄像头和 200 万像素、1/5英寸(前置)摄像头 | | **电池** | 锂离子电池(容量为 2800 mAh) | | **音频插孔** | 3.5 毫米 | @@ -99,38 +101,38 @@ Pro 1 X 由伦敦的 **F(x)tec** 公司开发。它是 Linux 手机市场上新 ![Pro 1 X][6] -#### Pro 1 X 的主要特点和规格 +Pro 1 X 的主要特点和规格: -- 首款基于 Linux 的、有内置滑出式键盘的智能手机 +- 首款基于 Linux 的、有内置滑出式的 QUERTY 键盘的智能手机 - 支持 Ubuntu touch 操作系统,并有安卓选项 -- 解锁的启动程序 +- 已解锁的启动程序 - 拥有 3.5 毫米耳机插孔 - 拥有 AMOLED 显示屏 -- 128 GB 内存/6 GB 运行内存:售价为 829 美元起 -- 256 GB 内存/8 GB 运行内存:售价为 899 美元起 +- 128 GB 存储/6 GB 内存:售价为 829 美元起 +- 256 GB 存储/8 GB 内存:售价为 899 美元起 | 规格 | 描述 | | :- | :- | | **CPU** | Snapdragon 662 Qualcomm | | **GPU** | Adreno 610 Qualcomm | -| **运行内存 RAM** | 2 种型号:6GB 和 8GB LPDDR4 | -| **内存** | 128 GB(可扩展至 2 TB) | +| **内存** | 2 种型号:6GB 和 8GB LPDDR4 | +| **存储** | 128 GB(可扩展至 2 TB) | | **屏幕** | 5.99英寸,弧形边缘,Corning® Gorilla® Glass 3(分辨率为 2160 x 1080 像素的 AMOLED 显示屏) | | **摄像头** | 1200 万像素 Sony IMX363(后置)摄像头和800万像素(前置)摄像头 | | **电池容量** | 3200 mAh | | **音频插孔** | 3.5 毫米 | -它的内置滑出式键盘有没有吸引到你呢?去 [pro 1 x 的购买官网][5] 看看吧。 +它的内置滑出式键盘是否吸引了你?去 [pro 1 x 的购买官网][5] 看看吧。 #### 4、Volla Phone [Volla Phone][7] 可以同时运行**两个操作系统:Ubuntu Touch 和 VollaOS**。 -VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注重用户的隐私;Ubuntu Touch 是一个流行的 Linux 手机发行版。 +VollaOS 是一个安卓操作系统的修改版,没有谷歌专有的部分,同时也很注重用户的隐私;Ubuntu Touch 是一个流行的 Linux 手机发行版。 -#### Volla Phone 的主要特点和规格 +Volla Phone 的主要特点和规格: -- 没有谷歌及其服务 +- 没有谷歌专有部分及其服务 - 不依赖云计算 - 加密的设备存储 - 使用安卓操作系统的修改版:Volla OS @@ -146,9 +148,9 @@ VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注 | :- | :- | | **CPU** | MediaTek Helio P23 | | **GPU** | ARM Mali-G71 MP2  | -| **内存** | 64 GB,eMMC | -| **运行内存 RAM** | 4 GB DDR3 RAM | -| **屏幕尺寸、材质、分辨率** | 6.3 英寸,IPS,2340×1080 像素 | +| **内存** | 4 GB DDR3 RAM | +| **存储** | 64 GB,eMMC | +| **屏幕** | 6.3 英寸,IPS,2340×1080 像素 | | **摄像头** | 1600万像素带闪光灯的(后置)摄像头和1600万像素(前置)摄像头 | | **电池容量** | 4700 mAh | | **USB 接口** | Type C 接口和 3.5 毫米音频插孔 | @@ -159,13 +161,15 @@ VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注 [Fairphone 4][10] 是另一款具有模块化硬件的 Linux 智能手机。它支持 PostmarketOS 操作系统,并使用安卓操作系统的修改版本:FairPhone OS。这个手机的主要卖点是它的 模块化 modularity ,你可以替换手机的任何模块:你可以毫不费力地更换它的电池🔋;此外,不仅仅是更换电池,你还可以简单地用螺丝刀来更换它的显示屏等部件。 -#### Fairphone 4 的规格 +![][14] + +Fairphone 4 的规格: | 规格 | 描述 | | :- | :- | | **CPU** | Octa-Core Kryo 570(八核) | -| **运行内存 RAM** | 2 种型号:6GB 和 8GB | -| **内存** | 2 种型号:128GB 和 256GB | +| **内存** | 2 种型号:6GB 和 8GB | +| **存储** | 2 种型号:128GB 和 256GB | | **GPU** | Adreno 619 | | **屏幕** | 6.3 英寸,全高清,IPS | | **摄像头** | 2 个 4800 万像素(后置)摄像头和 2500 万像素(前置)摄像头 | @@ -182,16 +186,16 @@ VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注 - Sony Xperia X (F5121 & F5122) - Google Nexus 5 - OnePlus One -- 支持 Ubuntu Touch OS 操作系统的[完整列表][12] +- 支持 Ubuntu Touch OS 操作系统的 [完整列表][12] - Xiaomi Redmi 2 - Xiaomi Mi Note 2 - OnePlus GT - OnePlus 6 -- 支持 PostmarketOS 操作系统的[完整列表][13] +- 支持 PostmarketOS 操作系统的 [完整列表][13] ### 结语 -以上就是关于如今市场上最好的 Linux 手机的全部内容了。你可以从这些手机的官方网站上,了解更多信息。因为手机的隐私保护在当下变得越来越重要了,我相信在未来会有越来越多的人使用 Linux 手机。 +以上就是关于如今市场上最好的 Linux 手机的全部内容了。你可以从这些手机的官方网站上了解更多信息。因为手机的隐私保护在当下变得越来越重要了,我相信在未来会有越来越多的人使用 Linux 手机。 诚然,Linux 手机本身的功能及其操作系统比不上安卓和苹果 iOS 手机。但是,对于 Linux 手机来说,更重要的是它的标准的设立、全球购买的可行性、在这一新兴市场的低入门价格以及对 Linux 手机应用生态系统的大力投资。在 Linux 手机的生态系统中需要更简化的界面,没有简单的界面,Linux 手机将变得更加零散,就像台式机一样。Linux 手机的制造商还需要和自由及开源软件(FOSS)参与者一起合作,最终才能使 Linux 手机广受欢迎。 @@ -202,7 +206,7 @@ via: https://www.debugpoint.com/best-linux-phones/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -221,3 +225,5 @@ via: https://www.debugpoint.com/best-linux-phones/ [11]: https://shop.fairphone.com/ [12]: https://devices.ubuntu-touch.io/ [13]: https://wiki.postmarketos.org/wiki/Devices +[0]: https://img.linux.net.cn/data/attachment/album/202212/22/145904l88upudto8u7y3ui.jpg +[14]: https://img.linux.net.cn/data/attachment/album/202212/22/150220zuowaoguya3azajw.jpg \ No newline at end of file From d225b166970845019fdff0719e984c87d66abe52 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 22 Dec 2022 15:08:03 +0800 Subject: [PATCH 2407/3123] translated (#28285) * t1 * tranlatng * translating * translated * translated * Delete test.md --- ...inciples will impact the future of work.md | 93 ------------------ ...inciples will impact the future of work.md | 97 +++++++++++++++++++ 2 files changed, 97 insertions(+), 93 deletions(-) delete mode 100644 sources/tech/20210103 How open principles will impact the future of work.md create mode 100644 translated/tech/20210103 How open principles will impact the future of work.md diff --git a/sources/tech/20210103 How open principles will impact the future of work.md b/sources/tech/20210103 How open principles will impact the future of work.md deleted file mode 100644 index c7ecf68511..0000000000 --- a/sources/tech/20210103 How open principles will impact the future of work.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (CanYellow) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (How open principles will impact the future of work) -[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work) -[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland) - -How open principles will impact the future of work -====== -In many ways, the nature of our work defines us. So how do we prepare -for a future when the nature of work will change dramatically? -![Working on a team, busy worklife][1] - -If we define "work" as any contribution that receives any kind of reward, then work is—and always has been—one of the major factors that define who we are. It is a major aspect of our lives. Throughout our work (whatever that may be for us), we meet friends, identify sources of intellectual stimulation and emotional fulfillment, grow, and feel at our most creative and innovative. To our families, friends, communities and societies, work is extremely important. We should not take work—or its role in our lives—lightly or for granted. - -So if the [nature of work is going to change][2] in the future, it might mean that something key to our very sense of _self_ is going to change. And we should plan for those changes very seriously. - -Consider the transformation of work throughout the Industrial Revolution (between the 1700s and 1800s). It drove many people from rural farm work into factories in the cities, fundamentally altering their lifestyles. It required new, more specialized skills (rather than the kind of artisanship common in rural economies). As we examine our own personal work environments in the decades to come, we'll see a potential reversal of the trends we saw during the Industrial era: from hierarchy and interchangeable general skills and activities to the reinstatement of horizontal collaboration and more specialized mastery (back to artisanship). - -This time, though, these changes come on a global scale rather than a local one, and the speed of change is far more accelerated. - -And in this new work environment, [open organization principles][3] will play a vital role. - -In this series, I'll review [_The Shift_, a book by Professor Lynda Gratton][4]—a book that, while written in 2014 from data assembled in 2010, still rings true today (and will in the future, too). In this book, Gratton projects how work will change around 2025 and 2050. This is vital information, as it will help us make sound choices when preparing for and developing our careers moving forward. - -Gratton explains predominant forces influencing the future of work in this timeframe. In this article series, I'll summarize them—and explain how open organization principles are involved in each. - -### Five factors influencing the future of work - -Driving the Industrial Revolution were inventions that used coal and steam power. Today, [Gratton][5] says, five subtle forces are causing a similar "shift": - - 1. increased global activities - 2. rapid advances in technology - 3. human longevity and demographics - 4. societal and family structural changes - 5. the need for a low-carbon economy - - - -In short: Computers will become faster. Materials will become stronger. Medicines will cure more diseases allowing longer human life. To varying degrees, these will all impact on how we work in the future. Here are a few notes on each. - -#### 1\. Globalization - -In a previous article, "[Globalization: A history of openness][6]," I discussed multiple forces and factors related to globalization, one of them being trade. Between 1950 and 2010 the volume of global trade has increased by 60 times, while at the same time transportation costs have fallen. And at the same time, developing countries are seeing not only increased trade but new innovations. I also discussed globalization in early history as part of my article "[Open organizations through the ages][7]." And I explored the importance of global governance—both now and into the future—in my article ["What would a global open organization look like?"][8] According to Gratton, globalization will have an undeniable and unavoidable impact on the future work. - -If the nature of work is going to change in the future, it might mean that something key to our very sense of self is going to change. And we should plan for those changes very seriously. - -#### 2\. Technology - -The cost of computing has been coming down at an alarming rate. And it will continue to decrease. This will help connect billions of people that have been mostly left out of the greater global economy until now. They will start to both enter the workforce and become more influential consumers. At the same time, computers and advanced automation [will replace jobs performed by humans][9] in the future. This all will influence work shifts in the future. - -#### 3\. Demographics and longevity - -Gratton also notes the impacts that various generations will have on the future of work, particularly in the United States. Younger generations will play a major role in the future, as their attitudes are different from earlier generations. Moreover, birth rates in various global regions will have an impact on prosperity. There will be more migration, as some regions' populations will decline while others increase. They will move to what Professor Gratton calls "creative clusters." And finally, Gratton argues, the life expectancy globally will change. By 2025, 10% of the world's population will be over the age of 65. These people will more than likely want to continue to work for sustained income, continued mental stimulation, physical activity, connection to others, and a source of meaning and purpose in their lives. Also, consider that many children today will more than likely live longer than 100 years. If they retired at 65 years old, they would have 35 years to do very little. With that thought in mind, having several career changes and being active in volunteer and community service programs in the future will expand greatly. - -#### 4\. Society - -In addition to the generational changes, Gratton notes several important social changes, too. There will be changing roles of women in the workplace, she says. People will have more choices to form the life they want than ever before. And with increased productivity per person, there will be more average free time available than ever before, she writes. - -#### 5\. Energy resources - -I've talked about the expansion of resource-saving industries in a presentation I've given on "[The Resource Industrial Revolution][10]." Gratton adds valuable points to this conversation. Climate change, she notes, will gradually become a major issue, which will reduce transportation and consumption. In particular, global water supply will not be able to keep pace with demand. Water desalination projects will expand greatly (possibly powered by [Generation IV][11] distributed small modular nuclear power plants (SMR's) now being developed). Environmental catastrophes will displace people and migration will create displaced communities throughout the globe. More energy-efficient ways of living will be discovered and introduced. This will influence future jobs. - -### Preparing for the future - -These five forces will prompt fundamental changes to the way we work in the future, Gratton argues. But we need to begin preparing for that future now. In the next article of this series, I'll explain Gratton's outlook and a few scenarios for grappling with a rapidly changing future. How could a person look at those changes as career opportunities? On the other hand, what would happen if a person simply _ignored_ those changes to come? I'll review Gratton's thoughts on those questions. Also, I'll also explain how open principles can form the heart of necessary changes. - --------------------------------------------------------------------------------- - -via: https://opensource.com/open-organization/21/1/open-is-future-of-work - -作者:[Ron McFarland][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/ron-mcfarland -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife) -[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2 -[3]: https://theopenorganization.org/definition/ -[4]: http://lyndagratton.com/books/the-shift/ -[5]: https://en.wikipedia.org/wiki/Lynda_Gratton -[6]: https://opensource.com/open-organization/20/7/globalization-history-open -[7]: https://opensource.com/open-organization/20/8/global-history-collaboration -[8]: https://opensource.com/open-organization/20/9/global-open-organization -[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI -[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution -[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor diff --git a/translated/tech/20210103 How open principles will impact the future of work.md b/translated/tech/20210103 How open principles will impact the future of work.md new file mode 100644 index 0000000000..363bc6886a --- /dev/null +++ b/translated/tech/20210103 How open principles will impact the future of work.md @@ -0,0 +1,97 @@ +[#]: collector: (lujun9972) +[#]: translator: (CanYellow) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (How open principles will impact the future of work) +[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work) +[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland) + +开放原则将如何影响未来工作 +====== +我们的工作性质在很多方面塑造了我们自己。未来工作的性质将发生巨大变化,我们又该做何准备呢? + +![团队合作,忙碌的工作生活][1] + +如果我们将“工作”定位为获得某种回报的任何形式的付出,那么工作是并且一直是决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中(不论这对我们意味着什么),我们结识朋友,我们获得智力激励和情感满足的源泉,我们得到成长,我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言,工作极其重要,我们不应轻视工作的重要性亦或视其为理所当然。 + +因此如果未来[工作的性质将发生变化][2],这可能意味着恰恰是我们 _自我认知_ 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。 + +考察自第一次工业革命(18、19世纪)以来的工作转变,很多人从从事农业劳动转为进入城市工厂工作,这从根本上改变了他们的生活方式。新的工作方式需要全新的更专业的工作技能而不再是农村经济中常见的手艺。接下来的几十年里,当我们检视我们的个人工作环境时,我们可能会发现工业时代以来的这一趋势可能发生逆转:从层级制度、可代替的通用技术与活动重新转变为横向协作与对专业知识的熟练掌握的更高要求(回到手工艺时代)。 + +这个时代与这些转变的到来将是全球性的而非区域性的,转变的速度已经大大加快了。 + +在这一新的工作环境中,[开放组织原则][3]将扮演关键性的角色。 + +本系列中,我将回顾 [Lynda Gratton 教授的作品,_转变_][4] (中译本:转变:未来社会工作岗位需求变化及应对策略,ISBN:9787121152894),本书成书于2014年(译注,本书原版有 [2011版][T1] 与 [2014版][T2] ),书中数据于2010年收集,但今天仍然适用(将来也一样)。本书中,Gratton教授指出了工作将在2025到2050年间如何变化。这是关键信息,因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。 + +Gratton教授阐释了在上述时间段内影响未来工作的主要因素。本系列中,我们将对它们做一个总结并解释开放组织原则如何融入它们之中。 + + +### 影响未来工作的五个因素 + +煤碳与蒸汽动力的发明推动了第一次工业革命。[Gratton教授][5]说,今天五种微妙的力量导致了类似的转变: + + 1. 日益增长的全球化活动 + 2. 技术的快速进步 + 3. 人类寿命与人口数量 + 4. 社会与家庭结构变化 + 5. 低碳经济的需求 + +简而言之,计算机更快了,材料更强了,药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些笔记。 + +#### 1\. 全球化 + + +在以前的文章 [《全球化:开放的历史》][6] 中,我讨论了全球化的多种动力与影响因素,其中之一就是贸易。从1950年到2010年的60年间,全球贸易的体量增加了60倍,与此同时运输成本降低了,发展中国家不仅看到了贸易增长,而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》][7]中讨论了历史早期的全球化。我另外在我的文章[《全球性的开放组织是怎么样的》][8]中探讨了从现在到未来全球治理的重要性。如Gratton教授所言,全球化在未来工作中将发挥不可否认与不可避免的影响。 + +如果未来工作的性质将发生变化,这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。 + +#### 2\. 技术 + +计算成本一直在以惊人的速度下降,它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时,计算机与高级自动化在未来将[取代人类工作][9],这都将影响未来的工作转变。 + +#### 3\.人口数量与寿命 + +Gratton教授还记录了不同世代的人对未来工作的影响,尤其是在美国。年轻一代在未来将扮演主要角色,他们的态度将不同于上一代。此外,全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加,将会出现更多的移民。他们将移民至Gratton教授谓之“创新集群”的地方。最后,Gratton教授认为全球预期寿命将会变化。截至2025年,世界人口的10%都将超过65岁,这些人口将更可能希望继续工作,为了得到持续的收入、精神刺激、身体活动,与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过100岁的寿命,如果他们在65岁退休,他们余下的至少35年里将做不了太多事情。基于这样的考虑,在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。 + +#### 4\. 社会 + +常规的变化之外,Gratton教授还描述了一些社会变化。她说,未来女性在工作上的角色将会变化,人们将比以往拥有更多的选择来塑造他们希望的生活;随着个人劳动生产率的提升,平均空闲时间将比以往更多。 + +#### 5\. 能源 + +我在[资源工业革命][10]上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充一些有价值的观点。她认为气候变化将逐渐成为主要议题,并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张(可能由正在开发的[第四代][11]分布式小型模块化核电站提供动力)。环境灾难将使人们背井离乡,并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入,这将影响未来工作。 + + +### 为未来提前准备 + +上述五种力量将推动未来工作方式发生根本性的改变,Gratton教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中,我将介绍Gratton教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会?另一方面,如果简单地选择对即将到来的变化 _视而不见_ 又会发生什么?我将回顾Gratton教授在这些问题上的思考。同样的,我也将解释开放原则如何形成必经的变革的核心。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/21/1/open-is-future-of-work + +作者:[Ron McFarland][a] +选题:[lujun9972][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[校对者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/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife) +[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2 +[3]: https://theopenorganization.org/definition/ +[4]: http://lyndagratton.com/books/the-shift/ +[5]: https://en.wikipedia.org/wiki/Lynda_Gratton +[6]: https://opensource.com/open-organization/20/7/globalization-history-open +[7]: https://opensource.com/open-organization/20/8/global-history-collaboration +[8]: https://opensource.com/open-organization/20/9/global-open-organization +[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI +[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution +[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor + +[T1]: https://isbnsearch.org/isbn/9780007427956 +[T2]: https://isbnsearch.org/isbn/9780007525850 From b2dae94bd6652d4131fb254ee290d17cf9bffd17 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 22 Dec 2022 15:29:12 +0800 Subject: [PATCH 2408/3123] RP @geekpi https://linux.cn/article-15372-1.html --- ... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) rename {translated/tech => published}/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md (66%) diff --git a/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md similarity index 66% rename from translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md rename to published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md index dbfa0952d0..23a4212934 100644 --- a/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md +++ b/published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md @@ -3,47 +3,51 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15372-1.html" -Linux Mint 升级工具:使用指南 +Linux Mint 升级工具使用指南 ====== -**以下是如何使用 Mint 升级工具升级到新的 Linux Mint 版本,即带有实际升级过程截图的 mintupgrade GUI。** +![][0] -如果你正在寻找最近发布的 **Linux Mint 21 Vanessa** 的**详细升级**步骤,请阅读本指南👉[从 Linux Mint 20.3 升级到 21][1] +> 以下是如何使用 Mint 升级工具升级到新的 Linux Mint 版本,即带有实际升级过程截图的 mintupgrade GUI。 + +如果你正在寻找最近发布的 **Linux Mint 21 Vanessa** 的**详细升级**步骤,请阅读本指南👉 + +> **[从 Linux Mint 20.3 升级到 21][1]** ### Linux Mint 升级工具 -Linux Mint 团队 [宣布][2]在几个月前,他们构建了一个新的程序来升级 Linux Mint 的重要版本。它被称为 “mintupgrade2”。开发已经完成,目前正在支持和计划升级到主要版本,例如 Linux Mint 20 到 21,而不是小版本升级。 +Linux Mint 团队 [宣布][2] 在几个月前,他们构建了一个新的程序来升级 Linux Mint 的主要版本。它被称为 “mintupgrade2”。现在开发已经完成,目前正在支持和计划升级到主要版本,例如 Linux Mint 20 到 21,而不是小版本升级。 -尽管你可以使用标准的 apt 命令升级版本,但 Mint 团队认为重大版本升级是棘手的。新用户很难进行无缝升级,因为它涉及终端和一系列复杂的命令步骤。 +尽管你可以使用标准的 `apt` 命令升级版本,但 Mint 团队认为重大版本升级是棘手的。新用户很难进行无缝升级,因为它涉及终端和一系列复杂的命令步骤。 -此外,GUI 是一个封装器,具有 mintupgrade 程序的附加功能,它通过一键修复带来了一组系统前检查和升级过程。 +此外,该图形界面是一个封装器,为 `mintupgrade` 程序带来了更多功能,它带来了一组系统前检查和带有一键修复的升级过程。 -此外,mintupgrade 会进行基本检查,你是否连接到电源、系统是否是最新的、磁盘空间可用性等。 +此外,`mintupgrade` 会进行基本检查,比如你是否连接到电源、系统是否是最新的、磁盘空间可用性等。 为了向你展示它的外观和工作情况,我们安装了一台 LMDE 4 测试机测试。 -但在此之前,这里有一组功能: +但在此之前,看一下它的功能集: - 完全由 GUI 驱动的升级过程 - 多语言支持 - 升级前检查:系统备份、电源、磁盘空间、已删除包列表 - 可配置 -- 提醒你有关先前版本中的孤立包 +- 提醒你有关先前版本中的孤儿包 - 它为你提供了解决问题的选项 ### 它如何运作 -当我们通过命令 `mintupgrade` 运行 mint 升级程序时,GUI 友好的欢迎屏幕为你提供了一个很好的起点并开始升级过程。然后,它开始自己进行一系列检查。 +当我们通过命令 `mintupgrade` 运行 Mint 升级程序时,GUI 友好的欢迎屏幕为你提供了一个很好的起点并开始升级过程。然后,它开始自己进行一系列检查。 ![开始升级过程][3] -除此之外,当它在你的系统中发现问题时,它会停止并为你提供足够的详细信息。单击“修复”后,它可以再次恢复该过程。 +除此之外,当它在你的系统中发现问题时,它会停止并为你提供足够的详细信息。单击“修复Fix”后,它可以再次恢复该过程。 -这不是全部。如果由于网络或互联网或任何其他问题而中断,它可以恢复升级过程。 +不止如此,如果由于网络或互联网或任何其他问题而中断,它可以恢复升级过程。 这个程序在我们的测试过程中在我们的测试系统中发现了以下错误,并且只需单击一下即可修复它们。 @@ -77,7 +81,7 @@ sudo apt install mintupgrade 最后,我认为它是 Linux Mint 团队最好的程序之一。正如你在上面看到的,它自己处理了许多错误。我所做的只是单击“修复”按钮。该程序足够智能,可以了解所有故障点并采取补救措施。 -[GitHub 和 mintupgrade 源码][10] +> **[GitHub 上的 mintupgrade 源码][10]** -------------------------------------------------------------------------------- @@ -102,3 +106,4 @@ via: https://www.debugpoint.com/mint-upgrade-tool/ [8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg [9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg [10]: https://github.com/linuxmint/mintupgrade +[0]: https://img.linux.net.cn/data/attachment/album/202212/22/152601upz4gujhajauj5rj.jpg \ No newline at end of file From ab4f4b9f2892fda7d9f7773d6e37249a69d4b551 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Thu, 22 Dec 2022 17:15:53 +0800 Subject: [PATCH 2409/3123] null --- ...s for measuring your open source software usage.md | 4 +- test.md | 142 ++++++++++++++++++ 2 files changed, 144 insertions(+), 2 deletions(-) create mode 100644 test.md diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md index 892fce0de0..3f35f490bd 100644 --- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -42,7 +42,7 @@ You may also be interested in downloads of the source code because downstream pr Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache. -**[ Related read [5 metrics to track in your open source community][2] ]** +**[ Related read [5 metrics to track in your open source community][2] ]** In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test. @@ -139,4 +139,4 @@ via: https://opensource.com/article/22/12/open-source-usage-metrics [a]: https://opensource.com/users/georglink [b]: https://github.com/lkxed [1]: https://opensource.com/article/18/5/metrics-project-success -[2]: https://opensource.com/article/22/11/community-metrics +[2]: https://opensource.com/article/22/11/community-metrics \ No newline at end of file diff --git a/test.md b/test.md new file mode 100644 index 0000000000..892fce0de0 --- /dev/null +++ b/test.md @@ -0,0 +1,142 @@ +[#]: subject: "8 ideas for measuring your open source software usage" +[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" +[#]: author: "Georg Link https://opensource.com/users/georglink" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +8 ideas for measuring your open source software usage +====== + +Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched. + +To make a long story short: We cannot answer these questions directly. + +Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers. + +The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings. + +### Downloads + +When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while. + +However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person. + +Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices. + +Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software? + +For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from: + +- the project website +- package managers such as npm, PyPi, and Maven +- code repositories like GitHub, GitLab, and Gitee + +You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include: + +- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee +- The number of archives (tar, zip) downloaded from the website +- The number of source code downloads through package managers like npm, PyPi, and Maven + +Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache. + +**[ Related read [5 metrics to track in your open source community][2] ]** + +In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test. + +### Issues + +As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature. + +Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ. + +With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include: + +- The number of issue authors +- The number of active issue authors (opened an issue in the last 6 months) +- The number of issue authors who also contribute code +- The number of issues opened +- The number of issue comments written + +### User mailing lists, forums, and Q&A sites + +Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including: + +- The number of user mailing list subscribers +- The number of forum users +- The number of questions asked +- The number of answers provided +- The number of messages created + +### Call-home feature + +To get accurate counts of users, one idea is to have your software report back when it is in use. + +This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use. + +Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term." + +### Stars and forks + +Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software. + +Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks. + +### Social media + +Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project. + +We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include: + +- The number of followers or subscribers +- The number of messages +- The number of active message authors +- The number of likes, shares, reactions, and other interactions + +### Web analytics and documentation + +Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include: + +- The number of website visitors +- The number of documentation visitors +- The duration visitors spend on your website or in documentation + +### Events + +Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base. + +You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM). + +Metrics you might consider: + +- The number of attendees at your project-centric event +- The number of talks submitted to your project-centric event +- The number of attendees at your project-centric talks + +### Conclusion about approximating usage of open source software + +As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines. + +Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis. + +In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results. + +We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-usage-metrics + +作者:[Georg Link][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/georglink +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/18/5/metrics-project-success +[2]: https://opensource.com/article/22/11/community-metrics From 1483af90870f3977b95d122bfcfea353e891fa0d Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Thu, 22 Dec 2022 17:16:58 +0800 Subject: [PATCH 2410/3123] translation request --- ...️⭐️ 8 ideas for measuring your open source software usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md index 3f35f490bd..7fa3882c42 100644 --- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" [#]: author: "Georg Link https://opensource.com/users/georglink" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3c685472d454870171a9a9211761054cbe87aab8 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Thu, 22 Dec 2022 13:35:53 +0800 Subject: [PATCH 2411/3123] translated --- ...️⭐️ 8 ideas for measuring your open source software usage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md index 7fa3882c42..6c4a9eec17 100644 --- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -42,7 +42,7 @@ You may also be interested in downloads of the source code because downstream pr Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache. -**[ Related read [5 metrics to track in your open source community][2] ]** +**[ Related read [5 metrics to track in your open source community][2] ]** In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test. @@ -139,4 +139,4 @@ via: https://opensource.com/article/22/12/open-source-usage-metrics [a]: https://opensource.com/users/georglink [b]: https://github.com/lkxed [1]: https://opensource.com/article/18/5/metrics-project-success -[2]: https://opensource.com/article/22/11/community-metrics \ No newline at end of file +[2]: https://opensource.com/article/22/11/community-metrics From 3e966ad571cae3f3988400f877a6f6f03f8f2033 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Thu, 22 Dec 2022 17:14:43 +0800 Subject: [PATCH 2412/3123] null --- test.md | 142 -------------------------------------------------------- 1 file changed, 142 deletions(-) delete mode 100644 test.md diff --git a/test.md b/test.md deleted file mode 100644 index 892fce0de0..0000000000 --- a/test.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "8 ideas for measuring your open source software usage" -[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" -[#]: author: "Georg Link https://opensource.com/users/georglink" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -8 ideas for measuring your open source software usage -====== - -Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched. - -To make a long story short: We cannot answer these questions directly. - -Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers. - -The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings. - -### Downloads - -When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while. - -However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person. - -Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices. - -Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software? - -For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from: - -- the project website -- package managers such as npm, PyPi, and Maven -- code repositories like GitHub, GitLab, and Gitee - -You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include: - -- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee -- The number of archives (tar, zip) downloaded from the website -- The number of source code downloads through package managers like npm, PyPi, and Maven - -Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache. - -**[ Related read [5 metrics to track in your open source community][2] ]** - -In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test. - -### Issues - -As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature. - -Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ. - -With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include: - -- The number of issue authors -- The number of active issue authors (opened an issue in the last 6 months) -- The number of issue authors who also contribute code -- The number of issues opened -- The number of issue comments written - -### User mailing lists, forums, and Q&A sites - -Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including: - -- The number of user mailing list subscribers -- The number of forum users -- The number of questions asked -- The number of answers provided -- The number of messages created - -### Call-home feature - -To get accurate counts of users, one idea is to have your software report back when it is in use. - -This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use. - -Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term." - -### Stars and forks - -Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software. - -Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks. - -### Social media - -Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project. - -We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include: - -- The number of followers or subscribers -- The number of messages -- The number of active message authors -- The number of likes, shares, reactions, and other interactions - -### Web analytics and documentation - -Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include: - -- The number of website visitors -- The number of documentation visitors -- The duration visitors spend on your website or in documentation - -### Events - -Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base. - -You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM). - -Metrics you might consider: - -- The number of attendees at your project-centric event -- The number of talks submitted to your project-centric event -- The number of attendees at your project-centric talks - -### Conclusion about approximating usage of open source software - -As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines. - -Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis. - -In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results. - -We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-usage-metrics - -作者:[Georg Link][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/georglink -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/18/5/metrics-project-success -[2]: https://opensource.com/article/22/11/community-metrics From baf3c7acfa927dde6fb6bc0a20b52a72a720af93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:46:30 +0800 Subject: [PATCH 2413/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221219.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Fedora=20Media=20Writer=20World-Class=20LIVE=20USB=20Creator=20?= =?UTF-8?q?[Tutorial].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Writer World-Class LIVE USB Creator [Tutorial].md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md diff --git a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md new file mode 100644 index 0000000000..1446699a97 --- /dev/null +++ b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md @@ -0,0 +1,136 @@ +[#]: subject: "Fedora Media Writer: World-Class LIVE USB Creator [Tutorial]" +[#]: via: "https://www.debugpoint.com/fedora-media-writer/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora Media Writer: World-Class LIVE USB Creator [Tutorial] +====== + +**A tutorial on installing and using Fedora Media Writer to create LIVE USB from Linux & Windows.** + +![Fedora Media Writer][1] + +### Fedora Media Writer + +The community and Fedora Linux team develop and maintain the [Fedora Media Writer app][2]. This application writes any ISO image to your flash drive (USB stick). In addition, Fedora Media Writer also has features to download the ISO file directly from the Fedora Mirrors, provided you have a stable internet connection. + +Moreover, it gives you a list of options for download – such as Official Editions, Emerging Editions, Spins and Fedora Labs images. + +Not only that, but you can also use this nifty utility to write any other ISO images to your flash drive. It need not be the Fedora ISO always. + +Although there are other popular utilities available for creating LIVE USBs, such as [Etcher][3], Ventoy, and Rufus – you can still give this utility a try, considering the team develops it from mainstream Fedora Linux with contributors. + +So, in summary, here are quick feature highlights of Fedora Media Writer. + +#### Features Summary of Fedora Media Writer + +- Available for Linux, Windows and macOS +- Directly download + write the images to a USB flash drive +- Official Editions (Workstation, IoT, Server) download +- Emerging Editions (Silverblue, Kinoite) download +- Spins (KDE Plasma, Xfce, etc) +- Labs (Fedora Astronomy, Robotic and other flavours) +- Available as Flatpak for Linux Distros +- Also, can write any other ISO images (non-Fedora) to a USB stick. +- Ability to format USB stick, restore flash drive +- Based on Qt + +### How to Install + +#### Linux + +Fedora Media Writer is available as Flatpak for Linux Distributions. To install it in any Linux (such as Fedora, Ubuntu, or Linux Mint) – [set up Flatpak by following this guide][4]. + +Then, click on the below link to install. This will launch the official Software application of your Linux Distro (such as Discover, GNOME Software). After installation, you can launch it via Application Menu. + +[Install Fedora Media Writer as Flatpak][5] + +#### Windows + +If you are a Windows user and planning to migrate to Linux (or Fedora), it is a perfect tool. You need to download the exe installer from GitHub (link below) and follow the onscreen instruction for installation. + +[Latest Installer for Windows (exe)][6] + +After installation, you can launch it from Start Menu. + +For macOS, you can get the dmg file in the above link. + +### How to use Fedora Media Writer to Create LIVE USB in Linux + +The first screen gives you two main options. The automatic download option is for downloading the ISO images on the fly. And the second option is to write the already downloaded ISO files from your disk directly. + +If you have already plugged in the USB, you should see it as the third option. The third option is to format and delete all the data from your USB stick and restore it to its factory settings. + +Furthermore, you can use this utility for just formatting your USB flash drive as well. You do not need any command or anything fancy. A point to note is that this option is only visible when your USB stick has data. If it’s already formatted, the tool can detect it and won’t show you the option to restore it!! 😲 + +#### Automatic Download and Write + +![Fedora Media Writer - First Screen][7] + +The automatic Download option gives you the following screen to download any Fedora ISO you want from mirrors. This is useful for many because it eliminates the hassles of separately downloading ISO files, verifying checksum, etc. + +![The automatic download options gives you these options][8] + +After choosing the distribution, the final screen gives you the option for version (Fedora 36, 35, etc.) and architecture (x86, ARM, etc.). Also, you should see the USB destination. Click on Download and Write to start the process. + +![The final Write screen of Fedora Media Writer][9] + +#### Write an existing ISO file from the disk. + +When you choose the ‘select iso file’ option, you can select the file from your system. After that, select the destination USB drive and click Write to start the process. + +![Direct ISO write via Fedora Media Writer][10] + +![Writing is in progress][11] + +![Writing Complete][12] + +After the write operation is finished, you can see a confirmation message shown above. It took standard time to write a 3GB~ ISO during my test, around 3 to 4 minutes. + +### Using Fedora Media Writer to Create LIVE USB in Windows, macOS + +The steps are the same to use this utility in Windows and macOS, as shown above for Linux. You can easily find the shortcuts after installation and launch in the same way. + +![Running in Windows 11][13] + +### Closing Notes + +I hope this guide helps you use Fedora Media Writer for your day to day USB writing work. Also, the good thing about this utility is that you can use it for formatting/restoring your USB stick. You do not require GParted or GNOME Disks anymore. + +It’s such a terrific utility for Linux, Windows and macOS users. + +Cheers. + +[Next:How to Get Xfce 4.18 in Xubuntu 22.04 and 22.10][14] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-media-writer/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/fmwhead2022.jpg +[2]: https://github.com/FedoraQt/MediaWriter +[3]: https://www.debugpoint.com/2021/01/etcher-bootable-usb-linux/ +[4]: https://flatpak.org/setup/ +[5]: https://dl.flathub.org/repo/appstream/org.fedoraproject.MediaWriter.flatpakref +[6]: https://github.com/FedoraQt/MediaWriter/releases/latest +[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-Media-Writer-First-Screen.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-automatic-download-options-gives-you-these-options.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-final-Write-screen-of-Fedora-Media-Writer.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/Direct-ISO-write-via-Fedora-Media-Writer.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-is-in-progress.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-Complete.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Running-in-Windows-11.png +[14]: https://www.debugpoint.com/xfce-4-18-xubuntu-22-04/ From 25c49ea218f38feeb2340eb4efeca84a728209b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:48:21 +0800 Subject: [PATCH 2414/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221220.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Writing=20a=20Macro=20in=20LibreOffice=20Calc=20Getting=20Start?= =?UTF-8?q?ed.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ing a Macro in LibreOffice Calc Getting Started.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md diff --git a/sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md b/sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md new file mode 100644 index 0000000000..9ae1c0d10f --- /dev/null +++ b/sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md @@ -0,0 +1,144 @@ +[#]: subject: "Writing a Macro in LibreOffice Calc: Getting Started" +[#]: via: "https://www.debugpoint.com/writing-a-macro-in-libreoffice-calc-getting-started/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Writing a Macro in LibreOffice Calc: Getting Started +====== + +**Planning to automate stuff in LibreOffice? Start writing your first LibreOffice Calc macro using this guide.** + +LibreOffice provides a way to write your macro to automate various repetitive tasks in your office application. You can use Python or basic for your macro development. This tutorial focuses on writing a macro in LibreOffice with a ‘Hello World’ macro in the Basic programming language. + +### Write your first macro in LibreOffice Calc + +### Macro Objective + +We are going to create a macro that would put the string ‘Hello World’ in the first cell of LibreOffice calc, i.e. the cell of row 1 and col A. + +### Creating the Macro + +- Open LibreOffice Calc from `Applications => Office => LibreOffice Calc`. + +![LibreOffice_1][1] + +- Go to the option from the menu: `Tools ==> Macros ==> Organize Macros ==> LibreOffice Basic`. Below ‘LibreOffice basic macros’ window will open. + +![LibreOffice_2][2] + +- Give your desired name in the macro name box and click New. You can use any name you want. For this tutorial, I have used hello_world. + +![LibreOffice_3][3] + +- Once you have clicked the New button, the macro editor will open. Here are some things to note in this window. This is the place where you should be writing your code, debugging your code, etc. You can see the macro’s name became the function name of your basic macro. + +![LibreOffice_4][4] + +- Now, it’s time to code the first macro. Let’s declare two variables of type objects. + +``` +dim document as object dim dispatcher as object +``` + +- Let’s assign two values to the above variables. + +``` +document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") +``` + +`ThisComponent` refers to the current document. + +In LibreOffice, everything you do, e.g. type, colour, insert, is “watched” by a controller. The controller then dispatches the changes to the document frame, i.e. the main window area of the Calc. So the document variable refers to the main area of Calc. + +The `createUnoService` creates an instance of the `DispatchHelper` service. This service will help us to dispatch the tasks from the macro to the frame. Almost all LibreOffice macro tasks can be executed using the dispatcher. + +- Now we will declare an array of properties. Properties are always in a name/value pair. Thus the name contains the property name, and the value contains the value of that property. + +``` +dim args1(0) as new com.sun.star.beans.PropertyValue +``` + +Our objective is to put ‘Hello World’ in the first Cell. To point to the first cell A1 and put a text, we would use two properties – `ToPoint` and `StringName`. + +Once we set the properties, it’s time to call the dispatch to send these to the document. So call the `executeDispatch` event of the dispatcher using two commands: `.uno:GoToCell`, and `.uno:EnterString`. + +``` +dim args2(0) as new com.sun.star.beans.PropertyValueargs1(0).Name = "ToPoint" args1(0).Value = "$A$1" args2(0).Name = "StringName" args2(0).Value = "Hello World!" +``` + +These commands tell the frame what needs to be executed and also pass the entire property array with values. + +![LibreOffice_5][5] + +Now put a message box to notify when the execution is completed. + +### Running the Macro + +- It’s time to run the macro. To run the macro, press `F5` or click Run Macro from the toolbar (see above). +- After execution, the message box would pop up. If you go back and check the Calc spreadsheet, you should see ‘Hello World!’ written in the first Cell. + +![LibreOffice_6][6] + +![LibreOffice_7][7] + +### Complete Code + +``` +REM ***** BASIC ***** +sub hello_world + + dim document as object + dim dispatcher as object + + document = ThisComponent.CurrentController.Frame + dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") + + dim args1(0) as new com.sun.star.beans.PropertyValue + dim args2(0) as new com.sun.star.beans.PropertyValue + + args1(0).Name = "ToPoint" + args1(0).Value = "$A$1" + dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1()) + + args2(0).Name = "StringName" + args2(0).Value = "Hello World!" + dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2()) + + msgbox "Completed!" +end sub +``` + +### Looking for Something Else? + +If you are looking for more LibreOffice macro tutorials Or wants to learn more about it, please follow the below link for a complete Macro Tutorials Index: + +[Macro tutorial index][8] + +[Next:How to Find Out Ubuntu Version: 6 Methods][9] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/writing-a-macro-in-libreoffice-calc-getting-started/ + +作者:[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/2015/02/LibreOffice_1_p.png +[2]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_2_p.png +[3]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_3_p.png +[4]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_4_p.png +[5]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_5_p.png +[6]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_6.png +[7]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_7_p.png +[8]: http://www.debugpoint.com/libreoffice-basic-macro-tutorial-index/ +[9]: https://www.debugpoint.com/find-ubuntu-version/ From 139e5ccef834543cd4879670fb23157bc7adcd08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:49:18 +0800 Subject: [PATCH 2415/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221220.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Downgra?= =?UTF-8?q?de=20Flatpak=20Packages=20in=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to Downgrade Flatpak Packages in Linux.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md diff --git a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md new file mode 100644 index 0000000000..1d664feba4 --- /dev/null +++ b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md @@ -0,0 +1,115 @@ +[#]: subject: "How to Downgrade Flatpak Packages in Linux" +[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Downgrade Flatpak Packages in Linux +====== + +Technically, minor or point release updates are released to solve issues. But things may get worse when some updates break your current workflow. + +Whether a Flatpak package or Snap, everything breaks at some point when there is an issue. Being a sandboxed packaging solution, it may not affect the entire system, but if you encounter a bug that makes your app experience worse, you may regret the update. + +For example, the previous update of [Black Box][1] was bundled with certain bugs, and I could not select text! Developers have solved this issue now, but until they did not, I downgraded that specific package to make things work. + +So, if you want to downgrade a specific app installed as a Flatpak, you can follow this guide. + +### Downgrade Flatpak packages in Linux + +**Disclaimer:** Unlike installing Flatpaks, you need **sudo** privileges to downgrade Flatpak packages. And if your user doesn’t have them, you can follow our detailed guide on [how to give sudo access to users][2]. + +**Recommended Read**: [How to Apply GTK Themes on Flatpak Applications][3] + +Here are the steps below: + +#### 1. Get the Application ID of the Package + +The first step is to find the Application ID of the package you want to downgrade. You can easily find it by listing the installed packages: + +``` +flatpak list --app +``` + +![find flatpak package id in linux][4] + +Note down the application ID of the package you want to downgrade. + +Here, I am going to downgrade the Black Box, so my application ID will be `com.raggesilver.BlackBox`. + +#### 2. List previous releases and get the commit code + +Once you get the application ID, you’d need to list the previous releases. + +You can easily do this by following the given command syntax: + +``` +flatpak remote-info --log flathub +``` + +![find previous releases in flatpak][5] + +Once you find the preferred previous release, copy the commit code as shown above. + +#### 3. Downgrade the Flatpack package + +Once you follow the first two steps, you should have the following: + +- Application ID of the package. +- Commit code of preferred older release. + +Now, you have to put them in the following command: + +``` +sudo flatpak update --commit= +``` + +As I’m downgrading Black Box to the previous release, I’ll be using the following command: + +``` +sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox +``` + +![downgrade flatpak package in linux][6] + +And that’s it! + +To check whether you have successfully downgraded the package, you can list the packages that need to be updated (considering everything else is up-to-date). It should include the name of the package that you have recently downgraded: + +``` +flatpak update +``` + +![downgrade flatpak package][7] + +And as you can see, the Black Box is outdated and needs to be updated, meaning the package has been downgraded successfully! + +### Wrapping Up + +In this quick tutorial, I explained how you downgrade Flatpak packages, and I hope you find this helpful. + +And if you have any queries or suggestions, let me know in the comments. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/downgrade-flatpak-packages/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/blackbox-terminal/ +[2]: https://itsfoss.com/add-sudo-user-ubuntu/ +[3]: https://itsfoss.com/flatpak-app-apply-theme/ +[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png +[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png From 5a779e904f42d19070b6bfa3134dab2e34d47abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:54:34 +0800 Subject: [PATCH 2416/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221220.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20I=20use=20Artipie,=20a=20PyPI=20repo.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md diff --git a/sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md b/sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md new file mode 100644 index 0000000000..e79f8ab4fa --- /dev/null +++ b/sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md @@ -0,0 +1,218 @@ +[#]: subject: "How I use Artipie, a PyPI repo" +[#]: via: "https://opensource.com/article/22/12/python-package-index-repository-artipie" +[#]: author: "Alena Gerasimova https://opensource.com/users/olena" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How I use Artipie, a PyPI repo +====== + +While developing with Python as a student, I found that I needed some private centralized storage. This was so I could store binary and text data files, as well as Python packages. I found the answer in [Artipie][1], an open source self-hosted software repository manager. + +At university, my colleagues and I conducted research and worked with a lot of data from experimental measurements. I used Python to process and visualize them. My university colleagues at the time were mathematicians and didn't have experience with software development techniques. They usually just passed data and code on a flash drive or over email. My efforts to introduce them to a versioning system like [Git][2] were unsuccessful. + +### Python repository + +Artipie supports the [PyPI][3] repository, making it compatible with both [twine][4] and [pip][5]. This means you can work with the Artipie Python repository exactly as you would when installing or publishing packages on the [PyPI][3] and [TestPyPI][6] repositories. + +To create your own Python repository, you can use the hosted instance of Artipie called [Artipie Central][7]. Once you sign in, you see a page with your repositories listed (which is empty to begin with) and a form to add a new repository. Choose a name for your new repository (for example, `mypython`), select "Python" as the repository type, and then click the **Add** button. + +Next, you see a page with repository settings in the [YAML][8] format: + +``` +--- +​repo: + type: pypi + storage: default + permissions: + olenagerasimova: + - upload + "*": + - download +``` + +The `type` mapping in the configuration sets the repository type. In this example, the Python repository is configured with the default Artipie Central storage. + +The `storage` mapping defines where all of the repository packages are stored. This can be any file system or S3 storage compatible location. Artipie Central has a preconfigured `default` storage that can be used for tests by anyone. + +The `permissions` mapping allows uploads for the user `olenagerasimova`, and allows anyone to download any package. + +To make sure this repository exists and works, open the [index page][9] in your browser. The packages list is displayed. If you've just created a new repository but have yet to upload a package, then the repository index page is blank. + +### Binary repository + +You can store any kind of file in Artipie. The storage type is called file or binary, and I use this as storage for experimental data. I use this as input for Python visualizations. A file repository can be created in Artipie Central the same way as a Python repository. You give it a name, choose the type **binary**, and then click the **Add** button. + +``` +--- +​repo: +  type: file +  storage: default +  permissions: +    olenagerasimova: +      - upload +      - download +    "*": +      - download +``` + +The settings are basically the same as for Python. Only the repository type differs. The binary repository, in this example, is called `data`. It contains three text files with some numbers: + +``` +​6 +3.5 +5 +4 +4.5 +3 +2.7 +5 +6 +3 +1.2 +3.2 +6 +``` + +The other two files take the same form (only the numbers are different.) To see the files yourself, open the links [one][10], [two][11], and [three][12] in your browser and download the files, or you can perform a GET request using `httpie`: + +``` +​httpie -a https://central.artipie.com/olenagerasimova/data/y1.dat > ./data/y1.da +``` + +These files were uploaded to the Artipie Central `data` repository with PUT requests: + +``` +​httpie -a olenagerasimova:*** PUT +https://central.artipie.com/olenagerasimova/data/y1.dat @data/y1.dat + +httpie -a olenagerasimova:*** PUT +https://central.artipie.com/olenagerasimova/data/y2.dat @data/y2.dat + +httpie -a olenagerasimova:*** PUT +https://central.artipie.com/olenagerasimova/data/y3.dat @data/y3.dat +``` + +As this binary repository API is very simple (HTTP `PUT` and `GET`requests), it's easy to write a piece of code in any language to upload and download the required files. + +### Python project + +The source code of an example Python project is available from my [GitHub repository][13]. The main idea of the example is to download three data files from Artipie Central, read the numbers into arrays, and use these arrays to draw a plot. Use pip to install the example package and run it: + +``` +​$ python3 -m pip install --index-url \ +https://central.artipie.com/olenagerasimova/pypi/ \ +pypiexample +$ python3 -m pypiexample +``` + +By setting the `--index-url` to the Artipie Central Python repository, pip downloads the packages from it rather than the PyPi repository that serves as the usual default. After running the commands, a polar plot with three curves, a visualization of the data files is displayed. + +To publish the package to the Artipie Central repository, build it with and use twine to upload it: + +``` +commandline +$ python setup.py sdist bdist_wheel + +$ twine upload --repository-url \ +https://central.artipie.com/olenagerasimova/pypi +-u olenagerasimova -p *** dist/* +``` + +That's how easy it is to set up a `files` repositories in Artipie Central, create a sample Python project, publish, and install it. You don't have to use Artipie Central, though. Artipie can be self-hosted, so you can run a repository on your own local network. + +### Run Artipie as a container + +Running Artipie as a container makes setup as easy as installing either Podman or Docker. Assuming you have one of these installed, open a terminal: + +``` +​$ podman run -it -p 8080:8080 -p 8086:8086 artipie/artipie:latest +​ +``` + +This starts a new container running the latest Artipie version. It also maps two ports. Your repositories are served on port 8080. The Artipie Rest API and Swagger documentation are provided on port 8086. A new image generates a default configuration, printing a list of running repositories, test credentials, and a link to the [Swagger][14] documentation to your console. + +You can also use the Artipie Rest API to see existing repositories: + +- Go to the Swagger documentation page at `http://localhost:8086/api/index-org.html`**.** +- In the **Select a definition** list, choose **Auth token** +- Generate and copy the authentication token for the user artipie with the password artipie +- Switch to the **Repositories** definition and click the **Authorize** button, and then paste in the token + +![Image of the Swagger documentation page,][15] + +Perform a GET request for `/api/v1/repository/list`. In response, you receive a JSON list with three default repositories: + +``` +​[ + "artipie/my-bin", + "artipie/my-docker", + "artipie/my-maven" +] +``` + +The Python repository isn't included in the default configuration. You can correct that by performing a PUT request to `/api/v1/repository/{user}/{repo}` from the  Swagger interface. In this case, `user` is the name of the default user (`artipie`) and `repo` is the name of the new repository. You can call your new Python repository `my-pypi`. Here's an example request body, containing a JSON object with the repository settings: + +``` +​{ + "repo": { + "type": "pypi", + "storage": "default", + "permissions": { + "*": [ + "download" + ], + "artipie": [ + "upload" + ] + } + } +} +``` + +All the JSON fields are the same as when you create a repository in the dashboard in YAML format. The type of our repository is `pypi`, the default storage is used, and anyone can download but only the user `artipie` can upload. + +Make a GET request to `/api/v1/repository/list` again to make sure your repository was created. Now, you have four repositories: + +``` +​[ + "artipie/my-bin", + "artipie/my-docker", + "artipie/my-maven", + "artipie/my-pypi" +] +``` + +You've created your own Artipie installation, containing several repositories! The Artipie image can run both on a personal computer or on a remote server inside a private network. You can use it to exchange packages within a company, group, or university. It's an easy way to set up your own software services, and it's not just for Python. Take some time to explore Artipie and see what it can make possible for you. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/python-package-index-repository-artipie + +作者:[Alena Gerasimova][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/olena +[b]: https://github.com/lkxed +[1]: https://github.com/artipie +[2]: https://opensource.com/tags/git +[3]: https://pypi.org/ +[4]: https://github.com/pypa/twine +[5]: https://pip.pypa.io/en/stable/ +[6]: https://test.pypi.org/ +[7]: https://central.artipie.com/signin +[8]: https://www.redhat.com/sysadmin/yaml-beginners +[9]: https://central.artipie.com/olenagerasimova/pypi +[10]: https://central.artipie.com/olenagerasimova/data/y1.dat +[11]: https://central.artipie.com/olenagerasimova/data/y2.dat +[12]: https://central.artipie.com/olenagerasimova/data/y3.dat +[13]: https://github.com/artipie/pypi-example +[14]: https://swagger.io/ +[15]: https://opensource.com/sites/default/files/2022-11/artipie-swagger.png From 455f737d8bd2c1191e524337d4934906603e3e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:55:07 +0800 Subject: [PATCH 2417/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221220.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Explore=20the=20features=20of=20the=20Linux=20Double=20Commande?= =?UTF-8?q?r=20file=20manager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ures of the Linux Double Commander file manager.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md diff --git a/sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md b/sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md new file mode 100644 index 0000000000..94d236bf17 --- /dev/null +++ b/sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md @@ -0,0 +1,99 @@ +[#]: subject: "Explore the features of the Linux Double Commander file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-double-commander" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Explore the features of the Linux Double Commander file manager +====== + +Double Commander is a graphical dual-pane file manager for Linux, in the tradition of [Midnight Commander][1] (`mc`). While Midnight Commander (like the DOS application **Norton Commander** before it) has its fans, its audience is limited by the fact that it only runs in a terminal window. Not everyone wants to use a "flat" interface embedded in a terminal to browse their file system, and so Double Commander provides a similar interface in a way that feels familiar to many desktop users. + +![Image of Double Commander's 2 panel view.][2] + +### Install Double Commander + +To install Double Commander, visit its [website][3] and download [a package][4]. It's not packaged for a specific Linux distribution, so just download an archive for your CPU architecture. + +If you only want to try it out, you can unarchive it and then launch it from your Downloads folder. + +To install it permanently, unarchive the package, move it into a location [in your path][5], and then symlink `doublecmd` to the executable in the source directory: + +``` +$ tar xvf doublecmd*tar.xz +$ mv doublecmd ~/.local/bin/doublecmd-X.Y.Z +$ ln -s ~/.local/bin/doublecmd-X.Y.Z/doublecmd ~~/.local/bin/doublecmd +``` + +### How to start Double Commander + +To start Double Commander, use the command `doublecmd`. + +Alternatively, you can add an entry for Double Commander in your application menu. First, create the file `~/.local/share/applications/doublecmd.desktop` and enter this text into it: + +``` +[Desktop Entry]Encoding=UTF-8Name=doublecmdGenericName=Double CommanderComment=doublecmdExec=../bin/doublecmdIcon=/usr/share/icons//Adwaita/scalable/apps/system-file-manager-symbolic.svgTerminal=falseType=ApplicationCategories=System;FileTools;Utility;Core;GTK;FileManager; +``` + +Now Double Commander appears in your desktop application menu. Note that this does not make Double Commander your default file manager. It only adds it as an application you can launch when you want to. + +### Two panels + +Dual-panel file management is a tradition within a subset of file managers, and to some users it's a little unsettling. If you think about it, though, most file management tasks involve a _source_ location and a _destination_ location. You might be used to a workflow that goes something like this: + +- Open a file manager and find a file you want to move. +- Open another file manager window and navigate to the folder you want to move the file into. +- Drag and drop the file from one window to the other. + +You might use a variation of this involving, for instance, a right-click to copy combined with some navigation and another right-click to paste. Either way, the ingredients are the same. You locate the source, you locate the destination, and then you make the transfer. + +Given that common factor, it makes sense that a file manager like Double Command has a persistent view of the source location and the destination location. At the very least, it saves you from having to open another window. + +### Double Commander interface + +Once you get used to the idea of two concurrent views in your file system, there are a lot more features to discover in Double Commander. + +- **Menu bar**: At the top of the window is a menu bar. That's pretty standard conceptually, but the menu entries are probably unlike any menu bar you've seen before: **File**, **Mark**, **Commands**, **Network**, **Tabs**, and more. These are task-specific menus, which is great because you can ignore an entire submenu you don't use. +- **Toolbar**: Under the menu bar, there are buttons for common tasks such as opening a terminal, copying a file, synchronizing two directories, and more. +- **Locations**: The location bar is situated just under the toolbar. It lists devices and file system locations, including your boot partition, optical media drive, virtual shared locations, the root directory, your home directory (listed as `~`), and more. +- **File list**: Most of the Double Commander window is occupied by the dual panel view of your file system. +- **Command**: My favorite feature of Double Commander is the single command field below the file list pane. This allows you to enter an arbitrary command to run within the active pane. This is great for the odd command you need to run in a directory that _no_ file manager expects you to run, and so no file manager has a function for. It's the brute force method of the plugin model: Provide a command line and let users run what they need to run whenever they need to run it. +- **Functions**: Along the very bottom of the Double Commander window, as with Midnight Commander, there's a list of common functions, each assigned to a Function key on your keyboard. + +### Using Double Commander + +Using Double Commander is a lot like using any file manager, except that Double Commander is focused on groups of actions. For instance, the **File** menu isn't an obligatory entry with just **New Window** and **New Tab**, it's full of useful functions, like creating a symlink or hard link, changing attributes, comparing contents, bulk renaming, splitting and combining files, and more. Double Commander is direct. It gets straight to the point, serving as a stand-in for all the commands you'd normally run in a terminal. + +### Graphical command interface + +More than any other file manager I've seen, Double Commander feels like it's meant to be a graphical interface for commands. You can map almost everything in its interface to a command or series of commands you're used to running in a terminal. + +Of course, the question then is whether you need a graphical command line. Why not just run the commands in a terminal? Interestingly, I had the opportunity to witness the value of this recently. There are times, as a support person for other computer users, when trying to get a user to navigate the terminal can be overwhelming. This is particularly true when your user is texting on an app on their mobile phone, and you're giving them commands to type into a terminal on their desktop. This introduces several opportunities for mistakes, and what was meant to be "the fast way" of doing something ends up taking an hour. + +It's counter-intuitive to a terminal user, and it's not even always true, but there are times when a graphical interface really is easier to give instructions for. Picture it: A zombie apocalypse rages outside your compound, and the file permissions of a vital file need to be changed in order to activate the firewall. "Open a terminal and type chmod a+x /usr/local/bin/foo…​no, that's `ch` as in _change_, `mod` as in _mode_ but without the _e_…​no, and then a space. Not between the `ch` and the `mod`, just after the `mod`. And then a space. It's `chmod` and _then_ a space. Not the word _space_, just press the spacebar. It's the really long key under your thumb…​" + +Or you could just say this: "Click on the file, now with that selected, go to the File menu up at the top and click on Change Attributes…​" + +Double Command's central feature is in its powerful features disguised as a non-threatening graphical file manager. Download and try it out for yourself. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-double-commander + +作者:[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/article/22/12/linux-file-manager-midnight-commander +[2]: https://opensource.com/sites/default/files/2022-10/doublecmd-2panelview.png +[3]: https://doublecmd.sourceforge.io/ +[4]: https://github.com/doublecmd/doublecmd/releases +[5]: https://opensource.com/article/17/6/set-path-linux From 36b7b3c3e33edb68aaeff01cf03d2babfd917ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:55:33 +0800 Subject: [PATCH 2418/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221220.4=20=E2=AD=90=EF=B8=8F=20EndeavourOS=20'Cas?= =?UTF-8?q?sini'=20Releases=20With=20New=20Features=20and=20Linux=20Kernel?= =?UTF-8?q?=206.0.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ases With New Features and Linux Kernel 6.0.md | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md diff --git a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md new file mode 100644 index 0000000000..c42c37b80c --- /dev/null +++ b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md @@ -0,0 +1,133 @@ +[#]: subject: "EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0" +[#]: via: "https://news.itsfoss.com/endeavouros-cassini/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0 +====== + +EndeavourOS's latest update has arrived! + +![EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0][1] + +EndeavourOS is a popular Arch-based Linux distribution that aims to make the Arch experience easy. + +Code-named 'Cassini', it signifies a new phase in EndeavourOS's development that aims to make the OS better than its previous iterations. + +Similar to a [previous release][2], this release is also named after one of NASA's [projects][3]. + +Let's see what makes this release so unique. + +Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][4]Unlocator![][5] + +### 🆕 EndeavourOS 'Cassini': What's New? + +![endeavouros cassini][6] + +The 'Cassini' release packs plenty of improvements, some of the noteworthy highlights include: + +- **Improved ARM Support** +- **Linux Kernel 6.0** +- **Various User Interface Updates** +- **Updated Software Packages** + +#### Improved ARM Support + +![endeavouros cassini arm][7] + +EndeavourOS now features support for the [Pinebook Pro][8]. + +This was made possible by including the new 'linux-eos-arm' kernel that comes with the 'amdgpu' driver for supporting generic ARM devices. + +The developers also added that: + +> We’ve leveraged existing work and PKGBUIDs of both Manjaro ARM and archlinuxarm-pbp projects to create our Pinebook Pro images and would like to thank them for their continuing work in supporting PineBook Pro for Arch Linux ARM platform. + +Furthermore, EndeavourOS also has enhanced support for ARM devices like the [Phytiuim D2000][9], [Raspberry Pi][10], and [Odroid N2+][11]. + +#### 🎨 Various User Interface Updates + +![endeavouros cassini budgie][12] + +With this release, EndeavourOS has received quite a few user interface tweaks; some of the highlights include: + +- The 'Discover' icon was replaced with a 'Konsole' icon on KDE Plasma. +- [Qogir theme][13] is being used for icons in Cinnamon and Budgie. +- In the case of GNOME, the wallpaper follows night and day theme like the Console. +- The default wallpaper is now set by the 'settings' package instead of 'welcome'. +- A load of cleanup work for Calamares. + +#### Linux Kernel 6.0 + +EndeavourOS 'Cassini' features Linux Kernel 6.0.12.arch1-1, which enables it to have enhanced support for [OpenRISC][14] and [LoongArch][15] architectures. + +Alongside that, there is a noticeable uplift in performance for AMD EPYC, Ryzen Threadripper, and Intel Xeon Ice Lake chips. + +You can go through our coverage for more details: + +#### Updated Software Packages + +This release also features a lot of updated software, including: + +- Calamares 3.3.0-alpha3 +- Firefox 108.0.1-1 +- Mesa 22.3.1-1 +- Xorg-Server 21.1.5-1 +- nvidia-dkms 525.60.11-1 +- Grub 2:2.06.r403.g7259d55ff-1 + +#### 🛠️ Other Changes + +There were also a few other changes that I want to mention, such as: + +- [dracut][16] has replaced [mkinitcpio][17] to handle the installation process. +- You can now choose not to install a bootloader. +- You have two bootloader options to pick from, [systemd-boot][18] and [Grub][19]. +- The Grub submenu is now enabled by default. +- gedit and GNOME terminal have been replaced by [gnome-text-editor][20] and [GNOME Console][21]. + +### 📥 Download EndeavourOS Cassini + +You can find the latest release on the [official website][22] from one of the available mirrors. + +_💬 What do you think of this release? Was it worth the wait?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/endeavouros-cassini/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/endeavour-os-cassini-release.png +[2]: https://news.itsfoss.com/endeavouros-artemis-release/ +[3]: https://solarsystem.nasa.gov/missions/cassini/overview/ +[4]: https://unlocator.com/favicon.ico +[5]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg +[6]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini.jpg +[7]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_ARM.png +[8]: https://itsfoss.com/pinebook-pro/ +[9]: https://phytium.com.cn/en/article/721 +[10]: https://www.raspberrypi.org +[11]: https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/ +[12]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_2-1.jpg +[13]: https://github.com/vinceliuice/Qogir-theme +[14]: https://openrisc.io +[15]: https://en.wikipedia.org/wiki/Loongson +[16]: https://dracut.wiki.kernel.org/index.php/Main_Page +[17]: https://wiki.archlinux.org/title/mkinitcpio +[18]: https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/ +[19]: https://www.gnu.org/software/grub/ +[20]: https://itsfoss.com/gnome-text-editor/ +[21]: https://gitlab.gnome.org/GNOME/console +[22]: https://endeavouros.com/latest-release/ From e5c153029d8677ccf8bc8ae089746b4327c26479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:56:37 +0800 Subject: [PATCH 2419/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221220.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Linux=20Mint=2021.1=20Arrives=20with=20a=20Ton=20of=20Visual=20?= =?UTF-8?q?Changes=20and=20Improvements.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s with a Ton of Visual Changes and Improvements.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md diff --git a/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md new file mode 100644 index 0000000000..965f20f5cb --- /dev/null +++ b/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md @@ -0,0 +1,152 @@ +[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements" +[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements +====== + +Linux Mint 21.1 comes with a new default theme and several other refinements. + +![Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements][1] + +Linux Mint 21 has received its first update as **Linux Mint 21.1 "Vera."** If you want to learn about Linux Mint 21 "Venessa," our official review should get you up to speed: + +This release is similar to the usual point releases. However, it includes various changes to the look, feel, and features that could look subtle but will affect the user experience. + +Let's take a look at the major highlights. We focus on Linux Mint's Cinnamon edition. + +### Linux Mint 21.1 Vera: What's New? + +The release will continue to use the **Linux 5.15 LTS** kernel under the hood, based on **Ubuntu 22.04 LTS**. + +![][2] + +#### 👀 A Refreshed User Interface + +When you first boot into the desktop, you should quickly notice the new look of the cursor. It features the new Bibata theme by default. + +![linux mint's new cursor icon][3] + +The cursor icon theme inventory has new options like Yaru, Breeze, and GoogleDot along with the traditional DMZ theme. + +![][4] + +Users will also find a unique set of app icon themes to choose from in addition to the traditional Mint-X, Mint-Y, and Mint-Legacy themes. This includes Papirus, Breeze, Numix, and Yaru. + +![linux mint aqua theme][5] + +Another interesting thing you may notice is the default accent color isn't the traditional green anymore, and that's because the **desktop theme is now switched to Aqua**. The accent color library offers more vibrant colors and gives the desktop a clean and attractive look. + +For those who want the legacy look back, there exists a "**Mint-Y-Legacy**" option in the theme options. + +Moreover, the **Computer, Home, Networks, and Trash icons** previously visible on the desktop are removed by default and can be accessed in the file manager. The Home folder icon is displayed on the panel instead. If you want to return the old arrangement, you can do so by heading to the **system****preferences**. + +#### ✨ Enhanced Drive Manager + +The Drive Manager no longer requests a password when you launch it since it runs in user mode. + +![linux mint driver manager offline][6] + +There are dedicated screens for offline connectivity and when a live USB is detected. You should also find the mounting of the live USB smoother than before. + +![usb screen drive manager linux mint][7] + +There have been a couple of fixes to it as well. + +Packagekit now purges removed drivers and packages. This solves a commonly known issue where users want to switch between different versions of the NVIDIA driver. + +Additionally, Debconf has been patched to address an issue for NVIDIA drivers when Secure Boot was enabled. + +#### 👨‍💻 Flatpak Integration and Software Manager Improvements + +It is nice to see that both the **Software Manager** and **Update Manager** have received support for Flatpaks. + +The procedure for installing and updating Flatpak applications is not very different and should be a breeze. + +![][8] + +For instance, the Software Manager has been updated to help differentiate which version of an app, Flatpak, or system the user is looking at. There's also a drop-down box for switching between the system and Flatpak versions of an app. + +Uninstalling Flatpak applications and shortcuts doesn't require a password anymore. The same applies when multiple operations are being performed. + +#### 🔨 Improvements for XApps + +Users can now configure the login screen's cursor size and theme. Previously, these settings were set globally. + +On the other hand, Warpinator gets better security while the WebApp Manager features additional settings when editing Web Apps, including private browsing and a navigation bar. + +#### ⭐ New ISO Verification Tool + +In most cases, one wants to verify the integrity of a downloaded ISO image. + +Thus to make things easier, you can do this by right-clicking on the ISO image and selecting "**Verify**." This opens up the ISO Verification tool, where you can fill in the necessary details for the verification process. + +![][9] + +A cool thing to note is that the URLs to the SHA256sum and GPG files are filled in automatically for Linux Mint and Ubuntu ISO images. + +#### 🎨 Cinnamon 5.6 Desktop + +Linux Mint's flagship desktop environment has received minor visual updates and changes. + +On the desktop's panel, you will notice a thin separator between the home menu and the applications. Like Windows, a new corner bar applet has been added to the right-most corner, configurable, and supports innovative actions. + +![][10] + +Coming to the visuals, Nemo - the default file manager - has undergone a few changes. + +- When selecting one or more items, only the name remains highlighted, while the icon doesn't. +- The dates are now displayed in monospace fonts. +- The path bar has also received some improvements. + +You can effortlessly access the Display Settings as its shortcut has been added to the desktop's context menu. + +### 🛠️ Other Improvements + +The other two desktop environments have been updated to **MATE 1.26 and XFCE 4.16**, respectively. + +The artwork collection has also been expanded to include several cool wallpapers. + +While we've only covered key highlights of this release, you can go through the [official changelog][11] for more details. + +### Getting Linux Mint 21.1 + +Existing Mint users should be notified and can easily upgrade to Mint 21.1 through the update manager. + +Those looking for a fresh installation of Linux Mint can get the ISO from the [official download page][12]. + +[Linux Mint 21.1][12] + +You can also [get torrent links][13] if you have slow or inconsistent internet. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-mint-21-1-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-mint-21-1-release.png +[2]: https://news.itsfoss.com/content/images/2022/12/Home.png +[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png +[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png +[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png +[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png +[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png +[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png +[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png +[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png +[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php +[12]: https://www.linuxmint.com/download.php +[13]: https://linuxmint.com/torrents/ From 654497b12c57049237e9425fe76a60e9eba9acbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:57:12 +0800 Subject: [PATCH 2420/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221221.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?EndeavourOS=20Your=20Search=20for=20Perfect=20Arch=20Distro=20E?= =?UTF-8?q?nds=20Here.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...S Your Search for Perfect Arch Distro Ends Here.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md diff --git a/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md new file mode 100644 index 0000000000..dddfcdca15 --- /dev/null +++ b/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md @@ -0,0 +1,134 @@ +[#]: subject: "EndeavourOS: Your Search for Perfect Arch Distro Ends Here" +[#]: via: "https://www.debugpoint.com/endeavouros-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +EndeavourOS: Your Search for Perfect Arch Distro Ends Here +====== + +**We review the recent release of EndeavourOS “Cassini” and the distro overall.** + +Hundreds of Linux distributions pop up every year by individuals and small teams. They are mostly the direct derivatives of Debian, Ubuntu, Fedora or Arch Linux – with a few customizations. And no wonder majority of them die every year due to a lack of contributions, vision and persistence. + +Three years back, a small team of contributors started EndeavourOS to continue the discontinued Antergos project. And since then, it has become popular because of its simplicity of installation, user experience and features. + +![EndeavourOS with Xfce desktop][1] + +### EndeavourOS Review + +A lot went into developing the distribution, which is quite evident if you have ever tried it out. The motto of this distro is to be a “general purpose” Arch Linux distribution for the masses, discarding the Arch Linux installation fear for new users and the superiority of using Arch. + +If you ever tried EndeavourOS, you must have “felt” how “easy” things are to perform on a desktop for the end user, being an Arch distro. + +#### Installation and desktop options to choose from + +The installation is made super easy with the “one and only” Calamares installer. On top of that EndeavourOS team gave extra caution to provide you with most of the options during the installation steps. For example, the LIVE medium boots up directly without user intervention. And it launches the welcome screen. The welcome screen greets you with all the necessary options to install it in your system. + +![EndeavourOS Welcome Screen][2] + +By default, the ISO provides a lightweight Xfce desktop. However, EndeavourOS also provides you with all the desktop environments and window managers (the major ones – see below). And they are all tested to work fine. If you are connected to the internet during installation – you can install these via the Calamares installer. That means you do not need to reinstall them after the base Xfce setup. + +Furthermore, if you are a power user and want just a basic Arch Linux to install without any desktop – then that’s also possible. Just use the “No desktop” option during installation! + +Although Arch Linux recently created an automated script archinstall to make the installation easier, still faster and easier to get a base Arch Install via the EndeavourOS ISO. + +![EndeavourOS installer showing no desktop and other options][3] + +Furthermore, you have the option to choose between three options: GRUB, systemd-boot or “no bootloader” – this is one of the highlight features of the EndeavourOS “Cassini” release. In addition, you can also choose the packages you want to install (online mode only). For example, you might need a basic system to start with. Or, you might want to install some apps related to video/audio or development work. All of these you can select in this version. + +The installation is smooth and finished by detecting the other operating systems in my test machine. In this “Cassini” release, the team also swapped the mkinitcpio with [dracut][4] for better performance and less failure on boot-related issues. + +#### Flagship “Xfce” flavoured desktop experience + +After the first login, you are again greeted with the Welcome app with a list of items which you can do “after install”. A very thoughtful addition from the devs. This includes initial tasks of changing wallpaper, updating Arch mirrors, installing NVIDIA drivers, and more. Many Linux distributions bring a Welcome app, but this app is a complete package, IMO. + +![After install items in Welcome app][5] + +The default look is the best-customized Xfce desktop you can get. It has been customized to be presented as a well-looking distro, far from what default Xfce actually brings in. This includes the GRUB menu, login screen and desktop. + +The main Xfce menu is configured with more items, and the terminal is a little transparent and uses the Qogir icon theme. All of these changes are complemented with stunning wallpapers and Arc-Darker default Xfce theme. + +![EndeavourOS Cassini Desktop with Xfce 4.18][6] + +#### Performance + +The performance of Arch Linux is always better, despite the desktop environment. It always feels faster because it doesn’t bring bloated within. On top of that, the [Xfce desktop 4.18][7] brings in additional performance optimization in the “Cassini” release, which you can feel while browsing through the desktop. + +At idle, it uses around 700MB of memory and CPU at an average of 4%. This is the baseline. The resource usage may increase based on the number of apps you open. In my earlier reviews of EndeavourOS, the performance is always similar. + +Not only that, it uses only 4GB of disk space for the default Xfce installation. However, you may need to install additional heavy software such as LibreOffice, GIMP, or KDenlive, which would take more disk space. + +![EndeavourOS performance Cassini][8] + +#### How easy is it to perform day-to-day tasks in EndeavourOS + +One of the great features of EndeavourOS is some of the python-based GUI tools which make your life easy in Arch Linux. For example, you get notifications for updates from Arch and EndeavourOS repo, one-click software installation from AUR, and update mirrors and your system with one single click. You do not need to run any commands from the terminal. This is a big help for new users of Arch Linux. + +![One click installation of software][9] + +![Package cleaner and update manager][10] + +#### A unique way of handling the rolling release towards stability + +Arch Linux being a rolling release distro, tend to break things. For example, some systems may break during the monthly Kernel refresh of the Arch main repo. Due to its popularity and the developers’ proactiveness, you get notifications and a workaround related to the problem if things break. + +The recent GRUB issue in Arch Linux, which caused massive boot problems for users, is really [handled well][11] by the EndeavourOS team through proper communication to the users with a workaround. + +Hence, you are not really lost if you end up with an unstable system. + +In addition, the pacman configuration is customized with EndeavourOS-selected mirrors to ensure your experience is flawless. + +#### Official support for open-source hardware and ARM + +In this EndeavourOS “Cassini” release, the official support for Pinebook Pro laptops arrives. The team worked on top of Manjaro packages with the Pine64 team to provide exclusive Arch packages for you so that the laptop works out of the box. In addition, EndeavourOS ARM images are also available to download for Raspberry Pi 4. + +#### Community help + +One of the greatest benefits of EndeavourOS is community help – which is instant! This is mostly for its dedicated [Telegram channel][12], where you get responses to your any EndeavourOS problems within minutes. I have been to the channel, and the mods/contributors are friendly and helpful. + +Furthermore, you can also get help from the official forum and other social channels. + +### Wrapping Up + +While closing this EndeavourOS review of the [“Cassini” release,][13] I would say it’s one of the best-built distros and well-organized. The developers and the team have a clear roadmap to build a general-purpose Arch Linux distro. Also, the vision is clear with the ARM and Pinebook Pro supports and other initiatives. + +To summarise, a perfect distro for everyone who wants a longer-running, stable system in Arch Linux. + +You can download EndeavourOS from the [official website][14]. + +Cheers. + +[Next:Linux Mint Upgrade Tool: Usage Guide][15] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/endeavouros-review/ + +作者:[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/12/Xubuntu-22.04-with-Xfce-4.18-Desktop-2.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-Welcome-Screen.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-installer-showing-22no-desktop22-and-other-options.jpg +[4]: https://wiki.archlinux.org/title/Dracut +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-install-items-in-Welcome-app.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-22Cassini22-Desktop-with-Xfce-4.18.jpg +[7]: https://www.debugpoint.com/xfce-4-18-features/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-performance-22Cassini22.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/One-click-installation-of-software.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/Package-cleaner-and-update-manager.jpg +[11]: https://endeavouros.com/news/full-transparency-on-the-grub-issue/ +[12]: https://endeavouros.com/community/ +[13]: https://endeavouros.com/news/cassini-packed-with-new-features-is-here/ +[14]: https://endeavouros.com/download/ +[15]: https://www.debugpoint.com/mint-upgrade-tool/ From a7687fef3cd680f378d0f51c47c17349e7270fed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:58:06 +0800 Subject: [PATCH 2421/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221220.6=20=E2=AD=90=EF=B8=8F=20How=20to=20Update?= =?UTF-8?q?=20Pi-hole=20Easily.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21220.6 ⭐️ How to Update Pi-hole Easily.md | 177 ++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md diff --git a/sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md b/sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md new file mode 100644 index 0000000000..a667eec761 --- /dev/null +++ b/sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md @@ -0,0 +1,177 @@ +[#]: subject: "How to Update Pi-hole Easily" +[#]: via: "https://itsfoss.com/update-pi-hole/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Update Pi-hole Easily +====== + +Pi-hole is one of the most effective ad-blockers available for you to use. You can install it on your router or a dedicated system and get an ad-free experience for all the devices connected through it. + +In an earlier article, I discussed the [steps for installing Pi-hole][1]. But you must update it regularly to win the cat-and-mouse game between ad blockers and ad providers (Google, Facebook, etc). Another aspect is to patch a security vulnerability that might affect you negatively. + +The update method depends on the installation method. To recall, I discussed two methods: + +- **Method 1**: The existing Pi-hole installation was conducted using a script. The script was `curl -sSL https://install.pi-hole.net | bash` (or something similar). +- **Method 2**: You installed Pi-hole using either Podman or Docker as a container. + +I will cover how to update Pi-hole with both of these methods. + +### Method 1: Updating Pi-hole that was installed by a script + +You will not believe how easy this is. All you have to do is run the following command in your terminal! + +``` +pihole -up +``` + +Of course, you have to run this command on the device where you have installed Pi-hole. In other words, you may have to [SSH into your Raspberry Pi][2] or router to run the above-mentioned command. + +Doing so will update Pi-hole. Below is the output of running the `pihole -up` command on my computer: + +``` +$ pihole -up + [✓] Update local cache of available packages + [i] Existing PHP installation detected : PHP version 8.1.2-1ubuntu2.8 + [✓] Checking for git + [✓] Checking for iproute2 + [✓] Checking for dialog + [✓] Checking for ca-certificates + + [i] Checking for updates... + [i] Pi-hole Core: up to date + [i] Web Interface: up to date + [i] FTL: up to date + + [✓] Everything is up to date! +``` + +💡Though I haven’t encountered this myself, it is still a possibility that Pi-hole might require updates for _other_ packages (like PHP) be installed. So try and run the update command that is applicable for your package manager on a regular basis. Keeping other packages up-to-date is _just as important_ ;) + +#### Optional: Automate Pi-hole update with cron job + +This says that everything is up to date. But how can a normal person remember to keep everything up to date? Fret not! We can create a cron job to automatically update Pi-hole every day. + +But before we edit the cron job, let us find the absolute path of the `pihole` command. This can be done either using the `which` command or the `command` command. You only need to run either one of the two commands listed below: + +``` +command -v pihole +which pihole +``` + +Executing either of the commands listed above will give you the absolute path to the `pihole` command. In my case, the absolute path for the `pihole` command is `/usr/local/bin/pihole`. + +Next, we will edit the [cron job][3]. To edit cron jobs, type the following command in your terminal (please do **NOT** use `sudo`): + +``` +crontab -e +``` + +Doing so will open a file in either the `nano` editor or the `vim` editor. Next, _append_ the following lines to the currently opened file: + +``` +0 1 * * * /usr/local/bin/pihole -up +``` + +All you need to do now is to save and exit the editor. + +What we just did was that we made updating Pi-hole an automatic task. This will automatically run the `pihole up` command at 01:00 hours, every day. + +### Method 2: Update Pi-hole that was installed via Podman or Docker + +If you installed Pi-hole using either Podman or Docker, all you can do initially is to pull the image. + +⚠️ If you used a `docker-compose.yml` file to create your container, please have it handy because we need to delete the current container and create a new one. (No data or configuration will be changed if volumes are backed up properly or if bind mounts were used.) + +#### Step 1: Check if a newer image is available + +To check for updates, you can run either of the following commands based on what you use: + +``` +# command for Podman users +podman pull docker.io/pihole/pihole:latest + +# command for Docker users +docker pull docker.io/pihole/pihole:latest +``` + +If there is a newer version of the image, it will be fetched. If a newer version is not available, nothing extra will happen and you should try again later. + +#### Step 2: Stop and remove the container + +If a new image was downloaded, we can proceed further. Our next step should be to restart the container. To know which container to restart, we can check the output of the `docker ps` or `podman ps` command. + +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +73528d5ca4e8 docker.io/pihole/pihole:latest 14 hours ago Up 14 hours ago 53/tcp pihole-aditi +``` + +This shows that I have a container named `pihole-aditi`. Let’s stop and remove this container. This can be done with the following commands: + +``` +# command for Podman users +podman stop pihole-aditi +docker rm pihole-aditi + +# command for Docker users +docker stop pihole-aditi +docker rm pihole-aditi +``` + +#### Step 4: Create a new container + +I hope you took my warning seriously and have your `docker-compose.yml` file handy ;) + +Let’s re-create a new container. You can re-create your container using the following command: + +``` +docker-compose up -d +``` + +Please verify that the Pi-hole container is up and running using either the `podman ps` command or the `docker ps` command. + +#### Step 5: Remove old image(s) + +Once the Pi-hole container starts up with the updated image, we can remove the old image and free up disk, space. + +To remove **all the _unused_ images**, use the following command: + +``` +# command for Podman users +podman image prune + +# command for Docker users +docker image prune +``` + +Upon running the above command, **all the _unused_** **images** will be removed. **Please take caution with this command.** + +Done! That was all that we needed to do to update our Pi-hole container. + +### Conclusion + +This article goes over the two methods of updating Pi-hole based on the installation method initially used. I have also discussed setting up auto-updates for Pi-hole which was installed using the official script. There is no such option for the container method, unfortunately. + +Do let me know if you face any issues. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/update-pi-hole/ + +作者:[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/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/setup-pi-hole/ +[2]: https://itsfoss.com/ssh-into-raspberry/ +[3]: https://itsfoss.com/cron-job/ From 2c316b7ee7ae9f1db2d3e838121c8406eae52e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:58:32 +0800 Subject: [PATCH 2422/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221221.1=20=E2=AD=90=EF=B8=8F=20Debugging=20LibreO?= =?UTF-8?q?ffice=20Basic=20Macro=20using=20Breakpoint=20and=20Watch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...fice Basic Macro using Breakpoint and Watch.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md diff --git a/sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md b/sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md new file mode 100644 index 0000000000..89ec7eaf19 --- /dev/null +++ b/sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md @@ -0,0 +1,118 @@ +[#]: subject: "Debugging LibreOffice Basic Macro using Breakpoint and Watch" +[#]: via: "https://www.debugpoint.com/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Debugging LibreOffice Basic Macro using Breakpoint and Watch +====== + +**A simple guide for you to learn how to debug LibreOffice basic macro using breakpoint and watch.** + +While writing complex macros to automate various tasks in LibreOffice, you definitely encounter errors. Some run-time errors are self-explanatory. But some of them are very generic. To debug those, you need to carefully put breakpoints and step through the code to see where the problem is in your code. + +Hence this tutorial. These techniques apply to all the macros written in Calc, Writer or Impress. And should be applied to OpenOffice macros as well. + +### Debug a LibreOffice Macro written in Basic + +It’s easier to demonstrate this concept using an example. + +#### Define + +Let’s define three variables which we would use for our exercise. + +``` +dim i, j, cnt +``` + +Define a `for` loop, which would execute from 1 to 10. Inside the loop, increment two variables as below. This is just for just this demo; however, you can put any logic you want. + +``` +for cnt = 1 to 10 + i = i + 1 + j = i + 1 +next cnt +``` + +#### Adding Breakpoint + +Now, we want to put two breakpoints in the statement `"for cnt = 1 to 10"` and `"j = i + 1"`. When you put a breakpoint inside your program, it runs in debug mode and holds the execution at the breakpoint. + +To put a breakpoint in a LibreOffice Basic macro, put the cursor in the statement. And then, press `F9` or press the below button from the toolbar. + +![Breakpoint toolbar button in LibreOffice Macro editor][1] + +Once you do that, you will see a red circle on the left side of the statement, which means a breakpoint has been added _to that statement_. See the below image. In addition, you can add multiple breakpoints as per your needs. + +![After adding breakpoints][2] + +If you want to remove a breakpoint from a statement, press `F9` again in the statement, OR you can `double-click` the red circle. + +#### Adding Watch + +Now, we would add a ‘watch’ to the variable `"cnt"`. + +When the program executes in debug mode, the watch helps monitor a variable’s value between program steps. To add a watch on `"cnt"`variable, select the variable and press `F7` or click the glass icon in the toolbar. + +![Watch button in the toolbar in LibreOffice Macro editor][3] + +Once you do that, you will see the variable added to the watch list at the bottom of the editor. + +![Watch section appears at the bottom of the editor][4] + +#### Execute by Step + +We are all set with tools. + +Run the program by pressing `F5`. As we already added breakpoints, you would see the execution halts at the first breakpoint with a little **yellow arrow**. + +![Execution halts at the breakpoint][5] + +Now you have two options. + +Press `F5` again to continue the execution of the program, and it will halt again at the next breakpoint.Press `F8` (step execution), which would execute step by step, and you can see the ‘watched’ variable `'cnt'` value is changing as below. + +Lets press `F8`. You can see the yellow arrow comes to the next statement, and the compiler waits. Now the fun part, if you take a closer look at the watch window, you can see the `'cnt'`variable’s value is 1. + +![Variable contents during execution][6] + +So this way, you can debug, add breakpoints and add watch any LibreOffice or OpenOffice macro using its editor. + +Furthermore, you can add many watch variables as you want and debug your program for successful execution. + +### Closing Notes + +Although the above example is specific to LibreOffice macros, the same concept applies to programming and debugging in general. I hope this article helps you to understand the basics of debugging, step execution and watch in programming and macros in LibreOffice. + +### Looking for Something Else? + +If you are looking for something else in LibreOffice macro tutorials Or wants to learn more about it, please follow the below link for the complete Macro Tutorials Index: + +[Macro Tutorial Index][7] + +[Next:How to Save and Open Tabs from Last Session in Web Browser][8] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/ + +作者:[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/2014/09/LibreOffice_Debug_watch_BreakPoint_1.png +[2]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_2.png +[3]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_3.png +[4]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_4.png +[5]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_5.png +[6]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_6.png +[7]: http://www.debugpoint.com/libreoffice-basic-macro-tutorial-index/ +[8]: https://www.debugpoint.com/open-tabs-last-session-browser/ From 9601493ea574943bd085021220be42dd5bd0394a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:58:59 +0800 Subject: [PATCH 2423/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221221.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20migrate=20your=20code=20from=20PHP=207.4=20to=208.1.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to migrate your code from PHP 7.4 to 8.1.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md diff --git a/sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md b/sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md new file mode 100644 index 0000000000..fe2f579bb3 --- /dev/null +++ b/sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md @@ -0,0 +1,160 @@ +[#]: subject: "How to migrate your code from PHP 7.4 to 8.1" +[#]: via: "https://opensource.com/article/22/12/migrate-php-code" +[#]: author: "Paul Gilzow https://opensource.com/users/gilzow" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to migrate your code from PHP 7.4 to 8.1 +====== + +The end-of-life (EOL) for [PHP 7.4][1] was Monday, November 28, 2022. If you’re like me, that date snuck up much faster than anticipated. While your PHP 7.4 code isn’t going to immediately stop working, you do need to begin making plans for the future of this codebase. + +### What are your options? + +You could continue to remain on PHP 7.4, but there are several benefits to updating. The biggest are security risk and support. As we move farther and farther away from the EOL date, attackers will turn their focus to PHP 7.4 knowing that any vulnerabilities they discover will go unpatched in the majority of systems. Staying on PHP 7.4 drastically increases the risk of your site being compromised in the future. In a similar vein, finding support for issues you encounter with PHP 7.4 will become increasingly more difficult. In addition, you will most likely begin to encounter compatibility issues with third-party code/packages as they update their code to be compatible with later versions and drop support for 7.4. You’ll also be missing out on significant speed and performance improvements [introduced in 8.0][2] and further [improved in 8.1][3]. But upgrading all that legacy code is daunting! + +### Where to start? + +Luckily, PHP provides an [official migration guide][4] from PHP 7.4 to 8.0 to get you started (and an [8.0 to 8.1 migration guide][5] as well). Be sure to read through the Backward Incompatible Changes and Deprecated Features sections. While these guides are incredibly handy, you may very well have tens of thousands of lines of code to check, some of which you may have inherited. Luckily there are some options to help pinpoint potential problem areas in the migration. + +#### PHPCodeSniffer + PHPCompatibility sniffs + +[PHPCodeSniffer][6] (PCS) is a package for syntax checking of PHP Code. It checks your code against a collection of defined rules (aka “sniffs”) referred to as “standards”. PHPCodeSniffer ships with a collection of standards you can use including PEAR, PSR1, PSR2, PSR12, Squiz, and Zend. Luckily, you can write your own collection of sniffs to define any set of rules you like. + +> PHPCompability has entered the chat + +[PHPCompatibility][7] “is a set of sniffs for PHP CodeSniffer that checks for PHP cross-version compatibility” allowing you to test your codebase for compatibility with different versions of PHP, including PHP 8.0 and 8.1. This means you can use PHPCodeSniffer to scan your codebase, applying the rules from PHPCompability to sniff out any incompatibilities with PHP 8.1 that might be present. + +### Before I continue… + +While PHP8.2 was released on [December 8, 2022][8], and I encourage you to begin looking over the [official 8.1 to 8.2 migration guide][9] and begin making plans to upgrade, most of the checkers I mention in this article have not completed full support for 8.2 at this time. For those reasons, I’ll be focusing on migrating the code to PHP8.1, and not 8.2. + +In the process of writing this article, I discovered PHPCompatiblity has a [known issue][10] when checking for compatibility with PHP 8.0/8.1 where it will report issues that should be **Errors** as **Warnings**. The only workaround for now is to use the `develop` branch for PHPCompatibility instead of `master`. While they state it is stable, please be aware that in this article, I’m using the non-stable branch. You may want to weigh the pros and cons of using the `develop` branch before implementing it anywhere else than in a local development environment. While I found PCS+PHPCompatibility to be the most straightforward and comprehensive solution for checking for incompatible code, if you do not want to use a non-stable version of PCS, see the section at the end of the article about alternative options. + +For the purposes of this article, I’ll be using the [1.4.6 version of SimpleSAMLphp][11] to test for incompatibilities. This is a six-year-old version of the code base. I do this not to pick on SimpleSAMLphp, but because I wanted something that would _definitely_ have some errors. As it turns out, all of the platform.sh code I tested, as well as my own code was already compatible with PHP8.1 and required no changes. + +### Get started + +To get started, first clone your codebase, and then create a new branch. You’ll now need to decide if you want to install the dependencies and run the scans on your local machine or in a local development environment using something like [DDEV][12], [Lando][13], or [Docksal][14]. In this demo, I’m using DDEV. I suggest using a local development environment vs running directly on your local machine because while it’s not required to use the version of PHP you want to test against, for the best results, it is recommended you do so. If you don’t have PHP installed, or don’t have the target version installed, a local development environment allows you to create an ephemeral environment with exactly what you need without changing your machine. + +After setting up your environment for PHP 8.1, at a terminal prompt (in my case, I’ve run `ddev start` and once the containers are available, shell into the web app using `ddev ssh`), you need to add these new packages so you use them to test with. I’ll be adding them with composer, however, there are [multiple][15][ways][16] to [install][17][them][18] if you would prefer to do so differently. If your codebase isn’t already using composer, you’ll need to do [composer init][19] before continuing. + +Because you'll be using the develop branch of PHPCompatibility there are a couple of extra steps to do that aren’t in the regular installation instructions. First is that the develop branch of PHPCompatibility requires an alpha version of `phpcsstandards/phpcsutils`. Because it is marked as alpha, you'll need to let composer know this one package is OK to install even though it is below your minimum stability requirements. + +`$ composer require --dev phpcsstandards/phpcsutils:"^1.0@dev"` + +Next, install PHPCompatibility targeting the `develop` branch + +`$ composer require --dev phpcompatibility/php-compatibility:dev-develop` + +The `develop` branch also installs `dealerdirect/phpcodesniffer-composer-installer` so you don’t need to add it manually or direct PCS to this new standard. + +To verify our new standards are installed, you'll have PCS display the standards it is aware of. + +``` +$ phpcs -i +The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, PHPCompatibility, PHPCS23Utils and PHPCSUtils +``` + +Now that you know your standards are available, you can have PCS scan our code. To instruct PCS to use a specific standard, use the `--standard` option and tell it to use `PHPCompatibility`. However, you also need to tell PHPCompatibility which PHP version you want to test against. For that, use PCS’ `--runtime-set` option and pass it the key `testVersion` and value of `8.1`. + +Before you start the scan, the one issue remaining is that code you want to scan is in the root of the project (`.`) but the `vendor` directly is also in the project root. You don’t want the code in `vendor` scanned, as those aren’t packages you necessarily control. PCS allows you to tell it to not scan files/directories with the `--ignore` option. Finally, you want to see the progress as PCS parses the file so you'll pass in the `-p` option. + +Putting it all together: + +`$ phpcs -p . --standard=PHPCompatibility --runtime-set testVersion 8.1 --ignore=*/vendor/*` + +This kicks off PCS which will output its progress as it scans through your project’s code. `W` indicates **Warnings**, and `E` indicates **Errors**. At the end of the scan it will output: a full report with the file containing the issue, the line number where the issue occurs, whether the issue is a **Warning** or an **Error**, and the specific issue discovered. + +In general, **Errors** are things that will cause a fatal error in PHP 8.1 and will need to be fixed before you can migrate. **Warnings** can be things that have been deprecated in 8.0/8.1 but not yet removed or issues that PCS ran into while trying to parse the file. + +![asciicast][20] + +Given that the report might be long, and is output all at once into your terminal, there are [numerous options][21] for changing the information that is included in the report, as well as multiple reporting formats. + +As you begin to fix your code, you can rerun the report as many times as needed. However, at some point, you’ll need to test the code on an actual PHP8.1 environment with real data. If you’re using [Platform.sh][22], which is as easy as creating a branch, changing a single line in your configuration file, and pushing that branch to us. You can check out [this video][23] to see how easy it is! + +### There’s too much to fix! + +Now that you have a solid idea of what needs to be updated before you can migrate, you might be facing an incredible amount of work ahead of you. Luckily, you have some options to help you out. PCS ships with a code fixer called [PHP Code Beautifier and Fixer][24] (`phpcbf`). Running phpcbf is almost identical to running phpcs and most of the options are identical. The other option is [Rector][25]. Usage of these tools is beyond the scope of this article, but as with any automation, you’ll want to test and verify before promoting changes to production. + +### Alternative options + +If for any reason you don’t feel comfortable using a non-stable version of PCS, you do have other options for checking your code. + +#### Phan + +Phan is a static code analyzer for PHP. It offers multiple levels of analysis and allows for incrementally strengthening that analysis. + +“Static analysis needs to be introduced slowly if you want to avoid your team losing their minds.” + +Phan doesn’t target just compatibility with newer versions, it can highlight areas of code that will error in later versions. However, there are some caveats when using Phan for checking compatibility: + +- Slower than PCS+PHPCompatibility. +- Phan requires the [ast php extension][26] which is not available by default on Platform.sh (or in DDEV). You’ll need to install it in your local development environment and add it to your php.ini file. Alternatively, you can use the `--allow-polyfill-parser` option, but it is considerably slower. +- Phan’s default reporting output isn’t as easy to read as other options +- I came across an issue where if your code base sets a different `vendor` directory via composer’s `[config:vendor-dir](https://getcomposer.org/doc/06-config.md#vendor-dir)` option, it will error out stating it can’t find certain files in the `vendor` directory +- As mentioned, Phan analyzes much more than just PHP8.1 compatibility. While certainly a strength in other situations, if your goal is to migrate from 7.4 to 8.1 as quickly as possible, you will have to parse through errors that are unrelated to version compatibility. +- Requires you run it on the PHP version you want to target + +#### PHPStan + +Similar to Phan, PHPStan is a static code analyzer for PHP that promises to “find bugs without writing tests.” And a similar set of caveats apply: + +- Slower than either PCS or Phan +- Analyzes much more than just PHP8.1 compatibility so depending on your current codebase, you will have to possibly parse through a bunch of errors that are unrelated to version compatibility +- Requires you run it on the PHP version you want to target + +#### PHP Parallel Lint + +A very fast PHP linter that can lint your codebase for issues, but can also check for deprecations. While it is exceptionally fast, it is only a linter, and therefore can only surface deprecations that are thrown at compile time, not at runtime. In my example code, it only found 2 deprecations vs the 960 deprecations PCS uncovered. + +### Summary + +Code migrations, while never fun, are crucial to minimizing organizational risk. Platform.sh gives you the flexibility to test your code using the same data and configurations as your production site, but in a siloed environment. Combine this with the tools above, and you have everything you need for a strong, efficient code migration. + +_This article originally published on the [Platform.sh community site][27] and has been republished with permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/migrate-php-code + +作者:[Paul Gilzow][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/gilzow +[b]: https://github.com/lkxed +[1]: https://www.php.net/eol.php +[2]: https://platform.sh/blog/2020/php-80-feature-focus-just-in-time-compilation +[3]: https://platform.sh/blog/2021/php-81-lays-new-ground-at-platformsh +[4]: https://www.php.net/manual/en/migration80.php +[5]: https://www.php.net/manual/en/migration81.php +[6]: https://github.com/squizlabs/PHP_CodeSniffer +[7]: https://github.com/PHPCompatibility/PHPCompatibility +[8]: https://www.php.net/archive/2022.php#2022-12-08-1 +[9]: https://www.php.net/manual/en/migration82.php +[10]: https://github.com/PHPCompatibility/PHPCompatibility/issues/1344 +[11]: https://github.com/simplesamlphp/simplesamlphp/releases/tag/v1.14.6 +[12]: https://opensource.com/article/22/12/ddev +[13]: https://lando.dev/ +[14]: https://docksal.io/ +[15]: https://github.com/squizlabs/PHP_CodeSniffer#phive +[16]: https://github.com/squizlabs/PHP_CodeSniffer#git-clone +[17]: https://github.com/squizlabs/PHP_CodeSniffer#installation +[18]: https://github.com/PHPCompatibility/PHPCompatibility#installation-via-a-git-check-out-to-an-arbitrary-directory-method-2 +[19]: https://getcomposer.org/doc/03-cli.md#init +[20]: https://asciinema.org/a/MGKsC3RkNaWMcGtJGiyMHorWy.svg +[21]: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Reporting +[22]: https://platform.sh/ +[23]: https://www.youtube.com/watch?v=mAb8DO7Jp0Q +[24]: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically#using-the-php-code-beautifier-and-fixer +[25]: https://github.com/rectorphp/rector +[26]: https://github.com/nikic/php-ast +[27]: https://community.platform.sh/t/migrating-php-7-4-code-to-8-1-on-platform-sh/1156 From d214d51019b3acbcb6558836fa29579e3ca4ea98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 20:59:50 +0800 Subject: [PATCH 2424/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221221.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Open=20source=20solutions=20for=20EV=20charging.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Open source solutions for EV charging.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md new file mode 100644 index 0000000000..249f89ff02 --- /dev/null +++ b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md @@ -0,0 +1,74 @@ +[#]: subject: "Open source solutions for EV charging" +[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging" +[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open source solutions for EV charging +====== + +Maybe you hate pumping gas in the cold (or heat), or you care about the environment. Maybe the latest gas prices and general inflation has you thinking more about stretching your money. Perhaps you simply think electric vehicles (EVs) look cool. No matter the reason, you're excited about your next vehicle being an EV and you're not alone! The EV market share is set to [expand to 30% by 2040][1]. The [US government provides a handy comparison tool][2] to show that the cost of ownership of an EV easily beats owning and operating fossil fuel vehicles. Despite this, EV charging costs can still hit you hard in your wallet. + +One of the most elegant ways to solve cost problems in general is to apply open source principles to accelerate innovation. Fortunately for you, this has been done in the EV charging area to find a way to get low-cost electricity and low-cost chargers. + +To control the costs of EV charging, first you need low-cost electricity. In the old days, that would mean going from oil to coal, which is not a step up. Today, as it turns out, [solar photovoltaic (PV)][3] devices that convert sunlight directly into electricity normally provide the lowest-cost electricity. Coal companies are going bankrupt because they can no longer compete with clean solar power. This is also why [solar power is seeing explosive growth all over the world][4]. Many homeowners are putting [solar panels on their roofs][5] or on ground mounts in the backyard to cover all of their home’s electric needs. But how can you charge your EV with solar energy if you have limited roof area or a small backyard? + +### Open source PV parking canopy + +One approach that major corporations are taking is to make a PV canopy over their parking lots. If you want to do this yourself, a new [study][6] provides a full mechanical and economic analysis of three novel open source PV canopy systems: + +- Use an exclusively wood, single-parking-spot spanning system +- Use a wood and aluminum double-parking-spot spanning system +- Use a wood and aluminum cantilevered system + +The designs are presented as 5-by-6 stall builds, but all three systems are scalable to any amount of parking spots required. This includes a 1-stall 6kW system to charge a single car at home (as shown below). All of the racks are rated for a 25-year expected lifetime to match the standard PV warranty. + +![Image of a single car PV canopy.][7] + +The open source PV canopies are all designed to withstand a brutal Canadian winter. They also follow Canada’s strict building codes. So if you live anywhere else, the system as designed should still work for you. The complete [designs][8]and bill of materials of the canopies are provided, along with basic instructions. They are released with an open source license that enables anyone to fabricate them following the spirit of the free book about DIY solar power collectors [_To Catch the Sun_][9]. + +The results of the previously mentioned [study][6] show that open source designs are much less expensive than proprietary products. Single-span systems provide cost savings of 82-85%, double-span systems save 43-50%, and cantilevered systems save 31-40%. + +Most importantly, the designs give you more than enough energy (if you have a normal commute) to cover your charging needs. In the first year of operation, PV canopies can provide 157% of the energy needed to charge the least efficient EV currently on the market. + +![Image of an OpenEVSE charging station.][10] + +### Open source EV chargers + +Another way to cut the cost of EV ownership is to install an open source EV charger. [OpenEVSE][11] is an Arduino-based charging station composed of [open source software][12] and hardware which can be made DIY-style. They are small, lightweight, and portable, so you can use them at home or on the road. + +OpenEVSE powers charging stations for many EV manufacturers all over the world. You can adapt it to fit your requirements. OpenEVSE is now quite mature and supports advanced features including adjustable current, temperature monitoring, and a real-time power display. You can buy the hardware pre-assembled and ready to go. If you want to save more money (and have more fun) buy a kit and build it yourself. + +![Image of the OpenEVSE kit.][13] + +I hope to see more designs of EV power solutions in the future. Keep your eyes open, roll up your sleeves for some DIY, and enjoy assembling your open source, solar-powered EV charging solutions! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-ev-charging + +作者:[Joshua Pearce][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/jmpearce +[b]: https://github.com/lkxed +[1]: https://about.bnef.com/electric-vehicle-outlook/ +[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect +[3]: https://opensource.com/article/21/11/open-source-solar-power +[4]: https://www.alliedmarketresearch.com/photovoltaic-market +[5]: https://opensource.com/article/22/12/open-source-solar-power-home +[6]: https://doi.org/10.3390/technologies10060114 +[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png +[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs +[9]: https://tocatchthesun.com/ +[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png +[11]: https://openevse.com/index.html +[12]: https://github.com/OpenEVSE +[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png From 9b9f8a7b6d0a653c07a31614bf702e3f19986e72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 21:00:20 +0800 Subject: [PATCH 2425/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221221.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?My=204=20favorite=20features=20of=20the=204pane=20file=20manage?= =?UTF-8?q?r=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ite features of the 4pane file manager on Linux.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md diff --git a/sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md b/sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md new file mode 100644 index 0000000000..f64399c4eb --- /dev/null +++ b/sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md @@ -0,0 +1,100 @@ +[#]: subject: "My 4 favorite features of the 4pane file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-4pane" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +My 4 favorite features of the 4pane file manager on Linux +====== + +4Pane is a multi-pane file manager for Linux that allows for customized layout, and provides quick access to traditional desktop conveniences as well as common Linux tools. 4Pane aims for speed over visual effects, and places the way you want to work above all else. In honor of its name, I've got a list of my four favorite features of this fine file manager. + +### 1. Flexible interface + +![The 4Pane file manager is a fast multi-pane application for managing files.][1] + +The most prominent feature of the 4Pane window is the same as its name: there are four panes in the window by default. In a way, though, there's actually only two, or said another way, each of the two panes is divided into two columns. The column on the left is a directory tree of your current location (home, by default.) Files are never displayed in the left column. It's only a directory tree. + +The adjacent column displays the contents of the selected directory. When you double-click on a file, it opens in its default application. When you double-click on a directory, that directory is revealed in the left column and the right column displays its contents. + +This same model is duplicated in the other window pane. + +4Pane only has 4 panes by default, but it doesn't enforce that view. If you're overwhelmed by the four-pane view, click on the **View** menu and select **Unsplit panes**. This displays just one pane of two columns. It's a simplified view compared to what's possible, but it's a nice place to start while you're getting used to the column-style for browsing files. + +#### Splitting panes + +The advantage of a split view is that you don't have to open another window to drag and drop a file or folder from one location to another. This isn't the predominant model for file managers, but it's a popular subset. 4Pane is one of the few, in my experience, that recognizes that it's not always convenient to work laterally. If you prefer to have your second pane at the bottom of the window, go to the **View** menu and select **Split panes horizontally** (meaning that the _split_ is horizontal, so the panes are situated vertically to one another). + +![You can create horizontal splits in 4Pane.][2] + +### 2. Tooltip preview + +One of my favorite features of 4Pane is the tooltip preview. To activate this, click the photo icon in the top toolbar. With this active, all you have to do is roll your mouse over a file to see a preview of its contents in a tooltip. It may not be a feature you want active all the time. The tooltips can be distracting when you're just browsing files. However, if you're looking for something specific or if you're just not sure exactly what's in a directory, a quick wave of your mouse to get an overview of the contents of several files is satisfyingly efficient. + +### 3. Menu + +The menu bar of 4Pane isn't quite like most file manager menu bars you may be accustomed to. There's a menu dedicated to archiving actions, mounting devices, and popular Linux commands such as [grep][3] and [find][4]. + +For instance, in the **Archive** menu, you can choose to extract an archive or compressed file, create a new archive, add a file to an existing archive, compress a file, and more. I love [Ark][5] and similar utilities, but I also recognize how useful it is for a file manager to make those utilities unnecessary. Especially when you're on an [old computer][6], the fewer applications you have to launch, the better. + +Also impressive are the built-in front ends for `grep` and `find`. I'll admit that I probably won't use it often myself, but I never complain when a developer brings the power of Linux commands to users who aren't [yet] familiar with the terminal. + +![4Pane can run grep and locate commands to help you find your data.][7] + +The `locate` front end is probably the most useful of the bunch. It's fast and effective. There's just one field in the dialogue box, so it makes a file system search _fast_. + +For example, say you're searching for the file `Zombie-Apocalypse-Plan-B.txt` because Plan A fell through, but in the heat of the moment (what with zombies knocking down your door, and all) you can't remember where you saved it. Go to the **Tools** menu and select **locate**. Type `zombie` in the search field, click the `-i` box so that your system ignores capitalization, and click **OK**. This returns both `Zombie-Apocalypse-Plan-A.txt` and `Zombie-Apocalypse-Plan-B.txt`. + +Maybe that's good enough for you, or maybe you need a little more precision. In addition to `-i` for case insensitivity, you can click the `-r` option to leverage the power of [regex][8]. Type `zombie.B.` to narrow your search to a file starting with `zombie` and containing the letter `B` somewhere in the filename. + +Effective and fast. + +### 4. Undo + +Finally, my (other) very favorite feature of 4pane is the **Undo** button. When you right click on a file or folder and select **Delete**, the item is sent to a secret location (it's not actually secret, but it's out of sight and out of mind). The item isn't scrubbed from the hard drive until you close the 4pane window. Up until then, you can always click the **Undo** button in the top toolbar to reverse decisions you've come to regret. + +This is a separate action from sending a file to your system trash, so it _is_ meant to masquerade as an actual delete action. The difference is that it's a delayed delete. That may not suit you. Some users are disciplined enough to send files to the system trash, but others skip the trash. This feature is designed to protect you from yourself by delaying deletion until you close the window. I find it a reasonable and invaluable feature, and it's the one feature that I've already benefited from several times. + +### Install 4Pane on Linux + +If you're sold on 4Pane, or at least curious about it, then you should install it and try it out! On Linux, your distribution may package 4Pane in its software repository. If so, you can use your package manager to install. For example, on Fedora, Mageia, OpenMandriva, and similar: + +``` +$ sudo dnf install 4pane +``` + +On Debian and Debian-based systems: + +``` +$ sudo apt install 4pane +``` + +If your distribution doesn't carry 4Pane, you can download it from [4pane.co.uk][9]. + +Once installed, launch 4Pane from your application menu. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-4pane + +作者:[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/2022-10/4pane.webp +[2]: https://opensource.com/sites/default/files/2022-10/4pane-split-horizontally.webp +[3]: https://opensource.com/article/21/3/grep-cheat-sheet +[4]: https://opensource.com/article/18/4/how-use-find-linux +[5]: https://opensource.com/article/22/2/archives-files-linux-ark-kde +[6]: https://opensource.com/article/19/7/how-make-old-computer-useful-again +[7]: https://opensource.com/sites/default/files/2022-10/4pane-grep.webp +[8]: https://opensource.com/article/18/5/getting-started-regular-expressions +[9]: http://www.4pane.co.uk/ From 43d38cc91a20349d1b1a499316156126bedd2db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 21:01:31 +0800 Subject: [PATCH 2426/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 11 New Distros to look forward to in 2023.md | 258 ++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md new file mode 100644 index 0000000000..1999c6f859 --- /dev/null +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -0,0 +1,258 @@ +[#]: subject: "11 New Distros to look forward to in 2023" +[#]: via: "https://news.itsfoss.com/new-distros-2023/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +11 New Distros to look forward to in 2023 +====== + +What are you looking forward to in 2023? Try these distros! + +![11 New Distros to look forward to in 2023][1] + +It's time to say goodbye to 2022! 📆 + +There were many distro releases in 2022, some more extraordinary than others. + +With the trend shifting towards focusing more on the user experience and performance side of things, Linux distributions have significantly evolved over the past year. + +As for you, the end-user, you now have several options. You can try some [beginner-friendly options][2] or [distros for advanced users][3]. + +Here, I focus on new options that you can give a try. These distros may not necessarily replace the popular distributions available. But if you want to try something new and different, feel free to go through the list. + +So, what can you expect in 2023? 🤔 + +Well, to answer that. Allow me to take you on a distro journey! + +> 💡 New distributions may not be suitable for production use cases. Try these options if you have no issues taking a leap of faith to experiment. + +### 1. Vanilla OS + +![vanilla os][4] + +Vanilla OS is an Ubuntu-based distro that is the brainchild of Mirko Brombin, the creator of [Bottles][5]. + +It aims to provide a **clean, vanilla GNOME experience with on-demand immutability** and an exceptional first-time setup experience. + +You can check it out if you want something new and want to try out the on-demand immutability features that make Vanilla OS so unique. + +It is yet to receive a stable release (soon) and is set to receive many improvements in 2023. + +[Vanilla OS][6] + +### 2. XeroLinux + +![xeroxlinux][7] + +Steve a.k.a. TechXero, started [XeroLinux][8] as a passion project that was not meant to be a mainstream distro with all the bells and whistles. + +An **'eye-candy' version of Arch Linux** offers a pleasant out-of-the-box experience with a few exciting features. + +You can try this if you want a more accessible Arch Linux experience. + +**From January 2023**, XeroLinux will be switching to a monthly release schedule. So, you can expect plenty of updates in 2023! + +[XeroLinux][9] + +### 3. Crystal Linux + +![crystal linux][10] + +Crystal Linux is an upcoming Arch-based distro that wants to **provide an easy-to-use desktop experience coupled with modern Linux technologies**. + +In its current form, it may not be welcoming to newcomers, and people with experience using Linux are likelier to like it. + +So, for now, I would suggest users who are already familiar with Linux give Crystal Linux a try. + +I expect Crystal Linux to have a stable release sometime in 2023 with many features and improvements over the [beta version][11] that is available right now. + +[Crystal Linux][12] + +#### Recommended Read 📖 + +### 4. TUXEDO OS + +![tuxedo os][13] + +[TUXEDO OS][14] is an Ubuntu-based offering from TUXEDO Computers, a Linux-focused hardware manufacturer. + +It features the KDE Plasma desktop environment with extras like **TUXEDO Control Center** to fine-tune your hardware and **TUXEDO Tomte**, a configuration service for resolving driver/missing package issues. + +I suggest you try this if you want a **different KDE-powered experience**. + +Initially, it was only made available as a pre-installed operating system on TUXEDO laptops and computers. + +But later, it received a general use release back in September 2022 dubbed as 'TUXEDO OS 1'. It is set to receive plenty of updates in 2023. + +[TUXEDO OS][15] + +### 5. EuroLinux + +![euro linux][16] + +An RHEL-based distro with **enterprise perks** is what [EuroLinux][17] is. It provides stability and security in a solid package. + +Based on **RHEL 9**, it can provide seamless compatibility with other [RHEL-based server distros][18] such as Rocky Linux, CentOS, AlmaLinux, and more. + +It aims to lure in Windows and macOS users with a familiar user interface layout with its implementation of a translucent dock at the bottom of the screen. + +You should try this because the overall package is quite adequate and can cater to both Linux and Windows/macOS users. + +It is now available as stable release, with updates planned for 2023. + +[EuroLinux Desktop][19] + +### 6. Zinc + +![zinc][20] + +[Zinc][21] is an **Ubuntu-based distro** that has been tweaked to provide a unique experience. Existing Ubuntu users may be surprised to see what it has to offer. + +Based on the latest LTS release of **Xubuntu**, it uses the XFCE desktop environment with numerous improvements, such as integrated Linux AppImage support, deb-get package installer, BTRFS as the default file system, and more. + +This distro can be a viable alternative to replace your daily driver, provided it is set up correctly. + +It follows a stable release model, so you can expect significant updates in 2023! + +[Zinc][21] + +### 7. CachyOS + +![cachyos][22] + +[CachyOS][23] tries to make **Arch Linux a beginner-friendly affair** that anyone can use. It is popular because of its high level of customizability and also because it has the newest software. + +It aims to provide you with a fast and secure operating system that is easy to use. + +This OS is for users who want to experiment and try something new. + +CachyOS is a rolling-release distro, so you can expect it to receive a ton of updates in 2023. + +[CachyOS][23] + +### 8. risiOS + +![risios][24] + +In a sea of Arch and Ubuntu-based Linux distros, [risiOS][25] is a rare sight to see. + +Based on Fedora Linux, the project saw its beginnings in Seattle, USA. + +It uses the **GNOME desktop environment** to provide users with a highly customizable experience with a **customized ZSH version**. + +If you want to try a Fedora-based distro, this can be something new for you! + +risiOS gets a stable release with minor updates pushed in between. It has much more to give in 2023. + +[risiOS][25] + +### 9. Exodia OS + +![exodia os][26] + +Another Arch-based Linux distro!#$**? + +Yes. 🤭 Well, it looks like this year, we have had enough of Arch-based distros, which is not necessarily bad! + +Meet [Exodia OS][27], an Arch-based Linux distro that aims to be highly customizable for users in cybersecurity fields. + +Its feature set includes pre-installed **tools for all cybersecurity fields, TUI Apps, ElKowars wacky widgets (EWW), zsh, and more**. + +If you are a cybersecurity expert or an enthusiast, you can give this a try! + +They offer three releases for different use cases. You can expect them to keep pushing essential updates and feature additions in 2023. + +[Exodia OS][27] + +### 10. Kumandar Linux + +![kumander linux][28] + +At first glance, you would think that it is Windows 7, but if you look closer, you will find that it is [Kumandar Linux][29]. + +It is based on **Debian 11 and uses a customized version of XFCE**. + +The name stands for 'Commander' in English and pays homage to the developer's first computer, the [Commodore VIC20][30]. + +If you liked the Windows 7 experience but wanted the same thing on Linux. Then you can give this a try! + +Currently, only the early-release candidate has been released. But you can expect a stable release in 2023, hopefully! + +[Kumander][29] + +### 11. Ubuntu Unity + +![ubuntu unity][31] + +Declared as an official flavor of Ubuntu [earlier this year][32], Ubuntu Unity is a remix of Ubuntu. + +It features the **Unity desktop interface** used in Ubuntu from 2010-2017, which was dropped in favor of GNOME. + +The development has been in full swing, with the young lead developer pushing updates and feature additions. + +Users who want to try a different flavor of Ubuntu can give this a shot. It offers both LTS and non-LTS releases. + +[Ubuntu Unity][33] + +**So, wrapping up.** + +Even with this comprehensive list, I may have missed out on some. 🤔 + +But. + +Maybe a surprise release will take the headlines in 2023, or some existing distro will try something different. + +Until then. + +_💬 Do tell me what distribution you are excited about in 2023?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/new-distros-2023/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/distros-to-look-forward-in-2023.png +[2]: https://itsfoss.com/best-linux-beginners/ +[3]: https://itsfoss.com/advanced-linux-distros/ +[4]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-1.png +[5]: https://usebottles.com +[6]: https://vanillaos.org +[7]: https://news.itsfoss.com/content/images/2022/12/XeroLinux.jpg +[8]: https://itsfoss.com/xerolinux/ +[9]: https://xerolinux.xyz +[10]: https://news.itsfoss.com/content/images/2022/12/Crystal-Linux.jpg +[11]: https://git.getcryst.al/crystal +[12]: https://getcryst.al +[13]: https://news.itsfoss.com/content/images/2022/12/TuxedoOS.jpg +[14]: https://news.itsfoss.com/tuxedo-os/ +[15]: https://www.tuxedocomputers.com/en/TUXEDO-OS_1.tuxedo +[16]: https://news.itsfoss.com/content/images/2022/12/EuroLinux.jpg +[17]: https://news.itsfoss.com/eurolinux-desktop/ +[18]: https://itsfoss.com/rhel-based-server-distributions/ +[19]: https://en.euro-linux.com/eurolinux/desktop/ +[20]: https://news.itsfoss.com/content/images/2022/12/Zinc.png +[21]: https://teejeetech.com/tag/zinc/ +[22]: https://news.itsfoss.com/content/images/2022/12/CachyOS.jpg +[23]: https://cachyos.org +[24]: https://news.itsfoss.com/content/images/2022/12/risiOS.png +[25]: https://risi.io +[26]: https://news.itsfoss.com/content/images/2022/12/Exodia-OS.jpg +[27]: https://exodia-os.github.io/exodia-website/ +[28]: https://news.itsfoss.com/content/images/2022/12/Kumander-Linux.jpg +[29]: https://www.kumander.org +[30]: https://en.wikipedia.org/wiki/VIC-20 +[31]: https://news.itsfoss.com/content/images/2022/12/UbuntuUnity.jpg +[32]: https://news.itsfoss.com/unity-remix-official-flavor/ +[33]: https://ubuntuunity.org/ From e1705fe10e3f484217645c313ec2d50c4ff54364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 21:02:38 +0800 Subject: [PATCH 2427/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221222.1=20=E2=AD=90=EF=B8=8F=20Tails=205.8=20Arri?= =?UTF-8?q?ves=20with=20Official=20Wayland=20Support.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s 5.8 Arrives with Official Wayland Support.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md diff --git a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md new file mode 100644 index 0000000000..e55d86badd --- /dev/null +++ b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md @@ -0,0 +1,74 @@ +[#]: subject: "Tails 5.8 Arrives with Official Wayland Support" +[#]: via: "https://debugpointnews.com/tails-5-8-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Tails 5.8 Arrives with Official Wayland Support +====== + +![][1] + +**A sizable update arrives in Tails 5.8, bringing Wayland support, newly redesigned persistence storage and more.** + +Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][2] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously. + +![Tails 5.8 desktop][3] + +### What’s New in Tails 5.8 Release + +At a high level, Tails 5.8 includes significant redesigns of existing features, improved usability, and strengthened security. Also, bringing modern tech aligns with the changing times and needs of the hour. + +The persistence storage module gets a complete redesign in this release. In the new version of Persistent Storage, you no longer have to restart after creating a Persistent Storage or activating a new feature. You can also change the password for your Persistent Storage from within the application. Additionally, you can now create a Persistent Storage directly from the Welcome Screen if you don’t already have one. The Persistent Storage had not been updated much since its initial release in 2012 due to challenges in modifying and improving the code. + +The Tails team has also replaced the deprecated X.Org display system with Wayland. While you may not notice any visual changes, Wayland provides increased security for Tails by making it harder for a compromised application to compromise or misuse other applications. + +![Browse internet securely using Tails 5.8][4] + +For example, since Tails 4.8, the Unsafe Browser has been disabled by default due to a security vulnerability that could reveal your IP address and deanonymize you through the use of an invisible Unsafe Browser. Wayland addresses this vulnerability and makes it safe to enable the Unsafe Browser by default again. However, if desired, you can still disable the Unsafe Browser from the Welcome Screen. + +In addition to addressing security concerns, Wayland also introduces new features that were previously not supported in the Unsafe Browser, including sound, file uploads and downloads, alternative input methods for non-Latin languages such as Chinese, and accessibility features like the screen reader and virtual keyboard. + +The Tails team has also made it easier to enter new Tor bridges by allowing you to scan a QR code. You can obtain a QR code by sending an empty email to [bridges@torproject.org][5] from a Gmail or Riseup email address or by visiting [https://bridges.torproject.org/][6] and printing the QR code on paper. + +Furthermore, the entire Debian stable base is bumped up to the latest version, including pre-loaded apps. + +A complete changelog is available [here][7] if you want to dive deeper into the changes. + +### Download and upgrade + +If you are already running a prior version of the Tails 5.0 series, you should automatically get this update once you boot up Tails from the USB stick. + +In addition, if you want to install Tails 5.8 fresh, grab the ISO files from the below links: + +- [For USB sticks (USB image)][8] +- [For DVDs and virtual machines (ISO image)][9] + +Via [release announcement][10]. + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/tails-5-8-release/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tails58head.jpg +[2]: https://www.debugpoint.com/privacy-linux-distributions-2022/ +[3]: https://debugpointnews.com/wp-content/uploads/2022/12/Tails-5.8-desktop.jpg +[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Browse-internet-securely-using-Tails-5.8.jpg +[5]: https://debugpointnews.commailto:bridges@torproject.org +[6]: https://bridges.torproject.org/ +[7]: https://gitlab.tails.boum.org/tails/tails/-/blob/master/debian/changelog +[8]: https://tails.boum.org/install/download/index.en.html +[9]: https://tails.boum.org/install/download-iso/index.en.html +[10]: https://tails.boum.org/news/version_5.8/index.en.html From da5ae74dfea4460b76543403df98ad176ba7f4ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 22 Dec 2022 21:03:06 +0800 Subject: [PATCH 2428/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221222.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?3=20delightful=20features=20of=20the=20Linux=20QtFM=20file=20ma?= =?UTF-8?q?nager.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ightful features of the Linux QtFM file manager.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md diff --git a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md new file mode 100644 index 0000000000..3cdd80fb63 --- /dev/null +++ b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md @@ -0,0 +1,91 @@ +[#]: subject: "3 delightful features of the Linux QtFM file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 delightful features of the Linux QtFM file manager +====== + +QtFM is a simple file manager that aims to provide the basic features of file management through a fast and intuitive interface. It's available for Linux, BSD, and macOS. + +QtFM, as its name suggests, uses the Qt (canonically pronounced "cute") programming toolkit. I've worked with the Qt toolkit both in C++ and Python, and using it is always a pleasure. It's cross-platform, it's got multiple levels of useful abstraction so developers don't have to interact directly with vendor-specific SDKs, and it's highly configurable. From a user's perspective, it's a "natural" and fast experience, whether you're on the latest hardware or on an [old computer][1]. + +### Using QtFM + +There's not much to QtFM. It focuses on being exactly what its name claims: a file manager (FM) for Qt. The layout is what you probably expect from a file manager: a list of common places and devices on the left and a list of files on the right. + +![QtFM file manager][2] + +It's got just four menus. + +- **File**: Create a new file or folder, open a new tab or window, or exit the application. +- **Edit**: Copy, paste, move to trash, or create a new bookmark in the left panel. +- **View**: Toggle between the list and icon views, adjust the layout. +- **Help**: Licensing information, and links to online documentation. + +Interacting with QtFM is largely the same experience you're probably used to with any standard-issue file manager. You can click around to navigate, open files in its default application, drag-and-drop files and folders, copy and paste files and folders, launch applications, and whatever else you do when you're interacting with the contents of your computer. It's familiar, so there's basically no learning curve and no unpleasant surprises. + +There are, however, several pleasant surprises. Here are three of my favorites. + +### 1. Put a command into a contextual menu + +With QtFM, you can add any command you can run in a terminal to the right-click contextual menu. For instance, suppose you want an option to convert an image into the [webp format][3] to the right-click menu. There's no complex framework or scripting language to learn, you don't need to develop a plugin. You can do it in just 3 steps: + +- Go to the **Edit** menu and select **Settings** +- Click on the **Custom actions tab** +- Click the **Add** button and enter the command you want to run, using `%f` for the source file and `%n` for the new file + +![QtFM custom actions][4] + +The action now appears in your QtFM contextual menu. + +### 2. Flexible layout + +One of the built-in features of the Qt toolkit is that many of its components are ("widgets") detachable. QtFM takes advantage of this and allows you to unlock its layout from the **View** menu. Once unlocked, you can drag toolbars and side panels, anchoring them in new positions around your window. I was able to combine the menu bar, navigation toolbar, and the URI field into a unified panel, and I placed a file tree on the right side of the window for convenience. + +![QtFM unlocking the layout][5] + +This requires no special knowledge of application design or even configuration. You just unlock, drag and drop, and lock. + +### 3. Tabbed view + +Many Linux file managers offer tabs the same way as most web browsers do. It's a simple interface trick that lets you keep several locations handy. I don't know whether it actually saves time, but I always feel like it does. QtFM offers tabs, too, and there are two things I particularly enjoy about the way it implements them. + +First of all, the tabs are at the bottom of the window by default (you can change that in **Settings**.) Because I tend to read from left to right and top to bottom, I usually prefer to have "extra" information at the bottom and right ends of a window. Of course, what constitutes "extra" information varies from user to user, so I don't blame any developer for placing widgets and panels in places I wouldn't put widgets and panels. It's nice, though, when a developer accidentally agrees with my preferences. + +Secondly, the tabs are responsive. You can drag a file or folder from one tab into another just by hovering over your target tab. It feels as natural as dragging and dropping from one window to another. + +### Install QtFM + +On Linux, your distribution may package QtFM in its software repository. If so, you can use your package manager to install. For example, on Debian and Debian-based systems: + +``` +$ sudo apt install qtfm +``` + +If your distribution doesn't offer QtFM, you may find a package for it on its [website][6], or you can download the source code from its [Git repository][7]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-qtfm + +作者:[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/article/22/10/obsolete-computer-linux-opportunity +[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp +[3]: https://opensource.com/article/20/4/webp-image-compression +[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp +[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp +[6]: https://qtfm.eu/ +[7]: https://github.com/rodlie/qtfm/ From a82ea4f2944cf8ddc894c65297f7f19cde687667 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 23 Dec 2022 09:48:30 +0800 Subject: [PATCH 2429/3123] RP @geekpi https://linux.cn/article-15374-1.html --- ...⭐️ Install open source solar power at home.md | 64 +++++++++++++++++++ ...⭐️ Install open source solar power at home.md | 61 ------------------ 2 files changed, 64 insertions(+), 61 deletions(-) create mode 100644 published/20221209.0 ⭐️⭐️ Install open source solar power at home.md delete mode 100644 translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md diff --git a/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md new file mode 100644 index 0000000000..6a2cd140e4 --- /dev/null +++ b/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md @@ -0,0 +1,64 @@ +[#]: subject: "Install open source solar power at home" +[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home" +[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15374-1.html" + +在家里安装开源光伏支架 +====== + +![][0] + +> 看看这两个你可以为你的家庭建造的开源的光伏支架设计。 + +你可能已经考虑过用太阳能为你的家供电。将太阳光直接转化为电能的太阳能光伏电池板的成本已大幅下降,因此在任何地方都具有经济意义。这就是为什么大公司投入大量太阳能,甚至电力公司也开始安装大型太阳能发电场的原因,因为它的成本低于过时的化石燃料。像大多数房主一样,你想省钱并节省电费,但你可能对前期费用有点畏缩。为了大致了解成本,一个 5 千瓦系统,以 3 美元/瓦的价格为普通家庭供电,成本约为 15,000 美元,而更大的家庭可能需要 10 千瓦才能满足所有电力购买,成本为 30,000 美元。如果你想要电池,成本加倍(你不需要电池,因为大多数太阳能电池阵列连接到电网,但如果电网瘫痪,你的太阳能电池阵列也会瘫痪,直到它重新开启)。支付你未来几十年所有的电费是一种投资,即使你存了很多钱。 + +有一些好消息。首先,美国和加拿大都对太阳能实行了 30% 的税收抵免。此项优惠将价格降至约 2 美元/瓦。其次,[我们之前讨论][1] 过你可以获得一本免费书籍 《[捕捉阳光][2]》,它会引导你完成如何设计自己的系统(你仍然需要一个合格的电工和检查来把它连接到电网)。如果你有一点手艺,你可以将剩余成本削减约 50%。这些成本主要用于材料,包括太阳能电池板、布线、电子设备和支架。令人惊讶的是,对于小型太阳能系统(比如你家的太阳能系统)来说,太阳能电池板的成本下降得如此之低,以至于支架(支撑太阳能电池板的机械结构)的成本可能比面板还高! + +### 开源再次拯救 + +将开源开发范式应用于软件可以加快创新速度、改进产品并降低成本。开源硬件也是如此,甚至在光伏支架这个相对不为人知的领域也是如此。几乎所有的商业光伏支架都是由专有的奇特铝型材制成。它们会花很多钱。如果你有一些没有遮挡的后院,有一些开源的支架解决方案可以选择。 + +### 开源太阳能支架设计 + +第一个 DIY 太阳能支架设计符合以下标准:(1) 由当地可获得的可再生材料制成,(2) 25 年的使用寿命与太阳能保修相匹配,(3)能够由普通消费者制造,(4)能够符合加拿大结构建筑规范(如果你住在没有雪的地方,这有点矫枉过正,但是,嘿,你可能有其他极端天气需要应对,例如飓风),(5)低成本,(6)它是共享的,使用开源许可证。[开源的木质固定倾斜地面安装双面光伏支架设计][3] 在整个北美都适用。与商业专有支架相比,该支架系统可节省 49% 至 77%。然而,支架设计高度依赖于世界各地不同的木材成本。 + +在深入研究这个开源设计之前,请检查你当地的木材成本。 + +![Non-tilting solar rack plans][4] + +如果你更喜欢冒险,你可能会考虑第二种允许改变倾斜角度的设计。[第二项研究][5] 的结果表明,具有最佳可变季节性倾斜角的支架系统具有最佳的终身能量产生,与固定倾斜系统相比,产生的能量多 5.2%(或者,如果最大倾斜角限制为 60°,能量多 4.8%)。固定和可变木制支架系统的电力成本相似,仅为专有商业金属货架的 29%。可变倾斜支架提供了最低成本的选择,即使包括适度的劳动力成本,也可能为 [农业光伏][6] 等应用提供特定优势(即,你可以在面板下面种菜,对于莴苣等耐阴作物来说,能惊人地增加产量)。此设计已通过 [具有 CERN-OHL-S-2.0 许可证的 OSHWA][7] 的认证。 + +![Tilt-adjustable solar racks][8] + +所示的 2 个光伏模块架中的每一个大约有 1 千瓦。所以一所房子大约需要五个。这两篇论文都提供了完整的计算和分步建造说明。 + +正如拥有太阳能系统的任何人都会告诉你的那样,获得负电费是非常有益的。如果你的系统规模能满足你所有的负荷,并且住在该国的净计量地区,就会出现这种情况。请注意,电力公司不会向你付款;额度会一直延续到你在冬天使用它为止。 + +享受一点开源太阳能带来的乐趣! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-solar-power-home + +作者:[Joshua Pearce][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/joshuapearce +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/11/open-source-solar-power +[2]: https://tocatchthesun.com/ +[3]: https://doi.org/10.3390/designs6030041 +[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png +[5]: https://doi.org/10.3390/designs6030054 +[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems +[7]: https://certification.oshwa.org/ca000013.html +[8]: https://opensource.com/sites/default/files/2022-11/tilt.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/23/094653pn7mn3j22ymwymuw.jpg \ No newline at end of file diff --git a/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md deleted file mode 100644 index c73b0ee49b..0000000000 --- a/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md +++ /dev/null @@ -1,61 +0,0 @@ -[#]: subject: "Install open source solar power at home" -[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home" -[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在家里安装开源太阳能 -====== - -你可能已经考虑过用太阳能为您的家供电。将太阳光直接转化为电能的太阳能光伏电池板的成本已大幅下降,因此在任何地方都具有经济意义。这就是为什么大公司投入大量太阳能,甚至电力公司也开始安装大型太阳能发电场的原因,因为它的成本低于过时的化石燃料。像大多数房主一样,你想省钱并节省电费,但你可能对前期费用有点畏缩。为了大致了解成本,以 3 美元/瓦的价格为普通家庭供电的 5kW 系统的成本约为 15,000 美元,而更大的家庭可能需要 10kW 才能抵消所有电力购买,成本为 30,000 美元。如果你想要电池,成本加倍(你不需要电池,因为大多数太阳能电池阵列连接到电网,但如果电网瘫痪,你的太阳能电池阵列也会瘫痪,直到它重新开启)支付你未来几十年所有的电费是一种投资,即使你存了很多钱。 - -有一些好消息。首先,美国和加拿大都对太阳能实行了 30% 的税收抵免。此项优惠将价格降至约 2 美元/W。其次,[Opensource.com 之前讨论][1]过你可以获得一本免费书籍[_捕捉阳光_][2],它会引导你完成如何设计自己的系统(你仍然需要一个合格的电工和检查来把它连接到电网)。如果你有一点手艺,你可以将剩余成本削减约 50%。这些成本主要用于材料,包括太阳能电池板、布线、电子设备和支架。令人惊讶的是,对于小型太阳能系统(比如你家的太阳能系统)来说,太阳能电池板的成本下降得如此之低,以至于支架(支撑太阳能电池板的机械结构)的成本可能比面板还高! - -### 开源再次拯救 - -将开源开发范式应用于软件可以加快创新速度、改进产品并降低成本。开源硬件也是如此,甚至在光伏支架这个相对不为人知的领域也是如此。几乎所有的商业光伏支架都是由专有的奇特铝型材制成。它们会花很多钱。如果你有一些没有遮挡的后院,你有一些开源的支架解决方案可以选择。 - -### 开源太阳能支架设计 - -第一个 DIY 太阳能支架设计符合以下标准:(1) 由当地可获得的可再生材料制成,(2) 25 年的使用寿命与太阳能保修相匹配,(3) 能够由普通消费者制造,(4) 能够 符合加拿大结构建筑规范(如果你住在没有雪的地方,这有点矫枉过正,但是,嘿,你可能有其他极端天气需要应对,例如飓风),(5)低成本,(6)它是共享的 使用开源许可证。[开源的木质固定倾斜地面安装双面光伏支架设计][3]在整个北美都适用。与商业专有支架相比,该支架系统可节省 49% 至 77%。然而,支架设计高度依赖于世界各地不同的木材成本。 - -在深入研究这个开源设计之前,请检查你当地的木材成本。 - -![Non-tilting solar rack plans][4] - -如果你更喜欢冒险,你可能会考虑第二种允许改变倾斜角度的设计。[第二项研究][5]的结果表明,具有最佳可变季节性倾斜角的支架系统具有最佳的终身能量产生,与固定倾斜系统相比,产生的能量多 5.2%(或者,如果最大倾斜角限制为 60°,能量多 4.8%)。固定和可变木制支架系统的电力成本相似,仅为专有商业金属货架的 29%。可变倾斜支架提供了最低成本的选择,即使包括适度的劳动力成本,也可能为[农业光伏][6]等应用提供特定优势(即,你可以在面板下面种菜,对于莴苣等耐阴作物来说,能惊人地增加产量)。此设计已通过[具有 CERN-OHL-S-2.0 许可证的 OSHWA][7] 的认证。 - -图片 - -![Tilt-adjustable solar racks][8] - -所示的 2 个 PV 模块架中的每一个大约有 1kW。所以一所房子大约需要五个。这两篇论文都提供了完整的计算和分步建造说明。 - -正如拥有太阳能系统的任何人都会告诉你的那样,获得负电费是非常有益的。如果你的系统规模能满足你所有的负荷,并且住在该国的净计量地区,就会出现这种情况。请注意,电力公司不会向你付款; 额度会一直延续到你在冬天使用它为止。 - -享受一点开源太阳能带来的乐趣! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-solar-power-home - -作者:[Joshua Pearce][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/joshuapearce -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/21/11/open-source-solar-power -[2]: https://tocatchthesun.com/ -[3]: https://doi.org/10.3390/designs6030041 -[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png -[5]: https://doi.org/10.3390/designs6030054 -[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems -[7]: https://certification.oshwa.org/ca000013.html -[8]: https://opensource.com/sites/default/files/2022-11/tilt.png From 2fef3e44535ea93aadb9b7d318831f822a196d85 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 23 Dec 2022 10:07:21 +0800 Subject: [PATCH 2430/3123] RP @duoluoxiaosheng https://linux.cn/article-15375-1.html --- ...️ Improve your documentation with JavaScript.md | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) rename {translated/tech => published}/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md (83%) diff --git a/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md similarity index 83% rename from translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md rename to published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md index 66c50a8515..b33db8f545 100644 --- a/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md +++ b/published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md @@ -3,31 +3,36 @@ [#]: author: "Jim Hall https://opensource.com/users/jim-hall" [#]: collector: "lkxed" [#]: translator: "duoluoxiaosheng" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15375-1.html" - -使用 JavaScript 增强您的文档 +使用 JavaScript 增强你的文档 ====== -开源软件项目通常拥有非常多样化的用户人群。有些用户非常擅长使用该系统,并且只需要很少的文档。对于这些实力派的用户。文档只需要提供必要的提示,并且可以包含更多的技术信息,比如说在 shell 中运行的命令行。有些用户可能只是初学者。这些用户需要更多的帮助来设置系统并学习如何使用它。 +![][0] + +> 让你的开源项目文档充满活力,从而吸引各种经验水平的用户。 + +开源软件项目通常拥有非常多样化的用户人群。有些用户非常擅长使用该系统,并且只需要很少的文档。对于这些实力派用户,文档只需要提供必要的提示,并且可以包含更多的技术信息,比如说在 Shell 中运行的命令行。有些用户可能只是初学者。这些用户需要更多的帮助来设置系统并学习如何使用它。 写一个同时适合这两个用户群体的文档是令人生畏的。网站文档需要在 “提供详细的技术信息” 和 “提供更多的概述和指导” 之间寻求一个平衡。这是一个很难找到的平衡。如果你的文档不能同时满足这两个用户人群,那么考虑一下另外一个选择 —— 动态文档。 探索在网页中添加一点 [JavaScript][1] 使用户可以选择自己想看的内容。 -### 构建您的内容 +### 构建你的内容 -你可以把例程添加的你的文档中需要同时满足 专家expert初学者novice 的地方。在这个例程中,你可以使用一个叫做 AwesmeProject 的虚构的音乐播放器。 +你可以把例程添加的你的文档中需要同时满足 专家expert初学者novice 的地方。在这个例程中,我们可以使用一个虚构的名为 AwesmeProject 的音乐播放器。 -你可以用 HTML 编写一个简短的安装文档,通过 HTML 的 class 功能同时为专家和初学者提供操作指南。例如,你可以用下面的代码来为专家定义一个段落: +你可以用 HTML 编写一个简短的安装文档,通过 HTML 的 class 功能同时为专家和初学者提供操作指南。 + +例如,你可以用下面的代码来为专家定义一个段落: ```

              ``` -这就同时指派了专家类 和读者类。 你可以用下面的代码来为初学者创建一个相同的段落。 +这同时指派了 “专家类” 和 “读者类”。你可以用下面的代码来为初学者创建一个相同的段落。 ```

              @@ -70,7 +75,7 @@ most Linux distributions. Check your graphical package manager and search for Aw ![Image of html in black text.][2] -我们可在文档中添加一些简单的样式来为 读者reader专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。 +我们可在文档中添加一些简单的样式来为 读者reader专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。 ``` @@ -104,7 +109,7 @@ color: darkblue;

              How to install the software

              ``` -当你在浏览器中查看这个网页时,这些样式有助于这两个段落的突出。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。 +当你在浏览器中查看这个网页时,这些样式有助于突出这两个段落。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。 ![Image of html in red and black text.][3] @@ -223,7 +228,7 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript 作者:[Jim Hall][a] 选题:[lkxed][b] 译者:[duoluoxiaosheng](https://github.com/duoluoxiaosehng) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -235,3 +240,4 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript [4]: https://opensource.com/sites/default/files/2022-12/publishone.novicexpert.png [5]: https://opensource.com/sites/default/files/2022-12/publishone.blue_.png [6]: https://opensource.com/sites/default/files/2022-12/publishone.red_.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/23/100615quu385qf83bu3p35.jpg \ No newline at end of file From 33badf157254835c0f18ef4051f8eb9b7eed6ac5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 24 Dec 2022 15:23:52 +0800 Subject: [PATCH 2431/3123] RP @MjSeven https://linux.cn/article-15377-1.html --- ... How To Securely Transfer Files With SCP In Linux.md | 149 ++++++++---------- 1 file changed, 70 insertions(+), 79 deletions(-) rename {translated/tech => published}/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md (69%) diff --git a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md similarity index 69% rename from translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md rename to published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index b450a31ef7..ca5f6ac817 100644 --- a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -3,18 +3,20 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15377-1.html" 如何在 Linux 中使用 SCP 安全地传输文件 ====== +![][0] + 在网络上文件传输可以通过各种不同的方式和协议来完成。**远程复制文件**最常用的协议是 **Rsync**、**SCP** 和 **SFTP**。在本文中,我们将了解**什么是 SCP** 以及如何在 Linux 和类 Unix 操作系统中**使用 SCP 在本地和远程计算机之间安全地传输文件**。 -### 什么是 SCP? +### 什么是 SCP? -SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。 +SCP,代表 安全复制Secure Copy,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。 使用 `scp` 命令,你可以安全地复制文件或目录: @@ -22,7 +24,7 @@ SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Un - 从远程系统到本地 - 在两个远程系统之间 -使用 scp 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,犯罪者也无法获得任何有意义的数据。 +使用 `scp` 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,作恶者也无法获得任何有意义的数据。 SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。 @@ -30,7 +32,7 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文 根据 openSSH 开发人员的**官方公告**: -> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 sftp 和 rsync 来代替。 +> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 `sftp` 和 `rsync` 来代替。 > > 参考 - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] @@ -38,8 +40,8 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文 另外,SCP 的工作原理与 `cp` 命令完全相同,而 `rsync` 则会判断源目录是否有**结尾斜杠**而出现不同的行为。看一看下面的命令: -- `rsync source destination/` - 将 source 目录复制到 destination 文件夹内。 -- `rsync source/ destination/` - 将 source 目录的内容复制到 destination 文件夹中。 +- `rsync source destination/` - 将 `source` 目录复制到 `destination` 文件夹内。 +- `rsync source/ destination/` - 将 `source` 目录的内容复制到 `destination` 文件夹中。 所以,你必须反复检查是否在路径中添加了斜杠。 @@ -49,7 +51,7 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文 SCP 的通用语法如下: -```bash +``` scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target ``` @@ -91,9 +93,9 @@ scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath ``` -注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数传递运行 scp 命令的系统的流量。 +注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数让流量经过你运行 `scp` 命令的系统。 -本地将目录从一个远程系统复制到另一个远程系统: +从你的本地系统将一个远程系统的目录复制到另一个远程系统: ``` scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath @@ -103,17 +105,17 @@ scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath SCP 命令最常用的参数有: -- **`-C`** : 启用压缩。C 代表压缩。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。 -- **`-c `** : c 代表加密。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。 -- **`-i `** : i 代表身份文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 -i 参数指定身份文件或私钥。 -- **`-l limit`** : l 代表极限带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 **`Kbit/s`**。 -- **`-F `** : 有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件。 -- **`-P port`** - P 代表端口。注意,这是大写的 P。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。 -- **`-p`** : 如果希望保留原始文件的修改时间、访问时间和模式,你需要使用 -p 参数。注意是小写 p。 -- **`-r`** : 递归复制整个目录。 -- **`-B`** : B 代表批处理模式。它用于在传输文件时选择批处理模式。可以防止询问密码。 -- **`-S program`** : 用于加密连接的程序名称。 -- **`-v`** : v 代表详细。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。 +- `-C`:启用压缩。`C` 代表 压缩Compression。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。 +- `-c `:`c` 代表 加密Cipher。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。 +- `-i `:`i` 代表 身份Identity 文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 `-i` 参数指定身份文件或私钥。 +- `-l limit`:`l` 代表 限制Limit 带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 `Kbit/s`。 +- `-F `:有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件File。 +- `-P port`:`P` 代表 端口Port。注意,这是大写的 `P`。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。 +- `-p`:如果希望 保留Preserve 原始文件的修改时间、访问时间和模式,你需要使用 `-p` 参数。注意是小写 `p`。 +- `-r`:递归Recursively 复制整个目录。 +- `-B`:`B` 代表 批处理Batch 模式。它用于在传输文件时选择批处理模式。可以防止询问密码。 +- `-S program`:用于加密连接的 程序Program 名称。 +- `-v`:`v` 代表 详细Verbose。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。 SCP 有很多参数,你可以查看它的手册页来了解其他参数。让我们看一些**有用的 scp 命令示例**。 @@ -122,14 +124,14 @@ SCP 有很多参数,你可以查看它的手册页来了解其他参数。让 - `scp` 命令依赖于 `ssh` 进行安全的文件传输。因此,你必须有一个 **ssh 密钥**或**密码**才能向远程系统进行身份验证。 - 为了能传输文件,你必须对**源文件有读权限**,对**目标位置有写权限**。 - `scp` 命令在写入前不会检查目标位置。目标位置中具有相同名称的任何文件都将被**覆盖而不通知**。 -- 为了能够区分本地和远程位置,使用**冒号**(`:`)。 +- 为了能够区分本地和远程位置,使用**冒号**(`:`)。 - 传输大文件时,建议在 **[Screen][3]** 或 **[Tmux][4]** 会话内启动任务。 ### 在 Linux 中使用 SCP 传输文件 正如我所说,我们可以使用 `scp` 命令将文件或目录从本地复制到远程系统,反之亦然,或者在两台远程系统之间复制文件或目录。 -### 1. 使用 SCP 从本地系统复制文件到远程系统 +#### 1. 使用 SCP 从本地系统复制文件到远程系统 使用 `scp` 命令将文件从本地复制到远程系统,运行: @@ -137,7 +139,7 @@ SCP 有很多参数,你可以查看它的手册页来了解其他参数。让 $ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/ ``` -**示例输出:** +示例输出: ``` ostechnix@192.168.1.40's password: @@ -146,10 +148,10 @@ File1.txt 100% 104 814.0KB 让我们分析一下上面的命令,看看每个参数都做了什么。 -- **`File1.txt`** - 源文件 -- **`ostechnix`** - 远程系统的用户名 -- **`192.168.1.40`** - 远程系统的 IP 地址 -- **`/home/ostechnix/`** - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。 +- `File1.txt` - 源文件 +- `ostechnix` - 远程系统的用户名 +- `192.168.1.40` - 远程系统的 IP 地址 +- `/home/ostechnix/` - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。 你还可以修改目标文件的名称。下面的命令将 `File1.txt` 传输到目的地,保存为 `myfile.txt`。 @@ -159,17 +161,15 @@ $ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt ![将文件从本地复制到远程系统][5] -将文件从本地复制到远程系统 - #### 2. 使用 SCP 从本地系统复制多个文件到远程系统 使用 `scp` 命令将多个文件从本地系统传输到远程系统,运行: -```bash +``` $ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/ ``` -**示例输出:** +示例输出: ``` ostechnix@192.168.1.40's password: @@ -179,13 +179,11 @@ File2.txt 100% 496 6.3MB ![从本地复制多个文件到远程系统][6] -从本地复制多个文件到远程系统 - 这里: -- **`File1.txt`** 和 **`File2.txt`** - 源文件名 -- **`ostechnix@192.168.1.40`** - 远程系统的用户名和 IP 地址 -- **`/home/ostechnix`** - 目标文件的路径 +- `File1.txt` 和 `File2.txt` - 源文件名 +- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址 +- `/home/ostechnix` - 目标文件的路径 如果文件具有相同的扩展名,你可以使用以下替代命令来实现相同的目标。 @@ -201,24 +199,22 @@ $ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 3. 使用 SCP 从本地到远程系统递归复制目录 -递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 **`-r`** 参数。 +递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 `-r` 参数。 -```bash +``` $ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/ ``` ![从本地复制目录到远程系统][7] -从本地复制目录到远程系统 - -上述命令将整个 **`Documents`** 目录包括其内容复制到目标系统。 +上述命令将整个 `Documents` 目录包括其内容复制到目标系统。 其中, -- `-r` : 递归复制文件和目录,包括子目录及其内容 -- `Documents` : 源目录名称 -- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址 -- **`/home/ostechnix`** : 目标目录的路径 +- `-r` - 递归复制文件和目录,包括子目录及其内容 +- `Documents` - 源目录名称 +- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址 +- `/home/ostechnix` - 目标目录的路径 #### 4. 用 SCP 将文件从远程系统传输到本地 @@ -232,14 +228,12 @@ $ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/ 其中 -- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址 -- `/home/ostechnix/File.txt` : 远程系统文件的绝对路径 +- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址 +- `/home/ostechnix/File.txt` - 远程系统文件的绝对路径 - `Downloads` - 本地保存复制文件的位置 ![从远程系统传输文件到本地][8] -从远程系统传输文件到本地 - #### 5. 使用 SCP 将多个文件从远程系统传输到本地 将多个文件从远程系统复制到本地,在**花括号内**注明文件的绝对路径,如下所示: @@ -250,21 +244,19 @@ $ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/ ![将多个文件从远程系统传输到本地][9] -将多个文件从远程系统传输到本地 - 上述命令将从远程系统的 `/home/ostechnix/` 目录中复制 `File1.txt` 和 `File2.txt` 到本地的 `Downloads` 目录中。 注意,**花括号内的逗号后面没有空格**。 #### 6. 从远程系统递归复制目录到本地 -使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 **`-r`** 参数。 +使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 `-r` 参数。 ``` $ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/ ``` -上述命令将从远程系统将整个 **`Documents`** 目录复制到本地的 **`Downloads`** 目录。 +上述命令将从远程系统将整个 `Documents` 目录复制到本地的 `Downloads` 目录。 #### 7. 使用 SCP 在两台远程计算机之间复制文件 @@ -280,12 +272,12 @@ $ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kuma - `senthil@192.168.1.40` - 文件源端远程系统的用户名和 IP 地址 - `/home/senthil/File1.txt` - 复制的文件名及其位置 -- **`kumar@192.168.1.20`** - 复制文件到目标端的用户名和 IP 地址 +- `kumar@192.168.1.20` - 复制文件到目标端的用户名和 IP 地址 - `/home/kumar` - 在目标端上保存复制文件的位置 上述命令将从远程主机 `192.168.1.40` 复制 `/home/senthil/File1.txt` 到 `192.168.1.20` 上的 `/home/kumar/` 目录。 -在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 **`-3`** 参数,如下所示: +在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 `-3` 参数,如下所示: ``` $ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ @@ -293,7 +285,7 @@ $ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/k #### 8. 使用 SCP 复制文件时启用压缩 -到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 **`-C`** 参数在传输文件时启用压缩。 +到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 `-C` 参数在传输文件时启用压缩。 ``` $ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -305,7 +297,7 @@ $ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 9. 使用 SCP 传输文件时限制带宽 -我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 字节 = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。 +我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 Byte = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。 ``` $ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -315,7 +307,7 @@ $ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 10. 使用 SCP 复制文件时使用不同端口 -作为系统管理员,出于安全原因,你可能在远程服务器上[**更改了 SSH 协议的默认端口**][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:**大写的 P**。 +作为系统管理员,出于安全原因,你可能在远程服务器上 [更改了 SSH 协议的默认端口][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:大写的 `P`。 ``` $ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -323,7 +315,7 @@ $ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 11. 使用 SCP 复制文件时使用不同的加密方法 -默认情况下,SCP 使用 **`AES-128`** 对文件进行加密。如果你想使用不同的加密方法,使用 **`c`** 参数。 +默认情况下,SCP 使用 `AES-128` 对文件进行加密。如果你想使用不同的加密方法,使用 `c` 参数。 例如,如果你想使用 **3des-cbc** 加密方法,命令如下所示: @@ -337,7 +329,7 @@ $ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/ $ ssh -Q cipher localhost | paste -d, -s - ``` -**示例输出:** +示例输出: ``` 3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com @@ -345,7 +337,7 @@ $ ssh -Q cipher localhost | paste -d, -s - #### 12. 在详细模式下使用 SCP 复制文件 -如果你想知道使用 scp 复制文件时幕后发生了什么,你可以使用 **`-v`** 参数。使用详细模式传输文件时,终端上会显示执行 SCP 命令执行的每一步过程。这在故障排除时很方便。 +如果你想知道使用 `scp` 复制文件时幕后发生了什么,你可以使用 `-v` 参数。使用详细模式传输文件时,终端上会显示执行 `scp` 命令执行的每一步过程。这在故障排除时很方便。 ``` $ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -353,13 +345,11 @@ $ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ 在详细模式下发送文件时,你将看到大量输出,如下所示: -![在 Verbose 模式下使用 SCP 复制文件][11] - -在详细模式下使用 SCP 复制文件 +![在详细模式下使用 SCP 复制文件][11] #### 13. 在安静模式下使用 SCP 传输文件 -我们可以使用 **`-q`** 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。 +我们可以使用 `-q` 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。 ``` $ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -367,7 +357,7 @@ $ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 14. 使用 SCP 传输文件时保留文件属性 -使用 **`-p`** 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。 +使用 `-p` 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。 ``` $ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -377,7 +367,7 @@ $ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ SSH 同时支持基于密码和密钥的身份验证。密钥是 Linux 环境中使用最广泛的身份验证方法。 -如果你想在传输文件时使用基于密钥的身份验证,使用 **`-i`** 参数指定身份文件或私钥。 +如果你想在传输文件时使用基于密钥的身份验证,使用 `-i` 参数指定身份文件或私钥。 ``` $ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -385,7 +375,7 @@ $ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 16. 使用不同的 ssh 配置文件 -在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 **`-F`** 参数使用不同的 `ssh_config` 文件。 +在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 `-F` 参数使用不同的 `ssh_config` 文件。 ``` $ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -393,7 +383,7 @@ $ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/os #### 17. 使用 IPv4 或 IPv6 复制文件 -在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 **`-4`** 参数,IPv6 网络添加 **`-6`** 参数可以实现这一点。 +在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 `-4` 参数,IPv6 网络添加 `-6` 参数可以实现这一点。 ``` $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -403,7 +393,7 @@ $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 问题 1:什么是 SCP? -**回答:** SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 +**回答:SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 #### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机? @@ -461,7 +451,7 @@ scp *.txt User@RemoteHost:/some/remote/directory #### 问题 6:可以压缩文件吗? -当然。使用 **`-C`** 压缩文件。文件会在源端压缩,在目标端自动解压缩。 +当然。使用 `-C` 压缩文件。文件会在源端压缩,在目标端自动解压缩。 ``` scp -C /some/large/file User@RemoteHost:/some/remote/directory @@ -469,7 +459,7 @@ scp -C /some/large/file User@RemoteHost:/some/remote/directory #### 问题 7:可以保留文件属性吗? -保留原始文件的修改时间、访问时间和模式等文件属性,使用 **`-p`** 参数。 +保留原始文件的修改时间、访问时间和模式等文件属性,使用 `-p` 参数。 ``` scp -p file.txt User@RemoteHost:/some/remote/directory @@ -477,7 +467,7 @@ scp -p file.txt User@RemoteHost:/some/remote/directory #### 问题 8: 可以使用其他端口吗? -当然。SCP 配合 **`-P`** 参数允许你使用其他端口。 +当然。SCP 配合 `-P` 参数允许你使用其他端口。 ``` scp -P 2022 file.txt User@RemoteHost:/some/remote/directory @@ -485,7 +475,7 @@ scp -P 2022 file.txt User@RemoteHost:/some/remote/directory #### 问题 9: 可以使用不同的加密方法吗? -当然。使用 **`-c`** 参数。 +当然。使用 `-c` 参数。 ``` scp -c 3des-cbc User@RemoteHost:/some/remote/directory @@ -505,7 +495,7 @@ ssh -Q cipher localhost | paste -d, -s - #### 问题 12:可以从 Windows 系统传输文件到 Linux 吗? -当然。使用 **PSCP** 程序将文件从 windows 传输到 Linux 平台,你也可以使用 **WinSCP**。 +当然。使用 `PSCP` 程序将文件从 windows 传输到 Linux 平台,你也可以使用 `WinSCP`。 ### 总结 @@ -520,7 +510,7 @@ via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/ 作者:[sk][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -537,3 +527,4 @@ via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/ [9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png [10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ [11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/24/152224vy4glx9x39mtth9b.jpg \ No newline at end of file From 106ea7e63a340ff135eb3192121afdfdafd1bb8a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 24 Dec 2022 15:30:55 +0800 Subject: [PATCH 2432/3123] R --- ...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index ca5f6ac817..bc00a197f5 100644 --- a/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -393,7 +393,7 @@ $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 问题 1:什么是 SCP? -**回答:SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 +SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 #### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机? From 3e58f67620e6e7b62d0746d8606ce66a1ee8ee51 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 24 Dec 2022 16:15:50 +0800 Subject: [PATCH 2433/3123] RP @geekpi https://linux.cn/article-15378-1.html --- ...your Linux PC with the PCManFM file manager.md | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) rename {translated/tech => published}/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md (65%) diff --git a/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md similarity index 65% rename from translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md rename to published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md index 760c9511e0..1c0ce3b0b9 100644 --- a/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md +++ b/published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md @@ -3,13 +3,17 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15378-1.html" -使用 PCManFM 文件管理器简化你的 Linux PC +使用 PCManFM 文件管理器让你的 Linux PC 轻装上阵 ====== +![][0] + +> PCMan 文件管理器是一个让旧电脑感觉更有效率的好选择。 + PCMan 文件管理器,或简称 PCManFM,是一个功能齐全的快速轻量级文件管理器。它是为 [LXDE][1] 桌面环境开发的,但它是一个独立的应用,可以与你选择的桌面或窗口管理器一起使用。 ### 安装 PCManFM @@ -28,9 +32,9 @@ $ sudo apt install pcmanfm ![Image of the PCMan file manager.][2] -PCManFM 不必替换你的桌面文件管理器,但某些发行版假定当你安装“第三方”文件管理器时,你希望它优先于默认设置。根据你使用的桌面,有不同的方法来设置默认文件管理器。通常,它位于**默认应用**下的**系统设置**中。 +不必用 PCManFM 替换你的桌面文件管理器,但某些发行版认为当你安装“第三方”文件管理器时,你会希望它优先于默认的文件管理器。根据你使用的桌面,有不同的方法来设置默认文件管理器。通常,它位于 系统设置System Settings 下的 默认应用Default Applications 中。 -如果你的桌面环境或窗口管理器没有选择默认应用的界面,你可以在 `~/.local/share/applications/mimeapps.list` 文件中设置你的首选项。要将文件管理器指定为默认,请将其放在 `[Default Applications]` 部分的顶部,首先指定文件类型,然后指定你像用于打开的应用文件的名称(在 `/usr/share/applications` 下): +如果你的桌面环境或窗口管理器没有选择默认应用的界面,你可以在 `~/.local/share/applications/mimeapps.list` 文件中设置你的首选项。要将一个文件管理器指定为默认的,请将其放在 `[Default Applications]` 部分的顶部,首先指定文件类型,然后指定你想用于打开的应用文件的名称(在 `/usr/share/applications` 下): ``` inode/directory=myfilemanager.desktop; @@ -38,9 +42,9 @@ inode/directory=myfilemanager.desktop; ### PCManFM -如果您是 GNOME 2 或 Mate 项目的 [Caja 文件管理器][3]的粉丝,那么 PCManFM 是一个不错的选择。PCManFM 在设计上很像 Caja,但它不像 Caja 那样绑定到桌面,所以它甚至可以在最新的 GNOME 桌面上使用。 +如果你是 GNOME 2 或 Mate 项目的 [Caja 文件管理器][3] 的粉丝,那么 PCManFM 是一个不错的选择。PCManFM 在设计上很像 Caja,但它不像 Caja 那样绑定到桌面,所以它甚至可以在最新的 GNOME 桌面上使用。 -PCManFM 的默认布局在窗口顶部附近有一个有用的工具栏,一个提供对常用目录和驱动器的快速访问的侧面板,以及一个包含有关你当前选择的详细信息的状态栏。你可以使用**视图**菜单隐藏或显示这些元素中的任何一个。 +PCManFM 的默认布局在窗口顶部附近有一个有用的工具栏,一个提供对常用目录和驱动器的快速访问的侧面板,以及一个包含有关你当前选择的详细信息的状态栏。你可以使用 视图View 菜单隐藏或显示这些元素中的任何一个。 ### 选项卡和面板 @@ -56,7 +60,7 @@ PCManFM 界面的另一个不错的功能是它能够将一个窗口分成两个 ### 使用 PCMan 进行文件管理 -PCManFM 是一款很棒的小型文件管理器,具有你日常所需的所有基本功能。它是你可能会觉得过于复杂的文件管理器的自然替代品,也是[旧计算机][5]上的一个很好的选择,这些电脑可能对不断绘制缩略图、刷新和生成动画的文件管理器感到挣扎。PCMan 专注于文件管理器的核心任务:管理文件。在你的 Linux 电脑上试试吧。 +PCManFM 是一款很棒的小型文件管理器,具有你日常所需的所有基本功能。它是你可能会觉得过于复杂的文件管理器的自然替代品,也是 [老旧计算机][5] 上的一个很好的选择,这些电脑可能对不断绘制缩略图、刷新和生成动画的文件管理器举步维艰。PCMan 专注于文件管理器的核心任务:管理文件。在你的 Linux 电脑上试试吧。 -------------------------------------------------------------------------------- @@ -65,7 +69,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm 作者:[Seth Kenlon][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/) 荣誉推出 @@ -76,3 +80,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm [3]: https://opensource.com/article/22/12/linux-file-manager-caja [4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png [5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity +[0]: https://img.linux.net.cn/data/attachment/album/202212/24/161333mssnim76ssugskie.jpg \ No newline at end of file From 6f08d9239d6f447c26953e1a5e0cc49c61dd9aaa Mon Sep 17 00:00:00 2001 From: wangcharley Date: Sat, 24 Dec 2022 20:16:52 +0800 Subject: [PATCH 2434/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221221.3 ⭐️⭐️ Open source solutions for EV charging.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md index 249f89ff02..9521dc5b64 100644 --- a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md +++ b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/open-source-ev-charging" [#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "duoluoxiaosheng" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -52,7 +52,7 @@ via: https://opensource.com/article/22/12/open-source-ev-charging 作者:[Joshua Pearce][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 17ebde2bd7f73ee541d022d49ad11e591faec7ff Mon Sep 17 00:00:00 2001 From: wangcharley Date: Sat, 24 Dec 2022 21:14:33 +0800 Subject: [PATCH 2435/3123] 202212242114 --- .../20221221.3 ⭐️⭐️ Open source solutions for EV charging.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md index 9521dc5b64..45bf829d5e 100644 --- a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md +++ b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md @@ -12,6 +12,8 @@ Open source solutions for EV charging Maybe you hate pumping gas in the cold (or heat), or you care about the environment. Maybe the latest gas prices and general inflation has you thinking more about stretching your money. Perhaps you simply think electric vehicles (EVs) look cool. No matter the reason, you're excited about your next vehicle being an EV and you're not alone! The EV market share is set to [expand to 30% by 2040][1]. The [US government provides a handy comparison tool][2] to show that the cost of ownership of an EV easily beats owning and operating fossil fuel vehicles. Despite this, EV charging costs can still hit you hard in your wallet. +你讨厌在寒冷或者酷热的时候加油,你关心环境问题。最新的油价和通货膨胀让你更多考虑挣钱的问题 + One of the most elegant ways to solve cost problems in general is to apply open source principles to accelerate innovation. Fortunately for you, this has been done in the EV charging area to find a way to get low-cost electricity and low-cost chargers. To control the costs of EV charging, first you need low-cost electricity. In the old days, that would mean going from oil to coal, which is not a step up. Today, as it turns out, [solar photovoltaic (PV)][3] devices that convert sunlight directly into electricity normally provide the lowest-cost electricity. Coal companies are going bankrupt because they can no longer compete with clean solar power. This is also why [solar power is seeing explosive growth all over the world][4]. Many homeowners are putting [solar panels on their roofs][5] or on ground mounts in the backyard to cover all of their home’s electric needs. But how can you charge your EV with solar energy if you have limited roof area or a small backyard? From e8aa3554bfa93af67c92b52244c45f393f3e65a0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 25 Dec 2022 11:41:50 +0800 Subject: [PATCH 2436/3123] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Unfortunately, Komodo IDE is now Open Source!.md | 89 ------------------- ...2.12 (S15Pup) Arrives Based on Slackware 15.md | 82 ----------------- ... Open Source Marking the End of the Project.md | 73 --------------- 3 files changed, 244 deletions(-) delete mode 100644 sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md delete mode 100644 sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md delete mode 100644 sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md diff --git a/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md b/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md deleted file mode 100644 index 96da969f33..0000000000 --- a/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md +++ /dev/null @@ -1,89 +0,0 @@ -[#]: subject: "Unfortunately, Komodo IDE is now Open Source!" -[#]: via: "https://news.itsfoss.com/komodo-ide-open-source/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Unfortunately, Komodo IDE is now Open Source! -====== - -Komodo IDE is now open-source and not at a great time. Curious to take a peek at the source code? Learn more here. - -![Unfortunately, Komodo IDE is now Open Source!][1] - -Komodo IDE is a popular integrated development environment for dynamic programming languages that was introduced back in May 2000. - -Used by many programmers around the world, it has proved to be quite helpful over the years. - -Unfortunately, all good things end. - -This is the case with Komodo IDE, it has now been retired, and all development has ceased. - -But there's a silver lining to this 😃 - -The company behind it, called '[ActiveState][2]', has now made the code openly available for anyone to use and modify. - -> 💡 Similar to "Komodo Edit" application, which was made open-source in 2008. - -They have cited numerous factors for their decision, which I will explain. - -### So, Why Open-Source it Now? - -![komodo ide][3] - -ActiveState felt that it was becoming difficult to maintain Komodo IDE without encountering various compatibility issues on newer systems. - -**What were the contributing factors?:** There were many factors that led to this. Take, for instance, the frameworks on which Komodo was built, '_XUL and XULRunner_'; they were retired by Mozilla back in 2016. - -Then there was the amount of effort needed to make Komodo compatible with newer systems. They would have to completely rewrite Komodo using a newer framework they felt was not feasible. - -And the final nail in the coffin was the fact that there are already a lot of free code editors available on the market right now doing better. They feel that '_it’s not a good business to be in anymore_'. - -**What now?:** ActiveState have made the whole Komodo IDE codebase available on their [GitHub repo][4] without the revision history. - -They have provided 3.2 million lines of code that consist of various programming languages such as Python, JavaScript, XUL, HTML, C++, and more. - -Anyone can copy, change, and use the code as they see fit. - -The forums for Komodo will be kept open for a year from their [original announcement][5], as it contains a treasure trove of information relating to Komodo. - -They are also open to moving the content to a different platform if anyone is willing to take on the task of managing it. - -On this topic, one of the employees from the Komodo dev team, Carey Hoffman, had this to add: - -> The extensive existing help information in the forums can act as a significant knowledge base for users and continue to be a central place to ask questions of the community and receive answers. I’ll very likely be there periodically on my own time to help where I can, such as when people are trying to build Komodo at home, or having difficulty making any kind of code edits. - -### Community Gets a Chance - -This can come in pretty handy for the community in general, as people can now try their hand at creating something truly special out of the code for Komodo. - -A Reddit user, [yvrelna][6] mentions: - -> I never used Komodo, but it's great to hear that Komodo is now freed from its cage. Companies should do this more often. If they're unwilling to support a software anymore, they should just release it as open source.It would've been better if the software is open source to begin with of course, but there's really no reason for a company to retain their codebase closed if they have no interest in maintaining it.Only thing is that they should've done it sooner, when there are still enough people that still cares about the software to possibly pick it up to maintain it. - -Indeed, the user is not wrong here; companies should go the extra mile by making code for their deprecated software open so that the community has a chance to create something out of it or even maintain it for the long term. - -ActiveState seems to have understood this sentiment and has thanked its users by open-sourcing Komodo. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/komodo-ide-open-source/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/komodo-ide-goes-open-source.png -[2]: https://www.activestate.com/ -[3]: https://news.itsfoss.com/content/images/2022/12/Komodo_IDE.png -[4]: https://github.com/ActiveState/OpenKomodoIDE -[5]: https://www.activestate.com/blog/activestate-komodo-ide-now-open-source/ -[6]: https://www.reddit.com/user/yvrelna/ diff --git a/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md b/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md deleted file mode 100644 index 980ad2ec0a..0000000000 --- a/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15" -[#]: via: "https://debugpointnews.com/puppy-linux-22-12-s15pup/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15 -====== - -![][1] - -**A new Puppy Linux flavour (Puppy Linux 22.12 S15Pup) is now available based on Slackware 15.** - -Puppy Linux is a super lightweight distro which runs entirely on RAM and requires a very low memory footprint. It is almost loaded with all the necessary applications for everything you need. It is quite remarkable that the Puppy Linux team managed to package all these applications, which run in low memory and surprisingly within 400 MB of ISO size. There are many variants of Puppy Linux based on Ubuntu and other distros – thanks to the fantastic Puppy Builder Woof-CE. - -### Puppy Linux 22.12 (s15pup): What’s New - -The recent release of Puppy Linux 22.12 is based on the Slackware 15.0 components, which were released in February 2022. At its core, the JWM (Joe’s Window Manager) provides flexibility and good performance in Puppy Linux because it runs off the RAM. - -![Puppy Linux 22.12 based on Slackware 15][2] - -Based on Slackware, Puppy 22.12 comes with Linux Kernel LTS series 5.15 for the 64-bit. And the 5.10 for the 32-bit system. The desktop feel is the same as other Puppy flavours based on the JWM 2.4.3. The JWM is used in other distro-based Puppy flavours as well. - -In addition, FFmpeg is loaded with Mplayer for your media playing needs – if at all required in a LIVE system. Also, the “Light” web browser, based on Firefox, gives you easy and performant access to the internet. Alternative browser installation options are also present. - -Furthermore, Puppy Linux 22.12 s15pup pre-loads most of the LXDE apps and components for the overall lightweight experience, such as Lxrandr 0.3.2, Lxtask 0.1.10 and Lxterminal 0.4.0. - -ISO of this Slackware flavour is less than 400 MB in size, and, amazingly, all of the following applications are pre-loaded on it. Here’s a summary of the key packages in this version: - -| Abiword 3.0.1 | Gparted 1.3.1 | Parcellite 1.2.1 | -| Bash 5.1.016 | Grep 3.7 | Rox-filer 17w | -| Busybox 1.35.0 | Gtk+2 2.24.33 | Samba 4.12.15 | -| Cups 2.4.2 | Gtk+3 3.24.31 | Sed 4.8 | -| Curl 7.86.0 | Gtkdialog 0.8.5a | Sylpheed 3.7.0 | -| Dhcpcd 9.4.1 | Icu4c 69.1 | Syslinux 4.07 | -| Didiwiki 0.8 | Jwm 2.4.3 | Transmission 2.60 | -| Evince 2.32.0 | Lxrandr 0.3.2 | Util-linux 2.37.4 | -| Ffmpeg 4.4.3 | Lxtask 0.1.10 | Viewnior 1.7 | -| Gcc 11.2.0 | Lxterminal 0.4.0 | Xdelta 30.16 | -| Geany 1.35 | Mesa 21.3.5 | Xsane 0.999 | -| Ghostscript 9.55.0 | MPlayer 1.4 | -| Glib2 2.70.3 | Mtpaint 3.50.09 | -| Glibc 2.33 | Ncurses 6.3 | -| Gnumeric 1.10.17 | Openssl 1.1.1s | - -### Download - -Puppy Linux is one of those few distros which still provides a 32-bit installation file alongside 64-bit. You can download this version from the following links for the respective architectures. - -- [S15Pup 64-bit – based on Slackware 15.0][3] -- [S15Pup 32-bit – based on Slackware 15.0][4] -- [ScPup 64-bit – based on Slackware current][5] -- [ScPup 32-bit – based on Slackware current][6] - -If you are running it on a virtual machine, make sure to change the CPU architecture to 64-bit before installing it. - -_Via [release announcement][7] & [release notes][8]_ - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/puppy-linux-22-12-s15pup/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/pups15head.jpg -[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Puppy-Linux-22.12-based-on-Slackware-15.jpg -[3]: https://sourceforge.net/projects/spup/files/S15Pup64/ -[4]: https://sourceforge.net/projects/spup/files/S15Pup32/ -[5]: https://sourceforge.net/projects/spup/files/ScPup64/ -[6]: https://sourceforge.net/projects/spup/files/ScPup/ -[7]: https://forum.puppylinux.com/viewtopic.php?t=7464&sid=5ee2c343a8dbc0babc476139d188c50f -[8]: http://distro.ibiblio.org/puppylinux/puppy-s15pup/release-S15Pup-22.12.htm diff --git a/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md b/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md deleted file mode 100644 index d18a3e8871..0000000000 --- a/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md +++ /dev/null @@ -1,73 +0,0 @@ -[#]: subject: "Microsoft Soundscape to Go Open Source Marking the End of the Project" -[#]: via: "https://news.itsfoss.com/microsoft-soundscape-open-source/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Microsoft Soundscape to Go Open Source Marking the End of the Project -====== - -Microsoft makes an excellent decision to open-source its innovative audio app. - -![Microsoft Soundscape to Go Open Source Marking the End of the Project][1] - -The [Soundscape project][2] was a fascinating experimental research effort undertaken by Microsoft to use sound-based technology to help visually impaired people navigate their surroundings. - -Launched back in 2017, it used 3D audio cues and augmented reality to enhance a user's awareness by guiding them through places. - -Soon after, they also launched an iOS app to showcase their progress. - -The app could use the iPhone's sensors to read out points of interest as the user walked past something or even roads and intersections to help them figure out where they were. - -**Unfortunately,** with a [recent announcement][3], Microsoft has decided not to continue further with the development of this project and will be making the **code open-source**. - -### Microsoft Soundscape Source Code to be Available on GitHub - -![Microsoft Soundscape - an Illustrated Demonstration][4] - -**What Happened?:** Well, according to Microsoft, it's natural to either stop or transition a few projects as they evolve their research portfolio. - -With this move, Microsoft hopes the community will take over and benefit from the 'novel experiences' they helped develop. - -They also add that: - -> As Microsoft Research continues to expand into new accessibility innovation areas, we hope the open-source software release of the Soundscape code supports the community in further developing confidence and utility of spatial audio navigation experiences. - -You know, this move is quite similar to the one made by ActiveState recently, where they discontinued Komodo IDE and made the code open-source to say thank you to its users. - -**What's Next?:** Starting **January 3, 2023**, the source code for Soundscape will be made available on GitHub. Developers are free to use the code in any manner they see fit. - -Furthermore, the iOS app will also be discontinued, and existing users can use it until June 2023. - -They will also stop taking new feature requests and only focus on bug fixes and general maintenance of the iOS app until the time comes. - -As for the Microsoft Soundscape Authoring app, it will no longer be available after January 17, 2023. - -Microsoft has also clarified that its other offerings would remain unaffected. - -### Community-Driven Approach Wins - -As was the case with Komodo IDE, a community-driven approach can be of great help for deprecated software. - -Where the community can get together and create something truly unique while also helping the end users add value to their lives. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/microsoft-soundscape-open-source/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/microsoft-soundscape-goes-open-source.png -[2]: https://www.microsoft.com/en-us/research/product/soundscape/ -[3]: https://www.microsoft.com/en-us/research/blog/microsoft-soundscape-new-horizons-with-a-community-driven-approach/ -[4]: https://youtu.be/v5DXykmOdJ8 From 60425c91ec1adae0860d2b8a63e047914dd0148d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 25 Dec 2022 12:10:31 +0800 Subject: [PATCH 2437/3123] ALL @wxy https://linux.cn/article-15380-1.html --- ...e Picker Adds Thumbnail View After 18 Years.md | 88 +++++++++++++++++ ...e Picker Adds Thumbnail View After 18 Years.md | 94 ------------------- 2 files changed, 88 insertions(+), 94 deletions(-) create mode 100644 published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md delete mode 100644 sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md diff --git a/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md new file mode 100644 index 0000000000..945591e75c --- /dev/null +++ b/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md @@ -0,0 +1,88 @@ +[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years" +[#]: via: "https://news.itsfoss.com/gnome-file-picker/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15380-1.html" + +虽迟但到!GNOME 的文件选取器在 18 年后增加了缩略图视图 +====== + +> 一个长期缺位、也是急需的功能请求,终于通过了! + +![][1] + +如今,程序的用户界面是非常重要的;即使是最简单的交互也能决定用户的体验。 + +GNOME 的文件选取器在查看文件时缺乏适当的缩略图预览,而是依赖于一个普通的列表视图。这对许多人来说可能是不直观的。 + +多年来,缺乏这一功能也成了许多段子和讨论的主题。 + +但是现在,在最初的 [功能请求][2] 提出 18 年之后,GNOME 终于可以支持一个合适的缩略图视图了。 + +让我们来看看这个即将到来的对 GNOME 文件选取器的改变。 + +### 该功能将随着 GNOME 44 到来 + +![GNOME 文件缩略图视图][3] + +正如这个由 GNOME 开发者 [Matthias Clasen][4] 提供的早期构建截图所展示的。GNOME 上的文件选取器将具有一个缩略图视图。 + +这就是它在 GNOME 43 上的样子: + +![GNOME 43 的文件选取器][5] + +**如何访问它?** 在 GNOME 上文件选取器的网格视图里,可以显示文件和文件夹的缩略图预览。 + +现在将很容易区分文件管理器中的项目;不再需要打开一个文件来查看它包含的内容了! + +![GNOME 文件缩略图视图选取器][6] + +当这个功能到来时,你可以通过点击右上方的新视图切换按钮来启用它。 + +**有什么变化?** 对于一个简单的功能添加来说,18 年是一个很长的时间。众多的技术原因使其实施成为一项艰巨的任务。 + +但我很高兴,它终于来了。😃 + +使之成为可能的原因之一是最近在 GTK 代码库中进行的废弃和现代化工作。 + +> 💡 GTK 是 GNOME 的一切的核心的工具箱。 + +而且,这些变化导致 [GtkListView][7] 和 [GtkGridView][8] 使用相同的数据模型来实现这个功能。 + +**预期何时?** 这个历史上的 [合并请求][9] 已经被接受,并为其引入 GNOME 铺平道路。 + +你可以期待它在 2023 年的某个时候与 GNOME 44 一起到来。 + +我很期待!😁 + +我们将把它作为 GNOME 44 功能提供的一部分来报道。所以,请继续关注我们的报道吧! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-file-picker/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png +[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154 +[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png +[4]: https://twitter.com/matthias_clasen +[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png +[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png +[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c +[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c +[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163 +[10]: https://mastodon.social/@itsfoss +[11]: https://twitter.com/itsfoss2 +[12]: https://notion.grsm.io/front-static/logo-ios.png +[13]: https://www.notion.so/front-static/meta/default.png diff --git a/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md deleted file mode 100644 index 2917f3aed7..0000000000 --- a/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years" -[#]: via: "https://news.itsfoss.com/gnome-file-picker/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years -====== - -A long-lost request, and a much-needed one, finally made its way through! - -![Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years][1] - -Nowadays, the user interface of a program is extremely important; even the simplest of interactions can make or break the user's experience. - -The GNOME file picker lacked a proper thumbnail preview for viewing files, instead relying on a plain list view. This may have been unintuitive for many. - -The lack of this feature was also the topic of many memes and debates over the years. - -But now, finally, after 18 long years since the original [feature request][2] was put out, GNOME is set to receive support for a proper thumbnail view. - -Let's look at this upcoming change to GNOME's file picker. - -#### Recommended Read 📖 - -### Feature to Arrive With GNOME 44 - -![gnome file thumbnail view][3] - -As demonstrated by this early build screenshot provided by GNOME developer [Matthias Clasen][4]. The file picker on GNOME is going to feature a thumbnail view. - -This is how it looks like with GNOME 43 on board: - -![file picker with gnome 43][5] - -**How to access it?:** It is a grid view for the file picker on GNOME that shows the thumbnail previews of files and folders. - -It will now be easy to differentiate items in the file manager; no more opening a file to see what it contains! - -![gnome file thumbnail view selector][6] - -When this feature arrives, you can enable it by clicking on the new view toggle button at the top right. - -**What Changed?:** 18 years for a simple feature addition is a long time. Numerous technical reasons made the implementation of this an arduous task. - -But I am glad that it is finally here. 😃 - -One of the reasons that made this possible was the recent deprecations and modernization work carried out in the GTK code base. - -> 💡 GTK is the toolkit that is at the core of all things GNOME. - -And, those changes resulted in [GtkListView][7] and [GtkGridView][8] using the same data models to make this feature work. - -**When to expect?:** The historical [merge request][9] has already been accepted and is paving the way for its introduction to GNOME. - -You can expect this to arrive with GNOME 44 sometime in 2023. - -I'm looking forward to that! 😁 - -We would be covering it as part of GNOME 44's feature offerings. So, stay tuned to our coverage for that! - -_Don't forget to follow us on [Mastodon][10] and [Twitter][11]! Feel free to share your thoughts on this in the comments below._ - -Notion – One workspace. Every team.We’re more than a doc. Or a table. Customize Notion to work the way you do.![][12]Notion![][13] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-file-picker/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png -[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154 -[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png -[4]: https://twitter.com/matthias_clasen -[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png -[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png -[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c -[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c -[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163 -[10]: https://mastodon.social/@itsfoss -[11]: https://twitter.com/itsfoss2 -[12]: https://notion.grsm.io/front-static/logo-ios.png -[13]: https://www.notion.so/front-static/meta/default.png From 468881e48c4ab5cba1e733b6cfb244d9454f8451 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 25 Dec 2022 15:49:51 +0800 Subject: [PATCH 2438/3123] RP @FYJNEVERFOLLOWS https://linux.cn/article-15381-1.html --- ...in Ubuntu and other Linux Distributions.md | 85 +++++++++---------- 1 file changed, 42 insertions(+), 43 deletions(-) rename {translated/tech => published}/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md (59%) diff --git a/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md similarity index 59% rename from translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md rename to published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md index 7287e7da5c..4cd33a4e74 100644 --- a/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md +++ b/published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md @@ -3,30 +3,33 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" [#]: translator: "FYJNEVERFOLLOWS" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15381-1.html" -如何在 Ubuntu 和其他 Linux 发行版中录制流音频 +如何在 Ubuntu 中录制流媒体音频 ====== -如何在 Ubuntu 和其他 Linux 发行版中录制音频? -如果你想通过计算机的麦克风录制语音,可以使用 `GNOME Sound Recorder` 或 `Audacity`。 +![][0] -使用 `GNOME Sound Recorder` 很简单,但它缺乏功能。`Audacity` 最初可能会让人无法抗拒,但它有很多专业级录音的功能。然而,在本教程中,我不会详细讨论这个问题。 +> 如何在 Ubuntu 和其他 Linux 发行版中录制音频? -`GNOME Sound Recorder` 能与麦克风配合使用。还有一个叫做 `Audio recorder` 的工具,除了麦克风输入,你可以使用它来录制流媒体音乐(来自 Sptify、YouTube、互联网广播、Skype 和其他大多数来源)。 +如果你想通过计算机的麦克风录制语音,可以使用 GNOME 录音机Sound Recorder 或 Audacity。 + +使用 GNOME 录音机很简单,但它功能不足。Audacity 最初可能会让人无从入手,但它有很多专业级录音的功能。不过,在本教程中,我不打算详细讨论这个问题。 + +GNOME 录音机能与麦克风配合使用。还有一个叫做 Audio recorder 的工具,除了麦克风输入,你可以使用它来录制流媒体音乐(来自 Sptify、YouTube、互联网广播、Skype 和其他大多数来源)。 总而言之,我将向你展示以下步骤: -* 使用 `GNOME Sound Recorder` 录制声音 -* 使用 `Audio Recorder` 录制流音频 +* 使用 GNOME 录音机录制声音 +* 使用 Audio Recorder 录制流音频 -### 使用 `Sound Recorder` 从麦克风录制音频 +### 使用 GNOME 录音机从麦克风录制音频 -`GNOME` 桌面环境有很多有用的应用程序。Sound Recorder 就是其中之一。 +GNOME 桌面环境有很多有用的应用程序,录音机就是其中之一。 -你可以从 `Ubuntu` 软件中心安装 [Sound Recorder][1]。 +你可以从 Ubuntu 软件中心安装 [录音机][1]。 ![Sound Recorder can be installed from the Ubuntu Software Center][2] @@ -36,52 +39,47 @@ sudo apt install gnome-sound-recorder ``` -安装后,你可以在系统菜单中找到它并从那里开始。 +安装后,你可以在系统菜单中找到它,并从那里启动它。 ![GNOME Sound Recorder][3] -在开始使用它之前,应确保在系统设置中选择了正确的输入源 +在开始使用它之前,应确保在系统设置中选择了正确的输入源: ![Ensure that you have chosen correct input in system settings][4] -一打开 `Sound Recorder`,它将显示如下界面。 +打开录音机,它将显示如下界面: ![Hit the Record button to start audio recording][5] -点击录制按钮,它立即开始录制音频。录制时,你可以选择暂停、停止或取消录制。 +点击“录制Record”按钮,它立即开始录制音频。录制时,你可以选择暂停、停止或取消录制。 ![Options while recording audio][6] 你的录音将保存并可从应用程序界面本身获得。单击保存的录音以突出显示。 -你可以回放或删除录音。你可以通过单击保存/下载按钮选择将其保存到其他位置。你也可以使用编辑按钮重命名录音。 +你可以回放或删除该录音。你可以通过单击“保存/下载”按钮选择将其保存到其他位置。你也可以使用“编辑”按钮重命名该录音。 ![Saved recordings][7] 这很方便,对吧?你可以选择以 `MP3`、`FLAC` 和多种格式录制。 -#### 删除 GNOME Sound Recorder +#### 删除 GNOME 录音机 不喜欢它或发现它缺乏功能? -你可以从 `Ubuntu` 软件中心删除 `GNOME Sound Recorder` 或使用以下命令: +你可以从 Ubuntu 软件中心删除 GNOME 录音机,或使用以下命令: ``` sudo apt remove gnome-sound-recorder ``` -`GNOME Sound Recorder` 的应用受到限制。它只从麦克风录制,在某些情况下这不是你想要的。 +GNOME 录音机应用功能有限,它只从麦克风录制,在某些情况下这不是你想要的。 -想象一下你想录制 Skype 通话或在应用程序或网络浏览器中播放的内容?在这种情况下,漂亮的 `Audio Recorder` 会有所帮助。 +想象一下你想录制 Skype 通话或在应用程序或网络浏览器中播放的内容?在这种情况下,漂亮的 Audio Recorder 会有所帮助。 -### 使用 Audio Recorder 来录制流音频 +### 使用 Audio Recorder 来录制流媒体音频 -你可以观看以下视频以了解如何使用 `Audio Recorder`。它有点旧,但步骤是一样的。 - -![A Video from YouTube][8] - -[Subscribe to our YouTube channel for more Linux videos][9] -你可以使用 [官方 PPA][10] 在 Ubuntu 和 LinuxMint 中安装 `Audio Recorder`。在终端中依次使用以下命令(`Ctrl+Alt+T`): +你可以使用 [官方 PPA][10] 在 Ubuntu 和 LinuxMint 中安装 `Audio Recorder`。在终端中依次使用以下命令: ``` sudo apt-add-repository ppa:audio-recorder/ppa @@ -89,25 +87,25 @@ sudo apt update sudo apt install audio-recorder ``` -或者,你可以从[启动台][11]下载源代码。安装后,你可以从“活动概述”里启动应用程序: +或者,你可以从 [启动台][11] 下载源代码。安装后,你可以从“活动概述Activity Overview”里启动应用程序: ![Audio Recorder][12] #### 记录不同来源的各种声音 -`Audio Recorder` 记录计算机产生的各种声音。 +Audio Recorder 记录计算机产生的各种声音。 它记录通过系统声卡、麦克风、浏览器、网络摄像头等播放的音频。 -换句话说,即使你的系统打喷嚏,它也会记录(如果你想记录的话)。它允许你选择录制设备,如网络摄像头、麦克风、Skype等。 +换句话说,即使你的系统打喷嚏,它也会记录(如果你想记录的话)。它允许你选择录制设备,如网络摄像头、麦克风、Skype 等。 -要录制流媒体音乐,请选择适当的源。例如,如果你正在Rhythmbox 中播放流媒体广播,请选择 Rythbox。 +要录制流媒体音乐,请选择适当的源。例如,如果你正在 Rhythmbox 中播放流媒体广播,请选择 Rythmbox。 ![Audio-Recorder Audio Settings][13] #### 在你方便的时候录制 -`Audio Recorder` 还提供了设置计时器的选项。你可以在给定的时钟时间或预定义的间隔开始、停止或暂停录制。你还可以设置录制文件大小的限制。 +Audio Recorder 还提供了设置计时器的选项。你可以在给定的时钟时间或预定义的间隔开始、停止或暂停录制。你还可以设置录制文件大小的限制。 此外,你可以在没有音频(或声音很低)时暂停(和停止),并在声音恢复时继续。 @@ -123,17 +121,17 @@ sudo apt install audio-recorder 另一个宝藏。你可以将录制的文件保存为你喜爱的文件格式。支持的文件格式有 OGG 音频、Flac、MP3、SPX 和 WAV。我录音时更喜欢用 MP3 格式。 -**录制的文件存储在 `~/Audio`** 中,即主目录中的 `Audio` 文件夹中。 +录制的文件存储在 `~/Audio` 中,即主目录中的“音频”文件夹中。 ![Audio-recorder Audio Formats][16] -#### `Audio Recorder` 有多好? +#### Audio Recorder 有多好? -我在 Ubuntu 中使用 `Audio Recorder` [录制YouTube上播放的音乐][17]。我用 MP3 格式保存了一段 2 分钟的视频,占用了 934 KB 的空间。但我必须说,我没想到录制的音质会这么好。老实说,我无法将它与 YouTube 上的原始歌曲区分开来。 +我在 Ubuntu 中使用 Audio Recorder [录制 YouTube 上播放的音乐][17]。我用 MP3 格式保存了一段 2 分钟的视频,占用了 934 KB 的空间。但我必须说,我没想到录制的音质会这么好。老实说,我无法将它与 YouTube 上的原始歌曲区分开来。 -#### 删除 `Audio Recorder` +#### 删除 Audio Recorder -如果你不喜欢 `Audio Recorder`,可以使用以下命令将其删除: +如果你不喜欢 Audio Recorder,可以使用以下命令将其删除: ``` sudo apt remove audio-recorder @@ -147,9 +145,9 @@ sudo apt-add-repository -r ppa:audio-recorder/ppa ### 结论 -Linux 中可能还有其他几种用于音频录制的工具。像 `GNOME` 一样,其他桌面环境也可能有录音应用程序。我知道 `Deepin` 肯定有一个。 +Linux 中可能还有其他几种用于音频录制的工具。像 GNOME 一样,其他桌面环境也可能有录音应用程序。我知道深度操作系统肯定有一个。 -`GNOME Sound Recorder` 是一个不错的工具,用于从麦克风录制声音。对于录制各种来源的声音,`Audio Recorder` 是一个不错的选择。 +GNOME 录音机是一个不错的工具,用于从麦克风录制声音。对于录制各种来源的声音,Audio Recorder 是一个不错的选择。 我希望这篇文章能满足你的录音需求。如果你有什么建议,请告诉我。 @@ -159,8 +157,8 @@ via: https://itsfoss.com/record-streaming-audio/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/FYJNEVERFOLLOWS) -校对:[校对者ID](https://github.com/校对者ID) +译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -184,3 +182,4 @@ via: https://itsfoss.com/record-streaming-audio/ [16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png [17]: https://itsfoss.com/youtube-dl-audio-only/ [18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ +[0]: https://img.linux.net.cn/data/attachment/album/202212/25/154829ol11lp47i8o6222c.jpg \ No newline at end of file From aee51df69a91fb9956f7f2d4c9c13b23cf340c58 Mon Sep 17 00:00:00 2001 From: toknow-gh Date: Mon, 26 Dec 2022 00:18:28 +0800 Subject: [PATCH 2439/3123] Translated tech\20210917 Open source game achievements.md --- .../20210917 Open source game achievements.md | 82 ------------------- .../20210917 Open source game achievements.md | 82 +++++++++++++++++++ 2 files changed, 82 insertions(+), 82 deletions(-) delete mode 100644 sources/tech/20210917 Open source game achievements.md create mode 100644 translated/tech/20210917 Open source game achievements.md diff --git a/sources/tech/20210917 Open source game achievements.md b/sources/tech/20210917 Open source game achievements.md deleted file mode 100644 index c8ae732235..0000000000 --- a/sources/tech/20210917 Open source game achievements.md +++ /dev/null @@ -1,82 +0,0 @@ -[#]: subject: "Open source game achievements" -[#]: via: "https://fedoramagazine.org/open-source-game-achievements/" -[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/" -[#]: collector: "lujun9972" -[#]: translator: "toknow-gh" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Open source game achievements -====== - -![][1] - -Photo by [Michał Parzuchowski][2] on [Unsplash][3] - -Learn how Gamerzilla brings an achievement system to open source games and enables all developers to implement achievements separate from the game platform. - -Some open source games rival the quality of commercial games. While it is hard to match the quality of triple-a games, open source games compete effectively against the indie games. But, gamer expectations change over time. Early games included a high score. Achievements expanded over time to promote replay. For example, you may have completed a level but you didn’t find all the secrets or collect all the coins. The Xbox 360 introduced the first multi-game online achievement system. Since that introduction, many game platforms added an achievement system. - -Open source games are largely left out of the achievement systems. You can publish an open source game on Steam, but it costs money and they focus on working with companies not the free software community. Additionally, this locks players into a non-free platform. - -Commercial game developers are not well served either, since some players enjoy achievements and refuse to purchase from other stores due to the inability to share their accomplishments. This lock-in gives the power to the platform holder. Each platform has a different system forcing the developer to implement support and testing multiple times. Smaller platform are likely to be skipped entirely. Furthermore, the platform holder has access to the achievement data on all companies using their system which could be used for competitive advantage. - -### Architecture of Gamerzilla - -[Gamerzilla][4] is an open source game achievement system which attempts to correct this situation. The design considered both open source and commercial games. You can run your own Gamerzilla server, use one provided by a game store, or even distributions, or other groups could run them. Where you buy the game doesn’t matter. The achievement data uploads to your Gamerzilla server. - -Game achievements require two things, a game, and a Gamerzilla server. As game collections grow, however, that setup has a disadvantage. Each game needs to have credentials to upload to the Gamerzilla server. Many gamers turn to game launchers due to their large number of games and ability to synchronize with one or more stores. By adding Gamerzilla support to the launcher, the individual games no longer need to know your credentials. Session results will relay from the game launcher to the Gamerzilla server. - -At one time, freegamedev.net provided the Hubzilla social networking system. We created an addon allowing us to jump start Gamerzilla development. Unfortunately server upgrades broke the service so freegamedev.net stopped offering it. - -For Gamerzilla servers, two implementations exist. Maintaining Hubzilla is a complex task, so we developed a standalone Gamerzilla service using *.*Net and React. The API used by games remains the same so it doesn’t matter which implementation you connect to. - -Game launchers development and support often lags. To facilitate adding support, we created libgamerzilla. The library handles all the interaction between the game launcher, games, and the Gamerzilla server. Right now only _GameHub_ has an implementation with Gamerzilla support and merging into the project is pending. On Fedora Linux, libgamerzilla-server package serves as a temporary solution. It does not launch games but listens for achievements and relays them to your server. - -Game support continues growing. As with game launchers, developers use libgamerzilla to handle the Gamerzilla integration. The library, written in C, is in use in a variety of languages like Python and nim. Games which already have an achievement system typically take only a few days to add support. For other games ,collecting all the information to award the achievements occupies the bulk of the implementation time. - -### Setting up a server - -The easiest server to setup is the Hubzilla addon. That, however, requires a working Hubzilla site which is not the simplest thing to setup. The new .Net and React server can be setup relatively easily on Fedora Linux, although there are a lot of steps. The [readme][5] details all the steps. The long set of steps is, in part, due to the lack of a built release. This means you need to build the .Net and the React code. Once built, React code serves up directly in Apache. A new service runs the .Net piece. Apache proxies all requests to the Gamerzilla API for the new service. - -With the setup steps done, Gamerzilla runs but there are no users. There needs to be an easy way to create an administrator and register new users. Unfortunately this piece does not exist yet. At this time, users must be entered directly using the sqlite3 command line tool. The instructions are in the [readme][5]. Users can be publicly visible or not. The approval flag allows new users to not use the system immediately but web registration still needs to be implemented The user piece is designed with replacement in mind. It would not be hard to replace backend/Service/UserService.cs to integrate with an existing site. Gaming web sites could use this to offer Gamerzilla achievements to their users. - -Currently the backend uses a sqlite database. No performance testing has been done. We expect that larger installations may need to modify the system to use a more robust database system. - -### Testing the system - -There is no game launcher easily available at the moment. If you install libgamerzilla-server, you will have the command _gamerzillaserver_ available from the command line. The first time you run it, you enter your url and login information. Subsequent executions will simply read the information from the configuration file. There is currently no way to correct a mistake except deleting the file at _.local/share/ga_merzillaserver/server.cfg and running _gamerzillaserver_ again. - -Most games have no built releases with Gamerzilla support. [Pinball Disc Room on itch.io][6] does have support built in the Linux version. The web version has no achievements There are only two achievements in the game, one for surviving for ten seconds and the other for unlocking and using the tunnel. With a little practice you can get an achievement. You need to check your Gamerzila server as the game provides no visual notification of the achievement. - -Currently no game packaged in Fedora Linux supports Gamerzilla. SuperTuxKart merged support but is still awaiting a new release. Seahorse adventures and Shippy 1984 added achievements but new releases are not packaged yet. Some games with support, we maintain independently as the developers ignore pull requests or other attempt to contact them. - -### Future work - -Gamerzilla needs more games. A variety of games currently support the system. An addition occurs nearly every month. If you have a game you like, ask the developer to support Gamerzilla. If you are making a game and need help adding support, please let us now. - -Server development proceeds at a slow pace and we hope to have a functional registration system soon. After that we may setup a permanent hosting site. Right now you can see our [test server][7]. Some people expressed concern with the .Net backend. The API is not very complex and could be rewritten in Python fairly easily. - -The largest unknown remains game launchers. GameHub wants a generic achievement interface. We could try to work with them to get that implemented. Adding support to the itch.io app could increase interest in the system. Another possibility is to do away with the game launcher entirely. Perhaps adding something like the gamerzillaserver to Gnome might be possible. You would then configure your url and login information on a settings page. Any game launched could then record achievements. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/open-source-game-achievements/ - -作者:[Dennis Payne][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/dulsi/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/game_acheivements-816x345.jpg -[2]: https://unsplash.com/@mparzuchowski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/jenga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: http://identicalsoftware.com/gamerzilla/ -[5]: https://github.com/dulsi/gamerzilla.net#readme -[6]: https://dulsi.itch.io/pinball-disc-room -[7]: http://108.49.106.217/ diff --git a/translated/tech/20210917 Open source game achievements.md b/translated/tech/20210917 Open source game achievements.md new file mode 100644 index 0000000000..efd95d3dba --- /dev/null +++ b/translated/tech/20210917 Open source game achievements.md @@ -0,0 +1,82 @@ +[#]: subject: "Open source game achievements" +[#]: via: "https://fedoramagazine.org/open-source-game-achievements/" +[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/" +[#]: collector: "lujun9972" +[#]: translator: "toknow-gh" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Gamerzilla:一个开源游戏成就系统 +====== + +![][1] + +Photo by [Michał Parzuchowski][2] on [Unsplash][3] + +了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。 + +一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作,开源游戏在独立游戏中已颇具竞争力。但是游戏玩家预期是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级,却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。 + +开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布自己的游戏,但这需要付费。游戏平台主要与公司合作,而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。 + +商业游戏开发商也没有得到太多好处。由于不能共享成就,一些享受成就的玩家拒绝从其他商店购买游戏。这种锁定效应增强了游戏平台的话语权。由于各个游戏平台使用不同的系统,开发者不得不针对它们分别进行适配和测试。较小的游戏平台则可能完全被忽略掉。并且平台方能够访问到所有使用该平台的公司的成就数据,这些数据可以被用来扩大竞争优势。 + +### Gamerzilla 的架构 + +[Gamerzilla][4] 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器,使用游戏商店提供的服务器,甚至 Linux 发行版中的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。 + +一个基本的成就系统需要两个要素:游戏和 Gamerzilla 服务器。然而随着游戏数量增长,这种设计会暴露出其缺点。每个游戏都需要证书才能上传数据到服务器。由于拥有大量的游戏资源,并且能够在不同游戏商店之间同步数据,游戏启动器成为了众多玩家的选择。通过让启动器支持 Gamerzilla,游戏本身就不再需要证书了。游戏结果直接从启动器上传到 Gamerzilla 服务器。 + +freegamedev.net 曾提供了社交网络系统 Hubzilla。我们基于此开发了一个插件来进行 Gamerzilla 的开发。不幸的是 Hubzilla 的一次升级导致了 freegamedev.net 的服务故障,因此 freegamedev.net 决定不再提供它了。 + +目前 Gamerzilla 服务器有两种实现。维护 Hubzilla 是一项复杂的工作,所以我们用 .Net 和 React 开发了一个独立的 Gamerzilla 服务器。游戏调用的 API 是相同的,所以不用关心连接的服务器是哪种实现。 + +游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持,我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 _GameHub_ 实现了一个支持 Gamerzilla 的版本,并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏,而是监听成就并把成就上传到服务器。 + +支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样,开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现,已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏,只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla,大部分时间将会花在收集信息和授予成就上。 + +### 架设服务器 + +架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些,尽管这仍然需要许多步骤。详细步骤请参考 [readme][5]。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net,动手构建 React 源码部分。构建完成之后,React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。 + +按上面的步骤操作,Gamerzilla 已经运行起来了,但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme][5]。用户可以是公开可见的,也可以是隐藏的。批准标记可以让新用户不立刻使用该系统,但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 backend/Service/UserService.cs 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。 + +目前 Gamerzilla 的后端使用的是 sqlite 数据库。我们还没有对它进行过性能测试。我们预计较大型的应用安装需要改进系统以使用更鲁棒的数据库。 + +### 测试 + +目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server,就可以在命令行中运行 _gamerzillaserver_ 命令。首次运行该命令时需要输入 url 和 登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 _.local/share/gamerzillaserver/server.cfg_ 再重新运行 _gamerzillaserver_ 命令。 + +大多数游戏还没有支持 Gamerzilla 的发行版。[itch.io 上的 Pinball Disc Room][6],它的 Lniux 版本支持 Gamerzilla,但是它的网页版是没有成就的。这款游戏只有两个成就:一个是存活 10 秒钟,另一个是解锁并使用隧道。只需要稍加练习,你就能获得一个成就。由于这款游戏没有可视化的成就提示消息,你需要查看 Gamerzila 服务器才能确认成就。 + +目前打包到 Fedora 中的游戏都还不支持 Gamerzila。SuperTuxKart 已经整合了对 Gamerzila 的支持,正在等待发布新版本。 Seahorse adventures 和 Shippy 1984 添加了成就,但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持,但我们的拉取请求pull request或其它联系尝试还没有得到开发者的回应。 + +### 后续工作 + +Gamerzilla 需要更多游戏的支持。目前已经有很多游戏支持 Gamerzilla,并且正在以大约每月一个的速度增长。如果你有喜欢的游戏,可以请求开发方支持 Gamerzilla。如果你是游戏开发者,并且在支持 Gamerzilla 上需要技术支持,请联系我们。 + +服务器的开发工作在缓步开展中,我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的[测试服务器][7]。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂,可以很容易用 Python 重写。 + +最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 itch.io 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 url 和登录信息。这样任何启动的游戏都可以记录成就了。 + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/open-source-game-achievements/ + +作者:[Dennis Payne][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/toknow-gh) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/dulsi/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/game_acheivements-816x345.jpg +[2]: https://unsplash.com/@mparzuchowski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/jenga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: http://identicalsoftware.com/gamerzilla/ +[5]: https://github.com/dulsi/gamerzilla.net#readme +[6]: https://dulsi.itch.io/pinball-disc-room +[7]: http://108.49.106.217/ From 58c8eb1bde9e50422f12e1c2aa02dd3c12dff9cb Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 26 Dec 2022 10:03:47 +0800 Subject: [PATCH 2440/3123] translated --- ...atform Music Player With Essential Features.md | 107 ------------------ ...atform Music Player With Essential Features.md | 105 +++++++++++++++++ 2 files changed, 105 insertions(+), 107 deletions(-) delete mode 100644 sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md create mode 100644 translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md diff --git a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md deleted file mode 100644 index ddb9a321c0..0000000000 --- a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md +++ /dev/null @@ -1,107 +0,0 @@ -[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features" -[#]: via: "https://itsfoss.com/harmonoid/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features -====== - -Fortunately, there’s no shortage of [good open-source music players for Linux][1]. We have covered a variety of options in the past. - -Here, I highlight a music player that is free to use, open-source, and available for multiple platforms, including **Linux, Windows, and Android**. - -### Harmonoid: Intuitive User Experience With Material Design - -![harmonoid player][2] - -Harmonoid is written in Dart programming language. It utilizes [libmpv][3] and [mpv][4] for its media playback capabilities on desktop platforms. - -It provides an excellent user interface to work with. And does not use electron.js. So, if you hate Electron, this is something you can try. - -Usually, you see apps feature material design UI on Android. If you did not know, Material is Google’s open-source design system. - -![harmonoid player info][5] - -Not a lot of creators use it for desktop applications. For a change, Harmonoid features a material design user experience that can be snappy and intuitive simultaneously. - -This lets Harmonoid present a unique user experience to Linux users. The animations feel smooth and easy to navigate and offer plenty of valuable features to help manage your music library. - -![harmonoid url][6] - -If you want a music player with a good UI and feature set, I recommend trying Harmonoid. - -**Recommended Read**: [Best Music Players for Linux Users][1] - -### Features of Harmonoid - -![harmonoid player options][7] - -[Harmonoid][8] may look like a simple music player, but it comes packed with some of the most valuable features. They include: - -- **Sing along feature where it finds lyrics, or you can manually add them** -- **Edit song details, including artist, year, genre, track number, album, and title** -- Easy sorting and ordering of your music list -- A quick search feature to find what you are looking for -- Caches metadata to offer a fast experience every time you load it -- Good integration support with Windows and Linux -- Discord rich presence support to show your music along with artwork and play buttons -- Adjust the speed, volume, and pitch of the music -- Raw metadata reader to read tags of any file or song in your library -- Playback is powered by MPV -- .LRC file compatibility -- **Online URL (YouTube) and radio stream supported** -- Cross-platform -- Multiple artist support -- Dark/light mode - -In addition to these, several subtle abilities go a long way, like **gapless playback and context menu integration, and it is a lightweight application** in general. - -Harmonoid should fit perfectly for users who want to play music or want to organize their collection simultaneously. I would say that it offers the best of both worlds. - -![harmonoid settings][9] - -### Install Harmonoid on Linux - -You can grab the **.deb/.rpm** package from its [download page][10] and install it on Ubuntu-based distros or Fedora. - -Additionally, you need to install mpv and libmpv using the following command (for Ubuntu): - -``` -sudo apt install mpv lipmpv-dev -``` - -Ensuring to install these packages will let you handle all kinds of files for playback with Harmonoid. - -You can also find Harmonoid on [AUR][11] for Arch-based distributions. To explore more about the player, head to its [GitHub page][12] and the [official website][8]. - -_Have you tried Harmonoid to play and organize music on your Linux system? What’s your favorite music player for Linux? Let me know your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/harmonoid/ - -作者:[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/best-music-players-linux/ -[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png -[3]: https://github.com/mpv-player/mpv/tree/master/libmpv -[4]: https://mpv.io -[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png -[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png -[8]: https://harmonoid.com -[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png -[10]: https://harmonoid.com/downloads -[11]: https://aur.archlinux.org/packages/harmonoid-bin -[12]: https://github.com/harmonoid/harmonoid diff --git a/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md new file mode 100644 index 0000000000..4c071ba0e5 --- /dev/null +++ b/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md @@ -0,0 +1,105 @@ +[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features" +[#]: via: "https://itsfoss.com/harmonoid/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Harmonoid:具有基本功能的漂亮跨平台音乐播放器 +====== + +幸运的是,[Linux 的优秀开源音乐播放器][1]并不缺乏。过去我们已经介绍了多种选择。 + +在这里,我重点介绍一款免费使用、开源且可用于多种平台(包括 **Linux、Windows 和 Android**)的音乐播放器。 + +### Harmonoid:Material Design 的直观用户体验 + +![harmonoid player][2] + +Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在桌面平台上实现媒体播放功能。 + +它提供了一个优秀的用户界面。并且不使用 electron.js。所以,如果你讨厌 Electron,你可以试试这个。 + +通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是 Google 的开源设计系统。 + +![harmonoid player info][5] + +没有多少创作者将它用于桌面应用。作为一种改变,Harmonoid 具有 Material Design 用户体验,可以同时做到快速和直观。 + +这让 Harmonoid 为 Linux 用户呈现了独特的用户体验。动画感觉流畅且易于导航,并提供大量有价值的功能来帮助管理你的音乐库。 + +![harmonoid url][6] + +如果你想要一个有良好 UI 和功能集的音乐播放器,我建议您尝试 Harmonoid。 + +### Harmonoid 的特点 + +![harmonoid player options][7] + +[Harmonoid][8] 可能看起来像一个简单的音乐播放器,但它包含了一些最有价值的功能。他们包括: + +- **在找到歌词的地方跟唱,或者你可以手动添加它们** +- **编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题** +- 轻松分类和排序你的音乐列表 +- 一个快速搜索功能来找到你要找的东西 +- 缓存元数据以在你每次加载时提供快速体验 +- 与 Windows 和 Linux 的良好集成支持 +- 支持Discord丰富的存在,以显示你的音乐以及艺术品和播放按钮 +- 调整音乐的速度、音量和音高 +- 原始元数据读取器可读取你库中任何文件或歌曲的标签 +- 播放由 MPV 提供 +- .LRC 文件兼容性 +- **支持在线 URL (YouTube) 和广播流** +- 跨平台 +- 多位艺术家支持 +- 深色/浅色模式 + +除了这些之外,还有一些小功能可以发挥很大的作用,例如**无缝播放和上下文菜单集成,并且它通常是一个轻量级应用**。 + +Harmonoid 应该非常适合想要同时播放音乐或整理收藏的用户。我会说它提供了两全其美的方法。 + +![harmonoid settings][9] + +### 在 Linux 上安装 Harmonoid + +你可以从其[下载页面][10]获取 **.deb/.rpm** 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。 + +此外,你需要使用以下命令安装 mpv 和 libmpv(对于 Ubuntu): + +``` +sudo apt install mpv lipmpv-dev +``` + +确保安装这些软件包可以让你用 Harmonoid 处理所有类型的文件进行播放。 + +你还可以在 [AUR][11] 上找到基于 Arch 的发行版的 Harmonoid。要探索有关该播放器的更多信息,请访问其 [GitHub 页面][12]和[官方网站][8]。 + +_你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。_ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/harmonoid/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-music-players-linux/ +[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png +[3]: https://github.com/mpv-player/mpv/tree/master/libmpv +[4]: https://mpv.io +[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png +[8]: https://harmonoid.com +[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png +[10]: https://harmonoid.com/downloads +[11]: https://aur.archlinux.org/packages/harmonoid-bin +[12]: https://github.com/harmonoid/harmonoid \ No newline at end of file From 27a10dfb246420aff85c8d2606a5457f39017f43 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 26 Dec 2022 10:16:48 +0800 Subject: [PATCH 2441/3123] translating --- ...⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md index 3cdd80fb63..d4a70a8ab2 100644 --- a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md +++ b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From cd3d04d0c0a24e620a5004bb3a28bef8e3e61ee4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 26 Dec 2022 16:21:58 +0800 Subject: [PATCH 2442/3123] ALL @wxy https://linux.cn/article-15383-1.html --- ...s with a Ton of Visual Changes and Improvements.md | 156 ++++++++++++++++++ ...s with a Ton of Visual Changes and Improvements.md | 152 ----------------- 2 files changed, 156 insertions(+), 152 deletions(-) create mode 100644 published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md delete mode 100644 sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md diff --git a/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md new file mode 100644 index 0000000000..c9f1a84de3 --- /dev/null +++ b/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md @@ -0,0 +1,156 @@ +[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements" +[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15383-1.html" + +Linux Mint 21.1 发布:大量的视觉变化和改进 +====== + +> Linux Mint 21.1 带有一个新的默认主题和其他一些改进。 + +![][1] + +Linux Mint 21 已经收到了它的第一个更新,即 **Linux Mint 21.1 “Vera”**。 + +如果你想了解 Linux Mint 21 “Venessa”,我们的官方点评应该能让你尽快了解: + +> **[Linux Mint 21:最好的发行版变得更好了](https://itsfoss.com/linux-mint-21-review/)** + +这个版本与通常的小版本相似。它包括了对外观、感觉和功能的各种变化,这些变化可能看起来很细微,但会影响用户体验。 + +让我们来看看主要的亮点。我们关注的是 Linux Mint 的 Cinnamon 版。 + +### Linux Mint 21.1 Vera:有什么新内容? + +基于 **Ubuntu 22.04 LTS**,该版本的底层将继续使用 **Linux 5.15 LTS** 内核。 + +![][2] + +#### 👀 焕然一新的用户界面 + +当你第一次启动进入桌面时,你应该很快注意到光标的新外观。它默认采用了新的 Bibata 主题。 + +![][3] + +光标、图标主题列表增加了一些新的主题,如 Yaru、Breeze 和 GoogleDot,以及传统的 DMZ 主题。 + +![][4] + +除了传统的 Mint-X、Mint-Y 和 Mint-Legacy 主题外,用户还可以找到一组独特的应用图标主题,这包括 Papirus、Breeze、Numix 和 Yaru。 + +![][5] + +另一件你可能会注意到的有趣的事情,默认的强调色不再是传统的绿色,这是因为 **桌面主题现在换成了 Aqua**。强调色库提供了更多鲜艳的颜色,使桌面看起来更干净、更有吸引力。 + +对于那些希望恢复传统外观的人,你可以在主题中选择 “Mint-Y-Legacy”。 + +此外,以前在桌面上可见的 **电脑、主文件夹、网络和垃圾箱图标** 被默认删除,它们可以在文件管理器中访问。主文件夹的图标则显示在面板上。如果你想恢复以前的方式,你可以通过进入 系统首选项System Preferences 来恢复。 + +#### ✨ 增强的驱动器管理器 + +由于驱动器管理器在用户模式下运行,所以当你启动它时不再要求输入密码。 + +![][6] + +有专门的屏幕来显示离线连接和检测到 现场 USBLive USB 时的情况。你也应该发现挂载现场 USB 比以前更顺畅了。 + +![][7] + +对它也进行了一些修复。 + +Packagekit 现在可以清除已删除的驱动程序和软件包。这解决了一个众所周知的问题,即用户想要在不同版本的英伟达驱动之间进行切换。 + +此外,Debconf 也进行了修补,以解决启用安全启动时英伟达驱动程序的一个问题。 + +#### 👨‍💻 Flatpak 集成和软件管理器的改进 + +很高兴看到 软件管理器Software Manager更新管理器Update Manager 都支持 Flatpak 了。 + +安装和更新 Flatpak 应用程序的过程没有什么不同,应该是很容易的。 + +![][8] + +例如,软件管理器已被更新,以帮助区分用户正在查看的应用程序是哪个版本:Flatpak 版本还是系统版本。还有一个下拉框,用于在一个应用程序的系统版本和 Flatpak 版本之间切换。 + +卸载 Flatpak 应用程序和快捷方式不再需要密码了。在进行多项操作时也是如此。 + +#### 🔨 对 XApp 的改进 + +用户现在可以配置登录屏幕的光标大小和主题。以前,这些设置是全局设置。 + +另一方面,Warpinator 获得了更好的安全性,而 WebApp 管理器WebApp Manager 在编辑 WebApp 时具有额外的设置,包括私人浏览和导航栏。 + +#### ⭐ 新的 ISO 验证工具 + +在大多数情况下,人们想验证一个下载的 ISO 镜像的完整性。 + +因此,更简单方便的方法是,你可以通过右击 ISO 镜像,选择 “验证Verify”来完成。这就打开了 ISO 验证ISO Verification工具,你可以在那里填写必要的细节来进行验证。 + +![][9] + +值得注意的是,对于 Linux Mint 和 Ubuntu 的 ISO 镜像,SHA256sum 和 GPG 文件的 URL 是自动填写的。 + +#### 🎨 Cinnamon 5.6 桌面 + +Linux Mint 的旗舰桌面环境也有一些微小的视觉更新和变化。 + +在桌面的面板上,你会注意到主菜单和应用程序之间有一个细细的分隔线。像 Windows 一样,在最右边的角落里增加了一个新的角栏小程序,可配置,并支持创新的操作。 + +![][10] + +说到视觉效果,默认的文件管理器 Nemo 已经经历了一些变化: + +- 当选择一个或多个项目时,只有名称保持高亮,而图标则没有。 +- 日期现在以等宽字体显示。 +- 路径栏也得到了一些改进。 + +你可以毫不费力地访问 显示设置Display Settings,因为它的快捷方式已被添加到桌面的上下文菜单中。 + +### 🛠️ 其他改进措施 + +其他两个桌面环境已经分别更新到 **MATE 1.26** 和 **XFCE 4.16**。 + +美术作品集也得到了扩展,包括几张很酷的壁纸。 + +虽然我们只介绍了这个版本的主要亮点,但你可以通过 [官方更新日志][11] 了解更多细节。 + +### 获得 Linux Mint 21.1 + +现有的 Mint 用户应该得到通知,可以通过更新管理器轻松升级到 Mint 21.1。 + +那些想要重新安装 Linux Mint 的人可以从 [官方下载页面][12] 获得 ISO。 + +> **[Linux Mint 21.1][12]** + +如果你的网络较慢或不稳定,你也可以 [使用 Torrent 链接][13]。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-mint-21-1-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-mint-21-1-release.png +[2]: https://news.itsfoss.com/content/images/2022/12/Home.png +[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png +[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png +[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png +[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png +[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png +[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png +[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png +[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png +[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php +[12]: https://www.linuxmint.com/download.php +[13]: https://linuxmint.com/torrents/ diff --git a/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md deleted file mode 100644 index 965f20f5cb..0000000000 --- a/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md +++ /dev/null @@ -1,152 +0,0 @@ -[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements" -[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/" -[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements -====== - -Linux Mint 21.1 comes with a new default theme and several other refinements. - -![Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements][1] - -Linux Mint 21 has received its first update as **Linux Mint 21.1 "Vera."** If you want to learn about Linux Mint 21 "Venessa," our official review should get you up to speed: - -This release is similar to the usual point releases. However, it includes various changes to the look, feel, and features that could look subtle but will affect the user experience. - -Let's take a look at the major highlights. We focus on Linux Mint's Cinnamon edition. - -### Linux Mint 21.1 Vera: What's New? - -The release will continue to use the **Linux 5.15 LTS** kernel under the hood, based on **Ubuntu 22.04 LTS**. - -![][2] - -#### 👀 A Refreshed User Interface - -When you first boot into the desktop, you should quickly notice the new look of the cursor. It features the new Bibata theme by default. - -![linux mint's new cursor icon][3] - -The cursor icon theme inventory has new options like Yaru, Breeze, and GoogleDot along with the traditional DMZ theme. - -![][4] - -Users will also find a unique set of app icon themes to choose from in addition to the traditional Mint-X, Mint-Y, and Mint-Legacy themes. This includes Papirus, Breeze, Numix, and Yaru. - -![linux mint aqua theme][5] - -Another interesting thing you may notice is the default accent color isn't the traditional green anymore, and that's because the **desktop theme is now switched to Aqua**. The accent color library offers more vibrant colors and gives the desktop a clean and attractive look. - -For those who want the legacy look back, there exists a "**Mint-Y-Legacy**" option in the theme options. - -Moreover, the **Computer, Home, Networks, and Trash icons** previously visible on the desktop are removed by default and can be accessed in the file manager. The Home folder icon is displayed on the panel instead. If you want to return the old arrangement, you can do so by heading to the **system****preferences**. - -#### ✨ Enhanced Drive Manager - -The Drive Manager no longer requests a password when you launch it since it runs in user mode. - -![linux mint driver manager offline][6] - -There are dedicated screens for offline connectivity and when a live USB is detected. You should also find the mounting of the live USB smoother than before. - -![usb screen drive manager linux mint][7] - -There have been a couple of fixes to it as well. - -Packagekit now purges removed drivers and packages. This solves a commonly known issue where users want to switch between different versions of the NVIDIA driver. - -Additionally, Debconf has been patched to address an issue for NVIDIA drivers when Secure Boot was enabled. - -#### 👨‍💻 Flatpak Integration and Software Manager Improvements - -It is nice to see that both the **Software Manager** and **Update Manager** have received support for Flatpaks. - -The procedure for installing and updating Flatpak applications is not very different and should be a breeze. - -![][8] - -For instance, the Software Manager has been updated to help differentiate which version of an app, Flatpak, or system the user is looking at. There's also a drop-down box for switching between the system and Flatpak versions of an app. - -Uninstalling Flatpak applications and shortcuts doesn't require a password anymore. The same applies when multiple operations are being performed. - -#### 🔨 Improvements for XApps - -Users can now configure the login screen's cursor size and theme. Previously, these settings were set globally. - -On the other hand, Warpinator gets better security while the WebApp Manager features additional settings when editing Web Apps, including private browsing and a navigation bar. - -#### ⭐ New ISO Verification Tool - -In most cases, one wants to verify the integrity of a downloaded ISO image. - -Thus to make things easier, you can do this by right-clicking on the ISO image and selecting "**Verify**." This opens up the ISO Verification tool, where you can fill in the necessary details for the verification process. - -![][9] - -A cool thing to note is that the URLs to the SHA256sum and GPG files are filled in automatically for Linux Mint and Ubuntu ISO images. - -#### 🎨 Cinnamon 5.6 Desktop - -Linux Mint's flagship desktop environment has received minor visual updates and changes. - -On the desktop's panel, you will notice a thin separator between the home menu and the applications. Like Windows, a new corner bar applet has been added to the right-most corner, configurable, and supports innovative actions. - -![][10] - -Coming to the visuals, Nemo - the default file manager - has undergone a few changes. - -- When selecting one or more items, only the name remains highlighted, while the icon doesn't. -- The dates are now displayed in monospace fonts. -- The path bar has also received some improvements. - -You can effortlessly access the Display Settings as its shortcut has been added to the desktop's context menu. - -### 🛠️ Other Improvements - -The other two desktop environments have been updated to **MATE 1.26 and XFCE 4.16**, respectively. - -The artwork collection has also been expanded to include several cool wallpapers. - -While we've only covered key highlights of this release, you can go through the [official changelog][11] for more details. - -### Getting Linux Mint 21.1 - -Existing Mint users should be notified and can easily upgrade to Mint 21.1 through the update manager. - -Those looking for a fresh installation of Linux Mint can get the ISO from the [official download page][12]. - -[Linux Mint 21.1][12] - -You can also [get torrent links][13] if you have slow or inconsistent internet. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-mint-21-1-release/ - -作者:[Rishabh Moharir][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/rishabh/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-mint-21-1-release.png -[2]: https://news.itsfoss.com/content/images/2022/12/Home.png -[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png -[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png -[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png -[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png -[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png -[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png -[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png -[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png -[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php -[12]: https://www.linuxmint.com/download.php -[13]: https://linuxmint.com/torrents/ From 7c88702098a2598d68e7449205d39d1ab2d753e6 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Mon, 26 Dec 2022 18:16:42 +0800 Subject: [PATCH 2443/3123] translating --- sources/tech/20220729 Learn Rust by debugging Rust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220729 Learn Rust by debugging Rust.md b/sources/tech/20220729 Learn Rust by debugging Rust.md index 0abe7c217e..13c9c6f79f 100644 --- a/sources/tech/20220729 Learn Rust by debugging Rust.md +++ b/sources/tech/20220729 Learn Rust by debugging Rust.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings" [#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2fb3cb6700bfd722e6dd7e7319ba358ecb5acdb0 Mon Sep 17 00:00:00 2001 From: toknow-gh Date: Mon, 26 Dec 2022 20:16:57 +0800 Subject: [PATCH 2444/3123] Translating talk\20200406 How to Use a Differential Analyzer (to Murder People).md --- ...406 How to Use a Differential Analyzer (to Murder People).md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md b/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md index 440d3fa159..33c7b47d73 100644 --- a/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md +++ b/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2020/04/06/differential-analyzer.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "toknow-gh" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From fab40efe8cc5df7e5d934350cc9779b1750aa04f Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 27 Dec 2022 09:43:48 +0800 Subject: [PATCH 2445/3123] translated --- ...Try this Python-based file manager on Linux.md | 108 ------------------ ...Try this Python-based file manager on Linux.md | 108 ++++++++++++++++++ 2 files changed, 108 insertions(+), 108 deletions(-) delete mode 100644 sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md create mode 100644 translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md diff --git a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md deleted file mode 100644 index 6a349bd658..0000000000 --- a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "Try this Python-based file manager on Linux" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Try this Python-based file manager on Linux -====== - -Dragonfly Navigator is a general-purpose file manager written in Python and Qt. It's easy to install, easy to use, and a great example of what Python can do. - -Python is a popular language for several reasons, but I think one of its primary strengths is that it's equally useful to beginner-level programmers and to experienced coders. There's something exciting about a language you can take from [drawing basic geometric shapes][1] to [scraping the web][2] to programming a zombie apocalypse [video game][3], or writing desktop applications you can use every day. And that's what Dragonfly Navigator is: a desktop utility that everyone can use. - -### Installing Dragonfly Navigator - -To install Dragonfly Navigator, first download the source code from its [Git repository][4]. If you're on Debian Linux or similar, download the `.deb` file. If you're using Fedora, CentOS, Mageia, OpenMandriva, or similar, then download the `.tar.gz` file. - -Dragonfly Navigator has a few dependencies. Because you aren't installing it through your package manager, it's up to you to resolve those. There are just two, so use your package manager (`dnf` or `apt`) to find and install them: - -- PyQt5, also called `python-qt5` -- Python PIL, also called `pillow` - -### Launching Dragonfly Navigator - -To launch Dragonfly Navigator, either install the `.deb` file (on Debian-based systems) or unarchive the `.tar.gz` file: - -``` -$ tar xvf dragonfly*gz -``` - -On Debian-based systems, Dragonfly Navigator appears in your application menu. ON other systems, you must launch it manually unless you [manually install it][5]. - -For now, I'm not installing it, so I launch it manually: - -``` -$ cd dragonfly -$ ./dragonfly -``` - -![Dragonfly Navigator is a two-panel file manager][6] - -### Dual pane - -Dragonfly Navigator is a two-panel file manager, meaning that it's always showing you two directories. At launch, both directories happen to be your home directory. You can browse through files and folders in either panel. They function exactly the same, and it only matters which panel you're "in" when you start copying or moving files. - -### Open a directory - -To open a directory, double-click it. By default, the directory opens in that same pane. If you want to utilize the two-panel layout, though, hold down the **Ctrl** key as you double-click to display its contents in the other panel. - -### Open a file - -To open a file, double-click or right-click on it. - -Yes, you can right-click a file to open it. That takes some getting used to, if you're used to a right-click bringing up a contextual menu. There is no contextual menu in Dragonfly Navigator, though, and you might be surprised at how much time you feel like you're saving yourself when you reduce the very common action of opening a file to just one click. It may seem silly now, but trust me you'll grow to cherish it. - -### Quick preview - -Some files are available for a quick preview so you don't have to open them in any particular application. To preview a file, hover your mouse over it and press the **Alt** key on your keyboard. A preview appears in the opposite panel. - -![The second panel of Dragonfly Navigator can be used as a preview pane.][7] - -### Copying and moving files - -To copy or move a file from one directory to another (or a directory to a directory), there are a few steps. - -- In one panel, navigate to the destination directory. This is the location you want to copy a file _to_. -- In the other panel, select the file you want to copy. -- Click the **Copy** button in the middle strip of Dragonfly Navigator. - -For moving a file, follow the same steps but click the **Move** button instead. - -If you're not used to a dual-panel file manager, this feels unfamiliar at first. But if you think about it, there are several steps required to copy a file in your usual file manager (find the file, open another window, drag-and-drop, and so on.) After you do it a few times, it becomes second nature. - -### Selecting files - -Normally, you click a file or folder to make it your active selection. That's probably no different than your current file manager, or at least to some file manager you've used in the past. - -To select multiple items in a range, click one file, and then hold the **Shift** key and click another file. All items between the two files you clicked are also selected. - -To select multiple arbitrary files, hold the **Ctrl** key and click on the files you want selected. - -### The power of Qt and Python - -The Qt toolkit is a powerful programming utility, and Python is capable of creating great applications with it. I've only covered the basics of Dragonfly Navigator in this article, so download it, read the docs, click around, explore it, and maybe you'll have found a fun new file manager. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator - -作者:[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/article/17/10/python-101#turtle -[2]: https://opensource.com/article/20/5/web-scraping-python -[3]: https://opensource.com/downloads/python-gaming-ebook -[4]: https://github.com/suncore/dflynav/releases -[5]: https://opensource.com/article/18/1/how-install-apps-linux -[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp -[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp diff --git a/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md new file mode 100644 index 0000000000..1751281710 --- /dev/null +++ b/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md @@ -0,0 +1,108 @@ +[#]: subject: "Try this Python-based file manager on Linux" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 Linux 上试试这个基于 Python 的文件管理器 +====== + +Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。它易于安装和使用,并且是 Python 可以做什么的一个很好的例子。 + +Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从[绘制基本几何形状][1]到[抓取网页][2]再到编写僵尸启示录[游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。 + +### 安装 Dragonfly Navigator + +要安装 Dragonfly Navigator,首先从 [Git 仓库][4]下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。 + +Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安装它,所以由你来解决这些问题。它只有两个依赖,所以使用你的包管理器(`dnf` 或 `apt`)找到并安装它们: + +- PyQt5,也称为 `python-qt5` +- Python PIL,也称为 `pillow` + +### 启动 Dragonfly Navigator + +要启动 Dragonfly Navigator,请安装 `.deb` 文件(在基于 Debian 的系统上)或解压缩 `.tar.gz` 文件: + +``` +$ tar xvf dragonfly*gz +``` + +在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你[手动安装][5]。 + +现在,我没有安装它,所以我手动启动它: + +``` +$ cd dragonfly +$ ./dragonfly +``` + +![Dragonfly Navigator is a two-panel file manager][6] + +### 双面板 + +Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向你显示两个目录。在启动时,这两个目录恰好是你的主目录。你可以在任一面板中浏览文件和文件夹。它们的功能完全相同,只有当你开始复制或移动文件时你“位于”哪个面板中才重要。 + +### 打开目录 + +要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 **Ctrl** 键以在另一个面板中显示其内容。 + +### 打开文件 + +要打开文件,请双击或右键单击它。 + +是的,你可以右键单击文件将其打开。如果你习惯于右键单击调出上下文菜单,那么这需要一些时间来适应。不过,Dragonfly Navigator 中没有上下文菜单,你可能会惊讶地发现,当你将打开文件这一非常常见的操作减少到只需单击一次时,你会觉得自己节省了多少时间。现在可能看起来很傻,但相信我,你会逐渐珍惜它的。 + +### 快速预览 + +某些文件可用于快速预览,因此你不必在任何特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 **Alt** 键。预览出现在对面的面板中。 + +![The second panel of Dragonfly Navigator can be used as a preview pane.][7] + +### 复制和移动文件 + +要将文件从一个目录复制或移动到另一个目录(或从一个目录到另一个目录),有几个步骤。 + +- 在一个面板中,进入目标目录。这是你要将文件复制到的位置。 +- 在另一个面板中,选择要复制的文件。 +- 单击 Dragonfly Navigator 中间条中的**复制**按钮。 + +要移动文件,请按照相同的步骤操作,但要单击**移动**按钮。 + +如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它 成为第二天性。 + +### 选择文件 + +通常,你单击一个文件或文件夹以使其成为你的活动选择。这可能与你当前的文件管理器没有什么不同,或者至少与你过去使用过的某些文件管理器没有什么不同。 + +要选择一个范围内的多个项目,请单击一个文件,然后按住 **Shift** 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。 + +要选择多个任意文件,请按住 **Ctrl** 键并单击要选择的文件。 + +### Qt 和 Python 的力量 + +Qt 工具包是一个强大的编程程序,Python 能够用它创建出色的应用。我在本文中只介绍了 Dragonfly Navigator 的基础知识,所以请下载它,阅读文档,点击并探索它,也许你会发现一个有趣的新文件管理器。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/17/10/python-101#turtle +[2]: https://opensource.com/article/20/5/web-scraping-python +[3]: https://opensource.com/downloads/python-gaming-ebook +[4]: https://github.com/suncore/dflynav/releases +[5]: https://opensource.com/article/18/1/how-install-apps-linux +[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp +[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp From 87137531cd08b29423e0959e146ad424d6a77166 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 27 Dec 2022 09:48:00 +0800 Subject: [PATCH 2446/3123] translating --- .../20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md index 1d664feba4..4761597588 100644 --- a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md +++ b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/downgrade-flatpak-packages/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 830793c808b7c3125c3b045a6e8e1ac8aca9f14f Mon Sep 17 00:00:00 2001 From: Donkey Date: Tue, 27 Dec 2022 09:54:39 +0800 Subject: [PATCH 2447/3123] translating --- .../tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md index 02f5fa8a79..60d1e2dd9f 100644 --- a/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md +++ b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/git-tips-technical-writers" [#]: author: "Maximilian Kolb https://opensource.com/users/kolb" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Donkey-Hao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -110,7 +110,7 @@ via: https://opensource.com/article/22/11/git-tips-technical-writers 作者:[Maximilian Kolb][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Donkey-Hao](https://github.com/Donkey-Hao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a0f54db92238673b44793bf8cfe44f6ee6cad9fe Mon Sep 17 00:00:00 2001 From: duoluoxiaosheng <554765662@qq.com> Date: Tue, 27 Dec 2022 16:28:00 +0800 Subject: [PATCH 2448/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?=20(#28322)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 12261703 * 120262209 * renamed: "sources/tech/20221221.3 \342\255\220\357\270\217\342\255\220\357\270\217 Open source solutions for EV charging.md" -> "translated/tech/20221221.3 \342\255\220\357\270\217\342\255\220\357\270\217 Open source solutions for EV charging.md" * modified: "translated/tech/20221221.3 \342\255\220\357\270\217\342\255\220\357\270\217 Open source solutions for EV charging.md" * 优化个别翻译 * 更新 Co-authored-by: wangcharley --- ...️⭐️ Open source solutions for EV charging.md | 76 ------------------- ...️⭐️ Open source solutions for EV charging.md | 76 +++++++++++++++++++ 2 files changed, 76 insertions(+), 76 deletions(-) delete mode 100644 sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md create mode 100644 translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md deleted file mode 100644 index 45bf829d5e..0000000000 --- a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md +++ /dev/null @@ -1,76 +0,0 @@ -[#]: subject: "Open source solutions for EV charging" -[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging" -[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" -[#]: collector: "lkxed" -[#]: translator: "duoluoxiaosheng" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Open source solutions for EV charging -====== - -Maybe you hate pumping gas in the cold (or heat), or you care about the environment. Maybe the latest gas prices and general inflation has you thinking more about stretching your money. Perhaps you simply think electric vehicles (EVs) look cool. No matter the reason, you're excited about your next vehicle being an EV and you're not alone! The EV market share is set to [expand to 30% by 2040][1]. The [US government provides a handy comparison tool][2] to show that the cost of ownership of an EV easily beats owning and operating fossil fuel vehicles. Despite this, EV charging costs can still hit you hard in your wallet. - -你讨厌在寒冷或者酷热的时候加油,你关心环境问题。最新的油价和通货膨胀让你更多考虑挣钱的问题 - -One of the most elegant ways to solve cost problems in general is to apply open source principles to accelerate innovation. Fortunately for you, this has been done in the EV charging area to find a way to get low-cost electricity and low-cost chargers. - -To control the costs of EV charging, first you need low-cost electricity. In the old days, that would mean going from oil to coal, which is not a step up. Today, as it turns out, [solar photovoltaic (PV)][3] devices that convert sunlight directly into electricity normally provide the lowest-cost electricity. Coal companies are going bankrupt because they can no longer compete with clean solar power. This is also why [solar power is seeing explosive growth all over the world][4]. Many homeowners are putting [solar panels on their roofs][5] or on ground mounts in the backyard to cover all of their home’s electric needs. But how can you charge your EV with solar energy if you have limited roof area or a small backyard? - -### Open source PV parking canopy - -One approach that major corporations are taking is to make a PV canopy over their parking lots. If you want to do this yourself, a new [study][6] provides a full mechanical and economic analysis of three novel open source PV canopy systems: - -- Use an exclusively wood, single-parking-spot spanning system -- Use a wood and aluminum double-parking-spot spanning system -- Use a wood and aluminum cantilevered system - -The designs are presented as 5-by-6 stall builds, but all three systems are scalable to any amount of parking spots required. This includes a 1-stall 6kW system to charge a single car at home (as shown below). All of the racks are rated for a 25-year expected lifetime to match the standard PV warranty. - -![Image of a single car PV canopy.][7] - -The open source PV canopies are all designed to withstand a brutal Canadian winter. They also follow Canada’s strict building codes. So if you live anywhere else, the system as designed should still work for you. The complete [designs][8]and bill of materials of the canopies are provided, along with basic instructions. They are released with an open source license that enables anyone to fabricate them following the spirit of the free book about DIY solar power collectors [_To Catch the Sun_][9]. - -The results of the previously mentioned [study][6] show that open source designs are much less expensive than proprietary products. Single-span systems provide cost savings of 82-85%, double-span systems save 43-50%, and cantilevered systems save 31-40%. - -Most importantly, the designs give you more than enough energy (if you have a normal commute) to cover your charging needs. In the first year of operation, PV canopies can provide 157% of the energy needed to charge the least efficient EV currently on the market. - -![Image of an OpenEVSE charging station.][10] - -### Open source EV chargers - -Another way to cut the cost of EV ownership is to install an open source EV charger. [OpenEVSE][11] is an Arduino-based charging station composed of [open source software][12] and hardware which can be made DIY-style. They are small, lightweight, and portable, so you can use them at home or on the road. - -OpenEVSE powers charging stations for many EV manufacturers all over the world. You can adapt it to fit your requirements. OpenEVSE is now quite mature and supports advanced features including adjustable current, temperature monitoring, and a real-time power display. You can buy the hardware pre-assembled and ready to go. If you want to save more money (and have more fun) buy a kit and build it yourself. - -![Image of the OpenEVSE kit.][13] - -I hope to see more designs of EV power solutions in the future. Keep your eyes open, roll up your sleeves for some DIY, and enjoy assembling your open source, solar-powered EV charging solutions! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-ev-charging - -作者:[Joshua Pearce][a] -选题:[lkxed][b] -译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jmpearce -[b]: https://github.com/lkxed -[1]: https://about.bnef.com/electric-vehicle-outlook/ -[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect -[3]: https://opensource.com/article/21/11/open-source-solar-power -[4]: https://www.alliedmarketresearch.com/photovoltaic-market -[5]: https://opensource.com/article/22/12/open-source-solar-power-home -[6]: https://doi.org/10.3390/technologies10060114 -[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png -[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs -[9]: https://tocatchthesun.com/ -[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png -[11]: https://openevse.com/index.html -[12]: https://github.com/OpenEVSE -[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png diff --git a/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md new file mode 100644 index 0000000000..6121c46403 --- /dev/null +++ b/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md @@ -0,0 +1,76 @@ +[#]: subject: "Open source solutions for EV charging" +[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging" +[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" +[#]: collector: "lkxed" +[#]: translator: "duoluoxiaosheng" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +开源电动汽车充电解决方案 +====== + +也许你讨厌在寒冷或者酷热的时候加油,也许你关心环境问题。也许不断上涨的油价和通胀让你不得不考虑怎么更合理的安排开支。也许你只是认为电动汽车看起来很酷。不管什么原因,你都会因为即将拥有一辆电动汽车而感到激动,激动的不仅仅只有你。电动汽车的市场份额将在 [2040 年增长到 30%][1] 。[美国政府提供了一个简易的比较工具][2],用来展示维护一辆电动汽车的花费比维护一辆化石燃料汽车要少很多。尽管如此,电动汽车的充电费用仍然会给你的钱包带来沉重的负担。 + +通常,通过开源原则来加速创新是一种优雅的解决成本问题的方式。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。 + +为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic (PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是[太阳能发电在世界各地都爆炸性增长][4]的原因。许多房主把[太阳能电池板放到他们的房顶][5]或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢? + +### 开源光伏停车篷 + +大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的[研究][6]提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。 + +- 使用纯木材的单一停车位横跨系统 +- 使用木材和铝的双停车位横跨系统 +- 使用木材和铝的悬臂系统 + +这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6kW 的家用单车充电系统(如下图)。所有的支架都有25年的预期寿命来配合标准的光伏保修。 + +![Image of a single car PV canopy.][7] + +这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的[完整设计][8]以及材料清单,包括基本说明都有提供。它们以开放源码许可的方式发布,保证任何人都可以依照免费的关于 DIY 太阳能收集器的书籍 [《拥抱太阳》][9]_To Catch the Sun_制作它。 + +前面提到的[研究][6]结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。 + +最重要的是,这些设计给你提供了足够多的能源(如果你只是正常通勤)来满足你的充电需求。在运行的第一年,光伏顶篷可以提供目前市场上效率最低的电动汽车充电所需电量的 157% 。 + +![Image of an OpenEVSE charging station.][10] + +### 开源电动汽车充电桩 + +减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由[开源软件][12]和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。 + +OpenEVSE 为世界各地的许多电动车制造商提供充电站。你可以根据自己的需求调整它。OpenEVSE 已经相当成熟,支持许多先进的功能,包括可调电流,温度检测和实时功率显示。你可以购买预先组装好的硬件马上体验。如果你想体验更多的乐趣节省更多的钱,可以购买一套套件自己动手制作。 + +![Image of the OpenEVSE kit.][13] + +我希望未来可以看到更多关于电动汽车充电解决方案的设计.睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。 + + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-ev-charging + +作者:[Joshua Pearce][a] +选题:[lkxed][b] +译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jmpearce +[b]: https://github.com/lkxed +[1]: https://about.bnef.com/electric-vehicle-outlook/ +[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect +[3]: https://opensource.com/article/21/11/open-source-solar-power +[4]: https://www.alliedmarketresearch.com/photovoltaic-market +[5]: https://opensource.com/article/22/12/open-source-solar-power-home +[6]: https://doi.org/10.3390/technologies10060114 +[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png +[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs +[9]: https://tocatchthesun.com/ +[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png +[11]: https://openevse.com/index.html +[12]: https://github.com/OpenEVSE +[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png From 10a20d2eccd74385f9c552b16ed502e3d908908d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 27 Dec 2022 17:18:07 +0800 Subject: [PATCH 2449/3123] RP @duoluoxiaosheng https://linux.cn/article-15385-1.html --- ...️⭐️ Open source solutions for EV charging.md | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) rename {translated/tech => published}/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md (65%) diff --git a/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md similarity index 65% rename from translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md rename to published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md index 6121c46403..aa952da127 100644 --- a/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md +++ b/published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md @@ -3,34 +3,38 @@ [#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" [#]: collector: "lkxed" [#]: translator: "duoluoxiaosheng" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15385-1.html" 开源电动汽车充电解决方案 ====== +> 利用太阳能、硬件和开源来建立你自己的电动车充电站。 + +![][0] + 也许你讨厌在寒冷或者酷热的时候加油,也许你关心环境问题。也许不断上涨的油价和通胀让你不得不考虑怎么更合理的安排开支。也许你只是认为电动汽车看起来很酷。不管什么原因,你都会因为即将拥有一辆电动汽车而感到激动,激动的不仅仅只有你。电动汽车的市场份额将在 [2040 年增长到 30%][1] 。[美国政府提供了一个简易的比较工具][2],用来展示维护一辆电动汽车的花费比维护一辆化石燃料汽车要少很多。尽管如此,电动汽车的充电费用仍然会给你的钱包带来沉重的负担。 -通常,通过开源原则来加速创新是一种优雅的解决成本问题的方式。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。 +通常,解决成本问题的最优雅的方法之一是应用开源原则来加速创新。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。 -为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic (PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是[太阳能发电在世界各地都爆炸性增长][4]的原因。许多房主把[太阳能电池板放到他们的房顶][5]或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢? +为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic(PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是 [太阳能发电在世界各地都爆炸性增长][4] 的原因。许多房主把 [太阳能电池板放到他们的房顶][5] 或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢? ### 开源光伏停车篷 -大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的[研究][6]提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。 +大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的 [研究][6] 提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。 - 使用纯木材的单一停车位横跨系统 - 使用木材和铝的双停车位横跨系统 - 使用木材和铝的悬臂系统 -这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6kW 的家用单车充电系统(如下图)。所有的支架都有25年的预期寿命来配合标准的光伏保修。 +这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6 千瓦的家用单车充电系统(如下图)。所有的支架都有 25 年的预期寿命来配合标准的光伏保修。 ![Image of a single car PV canopy.][7] -这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的[完整设计][8]以及材料清单,包括基本说明都有提供。它们以开放源码许可的方式发布,保证任何人都可以依照免费的关于 DIY 太阳能收集器的书籍 [《拥抱太阳》][9]_To Catch the Sun_制作它。 +这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的 [完整设计][8] 以及材料清单,包括基本说明都有提供。它们以开源许可的方式发布,保证任何人都可以依照关于 DIY 太阳能收集器的免费书籍 《[拥抱太阳][9]To Catch the Sun》 制作它。 -前面提到的[研究][6]结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。 +前面提到的 [研究][6] 结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。 最重要的是,这些设计给你提供了足够多的能源(如果你只是正常通勤)来满足你的充电需求。在运行的第一年,光伏顶篷可以提供目前市场上效率最低的电动汽车充电所需电量的 157% 。 @@ -38,15 +42,13 @@ ### 开源电动汽车充电桩 -减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由[开源软件][12]和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。 +减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由 [开源软件][12] 和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。 OpenEVSE 为世界各地的许多电动车制造商提供充电站。你可以根据自己的需求调整它。OpenEVSE 已经相当成熟,支持许多先进的功能,包括可调电流,温度检测和实时功率显示。你可以购买预先组装好的硬件马上体验。如果你想体验更多的乐趣节省更多的钱,可以购买一套套件自己动手制作。 ![Image of the OpenEVSE kit.][13] -我希望未来可以看到更多关于电动汽车充电解决方案的设计.睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。 - - +我希望未来可以看到更多关于电动汽车充电解决方案的设计。睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。 -------------------------------------------------------------------------------- @@ -55,7 +57,7 @@ via: https://opensource.com/article/22/12/open-source-ev-charging 作者:[Joshua Pearce][a] 选题:[lkxed][b] 译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -65,7 +67,7 @@ via: https://opensource.com/article/22/12/open-source-ev-charging [2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect [3]: https://opensource.com/article/21/11/open-source-solar-power [4]: https://www.alliedmarketresearch.com/photovoltaic-market -[5]: https://opensource.com/article/22/12/open-source-solar-power-home +[5]: https://linux.cn/article-15374-1.html [6]: https://doi.org/10.3390/technologies10060114 [7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png [8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs @@ -74,3 +76,4 @@ via: https://opensource.com/article/22/12/open-source-ev-charging [11]: https://openevse.com/index.html [12]: https://github.com/OpenEVSE [13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/27/171530ayuyongagafyxp5o.jpg \ No newline at end of file From 6340e230f0e16a215c4d92da22a2eeeea27c30f9 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Tue, 27 Dec 2022 17:19:01 +0800 Subject: [PATCH 2450/3123] translated (#28323) --- .../20220729 Learn Rust by debugging Rust.md | 242 ------------------ .../20220729 Learn Rust by debugging Rust.md | 242 ++++++++++++++++++ 2 files changed, 242 insertions(+), 242 deletions(-) delete mode 100644 sources/tech/20220729 Learn Rust by debugging Rust.md create mode 100644 translated/tech/20220729 Learn Rust by debugging Rust.md diff --git a/sources/tech/20220729 Learn Rust by debugging Rust.md b/sources/tech/20220729 Learn Rust by debugging Rust.md deleted file mode 100644 index 13c9c6f79f..0000000000 --- a/sources/tech/20220729 Learn Rust by debugging Rust.md +++ /dev/null @@ -1,242 +0,0 @@ -[#]: subject: "Learn Rust by debugging Rust" -[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings" -[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn Rust by debugging Rust -====== -Rustlings is an open source project by the Rust team that helps you learn Rust through the process of debugging. - -![Ferris the crab under the sea, unofficial logo for Rust programming language][1] - -Image by: Opensource.com - -In my previous [article about rustup][2], I showed you how to install the Rust toolchain. Well, what good is the toolchain if you won’t be using it to get more hands-on with Rust? Learning any language involves reading existing code and writing a lot of sample programs. That's a good way to become proficient in a language. However, there's a third way: debugging code. - -Learning through debugging involves trying to compile a pre-written (buggy) sample program, understanding the errors generated by the compiler, fixing the sample code, and then re-compiling it. Repeat that process until the code successfully compiles and runs. - -[Rustlings][3] is an open source project by the Rust team that helps you learn Rust through the process of debugging. It also provides you with a lot of hints along the way. If you're a beginner to Rust and have either started or completed reading the Rust book, then rustlings is the ideal next step. Rustlings helps you apply what you've learned from the book, and move to working on bigger projects. - -### Installing rustlings - -I'm using (and recommend) a Fedora machine to try rustlings, but any Linux distribution works. To install rustlings, you must download and run its install script. It's recommended that you do this as a normal user (not root) without any special privileges. - -Remember, for you to be able to use rustlings, you need the Rust toolchain available on your system. If you don't have that already, please refer to my [article on rustup][4]. - -Once you're ready, download the installation script: - -``` -$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh  > rustlings_install.sh -$ file rustlings_install.sh -rustlings_install.sh: Bourne-Again shell script, ASCII text executable -``` - -Inspect the script to learn what it does: - -``` -$ less rustlings_install.sh -``` - -And then run it to install: - -``` -$ bash rustlings_install.sh -[...] -Installing /home/tux/.cargo/bin/rustlings -Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`) -All done! -``` - -Run 'rustlings' to get started. - -### Rustlings exercises - -The installation provides you with the `rustlings` command. Run it along with the `--help` flag to see what options are available. - -``` -$ rustlings --help -``` - -The installation script also clones the rustlings Git repository, and installs all the dependencies required to run the sample programs. You can view the sample programs within the exercises directory under `rustlings` : - -``` -$ cd rustlings -$ pwd -/home/tux/rustlings -$ ls -AUTHORS.md  Cargo.toml        CONTRIBUTING.md  info.toml install.sh README.md  target Cargo.lock  CHANGELOG.md  exercises install.ps1  LICENSE src tests -$ ls -m exercises/ -advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs, -modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md, -standard_library_types, strings, structs, tests, threads, traits, variables -``` - -### List all exercises from the command line - -The `rustlings` command provides you with a `list` command which displays each sample program, its complete path, and the status (which defaults to **pending**.) - -``` -$ rustlings list -Name         Path                                 Status -intro1       exercises/intro/intro1.rs            Pending -intro2       exercises/intro/intro2.rs            Pending -variables1   exercises/variables/variables1.rs    Pending -variables2   exercises/variables/variables2.rs    Pending -variables3   exercises/variables/variables3.rs    Pending -[...] -``` - -Near the end of the output, you're given a progress report so you can track your work. - -``` -Progress: You completed 0 / 84 exercises (0.00 %). -``` - -### View sample programs - -The `rustings list` command shows you what programs are available, so at any time you can view the code of those programs by copying the complete paths into your terminal as an argument for the [cat][5] or [less][6] commands: - -``` -$ cat exercises/intro/intro1.rs -``` - -### Verify your programs - -Now you can start debugging programs. You can do that using the `verify` command. Notice that rustlings chooses the first program in the list (`intro1.rs` ), tries to compile it, and succeeds: - -``` -$ rustlings verify -Progress: [-----------------------------------] 0/84 -✅ Successfully ran exercises/intro/intro1.rs! - -You can keep working on this exercise, -or jump into the next one by removing the `I AM NOT DONE` comment: - - 6 |  // Execute the command `rustlings hint intro1` for a hint. - 7 |   - 8 |  // I AM NOT DONE - 9 | -``` - -As you can see from the output, even though the sample code compiles, there's work yet to be done. Each sample program has the following comment in its source file: - -``` -$ grep "NOT DONE" exercises/intro/intro1.rs -// I AM NOT DONE -``` - -Although the compilation of the first program worked fine, rustlings won't move to the next program until you remove the `I AM NOT DONE` comment. - -### Moving to the next exercise - -Once you have removed the comment from `intro1.rs`, you can move to the next exercise by running the `rustlings verify` command again. This time, you may notice that rustlings tries to compile the next program (`intro2.rs` ) in the series, but runs into an error. You're expected to debug that issue, fix it, and then move forward. This is a critical step, allowing you to understand why Rust says a program has bugs. - -``` -$ rustlings verify -Progress: [>------------------------] 1/84 -⚠️  Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output: -error: 1 positional argument in format string, but no arguments were given - --> exercises/intro/intro2.rs:8:21 -  | -8 |         println!("Hello {}!"); -  |                         ^^ - -error: aborting due to previous error -``` - -### Getting a hint - -Rustlings has a handy `hint` argument, which tells you exactly what's wrong with the sample program, and how to fix it. You can think of it as an add-on help option, in addition to what the compiler error message tells you. - -``` -$ rustlings hint intro2 -Add an argument after the format string. -``` - -Based on the above hint, fixing the program is easy. All you need to do is add an additional argument to the `println` statement. This diff should help you understand the changes: - -``` -< println!("Hello {}!", "world"); ---- -> println!("Hello {}!"); -``` - -Once you make that change, and removed the `NOT DONE` comment from the source code, you can run `rustlings verify` again to compile and run the code. - -``` -$ rustlings verify -Progress: [>-------------------------------------] 1/84 -✅ Successfully ran exercises/intro/intro2.rs! -``` - -### Track progress - -You aren't going to finish all of the exercises in a day, and it's easy to lose track of where you left off. You can run the `list` command to see the status of your work. - -``` -$ rustlings list -Name         Path                                  Status -intro1       exercises/intro/intro1.rs             Done   -intro2       exercises/intro/intro2.rs             Done   -variables1   exercises/variables/variables1.rs     Pending -variables2   exercises/variables/variables2.rs     Pending -variables3   exercises/variables/variables3.rs     Pending -[...] -``` - -### Run specific exercises - -If you don't want to start from the beginning and skip a few exercises, rustlings allows you to focus on specific exercises using the `rustlings run` command. This runs a specific program without requiring the previous lesson to be verified. For example: - -``` -$ rustlings run intro2 -Hello world! -✅ Successfully ran exercises/intro/intro2.rs -$ rustlings run variables1 -``` - -Typing exercise names can become tedious, but rustlings provides you with a handy `next` command so you can move to the next exercise in the series. - -``` -$ rustlings run next -``` - -### Alternative watch command - -If you don't want to keep typing `verify` after each modification you make, you can run the `watch` command in a terminal window, and then keep modifying the source code to fix issues. The `watch` command detects these modifications, and keeps re-compiling the program to see whether the issue has been fixed. - -``` -$ rustlings watch -``` - -### Learn by debugging - -The Rust compiler is known to provide very meaningful error messages, which helps you understand issues in your code. This usually leads to faster debugging. Rustlings is a great way to practice Rust, to get used to reading error messages, and understand the Rust language. Check out the recent features of Rustlings 5.0.0 on [GitHub][7]. - -**[[ Practice programming with Rust. Download our Rust cheat sheet. ]][8]** - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/7/learn-rust-rustlings - -作者:[Gaurav Kamathe][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/gkamathe -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png -[2]: https://opensource.com/article/22/6/rust-toolchain-rustup -[3]: https://github.com/rust-lang/rustlings -[4]: https://opensource.com/article/22/6/rust-toolchain-rustup -[5]: https://opensource.com/article/19/2/getting-started-cat-command -[6]: https://opensource.com/article/18/4/using-less-view-text-files-command-line -[7]: https://github.com/rust-lang/rustlings/releases/tag/5.0.0 -[8]: https://opensource.com/downloads/rust-cheat-sheet diff --git a/translated/tech/20220729 Learn Rust by debugging Rust.md b/translated/tech/20220729 Learn Rust by debugging Rust.md new file mode 100644 index 0000000000..f725d789dc --- /dev/null +++ b/translated/tech/20220729 Learn Rust by debugging Rust.md @@ -0,0 +1,242 @@ +[#]: subject: "Learn Rust by debugging Rust" +[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings" +[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +以调试 Rust 来学习 Rust +====== +Rustlings 是由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。 + +![Ferris the crab under the sea, unofficial logo for Rust programming language][1] + +图片来源:Opensource.com + +在我上一篇[关于 rustup 的文章][2]中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又有什么用?学习任何语言都包括阅读现有的代码和写很多的示例程序。这是精通一门语言的好方法。然而,我们还可以走第三条路:调试代码。 + +通过调试来学习牵扯到尝试去编译一个已经写好的(满是漏洞的)示例程序,理解编译器生成的错误信息,修复示例代码,然后再重新编译。重复这个过程直到代码能够成功被编译并运行。 + +[Rustlings][3] 是一个由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者并且刚开始读或已经读完了 Rust 书,那么 rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学,并转向开发更大的项目。 + +### 安装 rustlings + +我使用(并推荐)Fedora 电脑来体验 rustlings,但是任何 Linux 发行版都可以。要安装 rustlings,你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户(非 root 用户)来运行脚本。 + +记住,你需要 Rust 工具链来使用 rustlings。如果你还没有这些工具链,请参考我[关于 rustup 的文章][4]。 + +当你准备好时,下载这个安装脚本: + +``` +$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh  > rustlings_install.sh +$ file rustlings_install.sh +rustlings_install.sh: Bourne-Again shell script, ASCII text executable +``` + +阅读脚本以了解它会做什么: + +``` +$ less rustlings_install.sh +``` + +然后运行安装: + +``` +$ bash rustlings_install.sh +[...] +Installing /home/tux/.cargo/bin/rustlings +Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`) +All done! +``` + +运行 'rustlings' 以开始。 + +### Rustlings 练习 + +你现在可以使用命令 `rustlings`。与旗标 `--help` 一起执行来查看可选的选项。 + +``` +$ rustlings --help +``` + +这个安装脚本也克隆了 rustlings 的 Git 仓库,并安装了运行示例程序所需的依赖。你可以在 `ruslings` 底下的 exercises 目录查阅这些示例程序。 + +``` +$ cd rustlings +$ pwd +/home/tux/rustlings +$ ls +AUTHORS.md  Cargo.toml        CONTRIBUTING.md  info.toml install.sh README.md  target Cargo.lock  CHANGELOG.md  exercises install.ps1  LICENSE src tests +$ ls -m exercises/ +advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs, +modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md, +standard_library_types, strings, structs, tests, threads, traits, variables +``` + +### 从命令行列出所有练习 + +命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 **pending**)。 + +``` +$ rustlings list +Name         Path                                 Status +intro1       exercises/intro/intro1.rs            Pending +intro2       exercises/intro/intro2.rs            Pending +variables1   exercises/variables/variables1.rs    Pending +variables2   exercises/variables/variables2.rs    Pending +variables3   exercises/variables/variables3.rs    Pending +[...] +``` + +在显示结尾处,你会有一个进度报告用来追踪进度。 + +``` +Progress: You completed 0 / 84 exercises (0.00 %). +``` + +### 查看示例程序 + +命令 `rustlings list` 向你展示了现有的程序,所以你可以在任何时候查看这些程序的代码,你只需要将完整路径复制到你的终端作为命令 [cat][5] 或者 [less][6] 的参数: + +``` +$ cat exercises/intro/intro1.rs +``` + +### 验证你的程序 + +现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 rustlings 选择了列表里的第一个程序 (`intro1.rs`) 并尝试去编译它,最后编译成功: + +``` +$ rustlings verify +Progress: [-----------------------------------] 0/84 +✅ Successfully ran exercises/intro/intro1.rs! + +You can keep working on this exercise, +or jump into the next one by removing the `I AM NOT DONE` comment: + + 6 |  // Execute the command `rustlings hint intro1` for a hint. + 7 |   + 8 |  // I AM NOT DONE + 9 | +``` + +正如你从结果中所见,尽管示例代码成功编译了,你依然需要做一些工作。每个示例程序的源文件中都带有以下注释: + +``` +$ grep "NOT DONE" exercises/intro/intro1.rs +// I AM NOT DONE +``` + +虽然第一个程序的编译没有问题,除非你去掉注释 `I AM NOT DONE`,rustlings 不会移到下一个程序。 + +### 来到下一个练习 + +一旦你从 `intro1.rs` 中去掉这些注释,你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次,你会发现 rustlings 尝试去编译这个系列中的下一个程序(`intro2.rs`),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。 + +``` +$ rustlings verify +Progress: [>------------------------] 1/84 +⚠️  Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output: +error: 1 positional argument in format string, but no arguments were given + --> exercises/intro/intro2.rs:8:21 +  | +8 |         println!("Hello {}!"); +  |                         ^^ + +error: aborting due to previous error +``` + +### 来点提示 + +Rustlings 有一个非常好用的 `hint` 参数,这个参数会告诉你示例程序中哪里出错了,以及如何去修复它。你可以认为这是在编译错误信息基础之上,一个额外的帮助选项。 + +``` +$ rustlings hint intro2 +Add an argument after the format string. +``` + +基于以上提示,修复这个程序就很简单了。你只需要在语句 `println` 中加一个额外的参数。这个 diff 对比应该能帮你理解发生的变化: + +``` +< println!("Hello {}!", "world"); +--- +> println!("Hello {}!"); +``` + +一旦你做出了修改,并从源代码中去掉了注释 `NOT DONE`,你可以再一次运行 `rustlings verify` 来编译并运行代码。 + +``` +$ rustlings verify +Progress: [>-------------------------------------] 1/84 +✅ Successfully ran exercises/intro/intro2.rs! +``` + +### 追踪进度 + +你无法在一天之内做完所有的练习,忘记练到哪也很常见。你可以执行命令 `list` 来查看你的练习状态。 + +``` +$ rustlings list +Name         Path                                  Status +intro1       exercises/intro/intro1.rs             Done   +intro2       exercises/intro/intro2.rs             Done   +variables1   exercises/variables/variables1.rs     Pending +variables2   exercises/variables/variables2.rs     Pending +variables3   exercises/variables/variables3.rs     Pending +[...] +``` + +### 运行特定的练习 + +如果你不想从头开始并且想要跳过一些练习,rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如: + +``` +$ rustlings run intro2 +Hello world! +✅ Successfully ran exercises/intro/intro2.rs +$ rustlings run variables1 +``` + +敲入练习名字可能会变得乏味,但 rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。 + +``` +$ rustlings run next +``` + +### 替代命令 watch + +如果你不想在每次修改后还要敲一次 `verify`,你可以在终端窗口中运行命令 `watch`,然后再继续修改源代码以解决问题。命令 `watch` 会检测到这些修改,然后重新编译以查看这些问题是否被解决。 + +``` +$ rustlings watch +``` + +### 通过调试学习 + +Rust 编译器以提供非常有意义的错误信息而被熟知,这些错误信息会帮助你理解在你代码中的问题。这通常意味着更快的调试。Rustlings 是练习 Rust,学会阅读错误信息,并理解 Rust 语言的优秀途径。来看看 [GitHub][7] 上 Rustlings 5.0.0 的最新功能吧。 + +**[[ 学习 Rust 编程,来下载我们的 Rust 速查表。 ]][8]** + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/7/learn-rust-rustlings + +作者:[Gaurav Kamathe][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/gkamathe +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png +[2]: https://opensource.com/article/22/6/rust-toolchain-rustup +[3]: https://github.com/rust-lang/rustlings +[4]: https://opensource.com/article/22/6/rust-toolchain-rustup +[5]: https://opensource.com/article/19/2/getting-started-cat-command +[6]: https://opensource.com/article/18/4/using-less-view-text-files-command-line +[7]: https://github.com/rust-lang/rustlings/releases/tag/5.0.0 +[8]: https://opensource.com/downloads/rust-cheat-sheet From 511bab16b1ca622d5b1f92185a9fec8a9f7b0274 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 27 Dec 2022 17:38:18 +0800 Subject: [PATCH 2451/3123] RP @geekpi https://linux.cn/article-15386-1.html --- ...atform Music Player With Essential Features.md | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) rename {translated/tech => published}/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md (64%) diff --git a/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md similarity index 64% rename from translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md rename to published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md index 4c071ba0e5..d7ac11e4c3 100644 --- a/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md +++ b/published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md @@ -3,16 +3,18 @@ [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15386-1.html" -Harmonoid:具有基本功能的漂亮跨平台音乐播放器 +Harmonoid:基本够用的漂亮的跨平台音乐播放器 ====== -幸运的是,[Linux 的优秀开源音乐播放器][1]并不缺乏。过去我们已经介绍了多种选择。 +![][0] -在这里,我重点介绍一款免费使用、开源且可用于多种平台(包括 **Linux、Windows 和 Android**)的音乐播放器。 +幸运的是,[Linux 的优秀开源音乐播放器][1] 并不缺乏。过去我们已经介绍了多种选择。 + +在这里,我重点介绍一款免费使用(但不是自由开源软件),可用于多种平台(包括 Linux、Windows 和 Android)的音乐播放器。 ### Harmonoid:Material Design 的直观用户体验 @@ -22,7 +24,7 @@ Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在 它提供了一个优秀的用户界面。并且不使用 electron.js。所以,如果你讨厌 Electron,你可以试试这个。 -通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是 Google 的开源设计系统。 +通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是谷歌的开源设计系统。 ![harmonoid player info][5] @@ -32,7 +34,7 @@ Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在 ![harmonoid url][6] -如果你想要一个有良好 UI 和功能集的音乐播放器,我建议您尝试 Harmonoid。 +如果你想要一个有良好 UI 和功能集的音乐播放器,我建议你尝试一下 Harmonoid。 ### Harmonoid 的特点 @@ -40,18 +42,18 @@ Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在 [Harmonoid][8] 可能看起来像一个简单的音乐播放器,但它包含了一些最有价值的功能。他们包括: -- **在找到歌词的地方跟唱,或者你可以手动添加它们** -- **编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题** +- 跟唱功能,你可以找到歌词,或者你可以手动添加它们 +- 编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题 - 轻松分类和排序你的音乐列表 - 一个快速搜索功能来找到你要找的东西 - 缓存元数据以在你每次加载时提供快速体验 - 与 Windows 和 Linux 的良好集成支持 -- 支持Discord丰富的存在,以显示你的音乐以及艺术品和播放按钮 +- 支持在 Discord 中展示,可以显示你的音乐以及插图和播放按钮 - 调整音乐的速度、音量和音高 - 原始元数据读取器可读取你库中任何文件或歌曲的标签 - 播放由 MPV 提供 - .LRC 文件兼容性 -- **支持在线 URL (YouTube) 和广播流** +- 支持在线 URL(YouTube)和广播流 - 跨平台 - 多位艺术家支持 - 深色/浅色模式 @@ -64,7 +66,7 @@ Harmonoid 应该非常适合想要同时播放音乐或整理收藏的用户。 ### 在 Linux 上安装 Harmonoid -你可以从其[下载页面][10]获取 **.deb/.rpm** 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。 +你可以从其 [下载页面][10] 获取 .deb/.rpm 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。 此外,你需要使用以下命令安装 mpv 和 libmpv(对于 Ubuntu): @@ -76,7 +78,7 @@ sudo apt install mpv lipmpv-dev 你还可以在 [AUR][11] 上找到基于 Arch 的发行版的 Harmonoid。要探索有关该播放器的更多信息,请访问其 [GitHub 页面][12]和[官方网站][8]。 -_你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。_ +你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。 -------------------------------------------------------------------------------- @@ -85,21 +87,22 @@ via: https://itsfoss.com/harmonoid/ 作者:[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/) 荣誉推出 [a]: https://itsfoss.com/author/ankush/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/best-music-players-linux/ -[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png +[2]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player.png [3]: https://github.com/mpv-player/mpv/tree/master/libmpv [4]: https://mpv.io -[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png -[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png +[5]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player-info.png +[6]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-url.png +[7]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player-options.png [8]: https://harmonoid.com -[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png +[9]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-settings.png [10]: https://harmonoid.com/downloads [11]: https://aur.archlinux.org/packages/harmonoid-bin -[12]: https://github.com/harmonoid/harmonoid \ No newline at end of file +[12]: https://github.com/harmonoid/harmonoid +[0]: https://img.linux.net.cn/data/attachment/album/202212/27/173656kmq05d54llttls55.jpg \ No newline at end of file From 6a471cdeb9fe3969e84780e3205921f44dde302b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 28 Dec 2022 01:28:32 +0800 Subject: [PATCH 2452/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221226.1=20=E2=AD=90=EF=B8=8F=20Manjaro=20Linux=20?= =?UTF-8?q?22.0=20Releases=20Featuring=20Xfce=204.18=20and=20Linux=20Kerne?= =?UTF-8?q?l=206.1.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...es Featuring Xfce 4.18 and Linux Kernel 6.1.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md diff --git a/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md new file mode 100644 index 0000000000..545ff86782 --- /dev/null +++ b/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md @@ -0,0 +1,102 @@ +[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1" +[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1 +====== + +Manjaro Linux 22.0 has landed with good upgrades! + +![Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1][1] + +Manjaro Linux is a rolling release distro based on Arch Linux that focuses on providing a user-friendly and accessible experience. + +Since the release of '[Ruah][2]' in June, Manjaro's development has continued and has paved the way for the latest release, which is called '_Sikaris_'. + +This is one of the last distro releases (among the popular options) for 2022; let's see what it offers. + +### Manjaro 22 'Sikaris': What's New? + +![manjaro linux sikaris][3] + +The 'Sikaris' release has brought in many improvements; some notable ones include: + +- **Desktop Environment Upgrades** +- **Linux Kernel 6.1** +- **Dynamic Wallpapers** +- **Various User Experience improvements** + +#### Desktop Environment Upgrades + +This release has seen numerous improvements to the three distinct editions of Manjaro Linux. Let me take you through them. + +**For Manjaro GNOME:** GNOME 43 is being used. It has a redesigned system status menu that lets you quickly switch between the commonly used settings. + +They also updated their 'Layouts Switcher' application to include various improvements and fixes. + +![manjaro linux sikaris gnome][4] + +Furthermore, you can create your dynamic wallpaper and use [Gradience][5] to customize your theme. + +**For Manjaro KDE:** The 'Sikaris' release features the latest Plasma 5.26 desktop environment that features many improvements, such as animated wallpapers, new widgets, and Plasma big screen improvements. + +![manjaro linux sikaris kde][6] + +They have also made additional tweaks that allow the wallpaper to change according to the system's theme. + +In addition, the Dolphin file manager now has a new feature called '_Selection Mode_', that lets you select multiple files or folders. + +**For Manjaro Xfce:** Powered by Xfce 4.18, this edition receives the new file highlighting and recursive search features in the Thunar file manager. + +Probably the first distro to include the [newly released Xfce 4.18][7] out of the box. + +The panel has also been updated to allow maximized apps to fill the area behind the panel, and the panel length is now calculated in pixels rather than percentages. + +![manjaro linux sikaris xfce][8] + +Additionally, the Control Center now groups all the desktop modules for managing the system into one easy-to-use window. + +These features should improve your overall experience! 😃 + +#### Linux Kernel 6.1 + +Manjaro 22 'Sikaris' uses the various enhancements offered by [Linux Kernel 6.1][9]. + +Those include experimental support for Rust, initial support for Intel's upcoming Meteor Lake chips, improved ARM SoC support, and more. + +### Download Manjaro 22 + +Manjaro 22 'Sikaris' is available for both X86_64 and ARM systems, head over to the official [downloads page][10] to get access. + +[Download Manjaro 22][10] + +**For existing users,** you can just run '_sudo pacman -Syu_' in the command line to get this release of Manjaro Linux. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/manjaro-22-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png +[2]: https://news.itsfoss.com/manjaro-21-3-0-release/ +[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png +[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png +[5]: https://github.com/GradienceTeam/Gradience +[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png +[7]: https://news.itsfoss.com/xfce-4-18-release/ +[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png +[9]: https://news.itsfoss.com/linux-kernel-6-1-release/ +[10]: https://manjaro.org/download/ From ea421020d30452bc6144b2523642c6d13385f3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 28 Dec 2022 01:30:04 +0800 Subject: [PATCH 2453/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221227.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20Upcoming=20Code=20Editors=20that=20May=20Challenge=20the=20?= =?UTF-8?q?Supremacy=20of=20Visual=20Studio=20Code.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y Challenge the Supremacy of Visual Studio Code.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md diff --git a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md new file mode 100644 index 0000000000..35e43090f4 --- /dev/null +++ b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md @@ -0,0 +1,123 @@ +[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code" +[#]: via: "https://news.itsfoss.com/upcoming-code-editors/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code +====== + +Interesting code editors that might replace Visual Studio Code for you in 2023! + +![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1] + +Well, 2022 is coming to an end. + +We featured new remarkable code editors being released for Linux, starting from [Lite XL][2], to options like [Pulsar][3] and more. + +So, to commemorate that, I have compiled this list of upcoming code editors for Linux that have a strong chance of challenging the supremacy of [Visual Studio Code][4]. + +Let me take you through it. + +### 1. Pulsar + +![pulsar][5] + +[Pulsar][6] is a community-led open-source code editor aiming to be a replacement for the famous Atom code editor. + +The community behind it has been hard at work bringing this on par with the original Atom editor by introducing modern features with an updated architecture. + +So, if you were an Atom user, you could try this! + +It is available to download from the [official website][7], but do keep in mind that it is in its early development stages. + +### 2. Atom Community + +![atom community][8] + +Also rising from [the ashes][9] of the now-defunct Atom editor, '[Atom Community][10]' is a project meant to take over the concepts and ideas of its predecessor. + +They aim to get started by providing the most essential features and making it on par with the functionality available in the [atom-ide-ui][11] package. + +It has the potential to be something more, but in its current form, I would not suggest this to new users right now. They have a slightly different long-term goal when compared to Pulsar, which makes it another project worth taking a look at. + +But, for 2023, things could be different. + +Still, those who like an adventure can build it using the [source code][12]. + +### 3. Lapce + +![lapce][13] + +A lightweight and fast open-source code editor? + +That is what [Lapce][14] is! + +It is a Rust-based open-source code editor that focuses on providing such an experience. + +We covered it when it was in the pre-alpha stage, but in 2023 it can be something to watch out for. + +### 4. Zed + +![zed breadcrumbs][15] + +[Zed][16] is an upcoming code editor aiming to challenge VS Code's dominance. + +It is set to feature many features, such as Real-time collaboration, a minimal interface, code actions, a command palette, and [more][17]. + +In fact, Atom's founder, [Nathan Sobo][18] is behind this and has termed this as the '_spiritual successor_' to Atom. + +### 5. Lite XL + +![lite xl][19] + +[Lite XL][2] is an open-source code editor written in Lua, and only uses three megabytes of storage and around twenty megabytes of RAM. (compared to VS Code's ~550 MB). + +It could be to your liking if you were looking for a completely minimal code editor. + +You can get it right now from the [official website][20], it receives regular updates, and you can expect the same to be true in 2023. + +**Well, this is the end of this list and the year 2022.** 😃 + +_I may have missed some code editors, and I know you will let me know in the comments section. Feel free to share your thoughts!_ + +> 🌐 Follow us on [Mastodon][21] and [Twitter][22] to never miss an update! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/upcoming-code-editors/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png +[2]: https://itsfoss.com/lite-xl/ +[3]: https://news.itsfoss.com/pulsar-editor/ +[4]: https://code.visualstudio.com +[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png +[6]: https://pulsar-edit.dev +[7]: https://pulsar-edit.dev/download.html#releases +[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg +[9]: https://github.blog/2022-06-08-sunsetting-atom/ +[10]: https://atom-community.github.io +[11]: https://github.com/facebookarchive/atom-ide-ui +[12]: https://github.com/atom-community/atom +[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg +[14]: https://lapce.dev +[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg +[16]: https://zed.dev/ +[17]: https://zed.dev/features +[18]: https://twitter.com/nathansobo +[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg +[20]: https://lite-xl.com/en/downloads +[21]: https://mastodon.social/@itsfoss +[22]: https://twitter.com/itsfoss2 From 3910ce7ccb814798c86a5262aa6ebe5a2c1b50a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 28 Dec 2022 01:32:45 +0800 Subject: [PATCH 2454/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221227.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?oh=20my=20zsh=20and=20powerlevel10k=20A=20Match=20Made=20in=20H?= =?UTF-8?q?eaven.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...my zsh and powerlevel10k A Match Made in Heaven.md | 222 ++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md diff --git a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md new file mode 100644 index 0000000000..4972b6f039 --- /dev/null +++ b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md @@ -0,0 +1,222 @@ +[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven" +[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +oh my zsh and powerlevel10k: A Match Made in Heaven +====== + +**A quick and simple guide to transforming your zsh terminal shell with oh my zsh and powerlevel10k theme to make it look cool in Ubuntu and other Linux distros.** + +![][1] + +The default shell in most of the Linux distributions is bash. Bash is solid and a legacy utility. However, it lacks some customizations, such as nice colours, cursor support, etc. + +You can use another shell, zsh to enjoy additional tweaks and help you to extend your Bash shell experience. + +This crisp guide explains how to install zsh, oh my zsh and apply the powerlevel10k theme. + +### oh my zsh and powerlevel10k: Installation and configuration guide + +#### 1. Installing zsh and changing the shell + +Open a terminal and install zsh using the following command applicable to your distribution. + +**_Ubuntu, Debian, Linux Mint and all related distro_** + +``` +sudo apt install zsh +``` + +_**Fedora**_ + +``` +sudo dnf install zsh +``` + +**_Arch_** + +``` +pacman -S zsh +``` + +After installation is complete, find out the zsh install path + +``` +whereis zsh +``` + +Then change the shell using the zsh executable path for the current user. + +``` +chsh -s /usr/bin/zsh +``` + +![change the shell for the current user][2] + +Close and open the terminal again. And you should see the first-time setup for zsh. Select option 2. And it will change the look of your shell prompt with a default theme, as shown below. + +![first time setup for zsh][3] + +#### 2. Install oh my zsh + +The oh my zsh is a set of scripts to customize zsh further. + +Firstly, we will install oh my zsh script by downloading it from GitHub. It would be best if you had wget and git package for that. [Install wget][4] & git using the following command if it’s not installed. + +``` +sudo apt install wget +sudo apt install git +``` + +Then install oh my zsh using the following command. + +``` +sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +``` + +And you should see the oh my zsh theme is applied with a default theme robbyrussell to your terminal. + +![Install oh my zsh and default theme][5] + +The Oh my zsh also comes with additional themes, and you can install them [using this guide][6]. However, in this tutorial, I will talk about a specific theme, i.e. powerlevel10k. + +#### 3. Install powerlevel10k theme for oh my zsh + +Open a terminal and run the following command to clone powerlevel10k repo from GitHub and put the files in the config folder of oh my zsh. + +``` +git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k +``` + +Open the `~/.zshrc` file in a text editor and set the `ZSH_THEME` variable to `"powerlevel10k/powerlevel10k"`. + +``` +cd ~ +``` + +``` +nano .zshrc +``` + +By default, it should be robbyrussell. Remove “robbyrussell” and add the below `"powerlevel10k/powerlevel10k"`. + +Your `~/.zshrc` file should look something like this after the change: + +`ZSH_THEME="powerlevel10k/powerlevel10k"` + +Save and close the file (CTRL+O, ENTER and CTRL+X). + +![change oh my zsh theme to powerlevel10k][7] + +Restart your terminal to launch the first-time wizard to set up the powerlevel10k theme. + +#### 4. First time set up for powerleve10k + +When you launch the terminal after the installation, the powerlevel10k prompts you with various questions to understand your Linux distro setup. So, press the key as per your need to customize your terminal as per your taste. Some example screenshots of questions are below to give you some idea. + +![powerlevel10k - wizard1][8] + +![powerlevel10k - wizard 2][9] + +And finally, you can save the file to enjoy the new look of your terminal. + +![After applying settings in powerlevel10k zsh theme][10] + +If you want to restart the configuration wizard again, run the following. You can do it as many times as you want. + +``` +p10k configure +``` + +This concludes the basic setup. If you want more, follow along. + +### More configuration (advanced usage) + +#### 5. Installing dracula GNOME Terminal theme + +If you are using GNOME desktop with the native terminal, you can try the stunning drakula theme. To do that, open a terminal and run the following command to download the theme. + +``` +git clone https://github.com/dracula/gnome-terminalcd gnome-terminal +``` + +Open GNOME Terminal and go to preferences. Add a new profile by clicking on the [+] and name it “drakula”. Then go to colours tab and uncheck ‘use colors from system theme’ option. + +![create a new profile for terminal][11] + +Go back to the terminal and run the following. When prompted, select the profile name which you just created as above. + +``` +./install.sh +``` + +![applying the drakula theme for gnome terminal][12] + +Once the installation is complete, go back to preferences and mark the drakula profile as default. + +#### 6. Autocomplete and syntax highlighting for zsh + +There are two community-developed plugins available for zsh, which you may want to try out. They are zsh-autosuggestions and zsh-syntax-highlighting. + +Open a terminal and run the following to download zsh-autosuggestions and put it inside the plugin folder. + +``` +git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions +``` + +Similarly, run the following for the syntax highlighting plugin. + +``` +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting +``` + +Open the ~/.zshrc file via a text editor (use the following command), and find the plugins=(git) line. And replace it with the following: + +``` +nano ~/.zshrc +``` + +``` +plugins=(git zsh-autosuggestions zsh-syntax-highlighting) +``` + +Save & close the file using CTRL+O, ENTER and CTRL+X. + +Close and open your terminal; now, you should be able to use the auto-suggestions and syntax highlighting. + +### Wrapping Up + +That’s it! You should now have “Oh My Zsh” and the Powerlevel10k theme installed on your system. You can customize the appearance and behaviour of the Powerlevel10k theme by customizing further as per your need. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/ + +作者:[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/12/ohp10k.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg +[4]: https://www.debugpoint.com/wget-not-found-error/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg +[6]: https://www.debugpoint.com/install-use-zsh/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg From 0442f6b0408414c1c459e96d9c71aed4a97cd55a Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 28 Dec 2022 09:33:55 +0800 Subject: [PATCH 2455/3123] translated --- ...ightful features of the Linux QtFM file manager.md | 91 ------------------- ...ightful features of the Linux QtFM file manager.md | 90 ++++++++++++++++++ 2 files changed, 90 insertions(+), 91 deletions(-) delete mode 100644 sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md create mode 100644 translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md diff --git a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md deleted file mode 100644 index d4a70a8ab2..0000000000 --- a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "3 delightful features of the Linux QtFM file manager" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -3 delightful features of the Linux QtFM file manager -====== - -QtFM is a simple file manager that aims to provide the basic features of file management through a fast and intuitive interface. It's available for Linux, BSD, and macOS. - -QtFM, as its name suggests, uses the Qt (canonically pronounced "cute") programming toolkit. I've worked with the Qt toolkit both in C++ and Python, and using it is always a pleasure. It's cross-platform, it's got multiple levels of useful abstraction so developers don't have to interact directly with vendor-specific SDKs, and it's highly configurable. From a user's perspective, it's a "natural" and fast experience, whether you're on the latest hardware or on an [old computer][1]. - -### Using QtFM - -There's not much to QtFM. It focuses on being exactly what its name claims: a file manager (FM) for Qt. The layout is what you probably expect from a file manager: a list of common places and devices on the left and a list of files on the right. - -![QtFM file manager][2] - -It's got just four menus. - -- **File**: Create a new file or folder, open a new tab or window, or exit the application. -- **Edit**: Copy, paste, move to trash, or create a new bookmark in the left panel. -- **View**: Toggle between the list and icon views, adjust the layout. -- **Help**: Licensing information, and links to online documentation. - -Interacting with QtFM is largely the same experience you're probably used to with any standard-issue file manager. You can click around to navigate, open files in its default application, drag-and-drop files and folders, copy and paste files and folders, launch applications, and whatever else you do when you're interacting with the contents of your computer. It's familiar, so there's basically no learning curve and no unpleasant surprises. - -There are, however, several pleasant surprises. Here are three of my favorites. - -### 1. Put a command into a contextual menu - -With QtFM, you can add any command you can run in a terminal to the right-click contextual menu. For instance, suppose you want an option to convert an image into the [webp format][3] to the right-click menu. There's no complex framework or scripting language to learn, you don't need to develop a plugin. You can do it in just 3 steps: - -- Go to the **Edit** menu and select **Settings** -- Click on the **Custom actions tab** -- Click the **Add** button and enter the command you want to run, using `%f` for the source file and `%n` for the new file - -![QtFM custom actions][4] - -The action now appears in your QtFM contextual menu. - -### 2. Flexible layout - -One of the built-in features of the Qt toolkit is that many of its components are ("widgets") detachable. QtFM takes advantage of this and allows you to unlock its layout from the **View** menu. Once unlocked, you can drag toolbars and side panels, anchoring them in new positions around your window. I was able to combine the menu bar, navigation toolbar, and the URI field into a unified panel, and I placed a file tree on the right side of the window for convenience. - -![QtFM unlocking the layout][5] - -This requires no special knowledge of application design or even configuration. You just unlock, drag and drop, and lock. - -### 3. Tabbed view - -Many Linux file managers offer tabs the same way as most web browsers do. It's a simple interface trick that lets you keep several locations handy. I don't know whether it actually saves time, but I always feel like it does. QtFM offers tabs, too, and there are two things I particularly enjoy about the way it implements them. - -First of all, the tabs are at the bottom of the window by default (you can change that in **Settings**.) Because I tend to read from left to right and top to bottom, I usually prefer to have "extra" information at the bottom and right ends of a window. Of course, what constitutes "extra" information varies from user to user, so I don't blame any developer for placing widgets and panels in places I wouldn't put widgets and panels. It's nice, though, when a developer accidentally agrees with my preferences. - -Secondly, the tabs are responsive. You can drag a file or folder from one tab into another just by hovering over your target tab. It feels as natural as dragging and dropping from one window to another. - -### Install QtFM - -On Linux, your distribution may package QtFM in its software repository. If so, you can use your package manager to install. For example, on Debian and Debian-based systems: - -``` -$ sudo apt install qtfm -``` - -If your distribution doesn't offer QtFM, you may find a package for it on its [website][6], or you can download the source code from its [Git repository][7]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-qtfm - -作者:[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/article/22/10/obsolete-computer-linux-opportunity -[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp -[3]: https://opensource.com/article/20/4/webp-image-compression -[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp -[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp -[6]: https://qtfm.eu/ -[7]: https://github.com/rodlie/qtfm/ diff --git a/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md new file mode 100644 index 0000000000..19cb2172d2 --- /dev/null +++ b/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md @@ -0,0 +1,90 @@ +[#]: subject: "3 delightful features of the Linux QtFM file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +# Linux QtFM 文件管理器的 3 个令人愉快的功能 + +QtFM 是一个简单的文件管理器,旨在通过快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。 + +QtFM,顾名思义,使用 Qt(规范发音为 “cute”)编程工具包。我在 C++ 和 Python 中使用过 Qt 工具包,使用它总是一种乐趣。它是跨平台的,具有多个有用的抽象级别,因此开发人员不必直接与特定于供应商的 SDK 交互,而且它具有高度可配置性。从用户的角度来看,无论你使用的是最新的硬件还是[旧计算机][1],这都是一种“自然”且快速的体验。 + +### 使用 QtFM + +QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器 (FM)。布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。 + +![QtFM file manager][2] + +它只有四个菜单。 + +- **文件**:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。 +- **编辑**:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。 +- **视图**:在列表视图和图标视图之间切换,调整布局。 +- **帮助**:许可信息和在线文档链接。 + +与 QtFM 交互与你可能习惯使用的任何标准文件管理器的体验大致相同。你可以点击导航、在其默认应用中打开文件、拖放文件和文件夹、复制和粘贴文件和文件夹、启动应用,以及你在与计算机内容交互时执行的任何其他操作。它很熟悉,所以基本上没有学习曲线,也没有不愉快的惊喜。 + +然而,也有一些惊喜。这是我最喜欢的三个。 + +### 1. 将命令放入上下文菜单 + +使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3]的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成: + +- 转到**编辑**菜单并选择**设置**。 +- 单击**自定义操作选项卡**。 +- 单击**添加**按钮并输入要运行的命令,对源文件使用 `%f`,对新文件使用 `%n`。 + +![QtFM custom actions][4] + +该操作现在出现在你的 QtFM 上下文菜单中。 + +### 2. 灵活的布局 + +Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从**视图**菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。 + +![QtFM unlocking the layout][5] + +这不需要应用设计甚至配置的特殊知识。你只需解锁、拖放和锁定。 + +### 3. 标签视图 + +许多 Linux 文件管理器提供选项卡的方式与大多数 Web 浏览器相同。这是一个简单的界面技巧,可让你方便地保留多个位置。我不知道它是否真的节省了时间,但我总觉得它确实如此。QtFM 也提供选项卡,我特别喜欢它实现选项卡的方式有两点。 + +首先,选项卡默认位于窗口底部(你可以在**设置**中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。 + +其次,标签是响应式的。只需将鼠标悬停在目标选项卡上,即可将文件或文件夹从一个选项卡拖动到另一个选项卡中。感觉就像从一个窗口拖放到另一个窗口一样自然。 + +### 安装 QtFM + +在 Linux 上,你的发行版可能会将 QtFM 打包在它的软件仓库中。如果是这样,你可以使用包管理器进行安装。例如,在 Debian 和基于 Debian 的系统上: + +``` +$ sudo apt install qtfm +``` + +如果你的发行版不提供 QtFM,你可以在其[网站][6]上找到它的软件包,或者你可以从它的 [Git 仓库][7]下载源码。 + +--- + +via: https://opensource.com/article/22/12/linux-file-manager-qtfm + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者 ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity +[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp +[3]: https://opensource.com/article/20/4/webp-image-compression +[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp +[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp +[6]: https://qtfm.eu/ +[7]: https://github.com/rodlie/qtfm/ From 49091c74f3832af9119e2c40ef39150079cb506e Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 28 Dec 2022 09:37:04 +0800 Subject: [PATCH 2456/3123] translating --- ...de Editors that May Challenge the Supremacy of Visual Studio Code.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md index 35e43090f4..a7ca46d18d 100644 --- a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md +++ b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/upcoming-code-editors/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4af341fc8cc2c9a4b170a1e601664a0a741bc7cb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 28 Dec 2022 09:46:32 +0800 Subject: [PATCH 2457/3123] RP @CanYellow https://linux.cn/article-15388-1.html --- ...inciples will impact the future of work.md | 96 ++++++++++++++++++ ...inciples will impact the future of work.md | 97 ------------------- 2 files changed, 96 insertions(+), 97 deletions(-) create mode 100644 published/20210103 How open principles will impact the future of work.md delete mode 100644 translated/tech/20210103 How open principles will impact the future of work.md diff --git a/published/20210103 How open principles will impact the future of work.md b/published/20210103 How open principles will impact the future of work.md new file mode 100644 index 0000000000..3631e38bdd --- /dev/null +++ b/published/20210103 How open principles will impact the future of work.md @@ -0,0 +1,96 @@ +[#]: collector: (lujun9972) +[#]: translator: (CanYellow) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15388-1.html) +[#]: subject: (How open principles will impact the future of work) +[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work) +[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland) + +开放原则将如何影响未来工作 +====== + +> 在许多方面,我们的工作性质塑造了我们。那么,未来工作的性质将发生巨大变化,我们又该做何准备呢? + +![][0] + +如果我们将“工作”定位为获得某种回报的任何形式的付出,那么工作是,并且一直是,决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中(不论这对我们意味着什么),我们结识朋友,我们获得智力激励和情感满足的源泉,我们得到成长,我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言,工作极其重要,我们不应轻视工作的重要性亦或视其为理所当然。 + +因此如果未来 [工作的性质将发生变化][2],这可能意味着恰恰是我们 _自我认知_ 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。 + +考察自第一次工业革命(18、19世纪)以来的工作转变,很多人从从事农业劳动转为进入城市工厂工作,这从根本上改变了他们的生活方式。新的工作方式需要全新的、更专业的工作技能,而不再是农村经济中常见的手艺。接下来的几十年里,当我们检视我们的个人工作环境时,我们可能会发现工业时代以来的这一趋势可能发生逆转:从层级制度、可代替的通用技术与活动,重新转变为横向协作与对专业知识的熟练掌握的更高要求(回到手艺时代)。 + +不过,这一次,这些转变的到来将是全球性的而非区域性的,而且转变的速度要快的多。 + +在这一新的工作环境中,[开放组织原则][3] 将扮演关键性的角色。 + +本系列中,我将回顾 [Lynda Gratton 教授的作品《转变》][4](LCTT 译注:中译本:《转变:未来社会工作岗位需求变化及应对策略》,ISBN:9787121152894),本书成书于 2014 年(LCTT 译注:本书原版有 [2011 版][T1] 与 [2014 版][T2]),书中数据于 2010 年收集,但今天仍然适用(将来也一样)。本书中,Gratton 教授指出了工作将在 2025 到 2050 年间如何变化。这是关键信息,因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。 + +Gratton 教授阐释了在上述时间段内影响未来工作的主要因素。本系列中,我们将对它们做一个总结并解释开放组织原则如何融入它们之中。 + +### 影响未来工作的五个因素 + +煤炭与蒸汽动力的发明推动了第一次工业革命。[Gratton 教授][5] 说,今天,五种微妙的力量导致了类似的转变: + + 1. 日益增长的全球化活动 + 2. 技术的快速进步 + 3. 人类寿命与人口数量 + 4. 社会与家庭结构变化 + 5. 低碳经济的需求 + +简而言之,计算机更快了,材料更强了,药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些说明。 + +#### 1、全球化 + +在以前的文章 [《全球化:开放的历史》][6] 中,我讨论了全球化的多种动力与影响因素,其中之一就是贸易。从 1950 年到 2010 年的 60 年间,全球贸易量增加了 60 倍,与此同时运输成本降低了,发展中国家不仅看到了贸易增长,而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》][7] 中讨论了历史早期的全球化。我另外在我的文章 [《全球性的开放组织是怎么样的》][8] 中探讨了从现在到未来全球治理的重要性。如 Gratton 教授所言,全球化在未来工作中将发挥不可否认与不可避免的影响。 + +> 如果未来工作的性质将发生变化,这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。 + +#### 2、技术 + +计算成本一直在以惊人的速度下降,它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时,计算机与高级自动化在未来将 [取代人类工作][9],这都将影响未来的工作转变。 + +#### 3、人口数量与寿命 + +Gratton 教授还记录了不同世代的人对未来工作的影响,尤其是在美国。年轻一代在未来将扮演主要角色,他们的态度将不同于上一代。此外,全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加,将会出现更多的移民。他们将移民至 Gratton 教授谓之“创新集群”的地方。最后,Gratton 教授认为全球预期寿命将会变化。截至 2025 年,世界人口的 10% 将超过 65 岁,这些人口将更可能希望继续工作,以得到持续的收入、精神刺激、身体活动,与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过 100 岁的寿命,如果他们在 65 岁退休,他们余下的至少 35 年里将做不了太多事情。基于这样的考虑,在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。 + +#### 4、社会 + +常规的变化之外,Gratton 教授还描述了一些社会变化。她说,未来女性在工作上的角色将会变化,人们将比以往拥有更多的选择来塑造他们希望的生活;随着个人劳动生产率的提升,平均空闲时间将比以往更多。 + +#### 5、能源 + +我在 [资源工业革命][10] 上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充了一些有价值的观点。她认为气候变化将逐渐成为主要议题,并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张(可能由正在开发的 [第四代][11] 分布式小型模块化核电站提供动力)。环境灾难将使人们背井离乡,并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入,这将影响未来工作。 + +### 为未来提前准备 + +上述五种力量将推动未来工作方式发生根本性的改变,Gratton 教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中,我将介绍 Gratton 教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会?另一方面,如果简单地选择对即将到来的变化 _视而不见_ 又会发生什么?我将回顾 Gratton 教授在这些问题上的思考。同样的,我也将解释开放原则如何形成必经的变革的核心。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/21/1/open-is-future-of-work + +作者:[Ron McFarland][a] +选题:[lujun9972][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/ron-mcfarland +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife) +[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2 +[3]: https://theopenorganization.org/definition/ +[4]: http://lyndagratton.com/books/the-shift/ +[5]: https://en.wikipedia.org/wiki/Lynda_Gratton +[6]: https://opensource.com/open-organization/20/7/globalization-history-open +[7]: https://opensource.com/open-organization/20/8/global-history-collaboration +[8]: https://opensource.com/open-organization/20/9/global-open-organization +[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI +[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution +[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor + +[T1]: https://isbnsearch.org/isbn/9780007427956 +[T2]: https://isbnsearch.org/isbn/9780007525850 +[0]: https://img.linux.net.cn/data/attachment/album/202212/28/094540cru0c2b8g2rz2ur2.jpg \ No newline at end of file diff --git a/translated/tech/20210103 How open principles will impact the future of work.md b/translated/tech/20210103 How open principles will impact the future of work.md deleted file mode 100644 index 363bc6886a..0000000000 --- a/translated/tech/20210103 How open principles will impact the future of work.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (CanYellow) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (How open principles will impact the future of work) -[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work) -[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland) - -开放原则将如何影响未来工作 -====== -我们的工作性质在很多方面塑造了我们自己。未来工作的性质将发生巨大变化,我们又该做何准备呢? - -![团队合作,忙碌的工作生活][1] - -如果我们将“工作”定位为获得某种回报的任何形式的付出,那么工作是并且一直是决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中(不论这对我们意味着什么),我们结识朋友,我们获得智力激励和情感满足的源泉,我们得到成长,我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言,工作极其重要,我们不应轻视工作的重要性亦或视其为理所当然。 - -因此如果未来[工作的性质将发生变化][2],这可能意味着恰恰是我们 _自我认知_ 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。 - -考察自第一次工业革命(18、19世纪)以来的工作转变,很多人从从事农业劳动转为进入城市工厂工作,这从根本上改变了他们的生活方式。新的工作方式需要全新的更专业的工作技能而不再是农村经济中常见的手艺。接下来的几十年里,当我们检视我们的个人工作环境时,我们可能会发现工业时代以来的这一趋势可能发生逆转:从层级制度、可代替的通用技术与活动重新转变为横向协作与对专业知识的熟练掌握的更高要求(回到手工艺时代)。 - -这个时代与这些转变的到来将是全球性的而非区域性的,转变的速度已经大大加快了。 - -在这一新的工作环境中,[开放组织原则][3]将扮演关键性的角色。 - -本系列中,我将回顾 [Lynda Gratton 教授的作品,_转变_][4] (中译本:转变:未来社会工作岗位需求变化及应对策略,ISBN:9787121152894),本书成书于2014年(译注,本书原版有 [2011版][T1] 与 [2014版][T2] ),书中数据于2010年收集,但今天仍然适用(将来也一样)。本书中,Gratton教授指出了工作将在2025到2050年间如何变化。这是关键信息,因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。 - -Gratton教授阐释了在上述时间段内影响未来工作的主要因素。本系列中,我们将对它们做一个总结并解释开放组织原则如何融入它们之中。 - - -### 影响未来工作的五个因素 - -煤碳与蒸汽动力的发明推动了第一次工业革命。[Gratton教授][5]说,今天五种微妙的力量导致了类似的转变: - - 1. 日益增长的全球化活动 - 2. 技术的快速进步 - 3. 人类寿命与人口数量 - 4. 社会与家庭结构变化 - 5. 低碳经济的需求 - -简而言之,计算机更快了,材料更强了,药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些笔记。 - -#### 1\. 全球化 - - -在以前的文章 [《全球化:开放的历史》][6] 中,我讨论了全球化的多种动力与影响因素,其中之一就是贸易。从1950年到2010年的60年间,全球贸易的体量增加了60倍,与此同时运输成本降低了,发展中国家不仅看到了贸易增长,而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》][7]中讨论了历史早期的全球化。我另外在我的文章[《全球性的开放组织是怎么样的》][8]中探讨了从现在到未来全球治理的重要性。如Gratton教授所言,全球化在未来工作中将发挥不可否认与不可避免的影响。 - -如果未来工作的性质将发生变化,这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。 - -#### 2\. 技术 - -计算成本一直在以惊人的速度下降,它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时,计算机与高级自动化在未来将[取代人类工作][9],这都将影响未来的工作转变。 - -#### 3\.人口数量与寿命 - -Gratton教授还记录了不同世代的人对未来工作的影响,尤其是在美国。年轻一代在未来将扮演主要角色,他们的态度将不同于上一代。此外,全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加,将会出现更多的移民。他们将移民至Gratton教授谓之“创新集群”的地方。最后,Gratton教授认为全球预期寿命将会变化。截至2025年,世界人口的10%都将超过65岁,这些人口将更可能希望继续工作,为了得到持续的收入、精神刺激、身体活动,与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过100岁的寿命,如果他们在65岁退休,他们余下的至少35年里将做不了太多事情。基于这样的考虑,在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。 - -#### 4\. 社会 - -常规的变化之外,Gratton教授还描述了一些社会变化。她说,未来女性在工作上的角色将会变化,人们将比以往拥有更多的选择来塑造他们希望的生活;随着个人劳动生产率的提升,平均空闲时间将比以往更多。 - -#### 5\. 能源 - -我在[资源工业革命][10]上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充一些有价值的观点。她认为气候变化将逐渐成为主要议题,并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张(可能由正在开发的[第四代][11]分布式小型模块化核电站提供动力)。环境灾难将使人们背井离乡,并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入,这将影响未来工作。 - - -### 为未来提前准备 - -上述五种力量将推动未来工作方式发生根本性的改变,Gratton教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中,我将介绍Gratton教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会?另一方面,如果简单地选择对即将到来的变化 _视而不见_ 又会发生什么?我将回顾Gratton教授在这些问题上的思考。同样的,我也将解释开放原则如何形成必经的变革的核心。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/open-organization/21/1/open-is-future-of-work - -作者:[Ron McFarland][a] -选题:[lujun9972][b] -译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者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/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife) -[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2 -[3]: https://theopenorganization.org/definition/ -[4]: http://lyndagratton.com/books/the-shift/ -[5]: https://en.wikipedia.org/wiki/Lynda_Gratton -[6]: https://opensource.com/open-organization/20/7/globalization-history-open -[7]: https://opensource.com/open-organization/20/8/global-history-collaboration -[8]: https://opensource.com/open-organization/20/9/global-open-organization -[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI -[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution -[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor - -[T1]: https://isbnsearch.org/isbn/9780007427956 -[T2]: https://isbnsearch.org/isbn/9780007525850 From 1ccecc15e16ec176ff44f524fc7ab7ebdff6e512 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 28 Dec 2022 13:02:44 +0800 Subject: [PATCH 2458/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @toknow-gh 感谢您,完成了第一篇翻译贡献! --- .../20210917 Open source game achievements.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/translated/tech/20210917 Open source game achievements.md b/translated/tech/20210917 Open source game achievements.md index efd95d3dba..3b9f598dfc 100644 --- a/translated/tech/20210917 Open source game achievements.md +++ b/translated/tech/20210917 Open source game achievements.md @@ -3,7 +3,7 @@ [#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/" [#]: collector: "lujun9972" [#]: translator: "toknow-gh" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " @@ -14,17 +14,17 @@ Gamerzilla:一个开源游戏成就系统 Photo by [Michał Parzuchowski][2] on [Unsplash][3] -了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。 +> 了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。 -一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作,开源游戏在独立游戏中已颇具竞争力。但是游戏玩家预期是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级,却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。 +一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作,但开源游戏在独立游戏中已颇具竞争力。不过,游戏玩家的期望是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级,却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。 -开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布自己的游戏,但这需要付费。游戏平台主要与公司合作,而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。 +开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布开源游戏,但这需要付费。游戏平台主要与公司合作,而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。 商业游戏开发商也没有得到太多好处。由于不能共享成就,一些享受成就的玩家拒绝从其他商店购买游戏。这种锁定效应增强了游戏平台的话语权。由于各个游戏平台使用不同的系统,开发者不得不针对它们分别进行适配和测试。较小的游戏平台则可能完全被忽略掉。并且平台方能够访问到所有使用该平台的公司的成就数据,这些数据可以被用来扩大竞争优势。 ### Gamerzilla 的架构 -[Gamerzilla][4] 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器,使用游戏商店提供的服务器,甚至 Linux 发行版中的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。 +[Gamerzilla][4] 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器,使用游戏商店提供的服务器,甚至 Linux 发行版提供的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。 一个基本的成就系统需要两个要素:游戏和 Gamerzilla 服务器。然而随着游戏数量增长,这种设计会暴露出其缺点。每个游戏都需要证书才能上传数据到服务器。由于拥有大量的游戏资源,并且能够在不同游戏商店之间同步数据,游戏启动器成为了众多玩家的选择。通过让启动器支持 Gamerzilla,游戏本身就不再需要证书了。游戏结果直接从启动器上传到 Gamerzilla 服务器。 @@ -32,33 +32,33 @@ freegamedev.net 曾提供了社交网络系统 Hubzilla。我们基于此开发 目前 Gamerzilla 服务器有两种实现。维护 Hubzilla 是一项复杂的工作,所以我们用 .Net 和 React 开发了一个独立的 Gamerzilla 服务器。游戏调用的 API 是相同的,所以不用关心连接的服务器是哪种实现。 -游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持,我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 _GameHub_ 实现了一个支持 Gamerzilla 的版本,并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏,而是监听成就并把成就上传到服务器。 +游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持,我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 GameHub 实现了一个支持 Gamerzilla 的版本,并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏,而是监听成就并把成就上传到服务器。 -支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样,开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现,已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏,只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla,大部分时间将会花在收集信息和授予成就上。 +支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样,开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现,已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏,只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla,大部分时间都是花在收集信息和授予成就上。 ### 架设服务器 -架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些,尽管这仍然需要许多步骤。详细步骤请参考 [readme][5]。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net,动手构建 React 源码部分。构建完成之后,React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。 +架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些,尽管这仍然需要许多步骤。详细步骤请参考 [readme][5] 文件。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net,动手构建 React 源码部分。构建完成之后,React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。 -按上面的步骤操作,Gamerzilla 已经运行起来了,但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme][5]。用户可以是公开可见的,也可以是隐藏的。批准标记可以让新用户不立刻使用该系统,但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 backend/Service/UserService.cs 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。 +按上面的步骤操作,Gamerzilla 已经运行起来了,但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme][5] 文件。用户可以是公开可见的,也可以是隐藏的。批准标记可以让新用户不立刻使用该系统,但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 `backend/Service/UserService.cs` 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。 目前 Gamerzilla 的后端使用的是 sqlite 数据库。我们还没有对它进行过性能测试。我们预计较大型的应用安装需要改进系统以使用更鲁棒的数据库。 ### 测试 -目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server,就可以在命令行中运行 _gamerzillaserver_ 命令。首次运行该命令时需要输入 url 和 登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 _.local/share/gamerzillaserver/server.cfg_ 再重新运行 _gamerzillaserver_ 命令。 +目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server,就可以在命令行中运行 `gamerzillaserver` 命令。首次运行该命令时需要输入 URL 和登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 `.local/share/gamerzillaserver/server.cfg` 再重新运行 `gamerzillaserver` 命令。 -大多数游戏还没有支持 Gamerzilla 的发行版。[itch.io 上的 Pinball Disc Room][6],它的 Lniux 版本支持 Gamerzilla,但是它的网页版是没有成就的。这款游戏只有两个成就:一个是存活 10 秒钟,另一个是解锁并使用隧道。只需要稍加练习,你就能获得一个成就。由于这款游戏没有可视化的成就提示消息,你需要查看 Gamerzila 服务器才能确认成就。 +大多数游戏还没有支持 Gamerzilla 的版本。[itch.io 上的 《Pinball Disc Room》][6],它的 Linux 版本支持 Gamerzilla,但是它的网页版是没有成就系统的。这款游戏只有两个成就:一个是存活 10 秒钟,另一个是解锁并使用隧道。只需要稍加练习,你就能获得一个成就。由于这款游戏没有可视化的成就提示消息,你需要查看 Gamerzila 服务器才能确认成就。 -目前打包到 Fedora 中的游戏都还不支持 Gamerzila。SuperTuxKart 已经整合了对 Gamerzila 的支持,正在等待发布新版本。 Seahorse adventures 和 Shippy 1984 添加了成就,但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持,但我们的拉取请求pull request或其它联系尝试还没有得到开发者的回应。 +目前打包到 Fedora 中的游戏都还不支持 Gamerzila。《SuperTuxKart》 已经整合了对 Gamerzila 的支持,正在等待发布新版本。《Seahorse adventures》 和 《Shippy 1984》 添加了成就,但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持,但我们的拉取请求pull request或其它联系尝试还没有得到开发者的回应。 ### 后续工作 Gamerzilla 需要更多游戏的支持。目前已经有很多游戏支持 Gamerzilla,并且正在以大约每月一个的速度增长。如果你有喜欢的游戏,可以请求开发方支持 Gamerzilla。如果你是游戏开发者,并且在支持 Gamerzilla 上需要技术支持,请联系我们。 -服务器的开发工作在缓步开展中,我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的[测试服务器][7]。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂,可以很容易用 Python 重写。 +服务器的开发工作在缓步开展中,我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的 [测试服务器][7]。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂,可以很容易用 Python 重写。 -最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 itch.io 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 url 和登录信息。这样任何启动的游戏都可以记录成就了。 +最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 itch.io 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 URL 和登录信息。这样任何启动的游戏都可以记录成就了。 -------------------------------------------------------------------------------- @@ -66,8 +66,8 @@ via: https://fedoramagazine.org/open-source-game-achievements/ 作者:[Dennis Payne][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/toknow-gh) -校对:[校对者ID](https://github.com/校对者ID) +译者:[toknow-gh](https://github.com/toknow-gh) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 315073d4d9f181a5f2aabf134813828f4ccbd9da Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 28 Dec 2022 13:03:55 +0800 Subject: [PATCH 2459/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @toknow-gh 本文首发:https://linux.cn/article-15389-1.html 您的 LCTT 专页:https://linux.cn/lctt/toknow-gh --- .../20210917 Open source game achievements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210917 Open source game achievements.md (99%) diff --git a/translated/tech/20210917 Open source game achievements.md b/published/20210917 Open source game achievements.md similarity index 99% rename from translated/tech/20210917 Open source game achievements.md rename to published/20210917 Open source game achievements.md index 3b9f598dfc..5cb5ca3dea 100644 --- a/translated/tech/20210917 Open source game achievements.md +++ b/published/20210917 Open source game achievements.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "toknow-gh" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15389-1.html" Gamerzilla:一个开源游戏成就系统 ====== From 7a14a46d148555e362fdf915fe10df42e2fec9de Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 29 Dec 2022 09:31:23 +0800 Subject: [PATCH 2460/3123] translated --- ... How to Downgrade Flatpak Packages in Linux.md | 115 ------------------ ... How to Downgrade Flatpak Packages in Linux.md | 112 +++++++++++++++++ 2 files changed, 112 insertions(+), 115 deletions(-) delete mode 100644 sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md create mode 100644 translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md diff --git a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md deleted file mode 100644 index 4761597588..0000000000 --- a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md +++ /dev/null @@ -1,115 +0,0 @@ -[#]: subject: "How to Downgrade Flatpak Packages in Linux" -[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Downgrade Flatpak Packages in Linux -====== - -Technically, minor or point release updates are released to solve issues. But things may get worse when some updates break your current workflow. - -Whether a Flatpak package or Snap, everything breaks at some point when there is an issue. Being a sandboxed packaging solution, it may not affect the entire system, but if you encounter a bug that makes your app experience worse, you may regret the update. - -For example, the previous update of [Black Box][1] was bundled with certain bugs, and I could not select text! Developers have solved this issue now, but until they did not, I downgraded that specific package to make things work. - -So, if you want to downgrade a specific app installed as a Flatpak, you can follow this guide. - -### Downgrade Flatpak packages in Linux - -**Disclaimer:** Unlike installing Flatpaks, you need **sudo** privileges to downgrade Flatpak packages. And if your user doesn’t have them, you can follow our detailed guide on [how to give sudo access to users][2]. - -**Recommended Read**: [How to Apply GTK Themes on Flatpak Applications][3] - -Here are the steps below: - -#### 1. Get the Application ID of the Package - -The first step is to find the Application ID of the package you want to downgrade. You can easily find it by listing the installed packages: - -``` -flatpak list --app -``` - -![find flatpak package id in linux][4] - -Note down the application ID of the package you want to downgrade. - -Here, I am going to downgrade the Black Box, so my application ID will be `com.raggesilver.BlackBox`. - -#### 2. List previous releases and get the commit code - -Once you get the application ID, you’d need to list the previous releases. - -You can easily do this by following the given command syntax: - -``` -flatpak remote-info --log flathub -``` - -![find previous releases in flatpak][5] - -Once you find the preferred previous release, copy the commit code as shown above. - -#### 3. Downgrade the Flatpack package - -Once you follow the first two steps, you should have the following: - -- Application ID of the package. -- Commit code of preferred older release. - -Now, you have to put them in the following command: - -``` -sudo flatpak update --commit= -``` - -As I’m downgrading Black Box to the previous release, I’ll be using the following command: - -``` -sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox -``` - -![downgrade flatpak package in linux][6] - -And that’s it! - -To check whether you have successfully downgraded the package, you can list the packages that need to be updated (considering everything else is up-to-date). It should include the name of the package that you have recently downgraded: - -``` -flatpak update -``` - -![downgrade flatpak package][7] - -And as you can see, the Black Box is outdated and needs to be updated, meaning the package has been downgraded successfully! - -### Wrapping Up - -In this quick tutorial, I explained how you downgrade Flatpak packages, and I hope you find this helpful. - -And if you have any queries or suggestions, let me know in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/downgrade-flatpak-packages/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/blackbox-terminal/ -[2]: https://itsfoss.com/add-sudo-user-ubuntu/ -[3]: https://itsfoss.com/flatpak-app-apply-theme/ -[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png -[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png -[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png diff --git a/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md new file mode 100644 index 0000000000..ca5b61f709 --- /dev/null +++ b/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md @@ -0,0 +1,112 @@ +[#]: subject: "How to Downgrade Flatpak Packages in Linux" +[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中降级 Flatpak 软件包 +====== + +从技术上讲,次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。 + +无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的 bug,你可能会后悔更新。 + +比如之前更新的 [Black Box][1] 就带来了一些 bug,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。 + +所以,如果你想降级特定的 Flatpak 应用,你可以按照本指南进行操作。 + +### 在 Linux 中降级 Flatpak 包 + +**免责声明:** 与安装 Flatpaks 不同,你需要 **sudo** 权限才能降级 Flatpak 包。如果你的用户没有它们,你可以按照我们关于[如何向用户授予 sudo 访问权限][2]的详细指南进行操作。 + +以下是步骤: + +#### 1.获取包的应用 ID + +第一步是找到要降级的包的应用 ID。你可以列出已安装的软件包轻松找到它: + +``` +flatpak list --app +``` + +![find flatpak package id in linux][4] + +记下要降级的包的应用 ID。 + +这里,我要降级 Black Box,所以我的应用 ID 将是 `com.raggesilver.BlackBox`。 + +#### 2.列出以前的版本并获取提交代码 + +获得应用 ID 后,你需要列出以前的版本。 + +你可以按照给定的命令语法做到这点: + +``` +flatpak remote-info --log flathub +``` + +![find previous releases in flatpak][5] + +找到首选的先前版本后,复制如上所示的提交代码。 + +#### 3.降级 Flatpack 包 + +执行前两个步骤后,你应该有以下内容: + +- 包的应用 ID。 +- 首选旧版本的提交代码。 + +现在,你必须将它们放在以下命令中: + +``` +sudo flatpak update --commit= +``` + +当我将 Black Box 降级到以前的版本时,我将使用以下命令: + +``` +sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox +``` + +![downgrade flatpak package in linux][6] + +这就完成了! + +要检查你是否已成功降级软件包,你可以列出需要更新的软件包(考虑到其他所有内容都是最新的)。它应该包括你最近降级的软件包的名称: + +``` +flatpak update +``` + +![downgrade flatpak package][7] + +如你所见,Black Box 已过时,需要更新,这意味着包已成功降级! + +### 总结 + +在本快速教程中,我解释了如何降级 Flatpak 软件包,希望对你有所帮助。 + +如果你有任何疑问或建议,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/downgrade-flatpak-packages/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/blackbox-terminal/ +[2]: https://itsfoss.com/add-sudo-user-ubuntu/ +[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png +[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png From 91c8a3028bea8e573adcbf8e6f4ca6a71c97dfe0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 29 Dec 2022 09:35:35 +0800 Subject: [PATCH 2461/3123] translating --- .../20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md index ea9e63b118..beb10e6833 100644 --- a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md +++ b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/update-flatpak/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ce369664bc8779dee3a749d727b6a9a8825136d5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 29 Dec 2022 13:51:13 +0800 Subject: [PATCH 2462/3123] ALL @wxy https://linux.cn/article-15391-1.html --- ...es Featuring Xfce 4.18 and Linux Kernel 6.1.md | 102 ++++++++++++++++++ ...es Featuring Xfce 4.18 and Linux Kernel 6.1.md | 102 ------------------ 2 files changed, 102 insertions(+), 102 deletions(-) create mode 100644 published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md delete mode 100644 sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md diff --git a/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md new file mode 100644 index 0000000000..d94f5b884e --- /dev/null +++ b/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md @@ -0,0 +1,102 @@ +[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1" +[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15391-1.html" + +Manjaro Linux 22.0 发布 +====== + +> Manjaro Linux 22.0 带着各种升级来了! + +![][1] + +Manjaro Linux 是一个基于 Arch Linux 的滚动发布发行版,专注于提供用户友好和无障碍体验。 + +自 6 月发布 “[Ruah][2]” 以来,Manjaro 的开发仍在继续,并为最新的版本铺平了道路,它被称为 “Sikaris”。 + +这是 2022 年最后的流行的发行版之一。让我们看看它提供了什么。 + +### Manjaro 22 “Sikaris” 有什么新内容? + +![][3] + +Sikaris 版本带来了许多改进,一些值得注意的包括: + +- 桌面环境的升级 +- Linux 内核 6.1 +- 动态墙纸 +- 各种用户体验的改进 + +#### 桌面环境的升级 + +这个版本对 Manjaro Linux 的三个不同版本进行了许多改进。让我带你看看这些改进。 + +**对于 Manjaro GNOME:** 它使用是的 GNOME 43,有一个重新设计的系统状态菜单,可以让你在常用的设置之间快速切换。 + +他们还更新了他们的 “布局切换器Layouts Switcher” 应用程序,包括各种改进和修复。 + +![][4] + +此外,你可以创建你的动态壁纸并使用 [Gradience][5] 来定制你的主题。 + +**对于 Manjaro KDE:** “Sikaris” 版本采用了最新的 Plasma 5.26 桌面环境,具有许多改进,如动画壁纸、新的小工具,以及 Plasma 大屏幕的改进。 + +![][6] + +还有一些其它的调整,允许壁纸根据系统的主题来改变。 + +此外,Dolphin 文件管理器现在有一个新的功能叫“选择模式Selection Mode”,可以让你选择多个文件或文件夹。 + +**对于 Manjaro Xfce:** 使用的是 Xfce 4.18,该版本在 Thunar 文件管理器中获得了新的文件高亮显示和递归搜索功能。 + +可能是第一个包括 [新发布的 Xfce 4.18][7] 的开箱即用发行版。 + +面板也被更新了,允许最大化的应用程序填满面板后面的区域,而且面板的长度现在是以像素而不是百分比计算的。 + +![][8] + +此外,“控制中心Control Center”现在将所有用于管理系统的桌面模块集中到一个易于使用的窗口。 + +这些功能应该会改善你的整体体验! 😃 + +#### Linux 内核 6.1 + +Manjaro 22 ”Sikaris“ 使用 [Linux 内核 6.1][9] 提供了各种增强功能。 + +这些包括对 Rust 的实验性支持,对英特尔即将推出的 Meteor Lake 芯片的初步支持,改进的 ARM SoC 支持,以及更多。 + +### 下载 Manjaro 22 + +Manjaro 22 “Sikaris” 可用于 X86_64 和 ARM 系统,前往官方 [下载页面][10] 获取。 + +> **[下载 Manjaro 22][10]** + +**对于现有的用户,** 你只需在命令行中运行 `sudo pacman -Syu` 就可以得到这个版本的 Manjaro Linux。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/manjaro-22-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png +[2]: https://news.itsfoss.com/manjaro-21-3-0-release/ +[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png +[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png +[5]: https://github.com/GradienceTeam/Gradience +[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png +[7]: https://news.itsfoss.com/xfce-4-18-release/ +[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png +[9]: https://news.itsfoss.com/linux-kernel-6-1-release/ +[10]: https://manjaro.org/download/ diff --git a/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md deleted file mode 100644 index 545ff86782..0000000000 --- a/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md +++ /dev/null @@ -1,102 +0,0 @@ -[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1" -[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1 -====== - -Manjaro Linux 22.0 has landed with good upgrades! - -![Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1][1] - -Manjaro Linux is a rolling release distro based on Arch Linux that focuses on providing a user-friendly and accessible experience. - -Since the release of '[Ruah][2]' in June, Manjaro's development has continued and has paved the way for the latest release, which is called '_Sikaris_'. - -This is one of the last distro releases (among the popular options) for 2022; let's see what it offers. - -### Manjaro 22 'Sikaris': What's New? - -![manjaro linux sikaris][3] - -The 'Sikaris' release has brought in many improvements; some notable ones include: - -- **Desktop Environment Upgrades** -- **Linux Kernel 6.1** -- **Dynamic Wallpapers** -- **Various User Experience improvements** - -#### Desktop Environment Upgrades - -This release has seen numerous improvements to the three distinct editions of Manjaro Linux. Let me take you through them. - -**For Manjaro GNOME:** GNOME 43 is being used. It has a redesigned system status menu that lets you quickly switch between the commonly used settings. - -They also updated their 'Layouts Switcher' application to include various improvements and fixes. - -![manjaro linux sikaris gnome][4] - -Furthermore, you can create your dynamic wallpaper and use [Gradience][5] to customize your theme. - -**For Manjaro KDE:** The 'Sikaris' release features the latest Plasma 5.26 desktop environment that features many improvements, such as animated wallpapers, new widgets, and Plasma big screen improvements. - -![manjaro linux sikaris kde][6] - -They have also made additional tweaks that allow the wallpaper to change according to the system's theme. - -In addition, the Dolphin file manager now has a new feature called '_Selection Mode_', that lets you select multiple files or folders. - -**For Manjaro Xfce:** Powered by Xfce 4.18, this edition receives the new file highlighting and recursive search features in the Thunar file manager. - -Probably the first distro to include the [newly released Xfce 4.18][7] out of the box. - -The panel has also been updated to allow maximized apps to fill the area behind the panel, and the panel length is now calculated in pixels rather than percentages. - -![manjaro linux sikaris xfce][8] - -Additionally, the Control Center now groups all the desktop modules for managing the system into one easy-to-use window. - -These features should improve your overall experience! 😃 - -#### Linux Kernel 6.1 - -Manjaro 22 'Sikaris' uses the various enhancements offered by [Linux Kernel 6.1][9]. - -Those include experimental support for Rust, initial support for Intel's upcoming Meteor Lake chips, improved ARM SoC support, and more. - -### Download Manjaro 22 - -Manjaro 22 'Sikaris' is available for both X86_64 and ARM systems, head over to the official [downloads page][10] to get access. - -[Download Manjaro 22][10] - -**For existing users,** you can just run '_sudo pacman -Syu_' in the command line to get this release of Manjaro Linux. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/manjaro-22-0-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png -[2]: https://news.itsfoss.com/manjaro-21-3-0-release/ -[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png -[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png -[5]: https://github.com/GradienceTeam/Gradience -[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png -[7]: https://news.itsfoss.com/xfce-4-18-release/ -[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png -[9]: https://news.itsfoss.com/linux-kernel-6-1-release/ -[10]: https://manjaro.org/download/ From 1446451607657ff7a602071fd6485f89031ca454 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 29 Dec 2022 14:15:29 +0800 Subject: [PATCH 2463/3123] RP @geekpi https://linux.cn/article-15392-1.html --- ...Try this Linux web browser as your file manager.md | 101 ++++++++++++++++++ ...Try this Linux web browser as your file manager.md | 96 ----------------- 2 files changed, 101 insertions(+), 96 deletions(-) create mode 100644 published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md delete mode 100644 translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md diff --git a/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md new file mode 100644 index 0000000000..3bef7f1e58 --- /dev/null +++ b/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md @@ -0,0 +1,101 @@ +[#]: subject: "Try this Linux web browser as your file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15392-1.html" + +试试这个 Linux 网络浏览器作为你的文件管理器 +====== + +![][0] + +> KDE Plasma 桌面将 Konqueror 列为网络浏览器,但它也是一个功能性的 Linux 文件管理器。 + +Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面,Konqueror 定义了“网络透明度”,因为它适用于个人桌面。使用 Konqueror,你可以像浏览本地文件一样轻松地浏览远程网络文件(包括互联网本身,它实际上只是通过花哨的镜头查看的远程文件的集合)。有时需要进行一些配置和设置,具体取决于你需要访问的文件共享类型。但最终,通过 Konqueror 实现了即时访问你有权查看的所有数据的目标,这是其他文件管理器无法实现的。在其巅峰时期,它开发的开源网络引擎(KHTML) 被苹果和谷歌采用,并作为现代网络浏览和 Electron 应用开发的核心库延续至今。 + +今天,KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理功能已正式转移到 [Dolphin][1],但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验,你应该尝试 Plasma 桌面 3.x 的复刻 [TDE][2],但在本文中,我在 KDE Plasma 桌面版本 5 中使用 Konqueror。 + +### 安装 Konqueror + +如果你已经在运行 KDE Plasma 桌面,你可能已经安装了 Konqueror。如果没有,你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上: + +``` +$ sudo dnf install -y konqueror konqueror-plugins +``` + +在 Debian、Linux Mint、Elementary 和类似软件上: + +``` +$ sudo apt install -y konqueror konqueror-plugins +``` + +![Image of Konqueror's file manager.][3] + +### 将 Konqueror 配置为文件管理器 + +Konqueror 最方便的功能是它除了是一个文件管理器之外,还是一个网络浏览器。至少,这在理论上是它最方便的功能。如果你没有将 Konqueror 用作网络浏览器,那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。 + +与大多数 KDE 应用一样,Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。 + +要调整显示的工具栏,请启动 Konqueror 并转到 “设置Settings” 菜单并选择 “显示的工具栏Toolbars Shown”。主工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是,你甚至可能不需要它,只要你乐于使用键盘快捷键或使用 “Go” 菜单进行导航即可。 + +Konqueror 中的键盘导航与 Dolphin 中的相同: + +- `Alt + ←`:后退一步 +- `Alt + ↑`:移动到父目录 +- `Alt + Home`:转到主目录 + +### 侧边栏 + +要获得包含常用文件夹列表的侧边栏,请按 `F9` 或从 “设置Settings” 菜单中选择 “显示边栏Show Sidebar”。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 “Home” 图标以显示你的主目录的文件树。 + +![Image of Konqueror with a sidebar.][4] + +正如按钮栏所暗示的那样,此侧边栏可用于多种用途。你可以显示书签位置,你最近访问过的位置的历史,远程文件系统等。 + +### 应用 + +有些人习惯于应用菜单。它高效快捷,并且始终在同一个地方。其他人更喜欢从终端启动应用。 + +不过,还有另一种查看应用启动器的方法。Konqueror 的 “Go” 菜单允许你转到名为 “应用程序Applications” 的元位置,它按类别列出了应用程序启动器,就像文件管理器中的文件一样。 + +![Image of applications in Konqueror.][5] + +你也可以在 Dolphin 中看到这个,方法是在位置区域中手动输入 `applications:`,此外,Konqueror 提供了一个菜单选项,可以直接进入该位置。 + +### 网络文件夹 + +类似地,Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是“互联网”,但“网络文件夹”是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置,因为它们通常需要身份验证才能访问。它们中的大多数都可以通过 “系统设置System Settings” 进行配置,包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish(通过 SSH 的文件系统)访问的文件系统,甚至是 Google Drive。 + +### 拆分视图 + +你可以将 Konqueror 窗口拆分为多个窗格,这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项:垂直拆分,一个窗格在左侧,另一个窗格在右侧;或者水平拆分,一个窗格在另一个窗格之上。 + +要分割 Konqueror 窗口,进入 “窗口Window” 菜单,选择 “左/右分割视图Split View Left/Right” 或 “上/下分割视图Spit View Top/Bottom”。每个窗格都是独立的,所以你可以在一个窗格中浏览,然后把文件从一个窗格拖到另一个窗格。 + +### 征服你的文件系统 + +Konqueror 不 _仅仅_ 是一个文件管理器,我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在 “文件File” 菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置,这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是,当你需要时,这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能,Konqueror 可能是一个合适的替代品。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-konqueror + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin +[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde +[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png +[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png +[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/29/141332adtz8mb8m8h8z3d4.jpg \ No newline at end of file diff --git a/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md deleted file mode 100644 index 5ff7fe755a..0000000000 --- a/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: "Try this Linux web browser as your file manager" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -试试这个 Linux 网络浏览器作为你的文件管理器 -====== - -Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面,Konqueror 定义了“网络透明度”,因为它适用于个人桌面。使用 Konqueror,你可以像浏览本地文件一样轻松地浏览远程网络文件(包括 Internet 本身,它实际上只是通过花哨的镜头查看的远程文件的集合)。有时需要进行一些配置和设置,具体取决于你需要访问的文件共享类型。但最终,通过 Konqueror 实现了即时访问你有权查看的所有数据的目标,这是其他文件管理器无法实现的。在其巅峰时期,它开发的开源网络引擎 (KHTML) 被苹果和谷歌采用,并作为现代网络浏览和 Electron 应用开发的核心库延续至今。 - -今天,KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理已正式转移到 [Dolphin][1],但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验,你应该尝试 Plasma Desktop 3.x fork [TDE][2],但在本文中,我在 KDE Plasma Desktop 版本 5 中使用 Konqueror。 - -### 安装 Konqueror - -如果你已经在运行 KDE Plasma Desktop,你可能已经安装了 Konqueror。如果没有,你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上: - -``` -$ sudo dnf install -y konqueror konqueror-plugins -``` - -在 Debian、Linux Mint、Elementary 和类似软件上: - -``` -$ sudo apt install -y konqueror konqueror-plugins -``` - -![Image of Konqueror's file manager.][3] - -### 将 Konqueror 配置为文件管理器 - -Konqueror 最方便的功能是它除了是一个文件管理器之外,还是一个网络浏览器。至少,这在理论上是它最方便的功能。如果那你没有将 Konqueror 用作 Web 浏览器,那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。 - -与大多数 KDE 应用一样,Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。 - -要调整显示的工具栏,请启动 Konqueror 并转到**设置** 菜单并选择**显示的工具栏**。**主**工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是,你甚至可能不需要它,只要你乐于使用键盘快捷键或使用 **Go** 菜单进行导航即可。 - -Konqueror 中的键盘导航与 Dolphin 中的相同: - -- **Alt+向左箭头**:后退一步 -- **Alt+向上箭头**:移动到父目录 -- **Alt+Home**:转到主目录 - -### 侧边栏 - -要获得包含常用文件夹列表的侧边栏,请按 **F9** 或从**设置**菜单中选择**显示边栏**。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 **Home** 图标以显示你的主目录的文件树。 - -![Image of Konqueror with a sidebar.][4] - -正如按钮栏所暗示的那样,此侧边栏可用于多种用途。你可以显示书签位置,你最近访问过的位置的历史,远程文件系统等。 - -### 应用 - -有些人习惯于应用菜单。它高效快捷,并且始终在同一个地方。其他人更喜欢从终端启动应用。 - -不过,还有另一种查看应用启动器的方法。Konqueror 的 **Go** 菜单允许你转到名为 **Applications** 的元位置,它按类别列出了应用程序启动器,就像文件管理器中的文件一样。 - -![Image of applications in Konqueror.][5] - -你也可以在 Dolphin 中看到这个,方法是在位置区域中手动输入 **applications:**,但在这两者中,Konqueror 提供了一个菜单选项,可以直接进入该位置。 - -### 网络文件夹 - -类似地,Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是 Internet,但**网络文件夹**是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置,因为它们通常需要身份验证才能访问。它们中的大多数都可以通过**系统设置**进行配置,包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish(通过 SSH 的文件系统)访问的文件系统,甚至是 Google Drive。 - -### 拆分视图 - -你可以将 Konqueror 窗口拆分为多个窗格,这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项:垂直拆分,一个窗格在左侧,另一个窗格在右侧,或者水平拆分,一个窗格在另一个窗格之上。 - -要分割 Konqueror 窗口,进入**窗口**菜单,选择**分割视图左/右**或**分割视图上/下**。每个窗格都是独立的,所以你可以在一个窗格中浏览,然后把文件从一个窗格拖到另一个窗格。 - -### 征服你的文件系统 - -Konqueror 不_仅仅_是一个文件管理器,我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在**文件**菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置,这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是,当你需要时,这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能,Konqueror 可能是一个合适的替代品。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-konqueror - -作者:[Seth Kenlon][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin -[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde -[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png -[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png -[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png From 2de99e3c2428c5f39b86b98f55a288354c287ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 29 Dec 2022 21:56:59 +0800 Subject: [PATCH 2464/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221228.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20tips=20for=20writing=20a=20good=20Git=20commit=20message.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 11 tips for writing a good Git commit message.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md diff --git a/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md new file mode 100644 index 0000000000..ae6acb59d1 --- /dev/null +++ b/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md @@ -0,0 +1,185 @@ +[#]: subject: "11 tips for writing a good Git commit message" +[#]: via: "https://opensource.com/article/22/12/git-commit-message" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +11 tips for writing a good Git commit message +====== + +Lately, I have been paying closer attention to the changelogs I get from products and services when updates are needed. Here are some examples: + +- Fixed some bugs. +- Made some accessibility improvements. +- We've made improvements and fixed bugs for a smoother ride. + +When I think about some of the first commit messages I made as a junior developer I have to hang my head in dismay: + +- Pointed and clicked around a bit and now things seem to work. +- Did what programmer X told me to do and now the banner is blue. + +This can be frustrating! I asked our community of contributors the following questions: + +- What makes a good Git commit message? +- What makes a bad one? +- What rules do you think a project should have around what a commit message contains? + +Here are their answers: + +### Great writing is key + +As with anything you write, you should think about who is going to read it. Then adapt the amount and depth of information accordingly. + +Improving your natural language and writing skills is essential for a healthy career in software development. It's not just code that counts. + +**—[Camilla Conte][1]** + +### Be descriptive and don't assume + +I spend a lot of my time collaborating in the [OpenStack][2] community, and its code reviewers have some fairly exacting standards compared to what I see from other projects "in the wild." + +I'll often spend far longer composing a solid commit message than I do writing the actual code implementation or fix. Sometimes commit messages can end up many times longer than the diffs they're explaining. + +To summarize some of the contributor guidance: + +- Describe why a change is being made, not just what is changing +- The first commit line is the most important (like the subject line of an email) +- Don't assume reviewers understand the original problem you're fixing +- Don't assume the reviewer has access to external web services or the site (summarize defect reports and other relevant discussions) +- Don't assume the code is self-evident and self-documenting (though there is no need to repeat points you also make in your code comments) +- Don't include information only relevant to earlier revisions of the change (we expect contributors to squash revisions together and edit their commit messages accordingly). + +There's a brief section on the topic in the OpenStack Contributors Guide: [https://docs.openstack.org/contributors/common/git.html#commit-messages][3] + +**—[Jeremy Stanley][4]** + +### Your future self will thank you + +I cannot agree more with Jeremy. +1000 + +Jeremy said, "describe why a change is being made, not just what's changing." + +Imagine you're someone else, in a faraway future, trying to work out this commit. + +Put yourself in other people's shoes, as the old saying goes. + +**—[Leigh Morresi][5]** + +### Use the bug ID + +I recommend adding the bug ID at the start of the commit message so that it's easier to track the commits at a later stage using the [`grep` command][6]. + +For example: + +``` +$ git commit -m "BZ#19xxxxx +``` + +To come up with thoughtful commits, consider the following: + +- Why have I made these changes? +- What effect have my changes made? +- Why was the change needed? +- What are the changes in reference to? + +**—[Agil Antony][7]** + +### Tell the whole story + +I like to imagine there is a hidden prefix to every commit message that reads "By applying this." + +A good commit message includes exactly what will happen and why. It is insufficient to merely have the work ticket reference because that decentralizes the information; Git is decentralized. As a software developer, I want to know why the proposed changes are being considered. What specific problem is being addressed? What alternate solutions were considered (and discarded)? What unexpected things were discovered during the creation of the changeset that influenced the current content? + +There's no prize for shortest commit message. Your future self and future colleagues will appreciate you going into depth to explain the problem and why this changeset is the answer. Harness those cooking blogs where there's a five-paragraph life story. Here, however, make the problem the subject of the life story. + +**—[Lisa Seelye][8]** + +### But don't be overly verbose + +A good git commit message contains information about what was done, and nothing else. For instance, if you needed to update the .gitignore, just say "updated .gitignore." Folks can dive into the commit itself for more details. It doesn't need to be verbose. + +A bad commit message is something like, "oh crap" or "try this". Granted, I've been guilty of this, but it doesn't help anyone if they need to look at commits at a glance. + +Rules are very subjective. They can differ from lead to lead and team to team. But at the very least, give some contextual information about the commit. Especially if it's a large one. No one has time to skim through 1000+ files with a heavy change history. + +**—[Miriam Goldman][9]** + +### Use present tense + +I like project manager-styled commit messages written in present and not future terms (for example, "add" instead of "added"). However, it's usually only possible if commits are frequent. There's only so much "how did I do it" you can remember when you're faced with a deadline. Yet, well-written commits not only help collaborators, but are also helpful to the committer in recollecting history. + +**—[Chris Okpada][10]** + +### Don't rely on links + +One thing I like to remind colleagues of is that you're not just explaining to the people who are going to decide whether to approve your commit. You're also explaining to future developers and users who have found this commit in a bisect or blame operation and are trying to understand its relevance. + +If the only context supplied is a link to some external system, and that far in the future the system it links to is no longer in use or has otherwise become inaccessible to that individual, your commit message has been rendered useless and may just as well be blank. + +All too often, I go digging in the Git history of some open source project, and find commit messages which are nothing more than a bug ID or a link to some company's internal and private defect tracker. + +Don't be that project! + +**—[Jeremy Stanley][4]** + +### Clear and concise changelogs + +As a release communications manager, I often read the entire release board. I also met with developers to discuss any areas that weren't clear yet. Then I tested the release early. After that, I would write a release post by sourcing the changelogs and corresponding revised or new content. + +The changelogs are personal reminders for developers, but also have corresponding issues and tickets for them. You should capitalize product names appropriately, use a spell checker, be consistent with punctuation, and sentence structure. The lead developer should proofread these as well. Your customers, that are developers, are reading these. What information should they know before running the update to better serve their customers? + +**—[Courtney Robertson][11]** + +### Be specific + +As a frequent release manager, I like messages that name the component a commit touches, and a brief description of what was changed. Also having a reference back to where the request for this work came from helps to tie fixes together long after we forgot about your clever branch name. + +- "fix fatal error" is not ideal. +- "ISS-304: Fix fatal error in Login Access Control function for users + with the Partner role" is better. +- "ISS-304: Login Access Control: fix fatal error in getPartnerId()" is + better still. + +I can look at the entire relationship between a Git commit, branch, merge commit, and inspect the individual lines and files that were changed. But I don't have that kind of time in the middle of a release. I want to be able to relate back to the source of this work in the project management tool, have some idea of which components are being changed, and in what way. + +**—[Ryan Price][12]** + +### Make it a habit + +My favorite commit that I'm guilty of is, "commit before I switch branches" because I have to work on something else more urgent. Sometimes, I need to commit my current work to a totally different project. My manager's strategy is to have us work as we normally do. But then when we rebase, he wants us to squash commits where it makes sense and write better messages. I can't say we always do this, but his method does make sense. + +I have a lot of "this is broken don't know why" type messages too (haha) where I try things but want to commit that attempt before I try something else in case method A was closer to fixing the issue than method B. Writing code is a hot mess. And I've been writing it for over 10 years. + +**—[RachieVee][13]** + +What commit message advice or tips do you live by? Let us know in the comments. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/git-commit-message + +作者:[AmyJune Hineline][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/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/users/spotlesstofu +[2]: https://opensource.com/resources/what-is-openstack +[3]: https://docs.openstack.org/contributors/common/git.html#commit-messages +[4]: https://opensource.com/users/fungi +[5]: https://opensource.com/users/dgtlmoon +[6]: https://opensource.com/downloads/grep-cheat-sheet +[7]: https://opensource.com/users/agantony +[8]: https://opensource.com/users/lisa +[9]: https://opensource.com/users/miriamgoldman +[10]: https://opensource.com/users/ojchris +[11]: https://opensource.com/users/courtneyrdev +[12]: https://opensource.com/users/liberatr +[13]: https://opensource.com/users/rachievee From 97b5482b746cc8c4104781d37690424b5a3bbe54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 29 Dec 2022 21:57:38 +0800 Subject: [PATCH 2465/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221229.0=20=E2=AD=90=EF=B8=8F=20Be=20Delighted!=20?= =?UTF-8?q?Unity=20Teases=20Version=207.7=20as=20the=20Sign=20of=20Active?= =?UTF-8?q?=20Development.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rsion 7.7 as the Sign of Active Development.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md diff --git a/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md new file mode 100644 index 0000000000..13cb812f88 --- /dev/null +++ b/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md @@ -0,0 +1,123 @@ +[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development" +[#]: via: "https://news.itsfoss.com/unity-7-7-dev/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development +====== + +Unity 7.7 update plans to bring in some visual overhaul to the desktop environment. + +![Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development][1] + +Unity, the classic desktop environment, a part of Ubuntu from 2010 to 2017, is all set to receive a big new release. You can expect it to release sometime in 2023, but there is no concrete release date yet. + +But not by [Canonical][2]. + +**If you did not know:** The development of Unity was taken over by a young developer, [Rudra Saraswat][3], who is also the creator of [Ubuntu Unity][4], an official flavor of Ubuntu. + +In a recent [blog post][5], Rudra showed us a sneak peek of Unity 7.7 and the various improvements that are set to come. + +Let me take you through those. + +### Unity 7.7: What To Expect? + +![unity 7.7 sneak peek][6] + +The sneak peek has revealed quite a few things, these include: + +- **Updated Welcome App** +- **UWidgets** +- **Improved Dash** +- **Panel Tweaks** +- **Enhanced Notification Indicators** + +#### Updated Welcome App + +![unity 7.7 sneak peek welcome app][7] + +A new welcome app will be introduced to Unity, based on a prototype developed by the Ubuntu Flutter Community (written in [Flutter][8]). + +The app will not be limited to just one distro, but will be available for all the distros supported by Unity. + +#### UWidgets + +![unity 7.7 sneak peek uwidgets][9] + +Finally, widgets on the Unity desktop? Like KDE? + +Well, the introduction of widgets to Unity, written in Python, should be straightforward to set up (only a matter of copying a few files). + +The screenshot showcases a bunch of widgets, such as a clock, a system monitor, a widget for Spotify, and more. + +That is not all, Rudra also mentions that: + +> We’ll be setting up a web store/repository for UWidgets, where you can either submit your own widgets, or download and try out all those amazing widgets on Unity 7.7. + +This should make it easier for users to find and download widgets! + +#### Improved Dash + +![unity 7.7 sneak peek dash][10] + +The dash has also been refreshed with a new design based on Unity 7's original design concepts (before Canonical dropped it). + +As per the screenshot, it should not take a lot of screen space and still be useful. + +#### Panel Tweaks + +![unity 7.7 sneak peek panels][11] + +The panel is now slightly bigger and more refined than the previous iteration. + +#### Enhanced Notification Indicators + +![unity 7.7 sneak peek notification indicators][12] + +This comes in as a huge usability improvement to Unity; users can now finally take advantage of a proper notification indicator. + +It will display essential notifications related to your apps, system and more. + +#### Other Changes + +![ubuntu unity control center][13] + +Some more useful technical improvements include: + +- **The unity-control-center shell UI has been improved.** +- **The default panel opacity was reduced to 0.75.** +- **The default launcher icon size has been reduced.** +- **Launcher BFB (Ubuntu icon) was replaced with a half-transparent icon, similar to the Ubuntu Unity 21.04 launcher BFB.** + +_Excited about Unity 7.7? Let me know your thoughts in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unity-7-7-dev/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png +[2]: https://canonical.com +[3]: https://about.ruds.io +[4]: https://ubuntuunity.org +[5]: https://unityd.org/unity-7-7-peek/ +[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg +[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg +[8]: https://flutter.dev +[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg +[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg +[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg +[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg +[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png From ce7c69233987511a412797df5f95502f29c62778 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 30 Dec 2022 09:32:49 +0800 Subject: [PATCH 2466/3123] translated --- ...y Challenge the Supremacy of Visual Studio Code.md | 123 ------------------ ...y Challenge the Supremacy of Visual Studio Code.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 123 deletions(-) delete mode 100644 sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md create mode 100644 translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md diff --git a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md deleted file mode 100644 index a7ca46d18d..0000000000 --- a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code" -[#]: via: "https://news.itsfoss.com/upcoming-code-editors/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code -====== - -Interesting code editors that might replace Visual Studio Code for you in 2023! - -![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1] - -Well, 2022 is coming to an end. - -We featured new remarkable code editors being released for Linux, starting from [Lite XL][2], to options like [Pulsar][3] and more. - -So, to commemorate that, I have compiled this list of upcoming code editors for Linux that have a strong chance of challenging the supremacy of [Visual Studio Code][4]. - -Let me take you through it. - -### 1. Pulsar - -![pulsar][5] - -[Pulsar][6] is a community-led open-source code editor aiming to be a replacement for the famous Atom code editor. - -The community behind it has been hard at work bringing this on par with the original Atom editor by introducing modern features with an updated architecture. - -So, if you were an Atom user, you could try this! - -It is available to download from the [official website][7], but do keep in mind that it is in its early development stages. - -### 2. Atom Community - -![atom community][8] - -Also rising from [the ashes][9] of the now-defunct Atom editor, '[Atom Community][10]' is a project meant to take over the concepts and ideas of its predecessor. - -They aim to get started by providing the most essential features and making it on par with the functionality available in the [atom-ide-ui][11] package. - -It has the potential to be something more, but in its current form, I would not suggest this to new users right now. They have a slightly different long-term goal when compared to Pulsar, which makes it another project worth taking a look at. - -But, for 2023, things could be different. - -Still, those who like an adventure can build it using the [source code][12]. - -### 3. Lapce - -![lapce][13] - -A lightweight and fast open-source code editor? - -That is what [Lapce][14] is! - -It is a Rust-based open-source code editor that focuses on providing such an experience. - -We covered it when it was in the pre-alpha stage, but in 2023 it can be something to watch out for. - -### 4. Zed - -![zed breadcrumbs][15] - -[Zed][16] is an upcoming code editor aiming to challenge VS Code's dominance. - -It is set to feature many features, such as Real-time collaboration, a minimal interface, code actions, a command palette, and [more][17]. - -In fact, Atom's founder, [Nathan Sobo][18] is behind this and has termed this as the '_spiritual successor_' to Atom. - -### 5. Lite XL - -![lite xl][19] - -[Lite XL][2] is an open-source code editor written in Lua, and only uses three megabytes of storage and around twenty megabytes of RAM. (compared to VS Code's ~550 MB). - -It could be to your liking if you were looking for a completely minimal code editor. - -You can get it right now from the [official website][20], it receives regular updates, and you can expect the same to be true in 2023. - -**Well, this is the end of this list and the year 2022.** 😃 - -_I may have missed some code editors, and I know you will let me know in the comments section. Feel free to share your thoughts!_ - -> 🌐 Follow us on [Mastodon][21] and [Twitter][22] to never miss an update! - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/upcoming-code-editors/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png -[2]: https://itsfoss.com/lite-xl/ -[3]: https://news.itsfoss.com/pulsar-editor/ -[4]: https://code.visualstudio.com -[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png -[6]: https://pulsar-edit.dev -[7]: https://pulsar-edit.dev/download.html#releases -[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg -[9]: https://github.blog/2022-06-08-sunsetting-atom/ -[10]: https://atom-community.github.io -[11]: https://github.com/facebookarchive/atom-ide-ui -[12]: https://github.com/atom-community/atom -[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg -[14]: https://lapce.dev -[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg -[16]: https://zed.dev/ -[17]: https://zed.dev/features -[18]: https://twitter.com/nathansobo -[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg -[20]: https://lite-xl.com/en/downloads -[21]: https://mastodon.social/@itsfoss -[22]: https://twitter.com/itsfoss2 diff --git a/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md new file mode 100644 index 0000000000..c0b3576850 --- /dev/null +++ b/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md @@ -0,0 +1,123 @@ +[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code" +[#]: via: "https://news.itsfoss.com/upcoming-code-editors/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 个即将推出的代码编辑器可能会挑战 Visual Studio Code 的霸主地位 +====== + +有趣的代码编辑器可能会在 2023 年取代 Visual Studio Code! + +![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1] + +嗯,2022 年即将结束。 + +我们推出了针对 Linux 发布的新的卓越代码编辑器,从 [Lite XL][2] 到 [Pulsar][3] 等。 + +因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [Visual Studio Code][4] 的霸主地位。 + +让我带你了解它。 + +### 1. Pulsar + +![pulsar][5] + +[Pulsar][6] 是一个社区主导的开源代码编辑器,旨在替代著名的 Atom 代码编辑器。 + +它背后的社区一直在努力工作,通过引入具有更新架构的现代功能,使其与原始 Atom 编辑器不相上下。 + +所以,如果你是 Atom 用户,你可以试试这个! + +它可以从[官方网站][7]下载,但请记住,它还处于早期开发阶段。 + +### 2. Atom 社区 + +![atom community][8] + +“[Atom 社区][10]”也是从现已停止维护的 Atom 编辑器的[灰烬][9]中崛起的,它是一个旨在接管其前身的概念和想法的项目。 + +他们的目标是从提供最基本的特性开始,并使其与 [atom-ide-ui][11] 包中的可用功能相媲美。 + +它可能会有更多东西,但就目前的形式而言,我现在不建议新用户这样做。与 Pulsar 相比,他们的长期目标略有不同,这使它成为另一个值得一看的项目。 + +但是,到 2023 年,情况可能会有所不同。 + +不过,那些喜欢冒险的人可以使用[源代码][12]来构建它。 + +### 3. Lapce + +![lapce][13] + +一个轻量级和快速的开源代码编辑器? + +这就是 [Lapce][14]! + +它是一个基于 Rust 的开源代码编辑器,专注于提供这样的体验。 + +我们在它处于 pre-alpha 阶段时对其进行了介绍,但在 2023 年它可能会引起注意。 + +### 4. Zed + +![zed breadcrumbs][15] + +[Zed][16] 是即将推出的代码编辑器,旨在挑战 VS Code 的统治地位。 + +它有许多功能,例如实时协作、最小界面、代码动作、命令面板等[更多功能][17]。 + +事实上,Atom 的创始人 [Nathan Sobo][18] 是这一切的幕后推手,并将其称为 Atom 的“_精神继承者_”。 + +### 5. Lite XL + +![lite xl][19] + +[Lite XL][2] 是一个用 Lua 编写的开源代码编辑器,仅使用 3MB 的存储空间和大约 20MB 的内存。(与 VS Code 的 ~550 MB 相比)。 + +如果你正在寻找一个完全最小化的代码编辑器,它可能会合你的口味。 + +你现在可以从[官方网站][20]获取它,它会定期更新,预计 2023 年也会如此。 + +**好了,这是这份名单的结束,也是2022年的结束。** 😃 + +_我可能错过了一些代码编辑器,我知道你会在评论部分告诉我。随时分享你的想法!_ + +> 🌐 在 [Mastodon][21] 和 [Twitter][22] 上关注我们,不错过任何更新! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/upcoming-code-editors/ + +作者:[Sourav Rudra][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://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png +[2]: https://itsfoss.com/lite-xl/ +[3]: https://news.itsfoss.com/pulsar-editor/ +[4]: https://code.visualstudio.com +[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png +[6]: https://pulsar-edit.dev +[7]: https://pulsar-edit.dev/download.html#releases +[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg +[9]: https://github.blog/2022-06-08-sunsetting-atom/ +[10]: https://atom-community.github.io +[11]: https://github.com/facebookarchive/atom-ide-ui +[12]: https://github.com/atom-community/atom +[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg +[14]: https://lapce.dev +[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg +[16]: https://zed.dev/ +[17]: https://zed.dev/features +[18]: https://twitter.com/nathansobo +[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg +[20]: https://lite-xl.com/en/downloads +[21]: https://mastodon.social/@itsfoss +[22]: https://twitter.com/itsfoss2 From 4e3e28775fb806918bc1adccab25909aeeb5875c Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 30 Dec 2022 09:41:44 +0800 Subject: [PATCH 2467/3123] translating --- ...️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md index a6e34a26fe..6a914d5ab3 100644 --- a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md +++ b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 280626c062990e3d528722e924584359a3e515bb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 30 Dec 2022 10:36:02 +0800 Subject: [PATCH 2468/3123] RP @yzuowei https://linux.cn/article-15395-1.html --- .../20220729 Learn Rust by debugging Rust.md | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) rename {translated/tech => published}/20220729 Learn Rust by debugging Rust.md (78%) diff --git a/translated/tech/20220729 Learn Rust by debugging Rust.md b/published/20220729 Learn Rust by debugging Rust.md similarity index 78% rename from translated/tech/20220729 Learn Rust by debugging Rust.md rename to published/20220729 Learn Rust by debugging Rust.md index f725d789dc..3129292941 100644 --- a/translated/tech/20220729 Learn Rust by debugging Rust.md +++ b/published/20220729 Learn Rust by debugging Rust.md @@ -3,29 +3,28 @@ [#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15395-1.html" -以调试 Rust 来学习 Rust +以调试 Rust 的方式来学习 Rust ====== -Rustlings 是由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。 + +> Rustlings 是由 Rust 团队维护的开源项目,旨在帮助你通过调试代码的方式来学习 Rust。 ![Ferris the crab under the sea, unofficial logo for Rust programming language][1] -图片来源:Opensource.com - -在我上一篇[关于 rustup 的文章][2]中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又有什么用?学习任何语言都包括阅读现有的代码和写很多的示例程序。这是精通一门语言的好方法。然而,我们还可以走第三条路:调试代码。 +在我上一篇 [关于 Rustup 的文章][2] 中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又有什么用?学习任何语言都包括阅读现有的代码和写很多的示例程序,这是精通一门语言的好方法。然而,我们还可以走第三条路:调试代码。 通过调试来学习牵扯到尝试去编译一个已经写好的(满是漏洞的)示例程序,理解编译器生成的错误信息,修复示例代码,然后再重新编译。重复这个过程直到代码能够成功被编译并运行。 -[Rustlings][3] 是一个由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者并且刚开始读或已经读完了 Rust 书,那么 rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学,并转向开发更大的项目。 +[Rustlings][3] 是一个由 Rust 团队维护的开源项目,旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者,并且刚开始阅读或已经读完了 Rust 书籍,那么 Rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学,并转向开发更大的项目。 -### 安装 rustlings +### 安装 Rustlings -我使用(并推荐)Fedora 电脑来体验 rustlings,但是任何 Linux 发行版都可以。要安装 rustlings,你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户(非 root 用户)来运行脚本。 +我使用(并推荐)Fedora 电脑来体验 Rustlings,但是任何 Linux 发行版都可以。要安装 Rustlings,你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户(非 root 用户)来运行脚本。 -记住,你需要 Rust 工具链来使用 rustlings。如果你还没有这些工具链,请参考我[关于 rustup 的文章][4]。 +记住,你需要 Rust 工具链来使用 Rustlings。如果你还没有这些工具链,请参考我 [关于 Rustup 的文章][4]。 当你准备好时,下载这个安装脚本: @@ -51,17 +50,17 @@ Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustling All done! ``` -运行 'rustlings' 以开始。 +运行 `rustlings` 以开始。 ### Rustlings 练习 -你现在可以使用命令 `rustlings`。与旗标 `--help` 一起执行来查看可选的选项。 +你现在可以使用命令 `rustlings`。与标志 `--help` 一起执行来查看可选的选项。 ``` $ rustlings --help ``` -这个安装脚本也克隆了 rustlings 的 Git 仓库,并安装了运行示例程序所需的依赖。你可以在 `ruslings` 底下的 exercises 目录查阅这些示例程序。 +这个安装脚本也克隆了 Rustlings 的 Git 仓库,并安装了运行示例程序所需的依赖。你可以在 `ruslings` 下的 `exercises` 目录查阅这些示例程序。 ``` $ cd rustlings @@ -77,7 +76,7 @@ standard_library_types, strings, structs, tests, threads, traits, variables ### 从命令行列出所有练习 -命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 **pending**)。 +命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 “待定”)。 ``` $ rustlings list @@ -106,7 +105,7 @@ $ cat exercises/intro/intro1.rs ### 验证你的程序 -现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 rustlings 选择了列表里的第一个程序 (`intro1.rs`) 并尝试去编译它,最后编译成功: +现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 Rustlings 选择了列表里的第一个程序(`intro1.rs`)并尝试去编译它,最后编译成功: ``` $ rustlings verify @@ -129,11 +128,11 @@ $ grep "NOT DONE" exercises/intro/intro1.rs // I AM NOT DONE ``` -虽然第一个程序的编译没有问题,除非你去掉注释 `I AM NOT DONE`,rustlings 不会移到下一个程序。 +虽然第一个程序的编译没有问题,除非你去掉注释 `I AM NOT DONE`,Rustlings 不会移到下一个程序。 ### 来到下一个练习 -一旦你从 `intro1.rs` 中去掉这些注释,你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次,你会发现 rustlings 尝试去编译这个系列中的下一个程序(`intro2.rs`),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。 +一旦你从 `intro1.rs` 中去掉这些注释,你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次,你会发现 Rustlings 尝试去编译这个系列中的下一个程序(`intro2.rs`),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。 ``` $ rustlings verify @@ -190,7 +189,7 @@ variables3   exercises/variables/variables3.rs     Pending ### 运行特定的练习 -如果你不想从头开始并且想要跳过一些练习,rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如: +如果你不想从头开始并且想要跳过一些练习,Rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如: ``` $ rustlings run intro2 @@ -199,7 +198,7 @@ Hello world! $ rustlings run variables1 ``` -敲入练习名字可能会变得乏味,但 rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。 +敲入练习名字可能会变得乏味,但 Rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。 ``` $ rustlings run next @@ -217,7 +216,7 @@ $ rustlings watch Rust 编译器以提供非常有意义的错误信息而被熟知,这些错误信息会帮助你理解在你代码中的问题。这通常意味着更快的调试。Rustlings 是练习 Rust,学会阅读错误信息,并理解 Rust 语言的优秀途径。来看看 [GitHub][7] 上 Rustlings 5.0.0 的最新功能吧。 -**[[ 学习 Rust 编程,来下载我们的 Rust 速查表。 ]][8]** +> **[下载 Rust 速查表][8]** -------------------------------------------------------------------------------- @@ -226,7 +225,7 @@ via: https://opensource.com/article/22/7/learn-rust-rustlings 作者:[Gaurav Kamathe][a] 选题:[lkxed][b] 译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1a2d982dbf633f645a779cde02820fc97a8bc51d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 30 Dec 2022 11:00:19 +0800 Subject: [PATCH 2469/3123] RP @geekpi https://linux.cn/article-15396-1.html --- ...Try this Python-based file manager on Linux.md | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) rename {translated/tech => published}/20221218.1 ⭐️ Try this Python-based file manager on Linux.md (74%) diff --git a/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md similarity index 74% rename from translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md rename to published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md index 1751281710..bdf9cf56a9 100644 --- a/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md +++ b/published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md @@ -3,20 +3,24 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15396-1.html" 在 Linux 上试试这个基于 Python 的文件管理器 ====== +![][0] + +> Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。 + Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。它易于安装和使用,并且是 Python 可以做什么的一个很好的例子。 -Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从[绘制基本几何形状][1]到[抓取网页][2]再到编写僵尸启示录[游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。 +Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从 [绘制基本几何形状][1] 到 [抓取网页][2] 再到编写僵尸启示录 [游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。 ### 安装 Dragonfly Navigator -要安装 Dragonfly Navigator,首先从 [Git 仓库][4]下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。 +要安装 Dragonfly Navigator,首先从 [Git 仓库][4] 下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。 Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安装它,所以由你来解决这些问题。它只有两个依赖,所以使用你的包管理器(`dnf` 或 `apt`)找到并安装它们: @@ -31,7 +35,7 @@ Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安 $ tar xvf dragonfly*gz ``` -在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你[手动安装][5]。 +在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你 [手动安装][5]。 现在,我没有安装它,所以我手动启动它: @@ -48,7 +52,7 @@ Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向 ### 打开目录 -要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 **Ctrl** 键以在另一个面板中显示其内容。 +要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 `Ctrl` 键以在另一个面板中显示其内容。 ### 打开文件 @@ -58,7 +62,7 @@ Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向 ### 快速预览 -某些文件可用于快速预览,因此你不必在任何特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 **Alt** 键。预览出现在对面的面板中。 +某些文件可用于快速预览,因此你不必在某个特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 `Alt` 键。预览出现在对面的面板中。 ![The second panel of Dragonfly Navigator can be used as a preview pane.][7] @@ -68,19 +72,19 @@ Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向 - 在一个面板中,进入目标目录。这是你要将文件复制到的位置。 - 在另一个面板中,选择要复制的文件。 -- 单击 Dragonfly Navigator 中间条中的**复制**按钮。 +- 单击 Dragonfly Navigator 中间条中的 “复制Copy” 按钮。 -要移动文件,请按照相同的步骤操作,但要单击**移动**按钮。 +要移动文件,请按照相同的步骤操作,但要单击 “移动Move” 按钮。 -如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它 成为第二天性。 +如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它成为第二天性。 ### 选择文件 通常,你单击一个文件或文件夹以使其成为你的活动选择。这可能与你当前的文件管理器没有什么不同,或者至少与你过去使用过的某些文件管理器没有什么不同。 -要选择一个范围内的多个项目,请单击一个文件,然后按住 **Shift** 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。 +要选择一个范围内的多个项目,请单击一个文件,然后按住 `Shift` 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。 -要选择多个任意文件,请按住 **Ctrl** 键并单击要选择的文件。 +要选择多个任意文件,请按住 `Ctrl` 键并单击要选择的文件。 ### Qt 和 Python 的力量 @@ -93,7 +97,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator 作者:[Seth Kenlon][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/) 荣誉推出 @@ -106,3 +110,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator [5]: https://opensource.com/article/18/1/how-install-apps-linux [6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp [7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp +[0]: https://img.linux.net.cn/data/attachment/album/202212/30/105706fk81jdkd1jkh9xpc.jpg \ No newline at end of file From 354ca8193f4f0448343a4ad1346ca5fa53211012 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 31 Dec 2022 15:44:54 +0800 Subject: [PATCH 2470/3123] RP @wxy https://linux.cn/article-15398-1.html --- ...rsion 7.7 as the Sign of Active Development.md | 123 ++++++++++++++++++ ...rsion 7.7 as the Sign of Active Development.md | 123 ------------------ 2 files changed, 123 insertions(+), 123 deletions(-) create mode 100644 published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md delete mode 100644 sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md diff --git a/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md new file mode 100644 index 0000000000..aa582149ce --- /dev/null +++ b/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md @@ -0,0 +1,123 @@ +[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development" +[#]: via: "https://news.itsfoss.com/unity-7-7-dev/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15398-1.html" + +Unity 正在积极开发,预告 7.7 版 +====== + +> Unity 7.7 版的更新计划为该桌面环境带来一些视觉上的改革。 + +![][1] + +Unity,经典的桌面环境,从 2010 年到 2017 年都是 Ubuntu 的一部分,将收到一个大的新版本。你可以期待它在 2023 年的某个时候发布,但目前还没有具体的发布日期。 + +但不是由 [Canonical][2] 发布。 + +**如果你不知道:** Unity 的开发由一位年轻的开发者 [Rudra Saraswat][3] 接手,他也是 [Ubuntu Unity][4] 衍生版的创造者,这是 Ubuntu 的一个官方特色版。 + +在最近的一篇 [博文][5] 中,Rudra 向我们揭示了 Unity 7.7 的一角和即将到来的各种改进。 + +让我带你看看这些。 + +### Unity 7.7 值得期待的地方 + +![unity 7.7 一窥][6] + +这次披露的内容有很多,其中包括: + +- 更新的欢迎应用程序 +- UWidgets +- 改进的仪表盘 +- 面板的调整 +- 增强的通知指示器 + +#### 更新的欢迎应用程序 + +![][7] + +一个新的欢迎应用程序将被引入 Unity,它基于 Ubuntu Flutter 社区开发的原型(用 [Flutter][8] 编写)。 + +这个应用程序将不只限于一个发行版,而是适用于 Unity 所支持的所有发行版。 + +#### UWidgets + +![][9] + +终于有了,Unity 桌面上的小部件?像 KDE 一样? + +好吧,在 Unity 中引入用 Python 编写的小部件,应该很简单就可以设置(只是复制几个文件的问题)。 + +屏幕截图展示了一堆小部件,如时钟、系统监视器、Spotify 的小部件等等。 + +这还不是全部,Rudra 还提到: + +> 我们将为 UWidgets 建立一个网页商店/仓库,在那里你可以提交你自己的小部件,或者下载并试用 Unity 7.7 上所有这些令人惊叹的小部件。 + +这应该会使用户更容易找到和下载小部件! + +#### 改进的仪表盘 + +![][10] + +仪表盘Dash也被刷新了,新的设计基于 Unity 7 的原始设计概念(在 Canonical 放弃它之前)。 + +按照截图,它应该不会占用大量的屏幕空间,而且还很有用。 + +#### 面板的调整 + +![][11] + +现在的面板比之前的版本略大且更精致。 + +#### 增强的通知指示器 + +![][12] + +这对 Unity 来说是一个巨大的可用性改进;用户现在终于可以利用一个适当的通知指示器了。 + +它将显示与你的应用程序、系统和更多相关的基本通知。 + +#### 其他变化 + +![][13] + +一些更有用的技术改进包括: + +- unity-control-center 的外壳 UI 得到了改进 +- 默认的面板不透明度降低到 0.75 +- 默认的启动器图标尺寸被缩小了 +- 启动器按钮(Ubuntu 图标)被替换为半透明的图标,类似于 Ubuntu Unity 21.04 的启动器按钮。 + +_对 Unity 7.7 感到激动?请在下面的评论中告诉我你的想法。_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/unity-7-7-dev/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png +[2]: https://canonical.com +[3]: https://about.ruds.io +[4]: https://ubuntuunity.org +[5]: https://unityd.org/unity-7-7-peek/ +[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg +[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg +[8]: https://flutter.dev +[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg +[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg +[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg +[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg +[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png diff --git a/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md deleted file mode 100644 index 13cb812f88..0000000000 --- a/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development" -[#]: via: "https://news.itsfoss.com/unity-7-7-dev/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development -====== - -Unity 7.7 update plans to bring in some visual overhaul to the desktop environment. - -![Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development][1] - -Unity, the classic desktop environment, a part of Ubuntu from 2010 to 2017, is all set to receive a big new release. You can expect it to release sometime in 2023, but there is no concrete release date yet. - -But not by [Canonical][2]. - -**If you did not know:** The development of Unity was taken over by a young developer, [Rudra Saraswat][3], who is also the creator of [Ubuntu Unity][4], an official flavor of Ubuntu. - -In a recent [blog post][5], Rudra showed us a sneak peek of Unity 7.7 and the various improvements that are set to come. - -Let me take you through those. - -### Unity 7.7: What To Expect? - -![unity 7.7 sneak peek][6] - -The sneak peek has revealed quite a few things, these include: - -- **Updated Welcome App** -- **UWidgets** -- **Improved Dash** -- **Panel Tweaks** -- **Enhanced Notification Indicators** - -#### Updated Welcome App - -![unity 7.7 sneak peek welcome app][7] - -A new welcome app will be introduced to Unity, based on a prototype developed by the Ubuntu Flutter Community (written in [Flutter][8]). - -The app will not be limited to just one distro, but will be available for all the distros supported by Unity. - -#### UWidgets - -![unity 7.7 sneak peek uwidgets][9] - -Finally, widgets on the Unity desktop? Like KDE? - -Well, the introduction of widgets to Unity, written in Python, should be straightforward to set up (only a matter of copying a few files). - -The screenshot showcases a bunch of widgets, such as a clock, a system monitor, a widget for Spotify, and more. - -That is not all, Rudra also mentions that: - -> We’ll be setting up a web store/repository for UWidgets, where you can either submit your own widgets, or download and try out all those amazing widgets on Unity 7.7. - -This should make it easier for users to find and download widgets! - -#### Improved Dash - -![unity 7.7 sneak peek dash][10] - -The dash has also been refreshed with a new design based on Unity 7's original design concepts (before Canonical dropped it). - -As per the screenshot, it should not take a lot of screen space and still be useful. - -#### Panel Tweaks - -![unity 7.7 sneak peek panels][11] - -The panel is now slightly bigger and more refined than the previous iteration. - -#### Enhanced Notification Indicators - -![unity 7.7 sneak peek notification indicators][12] - -This comes in as a huge usability improvement to Unity; users can now finally take advantage of a proper notification indicator. - -It will display essential notifications related to your apps, system and more. - -#### Other Changes - -![ubuntu unity control center][13] - -Some more useful technical improvements include: - -- **The unity-control-center shell UI has been improved.** -- **The default panel opacity was reduced to 0.75.** -- **The default launcher icon size has been reduced.** -- **Launcher BFB (Ubuntu icon) was replaced with a half-transparent icon, similar to the Ubuntu Unity 21.04 launcher BFB.** - -_Excited about Unity 7.7? Let me know your thoughts in the comments below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/unity-7-7-dev/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png -[2]: https://canonical.com -[3]: https://about.ruds.io -[4]: https://ubuntuunity.org -[5]: https://unityd.org/unity-7-7-peek/ -[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg -[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg -[8]: https://flutter.dev -[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg -[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg -[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg -[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg -[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png From 8393b206381b25f76ba1545ba19cf143aa491ab9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 31 Dec 2022 16:41:37 +0800 Subject: [PATCH 2471/3123] RP @geekpi https://linux.cn/article-15399-1.html --- ...y Challenge the Supremacy of Visual Studio Code.md | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) rename {translated/tech => published}/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md (72%) diff --git a/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md similarity index 72% rename from translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md rename to published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md index c0b3576850..9b925483b3 100644 --- a/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md +++ b/published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md @@ -3,14 +3,14 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15399-1.html" -5 个即将推出的代码编辑器可能会挑战 Visual Studio Code 的霸主地位 +5 个即将推出的可能会挑战 VS Code 的代码编辑器 ====== -有趣的代码编辑器可能会在 2023 年取代 Visual Studio Code! +> 这些有趣的代码编辑器可能会在 2023 年取代 VS Code! ![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1] @@ -18,27 +18,27 @@ 我们推出了针对 Linux 发布的新的卓越代码编辑器,从 [Lite XL][2] 到 [Pulsar][3] 等。 -因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [Visual Studio Code][4] 的霸主地位。 +因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [VS Code][4] 的霸主地位。 让我带你了解它。 -### 1. Pulsar +### 1、Pulsar ![pulsar][5] [Pulsar][6] 是一个社区主导的开源代码编辑器,旨在替代著名的 Atom 代码编辑器。 -它背后的社区一直在努力工作,通过引入具有更新架构的现代功能,使其与原始 Atom 编辑器不相上下。 +它使用与 Atom 相同的代码库,有一个开源的后端(得益于逆向工程的工作),更新了依赖性。 -所以,如果你是 Atom 用户,你可以试试这个! +他们有计划在不久的将来对其进行改进。 -它可以从[官方网站][7]下载,但请记住,它还处于早期开发阶段。 +它可以从 [官方网站][7] 下载,但请记住,它还处于早期开发阶段。 -### 2. Atom 社区 +### 2、Atom 社区版 ![atom community][8] -“[Atom 社区][10]”也是从现已停止维护的 Atom 编辑器的[灰烬][9]中崛起的,它是一个旨在接管其前身的概念和想法的项目。 +“[Atom 社区版][10]” 也是从现已停止维护的 Atom 编辑器的 [灰烬][9] 中重生的,它是一个旨在接管其前身的概念和想法的项目。 他们的目标是从提供最基本的特性开始,并使其与 [atom-ide-ui][11] 包中的可用功能相媲美。 @@ -46,9 +46,9 @@ 但是,到 2023 年,情况可能会有所不同。 -不过,那些喜欢冒险的人可以使用[源代码][12]来构建它。 +尽管如此,那些喜欢冒险的人可以使用 [源代码][12] 来构建它。 -### 3. Lapce +### 3、Lapce ![lapce][13] @@ -60,17 +60,17 @@ 我们在它处于 pre-alpha 阶段时对其进行了介绍,但在 2023 年它可能会引起注意。 -### 4. Zed +### 4、Zed ![zed breadcrumbs][15] [Zed][16] 是即将推出的代码编辑器,旨在挑战 VS Code 的统治地位。 -它有许多功能,例如实时协作、最小界面、代码动作、命令面板等[更多功能][17]。 +它有许多功能,例如实时协作、极简界面、代码动作、命令面板等 [更多功能][17]。 事实上,Atom 的创始人 [Nathan Sobo][18] 是这一切的幕后推手,并将其称为 Atom 的“_精神继承者_”。 -### 5. Lite XL +### 5、Lite XL ![lite xl][19] @@ -78,14 +78,12 @@ 如果你正在寻找一个完全最小化的代码编辑器,它可能会合你的口味。 -你现在可以从[官方网站][20]获取它,它会定期更新,预计 2023 年也会如此。 +你现在可以从 [官方网站][20] 获取它,它会定期更新,预计 2023 年也会如此。 -**好了,这是这份名单的结束,也是2022年的结束。** 😃 +**好了,这是这份名单的结束,也是 2022 年的结束。** 😃 _我可能错过了一些代码编辑器,我知道你会在评论部分告诉我。随时分享你的想法!_ -> 🌐 在 [Mastodon][21] 和 [Twitter][22] 上关注我们,不错过任何更新! - -------------------------------------------------------------------------------- via: https://news.itsfoss.com/upcoming-code-editors/ @@ -93,7 +91,7 @@ via: https://news.itsfoss.com/upcoming-code-editors/ 作者:[Sourav Rudra][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/) 荣誉推出 From dd74b5193f46acaf0982e18fad6400df308a01a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 31 Dec 2022 23:57:46 +0800 Subject: [PATCH 2472/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020221230.0=20=E2=AD=90=EF=B8=8F=20An=20Open-Source?= =?UTF-8?q?=20Alternative=20to=20Google,=20Alexa,=20and=20Siri=20in=20Work?= =?UTF-8?q?s=20for=20Home=20Assistant=20Platform.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d Siri in Works for Home Assistant Platform.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md diff --git a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md new file mode 100644 index 0000000000..80b6010732 --- /dev/null +++ b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md @@ -0,0 +1,80 @@ +[#]: subject: "An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform" +[#]: via: "https://news.itsfoss.com/open-source-assistant/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform +====== + +An open-source assistant to replace Google, Alexa, Siri? + +![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1] + +**Home Assistant** is an open-source smart home platform that focuses on providing local control and privacy to its users. It can run off a Raspberry Pi or even a local server. + +They also have a subscription service for access to additional features such as support for Alexa and Google Assistant, which is managed by a company called '[Nabu Casa][2]'. + +> 💡 The company is led by [Paulus Schoutsen][3], the founder of Home Assistant. + +In a [blog][4] last week, Paulus announced **a new open-source project that aims to offer a voice assistant without an active internet connection** or any other big tech voice assistants. + +So, an _open-source challenger to Google, Alexa, and Siri?_😲 + +Let's see what this is all about, then. + +**What is it?:** This will be a part of the Home Assistant application and will offer the ability to run voice commands locally to control the connected smart devices. + +Paulus also asserts that their most important priority is to support different languages, he says: + +> People need to be able to speak in their own language, as that is the most accessible and only acceptable language for a voice assistant for the smart home. + +To fuel this endeavor, the creator of Rhasspy, [Mike Hansen][5], has been roped in to make this possible. + +For those of you who don't know, [Rhasspy][6] is another open-source software that specializes in providing a fully offline voice assistant that is backed by its community of users. + +If you ask me, I feel that this feature of Home Assistant will be powered by Rhasspy, which is a good thing. + +_Why reinvent something that already exists? It's better to improve upon it._ + +**What to expect?:** Initially, the voice assistant won't be able to do things you might expect. So, things like making a web search, making calls, playing voice games, etc., are a no-go. + +What it will focus on instead are the **basics of what a voice assistant should be**; this was done to make sure that the work ahead of them was manageable. + +They aim to start with a few actions and then build up language models around them. + +In its current state, Home Assistant supports 62 different languages in its user interface. They plan to add support for all these languages with their voice assistant. + +**When to expect?:** They have already started work on this by building a [collection of intent matching sentences][7] for every language. + +What this means is that the community can contribute to the development of the voice assistant by adapting the commands for smart devices to their respective native languages. + +They aim for a release sometime in **2023** and have mentioned that it will be the '_year of voice_'. + +I think an open-source voice assistant that works offline can be a very useful thing to have; it lets you be free of any tracking from big tech. + +💬 _With the added benefit of having a large community behind its development of it, what's not to like?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/open-source-assistant/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/open-source-home-assistant-in-works.png +[2]: https://www.nabucasa.com +[3]: https://twitter.com/balloob +[4]: https://www.home-assistant.io/blog/2022/12/20/year-of-voice/ +[5]: https://synesthesiam.com +[6]: https://rhasspy.readthedocs.io +[7]: https://github.com/home-assistant/intents From 9a0a144554a6be55939e5882a6f66eba60f14b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 31 Dec 2022 23:59:39 +0800 Subject: [PATCH 2473/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020221230.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Vanilla=20OS=20Stable=20Release=20Has=20Landed!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Vanilla OS Stable Release Has Landed!.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md diff --git a/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md new file mode 100644 index 0000000000..165756e918 --- /dev/null +++ b/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md @@ -0,0 +1,134 @@ +[#]: subject: "Vanilla OS Stable Release Has Landed!" +[#]: via: "https://news.itsfoss.com/vanilla-os-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Vanilla OS Stable Release Has Landed! +====== + +Vanilla OS is ready for you to try! Learn what's exciting here. + +![Vanilla OS Stable Release Has Landed!][1] + +Vanilla OS is an Ubuntu-based distro that aims to provide a stock GNOME experience with on-demand immutability and the freedom to choose packages. + +After months of testing, **Vanilla OS first release** is finally here in the form of **Vanilla 22.10 Kinetic** featuring **GNOME 43**. + +In a recent interview, we asked the creator: '_Many people think we have more than enough distros. Why Vanilla OS?_', **Mirko Brombin**, had some interesting insights to share. Read our conversation with him below to explore exciting things about Vanilla OS: + +Vanilla OS has several features that you might find helpful; allow me to introduce them to you. + +### Key Highlights + +![Vanilla OS 22.10 Kinetic][2] + +Being a new distro, Vanilla OS has a well-equipped feature set that you might like. Some notable highlights include the following: + +- **Native Installer** +- **Vanilla OS First Setup Utility** +- **Vanilla OS Control Center** +- **apx Package Manager** +- **On-Demand Immutability** + +#### Native Installer + +![vanilla os installer][3] + +Vanilla OS features a native installer that is written in [GTK4][4] and [libadwaita][5], it replaces the '[Calamares][6]' installer that was being used while the OS was in the early development stages. + +![vanilla os installer progress][7] + +Previously, they had also announced that they would use the '[Jade][8]' installer from the Crystal Linux team. + +But, they changed their mind and opted to build the '[Vanilla Installer][9]' on top of their existing '[Vanilla First Setup][10]' project. + +#### Vanilla OS First Setup + +![vanilla os first setup][11] + +After the installation of Vanilla OS is complete, you are greeted with a quick setup screen, which says 'Welcome' in various languages. + +![vanilla os package manager selection][12] + +It will then take you through various settings, such as choosing the color scheme, choosing what package managers you want, whether you want to install restricted codecs, and more. + +I must say, this is quite handy! 😃️ + +#### Vanilla OS Control Center + +![vanilla os control center][13] + +This graphical tool enables you to make changes to the operating system, such as running critical updates and installing additional drivers. + +#### On-Demand Immutability + +![Showcase - ABRoot transactional updates in Vanilla OS][14] + +As showcased above by the founder of Vanilla OS, this OS can provide full immutability and atomicity by allowing you to transact between two root partitions (A/B). + +What does that mean, you ask? 🤔 + +Well, this means that the core parts of your system are locked to prevent any unwanted changes, especially the ones caused by corrupt applications or faulty update. + +Vanilla OS uses '[ABRoot][15]' to achieve this, previously, they had tried using '[Almost][16]', but it didn't pan out well. + +![][17] + +It also features a **smart update feature**, which they explain as follows: + +> VSO (Vanilla System Operator) is the tool that will periodically check for an update and then download and install it in the background if the device is not under heavy usage. In fact, VSO checks that certain checks are met, such as whether the resources are free (CPU/RAM), whether the connection allows it, whether the battery is at least 30%, etc. + +The updates are applied through ABroot and get patched during the next reboot without taking extra time. + +#### apx Package Manager + +![vanilla os apx][18] + +Vanilla OS features the '[apx][19]' utility, allowing you to install packages inside a managed container without modifying the root file system. + +### Download Vanilla OS + +If you think Vanilla OS solves the problem you have been facing with Ubuntu and want a stock GNOME experience, give it a go. + +You can learn more about Vanilla OS 22.10 in its [official blog post][20]. + +[Download Vanilla OS][21] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vanilla-os-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png +[2]: https://youtu.be/aDvIJ_Hu90Y +[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png +[4]: https://news.itsfoss.com/gtk-4-release/ +[5]: https://news.itsfoss.com/gnome-libadwaita-library/ +[6]: https://calamares.io +[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png +[8]: https://github.com/crystal-linux/jade +[9]: https://github.com/Vanilla-OS/vanilla-installer +[10]: https://github.com/Vanilla-OS/first-setup +[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png +[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png +[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png +[14]: https://youtu.be/hIN-x3P12Tk +[15]: https://github.com/Vanilla-OS/ABRoot +[16]: https://documentation.vanillaos.org/docs/almost/ +[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png +[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png +[19]: https://github.com/Vanilla-OS/apx +[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html +[21]: https://vanillaos.org From 37be978761cd4f26e98ef1325c1c090356c15f05 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 1 Jan 2023 10:31:56 +0800 Subject: [PATCH 2474/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202212?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...00105 Friend of a Friend- The Facebook That Could Have Been.md | 0 ...20210103 How open principles will impact the future of work.md | 0 ...20210209 Understanding Linus-s Law for open source security.md | 0 .../{ => 202212}/20210330 A DevOps guide to documentation.md | 0 published/{ => 202212}/20210917 Open source game achievements.md | 0 .../{ => 202212}/20210922 Install PowerShell on Fedora Linux.md | 0 .../20220608 WiFi 6 Promises Much More than Faster Speeds.md | 0 .../20220628 Linux su vs sudo- what-s the difference-.md | 0 published/{ => 202212}/20220729 Learn Rust by debugging Rust.md | 0 ...ord Streaming Audio in Ubuntu and other Linux Distributions.md | 0 .../{ => 202212}/20221004 Learn the OSI model in 5 minutes.md | 0 .../20221019.5 ⭐️⭐️ Our open source startup journey.md | 0 ...221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md | 0 .../20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 0 .../20221028.1 ⭐️⭐️ Write documentation like you develop code.md | 0 ...3.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 0 ...️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md | 0 ...15.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md | 0 ...⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md | 0 ...uthenticator A Simple Open-Source App to Replace Authy on Linux.md | 0 ...20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md | 0 .../20221122.0 ⭐️ Find bugs with the git bisect command.md | 0 ...1122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md | 0 ... a holiday light display with your Raspberry Pi and ping pong balls.md | 0 ...️ How to Automatically Indent Your Code in Visual Studio Code.md | 0 .../20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md | 0 ...'s Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md | 0 ... Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md | 0 .../{ => 202212}/20221129.3 ⭐️⭐️ Parse arguments with Lua.md | 0 .../20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md | 0 ... Microsoft Office 365 Declared illegal for German Schools, Again!.md | 0 ...️ Monica An Open-Source App for Personal Relationship Management.md | 0 .../20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md | 0 ...️ 4MLinux 41.0 stable is now available with SDL games + More.md | 0 ...️ Trinity Desktop Environment R14.0.13 is now out with updates!.md | 0 ...05.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md | 0 ... Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md | 0 ...️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md | 0 .../20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md | 0 ... Last Update for the Year Brings a Lot of Early Christmas Gifts.md | 0 ...onvert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md | 0 .../20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md | 0 .../20221209.0 ⭐️⭐️ Install open source solar power at home.md | 0 ...to Introduce a New Protocol Helping Open-Source Developers Get Paid.md | 0 ...1.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md | 0 ...212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md | 0 ...0221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md | 0 .../20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 0 ...1213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md | 0 .../20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md | 0 ...nity-Led Open Source Code Editor to Continue the Legacy of Atom.md | 0 .../20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md | 0 ...A Beautiful Cross-Platform Music Player With Essential Features.md | 0 ...n Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md | 0 .../20221218.1 ⭐️ Try this Python-based file manager on Linux.md | 0 ...nux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md | 0 .../20221221.3 ⭐️⭐️ Open source solutions for EV charging.md | 0 ...ro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md | 0 ...Code Editors that May Challenge the Supremacy of Visual Studio Code.md | 0 ...ted! Unity Teases Version 7.7 as the Sign of Active Development.md | 0 60 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202212}/20200105 Friend of a Friend- The Facebook That Could Have Been.md (100%) rename published/{ => 202212}/20210103 How open principles will impact the future of work.md (100%) rename published/{ => 202212}/20210209 Understanding Linus-s Law for open source security.md (100%) rename published/{ => 202212}/20210330 A DevOps guide to documentation.md (100%) rename published/{ => 202212}/20210917 Open source game achievements.md (100%) rename published/{ => 202212}/20210922 Install PowerShell on Fedora Linux.md (100%) rename published/{ => 202212}/20220608 WiFi 6 Promises Much More than Faster Speeds.md (100%) rename published/{ => 202212}/20220628 Linux su vs sudo- what-s the difference-.md (100%) rename published/{ => 202212}/20220729 Learn Rust by debugging Rust.md (100%) rename published/{ => 202212}/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md (100%) rename published/{ => 202212}/20221004 Learn the OSI model in 5 minutes.md (100%) rename published/{ => 202212}/20221019.5 ⭐️⭐️ Our open source startup journey.md (100%) rename published/{ => 202212}/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md (100%) rename published/{ => 202212}/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md (100%) rename published/{ => 202212}/20221028.1 ⭐️⭐️ Write documentation like you develop code.md (100%) rename published/{ => 202212}/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md (100%) rename published/{ => 202212}/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md (100%) rename published/{ => 202212}/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md (100%) rename published/{ => 202212}/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md (100%) rename published/{ => 202212}/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md (100%) rename published/{ => 202212}/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md (100%) rename published/{ => 202212}/20221122.0 ⭐️ Find bugs with the git bisect command.md (100%) rename published/{ => 202212}/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md (100%) rename published/{ => 202212}/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md (100%) rename published/{ => 202212}/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md (100%) rename published/{ => 202212}/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md (100%) rename published/{ => 202212}/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md (100%) rename published/{ => 202212}/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md (100%) rename published/{ => 202212}/20221129.3 ⭐️⭐️ Parse arguments with Lua.md (100%) rename published/{ => 202212}/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md (100%) rename published/{ => 202212}/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md (100%) rename published/{ => 202212}/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md (100%) rename published/{ => 202212}/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md (100%) rename published/{ => 202212}/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md (100%) rename published/{ => 202212}/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md (100%) rename published/{ => 202212}/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md (100%) rename published/{ => 202212}/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md (100%) rename published/{ => 202212}/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md (100%) rename published/{ => 202212}/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md (100%) rename published/{ => 202212}/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md (100%) rename published/{ => 202212}/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md (100%) rename published/{ => 202212}/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md (100%) rename published/{ => 202212}/20221209.0 ⭐️⭐️ Install open source solar power at home.md (100%) rename published/{ => 202212}/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md (100%) rename published/{ => 202212}/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md (100%) rename published/{ => 202212}/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md (100%) rename published/{ => 202212}/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md (100%) rename published/{ => 202212}/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md (100%) rename published/{ => 202212}/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md (100%) rename published/{ => 202212}/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md (100%) rename published/{ => 202212}/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md (100%) rename published/{ => 202212}/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md (100%) rename published/{ => 202212}/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md (100%) rename published/{ => 202212}/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md (100%) rename published/{ => 202212}/20221218.1 ⭐️ Try this Python-based file manager on Linux.md (100%) rename published/{ => 202212}/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md (100%) rename published/{ => 202212}/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md (100%) rename published/{ => 202212}/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md (100%) rename published/{ => 202212}/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md (100%) rename published/{ => 202212}/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md (100%) diff --git a/published/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/published/202212/20200105 Friend of a Friend- The Facebook That Could Have Been.md similarity index 100% rename from published/20200105 Friend of a Friend- The Facebook That Could Have Been.md rename to published/202212/20200105 Friend of a Friend- The Facebook That Could Have Been.md diff --git a/published/20210103 How open principles will impact the future of work.md b/published/202212/20210103 How open principles will impact the future of work.md similarity index 100% rename from published/20210103 How open principles will impact the future of work.md rename to published/202212/20210103 How open principles will impact the future of work.md diff --git a/published/20210209 Understanding Linus-s Law for open source security.md b/published/202212/20210209 Understanding Linus-s Law for open source security.md similarity index 100% rename from published/20210209 Understanding Linus-s Law for open source security.md rename to published/202212/20210209 Understanding Linus-s Law for open source security.md diff --git a/published/20210330 A DevOps guide to documentation.md b/published/202212/20210330 A DevOps guide to documentation.md similarity index 100% rename from published/20210330 A DevOps guide to documentation.md rename to published/202212/20210330 A DevOps guide to documentation.md diff --git a/published/20210917 Open source game achievements.md b/published/202212/20210917 Open source game achievements.md similarity index 100% rename from published/20210917 Open source game achievements.md rename to published/202212/20210917 Open source game achievements.md diff --git a/published/20210922 Install PowerShell on Fedora Linux.md b/published/202212/20210922 Install PowerShell on Fedora Linux.md similarity index 100% rename from published/20210922 Install PowerShell on Fedora Linux.md rename to published/202212/20210922 Install PowerShell on Fedora Linux.md diff --git a/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/published/202212/20220608 WiFi 6 Promises Much More than Faster Speeds.md similarity index 100% rename from published/20220608 WiFi 6 Promises Much More than Faster Speeds.md rename to published/202212/20220608 WiFi 6 Promises Much More than Faster Speeds.md diff --git a/published/20220628 Linux su vs sudo- what-s the difference-.md b/published/202212/20220628 Linux su vs sudo- what-s the difference-.md similarity index 100% rename from published/20220628 Linux su vs sudo- what-s the difference-.md rename to published/202212/20220628 Linux su vs sudo- what-s the difference-.md diff --git a/published/20220729 Learn Rust by debugging Rust.md b/published/202212/20220729 Learn Rust by debugging Rust.md similarity index 100% rename from published/20220729 Learn Rust by debugging Rust.md rename to published/202212/20220729 Learn Rust by debugging Rust.md diff --git a/published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/published/202212/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md similarity index 100% rename from published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md rename to published/202212/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md diff --git a/published/20221004 Learn the OSI model in 5 minutes.md b/published/202212/20221004 Learn the OSI model in 5 minutes.md similarity index 100% rename from published/20221004 Learn the OSI model in 5 minutes.md rename to published/202212/20221004 Learn the OSI model in 5 minutes.md diff --git a/published/20221019.5 ⭐️⭐️ Our open source startup journey.md b/published/202212/20221019.5 ⭐️⭐️ Our open source startup journey.md similarity index 100% rename from published/20221019.5 ⭐️⭐️ Our open source startup journey.md rename to published/202212/20221019.5 ⭐️⭐️ Our open source startup journey.md diff --git a/published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/published/202212/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md similarity index 100% rename from published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md rename to published/202212/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md diff --git a/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/published/202212/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md similarity index 100% rename from published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md rename to published/202212/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md diff --git a/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/published/202212/20221028.1 ⭐️⭐️ Write documentation like you develop code.md similarity index 100% rename from published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md rename to published/202212/20221028.1 ⭐️⭐️ Write documentation like you develop code.md diff --git a/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/202212/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md similarity index 100% rename from published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md rename to published/202212/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md diff --git a/published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/published/202212/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md similarity index 100% rename from published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md rename to published/202212/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md diff --git a/published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/published/202212/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md similarity index 100% rename from published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md rename to published/202212/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md diff --git a/published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/published/202212/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md similarity index 100% rename from published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md rename to published/202212/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md diff --git a/published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/published/202212/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md similarity index 100% rename from published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md rename to published/202212/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md diff --git a/published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/published/202212/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md similarity index 100% rename from published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md rename to published/202212/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md diff --git a/published/20221122.0 ⭐️ Find bugs with the git bisect command.md b/published/202212/20221122.0 ⭐️ Find bugs with the git bisect command.md similarity index 100% rename from published/20221122.0 ⭐️ Find bugs with the git bisect command.md rename to published/202212/20221122.0 ⭐️ Find bugs with the git bisect command.md diff --git a/published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/published/202212/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md similarity index 100% rename from published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md rename to published/202212/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md diff --git a/published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/published/202212/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md similarity index 100% rename from published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md rename to published/202212/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md diff --git a/published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/published/202212/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md similarity index 100% rename from published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md rename to published/202212/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md diff --git a/published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/published/202212/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md similarity index 100% rename from published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md rename to published/202212/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md diff --git a/published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/published/202212/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md similarity index 100% rename from published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md rename to published/202212/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md diff --git a/published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md b/published/202212/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md similarity index 100% rename from published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md rename to published/202212/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md diff --git a/published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/published/202212/20221129.3 ⭐️⭐️ Parse arguments with Lua.md similarity index 100% rename from published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md rename to published/202212/20221129.3 ⭐️⭐️ Parse arguments with Lua.md diff --git a/published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/published/202212/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md similarity index 100% rename from published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md rename to published/202212/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md diff --git a/published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md b/published/202212/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md similarity index 100% rename from published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md rename to published/202212/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md diff --git a/published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/published/202212/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md similarity index 100% rename from published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md rename to published/202212/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md diff --git a/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/published/202212/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md similarity index 100% rename from published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md rename to published/202212/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md diff --git a/published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md b/published/202212/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md similarity index 100% rename from published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md rename to published/202212/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md diff --git a/published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md b/published/202212/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md similarity index 100% rename from published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md rename to published/202212/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md diff --git a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/published/202212/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md similarity index 100% rename from published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md rename to published/202212/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md diff --git a/published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md b/published/202212/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md similarity index 100% rename from published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md rename to published/202212/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md diff --git a/published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/published/202212/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md similarity index 100% rename from published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md rename to published/202212/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md diff --git a/published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/published/202212/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md similarity index 100% rename from published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md rename to published/202212/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md diff --git a/published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md b/published/202212/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md similarity index 100% rename from published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md rename to published/202212/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md diff --git a/published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/published/202212/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md similarity index 100% rename from published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md rename to published/202212/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md diff --git a/published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/published/202212/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md similarity index 100% rename from published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md rename to published/202212/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md diff --git a/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/published/202212/20221209.0 ⭐️⭐️ Install open source solar power at home.md similarity index 100% rename from published/20221209.0 ⭐️⭐️ Install open source solar power at home.md rename to published/202212/20221209.0 ⭐️⭐️ Install open source solar power at home.md diff --git a/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md b/published/202212/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md similarity index 100% rename from published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md rename to published/202212/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md diff --git a/published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/published/202212/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md similarity index 100% rename from published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md rename to published/202212/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md diff --git a/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/published/202212/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md similarity index 100% rename from published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md rename to published/202212/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md diff --git a/published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/published/202212/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md similarity index 100% rename from published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md rename to published/202212/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md diff --git a/published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/published/202212/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md similarity index 100% rename from published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md rename to published/202212/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md diff --git a/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/published/202212/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md similarity index 100% rename from published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md rename to published/202212/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md diff --git a/published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/published/202212/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md similarity index 100% rename from published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md rename to published/202212/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md diff --git a/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md similarity index 100% rename from published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md rename to published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md diff --git a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md similarity index 100% rename from published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md rename to published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md diff --git a/published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md similarity index 100% rename from published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md rename to published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md diff --git a/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md similarity index 100% rename from published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md rename to published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md diff --git a/published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md similarity index 100% rename from published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md rename to published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md diff --git a/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md similarity index 100% rename from published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md rename to published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md diff --git a/published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md similarity index 100% rename from published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md rename to published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md diff --git a/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md similarity index 100% rename from published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md rename to published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md diff --git a/published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md similarity index 100% rename from published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md rename to published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md diff --git a/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md similarity index 100% rename from published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md rename to published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md From 4fab485dd306592810c8e7f3bd6f32f39a057935 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 1 Jan 2023 11:30:02 +0800 Subject: [PATCH 2475/3123] ALL @wxy https://linux.cn/article-15401-1.html --- ...️⭐️ Vanilla OS Stable Release Has Landed!.md | 137 ++++++++++++++++++ ...️⭐️ Vanilla OS Stable Release Has Landed!.md | 134 ----------------- 2 files changed, 137 insertions(+), 134 deletions(-) create mode 100644 published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md delete mode 100644 sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md new file mode 100644 index 0000000000..19088158cd --- /dev/null +++ b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md @@ -0,0 +1,137 @@ +[#]: subject: "Vanilla OS Stable Release Has Landed!" +[#]: via: "https://news.itsfoss.com/vanilla-os-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15401-1.html" + +不普通的普通操作系统:Vanilla OS 稳定版发布了! +====== + +> Vanilla OS 已经准备好让你尝试!在这里了解令人兴奋的地方。 + +![][1] + +Vanilla OS 是一个基于 Ubuntu 的发行版,旨在为用户提供一个具有随需应变能力和自由选择软件包的 GNOME 体验。(LCTT 译注:Vanilla —— “香草”,因为作为太普通的香料,所以也有“普普通通”的意思。) + +经过几个月的测试,**Vanilla OS 的第一个版本** 终于以 **Vanilla 22.10 Kinetic** 的形式出现了,其提供了原汁原味的 **GNOME 43**。 + +在最近的一次采访中,我们问创建者:“很多人认为我们已经有太多的发行版了。为什么还要有 Vanilla OS?”,**Mirko Brombin**,分享了一些有趣的见解享。请看下面我们与他的对话,探索关于 Vanilla OS 的令人兴奋的事情: + +> **[“不要害怕做出贡献”:Mirko Brombin 谈 Vanilla OS 和其他未来项目][22]** + +Vanilla OS 有几个特点,你可能会觉得有帮助,请允许我向你介绍一下。 + +### 主要亮点 + +![Vanilla OS 22.10 Kinetic][2] + +作为一个新的发行版,Vanilla OS 有一个装备精良的功能集,你可能会喜欢。一些值得注意的亮点包括: + +- 原生安装程序 +- Vanilla OS 首次设置First Setup 功能 +- Vanilla OS 控制中心 +- apx 软件包管理器 +- 随需应变能力 + +#### 原生安装程序 + +![Vanilla OS 安装程序][3] + +Vanilla OS 有一个用 [GTK4][4] 和 [libadwaita][5] 编写的原生的安装程序,它取代了该操作系统在早期开发阶段时使用的 [Calamares][6] 安装程序。 + +![Vanilla OS 安装程序正在进行][7] + +之前,他们还宣布将使用来自 Crystal Linux 团队的 [Jade][8] 安装程序。 + +但是,他们改变了主意,选择在现有的 [Vanilla 首次设置][10] 项目之上建立 [Vanilla 安装程序][9]。 + +#### Vanilla OS 首次设置 + +![Vanilla OS 首次设置][11] + +Vanilla OS 的安装完成后,你会看到一个快速设置屏幕,上面用各种语言写着 “欢迎”。 + +![Vanilla OS 软件包管理器选择][12] + +然后它将带你完成各种设置,如选择颜色方案,选择你想要的软件包管理器,是否要安装受限制的编解码器,等等。 + +我必须说,这很方便! 😃️ + +#### Vanilla OS 控制中心 + +![Vanilla OS 控制中心][13] + +这个图形化工具使你能够对操作系统进行修改,如运行关键更新和安装额外的驱动程序。 + +#### 随需应变的不变性 + +![展示 - Vanilla OS 中的 ABRoot 事务性更新][14] + +正如上面 Vanilla OS 的创始人所展示的,这个操作系统可以提供完全的不变性和原子性,允许你在两个根分区(A/B)之间进行交易。 + +你问这是什么意思? 🤔 + +嗯,这意味着你的系统的核心部分被锁定,以防止任何不必要的变化,特别是那些由损坏的应用程序或错误的更新引起的变化。 + +Vanilla OS 使用 [ABRoot][15] 来实现这一目标,之前,他们曾尝试使用 [Almost][16],但结果并不理想。 + +![][17] + +它还有一个**智能更新功能**,他们解释如下: + +> VSO(Vanilla System Operator)是一个工具,它将定期检查更新,然后如果设备没有处于大量使用状态,就在后台下载和安装。事实上,VSO 检查是否满足某些检查条件,如资源是否空闲(CPU/RAM),连接是否允许,电池是否至少有 30% 的电量等。 + +更新是通过 ABroot 应用的,并在下一次重启时得到修补,而不需要花费额外时间。 + +#### apx 软件包管理器 + +![Vanilla OS apx][18] + +Vanilla OS 带有 [apx][19] 工具,允许你在不修改根文件系统的情况下在管理的容器内安装软件包。 + +### 下载 Vanilla OS + +如果你认为 Vanilla OS 解决了你在 Ubuntu 上遇到的问题,并且想要一个原汁原味的 GNOME 体验,那就来试试吧。 + +你可以在其 [官方博客文章][20] 中了解更多关于 Vanilla OS 22.10 的信息。 + +> **[下载 Vanilla OS][21]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/vanilla-os-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png +[2]: https://youtu.be/aDvIJ_Hu90Y +[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png +[4]: https://news.itsfoss.com/gtk-4-release/ +[5]: https://news.itsfoss.com/gnome-libadwaita-library/ +[6]: https://calamares.io +[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png +[8]: https://github.com/crystal-linux/jade +[9]: https://github.com/Vanilla-OS/vanilla-installer +[10]: https://github.com/Vanilla-OS/first-setup +[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png +[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png +[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png +[14]: https://youtu.be/hIN-x3P12Tk +[15]: https://github.com/Vanilla-OS/ABRoot +[16]: https://documentation.vanillaos.org/docs/almost/ +[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png +[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png +[19]: https://github.com/Vanilla-OS/apx +[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html +[21]: https://vanillaos.org +[22]: https://news.itsfoss.com/interview-mirko-brombin/ \ No newline at end of file diff --git a/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md deleted file mode 100644 index 165756e918..0000000000 --- a/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md +++ /dev/null @@ -1,134 +0,0 @@ -[#]: subject: "Vanilla OS Stable Release Has Landed!" -[#]: via: "https://news.itsfoss.com/vanilla-os-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Vanilla OS Stable Release Has Landed! -====== - -Vanilla OS is ready for you to try! Learn what's exciting here. - -![Vanilla OS Stable Release Has Landed!][1] - -Vanilla OS is an Ubuntu-based distro that aims to provide a stock GNOME experience with on-demand immutability and the freedom to choose packages. - -After months of testing, **Vanilla OS first release** is finally here in the form of **Vanilla 22.10 Kinetic** featuring **GNOME 43**. - -In a recent interview, we asked the creator: '_Many people think we have more than enough distros. Why Vanilla OS?_', **Mirko Brombin**, had some interesting insights to share. Read our conversation with him below to explore exciting things about Vanilla OS: - -Vanilla OS has several features that you might find helpful; allow me to introduce them to you. - -### Key Highlights - -![Vanilla OS 22.10 Kinetic][2] - -Being a new distro, Vanilla OS has a well-equipped feature set that you might like. Some notable highlights include the following: - -- **Native Installer** -- **Vanilla OS First Setup Utility** -- **Vanilla OS Control Center** -- **apx Package Manager** -- **On-Demand Immutability** - -#### Native Installer - -![vanilla os installer][3] - -Vanilla OS features a native installer that is written in [GTK4][4] and [libadwaita][5], it replaces the '[Calamares][6]' installer that was being used while the OS was in the early development stages. - -![vanilla os installer progress][7] - -Previously, they had also announced that they would use the '[Jade][8]' installer from the Crystal Linux team. - -But, they changed their mind and opted to build the '[Vanilla Installer][9]' on top of their existing '[Vanilla First Setup][10]' project. - -#### Vanilla OS First Setup - -![vanilla os first setup][11] - -After the installation of Vanilla OS is complete, you are greeted with a quick setup screen, which says 'Welcome' in various languages. - -![vanilla os package manager selection][12] - -It will then take you through various settings, such as choosing the color scheme, choosing what package managers you want, whether you want to install restricted codecs, and more. - -I must say, this is quite handy! 😃️ - -#### Vanilla OS Control Center - -![vanilla os control center][13] - -This graphical tool enables you to make changes to the operating system, such as running critical updates and installing additional drivers. - -#### On-Demand Immutability - -![Showcase - ABRoot transactional updates in Vanilla OS][14] - -As showcased above by the founder of Vanilla OS, this OS can provide full immutability and atomicity by allowing you to transact between two root partitions (A/B). - -What does that mean, you ask? 🤔 - -Well, this means that the core parts of your system are locked to prevent any unwanted changes, especially the ones caused by corrupt applications or faulty update. - -Vanilla OS uses '[ABRoot][15]' to achieve this, previously, they had tried using '[Almost][16]', but it didn't pan out well. - -![][17] - -It also features a **smart update feature**, which they explain as follows: - -> VSO (Vanilla System Operator) is the tool that will periodically check for an update and then download and install it in the background if the device is not under heavy usage. In fact, VSO checks that certain checks are met, such as whether the resources are free (CPU/RAM), whether the connection allows it, whether the battery is at least 30%, etc. - -The updates are applied through ABroot and get patched during the next reboot without taking extra time. - -#### apx Package Manager - -![vanilla os apx][18] - -Vanilla OS features the '[apx][19]' utility, allowing you to install packages inside a managed container without modifying the root file system. - -### Download Vanilla OS - -If you think Vanilla OS solves the problem you have been facing with Ubuntu and want a stock GNOME experience, give it a go. - -You can learn more about Vanilla OS 22.10 in its [official blog post][20]. - -[Download Vanilla OS][21] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/vanilla-os-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png -[2]: https://youtu.be/aDvIJ_Hu90Y -[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png -[4]: https://news.itsfoss.com/gtk-4-release/ -[5]: https://news.itsfoss.com/gnome-libadwaita-library/ -[6]: https://calamares.io -[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png -[8]: https://github.com/crystal-linux/jade -[9]: https://github.com/Vanilla-OS/vanilla-installer -[10]: https://github.com/Vanilla-OS/first-setup -[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png -[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png -[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png -[14]: https://youtu.be/hIN-x3P12Tk -[15]: https://github.com/Vanilla-OS/ABRoot -[16]: https://documentation.vanillaos.org/docs/almost/ -[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png -[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png -[19]: https://github.com/Vanilla-OS/apx -[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html -[21]: https://vanillaos.org From e76c267cc819e049287dcba0ff051fef98250511 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 1 Jan 2023 11:32:04 +0800 Subject: [PATCH 2476/3123] R --- .../20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md index 19088158cd..834ab618b2 100644 --- a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md +++ b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md @@ -7,7 +7,7 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-15401-1.html" -不普通的普通操作系统:Vanilla OS 稳定版发布了! +不普通的普通操作系统:Vanilla OS 稳定版发布了! ====== > Vanilla OS 已经准备好让你尝试!在这里了解令人兴奋的地方。 From 47258e686b893ab4d66af209222e0b2e294767b3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 1 Jan 2023 16:04:46 +0800 Subject: [PATCH 2477/3123] RP @geekpi https://linux.cn/article-15402-1.html --- ... How to Downgrade Flatpak Packages in Linux.md | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) rename {translated/tech => published}/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md (62%) diff --git a/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md similarity index 62% rename from translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md rename to published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md index ca5b61f709..dfc488c153 100644 --- a/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md +++ b/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md @@ -3,28 +3,32 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15402-1.html" 如何在 Linux 中降级 Flatpak 软件包 ====== -从技术上讲,次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。 +![][0] -无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的 bug,你可能会后悔更新。 +> Flatpak 软件包的一个鲜为人知的特点是,它允许你对已安装的应用程序进行降级。下面是如何使用它的方法。 -比如之前更新的 [Black Box][1] 就带来了一些 bug,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。 +从技术上讲,小版本或次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。 + +无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的错误,你可能会后悔更新。 + +比如之前 [Black Box][1] 的更新就带来了一些错误,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。 所以,如果你想降级特定的 Flatpak 应用,你可以按照本指南进行操作。 ### 在 Linux 中降级 Flatpak 包 -**免责声明:** 与安装 Flatpaks 不同,你需要 **sudo** 权限才能降级 Flatpak 包。如果你的用户没有它们,你可以按照我们关于[如何向用户授予 sudo 访问权限][2]的详细指南进行操作。 +**免责声明:** 与安装 Flatpak 不同,你需要 `sudo` 权限才能降级 Flatpak 包。如果你的用户没有该权限,你可以按照我们关于 [如何向用户授予 sudo 访问权限][2] 的详细指南进行操作。 以下是步骤: -#### 1.获取包的应用 ID +#### 1、获取包的应用 ID 第一步是找到要降级的包的应用 ID。你可以列出已安装的软件包轻松找到它: @@ -38,7 +42,7 @@ flatpak list --app 这里,我要降级 Black Box,所以我的应用 ID 将是 `com.raggesilver.BlackBox`。 -#### 2.列出以前的版本并获取提交代码 +#### 2、列出以前的版本并获取该提交的代码 获得应用 ID 后,你需要列出以前的版本。 @@ -50,9 +54,9 @@ flatpak remote-info --log flathub ![find previous releases in flatpak][5] -找到首选的先前版本后,复制如上所示的提交代码。 +找到首选的先前版本后,复制如上所示的提交的代码。 -#### 3.降级 Flatpack 包 +#### 3、降级 Flatpack 包 执行前两个步骤后,你应该有以下内容: @@ -98,7 +102,7 @@ via: https://itsfoss.com/downgrade-flatpak-packages/ 作者:[Sagar Sharma][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/) 荣誉推出 @@ -106,7 +110,8 @@ via: https://itsfoss.com/downgrade-flatpak-packages/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/blackbox-terminal/ [2]: https://itsfoss.com/add-sudo-user-ubuntu/ -[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png -[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png -[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png +[4]: https://itsfoss.com/content/images/wordpress/2022/12/find-flatpak-package-id-in-linux.png +[5]: https://itsfoss.com/content/images/wordpress/2022/12/find-previous-releases-in-flatpak-1.png +[6]: https://itsfoss.com/content/images/wordpress/2022/12/downgrade-flatpak-package-in-linux.png +[7]: https://itsfoss.com/content/images/wordpress/2022/12/downgrade-flatpak-package.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/01/160400h0mmppwwvxd004bm.jpg \ No newline at end of file From 2537136afd56ea80e474a9bd89b500f960c34599 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 1 Jan 2023 21:33:06 +0800 Subject: [PATCH 2478/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ Write a C++ extension module for Python.md | 318 ----------------- ...️⭐️ Write a C++ extension module for Python.md | 320 ++++++++++++++++++ 2 files changed, 320 insertions(+), 318 deletions(-) delete mode 100644 sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md create mode 100644 translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md diff --git a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md deleted file mode 100644 index f5b8157ba3..0000000000 --- a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md +++ /dev/null @@ -1,318 +0,0 @@ -[#]: subject: "Write a C++ extension module for Python" -[#]: via: "https://opensource.com/article/22/11/extend-c-python" -[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" -[#]: collector: "lkxed" -[#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Write a C++ extension module for Python -====== - -In a previous article, I gave an overview of [six Python interpreters][1]. On most systems, the CPython interpreter is the default, and also the poll in my last article showed that CPython is the most popular one. Specific to CPython is the ability to write Python modules in C using CPythons extensions API. Writing Python modules in C allows you to move computation-intensive code to C while preserving the ease of access of Python. - -In this article, I’ll show you how to write an extension module. Instead of plain C, I use C++ because most compilers usually understand both. I have to mention one major drawback in advance: Python modules built this way are not portable to other interpreters. They only work in conjunction with the CPython interpreter. So if you are looking for a more portable way of interacting with C libraries, consider using the [ctypes][2] module. - -### Source code - -As usual, you can find the related source code on [GitHub][3]. The C++ files in the repository have the following purpose: - -- `my_py_module.cpp`: Definition of the Python module _MyModule_ -- `my_cpp_class.h`: A header-only C++ class which gets exposed to Python -- `my_class_py_type.h/cpp`: Python representation of our C++ class -- `pydbg.cpp`: Separate application for debugging purpose - -The Python module you build in this article won’t have any meaningful use, but is a good example. - -### Build the module - -Before looking into the source code, you can check whether the module compiles on your system. [I use CMake][4] for creating the build configuration, so CMake must be installed on your system. In order to configure and build the module, you can either let Python run the process: - -``` -$ python3 setup.py build -``` - -Or run the process manually: - -``` -$ cmake -B build -$ cmake --build build -``` - -After that, you have a file called `MyModule.so` in the `/build` subdirectory. - -### Defining an extension module - -First, take a look on `my_py_module.cpp`, in particular, the function `PyInit_MyModule`: - -``` -PyMODINIT_FUNC -PyInit_MyModule(void) { - PyObject* module = PyModule_Create(&my_module); - - PyObject *myclass = PyType_FromSpec(&spec_myclass); - if (myclass == NULL){ - return NULL; - } - Py_INCREF(myclass); - - if(PyModule_AddObject(module, "MyClass", myclass) < 0){ - Py_DECREF(myclass); - Py_DECREF(module); - return NULL; - } - return module; -} -``` - -This is the most important code in this example because it acts as the entry point for CPython. In general, when a Python C extension is compiled and made available as a shared object binary, CPython searches for the function `PyInit_` in the eponymous binary (`.so`) and executes it when attempting to import it. - -All Python types, whether declarations or instances, are exposed as pointers to [PyObject][5]. In the first part of this function, the root definition of the module is created by running `PyModule_Create(...)`. As you can see in the module specification (`my_module`, same file), it doesn’t have any special functionality. - -Afterward, [PyType_FromSpec][6] is called to create a Python [heap type][7] definition for the custom type MyClass. A heap type corresponds to a Python class. The type definition is then assigned to the module MyModule. - -_Note that if one of the functions fails, the reference count of previously created PyObjects must be decremented so that they get deleted by the interpreter._ - -### Specifying a Python type - -The specification for the type MyClass is found inside [my_class_py_type.h][8] as an instance of [PyType_Spec][9]: - -``` -static PyType_Spec spec_myclass = { - "MyClass", // name - sizeof(MyClassObject) + sizeof(MyClass), // basicsize - 0, // itemsize - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, // flags - MyClass_slots // slots -}; -``` - -This structure defines some basic type information for the class. The value passed for the size consists of the size of the Python representation (`MyClassObject`) and the size of the plain C++ class (`MyClass`). The `MyClassObject` is defined as follows: - -``` -typedef struct { - PyObject_HEAD - int m_value; - MyClass* m_myclass; -} MyClassObject; -``` - -The Python representation is basically of type [PyObject][5], defined by the macro `PyObject_HEAD`, and some additional members. The member `m_value` is exposed as ordinary class member while the member `m_myclass` is only accessible from inside C++ code. - -The [PyType_Slot][10] defines some additional functionality: - -``` -static PyType_Slot MyClass_slots[] = { - {Py_tp_new, (void*)MyClass_new}, - {Py_tp_init, (void*)MyClass_init}, - {Py_tp_dealloc, (void*)MyClass_Dealloc}, - {Py_tp_members, MyClass_members}, - {Py_tp_methods, MyClass_methods}, - {0, 0} /* Sentinel */ -}; -``` - -Here, the jump addressed for some initialization and de-initialization functions are set as well as ordinary class methods and members. Additional functionality, like assigning an initial attribute dictionary, could also be set, but this is optional. Those definitions usually end with a sentinel, consisting of `NULL` values. - -To complete the type specification, here is the method and member table: - -``` -static PyMethodDef MyClass_methods[] = { - {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")}, - {NULL, NULL} /* Sentinel */ -}; - -static struct PyMemberDef MyClass_members[] = { - {"value", T_INT, offsetof(MyClassObject, m_value)}, - {NULL} /* Sentinel */ -}; -``` - -In the method table, the Python method `addOne` is defined, and it points to the related function `MyClass_addOne`. This function acts as a wrapper. It invokes the `addOne()` method in the C++ class. - -In the member table, there is just one member defined for demonstration purposes. Unfortunately, the use of [offsetof][11] in [PyMemberDef][12] doesn’t allow C++ specific types to be added to `MyClassObject`. If you try to place some C++ type container (such as [std::optional][13]), the compiler complains about it in the form of warnings related to memory layout. - -### Initialization and de-initialization - -The method `MyClass_new` acts only to provide initial values for `MyClassObject` and allocates memory for the base type: - -``` -PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){ - std::cout << "MtClass_new() called!" << std::endl; - - MyClassObject *self; - self = (MyClassObject*) type->tp_alloc(type, 0); - if(self != NULL){ // -> allocation successfull - // assign initial values - self->m_value = 0; - self->m_myclass = NULL; - } - return (PyObject*) self; -} -``` - -Actual initialization takes place in `MyClass_init`, which corresponds to the [__init__()][14] method in Python: - -``` -int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){ - - ((MyClassObject *)self)->m_value = 123; - - MyClassObject* m = (MyClassObject*)self; - m->m_myclass = (MyClass*)PyObject_Malloc(sizeof(MyClass)); - - if(!m->m_myclass){ - PyErr_SetString(PyExc_RuntimeError, "Memory allocation failed"); - return -1; - } - - try { - new (m->m_myclass) MyClass(); - } catch (const std::exception& ex) { - PyObject_Free(m->m_myclass); - m->m_myclass = NULL; - m->m_value = 0; - PyErr_SetString(PyExc_RuntimeError, ex.what()); - return -1; - } catch(...) { - PyObject_Free(m->m_myclass); - m->m_myclass = NULL; - m->m_value = 0; - PyErr_SetString(PyExc_RuntimeError, "Initialization failed"); - return -1; - } - - return 0; -} -``` - -If you want to have arguments passed during initialization, you must call [PyArg_ParseTuple][15] at this point. For the sake of simplicity, all arguments passed during initialization are ignored in this example. In the first part of the function, the `PyObject` pointer (`self`) is reinterpreted to a pointer to `MyClassObject` in order to get access to our additional members. Additionally, the memory for the C++ class is allocated and its constructor is executed. - -Note that exception handling and memory allocation (and de-allocation) must be carefully done in order to prevent memory leaks. When the reference count drops to zero, the `MyClass_dealloc` function takes care of freeing all related heap memory. There’s a [dedicated chapter][16] in the documentation about memory management for C and C++ extensions. - -### Method wrapper - -Calling a related C++ class method from the Python class is easy: - -``` -PyObject* MyClass_addOne(PyObject *self, PyObject *args){ - assert(self); - - MyClassObject* _self = reinterpret_cast(self); - unsigned long val = _self->m_myclass->addOne(); - return PyLong_FromUnsignedLong(val); -} -``` - -Again, the `PyObject*` argument (`self`) is casted to `MyClassObject*` in order to get access to `m_myclass`, a pointer to the C++ class instance. With this information, the classes method `addOne()` is called and the result is returned in form of a [Python integer object][17]. - -### 3 ways to debug - -For debugging purposes, it can be valuable to compile the CPython interpreter in debugging configuration. A detailed description can be found in the [official documentation][18]. It’s possible to follow the next steps, as long as additional debug symbols for the pre-installed interpreter are downloaded. - -#### GNU Debugger - -Good old [GNU Debugger (GDB)][19] is, of course, also useful here. I include a [gdbinit][20] file, defining some options and breakpoints. There’s also the [gdb.sh][21] script, which creates a debug build and initiates a GDB session: - -![Gnu Debugger (GDB) is useful for your Python C and C++ extensions.][22] - -GDB invokes the CPython interpreter with the script file [main.py][23]. The script file allows you to easily define all the actions you want to perform with the Python extension module. - -#### C++ application - -Another approach is to embed the CPython interpreter in a separate C++ application. In the repository, this can be found in the file [pydbg.cpp][24]: - -``` -int main(int argc, char *argv[], char *envp[]) -{ - Py_SetProgramName(L"DbgPythonCppExtension"); - Py_Initialize(); - - PyObject *pmodule = PyImport_ImportModule("MyModule"); - if (!pmodule) { - PyErr_Print(); - std::cerr << "Failed to import module MyModule" << std::endl; - return -1; - } - - PyObject *myClassType = PyObject_GetAttrString(pmodule, "MyClass"); - if (!myClassType) { - std::cerr << "Unable to get type MyClass from MyModule" << std::endl; - return -1; - } - - PyObject *myClassInstance = PyObject_CallObject(myClassType, NULL); - - if (!myClassInstance) { - std::cerr << "Instantioation of MyClass failed" << std::endl; - return -1; - } - - Py_DecRef(myClassInstance); // invoke deallocation - return 0; -} -``` - -Using the [high level interface][25], it’s possible to include the extension module and perform actions on it. This allows you to debug in the native IDE environment. It also gives you finer control of the variables passed from and to the extension module. - -The drawback is the high expense of creating an extra application. - -#### VSCode and VSCodium LLDB extension - -Using a debugger extension like [CodeLLDB][26] is probably the most convenient debugging option. The repository includes the VSCode or VSCodium configuration files for building the extension ([task.json][27], [CMake Tools][28]) and invoking the debugger ([launch.json][29]). This approach combines the advantages of the previous ones: Debugging in an graphical IDE, defining actions in a Python script file or even dynamically in the interpreter prompt. - -![VSCodium features an integrated debugger.][30] - -### Extend C++ with Python - -All functionality available from Python code is also available from within a C or C++ extension. While coding in Python is often considered as an easy win, extending Python in C or C++ can also be a pain. On the other hand, while native Python code is slower than C++, a C or C++ extension makes it possible to elevate a computation-intensive task to the speed of native machine code. - -You must also consider the usage of an ABI. The stable ABI provides a way to maintain backwards compatibility to older versions of CPython as described in [the documentation][31]. - -In the end, you must weigh the advantages and disadvantages yourself. Should you decide to use C extensions to make certain functionality available to you in Python, you’ve seen how it can be done. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/extend-c-python - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/22/9/python-interpreters-2022 -[2]: https://docs.python.org/3/library/ctypes.html#module-ctypes -[3]: https://github.com/hANSIc99/PythonCppExtension -[4]: https://opensource.com/article/21/5/cmake -[5]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject -[6]: https://docs.python.org/3/c-api/type.html#c.PyType_FromSpec -[7]: https://docs.python.org/3/c-api/typeobj.html#heap-types -[8]: https://github.com/hANSIc99/PythonCppExtension/blob/main/my_class_py_type.h -[9]: https://docs.python.org/3/c-api/type.html#c.PyType_Spec -[10]: https://docs.python.org/release/3.9.1/c-api/type.html?highlight=pytype_slot#c.PyType_Slot -[11]: https://en.cppreference.com/w/cpp/types/offsetof -[12]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pymemberdef#c.PyMemberDef -[13]: https://en.cppreference.com/w/cpp/utility/optional -[14]: https://docs.python.org/3/library/dataclasses.html?highlight=__init__ -[15]: https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple -[16]: https://docs.python.org/3/c-api/memory.html -[17]: https://docs.python.org/3/c-api/long.html -[18]: https://docs.python.org/3/c-api/intro.html#debugging-builds -[19]: https://opensource.com/article/21/3/debug-code-gdb -[20]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdbinit -[21]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdb.sh -[22]: https://opensource.com/sites/default/files/2022-11/gdb_session_b_0.png -[23]: https://github.com/hANSIc99/PythonCppExtension/blob/main/main.py -[24]: https://github.com/hANSIc99/PythonCppExtension/blob/main/pydbg.cpp -[25]: https://docs.python.org/3/extending/embedding.html#very-high-level-embedding -[26]: https://github.com/vadimcn/vscode-lldb -[27]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/tasks.json -[28]: https://github.com/microsoft/vscode-cmake-tools -[29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json -[30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png -[31]: https://docs.python.org/3/c-api/stable.html diff --git a/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md new file mode 100644 index 0000000000..184640b701 --- /dev/null +++ b/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md @@ -0,0 +1,320 @@ +[#]: subject: "Write a C++ extension module for Python" +[#]: via: "https://opensource.com/article/22/11/extend-c-python" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为 Python 写一个 C++ 扩展模块 +====== + +使用 C 扩展为 Python 提供特定功能。 + +在前一篇文章中,我介绍了[六个 Python 解释器][1]。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C,同时保留 Python 的易用性。 + +在本文中,我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C,因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点:以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此,如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式,考虑下使用 [ctypes][2]模块。 + +### 源代码 + +和往常一样,你可以在 [GitHub][3] 上找到相关的源代码。仓库中的 C++ 文件有以下用途: + +- `my_py_module.cpp`: Python 模块 _MyModule_ 的定义 +- `my_cpp_class.h`: 一个头文件 - 只有一个暴露给 Python 的 C++ 类 +- `my_class_py_type.h/cpp`: Python 形式的 C++ 类 +- `pydbg.cpp`: 用于调试的单独应用程序 + +本文构建的 Python 模块不会有任何实际用途,但它是一个很好的示例。 + +### 构建模块 + +在查看源代码之前,你可以检查它是否能在你的系统上编译。[我使用 CMake][4]来创建构建的配置信息,因此你的系统上必须安装 CMake。为了配置和构建这个模块,可以让 Python 去执行这个过程: + +``` +$ python3 setup.py build +``` + +或者手动执行: + +``` +$ cmake -B build +$ cmake --build build +``` + +之后,在 `/build` 子目录下你会有一个名为 `MyModule. so` 的文件。 + +### 定义扩展模块 + +首先,看一下 `my_py_module.cpp` 文件,尤其是 `PyInit_MyModule` 函数: + +``` cpp +PyMODINIT_FUNC +PyInit_MyModule(void) { + PyObject* module = PyModule_Create(&my_module); + + PyObject *myclass = PyType_FromSpec(&spec_myclass); + if (myclass == NULL){ + return NULL; + } + Py_INCREF(myclass); + + if(PyModule_AddObject(module, "MyClass", myclass) < 0){ + Py_DECREF(myclass); + Py_DECREF(module); + return NULL; + } + return module; +} +``` + +这是本例中最重要的代码,因为它是 CPython 的入口点。一般来说,当一个 Python C 扩展被编译并作为共享对象二进制文件提供时,CPython 会在同名二进制文件中(`.so`)搜索 `PyInit_` 函数,并在试图导入时执行它。 + +无论是声明还是实例,所有 Python 类型都是 [PyObject][5] 的一个指针。在此函数的第一部分中,`module` 通过 `PyModule_Create(...)` 创建的。正如你在 `module` 详述(`my_py_module`,同名文件)中看到的,它没有任何特殊的功能。 + +之后,调用 [PyType_FromSpec][6] 为自定义类型 MyClass 创建一个 Python [堆类型][7]定义。一个堆类型对应于一个 Python 类,然后将它赋值给 MyModule 模块。 + +_注意,如果其中一个函数返回失败,则必须减少以前创建的复制对象的引用计数,以便解释器删除它们。_ + +### 指定 Python 类型 + +MyClass 详设在 [my_class_py_type.h][8] 中可以找到,它作为 [PyType_Spec][9] 的一个实例: + +```cpp +static PyType_Spec spec_myclass = { + "MyClass", // name + sizeof(MyClassObject) + sizeof(MyClass), // basicsize + 0, // itemsize + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, // flags + MyClass_slots // slots +}; +``` + +它定义了一些基本类型信息,它的大小包括 Python 表示的大小(`MyClassObject`)和普通 C++ 类的大小(`MyClass`)。`MyClassObject` 定义如下: + +```cpp +typedef struct { + PyObject_HEAD + int m_value; + MyClass* m_myclass; +} MyClassObject; +``` + +Python 表示的话就是 [PyObject][5] 类型,由 `PyObject_HEAD` 宏和其他一些成员定义。成员 `m_value` 视为普通类成员,而成员 `m_myclass` 只能在 C++ 代码内部访问。 + +[PyType_Slot][10] 定义了一些其他功能: + +```cpp +static PyType_Slot MyClass_slots[] = { + {Py_tp_new, (void*)MyClass_new}, + {Py_tp_init, (void*)MyClass_init}, + {Py_tp_dealloc, (void*)MyClass_Dealloc}, + {Py_tp_members, MyClass_members}, + {Py_tp_methods, MyClass_methods}, + {0, 0} /* Sentinel */ +}; +``` + +在这里,设置了一些初始化和析构函数的跳转,还有普通的类方法和成员,还可以设置其他功能,如分配初始属性字典,但这是可选的。这些定义通常以一个哨兵结束,包含 `NULL` 值。 + +要完成类型详述,还包括下面的方法和成员表: + +```cpp +static PyMethodDef MyClass_methods[] = { + {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")}, + {NULL, NULL} /* Sentinel */ +}; + +static struct PyMemberDef MyClass_members[] = { + {"value", T_INT, offsetof(MyClassObject, m_value)}, + {NULL} /* Sentinel */ +}; +``` + +在方法表中,定义了 Python 方法 `addOne`,它指向相关的 C++ 函数 `MyClass_addOne`。它充当了一个包装器,它在 C++ 类中调用 `addOne()` 方法。 + +在成员表中,只有一个为演示目的而定义的成员。不幸的是,在 [PyMemberDef][12] 中使用的 [offsetof][11] 不允许添加 C++ 类型到 `MyClassObject`。如果你试图放置一些 C++ 类型的容器(如 [std::optional][13]),编译器会抱怨一些内存布局相关的警告。 + +### 初始化和析构 + +`MyClass_new` 方法只为 `MyClassObject` 提供一些初始值,并为其类型分配内存: + +```cpp +PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){ + std::cout << "MtClass_new() called!" << std::endl; + + MyClassObject *self; + self = (MyClassObject*) type->tp_alloc(type, 0); + if(self != NULL){ // -> 分配成功 + // 赋初始值 + self->m_value = 0; + self->m_myclass = NULL; + } + return (PyObject*) self; +} +``` + +实际的初始化发生在 `MyClass_init` 中,它对应于 Python 中的 [\_\_init__()][14] 方法: + +```cpp +int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){ + + ((MyClassObject *)self)->m_value = 123; + + MyClassObject* m = (MyClassObject*)self; + m->m_myclass = (MyClass*)PyObject_Malloc(sizeof(MyClass)); + + if(!m->m_myclass){ + PyErr_SetString(PyExc_RuntimeError, "Memory allocation failed"); + return -1; + } + + try { + new (m->m_myclass) MyClass(); + } catch (const std::exception& ex) { + PyObject_Free(m->m_myclass); + m->m_myclass = NULL; + m->m_value = 0; + PyErr_SetString(PyExc_RuntimeError, ex.what()); + return -1; + } catch(...) { + PyObject_Free(m->m_myclass); + m->m_myclass = NULL; + m->m_value = 0; + PyErr_SetString(PyExc_RuntimeError, "Initialization failed"); + return -1; + } + + return 0; +} +``` + +如果你想在初始化过程中传递参数,必须在此时调用 [PyArg_ParseTuple][15]。简单起见,本例将忽略初始化过程中传递的所有参数。在函数的第一部分中,`PyObject` 指针(`self`)被强转为 `MyClassObject` 类型的指针,以便访问其他成员。此外,还分配了 C++ 类的内存,并执行了构造函数。 + +注意,为了防止内存泄漏,必须仔细执行异常处理和内存分配(还有释放)。当引用计数将为零时,`MyClass_dealloc` 函数负责释放所有相关的堆内存。在文档中有一个章节专门讲述关于 C 和 C++ 扩展的内存管理。 + +### 包装方法 + +从 Python 类中调用相关的 C++ 类方法很简单: + +```cpp +PyObject* MyClass_addOne(PyObject *self, PyObject *args){ + assert(self); + + MyClassObject* _self = reinterpret_cast(self); + unsigned long val = _self->m_myclass->addOne(); + return PyLong_FromUnsignedLong(val); +} +``` + +同样,`PyObject` 参数(`self`)被强转为 `MyClassObject` 类型以便访问 `m_myclass`,它指向 C++ 对应类实例的指针。有了这些信息,调用 `addOne()` 类方法,并且结果以[ Python 整数对象][17]返回。 + +### 3 种方法调试 + +出于调试目的,在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅[官方文档][18]。只要下载了预安装的解释器的其他调试符号,就可以按照下面的步骤进行操作。 + +#### GNU 调试器 + +当然,老式的 [GNU 调试器(GDB)][19]也可以派上用场。源码中包含了一个 [gdbinit][20] 文件,定义了一些选项和断点,另外还有一个 [gdb.sh][21] 脚本,它会创建一个调试构建并启动一个 GDB 会话: + +![Gnu 调试器(GDB)对于 Python C 和 C++ 扩展非常有用][22] + +GDB 使用脚本文件 [main.py][23] 调用 CPython 解释器,它允许你轻松定义你想要使用 Python 扩展模块执行的所有操作。 + +#### C++ 应用 + +另一种方法是将 CPython 解释器嵌入到一个单独的 C++ 应用程序中。可以在仓库的 [pydbg.cpp][24] 文件中找到: + +```cpp +int main(int argc, char *argv[], char *envp[]) +{ + Py_SetProgramName(L"DbgPythonCppExtension"); + Py_Initialize(); + + PyObject *pmodule = PyImport_ImportModule("MyModule"); + if (!pmodule) { + PyErr_Print(); + std::cerr << "Failed to import module MyModule" << std::endl; + return -1; + } + + PyObject *myClassType = PyObject_GetAttrString(pmodule, "MyClass"); + if (!myClassType) { + std::cerr << "Unable to get type MyClass from MyModule" << std::endl; + return -1; + } + + PyObject *myClassInstance = PyObject_CallObject(myClassType, NULL); + + if (!myClassInstance) { + std::cerr << "Instantioation of MyClass failed" << std::endl; + return -1; + } + + Py_DecRef(myClassInstance); // invoke deallocation + return 0; +} +``` + +使用[高级接口][25],可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试,还能让你更好地控制传递或来自扩展模块的变量。 + +缺点是创建一个额外的应用程序的成本很高。 + +#### VSCode 和 VSCodium LLDB 扩展 + +使用像 [CodeLLDB][26] 这样的调试器扩展可能是最方便的调试选项。仓库包含了一些 VSCode/VSCodium 的配置文件,用于构建扩展,如 [task.json][27]、[CMake Tools][28] 和调用调试器([launch.json][29])。这种方法结合了前面几种方法的优点:在图形 IDE 中调试,在 Python 脚本文件中定义操作,甚至在解释器提示符中动态定义操作。 + +![VSCodium 有一个集成的调试器。][30] + +### 用 C++ 扩展 Python + +Python 的所有功能也可以从 C 或 C++ 扩展中获得。虽然用 Python 写代码通常认为是一件容易的事情,但用 C 或 C++ 扩展 Python 代码是一件痛苦的事情。另一方面,虽然原生 Python 代码比 C++ 慢,但 C 或 C++ 扩展可以将计算密集型任务提升到原生机器码的速度。 + +你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性,如[文档][31]所述。 + +最后,你必须自己权衡利弊。如果你决定使用 C 语言来扩展 Python 中的一些功能,你已经看到了如何实现它。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/extend-c-python + +作者:[Stephan Avenwedde][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/hansic99 +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/9/python-interpreters-2022 +[2]: https://docs.python.org/3/library/ctypes.html#module-ctypes +[3]: https://github.com/hANSIc99/PythonCppExtension +[4]: https://opensource.com/article/21/5/cmake +[5]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject +[6]: https://docs.python.org/3/c-api/type.html#c.PyType_FromSpec +[7]: https://docs.python.org/3/c-api/typeobj.html#heap-types +[8]: https://github.com/hANSIc99/PythonCppExtension/blob/main/my_class_py_type.h +[9]: https://docs.python.org/3/c-api/type.html#c.PyType_Spec +[10]: https://docs.python.org/release/3.9.1/c-api/type.html?highlight=pytype_slot#c.PyType_Slot +[11]: https://en.cppreference.com/w/cpp/types/offsetof +[12]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pymemberdef#c.PyMemberDef +[13]: https://en.cppreference.com/w/cpp/utility/optional +[14]: https://docs.python.org/3/library/dataclasses.html?highlight=__init__ +[15]: https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple +[16]: https://docs.python.org/3/c-api/memory.html +[17]: https://docs.python.org/3/c-api/long.html +[18]: https://docs.python.org/3/c-api/intro.html#debugging-builds +[19]: https://opensource.com/article/21/3/debug-code-gdb +[20]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdbinit +[21]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdb.sh +[22]: https://opensource.com/sites/default/files/2022-11/gdb_session_b_0.png +[23]: https://github.com/hANSIc99/PythonCppExtension/blob/main/main.py +[24]: https://github.com/hANSIc99/PythonCppExtension/blob/main/pydbg.cpp +[25]: https://docs.python.org/3/extending/embedding.html#very-high-level-embedding +[26]: https://github.com/vadimcn/vscode-lldb +[27]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/tasks.json +[28]: https://github.com/microsoft/vscode-cmake-tools +[29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json +[30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png +[31]: https://docs.python.org/3/c-api/stable.html From 93a7b20dc1749374ab6725915fb86009c4bad49f Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 2 Jan 2023 14:58:04 +0800 Subject: [PATCH 2479/3123] Translated (#28352) * 1st h * 2 * finished * finished --- ...s for measuring your open source software usage.md | 142 ----------------- ...s for measuring your open source software usage.md | 145 ++++++++++++++++++ 2 files changed, 145 insertions(+), 142 deletions(-) delete mode 100644 sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md create mode 100644 translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md deleted file mode 100644 index 6c4a9eec17..0000000000 --- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "8 ideas for measuring your open source software usage" -[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" -[#]: author: "Georg Link https://opensource.com/users/georglink" -[#]: collector: "lkxed" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -8 ideas for measuring your open source software usage -====== - -Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched. - -To make a long story short: We cannot answer these questions directly. - -Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers. - -The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings. - -### Downloads - -When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while. - -However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person. - -Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices. - -Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software? - -For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from: - -- the project website -- package managers such as npm, PyPi, and Maven -- code repositories like GitHub, GitLab, and Gitee - -You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include: - -- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee -- The number of archives (tar, zip) downloaded from the website -- The number of source code downloads through package managers like npm, PyPi, and Maven - -Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache. - -**[ Related read [5 metrics to track in your open source community][2] ]** - -In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test. - -### Issues - -As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature. - -Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ. - -With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include: - -- The number of issue authors -- The number of active issue authors (opened an issue in the last 6 months) -- The number of issue authors who also contribute code -- The number of issues opened -- The number of issue comments written - -### User mailing lists, forums, and Q&A sites - -Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including: - -- The number of user mailing list subscribers -- The number of forum users -- The number of questions asked -- The number of answers provided -- The number of messages created - -### Call-home feature - -To get accurate counts of users, one idea is to have your software report back when it is in use. - -This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use. - -Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term." - -### Stars and forks - -Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software. - -Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks. - -### Social media - -Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project. - -We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include: - -- The number of followers or subscribers -- The number of messages -- The number of active message authors -- The number of likes, shares, reactions, and other interactions - -### Web analytics and documentation - -Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include: - -- The number of website visitors -- The number of documentation visitors -- The duration visitors spend on your website or in documentation - -### Events - -Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base. - -You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM). - -Metrics you might consider: - -- The number of attendees at your project-centric event -- The number of talks submitted to your project-centric event -- The number of attendees at your project-centric talks - -### Conclusion about approximating usage of open source software - -As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines. - -Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis. - -In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results. - -We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-usage-metrics - -作者:[Georg Link][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/georglink -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/18/5/metrics-project-success -[2]: https://opensource.com/article/22/11/community-metrics diff --git a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md new file mode 100644 index 0000000000..f3efee7126 --- /dev/null +++ b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -0,0 +1,145 @@ +[#]: subject: "8 ideas for measuring your open source software usage" +[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" +[#]: author: "Georg Link https://opensource.com/users/georglink" +[#]: collector: "lkxed" +[#]: translator: "CanYellow" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +衡量你开源软件使用的8个方法 +====== + +我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户群体和用户认知来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装以及触发了多少次实例。 + +长话短说,我们尚无法直接回答上述问题。 + +如果你想要寻找一个终极解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。 + +好消息是,有一些近似的和可选的指标至少能够部分地满足你对软件使用知识的渴求。本文探讨了这些替代方案以及他们的优点和缺点。 + +### 下载 + +当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人留下 Firefox 在一段时间内是一个流行的浏览器。 + +然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次由上述人员带来的下载次数。 + +下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到闪存上,然后安装到数百台设备上。 + +下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是运行时遇到了问题而遗弃了软件。 + +对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标: + +- 项目官网 +- 包管理器,比如 npm,PyPi 和 Maven +- 代码仓库,如 Github,GitLab,Gitee 等 + +你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式 (见于[《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括: + +- 从代码仓库克隆的数量,比如 GitHub,GitLab 和 Gitee +- 从官网下载的归档文件 (tar,zip) 的数量 +- 通过像 npm,PyPi 和 Maven 这样的包管理器下载的源代码数量 + +源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码并已经配置好了他们的构建流程来总是在每一次构建中都克隆你的版本库。再想象一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。 + +**[相关阅读[跟踪你的开源社区的5个指标][2]]** + +总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的代表。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以公正的假定广告推动了更多人下载软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者专属语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。 + +### 提问 + +作为一个开源项目,你可能有一个问题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提问者可能使用过你的软件。作为一名用户,他可能发现了一个漏洞或者确定了对新功能的需求。 + +很明显,大多数用户不会执行额外的步骤来提交问题。提问者是我们的忠实用户,我们对他们表示感谢。此外,通过提出问题,他们成为非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每10000名用户中,可能有100名提问者以及1名代码贡献者,当然取决于用户类型,上述比例可能有出入。 + +回到指标问题,你可以将提问者数量作为评估使用量的下界。相关的指标包括: + +- 提问者数量 +- 活跃提问者的数量 (在过去6个月内提出问题的提问者) +- 同时有代码贡献的提问者的数量 +- 尚未解决的问题的数量 +- 发布的问题评论的数量 + +### 邮件列表,论坛和问答网站 + +很多开源项目都拥有用户邮件列表,论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括: + +- 用户邮件列表的订阅量 +- 论坛用户的数量 +- 问题的数量 +- 答案的数量 +- 发布信息的数量 + +### 上报功能 + +为了获得精确的用户数量,一个方案是让软件在使用时上报信息。 + +这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。 + +负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用检测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许使用信息分享;但对于一些软件,因为希望开发人员从长远来看会将软件优化得更好,我愿意这样做。 + +### 加星标与克隆 + +加星标与克隆是如 GitHub 、 GitLab 、 Gitee 等社交化编程平台的功能。平台用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标以保持对感兴趣的项目的跟踪和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。 + +在社交化编程平台上的克隆 (Forks) 即将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改并将修改通过拉取请求 (pull request) 的方式提交审核。克隆比星标更能反映软件社区的大小。开发者也可能为了保存一份代码副本而克隆一个项目以便在原始仓库消失后他们仍能访问代码。因为克隆功能在代码贡献工作流中的应用,克隆量是衡量开发社区的良好指标。克隆量通常也不反映非开发人员的使用,因为非开发人员一般不创建克隆。 + +### 社交媒体 + +包括 Facebook、Instagram、LinkIn、Reddit、Twtter等的社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新、突出共献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。 + +我在犹豫是否建议关注指标因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动并想要在不实际使用的情况下关注它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括: + +- 关注与订阅的数量 +- 消息的数量 +- 活跃的消息作者的数量 +- 喜欢、分享、回复以及其他交互的数量 + +### 网站分析与文档 + +网站流量也是一个有用的指标。这一指标主要由你的服务范围以及市场营销活动影响而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大概随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的一般性的兴趣并进一步通过观察文档的访问者观察用户风向。这些指标包括: + +- 网站访问者数量 +- 文档访问者的数量 +- 访问者在你的网站与文档上所花的时间 + +### 活动 + +活动指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动中这可能都很有趣。当然,你如何推广你的活动可以很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交与参会者注册的增加表征软件受欢迎程度与用户群的增加。 + +你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要聚焦你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦开源项目的更新与公告,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。 + +你可以考虑如下指标: + +- 以你的项目为中心的活动的出席人数 +- 提交到以你的项目为中心的活动的演讲数量 +- 以你的项目为中心的演讲的出席人数 + +### 关于估算开源软件使用的结论 + +正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有手段比较多个具有共性——比如相似的功能、强大的相互依赖以及由同一基金会托管和其他特征——的开源项目的同一组指标,你就可以提升你对用户行为基线的感知。 + +需要注意的是,在本概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分被间接使用也会严重影响软件使用与行为,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。 + +最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最佳实践是总是一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。 + +我们感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢审阅并帮助优化本文的 CHAOSS 社区的成员。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-usage-metrics + +作者:[Georg Link][a] +选题:[lkxed][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/georglink +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/18/5/metrics-project-success +[2]: https://opensource.com/article/22/11/community-metrics + +[T1]: https://fosdem.org/ +[T2]: https://chaoss.community From e238594bd53ebaadd35562b709da284faa246dbc Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 2 Jan 2023 16:52:34 +0800 Subject: [PATCH 2480/3123] Update 20210718 Is Open-Source Software Secure.md --- sources/talk/20210718 Is Open-Source Software Secure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/sources/talk/20210718 Is Open-Source Software Secure.md index d6d249b54b..01d262a018 100644 --- a/sources/talk/20210718 Is Open-Source Software Secure.md +++ b/sources/talk/20210718 Is Open-Source Software Secure.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/open-source-software-security/) [#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (CanYellow) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 753a74abfd83f3f1ab72eba8f75eca31bab3fcca Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 2 Jan 2023 17:04:36 +0800 Subject: [PATCH 2481/3123] RP @geekpi https://linux.cn/article-15404-1.html --- ...ightful features of the Linux QtFM file manager.md | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) rename {translated/tech => published}/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md (54%) diff --git a/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md similarity index 54% rename from translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md rename to published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md index 19cb2172d2..0b6dccf74a 100644 --- a/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md +++ b/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md @@ -3,58 +3,63 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15404-1.html" -# Linux QtFM 文件管理器的 3 个令人愉快的功能 +Linux QtFM 文件管理器的 3 个令人愉快的功能 +====== -QtFM 是一个简单的文件管理器,旨在通过快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。 +![][0] + +> 这个 Linux 文件管理器做了你所期望的一切,没有留下不愉快的惊喜。但这里有一些令人惊喜的事情,使它值得一试。 + +QtFM 是一个简单的文件管理器,旨在通过一个快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。 QtFM,顾名思义,使用 Qt(规范发音为 “cute”)编程工具包。我在 C++ 和 Python 中使用过 Qt 工具包,使用它总是一种乐趣。它是跨平台的,具有多个有用的抽象级别,因此开发人员不必直接与特定于供应商的 SDK 交互,而且它具有高度可配置性。从用户的角度来看,无论你使用的是最新的硬件还是[旧计算机][1],这都是一种“自然”且快速的体验。 ### 使用 QtFM -QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器 (FM)。布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。 +QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器(FM)。其布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。 ![QtFM file manager][2] -它只有四个菜单。 +它只有四个菜单: -- **文件**:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。 -- **编辑**:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。 -- **视图**:在列表视图和图标视图之间切换,调整布局。 -- **帮助**:许可信息和在线文档链接。 +- 文件File:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。 +- 编辑Edit:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。 +- 视图View:在列表视图和图标视图之间切换,调整布局。 +- 帮助Help:许可信息和在线文档链接。 与 QtFM 交互与你可能习惯使用的任何标准文件管理器的体验大致相同。你可以点击导航、在其默认应用中打开文件、拖放文件和文件夹、复制和粘贴文件和文件夹、启动应用,以及你在与计算机内容交互时执行的任何其他操作。它很熟悉,所以基本上没有学习曲线,也没有不愉快的惊喜。 然而,也有一些惊喜。这是我最喜欢的三个。 -### 1. 将命令放入上下文菜单 +### 1、将命令放入上下文菜单 -使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3]的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成: +使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3] 的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成: -- 转到**编辑**菜单并选择**设置**。 -- 单击**自定义操作选项卡**。 -- 单击**添加**按钮并输入要运行的命令,对源文件使用 `%f`,对新文件使用 `%n`。 +- 转到 “编辑Edit” 菜单并选择 “设置Settings”。 +- 单击 “自定义操作选项卡Custom actions tab”。 +- 单击 “添加Add” 按钮并输入要运行的命令,用 `%f` 代表源文件,用 `%n` 代表新文件。 ![QtFM custom actions][4] 该操作现在出现在你的 QtFM 上下文菜单中。 -### 2. 灵活的布局 +### 2、灵活的布局 -Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从**视图**菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。 +Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从 “视图View” 菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。 ![QtFM unlocking the layout][5] 这不需要应用设计甚至配置的特殊知识。你只需解锁、拖放和锁定。 -### 3. 标签视图 +### 3、标签视图 许多 Linux 文件管理器提供选项卡的方式与大多数 Web 浏览器相同。这是一个简单的界面技巧,可让你方便地保留多个位置。我不知道它是否真的节省了时间,但我总觉得它确实如此。QtFM 也提供选项卡,我特别喜欢它实现选项卡的方式有两点。 -首先,选项卡默认位于窗口底部(你可以在**设置**中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。 +首先,选项卡默认位于窗口底部(你可以在 “设置Settings” 中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。 其次,标签是响应式的。只需将鼠标悬停在目标选项卡上,即可将文件或文件夹从一个选项卡拖动到另一个选项卡中。感觉就像从一个窗口拖放到另一个窗口一样自然。 @@ -66,7 +71,7 @@ Qt 工具包的内置功能之一是它的许多组件(“小部件”)是 $ sudo apt install qtfm ``` -如果你的发行版不提供 QtFM,你可以在其[网站][6]上找到它的软件包,或者你可以从它的 [Git 仓库][7]下载源码。 +如果你的发行版不提供 QtFM,你可以在其 [网站][6] 上找到它的软件包,或者你可以从它的 [Git 仓库][7] 下载源码。 --- @@ -75,7 +80,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-qtfm 作者:[Seth Kenlon][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/) 荣誉推出 @@ -88,3 +93,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-qtfm [5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp [6]: https://qtfm.eu/ [7]: https://github.com/rodlie/qtfm/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/02/170250zuwyuzzr9o3myl3l.jpg \ No newline at end of file From 63af5460784b272e0369705f23904c20751fda94 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 2 Jan 2023 17:36:04 +0800 Subject: [PATCH 2482/3123] RP @MjSeven https://linux.cn/article-15405-1.html --- ...️⭐️ Write a C++ extension module for Python.md | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) rename {translated/tech => published}/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md (85%) diff --git a/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md similarity index 85% rename from translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md rename to published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md index 184640b701..5f426b7f7d 100644 --- a/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md +++ b/published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md @@ -3,24 +3,26 @@ [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15405-1.html" 为 Python 写一个 C++ 扩展模块 ====== -使用 C 扩展为 Python 提供特定功能。 +![][0] -在前一篇文章中,我介绍了[六个 Python 解释器][1]。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C,同时保留 Python 的易用性。 +> 使用 C 扩展为 Python 提供特定功能。 -在本文中,我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C,因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点:以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此,如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式,考虑下使用 [ctypes][2]模块。 +在前一篇文章中,我介绍了 [六个 Python 解释器][1]。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C,同时保留 Python 的易用性。 + +在本文中,我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C,因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点:以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此,如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式,考虑下使用 [ctypes][2] 模块。 ### 源代码 和往常一样,你可以在 [GitHub][3] 上找到相关的源代码。仓库中的 C++ 文件有以下用途: -- `my_py_module.cpp`: Python 模块 _MyModule_ 的定义 +- `my_py_module.cpp`: Python 模块 `MyModule` 的定义 - `my_cpp_class.h`: 一个头文件 - 只有一个暴露给 Python 的 C++ 类 - `my_class_py_type.h/cpp`: Python 形式的 C++ 类 - `pydbg.cpp`: 用于调试的单独应用程序 @@ -29,7 +31,7 @@ ### 构建模块 -在查看源代码之前,你可以检查它是否能在你的系统上编译。[我使用 CMake][4]来创建构建的配置信息,因此你的系统上必须安装 CMake。为了配置和构建这个模块,可以让 Python 去执行这个过程: +在查看源代码之前,你可以检查它是否能在你的系统上编译。[我使用 CMake][4] 来创建构建的配置信息,因此你的系统上必须安装 CMake。为了配置和构建这个模块,可以让 Python 去执行这个过程: ``` $ python3 setup.py build @@ -48,7 +50,7 @@ $ cmake --build build 首先,看一下 `my_py_module.cpp` 文件,尤其是 `PyInit_MyModule` 函数: -``` cpp +``` PyMODINIT_FUNC PyInit_MyModule(void) { PyObject* module = PyModule_Create(&my_module); @@ -72,15 +74,15 @@ PyInit_MyModule(void) { 无论是声明还是实例,所有 Python 类型都是 [PyObject][5] 的一个指针。在此函数的第一部分中,`module` 通过 `PyModule_Create(...)` 创建的。正如你在 `module` 详述(`my_py_module`,同名文件)中看到的,它没有任何特殊的功能。 -之后,调用 [PyType_FromSpec][6] 为自定义类型 MyClass 创建一个 Python [堆类型][7]定义。一个堆类型对应于一个 Python 类,然后将它赋值给 MyModule 模块。 +之后,调用 [PyType_FromSpec][6] 为自定义类型 `MyClass` 创建一个 Python [堆类型][7] 定义。一个堆类型对应于一个 Python 类,然后将它赋值给 `MyModule` 模块。 _注意,如果其中一个函数返回失败,则必须减少以前创建的复制对象的引用计数,以便解释器删除它们。_ ### 指定 Python 类型 -MyClass 详设在 [my_class_py_type.h][8] 中可以找到,它作为 [PyType_Spec][9] 的一个实例: +`MyClass` 详述在 [my_class_py_type.h][8] 中可以找到,它作为 [PyType_Spec][9] 的一个实例: -```cpp +``` static PyType_Spec spec_myclass = { "MyClass", // name sizeof(MyClassObject) + sizeof(MyClass), // basicsize @@ -92,7 +94,7 @@ static PyType_Spec spec_myclass = { 它定义了一些基本类型信息,它的大小包括 Python 表示的大小(`MyClassObject`)和普通 C++ 类的大小(`MyClass`)。`MyClassObject` 定义如下: -```cpp +``` typedef struct { PyObject_HEAD int m_value; @@ -104,7 +106,7 @@ Python 表示的话就是 [PyObject][5] 类型,由 `PyObject_HEAD` 宏和其 [PyType_Slot][10] 定义了一些其他功能: -```cpp +``` static PyType_Slot MyClass_slots[] = { {Py_tp_new, (void*)MyClass_new}, {Py_tp_init, (void*)MyClass_init}, @@ -119,7 +121,7 @@ static PyType_Slot MyClass_slots[] = { 要完成类型详述,还包括下面的方法和成员表: -```cpp +``` static PyMethodDef MyClass_methods[] = { {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")}, {NULL, NULL} /* Sentinel */ @@ -139,7 +141,7 @@ static struct PyMemberDef MyClass_members[] = { `MyClass_new` 方法只为 `MyClassObject` 提供一些初始值,并为其类型分配内存: -```cpp +``` PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){ std::cout << "MtClass_new() called!" << std::endl; @@ -156,7 +158,7 @@ PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){ 实际的初始化发生在 `MyClass_init` 中,它对应于 Python 中的 [\_\_init__()][14] 方法: -```cpp +``` int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){ ((MyClassObject *)self)->m_value = 123; @@ -197,7 +199,7 @@ int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){ 从 Python 类中调用相关的 C++ 类方法很简单: -```cpp +``` PyObject* MyClass_addOne(PyObject *self, PyObject *args){ assert(self); @@ -207,15 +209,15 @@ PyObject* MyClass_addOne(PyObject *self, PyObject *args){ } ``` -同样,`PyObject` 参数(`self`)被强转为 `MyClassObject` 类型以便访问 `m_myclass`,它指向 C++ 对应类实例的指针。有了这些信息,调用 `addOne()` 类方法,并且结果以[ Python 整数对象][17]返回。 +同样,`PyObject` 参数(`self`)被强转为 `MyClassObject` 类型以便访问 `m_myclass`,它指向 C++ 对应类实例的指针。有了这些信息,调用 `addOne()` 类方法,并且结果以 [Python 整数对象][17] 返回。 ### 3 种方法调试 -出于调试目的,在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅[官方文档][18]。只要下载了预安装的解释器的其他调试符号,就可以按照下面的步骤进行操作。 +出于调试目的,在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅 [官方文档][18]。只要下载了预安装的解释器的其他调试符号,就可以按照下面的步骤进行操作。 #### GNU 调试器 -当然,老式的 [GNU 调试器(GDB)][19]也可以派上用场。源码中包含了一个 [gdbinit][20] 文件,定义了一些选项和断点,另外还有一个 [gdb.sh][21] 脚本,它会创建一个调试构建并启动一个 GDB 会话: +当然,老式的 [GNU 调试器(GDB)][19] 也可以派上用场。源码中包含了一个 [gdbinit][20] 文件,定义了一些选项和断点,另外还有一个 [gdb.sh][21] 脚本,它会创建一个调试构建并启动一个 GDB 会话: ![Gnu 调试器(GDB)对于 Python C 和 C++ 扩展非常有用][22] @@ -225,7 +227,7 @@ GDB 使用脚本文件 [main.py][23] 调用 CPython 解释器,它允许你轻 另一种方法是将 CPython 解释器嵌入到一个单独的 C++ 应用程序中。可以在仓库的 [pydbg.cpp][24] 文件中找到: -```cpp +``` int main(int argc, char *argv[], char *envp[]) { Py_SetProgramName(L"DbgPythonCppExtension"); @@ -256,7 +258,7 @@ int main(int argc, char *argv[], char *envp[]) } ``` -使用[高级接口][25],可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试,还能让你更好地控制传递或来自扩展模块的变量。 +使用 [高级接口][25],可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试,还能让你更好地控制传递或来自扩展模块的变量。 缺点是创建一个额外的应用程序的成本很高。 @@ -270,7 +272,7 @@ int main(int argc, char *argv[], char *envp[]) Python 的所有功能也可以从 C 或 C++ 扩展中获得。虽然用 Python 写代码通常认为是一件容易的事情,但用 C 或 C++ 扩展 Python 代码是一件痛苦的事情。另一方面,虽然原生 Python 代码比 C++ 慢,但 C 或 C++ 扩展可以将计算密集型任务提升到原生机器码的速度。 -你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性,如[文档][31]所述。 +你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性,如 [文档][31] 所述。 最后,你必须自己权衡利弊。如果你决定使用 C 语言来扩展 Python 中的一些功能,你已经看到了如何实现它。 @@ -281,7 +283,7 @@ via: https://opensource.com/article/22/11/extend-c-python 作者:[Stephan Avenwedde][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -318,3 +320,4 @@ via: https://opensource.com/article/22/11/extend-c-python [29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json [30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png [31]: https://docs.python.org/3/c-api/stable.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/02/173501o26htajatlpj0lqt.jpg \ No newline at end of file From d28829db92ec720f6ecbfbbd8cdd310f5a78a39f Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 3 Jan 2023 08:51:21 +0800 Subject: [PATCH 2483/3123] translated --- ...️ How to Update Flatpak Packages in Linux.md | 127 ------------------ ...️ How to Update Flatpak Packages in Linux.md | 127 ++++++++++++++++++ 2 files changed, 127 insertions(+), 127 deletions(-) delete mode 100644 sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md create mode 100644 translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md diff --git a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md deleted file mode 100644 index beb10e6833..0000000000 --- a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "How to Update Flatpak Packages in Linux" -[#]: via: "https://itsfoss.com/update-flatpak/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Update Flatpak Packages in Linux -====== - -I believe almost all Linux users keep their systems updated. - -But that update is usually for the default [package manager][1]. For example, [updating Ubuntu][2] often means updating all the APT packages. - -However, there are other packaging formats like Snap and Flatpak. The Snap applications get updated automatically but not the Flatpak ones. - -How do you update the Flatpak packages then? Well, you can update all the installed and updatable Flatpak packages using this command: - -``` -flatpak update -``` - -That’s quite simple. But let me discuss a few more things about updating Flatpak, such as: - -- Updating all or specific Flatpak packages -- Updating Flatpak packages via Software Center - -Let’s start with the terminal method first. - -### Method 1: Using the terminal for updating Flatpak packages - -Let me first start with the most practical approach that you should also begin with. - -#### Update every outdated Flatpak package - -Updating the whole catalog of existing flatpak packages is quite easy. - -Enter the given command, and it will get you the list of outdated packages: - -``` -flatpak update -``` - -![3. update flatpak packages in linux][3] - -You just have to enter “Y” and press the Enter key, which will take care of every update. - -#### Updating specific Flatpak package - -To update specific packages, you’d need the list of the packages that can be updated. You used the same command you saw earlier. - -``` -flatpak update -``` - -![3. update flatpak packages in linux][4] - -Copy the name of the package you want to update from the output. Use the package name in the following fashion: - -``` -flatpak update package_name -``` - -For example, if you want to update Telegram, the following command will get the job done: - -``` -flatpak update org.telegram.desktop -``` - -![4. update specific package in flatpak][5] - -That’s it! - -### Method 2: Update Flatpak applications from the software center - -Distributions that come up with Flatpak buil-in support provide updates to Flatpak applications in the software center. Fedora and Linux Mint are such distributions. - -But if you are using Ubuntu, you’d need to add flatpak support to the GNOME software center: - -``` -sudo apt install gnome-software-plugin-flatpak -``` - -Once done, you will have two software centers in Ubuntu. That’s because the default software center is not GNOME’s but Snap Store. - -Open this new software center from the system menu: - -![1. open software center in ubuntu][6] - -Go to the `Updates` section and you will find the list of outdated packages. This includes both APT and Flatpak packages. - -![2. update flatpak from software center][7] - -From here, you can update all the packages at once, or you can be selective with what to update. - -### Wrapping Up - -Many Linux desktop users tend to forget to update the Flatpak packages as they are not included in the regular system updates. - -As Flatpak is a sandboxed packaging solution, you may not face any issues related to outdated packages, but you will miss out on new features and fixes for sure. - -This is why I recommend running the Flatpak update command once ever few weeks. - -I hope you like this quick little Flatpak tip helpful. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/update-flatpak/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/package-manager/ -[2]: https://itsfoss.com/update-ubuntu/ -[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png -[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png -[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png -[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png diff --git a/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md new file mode 100644 index 0000000000..ac4468acc0 --- /dev/null +++ b/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md @@ -0,0 +1,127 @@ +[#]: subject: "How to Update Flatpak Packages in Linux" +[#]: via: "https://itsfoss.com/update-flatpak/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Linux 中更新 Flatpak 软件包 +====== + +我相信几乎所有的 Linux 用户都会保持他们系统的更新。 + +但这种更新通常是针对默认的[包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。 + +然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 的不会。 + +那么你如何更新 Flatpak 软件包呢?好吧,你可以用这个命令来更新所有已安装和可更新的 Flatpak 包: + +``` +flatpak update +``` + +这很简单。但让我再讨论一下关于更新 Flatpak 的一些事情,比如说: + +- 更新所有或特定的 Flatpak 包 +- 通过软件中心更新 Flatpak 包 + +让我们先从终端的方法开始。 + +### 方法 1:使用终端来更新 Flatpak 包 + +首先让我从最实用的方法开始,你也应该从这个方法开始。 + +#### 更新每一个过时的 Flatpak 包 + +更新现有的 Flatpak 包的整个目录是很容易的。 + +输入给定的命令,就可以得到过期包的列表: + +``` +flatpak update +``` + +![3. update flatpak packages in linux][3] + +你只需输入 “Y” 并按下回车键,就能搞定每一个更新。 + +#### 更新特定的 Flatpak 包 + +要更新特定的软件包,你需要可以更新的软件包的列表。你用的是你之前看到的那个命令。 + +``` +flatpak update +``` + +![3. update flatpak packages in linux][4] + +从输出中复制你要更新的软件包的名称。在以下命令中使用软件包的名称: + +``` +flatpak update package_name +``` + +例如,如果你想更新Telegram,下面的命令可以完成这项工作: + +``` +flatpak update org.telegram.desktop +``` + +![4. update specific package in flatpak][5] + +这就完成了 + +### 方法 2:从软件中心更新 Flatpak 应用 + +有 Flatpak 内置支持的发行版会在软件中心提供 Flatpak 应用的更新。Fedora 和 Linux Mint 就是这样的发行版。 + +但如果你使用的是 Ubuntu,你就需要在 GNOME 软件中心添加 Flatpak 支持: + +``` +sudo apt install gnome-software-plugin-flatpak +``` + +完成后,你将在 Ubuntu 中拥有两个软件中心。这是因为默认的软件中心不是 GNOME 的,而是 Snap Store。 + +从系统菜单中打开这个新的软件中心: + +![1. open software center in ubuntu][6] + +进入`更新`页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。 + +![2. update flatpak from software center][7] + +在这里,你可以一次更新所有的软件包,或者你可以有选择地更新什么。 + +### 总结 + +许多 Linux 桌面用户往往忘记更新 Flatpak 软件包,因为它们不包括在定期的系统更新中。 + +由于 Flatpak 是一个沙盒式的打包解决方案,你可能不会面临任何与过时的软件包有关的问题,但你肯定会错过新的功能和修复。 + +这就是为什么我建议每隔几周运行一次 Flatpak 更新命令。 + +我希望你喜欢这个快速的 Flatpak 小技巧。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/update-flatpak/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/package-manager/ +[2]: https://itsfoss.com/update-ubuntu/ +[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png +[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png +[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png +[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png +[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png From 39a7a28e9fd0a4896f20e7d05ab27874c8ede109 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 3 Jan 2023 08:55:38 +0800 Subject: [PATCH 2484/3123] translating --- ... Google, Alexa, and Siri in Works for Home Assistant Platform.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md index 80b6010732..4e14013469 100644 --- a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md +++ b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/open-source-assistant/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d5d10d0d83f551627b792367edff85780d31f000 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 3 Jan 2023 15:42:29 +0800 Subject: [PATCH 2485/3123] RP @geekpi https://linux.cn/article-15408-1.html --- ...️ How to Update Flatpak Packages in Linux.md | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) rename {translated/tech => published}/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md (68%) diff --git a/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md similarity index 68% rename from translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md rename to published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md index ac4468acc0..4c68d5c5f1 100644 --- a/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md +++ b/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md @@ -3,18 +3,20 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15408-1.html" 如何在 Linux 中更新 Flatpak 软件包 ====== +![][0] + 我相信几乎所有的 Linux 用户都会保持他们系统的更新。 -但这种更新通常是针对默认的[包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。 +但这种更新通常是针对默认的 [包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。 -然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 的不会。 +然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 不会。 那么你如何更新 Flatpak 软件包呢?好吧,你可以用这个命令来更新所有已安装和可更新的 Flatpak 包: @@ -43,9 +45,9 @@ flatpak update flatpak update ``` -![3. update flatpak packages in linux][3] +![update flatpak packages in linux][3] -你只需输入 “Y” 并按下回车键,就能搞定每一个更新。 +你只需输入 `Y` 并按下回车键,就能搞定每一个更新。 #### 更新特定的 Flatpak 包 @@ -55,7 +57,7 @@ flatpak update flatpak update ``` -![3. update flatpak packages in linux][4] +![update flatpak packages in linux][4] 从输出中复制你要更新的软件包的名称。在以下命令中使用软件包的名称: @@ -63,15 +65,15 @@ flatpak update flatpak update package_name ``` -例如,如果你想更新Telegram,下面的命令可以完成这项工作: +例如,如果你想更新 Telegram,下面的命令可以完成这项工作: ``` flatpak update org.telegram.desktop ``` -![4. update specific package in flatpak][5] +![update specific package in flatpak][5] -这就完成了 +这就完成了。 ### 方法 2:从软件中心更新 Flatpak 应用 @@ -87,11 +89,11 @@ sudo apt install gnome-software-plugin-flatpak 从系统菜单中打开这个新的软件中心: -![1. open software center in ubuntu][6] +![open software center in ubuntu][6] -进入`更新`页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。 +进入“更新Update”页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。 -![2. update flatpak from software center][7] +![update flatpak from software center][7] 在这里,你可以一次更新所有的软件包,或者你可以有选择地更新什么。 @@ -112,7 +114,7 @@ via: https://itsfoss.com/update-flatpak/ 作者:[Sagar Sharma][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/) 荣誉推出 @@ -120,8 +122,9 @@ via: https://itsfoss.com/update-flatpak/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/package-manager/ [2]: https://itsfoss.com/update-ubuntu/ -[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png -[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png -[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png -[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png -[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png +[3]: https://itsfoss.com/content/images/wordpress/2022/12/3.-update-flatpak-packages-in-linux.png +[4]: https://itsfoss.com/content/images/wordpress/2022/12/3.-update-flatpak-packages-in-linux.png +[5]: https://itsfoss.com/content/images/wordpress/2022/12/4.-update-specific-package-in-flatpak.png +[6]: https://itsfoss.com/content/images/wordpress/2022/12/1.-open-software-center-in-ubuntu.png +[7]: https://itsfoss.com/content/images/wordpress/2022/12/2.-update-flatpak-from-software-center.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/03/154131lop17rnnrkiprkl7.jpg \ No newline at end of file From 6e54db94d1b656d3d4c047d6dbe6628de5fd6162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 3 Jan 2023 21:47:14 +0800 Subject: [PATCH 2486/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230102.0=20=E2=AD=90=EF=B8=8F=20How=20to=20read=20?= =?UTF-8?q?and=20write=20files=20in=20Rust.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️ How to read and write files in Rust.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md new file mode 100644 index 0000000000..0ec7cecb0a --- /dev/null +++ b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md @@ -0,0 +1,110 @@ +[#]: subject: "How to read and write files in Rust" +[#]: via: "https://opensource.com/article/23/1/read-write-files-rust" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to read and write files in Rust +====== + +Knowing how to read and write files can be useful for various purposes. In Rust, this task is done using the file system module ([std::fs][1]) in the standard library. In this article, I'll give you an overview on how to use this module. + +To demonstrate this task, I prepared example code which is also available on [GitHub][2]. + +### Preparation + +When using Rust, a function that fails returns the [Result][3] type. The file system module in particular returns the specialized type [std::io::Result][4]. With this knowledge, you can return the same type from the `main()` function: + +``` +fn main() -> std::io::Result<()> { +/* ...code comes here... */ +``` + +### Writing Rust files + +Performing file I/O-operations in Rust is relatively easy. Writing to a file can be simplified to one line: + +``` +use std::fs; +fs::write("favorite_websites.txt", b"opensource.com")?; +Ok(()) +``` + +Using the error propagation operator `(?)`, the error information gets passed on to the calling function where the error can subsequently be handled. As `main()` is the only other function in the call stack, the error information gets passed on to the console output in case the write operation failed. + +The syntax of the [fs::write][5] function is quite forward. The first argument is the file path, which must be the type [std::path::Path][6]. The second argument is the content, which is actually a slice of bytes (`[u8]`). Rust converts the arguments passed into the correct type. Luckily, these types are basically the only types dealt with in the following examples. + +A more concise access of the write operation can be achieved using the file descriptor type [std::fs::File][7]: + +``` +let mut file = fs::File::create("favorite_websites.txt")?; +file.write_all(b"opensource.com\n")?; +Ok(()) +``` + +As the file type implements the [Write][8] trait, it is possible to use the associated methods to write to the file. However, the `create` method can overwrite an already existing file. + +To get even more control of the file descriptor, the type [std::fs::OpenOptions][9] must be used. This provides opening modes similar to the ones in other languages: + +``` +let mut file = fs::OpenOptions::new() + .append(true) + .open("favorite_websites.txt")?; + +file.write_all(b"sourceforge.net\n")?; +``` + +### Reading Rust files + +What applies to writing also applies to reading. Reading can also be done with a simple one-line of code: + +``` +let websites = fs::read_to_string("favorite_websites.txt")?; +``` + +The above line reads the content of the file and returns a string. In addition to reading a string, there is also the [std::fs::read][10] function which reads the data into a vector of bytes if the file contains binary data. + +The next example shows how to read the content of the file into memory and subsequently print it line by line to a console: + +``` +let file = fs::File::open("favorite_websites.txt")?; +let lines = io::BufReader::new(file).lines(); + +for line in lines { + if let Ok(_line) = line { + println!(">>> {}", _line); + } +} +``` + +### Summary + +If you are already familiar with other programming languages, you may have noticed that there is `no close-`function (or something similar) that releases the file handle. In Rust, the file handle is released as soon as the related variable goes out of scope. To define the closing behavior, a scope `({ })` around the file representation can be applied. I recommend that you get familiar with [Read][11] and [Write][8] trait as you can find this trait implemented in many other types. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/read-write-files-rust + +作者:[Stephan Avenwedde][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/hansic99 +[b]: https://github.com/lkxed +[1]: https://doc.rust-lang.org/std/fs/ +[2]: https://github.com/hANSIc99/rust_file_io +[3]: https://doc.rust-lang.org/std/result/enum.Result.html +[4]: https://doc.rust-lang.org/std/io/type.Result.html +[5]: https://doc.rust-lang.org/std/fs/fn.write.html +[6]: https://doc.rust-lang.org/std/path/struct.Path.html +[7]: https://doc.rust-lang.org/std/fs/struct.File.html +[8]: https://doc.rust-lang.org/std/io/trait.Write.html +[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html# +[10]: https://doc.rust-lang.org/std/fs/fn.read.html +[11]: https://doc.rust-lang.org/std/io/trait.Read.html From f4117ef71a86a1be99e99144b6be49eff7f5b2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 3 Jan 2023 21:47:48 +0800 Subject: [PATCH 2487/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230103.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Ultramarine=20Linux=2037=20Release=20Adds=20Pop=20OS-Style=20KD?= =?UTF-8?q?E=20Plasma,=20Drops=20Cutefish.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...se Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md diff --git a/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md new file mode 100644 index 0000000000..c5983ce0ad --- /dev/null +++ b/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md @@ -0,0 +1,87 @@ +[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish" +[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish +====== + +![][1] + +**A new release of Ultramarine Linux is here: Ultramarine Linux 37 with new custom repo, KDE Plasma flavour and goodies.** + +If you are unaware, Ultramarine Linux is a Fedora-based distribution which offers Budgie, Pantheon, GNOME and other desktops. This distro gives you the best Fedora experience with this awesome desktop environment. + +Recently, this small project is [acquired by FyraLabs][2], the company behind PhotonBrowser and tauOS. And this enables the Ultramarine project with the necessary manpower and funding for infrastructure to continue building the distro. + +Since the Fedora 37 release, the team has been working on rebasing the current release, which includes adopting the new infrastructure and CI/CD pipeline migration. And a final Ultramarine Linux 37 is here. + +So, what’s new? + +### Ultramarine Linux 37 Release: New Features + +Since the Fyralabs acquisition, the team upgraded and migrated to GitHub Actions for automated CI/CD builds. Ultramarine’s own repo, which was used to distribute curated packages (for example, Pantheon desktop), is changing in this release and moving to FyraLabs infrastructure. + +Hence if you are running the Ultramarine 36 version, it may not work correctly. It’s best if you do a fresh installation of this version, as obviously, there is no upgrade path from the 36 to 37 version. + +Furthermore, Ultramarine 37 is introducing a rolling repo called “[Terra][3]” for Fedora packages, including hundreds of applications that Fedora doesn’t ship. You may think of it as similar to [RPM Fusion][4], albeit different. + +To learn more, visit [this page][3] or add the following repo from the command line. + +``` +sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo +``` + +In fact, this opens up a possibility as you may also try to use it in Fedora Linux with caution. It will be cool if the above repo works out of the box in a vanilla Fedora install. + +On top of the above changes, Ultramarine Linux 37 introduces KDE Plasma as an official spin for the first time. The KDE Plasma flavour brings a Pop OS style look with Latte Dock and Lightly Qt theme. + +![Ultramarine Linux 37 with unique Pop OS style KDE Plasma Theme][5] + +Ultramarine Linux 37 also drops the Cutefish desktop, which is currently in a [confused state of development with no visible roadmap][6]. It’s a good decision from the team since there is no point in packaging a halted project. + +The Budgie desktop flagship version uses upstream Fedora packages with more default applications. Recently, Fedora Linux removed elementary OS’s Pantheon desktop support, unfortunately. Thanks to Ultramarine Linux devs, you can still experience it as it has been moved to the new Terra repo. + +You should be glad that Ultramarine Linux is the only Fedora-based distribution supporting the great Pantheon desktop. + +Finally, at its core, Ultramarine Linux 37 is based on [Fedora 37][7] and features Linux mainline Kernel 6.0. So, all the updated packages & toolchains are current in this release. + +So, that’s about the summary of this release. Stay tuned for the official review of this version in a few days. If interested, you might want to read the prior version (36) review here: + +> [Ultramarine Linux: Ultimate Fedora Spin with Budgie, Cutefish and Pantheon][8] + +### Download and Upgrade + +Since there is no upgrade path, it is recommended that you should do a fresh installation of this version. You can download the ISO files for the respective desktop flavours below. + +[Download Ultramarine Linux 37][9] + +Via [release announcement][10] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/ultramarine-linux-37-release/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg +[2]: https://twitter.com/UltramarineProj/status/1579991853478182914 +[3]: https://terra.fyralabs.com/ +[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg +[6]: https://www.debugpoint.com/cutefish-development-restarts/ +[7]: https://debugpointnews.com/fedora-37-release-accouncement/ +[8]: https://www.debugpoint.com/ultramarine-linux-36/ +[9]: https://repos.fyralabs.com/isos/ultramarine/37/ +[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0 From 317271ca3b669ca32abbce0824b29b1bfcaa4b81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 3 Jan 2023 21:48:46 +0800 Subject: [PATCH 2488/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230103.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Document=20with=20BookStack,=20an=20open=20source=20Confluence?= =?UTF-8?q?=20alternative.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ookStack, an open source Confluence alternative.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md diff --git a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md new file mode 100644 index 0000000000..0b63928629 --- /dev/null +++ b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md @@ -0,0 +1,98 @@ +[#]: subject: "Document with BookStack, an open source Confluence alternative" +[#]: via: "https://opensource.com/article/23/1/bookstack-open-source-documentation" +[#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Document with BookStack, an open source Confluence alternative +====== + +BookStack is an open source, web-based documentation system, that allows you to create a structured knowledge store for personal, team, or company use. BookStack focuses on ease-of-use and design to provide an experience suitable for an audience with, potentially, mixed skills in technology. It's built upon the PHP framework Laravel, with MySQL or MariaDB used as a datastore. + +I built BookStack after attempting to find a documentation or wiki system for my workplace. [Confluence][1] was the closest option to suit my requirements but the user-based pricing introduced a barrier. The closed nature of Confluence also raised questions to the longevity of the documentation I'd be building. In the end, I decided to build my own platform to suit my needs. I released it under the MIT license to give back to the open source community that I'd come to love and benefit from over the years. + +### Content hierarchy and organization options + +To keep things familiar and intuitive, BookStack makes use of real-world book terms to describe its organization structure. Documentation content is created as a "Page": + +- Pages belong to a specific "Book". +- Within a Book, Pages can optionally be grouped up into "Chapters". +- As your documentation grows, you can then use "Shelves" to categorize Books, with Books being able to be part of multiple shelves if needed. + +This structure sits at the heart of BookStack, and can often be the love-it-or-hate-it deciding aspect of whether BookStack is suitable for your use case. + +Upon this core hierarchy, BookStack also provides tagging, user favorites, and advanced search capabilities to ensure content remains discoverable. + +### Writing documentation + +The primary method of writing documentation in BookStack is through the use of its what-you-see-is-what-you-get (WYSIWYG) editor, which makes use of the open source [Tiny][2] project. This editor provides a range of content formats including: + +- Various header levels +- Code blocks +- Collapsible blocks +- Tables +- Images +- Links +- iFrame embeds +- Alert callouts +- Bullet, numbered and tasks lists +- Drawings (through intregration with the open source [diagrams.net][3]) + +If you prefer [Markdown][4], you can use the built-in Markdown editor, which provides a live preview and supports the same feature set as the WYSIWYG editor. If permission allows, you can even jump between these editor options depending on the page you're editing. + +### How your data is stored + +Documentation is stored within a [MySQL or MariaDB][5] database in a relatively simple HTML format, in addition to the original Markdown content if Markdown was used. A lot of design and development decisions have been made to keep this HTML format simplistic. It uses plain standard HTML elements where possible, to ensure raw documentation content remains open and portable. + +Uploaded images, attachments, and created drawings are saved on the local filesystem but can optionally be stored in an s3-compatible datastore like the open source [MinIO][6]. + +To keep your content accessible, there are built-in options to export content as PDF, HTML, plain text, or Markdown. For external consumption, there's a HTTP REST API and a webhook system. In terms of extension, a "logical theme system" allows running of custom PHP code upon a wide range of system events. + +### Ready for business + +BookStack comes with a range of features to support business environments. Support for a range of authentication options are built-in, including SAML2, OpenID Connect, and LDAP allowing easy single-sign-on usage with platforms such as [KeyCloak][7]. MFA options are available and can be mandated based upon role. An audit log provides full visibility of modification activities across an instance. + +A full role-based permission system provides administrators full control over create, view, update, and delete actions of system content. This allows per-role system defaults, with options to set custom permissions on a per-hierarchy item basis. + +### A community of support + +After being active for over 7 years, the community for BookStack has grown with various avenues for discussion and support. We now have: + +- [Our documentation site][8] +- [Video guides on YouTube][9] +- [A subreddit][10] +- [An active GitHub issues list][11] +- [Paid-for business support][12] + +If you want to play with BookStack, you can try it out [on our demo site][13]. To learn how to set up your own instance, visit the [installation page of our documentation][14]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/bookstack-open-source-documentation + +作者:[Dan Brown][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/ssddanbrown +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/9/open-source-alternatives-confluence +[2]: https://github.com/tinymce/ +[3]: https://www.diagrams.net/ +[4]: https://opensource.com/article/19/9/introduction-markdown +[5]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet +[6]: https://github.com/minio/ +[7]: https://www.keycloak.org/ +[8]: https://www.bookstackapp.com/docs/ +[9]: https://www.youtube.com/c/BookStackApp +[10]: https://www.reddit.com/r/bookstack +[11]: https://github.com/BookStackApp/BookStack/issues +[12]: https://www.bookstackapp.com/support +[13]: https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site +[14]: https://www.bookstackapp.com/docs/admin/installation/ From a5180f78e3285c79e7d74967b8307e34e3b02083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 3 Jan 2023 21:51:15 +0800 Subject: [PATCH 2489/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230103.3=20=E2=AD=90=EF=B8=8F=20Whereis=20Command?= =?UTF-8?q?=20in=20Linux=20and=20BSD=20with=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...reis Command in Linux and BSD with Examples.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md new file mode 100644 index 0000000000..8c1d6978d0 --- /dev/null +++ b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md @@ -0,0 +1,152 @@ +[#]: subject: "Whereis Command in Linux and BSD with Examples" +[#]: via: "https://www.debugpoint.com/whereis-command-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Whereis Command in Linux and BSD with Examples +====== + +**Here’s a beginner’s guide on understanding whereis command in Linux & BSD with several examples.** + +![][1] + +_This article is part of the [Linux command][2] learning series._ + +### whereis command + +The `whereis` command is a command line program that helps you to find out the path or location of any binary executable, source file or manual page. + +Before we show you how to use `whereis` command, let’s look at the syntax. + +### Syntax + +Here’s the syntax for whereis command: + +``` +whereis [OPTIONS] FILE_NAME +``` + +The argument of whereis command is the program name or file name you want to search. The argument is mandatory. + +By default, it searches for the program in the path defined in environment variables such as HOME, USER, SHELL, etc. + +Let’s take a look at some examples. + +### Examples of whereis command in Linux and BSD + +A simple example of whereis command is below where I am trying to search firefox. In the output below, you can see the list of paths containing firefox files or executables displayed. + +``` +$ whereis firefox + +firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz +``` + +![Simple example of whereis command in Linux][3] + +The command with option -l displays the list of paths where it searches. For example: + +``` +$ whereis -l + +bin: /usr/bin +bin: /usr/sbin +bin: /usr/lib +bin: /usr/lib64 +bin: /etc +bin: /usr/games +bin: /usr/local/bin +bin: /usr/local/sbin +bin: /usr/local/etc +bin: /usr/local/lib +bin: /usr/local/games +``` + +If the whereis command doesn’t find anything, it only shows the argument’s name. For example, if I search nano in Linux where is it not installed, it outputs the following: + +``` +$ whereis nano +``` + +``` +nano: +``` + +You can always add multiple arguments if you want to search for more. For example below command searches for both bash and nano, and this is the output: + +``` +$ whereis bash nano + +bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz +nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +``` + +You can also search for specific file types, such as binaries, using -b option. The following command only tells you the binary paths of nano. + +``` +$ whereis -b nano + +nano: /usr/bin/nano /usr/share/nano +``` + +Similarly, the -s option searches for source files, and the -m option searches for manual pages. + +``` +$ whereis -m nano + +nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +``` + +You can also combine the above options for a more extensive search. For example, the following command searches for nano and firefox binary, manual pages and for bash, only manual pages. + +``` +$ whereis -bm nano firefox -m bash + +nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +firefox-m: +bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz +``` + +Here’s a summary of the options: + +| Option | Description | +| :- | :- | +| **-b** | Search only for binaries. | +| **-m** | Search only for manual sections. | +| **-s** | Search only for sources. | +| **-u** | Search for unusual entries. A file is said to be unusual if it does not have one entry of each requested type. Thus ‘whereis -m -u *’ asks for those files in the current directory which have no documentation. | +| **-B** | Change or otherwise limit the places where whereis searches for binaries. | +| **-M** | Change or otherwise limit the places where whereis searches for manual sections. | +| **-S** | Change or otherwise limit the places where whereis searches for sources. | +| **-f** | Terminate the last directory list and signals the start of file names, and must be used when any of the -B, -M, or -S options are used. | + +### Closing Notes + +I hope this article helps you to understand whereis command and its basics. You can also read the[whereis man pages][4] to learn more. Let me know if you have any questions. + +**This article is part of the [Linux command][2] learning series**. + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][5] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/whereis-command-linux/ + +作者:[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/2023/01/whereis-head.jpg +[2]: https://www.debugpoint.com/category/linux-commands +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg +[4]: https://linux.die.net/man/1/whereis +[5]: https://floss.social/@debugpoint From 6e643d6c47f5705d96dd0b4433f967764a31b9cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 3 Jan 2023 21:51:53 +0800 Subject: [PATCH 2490/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230102.1=20=E2=AD=90=EF=B8=8F=20who=20Command=20in?= =?UTF-8?q?=20Linux=20Explanation=20with=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Command in Linux Explanation with Examples.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md new file mode 100644 index 0000000000..71a4a4c1a0 --- /dev/null +++ b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md @@ -0,0 +1,138 @@ +[#]: subject: "who Command in Linux: Explanation with Examples" +[#]: via: "https://www.debugpoint.com/who-command-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +who Command in Linux: Explanation with Examples +====== + +**Here’s a beginner’s guide on understanding who command in Linux with several examples.** + +_This article is part of the [Linux command][1] learning series._ + +### who command + +The “who” command in Linux is used to display information about users who are currently logged in to the system. It shows the user’s login name, the terminal from which the user is logged in, the time at which the user logged in, and the remote hostname (if applicable). + +#### Syntax + +Here is the basic syntax for the “who” command: + +``` +who [OPTION]... [ FILE | ARG1 ARG2 ] +``` + +### Example of various who command and switches + +By default, “who” reads the file `/var/run/utmp`, which contains information about users who are currently logged in. If no options are specified, it displays each user’s login name, terminal, and time of login. + +``` +who +``` + +It gives the following output. As you can see it shows the login name=debugpoint, terminal id tty2 and the date and time of the login. + +``` +debugpoint tty2 2023-01-01 11:22 (tty2) +``` + +![who command - default example][2] + +However, if you run the above command in a guest virtual machine, you should see the same but the terminal id would be the x11 server display name i.e. :0. + +``` +❯ whodebugpoint :0 2023-01-01 23:36 (:0) +``` + +To show the username of the current user and information, use below: + +``` +whoami +``` + +View the last system boot time using the -b option: + +``` +❯ who -bsystem boot 2023-01-01 23:36 +``` + +Display the count of users logged in the current system: + +``` +❯ who -qdebugpointusers=1 +``` + +All the above command when paired with -H option, you get a better info with a header line, like below: + +``` +who -H + +NAME LINE TIME COMMENT +debugpoint tty2 2023-01-01 11:22 (tty2) +``` + +If you want to display all the information related to who command in Linux, use the option -a: + +``` +who -aH + +NAME LINE TIME IDLE PID COMMENT EXIT +system boot 2023-01-01 11:19 +run-level 5 2023-01-01 11:19 +debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2) +``` + +As always, you can save the output of the who command to any file using the redirect as below: + +``` +who > user_details.txt +``` + +#### Example summary of who command options + +Here are some who command examples and their explanation: + +Here are some options that can be used with the “who” command: + +- `-a`: Display the hostname, time of login, and processes for each user +- `-b`: Display the time of the last system boot +- `-d`: Display dead processes (processes that have terminated but have not been removed from the utmp file) +- `-H`: Display a header line +- `-l`: Display login processes in long format +- `-m`: Display only the name and line of the user who is logged in on the terminal specified by `ARG1 ARG2` +- `-q`: Display a count of logged in users +- `-u`: Display information about users who have processes that are not detached +- `-w`: Display information about users who are logged in, in the same format as the utmp file + +### Closing Notes + +I hope this article helps you to understand who command and its basics. You can also read the [who man pages][3] to learn more. Let me know if you have any questions. + +**This article is part of the [Linux command][1] learning series**. + +[Next:How to Force Auto Dark Mode in Chrome and Chromium][4] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][5] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/who-command-linux/ + +作者:[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/category/linux-commands +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg +[3]: https://man7.org/linux/man-pages/man1/who.1.html +[4]: https://www.debugpoint.com/chrome-dark-mode/ +[5]: https://floss.social/@debugpoint From 843a7da11a1bf63e38907c5e5c130e95599aec8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 3 Jan 2023 21:52:22 +0800 Subject: [PATCH 2491/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230102.2=20=E2=AD=90=EF=B8=8F=20Colorblind=20Filte?= =?UTF-8?q?rs=20GNOME=20Extension=20to=20help=20Colorblind=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rs GNOME Extension to help Colorblind Users.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md diff --git a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md new file mode 100644 index 0000000000..cd48adc303 --- /dev/null +++ b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -0,0 +1,106 @@ +[#]: subject: "Colorblind Filters: GNOME Extension to help Colorblind Users" +[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Colorblind Filters: GNOME Extension to help Colorblind Users +====== + +**A nice GNOME Extension – Colorblind Filters, brings many options for color-blind users.** + +Accessibility is a critical aspect of computing and operating systems. It includes well-managed settings for vision impairment, color blind and many other health symptoms. Popular Linux desktop environments such as GNOME and KDE Plasma feature accessibility settings to help all those scenarios. + +Thanks to the GNOME Extensions ecosystem, a huge number of specialised extensions are available to aid those users. One of the extensions I came across is [“Colorblind Filters”][1]. + +### Colorblind Filters – GNOME Extension + +As per Wikipedia, _“Colour blindness usually involves the inability to distinguish between shades of red and green. There is no treatment for inherited colour blindness. If colour blindness is caused by another condition, treating the underlying cause can help.”_. + +So, it’s important that you have options to tweak settings on your Linux desktop. + +#### Set up extensions and flatpak + +First, make sure you have Flatpak and GNOME Extensions enabled. And the Extensions manager is installed. You may refer to this detailed guide on how to [set up flatpak][2] & enable [GNOME extensions][3], Or run the following commands (for Ubuntu, Linux Mint, etc.) from the terminal. + +``` +sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +Fedora users, use the below commands. + +``` +sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +Once done, install the Extension Manager: + +``` +flatpak install com.mattjakeman.ExtensionManager +``` + +#### Install the Extension + +Open the extension manager from the application menu. Search for “colorblind”. And install the extension (see the below image). + +![Install the extension][4] + +After installation, you can see a small eye icon on the system tray. You can click on it to enable the pre-defined color filters. + +![Colorblind Filters extension tray icon][5] + +Right-click on the eye icon for more settings. This extension brings all the necessary customizations for colorblind collections, simulations and additional options. The following options are currently available: + +- Protanopia +- Deuteranopia +- Tritanopia + +- Corrections & Simulations (with high contrast) + +- Channel mixer for GBR and BRG +- Lightness inversion +- Color Inversion + +- Additional tweaks + +![Colorblind Filters - options][6] + +Use the one that suits you best for your eye. + +### Wrapping Up + +I think Apple’s macOS and iOS have implemented better accessibility than Windows or Linux. However, Linux Desktops are not far behind with these apps and extensions. Also, there are specialized Linux distributions such as “[Accessible Coconut][7]“, which has been built for specialized needs. + +I hope Colorblind gnome extension helps you with your day-to-day usage of Linux and GNOME desktops. + +Cheers. + +[Next:Top 10 Linux Distributions for Windows Users in 2023][8] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][9] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ + +作者:[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://extensions.gnome.org/extension/5589/colorblind-filters/ +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-extension.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg +[7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/ +[8]: https://www.debugpoint.com/best-linux-distributions-windows/ +[9]: https://floss.social/@debugpoint From a58e7149fb8be43ad173467bfa5c82e1a9f7e2ce Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 4 Jan 2023 08:43:17 +0800 Subject: [PATCH 2492/3123] translated --- ...Buzzing Noise Coming from Speakers in Linux.md | 130 ------------------ ...Buzzing Noise Coming from Speakers in Linux.md | 130 ++++++++++++++++++ 2 files changed, 130 insertions(+), 130 deletions(-) delete mode 100644 sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md create mode 100644 translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md diff --git a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md deleted file mode 100644 index 6a914d5ab3..0000000000 --- a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md +++ /dev/null @@ -1,130 +0,0 @@ -[#]: subject: "How I Fixed Buzzing Noise Coming from Speakers in Linux" -[#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How I Fixed Buzzing Noise Coming from Speakers in Linux -====== - -I used a laptop for a long time but only recently switched to a desktop setup for my remote work at It’s FOSS. - -I noticed a constant buzzing sound coming from the speakers. It was annoying and gave me headaches. I started out to fix the issue. It was quite interesting to know the root cause of the issue. - -I will share my experience of fixing the buzzing noise from speakers in Linux. I found it working with Ubuntu, Debian and Pop OS on the same hardware. - -One thing to consider is that you may have a serious hardware issue if this guide does not work for you. For most users, the given solution should get the job done. - -**Before you try the fix …** - -I have tried to make things easy to follow safely. You try the temporary fix and if it works, you make the changes permanent. However, it would be a good idea to make system snapshots with Timeshift. If you are easily panicked when things do not work, you can restore the system to the earlier state. - -Also, check your sound card. In my case, it was snd_hda_intel. For USB card, it could be snd_usb_audio. You have to change the commands according to your sound card. - -``` -cat /proc/asound/modules -``` - -### The reason behind the buzzing noise from speakers in Linux - -After combing through numerous forum posts and websites, I learned the root cause of the issue. It is because of capacitor discharge in the speakers. And it can be solved by turning off the power-saving setting of a sound card. - -By turning off power saving, you are allowing the system to charge those capacitors when they get discharged. It is similar to using a phone while charging constantly. - -And you can check whether the power-saving setting for the sound card is enabled on your system by using the given command: - -``` -cat /sys/module/snd_hda_intel/parameters/power_save -``` - -![power saving setting in sound card making buzzing sound in linux][1] - -And if you get 1 in output like mine, the power saving is turned on. So let’s have a look at the solution. - -Don’t worry. This will not affect your battery percentage drastically, as the shown method is only applied to the sound card. - -### Try fixing the buzzing noise issue (temporary) - -The reason why I included the temporary way is to identify whether the humming sound is being caused due to capacitor discharge or if there is any serious hardware problem going on. - -If this temporary solution works, you can go ahead with the permanent solution. - -The first step is to switch to the root user: - -``` -sudo su -``` - -And then, execute the given command, and it should stop the buzzing sound until the next boot: - -``` -echo 0 > /sys/module/snd_hda_intel/parameters/power_save -``` - -If you are using **a USB sound card**, you have to interchange `snd_hda_intel` with `snd_usb_audio` as given: - -``` -echo 0 > /sys/module/snd_usb_audio/parameters/power_save -``` - -If the above trick fixed the issue, you have to make things permanent. Otherwise, the changes will be lost when you next reboot your system. - -### Fixing the buzzing noise issue (permanently) - -Here, I’m going to make changes in kernel parameters. - -Change your working directory to /etc/modprobe.d: - -``` -cd /etc/modprobe.d -``` - -And now, create a new file named `audio_disable_powersave.conf` and open with the nano text editor using the given command: - -``` -sudo nano audio_disable_powersave.conf -``` - -And put the following lines in that file to turn off the power-saving setting in the sound card permanently: - -``` -options snd_hda_intel power_save=0 -``` - -![fix buzzing sound in linux][2] - -For **a USB sound card**, you can use `snd_usb_audio`: - -``` -options snd_usb_audio power_save=0 -``` - -Now, [save changes and exit the Nano text editor][3] by pressing Ctrl+X keys. Reboot your system, and you can enjoy a noise-free workspace. - -### Wrapping Up - -This guide explains the cause of the buzzing noise and how you can straightforwardly solve that issue. - -Again, you may have some other issue rather than discharging capacitors, so you should always try the temporary method. - -Let me know if you were able to fix the buzzing noise from speakers in Linux this way or not. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/buzzing-noise-speaker-linux - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png -[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png -[3]: https://linuxhandbook.com/nano-save-exit/ diff --git a/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md new file mode 100644 index 0000000000..6e2f08c773 --- /dev/null +++ b/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md @@ -0,0 +1,130 @@ +[#]: subject: "How I Fixed Buzzing Noise Coming from Speakers in Linux" +[#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我如何修复 Linux 中扬声器发出的嗡嗡声 +====== + +我使用笔记本电脑很长时间了,但最近才切换到桌面设置,以便在 It's FOSS 进行远程工作。 + +我注意到扬声器不断发出嗡嗡声。这很烦人,让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。 + +我将分享我在 Linux 中修复扬声器嗡嗡声的经验。我发现它可以在同一硬件上对 Ubuntu、Debian 和 Pop OS 都有效。 + +需要考虑的一件事是,如果本指南不适合你,你可能遇到了严重的硬件问题。对于大多数用户来说,给定的方案应该可以解决问题。 + +**在尝试修复之前** + +我试图让事情变得容易安全地遵循。你尝试临时修复,如果有效,则将更改永久化。但是,最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措,你可以将系统恢复到之前的状态。 + +另外,检查你的声卡。在我的例子中,它是 snd_hda_intel。对于 USB 卡,它可以是 snd_usb_audio。你必须根据你的声卡更改命令。 + +``` +cat /proc/asound/modules +``` + +### Linux 中扬声器发出嗡嗡声的原因 + +梳理了无数的论坛帖子和网站后,我了解了问题的根本原因。这是因为扬声器中的电容放电。它可以通过关闭声卡的省电设置来解决。 + +通过关闭省电,你允许系统在这些电容放电时为其充电。这类似于在不断充电时使用电话。 + +你可以使用给定的命令检查你的系统是否启用了声卡的省电设置: + +``` +cat /sys/module/snd_hda_intel/parameters/power_save +``` + +![power saving setting in sound card making buzzing sound in linux][1] + +如果你像我一样输出是 1,那么省电功能已打开。因此,让我们看一下方案。 + +不用担心。这不会显著影响你的电池百分比,因为所示方法仅适用于声卡。 + +### 尝试修复嗡嗡声问题(临时) + +我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的还是是否存在任何严重的硬件问题。 + +如果此临时方案有效,你可以继续使用永久方案。 + +第一步是切换到 root 用户: + +``` +sudo su +``` + +然后,执行给定的命令,它应该停止嗡嗡声直到下次启动: + +``` +echo 0 > /sys/module/snd_hda_intel/parameters/power_save +``` + +如果你使用的是 **USB 声卡**,则必须将 `snd_hda_intel` 与 `snd_usb_audio` 互换,如下所示: + +``` +echo 0 > /sys/module/snd_usb_audio/parameters/power_save +``` + +如果上述技巧解决了问题,那么你必须使变更永久化。否则,下次重启系统时更改将丢失。 + +### 修复嗡嗡声问题(永久) + +在这里,我将对内核参数进行更改。 + +将你的工作目录更改为 /etc/modprobe.d: + +``` +cd /etc/modprobe.d +``` + +现在,创建一个名为 `audio_disable_powersave.conf` 的新文件,并使用给定命令使用 nano 文本编辑器打开: + +``` +sudo nano audio_disable_powersave.conf +``` + +并在该文件中放入以下行以永久关闭声卡中的省电设置: + +``` +options snd_hda_intel power_save=0 +``` + +![fix buzzing sound in linux][2] + +对于 **USB 声卡**,你可以使用 `snd_usb_audio`: + +``` +options snd_usb_audio power_save=0 +``` + +现在,[保存更改并退出 Nano 文本编辑器][3]并按 Ctrl+X 键。重启你的系统,你就可以享受无噪音的工作空间。 + +### 总结 + +本指南解释了嗡嗡声的原因以及如何直接解决该问题。 + +同样,除了电容放电之外,你可能还有其他问题,因此你应该始终尝试临时方法。 + +让我知道你是否能够以这种方式解决 Linux 中扬声器发出的嗡嗡声。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/buzzing-noise-speaker-linux + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png +[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png +[3]: https://linuxhandbook.com/nano-save-exit/ From d41696aec84aee02ee2def8396921b0a12af0e66 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 4 Jan 2023 08:47:37 +0800 Subject: [PATCH 2493/3123] translating --- ...01.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md index ab1be90f2f..9a30bf0a2f 100644 --- a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md +++ b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/firefox-esr-ubuntu/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 1d4becfefd43c5986af41f4370cbd90eebcb0426 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 4 Jan 2023 10:54:48 +0800 Subject: [PATCH 2494/3123] ALL @wxy https://linux.cn/article-15410-1.html --- ...se Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 87 +++++++++++++++++++ ...se Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 87 ------------------- 2 files changed, 87 insertions(+), 87 deletions(-) create mode 100644 published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md delete mode 100644 sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md diff --git a/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md new file mode 100644 index 0000000000..173a76f9e9 --- /dev/null +++ b/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md @@ -0,0 +1,87 @@ +[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish" +[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15410-1.html" + +Ultramarine Linux 37 版本发布 +====== + +![][1] + +> Ultramarine Linux 的新版本来了。Ultramarine Linux 37 带有新的自定义软件仓库、KDE Plasma 特色版等等。 + +如果你不知道,Ultramarine Linux 是一个基于 Fedora 的发行版,提供了 Budgie、Pantheon、GNOME 等桌面环境。这个发行版通过这些令人赞叹的桌面环境给你提供了最好的 Fedora 体验。 + +最近,这个小项目被 [FyraLabs][2] 收购,后者是 PhotonBrowser 和 tauOS 背后的公司。而这使得 Ultramarine 项目有了必要的人力和资金来继续建设他们的发行版。 + +自 Fedora 37 发布以来,该团队一直致力于重件当前版本,这包括采用新的基础设施和 CI/CD 管道迁移。终于,Ultramarine Linux 37 登场了。 + +那么,它有什么新东西呢? + +### Ultramarine Linux 37 的新功能 + +自从被 Fyralabs 收购后,该团队升级并迁移到用于自动化 CI/CD 构建的 GitHub Actions。Ultramarine 自己的软件仓库用于分发其精心组织的软件包(例如 Pantheon 桌面),它在这个版本中会发生变化,并转移到 FyraLabs 的基础设施上。 + +因此,如果你正在运行 Ultramarine 36 版本,它可能无法正常工作。你最好重新安装这个版本,因为显然没有从 36 版到 37 版的升级路径。 + +此外,Ultramarine 37 为 Fedora 软件包引入了一个名为 [Terra][3] 的滚动仓库,其中包括数百个 Fedora 不提供的应用程序。你可以认为它类似于 [RPM Fusion][4],尽管有所不同。 + +要了解更多,请访问 [本页][3] 或从命令行添加以下软件仓库: + +``` +sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo +``` + +事实上,这开启了一种可能性,因为你也可以尝试在 Fedora Linux 中谨慎地使用它。如果上述软件仓库能在普通的 Fedora 安装中开箱即用,那就更棒了。 + +在上述变化的基础上,Ultramarine Linux 37 首次引入了 KDE Plasma 作为官方版本。KDE Plasma 特色版带来了含有 Latte Dock 和 Lightly Qt 主题的 Pop OS 风格外观。 + +![Ultramarine Linux 37 具有独特的 Pop OS 风格的 KDE Plasma 主题][5] + +Ultramarine Linux 37 也放弃了 Cutefish 桌面,因为它目前正处于 [混乱的开发状态,没有可见的路线图][6]。这是该团队的一个很好的决定,因为打包一个已经停止的项目是没有意义的。 + +Budgie 桌面旗舰版使用上游的 Fedora 软件包,有更多的默认应用程序。最近,Fedora Linux 删除了对 elementary OS 的 Pantheon 桌面的支持,很遗憾。感谢 Ultramarine Linux 开发者,你仍然可以体验它,因为它已经被转移到新的 Terra 软件仓库中。 + +你应该庆幸,Ultramarine Linux 是唯一一个的基于 Fedora 的支持令人赞叹的 Pantheon 桌面的发行版。 + +最后,Ultramarine Linux 37 的核心基于 [Fedora 37][7],采用 Linux 主线内核 6.0。因此,所有更新的软件包和工具链都在这个版本中。 + +所以,这就是关于这个版本的总结。请继续关注几天后对这个版本的官方点评。如果有兴趣,你可以在这里阅读之前的版本(36)的评论。 + +> **[Ultramarine Linux:带有 Budgie、Cutefish 和 Pantheon 桌面的终极 Fedora 特色版][8]** + +### 下载和升级 + +由于没有升级路径,建议你对该版本进行全新安装。你可以在下面下载各个桌面环境的 ISO 文件。 + +> **[下载 Ultramarine Linux 37][9]** + +参考自:[发布公告][10]。 + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/ultramarine-linux-37-release/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg +[2]: https://twitter.com/UltramarineProj/status/1579991853478182914 +[3]: https://terra.fyralabs.com/ +[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ +[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg +[6]: https://www.debugpoint.com/cutefish-development-restarts/ +[7]: https://debugpointnews.com/fedora-37-release-accouncement/ +[8]: https://www.debugpoint.com/ultramarine-linux-36/ +[9]: https://repos.fyralabs.com/isos/ultramarine/37/ +[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0 diff --git a/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md deleted file mode 100644 index c5983ce0ad..0000000000 --- a/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md +++ /dev/null @@ -1,87 +0,0 @@ -[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish" -[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish -====== - -![][1] - -**A new release of Ultramarine Linux is here: Ultramarine Linux 37 with new custom repo, KDE Plasma flavour and goodies.** - -If you are unaware, Ultramarine Linux is a Fedora-based distribution which offers Budgie, Pantheon, GNOME and other desktops. This distro gives you the best Fedora experience with this awesome desktop environment. - -Recently, this small project is [acquired by FyraLabs][2], the company behind PhotonBrowser and tauOS. And this enables the Ultramarine project with the necessary manpower and funding for infrastructure to continue building the distro. - -Since the Fedora 37 release, the team has been working on rebasing the current release, which includes adopting the new infrastructure and CI/CD pipeline migration. And a final Ultramarine Linux 37 is here. - -So, what’s new? - -### Ultramarine Linux 37 Release: New Features - -Since the Fyralabs acquisition, the team upgraded and migrated to GitHub Actions for automated CI/CD builds. Ultramarine’s own repo, which was used to distribute curated packages (for example, Pantheon desktop), is changing in this release and moving to FyraLabs infrastructure. - -Hence if you are running the Ultramarine 36 version, it may not work correctly. It’s best if you do a fresh installation of this version, as obviously, there is no upgrade path from the 36 to 37 version. - -Furthermore, Ultramarine 37 is introducing a rolling repo called “[Terra][3]” for Fedora packages, including hundreds of applications that Fedora doesn’t ship. You may think of it as similar to [RPM Fusion][4], albeit different. - -To learn more, visit [this page][3] or add the following repo from the command line. - -``` -sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo -``` - -In fact, this opens up a possibility as you may also try to use it in Fedora Linux with caution. It will be cool if the above repo works out of the box in a vanilla Fedora install. - -On top of the above changes, Ultramarine Linux 37 introduces KDE Plasma as an official spin for the first time. The KDE Plasma flavour brings a Pop OS style look with Latte Dock and Lightly Qt theme. - -![Ultramarine Linux 37 with unique Pop OS style KDE Plasma Theme][5] - -Ultramarine Linux 37 also drops the Cutefish desktop, which is currently in a [confused state of development with no visible roadmap][6]. It’s a good decision from the team since there is no point in packaging a halted project. - -The Budgie desktop flagship version uses upstream Fedora packages with more default applications. Recently, Fedora Linux removed elementary OS’s Pantheon desktop support, unfortunately. Thanks to Ultramarine Linux devs, you can still experience it as it has been moved to the new Terra repo. - -You should be glad that Ultramarine Linux is the only Fedora-based distribution supporting the great Pantheon desktop. - -Finally, at its core, Ultramarine Linux 37 is based on [Fedora 37][7] and features Linux mainline Kernel 6.0. So, all the updated packages & toolchains are current in this release. - -So, that’s about the summary of this release. Stay tuned for the official review of this version in a few days. If interested, you might want to read the prior version (36) review here: - -> [Ultramarine Linux: Ultimate Fedora Spin with Budgie, Cutefish and Pantheon][8] - -### Download and Upgrade - -Since there is no upgrade path, it is recommended that you should do a fresh installation of this version. You can download the ISO files for the respective desktop flavours below. - -[Download Ultramarine Linux 37][9] - -Via [release announcement][10] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/ultramarine-linux-37-release/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg -[2]: https://twitter.com/UltramarineProj/status/1579991853478182914 -[3]: https://terra.fyralabs.com/ -[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/ -[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg -[6]: https://www.debugpoint.com/cutefish-development-restarts/ -[7]: https://debugpointnews.com/fedora-37-release-accouncement/ -[8]: https://www.debugpoint.com/ultramarine-linux-36/ -[9]: https://repos.fyralabs.com/isos/ultramarine/37/ -[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0 From c5ea2e25d3e59a34913f9114f38fdab19177b3a4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 4 Jan 2023 17:32:37 +0800 Subject: [PATCH 2495/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow https://linux.cn/article-15411-1.html 翻译的很用心~ --- ...s for measuring your open source software usage.md | 150 ++++++++++++++++++ ...s for measuring your open source software usage.md | 145 ----------------- 2 files changed, 150 insertions(+), 145 deletions(-) create mode 100644 published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md delete mode 100644 translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md diff --git a/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md new file mode 100644 index 0000000000..cdc1ab5063 --- /dev/null +++ b/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md @@ -0,0 +1,150 @@ +[#]: subject: "8 ideas for measuring your open source software usage" +[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" +[#]: author: "Georg Link https://opensource.com/users/georglink" +[#]: collector: "lkxed" +[#]: translator: "CanYellow" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15411-1.html" + +衡量你的开源软件使用情况的 8 个方法 +====== + +![][0] + +> 想知道如何为你的开源软件项目收集使用指标?考虑一下使用这些替代方案的利弊。 + +我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户量和知名度来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装,以及有多少人生活接触过它。 + +但简而言之,我们尚无法直接回答上述问题。 + +如果你想要寻找一个明确的解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。 + +好消息是,有一些近似的和替代指标至少能够部分地满足你对软件使用情况了解的渴求。本文探讨了这些替代方案以及它们的优点和缺点。 + +### 下载量 + +当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入我脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人的印象是 Firefox 是一个流行的浏览器,在一段时间内确实如此。 + +然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次(或许是几百次)的下载次数,因为那是一个人。 + +下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到 U 盘上,然后安装到数百台设备上。 + +下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是遇到了问题而放弃了它。 + +对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标: + +- 项目官网 +- 包管理器,比如 npm、PyPi 和 Maven +- 代码仓库,如 GitHub、GitLab、Gitee 等 + +你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式(参见 [《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括: + +- 从代码仓库克隆的数量,比如 GitHub、GitLab 和 Gitee +- 从官网下载的归档文件(tar、zip)的数量 +- 通过像 npm、PyPi 和 Maven 这样的包管理器下载的源代码数量 + +源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码,并将他们的构建管道配置为每次构建都克隆你的仓库。再想象一下,一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。 + +> **[相关阅读:跟踪你的开源社区的 5 个指标][2]** + +总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的指征。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以合理地假定广告推动了更多人下载该软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者特定语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。 + +### 议题 + +作为一个开源项目,你可能有一个议题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提议者很可能已经使用过你的软件了。作为一名用户,他可能发现了一个漏洞或者发现了对一个新功能的需求。 + +很明显,大多数用户不会执行额外的步骤来提交议题。提议者是我们的忠实用户,我们对他们表示感谢。此外,通过提出议题,他们已经成为了非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每 10000 名用户中,可能有 100 名提议者,以及 1 名代码贡献者。当然取决于用户类型,上述比例可能有出入。 + +回到指标问题,你可以将提议者数量作为评估使用量的下界。相关的指标包括: + +- 提议者数量 +- 活跃提议者的数量(在过去 6 个月内提出议题的提议者) +- 同时有代码贡献的提议者的数量 +- 尚未解决的议题的数量 +- 对议题发布的评论数量 + +### 邮件列表、论坛和问答网站 + +很多开源项目都拥有用户邮件列表、论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括: + +- 用户邮件列表的订阅量 +- 论坛用户的数量 +- 问题的数量 +- 答案的数量 +- 发布信息的数量 + +### 上报功能 + +为了获得精确的用户数量,一个方案是让软件在使用时上报信息。 + +这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。 + +负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用遥测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许这种使用信息的分享;但对于一些软件,因为希望开发人员在长期内将软件优化得更好,我愿意这样做。 + +### 星标与复刻 + +星标与复刻是如 GitHub、GitLab、Gitee 等社交化编程平台的功能。这些平台上的用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标,以跟踪感兴趣的项目,和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。 + +在社交化编程平台上的复刻Fork是将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改,并将修改通过拉取请求pull request(PR)的方式提交审核。复刻比星标更能反映软件社区的规模。开发者也可能为了保存一份代码副本而克隆一个项目,以便在原始仓库消失后他们仍能访问代码。因为复刻功能在代码贡献工作流中的应用,复刻量是衡量开发社区的良好指标。复刻量通常也不反映非开发人员的使用,因为非开发人员一般不创建复刻。 + +### 社交媒体 + +包括 Facebook、Instagram、LinkIn、Reddit、Twtter 等社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新,指出贡献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。 + +我在犹豫是否建议关注以下指标,因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动而关注它,但并不实际使用它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括: + +- 关注者与订阅者的数量 +- 消息的数量 +- 活跃的消息作者的数量 +- 喜欢、分享、回复以及其他交互的数量 + +### 网站分析与文档 + +网站流量也是一个有用的指标。这一指标主要受到你的服务范围以及市场营销活动影响,而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大致随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的普遍兴趣,并进一步通过观察文档的访问者来观察用户风向。这些指标包括: + +- 网站访问者数量 +- 文档访问者的数量 +- 访问者在你的网站与文档上所花的时间 + +### 活动 + +活动的指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要想要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动这可能都很有趣。当然,你如何推广你的活动在很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交的材料与参会者注册的增加来表征软件受欢迎程度与用户群的增加。 + +你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要关注你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦于开源项目的更新与发布,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。 + +你可以考虑如下指标: + +- 以你的项目为中心的活动的出席人数 +- 提交到以你的项目为中心的活动的演讲数量 +- 以你的项目为中心的演讲的出席人数 + +### 关于估算开源软件使用的结论 + +正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有办法在多个具有共性的开源项目中比较同一组指标,例如类似的功能、强大的相互依赖性、在同一基础设施上托管,以及其他特征,你就可以提升你对用户行为基线的感知。 + +需要注意的是,在这篇概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分而被间接使用的严重影响,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。 + +最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最好的做法是经常一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。 + +感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢 CHAOSS 社区的成员审阅并帮助优化本文。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/open-source-usage-metrics + +作者:[Georg Link, Sophia Vargas][a] +选题:[lkxed][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/georglink +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/18/5/metrics-project-success +[2]: https://opensource.com/article/22/11/community-metrics + +[T1]: https://fosdem.org/ +[T2]: https://chaoss.community +[0]: https://img.linux.net.cn/data/attachment/album/202301/04/173129vmnstoxnzmjlnsxw.jpg \ No newline at end of file diff --git a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md deleted file mode 100644 index f3efee7126..0000000000 --- a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ /dev/null @@ -1,145 +0,0 @@ -[#]: subject: "8 ideas for measuring your open source software usage" -[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" -[#]: author: "Georg Link https://opensource.com/users/georglink" -[#]: collector: "lkxed" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -衡量你开源软件使用的8个方法 -====== - -我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户群体和用户认知来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装以及触发了多少次实例。 - -长话短说,我们尚无法直接回答上述问题。 - -如果你想要寻找一个终极解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。 - -好消息是,有一些近似的和可选的指标至少能够部分地满足你对软件使用知识的渴求。本文探讨了这些替代方案以及他们的优点和缺点。 - -### 下载 - -当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人留下 Firefox 在一段时间内是一个流行的浏览器。 - -然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次由上述人员带来的下载次数。 - -下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到闪存上,然后安装到数百台设备上。 - -下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是运行时遇到了问题而遗弃了软件。 - -对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标: - -- 项目官网 -- 包管理器,比如 npm,PyPi 和 Maven -- 代码仓库,如 Github,GitLab,Gitee 等 - -你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式 (见于[《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括: - -- 从代码仓库克隆的数量,比如 GitHub,GitLab 和 Gitee -- 从官网下载的归档文件 (tar,zip) 的数量 -- 通过像 npm,PyPi 和 Maven 这样的包管理器下载的源代码数量 - -源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码并已经配置好了他们的构建流程来总是在每一次构建中都克隆你的版本库。再想象一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。 - -**[相关阅读[跟踪你的开源社区的5个指标][2]]** - -总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的代表。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以公正的假定广告推动了更多人下载软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者专属语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。 - -### 提问 - -作为一个开源项目,你可能有一个问题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提问者可能使用过你的软件。作为一名用户,他可能发现了一个漏洞或者确定了对新功能的需求。 - -很明显,大多数用户不会执行额外的步骤来提交问题。提问者是我们的忠实用户,我们对他们表示感谢。此外,通过提出问题,他们成为非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每10000名用户中,可能有100名提问者以及1名代码贡献者,当然取决于用户类型,上述比例可能有出入。 - -回到指标问题,你可以将提问者数量作为评估使用量的下界。相关的指标包括: - -- 提问者数量 -- 活跃提问者的数量 (在过去6个月内提出问题的提问者) -- 同时有代码贡献的提问者的数量 -- 尚未解决的问题的数量 -- 发布的问题评论的数量 - -### 邮件列表,论坛和问答网站 - -很多开源项目都拥有用户邮件列表,论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括: - -- 用户邮件列表的订阅量 -- 论坛用户的数量 -- 问题的数量 -- 答案的数量 -- 发布信息的数量 - -### 上报功能 - -为了获得精确的用户数量,一个方案是让软件在使用时上报信息。 - -这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。 - -负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用检测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许使用信息分享;但对于一些软件,因为希望开发人员从长远来看会将软件优化得更好,我愿意这样做。 - -### 加星标与克隆 - -加星标与克隆是如 GitHub 、 GitLab 、 Gitee 等社交化编程平台的功能。平台用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标以保持对感兴趣的项目的跟踪和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。 - -在社交化编程平台上的克隆 (Forks) 即将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改并将修改通过拉取请求 (pull request) 的方式提交审核。克隆比星标更能反映软件社区的大小。开发者也可能为了保存一份代码副本而克隆一个项目以便在原始仓库消失后他们仍能访问代码。因为克隆功能在代码贡献工作流中的应用,克隆量是衡量开发社区的良好指标。克隆量通常也不反映非开发人员的使用,因为非开发人员一般不创建克隆。 - -### 社交媒体 - -包括 Facebook、Instagram、LinkIn、Reddit、Twtter等的社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新、突出共献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。 - -我在犹豫是否建议关注指标因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动并想要在不实际使用的情况下关注它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括: - -- 关注与订阅的数量 -- 消息的数量 -- 活跃的消息作者的数量 -- 喜欢、分享、回复以及其他交互的数量 - -### 网站分析与文档 - -网站流量也是一个有用的指标。这一指标主要由你的服务范围以及市场营销活动影响而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大概随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的一般性的兴趣并进一步通过观察文档的访问者观察用户风向。这些指标包括: - -- 网站访问者数量 -- 文档访问者的数量 -- 访问者在你的网站与文档上所花的时间 - -### 活动 - -活动指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动中这可能都很有趣。当然,你如何推广你的活动可以很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交与参会者注册的增加表征软件受欢迎程度与用户群的增加。 - -你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要聚焦你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦开源项目的更新与公告,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。 - -你可以考虑如下指标: - -- 以你的项目为中心的活动的出席人数 -- 提交到以你的项目为中心的活动的演讲数量 -- 以你的项目为中心的演讲的出席人数 - -### 关于估算开源软件使用的结论 - -正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有手段比较多个具有共性——比如相似的功能、强大的相互依赖以及由同一基金会托管和其他特征——的开源项目的同一组指标,你就可以提升你对用户行为基线的感知。 - -需要注意的是,在本概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分被间接使用也会严重影响软件使用与行为,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。 - -最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最佳实践是总是一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。 - -我们感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢审阅并帮助优化本文的 CHAOSS 社区的成员。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-usage-metrics - -作者:[Georg Link][a] -选题:[lkxed][b] -译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/georglink -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/18/5/metrics-project-success -[2]: https://opensource.com/article/22/11/community-metrics - -[T1]: https://fosdem.org/ -[T2]: https://chaoss.community From e9648a8b4ce905942f1be747da9ea0391426057c Mon Sep 17 00:00:00 2001 From: CanYellow Date: Wed, 4 Jan 2023 17:51:09 +0800 Subject: [PATCH 2496/3123] Update 20190331 Codecademy vs. The BBC Micro.md --- sources/talk/20190331 Codecademy vs. The BBC Micro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index bb5ee313c8..197795acea 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: "yesimmia" +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 35e2d4ced1f5d57e5ae396d2f5faf02cc2bc25a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 4 Jan 2023 19:41:51 +0800 Subject: [PATCH 2497/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230104.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Learn=20to=20code=20with=20my=20retro=20co?= =?UTF-8?q?mputer=20program.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Learn to code with my retro computer program.md | 210 ++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md diff --git a/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md b/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md new file mode 100644 index 0000000000..3bb59671ba --- /dev/null +++ b/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md @@ -0,0 +1,210 @@ +[#]: subject: "Learn to code with my retro computer program" +[#]: via: "https://opensource.com/article/23/1/learn-machine-language-retro-computer" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn to code with my retro computer program +====== + +I teach university courses part-time, including a class about general computing topics, open to all majors. This is an introductory course that teaches students about how technology works, to remove the mystery around computing. + +While not a computer science course, one section of this course covers computer programming. I usually talk about programming in very abstract terms, so I don't lose my audience. But this year, I wanted my students to do some "hands-on" programming in an "old school" way. At the same time, I wanted to keep it simple, so everyone could follow along. + +I like to structure my lessons to show how you got from "there" to "here." Ideally, I would let my students learn how to write a simple program. Then I would pick it up from there to show how modern programming allows developers to create more complex programs. I decided to try an unconventional approach — teach the students about the ultimate in low-level programming: machine language. + +### Machine language programming + +Early personal computers like the Apple II (1977), TRS-80 (1977), and IBM PC (1981) let users enter programs with a keyboard, and displayed results on a screen. But computers didn't always come with a screen and keyboard. + +The Altair 8800 and IMSAI 8080 (both made in 1975) required users to enter a program using "switches and lights" on a panel. You would enter an instruction in machine language, using a bank of switches, and the machine would light up the ones and zeros of each binary instruction using LEDs. + +![Image of an Altair 8800 Computer.][1] + +Programming these early machines required knowing the machine language instructions, called opcodes, short for operation codes, to perform basic operations like adding two numbers or storing a value into the computer's memory. I wanted to show my students how programmers would enter a series of instructions and memory addresses by hand, using the switches and lights. + +However, using an actual Altair 8800 would be too much overhead in this class. I needed something simple that any beginner-level student could grasp. Ideally, I hoped to find a simple "hobby" retro computer that worked similarly to the Altair 8800, but I couldn't find a suitable "Altair-like" device for less than $100. I found several "Altair" software emulators, but they faithfully reproduce the Altair 8800 opcodes, and that was too much for my needs. + +I decided to write my own "educational" retro computer. I call it the Toy CPU. You can find it on my [GitHub repository][2], including several releases to play with. Version 1 was an experimental prototype that ran on [FreeDOS][3]. Version 2 was an updated prototype that ran on Linux with [ncurses][4]. Version 3 is a FreeDOS program that runs in graphics mode. + +### Programming the Toy CPU + +The Toy CPU is a very simple retro computer. Sporting only 256 bytes of memory and a minimal instruction set, the Toy CPU aims for simplicity while replicating the "switches and lights" programming model. The interface mimics the Altair 8800, with a series of eight LEDs for the counter (the "line number" for the program), instruction, accumulator (internal memory used for temporary data), and status. + +When you start the Toy CPU, it simulates "booting" by clearing the memory. While the Toy CPU is starting up, it also displays `INI` ("initialize") in the status lights at the bottom-right of the screen. The `PWR` ("power") light indicates the Toy CPU has been turned on. + +![Image of start screen for the toy cpu.][5] + +When the Toy CPU is ready for you to enter a program, it indicates `INP` ("input" mode) via the status lights, and starts you at counter 0 in the program. Programs for the Toy CPU always start at counter 0. + +In "input" mode, use the up and down arrow keys to show the different program counters, and press Enter to edit the instruction at the current counter. When you enter "edit" mode, the Toy CPU shows `EDT` ("edit" mode) on the status lights. + +![Image of the toy CPU editing screen.][6] + +The Toy CPU has a cheat sheet that's "taped" to the front of the display. This lists the different opcodes the Toy CPU can process: + +- `00000000` (`STOP`): Stop program execution. +- `00000001` (`RIGHT`): Shift the bits in the accumulator to the right by one position. The value 00000010 becomes 00000001, and 00000001 becomes 00000000. +- `00000010` (`LEFT`): Shift the bits in the accumulator to the left by one position. The value 01000000 becomes 10000000, and 10000000 becomes 00000000. +- `00001111` (`NOT`): Binary NOT the accumulator. For example, the value 10001000 becomes 01110111. +- `00010001` (`AND`): Binary AND the accumulator with the value stored at an address. The address is stored in the next counter. +- `00010010` (`OR`): Binary OR the accumulator with the value stored at an address. +- `00010011` (`XOR`): Binary XOR (“exclusive or”) the accumulator with the value stored at an address. +- `00010100` (`LOAD`): Load (copy) the value from an address into the accumulator. +- `00010101` (`STORE`): Store (copy) the value in the accumulator into an address. +- `00010110` (`ADD`): Add the value stored at an address to the accumulator. +- `00010111` (`SUB`): Subtract the value stored at an address from the accumulator. +- `00011000` (`GOTO`): Go to (jump to) a counter address. +- `00011001` (`IFZERO`): If the accumulator is zero, go to (jump to) a counter address. +- `10000000` (`NOP`): No operation; safely ignored. + +When in "edit" mode, use the left and right arrow keys to select a bit in the opcode, and press `Space`to flip the value between off (0) and on (1). When you are done editing, press `Enter`to go back to "input" mode. + +![Image of the toy CPU input mode screen.][7] + +### A sample program + +I want to explore the Toy CPU by entering a short program that adds two values, and stores the result in the Toy's memory. Effectively, this performs the arithmetic operation **A+B=C**. To create this program, you only need a few opcodes: + +- `00010100` (`LOAD`): Load (copy) the value from an address into the accumulator. +- `00010110` (`ADD`): Add the value stored at an address to the accumulator. +- `00010101` (`STORE`): Store (copy) the value in the accumulator into an address. +- `00000000` (`STOP`): Stop program execution. + +The `LOAD`, `ADD`, and `STORE` instructions require a memory address, which will always be in the next counter location. For example, the first two instructions of the program are: + +``` +counter 0: 00010100 +counter 1: some memory address where the first value A is stored +``` + +The instruction in counter 0 is the `LOAD`operation, and the value in counter 1 is the memory address where you have stored some value. The two instructions together copy a value from memory into the Toy's accumulator, where you can work on the value. + +Having loaded a number **A** into the accumulator, you need to add the value **B** to it. You can do that with these two instructions: + +``` +counter 2: 00010110 +counter 3: a memory address where the second value B is stored +``` + +Say that you loaded the value 1 (**A**) into the accumulator, then added the value 3 (**B**) to it. The accumulator will now have the value 4. Now you need to copy the value 4 into another memory address (**C**) with these two instructions: + +``` +counter 4: 00010101 +counter 5: a memory address (C) where we can save the new value +``` + +Having added the two values together, you can now end the program with this instruction: + +``` +counter 6: 00000000 +``` + +Any instructions after counter 6 are available for the program to use as stored memory. That means you can use the memory at counter 7 for the value **A**, the memory in counter 8 for the value **B**, and the memory at counter 9 for the stored value **C**. You need to enter these separately into the Toy: + +``` +counter 7: 00000001 (1) +counter 8: 00000011 (3) +counter 9: 00000000 (0, will be overwritten later) +``` + +Having figured out all the instructions and the memory locations for **A**, **B**, and **C**, you can now enter the full program into the Toy. This program adds the values 1 and 3 to get 4: + +``` +counter 0: 00010100 +counter 1: 00000111 (7) +counter 2: 00010110 +counter 3: 00001000 (8) +counter 4: 00010101 +counter 5: 00001001 (9) +counter 6: 00000000 +counter 7: 00000001 (1) +counter 8: 00000011 (3) +counter 9: 00000000 (0, will be overwritten later) +``` + +To run the program, press the `R` key when in "input" mode. The Toy CPU will show `RUN` ("run" mode) in the status lights, and execute your program starting at counter 0. + +The Toy has a significant delay built into it, so you can watch the Toy execute each step in the program. You should see the counter move from 00000000 (0) to 00000110 (6) as the program progresses. After counter 1, the program loads the value 1 from memory location 7, and the accumulator updates to 00000001 (1). After counter 3, the program will add the value 3 and update the accumulator to show 00000100 (4). The accumulator will remain that way until the program stores the value into memory location 9 after counter 5 then ends at counter 6. + +![Image of the Toy in RUN mode.][8] + +### Exploring machine language programming + +You can use the Toy to create other programs and further explore machine language programming. Test your creativity by writing these programs in machine language. + +### A program to flash the lights on the accumulator + +Can you light up the right four bits on the accumulator, then the left four bits, then all of the bits? You can write this program in one of two ways: + +A straightforward approach would be to load three values from different memory addresses, like this: + +``` +counter 0: LOAD +counter 1: "right" +counter 2: LOAD +counter 3: "left" +counter 4: LOAD +counter 5: "all" +counter 6: STOP +counter 7: 00001111 ("right") +counter 8: 11110000 ("left") +counter 9: 11111111 ("all") +``` + +Another way to write this program is to experiment with the NOT and OR binary operations. This results in a smaller program: + +``` +counter 0: LOAD +counter 1: "right" +counter 2: NOT +counter 3: OR +counter 4: "right" +counter 5: STOP +counter 6: 00001111 ("right") +``` + +### Count down from a number + +You can use the Toy as a countdown timer. This program exercises the IFZERO test, which will jump the program to a new counter only if the accumulator is zero: + +``` +counter 0: LOAD +counter 1: "initial value" +counter 2: IFZERO (this is also the "start" of the countdown) +counter 3: "end" +counter 4: SUB +counter 5: "one" +counter 6: GOTO +counter 7: "start" +counter 8: STOP +counter 9: 00000111 ("initial value") +counter 10: 00000001 ("one") +``` + +The Toy CPU is a great way to learn about machine language. I used the Toy CPU in my introductory course, and the students said they found it difficult to write the first program, but writing the next one was much easier. The students also commented that writing programs in this way was actually fun, and they learned a lot about how computers actually work. The Toy CPU is educational and fun! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/learn-machine-language-retro-computer + +作者:[Jim Hall][a] +选题:[lkxed][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-12/MITS_Altair_8800_Computer_%281975%29.png +[2]: https://github.com/freedosproject/toycpu +[3]: https://opensource.com/downloads/guide-using-freedos +[4]: https://opensource.com/article/21/8/ncurses-linux +[5]: https://opensource.com/sites/default/files/2022-12/toycpu.png +[6]: https://opensource.com/sites/default/files/2022-12/edit0-load.png +[7]: https://opensource.com/sites/default/files/2022-12/input0-load.png +[8]: https://opensource.com/sites/default/files/2022-12/run-3.png From 18edb3f8b1c8edc0213501dc83762fef3f24b10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 4 Jan 2023 19:42:26 +0800 Subject: [PATCH 2498/3123] =?UTF-8?q?Rename=2020230104.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20to=20co?= =?UTF-8?q?de=20with=20my=20retro=20computer=20program.md=20to=2020230104.?= =?UTF-8?q?0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20to=20code=20?= =?UTF-8?q?with=20my=20retro=20computer=20program.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ram.md => 20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md => 20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md} (100%) diff --git a/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md b/sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md similarity index 100% rename from sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md rename to sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md From 2071b80a4da3f7b4cd164255f61ad85c094f9e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Wed, 4 Jan 2023 22:59:59 +0800 Subject: [PATCH 2499/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230104.1=20=E2=AD=90=EF=B8=8F=20Official=20Fedora?= =?UTF-8?q?=20Budgie=20&=20Sway=20Spins=20to=20Arrive=20With=20Fedora=2038?= =?UTF-8?q?=20Release.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Sway Spins to Arrive With Fedora 38 Release.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md diff --git a/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md new file mode 100644 index 0000000000..d98e76ba14 --- /dev/null +++ b/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md @@ -0,0 +1,70 @@ +[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release" +[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release +====== + +Two new Fedora spins to make a debut with Fedora 38 release. + +![Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release][1] + +We were expecting this to happen with Fedora 37, but it is finally happening with Fedora 38! + +Back in May 2022, **Joshua Strobl,** the lead developer of the Budgie project, [announced][2] that Budgie was submitted for inclusion in Fedora. + +Sadly, we didn't see any signs of an official [Fedora spin][3] release soon after that, even though it made it into the Fedora repositories during [Fedora 37 release][4]. + +**But now.** + +With Fedora 38 release, it looks like we will get an official spin for [Budgie][5], alongside a spin with the [Sway][6] window manager. + +Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][7]Unlocator![][8] + +### Fedora Budgie and Sway + +In a [recent meeting][9], Fedora’s Engineering and Steering Committee (FESCo) voted on including official Fedora spins for Budgie and Sway window manager with the release of Fedora 38. + +**What can we expect?:** According to the initial change proposals for Budgie and Sway, we can expect plenty of things to happen. + +**In the case of Budgie:** + +- Fedora 38 will feature Budgie with a core set of applications, such as GNOME Software for updates/package management, a text editor, a web browser, and a terminal. +- It will also feature GTK theming across the system using [Materia GTK][10] and [Papirus][11] icon themes. +- The Budgie spin will also feature lightdm + slick-gtk-greeter for a more intuitive user greeting experience. + +**In the case of Sway spin:** It will aim to provide a minimal experience and will only include a few elements on top of the default configuration. + +**When to expect these?:** As the development of Fedora 38 picks up over the coming months, you can expect the spins to appear during April 2023. Of course, there will be separate ISO files with Budgie and Sway pre-installed. + +So, I think it would be fascinating to see the experience of Budgie with Fedora, especially when the development of Budgie seems to be going through some interesting changes. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fedora-budgie-sway-official/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png +[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/ +[3]: https://spins.fedoraproject.org +[4]: https://news.itsfoss.com/fedora-37-release/ +[5]: https://blog.buddiesofbudgie.org +[6]: https://swaywm.org +[7]: https://unlocator.com/favicon.ico +[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg +[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/ +[10]: https://github.com/nana-4/materia-theme +[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme From ae1b9a54601a4c1a6d7511142f3b1db33d234834 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 5 Jan 2023 08:45:45 +0800 Subject: [PATCH 2500/3123] translated --- ...d Siri in Works for Home Assistant Platform.md | 80 ------------------- ...d Siri in Works for Home Assistant Platform.md | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 80 deletions(-) delete mode 100644 sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md create mode 100644 translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md diff --git a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md deleted file mode 100644 index 4e14013469..0000000000 --- a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform" -[#]: via: "https://news.itsfoss.com/open-source-assistant/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform -====== - -An open-source assistant to replace Google, Alexa, Siri? - -![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1] - -**Home Assistant** is an open-source smart home platform that focuses on providing local control and privacy to its users. It can run off a Raspberry Pi or even a local server. - -They also have a subscription service for access to additional features such as support for Alexa and Google Assistant, which is managed by a company called '[Nabu Casa][2]'. - -> 💡 The company is led by [Paulus Schoutsen][3], the founder of Home Assistant. - -In a [blog][4] last week, Paulus announced **a new open-source project that aims to offer a voice assistant without an active internet connection** or any other big tech voice assistants. - -So, an _open-source challenger to Google, Alexa, and Siri?_😲 - -Let's see what this is all about, then. - -**What is it?:** This will be a part of the Home Assistant application and will offer the ability to run voice commands locally to control the connected smart devices. - -Paulus also asserts that their most important priority is to support different languages, he says: - -> People need to be able to speak in their own language, as that is the most accessible and only acceptable language for a voice assistant for the smart home. - -To fuel this endeavor, the creator of Rhasspy, [Mike Hansen][5], has been roped in to make this possible. - -For those of you who don't know, [Rhasspy][6] is another open-source software that specializes in providing a fully offline voice assistant that is backed by its community of users. - -If you ask me, I feel that this feature of Home Assistant will be powered by Rhasspy, which is a good thing. - -_Why reinvent something that already exists? It's better to improve upon it._ - -**What to expect?:** Initially, the voice assistant won't be able to do things you might expect. So, things like making a web search, making calls, playing voice games, etc., are a no-go. - -What it will focus on instead are the **basics of what a voice assistant should be**; this was done to make sure that the work ahead of them was manageable. - -They aim to start with a few actions and then build up language models around them. - -In its current state, Home Assistant supports 62 different languages in its user interface. They plan to add support for all these languages with their voice assistant. - -**When to expect?:** They have already started work on this by building a [collection of intent matching sentences][7] for every language. - -What this means is that the community can contribute to the development of the voice assistant by adapting the commands for smart devices to their respective native languages. - -They aim for a release sometime in **2023** and have mentioned that it will be the '_year of voice_'. - -I think an open-source voice assistant that works offline can be a very useful thing to have; it lets you be free of any tracking from big tech. - -💬 _With the added benefit of having a large community behind its development of it, what's not to like?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/open-source-assistant/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/open-source-home-assistant-in-works.png -[2]: https://www.nabucasa.com -[3]: https://twitter.com/balloob -[4]: https://www.home-assistant.io/blog/2022/12/20/year-of-voice/ -[5]: https://synesthesiam.com -[6]: https://rhasspy.readthedocs.io -[7]: https://github.com/home-assistant/intents diff --git a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md new file mode 100644 index 0000000000..adba1b18db --- /dev/null +++ b/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md @@ -0,0 +1,80 @@ +[#]: subject: "An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform" +[#]: via: "https://news.itsfoss.com/open-source-assistant/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台 +====== + +一个开源助手可以取代谷歌、Alexa 和 Siri? + +![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1] + +**Home Assistant** 是一个开源的智能家居平台,专注于为用户提供本地控制和隐私。它可以从树莓派或甚至本地服务器上运行。 + +他们还有一个订阅服务,可以获得额外的功能,如支持 Alexa 和谷歌助理,它由一家名为 “[Nabu Casa][2]” 的公司管理。 + +> 💡 该公司由 Home Assistant 的创始人 [Paulus Schoutsen][3] 领导。 + +在上周的[博客][4]中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**或任何其他大型科技语音助手。 + +这是_一个对 Google、Alexa 和 Siri 的开源挑战者?_ 😲 + +让我们看看这到底是怎么回事。 + +**它是什么?:**这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。 + +Paulus 还断言,他们最重要的优先事项是支持不同的语言,他说: + +> 人们需要能够用自己的语言说话,因为对于智能家居的语音助手来说,这是最容易接受和唯一可以接受的语言。 + +为了推动这一努力,Rhasspy 的创造者 [Mike Hansen][5] 已经被拉来实现这一目标。 + +对于那些不知道的人来说,[Rhasspy][6] 是另一个开源软件,专门提供一个由其用户社区支持的完全离线的语音助手。 + +如果你问我,我觉得 Home Assistant 的这个功能将由 Rhasspy 提供,这是一件好事。 + +_为什么要重新发明已经存在的东西?最好是在它的基础上进行改进。_ + +**可以期待什么?:**最初,语音助手将不能做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。 + +它所关注的反而是**语音助手应该有的基本功能**。这样做是为了确保他们面前的工作是可控的。 + +他们的目标是从几个动作开始,然后围绕它们建立语言模型。 + +在目前的状态下,Home Assistant 在其用户界面上支持 62 种不同的语言。他们计划用他们的语音助手增加对所有这些语言的支持。 + +**何时期待?:**他们已经开始了这方面的工作,为每种语言建立一个[意图匹配句子集合][7]。 + +这意味着社区可以通过将智能设备的命令改编成各自的母语来为语音助手的发展做出贡献。 + +他们的目标是在 **2023** 年的某个时候发布,并提到这将是“_语音年_”。 + +我认为一个可以离线工作的开源语音助手可以是一个非常有用的东西。它可以让你不受大科技公司的任何追踪。 + +💬 _还有一个额外的好处是,它的开发背后有一个庞大的社区,有什么理由不喜欢呢?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/open-source-assistant/ + +作者:[Sourav Rudra][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://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/open-source-home-assistant-in-works.png +[2]: https://www.nabucasa.com +[3]: https://twitter.com/balloob +[4]: https://www.home-assistant.io/blog/2022/12/20/year-of-voice/ +[5]: https://synesthesiam.com +[6]: https://rhasspy.readthedocs.io +[7]: https://github.com/home-assistant/intents From fd0567f4e4a7aed10effd413da5ebf040b430bd1 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 5 Jan 2023 08:50:34 +0800 Subject: [PATCH 2501/3123] translating --- .../tech/20230102.0 ⭐️ How to read and write files in Rust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md index 0ec7cecb0a..ac4a7ee73e 100644 --- a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md +++ b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/read-write-files-rust" [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 64e20ecee289d565cc24bbf2a12a8464cd2a6dfd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 5 Jan 2023 15:03:57 +0800 Subject: [PATCH 2502/3123] RP @geekpi https://linux.cn/article-15415-1.html --- ...Buzzing Noise Coming from Speakers in Linux.md | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md (64%) diff --git a/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md similarity index 64% rename from translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md rename to published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md index 6e2f08c773..70767163ae 100644 --- a/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md +++ b/published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md @@ -3,16 +3,18 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15415-1.html" -我如何修复 Linux 中扬声器发出的嗡嗡声 +如何修复 Linux 中扬声器发出的嗡嗡声 ====== -我使用笔记本电脑很长时间了,但最近才切换到桌面设置,以便在 It's FOSS 进行远程工作。 +![][0] -我注意到扬声器不断发出嗡嗡声。这很烦人,让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。 +我使用笔记本电脑很长时间了,但最近才切换到台式机上,以便进行远程工作。 + +我注意到我的扬声器不断发出嗡嗡声。这很烦人,让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。 我将分享我在 Linux 中修复扬声器嗡嗡声的经验。我发现它可以在同一硬件上对 Ubuntu、Debian 和 Pop OS 都有效。 @@ -20,9 +22,9 @@ **在尝试修复之前** -我试图让事情变得容易安全地遵循。你尝试临时修复,如果有效,则将更改永久化。但是,最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措,你可以将系统恢复到之前的状态。 +我试图让事情变得容易安全地遵循。你可以尝试临时修复,如果有效,则将更改永久化。但是,最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措,你可以将系统恢复到之前的状态。 -另外,检查你的声卡。在我的例子中,它是 snd_hda_intel。对于 USB 卡,它可以是 snd_usb_audio。你必须根据你的声卡更改命令。 +另外,检查你的声卡。在我的例子中,它是 `snd_hda_intel`。对于 USB 卡,它可以是 `snd_usb_audio`。你必须根据你的声卡更改命令。 ``` cat /proc/asound/modules @@ -32,7 +34,7 @@ cat /proc/asound/modules 梳理了无数的论坛帖子和网站后,我了解了问题的根本原因。这是因为扬声器中的电容放电。它可以通过关闭声卡的省电设置来解决。 -通过关闭省电,你允许系统在这些电容放电时为其充电。这类似于在不断充电时使用电话。 +通过关闭省电,你允许系统在这些电容放电时为其充电。这类似于在一直充电时使用电话。 你可以使用给定的命令检查你的系统是否启用了声卡的省电设置: @@ -42,13 +44,13 @@ cat /sys/module/snd_hda_intel/parameters/power_save ![power saving setting in sound card making buzzing sound in linux][1] -如果你像我一样输出是 1,那么省电功能已打开。因此,让我们看一下方案。 +如果你像我一样输出是 `1`,那么省电功能已打开。因此,让我们看一下方案。 不用担心。这不会显著影响你的电池百分比,因为所示方法仅适用于声卡。 ### 尝试修复嗡嗡声问题(临时) -我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的还是是否存在任何严重的硬件问题。 +我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的,还是存在严重的硬件问题。 如果此临时方案有效,你可以继续使用永久方案。 @@ -64,7 +66,7 @@ sudo su echo 0 > /sys/module/snd_hda_intel/parameters/power_save ``` -如果你使用的是 **USB 声卡**,则必须将 `snd_hda_intel` 与 `snd_usb_audio` 互换,如下所示: +如果你使用的是 **USB 声卡**,则必须将 `snd_hda_intel` 替换为 `snd_usb_audio`,如下所示: ``` echo 0 > /sys/module/snd_usb_audio/parameters/power_save @@ -76,7 +78,7 @@ echo 0 > /sys/module/snd_usb_audio/parameters/power_save 在这里,我将对内核参数进行更改。 -将你的工作目录更改为 /etc/modprobe.d: +将你的工作目录更改为 `/etc/modprobe.d`: ``` cd /etc/modprobe.d @@ -96,13 +98,13 @@ options snd_hda_intel power_save=0 ![fix buzzing sound in linux][2] -对于 **USB 声卡**,你可以使用 `snd_usb_audio`: +对于 **USB 声卡**,你需要使用 `snd_usb_audio`: ``` options snd_usb_audio power_save=0 ``` -现在,[保存更改并退出 Nano 文本编辑器][3]并按 Ctrl+X 键。重启你的系统,你就可以享受无噪音的工作空间。 +现在,[保存更改并退出 Nano 文本编辑器][3] 并按 `Ctrl+X` 键。重启你的系统,你就可以享受无噪音的工作空间。 ### 总结 @@ -119,12 +121,13 @@ via: https://itsfoss.com/buzzing-noise-speaker-linux 作者:[Sagar Sharma][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/) 荣誉推出 [a]: https://itsfoss.com/author/sagar/ [b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png -[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png +[1]: https://itsfoss.com/content/images/wordpress/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png +[2]: https://itsfoss.com/content/images/wordpress/2022/11/fix-buzzing-sound-in-linux.png [3]: https://linuxhandbook.com/nano-save-exit/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/05/150250sqbeq35bh699r157.jpg \ No newline at end of file From 6b0d81dd047918d54e800d2315e43d6acc49d8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 5 Jan 2023 19:44:30 +0800 Subject: [PATCH 2503/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230105.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?6=20tips=20for=20building=20an=20effective=20DevOps=20culture.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6 tips for building an effective DevOps culture.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md diff --git a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md new file mode 100644 index 0000000000..394c1d810e --- /dev/null +++ b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -0,0 +1,101 @@ +[#]: subject: "6 tips for building an effective DevOps culture" +[#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" +[#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +6 tips for building an effective DevOps culture +====== + +Why would you want to build a [DevOps][1] culture? There are many benefits to the streamlined collaboration of the development and operations teams. A major goal is efficiency: Increasing the speed of new software deployments and reducing idle time for workers. Fostering trust between colleagues can improve employee satisfaction, produce new innovations, and positively impact profitability. + +[DevOps][2] is a broad philosophy with a range of interpretations. In other words, you can visit 40 companies and find 40,000 different ideas about using DevOps effectively in the workplace. This diversity of opinion is actually a good thing–so many perspectives are useful for building stronger teams. This guide will look at the top tips for encouraging better collaboration between colleagues within a DevOps culture. + +Each section offers a different aspect of DevOps culture and looks at ways to introduce it into your workforce. + +![DevOps includes collaboration, workflow, infosec, and iteration.][3] + +### Continuous development of processes + +This core tenet of DevOps culture sets it apart from many other types of workplace ethos. The DevOps philosophy says that it is essential to make mistakes because it shows you are trying out new ideas. + +The heart of DevOps culture is a commitment to evolving creativity. Practically, that means not yelling at your direct reports when test results show that things were better before they changed it. It means recognizing that progress is not linear and success is never a straight line. + +DevOps expert [Gene Kim][4] advocates for risk-taking and experimentation. This implies letting your team work on unusual tasks to find new insights. + +Should your organization be profit-driven? Can you allow your teams to try something new? I'm talking about something other than unrelated passion projects. Continuous process development means being open to upgrading present methods. Great sales leaders appreciate that results matter more than presenteeism, so it is always crucial to focus on how teams are working rather than how much. + +### Readily give feedback and actively seek it + +Increased trust between individuals is another key feature of a thriving DevOps culture. Whether your staff is learning how to build affiliate network contacts or trying to design their next [UX][5] survey, everyone should be open to feedback on their work. But this will never happen until your teammates respect each other's opinions and trust that feedback is given in a spirit of good intention. + +This culture may sound impossible to cultivate; indeed, some companies will struggle to achieve this more than others. Granted, a large part of the success of giving and receiving feedback depends on the personalities of your employees. It is possible to screen for this during the recruitment process. + +Before you expect staff to readily offer feedback to colleagues and seek it in the first place, you should lead by example. Members of the C-suite should be modeling this behavior, openly asking members of the company to pose probing questions about their strategic decisions, and providing balanced feedback. + +![DevOps is the intersection of development, quality assurance, and operations][6] + +### Always look for improvements + +Building on increased intellectual trust between colleagues, your team should look for ways to improve its work. The nature of DevOps means the software development team will be producing deployments more rapidly than with traditional approaches. + +However, this culture of openness to improvement can positively impact departments beyond development and operations. Ask yourself what other areas of your business could do with a burst of optimism. + +Be on the lookout for training and upskilling opportunities. Even if a training course is less salient than advertised, the chance to network with industry professionals and build contacts for the future can only enhance the diversity of ideas within your organization. + +### Save ideas for later development + +Part of your DevOps toolchain should be a heavily used account on [Git][7]. You can use Git as a common repository for scripts produced during software development and other related projects. Known as "version control," Git allows programmers to save iterations of their work and reuse or improve the work of others. + +You're aiming for the ability to keep hold of good ideas for future use. A certain pathway did not work out for specific reasons. However, just because that set of ideas was wrong for the time it was conceived does not mean it can never become helpful in the future. + +As the entire focus of DevOps rests on end-to-end ownership of software in production, saving iterations of developments truly supports this principle. You want to see an improved focus on and commitment to the software testing project at hand. + +A simple way to incorporate this is to request that developers include ideas for future work in the developer contract and final project report. Make sure tech services managers know they should ask for examples of side-branching ideas that cropped up during the build. The more minds aware of these little innovations, the more likely someone will remember one when needed. + +### Sit close together (physically or virtually) + +The goal is to share a common understanding of one another's job roles and how they interrelate. You can achieve this in a few simple ways, summarized by three words: Sit close together. Invite other teams to your meetings and share user feedback reports in their entirety. Have lunch together, plan virtual happy hours together, and generally make sure your colleagues are in close proximity. About 90% of teams with a mature DevOps protocol report a clear understanding of their responsibilities to other teams compared to only about 46% of workers in immature DevOps teams. + +Although it can be tempting to form cliques with like-minded folk and only hang out with staff hired to carry out the same tasks as you, this is terrible for the business as a whole. Whether you like it or not, all humans are multi-faceted and capable of contributing their unique talents to a whole host of scenarios. + +The idea of closer collaboration is to honor the ability of anyone to suggest improvements to the products or work processes going on around them. If you only ever sit at a distance from the other departments within the company, you will miss countless opportunities to share intelligent ideas. After all, you often learn best in the free flow of ideas during a conversation. + +### Commit to automation + +You should be looking to automate mundane and repetitive tasks in the name of efficiency and process acceleration. Every industry has boring–and quite frankly, silly–exercises carried out daily or weekly. + +Whether this is manually copying data from one page to another or typing out audio transcripts by hand, staff at every level should insist that machines take on such burdens where possible. The reality is automation technology advances every single year, and operational processes should, too. [Automation testing][8] is so crucial to DevOps that it is the second principle of the CALMS framework (the "C" of which stands for "culture"). + +How can you make this happen? Invite staff to openly express which aspects of their job they feel could be automated and then–here is the crucial part–support the facilities needed to automate them. That might mean a $600 annual subscription to a software program, a complete enterprise application modernization, or two days of developers' time to build a new tool to use in-house. + +Either way, you should assess the benefits of automation and consider how much time you could save for everyone. DevOps statistics continually indicate just how much better off modern companies are by integrating these beneficial principles year after year. + +### Explore new ways of working successfully + +A culture shift doesn't happen overnight. The sooner you start, though, the sooner you see results. In my experience, people embrace change when it's a genuine improvement on what has gone before. DevOps provides a framework for such improvements. Whether you're just getting started with DevOps in your organization or simply want to improve your existing culture, consider the above points and how they relate to your organization's future. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/tips-effective-devops-culture + +作者:[Yauhen Zaremba][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/yauhen-zaremba +[b]: https://github.com/lkxed +[1]: https://opensource.com/resources/devops +[2]: https://opensource.com/article/22/2/devops-documentation-maturity +[3]: https://opensource.com/sites/default/files/2022-12/devop.png +[4]: https://enterprisersproject.com/user/gene-kim +[5]: https://opensource.com/article/22/7/awesome-ux-cli-application +[6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png +[7]: https://opensource.com/article/22/11/git-concepts +[8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks From de10c1ad67e3184228ffa268e694ba2666821125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 5 Jan 2023 19:44:56 +0800 Subject: [PATCH 2504/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230105.2=20=E2=AD=90=EF=B8=8F=20Nitrux=202.6.0=20T?= =?UTF-8?q?akes=20Bold=20Steps=20Drops=20apt,=20Adds=20Flathub=20and=20Pip?= =?UTF-8?q?ewire.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Steps Drops apt, Adds Flathub and Pipewire.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md diff --git a/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md new file mode 100644 index 0000000000..2a81845075 --- /dev/null +++ b/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md @@ -0,0 +1,81 @@ +[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire" +[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire +====== + +![][1] + +**Nitrux 2.6.0 arrives with Flathub, Pipewire by default, latest Kernel and KDE framework.** + +![Nitrux 2.6.0 Desktop][2] + +[Nitrux Linux][3]is based on Debian, which features a modified version of the KDE Plasma desktop called NX Desktop. This unique Linux distribution brings its own set of Nitrux applications built upon Maui kit and Qt. Nitrux is systemd-free and uses OpenRC as an init system. With all these unique features and stunning looks, it is one of the best Linux distributions today. + +Nitrux 2.6.0 is bumped up to be a considerable major version due to critical updates since its prior release, 2.5.1 in December. + +### Nitrux 2.6.0: What’s New + +A major focus of this release is the introduction of the Plasma Wayland session in the SDDM display manager. It’s not default yet. But available as optional. X11 is still default. I believe in the next major release; the NItrux team can enable Wayland by default. + +In addition, the modern sound manager Pipewire is now default, as it was already standardized in Ubuntu and Fedora and feels stable. Thanks to Pipewire, your audio workflow will be much better. + +Nitrux 2.6.0 also enables the largest Flatpak app repo – Flathub, by default. That means you do not need to set up Flatpak & enable Flathub anymore manually. Installation of the Flatpak apps is now much easier. + +Other noteworthy changes include, Nitrux making the root (/) partition immutable to prevent it from breakage, the Samba package now part of Nitrux default install, and the Calamares installer getting a customized auto partition scheme. + +![Nitrux 2.6 install automatic partition][4] + +From the beginning, Nitrux prefers self-contained executables for its entire desktop components. The primary choice was the AppImage file format. You get Flathub set up by default in this release, whereas the popular apt package manager is now dropped. This might change some users’ workflow because the apt command won’t work; despite being based on Debian. + +Hence, the Nitrux team suggested using the Distrobox containers to set up the separate skeleton to be used with apt. However, it will be a little difficult for general users to understand the container, immutable root partition. + +![apt is not dropped][5] + +The irony is apt will be used during installation because Calamares needs it. However, it will be removed after installation is complete. + +> The Live ISO _includes APT and dpkg, but this is because Calamares needs them to complete the installation and will be removed from the installed system._Nitrux team + +At its core, Nitrux 2.6.0 features liqurix Kernel 6.1 aligned with gaming and multimedia. This version is powered by KDE Plasma 2.26.4, KDE Framework 5.101.0 and Qt 5.15.7 LTS. + +Detailed release notes are available [here][6] if you want to read more. + +### Download + +You can download this version from the following pages. However, there is no upgrade path available. Hence it is recommended to do a fresh installation. + +- [FOSS Torrents (Torrent)][7] +- [Sourceforge (mirror)][8] +- [OSDN (mirror)][9] + +Via [announcement][10] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/nitrux-2-6-0-release/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg +[3]: https://nxos.org/ +[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg +[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png +[6]: https://nxos.org/notes/notes-nitrux-2-6-0 +[7]: https://fosstorrents.com/distributions/nitrux/ +[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO +[9]: https://osdn.net/projects/nitrux/releases/p18379 +[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/ From 071a6ed30a6517e52a061a71ba35ae19bdb7cd86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 5 Jan 2023 19:45:39 +0800 Subject: [PATCH 2505/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230105.3=20=E2=AD=90=EF=B8=8F=20Pinta=202.1=20Rele?= =?UTF-8?q?ase=20Introduces=20WebP=20Support.=20But=20You=20Can't=20Use=20?= =?UTF-8?q?It=20Yet=20Unfortunately.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ort. But You Can't Use It Yet Unfortunately.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md diff --git a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md new file mode 100644 index 0000000000..07be806ba7 --- /dev/null +++ b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md @@ -0,0 +1,100 @@ +[#]: subject: "Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately" +[#]: via: "https://news.itsfoss.com/pinta-2-1-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately +====== + +Pinta 2.1 comes with WebP support and various other useful improvements. + +![Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately][1] + +Pinta is a free and open-source drawing app for Linux that offers a ton of features in a relatively small package. + +It is one of the [best Linux tools for digital artists][2] available. + +Its last major release was in January 2022, introducing improved Hi DPI support, GTK 3 port, and [more][3]. + +Marking 2023's first release, Pinta 2.1 promises to offer even further refinements. + +**Notice the new Pinta icon in the image above? Well, that's one of the changes.** + +Let's see how this release pans out. + +### 🆕 What's New in Pinta 2.1? + +![pinta 2.1][4] + +[Pinta 2.1][5] is offering plenty of new improvements; some notable ones include: + +- **WebP Support** +- **Improved .ora Support** +- **Enhanced Handles** +- **Dark Mode** +- **Improved File Dialog** +- **Various Bug Fixes and Changes** + +**WebP Support:** Pinta finally has support for WebP files, but it does not come out of the box. For Linux users, the [webp-pixbuf-loader][6]**dependency is required to enable WebP support.** + +> 📋 Unfortunately, WebP support is not included in the Flatpak and Snap builds of Pinta 2.1. Even if you have that library installed on your system. So, you probably have to build it from the source or use WebP files on Windows/macOS only. + +**Improved .ora Support:** With Pinta 2.1, hidden layers are now round-tripped properly for .ora files. + +Furthermore, when you save a .ora file, a flattened image is now included in the archive. + +It is like this because it is required by the spec to accommodate the viewer software. + +**Enhanced Handles:** The selection move and shape control point handles are now more intuitive, especially when working on zoomed-in or small images. + +**Dark Mode:** Pinta has finally received full support for dark mode across the app; all icons, toolbars, dialogs, etc., are now in high-res SVG format. + +**Improved File Dialog:** The file dialog now uses MIME types on Linux, allowing valid image files with unknown extensions to be included in the image file filter. + +**Various Bug Fixes and Changes:** Apart from the changes I listed above, here are some that are also worth mentioning: + +- Upgraded to .NET 7. +- New '**Transparency Mode**' in Gradient Tool. +- Standard GTK about dialog. +- The gradient tool now updates properly while drawing transparent colors. +- The new screenshot command now uses the XDG portal. + +If you want to go deep into the technical details of the release, head to its [release notes][7]. + +### 📥 Download Pinta 2.1 + +Pinta 2.1 is available in the [Snap store][8], as well as on [Flathub][9]. The repositories include an outdated back, so you can safely ignore it. + +You can also try building it from the [source code][10] and explore other download options for Windows/macOS. + +[Download Pinta 2.1][11] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/pinta-2-1-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/pinta-2-1-release.png +[2]: https://itsfoss.com/best-linux-graphic-design-software/ +[3]: https://news.itsfoss.com/pinta-2-0-release/ +[4]: https://news.itsfoss.com/content/images/2023/01/Pinta_2.1.png +[5]: https://www.pinta-project.com +[6]: https://github.com/aruiz/webp-pixbuf-loader/ +[7]: https://github.com/PintaProject/Pinta/releases/tag/2.1 +[8]: https://snapcraft.io/pinta +[9]: https://flathub.org/apps/details/com.github.PintaProject.Pinta +[10]: https://github.com/PintaProject/Pinta +[11]: https://www.pinta-project.com/releases/ + From 4d505a2b62b51e1aeb92f1abe37e6cac04809b02 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 6 Jan 2023 08:50:25 +0800 Subject: [PATCH 2506/3123] translated --- ...What is Firefox ESR How to Install it in Ubuntu.md | 142 ------------------ ...What is Firefox ESR How to Install it in Ubuntu.md | 142 ++++++++++++++++++ 2 files changed, 142 insertions(+), 142 deletions(-) delete mode 100644 sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md create mode 100644 translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md diff --git a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md deleted file mode 100644 index 9a30bf0a2f..0000000000 --- a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "What is Firefox ESR? How to Install it in Ubuntu?" -[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What is Firefox ESR? How to Install it in Ubuntu? -====== - -The snap version of Ubuntu is not to your liking? Don’t like constantly changing things with every Firefox release? You can try the Firefox ESR version if you value stability over features. - -### What is Firefox ESR? - -Firefox ESR is a special edition of Firefox browser that doesn’t necessarily get new features monthly as the regular edition but it provides a stable and secure browsing experience. This is suitable for enterprises, organizations and institutes where stability and core features matter more than shiny new features. - -Think of Firefox ESR as the long-term stable release of Linux distributions. They do not necessarily get brand-new features but they get regular security and maintenance updates. This gives the users a familiar and stable environment. - -#### Why should you care for Firefox ESR? - -Firefox releases a new version almost every month. It contains security and feature updates. - -But some people may not like the inclusion and removal of features. If, after an update, you keep wondering where did certain settings go or do not like things that are different than before, Firefox ESR could be worth a try. - -Basically, if you value stability more than new features, Firefox ESR is for you. This is the same version of Firefox that ships with Debian, which is known for being one of the most stable distros you can get in the market. - -Let me show you how to get Firefox ESR on Ubuntu. **_You can have both Firefox and Firefox-ESR versions installed simultaneously. There is no visual difference in their logos so you have to pay attention to which Firefox version you are opening._** - -### Installing Firefox ESR in Ubuntu - -Before I jump to the installation part, let me share what’s the version difference between regular Firefox and Firefox-ESR. While writing, - -- Firefox is running at version **107.0-2**. -- Firefox-ESR is currently having **102.5.0esr**. - -So if that’s fine for you, let’s look at the first method. - -#### Method 1: Install Firefox-ESR using PPA - -Firefox-ESR is not available in the default repository of Ubuntu, so you can use the PPA. - -PPA is nothing but a repository being maintained by individual techies or developers to have what the default repository does not. - -And if you want to learn more about PPA, I would recommend checking our other guide that explains [how you can use PPA on Linux.][1] - -Open your terminal and use the given command to add PPA for Firefox-ESR: - -``` -sudo add-apt-repository ppa:mozillateam/ppa -``` - -And press Enter to confirm you want to add PPA: - -![add firefox esr repository in ubuntu][2] - -Once done, you will have to update the repository index in Ubuntu to take effect from the changes: - -``` -sudo apt update -``` - -And now, you can install Firefox-ESR by using the given command: - -``` -sudo apt install firefox-esr -``` - -Next, you can use the given command to check the installed version of Firefox-ESR in your system: - -``` -firefox-esr -v -``` - -![check installed version of firefox esr in ubuntu][3] - -##### Uninstalling Firefox-ESR from Ubuntu - -If the ESR felt too outdated for your work or for any other reason you want to remove it from your system, you can follow the steps to remove the Firefox-ESR package and the repository. - -First, let’s remove the Firefox-ESR package using the following: - -``` -sudo apt remove firefox-esr -``` - -Now, you can use the given command to [remove PPA from Ubuntu][4]: - -``` -sudo add-apt-repository --remove ppa:mozillateam/ppa -``` - -And that’s it! - -#### Method 2: Install Firefox-ESR using Snap - -Love it or hate it, Snaps comes pre-configured on Ubuntu and I find using snaps a neat way of installing packages, especially when you want to avoid building them for source or using PPA. - -All you need to do to install Firefox-ESR using snaps is to follow the given command: - -``` -sudo snap install firefox --channel=esr/stable -``` - -![install firefox esr using snaps in ubuntu][5] - -##### Removing Firefox-ESR Snap - -To remove Firefox-ESR (snap package), use the [snap remove command][6]: - -``` -sudo snap remove firefox -``` - -And that’s it! - -### Wrapping Up - -I explained how to install Firefox-ESR in Ubuntu using multiple methods in this guide. I personally use Firefox-ESR instead of the regular version as I was having random crashes. - -Since I shifted to Firefox-ESR, things have been going rock-solid for me. And if you were having the same, you should give it a try. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/firefox-esr-ubuntu/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/ppa-guide/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png -[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ -[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png -[6]: https://itsfoss.com/remove-snap/ diff --git a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md new file mode 100644 index 0000000000..2955a79d75 --- /dev/null +++ b/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md @@ -0,0 +1,142 @@ +[#]: subject: "What is Firefox ESR? How to Install it in Ubuntu?" +[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +什么是 Firefox ESR?如何在 Ubuntu 中安装它? +====== + +Ubuntu 的 snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。 + +### 什么是 Firefox ESR? + +Firefox ESR 是 Firefox 的特别版,它不一定像普通版那样每月都有新功能,但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构,在这些地方,稳定性和核心功能比闪亮的新功能更重要。 + +把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。他们不一定得到全新的功能,但他们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。 + +#### 你为什么要关心 Firefox ESR? + +Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。 + +但有些人可能不喜欢功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR可能值得一试。 + +基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是与 Debian 相同的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。 + +让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**_你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。_** + +### 在 Ubuntu 中安装 Firefox ESR + +在进入安装之前,让我来分享一下普通 Firefox 和 Firefox-ESR 之间的版本差异是什么。在写这篇文章的时候: + +- Firefox 的版本是 **107.0-2**。 +- Firefox-ESR 目前的版本是 **102.5.0esr**。 + +所以,如果这对你来说没问题,让我们看看第一个方法。 + +#### 方法 1:使用 PPA 安装 Firefox-ESR + +Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的,所以你可以使用 PPA。 + +PPA 只不过是一个由个别技术人员或开发者维护的仓库,拥有默认仓库所没有的东西。 + +如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了[如何在 Linux 上使用 PPA][1]。 + +打开你的终端,使用给定的命令来添加 Firefox-ESR 的 PPA: + +``` +sudo add-apt-repository ppa:mozillateam/ppa +``` + +然后按回车键确认你要添加 PPA: + +![add firefox esr repository in ubuntu][2] + +完成后,你需要更新 Ubuntu 中的仓库索引,以便从这些变化中生效: + +``` +sudo apt update +``` + +现在,你可以通过使用给定的命令来安装 Firefox-ESR: + +``` +sudo apt install firefox-esr +``` + +接下来,你可以使用给定的命令来检查你系统中 Firefox-ESR 的安装版本: + +``` +firefox-esr -v +``` + +![check installed version of firefox esr in ubuntu][3] + +##### 从 Ubuntu 卸载 Firefox-ESR + +如果 ESR 对你的工作来说感觉太过时了,或者由于其他原因你想从你的系统中删除它,你可以按照以下步骤删除 Firefox-ESR 包和仓库。 + +首先,让我们用下面的方法删除 Firefox-ESR 包: + +``` +sudo apt remove firefox-esr +``` + +现在,你可以使用给定的命令来[从 Ubuntu 删除 PPA][4]: + +``` +sudo add-apt-repository --remove ppa:mozillateam/ppa +``` + +这就完成了! + +#### 方法 2:使用 Snap 安装 Firefox-ESR + +不管你爱不爱它,Snaps 在 Ubuntu 上是预先配置好的,我发现使用 Snaps 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。 + +使用 Snaps 安装 Firefox-ESR,你需要做的就是使用给定的命令: + +``` +sudo snap install firefox --channel=esr/stable +``` + +![install firefox esr using snaps in ubuntu][5] + +##### 删除 Firefox-ESR Snap + +要删除 Firefox-ESR(snap 包),请使用 [snap remove 命令][6]: + +``` +sudo snap remove firefox +``` + +这就完成了! + +### 总结 + +我在本指南中解释了如何使用多种方法在 Ubuntu 中安装 Firefox-ESR。我个人使用 Firefox-ESR 而不是普通版本,因为我有随机崩溃的情况。 + +自从我改用 Firefox-ESR 后,一切都变得稳如磐石。如果你也有同样的问题,你应该试一试。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/firefox-esr-ubuntu/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/ppa-guide/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png +[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ +[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png +[6]: https://itsfoss.com/remove-snap/ From 9918aa6481e39e0b34a90d2b4fee7962ccf7c067 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 6 Jan 2023 08:57:33 +0800 Subject: [PATCH 2507/3123] translating --- ...30102.1 ⭐️ who Command in Linux Explanation with Examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md index 71a4a4c1a0..3f04e64f41 100644 --- a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md +++ b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/who-command-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e2c17b80854bcf1a216232bd8f0141f3b22eb7dd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 6 Jan 2023 11:45:07 +0800 Subject: [PATCH 2508/3123] ALL @wxy https://linux.cn/article-15418-1.html --- ...Sway Spins to Arrive With Fedora 38 Release.md | 68 ++++++++++++++++++ ...Sway Spins to Arrive With Fedora 38 Release.md | 70 ------------------- 2 files changed, 68 insertions(+), 70 deletions(-) create mode 100644 published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md delete mode 100644 sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md diff --git a/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md new file mode 100644 index 0000000000..83f6605f84 --- /dev/null +++ b/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md @@ -0,0 +1,68 @@ +[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release" +[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15418-1.html" + +Fedora 38 将发布 Budgie 和 Sway 官方定制版 +====== + +> 两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。 + +![][1] + +我们期待着它们在 Fedora 37 时出现,但在 Fedora 38 中终于来了! + +早在 2022 年 5 月,Budgie 项目的主要开发者 Joshua Strobl [宣布][2],Budgie 已被提交到 Fedora 中。 + +遗憾的是,在那之后不久,我们并没有看到任何官方 [Fedora 定制版][3] 发布的迹象,尽管它在 [Fedora 37 发布][4] 期间进入了 Fedora 软件库。 + +**但现在有了。** + +随着 Fedora 38 的发布,看起来我们会得到一个 [Budgie][5] 的官方定制版,同时还有一个 [Sway][6] 窗口管理器的定制版。 + +### Fedora Budgie 和 Sway + +在 [最近的一次会议][9] 上,Fedora 工程和指导委员会(FESCo)投票决定将 Budgie 和 Sway 窗口管理器的 Fedora 官方定制版纳入 Fedora 38 的发布中。 + +根据 Budgie 和 Sway 的初步修改建议,我们可以期待很多变化。 + +对于 Budgie: + +- Fedora 38 将提供 Budgie 桌面环境,包含一套核心应用程序,如用于更新/软件包管理的 GNOME “软件”应用、一个文本编辑器、一个网页浏览器和一个终端。 +- 它还将使用 [Materia GTK][10] 和 [Papirus][11] 图标主题,整个系统采用 GTK 主题设计。 +- Budgie 定制版还将采用 lightdm + slick-gtk-greeter,以获得更直观的用户问候体验。 + +对于 Sway 定制版:它旨在提供一个极简体验,只包括默认配置之上的一些元素。 + +预期时间:随着 Fedora 38 的开发在未来几个月内的加快,你可以期待这些定制版在 2023 年 4 月期间出现。当然,会有预装了 Budgie 和 Sway 的单独 ISO 文件。 + +因此,我认为看到 Budgie 与 Fedora 的体验会非常吸引人,特别是当 Budgie 的开发似乎正在发生一些有趣的变化。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fedora-budgie-sway-official/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png +[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/ +[3]: https://spins.fedoraproject.org +[4]: https://news.itsfoss.com/fedora-37-release/ +[5]: https://blog.buddiesofbudgie.org +[6]: https://swaywm.org +[7]: https://unlocator.com/favicon.ico +[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg +[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/ +[10]: https://github.com/nana-4/materia-theme +[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme diff --git a/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md deleted file mode 100644 index d98e76ba14..0000000000 --- a/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md +++ /dev/null @@ -1,70 +0,0 @@ -[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release" -[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release -====== - -Two new Fedora spins to make a debut with Fedora 38 release. - -![Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release][1] - -We were expecting this to happen with Fedora 37, but it is finally happening with Fedora 38! - -Back in May 2022, **Joshua Strobl,** the lead developer of the Budgie project, [announced][2] that Budgie was submitted for inclusion in Fedora. - -Sadly, we didn't see any signs of an official [Fedora spin][3] release soon after that, even though it made it into the Fedora repositories during [Fedora 37 release][4]. - -**But now.** - -With Fedora 38 release, it looks like we will get an official spin for [Budgie][5], alongside a spin with the [Sway][6] window manager. - -Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][7]Unlocator![][8] - -### Fedora Budgie and Sway - -In a [recent meeting][9], Fedora’s Engineering and Steering Committee (FESCo) voted on including official Fedora spins for Budgie and Sway window manager with the release of Fedora 38. - -**What can we expect?:** According to the initial change proposals for Budgie and Sway, we can expect plenty of things to happen. - -**In the case of Budgie:** - -- Fedora 38 will feature Budgie with a core set of applications, such as GNOME Software for updates/package management, a text editor, a web browser, and a terminal. -- It will also feature GTK theming across the system using [Materia GTK][10] and [Papirus][11] icon themes. -- The Budgie spin will also feature lightdm + slick-gtk-greeter for a more intuitive user greeting experience. - -**In the case of Sway spin:** It will aim to provide a minimal experience and will only include a few elements on top of the default configuration. - -**When to expect these?:** As the development of Fedora 38 picks up over the coming months, you can expect the spins to appear during April 2023. Of course, there will be separate ISO files with Budgie and Sway pre-installed. - -So, I think it would be fascinating to see the experience of Budgie with Fedora, especially when the development of Budgie seems to be going through some interesting changes. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/fedora-budgie-sway-official/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png -[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/ -[3]: https://spins.fedoraproject.org -[4]: https://news.itsfoss.com/fedora-37-release/ -[5]: https://blog.buddiesofbudgie.org -[6]: https://swaywm.org -[7]: https://unlocator.com/favicon.ico -[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg -[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/ -[10]: https://github.com/nana-4/materia-theme -[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme From 874fe03f3326332ba01e99700f200f640d57e2f0 Mon Sep 17 00:00:00 2001 From: Figaro Cao Date: Fri, 6 Jan 2023 21:46:44 +0800 Subject: [PATCH 2509/3123] Update 20211012 Create a timer on Linux.md FigaroCao is translating --- sources/tech/20211012 Create a timer on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20211012 Create a timer on Linux.md b/sources/tech/20211012 Create a timer on Linux.md index 2cbfa013aa..ff4f334435 100644 --- a/sources/tech/20211012 Create a timer on Linux.md +++ b/sources/tech/20211012 Create a timer on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/10/linux-timers" [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "FigaroCao" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 0ea666564543016e788a66bdf59a9447a3893e77 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Sat, 7 Jan 2023 12:13:42 +0800 Subject: [PATCH 2510/3123] finish translation --- ...20210718 Is Open-Source Software Secure.md | 136 +++++++++--------- 1 file changed, 67 insertions(+), 69 deletions(-) diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/sources/talk/20210718 Is Open-Source Software Secure.md index 01d262a018..7e0b33aec4 100644 --- a/sources/talk/20210718 Is Open-Source Software Secure.md +++ b/sources/talk/20210718 Is Open-Source Software Secure.md @@ -7,142 +7,138 @@ [#]: publisher: ( ) [#]: url: ( ) -Is Open-Source Software Secure? +开源软件安全吗? ====== -Being someone who prefers [Linux for desktop][1] and encourages using open-source software, you may expect the answer to the question raised in the headline with a big “**Yes**“. +作为一个偏爱 [Linux桌面发行版][1] 并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。 -But I am not going to limit discussing the benefits of open-source software. Let us explore more! +然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多的内容吧! -Here, I plan to share my thoughts on if open-source software is secure and what are the things involved in it that make secure or insecure. +本文,我计划分享我关于开源软件是否安全的思考以及哪些事情与开源软件的安全性相关。 -### Why Should You Care if Open-Source Software is Secure? +### 为什么你需要关注开源软件是否安全? -No matter whether you use [Linux][2] or any other operating system, you will be surrounded with open-source software in some way (directly/indirectly). +不论你是使用 [Linux][2] 系统还是使用其他类型的操作系统,你都会在某种程度上(直接地/间接地)被开源软件所包围。 -To give you an example, most of the proprietary software tools depend on some form of open-source libraries to make things work. +举个例子,大多数专有软件工具依赖于某种形式的开源库来保证其正常工作。 -Furthermore, there is a reason why companies of various scale (including Google, Microsoft, and Facebook) rely on open-source software or contribute their resources to the open-source community in one way or the other. +此外,各种规模的公司(包括 Google、Microsoft 和 Facebook )依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。 -Hence, the security of open-source software is something essential to know about. +因此,开源软件的安全性是有必要了解的。 -### Myths About Open-Source Software Security +### 有关开源软件安全性的谣言 ![][3] -While there are several arguments to pitch the cons of open-source software in terms of security, some of them just do not make any sense. +虽然有多种理由证明开源软件在安全性方面的缺陷,然而其中一些实际毫无意义。 -#### Anyone Can See & Exploit the Code +#### 任何人都可以查看 & 恶意利用开源软件代码 -The code is accessible to everyone, yes. But just because you can see the code—does that mean anyone can exploit it? +是的,开源软件代码对于任何人都是可访问的。但是你可以查看代码并不意味着你可以利用它。 -**Not really.** +**不现实** -Even though anyone can create a fork (or copy) of the software, the original software cannot be manipulated easily. +即使任何人都可以克隆(或者拷贝)该软件,原始软件也不能轻易地被修改使用。 -Usually, the project maintainer (or a group of them) manage the code repository and accept the commits from contributors. The code is reviewed before approval. And no one can hijack the code just like that. +通常,项目维护人员(或者维护团队)管理代码仓库并且接受来自贡献者的提交。开源软件代码在接受之前被审查。没有人可以像那样劫持代码。 -**It takes effort for an attacker to exploit a vulnerability or add malicious code in a software, no matter if it is open-source or closed source.** +**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码** -#### Without Dedicated Resources, Security Breaks down +#### 失去专用资源,安全性无从谈起 -Many believe that without dedicated employees or a team for an open-source software, it is difficult to maintain security. +很多人相信如果开源软件没有专职人员或者专职团队,维护软件安全性是困难的。 -In contrast, with several types of contributors joining and leaving, the software gets more attention from a wide range of developers. +恰恰相反,由于各种个样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。 -And they may be able to spot security issues better than a few employees assigned for a proprietary software. +他们可能比由专用软件所聘用的少数开发者更能够发现安全问题。 -Some projects from the likes of Mozilla have a dedicated team to effectively iron out security issues. Similarly, most of the successful open source projects have plenty of resources to dedicate for security. +一些来自 Mozilla 等同类公司的项目拥有自己的专职团队来高效处理安全问题。同样的,大部分成功的开源项目拥有大量的资源用于保障安全性。 -Hence, the open-source software ecosystem is a mixed bag for security. Even without dedicated resources, the projects get help from various contributors, and some are profitable to a great extent which helps them dedicate more resources. +因此,开源软件的生态系统是安全性的组合包。即使没有专职资源,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。 -### Open Source Software is Secure: Here’s How +### 开源软件是安全的,以下是原因 ![][3] -Now that we have tackled the myths, let me highlight how open-source software deals with security issues. +既然我们已经解决了有关开源软件安全性的谣言,让我重点展示一下开源软件是如何处理安全问题的。 -In other words, the benefits in security with open-source software. +换句话说,开源软件在安全性上的优势。 -Not to forget, the perks of open-source software translate to some of the reasons why [Linux is better than Windows][4]. +请不要忘记,开源软件的优势也是 [ Linux 比 Windows 更好][4]的一些原因。 -#### More Eyes Looking at the Code +#### 更多的眼晴关注开源软件代码 -Unlike a proprietary software, access to code is not limited to a few developers. +不像专有软件,代码访问仅不限于少数开发者。 -Some projects may even have thousands of developers watching the code, reviewing them, and flagging or fixing security issues. +一些开源项目甚至可能拥有数以万记的开发者查看代码、审查它们并标记和修复其中的安全性问题。 -And this gives an edge over closed-source software by having **the ability to identify issues quickly and addressing them as soon as possible.** +这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的相比闭源软件的优势。 -Not just limited to more developers, often enterprises get involved with open-source projects that they utilize. And when they do, they will also go through the code and review it. +不仅仅限于拥有更多的开发者,企业通常也会参与他们所使用的开源项目。当他们这样做的时候,他们也会查阅代码并审查它们。 -This gives another source of external audit that may help improve the security of the software. +这提供了外部审查的另一条途径,而这可能有助于提升开源软件的安全性。 -In contrast, with a closed-source software, a limited number of developers may not be able to find all kinds of security issues. And it may take them longer to fix all the issues one by one. +反之,就闭源软件而言,有限人数的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。 -#### Community Decision Making to Prioritize Security Issues +#### 社区决定安全问题的优先级 -The developers of a closed-source software may have certain restrictions and priorities as what to work on and when to resolve an issue. +闭源软件的开发者可能在处理什么问题和什么时候解决问题等方面有某些限制或者优先等级。 -However, in case of an open-source project, the community of contributors can prioritize and assign themselves what they want to work on and when to fix an issue. You do not need to depend on a vendor or follow their instructions to address a security issue. +而如果是开源项目,贡献者社区可以自行决定优先级并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。 -The decision making that goes into addressing and fixing the security issues is more transparent and flexible in case of an open-source software. Hence, it can prove to be more effective leaving you with three specific benefits: +着手处理和修复安全问题的决定在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处: - * **Transparency** - * **No dependency on the vendor** - * **Faster security updates** + * **透明度** + * **不依赖供应商** + * **更快的安全更新** - - -### Open Source Software is not Bulletproof: Here’s Why +### 开源软件不是刀枪不入的,以下是原因 ![][3] -While there are cases where open-source software may get an edge for security, there could be instances or factors that affects it. +虽然有开源软件可能在安全性上具有优势的案例,然而仍有一些因素影响它。 -It is important to acknowledge that these problems exist, accordingly, an enterprise or an individual can make better decision about the state of security for an open-source software. +承认这些问题的存在是很重要的,据此,企业或者个人可以就一款开源软件的安全情况做出更好的决定。 -#### Not enough Eyes to Review Code and Uncertainty +#### 并无足够的眼睛来审查代码和不确定性 -Even if the code is accessible the world of developers, there are chances that a **project does not have enough contributors/developers to thoroughly review the code**. +即使开源软件代码可以由全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。 -In that case, we cannot have great confidence of an open-source software being peer-reviewed, because it lacks exactly that. +既如此,我们不能对经同行审查的开源软件抱有极高的信心,因为它恰好缺失了这一点。 -The open-source software may “claim” to have the best security just because its open-source, which is misleading when there are not enough developers working on it. +开源软件可能“声称”拥有最高的安全性因为它们是开源的。在没有足够的开发者致力于该项目时,这是一种误导。 -Also, we do not know how many developers are looking/reviewing the code and how exactly the code walkthrough is going on. +同样,我们也无从得知有多少开发者在查看/检查代码以及代码走查在多大程度上进行。 -For instance, the Heartbleed bug was spotted after 2 years of its introduction in a project that was already popular i.e **OpenSSL**. +举例而言,心脏出血漏洞([Heartbleed][T1])是在其在广泛使用项目—— **OpenSSL** ——中引入了2年以后才被发现的。 -#### Software Responsibility or Accountability +#### 软件责任与义务 -This may not be important for individuals, but an **open-source software often comes with no warranties**. +对于个人用户这可能并不重要,但是**开源项目通常并无任何保证**。 -So, if a business uses it, they must take the responsibility of any losses or damages caused by the use of that software. +因此,如果一家公司使用它,它们必须自行承担任何由该软件使用造成的数据丢失与损坏。 -This is something that tells you that nothing can be 100% secure and bug-free. No matter how many eyes you have on a code, or how skilled the contributors are, there will be risks in some form, be it security or data loss. +这告诉你没有什么是100%安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,可能是安全风险可能是数据丢失。 -And this brings us to the fact that open-source software is not bulletproof. +这告诉我们一个现实:开源软件并非刀枪不入。 -### Open Source May Have its Edge for Better Security But… +### 开源软件有其更高安全性的优势,但是... -Nothing is superior when it comes to security. No matter if it is closed-source or open-source, the same set of principles apply when it comes to security. +就安全性而言没有什么优胜者。不论是闭源还是开源,当涉及安全问题时都适用同一套原则。 -There are various external factors that can affect the security of a software, and **many of those are not source dependent**. +有很多外部因素可以印象软件安全性,而**其中很多都不是来源相关的**。 -The code must be monitored in the same way to keep things secure. +代码必须被以某种形式监控以保证安全。 -Yes, the **open-source approach introduces benefits that closed-source software will never have**, but that does not mean that it is bulletproof. +是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是刀枪不入的。 -_What do you think about the state of security when it comes to open-source software?_ _Do you think it is superior to proprietary solutions?_ +_你对开源软件安全状况有何思考?_ _你又是否认为开源软件比专有软件解决方案更好呢?_ -I would appreciate your valuable thoughts in the comments down below. +提前感谢您在下面的评论中提出的宝贵意见。 -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! +#### 大型科技网站坐拥百万收入,而 It's FOSS 拥有每一个你! -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested +如果你喜欢我们在 It's FOSS 中所做的工作,请您考虑捐赠以支持我们的独立出版物。你的支持将有助于我们继续发布有关 Linux 桌面版以及开源软件的内容。 -------------------------------------------------------------------------------- @@ -150,7 +146,7 @@ via: https://news.itsfoss.com/open-source-software-security/ 作者:[Ankush Das][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[CanYellow](https://github.com/CanYellow) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -161,3 +157,5 @@ via: https://news.itsfoss.com/open-source-software-security/ [2]: https://itsfoss.com/what-is-linux-distribution/ [3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= [4]: https://itsfoss.com/linux-better-than-windows/ + +[T1]: https://www.cve.org/CVERecord?id=CVE-2014-0160 From e6613de7867552647a87d3ef2df2c7f4f2419b1b Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Sat, 7 Jan 2023 12:15:28 +0800 Subject: [PATCH 2511/3123] move file --- ...20210718 Is Open-Source Software Secure.md | 0 ...s for measuring your open source software usage.md | 145 ------------------ 2 files changed, 145 deletions(-) rename {sources => translated}/talk/20210718 Is Open-Source Software Secure.md (100%) delete mode 100644 translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/translated/talk/20210718 Is Open-Source Software Secure.md similarity index 100% rename from sources/talk/20210718 Is Open-Source Software Secure.md rename to translated/talk/20210718 Is Open-Source Software Secure.md diff --git a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md deleted file mode 100644 index f3efee7126..0000000000 --- a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md +++ /dev/null @@ -1,145 +0,0 @@ -[#]: subject: "8 ideas for measuring your open source software usage" -[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics" -[#]: author: "Georg Link https://opensource.com/users/georglink" -[#]: collector: "lkxed" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -衡量你开源软件使用的8个方法 -====== - -我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户群体和用户认知来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装以及触发了多少次实例。 - -长话短说,我们尚无法直接回答上述问题。 - -如果你想要寻找一个终极解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。 - -好消息是,有一些近似的和可选的指标至少能够部分地满足你对软件使用知识的渴求。本文探讨了这些替代方案以及他们的优点和缺点。 - -### 下载 - -当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人留下 Firefox 在一段时间内是一个流行的浏览器。 - -然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次由上述人员带来的下载次数。 - -下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到闪存上,然后安装到数百台设备上。 - -下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是运行时遇到了问题而遗弃了软件。 - -对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标: - -- 项目官网 -- 包管理器,比如 npm,PyPi 和 Maven -- 代码仓库,如 Github,GitLab,Gitee 等 - -你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式 (见于[《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括: - -- 从代码仓库克隆的数量,比如 GitHub,GitLab 和 Gitee -- 从官网下载的归档文件 (tar,zip) 的数量 -- 通过像 npm,PyPi 和 Maven 这样的包管理器下载的源代码数量 - -源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码并已经配置好了他们的构建流程来总是在每一次构建中都克隆你的版本库。再想象一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。 - -**[相关阅读[跟踪你的开源社区的5个指标][2]]** - -总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的代表。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以公正的假定广告推动了更多人下载软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者专属语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。 - -### 提问 - -作为一个开源项目,你可能有一个问题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提问者可能使用过你的软件。作为一名用户,他可能发现了一个漏洞或者确定了对新功能的需求。 - -很明显,大多数用户不会执行额外的步骤来提交问题。提问者是我们的忠实用户,我们对他们表示感谢。此外,通过提出问题,他们成为非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每10000名用户中,可能有100名提问者以及1名代码贡献者,当然取决于用户类型,上述比例可能有出入。 - -回到指标问题,你可以将提问者数量作为评估使用量的下界。相关的指标包括: - -- 提问者数量 -- 活跃提问者的数量 (在过去6个月内提出问题的提问者) -- 同时有代码贡献的提问者的数量 -- 尚未解决的问题的数量 -- 发布的问题评论的数量 - -### 邮件列表,论坛和问答网站 - -很多开源项目都拥有用户邮件列表,论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括: - -- 用户邮件列表的订阅量 -- 论坛用户的数量 -- 问题的数量 -- 答案的数量 -- 发布信息的数量 - -### 上报功能 - -为了获得精确的用户数量,一个方案是让软件在使用时上报信息。 - -这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。 - -负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用检测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许使用信息分享;但对于一些软件,因为希望开发人员从长远来看会将软件优化得更好,我愿意这样做。 - -### 加星标与克隆 - -加星标与克隆是如 GitHub 、 GitLab 、 Gitee 等社交化编程平台的功能。平台用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标以保持对感兴趣的项目的跟踪和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。 - -在社交化编程平台上的克隆 (Forks) 即将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改并将修改通过拉取请求 (pull request) 的方式提交审核。克隆比星标更能反映软件社区的大小。开发者也可能为了保存一份代码副本而克隆一个项目以便在原始仓库消失后他们仍能访问代码。因为克隆功能在代码贡献工作流中的应用,克隆量是衡量开发社区的良好指标。克隆量通常也不反映非开发人员的使用,因为非开发人员一般不创建克隆。 - -### 社交媒体 - -包括 Facebook、Instagram、LinkIn、Reddit、Twtter等的社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新、突出共献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。 - -我在犹豫是否建议关注指标因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动并想要在不实际使用的情况下关注它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括: - -- 关注与订阅的数量 -- 消息的数量 -- 活跃的消息作者的数量 -- 喜欢、分享、回复以及其他交互的数量 - -### 网站分析与文档 - -网站流量也是一个有用的指标。这一指标主要由你的服务范围以及市场营销活动影响而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大概随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的一般性的兴趣并进一步通过观察文档的访问者观察用户风向。这些指标包括: - -- 网站访问者数量 -- 文档访问者的数量 -- 访问者在你的网站与文档上所花的时间 - -### 活动 - -活动指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动中这可能都很有趣。当然,你如何推广你的活动可以很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交与参会者注册的增加表征软件受欢迎程度与用户群的增加。 - -你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要聚焦你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦开源项目的更新与公告,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。 - -你可以考虑如下指标: - -- 以你的项目为中心的活动的出席人数 -- 提交到以你的项目为中心的活动的演讲数量 -- 以你的项目为中心的演讲的出席人数 - -### 关于估算开源软件使用的结论 - -正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有手段比较多个具有共性——比如相似的功能、强大的相互依赖以及由同一基金会托管和其他特征——的开源项目的同一组指标,你就可以提升你对用户行为基线的感知。 - -需要注意的是,在本概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分被间接使用也会严重影响软件使用与行为,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。 - -最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最佳实践是总是一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。 - -我们感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢审阅并帮助优化本文的 CHAOSS 社区的成员。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/open-source-usage-metrics - -作者:[Georg Link][a] -选题:[lkxed][b] -译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/georglink -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/18/5/metrics-project-success -[2]: https://opensource.com/article/22/11/community-metrics - -[T1]: https://fosdem.org/ -[T2]: https://chaoss.community From 7f335891944fe0415a350dc8b88a4e8930802095 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 7 Jan 2023 13:13:53 +0800 Subject: [PATCH 2512/3123] RP @wxy https://linux.cn/article-15420-1.html --- ... Steps Drops apt, Adds Flathub and Pipewire.md | 83 +++++++++++++++++++ ... Steps Drops apt, Adds Flathub and Pipewire.md | 81 ------------------ 2 files changed, 83 insertions(+), 81 deletions(-) create mode 100644 published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md delete mode 100644 sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md diff --git a/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md new file mode 100644 index 0000000000..97aa2ad8ee --- /dev/null +++ b/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md @@ -0,0 +1,83 @@ +[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire" +[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15420-1.html" + +Nitrux 2.6.0 大胆抛弃 apt +====== + +![][1] + +> Nitrux 2.6.0 带有 Flathub、默认支持的 Pipewire、最新内核和 KDE 框架。 + +![Nitrux 2.6.0 Desktop][2] + +[Nitrux Linux][3] 是基于 Debian 的,它带有一个名为 NX 桌面的修改版的 KDE Plasma 桌面。这个独特的 Linux 发行版带来了一套自己的建立在 Maui kit 和 Qt 之上的 Nitrux 应用程序。Nitrux 是无 systemd 的,使用 OpenRC 作为启动系统。所有这些独特的功能和令人惊叹的外观,使它成为当今最好的 Linux 发行版之一。 + +Nitrux 2.6.0 被提升为一个主要版本,因为它对 12 月发布的 2.5.1 版本进行了关键的更新。 + +### Nitrux 2.6.0 的新内容 + +这个版本的一个主要重点是在 SDDM 显示管理器中引入 Plasma Wayland 会话。Wayland 还不是默认的,但可以作为选项选择。X11 仍然是默认的。我相信在下一个主要版本中 NItrux 团队可以默认启用 Wayland。 + +此外,现代声音管理器 Pipewire 现在是默认的,因为它已经在 Ubuntu 和 Fedora 中标准化了,而且感觉很稳定。由于有了 Pipewire,你的音频工作流程将变得更好。 + +Nitrux 2.6.0 还默认启用了最大的 Flatpak 应用程序仓库 - Flathub。这意味着你不需要再手动设置 Flatpak 和启用 Flathub。现在,Flatpak 应用程序的安装变得更加容易。 + +其他值得注意的变化包括:Nitrux 使根(/)分区成为不可变分区,以防止它被破坏,Samba 包现在是 Nitrux 默认安装的一部分,Calamares 安装程序有了一个定制的自动分区方案。 + +![Nitrux 2.6 安装自动分区][4] + +从一开始,Nitrux 就倾向于为其整个桌面组件提供自包含的可执行文件。主要的选择是 AppImage 文件格式。在这个版本中,你会得到默认的 Flathub 环境,而流行的 apt 软件包管理器现在被放弃了。这可能会改变一些用户的工作流程,因为 `apt` 命令将无法工作;尽管它是基于 Debian 的。 + +因此,Nitrux 团队建议使用 Distrobox 容器来设置单独的环境,以便与 apt 一起使用。然而,对于普通用户来说,理解容器、不可变的根分区会有点困难。 + +![apt 被放弃][5] + +讽刺的是 `apt` 会在安装时使用,因为 Calamares 需要它。然而,在安装完成后,它会被删除。 + +> 现场 ISO 中包括 APT 和 dpkg,但这是因为 Calamares 需要它们来完成安装,并将从安装的系统中删除。 +> +> —— NITRUX TEAM + +Nitrux 2.6.0 的核心是 liqurix 内核 6.1,以及游戏和多媒体功能。这个版本由 KDE Plasma 2.26.4、KDE Framework 5.101.0 和 Qt 5.15.7 LTS 驱动。 + +如果你想阅读更多信息,可以在 [这里][6] 找到详细的发布说明。 + +### 下载 + +你可以从以下页面下载这个版本。然而,没有可用的升级路径。因此,建议进行新的安装。 + +- [FOSS Torrents(Torrent)][7] +- [Sourceforge(镜像)][8] +- [OSDN(镜像)][9] + +参考自 [发布公告][10]。 + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/nitrux-2-6-0-release/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg +[3]: https://nxos.org/ +[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg +[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png +[6]: https://nxos.org/notes/notes-nitrux-2-6-0 +[7]: https://fosstorrents.com/distributions/nitrux/ +[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO +[9]: https://osdn.net/projects/nitrux/releases/p18379 +[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/ diff --git a/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md deleted file mode 100644 index 2a81845075..0000000000 --- a/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md +++ /dev/null @@ -1,81 +0,0 @@ -[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire" -[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire -====== - -![][1] - -**Nitrux 2.6.0 arrives with Flathub, Pipewire by default, latest Kernel and KDE framework.** - -![Nitrux 2.6.0 Desktop][2] - -[Nitrux Linux][3]is based on Debian, which features a modified version of the KDE Plasma desktop called NX Desktop. This unique Linux distribution brings its own set of Nitrux applications built upon Maui kit and Qt. Nitrux is systemd-free and uses OpenRC as an init system. With all these unique features and stunning looks, it is one of the best Linux distributions today. - -Nitrux 2.6.0 is bumped up to be a considerable major version due to critical updates since its prior release, 2.5.1 in December. - -### Nitrux 2.6.0: What’s New - -A major focus of this release is the introduction of the Plasma Wayland session in the SDDM display manager. It’s not default yet. But available as optional. X11 is still default. I believe in the next major release; the NItrux team can enable Wayland by default. - -In addition, the modern sound manager Pipewire is now default, as it was already standardized in Ubuntu and Fedora and feels stable. Thanks to Pipewire, your audio workflow will be much better. - -Nitrux 2.6.0 also enables the largest Flatpak app repo – Flathub, by default. That means you do not need to set up Flatpak & enable Flathub anymore manually. Installation of the Flatpak apps is now much easier. - -Other noteworthy changes include, Nitrux making the root (/) partition immutable to prevent it from breakage, the Samba package now part of Nitrux default install, and the Calamares installer getting a customized auto partition scheme. - -![Nitrux 2.6 install automatic partition][4] - -From the beginning, Nitrux prefers self-contained executables for its entire desktop components. The primary choice was the AppImage file format. You get Flathub set up by default in this release, whereas the popular apt package manager is now dropped. This might change some users’ workflow because the apt command won’t work; despite being based on Debian. - -Hence, the Nitrux team suggested using the Distrobox containers to set up the separate skeleton to be used with apt. However, it will be a little difficult for general users to understand the container, immutable root partition. - -![apt is not dropped][5] - -The irony is apt will be used during installation because Calamares needs it. However, it will be removed after installation is complete. - -> The Live ISO _includes APT and dpkg, but this is because Calamares needs them to complete the installation and will be removed from the installed system._Nitrux team - -At its core, Nitrux 2.6.0 features liqurix Kernel 6.1 aligned with gaming and multimedia. This version is powered by KDE Plasma 2.26.4, KDE Framework 5.101.0 and Qt 5.15.7 LTS. - -Detailed release notes are available [here][6] if you want to read more. - -### Download - -You can download this version from the following pages. However, there is no upgrade path available. Hence it is recommended to do a fresh installation. - -- [FOSS Torrents (Torrent)][7] -- [Sourceforge (mirror)][8] -- [OSDN (mirror)][9] - -Via [announcement][10] - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/nitrux-2-6-0-release/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg -[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg -[3]: https://nxos.org/ -[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg -[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png -[6]: https://nxos.org/notes/notes-nitrux-2-6-0 -[7]: https://fosstorrents.com/distributions/nitrux/ -[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO -[9]: https://osdn.net/projects/nitrux/releases/p18379 -[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/ From cd9b57c75afb8208ca1310432de8aafba29a1818 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 7 Jan 2023 14:04:37 +0800 Subject: [PATCH 2513/3123] Update 20190331 Codecademy vs. The BBC Micro.md --- sources/talk/20190331 Codecademy vs. The BBC Micro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index bb5ee313c8..197795acea 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: "yesimmia" +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 17c948ba893a665eea6c5c9a0e36b6004d772142 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Sat, 7 Jan 2023 16:28:46 +0800 Subject: [PATCH 2514/3123] first commit --- .../20190331 Codecademy vs. The BBC Micro.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index 197795acea..48c58de54e 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -7,13 +7,26 @@ [#]: publisher: " " [#]: url: " " +[Codecademy][T1] 比之 [The BBC Micro][T2] +====== + +DN Codecademy vs. The BBC Micro ====== +20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。这是多么吸引人,少数狂热的爱好者注意到了并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 + +DN In the late 1970s, the computer, which for decades had been a mysterious, hulking machine that only did the bidding of corporate overlords, suddenly became something the average person could buy and take home. An enthusiastic minority saw how great this was and rushed to get a computer of their own. For many more people, the arrival of the microcomputer triggered helpless anxiety about the future. An ad from a magazine at the time promised that a home computer would “give your child an unfair advantage in school.” It showed a boy in a smart blazer and tie eagerly raising his hand to answer a question, while behind him his dim-witted classmates look on sullenly. The ad and others like it implied that the world was changing quickly and, if you did not immediately learn how to use one of these intimidating new devices, you and your family would be left behind. +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年。通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 + +DN In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. +作为一个大胆的举动,BBC(英国广播公司)——由政府建立的公共服务广播公司——决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划_][T3], + +TD In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] [An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? @@ -143,3 +156,7 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [24]: tmp.zNBs2lK4Ca#fnref:6 [25]: tmp.zNBs2lK4Ca#fnref:7 [26]: tmp.zNBs2lK4Ca#fnref:8 + +[T1]: https://www.codecademy.com/ +[T2]: https://bbcmicro.computer/ +[T3]: https://clp.bbcrewind.co.uk/history From 1aa7f67904c0f9a2558ac2026150d9d77c7142a9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 7 Jan 2023 17:02:02 +0800 Subject: [PATCH 2515/3123] RP @geekpi https://linux.cn/article-15421-1.html --- ...What is Firefox ESR How to Install it in Ubuntu.md | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md (67%) diff --git a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md similarity index 67% rename from translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md rename to published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md index 2955a79d75..481d09dc61 100644 --- a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md +++ b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md @@ -3,30 +3,32 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15421-1.html" 什么是 Firefox ESR?如何在 Ubuntu 中安装它? ====== -Ubuntu 的 snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。 +![][0] + +Ubuntu 的 Snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。 ### 什么是 Firefox ESR? Firefox ESR 是 Firefox 的特别版,它不一定像普通版那样每月都有新功能,但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构,在这些地方,稳定性和核心功能比闪亮的新功能更重要。 -把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。他们不一定得到全新的功能,但他们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。 +可以把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。它们不一定得到全新的功能,但它们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。 #### 你为什么要关心 Firefox ESR? Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。 -但有些人可能不喜欢功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR可能值得一试。 +但有些人可能不喜欢各种功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR 可能值得一试。 -基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是与 Debian 相同的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。 +基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是 Debian 中携带的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。 -让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**_你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。_** +让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。** ### 在 Ubuntu 中安装 Firefox ESR @@ -43,7 +45,7 @@ Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的,所以你可以使用 PPA 只不过是一个由个别技术人员或开发者维护的仓库,拥有默认仓库所没有的东西。 -如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了[如何在 Linux 上使用 PPA][1]。 +如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了 [如何在 Linux 上使用 PPA][1]。 打开你的终端,使用给定的命令来添加 Firefox-ESR 的 PPA: @@ -75,7 +77,7 @@ firefox-esr -v ![check installed version of firefox esr in ubuntu][3] -##### 从 Ubuntu 卸载 Firefox-ESR +如何从 Ubuntu 卸载 Firefox-ESR? 如果 ESR 对你的工作来说感觉太过时了,或者由于其他原因你想从你的系统中删除它,你可以按照以下步骤删除 Firefox-ESR 包和仓库。 @@ -85,7 +87,7 @@ firefox-esr -v sudo apt remove firefox-esr ``` -现在,你可以使用给定的命令来[从 Ubuntu 删除 PPA][4]: +现在,你可以使用给定的命令来 [从 Ubuntu 删除 PPA][4]: ``` sudo add-apt-repository --remove ppa:mozillateam/ppa @@ -95,9 +97,9 @@ sudo add-apt-repository --remove ppa:mozillateam/ppa #### 方法 2:使用 Snap 安装 Firefox-ESR -不管你爱不爱它,Snaps 在 Ubuntu 上是预先配置好的,我发现使用 Snaps 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。 +不管你爱不爱它,Snap 在 Ubuntu 上是预先配置好的,我发现使用 Snap 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。 -使用 Snaps 安装 Firefox-ESR,你需要做的就是使用给定的命令: +使用 Snap 安装 Firefox-ESR,你需要做的就是使用给定的命令: ``` sudo snap install firefox --channel=esr/stable @@ -105,7 +107,7 @@ sudo snap install firefox --channel=esr/stable ![install firefox esr using snaps in ubuntu][5] -##### 删除 Firefox-ESR Snap +如何删除 Firefox-ESR Snap? 要删除 Firefox-ESR(snap 包),请使用 [snap remove 命令][6]: @@ -128,15 +130,16 @@ via: https://itsfoss.com/firefox-esr-ubuntu/ 作者:[Sagar Sharma][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/) 荣誉推出 [a]: https://itsfoss.com/author/sagar/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/ppa-guide/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png +[2]: https://itsfoss.com/content/images/wordpress/2022/11/add-firefox-esr-repository-in-ubuntu.png +[3]: https://itsfoss.com/content/images/wordpress/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png [4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ -[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png +[5]: https://itsfoss.com/content/images/wordpress/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png [6]: https://itsfoss.com/remove-snap/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/07/165704ojar9wfkvptwop0w.jpg \ No newline at end of file From d0ba5759e535eb2902d988a08a7e281fef86f1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 7 Jan 2023 19:43:29 +0800 Subject: [PATCH 2516/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230106.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Use=20time-series=20data=20to=20power=20your=20edge=20projects?= =?UTF-8?q?=20with=20open=20source=20tools.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...power your edge projects with open source tools.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md diff --git a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md new file mode 100644 index 0000000000..80c70c7b4b --- /dev/null +++ b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md @@ -0,0 +1,123 @@ +[#]: subject: "Use time-series data to power your edge projects with open source tools" +[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" +[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use time-series data to power your edge projects with open source tools +====== + +Gathering data as it changes over the passage of time is known as time-series data. Today, it has become a part of every industry and ecosystem. It is a large part of the growing IoT sector and will become a larger part of everyday people's lives. But time-series data and its requirements are hard to work with. This is because there are no tools that are purpose-built to work with time-series data. In this article, I go into detail about those problems and how InfluxData has been working to solve them for the past 10 years. + +### InfluxData + +InfluxData is an open source time-series database platform. You may know about the company through [InfluxDB][1], but you may not have known that it specialized in time-series databases. This is significant, because when managing time-series data, you deal with two issues — storage lifecycle and queries. + +When it comes to storage lifecycle, it's common for developers to initially collect and analyze highly detailed data. But developers want to store smaller, downsampled datasets that describe trends without taking up as much storage space. + +When querying a database, you don't want to query your data based on IDs. You want to query based on time ranges. One of the most common things to do with time-series data is to summarize it over a large period of time. This kind of query is slow when storing data in a typical relational database that uses rows and columns to describe the relationships of different data points. A database designed to process time-series data can handle queries exponentially faster. InfluxDB has its own built-in querying language: Flux. This is specifically built to query on time-series data sets. + +![Image of how Telegraf works.][2] + +### Data acquisition + +Data acquisition and data manipulation come out of the box with some awesome tools. InfluxData has over 12 client libraries that allow you to write and query data in the coding language of your choice. This is a great tool for custom use cases. The open source ingest agent, Telegraf, includes over 300 input and output plugins. If you're a developer, you can contribute your own plugin, as well. + +InfluxDB can also accept a CSV upload for small historical data sets, as well as batch imports for large data sets. + +``` +import math +bicycles3 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "3") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) +bicycles4 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "4") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner") +    |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"]) +    |> map(fn: (r) => ({ +        r with +        difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4)) +    })) +``` + +### Flux + +Flux is our internal querying language built from the ground up to handle time-series data. It's also the underlying powerhouse for a few of our tools, including tasks, alerts, and notifications. To dissect the flux query from above, you need to define a few things. For starters, a "bucket" is what we call a database. You configure your buckets and then add your data stream into them. The query calls the smartcity bucket, with the range of a specific day (a 24-hour period to be exact.) You can get all the data from the bucket, but most users include a data range. That's the most basic flux query you can do. + +Next, I add filters, which filter the data down to something more exact and manageable. For example, I filter for the count of bicycles in the neighborhood assigned to the id of 3. From there, I use aggregateWindow to get the mean for every hour. That means I expect to receive a table with 24 columns, one for every hour in the range. I do this exact same query for neighborhood 4 as well. Finally, I join the two tables and get the differences between bike usage in these two neighborhoods. + +This is great if you want to know what hours are high-traffic hours. Obviously, this is just a small example of the power of flux queries. But it gives a great example of some of the tools flux comes with. I also have a large amount of data analysis and statistics functions. But for that, I suggest checking out the Flux documentation. + +``` +import "influxdata/influxdb/tasks" +option task = {name: PB_downsample, every: 1h, offset: 10s} +from(bucket: "plantbuddy") +    |>range(start: tasks.lastSuccess(orTime: -task.every)) +    |>filter(fn: (r) => r["_measurement"] == "sensor_data") +    |>aggregateWindow(every: 10m, fn:last, createEmpty:false) +    |>yield(name: "last") +    |>to(bucket: "downsampled") +``` + +### Tasks + +An InfluxDB task is a scheduled Flux script that takes a stream of input data and modifies or analyzes it in some way. It then stores the modified data in a new bucket or performs other actions. Storing a smaller data set into a new bucket is called "downsampling," and it's a core feature of the database, and a core part of the time-series data lifecycle. + +You can see in the current task example that I've downsampled the data. I'm getting the last value for every 10-minute increment and storing that value in the downsampled bucket. The original data set might have had thousands of data points in those 10 minutes, but now the downsampled bucket only has 60 new values. One thing to note is that I'm also using the last success function in range. This tells InfluxDB to run this task from the last time it ran successfully, just in case it has failed for the past 2 hours, in which case it can go back three hours in time to the last successful run. This is great for built-in error handling. + +![Image of the checks and alerts notification system.][3] + +### Checks and alerts + +InfluxDB includes an alerting or checks and notification system. This system is very straightforward. You start with a check that looks at the data periodically for anomalies that you've defined. Normally, this is defined with thresholds. For example, any temperature value under 32° F gets assigned a value of `WARN`, and anything above 32° F gets assigned a value of `OK`, and anything below 0° F gets a value of `CRITICAL`. From there, your check can run as often as you deem necessary. There is a recorded history of your checks and the current status of each. You are not required to set up a notification when it's not needed. You can just reference your alert history as needed. + +Many people choose to set up their notifications. For that, you need to define a notification endpoint. For example, a chat application could make an HTTP call to receive your notifications. Then you define when you would like to receive notifications, for example you can have checks run every hour. You can run notifications every 24 hours. You can have your notification respond to a change in the value, for example `WARN` to `CRITICAL`, or when a value is `CRITICAL`, regardless of it changing from `OK` to `WARN`. This is a highly customizable system. The Flux code that's created from this system can also be edited. + +![Image of the new Edge feature.][4] + +### Edge + +To wrap up, I'd like to bring all the core features together, including a very special new feature that's recently been released. Edge to cloud is a very powerful tool that allows you to run the open source InfluxDB and locally store your data in case of connectivity issues. When connectivity is repaired, it streams the data to the InfluxData cloud platform. + +This is significant for edge devices and important data where any loss of data is detrimental. You define that you want a bucket to be replicated to the cloud, and then that bucket has a disk-backed queue to store the data locally. Then you define what your cloud bucket should replicate into. The data is stored locally until connected to the cloud. + +### InfluxDB and the IoT Edge + +Suppose you have a project where you want to [monitor the health of household plants][5] using IoT sensors attached to the plant. The project is set up using your laptop as the edge device. When your laptop is closed or otherwise off, it stores the data locally, and then streams it to my cloud bucket when reconnected. + +![Image showing how Plant buddy works.][6] + +One thing to notice is that this downsamples data on the local device before storing it in the replication bucket. Your plant's sensors provide a data point for every second. But it condenses the data to be an average of one minute so you have less data to store. In the cloud account, you might add some alerts and notifications that let you know when the plant's moisture is below a certain level and needs to be watered. There could also be visuals you could use on a website to tell users about their plants' health. + +Databases are the backbone of many applications. Working with time-stamped data in a time series database platform like InfluxDB saves developers time, and gives them access to a wide range of tools and services. The maintainers of InfluxDB love seeing what people are building within our open source community, so connect with us and share your projects and code with others! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools + +作者:[Zoe Steinkamp][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/zoesteinkamp +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack +[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png +[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png +[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png +[5]: https://opensource.com/article/22/5/plant-care +[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png From 31db9f791501407d12ba1c4003e276ad4242e191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 7 Jan 2023 19:46:30 +0800 Subject: [PATCH 2517/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230106.2=20=E2=AD=90=EF=B8=8F=20Budgie's=20Upcomin?= =?UTF-8?q?g=2010.7=20Release=20Promises=20These=203=20Key=20Improvements?= =?UTF-8?q?=20for=20Linux=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...es These 3 Key Improvements for Linux Users.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md diff --git a/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md new file mode 100644 index 0000000000..461694fa92 --- /dev/null +++ b/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md @@ -0,0 +1,97 @@ +[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users" +[#]: via: "https://news.itsfoss.com/budgie-10-7-features/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users +====== + +Budgie 10.7 is packed with valuable improvements. Check them out here. + +![Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users][1] + +Budgie is a desktop environment designed to keep clutter to a minimum and provide users with a clean/minimal experience. + +Back in January 2022, the former-co-lead of Solus, **Joshua Strobl**[left Solus][2] to work on [SerpentOS][3], but he continued to work on Budgie. + +So, he forked the project into a new repository and formed the [Buddies Of Budgie][4] organization. Three months after that, they released **Budgie 10.6**. + +It was a good release, if not extraordinary. + +Moving forward, they have shared the plans for 2023 which include the release of **Budgie 10.7**. + +[Joshua Strobl][5] also mentioned more about the plans in the blog post: + +> At the very least, it should serve as a good foundation to build on and provide a clear picture on where Budgie Desktop is going this year: Budgie 10.x will receive new features, QoL improvements, and fixes. Budgie 11 development will be underway. + +### Budgie 10.7: What Can You Expect? + +The development of Budgie 10.7 has been going on since last year. It was supposed to release in 2022, but more time was required to serve a polished experience. + +A lot of work has been done, but some of the notable ones include the following three changes: + +- **Updates to Budgie Menu** +- **New Budgie Screenshot Tool** +- **Improvements to Budgie Run Dialog** + +#### Updates to Budgie Menu + +![budgie 10.7 menu][6] + +For this release, Budgie Menu is set to receive several improvements, such as: + +- A new power menu with all the usual options, such as **Suspend, Hibernate, Logout, and Power Off**. +- Updated personal user menu with quick XDG directory access. This will let you open a file manager window directly into folders like Home, Documents, Music, etc. +- Quick access to Budgie Control Center and Desktop Settings. +- Ability to show various desktop settings from the menu itself. + +#### Budgie Screenshot Tool + +![budgie 10.7 screenshot tool][7] + +Finally, you won't need to download another tool to take a screenshot on Budgie; from 10.7 onwards, it will feature a native screenshot application. + +It will have capture support for the screen, window, and even selection capture! + +#### Improvements to Budgie Run Dialog + +![budgie 10.7 run dialog][8] + +The Budgie Run dialog will receive many improvements, such as: + +- A new application indexer will be used for Budgie Menu to find and sort applications. It is supposed to provide a 'predictable fuzzy search experience'. +- Improved calculation of dialog sizing according to the work area of the monitor. +- Better styling of labels for application names and descriptions. + +### Release & Future Plans + +According to their [announcement][9], they intend to release Budgie 10.7 sometime in **Q1, 2023.** They haven't settled for a specific date yet. + +A 10.7.1 release with bug fixes has been planned soon after, and the release of **Budgie 10.8** in Q2, 2023. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/budgie-10-7-features/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png +[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/ +[3]: https://serpentos.com +[4]: https://blog.buddiesofbudgie.org +[5]: https://joshuastrobl.com +[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg +[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png +[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg +[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/ From 5e71697d6f9ad63aafe8b1a8e289402e67e3d01c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 7 Jan 2023 19:47:03 +0800 Subject: [PATCH 2518/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230107.0=20=E2=AD=90=EF=B8=8F=20Learn=20w=20Comman?= =?UTF-8?q?d=20in=20Linux=20&=20BSD=20with=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...earn w Command in Linux & BSD with Examples.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md diff --git a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md new file mode 100644 index 0000000000..960d1c4af8 --- /dev/null +++ b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md @@ -0,0 +1,115 @@ +[#]: subject: "Learn w Command in Linux & BSD with Examples" +[#]: via: "https://www.debugpoint.com/w-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn w Command in Linux & BSD with Examples +====== + +**Here’s a beginner’s guide on understanding the w command in Linux & BSD with several examples.** + +![][1] + +_This article is part of the [Linux command][2] learning series._ + +### w command + +The `w` command is a utility in Linux that displays information about the users currently logged into the system and their processes. It shows who is logged on and what activities they are doing. That means it can show what processes they are running in their system. + +### Syntax + +Here is the basic syntax of the `w` command: + +``` +w [options] [username] +``` + +The `w` command takes an optional list of options, followed by an optional username. If a username is specified, `w` will only show information about processes owned by that user. + +### Examples of the w command and its usage + +Here are some examples of using the `w` command. + +When you run it with only w, it shows the following output. + +``` +$ w + 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56 +USER TTY LOGIN@ IDLE JCPU PCPU WHAT +debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary +``` + +![a basic output of w command in Linux][3] + +Explanation: The USER column gives you the username, followed by the terminal number, login date-time, IDLE time, CPU usage, and the process being executed by the user. + +- `USER` – Logged on user name in your Linux or BSD system. +- `TTY` – Terminal identifier number for the current session. +- `FROM` – Hostname or IP address of the user. +- `LOGIN@` – User logged in time. It sometimes shows dates based on your system settings. +- `IDLE` – Idle time elapsed since the user interacted with the terminal. +- `JCPU` – CPU time used by all the user processes for that session. +- `PCPU` – Time used by the process for the user, which is mentioned in the WHAT field. +- `WHAT` – Current process with arguments. + +Here’s another example of the w command with two users logged in a virtual machine environment. As you can see, two user names are shown with separate processes with process parameters currently running. + +![w command output for a demo multi-user environment][4] + +Let’s take a look at some options for this command. + +To show stop showing header, use the`-h` option. It’s identical to the `--no-header` switch. + +``` +$ w -h +``` + +The -f option toggles the visibility of FROM field in your output. + +``` +$ w -f +``` + +Use the `-s` option to print a short version of the output excluding JCPU, PCPU and LOGIN@ information. + +``` +$ w -s +``` + +To show a list of all processes owned by a specific user (for example, `debugpoint`): + +``` +$ w debugpoint +``` + +### Closing Notes + +I hope this article helps you to understand w command and its basics. You can also read the [w man pages][5] to learn more. Let me know if you have any questions. + +**This article is part of the [Linux command][2] learning series**. + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][6] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/w-command-linux-examples/ + +作者:[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/2023/01/whead.jpg +[2]: https://www.debugpoint.com/category/linux-commands +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg +[5]: https://linux.die.net/man/1/w +[6]: https://floss.social/@debugpoint From 2cd2072bd540d21210ebfec45c2b991db74f30eb Mon Sep 17 00:00:00 2001 From: Figaro Cao Date: Sat, 7 Jan 2023 20:29:56 +0800 Subject: [PATCH 2519/3123] Finished translating of Create a timer on Linux Finished translating of Create a timer on Linux --- .../tech/20211012 Create a timer on Linux.md | 87 ++++++++++--------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/sources/tech/20211012 Create a timer on Linux.md b/sources/tech/20211012 Create a timer on Linux.md index ff4f334435..12934668ca 100644 --- a/sources/tech/20211012 Create a timer on Linux.md +++ b/sources/tech/20211012 Create a timer on Linux.md @@ -7,32 +7,33 @@ [#]: publisher: " " [#]: url: " " -Create a timer on Linux +在Linux中创建计时器 ====== -A tutorial showing how to create a POSIX-compliant interval timer. +这是一个演示如何创建POSIX兼容的间隔计时器的教程 + ![Team checklist][1] -The timing of certain events is a common task for a developer. Common scenarios for timers are watchdogs, cyclic execution of tasks, or scheduling events for a specific time. In this article, I show how to create a POSIX-compliant interval timer using [timer_create(...)][2]. +对开发人员来说,确定某些事件的时间是一项常见任务。 计时器的常见场景是监督任务的循环执行或在特定时间安排事件。 在这篇文章中,我将演示如何使用 [timer_create(...)][2]创建一个POSIX兼容的间隔计时器。 -You can download the source code for the following examples from [GitHub][3]. +你可以从[GitHub][3]下载下面样例的源代码。 -### Prepare Qt Creator +### 准备 Qt Creator -I used [Qt Creator][4] as the IDE for this example. To run and debug the example code in Qt Creator, clone the [GitHub][3] repository, open Qt Creator, and go to **File -> Open File or Project...** and choose the **CMakeLists.txt**: +我使用[Qt Creator][4]作为样例的IDE。为了在Qt Creator运行和调试样例代码,克隆[GitHub][3]仓库,打开Qt Creator,在**File -> Open File or Project...** 并选择 **CMakeLists.txt**: ![Qt Creator open project][5] -Open a project in Qt Creator (CC-BY-SA 4.0) +在Qt Creator中打开项目 (CC-BY-SA 4.0) -After selecting the toolchain, click on **Configure Project**. The project contains three independent examples (we will only cover two of them in this article). With the green-marked menu, switch between the configurations for each example and activate **Run in terminal** for each of them (see the yellow mark below). The currently active example for building and debugging can be selected over the **Debug** button on the bottom left corner (see the orange mark below): +选择工具链之后,点击 **Configure Project**。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行**Run in terminal**(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的**Debug**按钮进行选择(参见下面的橙色标记)。 ![Project configuration][6] -Project configuration (CC-BY-SA 4.0) +项目配置 (CC-BY-SA 4.0) -### Threading timer +### 线程计时器 -Let's take a look at the _simple_threading_timer.c_ example. This is the simplest one: It shows how an interval timer is created, which calls the function **expired** on expiration. On each expiration, a new thread is created in which the function **expiration** is called. +让我们看看_simple_threading_timer.c_样例。这是最简单的一个。它展示了一个调用了超时函数**expired**的间隔计时器是如何被创建的。 ``` @@ -59,11 +60,11 @@ int main()     struct t_eventData eventData = { .myData = 0 }; -    /*  sigevent specifies behaviour on expiration  */ + /* sigevent指定了过期时要执行的操作 */     struct sigevent sev = { 0 }; -    /* specify start delay and interval -     * it_value and it_interval must not be zero */ + /* 指定启动延时时间和间隔时间 + * it_value和it_interval不能为零 */     struct itimerspec its = {   .it_value.tv_sec  = 1,                                 .it_value.tv_nsec = 0, @@ -77,7 +78,7 @@ int main()     sev.sigev_notify_function = &expired;     sev.sigev_value.sival_ptr = &eventData; -    /* create timer */ + /* 创建计时器 */     res = timer_create(CLOCK_REALTIME, &sev, &timerId);     if (res != 0){ @@ -85,7 +86,7 @@ int main()         [exit][10](-1);     } -    /* start timer */ + /* 启动计时器 */     res = timer_settime(timerId, 0, &its, NULL);     if (res != 0){ @@ -104,24 +105,24 @@ void expired(union sigval timer_data){ } ``` -The advantage of this approach is its small footprint, in terms of code and simple debugging. The disadvantage is the additional overhead due to the creation of a new thread on expiration and, consequently, the less deterministic behavior. +这种方法的优点是在代码和简单的调试方面占用空间小。缺点是由于到期时创建新线程而增加额外的开销和因此导致的不太确定的结果。 -### Interrupt Signal Timer +### 中断信号计时器 -Another possibility to be notified by an expired timer is based on a [kernel signal][12]. Instead of creating a new thread each time the timer expires, the kernel sends a signal to the process, the process is interrupted, and the corresponding signal handler is called. +超时计时器通知的另一种可能性是基于[内核信号][12]。 内核不是在每次计时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。 -As the default action when receiving a signal is to terminate the process (see [signal][13] man page), we have to prepare Qt Creator in advance so that properly debugging is possible. +由于接收信号时的默认操作是终止进程(参考[信号][13]手册页),我们必须要提前准备Qt Creator,以便进行正确的调试。 -The default behavior of Qt Creator when the debuggee receives a signal is: +当被调试对象接收到一个信号时,Qt Creator的默认行为是: - * Interrupt execution and switch to the debugger context. - * Display a pop-up window that notifies the user about the reception of a signal. + * 中断执行并切换到调试器上下文。 + * 显示一个弹出窗口,通知用户接收到信号。 -Both actions are not wanted as the reception of a signal is part of our application. +这两种操作都不需要,因为信号的接收是我们应用程序的一部分。 -Qt Creator uses GDB in the background. In order to prevent GDB from stopping the execution when the process receives a signal, go to **Tools** -> **Options**, select **Debugger**, and navigate to **Locals & Expressions**. Add the following expression to _Debugging Helper Customization_: +Qt Creator在后台使用GDB。为了防止GDB在进程接收到信号时停止执行,在“工具”菜单**Tools** -> **Options**,选择 **Debugger**,并导航到**Locals & Expressions**。添加下面的表达式到_Debugging Helper Customization_: ``` @@ -130,23 +131,23 @@ Qt Creator uses GDB in the background. In order to prevent GDB from stopping the ![Signal no stop with error][14] -Sig 34 no stop with error (CC-BY-SA 4.0) +Sig 34 发生错误时未停止 (CC-BY-SA 4.0) -You can find more information about GDB signal handling in the [GDB documentation][15]. +你可以在[GDB documentation][15]找到更多关于GDB信号处理的信息。 -Next, we want to suppress the pop-up window that notifies us every time a signal is received when we stop in the signal handler: +接下来,当我们在信号处理程序中停止时,我们想要抑制每次接收到信号时通知我们的弹出窗口: ![Signal 34 pop up box][16] -Signal 34 pop-up box (CC-BY-SA 4.0) +Signal 34 弹出窗口 (CC-BY-SA 4.0) -To do so, navigate to the tab **GDB** and uncheck the marked checkbox: +为此,导航到**GDB**标签并取消勾选标记的复选框: ![Timer signal windows][17] -Timer signal windows (CC-BY-SA 4.0) +计时器信号窗口 (CC-BY-SA 4.0) -Now you can properly debug the _signal_interrupt_timer_. The actual implementation of the signal timer is a bit more complex: +现在你可以正确的调试_signal_interrupt_timer_。真正的信号计时器的实施会更复杂一些: ``` @@ -177,10 +178,10 @@ int main()     struct sigevent sev = { 0 };     struct t_eventData eventData = { .myData = 0 }; -    /* specifies the action when receiving a signal */ + /* 指定收到信号时的操作 */     struct sigaction sa = { 0 }; -    /* specify start delay and interval */ + /* 指定启动延时的时间和间隔时间 */     struct itimerspec its = {   .it_value.tv_sec  = 1,                                 .it_value.tv_nsec = 0,                                 .it_interval.tv_sec  = 1, @@ -193,7 +194,7 @@ int main()     sev.sigev_signo = SIGRTMIN;     sev.sigev_value.sival_ptr = &eventData; -    /* create timer */ + /* 创建计时器 */     res = timer_create(CLOCK_REALTIME, &sev, &timerId);     if ( res != 0){ @@ -201,22 +202,22 @@ int main()         [exit][10](-1);     } -    /* specifz signal and handler */ + /* 指定信号和处理程序 */     sa.sa_flags = SA_SIGINFO;     sa.sa_sigaction = handler; -    /* Initialize signal */ + /* 初始化信号 */     sigemptyset(&sa.sa_mask);     [printf][7]("Establishing handler for signal %d\n", SIGRTMIN); -    /* Register signal handler */ + /* 注册信号处理程序 */     if (sigaction(SIGRTMIN, &sa, NULL) == -1){         [fprintf][8](stderr, "Error sigaction: %s\n", [strerror][9](errno));         [exit][10](-1);     } -    /* start timer */ + /* 启动计时器 */     res = timer_settime(timerId, 0, &its, NULL);     if ( res != 0){ @@ -239,11 +240,11 @@ handler(int sig, siginfo_t *si, void *uc) } ``` -In contrast to the threading timer, we have to initialize the signal and register a signal handler. This approach is more performant as it won't cause the creation of additional threads. For this reason, the execution of the signal handler is also more deterministic. The drawback is clearly the extra configuration effort to debug this properly. +与线程计时器相反,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。 -### Summary +### 总结 -Both methods described in this article are close-to-the-kernel implementations of timers. Even if the [timer_create(...)][2] function is part of the POSIX specification, it is not possible to compile the sample code on a FreeBSD system due to small differences in data structures. Besides this drawback, such an implementation gives you fine-grained control for general-purpose timing applications. +本文中描述的两种方法都是计时器的接近内核的实现。即使[timer_create(...)][2]函数是POSIX规范的一部分, 在FreeBSD系统上编译样例代码是不可能的,因为数据结构的差异很小。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。 -------------------------------------------------------------------------------- @@ -251,7 +252,7 @@ via: https://opensource.com/article/21/10/linux-timers 作者:[Stephan Avenwedde][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[FigaroCao](https://github.com/FigaroCao) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9a0754fb0add8391379a89e0e27a91be24bd09ed Mon Sep 17 00:00:00 2001 From: Figaro Cao Date: Sat, 7 Jan 2023 20:34:14 +0800 Subject: [PATCH 2520/3123] Rename sources/tech/20211012 Create a timer on Linux.md to translated/tech/20211012 Create a timer on Linux.md moved to translated folder --- {sources => translated}/tech/20211012 Create a timer on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20211012 Create a timer on Linux.md (100%) diff --git a/sources/tech/20211012 Create a timer on Linux.md b/translated/tech/20211012 Create a timer on Linux.md similarity index 100% rename from sources/tech/20211012 Create a timer on Linux.md rename to translated/tech/20211012 Create a timer on Linux.md From 8c60a4a9612e2ead3f20c1d2cf300294eb9cec63 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 8 Jan 2023 11:33:44 +0800 Subject: [PATCH 2521/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow https://linux.cn/article-15423-1.html 很棒! --- ...20210718 Is Open-Source Software Secure.md | 105 +++++++++--------- 1 file changed, 53 insertions(+), 52 deletions(-) rename {translated/talk => published}/20210718 Is Open-Source Software Secure.md (51%) diff --git a/translated/talk/20210718 Is Open-Source Software Secure.md b/published/20210718 Is Open-Source Software Secure.md similarity index 51% rename from translated/talk/20210718 Is Open-Source Software Secure.md rename to published/20210718 Is Open-Source Software Secure.md index 7e0b33aec4..cc02f9b43e 100644 --- a/translated/talk/20210718 Is Open-Source Software Secure.md +++ b/published/20210718 Is Open-Source Software Secure.md @@ -3,18 +3,20 @@ [#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) [#]: collector: (lujun9972) [#]: translator: (CanYellow) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15423-1.html) 开源软件安全吗? ====== -作为一个偏爱 [Linux桌面发行版][1] 并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。 +![][0] -然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多的内容吧! +作为一个偏爱 [在桌面电脑上使用 Linux][1],并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。 -本文,我计划分享我关于开源软件是否安全的思考以及哪些事情与开源软件的安全性相关。 +然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多观点! + +在本文,我计划分享我关于开源软件是否安全的思考,以及哪些事情与开源软件的安全性相关。 ### 为什么你需要关注开源软件是否安全? @@ -22,123 +24,119 @@ 举个例子,大多数专有软件工具依赖于某种形式的开源库来保证其正常工作。 -此外,各种规模的公司(包括 Google、Microsoft 和 Facebook )依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。 +此外,各种规模的公司(包括谷歌、微软和 Facebook)依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。 因此,开源软件的安全性是有必要了解的。 -### 有关开源软件安全性的谣言 +### 有关开源软件安全性的迷思 ![][3] 虽然有多种理由证明开源软件在安全性方面的缺陷,然而其中一些实际毫无意义。 -#### 任何人都可以查看 & 恶意利用开源软件代码 +#### 任何人都可以查看并恶意利用开源软件代码 是的,开源软件代码对于任何人都是可访问的。但是你可以查看代码并不意味着你可以利用它。 -**不现实** +**不现实。** -即使任何人都可以克隆(或者拷贝)该软件,原始软件也不能轻易地被修改使用。 +即使任何人都可以复刻(或者拷贝)该软件,原始软件也不能轻易地被修改使用。 -通常,项目维护人员(或者维护团队)管理代码仓库并且接受来自贡献者的提交。开源软件代码在接受之前被审查。没有人可以像那样劫持代码。 +通常,项目维护人员(或者维护团队)管理代码仓库,并且接受来自贡献者的提交。开源软件代码在接受之前会被审查。没有人可以就这样劫持代码。 -**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码** +**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码。** -#### 失去专用资源,安全性无从谈起 +#### 没有专职团队,安全性无从谈起 很多人相信如果开源软件没有专职人员或者专职团队,维护软件安全性是困难的。 -恰恰相反,由于各种个样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。 +恰恰相反,由于各种各样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。 -他们可能比由专用软件所聘用的少数开发者更能够发现安全问题。 +他们可能比由专有软件所聘用的少数开发者更能够发现安全问题。 一些来自 Mozilla 等同类公司的项目拥有自己的专职团队来高效处理安全问题。同样的,大部分成功的开源项目拥有大量的资源用于保障安全性。 -因此,开源软件的生态系统是安全性的组合包。即使没有专职资源,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。 +因此,开源软件的生态系统是安全性的组合包。即使没有专职团队,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。 ### 开源软件是安全的,以下是原因 -![][3] +![][5] -既然我们已经解决了有关开源软件安全性的谣言,让我重点展示一下开源软件是如何处理安全问题的。 +既然我们已经澄清了这些有关开源软件安全性的迷思,让我重点展示一下开源软件是如何处理安全问题的。 换句话说,开源软件在安全性上的优势。 -请不要忘记,开源软件的优势也是 [ Linux 比 Windows 更好][4]的一些原因。 +请不要忘记,开源软件的优势也是 [Linux 比 Windows 更好][4] 的一些原因。 #### 更多的眼晴关注开源软件代码 -不像专有软件,代码访问仅不限于少数开发者。 +不像专有软件,(对开源软件的)代码访问并不局限于少数几个开发者。 -一些开源项目甚至可能拥有数以万记的开发者查看代码、审查它们并标记和修复其中的安全性问题。 +一些开源项目甚至可能拥有数以万记的开发者可以查看代码、审查它们并标记和修复其中的安全性问题。 -这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的相比闭源软件的优势。 +相比闭源软件,这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的优势。 不仅仅限于拥有更多的开发者,企业通常也会参与他们所使用的开源项目。当他们这样做的时候,他们也会查阅代码并审查它们。 -这提供了外部审查的另一条途径,而这可能有助于提升开源软件的安全性。 +这提供了另一条外部审查的途径,而这可能有助于提升开源软件的安全性。 -反之,就闭源软件而言,有限人数的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。 +反之,就闭源软件而言,数量有限的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。 #### 社区决定安全问题的优先级 闭源软件的开发者可能在处理什么问题和什么时候解决问题等方面有某些限制或者优先等级。 -而如果是开源项目,贡献者社区可以自行决定优先级并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。 +而如果是开源项目,贡献者社区可以自行决定优先级,并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。 -着手处理和修复安全问题的决定在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处: +着手处理和修复安全问题的决策在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处: - * **透明度** - * **不依赖供应商** - * **更快的安全更新** + * 透明度 + * 不依赖供应商 + * 更快的安全更新 -### 开源软件不是刀枪不入的,以下是原因 +### 开源软件不是防弹的,以下是原因 -![][3] +![][6] -虽然有开源软件可能在安全性上具有优势的案例,然而仍有一些因素影响它。 +虽然在某些情况下,开源软件可能在安全性上具有优势,然而仍有一些因素影响它。 -承认这些问题的存在是很重要的,据此,企业或者个人可以就一款开源软件的安全情况做出更好的决定。 +承认这些问题的存在是很重要的,据此,企业或者个人可以就开源软件的安全情况做出更好的决定。 #### 并无足够的眼睛来审查代码和不确定性 -即使开源软件代码可以由全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。 +即使开源软件代码可以被全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。 -既如此,我们不能对经同行审查的开源软件抱有极高的信心,因为它恰好缺失了这一点。 +既如此,我们不能对开源软件的同行审查抱有极高的信心,因为它恰好缺失了这一点。 开源软件可能“声称”拥有最高的安全性因为它们是开源的。在没有足够的开发者致力于该项目时,这是一种误导。 -同样,我们也无从得知有多少开发者在查看/检查代码以及代码走查在多大程度上进行。 +同样,我们也无从得知有多少开发者在查看/检查代码,也不知道代码的检查进行到什么程度了。 -举例而言,心脏出血漏洞([Heartbleed][T1])是在其在广泛使用项目—— **OpenSSL** ——中引入了2年以后才被发现的。 +举例而言,[心脏出血漏洞][T1]Heartbleed 是在一个被广泛使用的项目(OpenSSL)中引入了 2 年以后才被发现的。 -#### 软件责任与义务 +#### 软件责任与问责 对于个人用户这可能并不重要,但是**开源项目通常并无任何保证**。 因此,如果一家公司使用它,它们必须自行承担任何由该软件使用造成的数据丢失与损坏。 -这告诉你没有什么是100%安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,可能是安全风险可能是数据丢失。 +这告诉你,没有什么是 100% 安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,无论是安全风险还是数据丢失。 -这告诉我们一个现实:开源软件并非刀枪不入。 +这告诉我们一个现实:开源软件并非防弹的。 ### 开源软件有其更高安全性的优势,但是... 就安全性而言没有什么优胜者。不论是闭源还是开源,当涉及安全问题时都适用同一套原则。 -有很多外部因素可以印象软件安全性,而**其中很多都不是来源相关的**。 +有很多外部因素可以影响软件安全性,而**其中很多因素并不依赖于源代码**。 -代码必须被以某种形式监控以保证安全。 +必须以某种形式监控代码,以保证安全。 -是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是刀枪不入的。 +是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是防弹的。 -_你对开源软件安全状况有何思考?_ _你又是否认为开源软件比专有软件解决方案更好呢?_ +_你对开源软件安全状况有何思考?你又是否认为开源软件比专有软件解决方案更好呢?_ -提前感谢您在下面的评论中提出的宝贵意见。 - -#### 大型科技网站坐拥百万收入,而 It's FOSS 拥有每一个你! - -如果你喜欢我们在 It's FOSS 中所做的工作,请您考虑捐赠以支持我们的独立出版物。你的支持将有助于我们继续发布有关 Linux 桌面版以及开源软件的内容。 +提前感谢你在下面的评论中提出的宝贵意见。 -------------------------------------------------------------------------------- @@ -147,7 +145,7 @@ via: https://news.itsfoss.com/open-source-software-security/ 作者:[Ankush Das][a] 选题:[lujun9972][b] 译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -155,7 +153,10 @@ via: https://news.itsfoss.com/open-source-software-security/ [b]: https://github.com/lujun9972 [1]: https://news.itsfoss.com/linux-foundation-linux-desktop/ [2]: https://itsfoss.com/what-is-linux-distribution/ -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= +[3]: https://news.itsfoss.com/content/images/wordpress/2021/07/hacker-exploit-illustration.png [4]: https://itsfoss.com/linux-better-than-windows/ +[5]: https://news.itsfoss.com/content/images/wordpress/2021/07/open-source-security-illustration.png +[6]: https://news.itsfoss.com/content/images/wordpress/2021/07/open-source-security-issue.jpg [T1]: https://www.cve.org/CVERecord?id=CVE-2014-0160 +[0]: https://news.itsfoss.com/content/images/size/w2000/wordpress/2021/07/open-source-security.jpg \ No newline at end of file From f576c5bfa3fd4dd6595cc4ca253b9060cf10a8ed Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 8 Jan 2023 12:53:01 +0800 Subject: [PATCH 2522/3123] ALL @wxy https://linux.cn/article-15424-1.html --- ...es These 3 Key Improvements for Linux Users.md | 97 +++++++++++++++++++ ...es These 3 Key Improvements for Linux Users.md | 97 ------------------- 2 files changed, 97 insertions(+), 97 deletions(-) create mode 100644 published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md delete mode 100644 sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md diff --git a/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md new file mode 100644 index 0000000000..9d332fdddd --- /dev/null +++ b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md @@ -0,0 +1,97 @@ +[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users" +[#]: via: "https://news.itsfoss.com/budgie-10-7-features/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15424-1.html" + +Budgie 10.7 即将带来 3 项关键改进 +====== + +> Budgie 10.7 有很多有价值的改进。请看本文。 + +![][1] + +Budgie 是一个旨在将杂乱无章降到最低,为用户提供一个干净/简约的体验的桌面环境。 + +早在 2022 年 1 月,Solus 的前联合负责人 Joshua Strobl [离开了 Solus][2],从事 [SerpentOS][3] 的开发,但他还继续参与 Budgie 的开发。 + +因此,他将该项目复刻到一个新的代码仓库,并成立了 [Buddies Of Budgie][4] 组织。三个月后,他们发布了 **Budgie 10.6**。 + +这是一个很不错的版本,即使不是很特别。 + +展望未来,他们发布了 2023 年的计划,其中包括发布 **Budgie 10.7**。 + +[Joshua Strobl][5] 在博文中也提到了更多计划内容: + +> 至少,它应该是一个很好的基础,并为 Budgie 桌面今年的发展方向提供一个清晰的蓝图:Budgie 10.x 将会增加新的功能、QoL 改进和修复。Budgie 11 的开发工作也将起步。 + +### Budgie 10.7 可以期待什么? + +Budgie 10.7 的开发工作自去年以来一直在进行。它本应在 2022 年发布,但需要更多的时间来提供一个完美的体验。 + +已经完成了很多工作,但其中一些值得注意的三个变化是: + +- 对 Budgie 菜单的更新 +- 新的 Budgie 屏幕截图工具 +- 对 Budgie 运行对话框的改进 + +#### 对 Budgie 菜单的更新 + +![Budgie 10.7 菜单][6] + +在这个版本中,Budgie 菜单将得到一些改进,例如。 + +- 一个新的电源菜单,包含所有常用的选项,如**暂停、休眠、注销和关闭电源**。 +- 更新的个人用户菜单可以快速访问 XDG 目录。这将让你直接打开文件管理器窗口进入主页、文档、音乐等文件夹。 +- 快速访问 Budgie 控制中心和桌面设置。 +- 能够从菜单本身显示各种桌面设置。 + +#### Budgie 屏幕截图工具 + +![Budgie 10.7 屏幕截图工具][7] + +终于,你不再需要下载另一个工具来在 Budgie 上进行截图;从 10.7 开始,它将具有一个原生的屏幕截图应用程序。 + +它将支持对屏幕、窗口的捕捉,甚至是进行选区捕捉。 + +#### 对 Budgie 运行对话框的改进 + +![Budgie 10.7 运行对话框][8] + +Budgie 运行对话框将获得许多改进,例如: + +- 一个新的应用程序索引器将被用于 Budgie 菜单,以寻找和分类应用程序。它应该能提供一个 “可预测的模糊搜索体验”。 +- 根据显示器的工作区域改进对话框的大小计算。 +- 更好的应用程序名称和描述的标签样式。 + +### 发布和未来计划 + +根据他们的 [公告][9],他们打算在 2023 年第一季度的某个时候发布 Budgie 10.7。他们还没有确定一个具体的日期。 + +并计划在不久之后发布带有错误修复的 10.7.1 版本,然后在 2023 年第二季度发布 Budgie 10.8。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/budgie-10-7-features/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png +[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/ +[3]: https://serpentos.com +[4]: https://blog.buddiesofbudgie.org +[5]: https://joshuastrobl.com +[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg +[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png +[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg +[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/ diff --git a/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md deleted file mode 100644 index 461694fa92..0000000000 --- a/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users" -[#]: via: "https://news.itsfoss.com/budgie-10-7-features/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users -====== - -Budgie 10.7 is packed with valuable improvements. Check them out here. - -![Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users][1] - -Budgie is a desktop environment designed to keep clutter to a minimum and provide users with a clean/minimal experience. - -Back in January 2022, the former-co-lead of Solus, **Joshua Strobl**[left Solus][2] to work on [SerpentOS][3], but he continued to work on Budgie. - -So, he forked the project into a new repository and formed the [Buddies Of Budgie][4] organization. Three months after that, they released **Budgie 10.6**. - -It was a good release, if not extraordinary. - -Moving forward, they have shared the plans for 2023 which include the release of **Budgie 10.7**. - -[Joshua Strobl][5] also mentioned more about the plans in the blog post: - -> At the very least, it should serve as a good foundation to build on and provide a clear picture on where Budgie Desktop is going this year: Budgie 10.x will receive new features, QoL improvements, and fixes. Budgie 11 development will be underway. - -### Budgie 10.7: What Can You Expect? - -The development of Budgie 10.7 has been going on since last year. It was supposed to release in 2022, but more time was required to serve a polished experience. - -A lot of work has been done, but some of the notable ones include the following three changes: - -- **Updates to Budgie Menu** -- **New Budgie Screenshot Tool** -- **Improvements to Budgie Run Dialog** - -#### Updates to Budgie Menu - -![budgie 10.7 menu][6] - -For this release, Budgie Menu is set to receive several improvements, such as: - -- A new power menu with all the usual options, such as **Suspend, Hibernate, Logout, and Power Off**. -- Updated personal user menu with quick XDG directory access. This will let you open a file manager window directly into folders like Home, Documents, Music, etc. -- Quick access to Budgie Control Center and Desktop Settings. -- Ability to show various desktop settings from the menu itself. - -#### Budgie Screenshot Tool - -![budgie 10.7 screenshot tool][7] - -Finally, you won't need to download another tool to take a screenshot on Budgie; from 10.7 onwards, it will feature a native screenshot application. - -It will have capture support for the screen, window, and even selection capture! - -#### Improvements to Budgie Run Dialog - -![budgie 10.7 run dialog][8] - -The Budgie Run dialog will receive many improvements, such as: - -- A new application indexer will be used for Budgie Menu to find and sort applications. It is supposed to provide a 'predictable fuzzy search experience'. -- Improved calculation of dialog sizing according to the work area of the monitor. -- Better styling of labels for application names and descriptions. - -### Release & Future Plans - -According to their [announcement][9], they intend to release Budgie 10.7 sometime in **Q1, 2023.** They haven't settled for a specific date yet. - -A 10.7.1 release with bug fixes has been planned soon after, and the release of **Budgie 10.8** in Q2, 2023. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/budgie-10-7-features/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png -[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/ -[3]: https://serpentos.com -[4]: https://blog.buddiesofbudgie.org -[5]: https://joshuastrobl.com -[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg -[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png -[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg -[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/ From fa0f91eca2a0fd1b0ffd1da6dab99f82192306e4 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sun, 8 Jan 2023 16:31:13 +0800 Subject: [PATCH 2523/3123] h --- ...alks about Vanilla OS and Other Future Projects.md | 155 ------------------ 1 file changed, 155 deletions(-) delete mode 100644 sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md deleted file mode 100644 index afe4c238a8..0000000000 --- a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md +++ /dev/null @@ -1,155 +0,0 @@ -[#]: subject: "'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects" -[#]: via: "https://news.itsfoss.com/interview-mirko-brombin/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects -====== - -A conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator. - -!['Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects][1] - -There are many interesting personalities in the Linux and open-source world. - -We aim to interact with them and share their stories/thoughts with you. While we did a few interviews in 2021, we are resuming the mission to share insightful conversations with amazing folks in our open-source and Linux universe. - -[Mirko Brombin][2] is one such cool guy 😎 He works as a UX designer full-time, and despite doing all that, he is involved with open-source projects that we admire! - -If you did not know, he is the creator of **[Bottles][3]** (an app to run Windows apps/games on Linux) and **[Vanilla OS][4]**'s founder. - -So, I asked a couple of questions to provide details about his **projects**, his **work/life**, and some **valuable tips** for our readers who want to join the open-source community. - -**Q.** _**Many people think that we have more than enough distros. Why Vanilla OS?**_ - -![vanilla os][5] - -**A:** It is because this one is 10x faster and safer than all the others! Just kidding. **Vanilla OS was born mainly out of a need of mine and a desire to experiment**. I have been a Linux user for many years and have tried many distributions. They always suffered from the lack of certain features and concepts that led me to compulsively distro-hop. In recent years I have been a happy user of Silverblue, a distribution that made me explore the benefits of immutable systems. - -Silverblue is a fantastic project. It's one of the most solid distributions I have tried. However, it does not fully meet my needs. Maintaining Bottles often requires me to play games for testing purposes, and having an NVIDIA GPU, I have had quite a few problems with Silverblue, from driver installation to constant driver breakage and a distinctly noticeable drop in performance. Let's be clear, **NVIDIA is a problem in every distribution** but there is much that can be done to improve the quality of life for users using these GPUs, such as guiding driver installation, pre-configuring the setup for Optimus (Integrated+Dedicated) laptops, and allowing PRIME profile switching in an easy way. To date, only Ubuntu and derivatives have been pre-configured for this workflow. - -![nvidia illustration][6] - -My problem with Ubuntu-based distributions is that they do not offer an experience compatible with my needs either. **I am a devoted GNOME user**, I fully endorse the user experience envisioned by GNOME, and I am completely addicted to it. - -I understand the need for **Ubuntu, Pop!_OS,** and others to provide their own vision and branding, but these modifications are deal breakers for me and probably for many users. GNOME designers and developers are professionals that have been working in this industry for countless years, perfecting their vision, but many distributions change the workflow in ways that I cannot use my systems effectively. - -**Another problem with Ubuntu is that it does not offer immutability and atomicity of transactions**, two mechanisms that make the system solid and safe from easy breakage, for example, when an update goes wrong. - -![solving ubuntu problems][7] - -Adding up all those shortcomings and my passion for throwing myself into increasingly complex projects, I decided to create **Vanilla OS, an Ubuntu-based distribution, with a stock GNOME desktop** and all the merits of immutability and atomicity. - -**Q.****_Some of your projects, like Bottles and the upcoming Vanilla OS, are immensely popular. Do you have other project ideas for the future?_****A:** I have a long list of projects that I would like to accomplish in the future, but my next goal is to develop and contribute to a project idealized by @[TheEvilSkeleton][8]: a **utility to configure MangoHud, an overlay that displays useful information about game FPS, temperatures, CPU/GPU load and more**. - -With this new project, we plan to integrate it in Bottles and provide a graphical interface to customize MangoHud parameters. Similarly, we did the same thing for vkBasalt with vkbasalt-cli. - -**_Q. There will always be a new distro, even if some of us would rather not see more. When I tried out Vanilla OS, it did not feel like “just another distro” but with a unique angle to it._****_So, what’s your near future plan with Vanilla OS?_****A:** My future plan for Vanilla OS is **to make the project sustainable so that I can work on it full-time**. This is more of a dream in my drawer but, who knows. - -I have many ideas that I'll share on social media eventually. Something I can tell you now is that one of my dreams is to see Vanilla OS on multiple platforms like desktops, mobile, and tablets. I want to create an environment with an Apple-like continuity, without the scamming, as the **user experience is always the main focus for me.** - -Q. _**Bottles is a fantastic tool to help users run Windows software on Linux in a few clicks. Various other tools like Heroic Games Launcher have been trying to make things easy for Windows users to play their favorite games on Linux easily.**__**How do you think that’s going? Do you have any stats to share about that through Bottles?**_**A:** Heroic is a project that I admire and follow closely. I am friends with [Flavio][9] (the founder) and [Linguin][10] (one of the developers), and I know how hard the whole team is working to make the gaming experience on Linux more and more fulfilling, so **a Hooray! for Heroic**. - -![Heroic Games launcher][11] - -**Bottles** is like a son to me, I have raised him at my best, and he is giving me a lot of satisfaction. Recently I had to decrease my presence in the project to focus on others and my daily job. This has been possible thanks to a team of contributors who have joined over time, people who share the same vision of the project as I do and cherish its ideals. - -![bottles screenshot][12] - -The structure of the project is changing radically. Initially, I was the one making every decision, whereas now everything is discussed and put to a vote, trying to get a shared verdict. In this, it is like watching a son grow up and make his own decisions, aware of what I have taught him over time. - -**Release 2022.11.14**, is the first release entirely developed by the Bottles team. One of the best releases ever in my opinion. For this, I have to give special thanks to @**TheEvilSkeleton,** who led the release, and [noëlle][13], who made the graphics part. - -A small milestone I would like to share with you is the **achievement of 400,000+ downloads from Flathub.** 🎉 - -![Bottle download stats][14] - -_**Q. If someone gets interested in contributing to any one of your projects. What advice would you give them? What programming language should they focus on if they want to collaborate with you?**_**A:** My advice is not to be afraid to contribute and ask questions, even if it's a "bad" question. Even if you are afraid. There is no such thing as a bad contribution. A well-written ticket is already a great way to do your part. Personally, I don't give weight to contributions, I give credit to those who have spent much more time certainly, but for me, every single contribution is a small brick that helps the project grow. - -**I mostly use Python and Go** for my projects but I would not make it a requirement. If a user wants to help with Vanilla OS, for example by making an application we need, well, they can use whatever language they like. - -![python programming][15] - -The only thing I would ask is to carefully consider the language and choose the one best suited for the type of project you need to create, as the choice will affect who can contribute (or not), for example, I would never choose Rust for a small tool, as Rust is not an easy language for newcomers and new contributors typically contribute to smaller projects that are written in user-friendly languages. - -_**Q. Other than your creations, what other project or distro would you mention as one of your favorites?**_**A:** I have many projects that I would like to mention here, but it would become a season of Vikings. Among all of them, the one that, in my opinion, deserves mention is **Distrobox, a project made by** [Luca di Maio][16]**, a friend of mine as well as an active member in the making of the Vanilla OS project.** - -Distrobox is a tool that installs Linux distributions inside managed containers integrated with the system, allowing, for example, to install and run software in a Fedora container while running Ubuntu, integrating it seamlessly with the host system. - -Distrobox is also employed by Apx, the Vanilla OS package manager. Every package installed through Apx resides in the Distrobox container, keeping the system safe from any discrepancies or breaks from a possible update gone wrong. - -_**Q. How do you keep up with all the projects you’re working on? What’s your mantra on productivity or time management?**_**A:** Contrary to what you may think, I don't work much on my projects, my daily job takes a lot of my time, and I have many other passions to cultivate. - -![productivity][17] - -I don't have any particular time management or organization; normally I try to stay focused on my projects by reasoning about them in my spare time and taking notes, so as soon as I get back to work on a project, I already have a clear idea of what I need to do. - -_**Q. You are also a GNOME Foundation member. What’s it like being a GNOME foundation member? Can anyone apply to be a part of it?**_**A:** I am still a very recent member and I don't have much to say, except that it is wonderful to be inside the project that I absolutely love and respect the most, as it has changed the way I use my PC, with a workflow designed to be free of distractions and where everything is intuitive and immediate; in short, where the user experience is always first. - -Anyone can apply, as long as they are an active person with demonstrable contributions. - -**_Q. As a GNOME foundation member, what do you think GNOME should improve compared to the KDE Plasma side?_****A:** I don't want to sound brash but I think **GNOME is currently complete as it is**. I've seen it grow since the beginning and I know how many steps have been taken since GNOME 2 and 3, I'm sure many more are to come but **right now I can't find a lack in comparison to KDE**. - -![gnome user][18] - -I know at this point someone is saying "_Eh but KDE has themes and a setting for this and that._" and I agree, it is a fact that KDE is the most customizable desktop environment of all, but you have to understand that GNOME doesn't implement all these settings because the whole thing is designed to provide a single, but efficient, user experience. Providing a setting to change every single aspect of it is more of an invitation for the user to do so, feeding bug reports for a different experience than designed. - -It is important to understand that more customization inevitably leads to more discrepancies and bugs, as all components of the system are meant to work in a certain way, and altering them takes you out of the testing environment that is used in GNOME. - -**_Q. What do you like to do in your spare time?_** - -![world history and podcast][19] - -**A:** In my free time, I love to **write recipes** or listen to the **world's history podcasts**. - -10-yo Mirko would find me boring, haha 😁 - -_**Q. A message to our readers (to inspire them/add a tip that you always wanted to share, etc)**_ - -![dialogue is good][20] - -**A:** Don't be afraid to contribute or speak. I often find that someone has a great idea to solve a problem and has never told anyone because of the fear that it was wrong. Let's be clear that a contribution is something to improve and is therefore always welcome. - -Certainly, not all ideas are feasible or correct but dialogue is a great way to find out. - -Don't be shy; come on! - -> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/interview-mirko-brombin/ - -作者:[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/content/images/size/w2000/2022/12/interview-with-mirko-brombin.png -[2]: https://mirko.pm -[3]: https://usebottles.com -[4]: https://vanillaos.org -[5]: https://news.itsfoss.com/content/images/2022/12/vanillaos.jpg -[6]: https://news.itsfoss.com/content/images/2022/12/nvidia.png -[7]: https://news.itsfoss.com/content/images/2022/12/ubuntu.png -[8]: https://github.com/TheEvilSkeleton -[9]: https://github.com/flavioislima -[10]: https://github.com/imLinguin -[11]: https://news.itsfoss.com/content/images/2022/12/Heroic_2.jpg -[12]: https://news.itsfoss.com/content/images/2022/12/bottle-creation-dark.png -[13]: https://github.com/jannuary -[14]: https://news.itsfoss.com/content/images/2022/12/download-milestone.png -[15]: https://news.itsfoss.com/content/images/2022/12/python.png -[16]: https://github.com/89luca89 -[17]: https://news.itsfoss.com/content/images/2022/12/productivity.png -[18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png -[19]: https://news.itsfoss.com/content/images/2022/12/history-1.png -[20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png From 943bcb7f9b060f2d62ae6abc03e251c8ce414877 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 9 Jan 2023 07:57:34 +0800 Subject: [PATCH 2524/3123] b --- sources/talk/20190331 Codecademy vs. The BBC Micro.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index 48c58de54e..fd86fa12d0 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -33,10 +33,17 @@ In an audacious move, the BBC, a public service broadcaster funded by the govern ### The Computer Literacy Project +1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 + +DN The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” +该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 + +DN The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. +该纪录片据信可能在英国议会上展示。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. @@ -160,3 +167,6 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T1]: https://www.codecademy.com/ [T2]: https://bbcmicro.computer/ [T3]: https://clp.bbcrewind.co.uk/history + +[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down +[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown From 0367ed273e297019cea7d5a28a18b640ff553077 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Mon, 9 Jan 2023 08:07:17 +0800 Subject: [PATCH 2525/3123] b2 --- .../20190331 Codecademy vs. The BBC Micro.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index fd86fa12d0..e17743df36 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -10,7 +10,7 @@ [Codecademy][T1] 比之 [The BBC Micro][T2] ====== -DN +TD Codecademy vs. The BBC Micro ====== @@ -24,16 +24,22 @@ In the late 1970s, the computer, which for decades had been a mysterious, hulkin DN In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. -作为一个大胆的举动,BBC(英国广播公司)——由政府建立的公共服务广播公司——决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划_][T3], +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 出品的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] -TD +DN In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] +去年,一份包括了由 _计算机认知计划_ 出版的所有材料与出品的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? + +DN [An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? +### 计算机认知计划 ([Computer Literacy Project][T3]) + +DN ### The Computer Literacy Project -1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 +微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 DN The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” @@ -43,7 +49,7 @@ The microcomputer revolution began in 1975 with the release of [the Altair 8800] DN The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. -该纪录片据信可能在英国议会上展示。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. @@ -167,6 +173,6 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T1]: https://www.codecademy.com/ [T2]: https://bbcmicro.computer/ [T3]: https://clp.bbcrewind.co.uk/history - +[T4]: https://archive.org/details/byte-magazine?tab=about [T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down [T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown From 7e745ce427c2fbe394acd463af1c6507ea523a59 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 9 Jan 2023 08:54:09 +0800 Subject: [PATCH 2526/3123] translated --- ... ⭐️ How to read and write files in Rust.md | 110 ----------------- ... ⭐️ How to read and write files in Rust.md | 111 ++++++++++++++++++ 2 files changed, 111 insertions(+), 110 deletions(-) delete mode 100644 sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md create mode 100644 translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md deleted file mode 100644 index ac4a7ee73e..0000000000 --- a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: subject: "How to read and write files in Rust" -[#]: via: "https://opensource.com/article/23/1/read-write-files-rust" -[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to read and write files in Rust -====== - -Knowing how to read and write files can be useful for various purposes. In Rust, this task is done using the file system module ([std::fs][1]) in the standard library. In this article, I'll give you an overview on how to use this module. - -To demonstrate this task, I prepared example code which is also available on [GitHub][2]. - -### Preparation - -When using Rust, a function that fails returns the [Result][3] type. The file system module in particular returns the specialized type [std::io::Result][4]. With this knowledge, you can return the same type from the `main()` function: - -``` -fn main() -> std::io::Result<()> { -/* ...code comes here... */ -``` - -### Writing Rust files - -Performing file I/O-operations in Rust is relatively easy. Writing to a file can be simplified to one line: - -``` -use std::fs; -fs::write("favorite_websites.txt", b"opensource.com")?; -Ok(()) -``` - -Using the error propagation operator `(?)`, the error information gets passed on to the calling function where the error can subsequently be handled. As `main()` is the only other function in the call stack, the error information gets passed on to the console output in case the write operation failed. - -The syntax of the [fs::write][5] function is quite forward. The first argument is the file path, which must be the type [std::path::Path][6]. The second argument is the content, which is actually a slice of bytes (`[u8]`). Rust converts the arguments passed into the correct type. Luckily, these types are basically the only types dealt with in the following examples. - -A more concise access of the write operation can be achieved using the file descriptor type [std::fs::File][7]: - -``` -let mut file = fs::File::create("favorite_websites.txt")?; -file.write_all(b"opensource.com\n")?; -Ok(()) -``` - -As the file type implements the [Write][8] trait, it is possible to use the associated methods to write to the file. However, the `create` method can overwrite an already existing file. - -To get even more control of the file descriptor, the type [std::fs::OpenOptions][9] must be used. This provides opening modes similar to the ones in other languages: - -``` -let mut file = fs::OpenOptions::new() - .append(true) - .open("favorite_websites.txt")?; - -file.write_all(b"sourceforge.net\n")?; -``` - -### Reading Rust files - -What applies to writing also applies to reading. Reading can also be done with a simple one-line of code: - -``` -let websites = fs::read_to_string("favorite_websites.txt")?; -``` - -The above line reads the content of the file and returns a string. In addition to reading a string, there is also the [std::fs::read][10] function which reads the data into a vector of bytes if the file contains binary data. - -The next example shows how to read the content of the file into memory and subsequently print it line by line to a console: - -``` -let file = fs::File::open("favorite_websites.txt")?; -let lines = io::BufReader::new(file).lines(); - -for line in lines { - if let Ok(_line) = line { - println!(">>> {}", _line); - } -} -``` - -### Summary - -If you are already familiar with other programming languages, you may have noticed that there is `no close-`function (or something similar) that releases the file handle. In Rust, the file handle is released as soon as the related variable goes out of scope. To define the closing behavior, a scope `({ })` around the file representation can be applied. I recommend that you get familiar with [Read][11] and [Write][8] trait as you can find this trait implemented in many other types. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/read-write-files-rust - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lkxed -[1]: https://doc.rust-lang.org/std/fs/ -[2]: https://github.com/hANSIc99/rust_file_io -[3]: https://doc.rust-lang.org/std/result/enum.Result.html -[4]: https://doc.rust-lang.org/std/io/type.Result.html -[5]: https://doc.rust-lang.org/std/fs/fn.write.html -[6]: https://doc.rust-lang.org/std/path/struct.Path.html -[7]: https://doc.rust-lang.org/std/fs/struct.File.html -[8]: https://doc.rust-lang.org/std/io/trait.Write.html -[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html# -[10]: https://doc.rust-lang.org/std/fs/fn.read.html -[11]: https://doc.rust-lang.org/std/io/trait.Read.html diff --git a/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md new file mode 100644 index 0000000000..4a0453ae31 --- /dev/null +++ b/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md @@ -0,0 +1,111 @@ +[#]: subject: "How to read and write files in Rust" +[#]: via: "https://opensource.com/article/23/1/read-write-files-rust" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Rust 中读取和写入文件 +====== + +知道如何读写文件对各种用途都很有用。在 Rust 中,这项任务是通过标准库中的文件系统模块([std::fs][1])完成的。在这篇文章中,我将向你介绍如何使用这个模块。 + +为了演示这项任务,我准备了一些示例代码,也可以在 [GitHub][2] 上找到。 + +### 准备工作 + +在使用 Rust 时,失败的函数会返回 [Result][3] 类型。尤其是文件系统模块会返回专门的类型 [std::io::Result][4]。有了这些知识,你可以从 `main()` 函数中返回相同的类型: + +``` +fn main() -> std::io::Result<()> { +/* ...code comes here... */ +``` + +### Rust 文件写入 + +在 Rust 中执行文件的 I/O 操作是相对容易的。写入文件可以简化为一行: + +``` +use std::fs; +fs::write("favorite_websites.txt", b"opensource.com")?; +Ok(()) +``` + +使用错误传播操作符 `(?)`,错误信息被传递到调用函数中,随后可以处理错误。由于 `main()` 是调用栈中唯一的其他函数,如果写操作失败,错误信息将被传递到控制台输出。 + +[fs::write][5] 函数的语法是非常先进的。第一个参数是文件路径,它必须是 [std::path::Path][6] 类型。第二个参数是内容,它实际上是一个字节切片(`[u8]`)。Rust 将传递的参数转换为正确的类型。幸运的是,这些类型基本上是下面的例子中所处理的唯一类型。 + +使用文件描述符类型 [std::fs::File][7] 可以实现对写操作更简洁的访问: + +``` +let mut file = fs::File::create("favorite_websites.txt")?; +file.write_all(b"opensource.com\n")?; +Ok(()) +``` + +由于文件类型实现了 [Write][8] 特性,所以可以使用相关的方法来写入文件。然而,`create` 方法可以覆盖一个已经存在的文件。 + +为了获得对文件描述符的更多控制,必须使用 [std::fs::OpenOptions][9] 类型。这提供了类似于其他语言中的打开模式: + +``` +let mut file = fs::OpenOptions::new() + .append(true) + .open("favorite_websites.txt")?; + +file.write_all(b"sourceforge.net\n")?; +``` + +### Rust 文件读取 + +适用于写的东西也适用于读。读取也可以通过简单的一行代码来完成: + +``` +let websites = fs::read_to_string("favorite_websites.txt")?; +``` + +以上一行读取文件的内容并返回一个字符串。除了读取字符串,还有 [std::fs::read][10] 函数,如果文件包含二进制数据,该函数会将数据读成一个字节向量。 + +下一个例子显示了如何将文件的内容读入内存,随后逐行打印到控制台: + +``` +let file = fs::File::open("favorite_websites.txt")?; +let lines = io::BufReader::new(file).lines(); + +for line in lines { + if let Ok(_line) = line { + println!(">>> {}", _line); + } +} +``` + +### 总结 + +如果你已经熟悉了其他编程语言,你可能已经注意到没有 `close-` 函数(或类似的)来释放文件句柄。在 Rust 中,当相关变量超出作用域,文件句柄就会被释放。为了定义关闭行为,可以在文件表示的周围应用作用域 `({ })`。我建议你熟悉 [Read][11] 和 [Write][8] 特性,因为你可以在许多其他类型中找到这个特性的实现。 + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/read-write-files-rust + +作者:[Stephan Avenwedde][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lkxed +[1]: https://doc.rust-lang.org/std/fs/ +[2]: https://github.com/hANSIc99/rust_file_io +[3]: https://doc.rust-lang.org/std/result/enum.Result.html +[4]: https://doc.rust-lang.org/std/io/type.Result.html +[5]: https://doc.rust-lang.org/std/fs/fn.write.html +[6]: https://doc.rust-lang.org/std/path/struct.Path.html +[7]: https://doc.rust-lang.org/std/fs/struct.File.html +[8]: https://doc.rust-lang.org/std/io/trait.Write.html +[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html# +[10]: https://doc.rust-lang.org/std/fs/fn.read.html +[11]: https://doc.rust-lang.org/std/io/trait.Read.html From ca6fd3d3ee58e00f649594919d6e73973c1be76e Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 9 Jan 2023 09:01:25 +0800 Subject: [PATCH 2527/3123] translating --- ...0230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md index 960d1c4af8..23ae40eb72 100644 --- a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md +++ b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/w-command-linux-examples/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From abd0017a8bfb6aca4b0d971bd24bee3ec8bbfa4f Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Mon, 9 Jan 2023 11:32:29 +0800 Subject: [PATCH 2528/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...arted with edge computing by programming embedded systems.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md index a51532e521..703d460e2e 100644 --- a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md +++ b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/3/rtos-embedded-development" [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "cool-summer-021" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2db4411edb0c0acfade77c69bfdf004245380553 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 9 Jan 2023 14:07:00 +0800 Subject: [PATCH 2529/3123] RP @geekpi https://linux.cn/article-15426-1.html --- ...d Siri in Works for Home Assistant Platform.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) rename {translated/tech => published}/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md (74%) diff --git a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md similarity index 74% rename from translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md rename to published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md index adba1b18db..a35da5c56a 100644 --- a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md +++ b/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md @@ -3,14 +3,14 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15426-1.html" -Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台 +Home Assistant:谷歌助理、Alexa 和 Siri 的开源替代品 ====== -一个开源助手可以取代谷歌、Alexa 和 Siri? +> 一个开源助手可以取代谷歌助理、Alexa 和 Siri? ![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1] @@ -20,13 +20,13 @@ Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台 > 💡 该公司由 Home Assistant 的创始人 [Paulus Schoutsen][3] 领导。 -在上周的[博客][4]中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**或任何其他大型科技语音助手。 +在上周的 [博客][4] 中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**,也无需任何其他大型科技公司的语音助手。 -这是_一个对 Google、Alexa 和 Siri 的开源挑战者?_ 😲 +这是 _一个对谷歌助理、Alexa 和 Siri 的开源挑战者?_ 😲 让我们看看这到底是怎么回事。 -**它是什么?:**这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。 +**它是什么?** 这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。 Paulus 还断言,他们最重要的优先事项是支持不同的语言,他说: @@ -40,7 +40,7 @@ Paulus 还断言,他们最重要的优先事项是支持不同的语言,他 _为什么要重新发明已经存在的东西?最好是在它的基础上进行改进。_ -**可以期待什么?:**最初,语音助手将不能做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。 +**可以期待什么?** 最初,这个语音助手做不到做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。 它所关注的反而是**语音助手应该有的基本功能**。这样做是为了确保他们面前的工作是可控的。 @@ -48,9 +48,9 @@ _为什么要重新发明已经存在的东西?最好是在它的基础上进 在目前的状态下,Home Assistant 在其用户界面上支持 62 种不同的语言。他们计划用他们的语音助手增加对所有这些语言的支持。 -**何时期待?:**他们已经开始了这方面的工作,为每种语言建立一个[意图匹配句子集合][7]。 +**何时期待?** 他们已经开始了这方面的工作,为每种语言建立一个 [意图匹配句子集合][7]。 -这意味着社区可以通过将智能设备的命令改编成各自的母语来为语音助手的发展做出贡献。 +这意味着社区可以通过将智能设备的命令改编成各自的母语,来为语音助手的发展做出贡献。 他们的目标是在 **2023** 年的某个时候发布,并提到这将是“_语音年_”。 @@ -65,7 +65,7 @@ via: https://news.itsfoss.com/open-source-assistant/ 作者:[Sourav Rudra][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/) 荣誉推出 From 7b0d395ec49203c87e1dcff21911b40ec9639fb3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 9 Jan 2023 14:16:44 +0800 Subject: [PATCH 2530/3123] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ases With New Features and Linux Kernel 6.0.md | 133 ------------------ ...s 5.8 Arrives with Official Wayland Support.md | 74 ---------- ...ort. But You Can't Use It Yet Unfortunately.md | 100 ------------- 3 files changed, 307 deletions(-) delete mode 100644 sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md delete mode 100644 sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md delete mode 100644 sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md diff --git a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md deleted file mode 100644 index c42c37b80c..0000000000 --- a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md +++ /dev/null @@ -1,133 +0,0 @@ -[#]: subject: "EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0" -[#]: via: "https://news.itsfoss.com/endeavouros-cassini/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0 -====== - -EndeavourOS's latest update has arrived! - -![EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0][1] - -EndeavourOS is a popular Arch-based Linux distribution that aims to make the Arch experience easy. - -Code-named 'Cassini', it signifies a new phase in EndeavourOS's development that aims to make the OS better than its previous iterations. - -Similar to a [previous release][2], this release is also named after one of NASA's [projects][3]. - -Let's see what makes this release so unique. - -Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][4]Unlocator![][5] - -### 🆕 EndeavourOS 'Cassini': What's New? - -![endeavouros cassini][6] - -The 'Cassini' release packs plenty of improvements, some of the noteworthy highlights include: - -- **Improved ARM Support** -- **Linux Kernel 6.0** -- **Various User Interface Updates** -- **Updated Software Packages** - -#### Improved ARM Support - -![endeavouros cassini arm][7] - -EndeavourOS now features support for the [Pinebook Pro][8]. - -This was made possible by including the new 'linux-eos-arm' kernel that comes with the 'amdgpu' driver for supporting generic ARM devices. - -The developers also added that: - -> We’ve leveraged existing work and PKGBUIDs of both Manjaro ARM and archlinuxarm-pbp projects to create our Pinebook Pro images and would like to thank them for their continuing work in supporting PineBook Pro for Arch Linux ARM platform. - -Furthermore, EndeavourOS also has enhanced support for ARM devices like the [Phytiuim D2000][9], [Raspberry Pi][10], and [Odroid N2+][11]. - -#### 🎨 Various User Interface Updates - -![endeavouros cassini budgie][12] - -With this release, EndeavourOS has received quite a few user interface tweaks; some of the highlights include: - -- The 'Discover' icon was replaced with a 'Konsole' icon on KDE Plasma. -- [Qogir theme][13] is being used for icons in Cinnamon and Budgie. -- In the case of GNOME, the wallpaper follows night and day theme like the Console. -- The default wallpaper is now set by the 'settings' package instead of 'welcome'. -- A load of cleanup work for Calamares. - -#### Linux Kernel 6.0 - -EndeavourOS 'Cassini' features Linux Kernel 6.0.12.arch1-1, which enables it to have enhanced support for [OpenRISC][14] and [LoongArch][15] architectures. - -Alongside that, there is a noticeable uplift in performance for AMD EPYC, Ryzen Threadripper, and Intel Xeon Ice Lake chips. - -You can go through our coverage for more details: - -#### Updated Software Packages - -This release also features a lot of updated software, including: - -- Calamares 3.3.0-alpha3 -- Firefox 108.0.1-1 -- Mesa 22.3.1-1 -- Xorg-Server 21.1.5-1 -- nvidia-dkms 525.60.11-1 -- Grub 2:2.06.r403.g7259d55ff-1 - -#### 🛠️ Other Changes - -There were also a few other changes that I want to mention, such as: - -- [dracut][16] has replaced [mkinitcpio][17] to handle the installation process. -- You can now choose not to install a bootloader. -- You have two bootloader options to pick from, [systemd-boot][18] and [Grub][19]. -- The Grub submenu is now enabled by default. -- gedit and GNOME terminal have been replaced by [gnome-text-editor][20] and [GNOME Console][21]. - -### 📥 Download EndeavourOS Cassini - -You can find the latest release on the [official website][22] from one of the available mirrors. - -_💬 What do you think of this release? Was it worth the wait?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/endeavouros-cassini/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/endeavour-os-cassini-release.png -[2]: https://news.itsfoss.com/endeavouros-artemis-release/ -[3]: https://solarsystem.nasa.gov/missions/cassini/overview/ -[4]: https://unlocator.com/favicon.ico -[5]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg -[6]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini.jpg -[7]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_ARM.png -[8]: https://itsfoss.com/pinebook-pro/ -[9]: https://phytium.com.cn/en/article/721 -[10]: https://www.raspberrypi.org -[11]: https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/ -[12]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_2-1.jpg -[13]: https://github.com/vinceliuice/Qogir-theme -[14]: https://openrisc.io -[15]: https://en.wikipedia.org/wiki/Loongson -[16]: https://dracut.wiki.kernel.org/index.php/Main_Page -[17]: https://wiki.archlinux.org/title/mkinitcpio -[18]: https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/ -[19]: https://www.gnu.org/software/grub/ -[20]: https://itsfoss.com/gnome-text-editor/ -[21]: https://gitlab.gnome.org/GNOME/console -[22]: https://endeavouros.com/latest-release/ diff --git a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md deleted file mode 100644 index e55d86badd..0000000000 --- a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "Tails 5.8 Arrives with Official Wayland Support" -[#]: via: "https://debugpointnews.com/tails-5-8-release/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Tails 5.8 Arrives with Official Wayland Support -====== - -![][1] - -**A sizable update arrives in Tails 5.8, bringing Wayland support, newly redesigned persistence storage and more.** - -Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][2] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously. - -![Tails 5.8 desktop][3] - -### What’s New in Tails 5.8 Release - -At a high level, Tails 5.8 includes significant redesigns of existing features, improved usability, and strengthened security. Also, bringing modern tech aligns with the changing times and needs of the hour. - -The persistence storage module gets a complete redesign in this release. In the new version of Persistent Storage, you no longer have to restart after creating a Persistent Storage or activating a new feature. You can also change the password for your Persistent Storage from within the application. Additionally, you can now create a Persistent Storage directly from the Welcome Screen if you don’t already have one. The Persistent Storage had not been updated much since its initial release in 2012 due to challenges in modifying and improving the code. - -The Tails team has also replaced the deprecated X.Org display system with Wayland. While you may not notice any visual changes, Wayland provides increased security for Tails by making it harder for a compromised application to compromise or misuse other applications. - -![Browse internet securely using Tails 5.8][4] - -For example, since Tails 4.8, the Unsafe Browser has been disabled by default due to a security vulnerability that could reveal your IP address and deanonymize you through the use of an invisible Unsafe Browser. Wayland addresses this vulnerability and makes it safe to enable the Unsafe Browser by default again. However, if desired, you can still disable the Unsafe Browser from the Welcome Screen. - -In addition to addressing security concerns, Wayland also introduces new features that were previously not supported in the Unsafe Browser, including sound, file uploads and downloads, alternative input methods for non-Latin languages such as Chinese, and accessibility features like the screen reader and virtual keyboard. - -The Tails team has also made it easier to enter new Tor bridges by allowing you to scan a QR code. You can obtain a QR code by sending an empty email to [bridges@torproject.org][5] from a Gmail or Riseup email address or by visiting [https://bridges.torproject.org/][6] and printing the QR code on paper. - -Furthermore, the entire Debian stable base is bumped up to the latest version, including pre-loaded apps. - -A complete changelog is available [here][7] if you want to dive deeper into the changes. - -### Download and upgrade - -If you are already running a prior version of the Tails 5.0 series, you should automatically get this update once you boot up Tails from the USB stick. - -In addition, if you want to install Tails 5.8 fresh, grab the ISO files from the below links: - -- [For USB sticks (USB image)][8] -- [For DVDs and virtual machines (ISO image)][9] - -Via [release announcement][10]. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/tails-5-8-release/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tails58head.jpg -[2]: https://www.debugpoint.com/privacy-linux-distributions-2022/ -[3]: https://debugpointnews.com/wp-content/uploads/2022/12/Tails-5.8-desktop.jpg -[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Browse-internet-securely-using-Tails-5.8.jpg -[5]: https://debugpointnews.commailto:bridges@torproject.org -[6]: https://bridges.torproject.org/ -[7]: https://gitlab.tails.boum.org/tails/tails/-/blob/master/debian/changelog -[8]: https://tails.boum.org/install/download/index.en.html -[9]: https://tails.boum.org/install/download-iso/index.en.html -[10]: https://tails.boum.org/news/version_5.8/index.en.html diff --git a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md deleted file mode 100644 index 07be806ba7..0000000000 --- a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately" -[#]: via: "https://news.itsfoss.com/pinta-2-1-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately -====== - -Pinta 2.1 comes with WebP support and various other useful improvements. - -![Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately][1] - -Pinta is a free and open-source drawing app for Linux that offers a ton of features in a relatively small package. - -It is one of the [best Linux tools for digital artists][2] available. - -Its last major release was in January 2022, introducing improved Hi DPI support, GTK 3 port, and [more][3]. - -Marking 2023's first release, Pinta 2.1 promises to offer even further refinements. - -**Notice the new Pinta icon in the image above? Well, that's one of the changes.** - -Let's see how this release pans out. - -### 🆕 What's New in Pinta 2.1? - -![pinta 2.1][4] - -[Pinta 2.1][5] is offering plenty of new improvements; some notable ones include: - -- **WebP Support** -- **Improved .ora Support** -- **Enhanced Handles** -- **Dark Mode** -- **Improved File Dialog** -- **Various Bug Fixes and Changes** - -**WebP Support:** Pinta finally has support for WebP files, but it does not come out of the box. For Linux users, the [webp-pixbuf-loader][6]**dependency is required to enable WebP support.** - -> 📋 Unfortunately, WebP support is not included in the Flatpak and Snap builds of Pinta 2.1. Even if you have that library installed on your system. So, you probably have to build it from the source or use WebP files on Windows/macOS only. - -**Improved .ora Support:** With Pinta 2.1, hidden layers are now round-tripped properly for .ora files. - -Furthermore, when you save a .ora file, a flattened image is now included in the archive. - -It is like this because it is required by the spec to accommodate the viewer software. - -**Enhanced Handles:** The selection move and shape control point handles are now more intuitive, especially when working on zoomed-in or small images. - -**Dark Mode:** Pinta has finally received full support for dark mode across the app; all icons, toolbars, dialogs, etc., are now in high-res SVG format. - -**Improved File Dialog:** The file dialog now uses MIME types on Linux, allowing valid image files with unknown extensions to be included in the image file filter. - -**Various Bug Fixes and Changes:** Apart from the changes I listed above, here are some that are also worth mentioning: - -- Upgraded to .NET 7. -- New '**Transparency Mode**' in Gradient Tool. -- Standard GTK about dialog. -- The gradient tool now updates properly while drawing transparent colors. -- The new screenshot command now uses the XDG portal. - -If you want to go deep into the technical details of the release, head to its [release notes][7]. - -### 📥 Download Pinta 2.1 - -Pinta 2.1 is available in the [Snap store][8], as well as on [Flathub][9]. The repositories include an outdated back, so you can safely ignore it. - -You can also try building it from the [source code][10] and explore other download options for Windows/macOS. - -[Download Pinta 2.1][11] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/pinta-2-1-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/pinta-2-1-release.png -[2]: https://itsfoss.com/best-linux-graphic-design-software/ -[3]: https://news.itsfoss.com/pinta-2-0-release/ -[4]: https://news.itsfoss.com/content/images/2023/01/Pinta_2.1.png -[5]: https://www.pinta-project.com -[6]: https://github.com/aruiz/webp-pixbuf-loader/ -[7]: https://github.com/PintaProject/Pinta/releases/tag/2.1 -[8]: https://snapcraft.io/pinta -[9]: https://flathub.org/apps/details/com.github.PintaProject.Pinta -[10]: https://github.com/PintaProject/Pinta -[11]: https://www.pinta-project.com/releases/ - From 59755dcd04f35a042a2ae5ef47a2487947264dab Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 9 Jan 2023 15:05:55 +0800 Subject: [PATCH 2531/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @FigaroCao https://linux.cn/article-15427-1.html 恭喜你升级为二星译者! --- published/20211012 Create a timer on Linux.md | 275 +++++++++++++++++ .../tech/20211012 Create a timer on Linux.md | 278 ------------------ 2 files changed, 275 insertions(+), 278 deletions(-) create mode 100644 published/20211012 Create a timer on Linux.md delete mode 100644 translated/tech/20211012 Create a timer on Linux.md diff --git a/published/20211012 Create a timer on Linux.md b/published/20211012 Create a timer on Linux.md new file mode 100644 index 0000000000..d00d129d20 --- /dev/null +++ b/published/20211012 Create a timer on Linux.md @@ -0,0 +1,275 @@ +[#]: subject: "Create a timer on Linux" +[#]: via: "https://opensource.com/article/21/10/linux-timers" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lujun9972" +[#]: translator: "FigaroCao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15427-1.html" + +在 Linux 中创建定时器 +====== + +> 这是一个演示如何创建 POSIX 兼容的间隔定时器的教程。 + +![][0] + +对开发人员来说,定时某些事件是一项常见任务。定时器的常见场景是看门狗、任务的循环执行,或在特定时间安排事件。在这篇文章中,我将演示如何使用 [timer_create(...)][2] 创建一个 POSIX 兼容的间隔定时器。 + +你可以从 [GitHub][3] 下载下面样例的源代码。 + +### 准备 Qt Creator + +我使用 [Qt Creator][4] 作为该样例的 IDE。为了在 Qt Creator 运行和调试样例代码,请克隆 [GitHub][3] 上的仓库,打开 Qt Creator,在 “文件File -> 打开文件或项目……Open File or Project...” 并选择 “CMakeLists.txt”: + +![Qt Creator open project][5] + +*在 Qt Creator 中打开项目* + +选择工具链之后,点击 “配置项目Configure Project”。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行 “在终端中运行Run in terminal”(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的“调试Debug” 按钮进行选择(参见下面的橙色标记)。 + +![Project configuration][6] + +*项目配置* + +### 线程定时器 + +让我们看看 `simple_threading_timer.c` 样例。这是最简单的一个。它展示了一个调用了超时函数 `expired` 的间隔定时器是如何被创建的。在每次过期时,都会创建一个新的线程,在其中调用函数 `expired`: + +``` +#include +#include +#include +#include +#include +#include +#include + +void expired(union sigval timer_data); + +pid_t gettid(void); + +struct t_eventData{ +    int myData; +}; + +int main() +{ +    int res = 0; +    timer_t timerId = 0; + +    struct t_eventData eventData = { .myData = 0 }; + + /* sigevent 指定了过期时要执行的操作 */ +    struct sigevent sev = { 0 }; + + /* 指定启动延时时间和间隔时间 + * it_value和it_interval 不能为零 */ + +    struct itimerspec its = {   .it_value.tv_sec  = 1, +                                .it_value.tv_nsec = 0, +                                .it_interval.tv_sec  = 1, +                                .it_interval.tv_nsec = 0 +                            }; + +    printf("Simple Threading Timer - thread-id: %d\n", gettid()); + +    sev.sigev_notify = SIGEV_THREAD; +    sev.sigev_notify_function = &expired; +    sev.sigev_value.sival_ptr = &eventData; + + /* 创建定时器 */ +    res = timer_create(CLOCK_REALTIME, &sev, &timerId); + +    if (res != 0){ +        fprintf(stderr, "Error timer_create: %s\n", strerror(errno)); +        exit(-1); +    } + + /* 启动定时器 */ +    res = timer_settime(timerId, 0, &its, NULL); + +    if (res != 0){ +        fprintf(stderr, "Error timer_settime: %s\n", strerror(errno)); +        exit(-1); +    } + +    printf("Press ETNER Key to Exit\n"); +    while(getchar()!='\n'){} +    return 0; +} + +void expired(union sigval timer_data){ +    struct t_eventData *data = timer_data.sival_ptr; +    printf("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); +} +``` + +这种方法的优点是在代码和简单调试方面用量小。缺点是由于到期时创建新线程而增加额外的开销,因此行为不太确定。 + +### 中断信号定时器 + +超时定时器通知的另一种可能性是基于 [内核信号][12]。内核不是在每次定时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。 + +由于接收信号时的默认操作是终止进程(参考 [signal][13] 手册页),我们必须要提前设置好 Qt Creator,以便进行正确的调试。 + +当被调试对象接收到一个信号时,Qt Creator 的默认行为是: + + * 中断执行并切换到调试器上下文。 + * 显示一个弹出窗口,通知用户接收到信号。 + +这两种操作都不需要,因为信号的接收是我们应用程序的一部分。 + +Qt Creator 在后台使用 GDB。为了防止 GDB 在进程接收到信号时停止执行,进入 “工具Tools -> 选项Options” 菜单,选择 “调试器Debugger”,并导航到 “本地变量和表达式Locals & Expressions”。添加下面的表达式到 “定制调试助手Debugging Helper Customization”: + +``` +handle SIG34 nostop pass +``` + +![Signal no stop with error][14] + +*Sig 34 时不停止* + +你可以在 [GDB 文档][15] 中找到更多关于 GDB 信号处理的信息。 + +接下来,当我们在信号处理程序中停止时,我们要抑制每次接收到信号时通知我们的弹出窗口: + +![Signal 34 pop up box][16] + +*Signal 34 弹出窗口* + +为此,导航到 “GDB” 标签并取消勾选标记的复选框: + +![Timer signal windows][17] + +*定时器信号窗口* + +现在你可以正确的调试 `signal_interrupt_timer`。真正的信号定时器的实施会更复杂一些: + +``` +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define UNUSED(x) (void)(x) + +static void handler(int sig, siginfo_t *si, void *uc); +pid_t gettid(void); + +struct t_eventData{ +    int myData; +}; + +int main() +{ +    int res = 0; +    timer_t timerId = 0; + +    struct sigevent sev = { 0 }; +    struct t_eventData eventData = { .myData = 0 }; + + /* 指定收到信号时的操作 */ +    struct sigaction sa = { 0 }; + + /* 指定启动延时的时间和间隔时间 */ +    struct itimerspec its = {   .it_value.tv_sec  = 1, +                                .it_value.tv_nsec = 0, +                                .it_interval.tv_sec  = 1, +                                .it_interval.tv_nsec = 0 +                            }; + +    printf("Signal Interrupt Timer - thread-id: %d\n", gettid()); + +    sev.sigev_notify = SIGEV_SIGNAL; // Linux-specific +    sev.sigev_signo = SIGRTMIN; +    sev.sigev_value.sival_ptr = &eventData; + + /* 创建定时器 */ +    res = timer_create(CLOCK_REALTIME, &sev, &timerId); + +    if ( res != 0){ +        fprintf(stderr, "Error timer_create: %s\n", strerror(errno)); +        exit(-1); +    } + + /* 指定信号和处理程序 */ +    sa.sa_flags = SA_SIGINFO; +    sa.sa_sigaction = handler; + + /* 初始化信号 */ +    sigemptyset(&sa.sa_mask); + +    printf("Establishing handler for signal %d\n", SIGRTMIN); + + /* 注册信号处理程序 */ +    if (sigaction(SIGRTMIN, &sa, NULL) == -1){ +        fprintf(stderr, "Error sigaction: %s\n", strerror(errno)); +        exit(-1); +    } + + /* 启动定时器 */ +    res = timer_settime(timerId, 0, &its, NULL); + +    if ( res != 0){ +        fprintf(stderr, "Error timer_settime: %s\n", strerror(errno)); +        exit(-1); +    } + +    printf("Press ENTER to Exit\n"); +    while(getchar()!='\n'){} +    return 0; +} + +static void +handler(int sig, siginfo_t *si, void *uc) +{ +    UNUSED(sig); +    UNUSED(uc); +    struct t_eventData *data = (struct t_eventData *) si->_sifields._rt.si_sigval.sival_ptr; +    printf("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); +} +``` + +与线程定时器相比,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。 + +### 总结 + +本文中描述的两种方法都是接近内核的定时器的实现。不过,即使 [timer_create(...)][2] 函数是 POSIX 规范的一部分,由于数据结构的细微差别,也不可能在 FreeBSD 系统上编译样例代码。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/10/linux-timers + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[FigaroCao](https://github.com/FigaroCao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist) +[2]: https://linux.die.net/man/2/timer_create +[3]: https://github.com/hANSIc99/posix_timers +[4]: https://www.qt.io/product/development-tools +[5]: https://opensource.com/sites/default/files/posix_timers_open_project_0.png +[6]: https://opensource.com/sites/default/files/posix_timers_project_configuration_2.png +[7]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html +[8]: http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html +[9]: http://www.opengroup.org/onlinepubs/009695399/functions/strerror.html +[10]: http://www.opengroup.org/onlinepubs/009695399/functions/exit.html +[11]: http://www.opengroup.org/onlinepubs/009695399/functions/getchar.html +[12]: https://man7.org/linux/man-pages/man3/signal.3p.html +[13]: https://linux.die.net/man/7/signal +[14]: https://opensource.com/sites/default/files/posix_timers_sig34_nostop_pass.png +[15]: https://sourceware.org/gdb/onlinedocs/gdb/Signals.html +[16]: https://opensource.com/sites/default/files/posix_timers_sig34_pop_up_2.png +[17]: https://opensource.com/sites/default/files/posix_timers_signal_windows.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/09/150238f1d60cmvssr9d0js.jpg \ No newline at end of file diff --git a/translated/tech/20211012 Create a timer on Linux.md b/translated/tech/20211012 Create a timer on Linux.md deleted file mode 100644 index 12934668ca..0000000000 --- a/translated/tech/20211012 Create a timer on Linux.md +++ /dev/null @@ -1,278 +0,0 @@ -[#]: subject: "Create a timer on Linux" -[#]: via: "https://opensource.com/article/21/10/linux-timers" -[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" -[#]: collector: "lujun9972" -[#]: translator: "FigaroCao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在Linux中创建计时器 -====== -这是一个演示如何创建POSIX兼容的间隔计时器的教程 - -![Team checklist][1] - -对开发人员来说,确定某些事件的时间是一项常见任务。 计时器的常见场景是监督任务的循环执行或在特定时间安排事件。 在这篇文章中,我将演示如何使用 [timer_create(...)][2]创建一个POSIX兼容的间隔计时器。 - -你可以从[GitHub][3]下载下面样例的源代码。 - -### 准备 Qt Creator - -我使用[Qt Creator][4]作为样例的IDE。为了在Qt Creator运行和调试样例代码,克隆[GitHub][3]仓库,打开Qt Creator,在**File -> Open File or Project...** 并选择 **CMakeLists.txt**: - -![Qt Creator open project][5] - -在Qt Creator中打开项目 (CC-BY-SA 4.0) - -选择工具链之后,点击 **Configure Project**。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行**Run in terminal**(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的**Debug**按钮进行选择(参见下面的橙色标记)。 - -![Project configuration][6] - -项目配置 (CC-BY-SA 4.0) - -### 线程计时器 - -让我们看看_simple_threading_timer.c_样例。这是最简单的一个。它展示了一个调用了超时函数**expired**的间隔计时器是如何被创建的。 - - -``` -#include <stdio.h> -#include <stdlib.h> -#include <time.h> -#include <signal.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> - -void expired(union sigval timer_data); - -pid_t gettid(void); - -struct t_eventData{ -    int myData; -}; - -int main() -{ -    int res = 0; -    timer_t timerId = 0; - -    struct t_eventData eventData = { .myData = 0 }; - - /* sigevent指定了过期时要执行的操作 */ -    struct sigevent sev = { 0 }; - - /* 指定启动延时时间和间隔时间 - * it_value和it_interval不能为零 */ - -    struct itimerspec its = {   .it_value.tv_sec  = 1, -                                .it_value.tv_nsec = 0, -                                .it_interval.tv_sec  = 1, -                                .it_interval.tv_nsec = 0 -                            }; - -    [printf][7]("Simple Threading Timer - thread-id: %d\n", gettid()); - -    sev.sigev_notify = SIGEV_THREAD; -    sev.sigev_notify_function = &expired; -    sev.sigev_value.sival_ptr = &eventData; - - /* 创建计时器 */ -    res = timer_create(CLOCK_REALTIME, &sev, &timerId); - -    if (res != 0){ -        [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - - /* 启动计时器 */ -    res = timer_settime(timerId, 0, &its, NULL); - -    if (res != 0){ -        [fprintf][8](stderr, "Error timer_settime: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    [printf][7]("Press ETNER Key to Exit\n"); -    while([getchar][11]()!='\n'){} -    return 0; -} - -void expired(union sigval timer_data){ -    struct t_eventData *data = timer_data.sival_ptr; -    [printf][7]("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); -} -``` - -这种方法的优点是在代码和简单的调试方面占用空间小。缺点是由于到期时创建新线程而增加额外的开销和因此导致的不太确定的结果。 - -### 中断信号计时器 - -超时计时器通知的另一种可能性是基于[内核信号][12]。 内核不是在每次计时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。 - -由于接收信号时的默认操作是终止进程(参考[信号][13]手册页),我们必须要提前准备Qt Creator,以便进行正确的调试。 - -当被调试对象接收到一个信号时,Qt Creator的默认行为是: - - * 中断执行并切换到调试器上下文。 - * 显示一个弹出窗口,通知用户接收到信号。 - - - -这两种操作都不需要,因为信号的接收是我们应用程序的一部分。 - -Qt Creator在后台使用GDB。为了防止GDB在进程接收到信号时停止执行,在“工具”菜单**Tools** -> **Options**,选择 **Debugger**,并导航到**Locals & Expressions**。添加下面的表达式到_Debugging Helper Customization_: - - -``` -`handle SIG34 nostop pass` -``` - -![Signal no stop with error][14] - -Sig 34 发生错误时未停止 (CC-BY-SA 4.0) - -你可以在[GDB documentation][15]找到更多关于GDB信号处理的信息。 - -接下来,当我们在信号处理程序中停止时,我们想要抑制每次接收到信号时通知我们的弹出窗口: - -![Signal 34 pop up box][16] - -Signal 34 弹出窗口 (CC-BY-SA 4.0) - -为此,导航到**GDB**标签并取消勾选标记的复选框: - -![Timer signal windows][17] - -计时器信号窗口 (CC-BY-SA 4.0) - -现在你可以正确的调试_signal_interrupt_timer_。真正的信号计时器的实施会更复杂一些: - - -``` -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <signal.h> -#include <time.h> -#include <unistd.h> -#include <errno.h> -#include <string.h> - -#define UNUSED(x) (void)(x) - -static void handler(int sig, siginfo_t *si, void *uc); -pid_t gettid(void); - -struct t_eventData{ -    int myData; -}; - -int main() -{ -    int res = 0; -    timer_t timerId = 0; - -    struct sigevent sev = { 0 }; -    struct t_eventData eventData = { .myData = 0 }; - - /* 指定收到信号时的操作 */ -    struct sigaction sa = { 0 }; - - /* 指定启动延时的时间和间隔时间 */ -    struct itimerspec its = {   .it_value.tv_sec  = 1, -                                .it_value.tv_nsec = 0, -                                .it_interval.tv_sec  = 1, -                                .it_interval.tv_nsec = 0 -                            }; - -    [printf][7]("Signal Interrupt Timer - thread-id: %d\n", gettid()); - -    sev.sigev_notify = SIGEV_SIGNAL; // Linux-specific -    sev.sigev_signo = SIGRTMIN; -    sev.sigev_value.sival_ptr = &eventData; - - /* 创建计时器 */ -    res = timer_create(CLOCK_REALTIME, &sev, &timerId); - -    if ( res != 0){ -        [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - - /* 指定信号和处理程序 */ -    sa.sa_flags = SA_SIGINFO; -    sa.sa_sigaction = handler; - - /* 初始化信号 */ -    sigemptyset(&sa.sa_mask); - -    [printf][7]("Establishing handler for signal %d\n", SIGRTMIN); - - /* 注册信号处理程序 */ -    if (sigaction(SIGRTMIN, &sa, NULL) == -1){ -        [fprintf][8](stderr, "Error sigaction: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - - /* 启动计时器 */ -    res = timer_settime(timerId, 0, &its, NULL); - -    if ( res != 0){ -        [fprintf][8](stderr, "Error timer_settime: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    [printf][7]("Press ENTER to Exit\n"); -    while([getchar][11]()!='\n'){} -    return 0; -} - -static void -handler(int sig, siginfo_t *si, void *uc) -{ -    UNUSED(sig); -    UNUSED(uc); -    struct t_eventData *data = (struct t_eventData *) si->_sifields._rt.si_sigval.sival_ptr; -    [printf][7]("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); -} -``` - -与线程计时器相反,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。 - -### 总结 - -本文中描述的两种方法都是计时器的接近内核的实现。即使[timer_create(...)][2]函数是POSIX规范的一部分, 在FreeBSD系统上编译样例代码是不可能的,因为数据结构的差异很小。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/10/linux-timers - -作者:[Stephan Avenwedde][a] -选题:[lujun9972][b] -译者:[FigaroCao](https://github.com/FigaroCao) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist) -[2]: https://linux.die.net/man/2/timer_create -[3]: https://github.com/hANSIc99/posix_timers -[4]: https://www.qt.io/product/development-tools -[5]: https://opensource.com/sites/default/files/posix_timers_open_project_0.png -[6]: https://opensource.com/sites/default/files/posix_timers_project_configuration_2.png -[7]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html -[8]: http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html -[9]: http://www.opengroup.org/onlinepubs/009695399/functions/strerror.html -[10]: http://www.opengroup.org/onlinepubs/009695399/functions/exit.html -[11]: http://www.opengroup.org/onlinepubs/009695399/functions/getchar.html -[12]: https://man7.org/linux/man-pages/man3/signal.3p.html -[13]: https://linux.die.net/man/7/signal -[14]: https://opensource.com/sites/default/files/posix_timers_sig34_nostop_pass.png -[15]: https://sourceware.org/gdb/onlinedocs/gdb/Signals.html -[16]: https://opensource.com/sites/default/files/posix_timers_sig34_pop_up_2.png -[17]: https://opensource.com/sites/default/files/posix_timers_signal_windows.png From bdcd68f13ad408acf7696f30fe48bb2ba7773974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 10 Jan 2023 00:47:48 +0800 Subject: [PATCH 2532/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230109.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Learn=20the=20Ada=20programming=20language=20by=20writing=20a?= =?UTF-8?q?=20simple=20game.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...a programming language by writing a simple game.md | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md diff --git a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md new file mode 100644 index 0000000000..bbfa8c28fc --- /dev/null +++ b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md @@ -0,0 +1,179 @@ +[#]: subject: "Learn the Ada programming language by writing a simple game" +[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn the Ada programming language by writing a simple game +====== + +When you want to [learn a new programming language][1], it's good to focus on the things programming languages have in common: + +- Variables +- Expressions +- Statements + +These concepts are the basis of most programming languages. Once you understand them, you can start figuring out the rest. Because programming languages usually share similarities, once you know one language, you can learn the basics of another by understanding its differences. + +A good way to learn new languages is practicing with a standard program. This allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly. + +This program exercises several concepts in programming languages: + +- Variables +- Input +- Output +- Conditional evaluation +- Loops + +It's a great practical experiment to learn a new programming language. + +### Install Ada + +The [Ada programming language][2] is a unique and highly structured language with a dedicated developer base. The toolchain for Ada is the GNU Ada Development Environment, better known as GNAT. + +You can install GNAT on Linux using your distribution's package manager. On Fedora, CentOS, or similar: + +``` +$ sudo dnf install gcc-gnat +``` + +On Debian, Linux Mint, and derivatives: + +``` +$ sudo apt install gnat +``` + +On macOS and Windows, you can download an installer from the [Adacore website][3] (choose your platform from the drop-down menu). + +### Guess the number in Ada + +Create a file called `game.adb`. + +The two built-in Ada libraries this program uses are `Text_IO` and `Numerics.Discrete_Random`: + +``` +with Ada.Text_IO; +use Ada.Text_IO; +with Ada.Numerics.Discrete_Random; +``` + +#### Procedure head + +The name of the procedure must match the name of the file. The first part is defining the variables. + +Note that the `discrete_random` is specialized to a specific range. In this case, the range of numbers allowed: + +``` +procedure Game is +   type randRange is range 1..100; +   package Rand_Int is new ada.numerics.discrete_random(randRange); +   use Rand_Int; +   gen : Generator; +   num : randRange; +   incorrect: Boolean := True; +   guess: randRange; +``` + +#### Procedure logic + +The logic starts by `reset(gen)`. This initializes the random number generator, ensuring the number, initialized with `random(gen)`, will be different each time you run the program. + +The next step is to run the loop: + +- Output the instructions for a guess +- Read the line +- Convert it to `randRange` +- Check it against the number + +If the number matches, incorrect is set to **False**, causing the next iteration of the loop to exit. + +Finally, the program prints a confirmation of the guess correctness before exiting: + +``` +begin +   reset(gen); +   num := random(gen); +   while incorrect loop +       Put_Line ("Guess a number between 1 and 100"); +       declare +          guess_str : String := Get_Line (Current_Input); +       begin +          guess := randRange'Value (guess_str); +       end; +       if guess < num then +           Put_line("Too low"); +       elsif guess > num then +           Put_line("Too high"); +       else +           incorrect := False; +       end if; +   end loop; +   Put_line("That's right"); +end Game; +``` + +### Build the program + +The easiest way to compile an Ada program is to use `gnatmake`: + +``` +$ gnatmake game.adb +aarch64-linux-gnu-gcc-10 -c game.adb +aarch64-linux-gnu-gnatbind-10 -x game.ali +aarch64-linux-gnu-gnatlink-10 game.ali +``` + +This generates a binary called `game`. + +### Run the program + +Each run of the program will be a little different. This is one example: + +``` +$ ./game  +Guess a number between 1 and 100 +50 +Too low +Guess a number between 1 and 100 +75 +Too low +Guess a number between 1 and 100 +82 +Too low +Guess a number between 1 and 100 +90 +Too high +Guess a number between 1 and 100 +87 +Too low +Guess a number between 1 and 100 +88 +That's right +``` + +### Learn Ada + +This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details. + +Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/learn-ada-simple-game + +作者:[Moshe Zadka][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/moshez +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/10/learn-any-programming-language +[2]: https://opensource.com/article/21/10/learn-ada-2021 +[3]: https://www.adacore.com/download/more + From e99e003b4b1789fd67787264ad73879fce5ee9f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 10 Jan 2023 00:48:39 +0800 Subject: [PATCH 2533/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230109.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Use=20this=20open=20source=20API=20gateway=20to=20scale=20your?= =?UTF-8?q?=20API.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... this open source API gateway to scale your API.md | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md diff --git a/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md b/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md new file mode 100644 index 0000000000..67bba6c7e0 --- /dev/null +++ b/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md @@ -0,0 +1,149 @@ +[#]: subject: "Use this open source API gateway to scale your API" +[#]: via: "https://opensource.com/article/23/1/api-gateway-apache-apisix" +[#]: author: "Bobur Umurzokov https://opensource.com/users/iambobur" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use this open source API gateway to scale your API +====== + +An API gateway is a single point of entry for incoming calls to an [application programming interface (API)][1]. The gateway aggregates the services being requested and then returns the appropriate response. To make your API gateway effective, it's vital for you to design a reliable, efficient, and simple API. This is an architectural puzzle, but it's one you can solve as long as you understand the most important components. + +### API-Led approach + +An API-Led approach puts an API at the heart of communication between applications and the business capabilities they need to access in order to consistently deliver seamless functionality across all digital channels. **API-Led connectivity** refers to the technique of using a reusable and well-designed API to link data and applications. + +### API-Led architecture + +API-Led architecture is an architectural approach that looks at the best ways of reusing an API. API-Led architecture addresses things like: + +- Protecting an API from unauthorized access. +- Ensuring that consuming applications can always find the right API endpoint. +- Throttling or limiting the number of calls made to an API to ensure continuous availability. +- Supporting continuous integration, testing, lifecycle management, monitoring, operations, and so on. +- Preventing error propagation across the stack. +- Real-time monitoring of an API with rich analytics and insight. +- Implementing scalable and flexible business capabilities (for example, supporting a [microservice][2] architecture.) + +### API resource routing + +Implementing an API gateway as the single entry point to all services means that API consumers only have to be aware of one URL. It becomes the API gateway's responsibility to route traffic to the corresponding service endpoints, and to enforce policies. + +![Image depicting the API routing traffic.][3] + +This reduces complexity on the API consumer side because the client applications don't need to consume functionality from multiple HTTP endpoints. There's alsono need to implement a separate layer for authentication, authorization, throttling, and rate limiting for each service. Most API gateways, like the open source [Apache APISIX][4] project, already have these core features built in. + +### API content-based routing + +A content-based routing mechanism also uses an API gateway to route calls based on the content of a request. For example, a request might be routed based on the HTTP header or message body instead of just its target URI. + +Consider a scenario when database sharding is applied in order to distribute the load across multiple database instances. This technique is typically applied when the overall number of records stored is huge and a single instance struggles to manage the load. + +A better solution is to spread records across multiple database instances. Then you implement multiple services, one for each unique datastore, and adopt an API gateway as the only entry point to all services. You can then configure your API gateway to route calls to the corresponding service based on a key obtained either from the HTTP header or the payload. + +![Image of the API gateway exposing a single customer.][5] + +In the above diagram, an API gateway is exposing a single `/customers` resource for multiple customer services, each with a different data store. + +### API geo-routing + +An API geo-routing solution routes an API call to the nearest API gateway based on its origin. In order to prevent latency issues due to distance (for example, a consuming application from Asia calling an API located in North America), you can deploy an API gateway in multiple regions across the world. You can use a different subdomain for each API gateway in each region, letting the consuming application determine the nearest gateway based on application logic. Then, an API gateway provides internal load balancing to make sure that incoming requests are distributed across available instances. + +![Image of a DNS traffic management system.][6] + +It's common to use a DNS traffic management service and an API gateway to resolve each subdomain against the region's load balancer to target the nearest gateway. + +### API aggregator + +This technique performs operations (for example, queries) against multiple services, and returns the result to the client service with a single HTTP response. Instead of having a client application make several calls to multiple APIs, an API aggregator uses an API gateway to do this on behalf of the consumer on the server side. + +Suppose you have a mobile app that makes multiple calls to different APIs. This increases complexity in the client-side code, it causes over-utilization of network resources, and produces a poor user experience due to increased latency. An API gateway can accept all information required as input, and can request authentication and validation, and understand the data structures from each API it interacts with. It's also capable of transforming the response payloads so they can be sent back to the mobile app as a uniform payload needed for the consumer. + +![Image of an API gateway.][7] + +### API centralized authentication + +In this design, an API gateway acts as a centralized authentication gateway. As an authenticator, an API gateway looks for access credentials in the HTTP header (such as a bearer token.) It then implements business logic that validates those credentials with an identity provider. + +![Image of a tree showing API gateway's centralized authentication.][8] + +Centralized authentication with an API gateway can solve many problems. It completely offloads user management from an application, improving performance by responding quickly to authentication requests received from client applications. Apache APISIX offers a [variety of plugins][9] to enable different methods of API gateway authentication. + +![Image showing Apache ASPISIS and various plugins.][10] + +### API format conversion + +API format conversion is the ability to convert payloads from one format to another over the same transport. For example, you can transfer from XML/SOAP over HTTPS to JSON over HTTPS, and back again. An API gateway offers capabilities in support of a [REST API][11] and can do payload conversions and transport conversions. For instance, a gateway can convert from a message queue telemetry transport (MQTT) over TCP (a very popular transport in IoT) to JSON over HTTPS. + +![Image depicting APISIX transfers.][12] + +Apache APISIX is able to receive an HTTP request, transcode it, and then forward it to a gRPC service. It gets the response and returns it back to the client in HTTP format by means of its [gRPC Transcode][13] plug-in. + +### API observability + +By now, you know that an API gateway offers a central control point for incoming traffic to a variety of destinations. But it can also be a central point for observation, because it's uniquely qualified to monitor all traffic moving between the client and service networks. You can adjust an API gateway so that the data (structured logs, metrics, and traces) can be collected for use with specialized monitoring tools**.** + +Apache APISIX provides [pre-built connectors][14] so you can integrate with external monitoring tools. You can leverage these connectors to collect log data from your API gateway to further derive useful metrics and gain complete visibility into how your services are being used. You can also manage the performance and security of your API in your environment. + +### API caching + +API caching is usually implemented inside the API gateway. It can reduce the number of calls made to your endpoint, and also improve the latency of requests to your API by caching a response from upstream. If the API gateway cache has a fresh copy of the requested resource, it uses that copy to satisfy the request directly instead of making a request to the endpoint. If the cached data is not found, the request travels to the intended upstream services. + +![Image depicting how the API gateway cache functions.][15] + +### API fault handling + +API services may fail due to any number of reasons. In such scenarios, your API service must be resilient enough to deal with predictable failures. You also want to ensure that any resilience mechanisms you have in place work properly. This includes error handling code, circuit breakers, health checks, fallbacks, redundancy, and so on. Modern API gateways support all the most common error-handling features, including automatic retries and timeouts. + +![Image depicting some of the many mechanisms that the modern API Gatway can support.][16] + +An API gateway acts as an orchestrator that can use a status report to decide how to manage traffic, send load balances to a healthy node, and can fail fast. It can also alert you when something goes wrong. An API gateway also ensures that routing and other network-level components work together successfully to deliver a request to the API process. It helps you detect a problem in the early stage, and to fix issues. A fault injection mechanism (like the one Apache APISIX uses) at the API gateway level can be used to test the resiliency of an application or microservices API against various forms of failures. + +### API versioning + +This refers to having the ability to define and run multiple concurrent versions of an API. This is particularly important, because an API evolves over time. Having the ability to manage concurrent versions of an API enables API consumers to incrementally switch to newer versions of an API. This means older versions can be deprecated and ultimately retired. This is important because an API, just like any other software application, should be able to evolve either in support of new features or in response to bug fixes. + +![Image of using the API Gateway to implement API versioning.][17] + +You can use an API gateway to implement API versioning. The versioning can be a header, query parameter, or path. + +### Gateway to APISIX + +If you want to scale your API services, you need an API gateway. The Apache APISIX project provides essential features for a robust entrypoint, and its benefits are clear. It aligns with an API-Led architecture, and is likely to transform the way your clients interact with your hosted services. + +_This article has been adapted and republished from the [Apache APISIX blog][18] with the author's permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/api-gateway-apache-apisix + +作者:[Bobur Umurzokov][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/iambobur +[b]: https://github.com/lkxed +[1]: https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces +[2]: https://www.redhat.com/en/topics/microservices/what-are-microservices?intcmp=7013a000002qLH8AAM +[3]: https://opensource.com/sites/default/files/2022-12/API.routing.traffic.png +[4]: https://apisix.apache.org/docs/apisix/terminology/api-gateway/ +[5]: https://opensource.com/sites/default/files/2022-12/API%20gateway%20%20exposing%20a%20singlecustomer.png +[6]: https://opensource.com/sites/default/files/2022-12/DNS-traffic%20management%20.png +[7]: https://opensource.com/sites/default/files/2022-12/API-gateway.png +[8]: https://opensource.com/sites/default/files/2022-12/Apigateway.centralized.png +[9]: https://apisix.apache.org/docs/apisix/plugins/openid-connect/ +[10]: https://opensource.com/sites/default/files/2022-12/Apache.ASPISISplugins.png +[11]: https://www.redhat.com/en/topics/api/what-is-a-rest-api?intcmp=7013a000002qLH8AAM +[12]: https://opensource.com/sites/default/files/2022-12/APISIX.transfers.png +[13]: https://apisix.apache.org/docs/apisix/plugins/grpc-transcode/ +[14]: https://apisix.apache.org/docs/apisix/plugins/prometheus/ +[15]: https://opensource.com/sites/default/files/2022-12/APIgatewaycache.png +[16]: https://opensource.com/sites/default/files/2022-12/ModernAPIGatways.png +[17]: https://opensource.com/sites/default/files/2022-12/API.gateway.version.png +[18]: https://apisix.apache.org/blog/2022/10/27/ten-use-cases-api-gateway/ From 21e1f7dd5613f7634e32c4b82e2b49d3f1cef5c2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 10 Jan 2023 08:45:16 +0800 Subject: [PATCH 2534/3123] translated --- ... Command in Linux Explanation with Examples.md | 138 ------------------ ... Command in Linux Explanation with Examples.md | 132 +++++++++++++++++ 2 files changed, 132 insertions(+), 138 deletions(-) delete mode 100644 sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md create mode 100644 translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md deleted file mode 100644 index 3f04e64f41..0000000000 --- a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md +++ /dev/null @@ -1,138 +0,0 @@ -[#]: subject: "who Command in Linux: Explanation with Examples" -[#]: via: "https://www.debugpoint.com/who-command-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -who Command in Linux: Explanation with Examples -====== - -**Here’s a beginner’s guide on understanding who command in Linux with several examples.** - -_This article is part of the [Linux command][1] learning series._ - -### who command - -The “who” command in Linux is used to display information about users who are currently logged in to the system. It shows the user’s login name, the terminal from which the user is logged in, the time at which the user logged in, and the remote hostname (if applicable). - -#### Syntax - -Here is the basic syntax for the “who” command: - -``` -who [OPTION]... [ FILE | ARG1 ARG2 ] -``` - -### Example of various who command and switches - -By default, “who” reads the file `/var/run/utmp`, which contains information about users who are currently logged in. If no options are specified, it displays each user’s login name, terminal, and time of login. - -``` -who -``` - -It gives the following output. As you can see it shows the login name=debugpoint, terminal id tty2 and the date and time of the login. - -``` -debugpoint tty2 2023-01-01 11:22 (tty2) -``` - -![who command - default example][2] - -However, if you run the above command in a guest virtual machine, you should see the same but the terminal id would be the x11 server display name i.e. :0. - -``` -❯ whodebugpoint :0 2023-01-01 23:36 (:0) -``` - -To show the username of the current user and information, use below: - -``` -whoami -``` - -View the last system boot time using the -b option: - -``` -❯ who -bsystem boot 2023-01-01 23:36 -``` - -Display the count of users logged in the current system: - -``` -❯ who -qdebugpointusers=1 -``` - -All the above command when paired with -H option, you get a better info with a header line, like below: - -``` -who -H - -NAME LINE TIME COMMENT -debugpoint tty2 2023-01-01 11:22 (tty2) -``` - -If you want to display all the information related to who command in Linux, use the option -a: - -``` -who -aH - -NAME LINE TIME IDLE PID COMMENT EXIT -system boot 2023-01-01 11:19 -run-level 5 2023-01-01 11:19 -debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2) -``` - -As always, you can save the output of the who command to any file using the redirect as below: - -``` -who > user_details.txt -``` - -#### Example summary of who command options - -Here are some who command examples and their explanation: - -Here are some options that can be used with the “who” command: - -- `-a`: Display the hostname, time of login, and processes for each user -- `-b`: Display the time of the last system boot -- `-d`: Display dead processes (processes that have terminated but have not been removed from the utmp file) -- `-H`: Display a header line -- `-l`: Display login processes in long format -- `-m`: Display only the name and line of the user who is logged in on the terminal specified by `ARG1 ARG2` -- `-q`: Display a count of logged in users -- `-u`: Display information about users who have processes that are not detached -- `-w`: Display information about users who are logged in, in the same format as the utmp file - -### Closing Notes - -I hope this article helps you to understand who command and its basics. You can also read the [who man pages][3] to learn more. Let me know if you have any questions. - -**This article is part of the [Linux command][1] learning series**. - -[Next:How to Force Auto Dark Mode in Chrome and Chromium][4] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][5] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/who-command-linux/ - -作者:[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/category/linux-commands -[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg -[3]: https://man7.org/linux/man-pages/man1/who.1.html -[4]: https://www.debugpoint.com/chrome-dark-mode/ -[5]: https://floss.social/@debugpoint diff --git a/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md new file mode 100644 index 0000000000..d2097e7d35 --- /dev/null +++ b/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md @@ -0,0 +1,132 @@ +[#]: subject: "who Command in Linux: Explanation with Examples" +[#]: via: "https://www.debugpoint.com/who-command-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux 中的 who 命令:解释与示例 +====== + +**这里是一个关于理解 Linux 中 who 命令的初学者指南,并有几个例子。** + +_这篇文章是 [Linux 命令][1]学习系列的一部分。_ + +### who 命令 + +Linux中的 “who” 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。 + +#### 语法 + +下面是 “who” 命令的基本语法: + +``` +who [OPTION]... [ FILE | ARG1 ARG2 ] +``` + +### 各种 who 命令和开关的例子 + +默认情况下,“who” 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。 + +``` +who +``` + +它给出了以下输出。你可以看到它显示了登录名是 debugpoint,终端ID tty2 和登录的日期和时间。 + +``` +debugpoint tty2 2023-01-01 11:22 (tty2) +``` + +![who 命令 - 默认示例][2] + +然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即:0。 + +``` +❯ whodebugpoint :0 2023-01-01 23:36 (:0) +``` + +要显示当前用户的用户名和信息,使用下面的方法: + +``` +whoami +``` + +使用 -b 选项查看最后一次系统启动时间: + +``` +❯ who -bsystem boot 2023-01-01 23:36 +``` + +显示当前系统中登录的用户数: + +``` +❯ who -qdebugpointusers=1 +``` + +所有上述命令与 -H 选项配对时,你会有一个更好的含标题行的信息,如下所示: + +``` +who -H + +NAME LINE TIME COMMENT +debugpoint tty2 2023-01-01 11:22 (tty2) +``` + +如果你想在Linux中显示与who命令有关的所有信息,请使用选项-a: + +``` +who -aH + +NAME LINE TIME IDLE PID COMMENT EXIT +system boot 2023-01-01 11:19 +run-level 5 2023-01-01 11:19 +debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2) +``` + +像往常一样,你可以使用下面的重定向将 who 命令的输出保存到任何文件: + +``` +who > user_details.txt +``` + +#### who 命令选项的例子总结 + +下面是一些 who 命令的例子和它们的解释: + +下面是一些可以与 “who” 命令一起使用的选项: + +- `-a`: 显示每个用户的主机名、登录时间和进程 +- `-b`: 显示上次系统启动的时间 +- `-d`: 显示死进程(已终止但未从 utmp 文件中删除的进程) +- `-H`: 显示标题行 +- `-l`: 显示长格式的登录进程 +- `-m`: 只显示在 `ARG1 ARG2` 指定的终端上登录的用户的名字和行。 +- `-q`: 显示已登录用户的数量 +- `-u`: 显示拥有未分离进程的用户的信息 +- `-w`: 显示已经登录的用户信息,格式与 utmp 文件相同 + +### 结尾说明 + +我希望这篇文章能够帮助你了解 who 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。 + +**本文是 [Linux 命令][1]学习系列的一部分**。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/who-command-linux/ + +作者:[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/category/linux-commands +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg +[3]: https://man7.org/linux/man-pages/man1/who.1.html From 4ce97555a818140fd036970552212d53ea0622da Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 10 Jan 2023 09:27:50 +0800 Subject: [PATCH 2535/3123] translating --- ...30103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md index 8c1d6978d0..3028fc4ed6 100644 --- a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md +++ b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/whereis-command-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 7faf3872ae02996638ceb5f24be1c76e3d1ea989 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 10 Jan 2023 13:03:17 +0800 Subject: [PATCH 2536/3123] RP @geekpi https://linux.cn/article-15430-1.html --- ... Command in Linux Explanation with Examples.md | 59 ++++++++++--------- 1 file changed, 32 insertions(+), 27 deletions(-) rename {translated/tech => published}/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md (54%) diff --git a/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md similarity index 54% rename from translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md rename to published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md index d2097e7d35..8dfae90cf2 100644 --- a/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md +++ b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md @@ -3,24 +3,26 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15430-1.html" -Linux 中的 who 命令:解释与示例 +who 命令的解释与示例 ====== -**这里是一个关于理解 Linux 中 who 命令的初学者指南,并有几个例子。** +![][0] -_这篇文章是 [Linux 命令][1]学习系列的一部分。_ +> 这里是一个关于理解 Linux 中 who 命令的初学者指南,并带有几个例子。 + +这篇文章是 [Linux 命令][1]学习系列的一部分。 ### who 命令 -Linux中的 “who” 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。 +Linux 中的 `who` 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。 #### 语法 -下面是 “who” 命令的基本语法: +下面是 `who` 命令的基本语法: ``` who [OPTION]... [ FILE | ARG1 ARG2 ] @@ -28,13 +30,13 @@ who [OPTION]... [ FILE | ARG1 ARG2 ] ### 各种 who 命令和开关的例子 -默认情况下,“who” 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。 +默认情况下,`who` 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。 ``` who ``` -它给出了以下输出。你可以看到它显示了登录名是 debugpoint,终端ID tty2 和登录的日期和时间。 +它给出了以下输出。你可以看到它显示了登录名是 `debugpoint`,终端 ID `tty2` 和登录的日期和时间。 ``` debugpoint tty2 2023-01-01 11:22 (tty2) @@ -42,10 +44,11 @@ debugpoint tty2 2023-01-01 11:22 (tty2) ![who 命令 - 默认示例][2] -然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即:0。 +然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即 `:0`。 ``` -❯ whodebugpoint :0 2023-01-01 23:36 (:0) +❯ who +debugpoint :0 2023-01-01 23:36 (:0) ``` 要显示当前用户的用户名和信息,使用下面的方法: @@ -54,19 +57,22 @@ debugpoint tty2 2023-01-01 11:22 (tty2) whoami ``` -使用 -b 选项查看最后一次系统启动时间: +使用 `-b` 选项查看最后一次系统启动时间: ``` -❯ who -bsystem boot 2023-01-01 23:36 +❯ who -b +system boot 2023-01-01 23:36 ``` 显示当前系统中登录的用户数: ``` -❯ who -qdebugpointusers=1 +❯ who -q +debugpoint +users=1 ``` -所有上述命令与 -H 选项配对时,你会有一个更好的含标题行的信息,如下所示: +所有上述命令与 `-H` 选项配对时,你会有一个更好的含标题行的信息,如下所示: ``` who -H @@ -75,7 +81,7 @@ NAME LINE TIME COMMENT debugpoint tty2 2023-01-01 11:22 (tty2) ``` -如果你想在Linux中显示与who命令有关的所有信息,请使用选项-a: +如果你想在 Linux 中显示与 `who` 命令有关的所有信息,请使用选项 `-a`: ``` who -aH @@ -86,7 +92,7 @@ run-level 5 2023-01-01 11:19 debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2) ``` -像往常一样,你可以使用下面的重定向将 who 命令的输出保存到任何文件: +像往常一样,你可以使用下面的重定向将 `who` 命令的输出保存到任何文件: ``` who > user_details.txt @@ -94,9 +100,9 @@ who > user_details.txt #### who 命令选项的例子总结 -下面是一些 who 命令的例子和它们的解释: +下面是一些 `who` 命令的例子和它们的解释: -下面是一些可以与 “who” 命令一起使用的选项: +下面是一些可以与 `who` 命令一起使用的选项: - `-a`: 显示每个用户的主机名、登录时间和进程 - `-b`: 显示上次系统启动的时间 @@ -105,14 +111,12 @@ who > user_details.txt - `-l`: 显示长格式的登录进程 - `-m`: 只显示在 `ARG1 ARG2` 指定的终端上登录的用户的名字和行。 - `-q`: 显示已登录用户的数量 -- `-u`: 显示拥有未分离进程的用户的信息 +- `-u`: 显示拥有未脱离进程的用户的信息 - `-w`: 显示已经登录的用户信息,格式与 utmp 文件相同 -### 结尾说明 +### 总结 -我希望这篇文章能够帮助你了解 who 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。 - -**本文是 [Linux 命令][1]学习系列的一部分**。 +我希望这篇文章能够帮助你了解 `who` 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。 -------------------------------------------------------------------------------- @@ -120,8 +124,8 @@ via: https://www.debugpoint.com/who-command-linux/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -130,3 +134,4 @@ via: https://www.debugpoint.com/who-command-linux/ [1]: https://www.debugpoint.com/category/linux-commands [2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg [3]: https://man7.org/linux/man-pages/man1/who.1.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/10/130213zb6odhv8gl8cvxvo.jpg \ No newline at end of file From e04abddad8e8af9484d77de49437c5aa2b9d6d98 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 10 Jan 2023 17:36:40 +0800 Subject: [PATCH 2537/3123] ALL @wxy https://linux.cn/article-15432-1.html --- ...my zsh and powerlevel10k A Match Made in Heaven.md | 224 ++++++++++++++++++ ...my zsh and powerlevel10k A Match Made in Heaven.md | 222 ----------------- 2 files changed, 224 insertions(+), 222 deletions(-) create mode 100644 published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md delete mode 100644 sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md diff --git a/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md new file mode 100644 index 0000000000..27d7c57e27 --- /dev/null +++ b/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md @@ -0,0 +1,224 @@ +[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven" +[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15432-1.html" + +Oh My Zsh 和 Powerlevel10k:天作之合 +====== + +> 这是一篇快速而简单的指南,用 Oh My Zsh 和 Powerlevel10k 主题改造你的 Zsh 终端 Shell,使其在 Ubuntu 和其他 Linux 发行版中看起来很酷。 + +![][1] + +大多数 Linux 发行版中的默认 Shell 是 Bash。Bash 是一个可靠的和传统的工具。然而,它缺乏一些自定义功能,比如漂亮的颜色、光标支持等等。 + +你可以使用另一个 Shell,即 Zsh 来得到更多的设置调整,并帮助你扩展你的 Bash Shell 体验。 + +这个简单的指南解释了如何安装 Zsh、Oh My Zsh 并应用 Powerlevel10k 主题。 + +### Oh My Zsh 和 Powerlevel10k 安装和配置指南 + +#### 1、安装 Zsh 和改变 Shell + +打开一个终端,使用以下适用于你的发行版的命令安装 Zsh。 + +Ubuntu、Debian、Linux Mint 和所有相关的发行版: + +``` +sudo apt install zsh +``` + +Fedora: + +``` +sudo dnf install zsh +``` + +Arch: + +``` +pacman -S zsh +``` + +安装完成后,找出 Zsh 的安装路径: + +``` +whereis zsh +``` + +然后使用当前用户的 Zsh 可执行路径改变 Shell。 + +``` +chsh -s /usr/bin/zsh <用户名 > +``` + +![改变当前用户的 Shell][2] + +关闭并再次打开终端。然后你应该看到 Zsh 的首次设置。选择选项 2。它将用一个默认的主题改变你的 Shell 提示符的外观,如下图所示: + +![Zsh 的首次设置][3] + +#### 2、安装 Oh My Zsh + +Oh My Zsh 是一套可以进一步定制 Zsh 的脚本。 + +首先,我们将从 GitHub 上下载 Oh My Zsh 脚本来安装它。如果你有 `wget` 和 `git` 软件包,那就最好了。如果还没有安装,请使用以下命令 [安装 wget][4] & git: + +``` +sudo apt install wget +sudo apt install git +``` + +然后用下面的命令安装 Oh My Zsh: + +``` +sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +``` + +然后你应该看到 Oh My Zsh 及默认主题 Robbyrussell 应用到了你的终端。 + +![安装 Oh My Zsh 和默认主题][5] + +Oh My Zsh 还附带了其他的主题,你可以 [使用这篇指南][6] 安装它们。然而,在本教程中,我将谈论一个特定的主题,即 Powerlevel10k。 + +#### 3、为 Oh My Zsh 安装 Powerlevel10k 主题 + +打开终端,运行以下命令,从 GitHub 上克隆 Powerlevel10k 代码库,并将文件放到 Oh My Zsh 的配置文件夹中。 + +``` +git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k +``` + +用文本编辑器打开 `~/.zshrc` 文件,将 `ZSH_THEME` 变量设为 `"powerlevel10k/powerlevel10k"`。 + +``` +cd ~ +``` + +``` +nano .zshrc +``` + +默认情况下,它应该是 Robbyrussell。删除 `”robbyrussell"`,添加下面的 `"powerlevel10k/powerlevel10k"`。 + +更改后,你的 `~/.zshrc` 文件应该是这样的: + +``` +ZSH_THEME="powerlevel10k/powerlevel10k” +``` + +保存并关闭该文件(`CTRL+O`、回车和 `CTRL+X`)。 + +![改变 Oh My Zsh 主题为 Powerlevel10k][7] + +重新启动你的终端,启动首次向导来设置 Powerlevel10k 主题。 + +#### 4、Powerleve10k 的首次设置 + +安装后启动终端时,Powerlevel10k 会提示你各种问题以了解你的 Linux 发行版设置。所以,根据你的需要按下键,按照你的口味来定制你的终端。下面是一些问题的例子截图,可以给你一些启发。 + +![Powerlevel10k - wizard1][8] + +![Powerlevel10k - wizard2][9] + +最后,你可以保存文件,享受你的终端的新面貌。 + +![应用 Powerlevel10k Zsh 主题设置后][10] + +如果你想再次重启配置向导,运行以下程序。你可以随心所欲地做,次数不限。 + +``` +p10k configure +``` + +基本设置就这样结束了。如果你想了解更多,请继续阅读。 + +### 更多配置(高级用法) + +#### 5、安装 Dracula GNOME 终端主题 + +如果你使用的是带有原生终端应用的 GNOME 桌面,你可以试试令人惊叹的 Drakula 主题。要做到这一点,打开一个终端,运行下面的命令来下载该主题: + +``` +git clone https://github.com/dracula/gnome-terminalcd gnome-terminal +``` + +打开 GNOME “终端”应用,进入偏好设置。通过点击 “+” 添加一个新的配置文件,并命名为 “drakula”。然后进入颜色标签,取消勾选 “使用系统主题的颜色use colors from system theme” 选项。 + +![为终端创建一个新的配置文件][11] + +回到终端,运行以下程序。当出现提示时,选择你刚才创建的配置文件名称,如上所述。 + +``` +./install.sh +``` + +![为 GNOME “终端”应用 Drakula 主题][12] + +一旦安装完成,回到偏好设置中,将 Drakula 配置文件标记为默认。 + +#### 6、Zsh 的自动补完和语法高亮 + +你可能想试试由社区开发的两个可用于 Zsh 的插件。它们是 zsh-autosuggestions 和 zsh-syntax-highlighting。 + +打开终端,运行以下程序,下载 zsh-autosuggestions,并将其放在插件文件夹中: + +``` +git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions +``` + +同样地,为语法高亮插件运行以下程序: + +``` +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting +``` + +通过文本编辑器打开 `~/.zshrc`文件(使用以下命令),并找到 `plugins=(git)` 一行。并将其替换为以下内容: + +``` +nano ~/.zshrc +``` + +``` +plugins=(git zsh-autosuggestions zsh-syntax-highlighting) +``` + +使用 `CTRL+O`、回车和 `CTRL+X` 保存并关闭该文件。 + +关闭并打开你的终端。现在,你应该可以使用自动建议和语法高亮了。 + +### 总结 + +这样就好了!你现在应该已经在你的系统上安装了 Oh My Zsh 和 Powerlevel10k 主题。你可以根据自己的需要,进一步定制 Powerlevel10k 主题的外观和行为。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/ohp10k.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg +[4]: https://www.debugpoint.com/wget-not-found-error/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg +[6]: https://www.debugpoint.com/install-use-zsh/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg diff --git a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md deleted file mode 100644 index 4972b6f039..0000000000 --- a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md +++ /dev/null @@ -1,222 +0,0 @@ -[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven" -[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -oh my zsh and powerlevel10k: A Match Made in Heaven -====== - -**A quick and simple guide to transforming your zsh terminal shell with oh my zsh and powerlevel10k theme to make it look cool in Ubuntu and other Linux distros.** - -![][1] - -The default shell in most of the Linux distributions is bash. Bash is solid and a legacy utility. However, it lacks some customizations, such as nice colours, cursor support, etc. - -You can use another shell, zsh to enjoy additional tweaks and help you to extend your Bash shell experience. - -This crisp guide explains how to install zsh, oh my zsh and apply the powerlevel10k theme. - -### oh my zsh and powerlevel10k: Installation and configuration guide - -#### 1. Installing zsh and changing the shell - -Open a terminal and install zsh using the following command applicable to your distribution. - -**_Ubuntu, Debian, Linux Mint and all related distro_** - -``` -sudo apt install zsh -``` - -_**Fedora**_ - -``` -sudo dnf install zsh -``` - -**_Arch_** - -``` -pacman -S zsh -``` - -After installation is complete, find out the zsh install path - -``` -whereis zsh -``` - -Then change the shell using the zsh executable path for the current user. - -``` -chsh -s /usr/bin/zsh -``` - -![change the shell for the current user][2] - -Close and open the terminal again. And you should see the first-time setup for zsh. Select option 2. And it will change the look of your shell prompt with a default theme, as shown below. - -![first time setup for zsh][3] - -#### 2. Install oh my zsh - -The oh my zsh is a set of scripts to customize zsh further. - -Firstly, we will install oh my zsh script by downloading it from GitHub. It would be best if you had wget and git package for that. [Install wget][4] & git using the following command if it’s not installed. - -``` -sudo apt install wget -sudo apt install git -``` - -Then install oh my zsh using the following command. - -``` -sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -``` - -And you should see the oh my zsh theme is applied with a default theme robbyrussell to your terminal. - -![Install oh my zsh and default theme][5] - -The Oh my zsh also comes with additional themes, and you can install them [using this guide][6]. However, in this tutorial, I will talk about a specific theme, i.e. powerlevel10k. - -#### 3. Install powerlevel10k theme for oh my zsh - -Open a terminal and run the following command to clone powerlevel10k repo from GitHub and put the files in the config folder of oh my zsh. - -``` -git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k -``` - -Open the `~/.zshrc` file in a text editor and set the `ZSH_THEME` variable to `"powerlevel10k/powerlevel10k"`. - -``` -cd ~ -``` - -``` -nano .zshrc -``` - -By default, it should be robbyrussell. Remove “robbyrussell” and add the below `"powerlevel10k/powerlevel10k"`. - -Your `~/.zshrc` file should look something like this after the change: - -`ZSH_THEME="powerlevel10k/powerlevel10k"` - -Save and close the file (CTRL+O, ENTER and CTRL+X). - -![change oh my zsh theme to powerlevel10k][7] - -Restart your terminal to launch the first-time wizard to set up the powerlevel10k theme. - -#### 4. First time set up for powerleve10k - -When you launch the terminal after the installation, the powerlevel10k prompts you with various questions to understand your Linux distro setup. So, press the key as per your need to customize your terminal as per your taste. Some example screenshots of questions are below to give you some idea. - -![powerlevel10k - wizard1][8] - -![powerlevel10k - wizard 2][9] - -And finally, you can save the file to enjoy the new look of your terminal. - -![After applying settings in powerlevel10k zsh theme][10] - -If you want to restart the configuration wizard again, run the following. You can do it as many times as you want. - -``` -p10k configure -``` - -This concludes the basic setup. If you want more, follow along. - -### More configuration (advanced usage) - -#### 5. Installing dracula GNOME Terminal theme - -If you are using GNOME desktop with the native terminal, you can try the stunning drakula theme. To do that, open a terminal and run the following command to download the theme. - -``` -git clone https://github.com/dracula/gnome-terminalcd gnome-terminal -``` - -Open GNOME Terminal and go to preferences. Add a new profile by clicking on the [+] and name it “drakula”. Then go to colours tab and uncheck ‘use colors from system theme’ option. - -![create a new profile for terminal][11] - -Go back to the terminal and run the following. When prompted, select the profile name which you just created as above. - -``` -./install.sh -``` - -![applying the drakula theme for gnome terminal][12] - -Once the installation is complete, go back to preferences and mark the drakula profile as default. - -#### 6. Autocomplete and syntax highlighting for zsh - -There are two community-developed plugins available for zsh, which you may want to try out. They are zsh-autosuggestions and zsh-syntax-highlighting. - -Open a terminal and run the following to download zsh-autosuggestions and put it inside the plugin folder. - -``` -git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions -``` - -Similarly, run the following for the syntax highlighting plugin. - -``` -git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting -``` - -Open the ~/.zshrc file via a text editor (use the following command), and find the plugins=(git) line. And replace it with the following: - -``` -nano ~/.zshrc -``` - -``` -plugins=(git zsh-autosuggestions zsh-syntax-highlighting) -``` - -Save & close the file using CTRL+O, ENTER and CTRL+X. - -Close and open your terminal; now, you should be able to use the auto-suggestions and syntax highlighting. - -### Wrapping Up - -That’s it! You should now have “Oh My Zsh” and the Powerlevel10k theme installed on your system. You can customize the appearance and behaviour of the Powerlevel10k theme by customizing further as per your need. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/ - -作者:[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/12/ohp10k.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg -[4]: https://www.debugpoint.com/wget-not-found-error/ -[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg -[6]: https://www.debugpoint.com/install-use-zsh/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg From 3192fa76378c0a42ef1e4f088b51f5561766116e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 10 Jan 2023 20:01:03 +0800 Subject: [PATCH 2538/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230109.3=20=E2=AD=90=EF=B8=8F=20OBS=20Studio=2029?= =?UTF-8?q?=20Release=20Has=20Little=20in=20Store=20For=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...io 29 Release Has Little in Store For Linux.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md diff --git a/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md new file mode 100644 index 0000000000..a6d65103b1 --- /dev/null +++ b/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md @@ -0,0 +1,92 @@ +[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux" +[#]: via: "https://news.itsfoss.com/obs-studio-29-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +OBS Studio 29 Release Has Little in Store For Linux +====== + +OBS Studio 29 is an exciting release with key improvements across all platforms. + +![OBS Studio 29 Release Has Little in Store For Linux][1] + +[OBS Studio][2] is one of the most popular open-source screen recording and streaming software. + +Used by many Linux users and content creators, it has a pretty neat set of tools and features that lets you record and stream content. + +Its last major release was back in September 2022, which brought in native support for Apple Silicon, updated UI, improved color support, and more. + +Its next release, v29, seems to be a bit interesting, but not so much for Linux users 😞 + +### OBS Studio 29: What's New? + +![obs studio 29][3] + +This release has plenty of improvements and fixes; some of the highlights include the following: + +- **Media key support for Linux** +- **New Audio Filters** +- **Improved NVIDIA Video and Audio Filters** +- **Better Encoder Support** +- **Various Fixes and Improvements** + +**Media key support:** You can finally use the media keys on your keyboard to control the playback or the volume with OBS on Linux. + +**New Audio Filters:** OBS Studio 29 features two new audio filters, an upward compressor filter, and a 3-band equalizer filter. + +**Improved NVIDIA Video and Audio Filters:** Various improvements have been made to these filters. + +A new Mask Refresh slider has been added, alongside support for temporal processing, that is supposed to provide better quality masking. + +**Better Encoder Support:** Well, OBS Studio 29 received improved support for several encoders, such as: + +- AMD AV1 Encoder for[RX7000 series][4] of GPUs on Windows. +- Intel AV1 Encoder for [Arc GPUs][5] on Windows. +- Intel HEVC Encoder on Windows. +- Native HEVC and ProRes encoders for macOS. + +> 📋 Note that support for these encoders is only for either Windows or macOS.Sadly, they miss out on support for Linux. We hope these are added in a future release of OBS Studio. + +**Various Fixes and Improvements:** Apart from the ones listed above, OBS Studio 29 features plenty of other changes, such as: + +- Websockets 5.1.0 +- The replay buffer's memory limit is now limited to 75% of installed system RAM, instead of being fixed to 8 GB. +- Support for encryption and authentication for SRT and RIST outputs. +- Ability to inspect and/or mute individual browser docks. +- Support for higher refresh rates in case of video captures. + +For more technical details, you can go through the [official release notes][6]. + +### Download OBS Studio 29 + +To get the latest OBS Studio 29, you can get the [Flatpak][7], the recommended method. + +You can also explore other installation methods mentioned in its official download page. + +[OBS Studio 29][8] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/obs-studio-29-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png +[2]: https://obsproject.com +[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png +[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series +[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html +[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0 +[7]: https://flathub.org/apps/details/com.obsproject.Studio +[8]: https://obsproject.com/download From eac9131992876e2f3591d461f3614c640bc129fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 10 Jan 2023 20:03:41 +0800 Subject: [PATCH 2539/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230110.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?A=20guide=20to=20strings=20in=20MySQL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 228 ++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md diff --git a/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md new file mode 100644 index 0000000000..a0047585ee --- /dev/null +++ b/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md @@ -0,0 +1,228 @@ +[#]: subject: "A guide to strings in MySQL" +[#]: via: "https://opensource.com/article/23/1/strings-mysql" +[#]: author: "Hunter Coleman https://opensource.com/users/hunterc" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A guide to strings in MySQL +====== + +Strings are one of the most common data types you will use in MySQL. Many users insert and read strings in their databases without thinking too much about them. This article aims to give you a bit of a deep dive into how MySQL stores and displays your string variables so that you can have better control over your data. + +You can break strings into two categories: binary and nonbinary. You probably think about nonbinary strings most of the time. Nonbinary strings have character sets and collations. Binary strings, on the other hand, store things such as MP3 files or images. Even if you store a word in a binary string, such as **song**, it is not stored in the same way as in a nonbinary string. + +I will focus on nonbinary strings. All nonbinary strings in MySQL are associated with a character set and a collation. A string's character set controls what characters can be stored in the string, and its collation controls how the strings are ordered when you display them. + +### Character sets + +To view the character sets on your system, run the following command: + +``` +SHOW CHARACTER SET; +``` + +This command will output four columns of data, including the character set: + +- Name +- Brief description +- Default collation +- Maximum size of each character in the character set + +MySQL used to default to the **latin1** character set, but since version 8.0, the default has been **utf8mb4**. The default collation is now **utf8mb4_0900_ai_ci**. The **ai** indicates that this collation is accent insensitive (**á = a**), and the **ci** specifies that it is case insensitive (**a = A**). + +Different character sets store their characters in various-sized chunks of memory. For example, as you can see from the above command, characters stored in **utf8mb4** are stored in memory from one to four bytes in size. If you want to see if a string has multibyte characters, you can use the **CHAR_LENGTH()** and **LENGTH()** functions. **CHAR_LENGTH()** displays how many characters a string contains, whereas **LENGTH()** shows how many bytes a string has, which may or may not be the same as a string's length in characters, depending on the character set. Here is an example: + +``` +SET @a = CONVERT('data' USING latin1); + +SELECT LENGTH(@a), CHAR_LENGTH(@a); + ++------------+-----------------+ +| LENGTH(@a) | CHAR_LENGTH(@a) | ++------------+-----------------+ +| 4 | 4 | ++------------+-----------------+ +``` + +This example shows that the **latin1** character set stores characters in single-byte units. Other character sets, such as **utf16**, allow multibyte characters: + +``` +SET @b = CONVERT('data' USING utf16); + +SELECT LENGTH(@b), CHAR_LENGTH(@b); + ++------------+------------------+ +| LENGTH(@b) | CHAR_LENGTH(@b) | ++------------+------------------+ +| 8 | 4 | ++------------+------------------+ +``` + +### Collation + +A string's collation will determine how the values are displayed when you run a SQL statement with an **ORDER BY** clause. Your choice of collations is determined by what character set you select. When you ran the command `SHOW CHARACTER SET` above, you saw the default collations for each character set. You can easily see all the collations available for a particular character set. For example, if you want to see which collations are allowed by the **utf8mb4** character set, run: + +``` +SHOW COLLATION LIKE 'utf8mb4%'; +``` + +A collation can be case-insensitive, case-sensitive, or binary. Let's build a simple table, insert a few values into it, and then view the data using different collations to see how the output differs: + +``` +CREATE TABLE sample (s CHAR(5)); + +INSERT INTO sample (s) VALUES + ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC'); + +SELECT * FROM sample; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| ccccc | +| bbbbb | +| BBBBB | +| aaaaa | +| CCCCC | ++-----------+ +``` + +With case-insensitive collations, your data is returned in alphabetical order, but there is no guarantee that capitalized words will come before lowercase words, as seen below: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| aaaaa | +| bbbbb | +| BBBBB | +| ccccc | +| CCCCC | ++-----------+ +``` + +On the other hand, when MySQL runs a case-sensitive search, lowercase will come before uppercase for each letter: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs; + ++-----------+ +| s | ++-----------+ +| aaaaa | +| AAAAA | +| bbbbb | +| BBBBB | +| ccccc | +| CCCCC | ++-----------+ +``` + +And binary collations will return all capitalized words before lowercase words: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| ccccc | +| bbbbb | +| BBBBB | +| aaaaa | +| CCCCC | ++-----------+ +``` + +If you want to know which character set and collation a string uses, you can use the aptly named **charset** and **collation** functions. A server running MySQL version 8.0 or higher will default to using the **utf8mb4** character set and **utf8mb4_0900_ai-ci** collation: + +``` +SELECT charset('data'); + ++-------------------+ +| charset('data') | ++-------------------+ +| utf8mb4 | ++-------------------+ + + SELECT collation('data'); + ++--------------------+ +| collation('data') | ++--------------------+ +| utf8mb4_0900_ai_ci | ++--------------------+ +``` + +You can use the `SET NAMES` command to change the character set or collation used. + +To change from the **utf8mb4** character set to **utf16**, run this command: + +``` +SET NAMES 'utf16'; +``` + +If you would also like to choose a collation other than the default, you can add a **COLLATE** clause to the `SET NAMES` command. + +For example, say your database stores words in the Spanish language. The default collation for MySQL (**utf8mb4_0900_ai_ci**) sees ch and ll as two different characters and will sort them as such. But in Spanish, ch and ll are individual letters, so if you want them sorted in the proper order (following c and l, respectively), you need to use a different collation. One option is to use the **utf8mb4_spanish2_ci** collation. + +``` +SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2-ci'; +``` + +### Storing strings + +MySQL allows you to choose between several data types for your string values. (Even more so than other popular databases such as PostgreSQL and MongoDB.) + +Here is a list of MySQL's binary string data types, their nonbinary equivalents, and their maximum length: + +- **binary:** char (255) +- **varbinary:** varchar (65,535) +- **tinyblob:** tinytext (255) +- **blob:** text (65,535) +- **mediumblob:** mediumtext (16,777,215) +- **longblob:** longtext (4,294,967,295) + +One important thing to remember is that unlike the varbinary, varchar, text, and blob types, which are stored in variable length fields (that is, using only as much space as needed), MySQL stores binary and char types in fixed length fields. So a value such as **char(20)** or **binary(20)** will always take up 20 bytes, even if you store less than 20 characters in them. MySQL pads the values with the **ASCII NUL** value (**0x00**) for binary types and spaces for char types. + +Another thing to consider when choosing data types is whether you want spaces after the string to be preserved or stripped. When displaying data, MySQL strips whitespace from data stored with the char data type, but not varchar. + +``` +CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10)); + +INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat '); + +SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2; + ++---------+---------+-----------------------------------+ +| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) | ++---------+---------+-----------------------------------+ +| cat | cat | 3 | 10 | ++---------+---------+-----------------------------------+ +``` + +### Wrap up + +Strings are one of the most common data types used in databases, and MySQL remains one of the most popular database systems in use today. I hope that you have learned something new from this article and will be able to use your new knowledge to improve your database skills. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/strings-mysql + +作者:[Hunter Coleman][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/hunterc +[b]: https://github.com/lkxed From 66504130fc3125c0af27456c2585bcb9be740f5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 10 Jan 2023 20:05:08 +0800 Subject: [PATCH 2540/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230110.2=20=E2=AD=90=EF=B8=8F=20Wow!=20CoolerMaste?= =?UTF-8?q?r's=20MasterPlus=20Software=20to=20Go=20Open=20Source!.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er's MasterPlus Software to Go Open Source!.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md diff --git a/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md new file mode 100644 index 0000000000..ca57c55a4f --- /dev/null +++ b/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md @@ -0,0 +1,80 @@ +[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!" +[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wow! CoolerMaster's MasterPlus Software to Go Open Source! +====== + +MasterPlus to get a complete overhaul and an open-source version? Sounds good! + +![Wow! CoolerMaster's MasterPlus Software to Go Open Source!][1] + +Most gaming/peripheral software suits are either proprietary or not officially available for Linux. + +As a result, we must constantly look for open-source tools to configure our hardware to get native functionality. + +The likes of [Piper][2], [OpenRGB][3], [Solaar][4], etc. come in handy in these situations. + +But, sometimes, even these are not enough. + +Luckily, [CoolerMaster][5] has decided to release an open-source version of its [MasterPlus][6] software that aims to work with its coolers and non-CoolerMaster coolers. + +**While this does not guarantee its availability for Linux systems, we can definitely hope for it.** + +This move should also encourage other companies like Razer and Logitech to consider making open-source tools that do away with bloat found in them. + +Let's see what CoolerMaster plans to do. + +### MasterPlus Open-Source Version: What We Know So Far + +![coolermaster masterplus revamp][7] + +**CoolerMaster revealed their plans to release a new MasterPlus open-source version** in the recent [CES 2023][8] event. Kudos to **Albert** from [Boring Text Reviews][9] for bringing this to our attention. + +**What to expect?:** A complete redesign of the MasterPlus software, with an API plug-in system that allows non-CoolerMaster coolers to integrate with it. + +They have clarified that exclusive CoolerMaster features won't work with other coolers. So, things such as detecting a leak in an AIO cooler or calculating the PSU's efficiency can't be tracked for third-party products. + +Instead, the application will only support reading basic performance info such as temperature and fan speed with the ability to configure ARGB devices. + +If you ask me, **this is better than nothing.** And, if you happen to use CoolerMaster components for your system, it is an exciting news for you! + +CoolerMaster also showcased a potential application of the API system by letting it hook into a photo application and using it to control a secondary display integrated into a computer case's side. + +Furthermore, they also introduced full cloud integration for their software. But sadly, this will not be made open-source. + +**When to expect?:** + +We do not have a concrete release date for the open sourcing of MasterPlus. + +But, if I were to guess, sometime in 2023 would be the best bet. + +💬 _Even if the tool is not confirmed to work for Linux users, on open-source tool is a good start, isn't it? What do you think?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/coolermaster-open-source-software/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png +[2]: https://github.com/libratbag/piper +[3]: https://openrgb.org +[4]: https://github.com/pwr-Solaar/Solaar +[5]: https://www.coolermaster.com +[6]: https://masterplus.coolermaster.com +[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png +[8]: https://www.ces.tech +[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too From e4a926172e070a240f4fd610310e668f9a5c4924 Mon Sep 17 00:00:00 2001 From: Drwhooooo <90264412+Drwhooooo@users.noreply.github.com> Date: Tue, 10 Jan 2023 21:06:22 +0800 Subject: [PATCH 2541/3123] apply for traslation request, ID: Drwhooooo already add my id into the blank ( the translator line) --- ...here, a few there, pretty soon you-re talking real memory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md b/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md index dfdd3ed0d0..feea6a91df 100644 --- a/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md +++ b/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Drwhooooo) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 166858b3feffbe9e457b539ba6c08034022ea1ab Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 11 Jan 2023 08:29:21 +0800 Subject: [PATCH 2542/3123] translated --- ...earn w Command in Linux & BSD with Examples.md | 115 ------------------ ...earn w Command in Linux & BSD with Examples.md | 112 +++++++++++++++++ 2 files changed, 112 insertions(+), 115 deletions(-) delete mode 100644 sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md create mode 100644 translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md diff --git a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md deleted file mode 100644 index 23ae40eb72..0000000000 --- a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md +++ /dev/null @@ -1,115 +0,0 @@ -[#]: subject: "Learn w Command in Linux & BSD with Examples" -[#]: via: "https://www.debugpoint.com/w-command-linux-examples/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn w Command in Linux & BSD with Examples -====== - -**Here’s a beginner’s guide on understanding the w command in Linux & BSD with several examples.** - -![][1] - -_This article is part of the [Linux command][2] learning series._ - -### w command - -The `w` command is a utility in Linux that displays information about the users currently logged into the system and their processes. It shows who is logged on and what activities they are doing. That means it can show what processes they are running in their system. - -### Syntax - -Here is the basic syntax of the `w` command: - -``` -w [options] [username] -``` - -The `w` command takes an optional list of options, followed by an optional username. If a username is specified, `w` will only show information about processes owned by that user. - -### Examples of the w command and its usage - -Here are some examples of using the `w` command. - -When you run it with only w, it shows the following output. - -``` -$ w - 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56 -USER TTY LOGIN@ IDLE JCPU PCPU WHAT -debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary -``` - -![a basic output of w command in Linux][3] - -Explanation: The USER column gives you the username, followed by the terminal number, login date-time, IDLE time, CPU usage, and the process being executed by the user. - -- `USER` – Logged on user name in your Linux or BSD system. -- `TTY` – Terminal identifier number for the current session. -- `FROM` – Hostname or IP address of the user. -- `LOGIN@` – User logged in time. It sometimes shows dates based on your system settings. -- `IDLE` – Idle time elapsed since the user interacted with the terminal. -- `JCPU` – CPU time used by all the user processes for that session. -- `PCPU` – Time used by the process for the user, which is mentioned in the WHAT field. -- `WHAT` – Current process with arguments. - -Here’s another example of the w command with two users logged in a virtual machine environment. As you can see, two user names are shown with separate processes with process parameters currently running. - -![w command output for a demo multi-user environment][4] - -Let’s take a look at some options for this command. - -To show stop showing header, use the`-h` option. It’s identical to the `--no-header` switch. - -``` -$ w -h -``` - -The -f option toggles the visibility of FROM field in your output. - -``` -$ w -f -``` - -Use the `-s` option to print a short version of the output excluding JCPU, PCPU and LOGIN@ information. - -``` -$ w -s -``` - -To show a list of all processes owned by a specific user (for example, `debugpoint`): - -``` -$ w debugpoint -``` - -### Closing Notes - -I hope this article helps you to understand w command and its basics. You can also read the [w man pages][5] to learn more. Let me know if you have any questions. - -**This article is part of the [Linux command][2] learning series**. - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][6] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/w-command-linux-examples/ - -作者:[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/2023/01/whead.jpg -[2]: https://www.debugpoint.com/category/linux-commands -[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg -[5]: https://linux.die.net/man/1/w -[6]: https://floss.social/@debugpoint diff --git a/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md new file mode 100644 index 0000000000..598dbbcf7b --- /dev/null +++ b/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md @@ -0,0 +1,112 @@ +[#]: subject: "Learn w Command in Linux & BSD with Examples" +[#]: via: "https://www.debugpoint.com/w-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +带示例学习 Linux 和 BSD 中的 w 命令 +====== + +**下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。** + +![][1] + +_这篇文章是 [Linux 命令][2]学习系列的一部分。_ + +### w 命令 + +`w` 命令是 Linux 中的一个工具,它显示当前登录到系统中的用户及其进程的信息。它显示谁已登录,以及他们正在做什么活动。这意味着它可以显示他们在系统中运行什么进程。 + +### 语法 + +下面是 `w` 命令的基本语法: + +``` +w [options] [username] +``` + +`w` 命令接受一个可选的选项列表,然后是一个可选的用户名。如果指定了用户名,`w` 将只显示该用户拥有的进程信息。 + +### w 命令的例子及其用法 + +下面是一些使用 `w` 命令的例子。 + +当你只用 w 运行它时,它显示以下输出。 + +``` +$ w + 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56 +USER TTY LOGIN@ IDLE JCPU PCPU WHAT +debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary +``` + +![Linux 中 w 命令的基本输出][3] + +解释:USER 列给出了用户名,然后是终端号、登录日期时间、IDLE 时间、CPU 使用率,以及用户正在执行的进程。 + +- `USER` - 在你的 Linux 或 BSD 系统中登录的用户名称。 +- `TTY` - 当前会话的终端标识符号。 +- `FROM` - 用户的主机名或 IP 地址。 +- `LOGIN@` - 用户登录的时间。它有时会根据你的系统设置显示日期。 +- `IDLE` - 用户与终端交互后的空闲时间。 +- `JCPU` - 该会话的所有用户进程使用的 CPU 时间。 +- `PCPU` - 该用户进程使用的时间,在 WHAT 字段中提到。 +- `WHAT` - 当前带参数的进程。 + +下面是 w 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。 + +![演示多用户环境的 w 命令输出][4] + +让我们看一下这个命令的一些选项。 + +要停止显示标题,使用 `-h` 选项。它与 `--no-header` 开关相同。 + +``` +$ w -h +``` + +-f 选项可以在输出中切换 FROM 字段的可见性。 + +``` +$ w -f +``` + +使用 `-s` 选项打印一个简短的输出,不包括 JCPU、PCPU 和 LOGIN@ 信息。 + +``` +$ w -s +``` + +要显示一个特定用户(例如,`debugpoint`)拥有的所有进程的列表: + +``` +$ w debugpoint +``` + +### 结束语 + +我希望这篇文章能帮助你了解 w 命令及其基本原理。你也可以阅读 [w 手册页][5]来了解更多。如果你有任何问题,请告诉我。 + +**本文是 [Linux 命令][2]学习系列的一部分**。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/w-command-linux-examples/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whead.jpg +[2]: https://www.debugpoint.com/category/linux-commands +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg +[5]: https://linux.die.net/man/1/w From 2a752454dec7f24c2df7e42c757939508802c996 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 11 Jan 2023 08:34:03 +0800 Subject: [PATCH 2543/3123] translating --- ...️ Learn the Ada programming language by writing a simple game.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md index bbfa8c28fc..e721a78485 100644 --- a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md +++ b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game" [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8e0c7207ac29ca6e416c6b71900f0f40c2e60d30 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 11 Jan 2023 10:54:52 +0800 Subject: [PATCH 2544/3123] ALL @wxy https://linux.cn/article-15433-1.html --- ...er's MasterPlus Software to Go Open Source!.md | 78 ++++++++++++++++++ ...er's MasterPlus Software to Go Open Source!.md | 80 ------------------- 2 files changed, 78 insertions(+), 80 deletions(-) create mode 100644 published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md delete mode 100644 sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md diff --git a/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md new file mode 100644 index 0000000000..000cffc3b4 --- /dev/null +++ b/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md @@ -0,0 +1,78 @@ +[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!" +[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15433-1.html" + +酷冷至尊(CoolerMaster)的 MasterPlus 软件即将开源 +====== + +> MasterPlus 将被彻底改造并推出开源版本?听起来不错! + +![][1] + +大多数游戏/外设软件套装要么是专有的,要么是没有对 Linux 的官方支持。 + +因此,我们必须不断寻找开源工具来配置我们的硬件以获得原生功能。 + +像 [Piper][2]、[OpenRGB][3]、[Solaar][4] 等在这些情况下都很有用。 + +但是,有时候,即使是这些也是不够的。 + +幸运的是,[酷冷至尊(CoolerMaster)][5] 已经决定发布其 [MasterPlus][6] 软件的开源版本,旨在为其散热器和第三方的散热器提供服务。 + +**虽然这并不能保证它可以用在 Linux 系统上,但我们绝对可以期待它。** + +此举也应该鼓励雷蛇和罗技这样公司考虑制作精简过的开源工具。 + +让我们看看酷冷至尊打算怎么做。 + +### MasterPlus 开源版本:我们目前所知的情况 + +![酷冷至尊 Masterplus 改版][7] + +**酷冷至尊在最近的 [CES 2023][8] 活动中透露了他们计划发布新的 MasterPlus 开源版本**。感谢来自 [Boring Text Reviews][9] 的 Albert 让我们注意到了这一点。 + +**预期会有什么?** 对 MasterPlus 软件进行了全面的重新设计,有一个 API 插件系统,允许非酷冷至尊散热器与之整合。 + +他们已经澄清,酷冷至尊的独有功能不能配合其他散热器一起工作。因此,诸如检测 AIO 散热器的泄漏或计算 PSU 的效率等,都不能对第三方产品进行跟踪。 + +相反,该应用程序将只支持读取基本的性能信息,如温度和风扇速度,并能够配置 ARGB 设备。 + +如果你问我,**这总比没有好。** 而且,如果你的系统碰巧使用了酷冷至尊的组件,这对你来说是一个令人兴奋的消息! + +酷冷至尊还展示了 API 系统的潜在应用,让它与一个照片应用程序挂钩,用它来控制集成在电脑机箱侧面的辅助显示器。 + +此外,他们还介绍了其软件的全面云整合。但遗憾的是,这部分不会开源。 + +**什么时候?** 我们还没有 MasterPlus 开源的具体发布日期。 + +但是,如果让我猜,2023 年的某个时候是最好的选择。 + +💬 _即使该工具没有被确认可以在 Linux 上工作,对开源工具来说也是一个好的开始,不是吗?你怎么看?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/coolermaster-open-source-software/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png +[2]: https://github.com/libratbag/piper +[3]: https://openrgb.org +[4]: https://github.com/pwr-Solaar/Solaar +[5]: https://www.coolermaster.com +[6]: https://masterplus.coolermaster.com +[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png +[8]: https://www.ces.tech +[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too diff --git a/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md deleted file mode 100644 index ca57c55a4f..0000000000 --- a/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md +++ /dev/null @@ -1,80 +0,0 @@ -[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!" -[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Wow! CoolerMaster's MasterPlus Software to Go Open Source! -====== - -MasterPlus to get a complete overhaul and an open-source version? Sounds good! - -![Wow! CoolerMaster's MasterPlus Software to Go Open Source!][1] - -Most gaming/peripheral software suits are either proprietary or not officially available for Linux. - -As a result, we must constantly look for open-source tools to configure our hardware to get native functionality. - -The likes of [Piper][2], [OpenRGB][3], [Solaar][4], etc. come in handy in these situations. - -But, sometimes, even these are not enough. - -Luckily, [CoolerMaster][5] has decided to release an open-source version of its [MasterPlus][6] software that aims to work with its coolers and non-CoolerMaster coolers. - -**While this does not guarantee its availability for Linux systems, we can definitely hope for it.** - -This move should also encourage other companies like Razer and Logitech to consider making open-source tools that do away with bloat found in them. - -Let's see what CoolerMaster plans to do. - -### MasterPlus Open-Source Version: What We Know So Far - -![coolermaster masterplus revamp][7] - -**CoolerMaster revealed their plans to release a new MasterPlus open-source version** in the recent [CES 2023][8] event. Kudos to **Albert** from [Boring Text Reviews][9] for bringing this to our attention. - -**What to expect?:** A complete redesign of the MasterPlus software, with an API plug-in system that allows non-CoolerMaster coolers to integrate with it. - -They have clarified that exclusive CoolerMaster features won't work with other coolers. So, things such as detecting a leak in an AIO cooler or calculating the PSU's efficiency can't be tracked for third-party products. - -Instead, the application will only support reading basic performance info such as temperature and fan speed with the ability to configure ARGB devices. - -If you ask me, **this is better than nothing.** And, if you happen to use CoolerMaster components for your system, it is an exciting news for you! - -CoolerMaster also showcased a potential application of the API system by letting it hook into a photo application and using it to control a secondary display integrated into a computer case's side. - -Furthermore, they also introduced full cloud integration for their software. But sadly, this will not be made open-source. - -**When to expect?:** - -We do not have a concrete release date for the open sourcing of MasterPlus. - -But, if I were to guess, sometime in 2023 would be the best bet. - -💬 _Even if the tool is not confirmed to work for Linux users, on open-source tool is a good start, isn't it? What do you think?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/coolermaster-open-source-software/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png -[2]: https://github.com/libratbag/piper -[3]: https://openrgb.org -[4]: https://github.com/pwr-Solaar/Solaar -[5]: https://www.coolermaster.com -[6]: https://masterplus.coolermaster.com -[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png -[8]: https://www.ces.tech -[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too From 328b0ddcc3426dda3777d79dbf26e9f6be8d385e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 11 Jan 2023 11:37:46 +0800 Subject: [PATCH 2545/3123] ATR @wxy --- ...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 228 ----------------- ...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 230 ++++++++++++++++++ 2 files changed, 230 insertions(+), 228 deletions(-) delete mode 100644 sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md create mode 100644 translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md diff --git a/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md deleted file mode 100644 index a0047585ee..0000000000 --- a/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md +++ /dev/null @@ -1,228 +0,0 @@ -[#]: subject: "A guide to strings in MySQL" -[#]: via: "https://opensource.com/article/23/1/strings-mysql" -[#]: author: "Hunter Coleman https://opensource.com/users/hunterc" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A guide to strings in MySQL -====== - -Strings are one of the most common data types you will use in MySQL. Many users insert and read strings in their databases without thinking too much about them. This article aims to give you a bit of a deep dive into how MySQL stores and displays your string variables so that you can have better control over your data. - -You can break strings into two categories: binary and nonbinary. You probably think about nonbinary strings most of the time. Nonbinary strings have character sets and collations. Binary strings, on the other hand, store things such as MP3 files or images. Even if you store a word in a binary string, such as **song**, it is not stored in the same way as in a nonbinary string. - -I will focus on nonbinary strings. All nonbinary strings in MySQL are associated with a character set and a collation. A string's character set controls what characters can be stored in the string, and its collation controls how the strings are ordered when you display them. - -### Character sets - -To view the character sets on your system, run the following command: - -``` -SHOW CHARACTER SET; -``` - -This command will output four columns of data, including the character set: - -- Name -- Brief description -- Default collation -- Maximum size of each character in the character set - -MySQL used to default to the **latin1** character set, but since version 8.0, the default has been **utf8mb4**. The default collation is now **utf8mb4_0900_ai_ci**. The **ai** indicates that this collation is accent insensitive (**á = a**), and the **ci** specifies that it is case insensitive (**a = A**). - -Different character sets store their characters in various-sized chunks of memory. For example, as you can see from the above command, characters stored in **utf8mb4** are stored in memory from one to four bytes in size. If you want to see if a string has multibyte characters, you can use the **CHAR_LENGTH()** and **LENGTH()** functions. **CHAR_LENGTH()** displays how many characters a string contains, whereas **LENGTH()** shows how many bytes a string has, which may or may not be the same as a string's length in characters, depending on the character set. Here is an example: - -``` -SET @a = CONVERT('data' USING latin1); - -SELECT LENGTH(@a), CHAR_LENGTH(@a); - -+------------+-----------------+ -| LENGTH(@a) | CHAR_LENGTH(@a) | -+------------+-----------------+ -| 4 | 4 | -+------------+-----------------+ -``` - -This example shows that the **latin1** character set stores characters in single-byte units. Other character sets, such as **utf16**, allow multibyte characters: - -``` -SET @b = CONVERT('data' USING utf16); - -SELECT LENGTH(@b), CHAR_LENGTH(@b); - -+------------+------------------+ -| LENGTH(@b) | CHAR_LENGTH(@b) | -+------------+------------------+ -| 8 | 4 | -+------------+------------------+ -``` - -### Collation - -A string's collation will determine how the values are displayed when you run a SQL statement with an **ORDER BY** clause. Your choice of collations is determined by what character set you select. When you ran the command `SHOW CHARACTER SET` above, you saw the default collations for each character set. You can easily see all the collations available for a particular character set. For example, if you want to see which collations are allowed by the **utf8mb4** character set, run: - -``` -SHOW COLLATION LIKE 'utf8mb4%'; -``` - -A collation can be case-insensitive, case-sensitive, or binary. Let's build a simple table, insert a few values into it, and then view the data using different collations to see how the output differs: - -``` -CREATE TABLE sample (s CHAR(5)); - -INSERT INTO sample (s) VALUES - ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC'); - -SELECT * FROM sample; - -+-----------+ -| s | -+-----------+ -| AAAAA | -| ccccc | -| bbbbb | -| BBBBB | -| aaaaa | -| CCCCC | -+-----------+ -``` - -With case-insensitive collations, your data is returned in alphabetical order, but there is no guarantee that capitalized words will come before lowercase words, as seen below: - -``` -SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci; - -+-----------+ -| s | -+-----------+ -| AAAAA | -| aaaaa | -| bbbbb | -| BBBBB | -| ccccc | -| CCCCC | -+-----------+ -``` - -On the other hand, when MySQL runs a case-sensitive search, lowercase will come before uppercase for each letter: - -``` -SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs; - -+-----------+ -| s | -+-----------+ -| aaaaa | -| AAAAA | -| bbbbb | -| BBBBB | -| ccccc | -| CCCCC | -+-----------+ -``` - -And binary collations will return all capitalized words before lowercase words: - -``` -SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin; - -+-----------+ -| s | -+-----------+ -| AAAAA | -| ccccc | -| bbbbb | -| BBBBB | -| aaaaa | -| CCCCC | -+-----------+ -``` - -If you want to know which character set and collation a string uses, you can use the aptly named **charset** and **collation** functions. A server running MySQL version 8.0 or higher will default to using the **utf8mb4** character set and **utf8mb4_0900_ai-ci** collation: - -``` -SELECT charset('data'); - -+-------------------+ -| charset('data') | -+-------------------+ -| utf8mb4 | -+-------------------+ - - SELECT collation('data'); - -+--------------------+ -| collation('data') | -+--------------------+ -| utf8mb4_0900_ai_ci | -+--------------------+ -``` - -You can use the `SET NAMES` command to change the character set or collation used. - -To change from the **utf8mb4** character set to **utf16**, run this command: - -``` -SET NAMES 'utf16'; -``` - -If you would also like to choose a collation other than the default, you can add a **COLLATE** clause to the `SET NAMES` command. - -For example, say your database stores words in the Spanish language. The default collation for MySQL (**utf8mb4_0900_ai_ci**) sees ch and ll as two different characters and will sort them as such. But in Spanish, ch and ll are individual letters, so if you want them sorted in the proper order (following c and l, respectively), you need to use a different collation. One option is to use the **utf8mb4_spanish2_ci** collation. - -``` -SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2-ci'; -``` - -### Storing strings - -MySQL allows you to choose between several data types for your string values. (Even more so than other popular databases such as PostgreSQL and MongoDB.) - -Here is a list of MySQL's binary string data types, their nonbinary equivalents, and their maximum length: - -- **binary:** char (255) -- **varbinary:** varchar (65,535) -- **tinyblob:** tinytext (255) -- **blob:** text (65,535) -- **mediumblob:** mediumtext (16,777,215) -- **longblob:** longtext (4,294,967,295) - -One important thing to remember is that unlike the varbinary, varchar, text, and blob types, which are stored in variable length fields (that is, using only as much space as needed), MySQL stores binary and char types in fixed length fields. So a value such as **char(20)** or **binary(20)** will always take up 20 bytes, even if you store less than 20 characters in them. MySQL pads the values with the **ASCII NUL** value (**0x00**) for binary types and spaces for char types. - -Another thing to consider when choosing data types is whether you want spaces after the string to be preserved or stripped. When displaying data, MySQL strips whitespace from data stored with the char data type, but not varchar. - -``` -CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10)); - -INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat '); - -SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2; - -+---------+---------+-----------------------------------+ -| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) | -+---------+---------+-----------------------------------+ -| cat | cat | 3 | 10 | -+---------+---------+-----------------------------------+ -``` - -### Wrap up - -Strings are one of the most common data types used in databases, and MySQL remains one of the most popular database systems in use today. I hope that you have learned something new from this article and will be able to use your new knowledge to improve your database skills. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/strings-mysql - -作者:[Hunter Coleman][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/hunterc -[b]: https://github.com/lkxed diff --git a/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md new file mode 100644 index 0000000000..56af862ef8 --- /dev/null +++ b/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md @@ -0,0 +1,230 @@ +[#]: subject: "A guide to strings in MySQL" +[#]: via: "https://opensource.com/article/23/1/strings-mysql" +[#]: author: "Hunter Coleman https://opensource.com/users/hunterc" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: " " +[#]: url: " " + +MySQL 字符串指南 +====== + +> 了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。 + +字符串是你在 MySQL 中使用的最常见的数据类型之一。许多用户在他们的数据库中插入和读取字符串,而没有认真地了解过它们。本文旨在让你深入了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。 + +你可以把字符串分成两类:二进制和非二进制。你可能在大多数时候想到的是非二进制字符串。非二进制字符串有字符集和排序的不同。另一方面,二进制字符串存储诸如 MP3 文件或图像等东西。即使你在二进制字符串中存储了一个词,比如“歌曲”,它的存储方式也与非二进制字符串不同。 + +我将重点讨论非二进制字符串。MySQL 中的所有非二进制字符串都与字符集和排序相关。字符串的字符集控制哪些字符可以存储在字符串中,而它的排序方式控制当你显示字符串时如何排序。 + +### 字符集 + +要查看你系统中的字符集,请运行以下命令: + +``` +SHOW CHARACTER SET; +``` + +这个命令将输出四列数据,包括字符集: + +- 名称 +- 简要描述 +- 默认的排序方式 +- 字符集中每个字符的最大尺寸 + +MySQL 过去默认为 `latin1` 字符集,但自 8.0 版以来,默认为 `utf8mb4`。现在的默认排序方式是 `utf8mb4_0900_ai_ci`。`ai` 表示该排序对音调不敏感( `á` = `a`),而 `ci` 则指定它对大小写不敏感(`a` = `A`)。 + +不同的字符集将其字符存储在内存中不同大小的块中。例如,从上面的命令可以看出,存储在 `utf8mb4` 的字符被存储在 1 到 4 个字节大小的内存中。如果你想看看一个字符串是否包含多字节的字符,你可以使用 `CHAR_LENGTH()` 和 `LENGTH()` 函数。`CHAR_LENGTH()` 显示一个字符串包含多少个字符,而 `LENGTH()` 显示一个字符串有多少个字节,根据字符集的不同,它可能与一个字符串的字符长度相同,也可能不相同。下面是一个例子: + +``` +SET @a = CONVERT('data' USING latin1); + +SELECT LENGTH(@a), CHAR_LENGTH(@a); + ++------------+-----------------+ +| LENGTH(@a) | CHAR_LENGTH(@a) | ++------------+-----------------+ +| 4 | 4 | ++------------+-----------------+ +``` + +这个例子表明,`latin1` 字符集以单字节为单位存储字符。其他字符集,如 `utf16`,允许多字节的字符: + +``` +SET @b = CONVERT('data' USING utf16); + +SELECT LENGTH(@b), CHAR_LENGTH(@b); + ++------------+------------------+ +| LENGTH(@b) | CHAR_LENGTH(@b) | ++------------+------------------+ +| 8 | 4 | ++------------+------------------+ +``` + +### 排序 + +当你运行带有 `ORDER BY` 子句的 SQL 语句时,字符串排序方式将决定值的显示方式。你对排序方式的选择是由你选择的字符集决定的。当你运行上面的 `SHOW CHARACTER SET` 命令时,你看到了每个字符集的默认排序方式。你可以很容易地看到某个特定字符集的所有排序方式。例如,如果你想查看 `utf8mb4` 字符集允许哪些排序,请运行: + +``` +SHOW COLLATION LIKE 'utf8mb4%'; +``` + +排序方式可以是不区分大小写的,也可以是区分大小写的,或者是二进制的。让我们建立一个简单的表,向其中插入一些值,然后用不同的排序方式查看数据,看看输出结果有什么不同: + +``` +CREATE TABLE sample (s CHAR(5)); + +INSERT INTO sample (s) VALUES + ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC'); + +SELECT * FROM sample; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| ccccc | +| bbbbb | +| BBBBB | +| aaaaa | +| CCCCC | ++-----------+ +``` + +在不区分大小写的情况下,你的数据会按字母顺序返回,但不能保证大写的单词会排在小写的单词之前,如下图所示: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| aaaaa | +| bbbbb | +| BBBBB | +| ccccc | +| CCCCC | ++-----------+ +``` + +另一方面,当 MySQL 运行大小写敏感的搜索时,每个字母的小写将排在大写之前: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs; + ++-----------+ +| s | ++-----------+ +| aaaaa | +| AAAAA | +| bbbbb | +| BBBBB | +| ccccc | +| CCCCC | ++-----------+ +``` + +而按二进制排序方式将返回所有大写的值,然后再返回小写的值: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| ccccc | +| bbbbb | +| BBBBB | +| aaaaa | +| CCCCC | ++-----------+ +``` + +如果你想知道一个字符串使用哪种字符集和排序,你可以使用被恰当命名的 `charset` 和 `collation` 函数。运行 MySQL 8.0 或更高版本的服务器将默认使用 `utf8mb4` 字符集和 `utf8mb4_0900_ai_ci` 排序: + +``` +SELECT charset('data'); + ++-------------------+ +| charset('data') | ++-------------------+ +| utf8mb4 | ++-------------------+ + +SELECT collation('data'); + ++--------------------+ +| collation('data') | ++--------------------+ +| utf8mb4_0900_ai_ci | ++--------------------+ +``` + +你可以使用 `SET NAMES` 命令来改变所使用的字符集或排序方式。 + +要从 `utf8mb4` 字符集改为 `utf16`,运行这个命令: + +``` +SET NAMES 'utf16'; +``` + +如果你想选择默认以外的排序方式,你可以在 `SET NAMES` 命令中添加一个 `COLLATE` 子句。 + +例如,假设你的数据库存储西班牙语的单词。MySQL 的默认排序(`utf8mb4_0900_ai_ci`)将 `ch` 和 `ll` 视为两个不同的字符,并将它们排序。但在西班牙语中,`ch` 和 `ll` 是单独的字母,所以如果你想让它们按正确的顺序排序(分别排在 `c` 和 `l` 之后),你需要使用不同的排序。一个选择是使用 `utf8mb4_spanish2_ci` 排序方式: + +``` +SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2_ci'; +``` + +### 储存字符串 + +MySQL 允许你为你的字符串值选择不同的数据类型。(甚至比其他流行的数据库,如 PostgreSQL 和 MongoDB 更多。) + +下面是 MySQL 的二进制字符串数据类型的列表、它们的非二进制对应物,以及它们的最大长度: + +- `binary`:`char`(255) +- `varbinary`:`varchar`(65,535) +- `tinyblob`:`tinytext`(255) +- `blob`:`text`(65,535) +- `mediumblob`:`mediumtext`(16,777,215) +- `longblob`:`longtext`(4,294,967,295) + +要记住的一件重要事情是,与被存储在可变长度的字段中的 `varbinary`、`varchar`、`text` 和 `blob` 类型不同(也就是说,只使用需要的空间),MySQL 将二进制(`binary`)和字符(`char`)类型存储在固定长度的字段。因此,像 `char(20)` 或 `binary(20)` 这样的值将总是占用 20 个字节,即使你在其中存储了少于 20 个字符。对于二进制类型,MySQL用 ASCII NUL 值(`0x00`)填充这些值,对于 字符类型,用空格填充。 + +在选择数据类型时要考虑的另一件事是,你是否希望在字符串后面的空格被保留或剥离。在显示数据时,MySQL 会从以字符数据类型存储的数据中剥离空格,但不会剥离 `varchar` 的空格。 + +``` +CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10)); + +INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat '); + +SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2; + ++---------+---------+-----------------------------------+ +| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) | ++---------+---------+-----------------------------------+ +| cat | cat | 3 | 10 | ++---------+---------+-----------------------------------+ +``` + +### 总结 + +字符串是数据库中最常用的数据类型之一,而 MySQL 仍然是当今最流行的数据库系统之一。我希望你能从这篇文章中学到一些新的东西,并能用你的新知识来提高你的数据库技能。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/strings-mysql + +作者:[Hunter Coleman][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://opensource.com/users/hunterc +[b]: https://github.com/lkxed From 0d9ae8cb642c65e866708bfd5f6fffc47d3950b4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 11 Jan 2023 16:15:13 +0800 Subject: [PATCH 2546/3123] P @wxy https://linux.cn/article-15434-1.html --- .../20230110.0 ⭐️⭐️ A guide to strings in MySQL.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) rename {translated/tech => published}/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md (98%) diff --git a/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md similarity index 98% rename from translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md rename to published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md index 56af862ef8..73372bd403 100644 --- a/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md +++ b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md @@ -4,12 +4,14 @@ [#]: collector: "lkxed" [#]: translator: "wxy" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15434-1.html" MySQL 字符串指南 ====== +![][0] + > 了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。 字符串是你在 MySQL 中使用的最常见的数据类型之一。许多用户在他们的数据库中插入和读取字符串,而没有认真地了解过它们。本文旨在让你深入了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。 @@ -228,3 +230,4 @@ via: https://opensource.com/article/23/1/strings-mysql [a]: https://opensource.com/users/hunterc [b]: https://github.com/lkxed +[0]: https://img.linux.net.cn/data/attachment/album/202301/11/161410lh9944zpgjgmgs8t.jpg \ No newline at end of file From 19fa79d2e9c6b330637ff38c990e6522e17c01c6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 12 Jan 2023 08:53:15 +0800 Subject: [PATCH 2547/3123] translated --- ...reis Command in Linux and BSD with Examples.md | 152 ------------------ ...reis Command in Linux and BSD with Examples.md | 149 +++++++++++++++++ 2 files changed, 149 insertions(+), 152 deletions(-) delete mode 100644 sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md create mode 100644 translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md deleted file mode 100644 index 3028fc4ed6..0000000000 --- a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md +++ /dev/null @@ -1,152 +0,0 @@ -[#]: subject: "Whereis Command in Linux and BSD with Examples" -[#]: via: "https://www.debugpoint.com/whereis-command-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Whereis Command in Linux and BSD with Examples -====== - -**Here’s a beginner’s guide on understanding whereis command in Linux & BSD with several examples.** - -![][1] - -_This article is part of the [Linux command][2] learning series._ - -### whereis command - -The `whereis` command is a command line program that helps you to find out the path or location of any binary executable, source file or manual page. - -Before we show you how to use `whereis` command, let’s look at the syntax. - -### Syntax - -Here’s the syntax for whereis command: - -``` -whereis [OPTIONS] FILE_NAME -``` - -The argument of whereis command is the program name or file name you want to search. The argument is mandatory. - -By default, it searches for the program in the path defined in environment variables such as HOME, USER, SHELL, etc. - -Let’s take a look at some examples. - -### Examples of whereis command in Linux and BSD - -A simple example of whereis command is below where I am trying to search firefox. In the output below, you can see the list of paths containing firefox files or executables displayed. - -``` -$ whereis firefox - -firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz -``` - -![Simple example of whereis command in Linux][3] - -The command with option -l displays the list of paths where it searches. For example: - -``` -$ whereis -l - -bin: /usr/bin -bin: /usr/sbin -bin: /usr/lib -bin: /usr/lib64 -bin: /etc -bin: /usr/games -bin: /usr/local/bin -bin: /usr/local/sbin -bin: /usr/local/etc -bin: /usr/local/lib -bin: /usr/local/games -``` - -If the whereis command doesn’t find anything, it only shows the argument’s name. For example, if I search nano in Linux where is it not installed, it outputs the following: - -``` -$ whereis nano -``` - -``` -nano: -``` - -You can always add multiple arguments if you want to search for more. For example below command searches for both bash and nano, and this is the output: - -``` -$ whereis bash nano - -bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz -nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz -``` - -You can also search for specific file types, such as binaries, using -b option. The following command only tells you the binary paths of nano. - -``` -$ whereis -b nano - -nano: /usr/bin/nano /usr/share/nano -``` - -Similarly, the -s option searches for source files, and the -m option searches for manual pages. - -``` -$ whereis -m nano - -nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz -``` - -You can also combine the above options for a more extensive search. For example, the following command searches for nano and firefox binary, manual pages and for bash, only manual pages. - -``` -$ whereis -bm nano firefox -m bash - -nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz -firefox-m: -bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz -``` - -Here’s a summary of the options: - -| Option | Description | -| :- | :- | -| **-b** | Search only for binaries. | -| **-m** | Search only for manual sections. | -| **-s** | Search only for sources. | -| **-u** | Search for unusual entries. A file is said to be unusual if it does not have one entry of each requested type. Thus ‘whereis -m -u *’ asks for those files in the current directory which have no documentation. | -| **-B** | Change or otherwise limit the places where whereis searches for binaries. | -| **-M** | Change or otherwise limit the places where whereis searches for manual sections. | -| **-S** | Change or otherwise limit the places where whereis searches for sources. | -| **-f** | Terminate the last directory list and signals the start of file names, and must be used when any of the -B, -M, or -S options are used. | - -### Closing Notes - -I hope this article helps you to understand whereis command and its basics. You can also read the[whereis man pages][4] to learn more. Let me know if you have any questions. - -**This article is part of the [Linux command][2] learning series**. - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][5] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/whereis-command-linux/ - -作者:[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/2023/01/whereis-head.jpg -[2]: https://www.debugpoint.com/category/linux-commands -[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg -[4]: https://linux.die.net/man/1/whereis -[5]: https://floss.social/@debugpoint diff --git a/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md new file mode 100644 index 0000000000..f2f5e936d2 --- /dev/null +++ b/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md @@ -0,0 +1,149 @@ +[#]: subject: "Whereis Command in Linux and BSD with Examples" +[#]: via: "https://www.debugpoint.com/whereis-command-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux 和 BSD 中的 Whereis 命令及示例 +====== + +**这是一份关于如何理解 Linux 和 BSD 中 whereis 命令的初学者指南,其中有几个例子。** + +![][1] + +_这篇文章是 [Linux 命令][2]学习系列的一部分。_ + +### whereis 命令 + +`whereis` 命令是一个命令行程序,可以帮助你找出任何二进制可执行文件、源文件或手册页的路径或位置。 + +在告诉你如何使用 `whereis` 命令之前,让我们先看看其语法。 + +### 语法 + +以下是 whereis 命令的语法: + +``` +whereis [OPTIONS] FILE_NAME +``` + +whereis 命令的参数是你要搜索的程序名或文件名。该参数是强制性的。 + +默认情况下,它在环境变量(如 HOME、USER、SHELL 等)中定义的路径中搜索程序。 + +让我们看下一些例子。 + +### Linux 和 BSD 中 whereis 命令的例子 + +下面是 whereis 命令的一个简单例子,我试图搜索 firefox。在下面的输出中,你可以看到包含 firefox 文件或可执行文件的路径列表。 + +``` +$ whereis firefox + +firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz +``` + +![Linux 中 whereis 命令的简单例子][3] + +带有选项 -l 的命令会显示其搜索的路径列表。比如: + +``` +$ whereis -l + +bin: /usr/bin +bin: /usr/sbin +bin: /usr/lib +bin: /usr/lib64 +bin: /etc +bin: /usr/games +bin: /usr/local/bin +bin: /usr/local/sbin +bin: /usr/local/etc +bin: /usr/local/lib +bin: /usr/local/games +``` + +如果 whereis 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 nano,它没有安装,它的输出如下: + +``` +$ whereis nano +``` + +``` +nano: +``` + +如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 bash 和 nano,输出结果是这样的: + +``` +$ whereis bash nano + +bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz +nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +``` + +你也可以使用 -b 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 nano 的二进制路径。 + +``` +$ whereis -b nano + +nano: /usr/bin/nano /usr/share/nano +``` + +同样,-s 选项可以搜索源文件,而 -m 选项可以搜索手册页。 + +``` +$ whereis -m nano + +nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +``` + +你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 nano 和 firefox 的二进制、手册页,而对于 bash,只搜索手册页。 + +``` +$ whereis -bm nano firefox -m bash + +nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +firefox-m: +bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz +``` + +下面是选项的摘要: + +| 选项 | 描述 | +| :- | :- | +| **-b** | 只搜索二进制文件。| +| **-m** | 只搜索手册部分。| +| **-s** | 只搜索源码。| +| **-u** | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,“whereis -m -u *” 会查询当前目录中没有文档的那些文件。| +| **-B** | 改变或限制 whereis 搜索二进制文件的地方。| +| **-M** | 更改或限制 whereis 搜索手册的位置。| +| **-S** | 更改或以其他方式限制 whereis 搜索源码的位置。| +| **-f** | 终止最后一个目录列表并指示文件名的开始,并且必须在使用任何 -B、-M 或 -S 选项时使用。| + +### 结束语 + +我希望这篇文章能够帮助你理解 whereis 命令及其基本原理。你也可以阅读 [whereis 手册页][4]来了解更多。如果你有任何问题,请告诉我。 + +**本文是 [Linux 命令][2]学习系列的一部分**。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/whereis-command-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whereis-head.jpg +[2]: https://www.debugpoint.com/category/linux-commands +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg +[4]: https://linux.die.net/man/1/whereis \ No newline at end of file From 9eec2a4d69fd5ef523c3bacb7e9a9211564dddcb Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 12 Jan 2023 09:00:11 +0800 Subject: [PATCH 2548/3123] translating --- ... lnav Advanced Log File Viewer for Linux Desktops and Servers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md index ab3e8307ac..d8db876fa6 100644 --- a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md +++ b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3ec29fa04d4ed2759ab27a2b84e3fcea7791347d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 12 Jan 2023 10:11:06 +0800 Subject: [PATCH 2549/3123] RP @geekpi https://linux.cn/article-15437-1.html --- ...earn w Command in Linux & BSD with Examples.md | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) rename {translated/tech => published}/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md (66%) diff --git a/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md similarity index 66% rename from translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md rename to published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md index 598dbbcf7b..65d0c7dced 100644 --- a/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md +++ b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md @@ -3,18 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15437-1.html" -带示例学习 Linux 和 BSD 中的 w 命令 +w 命令的解释与示例 ====== -**下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。** +> 下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。 -![][1] +![][0] -_这篇文章是 [Linux 命令][2]学习系列的一部分。_ +这篇文章是 [Linux 命令][2]学习系列的一部分。 ### w 命令 @@ -34,18 +34,18 @@ w [options] [username] 下面是一些使用 `w` 命令的例子。 -当你只用 w 运行它时,它显示以下输出。 +当你只用 `w` 运行它时,它显示以下输出: ``` $ w 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56 USER TTY LOGIN@ IDLE JCPU PCPU WHAT -debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary +debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary ``` ![Linux 中 w 命令的基本输出][3] -解释:USER 列给出了用户名,然后是终端号、登录日期时间、IDLE 时间、CPU 使用率,以及用户正在执行的进程。 +解释:`USER` 列给出了用户名,然后是终端号、登录日期时间、空闲时间、CPU 使用率,以及用户正在执行的进程。 - `USER` - 在你的 Linux 或 BSD 系统中登录的用户名称。 - `TTY` - 当前会话的终端标识符号。 @@ -53,10 +53,10 @@ debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binar - `LOGIN@` - 用户登录的时间。它有时会根据你的系统设置显示日期。 - `IDLE` - 用户与终端交互后的空闲时间。 - `JCPU` - 该会话的所有用户进程使用的 CPU 时间。 -- `PCPU` - 该用户进程使用的时间,在 WHAT 字段中提到。 +- `PCPU` - 该用户的进程(在 `WHAT` 字段中提到)使用的时间。 - `WHAT` - 当前带参数的进程。 -下面是 w 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。 +下面是 `w` 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。 ![演示多用户环境的 w 命令输出][4] @@ -68,13 +68,13 @@ debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binar $ w -h ``` --f 选项可以在输出中切换 FROM 字段的可见性。 +`-f` 选项可以在输出中切换 `FROM` 字段的可见性。 ``` $ w -f ``` -使用 `-s` 选项打印一个简短的输出,不包括 JCPU、PCPU 和 LOGIN@ 信息。 +使用 `-s` 选项打印一个简短的输出,不包括 `JCPU`、`PCPU` 和 `LOGIN@` 信息。 ``` $ w -s @@ -88,9 +88,7 @@ $ w debugpoint ### 结束语 -我希望这篇文章能帮助你了解 w 命令及其基本原理。你也可以阅读 [w 手册页][5]来了解更多。如果你有任何问题,请告诉我。 - -**本文是 [Linux 命令][2]学习系列的一部分**。 +我希望这篇文章能帮助你了解 `w` 命令及其基本原理。你也可以阅读 [w 手册页][5] 来了解更多。如果你有任何问题,请告诉我。 -------------------------------------------------------------------------------- @@ -99,7 +97,7 @@ via: https://www.debugpoint.com/w-command-linux-examples/ 作者:[Arindam][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/) 荣誉推出 @@ -110,3 +108,4 @@ via: https://www.debugpoint.com/w-command-linux-examples/ [3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg [4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg [5]: https://linux.die.net/man/1/w +[0]: https://img.linux.net.cn/data/attachment/album/202301/12/100901f1rnn4zu2u12ligr.jpg \ No newline at end of file From e9ac59738f351558b2724b3e51b0ff479938e68a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 12 Jan 2023 18:18:13 +0800 Subject: [PATCH 2550/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230111.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Linux=20is=20All=20Set=20to=20Disable=20Microsoft's=20RNDIS=20D?= =?UTF-8?q?rivers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md diff --git a/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md new file mode 100644 index 0000000000..da2e06cc21 --- /dev/null +++ b/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md @@ -0,0 +1,77 @@ +[#]: subject: "Linux is All Set to Disable Microsoft's RNDIS Drivers" +[#]: via: "https://news.itsfoss.com/linux-disable-microsoft-rndis/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux is All Set to Disable Microsoft's RNDIS Drivers +====== + +The Linux Kernel will no longer support RNDIS drivers. A good move? What does this mean for you? Find out here. + +![Linux is All Set to Disable Microsoft's RNDIS Drivers][1] + +Microsoft's RNDIS protocol, short for Remote Network Driver Interface Specification, is a proprietary USB protocol for virtual Ethernet functionality on computers. + +The most common use case of this would be using your phone's mobile network to connect to the internet on your computer via USB, also known as [Tethering][2]. + +Even though it mainly works on Windows, it has been part of the Linux kernel for a while now. + +But that is set to change soon. + +### Say Goodbye to RNDIS Protocol? + +![][3] + +**What is happening?:** On Monday, [Greg Kroah-Hartman][4] created the [usb.git rndis-removal][5] branch, where he mentions disabling the implementation of all RNDIS protocol drivers on Linux. + +With the commit, he mentions: + +> The Microsoft RNDIS protocol is, as designed, insecure and vulnerable onany system that uses it with untrusted hosts or devices. Because theprotocol is impossible to make secure, just disable all rndis drivers toprevent anyone from using them again.Windows only needed this for XP and newer systems, Windows systems older than that can use the normal USB class protocols instead, which do not have these problems.Android has had this disabled for many years so there should not be anyreal systems that still need this. + +As initially reported by [Phoronix][6], once this protocol is marked 'BROKEN' in the Kconfig option, it will stay there for a while and ultimately be removed from the kernel. + +But **why?** + +The implementation of RNDIS is known to be a mess on platforms apart from Windows and poses quite a few security risks. In addition, RNDIS is not being used as widely as before, and the security risks it presents might be one of the main reasons for this decision. + +**Does this have an impact on current users? Should you be worried?** + +If we look at a [Reddit thread][7] discussing this upcoming change, we would see that many users remain curious **if this would break USB tethering for everyone.** + +Users seem confused about this move, considering many Android phones still use RNDIS instead of CDC NCM (a newer protocol) 😕 Not just users; a [Kernel Networking Developer at Google][8] also flagged this issue, but we do not see a response to that yet. + +**But not everyone uses mainline Linux Kernel? Should you stick to an LTS version of the kernel if you do not want to be impacted by this change?** + +Furthermore, users wanted more clarity on how this does not impact everyone. + +But, as of now, **Greg** may not have mentioned a lot of details to convince some of the concerned users. + +🤔 Of course, we aren't Linux Kernel maintainers. So, it is best to wait until this commit gets through, and I hope that the Linux Kernel maintainers shed more light on it than we already know. + +💭 _What are your thoughts on this planned change for the Linux Kernel? Share your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-disable-microsoft-rndis/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/linux-to-disable-ms-network-drivers.png +[2]: https://en.wikipedia.org/wiki/Tethering +[3]: https://news.itsfoss.com/content/images/2023/01/kernel-patch-rndis.jpg +[4]: https://twitter.com/gregkh +[5]: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=rndis-removal&id=5eb127bb9741c1480aff95ffa4e1bd4cd9b5b16d +[6]: https://www.phoronix.com/news/Linux-Disabling-RNDIS-Drivers +[7]: https://www.reddit.com/r/linux/comments/108avzx/linux_preparing_to_disable_drivers_for_microsofts/ +[8]: https://lkml.org/lkml/2022/11/23/1502 From 222eaba76c2901f264a51d38dad66519e6958458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 12 Jan 2023 18:24:49 +0800 Subject: [PATCH 2551/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230110.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20to=20use=20methods=20in=20Java.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md diff --git a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md new file mode 100644 index 0000000000..2f59cf6dcc --- /dev/null +++ b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -0,0 +1,187 @@ +[#]: subject: "How to use methods in Java" +[#]: via: "https://opensource.com/article/23/1/java-methods" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to use methods in Java +====== + +A method in Java (called a "function" in many other programming languages) is a portion of code that's been grouped together and labeled for reuse. Methods are useful because they allow you to perform the same action or series of actions without rewriting the same code, which not only means less work for you, it means less code to maintain and debug when something goes wrong. + +A method exists within a class, so the standard Java boilerplate code applies: + +``` +package com.opensource.example; + +public class Example { + // code here +} +``` + +A package definition isn't strictly necessary in a simple one-file application like this, but it's a good habit to get into, and most IDEs enforce it. + +By default, Java looks for a `main` method to run in a class. Methods can be made public or private, and static or non-static, but the main method must be public and static for the Java compiler to recognize and utilize it. When a method is public, it's able to be executed from outside the class. To call the `Example` class upon start of the program, its `main` method must be accessible, so set it to `public`. + +Here's a simple demonstration of two methods: one `main` method that gets executed by default when the `Example` class is invoked, and one `report` method that accepts input from `main` and performs a simple action. + +To mimic arbitrary data input, I use an if-then statement that chooses between two strings, based on when you happen to start the application. In other words, the `main` method first sets up some data (in real life, this data could be from user input, or from some other method elsewhere in the application), and then "calls" the `report` method, providing the processed data as input: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + // generate some data + long myTime = System.currentTimeMillis(); + String weather; + + if ( myTime%2 == 0 ) { + weather = "party"; + } else { + weather = "apocalypse"; + } + + // call the other method + report(weather); + } + + private static void report(String day) { + System.out.printf("Welcome to the zombie %s\n", day); + } +} +``` + +Run the code: + +``` +$ java ./Example.java +Welcome to the zombie apocalypse +$ java ./Example.java +Welcome to the zombie party +``` + +Notice that there are two different results from the same `report` method. In this simple demonstration, of course, there's no need for a second method. The same result could have been generated from the if-then statement that mimics the data generation. But when a method performs a complex task, like resizing an image into a thumbnail and then generating a widget on screen using that resized image, then the "expense" of an additional component makes a lot of sense. + +### When to use a Java method + +It can be difficult to know when to use a method and when to just send data into a [Java Stream][1] or loop. If you're faced with that decision, the answer is usually to use a method. Here's why: + +- Methods are cheap. They don't add processing overhead to your code. +- Methods reduce the line count of your code. +- Methods are specific. It's usually easier to find a method called `resizeImage` than it is to find code that's hidden in a loop somewhere in the function that loads images from the drive. +- Methods are reusable. When you first write a method, you may _think_ it's only useful for one task within your application. As your application grows, however, you may find yourself using a method you thought you were "done" with. + +### Functional vs. object-oriented programming + +Functional programming utilizes methods as the primary construct for performing tasks. You create a method that accepts one kind of data, processes that data, and outputs new data. String lots of methods together, and you have a dynamic and capable application. Programming languages like C and [Lua][2] are examples of this style of coding. + +The other way to think of accomplishing tasks with code is the object-oriented model, which Java uses. In object-oriented programming, methods are components of a template. Instead of sending data from method to method, you create objects with the option to alter them through the use of their methods. + +Here's the same simple zombie apocalypse demo program from an object-oriented perspective. In the functional approach, I used one method to generate data and another to perform an action with that data. The object-oriented equivalent is to have a class that represents a work unit. This example application presents a message-of-the-day to the user, announcing that the day brings either a zombie party or a zombie apocalypse. It makes sense to program a "day" object, and then to query that day to learn about its characteristics. As an excuse to demonstrate different aspects of object-oriented construction, the new sample application will also count how many zombies have shown up to the party (or apocalypse). + +Java uses one file for each class, so the first file to create is `Day.java`, which serves as the Day object: + +``` +package com.opensource.example; + +import java.util.Random; + +// Class +public class Day { + public static String weather; + public int count; + +// Constructor + public Day() { + long myTime = System.currentTimeMillis(); + + if ( myTime%2 == 0 ) { + weather = "paradise"; + } else { + weather = "apocalypse"; + } + } + +// Methods + public String report() { + return weather; + } + + public int counter() { + Random rand = new Random(); + count = count + rand.nextInt(100); + + return(count); + } +} +``` + +In the `Class` section, two fields are created: `weather` and `count`. Weather is static. Over the course of a day (in this imaginary situation), weather doesn't change. It's either a party or an apocalypse, and it lasts all day. The number of zombies, however, increases over the course of a day. + +In the `Constructor` section, the day's weather is determined. It's done as a [constructor][3] because it's meant to only happen once, when the class is initially invoked. + +In the `Methods` section, the `report` method only returns the weather report as determined and set by the constructor. The `counter` method, however, generates a random number and adds it to the current zombie count. + +This class, in other words, does three very different things: + +- Represents a "day" as defined by the application. +- Sets an unchanging weather report for the day. +- Sets an ever-increasing zombie count for the day. + +To put all of this to use, create a second file: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + Day myDay = new Day(); + String foo = myDay.report(); + String bar = myDay.report(); + + System.out.printf("Welcome to a zombie %s\n", foo); + System.out.printf("Welcome to a zombie %s\n", bar); + System.out.printf("There are %d zombies out today.\n", myDay.counter()); + System.out.printf("UPDATE: %d zombies. ", myDay.counter()); + System.out.printf("UPDATE: %d zombies. ", myDay.counter()); + } +} +``` + +Because there are now two files, it's easiest to use a Java IDE to run the code, but if you don't want to use an IDE, you can create your own [JAR file][4]. Run the code to see the results: + +``` +Welcome to a zombie apocalypse +Welcome to a zombie apocalypse +There are 35 zombies out today. +UPDATE: 67 zombies. UPDATE: 149 zombies. +``` + +The "weather" stays the same regardless of how many times the `report` method is called, but the number of zombies on the loose increases the more you call the `counter` method. + +### Java methods + +Methods (or functions) are important constructs in programming. In Java, you can use them either as part of a single class for functional-style coding, or you can use them across classes for object-oriented code. Both styles of coding are different perspectives on solving the same problem, so there's no right or wrong decision. Through trial and error, and after a little experience, you learn which one suits a particular problem best. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-methods + +作者:[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/article/20/1/javastream +[2]: https://opensource.com/article/22/11/lua-worth-learning +[3]: https://opensource.com/article/19/6/what-java-constructor +[4]: https://opensource.com/article/21/8/fastjar + From 5afa018e99f2dcd22906d67684ee06888c3a945e Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 13 Jan 2023 08:33:16 +0800 Subject: [PATCH 2552/3123] translating --- ...a programming language by writing a simple game.md | 179 ------------------ ...a programming language by writing a simple game.md | 179 ++++++++++++++++++ 2 files changed, 179 insertions(+), 179 deletions(-) delete mode 100644 sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md create mode 100644 translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md diff --git a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md deleted file mode 100644 index e721a78485..0000000000 --- a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md +++ /dev/null @@ -1,179 +0,0 @@ -[#]: subject: "Learn the Ada programming language by writing a simple game" -[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game" -[#]: author: "Moshe Zadka https://opensource.com/users/moshez" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn the Ada programming language by writing a simple game -====== - -When you want to [learn a new programming language][1], it's good to focus on the things programming languages have in common: - -- Variables -- Expressions -- Statements - -These concepts are the basis of most programming languages. Once you understand them, you can start figuring out the rest. Because programming languages usually share similarities, once you know one language, you can learn the basics of another by understanding its differences. - -A good way to learn new languages is practicing with a standard program. This allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly. - -This program exercises several concepts in programming languages: - -- Variables -- Input -- Output -- Conditional evaluation -- Loops - -It's a great practical experiment to learn a new programming language. - -### Install Ada - -The [Ada programming language][2] is a unique and highly structured language with a dedicated developer base. The toolchain for Ada is the GNU Ada Development Environment, better known as GNAT. - -You can install GNAT on Linux using your distribution's package manager. On Fedora, CentOS, or similar: - -``` -$ sudo dnf install gcc-gnat -``` - -On Debian, Linux Mint, and derivatives: - -``` -$ sudo apt install gnat -``` - -On macOS and Windows, you can download an installer from the [Adacore website][3] (choose your platform from the drop-down menu). - -### Guess the number in Ada - -Create a file called `game.adb`. - -The two built-in Ada libraries this program uses are `Text_IO` and `Numerics.Discrete_Random`: - -``` -with Ada.Text_IO; -use Ada.Text_IO; -with Ada.Numerics.Discrete_Random; -``` - -#### Procedure head - -The name of the procedure must match the name of the file. The first part is defining the variables. - -Note that the `discrete_random` is specialized to a specific range. In this case, the range of numbers allowed: - -``` -procedure Game is -   type randRange is range 1..100; -   package Rand_Int is new ada.numerics.discrete_random(randRange); -   use Rand_Int; -   gen : Generator; -   num : randRange; -   incorrect: Boolean := True; -   guess: randRange; -``` - -#### Procedure logic - -The logic starts by `reset(gen)`. This initializes the random number generator, ensuring the number, initialized with `random(gen)`, will be different each time you run the program. - -The next step is to run the loop: - -- Output the instructions for a guess -- Read the line -- Convert it to `randRange` -- Check it against the number - -If the number matches, incorrect is set to **False**, causing the next iteration of the loop to exit. - -Finally, the program prints a confirmation of the guess correctness before exiting: - -``` -begin -   reset(gen); -   num := random(gen); -   while incorrect loop -       Put_Line ("Guess a number between 1 and 100"); -       declare -          guess_str : String := Get_Line (Current_Input); -       begin -          guess := randRange'Value (guess_str); -       end; -       if guess < num then -           Put_line("Too low"); -       elsif guess > num then -           Put_line("Too high"); -       else -           incorrect := False; -       end if; -   end loop; -   Put_line("That's right"); -end Game; -``` - -### Build the program - -The easiest way to compile an Ada program is to use `gnatmake`: - -``` -$ gnatmake game.adb -aarch64-linux-gnu-gcc-10 -c game.adb -aarch64-linux-gnu-gnatbind-10 -x game.ali -aarch64-linux-gnu-gnatlink-10 game.ali -``` - -This generates a binary called `game`. - -### Run the program - -Each run of the program will be a little different. This is one example: - -``` -$ ./game  -Guess a number between 1 and 100 -50 -Too low -Guess a number between 1 and 100 -75 -Too low -Guess a number between 1 and 100 -82 -Too low -Guess a number between 1 and 100 -90 -Too high -Guess a number between 1 and 100 -87 -Too low -Guess a number between 1 and 100 -88 -That's right -``` - -### Learn Ada - -This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details. - -Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/learn-ada-simple-game - -作者:[Moshe Zadka][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/moshez -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/20/10/learn-any-programming-language -[2]: https://opensource.com/article/21/10/learn-ada-2021 -[3]: https://www.adacore.com/download/more - diff --git a/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md new file mode 100644 index 0000000000..e215dfe423 --- /dev/null +++ b/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md @@ -0,0 +1,179 @@ +[#]: subject: "Learn the Ada programming language by writing a simple game" +[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过编写一个简单的游戏来学习 Ada 编程语言 +====== + +当你想[学习一种新的编程语言][1]时,把注意力放在编程语言的共同点上是很好的。 + +- 变量 +- 表达式 +- 语句 + +这些概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始琢磨其他的东西了。因为编程语言通常有相似之处,一旦你知道一种语言,你就可以通过了解其差异来学习另一种语言的基础知识。 + +学习新语言的一个好方法是用一个标准程序进行练习。这使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。 + +这个程序锻炼了编程语言中的几个概念: + +- 变量 +- 输入 +- 输出 +- 条件判断 +- 循环 + +这是一个学习新的编程语言的很好的实践实验。 + +### 安装 Ada + +[Ada 编程语言][2]是一种独特的、高度结构化的语言,有专门的开发者基础。Ada 的工具链是 GNU Ada 发环境,更多的是被称为 GNAT。 + +你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上: + +``` +$ sudo dnf install gcc-gnat +``` + +在 Debian, Linux Mint 及衍生版上: + +``` +$ sudo apt install gnat +``` + +在 macOS 和 Windows 上,你可以从 [Adacore 网站][3]下载一个安装程序(从下拉菜单中选择你的平台)。 + +### 在 Ada 中猜数字 + +创建一个名为 `game.adb` 的文件。 + +这个程序使用的两个内置 Ada 库:`Text_IO` 和 `Numerics.Discrete_Random`: + +``` +with Ada.Text_IO; +use Ada.Text_IO; +with Ada.Numerics.Discrete_Random; +``` + +#### 过程头 + +过程(procedure)的名称必须与文件的名称一致。第一部分是定义变量。 + +注意,`discrete_random` 是专门针对特定范围的。在这里,允许数字范围: + +``` +procedure Game is + type randRange is range 1..100; + package Rand_Int is new ada.numerics.discrete_random(randRange); + use Rand_Int; + gen : Generator; + num : randRange; + incorrect: Boolean := True; + guess: randRange; +``` + +#### 过程逻辑 + +该逻辑由 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。 + +下一步是运行循环: + +- 输出猜测的指令 +- 读取该行 +- 将其转换为 `randRange`。 +- 将其与数字进行核对 + +如果数字匹配,incorrect 被设置为 **False**,导致循环的下一次迭代退出。 + +最后,程序在退出前会打印出对猜测正确性的确认: + +``` +begin + reset(gen); + num := random(gen); + while incorrect loop + Put_Line ("Guess a number between 1 and 100"); + declare + guess_str : String := Get_Line (Current_Input); + begin + guess := randRange'Value (guess_str); + end; + if guess < num then + Put_line("Too low"); + elsif guess > num then + Put_line("Too high"); + else + incorrect := False; + end if; + end loop; + Put_line("That's right"); +end Game; +``` + +### 编译程序 + +编译 Ada 程序的最简单方法是使用 `gnatmake`: + +``` +$ gnatmake game.adb +aarch64-linux-gnu-gcc-10 -c game.adb +aarch64-linux-gnu-gnatbind-10 -x game.ali +aarch64-linux-gnu-gnatlink-10 game.ali +``` + +这将生成一个名为 `game` 的二进制文件。 + +### 运行程序 + +程序的每次运行都会有一些不同。这是一个例子: + +``` +$ ./game +Guess a number between 1 and 100 +50 +Too low +Guess a number between 1 and 100 +75 +Too low +Guess a number between 1 and 100 +82 +Too low +Guess a number between 1 and 100 +90 +Too high +Guess a number between 1 and 100 +87 +Too low +Guess a number between 1 and 100 +88 +That's right +``` + +### 学习 Ada + +这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。 + +你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/learn-ada-simple-game + +作者:[Moshe Zadka][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/moshez +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/10/learn-any-programming-language +[2]: https://opensource.com/article/21/10/learn-ada-2021 +[3]: https://www.adacore.com/download/more + From b8e06a875b4c17b39af592d6dd553eabe3372439 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 13 Jan 2023 08:35:31 +0800 Subject: [PATCH 2553/3123] translating --- ... Colorblind Filters GNOME Extension to help Colorblind Users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md index cd48adc303..6d4c4fe848 100644 --- a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From aedc9a8353c18229b3b3a04ba6254591996f5b93 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 13 Jan 2023 09:39:29 +0800 Subject: [PATCH 2554/3123] ATRP @wxy https://linux.cn/article-15439-1.html --- ...io 29 Release Has Little in Store For Linux.md | 92 +++++++++++++++++++ ...io 29 Release Has Little in Store For Linux.md | 92 ------------------- 2 files changed, 92 insertions(+), 92 deletions(-) create mode 100644 published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md delete mode 100644 sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md diff --git a/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md new file mode 100644 index 0000000000..ace2e685f9 --- /dev/null +++ b/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md @@ -0,0 +1,92 @@ +[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux" +[#]: via: "https://news.itsfoss.com/obs-studio-29-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15439-1.html" + +OBS Studio 29 发布,但对 Linux 用户来说变化不大 +====== + +> OBS Studio 29 是一个令人兴奋的版本,在所有平台上都有关键的改进。 + +![][1] + +[OBS Studio][2] 是最受欢迎的开源屏幕录制和流媒体软件之一。 + +许多 Linux 用户和内容创作者都在使用它,它有一套相当不错的工具和功能,可以让你录制和串流内容。 + +它的上一个主要版本发布于 2022 年 9 月,它带来了对苹果芯片的原生支持、更新了用户界面、改进了颜色支持等等。 + +它的下一个版本,即 v29,似乎有点意思,但对 Linux 用户来说变化不大 😞 + +### OBS Studio 29 的新变化 + +![OBS Studio 29][3] + +这个版本有大量的改进和修复;其中一些亮点包括: + +- 对 Linux 的媒体键支持 +- 新的音频过滤器 +- 改进的英伟达视频和音频过滤器 +- 更好的编码器支持 +- 各种修复和改进 + +**媒体键支持:** 你终于可以用键盘上的媒体键来控制 Linux 上的 OBS 的播放或音量了。 + +**新的音频过滤器:** OBS Studio 29 具有两个新的音频滤波器,一个向上压缩滤波器和一个 3 波段均衡器滤波器。 + +**改进的英伟达视频和音频过滤器:** 对这些过滤器进行了各种改进。 + +增加了一个新的屏蔽刷新滑块,同时支持时间处理,这应该是为了提供更好的屏蔽质量。 + +**更好的编码器支持:**,OBS Studio 29 对几个编码器的支持得到了改善,例如: + +- Windows 上的用于 AMD [RX7000 系列][4] 的 AV1 编码器。 +- Windows 上的用于英特尔 [Arc GPU][5] 的 AV1 编码器。 +- Windows 上的英特尔 HEVC 编码器。 +- macOS 上的原生 HEVC 和 ProRes 编码器。 + +> 📋 注意,这些编码器只支持 Windows 或 macOS。可悲的是,他们少了对 Linux 的支持。我们希望在 OBS Studio 的未来版本中加入这些功能。 + +**各种修复和改进:** 除了上面列出的那些,OBS Studio 29 还有很多其他的变化,例如: + +- Websockets 5.1.0 +- 回放缓冲区的内存限制现在被限制在已安装的系统内存的 75%,而不是固定在 8GB。 +- 支持对 SRT 和 RIST 输出的加密和认证。 +- 能够检查和/或静音个别的浏览器底座。 +- 在视频捕获的情况下,支持更高的刷新率。 + +关于更多的技术细节,你可以查看 [官方发布说明][6]。 + +### 下载 OBS Studio 29 + +要获得最新的 OBS Studio 29,你可以使用 [Flatpak][7],这是推荐的方法。 + +你也可以看看其官方下载页面中提到的其他安装方法。 + +> **[OBS Studio 29][8]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/obs-studio-29-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png +[2]: https://obsproject.com +[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png +[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series +[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html +[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0 +[7]: https://flathub.org/apps/details/com.obsproject.Studio +[8]: https://obsproject.com/download diff --git a/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md deleted file mode 100644 index a6d65103b1..0000000000 --- a/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux" -[#]: via: "https://news.itsfoss.com/obs-studio-29-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -OBS Studio 29 Release Has Little in Store For Linux -====== - -OBS Studio 29 is an exciting release with key improvements across all platforms. - -![OBS Studio 29 Release Has Little in Store For Linux][1] - -[OBS Studio][2] is one of the most popular open-source screen recording and streaming software. - -Used by many Linux users and content creators, it has a pretty neat set of tools and features that lets you record and stream content. - -Its last major release was back in September 2022, which brought in native support for Apple Silicon, updated UI, improved color support, and more. - -Its next release, v29, seems to be a bit interesting, but not so much for Linux users 😞 - -### OBS Studio 29: What's New? - -![obs studio 29][3] - -This release has plenty of improvements and fixes; some of the highlights include the following: - -- **Media key support for Linux** -- **New Audio Filters** -- **Improved NVIDIA Video and Audio Filters** -- **Better Encoder Support** -- **Various Fixes and Improvements** - -**Media key support:** You can finally use the media keys on your keyboard to control the playback or the volume with OBS on Linux. - -**New Audio Filters:** OBS Studio 29 features two new audio filters, an upward compressor filter, and a 3-band equalizer filter. - -**Improved NVIDIA Video and Audio Filters:** Various improvements have been made to these filters. - -A new Mask Refresh slider has been added, alongside support for temporal processing, that is supposed to provide better quality masking. - -**Better Encoder Support:** Well, OBS Studio 29 received improved support for several encoders, such as: - -- AMD AV1 Encoder for[RX7000 series][4] of GPUs on Windows. -- Intel AV1 Encoder for [Arc GPUs][5] on Windows. -- Intel HEVC Encoder on Windows. -- Native HEVC and ProRes encoders for macOS. - -> 📋 Note that support for these encoders is only for either Windows or macOS.Sadly, they miss out on support for Linux. We hope these are added in a future release of OBS Studio. - -**Various Fixes and Improvements:** Apart from the ones listed above, OBS Studio 29 features plenty of other changes, such as: - -- Websockets 5.1.0 -- The replay buffer's memory limit is now limited to 75% of installed system RAM, instead of being fixed to 8 GB. -- Support for encryption and authentication for SRT and RIST outputs. -- Ability to inspect and/or mute individual browser docks. -- Support for higher refresh rates in case of video captures. - -For more technical details, you can go through the [official release notes][6]. - -### Download OBS Studio 29 - -To get the latest OBS Studio 29, you can get the [Flatpak][7], the recommended method. - -You can also explore other installation methods mentioned in its official download page. - -[OBS Studio 29][8] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/obs-studio-29-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png -[2]: https://obsproject.com -[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png -[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series -[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html -[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0 -[7]: https://flathub.org/apps/details/com.obsproject.Studio -[8]: https://obsproject.com/download From 31e7dda2eba2699d9c4b8f8c47e6060ce9021bad Mon Sep 17 00:00:00 2001 From: Cubik Date: Thu, 12 Jan 2023 23:58:44 -0500 Subject: [PATCH 2555/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 1999c6f859..ed8b300ca3 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/new-distros-2023/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -216,7 +216,7 @@ via: https://news.itsfoss.com/new-distros-2023/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 2e25f8a33579d94037d27fcdb47dee5247760940 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 13 Jan 2023 17:40:30 +0800 Subject: [PATCH 2556/3123] RP @geekpi https://linux.cn/article-15440-1.html --- ...a programming language by writing a simple game.md | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) rename {translated/tech => published}/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md (79%) diff --git a/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md similarity index 79% rename from translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md rename to published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md index e215dfe423..b502bf537f 100644 --- a/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md +++ b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md @@ -3,14 +3,18 @@ [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15440-1.html" -通过编写一个简单的游戏来学习 Ada 编程语言 +通过编写“猜数字”游戏来学习 Ada 编程语言 ====== -当你想[学习一种新的编程语言][1]时,把注意力放在编程语言的共同点上是很好的。 +![][0] + +> 这个 "猜数字 "游戏是学习新编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。 + +当你想 [学习一种新的编程语言][1] 时,把注意力放在编程语言的共同点上是很好的: - 变量 - 表达式 @@ -32,7 +36,7 @@ ### 安装 Ada -[Ada 编程语言][2]是一种独特的、高度结构化的语言,有专门的开发者基础。Ada 的工具链是 GNU Ada 发环境,更多的是被称为 GNAT。 +[Ada 编程语言][2] 是一种独特的、高度结构化的语言,有专门一群开发者使用它。Ada 的工具链是 GNU Ada 开发环境,多被称为 GNAT。 你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上: @@ -40,13 +44,13 @@ $ sudo dnf install gcc-gnat ``` -在 Debian, Linux Mint 及衍生版上: +在 Debian、Linux Mint 及衍生版上: ``` $ sudo apt install gnat ``` -在 macOS 和 Windows 上,你可以从 [Adacore 网站][3]下载一个安装程序(从下拉菜单中选择你的平台)。 +在 macOS 和 Windows 上,你可以从 [Adacore 网站][3] 下载一个安装程序(从下拉菜单中选择你的平台)。 ### 在 Ada 中猜数字 @@ -62,7 +66,7 @@ with Ada.Numerics.Discrete_Random; #### 过程头 -过程(procedure)的名称必须与文件的名称一致。第一部分是定义变量。 +过程procedure 的名称必须与文件的名称一致。第一部分是定义变量。 注意,`discrete_random` 是专门针对特定范围的。在这里,允许数字范围: @@ -79,7 +83,7 @@ procedure Game is #### 过程逻辑 -该逻辑由 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。 +该逻辑从 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。 下一步是运行循环: @@ -88,7 +92,7 @@ procedure Game is - 将其转换为 `randRange`。 - 将其与数字进行核对 -如果数字匹配,incorrect 被设置为 **False**,导致循环的下一次迭代退出。 +如果数字匹配,`incorrect` 被设置为 `False`,导致循环的下一次迭代退出。 最后,程序在退出前会打印出对猜测正确性的确认: @@ -167,7 +171,7 @@ via: https://opensource.com/article/23/1/learn-ada-simple-game 作者:[Moshe Zadka][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/) 荣誉推出 @@ -176,4 +180,4 @@ via: https://opensource.com/article/23/1/learn-ada-simple-game [1]: https://opensource.com/article/20/10/learn-any-programming-language [2]: https://opensource.com/article/21/10/learn-ada-2021 [3]: https://www.adacore.com/download/more - +[0]: https://img.linux.net.cn/data/attachment/album/202301/13/173929sbddkk6fbd67uu5v.jpg \ No newline at end of file From 2dbc5e82d8ea3e7665b6dd88524acf676459ad6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:16:14 +0800 Subject: [PATCH 2557/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230111.1=20=E2=AD=90=EF=B8=8F=20Wordbook=20Offline?= =?UTF-8?q?=20English=20Dictionary=20App=20for=20GNOME.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ok Offline English Dictionary App for GNOME.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md diff --git a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md new file mode 100644 index 0000000000..b4bdf7d8ec --- /dev/null +++ b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -0,0 +1,73 @@ +[#]: subject: "Wordbook: Offline English Dictionary App for GNOME" +[#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordbook: Offline English Dictionary App for GNOME +====== + +**Meet Wordbook – an offline dictionary application for the GNOME desktop.** + +We mostly search Google, DDG or any search engine online for word information such as meaning, synonyms, antonyms etc. + +Since almost everyone today has an internet-connected mobile phone, it’s probably easier to search on Google. + +But for offline usage, you may try [Wordbook][1] when no internet connection is available. + +### Wordbook: Offline dictionary app + +The app is very basic in nature. But does its job with its capacity. Wordbook currently supports an English-to-English dictionary. At its core, it uses the [Open English WordNet database][2] for definitions. The Open English Wordnet is an open-source fork of the [Princeton Wordnet project][3]. + +The Wordbook app can also pronounce words using [eSpeak][4] – a free and open-source speech synthesizer. + +![Wordbook - English to English Dictionary App][5] + +However, during the first run, it requires one-time internet access to download offline data. And that’s about it. Other notable feature includes live search, double-click search and custom definitions with HTML markup. + +Wordbook is a [GNOME app][6], built using the modern GTK4 and libadwaita. Hence integrates well with the GNOME desktop with light and dark themes. You can also use Wordbook’s random word feature to learn new words to increase your vocabulary. + +### Installation + +You can easily install it as a Flatpak app from Flathub. Set up your system for Flatpak & Flathub and then install it using the below command from the terminal: + +``` +flatpak install com.github.fushinari.Wordbook +``` + +After installation, you can find it on the application menu. + +### Close notes + +I hope you use this tiny app for your school or business work. The offline nature is handy if you are writing essays and longer paragraphs. + +Do you know any other offline dictionary for Linux? Let us know in the comment box. + +[Next:Install Ubuntu on Windows Using VirtualBox [Complete Guide]][7] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][8] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wordbook-offline-dictionary/ + +作者:[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://github.com/fushinari/Wordbook +[2]: https://github.com/globalwordnet/english-wordnet +[3]: https://wordnet.princeton.edu/ +[4]: https://espeak.sourceforge.net/ +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Wordbook-English-to-English-Dictionary-App.jpg +[6]: https://www.debugpoint.com/tag/gnome-app +[7]: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ +[8]: https://floss.social/@debugpoint From e19fb1c00840e27cbc788862e6d0c96425a3cd06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:17:32 +0800 Subject: [PATCH 2558/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230112.1=20=E2=AD=90=EF=B8=8F=20Ubuntu=2023.04=20L?= =?UTF-8?q?unar=20Lobster=20Wallpaper=20Competition=20is=20Now=20Open.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r Lobster Wallpaper Competition is Now Open.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md diff --git a/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md new file mode 100644 index 0000000000..209048a38b --- /dev/null +++ b/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md @@ -0,0 +1,59 @@ +[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open" +[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open +====== + +![][1] + +**Like digital drawing or photography? This wallpaper competition may feature your photos in the official Ubuntu 23.04 release.** + +### Wallpaper Competition for Ubuntu 23.04 + +Ubuntu 23.04 “Lunar Lobster” release is due in April 2023. Following the schedule, the official wallpaper competition is now open before the upcoming BETA release. + +As per the official guidelines, you must own the rights to the images that you are posting, and they must be original. No AI-generated images should be considered, arguably. + +Furthermore, your submitted image should have at least 3840x2160px dimensions and should not exceed 10MB of file size. The file formats SVG and WebP are preferred. However, standard formats such as PNG and JPG are also accepted. + +In addition, your images should not have any watermark, logo or text such as “Lunar Lobster” or “Ubuntu”. You can read the detailed guideline [here][2]. + +Finally, your wallpaper may feature the official mascot – “Lunar” and “Lobster”. + +The submission closes on February 6, 2023, and final winners will be announced on February 18, 2023, after community voting. + +![One of the early submission for Ubuntu 23.04 official wallpaper][3] + +### How to submit it? + +Head over to the official discourse forum post and submit your entries. Make sure to mention your name and Twitter handle to get credit from the Ubuntu team if selected. + +[Submit wallpapers][4] + +Put on your creative hat and submit all those cool wallpapers! + +_Image credits: respective author_ + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg +[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md +[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg +[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132 From 6b58a0793408376ca698b101497ac517cb847644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:19:19 +0800 Subject: [PATCH 2559/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230112.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Discourse=203.0=20is=20an=20Amazing=20Release=20With=20Much-Nee?= =?UTF-8?q?ded=20Feature=20Additions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...zing Release With Much-Needed Feature Additions.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md diff --git a/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md new file mode 100644 index 0000000000..5de7f32df5 --- /dev/null +++ b/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md @@ -0,0 +1,148 @@ +[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions" +[#]: via: "https://news.itsfoss.com/discourse-3-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions +====== + +Open-source forum software Discourse has a new major upgrade! Check out what's new. + +![Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions][1] + +Discourse is an open-source forum platform known for its vast features and third-party integrations. + +It is also one of the [best open-source forum software][2] you can deploy on your Linux servers to build a community. + +The **[It's FOSS Community][3]** forum is **also****powered by Discourse**. If you have any questions or want to join in discussing Linux/Open-Source stuff with like-minded people, feel free to sign up on our community forum. + +Now, moving on to Discourse's latest release. + +**Discourse 3.0 is finally here**. + +This comes almost **five years** after the release of [Discourse 2.0.][4] + +This release is packed with plenty of new features and improvements; let me take you through them. + +### 🆕 Discourse 3.0: What's New? + +![discourse 3.0][5] + +Discourse 3.0 has a lot to offer; some of the notable highlights include: + +- **New Setup Wizard** +- **User Status** +- **Notifications Menu** +- **New Sidebar** +- **Real-Time Chat** +- **User Tips** + +#### New Setup Wizard + +![discourse setup wizard][6] + +Discourse now features a new setup wizard that lets you quickly configure some of the most important options. + +So, options like setting a community to **Private, Invite Only, Require Approval,** and more are shown during the initial stages of the set-up of your forum. + +#### User Status + +![discourse 3.0 user status][7] + +Similar to what most community platforms are doing nowadays, Discourse now has support for setting user status. + +Users can set a custom emoji and text to be displayed near their avatar across the platform, be it posts, chat, or in the user card. + +#### Notifications Menu + +![discourse notifications][8] + +Finally, this has become a reality. + +Discourse now has a dedicated notifications menu, making it easier to track your activity on the forums. + +#### New Sidebar + +![discourse 3 sidebar][9] + +This is yet **another user experience improvement** that you might like. + +You can now add chat channels, tags, and categories to the new sidebar for easy access to the things you want to keep track of. + +Admins of forums can also set a default sidebar config for visitors and new members; this way, everyone can get a great outlook of what a forum offers. + +#### Real-Time Chat + +![discourse 3.0 realtime chat][10] + +Discourse now has support for real-time chats; channel admins can choose to create a space for informal discussion, showcase, or even memes if it works for them. + +Discourse's **Product Manager**, _Rishabh Nambiar,_mentions: + +> Our goal is to empower communities with an integrated experience as conversations shift between faster-paced chat and slower-paced discussions.When ideas are sparked that belong in a more discoverable place, chat messages can be quoted in topics where the discussion can continue over time and allow people in different times and places to join in later. + +#### User Tips + +![discourse 3.0 user tips][11] + +This feature can be helpful to new users who are unfamiliar with Discourse. + +Users will be provided with tips related to the features of Discourse when they use a particular feature for the first time. + +#### 🛠️ Other Changes & Improvements + +The above-mentioned are not the only changes coming to Discourse with this release; here are some other highlights: + +- **The hashtag system has been revamped.** +- **The search UI has been improved.** +- **Open-source tooling has been updated.** +- **Improved error pages.** +- **New splash screen.** +- **Improved page loading spinner.** +- **Faster image preloads.** + +If you want a deep dive into the technical details of this release, go through the [release notes][12]. + +### 📥 Get Discourse 3.0 + +If you are on [Discourse's hosting plan][13], you must have already received the 3.0 update, and all you have to do is enable the new features via your admin settings. + +**Suggested Read 📖** + +And, if you are self-hosted, you must manually update your instance by clicking on the '**Update**' button on your admin dashboard. + +For new users, explore more about Discourse on their official site. + +[Discourse][14] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/discourse-3-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png +[2]: https://itsfoss.com/open-source-forum-software/ +[3]: https://itsfoss.community +[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/ +[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg +[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png +[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg +[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg +[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg +[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg +[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg +[12]: https://meta.discourse.org/t/discourse-version-3-0/ +[13]: https://www.discourse.org/pricing +[14]: https://www.discourse.org From 64fa5e7135c6a2e70e34f8ed54ce57cf4785f8b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:19:51 +0800 Subject: [PATCH 2560/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230112.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Install=20Ubuntu=20on=20Windows=20Using=20VirtualBox=20[Complet?= =?UTF-8?q?e=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tu on Windows Using VirtualBox [Complete Guide].md | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md diff --git a/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md new file mode 100644 index 0000000000..abe5942ad6 --- /dev/null +++ b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -0,0 +1,241 @@ +[#]: subject: "Install Ubuntu on Windows Using VirtualBox [Complete Guide]" +[#]: via: "https://www.debugpoint.com/install-ubuntu-windows-virtualbox/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Install Ubuntu on Windows Using VirtualBox [Complete Guide] +====== + +**This tutorial will guide you through the easiest steps to install an Ubuntu desktop on Windows using Oracle VirtualBox.** + +[VirtualBox][1] is a popular virtualization software by Oracle which is available for Linux, mac and Windows systems. It is flexible and brings many features to take advantage of your virtualization. It’s the best and easy way to experience Ubuntu in Windows without installing it. However, I strongly recommend installing Ubuntu physically as a dual-boot to enjoy its advantage. + +The steps outlined below assume that you are installing Ubuntu for the first time in Windows. Hence the steps are a little descriptive and a bit lengthy. Furthermore, the following steps should work for Windows 10 and Windows 11 as host machines. + +### Contents + +- [Pre-requisite][2] +- [Download Ubuntu ISO and VirtualBox set-up files][3] +- [Install VirtualBox on Windows (Host)][4] +- [Install Ubuntu (Guest) on VirtualBox][5] +- [Guest addition installation and tips][6] + +### What you’ll need + +- A PC with internet access +- Ubuntu Linux ISO image file for installation +- Windows system with VirtualBox installed + +### Install Ubuntu on Windows Using VirtualBox + +#### Download and install the necessary items + +- Download the Ubuntu Linux desktop ISO image file from the following link. + +[Download Ubuntu Desktop][7] + +- Also, download the Oracle VirtualBox installer from the official website below. + +[Download VirtualBox][8] + +![Download location for VirtualBox for Windows][9] + +#### How to install and configure VirtualBox + +VirtualBox in Windows requires Microsoft Visual C++ 2019 Redistributable package. And you have to install it first. Download the package (under X64 architecture) from the below link: + +[Download][10] + +![Download the dependency for VirtualBox][11] + +![Install the dependency for VirtualBox][12] + +- After the above installation is complete, download the latest Python package from the below link. Python bindings are also a dependency for VirtualBox installation on Windows. + +[Download Python for Windows][13] + +- Then, launch the VirtualBox installation and follow the onscreen instructions to install it. +- After installation, restart your Windows system again. + +#### Set up a virtual machine for Ubuntu + +- Launch VirtualBox from the start menu. + +![Select VirtualBox from start menu][14] + +- On the VirtualBox window toolbar, click **New**. +- On the **Create VirtualBox** window, give the name of your virtual machine. It can be any name which identifies this version of Ubuntu. +- Keep the **Folder Name** unchanged. This is the path where the virtual machine file will be created. +- In the ISO Image field, browse the Ubuntu ISO file you downloaded. +- And select the Unattended installation. If you un-select this, a [default user id (vboxuser) and password][15] will be created in your virtual machine. Let’s not follow it for now. + +![Click on New][16] + +![Select the ISO file][17] + +- Click on Hardware and select the RAM you want for your virtual box. A thumb rule is that your VM’s RAM size should be less than your physical RAM in the host system. I would recommend using 2 GB to 4 GB for a virtual machine for an 8 GB RAM system. For 4 GB RAM, use the slider (or type in) to make it 4096 MB (i.e. 4*1024). +- Choose processor as 2 or 4. +- Click on the Hard Disk section, and keep the file location unchanged. +- Give a minimum of 20GB to 25GB for Ubuntu installation. +- The hard disk file type value keeps as VDI (VirtualBox Disk Image) +- Do not select the pre-allocate full size. +- And finally, click on Finish. + +![Select Hardware][18] + +![Select Hard Disk][19] + +- You should see a new entry at the left panel of VirtualBox with an Ubuntu 22.04 entry (the name which you gave above). +- Select the entry and click on Start to boot into the virtual machine + +![Boot Ubuntu in VirtualBox][20] + +#### Install Ubuntu using VirtualBox + +- After a successful boot, you should see the following screen, which shows various options for installing Ubuntu. Select **Try or install Ubuntu**. +- In the Welcome screen, click on **Try Ubuntu**. And after a few moments, you should see the following Ubuntu LIVE desktop. If you want to change the resolution, right-click on the desktop and select Display settings. And change the resolution to 1400×900. +- On the desktop, double-click on “**Install Ubuntu**…”. + +![Select Try Ubuntu][21] + +![Ubuntu LIVE desktop][22] + +- In the next set of screens, select Language and Keyboard Layout as your needs. +- The Install screen provides you with the type of installation you need. Select Normal Installation, and select both options under Other options. +- Since you are installing in the virtual disk space, i.e. which is just a file, you can safely choose the “Erase disk and install Ubuntu” option. +- Hit Install Now and Continue. + +![Select Language][23] + +![Select Keybaord Layout][24] + +![Select install options][25] + +![Installation Type][26] + +![Write changes to disk][27] + +- Then select region, add name, user and password. This will be your user id and password to log on to Ubuntu after installation. +- Hit continue to start the installation. Wait until it finishes. + +![User account creation][28] + +![Ubuntu Installation is complete][29] + +Click on Restart Now after the installation is complete. Wait for a few seconds and you should see a login screen. Use the user id and password to log in. And you should see Ubuntu desktop is running inside VirtualBox as VM in Windows. + +![Log on to Ubuntu][30] + +![Ubuntu running in Windows using Virtualbox][31] + +### Post-install configuration and tips (optional) + +#### Install Guest Additions + +After the successful installation, you should install the **VirtualBox guest additions** for Windows Host and Ubuntu Guest. The guest addition is a set of packages you need to install inside the guest VM (i.e. Ubuntu) to enable **shared folders, bi-directional copy/paste, automatic resolution change,** and many such features. + +To install it, boot into Ubuntu. From the VirtualBox menu, select `Devices > Insert Guest Additions CD Image`. The necessary packages will be mounted inside Ubuntu. + +![Select Guest addition from the menu][32] + +Open the file manager and open the mounted folder as shown below. And then right-click > select `open in terminal`. + +Then run the following command: + +``` +sudo ./VBoxLinuxAdditions.run +``` + +![Open the mounted disc and select option with terminal][33] + +![VirtualBox guest addition install for Windows host][34] + +After the above command is complete, restart Ubuntu VM. + +#### Enable Copy and paste between Windows and Ubuntu + +- To enable the copy and paste between Windows and Ubuntu systems, select `Devices > Shared Clipboard > Bi-directional` from the menu. + +![Enable clipboard sharing][35] + +#### Shutting down Ubuntu VM + +- Ideally, you should shut down a VM from its own power off menu. However, you can also shut down from the main VirtualBox window. Right-click on the VM name and select `Close > Poweroff`. + +![Poweroff Virtual machine][36] + +#### How to delete Ubuntu and remove all data + +- If you want to delete the Virtual machine entirely (.e.g. Ubuntu) and its data, select `Remove` and `delete all files`. + +![Select remove to delete a VM][37] + +![Select the delete options][38] + +### Close notes + +In this tutorial, you learned the easiest way to install Ubuntu on Windows (10 or 11) using VirtualBox. Also, you learned several post-install basic steps to configure the Ubuntu VM. You can use the above steps for any other Linux distributions in VirtualBox. + +Feel free to comment below if you have any problems or questions. + +[Next:How to Install Python on Windows [Beginner’s Guide]][39] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][40] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ + +作者:[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/tag/virtualbox +[2]: https://www.debugpoint.com#presteps +[3]: https://www.debugpoint.com#download-items +[4]: https://www.debugpoint.com#install-virtualbox +[5]: https://www.debugpoint.com#install-ubuntu +[6]: https://www.debugpoint.com#post-install-steps +[7]: https://ubuntu.com/download/desktop +[8]: https://www.virtualbox.org/wiki/Downloads +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-location-for-VirtualBox-for-Windows.jpg +[10]: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-the-dependency-for-VirtualBox.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-dependency-for-VirtualBox.jpg +[13]: https://www.python.org/downloads/windows/ +[14]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-VirtualBox-from-start-menu.jpg +[15]: https://www.debugpoint.com/virtualbox-id-password/ +[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-New.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-ISO-file.jpg +[18]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hardware.jpg +[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hard-Disk.jpg +[20]: https://www.debugpoint.com/wp-content/uploads/2023/01/Boot-Ubuntu-in-VirtualBox.jpg +[21]: https://www.debugpoint.com/wp-content/uploads/2023/01/1-Select-Try-Ubuntu.jpg +[22]: https://www.debugpoint.com/wp-content/uploads/2023/01/2-Ubuntu-LIVE-desktop-1.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Language.jpg +[24]: https://www.debugpoint.com/wp-content/uploads/2023/01/4-Select-Keybaord-Layout.jpg +[25]: https://www.debugpoint.com/wp-content/uploads/2023/01/5-Select-install-options.jpg +[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/6-Installation-Type.jpg +[27]: https://www.debugpoint.com/wp-content/uploads/2023/01/7-Write-changes-to-disk.jpg +[28]: https://www.debugpoint.com/wp-content/uploads/2023/01/8-User-account-creation.jpg +[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/10-Ubuntu-Installation-is-complete.jpg +[30]: https://www.debugpoint.com/wp-content/uploads/2023/01/11-Log-on-to-Ubuntu.jpg +[31]: https://www.debugpoint.com/wp-content/uploads/2023/01/12-Ubuntu-running-in-Windows-using-Virtualbox-2048x1280.jpg +[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Guest-addition-from-the-menu.jpg +[33]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-mounted-disc-and-select-option-with-terminal.jpg +[34]: https://www.debugpoint.com/wp-content/uploads/2023/01/VirtualBox-guest-addition-install-for-Windows-host.jpg +[35]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-clipboard-sharing.jpg +[36]: https://www.debugpoint.com/wp-content/uploads/2023/01/Poweroff-Virtual-machine.jpg +[37]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-remove-to-delete-a-VM.jpg +[38]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-delete-options.jpg +[39]: https://www.debugpoint.com/install-python-windows/ +[40]: https://floss.social/@debugpoint From 2c71feb257aa99f5bb622525ad6e640394e15ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:21:09 +0800 Subject: [PATCH 2561/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230113.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20Python=20on=20Windows=20[Beginner=E2=80=99s=20Guide].md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nstall Python on Windows [Beginner’s Guide].md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md diff --git a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md new file mode 100644 index 0000000000..18a3b824f8 --- /dev/null +++ b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -0,0 +1,147 @@ +[#]: subject: "How to Install Python on Windows [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-python-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Python on Windows [Beginner’s Guide] +====== + +**This simple guide demonstrates how to download and install Python on Windows.** + +This article is tested with the latest Python 3.11 stable version. + +Before you learn how to install Python on Windows, you might want to check how you can [install it easily][1] on Linux distributions such as Ubuntu. It’s better to try Python in Linux if you are planning to be a developer. That being said, you might want to check [how to install Linux (such as Ubuntu) alongside Windows][2]. + +Python is a popular general-purpose programming language which becomes the developer’s choice in the past decade. And its popularity is increasing every day. it is widely used for web development, complex systems, data science, machine learning and all areas of science. + +There are two versions of Python that you may come across. Python2 is currently out of support. And the Python3 series is the ongoing support release. + +### Check whether Python is installed + +Before you install it on Windows, you should check whether it is already installed. In general, it should not be installed, unlike in Ubuntu (and other Linux distributions), where Python comes pre-installed. + +From the start menu, open “command prompt”. + +And type the following: + +``` +python --version +``` + +If Python is available, it will show you a message with the version details. + +### Download and Install Python + +Open the below official Python download page. + +[Download Python][3] + +![How to locate Python set up][4] + +At the top, you should see the current stable version. Click on the download link. If you are looking for any specific version, scroll down on this page and download the specific version under the label “Python releases by version number:”. + +After downloading, go to the Downloads folder and run the setup. + +Follow the on-screen instructions to install it. + +![Install Python step 1][5] + +![Install Python step 2][6] + +After installation is complete, verify the Python version. + +### Verify Python Version + +From the start menu, open “command prompt” and run the following command. + +``` +python --version +``` + +![Python version on Windows][7] + +You should see your system’s currently installed version of the Python package. Alternatively, you can also run below to get a Python interactive shell. + +``` +python +``` + +You can exit the shell using CTRL+Z and Enter. + +### Check PATH Variables + +You should check the system variable PATH with the Python executable location. This should be updated automatically using the installer. + +From the start menu, search “system variables” and open it. + +![Open Environment variable Settings][8] + +In the System Properties Dialog, click on `Advanced > Environment Variables`. Under the user variables section against the Path variable, check whether the Python installed location is present. Refer to the below image for a guideline. + +If you see all the path is present, you are all set to run your Python project. + +![Check Python Environment PATH Values in Windows][9] + +### Create and run your first Python program + +For an additional step, here’s how you can code & run your first Python program. You should ideally use any [recommended Python editor][10] to write your program. + +Here’s a simple program which outputs the text “debugpoint.com” in the console. + +``` +# Sample Python program +print("debugpoint.com") +``` + +Save the file with any name. Here I have saved it as “hello.py” in E drive. The .py is the extension of Python source codes. + +To run this program, open a command prompt and execute below inside E drive. + +``` +python hello.py +``` + +**Output:** + +![Running a simple Python program in Windows][11] + +### Closing Notes + +I hope this simple beginner’s guide helps you to install Python in Windows, verify the installation and run your first program. + +Please let me know if you run into issues in the comment box below. + +[Next:Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)][12] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][13] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-windows/ + +作者:[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/install-python-3-11-ubuntu/ +[2]: https://www.debugpoint.com/complete-guide-how-dual-boot-ubuntu-windows/ +[3]: https://www.python.org/downloads/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/How-to-locate-Python-set-up.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-1.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-2.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Python-version-on-Windows.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-Environment-variable-Settings.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Check-Python-Environment-PATH-Values-in-Windows.jpg +[10]: https://www.debugpoint.com/5-best-python-ide-code-editor/ +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg +[12]: https://www.debugpoint.com/share-folder-virt-manager/ +[13]: https://floss.social/@debugpoint From aab63ae6fbdeb47724d56ec487dc361bf257b453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:21:56 +0800 Subject: [PATCH 2562/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230113.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Mastodon's=20Growth=20Continues,=20Medium=20Joins=20in=20With?= =?UTF-8?q?=20its=20New=20Community=20Platform.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Medium Joins in With its New Community Platform.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md diff --git a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md new file mode 100644 index 0000000000..25062e4310 --- /dev/null +++ b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md @@ -0,0 +1,102 @@ +[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform" +[#]: via: "https://news.itsfoss.com/medium-mastodon/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Mastodon's Growth Continues, Medium Joins in With its New Community Platform +====== + +Another win for Mastodon's adoption! Medium launches an instance for its users. + +![Mastodon's Growth Continues, Medium Joins in With its New Community Platform][1] + +Mastodon's growth in recent times has been massive; more and more people are switching to this Twitter alternative than ever before. + +If you are not familiar with Mastodon, it is one of the [best mainstream social media alternatives][2] out there, potentially as a replacement for Twitter, which is **completely open-source and decentralized**. + +With constant changes to Twitter and last year's takeover by Elon Musk, more users have taken a keen interest in Mastodon as a platform. + +Vivaldi [recently launched][3] its Mastodon-powered community, and [Mozilla Foundation][4] is also considering something similar. + +Now, [**Medium**][5] has taken a step forward by launching a Mastodon instance. + +**Suggested Read 📖** + +### Medium Starts a Mastodon-Powered Community + +In a [recent announcement][6], Medium launched its Mastodon instance at [me.dm][7], focusing on “_helping their authors, publications, and readers find a home in the Fediverse_”. + +The website (or Mastodon instance) aims to be a **dedicated space** for the **users of Medium.** + +![mastodon medium instance][8] + +In other words, itwill be an exclusive social network platform for Medium users. + +With the web platform, they are also venturing into short-form writing of 500 characters or less. + +The **CEO of Medium** mentions: + +> By contrast, Mastodon is primarily for short-form writing of 500 characters or less. Not to be overly punny: Today we are extending what we do into the short-form medium (lowercase m) with an instance on Mastodon, me.dm. Aside from being short-form, Mastodon also brings an important innovation around the concept of federation. + +So, it looks like Medium is testing the waters and trying something new. + +Probably a good thing for users who prefer bite-sized content instead of lengthy information. + +It can work out well for them if done correctly. + +**So, how can you join Medium's Mastodon platform?** + +> 💡 You see, initially, **only select authors and publications** will be given access to this Mastodon instance.Existing Medium users can try sending a [sign-up request][9], subject to their approval. + +So, if you send a signup request, you will have to wait for approval. + +They also **plan to invite writers and readers as an additional service****within their paid membership**. + +They are already working on a '**sign-up with Medium**' option for their Mastodon instance, which is supposed to make it easy to get started. + +On this, they mention that: + +> With so many Mastodon instances to choose from, we plan for me.dm to have a few important benefits out of the gate: reliable infrastructure and moderation, a short domain name to make sharing your username easier, better onboarding for new users, and an interesting local feed. + +Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][10]Unlocator![][11] + +### Decentralized and Open-Source Platforms Picking Up Pace + +Decentralized platforms are becoming more popular than one would have expected a decade ago. + +The big contributing factor is the number of volatile changes/decisions taken by big tech companies forcing users to constantly adjust how/why they interact on a social media platform. + +With an open-source and decentralized platform, users get transparency, more data control, and more freedom. + +We may not have expected Mastodon as a platform to gradually become an essential part of community building for various organizations. So, it will be exciting to see what else we have in store for the near future. + +💭 _Feel free to share your thoughts in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/medium-mastodon/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png +[2]: https://itsfoss.com/mainstream-social-media-alternaives/ +[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/ +[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/ +[5]: https://medium.com +[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11 +[7]: https://me.dm/ +[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg +[9]: https://me.dm/auth/sign_up +[10]: https://unlocator.com/favicon.ico +[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg From d023e85129d29e939754cac6924179e3eee41743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:22:39 +0800 Subject: [PATCH 2563/3123] =?UTF-8?q?Update=2020230113.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Mastodon's=20Growth=20Continues,?= =?UTF-8?q?=20Medium=20Joins=20in=20With=20its=20New=20Community=20Platfor?= =?UTF-8?q?m.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Growth Continues, Medium Joins in With its New Community Platform.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md index 25062e4310..9aa57be8a4 100644 --- a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md +++ b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md @@ -24,8 +24,6 @@ Vivaldi [recently launched][3] its Mastodon-powered community, and [Mozilla Foun Now, [**Medium**][5] has taken a step forward by launching a Mastodon instance. -**Suggested Read 📖** - ### Medium Starts a Mastodon-Powered Community In a [recent announcement][6], Medium launched its Mastodon instance at [me.dm][7], focusing on “_helping their authors, publications, and readers find a home in the Fediverse_”. From 154105b0b28985b0499bdd983a35ba15d78d0fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 14 Jan 2023 11:23:38 +0800 Subject: [PATCH 2564/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230113.2=20=E2=AD=90=EF=B8=8F=20Share=20Folder=20B?= =?UTF-8?q?etween=20Guest=20and=20Host=20in=20virt-manager=20(KVMQemulibvi?= =?UTF-8?q?rt).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t and Host in virt-manager (KVMQemulibvirt).md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md diff --git a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md new file mode 100644 index 0000000000..64e6ac7831 --- /dev/null +++ b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -0,0 +1,110 @@ +[#]: subject: "Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)" +[#]: via: "https://www.debugpoint.com/share-folder-virt-manager/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt) +====== + +**In this guide, you will learn how to share a folder between host and guest in virt-manager using KVM, QEMU and libvirt.** + +The [virt-manager][1] application or package uses the [libvirt][2] library to provide virtual machine management services. It has a desktop interface that helps to create, delete, and manage multiple virtual machines. + +The virt-manager desktop interface and its components provide flexible virtual machine management services for various personal and business use cases. it is a free and open-source application primarily used for KVM virtual machines. However, it can also support other hypervisors such as Xen and LXC. + +In the earlier article, I explained [how to create a virtual machine using virt-manager][3]. This article covers how you can seamlessly access files and folders between guest and host virtual machines. + +### A note about virtiofs + +The sharing files and folders are powered by the libvirt shared file system called virtiofs. It provides all the features and parameters to access the directory tree on the host machine. Since most of the virt-manager virtual machine configurations are translated to XML, the share files/folders can also be specified by the XML file. + +### Share folder in virt-manager + +- First, make sure your guest virtual machine is powered off. From the virt-manager GUI, select the virtual machine and click on Open to pull up the console settings. + +![Open the settings][4] + +- Click on the icon which says show virtual hardware details in the toolbar. And then click on **Memory** on the left panel. +- Select the option “**Enable shared memory**“. Click Apply. + +![Enable the shared memory option][5] + +- And then click “Add hardware” at the bottom. + +![Click on add hardware][6] + +- Select **File system** from the left panel in the add new hardware window. +- Then select **Driver=virtiofs** in the details tab. Click on `browse > browse local` and **select the host path** you want to access inside the guest VM. +- In the target path, mention any name you want. It’s just a file tag which will be used during mount. +- So, if I want to access the Pictures/Screenshots folder (`/home/debugpoint/Pictures/Screenshots`), sample settings could be the following: + +![Add a new file system hardware][7] + +The XML settings are below for the above configuration. You can find it in the XML tab. + +``` + + + + + + +
              + +``` + +Click on Finish. In the main virt-manager window, right-click on the VM and click Run to start the virtual machine. Make sure to click on the “show the graphical console” (monitor icon in the toolbar – if the VM is not showing. + +In the guest machine, create a folder where you want to mount the host folder. For this example, I have used /mnt/pictures. + +``` +sudo mkdir /mnt/pictures +``` + +And finally, mount the host folder using the tag you created in the above step to this new folder. Use the following command to do that from the terminal. Ensure to change the tag and folder name in the below command as your system. + +``` +sudo mount -t virtiofs mount_tag_pictures /mnt/pictures +``` + +Now you can browse the folders and add/delete items seamlessly in virt-manager between host and guest. + +![Access host files from virt-manager guest][8] + +### Wrapping Up + +I hope this solution helps you to access host files and folders from the guest machine. Remember, your user Id, which is used to launch the virt-manager app, should have the same access to the host folder. + +If you run into any errors, the above guide helped you drop a note below. + +_[Reference][9]_ + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][10] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-virt-manager/ + +作者:[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://virt-manager.org/ +[2]: https://libvirt.org/manpages/libvirtd.html +[3]: https://www.debugpoint.com/virt-manager/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-settings.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-the-shared-memory-option.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-add-hardware.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-new-file-system-hardware.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Access-host-files-from-virt-manager-guest.jpg +[9]: https://libvirt.org/kbase/virtiofs.html +[10]: https://floss.social/@debugpoint From ad2f99b1ef7f3729b487ba318b4be3c725c7ede0 Mon Sep 17 00:00:00 2001 From: Cubik Date: Fri, 13 Jan 2023 23:43:27 -0500 Subject: [PATCH 2565/3123] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译进度:Introduction --- ...️ 11 New Distros to look forward to in 2023.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index ed8b300ca3..afd09d7da0 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -7,28 +7,28 @@ [#]: publisher: " " [#]: url: " " -11 New Distros to look forward to in 2023 +2023 年值得期待的 11 个新发行版 ====== -What are you looking forward to in 2023? Try these distros! +你对 2023 年有什么期待?试试这些发行版吧! -![11 New Distros to look forward to in 2023][1] +![2023 年值得期待的 11 个新发行版][1] -It's time to say goodbye to 2022! 📆 +是时候向 2022 年说再见了!📆 -There were many distro releases in 2022, some more extraordinary than others. +2022 年有很多发行版发布,有些比其他的更出色。 -With the trend shifting towards focusing more on the user experience and performance side of things, Linux distributions have significantly evolved over the past year. +随着更加关注用户体验和性能方面的趋势,Linux 发行版在过去的一年中有了显著的发展。 -As for you, the end-user, you now have several options. You can try some [beginner-friendly options][2] or [distros for advanced users][3]. +对于你,最终用户,你现在有几个选择。你可以尝试一些 [对初学者友好的选项][2] 或者尝试一些 [高级用户的发行版][3]。 -Here, I focus on new options that you can give a try. These distros may not necessarily replace the popular distributions available. But if you want to try something new and different, feel free to go through the list. +在本文中,我将重点介绍一些你可以尝试的新发行版。这些发行版可能不一定能取代现有的流行发行版。但是,如果你想尝试一些新的东西,可以随意浏览列表。 -So, what can you expect in 2023? 🤔 +所以,你在 2023 年可以期待什么?🤔 -Well, to answer that. Allow me to take you on a distro journey! +好吧,为了回答这个问题,让我们踏上发行版之旅吧! -> 💡 New distributions may not be suitable for production use cases. Try these options if you have no issues taking a leap of faith to experiment. +> 💡 新的发行版可能不适合生产环境。如果你不介意尝试新的东西,可以尝试这些选项。 ### 1. Vanilla OS From 7523da2825e664c593a28992421f077aa68b6ea6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 14 Jan 2023 16:45:15 +0800 Subject: [PATCH 2566/3123] RP @geekpi https://linux.cn/article-15442-1.html --- ...0102.0 ⭐️ How to read and write files in Rust.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) rename {translated/tech => published}/20230102.0 ⭐️ How to read and write files in Rust.md (93%) diff --git a/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/published/20230102.0 ⭐️ How to read and write files in Rust.md similarity index 93% rename from translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md rename to published/20230102.0 ⭐️ How to read and write files in Rust.md index 4a0453ae31..096f1282e4 100644 --- a/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md +++ b/published/20230102.0 ⭐️ How to read and write files in Rust.md @@ -3,13 +3,17 @@ [#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15442-1.html" 如何在 Rust 中读取和写入文件 ====== +> 跟随这个演示,学习如何在 Rust 中使用文件系统模块。 + +![][0] + 知道如何读写文件对各种用途都很有用。在 Rust 中,这项任务是通过标准库中的文件系统模块([std::fs][1])完成的。在这篇文章中,我将向你介绍如何使用这个模块。 为了演示这项任务,我准备了一些示例代码,也可以在 [GitHub][2] 上找到。 @@ -92,7 +96,7 @@ via: https://opensource.com/article/23/1/read-write-files-rust 作者:[Stephan Avenwedde][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/) 荣誉推出 @@ -109,3 +113,4 @@ via: https://opensource.com/article/23/1/read-write-files-rust [9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html# [10]: https://doc.rust-lang.org/std/fs/fn.read.html [11]: https://doc.rust-lang.org/std/io/trait.Read.html +[0]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png \ No newline at end of file From b34270be7f6d082ed1c625c1a8c8b210af5da22a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 14 Jan 2023 17:26:42 +0800 Subject: [PATCH 2567/3123] ATRP @wxy https://linux.cn/article-15443-1.html --- ...tions for Ubuntu and Other Linux [2022 Edition].md | 188 ++++++++++++++++++ ...tions for Ubuntu and Other Linux [2022 Edition].md | 185 ----------------- 2 files changed, 188 insertions(+), 185 deletions(-) create mode 100644 published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md delete mode 100644 sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md new file mode 100644 index 0000000000..e1d6d665d5 --- /dev/null +++ b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md @@ -0,0 +1,188 @@ +[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]" +[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15443-1.html" + +适用于 Linux 的五大流媒体直播应用 +====== + +![][0] + +> 本文列出了 Linux 上的五大流媒体直播应用,包括了它们的功能、亮点、下载详情和对比。 + +现在是为你的业务纳入在线视频内容的最佳时机。为什么?因为研究表明,全球在线视频市场正以每年约 20% 的速度增长。 + +而且,由于开发者们提供的一些优秀软件,任何人都可以轻松地创建视频内容,并在 YouTube 和 Twitch 等几个流行的平台上传播。如果你仔细想想,你会发现如今你在网上观看的视频内容比基于文本的内容更多。 + +因此,在这篇文章中,我们将列出一些适用于 Ubuntu 和其他 Linux 的免费软件,这些软件很容易用于为你和你的企业创建超级有趣的流媒体内容。 + +### Linux 的五大流媒体直播应用 + +#### OBS Studio + +本列表中的第一个免费应用程序是 OBS Studio(即 Open Broadcaster Software)。它是一个具有屏幕广播功能的流媒体直播应用程序,可用于 Linux、Windows 和 macOS。 + +出于几个原因,OBS Studio 是这个名单上最好的一个。它内置了编码,支持 RTMP 广播、多源、网络摄像头、绿屏、捕捉卡和你的应用程序窗口。 + +其用户界面相当简单明了,功能丰富。你可以从第三方开发的插件中获得帮助,以扩展其功能,例如,在直播时将 Twitter 上的实时推文混入你的流媒体。不过,OBS 不支持多比特率流媒体。 + +![OBS Studio - 适用于Linux的直播应用程序][1] + +如何安装: + +OBS Studio 可以在所有 Linux 发行版的官方软件库中找到。详细的安装说明见下面的链接。 + +> **[下载 OBS Studio][2]** + +更多信息: + +- [主页][3] +- [文档][4] + +#### VokoscreenNG + +我们将在这个列表中介绍的第二个应用程序是 VokoscreenNG。它复刻了已停止的 Vokoscreen 项目。这个新的应用程序完全用 Qt 和 GStreamer 库编写。它可以记录你的屏幕,并接受多个音频源和视频源。VokoscreenNG 的工具箱也相当引人注目。它包括一个放大镜、计时器、系统托盘插件,可以简化你的工作流程。 + +它可以免费用于 Linux 和 Windows。 + +![vokoscreenNG - 适用于Linux的流媒体直播应用程序][5] + +如何安装: + +你可以从下面的链接下载用于 Linux 系统的压缩可执行文件。下载后,将其解压,然后执行二进制文件来启动该应用程序。 + +记住,这个应用程序需要在你的 Linux 系统中安装 X11、PulseAudio 和 GStreamer 插件才能工作。如果你使用的是带有 Wayland 和 Pipewire 声音服务器的现代 Linux 系统(例如 Fedora),这个应用程序可能无法工作。 + +> **[下载 VokoscreenNG][6]** + +更多信息: + +- [主页][7] + +#### Restreamer + +Restreamer 应用程序可以让你直接在你的网站上直播视频和截屏,而无需任何流媒体服务商。也可以用这个应用程序使用流行的流媒体解决方案,如 YouTube、Twitch等。 + +这个应用程序功能丰富,有一个不错的功能列表。下面是对其功能的快速介绍: + +- 支持 H.264 流媒体 +- 内置 HTML5 视频播放 +- 可用于 Linux、macOS、Windows 和 Docker 镜像 +- 支持你自己的网站和 YouTube、Twitchm、Facebook、Vimeo、Wowza 等。 +- 支持多个视频源:[网络摄像机][8]、USB 摄像机或任何 H.2645 流媒体 +- 编码和音频源支持 +- 支持 JPEG 形式的定期快照 +- 通过 JSON HTTP API 访问流状态,以便进行额外的编程 + +![Restreamer][9] + +如何安装: + +安装 Restreamer 有点麻烦,因为它是通过 Docker 镜像发布的。你可以在下面的链接中找到在 Linux、Windows 和 MacOS 安装的说明。 + +> **[下载 Restreamer][10]** + +更多信息: + +- [主页][11] +- [文档][12] +- [源代码][13] + +#### ffscreencast + +ffscreencast 是一个使用 ffmpeg 库的命令行流媒体应用程序。它利用了 ffmpeg 的强大功能,并作为它的一个封装器。尽管它是以命令行的形式出现的,但你可以直接通过终端使用其强大的功能,如多源和录音设备。它也支持多种显示设置。你还可以在你的桌面截屏上叠加你的摄像机画面。 + +如何安装: + +要安装这个应用程序,你需要克隆它的 Git 代码库,然后将其内容复制到 `/bin`目录,以便全局执行 `ffscreencast` 命令。 + +``` +git clone https://github.com/cytopia/ffscreencast +cd ffscreencastsudo +cp bin/ffscreencast /usr/local/bin +``` + +你可以在终端用 `ffscreencast` 命令来运行这个应用程序。 + +- [源代码和主页][15] + +#### Open Streaming Platforms + +本列表中的最后一个应用是 Open Streaming Platforms(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。 + +![Open Streaming Platforms][14] + +如果使用得当,这个应用程序功能丰富且强大。因为它有以下的基本功能: + +- 从 Open Broadcast Software(OBS)等输入源进行 RTMP 直播。 +- 每个用户有多个频道,允许一个用户同时广播多个流,而不需要多个账户。 +- 视频流记录和按需播放。 +- 手动上传来源于 OSP 之外的 MP4 视频。 +- 视频剪辑,为值得注意的时刻创建更短的视频。 +- 频道所有者的实时聊天管理(禁止/解禁)。 +- 管理员控制的自适应流媒体。 +- 受保护的频道,只允许你想要的观众访问。 +- 实时频道,当流媒体没有直播时,继续聊天和闲逛。 +- Webhooks:通过完全可定制的 HTTP 请求将 OSP 连接到其他服务,这可以传递信息。 +- 将你的流媒体或视频直接嵌入到另一个网页中,很容易。 +- 通过 Facebook 或 Twitter 快速分享频道或视频。 +- 能够将用户界面定制为你自己的个人外观的主题 + +如何安装: + +要安装 Open Streaming Platform,请按照以下页面的详细说明进行。 + +> **[下载 Open Streaming Platform][16]** + +更多信息: + +- [主页][17] +- [源代码][18] +- [文档][19] + +### 总结 + +可用于 Linux 的自由开源的流媒体应用程序不多。然而,有几个商业性的流媒体应用程序,它们可能会给你更多的选择、质量和支持。但正如我所说,它们可能要花费你一些钱。所以,如果你是流媒体世界的新手,你可能想从上面列出的用于 Linux 系统的免费流媒体应用程序开始。我希望这篇文章能给你一些想法,让你根据自己的需要使用,并让你开始使用。 + +请在下面的评论栏里告诉我你最喜欢的流媒体软件。 + +加油。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/live-streaming-applications-linux-2022/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[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/ +[4]: https://obsproject.com/wiki/Home +[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg +[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html +[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://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-2048x1026.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/ +[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/14/172408h1rpephh9hutsrkd.jpg \ No newline at end of file diff --git a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md deleted file mode 100644 index 93ee5ab1e4..0000000000 --- a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]" -[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 5 Live Streaming Applications 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.** - -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. - -So, in this post, we will list out some of the free software for Ubuntu and other Linux primarily that are easy to use for creating super interesting live streaming content for you and your businesses. - -### Top 5 Live Streaming Applications for Linux in 2022 - -#### OBS Studio - -The first free application in this list is OBS Studio (also known as Open Broadcaster Software). It is a live streaming application with screencasting capabilities available for Linux, Windows and macOS. - -OBS Studio is the best one on this list because several reasons. The encoding is built-in, and it supports RTMP broadcasting, multiple sources, webcams, green-screen, capture cards and your application windows. - -The user interface is reasonably straightforward and feature-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 - Live Streaming Applications for Linux][1] - -**How to Install** - -OBS Studio is available in all Linux Distribution’s official repositories. Detailed instruction for installations is present in the below link. - -[Download OBS Studio][2] - -More Information - -- [Home Page][3] -- [Documentation][4] - -#### VokoscreenNG - -The second application we would feature in this list is VokoscreenNG. It is a fork of the discontinued Vokoscreen project. The new application is entirely written in Qt with the GStreamer library. It can record your screen and accept multiple audio and video sources. VokoscreenNG’s toolbox is also quite impressive. It includes a magnifying glass, timer, system tray plugins that ease up your workflow. - -It is available for Linux and Windows for free. - -![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. - -Remember, this application requires X11, PulseAudio and GStreamer plugins installed in your Linux system to work. If you use a modern Linux system with Wayland and Pipewire sound server (e.g. Fedora), this application may not work. - -[Download VokoscreenNG][6] - -**More Information** - -- [Home page][7] - -#### Restreamer - -The Restreamer application lets you live stream videos and screencasts directly to your website without any streaming provider. It is also possible to use popular streaming solutions, such as YouTube, Twitch, etc., with this application. - -This application is feature-rich and comes with a fair list of features. Here’s 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 - -![Restreamer][9] - -**How to Install** - -The installation of Restreamer is a little tricky because it’s distributed via Docker images. You can find the instructions to install Linux, Windows, and macOS on the below link. - -[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 for it. Although it is available as a command line, you can use 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 - - 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/ffscreencastcd ffscreencastsudo cp bin/ffscreencast /usr/local/bin -``` - -You can run this application with `ffscreencast` command from the terminal. - -[Source code & Home page][15] - -#### Open Streaming platforms - -The final application in this list is Open Streaming Platform (OSP), an open-source RTMP streamer software that can act as a self-hosted alternative to YouTube LIVE, Twitch.tv, etc. - -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 simultaneously 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 isn’t 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][16] - -**More Information** - -- [Home Page][17] -- [Source Code][18] -- [Documentation][19] - -### Closing Notes - -There are very few free and open-source live streaming applications available for Linux. However, several commercial live streaming applications are available, which may give you more options, quality, and support. But as I said, they may cost you some bucks. So, if you are new to the streaming world, you may want to get started with the above-listed free live streaming applications in Ubuntu or other Linux systems. I hope this article gives you ideas about which to use based on your need and get you started. - -Let me know your favourite live streaming software in the comment box below. - -Cheers. - -[Next:How to Create Ubuntu, Linux OS Bootable USB in Windows][20] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/live-streaming-applications-linux-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2022/02/OBS-Studio.jpg -[2]: https://obsproject.com/wiki/install-instructions#linux -[3]: https://obsproject.com/ -[4]: https://obsproject.com/wiki/Home -[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg -[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html -[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://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-2048x1026.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/ -[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/ From 7d33d74cbc9e7c413c8ccd85e0e6d061675497dc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 14 Jan 2023 17:35:05 +0800 Subject: [PATCH 2568/3123] R --- ...ming Applications for Ubuntu and Other Linux [2022 Edition].md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md index e1d6d665d5..47892e9284 100644 --- a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md +++ b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md @@ -108,13 +108,13 @@ cp bin/ffscreencast /usr/local/bin 你可以在终端用 `ffscreencast` 命令来运行这个应用程序。 -- [源代码和主页][15] +> **[源代码和主页][15]** -#### Open Streaming Platforms +#### Open Streaming Platform -本列表中的最后一个应用是 Open Streaming Platforms(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。 +本列表中的最后一个应用是 Open Streaming Platform(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。 -![Open Streaming Platforms][14] +![Open Streaming Platform][14] 如果使用得当,这个应用程序功能丰富且强大。因为它有以下的基本功能: From fc9f60248667cd6e1cb175afffa9d7006437cee5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 15 Jan 2023 10:55:18 +0800 Subject: [PATCH 2569/3123] ATRP @wxy https://linux.cn/article-15445-1.html --- ...Medium Joins in With its New Community Platform.md | 98 +++++++++++++++++ ...Medium Joins in With its New Community Platform.md | 100 ------------------ 2 files changed, 98 insertions(+), 100 deletions(-) create mode 100644 published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md delete mode 100644 sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md diff --git a/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md new file mode 100644 index 0000000000..e3b3fc4b28 --- /dev/null +++ b/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md @@ -0,0 +1,98 @@ +[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform" +[#]: via: "https://news.itsfoss.com/medium-mastodon/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15445-1.html" + +Mastodon 继续增长,Medium 的新社区平台也加入了 +====== + +> Mastodon 的又一次胜利!Medium 为其用户推出了一个 Mastodon 实例。 + +![][1] + +Mastodon 在最近一段时间的增长是巨大的;越来越多的人正在转向这个 Twitter 的替代品。 + +如果你不熟悉 Mastodon,它是目前 [最好的主流社交媒体替代品][2] 之一,有可能成为 Twitter 的替代品,它是 **完全开源和去中心化的**。 + +随着 Twitter 的不断发生变化和去年埃隆·马斯克对它的收购,更多的用户开始对 Mastodon 这个平台产生了浓厚的兴趣。 + +Vivaldi [最近推出了][3] 其由 Mastodon 驱动的社区,[Mozilla 基金会][4] 也在考虑类似的东西。 + +现在,[Medium][5] 已经向前迈出了一步,推出了它们的 Mastodon 实例。 + +### Medium 启动了一个由 Mastodon 驱动的社区 + +在 [最近的公告][6] 中,Medium 在 [me.dm][7] 推出了其 Mastodon 实例,专注于 “帮助他们的作者、出版物和读者在 联盟宇宙Fediverse 中找到一个家”。 + +该网站(即 Mastodon 实例)旨在成为 Medium 的用户的专属空间。 + +![][8] + +换句话说,它将成为 Medium 用户的专属社交网络平台。 + +有了这个网络平台,他们也可以开始进行 500 字以内的短文写作了。 + +Medium 的 CEO 提到: + +> 相比之下,Mastodon 主要是为 500 字以内的短文写作服务的。用一个不太双关的说法:今天,我们正在借助 Mastodon 上的实例(me.dm)将我们用于发表长文的 Medium 扩展到短文 medium(小写 m)。除了更简短的形式外,Mastodon 还带来了围绕联盟概念的重要创新。 + +因此,看起来 Medium 正在试水和尝试新的东西。 + +对于那些喜欢一目了然的内容而不是冗长信息的用户来说,可能是一件好事。 + +如果操作得当,这对他们来说会有很好的效果。 + +**那么,你怎样才能加入 Medium 的 Mastodon 平台? + +> 💡 你看,最初,**只有选定的作者和出版物** 才能进入这个 Mastodon 实例。现有的 Medium 用户可以尝试发送一个 [注册请求][9],但要经过他们的批准。 + +因此,如果你发送一个注册请求,你得等待批准。 + +他们还计划作为付费会员的额外服务来邀请作家和读者。 + +他们已经在为他们的 Mastodon 实例开发一个 “用 Medium 注册” 的选项,这应该是为了让你更容易开始使用。 + +关于这一点,他们提到: + +> 有这么多的 Mastodon 实例可供选择,我们计划让 me.dm 一开始就有几个重要的好处:可靠的基础设施和审核,一个短域名让你更容易分享你的用户名,为新用户提供更好的入门培训,以及一个有趣的本地信息源。 + +### 去中心化和开源平台的步伐加快了 + +去中心化的平台正在变得比人们十年前预期的更加流行。 + +最大的促成因素是大型科技公司越来越多的不稳定的变化和决定,迫使用户不断调整他们在社交媒体平台上的互动方式和理由。 + +有了开源和去中心化的平台,用户得到了透明度,更多的数据控制,以及更多的自由。 + +我们可能没有想到,Mastodon 作为一个平台,逐渐成为各种组织的社区建设的一个重要组成部分。因此,我们非常期待在不久的将来看到更多变化。 + +💭 欢迎在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/medium-mastodon/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png +[2]: https://itsfoss.com/mainstream-social-media-alternaives/ +[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/ +[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/ +[5]: https://medium.com +[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11 +[7]: https://me.dm/ +[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg +[9]: https://me.dm/auth/sign_up +[10]: https://unlocator.com/favicon.ico +[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg diff --git a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md deleted file mode 100644 index 9aa57be8a4..0000000000 --- a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform" -[#]: via: "https://news.itsfoss.com/medium-mastodon/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Mastodon's Growth Continues, Medium Joins in With its New Community Platform -====== - -Another win for Mastodon's adoption! Medium launches an instance for its users. - -![Mastodon's Growth Continues, Medium Joins in With its New Community Platform][1] - -Mastodon's growth in recent times has been massive; more and more people are switching to this Twitter alternative than ever before. - -If you are not familiar with Mastodon, it is one of the [best mainstream social media alternatives][2] out there, potentially as a replacement for Twitter, which is **completely open-source and decentralized**. - -With constant changes to Twitter and last year's takeover by Elon Musk, more users have taken a keen interest in Mastodon as a platform. - -Vivaldi [recently launched][3] its Mastodon-powered community, and [Mozilla Foundation][4] is also considering something similar. - -Now, [**Medium**][5] has taken a step forward by launching a Mastodon instance. - -### Medium Starts a Mastodon-Powered Community - -In a [recent announcement][6], Medium launched its Mastodon instance at [me.dm][7], focusing on “_helping their authors, publications, and readers find a home in the Fediverse_”. - -The website (or Mastodon instance) aims to be a **dedicated space** for the **users of Medium.** - -![mastodon medium instance][8] - -In other words, itwill be an exclusive social network platform for Medium users. - -With the web platform, they are also venturing into short-form writing of 500 characters or less. - -The **CEO of Medium** mentions: - -> By contrast, Mastodon is primarily for short-form writing of 500 characters or less. Not to be overly punny: Today we are extending what we do into the short-form medium (lowercase m) with an instance on Mastodon, me.dm. Aside from being short-form, Mastodon also brings an important innovation around the concept of federation. - -So, it looks like Medium is testing the waters and trying something new. - -Probably a good thing for users who prefer bite-sized content instead of lengthy information. - -It can work out well for them if done correctly. - -**So, how can you join Medium's Mastodon platform?** - -> 💡 You see, initially, **only select authors and publications** will be given access to this Mastodon instance.Existing Medium users can try sending a [sign-up request][9], subject to their approval. - -So, if you send a signup request, you will have to wait for approval. - -They also **plan to invite writers and readers as an additional service****within their paid membership**. - -They are already working on a '**sign-up with Medium**' option for their Mastodon instance, which is supposed to make it easy to get started. - -On this, they mention that: - -> With so many Mastodon instances to choose from, we plan for me.dm to have a few important benefits out of the gate: reliable infrastructure and moderation, a short domain name to make sharing your username easier, better onboarding for new users, and an interesting local feed. - -Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][10]Unlocator![][11] - -### Decentralized and Open-Source Platforms Picking Up Pace - -Decentralized platforms are becoming more popular than one would have expected a decade ago. - -The big contributing factor is the number of volatile changes/decisions taken by big tech companies forcing users to constantly adjust how/why they interact on a social media platform. - -With an open-source and decentralized platform, users get transparency, more data control, and more freedom. - -We may not have expected Mastodon as a platform to gradually become an essential part of community building for various organizations. So, it will be exciting to see what else we have in store for the near future. - -💭 _Feel free to share your thoughts in the comments below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/medium-mastodon/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png -[2]: https://itsfoss.com/mainstream-social-media-alternaives/ -[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/ -[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/ -[5]: https://medium.com -[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11 -[7]: https://me.dm/ -[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg -[9]: https://me.dm/auth/sign_up -[10]: https://unlocator.com/favicon.ico -[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg From 7fa40953d45ab657b45ed924de6ce95c5ff46092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 15 Jan 2023 13:19:56 +0800 Subject: [PATCH 2570/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230114.0=20=E2=AD=90=EF=B8=8F=20A=204-minute=20gui?= =?UTF-8?q?de=20to=20Java=20loops.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...114.0 ⭐️ A 4-minute guide to Java loops.md | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md diff --git a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md new file mode 100644 index 0000000000..7bed4b5c37 --- /dev/null +++ b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -0,0 +1,151 @@ +[#]: subject: "A 4-minute guide to Java loops" +[#]: via: "https://opensource.com/article/23/1/java-loops" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A 4-minute guide to Java loops +====== + +A while loop performs a set of tasks for as long as some predefined condition is true. This is considered a control structure that directs the flow of a program. It's a way for you to tell your code what to do by defining a condition that it can test, and take action based on what it finds. The two kinds of while loops in Java are while and do while. + +### Java while loop + +A while loop is meant to iterate over data until some condition is satisfied. To create a while loop, you provide a condition that can be tested, followed by the code you want to run. Java has several built-in test functions, the simplest of which are mathematical operators (`<`, `>`, `==`, and so on): + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + int count = 0; + while (count < 5) { + System.out.printf("%d ", count); + count++; + } + } +} +``` + +In this simple example, the condition is that the variable `count` is less than 5. Because `count` is instantiated at 0, and then incremented by 1 in the code within the while loop, the program iterates a total of 5 times: + +``` +$ java ./while.java +0 1 2 3 4 +``` + +Before it can iterate a sixth time, the condition is no longer true, so the loop ends. + +The conditional statement for a while loop is vital. Getting it wrong could mean that your loop never executes. For instance, suppose you had set `count == 5` as the condition: + +``` +while (count == 5) { + System.out.printf("%d ", count); + count++; +``` + +When you run the code, it builds and runs successfully, but nothing happens: + +``` +$ java ./while.java +$ +``` + +The loop has been skipped because `count` was set to 0, and it's still 0 at the moment the while loop is first encountered. The loop never has a reason to start and `count` is never incremented. + +The reverse of this is when a condition starts as true and can never be false, this results in an infinite loop. + +### Java do while loop + +Similar to the while loop, a do while loop tests for the conditional at the end, not the beginning, of each iteration. With this, the code in your loop runs at least once because there's no gateway to entry, only a gateway to exit: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + int count = 9; + do { + System.out.printf("%d ", count); + count++; + } while(count == 5); + } +} +``` + +In this sample code, `count` is set to 9. The condition for the loop to repeat is that `count` is equal to 5. But 9 isn't equal to 5. That check isn't performed until the end of the first iteration, though: + +``` +$ java ./do.java +9 +``` + +### Java infinite loops + +An infinite loop, as its name suggests, never ends. Sometimes they're created by mistake, but an infinite loop does have a valid use case. Sometimes you want a process to continue indefinitely (that's functionally infinite because you can't guarantee when you need it to stop), and so you might set your condition to something impossible to meet. + +Suppose you've written an application that counts the number of zombies remaining in your neighborhood during a zombie apocalypse. To simulate uncertainty over how many loops are required to get to 0 zombies, my demo code retrieves a timestamp from the operating system and sets the value of the counter (`c`) to some number derived from that timestamp. Because this is a simple example and you don't really want to get trapped in an infinite loop, this code counts down to zero and uses the `break` function to force the loop to end: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + long myTime = System.currentTimeMillis(); + + int c; + + if ( myTime%2 == 0 ) { + c = 128; + } else { + c = 1024; + } + + while(true) { + System.out.printf("%d Zombies\n", c); + + // break for convenience + if ( c <= 0 ) { break; } + c--; + } + } +} +``` + +You may have to run it a few times to trigger a different total number of zombies, but sometimes your program iterates 128 times and other times 1,024 times: + +``` +$ java ./zcount.java +1024 Zombies +1023 Zombies +[...] +0 Zombies +``` + +Can you tell why the loops end at 0 and not at -1? + +### Java loops + +Loops give you control over the flow of your program's execution. Iteration is common in programming, and whether you use a while loop, a do while loop, or an infinite loop, understanding how loops work is vital. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-loops + +作者:[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 + + From e59524ad963d7a18e850aa040ccb9a7724abea26 Mon Sep 17 00:00:00 2001 From: Cubik Date: Sun, 15 Jan 2023 00:53:59 -0500 Subject: [PATCH 2571/3123] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译进度: - 1. Vanilla OS - 2. XeroLinux --- ...⭐️ 11 New Distros to look forward to in 2023.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index afd09d7da0..926981e038 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -34,13 +34,15 @@ ![vanilla os][4] -Vanilla OS is an Ubuntu-based distro that is the brainchild of Mirko Brombin, the creator of [Bottles][5]. +Ubuntu 的发行版,是 [Bottles][5] 的创建者 Mirko Brombin 的心血结晶。 -It aims to provide a **clean, vanilla GNOME experience with on-demand immutability** and an exceptional first-time setup experience. +它旨在提供一个具有**干净,原生的 GNOME 体验,以及按需不变性**和优秀的首次安装体验。 -You can check it out if you want something new and want to try out the on-demand immutability features that make Vanilla OS so unique. +> LCTT 译注:按需不变性(on-demand immutability),指一个可以按需启用的功能,用于确保系统文件不会被随意更新。 -It is yet to receive a stable release (soon) and is set to receive many improvements in 2023. +如果你想尝试一些新的东西并且想尝试一下按需不变性这个令 Vanilla OS 如此独特的功能,可以尝试一下这个发行版。 + +它还没有,在一段时间内也不会收到稳定版本,并且准备在 2023 年收到许多改进。 [Vanilla OS][6] @@ -48,13 +50,13 @@ It is yet to receive a stable release (soon) and is set to receive many improvem ![xeroxlinux][7] -Steve a.k.a. TechXero, started [XeroLinux][8] as a passion project that was not meant to be a mainstream distro with all the bells and whistles. +Steve,也就是 TechXero,开始了 [XeroLinux][8] 作为一个兴趣项目,这个项目并不是一个主流发行版,也没有各种花里胡哨的东西。 -An **'eye-candy' version of Arch Linux** offers a pleasant out-of-the-box experience with a few exciting features. +Arch Linux 的 **'养眼' 版本** 提供了令人愉快的开箱即用体验和一些令人兴奋的功能。 -You can try this if you want a more accessible Arch Linux experience. +如果你想要一个更加易用的 Arch Linux 体验,可以尝试这个。 -**From January 2023**, XeroLinux will be switching to a monthly release schedule. So, you can expect plenty of updates in 2023! +**从 2023 年 1 月起**,XeroLinux 将切换到每月发布的计划。所以,你可以期待 2023 年有很多更新! [XeroLinux][9] From 8955a1cc46237860ca22e25efc10d699dff1b7ee Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 15 Jan 2023 14:52:28 +0800 Subject: [PATCH 2572/3123] RP @geekpi https://linux.cn/article-15446-1.html --- ...reis Command in Linux and BSD with Examples.md | 54 +++++++++---------- 1 file changed, 26 insertions(+), 28 deletions(-) rename {translated/tech => published}/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md (53%) diff --git a/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md similarity index 53% rename from translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md rename to published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md index f2f5e936d2..f4c1cb482d 100644 --- a/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md +++ b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md @@ -3,18 +3,18 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15446-1.html" -Linux 和 BSD 中的 Whereis 命令及示例 +whereis 命令的解释与示例 ====== -**这是一份关于如何理解 Linux 和 BSD 中 whereis 命令的初学者指南,其中有几个例子。** +> 这是一份关于如何理解 Linux 和 BSD 中 `whereis` 命令的初学者指南,还包括几个例子。 ![][1] -_这篇文章是 [Linux 命令][2]学习系列的一部分。_ +这篇文章是 [Linux 命令][2] 学习系列的一部分。 ### whereis 命令 @@ -30,15 +30,15 @@ _这篇文章是 [Linux 命令][2]学习系列的一部分。_ whereis [OPTIONS] FILE_NAME ``` -whereis 命令的参数是你要搜索的程序名或文件名。该参数是强制性的。 +`whereis` 命令的参数是你要搜索的程序名或文件名。该参数是必须的。 -默认情况下,它在环境变量(如 HOME、USER、SHELL 等)中定义的路径中搜索程序。 +默认情况下,它在环境变量(如 `HOME`、`USER`、`SHELL` 等)中定义的路径中搜索程序。 让我们看下一些例子。 ### Linux 和 BSD 中 whereis 命令的例子 -下面是 whereis 命令的一个简单例子,我试图搜索 firefox。在下面的输出中,你可以看到包含 firefox 文件或可执行文件的路径列表。 +下面是 `whereis` 命令的一个简单例子,我试图搜索 `firefox`。在下面的输出中,你可以看到包含 `firefox` 文件或可执行文件的路径列表。 ``` $ whereis firefox @@ -48,7 +48,7 @@ firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/fi ![Linux 中 whereis 命令的简单例子][3] -带有选项 -l 的命令会显示其搜索的路径列表。比如: +带有选项 `-l` 的命令会显示其搜索的路径列表。比如: ``` $ whereis -l @@ -66,7 +66,7 @@ bin: /usr/local/lib bin: /usr/local/games ``` -如果 whereis 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 nano,它没有安装,它的输出如下: +如果 `whereis` 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 `nano`,它没有安装,它的输出如下: ``` $ whereis nano @@ -76,7 +76,7 @@ $ whereis nano nano: ``` -如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 bash 和 nano,输出结果是这样的: +如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 `bash` 和 `nano`,输出结果是这样的: ``` $ whereis bash nano @@ -85,7 +85,7 @@ bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz ``` -你也可以使用 -b 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 nano 的二进制路径。 +你也可以使用 `-b` 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 `nano` 的二进制路径。 ``` $ whereis -b nano @@ -93,7 +93,7 @@ $ whereis -b nano nano: /usr/bin/nano /usr/share/nano ``` -同样,-s 选项可以搜索源文件,而 -m 选项可以搜索手册页。 +同样,`-s` 选项可以搜索源文件,而 `-m` 选项可以搜索手册页。 ``` $ whereis -m nano @@ -101,7 +101,7 @@ $ whereis -m nano nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz ``` -你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 nano 和 firefox 的二进制、手册页,而对于 bash,只搜索手册页。 +你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 `nano` 和 `firefox` 的二进制、手册页;而对于 `bash`,只搜索手册页。 ``` $ whereis -bm nano firefox -m bash @@ -115,20 +115,18 @@ bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz | 选项 | 描述 | | :- | :- | -| **-b** | 只搜索二进制文件。| -| **-m** | 只搜索手册部分。| -| **-s** | 只搜索源码。| -| **-u** | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,“whereis -m -u *” 会查询当前目录中没有文档的那些文件。| -| **-B** | 改变或限制 whereis 搜索二进制文件的地方。| -| **-M** | 更改或限制 whereis 搜索手册的位置。| -| **-S** | 更改或以其他方式限制 whereis 搜索源码的位置。| -| **-f** | 终止最后一个目录列表并指示文件名的开始,并且必须在使用任何 -B、-M 或 -S 选项时使用。| +| `-b` | 只搜索二进制文件。| +| `-m` | 只搜索手册页部分。| +| `-s` | 只搜索源码。| +| `-u` | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,`whereis -m -u *` 会查询当前目录中没有文档的那些文件。| +| `-B` | 改变或限制 `whereis` 搜索二进制文件的地方。| +| `-M` | 更改或限制 `whereis` 搜索手册的位置。| +| `-S` | 更改或以其他方式限制 `whereis` 搜索源码的位置。| +| `-f` | 终止上一个目录列表并指示文件名的开始,并且必须在使用任何 `-B`、`-M` 或 `-S` 选项时使用。| -### 结束语 +### 总结 -我希望这篇文章能够帮助你理解 whereis 命令及其基本原理。你也可以阅读 [whereis 手册页][4]来了解更多。如果你有任何问题,请告诉我。 - -**本文是 [Linux 命令][2]学习系列的一部分**。 +我希望这篇文章能够帮助你理解 `whereis` 命令及其基本原理。你也可以阅读 [whereis 手册页][4] 来了解更多。如果你有任何问题,请告诉我。 -------------------------------------------------------------------------------- @@ -137,7 +135,7 @@ via: https://www.debugpoint.com/whereis-command-linux/ 作者:[Arindam][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/) 荣誉推出 From 607193f47d5acbf75c3590c42147f3ea0b282cdc Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sun, 15 Jan 2023 23:33:31 +0800 Subject: [PATCH 2573/3123] h2 --- .../20190331 Codecademy vs. The BBC Micro.md | 63 ++++++++++++++++++- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index e17743df36..f0b7306e90 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -24,12 +24,12 @@ In the late 1970s, the computer, which for decades had been a mysterious, hulkin DN In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. -BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 出品的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] DN In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] -去年,一份包括了由 _计算机认知计划_ 出版的所有材料与出品的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? +去年,一份包括了由 _计算机认知计划_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? DN [An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? @@ -49,44 +49,98 @@ The microcomputer revolution began in 1975 with the release of [the Altair 8800] DN The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. -该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_成人扫盲计划(Adult Literacy Project)_相似的多媒体项目。_成人扫盲计划(Adult Literacy Project)_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 + +DN The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. +_计算机认知计划_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 + +DN The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. +BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_计算机认知计划_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量将弥补一些 BASIC 语言的常见缺点。[6][8] + +DN The TV producers and presenters at the BBC were not capable of building a microcomputer on their own. So they put together a specification for the computer they had in mind and invited British microcomputer companies to propose a new machine that met the requirements. The specification called for a relatively powerful computer because the BBC producers felt that the machine should be able to run real, useful applications. Technical consultants for the _Computer Literacy Project_ also suggested that, if it had to be a BASIC dialect that was going to be taught to the entire nation, then it had better be a good one. (They may not have phrased it exactly that way, but I bet that’s what they were thinking.) BBC BASIC would make up for some of BASIC’s usual shortcomings by allowing for recursion and local variables.[6][8] +BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 + +DN The BBC eventually decided that a Cambridge-based company called Acorn Computers would make the BBC Micro. In choosing Acorn, the BBC passed over a proposal from Clive Sinclair, who ran a company called Sinclair Research. Sinclair Research had brought mass-market microcomputing to the UK in 1980 with the Sinclair ZX80. Sinclair’s new computer, the ZX81, was cheap but not powerful enough for the BBC’s purposes. Acorn’s new prototype computer, known internally as the Proton, would be more expensive but more powerful and expandable. The BBC was impressed. The Proton was never marketed or sold as the Proton because it was instead released in December 1981 as the BBC Micro, also affectionately called “The Beeb.” You could get a 16k version for £235 and a 32k version for £335. +1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“先进 RISC 架构设备(Advanced RISC Machine)”,然而最初它代表的是“Acorn RISC 架构设备(Acorn RISC Machine)”。ARM 架构背后的 ARM 公司(ARM Holding)就是 Acorn 公司在1990年之后的延续。 + +DN In 1980, Acorn was an underdog in the British computing industry. But the BBC Micro helped establish the company’s legacy. Today, the world’s most popular microprocessor instruction set is the ARM architecture. “ARM” now stands for “Advanced RISC Machine,” but originally it stood for “Acorn RISC Machine.” ARM Holdings, the company behind the architecture, was spun out from Acorn in 1990. +![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ + +DN ![Picture of the BBC Micro.][9] _A bad picture of a BBC Micro, taken by me at the Computer History Museum in Mountain View, California._ +### 名为“计算机程序(The Computer Programme)”的电视系列片 + +DN ### The Computer Programme +十几个不同的电视系列片最终作为_计算机认知计划_的一部分创作出来。第一部作品是一部名为_计算机程序(The Computer Programme)_的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 + +DN A dozen different TV series were eventually produced as part of the _Computer Literacy Project_, but the first of them was a ten-part series known as _The Computer Programme_. The series was broadcast over ten weeks at the beginning of 1982. A million people watched each week-night broadcast of the show; a quarter million watched the reruns on Sunday and Monday afternoon. +这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 + +DN The show was hosted by two presenters, Chris Serle and Ian McNaught-Davis. Serle plays the neophyte while McNaught-Davis, who had professional experience programming mainframe computers, plays the expert. This was an inspired setup. It made for [awkward transitions][10]—Serle often goes directly from a conversation with McNaught-Davis to a bit of walk-and-talk narration delivered to the camera, and you can’t help but wonder whether McNaught-Davis is still standing there out of frame or what. But it meant that Serle could voice the concerns that the audience would surely have. He can look intimidated by a screenful of BASIC and can ask questions like, “What do all these dollar signs mean?” At several points during the show, Serle and McNaught-Davis sit down in front of a computer and essentially pair program, with McNaught-Davis providing hints here and there while Serle tries to figure it out. It would have been much less relatable if the show had been presented by a single, all-knowing narrator. +该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_计算机认知计划_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 + +DN The show also made an effort to demonstrate the many practical applications of computing in the lives of regular people. By the early 1980s, the home computer had already begun to be associated with young boys and video games. The producers behind _The Computer Programme_ sought to avoid interviewing “impressively competent youngsters,” as that was likely “to increase the anxieties of older viewers,” a demographic that the show was trying to attract to computing.[7][11] In the first episode of the series, Gill Nevill, the show’s “on location” reporter, interviews a woman that has bought a Commodore PET to help manage her sweet shop. The woman (her name is Phyllis) looks to be 60-something years old, yet she has no trouble using the computer to do her accounting and has even started using her PET to do computer work for other businesses, which sounds like the beginning of a promising freelance career. Phyllis says that she wouldn’t mind if the computer work grew to replace her sweet shop business since she enjoys the computer work more. This interview could instead have been an interview with a teenager about how he had modified _Breakout_ to be faster and more challenging. But that would have been encouraging to almost nobody. On the other hand, if Phyllis, of all people, can use a computer, then surely you can too. +虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 + +DN While the show features lots of BASIC programming, what it really wants to teach its audience is how computing works in general. The show explains these general principles with analogies. In the second episode, there is an extended discussion of the Jacquard loom, which accomplishes two things. First, it illustrates that computers are not based only on magical technology invented yesterday—some of the foundational principles of computing go back two hundred years and are about as simple as the idea that you can punch holes in card to control a weaving machine. Second, the interlacing of warp and weft threads is used to demonstrate how a binary choice (does the weft thread go above or below the warp thread?) is enough, when repeated over and over, to produce enormous variation. This segues, of course, into a discussion of how information can be stored using binary digits. +在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 + +DN Later in the show there is a section about a steam organ that plays music encoded in a long, segmented roll of punched card. This time the analogy is used to explain subroutines in BASIC. Serle and McNaught-Davis lay out the whole roll of punched card on the floor in the studio, then point out the segments where it looks like a refrain is being repeated. McNaught-Davis explains that a subroutine is what you would get if you cut out those repeated segments of card and somehow added an instruction to go back to the original segment that played the refrain for the first time. This is a brilliant explanation and probably one that stuck around in people’s minds for a long time afterward. +我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_计算机认知计划_的总制作人 John Radcliffe 如是写道: + +DN I’ve picked out only a few examples, but I think in general the show excels at demystifying computers by explaining the principles that computers rely on to function. The show could instead have focused on teaching BASIC, but it did not. This, it turns out, was very much a conscious choice. In a retrospective written in 1983, John Radcliffe, the executive producer of the _Computer Literacy Project_, wrote the following: +> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 + +DN > If computers were going to be as important as we believed, some genuine understanding of this new subject would be important for everyone, almost as important perhaps as the capacity to read and write. Early ideas, both here and in America, had concentrated on programming as the main route to computer literacy. However, as our thinking progressed, although we recognized the value of “hands-on” experience on personal micros, we began to place less emphasis on programming and more on wider understanding, on relating micros to larger machines, encouraging people to gain experience with a range of applications programs and high-level languages, and relating these to experience in the real world of industry and commerce…. Our belief was that once people had grasped these principles, at their simplest, they would be able to move further forward into the subject. +接下来, Radcliffe writes 又以类似的方式写道: + +DN Later, Radcliffe writes, in a similar vein: +> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 + +DN > There had been much debate about the main explanatory thrust of the series. One school of thought had argued that it was particularly important for the programmes to give advice on the practical details of learning to use a micro. But we had concluded that if the series was to have any sustained educational value, it had to be a way into the real world of computing, through an explanation of computing principles. This would need to be achieved by a combination of studio demonstration on micros, explanation of principles by analogy, and illustration on film of real-life examples of practical applications. Not only micros, but mini computers and mainframes would be shown. +我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_计算机认知计划_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 + +DN I love this, particularly the part about mini-computers and mainframes. The producers behind _The Computer Programme_ aimed to help Britons get situated: Where had computing been, and where was it going? What can computers do now, and what might they do in the future? Learning some BASIC was part of answering those questions, but knowing BASIC alone was not seen as enough to make someone computer literate. +### 今天的计算机认知 + +DN ### Computer Literacy Today +如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。 If you google “learn to code,” the first result you see is a link to Codecademy’s website. If there is a modern equivalent to the _Computer Literacy Project_, something with the same reach and similar aims, then it is Codecademy. “Learn to code” is Codecademy’s tagline. I don’t think I’m the first person to point this out—in fact, I probably read this somewhere and I’m now ripping it off—but there’s something revealing about using the word “code” instead of “program.” It suggests that the important thing you are learning is how to decode the code, how to look at a screen’s worth of Python and not have your eyes glaze over. I can understand why to the average person this seems like the main hurdle to becoming a professional programmer. Professional programmers spend all day looking at computer monitors covered in gobbledygook, so, if I want to become a professional programmer, I better make sure I can decipher the gobbledygook. But dealing with syntax is not the most challenging part of being a programmer, and it quickly becomes almost irrelevant in the face of much bigger obstacles. Also, armed only with knowledge of a programming language’s syntax, you may be able to _read_ code but you won’t be able to _write_ code to solve a novel problem. @@ -176,3 +230,6 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T4]: https://archive.org/details/byte-magazine?tab=about [T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down [T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown +[T7]: https://en.wikipedia.org/wiki/Sinclair_Research +[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) +[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom From c5416ba5fdce0193f8186ebac64247694ba0e26f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 16 Jan 2023 08:43:00 +0800 Subject: [PATCH 2574/3123] translated --- ... File Viewer for Linux Desktops and Servers.md | 127 ----------------- ... File Viewer for Linux Desktops and Servers.md | 131 ++++++++++++++++++ 2 files changed, 131 insertions(+), 127 deletions(-) delete mode 100644 sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md create mode 100644 translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md diff --git a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md deleted file mode 100644 index d8db876fa6..0000000000 --- a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers" -[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -lnav: Advanced Log File Viewer for Linux Desktops and Servers -====== - -**If you want to debug or troubleshoot any issues, you need an advanced log file viewer like lnav – which works wonders in the terminal for any Linux system.** - -### lnav: Log file viewer - -lnav can unzip all the compressed log files on the fly and merge them together for a nice display. The display is parsed and formatted based on the types of errors/warnings – this helps to quickly glance through the thousands of logs, especially in servers. - -While analysing the logs, timestamps are very important. So lnav merges multiple logs based on timestamps, which is very helpful for tracking down system issues. - -Most of the important log file format detection is built-in; see below: - -- Common Web Access Log format -- CUPS page_log -- Syslog -- Glog -- VMware ESXi/vCenter Logs -- dpkg.log -- uwsgi -- “Generic” – Any message that starts with a timestamp -- Strace -- sudo -- GZIP, BZIP - -That is not all; lnav is also capable of the below features, making it an important app for Linux systems. - -- Filter messages based on regular expression -- A timeline view of errors -- Pretty-Print view- helps to reformat -- Query Log using SQL -- A log is updated in real-time while being searched. -- Syntax highlight via regular expression (say you want to find out an IP address in the entire log) -- Tab completion of any word from the log which is displayed !! - -![lnav-running-in-ubutu][1] - -To view the screenshots of the above features and learn more, visit [this page.][2] - -### How to Install - -This program is available in official Ubuntu, Debian repo. Install it using the following command. - -``` -sudo apt install lnav -``` - -And for Fedora, RHEL users, use the below command: - -``` -sudo dnf install lnav -``` - -Also the developers provides an offline standalone executable which you don’t need to install. You can download the zip from the [GitHub release page][3] and execute as: - -``` -./lnav -``` - -**Note**: It’s also available for macOS which you can find in the above GitHub page. - -### lnav: How to use (Basics) - -The simple command syntax is: - -``` -lnav [options] [logfile1 logfile2 …] -``` - -If you run just lnav from the command, it shows all the logs from your system (/var/log/messages and /var/log/syslog) - -``` -lnav -``` - -To view any specific log file, provide it via the command line: - -``` -lnav /var/log/syslog -``` - -Add timestamp in your log output using -t parameter - -``` -lnav -t /var/log/syslog -``` - -Here are some of the key switches of lnav - -``` --d file Write debug messages to the given file.-a Load all of the most recent log file types.-r Load older rotated log files as well.-t Prepend timestamps to the lines of data being read inon the standard input.-w file Write the contents of the standard input to this file.-c cmd Execute a command after the files have been loaded.-f path Execute the commands in the given file.-n Run without the curses UI. (headless mode) -``` - -![lnav running in Ubuntu 22.04][4] - -For further reading and exploration, visit the [official documentation][5]. - -[Next:How to Make LibreOffice Look Like Microsoft Office][6] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ - -作者:[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/2016/11/lnav-Running-in-Ubutu.png -[2]: http://lnav.org/features/ -[3]: https://github.com/tstack/lnav/releases/ -[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg -[5]: https://docs.lnav.org/en/latest/intro.html -[6]: https://www.debugpoint.com/libreoffice-like-microsoft-office/ diff --git a/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md new file mode 100644 index 0000000000..63c5016609 --- /dev/null +++ b/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md @@ -0,0 +1,131 @@ +[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers" +[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +lnav: 用于 Linux 台式机和服务器的高级日志文件浏览器 +====== + +**如果你想调试或排除任何问题,你需要一个像 lnav这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。** + +### lnav: 日志文件查看器 + +lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 + +在分析日志的时候,时间戳是非常重要的。所以 lnav 根据时间戳合并多个日志,这对追踪系统问题很有帮助。 + +大多数重要的日志文件格式检测都是内置的,如下: + +- 常见的网络访问日志格式 +- CUPS page_log +- Syslog +- Glog +- VMware ESXi/vCenter 日志 +- dpkg.log +- uwsgi +- “通用”:任何以时间戳开头的信息 +- Strace +- sudo +- GZIP, BZIP + +这还不是全部,lnav 还能实现以下功能,使其成为 Linux 系统的重要应用。 + +- 根据正则表达式过滤消息 +- 错误的时间轴视图 +- 漂亮的打印视图,这有助于重新格式化 +- 使用 SQL 查询日志 +- 在搜索时,日志会实时更新。 +- 通过正则表达式高亮显示语法(比如你想在整个日志中找出一个 IP 地址) +- 显示的日志中任何单词的 Tab 补全!! + +![lnav 在 ubuntu 中运行][1] + +要查看上述功能的截图和了解更多信息,请访问[本页面][2] 。 + +### 如何安装 + +这个程序在 Ubuntu、Debian 的官方仓库中可以找到。使用以下命令安装它。 + +``` +sudo apt install lnav +``` + +而对于 Fedora、RHEL 用户,使用下面的命令: + +``` +sudo dnf install lnav +``` + +另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3]下载压缩包,然后按以下方式执行: + +``` +./lnav +``` + +**注意**:它也可用于 macOS,你可以在上述 GitHub 页面找到。 + +### lnav: 如何使用(基础) + +简单的命令语法是: + +``` +lnav [options] [logfile1 logfile2 …] +``` + +如果你只运行 lnav 命令,它会显示你系统中的所有日志(/var/log/messages 和 /var/log/syslog) + +``` +lnav +``` + +要查看任何特定的日志文件,在命令行中输入: + +``` +lnav /var/log/syslog +``` + +使用 -t 参数在你的日志输出中添加时间戳: + +``` +lnav -t /var/log/syslog +``` + +以下是 lnav 的一些关键开关: + +``` +-d file 将调试信息写入给定的文件。 +-a 加载所有最新的日志文件类型。 +-r 也加载较早的旋转日志文件。 +-t 在标准输入中读入的数据行上预加时间戳。 +-w file 将标准输入的内容写入该文件。 +-c cmd 在文件加载后执行命令。 +-f path 执行给定文件中的命令。 +-n 不使用 curses UI 运行(无头模式)。 +``` + +![lnav 在 Ubuntu 22.04 中运行][4] + +要进一步阅读和探索,请访问[官方文档][5]。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-Running-in-Ubutu.png +[2]: http://lnav.org/features/ +[3]: https://github.com/tstack/lnav/releases/ +[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg +[5]: https://docs.lnav.org/en/latest/intro.html \ No newline at end of file From 8833d17af14a83a86108526fa977a3a271027cb5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 16 Jan 2023 08:47:18 +0800 Subject: [PATCH 2575/3123] translating --- ...11.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md index b4bdf7d8ec..da0f0fbe1f 100644 --- a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md +++ b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 35a14c3b868c6417cf70e0d2e4270623a39ec9f2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 16 Jan 2023 10:30:03 +0800 Subject: [PATCH 2576/3123] RP @wxy https://linux.cn/article-15448-1.html --- ...r Lobster Wallpaper Competition is Now Open.md | 59 +++++++++++++++++++ ...r Lobster Wallpaper Competition is Now Open.md | 59 ------------------- 2 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md delete mode 100644 sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md diff --git a/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md new file mode 100644 index 0000000000..d4ca8baa62 --- /dev/null +++ b/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md @@ -0,0 +1,59 @@ +[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open" +[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15448-1.html" + +Ubuntu 23.04 “月球龙虾” 壁纸比赛开始了 +====== + +![][1] + +> 喜欢数字绘画或摄影?这个壁纸比赛可以让你的照片出现在 Ubuntu 23.04 的官方版本中。 + +### Ubuntu 23.04 的壁纸比赛 + +Ubuntu 23.04 “月球龙虾Lunar Lobster” 版本将于 2023 年 4 月发布。按照时间表,在即将到来的 BETA 版本之前,官方壁纸比赛现在已经开始。 + +按照官方的指导方针,你必须拥有你所发布的图片的权利,而且必须是原创。可以说,不应该考虑人工智能生成的图像。 + +此外,你提交的图片应该至少有 3840x2160px 的尺寸,文件大小不应超过 10MB。文件格式以 SVG 和 WebP 为佳。然而,标准格式如 PNG 和 JPG 也可以接受。 + +此外,你的图片不应该有任何水印、标志或文字,如 “Lunar Lobster” 或 “Ubuntu”。你可以在 [这里][2] 阅读详细的指导原则。 + +最后,你的壁纸可以以官方吉祥物 —— “月球” 和 “龙虾” 为特色。 + +提交截止日期为 2023 年 2 月 6 日,最终获胜者将在 2023 年 2 月 18 日社区投票后公布。 + +![早期提交的 Ubuntu 23.04 官方壁纸之一][3] + +### 如何提交? + +前往官方 Discourse 论坛的帖子下提交你的作品。请务必提到你的名字和 Twitter,如果被选中的话,可以得到 Ubuntu 团队的致谢。 + +> **[提交壁纸][4]** + +戴上你的创意帽子,提交所有那些很酷的壁纸吧! + +_图片来源:各自的作者_ + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg +[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md +[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg +[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132 diff --git a/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md deleted file mode 100644 index 209048a38b..0000000000 --- a/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md +++ /dev/null @@ -1,59 +0,0 @@ -[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open" -[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open -====== - -![][1] - -**Like digital drawing or photography? This wallpaper competition may feature your photos in the official Ubuntu 23.04 release.** - -### Wallpaper Competition for Ubuntu 23.04 - -Ubuntu 23.04 “Lunar Lobster” release is due in April 2023. Following the schedule, the official wallpaper competition is now open before the upcoming BETA release. - -As per the official guidelines, you must own the rights to the images that you are posting, and they must be original. No AI-generated images should be considered, arguably. - -Furthermore, your submitted image should have at least 3840x2160px dimensions and should not exceed 10MB of file size. The file formats SVG and WebP are preferred. However, standard formats such as PNG and JPG are also accepted. - -In addition, your images should not have any watermark, logo or text such as “Lunar Lobster” or “Ubuntu”. You can read the detailed guideline [here][2]. - -Finally, your wallpaper may feature the official mascot – “Lunar” and “Lobster”. - -The submission closes on February 6, 2023, and final winners will be announced on February 18, 2023, after community voting. - -![One of the early submission for Ubuntu 23.04 official wallpaper][3] - -### How to submit it? - -Head over to the official discourse forum post and submit your entries. Make sure to mention your name and Twitter handle to get credit from the Ubuntu team if selected. - -[Submit wallpapers][4] - -Put on your creative hat and submit all those cool wallpapers! - -_Image credits: respective author_ - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg -[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md -[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg -[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132 From 36e1040b4c433edd15fade7d55ae9c69ecea83e8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 16 Jan 2023 14:58:21 +0800 Subject: [PATCH 2577/3123] ATRP @wxy https://linux.cn/article-15449-1.html --- ...zing Release With Much-Needed Feature Additions.md | 144 +++++++++++++++++ ...zing Release With Much-Needed Feature Additions.md | 148 ------------------ 2 files changed, 144 insertions(+), 148 deletions(-) create mode 100644 published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md delete mode 100644 sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md diff --git a/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md new file mode 100644 index 0000000000..6bf9cc9436 --- /dev/null +++ b/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md @@ -0,0 +1,144 @@ +[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions" +[#]: via: "https://news.itsfoss.com/discourse-3-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15449-1.html" + +Discourse 3.0 发布,增加了很多需要的功能 +====== + +> 开源论坛软件 Discourse 有了一个新的重大版本升级!让我们看看有什么新东西。 + +![][1] + +Discourse 是一个开源的论坛平台,以其丰富的功能和第三方集成而闻名。 + +它也是 [最好的开源论坛软件][2] 之一,你可以部署在你的 Linux 服务器上来建立一个社区。 + +现在,我们来看看 Discourse 的最新版本。 + +在 [Discourse 2.0][4] 发布已近五年之后,**Discourse 3.0 终于来了**。 + +这个版本包含了大量的新功能和改进,让我带你看看: + +### 🆕 Discourse 3.0 的新变化 + +![Discourse 3.0][5] + +Discourse 3.0 提供了很多东西,其中一些值得注意的亮点包括: + +- 新的设置向导 +- 用户状态 +- 通知菜单 +- 新的侧边栏 +- 实时聊天 +- 用户提示 + +#### 新的设置向导 + +![新的设置向导][6] + +Discourse 现在有一个新的设置向导,可以让你快速配置一些最重要的选项。 + +因此,像将社区设置为私人、仅邀请、需要批准等选项在论坛设置的初始阶段就会显示出来。 + +#### 用户状态 + +![Discourse 用户状态][7] + +与现在大多数社区平台的做法类似,Discourse 现在也支持设置用户状态。 + +用户可以设置一个自定义的表情符号和文字,在整个平台上显示在他们的头像附近,无论是帖子、聊天还是用户卡中。 + +#### 通知菜单 + +![Discourse 通知][8] + +这终于实现了。 + +Discourse 现在有一个专门的通知菜单,让你更容易跟踪你在论坛上的活动。 + +#### 新的侧边栏 + +![Discourse 侧边栏][9] + +这是的另一项你可能会喜欢的用户体验改进。 + +你现在可以在新的侧边栏上添加聊天频道、标签和类别,以方便访问你想追踪的东西。 + +论坛的管理员也可以为游客和新成员设置一个默认的侧边栏配置;这样,每个人都可以对论坛提供的内容有一个很好的展望。 + +#### 实时聊天 + +![Discourse 实时聊天][10] + +Discourse 现在支持实时聊天;频道管理员可以选择创建一个非正式的讨论、展示,甚至是备忘录的空间,如果这对他们有用的话。 + +Discourse 的产品经理 Rishabh Nambiar 提到: + +> 我们的目标是,当对话在快节奏的聊天和慢节奏的讨论之间转换时,赋予社区以综合的体验。 +> +> 当想法被激发出来,在一个更容易被发现的地方,聊天信息可以被引用到话题中,讨论可以随着时间的推移而继续,并允许不同时间和地点的人以后加入进来。 + +#### 用户提示 + +![Discourse 用户提示][11] + +这个功能对不熟悉 Discourse 的新用户很有帮助。 + +当用户第一次使用某个特定的功能时,他们会得到与 Discourse 的功能相关的提示。 + +#### 🛠️ 其他变化和改进 + +上面提到的并不是这次发布的 Discourse 的全部变化,下面是其他一些亮点: + +- 改造了标签系统。 +- 改进了搜索界面。 +- 更新了开源工具。 +- 改进了错误页面。 +- 新的闪屏。 +- 改进了页面加载动画。 +- 更快的图像预加载。 + +如果你想深入了解这个版本的技术细节,请查阅 [发行说明][12]。 + +### 📥 获取 Discourse 3.0 + +如果你使用的是 [Discourse 的托管计划][13],你一定已经收到了 3.0 的更新,你所要做的就是通过你的管理设置启用新功能。 + +如果你是自我托管,你必须通过点击管理仪表板上的“更新”按钮手动更新你的实例。 + +对于新用户,请在他们的官方网站上探索更多关于 Discourse 的信息。 + +> **[Discourse][14]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/discourse-3-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png +[2]: https://itsfoss.com/open-source-forum-software/ +[3]: https://itsfoss.community +[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/ +[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg +[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png +[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg +[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg +[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg +[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg +[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg +[12]: https://meta.discourse.org/t/discourse-version-3-0/ +[13]: https://www.discourse.org/pricing +[14]: https://www.discourse.org diff --git a/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md deleted file mode 100644 index 5de7f32df5..0000000000 --- a/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md +++ /dev/null @@ -1,148 +0,0 @@ -[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions" -[#]: via: "https://news.itsfoss.com/discourse-3-0-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions -====== - -Open-source forum software Discourse has a new major upgrade! Check out what's new. - -![Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions][1] - -Discourse is an open-source forum platform known for its vast features and third-party integrations. - -It is also one of the [best open-source forum software][2] you can deploy on your Linux servers to build a community. - -The **[It's FOSS Community][3]** forum is **also****powered by Discourse**. If you have any questions or want to join in discussing Linux/Open-Source stuff with like-minded people, feel free to sign up on our community forum. - -Now, moving on to Discourse's latest release. - -**Discourse 3.0 is finally here**. - -This comes almost **five years** after the release of [Discourse 2.0.][4] - -This release is packed with plenty of new features and improvements; let me take you through them. - -### 🆕 Discourse 3.0: What's New? - -![discourse 3.0][5] - -Discourse 3.0 has a lot to offer; some of the notable highlights include: - -- **New Setup Wizard** -- **User Status** -- **Notifications Menu** -- **New Sidebar** -- **Real-Time Chat** -- **User Tips** - -#### New Setup Wizard - -![discourse setup wizard][6] - -Discourse now features a new setup wizard that lets you quickly configure some of the most important options. - -So, options like setting a community to **Private, Invite Only, Require Approval,** and more are shown during the initial stages of the set-up of your forum. - -#### User Status - -![discourse 3.0 user status][7] - -Similar to what most community platforms are doing nowadays, Discourse now has support for setting user status. - -Users can set a custom emoji and text to be displayed near their avatar across the platform, be it posts, chat, or in the user card. - -#### Notifications Menu - -![discourse notifications][8] - -Finally, this has become a reality. - -Discourse now has a dedicated notifications menu, making it easier to track your activity on the forums. - -#### New Sidebar - -![discourse 3 sidebar][9] - -This is yet **another user experience improvement** that you might like. - -You can now add chat channels, tags, and categories to the new sidebar for easy access to the things you want to keep track of. - -Admins of forums can also set a default sidebar config for visitors and new members; this way, everyone can get a great outlook of what a forum offers. - -#### Real-Time Chat - -![discourse 3.0 realtime chat][10] - -Discourse now has support for real-time chats; channel admins can choose to create a space for informal discussion, showcase, or even memes if it works for them. - -Discourse's **Product Manager**, _Rishabh Nambiar,_mentions: - -> Our goal is to empower communities with an integrated experience as conversations shift between faster-paced chat and slower-paced discussions.When ideas are sparked that belong in a more discoverable place, chat messages can be quoted in topics where the discussion can continue over time and allow people in different times and places to join in later. - -#### User Tips - -![discourse 3.0 user tips][11] - -This feature can be helpful to new users who are unfamiliar with Discourse. - -Users will be provided with tips related to the features of Discourse when they use a particular feature for the first time. - -#### 🛠️ Other Changes & Improvements - -The above-mentioned are not the only changes coming to Discourse with this release; here are some other highlights: - -- **The hashtag system has been revamped.** -- **The search UI has been improved.** -- **Open-source tooling has been updated.** -- **Improved error pages.** -- **New splash screen.** -- **Improved page loading spinner.** -- **Faster image preloads.** - -If you want a deep dive into the technical details of this release, go through the [release notes][12]. - -### 📥 Get Discourse 3.0 - -If you are on [Discourse's hosting plan][13], you must have already received the 3.0 update, and all you have to do is enable the new features via your admin settings. - -**Suggested Read 📖** - -And, if you are self-hosted, you must manually update your instance by clicking on the '**Update**' button on your admin dashboard. - -For new users, explore more about Discourse on their official site. - -[Discourse][14] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/discourse-3-0-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png -[2]: https://itsfoss.com/open-source-forum-software/ -[3]: https://itsfoss.community -[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/ -[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg -[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png -[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg -[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg -[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg -[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg -[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg -[12]: https://meta.discourse.org/t/discourse-version-3-0/ -[13]: https://www.discourse.org/pricing -[14]: https://www.discourse.org From 1c5bbaf8837c405aacd7f25d31970d8bb5278cfb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 16 Jan 2023 16:48:30 +0800 Subject: [PATCH 2578/3123] ATRP @wxy https://linux.cn/article-15450-1.html --- ...stic (Yet Underrated) Linux Desktop Environment.md | 190 ++++++++++++++++++ ...stic (Yet Underrated) Linux Desktop Environment.md | 185 ----------------- 2 files changed, 190 insertions(+), 185 deletions(-) create mode 100644 published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md delete mode 100644 sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md diff --git a/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md new file mode 100644 index 0000000000..efe41ce13d --- /dev/null +++ b/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md @@ -0,0 +1,190 @@ +[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment" +[#]: via: "https://itsfoss.com/why-cinnamon/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15450-1.html" + +Cinnamon 是一个被低估的神奇 Linux 桌面环境 +====== + +![][0] + +> Linux Mint 是我最喜欢的发行版之一,其旗舰版的默认 Cinnamon 桌面是我如此喜欢它的原因。 + +Cinnamon 桌面提供的用户体验可能并不炫目花哨。但是,用户有充分的理由喜欢这个桌面环境,并可以轻松地用它来完成工作。 + +在日复一日工作中,我们想要的是,一个能按预期工作且不造成妨碍的用户界面。 + +我认为 Cinnamon 桌面做对了几件事,可以给你带来了令人兴奋的体验。让我在这里介绍其中一些。 + +> 如果你还不知道,Cinnamon 桌面是由 Linux Mint 的创建者 Clement Lefebvre 于 2011 年创建的 GNOME 3 复刻版,并经过多年的改进。 + +### 1、熟悉的用户界面 + +![Linux Mint 21][1] + +构建 Cinnamon 的主要目的是为了保持 GNOME 2 的桌面风格。 + +而这就是为什么与最流行的消费级桌面操作系统 Windows 相比,你会看到一个熟悉的桌面布局。 + +当然,随着时间的推移,Windows 11 已经进化了它的通常布局。但是,访问开始菜单、任务栏、托盘中的系统图标和几个窗口装饰使其易于掌握。 + +无论你是 Windows 用户还是 macOS 用户,Cinnamon 的桌面布局都不应该让你感到有什么挑战。 + +![Linux Mint 欢迎屏幕][2] + +为了进一步帮助你,Linux Mint 的 “欢迎屏幕” 为你迅速提供了各种信息。 + +### 2、轻量级 + +为了获得舒适的 Cinnamon 桌面体验(通常使用 Linux Mint),有以下最低系统要求: + +- 4GB 内存 +- 100 GB 的磁盘空间 +- 1024×768 分辨率的屏幕 + +在现代计算时代,这些规格应该适合几乎所有人。所以,你不必担心需要一个疯狂的内存或磁盘空间来运行由 Cinnamon 驱动的 Linux 发行版。 + +当然,你可以尝试 [在 Ubuntu 上安装 Cinnamon 桌面][3]。 + +但是,在本文中,我们认为 Linux Mint 是理想的使用案例。 + +### 3、快速的性能而不牺牲用户体验 + +当我们想到一个轻量级的桌面环境时,我们通常会想象一个注重性能的、平淡无奇的用户界面。 + +![Linux Mint 首选项][4] + +在 Cinnamon 桌面上,情况并非如此。它确实包括了各种细微的动画和特色的图标/主题,即使不是最好的,其外观也相当现代。 + +它以极简的方式让你看起来很赏心悦目。 + +通常情况下,我很喜欢漂亮的用户界面,但我仍然可以接受 Linux Mint 的简单直接的用户体验,并在双显示器设置(1440p + 1080p)上运行它。 + +它可能不是 Linux Mint Cinnamon 版最好的双显示器体验(对我来说,第二个屏幕上没有停靠区和面板),但需要改进地方不多。 + +### 4、默认的自定义选项 + +你可能已经知道,在提供开箱即用的定制能力方面,KDE 可能是最棒的。 + +如果你对这种方式感到好奇,我们有超级有用的指南: + +- [KDE 定制指南][5] +- [如何正确地给 KDE Plasma 定制主题(深度指南)][6] +- [最佳的 KDE Plasma 华丽主题][7] + +但是,对于许多用户来说,这有些过于复杂了。 + +我认为 Linux Mint 给出了适量的额外控制/定制,你也可以在它的欢迎屏幕上了解到这些。 + +![Cinnamon 主题定制][8] + +一些你可以轻松定制的元素包括: + +- 桌面颜色(强调色) +- 浅色/深色主题切换 +- 面板布局 +- 图标、按钮和鼠标指针 + +你可以前往系统设置,并导航到 “主题”,找到必要的调整项。 + +推荐阅读: + +> **[在 Linux 上定制 Cinnamon 桌面的 7 种方法][9]** + +### 5、为你的体验增色的官方附加组件 + +![Cinnamon 桌面部件][10] + +Linux Mint 支持各种插件来增强你的体验。这些都是 [Cinnamon 调味品][11] 产品的一部分。它们包括: + +- 主题 +- 扩展程序 +- 小程序Applet +- 桌面组件Desklet + +小程序和桌面组件是小型程序,你可以分别在面板(靠近系统托盘)和桌面上添加。 + +![小程序][12] + +你可以管理系统默认的小程序,也可以从官方软件库下载更多的小程序。 + +![小程序][13] + +同样,你可以从可用的默认程序中添加桌面组件,或者从软件库中获得新的。 + +![桌面组件][14] + +大量有价值的实用程序可以用来监控系统资源、检查天气,以及更多。 + +此外,你还可以访问社区构建的各种主题,可以很容易地给你一个你一直想要的外观。 + +![Cinnamon 主题][15] + +通过补充上述所有的 “调味品”,你可以使用扩展来使面板透明,在桌面上添加水印,启用窗口平铺,并添加一些令人兴奋的窗口动画。 + +![Linux Mint 扩展][16] + +### 6、兼容和无缝的用户体验 + +为什么我再次强调用户体验? + +Cinnamon 桌面最棒的地方在于它以尊重和支持所有功能的方式发展。 + +例如,如果你想安装一个你在 KDE Plasma 上喜欢使用的应用程序,它在这里也应该以同样的方式工作。Cinnamon 桌面没有什么特别之处,会破坏这种体验。 + +![GNOME 账户应用][17] + +同样地,该桌面增加了一些试图与其他桌面环境的服务共存的功能。例如,支持使用 GNOME 在线账户的日历事件。 + +### 7、面板定制 + +![Linux Mint 面板][18] + +停靠区、任务栏或面板是用户界面的一个组成部分。 + +是的,其他的桌面环境也允许你在某种程度上同样定制这些。但在 Cinnamon 中,你可以得到大量的控制权来调整它。 + +我认为你可以得到一个用户想要的所有基本选项。 + +### 总结 + +GNOME 和 KDE Plasma 是流行的桌面环境。然而,Cinnamon 在提供最佳用户体验的基本部分上并不逊色。 + +你对 Cinnamon 桌面环境有什么看法?你更喜欢用 Linux Mint 来尝试它吗?在下面的评论部分分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/why-cinnamon/ + +作者:[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://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-21-full.jpg +[2]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-welcome.png +[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/ +[4]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-perf.png +[5]: https://itsfoss.com/kde-customization/ +[6]: https://itsfoss.com/properly-theme-kde-plasma/ +[7]: https://itsfoss.com/best-kde-plasma-themes/ +[8]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-theme-customize.png +[9]: https://itsfoss.com/customize-cinnamon-desktop/ +[10]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-desklet.png +[11]: https://cinnamon-spices.linuxmint.com +[12]: https://itsfoss.com/content/images/wordpress/2022/11/applet-cinnamon.png +[13]: https://itsfoss.com/content/images/wordpress/2022/11/applets-cinnamon.png +[14]: https://itsfoss.com/content/images/wordpress/2022/11/desklet-cinnamon.png +[15]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-theme.png +[16]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-extensions.png +[17]: https://itsfoss.com/content/images/wordpress/2022/11/gnome-accounts-cinnamon.png +[18]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-panel.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/16/164642rr27xxt3zo72t7vl.jpg \ No newline at end of file diff --git a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md deleted file mode 100644 index 9a06dfdbc8..0000000000 --- a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment" -[#]: via: "https://itsfoss.com/why-cinnamon/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment -====== - -Linux Mint is one of my favorite distributions. The flagship (or default) Cinnamon desktop is why I like it so much. - -The user experience offered by Cinnamon desktop may not be mind-blowing or fancy. But, the desktop environment provides enough reasons for users to like it and easily work with it to get things done. - -At the end of the day, that’s what we want. A user interface that works as expected and does not get in the way. - -I think Cinnamon desktop does a few things right to give you an exciting experience. Let me mention some of those here. - -**If you did not know**, the Cinnamon desktop is a fork of the GNOME 3 created in **2011** by **Clement Lefebvre** (Linux Mint creator) with enhancements over the years. - -### 1. Familiar User Interface - -![linux mint 21 full][1] - -The primary objective of building Cinnamon was to keep the GNOME 2 desktop style alive. - -And that is why you get a familiar desktop layout compared to the most popular consumer desktop operating system, i.e., Windows. - -Of course, Windows 11 has evolved its usual layout with time. But, accessing a start menu, a taskbar, system icons in the tray, and a couple of window decorations make it easy to grasp. - -Whether you are a Windows user or a macOS user, the Cinnamon desktop layout should not feel challenging at all. - -![linux mint welcome][2] - -To help you further, the “**Welcome Screen**” in Linux Mint provides you with all the information quickly. - -### 2. Lightweight - -To get a comfortable experience with Cinnamon desktop (usually with Linux Mint), you have the following system requirements: - -- 4 GB RAM -- 100 GB of disk space -- 1024×768 resolution screen - -In the modern computing age, these specifications should suit almost everyone. So, you do not have to worry about needing an insane amount of memory or disk space to run a Linux distro powered by Cinnamon. - -Of course, you can try [installing Cinnamon desktop on Ubuntu][3]. - -But, for this article, we consider Linux Mint as the ideal use case. - -### 3. Fast Performance Without Sacrificing User Experience - -When we think about a lightweight desktop environment—we usually imagine a bland user interface that focuses on performance. - -![linux mint perf][4] - -With Cinnamon desktop, that is not the case. It does include subtle animations and features icons/themes that make up for a modern look, if not the best. - -It looks pleasing to the eyes with a minimal approach. - -Typically, I am a sucker for pretty user interfaces, but I can still live with Linux Mint’s straightforward user experience running it on a dual-monitor setup (**1440p + 1080p**). - -It may not be the best dual-monitor experience with Linux Mint Cinnamon edition (no dock/panel on the second screen for me). So, there is little room for improvement. - -### 4. Default Customization Options - -You might already know that KDE is probably the king when it comes to giving the ability to customize out-of-the-box. - -We have super useful guides if you are curious about going that way: - -- [KDE Customization Guide][5] -- [How to Properly Theme KDE Plasma [In-depth Guide]][6] -- [Best Gorgeous KDE Plasma Themes][7] - -But, for many users, it is **overwhelming**. - -I think Linux Mint gives the right amount of extra controls/customizations, which you also learn on its **Welcome Screen**. - -![cinnamon theme customize][8] - -Some of the elements that you can easily customize include: - -- Desktop color (accent) -- Light/Dark theme toggle -- Panel layout -- Icons, buttons, and mouse pointer. - -You can head to the system settings and navigate to “Themes” to find the essential tweaks. - -**Recommended Read:**[7 Ways to Customize Cinnamon Desktop on Linux][9] - -### 5. Official Add-ons to Spice Up Your Experience - -![cinnamon desklet][10] - -Linux Mint supports various add-ons to enhance your experience. These are all part of its [Cinnamon Spices][11] offering. They include: - -- Themes -- Extensions -- Applets -- Desklets - -Applets and Desklets are tiny programs that you can add on top of the panel (near the system tray) and the desktop, respectively. - -![applet cinnamon][12] - -You can manage system default applets or download more from the official repositories: - -![applets cinnamon][13] - -Similarly, you can add a Desklet from the available defaults or get a new one from the repositories. - -![desklet cinnamon][14] - -Plenty of valuable utilities to monitor system resources, check the weather, and more. - -In addition, you get access to various themes built by the community that could easily give you a look you always wanted. - -![cinnamon theme][15] - -To complement all the above spices, you can use extensions to make the panel transparent, add a watermark to your desktop, enable windows tiling, and add some exciting window animations. - -![linux mint extensions][16] - -### 6. Compatible and Seamless User Experience - -Why do I highlight the user experience again? - -The best part about Cinnamon desktop is that it evolves in a way that respects and supports all functionalities. - -For instance, if you want to install an app you enjoyed using on KDE Plasma, it should work the same way here. There’s nothing special with Cinnamon desktop that would break the experience. - -![gnome accounts cinnamon][17] - -Similarly, the desktop adds features that try to co-exist with services from other desktop environments. For instance, calendar events support using GNOME Online Accounts. - -### 7. Panel Customization - -![linux mint panel][18] - -The dock, taskbar, or panel comprises an integral part of the user interface. - -Yes, other desktop environments allow you to customize the same to some extent. With Cinnamon, you get a good amount of control to tweak it. - -I think you get all the essential options a user would want. - -### Wrapping Up - -GNOME and KDE Plasma are popular desktop environments. However, Cinnamon is not far off on essential parts to provide an optimal user experience. - -_What do you think of the Cinnamon desktop environment? Do you prefer to try it with Linux Mint? Share your thoughts in the comments section below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/why-cinnamon/ - -作者:[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/wp-content/uploads/2022/11/linux-mint-21-full.jpg -[2]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-welcome.png -[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/ -[4]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-perf.png -[5]: https://itsfoss.com/kde-customization/ -[6]: https://itsfoss.com/properly-theme-kde-plasma/ -[7]: https://itsfoss.com/best-kde-plasma-themes/ -[8]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme-customize.png -[9]: https://itsfoss.com/customize-cinnamon-desktop/ -[10]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-desklet.png -[11]: https://cinnamon-spices.linuxmint.com -[12]: https://itsfoss.com/wp-content/uploads/2022/11/applet-cinnamon.png -[13]: https://itsfoss.com/wp-content/uploads/2022/11/applets-cinnamon.png -[14]: https://itsfoss.com/wp-content/uploads/2022/11/desklet-cinnamon.png -[15]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme.png -[16]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-extensions.png -[17]: https://itsfoss.com/wp-content/uploads/2022/11/gnome-accounts-cinnamon.png -[18]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-panel.png From 48588fa2eaeae1033fc3bad719b289181bed9176 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Mon, 16 Jan 2023 20:40:35 +0800 Subject: [PATCH 2579/3123] APL --- ...05.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md index 394c1d810e..4f1e23ea84 100644 --- a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" [#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lxbwolf" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ece2419bc9a47aa71f1ae98756d39de5cf37060a Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 16 Jan 2023 21:27:06 +0800 Subject: [PATCH 2580/3123] Add files via upload --- .../20190331 Codecademy vs. The BBC Micro.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 translated/talk/20190331 Codecademy vs. The BBC Micro.md diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md new file mode 100644 index 0000000000..bd4d9e8813 --- /dev/null +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -0,0 +1,146 @@ +[#]: subject: "Codecademy vs. The BBC Micro" +[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" +[#]: author: "Two-Bit History https://twobithistory.org" +[#]: collector: "lujun9972" +[#]: translator: "CanYellow" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +[BBC Micro][T2] 比之 [Codecademy][T1] +====== + +20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。少数狂热的爱好者注意到了这是多么吸引人并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 + +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 + +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_Computer Literacy Project(计算机认知计划)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的 Fifth Personal Computer World Show(第五届个人电脑世界展) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _Computer Literacy Project_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] + +去年,一份包括了由 _Computer Literacy Project_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑使用是什么图景。不过我发现更有兴趣的是时年是如何教授电脑使用的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? + +### [Computer Literacy Project][T3] (计算机认知计划) + +微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为["Now the Chips Are Down"][T5](《芯片来了》)(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 + +该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 + +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_Adult Literacy Project_(成人扫盲计划)相似的多媒体项目。_Adult Literacy Project_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 + +_Computer Literacy Project_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 + +BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_Computer Literacy Project_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[6][8] + +BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 + +1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“Advanced RISC Machine”(先进 RISC 架构设备),然而最初它代表的是“Acorn RISC Machine”(Acorn RISC 架构设备)。ARM 架构背后的 ARM Holding(ARM 公司) 就是 Acorn 公司在1990年之后的延续。 + +![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ + + +### 名为“The Computer Programme”(计算机程序)的电视系列片 + +十几个不同的电视系列片最终作为_Computer Literacy Project_的一部分创作出来。第一部作品是一部名为 _The Computer Programme_(计算机程序) 的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 + +这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 + +该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_Computer Literacy Project_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 + +虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 + +在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴的小节。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 + +我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_Computer Literacy Project_的总制作人 John Radcliffe 如是写道: + +> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 + +接下来, Radcliffe writes 又以类似的方式写道: + +> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 + +我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_Computer Literacy Project_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 + +### 今天的计算机认知 + +如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品——存在相同的影响与目标,那就是 Codecademy。 + +对于普通人而言“Learn to code”(学习编程)是 Codecademy 的口号。我认为我不是第一个指出这一点的人——事实上我曾经在某个地方见到过这一点,只是现在拿来用而已。但是这里使用的是“code”(代码)而非“编程”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的价值而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的电脑屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些术语。但是理解语法并不是成为程序员的最大的挑战。面对更多更大的障碍,它很快将变成微不足道的。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码但是无法做到 _编写_ 代码解决全新的问题。 + +我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 + +公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动 _Computer Literacy Project_ 的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? + +我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 + +唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 + +另一方面,_Computer Literacy Project_ 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 + + + 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] + + 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] + + 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] + + 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] + + 5. ibid. [↩︎][23] + + 6. Williams, 51. [↩︎][24] + + 7. Radcliffe, 11. [↩︎][25] + + 8. Radcliffe, 5. [↩︎][26] + + + + +-------------------------------------------------------------------------------- + +via: https://twobithistory.org/2019/03/31/bbc-micro.html + +作者:[Two-Bit History][a] +选题:[lujun9972][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://twobithistory.org +[b]: https://github.com/lujun9972 +[1]: tmp.zNBs2lK4Ca#fn:1 +[2]: tmp.zNBs2lK4Ca#fn:2 +[3]: tmp.zNBs2lK4Ca#fn:3 +[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ +[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html +[6]: tmp.zNBs2lK4Ca#fn:4 +[7]: tmp.zNBs2lK4Ca#fn:5 +[8]: tmp.zNBs2lK4Ca#fn:6 +[9]: https://twobithistory.org/images/beeb.jpg +[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 +[11]: tmp.zNBs2lK4Ca#fn:7 +[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 +[13]: tmp.zNBs2lK4Ca#fn:8 +[14]: https://twobithistory.org/2018/09/02/learning-basic.html +[15]: https://twitter.com/TwoBitHistory +[16]: https://twobithistory.org/feed.xml +[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw +[18]: tmp.zNBs2lK4Ca#fnref:1 +[19]: tmp.zNBs2lK4Ca#fnref:2 +[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf +[21]: tmp.zNBs2lK4Ca#fnref:3 +[22]: tmp.zNBs2lK4Ca#fnref:4 +[23]: tmp.zNBs2lK4Ca#fnref:5 +[24]: tmp.zNBs2lK4Ca#fnref:6 +[25]: tmp.zNBs2lK4Ca#fnref:7 +[26]: tmp.zNBs2lK4Ca#fnref:8 + +[T1]: https://www.codecademy.com/ +[T2]: https://bbcmicro.computer/ +[T3]: https://clp.bbcrewind.co.uk/history +[T4]: https://archive.org/details/byte-magazine?tab=about +[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down +[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown +[T7]: https://en.wikipedia.org/wiki/Sinclair_Research +[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) +[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom From a32b23d4c03104d21d584e465ea516c1b454466b Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 16 Jan 2023 21:28:03 +0800 Subject: [PATCH 2581/3123] Delete 20190331 Codecademy vs. The BBC Micro.md --- .../20190331 Codecademy vs. The BBC Micro.md | 145 ------------------ 1 file changed, 145 deletions(-) delete mode 100644 sources/talk/20190331 Codecademy vs. The BBC Micro.md diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md deleted file mode 100644 index 197795acea..0000000000 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ /dev/null @@ -1,145 +0,0 @@ -[#]: subject: "Codecademy vs. The BBC Micro" -[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" -[#]: author: "Two-Bit History https://twobithistory.org" -[#]: collector: "lujun9972" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Codecademy vs. The BBC Micro -====== - -In the late 1970s, the computer, which for decades had been a mysterious, hulking machine that only did the bidding of corporate overlords, suddenly became something the average person could buy and take home. An enthusiastic minority saw how great this was and rushed to get a computer of their own. For many more people, the arrival of the microcomputer triggered helpless anxiety about the future. An ad from a magazine at the time promised that a home computer would “give your child an unfair advantage in school.” It showed a boy in a smart blazer and tie eagerly raising his hand to answer a question, while behind him his dim-witted classmates look on sullenly. The ad and others like it implied that the world was changing quickly and, if you did not immediately learn how to use one of these intimidating new devices, you and your family would be left behind. - -In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. - -In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] - -[An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? - -### The Computer Literacy Project - -The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” - -The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. - -The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. - -The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. - -The TV producers and presenters at the BBC were not capable of building a microcomputer on their own. So they put together a specification for the computer they had in mind and invited British microcomputer companies to propose a new machine that met the requirements. The specification called for a relatively powerful computer because the BBC producers felt that the machine should be able to run real, useful applications. Technical consultants for the _Computer Literacy Project_ also suggested that, if it had to be a BASIC dialect that was going to be taught to the entire nation, then it had better be a good one. (They may not have phrased it exactly that way, but I bet that’s what they were thinking.) BBC BASIC would make up for some of BASIC’s usual shortcomings by allowing for recursion and local variables.[6][8] - -The BBC eventually decided that a Cambridge-based company called Acorn Computers would make the BBC Micro. In choosing Acorn, the BBC passed over a proposal from Clive Sinclair, who ran a company called Sinclair Research. Sinclair Research had brought mass-market microcomputing to the UK in 1980 with the Sinclair ZX80. Sinclair’s new computer, the ZX81, was cheap but not powerful enough for the BBC’s purposes. Acorn’s new prototype computer, known internally as the Proton, would be more expensive but more powerful and expandable. The BBC was impressed. The Proton was never marketed or sold as the Proton because it was instead released in December 1981 as the BBC Micro, also affectionately called “The Beeb.” You could get a 16k version for £235 and a 32k version for £335. - -In 1980, Acorn was an underdog in the British computing industry. But the BBC Micro helped establish the company’s legacy. Today, the world’s most popular microprocessor instruction set is the ARM architecture. “ARM” now stands for “Advanced RISC Machine,” but originally it stood for “Acorn RISC Machine.” ARM Holdings, the company behind the architecture, was spun out from Acorn in 1990. - -![Picture of the BBC Micro.][9] _A bad picture of a BBC Micro, taken by me at the Computer History Museum -in Mountain View, California._ - -### The Computer Programme - -A dozen different TV series were eventually produced as part of the _Computer Literacy Project_, but the first of them was a ten-part series known as _The Computer Programme_. The series was broadcast over ten weeks at the beginning of 1982. A million people watched each week-night broadcast of the show; a quarter million watched the reruns on Sunday and Monday afternoon. - -The show was hosted by two presenters, Chris Serle and Ian McNaught-Davis. Serle plays the neophyte while McNaught-Davis, who had professional experience programming mainframe computers, plays the expert. This was an inspired setup. It made for [awkward transitions][10]—Serle often goes directly from a conversation with McNaught-Davis to a bit of walk-and-talk narration delivered to the camera, and you can’t help but wonder whether McNaught-Davis is still standing there out of frame or what. But it meant that Serle could voice the concerns that the audience would surely have. He can look intimidated by a screenful of BASIC and can ask questions like, “What do all these dollar signs mean?” At several points during the show, Serle and McNaught-Davis sit down in front of a computer and essentially pair program, with McNaught-Davis providing hints here and there while Serle tries to figure it out. It would have been much less relatable if the show had been presented by a single, all-knowing narrator. - -The show also made an effort to demonstrate the many practical applications of computing in the lives of regular people. By the early 1980s, the home computer had already begun to be associated with young boys and video games. The producers behind _The Computer Programme_ sought to avoid interviewing “impressively competent youngsters,” as that was likely “to increase the anxieties of older viewers,” a demographic that the show was trying to attract to computing.[7][11] In the first episode of the series, Gill Nevill, the show’s “on location” reporter, interviews a woman that has bought a Commodore PET to help manage her sweet shop. The woman (her name is Phyllis) looks to be 60-something years old, yet she has no trouble using the computer to do her accounting and has even started using her PET to do computer work for other businesses, which sounds like the beginning of a promising freelance career. Phyllis says that she wouldn’t mind if the computer work grew to replace her sweet shop business since she enjoys the computer work more. This interview could instead have been an interview with a teenager about how he had modified _Breakout_ to be faster and more challenging. But that would have been encouraging to almost nobody. On the other hand, if Phyllis, of all people, can use a computer, then surely you can too. - -While the show features lots of BASIC programming, what it really wants to teach its audience is how computing works in general. The show explains these general principles with analogies. In the second episode, there is an extended discussion of the Jacquard loom, which accomplishes two things. First, it illustrates that computers are not based only on magical technology invented yesterday—some of the foundational principles of computing go back two hundred years and are about as simple as the idea that you can punch holes in card to control a weaving machine. Second, the interlacing of warp and weft threads is used to demonstrate how a binary choice (does the weft thread go above or below the warp thread?) is enough, when repeated over and over, to produce enormous variation. This segues, of course, into a discussion of how information can be stored using binary digits. - -Later in the show there is a section about a steam organ that plays music encoded in a long, segmented roll of punched card. This time the analogy is used to explain subroutines in BASIC. Serle and McNaught-Davis lay out the whole roll of punched card on the floor in the studio, then point out the segments where it looks like a refrain is being repeated. McNaught-Davis explains that a subroutine is what you would get if you cut out those repeated segments of card and somehow added an instruction to go back to the original segment that played the refrain for the first time. This is a brilliant explanation and probably one that stuck around in people’s minds for a long time afterward. - -I’ve picked out only a few examples, but I think in general the show excels at demystifying computers by explaining the principles that computers rely on to function. The show could instead have focused on teaching BASIC, but it did not. This, it turns out, was very much a conscious choice. In a retrospective written in 1983, John Radcliffe, the executive producer of the _Computer Literacy Project_, wrote the following: - -> If computers were going to be as important as we believed, some genuine understanding of this new subject would be important for everyone, almost as important perhaps as the capacity to read and write. Early ideas, both here and in America, had concentrated on programming as the main route to computer literacy. However, as our thinking progressed, although we recognized the value of “hands-on” experience on personal micros, we began to place less emphasis on programming and more on wider understanding, on relating micros to larger machines, encouraging people to gain experience with a range of applications programs and high-level languages, and relating these to experience in the real world of industry and commerce…. Our belief was that once people had grasped these principles, at their simplest, they would be able to move further forward into the subject. - -Later, Radcliffe writes, in a similar vein: - -> There had been much debate about the main explanatory thrust of the series. One school of thought had argued that it was particularly important for the programmes to give advice on the practical details of learning to use a micro. But we had concluded that if the series was to have any sustained educational value, it had to be a way into the real world of computing, through an explanation of computing principles. This would need to be achieved by a combination of studio demonstration on micros, explanation of principles by analogy, and illustration on film of real-life examples of practical applications. Not only micros, but mini computers and mainframes would be shown. - -I love this, particularly the part about mini-computers and mainframes. The producers behind _The Computer Programme_ aimed to help Britons get situated: Where had computing been, and where was it going? What can computers do now, and what might they do in the future? Learning some BASIC was part of answering those questions, but knowing BASIC alone was not seen as enough to make someone computer literate. - -### Computer Literacy Today - -If you google “learn to code,” the first result you see is a link to Codecademy’s website. If there is a modern equivalent to the _Computer Literacy Project_, something with the same reach and similar aims, then it is Codecademy. - -“Learn to code” is Codecademy’s tagline. I don’t think I’m the first person to point this out—in fact, I probably read this somewhere and I’m now ripping it off—but there’s something revealing about using the word “code” instead of “program.” It suggests that the important thing you are learning is how to decode the code, how to look at a screen’s worth of Python and not have your eyes glaze over. I can understand why to the average person this seems like the main hurdle to becoming a professional programmer. Professional programmers spend all day looking at computer monitors covered in gobbledygook, so, if I want to become a professional programmer, I better make sure I can decipher the gobbledygook. But dealing with syntax is not the most challenging part of being a programmer, and it quickly becomes almost irrelevant in the face of much bigger obstacles. Also, armed only with knowledge of a programming language’s syntax, you may be able to _read_ code but you won’t be able to _write_ code to solve a novel problem. - -I recently went through Codecademy’s “Code Foundations” course, which is the course that the site recommends you take if you are interested in programming (as opposed to web development or data science) and have never done any programming before. There are a few lessons in there about the history of computer science, but they are perfunctory and poorly researched. (Thank heavens for [this noble internet vigilante][12], who pointed out a particularly egregious error.) The main focus of the course is teaching you about the common structural elements of programming languages: variables, functions, control flow, loops. In other words, the course focuses on what you would need to know to start seeing patterns in the gobbledygook. - -To be fair to Codecademy, they offer other courses that look meatier. But even courses such as their “Computer Science Path” course focus almost exclusively on programming and concepts that can be represented in programs. One might argue that this is the whole point—Codecademy’s main feature is that it gives you little interactive programming lessons with automated feedback. There also just isn’t enough room to cover more because there is only so much you can stuff into somebody’s brain in a little automated lesson. But the producers at the BBC tasked with kicking off the _Computer Literacy Project_ also had this problem; they recognized that they were limited by their medium and that “the amount of learning that would take place as a result of the television programmes themselves would be limited.”[8][13] With similar constraints on the volume of information they could convey, they chose to emphasize general principles over learning BASIC. Couldn’t Codecademy replace a lesson or two with an interactive visualization of a Jacquard loom weaving together warp and weft threads? - -I’m banging the drum for “general principles” loudly now, so let me just explain what I think they are and why they are important. There’s a book by J. Clark Scott about computers called _But How Do It Know?_ The title comes from the anecdote that opens the book. A salesman is explaining to a group of people that a thermos can keep hot food hot and cold food cold. A member of the audience, astounded by this new invention, asks, “But how do it know?” The joke of course is that the thermos is not perceiving the temperature of the food and then making a decision—the thermos is just constructed so that cold food inevitably stays cold and hot food inevitably stays hot. People anthropomorphize computers in the same way, believing that computers are digital brains that somehow “choose” to do one thing or another based on the code they are fed. But learning a few things about how computers work, even at a rudimentary level, takes the homunculus out of the machine. That’s why the Jacquard loom is such a good go-to illustration. It may at first seem like an incredible device. It reads punch cards and somehow “knows” to weave the right pattern! The reality is mundane: Each row of holes corresponds to a thread, and where there is a hole in that row the corresponding thread gets lifted. Understanding this may not help you do anything new with computers, but it will give you the confidence that you are not dealing with something magical. We should impart this sense of confidence to beginners as soon as we can. - -Alas, it’s possible that the real problem is that nobody wants to learn about the Jacquard loom. Judging by how Codecademy emphasizes the professional applications of what it teaches, many people probably start using Codecademy because they believe it will help them “level up” their careers. They believe, not unreasonably, that the primary challenge will be understanding the gobbledygook, so they want to “learn to code.” And they want to do it as quickly as possible, in the hour or two they have each night between dinner and collapsing into bed. Codecademy, which after all is a business, gives these people what they are looking for—not some roundabout explanation involving a machine invented in the 18th century. - -The _Computer Literacy Project_, on the other hand, is what a bunch of producers and civil servants at the BBC thought would be the best way to educate the nation about computing. I admit that it is a bit elitist to suggest we should laud this group of people for teaching the masses what they were incapable of seeking out on their own. But I can’t help but think they got it right. Lots of people first learned about computing using a BBC Micro, and many of these people went on to become successful software developers or game designers. [As I’ve written before][14], I suspect learning about computing at a time when computers were relatively simple was a huge advantage. But perhaps another advantage these people had is shows like _The Computer Programme_, which strove to teach not just programming but also how and why computers can run programs at all. After watching _The Computer Programme_, you may not understand all the gobbledygook on a computer screen, but you don’t really need to because you know that, whatever the “code” looks like, the computer is always doing the same basic thing. After a course or two on Codecademy, you understand some flavors of gobbledygook, but to you a computer is just a magical machine that somehow turns gobbledygook into running software. That isn’t computer literacy. - -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][15] on Twitter or subscribe to the [RSS feed][16] to make sure you know when a new post is out._ - -_Previously on TwoBitHistory…_ - -> FINALLY some new damn content, amirite? -> -> Wanted to write an article about how Simula bought us object-oriented programming. It did that, but early Simula also flirted with a different vision for how OOP would work. Wrote about that instead! -> -> — TwoBitHistory (@TwoBitHistory) [February 1, 2019][17] - - 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] - - 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] - - 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] - - 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] - - 5. ibid. [↩︎][23] - - 6. Williams, 51. [↩︎][24] - - 7. Radcliffe, 11. [↩︎][25] - - 8. Radcliffe, 5. [↩︎][26] - - - - --------------------------------------------------------------------------------- - -via: https://twobithistory.org/2019/03/31/bbc-micro.html - -作者:[Two-Bit History][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://twobithistory.org -[b]: https://github.com/lujun9972 -[1]: tmp.zNBs2lK4Ca#fn:1 -[2]: tmp.zNBs2lK4Ca#fn:2 -[3]: tmp.zNBs2lK4Ca#fn:3 -[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ -[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html -[6]: tmp.zNBs2lK4Ca#fn:4 -[7]: tmp.zNBs2lK4Ca#fn:5 -[8]: tmp.zNBs2lK4Ca#fn:6 -[9]: https://twobithistory.org/images/beeb.jpg -[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 -[11]: tmp.zNBs2lK4Ca#fn:7 -[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 -[13]: tmp.zNBs2lK4Ca#fn:8 -[14]: https://twobithistory.org/2018/09/02/learning-basic.html -[15]: https://twitter.com/TwoBitHistory -[16]: https://twobithistory.org/feed.xml -[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw -[18]: tmp.zNBs2lK4Ca#fnref:1 -[19]: tmp.zNBs2lK4Ca#fnref:2 -[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf -[21]: tmp.zNBs2lK4Ca#fnref:3 -[22]: tmp.zNBs2lK4Ca#fnref:4 -[23]: tmp.zNBs2lK4Ca#fnref:5 -[24]: tmp.zNBs2lK4Ca#fnref:6 -[25]: tmp.zNBs2lK4Ca#fnref:7 -[26]: tmp.zNBs2lK4Ca#fnref:8 From d47656fca039a072da9fa2f38b401816e5c688a6 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Mon, 16 Jan 2023 22:09:56 +0800 Subject: [PATCH 2582/3123] TSL --- ...6 tips for building an effective DevOps culture.md | 101 ----------------- ...6 tips for building an effective DevOps culture.md | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 101 deletions(-) delete mode 100644 sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md create mode 100644 translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md diff --git a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md deleted file mode 100644 index 4f1e23ea84..0000000000 --- a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: subject: "6 tips for building an effective DevOps culture" -[#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" -[#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" -[#]: collector: "lkxed" -[#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -6 tips for building an effective DevOps culture -====== - -Why would you want to build a [DevOps][1] culture? There are many benefits to the streamlined collaboration of the development and operations teams. A major goal is efficiency: Increasing the speed of new software deployments and reducing idle time for workers. Fostering trust between colleagues can improve employee satisfaction, produce new innovations, and positively impact profitability. - -[DevOps][2] is a broad philosophy with a range of interpretations. In other words, you can visit 40 companies and find 40,000 different ideas about using DevOps effectively in the workplace. This diversity of opinion is actually a good thing–so many perspectives are useful for building stronger teams. This guide will look at the top tips for encouraging better collaboration between colleagues within a DevOps culture. - -Each section offers a different aspect of DevOps culture and looks at ways to introduce it into your workforce. - -![DevOps includes collaboration, workflow, infosec, and iteration.][3] - -### Continuous development of processes - -This core tenet of DevOps culture sets it apart from many other types of workplace ethos. The DevOps philosophy says that it is essential to make mistakes because it shows you are trying out new ideas. - -The heart of DevOps culture is a commitment to evolving creativity. Practically, that means not yelling at your direct reports when test results show that things were better before they changed it. It means recognizing that progress is not linear and success is never a straight line. - -DevOps expert [Gene Kim][4] advocates for risk-taking and experimentation. This implies letting your team work on unusual tasks to find new insights. - -Should your organization be profit-driven? Can you allow your teams to try something new? I'm talking about something other than unrelated passion projects. Continuous process development means being open to upgrading present methods. Great sales leaders appreciate that results matter more than presenteeism, so it is always crucial to focus on how teams are working rather than how much. - -### Readily give feedback and actively seek it - -Increased trust between individuals is another key feature of a thriving DevOps culture. Whether your staff is learning how to build affiliate network contacts or trying to design their next [UX][5] survey, everyone should be open to feedback on their work. But this will never happen until your teammates respect each other's opinions and trust that feedback is given in a spirit of good intention. - -This culture may sound impossible to cultivate; indeed, some companies will struggle to achieve this more than others. Granted, a large part of the success of giving and receiving feedback depends on the personalities of your employees. It is possible to screen for this during the recruitment process. - -Before you expect staff to readily offer feedback to colleagues and seek it in the first place, you should lead by example. Members of the C-suite should be modeling this behavior, openly asking members of the company to pose probing questions about their strategic decisions, and providing balanced feedback. - -![DevOps is the intersection of development, quality assurance, and operations][6] - -### Always look for improvements - -Building on increased intellectual trust between colleagues, your team should look for ways to improve its work. The nature of DevOps means the software development team will be producing deployments more rapidly than with traditional approaches. - -However, this culture of openness to improvement can positively impact departments beyond development and operations. Ask yourself what other areas of your business could do with a burst of optimism. - -Be on the lookout for training and upskilling opportunities. Even if a training course is less salient than advertised, the chance to network with industry professionals and build contacts for the future can only enhance the diversity of ideas within your organization. - -### Save ideas for later development - -Part of your DevOps toolchain should be a heavily used account on [Git][7]. You can use Git as a common repository for scripts produced during software development and other related projects. Known as "version control," Git allows programmers to save iterations of their work and reuse or improve the work of others. - -You're aiming for the ability to keep hold of good ideas for future use. A certain pathway did not work out for specific reasons. However, just because that set of ideas was wrong for the time it was conceived does not mean it can never become helpful in the future. - -As the entire focus of DevOps rests on end-to-end ownership of software in production, saving iterations of developments truly supports this principle. You want to see an improved focus on and commitment to the software testing project at hand. - -A simple way to incorporate this is to request that developers include ideas for future work in the developer contract and final project report. Make sure tech services managers know they should ask for examples of side-branching ideas that cropped up during the build. The more minds aware of these little innovations, the more likely someone will remember one when needed. - -### Sit close together (physically or virtually) - -The goal is to share a common understanding of one another's job roles and how they interrelate. You can achieve this in a few simple ways, summarized by three words: Sit close together. Invite other teams to your meetings and share user feedback reports in their entirety. Have lunch together, plan virtual happy hours together, and generally make sure your colleagues are in close proximity. About 90% of teams with a mature DevOps protocol report a clear understanding of their responsibilities to other teams compared to only about 46% of workers in immature DevOps teams. - -Although it can be tempting to form cliques with like-minded folk and only hang out with staff hired to carry out the same tasks as you, this is terrible for the business as a whole. Whether you like it or not, all humans are multi-faceted and capable of contributing their unique talents to a whole host of scenarios. - -The idea of closer collaboration is to honor the ability of anyone to suggest improvements to the products or work processes going on around them. If you only ever sit at a distance from the other departments within the company, you will miss countless opportunities to share intelligent ideas. After all, you often learn best in the free flow of ideas during a conversation. - -### Commit to automation - -You should be looking to automate mundane and repetitive tasks in the name of efficiency and process acceleration. Every industry has boring–and quite frankly, silly–exercises carried out daily or weekly. - -Whether this is manually copying data from one page to another or typing out audio transcripts by hand, staff at every level should insist that machines take on such burdens where possible. The reality is automation technology advances every single year, and operational processes should, too. [Automation testing][8] is so crucial to DevOps that it is the second principle of the CALMS framework (the "C" of which stands for "culture"). - -How can you make this happen? Invite staff to openly express which aspects of their job they feel could be automated and then–here is the crucial part–support the facilities needed to automate them. That might mean a $600 annual subscription to a software program, a complete enterprise application modernization, or two days of developers' time to build a new tool to use in-house. - -Either way, you should assess the benefits of automation and consider how much time you could save for everyone. DevOps statistics continually indicate just how much better off modern companies are by integrating these beneficial principles year after year. - -### Explore new ways of working successfully - -A culture shift doesn't happen overnight. The sooner you start, though, the sooner you see results. In my experience, people embrace change when it's a genuine improvement on what has gone before. DevOps provides a framework for such improvements. Whether you're just getting started with DevOps in your organization or simply want to improve your existing culture, consider the above points and how they relate to your organization's future. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/tips-effective-devops-culture - -作者:[Yauhen Zaremba][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/yauhen-zaremba -[b]: https://github.com/lkxed -[1]: https://opensource.com/resources/devops -[2]: https://opensource.com/article/22/2/devops-documentation-maturity -[3]: https://opensource.com/sites/default/files/2022-12/devop.png -[4]: https://enterprisersproject.com/user/gene-kim -[5]: https://opensource.com/article/22/7/awesome-ux-cli-application -[6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png -[7]: https://opensource.com/article/22/11/git-concepts -[8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks diff --git a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md new file mode 100644 index 0000000000..8307a8248d --- /dev/null +++ b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -0,0 +1,102 @@ +[#]: subject: "6 tips for building an effective DevOps culture" +[#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" +[#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" +[#]: collector: "lkxed" +[#]: translator: "lxbwolf" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +构建高效的 DevOps 文化的 6 个技巧 +====== + +你为什么要构建 [DevOps][1] 文化?开发和运营团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 + +[DevOps][2] 是一个很广泛的范畴,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事--这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 + +下面每个部分从不同的视角介绍 DevOps 文化,并争取将它引入你的工作中去。 + +![DevOps includes collaboration, workflow, infosec, and iteration.][3] + +### 流程的持续开发 + +DevOps 文化的这一核心原则使它与许多其他类型的工作区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 + +DevOps 文化的核心是不停地创造。实际上,这意味着当测试结果显示事情由于你的改动而变坏时,不要懊恼。我们要认识到,进化的过程不是线性的,通往成功的道路也从来不是一条直线。 + +DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 + +你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程开发意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 + +### 随时提供反馈并积极寻求反馈 + +成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [UX][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 + +这种文化听起来可能是很难培养的;事实上,一些公司会比其他公司更努力地实现这一点。诚然,给予和接受反馈的成功很大程度上取决于员工的个性。在招聘过程中,也可以对此进行筛选。 + +在你期望员工随时向同事提供反馈并主动寻求反馈之前,你应该以身作则。高管应该以身作则,公开要求公司成员对其战略决策提出探究性问题,并提供相应的反馈。 + +![DevOps is the intersection of development, quality assurance, and operations][6] + +### 不断改进 + +在同事之间增加智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 + +这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索,企业还有哪些领域会受到积极的影响。 + +留意培训和提高技能的机会。即使一个培训课程没有广告上说的那么突出,但有机会与行业专家建立联系,并与未来建立联系,这可以提高你的组织内的思想多样性。 + +### 为以后的开发保存当前的想法 + +频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 "版本控制" 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 + +你的目标是有能力保留好的想法供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 + +由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此保存开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 + +一个简单的方法是要求开发者在开发者合同和最终项目报告中包含对未来工作的想法。确保技术服务经理知道他们应该要求提供在建设过程中出现的旁门左道的想法的例子。意识到这些小创新的人越多,在需要的时候就越有可能有人记住一个。 + +### 坐在一起(物理上或逻辑上) + +目标是对彼此的工作角色以及它们之间的相互关系有一个共同的理解。你可以通过几个简单的方法实现这一目标,用一句话概括:坐在一起。邀请其他团队参加你们的会议,完整地分享用户反馈报告。一起吃午饭,一起计划虚拟的快乐时光,一般来说,要确保你的同事都在一起。大约 90% 的拥有成熟的 DevOps 协议的团队报告说,他们清楚地了解自己对其他团队的责任,而在不成熟的 DevOps 团队中,只有大约 46% 的工作者清楚地了解自己的责任。 + +虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工一起玩耍是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 + +密切协作的想法是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 + +### 致力于自动化 + +你应该以提高效率和加速流程的方式,将单调的和重复的任务变为自动化。每个行业都有无聊的--说得直白一点,愚蠢的--每天或每周都要进行的工作。 + +无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C”代表“文化”)。 + +你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后--这里是关键的部分--支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案或开发人员的两天时间来建立一个新的工具在内部使用。 + + +无论哪种方式,你都应该评估自动化的好处,考虑你可以为每个人节省多少时间。DevOps 的统计数据不断表明,现代公司通过整合这些有益的原则,年复一年地得到了很大的改善。 + +### 探索成功的新工作方式 + +文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化是对以前的真正改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/tips-effective-devops-culture + +作者:[Yauhen Zaremba][a] +选题:[lkxed][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/yauhen-zaremba +[b]: https://github.com/lkxed +[1]: https://opensource.com/resources/devops +[2]: https://opensource.com/article/22/2/devops-documentation-maturity +[3]: https://opensource.com/sites/default/files/2022-12/devop.png +[4]: https://enterprisersproject.com/user/gene-kim +[5]: https://opensource.com/article/22/7/awesome-ux-cli-application +[6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png +[7]: https://opensource.com/article/22/11/git-concepts +[8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks From 9258a3e9a8111fc63df95a1719581e41d47dc729 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 17 Jan 2023 08:38:56 +0800 Subject: [PATCH 2583/3123] translated --- ...rs GNOME Extension to help Colorblind Users.md | 106 ------------------ ...rs GNOME Extension to help Colorblind Users.md | 101 +++++++++++++++++ 2 files changed, 101 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md create mode 100644 translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md diff --git a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md deleted file mode 100644 index 6d4c4fe848..0000000000 --- a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Colorblind Filters: GNOME Extension to help Colorblind Users" -[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Colorblind Filters: GNOME Extension to help Colorblind Users -====== - -**A nice GNOME Extension – Colorblind Filters, brings many options for color-blind users.** - -Accessibility is a critical aspect of computing and operating systems. It includes well-managed settings for vision impairment, color blind and many other health symptoms. Popular Linux desktop environments such as GNOME and KDE Plasma feature accessibility settings to help all those scenarios. - -Thanks to the GNOME Extensions ecosystem, a huge number of specialised extensions are available to aid those users. One of the extensions I came across is [“Colorblind Filters”][1]. - -### Colorblind Filters – GNOME Extension - -As per Wikipedia, _“Colour blindness usually involves the inability to distinguish between shades of red and green. There is no treatment for inherited colour blindness. If colour blindness is caused by another condition, treating the underlying cause can help.”_. - -So, it’s important that you have options to tweak settings on your Linux desktop. - -#### Set up extensions and flatpak - -First, make sure you have Flatpak and GNOME Extensions enabled. And the Extensions manager is installed. You may refer to this detailed guide on how to [set up flatpak][2] & enable [GNOME extensions][3], Or run the following commands (for Ubuntu, Linux Mint, etc.) from the terminal. - -``` -sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot -``` - -Fedora users, use the below commands. - -``` -sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot -``` - -Once done, install the Extension Manager: - -``` -flatpak install com.mattjakeman.ExtensionManager -``` - -#### Install the Extension - -Open the extension manager from the application menu. Search for “colorblind”. And install the extension (see the below image). - -![Install the extension][4] - -After installation, you can see a small eye icon on the system tray. You can click on it to enable the pre-defined color filters. - -![Colorblind Filters extension tray icon][5] - -Right-click on the eye icon for more settings. This extension brings all the necessary customizations for colorblind collections, simulations and additional options. The following options are currently available: - -- Protanopia -- Deuteranopia -- Tritanopia - -- Corrections & Simulations (with high contrast) - -- Channel mixer for GBR and BRG -- Lightness inversion -- Color Inversion - -- Additional tweaks - -![Colorblind Filters - options][6] - -Use the one that suits you best for your eye. - -### Wrapping Up - -I think Apple’s macOS and iOS have implemented better accessibility than Windows or Linux. However, Linux Desktops are not far behind with these apps and extensions. Also, there are specialized Linux distributions such as “[Accessible Coconut][7]“, which has been built for specialized needs. - -I hope Colorblind gnome extension helps you with your day-to-day usage of Linux and GNOME desktops. - -Cheers. - -[Next:Top 10 Linux Distributions for Windows Users in 2023][8] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][9] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ - -作者:[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://extensions.gnome.org/extension/5589/colorblind-filters/ -[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ -[3]: https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-extension.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg -[7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/ -[8]: https://www.debugpoint.com/best-linux-distributions-windows/ -[9]: https://floss.social/@debugpoint diff --git a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md new file mode 100644 index 0000000000..1efd79e614 --- /dev/null +++ b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -0,0 +1,101 @@ +[#]: subject: "Colorblind Filters: GNOME Extension to help Colorblind Users" +[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Colorblind Filters:帮助色盲用户的 GNOME 扩展 +====== + +**一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多选项。** + +无障碍是计算和操作系统的一个重要方面。它包括对视力障碍、色盲和许多其他健康症状的管理设置。流行的 Linux 桌面环境,如 GNOME 和 KDE Plasma,具有无障碍设置,以帮助所有这些情况。 + +感谢 GNOME 扩展生态系统,有大量的专门扩展可以帮助这些用户。我遇到的其中一个扩展是[“Colorblind Filters”][1]。 + + +### Colorblind Filters – GNOME 扩展 + +根据维基百科,_"色盲通常涉及无法区分红色和绿色的深浅。遗传性色盲症没有治疗方法。如果色盲是由其他疾病引起的,治疗潜在的原因会有帮助。"_。 + +因此,你有选项来调整你的 Linux 桌面上的设置是很重要的。 + +#### 设置扩展程序和 Flatpak + +首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何[设置 flatpak][2]和启用 [GNOME 扩展][3]的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 + +``` +sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +对于 Fedora 用户,使用以下命令。 + +``` +sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +完成后,安装扩展管理器: + +``` +flatpak install com.mattjakeman.ExtensionManager +``` + +#### 安装扩展 + +从应用菜单中打开扩展管理器。搜索 “colorblind”。并安装该扩展(见下图)。 + +![安装扩展][4] + +安装后,你可以在系统托盘上看到一个小眼睛图标。你可以点击它来启用预定义的颜色过滤器。 + +![Colorblind Filters 扩展托盘图标][5] + +右键点击眼睛图标以获得更多设置。这个扩展带来了色盲收集、模拟和额外选项的所有必要定制。目前有以下选项: + +- 红色盲 +- 绿色盲 +- 蓝黄色盲 + +- 纠正和模拟(具有高对比度) + +- GBR 和 BRG 的通道混合器 +- 亮度反转 +- 颜色反转 + +- 额外的调整 + +![Colorblind Filters - 选项][6] + +使用最适合你的眼睛的那个。 + +### 总结 + +我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如“[Accessible Coconut][7]”,它是为专门的需求而建立的。 + +我希望 Colorblind gnome 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://extensions.gnome.org/extension/5589/colorblind-filters/ +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-extension.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg +[7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/ From a32fcdce9a8a67ee46fd01503fbcfc77340dd71d Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 17 Jan 2023 08:45:28 +0800 Subject: [PATCH 2584/3123] translating --- ...older Between Guest and Host in virt-manager (KVMQemulibvirt).md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md index 64e6ac7831..40e7c4380a 100644 --- a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/share-folder-virt-manager/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5aeca28e2fcc555c378cedf49c24895841e191a7 Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 16 Jan 2023 23:04:38 -0500 Subject: [PATCH 2585/3123] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译进度: - 3. Crystal Linux - 4. TUXEDO OS - 5. EuroLinux - 6. Zinc --- ...️ 11 New Distros to look forward to in 2023.md | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 926981e038..8a82219f54 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -64,31 +64,29 @@ Arch Linux 的 **'养眼' 版本** 提供了令人愉快的开箱即用体验和 ![crystal linux][10] -Crystal Linux is an upcoming Arch-based distro that wants to **provide an easy-to-use desktop experience coupled with modern Linux technologies**. +Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提供一个易于使用的桌面体验,以及现代 Linux 技术**。 -In its current form, it may not be welcoming to newcomers, and people with experience using Linux are likelier to like it. +在目前的状态下,它可能不适合新手,而具有 Linux 使用经验的人更有可能喜欢它。 -So, for now, I would suggest users who are already familiar with Linux give Crystal Linux a try. +所以,就目前而言,我建议已经熟悉 Linux 的用户尝试一下 Crystal Linux。 -I expect Crystal Linux to have a stable release sometime in 2023 with many features and improvements over the [beta version][11] that is available right now. +我预计 Crystal Linux 将在 2023 年有一个稳定版本,该版本将具有许多功能和改进,而这些功能和改进都是基于目前可用的 [beta 版本][12]。 [Crystal Linux][12] -#### Recommended Read 📖 - ### 4. TUXEDO OS ![tuxedo os][13] -[TUXEDO OS][14] is an Ubuntu-based offering from TUXEDO Computers, a Linux-focused hardware manufacturer. +[TUXEDO OS][14] 是一个由 TUXEDO Computers(一个专注 Linux 的硬件制造商)提供的基于 Ubuntu 的发行版。 -It features the KDE Plasma desktop environment with extras like **TUXEDO Control Center** to fine-tune your hardware and **TUXEDO Tomte**, a configuration service for resolving driver/missing package issues. +它提供了 KDE Plasma 桌面环境,还有一些额外的功能,例如 **TUXEDO Control Center** 用于微调硬件,以及 **TUXEDO Tomte**,一个用于解决驱动程序与缺少软件包的问题的配置服务。 -I suggest you try this if you want a **different KDE-powered experience**. +如果你想要一个**不同的 KDE 驱动的体验**,我建议你尝试一下。 -Initially, it was only made available as a pre-installed operating system on TUXEDO laptops and computers. +最开始,它仅仅被用作 TUXEDO 笔记本和台式电脑的预装系统提供。 -But later, it received a general use release back in September 2022 dubbed as 'TUXEDO OS 1'. It is set to receive plenty of updates in 2023. +但是后来,它在 2022 年 9 月收到了一个通用版本,称为“TUXEDO OS 1”。它将在 2023 年收到许多更新。 [TUXEDO OS][15] @@ -96,15 +94,15 @@ But later, it received a general use release back in September 2022 dubbed as 'T ![euro linux][16] -An RHEL-based distro with **enterprise perks** is what [EuroLinux][17] is. It provides stability and security in a solid package. +一个具有**企业级特性**的,基于 RHEL 的发行版就是 [EuroLinux][17]。它在一个可靠的包中提供了稳定性和安全性。 -Based on **RHEL 9**, it can provide seamless compatibility with other [RHEL-based server distros][18] such as Rocky Linux, CentOS, AlmaLinux, and more. +基于 **RHEL 9**,它可以提供与其他 [基于 RHEL 的服务器发行版][18](如 Rocky Linux,CentOS,AlmaLinux 等)的无缝兼容性。 -It aims to lure in Windows and macOS users with a familiar user interface layout with its implementation of a translucent dock at the bottom of the screen. +它旨在通过在屏幕底部实现半透明菜单栏,以熟悉的用户界面布局吸引 Windows 和 macOS 用户。 -You should try this because the overall package is quite adequate and can cater to both Linux and Windows/macOS users. +你应该尝试一下,因为整体包都很合适,可以同时满足 Linux 和 Windows/macOS 用户。 -It is now available as stable release, with updates planned for 2023. +它现在已经发布了稳定版本,也在 2023 年有更新计划。 [EuroLinux Desktop][19] @@ -112,13 +110,13 @@ It is now available as stable release, with updates planned for 2023. ![zinc][20] -[Zinc][21] is an **Ubuntu-based distro** that has been tweaked to provide a unique experience. Existing Ubuntu users may be surprised to see what it has to offer. +[Zinc][21] 是一个 **基于 Ubuntu 的发行版**,它已经为提供独特的体验进行了调整。现有的 Ubuntu 用户可能会惊讶于它所提供的内容。 -Based on the latest LTS release of **Xubuntu**, it uses the XFCE desktop environment with numerous improvements, such as integrated Linux AppImage support, deb-get package installer, BTRFS as the default file system, and more. +基于 **Xubuntu** 的最新 LTS 版本,使用了 XFCE 桌面环境,并对其进行了许多改进,例如集成的 Linux AppImage 支持,deb-get 包安装程序,BTRFS 作为默认文件系统等。 -This distro can be a viable alternative to replace your daily driver, provided it is set up correctly. +如果你正确的配置了它,它可以成为你的日用操作系统的替代品。 -It follows a stable release model, so you can expect significant updates in 2023! +它遵循稳定的发布模式,因此您可以期待 2023 年的重大更新! [Zinc][21] From ebba78ff85ef27a596d9231d8b5b528ef559f210 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 17 Jan 2023 12:42:00 +0800 Subject: [PATCH 2586/3123] ATRP @wxy https://linux.cn/article-15452-1.html --- ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 +++++++++++++++++++ ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 ------------------- 2 files changed, 77 insertions(+), 77 deletions(-) create mode 100644 published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md delete mode 100644 sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md diff --git a/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md new file mode 100644 index 0000000000..7010eef3a9 --- /dev/null +++ b/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md @@ -0,0 +1,77 @@ +[#]: subject: "Linux is All Set to Disable Microsoft's RNDIS Drivers" +[#]: via: "https://news.itsfoss.com/linux-disable-microsoft-rndis/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15452-1.html" + +Linux 已准备好禁用微软的 RNDIS 驱动程序,但是…… +====== + +> Linux 内核将不再支持 RNDIS 驱动程序。这是一个好的举措吗?这对你意味着什么?在这里了解一下。 + +![Linux 已经准备好禁用微软的 RNDIS 驱动程序][1] + +微软的 RNDIS 协议(即 远程网络驱动接口规范Remote Network Driver Interface Specification 的简称),是一个专有的 USB 协议,用于计算机上的虚拟以太网功能。 + +这方面最常见的使用情况是通过连接到电脑上的 USB,使用手机的移动网络连接互联网,也称为 [系连][2]Tethering。 + +尽管它主要在 Windows 上工作,但它成为 Linux 内核的一部分已经有一段时间了。 + +但这种情况很快就会改变。 + +### 向 RNDIS 协议说再见? + +![][3] + +**发生了什么?** 周一,[Greg Kroah-Hartman][4] 创建了 [usb.git rndis-removal][5] 分支,其中他提到禁用 Linux 上所有 RNDIS 协议驱动程序的实现。 + +在该提交中他提到: + +> 微软的 RNDIS 协议按照设计是不安全的,在任何连接不信任的主机或设备的系统上使用它都是脆弱的。因为该协议不可能变得安全,所以只要禁用所有的 RNDIS 驱动,就可以防止任何人再使用它们。Windows 只在 XP 和更新一些的系统中需要用它,比这更早的 Windows 系统可以使用正常的 USB 类协议来代替,没有这些问题。 + +正如最初由 [Phoronix][6] 报道的那样,一旦这个协议在 Kconfig 选项中被标记为 “损坏”,它将再保留一段时间,最终从内核中删除。 + +但是**为什么呢?** + +众所周知,RNDIS 在 Windows 之外的平台上的实现是一团糟,并带来了相当多的安全风险。此外,RNDIS 并不像以前那样广泛使用了,它带来的安全风险可能是作出这一决定的主要原因之一。 + +**这对目前的用户有影响吗?你应该担心吗?** + +如果我们看一下对这一即将到来的变化的 [Reddit 讨论][7],我们会发现许多用户仍然很担心**这是否会破坏大家的 USB 连接**。 + +考虑到许多安卓手机仍然使用 RNDIS 而不是 CDC NCM(一种较新的协议),用户似乎对这一举措感到困惑 😕;不只是用户,一位 [谷歌的内核网络开发人员][8] 也提出了这个议题,但我们还没有看到对此的回应。 + +**但不是每个人都使用主线 Linux 内核?如果你不想受到这种变化的影响,你是否应该坚持使用 LTS 版本的内核?** + +此外,用户希望更清楚地了解这是否会影响到所有人。 + +但是,从目前来看,Greg 可能并没有给出更多的细节来说服一些相关用户。 + +🤔 当然,我们不是 Linux 内核维护者。所以,最好等这个提交通过时,我希望 Linux 内核维护者能比我们知道更多的信息。 + +💭 你对这个计划中的 Linux 内核的变化有什么看法?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-disable-microsoft-rndis/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/linux-to-disable-ms-network-drivers.png +[2]: https://en.wikipedia.org/wiki/Tethering +[3]: https://news.itsfoss.com/content/images/2023/01/kernel-patch-rndis.jpg +[4]: https://twitter.com/gregkh +[5]: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=rndis-removal&id=5eb127bb9741c1480aff95ffa4e1bd4cd9b5b16d +[6]: https://www.phoronix.com/news/Linux-Disabling-RNDIS-Drivers +[7]: https://www.reddit.com/r/linux/comments/108avzx/linux_preparing_to_disable_drivers_for_microsofts/ +[8]: https://lkml.org/lkml/2022/11/23/1502 diff --git a/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md deleted file mode 100644 index da2e06cc21..0000000000 --- a/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md +++ /dev/null @@ -1,77 +0,0 @@ -[#]: subject: "Linux is All Set to Disable Microsoft's RNDIS Drivers" -[#]: via: "https://news.itsfoss.com/linux-disable-microsoft-rndis/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Linux is All Set to Disable Microsoft's RNDIS Drivers -====== - -The Linux Kernel will no longer support RNDIS drivers. A good move? What does this mean for you? Find out here. - -![Linux is All Set to Disable Microsoft's RNDIS Drivers][1] - -Microsoft's RNDIS protocol, short for Remote Network Driver Interface Specification, is a proprietary USB protocol for virtual Ethernet functionality on computers. - -The most common use case of this would be using your phone's mobile network to connect to the internet on your computer via USB, also known as [Tethering][2]. - -Even though it mainly works on Windows, it has been part of the Linux kernel for a while now. - -But that is set to change soon. - -### Say Goodbye to RNDIS Protocol? - -![][3] - -**What is happening?:** On Monday, [Greg Kroah-Hartman][4] created the [usb.git rndis-removal][5] branch, where he mentions disabling the implementation of all RNDIS protocol drivers on Linux. - -With the commit, he mentions: - -> The Microsoft RNDIS protocol is, as designed, insecure and vulnerable onany system that uses it with untrusted hosts or devices. Because theprotocol is impossible to make secure, just disable all rndis drivers toprevent anyone from using them again.Windows only needed this for XP and newer systems, Windows systems older than that can use the normal USB class protocols instead, which do not have these problems.Android has had this disabled for many years so there should not be anyreal systems that still need this. - -As initially reported by [Phoronix][6], once this protocol is marked 'BROKEN' in the Kconfig option, it will stay there for a while and ultimately be removed from the kernel. - -But **why?** - -The implementation of RNDIS is known to be a mess on platforms apart from Windows and poses quite a few security risks. In addition, RNDIS is not being used as widely as before, and the security risks it presents might be one of the main reasons for this decision. - -**Does this have an impact on current users? Should you be worried?** - -If we look at a [Reddit thread][7] discussing this upcoming change, we would see that many users remain curious **if this would break USB tethering for everyone.** - -Users seem confused about this move, considering many Android phones still use RNDIS instead of CDC NCM (a newer protocol) 😕 Not just users; a [Kernel Networking Developer at Google][8] also flagged this issue, but we do not see a response to that yet. - -**But not everyone uses mainline Linux Kernel? Should you stick to an LTS version of the kernel if you do not want to be impacted by this change?** - -Furthermore, users wanted more clarity on how this does not impact everyone. - -But, as of now, **Greg** may not have mentioned a lot of details to convince some of the concerned users. - -🤔 Of course, we aren't Linux Kernel maintainers. So, it is best to wait until this commit gets through, and I hope that the Linux Kernel maintainers shed more light on it than we already know. - -💭 _What are your thoughts on this planned change for the Linux Kernel? Share your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-disable-microsoft-rndis/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/linux-to-disable-ms-network-drivers.png -[2]: https://en.wikipedia.org/wiki/Tethering -[3]: https://news.itsfoss.com/content/images/2023/01/kernel-patch-rndis.jpg -[4]: https://twitter.com/gregkh -[5]: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=rndis-removal&id=5eb127bb9741c1480aff95ffa4e1bd4cd9b5b16d -[6]: https://www.phoronix.com/news/Linux-Disabling-RNDIS-Drivers -[7]: https://www.reddit.com/r/linux/comments/108avzx/linux_preparing_to_disable_drivers_for_microsofts/ -[8]: https://lkml.org/lkml/2022/11/23/1502 From 604ebf689924e5fd439f59db7ec17528a7cb4b37 Mon Sep 17 00:00:00 2001 From: Cubik Date: Tue, 17 Jan 2023 00:10:55 -0500 Subject: [PATCH 2587/3123] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译进度: - 7. CachyOS --- ...22.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 8a82219f54..4fdfa8508a 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -124,13 +124,13 @@ Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提 ![cachyos][22] -[CachyOS][23] tries to make **Arch Linux a beginner-friendly affair** that anyone can use. It is popular because of its high level of customizability and also because it has the newest software. +[CachyOS][23] 尝试使 **Arch Linux 变得对初学者更加友好**,让任何人都可以使用。它很受欢迎,因为它具有高度的可定制性,而且还拥有最新的软件。 -It aims to provide you with a fast and secure operating system that is easy to use. +它旨在为您提供一个快速、安全且易于使用的操作系统。 -This OS is for users who want to experiment and try something new. +该操作系统适用于想要试验和尝试新事物的用户。 -CachyOS is a rolling-release distro, so you can expect it to receive a ton of updates in 2023. +CachyOS 是一个滚动发布的发行版,因此您可以期待它在 2023 年收到大量更新。 [CachyOS][23] From 9fc33908c3f3237ed5f08fead69286f7a3fa88ec Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 18 Jan 2023 08:57:02 +0800 Subject: [PATCH 2588/3123] translated --- ...ok Offline English Dictionary App for GNOME.md | 73 ------------------- ...ok Offline English Dictionary App for GNOME.md | 69 ++++++++++++++++++ 2 files changed, 69 insertions(+), 73 deletions(-) delete mode 100644 sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md create mode 100644 translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md diff --git a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md deleted file mode 100644 index da0f0fbe1f..0000000000 --- a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md +++ /dev/null @@ -1,73 +0,0 @@ -[#]: subject: "Wordbook: Offline English Dictionary App for GNOME" -[#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Wordbook: Offline English Dictionary App for GNOME -====== - -**Meet Wordbook – an offline dictionary application for the GNOME desktop.** - -We mostly search Google, DDG or any search engine online for word information such as meaning, synonyms, antonyms etc. - -Since almost everyone today has an internet-connected mobile phone, it’s probably easier to search on Google. - -But for offline usage, you may try [Wordbook][1] when no internet connection is available. - -### Wordbook: Offline dictionary app - -The app is very basic in nature. But does its job with its capacity. Wordbook currently supports an English-to-English dictionary. At its core, it uses the [Open English WordNet database][2] for definitions. The Open English Wordnet is an open-source fork of the [Princeton Wordnet project][3]. - -The Wordbook app can also pronounce words using [eSpeak][4] – a free and open-source speech synthesizer. - -![Wordbook - English to English Dictionary App][5] - -However, during the first run, it requires one-time internet access to download offline data. And that’s about it. Other notable feature includes live search, double-click search and custom definitions with HTML markup. - -Wordbook is a [GNOME app][6], built using the modern GTK4 and libadwaita. Hence integrates well with the GNOME desktop with light and dark themes. You can also use Wordbook’s random word feature to learn new words to increase your vocabulary. - -### Installation - -You can easily install it as a Flatpak app from Flathub. Set up your system for Flatpak & Flathub and then install it using the below command from the terminal: - -``` -flatpak install com.github.fushinari.Wordbook -``` - -After installation, you can find it on the application menu. - -### Close notes - -I hope you use this tiny app for your school or business work. The offline nature is handy if you are writing essays and longer paragraphs. - -Do you know any other offline dictionary for Linux? Let us know in the comment box. - -[Next:Install Ubuntu on Windows Using VirtualBox [Complete Guide]][7] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][8] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/wordbook-offline-dictionary/ - -作者:[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://github.com/fushinari/Wordbook -[2]: https://github.com/globalwordnet/english-wordnet -[3]: https://wordnet.princeton.edu/ -[4]: https://espeak.sourceforge.net/ -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Wordbook-English-to-English-Dictionary-App.jpg -[6]: https://www.debugpoint.com/tag/gnome-app -[7]: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ -[8]: https://floss.social/@debugpoint diff --git a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md new file mode 100644 index 0000000000..830e1e4b65 --- /dev/null +++ b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -0,0 +1,69 @@ +[#]: subject: "Wordbook: Offline English Dictionary App for GNOME" +[#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordbook:适用于 GNOME 的离线英语词典应用 +====== + +**遇见 Wordbook – 一个 GNOME 桌面的离线词典应用。** + +我们大多在谷歌、DDG 或其他搜索引擎上搜索单词信息,如含义、同义词、反义词等。 + +由于今天几乎每个人都有一个连接互联网的手机,在谷歌上搜索可能更容易。 + +但对于离线使用,在没有互联网连接的情况下,你可以尝试 [Wordbook][1]。 + +### Wordbook:离线词典应用 + +这个应用在本质上是非常基本的。但以它的能力完成了它的工作。Wordbook 目前支持一个英译英字典。在其核心部分,它使用 [Open English WordNet 数据库][2]进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源分叉。 + +Wordbook 应用还可以使用 [eSpeak][4] – 一个免费和开源的语音合成器来发音。 + +![Wordbook - 英译英词典应用][5] + +然而,在第一次运行时,它需要一次性上网,以下载离线数据。就这些了。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 + +Wordbook是一个 [GNOME 应用][6],使用现代 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 + +### 安装 + +你可以很容易地从 Flathub 将其作为 Flatpak 应用安装。为 Flatpak 和 Flathub 设置你的系统,然后从终端使用以下命令安装它: + +``` +flatpak install com.github.fushinari.Wordbook +``` + +安装后,你可以在应用菜单中找到它。 + +### 结束语 + +我希望你在学校或商业工作中使用这个小小的应用。如果你在写论文和较长的段落,离线特性是很方便的。 + +你知道其他Linux的离线字典吗?请在评论栏里告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wordbook-offline-dictionary/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://github.com/fushinari/Wordbook +[2]: https://github.com/globalwordnet/english-wordnet +[3]: https://wordnet.princeton.edu/ +[4]: https://espeak.sourceforge.net/ +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Wordbook-English-to-English-Dictionary-App.jpg +[6]: https://www.debugpoint.com/tag/gnome-app +[7]: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ +[8]: https://floss.social/@debugpoint \ No newline at end of file From 030c1de8847cb979ecc75f141233aedd0dd40915 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 18 Jan 2023 09:01:12 +0800 Subject: [PATCH 2589/3123] translating --- ....0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md index 18a3b824f8..cc06a6ceef 100644 --- a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md +++ b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-python-windows/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d1d3fe2714855c10569df3a126b3eda36871c189 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 18 Jan 2023 10:18:19 +0800 Subject: [PATCH 2590/3123] RP @geekpi https://linux.cn/article-15454-1.html --- ... File Viewer for Linux Desktops and Servers.md | 63 ++++++++++--------- 1 file changed, 32 insertions(+), 31 deletions(-) rename {translated/tech => published}/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md (52%) diff --git a/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md similarity index 52% rename from translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md rename to published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md index 63c5016609..60b7b2ba8a 100644 --- a/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md +++ b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md @@ -3,24 +3,26 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15454-1.html" -lnav: 用于 Linux 台式机和服务器的高级日志文件浏览器 +lnav: 用于 Linux 的高级日志文件浏览器 ====== -**如果你想调试或排除任何问题,你需要一个像 lnav这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。** +![][0] + +> 如果你想调试或排除任何问题,你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。 ### lnav: 日志文件查看器 -lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 +`lnav` 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 -在分析日志的时候,时间戳是非常重要的。所以 lnav 根据时间戳合并多个日志,这对追踪系统问题很有帮助。 +在分析日志的时候,时间戳是非常重要的。所以 `lnav` 会根据时间戳合并多个日志,这对追踪系统问题很有帮助。 -大多数重要的日志文件格式检测都是内置的,如下: +大多数重要的日志文件格式检测都是内置的,包括如下: -- 常见的网络访问日志格式 +- 通用网络访问日志Common Web Access Log格式 - CUPS page_log - Syslog - Glog @@ -30,21 +32,21 @@ lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一 - “通用”:任何以时间戳开头的信息 - Strace - sudo -- GZIP, BZIP +- GZIP、BZIP -这还不是全部,lnav 还能实现以下功能,使其成为 Linux 系统的重要应用。 +这还不是全部,`lnav` 还能实现以下功能,使其成为 Linux 系统的重要应用: - 根据正则表达式过滤消息 -- 错误的时间轴视图 +- 错误日志的时间轴视图 - 漂亮的打印视图,这有助于重新格式化 - 使用 SQL 查询日志 -- 在搜索时,日志会实时更新。 +- 在搜索时,日志会实时更新 - 通过正则表达式高亮显示语法(比如你想在整个日志中找出一个 IP 地址) - 显示的日志中任何单词的 Tab 补全!! ![lnav 在 ubuntu 中运行][1] -要查看上述功能的截图和了解更多信息,请访问[本页面][2] 。 +要查看上述功能的截图和了解更多信息,请访问 [本页面][2] 。 ### 如何安装 @@ -60,7 +62,7 @@ sudo apt install lnav sudo dnf install lnav ``` -另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3]下载压缩包,然后按以下方式执行: +另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3] 下载压缩包,然后按以下方式执行: ``` ./lnav @@ -76,7 +78,7 @@ sudo dnf install lnav lnav [options] [logfile1 logfile2 …] ``` -如果你只运行 lnav 命令,它会显示你系统中的所有日志(/var/log/messages 和 /var/log/syslog) +如果你直接运行 `lnav` 命令,它会显示你系统中的所有日志(`/var/log/messages` 和 `/var/log/syslog`) ``` lnav @@ -88,28 +90,26 @@ lnav lnav /var/log/syslog ``` -使用 -t 参数在你的日志输出中添加时间戳: +使用 `-t` 参数在你的日志输出中添加时间戳: ``` lnav -t /var/log/syslog ``` -以下是 lnav 的一些关键开关: +以下是 `lnav` 的一些关键开关: -``` --d file 将调试信息写入给定的文件。 --a 加载所有最新的日志文件类型。 --r 也加载较早的旋转日志文件。 --t 在标准输入中读入的数据行上预加时间戳。 --w file 将标准输入的内容写入该文件。 --c cmd 在文件加载后执行命令。 --f path 执行给定文件中的命令。 --n 不使用 curses UI 运行(无头模式)。 -``` +- `-d file`:将调试信息写入给定的文件。 +- `-a`:加载所有最新的日志文件类型。 +- `-r`:也加载较早的轮转的日志文件。 +- `-t`:在标准输入中读入的数据行上预加时间戳。 +- `-w file`:将标准输入的内容写入该文件。 +- `-c cmd`:在文件加载后执行命令。 +- `-f path`:执行给定文件中的命令。 +- `-n`:不使用 curses UI 运行(无头模式)。 ![lnav 在 Ubuntu 22.04 中运行][4] -要进一步阅读和探索,请访问[官方文档][5]。 +要进一步阅读和探索,请访问 [官方文档][5]。 -------------------------------------------------------------------------------- @@ -118,7 +118,7 @@ via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ 作者:[Arindam][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/) 荣誉推出 @@ -128,4 +128,5 @@ via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ [2]: http://lnav.org/features/ [3]: https://github.com/tstack/lnav/releases/ [4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg -[5]: https://docs.lnav.org/en/latest/intro.html \ No newline at end of file +[5]: https://docs.lnav.org/en/latest/intro.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/101616eio2v80m1v34ol2o.jpg \ No newline at end of file From 5b2fcde48590bd84d8cd1d71b0c32b0b7c8f1719 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 18 Jan 2023 16:05:18 +0800 Subject: [PATCH 2591/3123] ATRP @wxy https://linux.cn/article-15455-1.html --- ... Try If You are Not a Total Terminal Junkie.md | 143 ++++++++++++++++++ ... Try If You are Not a Total Terminal Junkie.md | 139 ----------------- 2 files changed, 143 insertions(+), 139 deletions(-) create mode 100644 published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md delete mode 100644 sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md diff --git a/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md new file mode 100644 index 0000000000..1c79bdf475 --- /dev/null +++ b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md @@ -0,0 +1,143 @@ +[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" +[#]: via: "https://itsfoss.com/neovim-gui-editors/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15455-1.html" + +你可以尝试的 5 个 NeoVim GUI 编辑器 +====== + +![][0] + +Vim 很不错,但 NeoVim 更新一些,甚至更棒。Vim 和 NeoVim 都是基于终端的文本编辑器,具有类似的功能。 + +如果你是一个习惯于使用 [像 VS Code 这样的 GUI 文本编辑器][1] 的人,并且希望拥有 NeoVim 提供的类似功能,你应该了解一下这些 GUI 编辑器。 + +虽然我知道你可以把 NeoVim 作为你目前的文本编辑器的插件,但直接使用 NeoVim 工作要比管理插件更有效和方便。 + +在选择 NeoVim 的 GUI 时,有一些不同的选择,我把一些最好的 GUI 列在下面: + +### 1、Neovide + +![neovide][2] + +主要特点: + +- 动画光标 +- 平滑滚动 +- 动画窗口 +- 模糊的浮动窗口 +- 支持表情符号 + +[Neovide][3] 旨在成为一个简单的 NeoVim GUI。 + +虽然你不会看到很多图形元素,它只是增加了一些诸如动画之类的 GUI 功能。它使用了一个叫 Skulpin 的库来渲染动画。 + +而我在使用 Neovide 时最喜欢的地方是它拥有一个动画光标和平滑滚动。你看一看这个就明白了: + +![][3a] + +看起来很酷。对吗? + +### 2、Neovim Qt + +![neovim Qt][4] + +主要特点: + +- 悬停功能 +- 多个 GUI 标签 +- 自动制表符补完 +- 跨平台支持 + +顾名思义,[Neovim Qt][5] 是用 Qt5 库构建的,你会经常看到它在 KDE 中使用。它没有太多花哨的东西,只是增加了一些额外的 GUI 功能,如多个标签,自动制表符补完等。 + +因此,如果你已经在使用 Qt5 库,并希望为 NeoVim 提供一个精简的 GUI,它将工作的很好,并为你省去一些依赖安装。 + +推荐: + +> **[Vim vs Nano:你应该选择哪个?][6]** + +### 3、Uivonim + +![uivonim][7] + +主要特点: + +- WebGL GPU 渲染和多线程 +- 支持 VSCode 扩展 +- Nyancat(经典猫咪动画的 ANSI 文本程序) +- 悬停和代码动作 + +[Uivonim][8] 是 Veonim(一个建立在 VSCode 插件和 NeoVim 上的简单 IDE)的复刻版,采用 Electron 框架编写,如果你从 VSCode 转换过来,它是一个完美的选择。 + +而 Uivonim 的唯一目标是提供丰富的 NeoVim 体验,支持 NeoVim 的最新功能,包括浮动窗口、内置 LSP 等等。你不需要依赖 VSCode 扩展来获得这些功能。 + +### 4、FVim + +![fvim][9] + +主要特点: + +- 脱离窗口(使用 `Ctrl+w`,`GE`) +- 自定义弹出式菜单条目图标 +- 支持 HiDPI +- GPU 加速 + +[FVim][10] 是一个用 F# + Avalonia 构建的 NeoVim 的跨平台 GUI,带有一些突破性的功能,如高性能渲染(在 4K 显示器上支持 60FPS)。 + +而我经常使用脱离窗口的功能,因为我更喜欢为不同的文本文件设置独立的窗口。另外,如果你是一个资深的远程用户,FVim 也不会让你失望。 + +### 5、Goneovim + +![goneovim][11] + +主要特点: + +- 支持一个带有 Bash 和 Zsh 的终端 +- 迷你地图 +- 动画光标 +- HiDPI 缩放 +- 外部浮动窗口 + +顾名思义,[Goneovim][12] 是用 Go 语言编写的,是 Gonvim 的一个复刻品。它提供了足够的 GUI 功能来完成你的工作,如动画光标、像素级滚动等。 + +而且它在让你获得基本的文本编辑功能方面也并不差,比如对文本文件的拖放支持。 + +### 总结 + +这是我对 NeoVim 的图形用户界面的一些好的选择,我希望你能找到你想要的东西。 + +如果我错过了任何你喜欢的东西,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/neovim-gui-editors/ + +作者:[Sagar Sharma][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://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ +[2]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.png +[3]: https://neovide.dev/index.html +[3a]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.gif +[4]: https://itsfoss.com/content/images/wordpress/2022/11/neovim-qt.png +[5]: https://github.com/equalsraf/neovim-qt +[6]: https://itsfoss.com/vim-vs-nano/ +[7]: https://itsfoss.com/content/images/wordpress/2022/11/uivonim.png +[8]: https://github.com/smolck/uivonim +[9]: https://itsfoss.com/content/images/wordpress/2022/11/fvim-1.png +[10]: https://github.com/yatli/fvim +[11]: https://itsfoss.com/content/images/wordpress/2022/11/goneovim-1.png +[12]: https://github.com/akiyosi/goneovim +[13]: https://itsfoss.com/install-latest-vim-ubuntu/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/160357g9mrmohow8wm68iw.jpg \ No newline at end of file diff --git a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md deleted file mode 100644 index e8fcabb8c0..0000000000 --- a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" -[#]: via: "https://itsfoss.com/neovim-gui-editors/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie -====== - -Vim is awesome. NeoVim is newer and even more awesome. Both Vim and NeoVim are terminal-based text editors with similar features. - -If you are someone who is accustomed to using [GUI text editors like VS Code][1] and wish to have the similar functionality that NeoVim provides, you should explore GUI options. - -Although I know you can use NeoVim as an add-on for your current text editor, working directly with NeoVim is much more effective and convenient for managing plugins. - -There are a few different options available when choosing a NeoVim GUI, and I have put together a list of some of the best ones below. - -### 1. Neovide - -![neovide][2] - -**Key Features:** - -- Animated cursor -- Smooth scrolling -- Animated windows -- Blurred floating windows -- Emoji support - -[Neovide][3] aims to be a no-nonsense graphical user interface for NeoVim. - -While you won’t see many graphical elements, it only adds some GUI features, such as animations, using a library called Skulpin to render animations. - -And my favorite part of using Neovide is having an animated cursor and smooth scrolling. I mean, have a look at this: - -Looks cool. Right? - -### 2. Neovim Qt - -![neovim qt][4] - -**Key Features:** - -- Hover features -- Multiple GUI tabs -- Auto tab completion -- Cross-platform support - -As the name suggests, [Neovim Qt][5] is built with the Qt5 library, which you’ll often see being used by KDE. Nothing too fancy, adds some additional GUI features like multiple tabs, auto-tab completion, and more. - -So if you are already using Qt5 libraries and want a minimal GUI for NeoVim, this would work like a charm and save you some dependencies. - -**Recommended:**[Vim vs Nano: What Should You Choose?][6] - -### 3. Uivonim - -![uivonim][7] - -**Key Features:** - -- WebGL GPU rendering and multithreading -- Support for VSCode extensions -- Nyancat (ANSI-text program for classic cat animation) -- Hover and code actions - -[Uivonim][8] is a fork of Veonim (A simple IDE built on VSCode plugins and NeoVim) written in electron, making it the perfect choice if you switch from VSCode. - -And the only goal of uivonim is to provide a rich NeoVim experience that supports the latest features of NeoVim, including floating windows, built-in LSP, and more. You do not need to rely on VSCode extensions to get these features. - -[Uivonim][8] - -### 4. FVim - -![fvim][9] - -**Key Features:** - -- Detach windows (using `Ctrl+w and GE`). -- Custom popup menu entry icons. -- HiDPI support. -- GPU acceleration. - -[FVim][10] is a cross-platform GUI for NeoVim built with F# + Avalonia that comes with some groundbreaking features such as high-performance rendering (60FPS on 4K display). - -And I often use the detach window feature as I prefer to have separate windows for different text files. Also, if you are an advanced remote user, FVim won’t let you down either. - -### 5. Goneovim - -![goneovim][11] - -**Key Features:** - -- Support for a terminal with bash and zsh -- Minimap -- Animated cursor -- High DPI scaling -- External float window - -As its name suggests, [Goneovim][12] is written in GO and is a fork of Gonvim. And offers enough GUI features to get your job done such as an animated cursor, pixel scrolling, and more. - -And it does not compromise on getting you basic text editing features, such as drag-and-drop support for text files. - -**Useful Read**: [How to Install Latest Vim on Ubuntu Linux][13] - -### Wrapping Up - -This was my take on what are some good options when it comes to GUI for NeoVim and I hope you found what you were looking for. - -If I missed any of your favorites, let me know your thoughts in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/neovim-gui-editors/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/neovide.png -[3]: https://neovide.dev/index.html -[4]: https://itsfoss.com/wp-content/uploads/2022/11/neovim-qt.png -[5]: https://github.com/equalsraf/neovim-qt -[6]: https://itsfoss.com/vim-vs-nano/ -[7]: https://itsfoss.com/wp-content/uploads/2022/11/uivonim.png -[8]: https://github.com/smolck/uivonim -[9]: https://itsfoss.com/wp-content/uploads/2022/11/fvim-1.png -[10]: https://github.com/yatli/fvim -[11]: https://itsfoss.com/wp-content/uploads/2022/11/goneovim-1.png -[12]: https://github.com/akiyosi/goneovim -[13]: https://itsfoss.com/install-latest-vim-ubuntu/ From 1e4c7a198b0913f6eb8cac3354200c50f8cc9862 Mon Sep 17 00:00:00 2001 From: Tingze-G <119109831+Tingze-G@users.noreply.github.com> Date: Wed, 18 Jan 2023 20:47:36 +0800 Subject: [PATCH 2592/3123] =?UTF-8?q?Update=20and=20rename=20sources/tech/?= =?UTF-8?q?20221123.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20apt=20remov?= =?UTF-8?q?e=20vs=20apt=20purge=20What=E2=80=99s=20the=20Difference.md=20t?= =?UTF-8?q?o=20translated/tech/20221123.0=20=E2=AD=90=EF=B8=8F=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20apt=20remove=20vs=20apt=20purge=20What=E2=80=99s=20?= =?UTF-8?q?the=20Difference.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- ... apt remove vs apt purge What’s the Difference.md | 121 ----------------- ... apt remove vs apt purge What’s the Difference.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 121 deletions(-) delete mode 100644 sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md create mode 100644 translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md diff --git a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md deleted file mode 100644 index 7eb690888a..0000000000 --- a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ /dev/null @@ -1,121 +0,0 @@ -[#]: subject: "apt remove vs apt purge: What’s the Difference?" -[#]: via: "https://itsfoss.com/apt-remove/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "Tngze-G" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -apt remove vs apt purge: What’s the Difference? -====== - -To [uninstall an application in the Ubuntu terminal][1], you can use: - -``` -sudo apt remove package_name -``` - -But in various forums, you may come across the suggestion to use the apt purge command for removing applications completely. - -This leaves you confused because using apt purge is quite similar to apt remove: - -``` -sudo apt purge package_name -``` - -So, why are there two similar commands for removing packages? What’s the difference between the two? Let me explain it to you with a few examples. - -### What’s the difference between apt-remove and apt-purge? - -Both apt-remove and apt-purge do the same thing and that is to uninstall a package. The apt-purge removes the package and purges any configuration files associated with it. That’s the only difference between the two. Neither command touches the application files under the home directory of the user. - -Have you ever removed an application and installed it again, only to notice that all your settings are in place? It’s because the apt remove command doesn’t remove the configuration files. - -#### See what’s being removed and what remains - -Let me share a practical example of removing the mplayer application using both apt remove and apt purge commands. The focus is on seeing what files remain after each operation. - -Here are the files associated with mplayer before removal. - -![mplayer before removal][2] - -Now, if I run the apt remove command. - -![apt uninstall package ubuntu][3] - -Here are the files that remain in the system: - -![files after mplayer removal][4] - -As you can see, there are mplayer files remaining in two locations: /etc and /home/abhishek. - -Now, if I install mplayer again and use apt purge to remove mplayer application this time. - -![apt purge command][5] - -Let’s look for files associated mplayer now. - -![files after mplayer removal][6] - -As you can see, the files from /etc directory no longer exists. - -But what about the files in the home directory? Should apt purge not remove it? - -The answer is negative. The apt commands do not touch the configuration files located under the home directory. They remain in the system unless you manually remove them. Those files are really small in size and hardly take disk space. - -Do note that not all applications create configuration files under /etc or home directory. - -#### The effect of using apt remove or apt purge - -A practical example I can think of is Discord. You [install Discord on Ubuntu][7] with deb file. Start using it by logging into your account. Remove discord and install it again using deb file. - -Now if you start Discord, you’ll notice that you are already logged into your account. Surprising, no? - -But this is a feature because some applications like Discord, VirtualBox provide you updates similarly. You remove the current version and install the newer one (even if you don’t see this process). Since the application configuration files are not touched, you are logged back in without additional effort. - -The apt remove command gives you the option to reuse an application with similar configuration that you used in the past. - -However, you may not always want it. If you configured an application in a bad way and want to start from scratch, the apt purge command is the way to go forward. - -#### Does apt purge perform a wild-card removal? - -When you purge a package, you’ll notice that it mentions removing package-name*. This indicates that it will remove all the packages with names starting from package-name. - -![apt purge wild card][8] - -I didn’t find a definite answer on this point in the documentation (i.e. man page). So, I did a little test on my own. I installed espeak and espeak-ng packages. The espeak* should expand to espeak-ng as well. - -But when espeak was pruged, the espeak-ng package was untouched. So there seems to be a mechanism that protects against such wild card expansions. - -### So, should you use apt remove or apt purge? - -Few people just get addicted to using apt purge. - -In my opinion, apt remove is what you should use most of the time. Use apt purge when you have to get rid of the custom configuration files. - -In both cases, you’ll have to remove the remaining configuration files from the user’s home directory and run apt autoremove to eliminate any leftover dependencies. - -Over to you now. Do you understand the difference between apt remove and apt purge better now? Which one do you prefer to use? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/apt-remove/ - -作者:[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/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/apt-remove/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png -[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png -[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png -[7]: https://itsfoss.com/install-discord-linux/ -[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png diff --git a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md new file mode 100644 index 0000000000..3fa294485a --- /dev/null +++ b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -0,0 +1,123 @@ +[#]: subject: "apt remove vs apt purge: What’s the Difference?" +[#]: via: "https://itsfoss.com/apt-remove/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "Tngze-G" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +apt remove 和 apt purge: 有什么区别? +====== + +如果你想在Ubuntu服务器上卸载软件,可以使用 + +``` +sudo apt remove package_name +``` + +但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用the apt purge。 + +你可能会觉得很困惑,因为apt purge 和apt remove 看起来是一样的。 + +``` +sudo apt purge package_name +``` + +为什么会有两个如此像的命令删除安装包呢?两者之间有什么不同呢?下面将为您揭晓 + +### apt-remove和 apt-purge有什么不同? + +apt-remove 和 apt-purge相同之处就是都可以卸载安装包, 但是运行apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户家目录中相关的应用程序文件。 + +你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。 +这是因为用 apt remove 不能删除该软件的相关配置文件。 + + +#### 哪些东西被删除了?哪些还在? + +我用这两个命令分别卸载一下mplayer这个软件,看看卸载之后残留什么文件。 +我分享一个使用apt remove和apt purge两个命令分别卸载mplayer这个软件的实际例子。重点是看每次操作后还残余哪些文件。 + +这是删除前的文件 + +![mplayer before removal][2] + +现在运行 apt remove 这个命令 + +![apt uninstall package ubuntu][3] + +下面的是还残留在系统中的文件 + +![files after mplayer removal][4] + +我们可以看到,有两个地方残留着mplayer的文件: /etc 和 /home/abhishek. + +这次我们重新安装mplayer,然后用apt purge 来卸载软件。 + +![apt purge command][5] + +现在让我们看看与mplayer相关的文件 + +![files after mplayer removal][6] + +我们可以看到/etc目录下的文件已经没有了。 + +但是在家目录中的文件呢?apt purge会删除它们吗? + +答案是否定的。apt命令不会删除家目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。 + +值得注意的是,不是所有的软件在家目录或者 /etc目录下都有配置文件。 + +#### 使用 apt remove 或者 apt purge的效果 + +我能想到的一个实际例子就是discord, 你用deb文件 [在Ubuntu上安装了Discord][7]. 然后登录自己的账号,之后又卸载并重新用deb文件安装。 + +现在如果你打开Discord,你会发现你的账号自动登录了。是不是觉得很奇怪? + + +这个现象,就像是一些软件,比如Discord,VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。 + +当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用apt remove。 +但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用apt purge就比较合适。 + +#### 运行apt purge 是否可以删除通配符? + +当你删除一个包的时候,它会提示removing package-name*. 这意味着它会删除以这个包名开头的所有文件 + +![apt purge wild card][8] + +我在文档中没有找到关于这个问题的答案 (i.e. man page)。 所以我自己做了一个小测试,我安装了espeak和espeak-ng这两个软件, espeak这个包按理说是可以扩展到espeak-ng。 + +但是当我用apt purge 删除espeak包时,espeak-ng包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。 + +### 那么,你应该使用apt remove还是apt purge呢? + +大部分人很常使用apt purge。 + +在我看来,一般清况下,用apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用apt purge。 +不管是用apt remove 还是 apt purge, 你都需要从用户的家目录中删除残余的配置文件,并运行apt autoremove 来清除任何依赖的包。 + +现在到你啦。你现在对apt remove和apt purge的区别有更了解吗?你更喜欢使用哪一个呢? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-remove/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[Tingze-G](https://github.com/Tingze-G) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/apt-remove/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png +[7]: https://itsfoss.com/install-discord-linux/ +[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png From 24a4740c24daa0851b3a11dff466b279bd5189e1 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 00:03:21 +0800 Subject: [PATCH 2593/3123] translation request --- ... meets academic publishing- Platinum open access journals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 91c7df4d12..6ccfafb514 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/platinum-open-access-academic-journals" [#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5bc638a8f15c0caf01bf7b0a7a630cd746a48e86 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 00:18:37 +0800 Subject: [PATCH 2594/3123] merge --- ...20210718 Is Open-Source Software Secure.md | 105 +++---- published/20211012 Create a timer on Linux.md | 275 +++++++++++++++++ ...stic (Yet Underrated) Linux Desktop Environment.md | 190 ++++++++++++ ... Try If You are Not a Total Terminal Junkie.md | 143 +++++++++ ... File Viewer for Linux Desktops and Servers.md | 132 +++++++++ ...What is Firefox ESR How to Install it in Ubuntu.md | 39 +-- ...tions for Ubuntu and Other Linux [2022 Edition].md | 188 ++++++++++++ ...my zsh and powerlevel10k A Match Made in Heaven.md | 224 ++++++++++++++ ...d Siri in Works for Home Assistant Platform.md | 24 +- ... ⭐️ How to read and write files in Rust.md | 116 ++++++++ ... Command in Linux Explanation with Examples.md | 137 +++++++++ ...reis Command in Linux and BSD with Examples.md | 147 ++++++++++ ...es These 3 Key Improvements for Linux Users.md | 97 ++++++ ...earn w Command in Linux & BSD with Examples.md | 111 +++++++ ...a programming language by writing a simple game.md | 183 ++++++++++++ ...io 29 Release Has Little in Store For Linux.md | 92 ++++++ ...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 233 +++++++++++++++ ...er's MasterPlus Software to Go Open Source!.md | 78 +++++ ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 +++++ ...r Lobster Wallpaper Competition is Now Open.md | 59 ++++ ...zing Release With Much-Needed Feature Additions.md | 144 +++++++++ ...Medium Joins in With its New Community Platform.md | 98 +++++++ ...ases With New Features and Linux Kernel 6.0.md | 133 --------- ...s 5.8 Arrives with Official Wayland Support.md | 74 ----- ...ort. But You Can't Use It Yet Unfortunately.md | 100 ------- .../20190331 Codecademy vs. The BBC Micro.md | 235 --------------- ... pretty soon you-re talking real memory.md | 2 +- ...mputing by programming embedded systems.md | 2 +- .../tech/20211012 Create a timer on Linux.md | 277 ------------------ ...stic (Yet Underrated) Linux Desktop Environment.md | 185 ------------ ... Try If You are Not a Total Terminal Junkie.md | 139 --------- ... File Viewer for Linux Desktops and Servers.md | 127 -------- ...tions for Ubuntu and Other Linux [2022 Edition].md | 185 ------------ ...️ 11 New Distros to look forward to in 2023.md | 4 +- ...my zsh and powerlevel10k A Match Made in Heaven.md | 222 -------------- ... ⭐️ How to read and write files in Rust.md | 110 ------- ... Command in Linux Explanation with Examples.md | 138 --------- ...rs GNOME Extension to help Colorblind Users.md | 106 ------- ...reis Command in Linux and BSD with Examples.md | 152 ---------- ...6 tips for building an effective DevOps culture.md | 101 ------- ...power your edge projects with open source tools.md | 123 ++++++++ ... this open source API gateway to scale your API.md | 149 ++++++++++ ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ++++++++++++ ...tu on Windows Using VirtualBox [Complete Guide].md | 241 +++++++++++++++ ...nstall Python on Windows [Beginner’s Guide].md | 147 ++++++++++ ...t and Host in virt-manager (KVMQemulibvirt).md | 110 +++++++ ...114.0 ⭐️ A 4-minute guide to Java loops.md | 151 ++++++++++ .../20190331 Codecademy vs. The BBC Micro.md | 146 +++++++++ ...rs GNOME Extension to help Colorblind Users.md | 101 +++++++ ...6 tips for building an effective DevOps culture.md | 102 +++++++ ...ok Offline English Dictionary App for GNOME.md | 69 +++++ 51 files changed, 4340 insertions(+), 2370 deletions(-) rename {translated/talk => published}/20210718 Is Open-Source Software Secure.md (51%) create mode 100644 published/20211012 Create a timer on Linux.md create mode 100644 published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md create mode 100644 published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md create mode 100644 published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md rename {translated/tech => published}/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md (67%) create mode 100644 published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md create mode 100644 published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md rename {translated/tech => published}/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md (74%) create mode 100644 published/20230102.0 ⭐️ How to read and write files in Rust.md create mode 100644 published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md create mode 100644 published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md create mode 100644 published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md create mode 100644 published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md create mode 100644 published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md create mode 100644 published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md create mode 100644 published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md create mode 100644 published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md create mode 100644 published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md create mode 100644 published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md create mode 100644 published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md create mode 100644 published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md delete mode 100644 sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md delete mode 100644 sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md delete mode 100644 sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md delete mode 100644 sources/talk/20190331 Codecademy vs. The BBC Micro.md delete mode 100644 sources/tech/20211012 Create a timer on Linux.md delete mode 100644 sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md delete mode 100644 sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md delete mode 100644 sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md delete mode 100644 sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md delete mode 100644 sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md delete mode 100644 sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md delete mode 100644 sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md delete mode 100644 sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md delete mode 100644 sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md delete mode 100644 sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md create mode 100644 sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md create mode 100644 sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md create mode 100644 sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md create mode 100644 sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md create mode 100644 sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md create mode 100644 sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md create mode 100644 sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md create mode 100644 translated/talk/20190331 Codecademy vs. The BBC Micro.md create mode 100644 translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md create mode 100644 translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md create mode 100644 translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md diff --git a/translated/talk/20210718 Is Open-Source Software Secure.md b/published/20210718 Is Open-Source Software Secure.md similarity index 51% rename from translated/talk/20210718 Is Open-Source Software Secure.md rename to published/20210718 Is Open-Source Software Secure.md index 7e0b33aec4..cc02f9b43e 100644 --- a/translated/talk/20210718 Is Open-Source Software Secure.md +++ b/published/20210718 Is Open-Source Software Secure.md @@ -3,18 +3,20 @@ [#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) [#]: collector: (lujun9972) [#]: translator: (CanYellow) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-15423-1.html) 开源软件安全吗? ====== -作为一个偏爱 [Linux桌面发行版][1] 并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。 +![][0] -然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多的内容吧! +作为一个偏爱 [在桌面电脑上使用 Linux][1],并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。 -本文,我计划分享我关于开源软件是否安全的思考以及哪些事情与开源软件的安全性相关。 +然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多观点! + +在本文,我计划分享我关于开源软件是否安全的思考,以及哪些事情与开源软件的安全性相关。 ### 为什么你需要关注开源软件是否安全? @@ -22,123 +24,119 @@ 举个例子,大多数专有软件工具依赖于某种形式的开源库来保证其正常工作。 -此外,各种规模的公司(包括 Google、Microsoft 和 Facebook )依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。 +此外,各种规模的公司(包括谷歌、微软和 Facebook)依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。 因此,开源软件的安全性是有必要了解的。 -### 有关开源软件安全性的谣言 +### 有关开源软件安全性的迷思 ![][3] 虽然有多种理由证明开源软件在安全性方面的缺陷,然而其中一些实际毫无意义。 -#### 任何人都可以查看 & 恶意利用开源软件代码 +#### 任何人都可以查看并恶意利用开源软件代码 是的,开源软件代码对于任何人都是可访问的。但是你可以查看代码并不意味着你可以利用它。 -**不现实** +**不现实。** -即使任何人都可以克隆(或者拷贝)该软件,原始软件也不能轻易地被修改使用。 +即使任何人都可以复刻(或者拷贝)该软件,原始软件也不能轻易地被修改使用。 -通常,项目维护人员(或者维护团队)管理代码仓库并且接受来自贡献者的提交。开源软件代码在接受之前被审查。没有人可以像那样劫持代码。 +通常,项目维护人员(或者维护团队)管理代码仓库,并且接受来自贡献者的提交。开源软件代码在接受之前会被审查。没有人可以就这样劫持代码。 -**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码** +**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码。** -#### 失去专用资源,安全性无从谈起 +#### 没有专职团队,安全性无从谈起 很多人相信如果开源软件没有专职人员或者专职团队,维护软件安全性是困难的。 -恰恰相反,由于各种个样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。 +恰恰相反,由于各种各样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。 -他们可能比由专用软件所聘用的少数开发者更能够发现安全问题。 +他们可能比由专有软件所聘用的少数开发者更能够发现安全问题。 一些来自 Mozilla 等同类公司的项目拥有自己的专职团队来高效处理安全问题。同样的,大部分成功的开源项目拥有大量的资源用于保障安全性。 -因此,开源软件的生态系统是安全性的组合包。即使没有专职资源,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。 +因此,开源软件的生态系统是安全性的组合包。即使没有专职团队,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。 ### 开源软件是安全的,以下是原因 -![][3] +![][5] -既然我们已经解决了有关开源软件安全性的谣言,让我重点展示一下开源软件是如何处理安全问题的。 +既然我们已经澄清了这些有关开源软件安全性的迷思,让我重点展示一下开源软件是如何处理安全问题的。 换句话说,开源软件在安全性上的优势。 -请不要忘记,开源软件的优势也是 [ Linux 比 Windows 更好][4]的一些原因。 +请不要忘记,开源软件的优势也是 [Linux 比 Windows 更好][4] 的一些原因。 #### 更多的眼晴关注开源软件代码 -不像专有软件,代码访问仅不限于少数开发者。 +不像专有软件,(对开源软件的)代码访问并不局限于少数几个开发者。 -一些开源项目甚至可能拥有数以万记的开发者查看代码、审查它们并标记和修复其中的安全性问题。 +一些开源项目甚至可能拥有数以万记的开发者可以查看代码、审查它们并标记和修复其中的安全性问题。 -这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的相比闭源软件的优势。 +相比闭源软件,这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的优势。 不仅仅限于拥有更多的开发者,企业通常也会参与他们所使用的开源项目。当他们这样做的时候,他们也会查阅代码并审查它们。 -这提供了外部审查的另一条途径,而这可能有助于提升开源软件的安全性。 +这提供了另一条外部审查的途径,而这可能有助于提升开源软件的安全性。 -反之,就闭源软件而言,有限人数的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。 +反之,就闭源软件而言,数量有限的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。 #### 社区决定安全问题的优先级 闭源软件的开发者可能在处理什么问题和什么时候解决问题等方面有某些限制或者优先等级。 -而如果是开源项目,贡献者社区可以自行决定优先级并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。 +而如果是开源项目,贡献者社区可以自行决定优先级,并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。 -着手处理和修复安全问题的决定在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处: +着手处理和修复安全问题的决策在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处: - * **透明度** - * **不依赖供应商** - * **更快的安全更新** + * 透明度 + * 不依赖供应商 + * 更快的安全更新 -### 开源软件不是刀枪不入的,以下是原因 +### 开源软件不是防弹的,以下是原因 -![][3] +![][6] -虽然有开源软件可能在安全性上具有优势的案例,然而仍有一些因素影响它。 +虽然在某些情况下,开源软件可能在安全性上具有优势,然而仍有一些因素影响它。 -承认这些问题的存在是很重要的,据此,企业或者个人可以就一款开源软件的安全情况做出更好的决定。 +承认这些问题的存在是很重要的,据此,企业或者个人可以就开源软件的安全情况做出更好的决定。 #### 并无足够的眼睛来审查代码和不确定性 -即使开源软件代码可以由全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。 +即使开源软件代码可以被全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。 -既如此,我们不能对经同行审查的开源软件抱有极高的信心,因为它恰好缺失了这一点。 +既如此,我们不能对开源软件的同行审查抱有极高的信心,因为它恰好缺失了这一点。 开源软件可能“声称”拥有最高的安全性因为它们是开源的。在没有足够的开发者致力于该项目时,这是一种误导。 -同样,我们也无从得知有多少开发者在查看/检查代码以及代码走查在多大程度上进行。 +同样,我们也无从得知有多少开发者在查看/检查代码,也不知道代码的检查进行到什么程度了。 -举例而言,心脏出血漏洞([Heartbleed][T1])是在其在广泛使用项目—— **OpenSSL** ——中引入了2年以后才被发现的。 +举例而言,[心脏出血漏洞][T1]Heartbleed 是在一个被广泛使用的项目(OpenSSL)中引入了 2 年以后才被发现的。 -#### 软件责任与义务 +#### 软件责任与问责 对于个人用户这可能并不重要,但是**开源项目通常并无任何保证**。 因此,如果一家公司使用它,它们必须自行承担任何由该软件使用造成的数据丢失与损坏。 -这告诉你没有什么是100%安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,可能是安全风险可能是数据丢失。 +这告诉你,没有什么是 100% 安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,无论是安全风险还是数据丢失。 -这告诉我们一个现实:开源软件并非刀枪不入。 +这告诉我们一个现实:开源软件并非防弹的。 ### 开源软件有其更高安全性的优势,但是... 就安全性而言没有什么优胜者。不论是闭源还是开源,当涉及安全问题时都适用同一套原则。 -有很多外部因素可以印象软件安全性,而**其中很多都不是来源相关的**。 +有很多外部因素可以影响软件安全性,而**其中很多因素并不依赖于源代码**。 -代码必须被以某种形式监控以保证安全。 +必须以某种形式监控代码,以保证安全。 -是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是刀枪不入的。 +是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是防弹的。 -_你对开源软件安全状况有何思考?_ _你又是否认为开源软件比专有软件解决方案更好呢?_ +_你对开源软件安全状况有何思考?你又是否认为开源软件比专有软件解决方案更好呢?_ -提前感谢您在下面的评论中提出的宝贵意见。 - -#### 大型科技网站坐拥百万收入,而 It's FOSS 拥有每一个你! - -如果你喜欢我们在 It's FOSS 中所做的工作,请您考虑捐赠以支持我们的独立出版物。你的支持将有助于我们继续发布有关 Linux 桌面版以及开源软件的内容。 +提前感谢你在下面的评论中提出的宝贵意见。 -------------------------------------------------------------------------------- @@ -147,7 +145,7 @@ via: https://news.itsfoss.com/open-source-software-security/ 作者:[Ankush Das][a] 选题:[lujun9972][b] 译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -155,7 +153,10 @@ via: https://news.itsfoss.com/open-source-software-security/ [b]: https://github.com/lujun9972 [1]: https://news.itsfoss.com/linux-foundation-linux-desktop/ [2]: https://itsfoss.com/what-is-linux-distribution/ -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4= +[3]: https://news.itsfoss.com/content/images/wordpress/2021/07/hacker-exploit-illustration.png [4]: https://itsfoss.com/linux-better-than-windows/ +[5]: https://news.itsfoss.com/content/images/wordpress/2021/07/open-source-security-illustration.png +[6]: https://news.itsfoss.com/content/images/wordpress/2021/07/open-source-security-issue.jpg [T1]: https://www.cve.org/CVERecord?id=CVE-2014-0160 +[0]: https://news.itsfoss.com/content/images/size/w2000/wordpress/2021/07/open-source-security.jpg \ No newline at end of file diff --git a/published/20211012 Create a timer on Linux.md b/published/20211012 Create a timer on Linux.md new file mode 100644 index 0000000000..d00d129d20 --- /dev/null +++ b/published/20211012 Create a timer on Linux.md @@ -0,0 +1,275 @@ +[#]: subject: "Create a timer on Linux" +[#]: via: "https://opensource.com/article/21/10/linux-timers" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lujun9972" +[#]: translator: "FigaroCao" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15427-1.html" + +在 Linux 中创建定时器 +====== + +> 这是一个演示如何创建 POSIX 兼容的间隔定时器的教程。 + +![][0] + +对开发人员来说,定时某些事件是一项常见任务。定时器的常见场景是看门狗、任务的循环执行,或在特定时间安排事件。在这篇文章中,我将演示如何使用 [timer_create(...)][2] 创建一个 POSIX 兼容的间隔定时器。 + +你可以从 [GitHub][3] 下载下面样例的源代码。 + +### 准备 Qt Creator + +我使用 [Qt Creator][4] 作为该样例的 IDE。为了在 Qt Creator 运行和调试样例代码,请克隆 [GitHub][3] 上的仓库,打开 Qt Creator,在 “文件File -> 打开文件或项目……Open File or Project...” 并选择 “CMakeLists.txt”: + +![Qt Creator open project][5] + +*在 Qt Creator 中打开项目* + +选择工具链之后,点击 “配置项目Configure Project”。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行 “在终端中运行Run in terminal”(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的“调试Debug” 按钮进行选择(参见下面的橙色标记)。 + +![Project configuration][6] + +*项目配置* + +### 线程定时器 + +让我们看看 `simple_threading_timer.c` 样例。这是最简单的一个。它展示了一个调用了超时函数 `expired` 的间隔定时器是如何被创建的。在每次过期时,都会创建一个新的线程,在其中调用函数 `expired`: + +``` +#include +#include +#include +#include +#include +#include +#include + +void expired(union sigval timer_data); + +pid_t gettid(void); + +struct t_eventData{ +    int myData; +}; + +int main() +{ +    int res = 0; +    timer_t timerId = 0; + +    struct t_eventData eventData = { .myData = 0 }; + + /* sigevent 指定了过期时要执行的操作 */ +    struct sigevent sev = { 0 }; + + /* 指定启动延时时间和间隔时间 + * it_value和it_interval 不能为零 */ + +    struct itimerspec its = {   .it_value.tv_sec  = 1, +                                .it_value.tv_nsec = 0, +                                .it_interval.tv_sec  = 1, +                                .it_interval.tv_nsec = 0 +                            }; + +    printf("Simple Threading Timer - thread-id: %d\n", gettid()); + +    sev.sigev_notify = SIGEV_THREAD; +    sev.sigev_notify_function = &expired; +    sev.sigev_value.sival_ptr = &eventData; + + /* 创建定时器 */ +    res = timer_create(CLOCK_REALTIME, &sev, &timerId); + +    if (res != 0){ +        fprintf(stderr, "Error timer_create: %s\n", strerror(errno)); +        exit(-1); +    } + + /* 启动定时器 */ +    res = timer_settime(timerId, 0, &its, NULL); + +    if (res != 0){ +        fprintf(stderr, "Error timer_settime: %s\n", strerror(errno)); +        exit(-1); +    } + +    printf("Press ETNER Key to Exit\n"); +    while(getchar()!='\n'){} +    return 0; +} + +void expired(union sigval timer_data){ +    struct t_eventData *data = timer_data.sival_ptr; +    printf("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); +} +``` + +这种方法的优点是在代码和简单调试方面用量小。缺点是由于到期时创建新线程而增加额外的开销,因此行为不太确定。 + +### 中断信号定时器 + +超时定时器通知的另一种可能性是基于 [内核信号][12]。内核不是在每次定时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。 + +由于接收信号时的默认操作是终止进程(参考 [signal][13] 手册页),我们必须要提前设置好 Qt Creator,以便进行正确的调试。 + +当被调试对象接收到一个信号时,Qt Creator 的默认行为是: + + * 中断执行并切换到调试器上下文。 + * 显示一个弹出窗口,通知用户接收到信号。 + +这两种操作都不需要,因为信号的接收是我们应用程序的一部分。 + +Qt Creator 在后台使用 GDB。为了防止 GDB 在进程接收到信号时停止执行,进入 “工具Tools -> 选项Options” 菜单,选择 “调试器Debugger”,并导航到 “本地变量和表达式Locals & Expressions”。添加下面的表达式到 “定制调试助手Debugging Helper Customization”: + +``` +handle SIG34 nostop pass +``` + +![Signal no stop with error][14] + +*Sig 34 时不停止* + +你可以在 [GDB 文档][15] 中找到更多关于 GDB 信号处理的信息。 + +接下来,当我们在信号处理程序中停止时,我们要抑制每次接收到信号时通知我们的弹出窗口: + +![Signal 34 pop up box][16] + +*Signal 34 弹出窗口* + +为此,导航到 “GDB” 标签并取消勾选标记的复选框: + +![Timer signal windows][17] + +*定时器信号窗口* + +现在你可以正确的调试 `signal_interrupt_timer`。真正的信号定时器的实施会更复杂一些: + +``` +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define UNUSED(x) (void)(x) + +static void handler(int sig, siginfo_t *si, void *uc); +pid_t gettid(void); + +struct t_eventData{ +    int myData; +}; + +int main() +{ +    int res = 0; +    timer_t timerId = 0; + +    struct sigevent sev = { 0 }; +    struct t_eventData eventData = { .myData = 0 }; + + /* 指定收到信号时的操作 */ +    struct sigaction sa = { 0 }; + + /* 指定启动延时的时间和间隔时间 */ +    struct itimerspec its = {   .it_value.tv_sec  = 1, +                                .it_value.tv_nsec = 0, +                                .it_interval.tv_sec  = 1, +                                .it_interval.tv_nsec = 0 +                            }; + +    printf("Signal Interrupt Timer - thread-id: %d\n", gettid()); + +    sev.sigev_notify = SIGEV_SIGNAL; // Linux-specific +    sev.sigev_signo = SIGRTMIN; +    sev.sigev_value.sival_ptr = &eventData; + + /* 创建定时器 */ +    res = timer_create(CLOCK_REALTIME, &sev, &timerId); + +    if ( res != 0){ +        fprintf(stderr, "Error timer_create: %s\n", strerror(errno)); +        exit(-1); +    } + + /* 指定信号和处理程序 */ +    sa.sa_flags = SA_SIGINFO; +    sa.sa_sigaction = handler; + + /* 初始化信号 */ +    sigemptyset(&sa.sa_mask); + +    printf("Establishing handler for signal %d\n", SIGRTMIN); + + /* 注册信号处理程序 */ +    if (sigaction(SIGRTMIN, &sa, NULL) == -1){ +        fprintf(stderr, "Error sigaction: %s\n", strerror(errno)); +        exit(-1); +    } + + /* 启动定时器 */ +    res = timer_settime(timerId, 0, &its, NULL); + +    if ( res != 0){ +        fprintf(stderr, "Error timer_settime: %s\n", strerror(errno)); +        exit(-1); +    } + +    printf("Press ENTER to Exit\n"); +    while(getchar()!='\n'){} +    return 0; +} + +static void +handler(int sig, siginfo_t *si, void *uc) +{ +    UNUSED(sig); +    UNUSED(uc); +    struct t_eventData *data = (struct t_eventData *) si->_sifields._rt.si_sigval.sival_ptr; +    printf("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); +} +``` + +与线程定时器相比,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。 + +### 总结 + +本文中描述的两种方法都是接近内核的定时器的实现。不过,即使 [timer_create(...)][2] 函数是 POSIX 规范的一部分,由于数据结构的细微差别,也不可能在 FreeBSD 系统上编译样例代码。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/10/linux-timers + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[FigaroCao](https://github.com/FigaroCao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist) +[2]: https://linux.die.net/man/2/timer_create +[3]: https://github.com/hANSIc99/posix_timers +[4]: https://www.qt.io/product/development-tools +[5]: https://opensource.com/sites/default/files/posix_timers_open_project_0.png +[6]: https://opensource.com/sites/default/files/posix_timers_project_configuration_2.png +[7]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html +[8]: http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html +[9]: http://www.opengroup.org/onlinepubs/009695399/functions/strerror.html +[10]: http://www.opengroup.org/onlinepubs/009695399/functions/exit.html +[11]: http://www.opengroup.org/onlinepubs/009695399/functions/getchar.html +[12]: https://man7.org/linux/man-pages/man3/signal.3p.html +[13]: https://linux.die.net/man/7/signal +[14]: https://opensource.com/sites/default/files/posix_timers_sig34_nostop_pass.png +[15]: https://sourceware.org/gdb/onlinedocs/gdb/Signals.html +[16]: https://opensource.com/sites/default/files/posix_timers_sig34_pop_up_2.png +[17]: https://opensource.com/sites/default/files/posix_timers_signal_windows.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/09/150238f1d60cmvssr9d0js.jpg \ No newline at end of file diff --git a/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md new file mode 100644 index 0000000000..efe41ce13d --- /dev/null +++ b/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md @@ -0,0 +1,190 @@ +[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment" +[#]: via: "https://itsfoss.com/why-cinnamon/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15450-1.html" + +Cinnamon 是一个被低估的神奇 Linux 桌面环境 +====== + +![][0] + +> Linux Mint 是我最喜欢的发行版之一,其旗舰版的默认 Cinnamon 桌面是我如此喜欢它的原因。 + +Cinnamon 桌面提供的用户体验可能并不炫目花哨。但是,用户有充分的理由喜欢这个桌面环境,并可以轻松地用它来完成工作。 + +在日复一日工作中,我们想要的是,一个能按预期工作且不造成妨碍的用户界面。 + +我认为 Cinnamon 桌面做对了几件事,可以给你带来了令人兴奋的体验。让我在这里介绍其中一些。 + +> 如果你还不知道,Cinnamon 桌面是由 Linux Mint 的创建者 Clement Lefebvre 于 2011 年创建的 GNOME 3 复刻版,并经过多年的改进。 + +### 1、熟悉的用户界面 + +![Linux Mint 21][1] + +构建 Cinnamon 的主要目的是为了保持 GNOME 2 的桌面风格。 + +而这就是为什么与最流行的消费级桌面操作系统 Windows 相比,你会看到一个熟悉的桌面布局。 + +当然,随着时间的推移,Windows 11 已经进化了它的通常布局。但是,访问开始菜单、任务栏、托盘中的系统图标和几个窗口装饰使其易于掌握。 + +无论你是 Windows 用户还是 macOS 用户,Cinnamon 的桌面布局都不应该让你感到有什么挑战。 + +![Linux Mint 欢迎屏幕][2] + +为了进一步帮助你,Linux Mint 的 “欢迎屏幕” 为你迅速提供了各种信息。 + +### 2、轻量级 + +为了获得舒适的 Cinnamon 桌面体验(通常使用 Linux Mint),有以下最低系统要求: + +- 4GB 内存 +- 100 GB 的磁盘空间 +- 1024×768 分辨率的屏幕 + +在现代计算时代,这些规格应该适合几乎所有人。所以,你不必担心需要一个疯狂的内存或磁盘空间来运行由 Cinnamon 驱动的 Linux 发行版。 + +当然,你可以尝试 [在 Ubuntu 上安装 Cinnamon 桌面][3]。 + +但是,在本文中,我们认为 Linux Mint 是理想的使用案例。 + +### 3、快速的性能而不牺牲用户体验 + +当我们想到一个轻量级的桌面环境时,我们通常会想象一个注重性能的、平淡无奇的用户界面。 + +![Linux Mint 首选项][4] + +在 Cinnamon 桌面上,情况并非如此。它确实包括了各种细微的动画和特色的图标/主题,即使不是最好的,其外观也相当现代。 + +它以极简的方式让你看起来很赏心悦目。 + +通常情况下,我很喜欢漂亮的用户界面,但我仍然可以接受 Linux Mint 的简单直接的用户体验,并在双显示器设置(1440p + 1080p)上运行它。 + +它可能不是 Linux Mint Cinnamon 版最好的双显示器体验(对我来说,第二个屏幕上没有停靠区和面板),但需要改进地方不多。 + +### 4、默认的自定义选项 + +你可能已经知道,在提供开箱即用的定制能力方面,KDE 可能是最棒的。 + +如果你对这种方式感到好奇,我们有超级有用的指南: + +- [KDE 定制指南][5] +- [如何正确地给 KDE Plasma 定制主题(深度指南)][6] +- [最佳的 KDE Plasma 华丽主题][7] + +但是,对于许多用户来说,这有些过于复杂了。 + +我认为 Linux Mint 给出了适量的额外控制/定制,你也可以在它的欢迎屏幕上了解到这些。 + +![Cinnamon 主题定制][8] + +一些你可以轻松定制的元素包括: + +- 桌面颜色(强调色) +- 浅色/深色主题切换 +- 面板布局 +- 图标、按钮和鼠标指针 + +你可以前往系统设置,并导航到 “主题”,找到必要的调整项。 + +推荐阅读: + +> **[在 Linux 上定制 Cinnamon 桌面的 7 种方法][9]** + +### 5、为你的体验增色的官方附加组件 + +![Cinnamon 桌面部件][10] + +Linux Mint 支持各种插件来增强你的体验。这些都是 [Cinnamon 调味品][11] 产品的一部分。它们包括: + +- 主题 +- 扩展程序 +- 小程序Applet +- 桌面组件Desklet + +小程序和桌面组件是小型程序,你可以分别在面板(靠近系统托盘)和桌面上添加。 + +![小程序][12] + +你可以管理系统默认的小程序,也可以从官方软件库下载更多的小程序。 + +![小程序][13] + +同样,你可以从可用的默认程序中添加桌面组件,或者从软件库中获得新的。 + +![桌面组件][14] + +大量有价值的实用程序可以用来监控系统资源、检查天气,以及更多。 + +此外,你还可以访问社区构建的各种主题,可以很容易地给你一个你一直想要的外观。 + +![Cinnamon 主题][15] + +通过补充上述所有的 “调味品”,你可以使用扩展来使面板透明,在桌面上添加水印,启用窗口平铺,并添加一些令人兴奋的窗口动画。 + +![Linux Mint 扩展][16] + +### 6、兼容和无缝的用户体验 + +为什么我再次强调用户体验? + +Cinnamon 桌面最棒的地方在于它以尊重和支持所有功能的方式发展。 + +例如,如果你想安装一个你在 KDE Plasma 上喜欢使用的应用程序,它在这里也应该以同样的方式工作。Cinnamon 桌面没有什么特别之处,会破坏这种体验。 + +![GNOME 账户应用][17] + +同样地,该桌面增加了一些试图与其他桌面环境的服务共存的功能。例如,支持使用 GNOME 在线账户的日历事件。 + +### 7、面板定制 + +![Linux Mint 面板][18] + +停靠区、任务栏或面板是用户界面的一个组成部分。 + +是的,其他的桌面环境也允许你在某种程度上同样定制这些。但在 Cinnamon 中,你可以得到大量的控制权来调整它。 + +我认为你可以得到一个用户想要的所有基本选项。 + +### 总结 + +GNOME 和 KDE Plasma 是流行的桌面环境。然而,Cinnamon 在提供最佳用户体验的基本部分上并不逊色。 + +你对 Cinnamon 桌面环境有什么看法?你更喜欢用 Linux Mint 来尝试它吗?在下面的评论部分分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/why-cinnamon/ + +作者:[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://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-21-full.jpg +[2]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-welcome.png +[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/ +[4]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-perf.png +[5]: https://itsfoss.com/kde-customization/ +[6]: https://itsfoss.com/properly-theme-kde-plasma/ +[7]: https://itsfoss.com/best-kde-plasma-themes/ +[8]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-theme-customize.png +[9]: https://itsfoss.com/customize-cinnamon-desktop/ +[10]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-desklet.png +[11]: https://cinnamon-spices.linuxmint.com +[12]: https://itsfoss.com/content/images/wordpress/2022/11/applet-cinnamon.png +[13]: https://itsfoss.com/content/images/wordpress/2022/11/applets-cinnamon.png +[14]: https://itsfoss.com/content/images/wordpress/2022/11/desklet-cinnamon.png +[15]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-theme.png +[16]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-extensions.png +[17]: https://itsfoss.com/content/images/wordpress/2022/11/gnome-accounts-cinnamon.png +[18]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-panel.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/16/164642rr27xxt3zo72t7vl.jpg \ No newline at end of file diff --git a/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md new file mode 100644 index 0000000000..1c79bdf475 --- /dev/null +++ b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md @@ -0,0 +1,143 @@ +[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" +[#]: via: "https://itsfoss.com/neovim-gui-editors/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15455-1.html" + +你可以尝试的 5 个 NeoVim GUI 编辑器 +====== + +![][0] + +Vim 很不错,但 NeoVim 更新一些,甚至更棒。Vim 和 NeoVim 都是基于终端的文本编辑器,具有类似的功能。 + +如果你是一个习惯于使用 [像 VS Code 这样的 GUI 文本编辑器][1] 的人,并且希望拥有 NeoVim 提供的类似功能,你应该了解一下这些 GUI 编辑器。 + +虽然我知道你可以把 NeoVim 作为你目前的文本编辑器的插件,但直接使用 NeoVim 工作要比管理插件更有效和方便。 + +在选择 NeoVim 的 GUI 时,有一些不同的选择,我把一些最好的 GUI 列在下面: + +### 1、Neovide + +![neovide][2] + +主要特点: + +- 动画光标 +- 平滑滚动 +- 动画窗口 +- 模糊的浮动窗口 +- 支持表情符号 + +[Neovide][3] 旨在成为一个简单的 NeoVim GUI。 + +虽然你不会看到很多图形元素,它只是增加了一些诸如动画之类的 GUI 功能。它使用了一个叫 Skulpin 的库来渲染动画。 + +而我在使用 Neovide 时最喜欢的地方是它拥有一个动画光标和平滑滚动。你看一看这个就明白了: + +![][3a] + +看起来很酷。对吗? + +### 2、Neovim Qt + +![neovim Qt][4] + +主要特点: + +- 悬停功能 +- 多个 GUI 标签 +- 自动制表符补完 +- 跨平台支持 + +顾名思义,[Neovim Qt][5] 是用 Qt5 库构建的,你会经常看到它在 KDE 中使用。它没有太多花哨的东西,只是增加了一些额外的 GUI 功能,如多个标签,自动制表符补完等。 + +因此,如果你已经在使用 Qt5 库,并希望为 NeoVim 提供一个精简的 GUI,它将工作的很好,并为你省去一些依赖安装。 + +推荐: + +> **[Vim vs Nano:你应该选择哪个?][6]** + +### 3、Uivonim + +![uivonim][7] + +主要特点: + +- WebGL GPU 渲染和多线程 +- 支持 VSCode 扩展 +- Nyancat(经典猫咪动画的 ANSI 文本程序) +- 悬停和代码动作 + +[Uivonim][8] 是 Veonim(一个建立在 VSCode 插件和 NeoVim 上的简单 IDE)的复刻版,采用 Electron 框架编写,如果你从 VSCode 转换过来,它是一个完美的选择。 + +而 Uivonim 的唯一目标是提供丰富的 NeoVim 体验,支持 NeoVim 的最新功能,包括浮动窗口、内置 LSP 等等。你不需要依赖 VSCode 扩展来获得这些功能。 + +### 4、FVim + +![fvim][9] + +主要特点: + +- 脱离窗口(使用 `Ctrl+w`,`GE`) +- 自定义弹出式菜单条目图标 +- 支持 HiDPI +- GPU 加速 + +[FVim][10] 是一个用 F# + Avalonia 构建的 NeoVim 的跨平台 GUI,带有一些突破性的功能,如高性能渲染(在 4K 显示器上支持 60FPS)。 + +而我经常使用脱离窗口的功能,因为我更喜欢为不同的文本文件设置独立的窗口。另外,如果你是一个资深的远程用户,FVim 也不会让你失望。 + +### 5、Goneovim + +![goneovim][11] + +主要特点: + +- 支持一个带有 Bash 和 Zsh 的终端 +- 迷你地图 +- 动画光标 +- HiDPI 缩放 +- 外部浮动窗口 + +顾名思义,[Goneovim][12] 是用 Go 语言编写的,是 Gonvim 的一个复刻品。它提供了足够的 GUI 功能来完成你的工作,如动画光标、像素级滚动等。 + +而且它在让你获得基本的文本编辑功能方面也并不差,比如对文本文件的拖放支持。 + +### 总结 + +这是我对 NeoVim 的图形用户界面的一些好的选择,我希望你能找到你想要的东西。 + +如果我错过了任何你喜欢的东西,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/neovim-gui-editors/ + +作者:[Sagar Sharma][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://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ +[2]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.png +[3]: https://neovide.dev/index.html +[3a]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.gif +[4]: https://itsfoss.com/content/images/wordpress/2022/11/neovim-qt.png +[5]: https://github.com/equalsraf/neovim-qt +[6]: https://itsfoss.com/vim-vs-nano/ +[7]: https://itsfoss.com/content/images/wordpress/2022/11/uivonim.png +[8]: https://github.com/smolck/uivonim +[9]: https://itsfoss.com/content/images/wordpress/2022/11/fvim-1.png +[10]: https://github.com/yatli/fvim +[11]: https://itsfoss.com/content/images/wordpress/2022/11/goneovim-1.png +[12]: https://github.com/akiyosi/goneovim +[13]: https://itsfoss.com/install-latest-vim-ubuntu/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/160357g9mrmohow8wm68iw.jpg \ No newline at end of file diff --git a/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md new file mode 100644 index 0000000000..60b7b2ba8a --- /dev/null +++ b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md @@ -0,0 +1,132 @@ +[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers" +[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15454-1.html" + +lnav: 用于 Linux 的高级日志文件浏览器 +====== + +![][0] + +> 如果你想调试或排除任何问题,你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。 + +### lnav: 日志文件查看器 + +`lnav` 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 + +在分析日志的时候,时间戳是非常重要的。所以 `lnav` 会根据时间戳合并多个日志,这对追踪系统问题很有帮助。 + +大多数重要的日志文件格式检测都是内置的,包括如下: + +- 通用网络访问日志Common Web Access Log格式 +- CUPS page_log +- Syslog +- Glog +- VMware ESXi/vCenter 日志 +- dpkg.log +- uwsgi +- “通用”:任何以时间戳开头的信息 +- Strace +- sudo +- GZIP、BZIP + +这还不是全部,`lnav` 还能实现以下功能,使其成为 Linux 系统的重要应用: + +- 根据正则表达式过滤消息 +- 错误日志的时间轴视图 +- 漂亮的打印视图,这有助于重新格式化 +- 使用 SQL 查询日志 +- 在搜索时,日志会实时更新 +- 通过正则表达式高亮显示语法(比如你想在整个日志中找出一个 IP 地址) +- 显示的日志中任何单词的 Tab 补全!! + +![lnav 在 ubuntu 中运行][1] + +要查看上述功能的截图和了解更多信息,请访问 [本页面][2] 。 + +### 如何安装 + +这个程序在 Ubuntu、Debian 的官方仓库中可以找到。使用以下命令安装它。 + +``` +sudo apt install lnav +``` + +而对于 Fedora、RHEL 用户,使用下面的命令: + +``` +sudo dnf install lnav +``` + +另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3] 下载压缩包,然后按以下方式执行: + +``` +./lnav +``` + +**注意**:它也可用于 macOS,你可以在上述 GitHub 页面找到。 + +### lnav: 如何使用(基础) + +简单的命令语法是: + +``` +lnav [options] [logfile1 logfile2 …] +``` + +如果你直接运行 `lnav` 命令,它会显示你系统中的所有日志(`/var/log/messages` 和 `/var/log/syslog`) + +``` +lnav +``` + +要查看任何特定的日志文件,在命令行中输入: + +``` +lnav /var/log/syslog +``` + +使用 `-t` 参数在你的日志输出中添加时间戳: + +``` +lnav -t /var/log/syslog +``` + +以下是 `lnav` 的一些关键开关: + +- `-d file`:将调试信息写入给定的文件。 +- `-a`:加载所有最新的日志文件类型。 +- `-r`:也加载较早的轮转的日志文件。 +- `-t`:在标准输入中读入的数据行上预加时间戳。 +- `-w file`:将标准输入的内容写入该文件。 +- `-c cmd`:在文件加载后执行命令。 +- `-f path`:执行给定文件中的命令。 +- `-n`:不使用 curses UI 运行(无头模式)。 + +![lnav 在 Ubuntu 22.04 中运行][4] + +要进一步阅读和探索,请访问 [官方文档][5]。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-Running-in-Ubutu.png +[2]: http://lnav.org/features/ +[3]: https://github.com/tstack/lnav/releases/ +[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg +[5]: https://docs.lnav.org/en/latest/intro.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/101616eio2v80m1v34ol2o.jpg \ No newline at end of file diff --git a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md similarity index 67% rename from translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md rename to published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md index 2955a79d75..481d09dc61 100644 --- a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md +++ b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md @@ -3,30 +3,32 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15421-1.html" 什么是 Firefox ESR?如何在 Ubuntu 中安装它? ====== -Ubuntu 的 snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。 +![][0] + +Ubuntu 的 Snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。 ### 什么是 Firefox ESR? Firefox ESR 是 Firefox 的特别版,它不一定像普通版那样每月都有新功能,但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构,在这些地方,稳定性和核心功能比闪亮的新功能更重要。 -把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。他们不一定得到全新的功能,但他们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。 +可以把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。它们不一定得到全新的功能,但它们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。 #### 你为什么要关心 Firefox ESR? Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。 -但有些人可能不喜欢功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR可能值得一试。 +但有些人可能不喜欢各种功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR 可能值得一试。 -基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是与 Debian 相同的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。 +基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是 Debian 中携带的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。 -让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**_你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。_** +让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。** ### 在 Ubuntu 中安装 Firefox ESR @@ -43,7 +45,7 @@ Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的,所以你可以使用 PPA 只不过是一个由个别技术人员或开发者维护的仓库,拥有默认仓库所没有的东西。 -如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了[如何在 Linux 上使用 PPA][1]。 +如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了 [如何在 Linux 上使用 PPA][1]。 打开你的终端,使用给定的命令来添加 Firefox-ESR 的 PPA: @@ -75,7 +77,7 @@ firefox-esr -v ![check installed version of firefox esr in ubuntu][3] -##### 从 Ubuntu 卸载 Firefox-ESR +如何从 Ubuntu 卸载 Firefox-ESR? 如果 ESR 对你的工作来说感觉太过时了,或者由于其他原因你想从你的系统中删除它,你可以按照以下步骤删除 Firefox-ESR 包和仓库。 @@ -85,7 +87,7 @@ firefox-esr -v sudo apt remove firefox-esr ``` -现在,你可以使用给定的命令来[从 Ubuntu 删除 PPA][4]: +现在,你可以使用给定的命令来 [从 Ubuntu 删除 PPA][4]: ``` sudo add-apt-repository --remove ppa:mozillateam/ppa @@ -95,9 +97,9 @@ sudo add-apt-repository --remove ppa:mozillateam/ppa #### 方法 2:使用 Snap 安装 Firefox-ESR -不管你爱不爱它,Snaps 在 Ubuntu 上是预先配置好的,我发现使用 Snaps 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。 +不管你爱不爱它,Snap 在 Ubuntu 上是预先配置好的,我发现使用 Snap 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。 -使用 Snaps 安装 Firefox-ESR,你需要做的就是使用给定的命令: +使用 Snap 安装 Firefox-ESR,你需要做的就是使用给定的命令: ``` sudo snap install firefox --channel=esr/stable @@ -105,7 +107,7 @@ sudo snap install firefox --channel=esr/stable ![install firefox esr using snaps in ubuntu][5] -##### 删除 Firefox-ESR Snap +如何删除 Firefox-ESR Snap? 要删除 Firefox-ESR(snap 包),请使用 [snap remove 命令][6]: @@ -128,15 +130,16 @@ via: https://itsfoss.com/firefox-esr-ubuntu/ 作者:[Sagar Sharma][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/) 荣誉推出 [a]: https://itsfoss.com/author/sagar/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/ppa-guide/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png +[2]: https://itsfoss.com/content/images/wordpress/2022/11/add-firefox-esr-repository-in-ubuntu.png +[3]: https://itsfoss.com/content/images/wordpress/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png [4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/ -[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png +[5]: https://itsfoss.com/content/images/wordpress/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png [6]: https://itsfoss.com/remove-snap/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/07/165704ojar9wfkvptwop0w.jpg \ No newline at end of file diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md new file mode 100644 index 0000000000..47892e9284 --- /dev/null +++ b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md @@ -0,0 +1,188 @@ +[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]" +[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15443-1.html" + +适用于 Linux 的五大流媒体直播应用 +====== + +![][0] + +> 本文列出了 Linux 上的五大流媒体直播应用,包括了它们的功能、亮点、下载详情和对比。 + +现在是为你的业务纳入在线视频内容的最佳时机。为什么?因为研究表明,全球在线视频市场正以每年约 20% 的速度增长。 + +而且,由于开发者们提供的一些优秀软件,任何人都可以轻松地创建视频内容,并在 YouTube 和 Twitch 等几个流行的平台上传播。如果你仔细想想,你会发现如今你在网上观看的视频内容比基于文本的内容更多。 + +因此,在这篇文章中,我们将列出一些适用于 Ubuntu 和其他 Linux 的免费软件,这些软件很容易用于为你和你的企业创建超级有趣的流媒体内容。 + +### Linux 的五大流媒体直播应用 + +#### OBS Studio + +本列表中的第一个免费应用程序是 OBS Studio(即 Open Broadcaster Software)。它是一个具有屏幕广播功能的流媒体直播应用程序,可用于 Linux、Windows 和 macOS。 + +出于几个原因,OBS Studio 是这个名单上最好的一个。它内置了编码,支持 RTMP 广播、多源、网络摄像头、绿屏、捕捉卡和你的应用程序窗口。 + +其用户界面相当简单明了,功能丰富。你可以从第三方开发的插件中获得帮助,以扩展其功能,例如,在直播时将 Twitter 上的实时推文混入你的流媒体。不过,OBS 不支持多比特率流媒体。 + +![OBS Studio - 适用于Linux的直播应用程序][1] + +如何安装: + +OBS Studio 可以在所有 Linux 发行版的官方软件库中找到。详细的安装说明见下面的链接。 + +> **[下载 OBS Studio][2]** + +更多信息: + +- [主页][3] +- [文档][4] + +#### VokoscreenNG + +我们将在这个列表中介绍的第二个应用程序是 VokoscreenNG。它复刻了已停止的 Vokoscreen 项目。这个新的应用程序完全用 Qt 和 GStreamer 库编写。它可以记录你的屏幕,并接受多个音频源和视频源。VokoscreenNG 的工具箱也相当引人注目。它包括一个放大镜、计时器、系统托盘插件,可以简化你的工作流程。 + +它可以免费用于 Linux 和 Windows。 + +![vokoscreenNG - 适用于Linux的流媒体直播应用程序][5] + +如何安装: + +你可以从下面的链接下载用于 Linux 系统的压缩可执行文件。下载后,将其解压,然后执行二进制文件来启动该应用程序。 + +记住,这个应用程序需要在你的 Linux 系统中安装 X11、PulseAudio 和 GStreamer 插件才能工作。如果你使用的是带有 Wayland 和 Pipewire 声音服务器的现代 Linux 系统(例如 Fedora),这个应用程序可能无法工作。 + +> **[下载 VokoscreenNG][6]** + +更多信息: + +- [主页][7] + +#### Restreamer + +Restreamer 应用程序可以让你直接在你的网站上直播视频和截屏,而无需任何流媒体服务商。也可以用这个应用程序使用流行的流媒体解决方案,如 YouTube、Twitch等。 + +这个应用程序功能丰富,有一个不错的功能列表。下面是对其功能的快速介绍: + +- 支持 H.264 流媒体 +- 内置 HTML5 视频播放 +- 可用于 Linux、macOS、Windows 和 Docker 镜像 +- 支持你自己的网站和 YouTube、Twitchm、Facebook、Vimeo、Wowza 等。 +- 支持多个视频源:[网络摄像机][8]、USB 摄像机或任何 H.2645 流媒体 +- 编码和音频源支持 +- 支持 JPEG 形式的定期快照 +- 通过 JSON HTTP API 访问流状态,以便进行额外的编程 + +![Restreamer][9] + +如何安装: + +安装 Restreamer 有点麻烦,因为它是通过 Docker 镜像发布的。你可以在下面的链接中找到在 Linux、Windows 和 MacOS 安装的说明。 + +> **[下载 Restreamer][10]** + +更多信息: + +- [主页][11] +- [文档][12] +- [源代码][13] + +#### ffscreencast + +ffscreencast 是一个使用 ffmpeg 库的命令行流媒体应用程序。它利用了 ffmpeg 的强大功能,并作为它的一个封装器。尽管它是以命令行的形式出现的,但你可以直接通过终端使用其强大的功能,如多源和录音设备。它也支持多种显示设置。你还可以在你的桌面截屏上叠加你的摄像机画面。 + +如何安装: + +要安装这个应用程序,你需要克隆它的 Git 代码库,然后将其内容复制到 `/bin`目录,以便全局执行 `ffscreencast` 命令。 + +``` +git clone https://github.com/cytopia/ffscreencast +cd ffscreencastsudo +cp bin/ffscreencast /usr/local/bin +``` + +你可以在终端用 `ffscreencast` 命令来运行这个应用程序。 + +> **[源代码和主页][15]** + +#### Open Streaming Platform + +本列表中的最后一个应用是 Open Streaming Platform(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。 + +![Open Streaming Platform][14] + +如果使用得当,这个应用程序功能丰富且强大。因为它有以下的基本功能: + +- 从 Open Broadcast Software(OBS)等输入源进行 RTMP 直播。 +- 每个用户有多个频道,允许一个用户同时广播多个流,而不需要多个账户。 +- 视频流记录和按需播放。 +- 手动上传来源于 OSP 之外的 MP4 视频。 +- 视频剪辑,为值得注意的时刻创建更短的视频。 +- 频道所有者的实时聊天管理(禁止/解禁)。 +- 管理员控制的自适应流媒体。 +- 受保护的频道,只允许你想要的观众访问。 +- 实时频道,当流媒体没有直播时,继续聊天和闲逛。 +- Webhooks:通过完全可定制的 HTTP 请求将 OSP 连接到其他服务,这可以传递信息。 +- 将你的流媒体或视频直接嵌入到另一个网页中,很容易。 +- 通过 Facebook 或 Twitter 快速分享频道或视频。 +- 能够将用户界面定制为你自己的个人外观的主题 + +如何安装: + +要安装 Open Streaming Platform,请按照以下页面的详细说明进行。 + +> **[下载 Open Streaming Platform][16]** + +更多信息: + +- [主页][17] +- [源代码][18] +- [文档][19] + +### 总结 + +可用于 Linux 的自由开源的流媒体应用程序不多。然而,有几个商业性的流媒体应用程序,它们可能会给你更多的选择、质量和支持。但正如我所说,它们可能要花费你一些钱。所以,如果你是流媒体世界的新手,你可能想从上面列出的用于 Linux 系统的免费流媒体应用程序开始。我希望这篇文章能给你一些想法,让你根据自己的需要使用,并让你开始使用。 + +请在下面的评论栏里告诉我你最喜欢的流媒体软件。 + +加油。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/live-streaming-applications-linux-2022/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[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/ +[4]: https://obsproject.com/wiki/Home +[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg +[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html +[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://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-2048x1026.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/ +[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/14/172408h1rpephh9hutsrkd.jpg \ No newline at end of file diff --git a/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md new file mode 100644 index 0000000000..27d7c57e27 --- /dev/null +++ b/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md @@ -0,0 +1,224 @@ +[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven" +[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15432-1.html" + +Oh My Zsh 和 Powerlevel10k:天作之合 +====== + +> 这是一篇快速而简单的指南,用 Oh My Zsh 和 Powerlevel10k 主题改造你的 Zsh 终端 Shell,使其在 Ubuntu 和其他 Linux 发行版中看起来很酷。 + +![][1] + +大多数 Linux 发行版中的默认 Shell 是 Bash。Bash 是一个可靠的和传统的工具。然而,它缺乏一些自定义功能,比如漂亮的颜色、光标支持等等。 + +你可以使用另一个 Shell,即 Zsh 来得到更多的设置调整,并帮助你扩展你的 Bash Shell 体验。 + +这个简单的指南解释了如何安装 Zsh、Oh My Zsh 并应用 Powerlevel10k 主题。 + +### Oh My Zsh 和 Powerlevel10k 安装和配置指南 + +#### 1、安装 Zsh 和改变 Shell + +打开一个终端,使用以下适用于你的发行版的命令安装 Zsh。 + +Ubuntu、Debian、Linux Mint 和所有相关的发行版: + +``` +sudo apt install zsh +``` + +Fedora: + +``` +sudo dnf install zsh +``` + +Arch: + +``` +pacman -S zsh +``` + +安装完成后,找出 Zsh 的安装路径: + +``` +whereis zsh +``` + +然后使用当前用户的 Zsh 可执行路径改变 Shell。 + +``` +chsh -s /usr/bin/zsh <用户名 > +``` + +![改变当前用户的 Shell][2] + +关闭并再次打开终端。然后你应该看到 Zsh 的首次设置。选择选项 2。它将用一个默认的主题改变你的 Shell 提示符的外观,如下图所示: + +![Zsh 的首次设置][3] + +#### 2、安装 Oh My Zsh + +Oh My Zsh 是一套可以进一步定制 Zsh 的脚本。 + +首先,我们将从 GitHub 上下载 Oh My Zsh 脚本来安装它。如果你有 `wget` 和 `git` 软件包,那就最好了。如果还没有安装,请使用以下命令 [安装 wget][4] & git: + +``` +sudo apt install wget +sudo apt install git +``` + +然后用下面的命令安装 Oh My Zsh: + +``` +sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +``` + +然后你应该看到 Oh My Zsh 及默认主题 Robbyrussell 应用到了你的终端。 + +![安装 Oh My Zsh 和默认主题][5] + +Oh My Zsh 还附带了其他的主题,你可以 [使用这篇指南][6] 安装它们。然而,在本教程中,我将谈论一个特定的主题,即 Powerlevel10k。 + +#### 3、为 Oh My Zsh 安装 Powerlevel10k 主题 + +打开终端,运行以下命令,从 GitHub 上克隆 Powerlevel10k 代码库,并将文件放到 Oh My Zsh 的配置文件夹中。 + +``` +git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k +``` + +用文本编辑器打开 `~/.zshrc` 文件,将 `ZSH_THEME` 变量设为 `"powerlevel10k/powerlevel10k"`。 + +``` +cd ~ +``` + +``` +nano .zshrc +``` + +默认情况下,它应该是 Robbyrussell。删除 `”robbyrussell"`,添加下面的 `"powerlevel10k/powerlevel10k"`。 + +更改后,你的 `~/.zshrc` 文件应该是这样的: + +``` +ZSH_THEME="powerlevel10k/powerlevel10k” +``` + +保存并关闭该文件(`CTRL+O`、回车和 `CTRL+X`)。 + +![改变 Oh My Zsh 主题为 Powerlevel10k][7] + +重新启动你的终端,启动首次向导来设置 Powerlevel10k 主题。 + +#### 4、Powerleve10k 的首次设置 + +安装后启动终端时,Powerlevel10k 会提示你各种问题以了解你的 Linux 发行版设置。所以,根据你的需要按下键,按照你的口味来定制你的终端。下面是一些问题的例子截图,可以给你一些启发。 + +![Powerlevel10k - wizard1][8] + +![Powerlevel10k - wizard2][9] + +最后,你可以保存文件,享受你的终端的新面貌。 + +![应用 Powerlevel10k Zsh 主题设置后][10] + +如果你想再次重启配置向导,运行以下程序。你可以随心所欲地做,次数不限。 + +``` +p10k configure +``` + +基本设置就这样结束了。如果你想了解更多,请继续阅读。 + +### 更多配置(高级用法) + +#### 5、安装 Dracula GNOME 终端主题 + +如果你使用的是带有原生终端应用的 GNOME 桌面,你可以试试令人惊叹的 Drakula 主题。要做到这一点,打开一个终端,运行下面的命令来下载该主题: + +``` +git clone https://github.com/dracula/gnome-terminalcd gnome-terminal +``` + +打开 GNOME “终端”应用,进入偏好设置。通过点击 “+” 添加一个新的配置文件,并命名为 “drakula”。然后进入颜色标签,取消勾选 “使用系统主题的颜色use colors from system theme” 选项。 + +![为终端创建一个新的配置文件][11] + +回到终端,运行以下程序。当出现提示时,选择你刚才创建的配置文件名称,如上所述。 + +``` +./install.sh +``` + +![为 GNOME “终端”应用 Drakula 主题][12] + +一旦安装完成,回到偏好设置中,将 Drakula 配置文件标记为默认。 + +#### 6、Zsh 的自动补完和语法高亮 + +你可能想试试由社区开发的两个可用于 Zsh 的插件。它们是 zsh-autosuggestions 和 zsh-syntax-highlighting。 + +打开终端,运行以下程序,下载 zsh-autosuggestions,并将其放在插件文件夹中: + +``` +git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions +``` + +同样地,为语法高亮插件运行以下程序: + +``` +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting +``` + +通过文本编辑器打开 `~/.zshrc`文件(使用以下命令),并找到 `plugins=(git)` 一行。并将其替换为以下内容: + +``` +nano ~/.zshrc +``` + +``` +plugins=(git zsh-autosuggestions zsh-syntax-highlighting) +``` + +使用 `CTRL+O`、回车和 `CTRL+X` 保存并关闭该文件。 + +关闭并打开你的终端。现在,你应该可以使用自动建议和语法高亮了。 + +### 总结 + +这样就好了!你现在应该已经在你的系统上安装了 Oh My Zsh 和 Powerlevel10k 主题。你可以根据自己的需要,进一步定制 Powerlevel10k 主题的外观和行为。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/ohp10k.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg +[4]: https://www.debugpoint.com/wget-not-found-error/ +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg +[6]: https://www.debugpoint.com/install-use-zsh/ +[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg diff --git a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md similarity index 74% rename from translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md rename to published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md index adba1b18db..a35da5c56a 100644 --- a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md +++ b/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md @@ -3,14 +3,14 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15426-1.html" -Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台 +Home Assistant:谷歌助理、Alexa 和 Siri 的开源替代品 ====== -一个开源助手可以取代谷歌、Alexa 和 Siri? +> 一个开源助手可以取代谷歌助理、Alexa 和 Siri? ![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1] @@ -20,13 +20,13 @@ Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台 > 💡 该公司由 Home Assistant 的创始人 [Paulus Schoutsen][3] 领导。 -在上周的[博客][4]中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**或任何其他大型科技语音助手。 +在上周的 [博客][4] 中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**,也无需任何其他大型科技公司的语音助手。 -这是_一个对 Google、Alexa 和 Siri 的开源挑战者?_ 😲 +这是 _一个对谷歌助理、Alexa 和 Siri 的开源挑战者?_ 😲 让我们看看这到底是怎么回事。 -**它是什么?:**这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。 +**它是什么?** 这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。 Paulus 还断言,他们最重要的优先事项是支持不同的语言,他说: @@ -40,7 +40,7 @@ Paulus 还断言,他们最重要的优先事项是支持不同的语言,他 _为什么要重新发明已经存在的东西?最好是在它的基础上进行改进。_ -**可以期待什么?:**最初,语音助手将不能做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。 +**可以期待什么?** 最初,这个语音助手做不到做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。 它所关注的反而是**语音助手应该有的基本功能**。这样做是为了确保他们面前的工作是可控的。 @@ -48,9 +48,9 @@ _为什么要重新发明已经存在的东西?最好是在它的基础上进 在目前的状态下,Home Assistant 在其用户界面上支持 62 种不同的语言。他们计划用他们的语音助手增加对所有这些语言的支持。 -**何时期待?:**他们已经开始了这方面的工作,为每种语言建立一个[意图匹配句子集合][7]。 +**何时期待?** 他们已经开始了这方面的工作,为每种语言建立一个 [意图匹配句子集合][7]。 -这意味着社区可以通过将智能设备的命令改编成各自的母语来为语音助手的发展做出贡献。 +这意味着社区可以通过将智能设备的命令改编成各自的母语,来为语音助手的发展做出贡献。 他们的目标是在 **2023** 年的某个时候发布,并提到这将是“_语音年_”。 @@ -65,7 +65,7 @@ via: https://news.itsfoss.com/open-source-assistant/ 作者:[Sourav Rudra][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/) 荣誉推出 diff --git a/published/20230102.0 ⭐️ How to read and write files in Rust.md b/published/20230102.0 ⭐️ How to read and write files in Rust.md new file mode 100644 index 0000000000..096f1282e4 --- /dev/null +++ b/published/20230102.0 ⭐️ How to read and write files in Rust.md @@ -0,0 +1,116 @@ +[#]: subject: "How to read and write files in Rust" +[#]: via: "https://opensource.com/article/23/1/read-write-files-rust" +[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15442-1.html" + +如何在 Rust 中读取和写入文件 +====== + +> 跟随这个演示,学习如何在 Rust 中使用文件系统模块。 + +![][0] + +知道如何读写文件对各种用途都很有用。在 Rust 中,这项任务是通过标准库中的文件系统模块([std::fs][1])完成的。在这篇文章中,我将向你介绍如何使用这个模块。 + +为了演示这项任务,我准备了一些示例代码,也可以在 [GitHub][2] 上找到。 + +### 准备工作 + +在使用 Rust 时,失败的函数会返回 [Result][3] 类型。尤其是文件系统模块会返回专门的类型 [std::io::Result][4]。有了这些知识,你可以从 `main()` 函数中返回相同的类型: + +``` +fn main() -> std::io::Result<()> { +/* ...code comes here... */ +``` + +### Rust 文件写入 + +在 Rust 中执行文件的 I/O 操作是相对容易的。写入文件可以简化为一行: + +``` +use std::fs; +fs::write("favorite_websites.txt", b"opensource.com")?; +Ok(()) +``` + +使用错误传播操作符 `(?)`,错误信息被传递到调用函数中,随后可以处理错误。由于 `main()` 是调用栈中唯一的其他函数,如果写操作失败,错误信息将被传递到控制台输出。 + +[fs::write][5] 函数的语法是非常先进的。第一个参数是文件路径,它必须是 [std::path::Path][6] 类型。第二个参数是内容,它实际上是一个字节切片(`[u8]`)。Rust 将传递的参数转换为正确的类型。幸运的是,这些类型基本上是下面的例子中所处理的唯一类型。 + +使用文件描述符类型 [std::fs::File][7] 可以实现对写操作更简洁的访问: + +``` +let mut file = fs::File::create("favorite_websites.txt")?; +file.write_all(b"opensource.com\n")?; +Ok(()) +``` + +由于文件类型实现了 [Write][8] 特性,所以可以使用相关的方法来写入文件。然而,`create` 方法可以覆盖一个已经存在的文件。 + +为了获得对文件描述符的更多控制,必须使用 [std::fs::OpenOptions][9] 类型。这提供了类似于其他语言中的打开模式: + +``` +let mut file = fs::OpenOptions::new() + .append(true) + .open("favorite_websites.txt")?; + +file.write_all(b"sourceforge.net\n")?; +``` + +### Rust 文件读取 + +适用于写的东西也适用于读。读取也可以通过简单的一行代码来完成: + +``` +let websites = fs::read_to_string("favorite_websites.txt")?; +``` + +以上一行读取文件的内容并返回一个字符串。除了读取字符串,还有 [std::fs::read][10] 函数,如果文件包含二进制数据,该函数会将数据读成一个字节向量。 + +下一个例子显示了如何将文件的内容读入内存,随后逐行打印到控制台: + +``` +let file = fs::File::open("favorite_websites.txt")?; +let lines = io::BufReader::new(file).lines(); + +for line in lines { + if let Ok(_line) = line { + println!(">>> {}", _line); + } +} +``` + +### 总结 + +如果你已经熟悉了其他编程语言,你可能已经注意到没有 `close-` 函数(或类似的)来释放文件句柄。在 Rust 中,当相关变量超出作用域,文件句柄就会被释放。为了定义关闭行为,可以在文件表示的周围应用作用域 `({ })`。我建议你熟悉 [Read][11] 和 [Write][8] 特性,因为你可以在许多其他类型中找到这个特性的实现。 + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/read-write-files-rust + +作者:[Stephan Avenwedde][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lkxed +[1]: https://doc.rust-lang.org/std/fs/ +[2]: https://github.com/hANSIc99/rust_file_io +[3]: https://doc.rust-lang.org/std/result/enum.Result.html +[4]: https://doc.rust-lang.org/std/io/type.Result.html +[5]: https://doc.rust-lang.org/std/fs/fn.write.html +[6]: https://doc.rust-lang.org/std/path/struct.Path.html +[7]: https://doc.rust-lang.org/std/fs/struct.File.html +[8]: https://doc.rust-lang.org/std/io/trait.Write.html +[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html# +[10]: https://doc.rust-lang.org/std/fs/fn.read.html +[11]: https://doc.rust-lang.org/std/io/trait.Read.html +[0]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png \ No newline at end of file diff --git a/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md new file mode 100644 index 0000000000..8dfae90cf2 --- /dev/null +++ b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md @@ -0,0 +1,137 @@ +[#]: subject: "who Command in Linux: Explanation with Examples" +[#]: via: "https://www.debugpoint.com/who-command-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15430-1.html" + +who 命令的解释与示例 +====== + +![][0] + +> 这里是一个关于理解 Linux 中 who 命令的初学者指南,并带有几个例子。 + +这篇文章是 [Linux 命令][1]学习系列的一部分。 + +### who 命令 + +Linux 中的 `who` 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。 + +#### 语法 + +下面是 `who` 命令的基本语法: + +``` +who [OPTION]... [ FILE | ARG1 ARG2 ] +``` + +### 各种 who 命令和开关的例子 + +默认情况下,`who` 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。 + +``` +who +``` + +它给出了以下输出。你可以看到它显示了登录名是 `debugpoint`,终端 ID `tty2` 和登录的日期和时间。 + +``` +debugpoint tty2 2023-01-01 11:22 (tty2) +``` + +![who 命令 - 默认示例][2] + +然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即 `:0`。 + +``` +❯ who +debugpoint :0 2023-01-01 23:36 (:0) +``` + +要显示当前用户的用户名和信息,使用下面的方法: + +``` +whoami +``` + +使用 `-b` 选项查看最后一次系统启动时间: + +``` +❯ who -b +system boot 2023-01-01 23:36 +``` + +显示当前系统中登录的用户数: + +``` +❯ who -q +debugpoint +users=1 +``` + +所有上述命令与 `-H` 选项配对时,你会有一个更好的含标题行的信息,如下所示: + +``` +who -H + +NAME LINE TIME COMMENT +debugpoint tty2 2023-01-01 11:22 (tty2) +``` + +如果你想在 Linux 中显示与 `who` 命令有关的所有信息,请使用选项 `-a`: + +``` +who -aH + +NAME LINE TIME IDLE PID COMMENT EXIT +system boot 2023-01-01 11:19 +run-level 5 2023-01-01 11:19 +debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2) +``` + +像往常一样,你可以使用下面的重定向将 `who` 命令的输出保存到任何文件: + +``` +who > user_details.txt +``` + +#### who 命令选项的例子总结 + +下面是一些 `who` 命令的例子和它们的解释: + +下面是一些可以与 `who` 命令一起使用的选项: + +- `-a`: 显示每个用户的主机名、登录时间和进程 +- `-b`: 显示上次系统启动的时间 +- `-d`: 显示死进程(已终止但未从 utmp 文件中删除的进程) +- `-H`: 显示标题行 +- `-l`: 显示长格式的登录进程 +- `-m`: 只显示在 `ARG1 ARG2` 指定的终端上登录的用户的名字和行。 +- `-q`: 显示已登录用户的数量 +- `-u`: 显示拥有未脱离进程的用户的信息 +- `-w`: 显示已经登录的用户信息,格式与 utmp 文件相同 + +### 总结 + +我希望这篇文章能够帮助你了解 `who` 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/who-command-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/category/linux-commands +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg +[3]: https://man7.org/linux/man-pages/man1/who.1.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/10/130213zb6odhv8gl8cvxvo.jpg \ No newline at end of file diff --git a/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md new file mode 100644 index 0000000000..f4c1cb482d --- /dev/null +++ b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md @@ -0,0 +1,147 @@ +[#]: subject: "Whereis Command in Linux and BSD with Examples" +[#]: via: "https://www.debugpoint.com/whereis-command-linux/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15446-1.html" + +whereis 命令的解释与示例 +====== + +> 这是一份关于如何理解 Linux 和 BSD 中 `whereis` 命令的初学者指南,还包括几个例子。 + +![][1] + +这篇文章是 [Linux 命令][2] 学习系列的一部分。 + +### whereis 命令 + +`whereis` 命令是一个命令行程序,可以帮助你找出任何二进制可执行文件、源文件或手册页的路径或位置。 + +在告诉你如何使用 `whereis` 命令之前,让我们先看看其语法。 + +### 语法 + +以下是 whereis 命令的语法: + +``` +whereis [OPTIONS] FILE_NAME +``` + +`whereis` 命令的参数是你要搜索的程序名或文件名。该参数是必须的。 + +默认情况下,它在环境变量(如 `HOME`、`USER`、`SHELL` 等)中定义的路径中搜索程序。 + +让我们看下一些例子。 + +### Linux 和 BSD 中 whereis 命令的例子 + +下面是 `whereis` 命令的一个简单例子,我试图搜索 `firefox`。在下面的输出中,你可以看到包含 `firefox` 文件或可执行文件的路径列表。 + +``` +$ whereis firefox + +firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz +``` + +![Linux 中 whereis 命令的简单例子][3] + +带有选项 `-l` 的命令会显示其搜索的路径列表。比如: + +``` +$ whereis -l + +bin: /usr/bin +bin: /usr/sbin +bin: /usr/lib +bin: /usr/lib64 +bin: /etc +bin: /usr/games +bin: /usr/local/bin +bin: /usr/local/sbin +bin: /usr/local/etc +bin: /usr/local/lib +bin: /usr/local/games +``` + +如果 `whereis` 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 `nano`,它没有安装,它的输出如下: + +``` +$ whereis nano +``` + +``` +nano: +``` + +如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 `bash` 和 `nano`,输出结果是这样的: + +``` +$ whereis bash nano + +bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz +nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +``` + +你也可以使用 `-b` 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 `nano` 的二进制路径。 + +``` +$ whereis -b nano + +nano: /usr/bin/nano /usr/share/nano +``` + +同样,`-s` 选项可以搜索源文件,而 `-m` 选项可以搜索手册页。 + +``` +$ whereis -m nano + +nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +``` + +你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 `nano` 和 `firefox` 的二进制、手册页;而对于 `bash`,只搜索手册页。 + +``` +$ whereis -bm nano firefox -m bash + +nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz +firefox-m: +bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz +``` + +下面是选项的摘要: + +| 选项 | 描述 | +| :- | :- | +| `-b` | 只搜索二进制文件。| +| `-m` | 只搜索手册页部分。| +| `-s` | 只搜索源码。| +| `-u` | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,`whereis -m -u *` 会查询当前目录中没有文档的那些文件。| +| `-B` | 改变或限制 `whereis` 搜索二进制文件的地方。| +| `-M` | 更改或限制 `whereis` 搜索手册的位置。| +| `-S` | 更改或以其他方式限制 `whereis` 搜索源码的位置。| +| `-f` | 终止上一个目录列表并指示文件名的开始,并且必须在使用任何 `-B`、`-M` 或 `-S` 选项时使用。| + +### 总结 + +我希望这篇文章能够帮助你理解 `whereis` 命令及其基本原理。你也可以阅读 [whereis 手册页][4] 来了解更多。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/whereis-command-linux/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whereis-head.jpg +[2]: https://www.debugpoint.com/category/linux-commands +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg +[4]: https://linux.die.net/man/1/whereis \ No newline at end of file diff --git a/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md new file mode 100644 index 0000000000..9d332fdddd --- /dev/null +++ b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md @@ -0,0 +1,97 @@ +[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users" +[#]: via: "https://news.itsfoss.com/budgie-10-7-features/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15424-1.html" + +Budgie 10.7 即将带来 3 项关键改进 +====== + +> Budgie 10.7 有很多有价值的改进。请看本文。 + +![][1] + +Budgie 是一个旨在将杂乱无章降到最低,为用户提供一个干净/简约的体验的桌面环境。 + +早在 2022 年 1 月,Solus 的前联合负责人 Joshua Strobl [离开了 Solus][2],从事 [SerpentOS][3] 的开发,但他还继续参与 Budgie 的开发。 + +因此,他将该项目复刻到一个新的代码仓库,并成立了 [Buddies Of Budgie][4] 组织。三个月后,他们发布了 **Budgie 10.6**。 + +这是一个很不错的版本,即使不是很特别。 + +展望未来,他们发布了 2023 年的计划,其中包括发布 **Budgie 10.7**。 + +[Joshua Strobl][5] 在博文中也提到了更多计划内容: + +> 至少,它应该是一个很好的基础,并为 Budgie 桌面今年的发展方向提供一个清晰的蓝图:Budgie 10.x 将会增加新的功能、QoL 改进和修复。Budgie 11 的开发工作也将起步。 + +### Budgie 10.7 可以期待什么? + +Budgie 10.7 的开发工作自去年以来一直在进行。它本应在 2022 年发布,但需要更多的时间来提供一个完美的体验。 + +已经完成了很多工作,但其中一些值得注意的三个变化是: + +- 对 Budgie 菜单的更新 +- 新的 Budgie 屏幕截图工具 +- 对 Budgie 运行对话框的改进 + +#### 对 Budgie 菜单的更新 + +![Budgie 10.7 菜单][6] + +在这个版本中,Budgie 菜单将得到一些改进,例如。 + +- 一个新的电源菜单,包含所有常用的选项,如**暂停、休眠、注销和关闭电源**。 +- 更新的个人用户菜单可以快速访问 XDG 目录。这将让你直接打开文件管理器窗口进入主页、文档、音乐等文件夹。 +- 快速访问 Budgie 控制中心和桌面设置。 +- 能够从菜单本身显示各种桌面设置。 + +#### Budgie 屏幕截图工具 + +![Budgie 10.7 屏幕截图工具][7] + +终于,你不再需要下载另一个工具来在 Budgie 上进行截图;从 10.7 开始,它将具有一个原生的屏幕截图应用程序。 + +它将支持对屏幕、窗口的捕捉,甚至是进行选区捕捉。 + +#### 对 Budgie 运行对话框的改进 + +![Budgie 10.7 运行对话框][8] + +Budgie 运行对话框将获得许多改进,例如: + +- 一个新的应用程序索引器将被用于 Budgie 菜单,以寻找和分类应用程序。它应该能提供一个 “可预测的模糊搜索体验”。 +- 根据显示器的工作区域改进对话框的大小计算。 +- 更好的应用程序名称和描述的标签样式。 + +### 发布和未来计划 + +根据他们的 [公告][9],他们打算在 2023 年第一季度的某个时候发布 Budgie 10.7。他们还没有确定一个具体的日期。 + +并计划在不久之后发布带有错误修复的 10.7.1 版本,然后在 2023 年第二季度发布 Budgie 10.8。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/budgie-10-7-features/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png +[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/ +[3]: https://serpentos.com +[4]: https://blog.buddiesofbudgie.org +[5]: https://joshuastrobl.com +[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg +[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png +[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg +[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/ diff --git a/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md new file mode 100644 index 0000000000..65d0c7dced --- /dev/null +++ b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md @@ -0,0 +1,111 @@ +[#]: subject: "Learn w Command in Linux & BSD with Examples" +[#]: via: "https://www.debugpoint.com/w-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15437-1.html" + +w 命令的解释与示例 +====== + +> 下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。 + +![][0] + +这篇文章是 [Linux 命令][2]学习系列的一部分。 + +### w 命令 + +`w` 命令是 Linux 中的一个工具,它显示当前登录到系统中的用户及其进程的信息。它显示谁已登录,以及他们正在做什么活动。这意味着它可以显示他们在系统中运行什么进程。 + +### 语法 + +下面是 `w` 命令的基本语法: + +``` +w [options] [username] +``` + +`w` 命令接受一个可选的选项列表,然后是一个可选的用户名。如果指定了用户名,`w` 将只显示该用户拥有的进程信息。 + +### w 命令的例子及其用法 + +下面是一些使用 `w` 命令的例子。 + +当你只用 `w` 运行它时,它显示以下输出: + +``` +$ w + 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56 +USER TTY LOGIN@ IDLE JCPU PCPU WHAT +debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary +``` + +![Linux 中 w 命令的基本输出][3] + +解释:`USER` 列给出了用户名,然后是终端号、登录日期时间、空闲时间、CPU 使用率,以及用户正在执行的进程。 + +- `USER` - 在你的 Linux 或 BSD 系统中登录的用户名称。 +- `TTY` - 当前会话的终端标识符号。 +- `FROM` - 用户的主机名或 IP 地址。 +- `LOGIN@` - 用户登录的时间。它有时会根据你的系统设置显示日期。 +- `IDLE` - 用户与终端交互后的空闲时间。 +- `JCPU` - 该会话的所有用户进程使用的 CPU 时间。 +- `PCPU` - 该用户的进程(在 `WHAT` 字段中提到)使用的时间。 +- `WHAT` - 当前带参数的进程。 + +下面是 `w` 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。 + +![演示多用户环境的 w 命令输出][4] + +让我们看一下这个命令的一些选项。 + +要停止显示标题,使用 `-h` 选项。它与 `--no-header` 开关相同。 + +``` +$ w -h +``` + +`-f` 选项可以在输出中切换 `FROM` 字段的可见性。 + +``` +$ w -f +``` + +使用 `-s` 选项打印一个简短的输出,不包括 `JCPU`、`PCPU` 和 `LOGIN@` 信息。 + +``` +$ w -s +``` + +要显示一个特定用户(例如,`debugpoint`)拥有的所有进程的列表: + +``` +$ w debugpoint +``` + +### 结束语 + +我希望这篇文章能帮助你了解 `w` 命令及其基本原理。你也可以阅读 [w 手册页][5] 来了解更多。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/w-command-linux-examples/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whead.jpg +[2]: https://www.debugpoint.com/category/linux-commands +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg +[5]: https://linux.die.net/man/1/w +[0]: https://img.linux.net.cn/data/attachment/album/202301/12/100901f1rnn4zu2u12ligr.jpg \ No newline at end of file diff --git a/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md new file mode 100644 index 0000000000..b502bf537f --- /dev/null +++ b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md @@ -0,0 +1,183 @@ +[#]: subject: "Learn the Ada programming language by writing a simple game" +[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15440-1.html" + +通过编写“猜数字”游戏来学习 Ada 编程语言 +====== + +![][0] + +> 这个 "猜数字 "游戏是学习新编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。 + +当你想 [学习一种新的编程语言][1] 时,把注意力放在编程语言的共同点上是很好的: + +- 变量 +- 表达式 +- 语句 + +这些概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始琢磨其他的东西了。因为编程语言通常有相似之处,一旦你知道一种语言,你就可以通过了解其差异来学习另一种语言的基础知识。 + +学习新语言的一个好方法是用一个标准程序进行练习。这使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。 + +这个程序锻炼了编程语言中的几个概念: + +- 变量 +- 输入 +- 输出 +- 条件判断 +- 循环 + +这是一个学习新的编程语言的很好的实践实验。 + +### 安装 Ada + +[Ada 编程语言][2] 是一种独特的、高度结构化的语言,有专门一群开发者使用它。Ada 的工具链是 GNU Ada 开发环境,多被称为 GNAT。 + +你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上: + +``` +$ sudo dnf install gcc-gnat +``` + +在 Debian、Linux Mint 及衍生版上: + +``` +$ sudo apt install gnat +``` + +在 macOS 和 Windows 上,你可以从 [Adacore 网站][3] 下载一个安装程序(从下拉菜单中选择你的平台)。 + +### 在 Ada 中猜数字 + +创建一个名为 `game.adb` 的文件。 + +这个程序使用的两个内置 Ada 库:`Text_IO` 和 `Numerics.Discrete_Random`: + +``` +with Ada.Text_IO; +use Ada.Text_IO; +with Ada.Numerics.Discrete_Random; +``` + +#### 过程头 + +过程procedure 的名称必须与文件的名称一致。第一部分是定义变量。 + +注意,`discrete_random` 是专门针对特定范围的。在这里,允许数字范围: + +``` +procedure Game is + type randRange is range 1..100; + package Rand_Int is new ada.numerics.discrete_random(randRange); + use Rand_Int; + gen : Generator; + num : randRange; + incorrect: Boolean := True; + guess: randRange; +``` + +#### 过程逻辑 + +该逻辑从 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。 + +下一步是运行循环: + +- 输出猜测的指令 +- 读取该行 +- 将其转换为 `randRange`。 +- 将其与数字进行核对 + +如果数字匹配,`incorrect` 被设置为 `False`,导致循环的下一次迭代退出。 + +最后,程序在退出前会打印出对猜测正确性的确认: + +``` +begin + reset(gen); + num := random(gen); + while incorrect loop + Put_Line ("Guess a number between 1 and 100"); + declare + guess_str : String := Get_Line (Current_Input); + begin + guess := randRange'Value (guess_str); + end; + if guess < num then + Put_line("Too low"); + elsif guess > num then + Put_line("Too high"); + else + incorrect := False; + end if; + end loop; + Put_line("That's right"); +end Game; +``` + +### 编译程序 + +编译 Ada 程序的最简单方法是使用 `gnatmake`: + +``` +$ gnatmake game.adb +aarch64-linux-gnu-gcc-10 -c game.adb +aarch64-linux-gnu-gnatbind-10 -x game.ali +aarch64-linux-gnu-gnatlink-10 game.ali +``` + +这将生成一个名为 `game` 的二进制文件。 + +### 运行程序 + +程序的每次运行都会有一些不同。这是一个例子: + +``` +$ ./game +Guess a number between 1 and 100 +50 +Too low +Guess a number between 1 and 100 +75 +Too low +Guess a number between 1 and 100 +82 +Too low +Guess a number between 1 and 100 +90 +Too high +Guess a number between 1 and 100 +87 +Too low +Guess a number between 1 and 100 +88 +That's right +``` + +### 学习 Ada + +这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。 + +你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/learn-ada-simple-game + +作者:[Moshe Zadka][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/moshez +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/10/learn-any-programming-language +[2]: https://opensource.com/article/21/10/learn-ada-2021 +[3]: https://www.adacore.com/download/more +[0]: https://img.linux.net.cn/data/attachment/album/202301/13/173929sbddkk6fbd67uu5v.jpg \ No newline at end of file diff --git a/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md new file mode 100644 index 0000000000..ace2e685f9 --- /dev/null +++ b/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md @@ -0,0 +1,92 @@ +[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux" +[#]: via: "https://news.itsfoss.com/obs-studio-29-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15439-1.html" + +OBS Studio 29 发布,但对 Linux 用户来说变化不大 +====== + +> OBS Studio 29 是一个令人兴奋的版本,在所有平台上都有关键的改进。 + +![][1] + +[OBS Studio][2] 是最受欢迎的开源屏幕录制和流媒体软件之一。 + +许多 Linux 用户和内容创作者都在使用它,它有一套相当不错的工具和功能,可以让你录制和串流内容。 + +它的上一个主要版本发布于 2022 年 9 月,它带来了对苹果芯片的原生支持、更新了用户界面、改进了颜色支持等等。 + +它的下一个版本,即 v29,似乎有点意思,但对 Linux 用户来说变化不大 😞 + +### OBS Studio 29 的新变化 + +![OBS Studio 29][3] + +这个版本有大量的改进和修复;其中一些亮点包括: + +- 对 Linux 的媒体键支持 +- 新的音频过滤器 +- 改进的英伟达视频和音频过滤器 +- 更好的编码器支持 +- 各种修复和改进 + +**媒体键支持:** 你终于可以用键盘上的媒体键来控制 Linux 上的 OBS 的播放或音量了。 + +**新的音频过滤器:** OBS Studio 29 具有两个新的音频滤波器,一个向上压缩滤波器和一个 3 波段均衡器滤波器。 + +**改进的英伟达视频和音频过滤器:** 对这些过滤器进行了各种改进。 + +增加了一个新的屏蔽刷新滑块,同时支持时间处理,这应该是为了提供更好的屏蔽质量。 + +**更好的编码器支持:**,OBS Studio 29 对几个编码器的支持得到了改善,例如: + +- Windows 上的用于 AMD [RX7000 系列][4] 的 AV1 编码器。 +- Windows 上的用于英特尔 [Arc GPU][5] 的 AV1 编码器。 +- Windows 上的英特尔 HEVC 编码器。 +- macOS 上的原生 HEVC 和 ProRes 编码器。 + +> 📋 注意,这些编码器只支持 Windows 或 macOS。可悲的是,他们少了对 Linux 的支持。我们希望在 OBS Studio 的未来版本中加入这些功能。 + +**各种修复和改进:** 除了上面列出的那些,OBS Studio 29 还有很多其他的变化,例如: + +- Websockets 5.1.0 +- 回放缓冲区的内存限制现在被限制在已安装的系统内存的 75%,而不是固定在 8GB。 +- 支持对 SRT 和 RIST 输出的加密和认证。 +- 能够检查和/或静音个别的浏览器底座。 +- 在视频捕获的情况下,支持更高的刷新率。 + +关于更多的技术细节,你可以查看 [官方发布说明][6]。 + +### 下载 OBS Studio 29 + +要获得最新的 OBS Studio 29,你可以使用 [Flatpak][7],这是推荐的方法。 + +你也可以看看其官方下载页面中提到的其他安装方法。 + +> **[OBS Studio 29][8]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/obs-studio-29-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png +[2]: https://obsproject.com +[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png +[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series +[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html +[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0 +[7]: https://flathub.org/apps/details/com.obsproject.Studio +[8]: https://obsproject.com/download diff --git a/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md new file mode 100644 index 0000000000..73372bd403 --- /dev/null +++ b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md @@ -0,0 +1,233 @@ +[#]: subject: "A guide to strings in MySQL" +[#]: via: "https://opensource.com/article/23/1/strings-mysql" +[#]: author: "Hunter Coleman https://opensource.com/users/hunterc" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15434-1.html" + +MySQL 字符串指南 +====== + +![][0] + +> 了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。 + +字符串是你在 MySQL 中使用的最常见的数据类型之一。许多用户在他们的数据库中插入和读取字符串,而没有认真地了解过它们。本文旨在让你深入了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。 + +你可以把字符串分成两类:二进制和非二进制。你可能在大多数时候想到的是非二进制字符串。非二进制字符串有字符集和排序的不同。另一方面,二进制字符串存储诸如 MP3 文件或图像等东西。即使你在二进制字符串中存储了一个词,比如“歌曲”,它的存储方式也与非二进制字符串不同。 + +我将重点讨论非二进制字符串。MySQL 中的所有非二进制字符串都与字符集和排序相关。字符串的字符集控制哪些字符可以存储在字符串中,而它的排序方式控制当你显示字符串时如何排序。 + +### 字符集 + +要查看你系统中的字符集,请运行以下命令: + +``` +SHOW CHARACTER SET; +``` + +这个命令将输出四列数据,包括字符集: + +- 名称 +- 简要描述 +- 默认的排序方式 +- 字符集中每个字符的最大尺寸 + +MySQL 过去默认为 `latin1` 字符集,但自 8.0 版以来,默认为 `utf8mb4`。现在的默认排序方式是 `utf8mb4_0900_ai_ci`。`ai` 表示该排序对音调不敏感( `á` = `a`),而 `ci` 则指定它对大小写不敏感(`a` = `A`)。 + +不同的字符集将其字符存储在内存中不同大小的块中。例如,从上面的命令可以看出,存储在 `utf8mb4` 的字符被存储在 1 到 4 个字节大小的内存中。如果你想看看一个字符串是否包含多字节的字符,你可以使用 `CHAR_LENGTH()` 和 `LENGTH()` 函数。`CHAR_LENGTH()` 显示一个字符串包含多少个字符,而 `LENGTH()` 显示一个字符串有多少个字节,根据字符集的不同,它可能与一个字符串的字符长度相同,也可能不相同。下面是一个例子: + +``` +SET @a = CONVERT('data' USING latin1); + +SELECT LENGTH(@a), CHAR_LENGTH(@a); + ++------------+-----------------+ +| LENGTH(@a) | CHAR_LENGTH(@a) | ++------------+-----------------+ +| 4 | 4 | ++------------+-----------------+ +``` + +这个例子表明,`latin1` 字符集以单字节为单位存储字符。其他字符集,如 `utf16`,允许多字节的字符: + +``` +SET @b = CONVERT('data' USING utf16); + +SELECT LENGTH(@b), CHAR_LENGTH(@b); + ++------------+------------------+ +| LENGTH(@b) | CHAR_LENGTH(@b) | ++------------+------------------+ +| 8 | 4 | ++------------+------------------+ +``` + +### 排序 + +当你运行带有 `ORDER BY` 子句的 SQL 语句时,字符串排序方式将决定值的显示方式。你对排序方式的选择是由你选择的字符集决定的。当你运行上面的 `SHOW CHARACTER SET` 命令时,你看到了每个字符集的默认排序方式。你可以很容易地看到某个特定字符集的所有排序方式。例如,如果你想查看 `utf8mb4` 字符集允许哪些排序,请运行: + +``` +SHOW COLLATION LIKE 'utf8mb4%'; +``` + +排序方式可以是不区分大小写的,也可以是区分大小写的,或者是二进制的。让我们建立一个简单的表,向其中插入一些值,然后用不同的排序方式查看数据,看看输出结果有什么不同: + +``` +CREATE TABLE sample (s CHAR(5)); + +INSERT INTO sample (s) VALUES + ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC'); + +SELECT * FROM sample; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| ccccc | +| bbbbb | +| BBBBB | +| aaaaa | +| CCCCC | ++-----------+ +``` + +在不区分大小写的情况下,你的数据会按字母顺序返回,但不能保证大写的单词会排在小写的单词之前,如下图所示: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| aaaaa | +| bbbbb | +| BBBBB | +| ccccc | +| CCCCC | ++-----------+ +``` + +另一方面,当 MySQL 运行大小写敏感的搜索时,每个字母的小写将排在大写之前: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs; + ++-----------+ +| s | ++-----------+ +| aaaaa | +| AAAAA | +| bbbbb | +| BBBBB | +| ccccc | +| CCCCC | ++-----------+ +``` + +而按二进制排序方式将返回所有大写的值,然后再返回小写的值: + +``` +SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin; + ++-----------+ +| s | ++-----------+ +| AAAAA | +| ccccc | +| bbbbb | +| BBBBB | +| aaaaa | +| CCCCC | ++-----------+ +``` + +如果你想知道一个字符串使用哪种字符集和排序,你可以使用被恰当命名的 `charset` 和 `collation` 函数。运行 MySQL 8.0 或更高版本的服务器将默认使用 `utf8mb4` 字符集和 `utf8mb4_0900_ai_ci` 排序: + +``` +SELECT charset('data'); + ++-------------------+ +| charset('data') | ++-------------------+ +| utf8mb4 | ++-------------------+ + +SELECT collation('data'); + ++--------------------+ +| collation('data') | ++--------------------+ +| utf8mb4_0900_ai_ci | ++--------------------+ +``` + +你可以使用 `SET NAMES` 命令来改变所使用的字符集或排序方式。 + +要从 `utf8mb4` 字符集改为 `utf16`,运行这个命令: + +``` +SET NAMES 'utf16'; +``` + +如果你想选择默认以外的排序方式,你可以在 `SET NAMES` 命令中添加一个 `COLLATE` 子句。 + +例如,假设你的数据库存储西班牙语的单词。MySQL 的默认排序(`utf8mb4_0900_ai_ci`)将 `ch` 和 `ll` 视为两个不同的字符,并将它们排序。但在西班牙语中,`ch` 和 `ll` 是单独的字母,所以如果你想让它们按正确的顺序排序(分别排在 `c` 和 `l` 之后),你需要使用不同的排序。一个选择是使用 `utf8mb4_spanish2_ci` 排序方式: + +``` +SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2_ci'; +``` + +### 储存字符串 + +MySQL 允许你为你的字符串值选择不同的数据类型。(甚至比其他流行的数据库,如 PostgreSQL 和 MongoDB 更多。) + +下面是 MySQL 的二进制字符串数据类型的列表、它们的非二进制对应物,以及它们的最大长度: + +- `binary`:`char`(255) +- `varbinary`:`varchar`(65,535) +- `tinyblob`:`tinytext`(255) +- `blob`:`text`(65,535) +- `mediumblob`:`mediumtext`(16,777,215) +- `longblob`:`longtext`(4,294,967,295) + +要记住的一件重要事情是,与被存储在可变长度的字段中的 `varbinary`、`varchar`、`text` 和 `blob` 类型不同(也就是说,只使用需要的空间),MySQL 将二进制(`binary`)和字符(`char`)类型存储在固定长度的字段。因此,像 `char(20)` 或 `binary(20)` 这样的值将总是占用 20 个字节,即使你在其中存储了少于 20 个字符。对于二进制类型,MySQL用 ASCII NUL 值(`0x00`)填充这些值,对于 字符类型,用空格填充。 + +在选择数据类型时要考虑的另一件事是,你是否希望在字符串后面的空格被保留或剥离。在显示数据时,MySQL 会从以字符数据类型存储的数据中剥离空格,但不会剥离 `varchar` 的空格。 + +``` +CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10)); + +INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat '); + +SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2; + ++---------+---------+-----------------------------------+ +| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) | ++---------+---------+-----------------------------------+ +| cat | cat | 3 | 10 | ++---------+---------+-----------------------------------+ +``` + +### 总结 + +字符串是数据库中最常用的数据类型之一,而 MySQL 仍然是当今最流行的数据库系统之一。我希望你能从这篇文章中学到一些新的东西,并能用你的新知识来提高你的数据库技能。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/strings-mysql + +作者:[Hunter Coleman][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://opensource.com/users/hunterc +[b]: https://github.com/lkxed +[0]: https://img.linux.net.cn/data/attachment/album/202301/11/161410lh9944zpgjgmgs8t.jpg \ No newline at end of file diff --git a/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md new file mode 100644 index 0000000000..000cffc3b4 --- /dev/null +++ b/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md @@ -0,0 +1,78 @@ +[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!" +[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15433-1.html" + +酷冷至尊(CoolerMaster)的 MasterPlus 软件即将开源 +====== + +> MasterPlus 将被彻底改造并推出开源版本?听起来不错! + +![][1] + +大多数游戏/外设软件套装要么是专有的,要么是没有对 Linux 的官方支持。 + +因此,我们必须不断寻找开源工具来配置我们的硬件以获得原生功能。 + +像 [Piper][2]、[OpenRGB][3]、[Solaar][4] 等在这些情况下都很有用。 + +但是,有时候,即使是这些也是不够的。 + +幸运的是,[酷冷至尊(CoolerMaster)][5] 已经决定发布其 [MasterPlus][6] 软件的开源版本,旨在为其散热器和第三方的散热器提供服务。 + +**虽然这并不能保证它可以用在 Linux 系统上,但我们绝对可以期待它。** + +此举也应该鼓励雷蛇和罗技这样公司考虑制作精简过的开源工具。 + +让我们看看酷冷至尊打算怎么做。 + +### MasterPlus 开源版本:我们目前所知的情况 + +![酷冷至尊 Masterplus 改版][7] + +**酷冷至尊在最近的 [CES 2023][8] 活动中透露了他们计划发布新的 MasterPlus 开源版本**。感谢来自 [Boring Text Reviews][9] 的 Albert 让我们注意到了这一点。 + +**预期会有什么?** 对 MasterPlus 软件进行了全面的重新设计,有一个 API 插件系统,允许非酷冷至尊散热器与之整合。 + +他们已经澄清,酷冷至尊的独有功能不能配合其他散热器一起工作。因此,诸如检测 AIO 散热器的泄漏或计算 PSU 的效率等,都不能对第三方产品进行跟踪。 + +相反,该应用程序将只支持读取基本的性能信息,如温度和风扇速度,并能够配置 ARGB 设备。 + +如果你问我,**这总比没有好。** 而且,如果你的系统碰巧使用了酷冷至尊的组件,这对你来说是一个令人兴奋的消息! + +酷冷至尊还展示了 API 系统的潜在应用,让它与一个照片应用程序挂钩,用它来控制集成在电脑机箱侧面的辅助显示器。 + +此外,他们还介绍了其软件的全面云整合。但遗憾的是,这部分不会开源。 + +**什么时候?** 我们还没有 MasterPlus 开源的具体发布日期。 + +但是,如果让我猜,2023 年的某个时候是最好的选择。 + +💬 _即使该工具没有被确认可以在 Linux 上工作,对开源工具来说也是一个好的开始,不是吗?你怎么看?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/coolermaster-open-source-software/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png +[2]: https://github.com/libratbag/piper +[3]: https://openrgb.org +[4]: https://github.com/pwr-Solaar/Solaar +[5]: https://www.coolermaster.com +[6]: https://masterplus.coolermaster.com +[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png +[8]: https://www.ces.tech +[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too diff --git a/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md new file mode 100644 index 0000000000..7010eef3a9 --- /dev/null +++ b/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md @@ -0,0 +1,77 @@ +[#]: subject: "Linux is All Set to Disable Microsoft's RNDIS Drivers" +[#]: via: "https://news.itsfoss.com/linux-disable-microsoft-rndis/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15452-1.html" + +Linux 已准备好禁用微软的 RNDIS 驱动程序,但是…… +====== + +> Linux 内核将不再支持 RNDIS 驱动程序。这是一个好的举措吗?这对你意味着什么?在这里了解一下。 + +![Linux 已经准备好禁用微软的 RNDIS 驱动程序][1] + +微软的 RNDIS 协议(即 远程网络驱动接口规范Remote Network Driver Interface Specification 的简称),是一个专有的 USB 协议,用于计算机上的虚拟以太网功能。 + +这方面最常见的使用情况是通过连接到电脑上的 USB,使用手机的移动网络连接互联网,也称为 [系连][2]Tethering。 + +尽管它主要在 Windows 上工作,但它成为 Linux 内核的一部分已经有一段时间了。 + +但这种情况很快就会改变。 + +### 向 RNDIS 协议说再见? + +![][3] + +**发生了什么?** 周一,[Greg Kroah-Hartman][4] 创建了 [usb.git rndis-removal][5] 分支,其中他提到禁用 Linux 上所有 RNDIS 协议驱动程序的实现。 + +在该提交中他提到: + +> 微软的 RNDIS 协议按照设计是不安全的,在任何连接不信任的主机或设备的系统上使用它都是脆弱的。因为该协议不可能变得安全,所以只要禁用所有的 RNDIS 驱动,就可以防止任何人再使用它们。Windows 只在 XP 和更新一些的系统中需要用它,比这更早的 Windows 系统可以使用正常的 USB 类协议来代替,没有这些问题。 + +正如最初由 [Phoronix][6] 报道的那样,一旦这个协议在 Kconfig 选项中被标记为 “损坏”,它将再保留一段时间,最终从内核中删除。 + +但是**为什么呢?** + +众所周知,RNDIS 在 Windows 之外的平台上的实现是一团糟,并带来了相当多的安全风险。此外,RNDIS 并不像以前那样广泛使用了,它带来的安全风险可能是作出这一决定的主要原因之一。 + +**这对目前的用户有影响吗?你应该担心吗?** + +如果我们看一下对这一即将到来的变化的 [Reddit 讨论][7],我们会发现许多用户仍然很担心**这是否会破坏大家的 USB 连接**。 + +考虑到许多安卓手机仍然使用 RNDIS 而不是 CDC NCM(一种较新的协议),用户似乎对这一举措感到困惑 😕;不只是用户,一位 [谷歌的内核网络开发人员][8] 也提出了这个议题,但我们还没有看到对此的回应。 + +**但不是每个人都使用主线 Linux 内核?如果你不想受到这种变化的影响,你是否应该坚持使用 LTS 版本的内核?** + +此外,用户希望更清楚地了解这是否会影响到所有人。 + +但是,从目前来看,Greg 可能并没有给出更多的细节来说服一些相关用户。 + +🤔 当然,我们不是 Linux 内核维护者。所以,最好等这个提交通过时,我希望 Linux 内核维护者能比我们知道更多的信息。 + +💭 你对这个计划中的 Linux 内核的变化有什么看法?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-disable-microsoft-rndis/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/linux-to-disable-ms-network-drivers.png +[2]: https://en.wikipedia.org/wiki/Tethering +[3]: https://news.itsfoss.com/content/images/2023/01/kernel-patch-rndis.jpg +[4]: https://twitter.com/gregkh +[5]: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=rndis-removal&id=5eb127bb9741c1480aff95ffa4e1bd4cd9b5b16d +[6]: https://www.phoronix.com/news/Linux-Disabling-RNDIS-Drivers +[7]: https://www.reddit.com/r/linux/comments/108avzx/linux_preparing_to_disable_drivers_for_microsofts/ +[8]: https://lkml.org/lkml/2022/11/23/1502 diff --git a/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md new file mode 100644 index 0000000000..d4ca8baa62 --- /dev/null +++ b/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md @@ -0,0 +1,59 @@ +[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open" +[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15448-1.html" + +Ubuntu 23.04 “月球龙虾” 壁纸比赛开始了 +====== + +![][1] + +> 喜欢数字绘画或摄影?这个壁纸比赛可以让你的照片出现在 Ubuntu 23.04 的官方版本中。 + +### Ubuntu 23.04 的壁纸比赛 + +Ubuntu 23.04 “月球龙虾Lunar Lobster” 版本将于 2023 年 4 月发布。按照时间表,在即将到来的 BETA 版本之前,官方壁纸比赛现在已经开始。 + +按照官方的指导方针,你必须拥有你所发布的图片的权利,而且必须是原创。可以说,不应该考虑人工智能生成的图像。 + +此外,你提交的图片应该至少有 3840x2160px 的尺寸,文件大小不应超过 10MB。文件格式以 SVG 和 WebP 为佳。然而,标准格式如 PNG 和 JPG 也可以接受。 + +此外,你的图片不应该有任何水印、标志或文字,如 “Lunar Lobster” 或 “Ubuntu”。你可以在 [这里][2] 阅读详细的指导原则。 + +最后,你的壁纸可以以官方吉祥物 —— “月球” 和 “龙虾” 为特色。 + +提交截止日期为 2023 年 2 月 6 日,最终获胜者将在 2023 年 2 月 18 日社区投票后公布。 + +![早期提交的 Ubuntu 23.04 官方壁纸之一][3] + +### 如何提交? + +前往官方 Discourse 论坛的帖子下提交你的作品。请务必提到你的名字和 Twitter,如果被选中的话,可以得到 Ubuntu 团队的致谢。 + +> **[提交壁纸][4]** + +戴上你的创意帽子,提交所有那些很酷的壁纸吧! + +_图片来源:各自的作者_ + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/ + +作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg +[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md +[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg +[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132 diff --git a/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md new file mode 100644 index 0000000000..6bf9cc9436 --- /dev/null +++ b/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md @@ -0,0 +1,144 @@ +[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions" +[#]: via: "https://news.itsfoss.com/discourse-3-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15449-1.html" + +Discourse 3.0 发布,增加了很多需要的功能 +====== + +> 开源论坛软件 Discourse 有了一个新的重大版本升级!让我们看看有什么新东西。 + +![][1] + +Discourse 是一个开源的论坛平台,以其丰富的功能和第三方集成而闻名。 + +它也是 [最好的开源论坛软件][2] 之一,你可以部署在你的 Linux 服务器上来建立一个社区。 + +现在,我们来看看 Discourse 的最新版本。 + +在 [Discourse 2.0][4] 发布已近五年之后,**Discourse 3.0 终于来了**。 + +这个版本包含了大量的新功能和改进,让我带你看看: + +### 🆕 Discourse 3.0 的新变化 + +![Discourse 3.0][5] + +Discourse 3.0 提供了很多东西,其中一些值得注意的亮点包括: + +- 新的设置向导 +- 用户状态 +- 通知菜单 +- 新的侧边栏 +- 实时聊天 +- 用户提示 + +#### 新的设置向导 + +![新的设置向导][6] + +Discourse 现在有一个新的设置向导,可以让你快速配置一些最重要的选项。 + +因此,像将社区设置为私人、仅邀请、需要批准等选项在论坛设置的初始阶段就会显示出来。 + +#### 用户状态 + +![Discourse 用户状态][7] + +与现在大多数社区平台的做法类似,Discourse 现在也支持设置用户状态。 + +用户可以设置一个自定义的表情符号和文字,在整个平台上显示在他们的头像附近,无论是帖子、聊天还是用户卡中。 + +#### 通知菜单 + +![Discourse 通知][8] + +这终于实现了。 + +Discourse 现在有一个专门的通知菜单,让你更容易跟踪你在论坛上的活动。 + +#### 新的侧边栏 + +![Discourse 侧边栏][9] + +这是的另一项你可能会喜欢的用户体验改进。 + +你现在可以在新的侧边栏上添加聊天频道、标签和类别,以方便访问你想追踪的东西。 + +论坛的管理员也可以为游客和新成员设置一个默认的侧边栏配置;这样,每个人都可以对论坛提供的内容有一个很好的展望。 + +#### 实时聊天 + +![Discourse 实时聊天][10] + +Discourse 现在支持实时聊天;频道管理员可以选择创建一个非正式的讨论、展示,甚至是备忘录的空间,如果这对他们有用的话。 + +Discourse 的产品经理 Rishabh Nambiar 提到: + +> 我们的目标是,当对话在快节奏的聊天和慢节奏的讨论之间转换时,赋予社区以综合的体验。 +> +> 当想法被激发出来,在一个更容易被发现的地方,聊天信息可以被引用到话题中,讨论可以随着时间的推移而继续,并允许不同时间和地点的人以后加入进来。 + +#### 用户提示 + +![Discourse 用户提示][11] + +这个功能对不熟悉 Discourse 的新用户很有帮助。 + +当用户第一次使用某个特定的功能时,他们会得到与 Discourse 的功能相关的提示。 + +#### 🛠️ 其他变化和改进 + +上面提到的并不是这次发布的 Discourse 的全部变化,下面是其他一些亮点: + +- 改造了标签系统。 +- 改进了搜索界面。 +- 更新了开源工具。 +- 改进了错误页面。 +- 新的闪屏。 +- 改进了页面加载动画。 +- 更快的图像预加载。 + +如果你想深入了解这个版本的技术细节,请查阅 [发行说明][12]。 + +### 📥 获取 Discourse 3.0 + +如果你使用的是 [Discourse 的托管计划][13],你一定已经收到了 3.0 的更新,你所要做的就是通过你的管理设置启用新功能。 + +如果你是自我托管,你必须通过点击管理仪表板上的“更新”按钮手动更新你的实例。 + +对于新用户,请在他们的官方网站上探索更多关于 Discourse 的信息。 + +> **[Discourse][14]** + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/discourse-3-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png +[2]: https://itsfoss.com/open-source-forum-software/ +[3]: https://itsfoss.community +[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/ +[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg +[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png +[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg +[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg +[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg +[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg +[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg +[12]: https://meta.discourse.org/t/discourse-version-3-0/ +[13]: https://www.discourse.org/pricing +[14]: https://www.discourse.org diff --git a/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md new file mode 100644 index 0000000000..e3b3fc4b28 --- /dev/null +++ b/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md @@ -0,0 +1,98 @@ +[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform" +[#]: via: "https://news.itsfoss.com/medium-mastodon/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15445-1.html" + +Mastodon 继续增长,Medium 的新社区平台也加入了 +====== + +> Mastodon 的又一次胜利!Medium 为其用户推出了一个 Mastodon 实例。 + +![][1] + +Mastodon 在最近一段时间的增长是巨大的;越来越多的人正在转向这个 Twitter 的替代品。 + +如果你不熟悉 Mastodon,它是目前 [最好的主流社交媒体替代品][2] 之一,有可能成为 Twitter 的替代品,它是 **完全开源和去中心化的**。 + +随着 Twitter 的不断发生变化和去年埃隆·马斯克对它的收购,更多的用户开始对 Mastodon 这个平台产生了浓厚的兴趣。 + +Vivaldi [最近推出了][3] 其由 Mastodon 驱动的社区,[Mozilla 基金会][4] 也在考虑类似的东西。 + +现在,[Medium][5] 已经向前迈出了一步,推出了它们的 Mastodon 实例。 + +### Medium 启动了一个由 Mastodon 驱动的社区 + +在 [最近的公告][6] 中,Medium 在 [me.dm][7] 推出了其 Mastodon 实例,专注于 “帮助他们的作者、出版物和读者在 联盟宇宙Fediverse 中找到一个家”。 + +该网站(即 Mastodon 实例)旨在成为 Medium 的用户的专属空间。 + +![][8] + +换句话说,它将成为 Medium 用户的专属社交网络平台。 + +有了这个网络平台,他们也可以开始进行 500 字以内的短文写作了。 + +Medium 的 CEO 提到: + +> 相比之下,Mastodon 主要是为 500 字以内的短文写作服务的。用一个不太双关的说法:今天,我们正在借助 Mastodon 上的实例(me.dm)将我们用于发表长文的 Medium 扩展到短文 medium(小写 m)。除了更简短的形式外,Mastodon 还带来了围绕联盟概念的重要创新。 + +因此,看起来 Medium 正在试水和尝试新的东西。 + +对于那些喜欢一目了然的内容而不是冗长信息的用户来说,可能是一件好事。 + +如果操作得当,这对他们来说会有很好的效果。 + +**那么,你怎样才能加入 Medium 的 Mastodon 平台? + +> 💡 你看,最初,**只有选定的作者和出版物** 才能进入这个 Mastodon 实例。现有的 Medium 用户可以尝试发送一个 [注册请求][9],但要经过他们的批准。 + +因此,如果你发送一个注册请求,你得等待批准。 + +他们还计划作为付费会员的额外服务来邀请作家和读者。 + +他们已经在为他们的 Mastodon 实例开发一个 “用 Medium 注册” 的选项,这应该是为了让你更容易开始使用。 + +关于这一点,他们提到: + +> 有这么多的 Mastodon 实例可供选择,我们计划让 me.dm 一开始就有几个重要的好处:可靠的基础设施和审核,一个短域名让你更容易分享你的用户名,为新用户提供更好的入门培训,以及一个有趣的本地信息源。 + +### 去中心化和开源平台的步伐加快了 + +去中心化的平台正在变得比人们十年前预期的更加流行。 + +最大的促成因素是大型科技公司越来越多的不稳定的变化和决定,迫使用户不断调整他们在社交媒体平台上的互动方式和理由。 + +有了开源和去中心化的平台,用户得到了透明度,更多的数据控制,以及更多的自由。 + +我们可能没有想到,Mastodon 作为一个平台,逐渐成为各种组织的社区建设的一个重要组成部分。因此,我们非常期待在不久的将来看到更多变化。 + +💭 欢迎在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/medium-mastodon/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png +[2]: https://itsfoss.com/mainstream-social-media-alternaives/ +[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/ +[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/ +[5]: https://medium.com +[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11 +[7]: https://me.dm/ +[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg +[9]: https://me.dm/auth/sign_up +[10]: https://unlocator.com/favicon.ico +[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg diff --git a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md deleted file mode 100644 index c42c37b80c..0000000000 --- a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md +++ /dev/null @@ -1,133 +0,0 @@ -[#]: subject: "EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0" -[#]: via: "https://news.itsfoss.com/endeavouros-cassini/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0 -====== - -EndeavourOS's latest update has arrived! - -![EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0][1] - -EndeavourOS is a popular Arch-based Linux distribution that aims to make the Arch experience easy. - -Code-named 'Cassini', it signifies a new phase in EndeavourOS's development that aims to make the OS better than its previous iterations. - -Similar to a [previous release][2], this release is also named after one of NASA's [projects][3]. - -Let's see what makes this release so unique. - -Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][4]Unlocator![][5] - -### 🆕 EndeavourOS 'Cassini': What's New? - -![endeavouros cassini][6] - -The 'Cassini' release packs plenty of improvements, some of the noteworthy highlights include: - -- **Improved ARM Support** -- **Linux Kernel 6.0** -- **Various User Interface Updates** -- **Updated Software Packages** - -#### Improved ARM Support - -![endeavouros cassini arm][7] - -EndeavourOS now features support for the [Pinebook Pro][8]. - -This was made possible by including the new 'linux-eos-arm' kernel that comes with the 'amdgpu' driver for supporting generic ARM devices. - -The developers also added that: - -> We’ve leveraged existing work and PKGBUIDs of both Manjaro ARM and archlinuxarm-pbp projects to create our Pinebook Pro images and would like to thank them for their continuing work in supporting PineBook Pro for Arch Linux ARM platform. - -Furthermore, EndeavourOS also has enhanced support for ARM devices like the [Phytiuim D2000][9], [Raspberry Pi][10], and [Odroid N2+][11]. - -#### 🎨 Various User Interface Updates - -![endeavouros cassini budgie][12] - -With this release, EndeavourOS has received quite a few user interface tweaks; some of the highlights include: - -- The 'Discover' icon was replaced with a 'Konsole' icon on KDE Plasma. -- [Qogir theme][13] is being used for icons in Cinnamon and Budgie. -- In the case of GNOME, the wallpaper follows night and day theme like the Console. -- The default wallpaper is now set by the 'settings' package instead of 'welcome'. -- A load of cleanup work for Calamares. - -#### Linux Kernel 6.0 - -EndeavourOS 'Cassini' features Linux Kernel 6.0.12.arch1-1, which enables it to have enhanced support for [OpenRISC][14] and [LoongArch][15] architectures. - -Alongside that, there is a noticeable uplift in performance for AMD EPYC, Ryzen Threadripper, and Intel Xeon Ice Lake chips. - -You can go through our coverage for more details: - -#### Updated Software Packages - -This release also features a lot of updated software, including: - -- Calamares 3.3.0-alpha3 -- Firefox 108.0.1-1 -- Mesa 22.3.1-1 -- Xorg-Server 21.1.5-1 -- nvidia-dkms 525.60.11-1 -- Grub 2:2.06.r403.g7259d55ff-1 - -#### 🛠️ Other Changes - -There were also a few other changes that I want to mention, such as: - -- [dracut][16] has replaced [mkinitcpio][17] to handle the installation process. -- You can now choose not to install a bootloader. -- You have two bootloader options to pick from, [systemd-boot][18] and [Grub][19]. -- The Grub submenu is now enabled by default. -- gedit and GNOME terminal have been replaced by [gnome-text-editor][20] and [GNOME Console][21]. - -### 📥 Download EndeavourOS Cassini - -You can find the latest release on the [official website][22] from one of the available mirrors. - -_💬 What do you think of this release? Was it worth the wait?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/endeavouros-cassini/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/endeavour-os-cassini-release.png -[2]: https://news.itsfoss.com/endeavouros-artemis-release/ -[3]: https://solarsystem.nasa.gov/missions/cassini/overview/ -[4]: https://unlocator.com/favicon.ico -[5]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg -[6]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini.jpg -[7]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_ARM.png -[8]: https://itsfoss.com/pinebook-pro/ -[9]: https://phytium.com.cn/en/article/721 -[10]: https://www.raspberrypi.org -[11]: https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/ -[12]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_2-1.jpg -[13]: https://github.com/vinceliuice/Qogir-theme -[14]: https://openrisc.io -[15]: https://en.wikipedia.org/wiki/Loongson -[16]: https://dracut.wiki.kernel.org/index.php/Main_Page -[17]: https://wiki.archlinux.org/title/mkinitcpio -[18]: https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/ -[19]: https://www.gnu.org/software/grub/ -[20]: https://itsfoss.com/gnome-text-editor/ -[21]: https://gitlab.gnome.org/GNOME/console -[22]: https://endeavouros.com/latest-release/ diff --git a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md deleted file mode 100644 index e55d86badd..0000000000 --- a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "Tails 5.8 Arrives with Official Wayland Support" -[#]: via: "https://debugpointnews.com/tails-5-8-release/" -[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Tails 5.8 Arrives with Official Wayland Support -====== - -![][1] - -**A sizable update arrives in Tails 5.8, bringing Wayland support, newly redesigned persistence storage and more.** - -Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][2] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously. - -![Tails 5.8 desktop][3] - -### What’s New in Tails 5.8 Release - -At a high level, Tails 5.8 includes significant redesigns of existing features, improved usability, and strengthened security. Also, bringing modern tech aligns with the changing times and needs of the hour. - -The persistence storage module gets a complete redesign in this release. In the new version of Persistent Storage, you no longer have to restart after creating a Persistent Storage or activating a new feature. You can also change the password for your Persistent Storage from within the application. Additionally, you can now create a Persistent Storage directly from the Welcome Screen if you don’t already have one. The Persistent Storage had not been updated much since its initial release in 2012 due to challenges in modifying and improving the code. - -The Tails team has also replaced the deprecated X.Org display system with Wayland. While you may not notice any visual changes, Wayland provides increased security for Tails by making it harder for a compromised application to compromise or misuse other applications. - -![Browse internet securely using Tails 5.8][4] - -For example, since Tails 4.8, the Unsafe Browser has been disabled by default due to a security vulnerability that could reveal your IP address and deanonymize you through the use of an invisible Unsafe Browser. Wayland addresses this vulnerability and makes it safe to enable the Unsafe Browser by default again. However, if desired, you can still disable the Unsafe Browser from the Welcome Screen. - -In addition to addressing security concerns, Wayland also introduces new features that were previously not supported in the Unsafe Browser, including sound, file uploads and downloads, alternative input methods for non-Latin languages such as Chinese, and accessibility features like the screen reader and virtual keyboard. - -The Tails team has also made it easier to enter new Tor bridges by allowing you to scan a QR code. You can obtain a QR code by sending an empty email to [bridges@torproject.org][5] from a Gmail or Riseup email address or by visiting [https://bridges.torproject.org/][6] and printing the QR code on paper. - -Furthermore, the entire Debian stable base is bumped up to the latest version, including pre-loaded apps. - -A complete changelog is available [here][7] if you want to dive deeper into the changes. - -### Download and upgrade - -If you are already running a prior version of the Tails 5.0 series, you should automatically get this update once you boot up Tails from the USB stick. - -In addition, if you want to install Tails 5.8 fresh, grab the ISO files from the below links: - -- [For USB sticks (USB image)][8] -- [For DVDs and virtual machines (ISO image)][9] - -Via [release announcement][10]. - --------------------------------------------------------------------------------- - -via: https://debugpointnews.com/tails-5-8-release/ - -作者:[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://debugpointnews.com/author/dpicubegmail-com/ -[b]: https://github.com/lkxed -[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tails58head.jpg -[2]: https://www.debugpoint.com/privacy-linux-distributions-2022/ -[3]: https://debugpointnews.com/wp-content/uploads/2022/12/Tails-5.8-desktop.jpg -[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Browse-internet-securely-using-Tails-5.8.jpg -[5]: https://debugpointnews.commailto:bridges@torproject.org -[6]: https://bridges.torproject.org/ -[7]: https://gitlab.tails.boum.org/tails/tails/-/blob/master/debian/changelog -[8]: https://tails.boum.org/install/download/index.en.html -[9]: https://tails.boum.org/install/download-iso/index.en.html -[10]: https://tails.boum.org/news/version_5.8/index.en.html diff --git a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md deleted file mode 100644 index 07be806ba7..0000000000 --- a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately" -[#]: via: "https://news.itsfoss.com/pinta-2-1-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately -====== - -Pinta 2.1 comes with WebP support and various other useful improvements. - -![Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately][1] - -Pinta is a free and open-source drawing app for Linux that offers a ton of features in a relatively small package. - -It is one of the [best Linux tools for digital artists][2] available. - -Its last major release was in January 2022, introducing improved Hi DPI support, GTK 3 port, and [more][3]. - -Marking 2023's first release, Pinta 2.1 promises to offer even further refinements. - -**Notice the new Pinta icon in the image above? Well, that's one of the changes.** - -Let's see how this release pans out. - -### 🆕 What's New in Pinta 2.1? - -![pinta 2.1][4] - -[Pinta 2.1][5] is offering plenty of new improvements; some notable ones include: - -- **WebP Support** -- **Improved .ora Support** -- **Enhanced Handles** -- **Dark Mode** -- **Improved File Dialog** -- **Various Bug Fixes and Changes** - -**WebP Support:** Pinta finally has support for WebP files, but it does not come out of the box. For Linux users, the [webp-pixbuf-loader][6]**dependency is required to enable WebP support.** - -> 📋 Unfortunately, WebP support is not included in the Flatpak and Snap builds of Pinta 2.1. Even if you have that library installed on your system. So, you probably have to build it from the source or use WebP files on Windows/macOS only. - -**Improved .ora Support:** With Pinta 2.1, hidden layers are now round-tripped properly for .ora files. - -Furthermore, when you save a .ora file, a flattened image is now included in the archive. - -It is like this because it is required by the spec to accommodate the viewer software. - -**Enhanced Handles:** The selection move and shape control point handles are now more intuitive, especially when working on zoomed-in or small images. - -**Dark Mode:** Pinta has finally received full support for dark mode across the app; all icons, toolbars, dialogs, etc., are now in high-res SVG format. - -**Improved File Dialog:** The file dialog now uses MIME types on Linux, allowing valid image files with unknown extensions to be included in the image file filter. - -**Various Bug Fixes and Changes:** Apart from the changes I listed above, here are some that are also worth mentioning: - -- Upgraded to .NET 7. -- New '**Transparency Mode**' in Gradient Tool. -- Standard GTK about dialog. -- The gradient tool now updates properly while drawing transparent colors. -- The new screenshot command now uses the XDG portal. - -If you want to go deep into the technical details of the release, head to its [release notes][7]. - -### 📥 Download Pinta 2.1 - -Pinta 2.1 is available in the [Snap store][8], as well as on [Flathub][9]. The repositories include an outdated back, so you can safely ignore it. - -You can also try building it from the [source code][10] and explore other download options for Windows/macOS. - -[Download Pinta 2.1][11] - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/pinta-2-1-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/pinta-2-1-release.png -[2]: https://itsfoss.com/best-linux-graphic-design-software/ -[3]: https://news.itsfoss.com/pinta-2-0-release/ -[4]: https://news.itsfoss.com/content/images/2023/01/Pinta_2.1.png -[5]: https://www.pinta-project.com -[6]: https://github.com/aruiz/webp-pixbuf-loader/ -[7]: https://github.com/PintaProject/Pinta/releases/tag/2.1 -[8]: https://snapcraft.io/pinta -[9]: https://flathub.org/apps/details/com.github.PintaProject.Pinta -[10]: https://github.com/PintaProject/Pinta -[11]: https://www.pinta-project.com/releases/ - diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md deleted file mode 100644 index f0b7306e90..0000000000 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ /dev/null @@ -1,235 +0,0 @@ -[#]: subject: "Codecademy vs. The BBC Micro" -[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" -[#]: author: "Two-Bit History https://twobithistory.org" -[#]: collector: "lujun9972" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -[Codecademy][T1] 比之 [The BBC Micro][T2] -====== - -TD -Codecademy vs. The BBC Micro -====== - -20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。这是多么吸引人,少数狂热的爱好者注意到了并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 - -DN -In the late 1970s, the computer, which for decades had been a mysterious, hulking machine that only did the bidding of corporate overlords, suddenly became something the average person could buy and take home. An enthusiastic minority saw how great this was and rushed to get a computer of their own. For many more people, the arrival of the microcomputer triggered helpless anxiety about the future. An ad from a magazine at the time promised that a home computer would “give your child an unfair advantage in school.” It showed a boy in a smart blazer and tie eagerly raising his hand to answer a question, while behind him his dim-witted classmates look on sullenly. The ad and others like it implied that the world was changing quickly and, if you did not immediately learn how to use one of these intimidating new devices, you and your family would be left behind. - -在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年。通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 - -DN -In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. - -BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] - -DN -In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] - -去年,一份包括了由 _计算机认知计划_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? - -DN -[An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? - -### 计算机认知计划 ([Computer Literacy Project][T3]) - -DN -### The Computer Literacy Project - -微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 - -DN -The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” - -该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 - -DN -The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. - -该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_成人扫盲计划(Adult Literacy Project)_相似的多媒体项目。_成人扫盲计划(Adult Literacy Project)_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 - -DN -The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. - -_计算机认知计划_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 - -DN -The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. - -BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_计算机认知计划_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量将弥补一些 BASIC 语言的常见缺点。[6][8] - -DN -The TV producers and presenters at the BBC were not capable of building a microcomputer on their own. So they put together a specification for the computer they had in mind and invited British microcomputer companies to propose a new machine that met the requirements. The specification called for a relatively powerful computer because the BBC producers felt that the machine should be able to run real, useful applications. Technical consultants for the _Computer Literacy Project_ also suggested that, if it had to be a BASIC dialect that was going to be taught to the entire nation, then it had better be a good one. (They may not have phrased it exactly that way, but I bet that’s what they were thinking.) BBC BASIC would make up for some of BASIC’s usual shortcomings by allowing for recursion and local variables.[6][8] - -BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 - -DN -The BBC eventually decided that a Cambridge-based company called Acorn Computers would make the BBC Micro. In choosing Acorn, the BBC passed over a proposal from Clive Sinclair, who ran a company called Sinclair Research. Sinclair Research had brought mass-market microcomputing to the UK in 1980 with the Sinclair ZX80. Sinclair’s new computer, the ZX81, was cheap but not powerful enough for the BBC’s purposes. Acorn’s new prototype computer, known internally as the Proton, would be more expensive but more powerful and expandable. The BBC was impressed. The Proton was never marketed or sold as the Proton because it was instead released in December 1981 as the BBC Micro, also affectionately called “The Beeb.” You could get a 16k version for £235 and a 32k version for £335. - -1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“先进 RISC 架构设备(Advanced RISC Machine)”,然而最初它代表的是“Acorn RISC 架构设备(Acorn RISC Machine)”。ARM 架构背后的 ARM 公司(ARM Holding)就是 Acorn 公司在1990年之后的延续。 - -DN -In 1980, Acorn was an underdog in the British computing industry. But the BBC Micro helped establish the company’s legacy. Today, the world’s most popular microprocessor instruction set is the ARM architecture. “ARM” now stands for “Advanced RISC Machine,” but originally it stood for “Acorn RISC Machine.” ARM Holdings, the company behind the architecture, was spun out from Acorn in 1990. - -![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ - -DN -![Picture of the BBC Micro.][9] _A bad picture of a BBC Micro, taken by me at the Computer History Museum -in Mountain View, California._ - -### 名为“计算机程序(The Computer Programme)”的电视系列片 - -DN -### The Computer Programme - -十几个不同的电视系列片最终作为_计算机认知计划_的一部分创作出来。第一部作品是一部名为_计算机程序(The Computer Programme)_的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 - -DN -A dozen different TV series were eventually produced as part of the _Computer Literacy Project_, but the first of them was a ten-part series known as _The Computer Programme_. The series was broadcast over ten weeks at the beginning of 1982. A million people watched each week-night broadcast of the show; a quarter million watched the reruns on Sunday and Monday afternoon. - -这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 - -DN -The show was hosted by two presenters, Chris Serle and Ian McNaught-Davis. Serle plays the neophyte while McNaught-Davis, who had professional experience programming mainframe computers, plays the expert. This was an inspired setup. It made for [awkward transitions][10]—Serle often goes directly from a conversation with McNaught-Davis to a bit of walk-and-talk narration delivered to the camera, and you can’t help but wonder whether McNaught-Davis is still standing there out of frame or what. But it meant that Serle could voice the concerns that the audience would surely have. He can look intimidated by a screenful of BASIC and can ask questions like, “What do all these dollar signs mean?” At several points during the show, Serle and McNaught-Davis sit down in front of a computer and essentially pair program, with McNaught-Davis providing hints here and there while Serle tries to figure it out. It would have been much less relatable if the show had been presented by a single, all-knowing narrator. - -该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_计算机认知计划_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 - -DN -The show also made an effort to demonstrate the many practical applications of computing in the lives of regular people. By the early 1980s, the home computer had already begun to be associated with young boys and video games. The producers behind _The Computer Programme_ sought to avoid interviewing “impressively competent youngsters,” as that was likely “to increase the anxieties of older viewers,” a demographic that the show was trying to attract to computing.[7][11] In the first episode of the series, Gill Nevill, the show’s “on location” reporter, interviews a woman that has bought a Commodore PET to help manage her sweet shop. The woman (her name is Phyllis) looks to be 60-something years old, yet she has no trouble using the computer to do her accounting and has even started using her PET to do computer work for other businesses, which sounds like the beginning of a promising freelance career. Phyllis says that she wouldn’t mind if the computer work grew to replace her sweet shop business since she enjoys the computer work more. This interview could instead have been an interview with a teenager about how he had modified _Breakout_ to be faster and more challenging. But that would have been encouraging to almost nobody. On the other hand, if Phyllis, of all people, can use a computer, then surely you can too. - -虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 - -DN -While the show features lots of BASIC programming, what it really wants to teach its audience is how computing works in general. The show explains these general principles with analogies. In the second episode, there is an extended discussion of the Jacquard loom, which accomplishes two things. First, it illustrates that computers are not based only on magical technology invented yesterday—some of the foundational principles of computing go back two hundred years and are about as simple as the idea that you can punch holes in card to control a weaving machine. Second, the interlacing of warp and weft threads is used to demonstrate how a binary choice (does the weft thread go above or below the warp thread?) is enough, when repeated over and over, to produce enormous variation. This segues, of course, into a discussion of how information can be stored using binary digits. - -在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 - -DN -Later in the show there is a section about a steam organ that plays music encoded in a long, segmented roll of punched card. This time the analogy is used to explain subroutines in BASIC. Serle and McNaught-Davis lay out the whole roll of punched card on the floor in the studio, then point out the segments where it looks like a refrain is being repeated. McNaught-Davis explains that a subroutine is what you would get if you cut out those repeated segments of card and somehow added an instruction to go back to the original segment that played the refrain for the first time. This is a brilliant explanation and probably one that stuck around in people’s minds for a long time afterward. - -我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_计算机认知计划_的总制作人 John Radcliffe 如是写道: - -DN -I’ve picked out only a few examples, but I think in general the show excels at demystifying computers by explaining the principles that computers rely on to function. The show could instead have focused on teaching BASIC, but it did not. This, it turns out, was very much a conscious choice. In a retrospective written in 1983, John Radcliffe, the executive producer of the _Computer Literacy Project_, wrote the following: - -> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 - -DN -> If computers were going to be as important as we believed, some genuine understanding of this new subject would be important for everyone, almost as important perhaps as the capacity to read and write. Early ideas, both here and in America, had concentrated on programming as the main route to computer literacy. However, as our thinking progressed, although we recognized the value of “hands-on” experience on personal micros, we began to place less emphasis on programming and more on wider understanding, on relating micros to larger machines, encouraging people to gain experience with a range of applications programs and high-level languages, and relating these to experience in the real world of industry and commerce…. Our belief was that once people had grasped these principles, at their simplest, they would be able to move further forward into the subject. - -接下来, Radcliffe writes 又以类似的方式写道: - -DN -Later, Radcliffe writes, in a similar vein: - -> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 - -DN -> There had been much debate about the main explanatory thrust of the series. One school of thought had argued that it was particularly important for the programmes to give advice on the practical details of learning to use a micro. But we had concluded that if the series was to have any sustained educational value, it had to be a way into the real world of computing, through an explanation of computing principles. This would need to be achieved by a combination of studio demonstration on micros, explanation of principles by analogy, and illustration on film of real-life examples of practical applications. Not only micros, but mini computers and mainframes would be shown. - -我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_计算机认知计划_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 - -DN -I love this, particularly the part about mini-computers and mainframes. The producers behind _The Computer Programme_ aimed to help Britons get situated: Where had computing been, and where was it going? What can computers do now, and what might they do in the future? Learning some BASIC was part of answering those questions, but knowing BASIC alone was not seen as enough to make someone computer literate. - -### 今天的计算机认知 - -DN -### Computer Literacy Today - -如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。 -If you google “learn to code,” the first result you see is a link to Codecademy’s website. If there is a modern equivalent to the _Computer Literacy Project_, something with the same reach and similar aims, then it is Codecademy. - -“Learn to code” is Codecademy’s tagline. I don’t think I’m the first person to point this out—in fact, I probably read this somewhere and I’m now ripping it off—but there’s something revealing about using the word “code” instead of “program.” It suggests that the important thing you are learning is how to decode the code, how to look at a screen’s worth of Python and not have your eyes glaze over. I can understand why to the average person this seems like the main hurdle to becoming a professional programmer. Professional programmers spend all day looking at computer monitors covered in gobbledygook, so, if I want to become a professional programmer, I better make sure I can decipher the gobbledygook. But dealing with syntax is not the most challenging part of being a programmer, and it quickly becomes almost irrelevant in the face of much bigger obstacles. Also, armed only with knowledge of a programming language’s syntax, you may be able to _read_ code but you won’t be able to _write_ code to solve a novel problem. - -I recently went through Codecademy’s “Code Foundations” course, which is the course that the site recommends you take if you are interested in programming (as opposed to web development or data science) and have never done any programming before. There are a few lessons in there about the history of computer science, but they are perfunctory and poorly researched. (Thank heavens for [this noble internet vigilante][12], who pointed out a particularly egregious error.) The main focus of the course is teaching you about the common structural elements of programming languages: variables, functions, control flow, loops. In other words, the course focuses on what you would need to know to start seeing patterns in the gobbledygook. - -To be fair to Codecademy, they offer other courses that look meatier. But even courses such as their “Computer Science Path” course focus almost exclusively on programming and concepts that can be represented in programs. One might argue that this is the whole point—Codecademy’s main feature is that it gives you little interactive programming lessons with automated feedback. There also just isn’t enough room to cover more because there is only so much you can stuff into somebody’s brain in a little automated lesson. But the producers at the BBC tasked with kicking off the _Computer Literacy Project_ also had this problem; they recognized that they were limited by their medium and that “the amount of learning that would take place as a result of the television programmes themselves would be limited.”[8][13] With similar constraints on the volume of information they could convey, they chose to emphasize general principles over learning BASIC. Couldn’t Codecademy replace a lesson or two with an interactive visualization of a Jacquard loom weaving together warp and weft threads? - -I’m banging the drum for “general principles” loudly now, so let me just explain what I think they are and why they are important. There’s a book by J. Clark Scott about computers called _But How Do It Know?_ The title comes from the anecdote that opens the book. A salesman is explaining to a group of people that a thermos can keep hot food hot and cold food cold. A member of the audience, astounded by this new invention, asks, “But how do it know?” The joke of course is that the thermos is not perceiving the temperature of the food and then making a decision—the thermos is just constructed so that cold food inevitably stays cold and hot food inevitably stays hot. People anthropomorphize computers in the same way, believing that computers are digital brains that somehow “choose” to do one thing or another based on the code they are fed. But learning a few things about how computers work, even at a rudimentary level, takes the homunculus out of the machine. That’s why the Jacquard loom is such a good go-to illustration. It may at first seem like an incredible device. It reads punch cards and somehow “knows” to weave the right pattern! The reality is mundane: Each row of holes corresponds to a thread, and where there is a hole in that row the corresponding thread gets lifted. Understanding this may not help you do anything new with computers, but it will give you the confidence that you are not dealing with something magical. We should impart this sense of confidence to beginners as soon as we can. - -Alas, it’s possible that the real problem is that nobody wants to learn about the Jacquard loom. Judging by how Codecademy emphasizes the professional applications of what it teaches, many people probably start using Codecademy because they believe it will help them “level up” their careers. They believe, not unreasonably, that the primary challenge will be understanding the gobbledygook, so they want to “learn to code.” And they want to do it as quickly as possible, in the hour or two they have each night between dinner and collapsing into bed. Codecademy, which after all is a business, gives these people what they are looking for—not some roundabout explanation involving a machine invented in the 18th century. - -The _Computer Literacy Project_, on the other hand, is what a bunch of producers and civil servants at the BBC thought would be the best way to educate the nation about computing. I admit that it is a bit elitist to suggest we should laud this group of people for teaching the masses what they were incapable of seeking out on their own. But I can’t help but think they got it right. Lots of people first learned about computing using a BBC Micro, and many of these people went on to become successful software developers or game designers. [As I’ve written before][14], I suspect learning about computing at a time when computers were relatively simple was a huge advantage. But perhaps another advantage these people had is shows like _The Computer Programme_, which strove to teach not just programming but also how and why computers can run programs at all. After watching _The Computer Programme_, you may not understand all the gobbledygook on a computer screen, but you don’t really need to because you know that, whatever the “code” looks like, the computer is always doing the same basic thing. After a course or two on Codecademy, you understand some flavors of gobbledygook, but to you a computer is just a magical machine that somehow turns gobbledygook into running software. That isn’t computer literacy. - -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][15] on Twitter or subscribe to the [RSS feed][16] to make sure you know when a new post is out._ - -_Previously on TwoBitHistory…_ - -> FINALLY some new damn content, amirite? -> -> Wanted to write an article about how Simula bought us object-oriented programming. It did that, but early Simula also flirted with a different vision for how OOP would work. Wrote about that instead! -> -> — TwoBitHistory (@TwoBitHistory) [February 1, 2019][17] - - 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] - - 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] - - 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] - - 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] - - 5. ibid. [↩︎][23] - - 6. Williams, 51. [↩︎][24] - - 7. Radcliffe, 11. [↩︎][25] - - 8. Radcliffe, 5. [↩︎][26] - - - - --------------------------------------------------------------------------------- - -via: https://twobithistory.org/2019/03/31/bbc-micro.html - -作者:[Two-Bit History][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://twobithistory.org -[b]: https://github.com/lujun9972 -[1]: tmp.zNBs2lK4Ca#fn:1 -[2]: tmp.zNBs2lK4Ca#fn:2 -[3]: tmp.zNBs2lK4Ca#fn:3 -[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ -[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html -[6]: tmp.zNBs2lK4Ca#fn:4 -[7]: tmp.zNBs2lK4Ca#fn:5 -[8]: tmp.zNBs2lK4Ca#fn:6 -[9]: https://twobithistory.org/images/beeb.jpg -[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 -[11]: tmp.zNBs2lK4Ca#fn:7 -[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 -[13]: tmp.zNBs2lK4Ca#fn:8 -[14]: https://twobithistory.org/2018/09/02/learning-basic.html -[15]: https://twitter.com/TwoBitHistory -[16]: https://twobithistory.org/feed.xml -[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw -[18]: tmp.zNBs2lK4Ca#fnref:1 -[19]: tmp.zNBs2lK4Ca#fnref:2 -[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf -[21]: tmp.zNBs2lK4Ca#fnref:3 -[22]: tmp.zNBs2lK4Ca#fnref:4 -[23]: tmp.zNBs2lK4Ca#fnref:5 -[24]: tmp.zNBs2lK4Ca#fnref:6 -[25]: tmp.zNBs2lK4Ca#fnref:7 -[26]: tmp.zNBs2lK4Ca#fnref:8 - -[T1]: https://www.codecademy.com/ -[T2]: https://bbcmicro.computer/ -[T3]: https://clp.bbcrewind.co.uk/history -[T4]: https://archive.org/details/byte-magazine?tab=about -[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down -[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown -[T7]: https://en.wikipedia.org/wiki/Sinclair_Research -[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) -[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom diff --git a/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md b/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md index dfdd3ed0d0..feea6a91df 100644 --- a/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md +++ b/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Drwhooooo) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md index a51532e521..703d460e2e 100644 --- a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md +++ b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/21/3/rtos-embedded-development" [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "cool-summer-021" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/sources/tech/20211012 Create a timer on Linux.md b/sources/tech/20211012 Create a timer on Linux.md deleted file mode 100644 index ff4f334435..0000000000 --- a/sources/tech/20211012 Create a timer on Linux.md +++ /dev/null @@ -1,277 +0,0 @@ -[#]: subject: "Create a timer on Linux" -[#]: via: "https://opensource.com/article/21/10/linux-timers" -[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" -[#]: collector: "lujun9972" -[#]: translator: "FigaroCao" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Create a timer on Linux -====== -A tutorial showing how to create a POSIX-compliant interval timer. -![Team checklist][1] - -The timing of certain events is a common task for a developer. Common scenarios for timers are watchdogs, cyclic execution of tasks, or scheduling events for a specific time. In this article, I show how to create a POSIX-compliant interval timer using [timer_create(...)][2]. - -You can download the source code for the following examples from [GitHub][3]. - -### Prepare Qt Creator - -I used [Qt Creator][4] as the IDE for this example. To run and debug the example code in Qt Creator, clone the [GitHub][3] repository, open Qt Creator, and go to **File -> Open File or Project...** and choose the **CMakeLists.txt**: - -![Qt Creator open project][5] - -Open a project in Qt Creator (CC-BY-SA 4.0) - -After selecting the toolchain, click on **Configure Project**. The project contains three independent examples (we will only cover two of them in this article). With the green-marked menu, switch between the configurations for each example and activate **Run in terminal** for each of them (see the yellow mark below). The currently active example for building and debugging can be selected over the **Debug** button on the bottom left corner (see the orange mark below): - -![Project configuration][6] - -Project configuration (CC-BY-SA 4.0) - -### Threading timer - -Let's take a look at the _simple_threading_timer.c_ example. This is the simplest one: It shows how an interval timer is created, which calls the function **expired** on expiration. On each expiration, a new thread is created in which the function **expiration** is called. - - -``` -#include <stdio.h> -#include <stdlib.h> -#include <time.h> -#include <signal.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> - -void expired(union sigval timer_data); - -pid_t gettid(void); - -struct t_eventData{ -    int myData; -}; - -int main() -{ -    int res = 0; -    timer_t timerId = 0; - -    struct t_eventData eventData = { .myData = 0 }; - -    /*  sigevent specifies behaviour on expiration  */ -    struct sigevent sev = { 0 }; - -    /* specify start delay and interval -     * it_value and it_interval must not be zero */ - -    struct itimerspec its = {   .it_value.tv_sec  = 1, -                                .it_value.tv_nsec = 0, -                                .it_interval.tv_sec  = 1, -                                .it_interval.tv_nsec = 0 -                            }; - -    [printf][7]("Simple Threading Timer - thread-id: %d\n", gettid()); - -    sev.sigev_notify = SIGEV_THREAD; -    sev.sigev_notify_function = &expired; -    sev.sigev_value.sival_ptr = &eventData; - -    /* create timer */ -    res = timer_create(CLOCK_REALTIME, &sev, &timerId); - -    if (res != 0){ -        [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    /* start timer */ -    res = timer_settime(timerId, 0, &its, NULL); - -    if (res != 0){ -        [fprintf][8](stderr, "Error timer_settime: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    [printf][7]("Press ETNER Key to Exit\n"); -    while([getchar][11]()!='\n'){} -    return 0; -} - -void expired(union sigval timer_data){ -    struct t_eventData *data = timer_data.sival_ptr; -    [printf][7]("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); -} -``` - -The advantage of this approach is its small footprint, in terms of code and simple debugging. The disadvantage is the additional overhead due to the creation of a new thread on expiration and, consequently, the less deterministic behavior. - -### Interrupt Signal Timer - -Another possibility to be notified by an expired timer is based on a [kernel signal][12]. Instead of creating a new thread each time the timer expires, the kernel sends a signal to the process, the process is interrupted, and the corresponding signal handler is called. - -As the default action when receiving a signal is to terminate the process (see [signal][13] man page), we have to prepare Qt Creator in advance so that properly debugging is possible. - -The default behavior of Qt Creator when the debuggee receives a signal is: - - * Interrupt execution and switch to the debugger context. - * Display a pop-up window that notifies the user about the reception of a signal. - - - -Both actions are not wanted as the reception of a signal is part of our application. - -Qt Creator uses GDB in the background. In order to prevent GDB from stopping the execution when the process receives a signal, go to **Tools** -> **Options**, select **Debugger**, and navigate to **Locals & Expressions**. Add the following expression to _Debugging Helper Customization_: - - -``` -`handle SIG34 nostop pass` -``` - -![Signal no stop with error][14] - -Sig 34 no stop with error (CC-BY-SA 4.0) - -You can find more information about GDB signal handling in the [GDB documentation][15]. - -Next, we want to suppress the pop-up window that notifies us every time a signal is received when we stop in the signal handler: - -![Signal 34 pop up box][16] - -Signal 34 pop-up box (CC-BY-SA 4.0) - -To do so, navigate to the tab **GDB** and uncheck the marked checkbox: - -![Timer signal windows][17] - -Timer signal windows (CC-BY-SA 4.0) - -Now you can properly debug the _signal_interrupt_timer_. The actual implementation of the signal timer is a bit more complex: - - -``` -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <signal.h> -#include <time.h> -#include <unistd.h> -#include <errno.h> -#include <string.h> - -#define UNUSED(x) (void)(x) - -static void handler(int sig, siginfo_t *si, void *uc); -pid_t gettid(void); - -struct t_eventData{ -    int myData; -}; - -int main() -{ -    int res = 0; -    timer_t timerId = 0; - -    struct sigevent sev = { 0 }; -    struct t_eventData eventData = { .myData = 0 }; - -    /* specifies the action when receiving a signal */ -    struct sigaction sa = { 0 }; - -    /* specify start delay and interval */ -    struct itimerspec its = {   .it_value.tv_sec  = 1, -                                .it_value.tv_nsec = 0, -                                .it_interval.tv_sec  = 1, -                                .it_interval.tv_nsec = 0 -                            }; - -    [printf][7]("Signal Interrupt Timer - thread-id: %d\n", gettid()); - -    sev.sigev_notify = SIGEV_SIGNAL; // Linux-specific -    sev.sigev_signo = SIGRTMIN; -    sev.sigev_value.sival_ptr = &eventData; - -    /* create timer */ -    res = timer_create(CLOCK_REALTIME, &sev, &timerId); - -    if ( res != 0){ -        [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    /* specifz signal and handler */ -    sa.sa_flags = SA_SIGINFO; -    sa.sa_sigaction = handler; - -    /* Initialize signal */ -    sigemptyset(&sa.sa_mask); - -    [printf][7]("Establishing handler for signal %d\n", SIGRTMIN); - -    /* Register signal handler */ -    if (sigaction(SIGRTMIN, &sa, NULL) == -1){ -        [fprintf][8](stderr, "Error sigaction: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    /* start timer */ -    res = timer_settime(timerId, 0, &its, NULL); - -    if ( res != 0){ -        [fprintf][8](stderr, "Error timer_settime: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    [printf][7]("Press ENTER to Exit\n"); -    while([getchar][11]()!='\n'){} -    return 0; -} - -static void -handler(int sig, siginfo_t *si, void *uc) -{ -    UNUSED(sig); -    UNUSED(uc); -    struct t_eventData *data = (struct t_eventData *) si->_sifields._rt.si_sigval.sival_ptr; -    [printf][7]("Timer fired %d - thread-id: %d\n", ++data->myData, gettid()); -} -``` - -In contrast to the threading timer, we have to initialize the signal and register a signal handler. This approach is more performant as it won't cause the creation of additional threads. For this reason, the execution of the signal handler is also more deterministic. The drawback is clearly the extra configuration effort to debug this properly. - -### Summary - -Both methods described in this article are close-to-the-kernel implementations of timers. Even if the [timer_create(...)][2] function is part of the POSIX specification, it is not possible to compile the sample code on a FreeBSD system due to small differences in data structures. Besides this drawback, such an implementation gives you fine-grained control for general-purpose timing applications. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/10/linux-timers - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist) -[2]: https://linux.die.net/man/2/timer_create -[3]: https://github.com/hANSIc99/posix_timers -[4]: https://www.qt.io/product/development-tools -[5]: https://opensource.com/sites/default/files/posix_timers_open_project_0.png -[6]: https://opensource.com/sites/default/files/posix_timers_project_configuration_2.png -[7]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html -[8]: http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html -[9]: http://www.opengroup.org/onlinepubs/009695399/functions/strerror.html -[10]: http://www.opengroup.org/onlinepubs/009695399/functions/exit.html -[11]: http://www.opengroup.org/onlinepubs/009695399/functions/getchar.html -[12]: https://man7.org/linux/man-pages/man3/signal.3p.html -[13]: https://linux.die.net/man/7/signal -[14]: https://opensource.com/sites/default/files/posix_timers_sig34_nostop_pass.png -[15]: https://sourceware.org/gdb/onlinedocs/gdb/Signals.html -[16]: https://opensource.com/sites/default/files/posix_timers_sig34_pop_up_2.png -[17]: https://opensource.com/sites/default/files/posix_timers_signal_windows.png diff --git a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md deleted file mode 100644 index 9a06dfdbc8..0000000000 --- a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment" -[#]: via: "https://itsfoss.com/why-cinnamon/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment -====== - -Linux Mint is one of my favorite distributions. The flagship (or default) Cinnamon desktop is why I like it so much. - -The user experience offered by Cinnamon desktop may not be mind-blowing or fancy. But, the desktop environment provides enough reasons for users to like it and easily work with it to get things done. - -At the end of the day, that’s what we want. A user interface that works as expected and does not get in the way. - -I think Cinnamon desktop does a few things right to give you an exciting experience. Let me mention some of those here. - -**If you did not know**, the Cinnamon desktop is a fork of the GNOME 3 created in **2011** by **Clement Lefebvre** (Linux Mint creator) with enhancements over the years. - -### 1. Familiar User Interface - -![linux mint 21 full][1] - -The primary objective of building Cinnamon was to keep the GNOME 2 desktop style alive. - -And that is why you get a familiar desktop layout compared to the most popular consumer desktop operating system, i.e., Windows. - -Of course, Windows 11 has evolved its usual layout with time. But, accessing a start menu, a taskbar, system icons in the tray, and a couple of window decorations make it easy to grasp. - -Whether you are a Windows user or a macOS user, the Cinnamon desktop layout should not feel challenging at all. - -![linux mint welcome][2] - -To help you further, the “**Welcome Screen**” in Linux Mint provides you with all the information quickly. - -### 2. Lightweight - -To get a comfortable experience with Cinnamon desktop (usually with Linux Mint), you have the following system requirements: - -- 4 GB RAM -- 100 GB of disk space -- 1024×768 resolution screen - -In the modern computing age, these specifications should suit almost everyone. So, you do not have to worry about needing an insane amount of memory or disk space to run a Linux distro powered by Cinnamon. - -Of course, you can try [installing Cinnamon desktop on Ubuntu][3]. - -But, for this article, we consider Linux Mint as the ideal use case. - -### 3. Fast Performance Without Sacrificing User Experience - -When we think about a lightweight desktop environment—we usually imagine a bland user interface that focuses on performance. - -![linux mint perf][4] - -With Cinnamon desktop, that is not the case. It does include subtle animations and features icons/themes that make up for a modern look, if not the best. - -It looks pleasing to the eyes with a minimal approach. - -Typically, I am a sucker for pretty user interfaces, but I can still live with Linux Mint’s straightforward user experience running it on a dual-monitor setup (**1440p + 1080p**). - -It may not be the best dual-monitor experience with Linux Mint Cinnamon edition (no dock/panel on the second screen for me). So, there is little room for improvement. - -### 4. Default Customization Options - -You might already know that KDE is probably the king when it comes to giving the ability to customize out-of-the-box. - -We have super useful guides if you are curious about going that way: - -- [KDE Customization Guide][5] -- [How to Properly Theme KDE Plasma [In-depth Guide]][6] -- [Best Gorgeous KDE Plasma Themes][7] - -But, for many users, it is **overwhelming**. - -I think Linux Mint gives the right amount of extra controls/customizations, which you also learn on its **Welcome Screen**. - -![cinnamon theme customize][8] - -Some of the elements that you can easily customize include: - -- Desktop color (accent) -- Light/Dark theme toggle -- Panel layout -- Icons, buttons, and mouse pointer. - -You can head to the system settings and navigate to “Themes” to find the essential tweaks. - -**Recommended Read:**[7 Ways to Customize Cinnamon Desktop on Linux][9] - -### 5. Official Add-ons to Spice Up Your Experience - -![cinnamon desklet][10] - -Linux Mint supports various add-ons to enhance your experience. These are all part of its [Cinnamon Spices][11] offering. They include: - -- Themes -- Extensions -- Applets -- Desklets - -Applets and Desklets are tiny programs that you can add on top of the panel (near the system tray) and the desktop, respectively. - -![applet cinnamon][12] - -You can manage system default applets or download more from the official repositories: - -![applets cinnamon][13] - -Similarly, you can add a Desklet from the available defaults or get a new one from the repositories. - -![desklet cinnamon][14] - -Plenty of valuable utilities to monitor system resources, check the weather, and more. - -In addition, you get access to various themes built by the community that could easily give you a look you always wanted. - -![cinnamon theme][15] - -To complement all the above spices, you can use extensions to make the panel transparent, add a watermark to your desktop, enable windows tiling, and add some exciting window animations. - -![linux mint extensions][16] - -### 6. Compatible and Seamless User Experience - -Why do I highlight the user experience again? - -The best part about Cinnamon desktop is that it evolves in a way that respects and supports all functionalities. - -For instance, if you want to install an app you enjoyed using on KDE Plasma, it should work the same way here. There’s nothing special with Cinnamon desktop that would break the experience. - -![gnome accounts cinnamon][17] - -Similarly, the desktop adds features that try to co-exist with services from other desktop environments. For instance, calendar events support using GNOME Online Accounts. - -### 7. Panel Customization - -![linux mint panel][18] - -The dock, taskbar, or panel comprises an integral part of the user interface. - -Yes, other desktop environments allow you to customize the same to some extent. With Cinnamon, you get a good amount of control to tweak it. - -I think you get all the essential options a user would want. - -### Wrapping Up - -GNOME and KDE Plasma are popular desktop environments. However, Cinnamon is not far off on essential parts to provide an optimal user experience. - -_What do you think of the Cinnamon desktop environment? Do you prefer to try it with Linux Mint? Share your thoughts in the comments section below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/why-cinnamon/ - -作者:[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/wp-content/uploads/2022/11/linux-mint-21-full.jpg -[2]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-welcome.png -[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/ -[4]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-perf.png -[5]: https://itsfoss.com/kde-customization/ -[6]: https://itsfoss.com/properly-theme-kde-plasma/ -[7]: https://itsfoss.com/best-kde-plasma-themes/ -[8]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme-customize.png -[9]: https://itsfoss.com/customize-cinnamon-desktop/ -[10]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-desklet.png -[11]: https://cinnamon-spices.linuxmint.com -[12]: https://itsfoss.com/wp-content/uploads/2022/11/applet-cinnamon.png -[13]: https://itsfoss.com/wp-content/uploads/2022/11/applets-cinnamon.png -[14]: https://itsfoss.com/wp-content/uploads/2022/11/desklet-cinnamon.png -[15]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme.png -[16]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-extensions.png -[17]: https://itsfoss.com/wp-content/uploads/2022/11/gnome-accounts-cinnamon.png -[18]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-panel.png diff --git a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md deleted file mode 100644 index e8fcabb8c0..0000000000 --- a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" -[#]: via: "https://itsfoss.com/neovim-gui-editors/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie -====== - -Vim is awesome. NeoVim is newer and even more awesome. Both Vim and NeoVim are terminal-based text editors with similar features. - -If you are someone who is accustomed to using [GUI text editors like VS Code][1] and wish to have the similar functionality that NeoVim provides, you should explore GUI options. - -Although I know you can use NeoVim as an add-on for your current text editor, working directly with NeoVim is much more effective and convenient for managing plugins. - -There are a few different options available when choosing a NeoVim GUI, and I have put together a list of some of the best ones below. - -### 1. Neovide - -![neovide][2] - -**Key Features:** - -- Animated cursor -- Smooth scrolling -- Animated windows -- Blurred floating windows -- Emoji support - -[Neovide][3] aims to be a no-nonsense graphical user interface for NeoVim. - -While you won’t see many graphical elements, it only adds some GUI features, such as animations, using a library called Skulpin to render animations. - -And my favorite part of using Neovide is having an animated cursor and smooth scrolling. I mean, have a look at this: - -Looks cool. Right? - -### 2. Neovim Qt - -![neovim qt][4] - -**Key Features:** - -- Hover features -- Multiple GUI tabs -- Auto tab completion -- Cross-platform support - -As the name suggests, [Neovim Qt][5] is built with the Qt5 library, which you’ll often see being used by KDE. Nothing too fancy, adds some additional GUI features like multiple tabs, auto-tab completion, and more. - -So if you are already using Qt5 libraries and want a minimal GUI for NeoVim, this would work like a charm and save you some dependencies. - -**Recommended:**[Vim vs Nano: What Should You Choose?][6] - -### 3. Uivonim - -![uivonim][7] - -**Key Features:** - -- WebGL GPU rendering and multithreading -- Support for VSCode extensions -- Nyancat (ANSI-text program for classic cat animation) -- Hover and code actions - -[Uivonim][8] is a fork of Veonim (A simple IDE built on VSCode plugins and NeoVim) written in electron, making it the perfect choice if you switch from VSCode. - -And the only goal of uivonim is to provide a rich NeoVim experience that supports the latest features of NeoVim, including floating windows, built-in LSP, and more. You do not need to rely on VSCode extensions to get these features. - -[Uivonim][8] - -### 4. FVim - -![fvim][9] - -**Key Features:** - -- Detach windows (using `Ctrl+w and GE`). -- Custom popup menu entry icons. -- HiDPI support. -- GPU acceleration. - -[FVim][10] is a cross-platform GUI for NeoVim built with F# + Avalonia that comes with some groundbreaking features such as high-performance rendering (60FPS on 4K display). - -And I often use the detach window feature as I prefer to have separate windows for different text files. Also, if you are an advanced remote user, FVim won’t let you down either. - -### 5. Goneovim - -![goneovim][11] - -**Key Features:** - -- Support for a terminal with bash and zsh -- Minimap -- Animated cursor -- High DPI scaling -- External float window - -As its name suggests, [Goneovim][12] is written in GO and is a fork of Gonvim. And offers enough GUI features to get your job done such as an animated cursor, pixel scrolling, and more. - -And it does not compromise on getting you basic text editing features, such as drag-and-drop support for text files. - -**Useful Read**: [How to Install Latest Vim on Ubuntu Linux][13] - -### Wrapping Up - -This was my take on what are some good options when it comes to GUI for NeoVim and I hope you found what you were looking for. - -If I missed any of your favorites, let me know your thoughts in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/neovim-gui-editors/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/neovide.png -[3]: https://neovide.dev/index.html -[4]: https://itsfoss.com/wp-content/uploads/2022/11/neovim-qt.png -[5]: https://github.com/equalsraf/neovim-qt -[6]: https://itsfoss.com/vim-vs-nano/ -[7]: https://itsfoss.com/wp-content/uploads/2022/11/uivonim.png -[8]: https://github.com/smolck/uivonim -[9]: https://itsfoss.com/wp-content/uploads/2022/11/fvim-1.png -[10]: https://github.com/yatli/fvim -[11]: https://itsfoss.com/wp-content/uploads/2022/11/goneovim-1.png -[12]: https://github.com/akiyosi/goneovim -[13]: https://itsfoss.com/install-latest-vim-ubuntu/ diff --git a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md deleted file mode 100644 index ab3e8307ac..0000000000 --- a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers" -[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -lnav: Advanced Log File Viewer for Linux Desktops and Servers -====== - -**If you want to debug or troubleshoot any issues, you need an advanced log file viewer like lnav – which works wonders in the terminal for any Linux system.** - -### lnav: Log file viewer - -lnav can unzip all the compressed log files on the fly and merge them together for a nice display. The display is parsed and formatted based on the types of errors/warnings – this helps to quickly glance through the thousands of logs, especially in servers. - -While analysing the logs, timestamps are very important. So lnav merges multiple logs based on timestamps, which is very helpful for tracking down system issues. - -Most of the important log file format detection is built-in; see below: - -- Common Web Access Log format -- CUPS page_log -- Syslog -- Glog -- VMware ESXi/vCenter Logs -- dpkg.log -- uwsgi -- “Generic” – Any message that starts with a timestamp -- Strace -- sudo -- GZIP, BZIP - -That is not all; lnav is also capable of the below features, making it an important app for Linux systems. - -- Filter messages based on regular expression -- A timeline view of errors -- Pretty-Print view- helps to reformat -- Query Log using SQL -- A log is updated in real-time while being searched. -- Syntax highlight via regular expression (say you want to find out an IP address in the entire log) -- Tab completion of any word from the log which is displayed !! - -![lnav-running-in-ubutu][1] - -To view the screenshots of the above features and learn more, visit [this page.][2] - -### How to Install - -This program is available in official Ubuntu, Debian repo. Install it using the following command. - -``` -sudo apt install lnav -``` - -And for Fedora, RHEL users, use the below command: - -``` -sudo dnf install lnav -``` - -Also the developers provides an offline standalone executable which you don’t need to install. You can download the zip from the [GitHub release page][3] and execute as: - -``` -./lnav -``` - -**Note**: It’s also available for macOS which you can find in the above GitHub page. - -### lnav: How to use (Basics) - -The simple command syntax is: - -``` -lnav [options] [logfile1 logfile2 …] -``` - -If you run just lnav from the command, it shows all the logs from your system (/var/log/messages and /var/log/syslog) - -``` -lnav -``` - -To view any specific log file, provide it via the command line: - -``` -lnav /var/log/syslog -``` - -Add timestamp in your log output using -t parameter - -``` -lnav -t /var/log/syslog -``` - -Here are some of the key switches of lnav - -``` --d file Write debug messages to the given file.-a Load all of the most recent log file types.-r Load older rotated log files as well.-t Prepend timestamps to the lines of data being read inon the standard input.-w file Write the contents of the standard input to this file.-c cmd Execute a command after the files have been loaded.-f path Execute the commands in the given file.-n Run without the curses UI. (headless mode) -``` - -![lnav running in Ubuntu 22.04][4] - -For further reading and exploration, visit the [official documentation][5]. - -[Next:How to Make LibreOffice Look Like Microsoft Office][6] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ - -作者:[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/2016/11/lnav-Running-in-Ubutu.png -[2]: http://lnav.org/features/ -[3]: https://github.com/tstack/lnav/releases/ -[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg -[5]: https://docs.lnav.org/en/latest/intro.html -[6]: https://www.debugpoint.com/libreoffice-like-microsoft-office/ diff --git a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md deleted file mode 100644 index 93ee5ab1e4..0000000000 --- a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]" -[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 5 Live Streaming Applications 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.** - -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. - -So, in this post, we will list out some of the free software for Ubuntu and other Linux primarily that are easy to use for creating super interesting live streaming content for you and your businesses. - -### Top 5 Live Streaming Applications for Linux in 2022 - -#### OBS Studio - -The first free application in this list is OBS Studio (also known as Open Broadcaster Software). It is a live streaming application with screencasting capabilities available for Linux, Windows and macOS. - -OBS Studio is the best one on this list because several reasons. The encoding is built-in, and it supports RTMP broadcasting, multiple sources, webcams, green-screen, capture cards and your application windows. - -The user interface is reasonably straightforward and feature-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 - Live Streaming Applications for Linux][1] - -**How to Install** - -OBS Studio is available in all Linux Distribution’s official repositories. Detailed instruction for installations is present in the below link. - -[Download OBS Studio][2] - -More Information - -- [Home Page][3] -- [Documentation][4] - -#### VokoscreenNG - -The second application we would feature in this list is VokoscreenNG. It is a fork of the discontinued Vokoscreen project. The new application is entirely written in Qt with the GStreamer library. It can record your screen and accept multiple audio and video sources. VokoscreenNG’s toolbox is also quite impressive. It includes a magnifying glass, timer, system tray plugins that ease up your workflow. - -It is available for Linux and Windows for free. - -![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. - -Remember, this application requires X11, PulseAudio and GStreamer plugins installed in your Linux system to work. If you use a modern Linux system with Wayland and Pipewire sound server (e.g. Fedora), this application may not work. - -[Download VokoscreenNG][6] - -**More Information** - -- [Home page][7] - -#### Restreamer - -The Restreamer application lets you live stream videos and screencasts directly to your website without any streaming provider. It is also possible to use popular streaming solutions, such as YouTube, Twitch, etc., with this application. - -This application is feature-rich and comes with a fair list of features. Here’s 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 - -![Restreamer][9] - -**How to Install** - -The installation of Restreamer is a little tricky because it’s distributed via Docker images. You can find the instructions to install Linux, Windows, and macOS on the below link. - -[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 for it. Although it is available as a command line, you can use 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 - - 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/ffscreencastcd ffscreencastsudo cp bin/ffscreencast /usr/local/bin -``` - -You can run this application with `ffscreencast` command from the terminal. - -[Source code & Home page][15] - -#### Open Streaming platforms - -The final application in this list is Open Streaming Platform (OSP), an open-source RTMP streamer software that can act as a self-hosted alternative to YouTube LIVE, Twitch.tv, etc. - -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 simultaneously 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 isn’t 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][16] - -**More Information** - -- [Home Page][17] -- [Source Code][18] -- [Documentation][19] - -### Closing Notes - -There are very few free and open-source live streaming applications available for Linux. However, several commercial live streaming applications are available, which may give you more options, quality, and support. But as I said, they may cost you some bucks. So, if you are new to the streaming world, you may want to get started with the above-listed free live streaming applications in Ubuntu or other Linux systems. I hope this article gives you ideas about which to use based on your need and get you started. - -Let me know your favourite live streaming software in the comment box below. - -Cheers. - -[Next:How to Create Ubuntu, Linux OS Bootable USB in Windows][20] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/live-streaming-applications-linux-2022/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2022/02/OBS-Studio.jpg -[2]: https://obsproject.com/wiki/install-instructions#linux -[3]: https://obsproject.com/ -[4]: https://obsproject.com/wiki/Home -[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg -[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html -[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://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-2048x1026.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/ -[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/ diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 1999c6f859..ed8b300ca3 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/new-distros-2023/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -216,7 +216,7 @@ via: https://news.itsfoss.com/new-distros-2023/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md deleted file mode 100644 index 4972b6f039..0000000000 --- a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md +++ /dev/null @@ -1,222 +0,0 @@ -[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven" -[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -oh my zsh and powerlevel10k: A Match Made in Heaven -====== - -**A quick and simple guide to transforming your zsh terminal shell with oh my zsh and powerlevel10k theme to make it look cool in Ubuntu and other Linux distros.** - -![][1] - -The default shell in most of the Linux distributions is bash. Bash is solid and a legacy utility. However, it lacks some customizations, such as nice colours, cursor support, etc. - -You can use another shell, zsh to enjoy additional tweaks and help you to extend your Bash shell experience. - -This crisp guide explains how to install zsh, oh my zsh and apply the powerlevel10k theme. - -### oh my zsh and powerlevel10k: Installation and configuration guide - -#### 1. Installing zsh and changing the shell - -Open a terminal and install zsh using the following command applicable to your distribution. - -**_Ubuntu, Debian, Linux Mint and all related distro_** - -``` -sudo apt install zsh -``` - -_**Fedora**_ - -``` -sudo dnf install zsh -``` - -**_Arch_** - -``` -pacman -S zsh -``` - -After installation is complete, find out the zsh install path - -``` -whereis zsh -``` - -Then change the shell using the zsh executable path for the current user. - -``` -chsh -s /usr/bin/zsh -``` - -![change the shell for the current user][2] - -Close and open the terminal again. And you should see the first-time setup for zsh. Select option 2. And it will change the look of your shell prompt with a default theme, as shown below. - -![first time setup for zsh][3] - -#### 2. Install oh my zsh - -The oh my zsh is a set of scripts to customize zsh further. - -Firstly, we will install oh my zsh script by downloading it from GitHub. It would be best if you had wget and git package for that. [Install wget][4] & git using the following command if it’s not installed. - -``` -sudo apt install wget -sudo apt install git -``` - -Then install oh my zsh using the following command. - -``` -sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -``` - -And you should see the oh my zsh theme is applied with a default theme robbyrussell to your terminal. - -![Install oh my zsh and default theme][5] - -The Oh my zsh also comes with additional themes, and you can install them [using this guide][6]. However, in this tutorial, I will talk about a specific theme, i.e. powerlevel10k. - -#### 3. Install powerlevel10k theme for oh my zsh - -Open a terminal and run the following command to clone powerlevel10k repo from GitHub and put the files in the config folder of oh my zsh. - -``` -git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k -``` - -Open the `~/.zshrc` file in a text editor and set the `ZSH_THEME` variable to `"powerlevel10k/powerlevel10k"`. - -``` -cd ~ -``` - -``` -nano .zshrc -``` - -By default, it should be robbyrussell. Remove “robbyrussell” and add the below `"powerlevel10k/powerlevel10k"`. - -Your `~/.zshrc` file should look something like this after the change: - -`ZSH_THEME="powerlevel10k/powerlevel10k"` - -Save and close the file (CTRL+O, ENTER and CTRL+X). - -![change oh my zsh theme to powerlevel10k][7] - -Restart your terminal to launch the first-time wizard to set up the powerlevel10k theme. - -#### 4. First time set up for powerleve10k - -When you launch the terminal after the installation, the powerlevel10k prompts you with various questions to understand your Linux distro setup. So, press the key as per your need to customize your terminal as per your taste. Some example screenshots of questions are below to give you some idea. - -![powerlevel10k - wizard1][8] - -![powerlevel10k - wizard 2][9] - -And finally, you can save the file to enjoy the new look of your terminal. - -![After applying settings in powerlevel10k zsh theme][10] - -If you want to restart the configuration wizard again, run the following. You can do it as many times as you want. - -``` -p10k configure -``` - -This concludes the basic setup. If you want more, follow along. - -### More configuration (advanced usage) - -#### 5. Installing dracula GNOME Terminal theme - -If you are using GNOME desktop with the native terminal, you can try the stunning drakula theme. To do that, open a terminal and run the following command to download the theme. - -``` -git clone https://github.com/dracula/gnome-terminalcd gnome-terminal -``` - -Open GNOME Terminal and go to preferences. Add a new profile by clicking on the [+] and name it “drakula”. Then go to colours tab and uncheck ‘use colors from system theme’ option. - -![create a new profile for terminal][11] - -Go back to the terminal and run the following. When prompted, select the profile name which you just created as above. - -``` -./install.sh -``` - -![applying the drakula theme for gnome terminal][12] - -Once the installation is complete, go back to preferences and mark the drakula profile as default. - -#### 6. Autocomplete and syntax highlighting for zsh - -There are two community-developed plugins available for zsh, which you may want to try out. They are zsh-autosuggestions and zsh-syntax-highlighting. - -Open a terminal and run the following to download zsh-autosuggestions and put it inside the plugin folder. - -``` -git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions -``` - -Similarly, run the following for the syntax highlighting plugin. - -``` -git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting -``` - -Open the ~/.zshrc file via a text editor (use the following command), and find the plugins=(git) line. And replace it with the following: - -``` -nano ~/.zshrc -``` - -``` -plugins=(git zsh-autosuggestions zsh-syntax-highlighting) -``` - -Save & close the file using CTRL+O, ENTER and CTRL+X. - -Close and open your terminal; now, you should be able to use the auto-suggestions and syntax highlighting. - -### Wrapping Up - -That’s it! You should now have “Oh My Zsh” and the Powerlevel10k theme installed on your system. You can customize the appearance and behaviour of the Powerlevel10k theme by customizing further as per your need. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/ - -作者:[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/12/ohp10k.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg -[4]: https://www.debugpoint.com/wget-not-found-error/ -[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg -[6]: https://www.debugpoint.com/install-use-zsh/ -[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md deleted file mode 100644 index ac4a7ee73e..0000000000 --- a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: subject: "How to read and write files in Rust" -[#]: via: "https://opensource.com/article/23/1/read-write-files-rust" -[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to read and write files in Rust -====== - -Knowing how to read and write files can be useful for various purposes. In Rust, this task is done using the file system module ([std::fs][1]) in the standard library. In this article, I'll give you an overview on how to use this module. - -To demonstrate this task, I prepared example code which is also available on [GitHub][2]. - -### Preparation - -When using Rust, a function that fails returns the [Result][3] type. The file system module in particular returns the specialized type [std::io::Result][4]. With this knowledge, you can return the same type from the `main()` function: - -``` -fn main() -> std::io::Result<()> { -/* ...code comes here... */ -``` - -### Writing Rust files - -Performing file I/O-operations in Rust is relatively easy. Writing to a file can be simplified to one line: - -``` -use std::fs; -fs::write("favorite_websites.txt", b"opensource.com")?; -Ok(()) -``` - -Using the error propagation operator `(?)`, the error information gets passed on to the calling function where the error can subsequently be handled. As `main()` is the only other function in the call stack, the error information gets passed on to the console output in case the write operation failed. - -The syntax of the [fs::write][5] function is quite forward. The first argument is the file path, which must be the type [std::path::Path][6]. The second argument is the content, which is actually a slice of bytes (`[u8]`). Rust converts the arguments passed into the correct type. Luckily, these types are basically the only types dealt with in the following examples. - -A more concise access of the write operation can be achieved using the file descriptor type [std::fs::File][7]: - -``` -let mut file = fs::File::create("favorite_websites.txt")?; -file.write_all(b"opensource.com\n")?; -Ok(()) -``` - -As the file type implements the [Write][8] trait, it is possible to use the associated methods to write to the file. However, the `create` method can overwrite an already existing file. - -To get even more control of the file descriptor, the type [std::fs::OpenOptions][9] must be used. This provides opening modes similar to the ones in other languages: - -``` -let mut file = fs::OpenOptions::new() - .append(true) - .open("favorite_websites.txt")?; - -file.write_all(b"sourceforge.net\n")?; -``` - -### Reading Rust files - -What applies to writing also applies to reading. Reading can also be done with a simple one-line of code: - -``` -let websites = fs::read_to_string("favorite_websites.txt")?; -``` - -The above line reads the content of the file and returns a string. In addition to reading a string, there is also the [std::fs::read][10] function which reads the data into a vector of bytes if the file contains binary data. - -The next example shows how to read the content of the file into memory and subsequently print it line by line to a console: - -``` -let file = fs::File::open("favorite_websites.txt")?; -let lines = io::BufReader::new(file).lines(); - -for line in lines { - if let Ok(_line) = line { - println!(">>> {}", _line); - } -} -``` - -### Summary - -If you are already familiar with other programming languages, you may have noticed that there is `no close-`function (or something similar) that releases the file handle. In Rust, the file handle is released as soon as the related variable goes out of scope. To define the closing behavior, a scope `({ })` around the file representation can be applied. I recommend that you get familiar with [Read][11] and [Write][8] trait as you can find this trait implemented in many other types. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/read-write-files-rust - -作者:[Stephan Avenwedde][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/hansic99 -[b]: https://github.com/lkxed -[1]: https://doc.rust-lang.org/std/fs/ -[2]: https://github.com/hANSIc99/rust_file_io -[3]: https://doc.rust-lang.org/std/result/enum.Result.html -[4]: https://doc.rust-lang.org/std/io/type.Result.html -[5]: https://doc.rust-lang.org/std/fs/fn.write.html -[6]: https://doc.rust-lang.org/std/path/struct.Path.html -[7]: https://doc.rust-lang.org/std/fs/struct.File.html -[8]: https://doc.rust-lang.org/std/io/trait.Write.html -[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html# -[10]: https://doc.rust-lang.org/std/fs/fn.read.html -[11]: https://doc.rust-lang.org/std/io/trait.Read.html diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md deleted file mode 100644 index 3f04e64f41..0000000000 --- a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md +++ /dev/null @@ -1,138 +0,0 @@ -[#]: subject: "who Command in Linux: Explanation with Examples" -[#]: via: "https://www.debugpoint.com/who-command-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -who Command in Linux: Explanation with Examples -====== - -**Here’s a beginner’s guide on understanding who command in Linux with several examples.** - -_This article is part of the [Linux command][1] learning series._ - -### who command - -The “who” command in Linux is used to display information about users who are currently logged in to the system. It shows the user’s login name, the terminal from which the user is logged in, the time at which the user logged in, and the remote hostname (if applicable). - -#### Syntax - -Here is the basic syntax for the “who” command: - -``` -who [OPTION]... [ FILE | ARG1 ARG2 ] -``` - -### Example of various who command and switches - -By default, “who” reads the file `/var/run/utmp`, which contains information about users who are currently logged in. If no options are specified, it displays each user’s login name, terminal, and time of login. - -``` -who -``` - -It gives the following output. As you can see it shows the login name=debugpoint, terminal id tty2 and the date and time of the login. - -``` -debugpoint tty2 2023-01-01 11:22 (tty2) -``` - -![who command - default example][2] - -However, if you run the above command in a guest virtual machine, you should see the same but the terminal id would be the x11 server display name i.e. :0. - -``` -❯ whodebugpoint :0 2023-01-01 23:36 (:0) -``` - -To show the username of the current user and information, use below: - -``` -whoami -``` - -View the last system boot time using the -b option: - -``` -❯ who -bsystem boot 2023-01-01 23:36 -``` - -Display the count of users logged in the current system: - -``` -❯ who -qdebugpointusers=1 -``` - -All the above command when paired with -H option, you get a better info with a header line, like below: - -``` -who -H - -NAME LINE TIME COMMENT -debugpoint tty2 2023-01-01 11:22 (tty2) -``` - -If you want to display all the information related to who command in Linux, use the option -a: - -``` -who -aH - -NAME LINE TIME IDLE PID COMMENT EXIT -system boot 2023-01-01 11:19 -run-level 5 2023-01-01 11:19 -debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2) -``` - -As always, you can save the output of the who command to any file using the redirect as below: - -``` -who > user_details.txt -``` - -#### Example summary of who command options - -Here are some who command examples and their explanation: - -Here are some options that can be used with the “who” command: - -- `-a`: Display the hostname, time of login, and processes for each user -- `-b`: Display the time of the last system boot -- `-d`: Display dead processes (processes that have terminated but have not been removed from the utmp file) -- `-H`: Display a header line -- `-l`: Display login processes in long format -- `-m`: Display only the name and line of the user who is logged in on the terminal specified by `ARG1 ARG2` -- `-q`: Display a count of logged in users -- `-u`: Display information about users who have processes that are not detached -- `-w`: Display information about users who are logged in, in the same format as the utmp file - -### Closing Notes - -I hope this article helps you to understand who command and its basics. You can also read the [who man pages][3] to learn more. Let me know if you have any questions. - -**This article is part of the [Linux command][1] learning series**. - -[Next:How to Force Auto Dark Mode in Chrome and Chromium][4] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][5] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/who-command-linux/ - -作者:[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/category/linux-commands -[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg -[3]: https://man7.org/linux/man-pages/man1/who.1.html -[4]: https://www.debugpoint.com/chrome-dark-mode/ -[5]: https://floss.social/@debugpoint diff --git a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md deleted file mode 100644 index cd48adc303..0000000000 --- a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Colorblind Filters: GNOME Extension to help Colorblind Users" -[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Colorblind Filters: GNOME Extension to help Colorblind Users -====== - -**A nice GNOME Extension – Colorblind Filters, brings many options for color-blind users.** - -Accessibility is a critical aspect of computing and operating systems. It includes well-managed settings for vision impairment, color blind and many other health symptoms. Popular Linux desktop environments such as GNOME and KDE Plasma feature accessibility settings to help all those scenarios. - -Thanks to the GNOME Extensions ecosystem, a huge number of specialised extensions are available to aid those users. One of the extensions I came across is [“Colorblind Filters”][1]. - -### Colorblind Filters – GNOME Extension - -As per Wikipedia, _“Colour blindness usually involves the inability to distinguish between shades of red and green. There is no treatment for inherited colour blindness. If colour blindness is caused by another condition, treating the underlying cause can help.”_. - -So, it’s important that you have options to tweak settings on your Linux desktop. - -#### Set up extensions and flatpak - -First, make sure you have Flatpak and GNOME Extensions enabled. And the Extensions manager is installed. You may refer to this detailed guide on how to [set up flatpak][2] & enable [GNOME extensions][3], Or run the following commands (for Ubuntu, Linux Mint, etc.) from the terminal. - -``` -sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot -``` - -Fedora users, use the below commands. - -``` -sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot -``` - -Once done, install the Extension Manager: - -``` -flatpak install com.mattjakeman.ExtensionManager -``` - -#### Install the Extension - -Open the extension manager from the application menu. Search for “colorblind”. And install the extension (see the below image). - -![Install the extension][4] - -After installation, you can see a small eye icon on the system tray. You can click on it to enable the pre-defined color filters. - -![Colorblind Filters extension tray icon][5] - -Right-click on the eye icon for more settings. This extension brings all the necessary customizations for colorblind collections, simulations and additional options. The following options are currently available: - -- Protanopia -- Deuteranopia -- Tritanopia - -- Corrections & Simulations (with high contrast) - -- Channel mixer for GBR and BRG -- Lightness inversion -- Color Inversion - -- Additional tweaks - -![Colorblind Filters - options][6] - -Use the one that suits you best for your eye. - -### Wrapping Up - -I think Apple’s macOS and iOS have implemented better accessibility than Windows or Linux. However, Linux Desktops are not far behind with these apps and extensions. Also, there are specialized Linux distributions such as “[Accessible Coconut][7]“, which has been built for specialized needs. - -I hope Colorblind gnome extension helps you with your day-to-day usage of Linux and GNOME desktops. - -Cheers. - -[Next:Top 10 Linux Distributions for Windows Users in 2023][8] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][9] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ - -作者:[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://extensions.gnome.org/extension/5589/colorblind-filters/ -[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ -[3]: https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-extension.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg -[7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/ -[8]: https://www.debugpoint.com/best-linux-distributions-windows/ -[9]: https://floss.social/@debugpoint diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md deleted file mode 100644 index 8c1d6978d0..0000000000 --- a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md +++ /dev/null @@ -1,152 +0,0 @@ -[#]: subject: "Whereis Command in Linux and BSD with Examples" -[#]: via: "https://www.debugpoint.com/whereis-command-linux/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Whereis Command in Linux and BSD with Examples -====== - -**Here’s a beginner’s guide on understanding whereis command in Linux & BSD with several examples.** - -![][1] - -_This article is part of the [Linux command][2] learning series._ - -### whereis command - -The `whereis` command is a command line program that helps you to find out the path or location of any binary executable, source file or manual page. - -Before we show you how to use `whereis` command, let’s look at the syntax. - -### Syntax - -Here’s the syntax for whereis command: - -``` -whereis [OPTIONS] FILE_NAME -``` - -The argument of whereis command is the program name or file name you want to search. The argument is mandatory. - -By default, it searches for the program in the path defined in environment variables such as HOME, USER, SHELL, etc. - -Let’s take a look at some examples. - -### Examples of whereis command in Linux and BSD - -A simple example of whereis command is below where I am trying to search firefox. In the output below, you can see the list of paths containing firefox files or executables displayed. - -``` -$ whereis firefox - -firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz -``` - -![Simple example of whereis command in Linux][3] - -The command with option -l displays the list of paths where it searches. For example: - -``` -$ whereis -l - -bin: /usr/bin -bin: /usr/sbin -bin: /usr/lib -bin: /usr/lib64 -bin: /etc -bin: /usr/games -bin: /usr/local/bin -bin: /usr/local/sbin -bin: /usr/local/etc -bin: /usr/local/lib -bin: /usr/local/games -``` - -If the whereis command doesn’t find anything, it only shows the argument’s name. For example, if I search nano in Linux where is it not installed, it outputs the following: - -``` -$ whereis nano -``` - -``` -nano: -``` - -You can always add multiple arguments if you want to search for more. For example below command searches for both bash and nano, and this is the output: - -``` -$ whereis bash nano - -bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz -nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz -``` - -You can also search for specific file types, such as binaries, using -b option. The following command only tells you the binary paths of nano. - -``` -$ whereis -b nano - -nano: /usr/bin/nano /usr/share/nano -``` - -Similarly, the -s option searches for source files, and the -m option searches for manual pages. - -``` -$ whereis -m nano - -nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz -``` - -You can also combine the above options for a more extensive search. For example, the following command searches for nano and firefox binary, manual pages and for bash, only manual pages. - -``` -$ whereis -bm nano firefox -m bash - -nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz -firefox-m: -bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz -``` - -Here’s a summary of the options: - -| Option | Description | -| :- | :- | -| **-b** | Search only for binaries. | -| **-m** | Search only for manual sections. | -| **-s** | Search only for sources. | -| **-u** | Search for unusual entries. A file is said to be unusual if it does not have one entry of each requested type. Thus ‘whereis -m -u *’ asks for those files in the current directory which have no documentation. | -| **-B** | Change or otherwise limit the places where whereis searches for binaries. | -| **-M** | Change or otherwise limit the places where whereis searches for manual sections. | -| **-S** | Change or otherwise limit the places where whereis searches for sources. | -| **-f** | Terminate the last directory list and signals the start of file names, and must be used when any of the -B, -M, or -S options are used. | - -### Closing Notes - -I hope this article helps you to understand whereis command and its basics. You can also read the[whereis man pages][4] to learn more. Let me know if you have any questions. - -**This article is part of the [Linux command][2] learning series**. - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][5] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/whereis-command-linux/ - -作者:[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/2023/01/whereis-head.jpg -[2]: https://www.debugpoint.com/category/linux-commands -[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg -[4]: https://linux.die.net/man/1/whereis -[5]: https://floss.social/@debugpoint diff --git a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md deleted file mode 100644 index 394c1d810e..0000000000 --- a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: subject: "6 tips for building an effective DevOps culture" -[#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" -[#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -6 tips for building an effective DevOps culture -====== - -Why would you want to build a [DevOps][1] culture? There are many benefits to the streamlined collaboration of the development and operations teams. A major goal is efficiency: Increasing the speed of new software deployments and reducing idle time for workers. Fostering trust between colleagues can improve employee satisfaction, produce new innovations, and positively impact profitability. - -[DevOps][2] is a broad philosophy with a range of interpretations. In other words, you can visit 40 companies and find 40,000 different ideas about using DevOps effectively in the workplace. This diversity of opinion is actually a good thing–so many perspectives are useful for building stronger teams. This guide will look at the top tips for encouraging better collaboration between colleagues within a DevOps culture. - -Each section offers a different aspect of DevOps culture and looks at ways to introduce it into your workforce. - -![DevOps includes collaboration, workflow, infosec, and iteration.][3] - -### Continuous development of processes - -This core tenet of DevOps culture sets it apart from many other types of workplace ethos. The DevOps philosophy says that it is essential to make mistakes because it shows you are trying out new ideas. - -The heart of DevOps culture is a commitment to evolving creativity. Practically, that means not yelling at your direct reports when test results show that things were better before they changed it. It means recognizing that progress is not linear and success is never a straight line. - -DevOps expert [Gene Kim][4] advocates for risk-taking and experimentation. This implies letting your team work on unusual tasks to find new insights. - -Should your organization be profit-driven? Can you allow your teams to try something new? I'm talking about something other than unrelated passion projects. Continuous process development means being open to upgrading present methods. Great sales leaders appreciate that results matter more than presenteeism, so it is always crucial to focus on how teams are working rather than how much. - -### Readily give feedback and actively seek it - -Increased trust between individuals is another key feature of a thriving DevOps culture. Whether your staff is learning how to build affiliate network contacts or trying to design their next [UX][5] survey, everyone should be open to feedback on their work. But this will never happen until your teammates respect each other's opinions and trust that feedback is given in a spirit of good intention. - -This culture may sound impossible to cultivate; indeed, some companies will struggle to achieve this more than others. Granted, a large part of the success of giving and receiving feedback depends on the personalities of your employees. It is possible to screen for this during the recruitment process. - -Before you expect staff to readily offer feedback to colleagues and seek it in the first place, you should lead by example. Members of the C-suite should be modeling this behavior, openly asking members of the company to pose probing questions about their strategic decisions, and providing balanced feedback. - -![DevOps is the intersection of development, quality assurance, and operations][6] - -### Always look for improvements - -Building on increased intellectual trust between colleagues, your team should look for ways to improve its work. The nature of DevOps means the software development team will be producing deployments more rapidly than with traditional approaches. - -However, this culture of openness to improvement can positively impact departments beyond development and operations. Ask yourself what other areas of your business could do with a burst of optimism. - -Be on the lookout for training and upskilling opportunities. Even if a training course is less salient than advertised, the chance to network with industry professionals and build contacts for the future can only enhance the diversity of ideas within your organization. - -### Save ideas for later development - -Part of your DevOps toolchain should be a heavily used account on [Git][7]. You can use Git as a common repository for scripts produced during software development and other related projects. Known as "version control," Git allows programmers to save iterations of their work and reuse or improve the work of others. - -You're aiming for the ability to keep hold of good ideas for future use. A certain pathway did not work out for specific reasons. However, just because that set of ideas was wrong for the time it was conceived does not mean it can never become helpful in the future. - -As the entire focus of DevOps rests on end-to-end ownership of software in production, saving iterations of developments truly supports this principle. You want to see an improved focus on and commitment to the software testing project at hand. - -A simple way to incorporate this is to request that developers include ideas for future work in the developer contract and final project report. Make sure tech services managers know they should ask for examples of side-branching ideas that cropped up during the build. The more minds aware of these little innovations, the more likely someone will remember one when needed. - -### Sit close together (physically or virtually) - -The goal is to share a common understanding of one another's job roles and how they interrelate. You can achieve this in a few simple ways, summarized by three words: Sit close together. Invite other teams to your meetings and share user feedback reports in their entirety. Have lunch together, plan virtual happy hours together, and generally make sure your colleagues are in close proximity. About 90% of teams with a mature DevOps protocol report a clear understanding of their responsibilities to other teams compared to only about 46% of workers in immature DevOps teams. - -Although it can be tempting to form cliques with like-minded folk and only hang out with staff hired to carry out the same tasks as you, this is terrible for the business as a whole. Whether you like it or not, all humans are multi-faceted and capable of contributing their unique talents to a whole host of scenarios. - -The idea of closer collaboration is to honor the ability of anyone to suggest improvements to the products or work processes going on around them. If you only ever sit at a distance from the other departments within the company, you will miss countless opportunities to share intelligent ideas. After all, you often learn best in the free flow of ideas during a conversation. - -### Commit to automation - -You should be looking to automate mundane and repetitive tasks in the name of efficiency and process acceleration. Every industry has boring–and quite frankly, silly–exercises carried out daily or weekly. - -Whether this is manually copying data from one page to another or typing out audio transcripts by hand, staff at every level should insist that machines take on such burdens where possible. The reality is automation technology advances every single year, and operational processes should, too. [Automation testing][8] is so crucial to DevOps that it is the second principle of the CALMS framework (the "C" of which stands for "culture"). - -How can you make this happen? Invite staff to openly express which aspects of their job they feel could be automated and then–here is the crucial part–support the facilities needed to automate them. That might mean a $600 annual subscription to a software program, a complete enterprise application modernization, or two days of developers' time to build a new tool to use in-house. - -Either way, you should assess the benefits of automation and consider how much time you could save for everyone. DevOps statistics continually indicate just how much better off modern companies are by integrating these beneficial principles year after year. - -### Explore new ways of working successfully - -A culture shift doesn't happen overnight. The sooner you start, though, the sooner you see results. In my experience, people embrace change when it's a genuine improvement on what has gone before. DevOps provides a framework for such improvements. Whether you're just getting started with DevOps in your organization or simply want to improve your existing culture, consider the above points and how they relate to your organization's future. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/tips-effective-devops-culture - -作者:[Yauhen Zaremba][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/yauhen-zaremba -[b]: https://github.com/lkxed -[1]: https://opensource.com/resources/devops -[2]: https://opensource.com/article/22/2/devops-documentation-maturity -[3]: https://opensource.com/sites/default/files/2022-12/devop.png -[4]: https://enterprisersproject.com/user/gene-kim -[5]: https://opensource.com/article/22/7/awesome-ux-cli-application -[6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png -[7]: https://opensource.com/article/22/11/git-concepts -[8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks diff --git a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md new file mode 100644 index 0000000000..80c70c7b4b --- /dev/null +++ b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md @@ -0,0 +1,123 @@ +[#]: subject: "Use time-series data to power your edge projects with open source tools" +[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" +[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use time-series data to power your edge projects with open source tools +====== + +Gathering data as it changes over the passage of time is known as time-series data. Today, it has become a part of every industry and ecosystem. It is a large part of the growing IoT sector and will become a larger part of everyday people's lives. But time-series data and its requirements are hard to work with. This is because there are no tools that are purpose-built to work with time-series data. In this article, I go into detail about those problems and how InfluxData has been working to solve them for the past 10 years. + +### InfluxData + +InfluxData is an open source time-series database platform. You may know about the company through [InfluxDB][1], but you may not have known that it specialized in time-series databases. This is significant, because when managing time-series data, you deal with two issues — storage lifecycle and queries. + +When it comes to storage lifecycle, it's common for developers to initially collect and analyze highly detailed data. But developers want to store smaller, downsampled datasets that describe trends without taking up as much storage space. + +When querying a database, you don't want to query your data based on IDs. You want to query based on time ranges. One of the most common things to do with time-series data is to summarize it over a large period of time. This kind of query is slow when storing data in a typical relational database that uses rows and columns to describe the relationships of different data points. A database designed to process time-series data can handle queries exponentially faster. InfluxDB has its own built-in querying language: Flux. This is specifically built to query on time-series data sets. + +![Image of how Telegraf works.][2] + +### Data acquisition + +Data acquisition and data manipulation come out of the box with some awesome tools. InfluxData has over 12 client libraries that allow you to write and query data in the coding language of your choice. This is a great tool for custom use cases. The open source ingest agent, Telegraf, includes over 300 input and output plugins. If you're a developer, you can contribute your own plugin, as well. + +InfluxDB can also accept a CSV upload for small historical data sets, as well as batch imports for large data sets. + +``` +import math +bicycles3 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "3") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) +bicycles4 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "4") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner") +    |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"]) +    |> map(fn: (r) => ({ +        r with +        difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4)) +    })) +``` + +### Flux + +Flux is our internal querying language built from the ground up to handle time-series data. It's also the underlying powerhouse for a few of our tools, including tasks, alerts, and notifications. To dissect the flux query from above, you need to define a few things. For starters, a "bucket" is what we call a database. You configure your buckets and then add your data stream into them. The query calls the smartcity bucket, with the range of a specific day (a 24-hour period to be exact.) You can get all the data from the bucket, but most users include a data range. That's the most basic flux query you can do. + +Next, I add filters, which filter the data down to something more exact and manageable. For example, I filter for the count of bicycles in the neighborhood assigned to the id of 3. From there, I use aggregateWindow to get the mean for every hour. That means I expect to receive a table with 24 columns, one for every hour in the range. I do this exact same query for neighborhood 4 as well. Finally, I join the two tables and get the differences between bike usage in these two neighborhoods. + +This is great if you want to know what hours are high-traffic hours. Obviously, this is just a small example of the power of flux queries. But it gives a great example of some of the tools flux comes with. I also have a large amount of data analysis and statistics functions. But for that, I suggest checking out the Flux documentation. + +``` +import "influxdata/influxdb/tasks" +option task = {name: PB_downsample, every: 1h, offset: 10s} +from(bucket: "plantbuddy") +    |>range(start: tasks.lastSuccess(orTime: -task.every)) +    |>filter(fn: (r) => r["_measurement"] == "sensor_data") +    |>aggregateWindow(every: 10m, fn:last, createEmpty:false) +    |>yield(name: "last") +    |>to(bucket: "downsampled") +``` + +### Tasks + +An InfluxDB task is a scheduled Flux script that takes a stream of input data and modifies or analyzes it in some way. It then stores the modified data in a new bucket or performs other actions. Storing a smaller data set into a new bucket is called "downsampling," and it's a core feature of the database, and a core part of the time-series data lifecycle. + +You can see in the current task example that I've downsampled the data. I'm getting the last value for every 10-minute increment and storing that value in the downsampled bucket. The original data set might have had thousands of data points in those 10 minutes, but now the downsampled bucket only has 60 new values. One thing to note is that I'm also using the last success function in range. This tells InfluxDB to run this task from the last time it ran successfully, just in case it has failed for the past 2 hours, in which case it can go back three hours in time to the last successful run. This is great for built-in error handling. + +![Image of the checks and alerts notification system.][3] + +### Checks and alerts + +InfluxDB includes an alerting or checks and notification system. This system is very straightforward. You start with a check that looks at the data periodically for anomalies that you've defined. Normally, this is defined with thresholds. For example, any temperature value under 32° F gets assigned a value of `WARN`, and anything above 32° F gets assigned a value of `OK`, and anything below 0° F gets a value of `CRITICAL`. From there, your check can run as often as you deem necessary. There is a recorded history of your checks and the current status of each. You are not required to set up a notification when it's not needed. You can just reference your alert history as needed. + +Many people choose to set up their notifications. For that, you need to define a notification endpoint. For example, a chat application could make an HTTP call to receive your notifications. Then you define when you would like to receive notifications, for example you can have checks run every hour. You can run notifications every 24 hours. You can have your notification respond to a change in the value, for example `WARN` to `CRITICAL`, or when a value is `CRITICAL`, regardless of it changing from `OK` to `WARN`. This is a highly customizable system. The Flux code that's created from this system can also be edited. + +![Image of the new Edge feature.][4] + +### Edge + +To wrap up, I'd like to bring all the core features together, including a very special new feature that's recently been released. Edge to cloud is a very powerful tool that allows you to run the open source InfluxDB and locally store your data in case of connectivity issues. When connectivity is repaired, it streams the data to the InfluxData cloud platform. + +This is significant for edge devices and important data where any loss of data is detrimental. You define that you want a bucket to be replicated to the cloud, and then that bucket has a disk-backed queue to store the data locally. Then you define what your cloud bucket should replicate into. The data is stored locally until connected to the cloud. + +### InfluxDB and the IoT Edge + +Suppose you have a project where you want to [monitor the health of household plants][5] using IoT sensors attached to the plant. The project is set up using your laptop as the edge device. When your laptop is closed or otherwise off, it stores the data locally, and then streams it to my cloud bucket when reconnected. + +![Image showing how Plant buddy works.][6] + +One thing to notice is that this downsamples data on the local device before storing it in the replication bucket. Your plant's sensors provide a data point for every second. But it condenses the data to be an average of one minute so you have less data to store. In the cloud account, you might add some alerts and notifications that let you know when the plant's moisture is below a certain level and needs to be watered. There could also be visuals you could use on a website to tell users about their plants' health. + +Databases are the backbone of many applications. Working with time-stamped data in a time series database platform like InfluxDB saves developers time, and gives them access to a wide range of tools and services. The maintainers of InfluxDB love seeing what people are building within our open source community, so connect with us and share your projects and code with others! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools + +作者:[Zoe Steinkamp][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/zoesteinkamp +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack +[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png +[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png +[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png +[5]: https://opensource.com/article/22/5/plant-care +[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png diff --git a/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md b/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md new file mode 100644 index 0000000000..67bba6c7e0 --- /dev/null +++ b/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md @@ -0,0 +1,149 @@ +[#]: subject: "Use this open source API gateway to scale your API" +[#]: via: "https://opensource.com/article/23/1/api-gateway-apache-apisix" +[#]: author: "Bobur Umurzokov https://opensource.com/users/iambobur" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use this open source API gateway to scale your API +====== + +An API gateway is a single point of entry for incoming calls to an [application programming interface (API)][1]. The gateway aggregates the services being requested and then returns the appropriate response. To make your API gateway effective, it's vital for you to design a reliable, efficient, and simple API. This is an architectural puzzle, but it's one you can solve as long as you understand the most important components. + +### API-Led approach + +An API-Led approach puts an API at the heart of communication between applications and the business capabilities they need to access in order to consistently deliver seamless functionality across all digital channels. **API-Led connectivity** refers to the technique of using a reusable and well-designed API to link data and applications. + +### API-Led architecture + +API-Led architecture is an architectural approach that looks at the best ways of reusing an API. API-Led architecture addresses things like: + +- Protecting an API from unauthorized access. +- Ensuring that consuming applications can always find the right API endpoint. +- Throttling or limiting the number of calls made to an API to ensure continuous availability. +- Supporting continuous integration, testing, lifecycle management, monitoring, operations, and so on. +- Preventing error propagation across the stack. +- Real-time monitoring of an API with rich analytics and insight. +- Implementing scalable and flexible business capabilities (for example, supporting a [microservice][2] architecture.) + +### API resource routing + +Implementing an API gateway as the single entry point to all services means that API consumers only have to be aware of one URL. It becomes the API gateway's responsibility to route traffic to the corresponding service endpoints, and to enforce policies. + +![Image depicting the API routing traffic.][3] + +This reduces complexity on the API consumer side because the client applications don't need to consume functionality from multiple HTTP endpoints. There's alsono need to implement a separate layer for authentication, authorization, throttling, and rate limiting for each service. Most API gateways, like the open source [Apache APISIX][4] project, already have these core features built in. + +### API content-based routing + +A content-based routing mechanism also uses an API gateway to route calls based on the content of a request. For example, a request might be routed based on the HTTP header or message body instead of just its target URI. + +Consider a scenario when database sharding is applied in order to distribute the load across multiple database instances. This technique is typically applied when the overall number of records stored is huge and a single instance struggles to manage the load. + +A better solution is to spread records across multiple database instances. Then you implement multiple services, one for each unique datastore, and adopt an API gateway as the only entry point to all services. You can then configure your API gateway to route calls to the corresponding service based on a key obtained either from the HTTP header or the payload. + +![Image of the API gateway exposing a single customer.][5] + +In the above diagram, an API gateway is exposing a single `/customers` resource for multiple customer services, each with a different data store. + +### API geo-routing + +An API geo-routing solution routes an API call to the nearest API gateway based on its origin. In order to prevent latency issues due to distance (for example, a consuming application from Asia calling an API located in North America), you can deploy an API gateway in multiple regions across the world. You can use a different subdomain for each API gateway in each region, letting the consuming application determine the nearest gateway based on application logic. Then, an API gateway provides internal load balancing to make sure that incoming requests are distributed across available instances. + +![Image of a DNS traffic management system.][6] + +It's common to use a DNS traffic management service and an API gateway to resolve each subdomain against the region's load balancer to target the nearest gateway. + +### API aggregator + +This technique performs operations (for example, queries) against multiple services, and returns the result to the client service with a single HTTP response. Instead of having a client application make several calls to multiple APIs, an API aggregator uses an API gateway to do this on behalf of the consumer on the server side. + +Suppose you have a mobile app that makes multiple calls to different APIs. This increases complexity in the client-side code, it causes over-utilization of network resources, and produces a poor user experience due to increased latency. An API gateway can accept all information required as input, and can request authentication and validation, and understand the data structures from each API it interacts with. It's also capable of transforming the response payloads so they can be sent back to the mobile app as a uniform payload needed for the consumer. + +![Image of an API gateway.][7] + +### API centralized authentication + +In this design, an API gateway acts as a centralized authentication gateway. As an authenticator, an API gateway looks for access credentials in the HTTP header (such as a bearer token.) It then implements business logic that validates those credentials with an identity provider. + +![Image of a tree showing API gateway's centralized authentication.][8] + +Centralized authentication with an API gateway can solve many problems. It completely offloads user management from an application, improving performance by responding quickly to authentication requests received from client applications. Apache APISIX offers a [variety of plugins][9] to enable different methods of API gateway authentication. + +![Image showing Apache ASPISIS and various plugins.][10] + +### API format conversion + +API format conversion is the ability to convert payloads from one format to another over the same transport. For example, you can transfer from XML/SOAP over HTTPS to JSON over HTTPS, and back again. An API gateway offers capabilities in support of a [REST API][11] and can do payload conversions and transport conversions. For instance, a gateway can convert from a message queue telemetry transport (MQTT) over TCP (a very popular transport in IoT) to JSON over HTTPS. + +![Image depicting APISIX transfers.][12] + +Apache APISIX is able to receive an HTTP request, transcode it, and then forward it to a gRPC service. It gets the response and returns it back to the client in HTTP format by means of its [gRPC Transcode][13] plug-in. + +### API observability + +By now, you know that an API gateway offers a central control point for incoming traffic to a variety of destinations. But it can also be a central point for observation, because it's uniquely qualified to monitor all traffic moving between the client and service networks. You can adjust an API gateway so that the data (structured logs, metrics, and traces) can be collected for use with specialized monitoring tools**.** + +Apache APISIX provides [pre-built connectors][14] so you can integrate with external monitoring tools. You can leverage these connectors to collect log data from your API gateway to further derive useful metrics and gain complete visibility into how your services are being used. You can also manage the performance and security of your API in your environment. + +### API caching + +API caching is usually implemented inside the API gateway. It can reduce the number of calls made to your endpoint, and also improve the latency of requests to your API by caching a response from upstream. If the API gateway cache has a fresh copy of the requested resource, it uses that copy to satisfy the request directly instead of making a request to the endpoint. If the cached data is not found, the request travels to the intended upstream services. + +![Image depicting how the API gateway cache functions.][15] + +### API fault handling + +API services may fail due to any number of reasons. In such scenarios, your API service must be resilient enough to deal with predictable failures. You also want to ensure that any resilience mechanisms you have in place work properly. This includes error handling code, circuit breakers, health checks, fallbacks, redundancy, and so on. Modern API gateways support all the most common error-handling features, including automatic retries and timeouts. + +![Image depicting some of the many mechanisms that the modern API Gatway can support.][16] + +An API gateway acts as an orchestrator that can use a status report to decide how to manage traffic, send load balances to a healthy node, and can fail fast. It can also alert you when something goes wrong. An API gateway also ensures that routing and other network-level components work together successfully to deliver a request to the API process. It helps you detect a problem in the early stage, and to fix issues. A fault injection mechanism (like the one Apache APISIX uses) at the API gateway level can be used to test the resiliency of an application or microservices API against various forms of failures. + +### API versioning + +This refers to having the ability to define and run multiple concurrent versions of an API. This is particularly important, because an API evolves over time. Having the ability to manage concurrent versions of an API enables API consumers to incrementally switch to newer versions of an API. This means older versions can be deprecated and ultimately retired. This is important because an API, just like any other software application, should be able to evolve either in support of new features or in response to bug fixes. + +![Image of using the API Gateway to implement API versioning.][17] + +You can use an API gateway to implement API versioning. The versioning can be a header, query parameter, or path. + +### Gateway to APISIX + +If you want to scale your API services, you need an API gateway. The Apache APISIX project provides essential features for a robust entrypoint, and its benefits are clear. It aligns with an API-Led architecture, and is likely to transform the way your clients interact with your hosted services. + +_This article has been adapted and republished from the [Apache APISIX blog][18] with the author's permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/api-gateway-apache-apisix + +作者:[Bobur Umurzokov][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/iambobur +[b]: https://github.com/lkxed +[1]: https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces +[2]: https://www.redhat.com/en/topics/microservices/what-are-microservices?intcmp=7013a000002qLH8AAM +[3]: https://opensource.com/sites/default/files/2022-12/API.routing.traffic.png +[4]: https://apisix.apache.org/docs/apisix/terminology/api-gateway/ +[5]: https://opensource.com/sites/default/files/2022-12/API%20gateway%20%20exposing%20a%20singlecustomer.png +[6]: https://opensource.com/sites/default/files/2022-12/DNS-traffic%20management%20.png +[7]: https://opensource.com/sites/default/files/2022-12/API-gateway.png +[8]: https://opensource.com/sites/default/files/2022-12/Apigateway.centralized.png +[9]: https://apisix.apache.org/docs/apisix/plugins/openid-connect/ +[10]: https://opensource.com/sites/default/files/2022-12/Apache.ASPISISplugins.png +[11]: https://www.redhat.com/en/topics/api/what-is-a-rest-api?intcmp=7013a000002qLH8AAM +[12]: https://opensource.com/sites/default/files/2022-12/APISIX.transfers.png +[13]: https://apisix.apache.org/docs/apisix/plugins/grpc-transcode/ +[14]: https://apisix.apache.org/docs/apisix/plugins/prometheus/ +[15]: https://opensource.com/sites/default/files/2022-12/APIgatewaycache.png +[16]: https://opensource.com/sites/default/files/2022-12/ModernAPIGatways.png +[17]: https://opensource.com/sites/default/files/2022-12/API.gateway.version.png +[18]: https://apisix.apache.org/blog/2022/10/27/ten-use-cases-api-gateway/ diff --git a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md new file mode 100644 index 0000000000..2f59cf6dcc --- /dev/null +++ b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -0,0 +1,187 @@ +[#]: subject: "How to use methods in Java" +[#]: via: "https://opensource.com/article/23/1/java-methods" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to use methods in Java +====== + +A method in Java (called a "function" in many other programming languages) is a portion of code that's been grouped together and labeled for reuse. Methods are useful because they allow you to perform the same action or series of actions without rewriting the same code, which not only means less work for you, it means less code to maintain and debug when something goes wrong. + +A method exists within a class, so the standard Java boilerplate code applies: + +``` +package com.opensource.example; + +public class Example { + // code here +} +``` + +A package definition isn't strictly necessary in a simple one-file application like this, but it's a good habit to get into, and most IDEs enforce it. + +By default, Java looks for a `main` method to run in a class. Methods can be made public or private, and static or non-static, but the main method must be public and static for the Java compiler to recognize and utilize it. When a method is public, it's able to be executed from outside the class. To call the `Example` class upon start of the program, its `main` method must be accessible, so set it to `public`. + +Here's a simple demonstration of two methods: one `main` method that gets executed by default when the `Example` class is invoked, and one `report` method that accepts input from `main` and performs a simple action. + +To mimic arbitrary data input, I use an if-then statement that chooses between two strings, based on when you happen to start the application. In other words, the `main` method first sets up some data (in real life, this data could be from user input, or from some other method elsewhere in the application), and then "calls" the `report` method, providing the processed data as input: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + // generate some data + long myTime = System.currentTimeMillis(); + String weather; + + if ( myTime%2 == 0 ) { + weather = "party"; + } else { + weather = "apocalypse"; + } + + // call the other method + report(weather); + } + + private static void report(String day) { + System.out.printf("Welcome to the zombie %s\n", day); + } +} +``` + +Run the code: + +``` +$ java ./Example.java +Welcome to the zombie apocalypse +$ java ./Example.java +Welcome to the zombie party +``` + +Notice that there are two different results from the same `report` method. In this simple demonstration, of course, there's no need for a second method. The same result could have been generated from the if-then statement that mimics the data generation. But when a method performs a complex task, like resizing an image into a thumbnail and then generating a widget on screen using that resized image, then the "expense" of an additional component makes a lot of sense. + +### When to use a Java method + +It can be difficult to know when to use a method and when to just send data into a [Java Stream][1] or loop. If you're faced with that decision, the answer is usually to use a method. Here's why: + +- Methods are cheap. They don't add processing overhead to your code. +- Methods reduce the line count of your code. +- Methods are specific. It's usually easier to find a method called `resizeImage` than it is to find code that's hidden in a loop somewhere in the function that loads images from the drive. +- Methods are reusable. When you first write a method, you may _think_ it's only useful for one task within your application. As your application grows, however, you may find yourself using a method you thought you were "done" with. + +### Functional vs. object-oriented programming + +Functional programming utilizes methods as the primary construct for performing tasks. You create a method that accepts one kind of data, processes that data, and outputs new data. String lots of methods together, and you have a dynamic and capable application. Programming languages like C and [Lua][2] are examples of this style of coding. + +The other way to think of accomplishing tasks with code is the object-oriented model, which Java uses. In object-oriented programming, methods are components of a template. Instead of sending data from method to method, you create objects with the option to alter them through the use of their methods. + +Here's the same simple zombie apocalypse demo program from an object-oriented perspective. In the functional approach, I used one method to generate data and another to perform an action with that data. The object-oriented equivalent is to have a class that represents a work unit. This example application presents a message-of-the-day to the user, announcing that the day brings either a zombie party or a zombie apocalypse. It makes sense to program a "day" object, and then to query that day to learn about its characteristics. As an excuse to demonstrate different aspects of object-oriented construction, the new sample application will also count how many zombies have shown up to the party (or apocalypse). + +Java uses one file for each class, so the first file to create is `Day.java`, which serves as the Day object: + +``` +package com.opensource.example; + +import java.util.Random; + +// Class +public class Day { + public static String weather; + public int count; + +// Constructor + public Day() { + long myTime = System.currentTimeMillis(); + + if ( myTime%2 == 0 ) { + weather = "paradise"; + } else { + weather = "apocalypse"; + } + } + +// Methods + public String report() { + return weather; + } + + public int counter() { + Random rand = new Random(); + count = count + rand.nextInt(100); + + return(count); + } +} +``` + +In the `Class` section, two fields are created: `weather` and `count`. Weather is static. Over the course of a day (in this imaginary situation), weather doesn't change. It's either a party or an apocalypse, and it lasts all day. The number of zombies, however, increases over the course of a day. + +In the `Constructor` section, the day's weather is determined. It's done as a [constructor][3] because it's meant to only happen once, when the class is initially invoked. + +In the `Methods` section, the `report` method only returns the weather report as determined and set by the constructor. The `counter` method, however, generates a random number and adds it to the current zombie count. + +This class, in other words, does three very different things: + +- Represents a "day" as defined by the application. +- Sets an unchanging weather report for the day. +- Sets an ever-increasing zombie count for the day. + +To put all of this to use, create a second file: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + Day myDay = new Day(); + String foo = myDay.report(); + String bar = myDay.report(); + + System.out.printf("Welcome to a zombie %s\n", foo); + System.out.printf("Welcome to a zombie %s\n", bar); + System.out.printf("There are %d zombies out today.\n", myDay.counter()); + System.out.printf("UPDATE: %d zombies. ", myDay.counter()); + System.out.printf("UPDATE: %d zombies. ", myDay.counter()); + } +} +``` + +Because there are now two files, it's easiest to use a Java IDE to run the code, but if you don't want to use an IDE, you can create your own [JAR file][4]. Run the code to see the results: + +``` +Welcome to a zombie apocalypse +Welcome to a zombie apocalypse +There are 35 zombies out today. +UPDATE: 67 zombies. UPDATE: 149 zombies. +``` + +The "weather" stays the same regardless of how many times the `report` method is called, but the number of zombies on the loose increases the more you call the `counter` method. + +### Java methods + +Methods (or functions) are important constructs in programming. In Java, you can use them either as part of a single class for functional-style coding, or you can use them across classes for object-oriented code. Both styles of coding are different perspectives on solving the same problem, so there's no right or wrong decision. Through trial and error, and after a little experience, you learn which one suits a particular problem best. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-methods + +作者:[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/article/20/1/javastream +[2]: https://opensource.com/article/22/11/lua-worth-learning +[3]: https://opensource.com/article/19/6/what-java-constructor +[4]: https://opensource.com/article/21/8/fastjar + diff --git a/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md new file mode 100644 index 0000000000..abe5942ad6 --- /dev/null +++ b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -0,0 +1,241 @@ +[#]: subject: "Install Ubuntu on Windows Using VirtualBox [Complete Guide]" +[#]: via: "https://www.debugpoint.com/install-ubuntu-windows-virtualbox/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Install Ubuntu on Windows Using VirtualBox [Complete Guide] +====== + +**This tutorial will guide you through the easiest steps to install an Ubuntu desktop on Windows using Oracle VirtualBox.** + +[VirtualBox][1] is a popular virtualization software by Oracle which is available for Linux, mac and Windows systems. It is flexible and brings many features to take advantage of your virtualization. It’s the best and easy way to experience Ubuntu in Windows without installing it. However, I strongly recommend installing Ubuntu physically as a dual-boot to enjoy its advantage. + +The steps outlined below assume that you are installing Ubuntu for the first time in Windows. Hence the steps are a little descriptive and a bit lengthy. Furthermore, the following steps should work for Windows 10 and Windows 11 as host machines. + +### Contents + +- [Pre-requisite][2] +- [Download Ubuntu ISO and VirtualBox set-up files][3] +- [Install VirtualBox on Windows (Host)][4] +- [Install Ubuntu (Guest) on VirtualBox][5] +- [Guest addition installation and tips][6] + +### What you’ll need + +- A PC with internet access +- Ubuntu Linux ISO image file for installation +- Windows system with VirtualBox installed + +### Install Ubuntu on Windows Using VirtualBox + +#### Download and install the necessary items + +- Download the Ubuntu Linux desktop ISO image file from the following link. + +[Download Ubuntu Desktop][7] + +- Also, download the Oracle VirtualBox installer from the official website below. + +[Download VirtualBox][8] + +![Download location for VirtualBox for Windows][9] + +#### How to install and configure VirtualBox + +VirtualBox in Windows requires Microsoft Visual C++ 2019 Redistributable package. And you have to install it first. Download the package (under X64 architecture) from the below link: + +[Download][10] + +![Download the dependency for VirtualBox][11] + +![Install the dependency for VirtualBox][12] + +- After the above installation is complete, download the latest Python package from the below link. Python bindings are also a dependency for VirtualBox installation on Windows. + +[Download Python for Windows][13] + +- Then, launch the VirtualBox installation and follow the onscreen instructions to install it. +- After installation, restart your Windows system again. + +#### Set up a virtual machine for Ubuntu + +- Launch VirtualBox from the start menu. + +![Select VirtualBox from start menu][14] + +- On the VirtualBox window toolbar, click **New**. +- On the **Create VirtualBox** window, give the name of your virtual machine. It can be any name which identifies this version of Ubuntu. +- Keep the **Folder Name** unchanged. This is the path where the virtual machine file will be created. +- In the ISO Image field, browse the Ubuntu ISO file you downloaded. +- And select the Unattended installation. If you un-select this, a [default user id (vboxuser) and password][15] will be created in your virtual machine. Let’s not follow it for now. + +![Click on New][16] + +![Select the ISO file][17] + +- Click on Hardware and select the RAM you want for your virtual box. A thumb rule is that your VM’s RAM size should be less than your physical RAM in the host system. I would recommend using 2 GB to 4 GB for a virtual machine for an 8 GB RAM system. For 4 GB RAM, use the slider (or type in) to make it 4096 MB (i.e. 4*1024). +- Choose processor as 2 or 4. +- Click on the Hard Disk section, and keep the file location unchanged. +- Give a minimum of 20GB to 25GB for Ubuntu installation. +- The hard disk file type value keeps as VDI (VirtualBox Disk Image) +- Do not select the pre-allocate full size. +- And finally, click on Finish. + +![Select Hardware][18] + +![Select Hard Disk][19] + +- You should see a new entry at the left panel of VirtualBox with an Ubuntu 22.04 entry (the name which you gave above). +- Select the entry and click on Start to boot into the virtual machine + +![Boot Ubuntu in VirtualBox][20] + +#### Install Ubuntu using VirtualBox + +- After a successful boot, you should see the following screen, which shows various options for installing Ubuntu. Select **Try or install Ubuntu**. +- In the Welcome screen, click on **Try Ubuntu**. And after a few moments, you should see the following Ubuntu LIVE desktop. If you want to change the resolution, right-click on the desktop and select Display settings. And change the resolution to 1400×900. +- On the desktop, double-click on “**Install Ubuntu**…”. + +![Select Try Ubuntu][21] + +![Ubuntu LIVE desktop][22] + +- In the next set of screens, select Language and Keyboard Layout as your needs. +- The Install screen provides you with the type of installation you need. Select Normal Installation, and select both options under Other options. +- Since you are installing in the virtual disk space, i.e. which is just a file, you can safely choose the “Erase disk and install Ubuntu” option. +- Hit Install Now and Continue. + +![Select Language][23] + +![Select Keybaord Layout][24] + +![Select install options][25] + +![Installation Type][26] + +![Write changes to disk][27] + +- Then select region, add name, user and password. This will be your user id and password to log on to Ubuntu after installation. +- Hit continue to start the installation. Wait until it finishes. + +![User account creation][28] + +![Ubuntu Installation is complete][29] + +Click on Restart Now after the installation is complete. Wait for a few seconds and you should see a login screen. Use the user id and password to log in. And you should see Ubuntu desktop is running inside VirtualBox as VM in Windows. + +![Log on to Ubuntu][30] + +![Ubuntu running in Windows using Virtualbox][31] + +### Post-install configuration and tips (optional) + +#### Install Guest Additions + +After the successful installation, you should install the **VirtualBox guest additions** for Windows Host and Ubuntu Guest. The guest addition is a set of packages you need to install inside the guest VM (i.e. Ubuntu) to enable **shared folders, bi-directional copy/paste, automatic resolution change,** and many such features. + +To install it, boot into Ubuntu. From the VirtualBox menu, select `Devices > Insert Guest Additions CD Image`. The necessary packages will be mounted inside Ubuntu. + +![Select Guest addition from the menu][32] + +Open the file manager and open the mounted folder as shown below. And then right-click > select `open in terminal`. + +Then run the following command: + +``` +sudo ./VBoxLinuxAdditions.run +``` + +![Open the mounted disc and select option with terminal][33] + +![VirtualBox guest addition install for Windows host][34] + +After the above command is complete, restart Ubuntu VM. + +#### Enable Copy and paste between Windows and Ubuntu + +- To enable the copy and paste between Windows and Ubuntu systems, select `Devices > Shared Clipboard > Bi-directional` from the menu. + +![Enable clipboard sharing][35] + +#### Shutting down Ubuntu VM + +- Ideally, you should shut down a VM from its own power off menu. However, you can also shut down from the main VirtualBox window. Right-click on the VM name and select `Close > Poweroff`. + +![Poweroff Virtual machine][36] + +#### How to delete Ubuntu and remove all data + +- If you want to delete the Virtual machine entirely (.e.g. Ubuntu) and its data, select `Remove` and `delete all files`. + +![Select remove to delete a VM][37] + +![Select the delete options][38] + +### Close notes + +In this tutorial, you learned the easiest way to install Ubuntu on Windows (10 or 11) using VirtualBox. Also, you learned several post-install basic steps to configure the Ubuntu VM. You can use the above steps for any other Linux distributions in VirtualBox. + +Feel free to comment below if you have any problems or questions. + +[Next:How to Install Python on Windows [Beginner’s Guide]][39] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][40] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ + +作者:[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/tag/virtualbox +[2]: https://www.debugpoint.com#presteps +[3]: https://www.debugpoint.com#download-items +[4]: https://www.debugpoint.com#install-virtualbox +[5]: https://www.debugpoint.com#install-ubuntu +[6]: https://www.debugpoint.com#post-install-steps +[7]: https://ubuntu.com/download/desktop +[8]: https://www.virtualbox.org/wiki/Downloads +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-location-for-VirtualBox-for-Windows.jpg +[10]: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-the-dependency-for-VirtualBox.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-dependency-for-VirtualBox.jpg +[13]: https://www.python.org/downloads/windows/ +[14]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-VirtualBox-from-start-menu.jpg +[15]: https://www.debugpoint.com/virtualbox-id-password/ +[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-New.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-ISO-file.jpg +[18]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hardware.jpg +[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hard-Disk.jpg +[20]: https://www.debugpoint.com/wp-content/uploads/2023/01/Boot-Ubuntu-in-VirtualBox.jpg +[21]: https://www.debugpoint.com/wp-content/uploads/2023/01/1-Select-Try-Ubuntu.jpg +[22]: https://www.debugpoint.com/wp-content/uploads/2023/01/2-Ubuntu-LIVE-desktop-1.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Language.jpg +[24]: https://www.debugpoint.com/wp-content/uploads/2023/01/4-Select-Keybaord-Layout.jpg +[25]: https://www.debugpoint.com/wp-content/uploads/2023/01/5-Select-install-options.jpg +[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/6-Installation-Type.jpg +[27]: https://www.debugpoint.com/wp-content/uploads/2023/01/7-Write-changes-to-disk.jpg +[28]: https://www.debugpoint.com/wp-content/uploads/2023/01/8-User-account-creation.jpg +[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/10-Ubuntu-Installation-is-complete.jpg +[30]: https://www.debugpoint.com/wp-content/uploads/2023/01/11-Log-on-to-Ubuntu.jpg +[31]: https://www.debugpoint.com/wp-content/uploads/2023/01/12-Ubuntu-running-in-Windows-using-Virtualbox-2048x1280.jpg +[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Guest-addition-from-the-menu.jpg +[33]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-mounted-disc-and-select-option-with-terminal.jpg +[34]: https://www.debugpoint.com/wp-content/uploads/2023/01/VirtualBox-guest-addition-install-for-Windows-host.jpg +[35]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-clipboard-sharing.jpg +[36]: https://www.debugpoint.com/wp-content/uploads/2023/01/Poweroff-Virtual-machine.jpg +[37]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-remove-to-delete-a-VM.jpg +[38]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-delete-options.jpg +[39]: https://www.debugpoint.com/install-python-windows/ +[40]: https://floss.social/@debugpoint diff --git a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md new file mode 100644 index 0000000000..cc06a6ceef --- /dev/null +++ b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -0,0 +1,147 @@ +[#]: subject: "How to Install Python on Windows [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-python-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install Python on Windows [Beginner’s Guide] +====== + +**This simple guide demonstrates how to download and install Python on Windows.** + +This article is tested with the latest Python 3.11 stable version. + +Before you learn how to install Python on Windows, you might want to check how you can [install it easily][1] on Linux distributions such as Ubuntu. It’s better to try Python in Linux if you are planning to be a developer. That being said, you might want to check [how to install Linux (such as Ubuntu) alongside Windows][2]. + +Python is a popular general-purpose programming language which becomes the developer’s choice in the past decade. And its popularity is increasing every day. it is widely used for web development, complex systems, data science, machine learning and all areas of science. + +There are two versions of Python that you may come across. Python2 is currently out of support. And the Python3 series is the ongoing support release. + +### Check whether Python is installed + +Before you install it on Windows, you should check whether it is already installed. In general, it should not be installed, unlike in Ubuntu (and other Linux distributions), where Python comes pre-installed. + +From the start menu, open “command prompt”. + +And type the following: + +``` +python --version +``` + +If Python is available, it will show you a message with the version details. + +### Download and Install Python + +Open the below official Python download page. + +[Download Python][3] + +![How to locate Python set up][4] + +At the top, you should see the current stable version. Click on the download link. If you are looking for any specific version, scroll down on this page and download the specific version under the label “Python releases by version number:”. + +After downloading, go to the Downloads folder and run the setup. + +Follow the on-screen instructions to install it. + +![Install Python step 1][5] + +![Install Python step 2][6] + +After installation is complete, verify the Python version. + +### Verify Python Version + +From the start menu, open “command prompt” and run the following command. + +``` +python --version +``` + +![Python version on Windows][7] + +You should see your system’s currently installed version of the Python package. Alternatively, you can also run below to get a Python interactive shell. + +``` +python +``` + +You can exit the shell using CTRL+Z and Enter. + +### Check PATH Variables + +You should check the system variable PATH with the Python executable location. This should be updated automatically using the installer. + +From the start menu, search “system variables” and open it. + +![Open Environment variable Settings][8] + +In the System Properties Dialog, click on `Advanced > Environment Variables`. Under the user variables section against the Path variable, check whether the Python installed location is present. Refer to the below image for a guideline. + +If you see all the path is present, you are all set to run your Python project. + +![Check Python Environment PATH Values in Windows][9] + +### Create and run your first Python program + +For an additional step, here’s how you can code & run your first Python program. You should ideally use any [recommended Python editor][10] to write your program. + +Here’s a simple program which outputs the text “debugpoint.com” in the console. + +``` +# Sample Python program +print("debugpoint.com") +``` + +Save the file with any name. Here I have saved it as “hello.py” in E drive. The .py is the extension of Python source codes. + +To run this program, open a command prompt and execute below inside E drive. + +``` +python hello.py +``` + +**Output:** + +![Running a simple Python program in Windows][11] + +### Closing Notes + +I hope this simple beginner’s guide helps you to install Python in Windows, verify the installation and run your first program. + +Please let me know if you run into issues in the comment box below. + +[Next:Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)][12] + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][13] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-windows/ + +作者:[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/install-python-3-11-ubuntu/ +[2]: https://www.debugpoint.com/complete-guide-how-dual-boot-ubuntu-windows/ +[3]: https://www.python.org/downloads/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/How-to-locate-Python-set-up.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-1.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-2.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Python-version-on-Windows.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-Environment-variable-Settings.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Check-Python-Environment-PATH-Values-in-Windows.jpg +[10]: https://www.debugpoint.com/5-best-python-ide-code-editor/ +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg +[12]: https://www.debugpoint.com/share-folder-virt-manager/ +[13]: https://floss.social/@debugpoint diff --git a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md new file mode 100644 index 0000000000..40e7c4380a --- /dev/null +++ b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -0,0 +1,110 @@ +[#]: subject: "Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)" +[#]: via: "https://www.debugpoint.com/share-folder-virt-manager/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt) +====== + +**In this guide, you will learn how to share a folder between host and guest in virt-manager using KVM, QEMU and libvirt.** + +The [virt-manager][1] application or package uses the [libvirt][2] library to provide virtual machine management services. It has a desktop interface that helps to create, delete, and manage multiple virtual machines. + +The virt-manager desktop interface and its components provide flexible virtual machine management services for various personal and business use cases. it is a free and open-source application primarily used for KVM virtual machines. However, it can also support other hypervisors such as Xen and LXC. + +In the earlier article, I explained [how to create a virtual machine using virt-manager][3]. This article covers how you can seamlessly access files and folders between guest and host virtual machines. + +### A note about virtiofs + +The sharing files and folders are powered by the libvirt shared file system called virtiofs. It provides all the features and parameters to access the directory tree on the host machine. Since most of the virt-manager virtual machine configurations are translated to XML, the share files/folders can also be specified by the XML file. + +### Share folder in virt-manager + +- First, make sure your guest virtual machine is powered off. From the virt-manager GUI, select the virtual machine and click on Open to pull up the console settings. + +![Open the settings][4] + +- Click on the icon which says show virtual hardware details in the toolbar. And then click on **Memory** on the left panel. +- Select the option “**Enable shared memory**“. Click Apply. + +![Enable the shared memory option][5] + +- And then click “Add hardware” at the bottom. + +![Click on add hardware][6] + +- Select **File system** from the left panel in the add new hardware window. +- Then select **Driver=virtiofs** in the details tab. Click on `browse > browse local` and **select the host path** you want to access inside the guest VM. +- In the target path, mention any name you want. It’s just a file tag which will be used during mount. +- So, if I want to access the Pictures/Screenshots folder (`/home/debugpoint/Pictures/Screenshots`), sample settings could be the following: + +![Add a new file system hardware][7] + +The XML settings are below for the above configuration. You can find it in the XML tab. + +``` + + + + + + +
              + +``` + +Click on Finish. In the main virt-manager window, right-click on the VM and click Run to start the virtual machine. Make sure to click on the “show the graphical console” (monitor icon in the toolbar – if the VM is not showing. + +In the guest machine, create a folder where you want to mount the host folder. For this example, I have used /mnt/pictures. + +``` +sudo mkdir /mnt/pictures +``` + +And finally, mount the host folder using the tag you created in the above step to this new folder. Use the following command to do that from the terminal. Ensure to change the tag and folder name in the below command as your system. + +``` +sudo mount -t virtiofs mount_tag_pictures /mnt/pictures +``` + +Now you can browse the folders and add/delete items seamlessly in virt-manager between host and guest. + +![Access host files from virt-manager guest][8] + +### Wrapping Up + +I hope this solution helps you to access host files and folders from the guest machine. Remember, your user Id, which is used to launch the virt-manager app, should have the same access to the host folder. + +If you run into any errors, the above guide helped you drop a note below. + +_[Reference][9]_ + +[_Using Mastodon? Follow us at floss.social/@debugpoint_][10] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-virt-manager/ + +作者:[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://virt-manager.org/ +[2]: https://libvirt.org/manpages/libvirtd.html +[3]: https://www.debugpoint.com/virt-manager/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-settings.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-the-shared-memory-option.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-add-hardware.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-new-file-system-hardware.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Access-host-files-from-virt-manager-guest.jpg +[9]: https://libvirt.org/kbase/virtiofs.html +[10]: https://floss.social/@debugpoint diff --git a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md new file mode 100644 index 0000000000..7bed4b5c37 --- /dev/null +++ b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -0,0 +1,151 @@ +[#]: subject: "A 4-minute guide to Java loops" +[#]: via: "https://opensource.com/article/23/1/java-loops" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A 4-minute guide to Java loops +====== + +A while loop performs a set of tasks for as long as some predefined condition is true. This is considered a control structure that directs the flow of a program. It's a way for you to tell your code what to do by defining a condition that it can test, and take action based on what it finds. The two kinds of while loops in Java are while and do while. + +### Java while loop + +A while loop is meant to iterate over data until some condition is satisfied. To create a while loop, you provide a condition that can be tested, followed by the code you want to run. Java has several built-in test functions, the simplest of which are mathematical operators (`<`, `>`, `==`, and so on): + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + int count = 0; + while (count < 5) { + System.out.printf("%d ", count); + count++; + } + } +} +``` + +In this simple example, the condition is that the variable `count` is less than 5. Because `count` is instantiated at 0, and then incremented by 1 in the code within the while loop, the program iterates a total of 5 times: + +``` +$ java ./while.java +0 1 2 3 4 +``` + +Before it can iterate a sixth time, the condition is no longer true, so the loop ends. + +The conditional statement for a while loop is vital. Getting it wrong could mean that your loop never executes. For instance, suppose you had set `count == 5` as the condition: + +``` +while (count == 5) { + System.out.printf("%d ", count); + count++; +``` + +When you run the code, it builds and runs successfully, but nothing happens: + +``` +$ java ./while.java +$ +``` + +The loop has been skipped because `count` was set to 0, and it's still 0 at the moment the while loop is first encountered. The loop never has a reason to start and `count` is never incremented. + +The reverse of this is when a condition starts as true and can never be false, this results in an infinite loop. + +### Java do while loop + +Similar to the while loop, a do while loop tests for the conditional at the end, not the beginning, of each iteration. With this, the code in your loop runs at least once because there's no gateway to entry, only a gateway to exit: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + int count = 9; + do { + System.out.printf("%d ", count); + count++; + } while(count == 5); + } +} +``` + +In this sample code, `count` is set to 9. The condition for the loop to repeat is that `count` is equal to 5. But 9 isn't equal to 5. That check isn't performed until the end of the first iteration, though: + +``` +$ java ./do.java +9 +``` + +### Java infinite loops + +An infinite loop, as its name suggests, never ends. Sometimes they're created by mistake, but an infinite loop does have a valid use case. Sometimes you want a process to continue indefinitely (that's functionally infinite because you can't guarantee when you need it to stop), and so you might set your condition to something impossible to meet. + +Suppose you've written an application that counts the number of zombies remaining in your neighborhood during a zombie apocalypse. To simulate uncertainty over how many loops are required to get to 0 zombies, my demo code retrieves a timestamp from the operating system and sets the value of the counter (`c`) to some number derived from that timestamp. Because this is a simple example and you don't really want to get trapped in an infinite loop, this code counts down to zero and uses the `break` function to force the loop to end: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + long myTime = System.currentTimeMillis(); + + int c; + + if ( myTime%2 == 0 ) { + c = 128; + } else { + c = 1024; + } + + while(true) { + System.out.printf("%d Zombies\n", c); + + // break for convenience + if ( c <= 0 ) { break; } + c--; + } + } +} +``` + +You may have to run it a few times to trigger a different total number of zombies, but sometimes your program iterates 128 times and other times 1,024 times: + +``` +$ java ./zcount.java +1024 Zombies +1023 Zombies +[...] +0 Zombies +``` + +Can you tell why the loops end at 0 and not at -1? + +### Java loops + +Loops give you control over the flow of your program's execution. Iteration is common in programming, and whether you use a while loop, a do while loop, or an infinite loop, understanding how loops work is vital. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-loops + +作者:[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 + + diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md new file mode 100644 index 0000000000..bd4d9e8813 --- /dev/null +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -0,0 +1,146 @@ +[#]: subject: "Codecademy vs. The BBC Micro" +[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" +[#]: author: "Two-Bit History https://twobithistory.org" +[#]: collector: "lujun9972" +[#]: translator: "CanYellow" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +[BBC Micro][T2] 比之 [Codecademy][T1] +====== + +20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。少数狂热的爱好者注意到了这是多么吸引人并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 + +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 + +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_Computer Literacy Project(计算机认知计划)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的 Fifth Personal Computer World Show(第五届个人电脑世界展) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _Computer Literacy Project_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] + +去年,一份包括了由 _Computer Literacy Project_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑使用是什么图景。不过我发现更有兴趣的是时年是如何教授电脑使用的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? + +### [Computer Literacy Project][T3] (计算机认知计划) + +微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为["Now the Chips Are Down"][T5](《芯片来了》)(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 + +该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 + +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_Adult Literacy Project_(成人扫盲计划)相似的多媒体项目。_Adult Literacy Project_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 + +_Computer Literacy Project_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 + +BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_Computer Literacy Project_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[6][8] + +BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 + +1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“Advanced RISC Machine”(先进 RISC 架构设备),然而最初它代表的是“Acorn RISC Machine”(Acorn RISC 架构设备)。ARM 架构背后的 ARM Holding(ARM 公司) 就是 Acorn 公司在1990年之后的延续。 + +![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ + + +### 名为“The Computer Programme”(计算机程序)的电视系列片 + +十几个不同的电视系列片最终作为_Computer Literacy Project_的一部分创作出来。第一部作品是一部名为 _The Computer Programme_(计算机程序) 的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 + +这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 + +该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_Computer Literacy Project_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 + +虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 + +在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴的小节。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 + +我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_Computer Literacy Project_的总制作人 John Radcliffe 如是写道: + +> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 + +接下来, Radcliffe writes 又以类似的方式写道: + +> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 + +我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_Computer Literacy Project_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 + +### 今天的计算机认知 + +如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品——存在相同的影响与目标,那就是 Codecademy。 + +对于普通人而言“Learn to code”(学习编程)是 Codecademy 的口号。我认为我不是第一个指出这一点的人——事实上我曾经在某个地方见到过这一点,只是现在拿来用而已。但是这里使用的是“code”(代码)而非“编程”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的价值而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的电脑屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些术语。但是理解语法并不是成为程序员的最大的挑战。面对更多更大的障碍,它很快将变成微不足道的。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码但是无法做到 _编写_ 代码解决全新的问题。 + +我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 + +公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动 _Computer Literacy Project_ 的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? + +我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 + +唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 + +另一方面,_Computer Literacy Project_ 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 + + + 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] + + 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] + + 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] + + 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] + + 5. ibid. [↩︎][23] + + 6. Williams, 51. [↩︎][24] + + 7. Radcliffe, 11. [↩︎][25] + + 8. Radcliffe, 5. [↩︎][26] + + + + +-------------------------------------------------------------------------------- + +via: https://twobithistory.org/2019/03/31/bbc-micro.html + +作者:[Two-Bit History][a] +选题:[lujun9972][b] +译者:[CanYellow](https://github.com/CanYellow) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://twobithistory.org +[b]: https://github.com/lujun9972 +[1]: tmp.zNBs2lK4Ca#fn:1 +[2]: tmp.zNBs2lK4Ca#fn:2 +[3]: tmp.zNBs2lK4Ca#fn:3 +[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ +[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html +[6]: tmp.zNBs2lK4Ca#fn:4 +[7]: tmp.zNBs2lK4Ca#fn:5 +[8]: tmp.zNBs2lK4Ca#fn:6 +[9]: https://twobithistory.org/images/beeb.jpg +[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 +[11]: tmp.zNBs2lK4Ca#fn:7 +[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 +[13]: tmp.zNBs2lK4Ca#fn:8 +[14]: https://twobithistory.org/2018/09/02/learning-basic.html +[15]: https://twitter.com/TwoBitHistory +[16]: https://twobithistory.org/feed.xml +[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw +[18]: tmp.zNBs2lK4Ca#fnref:1 +[19]: tmp.zNBs2lK4Ca#fnref:2 +[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf +[21]: tmp.zNBs2lK4Ca#fnref:3 +[22]: tmp.zNBs2lK4Ca#fnref:4 +[23]: tmp.zNBs2lK4Ca#fnref:5 +[24]: tmp.zNBs2lK4Ca#fnref:6 +[25]: tmp.zNBs2lK4Ca#fnref:7 +[26]: tmp.zNBs2lK4Ca#fnref:8 + +[T1]: https://www.codecademy.com/ +[T2]: https://bbcmicro.computer/ +[T3]: https://clp.bbcrewind.co.uk/history +[T4]: https://archive.org/details/byte-magazine?tab=about +[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down +[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown +[T7]: https://en.wikipedia.org/wiki/Sinclair_Research +[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) +[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom diff --git a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md new file mode 100644 index 0000000000..1efd79e614 --- /dev/null +++ b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -0,0 +1,101 @@ +[#]: subject: "Colorblind Filters: GNOME Extension to help Colorblind Users" +[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Colorblind Filters:帮助色盲用户的 GNOME 扩展 +====== + +**一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多选项。** + +无障碍是计算和操作系统的一个重要方面。它包括对视力障碍、色盲和许多其他健康症状的管理设置。流行的 Linux 桌面环境,如 GNOME 和 KDE Plasma,具有无障碍设置,以帮助所有这些情况。 + +感谢 GNOME 扩展生态系统,有大量的专门扩展可以帮助这些用户。我遇到的其中一个扩展是[“Colorblind Filters”][1]。 + + +### Colorblind Filters – GNOME 扩展 + +根据维基百科,_"色盲通常涉及无法区分红色和绿色的深浅。遗传性色盲症没有治疗方法。如果色盲是由其他疾病引起的,治疗潜在的原因会有帮助。"_。 + +因此,你有选项来调整你的 Linux 桌面上的设置是很重要的。 + +#### 设置扩展程序和 Flatpak + +首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何[设置 flatpak][2]和启用 [GNOME 扩展][3]的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 + +``` +sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +对于 Fedora 用户,使用以下命令。 + +``` +sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +完成后,安装扩展管理器: + +``` +flatpak install com.mattjakeman.ExtensionManager +``` + +#### 安装扩展 + +从应用菜单中打开扩展管理器。搜索 “colorblind”。并安装该扩展(见下图)。 + +![安装扩展][4] + +安装后,你可以在系统托盘上看到一个小眼睛图标。你可以点击它来启用预定义的颜色过滤器。 + +![Colorblind Filters 扩展托盘图标][5] + +右键点击眼睛图标以获得更多设置。这个扩展带来了色盲收集、模拟和额外选项的所有必要定制。目前有以下选项: + +- 红色盲 +- 绿色盲 +- 蓝黄色盲 + +- 纠正和模拟(具有高对比度) + +- GBR 和 BRG 的通道混合器 +- 亮度反转 +- 颜色反转 + +- 额外的调整 + +![Colorblind Filters - 选项][6] + +使用最适合你的眼睛的那个。 + +### 总结 + +我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如“[Accessible Coconut][7]”,它是为专门的需求而建立的。 + +我希望 Colorblind gnome 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://extensions.gnome.org/extension/5589/colorblind-filters/ +[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/ +[3]: https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-extension.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg +[7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/ diff --git a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md new file mode 100644 index 0000000000..8307a8248d --- /dev/null +++ b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -0,0 +1,102 @@ +[#]: subject: "6 tips for building an effective DevOps culture" +[#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" +[#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" +[#]: collector: "lkxed" +[#]: translator: "lxbwolf" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +构建高效的 DevOps 文化的 6 个技巧 +====== + +你为什么要构建 [DevOps][1] 文化?开发和运营团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 + +[DevOps][2] 是一个很广泛的范畴,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事--这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 + +下面每个部分从不同的视角介绍 DevOps 文化,并争取将它引入你的工作中去。 + +![DevOps includes collaboration, workflow, infosec, and iteration.][3] + +### 流程的持续开发 + +DevOps 文化的这一核心原则使它与许多其他类型的工作区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 + +DevOps 文化的核心是不停地创造。实际上,这意味着当测试结果显示事情由于你的改动而变坏时,不要懊恼。我们要认识到,进化的过程不是线性的,通往成功的道路也从来不是一条直线。 + +DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 + +你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程开发意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 + +### 随时提供反馈并积极寻求反馈 + +成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [UX][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 + +这种文化听起来可能是很难培养的;事实上,一些公司会比其他公司更努力地实现这一点。诚然,给予和接受反馈的成功很大程度上取决于员工的个性。在招聘过程中,也可以对此进行筛选。 + +在你期望员工随时向同事提供反馈并主动寻求反馈之前,你应该以身作则。高管应该以身作则,公开要求公司成员对其战略决策提出探究性问题,并提供相应的反馈。 + +![DevOps is the intersection of development, quality assurance, and operations][6] + +### 不断改进 + +在同事之间增加智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 + +这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索,企业还有哪些领域会受到积极的影响。 + +留意培训和提高技能的机会。即使一个培训课程没有广告上说的那么突出,但有机会与行业专家建立联系,并与未来建立联系,这可以提高你的组织内的思想多样性。 + +### 为以后的开发保存当前的想法 + +频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 "版本控制" 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 + +你的目标是有能力保留好的想法供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 + +由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此保存开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 + +一个简单的方法是要求开发者在开发者合同和最终项目报告中包含对未来工作的想法。确保技术服务经理知道他们应该要求提供在建设过程中出现的旁门左道的想法的例子。意识到这些小创新的人越多,在需要的时候就越有可能有人记住一个。 + +### 坐在一起(物理上或逻辑上) + +目标是对彼此的工作角色以及它们之间的相互关系有一个共同的理解。你可以通过几个简单的方法实现这一目标,用一句话概括:坐在一起。邀请其他团队参加你们的会议,完整地分享用户反馈报告。一起吃午饭,一起计划虚拟的快乐时光,一般来说,要确保你的同事都在一起。大约 90% 的拥有成熟的 DevOps 协议的团队报告说,他们清楚地了解自己对其他团队的责任,而在不成熟的 DevOps 团队中,只有大约 46% 的工作者清楚地了解自己的责任。 + +虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工一起玩耍是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 + +密切协作的想法是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 + +### 致力于自动化 + +你应该以提高效率和加速流程的方式,将单调的和重复的任务变为自动化。每个行业都有无聊的--说得直白一点,愚蠢的--每天或每周都要进行的工作。 + +无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C”代表“文化”)。 + +你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后--这里是关键的部分--支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案或开发人员的两天时间来建立一个新的工具在内部使用。 + + +无论哪种方式,你都应该评估自动化的好处,考虑你可以为每个人节省多少时间。DevOps 的统计数据不断表明,现代公司通过整合这些有益的原则,年复一年地得到了很大的改善。 + +### 探索成功的新工作方式 + +文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化是对以前的真正改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/tips-effective-devops-culture + +作者:[Yauhen Zaremba][a] +选题:[lkxed][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/yauhen-zaremba +[b]: https://github.com/lkxed +[1]: https://opensource.com/resources/devops +[2]: https://opensource.com/article/22/2/devops-documentation-maturity +[3]: https://opensource.com/sites/default/files/2022-12/devop.png +[4]: https://enterprisersproject.com/user/gene-kim +[5]: https://opensource.com/article/22/7/awesome-ux-cli-application +[6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png +[7]: https://opensource.com/article/22/11/git-concepts +[8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks diff --git a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md new file mode 100644 index 0000000000..830e1e4b65 --- /dev/null +++ b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -0,0 +1,69 @@ +[#]: subject: "Wordbook: Offline English Dictionary App for GNOME" +[#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordbook:适用于 GNOME 的离线英语词典应用 +====== + +**遇见 Wordbook – 一个 GNOME 桌面的离线词典应用。** + +我们大多在谷歌、DDG 或其他搜索引擎上搜索单词信息,如含义、同义词、反义词等。 + +由于今天几乎每个人都有一个连接互联网的手机,在谷歌上搜索可能更容易。 + +但对于离线使用,在没有互联网连接的情况下,你可以尝试 [Wordbook][1]。 + +### Wordbook:离线词典应用 + +这个应用在本质上是非常基本的。但以它的能力完成了它的工作。Wordbook 目前支持一个英译英字典。在其核心部分,它使用 [Open English WordNet 数据库][2]进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源分叉。 + +Wordbook 应用还可以使用 [eSpeak][4] – 一个免费和开源的语音合成器来发音。 + +![Wordbook - 英译英词典应用][5] + +然而,在第一次运行时,它需要一次性上网,以下载离线数据。就这些了。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 + +Wordbook是一个 [GNOME 应用][6],使用现代 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 + +### 安装 + +你可以很容易地从 Flathub 将其作为 Flatpak 应用安装。为 Flatpak 和 Flathub 设置你的系统,然后从终端使用以下命令安装它: + +``` +flatpak install com.github.fushinari.Wordbook +``` + +安装后,你可以在应用菜单中找到它。 + +### 结束语 + +我希望你在学校或商业工作中使用这个小小的应用。如果你在写论文和较长的段落,离线特性是很方便的。 + +你知道其他Linux的离线字典吗?请在评论栏里告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wordbook-offline-dictionary/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://github.com/fushinari/Wordbook +[2]: https://github.com/globalwordnet/english-wordnet +[3]: https://wordnet.princeton.edu/ +[4]: https://espeak.sourceforge.net/ +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Wordbook-English-to-English-Dictionary-App.jpg +[6]: https://www.debugpoint.com/tag/gnome-app +[7]: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ +[8]: https://floss.social/@debugpoint \ No newline at end of file From 1514ee66123c56dfcc40dbef60bab884ea5a3903 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 00:58:02 +0800 Subject: [PATCH 2595/3123] file add --- ...alks about Vanilla OS and Other Future Projects.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md new file mode 100644 index 0000000000..4d6b8b8243 --- /dev/null +++ b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md @@ -0,0 +1,156 @@ +[#]: subject: "'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects" +[#]: via: "https://news.itsfoss.com/interview-mirko-brombin/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects +====== + +A conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator. + +!['Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects][1] + +There are many interesting personalities in the Linux and open-source world. + +We aim to interact with them and share their stories/thoughts with you. While we did a few interviews in 2021, we are resuming the mission to share insightful conversations with amazing folks in our open-source and Linux universe. + +[Mirko Brombin][2] is one such cool guy 😎 He works as a UX designer full-time, and despite doing all that, he is involved with open-source projects that we admire! + +If you did not know, he is the creator of **[Bottles][3]** (an app to run Windows apps/games on Linux) and **[Vanilla OS][4]**'s founder. + +So, I asked a couple of questions to provide details about his **projects**, his **work/life**, and some **valuable tips** for our readers who want to join the open-source community. + +**Q.** _**Many people think that we have more than enough distros. Why Vanilla OS?**_ + +![vanilla os][5] + +**A:** It is because this one is 10x faster and safer than all the others! Just kidding. **Vanilla OS was born mainly out of a need of mine and a desire to experiment**. I have been a Linux user for many years and have tried many distributions. They always suffered from the lack of certain features and concepts that led me to compulsively distro-hop. In recent years I have been a happy user of Silverblue, a distribution that made me explore the benefits of immutable systems. + +Silverblue is a fantastic project. It's one of the most solid distributions I have tried. However, it does not fully meet my needs. Maintaining Bottles often requires me to play games for testing purposes, and having an NVIDIA GPU, I have had quite a few problems with Silverblue, from driver installation to constant driver breakage and a distinctly noticeable drop in performance. Let's be clear, **NVIDIA is a problem in every distribution** but there is much that can be done to improve the quality of life for users using these GPUs, such as guiding driver installation, pre-configuring the setup for Optimus (Integrated+Dedicated) laptops, and allowing PRIME profile switching in an easy way. To date, only Ubuntu and derivatives have been pre-configured for this workflow. + +![nvidia illustration][6] + +My problem with Ubuntu-based distributions is that they do not offer an experience compatible with my needs either. **I am a devoted GNOME user**, I fully endorse the user experience envisioned by GNOME, and I am completely addicted to it. + +I understand the need for **Ubuntu, Pop!_OS,** and others to provide their own vision and branding, but these modifications are deal breakers for me and probably for many users. GNOME designers and developers are professionals that have been working in this industry for countless years, perfecting their vision, but many distributions change the workflow in ways that I cannot use my systems effectively. + +**Another problem with Ubuntu is that it does not offer immutability and atomicity of transactions**, two mechanisms that make the system solid and safe from easy breakage, for example, when an update goes wrong. + +![solving ubuntu problems][7] + +Adding up all those shortcomings and my passion for throwing myself into increasingly complex projects, I decided to create **Vanilla OS, an Ubuntu-based distribution, with a stock GNOME desktop** and all the merits of immutability and atomicity. + +**Q.****_Some of your projects, like Bottles and the upcoming Vanilla OS, are immensely popular. Do you have other project ideas for the future?_****A:** I have a long list of projects that I would like to accomplish in the future, but my next goal is to develop and contribute to a project idealized by @[TheEvilSkeleton][8]: a **utility to configure MangoHud, an overlay that displays useful information about game FPS, temperatures, CPU/GPU load and more**. + +With this new project, we plan to integrate it in Bottles and provide a graphical interface to customize MangoHud parameters. Similarly, we did the same thing for vkBasalt with vkbasalt-cli. + +**_Q. There will always be a new distro, even if some of us would rather not see more. When I tried out Vanilla OS, it did not feel like “just another distro” but with a unique angle to it._****_So, what’s your near future plan with Vanilla OS?_****A:** My future plan for Vanilla OS is **to make the project sustainable so that I can work on it full-time**. This is more of a dream in my drawer but, who knows. + +I have many ideas that I'll share on social media eventually. Something I can tell you now is that one of my dreams is to see Vanilla OS on multiple platforms like desktops, mobile, and tablets. I want to create an environment with an Apple-like continuity, without the scamming, as the **user experience is always the main focus for me.** + +Q. _**Bottles is a fantastic tool to help users run Windows software on Linux in a few clicks. Various other tools like Heroic Games Launcher have been trying to make things easy for Windows users to play their favorite games on Linux easily.**__**How do you think that’s going? Do you have any stats to share about that through Bottles?**_**A:** Heroic is a project that I admire and follow closely. I am friends with [Flavio][9] (the founder) and [Linguin][10] (one of the developers), and I know how hard the whole team is working to make the gaming experience on Linux more and more fulfilling, so **a Hooray! for Heroic**. + +![Heroic Games launcher][11] + +**Bottles** is like a son to me, I have raised him at my best, and he is giving me a lot of satisfaction. Recently I had to decrease my presence in the project to focus on others and my daily job. This has been possible thanks to a team of contributors who have joined over time, people who share the same vision of the project as I do and cherish its ideals. + +![bottles screenshot][12] + +The structure of the project is changing radically. Initially, I was the one making every decision, whereas now everything is discussed and put to a vote, trying to get a shared verdict. In this, it is like watching a son grow up and make his own decisions, aware of what I have taught him over time. + +**Release 2022.11.14**, is the first release entirely developed by the Bottles team. One of the best releases ever in my opinion. For this, I have to give special thanks to @**TheEvilSkeleton,** who led the release, and [noëlle][13], who made the graphics part. + +A small milestone I would like to share with you is the **achievement of 400,000+ downloads from Flathub.** 🎉 + +![Bottle download stats][14] + +_**Q. If someone gets interested in contributing to any one of your projects. What advice would you give them? What programming language should they focus on if they want to collaborate with you?**_**A:** My advice is not to be afraid to contribute and ask questions, even if it's a "bad" question. Even if you are afraid. There is no such thing as a bad contribution. A well-written ticket is already a great way to do your part. Personally, I don't give weight to contributions, I give credit to those who have spent much more time certainly, but for me, every single contribution is a small brick that helps the project grow. + +**I mostly use Python and Go** for my projects but I would not make it a requirement. If a user wants to help with Vanilla OS, for example by making an application we need, well, they can use whatever language they like. + +![python programming][15] + +The only thing I would ask is to carefully consider the language and choose the one best suited for the type of project you need to create, as the choice will affect who can contribute (or not), for example, I would never choose Rust for a small tool, as Rust is not an easy language for newcomers and new contributors typically contribute to smaller projects that are written in user-friendly languages. + +_**Q. Other than your creations, what other project or distro would you mention as one of your favorites?**_**A:** I have many projects that I would like to mention here, but it would become a season of Vikings. Among all of them, the one that, in my opinion, deserves mention is **Distrobox, a project made by** [Luca di Maio][16]**, a friend of mine as well as an active member in the making of the Vanilla OS project.** + +Distrobox is a tool that installs Linux distributions inside managed containers integrated with the system, allowing, for example, to install and run software in a Fedora container while running Ubuntu, integrating it seamlessly with the host system. + +Distrobox is also employed by Apx, the Vanilla OS package manager. Every package installed through Apx resides in the Distrobox container, keeping the system safe from any discrepancies or breaks from a possible update gone wrong. + +_**Q. How do you keep up with all the projects you’re working on? What’s your mantra on productivity or time management?**_**A:** Contrary to what you may think, I don't work much on my projects, my daily job takes a lot of my time, and I have many other passions to cultivate. + +![productivity][17] + +I don't have any particular time management or organization; normally I try to stay focused on my projects by reasoning about them in my spare time and taking notes, so as soon as I get back to work on a project, I already have a clear idea of what I need to do. + +_**Q. You are also a GNOME Foundation member. What’s it like being a GNOME foundation member? Can anyone apply to be a part of it?**_**A:** I am still a very recent member and I don't have much to say, except that it is wonderful to be inside the project that I absolutely love and respect the most, as it has changed the way I use my PC, with a workflow designed to be free of distractions and where everything is intuitive and immediate; in short, where the user experience is always first. + +Anyone can apply, as long as they are an active person with demonstrable contributions. + +**_Q. As a GNOME foundation member, what do you think GNOME should improve compared to the KDE Plasma side?_****A:** I don't want to sound brash but I think **GNOME is currently complete as it is**. I've seen it grow since the beginning and I know how many steps have been taken since GNOME 2 and 3, I'm sure many more are to come but **right now I can't find a lack in comparison to KDE**. + +![gnome user][18] + +I know at this point someone is saying "_Eh but KDE has themes and a setting for this and that._" and I agree, it is a fact that KDE is the most customizable desktop environment of all, but you have to understand that GNOME doesn't implement all these settings because the whole thing is designed to provide a single, but efficient, user experience. Providing a setting to change every single aspect of it is more of an invitation for the user to do so, feeding bug reports for a different experience than designed. + +It is important to understand that more customization inevitably leads to more discrepancies and bugs, as all components of the system are meant to work in a certain way, and altering them takes you out of the testing environment that is used in GNOME. + +**_Q. What do you like to do in your spare time?_** + +![world history and podcast][19] + +**A:** In my free time, I love to **write recipes** or listen to the **world's history podcasts**. + +10-yo Mirko would find me boring, haha 😁 + +_**Q. A message to our readers (to inspire them/add a tip that you always wanted to share, etc)**_ + +![dialogue is good][20] + +**A:** Don't be afraid to contribute or speak. I often find that someone has a great idea to solve a problem and has never told anyone because of the fear that it was wrong. Let's be clear that a contribution is something to improve and is therefore always welcome. + +Certainly, not all ideas are feasible or correct but dialogue is a great way to find out. + +Don't be shy; come on! + +> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/interview-mirko-brombin/ + +作者:[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/content/images/size/w2000/2022/12/interview-with-mirko-brombin.png +[2]: https://mirko.pm +[3]: https://usebottles.com +[4]: https://vanillaos.org +[5]: https://news.itsfoss.com/content/images/2022/12/vanillaos.jpg +[6]: https://news.itsfoss.com/content/images/2022/12/nvidia.png +[7]: https://news.itsfoss.com/content/images/2022/12/ubuntu.png +[8]: https://github.com/TheEvilSkeleton +[9]: https://github.com/flavioislima +[10]: https://github.com/imLinguin +[11]: https://news.itsfoss.com/content/images/2022/12/Heroic_2.jpg +[12]: https://news.itsfoss.com/content/images/2022/12/bottle-creation-dark.png +[13]: https://github.com/jannuary +[14]: https://news.itsfoss.com/content/images/2022/12/download-milestone.png +[15]: https://news.itsfoss.com/content/images/2022/12/python.png +[16]: https://github.com/89luca89 +[17]: https://news.itsfoss.com/content/images/2022/12/productivity.png +[18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png +[19]: https://news.itsfoss.com/content/images/2022/12/history-1.png +[20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png + From 732ba00ca3defac0e1eaf44b0e2e16588350d935 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 19 Jan 2023 08:40:34 +0800 Subject: [PATCH 2596/3123] translated --- ...t and Host in virt-manager (KVMQemulibvirt).md | 110 ------------------ ...t and Host in virt-manager (KVMQemulibvirt).md | 109 +++++++++++++++++ 2 files changed, 109 insertions(+), 110 deletions(-) delete mode 100644 sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md create mode 100644 translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md diff --git a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md deleted file mode 100644 index 40e7c4380a..0000000000 --- a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: subject: "Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)" -[#]: via: "https://www.debugpoint.com/share-folder-virt-manager/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt) -====== - -**In this guide, you will learn how to share a folder between host and guest in virt-manager using KVM, QEMU and libvirt.** - -The [virt-manager][1] application or package uses the [libvirt][2] library to provide virtual machine management services. It has a desktop interface that helps to create, delete, and manage multiple virtual machines. - -The virt-manager desktop interface and its components provide flexible virtual machine management services for various personal and business use cases. it is a free and open-source application primarily used for KVM virtual machines. However, it can also support other hypervisors such as Xen and LXC. - -In the earlier article, I explained [how to create a virtual machine using virt-manager][3]. This article covers how you can seamlessly access files and folders between guest and host virtual machines. - -### A note about virtiofs - -The sharing files and folders are powered by the libvirt shared file system called virtiofs. It provides all the features and parameters to access the directory tree on the host machine. Since most of the virt-manager virtual machine configurations are translated to XML, the share files/folders can also be specified by the XML file. - -### Share folder in virt-manager - -- First, make sure your guest virtual machine is powered off. From the virt-manager GUI, select the virtual machine and click on Open to pull up the console settings. - -![Open the settings][4] - -- Click on the icon which says show virtual hardware details in the toolbar. And then click on **Memory** on the left panel. -- Select the option “**Enable shared memory**“. Click Apply. - -![Enable the shared memory option][5] - -- And then click “Add hardware” at the bottom. - -![Click on add hardware][6] - -- Select **File system** from the left panel in the add new hardware window. -- Then select **Driver=virtiofs** in the details tab. Click on `browse > browse local` and **select the host path** you want to access inside the guest VM. -- In the target path, mention any name you want. It’s just a file tag which will be used during mount. -- So, if I want to access the Pictures/Screenshots folder (`/home/debugpoint/Pictures/Screenshots`), sample settings could be the following: - -![Add a new file system hardware][7] - -The XML settings are below for the above configuration. You can find it in the XML tab. - -``` - - - - - - -
              - -``` - -Click on Finish. In the main virt-manager window, right-click on the VM and click Run to start the virtual machine. Make sure to click on the “show the graphical console” (monitor icon in the toolbar – if the VM is not showing. - -In the guest machine, create a folder where you want to mount the host folder. For this example, I have used /mnt/pictures. - -``` -sudo mkdir /mnt/pictures -``` - -And finally, mount the host folder using the tag you created in the above step to this new folder. Use the following command to do that from the terminal. Ensure to change the tag and folder name in the below command as your system. - -``` -sudo mount -t virtiofs mount_tag_pictures /mnt/pictures -``` - -Now you can browse the folders and add/delete items seamlessly in virt-manager between host and guest. - -![Access host files from virt-manager guest][8] - -### Wrapping Up - -I hope this solution helps you to access host files and folders from the guest machine. Remember, your user Id, which is used to launch the virt-manager app, should have the same access to the host folder. - -If you run into any errors, the above guide helped you drop a note below. - -_[Reference][9]_ - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][10] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/share-folder-virt-manager/ - -作者:[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://virt-manager.org/ -[2]: https://libvirt.org/manpages/libvirtd.html -[3]: https://www.debugpoint.com/virt-manager/ -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-settings.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-the-shared-memory-option.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-add-hardware.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-new-file-system-hardware.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Access-host-files-from-virt-manager-guest.jpg -[9]: https://libvirt.org/kbase/virtiofs.html -[10]: https://floss.social/@debugpoint diff --git a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md new file mode 100644 index 0000000000..91234d436a --- /dev/null +++ b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -0,0 +1,109 @@ +[#]: subject: "Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)" +[#]: via: "https://www.debugpoint.com/share-folder-virt-manager/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 virt-manager 中,在客户机和主机之间共享文件夹(KVM/Qemu/libvirt) +====== + +**在本指南中,你将学习如何使用 KVM、QEMU 和 libvirt 在 virt-manager 中的主机和客户机之间共享文件夹。** + + +[virt-manager][1] 应用或软件包使用 [libvirt][2] 库来提供虚拟机管理服务。它有一个桌面界面,有助于创建、删除和管理多个虚拟机。 + +virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个免费和开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。 + +在之前的文章中,我解释了[如何使用 virt-manager 创建虚拟机][3]。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。 + +### 关于 virtiofs 的说明 + +共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了所有的功能和参数来访问主机上的目录树。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。 + +### 在 virt-manager中共享文件夹 + +- 首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击打开,弹出控制台设置。 + +![打开设置][4] + +- 点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的**内存**。 +- 选择选项“**启用共享内存**”。点击应用。 + +![启用共享内存选项][5] + +- 然后点击底部的“添加硬件”。 + +![点击添加硬件][6] + +- 在添加新硬件的窗口中,从左边的面板上选择**文件系统**。 +- 然后在细节标签中选择 **Driver=virtiofs**。点击“浏览>浏览本地”,**选择你想在客户机内访问的主机路径**。 +- 在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。 +- 所以,如果我想访问 Pictures/Screenshots 文件夹(`/home/debugpoint/Pictures/Screenshots`),示例设置可以是这样: + +![添加一个新的文件系统硬件][7] + +下面是上述配置的 XML 设置。你可以在 XML 标签中找到它。 + +``` + + + + + + +
              + +``` + +点击“完成”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台”(如果虚拟机没有显示,点击工具条上的监视器图标)。 + +在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 /mnt/pictures。 + +``` +sudo mkdir /mnt/pictures +``` + +最后,使用你在上述步骤中创建的标签将主机文件夹挂载到这个新文件夹。使用下面的命令在终端做这件事。确保根据你的系统改变下面命令中的标签和文件夹名称。 + +``` +sudo mount -t virtiofs mount_tag_pictures /mnt/pictures +``` + +现在你可以在主机和客户机之间的 virt-manager 中无缝地浏览文件夹和添加/删除项目。 + +![从 virt-manager 客户机访问主机文件][8] + +### 总结 + +我希望这个方案能帮助你从客户机上访问主机文件和文件夹。记住,你的用户 ID,也就是用来启动 virt-manager 应用的用户,应该有同样的权限来访问主机文件夹。 + +如果你遇到任何错误,上述指南帮助了你,请在下面留言。 + +_[参考][9]_ + + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-virt-manager/ + +作者:[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://virt-manager.org/ +[2]: https://libvirt.org/manpages/libvirtd.html +[3]: https://www.debugpoint.com/virt-manager/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-settings.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-the-shared-memory-option.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-add-hardware.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-new-file-system-hardware.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Access-host-files-from-virt-manager-guest.jpg +[9]: https://libvirt.org/kbase/virtiofs.html From 2219f58926488dd45edcacc86c7423b41db19576 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 19 Jan 2023 08:43:27 +0800 Subject: [PATCH 2597/3123] translating --- sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md | 2 +- ...older Between Guest and Host in virt-manager (KVMQemulibvirt).md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md index 7bed4b5c37..bf5af72851 100644 --- a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md +++ b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/java-loops" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md index 91234d436a..cca25c3286 100644 --- a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -91,7 +91,7 @@ via: https://www.debugpoint.com/share-folder-virt-manager/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e5386010186f4f0362d975a641df5f693db70e90 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 11:05:00 +0800 Subject: [PATCH 2598/3123] Eighth translations request (#28455) * Update 20190331 Codecademy vs. The BBC Micro.md * first commit * h * b * b2 * h2 * translation request * merge * file add * file add --- ... meets academic publishing- Platinum open access journals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 91c7df4d12..6ccfafb514 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/platinum-open-access-academic-journals" [#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 563684cfd43260ae6023272426e629b5b98a16af Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 19 Jan 2023 11:39:26 +0800 Subject: [PATCH 2599/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Tingze-G 感谢您,完成了第一篇翻译贡献! --- ... apt remove vs apt purge What’s the Difference.md | 91 ++++++++++--------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md index 3fa294485a..fc072680f5 100644 --- a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -2,103 +2,103 @@ [#]: via: "https://itsfoss.com/apt-remove/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: "Tngze-G" -[#]: reviewer: " " +[#]: translator: "Tingze-G" +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " apt remove 和 apt purge: 有什么区别? ====== -如果你想在Ubuntu服务器上卸载软件,可以使用 +![][0] + +如果你想 [在 Ubuntu 上使用终端卸载软件][1],可以使用: ``` sudo apt remove package_name ``` -但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用the apt purge。 +但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用 `apt purge`。 -你可能会觉得很困惑,因为apt purge 和apt remove 看起来是一样的。 +你可能会觉得很困惑,因为 `apt purge` 和 `apt remove` 看起来是一样的。 ``` sudo apt purge package_name ``` -为什么会有两个如此像的命令删除安装包呢?两者之间有什么不同呢?下面将为您揭晓 +为什么会有两个如此像的命令来删除软件包呢?两者之间有什么不同呢?下面将为你揭晓。 -### apt-remove和 apt-purge有什么不同? +### apt-remove 和 apt-purge 有什么不同? -apt-remove 和 apt-purge相同之处就是都可以卸载安装包, 但是运行apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户家目录中相关的应用程序文件。 - -你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。 -这是因为用 apt remove 不能删除该软件的相关配置文件。 +`apt-remove` 和 `apt-purge` 的相同之处就是都可以卸载软件包,但是运行 `apt-purge` 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户主目录中相关的应用程序文件。 +你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。这是因为用 `apt remove` 不能删除该软件的相关配置文件。 #### 哪些东西被删除了?哪些还在? -我用这两个命令分别卸载一下mplayer这个软件,看看卸载之后残留什么文件。 -我分享一个使用apt remove和apt purge两个命令分别卸载mplayer这个软件的实际例子。重点是看每次操作后还残余哪些文件。 +我分享一个使用 `apt remove` 和 `apt purge` 两个命令分别卸载 mplayer 这个软件的实际例子。重点是看每次操作后还残余哪些文件。 -这是删除前的文件 +这是删除前的文件: ![mplayer before removal][2] -现在运行 apt remove 这个命令 +现在运行 `apt remove` 这个命令: ![apt uninstall package ubuntu][3] -下面的是还残留在系统中的文件 +下面的是还残留在系统中的文件: ![files after mplayer removal][4] -我们可以看到,有两个地方残留着mplayer的文件: /etc 和 /home/abhishek. +我们可以看到,有两个地方残留着 mplayer 的文件: `/etc` 和 `/home/abhishek`。 -这次我们重新安装mplayer,然后用apt purge 来卸载软件。 +这次我们重新安装 mplayer,然后用 `apt purge` 来卸载软件。 ![apt purge command][5] -现在让我们看看与mplayer相关的文件 +现在让我们看看与 mplayer 相关的文件: ![files after mplayer removal][6] -我们可以看到/etc目录下的文件已经没有了。 +我们可以看到 `/etc` 目录下的文件已经没有了。 -但是在家目录中的文件呢?apt purge会删除它们吗? +但是在主目录中的文件呢?`apt purge` 会删除它们吗? -答案是否定的。apt命令不会删除家目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。 +答案是否定的。`apt` 命令不会删除主目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。 -值得注意的是,不是所有的软件在家目录或者 /etc目录下都有配置文件。 +值得注意的是,不是所有的软件在主目录或者 `/etc` 目录下都有配置文件。 -#### 使用 apt remove 或者 apt purge的效果 +#### 使用 apt remove 或者 apt purge 的效果 -我能想到的一个实际例子就是discord, 你用deb文件 [在Ubuntu上安装了Discord][7]. 然后登录自己的账号,之后又卸载并重新用deb文件安装。 +我能想到的一个实际例子就是 Discord,你用 deb 文件 [在 Ubuntu 上安装了 Discord][7]。然后登录自己的账号,之后又卸载并重新用 deb 文件安装。 -现在如果你打开Discord,你会发现你的账号自动登录了。是不是觉得很奇怪? +现在如果你打开 Discord,你会发现你的账号自动登录了。是不是觉得很奇怪? +这是个功能,像一些软件,比如 Discord、VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。 -这个现象,就像是一些软件,比如Discord,VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。 +当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用 `apt remove`。 -当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用apt remove。 -但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用apt purge就比较合适。 +但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用 `apt purge` 就比较合适。 -#### 运行apt purge 是否可以删除通配符? +#### 运行 apt purge 是否可以用通配符删除? -当你删除一个包的时候,它会提示removing package-name*. 这意味着它会删除以这个包名开头的所有文件 +当你删除一个包的时候,它会提示 `removing package-name*`。这意味着它会删除以这个包名开头的所有文件。 ![apt purge wild card][8] -我在文档中没有找到关于这个问题的答案 (i.e. man page)。 所以我自己做了一个小测试,我安装了espeak和espeak-ng这两个软件, espeak这个包按理说是可以扩展到espeak-ng。 +我在手册页之类的文档中没有找到关于这个问题的答案。所以我自己做了一个小测试,我安装了 espeak 和 espeak-ng 这两个软件,espeak* 应该可以通配扩展到 espeak-ng。 -但是当我用apt purge 删除espeak包时,espeak-ng包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。 +但是当我用 `apt purge` 删除 espeak 包时,espeak-ng 包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。 -### 那么,你应该使用apt remove还是apt purge呢? +### 那么,你应该使用 apt remove 还是 apt purge 呢? -大部分人很常使用apt purge。 +很少有人会一直使用 `apt purge`。 -在我看来,一般清况下,用apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用apt purge。 -不管是用apt remove 还是 apt purge, 你都需要从用户的家目录中删除残余的配置文件,并运行apt autoremove 来清除任何依赖的包。 +在我看来,一般清况下,用 `apt remove` 就可以了,但是当你想删除那些自定义配置文件时,你就得用 `apt purge`。 -现在到你啦。你现在对apt remove和apt purge的区别有更了解吗?你更喜欢使用哪一个呢? +不管是用 `apt remove` 还是 `apt purge`,你都需要从用户的主目录中删除残余的配置文件,并运行 `apt autoremove` 来清除任何依赖的包。 + +现在到你啦。你现在对 `apt remove` 和 `apt purge` 的区别更加了解吗?你更喜欢使用哪一个呢? -------------------------------------------------------------------------------- @@ -107,17 +107,18 @@ via: https://itsfoss.com/apt-remove/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[Tingze-G](https://github.com/Tingze-G) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://itsfoss.com/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/apt-remove/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png -[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png -[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png +[2]: https://itsfoss.com/content/images/wordpress/2022/11/mplayer-before-removal.png +[3]: https://itsfoss.com/content/images/wordpress/2022/11/apt-uninstall-package-ubuntu.png +[4]: https://itsfoss.com/content/images/wordpress/2022/11/files-after-mplayer-removal.png +[5]: https://itsfoss.com/content/images/wordpress/2022/11/apt-purge-command.png +[6]: https://itsfoss.com/content/images/wordpress/2022/11/files-after-apt-purge.png [7]: https://itsfoss.com/install-discord-linux/ -[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png +[8]: https://itsfoss.com/content/images/wordpress/2022/11/apt-purge-wild-card.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/19/113744ucqk6f69t4hbi8h8.jpg \ No newline at end of file From 913d0e6c50c478051fd2457fd0122f623c975d92 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 19 Jan 2023 11:41:39 +0800 Subject: [PATCH 2600/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Tingze-G 本文首发地址:https://linux.cn/article-15458-1.html 您的 LCTT 专页:https://linux.cn/lctt/Tingze-G 请注意一下排版,也不能丢失文内链接,可以参照我的校对。 --- ...23.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md (98%) diff --git a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md similarity index 98% rename from translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md rename to published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md index fc072680f5..9280c9f794 100644 --- a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ b/published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Tingze-G" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15458-1.html" apt remove 和 apt purge: 有什么区别? ====== From 211f1dff8279e21aecc24fa7a274b020ece88470 Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Thu, 19 Jan 2023 11:53:20 +0800 Subject: [PATCH 2601/3123] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除了source/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md; 添加了translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md. --- ...tu on Windows Using VirtualBox [Complete Guide].md | 241 ------------------ ...tu on Windows Using VirtualBox [Complete Guide].md | 241 ++++++++++++++++++ 2 files changed, 241 insertions(+), 241 deletions(-) delete mode 100644 sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md create mode 100644 translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md diff --git a/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md deleted file mode 100644 index abe5942ad6..0000000000 --- a/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md +++ /dev/null @@ -1,241 +0,0 @@ -[#]: subject: "Install Ubuntu on Windows Using VirtualBox [Complete Guide]" -[#]: via: "https://www.debugpoint.com/install-ubuntu-windows-virtualbox/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Install Ubuntu on Windows Using VirtualBox [Complete Guide] -====== - -**This tutorial will guide you through the easiest steps to install an Ubuntu desktop on Windows using Oracle VirtualBox.** - -[VirtualBox][1] is a popular virtualization software by Oracle which is available for Linux, mac and Windows systems. It is flexible and brings many features to take advantage of your virtualization. It’s the best and easy way to experience Ubuntu in Windows without installing it. However, I strongly recommend installing Ubuntu physically as a dual-boot to enjoy its advantage. - -The steps outlined below assume that you are installing Ubuntu for the first time in Windows. Hence the steps are a little descriptive and a bit lengthy. Furthermore, the following steps should work for Windows 10 and Windows 11 as host machines. - -### Contents - -- [Pre-requisite][2] -- [Download Ubuntu ISO and VirtualBox set-up files][3] -- [Install VirtualBox on Windows (Host)][4] -- [Install Ubuntu (Guest) on VirtualBox][5] -- [Guest addition installation and tips][6] - -### What you’ll need - -- A PC with internet access -- Ubuntu Linux ISO image file for installation -- Windows system with VirtualBox installed - -### Install Ubuntu on Windows Using VirtualBox - -#### Download and install the necessary items - -- Download the Ubuntu Linux desktop ISO image file from the following link. - -[Download Ubuntu Desktop][7] - -- Also, download the Oracle VirtualBox installer from the official website below. - -[Download VirtualBox][8] - -![Download location for VirtualBox for Windows][9] - -#### How to install and configure VirtualBox - -VirtualBox in Windows requires Microsoft Visual C++ 2019 Redistributable package. And you have to install it first. Download the package (under X64 architecture) from the below link: - -[Download][10] - -![Download the dependency for VirtualBox][11] - -![Install the dependency for VirtualBox][12] - -- After the above installation is complete, download the latest Python package from the below link. Python bindings are also a dependency for VirtualBox installation on Windows. - -[Download Python for Windows][13] - -- Then, launch the VirtualBox installation and follow the onscreen instructions to install it. -- After installation, restart your Windows system again. - -#### Set up a virtual machine for Ubuntu - -- Launch VirtualBox from the start menu. - -![Select VirtualBox from start menu][14] - -- On the VirtualBox window toolbar, click **New**. -- On the **Create VirtualBox** window, give the name of your virtual machine. It can be any name which identifies this version of Ubuntu. -- Keep the **Folder Name** unchanged. This is the path where the virtual machine file will be created. -- In the ISO Image field, browse the Ubuntu ISO file you downloaded. -- And select the Unattended installation. If you un-select this, a [default user id (vboxuser) and password][15] will be created in your virtual machine. Let’s not follow it for now. - -![Click on New][16] - -![Select the ISO file][17] - -- Click on Hardware and select the RAM you want for your virtual box. A thumb rule is that your VM’s RAM size should be less than your physical RAM in the host system. I would recommend using 2 GB to 4 GB for a virtual machine for an 8 GB RAM system. For 4 GB RAM, use the slider (or type in) to make it 4096 MB (i.e. 4*1024). -- Choose processor as 2 or 4. -- Click on the Hard Disk section, and keep the file location unchanged. -- Give a minimum of 20GB to 25GB for Ubuntu installation. -- The hard disk file type value keeps as VDI (VirtualBox Disk Image) -- Do not select the pre-allocate full size. -- And finally, click on Finish. - -![Select Hardware][18] - -![Select Hard Disk][19] - -- You should see a new entry at the left panel of VirtualBox with an Ubuntu 22.04 entry (the name which you gave above). -- Select the entry and click on Start to boot into the virtual machine - -![Boot Ubuntu in VirtualBox][20] - -#### Install Ubuntu using VirtualBox - -- After a successful boot, you should see the following screen, which shows various options for installing Ubuntu. Select **Try or install Ubuntu**. -- In the Welcome screen, click on **Try Ubuntu**. And after a few moments, you should see the following Ubuntu LIVE desktop. If you want to change the resolution, right-click on the desktop and select Display settings. And change the resolution to 1400×900. -- On the desktop, double-click on “**Install Ubuntu**…”. - -![Select Try Ubuntu][21] - -![Ubuntu LIVE desktop][22] - -- In the next set of screens, select Language and Keyboard Layout as your needs. -- The Install screen provides you with the type of installation you need. Select Normal Installation, and select both options under Other options. -- Since you are installing in the virtual disk space, i.e. which is just a file, you can safely choose the “Erase disk and install Ubuntu” option. -- Hit Install Now and Continue. - -![Select Language][23] - -![Select Keybaord Layout][24] - -![Select install options][25] - -![Installation Type][26] - -![Write changes to disk][27] - -- Then select region, add name, user and password. This will be your user id and password to log on to Ubuntu after installation. -- Hit continue to start the installation. Wait until it finishes. - -![User account creation][28] - -![Ubuntu Installation is complete][29] - -Click on Restart Now after the installation is complete. Wait for a few seconds and you should see a login screen. Use the user id and password to log in. And you should see Ubuntu desktop is running inside VirtualBox as VM in Windows. - -![Log on to Ubuntu][30] - -![Ubuntu running in Windows using Virtualbox][31] - -### Post-install configuration and tips (optional) - -#### Install Guest Additions - -After the successful installation, you should install the **VirtualBox guest additions** for Windows Host and Ubuntu Guest. The guest addition is a set of packages you need to install inside the guest VM (i.e. Ubuntu) to enable **shared folders, bi-directional copy/paste, automatic resolution change,** and many such features. - -To install it, boot into Ubuntu. From the VirtualBox menu, select `Devices > Insert Guest Additions CD Image`. The necessary packages will be mounted inside Ubuntu. - -![Select Guest addition from the menu][32] - -Open the file manager and open the mounted folder as shown below. And then right-click > select `open in terminal`. - -Then run the following command: - -``` -sudo ./VBoxLinuxAdditions.run -``` - -![Open the mounted disc and select option with terminal][33] - -![VirtualBox guest addition install for Windows host][34] - -After the above command is complete, restart Ubuntu VM. - -#### Enable Copy and paste between Windows and Ubuntu - -- To enable the copy and paste between Windows and Ubuntu systems, select `Devices > Shared Clipboard > Bi-directional` from the menu. - -![Enable clipboard sharing][35] - -#### Shutting down Ubuntu VM - -- Ideally, you should shut down a VM from its own power off menu. However, you can also shut down from the main VirtualBox window. Right-click on the VM name and select `Close > Poweroff`. - -![Poweroff Virtual machine][36] - -#### How to delete Ubuntu and remove all data - -- If you want to delete the Virtual machine entirely (.e.g. Ubuntu) and its data, select `Remove` and `delete all files`. - -![Select remove to delete a VM][37] - -![Select the delete options][38] - -### Close notes - -In this tutorial, you learned the easiest way to install Ubuntu on Windows (10 or 11) using VirtualBox. Also, you learned several post-install basic steps to configure the Ubuntu VM. You can use the above steps for any other Linux distributions in VirtualBox. - -Feel free to comment below if you have any problems or questions. - -[Next:How to Install Python on Windows [Beginner’s Guide]][39] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][40] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ - -作者:[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/tag/virtualbox -[2]: https://www.debugpoint.com#presteps -[3]: https://www.debugpoint.com#download-items -[4]: https://www.debugpoint.com#install-virtualbox -[5]: https://www.debugpoint.com#install-ubuntu -[6]: https://www.debugpoint.com#post-install-steps -[7]: https://ubuntu.com/download/desktop -[8]: https://www.virtualbox.org/wiki/Downloads -[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-location-for-VirtualBox-for-Windows.jpg -[10]: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-the-dependency-for-VirtualBox.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-dependency-for-VirtualBox.jpg -[13]: https://www.python.org/downloads/windows/ -[14]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-VirtualBox-from-start-menu.jpg -[15]: https://www.debugpoint.com/virtualbox-id-password/ -[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-New.jpg -[17]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-ISO-file.jpg -[18]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hardware.jpg -[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hard-Disk.jpg -[20]: https://www.debugpoint.com/wp-content/uploads/2023/01/Boot-Ubuntu-in-VirtualBox.jpg -[21]: https://www.debugpoint.com/wp-content/uploads/2023/01/1-Select-Try-Ubuntu.jpg -[22]: https://www.debugpoint.com/wp-content/uploads/2023/01/2-Ubuntu-LIVE-desktop-1.jpg -[23]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Language.jpg -[24]: https://www.debugpoint.com/wp-content/uploads/2023/01/4-Select-Keybaord-Layout.jpg -[25]: https://www.debugpoint.com/wp-content/uploads/2023/01/5-Select-install-options.jpg -[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/6-Installation-Type.jpg -[27]: https://www.debugpoint.com/wp-content/uploads/2023/01/7-Write-changes-to-disk.jpg -[28]: https://www.debugpoint.com/wp-content/uploads/2023/01/8-User-account-creation.jpg -[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/10-Ubuntu-Installation-is-complete.jpg -[30]: https://www.debugpoint.com/wp-content/uploads/2023/01/11-Log-on-to-Ubuntu.jpg -[31]: https://www.debugpoint.com/wp-content/uploads/2023/01/12-Ubuntu-running-in-Windows-using-Virtualbox-2048x1280.jpg -[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Guest-addition-from-the-menu.jpg -[33]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-mounted-disc-and-select-option-with-terminal.jpg -[34]: https://www.debugpoint.com/wp-content/uploads/2023/01/VirtualBox-guest-addition-install-for-Windows-host.jpg -[35]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-clipboard-sharing.jpg -[36]: https://www.debugpoint.com/wp-content/uploads/2023/01/Poweroff-Virtual-machine.jpg -[37]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-remove-to-delete-a-VM.jpg -[38]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-delete-options.jpg -[39]: https://www.debugpoint.com/install-python-windows/ -[40]: https://floss.social/@debugpoint diff --git a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md new file mode 100644 index 0000000000..2916547f27 --- /dev/null +++ b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -0,0 +1,241 @@ +[#]: subject: "Install Ubuntu on Windows Using VirtualBox [Complete Guide]" +[#]: via: "https://www.debugpoint.com/install-ubuntu-windows-virtualbox/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 VirtualBox 在 Windows 上安装 Ubuntu[完整指南] +====== + +**本教程将指导您用最简单的步骤在 Windows 端的 Oracle VirtualBox 上安装 Ubuntu 桌面。** + +[VirtualBox][1] 是 Oracle 的一款流行的虚拟化软件,可用于 Linux、mac 和 Windows 系统。它是灵活的,并提供了许多功能来实现您的虚拟化。这是在 Windows 中体验 Ubuntu 而不安装它的最佳且简单的方法。然而,我强烈建议将 Ubuntu 以双引导的方式安装在物理机上,从而更好地体验 Ubuntu。 + +下面列出的步骤假设您是第一次在 Windows 中安装 Ubuntu。因此,这些步骤有点描述性,也有点冗长。此外,以下步骤适用于 Windows 10 和 Windows 11 作为主机。 + +### 目录 + +- [先决条件][2] +- [下载 Ubuntu ISO 和 VirtualBox 安装文件][3] +- [在 Windows(Host) 上安装 VirtualBox][4] +- [在 VirtualBox 上安装 Ubuntu(Guest)][5] +- [客体机额外的安装和提示][6] + +### 你需要什么 + +- 可上网的 PC +- 用于安装的 Ubuntu Linux ISO 映像文件 +- 安装了 VirtualBox 的 Windows 系统 + +### 使用 VirtualBox 在 Windows 上安装 Ubuntu + +#### 下载并安装必要的东西 + +- 从以下链接下载 Ubuntu Linux 桌面 ISO 映像文件。 + +[下载 Ubuntu 桌面][7] + +- 此外,请从下面的官方网站下载 Oracle VirtualBox 安装程序。 + +[下载 VirtualBox][8] + +![VirtualBox for Windows 的下载位置][9] + +#### 如何安装和配置 VirtualBox + +Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable package。你必须先安装它。从以下链接下载软件包(X64 架构): + +[下载][10] + +![下载 VirtualBox 的依赖项][11] + +![安装 VirtualBox 的依赖项][12] + +- 完成以上安装后,从以下链接下载最新的 Python 包。Python 绑定也是 Windows 端 VirtualBox 安装所需的依赖项。 + +[下载 Python for Windows][13] + +- 然后,启动 VirtualBox 安装程序并按照屏幕上的说明进行安装。 +- 安装后,重新启动 Windows 系统。 + +#### 为 Ubuntu 设置虚拟机 + +- 从开始菜单启动 VirtualBox。 + +![从开始菜单中选择 VirtualBox][14] + +- 在 VirtualBox 窗口工具栏上,单击 **新建**。 +- 在 **创建 VirtualBox** 窗口中,输入虚拟机的名称。它可以是标识此版本 Ubuntu 的任何名称。 +- 保持 **文件夹名称** 不变。这是创建虚拟机文件的路径。 +- 在 ISO Image 一栏,浏览您下载的 Ubuntu ISO 文件。 +- 然后选择无人值守安装(Unattended installation)。如果不选择此选项,将在虚拟机中创建一个 [默认用户 id(vboxuser)和密码][15]。让我们暂时不要管它。 + +![单击新建][16] + +![选择 ISO 文件][17] + +- 单击 Hardware(硬件)并调整虚拟机所需的 RAM。一般的经验是,VM 的 RAM 大小应该小于主机系统中的物理 RAM。我建议对于 8 GB RAM 系统的虚拟机使用 2 GB 到 4 GB。对于 4 GB RAM,拖动滑块(或键入)使其为 4096 MB(即 4×1024)。 +- 选择 2 或 4 核处理器。 +- 单击“硬盘”选项,并保持文件位置不变。 +- 为 Ubuntu 安装提供至少 20 GB 到 25 GB 的容量。 +- 硬盘文件类型值保持为 VDI(VirtualBox 磁盘映像) +- 不要选择 pre-allocate full size(预分配完整大小)。 +- 最后,单击 Finish 完成。 + +![选择硬件][18] + +![选择硬盘][19] + +- 您应该在 VirtualBox 的左侧面板上看到一个新条目,其中包含一个 Ubuntu 22.04 条目(您之前设置的名称)。 +- 选择条目并单击开始以引导到虚拟机 + +![在 VirtualBox 中启动 Ubuntu][20] + +#### 使用 VirtualBox 安装 Ubuntu + +- 成功引导后,您应该看到以下屏幕,其中显示了安装 Ubuntu 的各种选项。选择 **尝试或安装 Ubuntu**。 +- 在欢迎屏幕中,单击 **尝试 Ubuntu**。过了一会儿,你会看到下面的 Ubuntu LIVE 桌面。如果要更改分辨率,请右键单击桌面并选择显示设置。并将分辨率更改为 1400×900。 +- 在桌面上,双击“**安装 Ubuntu**…”。 + +![选择尝试 Ubuntu][21] + +![Ubuntu LIVE 桌面][22] + +- 在下一组屏幕中,根据需要选择语言和键盘布局。 +- 安装屏幕为您提供所需的安装类型。选择“正常安装”,然后在“其他选项”下选择两个选项。 +- 由于您是在虚拟磁盘空间中安装的,即它只是一个文件,因此您可以安全地选择“擦除磁盘并安装 Ubuntu”选项。 +- 点击立即安装并继续。 + +![选择语言][23] + +![选择键盘布局][24] + +![选择安装选项][25] + +![安装类型][26] + +![将更改写入磁盘][27] + +- 然后选择地区,添加姓名、用户和密码。这将是安装后登录 Ubuntu 的用户 id 和密码。 +- 单击“继续”开始安装。等到它完成。 + +![创建用户帐户][28] + +![Ubuntu 安装完成][29] + +安装完成后,单击“立即重新启动”。等待几秒钟,您将看到一个登录屏幕。使用用户 id 和密码登录。您应该看到 Ubuntu 桌面在 Windows 端 VirtualBox 中作为 VM 运行。 + +![登录 Ubuntu][30] + +![使用 Virtualbox 在 Windows 中运行的 Ubuntu][31] + +### 安装后配置和提示(可选) + +#### 安装客体机增强项 + +成功安装后,应为 Windows 主机和 Ubuntu 客体机安装 **VirtualBox 客体机增强项**。客体机增强项是一组需要安装在客体 VM(即 Ubuntu)内的软件包,以启用 **共享文件夹、双向复制 / 粘贴、自动更改分辨率** 和许多类似功能。 + +要安装它,请引导到 Ubuntu。从 VirtualBox 菜单中,选择“设备 > 插入客体机增强 CD 映像”。必要的软件包将安装在 Ubuntu 中。 + +![从菜单中选择客人添加][32] + +打开文件管理器并打开装入的文件夹,如下所示。然后右键单击 > 选择“在终端中打开”。 + +然后运行以下命令: + +``` +sudo ./VBoxLinuxAdditions.run +``` + +![打开已挂载的光盘并选择带有终端的选项][33] + +![VirtualBox 为 Windows 主机添加客体机增强项][34] + +完成上述命令后,重新启动 Ubuntu VM。 + +#### 启用 Windows 和 Ubuntu 之间的复制和粘贴 + +- 要在 Windows 和 Ubuntu 系统之间启用复制和粘贴,请从菜单中选择“设备 > 共享剪贴板 > 双向”。 + +![启用共享剪贴板][35] + +#### 关闭 Ubuntu VM + +- 理想情况下,您应该从自己的关机菜单中关闭 VM。但是,您也可以从 VirtualBox 主窗口关闭。右键单击 VM 名称并选择“关闭”>“关机”。 + +![关闭虚拟机][36] + +#### 如何删除 Ubuntu 并删除所有数据 + +- 如果要完全删除虚拟机(例如 Ubuntu)及其数据,请选择“删除”和“删除所有文件”。 + +![选择删除以移除 VM][37] + +![选择删除选项][38] + +### 结语 + +在本教程中,您学习了使用 VirtualBox 在 Windows(10 或 11)上安装 Ubuntu 的最简单方法。此外,您还学习了几步安装后配置 Ubuntu VM 的基本步骤。您可以对 VirtualBox 中的其他任何 Linux 发行版使用上述步骤。 + +如果您有任何疑问,欢迎在下面发表评论。 + +[下一篇:如何在 Windows 上安装 Python[ 初学者指南]][39] + +[_ 使用 Mastodon?关注我们的 floss.social/@debugpoint_][40] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者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/tag/virtualbox +[2]: https://www.debugpoint.com#presteps +[3]: https://www.debugpoint.com#download-items +[4]: https://www.debugpoint.com#install-virtualbox +[5]: https://www.debugpoint.com#install-ubuntu +[6]: https://www.debugpoint.com#post-install-steps +[7]: https://ubuntu.com/download/desktop +[8]: https://www.virtualbox.org/wiki/Downloads +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-location-for-VirtualBox-for-Windows.jpg +[10]: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-the-dependency-for-VirtualBox.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-dependency-for-VirtualBox.jpg +[13]: https://www.python.org/downloads/windows/ +[14]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-VirtualBox-from-start-menu.jpg +[15]: https://www.debugpoint.com/virtualbox-id-password/ +[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-New.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-ISO-file.jpg +[18]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hardware.jpg +[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hard-Disk.jpg +[20]: https://www.debugpoint.com/wp-content/uploads/2023/01/Boot-Ubuntu-in-VirtualBox.jpg +[21]: https://www.debugpoint.com/wp-content/uploads/2023/01/1-Select-Try-Ubuntu.jpg +[22]: https://www.debugpoint.com/wp-content/uploads/2023/01/2-Ubuntu-LIVE-desktop-1.jpg +[23]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Language.jpg +[24]: https://www.debugpoint.com/wp-content/uploads/2023/01/4-Select-Keybaord-Layout.jpg +[25]: https://www.debugpoint.com/wp-content/uploads/2023/01/5-Select-install-options.jpg +[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/6-Installation-Type.jpg +[27]: https://www.debugpoint.com/wp-content/uploads/2023/01/7-Write-changes-to-disk.jpg +[28]: https://www.debugpoint.com/wp-content/uploads/2023/01/8-User-account-creation.jpg +[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/10-Ubuntu-Installation-is-complete.jpg +[30]: https://www.debugpoint.com/wp-content/uploads/2023/01/11-Log-on-to-Ubuntu.jpg +[31]: https://www.debugpoint.com/wp-content/uploads/2023/01/12-Ubuntu-running-in-Windows-using-Virtualbox-2048x1280.jpg +[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Guest-addition-from-the-menu.jpg +[33]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-mounted-disc-and-select-option-with-terminal.jpg +[34]: https://www.debugpoint.com/wp-content/uploads/2023/01/VirtualBox-guest-addition-install-for-Windows-host.jpg +[35]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-clipboard-sharing.jpg +[36]: https://www.debugpoint.com/wp-content/uploads/2023/01/Poweroff-Virtual-machine.jpg +[37]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-remove-to-delete-a-VM.jpg +[38]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-delete-options.jpg +[39]: https://www.debugpoint.com/install-python-windows/ +[40]: https://floss.social/@debugpoint From 9445982f55c7c8d1a8542692d21bbb009fedec74 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 19 Jan 2023 23:59:09 +0800 Subject: [PATCH 2602/3123] RP @lxbwolf https://linux.cn/article-15460-1.html --- ...6 tips for building an effective DevOps culture.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) rename {translated/tech => published}/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md (60%) diff --git a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md similarity index 60% rename from translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md rename to published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md index 8307a8248d..d16f52a06b 100644 --- a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ b/published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -3,34 +3,38 @@ [#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" [#]: collector: "lkxed" [#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15460-1.html" 构建高效的 DevOps 文化的 6 个技巧 ====== -你为什么要构建 [DevOps][1] 文化?开发和运营团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 +> 无论你是刚刚开始在你的组织中使用 DevOps,还是仅仅想改善你现有的文化,请考虑这些技巧以及它们与你组织的未来的关系。 -[DevOps][2] 是一个很广泛的范畴,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事--这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 +![][0] -下面每个部分从不同的视角介绍 DevOps 文化,并争取将它引入你的工作中去。 +你为什么要构建 [DevOps][1] 文化?开发团队和运维团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 + +[DevOps][2] 是一个很广泛的思想,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事 —— 这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 + +下面每个部分从不同的视角介绍 DevOps 文化,并探讨了将它引入员工队伍的方法。 ![DevOps includes collaboration, workflow, infosec, and iteration.][3] -### 流程的持续开发 +### 流程的持续发展 -DevOps 文化的这一核心原则使它与许多其他类型的工作区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 +DevOps 文化的这一核心原则使它与许多其他类型的工作场所的风气区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 DevOps 文化的核心是不停地创造。实际上,这意味着当测试结果显示事情由于你的改动而变坏时,不要懊恼。我们要认识到,进化的过程不是线性的,通往成功的道路也从来不是一条直线。 -DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 +DevOps 专家 [Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 -你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程开发意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 +你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程发展意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 ### 随时提供反馈并积极寻求反馈 -成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [UX][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 +成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [用户体验][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 这种文化听起来可能是很难培养的;事实上,一些公司会比其他公司更努力地实现这一点。诚然,给予和接受反馈的成功很大程度上取决于员工的个性。在招聘过程中,也可以对此进行筛选。 @@ -40,19 +44,19 @@ DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你 ### 不断改进 -在同事之间增加智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 +在同事之间增加对智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 -这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索,企业还有哪些领域会受到积极的影响。 +这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索企业还有哪些领域会受到积极的影响。 留意培训和提高技能的机会。即使一个培训课程没有广告上说的那么突出,但有机会与行业专家建立联系,并与未来建立联系,这可以提高你的组织内的思想多样性。 ### 为以后的开发保存当前的想法 -频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 "版本控制" 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 +频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 “版本控制” 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 -你的目标是有能力保留好的想法供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 +你的目标是能够保留好的想法以供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 -由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此保存开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 +由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此节省开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 一个简单的方法是要求开发者在开发者合同和最终项目报告中包含对未来工作的想法。确保技术服务经理知道他们应该要求提供在建设过程中出现的旁门左道的想法的例子。意识到这些小创新的人越多,在需要的时候就越有可能有人记住一个。 @@ -60,24 +64,23 @@ DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你 目标是对彼此的工作角色以及它们之间的相互关系有一个共同的理解。你可以通过几个简单的方法实现这一目标,用一句话概括:坐在一起。邀请其他团队参加你们的会议,完整地分享用户反馈报告。一起吃午饭,一起计划虚拟的快乐时光,一般来说,要确保你的同事都在一起。大约 90% 的拥有成熟的 DevOps 协议的团队报告说,他们清楚地了解自己对其他团队的责任,而在不成熟的 DevOps 团队中,只有大约 46% 的工作者清楚地了解自己的责任。 -虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工一起玩耍是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 +虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工在一起是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 -密切协作的想法是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 +密切协作的理念是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 ### 致力于自动化 -你应该以提高效率和加速流程的方式,将单调的和重复的任务变为自动化。每个行业都有无聊的--说得直白一点,愚蠢的--每天或每周都要进行的工作。 +你应该以提高效率和加速流程的名义,寻求将单调的和重复的任务变为自动化。每个行业都有无聊的 —— 说得直白一点,就是愚蠢的 —— 每天或每周都要进行的工作。 -无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C”代表“文化”)。 - -你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后--这里是关键的部分--支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案或开发人员的两天时间来建立一个新的工具在内部使用。 +无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C” 代表 “文化”)。 +你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后 —— 这里是关键的部分 —— 支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案,或开发人员用两天时间来建立一个在内部使用新工具。 无论哪种方式,你都应该评估自动化的好处,考虑你可以为每个人节省多少时间。DevOps 的统计数据不断表明,现代公司通过整合这些有益的原则,年复一年地得到了很大的改善。 ### 探索成功的新工作方式 -文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化是对以前的真正改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 +文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化真正对以前进行了改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 -------------------------------------------------------------------------------- @@ -86,7 +89,7 @@ via: https://opensource.com/article/23/1/tips-effective-devops-culture 作者:[Yauhen Zaremba][a] 选题:[lkxed][b] 译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -100,3 +103,4 @@ via: https://opensource.com/article/23/1/tips-effective-devops-culture [6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png [7]: https://opensource.com/article/22/11/git-concepts [8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks +[0]: https://opensource.com/sites/default/files/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png \ No newline at end of file From 7da35136b021ad8b18b5d4312ee8dc8908965906 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 20 Jan 2023 09:42:58 +0800 Subject: [PATCH 2603/3123] =?UTF-8?q?Update=2020221213.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Battle=20of=20t?= =?UTF-8?q?he=20Texts=20and=20the=20Unicode=20Savior.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index 529dffde10..dc3b81881c 100644 --- a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/unicode-linux/" [#]: author: "Sylvain Leroux https://www.yesik.it/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d3b757b0fa4f37490c264fc0ccd2cd27591fd730 Mon Sep 17 00:00:00 2001 From: Cubik Date: Thu, 19 Jan 2023 21:17:21 -0500 Subject: [PATCH 2604/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ 11 New Distros to look forward to in 2023.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 4fdfa8508a..2b86065ffe 100644 --- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -138,15 +138,15 @@ CachyOS 是一个滚动发布的发行版,因此您可以期待它在 2023 年 ![risios][24] -In a sea of Arch and Ubuntu-based Linux distros, [risiOS][25] is a rare sight to see. +在基于 Arch 和 Ubuntu 的 Linux 发行版的海洋中,[risiOS][25]是一个少见的情况。 -Based on Fedora Linux, the project saw its beginnings in Seattle, USA. +该项目基于 Fedora Linux,其起源于美国西雅图。 -It uses the **GNOME desktop environment** to provide users with a highly customizable experience with a **customized ZSH version**. +它使用 **GNOME 桌面环境** 以为用户提供了一个高度可定制的体验,同时还提供了 **自定义的 ZSH 版本**。 -If you want to try a Fedora-based distro, this can be something new for you! +如果你希望尝试一个基于 Fedora 的发行版,这可能是你的新选择! -risiOS gets a stable release with minor updates pushed in between. It has much more to give in 2023. +risiOS 会在稳定版本中间推送一些小更新。在 2023 年,它还有更多的东西可以提供给你。 [risiOS][25] @@ -154,17 +154,17 @@ risiOS gets a stable release with minor updates pushed in between. It has much m ![exodia os][26] -Another Arch-based Linux distro!#$**? +#$**!又是一个基于 Arch 的 Linux 发行版? -Yes. 🤭 Well, it looks like this year, we have had enough of Arch-based distros, which is not necessarily bad! +是的。🤭 好吧,看起来今年我们已经有足够多的基于 Arch 的发行版了,这并不一定是坏事! -Meet [Exodia OS][27], an Arch-based Linux distro that aims to be highly customizable for users in cybersecurity fields. +认识一下 [Exodia OS][27],一个基于 Arch 的 Linux 发行版,旨在为安全领域的用户提供高度可定制的体验。 -Its feature set includes pre-installed **tools for all cybersecurity fields, TUI Apps, ElKowars wacky widgets (EWW), zsh, and more**. +其功能包括预安装的**适用于所有网络安全领域的工具、命令行界面应用、ElKowars wacky widgets (EWW)、zsh 等**。 -If you are a cybersecurity expert or an enthusiast, you can give this a try! +如果你是一个网络安全专家或爱好者,你可以试试! -They offer three releases for different use cases. You can expect them to keep pushing essential updates and feature additions in 2023. +他们为三个不同的使用场景提供了三个版本。您可以期待他们在 2023 年继续推送必要的更新和功能添加。 [Exodia OS][27] @@ -172,15 +172,15 @@ They offer three releases for different use cases. You can expect them to keep p ![kumander linux][28] -At first glance, you would think that it is Windows 7, but if you look closer, you will find that it is [Kumandar Linux][29]. +乍一看,你可能会认为这是 Windows 7,但如果仔细观察,你会发现这是 [Kumandar Linux][29]。 -It is based on **Debian 11 and uses a customized version of XFCE**. +它基于**Debian 11,并使用自定义的 XFCE 版本**。 -The name stands for 'Commander' in English and pays homage to the developer's first computer, the [Commodore VIC20][30]. +该名称在中文中的含义为 “指挥官”,并致敬了开发人员的第一台电脑 [Commodore VIC20][30]。 -If you liked the Windows 7 experience but wanted the same thing on Linux. Then you can give this a try! +如果你喜欢 Windows 7,但想在 Linux 上体验同样的体验,那么你可以试试! -Currently, only the early-release candidate has been released. But you can expect a stable release in 2023, hopefully! +目前,该系统只发布了发布候选版本。但是,您可以期待在 2023 年发布稳定版本,希望如此! [Kumander][29] @@ -188,27 +188,27 @@ Currently, only the early-release candidate has been released. But you can expec ![ubuntu unity][31] -Declared as an official flavor of Ubuntu [earlier this year][32], Ubuntu Unity is a remix of Ubuntu. +[今年早些时候][32] 宣布为 Ubuntu 的官方版本,Ubuntu Unity 是 Ubuntu 的混合版本。 -It features the **Unity desktop interface** used in Ubuntu from 2010-2017, which was dropped in favor of GNOME. +它使用了 2010-2017 年 Ubuntu 中使用的 Unity 桌面界面,该界面后来被 GNOME 取代。 -The development has been in full swing, with the young lead developer pushing updates and feature additions. +开发工作如火如荼,年轻的首席开发人员正在推动更新和增加新功能。 -Users who want to try a different flavor of Ubuntu can give this a shot. It offers both LTS and non-LTS releases. +想要尝试不同风格的 Ubuntu 的用户可以试试这个系统。它提供了 LTS 和非 LTS 版本。 [Ubuntu Unity][33] -**So, wrapping up.** +**所以,总结一下。** -Even with this comprehensive list, I may have missed out on some. 🤔 +即使有了这份全面的清单,我也可能遗漏了一些。 🤔 -But. +但是。 -Maybe a surprise release will take the headlines in 2023, or some existing distro will try something different. +或许 2023 年会有惊喜占据头版,或者一些现有的发行版会尝试一些不同的东西。 -Until then. +Until then. # 不太确定如何翻译 -_💬 Do tell me what distribution you are excited about in 2023?_ +_💬 请告诉我你在 2023 年期待着哪些发行版?_ -------------------------------------------------------------------------------- From ed81c0e26e44467ddebed381269ea39e3be5df06 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 20 Jan 2023 19:02:56 +0800 Subject: [PATCH 2605/3123] RP @wxy https://linux.cn/article-15461-1.html --- ... Learn to code with my retro computer program.md | 215 ++++++++++++++++++ ... Learn to code with my retro computer program.md | 210 ----------------- 2 files changed, 215 insertions(+), 210 deletions(-) create mode 100644 published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md delete mode 100644 sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md diff --git a/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md b/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md new file mode 100644 index 0000000000..e7a5addcd4 --- /dev/null +++ b/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md @@ -0,0 +1,215 @@ +[#]: subject: "Learn to code with my retro computer program" +[#]: via: "https://opensource.com/article/23/1/learn-machine-language-retro-computer" +[#]: author: "Jim Hall https://opensource.com/users/jim-hall" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15461-1.html" + +用复古电脑程序 Toy CPU 学习低级编程 +====== + +![][0] + +> 我写了一个名为 “Toy CPU” 的教育性复古计算机程序,以便我的学生能够学习机器语言。 + +我兼职教授大学课程,包括一个对所有专业开放的一般计算机主题的课程。这是一门入门课程,向学生讲授技术是如何运作的,以消除围绕计算的神秘感。 + +虽然不是计算机科学课程,但这门课的一个部分涉及计算机编程。我通常用非常抽象的术语谈论编程,所以不会让听众听不懂。但是今年,我想让我的学生以 “老派” 的方式做一些需要 “动手” 的编程。同时,我又想保持简单,以便让每个人都能跟上。 + +我喜欢将我的课程结构化,以显示你是如何从 “那里” 到 “这里” 的。理想情况下,我会让我的学生学习如何编写一个简单的程序。然后,我将从这里开始,展示现代编程是如何让开发人员创建更复杂的程序的。我决定尝试一种非常规的方法 —— 教学生学习终极的低级别编程语言:机器语言。 + +### 机器语言编程 + +早期的个人电脑如 Apple II(1977 年)、TRS-80(1977 年)和 IBM PC(1981 年)让用户用键盘输入程序,并在屏幕上显示结果。但计算机并不总是带有屏幕和键盘。 + +Altair 8800 和 IMSAI 8080(均为 1975 年制造)要求用户使用面板上的 “开关和灯” 输入程序。你可以用机器语言输入指令,使用一组开关,机器会点亮 LED 灯以代表每个二进制指令的 1 和 0。 + +![Altair 8800 计算机的图片][1] + +对这些早期机器进行编程,需要了解被称为 “操作码opcode” (操作代码的简称)的机器语言指令,以执行基本操作,如将两个数字相加或将一个值存储到计算机的存储器中。我想向我的学生展示程序员是如何通过开关和灯,手工输入一系列指令和内存地址的。 + +然而,在这门课上,使用实际的 Altair 8800 就有点太复杂了。我需要一些简单的、任何初级水平的学生都能掌握的东西。理想情况下,我希望能找到一个简单的 “业余” 复古计算机,其工作原理与 Altair 8800 相似,但我无法找到一个价格低于 100 美元的合适的 “类似 Altair” 的设备。我找到了几个 “Altair” 软件模拟器,但它们忠实地再现了 Altair 8800 的操作码,这对我的需求来说太过沉重。 + +我决定编写我自己的 “教育” 复古计算机。我称它为 “Toy CPU”。你可以在我的 [GitHub 代码库][2] 上找到它,包括几个可以运行的版本。第一版是一个实验性的原型,运行在 [FreeDOS][3] 上。第二版是一个更新的原型,在 Linux 上用 [ncurses][4] 运行。版本 3 是一个 FreeDOS 程序,在图形模式下运行。 + +### Toy CPU 的编程 + +Toy CPU 是一个非常简单的复古计算机。它只有 256 字节的内存和一个最小化的指令集,其目的是在复制 “开关和灯” 编程模式的同时保持简单化。它的界面模仿 Altair 8800,有一系列 8 个 LED 灯,分别代表计数器(程序的 “行号”)、指令、累积器(用于临时数据的内部存储器)和状态。 + +当你启动 Toy CPU 时,它通过清除内存来模拟 “启动”。当它启动时,它也会在屏幕右下方的状态灯中显示 “INI”(初始化)。“PWR”(电源)灯亮表示 Toy CPU 已被打开。 + +![Toy CPU 的启动屏幕][5] + +当 Toy CPU 准备好让你进入一个程序时,它通过状态灯指示 “INP”(“输入”模式),并让你从程序的计数器 0 开始。Toy CPU 的程序总是从计数器 0 开始。 + +在 “输入” 模式下,用上下方向键显示不同的程序计数器,按回车键编辑当前计数器上的指令。当你进入 “编辑” 模式时,Toy CPU 的状态灯上会显示 “EDT”(“编辑” 模式)。 + +![Toy CPU 编辑屏幕][6] + +Toy CPU 有一张速查表,被 “贴” 在显示屏的前面。它列出了 Toy CPU 可以处理的不同操作码。 + +- `00000000`(`STOP`):停止程序执行。 +- `00000001`(`RIGHT`):将累加器中的位向右移动一个位置。值 `00000010` 变成 `00000001`,`00000001` 变成 `00000000`。 +- `00000010`(`LEFT`):将累加器中的位向左移动一个位置。值 `01000000` 变成 `10000000`,`10000000` 变成 `00000000`。 +- `00001111`(`NOT`):对累加器进行二进制非操作。例如,值 `10001000` 变成 `01110111`。 +- `00010001`(`AND`):对累加器用存储在某一地址的值进行二进制与操作。该地址被存储在下一个计数器中。 +- `00010010`(`OR`):对累积器用存储在某一地址的值进行二进制或运算。 +- `00010011`(`XOR`):对累加器用存储在某一地址的值进行二进制异或运算。 +- `00010100`(`LOAD`):将一个地址的值加载(复制)到累加器中。 +- `00010101`(`STORE`): 存储(复制)累加器中的值到一个地址。 +- `00010110`(`ADD`):将存储在某一地址的数值加入到累加器中。 +- `00010111`(`SUB`):从累积器中减去储存在某一地址的数值。 +- `00011000`(`GOTO`):转到(跳到)一个计数器地址。 +- `00011001`(`IFZERO`):如果累加器为零,转到(跳到)一个计数器地址。 +- `10000000`(`NOP`):空操作,可以安全地忽略。 + +当处于 “编辑” 模式时,使用左右方向键选择操作码中的一个位,然后按空格键在关闭(0)和开启(1)之间翻转数值。当你完成编辑后,按回车键回到 “输入” 模式。 + +![Toy CPU 输入模式屏幕][7] + +### 一个示例程序 + +我想通过输入一个简短的程序来探索 Toy CPU,将两个数值相加,并将结果存储在 Toy CPU 的内存中。实际上,这执行的是算术运算 `A+B=C`。要创建这个程序,你只需要几个操作码: + +- `00010100`(`LOAD`) +- `00010110`(`ADD`) +- `00010101`(`STORE`) +- `00000000`(`STOP`) + +`LOAD`、`ADD` 和 `STORE` 指令需要一个内存地址,这个地址总是在下一个计数器的位置。例如,程序的前两条指令是: + +``` +计数器 0:00010100 +计数器 1:某个内存地址,第一个值 A 存放在那里 +``` + +计数器 0 中的指令是 `LOAD` 操作,计数器 1 中的值是你存储某个值的内存地址。这两条指令一起将内存中的数值复制到 Toy CPU 的累加器中,在那里你可以对该数值进行操作。 + +将一个数字 `A` 装入累加器后,你需要将数值 `B` 加到它上面。你可以用这两条指令来做: + +``` +计数器 2:00010110 +计数器 3:存储第二个值 B 的内存地址 +``` + +假设你把值 `1`(`A`)装入累加器,然后把值 `3`(`B`)加到它上面。现在累加器的值是 `4`。现在你需要用这两条指令把数值 `4` 复制到另一个内存地址(`C`): + +``` +计数器 4:00010101 +计数器 5:一个内存地址(C),我们可以在那里保存新的值 +``` + +把这两个值加在一起后,现在可以用这条指令结束程序: + +``` +计数器 6: 00000000 +``` + +计数器 6 之后的任何指令都可以供程序作为存储内存使用。这意味着你可以用计数器 7 的内存来储存值 `A`,计数器 8 的内存来储存值 `B` ,计数器 9 的内存来储存值 `C`。你需要将这些分别输入到 Toy CPU 中: + +``` +计数器 7:00000001(1) +计数器 8:00000011(3) +计数器 9:00000000(0,以后会被覆盖) +``` + +在弄清了所有指令和 `A`、`B` 和 `C` 的内存位置后,现在可以将完整的程序输入到 Toy CPU 中。这个程序将数值 1 和 3 相加,得到 4: + +``` +计数器 0:00010100 +计数器 1:00000111(7) +计数器 2:00010110 +计数器 3:00001000(8) +计数器 4:00010101 +计数器 5:00001001(9) +计数器 6:00000000 +计数器 7:00000001(1) +计数器 8:00000011(3) +计数器 9:00000000(0,以后会被覆盖) +``` + +要运行程序,在 “输入” 模式下按下 `R` 键。Toy CPU 将在状态灯中显示 “RUN”(“运行” 模式),并从计数器 0 开始执行你的程序。 + +Toy CPU 有一个明显的延迟,所以你可以看到它执行程序中的每一步。随着程序的进行,你应该看到计数器从 `00000000`(0)移动到 `00000110`(6)。在计数器 1 之后,程序从内存位置 7 加载数值 `1`,累积器更新为 `00000001`(1)。在计数器 3 之后,程序将加数值 `3`,并更新累加器显示 `00000100`(4)。累加器将保持这种状态,直到程序在计数器 5 之后将数值存入内存位置 9,然后在计数器 6 结束。 + +![在运行模式下的 Toy CPU][8] + +### 探索机器语言编程 + +你可以使用 Toy CPU 来创建其他程序,并进一步探索机器语言编程。通过用机器语言编写这些程序来测试你的创造力。 + +### 一个在累积器上闪灯的程序 + +你能点亮累加器上的右四位,然后是左四位,然后是所有的位吗?你可以用两种方法之一来写这个程序。 + +一种直接的方法是,从不同的内存地址加载三个数值,像这样: + +``` +计数器 0:LOAD +计数器 1:“右边” +计数器 2:LOAD +计数器 3:“左边” +计数器 4:LOAD +计数器 5:“所有” +计数器 6:STOP +计数器 7:00001111(“右边”) +计数器 8:11110000(“左边”) +计数器 9:11111111(“全部”) +``` + +写这个程序的另一种方法是尝试使用 `NOT` 和 `OR` 二进制操作。这样可以得到一个更小的程序: + +``` +计数器 0:LOAD +计数器 1:“右边” +计数器 2:NOT +计数器 3:OR +计数器 4:“右边” +计数器 5:STOP +计数器 6:00001111(“右边”) +``` + +### 从一个数字开始倒数 + +你可以把 Toy CPU 作为一个倒数计时器。这个程序行使 `IFZERO` 测试,只有当累加器为零时,程序才会跳转到一个新的计数器: + +``` +计数器 0:LOAD +计数器 1:“初始值” +计数器 2:IFZERO(这也是倒计时的“开始”) +计数器 3:“结束” +计数器 4:SUB +计数器 5:“1” +计数器 6:GOTO +计数器 7:“开始” +计数器 8:STOP +计数器 9:00000111(“初始值”) +计数器 10:00000001(“1”) +``` + +Toy CPU 是学习机器语言的一个好方法。我在入门课程中使用了 Toy CPU,学生们说他们发现写第一个程序很困难,但写下一个程序就容易多了。学生们还表示,用这种方式编写程序其实很有趣,他们学到了很多关于计算机实际工作的知识。Toy CPU 既具有教育性,也很有趣味性! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/learn-machine-language-retro-computer + +作者:[Jim Hall][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://opensource.com/users/jim-hall +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/2022-12/MITS_Altair_8800_Computer_%281975%29.png +[2]: https://github.com/freedosproject/toycpu +[3]: https://opensource.com/downloads/guide-using-freedos +[4]: https://opensource.com/article/21/8/ncurses-linux +[5]: https://opensource.com/sites/default/files/2022-12/toycpu.png +[6]: https://opensource.com/sites/default/files/2022-12/edit0-load.png +[7]: https://opensource.com/sites/default/files/2022-12/input0-load.png +[8]: https://opensource.com/sites/default/files/2022-12/run-3.png +[0]: https://opensource.com/sites/default/files/lead-images/retro_old_unix_computer.png \ No newline at end of file diff --git a/sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md b/sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md deleted file mode 100644 index 3bb59671ba..0000000000 --- a/sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md +++ /dev/null @@ -1,210 +0,0 @@ -[#]: subject: "Learn to code with my retro computer program" -[#]: via: "https://opensource.com/article/23/1/learn-machine-language-retro-computer" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn to code with my retro computer program -====== - -I teach university courses part-time, including a class about general computing topics, open to all majors. This is an introductory course that teaches students about how technology works, to remove the mystery around computing. - -While not a computer science course, one section of this course covers computer programming. I usually talk about programming in very abstract terms, so I don't lose my audience. But this year, I wanted my students to do some "hands-on" programming in an "old school" way. At the same time, I wanted to keep it simple, so everyone could follow along. - -I like to structure my lessons to show how you got from "there" to "here." Ideally, I would let my students learn how to write a simple program. Then I would pick it up from there to show how modern programming allows developers to create more complex programs. I decided to try an unconventional approach — teach the students about the ultimate in low-level programming: machine language. - -### Machine language programming - -Early personal computers like the Apple II (1977), TRS-80 (1977), and IBM PC (1981) let users enter programs with a keyboard, and displayed results on a screen. But computers didn't always come with a screen and keyboard. - -The Altair 8800 and IMSAI 8080 (both made in 1975) required users to enter a program using "switches and lights" on a panel. You would enter an instruction in machine language, using a bank of switches, and the machine would light up the ones and zeros of each binary instruction using LEDs. - -![Image of an Altair 8800 Computer.][1] - -Programming these early machines required knowing the machine language instructions, called opcodes, short for operation codes, to perform basic operations like adding two numbers or storing a value into the computer's memory. I wanted to show my students how programmers would enter a series of instructions and memory addresses by hand, using the switches and lights. - -However, using an actual Altair 8800 would be too much overhead in this class. I needed something simple that any beginner-level student could grasp. Ideally, I hoped to find a simple "hobby" retro computer that worked similarly to the Altair 8800, but I couldn't find a suitable "Altair-like" device for less than $100. I found several "Altair" software emulators, but they faithfully reproduce the Altair 8800 opcodes, and that was too much for my needs. - -I decided to write my own "educational" retro computer. I call it the Toy CPU. You can find it on my [GitHub repository][2], including several releases to play with. Version 1 was an experimental prototype that ran on [FreeDOS][3]. Version 2 was an updated prototype that ran on Linux with [ncurses][4]. Version 3 is a FreeDOS program that runs in graphics mode. - -### Programming the Toy CPU - -The Toy CPU is a very simple retro computer. Sporting only 256 bytes of memory and a minimal instruction set, the Toy CPU aims for simplicity while replicating the "switches and lights" programming model. The interface mimics the Altair 8800, with a series of eight LEDs for the counter (the "line number" for the program), instruction, accumulator (internal memory used for temporary data), and status. - -When you start the Toy CPU, it simulates "booting" by clearing the memory. While the Toy CPU is starting up, it also displays `INI` ("initialize") in the status lights at the bottom-right of the screen. The `PWR` ("power") light indicates the Toy CPU has been turned on. - -![Image of start screen for the toy cpu.][5] - -When the Toy CPU is ready for you to enter a program, it indicates `INP` ("input" mode) via the status lights, and starts you at counter 0 in the program. Programs for the Toy CPU always start at counter 0. - -In "input" mode, use the up and down arrow keys to show the different program counters, and press Enter to edit the instruction at the current counter. When you enter "edit" mode, the Toy CPU shows `EDT` ("edit" mode) on the status lights. - -![Image of the toy CPU editing screen.][6] - -The Toy CPU has a cheat sheet that's "taped" to the front of the display. This lists the different opcodes the Toy CPU can process: - -- `00000000` (`STOP`): Stop program execution. -- `00000001` (`RIGHT`): Shift the bits in the accumulator to the right by one position. The value 00000010 becomes 00000001, and 00000001 becomes 00000000. -- `00000010` (`LEFT`): Shift the bits in the accumulator to the left by one position. The value 01000000 becomes 10000000, and 10000000 becomes 00000000. -- `00001111` (`NOT`): Binary NOT the accumulator. For example, the value 10001000 becomes 01110111. -- `00010001` (`AND`): Binary AND the accumulator with the value stored at an address. The address is stored in the next counter. -- `00010010` (`OR`): Binary OR the accumulator with the value stored at an address. -- `00010011` (`XOR`): Binary XOR (“exclusive or”) the accumulator with the value stored at an address. -- `00010100` (`LOAD`): Load (copy) the value from an address into the accumulator. -- `00010101` (`STORE`): Store (copy) the value in the accumulator into an address. -- `00010110` (`ADD`): Add the value stored at an address to the accumulator. -- `00010111` (`SUB`): Subtract the value stored at an address from the accumulator. -- `00011000` (`GOTO`): Go to (jump to) a counter address. -- `00011001` (`IFZERO`): If the accumulator is zero, go to (jump to) a counter address. -- `10000000` (`NOP`): No operation; safely ignored. - -When in "edit" mode, use the left and right arrow keys to select a bit in the opcode, and press `Space`to flip the value between off (0) and on (1). When you are done editing, press `Enter`to go back to "input" mode. - -![Image of the toy CPU input mode screen.][7] - -### A sample program - -I want to explore the Toy CPU by entering a short program that adds two values, and stores the result in the Toy's memory. Effectively, this performs the arithmetic operation **A+B=C**. To create this program, you only need a few opcodes: - -- `00010100` (`LOAD`): Load (copy) the value from an address into the accumulator. -- `00010110` (`ADD`): Add the value stored at an address to the accumulator. -- `00010101` (`STORE`): Store (copy) the value in the accumulator into an address. -- `00000000` (`STOP`): Stop program execution. - -The `LOAD`, `ADD`, and `STORE` instructions require a memory address, which will always be in the next counter location. For example, the first two instructions of the program are: - -``` -counter 0: 00010100 -counter 1: some memory address where the first value A is stored -``` - -The instruction in counter 0 is the `LOAD`operation, and the value in counter 1 is the memory address where you have stored some value. The two instructions together copy a value from memory into the Toy's accumulator, where you can work on the value. - -Having loaded a number **A** into the accumulator, you need to add the value **B** to it. You can do that with these two instructions: - -``` -counter 2: 00010110 -counter 3: a memory address where the second value B is stored -``` - -Say that you loaded the value 1 (**A**) into the accumulator, then added the value 3 (**B**) to it. The accumulator will now have the value 4. Now you need to copy the value 4 into another memory address (**C**) with these two instructions: - -``` -counter 4: 00010101 -counter 5: a memory address (C) where we can save the new value -``` - -Having added the two values together, you can now end the program with this instruction: - -``` -counter 6: 00000000 -``` - -Any instructions after counter 6 are available for the program to use as stored memory. That means you can use the memory at counter 7 for the value **A**, the memory in counter 8 for the value **B**, and the memory at counter 9 for the stored value **C**. You need to enter these separately into the Toy: - -``` -counter 7: 00000001 (1) -counter 8: 00000011 (3) -counter 9: 00000000 (0, will be overwritten later) -``` - -Having figured out all the instructions and the memory locations for **A**, **B**, and **C**, you can now enter the full program into the Toy. This program adds the values 1 and 3 to get 4: - -``` -counter 0: 00010100 -counter 1: 00000111 (7) -counter 2: 00010110 -counter 3: 00001000 (8) -counter 4: 00010101 -counter 5: 00001001 (9) -counter 6: 00000000 -counter 7: 00000001 (1) -counter 8: 00000011 (3) -counter 9: 00000000 (0, will be overwritten later) -``` - -To run the program, press the `R` key when in "input" mode. The Toy CPU will show `RUN` ("run" mode) in the status lights, and execute your program starting at counter 0. - -The Toy has a significant delay built into it, so you can watch the Toy execute each step in the program. You should see the counter move from 00000000 (0) to 00000110 (6) as the program progresses. After counter 1, the program loads the value 1 from memory location 7, and the accumulator updates to 00000001 (1). After counter 3, the program will add the value 3 and update the accumulator to show 00000100 (4). The accumulator will remain that way until the program stores the value into memory location 9 after counter 5 then ends at counter 6. - -![Image of the Toy in RUN mode.][8] - -### Exploring machine language programming - -You can use the Toy to create other programs and further explore machine language programming. Test your creativity by writing these programs in machine language. - -### A program to flash the lights on the accumulator - -Can you light up the right four bits on the accumulator, then the left four bits, then all of the bits? You can write this program in one of two ways: - -A straightforward approach would be to load three values from different memory addresses, like this: - -``` -counter 0: LOAD -counter 1: "right" -counter 2: LOAD -counter 3: "left" -counter 4: LOAD -counter 5: "all" -counter 6: STOP -counter 7: 00001111 ("right") -counter 8: 11110000 ("left") -counter 9: 11111111 ("all") -``` - -Another way to write this program is to experiment with the NOT and OR binary operations. This results in a smaller program: - -``` -counter 0: LOAD -counter 1: "right" -counter 2: NOT -counter 3: OR -counter 4: "right" -counter 5: STOP -counter 6: 00001111 ("right") -``` - -### Count down from a number - -You can use the Toy as a countdown timer. This program exercises the IFZERO test, which will jump the program to a new counter only if the accumulator is zero: - -``` -counter 0: LOAD -counter 1: "initial value" -counter 2: IFZERO (this is also the "start" of the countdown) -counter 3: "end" -counter 4: SUB -counter 5: "one" -counter 6: GOTO -counter 7: "start" -counter 8: STOP -counter 9: 00000111 ("initial value") -counter 10: 00000001 ("one") -``` - -The Toy CPU is a great way to learn about machine language. I used the Toy CPU in my introductory course, and the students said they found it difficult to write the first program, but writing the next one was much easier. The students also commented that writing programs in this way was actually fun, and they learned a lot about how computers actually work. The Toy CPU is educational and fun! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/learn-machine-language-retro-computer - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/2022-12/MITS_Altair_8800_Computer_%281975%29.png -[2]: https://github.com/freedosproject/toycpu -[3]: https://opensource.com/downloads/guide-using-freedos -[4]: https://opensource.com/article/21/8/ncurses-linux -[5]: https://opensource.com/sites/default/files/2022-12/toycpu.png -[6]: https://opensource.com/sites/default/files/2022-12/edit0-load.png -[7]: https://opensource.com/sites/default/files/2022-12/input0-load.png -[8]: https://opensource.com/sites/default/files/2022-12/run-3.png From 6541679f7b9781e3fb0c4e5560cab4d10d21386b Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Fri, 20 Jan 2023 21:05:01 +0800 Subject: [PATCH 2606/3123] translated --- ... 11 tips for writing a good Git commit message.md | 185 ------------------ ... 11 tips for writing a good Git commit message.md | 185 ++++++++++++++++++ 2 files changed, 185 insertions(+), 185 deletions(-) delete mode 100644 sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md create mode 100644 translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md diff --git a/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md deleted file mode 100644 index ae6acb59d1..0000000000 --- a/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: subject: "11 tips for writing a good Git commit message" -[#]: via: "https://opensource.com/article/22/12/git-commit-message" -[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -11 tips for writing a good Git commit message -====== - -Lately, I have been paying closer attention to the changelogs I get from products and services when updates are needed. Here are some examples: - -- Fixed some bugs. -- Made some accessibility improvements. -- We've made improvements and fixed bugs for a smoother ride. - -When I think about some of the first commit messages I made as a junior developer I have to hang my head in dismay: - -- Pointed and clicked around a bit and now things seem to work. -- Did what programmer X told me to do and now the banner is blue. - -This can be frustrating! I asked our community of contributors the following questions: - -- What makes a good Git commit message? -- What makes a bad one? -- What rules do you think a project should have around what a commit message contains? - -Here are their answers: - -### Great writing is key - -As with anything you write, you should think about who is going to read it. Then adapt the amount and depth of information accordingly. - -Improving your natural language and writing skills is essential for a healthy career in software development. It's not just code that counts. - -**—[Camilla Conte][1]** - -### Be descriptive and don't assume - -I spend a lot of my time collaborating in the [OpenStack][2] community, and its code reviewers have some fairly exacting standards compared to what I see from other projects "in the wild." - -I'll often spend far longer composing a solid commit message than I do writing the actual code implementation or fix. Sometimes commit messages can end up many times longer than the diffs they're explaining. - -To summarize some of the contributor guidance: - -- Describe why a change is being made, not just what is changing -- The first commit line is the most important (like the subject line of an email) -- Don't assume reviewers understand the original problem you're fixing -- Don't assume the reviewer has access to external web services or the site (summarize defect reports and other relevant discussions) -- Don't assume the code is self-evident and self-documenting (though there is no need to repeat points you also make in your code comments) -- Don't include information only relevant to earlier revisions of the change (we expect contributors to squash revisions together and edit their commit messages accordingly). - -There's a brief section on the topic in the OpenStack Contributors Guide: [https://docs.openstack.org/contributors/common/git.html#commit-messages][3] - -**—[Jeremy Stanley][4]** - -### Your future self will thank you - -I cannot agree more with Jeremy. +1000 - -Jeremy said, "describe why a change is being made, not just what's changing." - -Imagine you're someone else, in a faraway future, trying to work out this commit. - -Put yourself in other people's shoes, as the old saying goes. - -**—[Leigh Morresi][5]** - -### Use the bug ID - -I recommend adding the bug ID at the start of the commit message so that it's easier to track the commits at a later stage using the [`grep` command][6]. - -For example: - -``` -$ git commit -m "BZ#19xxxxx -``` - -To come up with thoughtful commits, consider the following: - -- Why have I made these changes? -- What effect have my changes made? -- Why was the change needed? -- What are the changes in reference to? - -**—[Agil Antony][7]** - -### Tell the whole story - -I like to imagine there is a hidden prefix to every commit message that reads "By applying this." - -A good commit message includes exactly what will happen and why. It is insufficient to merely have the work ticket reference because that decentralizes the information; Git is decentralized. As a software developer, I want to know why the proposed changes are being considered. What specific problem is being addressed? What alternate solutions were considered (and discarded)? What unexpected things were discovered during the creation of the changeset that influenced the current content? - -There's no prize for shortest commit message. Your future self and future colleagues will appreciate you going into depth to explain the problem and why this changeset is the answer. Harness those cooking blogs where there's a five-paragraph life story. Here, however, make the problem the subject of the life story. - -**—[Lisa Seelye][8]** - -### But don't be overly verbose - -A good git commit message contains information about what was done, and nothing else. For instance, if you needed to update the .gitignore, just say "updated .gitignore." Folks can dive into the commit itself for more details. It doesn't need to be verbose. - -A bad commit message is something like, "oh crap" or "try this". Granted, I've been guilty of this, but it doesn't help anyone if they need to look at commits at a glance. - -Rules are very subjective. They can differ from lead to lead and team to team. But at the very least, give some contextual information about the commit. Especially if it's a large one. No one has time to skim through 1000+ files with a heavy change history. - -**—[Miriam Goldman][9]** - -### Use present tense - -I like project manager-styled commit messages written in present and not future terms (for example, "add" instead of "added"). However, it's usually only possible if commits are frequent. There's only so much "how did I do it" you can remember when you're faced with a deadline. Yet, well-written commits not only help collaborators, but are also helpful to the committer in recollecting history. - -**—[Chris Okpada][10]** - -### Don't rely on links - -One thing I like to remind colleagues of is that you're not just explaining to the people who are going to decide whether to approve your commit. You're also explaining to future developers and users who have found this commit in a bisect or blame operation and are trying to understand its relevance. - -If the only context supplied is a link to some external system, and that far in the future the system it links to is no longer in use or has otherwise become inaccessible to that individual, your commit message has been rendered useless and may just as well be blank. - -All too often, I go digging in the Git history of some open source project, and find commit messages which are nothing more than a bug ID or a link to some company's internal and private defect tracker. - -Don't be that project! - -**—[Jeremy Stanley][4]** - -### Clear and concise changelogs - -As a release communications manager, I often read the entire release board. I also met with developers to discuss any areas that weren't clear yet. Then I tested the release early. After that, I would write a release post by sourcing the changelogs and corresponding revised or new content. - -The changelogs are personal reminders for developers, but also have corresponding issues and tickets for them. You should capitalize product names appropriately, use a spell checker, be consistent with punctuation, and sentence structure. The lead developer should proofread these as well. Your customers, that are developers, are reading these. What information should they know before running the update to better serve their customers? - -**—[Courtney Robertson][11]** - -### Be specific - -As a frequent release manager, I like messages that name the component a commit touches, and a brief description of what was changed. Also having a reference back to where the request for this work came from helps to tie fixes together long after we forgot about your clever branch name. - -- "fix fatal error" is not ideal. -- "ISS-304: Fix fatal error in Login Access Control function for users - with the Partner role" is better. -- "ISS-304: Login Access Control: fix fatal error in getPartnerId()" is - better still. - -I can look at the entire relationship between a Git commit, branch, merge commit, and inspect the individual lines and files that were changed. But I don't have that kind of time in the middle of a release. I want to be able to relate back to the source of this work in the project management tool, have some idea of which components are being changed, and in what way. - -**—[Ryan Price][12]** - -### Make it a habit - -My favorite commit that I'm guilty of is, "commit before I switch branches" because I have to work on something else more urgent. Sometimes, I need to commit my current work to a totally different project. My manager's strategy is to have us work as we normally do. But then when we rebase, he wants us to squash commits where it makes sense and write better messages. I can't say we always do this, but his method does make sense. - -I have a lot of "this is broken don't know why" type messages too (haha) where I try things but want to commit that attempt before I try something else in case method A was closer to fixing the issue than method B. Writing code is a hot mess. And I've been writing it for over 10 years. - -**—[RachieVee][13]** - -What commit message advice or tips do you live by? Let us know in the comments. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/git-commit-message - -作者:[AmyJune Hineline][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/amyjune -[b]: https://github.com/lkxed -[1]: https://opensource.com/users/spotlesstofu -[2]: https://opensource.com/resources/what-is-openstack -[3]: https://docs.openstack.org/contributors/common/git.html#commit-messages -[4]: https://opensource.com/users/fungi -[5]: https://opensource.com/users/dgtlmoon -[6]: https://opensource.com/downloads/grep-cheat-sheet -[7]: https://opensource.com/users/agantony -[8]: https://opensource.com/users/lisa -[9]: https://opensource.com/users/miriamgoldman -[10]: https://opensource.com/users/ojchris -[11]: https://opensource.com/users/courtneyrdev -[12]: https://opensource.com/users/liberatr -[13]: https://opensource.com/users/rachievee diff --git a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md new file mode 100644 index 0000000000..f78aab08dc --- /dev/null +++ b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md @@ -0,0 +1,185 @@ +[#]: subject: "11 tips for writing a good Git commit message" +[#]: via: "https://opensource.com/article/22/12/git-commit-message" +[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" +[#]: collector: "lkxed" +[#]: translator: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +编写好 Git 提交消息的 11 个技巧 +====== + +最近,当需要更新时,我一直在密切关注从产品和服务获得的变更日志。以下是一些示例: + +- 修复了一些错误。 +- 进行了一些可访问性改进。 +- 我们已经进行了改进并修复了错误,以实现更顺畅地运行。 + +当我想到我作为一名初级开发人员发出的一些最初的承诺信息时,我不得不沮丧地垂下头: + +- 用鼠标点了一下,现在一切似乎都正常了。 +- 执行了程序员 X 告诉我的操作,现在横幅是蓝色的。 + +这可能令人沮丧!我向我们的贡献者群体提出了以下问题: + +- 什么是好的 Git 提交消息? +- 什么是坏的 Git 提交消息? +- 你认为一个项目应该有哪些关于提交消息所写内容的规则? + +以下是他们的答案: + +### 易阅读的文笔是关键 + +与你写任何东西一样,你应该考虑谁会阅读它。然后相应地调整信息的数量和深度。 + +提高你的自然语言和写作技能对于软件开发的顺利职业生涯至关重要。重要的不仅仅是代码。 + +**—[Camilla Conte][1]** + +### 具有描述性,不要假设 + +我花了很多时间在 OpenStack[2] 社区中进行合作,与我在像“野外”一样随意的其他项目中看到的相比,它的代码审查员有一些相当严格的标准。 + +我撰写一条可靠的提交消息的时间通常要比编写实际的代码实现或修复程序的时间长得多。有时,提交消息所需的时间可能会比它们解释的差异长很多倍。 + +总结一些贡献者指导: + +- 描述为什么要做出改变,而不仅仅是改变了什么 +- 第一个提交行是最重要的(就像电子邮件的主题行) +- 不要自认为审查人员了解你正在修复的原始问题 +- 不要自认为审查者可以访问外部 web 服务或网站(总结缺陷报告和其他相关讨论) +- 不要假设代码是不言自明的和自我记录的(尽管没有必要重复您在代码注释中也提出的观点) +- 不要只包含与更改的早期修订相关的信息(我们希望贡献者将修订压缩在一起,并相应地编辑其提交消息)。 + +《OpenStack 贡献者指南》中有一个关于该主题的简短章节:[https://docs.openstack.org/contributors/common/git.html#commit-messages][3] + +**—[Jeremy Stanley][4]** + +### 你未来的自己会感谢你 + +我非常同意杰里米的观点。1000 份地支持。 + +Jeremy 说:“描述为什么要做出改变,而不仅仅是改变了什么。” + +想象一下,你是旁观者,在遥远的未来,试图理解这个提交。 + +正如老话所说,设身处地为他人着想。 + +**—[Leigh Morresi][5]** + +### 使用 bug 的 ID + +我建议在提交消息的开头添加 bug ID,以便稍后使用 [`grep` 命令][6] 更容易跟踪提交。 + +例如: + +``` +$ git commit -m "BZ#19xxxxx +``` + +要写出深思熟虑的提交,请考虑以下事项: + +- 我为什么要做这些更改? +- 我的更改产生了什么影响? +- 为什么有更改的必要? +- 更改的依据是什么? + +**—[Agil Antony][7]** + +### 讲述整个故事 + +我喜欢想象每个提交消息都有一个隐藏的前缀,上面写着“By applying this(通过应用这个)”。 + +一个好的提交消息包括将要发生的事情以及原因。仅仅有工作任务清单作参考是不够的,因为这分散了信息;Git 是去中心化的。作为一名软件开发人员,我想知道为什么当前要考虑做出更改。正在解决的具体问题是什么?考虑(并放弃)了哪些替代解决方案?在创建变更集的过程中发现了哪些影响当前内容的意外情况? + +缩短提交消息没有什么用。你未来的自己和未来的同事会感激你深入解释问题,以及为什么这个变更集是解决方案。认真学习和利用那些有丰富“生活经验”的“烹饪”博客。然而,在此,仅仅是把生活经验替换成了项目的问题罢了(LCTT 译注:意思是要认真学习和模仿优秀、详细的 commit)。 + +**—[Lisa Seelye][8]** + +### 但不要过于冗长 + +一个好的 git 提交消息包含有关所做操作的信息,而不要包含其他信息。例如,如果您需要更新.gitignore,只需写“updated .gitignore”即可。人们可以自行深入到提交本身中了解更多细节。它不需要冗长。 + +令人反感的提交消息类似于“哦,废话”或“试试这个”。当然,我对此感到内疚,但这对于任何需要看一眼提交的人来说都没有任何帮助。 + +提交信息的规则非常主观。他们可能因领导和团队而异。但至少要提供一些有关提交的上下文信息。特别是如果它是一个大的更改。没有人有时间浏览 1000 多个具有重大更改历史的文件。 + +**—[Miriam Goldman][9]** + +### 使用现在时 + +我喜欢用现在时而不是将来时的术语编写项目经理风格的提交消息(例如,“add”而不是“added”)。然而,这通常只有在频繁提交时才有可能。当你面临最后期限时,你能记住的只有“我是如何做的”而已。然而,写得好的提交不仅有助于合作者,而且有助于提交者回忆历史。 + +**—[Chris Okpada][10]** + +### 不要依赖链接 + +我想提醒同事的一件事是,你不仅仅是向给你的提交作批准的人解释。你还将向未来的开发人员和用户解释,他们会发现这提交有利有弊,或者指责操作,并试图了解其相关性。 + +如果提供的唯一的上下文是指向某个外部系统的链接,并且在未来很长一段时间内,它所链接的系统不再使用,或者该用户无法访问,那么您的提交消息将变得无用,也相当于是空白的。 + +我经常去挖掘一些开源项目的 Git 历史,发现有些提交消息无非就是一个 bug ID,或者是某个公司内部的和专用缺陷跟踪器的链接。 + +不要依赖链接! + +**—[Jeremy Stanley][4]** + +### 清晰简洁的变更日志 + +作为一名发行沟通经理,我经常阅读整个发行版。我还与开发人员会面,讨论任何尚未明确的领域。然后我很早就测试了这个版本。之后,我将通过寻找变更日志和相应的修订或新内容来撰写发布帖子。 + +变更日志是开发人员的个人提醒,但也有相应的提议和问题。您应该适当地将产品名称大写,使用拼写检查器,与标点符号和句子结构保持一致。首席开发人员也应该校对这些。您的客户,即开发人员,正在阅读这些内容。在运行更新之前,他们应该了解哪些信息能更好地为客户服务? + +**—[Courtney Robertson][11]** + +### 具体一点 + +作为一个频繁发布的管理者,我喜欢将组件命名为提交的消息,以及对更改内容的简要描述。在我们忘记了你聪明的分支名称之后,还可以参考一下这项工作的请求来自何处,这有助于将修复程序联系在一起。 + +- “fix fatal error”并不是理想的提交。 + +- “ISS-304: Fix fatal error in Login Access Control function for users with the Partner role”更好。 + +- “ISS-304: Login Access Control: fix fatal error in getPartnerId()”也是更好。 + +我可以查看 Git 提交、分支、合并提交之间的整个关系,并检查更改的各个行和文件。但我在发布过程中没有这样的时间。我希望能够回到项目管理工具中这项工作的来源,了解哪些组件正在被更改,以及以何种方式进行更改。 + +**—[Ryan Price][12]** + +### 让它成为一种习惯 + +我最喜欢犯的错误是“在我切换分支之前提交”,因为我必须处理其他更紧急的事情。有时候,我需要把我目前的工作提交给一个完全不同的项目。我的经理的策略是让我们像平时一样工作。但当我们重新启动时,他希望我们在有意义的地方压缩提交,并编写更好的消息。我不能说我们总是这样做,但他的方法确实有道理。 + +我也有很多“这是坏的,不知道为什么”类型的消息(哈哈),我尝试了一些东西,但想在尝试其他东西之前提交该尝试,以防方法 A 比方法 B 更接近解决问题。我已经写了 10 多年了。 + +**—[RachieVee][13]** + +你生活中的提交信息建议或提示是什么?让我们在评论中知道。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/git-commit-message + +作者:[AmyJune Hineline][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/amyjune +[b]: https://github.com/lkxed +[1]: https://opensource.com/users/spotlesstofu +[2]: https://opensource.com/resources/what-is-openstack +[3]: https://docs.openstack.org/contributors/common/git.html#commit-messages +[4]: https://opensource.com/users/fungi +[5]: https://opensource.com/users/dgtlmoon +[6]: https://opensource.com/downloads/grep-cheat-sheet +[7]: https://opensource.com/users/agantony +[8]: https://opensource.com/users/lisa +[9]: https://opensource.com/users/miriamgoldman +[10]: https://opensource.com/users/ojchris +[11]: https://opensource.com/users/courtneyrdev +[12]: https://opensource.com/users/liberatr +[13]: https://opensource.com/users/rachievee From db3054221199472d359f74e7c76b1d2c9a7ae978 Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Fri, 20 Jan 2023 21:21:51 +0800 Subject: [PATCH 2607/3123] translating --- sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md index 2f59cf6dcc..d241b3a04d 100644 --- a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md +++ b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/java-methods" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8ff00c49bdc1e4e4ef3619844f41aa4e9c06671b Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Fri, 20 Jan 2023 22:22:27 +0800 Subject: [PATCH 2608/3123] translated --- ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ------------------ ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ++++++++++++++++++ 2 files changed, 187 insertions(+), 187 deletions(-) delete mode 100644 sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md create mode 100644 translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md diff --git a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md deleted file mode 100644 index d241b3a04d..0000000000 --- a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md +++ /dev/null @@ -1,187 +0,0 @@ -[#]: subject: "How to use methods in Java" -[#]: via: "https://opensource.com/article/23/1/java-methods" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to use methods in Java -====== - -A method in Java (called a "function" in many other programming languages) is a portion of code that's been grouped together and labeled for reuse. Methods are useful because they allow you to perform the same action or series of actions without rewriting the same code, which not only means less work for you, it means less code to maintain and debug when something goes wrong. - -A method exists within a class, so the standard Java boilerplate code applies: - -``` -package com.opensource.example; - -public class Example { - // code here -} -``` - -A package definition isn't strictly necessary in a simple one-file application like this, but it's a good habit to get into, and most IDEs enforce it. - -By default, Java looks for a `main` method to run in a class. Methods can be made public or private, and static or non-static, but the main method must be public and static for the Java compiler to recognize and utilize it. When a method is public, it's able to be executed from outside the class. To call the `Example` class upon start of the program, its `main` method must be accessible, so set it to `public`. - -Here's a simple demonstration of two methods: one `main` method that gets executed by default when the `Example` class is invoked, and one `report` method that accepts input from `main` and performs a simple action. - -To mimic arbitrary data input, I use an if-then statement that chooses between two strings, based on when you happen to start the application. In other words, the `main` method first sets up some data (in real life, this data could be from user input, or from some other method elsewhere in the application), and then "calls" the `report` method, providing the processed data as input: - -``` -package com.opensource.example; - -public class Example { - public static void main(String[] args) { - // generate some data - long myTime = System.currentTimeMillis(); - String weather; - - if ( myTime%2 == 0 ) { - weather = "party"; - } else { - weather = "apocalypse"; - } - - // call the other method - report(weather); - } - - private static void report(String day) { - System.out.printf("Welcome to the zombie %s\n", day); - } -} -``` - -Run the code: - -``` -$ java ./Example.java -Welcome to the zombie apocalypse -$ java ./Example.java -Welcome to the zombie party -``` - -Notice that there are two different results from the same `report` method. In this simple demonstration, of course, there's no need for a second method. The same result could have been generated from the if-then statement that mimics the data generation. But when a method performs a complex task, like resizing an image into a thumbnail and then generating a widget on screen using that resized image, then the "expense" of an additional component makes a lot of sense. - -### When to use a Java method - -It can be difficult to know when to use a method and when to just send data into a [Java Stream][1] or loop. If you're faced with that decision, the answer is usually to use a method. Here's why: - -- Methods are cheap. They don't add processing overhead to your code. -- Methods reduce the line count of your code. -- Methods are specific. It's usually easier to find a method called `resizeImage` than it is to find code that's hidden in a loop somewhere in the function that loads images from the drive. -- Methods are reusable. When you first write a method, you may _think_ it's only useful for one task within your application. As your application grows, however, you may find yourself using a method you thought you were "done" with. - -### Functional vs. object-oriented programming - -Functional programming utilizes methods as the primary construct for performing tasks. You create a method that accepts one kind of data, processes that data, and outputs new data. String lots of methods together, and you have a dynamic and capable application. Programming languages like C and [Lua][2] are examples of this style of coding. - -The other way to think of accomplishing tasks with code is the object-oriented model, which Java uses. In object-oriented programming, methods are components of a template. Instead of sending data from method to method, you create objects with the option to alter them through the use of their methods. - -Here's the same simple zombie apocalypse demo program from an object-oriented perspective. In the functional approach, I used one method to generate data and another to perform an action with that data. The object-oriented equivalent is to have a class that represents a work unit. This example application presents a message-of-the-day to the user, announcing that the day brings either a zombie party or a zombie apocalypse. It makes sense to program a "day" object, and then to query that day to learn about its characteristics. As an excuse to demonstrate different aspects of object-oriented construction, the new sample application will also count how many zombies have shown up to the party (or apocalypse). - -Java uses one file for each class, so the first file to create is `Day.java`, which serves as the Day object: - -``` -package com.opensource.example; - -import java.util.Random; - -// Class -public class Day { - public static String weather; - public int count; - -// Constructor - public Day() { - long myTime = System.currentTimeMillis(); - - if ( myTime%2 == 0 ) { - weather = "paradise"; - } else { - weather = "apocalypse"; - } - } - -// Methods - public String report() { - return weather; - } - - public int counter() { - Random rand = new Random(); - count = count + rand.nextInt(100); - - return(count); - } -} -``` - -In the `Class` section, two fields are created: `weather` and `count`. Weather is static. Over the course of a day (in this imaginary situation), weather doesn't change. It's either a party or an apocalypse, and it lasts all day. The number of zombies, however, increases over the course of a day. - -In the `Constructor` section, the day's weather is determined. It's done as a [constructor][3] because it's meant to only happen once, when the class is initially invoked. - -In the `Methods` section, the `report` method only returns the weather report as determined and set by the constructor. The `counter` method, however, generates a random number and adds it to the current zombie count. - -This class, in other words, does three very different things: - -- Represents a "day" as defined by the application. -- Sets an unchanging weather report for the day. -- Sets an ever-increasing zombie count for the day. - -To put all of this to use, create a second file: - -``` -package com.opensource.example; - -public class Example { - public static void main(String[] args) { - Day myDay = new Day(); - String foo = myDay.report(); - String bar = myDay.report(); - - System.out.printf("Welcome to a zombie %s\n", foo); - System.out.printf("Welcome to a zombie %s\n", bar); - System.out.printf("There are %d zombies out today.\n", myDay.counter()); - System.out.printf("UPDATE: %d zombies. ", myDay.counter()); - System.out.printf("UPDATE: %d zombies. ", myDay.counter()); - } -} -``` - -Because there are now two files, it's easiest to use a Java IDE to run the code, but if you don't want to use an IDE, you can create your own [JAR file][4]. Run the code to see the results: - -``` -Welcome to a zombie apocalypse -Welcome to a zombie apocalypse -There are 35 zombies out today. -UPDATE: 67 zombies. UPDATE: 149 zombies. -``` - -The "weather" stays the same regardless of how many times the `report` method is called, but the number of zombies on the loose increases the more you call the `counter` method. - -### Java methods - -Methods (or functions) are important constructs in programming. In Java, you can use them either as part of a single class for functional-style coding, or you can use them across classes for object-oriented code. Both styles of coding are different perspectives on solving the same problem, so there's no right or wrong decision. Through trial and error, and after a little experience, you learn which one suits a particular problem best. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/java-methods - -作者:[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/article/20/1/javastream -[2]: https://opensource.com/article/22/11/lua-worth-learning -[3]: https://opensource.com/article/19/6/what-java-constructor -[4]: https://opensource.com/article/21/8/fastjar - diff --git a/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md new file mode 100644 index 0000000000..494d882dd3 --- /dev/null +++ b/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -0,0 +1,187 @@ +[#]: subject: "How to use methods in Java" +[#]: via: "https://opensource.com/article/23/1/java-methods" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Java 中使用方法 +====== + +Java 中的方法(在许多其他编程语言中称为“函数”)是被组合在一起并标记为可重用的代码的一部分。方法很有用,因为它们允许您在不重写相同代码的情况下执行相同的操作或一系列操作,这不仅意味着您的工作量减少,还意味着出现问题时需要维护和调试的代码减少。 + +类中存在一个方法,因此标准 Java 样板代码适用: + +``` +package com.opensource.example; + +public class Example { + // 在此写代码 +} +``` + +在这样一个简单的单文件应用程序中,包定义并不是绝对必要的,但它是一个很好的习惯,而且大多数 IDE 都强制执行它。 + +默认情况下,Java 会寻找在类中运行的“main”方法。方法可以是公有的或私有的,也可以是静态的或非静态的,但 main 方法必须是公有的和静态的,Java 编译器才能识别和使用它。当方法是公有的时,它可以从类外部执行。要在程序启动时调用“Example”类,其“main”方法必须是可访问的,因此将其设置为“public”。 + +下面是两个方法的简单演示:一个“main”方法在调用“Example”类时默认执行,另一个“report”方法接受“main”的输入并执行简单操作。 + +为了模拟任意数据输入,我使用了 if-then 语句,该语句根据您启动应用程序的时间在两个字符串之间进行选择。换句话说,“main”方法首先设置一些数据(在现实生活中,这些数据可以来自用户输入,也可以来自应用程序其他地方的其他方法),然后“调用”“report”方法,将处理后的数据作为输入提供: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + // 生成一些数据 + long myTime = System.currentTimeMillis(); + String weather; + + if ( myTime%2 == 0 ) { + weather = "party"; + } else { + weather = "apocalypse"; + } + + // 调用其他方法 + report(weather); + } + + private static void report(String day) { + System.out.printf("Welcome to the zombie %s\n", day); + } +} +``` + +运行代码: + +``` +$ java ./Example.java +Welcome to the zombie apocalypse +$ java ./Example.java +Welcome to the zombie party +``` + +请注意,同一“report”方法有两个不同的结果。当然,在这个简单的演示中,不需要第二种方法。模拟数据生成的 if-then 语句可能生成了相同的结果。但是,当一个方法执行一项复杂的任务时,比如将图像调整为缩略图,然后使用调整后的图像在屏幕上生成小部件,那么附加组件的“费用”就很有意义了。 + +### 何时使用 Java 方法 + +很难知道何时使用方法,何时只将数据发送到 [Java 流][1]或循环中。如果你面临这个决定,答案通常是使用一种方法。原因如下: + +- 方法开销少。它们不会给代码增加处理开销。 +- 方法减少代码的行数。 +- 方法是特定的。查找名为“resizeImage”的方法通常比查找隐藏在从驱动器加载图像的函数中某个循环中的代码更容易。 +- 方法是可重用的。当您第一次编写方法时,您可能会 _认为_ 它只对应用程序中的一个任务有用。然而,随着应用程序的编写,您可能会发现自己正在使用一种您认为“已完成”的方法。 + +### 函数式编程与面向对象编程 + +函数式编程利用方法作为执行任务的主要构造。创建一个方法,该方法接受一种数据,处理该数据,并输出新数据。将许多方法串在一起,您就拥有了一个动态且功能强大的应用程序。像 C 和 [Lua][2] 这样的编程语言就是这种编码风格的例子。 + +用代码完成任务的另一种方式是 Java 使用的面向对象模型。在面向对象编程中,方法是模板的组成部分。您可以创建对象,而不是将数据从一个方法发送到另一个方法,并可以通过使用它们的方法来更改它们。 + +从面向对象的角度来看,这是一个简单的 zombie apocalypse(僵尸末日)演示程序。在函数方法中,我使用一种方法生成数据,另一种方法使用该数据执行操作。面向对象的等价物是具有表示工作单元的类。这个示例应用程序向用户显示一条当天的消息,宣布这一天会有 zombie party(僵尸派对)或 zombie apocalypse。编写一个“day”对象,然后查询该对象以了解其特性是有意义的。作为演示面向对象构造的不同方面的借口,新的示例应用程序还将统计有多少僵尸出现在 party 上(或 apocalypse)。 + +Java 为每个类使用一个文件,因此要创建的第一个文件是“Day.Java”,它用作 Day 对象: + +``` +package com.opensource.example; + +import java.util.Random; + +// 类 +public class Day { + public static String weather; + public int count; + +// 构造方法 + public Day() { + long myTime = System.currentTimeMillis(); + + if ( myTime%2 == 0 ) { + weather = "paradise"; + } else { + weather = "apocalypse"; + } + } + +// 方法 + public String report() { + return weather; + } + + public int counter() { + Random rand = new Random(); + count = count + rand.nextInt(100); + + return(count); + } +} +``` + +在“类”部分中,创建了两个域:“weather”和“count”。weather 是静态的。在一天的过程中(在这种假想的情况下),weather 不会改变。要么是 party,要么是 apocalypse,持续了一整天。然而,僵尸的数量在一天中会增加。 + +在“构造方法”部分,确定当天的天气。它是作为一个 [构造方法][3] 完成的,因为它只在类最初被调用时发生一次。 + +在“方法”部分,“report”方法只返回由构造方法确定和设置的天气报告。然而,“counter”方法生成一个随机数,并将其添加到当前僵尸计数中。 + +换句话说,这个类做了三件不同的事情: + +- 表示应用程序定义的“day”。 +- 设置当天不变的天气报告。 +- 设置一天中不断增加的僵尸数量。 + +要使用这所有,请创建第二个文件: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + Day myDay = new Day(); + String foo = myDay.report(); + String bar = myDay.report(); + + System.out.printf("Welcome to a zombie %s\n", foo); + System.out.printf("Welcome to a zombie %s\n", bar); + System.out.printf("There are %d zombies out today.\n", myDay.counter()); + System.out.printf("UPDATE: %d zombies. ", myDay.counter()); + System.out.printf("UPDATE: %d zombies. ", myDay.counter()); + } +} +``` + +因为现在有两个文件,所以使用 Java IDE 运行代码是最简单的,但是如果不想使用 IDE,可以创建自己的 [JAR 文件][4]。运行代码以查看结果: + +``` +Welcome to a zombie apocalypse +Welcome to a zombie apocalypse +There are 35 zombies out today. +UPDATE: 67 zombies. UPDATE: 149 zombies. +``` + +无论调用“report”方法多少次,“weather”都保持不变,但调用“counter”方法的次数越多,僵尸的数量就会增加。 + +### Java 方法 + +方法(或函数)是编程中的重要组成。在 Java 中,您可以将它们作为函数式编程的单个类的一部分使用,也可以在面向对象编程的类之间使用它们。两种类型的编程对于解决同一个问题有不同的视角,因此没有对与错之分。通过反复尝试,积累一点经验,你会知道哪一个最适合某个特定的问题。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-methods + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者 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/article/20/1/javastream +[2]: https://opensource.com/article/22/11/lua-worth-learning +[3]: https://opensource.com/article/19/6/what-java-constructor +[4]: https://opensource.com/article/21/8/fastjar + From f0a7360d559347dca4dd6bcc03a0dba5778c934d Mon Sep 17 00:00:00 2001 From: Cubik Date: Fri, 20 Jan 2023 09:35:35 -0500 Subject: [PATCH 2609/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?11=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md (100%) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md similarity index 100% rename from sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md rename to translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md From 459607a7c0dd5561bbef340cf5cc239125efe202 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 11:57:02 +0800 Subject: [PATCH 2610/3123] R @Cubik65536 --- ...️ 11 New Distros to look forward to in 2023.md | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 2b86065ffe..d460e07895 100644 --- a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -3,26 +3,26 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 2023 年值得期待的 11 个新发行版 ====== -你对 2023 年有什么期待?试试这些发行版吧! +> 你对 2023 年有什么期待?试试这些发行版吧! ![2023 年值得期待的 11 个新发行版][1] 是时候向 2022 年说再见了!📆 -2022 年有很多发行版发布,有些比其他的更出色。 +2022 年有很多发行版发布,其中有一些非常出色。 -随着更加关注用户体验和性能方面的趋势,Linux 发行版在过去的一年中有了显著的发展。 +随着人们越来越关注用户体验和性能,Linux 发行版在过去的一年中有了显著的发展。 -对于你,最终用户,你现在有几个选择。你可以尝试一些 [对初学者友好的选项][2] 或者尝试一些 [高级用户的发行版][3]。 +对于你我这样的最终用户,可以有几个选择。你可以尝试一些 [对初学者友好的选项][2] 或者尝试一些 [面向资深用户的发行版][3]。 -在本文中,我将重点介绍一些你可以尝试的新发行版。这些发行版可能不一定能取代现有的流行发行版。但是,如果你想尝试一些新的东西,可以随意浏览列表。 +在本文中,我将重点介绍一些你可以尝试一下看看的新发行版。这些发行版可能不一定能取代现有的流行发行版。但是,如果你想尝试一些新的东西,可以试试列表中的这些。 所以,你在 2023 年可以期待什么?🤔 @@ -30,183 +30,183 @@ > 💡 新的发行版可能不适合生产环境。如果你不介意尝试新的东西,可以尝试这些选项。 -### 1. Vanilla OS +### 1、Vanilla OS -![vanilla os][4] +![Vanilla OS][4] -Ubuntu 的发行版,是 [Bottles][5] 的创建者 Mirko Brombin 的心血结晶。 +Vanilla OS 是一个基于 Ubuntu 的发行版,它是 [Bottles][5] 的创建者 Mirko Brombin 的心血结晶。 -它旨在提供一个具有**干净,原生的 GNOME 体验,以及按需不变性**和优秀的首次安装体验。 +它旨在提供一个具有**干净、原生的 GNOME 体验,以及按需不变性on-demand immutability**和优秀的首次安装体验。 -> LCTT 译注:按需不变性(on-demand immutability),指一个可以按需启用的功能,用于确保系统文件不会被随意更新。 +> LCTT 译注:按需不变性on-demand immutability,指一个可以按需让文件不可更改的功能,用于确保系统文件不会被随意更新。 可参考 [此链接](https://documentation.vanillaos.org/docs/almost/)。 如果你想尝试一些新的东西并且想尝试一下按需不变性这个令 Vanilla OS 如此独特的功能,可以尝试一下这个发行版。 -它还没有,在一段时间内也不会收到稳定版本,并且准备在 2023 年收到许多改进。 +它还没有稳定版本,在一段时间内也不会有,预计将在 2023 年进行许多改进。 -[Vanilla OS][6] +> **[Vanilla OS][6]** -### 2. XeroLinux +### 2、XeroLinux -![xeroxlinux][7] +![XeroLinux][7] -Steve,也就是 TechXero,开始了 [XeroLinux][8] 作为一个兴趣项目,这个项目并不是一个主流发行版,也没有各种花里胡哨的东西。 +这个兴趣项目 [XeroLinux][8] 是 Steve(即 TechXero)启动的,这个项目并不打算成为一个主流发行版,也没有各种花里胡哨的东西。 -Arch Linux 的 **'养眼' 版本** 提供了令人愉快的开箱即用体验和一些令人兴奋的功能。 +这个 “养眼” 版的 Arch Linux 衍生版提供了令人愉快的开箱即用体验和一些令人兴奋的功能。 -如果你想要一个更加易用的 Arch Linux 体验,可以尝试这个。 +如果你希望获得更加易用的 Arch Linux 体验,可以尝试这个。 **从 2023 年 1 月起**,XeroLinux 将切换到每月发布的计划。所以,你可以期待 2023 年有很多更新! -[XeroLinux][9] +> **[XeroLinux][9]** -### 3. Crystal Linux +### 3、Crystal Linux -![crystal linux][10] +![Crystal Linux][10] Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提供一个易于使用的桌面体验,以及现代 Linux 技术**。 在目前的状态下,它可能不适合新手,而具有 Linux 使用经验的人更有可能喜欢它。 -所以,就目前而言,我建议已经熟悉 Linux 的用户尝试一下 Crystal Linux。 +所以,就目前而言,我建议已经熟悉 Linux 的用户可以尝试一下 Crystal Linux。 我预计 Crystal Linux 将在 2023 年有一个稳定版本,该版本将具有许多功能和改进,而这些功能和改进都是基于目前可用的 [beta 版本][12]。 -[Crystal Linux][12] +> **[Crystal Linux][12]** -### 4. TUXEDO OS +### 4、TUXEDO OS -![tuxedo os][13] +![TUXEDO OS][13] -[TUXEDO OS][14] 是一个由 TUXEDO Computers(一个专注 Linux 的硬件制造商)提供的基于 Ubuntu 的发行版。 +[TUXEDO OS][14] 是一个由 TUXEDO 计算机公司(一个专注 Linux 的硬件制造商)提供的基于 Ubuntu 的发行版。 -它提供了 KDE Plasma 桌面环境,还有一些额外的功能,例如 **TUXEDO Control Center** 用于微调硬件,以及 **TUXEDO Tomte**,一个用于解决驱动程序与缺少软件包的问题的配置服务。 +它提供了 KDE Plasma 桌面环境,还有一些额外的功能,例如用于微调硬件的 **TUXEDO 控制中心**,以及一个用于解决驱动程序与缺少软件包的问题的配置服务 **TUXEDO Tomte**。 如果你想要一个**不同的 KDE 驱动的体验**,我建议你尝试一下。 -最开始,它仅仅被用作 TUXEDO 笔记本和台式电脑的预装系统提供。 +最开始,它只作为预装系统在 TUXEDO 的笔记本和台式电脑上提供。 -但是后来,它在 2022 年 9 月收到了一个通用版本,称为“TUXEDO OS 1”。它将在 2023 年收到许多更新。 +但是后来,它在 2022 年 9 月获得了一个通用版本,称为 “TUXEDO OS 1”。它将在 2023 年获得大量更新。 -[TUXEDO OS][15] +> **[TUXEDO OS][15]** -### 5. EuroLinux +### 5、EuroLinux -![euro linux][16] +![EuroLinux][16] -一个具有**企业级特性**的,基于 RHEL 的发行版就是 [EuroLinux][17]。它在一个可靠的包中提供了稳定性和安全性。 +[EuroLinux][17] 是一个具有**企业级特性**的、基于 RHEL 的发行版。它以可靠的软件包提供了稳定性和安全性。 -基于 **RHEL 9**,它可以提供与其他 [基于 RHEL 的服务器发行版][18](如 Rocky Linux,CentOS,AlmaLinux 等)的无缝兼容性。 +它基于 **RHEL 9**,可以提供与其他 [基于 RHEL 的服务器发行版][18](如 Rocky Linux,CentOS,AlmaLinux 等)的无缝兼容性。 -它旨在通过在屏幕底部实现半透明菜单栏,以熟悉的用户界面布局吸引 Windows 和 macOS 用户。 +它旨在以熟悉的用户界面布局吸引 Windows 和 macOS 用户,在屏幕底部提供了一个半透明的菜单栏。 -你应该尝试一下,因为整体包都很合适,可以同时满足 Linux 和 Windows/macOS 用户。 +你应该尝试一下,因为整个软件包相当充分,可以同时满足 Linux 和 Windows/macOS 用户的需要。 它现在已经发布了稳定版本,也在 2023 年有更新计划。 -[EuroLinux Desktop][19] +> [EuroLinux][19] -### 6. Zinc +### 6、Zinc -![zinc][20] +![Zinc][20] -[Zinc][21] 是一个 **基于 Ubuntu 的发行版**,它已经为提供独特的体验进行了调整。现有的 Ubuntu 用户可能会惊讶于它所提供的内容。 +[Zinc][21] 是一个 **基于 Ubuntu 的发行版**,经过了调整后提供了一个独特的体验。现有的 Ubuntu 用户可能会惊讶于它所提供的内容。 -基于 **Xubuntu** 的最新 LTS 版本,使用了 XFCE 桌面环境,并对其进行了许多改进,例如集成的 Linux AppImage 支持,deb-get 包安装程序,BTRFS 作为默认文件系统等。 +它基于 **Xubuntu** 的最新 LTS 版本,使用了 XFCE 桌面环境,并对其进行了许多改进,例如集成的 Linux AppImage 支持、deb-get 包安装程序、BTRFS 作为默认文件系统等。 如果你正确的配置了它,它可以成为你的日用操作系统的替代品。 -它遵循稳定的发布模式,因此您可以期待 2023 年的重大更新! +它遵循稳定的发布模式,因此你可以期待 2023 年的重大更新! -[Zinc][21] +> **[Zinc][21]** -### 7. CachyOS +### 7、CachyOS -![cachyos][22] +![CachyOS][22] [CachyOS][23] 尝试使 **Arch Linux 变得对初学者更加友好**,让任何人都可以使用。它很受欢迎,因为它具有高度的可定制性,而且还拥有最新的软件。 -它旨在为您提供一个快速、安全且易于使用的操作系统。 +它旨在为你提供一个快速、安全且易于使用的操作系统。 该操作系统适用于想要试验和尝试新事物的用户。 -CachyOS 是一个滚动发布的发行版,因此您可以期待它在 2023 年收到大量更新。 +CachyOS 是一个滚动发布的发行版,因此你可以期待它在 2023 年获得大量更新。 -[CachyOS][23] +> **[CachyOS][23]** -### 8. risiOS +### 8、risiOS -![risios][24] +![risiOS][24] -在基于 Arch 和 Ubuntu 的 Linux 发行版的海洋中,[risiOS][25]是一个少见的情况。 +在基于 Arch 和 Ubuntu 的 Linux 发行版的海洋中,[risiOS][25] 是一道难得的风景。 该项目基于 Fedora Linux,其起源于美国西雅图。 -它使用 **GNOME 桌面环境** 以为用户提供了一个高度可定制的体验,同时还提供了 **自定义的 ZSH 版本**。 +它使用 **GNOME 桌面环境** 为用户提供了一个高度可定制的体验,同时还提供了 **自定义的 ZSH 版本**。 如果你希望尝试一个基于 Fedora 的发行版,这可能是你的新选择! -risiOS 会在稳定版本中间推送一些小更新。在 2023 年,它还有更多的东西可以提供给你。 +risiOS 会在稳定版本间隔中推送一些小更新。在 2023 年,它还有更多的东西可以提供给你。 -[risiOS][25] +> **[risiOS][25]** -### 9. Exodia OS +### 9、Exodia OS -![exodia os][26] +![Exodia OS][26] -#$**!又是一个基于 Arch 的 Linux 发行版? + #$**!又是一个基于 Arch 的 Linux 发行版? -是的。🤭 好吧,看起来今年我们已经有足够多的基于 Arch 的发行版了,这并不一定是坏事! +是的。🤭 好吧,看起来今年我们已经受够了基于 Arch 的发行版了,这并不一定是坏事! 认识一下 [Exodia OS][27],一个基于 Arch 的 Linux 发行版,旨在为安全领域的用户提供高度可定制的体验。 -其功能包括预安装的**适用于所有网络安全领域的工具、命令行界面应用、ElKowars wacky widgets (EWW)、zsh 等**。 +其功能包括**为各种网络安全领域预装的工具、命令行界面应用、ElKowars wacky widgets (EWW)、Zsh 等**。 如果你是一个网络安全专家或爱好者,你可以试试! -他们为三个不同的使用场景提供了三个版本。您可以期待他们在 2023 年继续推送必要的更新和功能添加。 +他们为三个不同的使用场景提供了三个版本。你可以期待他们在 2023 年继续推送必要的更新和功能添加。 -[Exodia OS][27] +> **[Exodia OS][27]** -### 10. Kumandar Linux +### 10、Kumandar Linux -![kumander linux][28] +![Kumandar Linux][28] 乍一看,你可能会认为这是 Windows 7,但如果仔细观察,你会发现这是 [Kumandar Linux][29]。 -它基于**Debian 11,并使用自定义的 XFCE 版本**。 +它基于**Debian 11,并使用自定义的 XFce 版本**。 -该名称在中文中的含义为 “指挥官”,并致敬了开发人员的第一台电脑 [Commodore VIC20][30]。 +该名称在中文中的含义为 “指挥官”,以向开发者的第一台电脑 [Commodore VIC20][30] 致敬。 如果你喜欢 Windows 7,但想在 Linux 上体验同样的体验,那么你可以试试! -目前,该系统只发布了发布候选版本。但是,您可以期待在 2023 年发布稳定版本,希望如此! +目前,该系统只发布了早期的候选版本。但是,你可以期待在 2023 年发布稳定版本,希望如此! -[Kumander][29] +> **[Kumander][29]** -### 11. Ubuntu Unity +### 11、Ubuntu Unity -![ubuntu unity][31] +![Ubuntu Unity][31] -[今年早些时候][32] 宣布为 Ubuntu 的官方版本,Ubuntu Unity 是 Ubuntu 的混合版本。 +[今年早些时候][32],Ubuntu Unity 被宣布为 Ubuntu 的官方版本,是 Ubuntu 的一个翻版。 -它使用了 2010-2017 年 Ubuntu 中使用的 Unity 桌面界面,该界面后来被 GNOME 取代。 +它使用了 2010 - 2017 年间 Ubuntu 中使用的 Unity 桌面界面,该界面后来被 Canonical 使用 GNOME 取代。 开发工作如火如荼,年轻的首席开发人员正在推动更新和增加新功能。 想要尝试不同风格的 Ubuntu 的用户可以试试这个系统。它提供了 LTS 和非 LTS 版本。 -[Ubuntu Unity][33] +> **[Ubuntu Unity][33]** -**所以,总结一下。** +### 总结 即使有了这份全面的清单,我也可能遗漏了一些。 🤔 但是。 -或许 2023 年会有惊喜占据头版,或者一些现有的发行版会尝试一些不同的东西。 +或许 2023 年会有惊喜的发布占据头版,或者一些现有的发行版会尝试一些不同的东西。 -Until then. # 不太确定如何翻译 +但在那之前, _💬 请告诉我你在 2023 年期待着哪些发行版?_ @@ -217,7 +217,7 @@ via: https://news.itsfoss.com/new-distros-2023/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 35681358bfe5a33183c85dfb518b137f75e055ad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 11:57:47 +0800 Subject: [PATCH 2611/3123] P @Cubike65536 https://linux.cn/article-15463-1.html --- ...221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md (99%) diff --git a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md similarity index 99% rename from translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md rename to published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index d460e07895..0176293a36 100644 --- a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Cubik65536" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15463-1.html" 2023 年值得期待的 11 个新发行版 ====== From 084dcb645ac9784071183e68292a729972e6f082 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 12:02:21 +0800 Subject: [PATCH 2612/3123] R --- ...20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 0176293a36..f519817f2e 100644 --- a/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -104,7 +104,7 @@ Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提 它现在已经发布了稳定版本,也在 2023 年有更新计划。 -> [EuroLinux][19] +> **[EuroLinux][19]** ### 6、Zinc From 057bbe15a7162828903959400c9164970d364d99 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 12:32:00 +0800 Subject: [PATCH 2613/3123] RP @geekpi https://linux.cn/article-15464-1.html --- ...rs GNOME Extension to help Colorblind Users.md | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) rename {translated/tech => published}/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md (70%) diff --git a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md similarity index 70% rename from translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md rename to published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md index 1efd79e614..3aeae6f96a 100644 --- a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ b/published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -3,38 +3,46 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15464-1.html" Colorblind Filters:帮助色盲用户的 GNOME 扩展 ====== -**一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多选项。** +![][0] + +> 一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多调整选项。 无障碍是计算和操作系统的一个重要方面。它包括对视力障碍、色盲和许多其他健康症状的管理设置。流行的 Linux 桌面环境,如 GNOME 和 KDE Plasma,具有无障碍设置,以帮助所有这些情况。 感谢 GNOME 扩展生态系统,有大量的专门扩展可以帮助这些用户。我遇到的其中一个扩展是[“Colorblind Filters”][1]。 - ### Colorblind Filters – GNOME 扩展 根据维基百科,_"色盲通常涉及无法区分红色和绿色的深浅。遗传性色盲症没有治疗方法。如果色盲是由其他疾病引起的,治疗潜在的原因会有帮助。"_。 -因此,你有选项来调整你的 Linux 桌面上的设置是很重要的。 +因此,你有可以调整你的 Linux 桌面设置的选项是很重要的。 #### 设置扩展程序和 Flatpak -首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何[设置 flatpak][2]和启用 [GNOME 扩展][3]的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 +首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何 [设置 flatpak][2] 和启用 [GNOME 扩展][3] 的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 ``` -sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +sudo apt install flatpak +sudo apt install gnome-software-plugin-flatpak +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +reboot + ``` 对于 Fedora 用户,使用以下命令。 ``` -sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +sudo dnf install flatpak +sudo dnf install gnome-software-plugin-flatpak +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +reboot ``` 完成后,安装扩展管理器: @@ -53,19 +61,16 @@ flatpak install com.mattjakeman.ExtensionManager ![Colorblind Filters 扩展托盘图标][5] -右键点击眼睛图标以获得更多设置。这个扩展带来了色盲收集、模拟和额外选项的所有必要定制。目前有以下选项: - -- 红色盲 -- 绿色盲 -- 蓝黄色盲 +右键点击眼睛图标以获得更多设置。这个扩展带来了色盲集合、模拟和额外选项的所有必要定制。目前有以下选项: - 纠正和模拟(具有高对比度) - -- GBR 和 BRG 的通道混合器 -- 亮度反转 -- 颜色反转 - + - 红色盲 + - 绿色盲 + - 蓝黄色盲 - 额外的调整 + - GBR 和 BRG 的通道混合器 + - 亮度反转 + - 颜色反转 ![Colorblind Filters - 选项][6] @@ -73,9 +78,9 @@ flatpak install com.mattjakeman.ExtensionManager ### 总结 -我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如“[Accessible Coconut][7]”,它是为专门的需求而建立的。 +我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如 “[Accessible Coconut][7]”,它是为专门的需求而建立的。 -我希望 Colorblind gnome 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 +我希望 Colorblind GNOME 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 干杯。 @@ -86,7 +91,7 @@ via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ 作者:[Arindam][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/) 荣誉推出 @@ -99,3 +104,4 @@ via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ [5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif [6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg [7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/21/122942m49s8o25s9ai6szs.jpg \ No newline at end of file From 27837a313a853bd4175cdd132e4b44e994d08fa6 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Sat, 21 Jan 2023 13:03:43 +0800 Subject: [PATCH 2614/3123] translated --- ...⭐️ Battle of the Texts and the Unicode Savior.md | 154 +++++++++--------- 1 file changed, 78 insertions(+), 76 deletions(-) diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index dc3b81881c..a3229479d0 100644 --- a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -7,127 +7,129 @@ [#]: publisher: " " [#]: url: " " -Battle of the Texts and the Unicode Savior +文字间的战斗与其救世主 Unicode ====== -We all know how to type text on the keyboard. Don’t we? +我们都知道如何从键盘输入文字,不是吗? -So, may I challenge you to type that text in your favorite text editor: +那么,允许我挑战你在你最爱的文本编辑器中输入这段文字: ![«Ayumi moved to Tokyo in 1993 to pursue her career» said Dmitrii][1] -This text is challenging to type since it contains: +这段文字难以被输入因为它包含着: -- typographical signs not directly available on the keyboard, -- hiragana Japanese characters, -- the name of the Japanese capital written with a macron on top of the two letters “o” to comply with the Hepburn romanization standard, -- and finally, the first name Dmitrii written using the Cyrillic alphabet. +- 键盘上没有的印刷符号, +- 平假名日文字符, +- 为符合平文式罗马字标准,日本首都的名字中的头顶长音符号两个字母 "o", +- 以及最后,用西里尔字母拼写的名字德米特里。 -No doubt, writing such a sentence on early computers would have been simply impossible. Because computers used limited character sets, unable to let coexist several writing systems. But today such limitations are lifted as we will see in this article. +毫无疑问,想要在早期的电脑中输入这样的句子是不可能的。这是因为早期电脑所使用的字符集有限,无法兼容多种书写系统。而如今类似的限制已不复存在,马上我们就能在文中看到。 -### How do computers store text? +### 电脑是如何储存文字的? -Computers stores characters as numbers. And they use tables to map those numbers to the glyph used to represent them. +计算机将字符作为数字储存。它们再通过表格将这些数字与含有意义的字形一一对应。 -For a long time, computers stored each character as a number between 0 and 255 (which fits exactly one byte). But that was far from being sufficient to represent the whole set of characters used in human writing. So, the trick was to use a different correspondence table depending on where in the world you lived. +在很长一段时间里,计算机将每个字符作为 0 到 255 之间的数字储存(这正好是一个字节的长度)。但这用来代表人类书写所用到的全部字符是远远不够的。而解决这个问题的诀窍在于,取决于你住在地球上的哪一块区域,系统会分别使用不同的对照表。 -Here is the [ISO 8859-15][2] correspondence table commonly used in France: +这里有一张在法国常被广泛使用的对照表 [ISO 8859-15][2]: ![The ISO 8859-15 encoding][3] -But if you lived in Russia, your computer would have probably used the [KOI8-R][4] or [Windows-1251][5] encoding instead. Let’s assume that later was used: +如果你住在俄罗斯,你的电脑大概会使用 [KOI8-R][4] 或是 [Windows-1251][5] 来进行编码。现在让我们假设我们在使用后者: ![The Windows-1251 encoding is a popular choice to store text written using the Cyrillic alphabets][6] -For numbers lower than 128, the two tables are identical. This range is corresponding to the [US-ASCII][7] standard, some kind of minimum-compatible set between characters tables. But beyond 128, the two tables are completely different. +对于 128 之前的数字,两张表格是一样的。这个范围与 [US-ASCII][7] 相对应,这是不同字符表格之间的最低兼容性。而对于 128 之后的数字,这两张表格则完全不同了。 -For example, according to Windows-1251, the string _“said Дмитрий”_ is stored as: +比如,依据 Windows-1251,字符串 _“said Дмитрий”_ 会被储存为: ``` 115 97 105 100 32 196 236 232 242 240 232 233 ``` -To follow a common practice in computer sciences, those twelve numbers can be rewritten using the more compact hexadecimal notation: +按照计算机科学的常规方法,这十二个数字可被写成更加紧凑的十六进制: ``` 73 61 69 64 20 c4 ec e8 f2 f0 e8 e9 ``` -If Dmitrii sends me that file, and I open it I might end up seeing that: +如果德米特里发给我这份文件,我在打开后可能会看到: ``` said Äìèòðèé ``` -The file _appears_ to be corrupted. But it isn’t. The data— that is the _numbers_–stored in that file don’t have changed. As I live in France, my computer has _assumed_ the file to be encoded as ISO8859-15. And it displayed the characters _of that table_ corresponding to the data. And not the character of the encoding table used when the text was originally written. +这份文件_看起来_被损坏了,实则不然。这些储存在文件里的数据,即数字,并没有发生改变。被显示出的字符与_另一张表格_中的数据相对应,而非文字最初被写出来时所用的编码表。 -To give you an example, take the character Д. It has the numeric code 196 (c4) according to Windows-1251. The only thing stored in the file is the number 196. But that same number corresponds to Ä according to ISO8859-15. So my computer wrongly believed it was the glyph intended to be displayed. +让我们来举一个例子,就以字符 Д 为例。按照 Windows-1251,Д 的数字编码为 196 (c4)。储存在文件里的只有数字 196。而正是这同样的数字在 ISO8859-15 中与 Ä 相对应。这就是为什么我的电脑错误地认为字形 Ä 就是应该被显示的字形。 ![When the same text file is written then read again but using a different encoding][8] -As a side note, you can still occasionally see an illustration of those issues on ill-configured websites or in email send by [mail user agents][9] making false assumptions about the character encoding used on the recipient’s computer. Such glitches are sometimes nicknamed [mojibake][10]. Hopefully, this is less and less frequent today. +多提一句,你依然可以时不时地看到一些错误配置的网站展示,或由[用户邮箱代理][9]发出的对收件人电脑所使用的字符编码做出错误假设的邮件。这样的故障有时被称为乱码(LCTT译注:原文用词为 [mojibake][10], 源自日语 _文字化け_)。好在这种情况在今天已经越来越少见了。 ![Example of Mojibake on the website of a French movie distributor. The website name has been changed to preserve the innocent.][11] -### Unicode comes to save to the day +### Unicode 拯救了世界 -I explained encoding issues when exchanging files between different countries. But things were even worst since the encodings used by different manufacturers for the same country were not always the same. You can understand what I mean if you had to exchange files between Mac and PC in the 80s. +我解释了不同国家间交换文件时会遇到的编码问题。但事情还能更糟,同一个国家的不同生产商未必会使用相同的编码。如果你在 80 年代用 Mac 和 PC 互传过文件你就懂我是什么意思了。 -Is it a coincidence or not, the [Unicode][12] project started in 1987, led by people of Xerox and … Apple. +也不知道是不是巧合,[Unicode][12] 项目始于 1987 年,主导者来自施乐Xerox和……苹果Apple 。 -The goal of the project was to define a universal character set allowing to _simultaneously_ use any character used in human writing within the same text. The original Unicode project was limited to 65536 different characters (each character being represented using 16 bits— that is two bytes per character). A number that has proven to be insufficient. +这个项目的目标是定义一套通用字符集来允许同一段文字中_同时_出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。 -So, in 1996 Unicode has been extended to support up to 1 million different [code points][13]. Roughly speaking, a “code point” a number that identifies an entry in the Unicode character table. And one core job of the Unicode project is to make an inventory of all letters, symbols, punctuation marks and other characters that are (or were) used worldwide, and to assign to each of them a code point that will uniquely identify that character. +于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的[代码点][13]。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母,符号,标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。 -This is a huge project: to give you some idea, the version 10 of Unicode, published in 2017, defines over 136,000 characters covering 139 modern and historic scripts. +这是一个庞大的项目:让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符覆盖了 139 种现代和历史上的语言文字。 -With such a large number of possibilities, a basic encoding would require 32 bits (that is 4 bytes) per character. But for text using mainly the characters in the US-ASCII range, 4 bytes per character means 4 times more storage required to save the data and 4 times more bandwidth to transmit them. +随着如此庞大数量的可能性,一个基本的编码会需要每个字符 32 位(即 4 字节)。但对于主要使用 US-ASCII 范围内字符的文字,每个字符 4 字节意味着 4 倍多的储存需求以及 4 倍多的带宽用以传输这些文字。 ![Encoding text as UTF-32 requires 4 bytes per character][14] -So besides the [UTF-32][15] encoding, the Unicode consortium defined the more space-efficient [UTF-16][16] and [UTF-8][17] encodings, using respectively 16 and 8 bits. But how to store over 100,000 different values in only 8 bits? Well, you can’t. But the trick is to use one code value (8 bits in UTF-8, 16 in UTF-16) to store the most frequently used characters. And to use several code values for the least commonly used characters. So UTF-8 and UTF-16 are _variable length_ encoding. Even if this has drawbacks, UTF-8 is a good compromise between space and time efficiency. Not mentioning being backward compatible with most 1-byte pre-Unicode encoding, since UTF-8 was specifically designed so any valid US-ASCII file is also a valid UTF-8 file. In a sense, UTF-8 is a superset of US-ASCII. And today, there is no reason for not using the UTF-8 encoding. Unless of course if you write mostly with languages requiring multi-byte encodings or if you have to deal with legacy systems. +所以除了 [UTF-32][15],Unicode 联盟还定义了更加节约空间的 [UTF-16][16] 和 [UTF-8][17] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位数以及 UTF-16 中的 16 位数)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是_可变长度_编码。尽管这样也有缺陷,UTF-8 是空间与时间效率之间一个不赖的妥协。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 被特别设计成任何有效的 US-ASCII 文件就是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些保留系统打交道。 -I let you compare the UTF-16 and UTF-8 encoding of the same string on the illustrations below. Pay special attention to the UTF-8 encoding using one byte to store the characters of the Latin alphabet. But using two bytes to store characters of the Cyrillic alphabet. That is twice more space than when storing the same characters using the Windows-1251 Cyrillic encoding. +我让你来亲自比较一下同一字符串在下面两张图案中分别使用 UTF-16 和 UTF-8 编码。特别注意 UTF-8 使用了一字节来储存拉丁字母表中的字符,但它使用了两字节来存储西里尔字母表中的字符。这是 Windows-1251 西里尔编码储存同样字符所需空间的两倍。 ![UTF-16 is a variable length encoding requiring 2 bytes to encode most characters. Some character still requires 4 bytes though (for example][18] ![UTF-8 is a variable length encoding requiring 1, 2, 3 or 4 bytes per character][19] -### And how does that help for typing text? +### 而这些对于打字有什么用呢? -Well… It doesn’t hurt to have some knowledge of the underlying mechanism to understand the capabilities and limitations of your computer. Especially we will talk about Unicode and hexadecimal a little later. But for now… a little bit more history. Just a little bit, I promise… +啊……知道一些你的电脑的能力与局限以及其底层机制也无伤大雅嘛。特别是我们马上就要说到 Unicode 和十六进制。现在嘛……我们再在聊点历史。真的就一点,我保证…… -… just enough to say starting in the 80s, computer keyboard used to have a [compose key][20] (sometimes labeled the “multi” key) next to the shift key. By pressing that key, you entered in “compose” mode. And once in that mode, you were able to enter characters not directly available on your keyboard by entering mnemonics instead. For example, in compose mode, typing RO produced the ® character (which is easy to remember as an R inside an O). +……就说从 80 年代起,电脑键盘曾经有过 [compose 键][20](有时候也被标为 "multi" 键)就在 shift 键的下边。当按下这个键时,你会进入“组合compose”模式。一旦在这个模式下,你便可以通过输入助记符来输入你键盘上没有的字符。比如说,在组合模式下,输入 RO 便可生成字符 ®(当作是 O 里面有一个 R 就能很容易记住)。 ![compose key on lk201 keyboard][21] -It is now a rarity to see the compose key on modern keyboards. Probably because of the domination of PCs that don’t make use of it. But on Linux (and possibly on other systems?) you can emulate the compose key. This is something that can be configured in the GUI on many desktop environments using the “keyboard” control panel: But the exact procedure varies depending on your desktop environment or even depending its version. If you changed that setting, don’t hesitate to use the comment section to share the specific steps you’ve followed on your computer. +现在很难在现代键盘上看到 compose 键了。这大概是因为占据主导地位的 PC 不再用它了。但是在 Linux 上(可能还有其他系统)你可以模拟 compose 键。这项设置可以通过 GUI 开启,在大多数桌面环境下调用“键盘”控制面板:但具体的步骤取决于你的桌面环境以及版本。如果你成功启用了那项设置,不要犹豫在评论区分享你在你电脑上所采取的具体步骤。 -As for myself, for now, I will assume you use the default Shift+AltGr combination to emulate the compose key. +(LCTT 译注:如果有读者想要尝试,建议将 compose 键设为大写锁定键,或是别的不常用的键,Ctrl 和 Alt 会被大部分 GUI 程序优先识别为功能键。还有一些我自己试验时遇到过的问题,在开启 compose 键前要确认大写锁定是关闭的,输入法要切换成英文,组合模式下输入大小写敏感。我试验的系统是 Ubuntu 22.04 LTS。) -So, as a practical example, to enter the LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, you can type Shift+AltGr<< (you don’t have to maintain Shift+AltGr pressed when entering the mnemonic). If you managed to do that, I think you should be able to guess by yourself how to enter the _RIGHT-POINTING_ DOUBLE ANGLE QUOTATION MARK. +至于我自己嘛,我现在先假设你用的就是默认的 Shift+AltGr 组合来模拟 compose 键。 -As another example, try Shift+AltGr--- to produce an EM DASH. For that to work, you have to press the [hyphen-minus][22] key on the main keyboard, not the one you will find on your numeric keypad. +那么,作为一个实际例子,尝试输入 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK指左双角引号?(LCTT译注:Guillemet,是法语和一些欧洲语言中的引号,与中文的书名号不同),你可以输入 Shift+AltGr<<(你在敲助记符时不需要一直按着 Shift+AltGr)。如果你成功输入了这个符号,你自己应该也能猜到要怎么输入 _RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK指右双角引号_ 了。 -Worth mentioning the “compose” key works in a non-GUI environment too. But depending if you use you use X11 or a text-only console, the supported compose key sequence are not the same. +来看看另一个例子,试试 Shift+AltGr--- 来生成一个 EM DASH长破折号(LLCT 译注:中文输入法的长破折号由两个 EM DASH 组成)。要做到这个,你需要按下主键盘上的的[连字符减号][22]键而非数字键盘上的那个。 -On the console, you can check the list of supported compose key by using the `dumpkeys` command: +值得注意的是 "compose" 键在非 GUI 环境下也能工作。但是取决于你使用的是 X11 控制台还是只显示文字的控制台,它们所支持的 compose 按键顺序并不相同。 + +在控制台上,你可以通过命令 `dumpkeys` 来查看支持的 compose 按键列表(LCTT 译注:可能需要 root 权限): ``` dumpkeys --compose-only ``` -On the GUI, compose key is implemented at Gtk/X11 level. For a list of all mnemonics supported by the Gtk, take a look at that page: [https://help.ubuntu.com/community/GtkComposeTable][23] +在 GUI 下,compose 键是在 Gtk/X11 层被实现的。想要知道 Gtk 所支持的助记符,可以查看页面:[https://help.ubuntu.com/community/GtkComposeTable][23] -### Is there a way to avoid relying on Gtk for character composition? +### 我们可以避免对 Gtk 字符组合的依赖吗? -Maybe I’m a purist, but I found somewhat unfortunate the compose key support being hard-coded in Gtk. After all, not all GUI applications are using that library. And I cannot add my own mnemonics without re-compiling the Gtk. +或许我是个纯粹主义者,但是我为 Gtk 这种对 compose 键进行硬编码的方式感到悲哀。毕竟,不是所有 GUI 应用都会使用 Gtk 库。而且我如果想要添加我自己的助记符的话就只能重新编译 Gtk 了。 -Hopefully, there is support for character composition at X11-level too. Formerly, through the venerable [X Input Method (XIM)][24]. +幸好在 X11 层也有对字符组合的支持。在以前则是通过令人尊敬的 [X 输入法 (XIM)][24]。 -This will work at lower-level than Gtk-based character composition. But will allow a great amount of flexibility. And will work with many X11 applications. +这个方法在比起基于 Gtk 的字符组合能够在更加底层的地方工作,同时具备优秀的灵活性并兼容很多 X11 应用。 -For example, let’s imagine I just want to add the --> composition to enter the → character (U+2192 RIGHTWARDS ARROW), I would create a `~/.XCompose` file containing those lines: +比如说,假设我只是想要添加 --> 组合来输入字符 → (U+2192 RIGHTWARDS ARROW朝右箭头),我只需要新建 `~/.XCompose` 文件并写入以下代码: ``` cat > ~/.XCompose << EOT @@ -139,78 +141,78 @@ include "%L" EOT ``` -Then you can test by starting a new X11 application, forcing libraries to use XIM as input method: +然后你就可以启动一个新的 X11 应用,强制函数库使用 XIM 作为输入法,并开始测试: ``` GTK_IM_MODULE="xim" QT_IM_MODULE="xim" xterm ``` -The new compose sequence should be available in the application you launched. I encourage you to learn more about the compose file format by typing `man 5 compose`. +新的组合排序应该可以在你刚启动的应用里被输入了。我鼓励你通过 `man 5 compose` 来进一步学习组合文件格式。 -To make XIM the default input method for all your applications, just add to your `~/.profile` file the following two lines. that change will be effective the next time you’ll open a session on your computer: +在你的 `~/.profile` 中加入以下两行来将 XIM 设为你所有应用的默认输入法。这些改动会在下一次你登陆电脑时生效: ``` export GTK_IM_MODULE="xim" export QT_IM_MODULE="xim" ``` -It’s pretty cool, isn’t it? That way you can add all the compose sequences you might want. And there are already a couple of funny ones in the default XIM settings. Try for example to press composeLLAP. +这挺酷的,不是吗?这样你就可以随意的加入你想要的组合排序。而且在默认的 XIM 设置中已经有几个有意思的了。试一下输入 composeLLAP。 -Well, I must mention two drawbacks though. XIM is relatively old and is probably only suitable for those of us who don’t regularly need multi-bytes input methods. Second, when using XIM as your input method, you no longer can enter Unicode characters by their code point using the Ctrl+Shift+u sequence. What? Wait a minute? I didn’t talk about that yet? So let’s do it now: +但我不得不提到两个缺陷。XIM 已经比较老了而且只适合我们这些不太需要多字节输入法的人。其次,当你用 XIM 作为输入法的时候,你就不能利用 Ctrl+Shift+u 加上代码点来输入 Unicode 字符了。什么?等一下?我还没聊过那个?让我们现在来聊一下吧: -### What if there is no compose key sequence for the character I need? +### 如果我需要的字符没有对应的 compose 键排序该怎么办? -The compose key is a nice tool to type some characters not available on the keyboard. But the default set of combinations is limited, and switching to XIM and defining a new compose sequence for a character you will need only once in a lifetime can be cumbersome. +Compose 键是一个不错的工具,它可以用来输入一些键盘上没有的字符。但默认的组合集有限,而切换 XIM 并为一个你一生仅用一次的字符来定义一个新的组合排序十分麻烦。 -Does that prevent you to mix Japanese, Latin and Cyrillic characters in the same text? Certainly not, thanks to Unicode. For example, the name あゆみ is made of: +但这能阻止你在同一段文字里混用日语,拉丁语,还有西里尔字符吗?显然不能,这多亏了 Unicode。比如说,名字 あゆみ 由三个字母组成: -- the [HIRAGANA LETTER A (U+3042)][25] -- the [HIRAGANA LETTER YU (U+3086)][26] -- and the [HIRAGANA LETTER MI (U+307F)][27] +- [HIRAGANA LETTER A平假名字母 あ (U+3042)][25] +- [HIRAGANA LETTER YU平假名字母 ゆ (U+3086)][26] +- 以及 [HIRAGANA LETTER MI平假名字母 み (U+307F)][27] -I mentioned above the official Unicode character names, following the convention to write them in all upper cases. After their name, you will find their Unicode code point, written between parenthesis, as a 16-bit hexadecimal number. Does that remind you something? +我在上文提及了 Unicode 字符的正式名称,并遵循了全部用大写拼写的规范。在它们的名字后面,你可以找到它们的 Unicode 代码点,位于括号之间并写作 16 位的十六进制数字。这让你想到什么了吗? -Anyway, once you know the code point of a character, you can enter it using the following combination: +不管怎样,一旦你知道了的一个字符的代码点,你就可以按照以下组合输入: -- Ctrl+Shift+u, then XXXX (the _hexadecimal_ code point of the character you want) and finally Enter. +- Ctrl+Shift+u,然后 XXXX(你想要的字符的_十六进制_代码点)然后回车。 -As a shorthand, if you don’t release Ctrl+Shift while entering the code point, you won’t have to press Enter. +作为一种简写方式,如果你在输入代码点时不松开 Ctrl+Shift,你就不用敲回车。 -Unfortunately, that feature is implemented at software library level rather than at X11 level. So the support may be variable among different applications. In LibreOffice, for example, you have to type the code point using the main keyboard. Whereas Gtk-based application will accept entry from the numeric keypad as well. +不幸的是,这项功能的实现是在软件库层而非 X11 层,所以对其支持在不同应用间并不统一。以 LibreOffice 为例,你必须使用主键盘来输入代码点。而在基于 Gtk 的应用则接受来自数字键盘的输入。 -Finally, when working at the console on my Debian system, there is a similar feature, but requiring instead to press Alt+XXXXX where XXXXX is the code point of the character you want, but written in _decimal_ this time. I wonder if this is Debian-specific or related to the fact I’m using the en_US.UTF-8 locale. If you have more information about that, I would be curious to read you in the comment section! +最后,当我跟在我的 Debian 系统上的控制台打交道时,我发现了一个类似的功能,但它需要你按下 Alt+XXXXX 而 XXXXX 是你想要的字符的代码点写作_十进制_。我很好奇这究竟是 Debian 独有的功能还是因为我使用的 locale 是 en_US.UTF-8。如果你对此有更多信息,我会很愿意在评论区读到它们的! -| GUI | Console | Character | +| GUI | 控制台 | 字符 | | :- | :- | :- | | Ctrl+Shift+u3042Enter | Alt+12354 | あ | | Ctrl+Shift+u3086Enter | Alt+12422 | ゆ | | Ctrl+Shift+u307FEnter | Alt+12415 | み | -### Dead keys +### 死键 -Last but not least, there is a simpler method to enter key combinations that do not rely (necessarily) on the compose key. +最后值得一提的是,想要不(必须)依赖 compose 键来输入键组合还有一个更简单的方法。 -Some keys on your keyboard were specifically designed to create a combination of characters. Those are called [dead keys][28]. Because when you press them once, nothing seems to happen. But they will silently modify the character produced by the next key you will press. This is a behavior inspired from mechanical typewriter: with them, pressing a dead key imprinted a character, but will not move the carriage. So the next keystroke will imprint another character at the same position. Visually resulting in a combination of the two pressed keys. +你的键盘上的某些键是专门用来创造字符组合的。这些键叫做[死键][28]。这是因为当你按下它们一次,看起来什么都没有发生。但它们会悄悄地改变你下一次按键所产生的字符。这个行为的灵感来自于机械打字机:在使用机械打字机时,按下一个死键会印下一个字符,但不会移动字盘。于是下一次按键则会在同一个地方印下另一个字符。视觉效果就是两次按键的组合。 -We use that a lot in French. For example, to enter the letter “ë” I have to press the ¨ dead key followed by the e key. Similarly, Spanish people have the ~ dead key on their keyboard. And on the keyboard layout for Nordic languages, you can find the ° key. And I could continue that list for a very long time. +我们在法语里经常用到这个。举例来说,想要输入字母 “ë” 我必须按下死键 ¨ 然后再按下 e 键。同样地,西班牙人的键盘上有着死键 ~。而在北欧语系下的键盘布局,你可以找到 ° 键。我可以念很久这份清单。 ![hungary dead keys][29] -Obviously, not all dead keys are available on all keyboard. I fact, most dead keys are NOT available on your keyboard. For example, I assume very few of you— if any— have a dead key ­­­¯ to enter the macron (“flat accent”) used to write Tōkyō. +显然,不是所有键盘都有所有死键。实际上,你的键盘上是找不到大部分死键的。比如说,我猜在你们当中只有小部分人——如果真的有的话——有死键 ¯ 来输入 Tōkyō 所需要的长音符号(“平变音符”)。 -For those dead keys that are not directly available on your keyboard, you need to resort to other solutions. The good news is we’ve already used those techniques. But this time we will use them to emulate dead keys. Not “ordinary” keys. +对于那些你键盘上没有的死键,你需要寻找别的解决方案。好消息是,我们已经用过那些技术了。但这一次我们要用它们来模拟死键,而非“普通”键。 -So, a first option could be to generate the macron dead key by using Compose- (the hyphen-minus key available on your keyboard). Nothing appears. But if after that you press the o key it will finally produce “ō”. +那么,我们的第一个选择是利用 Compose- 来生成长音符号(你键盘上有的连字符减号)。按下时屏幕上什么都不会出现,但当你接着按下 o 键你就能看到 “ō”。 -The list of dead keys that Gtk can produce using the compose mode can be found [here][30]. +Gtk 在组合模式下可以生成的一系列死键都能在[这里][30]找到。 -A different solution would use the Unicode COMBINING MACRON (U+0304) character. Followed by the letter o. I will leave the details up to you. But if you’re curious, you may discover this leads to a very subtlely different result, rather than really producing a LATIN SMALL LETTER O WITH MACRON. And if I wrote the end of the previous sentence in all uppercase, this is a hint guiding you toward a method to enter ō with fewer keystrokes than by using a Unicode combining character… But I let that to your sagacity. +另一个解决方法则是利用 Unicode 字符 COMBINING MACRON组合长音符号 (U+0304),然后字母 o。我把细节都留给你。但如果你好奇的话,你会发现你打出的结果有着微妙的不同,你并没有真地打出 LATIN SMALL LETTER O WITH MACRON小写拉丁字母 O 带长音符号。如果我在上一句的结尾用了大写拼写,这应该可以提示你寻找通过 Unicode 组合字符按更少的键输入 ō 的方法……现在我将这些留给你的聪明才智去解决了。 -### Your turn to practice! +### 轮到你来练习了! -So, did you get it all? Does that work on your computer? It’s your turn to try that: using the clues given above, and a little bit of practice, now you can enter the text of the challenge given in the beginning of this article. Do it, then copy-paste your text in the comment section below as proof of your success. +所以,你都学会了吗?这些在你的电脑上工作吗?现在轮到你来尝试了:根据上面提出的线索,加上一点练习,现在你可以完成文章开头给出的挑战了。挑战一下吧,然后把成果复制到评论区作为你成功的证明。 -There is nothing to win, except maybe the satisfaction of impressing your peers! +赢了也没有奖励,或许来自同伴的惊叹能够满足你! -------------------------------------------------------------------------------- @@ -218,7 +220,7 @@ via: https://itsfoss.com/unicode-linux/ 作者:[Sylvain Leroux][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[yzuowei](https://github.com/yzuowei) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 42aa7328bf5e5c7e2f1bb9cd87e9f91d3dcf2a87 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Sat, 21 Jan 2023 13:04:44 +0800 Subject: [PATCH 2615/3123] translated --- ...0221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md (100%) diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md similarity index 100% rename from sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md rename to translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md From 464032ffc5e142a2e170f417d94bfab4d4a274f4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 21 Jan 2023 13:50:53 +0800 Subject: [PATCH 2616/3123] translated --- ...nstall Python on Windows [Beginner’s Guide].md | 147 ------------------ ...nstall Python on Windows [Beginner’s Guide].md | 141 +++++++++++++++++ 2 files changed, 141 insertions(+), 147 deletions(-) delete mode 100644 sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md create mode 100644 translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md diff --git a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md deleted file mode 100644 index cc06a6ceef..0000000000 --- a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "How to Install Python on Windows [Beginner’s Guide]" -[#]: via: "https://www.debugpoint.com/install-python-windows/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Python on Windows [Beginner’s Guide] -====== - -**This simple guide demonstrates how to download and install Python on Windows.** - -This article is tested with the latest Python 3.11 stable version. - -Before you learn how to install Python on Windows, you might want to check how you can [install it easily][1] on Linux distributions such as Ubuntu. It’s better to try Python in Linux if you are planning to be a developer. That being said, you might want to check [how to install Linux (such as Ubuntu) alongside Windows][2]. - -Python is a popular general-purpose programming language which becomes the developer’s choice in the past decade. And its popularity is increasing every day. it is widely used for web development, complex systems, data science, machine learning and all areas of science. - -There are two versions of Python that you may come across. Python2 is currently out of support. And the Python3 series is the ongoing support release. - -### Check whether Python is installed - -Before you install it on Windows, you should check whether it is already installed. In general, it should not be installed, unlike in Ubuntu (and other Linux distributions), where Python comes pre-installed. - -From the start menu, open “command prompt”. - -And type the following: - -``` -python --version -``` - -If Python is available, it will show you a message with the version details. - -### Download and Install Python - -Open the below official Python download page. - -[Download Python][3] - -![How to locate Python set up][4] - -At the top, you should see the current stable version. Click on the download link. If you are looking for any specific version, scroll down on this page and download the specific version under the label “Python releases by version number:”. - -After downloading, go to the Downloads folder and run the setup. - -Follow the on-screen instructions to install it. - -![Install Python step 1][5] - -![Install Python step 2][6] - -After installation is complete, verify the Python version. - -### Verify Python Version - -From the start menu, open “command prompt” and run the following command. - -``` -python --version -``` - -![Python version on Windows][7] - -You should see your system’s currently installed version of the Python package. Alternatively, you can also run below to get a Python interactive shell. - -``` -python -``` - -You can exit the shell using CTRL+Z and Enter. - -### Check PATH Variables - -You should check the system variable PATH with the Python executable location. This should be updated automatically using the installer. - -From the start menu, search “system variables” and open it. - -![Open Environment variable Settings][8] - -In the System Properties Dialog, click on `Advanced > Environment Variables`. Under the user variables section against the Path variable, check whether the Python installed location is present. Refer to the below image for a guideline. - -If you see all the path is present, you are all set to run your Python project. - -![Check Python Environment PATH Values in Windows][9] - -### Create and run your first Python program - -For an additional step, here’s how you can code & run your first Python program. You should ideally use any [recommended Python editor][10] to write your program. - -Here’s a simple program which outputs the text “debugpoint.com” in the console. - -``` -# Sample Python program -print("debugpoint.com") -``` - -Save the file with any name. Here I have saved it as “hello.py” in E drive. The .py is the extension of Python source codes. - -To run this program, open a command prompt and execute below inside E drive. - -``` -python hello.py -``` - -**Output:** - -![Running a simple Python program in Windows][11] - -### Closing Notes - -I hope this simple beginner’s guide helps you to install Python in Windows, verify the installation and run your first program. - -Please let me know if you run into issues in the comment box below. - -[Next:Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)][12] - -[_Using Mastodon? Follow us at floss.social/@debugpoint_][13] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-python-windows/ - -作者:[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/install-python-3-11-ubuntu/ -[2]: https://www.debugpoint.com/complete-guide-how-dual-boot-ubuntu-windows/ -[3]: https://www.python.org/downloads/ -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/How-to-locate-Python-set-up.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-1.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-2.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Python-version-on-Windows.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-Environment-variable-Settings.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Check-Python-Environment-PATH-Values-in-Windows.jpg -[10]: https://www.debugpoint.com/5-best-python-ide-code-editor/ -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg -[12]: https://www.debugpoint.com/share-folder-virt-manager/ -[13]: https://floss.social/@debugpoint diff --git a/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md new file mode 100644 index 0000000000..1a4b13d51f --- /dev/null +++ b/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -0,0 +1,141 @@ +[#]: subject: "How to Install Python on Windows [Beginner’s Guide]" +[#]: via: "https://www.debugpoint.com/install-python-windows/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Windows 上安装 Python(初学者指南) +====== + +**这个简单的指南演示了如何在 Windows 上下载和安装 Python。** + +这篇文章是用最新的 Python 3.11 稳定版测试的。 + +在学习如何在 Windows 上安装 Python 之前,你可能想看看如何在 Linux 发行版(如 Ubuntu)上[轻松安装][1] 。如果你打算成为一名开发者,最好在 Linux 中尝试 Python。既然如此,你可能想看看[如何在 Windows 之外安装 Linux(如 Ubuntu)][2]。 + +Python 是一种流行的通用编程语言,在过去十年中成为开发者的选择。而且它的受欢迎程度与日俱增。它被广泛用于网络开发、复杂系统、数据科学、机器学习和所有科学领域。 + +你可能遇到的 Python 有两个版本。Python2 目前已经不支持了。而 Python3 系列是持续支持的版本。 + +### 检查 Python 是否已经安装 + +在 Windows 上安装它之前,你应该检查它是否已经安装。一般来说,它应该没有安装,不像在 Ubuntu (和其他 Linux 发行版)中,Python 是预先安装的。 + +从开始菜单中,打开“命令提示符”。 + +并输入以下内容: + +``` +python --version +``` + +如果 Python 是可用的,它将显示一个包含版本细节的信息。 + +### 下载并安装 Python + +打开下面的 Python 官方下载页面。 + +[下载 Python][3] + +![如何定位 Python 安装][4] + +在顶部,你应该看到当前的稳定版本。点击下载链接。如果你正在寻找任何特定的版本,在这个页面上向下滚动,在 “Python releases by version number:” 的标签下下载特定的版本。 + +下载后,进入下载文件夹,运行安装程序。 + +按照屏幕上的指示进行安装。 + +![安装 Python 第 1 步][5] + +![安装 Python 第 2 步][6] + +安装完成后,验证 Python 的版本。 + +### 验证 Python 版本 + +从开始菜单,打开“命令提示符”,运行以下命令。 + +``` +python --version +``` + +![Windows 上的 Python 版本][7] + +你应该看到你的系统当前安装的 Python 包的版本。另外,你也可以运行下面的程序来获得一个 Python 交互式 shell。 + +``` +python +``` + +你可以用 CTRL+Z 和回车键退出这个 shell。 + +### 检查 PATH 变量 + +你应该用 Python 的可执行位置检查系统变量 PATH。这应该是使用安装程序自动更新的。 + +从开始菜单中,搜索“系统变量”并打开它。 + +![打开环境变量设置][8] + +在“系统属性”对话框中,点击“高级>环境变量”。在用户变量部分,对照路径变量,检查 Python 的安装位置是否存在。请参考下面的图片作为指导。 + +如果你看到所有的路径都存在,你就可以运行你的 Python 项目了。 + +![检查 Windows 中的 Python 环境 PATH 值][9] + +### 创建并运行你的第一个 Python 程序 + +一个额外的步骤,这里是你如何编码和运行你的第一个 Python 程序。你可以使用任意[推荐的 Python 编辑器][10]来编写你的程序。 + +下面是一个简单的程序,它在控制台中输出文本“debugpoint.com”。 + +``` +# Sample Python program +print("debugpoint.com") +``` + +用任意名字保存文件。这里我把它保存为 “hello.py”,放在 E 盘。.py 是 Python 源码的扩展名。 + +要运行这个程序,请打开命令提示符,在 E 盘中执行以下内容。 + +``` +python hello.py +``` + +**输出** + +![在 Windows 中运行一个简单的 Python 程序][11] + +### 结束语 + +我希望这个简单的初学者指南能够帮助你在 Windows 中安装 Python,验证安装并运行你的第一个程序。 + +如果你遇到问题,请在下面的评论栏中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-windows/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/install-python-3-11-ubuntu/ +[2]: https://www.debugpoint.com/complete-guide-how-dual-boot-ubuntu-windows/ +[3]: https://www.python.org/downloads/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/How-to-locate-Python-set-up.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-1.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-2.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Python-version-on-Windows.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-Environment-variable-Settings.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Check-Python-Environment-PATH-Values-in-Windows.jpg +[10]: https://www.debugpoint.com/5-best-python-ide-code-editor/ +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg \ No newline at end of file From 2705000f1cd684fa0b2e5301202338d2344c7d0c Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 21 Jan 2023 13:55:37 +0800 Subject: [PATCH 2617/3123] translating --- ... Document with BookStack, an open source Confluence alternative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md index 0b63928629..1d79a34124 100644 --- a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md +++ b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/bookstack-open-source-documentation" [#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5bc40a0c09ba15aa4de3aad46401b1b4dfea46de Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 12:01:58 +0800 Subject: [PATCH 2618/3123] RP @geekpi https://linux.cn/article-15466-1.html --- ...ok Offline English Dictionary App for GNOME.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) rename {translated/tech => published}/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md (65%) diff --git a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md similarity index 65% rename from translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md rename to published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md index 830e1e4b65..cf053b9cb9 100644 --- a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md +++ b/published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -3,14 +3,16 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15466-1.html" Wordbook:适用于 GNOME 的离线英语词典应用 ====== -**遇见 Wordbook – 一个 GNOME 桌面的离线词典应用。** +![][0] + +> 遇见 Wordbook:一个 GNOME 桌面的离线词典应用。 我们大多在谷歌、DDG 或其他搜索引擎上搜索单词信息,如含义、同义词、反义词等。 @@ -20,15 +22,15 @@ Wordbook:适用于 GNOME 的离线英语词典应用 ### Wordbook:离线词典应用 -这个应用在本质上是非常基本的。但以它的能力完成了它的工作。Wordbook 目前支持一个英译英字典。在其核心部分,它使用 [Open English WordNet 数据库][2]进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源分叉。 +这个应用在本质上是非常基础的,但它的能力足以完成工作。Wordbook 目前支持一个**英英字典**。在其核心部分,它使用 [Open English WordNet 数据库][2] 进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源复刻。 -Wordbook 应用还可以使用 [eSpeak][4] – 一个免费和开源的语音合成器来发音。 +Wordbook 应用还可以使用 [eSpeak][4] – 一个自由开源的语音合成器来发音。 ![Wordbook - 英译英词典应用][5] -然而,在第一次运行时,它需要一次性上网,以下载离线数据。就这些了。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 +然而,在第一次运行时,它需要一次性上网,以下载离线数据。仅此而已。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 -Wordbook是一个 [GNOME 应用][6],使用现代 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 +Wordbook 是一个 [GNOME 应用][6],使用现代的 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 ### 安装 @@ -44,7 +46,7 @@ flatpak install com.github.fushinari.Wordbook 我希望你在学校或商业工作中使用这个小小的应用。如果你在写论文和较长的段落,离线特性是很方便的。 -你知道其他Linux的离线字典吗?请在评论栏里告诉我们。 +你知道其他 Linux 的离线字典吗?请在评论栏里告诉我们。 -------------------------------------------------------------------------------- @@ -53,7 +55,7 @@ via: https://www.debugpoint.com/wordbook-offline-dictionary/ 作者:[Arindam][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/) 荣誉推出 @@ -66,4 +68,5 @@ via: https://www.debugpoint.com/wordbook-offline-dictionary/ [5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Wordbook-English-to-English-Dictionary-App.jpg [6]: https://www.debugpoint.com/tag/gnome-app [7]: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ -[8]: https://floss.social/@debugpoint \ No newline at end of file +[8]: https://floss.social/@debugpoint +[0]: https://img.linux.net.cn/data/attachment/album/202301/22/120052z1e0bg1ynyanors2.jpg \ No newline at end of file From 443c319ccfb3eb2adaec4d8e7764c8cc05baf3c8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 18:04:46 +0800 Subject: [PATCH 2619/3123] R Part 1 --- .../20190331 Codecademy vs. The BBC Micro.md | 103 +++++++----------- 1 file changed, 39 insertions(+), 64 deletions(-) diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md index bd4d9e8813..f0e1dc7469 100644 --- a/translated/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -3,61 +3,62 @@ [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" [#]: translator: "CanYellow" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -[BBC Micro][T2] 比之 [Codecademy][T1] +BBC Micro 比之 Codecademy ====== -20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。少数狂热的爱好者注意到了这是多么吸引人并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 +20 世纪 70 年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业级霸主的神秘而笨重的机器。少数狂热的爱好者注意到了它是多么的吸引人,并争相购买了属于自己的计算机。对更多的人而言,微型计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺,家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,而在他的身后,他的那些显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它类似的广告在暗示:世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 -在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20 世纪 70 年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇 1979 年的政府报告担心:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[^1]。英国似乎已经在计算机技术的角逐中落后了 —— 所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 -BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_Computer Literacy Project(计算机认知计划)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的 Fifth Personal Computer World Show(第五届个人电脑世界展) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _Computer Literacy Project_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] +由英国政府建立的公共服务广播公司英国广播公司(BBC)作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感,来解决英国的国家竞争力问题。BBC 发起了 “[计算机认知计划][T3]Computer Literacy Project”,该计划包括多个教育方向的努力:几部电视连续剧,一些相关书籍,一张支持团队网络以及一款名为 [BBC Micro][T2] 的特别定制的微型计算机。该项目是如此成功,以致于 1983 年 《[BYTE][T4]》杂志的一位编辑写道:“与美国相比,英国人对微型计算机感兴趣的比例更高。”[^2] 这位编辑惊讶于在英国举办的 “第五届个人电脑世界展Fifth Personal Computer World Show” 的人数比参加当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由该计划制作的第一部电视连续剧,并最终售出了 150 万台 BBC Micro 微型计算机。[^3] -去年,一份包括了由 _Computer Literacy Project_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑使用是什么图景。不过我发现更有兴趣的是时年是如何教授电脑使用的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? +去年,一份包含了由计算机认知计划所制作的每部电视连续剧和所有出版资料的 [档案][4] 被发布在了互联网上。我抱着极大的兴趣观看这些电视连续剧,并试图想象在 20 世纪 80 年代早期学习电脑使用是什么样子。但事实证明,更有趣的是计算机是如何被教授的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 [Codecademy][T1] 这样的网站,通过新技术的运用进行交互式编程教学。我们可能假定这种方式比 80 年代的呆板的电视连续剧更高效,不过真的是这样吗? -### [Computer Literacy Project][T3] (计算机认知计划) +### 计算机认知计划 -微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为["Now the Chips Are Down"][T5](《芯片来了》)(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 +微型计算机革命始于 1975 年 [Altair 8800][5] 的发布。仅仅两年后,Apple II、TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978 年,BBC 在一部名为 《[芯片来了][T5]Now the Chips Are Down》(LCTT 译注:对于非英国区域的读者,可以在 [这里][T6] 观看该纪录片)的纪录片中探讨了这些新机器必将会带来的剧烈的社会变革。 -该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 +该纪录片充满担忧。在前 5 分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放,屏幕上绿色的电脉冲围绕着放大后的芯片上起舞,解说员进一步说,这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。该纪录片继续探讨了机器人如何用于汽车自动化组装,以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它指责英国政府在应对未来的大规模失业的准备上做得不够。 -该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_Adult Literacy Project_(成人扫盲计划)相似的多媒体项目。_Adult Literacy Project_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 +该纪录片据信可能在英国议会上展示过。[^4] 包括工业署和人力服务委员会在内的一些政府代表开始对尝试提高英国公众对计算机的认识感兴趣。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份报告,历数了微电子技术在工业制造、劳动关系与办公室工作等领域的哪些方面将发生重大改变。70 年代末,BBC 决定制作一部十集电视连续剧,帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”[^5]。这一努力最终成为了一个与“成人扫盲计划Adult Literacy Project”相似的多媒体项目。成人扫盲计划是 BBC 此前进行的一项工作,包括一部电视连续剧以及补充课程,帮助两百万人提高他们的阅读能力。 -_Computer Literacy Project_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 +计算机认知计划背后的制作方热衷于以“实操”示例为特色的电视连续剧。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子必须使用 BASIC 语言,因为这是在几乎所有的微型计算机上都使用的编程语言(实际是整个 交互界面shell)。但是制作者面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言 —— BBC BASIC,以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机,并依照示例操作,而不需要担心软硬件上的差异带来的问题。 -BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_Computer Literacy Project_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[6][8] +BBC 的电视制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范,并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。计算机认知计划的技术顾问还建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的方言(他们可能没有确切地这样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[^6] -BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 +BBC 最终决定由一家位于剑桥的名为 Acorn Computers 的公司制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 [Clive Sinclair][T7] 的申请,他经营着一家 Sinclair Research 公司。1980 年,Sinclair 公司通过 Sinclair ZX80 为英国带来了微型计算机的大众市场。Sinclair 公司的新产品 ZX81 虽然更便宜,但是性能不足以满足 BBC 的要求。Acorn 的新型电脑(内部被称为 Proton)的原型机更加昂贵,但是性能更好,更具备扩展性。BBC 对此印象深刻。该型号的计算机从未以 “Proton” 的名字上市或销售过,因为它在 1981 年 12 月以 “BBC Micro” 的名字发布了。BBC Micro 又被亲切地称为 “The Beeb”,你可以以 235 英磅的价格购得其 16k 内存的版本,或者以 335 英磅的价格获得其 32k 内存的版本。 -1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“Advanced RISC Machine”(先进 RISC 架构设备),然而最初它代表的是“Acorn RISC Machine”(Acorn RISC 架构设备)。ARM 架构背后的 ARM Holding(ARM 公司) 就是 Acorn 公司在1990年之后的延续。 +1980 年,Acorn 在英国计算机行业处于劣势,但是 BBC Micro 帮助 Acorn 公司创立了遗产。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM” 如今表示 “先进 RISC 架构设备Advanced RISC Machine”,然而最初它代表的是 “Acorn RISC 架构设备Acorn RISC Machine”。ARM 架构背后的 ARM 控股公司就是 Acorn 公司在 1990 年之后的延续。 -![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ +![Picture of the BBC Micro.][9] +_BBC Micro 的一幅拙劣图片,我摄于美国加州山景城的计算机历史博物馆Computer History Museum_ -### 名为“The Computer Programme”(计算机程序)的电视系列片 +### 《计算机程序》电视连续剧 -十几个不同的电视系列片最终作为_Computer Literacy Project_的一部分创作出来。第一部作品是一部名为 _The Computer Programme_(计算机程序) 的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 +作为计算机认知计划的一部分,最终制作了十几部不同的电视连续剧。第一部作品是一部名为 《计算机程序The Computer Programme》 的十集电视连续剧。该连续剧在 1982 年初播出了十周。每周晚上有一百万人收看该节目,另有有 25 万人在每周日与周一的下午收看该节目的重播。 -这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 +该电视节目由两名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演专家,他具有专业的大型计算机编程经验。这是一个启发性的方式,有些 [略显笨拙的过渡][10] —— Serle 经常直接从与 McNaught-Davis 的对话中,过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言,并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,那么它的亲和力就会差很多。 -该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_Computer Literacy Project_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 +该节目也在努力展示计算在普通人生活中的实际应用。到 80 年代早期,家庭电脑已经开始与年轻男孩和电子游戏联系在一起。计算机认知计划的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣 [^7]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一位女性,她购买了一台 Commodore PET 电脑用于辅助管理她的糖果店。这位名叫 Phyllis 的女性受访者看上去大约 60 多岁,但她在使用 PET 完成她的会计工作上没有任何问题,甚至已经开始使用 PET 为其他企业做计算机工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢计算机工作。这次采访倒是可以换成对一名青少年的采访,介绍了他是如何修改 《[Breakout][T8]》 这款电子游戏,以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果普罗大众中的 Phyllis 都会使用电脑,那么你当然也可以。 -虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 +虽然该节目以大量的 BASIC 编程为特色,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中,有一个关于 [Jacquard][T9] 织机(LCTT 译注:中文网络译为雅卡尔提布机)的延伸讨论,主要是两个方面:其一,它揭示了计算机并不仅仅基于昨天发明的神秘技术 —— 计算的一些基本原则可以上溯到两百年前,就跟你可以在卡片上打孔来控制纺织机的想法一样简单;其二,经线与纬线的交织用来证明二元选择(即纬线是从上方还是下方穿过经线)在不断重复时足以产生巨大变化。当然,节目接下来继续讨论信息是如何使用二进制存储的。 -在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴的小节。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 +在该节目中接下来是一个蒸汽管风琴的章节,该管风琴能够演奏编码在一卷长长的、分段的打孔卡片的音乐。这个类比用以解释 BASIC 中的 子程序subroutine。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在演播室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下,并以某种方式添加一条指令,回到第一次播放副歌的原始分段,这就是子程序。这是一个绝妙的解释,它在人们的脑海中的印象非常深刻。 -我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_Computer Literacy Project_的总制作人 John Radcliffe 如是写道: +我仅仅摘录了一些例子,不过我认为,总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原理,使计算机不再神秘。这一节目本可以专注于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在 1983 年写就的一篇回忆文章中,计算机认知计划的总制作人 John Radcliffe 如是写道: -> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 +> 如果计算机将如我们所相信的那样重要,对这一新主题的真正理解对每个人都很重要,也许与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,尽管我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来……。我们相信,一旦人们掌握了这些最简单的原则,它们将可以进一步深入该主题。 -接下来, Radcliffe writes 又以类似的方式写道: +后来,Radcliffe 又以类似的口吻写道: -> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 +> 围绕着这一系列节目的主要阐释目标有很多争论。一派人认为,在使用微型计算机上的实际细节上给予建议,对本项目而言尤为重要。但我们的结论是,如果该系列节目要拥有可持续性的教育价值,它就必须通过对计算原理的解释,成为进入真实计算世界的一种方式。这需要通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 -我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_Computer Literacy Project_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 +我喜爱这一连续剧,尤其是其中关于小型机与大型机的部分。计算机认知计划背后的制作方旨在帮助英国人找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 ### 今天的计算机认知 @@ -67,33 +68,13 @@ BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名 我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 -公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动 _Computer Literacy Project_ 的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? +公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动计算机认知计划的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? 我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 -另一方面,_Computer Literacy Project_ 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 - - - 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] - - 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] - - 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] - - 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] - - 5. ibid. [↩︎][23] - - 6. Williams, 51. [↩︎][24] - - 7. Radcliffe, 11. [↩︎][25] - - 8. Radcliffe, 5. [↩︎][26] - - - +另一方面,计算机认知计划 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 -------------------------------------------------------------------------------- @@ -108,32 +89,26 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [a]: https://twobithistory.org [b]: https://github.com/lujun9972 -[1]: tmp.zNBs2lK4Ca#fn:1 -[2]: tmp.zNBs2lK4Ca#fn:2 -[3]: tmp.zNBs2lK4Ca#fn:3 [4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ [5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html -[6]: tmp.zNBs2lK4Ca#fn:4 -[7]: tmp.zNBs2lK4Ca#fn:5 -[8]: tmp.zNBs2lK4Ca#fn:6 [9]: https://twobithistory.org/images/beeb.jpg [10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 -[11]: tmp.zNBs2lK4Ca#fn:7 [12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 -[13]: tmp.zNBs2lK4Ca#fn:8 [14]: https://twobithistory.org/2018/09/02/learning-basic.html [15]: https://twitter.com/TwoBitHistory [16]: https://twobithistory.org/feed.xml [17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw -[18]: tmp.zNBs2lK4Ca#fnref:1 -[19]: tmp.zNBs2lK4Ca#fnref:2 [20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf -[21]: tmp.zNBs2lK4Ca#fnref:3 -[22]: tmp.zNBs2lK4Ca#fnref:4 -[23]: tmp.zNBs2lK4Ca#fnref:5 -[24]: tmp.zNBs2lK4Ca#fnref:6 -[25]: tmp.zNBs2lK4Ca#fnref:7 -[26]: tmp.zNBs2lK4Ca#fnref:8 + + +[^1]: Robert Albury and David Allen, Microelectronics, report (1979).  +[^2]: Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, .  +[^3]: John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20].  +[^4]: David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, .  +[^5]: ibid.  +[^6]: Williams, 51.  +[^7]: Radcliffe, 11.  +[^8]: Radcliffe, 5.  [T1]: https://www.codecademy.com/ [T2]: https://bbcmicro.computer/ From 460733acc10181a477a8bee2b1de89e6ea44c569 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 18:43:42 +0800 Subject: [PATCH 2620/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @ZhangZhanhaoxiang 感谢您,完成了第一篇翻译贡献! --- ... 11 tips for writing a good Git commit message.md | 113 +++++++++--------- 1 file changed, 58 insertions(+), 55 deletions(-) diff --git a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md index f78aab08dc..4b4c9955d5 100644 --- a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md +++ b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md @@ -3,29 +3,33 @@ [#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -编写好 Git 提交消息的 11 个技巧 +编写好 Git 提交信息的 11 个技巧 ====== +![][0] + +> 我请社区的开源从业者分享了他们关于编写有用的 Git 提交信息的建议。 + 最近,当需要更新时,我一直在密切关注从产品和服务获得的变更日志。以下是一些示例: - 修复了一些错误。 - 进行了一些可访问性改进。 -- 我们已经进行了改进并修复了错误,以实现更顺畅地运行。 +- 我们已经进行了改进,并修复了错误,以实现更顺畅地运行。 -当我想到我作为一名初级开发人员发出的一些最初的承诺信息时,我不得不沮丧地垂下头: +当我想到我还是一名初级开发人员写的一些首次提交信息时,我不得不沮丧地垂下头: - 用鼠标点了一下,现在一切似乎都正常了。 - 执行了程序员 X 告诉我的操作,现在横幅是蓝色的。 -这可能令人沮丧!我向我们的贡献者群体提出了以下问题: +这可真令人沮丧!我向我们的贡献者们提出了以下问题: -- 什么是好的 Git 提交消息? -- 什么是坏的 Git 提交消息? -- 你认为一个项目应该有哪些关于提交消息所写内容的规则? +- 什么是好的 Git 提交信息? +- 什么是坏的 Git 提交信息? +- 你认为一个项目应该有哪些关于提交信息所写内容的规则? 以下是他们的答案: @@ -33,44 +37,44 @@ 与你写任何东西一样,你应该考虑谁会阅读它。然后相应地调整信息的数量和深度。 -提高你的自然语言和写作技能对于软件开发的顺利职业生涯至关重要。重要的不仅仅是代码。 +提高你的自然语言和写作技能对于软件开发的职业生涯顺利发展至关重要。重要的不仅仅是代码。 -**—[Camilla Conte][1]** +—— [Camilla Conte][1] ### 具有描述性,不要假设 -我花了很多时间在 OpenStack[2] 社区中进行合作,与我在像“野外”一样随意的其他项目中看到的相比,它的代码审查员有一些相当严格的标准。 +我在 [OpenStack][2] 社区中花了很多时间合作,与我在像“野外”的其他随意的项目中看到的相比,它的代码审查者有一些相当严格的标准。 -我撰写一条可靠的提交消息的时间通常要比编写实际的代码实现或修复程序的时间长得多。有时,提交消息所需的时间可能会比它们解释的差异长很多倍。 +我花在撰写一条可靠的提交信息的时间,往往要比编写实际的代码实现或修复程序的时间长得多。有时,提交信息可能会比它们解释的代码变化长很多倍。 总结一些贡献者指导: - 描述为什么要做出改变,而不仅仅是改变了什么 - 第一个提交行是最重要的(就像电子邮件的主题行) -- 不要自认为审查人员了解你正在修复的原始问题 -- 不要自认为审查者可以访问外部 web 服务或网站(总结缺陷报告和其他相关讨论) -- 不要假设代码是不言自明的和自我记录的(尽管没有必要重复您在代码注释中也提出的观点) -- 不要只包含与更改的早期修订相关的信息(我们希望贡献者将修订压缩在一起,并相应地编辑其提交消息)。 +- 不要假设审查者了解你正在修复的原始问题 +- 不要假设审查者可以访问外部 Web 服务或网站(总结缺陷报告和其他相关讨论) +- 不要假设代码是不言自明的和自我说明的(尽管没有必要重复你在代码注释中也提出的观点) +- 不要只包含与更改的早期修订相关的信息(我们希望贡献者将修订压扁在一起,并相应地编辑其提交信息)。 -《OpenStack 贡献者指南》中有一个关于该主题的简短章节:[https://docs.openstack.org/contributors/common/git.html#commit-messages][3] +《OpenStack 贡献者指南》中有一个关于该主题的 [简短章节][3]。 -**—[Jeremy Stanley][4]** +—— [Jeremy Stanley][4] -### 你未来的自己会感谢你 +### 未来的你会感谢自己 -我非常同意杰里米的观点。1000 份地支持。 +我非常同意 Jeremy 的观点。+1000。 Jeremy 说:“描述为什么要做出改变,而不仅仅是改变了什么。” -想象一下,你是旁观者,在遥远的未来,试图理解这个提交。 +想象一下,你是旁观者,在遥远的未来试图理解这个提交。 正如老话所说,设身处地为他人着想。 -**—[Leigh Morresi][5]** +—— [Leigh Morresi][5] -### 使用 bug 的 ID +### 使用 bug ID -我建议在提交消息的开头添加 bug ID,以便稍后使用 [`grep` 命令][6] 更容易跟踪提交。 +我建议在提交信息的开头添加 bug ID,这样在以后使用 [grep 命令][6] 跟踪提交信息时就会更方便。 例如: @@ -85,77 +89,75 @@ $ git commit -m "BZ#19xxxxx - 为什么有更改的必要? - 更改的依据是什么? -**—[Agil Antony][7]** +—— [Agil Antony][7] ### 讲述整个故事 -我喜欢想象每个提交消息都有一个隐藏的前缀,上面写着“By applying this(通过应用这个)”。 +我喜欢想象每个提交信息都有一个隐藏的前缀,上面写着 “By applying this(通过应用这个)”。 -一个好的提交消息包括将要发生的事情以及原因。仅仅有工作任务清单作参考是不够的,因为这分散了信息;Git 是去中心化的。作为一名软件开发人员,我想知道为什么当前要考虑做出更改。正在解决的具体问题是什么?考虑(并放弃)了哪些替代解决方案?在创建变更集的过程中发现了哪些影响当前内容的意外情况? +一个好的提交信息包括将要发生的事情以及原因。仅仅有工单作参考是不够的,因为这分散了信息;Git 是去中心化的。作为一名软件开发人员,我想知道为什么当前要考虑做出更改。正在解决的具体问题是什么?考虑(并放弃)了哪些替代解决方案?在创建变更集的过程中发现了哪些影响当前内容的意外情况? -缩短提交消息没有什么用。你未来的自己和未来的同事会感激你深入解释问题,以及为什么这个变更集是解决方案。认真学习和利用那些有丰富“生活经验”的“烹饪”博客。然而,在此,仅仅是把生活经验替换成了项目的问题罢了(LCTT 译注:意思是要认真学习和模仿优秀、详细的 commit)。 +缩短提交信息没有什么好处。你未来的自己和未来的同事会感激你深入地解释了问题,以及为什么这个变更集是解决方案。认真学习和利用那些内容丰富的“烹饪”博客。然而,在此,仅仅是把生活经验替换成了项目的问题罢了(LCTT 译注:意思是要认真学习和模仿优秀、详细的提交信息)。 -**—[Lisa Seelye][8]** +—— [Lisa Seelye][8] ### 但不要过于冗长 -一个好的 git 提交消息包含有关所做操作的信息,而不要包含其他信息。例如,如果您需要更新.gitignore,只需写“updated .gitignore”即可。人们可以自行深入到提交本身中了解更多细节。它不需要冗长。 +一个好的 Git 提交信息包含有关所做操作的信息,而不要包含其他信息。例如,如果你需要更新 `.gitignore`,只需写 “更新了 .gitignore” 即可。人们可以自行深入到提交本身中了解更多细节。它不需要冗长。 -令人反感的提交消息类似于“哦,废话”或“试试这个”。当然,我对此感到内疚,但这对于任何需要看一眼提交的人来说都没有任何帮助。 +糟糕的提交信息类似于“哦,糟糕”或“试试这个”。当然,我也曾经犯过这样的错误,但这对于任何需要一目了然地查看提交信息的人来说都没有任何帮助。 -提交信息的规则非常主观。他们可能因领导和团队而异。但至少要提供一些有关提交的上下文信息。特别是如果它是一个大的更改。没有人有时间浏览 1000 多个具有重大更改历史的文件。 +提交信息的规则非常主观。他们可能因领导和团队而异。但至少要提供一些有关提交的上下文信息。特别是如果它是一个大的更改。没有人有时间浏览 1000 多个具有大量更改历史的文件。 -**—[Miriam Goldman][9]** +—— [Miriam Goldman][9] ### 使用现在时 -我喜欢用现在时而不是将来时的术语编写项目经理风格的提交消息(例如,“add”而不是“added”)。然而,这通常只有在频繁提交时才有可能。当你面临最后期限时,你能记住的只有“我是如何做的”而已。然而,写得好的提交不仅有助于合作者,而且有助于提交者回忆历史。 +我喜欢项目经理风格的提交信息,用现在时而不是将来时的术语编写(例如,“添加” 而不是“已添加”)。然而,这通常只有在频繁提交时才有可能。当你面临最后期限时,你能记住的只有“我是如何做的”而已。然而,写得好的提交不仅有助于合作者,而且有助于提交者回忆历史。 -**—[Chris Okpada][10]** +—— [Chris Okpada][10] ### 不要依赖链接 -我想提醒同事的一件事是,你不仅仅是向给你的提交作批准的人解释。你还将向未来的开发人员和用户解释,他们会发现这提交有利有弊,或者指责操作,并试图了解其相关性。 +我想提醒同事们的一件事是,你不仅仅是向给你的提交作批准的人解释。你还要向未来的开发人员和用户解释,他们在使用 bisect 或 blame 定位问题时发现了这个提交,并试图了解其相关性。 -如果提供的唯一的上下文是指向某个外部系统的链接,并且在未来很长一段时间内,它所链接的系统不再使用,或者该用户无法访问,那么您的提交消息将变得无用,也相当于是空白的。 +如果提供的唯一的上下文是指向某个外部系统的链接,并且在未来很长一段时间内,它所链接的系统不再使用,或者该用户无法访问,那么你的提交信息将变得无用,可能还不如空白。 -我经常去挖掘一些开源项目的 Git 历史,发现有些提交消息无非就是一个 bug ID,或者是某个公司内部的和专用缺陷跟踪器的链接。 +我经常去挖掘一些开源项目的 Git 历史,发现有些提交信息无非就是一个 Bug ID,或者是某个公司内部的和专用的缺陷跟踪器的链接。 不要依赖链接! -**—[Jeremy Stanley][4]** +—— [Jeremy Stanley][4] ### 清晰简洁的变更日志 -作为一名发行沟通经理,我经常阅读整个发行版。我还与开发人员会面,讨论任何尚未明确的领域。然后我很早就测试了这个版本。之后,我将通过寻找变更日志和相应的修订或新内容来撰写发布帖子。 +作为一名发布沟通经理,我会经常阅读整个发布版块。我还会与开发人员会面,讨论任何尚未明确的领域。然后我提前测试了版本。之后,我将通过寻找变更日志和相应的修订或新内容来撰写发布文章。 -变更日志是开发人员的个人提醒,但也有相应的提议和问题。您应该适当地将产品名称大写,使用拼写检查器,与标点符号和句子结构保持一致。首席开发人员也应该校对这些。您的客户,即开发人员,正在阅读这些内容。在运行更新之前,他们应该了解哪些信息能更好地为客户服务? +变更日志是开发人员的个人提醒,但也有相应的提议和工单。你应该适当地将产品名称大写,使用拼写检查器,与标点符号和句子结构保持一致。首席开发人员也应该校对这些。你的客户,即开发人员,正在阅读这些内容。在运行更新之前,他们应该了解哪些信息能更好地为客户服务? -**—[Courtney Robertson][11]** +—— [Courtney Robertson][11] ### 具体一点 -作为一个频繁发布的管理者,我喜欢将组件命名为提交的消息,以及对更改内容的简要描述。在我们忘记了你聪明的分支名称之后,还可以参考一下这项工作的请求来自何处,这有助于将修复程序联系在一起。 +作为一个经常性的发布经理,我喜欢带有组件名称的提交的信息,以及对更改内容的简要描述。在我们忘记了你聪明的分支名称之后,还可以参考一下这项工作的请求来自何处,这有助于将修复程序联系在一起。 -- “fix fatal error”并不是理想的提交。 +- “修复致命错误”并不是理想的提交。 +- “ISS-304: 修复具有合作伙伴角色的用户在登录访问控制功能中的致命错误”更好。 +- “ISS-304: 登录访问控制:修复 `getPartnerId()` 的致命错误”也更好。 -- “ISS-304: Fix fatal error in Login Access Control function for users with the Partner role”更好。 +我可以查看 Git 提交、分支、合并提交之间的整个关系,并检查更改的各个行和文件。但我在发布过程中没有这样的时间。我希望能够在项目管理工具回溯这项工作的源头,了解哪些组件正在被更改,以及以何种方式进行更改。 -- “ISS-304: Login Access Control: fix fatal error in getPartnerId()”也是更好。 - -我可以查看 Git 提交、分支、合并提交之间的整个关系,并检查更改的各个行和文件。但我在发布过程中没有这样的时间。我希望能够回到项目管理工具中这项工作的来源,了解哪些组件正在被更改,以及以何种方式进行更改。 - -**—[Ryan Price][12]** +—— [Ryan Price][12] ### 让它成为一种习惯 -我最喜欢犯的错误是“在我切换分支之前提交”,因为我必须处理其他更紧急的事情。有时候,我需要把我目前的工作提交给一个完全不同的项目。我的经理的策略是让我们像平时一样工作。但当我们重新启动时,他希望我们在有意义的地方压缩提交,并编写更好的消息。我不能说我们总是这样做,但他的方法确实有道理。 +我最喜欢犯的错误是“在我切换分支之前提交”,因为我必须处理其他更紧急的事情。有时候,我需要把我目前的工作提交给一个完全不同的项目。我的经理的策略是让我们像平时一样工作。但当我们变基时,他希望我们在有意义的地方压扁提交,并编写更好的信息。我不能说我们总是这样做,但他的方法确实有道理。 -我也有很多“这是坏的,不知道为什么”类型的消息(哈哈),我尝试了一些东西,但想在尝试其他东西之前提交该尝试,以防方法 A 比方法 B 更接近解决问题。我已经写了 10 多年了。 +我也有很多“这个坏了,不知道为什么”类型的信息(哈哈),我尝试了一些东西,但想在尝试其他东西之前提交该尝试,以防方法 A 比方法 B 更接近解决问题。我已经写了 10 多年了。 -**—[RachieVee][13]** +—— [RachieVee][13] -你生活中的提交信息建议或提示是什么?让我们在评论中知道。 +你的提交信息建议或提示是什么?让我们在评论中知道。 -------------------------------------------------------------------------------- @@ -164,7 +166,7 @@ via: https://opensource.com/article/22/12/git-commit-message 作者:[AmyJune Hineline][a] 选题:[lkxed][b] 译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -183,3 +185,4 @@ via: https://opensource.com/article/22/12/git-commit-message [11]: https://opensource.com/users/courtneyrdev [12]: https://opensource.com/users/liberatr [13]: https://opensource.com/users/rachievee +[0]: https://img.linux.net.cn/data/attachment/album/202301/22/184300vcsqmm85ub1ssh4b.jpg \ No newline at end of file From 8a75295763efcdc5b15bce0e9aa666822a58f198 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 18:44:44 +0800 Subject: [PATCH 2621/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @ZhangZhanhaoxiang 本文首发地址:https://linux.cn/article-15467-1.html 您的 LCTT 专页:https://linux.cn/lctt/ZhangZhanhaoxiang --- ...28.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md (99%) diff --git a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md similarity index 99% rename from translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md rename to published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md index 4b4c9955d5..74a7de54a8 100644 --- a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md +++ b/published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15467-1.html" 编写好 Git 提交信息的 11 个技巧 ====== From a46a78fa2fc7eb78af2033a2568930c473c19255 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 13:23:34 +0800 Subject: [PATCH 2622/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow 翻译的很好很细心。有一点小建议,不要使用太长的句子,尽可能的分成短句,这样有利于阅读 —— 当然,原文如此,我们拆分有时候也不是很顺畅。 --- .../20190331 Codecademy vs. The BBC Micro.md | 62 ++++++++++--------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md index f0e1dc7469..95f226cf35 100644 --- a/translated/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -7,74 +7,76 @@ [#]: publisher: " " [#]: url: " " -BBC Micro 比之 Codecademy +上世纪的 BBC Micro 和如今的 Codecademy ====== +![][0] + 20 世纪 70 年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业级霸主的神秘而笨重的机器。少数狂热的爱好者注意到了它是多么的吸引人,并争相购买了属于自己的计算机。对更多的人而言,微型计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺,家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,而在他的身后,他的那些显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它类似的广告在暗示:世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20 世纪 70 年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇 1979 年的政府报告担心:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[^1]。英国似乎已经在计算机技术的角逐中落后了 —— 所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 -由英国政府建立的公共服务广播公司英国广播公司(BBC)作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感,来解决英国的国家竞争力问题。BBC 发起了 “[计算机认知计划][T3]Computer Literacy Project”,该计划包括多个教育方向的努力:几部电视连续剧,一些相关书籍,一张支持团队网络以及一款名为 [BBC Micro][T2] 的特别定制的微型计算机。该项目是如此成功,以致于 1983 年 《[BYTE][T4]》杂志的一位编辑写道:“与美国相比,英国人对微型计算机感兴趣的比例更高。”[^2] 这位编辑惊讶于在英国举办的 “第五届个人电脑世界展Fifth Personal Computer World Show” 的人数比参加当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由该计划制作的第一部电视连续剧,并最终售出了 150 万台 BBC Micro 微型计算机。[^3] +由英国政府建立的公共服务广播公司英国广播公司(BBC)作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感,来解决英国的国家竞争力问题。BBC 发起了 “[计算机认知计划][T3]Computer Literacy Project”,该计划包括多个教育方向的努力:几部电视连续剧、一些相关书籍、一个支持团队网络以及一款名为 [BBC Micro][T2] 的特别定制的微型计算机。该项目是如此成功,以致于 1983 年 《[BYTE][T4]》杂志的一位编辑写道:“与美国相比,英国人对微型计算机感兴趣的比例更高。”[^2] 这位编辑惊讶于在英国举办的 第五届个人计算机世界展Fifth Personal Computer World Show 的人数比参加当年的西海岸计算机展的人数更多。超过六分之一的英国人观看了由该计划制作的第一部电视连续剧,并最终售出了 150 万台 BBC Micro 微型计算机。[^3] -去年,一份包含了由计算机认知计划所制作的每部电视连续剧和所有出版资料的 [档案][4] 被发布在了互联网上。我抱着极大的兴趣观看这些电视连续剧,并试图想象在 20 世纪 80 年代早期学习电脑使用是什么样子。但事实证明,更有趣的是计算机是如何被教授的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 [Codecademy][T1] 这样的网站,通过新技术的运用进行交互式编程教学。我们可能假定这种方式比 80 年代的呆板的电视连续剧更高效,不过真的是这样吗? +去年,一份包含了由计算机认知计划制作的每一部电视连续剧和所有出版资料的 [档案][4] 被发布在了互联网上。我抱着极大的兴趣观看了这些电视连续剧,并试图想象在 20 世纪 80 年代早期学习计算机使用是什么样子。但事实证明,更有趣的是计算机是如何被教授的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编码”。我们拥有诸如 [Codecademy][T1] 这样的网站,通过新技术的运用进行交互式编程教学。我们可能假定这种方式比 80 年代的呆板的电视连续剧更高效,不过真的是这样吗? ### 计算机认知计划 -微型计算机革命始于 1975 年 [Altair 8800][5] 的发布。仅仅两年后,Apple II、TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978 年,BBC 在一部名为 《[芯片来了][T5]Now the Chips Are Down》(LCTT 译注:对于非英国区域的读者,可以在 [这里][T6] 观看该纪录片)的纪录片中探讨了这些新机器必将会带来的剧烈的社会变革。 +1975 年发布的 [Altair 8800][5] 拉开了微型计算机革命的大幕。不到两年,Apple II、TRS-80 以及 Commodore PET 也都相继发布。全新的计算机的销量爆发式增长。1978 年,BBC 在一部名为 《[芯片来了][T5]Now the Chips Are Down》(LCTT 译注:对于非英国区域的读者,可以在 [这里][T6] 观看该纪录片)的纪录片中探讨了这些新机器必将会带来的剧烈的社会变革。 -该纪录片充满担忧。在前 5 分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放,屏幕上绿色的电脉冲围绕着放大后的芯片上起舞,解说员进一步说,这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。该纪录片继续探讨了机器人如何用于汽车自动化组装,以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它指责英国政府在应对未来的大规模失业的准备上做得不够。 +该纪录片充满担忧。在前 5 分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放,屏幕上绿色的电脉冲围绕着放大后的芯片起舞,解说员进一步说,这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。该纪录片继续探讨了机器人如何用于汽车自动化组装,以及欧洲的手表业如何在与美国的电子表行业竞争中败下阵来。它指责英国政府在应对未来的大规模失业的准备上做得不够。 -该纪录片据信可能在英国议会上展示过。[^4] 包括工业署和人力服务委员会在内的一些政府代表开始对尝试提高英国公众对计算机的认识感兴趣。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份报告,历数了微电子技术在工业制造、劳动关系与办公室工作等领域的哪些方面将发生重大改变。70 年代末,BBC 决定制作一部十集电视连续剧,帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”[^5]。这一努力最终成为了一个与“成人扫盲计划Adult Literacy Project”相似的多媒体项目。成人扫盲计划是 BBC 此前进行的一项工作,包括一部电视连续剧以及补充课程,帮助两百万人提高他们的阅读能力。 +该纪录片据信可能在英国议会上展示过。[^4] 包括工业署和人力服务委员会在内的一些政府代表,开始对尝试提高英国公众对计算机的认识感兴趣。人力服务委员会为来自 BBC 的教育部门提供了资助,让他们的一个团队到日本、美国以及其他国家进行了实地考察。该研究团队完成了一份报告,历数了微电子技术在工业制造、劳动关系与办公室工作等领域的哪些方面将发生重大改变。70 年代末,BBC 决定制作一部十集电视连续剧,帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”[^5]。这一努力最终成为了一个与 “成人认知计划Adult Literacy Project” 相似的多媒体项目。成人认知计划是 BBC 此前进行的一项工作,包括一部电视连续剧以及补充课程,帮助两百万人提高他们的阅读能力。 -计算机认知计划背后的制作方热衷于以“实操”示例为特色的电视连续剧。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子必须使用 BASIC 语言,因为这是在几乎所有的微型计算机上都使用的编程语言(实际是整个 交互界面shell)。但是制作者面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言 —— BBC BASIC,以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机,并依照示例操作,而不需要担心软硬件上的差异带来的问题。 +计算机认知计划背后的制作方热衷于以“实操”示例为特色的电视连续剧。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子必须使用 BASIC 语言,因为这是在几乎所有的微型计算机上都使用的编程语言(实际是整个 交互界面shell)。但是制作者面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言 —— BBC BASIC,以及与之配合使用的微型计算机。英国公众可以购买这种全新的微型计算机,并依照示例操作,而不需要担心软硬件上的差异带来的问题。 -BBC 的电视制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范,并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。计算机认知计划的技术顾问还建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的方言(他们可能没有确切地这样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[^6] +BBC 的电视制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范,并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求提供一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。计算机认知计划的技术顾问还建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的方言(他们可能没有确切地这样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[^6] -BBC 最终决定由一家位于剑桥的名为 Acorn Computers 的公司制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 [Clive Sinclair][T7] 的申请,他经营着一家 Sinclair Research 公司。1980 年,Sinclair 公司通过 Sinclair ZX80 为英国带来了微型计算机的大众市场。Sinclair 公司的新产品 ZX81 虽然更便宜,但是性能不足以满足 BBC 的要求。Acorn 的新型电脑(内部被称为 Proton)的原型机更加昂贵,但是性能更好,更具备扩展性。BBC 对此印象深刻。该型号的计算机从未以 “Proton” 的名字上市或销售过,因为它在 1981 年 12 月以 “BBC Micro” 的名字发布了。BBC Micro 又被亲切地称为 “The Beeb”,你可以以 235 英磅的价格购得其 16k 内存的版本,或者以 335 英磅的价格获得其 32k 内存的版本。 +BBC 最终决定由一家位于剑桥的名为 Acorn Computers 的公司制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 没有接受来自 [Clive Sinclair][T7] 的申请,他经营着一家 Sinclair Research 公司。1980 年,Sinclair 公司通过 Sinclair ZX80 为英国开拓了微型计算机的大众市场。虽然 Sinclair 公司的新产品 ZX81 更便宜,但是性能不足以满足 BBC 的要求。而 Acorn 的新型计算机(内部被称为 Proton)的原型机更加昂贵,但是性能更好,更具备扩展性。BBC 对此印象深刻。该型号的计算机从未以 “Proton” 的名字上市或销售过,因为它在 1981 年 12 月以 “BBC Micro” 的名字发布了。BBC Micro 又被亲切地称为 “The Beeb”,你可以以 235 英磅的价格购得其 16k 内存的版本,或者以 335 英磅的价格获得其 32k 内存的版本。 -1980 年,Acorn 在英国计算机行业处于劣势,但是 BBC Micro 帮助 Acorn 公司创立了遗产。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM” 如今表示 “先进 RISC 架构设备Advanced RISC Machine”,然而最初它代表的是 “Acorn RISC 架构设备Acorn RISC Machine”。ARM 架构背后的 ARM 控股公司就是 Acorn 公司在 1990 年之后的延续。 +到了 1980 年,Acorn 在英国计算机行业逐渐衰微,但是 BBC Micro 帮助 Acorn 公司创立了其遗留至今的宝贵遗产。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM” 如今代表的是 “先进 RISC 架构设备Advanced RISC Machine”,然而最初它代表的是 “Acorn RISC 架构设备Acorn RISC Machine”。ARM 架构背后的 ARM 控股公司就是 Acorn 公司在 1990 年之后的延续。 ![Picture of the BBC Micro.][9] -_BBC Micro 的一幅拙劣图片,我摄于美国加州山景城的计算机历史博物馆Computer History Museum_ +_BBC Micro 的一幅差劲的图片,我摄于美国加州山景城的计算机历史博物馆Computer History Museum_ ### 《计算机程序》电视连续剧 -作为计算机认知计划的一部分,最终制作了十几部不同的电视连续剧。第一部作品是一部名为 《计算机程序The Computer Programme》 的十集电视连续剧。该连续剧在 1982 年初播出了十周。每周晚上有一百万人收看该节目,另有有 25 万人在每周日与周一的下午收看该节目的重播。 +作为计算机认知计划的一部分,他们最终制作了十几部不同的电视连续剧。第一部作品是一部名为 《计算机程序The Computer Programme》 的十集电视连续剧。该连续剧在 1982 年初播出了十周。每周晚上有一百万人收看该节目,还有 25 万人在每周日与周一的下午收看该节目的重播。 -该电视节目由两名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演专家,他具有专业的大型计算机编程经验。这是一个启发性的方式,有些 [略显笨拙的过渡][10] —— Serle 经常直接从与 McNaught-Davis 的对话中,过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言,并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,那么它的亲和力就会差很多。 +该电视节目由两名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演专家,他具有专业的大型计算机编程经验。这是一个启发性的方式,有些 [略显笨拙的过渡][10] —— Serle 经常直接从与 McNaught-Davis 的对话中,过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注 —— 他可能会惊恐地看着满屏的 BASIC 语言,并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在计算机前进行事实上的结对编程。McNaught-Davis 会在各个地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,那么它的亲和力就会差很多。 -该节目也在努力展示计算在普通人生活中的实际应用。到 80 年代早期,家庭电脑已经开始与年轻男孩和电子游戏联系在一起。计算机认知计划的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣 [^7]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一位女性,她购买了一台 Commodore PET 电脑用于辅助管理她的糖果店。这位名叫 Phyllis 的女性受访者看上去大约 60 多岁,但她在使用 PET 完成她的会计工作上没有任何问题,甚至已经开始使用 PET 为其他企业做计算机工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢计算机工作。这次采访倒是可以换成对一名青少年的采访,介绍了他是如何修改 《[Breakout][T8]》 这款电子游戏,以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果普罗大众中的 Phyllis 都会使用电脑,那么你当然也可以。 +该节目也在努力展示计算在普通人生活中的实际应用。到 80 年代早期,家用电脑已经开始与年轻男孩和电子游戏联系在一起。计算机认知计划的制作方试图避免采访“令人印象深刻的、有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正打算吸引这一人群对计算感兴趣 [^7]。在该系列的第一集中,该节目的 “现场” 记者 Gill Nevill 采访了一位女性,她购买了一台 Commodore PET 计算机用于辅助管理她的糖果店。这位名叫 Phyllis 的女性受访者看上去大约 60 多岁,但她在使用 PET 完成她的会计工作上没有任何问题,甚至已经开始使用 PET 为其他企业做计算机工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意计算机工作逐步取代她的糖果店生意,因为她更喜欢计算机工作。这次采访要是换成对一名青少年的采访,介绍了他是如何修改 《[Breakout][T8]》 电子游戏,以使之运行更快并更具挑战性,不过这就几乎鼓舞不了任何人。另一方面,如果普罗大众中的 Phyllis 都会使用计算机,那么你当然也可以。 -虽然该节目以大量的 BASIC 编程为特色,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中,有一个关于 [Jacquard][T9] 织机(LCTT 译注:中文网络译为雅卡尔提布机)的延伸讨论,主要是两个方面:其一,它揭示了计算机并不仅仅基于昨天发明的神秘技术 —— 计算的一些基本原则可以上溯到两百年前,就跟你可以在卡片上打孔来控制纺织机的想法一样简单;其二,经线与纬线的交织用来证明二元选择(即纬线是从上方还是下方穿过经线)在不断重复时足以产生巨大变化。当然,节目接下来继续讨论信息是如何使用二进制存储的。 +虽然该节目以大量的 BASIC 编程为特色,不过它实际想要教给观众的是,计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中,有一个关于 [Jacquard][T9] 织机(LCTT 译注:中文网络译为雅卡尔提布机)的延伸讨论,主要是两个方面:其一,它揭示了计算机并不仅仅基于昨天发明的神秘技术 —— 计算的一些基本原则可以上溯到两百年前,就跟你可以在卡片上打孔来控制纺织机的想法一样简单;其二,经线与纬线的交织用来证明二元选择(即纬线是从上方还是下方穿过经线)在不断重复时足以产生巨大变化。当然,节目接下来继续讨论信息是如何使用二进制存储的。 -在该节目中接下来是一个蒸汽管风琴的章节,该管风琴能够演奏编码在一卷长长的、分段的打孔卡片的音乐。这个类比用以解释 BASIC 中的 子程序subroutine。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在演播室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下,并以某种方式添加一条指令,回到第一次播放副歌的原始分段,这就是子程序。这是一个绝妙的解释,它在人们的脑海中的印象非常深刻。 +在该节目中接下来是一个蒸汽管风琴的章节,该管风琴能够演奏编码在一卷长长的、分段的打孔卡片的音乐。这个类比用以解释 BASIC 中的 子程序subroutine。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在演播室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下,并以某种方式添加一条指令,回到第一次播放该副歌的最初的分段,这就是子程序。这是一个绝妙的解释,它在人们的脑海中的印象非常深刻。 我仅仅摘录了一些例子,不过我认为,总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原理,使计算机不再神秘。这一节目本可以专注于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在 1983 年写就的一篇回忆文章中,计算机认知计划的总制作人 John Radcliffe 如是写道: -> 如果计算机将如我们所相信的那样重要,对这一新主题的真正理解对每个人都很重要,也许与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,尽管我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来……。我们相信,一旦人们掌握了这些最简单的原则,它们将可以进一步深入该主题。 +> 如果计算机将如我们所相信的那样重要,对这一新主题的真正理解对每个人都很重要,也许与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,尽管我们意识到“动手”体验在个人计算机上的价值,但我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来……。我们相信,一旦人们掌握了这些最简单的原则,它们将可以进一步深入该主题。 后来,Radcliffe 又以类似的口吻写道: -> 围绕着这一系列节目的主要阐释目标有很多争论。一派人认为,在使用微型计算机上的实际细节上给予建议,对本项目而言尤为重要。但我们的结论是,如果该系列节目要拥有可持续性的教育价值,它就必须通过对计算原理的解释,成为进入真实计算世界的一种方式。这需要通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 +> 围绕着这一系列节目的主要阐释目标有很多争论。一些人认为,在使用微型计算机上的实际细节上给予建议,对本项目而言尤为重要。但我们的结论是,如果该系列节目要拥有可持续性的教育价值,它就必须通过对计算原理的解释,成为进入真实计算世界的一种方式。这需要通过对微型计算机上的室内演示,通过类比方式解释其中的原则,以及通过电影说明实际应用的真实例子来实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 -我喜爱这一连续剧,尤其是其中关于小型机与大型机的部分。计算机认知计划背后的制作方旨在帮助英国人找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 +我喜爱这一连续剧,尤其是其中关于小型机与大型机的部分。计算机认知计划背后的制作方旨在帮助英国人找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎不足以使人们认知计算机。 -### 今天的计算机认知 +### 如今的计算机认知 -如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品——存在相同的影响与目标,那就是 Codecademy。 +如果你现在搜索“学习编码”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品 —— 具有相同的影响与目标,那就是 Codecademy。 -对于普通人而言“Learn to code”(学习编程)是 Codecademy 的口号。我认为我不是第一个指出这一点的人——事实上我曾经在某个地方见到过这一点,只是现在拿来用而已。但是这里使用的是“code”(代码)而非“编程”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的价值而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的电脑屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些术语。但是理解语法并不是成为程序员的最大的挑战。面对更多更大的障碍,它很快将变成微不足道的。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码但是无法做到 _编写_ 代码解决全新的问题。 +“学习编码learn to code” 是 Codecademy 的口号。我认为我不是第一个指出这一点的人 —— 事实上我可能在某个地方读过这句话,只是现在拿来用而已。但是这里使用的是 “编码code” 而非 “编程program”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的意思,而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言,这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的计算机屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些天书一样的字符。但是理解语法并不是成为程序员的最大的挑战。在更大的障碍面前,它很快将变成微不足道。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码,但是无法做到 _编写_ 代码以解决全新的问题。 -我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 +我最近学习了 Codecademy 的 《编程基础》 课程。如果你对编程感兴趣(而不是对网页开发或者数据科学),并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,[一位高尚的互联网秩序义务维护者][12] 指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了让你理解天书般的代码中的模式,而所需要知道的内容。 -公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动计算机认知计划的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? +公平地看,Codecademy 也提供了其他内容深入的课程。但是即使是如 《计算机科学之路》 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这才是重点 —— Codecademy 的主要特点就是提供给你一些交互式的、带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动计算机认知计划的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[^8]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。难道 Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? -我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 +我一直在大声鼓吹 “一般原则”,因此让我再解释下我认为的一般原则是什么,以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 《但是它怎么知道?But How Do It Know?》。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定 —— 保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是数字大脑,能够基于提供给它们的代码 “选择” 做一件事或者另一件事。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用计算机完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 -唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 +唉,可能真正的问题是没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于 “提升” 他们的职业水平。他们没有来由地相信,首要的问题是理解编程的专业术语,因此他们才想要 “学习编码”。他们想要在他们所拥用的。每天晚上晚餐与就寝之间的一两个小时里尽快完成这件事。Codecademy 毕竟只是一门投其所好的生意,而非一些有关 18 世纪就发明了的机器的间接说明。 -另一方面,计算机认知计划 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 +另一方面,计算机认知计划是供职于 BBC 的一群制作人与公务员所认为的,将计算机的使用教给国民的最好的方式。我承认,因为这一群人教会大众他们无法以己之力所能求得的事物,而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用计算机,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所说的][14],我怀疑在计算机已经变得相对简单的时代里,学习使用计算机是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 《计算机程序》 这样的尽己所能不仅仅教授编程,而且教授计算机是为什么又是如何运行程序的节目。在看完 《计算机程序》 之后,你可能并不能理解计算机屏幕上的所有天书般的编程术语,但是实际上你也并不需要,因为你知道无论 “代码” 是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能能够感受一些天书般的编程术语,但是对你来说,一台计算机仍然只是一台能够以某种方式将天书般的字符转化为运行的软件的魔法机器。但这并不是计算机认知。 -------------------------------------------------------------------------------- @@ -83,7 +85,7 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html 作者:[Two-Bit History][a] 选题:[lujun9972][b] 译者:[CanYellow](https://github.com/CanYellow) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -103,7 +105,7 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [^1]: Robert Albury and David Allen, Microelectronics, report (1979).  [^2]: Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, .  -[^3]: John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20].  +[^3]: John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, .  [^4]: David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, .  [^5]: ibid.  [^6]: Williams, 51.  @@ -119,3 +121,5 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T7]: https://en.wikipedia.org/wiki/Sinclair_Research [T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) [T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom + +[0]: https://img.linux.net.cn/data/attachment/album/202301/23/131931eegzjokllq1j440z.jpg \ No newline at end of file From 3f43703b916e70386d3450b37658f01c0c93b28f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 13:24:05 +0800 Subject: [PATCH 2623/3123] P @CanYellow https://linux.cn/article-15469-1.html --- .../20190331 Codecademy vs. The BBC Micro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20190331 Codecademy vs. The BBC Micro.md (99%) diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/published/20190331 Codecademy vs. The BBC Micro.md similarity index 99% rename from translated/talk/20190331 Codecademy vs. The BBC Micro.md rename to published/20190331 Codecademy vs. The BBC Micro.md index 95f226cf35..6ca577800c 100644 --- a/translated/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/published/20190331 Codecademy vs. The BBC Micro.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "CanYellow" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15469-1.html" 上世纪的 BBC Micro 和如今的 Codecademy ====== From 8634eccbadfe4f17932c56643cb990e68e7fc556 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 16:38:59 +0800 Subject: [PATCH 2624/3123] RP @geekpi https://linux.cn/article-15470-1.html --- ...t and Host in virt-manager (KVMQemulibvirt).md | 49 ++++++++++--------- 1 file changed, 27 insertions(+), 22 deletions(-) rename {translated/tech => published}/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md (54%) diff --git a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md similarity index 54% rename from translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md rename to published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md index cca25c3286..e0547b8d6f 100644 --- a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ b/published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -3,45 +3,50 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15470-1.html" -在 virt-manager 中,在客户机和主机之间共享文件夹(KVM/Qemu/libvirt) +在 virt-manager 的主机和客户机之间共享文件夹 ====== -**在本指南中,你将学习如何使用 KVM、QEMU 和 libvirt 在 virt-manager 中的主机和客户机之间共享文件夹。** +![][0] +> 在本指南中,你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。 [virt-manager][1] 应用或软件包使用 [libvirt][2] 库来提供虚拟机管理服务。它有一个桌面界面,有助于创建、删除和管理多个虚拟机。 -virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个免费和开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。 +virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个自由开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。 -在之前的文章中,我解释了[如何使用 virt-manager 创建虚拟机][3]。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。 +在之前的文章中,我解释了 [如何使用 virt-manager 创建虚拟机][3]。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。 ### 关于 virtiofs 的说明 -共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了所有的功能和参数来访问主机上的目录树。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。 +共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了访问主机上的目录树的所有功能和参数。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。 ### 在 virt-manager中共享文件夹 -- 首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击打开,弹出控制台设置。 +首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击“打开Open”,弹出控制台设置。 ![打开设置][4] -- 点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的**内存**。 -- 选择选项“**启用共享内存**”。点击应用。 +点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的“内存Memory”。 + +选择选项 “启用共享内存Enable shared memory”。点击应用。 ![启用共享内存选项][5] -- 然后点击底部的“添加硬件”。 +然后点击底部的 “添加硬件Add hardware”。 ![点击添加硬件][6] -- 在添加新硬件的窗口中,从左边的面板上选择**文件系统**。 -- 然后在细节标签中选择 **Driver=virtiofs**。点击“浏览>浏览本地”,**选择你想在客户机内访问的主机路径**。 -- 在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。 -- 所以,如果我想访问 Pictures/Screenshots 文件夹(`/home/debugpoint/Pictures/Screenshots`),示例设置可以是这样: +在添加新硬件的窗口中,从左边的面板上选择 “文件系统File system”。 + +然后在 “细节Details” 标签中选择 “驱动程序Driver” 为 “virtiofs”。点击 “浏览Browse > 浏览本地browse local”,**选择你想在客户机内访问的主机路径**。 + +在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。 + +所以,如果我想访问 `Pictures/Screenshots` 文件夹(`/home/debugpoint/Pictures/Screenshots`),示例设置可以是这样: ![添加一个新的文件系统硬件][7] @@ -58,9 +63,9 @@ virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵 ``` -点击“完成”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台”(如果虚拟机没有显示,点击工具条上的监视器图标)。 +点击 “完成Finish”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台show the graphical console”(如果虚拟机没有显示,点击工具条上的监视器图标)。 -在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 /mnt/pictures。 +在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 `/mnt/pictures`。 ``` sudo mkdir /mnt/pictures @@ -72,7 +77,7 @@ sudo mkdir /mnt/pictures sudo mount -t virtiofs mount_tag_pictures /mnt/pictures ``` -现在你可以在主机和客户机之间的 virt-manager 中无缝地浏览文件夹和添加/删除项目。 +现在你可以在 virt-manager 中的主机和客户机之间的无缝地浏览文件夹和添加/删除项目。 ![从 virt-manager 客户机访问主机文件][8] @@ -82,8 +87,7 @@ sudo mount -t virtiofs mount_tag_pictures /mnt/pictures 如果你遇到任何错误,上述指南帮助了你,请在下面留言。 -_[参考][9]_ - +- [参考][9] -------------------------------------------------------------------------------- @@ -92,7 +96,7 @@ via: https://www.debugpoint.com/share-folder-virt-manager/ 作者:[Arindam][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/) 荣誉推出 @@ -107,3 +111,4 @@ via: https://www.debugpoint.com/share-folder-virt-manager/ [7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-new-file-system-hardware.jpg [8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Access-host-files-from-virt-manager-guest.jpg [9]: https://libvirt.org/kbase/virtiofs.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/23/163636dm5j1wrsga95xgrd.jpg \ No newline at end of file From 4d0a445bbde28a677c3f5c9f870f1f4d6c83b2fc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 23:13:32 +0800 Subject: [PATCH 2625/3123] R @ZhangZhanhaoxiang --- ...tu on Windows Using VirtualBox [Complete Guide].md | 131 +++++++++--------- 1 file changed, 66 insertions(+), 65 deletions(-) diff --git a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md index 2916547f27..434e69b255 100644 --- a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md +++ b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -3,130 +3,134 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -使用 VirtualBox 在 Windows 上安装 Ubuntu[完整指南] +完整指南:使用 VirtualBox 在 Windows 上安装 Ubuntu ====== -**本教程将指导您用最简单的步骤在 Windows 端的 Oracle VirtualBox 上安装 Ubuntu 桌面。** +![][0] -[VirtualBox][1] 是 Oracle 的一款流行的虚拟化软件,可用于 Linux、mac 和 Windows 系统。它是灵活的,并提供了许多功能来实现您的虚拟化。这是在 Windows 中体验 Ubuntu 而不安装它的最佳且简单的方法。然而,我强烈建议将 Ubuntu 以双引导的方式安装在物理机上,从而更好地体验 Ubuntu。 +> 本教程将指导你用最简单的步骤在 Windows 上的 Oracle VirtualBox 上安装 Ubuntu 桌面版。 -下面列出的步骤假设您是第一次在 Windows 中安装 Ubuntu。因此,这些步骤有点描述性,也有点冗长。此外,以下步骤适用于 Windows 10 和 Windows 11 作为主机。 +[VirtualBox][1] 是 Oracle 的一款流行的虚拟化软件,可用于 Linux、mac 和 Windows 系统。它是灵活的,并提供了许多功能来实现虚拟化。这是在 Windows 中体验 Ubuntu 而不安装它的最佳且简单的方法。然而,我强烈建议将 Ubuntu 以双引导的方式安装在物理机上,从而更好地体验 Ubuntu。 -### 目录 - -- [先决条件][2] -- [下载 Ubuntu ISO 和 VirtualBox 安装文件][3] -- [在 Windows(Host) 上安装 VirtualBox][4] -- [在 VirtualBox 上安装 Ubuntu(Guest)][5] -- [客体机额外的安装和提示][6] +下面列出的步骤假设你是第一次在 Windows 中安装 Ubuntu。因此,这些步骤有点描述性,也有点冗长。此外,以下步骤适用于 Windows 10 和 Windows 11 作为宿主机。 ### 你需要什么 - 可上网的 PC -- 用于安装的 Ubuntu Linux ISO 映像文件 +- 用于安装的 Ubuntu Linux ISO 镜像文件 - 安装了 VirtualBox 的 Windows 系统 ### 使用 VirtualBox 在 Windows 上安装 Ubuntu #### 下载并安装必要的东西 -- 从以下链接下载 Ubuntu Linux 桌面 ISO 映像文件。 +从以下链接下载 Ubuntu Linux 桌面版 ISO 镜像文件。 -[下载 Ubuntu 桌面][7] +> **[下载 Ubuntu 桌面版][7]** -- 此外,请从下面的官方网站下载 Oracle VirtualBox 安装程序。 +此外,请从下面的官方网站下载 Oracle VirtualBox 安装程序。 -[下载 VirtualBox][8] +> **[下载 VirtualBox][8]** ![VirtualBox for Windows 的下载位置][9] #### 如何安装和配置 VirtualBox -Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable package。你必须先安装它。从以下链接下载软件包(X64 架构): +Windows 中的 VirtualBox 需要 “Microsoft Visual C++ 2019 Redistrobutiable package”。你必须先安装它。从以下链接下载软件包(X64 架构): -[下载][10] +> **[下载 MSVC][10]** ![下载 VirtualBox 的依赖项][11] ![安装 VirtualBox 的依赖项][12] -- 完成以上安装后,从以下链接下载最新的 Python 包。Python 绑定也是 Windows 端 VirtualBox 安装所需的依赖项。 +完成以上安装后,从以下链接下载最新的 Python 包。Python 绑定也是 Windows 端 VirtualBox 安装所需的依赖项。 -[下载 Python for Windows][13] +> **[下载 Python for Windows][13]** -- 然后,启动 VirtualBox 安装程序并按照屏幕上的说明进行安装。 -- 安装后,重新启动 Windows 系统。 +然后,启动 VirtualBox 安装程序并按照屏幕上的说明进行安装。 + +安装后,重新启动 Windows 系统。 #### 为 Ubuntu 设置虚拟机 -- 从开始菜单启动 VirtualBox。 +从开始菜单启动 VirtualBox。 ![从开始菜单中选择 VirtualBox][14] -- 在 VirtualBox 窗口工具栏上,单击 **新建**。 -- 在 **创建 VirtualBox** 窗口中,输入虚拟机的名称。它可以是标识此版本 Ubuntu 的任何名称。 -- 保持 **文件夹名称** 不变。这是创建虚拟机文件的路径。 -- 在 ISO Image 一栏,浏览您下载的 Ubuntu ISO 文件。 -- 然后选择无人值守安装(Unattended installation)。如果不选择此选项,将在虚拟机中创建一个 [默认用户 id(vboxuser)和密码][15]。让我们暂时不要管它。 +在 VirtualBox 窗口工具栏上,单击 “新建New”。 ![单击新建][16] +- 在创建虚拟机窗口中,输入虚拟机的名称。它可以是标识此版本 Ubuntu 的任何名称。 +- 保持 “文件夹Folder” 不变。这是创建虚拟机文件的路径。 +- 在 “ISO 镜像文件ISO Image” 一栏,浏览你下载的 Ubuntu ISO 文件。 +- 然后选择 “跳过无人值守安装 Skip Unattended installation”。如果不选择此选项,将在虚拟机中创建一个 [默认用户 id(vboxuser)和密码][15]。让我们暂时不要管它。 + ![选择 ISO 文件][17] -- 单击 Hardware(硬件)并调整虚拟机所需的 RAM。一般的经验是,VM 的 RAM 大小应该小于主机系统中的物理 RAM。我建议对于 8 GB RAM 系统的虚拟机使用 2 GB 到 4 GB。对于 4 GB RAM,拖动滑块(或键入)使其为 4096 MB(即 4×1024)。 +- 单击 “硬件Hardware” 部分,并调整虚拟机所需的内存。一般的经验是,虚拟机的内存大小应该小于主机系统中的物理内存。我建议对于 8 GB 内存系统的虚拟机使用 2 GB 到 4 GB。要选择 4 GB 内存,拖动滑块(或键入)使其为 4096 MB(即 4×1024)。 - 选择 2 或 4 核处理器。 -- 单击“硬盘”选项,并保持文件位置不变。 -- 为 Ubuntu 安装提供至少 20 GB 到 25 GB 的容量。 -- 硬盘文件类型值保持为 VDI(VirtualBox 磁盘映像) -- 不要选择 pre-allocate full size(预分配完整大小)。 -- 最后,单击 Finish 完成。 ![选择硬件][18] +- 单击 “硬盘Hard Disk” 部分,并保持文件位置不变。 +- 为 Ubuntu 安装提供至少 20 GB 到 25 GB 的容量。 +- 硬盘文件类型值保持为 VDI(VirtualBox 磁盘镜像) +- 不要选择 “预分配完整大小Pre-allocate Full Size”。 +- 最后,单击 “完成Finish”。 + ![选择硬盘][19] -- 您应该在 VirtualBox 的左侧面板上看到一个新条目,其中包含一个 Ubuntu 22.04 条目(您之前设置的名称)。 -- 选择条目并单击开始以引导到虚拟机 +你应该在 VirtualBox 的左侧面板上看到一个新条目,其中包含一个 Ubuntu 22.04 条目(你之前设置的名称)。 + +选择条目并单击 “开始Start” 以引导到虚拟机: ![在 VirtualBox 中启动 Ubuntu][20] #### 使用 VirtualBox 安装 Ubuntu -- 成功引导后,您应该看到以下屏幕,其中显示了安装 Ubuntu 的各种选项。选择 **尝试或安装 Ubuntu**。 -- 在欢迎屏幕中,单击 **尝试 Ubuntu**。过了一会儿,你会看到下面的 Ubuntu LIVE 桌面。如果要更改分辨率,请右键单击桌面并选择显示设置。并将分辨率更改为 1400×900。 -- 在桌面上,双击“**安装 Ubuntu**…”。 +成功引导后,你应该看到以下屏幕,其中显示了安装 Ubuntu 的各种选项。选择 “尝试 UbuntuTry Ubuntu” 或 “安装 UbuntuInstall Ubuntu”。 + +在欢迎屏幕中,单击 “尝试 UbuntuTry Ubuntu”。过了一会儿,你会看到下面的 Ubuntu 临场Live桌面。如果要更改分辨率,请右键单击桌面并选择显示设置。并将分辨率更改为 1400×900。 ![选择尝试 Ubuntu][21] +在桌面上,双击 “安装 UbuntuInstall Ubuntu”。 + ![Ubuntu LIVE 桌面][22] -- 在下一组屏幕中,根据需要选择语言和键盘布局。 -- 安装屏幕为您提供所需的安装类型。选择“正常安装”,然后在“其他选项”下选择两个选项。 -- 由于您是在虚拟磁盘空间中安装的,即它只是一个文件,因此您可以安全地选择“擦除磁盘并安装 Ubuntu”选项。 -- 点击立即安装并继续。 +在下一组屏幕中,根据需要选择 “语言Language” 和 “键盘布局Keyboard Layout”。 ![选择语言][23] ![选择键盘布局][24] +安装屏幕为你提供所需的安装类型。选择 “正常安装Normal Installation”,然后在 “其他选项Other options” 下选择两个选项。 + ![选择安装选项][25] +由于你是在虚拟磁盘空间中安装的,即它只是一个文件,因此你可以安全地选择 “擦除磁盘并安装 UbuntuErase disk and install Ubuntu” 选项。 + ![安装类型][26] +点击 “立即安装Install Now” 并 “继续Continue”。 + ![将更改写入磁盘][27] -- 然后选择地区,添加姓名、用户和密码。这将是安装后登录 Ubuntu 的用户 id 和密码。 -- 单击“继续”开始安装。等到它完成。 +然后选择 “地区region”,添加“你的名字Your name”、“计算机名称Your computer's name”、“用户名Username” 和 “密码Password”。这将是安装后登录 Ubuntu 的用户 id 和密码。 + +单击 “继续Continue” 开始安装。等到它完成。 ![创建用户帐户][28] -![Ubuntu 安装完成][29] +安装完成后,单击 “立即重新启动Restart Now”。等待几秒钟,你将看到一个登录屏幕。使用用户 id 和密码登录。你应该看到 Ubuntu 桌面在 Windows 端 VirtualBox 中作为 VM 运行。 -安装完成后,单击“立即重新启动”。等待几秒钟,您将看到一个登录屏幕。使用用户 id 和密码登录。您应该看到 Ubuntu 桌面在 Windows 端 VirtualBox 中作为 VM 运行。 +![Ubuntu 安装完成][29] ![登录 Ubuntu][30] @@ -136,13 +140,15 @@ Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable pack #### 安装客体机增强项 -成功安装后,应为 Windows 主机和 Ubuntu 客体机安装 **VirtualBox 客体机增强项**。客体机增强项是一组需要安装在客体 VM(即 Ubuntu)内的软件包,以启用 **共享文件夹、双向复制 / 粘贴、自动更改分辨率** 和许多类似功能。 +成功安装后,应为 Windows 宿主机和 Ubuntu 客体机安装 “VirtualBox 客体机增强项VirtualBox guest additions”。客体机增强项是一组需要安装在客体虚拟机(即 Ubuntu)内的软件包,以启用 **共享文件夹、双向复制 / 粘贴、自动更改分辨率** 和许多类似功能。 -要安装它,请引导到 Ubuntu。从 VirtualBox 菜单中,选择“设备 > 插入客体机增强 CD 映像”。必要的软件包将安装在 Ubuntu 中。 +要安装它,请引导到 Ubuntu。从 VirtualBox 菜单中,选择“设备Devices > 插入客体机增强 CD 镜像Insert Guest Additions CD Image”。必要的软件包将安装在 Ubuntu 中。 -![从菜单中选择客人添加][32] +![从菜单中选择客体机增强][32] -打开文件管理器并打开装入的文件夹,如下所示。然后右键单击 > 选择“在终端中打开”。 +打开文件管理器并打开装入的文件夹,如下所示。然后右键单击 > 选择 “在终端中打开open in terminal”。 + +![打开已挂载的光盘并选择带有终端的选项][33] 然后运行以下命令: @@ -150,41 +156,35 @@ Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable pack sudo ./VBoxLinuxAdditions.run ``` -![打开已挂载的光盘并选择带有终端的选项][33] - ![VirtualBox 为 Windows 主机添加客体机增强项][34] 完成上述命令后,重新启动 Ubuntu VM。 #### 启用 Windows 和 Ubuntu 之间的复制和粘贴 -- 要在 Windows 和 Ubuntu 系统之间启用复制和粘贴,请从菜单中选择“设备 > 共享剪贴板 > 双向”。 +要在 Windows 和 Ubuntu 系统之间启用复制和粘贴,请从菜单中选择 “设备Devices > 共享剪贴板Shared Clipboard > 双向Bi-directional”。 ![启用共享剪贴板][35] #### 关闭 Ubuntu VM -- 理想情况下,您应该从自己的关机菜单中关闭 VM。但是,您也可以从 VirtualBox 主窗口关闭。右键单击 VM 名称并选择“关闭”>“关机”。 +理想情况下,你应该从自己的关机菜单中关闭 VM。但是,你也可以从 VirtualBox 主窗口关闭。右键单击虚拟机名称并选择 “关闭Close > 关机Poweroff”。 ![关闭虚拟机][36] #### 如何删除 Ubuntu 并删除所有数据 -- 如果要完全删除虚拟机(例如 Ubuntu)及其数据,请选择“删除”和“删除所有文件”。 +如果要完全删除虚拟机(例如 Ubuntu)及其数据,请选择 “删除Remove” 和 “删除所有文件Delete All Files”。 -![选择删除以移除 VM][37] +![选择删除以移除虚拟机][37] ![选择删除选项][38] ### 结语 -在本教程中,您学习了使用 VirtualBox 在 Windows(10 或 11)上安装 Ubuntu 的最简单方法。此外,您还学习了几步安装后配置 Ubuntu VM 的基本步骤。您可以对 VirtualBox 中的其他任何 Linux 发行版使用上述步骤。 +在本教程中,你学习了使用 VirtualBox 在 Windows(10 或 11)上安装 Ubuntu 的最简单方法。此外,你还学习了几步安装后配置 Ubuntu VM 的基本步骤。你可以对 VirtualBox 中的其他任何 Linux 发行版使用上述步骤。 -如果您有任何疑问,欢迎在下面发表评论。 - -[下一篇:如何在 Windows 上安装 Python[ 初学者指南]][39] - -[_ 使用 Mastodon?关注我们的 floss.social/@debugpoint_][40] +如果你有任何疑问,欢迎在下面发表评论。 -------------------------------------------------------------------------------- @@ -193,7 +193,7 @@ via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -239,3 +239,4 @@ via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ [38]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-delete-options.jpg [39]: https://www.debugpoint.com/install-python-windows/ [40]: https://floss.social/@debugpoint +[0]: https://img.linux.net.cn/data/attachment/album/202301/23/230204pr8c36xesq5r8vx9.jpg \ No newline at end of file From 7a365da6bb17d75287f01cf19c0cd11bd76abaab Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 23:14:01 +0800 Subject: [PATCH 2626/3123] P @ZhangZhanhaoxiang https://linux.cn/article-15472-1.html --- ...️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md (99%) diff --git a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md similarity index 99% rename from translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md rename to published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md index 434e69b255..97e7bf1469 100644 --- a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md +++ b/published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15472-1.html" 完整指南:使用 VirtualBox 在 Windows 上安装 Ubuntu ====== From ab41d2f3d3df05bdcd70498901e853f11b5144f8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 00:31:52 +0800 Subject: [PATCH 2627/3123] RP @ZhangZhanhaoxiang https://linux.cn/article-15473-1.html --- ...30110.3 ⭐️⭐️ How to use methods in Java.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) rename {translated/tech => published}/20230110.3 ⭐️⭐️ How to use methods in Java.md (54%) diff --git a/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/published/20230110.3 ⭐️⭐️ How to use methods in Java.md similarity index 54% rename from translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md rename to published/20230110.3 ⭐️⭐️ How to use methods in Java.md index 494d882dd3..135aa0c64a 100644 --- a/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md +++ b/published/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -3,16 +3,20 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15473-1.html" 如何在 Java 中使用方法 ====== -Java 中的方法(在许多其他编程语言中称为“函数”)是被组合在一起并标记为可重用的代码的一部分。方法很有用,因为它们允许您在不重写相同代码的情况下执行相同的操作或一系列操作,这不仅意味着您的工作量减少,还意味着出现问题时需要维护和调试的代码减少。 +> 在这个简便的教程中,我们可以了解到 Java 中方法的定义,如何使用方法,以及何时使用方法。 -类中存在一个方法,因此标准 Java 样板代码适用: +![][0] + +Java 中的方法(在许多其他编程语言中称为“函数”)是被组合在一起并标记为可重用的一块代码。方法很有用,因为它们允许你在不重写相同代码的情况下,执行相同的操作或一系列操作,这不仅意味着你的工作量减少,还意味着出现问题时需要维护和调试的代码减少。 + +方法存在于类中,因此标准 Java 样板代码适用: ``` package com.opensource.example; @@ -24,11 +28,11 @@ public class Example { 在这样一个简单的单文件应用程序中,包定义并不是绝对必要的,但它是一个很好的习惯,而且大多数 IDE 都强制执行它。 -默认情况下,Java 会寻找在类中运行的“main”方法。方法可以是公有的或私有的,也可以是静态的或非静态的,但 main 方法必须是公有的和静态的,Java 编译器才能识别和使用它。当方法是公有的时,它可以从类外部执行。要在程序启动时调用“Example”类,其“main”方法必须是可访问的,因此将其设置为“public”。 +默认情况下,Java 会寻找在类中运行的 `main` 方法。方法可以是公有的或私有的,也可以是静态的或非静态的,但 `main` 方法必须是公有的、静态的,Java 编译器才能识别和使用它。当方法是公有的时,它可以从类外部执行。要在程序启动时调用 `Example` 类,其 `main` 方法必须是可访问的,因此将其设置为 `public`。 -下面是两个方法的简单演示:一个“main”方法在调用“Example”类时默认执行,另一个“report”方法接受“main”的输入并执行简单操作。 +下面是两个方法的简单演示:一个 `main` 方法在调用 `Example` 类时默认执行,另一个 `report` 方法接受 `main` 的输入并执行简单操作。 -为了模拟任意数据输入,我使用了 if-then 语句,该语句根据您启动应用程序的时间在两个字符串之间进行选择。换句话说,“main”方法首先设置一些数据(在现实生活中,这些数据可以来自用户输入,也可以来自应用程序其他地方的其他方法),然后“调用”“report”方法,将处理后的数据作为输入提供: +为了模拟任意数据输入,我使用了 `if`-`then` 语句,该语句根据你启动应用程序的时间在两个字符串之间进行选择。换句话说,`main` 方法首先设置一些数据(在现实生活中,这些数据可以来自用户输入,也可以来自应用程序其他地方的其他方法),然后 “调用” `report`方法,将处理后的数据作为输入提供: ``` package com.opensource.example; @@ -64,26 +68,26 @@ $ java ./Example.java Welcome to the zombie party ``` -请注意,同一“report”方法有两个不同的结果。当然,在这个简单的演示中,不需要第二种方法。模拟数据生成的 if-then 语句可能生成了相同的结果。但是,当一个方法执行一项复杂的任务时,比如将图像调整为缩略图,然后使用调整后的图像在屏幕上生成小部件,那么附加组件的“费用”就很有意义了。 +请注意,同一 `report` 方法有两个不同的结果。当然,在这个简单的演示中,不需要第二种方法。模拟数据生成的 `if`-`then` 语句可能生成了相同的结果。但是,当一个方法执行一项复杂的任务时,比如将图像调整为缩略图,然后使用调整后的图像在屏幕上生成小部件,那么附加组件的“费用”就很有意义了。 ### 何时使用 Java 方法 -很难知道何时使用方法,何时只将数据发送到 [Java 流][1]或循环中。如果你面临这个决定,答案通常是使用一种方法。原因如下: +很难知道何时使用方法,何时只将数据发送到 [Java 流][1] 或循环中。如果你面临这个决定,答案通常是使用一种方法。原因如下: - 方法开销少。它们不会给代码增加处理开销。 - 方法减少代码的行数。 -- 方法是特定的。查找名为“resizeImage”的方法通常比查找隐藏在从驱动器加载图像的函数中某个循环中的代码更容易。 -- 方法是可重用的。当您第一次编写方法时,您可能会 _认为_ 它只对应用程序中的一个任务有用。然而,随着应用程序的编写,您可能会发现自己正在使用一种您认为“已完成”的方法。 +- 方法是特定的。查找名为 `resizeImage` 的方法通常比查找隐藏在从驱动器加载图像的函数中某个循环中的代码更容易。 +- 方法是可重用的。当你第一次编写方法时,你可能会 _认为_ 它只对应用程序中的一个任务有用。然而,随着应用程序的编写,你可能会发现自己正在使用一种你认为“已完成”的方法。 ### 函数式编程与面向对象编程 -函数式编程利用方法作为执行任务的主要构造。创建一个方法,该方法接受一种数据,处理该数据,并输出新数据。将许多方法串在一起,您就拥有了一个动态且功能强大的应用程序。像 C 和 [Lua][2] 这样的编程语言就是这种编码风格的例子。 +函数式编程利用方法作为执行任务的主要构造。创建一个方法,该方法接受一种数据,处理该数据,并输出新数据。将许多方法串在一起,你就拥有了一个动态且功能强大的应用程序。像 C 和 [Lua][2] 这样的编程语言就是这种编码风格的例子。 -用代码完成任务的另一种方式是 Java 使用的面向对象模型。在面向对象编程中,方法是模板的组成部分。您可以创建对象,而不是将数据从一个方法发送到另一个方法,并可以通过使用它们的方法来更改它们。 +用代码完成任务的另一种方式是 Java 使用的面向对象模型。在面向对象编程中,方法是模板的组成部分。你可以创建对象,而不是将数据从一个方法发送到另一个方法,并可以通过使用它们的方法来更改它们。 -从面向对象的角度来看,这是一个简单的 zombie apocalypse(僵尸末日)演示程序。在函数方法中,我使用一种方法生成数据,另一种方法使用该数据执行操作。面向对象的等价物是具有表示工作单元的类。这个示例应用程序向用户显示一条当天的消息,宣布这一天会有 zombie party(僵尸派对)或 zombie apocalypse。编写一个“day”对象,然后查询该对象以了解其特性是有意义的。作为演示面向对象构造的不同方面的借口,新的示例应用程序还将统计有多少僵尸出现在 party 上(或 apocalypse)。 +从面向对象的角度来看,这是一个简单的 “僵尸末日” 演示程序。在函数方法中,我使用一种方法生成数据,另一种方法使用该数据执行操作。面向对象的等价物是具有表示工作单元的类。这个示例应用程序向用户显示一条当天的消息,宣布这一天会有僵尸派对或是僵尸末日。编写一个“天”对象,然后查询该对象以了解其特性是有意义的。作为演示面向对象构造的不同方面的借口,新的示例应用程序还将统计有多少僵尸出现在派对上(或末日)。 -Java 为每个类使用一个文件,因此要创建的第一个文件是“Day.Java”,它用作 Day 对象: +Java 为每个类使用一个文件,因此要创建的第一个文件是 `Day.Java`,它用作 `Day` 对象: ``` package com.opensource.example; @@ -120,15 +124,15 @@ public class Day { } ``` -在“类”部分中,创建了两个域:“weather”和“count”。weather 是静态的。在一天的过程中(在这种假想的情况下),weather 不会改变。要么是 party,要么是 apocalypse,持续了一整天。然而,僵尸的数量在一天中会增加。 +在“类”部分中,创建了两个域:天象 `weather` 和计数 `count`。`weather` 是静态的。在一天的过程中(在这种假想的情况下),`weather` 不会改变。要么是派对 `paradise`,要么是末日 `apocalypse`,持续了一整天。然而,僵尸的数量在一天中会增加。 -在“构造方法”部分,确定当天的天气。它是作为一个 [构造方法][3] 完成的,因为它只在类最初被调用时发生一次。 +在“构造方法”部分,确定当天的天象。它是作为一个 [构造方法][3] 完成的,因为它只在类最初被调用时发生一次。 -在“方法”部分,“report”方法只返回由构造方法确定和设置的天气报告。然而,“counter”方法生成一个随机数,并将其添加到当前僵尸计数中。 +在“方法”部分,`report` 方法只返回由构造方法确定和设置的天象报告。然而,`counter` 方法生成一个随机数,并将其添加到当前僵尸计数中。 换句话说,这个类做了三件不同的事情: -- 表示应用程序定义的“day”。 +- 表示应用程序定义的“天”。 - 设置当天不变的天气报告。 - 设置一天中不断增加的僵尸数量。 @@ -161,11 +165,11 @@ There are 35 zombies out today. UPDATE: 67 zombies. UPDATE: 149 zombies. ``` -无论调用“report”方法多少次,“weather”都保持不变,但调用“counter”方法的次数越多,僵尸的数量就会增加。 +无论调用 `report` 方法多少次,`weather` 都保持不变,但调用 `counter` 方法的次数越多,僵尸的数量就会增加。 ### Java 方法 -方法(或函数)是编程中的重要组成。在 Java 中,您可以将它们作为函数式编程的单个类的一部分使用,也可以在面向对象编程的类之间使用它们。两种类型的编程对于解决同一个问题有不同的视角,因此没有对与错之分。通过反复尝试,积累一点经验,你会知道哪一个最适合某个特定的问题。 +方法(或函数)是编程中的重要组成。在 Java 中,你可以将它们作为函数式编程的单个类的一部分使用,也可以在面向对象编程的类之间使用它们。两种类型的编程对于解决同一个问题有不同的视角,因此没有对与错之分。通过反复尝试,积累一点经验,你会知道哪一个最适合某个特定的问题。 -------------------------------------------------------------------------------- @@ -174,7 +178,7 @@ via: https://opensource.com/article/23/1/java-methods 作者:[Seth Kenlon][a] 选题:[lkxed][b] 译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者 ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -184,4 +188,4 @@ via: https://opensource.com/article/23/1/java-methods [2]: https://opensource.com/article/22/11/lua-worth-learning [3]: https://opensource.com/article/19/6/what-java-constructor [4]: https://opensource.com/article/21/8/fastjar - +[0]: https://img.linux.net.cn/data/attachment/album/202301/24/003036jk84quk8ngdqgd8z.jpg \ No newline at end of file From f5c8164b1f5d090002147af99f4e4769ee18411c Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Tue, 24 Jan 2023 07:55:09 +0800 Subject: [PATCH 2628/3123] translating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [[翻译申请][tech]: 20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md] --- ...me-series data to power your edge projects with open source tools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md index 80c70c7b4b..66bb7ff5a4 100644 --- a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md +++ b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" [#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 66a5ea7ae3897e58de064050ee594b4b3b8252d1 Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Tue, 24 Jan 2023 09:47:44 +0800 Subject: [PATCH 2629/3123] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [[翻译完成][tech]: 20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md] --- ...power your edge projects with open source tools.md | 123 ------------------ ...power your edge projects with open source tools.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 123 deletions(-) delete mode 100644 sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md create mode 100644 translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md diff --git a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md deleted file mode 100644 index 66bb7ff5a4..0000000000 --- a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "Use time-series data to power your edge projects with open source tools" -[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" -[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" -[#]: collector: "lkxed" -[#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Use time-series data to power your edge projects with open source tools -====== - -Gathering data as it changes over the passage of time is known as time-series data. Today, it has become a part of every industry and ecosystem. It is a large part of the growing IoT sector and will become a larger part of everyday people's lives. But time-series data and its requirements are hard to work with. This is because there are no tools that are purpose-built to work with time-series data. In this article, I go into detail about those problems and how InfluxData has been working to solve them for the past 10 years. - -### InfluxData - -InfluxData is an open source time-series database platform. You may know about the company through [InfluxDB][1], but you may not have known that it specialized in time-series databases. This is significant, because when managing time-series data, you deal with two issues — storage lifecycle and queries. - -When it comes to storage lifecycle, it's common for developers to initially collect and analyze highly detailed data. But developers want to store smaller, downsampled datasets that describe trends without taking up as much storage space. - -When querying a database, you don't want to query your data based on IDs. You want to query based on time ranges. One of the most common things to do with time-series data is to summarize it over a large period of time. This kind of query is slow when storing data in a typical relational database that uses rows and columns to describe the relationships of different data points. A database designed to process time-series data can handle queries exponentially faster. InfluxDB has its own built-in querying language: Flux. This is specifically built to query on time-series data sets. - -![Image of how Telegraf works.][2] - -### Data acquisition - -Data acquisition and data manipulation come out of the box with some awesome tools. InfluxData has over 12 client libraries that allow you to write and query data in the coding language of your choice. This is a great tool for custom use cases. The open source ingest agent, Telegraf, includes over 300 input and output plugins. If you're a developer, you can contribute your own plugin, as well. - -InfluxDB can also accept a CSV upload for small historical data sets, as well as batch imports for large data sets. - -``` -import math -bicycles3 = from(bucket: "smartcity") -    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) -    |> filter(fn: (r) => r._measurement == "city_IoT") -    |> filter(fn: (r) => r._field == "counter") -    |> filter(fn: (r) => r.source == "bicycle") -    |> filter(fn: (r) => r.neighborhood_id == "3") -    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) -bicycles4 = from(bucket: "smartcity") -    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) -    |> filter(fn: (r) => r._measurement == "city_IoT") -    |> filter(fn: (r) => r._field == "counter") -    |> filter(fn: (r) => r.source == "bicycle") -    |> filter(fn: (r) => r.neighborhood_id == "4") -    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner") -    |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"]) -    |> map(fn: (r) => ({ -        r with -        difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4)) -    })) -``` - -### Flux - -Flux is our internal querying language built from the ground up to handle time-series data. It's also the underlying powerhouse for a few of our tools, including tasks, alerts, and notifications. To dissect the flux query from above, you need to define a few things. For starters, a "bucket" is what we call a database. You configure your buckets and then add your data stream into them. The query calls the smartcity bucket, with the range of a specific day (a 24-hour period to be exact.) You can get all the data from the bucket, but most users include a data range. That's the most basic flux query you can do. - -Next, I add filters, which filter the data down to something more exact and manageable. For example, I filter for the count of bicycles in the neighborhood assigned to the id of 3. From there, I use aggregateWindow to get the mean for every hour. That means I expect to receive a table with 24 columns, one for every hour in the range. I do this exact same query for neighborhood 4 as well. Finally, I join the two tables and get the differences between bike usage in these two neighborhoods. - -This is great if you want to know what hours are high-traffic hours. Obviously, this is just a small example of the power of flux queries. But it gives a great example of some of the tools flux comes with. I also have a large amount of data analysis and statistics functions. But for that, I suggest checking out the Flux documentation. - -``` -import "influxdata/influxdb/tasks" -option task = {name: PB_downsample, every: 1h, offset: 10s} -from(bucket: "plantbuddy") -    |>range(start: tasks.lastSuccess(orTime: -task.every)) -    |>filter(fn: (r) => r["_measurement"] == "sensor_data") -    |>aggregateWindow(every: 10m, fn:last, createEmpty:false) -    |>yield(name: "last") -    |>to(bucket: "downsampled") -``` - -### Tasks - -An InfluxDB task is a scheduled Flux script that takes a stream of input data and modifies or analyzes it in some way. It then stores the modified data in a new bucket or performs other actions. Storing a smaller data set into a new bucket is called "downsampling," and it's a core feature of the database, and a core part of the time-series data lifecycle. - -You can see in the current task example that I've downsampled the data. I'm getting the last value for every 10-minute increment and storing that value in the downsampled bucket. The original data set might have had thousands of data points in those 10 minutes, but now the downsampled bucket only has 60 new values. One thing to note is that I'm also using the last success function in range. This tells InfluxDB to run this task from the last time it ran successfully, just in case it has failed for the past 2 hours, in which case it can go back three hours in time to the last successful run. This is great for built-in error handling. - -![Image of the checks and alerts notification system.][3] - -### Checks and alerts - -InfluxDB includes an alerting or checks and notification system. This system is very straightforward. You start with a check that looks at the data periodically for anomalies that you've defined. Normally, this is defined with thresholds. For example, any temperature value under 32° F gets assigned a value of `WARN`, and anything above 32° F gets assigned a value of `OK`, and anything below 0° F gets a value of `CRITICAL`. From there, your check can run as often as you deem necessary. There is a recorded history of your checks and the current status of each. You are not required to set up a notification when it's not needed. You can just reference your alert history as needed. - -Many people choose to set up their notifications. For that, you need to define a notification endpoint. For example, a chat application could make an HTTP call to receive your notifications. Then you define when you would like to receive notifications, for example you can have checks run every hour. You can run notifications every 24 hours. You can have your notification respond to a change in the value, for example `WARN` to `CRITICAL`, or when a value is `CRITICAL`, regardless of it changing from `OK` to `WARN`. This is a highly customizable system. The Flux code that's created from this system can also be edited. - -![Image of the new Edge feature.][4] - -### Edge - -To wrap up, I'd like to bring all the core features together, including a very special new feature that's recently been released. Edge to cloud is a very powerful tool that allows you to run the open source InfluxDB and locally store your data in case of connectivity issues. When connectivity is repaired, it streams the data to the InfluxData cloud platform. - -This is significant for edge devices and important data where any loss of data is detrimental. You define that you want a bucket to be replicated to the cloud, and then that bucket has a disk-backed queue to store the data locally. Then you define what your cloud bucket should replicate into. The data is stored locally until connected to the cloud. - -### InfluxDB and the IoT Edge - -Suppose you have a project where you want to [monitor the health of household plants][5] using IoT sensors attached to the plant. The project is set up using your laptop as the edge device. When your laptop is closed or otherwise off, it stores the data locally, and then streams it to my cloud bucket when reconnected. - -![Image showing how Plant buddy works.][6] - -One thing to notice is that this downsamples data on the local device before storing it in the replication bucket. Your plant's sensors provide a data point for every second. But it condenses the data to be an average of one minute so you have less data to store. In the cloud account, you might add some alerts and notifications that let you know when the plant's moisture is below a certain level and needs to be watered. There could also be visuals you could use on a website to tell users about their plants' health. - -Databases are the backbone of many applications. Working with time-stamped data in a time series database platform like InfluxDB saves developers time, and gives them access to a wide range of tools and services. The maintainers of InfluxDB love seeing what people are building within our open source community, so connect with us and share your projects and code with others! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools - -作者:[Zoe Steinkamp][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/zoesteinkamp -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack -[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png -[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png -[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png -[5]: https://opensource.com/article/22/5/plant-care -[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png diff --git a/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md new file mode 100644 index 0000000000..f7b5a5c4bb --- /dev/null +++ b/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md @@ -0,0 +1,123 @@ +[#]: subject: "Use time-series data to power your edge projects with open source tools" +[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" +[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" +[#]: collector: "lkxed" +[#]: translator: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用时间序列数据使用开源工具助力您的边缘项目 +====== + +收集到的随时间变化的数据称为时间序列数据(time-series data)。今天,它已经成为每个行业和生态系统的一部分。它是不断增长的物联网行业的一大组成部分,将成为人们日常生活的重要部分。但时间序列数据及其要求很难处理。这是因为没有专门为处理时间序列数据而构建的工具。在这篇文章中,我将详细介绍这些问题,以及过去 10 年来 InfluxData 如何解决这些问题。 + +### InfluxData + +InfluxData 是一个开源的时间序列数据库平台。您可能通过 [InfluxDB][1] 了解该公司,但您可能不知道它专门从事时间序列数据库。这很重要,因为在管理时间序列数据时,您要处理两个问题:存储生命周期(storage lifecycle)和查询(queries)。 + +在存储生命周期中,开发人员通常首先收集和分析非常详细的数据。但开发人员希望存储较小的、降采样的数据集,以描述趋势,而不占用太多的存储空间。 + +查询数据库时,您不希望基于 ID 查询数据。您希望基于时间范围进行查询。使用时间序列数据最常见的一件事是在一段时间内对其进行总结。在使用行和列来描述不同数据点关系这样的典型关系数据库中存储数据时,这种查询速度较慢。设计用于处理时间序列数据的数据库可以更快地处理查询。InfluxDB 有自己的内置查询语言:Flux。这是专门为查询时间序列数据集而构建的。 + +![Telegraf 如何工作的图像][2] + +### 数据采集 + +数据采集和数据处理都有一些很棒的工具。InfluxData 有 12 个以上的客户端库,允许您使用自己选择的编程语言编写和查询数据。这是自定义用法的一个很好的工具。开源摄取代理 Telegraf 包括 300 多个输入和输出插件。如果您是一个开发者,您也可以贡献自己的插件。 + +InfluxDB 还可以接受上传小体积历史数据集的 CSV 文件,以及大数据集的批量导入。 + +``` +import math +bicycles3 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "3") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) +bicycles4 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "4") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner") +    |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"]) +    |> map(fn: (r) => ({ +        r with +        difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4)) +    })) +``` + +### Flux + +Flux 是我们的内部查询语言,从零开始建立来处理时间序列数据。它也是我们一些工具的基础动力,包括任务(tasks)、警报(alerts)和通知(notifications)。要从上面剖析 flux 查询(flux query),需要定义一些东西。首先,“桶(bucket)”就是我们所说的数据库。您可以配置存储桶,然后将数据流添加到其中。查询会调用 smartcity 存储桶,其范围为特定的一天(准确地说是 24 小时)。您可以从存储桶中获取所有数据,但大多数用户都包含一个数据范围。这是你能做的最基本的 flux 查询。 + +接下来,我添加过滤器,将数据过滤到更精确、更易于管理的地方。例如,我过滤分配给 id 为 3 的邻居中的自行车数量。从那里,我使用 aggregateWindow 获取每小时的平均值。这意味着我希望收到一个包含 24 列的表,每小时一列。我也对 id 为 4 的邻居进行同样的查询。最后,我将这两张表相叠加,得出这两个社区自行车使用量的差异。 + +如果你想知道什么时候是交通高峰,这是不错的选择。显然,这只是 flux 查询功能的一个小例子。但它提供了一个很好的例子,使用了 flux 附带的一些工具。我还有很多的数据分析和统计功能。但对于这一点,我建议查看 Flux 文档。 + +``` +import "influxdata/influxdb/tasks" +option task = {name: PB_downsample, every: 1h, offset: 10s} +from(bucket: "plantbuddy") +    |>range(start: tasks.lastSuccess(orTime: -task.every)) +    |>filter(fn: (r) => r["_measurement"] == "sensor_data") +    |>aggregateWindow(every: 10m, fn:last, createEmpty:false) +    |>yield(name: "last") +    |>to(bucket: "downsampled") +``` + +### 任务(Tasks) + +InfluxDB 任务是一个定时 Flux 脚本,它接收输入数据流并以某种方式修改或分析它。然后,它将修改后的数据存储在新的存储桶中或执行其他操作。将较小的数据集存储到新的存储桶中,称为“降采样”,这是数据库的核心功能,也是时间序列数据生命周期的核心部分。 + +您可以在当前任务示例中看到,我已经对数据进行了降采样。我得到每 10 分钟增量的最后一个值,并将该值存储在降采样桶中。原始数据集在这 10 分钟内可能有数千个数据点,但现在降采样桶只有 60 个新值。需要注意的一点是,我还使用了范围内的最后一个成功的函数。这会告诉 InfluxDB 从上次成功运行时开始运行此任务,以防它在过去2小时内失败,在这种情况下,它可以返回到上次成功运行的 3 个小时。这对于内置错误处理非常有用。 + +![检查和警报通知系统的图像][3] + +### 检查(Checks)和警报(Alerts) + +InfluxDB 包含一个警报或检查和通知系统。这个系统非常简单直白。首先进行检查,定期查看数据以查找您定义的异常。通常,这是用阈值定义的。例如,任何低于 32°F 的温度值都被指定为“WARN”值,高于 32°F 都被分配为“OK”值,低于 0°F 都被赋予“CRITICAL”值。从那开始,您的检查可以按您认为必要的频率运行。您的检查以及每个支票的当前状态都有历史记录。当不需要通知时,您不会被要求设置它。您可以根据需要引用警报历史记录。 + +许多人选择设置通知。为此,您需要定义一个通知端点(notification endpoint)。例如,聊天应用程序可以进行 HTTP 调用以接收通知。然后您定义何时接收通知,例如,您可以每小时运行一次检查。您可以每 24 小时运行一次通知。您可以让通知响应值更改,例如,“WARN”更改为“CRITICAL”,或者当值为“CRITICAL”时,无论如何都从“OK”更改为“WARN”。这是一个高度可定制的系统。从这个系统创建的 Flux 代码也可以编辑。 + +![新 Edge 功能的图像][4] + +### 边缘(Edge) + +最后,我想把所有的核心功能放在一起,包括最近发布的一个非常特别的新功能。从边缘到云(Edge to cloud)是一个非常强大的工具,允许您运行开源 InfluxDB,并在出现连接问题时在本地存储数据。连接修复后,它会将数据流传输到 InfluxData 云平台。 + +这对于边缘设备和重要数据非常重要,因为任何数据丢失都是有害的。您定义要将一个存储桶复制到云,然后该存储桶有一个磁盘支持的队列来本地存储数据。然后定义云存储桶应该复制到的内容。数据存储在本地,直到连接到云。 + +### InfluxDB 和物联网边缘 + +假设你有一个项目,你想使用连接到植物上的物联网传感器[监测家里植物的健康状况][5]。该项目是使用您的笔记本电脑作为边缘设备设置的。当你的笔记本电脑合上或关闭时,它会在本地存储数据,然后在重新连接时将数据流传到我的云存储桶。 + +![图片展示了 Plant buddy 的工作方式][6] + +需要注意的一点是,在将数据存储到复制桶之前,这会对本地设备上的数据进行降采样。你的植物传感器每秒提供一个数据点。但它将数据压缩为平均一分钟,因此可以存储的数据更少。在云账户中,你可以添加一些警报和通知,让你知道植物的水分何时低于某个水平,需要浇水。也可以在网站上使用视觉效果来告诉用户植物的健康状况。 + +数据库是许多应用程序的主干。在像 InfluxDB 的时间序列数据库平台中使用带有时间戳的数据可以节省开发人员的时间,并使他们能够访问各种工具和服务。InfluxDB 的维护者喜欢看到人们在我们的开源社区中构建什么,所以请与我们联系,并与其他人共享您的项目和代码! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools + +作者:[Zoe Steinkamp][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/zoesteinkamp +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack +[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png +[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png +[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png +[5]: https://opensource.com/article/22/5/plant-care +[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png From f19762abe5d4de38a91146ec4b5c454e831319bc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 11:20:50 +0800 Subject: [PATCH 2630/3123] ATRP @wxy https://linux.cn/article-15475-1.html --- ...on Development Environment in Ubuntu and Fedora.md | 140 +++++++++++++++++ ...on Development Environment in Ubuntu and Fedora.md | 142 ------------------ 2 files changed, 140 insertions(+), 142 deletions(-) create mode 100644 published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md delete mode 100644 sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md diff --git a/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md new file mode 100644 index 0000000000..9f522f918a --- /dev/null +++ b/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md @@ -0,0 +1,140 @@ +[#]: subject: "How to Setup Python Development Environment in Ubuntu and Fedora" +[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15475-1.html" + +如何在 Ubuntu 和 Fedora 中设置 Python 开发环境 +====== + +> 本文将帮助你了解在 Ubuntu 和 Fedora 中设置 Python 开发环境的基础知识和步骤。 + +[Python][1] 由于其强大的库、简单的语法和可移植性,在过去几年中变得很流行。目前几乎所有的企业系统都在使用它。 + +因此,如果你正试图建立你的 Python 环境,并想知道如何开始等等,那么你就找到正确的地方了。在这里,我试图给你一些开始的步骤。 + +### 在 Ubuntu 和 Fedora 中设置 Python 开发环境 + +#### Python 版本 + +如果你刚刚开始 Python 开发,那么建议你使用最新的 Python 3.x 进行开发,因为 Python 2.x 已经不再支持了。几乎所有领先的 Linux 发行版都取消了对 Python 2 的依赖。 + +如果你正在运行 Fedora 或 Ubuntu 的最新发行版,那么你应该已经安装了 Python 3.x,并设置为默认解释器。例如,Fedora 37 和 Ubuntu 22.04 LTS 将 [Python 3.11][2] 作为默认的 Python 交互界面。 + +找到你的 Python 版本的一个快速方法是在 Ubuntu 和 Fedora 的终端运行以下命令: + +``` +python2 +``` + +``` +python3 +``` + +![python3][3] + +如果你运行的是早期版本的 Ubuntu 或 Fedora,那么你可以使用以下命令安装最新的 Python 3.x: + +Ubuntu: + +``` +sudo apt install python3 +``` + +Fedora: + +``` +sudo dnf install python3 +``` + +另外,运行下面的命令,找出当前系统中 Python 可执行文件的路径: + +``` +Which python +``` + +#### 切换默认解释器的版本 + +如果你的系统安装了多个 Python 版本 —— 2.x 和 3.x,并且你想在它们之间切换,也是可以的。  + +如果你只安装了一个版本,你可以跳过这一节。 + +要进行切换,首先,从终端运行 `python`,找出默认的可执行路径。理想情况下,它应该是 `/usr/bin/python`。现在,运行下面的程序,找出通往可执行文件的符号链接: + +``` +ln -l /usr/bin/python +``` + +``` +lrwxrwxrwx 1 root root .... /usr/bin/pyhton -> python2 +``` + +现在检查一下 `$PATH` 变量,确定系统查找可执行文件的路径连接顺序: + +``` +echo $PATH +``` + +![PATH 变量][4] + +你可以看到 `/usr/local/bin` 在 `/usr/bin/` 之前,那么你可以创建一个软符号链接到 `python3`。然后你的解释器在运行 `python` 命令时就会找到最新的 Python 3 而不是 Python 2。  + +``` +ls -s /usr/bin/python3 /usr/local/bin/python +``` + +现在你应该注销并再次登录以清除任何哈希条目,或者你可以运行 `hash -r` 来清除它们。 + +现在你可以从终端运行 `python`,你应该有最新的 Python 3 了。 + +#### Python IDE + +集成开发环境(IDE)可以帮助你编写、编译和执行你的代码。有 [几个免费的 Python 集成开发环境][5] —— 如 PyCharm、Eclipse、Eric 等,你可以使用。但那将是另一篇关于其优点和缺点的文章。  + +如果你从官方 [python.org][1] 网站下载 Python,Python 还带着一个叫做 IDLE 的默认开发环境。IDLE 适合于起步,之后你可以决定选择任何一个最好的免费 Python IDE。 + +在 Ubuntu 和 Fedora 中,IDLE 并没有和 Python 一起被默认包含,你必须手动安装它。从终端运行下面的命令来手动安装 IDLE: + +Ubuntu: + +``` +sudo apt install idle +``` + +Fedora: + +``` +sudo dnf install python-tools +``` + +安装后,你可以从命令行空闲启动 IDLE 或从应用程序中搜索。 + +![IDLE][6] + +现在,你可以使用 IDLE 开始你的开发。大部分的基本选项你可以在 IDLE 的文件菜单中找到。 + +我希望这篇指南解释了你在开始 Python 开发之前应该知道的东西。 尽管本指南主要是针对 Ubuntu 和 Fedora 的,但你仍然可以在所有基于 Ubuntu 和 Fedora 的发行版上参考它。如果你在 Python 环境设置方面遇到问题,请在下面的评论区告诉我。  + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.python.org/ +[2]: https://www.debugpoint.com/install-python-3-11-ubuntu/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/python3.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/PATH-Variable.png +[5]: https://www.debugpoint.com/5-best-python-ide-code-editor/ +[6]: https://www.debugpoint.com/wp-content/uploads/2020/06/IDLE-environment.png +[7]: https://www.debugpoint.com/bash-base64-encode-decode/ diff --git a/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md deleted file mode 100644 index f7e578e4c6..0000000000 --- a/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "How to Setup Python Development Environment in Ubuntu and Fedora" -[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Setup Python Development Environment in Ubuntu and Fedora -====== - -**This article helps you with the basics and steps to setup your Python development environment in Ubuntu and Fedora.** - -[Python][1] became popular in the last couple of years due to its powerful libraries, easy syntax, and portability. It is being used currently almost every system across businesses. - -So, if you are trying to set up your Python box and wondering how to begin etc., then you are at the right place. Here, I tried to give you some steps to get started. - -### Setup Python Development Environment in Ubuntu and Fedora - -#### Python Versions - -If you are starting up Python development fresh, then it is recommended that you use the latest Python 3.x for your development, as Python 2.x is already out of support. Almost all the leading Linux distributions removed the dependency on Python 2. - -If you are running the latest distributions as of today for Fedora or Ubuntu, then you should have Python 3.x already installed and set as the default interpreter. For example, Fedora 37 and Ubuntu 22.04 LTS, which are currently available, have [Python 3.11][2] as the default Python shell. - -A quick way to find out what Python version you have is by running the below command from a terminal in both Ubuntu and Fedora. - -``` -python2 -``` - -``` -python3 -``` - -![python3][3] - -If you are running earlier versions of Ubuntu or Fedora, then you can install the latest Python 3.x using the below commands: - -**Ubuntu** - -``` -sudo apt install python3 -``` - -**Fedora** - -``` -sudo dnf install python3 -``` - -Also, run the below command to find out the path of your Python executable in the current system: - -``` -which python -``` - -#### Switching Versions as the default interpreter - -If your system has multiple Python versions installed – 2.x and 3.x and you want to switch between them, it is possible.  - -_If you have only one version installed, you can skip this section._ - -To switch, first, run python from the terminal to find out the default executable path. Ideally, it should be `/usr/bin/python`. Now, run below to find out the symbolic link to the executable. - -``` -ln -l /usr/bin/python -``` - -``` -lrwxrwxrwx 1 root root .... /usr/bin/pyhton -> python2 -``` - -Now check out the `$PATH` variable to determine the order of path concatenation which the system looks up for executables. - -``` -echo $PATH -``` - -![PATH-Variable][4] - -As you can see `/usr/local/bin`is preceding the `/usr/bin/` then you can create a soft symbolic link to `python3`. Then your interpreter should pick up the latest Python 3 instead of Python 2 while running the python command.  - -``` -ls -s /usr/bin/python3 /usr/local/bin/python -``` - -Now you should logout and log in again to clear any hash entries, or you can run `hash -r` to clear them out. - -Now you can run python from the terminal, and you should have the latest Python 3 picked up. - -#### Python IDE - -An integrated development environment (IDE) helps you write and compile and execute your code. There are [several free Python IDE available][5] – such as PyCharm, Eclipse, Eric, etc., which you can use. That would be another write-up on their pros and cons.  - -If you download Python from the official [python.org][1] website, Python accompanies a default development environment called IDLE. IDLE is good for starting up your system, and later you can decide to pick any of the best free Python IDE available. - -IDLE is not included in Ubuntu and Fedora along with python as default, you have to install it manually. Run the below commands from the terminal to manually install IDLE. - -**Ubuntu** - -``` -sudo apt install idle -``` - -**Fedora** - -``` -sudo dnf install python-tools -``` - -Once installed, you can launch IDLE from the command line idle or search from the application. - -![IDLE-environment`][6] - -Now, you can use IDLE to start your development. Most of the basic options you can find in the File menu of IDLE. - -I hope this guide explains what you should know before starting your Python development. Although this guide is primarily targeted to Ubuntu and Fedora, you can still follow the instructions for all Ubuntu and Fedora-based distributions as well. If you are facing problems with the Python environment setup, let me know in the comment section below.  - -[Next:Learn Bash base64 Encode and Decode With Examples][7] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ - -作者:[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.python.org/ -[2]: https://www.debugpoint.com/install-python-3-11-ubuntu/ -[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/python3.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/PATH-Variable.png -[5]: https://www.debugpoint.com/5-best-python-ide-code-editor/ -[6]: https://www.debugpoint.com/wp-content/uploads/2020/06/IDLE-environment.png -[7]: https://www.debugpoint.com/bash-base64-encode-decode/ From 85ac25d0b86e70e7e50dd362dd6eccb352daa637 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:00:17 +0800 Subject: [PATCH 2631/3123] translating --- ...Popular Python Library for Data Analysis and Data Science.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md index a7a8859ec7..19a4a30542 100644 --- a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md +++ b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" [#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3a1b599151460e26da3db75eb24a340e160d9ed7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 21:02:32 +0800 Subject: [PATCH 2632/3123] ATRP @wxy https://linux.cn/article-15476-1.html --- ...S Your Search for Perfect Arch Distro Ends Here.md | 135 ++++++++++++++++++ ...S Your Search for Perfect Arch Distro Ends Here.md | 134 ----------------- 2 files changed, 135 insertions(+), 134 deletions(-) create mode 100644 published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md delete mode 100644 sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md diff --git a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md new file mode 100644 index 0000000000..07797da3e5 --- /dev/null +++ b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md @@ -0,0 +1,135 @@ +[#]: subject: "EndeavourOS: Your Search for Perfect Arch Distro Ends Here" +[#]: via: "https://www.debugpoint.com/endeavouros-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15476-1.html" + +EndeavourOS:你对完美的 Arch 发行版的搜寻到此为止 +====== + +![][0] + +> 我们整体点评了最近发布的 EndeavourOS “Cassini”。 + +每年,个人和小型团队们推出了数以百计的 Linux 发行版。它们大多是 Debian、Ubuntu、Fedora 或 Arch Linux 的直接衍生品,再加上一些定制的东西。这也难怪每年都有因为缺乏贡献、愿景和坚持而死亡的发行版。 + +三年前,作为已停止的 Antergos 项目的延续,一个由贡献者们组成的小团队发起了 EndeavourOS 项目。从那时起,由于其安装简单,用户体验和功能,它已经变得很受欢迎。 + +![具备 Xfce 桌面的 EndeavourOS][1] + +### 点评 EndeavourOS + +如果你曾经试过它,你就会很明显地发现,他们花了很多心血来开发这个发行版。这个发行版的口号是成为一个面向大众的 “通用” Arch Linux 发行版,摒弃了新用户对 Arch Linux 安装的恐惧,以及使用 Arch 时的优越感。 + +如果你曾经尝试过 EndeavourOS,你一定会 “感觉” 到作为一个 Arch 发行版,对最终用户来说,在桌面上执行的事情是多么的 “容易”。 + +#### 安装和可供选择的桌面 + +通过 “独有的” Calamares 安装程序,它的安装变得超级简单。除此之外,EndeavourOS 团队还特别注意在安装步骤中为你提供了大部分的选项。例如,无需用户干预的临场介质直接启动。它会启动欢迎屏幕。欢迎屏幕要做的事就是提供让你在系统中安装它所有必要选项。 + +![EndeavourOS 欢迎屏幕][2] + +默认情况下,ISO 提供了一个轻量级的 Xfce 桌面。然而,EndeavourOS 也为你提供了各种桌面环境和窗口管理器(见下文)。而且它们都经过测试,可以正常工作。如果你在安装过程中连接到了互联网,你可以通过 Calamares 安装程序来安装这些。这意味着你不需要在基本的 Xfce 设置后重新安装它们。 + +此外,如果你是一个资深用户,只想安装一个基本的 Arch Linux,不需要任何桌面,那也是可以的。只要在安装时使用 “无桌面No desktop” 选项就可以了! + +尽管 Arch Linux 最近创建了一个自动脚本 `archinstall` 来使安装更容易,但通过 EndeavourOS 的 ISO 来获得 Arch 的基本安装仍然更快、更容易。 + +![EndeavourOS 安装程序显示无桌面和其他选项][3] + +此外,你可以在三个选项中选择:GRUB、systemd-boot 或 “无启动器no bootloader”,这是 EndeavourOS “Cassini” 版本的亮点功能之一。此外,你还可以选择你要安装的软件包(仅在线模式支持)。例如,你可能需要一个基本的系统来开始使用。或者,你可能想安装一些与视频/音频或开发工作有关的应用程序。所有这些你都可以在这个版本中选择。 + +安装通过检测我的测试机中安装的其他操作系统而完成,很顺利。在“Cassini” 版本中,该团队还将 mkinitcpio 换成了 [dracut][4],以获得更好的性能,减少启动相关问题的失败。 + +#### “Xfce” 旗舰版的桌面体验 + +第一次登录后,你会再次看到欢迎程序,其中有一个 “安装后” 可以做的项目列表。开发人员提供了一个非常周到的列表。这包括改变墙纸、更新 Arch 镜像、安装英伟达驱动等初始任务。许多 Linux 发行版都有一个欢迎程序,但我认为这个程序是一个完善的软件包。 + +![欢迎应用中的安装后项目][5] + +默认的外观是你能得到的定制的最好的 Xfce 桌面。通过定制,它成为一个外观良好的发行版,远非默认的 Xfce 可比。定制包括 GRUB 菜单、登录屏幕和桌面等等。 + +Xfce 主菜单配置了更多的项目,终端略带透明,使用 Qogir 图标主题。所有这些变化都辅以令人惊叹的壁纸和 Arc-Darker 默认 Xfce 主题。 + +![EndeavourOS “Cassini” 桌面带有 Xfce 4.18][6] + +#### 性能 + +尽管有桌面环境,Arch Linux 的性能总是更好。它总是令人感觉更快,因为它的内部并不臃肿。除此之外,[Xfce 桌面 4.18][7] 在 “Cassini” 版本中还做了额外的性能优化,你可以在浏览桌面的时候感受到。 + +在空闲状态下,它使用了大约 700MB 的内存和平均 4% 的 CPU 占用。这是性能基线。资源使用量可能会根据你打开的应用程序的数量而增加。在我之前对 EndeavourOS 的点评中,其性能表现也类似。 + +不仅如此,它在默认的 Xfce 安装中只使用了 4GB 的磁盘空间。然而,你可能需要安装额外的重型软件,如 LibreOffice、GIMP 或 KDenlive,这将占用更多磁盘空间。 + +![EndeavourOS “Cassini” 的性能][8] + +#### 在 EndeavourOS 中执行日常任务有多容易? + +EndeavourOS 的一大特点是一些基于 Python 的 GUI 工具,可以使你在 Arch Linux 中的生活变得简单。例如,你可以从 Arch 和 EndeavourOS 的软件仓库中获得更新通知、一键从 AUR 安装软件、一键更新镜像和你的系统。你不需要从终端运行任何命令。这对 Arch Linux 的新用户来说是一个很大的帮助。 + +![一键安装软件][9] + +![软件包清理器和更新管理器][10] + +#### 处理滚动发布的独特方式,以实现稳定性 + +Arch Linux 作为一个滚动发布的发行版,往往会出现故障。例如,在 Arch 主仓库的每个月的内核更新期间,一些系统可能会出现故障。由于它的受欢迎程度和开发者的主动性,如果出现问题,你会得到通知和相关的解决方法。 + +最近 Arch Linux 中的 GRUB 问题,给用户带来了大量的启动问题,EndeavourOS 团队通过适当的沟通,给用户提供了解决方法,真的 [处理得很好][11]。 + +因此,如果你最终遇到一个不稳定的系统,你也不会真的迷失。 + +此外,Pacman 的配置已被定制过,使用 EndeavourOS 选择的镜像,以确保你的体验是完美的。 + +#### 对开源硬件和 ARM 的正式支持 + +在这个 EndeavourOS “Cassini” 版本中,官方支持了 Pinebook Pro 笔记本电脑。该团队在 Manjaro 软件包的基础上与 Pine64 团队合作,为你提供了独家的 Arch 软件包,使该笔记本开箱即用。此外, EndeavourOS ARM 镜像也可用于树莓派 4。 + +#### 社区帮助 + +EndeavourOS 最大的好处之一是社区帮助 —— 这是即时的!这主要是由于它有专门的 [Telephone] 社区。这主要是指其专门的 [Telegram 频道][12],在那里你可以在几分钟内得到对你的 EndeavourOS 的任何问题的回应。我曾经去过这个频道,管理员/贡献者们都很友好,很有帮助。 + +此外,你也可以从官方论坛和其他社交渠道获得帮助。 + +### 总结 + +在结束对 EndeavourOS 的 [“Cassini” 版本][13] 的点评时,我想说这是一个构建得最好的发行版,而且组织良好。开发者和团队有一个建立通用的 Arch Linux 发行版的清晰路线图。另外,通过对 ARM 和 Pinebook Pro 的支持以及其他举措,其愿景也很明确。 + +总而言之,对于每一个希望在 Arch Linux 中拥有一个运行时间更长、更稳定的系统的人来说,这是一个完美的发行版。 + +你可以从 [官方网站][14] 下载 EndeavourOS。 + +让我们举杯! + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/endeavouros-review/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/Xubuntu-22.04-with-Xfce-4.18-Desktop-2.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-Welcome-Screen.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-installer-showing-22no-desktop22-and-other-options.jpg +[4]: https://wiki.archlinux.org/title/Dracut +[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-install-items-in-Welcome-app.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-22Cassini22-Desktop-with-Xfce-4.18.jpg +[7]: https://www.debugpoint.com/xfce-4-18-features/ +[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-performance-22Cassini22.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/One-click-installation-of-software.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/Package-cleaner-and-update-manager.jpg +[11]: https://endeavouros.com/news/full-transparency-on-the-grub-issue/ +[12]: https://endeavouros.com/community/ +[13]: https://endeavouros.com/news/cassini-packed-with-new-features-is-here/ +[14]: https://endeavouros.com/download/ +[15]: https://www.debugpoint.com/mint-upgrade-tool/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/24/205819zhx7kx5899ra9ka9.jpg \ No newline at end of file diff --git a/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md deleted file mode 100644 index dddfcdca15..0000000000 --- a/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md +++ /dev/null @@ -1,134 +0,0 @@ -[#]: subject: "EndeavourOS: Your Search for Perfect Arch Distro Ends Here" -[#]: via: "https://www.debugpoint.com/endeavouros-review/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -EndeavourOS: Your Search for Perfect Arch Distro Ends Here -====== - -**We review the recent release of EndeavourOS “Cassini” and the distro overall.** - -Hundreds of Linux distributions pop up every year by individuals and small teams. They are mostly the direct derivatives of Debian, Ubuntu, Fedora or Arch Linux – with a few customizations. And no wonder majority of them die every year due to a lack of contributions, vision and persistence. - -Three years back, a small team of contributors started EndeavourOS to continue the discontinued Antergos project. And since then, it has become popular because of its simplicity of installation, user experience and features. - -![EndeavourOS with Xfce desktop][1] - -### EndeavourOS Review - -A lot went into developing the distribution, which is quite evident if you have ever tried it out. The motto of this distro is to be a “general purpose” Arch Linux distribution for the masses, discarding the Arch Linux installation fear for new users and the superiority of using Arch. - -If you ever tried EndeavourOS, you must have “felt” how “easy” things are to perform on a desktop for the end user, being an Arch distro. - -#### Installation and desktop options to choose from - -The installation is made super easy with the “one and only” Calamares installer. On top of that EndeavourOS team gave extra caution to provide you with most of the options during the installation steps. For example, the LIVE medium boots up directly without user intervention. And it launches the welcome screen. The welcome screen greets you with all the necessary options to install it in your system. - -![EndeavourOS Welcome Screen][2] - -By default, the ISO provides a lightweight Xfce desktop. However, EndeavourOS also provides you with all the desktop environments and window managers (the major ones – see below). And they are all tested to work fine. If you are connected to the internet during installation – you can install these via the Calamares installer. That means you do not need to reinstall them after the base Xfce setup. - -Furthermore, if you are a power user and want just a basic Arch Linux to install without any desktop – then that’s also possible. Just use the “No desktop” option during installation! - -Although Arch Linux recently created an automated script archinstall to make the installation easier, still faster and easier to get a base Arch Install via the EndeavourOS ISO. - -![EndeavourOS installer showing no desktop and other options][3] - -Furthermore, you have the option to choose between three options: GRUB, systemd-boot or “no bootloader” – this is one of the highlight features of the EndeavourOS “Cassini” release. In addition, you can also choose the packages you want to install (online mode only). For example, you might need a basic system to start with. Or, you might want to install some apps related to video/audio or development work. All of these you can select in this version. - -The installation is smooth and finished by detecting the other operating systems in my test machine. In this “Cassini” release, the team also swapped the mkinitcpio with [dracut][4] for better performance and less failure on boot-related issues. - -#### Flagship “Xfce” flavoured desktop experience - -After the first login, you are again greeted with the Welcome app with a list of items which you can do “after install”. A very thoughtful addition from the devs. This includes initial tasks of changing wallpaper, updating Arch mirrors, installing NVIDIA drivers, and more. Many Linux distributions bring a Welcome app, but this app is a complete package, IMO. - -![After install items in Welcome app][5] - -The default look is the best-customized Xfce desktop you can get. It has been customized to be presented as a well-looking distro, far from what default Xfce actually brings in. This includes the GRUB menu, login screen and desktop. - -The main Xfce menu is configured with more items, and the terminal is a little transparent and uses the Qogir icon theme. All of these changes are complemented with stunning wallpapers and Arc-Darker default Xfce theme. - -![EndeavourOS Cassini Desktop with Xfce 4.18][6] - -#### Performance - -The performance of Arch Linux is always better, despite the desktop environment. It always feels faster because it doesn’t bring bloated within. On top of that, the [Xfce desktop 4.18][7] brings in additional performance optimization in the “Cassini” release, which you can feel while browsing through the desktop. - -At idle, it uses around 700MB of memory and CPU at an average of 4%. This is the baseline. The resource usage may increase based on the number of apps you open. In my earlier reviews of EndeavourOS, the performance is always similar. - -Not only that, it uses only 4GB of disk space for the default Xfce installation. However, you may need to install additional heavy software such as LibreOffice, GIMP, or KDenlive, which would take more disk space. - -![EndeavourOS performance Cassini][8] - -#### How easy is it to perform day-to-day tasks in EndeavourOS - -One of the great features of EndeavourOS is some of the python-based GUI tools which make your life easy in Arch Linux. For example, you get notifications for updates from Arch and EndeavourOS repo, one-click software installation from AUR, and update mirrors and your system with one single click. You do not need to run any commands from the terminal. This is a big help for new users of Arch Linux. - -![One click installation of software][9] - -![Package cleaner and update manager][10] - -#### A unique way of handling the rolling release towards stability - -Arch Linux being a rolling release distro, tend to break things. For example, some systems may break during the monthly Kernel refresh of the Arch main repo. Due to its popularity and the developers’ proactiveness, you get notifications and a workaround related to the problem if things break. - -The recent GRUB issue in Arch Linux, which caused massive boot problems for users, is really [handled well][11] by the EndeavourOS team through proper communication to the users with a workaround. - -Hence, you are not really lost if you end up with an unstable system. - -In addition, the pacman configuration is customized with EndeavourOS-selected mirrors to ensure your experience is flawless. - -#### Official support for open-source hardware and ARM - -In this EndeavourOS “Cassini” release, the official support for Pinebook Pro laptops arrives. The team worked on top of Manjaro packages with the Pine64 team to provide exclusive Arch packages for you so that the laptop works out of the box. In addition, EndeavourOS ARM images are also available to download for Raspberry Pi 4. - -#### Community help - -One of the greatest benefits of EndeavourOS is community help – which is instant! This is mostly for its dedicated [Telegram channel][12], where you get responses to your any EndeavourOS problems within minutes. I have been to the channel, and the mods/contributors are friendly and helpful. - -Furthermore, you can also get help from the official forum and other social channels. - -### Wrapping Up - -While closing this EndeavourOS review of the [“Cassini” release,][13] I would say it’s one of the best-built distros and well-organized. The developers and the team have a clear roadmap to build a general-purpose Arch Linux distro. Also, the vision is clear with the ARM and Pinebook Pro supports and other initiatives. - -To summarise, a perfect distro for everyone who wants a longer-running, stable system in Arch Linux. - -You can download EndeavourOS from the [official website][14]. - -Cheers. - -[Next:Linux Mint Upgrade Tool: Usage Guide][15] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/endeavouros-review/ - -作者:[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/12/Xubuntu-22.04-with-Xfce-4.18-Desktop-2.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-Welcome-Screen.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-installer-showing-22no-desktop22-and-other-options.jpg -[4]: https://wiki.archlinux.org/title/Dracut -[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-install-items-in-Welcome-app.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-22Cassini22-Desktop-with-Xfce-4.18.jpg -[7]: https://www.debugpoint.com/xfce-4-18-features/ -[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-performance-22Cassini22.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/One-click-installation-of-software.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/Package-cleaner-and-update-manager.jpg -[11]: https://endeavouros.com/news/full-transparency-on-the-grub-issue/ -[12]: https://endeavouros.com/community/ -[13]: https://endeavouros.com/news/cassini-packed-with-new-features-is-here/ -[14]: https://endeavouros.com/download/ -[15]: https://www.debugpoint.com/mint-upgrade-tool/ From 63d3a9373352f2d302bc8f0bb810af200f7ef0a2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 22:20:25 +0800 Subject: [PATCH 2633/3123] R --- ...⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md index 07797da3e5..c124152828 100644 --- a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md +++ b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md @@ -90,7 +90,7 @@ Arch Linux 作为一个滚动发布的发行版,往往会出现故障。例如 #### 社区帮助 -EndeavourOS 最大的好处之一是社区帮助 —— 这是即时的!这主要是由于它有专门的 [Telephone] 社区。这主要是指其专门的 [Telegram 频道][12],在那里你可以在几分钟内得到对你的 EndeavourOS 的任何问题的回应。我曾经去过这个频道,管理员/贡献者们都很友好,很有帮助。 +EndeavourOS 最大的好处之一是社区帮助 —— 这是即时的!这主要是指其专门的 [Telegram 频道][12],在那里你可以在几分钟内得到对你的 EndeavourOS 的任何问题的回应。我曾经去过这个频道,管理员/贡献者们都很友好,很有帮助。 此外,你也可以从官方论坛和其他社交渠道获得帮助。 From e7bd20bad3699542c61318560368129334405c27 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 25 Jan 2023 15:12:55 +0800 Subject: [PATCH 2634/3123] translated --- ...rary for Data Analysis and Data Science.md | 100 ---------------- ...rary for Data Analysis and Data Science.md | 108 ++++++++++++++++++ 2 files changed, 108 insertions(+), 100 deletions(-) delete mode 100644 sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md create mode 100644 translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md deleted file mode 100644 index 19a4a30542..0000000000 --- a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" -[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" -[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pandas: The Popular Python Library for Data Analysis and Data Science -====== - -*Pandas is a popular Python library. This article describes a few features and functions available in this library, and encourages readers to use it for practical business problems.* - -Pandas provides fundamental and high-level building blocks for practical, real world data analysis in Python. It is one of the most powerful and flexible open source tools for data analysis and manipulation, and provides data structures for modelling and manipulating tabular data (data in rows and columns). - -Pandas has two primary data structures. The first is a ‘series’ data structure that helps to retrieve data from the array or dictionary of Python objects. Data can be retrieved either by position or by specifying the index name. The second is the ‘dataframes’ data structure to store data in rows and columns. Columns have column names and rows are accessed using indexes. Columns can have different types of data including lists, dictionaries, pandas series, another dataframe, NumPy arrays, etc. - -### Processing various file types - -Data is often available in various formats. It is imperative that the tool used for data analysis is able to provide a wide range of methods for handling it. - -With Pandas, one can read various file types like CSV, JSON, XML, Parquet, SQL (see Table 1). - -| | Write | Read | -| :- | :- | :- | -| CSV | to_csv | read_csv | -| JSON | to_json | Read_json | -| Parquet | to_parquet | read_parquet | -| SQL | to_sql | read_sql, read_sql_query, read_sql_table | -| XML | to_xml | read_xml | - -### Data cleansing using Pandas - -In real-world scenarios, data is often incomplete and includes bad data. It is sometimes duplicated. Also, data includes sensitive and confidential information, which needs to be masked. Pandas offers ways to handle bad data by using methods like cleaning, dropping, replacing, masking, etc. - -a.  Empty rows can be removed with the *df.dropna(inplace=True)* operation. - -b.  Empty values can be replaced with *df.fillna(, inplace=True)*. We can specify the column name to be placed in a particular column. - -c. You can mask the values for sensitive and non-public data for all items NOT satisfying the condition *my_list.where(my_list < 5)*. Masking of values satisfying the condition can be done with*my_list.mask(my_list < 5)*. - -d. Duplicates can be dropped from a dataframe using: - -``` -df.drop_duplicates(‘’, keep = False) -df.drop_duplicates(‘’, keep = ‘first’) -df.drop_duplicates(‘’, keep = ‘last’) -``` - -### Data analysis using Pandas - -Table 2 lists the various functions in Pandas that perform data analysis as well as the syntax for usage. (Note: df stands for dataframe.) - -| Function | Description | Syntax | -| :- | :- | :- | -| Head | Head() function returns the first five rows | df.head(x) | -| tail | tail() function returns the last five rows by default | df.tail(x) | -| Loc | Loc function returns a particular row. Slicing of the data is also possible | loc(x:y) | -| Groupby | Groups data on a particular column | groupby(‘’) | -| Sum | Sum of values in a particular column | df[‘column’].sum() | -| Mean | Average of values in a particular column | df[‘column’]. mean() | -| Min | Minimum value in a particular column | df[‘column’].min() | -| Max | Maximum value in a particular column | df[‘column’].max() | -| Sort | Sorts dataframe in a column | df.sort_values([‘column’]) | -| Size | Rows * columns | df.size | -| Describe | Describes details of the dataframe | df.describe | -| Crosstab | Creates a frequency tabulation of rows and columns | pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | -| Duplicated | Returns True or False based on duplicate values in Column1 and Column2 | df.duplicated([column1, ‘column2’]) | - -### Advantages of Pandas - -* It supports multi-index (hierarchical index) used for easy analysis of data having a large number of dimensions. -* It supports the creation of pivot tables, stack and unstack operations. -* Categorical data containing finite values can be processed with Pandas. -* It supports grouping and aggregations. -* Sorting can be explicitly disabled. -* It supports filtering at both row-level (gets the rows satisfying the filter condition) and column-level (selects only the required columns). -* Helps in reshaping of data sets. You can also transpose the values of the array and convert to a List. When you are processing data using Python, you can convert the Pandas dataframe to a multi-dimensional NumPy array; the values member variable is used for this. -* Supports label-oriented slicing of data. - -### The disadvantages - -The code and syntax of Pandas is different from Python, which leads to a steep learning curve for some users. Also, a few concepts like three dimensional data are better handled in other libraries like NumPy. - -Pandas really elevates the data analysis process in an efficient manner. Its compatibility with other libraries makes it very conducive for use in various scenarios. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ - -作者:[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 diff --git a/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md new file mode 100644 index 0000000000..ef994f9ba9 --- /dev/null +++ b/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -0,0 +1,108 @@ +[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" +[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" +[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pandas:用于数据分析和数据科学的最热门 Python 库 +====== + +>Pandas 是一个十分流行的 Python 第三方库。本文介绍了 Pandas 库中的一些特性和函数,并且我们鼓励读者亲手使用 Pandas 库,来解决实际的业务问题。 + +Pandas 为 Python 中数据分析提供了基础和高级的构建块。Pandas 库是用于数据分析与数据操作的最强大和最灵活的开源**分析工具**之一,并且它还提供了用于建模和操作表格数据(行和列中的数据)的**数据结构**。 + +Pandas 库有两个主要的数据结构:第一个是“**Series**”,该数据结构能够很方便地从 Python 数组或字典中**按位置或指定索引名称**来检索数据;第二个是“**DataFrames**”,该数据结构将数据存储在行和列中。列可以通过列名访问,行通过索引访问。列可以有不同类型的数据,包括列表、字典、Series、DataFrames、NumPy 数组等。 + +### Pandas 库可以处理各种文件格式 + +有各种各样的文件格式。用于数据分析的工具必须能够提供处理各种文件格式的方法。 + +Pandas 可以读取各种文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,详见下表。 + +| | 写入 | 读取 | +| :- | :- | :- | +| CSV 文件 | to_csv 函数 | read_csv 函数 | +| JSON 文件 | to_json 函数 | read_json 函数 | +| Parquet 文件 | to_parquet 函数 | read_parquet 函数 | +| SQL 文件 | to_sql 函数 | read_sql 函数,read_sql_query 函数,read_sql_table 函数 | +| XML 文件 | to_xml 函数 | read_xml 函数 | + +### 使用 Pandas 进行数据清理 + +在现实场景中,很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要对使数据分析更加准确,就需要对这些没有用的数据进行处理。此外,数据还会有需要 屏蔽mask 的敏感和机密信息。接下来,Pandas 提供了清理、丢弃、替换、屏蔽等方法,来处理这些坏数据。 + +#### Pandas 清洗空值: + +a. 使用 *df.dropna(inplace=True)* 方法来删除包含空字段的行。 + +b. 使用 *df.fillna(, inplace=True)* 方法来替换空字段。还可以指定某一个列来替换该列的空数据。 + +#### Pandas 屏蔽数据: + +c. 要屏蔽所有不满足条件 *my_list.where(my_list < 5)* 的敏感数据的值,可以使用 *my_list.mask(my_list < 5)*。 + +#### Pandas 清洗重复数据: + +d. 要删除重复数据,可以使用 drop_duplicates() 方法: + +``` +df.drop_duplicates(‘’, keep = False) +df.drop_duplicates(‘’, keep = ‘first’) +df.drop_duplicates(‘’, keep = ‘last’) +``` + +### 使用 Pandas 进行数据分析 + +下面的表格列出了 Pandas 中进行数据分析的各种函数,以及其语法。(请注意:df 代表一个 DataFrame 数据结构的实例。) + +| 语法 | 描述 | +| :- | :- | +| df.head(x) | Head() 函数用于读取前面的 x 行,如果不填参数 x,默认返回 5 行 | +| df.tail(x) | tail() 函数用于读取尾部的 x 行,如果不填参数 x ,默认返回最后 5 行,空行各个字段的值返回 NaN | +| loc(x:y) | Loc 函数返回指定行的数据,也可以对数据进行切片 | +| groupby(‘’) | 对指定列的数据进行分组 | +| df[‘column’].sum() | 计算指定列数据的总和 | +| df[‘column’]. mean() | 计算指定列数据的算术平均值 | +| df[‘column’].min() | 计算指定列数据的最小值 | +| df[‘column’].max() | 计算指定列数据的最大值 | +| df.sort_values([‘column’]) | 在指定轴上根据数值进行排序,默认升序 | +| df.size | 返回元素的个数,即为 Rows(行数)* columns(列数) | +| df.describe | 返回对各列的统计汇总 | +| pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | 创建 `column1` 和 `column2` 的交叉表 | +| df.duplicated([column1, ‘column2’]) | 根据 `column1` 和 `column2` 中的重复值,返回 True 或 False | + +### Pandas 的优点 + +* 支持多索引(层次索引),方便分析多维数据。 +* 支持数据透视表的创建,堆栈和取消堆栈操作。 +* 可以使用 Pandas 处理有限值的分类数据。 +* 支持分组和聚合运算。 +* 可以禁用排序。 +* 支持行级过滤(获取满足过滤条件的行)和列级过滤(只选择需要的列)。 +* 有助于重塑数据集(数组的维度变换)。还可以转置数组的值,并转换为列表。当你使用 Python 处理数据时,可以将 Pandas DataFrame 转换为多维 NumPy 数组。 +* 支持面向标签的数据切片。 + +### Pandas 的不足 + +Pandas 的代码和语法与 Python 不同,所以人们需要额外再学习 Pandas。此外,相较于 Pandas,像三维数据这样的高维数据会在 NumPy 等其他库有更好的处理。 + +### 总结 + +Pandas 能够大幅提升数据分析的效率。它与其他库的兼容性使它在其他 Python 库中都能有效地使用。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ + +作者:[Phani Kiran][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者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 From 0990d13015b720b1d4885a5c2e8b64dc3a24bd57 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 25 Jan 2023 21:22:35 +0800 Subject: [PATCH 2635/3123] RP @geekpi https://linux.cn/article-15480-1.html --- ...nstall Python on Windows [Beginner’s Guide].md | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) rename {translated/tech => published}/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md (71%) diff --git a/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md similarity index 71% rename from translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md rename to published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md index 1a4b13d51f..8ef8685076 100644 --- a/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md +++ b/published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -3,18 +3,20 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15480-1.html" -如何在 Windows 上安装 Python(初学者指南) +如何在 Windows 上安装 Python ====== -**这个简单的指南演示了如何在 Windows 上下载和安装 Python。** +![][0] + +> 这个简单的指南演示了如何在 Windows 上下载和安装 Python。 这篇文章是用最新的 Python 3.11 稳定版测试的。 -在学习如何在 Windows 上安装 Python 之前,你可能想看看如何在 Linux 发行版(如 Ubuntu)上[轻松安装][1] 。如果你打算成为一名开发者,最好在 Linux 中尝试 Python。既然如此,你可能想看看[如何在 Windows 之外安装 Linux(如 Ubuntu)][2]。 +在学习如何在 Windows 上安装 Python 之前,你可能想看看如何在 Linux 发行版(如 Ubuntu)上[轻松安装][1] Python。如果你打算成为一名开发者,最好在 Linux 中尝试 Python。那么,你可能想看看 [如何在 Windows 之外安装 Linux(如 Ubuntu)][2]。 Python 是一种流行的通用编程语言,在过去十年中成为开发者的选择。而且它的受欢迎程度与日俱增。它被广泛用于网络开发、复杂系统、数据科学、机器学习和所有科学领域。 @@ -22,7 +24,7 @@ Python 是一种流行的通用编程语言,在过去十年中成为开发者 ### 检查 Python 是否已经安装 -在 Windows 上安装它之前,你应该检查它是否已经安装。一般来说,它应该没有安装,不像在 Ubuntu (和其他 Linux 发行版)中,Python 是预先安装的。 +在 Windows 上安装它之前,你应该检查它是否已经安装。一般来说,它应该没有安装,不像在 Ubuntu (和其他 Linux 发行版)中,Python 是预先安装的。 从开始菜单中,打开“命令提示符”。 @@ -38,9 +40,9 @@ python --version 打开下面的 Python 官方下载页面。 -[下载 Python][3] +> **[下载 Python][3]** -![如何定位 Python 安装][4] +![如何找到要安装的 Python][4] 在顶部,你应该看到当前的稳定版本。点击下载链接。如果你正在寻找任何特定的版本,在这个页面上向下滚动,在 “Python releases by version number:” 的标签下下载特定的版本。 @@ -70,17 +72,17 @@ python --version python ``` -你可以用 CTRL+Z 和回车键退出这个 shell。 +你可以用 `CTRL+Z` 和回车键退出这个交互界面。 ### 检查 PATH 变量 -你应该用 Python 的可执行位置检查系统变量 PATH。这应该是使用安装程序自动更新的。 +你应该检查系统变量 `PATH`,看看 Python 的可执行位置是否存在。这应该是使用安装程序自动更新的。 -从开始菜单中,搜索“系统变量”并打开它。 +从开始菜单中,搜索“系统变量system variables”并打开它。 ![打开环境变量设置][8] -在“系统属性”对话框中,点击“高级>环境变量”。在用户变量部分,对照路径变量,检查 Python 的安装位置是否存在。请参考下面的图片作为指导。 +在“系统属性”对话框中,点击“高级Advanced > 环境变量Environment Variables”。在用户变量部分,对照路径变量,检查 Python 的安装位置是否存在。请参考下面的图片作为指导。 如果你看到所有的路径都存在,你就可以运行你的 Python 项目了。 @@ -88,16 +90,16 @@ python ### 创建并运行你的第一个 Python 程序 -一个额外的步骤,这里是你如何编码和运行你的第一个 Python 程序。你可以使用任意[推荐的 Python 编辑器][10]来编写你的程序。 +一个额外的步骤,这里是你如何编码和运行你的第一个 Python 程序。你可以使用任意 [推荐的 Python 编辑器][10] 来编写你的程序。 -下面是一个简单的程序,它在控制台中输出文本“debugpoint.com”。 +下面是一个简单的程序,它在控制台中输出文本 `debugpoint.com`。 ``` # Sample Python program print("debugpoint.com") ``` -用任意名字保存文件。这里我把它保存为 “hello.py”,放在 E 盘。.py 是 Python 源码的扩展名。 +用任意名字保存文件。这里我把它保存为 `hello.py`,放在 E 盘。`.py` 是 Python 源码的扩展名。 要运行这个程序,请打开命令提示符,在 E 盘中执行以下内容。 @@ -105,7 +107,7 @@ print("debugpoint.com") python hello.py ``` -**输出** +输出: ![在 Windows 中运行一个简单的 Python 程序][11] @@ -122,13 +124,13 @@ via: https://www.debugpoint.com/install-python-windows/ 作者:[Arindam][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/) 荣誉推出 [a]: https://www.debugpoint.com/author/admin1/ [b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/install-python-3-11-ubuntu/ +[1]: https://linux.cn/article-15475-1.html [2]: https://www.debugpoint.com/complete-guide-how-dual-boot-ubuntu-windows/ [3]: https://www.python.org/downloads/ [4]: https://www.debugpoint.com/wp-content/uploads/2023/01/How-to-locate-Python-set-up.jpg @@ -138,4 +140,5 @@ via: https://www.debugpoint.com/install-python-windows/ [8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-Environment-variable-Settings.jpg [9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Check-Python-Environment-PATH-Values-in-Windows.jpg [10]: https://www.debugpoint.com/5-best-python-ide-code-editor/ -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg \ No newline at end of file +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202301/25/211813u4mmhhffif58hmpu.jpg \ No newline at end of file From f94450d1cf27781e7bce8e6c66faea156ebd186a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 25 Jan 2023 22:07:20 +0800 Subject: [PATCH 2636/3123] RP @Zhangzhanhaoxiang https://linux.cn/article-15481-1.html --- ...power your edge projects with open source tools.md | 128 ++++++++++++++++++ ...power your edge projects with open source tools.md | 123 ----------------- 2 files changed, 128 insertions(+), 123 deletions(-) create mode 100644 published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md delete mode 100644 translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md diff --git a/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md new file mode 100644 index 0000000000..39920d1915 --- /dev/null +++ b/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md @@ -0,0 +1,128 @@ +[#]: subject: "Use time-series data to power your edge projects with open source tools" +[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" +[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" +[#]: collector: "lkxed" +[#]: translator: "ZhangZhanhaoxiang" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15481-1.html" + +使用时间序列数据,用开源工具助力你的边缘项目 +====== + +![][0] + +> InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。 + +收集到的随时间变化的数据称为时间序列数据。今天,它已经成为每个行业和生态系统的一部分。它是不断增长的物联网行业的一大组成部分,将成为人们日常生活的重要部分。但时间序列数据及其需求很难处理。这是因为没有专门为处理时间序列数据而构建的工具。在这篇文章中,我将详细介绍这些问题,以及过去 10 年来 InfluxData 如何解决这些问题。 + +### InfluxData + +InfluxData 是一个开源的时间序列数据库平台。你可能通过 [InfluxDB][1] 了解该公司,但你可能不知道它专门从事时间序列数据库开发。这很重要,因为在管理时间序列数据时,你要处理两个问题:存储生命周期和查询。 + +在存储生命周期中,开发人员通常首先收集和分析非常详细的数据。但开发人员希望存储较小的、降低采样率的数据集,以描述其趋势,而不占用太多的存储空间。 + +查询数据库时,你不希望基于 ID 查询数据,而是希望基于时间范围进行查询。使用时间序列数据最常见的一件事是在一段时间内对其进行汇总。在典型的关系型数据库中存储数据时,这种查询是很慢的,这种数据库使用行和列来描述不同数据点的关系。专门为处理时间序列数据而设计的数据库可以更快地处理这类查询。InfluxDB 有自己的内置查询语言:Flux,这是专门为查询时间序列数据集而构建的。 + +![Telegraf 如何工作的图像][2] + +### 数据采集 + +数据采集和数据处理都有一些很棒的工具。InfluxData 有 12 个以上的客户端库,允许你使用自己选择的编程语言编写和查询数据。这是自定义用法的一个很好的工具。开源摄取代理 Telegraf 包括 300 多个输入和输出插件。如果你是一个开发者,你也可以贡献自己的插件。 + +InfluxDB 还可以接受上传小体积历史数据集的 CSV 文件,以及大数据集的批量导入。 + +``` +import math +bicycles3 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "3") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) +bicycles4 = from(bucket: "smartcity") +    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) +    |> filter(fn: (r) => r._measurement == "city_IoT") +    |> filter(fn: (r) => r._field == "counter") +    |> filter(fn: (r) => r.source == "bicycle") +    |> filter(fn: (r) => r.neighborhood_id == "4") +    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner") +    |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"]) +    |> map(fn: (r) => ({ +        r with +        difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4)) +    })) +``` + +### Flux + +Flux 是我们的内部查询语言,从零开始建立,用于处理时间序列数据。它也是我们一些工具的基础动力,包括 任务task警报alert通知notification。要剖析上面的 Flux 查询,需要定义一些东西。首先,“bucket”就是我们所说的数据库。你可以配置存储桶,然后将数据流添加到其中。查询会调用 `smartcity` 存储桶,其范围为特定的一天(准确地说是 24 小时)。你可以从存储桶中获取所有数据,但大多数用户都包含一个数据范围。这是你能做的最基本的 Flux 查询。 + +接下来,我添加过滤器,将数据过滤到更精确、更易于管理的地方。例如,我过滤分配给 id 为 3 的社区中的自行车数量。从那里,我使用 `aggregateWindow` 获取每小时的平均值。这意味着我希望收到一个包含 24 列的表,每小时一列。我也对 id 为 4 的社区进行同样的查询。最后,我将这两张表相叠加,得出这两个社区自行车使用量的差异。 + +如果你想知道什么时候是交通高峰,这是不错的选择。显然,这只是 Flux 查询功能的一个小例子。但它提供了一个很好的例子,使用了 Flux 附带的一些工具。我还有很多的数据分析和统计功能。但对于这一点,我建议查看 Flux 文档。 + +``` +import "influxdata/influxdb/tasks" +option task = {name: PB_downsample, every: 1h, offset: 10s} +from(bucket: "plantbuddy") +    |>range(start: tasks.lastSuccess(orTime: -task.every)) +    |>filter(fn: (r) => r["_measurement"] == "sensor_data") +    |>aggregateWindow(every: 10m, fn:last, createEmpty:false) +    |>yield(name: "last") +    |>to(bucket: "downsampled") +``` + +### 任务 + +InfluxDB 任务task 是一个定时 Flux 脚本,它接收输入数据流并以某种方式修改或分析它。然后,它将修改后的数据存储在新的存储桶中或执行其他操作。将较小的数据集存储到新的存储桶中,称为“降采样downsampling”,这是数据库的核心功能,也是时间序列数据生命周期的核心部分。 + +你可以在当前任务示例中看到,我已经对数据进行了降采样。我得到每 10 分钟增量的最后一个值,并将该值存储在降采样桶中。原始数据集在这 10 分钟内可能有数千个数据点,但现在降采样桶只有 60 个新值。需要注意的一点是,我还使用了范围内的 `lastSuccess` 函数。这会告诉 InfluxDB 从上次成功运行的时间开始运行此任务,以防它在过去 2 小时内失败,在这种情况下,它可以追溯 3 个小时内的最后一次成功运行。这对于内置错误处理非常有用。 + +![检查和警报通知系统的图像][3] + +### 检查和警报 + +InfluxDB 包含一个 警报Alert检查Check通知notification 系统。这个系统非常简单直白。首先进行检查,定期查看数据以查找你定义的异常。通常,这是用阈值定义的。例如,任何低于 32°F 的温度值都被指定为“WARN”值,高于 32°F 都被分配为“OK”值,低于 0°F 都被赋予“CRITICAL”值。从那开始,你的检查可以按你认为必要的频率运行。你的检查以及每个检查的当前状态都有历史记录。在不需要的时候,你不需要设置通知。你可以根据需要参考你的警报历史记录。 + +许多人选择设置通知。为此,你需要定义一个 通知端点notification endpoint。例如,聊天应用程序可以进行 HTTP 调用以接收通知。然后你定义何时接收通知,例如,你可以每小时运行一次检查。你可以每 24 小时运行一次通知。你可以让通知响应值更改,例如,“WARN”更改为“CRITICAL”,或者当值为“CRITICAL”时,无论如何都从“OK”更改为“WARN”。这是一个高度可定制的系统。从这个系统创建的 Flux 代码也可以编辑。 + +![新 Edge 功能的图像][4] + +### 边缘 + +最后,我想把所有的核心功能放在一起,包括最近发布的一个非常特别的新功能。“Edge to cloud” 是一个非常强大的工具,允许你运行开源 InfluxDB,并在出现连接问题时在本地存储数据。连接修复后,它会将数据流传输到 InfluxData 云平台。 + +这对于边缘设备和重要数据非常重要,因为任何数据丢失都是有害的。你定义一个要复制到云的存储桶,然后该存储桶有一个磁盘支持的队列来本地存储数据。然后定义云存储桶应该复制到的内容。在连接到云端之前,数据都存储在本地。 + +### InfluxDB 和物联网边缘 + +假设你有一个项目,你想使用连接到植物上的物联网传感器 [监测家里植物的健康状况][5]。该项目是使用你的笔记本电脑作为边缘设备设置的。当你的笔记本电脑合上或关闭时,它会在本地存储数据,然后在重新连接时将数据流传到我的云存储桶。 + +![图片展示了 Plant buddy 的工作方式][6] + +需要注意的一点是,在将数据存储到复制桶之前,这会对本地设备上的数据进行降采样。你的植物传感器每秒提供一个数据点。但它将数据压缩为一分钟的平均数,因此存储的数据更少了。在云账户中,你可以添加一些警报和通知,让你知道植物的水分何时低于某个水平,需要浇水。也可以在网站上使用视觉效果来告诉用户植物的健康状况。 + +数据库是许多应用程序的主干。在像 InfluxDB 的时间序列数据库平台中使用带有时间戳的数据可以节省开发人员的时间,并使他们能够访问各种工具和服务。InfluxDB 的维护者喜欢看到人们在我们的开源社区中构建什么,所以请与我们联系,并与其他人共享你的项目和代码! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools + +作者:[Zoe Steinkamp][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/zoesteinkamp +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack +[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png +[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png +[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png +[5]: https://opensource.com/article/22/5/plant-care +[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/25/220620ftlnqfm4og7q2j0z.jpg \ No newline at end of file diff --git a/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md deleted file mode 100644 index f7b5a5c4bb..0000000000 --- a/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: subject: "Use time-series data to power your edge projects with open source tools" -[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools" -[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp" -[#]: collector: "lkxed" -[#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -使用时间序列数据使用开源工具助力您的边缘项目 -====== - -收集到的随时间变化的数据称为时间序列数据(time-series data)。今天,它已经成为每个行业和生态系统的一部分。它是不断增长的物联网行业的一大组成部分,将成为人们日常生活的重要部分。但时间序列数据及其要求很难处理。这是因为没有专门为处理时间序列数据而构建的工具。在这篇文章中,我将详细介绍这些问题,以及过去 10 年来 InfluxData 如何解决这些问题。 - -### InfluxData - -InfluxData 是一个开源的时间序列数据库平台。您可能通过 [InfluxDB][1] 了解该公司,但您可能不知道它专门从事时间序列数据库。这很重要,因为在管理时间序列数据时,您要处理两个问题:存储生命周期(storage lifecycle)和查询(queries)。 - -在存储生命周期中,开发人员通常首先收集和分析非常详细的数据。但开发人员希望存储较小的、降采样的数据集,以描述趋势,而不占用太多的存储空间。 - -查询数据库时,您不希望基于 ID 查询数据。您希望基于时间范围进行查询。使用时间序列数据最常见的一件事是在一段时间内对其进行总结。在使用行和列来描述不同数据点关系这样的典型关系数据库中存储数据时,这种查询速度较慢。设计用于处理时间序列数据的数据库可以更快地处理查询。InfluxDB 有自己的内置查询语言:Flux。这是专门为查询时间序列数据集而构建的。 - -![Telegraf 如何工作的图像][2] - -### 数据采集 - -数据采集和数据处理都有一些很棒的工具。InfluxData 有 12 个以上的客户端库,允许您使用自己选择的编程语言编写和查询数据。这是自定义用法的一个很好的工具。开源摄取代理 Telegraf 包括 300 多个输入和输出插件。如果您是一个开发者,您也可以贡献自己的插件。 - -InfluxDB 还可以接受上传小体积历史数据集的 CSV 文件,以及大数据集的批量导入。 - -``` -import math -bicycles3 = from(bucket: "smartcity") -    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) -    |> filter(fn: (r) => r._measurement == "city_IoT") -    |> filter(fn: (r) => r._field == "counter") -    |> filter(fn: (r) => r.source == "bicycle") -    |> filter(fn: (r) => r.neighborhood_id == "3") -    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) -bicycles4 = from(bucket: "smartcity") -    |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z) -    |> filter(fn: (r) => r._measurement == "city_IoT") -    |> filter(fn: (r) => r._field == "counter") -    |> filter(fn: (r) => r.source == "bicycle") -    |> filter(fn: (r) => r.neighborhood_id == "4") -    |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner") -    |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"]) -    |> map(fn: (r) => ({ -        r with -        difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4)) -    })) -``` - -### Flux - -Flux 是我们的内部查询语言,从零开始建立来处理时间序列数据。它也是我们一些工具的基础动力,包括任务(tasks)、警报(alerts)和通知(notifications)。要从上面剖析 flux 查询(flux query),需要定义一些东西。首先,“桶(bucket)”就是我们所说的数据库。您可以配置存储桶,然后将数据流添加到其中。查询会调用 smartcity 存储桶,其范围为特定的一天(准确地说是 24 小时)。您可以从存储桶中获取所有数据,但大多数用户都包含一个数据范围。这是你能做的最基本的 flux 查询。 - -接下来,我添加过滤器,将数据过滤到更精确、更易于管理的地方。例如,我过滤分配给 id 为 3 的邻居中的自行车数量。从那里,我使用 aggregateWindow 获取每小时的平均值。这意味着我希望收到一个包含 24 列的表,每小时一列。我也对 id 为 4 的邻居进行同样的查询。最后,我将这两张表相叠加,得出这两个社区自行车使用量的差异。 - -如果你想知道什么时候是交通高峰,这是不错的选择。显然,这只是 flux 查询功能的一个小例子。但它提供了一个很好的例子,使用了 flux 附带的一些工具。我还有很多的数据分析和统计功能。但对于这一点,我建议查看 Flux 文档。 - -``` -import "influxdata/influxdb/tasks" -option task = {name: PB_downsample, every: 1h, offset: 10s} -from(bucket: "plantbuddy") -    |>range(start: tasks.lastSuccess(orTime: -task.every)) -    |>filter(fn: (r) => r["_measurement"] == "sensor_data") -    |>aggregateWindow(every: 10m, fn:last, createEmpty:false) -    |>yield(name: "last") -    |>to(bucket: "downsampled") -``` - -### 任务(Tasks) - -InfluxDB 任务是一个定时 Flux 脚本,它接收输入数据流并以某种方式修改或分析它。然后,它将修改后的数据存储在新的存储桶中或执行其他操作。将较小的数据集存储到新的存储桶中,称为“降采样”,这是数据库的核心功能,也是时间序列数据生命周期的核心部分。 - -您可以在当前任务示例中看到,我已经对数据进行了降采样。我得到每 10 分钟增量的最后一个值,并将该值存储在降采样桶中。原始数据集在这 10 分钟内可能有数千个数据点,但现在降采样桶只有 60 个新值。需要注意的一点是,我还使用了范围内的最后一个成功的函数。这会告诉 InfluxDB 从上次成功运行时开始运行此任务,以防它在过去2小时内失败,在这种情况下,它可以返回到上次成功运行的 3 个小时。这对于内置错误处理非常有用。 - -![检查和警报通知系统的图像][3] - -### 检查(Checks)和警报(Alerts) - -InfluxDB 包含一个警报或检查和通知系统。这个系统非常简单直白。首先进行检查,定期查看数据以查找您定义的异常。通常,这是用阈值定义的。例如,任何低于 32°F 的温度值都被指定为“WARN”值,高于 32°F 都被分配为“OK”值,低于 0°F 都被赋予“CRITICAL”值。从那开始,您的检查可以按您认为必要的频率运行。您的检查以及每个支票的当前状态都有历史记录。当不需要通知时,您不会被要求设置它。您可以根据需要引用警报历史记录。 - -许多人选择设置通知。为此,您需要定义一个通知端点(notification endpoint)。例如,聊天应用程序可以进行 HTTP 调用以接收通知。然后您定义何时接收通知,例如,您可以每小时运行一次检查。您可以每 24 小时运行一次通知。您可以让通知响应值更改,例如,“WARN”更改为“CRITICAL”,或者当值为“CRITICAL”时,无论如何都从“OK”更改为“WARN”。这是一个高度可定制的系统。从这个系统创建的 Flux 代码也可以编辑。 - -![新 Edge 功能的图像][4] - -### 边缘(Edge) - -最后,我想把所有的核心功能放在一起,包括最近发布的一个非常特别的新功能。从边缘到云(Edge to cloud)是一个非常强大的工具,允许您运行开源 InfluxDB,并在出现连接问题时在本地存储数据。连接修复后,它会将数据流传输到 InfluxData 云平台。 - -这对于边缘设备和重要数据非常重要,因为任何数据丢失都是有害的。您定义要将一个存储桶复制到云,然后该存储桶有一个磁盘支持的队列来本地存储数据。然后定义云存储桶应该复制到的内容。数据存储在本地,直到连接到云。 - -### InfluxDB 和物联网边缘 - -假设你有一个项目,你想使用连接到植物上的物联网传感器[监测家里植物的健康状况][5]。该项目是使用您的笔记本电脑作为边缘设备设置的。当你的笔记本电脑合上或关闭时,它会在本地存储数据,然后在重新连接时将数据流传到我的云存储桶。 - -![图片展示了 Plant buddy 的工作方式][6] - -需要注意的一点是,在将数据存储到复制桶之前,这会对本地设备上的数据进行降采样。你的植物传感器每秒提供一个数据点。但它将数据压缩为平均一分钟,因此可以存储的数据更少。在云账户中,你可以添加一些警报和通知,让你知道植物的水分何时低于某个水平,需要浇水。也可以在网站上使用视觉效果来告诉用户植物的健康状况。 - -数据库是许多应用程序的主干。在像 InfluxDB 的时间序列数据库平台中使用带有时间戳的数据可以节省开发人员的时间,并使他们能够访问各种工具和服务。InfluxDB 的维护者喜欢看到人们在我们的开源社区中构建什么,所以请与我们联系,并与其他人共享您的项目和代码! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools - -作者:[Zoe Steinkamp][a] -选题:[lkxed][b] -译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/zoesteinkamp -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack -[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png -[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png -[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png -[5]: https://opensource.com/article/22/5/plant-care -[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png From de0a90cae3c72162a8ab8f1ad97adc432ef7d3ca Mon Sep 17 00:00:00 2001 From: yzuowei Date: Thu, 26 Jan 2023 10:52:58 +0800 Subject: [PATCH 2637/3123] translating --- ...1.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md index f432506bf1..3a5c517c3a 100644 --- a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/code-review" [#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8e78735a68d22c1afff5d7d0f5093b343dd463d1 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Thu, 26 Jan 2023 15:38:28 +0800 Subject: [PATCH 2638/3123] translating --- ...20220906 How to Analyse Sentiments Using Machine Learning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md index 1cac4f4b89..7f83a0b380 100644 --- a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md +++ b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-machine-learning/" [#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 436f872c02401feb0df99300f2a4307667d65133 Mon Sep 17 00:00:00 2001 From: HancongZhang <35531128+onionstalgia@users.noreply.github.com> Date: Thu, 26 Jan 2023 20:49:10 +0800 Subject: [PATCH 2639/3123] translating --- ...110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index 47d1016c92..d5232e9cf4 100644 --- a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/twitter-vs-mastodon" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e5c2807edfdc270e037080dc122845e5803ca21d Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 10:07:47 +0800 Subject: [PATCH 2640/3123] translated --- ...️ 10 universal steps for open source code review.md | 115 +++++++++--------- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md index 3a5c517c3a..a7b84ce098 100644 --- a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -2,118 +2,120 @@ [#]: via: "https://opensource.com/article/22/10/code-review" [#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" [#]: collector: "lkxed" -[#]: translator: "yzuowei" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -10 universal steps for open source code review +开源代码评审的十个通用步骤 ====== -Code review doesn't have to be scary when you follow this universal process. +只要你遵循这些通用流程,代码评审code review并不可怕。 -Have you ever found yourself in a situation where you needed to do a code review but didn't fully understand the project? Maybe you did not review it to avoid looking like you didn't know what you were doing. +你是否曾需要对代码进行评审,但你还没有完全理解整个项目?或许你避开去评审从而避免你看起来像是什么都不知道的洋相。 -This article assures you that there's a better way. You don't need to know everything to provide a code review. In fact, based on my experience, that's quite common. +本篇文章想要告诉你一个更好的方法。代码评审并不需要你知道所有事情。实际上,就我个人经验而言,这种情况非常普遍。 -I remember when I joined Red Hat as an intern and was asked to help with code reviews. We used a system of +1 or -1 votes, and I was initially very hesitant to weigh in. I found myself asking whether when I gave a +1 on a change but then someone else voted -1, would I look foolish? +我还记得在我刚加入红帽Red Hat做实习的时候,我被要求参与代码评审。我们当时采取的是 +1 或 -1 的投票系统,而我在一开始的时候常常踌躇该如何评审。我发现我总是问自己对于一处改动是否应该给予 +1 当别人已经投了 -1,我会看起来很蠢吗? -What does happen if someone votes -1 on a change you've vote +1? The answer is nothing! You might have missed a detail that the other person noticed. It's not the end of the world. That's why we have this voting system. Like the rest of open source, merging code is a collaborative effort. +如果你对一处改动投了 +1, 但是别人又投了 -1,这又意味着什么呢?这不意味任何事!你可能只是漏掉了一处细节而别人又恰好注意到了。这不意味着世界末日。这也是为什么我们会用投票系统。正如同所有开源项目一样,代码合并是一项协同工作。 -Lately, I've been so inundated with code reviews that I can hardly keep up with them. I also noticed that the number of contributors doing these reviews steadily decreased. +最近,我接到了太多的代码评审工作以至于我难以维持进度。我同时也注意到了参与评审的贡献者数量正在稳步减少。 -For this reason, I'm writing about my point of view on writing a code review. In this article, I'll share some helpful tips and tricks. I'll show you a few questions you should ask yourself and a few ideas of what to look for when doing a code review. +基于这个原因,我想要写一篇文章阐述我对代码评审的个人观点。在这篇文章里,我会分享一些诀窍与技巧。我会向你展示几个问题你可以用来自问自答,我也会为在评审代码时需要注意什么提供一些想法。 -### What is the purpose of a code review? +### 代码评审的目的是什么? -Have you ever written a really simple patch? Something you think is so trivial that it doesn't require a review? Maybe you merged it straight away. Later, it turns out there was a mistake, something obvious or silly, like the wrong indentation or a few duplicated lines of code instead of a function call (yes, I'm speaking from experience!). +你是否曾写过一个非常简单的补丁?补丁太过琐碎以至于你认为评审是多余的?或许你马上进行了合并。直到晚些时候,你意识到你犯了个错误,一个明显或是愚蠢的错误,或是错误缩进,或是几行重复的代码在本可以调用函数的地方(是的,这些都是经验之谈!)。 -A code review by someone else would have caught these things. +一段代码本可以交予他人评审并及时发现这些问题。 -The point of a code review is to bring a fresh pair of eyes with a new perspective on the problem you're trying to solve. That new context is exactly the reason a code review is crucial. +代码评审的一个目的便是为你在尝试解决的问题带来一双全新的视角。新开阔的视野也正是为什么代码评审至关重要。 -You may think that you must be an expert in the language to review someone else's code, the project, or both. Here's a secret all code reviewers want you to know: That's wrong! You don't need to fully understand the project or the language to provide a fresh perspective on a change. There's a universal process of code review. +你可能会认为评审别人的代码需要你是一名专家,或是编程语言专家,或是项目专家,或两者兼具。让我来告诉你一个所有代码评审者都想跟你说的秘密吧:大错特错!你并不需要完全理解项目或者编程语言来为改动提供全新视角。我将向你展示代码评审的通用流程。 -### The universal process of a code review +### 代码评审的通用流程 -Here's my process for code review, grouped into a couple of points. The process provides questions I ask myself to help me focus on a code change and its consequences. You don't need to go in this specific order. If there's a step, you can't execute for any reason, just move to another step. +这是我的代码评审流程被拆分成几个要点。这个流程包含了我会问我自己的一些问题,以帮助我专注于代码的变化以及其后果。你不需要严格依照顺序来进行评审。如果有任何原因导致你无法执行其中的某一步,跳过那一步就好。 -### 1. Understand the change, what it's trying to solve, and why +### 1. 理解改动,问改动想要解决的问题,以及为什么要解决这个问题 -The explanation of why the change is needed and any relevant context should be in the commit message. If it isn't, request it and feel free to -1 until it's provided. +为什么需要改动的解释以及任何相关背景都应该被放在提交commit信息里。如果没有,要求相关信息并请随意投 -1 直到相关信息被提供。 -Is it something that needs to be solved? Is it something the project should focus on, or is it completely out of scope? +改动想解决的问题需要被解决吗?它是项目应当聚焦的问题,还是与项目完全无关? -### 2. How would you implement the solution? Would it be different? +### 2. 你会如何实现解决方案?它会不一样吗? -At this point, you know what the code change is about. How would you have done it? Think about this before reviewing the change in detail. If the solution you have in mind is different from the one you're reviewing, and you think it's better, bring that up in the review. You don't need to -1 it; just ask why the author didn't go in this direction and see how the discussion evolves. +在这个时候,你应该已经知道代码改动是为了什么。换做是你会怎么做?在进一步对改动进行细节评审前思考这个问题。如果你想出了一个不一样的解法,并且你认为你的解法更好,在评审中提出来。你不需要投 -1;去问问作者为什么没有往那个方向走,看看这次讨论会把你们带向何方。 -### 3. Run the code with and without the change +### 3. 运行有改变和无改变的代码 -I usually put a few breakpoints into the code, run it, and inspect how the new code interacts with the rest. +我通常会在代码中设置几个断点,运行代码并检查新代码是如何与其余部分互动的。 -If you can't run the whole code, try to copy the function containing the new code to a new local file, simulate the input data, and run that. This is helpful when you either don't know how to run the whole project or when it requires a specific environment to which you don't have access. +如果你无法运行整个代码,试着将带有新代码的函数复制到一个新的本地文件,模拟输入数据,然后运行。这在你不知道怎么运行整个项目或者无法接触到运行所需的特殊环境时很有帮助。 -### 4. Can the new code break anything? +### 4. 新代码会破坏任何东西吗? -I mean, really anything. Think about the consequences. +我是说,任何东西。想一想可能的后果。 -In the case of a new command-line option, will it always be accepted by the target? +以一个新的命令行选项为例,它会总是被目标所接受吗? -Can a situation occur when the option wouldn't be accepted or when it could conflict with something? +是否存在这样一种情况使得新选项无法被接受或是会与其他东西起冲突? -Maybe it's a new import. Is the new library, and possibly a new dependency, available in the older releases or systems you ship the project for? +或许新代码是一个新的导入。那么这个新的库,很可能也是新的依赖,能够在老版本或者项目的运行系统中被找到吗? -What about security? Is the new dependency safe to use? The least you can do is run a quick Internet search to find out. Also, look for warnings in the console log. Sometimes there are more secure methods within the same library. +安全方面呢?新的依赖足够安全吗?你至少可以在网上快速地搜索一下。还有,注意一下控制台日志里的警告。有的时候在同样的库里也可以找到更安全的方法。 -### 5. Is the code effective? +### 5. 新代码是否有效? -You've determined that the proposed solution is probably correct. Now it's time to check the code itself, its effectiveness, and its necessity. +你刚刚确认了被提出的解决方案大概是正确的。现在该检查代码本身了。你需要关注代码的有效性和必要性。 -Check the style of the new code. Does it match the style of the project? Any open source project has (or should have) a document informing (new) contributors about the styles and good practices the project follows. +检查新代码的风格。它与项目的代码风格相匹配吗?任何开源项目都(应该)有一份文档告知(新)贡献者项目所遵循的风格和优秀实践。 -For instance, every project in the OpenStack community has a HACKING.rst file. There's often also [a guide for new contributors][1] with all the must-know information. +比如说,OpenStack 社区的所有项目都有一份 HACKING.rst 文件。你经常也能找到一份[新贡献者指南][1]包含所有必须知道的信息。 -### 6. Check that all new variables and imports are used +### 6. 确认所有新增的变量和导入都被使用 -Often, there have been many iterations of the code you're reviewing, and sometimes the final version is very different from when it started. It's easy to forget an import or a new variable that was needed in a former version of the new code. Automation usually checks these things using linting tools like [flake8][2] in the case of Python code. +你正在评审的代码常常已经过多次迭代,有的时候代码的最终版本与初始版已迥然不同。所以我们很容易忘记一些在历史版本中加入的变量与引用。自动化检测通常会用到 lint 工具,类似 Python 中的 [flake8][12]。 -Can you rewrite the code without declaring new variables? Well, usually, yes, but the question is whether it's better that way. Does it bring any benefit? The goal isn't to create as many one-liners as possible. The goal is to write code that is both efficient and easy to read. +(LCTT 译注:[lint][5] 指编程中用来发现代码潜在错误和约束代码风格的工具,起源于 C 语言编程中的静态分析工具 lint。lint 本意为衣服上积累的绒毛与灰尘,lint 的取名寓意则在于捕捉编程时产生的“绒毛与灰尘”) -### 7. Are the new functions or methods necessary? +你可以在不声明新变量的情况下重写代码吗?通常情况下你可以,但问题是这样是否更好。这会带来什么益处吗?我们的目标不是多写花式的一行代码,而是写出高效且易读的代码。 -Is there a similar function that can be reused somewhere in the project? It's always worth helping to avoid reinventing the wheel and re-implementing logic that's already been defined. +### 7. 新的函数和方法是否必要? -### 8. Are there unit tests? +项目里的别的地方是否存在可以被复用的功能类似的函数?确保避免重新发明轮子以及重新实现已经被定义的逻辑永远都是值得的。 -If the patch adds a new function or new logic in a function, it should also include new unit tests for that. It's always better when the author of a new function also writes unit tests for it. +### 8. 有单元测试吗? -### 9. Verify refactoring +如果补丁增加了新的函数或者在函数内添加了新的逻辑,它也应该附带对应的单元测试。新函数的作者总是比别人更适合写该函数的单元测试。 -If the commit refactors existing code (it renames a variable, changes variable scope, changes the footprint of a function by adding or removing arguments, or removes something), ask yourself: +### 9. 验证重构 -- Can this be removed? Will it affect the stable branch? -- Are all the occurrences deleted? +如果这次提交对现有代码进行了重构(它可能重命名了某个变量,或者是改变了的变量的作用域,或者是通过加减参数来改变函数的足迹,又或者是删去了某个东西),问一问你自己: -You can use the [grep command][3] to find out. You wouldn't believe how many times I've voted -1 just because of this. This is a simple mistake that anyone can make, but that also means anyone can uncover it. +- 这个可以被删除吗?它会影响到稳定分支吗? +- 所有出现的地方都删掉了吗? -The owner of the commit can easily overlook these things, which is totally understandable. It's happened to me many times too. I'd finally figured out the root of the problem I'd been fixing, so I was in a rush to propose the review, and then I forgot to check the whole repo. +你可以利用 [grep 命令][3]来查找。你不会相信有多少次我投 -1 就是因为这个。这是一个任何人都会犯的错误,也正因如此任何人都可以发现它。 -Apart from the project's repository, sometimes it's also necessary to check other code consumers. If some other project imports this one, they may need refactoring, too. In the OpenStack community, we have a tool that searches across every community project. +提交的所有者很容易忽略这些事情,这完全可以理解。我也犯过很多次这种错误。我最终发现问题的根源在于我太急于提出评审,以至于我忘记了对仓库进行整体检查。 -### 10. Does project documentation need to be modified? +除了对项目仓库的检查外,检查其他代码用户也十分必要。如果有别的项目导入了这个项目,它们可能也需要进行重构。在 OpenStack 社区中,我们有对应的工具来查询别的社区项目。 -Again, you can use the [grep command][4] to check whether the project documentation mentions anything related to the code change. Apply common sense to determine whether a change needs to be documented for end users or it's just an internal change that doesn't affect user experience. +### 10. 项目文档是否需要做出更改? -### Bonus tip: Be considerate +你可以再一次使用 [grep 命令][4]来检查在项目文档中是否提到了相关的代码改动。用常识来判断这次改动是否需要被收入文档以告知最终用户,还是只是一个不会影响用户体验的内部变化。 -Be considerate, precise, and descriptive if you make a suggestion or comment on something after you've reviewed the new code. Ask questions if you don't understand something. If you think the code is wrong, explain why you think so. Remember, the author can't fix it if they don't know what's broken. +### 额外提示:考虑周到 -### Final words +当你在评审完新代码后提出建议或评论时,要考虑周到,反馈准确,描述详尽。如果有你不理解的地方就发出提问。如果你认为代码存在错误,解释你的理由。记住,作者无法修复他不知道的漏洞。 -The only bad review is no review. By reviewing and voting, you provide your point of view and vote only for that. Nobody expects you to give the final yes or no (unless you're a core maintainer!), but the voting system allows you to provide your perspective and opinion. A patch owner will be glad you did it, trust me. +### 最后几句 -Can you think of any other steps for a good review? Do you have any special technique different from mine? Let us all know in the comments! +唯一的坏评审是没有评审。通过评审和投票,你提供了你的观点并为此发声。没有人指望你来做出最终决定(除非你是核心维护者),但是投票系统允许你提供你的观点和意见。相信我,补丁所有者会很高兴你这么做了的。 + +你能想到别的要点来给出好的评审吗?你是否有我不知道的特殊技巧?在评论中分享它们吧! -------------------------------------------------------------------------------- @@ -121,7 +123,7 @@ via: https://opensource.com/article/22/10/code-review 作者:[Martin Kopec][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[yzuowei](https://github.com/yzuowei) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -132,3 +134,4 @@ via: https://opensource.com/article/22/10/code-review [2]: https://opensource.com/article/19/5/python-flake8 [3]: https://opensource.com/downloads/grep-cheat-sheet [4]: https://www.redhat.com/sysadmin/how-to-use-grep +[5]: https://codedocs.org/what-is/lint-software From 8f0320d22af4b6f5b9ab5eb96659c7be1a1afa1d Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 10:08:33 +0800 Subject: [PATCH 2641/3123] translated --- ...031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md (100%) diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md similarity index 100% rename from sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md rename to translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md From 14f055097cda93fb0cd26a868bc2696478f0b46d Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 10:14:22 +0800 Subject: [PATCH 2642/3123] translated --- ...1.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md index a7b84ce098..26e1f558c7 100644 --- a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/code-review" [#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5fb87294cfa1a224a14c5f89852572d9a1d64d69 Mon Sep 17 00:00:00 2001 From: HancongZhang <35531128+onionstalgia@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:39:38 +0800 Subject: [PATCH 2643/3123] translate finished --- ... 4 key differences between Twitter and Mastodon.md | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index d5232e9cf4..a43b547a56 100644 --- a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -7,54 +7,54 @@ [#]: publisher: " " [#]: url: " " -4 key differences between Twitter and Mastodon +Twitter 和 Mastodon 的四个关键区别 ====== -Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Here are a few other advantages. +Mastodon并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它其他的一些优势。 -Social media is not always sociable, and sometimes we need a sufficient impetus to change what we do and what we read. I began using Twitter as a replacement for my RSS reader in 2008, which revolutionized how I read and learned up to that point. Tweets from educators and free and open source (FOSS) advocates worldwide kept me informed and engaged in a learning network that was without equal. That's changed over the past half dozen years, and recently a change in ownership and the shaping of what I read was driven more by an algorithm than by my personal interests and choices. During a yearly meetup of correspondents and editors of Opensource.com a few years ago, [Seth Kenlon][1] suggested giving [Mastodon][2] a try. I joined [Fosstodon][3] in 2019. Fosstodon is a Mastodon instance for a community of like-minded people who enjoy free and open source software. +社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和型塑我阅读内容的更多的是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 -### Mastodon vs Twitter +### Mastodon 与 Twitter 对比 -Change is not easy. Being a creature of habit, I stayed with my old standby even though it was becoming increasingly tiresome. The threat of its sale in the spring of 2022 invited me to reconsider Fosstodon. +作为一个墨守成规的人,改变对我来说并不容易,尽管 Twitter 变得越来越让人厌倦,我还一直在使用。可是到了 2022 年的春天,Twitter 的出售危机让我重新考虑使用 Fosstodon了。 -### 1. Favorite instead of like +### 1. 收藏而不是点赞 -The Mastodon interface is similar to Twitter. Rather than "liking" a post, you "favorite" a post on Mastodon by clicking the star icon under the post content. +Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是「点赞」一个帖子,而是通过点击帖子下方的星标来「收藏」一个帖子。 ![Favorite button][4] -### 2. Share a post +### 2. 分享帖子 -Re-sharing on my old network is a "retweet," but on Mastodon, it's a "boost." You click the double-arrow icon under the post content to boost a post. +在 Twitter 上,重新分享是「转推」(retweet),但在Mastodon,它是「转嘟」(boost)。你可以点击帖子下方的双箭头图标来转嘟。 ![Boost button][5] -### 3. Mastodon instances +### 3. Mastodon 实例 -Because anyone can run a Mastodon instance, different instances not only have unique communities (like the ones that form around specific hashtags on Twitter, but Mastodon also has hashtags). Some have a unique set of rules. For instance, unlike my former social network, there were content moderation rules on Fosstodon that seemed strict initially. I made a post unrelated to FOSS software, and my post was removed. I was told it had been removed because I'd not issued a "content warning." That irked me, so I looked for another instance and found a couple more to my liking. One was [Mastodon.social][6], and the other [Scholar.social][7]. The former is a general server with no expectation about what you will post. The latter was an instance dedicated to academics. In all cases, there are well-enforced codes of conduct. +任何人都可以运行一个 Mastodon 实例,这让不同的实例上发展出了独特的社区(类似在 Twitter 上围绕特定标签形成的社区,不过 Mastodon 也有标签),有些实例有一套独特的规则。举个例子,和我以前的社交网络不同,Fosstodon 上采取了内容审核制度。最初这让我觉得有些严格,我发了一个与自由与开放源码软件无关的帖子,然后帖子就被删除了。我被告知的删除原因是,我没有给帖子打上 "内容警告"。这惹怒了我,于是我尝试寻找别的实例,发现了几个更符合我胃口的。其中一个是 [Mastodon.social][6],另一个是 [Scholar.social][7],前者是一个泛用的实例,没有预设的发帖主题,后者则是一个学术专用的实例。当然,他们也都制定有严格的行为规范。 -Each instance has rules, and while they differ slightly in the description, they clearly spell out what is and is not acceptable behavior. Fosstodon published its [code of conduct][8], which established the rules and expectations of behavior on the site. +每个实例都有规则,虽然在表述上略有不同,但都清楚地说明了可以接受和不可接受的行为。Fosstodon 公布了它的 [行为规范][8],确立了站点的规则和预期。 -### 4. Open source social networking +### 4. 开源社交网络 -If you want to run your own Mastodon instance or help develop one, you'll be happy to know that Mastodon is open source. It uses an AGPLv3 license, and its source code is available as a [Git repository][9]. The software provides a social network server that uses the [ActivityPub][10] protocol to communicate with other servers worldwide. +如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持使用 [ActivityPub][10] 协议在世界各地的服务器间通信。 -Mastodon is not a single site on the internet but a series of sites spanning the globe and communicating with each other. This federated network is referred to as the "fediverse." Unlike other social networks, where there's a single owner of the network, Mastodon and other ActivityPub sites are owned by anyone who runs a server. +Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 「联邦宇宙」(Fediverse)。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行Mastodon 或者其他 ActivityPub 协议网站。 -From a user's perspective, this doesn't matter at first. You can sign up on any Mastodon instance and then connect to all other instances. +从用户的角度来看,这一开始时其实并不重要。你可以在任何 Mastodon 实例上注册,然后连接到其余所有的实例。 -There is power to this distributed design, though. If you encounter an instance with a community producing content you'd rather not see, you can block either a single user from that instance or the whole instance. +不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户或者整个实例。 -In the past month, I've returned to Fosstodon primarily because open source is my passion. I enjoy sharing open source content on Fosstodon because the other users of Fosstodon are generally receptive to posts about free and open source software. When I have something to share that's not considered appropriate on Fosstodon, I share it on Scholar.social or Mastodon.social. +过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能接受关于自由和开源软件的帖子。当我有一些不适合在 Fosstodon 上分享的内容时,我会在 Scholar.social 或者 Mastodon.social 上分享。 -Not all instances have topics they focus on, and even those that do often use their topical interests as a guideline rather than grounds for strict removal of posts. If you have a particular interest, you might be able to find a community built around that topic, and you're likely to see that you have an instant audience. Of course, you'll still always be able to communicate with users of other instances, too. +不是所有的实例都有关注的话题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 -### Try Mastodon +### 试试 Mastodon -Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Some instances make it easy to support them with Patreon or PayPal. +Mastodon 不是一家公司,所有 Mastodon 实例都是由各自所属的服务器的贡献者负责支持维护的。有些能很容易地通过 Patreon 或 PayPal 提供支持。 -I have found the fediverse a welcoming place that brings joy back into social networking. Have you joined Mastodon? What are your takeaways? Let us know in the comments. +我发现,联邦宇宙是个很温馨的地方,把快乐带回给了社交网络。你加入了 Mastodon 了吗?有没有什么收获?请在评论中告诉我们。 -------------------------------------------------------------------------------- @@ -62,7 +62,7 @@ via: https://opensource.com/article/22/11/twitter-vs-mastodon 作者:[Don Watkins][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[onionstalgia](https://github.com/onionstalgia) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1d193b4d476fdbdffb6bb5118f714987997ce76b Mon Sep 17 00:00:00 2001 From: onionstalgia Date: Fri, 27 Jan 2023 11:51:09 +0800 Subject: [PATCH 2644/3123] translated --- ...21110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md (100%) diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md similarity index 100% rename from sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md rename to translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md From ab91545ea024fd65f1d434e2e5433266c570bbc5 Mon Sep 17 00:00:00 2001 From: HancongZhang <35531128+onionstalgia@users.noreply.github.com> Date: Fri, 27 Jan 2023 12:14:04 +0800 Subject: [PATCH 2645/3123] translated --- ...️⭐️ 4 key differences between Twitter and Mastodon.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index a43b547a56..6b354b93fb 100644 --- a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -12,7 +12,7 @@ Twitter 和 Mastodon 的四个关键区别 Mastodon并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它其他的一些优势。 -社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和型塑我阅读内容的更多的是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 +社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和形塑我阅读内容更多是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 ### Mastodon 与 Twitter 对比 @@ -38,17 +38,17 @@ Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是「点 ### 4. 开源社交网络 -如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持使用 [ActivityPub][10] 协议在世界各地的服务器间通信。 +如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持与使用 [ActivityPub][10] 协议的世界各地的服务器间通信。 Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 「联邦宇宙」(Fediverse)。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行Mastodon 或者其他 ActivityPub 协议网站。 从用户的角度来看,这一开始时其实并不重要。你可以在任何 Mastodon 实例上注册,然后连接到其余所有的实例。 -不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户或者整个实例。 +不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户,或者屏蔽整个实例。 -过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能接受关于自由和开源软件的帖子。当我有一些不适合在 Fosstodon 上分享的内容时,我会在 Scholar.social 或者 Mastodon.social 上分享。 +过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能乐于看到关于自由和开源软件的帖子。当我有一些内容不适合在 Fosstodon 上分享时,我会分享到 Scholar.social 或者 Mastodon.social 上。 -不是所有的实例都有关注的话题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 +不是所有的实例都有关注的主题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 ### 试试 Mastodon From e139439687cedd7b5e3f1c8c1977a9d266969a8f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 27 Jan 2023 12:38:04 +0800 Subject: [PATCH 2646/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yzuowei 我修改了 Unicode 的字符名的 Ruby 标签使用方式,原因如下: - 这个大写的字符名是正式名称,所以可以直接使用 - 名称太长,RUBY 标签在排版时,尤其是在微信的手机屏幕上会换行,比较难看 这篇翻译的非常尽心,非常好,👍 --- ...⭐️ Battle of the Texts and the Unicode Savior.md | 121 +++++++++--------- 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index a3229479d0..67f6348ecc 100644 --- a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -3,16 +3,18 @@ [#]: author: "Sylvain Leroux https://www.yesik.it/" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 文字间的战斗与其救世主 Unicode ====== +![][0] + 我们都知道如何从键盘输入文字,不是吗? -那么,允许我挑战你在你最爱的文本编辑器中输入这段文字: +那么,请允许我挑战你在你最爱的文本编辑器中输入这段文字: ![«Ayumi moved to Tokyo in 1993 to pursue her career» said Dmitrii][1] @@ -20,7 +22,7 @@ - 键盘上没有的印刷符号, - 平假名日文字符, -- 为符合平文式罗马字标准,日本首都的名字中的头顶长音符号两个字母 "o", +- 为符合平文式罗马字标准,日本首都的名字中的两个字母 “o” 头顶带有长音符号, - 以及最后,用西里尔字母拼写的名字德米特里。 毫无疑问,想要在早期的电脑中输入这样的句子是不可能的。这是因为早期电脑所使用的字符集有限,无法兼容多种书写系统。而如今类似的限制已不复存在,马上我们就能在文中看到。 @@ -41,7 +43,7 @@ 对于 128 之前的数字,两张表格是一样的。这个范围与 [US-ASCII][7] 相对应,这是不同字符表格之间的最低兼容性。而对于 128 之后的数字,这两张表格则完全不同了。 -比如,依据 Windows-1251,字符串 _“said Дмитрий”_ 会被储存为: +比如,依据 Windows-1251,字符串 “said Дмитрий” 会被储存为: ``` 115 97 105 100 32 196 236 232 242 240 232 233 @@ -59,13 +61,13 @@ said Äìèòðèé ``` -这份文件_看起来_被损坏了,实则不然。这些储存在文件里的数据,即数字,并没有发生改变。被显示出的字符与_另一张表格_中的数据相对应,而非文字最初被写出来时所用的编码表。 +这份文件 _看起来_ 被损坏了,实则不然。这些储存在文件里的数据,即数字,并没有发生改变。被显示出的字符与 _另一张表格_ 中的数据相对应,而非文字最初被写出来时所用的编码表。 -让我们来举一个例子,就以字符 Д 为例。按照 Windows-1251,Д 的数字编码为 196 (c4)。储存在文件里的只有数字 196。而正是这同样的数字在 ISO8859-15 中与 Ä 相对应。这就是为什么我的电脑错误地认为字形 Ä 就是应该被显示的字形。 +让我们来举一个例子,就以字符 “Д” 为例。按照 Windows-1251,“Д” 的数字编码为 196(c4)。储存在文件里的只有数字 196。而正是这同样的数字在 ISO8859-15 中与 “Ä” 相对应。这就是为什么我的电脑错误地认为字形 “Ä” 就是应该被显示的字形。 ![When the same text file is written then read again but using a different encoding][8] -多提一句,你依然可以时不时地看到一些错误配置的网站展示,或由[用户邮箱代理][9]发出的对收件人电脑所使用的字符编码做出错误假设的邮件。这样的故障有时被称为乱码(LCTT译注:原文用词为 [mojibake][10], 源自日语 _文字化け_)。好在这种情况在今天已经越来越少见了。 +多提一句,你依然可以时不时地看到一些错误配置的网站展示,或由 [用户邮箱代理][9] 发出的对收件人电脑所使用的字符编码做出错误假设的邮件。这样的故障有时被称为乱码(LCTT 译注:原文用词为 [mojibake][10], 源自日语 _文字化け_)。好在这种情况在今天已经越来越少见了。 ![Example of Mojibake on the website of a French movie distributor. The website name has been changed to preserve the innocent.][11] @@ -75,19 +77,19 @@ said Äìèòðèé 也不知道是不是巧合,[Unicode][12] 项目始于 1987 年,主导者来自施乐Xerox和……苹果Apple 。 -这个项目的目标是定义一套通用字符集来允许同一段文字中_同时_出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。 +这个项目的目标是定义一套通用字符集来允许同一段文字中 _同时_ 出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。 -于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的[代码点][13]。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母,符号,标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。 +于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的 [代码点][13]code point。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母、符号、标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。 -这是一个庞大的项目:让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符覆盖了 139 种现代和历史上的语言文字。 +这是一个庞大的项目:为了让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符,覆盖了 139 种现代和历史上的语言文字。 随着如此庞大数量的可能性,一个基本的编码会需要每个字符 32 位(即 4 字节)。但对于主要使用 US-ASCII 范围内字符的文字,每个字符 4 字节意味着 4 倍多的储存需求以及 4 倍多的带宽用以传输这些文字。 ![Encoding text as UTF-32 requires 4 bytes per character][14] -所以除了 [UTF-32][15],Unicode 联盟还定义了更加节约空间的 [UTF-16][16] 和 [UTF-8][17] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位数以及 UTF-16 中的 16 位数)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是_可变长度_编码。尽管这样也有缺陷,UTF-8 是空间与时间效率之间一个不赖的妥协。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 被特别设计成任何有效的 US-ASCII 文件就是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些保留系统打交道。 +所以除了 [UTF-32][15],Unicode 联盟还定义了更加节约空间的 [UTF-16][16] 和 [UTF-8][17] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位以及 UTF-16 中的 16 位)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是 _可变长度_ 编码。尽管这样也有缺陷,但 UTF-8 是空间与时间效率之间一个不错的折中。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 经过了特别设计,任何有效的 US-ASCII 文件都是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些残留的老旧系统打交道。 -我让你来亲自比较一下同一字符串在下面两张图案中分别使用 UTF-16 和 UTF-8 编码。特别注意 UTF-8 使用了一字节来储存拉丁字母表中的字符,但它使用了两字节来存储西里尔字母表中的字符。这是 Windows-1251 西里尔编码储存同样字符所需空间的两倍。 +在下面两张图中,你可以亲自比较一下同一字符串的 UTF-16 和 UTF-8 编码。特别注意 UTF-8 使用了一字节来储存拉丁字母表中的字符,但它使用了两字节来存储西里尔字母表中的字符。这是 Windows-1251 西里尔编码储存同样字符所需空间的两倍。 ![UTF-16 is a variable length encoding requiring 2 bytes to encode most characters. Some character still requires 4 bytes though (for example][18] @@ -95,41 +97,41 @@ said Äìèòðèé ### 而这些对于打字有什么用呢? -啊……知道一些你的电脑的能力与局限以及其底层机制也无伤大雅嘛。特别是我们马上就要说到 Unicode 和十六进制。现在嘛……我们再在聊点历史。真的就一点,我保证…… +啊……知道一些你的电脑的能力与局限以及其底层机制也不是什么坏事嘛。特别是我们马上就要说到 Unicode 和十六进制。现在……让我们再聊点历史。真的就一点,我保证…… -……就说从 80 年代起,电脑键盘曾经有过 [compose 键][20](有时候也被标为 "multi" 键)就在 shift 键的下边。当按下这个键时,你会进入“组合compose”模式。一旦在这个模式下,你便可以通过输入助记符来输入你键盘上没有的字符。比如说,在组合模式下,输入 RO 便可生成字符 ®(当作是 O 里面有一个 R 就能很容易记住)。 +……就说从 80 年代起,电脑键盘曾经有过 [`Compose` 键][20](有时候也被标为 `Multi` 键)就在 `Shift` 键的下边。当按下这个键时,你会进入 “组合Compose” 模式。一旦在这个模式下,你便可以通过输入助记符来输入你键盘上没有的字符。比如说,在组合模式下,输入 RO 便可生成字符 ®(当作是 O 里面有一个 R 就能很容易记住)。 -![compose key on lk201 keyboard][21] +![Compose key on lk201 keyboard][21] -现在很难在现代键盘上看到 compose 键了。这大概是因为占据主导地位的 PC 不再用它了。但是在 Linux 上(可能还有其他系统)你可以模拟 compose 键。这项设置可以通过 GUI 开启,在大多数桌面环境下调用“键盘”控制面板:但具体的步骤取决于你的桌面环境以及版本。如果你成功启用了那项设置,不要犹豫在评论区分享你在你电脑上所采取的具体步骤。 +现在很难在现代键盘上看到 `Compose` 键了。这大概是因为占据主导地位的 PC 不再用它了。但是在 Linux 上(可能还有其他系统)你可以模拟 `Compose` 键。这项设置可以通过 GUI 开启,在大多数桌面环境下调用“键盘”控制面板:但具体的步骤取决于你的桌面环境以及版本。如果你成功启用了那项设置,不要犹豫,在评论区分享你在你电脑上所采取的具体步骤。 -(LCTT 译注:如果有读者想要尝试,建议将 compose 键设为大写锁定键,或是别的不常用的键,Ctrl 和 Alt 会被大部分 GUI 程序优先识别为功能键。还有一些我自己试验时遇到过的问题,在开启 compose 键前要确认大写锁定是关闭的,输入法要切换成英文,组合模式下输入大小写敏感。我试验的系统是 Ubuntu 22.04 LTS。) +(LCTT 译注:如果有读者想要尝试,建议将 `Compose` 键设为大写锁定键,或是别的不常用的键,`Ctrl` 和 `Alt` 会被大部分 GUI 程序优先识别为功能键。还有一些我自己试验时遇到过的问题,在开启 `Compose` 键前要确认大写锁定是关闭的,输入法要切换成英文,组合模式下输入大小写敏感。我试验的系统是 Ubuntu 22.04 LTS。) -至于我自己嘛,我现在先假设你用的就是默认的 Shift+AltGr 组合来模拟 compose 键。 +至于我自己嘛,我现在先假设你用的就是默认的 `Shift+AltGr` 组合来模拟 `Compose` 键。(LCTT 校注:`AltGr` 在欧洲键盘上是指右侧的 `Alt` 键,在国际键盘上等价于 `Ctrl+Alt` 组合键。) -那么,作为一个实际例子,尝试输入 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK指左双角引号?(LCTT译注:Guillemet,是法语和一些欧洲语言中的引号,与中文的书名号不同),你可以输入 Shift+AltGr<<(你在敲助记符时不需要一直按着 Shift+AltGr)。如果你成功输入了这个符号,你自己应该也能猜到要怎么输入 _RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK指右双角引号_ 了。 +那么,作为一个实际例子,尝试输入 “LEFT-POINTING DOUBLE ANGLE QUOTATION MARK(左双角引号)”(LCTT 译注:Guillemet,是法语和一些欧洲语言中的引号,与中文的书名号不同),你可以输入 `Shift+AltGr` `<<`(你在敲助记符时不需要一直按着 `Shift+AltGr`)。如果你成功输入了这个符号,你自己应该也能猜到要怎么输入 “RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK(右双角引号)” 了。 -来看看另一个例子,试试 Shift+AltGr--- 来生成一个 EM DASH长破折号(LLCT 译注:中文输入法的长破折号由两个 EM DASH 组成)。要做到这个,你需要按下主键盘上的的[连字符减号][22]键而非数字键盘上的那个。 +来看看另一个例子,试试 `Shift+AltGr` `---` 来生成一个 “EM DASH(长破折号)”(LCTT 译注:中文输入法的长破折号由两个 “EM DASH” 组成)。要做到这个,你需要按下主键盘上的的 [连字符减号][22] 键而非数字键盘上的那个。 -值得注意的是 "compose" 键在非 GUI 环境下也能工作。但是取决于你使用的是 X11 控制台还是只显示文字的控制台,它们所支持的 compose 按键顺序并不相同。 +值得注意的是 `Compose` 键在非 GUI 环境下也能工作。但是取决于你使用的是 X11 控制台还是只显示文字的控制台,它们所支持的组合按键顺序并不相同。 -在控制台上,你可以通过命令 `dumpkeys` 来查看支持的 compose 按键列表(LCTT 译注:可能需要 root 权限): +在控制台上,你可以通过命令 `dumpkeys` 来查看支持的组合按键列表(LCTT 译注:可能需要 root 权限): ``` dumpkeys --compose-only ``` -在 GUI 下,compose 键是在 Gtk/X11 层被实现的。想要知道 Gtk 所支持的助记符,可以查看页面:[https://help.ubuntu.com/community/GtkComposeTable][23] +在 GUI 下,组合键是在 Gtk/X11 层被实现的。想要知道 Gtk 所支持的助记符,可以查看页面:[https://help.ubuntu.com/community/GtkComposeTable][23] ### 我们可以避免对 Gtk 字符组合的依赖吗? -或许我是个纯粹主义者,但是我为 Gtk 这种对 compose 键进行硬编码的方式感到悲哀。毕竟,不是所有 GUI 应用都会使用 Gtk 库。而且我如果想要添加我自己的助记符的话就只能重新编译 Gtk 了。 +或许我是个纯粹主义者,但是我为 Gtk 这种对 Compose 键进行硬编码的方式感到悲哀。毕竟,不是所有 GUI 应用都会使用 Gtk 库。而且我如果想要添加我自己的助记符的话就只能重新编译 Gtk 了。 -幸好在 X11 层也有对字符组合的支持。在以前则是通过令人尊敬的 [X 输入法 (XIM)][24]。 +幸好在 X11 层也有对字符组合的支持。在以前则是通过令人尊敬的 [X 输入法(XIM)][24]。 这个方法在比起基于 Gtk 的字符组合能够在更加底层的地方工作,同时具备优秀的灵活性并兼容很多 X11 应用。 -比如说,假设我只是想要添加 --> 组合来输入字符 → (U+2192 RIGHTWARDS ARROW朝右箭头),我只需要新建 `~/.XCompose` 文件并写入以下代码: +比如说,假设我只是想要添加 `-->` 组合来输入字符 `→` (U+2192,RIGHTWARDS ARROW(朝右箭头)),我只需要新建 `~/.XCompose` 文件并写入以下代码: ``` cat > ~/.XCompose << EOT @@ -149,64 +151,64 @@ GTK_IM_MODULE="xim" QT_IM_MODULE="xim" xterm 新的组合排序应该可以在你刚启动的应用里被输入了。我鼓励你通过 `man 5 compose` 来进一步学习组合文件格式。 -在你的 `~/.profile` 中加入以下两行来将 XIM 设为你所有应用的默认输入法。这些改动会在下一次你登陆电脑时生效: +在你的 `~/.profile` 中加入以下两行来将 XIM 设为你所有应用的默认输入法。这些改动会在下一次你登录电脑时生效: ``` export GTK_IM_MODULE="xim" export QT_IM_MODULE="xim" ``` -这挺酷的,不是吗?这样你就可以随意的加入你想要的组合排序。而且在默认的 XIM 设置中已经有几个有意思的了。试一下输入 composeLLAP。 +这挺酷的,不是吗?这样你就可以随意的加入你想要的组合排序。而且在默认的 XIM 设置中已经有几个有意思的组合了。试一下输入组合键 `LLAP`。 -但我不得不提到两个缺陷。XIM 已经比较老了而且只适合我们这些不太需要多字节输入法的人。其次,当你用 XIM 作为输入法的时候,你就不能利用 Ctrl+Shift+u 加上代码点来输入 Unicode 字符了。什么?等一下?我还没聊过那个?让我们现在来聊一下吧: +但我不得不提到两个缺陷。XIM 已经比较老了,而且只适合我们这些不太需要多字节输入法的人。其次,当你用 XIM 作为输入法的时候,你就不能利用 `Ctrl+Shift+u` 加上代码点来输入 Unicode 字符了。什么?等一下?我还没聊过那个?让我们现在来聊一下吧: -### 如果我需要的字符没有对应的 compose 键排序该怎么办? +### 如果我需要的字符没有对应的组合键排序该怎么办? -Compose 键是一个不错的工具,它可以用来输入一些键盘上没有的字符。但默认的组合集有限,而切换 XIM 并为一个你一生仅用一次的字符来定义一个新的组合排序十分麻烦。 +组合键是一个不错的工具,它可以用来输入一些键盘上没有的字符。但默认的组合集有限,而切换 XIM 并为一个你一生仅用一次的字符来定义一个新的组合排序十分麻烦。 -但这能阻止你在同一段文字里混用日语,拉丁语,还有西里尔字符吗?显然不能,这多亏了 Unicode。比如说,名字 あゆみ 由三个字母组成: +但这能阻止你在同一段文字里混用日语、拉丁语,还有西里尔字符吗?显然不能,这多亏了 Unicode。比如说,名字 “あゆみ” 由三个字母组成: -- [HIRAGANA LETTER A平假名字母 あ (U+3042)][25] -- [HIRAGANA LETTER YU平假名字母 ゆ (U+3086)][26] -- 以及 [HIRAGANA LETTER MI平假名字母 み (U+307F)][27] +- [“HIRAGANA LETTER A(平假名字母 あ)” (U+3042)][25] +- [“HIRAGANA LETTER YU(平假名字母 ゆ)” (U+3086)][26] +- 以及 [“HIRAGANA LETTER MI(平假名字母 み)” (U+307F)][27] 我在上文提及了 Unicode 字符的正式名称,并遵循了全部用大写拼写的规范。在它们的名字后面,你可以找到它们的 Unicode 代码点,位于括号之间并写作 16 位的十六进制数字。这让你想到什么了吗? 不管怎样,一旦你知道了的一个字符的代码点,你就可以按照以下组合输入: -- Ctrl+Shift+u,然后 XXXX(你想要的字符的_十六进制_代码点)然后回车。 +- `Ctrl+Shift+u`,然后是 `XXXX`(你想要的字符的 _十六进制_ 代码点)然后回车。 -作为一种简写方式,如果你在输入代码点时不松开 Ctrl+Shift,你就不用敲回车。 +作为一种简写方式,如果你在输入代码点时不松开 `Ctrl+Shift`,你就不用敲回车。 不幸的是,这项功能的实现是在软件库层而非 X11 层,所以对其支持在不同应用间并不统一。以 LibreOffice 为例,你必须使用主键盘来输入代码点。而在基于 Gtk 的应用则接受来自数字键盘的输入。 -最后,当我跟在我的 Debian 系统上的控制台打交道时,我发现了一个类似的功能,但它需要你按下 Alt+XXXXX 而 XXXXX 是你想要的字符的代码点写作_十进制_。我很好奇这究竟是 Debian 独有的功能还是因为我使用的 locale 是 en_US.UTF-8。如果你对此有更多信息,我会很愿意在评论区读到它们的! +最后,当我和我的 Debian 系统上的控制台打交道时,我发现了一个类似的功能,但它需要你按下 `Alt+XXXXX` 而 `XXXXX` 是你想要的字符的 _十进制_ 的代码点。我很好奇这究竟是 Debian 独有的功能,还是因为我使用的语言环境(Locale) 是 `en_US.UTF-8`。如果你对此有更多信息,我会很愿意在评论区读到它们的! | GUI | 控制台 | 字符 | | :- | :- | :- | -| Ctrl+Shift+u3042Enter | Alt+12354 | あ | -| Ctrl+Shift+u3086Enter | Alt+12422 | ゆ | -| Ctrl+Shift+u307FEnter | Alt+12415 | み | +| `Ctrl+Shift+u` `3042` `Enter` | `Alt+12354` | あ | +| `Ctrl+Shift+u` `3086` `Enter` | `Alt+12422` | ゆ | +| `Ctrl+Shift+u` `307F` `Enter` | `Alt+12415` | み | ### 死键 -最后值得一提的是,想要不(必须)依赖 compose 键来输入键组合还有一个更简单的方法。 +最后值得一提的是,想要不(必须)依赖 Compose 键来输入键组合还有一个更简单的方法。 -你的键盘上的某些键是专门用来创造字符组合的。这些键叫做[死键][28]。这是因为当你按下它们一次,看起来什么都没有发生。但它们会悄悄地改变你下一次按键所产生的字符。这个行为的灵感来自于机械打字机:在使用机械打字机时,按下一个死键会印下一个字符,但不会移动字盘。于是下一次按键则会在同一个地方印下另一个字符。视觉效果就是两次按键的组合。 +你的键盘上的某些键是专门用来创造字符组合的。这些键叫做 [死键][28]Dead Key。这是因为当你按下它们一次,看起来什么都没有发生,但它们会悄悄地改变你下一次按键所产生的字符。这个行为的灵感来自于机械打字机:在使用机械打字机时,按下一个死键会印下一个字符,但不会移动字盘。于是下一次按键则会在同一个地方印下另一个字符。视觉效果就是两次按键的组合。 -我们在法语里经常用到这个。举例来说,想要输入字母 “ë” 我必须按下死键 ¨ 然后再按下 e 键。同样地,西班牙人的键盘上有着死键 ~。而在北欧语系下的键盘布局,你可以找到 ° 键。我可以念很久这份清单。 +我们在法语里经常用到这个。举例来说,想要输入字母 `ë` 我必须按下死键 `¨` 然后再按下 `e` 键。同样地,西班牙人的键盘上有着死键 `~`。而在北欧语系下的键盘布局,你可以找到 `°` 键。我可以念很久这份清单。 ![hungary dead keys][29] -显然,不是所有键盘都有所有死键。实际上,你的键盘上是找不到大部分死键的。比如说,我猜在你们当中只有小部分人——如果真的有的话——有死键 ¯ 来输入 Tōkyō 所需要的长音符号(“平变音符”)。 +显然,不是所有键盘都有所有死键。实际上,你的键盘上是找不到大部分死键的。比如说,我猜在你们当中只有小部分人——如果真的有的话——有死键 `¯` 来输入 `Tōkyō` 所需要的长音符号(“平变音符”)。 对于那些你键盘上没有的死键,你需要寻找别的解决方案。好消息是,我们已经用过那些技术了。但这一次我们要用它们来模拟死键,而非“普通”键。 -那么,我们的第一个选择是利用 Compose- 来生成长音符号(你键盘上有的连字符减号)。按下时屏幕上什么都不会出现,但当你接着按下 o 键你就能看到 “ō”。 +那么,我们的第一个选择是利用 `Compose` `-` 来生成长音符号(你键盘上有的连字符减号)。按下时屏幕上什么都不会出现,但当你接着按下 `o` 键你就能看到 `ō`。 -Gtk 在组合模式下可以生成的一系列死键都能在[这里][30]找到。 +Gtk 在组合模式下可以生成的一系列死键都能在 [这里][30] 找到。 -另一个解决方法则是利用 Unicode 字符 COMBINING MACRON组合长音符号 (U+0304),然后字母 o。我把细节都留给你。但如果你好奇的话,你会发现你打出的结果有着微妙的不同,你并没有真地打出 LATIN SMALL LETTER O WITH MACRON小写拉丁字母 O 带长音符号。如果我在上一句的结尾用了大写拼写,这应该可以提示你寻找通过 Unicode 组合字符按更少的键输入 ō 的方法……现在我将这些留给你的聪明才智去解决了。 +另一个解决方法则是利用 Unicode 字符 “COMBINING MACRON(组合长音符号)”(U+0304),然后字母 `o`。我把细节都留给你。但如果你好奇的话,你会发现你打出的结果有着微妙的不同,你并没有真地打出 “LATIN SMALL LETTER O WITH MACRON(小写拉丁字母 O 带长音符号)”。我在上一句话的结尾用了大写拼写,这就是一个提示,引导你寻找通过 Unicode 组合字符按更少的键输入 `ō` 的方法……现在我将这些留给你的聪明才智去解决了。 ### 轮到你来练习了! @@ -221,33 +223,33 @@ via: https://itsfoss.com/unicode-linux/ 作者:[Sylvain Leroux][a] 选题:[lkxed][b] 译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://www.yesik.it/ [b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2017/10//text-challenge.png +[1]: https://itsfoss.com/content/images/wordpress/2017/10//text-challenge.png [2]: https://en.wikipedia.org/wiki/ISO/IEC_8859-15 -[3]: https://itsfoss.com/wp-content/uploads/2017/10//ISO_8859-15.png +[3]: https://itsfoss.com/content/images/wordpress/2017/10//ISO_8859-15.png [4]: https://en.wikipedia.org/wiki/KOI8-R [5]: https://en.wikipedia.org/wiki/Windows-1251 -[6]: https://itsfoss.com/wp-content/uploads/2017/10//Windows-1251.png +[6]: https://itsfoss.com/content/images/wordpress/2017/10//Windows-1251.png [7]: https://en.wikipedia.org/wiki/ASCII -[8]: https://itsfoss.com/wp-content/uploads/2017/10//windows-1251-to-iso8859-15-encoding-decoding-error-example.png +[8]: https://itsfoss.com/content/images/wordpress/2017/10//windows-1251-to-iso8859-15-encoding-decoding-error-example.png [9]: https://en.wikipedia.org/wiki/Email_client [10]: https://en.wikipedia.org/wiki/Mojibake -[11]: https://itsfoss.com/wp-content/uploads/2017/10/Mojibake-french-example.png +[11]: https://itsfoss.com/content/images/wordpress/2017/10/Mojibake-french-example.png [12]: https://en.wikipedia.org/wiki/Unicode [13]: https://en.wikipedia.org/wiki/Code_point -[14]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-32-encoding-example.png +[14]: https://itsfoss.com/content/images/wordpress/2017/10//unicode-utf-32-encoding-example.png [15]: https://en.wikipedia.org/wiki/UTF-32 [16]: https://en.wikipedia.org/wiki/UTF-16 [17]: https://en.wikipedia.org/wiki/UTF-8 -[18]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-16-encoding-example.png -[19]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-8-encoding-example.png +[18]: https://itsfoss.com/content/images/wordpress/2017/10//unicode-utf-16-encoding-example.png +[19]: https://itsfoss.com/content/images/wordpress/2017/10//unicode-utf-8-encoding-example.png [20]: https://en.wikipedia.org/wiki/Compose_key -[21]: https://itsfoss.com/wp-content/uploads/2022/12/compose_key_on_lk201_keyboard.jpg +[21]: https://itsfoss.com/content/images/wordpress/2022/12/compose_key_on_lk201_keyboard.jpg [22]: https://en.wikipedia.org/wiki/Hyphen-minus [23]: https://help.ubuntu.com/community/GtkComposeTable [24]: https://en.wikipedia.org/wiki/X_Input_Method @@ -255,5 +257,6 @@ via: https://itsfoss.com/unicode-linux/ [26]: http://www.fileformat.info/info/unicode/char/3086/index.htm [27]: http://www.fileformat.info/info/unicode/char/307F/index.htm [28]: https://en.wikipedia.org/wiki/Dead_key -[29]: https://itsfoss.com/wp-content/uploads/2022/12/hungary_dead_keys.png +[29]: https://itsfoss.com/content/images/wordpress/2022/12/hungary_dead_keys.png [30]: https://help.ubuntu.com/community/GtkDeadKeyTable +[0]: https://img.linux.net.cn/data/attachment/album/202301/27/123501fod5doujjgo5jfjk.jpg \ No newline at end of file From 3f96a5fb8f565b5cf3a556ed2bc5f05e50582236 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 27 Jan 2023 12:40:13 +0800 Subject: [PATCH 2647/3123] P @yzuowei https://linux.cn/article-15483-1.html --- ...213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md (99%) diff --git a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md similarity index 99% rename from translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md rename to published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index 67f6348ecc..8b3c348927 100644 --- a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "yzuowei" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15483-1.html" 文字间的战斗与其救世主 Unicode ====== From 42417c19eb5deb705102999a51e14527eec575f1 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 14:37:13 +0800 Subject: [PATCH 2648/3123] translating --- ... What you actually need to know about open source to get started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md index be8a97423b..0618406370 100644 --- a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md +++ b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/get-started-open-source" [#]: author: "Katie Edwards https://opensource.com/users/kaedward" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From fea13a32905a9cdc0a497e732c6c8e69bd8a165e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 27 Jan 2023 16:35:33 +0800 Subject: [PATCH 2649/3123] RP @chai001125 https://linux.cn/article-15484-1.html --- ...rary for Data Analysis and Data Science.md | 109 ++++++++++++++++++ ...rary for Data Analysis and Data Science.md | 108 ----------------- 2 files changed, 109 insertions(+), 108 deletions(-) create mode 100644 published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md delete mode 100644 translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md new file mode 100644 index 0000000000..93b2331ae6 --- /dev/null +++ b/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -0,0 +1,109 @@ +[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" +[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" +[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15484-1.html" + +Pandas:用于数据分析和数据科学的最热门 Python 库 +====== + +> Pandas 是一个十分流行的 Python 第三方库。本文介绍了 Pandas 库中的一些特性和函数,并且我们鼓励读者亲手使用 Pandas 库,来解决实际的业务问题。 + +Pandas 为 Python 中数据分析提供了基础和高级的构建组件。Pandas 库是用于数据分析与数据操作的最强大和最灵活的开源**分析工具**之一,并且它还提供了用于建模和操作表格数据(以行和列组织的数据)的**数据结构**。 + +Pandas 库有两个主要的数据结构:第一个是 “系列Series”,该数据结构能够很方便地从 Python 数组或字典中**按位置或指定的索引名称**来检索数据;第二个是“数据帧DataFrames”,该数据结构将数据存储在行和列中。列可以通过列名访问,行通过索引访问。列可以有不同类型的数据,包括列表、字典、序列、数据帧、NumPy 数组等。 + +### Pandas 库可以处理各种文件格式 + +有各种各样的文件格式。用于数据分析的工具必须能够提供处理各种文件格式的方法。 + +Pandas 可以读取各种文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,详见下表。 + +| | 写入 | 读取 | +| :- | :- | :- | +| CSV 文件 | `to_csv` 函数 | `read_csv` 函数 | +| JSON 文件 | `to_json` 函数 | `read_json` 函数 | +| Parquet 文件 | `to_parquet` 函数 | `read_parquet` 函数 | +| SQL 文件 | `to_sql` 函数 | `read_sql` 函数,`read_sql_query` 函数,`read_sql_table` 函数 | +| XML 文件 | `to_xml` 函数 | `read_xml` 函数 | + +### 使用 Pandas 进行数据清理 + +在现实场景中,很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要对使数据分析更加准确,就需要对这些没有用的数据进行处理。此外,数据还会有需要 屏蔽mask 的敏感和机密信息。接下来,Pandas 提供了清理、丢弃、替换、屏蔽等方法,来处理这些坏数据。 + +#### Pandas 清洗空值: + +a. 空行可以使用 `df.dropna(inplace=True)` 方法来删除。 + +b. 空值可以使用 `df.fillna(, inplace=True)` 方法来替换。还可以指定某一个列来替换该列的空数据。 + +#### Pandas 屏蔽数据: + +c. 要屏蔽所有不满足条件 `my_list.where(my_list < 5)` 的敏感数据的值,可以使用 `my_list.mask(my_list < 5)`。 + +#### Pandas 清洗重复数据: + +d. 要删除重复数据,可以使用 `drop_duplicates()` 方法: + +``` +df.drop_duplicates(‘’, keep = False) +df.drop_duplicates(‘’, keep = ‘first’) +df.drop_duplicates(‘’, keep = ‘last’) +``` + +### 使用 Pandas 进行数据分析 + +下面的表格列出了 Pandas 中进行数据分析的各种函数,以及其语法。(请注意:`df` 代表一个 数据帧DataFrame 数据结构的实例。) + +| 语法 | 描述 | +| :- | :- | +| `df.head(x)` | `head()` 函数用于读取前面的 x 行,如果不填参数 x,默认返回 5 行 | +| `df.tail(x)` | `tail()` 函数用于读取尾部的 x 行,如果不填参数 x ,默认返回最后 5 行,空行各个字段的值返回 NaN | +| `loc(x:y)` | Loc 函数返回指定行的数据,也可以对数据进行切片 | +| `groupby('')` | 对指定列的数据进行分组 | +| `df['column'].sum()` | 计算指定列数据的总和 | +| `df['column']. mean()` | 计算指定列数据的算术平均值 | +| `df['column'].min()` | 计算指定列数据的最小值 | +| `df['column'].max()` | 计算指定列数据的最大值 | +| `df.sort_values(['column'])` | 在指定列上根据数值进行排序,默认升序 | +| `df.size` | 返回元素的个数,即为行数 * 列数 | +| `df.describe` | 返回对各列的统计汇总 | +| `pd.crosstab(df['column1'], df['column2'], margins = True)` | 创建 `column1` 和 `column2` 的交叉表 | +| `df.duplicated([column1, 'column2'])` | 根据 `column1` 和 `column2` 中的重复值,返回 `True` 或 `False` | + +### Pandas 的优点 + +* 支持多索引(层次索引),方便分析多维数据。 +* 支持数据透视表的创建,堆栈和取消堆栈操作。 +* 可以使用 Pandas 处理有限值的分类数据。 +* 支持分组和聚合运算。 +* 可以禁用排序。 +* 支持行级过滤(获取满足过滤条件的行)和列级过滤(只选择需要的列)。 +* 有助于重塑数据集(数组的维度变换)。还可以转置数组的值,并转换为列表。当你使用 Python 处理数据时,可以将 Pandas 数据帧转换为多维 NumPy 数组。 +* 支持面向标签的数据切片。 + +### Pandas 的不足 + +Pandas 的代码和语法与 Python 不同,所以人们需要额外再学习 Pandas。此外,相较于 Pandas,像三维数据这样的高维数据会在 NumPy 等其他库有更好的处理。 + +### 总结 + +Pandas 能够大幅提升数据分析的效率。它与其他库的兼容性使它在其他 Python 库中都能有效地使用。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ + +作者:[Phani Kiran][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/phani-kiran/ +[b]: https://github.com/lkxed +[0]: https://img.linux.net.cn/data/attachment/album/202301/27/163400o6afgegh0nf4nfec.jpg \ No newline at end of file diff --git a/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md deleted file mode 100644 index ef994f9ba9..0000000000 --- a/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" -[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" -[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pandas:用于数据分析和数据科学的最热门 Python 库 -====== - ->Pandas 是一个十分流行的 Python 第三方库。本文介绍了 Pandas 库中的一些特性和函数,并且我们鼓励读者亲手使用 Pandas 库,来解决实际的业务问题。 - -Pandas 为 Python 中数据分析提供了基础和高级的构建块。Pandas 库是用于数据分析与数据操作的最强大和最灵活的开源**分析工具**之一,并且它还提供了用于建模和操作表格数据(行和列中的数据)的**数据结构**。 - -Pandas 库有两个主要的数据结构:第一个是“**Series**”,该数据结构能够很方便地从 Python 数组或字典中**按位置或指定索引名称**来检索数据;第二个是“**DataFrames**”,该数据结构将数据存储在行和列中。列可以通过列名访问,行通过索引访问。列可以有不同类型的数据,包括列表、字典、Series、DataFrames、NumPy 数组等。 - -### Pandas 库可以处理各种文件格式 - -有各种各样的文件格式。用于数据分析的工具必须能够提供处理各种文件格式的方法。 - -Pandas 可以读取各种文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,详见下表。 - -| | 写入 | 读取 | -| :- | :- | :- | -| CSV 文件 | to_csv 函数 | read_csv 函数 | -| JSON 文件 | to_json 函数 | read_json 函数 | -| Parquet 文件 | to_parquet 函数 | read_parquet 函数 | -| SQL 文件 | to_sql 函数 | read_sql 函数,read_sql_query 函数,read_sql_table 函数 | -| XML 文件 | to_xml 函数 | read_xml 函数 | - -### 使用 Pandas 进行数据清理 - -在现实场景中,很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要对使数据分析更加准确,就需要对这些没有用的数据进行处理。此外,数据还会有需要 屏蔽mask 的敏感和机密信息。接下来,Pandas 提供了清理、丢弃、替换、屏蔽等方法,来处理这些坏数据。 - -#### Pandas 清洗空值: - -a. 使用 *df.dropna(inplace=True)* 方法来删除包含空字段的行。 - -b. 使用 *df.fillna(, inplace=True)* 方法来替换空字段。还可以指定某一个列来替换该列的空数据。 - -#### Pandas 屏蔽数据: - -c. 要屏蔽所有不满足条件 *my_list.where(my_list < 5)* 的敏感数据的值,可以使用 *my_list.mask(my_list < 5)*。 - -#### Pandas 清洗重复数据: - -d. 要删除重复数据,可以使用 drop_duplicates() 方法: - -``` -df.drop_duplicates(‘’, keep = False) -df.drop_duplicates(‘’, keep = ‘first’) -df.drop_duplicates(‘’, keep = ‘last’) -``` - -### 使用 Pandas 进行数据分析 - -下面的表格列出了 Pandas 中进行数据分析的各种函数,以及其语法。(请注意:df 代表一个 DataFrame 数据结构的实例。) - -| 语法 | 描述 | -| :- | :- | -| df.head(x) | Head() 函数用于读取前面的 x 行,如果不填参数 x,默认返回 5 行 | -| df.tail(x) | tail() 函数用于读取尾部的 x 行,如果不填参数 x ,默认返回最后 5 行,空行各个字段的值返回 NaN | -| loc(x:y) | Loc 函数返回指定行的数据,也可以对数据进行切片 | -| groupby(‘’) | 对指定列的数据进行分组 | -| df[‘column’].sum() | 计算指定列数据的总和 | -| df[‘column’]. mean() | 计算指定列数据的算术平均值 | -| df[‘column’].min() | 计算指定列数据的最小值 | -| df[‘column’].max() | 计算指定列数据的最大值 | -| df.sort_values([‘column’]) | 在指定轴上根据数值进行排序,默认升序 | -| df.size | 返回元素的个数,即为 Rows(行数)* columns(列数) | -| df.describe | 返回对各列的统计汇总 | -| pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | 创建 `column1` 和 `column2` 的交叉表 | -| df.duplicated([column1, ‘column2’]) | 根据 `column1` 和 `column2` 中的重复值,返回 True 或 False | - -### Pandas 的优点 - -* 支持多索引(层次索引),方便分析多维数据。 -* 支持数据透视表的创建,堆栈和取消堆栈操作。 -* 可以使用 Pandas 处理有限值的分类数据。 -* 支持分组和聚合运算。 -* 可以禁用排序。 -* 支持行级过滤(获取满足过滤条件的行)和列级过滤(只选择需要的列)。 -* 有助于重塑数据集(数组的维度变换)。还可以转置数组的值,并转换为列表。当你使用 Python 处理数据时,可以将 Pandas DataFrame 转换为多维 NumPy 数组。 -* 支持面向标签的数据切片。 - -### Pandas 的不足 - -Pandas 的代码和语法与 Python 不同,所以人们需要额外再学习 Pandas。此外,相较于 Pandas,像三维数据这样的高维数据会在 NumPy 等其他库有更好的处理。 - -### 总结 - -Pandas 能够大幅提升数据分析的效率。它与其他库的兼容性使它在其他 Python 库中都能有效地使用。 - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ - -作者:[Phani Kiran][a] -选题:[lkxed][b] -译者:[chai001125](https://github.com/chai001125) -校对:[校对者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 From 2fd2c0ba7a5693e229d9b2f992294d89ae384f9c Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 17:53:18 +0800 Subject: [PATCH 2650/3123] translated --- ...y need to know about open source to get started.md | 97 ------------------ ...y need to know about open source to get started.md | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 97 deletions(-) delete mode 100644 sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md create mode 100644 translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md diff --git a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md deleted file mode 100644 index 0618406370..0000000000 --- a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: subject: "What you actually need to know about open source to get started" -[#]: via: "https://opensource.com/article/22/11/get-started-open-source" -[#]: author: "Katie Edwards https://opensource.com/users/kaedward" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What you actually need to know about open source to get started -====== - -A beginner's guide to open source explained in plain terms. - -So you want (or need) to figure out what ["open source"][1] really means. I'll cover the basics of open source, whether you're interested in contributing to a project or want to be in the loop at a new job where the term keeps getting thrown around. - -Full disclosure: I am a person with little technical experience, working in the content-design fringes of a very technical open source environment. Given my background in marketing and communication, I felt like a fish out of water when I made this career switch. [Git][2], data science, the ins and outs of software… It was, and still is a year later, a lot to comprehend. - -But that's why I'm writing this piece. I want to help make open source a little less intimidating. After all, at the center of open source is a supportive learning community—built for everyone, technically experienced or not. - -I'll start with the absolute basics. - -### What is open source? - -For the record, the industry definition of open source is available at the [Open Source Initiative][3] site. - -However, the popular perception of "open source" software is usually that it doesn't cost anything, the source code is accessible, anyone can contribute to it, and you can redistribute it or do whatever else you want with it. - -Some of that is true, and some of it plays into a few common misconceptions, one of which is cost. - -#### Open source costs $0 - -Is it true? Usually, but not always. By nature of its code being publicly available, open source software can be obtained at no cost. However, for-profit companies do exist around open source projects. But if the software is available at no cost, how do open source companies even exist? How do they make money? - -The concept of having a "free product" is counter-intuitive. But that's just the thing: A company doesn't have to sell software to profit from the management of products, storage of data, and customer support. - -Many companies follow a subscription model, offering customer support in case of bugs or general confusion. Data storage isn't free, so that is another area where these companies can bring in income. In this regard, the "product" isn't the software; it's the benefit of a subscription. - -- **The source code is accessible**: Is it true? Yes, always. This accessibility is a prerequisite for adopting the term "open source." The source code must be available to view, use, modify, and redistribute. -- **You can do whatever you want with the code**: Is it true? It depends. Subject to licensing terms, there are some limitations on how you can use code, but you can generally use it however you'd like. Whether that means tweaking a project to fit a specific need or using it as the basis for something else, open source software is yours, and everyone else's, to modify. -- **Anyone can contribute to open source projects**: Is it true? Yes - within limits. Anyone with the [right skill set][4] can contribute to open source. However, that doesn't mean all contributions are always accepted and implemented. - -For example, say you're interested in a project where the end goal is a catalog of all the types of birds in the world. You're really into dinosaurs, specifically dinosaurs that may have eventually evolved into modern-day birds. So, you contribute entries for all of the most bird-like dinosaurs. The project owners could see this and think, "Sweet, those are some great prehistoric birds." However, they're also allowed to say, "Hmm, those dinosaurs are like birds, but they're technically not birds yet. They probably don't belong on Birdpedia." - -Luckily, projects don't usually work under lawless conditions. Open source projects typically come with contribution guidelines and codes of conduct, so you don't have to worry about your additions flying off the rails. - -### Why open source? - -So, after all the contributions are made (if it's ever actually done), why would people give away their software for no cost? If so many people put their time and effort into creating something, why wouldn't they band together and slap a price tag on it? - -This question comes with a lot of answers. Here are a few: - -- Starting a business is hard, especially if the project you're working on doesn't form the strong foundation for a money machine. It can be easier to rally a bunch of like-minded people without commitments or the expectation of paychecks. -- Most open source communities consist of people interested in improving software or bringing it into existence but don't have the time or interest to commit to working full-time on a project. Sometimes open source represents passion projects, geek groups, and crowd-sourced solutions to annoying problems. -- The groups that form around open source projects of all sizes foster supportive communities where contributors and onlookers alike can practice their skills, improve software they regularly use, teach and learn from each other, and feel empowered to make their voices heard. Many open source communities are essentially hyper-focused online hobby clubs. - -### Where do I get involved? - -Now you may ask yourself, "But what do I do with this information? Can I contribute to open source projects? What if I'm not good enough yet?" - -Never fear—even [beginners][5] are welcome to contribute to open source projects. It's a great way to hone your skills while working with a community towards a larger goal. And, as I talked about earlier, the worst that can happen is your changes aren't merged into Birdpedia (and that's because those product owners just can't see your vision of a Birdpedia where birds and their ancestors gleefully coexist in an online world of bird-related knowledge). - -Do you have to know how to code to contribute to projects? Contrary to popular belief, [no, you don't][6]. Projects "take a village" to thrive, which means they need input from people of all different backgrounds. Visual designers, writers, marketers, reviewers, translators, subject matter enthusiasts, and even just users of the resulting product are all valuable contributors. Not only do they help build out and improve products, but they identify bugs, suggest improvements, spread the word about the project, and generally strengthen the community. - -In short, no matter what your background or experience, if you're interested in open source or a specific project, you're nearly guaranteed to be welcomed with open arms. - -### Get started with open source now - -Still not sure where to begin? Here are some ideas and resources to get you started: - -- [Up For Grabs][7] is a "list of open source projects which have curated tasks specifically for new contributors." This is a great place to find an easy first PR opportunity, which is a great way to find out what kind of contributions you'll enjoy. -- Check out this list of [beginner-friendly projects][8] on GitHub. -- If you're still not feeling inspired, consider [contributing][9] to (or flying with) [PatternFly][10], Red Hat's open design system. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/get-started-open-source - -作者:[Katie Edwards][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/kaedward -[b]: https://github.com/lkxed -[1]: https://opensource.com/resources/what-open-source -[2]: https://opensource.com/resources/what-is-git -[3]: https://opensource.org/osd -[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code -[5]: https://opensource.com/article/18/4/get-started-open-source-project -[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source -[7]: https://up-for-grabs.net/?ref=hackernoon.com#/ -[8]: https://github.com/MunGell/awesome-for-beginners -[9]: https://github.com/patternfly -[10]: https://www.patternfly.org/v4/get-started/design diff --git a/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md new file mode 100644 index 0000000000..08b3af812a --- /dev/null +++ b/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -0,0 +1,98 @@ +[#]: subject: "What you actually need to know about open source to get started" +[#]: via: "https://opensource.com/article/22/11/get-started-open-source" +[#]: author: "Katie Edwards https://opensource.com/users/kaedward" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +关于开源,你需要知道些什么 +====== + +一份用简单直白的语句来解释开源的新手指南。 + +所以你想要(或需要)知道[开源][1]的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词。 + +我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2],数据科学,软件的各种输入输出……直到一年后的今天,我依然感到难以消化。 + +但这正是为什么我要写这篇文章。我想要让开源变得不那么吓人。毕竟,开源的背后是支持型学习社区——这个社区对所有人开放,无论你是否有技术经验。 + +我会从基本中的基本开始。 + +### 什么是开源? + +在此声明,开源的行业内定义可以在[开放源代码促进会(Open Source Initiative)][3]的网站找到。 + +然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者做任何你想用它做的事。 + +这里面有些是真的,而有些则属于常见的误解,其中之一就是关于花费。 + +#### 开源只要 0 元 + +这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目的营利公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利? + +拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以推销它的产品管理,数据储存,以及客户支持。 + +很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户调试软件并为客户解答疑惑。数据储存也并非免费,这片领域也能为公司带来收入。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。 + +- **开源代码是公开的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改并重新发布。 +- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和所有人对其修改。 +- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有[合适技能][4]的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。 + +比如说,你对一个目标是对地球上所有的鸟类进行分类的项目感兴趣。你恰好很喜欢恐龙,特别是那些最终进化成如今的鸟类的恐龙。于是,你为所有最像鸟类的恐龙提交了条目。项目所有者在看到这些后可能会想:“不错,这都是些很棒的史前鸟类。”但他们也可能会认为:“嗯……这些恐龙看起来像鸟,但他们还不是鸟,因此他们不属于鸟类百科。” + +幸运的是,项目里的工作通常有法可依。开源项目通常有着贡献指南和行为准则,所以你不用担心你会加入什么使得项目脱轨的东西。 + +### 为什么选择开源呢? + +那么,在众多贡献之后(如果能贡献完的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价? + +这个问题有很多回答。我在这里给出了一些: + +- 创业是艰难的,如果你开发的项目展现不出赚钱的潜力则尤其如此。召集一群志同道合的人,没有承诺也没有对薪水的期望,相对而言要简单得多。 +- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目,极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。 +- 围绕各种规模的开源项目形成的团体促进了支持型社区的成形,在这里贡献者与旁观者都可以练习他们的技能,改进他们常用的软件,互教互学,并为发声被听到而感到振奋。很多开源社区本质上就是高度集中的线上爱好者俱乐部。 + +### 我该如何参与呢? + +现在你可能会问你自己:“我知道了这些信息又可以做些什么呢?我能贡献开源项目吗?如果我不够优秀的话该怎么办?” + +不要害怕——即便是[新手][5]也欢迎贡献开源项目。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被鸟类百科所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里一起幸福地生活)。 + +你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目需要“民生”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。 + +简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎被保证了一个会张开双臂欢迎你的社区。 + +### 现在就加入开源吧 + +还是不确定应该从哪开始?这里有些能帮助你的想法和资源: + + +- [Up For Grabs][7] 是一份“专门为新贡献者策划任务的开源项目清单。”这里很适合新贡献者们来寻找简单的初次 PR 机会,这次机会也能让你探寻你更喜欢哪种贡献。 +- 来看看 GitHub 上的这份[新手友好项目][8]列表吧。 +- 如果你还是缺乏灵感,考虑一下[贡献][9]红帽(Red Hat)的开放设计系统 [PatternFly][10](或者一起飞)。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/get-started-open-source + +作者:[Katie Edwards][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/kaedward +[b]: https://github.com/lkxed +[1]: https://opensource.com/resources/what-open-source +[2]: https://opensource.com/resources/what-is-git +[3]: https://opensource.org/osd +[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code +[5]: https://opensource.com/article/18/4/get-started-open-source-project +[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source +[7]: https://up-for-grabs.net/?ref=hackernoon.com#/ +[8]: https://github.com/MunGell/awesome-for-beginners +[9]: https://github.com/patternfly +[10]: https://www.patternfly.org/v4/get-started/design From 03d4c0771318f072634ffebc25b5e554d005ae03 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Fri, 27 Jan 2023 21:04:31 +0800 Subject: [PATCH 2651/3123] Translating --- sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md index 6ede79a4bf..cfb132275f 100644 --- a/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md +++ b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/rexx-scripting" [#]: author: "Howard Fosdick https://opensource.com/users/howtech" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 433c20c67252bbe00fc98b04a57a0b25f8c2e33e Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 28 Jan 2023 08:50:01 +0800 Subject: [PATCH 2652/3123] translated --- ...114.0 ⭐️ A 4-minute guide to Java loops.md | 151 ------------------ ...114.0 ⭐️ A 4-minute guide to Java loops.md | 150 +++++++++++++++++ 2 files changed, 150 insertions(+), 151 deletions(-) delete mode 100644 sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md create mode 100644 translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md diff --git a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md deleted file mode 100644 index bf5af72851..0000000000 --- a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: subject: "A 4-minute guide to Java loops" -[#]: via: "https://opensource.com/article/23/1/java-loops" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A 4-minute guide to Java loops -====== - -A while loop performs a set of tasks for as long as some predefined condition is true. This is considered a control structure that directs the flow of a program. It's a way for you to tell your code what to do by defining a condition that it can test, and take action based on what it finds. The two kinds of while loops in Java are while and do while. - -### Java while loop - -A while loop is meant to iterate over data until some condition is satisfied. To create a while loop, you provide a condition that can be tested, followed by the code you want to run. Java has several built-in test functions, the simplest of which are mathematical operators (`<`, `>`, `==`, and so on): - -``` -package com.opensource.example; - -public class Example { - public static void main(String[] args) { - - int count = 0; - while (count < 5) { - System.out.printf("%d ", count); - count++; - } - } -} -``` - -In this simple example, the condition is that the variable `count` is less than 5. Because `count` is instantiated at 0, and then incremented by 1 in the code within the while loop, the program iterates a total of 5 times: - -``` -$ java ./while.java -0 1 2 3 4 -``` - -Before it can iterate a sixth time, the condition is no longer true, so the loop ends. - -The conditional statement for a while loop is vital. Getting it wrong could mean that your loop never executes. For instance, suppose you had set `count == 5` as the condition: - -``` -while (count == 5) { - System.out.printf("%d ", count); - count++; -``` - -When you run the code, it builds and runs successfully, but nothing happens: - -``` -$ java ./while.java -$ -``` - -The loop has been skipped because `count` was set to 0, and it's still 0 at the moment the while loop is first encountered. The loop never has a reason to start and `count` is never incremented. - -The reverse of this is when a condition starts as true and can never be false, this results in an infinite loop. - -### Java do while loop - -Similar to the while loop, a do while loop tests for the conditional at the end, not the beginning, of each iteration. With this, the code in your loop runs at least once because there's no gateway to entry, only a gateway to exit: - -``` -package com.opensource.example; - -public class Example { - public static void main(String[] args) { - - int count = 9; - do { - System.out.printf("%d ", count); - count++; - } while(count == 5); - } -} -``` - -In this sample code, `count` is set to 9. The condition for the loop to repeat is that `count` is equal to 5. But 9 isn't equal to 5. That check isn't performed until the end of the first iteration, though: - -``` -$ java ./do.java -9 -``` - -### Java infinite loops - -An infinite loop, as its name suggests, never ends. Sometimes they're created by mistake, but an infinite loop does have a valid use case. Sometimes you want a process to continue indefinitely (that's functionally infinite because you can't guarantee when you need it to stop), and so you might set your condition to something impossible to meet. - -Suppose you've written an application that counts the number of zombies remaining in your neighborhood during a zombie apocalypse. To simulate uncertainty over how many loops are required to get to 0 zombies, my demo code retrieves a timestamp from the operating system and sets the value of the counter (`c`) to some number derived from that timestamp. Because this is a simple example and you don't really want to get trapped in an infinite loop, this code counts down to zero and uses the `break` function to force the loop to end: - -``` -package com.opensource.example; - -public class Example { - public static void main(String[] args) { - - long myTime = System.currentTimeMillis(); - - int c; - - if ( myTime%2 == 0 ) { - c = 128; - } else { - c = 1024; - } - - while(true) { - System.out.printf("%d Zombies\n", c); - - // break for convenience - if ( c <= 0 ) { break; } - c--; - } - } -} -``` - -You may have to run it a few times to trigger a different total number of zombies, but sometimes your program iterates 128 times and other times 1,024 times: - -``` -$ java ./zcount.java -1024 Zombies -1023 Zombies -[...] -0 Zombies -``` - -Can you tell why the loops end at 0 and not at -1? - -### Java loops - -Loops give you control over the flow of your program's execution. Iteration is common in programming, and whether you use a while loop, a do while loop, or an infinite loop, understanding how loops work is vital. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/java-loops - -作者:[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 - - diff --git a/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md new file mode 100644 index 0000000000..4e6780fd4e --- /dev/null +++ b/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -0,0 +1,150 @@ +[#]: subject: "A 4-minute guide to Java loops" +[#]: via: "https://opensource.com/article/23/1/java-loops" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 分钟的 Java 循环指南 +====== + +一个 while 循环执行一组任务,只要某些预定的条件为真。这被认为是一个控制结构,可以指导程序的流程。它是一种方法,你可以通过定义一个条件来告诉你的代码要做什么,它可以测试,并根据它发现的情况采取行动。Java 中的两种 while 循环是 while 和 do while。 + +### Java while 循环 + +while 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 while 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(`<`, `>`, `==`, 等等): + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + int count = 0; + while (count < 5) { + System.out.printf("%d ", count); + count++; + } + } +} +``` + +在这个简单的例子中,条件是变量 `count` 小于5。因为 `count` 被实例化为 0,然后在 while 循环的代码中增加 1,所以程序总共迭代了 5 次: + +``` +$ java ./while.java +0 1 2 3 4 +``` + +在它进行第六次迭代之前,条件不再是真的,所以循环结束。 + +while 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 `count == 5` 作为条件: + +``` +while (count == 5) { + System.out.printf("%d ", count); + count++; +``` + +当你运行这段代码时,它的构建和运行都很成功,但什么也没有发生: + +``` +$ java ./while.java +$ +``` + +循环被跳过了,因为 `count` 被设置为0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,`count` 也从未被递增。 + +与此相反的是,当一个条件开始为真,并且永远不会为假时,这将导致一个无限循环。 + +### Java do while 循环 + +与 while 循环相似,do while 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环, 循环中的代码至少运行一次, 因为没有进入的入口, 只有退出的出口: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + int count = 9; + do { + System.out.printf("%d ", count); + count++; + } while(count == 5); + } +} +``` + +在这个示例代码中,`count` 被设置为 9。循环重复的条件是 `count` 等于5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行: + +``` +$ java ./do.java +9 +``` + +### Java 无限循环 + +无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(这在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。 + +假设你写了一个应用程序,在僵尸天启期间计算留在你附近的僵尸的数量。为了模拟需要多少个循环才能达到 0 个僵尸的不确定性,我的演示代码从操作系统中检索了一个时间戳,并将计数器(`c`)的值设置为从该时间戳得出的某个数字。因为这是一个简单的例子,你不会真的想陷入一个无限循环,这段代码倒数到 0,并使用 `break` 函数来强制结束循环: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + + long myTime = System.currentTimeMillis(); + + int c; + + if ( myTime%2 == 0 ) { + c = 128; + } else { + c = 1024; + } + + while(true) { + System.out.printf("%d Zombies\n", c); + + // break for convenience + if ( c <= 0 ) { break; } + c--; + } + } +} +``` + +你可能要运行几次才能触发不同的僵尸总数,但有时你的程序会迭代 128 次,有时会迭代 1024 次: + +``` +$ java ./zcount.java +1024 Zombies +1023 Zombies +[...] +0 Zombies +``` + +你能说出为什么循环的终点是 0 而不是 -1 吗? + +### Java 循环 + +循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 while 循环、do while 循环还是无限循环,了解循环的工作原理都是至关重要的。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-loops + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed + From d563a36199da8e039786152f2d7c9e330ab7f80e Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 28 Jan 2023 08:54:53 +0800 Subject: [PATCH 2653/3123] translating --- ...⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md index d12b5b3c11..faa89b2497 100644 --- a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md +++ b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-spacefm" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2358c948c2654b0159d9e9fc218edc4c416be790 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 28 Jan 2023 09:34:45 +0800 Subject: [PATCH 2654/3123] RP @onionstalgia https://linux.cn/article-15486-1.html --- ... 4 key differences between Twitter and Mastodon.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) rename {translated/talk => published}/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md (65%) diff --git a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md similarity index 65% rename from translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md rename to published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index 6b354b93fb..8bac69128c 100644 --- a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -3,50 +3,52 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "onionstalgia" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15486-1.html" Twitter 和 Mastodon 的四个关键区别 ====== -Mastodon并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它其他的一些优势。 +![][0] -社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和形塑我阅读内容更多是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 +> Mastodon 并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它的一些其他优势。 + +社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,以及最近它的所有权发生了变化,造成我阅读的内容更多是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 ### Mastodon 与 Twitter 对比 -作为一个墨守成规的人,改变对我来说并不容易,尽管 Twitter 变得越来越让人厌倦,我还一直在使用。可是到了 2022 年的春天,Twitter 的出售危机让我重新考虑使用 Fosstodon了。 +作为一个墨守成规的人,改变对我来说并不容易,尽管 Twitter 变得越来越让人厌倦,我还一直在使用。可是到了 2022 年的春天,Twitter 的出售危机让我重新考虑使用 Fosstodon 了。 -### 1. 收藏而不是点赞 +### 1、收藏而不是点赞 -Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是「点赞」一个帖子,而是通过点击帖子下方的星标来「收藏」一个帖子。 +Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是“点赞”一个帖子,而是通过点击帖子下方的星标来“收藏”一个帖子。 ![Favorite button][4] -### 2. 分享帖子 +### 2、分享帖子 -在 Twitter 上,重新分享是「转推」(retweet),但在Mastodon,它是「转嘟」(boost)。你可以点击帖子下方的双箭头图标来转嘟。 +在 Twitter 上,重新分享是“转推retweet”,但在 Mastodon,它是“转嘟boost”。你可以点击帖子下方的双箭头图标来转嘟。 ![Boost button][5] -### 3. Mastodon 实例 +### 3、Mastodon 实例 -任何人都可以运行一个 Mastodon 实例,这让不同的实例上发展出了独特的社区(类似在 Twitter 上围绕特定标签形成的社区,不过 Mastodon 也有标签),有些实例有一套独特的规则。举个例子,和我以前的社交网络不同,Fosstodon 上采取了内容审核制度。最初这让我觉得有些严格,我发了一个与自由与开放源码软件无关的帖子,然后帖子就被删除了。我被告知的删除原因是,我没有给帖子打上 "内容警告"。这惹怒了我,于是我尝试寻找别的实例,发现了几个更符合我胃口的。其中一个是 [Mastodon.social][6],另一个是 [Scholar.social][7],前者是一个泛用的实例,没有预设的发帖主题,后者则是一个学术专用的实例。当然,他们也都制定有严格的行为规范。 +任何人都可以运行一个 Mastodon 实例,这让不同的实例上发展出了独特的社区(类似在 Twitter 上围绕特定标签形成的社区,不过 Mastodon 也有标签),有些实例有一套独特的规则。举个例子,和我以前的社交网络不同,Fosstodon 上采取了内容审核制度。最初这让我觉得有些严格,我发了一个与自由与开放源码软件无关的帖子,然后帖子就被删除了。我被告知的删除原因是,我没有给帖子打上 “内容警告”。这惹怒了我,于是我尝试寻找别的实例,发现了几个更符合我胃口的。其中一个是 [Mastodon.social][6],另一个是 [Scholar.social][7],前者是一个泛用的实例,没有预设的发帖主题,后者则是一个学术专用的实例。当然,他们也都制定有严格的行为规范。 每个实例都有规则,虽然在表述上略有不同,但都清楚地说明了可以接受和不可接受的行为。Fosstodon 公布了它的 [行为规范][8],确立了站点的规则和预期。 -### 4. 开源社交网络 +### 4、开源社交网络 -如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持与使用 [ActivityPub][10] 协议的世界各地的服务器间通信。 +如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git 仓库][9] 获得。Mastodon 使用 [ActivityPub][10] 协议与世界各地的服务器通信。 -Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 「联邦宇宙」(Fediverse)。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行Mastodon 或者其他 ActivityPub 协议网站。 +Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 “联邦宇宙Fediverse”。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行 Mastodon 或者其他 ActivityPub 协议网站。 从用户的角度来看,这一开始时其实并不重要。你可以在任何 Mastodon 实例上注册,然后连接到其余所有的实例。 不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户,或者屏蔽整个实例。 -过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能乐于看到关于自由和开源软件的帖子。当我有一些内容不适合在 Fosstodon 上分享时,我会分享到 Scholar.social 或者 Mastodon.social 上。 +过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而 Fosstodon 上的其他用户也都能乐于看到关于自由和开源软件的帖子。当我有一些内容不适合在 Fosstodon 上分享时,我会分享到 Scholar.social 或者 Mastodon.social 上。 不是所有的实例都有关注的主题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 @@ -63,7 +65,7 @@ via: https://opensource.com/article/22/11/twitter-vs-mastodon 作者:[Don Watkins][a] 选题:[lkxed][b] 译者:[onionstalgia](https://github.com/onionstalgia) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -79,3 +81,4 @@ via: https://opensource.com/article/22/11/twitter-vs-mastodon [8]: https://hub.fosstodon.org/coc/ [9]: https://github.com/mastodon/mastodon [10]: https://en.wikipedia.org/wiki/ActivityPub +[0]: https://img.linux.net.cn/data/attachment/album/202301/28/093152q9c5yeo9dyebp2mj.jpg \ No newline at end of file From 47911055a04ef0125effb8dc693a14d9cfcca054 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 28 Jan 2023 11:41:19 +0800 Subject: [PATCH 2655/3123] ATRP @wxy https://linux.cn/article-15487-1.html --- ...1111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 194 ++++++++++++++++++ ...1111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 191 ----------------- 2 files changed, 194 insertions(+), 191 deletions(-) create mode 100644 published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md delete mode 100644 sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md diff --git a/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md new file mode 100644 index 0000000000..16f7e92bcb --- /dev/null +++ b/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md @@ -0,0 +1,194 @@ +[#]: subject: "Drop swap for zram on Linux" +[#]: via: "https://opensource.com/article/22/11/zram-swap-linux" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15487-1.html" + +在 Linux 上用 zram 替代传统交换空间 +====== + +![][0] + +> zram 是一个用于创建内存压缩缓存的工具,特别是可以用作交换空间。 + +我在我的电脑上花了很多时间(我是说工作),我发现了很多有趣的东西。其中最近引起我注意的是 `zram0` 设备。我是在几个月前写一篇文章时第一次注意到它,它显示在 `lsblk` 命令的输出中: + +``` +# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +sda 8:0 0 931.5G 0 disk +├─sda1 8:1 0 600M 0 part +[...] +zram0 252:0 0 8G 0 disk [SWAP] +``` + +它被识别为交换空间,这就是首先引起我的好奇心的原因,所以我做了一些研究。zram 最初被称为 “压缩缓存compcache”,即 “压缩的高速缓存”。事实证明,zram 是一个用于创建内存内压缩缓存的工具,特别是作为交换空间使用。 + +但为什么呢? + +当我开始研究 zram 时,我只发现了几篇关于将 zram 用于交换空间的基础文章。起初,这对我来说似乎有点违反直觉。毕竟,如果你的内存快用完了,你把页面交换到内存中的虚拟驱动器中,有什么好处呢? + +然后我找到了 Fedora 项目的维基页面,它提议使用 [zram 交换空间][1]swap-on-zram。该建议说:“交换是有用的,除了它的速度很慢。zram 是一个使用了压缩的内存驱动器。在启动时创建一个 zram 交换空间,并且不再使用默认的交换分区。” + +该页面的其余部分是关于它的细节、好处、副作用和反馈。 + +### Linux 上用于交换空间的 zram + +使用 zram 作为交换空间,与常规的基于分区或基于文件的交换空间做的事情相同。当内存压力过大时,一些最近使用最少的数据会被移到交换空间。平均来说,它会被压缩到其原始大小的 50% 左右,并被放置在内存的 zram 空间中。这比将这些内存页存储在硬盘上要快得多,并可以释放出它所使用的内存用于其他用途。 + +### 节省交换空间 + +我试图找到关于配置多少交换空间或 zram 交换空间的总结建议。这使我重新回顾了交换空间的设置,以及我之前的文章《[现代 Linux 系统的正确交换空间是多少?][2]》。就我所知,从 RHEL 和 Fedora 的最新文档来看,推荐的交换空间数量并没有改变。不过,该文档忽略了 zram 的使用。 + +然而,在不使用 zram 的旧版 Linux 或 zram 被禁用的情况下,之前文章中的表格仍然为交换空间的分配提供了一个好的起点。 + +我找到的关于 zram 功能的文档在 zram 如何根据内存大小分配空间,以及分配给 zram 交换空间的数量方面是不一致的。 + +由于缺乏权威性的文档,我进行了一些实验来凭经验确定用于分配 zram 交换空间的算法。我为此使用了我自己的物理和虚拟系统。结果很有趣,与我迄今为止发现的任何文档都不一致。 + +在所有足够大的系统上,zram 的默认大小是 8GB,但在内存较小的主机上通常会大大减少。在我用于测试的一台虚拟机(VM)上,可以访问 4GB 的内存,zram 的虚拟交换空间被分配为 3.8GB。我的一台旧戴尔电脑拥有 8GB 的内存,zram 被设置为 7.6GB。当内存减少到 2GB 时,zram 就减少到 1.9GB。 + +我拥有的所有内存超过 8GB 的物理和虚拟主机都显示正好是 8GB 的 zram。这包括我拥有 64GB 内存的主工作站和其他拥有 16GB 或 32GB 内存的主机。 + +基于这几个数据点,我可以得出这样的结论:目前的默认设置是最多 8GB 的 zram,而在 8GB 或以下的主机上,zram 占内存的 95%。 + +我读过一些文章,其中提到了 zram 交换空间的其他大小,甚至高达 100% 的内存,但这些似乎都是理论上的,而不是现实。 + +你的发行版可能不同,但这里是 Fedora 和类似发行版的实际 zram 交换空间的分配情况: + +- 内存 ⇐ 8 GB:0.95 × 内存 +- 内存 > 8 GB:8 GB + +请注意,zram 交换空间大小的算法并没有基于对任何给定的现实世界的系统或应用程序的 “最佳” 交换大小的建议。这种 zram 交换空间的分配是一种相当概率性的方法,它应该在广泛的 Linux 主机上运行良好。然而,最大的 zram 交换空间大小被配置为 8GB,而且我一直推荐 8GB 作为传统交换空间的最大容量,我想我可以说它反映了 zram 交换空间的最佳大小。 + +### 管理 zram 交换空间 + +zram 的默认值保存在 `/usr/lib/systemd/zram-generator.conf` 配置文件中。以下是我的一个测试虚拟机,分配了 5097GB 的内存。 + +``` +# cat /usr/lib/systemd/zram-generator.conf +# This config file enables a /dev/zram0 device with the default settings: +# - size - same as available RAM or 8GB, whichever is less +# - compression - most likely lzo-rle +# +# To disable, uninstall zram-generator-defaults or create empty +# /etc/systemd/zram-generator.conf file. +[zram0]zram-size= min(ram, 8192) +``` + +你可以在 `zram-generator.conf` 配置文件的最后一行改变默认的 zram 交换空间大小。但我建议不要这样做,除非你能明确说明这样做的原因,并在你做任何改变后测试你的结果。像 Linux 中的许多其他配置默认值一样,zram 的默认值已经被很好地测试过了,适合大多数使用情况。 + +### 监控 zram + +可以使用 `zramctl` 工具来查看 zram 的当前状态。 + +``` +# zramctl +NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT +/dev/zram0 lzo-rle       4.8G   4K   80B   12K       4[SWAP] +``` + +传统的 `swapon` 命令也可以用来查看交换,包括作为交换使用的 zram: + +``` +# swapon --show +NAME       TYPE      SIZE USED PRIO +/dev/zram0 partition 4.8G   0B  100 +``` + +需要注意的是,`zramctl` 在不包含数据时不报告 zram,所以结果会包含空输出。而像 `lsblk`、`swapon`、 `top`、`free`、`htop` 等工具,即使不包含数据,也会显示 zram。 + +### 停用 zram + +`swapoff -a` 命令会关闭 zram 交换空间以及用作交换的传统 HDD 或 SSD 存储。`swapon -a` 命令在 zram 为空时不显示它,可以使用 `zramctl /dev/zram0` 代替。 + +``` +# swapon --show# lsblk +NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS +sda             8:00  120G  0 disk +├─sda1          8:10    1G  0 part /boot/efi +├─sda2          8:20    1G  0 part /boot +└─sda3          8:30  118G  0 part +  ├─vg01-root 253:00   10G  0 lvm  / +  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] +  ├─vg01-usr  253:10   30G  0 lvm  /usr +  ├─vg01-home 253:20   10G  0 lvm  /home +  ├─vg01-var  253:30   30G  0 lvm  /var +  └─vg01-tmp  253:40   10G  0 lvm  /tmp +sr0            11:01 1024M  0 rom +zram0         252:00    0B  0 disk +# zramctl## zramctl /dev/zram0 +NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT +/dev/zram0 lzo-rle         0B   0B    0B    0B       4 +``` + +注意,`/dev/zram0` 在这些命令中并没有显示为交换空间,直到它被用于该目的。这给我造成了一些困惑,直到我的实验表明这是事实。 + +### 创建 zram 交换空间 + +zram 本身已经存在了大约 20 年,但只是在过去的一两年里才在一些发行版上作为交换空间使用。你的一些或所有主机上当前的 Linux 环境可能没有用 zram 创建交换空间。如果是这种情况,它可以很容易地被补救。 + +对于 Fedora 32,它是默认使用 zram 交换空间之前的最后一个版本,它只需要三个简单的命令。 + +首先,验证是否存在 `zram-swap.service` 文件,它作为 `zram` RPM 包的一部分安装: + +``` +# systemctl status zram-swap +● zram-swap.service - Enable compressed swap in memory using zram +     Loaded: loaded (/usr/lib/systemd/system/zram-swap.service; disabled; vendor preset: disabled) +     Active: inactive (dead) +``` + +接下来,安装 `zram-generator-defaults` 和 `zram-generator` 软件包: + +``` +# dnf install zram-generator-defaults zram-generator +``` + +启用并启动 `zram-swap` 服务: + +``` +# systemctl enable zram-swap.service# systemctl start zram-swap.service +``` + +然后验证 `zram0` 是否存在并被用作交换空间: + +``` +# lsblk +NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT +sda             8:00  120G  0 disk +├─sda1          8:10    2G  0 part /boot +└─sda2          8:20  118G  0 part +  ├─vg01-root 253:00   10G  0 lvm  / +  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] +  ├─vg01-usr  253:20   35G  0 lvm  /usr +  ├─vg01-tmp  253:30   15G  0 lvm  /tmp +  ├─vg01-var  253:40   35G  0 lvm  /var +  └─vg01-home 253:50   20G  0 lvm  /home +sr0            11:01 1024M  0 rom +zram0         252:00  7.5G  0 disk [SWAP] +``` + +### 用 zram 改进交换空间 + +这就是全部内容了。在 Fedora 上这很容易。不同的发行版可能也一样简单,只是软件包名称和命令的细节可能不同。在你的电脑上试试 zram 交换空间吧。在我的下一篇文章中,我将进一步演示一些 zram 选项。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/zram-swap-linux + +作者:[David Both][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://opensource.com/users/dboth +[b]: https://github.com/lkxed +[1]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM +[2]: https://opensource.com/article/19/2/swap-space-poll +[0]: https://img.linux.net.cn/data/attachment/album/202301/28/113826twvkkbrso9ws2kss.jpg \ No newline at end of file diff --git a/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md deleted file mode 100644 index df8dd3e3fa..0000000000 --- a/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md +++ /dev/null @@ -1,191 +0,0 @@ -[#]: subject: "Drop swap for zram on Linux" -[#]: via: "https://opensource.com/article/22/11/zram-swap-linux" -[#]: author: "David Both https://opensource.com/users/dboth" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Drop swap for zram on Linux -====== - -Zram is a tool for creating an in-RAM compressed cache, specifically for use as swap space. - -I spend a lot of time playing (I mean working) on my computers, and I've found a lot of interesting things. One that has most recently come to my attention is the `zram0` device. I first noticed it when working on one of my Opensource.com articles several months ago. It showed up in the output from the `lsblk` command: - -``` -# lsblk -NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS -sda             8:00 931.5G  0 disk -├─sda1          8:10   600M  0 part -[...] -zram0         252:00     8G  0 disk [SWAP] -``` - -It's identified as swap space, which is what first piqued my curiosity, so I did some exploration. Zram was originally called "compcache," which stands for "compressed cache." It turns out that zram is a tool for creating an in-RAM compressed cache, specifically for use as swap space. - -But Why? - -When I began researching zram, all I found were a couple of basic articles about using zram for swap space. At first, this seemed a bit counterintuitive to me. After all, if you're running out of RAM and you swap pages into a virtual drive in RAM, what's gained? - -I then found the Fedora Project wiki page that proposed the use of [Swap on zram][1]. The proposal says: "Swap is useful, except when it's slow. zram is a RAM drive that uses compression. Create a swap-on-zram during start-up. And no longer use swap partitions by default." - -The rest of the page is about details, benefits, side effects, and feedback. - -### Zram for swap space on Linux - -Using zram for swap space is intended to do the same thing as regular partition-based or file-based swap space. When memory pressure becomes too great, some of the least recently used data is moved to swap space. On average, it's compressed to about 50% of its original size, and placed in zram space in RAM. This is much faster than storing those memory pages on a hard drive and frees up the RAM it was using for other use. - -### Saving on swap - -I tried to find revised recommendations for how much swap or zram swap to configure. This led me back to a reassessment of swap, and my previous article, [What's the right amount of swap space for a modern Linux system?][2] As far as I can tell from the most current documentation for RHEL and Fedora, the recommended amount of swap space has not changed. That documentation, however, ignores the use of zram. - -However, the tables in that previous article still provide a good starting point for swap space allocation when using older releases of Linux that don't use zram or in cases where zram has been disabled. - -The documents I found for the Zram feature are inconsistent in terms of how zram is allocated with respect to RAM size, and the amount of space allocated to zram swap. - -Due to the lack of authoritative documentation, I performed some experiments to empirically determine the algorithm used to allocate zram swap. I used my own physical and virtual systems for this. The results are interesting and do not match any documentation I've so far found. - -The default size of zram is 8 GB on all systems large enough to support that, but it's typically reduced significantly on hosts with small amounts of RAM. On one virtual machine (VM) I use for testing, with access to 4 GB of RAM, the zram virtual swap space is allocated to 3.8 GB. One old Dell I have contains 8 GB of RAM, and the zram is set to 7.6 GB. When RAM is reduced to 2 GB, Zram is reduced to 1.9 GB. - -All physical and virtual hosts I have with more than 8 GB of RAM show exactly 8 GB of zram. This includes my primary workstation with 64 GB of RAM and other hosts with 16 GB or 32 GB of RAM. - -Based on these few data points, I can draw the conclusion that the current default settings are for 8 GB of zram at most, and for zram to be 95% of RAM on hosts with 8 GB or less. - -I have read a number of articles that mention other sizes for zram swap, even up to 100% of RAM, but those all seem to be theoretical rather than reality. - -Your distribution may be different, but here are the actual zram swap allocations for Fedora and similar distributions: - -- **RAM ⇐ 8 GB:** 0.95 × RAM -- **RAM > 8 GB:** 8 GB - -Be aware that the zram swap size algorithm is not based on any recommendations for the "best" swap size for any given real-world system or application. This zram swap allocation is a rather probabilistic approach to what should work well on a wide range of Linux hosts. However, the fact that the maximum zram swap size is configured for 8 GB and the fact that I have always recommended 8 GB as the maximum amount of traditional swap, I think I can say it's reflective of the optimum sizes for zram swap. - -### Managing zram swap - -Zram defaults are stored in the `/usr/lib/systemd/zram-generator.conf` configuration file. The following is from one of my test VMs with 5097 GB of RAM allocated. - -``` -# cat /usr/lib/systemd/zram-generator.conf -# This config file enables a /dev/zram0 device with the default settings: -# - size - same as available RAM or 8GB, whichever is less -# - compression - most likely lzo-rle -# -# To disable, uninstall zram-generator-defaults or create empty -# /etc/systemd/zram-generator.conf file. -[zram0]zram-size= min(ram, 8192) -``` - -You can change the default Zram swap size in the last line of the `zram-generator.conf` configuration file. I recommend against doing that, unless you can definitively show a reason for doing so, and test your results once you make any changes. Like many other configuration defaults in Linux, the zram ones have been well-tested and are appropriate for most use cases. - -### Monitor zram - -The zramctl utility can be used to view the current state of zram. - -``` -# zramctl -NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT -/dev/zram0 lzo-rle       4.8G   4K   80B   12K       4[SWAP] -``` - -The traditional `swapon` command can also be used to view swap including zram used as swap: - -``` -# swapon --show -NAME       TYPE      SIZE USED PRIO -/dev/zram0 partition 4.8G   0B  100 -``` - -One thing to be aware of is that `zramctl` does not report on zram when it contains no data, so the results contain null output. Tools like `lsblk`, `swapon`, `top`, `free`, `htop`, and so on, do show zram even when it contains no data. - -### Deactivate zram - -The `swapoff -a` command turns off `zram` swap as well as traditional HDD or SSD storage used as swap. The `swapon -a` command does not show zram when it is empty. Use `zramctl /dev/zram0` instead. - -``` -# swapon --show# lsblk -NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS -sda             8:00  120G  0 disk -├─sda1          8:10    1G  0 part /boot/efi -├─sda2          8:20    1G  0 part /boot -└─sda3          8:30  118G  0 part -  ├─vg01-root 253:00   10G  0 lvm  / -  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] -  ├─vg01-usr  253:10   30G  0 lvm  /usr -  ├─vg01-home 253:20   10G  0 lvm  /home -  ├─vg01-var  253:30   30G  0 lvm  /var -  └─vg01-tmp  253:40   10G  0 lvm  /tmp -sr0            11:01 1024M  0 rom -zram0         252:00    0B  0 disk -# zramctl## zramctl /dev/zram0 -NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT -/dev/zram0 lzo-rle         0B   0B    0B    0B       4 -``` - -Note that `/dev/zram0` doesn't show up in these commands as swap space until it's being used for that purpose. This caused me some confusion until my experiments showed it to be the case. - -### Creating Zram Swap - -Zram itself has been around for about 20 years, but has only been in use as swap space on some distributions for the last year or two. The current Linux installation on some or all of your hosts may not have been created with zram for swap. If that's the case, it can be easily remedied. - -For Fedora 32, the last release prior to the default use of zram for swap, it only takes three easy commands. - -First, verify the presence of the `zram-swap.service` file, installed as part of the `zram` RPM package. - -``` -# systemctl status zram-swap -● zram-swap.service - Enable compressed swap in memory using zram -     Loaded: loaded (/usr/lib/systemd/system/zram-swap.service; disabled; vendor preset: disabled) -     Active: inactive (dead) -``` - -Next, install the `zram-generator-defaults` and `zram-generator` packages. - -``` -# dnf install zram-generator-defaults zram-generator -``` - -Enable and start the zram-swap service: - -``` -# systemctl enable zram-swap.service# systemctl start zram-swap.service -``` - -And then verify that `zram0` exists, and is being used as swap space: - -``` -# lsblk -NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT -sda             8:00  120G  0 disk -├─sda1          8:10    2G  0 part /boot -└─sda2          8:20  118G  0 part -  ├─vg01-root 253:00   10G  0 lvm  / -  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] -  ├─vg01-usr  253:20   35G  0 lvm  /usr -  ├─vg01-tmp  253:30   15G  0 lvm  /tmp -  ├─vg01-var  253:40   35G  0 lvm  /var -  └─vg01-home 253:50   20G  0 lvm  /home -sr0            11:01 1024M  0 rom -zram0         252:00  7.5G  0 disk [SWAP] -``` - -### Improve swap with zram - -That's all there is to it. It was easy with Fedora. Different distributions will likely be just as easy, with some possible different details in the package names and commands. Give zram swap a try on your computer. In my next article, I'll demonstrate some further zram options. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/zram-swap-linux - -作者:[David Both][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/dboth -[b]: https://github.com/lkxed -[1]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM -[2]: https://opensource.com/article/19/2/swap-space-poll From 55e3dd2fea605f43133383c5b9fb6c804d980e0f Mon Sep 17 00:00:00 2001 From: onionstalgia <35531128+onionstalgia@users.noreply.github.com> Date: Sat, 28 Jan 2023 12:11:28 +0800 Subject: [PATCH 2656/3123] translating --- sources/talk/20220919 I got my first pull request merged!.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220919 I got my first pull request merged!.md b/sources/talk/20220919 I got my first pull request merged!.md index a1d2a7c32a..5a7350d66e 100644 --- a/sources/talk/20220919 I got my first pull request merged!.md +++ b/sources/talk/20220919 I got my first pull request merged!.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" [#]: author: "Oluwaseun https://opensource.com/users/jhhornn" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e26f57b0c100afbd552b647fd959fe66cd2948a0 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 28 Jan 2023 12:49:00 +0800 Subject: [PATCH 2657/3123] translated --- ...alyse Sentiments Using Machine Learning.md | 113 +++++++++++------- 1 file changed, 71 insertions(+), 42 deletions(-) diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md index 7f83a0b380..a9955e0fbf 100644 --- a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md +++ b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -7,27 +7,30 @@ [#]: publisher: " " [#]: url: " " -How to Analyse Sentiments Using Machine Learning +如何使用机器学习来分析情感 ====== -This article will help you understand the concept of sentiment analysis and learn how it is done. It uses different machine learning algorithms for sentiment analysis, and then compares them to decide which one is the best for the particular problem described here. -Sentiment analysis is a major area in the field of natural language processing. A sentiment is any opinion or feeling that we have about an event, a product, a situation or anything else. Sentiment analysis is the field of research in which human sentiments are automatically extracted from the text. This field started evolving in the early 90s. +>本文将帮助你理解什么是 情感分析sentiment analysis,并且你能了解如何使用机器学习进行情感分析。我们使用了不同的机器学习算法进行情感分析,然后将各个算法的准确率结果进行比较,以确定哪一种算法最适合这个问题。 -This article will help you understand how machine learning (ML) can be used for sentiment analysis, and compare the different ML algorithms that can be used. It does not try to improve the performance of any of the algorithms or methods. +情感分析是自然语言处理(NLP)中的一个重要的内容。情绪指的是我们对某一事件、物品、情况或事物产生的感觉。情感分析是一个从文本中自动提取人类情感的研究领域。它在上世纪 90 年代初才慢慢地开始发展起来。 -In today’s fast paced world, everything is online and everyone can post their views. A few negative online comments may hurt a company’s reputation and, thereby, its sales. Now that everything’s online, everyone can post their views and opinions. It becomes very important for companies to go through these to understand what their customers really want. But since there is so much data, it cannot be gone through manually. This is where sentiment analysis comes in. +本文将让你明白如何将机器学习 (ML) 用于情感分析,并比较不同机器学习算法的结果。本文的目标不在于研究提高算法性能的方法。 -Let us now start developing a model to do a basic sentiment analysis. +如今,我们生活在一个快节奏的社会中,所有的商品都能在网上购买到,每个人都可以在网上发表自己的评论。而一些商品的负面网络评论可能会损害公司的声誉,从而影响公司的销售额。因此对公司来说,通过商品评论来了解客户真正想要什么变得非常重要。但是这些评论数据太多了,无法一个个地手动查看所有的评论。这就是情绪分析诞生的缘由。 -### Let’s start! +现在,就让我们看看如何用机器学习开发一个模型,来进行基本的情绪分析吧。 -The first step is to select a data set. You can choose from any publicly available reviews or comments such as tweets or movie reviews. The two columns that should definitely be there in the data set are the label and the actual piece of text. +### 现在就开始吧! -Figure 1 shows a small sample of how the data looks. +#### 获取数据 + +第一步是选择一个数据集。你可以从任何公开的评论中进行选择,例如推文或电影评论。数据集中包含两列:标签和实际的文本段。 + +下图显示了我们选取的部分数据集。 ![Figure 1: Data sample][1] -Now we need to import the required libraries: +接下来,我们导入所需的库: ``` import pandas as pd @@ -37,29 +40,33 @@ import re import string ``` -As you can see in the above code, we have imported NumPy and Pandas for processing the data. We will look at the other imported libraries when we use them. +我们使用 NumPy 和 Pandas 库来处理数据。至于其他库,我们会在使用到它们时再说明。 -Now that the data set is ready and the libraries are imported, we need to bring the former into our project. The Pandas library is used for this purpose. We bring the data set into the Pandas data frame using the following line of code: +数据集已准备就绪,并且已导入所需的库。接着,我们需要用 Pandas 库将数据集读入到我们的项目中去。我们使用以下的代码将数据集读入 Pandas 数据帧(DataFrame)类型: ``` sentiment_dataframe = pd.read_csv(“/content/drive/MyDrive/Data/sentiments - sentiments.tsv”,sep = ‘\t’) ``` -Now that we have the data set in our project, let us manipulate it so that our algorithm can understand the features better. We begin by giving names to our columns in the data set. This is done by using the line of code given below: +#### 数据处理 + +现在我们的项目中已经导入好数据集了。然后,我们要对数据进行处理,以便算法可以更好地理解数据集的特征。我们首先为数据集中的列命名,通过下面的代码来完成: ``` sentiment_dataframe.columns = [“label”,”body_text”] ``` -We then assign numerical labels to the classes — negative is replaced with 1 and positive is replaced with 0. Figure 2 shows how the data frame looks at this stage. +然后,我们对 `label` 列进行数值化:`negative` 的评论替换为 1,`positive` 的评论替换为 0。下图显示了经过基本修改后的 `sentiment_dataframe` 的值。 ![Figure 2: Data frame with basic modifications][2] -The next step is the preprocessing of the data. This is a very important step as it helps us to convert string/text data into numerical data (machine learning algorithms can understand/process numerical data and not text). Also, the redundant and useless data needs to be removed as it may taint our training model. We remove the noisy data, missing values and other non-consistent data in this step. +#### 准备好特征值、目标值 -We will add the features text length and punctuation count in the data frame specifically for this application. We will also do the stemming, i.e., we will convert all similar words (like ‘give’, ‘giving’, etc) into a single form. Once this is done, we divide the data set into two — X and Y — where X is the features and Y is the prediction class. +下一步是数据的预处理。这是非常重要的一步,因为机器学习算法只能理解/处理数值形数据,而不能理解文本,所以此时要进行特征抽取,将字符串/文本转换成数值化的数据。此外,还需要删除冗余和无用的数据,因为这些数据可能会污染我们的训练模型。我们在这一步中去除了噪声数据、缺失值数据和不一致的数据。 -This is done using the following piece of code. Figure 3 shows the data frame after these steps are taken. +对于情感分析,我们在数据帧中添加特征文本的长度和标点符号计数。我们还要进行词干提取,即将所有相似词(如“give”、“giving”等)转换为单一形式。完成后,我们将数据集分为两部分:特征值 X 和 目标值 Y。 + +上述内容是使用以下代码完成的。下图显示了执行这些步骤后的数据帧。 ![Figure 3: Data frame after the division of the data set][3] @@ -68,7 +75,7 @@ def count_punct(text): count = sum([1 for char in text if char in string.punctuation]) return round(count/(len(text) - text.count(“ “)),3)*100 - tokenized_tweet = sentiment_dataframe[‘body_text’].apply(lambda x: x.split()) +tokenized_tweet = sentiment_dataframe[‘body_text’].apply(lambda x: x.split()) stemmer = PorterStemmer() tokenized_tweet = tokenized_tweet.apply(lambda x: [stemmer.stem(i) for i in x]) for i in range(len(tokenized_tweet)): @@ -80,43 +87,53 @@ X = sentiment_dataframe[‘body_text’] y = sentiment_dataframe[‘label’] ``` -We now need to convert the string into numerical data. We use a count vectorizer for this purpose; that is, we get the counts of each word and convert it into a vector. +#### 特征工程:文本特征处理 -After this, features such as length of text and punctuation count in the dataframe, i.e., X, are calculated. A sample of X is shown in Figure 4. +我们接下来进行文本特征抽取,对文本特征进行数值化。为此,我们使用计数向量器(CountVectorizer),它返回词频矩阵。 + +在此之后,计算数据帧 X 中的文本长度和标点符号计数等特征。X 的示例如下图所示。 ![Figure 4: Sample of final features][4] -Now the data is ready for training. The next step is to determine which algorithms we are going to use for training our model. As has been mentioned before, we are going to try several algorithms and determine the best one for sentiment analysis. Since we are basically trying to do binary classification, the following algorithms can be used: +#### 使用的机器学习算法 -* K-nearest neighbors (KNN) -* Logistic regression -* Support vector machines (SVMs) -* Stochastic gradient descent -* Naive Bayes -* Decision tree -* Random Forest +现在数据已经可以训练了。下一步是确定使用哪些算法来训练模型。如前所述,我们将尝试多种机器学习算法,并确定最适合情感分析的算法。由于我们打算对文本进行二元分类,因此我们使用以下算法: -We first need to split our data set into testing and training data. This is done by using the sklearn library using the following code: +* K-近邻算法(KNN) +* 逻辑回归算法 +* 支持向量机(SVMs) +* 随机梯度下降(SGD) +* 朴素贝叶斯算法 +* 决策树算法 +* 随机森林算法 + +#### 划分数据集 + +首先,将数据集划分为训练集和测试集。使用 sklearn 库,详见以下代码: ``` from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.20, random_state = 99) ``` -We will use 20 per cent of the data for testing and 80 per cent for the training part. We will separate the data because we want to test on a new set of data whether our model is working properly or not. +我们使用 20% 的数据进行测试,80% 的数据用于训练。划分数据的意义在于对一组新数据(即测试集)评估我们训练的模型是否有效。 -Now let us start with the first model. We will try the KNN algorithm first, and use the sklearn library for this. We will first train the model and then assess its performance (all of this can be done using the sklearn library in Python itself). The following piece of code does this, and we get an accuracy of around 50 per cent. +##### K-近邻算法 + +现在,让我们开始训练第一个模型。首先,我们使用 KNN 算法。先训练模型,然后再评估模型的准确率(具体的代码都可以使用 Python 的 sklearn 库来完成)。详见以下代码,KNN 训练模型的准确率大约为 50%。 ``` from sklearn.neighbors import KNeighborsClassifier -model = KNeighborsClassifier (n_neighbors=3) +model = KNeighborsClassifier(n_neighbors=3) model.fit(X_train, y_train) model.score (X_test,y_test) 0.5056689342403629 ``` -The code is similar in the logistic regression model — we first import the function from the library, fit the model, and then test it. The following piece of code uses the logistic regression algorithm. The output shows we got an accuracy of around 66 per cent. +##### 逻辑回归算法 + +逻辑回归模型的代码十分类似——首先从库中导入函数,拟合模型,然后对模型进行评估。下面的代码使用逻辑回归算法,准确率大约为 66%。 ``` from sklearn.linear_model import LogisticRegression @@ -127,7 +144,9 @@ model.score (X_test,y_test) 0.6621315192743764 ``` -The following piece of code uses SVM. The output shows we got an accuracy of around 67 per cent. +##### 支持向量机算法 + +以下代码使用 SVM,准确率大约为 67%。 ``` from sklearn import svm @@ -138,7 +157,9 @@ model.score(X_test,y_test) 0.6780045351473923 ``` -The following piece of code uses the Random Forest algorithm, and we get an accuracy of around 69 per cent. +##### 随机森林算法 + +以下的代码使用了随机森林算法,随机森林训练模型的准确率大约为 69%。 ``` from sklearn.ensemble import RandomForestClassifier @@ -149,7 +170,9 @@ model.score(X_test,y_test) 0.6938775510204082 ``` -Next we use the Decision tree algorithm, which gives an accuracy of around 61 per cent. +##### 决策树算法 + +接下来,我们使用决策树算法,其准确率约为 61%。 ``` from sklearn.tree import DecisionTreeClassifier @@ -160,7 +183,9 @@ model.score(X_test,y_test) 0.6190476190476191 ``` -The following piece of code uses the stochastic gradient descent algorithm. The output shows that we got an accuracy of around 49 per cent. +##### 随机梯度下降算法 + +以下的代码使用随机梯度下降算法,其准确率大约为 49%。 ``` from sklearn.linear_model import SGDClassifier @@ -171,7 +196,9 @@ model.score(X_test,y_test) 0.49206349206349204 ``` -The following piece of code uses Naive Bayes. We get an accuracy of around 60 per cent. +##### 朴素贝叶斯算法 + +以下的代码使用朴素贝叶斯算法,朴素贝叶斯训练模型的准确率大约为 60%。 ``` from sklearn.naive_bayes import GaussianNB @@ -182,13 +209,15 @@ model.score(X_test,y_test) 0.6009070294784581 ``` -Now that we have checked out all the algorithms, let us graph their accuracy performance. The graph is shown in Figure 5. +#### 情感分析的最佳算法 + +接下来,我们绘制所有算法的准确率图。如下图所示。 ![Figure 5: Accuracy performance of the different algorithms][5] -As you can see, the random forest algorithm gave the best accuracy for this problem and we can conclude that it is the best fit for sentiment analysis amongst ML algorithms. We can improve the accuracy much more by getting better features, trying out other vectorising techniques, and using a better data set or newer classification algorithms. +可以看到,对于情感分析这一问题,随机森林算法有最佳的准确率。由此,我们可以得出结论,随机森林算法是所有机器算法中最适合情感分析的算法。我们可以通过处理得到更好的特征、尝试其他矢量化技术、或者使用更好的数据集或更好的分类算法,来进一步提高准确率。 -Now that random forest is seen as the best algorithm for this problem, I am going to show you a sample prediction. In Figure 6, you can see that the right predictions are being made! Do try this out to improve upon this project! +既然,随机森林算法是解决情感分析问题的最佳算法,我将向你展示一个预处理数据的样本。在下图中,你可以看到模型会做出正确的预测!试试这个来改进你的项目吧! ![Figure 6: Sample predictions made][6] @@ -198,7 +227,7 @@ via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-mach 作者:[Jishnu Saurav Mittapalli][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[chai001125](https://github.com/chai001125) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 57b62b36b15b90c966d074c21bc14f7517265c5b Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 28 Jan 2023 12:50:14 +0800 Subject: [PATCH 2658/3123] translated --- .../20220906 How to Analyse Sentiments Using Machine Learning.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220906 How to Analyse Sentiments Using Machine Learning.md (100%) diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md similarity index 100% rename from sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md rename to translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md From e50328a681679c670eda13b9098bc8b4bbc27fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:20:56 +0800 Subject: [PATCH 2659/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230115.0=20=E2=AD=90=EF=B8=8F=20Share=20Folder=20B?= =?UTF-8?q?etween=20Guest=20and=20Host=20in=20GNOME=20Boxes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...older Between Guest and Host in GNOME Boxes.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md diff --git a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md new file mode 100644 index 0000000000..a6260f7349 --- /dev/null +++ b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -0,0 +1,119 @@ +[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" +[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Share Folder Between Guest and Host in GNOME Boxes +====== + +**Use the below steps to share a folder between host and guest in GNOME Boxes app.** + +GNOME Boxes is a front-end application to create and manage virtual machines. It is primarily compatible with the GNOME desktop. However, you can use it in other desktop environments, such as KDE Plasma and others. + +At the backend, it uses QEMU, KVM, and libvirt tech and provides an easy-to-use user interface to manage multiple virtual machines. + +If you want to learn more, you can also refer to [these guides][1] on GNOME Boxes to create virtual machines. + +In the prior articles, we have explained how to share folders in [virt-manager][2] and [VirtualBox][3]. And the following steps explain the same for GNOME Boxes. + +### How to share folder and file in GNOME Boxes + +GNOME Boxes primarily support [SPICE protocol][4] to enable remote access, sharing and many virtualization features. SPICE is one of the oldest open-source packages in the virtualization space. + +#### 1. Initial setup + +- Firstly, make sure to install the following spice packages inthe **guest system**. + +``` +sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros +sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc +pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) +``` + +- After you install the above, **reboot** the host and guest systems. +- In the host system (for GNOME desktop), open settings and go to Sharing panel. +- **Enable Sharing** using the top toggle button. +- Then, click on File Sharing and **Enable File Sharing**. Make sure to enable the network. The password is optional. If you want to enable password-based authentication for your shared folder, enable it. + +![Enable sharing in settings][5] + +![Enable File Sharing][6] + +- Close the settings window. +- Open GNOME Boxes. Right-click on the VM and select **preferences**. +- Click on **Devices and Shares** on the preference window and click on the **[+] button** under Shared folders. +- Under **Local Folder**: Select the folder from your host you want to access inside the guest. +- **Name**: Give any name you want. This name will be visible in the guest’s file manager. +- Click Save. + +![Add a share folder in host][7] + +#### 2. Setup for guest + +- Start your guest virtual machine. +- Inside the guest virtual machine, open the file manager. If you are using a GNOME desktop, open Nautilus (i.e. Files). +- Click on **Other Locations**. you should see the “**Spice client folder**” under Networks. +- Double-click on this, and you should see the folder contents of your host system. +- Sometimes, the above folder takes some time to appear. if it is not visible, wait for 1 or 2 minutes. Refresh the file manager window via `F5`. + +![Spice client folder in guest][8] + +#### 3. Some troubleshooting + +- Furthermore, if you are getting the following error, then you need to access the path manually. + +``` +Unable to access location - HTTP Error: Could not connect: Connection refused +``` + +![error while accessing the spice client folder][9] + +- Press `CTRL+L` in the file manager to bring up the address bar. In the address bar, type the following: + +``` +dav://localhost:9843 +``` + +- And hit enter. And you should see the folder contents. The `dav` protocol is used by the SPICE server, which connects the guest and host at port 9843. + +![accessing via dav protocol][10] + +And that’s it. Now you can enjoy file sharing between guests and hosts in GNOME Boxes. + +Here’s a screenshot of the same folder accessed by the guest and host. + +![Share folder and its contents between guest and host in GNOME Boxes (sample)][11] + +If you run into any error, drop a comment below. + +[_Some references are used in this article from GitLab._][12] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-gnome-boxes/ + +作者:[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/tag/boxes +[2]: https://www.debugpoint.com/share-folder-virt-manager/ +[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ +[4]: https://www.spice-space.org/index.html +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg +[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 From 4c813ae5f53ae27075af17b7e62b6805b6e04563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:27:40 +0800 Subject: [PATCH 2660/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230116.0=20=E2=AD=90=EF=B8=8F=20Meet=20ecode=20An?= =?UTF-8?q?=20Upcoming=20Modern,=20Lightweight=20Code=20Editor=20With=20a?= =?UTF-8?q?=20Brand=20New=20GUI=20Framework.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Code Editor With a Brand New GUI Framework.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md new file mode 100644 index 0000000000..5abb721cd2 --- /dev/null +++ b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -0,0 +1,113 @@ +[#]: subject: "Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework" +[#]: via: "https://news.itsfoss.com/ecode-editor/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework +====== + +A new exciting code editor is in the works, built on its own GUI framework. + +![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] + +If you look around for open-source code editors, a couple of promising new projects may challenge the likes of Visual Studio Code. + +Sure, that may not happen anytime soon. **But it does not hurt to be optimistic about supporting new projects.** + +We recently covered some of those options here: + +Now, I have stumbled upon another editor, "**ecode**". The project's author mentions that it takes inspiration from editors like [Lite XL][2]. + +**What's different?** + +- It is built on top of its **new GUI framework [eepp][3]** which focuses on providing a rich user interface. +- While it aims to use minimal resources, ecode's philosophy targets **modern hardware** with systems that have SSDs, high cores count, and decent GPU acceleration. +- The code editor can be compiled to run in any modern browser. However, the current focus is not on the development of the web version. + +![ecode official screenshot][4] + +That sounds good. So, let us take a look. + +> 🚧 The project is under heavy development. You should not rely on the tool for everyday tasks. + +Learn to Code - for Free | CodecademyLearn the technical skills to get the job you want. Join over 50 million people choosing Codecademy to start a new career (or advance in their current one).![][5]Codecademy![][6] + +### Features of ecode + +![ecode][7] + +[ecode][8] is a capable editor with all the essentials loaded from the start. + +Sure, it has plans to add more stuff as the development progresses. As it stands, here are some of the key highlights: + +- **Portable** +- **Syntax highlighting** +- **Terminal support** +- **Auto-completion** +- **Customizable color schemes** +- **Customizable keyboard bindings** +- **LSP Support** +- **Minimap** +- **Plugin manager** +- **Dark and light mode** +- **Various types of split views to adapt to different workflows** + +I tried the editor briefly on Linux Mint, and it sure looks like a work in progress. + +But, even in its early stages, it supports the essentials to support a wide range of languages and syntax highlights accordingly. + +![ecode options][9] + +You can customize the editor's theme quickly from a set of pre-defined themes. + +The minimap will be handy for users who write a lot of code (lengthy snippets) and need to navigate it quickly. + +The app crashed for me initially as I performed a right-click in a blank area. But, it was quickly fixed with the next version update, **0.4.1** (at the time of publishing this). So, I would say the **development progress seems promising**. + +![][10] + +Cloud IDE · Online Code Editor · CodeanywhereSave time by deploying a development environment in seconds. Collaborate, code, learn, build, and run your projects directly from your browser.![][11]Cloud IDE · Online Code Editor · CodeanywhereCodeanywhere![][12] + +### Download ecode + +You can try the [live demo][13] available to test-drive some options quickly. + +An AppImage file is available for all Linux distributions. Packages for macOS and Windows are also available. + +You can get these packages from its [GitHub releases section][14] or explore its [source code][3]. + +[Download ecode][14] + +💬 With so many promising new code editors in development, do you think we'll have a good competition to Microsoft's VS Code? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ecode-editor/ + +作者:[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/content/images/size/w2000/2023/01/ecode-first-look.png +[2]: https://itsfoss.com/lite-xl/ +[3]: https://github.com/SpartanJ/eepp/ +[4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg +[5]: https://www.pjtra.com/apple-touch-icon.png +[6]: https://images.codecademy.com/social/logo-codecademy-social.png +[7]: https://news.itsfoss.com/content/images/2023/01/ecode.png +[8]: https://github.com/SpartanJ/ecode +[9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png +[10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png +[11]: https://codeanywhere.com/apple-touch-icon.png +[12]: https://codeanywhere.com/img/backgrounds/codeanywhere-bg.jpg +[13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js +[14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 From 249b4af4b4140c264924331892b83bc481349642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:35:30 +0800 Subject: [PATCH 2661/3123] =?UTF-8?q?Update=2020230116.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Meet=20ecode=20An=20Upcoming=20Modern,=20Lightweigh?= =?UTF-8?q?t=20Code=20Editor=20With=20a=20Brand=20New=20GUI=20Framework.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..., Lightweight Code Editor With a Brand New GUI Framework.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md index 5abb721cd2..b60dd11627 100644 --- a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -34,8 +34,6 @@ That sounds good. So, let us take a look. > 🚧 The project is under heavy development. You should not rely on the tool for everyday tasks. -Learn to Code - for Free | CodecademyLearn the technical skills to get the job you want. Join over 50 million people choosing Codecademy to start a new career (or advance in their current one).![][5]Codecademy![][6] - ### Features of ecode ![ecode][7] @@ -70,8 +68,6 @@ The app crashed for me initially as I performed a right-click in a blank area. B ![][10] -Cloud IDE · Online Code Editor · CodeanywhereSave time by deploying a development environment in seconds. Collaborate, code, learn, build, and run your projects directly from your browser.![][11]Cloud IDE · Online Code Editor · CodeanywhereCodeanywhere![][12] - ### Download ecode You can try the [live demo][13] available to test-drive some options quickly. @@ -102,12 +98,9 @@ via: https://news.itsfoss.com/ecode-editor/ [3]: https://github.com/SpartanJ/eepp/ [4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg [5]: https://www.pjtra.com/apple-touch-icon.png -[6]: https://images.codecademy.com/social/logo-codecademy-social.png [7]: https://news.itsfoss.com/content/images/2023/01/ecode.png [8]: https://github.com/SpartanJ/ecode [9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png [10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png -[11]: https://codeanywhere.com/apple-touch-icon.png -[12]: https://codeanywhere.com/img/backgrounds/codeanywhere-bg.jpg [13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js [14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 From 6d6874ce71ae5250723db79e9ba6ca750726596c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:36:58 +0800 Subject: [PATCH 2662/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230116.1=20=E2=AD=90=EF=B8=8F=20Kodi=2020.0=20Nexu?= =?UTF-8?q?s=20Update=20Includes=20Support=20for=20AV1=20Video=20and=20Ste?= =?UTF-8?q?am=20Deck=20Controller.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ort for AV1 Video and Steam Deck Controller.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md diff --git a/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md new file mode 100644 index 0000000000..70bffab23f --- /dev/null +++ b/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -0,0 +1,111 @@ +[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" +[#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller +====== + +Multiple major feature additions with the Kodi v20 release. + +![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] + +[Kodi][2] is a cross-platform open-source media player developed by the Kodi Foundation that offers a plethora of features. + +Its previous major release was [Kodi 19 'Matrix'][3] which came **almost two years ago**. + +Now, an improved release is here, called **Kodi 'Nexus'**. It promises several new features and improvements. + +Let's take a look at those. + +### 🆕 Kodi 20 'Nexus': What's New? + +The release is bringing in plenty of new things. Some of the highlights include: + +- **AV1 Codec Support** +- **Enhanced PVR support** +- **Updated Scrapers** +- **Various Fixes and Improvements** + +![kodi 20 nexus][4] + +#### AV1 Codec Support + +Kodi now features support for the open, royalty-free [AV1 codec][5] on Linux. + +Hardware acceleration for decoding AV1 was made possible through [Video Acceleration API][6] (VA-API), and AV1 support was also added for InputStream. + +#### Enhanced PVR support + +TV watching and radio listening via [PVR][7] has also received many improvements, some of the notable ones include: + +- A redesigned channel manager. +- Ability to show the provider of a specific channel or recording. +- Ability to sort channels and recordings by provider. +- Support for read-only recordings. +- Improvements to EPG search. +- Automatic cleanup of cached PVR images. +- Various performance improvements. +- Multi-instance support for PVR client-addons. +- Various tweaks to the PVR experience under the Estuary theme. + +#### Updated Scrapers + +The TVDB TV Show scraper was updated to prevent breakage after introducing a change that broke the 'VideoStreamDetail' and 'InfoTagVideo; Python APIs. + +> 🗒️ Users of older Kodi 20 releases are recommended to update to the latest version to avoid any disruptions with this scraper. + +Furthermore, the Python TV Show scrapers were updated to fix a potentially confusing issue where the new scrapers were using a different XML format than the existing providers used. + +Due to that, now, when you add new episodes to existing TV shows in your library, you will have to refresh the show to download the new episode guide. Even if you are using the NFO files. + +#### 🛠️ Various Fixes and Improvements + +Other than that, Kodi 20 features several fixes and improvements, such as: + +- Built-in support for Steam Deck controller. +- Initial support for the NFSv4 file system. +- 'Continue Watching' feature for certain video folders. +- Support for mounting optical media by default. +- Ability to set HDR output when using the Generic Buffer Management API. +- Addressed an issue with DRMPrime. +- Various Teletext improvements. +- Fixed black screen issue with standalone games. + +To explore more, you can read the [official announcement post][8]. + +### 📥 Download Kodi 20 + +Kodi 20 'Nexus' is available from the [official website][9] and its [GitHub repository][10]. + +It should be available on app stores and official repositories as well. + +Kodi v21 (codename: Omega) development is already underway. So, if you wanted more from this release, keep an eye on the next one. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kodi-20-nexus-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/kodi-nexus-20-release.png +[2]: https://kodi.tv +[3]: https://news.itsfoss.com/kodi-19-release/ +[4]: https://news.itsfoss.com/content/images/2023/01/Kodi_20_Nexus.jpg +[5]: https://en.wikipedia.org/wiki/AV1 +[6]: https://en.wikipedia.org/wiki/Video_Acceleration_API +[7]: https://kodi.wiki/view/PVR +[8]: https://kodi.tv/article/kodi-20-0-nexus-release +[9]: https://kodi.tv/download/ +[10]: https://github.com/xbmc/xbmc/releases/tag/20.0-Nexus From 167868cd5f1ef6c7662cb39ac0e2dad46842e0f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:37:29 +0800 Subject: [PATCH 2663/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Learn=20zip=20Command=20in=20Linux=20Using=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Learn zip Command in Linux Using Examples.md | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md diff --git a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md new file mode 100644 index 0000000000..e87ffac5c2 --- /dev/null +++ b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -0,0 +1,181 @@ +[#]: subject: "Learn zip Command in Linux Using Examples" +[#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn zip Command in Linux Using Examples +====== + +**Here’s a beginner’s guide on understanding the zip command in Linux with a few examples.** + +![][1] + +A zip file is a compressed archive containing one or more files. It is widely used as a lossless data compression technique. Thanks to compression, it takes less disk space and requires fewer data to transfer over computer networks. + +These compressed files can be extracted easily in Linux, Windows and macOS. Various software is available that supports zip file compression and also offers to extract them. + +Since it is popular, almost all operating systems have this built-in. + +In this tutorial, we will talk about several terminal-based methods to zip a file in Linux. + +### Zip Command in Linux: Examples + +#### Syntax + +The program name you need to use in Linux to zip a file is `zip`. Here’s the basic syntax. + +``` +zip [compress file name] file1 file2 file3 +``` + +And here’s the official syntax. + +``` +zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] +``` + +Ideally, it should be installed in all the major Linux distributions. If not, use the following commands to install it. + +#### Install zip on Debian, Ubuntu and related distributions + +``` +sudo apt install zip +``` + +#### Install in Fedora, RHEL-based systems + +``` +sudo dnf install zip +``` + +#### Arch Linux + +``` +pacman -S zip +``` + +Let’s take a look at some examples. + +#### How to zip files and folders + +I have the following three files in my test directory. They are file1.txt, file2.txt and file3.txt. If I want to compress three files using zip and create a zip myfiles.zip, the following command is sufficient. + +``` +zip myfiles.zip file1.txt file2.txt file3.mp3 +``` + +Output: + +``` +adding: file1.txt (stored 0%)adding: file2.txt (stored 0%)adding: file3.mp3 (deflated 13%) +``` + +![Output of Basic zip command in Linux][2] + +A few points you should remember here. + +- When creating a zip file, you should have the modify access to the current directory. +- The zip file format doesn’t contain the permissions, i.e. read(4), write(2), and execute(1). So, the user who creates it becomes the owner of the file. +- If you want to use zip with permission, try the tar command (to be explained in a later tutorial). +- In the above output, the zip command shows the file names being added to the archive and the compression method. +- Specifying the .zip file name extension in the target file name is not mandatory. If you omit .zip, zip will add the .zip at the end. + +When you have hundreds or thousands of files in operation, it’s a good idea to suppress the output in the terminal. You can use -q command to suppress the output in the zip command. + +``` +zip -q myfiles.zip file1.txt file2.txt file3.txt +``` + +#### Recursive compression of subfolders + +The `-r` option of zip command enables you to include subdirectories and their contents. This option recursively traverses until the last child of a directory structure and adds all of them to the zip file. + +The following command creates a compressed file with all the contents and subdirectories inside my_folder. + +``` +zip -r myfolder.zip my_folder +``` + +You can also use the wild card characters (*) to include specific types of files in your zip file. + +``` +zip -0 my_movies.zip *.mp4 +``` + +#### Adding a mix of files and directories + +With all the above options, the zip command allows you to specify files and directories together as arguments. + +``` +zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 +``` + +### Compression algorithms + +The default output of the zip file contains two distinct words, i.e. deflate and store. The default compression method used by zip is deflate. If it successfully compresses the file, then the output shows deflate. And when it can’t compress a file, it simply stores them inside the .zip file as is. Those file outputs show stored. + +There any many compression algorithm present. One of them is the bzip2 compression method which is supported by zip command in Linux. You can specify the compression algo as a command option to use. Use the option -Z followed by the algorithm name, as shown below. + +``` +zip -r -Z bzip2 myfolder.zip my_folder +``` + +#### Compress levels + +The zip command also allows you to specify the compression level. The compression level is how much you want the zip optimized to reduce the package size. It’s a numeric value range from 0 to 9. A value of 9 compression level is the highest compression. The default value is 6. + +Remember, if you are using zip to compress thousands of files of varying sizes, it might use higher system resources and take time. So, if you use it in programs, or shell scripts for many files, follow proper programming standards. + +``` +zip -9 -r myfolder.zip my_folder +``` + +#### Password protect a zip file + +You can also password protect a zip file using `-e` option like the one below. + +``` +zip -e -r myfolder.zip my_folder +``` + +It will ask for the password after you run the command. + +Caution: Don’t use the zip command to password-protect a zip file. The encryption algorithm of the zip is PKZIP using a stream cipher. And it can be cracked easily. If you want to protect your file, use 7-Zip or other advanced tools. + +#### Split size zip files + +Many applications, servers, and file shares may contain restrictions of a fixed-size file upload. For example, you have a 10GB file, but the service allows only 1GB per file. Using the -s option of the zip, you can compress and split them into chunks for upload. + +``` +zip -s 1g -r myfolder.zip my_folder +``` + +### Wrapping Up + +You learned some basics of the zip command. It is useful for most local cases where you need to take quick backups by compressing them on the fly. However, for more advanced options, you should use 7-Zip or other commands, which I will share in the next few articles. + +In the meantime, you can learn more in the [zip manual][3]. + +_This article is part of the [Linux command][4] learning series._ + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/zip-command-linux-examples/ + +作者:[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/2023/01/zip-file-head.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/Output-of-Basic-zip-command-in-Linux.jpg +[3]: https://linux.die.net/man/1/zip +[4]: https://www.debugpoint.com/category/linux-commands From a742f122f6675bd5b1a4ebaa8ccfcc80ef5c12f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:48:58 +0800 Subject: [PATCH 2664/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230117.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Top=2010=20Linux=20Distributions=20for=20Servers=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Top 10 Linux Distributions for Servers in 2023.md | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md diff --git a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md new file mode 100644 index 0000000000..25f0e785d0 --- /dev/null +++ b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -0,0 +1,149 @@ +[#]: subject: "Top 10 Linux Distributions for Servers in 2023" +[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Linux Distributions for Servers in 2023 +====== + +Linux operating system is a popular choice for servers – and for multiple reasons. First, it’s free (with exception of a few commercial distributions such as RHEL and SUSE Linux Enterprise Server ) and open-source. Its open-source nature implies that developers can view its source code, modify it and redistribute it according to the laid-out license terms. In addition, Linux is generally considered stable, versatile, and more secure than Windows. Furthermore, it can easily be deployed across various platforms such as bare-metal, virtual, and cloud environments. + +In this article, we highlight the top 10 Linux distributions for servers. + +### 1) Red Hat Enterprise Linux (RHEL) + +[Red Hat Enterprise Linux][1], abbreviated as RHEL, is a commercial Linux distribution that was developed specifically for enterprise environments. It is a performance-driven, reliable, and secure operating system that provides enhanced usability and seamless deployment which makes it ideal for server environments. + +RHEL supports a wide range of workloads in bare-metal, virtual, and cloud environments. In fact, it’s the world’s leading open-source solutions provider offering a myriad of products including Red Hat OpenShift, Ansible automation platform, Open hybrid cloud, JBoss Enterprise Application Platform, and SAP to mention a few. + +![Neofetch-Command-Output-RHEL-System][2] + +### 2) Ubuntu Server + +Developed and maintained by Canonical, Ubuntu is one of the most popular and widely used Linux distributions. It is a Debian-based Linux distribution that is absolutely free and open-source and is renowned for Its Desktop edition which is intuitive, user-friendly, and considered ideal for learners and beginners. Ubuntu comes in 3 editions namely; Desktop, Ubuntu Server, and Core. + +While the Desktop Edition enjoys massive global usage, the Server edition also offers a solid platform for server environments. First, it can be deployed in any environment, be it on a physical, virtual, or cloud environment with extensive scale-out functionality. This implies you can add resources on the go to meet evolving demands. + +And since the server version is completely stripped down without any GUI, it’s relatively lightweight leading to low resource overhead. This means low CPU and memory usage. This consequently leads to improved performance and enterprise-grade stability. + +Apart from installing it on physical data centers and virtual servers, Ubuntu server is available in public clouds such as AWS and Azure. According to Canonical, 55% of OpenStack clouds run on Ubuntu.  In addition, you can have your own managed Openstack cloud for a fee. + +![][3] + +### 3) Debian + +Debian is one of the earliest Linux distributions that is renowned for its rock-solid stability. It comes in three variants: Stable, Unstable, and Testing. + +The Debian stable branch is the latest officially released distribution of Debian and is the most popular version for servers and desktop PCs. All packages shipped with this branch have undergone rigorous testing and debugging, and are hence considered ready for production workloads. + +Debian server is tailored to be a fast and reliable operating system with an emphasis on security and stability. It’s for this reason that it makes for a perfect choice for server environments. In addition, It provides extensive hardware support with over 59,000 software packages, by far the greatest number of packages provided by any OS. + +Just like Ubuntu Server, Debian is lightweight, versatile, and highly stable for enterprise workloads. In fact, it is considered more stable and easier to manage than Ubuntu. + +![][4] + +##### 4) SUSE Linux Enterprise Server + +Another formidable and worthy contender in providing an excellent platform for servers is SUSE Linux Enterprise Server ( SLES ). The server operating system is created and maintained by SUSE, a German-based organization. + +SLES is a commercial distribution that was built to handle enterprise-grade workloads. It is adaptable to any environment and is optimized for stability, reliability, and security. It is highly scalable and allows IT teams to efficiently deploy their applications and services in response to growing business demands. + +The latest SLES release provides interoperability with ease of administration. It also provides increased support and compatibility with Docker containers, Kubernetes, and geo-clusters. The latter provides flexibility with high availability allowing IT teams to configure replication clusters that span multiple data center regions. + +SUSE Linux Enterprise Server not only supports in-house workloads but is also offered on popular cloud providers including Microsoft Azure, Google Compute Engine, and Amazon Web Services. + + +##### 5) OpenSUSE Leap + +Developed by the OpenSUSE project, OpenSUSEis a non-commercial RPM-based Linux distribution that is developed and maintained by SUSE. OpenSUSE is free and open-source and provides two editions: + +- OpenSUSE Leap +- OpenSUSE Tumbleweed + +OpenSUSE TumbleWeed is the rolling release version of OpenSUSE. It contains the latest stable applications including an updated kernel, git, SAMBA, desktop applications, and many more. It, therefore, makes a perfect distribution of choice for developers or power users who need to leverage the latest software stacks in their workloads. However, due to frequent kernel updates, it’s not the ideal choice for servers since frequent updates can cause inconsistencies with other third-party driver modules. + +OpenSUSE Leap is the preferred OpenSUSE option for servers. It’s an open-source and community-driven distribution that has a slower release cycle and, hence, a better fit than TumbleWeed. It is community-driven and this means that it undergoes rigorous testing before being released. + +Leap is comparatively easy to use and offers high performance and stability ideal for handling enterprise-grade workloads. It is a great alternative to commercial server distributions such as SLES and RHEL and allows companies to deploy their workloads both on bare metal and cloud deployments. + +![][6] + +### 6) Rocky Linux + +Rocky Linux is a Linux distribution that was developed as a replacement for CentOS Linux which reached EOL ( End Of Life ) on 31st,  December 2021. It is a free and opensource Linux distribution that is enterprise-ready, providing rock-solid stability, reliability, and regular updates with a 10-year support lifecycle at absolutely no cost + +Rocky Linux is an enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux and is currently under intensive development by the community. + +The distribution has gained massive popularity since the untimely discontinuation of CentOS Linux. It can be installed on both servers, and desktop computers. It’s also available in custom-built images on Public cloud providers such as Amazon AWS, and Google Compute Engine. + +Rocky Linux developers have availed a migration script that allows users to migrate from other enterprise editions such as CentOS Linux and Oracle Linux to Rocky Linux. + +![][7] + +### 7) AlmaLinux + +Another alternative that was developed to plug in the gap left by CentOS Linux is AlmaLinux. This is yet another enterprise operating system that is completely free and opensource. + +AlmaLinux was originally created by CloudLinux but is currently community driven. It offers a production-grade enterprise operating system that is 1:1 binary compatible with Red Hat Enterprise Linux (RHEL). In a nutshell, it’s a clone of RHEL and provides rock-solid stability and benefits that come with RHEL at no cost. + +Being an Enterprise-grade server OS, AlmaLinux can comfortably run heavy and critical workloads. In addition, it provides regular releases that come with long-term support. + +![][8] + +### 8) Oracle Linux + +Developed by Oracle Corporation, Oracle Linux is a secure and high-performance operating system that is compiled from RHEL source code. It is optimized for hybrid and multi-cloud deployments, and just like Rocky and AlmaLinux, Oracle Linux is 100% binary compatible with Red Hat Linux. + +Oracle Linux is a viable option for data centers and certainly a perfect replacement for CentOS which reached EOL. It is rock-solid stable and posts incredible performance ideal for enterprise applications. + +Unlike Commercial Linux distributions such as RHEL and SUSE, Oracle Linux is completely free to download, use and redistribute. It is available under the GNU General Public License (GPLv2). + +### 9) Fedora Server + +Fedora is a free and open-source Linux distribution that is developed and maintained by Fedora Project which is sponsored by Red Hat. + +Fedora serves as the upstream, community distribution of Red Hat Enterprise Linux. All the applications go through rigorous testing before they are pushed to RHEL. As such, it is referred to as a ‘Bleeding Edge’ operating system. This implies is regularly gets the latest software applications and updates. + +For a long time, Fedora has been popular for its Workstation Edition which was built for laptop and desktop computers. Over time, it has expanded to include other editions such as Fedora Server, Fedora IoT, and Fedora CoreOS. + +Fedora Server is a robust, reliable, and flexible operating system that ships with the best and latest data center technologies. As a leading-edge edition, it offers the very latest technologies in the open-source community. It is easy to install, set up, and administer using various tools such as Cockpit web console. + +Fedora is also fast, remarkably stable, and secure. It works just fine for production and enterprise workloads.  New releases of Fedora are pushed out once every 6 months. + +![][10] + +### 10) Fedora CoreOS + +Last on our list is Fedora CoreOS. This is a minimal operating system that is optimized specifically for running containerized applications and workloads. According to its home page, it touts itself as  “an automatically-updating, minimal operating system for running containerized workloads securely and at scale.” + +By default, it ships with both podman and docker and comes in three release streams namely:  Stable, Testing, and Next. You can get images for bare-metal servers and virtualized environments as well as cloud images that are hosted by major cloud providers such as Amazon Web Service (AWS) and Google Cloud Platform (GCP). + +##### Conclusion + +That was a round-up of the best Linux distributions for servers. We hope you found this guide insightful. Any thoughts on our guide? Your feedback is very much welcome. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ + +作者:[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.redhat.com/en +[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg +[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png From 6a734c765d26bea5311b79cb60ca4305733e1d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:56:04 +0800 Subject: [PATCH 2665/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230117.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Making=20Content=20that=20Resonates=20An=20Interview=20with=20'?= =?UTF-8?q?The=20Linux=20Cast'=20Creator,=20Matthew=20Weber.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ew with 'The Linux Cast' Creator, Matthew Weber.md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md diff --git a/sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md b/sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md new file mode 100644 index 0000000000..ace76eb40f --- /dev/null +++ b/sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md @@ -0,0 +1,147 @@ +[#]: subject: "Making Content that Resonates: An Interview with 'The Linux Cast' Creator, Matthew Weber" +[#]: via: "https://news.itsfoss.com/interview-matthew-weber/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Making Content that Resonates: An Interview with 'The Linux Cast' Creator, Matthew Weber +====== + +A conversation with Matthew Weber, the mastermind behind 'The Linux Cast' YouTube channel. + +![Making Content that Resonates: An Interview with 'The Linux Cast' Creator, Matthew Weber][1] + +If you have been following us, you probably know that we promised to interact with interesting personalities in the Linux and open-source world. + +Here, we have Matthew, a **content creator** known for his "[**The Linux Cast**][2]" YouTube channel. + +He creates podcasts and YouTube videos related to Linux, covering news and other exciting stuff. + +As a fellow content creator, **I find his content very insightful** 🤓 + +We asked him a couple of questions that **should help Linux users and content creators in the Linux/Open-Source space gain some insights** from someone with an excellent level of experience. + +**Q. The Linux Cast is an informative YouTube channel that we all love. What inspired you to start it?** + +![thelinuxcast youtube channel][3] + +**A:** My friend Ricky and I have been podcasting along with our friend Vince since **2009**. In 2017 we decided that we were going to switch to Linux and start a podcast. Ricky works in IT and has way more Linux know-how than I did at the time, so we thought it’d be **fun to start a podcast and see how it went**. We didn’t stick with it, doing only a few episodes in seasons 2017 and 2018. + +In about July or August 2020, bored because of the pandemic, I visited the anchor page for the podcast and found to my surprise, that people were listening to it, each of our old episodes has hundreds of listens. + +So, I decided to start it back up again. I found a new co-host in Martin and carried on. In **September 2020**, I decided **I’d start making a few YouTube videos to go along with the podcast**. That’s why the YouTube Channel exists. + +It was started to host the podcast, and I threw some really, really bad videos up to see if I could draw in listeners. And then it just kind of took off. + +**Q. Apart from The Linux Cast, what else do you do Linux-wise?** + +**A:** I’m beginning to **learn Python**, which has been fun. I also have started to **care more about privacy lately**, so I’ve been working on interesting FOSS-related ways of tackling that problem as well. + +12 Simple Tools to Protect Your PrivacyQuick ways to enhance online privacy? Use these simple tools to take control of your data easily.![][4]It's FOSSAnkush Das![][5] + +**Q. Do you have any other plans that you want to share with our readers for your channel/blog?** + +![youtube illustration][6] + +My main goal for the channel is just to keep getting better at making videos. It sounds kind of lame, but I do want to improve the production quality while retaining the style that I have. I can’t script a video to save my life, so I know that’s not in the cards, but I’d like to just improve at video making. I’d also like to live stream more. I’ve done that in the past, but as a New Year’s resolution, I’ve decided to start my Sunday night streams up again. + +‘Don’t be Afraid to Contribute’: Mirko Brombin Talks about Vanilla OS and Other Future ProjectsA conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator.![][7]It's FOSS NewsAnkush Das![][8] + +**Q. I noticed that you love i3 window manager. For someone new to the concept, what tip would you give to get them started? And why do you think they should give it a try?** + +**A:** Tiling window managers aren’t for everyone, butI think everyone should try one at least once (after all, how do you know you don’t like it unless you try?). If you, dear reader, **find yourself wanting to use the keyboard to navigate Linux, a tiling window manager is probably a good choice.** + +Now as for why i3 itself is great, I like it because I’ve spent so much time in it and I have spent most of my time configuring it. That means I have all the keybindings and such just the way I like them and everything is properly customized just to my liking.It has taken ages to get here, but it’s a fun process. **i3wm is great because it’s not fussy like DWM or Xmonad (both are coded and configured in actual programming languages, which makes them harder to configure)**, and it’s not as odd as something like bspwm. It’s simple and has just enough features to make it good. + +![][9] + +As for a tip? Would it be rude to say **watch my videos on i3**? Probably. My best tip for anyone wanting to get into i3 (or any tiling window manager, really), is to **try it in a VM first**. Get it installed and start to customize. Don’t give up when you hit the first problem; push through and make it yours. + +The best part about i3 and other window managers is that you can customize them in an infinite number of ways. Linux fans love to claim that Linux is all about customization, but **until you’ve used a window manager, you’ve never really experienced that freedom**. + +**Q. For someone who switched from Arch to Fedora, what would you suggest for someone deciding between the two?** + +![arch fedora illustration][10] + +**A:****Try both. I preach this all the time**, but the distro I use should make no difference on the distro you choose. I have a hardware setup that is different than yours, and yours is different than someone else’s. That means that every distro is going to run differently on your hardware. + +As for Arch VS. Fedora, the big difference comes down to package managers and versioning of software. **Arch will have slightly newer software than Fedora**, and it has the AUR. Fedora is a more traditional release-based distro, but it still has newer software than something like Debian. + +Getting Started With FedoraCollection of useful tutorials for new Fedora users.![][11]It's FOSSAbhishek Prakash![][12] + +So, choosing between them really comes down to answering two questions: **do you need the latest software and do you need the AUR? This is why I say try both** because you need to experience the AUR before you can decide if you like it or not. + +But mostly, **Fedora is easier to use, and I think it’s slightly more stable than Arch**, which is why I've chosen it as my daily driver. + +**Q. What are your thoughts on “the year of Linux desktop” for 2023?** + +![year of linux desktop][13] + +**A:** 2022 was the year of the Linux Desktop. Last year was the year when Linux made it, and it’s all because of the Steam Deck. Linux is never going to compete with Windows in tems of market share. But it arrived last year as a consumer product for the first time (unless you count Android, which I do not). + +I think 2023 will just be a continuation of that. Slow and steady growth. That’s where it’s at. Anyone wanting an explosion of people using Linux on the Desktop is and always has been asking for disappointment. + +**Q. With a blog, YouTube channel, podcast, and writing, how do you manage your time or remain productive?** + +![the linux cast pc setup][14] + +**A: Todo lists and a bullet journal**. I’ve found that if I keep a list of things I have to do, I will get them done. And I ensure that I spend plenty of time doing things for fun and spending time away from my computer. If all I do is work, I get burned out, so really, it’s all about **ensuring that there is a balance there**. + +**Q. What do you do in your spare time?** **A:****Fanfiction and reading books** mostly. I read a ton. I also enjoy watching sports. I’m a **Philadelphia Eagles fan**, a fan of the Golden State Warriors, and I’m an alumnus of Michigan State University, so I cheer for them when it comes to college sports. + +![book sports illustration][15] + +I also spend a terrible amount of time on YouTube. I’m slowly getting this down to a reasonable amount of time, but in the past, I’d definitely spend more time there than I should. + +**Q. How do you see the future as a Linux content creator?** + +**A:** Change is inevitable, but predicting it is hard. I think **we’re going to see more Linux in the world, and that makes me happy as a Linux content creator**. Over the last two years, I’ve seen many people create their own Linux channels and I think that’s great. The more people cover Linux on YouTube and the web in general, the better. + +Obviously, the big thing for all of us in the next year or so is the **continued transition to Wayland**. Most big DEs have gone to it now, which is great. Now it’s going to be the turn of the window manager. We’ll see how all that plays out. + +I also think we’ll see **more and more immutable distros out there, like Silverblue and OpenSuse’s Micro**. That seems to be where Linux is heading, which should make things very interesting for everyone, content creator or not. + +**Q. Is there a message you would like to give our readers who aim to work in the Linux/Open-Source space as a content creators?** + +![message to readers illustration][16] + +**A:** The hardest part is starting. **Don’t let dreams of being DistroTube, Chris Titus, or The Linux Experiment stop you from continuing once you start**. If you start making videos, those first few months or even years can be rough, especially if you look at those big guys and compare your subscriber count to theirs. It isn’t a competition. + +The thing that I’ve learned if I’ve learned anything, is that **consistency in posting is the best thing you can do**. Post on a predictable schedule (I did every day for a long time, but two or three times a week will work too). The more you post, the better you’ll be (though don’t do more than one a day). + +And finally, **don’t do it if you’re not having fun doing it**. Not many YouTubers can make this a full-time job, so if you’re doing it for the money, then you shouldn’t do it. Being able to be that successful is very much like winning the lottery; it probably isn’t going to happen. So do it for fun. Do it on a schedule that you can keep up long term and still keep it fun. **Make content that you enjoy**, because then others will enjoy it too. If you remember to keep it fun, the viewers will come. + +> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/interview-matthew-weber/ + +作者:[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/content/images/size/w2000/2023/01/interview-with-the-linux-cast.png +[2]: https://www.youtube.com/@TheLinuxCast +[3]: https://news.itsfoss.com/content/images/2023/01/thelinuxcast.jpg +[4]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png +[5]: https://itsfoss.com/content/images/wordpress/2022/02/privacy-tools-ft.jpg +[6]: https://news.itsfoss.com/content/images/2023/01/youtube-illustration-1.png +[7]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[8]: https://news.itsfoss.com/content/images/2022/12/interview-with-mirko-brombin.png +[9]: https://news.itsfoss.com/content/images/2023/01/linux-i3wm--1-.png +[10]: https://news.itsfoss.com/content/images/2023/01/arch-fedora-illustration-1.png +[11]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png +[12]: https://itsfoss.com/content/images/2023/01/fedora-tutorials.png +[13]: https://news.itsfoss.com/content/images/2023/01/year-of-linux-desktop-2023.png +[14]: https://news.itsfoss.com/content/images/2023/01/linux-cast-setup.png +[15]: https://news.itsfoss.com/content/images/2023/01/sports-book-hobby.png +[16]: https://news.itsfoss.com/content/images/2023/01/message-to-readers.png From a90c95d9fc046b8b4a65ba21681d8623c127989a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:56:58 +0800 Subject: [PATCH 2666/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230117.3=20=E2=AD=90=EF=B8=8F=20A=20ChatGPT=20GNOM?= =?UTF-8?q?E=20Extension=20is=20in=20Development=20for=20Linux=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Extension is in Development for Linux Users.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md diff --git a/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md new file mode 100644 index 0000000000..23d6d3974d --- /dev/null +++ b/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -0,0 +1,79 @@ +[#]: subject: "A ChatGPT GNOME Extension is in Development for Linux Users" +[#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A ChatGPT GNOME Extension is in Development for Linux Users +====== + +AI-powered GNOME desktop? This extension can make things seem like it. + +![A ChatGPT GNOME Extension is in Development for Linux Users][1] + +[ChatGPT][2] is a popular chatbot that can interact with its users as if they are having a conversation. + +Recently, ChatGPT has been in the news, sometimes for the wrong reasons. + +You see, there are two sides to the ChatGPT saga. In fact, for any artificial intelligence implementation. + +On one side, the potential of this tool has impressed many. But on the other side, it has led to quite a ruckus in the tech world for its abuse/misuse. + +So much so it has led its creator, [OpenAI][3], to develop a tool to detect its use. + +Combatting Academic Dishonesty: OpenAI to Help Detect ChatGPT TextWe’re living in the age of AI already. To not make that worse, the makers of ChatGPT have decided to help detect text generated by the tool.![][4]It's FOSS NewsSourav Rudra![][5] + +Now, I spotted a Reddit thread where a developer mentioned something interesting. + +A developer who goes by the user handle '[HorrorPills][6]' has started working on a **GNOME extension for ChatGPT**. + +This sounds interesting; let's take a look. + +### Work in Progress: Let's Keep an Eye! + +![chatgpt gnome extension][7] + +This is a GNOME desktop extension that adds ChatGPT to the system tray of your desktop. + +In its current form, it is in a **very work-in-progress state**, with basic functionality and a few bugs here and there. + +As [noted][8] by the developer: + +You will need an **existing ChatGPT account** to use this extension and your keyboard to navigate around it because the mouse cursor implementation is quite buggy. + +Moreover, **support for GNOME 43 is also quite patchy**, with a temporary fix being provided and added to the to-do list in the development of this extension. + +If you like, you can **give this extension a try**. It's available via its [GitHub repo][9], with all the instructions and files required to run it. + +The developer has also [said][10] that they will be making this available on the **GNOME extensions**[website][11] when the extension is more stable. + +Furthermore, they have also [hinted][12] at a possible **KDE Plasma implementation** in the future. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/chatgpt-gnome-extension.png +[2]: https://chat.openai.com +[3]: https://openai.com +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/2023/01/openai-to-detect-chatgpt-text.png +[6]: https://github.com/HorrorPills +[7]: https://news.itsfoss.com/content/images/2023/01/ChatGPT_GNOME_Ext.jpg +[8]: https://www.reddit.com/r/linux/comments/10ay23v/comment/j46yp15/ +[9]: https://github.com/HorrorPills/ChatGPT-Gnome-Desktop-Extension +[10]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j4al4cg/ +[11]: https://extensions.gnome.org +[12]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j48uofo/ From ad4cf57f4e45ca2654fe7722259787f2c10acb05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:57:20 +0800 Subject: [PATCH 2667/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230118.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?KDE=20Plasma=205.27=20Top=20New=20Features=20and=20Release=20De?= =?UTF-8?q?tails.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lasma 5.27 Top New Features and Release Details.md | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md diff --git a/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md b/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md new file mode 100644 index 0000000000..0179989fc6 --- /dev/null +++ b/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md @@ -0,0 +1,179 @@ +[#]: subject: "KDE Plasma 5.27: Top New Features and Release Details" +[#]: via: "https://www.debugpoint.com/kde-plasma-5-27/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +KDE Plasma 5.27: Top New Features and Release Details +====== + +**The list of impressive features and enhancements of the KDE Plasma 5.27 desktop is arriving in February.** + +In a way, KDE Plasma 5.27 is a milestone release. + +Firstly, it is the final LTS release of the Plasma 5 version and the last instalment of the Plasma 5 series. Initial porting work has already started for Plasma 6 series, which would be based on Qt 6 version. + +Release number-wise, it is the 29th version of the KDE Plasma desktop, followed by the [prior plasma 5.26 release][1]. + +Visible feature-wise, it’s of moderate size. However, the bug fixes, code refactoring, cleanup, and optimization are significant. Most are not visible on the deck, but you can feel the changes when using this fluid desktop. + +Before I walk you through the key features, here’s the schedule. + +- **Beta:** Jan 19, 2023 +- **KDE Plasma 5.27 Final release:** Feb 14, 2023 + +![KDE Plasma 5.27 dev edition][2] + +### KDE Plasma 5.27: Best New Features + +#### Plasma Workspace + +A brand new app welcomes you to Plasma desktop from now on. It was a good idea to add this app to Plasma. It will give you some initial information about Plasma, setting up online accounts and so on. + +![Plasma Welcome App][3] + +The media controller applet introduces two new layouts in this release. A vertical layout showing album art, song title and artist name. And an icon-only display showing only album art. [MR 2176][4] + +The icon size settings slide in the Appearance is moved under the preview with more descriptive text. Also, the window size is slightly larger to accommodate the overall items. [MR 2213][5] + +![Changes in icon size slide][6] + +KDE Plasma battery monitor will now show the charging, discharging, and fully charged status for non-power supply batteries such as a wireless mouse, and mobile phones when connected to the Plasma desktop. [MR 2210][7] + +Also, the battery monitor stops showing 100% when the battery is fully charged. You can only see the power icon without any text. [MR 2306][8] + +In another change, the battery monitor shows “Estimating…” text when the remaining time is 0. Also, the remaining time calculation is changed to give you accurate hours and minutes remaining to full charge. + +The middle click features are now exposed in the applet UI when available. The features existed for some apps, but the discovery was difficult unless tried. [MR 2205][9] + +![Exposing the middle click options][10] + +In the upcoming Qt6, the GaussianBlur is not available. Hence it has been removed in this version, and FastBlur is now incorporated. This is part of the initial Qt6 porting of the future Plasma 6 release. [MR 2083][11] + +The “do not disturb” applet now shows a clearer message for the duration. Earlier it used to show “Until today”, and it has been changed to “Automatically ends: Today at ….”. [MR 1412][12] + +In KDE Plasma 5.27, you can directly drag the wallpaper from the image list to any other application which accepts images. For example, you can directly drag and drop an image from the wallpaper window to the Gwenview image viewer. This definitely eases up many workflows and should save hassles from going to the folder and opening them. However, the feature is not working in my test, so I can’t show you a demo. [MR 2284][13] + +We all love Krunner, the most excellent launcher ever! In this release, Krunner now searches for the key in any part of the file name in the recent document list. It sorts the result from the best match, starting with the search key in the file name to the bottom. [MR 2273][14] + +Also, when there is no match in any documents in your system, Krunner now prompts a web search with the search key. [MR 2311][15] + +![Krunner is great][16] + +The developers can now prioritise the applet notification by assigning a notification value of 256. Once it is a high priority, the notification becomes part of the top header instead of the menu. [MR 2245][17] + +The Users settings page, fingerprint register, and authentication selection are much more visually attractive with an actual hand image. [MR 2347][18] + +![New Visual cue for fingerprint][19] + +The accessibility of KDE Plasma is now more robust because the Orca screenreader app can read the notifications. It includes the app name and the notification description. [MR 2295][20] + +#### Wayland, Kwin and Plasma desktop + +KDE Plasma 5.27 now supports **high-resolution scrolling** in Wayland, thanks to libinput 1.9 version changes. With this change, you should experience smooth scrolling performance in Chrome and Firefox browsers. I hope this makes it on par with the Windows experience. To this day, I still feel Windows scrolling in the popular browser is very smooth. [MR 3034][21] + +Another Wayland fix in this release is the inclusion of the Wayland implementation of **idle notification protocol**. In the Wayland session, if you become idle, the data can now be consumed by various apps and modules to save power, change the status in messaging apps, etc. [MR 2959][22] + +Wayland session in Plasma desktop also brings content type. This allows Kwin to tweak the display behaviour (direct scanout, variable refresh rate, etc.) based on the content displayed on the screen. So, you should get an optimized session based on whether you are watching a movie, playing games or casually browsing the web. [MR 2467][23] + +KDE Plasma Wayland session now supports **fractional scaling** natively. The upstream Wayland change for this was [merged][24] a few months back in 2022. You should get native resolution options in Wayland sessions. [MR 2598][25] + +If you are a multi-monitor user, you should be glad to know that the settings to manage multiple displays are now easily accessible via the system tray display configuration. + +![Multiple display configuration is now available from system tray][26] + +#### Discover + +Discover now shows a proper message when you are offline that it cannot fetch software information from servers instead of showing a progress bar. [MR 383][27] + +For the past few releases, Discover has been improved for Flatpak management. This release also gets some goodies for Flatpak apps. Firstly, the Flatpak application view now shows more permissions entries that an app needs. A new settings page lists all the installed Flatpak and its permissions. [MR 372][28] + +![Flatpak Permission in Discover][29] + +Secondly, Discover now waits a few moments before checking updates for Flatpak. While it waits, it shows the locally cached Flatpak data. [MR 421][30] + +Thirdly, the Discover home is revamped. Honestly, it was due for a long time. Now it looks far better with the popular apps, editor’s choice and other categories. [MR 398][31] + +![Discover homepage now revamped][32] + +#### Additional updates + +Other key change includes: + +- Plasma 5.27 is based on KDE Framework 5.102 and Qt 5.15.2. +- Transition animation when changing wallpaper. +- The weather applet now shows weather info in overlay mode. +- The location picker in the weather applet now gives you a possible list of locations. +- The network applet now shows 5G connection label and icons when used. +- And hopefully, a new wallpaper as always! + +[_Detailed changelog_][33] _(5.26.5-5.26.90)_ + +### Download + +The BETA of KDE Plasma 5.27 is now out. You can download the ISO file and torrent via the KDE Neon distribution from the below link. Remember, this is a testing copy, and there may be bugs. So use it with caution. + +[Download KDE Neon (testing edition)][34] + +### Wrapping Up + +Overall, the change list is enormous and impossible to cover in one article. It’s amazing to see so many changes pulled up in each release by the KDE team. The KDE Framework and app changes are not part of this article which is also significant. + +The final release is planned on Feb 14, 2023. + +Distro-wise, KDE Plasma 5.27 should be available in Fedora 38 and Ubuntu 23.04 Lunar Lobster within the March-April timeframe. + +So, which one of the features do you choose as your favourite? Let me know in the comment box below. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kde-plasma-5-27/ + +作者:[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/kde-plasma-5-26/ +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/KDE-Plasma-5.27-dev-edition.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Plasma-Welcome-App.jpg +[4]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2176 +[5]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2213 +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Changes-in-icon-size-slide2.jpg +[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2210 +[8]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2306 +[9]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2205 +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Exposing-the-middle-click-options.jpg +[11]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2083 +[12]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1412 +[13]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2284 +[14]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2273 +[15]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2311 +[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Krunner-is-great.jpg +[17]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2245 +[18]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2347 +[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/New-Visual-cue-for-fingerprint.jpg +[20]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2295 +[21]: https://invent.kde.org/plasma/kwin/-/merge_requests/3034 +[22]: https://invent.kde.org/plasma/kwin/-/merge_requests/2959 +[23]: https://invent.kde.org/plasma/kwin/-/merge_requests/2467 +[24]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/143 +[25]: https://invent.kde.org/plasma/kwin/-/merge_requests/2598 +[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/Multiple-display-configuration-is-now-available-from-system-tray.jpg +[27]: https://invent.kde.org/plasma/discover/-/merge_requests/383 +[28]: https://invent.kde.org/plasma/discover/-/merge_requests/372 +[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/Flatpak-Permission-in-Discover.jpg +[30]: https://invent.kde.org/plasma/discover/-/merge_requests/421 +[31]: https://invent.kde.org/plasma/discover/-/merge_requests/398 +[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Discover-homepage-now-revamped.jpg +[33]: https://kde.org/announcements/changelogs/plasma/5/5.26.5-5.26.90/ +[34]: https://files.kde.org/neon/images/testing/current/ From 5073a892f92fa5bdf273e5c8b7a479ec5a4ef335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 29 Jan 2023 00:01:54 +0800 Subject: [PATCH 2668/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230119.0=20=E2=AD=90=EF=B8=8F=20Over=2090%=20Syste?= =?UTF-8?q?ms=20Had=20Flatpak=20Installed,=20Says=20GNOME's=20Research=20R?= =?UTF-8?q?eport.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pak Installed, Says GNOME's Research Report.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md diff --git a/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md new file mode 100644 index 0000000000..f10d007cab --- /dev/null +++ b/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md @@ -0,0 +1,92 @@ +[#]: subject: "Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report" +[#]: via: "https://news.itsfoss.com/gnome-research-report/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report +====== + +GNOME's survey data reveals some exciting user preferences. Will this influence GNOME's development decisions in the near future? Only time will tell. + +![Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report][1] + +In **August 2022**, GNOME developed [a tool][2] that let users provide anonymous insights about their system configuration, extension, and GNOME-tuned settings. + +This was meant to **help GNOME learn** more about its users' preferences and to make better decisions based on analyzing the data. + +[Allan Day][3], a member of the GNOME design team, shared the collected data in a recent blog post. It contains some interesting insights and findings. + +Let me take you through it. + +### Research Report Findings + +The research report consists of **data from 2,517 users** across varying hardware and software configurations. + +> 📋 This data was procured from people who provided their data to GNOME via the [gnome-info-collect tool][4], and does not represent the whole user base of GNOME. + +Initially, they had received **2,560 responses**, but they had to remove some from the dataset due to them not using a GNOME installation or being on a virtual machine. + +**What does it contain?:** It has anonymized non-sensitive data metrics that show how users were setting up their systems. + +> 💡 This can be of **great use to the GNOME team**, who can now use this data to make design and developmental decisions. + +One such data metric that caught our eye was the **percentage of people using Flatpak** on their GNOME system. + +**Over 90% of systems had Flatpak installed.** + +Of the 2,517 users, a whopping 2,344 users had Flatpak installed on their GNOME system. With 2,102 of them having it fully enabled. + +That is a huge number in such a small data set! 🤯 + +On this, Allan had this to add: + +> Flatpak and Flathub are both important to GNOME’s strategic direction, so it is useful to know the extent of their adoption. This adoption level is also relevant to the design of GNOME’s Software app. + +**Other than that, some key takeaways included:** + +- The most used default web browser was **Mozilla Firefox**. +- The most used distro among the participants with GNOME was **Fedora**. +- **Google** was the account of choice for users using the online account configuration feature. +- **GIMP** was one of the most popular apps installed on GNOME, followed closely by **VLC**. +- **83%** of users had at least one **GNOME extension** enabled. + +I suggest you go through the [research report][5] to get an even more in-depth look. + +### Will This Help Improve the GNOME Experience? + +Collecting this data was to improve the desktop experience by analyzing it and providing it to the design and development teams. + +However, the data collected is still quite limited and may not represent the majority of GNOME users. + +To address that, the blog post mentions: + +> Overall, the data gives some strong hints about which features should be concentrated on by the GNOME project. It also provides evidence about which features shouldn’t be prioritized.It needs to be remembered that, while we have evidence here about some of the decisions that some GNOME users are making, the data doesn’t give us much insight into why they are making the decisions that they are. + +The GNOME team wants to be cautious about making decisions based on this data. And, surveys like these should give them a better understanding of user preferences and focus on what's more important on a fundamental level. + +Of course, it is impossible to cater to every type of user. But, as long as the fundamentals have been taken care of, the desktop experience should eventually improve. + +_💬 What are your thoughts on these findings? Feel free to share your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-research-report/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/flatpak-gnome-research-report.jpg +[2]: https://news.itsfoss.com/gnome-improve-tool/ +[3]: https://twitter.com/allanday +[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ +[5]: https://blogs.gnome.org/aday/2023/01/18/gnome-info-collect-what-we-learned/ From 255fcb09b77c43d99007454af735fd0e919def54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 29 Jan 2023 00:02:21 +0800 Subject: [PATCH 2669/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230119.1=20=E2=AD=90=EF=B8=8F=20GNOME=20Screenshot?= =?UTF-8?q?=20Tool=20Old=20and=20New=20Methods.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... GNOME Screenshot Tool Old and New Methods.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md diff --git a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md new file mode 100644 index 0000000000..3e0c0aa77b --- /dev/null +++ b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -0,0 +1,144 @@ +[#]: subject: "GNOME Screenshot Tool: Old and New Methods" +[#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME Screenshot Tool: Old and New Methods +====== + +**Here are the details about the GNOME Screenshot tool, its usage and how to install and launch them in older and modern methods.** + +![][1] + +In 2022, GNOME changed its default screenshot tool and built the screenshot function as part of the GNOME Shell. It’s not a separate application anymore. + +Earlier, GNOME featured a native GTK app gnome-screenshot via all the major Linux distributions such as Ubuntu and Fedora. However, from [GNOME 42][2] onwards, this has been removed. Hence [Ubuntu 22.04][3] and Fedora 36 onwards, you only get the following new screenshot UI as a default screenshot utility. + +This change fundamentally broke many workflows. Since it is not an executable you can launch separately, you only depend on the keyboard’s print-screen key. And only a shortcut is available via application search. + +Hence, capturing screenshots with a delay in the new GNOME screenshot UI becomes much more challenging. + +Here are some of the ways you can still use the older GNOME Screenshot tool and how to trigger the new screenshot UI manually. + +### GNOME Screenshot Tool: How to install the old GUI + +If you are using Ubuntu 22.04 and above, or any Ubuntu-based distribution with a GNOME desktop, run the following command to install it. + +``` +sudo apt install gnome-screenshot +``` + +And for Fedora users, use the following command. + +``` +sudo dnf install gnome-screenshot +``` + +If you are using a **GNOME desktop in Arch Linux** or Manjaro Linux GNOME, then use the below command to install it. + +``` +pacman -S gnome-desktop +``` + +After installation, launch it via the application menu. + +![GNOME Screenshot (old)][4] + +![GNOME Screenshot main window (old)][5] + +For further customization, you can open Settings and remove the keybinding of Print-Screen from the Shell’s new UI and create a custom keyboard shortcut with the following commands. + +``` +gnome-screenshot --window +gnome-screenshot --area +gnome-screenshot +``` + +### GNOME Screenshot UI: How to manually trigger it via the command line + +The function which executes when you press the Print-Screen key from the keyboard is part of the [GNOME Shell code][6]. Unfortunately, it is protected inside dbus API, and you can not invoke it directly. + +It has been done to make you safe under Wayland so that no arbitrary code gets access to dbus call functions via any script. + +However, this broke many use cases and scripts which people wrote over the years. For example, many users reported [Zoom][7] videoconferencing calls [broke][8] under GNOME-Wayland due to this, which was eventually solved via the below method of turning off the safe mode. + +Let’s see how you can turn it off and trigger the gnome-shell screenshot + +Use caution before using the following steps. Since it may open up your GNOME Shell for arbitrary script access. Make sure you know what you are doing. + +First, you need to open [GNOME looking glass][9] to turn off the safe mode. + +Press `ALT+F`2 and type below: + +``` +lg +``` + +![Launch looking glass][10] + +Select Evaluator at the top, and in the command window, type the following. And hit enter. + +``` +global.context.unsafe_mode = true +``` + +![Turn off safe mode][11] + +You should see a response that it is turned off. + +![Verification][12] + +Now press escape to close the looking glass. And open a terminal prompt. + +And type the following to launch the screenshot tool. + +``` +gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' +``` + +You should see the new GNOME Shell screenshot triggered. + +![Launch new GNOME Shell Screenshot UI from CLI][13] + +If you want to turn it off, open `lg` again and set it to false. + +``` +global.context.unsafe_mode = true +``` + +### Closing Notes + +Usage-wise, you can still use the new screenshot feature via any shell script by turning off the safe mode. But it is not recommended. It’s always better to use the old GNOME Screenshot tool to avoid all the hassles. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ + +作者:[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/2023/01/gnome-sc1-1.jpg +[2]: https://www.debugpoint.com/gnome-42/ +[3]: https://www.debugpoint.com/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-old.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-main-window-old.jpg +[6]: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/screenshot.js#L2210 +[7]: https://www.debugpoint.com/zoom-install-linux-ubuntu-download/ +[8]: https://community.zoom.com/t5/Meetings/Wayland-screen-sharing-broken-with-GNOME-41-on-Fedora-35/m-p/22539 +[9]: https://wiki.gnome.org/Projects/GnomeShell/LookingGlass +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-looking-glass.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Turn-off-safe-mode.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Verification.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-new-GNOME-Shell-Screenshot-UI-from-CLI.jpg From cb119ad82fbfdce0d51b4337f00d3c6bc377521e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 29 Jan 2023 00:14:43 +0800 Subject: [PATCH 2670/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230118.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Beyond=20Bash=209=20Lesser-Known=20Linux=20Shells=20and=20Their?= =?UTF-8?q?=20Capabilities.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...esser-Known Linux Shells and Their Capabilities.md | 346 ++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100644 sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md diff --git a/sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md b/sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md new file mode 100644 index 0000000000..a16da415aa --- /dev/null +++ b/sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md @@ -0,0 +1,346 @@ +[#]: subject: "Beyond Bash: 9 Lesser-Known Linux Shells and Their Capabilities" +[#]: via: "https://itsfoss.com/shells-linux/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Beyond Bash: 9 Lesser-Known Linux Shells and Their Capabilities +====== + +A Shell provides an interface to Linux and Unix-like systems by interpreting commands and acts as an intermediary between the user and the core workings of the operating system. + +Undoubtedly, the **bash shell is the most popular one**, and some users prefer other shells like ZSH, which is the default shell in macOS. But many shells exist other than these popular ones, with different features and use cases. + +In this article, we will take a look at some less popular shells that are actively maintained and provide a different user experience. + +### 1. Fish Shell + +When talking about shells other than bash/zsh, the first name coming to our mind is the fish shell. + +Fish is a **smart, user-friendly command line shell** primarily for UNIX-like operating systems. + +![fish shell][1] + +**Features of Fish Shell** + +- Autosuggestion of commands based on history and completions. +- Supports 24-bit color. +- It supports syntax highlighting, and all features work out of the box. + +**Install Fish** + +Fish is available in the official repos of almost all Linux distributions. In Ubuntu, you can install it by: + +``` +sudo apt install fish +``` + +The version in the Ubuntu repos is a bit old. If you want to install the latest version, you can use the official PPA provided by the team. + +``` +sudo apt-add-repository ppa:fish-shell/release-3 +sudo apt update +sudo apt install fish +``` + +[Fish Shell][2] + +### 2. Nushell + +Nushell is a new type of shell that works in **Linux, macOS, Windows, BSD**, etc. **Nu**, as it’s also called, it takes its philosophy and inspiration from projects like [PowerShell][3], functional programming languages, and modern [CLI][4] tools. + +![nushell][5] + +**Features of Nushell** + +- **Everything is data:** Nu pipelines use structured data so you can safely select, filter, and sort the same way every time. +- **Powerful plugins:** It's easy to extend Nu using a powerful plugin system. +- **Easy to read error messages.** Nu operates on typed data, so it catches bugs that other shells don’t. And when things break, Nu tells you exactly where and why. +- Clean IDE support. + +**Install Nushell** + +If you’re on Ubuntu, you won’t find an apt repository to install Nushell. But you can build it by installing the required dependencies, as per its [instructions on GitHub][6]. + +Fortunately, there is a way to install it on any distro using **Homebrew**. You can refer to our tutorial on [installing and using Homebrew Package Manager on Linux][7]. + +Once you successfully set it up on Linux, you need to type in the following command to install Nushell: + +``` +brew install nushell +``` + +Head to its official website to explore more installation options. + +[Nushell][8] + +### 3. Dune + +The project's creator describes **Dune** as a shell by the beach. Dune is a **fast, useful and pretty shell**, offering a few niche metaprogramming features such as quoting. + +![dune shell][9] + +**Features of Dune Shell** + +- Before entering the interactive mode, Dune executes _the prelude,_ a startup file stored in the home directory. +- Dune's REPL is entirely customizable +- You can define aliases by assigning a variable to a program's name +- Use a macro to write functions that modify your shell's environment and act like commands or programs +- Dune offers an extensive standard library and also provides a pretty interface to see all the functions available in each module. + +**Install Dune Shell** + +Dune shell is available in the Arch Linux repository as **dunesh**. + +For all other users, the Dune shell can be installed with cargo. So first, you need to [install the latest version of rust][10]. If you already have rust installed, ensure you have the latest version and then proceed to install Dune. + +``` +cargo install -f dune +``` + +Once installed, you can access the shell by entering the following: + +``` +dunesh +``` + +[Dune Shell][11] + +### 4. Xonsh + +Xonsh is a **Python-powered, cross-platform shell** and command prompt. It combines Python and bash shell so that you can run Python commands directly in the shell. You can even combine Python and shell commands. + +![xonsh shell][12] + +We had a separate article on Xonsh if you are curious to learn more: + +**Features of Xonsh Shell** + +- The Xonsh language has shell primitives that you are used to from Bash +- Prepare environment variables and arguments in Python and use them in shell commands +- Xontribs is a 3rd-party extension system +- Customizable tab completion, key bindings, color styles +- Rich interface to discover history + +**Installing Xonsh Shell** + +Xonsh is available in the repos of many Linux distributions like Ubuntu, Fedora, etc. So, to install it on Ubuntu, run: + +``` +sudo apt install xonsh +``` + +Xonsh also provides an AppImage package, which can be downloaded from their download page. You may refer to our [AppImage guide][13] if you are new to the file format. + +[Xonsh][14] + +### 5. Hilbish + +Hilbish is an **extensible shell** that is very customizable via the Lua programming language. The shell is aimed at both casual users and power users. + +![hilbish shell][15] + +Features of Hilbish + +- Simple and Easy Scripting +- History and Completion Menus: Provides the user with proper menus for completions and history searching +- Syntax highlighting and hinting are available via the Lua API +- It works on Unix systems and Windows, but on Windows, there may encounter issues. + +**Installing Hilbish** + +Hilbish is not available in the package repositories of Ubuntu. So, you will be building it from the source. + +To install it, you need **Go and task** installed. + +``` +sudo apt install golang-go +sudo snap install task --classic +``` + +Once the dependencies are installed, run the following commands to install Hilbish shell: + +``` +git clone --recursive https://github.com/Rosettea/Hilbish +cd Hilbish +go get -d ./... +``` + +If you want a stable branch, run these commands: + +``` +git checkout $(git describe --tags `git rev-list --tags --max-count=1`) +task build +sudo task install +``` + +[Hilbish][16] + +### 6. Elvish + +Elvish is an expressive programming language and a versatile interactive shell. It runs on Linux, Mac, and Windows. Even if **v1.0** has not been released, it is already suitable for most daily interactive use. + +![elvish shell][17] + +**Features of Elvish** + +- **Powerful Pipelines:** Pipelines in Elvish can carry structured data, not just text. You can stream lists, maps, and even functions through the pipeline. +- **Intuitive Control Structures** +- **Directory History:** Elvish remembers all the directories you have been to. You can access it by pressing `CTRL+L`. +- **Command History** +- **Built-in File Manager:** Accessible by pressing CTRL + N + +**Install Elvish** + +Elvish shell is available in Ubuntu and Arch Linux package managers. So to install it, open a terminal and run: + +``` +sudo apt install elvish +``` + +[Elvish][18] + +### 7. Oh + +According to its developers, Oh is a reimagining of the Unix shell. + +It aims to become a more powerful and robust replacement to modern options while respecting the conventions established by the Unix shell over the last half-century. + +![][19] + +**Features of Oh Shell** + +- First-class channels, pipes, environments, and functions +- Rich return values that work with standard shell constructs +- Support for modularity. +- A simplified set of evaluation and quoting rules. +- A syntax that deviates as little as possible from established conventions; + +**Installing Oh** + +Oh provides a pre-compiled binary. You need to download it from their [official GitHub page][20]. + +You need to give execution permission to the file using the command: + +``` +chmod +x filename +``` + +Now, you can run it by : + +``` +./ +``` + +[Oh][21] + +### 8. Solidity + +Solidity is an interactive shell with lightweight session recording and remote compiler support. When you change the solidity pragma/language, it automatically fetches a matching remote compiler. + +![][22] + +**Features of Solidity** + +- `pragma solidity ` attempts to dynamically load the selected compiler version +- Sessions can be saved and restored using the `.session`  command. +- Settings are saved on exit (not safe when running concurrent shells). +- `$_` is a placeholder for the last known result. +- Special commands are dot-prefixed. Everything else is evaluated as Solidity code. + +**Install Solidity** + +You can install solidity shell through npm. + +[Ensure you have the latest version of nodejs][23] and npm installed, then type the following command: + +``` +npm install -g solidity-shell +``` + +Once installed, run **solidity-shell** to start the session. + +[Solidity Shell][24] + +### 9. Yash + +Yash, or yet another shell is a POSIX-compliant command line shell written in C99 (ISO/IEC 9899:1999). It has features for daily interactive and scripting use. + +![][25] + +**Features of Yash Shell** + +- Global aliases +- Socket redirection, pipeline redirection, and process redirection +- Prompt command and command-not-found handler +- Command line completion with predefined completion scripts for more than 100 commands +- Command line prediction based on command history + +**Installing Yash Shell** + +To install the shell, you need to go to their [GitHub releases][26] page and download the tar file. Now extract the tar file; inside it, you will find an INSTALL file with instructions to install it. + +Typically, you should execute the below command inside the extracted folder. + +``` +./configure && make && sudo make install +``` + +[Yash][27] + +### Honorable Mentions + +- **Ion:** [Ion Shell][28] is a modern system shell written in Rust, primarily for **RedoxOS**. It is still a work in progress, and users should expect syntax changes. +- **Closh:** [Closh][29] is a bash-like shell that combines the best of traditional UNIX shells with the power of [Clojure][30]. It aims to be a modern alternative to bash. This, too, is in the early stages of development. +- **Dash**: [Dash][31] is a POSIX-compliant, fast and lightweight shell from Debian. + +💬 _What do you think about these shells listed? Would you experiment by changing the default shell to some of the options here? What's your favorite one? Share your thoughts in the comments box below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/shells-linux/ + +作者:[Sreenath][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/sreenath/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/content/images/2023/01/fish-shell.png +[2]: https://fishshell.com/ +[3]: https://itsfoss.com/microsoft-open-sources-powershell/ +[4]: https://itsfoss.com/gui-cli-tui/ +[5]: https://itsfoss.com/content/images/2023/01/nushell.png +[6]: https://github.com/nushell/nushell +[7]: https://itsfoss.com/homebrew-linux/ +[8]: https://www.nushell.sh/ +[9]: https://itsfoss.com/content/images/2023/01/dunesh.png +[10]: https://itsfoss.com/install-rust-cargo-ubuntu-linux/ +[11]: https://github.com/adam-mcdaniel/dune +[12]: https://itsfoss.com/content/images/2023/01/xonsh.png +[13]: https://itsfoss.com/use-appimage-linux/ +[14]: https://xon.sh/ +[15]: https://itsfoss.com/content/images/2023/01/hilbish.png +[16]: https://rosettea.github.io/Hilbish/ +[17]: https://itsfoss.com/content/images/2023/01/elvish.png +[18]: https://elv.sh/ +[19]: https://itsfoss.com/content/images/2023/01/oh_Shell.png +[20]: https://github.com/michaelmacinnis/oh#linux +[21]: https://github.com/michaelmacinnis/oh +[22]: https://itsfoss.com/content/images/2023/01/solidity-shell.png +[23]: https://itsfoss.com/install-nodejs-ubuntu/ +[24]: https://github.com/tintinweb/solidity-shell +[25]: https://itsfoss.com/content/images/2023/01/yash.png +[26]: https://github.com/magicant/yash/releases/tag/2.53 +[27]: https://yash.osdn.jp/index.html.en +[28]: https://gitlab.redox-os.org/redox-os/ion +[29]: https://github.com/dundalek/closh +[30]: https://clojure.org/ +[31]: https://linuxhandbook.com/dash-shell/ + From 37659ddca1778602541d7db97c07546a5a677781 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 29 Jan 2023 08:46:39 +0800 Subject: [PATCH 2671/3123] translated --- ...ookStack, an open source Confluence alternative.md | 98 ------------------- ...ookStack, an open source Confluence alternative.md | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 98 deletions(-) delete mode 100644 sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md create mode 100644 translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md diff --git a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md deleted file mode 100644 index 1d79a34124..0000000000 --- a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md +++ /dev/null @@ -1,98 +0,0 @@ -[#]: subject: "Document with BookStack, an open source Confluence alternative" -[#]: via: "https://opensource.com/article/23/1/bookstack-open-source-documentation" -[#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Document with BookStack, an open source Confluence alternative -====== - -BookStack is an open source, web-based documentation system, that allows you to create a structured knowledge store for personal, team, or company use. BookStack focuses on ease-of-use and design to provide an experience suitable for an audience with, potentially, mixed skills in technology. It's built upon the PHP framework Laravel, with MySQL or MariaDB used as a datastore. - -I built BookStack after attempting to find a documentation or wiki system for my workplace. [Confluence][1] was the closest option to suit my requirements but the user-based pricing introduced a barrier. The closed nature of Confluence also raised questions to the longevity of the documentation I'd be building. In the end, I decided to build my own platform to suit my needs. I released it under the MIT license to give back to the open source community that I'd come to love and benefit from over the years. - -### Content hierarchy and organization options - -To keep things familiar and intuitive, BookStack makes use of real-world book terms to describe its organization structure. Documentation content is created as a "Page": - -- Pages belong to a specific "Book". -- Within a Book, Pages can optionally be grouped up into "Chapters". -- As your documentation grows, you can then use "Shelves" to categorize Books, with Books being able to be part of multiple shelves if needed. - -This structure sits at the heart of BookStack, and can often be the love-it-or-hate-it deciding aspect of whether BookStack is suitable for your use case. - -Upon this core hierarchy, BookStack also provides tagging, user favorites, and advanced search capabilities to ensure content remains discoverable. - -### Writing documentation - -The primary method of writing documentation in BookStack is through the use of its what-you-see-is-what-you-get (WYSIWYG) editor, which makes use of the open source [Tiny][2] project. This editor provides a range of content formats including: - -- Various header levels -- Code blocks -- Collapsible blocks -- Tables -- Images -- Links -- iFrame embeds -- Alert callouts -- Bullet, numbered and tasks lists -- Drawings (through intregration with the open source [diagrams.net][3]) - -If you prefer [Markdown][4], you can use the built-in Markdown editor, which provides a live preview and supports the same feature set as the WYSIWYG editor. If permission allows, you can even jump between these editor options depending on the page you're editing. - -### How your data is stored - -Documentation is stored within a [MySQL or MariaDB][5] database in a relatively simple HTML format, in addition to the original Markdown content if Markdown was used. A lot of design and development decisions have been made to keep this HTML format simplistic. It uses plain standard HTML elements where possible, to ensure raw documentation content remains open and portable. - -Uploaded images, attachments, and created drawings are saved on the local filesystem but can optionally be stored in an s3-compatible datastore like the open source [MinIO][6]. - -To keep your content accessible, there are built-in options to export content as PDF, HTML, plain text, or Markdown. For external consumption, there's a HTTP REST API and a webhook system. In terms of extension, a "logical theme system" allows running of custom PHP code upon a wide range of system events. - -### Ready for business - -BookStack comes with a range of features to support business environments. Support for a range of authentication options are built-in, including SAML2, OpenID Connect, and LDAP allowing easy single-sign-on usage with platforms such as [KeyCloak][7]. MFA options are available and can be mandated based upon role. An audit log provides full visibility of modification activities across an instance. - -A full role-based permission system provides administrators full control over create, view, update, and delete actions of system content. This allows per-role system defaults, with options to set custom permissions on a per-hierarchy item basis. - -### A community of support - -After being active for over 7 years, the community for BookStack has grown with various avenues for discussion and support. We now have: - -- [Our documentation site][8] -- [Video guides on YouTube][9] -- [A subreddit][10] -- [An active GitHub issues list][11] -- [Paid-for business support][12] - -If you want to play with BookStack, you can try it out [on our demo site][13]. To learn how to set up your own instance, visit the [installation page of our documentation][14]. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/bookstack-open-source-documentation - -作者:[Dan Brown][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/ssddanbrown -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/20/9/open-source-alternatives-confluence -[2]: https://github.com/tinymce/ -[3]: https://www.diagrams.net/ -[4]: https://opensource.com/article/19/9/introduction-markdown -[5]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet -[6]: https://github.com/minio/ -[7]: https://www.keycloak.org/ -[8]: https://www.bookstackapp.com/docs/ -[9]: https://www.youtube.com/c/BookStackApp -[10]: https://www.reddit.com/r/bookstack -[11]: https://github.com/BookStackApp/BookStack/issues -[12]: https://www.bookstackapp.com/support -[13]: https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site -[14]: https://www.bookstackapp.com/docs/admin/installation/ diff --git a/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md new file mode 100644 index 0000000000..741c8ca683 --- /dev/null +++ b/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md @@ -0,0 +1,98 @@ +[#]: subject: "Document with BookStack, an open source Confluence alternative" +[#]: via: "https://opensource.com/article/23/1/bookstack-open-source-documentation" +[#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 BookStack 写文档,一个开源的 Confluence 替代品 +====== + +BookStack 是一个开源的、基于网络的文档系统,它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计,以提供适合具有潜在的混合技术技能的受众的体验。它建立在 PHP 框架 Laravel 之上,使用 MySQL 或 MariaDB 作为数据存储。 + +在尝试为我的工作场所寻找文档或 wiki 系统后,我构建了 BookStack。[Confluence][1] 是最符合我要求的选项,但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后,我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它,以回馈我多年来喜爱并从中受益的开源社区。 + +### 内容层次和组织选项 + +为了保持熟悉和直观,BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建“页”: + +- 页属于一个特定的“书”。 +- 在一本书中,页可以选择性地被分组为“章节”。 +- 随着文档的增长,你可以使用“书架”来对“书”进行分类,如果需要,“书”可以成为多个书架的一部分。 + +这种结构是 BookStack 的核心,而且往往是决定 BookStack 是否适合你的使用情况的爱与恨的方面。 + +在这个核心层次上,BookStack 还提供了标签、用户收藏夹和高级搜索功能,以确保内容可被发现。 + +### 编写文档 + +在 BookStack 中编写文档的主要方法是通过使用其所见即所得(WYSIWYG)编辑器,它利用了开源的 [Tiny][2] 项目。这个编辑器提供了一系列的内容格式,包括: + +- 各种标题级别 +- 代码块 +- 可折叠的块 +- 表格 +- 图片 +- 链接 +- iFrame 嵌入 +- 提醒呼出 +- 项目符、编号和任务列表 +- 绘图(通过与开源 [diagrams.net][3] 的整合) + +如果你喜欢 [Markdown][4],你可以使用内置的 Markdown 编辑器,它提供实时预览并支持与所见即所得编辑器相同的功能集。如果权限允许,你甚至可以根据你所编辑的页面,在这些编辑器选项之间跳转。 + +### 你的数据是如何存储的 + +文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB][5] 数据库中,如果使用了 Markdown,除了原始的 Markdown 内容外。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。 + +上传的图片、附件和创建的图纸被保存在本地文件系统中,但也可以选择存储在一个与 s3 兼容的数据存储中,比如开源的 [MinIO][6]。 + +为了保持你的内容可访问性,有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部消费,有一个 HTTP REST API 和一个 webhook 系统。在扩展方面,一个“逻辑主题系统”允许在广泛的系统事件中运行自定义的 PHP 代码。 + +### 为业务做好准备 + +BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,允许使用 [KeyCloak][7] 等平台轻松实现单点登录。MFA 选项是可用的,并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。 + +一个完全基于角色的权限系统为管理员提供了对系统内容的创建、查看、更新和删除操作的完全控制。这允许每个角色的系统默认值,以及在每个层次项目基础上设置自定义权限的选项。 + +### 一个支持的社区 + +经过 7 年多的活跃,BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有: + +- [我们的文档站点][8] +- [YouTube 上的视频指南][9] +- [一个 subreddit][10] +- [一个活跃的 GitHub 问题列表][11] +- [付费业务支持][12] + +如果你想玩玩 BookStack,你可以[在我们的演示网站][13]试试。要了解如何设置你自己的实例,请访问[我们文档的安装页面][14]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/bookstack-open-source-documentation + +作者:[Dan Brown][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/ssddanbrown +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/9/open-source-alternatives-confluence +[2]: https://github.com/tinymce/ +[3]: https://www.diagrams.net/ +[4]: https://opensource.com/article/19/9/introduction-markdown +[5]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet +[6]: https://github.com/minio/ +[7]: https://www.keycloak.org/ +[8]: https://www.bookstackapp.com/docs/ +[9]: https://www.youtube.com/c/BookStackApp +[10]: https://www.reddit.com/r/bookstack +[11]: https://github.com/BookStackApp/BookStack/issues +[12]: https://www.bookstackapp.com/support +[13]: https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site +[14]: https://www.bookstackapp.com/docs/admin/installation/ From 99b30c80ce0f770ee33ccc7a67abf75e9363adf0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 29 Jan 2023 08:51:49 +0800 Subject: [PATCH 2672/3123] translating --- ...️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md index 1446699a97..66564fd179 100644 --- a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md +++ b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/fedora-media-writer/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From c46a4d669601000f2496c66e7d9a3943b652bb92 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 29 Jan 2023 09:32:59 +0800 Subject: [PATCH 2673/3123] =?UTF-8?q?Rename=20sources/tech/20230116.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Kodi=2020.0=20Nexus=20Update=20Includes=20?= =?UTF-8?q?Support=20for=20AV1=20Video=20and=20Steam=20Deck=20Controller.m?= =?UTF-8?q?d=20to=20sources/news/20230116.1=20=E2=AD=90=EF=B8=8F=20Kodi=20?= =?UTF-8?q?20.0=20Nexus=20Update=20Includes=20Support=20for=20AV1=20Video?= =?UTF-8?q?=20and=20Steam=20Deck=20Controller.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Update Includes Support for AV1 Video and Steam Deck Controller.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md (100%) diff --git a/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md similarity index 100% rename from sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md rename to sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md From 6dd8a7c0c97d09a7dea5f6e63e294c0d2caa25e2 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 29 Jan 2023 09:35:44 +0800 Subject: [PATCH 2674/3123] =?UTF-8?q?Rename=20sources/tech/20230117.3=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=20ChatGPT=20GNOME=20Extension=20is=20in?= =?UTF-8?q?=20Development=20for=20Linux=20Users.md=20to=20sources/news/202?= =?UTF-8?q?30117.3=20=E2=AD=90=EF=B8=8F=20A=20ChatGPT=20GNOME=20Extension?= =?UTF-8?q?=20is=20in=20Development=20for=20Linux=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ A ChatGPT GNOME Extension is in Development for Linux Users.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md (100%) diff --git a/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md similarity index 100% rename from sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md rename to sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md From 9c5d18c73ffa630a4cba1d926e7d3dbac8212ccc Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 29 Jan 2023 09:36:21 +0800 Subject: [PATCH 2675/3123] =?UTF-8?q?Rename=20sources/tech/20230118.0=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20KDE=20Plasma=205.27=20To?= =?UTF-8?q?p=20New=20Features=20and=20Release=20Details.md=20to=20sources/?= =?UTF-8?q?news/20230118.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20KDE=20?= =?UTF-8?q?Plasma=205.27=20Top=20New=20Features=20and=20Release=20Details.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md (100%) diff --git a/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md b/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md similarity index 100% rename from sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md rename to sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md From d363ea8a4091fed72baf0cdc9328a9830155564f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 29 Jan 2023 14:09:57 +0800 Subject: [PATCH 2676/3123] RP @yzuowei https://linux.cn/article-15489-1.html --- ...️ 10 universal steps for open source code review.md | 142 ++++++++++++++++++ ...️ 10 universal steps for open source code review.md | 137 ----------------- 2 files changed, 142 insertions(+), 137 deletions(-) create mode 100644 published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md delete mode 100644 translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md diff --git a/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md new file mode 100644 index 0000000000..4fba5a0966 --- /dev/null +++ b/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -0,0 +1,142 @@ +[#]: subject: "10 universal steps for open source code review" +[#]: via: "https://opensource.com/article/22/10/code-review" +[#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15489-1.html" + +开源代码评审的十个通用步骤 +====== + +![][0] + +> 只要你遵循这些通用流程,代码评审并不可怕。 + +你是否需要在你还没有完全理解整个项目时就对代码进行评审?抑或你避开了评审,以免让你看起来不知道如何进行。 + +本篇文章想要告诉你一个更好的方法。代码评审code review 并不需要你知道所有事情。实际上,就我个人经验而言,这种情况非常普遍。 + +我还记得作为实习生加入 红帽Red Hat 的时候,被要求参与代码评审。我们当时采取的是 +1 或 -1 的投票系统,而我在一开始的时候常常踌躇于该如何评审。我发现我会问自己,如果我对于一处改动给予了 +1,而别人却投了 -1,我是不是看起来很蠢? + +如果你对一处改动投了 +1,而别人投了 -1,这又意味着什么呢?答案是不意味任何事!你可能只是漏掉了一处别人注意到的细节。这不意味着世界末日。这也是为什么我们会用投票系统。正如同所有开源项目一样,代码合并是一项协同工作。 + +最近,我接到了太多的代码评审工作,以至于我几乎做不过来。我同时也注意到,参与评审的贡献者数量正在稳步减少。 + +出于这个原因,我想要写一篇文章阐述我对代码评审的个人观点。在这篇文章里,我会分享一些诀窍与技巧。我将会向你展示几个用来问自己的问题,以及在评审代码时需要注意的一些地方。 + +### 代码评审的目的是什么? + +你是否曾写过一个非常简单的补丁?你认为它是如此微不足道,不需要审查。或许你直接就合并了它。直到晚些时候,你意识到你犯了个错误,一个明显的或是愚蠢的错误,比如错误的缩进,比如几行重复的代码而不是调用函数(是的,这些都是经验之谈!)。 + +如果有其他人来审查代码,就会发现这些东西。 + +代码评审的一个目的便是为你带来一双新的眼睛,从新的视角看待你要尝试解决的问题。这种新的背景也正是为什么代码评审至关重要。 + +你可能认为你必须是一个语言专家,才能审查别人的代码、项目,或两者。让我来告诉你一个所有代码评审者都想跟你说的秘密吧:大错特错!你并不需要完全理解该项目或者编程语言,就可以为一个改动提供全新的视角。下面,我将向你展示代码评审的通用流程。 + +### 代码评审的通用流程 + +这是我的代码评审流程,拆分成了几个要点。这个流程包含了我会问自己的一些问题,以帮助我专注于代码的变化以及其后果。你不需要严格依照这个顺序来进行评审。如果有任何原因导致你无法执行其中的某一步,跳过那一步就好。 + +#### 1、理解改动,它想要解决的问题,以及为什么要这么做 + +为什么需要改动的解释以及任何相关背景都应该被放在 提交commit 信息里。如果没有,请要求提供,并请投 -1 直到相关信息被提供。 + +改动想解决的问题需要被解决吗?它是项目应当关注的问题,还是与项目完全无关? + +#### 2、你会如何实现解决方案?它会不一样吗? + +在这个时候,你应该已经知道代码改动是为了什么。换做是你会怎么做?在进一步对改动进行细节评审前,先思考这个问题。如果你想出了一个不一样的解决方案,并且你认为你的方案更好,在评审中提出来。你不需要投 -1;去问问作者为什么没有往那个方向走,看看这次讨论会把你们带向何方。 + +#### 3、运行有改动和没有改动的代码 + +我通常会在代码中设置几个断点,运行代码并检查新代码是如何与其余部分互动的。 + +如果你无法运行整个代码,试着将带有新代码的函数复制到一个新的本地文件,模拟输入数据,然后运行。这在你不知道怎么运行整个项目,或者无法接触到运行所需的特殊环境时很有帮助。 + +#### 4、新代码会破坏任何东西吗? + +我是说,任何东西。想一想可能的后果。 + +以一个新的命令行选项为例,它会总是被目标所接受吗? + +是否存在这样一种情况,使得新选项无法被接受或是会与其他东西起冲突? + +或许新代码是导入了新的东西。那么这个新的库,以及可能的新的依赖关系,能够在老版本或者项目的运行系统中被找到吗? + +安全方面呢?新的依赖足够安全吗?你至少可以在网上快速地搜索一下。还有,注意一下控制台日志里的警告。有的时候在同一个库里也可以找到更安全的函数。 + +#### 5、新代码是否有效? + +你刚刚确认了被提出的解决方案大概是正确的。现在该检查代码本身了。你需要关注代码的有效性和必要性。 + +检查新代码的风格。它与项目的代码风格相匹配吗?任何开源项目都(应该)有一份文档告知(新)贡献者项目所遵循的风格和优秀实践。 + +比如说,OpenStack 社区的所有项目都有一份 HACKING.rst 文件。你经常也能找到一份[新贡献者指南][1]包含所有必须知道的信息。 + +#### 6、确认所有新增的变量和导入都被使用 + +你正在评审的代码常常已经过多次迭代,有的时候代码的最终版本与初始版已迥然不同。所以我们很容易忘记一些在历史版本中加入的变量与引用。自动化检测通常会用到 lint 工具,类似 Python 中的 [flake8][12]。 + +(LCTT 译注:[lint][5] 指编程中用来发现代码潜在错误和约束代码风格的工具,起源于 C 语言编程中的静态分析工具 `lint`。“lint” 本意为衣服上积累的绒毛与灰尘,“lint” 的取名寓意则在于捕捉编程时产生的“绒毛与灰尘”) + +(LCTT 校注:我建议,“Lint” 工具可以翻译为 “代码清理” 或 “代码清洁” 工具。) + +你可以在不声明新变量的情况下重写代码吗?通常情况下你可以,但问题是这样是否更好。这会带来什么益处吗?我们的目标不是要创造尽可能多的单行代码,而是写出高效且易读的代码。 + +#### 7、新的函数和方法是否必要? + +项目里的别的地方是否存在可以被复用的功能类似的函数?确保避免重新发明轮子以及重新实现已经被定义的逻辑永远都是值得的。 + +#### 8、有单元测试吗? + +如果补丁增加了新的函数或者在函数内添加了新的逻辑,它也应该附带对应的单元测试。新函数的作者总是比别人更适合写该函数的单元测试。 + +#### 9. 验证重构 + +如果这次提交对现有代码进行了重构(它可能重命名了某个变量,或者是改变了的变量的作用域,或者是通过加减参数来改变函数的足迹,又或者是删去了某个东西),问一问你自己: + +- 这个可以被删除吗?它会影响到稳定分支吗? +- 所有出现的地方都删掉了吗? + +你可以利用 [grep 命令][3] 来查找。你不会相信有多少次我投 -1 就是因为这个。这是一个任何人都会犯的简单错误,也正因如此任何人都可以发现它。 + +提交的所有者很容易忽略这些事情,这完全可以理解。我也犯过很多次这种错误。我最终发现问题的根源在于我太急于提出评审,以至于我忘记了对仓库进行整体检查。 + +除了对项目仓库的检查外,检查其他代码用户也十分必要。如果有别的项目导入了这个项目,它们可能也需要进行重构。在 OpenStack 社区中,我们有对应的工具来查询别的社区项目。 + +#### 10、项目文档是否需要做出更改? + +你可以再一次使用 [grep 命令][4] 来检查在项目文档中是否提到了相关的代码改动。用常识来判断这次改动是否需要被收入文档以告知最终用户,还是只是一个不会影响用户体验的内部变化。 + +#### 额外提示:考虑周到 + +当你在评审完新代码后提出建议或评论时,要考虑周到,反馈准确,描述详尽。如果有你不理解的地方就发出提问。如果你认为代码存在错误,解释你的理由。记住,如果作者不知道什么地方出了问题,他们就无法修复它。 + +### 最后几句 + +唯一的坏评审是没有评审。通过评审和投票,你提供了你的观点并为此投票。没有人指望你来做出最终决定(除非你是核心维护者),但是投票系统允许你提供你的观点和意见。相信我,补丁所有者会很高兴你这么做了的。 + +你能想到别的要点来给出好的评审吗?你是否有我不知道的特殊技巧?在评论中分享它们吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/code-review + +作者:[Martin Kopec][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/martin-kopec +[b]: https://github.com/lkxed +[1]: https://docs.openstack.org/tempest/latest/contributor/contributing.html +[2]: https://opensource.com/article/19/5/python-flake8 +[3]: https://opensource.com/downloads/grep-cheat-sheet +[4]: https://www.redhat.com/sysadmin/how-to-use-grep +[5]: https://codedocs.org/what-is/lint-software +[0]: https://img.linux.net.cn/data/attachment/album/202301/29/140840wsbypukbubp69buv.jpg \ No newline at end of file diff --git a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md deleted file mode 100644 index 26e1f558c7..0000000000 --- a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ /dev/null @@ -1,137 +0,0 @@ -[#]: subject: "10 universal steps for open source code review" -[#]: via: "https://opensource.com/article/22/10/code-review" -[#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -开源代码评审的十个通用步骤 -====== - -只要你遵循这些通用流程,代码评审code review并不可怕。 - -你是否曾需要对代码进行评审,但你还没有完全理解整个项目?或许你避开去评审从而避免你看起来像是什么都不知道的洋相。 - -本篇文章想要告诉你一个更好的方法。代码评审并不需要你知道所有事情。实际上,就我个人经验而言,这种情况非常普遍。 - -我还记得在我刚加入红帽Red Hat做实习的时候,我被要求参与代码评审。我们当时采取的是 +1 或 -1 的投票系统,而我在一开始的时候常常踌躇该如何评审。我发现我总是问自己对于一处改动是否应该给予 +1 当别人已经投了 -1,我会看起来很蠢吗? - -如果你对一处改动投了 +1, 但是别人又投了 -1,这又意味着什么呢?这不意味任何事!你可能只是漏掉了一处细节而别人又恰好注意到了。这不意味着世界末日。这也是为什么我们会用投票系统。正如同所有开源项目一样,代码合并是一项协同工作。 - -最近,我接到了太多的代码评审工作以至于我难以维持进度。我同时也注意到了参与评审的贡献者数量正在稳步减少。 - -基于这个原因,我想要写一篇文章阐述我对代码评审的个人观点。在这篇文章里,我会分享一些诀窍与技巧。我会向你展示几个问题你可以用来自问自答,我也会为在评审代码时需要注意什么提供一些想法。 - -### 代码评审的目的是什么? - -你是否曾写过一个非常简单的补丁?补丁太过琐碎以至于你认为评审是多余的?或许你马上进行了合并。直到晚些时候,你意识到你犯了个错误,一个明显或是愚蠢的错误,或是错误缩进,或是几行重复的代码在本可以调用函数的地方(是的,这些都是经验之谈!)。 - -一段代码本可以交予他人评审并及时发现这些问题。 - -代码评审的一个目的便是为你在尝试解决的问题带来一双全新的视角。新开阔的视野也正是为什么代码评审至关重要。 - -你可能会认为评审别人的代码需要你是一名专家,或是编程语言专家,或是项目专家,或两者兼具。让我来告诉你一个所有代码评审者都想跟你说的秘密吧:大错特错!你并不需要完全理解项目或者编程语言来为改动提供全新视角。我将向你展示代码评审的通用流程。 - -### 代码评审的通用流程 - -这是我的代码评审流程被拆分成几个要点。这个流程包含了我会问我自己的一些问题,以帮助我专注于代码的变化以及其后果。你不需要严格依照顺序来进行评审。如果有任何原因导致你无法执行其中的某一步,跳过那一步就好。 - -### 1. 理解改动,问改动想要解决的问题,以及为什么要解决这个问题 - -为什么需要改动的解释以及任何相关背景都应该被放在提交commit信息里。如果没有,要求相关信息并请随意投 -1 直到相关信息被提供。 - -改动想解决的问题需要被解决吗?它是项目应当聚焦的问题,还是与项目完全无关? - -### 2. 你会如何实现解决方案?它会不一样吗? - -在这个时候,你应该已经知道代码改动是为了什么。换做是你会怎么做?在进一步对改动进行细节评审前思考这个问题。如果你想出了一个不一样的解法,并且你认为你的解法更好,在评审中提出来。你不需要投 -1;去问问作者为什么没有往那个方向走,看看这次讨论会把你们带向何方。 - -### 3. 运行有改变和无改变的代码 - -我通常会在代码中设置几个断点,运行代码并检查新代码是如何与其余部分互动的。 - -如果你无法运行整个代码,试着将带有新代码的函数复制到一个新的本地文件,模拟输入数据,然后运行。这在你不知道怎么运行整个项目或者无法接触到运行所需的特殊环境时很有帮助。 - -### 4. 新代码会破坏任何东西吗? - -我是说,任何东西。想一想可能的后果。 - -以一个新的命令行选项为例,它会总是被目标所接受吗? - -是否存在这样一种情况使得新选项无法被接受或是会与其他东西起冲突? - -或许新代码是一个新的导入。那么这个新的库,很可能也是新的依赖,能够在老版本或者项目的运行系统中被找到吗? - -安全方面呢?新的依赖足够安全吗?你至少可以在网上快速地搜索一下。还有,注意一下控制台日志里的警告。有的时候在同样的库里也可以找到更安全的方法。 - -### 5. 新代码是否有效? - -你刚刚确认了被提出的解决方案大概是正确的。现在该检查代码本身了。你需要关注代码的有效性和必要性。 - -检查新代码的风格。它与项目的代码风格相匹配吗?任何开源项目都(应该)有一份文档告知(新)贡献者项目所遵循的风格和优秀实践。 - -比如说,OpenStack 社区的所有项目都有一份 HACKING.rst 文件。你经常也能找到一份[新贡献者指南][1]包含所有必须知道的信息。 - -### 6. 确认所有新增的变量和导入都被使用 - -你正在评审的代码常常已经过多次迭代,有的时候代码的最终版本与初始版已迥然不同。所以我们很容易忘记一些在历史版本中加入的变量与引用。自动化检测通常会用到 lint 工具,类似 Python 中的 [flake8][12]。 - -(LCTT 译注:[lint][5] 指编程中用来发现代码潜在错误和约束代码风格的工具,起源于 C 语言编程中的静态分析工具 lint。lint 本意为衣服上积累的绒毛与灰尘,lint 的取名寓意则在于捕捉编程时产生的“绒毛与灰尘”) - -你可以在不声明新变量的情况下重写代码吗?通常情况下你可以,但问题是这样是否更好。这会带来什么益处吗?我们的目标不是多写花式的一行代码,而是写出高效且易读的代码。 - -### 7. 新的函数和方法是否必要? - -项目里的别的地方是否存在可以被复用的功能类似的函数?确保避免重新发明轮子以及重新实现已经被定义的逻辑永远都是值得的。 - -### 8. 有单元测试吗? - -如果补丁增加了新的函数或者在函数内添加了新的逻辑,它也应该附带对应的单元测试。新函数的作者总是比别人更适合写该函数的单元测试。 - -### 9. 验证重构 - -如果这次提交对现有代码进行了重构(它可能重命名了某个变量,或者是改变了的变量的作用域,或者是通过加减参数来改变函数的足迹,又或者是删去了某个东西),问一问你自己: - -- 这个可以被删除吗?它会影响到稳定分支吗? -- 所有出现的地方都删掉了吗? - -你可以利用 [grep 命令][3]来查找。你不会相信有多少次我投 -1 就是因为这个。这是一个任何人都会犯的错误,也正因如此任何人都可以发现它。 - -提交的所有者很容易忽略这些事情,这完全可以理解。我也犯过很多次这种错误。我最终发现问题的根源在于我太急于提出评审,以至于我忘记了对仓库进行整体检查。 - -除了对项目仓库的检查外,检查其他代码用户也十分必要。如果有别的项目导入了这个项目,它们可能也需要进行重构。在 OpenStack 社区中,我们有对应的工具来查询别的社区项目。 - -### 10. 项目文档是否需要做出更改? - -你可以再一次使用 [grep 命令][4]来检查在项目文档中是否提到了相关的代码改动。用常识来判断这次改动是否需要被收入文档以告知最终用户,还是只是一个不会影响用户体验的内部变化。 - -### 额外提示:考虑周到 - -当你在评审完新代码后提出建议或评论时,要考虑周到,反馈准确,描述详尽。如果有你不理解的地方就发出提问。如果你认为代码存在错误,解释你的理由。记住,作者无法修复他不知道的漏洞。 - -### 最后几句 - -唯一的坏评审是没有评审。通过评审和投票,你提供了你的观点并为此发声。没有人指望你来做出最终决定(除非你是核心维护者),但是投票系统允许你提供你的观点和意见。相信我,补丁所有者会很高兴你这么做了的。 - -你能想到别的要点来给出好的评审吗?你是否有我不知道的特殊技巧?在评论中分享它们吧! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/code-review - -作者:[Martin Kopec][a] -选题:[lkxed][b] -译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/martin-kopec -[b]: https://github.com/lkxed -[1]: https://docs.openstack.org/tempest/latest/contributor/contributing.html -[2]: https://opensource.com/article/19/5/python-flake8 -[3]: https://opensource.com/downloads/grep-cheat-sheet -[4]: https://www.redhat.com/sysadmin/how-to-use-grep -[5]: https://codedocs.org/what-is/lint-software From 736d70a30b8cd0115aed010dcfdae1f0dd940550 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 29 Jan 2023 15:16:18 +0800 Subject: [PATCH 2677/3123] ATRP @wxy https://linux.cn/article-15490-1.html --- ...pak Installed, Says GNOME's Research Report.md | 92 +++++++++++++++++++ ...pak Installed, Says GNOME's Research Report.md | 92 ------------------- 2 files changed, 92 insertions(+), 92 deletions(-) create mode 100644 published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md delete mode 100644 sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md diff --git a/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md new file mode 100644 index 0000000000..a88bb4dc53 --- /dev/null +++ b/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md @@ -0,0 +1,92 @@ +[#]: subject: "Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report" +[#]: via: "https://news.itsfoss.com/gnome-research-report/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15490-1.html" + +GNOME 的研究报告称 90% 以上的系统都安装了 Flatpak +====== + +> GNOME 的调查数据揭示了一些令人感兴趣的用户偏好。这是否会影响 GNOME 在不久的将来的开发决策?让我们拭目以待。 + +![GNOME 的研究报告说,超过 90% 的系统安装了 Flatpak][1] + +在 2022 年 8 月,GNOME 开发了 [一个工具][2],让用户可以匿名提供关于他们的系统配置、扩展和 GNOME 调整的设置。 + +这是为了**帮助 GNOME 深入了解**用户的偏好,并在分析数据的基础上做出更好的决定。 + +GNOME 设计团队的成员 [Allan Day][3] 在最近的一篇博文中分享了收集的数据。它包含了一些有趣的洞察和发现。 + +让我带你了解一下: + +### 研究报告的发现 + +本研究报告包括来自 2,517 个用户的数据,这些用户的硬件和软件配置各不相同。 + +> 📋 这些数据是使用 [gnome-info-collect 工具][4] 从向 GNOME 提供数据的人那里获得的,并不代表 GNOME 的全部用户。 + +最初,他们收到了 2,560 个回复,但由于一些数据没有来自使用 GNOME 的系统或来自虚拟机,他们不得不从数据集中删除一些。 + +它包含什么?它含有匿名的非敏感数据指标,显示了用户是如何设置他们的系统的。 + +> 💡 这对 GNOME 团队来说可以有很大的用处,他们现在可以使用这些数据来做出设计和开发的决定。 + +其中一个引起我们注意的数据指标是在他们的 GNOME 系统上使用 Flatpak 的人的百分比。 + +**超过 90% 的系统都安装了 Flatpak。** + +在 2517 个用户中,有高达 2344 个用户在他们的 GNOME 系统上安装了 Flatpak。其中 2,102 人完全启用了它。 + +在这样一个小的数据集中,这是一个巨大的数字! 🤯 + +关于这一点,Allan 有这样的补充说明: + +> Flatpak 和 Flathub 对 GNOME 的战略方向至关重要,所以了解它们的采用程度是很有用的。这种采用程度也与 GNOME 的软件应用设计有关。 + +除此之外,一些关键的收获包括: + +- 最常用的默认网页浏览器是 Mozilla Firefox。 +- 在使用 GNOME 的人中,最常用的发行版是 Fedora。 +- 谷歌是配置了在线账户的用户的首选账户。 +- GIMP 是安装在 GNOME 上最受欢迎的应用程序之一,紧随其后的是 VLC。 +- 83% 的用户至少启用了一个 GNOME 扩展。 + +我建议你通过该 [研究报告][5] 来获得更深入的了解。 + +### 这是否有助于改善 GNOME 的体验? + +收集这些数据是为了通过分析和提供给设计和开发团队来改善桌面体验。 + +然而,收集到的数据仍然相当有限,可能无法代表大多数的 GNOME 用户。 + +为了解决这个问题,博文中提到: + +> 总的来说,这些数据对于 GNOME 项目应该专注于哪些功能给出了一些有力的提示。它也提供了关于哪些功能不应该被优先考虑的证据。需要记住的是,虽然我们在这里有关于一些 GNOME 用户做出的决定的证据,但这些数据并没有让我们深入了解为什么他们会做出这样的决定。 + +GNOME 团队希望在根据这些数据做出决定时保持谨慎。而且,像这样的调查应该能让他们更好地了解用户的偏好,并把重点放在基本层面上更重要的东西上。 + +当然,不可能照顾到每一种类型的用户。但是,只要基本面得到了照顾,桌面体验最终应该得到改善。 + +你对这些发现有什么看法?欢迎在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-research-report/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/flatpak-gnome-research-report.jpg +[2]: https://news.itsfoss.com/gnome-improve-tool/ +[3]: https://twitter.com/allanday +[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ +[5]: https://blogs.gnome.org/aday/2023/01/18/gnome-info-collect-what-we-learned/ diff --git a/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md deleted file mode 100644 index f10d007cab..0000000000 --- a/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: "Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report" -[#]: via: "https://news.itsfoss.com/gnome-research-report/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report -====== - -GNOME's survey data reveals some exciting user preferences. Will this influence GNOME's development decisions in the near future? Only time will tell. - -![Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report][1] - -In **August 2022**, GNOME developed [a tool][2] that let users provide anonymous insights about their system configuration, extension, and GNOME-tuned settings. - -This was meant to **help GNOME learn** more about its users' preferences and to make better decisions based on analyzing the data. - -[Allan Day][3], a member of the GNOME design team, shared the collected data in a recent blog post. It contains some interesting insights and findings. - -Let me take you through it. - -### Research Report Findings - -The research report consists of **data from 2,517 users** across varying hardware and software configurations. - -> 📋 This data was procured from people who provided their data to GNOME via the [gnome-info-collect tool][4], and does not represent the whole user base of GNOME. - -Initially, they had received **2,560 responses**, but they had to remove some from the dataset due to them not using a GNOME installation or being on a virtual machine. - -**What does it contain?:** It has anonymized non-sensitive data metrics that show how users were setting up their systems. - -> 💡 This can be of **great use to the GNOME team**, who can now use this data to make design and developmental decisions. - -One such data metric that caught our eye was the **percentage of people using Flatpak** on their GNOME system. - -**Over 90% of systems had Flatpak installed.** - -Of the 2,517 users, a whopping 2,344 users had Flatpak installed on their GNOME system. With 2,102 of them having it fully enabled. - -That is a huge number in such a small data set! 🤯 - -On this, Allan had this to add: - -> Flatpak and Flathub are both important to GNOME’s strategic direction, so it is useful to know the extent of their adoption. This adoption level is also relevant to the design of GNOME’s Software app. - -**Other than that, some key takeaways included:** - -- The most used default web browser was **Mozilla Firefox**. -- The most used distro among the participants with GNOME was **Fedora**. -- **Google** was the account of choice for users using the online account configuration feature. -- **GIMP** was one of the most popular apps installed on GNOME, followed closely by **VLC**. -- **83%** of users had at least one **GNOME extension** enabled. - -I suggest you go through the [research report][5] to get an even more in-depth look. - -### Will This Help Improve the GNOME Experience? - -Collecting this data was to improve the desktop experience by analyzing it and providing it to the design and development teams. - -However, the data collected is still quite limited and may not represent the majority of GNOME users. - -To address that, the blog post mentions: - -> Overall, the data gives some strong hints about which features should be concentrated on by the GNOME project. It also provides evidence about which features shouldn’t be prioritized.It needs to be remembered that, while we have evidence here about some of the decisions that some GNOME users are making, the data doesn’t give us much insight into why they are making the decisions that they are. - -The GNOME team wants to be cautious about making decisions based on this data. And, surveys like these should give them a better understanding of user preferences and focus on what's more important on a fundamental level. - -Of course, it is impossible to cater to every type of user. But, as long as the fundamentals have been taken care of, the desktop experience should eventually improve. - -_💬 What are your thoughts on these findings? Feel free to share your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-research-report/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/flatpak-gnome-research-report.jpg -[2]: https://news.itsfoss.com/gnome-improve-tool/ -[3]: https://twitter.com/allanday -[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ -[5]: https://blogs.gnome.org/aday/2023/01/18/gnome-info-collect-what-we-learned/ From 96ef902725949c5a247692553a7497efd47bc473 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 30 Jan 2023 08:49:44 +0800 Subject: [PATCH 2678/3123] translated --- ...ver the power of the Linux SpaceFM file manager.md | 93 ------------------- ...ver the power of the Linux SpaceFM file manager.md | 93 +++++++++++++++++++ 2 files changed, 93 insertions(+), 93 deletions(-) delete mode 100644 sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md create mode 100644 translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md diff --git a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md deleted file mode 100644 index faa89b2497..0000000000 --- a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: subject: "Discover the power of the Linux SpaceFM file manager" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-spacefm" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Discover the power of the Linux SpaceFM file manager -====== - -SpaceFM is a tabbed file manager for Linux using the GTK toolkit, so it fits right in on desktops like [GNOME][1], [Mate][2], [Cinnamon][3], and others. SpaceFM also features a built-in device manager system, so it's particularly good for window managers, like [Fluxbox][4] or [fvwm][5], which typically don't include a graphical device manager. If you're happy with the file managers on Linux, but you want to try one that's a little bit different in design, SpaceFM is worth a look. - -### Install SpaceFM - -On Linux, you're likely to find **SpaceFM** in your distribution's software repository. On Fedora, Mageia, OpenMandriva, and similar: - -``` -$ sudo dnf install spacefm -``` - -On Debian and Debian-based systems: - -``` -$ sudo apt install spacefm -``` - -### Panels - -I don't know why SpaceFM is called SpaceFM, but it could be because it makes a concerted effort to let you use every bit of space in its window for something useful. By default, SpaceFM is actually pretty simple, standard-issue file manager. It has a single panel listing your files, a toolbar, and a menu bar. - -![SpaceFM is typical in design. At first.][6] - -All the "usual" rules apply. - -- **Double-click** to open a directory or to open a file in its default application. -- **Right-click** for a contextual menu providing lots of standard options (copy, paste, rename, view properties, create a new folder, and so on). - -The way SpaceFM sets itself apart, though, is its panel system. SpaceFM displays one panel by default. That's the big file window listing your files. But it can have up to four panel views, plus a few bonus panels for some specific tasks. - -### Opening a new panel - -Instead of seeing one directory in your file manager, you can see two. To bring up another directory in its own pane, press **Ctrl+2** or go to the **View** menu and select **Panel 2**. Alternatively, click the second green dot icon from the left in the menu panel. - -With two panels, you can move files from one directory to another without opening a new file manager window, or you can browse two directories to compare their contents. - -But why settle for two panels? Maybe you'd rather see _three_ directories at once. To bring up a third directory in a dedicated pane, press **Ctrl+3** or go to the **View** menu and select **Panel 3**. Alternatively, click the third green dot icon from the left in the menu panel. This panel appears at the bottom of the SpaceFM window. - -With three panels open, you can move files between several directories, or sort files from a common "dumping ground" (like your Desktop or Downloads folder) into specific directories. - -Of course, once you've tried three panels you'll probably find yourself itching for a fourth. To open a fourth directory in its own pane, press **Ctrl+4** or go to the **View** menu and select **Panel 4**. Alternatively, click the fourth green dot icon from the left in the menu panel. This one opens next to Panel 3, splitting your SpaceFM window into even quarters. - -![SpaceFM can have up to four panels.][7] - -What about a _fifth_ panel? Well, actually SpaceFM stops at four panels. If you really do want a fifth panel, you have to open a new SpaceFM window. However, there are still more panels, used for information other than file listings, to explore. - -### Special panels - -The **View** menu reveals that in addition to file panels, there are additionally task-specific panels you can choose to display. This includes: - -- **Task manager**: Lists ongoing file manager processes. This isn't a general-purpose task manager, so to set nice values or detect a zombie apocalypse of undead PIDs, [htop or top][8] is still your utility of choice. -- **Bookmarks**: Links to common folders, such as Desktop, Documents, Downloads, and any location you want to keep handy. -- **Devices**: USB thumb drives and remote file systems. -- **File tree**: A view of your file system in order of directory inheritance. - -These panels open on the left side of SpaceFM, but they do stack. You can have bookmarks, devices, tasks, and a file tree open at once, although it helps to have a very tall SpaceFM window. - -### Make space for SpaceFM - -SpaceFM is a configurable multi-tasking file manager. It maximizes the information you can build into a single window, and it lets you decide what's important, and when. This article has focused on the panels of SpaceFM because those are, at least in my view, the most unique aspect of the application. However, there's a lot more to SpaceFM, including plugins, preferences, a design mode, keyboard shortcuts, and customization. This isn't a small application, even though it is a lightweight one. Spend some time with SpaceFM, because you never know what you'll discover. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-spacefm - -作者:[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/article/19/12/gnome-linux-desktop -[2]: https://opensource.com/article/19/12/mate-linux-desktop -[3]: https://opensource.com/article/19/12/cinnamon-linux-desktop -[4]: https://opensource.com/article/19/12/fluxbox-linux-desktop -[5]: https://opensource.com/article/19/12/fvwm-linux-desktop -[6]: https://opensource.com/sites/default/files/2022-10/spacefm.webp -[7]: https://opensource.com/sites/default/files/2022-10/spacefm-panels.webp -[8]: https://opensource.com/life/16/2/open-source-tools-system-monitoring diff --git a/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md new file mode 100644 index 0000000000..000421e242 --- /dev/null +++ b/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md @@ -0,0 +1,93 @@ +[#]: subject: "Discover the power of the Linux SpaceFM file manager" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-spacefm" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +发现 Linux SpaceFM 文件管理器的强大 +====== + +SpaceFM 是一个使用 GTK 工具包的 Linux 的标签式文件管理器,所以它很适合在 [GNOME][1]、[Mate][2]、[Cinnamon][3] 等的桌面上使用。SpaceFM 还具有一个内置的设备管理器系统,所以它特别适合于窗口管理器,像 [Fluxbox][4] 或 [fvwm][5],它们通常不包括一个图形设备管理器。如果你对 Linux 上的文件管理器满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 + +### 安装 SpaceFM + +在 Linux 上,你可能会在你的发行版的仓库中找到 **SpaceFM**。在 Fedora、Mageia、OpenMandriva 和类似的软件中: + +``` +$ sudo dnf install spacefm +``` + +在 Debian 和基于 Debian 的系统上: + +``` +$ sudo apt install spacefm +``` + +### 面板 + +我不知道为什么 SpaceFM 被称为 SpaceFM,但可能是因为它做出了一致的努力,让你把窗口中的每一点空间都用来做有用的事情。默认情况下,SpaceFM 实际上是相当简单的、标准的文件管理器。它有一个列出你的文件的面板,一个工具栏,和一个菜单栏。 + +![SpaceFM is typical in design. At first.][6] + +所有的“常规”规则都适用。 + +- **双击**打开一个目录或在其默认的应用中打开一个文件。 +- **右键点击**可获得一个上下文菜单,提供许多标准选项(复制、粘贴、重命名、查看属性、创建新文件夹,等等)。 + +不过,SpaceFM 使自己与众不同的方式是它的面板系统。SpaceFM 默认显示一个面板。这就是列出你的文件的大文件窗口。但它最多可以有四个面板视图,再加上一些用于某些特定任务的额外面板。 + +### 打开一个新的面板 + +在你的文件管理器中,你可以看到两个目录,而不是看到一个目录。要在自己的窗格中调出另一个目录,按 **Ctrl+2** 或进入**视图**菜单,选择 **Panel 2**。或者,点击菜单面板中从左开始的第二个绿点图标。 + +有了两个面板,你可以把文件从一个目录移到另一个目录,而不需要打开一个新的文件管理器窗口,或者你可以浏览两个目录来比较其内容。 + +但为什么要满足于两个面板呢?也许你更想一次看到三个目录。要在一个专门的窗格中调出第三个目录,请按 **Ctrl+3** 或进入**查看**菜单,选择 **Panel 3**。或者,点击菜单面板中从左开始的第三个绿点图标。这个面板出现在 SpaceFM 窗口的底部。 + +打开三个面板后,你可以在几个目录之间移动文件,或将文件从一个公共的“垃圾场”(如你的桌面或下载文件夹)分类到特定的目录。 + +当然,当你尝试了三个面板,你可能会发现自己很想拥有第四个面板。要在自己的窗格中打开第四个目录,按 **Ctrl+4** 或进入**查看**菜单,选择 **Panel 4**。或者,点击菜单面板中从左开始的第四个绿点图标。这个会在面板 3 旁边打开,并将你的 SpaceFM 窗口分成四份。 + +![SpaceFM can have up to four panels.][7] + +那么_第五个_面板呢?好吧,实际上 SpaceFM 仅有四个面板。如果你真的想有第五个面板,你必须打开一个新的 SpaceFM 窗口。然而,仍有更多的面板,用于文件列表以外的信息,可供探索。 + +### 特殊面板 + +在**查看**菜单中可以看到,除了文件面板外,还有一些特定的任务面板可以选择显示。这包括: + +- **任务管理器**:列出正在进行的文件管理器进程。这不是一个通用的任务管理器,所以要设置 nice 值或检测僵尸 PID,[htop 或 top][8] 仍然是你选择的工具。 +- **书签**:常用文件夹的链接,如桌面、文档、下载和任何你想保持方便的位置。 +- **设备**:USB 驱动器和远程文件系统。 +- **文件树**:按照目录继承顺序查看文件系统。 + +这些面板在 SpaceFM 的左侧打开,但它们是堆叠的。你可以同时打开书签、设备、任务和文件树,尽管它会有一个非常高的 SpaceFM 窗口。 + +### 为 SpaceFM 腾出空间 + +SpaceFM 是一个可配置的多任务文件管理器。它最大限度地增加了你可以在一个窗口中展示的信息,并让你决定什么是重要的,以及什么时候重要。本文重点介绍了 SpaceFM 的面板,因为至少在我看来,这些是该应用最独特的方面。然而,SpaceFM 还有很多东西,包括插件、首选项、设计模式、键盘快捷键和自定义。这不是一个小的应用,尽管它是一个轻量级的。花些时间在 SpaceFM 上,因为你永远不知道你会发现什么。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-spacefm + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/12/gnome-linux-desktop +[2]: https://opensource.com/article/19/12/mate-linux-desktop +[3]: https://opensource.com/article/19/12/cinnamon-linux-desktop +[4]: https://opensource.com/article/19/12/fluxbox-linux-desktop +[5]: https://opensource.com/article/19/12/fvwm-linux-desktop +[6]: https://opensource.com/sites/default/files/2022-10/spacefm.webp +[7]: https://opensource.com/sites/default/files/2022-10/spacefm-panels.webp +[8]: https://opensource.com/life/16/2/open-source-tools-system-monitoring From ac74e8061e732d479a9b14033e383a977bbe1d69 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 30 Jan 2023 08:55:16 +0800 Subject: [PATCH 2679/3123] translating --- ...odern, Lightweight Code Editor With a Brand New GUI Framework.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md index b60dd11627..274d7430a2 100644 --- a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/ecode-editor/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f713f468860928b64e4d9a61b60558ebd1b48cff Mon Sep 17 00:00:00 2001 From: ZZJ Date: Mon, 30 Jan 2023 10:04:01 +0800 Subject: [PATCH 2680/3123] =?UTF-8?q?Update=2020230117.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Top=2010=20Linux=20Distributions?= =?UTF-8?q?=20for=20Servers=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit translating --- ...117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md index 25f0e785d0..c570871d5d 100644 --- a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md +++ b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: " Veryzzj" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4030c5725cefe934aed443b898246f31932649dc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 30 Jan 2023 11:11:19 +0800 Subject: [PATCH 2681/3123] RP @yzuowei https://linux.cn/article-15492-1.html --- ...y need to know about open source to get started.md | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) rename {translated/talk => published}/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md (55%) diff --git a/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md similarity index 55% rename from translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md rename to published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md index 08b3af812a..64cc2ea564 100644 --- a/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md +++ b/published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -3,42 +3,44 @@ [#]: author: "Katie Edwards https://opensource.com/users/kaedward" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15492-1.html" 关于开源,你需要知道些什么 ====== -一份用简单直白的语句来解释开源的新手指南。 +![][0] -所以你想要(或需要)知道[开源][1]的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词。 +> 一份用简单直白的语句来解释开源的新手指南。 -我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2],数据科学,软件的各种输入输出……直到一年后的今天,我依然感到难以消化。 +要是你想要(或需要)知道 [开源][1] 的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词,因为这个词总是被人不断的提起。 -但这正是为什么我要写这篇文章。我想要让开源变得不那么吓人。毕竟,开源的背后是支持型学习社区——这个社区对所有人开放,无论你是否有技术经验。 +我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2]、数据科学、软件的来龙去脉……直到一年后的今天,我依然感到难以消化。 -我会从基本中的基本开始。 +但这正是为什么我要写这篇文章。我想要让开源变得不那么令人生畏。毕竟,开源的中心是一个支持型的学习社区 —— 这个社区对所有人开放,无论你是否有技术经验。 + +我会从基础中的基础开始。 ### 什么是开源? -在此声明,开源的行业内定义可以在[开放源代码促进会(Open Source Initiative)][3]的网站找到。 +在此声明,业界对开源的定义可以在 [开放源代码促进会][3]Open Source Initiative 的网站找到。 -然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者做任何你想用它做的事。 +然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者用它做任何你想做的事。 这里面有些是真的,而有些则属于常见的误解,其中之一就是关于花费。 #### 开源只要 0 元 -这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目的营利公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利? +这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目营利的公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利? -拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以推销它的产品管理,数据储存,以及客户支持。 +拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以从产品的管理,数据的储存,以及对客户的支持中获利。 -很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户调试软件并为客户解答疑惑。数据储存也并非免费,这片领域也能为公司带来收入。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。 +很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户解决软件问题并为客户解答疑惑。数据储存也并非免费,这也是能为公司带来收入的另一领域。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。 -- **开源代码是公开的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改并重新发布。 -- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和所有人对其修改。 -- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有[合适技能][4]的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。 +- **开源代码是公开访问的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改和重新发布。 +- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整该项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和其他所有人对其修改。 +- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有 [合适技能][4] 的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。 比如说,你对一个目标是对地球上所有的鸟类进行分类的项目感兴趣。你恰好很喜欢恐龙,特别是那些最终进化成如今的鸟类的恐龙。于是,你为所有最像鸟类的恐龙提交了条目。项目所有者在看到这些后可能会想:“不错,这都是些很棒的史前鸟类。”但他们也可能会认为:“嗯……这些恐龙看起来像鸟,但他们还不是鸟,因此他们不属于鸟类百科。” @@ -46,32 +48,32 @@ ### 为什么选择开源呢? -那么,在众多贡献之后(如果能贡献完的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价? +那么,在众多贡献之后(如果这些贡献完成的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价? 这个问题有很多回答。我在这里给出了一些: - 创业是艰难的,如果你开发的项目展现不出赚钱的潜力则尤其如此。召集一群志同道合的人,没有承诺也没有对薪水的期望,相对而言要简单得多。 -- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目,极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。 +- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目、极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。 - 围绕各种规模的开源项目形成的团体促进了支持型社区的成形,在这里贡献者与旁观者都可以练习他们的技能,改进他们常用的软件,互教互学,并为发声被听到而感到振奋。很多开源社区本质上就是高度集中的线上爱好者俱乐部。 ### 我该如何参与呢? 现在你可能会问你自己:“我知道了这些信息又可以做些什么呢?我能贡献开源项目吗?如果我不够优秀的话该怎么办?” -不要害怕——即便是[新手][5]也欢迎贡献开源项目。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被鸟类百科所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里一起幸福地生活)。 +不要害怕 —— 即便是 [新手][5] 也欢迎为开源项目做贡献。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被“鸟类百科”所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里愉快地共存)。 -你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目需要“民生”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。 +你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目“需要举全村之力”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。 -简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎被保证了一个会张开双臂欢迎你的社区。 +简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎可以保证会被张开双臂欢迎。 ### 现在就加入开源吧 还是不确定应该从哪开始?这里有些能帮助你的想法和资源: - - [Up For Grabs][7] 是一份“专门为新贡献者策划任务的开源项目清单。”这里很适合新贡献者们来寻找简单的初次 PR 机会,这次机会也能让你探寻你更喜欢哪种贡献。 -- 来看看 GitHub 上的这份[新手友好项目][8]列表吧。 -- 如果你还是缺乏灵感,考虑一下[贡献][9]红帽(Red Hat)的开放设计系统 [PatternFly][10](或者一起飞)。 +- 来看看 GitHub 上的这份 [新手友好项目][8] 列表吧。 +- 如果你还是缺乏灵感,考虑一下[贡献][9](或一起“飞”) 红帽Red Hat的开放设计系统 [PatternFly][10]。 +- LCTT 夹带私货:你还可以通过参与 LCTT 的翻译工作来首次体验如何参与开源,这几乎简单到你只需要懂一点点英文和一些热情,本文就是由开源贡献者翻译贡献而成的。入口在此: https://linux.cn/lctt/ -------------------------------------------------------------------------------- @@ -80,7 +82,7 @@ via: https://opensource.com/article/22/11/get-started-open-source 作者:[Katie Edwards][a] 选题:[lkxed][b] 译者:[yzuowei](https://github.com/yzuowei) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -96,3 +98,4 @@ via: https://opensource.com/article/22/11/get-started-open-source [8]: https://github.com/MunGell/awesome-for-beginners [9]: https://github.com/patternfly [10]: https://www.patternfly.org/v4/get-started/design +[11]: https://img.linux.net.cn/data/attachment/album/202301/30/110936lhhk216wajijdh22.jpg \ No newline at end of file From 3fd23b4b766e64426c53834447afe1188f099107 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:04:04 +0800 Subject: [PATCH 2682/3123] translating --- ... A ChatGPT GNOME Extension is in Development for Linux Users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md index 23d6d3974d..13eaff0d53 100644 --- a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md +++ b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2a0821642f1d248381f5085fee7531c36bdeb430 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 30 Jan 2023 15:43:39 +0800 Subject: [PATCH 2683/3123] ATRP @wxy https://linux.cn/article-15493-1.html --- ...rminal a Retro Look Using this Neat Application.md | 107 ++++++++++++++++ ...rminal a Retro Look Using this Neat Application.md | 115 ------------------ 2 files changed, 107 insertions(+), 115 deletions(-) create mode 100644 published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md delete mode 100644 sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md diff --git a/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md new file mode 100644 index 0000000000..97ae7325bf --- /dev/null +++ b/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md @@ -0,0 +1,107 @@ +[#]: subject: "Give your Terminal a Retro Look Using this Neat Application" +[#]: via: "https://www.debugpoint.com/cool-retro-terminal/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15493-1.html" + +给你的终端一个复古的外观 +====== + +> 想让你的终端有一个复古的外观?本指南将帮助你在 Linux 发行版中安装 Cool Retro Terminal 应用程序。 + +![酷炫复古终端][1] + +你有没有想过如何在你的 Linux 终端中模仿那些老式 CRT 显示器的外观? + +那些 CRT 屏幕有自己的粉丝。如果你把苹果 2 或 IBM 3278 终端之类与今天的 4K 显示器显示相比较,它们的外观真的很酷。我并不是说 4K 显示器不好,但有时传统的显示器会让我们想起那些过去的日子。闲话少说。让我们开始安装这个应用程序。 + +### Cool Retro Terminal + +该应用程序是自由开源的。它被称为 [cool-retro-term][2]。它是轻量级的,有许多自定义选项,有预先设置的配置文件,如 Apple 2 等。它还能在你的终端中提供那些静态噪音和扫描线效果。很酷,不是吗? + +它是用 Qt 构建的,需要 Qt 5.2 或更高版本。如果你使用的是最新的 Linux 发行版,在依赖性方面你应该没问题。 + +![绿色扫描线主题][3] + +### 如何下载和安装 Cool Retro Terminal + +Ubuntu、Linux Mint 和其他基于 Debian 的发行版: + +使用下面的简单命令在你的 Ubuntu 和其他相关发行版中安装这个应用程序: + +``` +sudo apt install cool-retro-term +``` + +Arch Linux: + +这个软件包在 Arch 用户仓库(AUR)中可用。如果你没有启用 AUR,请使用 [本指南][4] 启用它,然后使用以下命令来安装它: + +``` +pacman -S cool-retro-term +``` + +Fedora、RHEL 和其他相关发行版: + +对于 Fedora 和其他相关的 Linux,使用下面的命令来安装这个应用程序: + +``` +sudo dnf install cool-retro-term +``` + +Appimage: + +也有一个 AppImage 格式的独立的可执行程序,你可以直接下载并运行。不需要安装。按照下面的命令来做: + +``` +wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage +chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage +./Cool-Retro-Term-1.1.1-x86_64.AppImage +``` + +注意:在 GitHub 中,没有 1.2.0 以后的版本的 AppImage 构建版。 + +### 配置 + +安装完成后,你可以在应用程序菜单中找到终端应用程序 “Cool Retro Term”。那么,启动该应用程序并享受其中吧。 + +请记住,这覆盖你的 Linux 发行版中的默认控制台/终端应用程序。它是一个独立的控制台应用程序。 + +配置选项可以通过右键菜单访问。 + +上下文菜单给你提供了以下预设。然后你可以通过设置窗口对它们中的每一个进行颜色和外观设置的配置。例如,如果你想要更多的透明度、对比度或更多的噪音、环境光或闪烁。所有这些都可以从下面的设置窗口通过几个选项进行配置。 + +而且,你可以轻松地制作你自己的主题。 + +![Cool Retro Term 中的预装主题][5] + +![设置中的各种效果][6] + +### 总结 + +Cool Retro Terminal 是一个用于 Linux 桌面的老式显示管终端,它可以让你体验到如同坐在复古终端前的感觉。你可能喜欢,也可能不喜欢,而且人们几乎不把它作为日常使用。但它仍然是一个漂亮的终端,可以时不时地体验一下,以摆脱平凡的终端。 + +你喜欢复古的外观吗?你最喜欢的主题是什么?请在下面的评论区告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cool-retro-terminal/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2021/12/cool-retro-terminal-1024x576.jpg +[2]: https://github.com/Swordfish90/cool-retro-term +[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg +[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg diff --git a/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md deleted file mode 100644 index 368c395c73..0000000000 --- a/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md +++ /dev/null @@ -1,115 +0,0 @@ -[#]: subject: "Give your Terminal a Retro Look Using this Neat Application" -[#]: via: "https://www.debugpoint.com/cool-retro-terminal/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Give your Terminal a Retro Look Using this Neat Application -====== - -**Want to give your Terminal a retro look? This guide contains instructions to help you to install Cool Retro Terminal application in all Linux distributions.** - -![Cool Retro Terminal][1] - -Cool Retro Terminal - -Have you ever wondered how you can mimic the look of those old CRT monitors displayed in your Linux terminal? - -Those CRT screens have their own fan base. Like the Apple 2 or the IBM 3278 terminals – they are really cool looking if you compare them to today’s 4K monitor displays. I am not saying 4K is bad, but sometimes legacy displays remind us of those bygone days. Enough of these ramblings. Let’s get started installing the app. - -### Cool Retro Term - -The application is free and open-sourced. And it is called [cool-retro-term][2]. It is lightweight and has many customization options with pre-set profiles, such as Apple 2, etc. It also gives you those static noises and scan-lines effects in your terminal. Cool, isn’t it? - -It is built in Qt and requires Qt 5.2 and higher. If you are using the latest Linux distributions, you should be good in terms of dependencies. - -![Green Scanlines Theme][3] - -Green Scanlines Theme - -### How to Download and Install Cool Retro Terminal - -#### Ubuntu, Linux Mint and other Debian-based distributions - -The following simple command will install this application in your Ubuntu and other related distributions. - -``` -sudo apt install cool-retro-term -``` - -#### Arch Linux - -This package is available in Arch User Repository AUR. If you do not have AUR enabled, enable it using [this guide][4] and then use the following commands to install it. - -``` -pacman -S cool-retro-term -``` - -#### Fedora, RHEL and other related distributions - -For Fedora and other related Linux, use the following command to install this app. - -``` -sudo dnf install cool-retro-term -``` - -#### Appimage - -A self-contained executable as AppImage is also available, which you can just download and run. No installation is required. Follow the below commands to do that. - -``` -wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage -chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage -./Cool-Retro-Term-1.1.1-x86_64.AppImage -``` - -Note: Version 1.2.0 onwards there are no AppImage build in the GitHub. - -### Configurations - -After the installation is finished, you can find the terminal application “Cool Retro Term” in the application menu. So, launch the application and enjoy. - -Remember, this is not overriding your default console/terminal application in your Linux distributions. It is a stand-alone console application. - -The configuration options are available via the Right Click context menu. - -The context menu gives you the following pre-sets. You can then configure each of them for colour, and appearance settings via the settings window. For example, if you want more transparency, contrast or more noise, ambient light or flickering – all of them can be configured from the below settings window via several options. - -And easily you can make your own theme. - -![Pre-loaded Themes in Cool Retro Term][5] - -Pre-loaded Themes in Cool Retro Term - -![Various Effects in Settings][6] - -Various Effects in Settings - -### Summary - -Cool Retro Terminal is an old tube-style terminal for Linux desktops that allows you to experience it as if you are sitting in front of a retro terminal. You may or may not like it, and one hardly uses it for a daily driver. But still, a nice-looking terminal to experience from time to time to get away from the mundane terminal. - -Do you like the retro look? What is your favourite theme? Let me know in the comment section below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/cool-retro-terminal/ - -作者:[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/2021/12/cool-retro-terminal-1024x576.jpg -[2]: https://github.com/Swordfish90/cool-retro-term -[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg -[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ -[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg From 839741e3c09a02c26324bc8a56dd7fb248d5ea67 Mon Sep 17 00:00:00 2001 From: onionstalgia Date: Tue, 31 Jan 2023 00:38:31 +0800 Subject: [PATCH 2684/3123] translated --- ...919 I got my first pull request merged!.md | 94 ------------------- ...919 I got my first pull request merged!.md | 94 +++++++++++++++++++ 2 files changed, 94 insertions(+), 94 deletions(-) delete mode 100644 sources/talk/20220919 I got my first pull request merged!.md create mode 100644 translated/talk/20220919 I got my first pull request merged!.md diff --git a/sources/talk/20220919 I got my first pull request merged!.md b/sources/talk/20220919 I got my first pull request merged!.md deleted file mode 100644 index 5a7350d66e..0000000000 --- a/sources/talk/20220919 I got my first pull request merged!.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "I got my first pull request merged!" -[#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" -[#]: author: "Oluwaseun https://opensource.com/users/jhhornn" -[#]: collector: "lkxed" -[#]: translator: "onionstalgia" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -I got my first pull request merged! -====== -Experience the joy that contributing to open source brings. - -![Dandelion zoomed in][1] - -Image by: Photo by Rob Tiller, CC BY-SA 4.0 - -Words cannot express my joy when I got the notification about the merge below, and I owe it to my current engineering school, [AltSchool Africa][2]. - -![successful merge message][3] - -Before this, I had been introduced to open source many times, told about its importance in the tech space, and even attended open source conferences (e.g., OSCAFest). I had all the instant excitement to start, but imposter syndrome set in on opening GitHub to create something. - -Fast forward to Monday, the 8th of August, 2022, when I watched Bolaji's video on contributing to open source. I felt pumped again, but I wanted to apply what I learned, so I noted some steps. - -The steps: - -1. I made up my mind I was going to contribute to a project. -2. I was focused on a site ([good first issue][4]) to pick my first project from, which I filtered to suit my skill level. I kept opening the next page till I found one. -3. I made sure I was equipped with the required [Git and GitHub][5] knowledge to complete the project. - -### The project - -After long hours searching for projects, I finally found one titled, [Ensure no missing alt attributes][6]. I was to give descriptive alt values to images from the site. Alt values in images help to improve the accessibility of the site such that screen readers can provide a detailed description of the image to, say, a visually impaired person. Easy right? Yes, but if I didn't make up my mind to get the first contribution, I wouldn't find it, and open source would continue to be a myth to me. - -I was still pumped until I discovered it was from [MDN][7]. Wait, MDN? As in Mozilla developer? Will they merge my contribution even with how seemingly easy it looks? [Imposter syndrome][8] set in. - -Upon checking the issue, I saw that people were already contributing. I summoned my courage and started reading about it. Taking my time to read and understand the project and how I needed to approach the issue was another challenge I had to overcome. - -The project is as easy as you try to understand it. - -So, I picked two images to begin with. I gave alt values to them, committed my changes, then made a pull request. The time between when I made the pull request and when I got the approval mail was full of self-doubts. Should I close the pull request? This is MDN. Well, it's not coding... What if I don't get merged? I might never contribute again. All it took to clear all of the doubts were the emails I got from my reviewer below: - -![Email of approved pull request][9] - -![mail showing that pull request has been merged][10] - -![congratulatory mail on contributing and merging of pull request][11] - -I was indeed delighted, and this inspired me to check for more. It gave me the courage I needed to request additional issues to solve. - -![Mail of issue assignment][12] - -### Summary - -A few lessons I'd love you to take home from this article are: - -* Open source is for all. Do you see that typo on that site you just visited? You helping to correct it is a way of contributing. -* No skillset is too small. A basic understanding of HTML was what I needed to contribute. -* Only you can stop yourself from contributing. -* The first contribution is all you need to get the ball rolling. - -I hope you have been able to pick something from my story and apply it today. This is another space I'd like to keep contributing to, so see you in my next article, and happy open sourcing! - -*[This article originally appeared on I got my first Pull Request merged! and is republished with permission.][13]* - -Image by: (Awosise Oluwaseun, CC BY-SA 4.0) - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/9/first-pull-request-merged - -作者:[Oluwaseun][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/jhhornn -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg -[2]: https://www.altschoolafrica.com/ -[3]: https://opensource.com/sites/default/files/2022-09/successfulmerge.png -[4]: https://goodfirstissues.com/ -[5]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models -[6]: https://github.com/mdn/content/issues/19334 -[7]: https://developer.mozilla.org/en-US/ -[8]: https://opensource.com/article/20/9/imposter-syndrome -[9]: https://opensource.com/sites/default/files/2022-09/approved.png -[10]: https://opensource.com/sites/default/files/2022-09/merged_0.png -[11]: https://opensource.com/sites/default/files/2022-09/thanks.png -[12]: https://opensource.com/sites/default/files/2022-09/next.png -[13]: https://dev.to/jhhornn/i-got-my-first-pull-request-merged-3ei9 diff --git a/translated/talk/20220919 I got my first pull request merged!.md b/translated/talk/20220919 I got my first pull request merged!.md new file mode 100644 index 0000000000..caa06c812b --- /dev/null +++ b/translated/talk/20220919 I got my first pull request merged!.md @@ -0,0 +1,94 @@ +[#]: subject: "I got my first pull request merged!" +[#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" +[#]: author: "Oluwaseun https://opensource.com/users/jhhornn" +[#]: collector: "lkxed" +[#]: translator: "onionstalgia " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我的第一个拉取请求被合并了! +====== +> 体验为开源做出贡献的快乐。 + +![Dandelion zoomed in][1] + +图片来自 Rob Tiller, CC BY-SA 4.0 + +难以用言语形容我在收到合并通知(如下图)时的喜悦,当然这要归功于现在我上的工程学校,[AltSchool Africa][2]。 + +![successful merge message][3] + +在此之前,我曾多次接触过开源的概念,了解它在技术领域的重要性,甚至参加过开源会议(比如 OSCAFest)。我曾多次跃跃欲试,但当打开 GitHub 来想创建些东西时,冒名顶替综合症就会冒出来。 + +快进到 2022 年 8 月 8 日星期一。当观看了 Bolaji 为开源做贡献的视频之后,我重新振奋起来。不过,想要把我学到的东西付诸实践,我注意到需要下面几个步骤: + +步骤: + +1. 我要下定决心,做好为一个开源项目做出贡献的心理建设。 +2. 我要根据我的技能水平进行筛选,选择一个站点([一个比较好的议题(issue)][4])来开始我的第一个项目。我不停地往下翻看,直到找到了一个符合心意的项目。 +3. 我要确定自己掌握完成项目所需的 [Git 和 GitHub][5] 知识。 + +### 项目 + +经过长时间查找,我终于找到了一个名为 [确保没有缺失的 alt 属性][6] 的项目。我所要做的,就是为网站上的图片提供描述性的 alt 值。图片的 alt 值有助于提高网站的辅助功能,这样屏幕阅读器就可以向视障人士提供图像的详细描述了。这很简单,对吧?是的,但假如我没有下定决心想要作出贡献,我就不会找到这项目,在我心中开源仍将是个神话。 + +我心潮澎湃,直到发现这个项目是来自[MDN][7]的。等等,MDNMozzila 开发者网络?干和 Mozilla 的开发者一样的事儿?他们会合并我这么小儿科的贡献吗?[莫名顶替综合症 ][8] 又开始了。 + +在检查这个议题时,我看到有人已经在提交贡献了,于是我鼓起勇气开始翻阅项目的内容。阅读和理解这个项目颇花费了我一些时间,而另一个要克服的,就是清楚处理这个议题我要怎么做。 + +这个项目就像你想的那么简单。 + +于是,我挑选了两幅图片着手尝试。我给它们的 alt 属性赋值,提交我的更改,然后发出拉取请求。从提交请求到收到批准邮件的这段时间,我充满了自我怀疑。我要不要关闭拉取请求?这可是 MDN 啊。好吧,这甚至都不算编程...... 如果请求没有被合并怎么办?我恐怕再也不会想为开源做出贡献了。不过,所有的疑虑都在我看到审阅者发来的这些邮件时烟消云散: + +![拉取请求确认邮件][9] + +![拉取请求被合并的通知邮件][10] + +![做出贡献和请求被合并的祝贺邮件][11] + +我喜出望外,这激发了我去检查更多图片的热情,也给了我发请求解决其他议题所需的勇气。 + +![议题分配邮件][12] + +### 总结 + +我希望你能从这篇文章中感受到以下几点: + +* 开源是面向所有人的。你在刚刚访问的那个网站上看到拼写错误了吗?你帮助订正了拼写错误,这就是为开源做出了贡献。 +* 没有任何技能是微不足道的。如您所见,我所做出的贡献,只需要对 HTML 最基本的了解。 +* 能阻止你做出贡献的只有你自己。 +* 要想让雪球滚起来,需要做的就只是提交第一个贡献。 + +我衷心希望您能从我的经历中获得什么,并且今天就付诸实践。这也就是我想贡献的另一个领域,那么,我们下一篇文章见,也祝您开源愉快! + +*[这篇文章是我的第一个拉取请求被合并后的有感而发!并经许可转载。][13]* + +Image by: (Awosise Oluwaseun, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/first-pull-request-merged + +作者:[Oluwaseun][a] +选题:[lkxed][b] +译者:[onionstalgia](https://github.com/onionstalgia) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jhhornn +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg +[2]: https://www.altschoolafrica.com/ +[3]: https://opensource.com/sites/default/files/2022-09/successfulmerge.png +[4]: https://goodfirstissues.com/ +[5]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models +[6]: https://github.com/mdn/content/issues/19334 +[7]: https://developer.mozilla.org/en-US/ +[8]: https://opensource.com/article/20/9/imposter-syndrome +[9]: https://opensource.com/sites/default/files/2022-09/approved.png +[10]: https://opensource.com/sites/default/files/2022-09/merged_0.png +[11]: https://opensource.com/sites/default/files/2022-09/thanks.png +[12]: https://opensource.com/sites/default/files/2022-09/next.png +[13]: https://dev.to/jhhornn/i-got-my-first-pull-request-merged-3ei9 From f326c351269f402331d0813dd9d3ac006045d50f Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 31 Jan 2023 08:53:32 +0800 Subject: [PATCH 2685/3123] translated --- ... Writer World-Class LIVE USB Creator [Tutorial].md | 136 ------------------ ... Writer World-Class LIVE USB Creator [Tutorial].md | 133 +++++++++++++++++ 2 files changed, 133 insertions(+), 136 deletions(-) delete mode 100644 sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md create mode 100644 translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md diff --git a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md deleted file mode 100644 index 66564fd179..0000000000 --- a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md +++ /dev/null @@ -1,136 +0,0 @@ -[#]: subject: "Fedora Media Writer: World-Class LIVE USB Creator [Tutorial]" -[#]: via: "https://www.debugpoint.com/fedora-media-writer/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Fedora Media Writer: World-Class LIVE USB Creator [Tutorial] -====== - -**A tutorial on installing and using Fedora Media Writer to create LIVE USB from Linux & Windows.** - -![Fedora Media Writer][1] - -### Fedora Media Writer - -The community and Fedora Linux team develop and maintain the [Fedora Media Writer app][2]. This application writes any ISO image to your flash drive (USB stick). In addition, Fedora Media Writer also has features to download the ISO file directly from the Fedora Mirrors, provided you have a stable internet connection. - -Moreover, it gives you a list of options for download – such as Official Editions, Emerging Editions, Spins and Fedora Labs images. - -Not only that, but you can also use this nifty utility to write any other ISO images to your flash drive. It need not be the Fedora ISO always. - -Although there are other popular utilities available for creating LIVE USBs, such as [Etcher][3], Ventoy, and Rufus – you can still give this utility a try, considering the team develops it from mainstream Fedora Linux with contributors. - -So, in summary, here are quick feature highlights of Fedora Media Writer. - -#### Features Summary of Fedora Media Writer - -- Available for Linux, Windows and macOS -- Directly download + write the images to a USB flash drive -- Official Editions (Workstation, IoT, Server) download -- Emerging Editions (Silverblue, Kinoite) download -- Spins (KDE Plasma, Xfce, etc) -- Labs (Fedora Astronomy, Robotic and other flavours) -- Available as Flatpak for Linux Distros -- Also, can write any other ISO images (non-Fedora) to a USB stick. -- Ability to format USB stick, restore flash drive -- Based on Qt - -### How to Install - -#### Linux - -Fedora Media Writer is available as Flatpak for Linux Distributions. To install it in any Linux (such as Fedora, Ubuntu, or Linux Mint) – [set up Flatpak by following this guide][4]. - -Then, click on the below link to install. This will launch the official Software application of your Linux Distro (such as Discover, GNOME Software). After installation, you can launch it via Application Menu. - -[Install Fedora Media Writer as Flatpak][5] - -#### Windows - -If you are a Windows user and planning to migrate to Linux (or Fedora), it is a perfect tool. You need to download the exe installer from GitHub (link below) and follow the onscreen instruction for installation. - -[Latest Installer for Windows (exe)][6] - -After installation, you can launch it from Start Menu. - -For macOS, you can get the dmg file in the above link. - -### How to use Fedora Media Writer to Create LIVE USB in Linux - -The first screen gives you two main options. The automatic download option is for downloading the ISO images on the fly. And the second option is to write the already downloaded ISO files from your disk directly. - -If you have already plugged in the USB, you should see it as the third option. The third option is to format and delete all the data from your USB stick and restore it to its factory settings. - -Furthermore, you can use this utility for just formatting your USB flash drive as well. You do not need any command or anything fancy. A point to note is that this option is only visible when your USB stick has data. If it’s already formatted, the tool can detect it and won’t show you the option to restore it!! 😲 - -#### Automatic Download and Write - -![Fedora Media Writer - First Screen][7] - -The automatic Download option gives you the following screen to download any Fedora ISO you want from mirrors. This is useful for many because it eliminates the hassles of separately downloading ISO files, verifying checksum, etc. - -![The automatic download options gives you these options][8] - -After choosing the distribution, the final screen gives you the option for version (Fedora 36, 35, etc.) and architecture (x86, ARM, etc.). Also, you should see the USB destination. Click on Download and Write to start the process. - -![The final Write screen of Fedora Media Writer][9] - -#### Write an existing ISO file from the disk. - -When you choose the ‘select iso file’ option, you can select the file from your system. After that, select the destination USB drive and click Write to start the process. - -![Direct ISO write via Fedora Media Writer][10] - -![Writing is in progress][11] - -![Writing Complete][12] - -After the write operation is finished, you can see a confirmation message shown above. It took standard time to write a 3GB~ ISO during my test, around 3 to 4 minutes. - -### Using Fedora Media Writer to Create LIVE USB in Windows, macOS - -The steps are the same to use this utility in Windows and macOS, as shown above for Linux. You can easily find the shortcuts after installation and launch in the same way. - -![Running in Windows 11][13] - -### Closing Notes - -I hope this guide helps you use Fedora Media Writer for your day to day USB writing work. Also, the good thing about this utility is that you can use it for formatting/restoring your USB stick. You do not require GParted or GNOME Disks anymore. - -It’s such a terrific utility for Linux, Windows and macOS users. - -Cheers. - -[Next:How to Get Xfce 4.18 in Xubuntu 22.04 and 22.10][14] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/fedora-media-writer/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/fmwhead2022.jpg -[2]: https://github.com/FedoraQt/MediaWriter -[3]: https://www.debugpoint.com/2021/01/etcher-bootable-usb-linux/ -[4]: https://flatpak.org/setup/ -[5]: https://dl.flathub.org/repo/appstream/org.fedoraproject.MediaWriter.flatpakref -[6]: https://github.com/FedoraQt/MediaWriter/releases/latest -[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-Media-Writer-First-Screen.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-automatic-download-options-gives-you-these-options.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-final-Write-screen-of-Fedora-Media-Writer.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/Direct-ISO-write-via-Fedora-Media-Writer.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-is-in-progress.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-Complete.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Running-in-Windows-11.png -[14]: https://www.debugpoint.com/xfce-4-18-xubuntu-22-04/ diff --git a/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md new file mode 100644 index 0000000000..48a3208d28 --- /dev/null +++ b/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md @@ -0,0 +1,133 @@ +[#]: subject: "Fedora Media Writer: World-Class LIVE USB Creator [Tutorial]" +[#]: via: "https://www.debugpoint.com/fedora-media-writer/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora Media Writer:世界级 LIVE USB 创建器(教程) +====== + +**关于安装和使用 Fedora Media Writer 从 Linux 和 Windows 创建 LIVE USB 的教程。** + +![Fedora Media Writer][1] + +### Fedora Media Writer + +社区和 Fedora Linux 团队开发并维护 [Fedora Media Writer 应用][2]。这个应用可以将任何 ISO 镜像写入你的闪存盘(U 盘)中。此外,Fedora Media Writer 还有直接从 Fedora 镜像中下载 ISO 文件的功能,前提是你有一个稳定的互联网连接。 + +此外,它还为你提供了一个下载选项列表:比如官方版本、新兴版本、Spin 版本和 Fedora 实验室镜像。 + +不仅如此,你还可以使用这个灵巧的工具将任何其他 ISO 镜像写入你的闪存。它不总是需要 Fedora ISO。 + +虽然有其他流行的工具可以用来创建 LIVE USB,比如 [Etcher][3]、Ventoy 和 Rufus,但考虑到该团队是从主流 Fedora Linux 与贡献者一起开发的,你仍然可以尝试使用此程序。 + +因此,综上所述,这里是 Fedora Media Writer 的快速功能亮点。 + +#### Fedora Media Writer 的功能摘要 + +- 适用于 Linux、Windows 和 macOS +- 直接下载+写入镜像到 USB 闪存 +- 官方版本(Workstation、IoT、Server)下载 +- 新兴版本(Silverblue、Kinoite)下载 +- Spin(KDE Plasma、Xfce 等) +- 实验室(Fedora Astronomy、Robotic 等) +- 可作为 Linux 发行版的 Flatpak 包 +- 同时,可以将任何其他 ISO 镜像(非 Fedora)写入 U 盘。 +- 能够格式化 U 盘,恢复 U 盘 +- 基于 Qt + +### 如何安装 + +#### Linux + +Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任何 Linux(如 Fedora、Ubuntu 或 Linux Mint)中安装它,请[按照这个指南设置 Flatpak][4]。 + +然后,点击下面的链接进行安装。这将启动你的 Linux 发行版的官方软件程序(如 Discover、GNOME Software)。安装后,你可以通过应用程序菜单启动它。 + +[以 Flatpak 形式安装 Fedora Media Writer][5] + +#### Windows + +如果你是一个 Windows 用户并计划迁移到 Linux(或 Fedora),它是一个完美的工具。你需要从 GitHub 上下载 exe 安装程序(链接如下),并按照屏幕上的指示进行安装。 + +[用于 Windows 的最新安装程序(exe)][6] + +安装完成后,你可以从开始菜单启动它。 + +对于 macOS,你可以在上述链接中获取 dmg 文件。 + +### 如何使用 Fedora Media Writer 在 Linux 中创建 LIVE USB + +第一个页面给你两个主要选项。自动下载选项用于即时下载 ISO 镜像。第二个选项是直接从你的磁盘上写入已经下载的 ISO 文件。 + +如果你已经插上了 USB,你应该看到它是第三个选项。第三个选项是格式化并删除你 U 盘中的所有数据,并将其恢复到出厂设置。 + +此外,你也可以用这个工具来格式化你的 USB 闪存。你不需要任何命令或任何花哨的东西。需要注意的一点是,这个选项只有在你的 U 盘有数据时才可见。如果它已经被格式化了,该工具可以检测到它,但不会显示恢复它的选项!! 😲 + +#### 自动下载和写入 + +![Fedora Media Writer - 第一个页面][7] + +自动下载选项为你提供了以下页面,可以从镜像中下载任何你想要的 Fedora ISO。这对很多人来说很有用,因为它消除了单独下载 ISO 文件、验证校验和等的麻烦。 + +![自动下载选项给了你这些选项][8] + +在选择了发行版之后,最后的页面会给你版本(Fedora 36、35 等)和架构(x86、ARM 等)的选项。另外,你应该看到目标 USB。点击下载和写入,开始这个过程。 + +![Fedora Media Writer 的最终写入页面][9] + +#### 从磁盘上写入一个现有的 ISO 文件 + +当你选择 “select iso file” 时,你可以从系统中选择该文件。之后,选择目标 USB 驱动器,然后点击写入,开始这个过程。 + +![通过 Fedora Media Writer 直接写入 ISO][10] + +![写入进行中][11] + +![写入完成][12] + +写入操作完成后,你可以看到如上所示的确认信息。在我的测试中,写一个大约 3GB 的 ISO 需要大约 3 到 4 分钟。 + +### 使用 Fedora Media Writer 在 Windows、macOS 中创建 LIVE USB + +在 Windows 和 macOS 中使用这个工具的步骤是一样的,就像上面显示的 Linux 一样。你可以在安装后轻松找到快捷方式,并以同样的方式启动。 + +![在 Windows 11 中运行][13] + +### 结束语 + +我希望本指南能帮助你在日常的 USB 写入工作中使用 Fedora Media Writer。另外,这个工具的好处是你可以用它来格式化/恢复你的 U 盘。你不再需要 GParted 或 GNOME Disks 了。 + +对于 Linux、Windows 和 macOS 用户来说,这是一个非常棒的程序。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-media-writer/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/fmwhead2022.jpg +[2]: https://github.com/FedoraQt/MediaWriter +[3]: https://www.debugpoint.com/2021/01/etcher-bootable-usb-linux/ +[4]: https://flatpak.org/setup/ +[5]: https://dl.flathub.org/repo/appstream/org.fedoraproject.MediaWriter.flatpakref +[6]: https://github.com/FedoraQt/MediaWriter/releases/latest +[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-Media-Writer-First-Screen.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-automatic-download-options-gives-you-these-options.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-final-Write-screen-of-Fedora-Media-Writer.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/Direct-ISO-write-via-Fedora-Media-Writer.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-is-in-progress.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-Complete.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Running-in-Windows-11.png \ No newline at end of file From 4270b232c9e4bc3388004172436c4156ebca3ce3 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 31 Jan 2023 08:58:57 +0800 Subject: [PATCH 2686/3123] translating --- .../20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md index 3e0c0aa77b..28a480f9d1 100644 --- a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md +++ b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpis" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3a272ec63fd24586105f261ee47ed2e1c970c152 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 31 Jan 2023 09:32:00 +0800 Subject: [PATCH 2687/3123] RP @geekpi https://linux.cn/article-15495-1.html --- ...114.0 ⭐️ A 4-minute guide to Java loops.md | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) rename {translated/tech => published}/20230114.0 ⭐️ A 4-minute guide to Java loops.md (57%) diff --git a/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/published/20230114.0 ⭐️ A 4-minute guide to Java loops.md similarity index 57% rename from translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md rename to published/20230114.0 ⭐️ A 4-minute guide to Java loops.md index 4e6780fd4e..850fe767b9 100644 --- a/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md +++ b/published/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -3,18 +3,22 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15495-1.html" -4 分钟的 Java 循环指南 +Java 循环语句的简要指南 ====== -一个 while 循环执行一组任务,只要某些预定的条件为真。这被认为是一个控制结构,可以指导程序的流程。它是一种方法,你可以通过定义一个条件来告诉你的代码要做什么,它可以测试,并根据它发现的情况采取行动。Java 中的两种 while 循环是 while 和 do while。 +![][0] + +> 无论你使用的是 `while` 循环、`do`/`while` 循环,还是无限循环,了解循环的工作原理对 Java 编程至关重要。 + +只要某些预定的条件为真,一个 `while` 循环就会执行一组任务。这被认为是一个控制结构,可以指导程序的流程。它是一种你可以通过定义一个条件来告诉你的代码要做什么的方法,它可以测试它,并根据它发现的情况采取行动。Java 中的两种 `while` 循环是 `while` 和 `do`/`while`。 ### Java while 循环 -while 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 while 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(`<`, `>`, `==`, 等等): +`while` 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 `while` 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(`<`, `>`, `==`, 等等): ``` package com.opensource.example; @@ -31,7 +35,7 @@ public class Example { } ``` -在这个简单的例子中,条件是变量 `count` 小于5。因为 `count` 被实例化为 0,然后在 while 循环的代码中增加 1,所以程序总共迭代了 5 次: +在这个简单的例子中,条件是变量 `count` 小于 5。因为 `count` 被实例化为 0,然后在 `while` 循环的代码中增加 1,所以程序总共迭代了 5 次: ``` $ java ./while.java @@ -40,7 +44,7 @@ $ java ./while.java 在它进行第六次迭代之前,条件不再是真的,所以循环结束。 -while 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 `count == 5` 作为条件: +`while` 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 `count == 5` 作为条件: ``` while (count == 5) { @@ -55,13 +59,13 @@ $ java ./while.java $ ``` -循环被跳过了,因为 `count` 被设置为0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,`count` 也从未被递增。 +循环被跳过了,因为 `count` 被设置为 0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,`count` 也从未被递增。 与此相反的是,当一个条件开始为真,并且永远不会为假时,这将导致一个无限循环。 ### Java do while 循环 -与 while 循环相似,do while 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环, 循环中的代码至少运行一次, 因为没有进入的入口, 只有退出的出口: +与 `while` 循环相似,`do`/`while` 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环,循环中的代码至少运行一次,因为没有进入的入口,只有退出的出口: ``` package com.opensource.example; @@ -78,7 +82,7 @@ public class Example { } ``` -在这个示例代码中,`count` 被设置为 9。循环重复的条件是 `count` 等于5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行: +在这个示例代码中,`count` 被设置为 9。循环重复的条件是 `count` 等于 5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行: ``` $ java ./do.java @@ -87,7 +91,7 @@ $ java ./do.java ### Java 无限循环 -无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(这在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。 +无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。 假设你写了一个应用程序,在僵尸天启期间计算留在你附近的僵尸的数量。为了模拟需要多少个循环才能达到 0 个僵尸的不确定性,我的演示代码从操作系统中检索了一个时间戳,并将计数器(`c`)的值设置为从该时间戳得出的某个数字。因为这是一个简单的例子,你不会真的想陷入一个无限循环,这段代码倒数到 0,并使用 `break` 函数来强制结束循环: @@ -132,7 +136,7 @@ $ java ./zcount.java ### Java 循环 -循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 while 循环、do while 循环还是无限循环,了解循环的工作原理都是至关重要的。 +循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 `while` 循环、`do`/`while` 循环还是无限循环,了解循环的工作原理都是至关重要的。 -------------------------------------------------------------------------------- @@ -141,10 +145,11 @@ via: https://opensource.com/article/23/1/java-loops 作者:[Seth Kenlon][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/) 荣誉推出 [a]: https://opensource.com/users/seth [b]: https://github.com/lkxed +[0]: https://img.linux.net.cn/data/attachment/album/202301/31/093057lesc38vufbuzustm.jpg \ No newline at end of file From 3fc270118c074fc2209b149b73a6a584028a299e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 31 Jan 2023 13:06:35 +0800 Subject: [PATCH 2688/3123] =?UTF-8?q?=E9=87=8D=E5=BB=BA=E4=BA=86=E6=9C=AF?= =?UTF-8?q?=E8=AF=AD=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除了之前的版本,将只专注于我们自创和选定的词汇。 --- Dict.md | 172 ++++++++++++++------------------------------------------ 1 file changed, 43 insertions(+), 129 deletions(-) diff --git a/Dict.md b/Dict.md index 82454cfa5d..4f9f9ed03a 100644 --- a/Dict.md +++ b/Dict.md @@ -1,163 +1,77 @@ +LCTT 术语词典 +====== - -
              Linux中国术语词典
              -
              -
              [Linux中国](http://www.linux.cn)出品
              -**************************************************** -**************************************************** -本词典为规范Linux中国翻译组(LCTT)技术术语翻译而编写,同时也方便广大翻译志愿者查阅。限于编写者的水平,其中可能有不完善或疏漏的地方,希望广大翻译志愿者不吝指正。同时,希望广大翻译志愿者能提供相关术语的翻译供大家参考。另外,若在翻译过程中对某些术语有疑虑,可在我们的QQ专门群中进行讨论。在此,谨代表LCTT感谢各位志愿者的辛勤劳动和无私奉献。 -

              LCTT翻译组

              -**************************************************** +本文收录了 LCTT 自创和选用的翻译词汇。 -#### A #### -### 1. APM:高级电源管理 -### 2. -#### B #### -### 1. Backbone:骨干 -> 是一个网络的一部分,其作为所有网络运输的一个基本通道,其需要非常高的带宽。一个骨干网络的服务提供者连接许多企业子网和较小服务提供者的网络。一个企业骨干网络连接许多局域网和数据中心。 +为什么要自创翻译词汇?在翻译过程中,我们发现一些非缩写的英语术语沿袭使用了英语单词/短语,而没有得体的、公认的、正式的对应中文翻译。我们认为,中英文混杂是对原生语言的一种污染(英文缩写除外,这是为了减少冗长的语句),按照本地化的宗旨,应该对这些词汇进行翻译,并在必要时创造新的词汇。故此,我们在几年的翻译中,逐渐推敲和形成了一些新的译法,并在我们翻译的文章中使用和推广。 -### 2. B channel(Bearer channel):承载信道 -> 承载信道(Bearer Channel),也叫做B channel,是一个全双工DS0时间槽(64-kbps),其携带模拟语音或数字资料通过综合服务数字网(ISDN)。 +对这些译法,我们尽量遵循“信雅达”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。 -### 3. Backchannel:反向通道 -> 是指当其他实时在线会话在进行中时,习惯使用网络化的计算机来维持一个实时的在线会话。 +我们采用的方法是: -### 4. Back End:后台 -> 在一个计算机系统中,是指为一个前台作业提供服务的一个节点或软件程序。前台直接影响用户,后台可能与其他系统相连接,如数据库和其它系统。 +- 音似:中文读音近似于英文原词 +- 意近:中文字的意思接近英文原意 +- 组词:根据上述两条组成新的词汇,以避免和原有词汇混淆 -### 5. Back-haul:回程线路 -> 是一个通信信道,它使携带信息流到远于最终目的地的地方,然后将它送回。这样做是因为传输到更远的远程区域的代价要远比直接发送的代价低地多。 +此外,需要说明的是,有些译法可能已经被其他人在别的地方更早提出,但限于我们的学识和搜索能力,并未发现和了解到,并非我们故意剽窃。 -### 6. Backoff:退避 -> 是指当一个主机已经在有MAC 协议的网络中经历了一个冲突之后试图去重发之前的等待时期。这个退避时间通常是任意的来最小化相同节点再次冲突的可能性。在每次冲突后增加退避时期也能帮助预防重复碰撞,特别当这个网络负担很重时。 +顺便说一句,2014 年对 “Shebang”(`#!`)一词翻译时,来自于 LCTT 早期重要贡献者 GOLinux 提出的 “[释伴](https://linux.cn/article-3664-1.html)” 译法,是我们第一次创造新的翻译词汇,也是我们形成这样的想法的起点。 -### 7. Backplane:附加卡 -> 在许多网络中是一个物理接口模块,例如,连接在一个界面处理器或卡和在一个总线机箱内数据总线和功率分配总线之间的一个路由器或转换器。 +除了自创的翻译词汇外,这里还收录了一些选用的翻译词汇。有一些词汇存在多种译法,我们在翻译和使用过程中,采用了某个译法,在此列出以保持一致。 -### 8. Back Pressure:背压 -> 在计算机系统中,是指网络拥塞信息逆流通过一个Internet网络。 +### F -### 9. Balun(balanced-unbalanced):不平衡变压器 -> 意味着平衡-非平衡。不平衡变压器是一个设计用来转换平衡和不平衡之间的电信号的设备。 +#### Fork -### 10. Baseband:基带 -> 是一种类型的网络技术,在那里仅仅一种载波频率被使用。在一个基带网中,信息在传送介质中以数字的形式被携带在一个单一的多元信号通道中。 +Fork 行为/操作广泛用于进程管理、版本管理和软件衍生方面。此词汇也长期缺乏确定的译法。 -### 11. Bastion Host:防御主机 -> 是在内部网络和外部网络之间的一个网关,它被设计来防御针对内部网络的攻击。这个系统在非武装区(DMZ)的公共一边,不被防火墙或过滤路由器保护,它对攻击是完全暴露的。 +此前,提议者对 Fork 给出了 “复刻” 的译法。基本意思是,根据上游/父本复制一份,然后在此基础上进行修改,从而形成“衍生品”。 -### 12: Bc(Committed Burst):约定资讯讯务 -> 是一个用在帧中继系统的术语,是一个帧中继交互网约定接受和传输和通过一个帧中继网络数据链路控制(DLC)和一个特殊的时帧的最大数据量(用比特表示)。 - -### 13. BCP(Best Current Practices):最优现行方法 -> 是副系列的IETF RFCs,其被用于描述在Internet上的最优配置技术。 +有趣的是,我们发现 GitHub 的 [部分中文文档](https://docs.github.com/zh/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks) 中也采用了此译法,不知道是不是受到了我们的影响。 -### 14. BCU(Balanced Configuration Unit):平衡配置单元 -> 是一个综合的IBM解决方法,它由软件和硬件组成。BCUs是综合的和测试作为数据仓库系统的预配置功能块。 +- 提议者:wxy +- 首次链接:https://linux.cn/article-7877-1.html -### 15. BECN(Backward Explicit Congestion Notification):显式拥塞通知 -> 是在帧中继报头的一个1比特域,其发信号到任何接收帧的事物(转换器和数据终端设备),拥塞就发生在帧的反面(后面)。帧中继转换器和数据终端设备可能遵照显式拥塞通知位来减慢那个方向的数据传输率。 +### L -### 16. BER(Bit Error Rate):误码率 -> 是接收到的位包含错误的比率。BER通常被表示成十足的负面力量。 +#### Live -### 17. BIP(Bit Interleaved Parity):位交叉奇偶校验 -> 一个用在ATM中的术语,是一个通常用来检测链接错误的一种方法。一个检测位或字被嵌入到以前发生阻塞或帧的链接中。位错误在有效载荷中能够作为维护信息被删除和报告。 +Live 原意多指“现场”、“实时”,在计算机环境中使用时也多引用此意。但对它的翻译就颇费神,因为无论是在 Live Patch,还是更多见的 Live USB/CD、Live Session,其实都不好翻译为“现场”、“实时”。 -#### C #### +提议者之前曾经尝试创造了新的“[临场](https://linux.cn/article-12854-1.html)”词汇,但是感觉有些不够达意。经过推敲,提议者再次推荐使用“立付”,在照顾发音的同时,取其“立时交付”之意。这样,Live USB/CD 可以译做 “立付 USB/CD”,Live Session 可以译做 “立付会话”。 -#### D #### -### 1. daemon:守护进程 -### 2. -#### F #### +而对于 Live Stream,提议者建议依旧翻译为“直播”、“实时流”。对于 Live Patch,还是采用 “热补丁” 这样的意译。 -#### G #### +- 提议者:wxy +- 首次链接(临场):https://linux.cn/article-12854-1.html +- 首次链接(立付):(暂缺) -#### H #### -### 1. Home Directory:家目录 -#### I #### -### 1. issue:工单 -> 有翻译做“问题”的,但是应该译作“工单”,尤其是用于 GitHub 中。 +#### Repo/Repository -#### J #### +Repository 主要用于两个场景,一个是用于版本管理的代码仓库,一个是用于分发软件/组件/制品的软件仓库。 -#### K #### +鉴于两种场景的差异,建议在使用时,分别注明“代码仓库”或“软件仓库”,也可简称为 “代码仓”或“软件仓”。 -#### L #### -### 1. live CD:现场版 CD -> 通常不翻译,但是如果翻译,可以译作“现场版”。 -### 2. live patch: 实时补丁/热补丁 -> 指 Linux 内核的 live patch 支持。 +### S -### 2. LTS(Long Term Support):长期支持 -> 该缩写词多见于操作系统发行版或者软件发行版名称中,表明该版本属于长期支持版。 +#### Shebang [ʃɪ'bæŋ]:释伴 -#### M #### +Shebang(也称为 Hashbang)是一个由井号和叹号构成的字符序列(`#!`),出现在脚本文件的第一行的前两个字符,后跟解释器路径,如:`#!/bin/sh`,这通常是 Linux 中 shell 脚本的标准起始行。 -#### N #### +长期以来,Shebang 都没有正式的中文名称。提议者将其翻译为:“释伴”,即解释伴随行的简称,同时又是 Shebang 的音译。(关于这个词汇的翻译,在下面的首次链接中有其它的建议和讨论。) -#### O #### -### 1. Orchestration:编排 -> 描述复杂计算机系统、中间件(middleware)和业务的自动化的安排、协调和管理(来自维基百科)。 +- 提议者:GoLinux +- 首次链接:https://linux.cn/article-3664-1.html -#### P #### -### 1. P-code(Pseudo-code):伪代码语言 -> 一种解释型语言,执行方式介于编译型语言和解释型语言之间。和解释型语言一样,伪代码编程语言无需编译,在执行时自动转换成二进制形式。然而,和编译型语言不同的是,这种可执行的二进制文件是以伪代码的形式而不是机器语言的形式存储的。伪代码语言的例子有 Java、Python 和 REXX/Object REXX。 +#### Shell :交互界面 -### 2. PAM(Pluggable Authentication Modules):可插拔认证模块 -> 用于系统安全性的可替换的用户认证模块,它允许在不知道将使用何种认证方案的情况下进行编程。这允许将来用其它模块来替换某个模块,却无需重写软件。 +Shell 是 Unix/Linux 等系统的 `sh`、`bash` 等命令行的接口程序,包括 DOS/Windows 的 `command.com`/`cmd.exe` 等其实也属于此类,只是通常不这样称呼。 -### 3. Port/Ported/Porting:移植 -> 一个过程,即获取为某个操作系统平台编写的程序,并对其进行修改使之能在另一 OS 上运行,并且具有类似的功能。 +这个词汇也是一个一直没有翻译而径直使用的计算机词汇。我们也没有见到(找到)合适的翻译。但是我们在 LCTT 译者 CanYellow 翻译的一篇文章中见到他将其翻译为 “交互界面”,我们认为这是一种好的翻译。 -### 4. POSIX(Portable Operating System Interface for uniX):UNIX 可移植操作系统接口 -> 一组编程接口标准,它们规定如何编写应用程序源代码以便应用程序可在操作系统之间移植。POSIX 基于 UNIX,它是 The Open Group 的 X/Open 规范的基础。 +- 提议者:CanYellow +- 首次链接:https://linux.cn/article-15469-1.html -#### Q #### +### 说明 -#### R #### -### 1. RCS(Revision Control System):修订控制系统 -> 一组程序,它们控制组环境下文件的共享访问并跟踪文本文件的变化。常用于维护源代码模块的编码工作。 - -### 2. RFS(Remote File Sharing):远程文件共享 -> 一个程序,它让用户访问其它计算机上的文件,就好象文件在用户的系统上一样。 - -#### S #### -### 1. shebang [ʃɪ'bæŋ]:释伴 -> Shebang(也称为Hashbang)是一个由井号和叹号构成的字符序列(#!),出现在文本文件的第一行的前两个字符,后跟解释器路径,如:#!/bin/sh,这通常是Linux中shell脚本的标准起始行。 -> 长期以来,shebang都没有正式的中文名称。Linux中国翻译组将其翻译为:释伴,即解释伴随行的简称,同时又是shebang的音译。 - -### 2. Spool(Simultaneous Peripheral Operation On-Line):假脱机 -> 将数据发送给一个程序,该程序将该数据信息放入队列以备将来使用(例如,打印假脱机程序) - -### 2. Steganography:隐写术 -> 将一段信息隐藏在另一段信息中的做法。一个示例是在数字化照片中放置不可见的数字水印。 - -### 3. Swap:交换 -> 暂时将数据(程序和/或数据文件)从随机存取存储器移到磁盘存储器(换出),或反方向移动(换入),以允许处理比物理内存所能容纳的更多的程序和数据。 - -### 4. Scheduling:调度 -> 将任务分配至资源的过程,在计算机或生产处理中尤为重要(来自维基百科)。 - -#### T #### -### 1. Time-sharing:分时 -> 一种允许多个用户分享处理器的方法,它以时间为基础给每个用户分配一部分处理器资源,按照这些时间段轮流运行每个用户的进程。 - -### 2. TL;DR:长篇摘要 -> Too Long;Didn't Read的缩写词,即太长,未阅的意思。该词多见于互联网社区论坛中,用于指出该文太长,没有阅读,或者标示出一篇长文章的摘要。在论坛回复中,该缩写词也多作为灌水用。因此,Linux中国翻译组将其翻译为:长篇摘要。 - -#### U #### - -#### V #### -### 1. VRML(Virtual Reality Modeling Language):虚拟现实建模语言 -> 一种主要基于 Web 的语言,用于 3D 效果(如构建遍历)。 - -#### W #### -### 1. Wrapper:封装器 -> 用于启动另一个程序的程序。 - -#### X #### - -#### Y #### - -#### Z #### +此文档会根据建议不断更新,其固定地址为: https://github.com/LCTT/TranslateProject/blob/master/Dict.md ,欢迎大家提交议题或拉取请求来完善它。 \ No newline at end of file From 8c0c5ba9124af3d1ab18f6dd67c6712faf21e986 Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 14:45:07 +0800 Subject: [PATCH 2689/3123] translating --- ...date Includes Support for AV1 Video and Steam Deck Controller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index 70bffab23f..6574e23a47 100644 --- a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "natsumm" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8ee8963815e1ed715aefd9a441a5105bf065c9dc Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 17:32:58 +0800 Subject: [PATCH 2690/3123] translated --- ...ort for AV1 Video and Steam Deck Controller.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md new file mode 100644 index 0000000000..2a4b263a0a --- /dev/null +++ b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -0,0 +1,109 @@ +[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" +[#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "natsumm" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kodi 20.0 "Nexus" 带来了诸多新功能,其中包括对 AV1 视频和 Steam Deck 控制器的支持 +====== + +Kodi v20 版本增加了多项重要功能。 + +![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] + +[Kodi][2] 是 Kodi 基金会开发的跨平台开源媒体播放器,提供了大量功能。 + +它的上一个主流版本是**两年前**发布的 [Kodi 19‘Matrix’][3]。 + +**Kodi 'Nexus'** 是改进后的版本,它更新了几个新功能。 + +让我们来看看这些。 + +### 🆕 Kodi 20 'Nexus': 更新了什么? + +这次发布带来了很多新的特性。较为突出的有: + +- **AV1 编解码支持** +- **增强的 PVR 支持** +- **更新后的数据抓取器** +- **多个修复和改进** + +![kodi 20 nexus][4] + +#### AV1 编解码支持 + +Kodi 现在在 Linux 平台上支持开源免版税的 [AV1编解码][5]。 + +通过 [Video acceleration API][6](VA-API)实现了解码 AV1 的硬件加速,并且还为视频输入流增加了 AV1 支持。 + +#### 增强的 PVR 支持 + +通过 [PVR][7] 观看电视和收听广播也得到了许多改进,其中一些值得注意的改进包括: + +- 重新设计过的频道管理器。 +- 能够显示特定频道或录制的提供方。 +- 能够按提供方对频道和录制进行排序。 +- 支持只读形式的录制。 +- 改进后的 EPG 搜索。 +- 自动清理缓存的PVR图像。 +- PVR 客户端插件的多实例支持。 +- 海湾主题下的 PVR 体验调整。 + +#### 更新后的数据抓取器 + +TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流”和“信息标记视频”后出现问题; + +> 🗒️ 建议旧版 Kodi 20 的用户更新到最新版本,避免使用此抓取器时出现问题。 + +此外,更新后的 Python 电视节目抓取器,解决了一个潜在的问题,即新的抓取器使用的 XML 格式与现有的程序不同的问题。 + +因此,当您向库中现有的电视节目添加新集时,即便您正在使用 NFO 文件,您也必须刷新节目以下载新集指南。 + +#### 🛠️ 多个修复和改进 + +除此之外,Kodi 20 还提供了一些修复和改进,例如: + +- Steam Deck 控制器的内置支持。 +- 开始支持 NFSv4 的文件系统。 +- 默认支持光盘。 +- 使用通用缓冲区管理API时,能够设置使用 HDR 输出。 +- 解决了 DRMPrime 的一个问题。 +- 多个对于图文电视的支持。 +- 修复了单机游戏的黑屏问题。 + +要了解更多信息,请阅读 [官方公告][8]。 + +### 📥 下载 Kodi 20 + +Kodi 20 'Nexus' 可从 [官方网站][9] 及其 [GitHub 仓库] 获取。 + +在应用商店和官方存储库也可以获取到。 + +Kodi v21(代号:Omega)正在开发中。如果你想从这次发布中获得更多内容,请关注下一个版本。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kodi-20-nexus-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/kodi-nexus-20-release.png +[2]: https://kodi.tv +[3]: https://news.itsfoss.com/kodi-19-release/ +[4]: https://news.itsfoss.com/content/images/2023/01/Kodi_20_Nexus.jpg +[5]: https://en.wikipedia.org/wiki/AV1 +[6]: https://en.wikipedia.org/wiki/Video_Acceleration_API +[7]: https://kodi.wiki/view/PVR +[8]: https://kodi.tv/article/kodi-20-0-nexus-release +[9]: https://kodi.tv/download/ +[10]: https://github.com/xbmc/xbmc/releases/tag/20.0-Nexus From 828f34038a1ecb908ae321d3cda65edcdcfc3511 Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 17:34:36 +0800 Subject: [PATCH 2691/3123] translated --- ...ort for AV1 Video and Steam Deck Controller.md | 111 ------------------ 1 file changed, 111 deletions(-) delete mode 100644 sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md diff --git a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md deleted file mode 100644 index 6574e23a47..0000000000 --- a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ /dev/null @@ -1,111 +0,0 @@ -[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" -[#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "natsumm" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller -====== - -Multiple major feature additions with the Kodi v20 release. - -![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] - -[Kodi][2] is a cross-platform open-source media player developed by the Kodi Foundation that offers a plethora of features. - -Its previous major release was [Kodi 19 'Matrix'][3] which came **almost two years ago**. - -Now, an improved release is here, called **Kodi 'Nexus'**. It promises several new features and improvements. - -Let's take a look at those. - -### 🆕 Kodi 20 'Nexus': What's New? - -The release is bringing in plenty of new things. Some of the highlights include: - -- **AV1 Codec Support** -- **Enhanced PVR support** -- **Updated Scrapers** -- **Various Fixes and Improvements** - -![kodi 20 nexus][4] - -#### AV1 Codec Support - -Kodi now features support for the open, royalty-free [AV1 codec][5] on Linux. - -Hardware acceleration for decoding AV1 was made possible through [Video Acceleration API][6] (VA-API), and AV1 support was also added for InputStream. - -#### Enhanced PVR support - -TV watching and radio listening via [PVR][7] has also received many improvements, some of the notable ones include: - -- A redesigned channel manager. -- Ability to show the provider of a specific channel or recording. -- Ability to sort channels and recordings by provider. -- Support for read-only recordings. -- Improvements to EPG search. -- Automatic cleanup of cached PVR images. -- Various performance improvements. -- Multi-instance support for PVR client-addons. -- Various tweaks to the PVR experience under the Estuary theme. - -#### Updated Scrapers - -The TVDB TV Show scraper was updated to prevent breakage after introducing a change that broke the 'VideoStreamDetail' and 'InfoTagVideo; Python APIs. - -> 🗒️ Users of older Kodi 20 releases are recommended to update to the latest version to avoid any disruptions with this scraper. - -Furthermore, the Python TV Show scrapers were updated to fix a potentially confusing issue where the new scrapers were using a different XML format than the existing providers used. - -Due to that, now, when you add new episodes to existing TV shows in your library, you will have to refresh the show to download the new episode guide. Even if you are using the NFO files. - -#### 🛠️ Various Fixes and Improvements - -Other than that, Kodi 20 features several fixes and improvements, such as: - -- Built-in support for Steam Deck controller. -- Initial support for the NFSv4 file system. -- 'Continue Watching' feature for certain video folders. -- Support for mounting optical media by default. -- Ability to set HDR output when using the Generic Buffer Management API. -- Addressed an issue with DRMPrime. -- Various Teletext improvements. -- Fixed black screen issue with standalone games. - -To explore more, you can read the [official announcement post][8]. - -### 📥 Download Kodi 20 - -Kodi 20 'Nexus' is available from the [official website][9] and its [GitHub repository][10]. - -It should be available on app stores and official repositories as well. - -Kodi v21 (codename: Omega) development is already underway. So, if you wanted more from this release, keep an eye on the next one. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kodi-20-nexus-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/kodi-nexus-20-release.png -[2]: https://kodi.tv -[3]: https://news.itsfoss.com/kodi-19-release/ -[4]: https://news.itsfoss.com/content/images/2023/01/Kodi_20_Nexus.jpg -[5]: https://en.wikipedia.org/wiki/AV1 -[6]: https://en.wikipedia.org/wiki/Video_Acceleration_API -[7]: https://kodi.wiki/view/PVR -[8]: https://kodi.tv/article/kodi-20-0-nexus-release -[9]: https://kodi.tv/download/ -[10]: https://github.com/xbmc/xbmc/releases/tag/20.0-Nexus From 0621176347ce3683e0f58cd56a094f2ebda28151 Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 17:35:57 +0800 Subject: [PATCH 2692/3123] translated --- ...date Includes Support for AV1 Video and Steam Deck Controller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index 2a4b263a0a..deefaf1896 100644 --- a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -90,7 +90,7 @@ via: https://news.itsfoss.com/kodi-20-nexus-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[natsumm](https://github.com/natsumm) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7ff5e6c4afe4accb6c509766a3306b5eedc455f6 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 1 Feb 2023 08:32:21 +0800 Subject: [PATCH 2693/3123] translated --- ...Extension is in Development for Linux Users.md | 79 ------------------- ...Extension is in Development for Linux Users.md | 77 ++++++++++++++++++ 2 files changed, 77 insertions(+), 79 deletions(-) delete mode 100644 sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md create mode 100644 translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md diff --git a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md deleted file mode 100644 index 13eaff0d53..0000000000 --- a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md +++ /dev/null @@ -1,79 +0,0 @@ -[#]: subject: "A ChatGPT GNOME Extension is in Development for Linux Users" -[#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A ChatGPT GNOME Extension is in Development for Linux Users -====== - -AI-powered GNOME desktop? This extension can make things seem like it. - -![A ChatGPT GNOME Extension is in Development for Linux Users][1] - -[ChatGPT][2] is a popular chatbot that can interact with its users as if they are having a conversation. - -Recently, ChatGPT has been in the news, sometimes for the wrong reasons. - -You see, there are two sides to the ChatGPT saga. In fact, for any artificial intelligence implementation. - -On one side, the potential of this tool has impressed many. But on the other side, it has led to quite a ruckus in the tech world for its abuse/misuse. - -So much so it has led its creator, [OpenAI][3], to develop a tool to detect its use. - -Combatting Academic Dishonesty: OpenAI to Help Detect ChatGPT TextWe’re living in the age of AI already. To not make that worse, the makers of ChatGPT have decided to help detect text generated by the tool.![][4]It's FOSS NewsSourav Rudra![][5] - -Now, I spotted a Reddit thread where a developer mentioned something interesting. - -A developer who goes by the user handle '[HorrorPills][6]' has started working on a **GNOME extension for ChatGPT**. - -This sounds interesting; let's take a look. - -### Work in Progress: Let's Keep an Eye! - -![chatgpt gnome extension][7] - -This is a GNOME desktop extension that adds ChatGPT to the system tray of your desktop. - -In its current form, it is in a **very work-in-progress state**, with basic functionality and a few bugs here and there. - -As [noted][8] by the developer: - -You will need an **existing ChatGPT account** to use this extension and your keyboard to navigate around it because the mouse cursor implementation is quite buggy. - -Moreover, **support for GNOME 43 is also quite patchy**, with a temporary fix being provided and added to the to-do list in the development of this extension. - -If you like, you can **give this extension a try**. It's available via its [GitHub repo][9], with all the instructions and files required to run it. - -The developer has also [said][10] that they will be making this available on the **GNOME extensions**[website][11] when the extension is more stable. - -Furthermore, they have also [hinted][12] at a possible **KDE Plasma implementation** in the future. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/chatgpt-gnome-extension.png -[2]: https://chat.openai.com -[3]: https://openai.com -[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png -[5]: https://news.itsfoss.com/content/images/2023/01/openai-to-detect-chatgpt-text.png -[6]: https://github.com/HorrorPills -[7]: https://news.itsfoss.com/content/images/2023/01/ChatGPT_GNOME_Ext.jpg -[8]: https://www.reddit.com/r/linux/comments/10ay23v/comment/j46yp15/ -[9]: https://github.com/HorrorPills/ChatGPT-Gnome-Desktop-Extension -[10]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j4al4cg/ -[11]: https://extensions.gnome.org -[12]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j48uofo/ diff --git a/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md new file mode 100644 index 0000000000..686bc80a4b --- /dev/null +++ b/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -0,0 +1,77 @@ +[#]: subject: "A ChatGPT GNOME Extension is in Development for Linux Users" +[#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +一个 ChatGPT GNOME 扩展正在为 Linux 用户持续开发中 +====== + +>你想要一个人工智能的 GNOME 桌面吗?下面这个扩展可以实现这个功能! + +![A ChatGPT GNOME Extension is in Development for Linux Users][1] + +[ChatGPT][2] 是一个在当下十分流行的聊天机器人,它可以与用户进行互动,用户就像在与 ChatGPT 交流一样。 + +最近,关于 ChatGPT 的新闻时常出现在人们的视野之中,有时是关于 ChatGPT 的坏消息。 + +不难看出,ChatGPT 有其两面性。事实上,对于任何人工智能的实现都同样如此。 + +一方面,ChatGPT 这一工具的巨大潜力给许多人留下了深刻的印象。但另一方面,因人们对它的滥用/误用,导致 ChatGPT 在科技界引起了轩然大波。 + +人们对 ChatGPT 滥用/误用太多了,以至于其创建者 [OpenAI][3] 开发了一种工具来检测 ChatGPT 的使用情况,这个内容可以进一步访问 [此网页](https://news.itsfoss.com/openai-chatgpt-detection/)。 + +现在,我发现了一个 Reddit 线程,它的开发人员提到了一些有趣的事情。 + +一个用户名为 [HorrorPills][6] 的开发人员已经开始**为 ChatGPT 开发 GNOME 扩展**。 + +这听起来非常有趣,让我们继续来看看吧。 + +### 这个扩展仍在开发中:让我们持续保持关注吧! + +![chatgpt gnome extension][7] + +这是一个 GNOME 桌面扩展,将 ChatGPT 添加到了桌面的 系统托盘system tray 中。 + +现在,这个 GNOME 桌面扩展还处于未完成的状态,它已经具有了基本的功能,但仍存在一些错误。 + +正如它的开发者 [所说][8] 的那样: + +你需要有一个 **ChatGPT 帐户**,才能使用这个扩展程序,并且需要用到你的键盘,才能进行定位,因为现在这个扩展的光标功能还有很多问题。 + +此外,这个扩展**对 GNOME 43 的支持也很不完整**,他们提供了一个临时的修复程序,并将这个进一步完善的任务添加到此扩展的后续开发中。 + +如果你喜欢的话,你可以**试试这个扩展**。你可以通过它的 [GitHub 仓库][9],来获取运行它所需的所有说明和文件。 + +它的开发人员还 [表示][10]:当这个扩展变得更加稳定时,他们会将这个扩展发布到 **GNOME 扩展** [网站][11] 上去。 + +此外,开发人员还 [透露][12]:他们在未来可能会实现 **KDE Plasma 的 ChatGPT 扩展**。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[chai001125](https://github.com/chai001125) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/chatgpt-gnome-extension.png +[2]: https://chat.openai.com +[3]: https://openai.com +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/2023/01/openai-to-detect-chatgpt-text.png +[6]: https://github.com/HorrorPills +[7]: https://news.itsfoss.com/content/images/2023/01/ChatGPT_GNOME_Ext.jpg +[8]: https://www.reddit.com/r/linux/comments/10ay23v/comment/j46yp15/ +[9]: https://github.com/HorrorPills/ChatGPT-Gnome-Desktop-Extension +[10]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j4al4cg/ +[11]: https://extensions.gnome.org +[12]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j48uofo/ From 714c099839dd1a9e872bdb9f2c4bdde9c889c4b3 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 1 Feb 2023 08:50:54 +0800 Subject: [PATCH 2694/3123] translated --- ... Code Editor With a Brand New GUI Framework.md | 106 ------------------ ... Code Editor With a Brand New GUI Framework.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md create mode 100644 translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md deleted file mode 100644 index 274d7430a2..0000000000 --- a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework" -[#]: via: "https://news.itsfoss.com/ecode-editor/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework -====== - -A new exciting code editor is in the works, built on its own GUI framework. - -![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] - -If you look around for open-source code editors, a couple of promising new projects may challenge the likes of Visual Studio Code. - -Sure, that may not happen anytime soon. **But it does not hurt to be optimistic about supporting new projects.** - -We recently covered some of those options here: - -Now, I have stumbled upon another editor, "**ecode**". The project's author mentions that it takes inspiration from editors like [Lite XL][2]. - -**What's different?** - -- It is built on top of its **new GUI framework [eepp][3]** which focuses on providing a rich user interface. -- While it aims to use minimal resources, ecode's philosophy targets **modern hardware** with systems that have SSDs, high cores count, and decent GPU acceleration. -- The code editor can be compiled to run in any modern browser. However, the current focus is not on the development of the web version. - -![ecode official screenshot][4] - -That sounds good. So, let us take a look. - -> 🚧 The project is under heavy development. You should not rely on the tool for everyday tasks. - -### Features of ecode - -![ecode][7] - -[ecode][8] is a capable editor with all the essentials loaded from the start. - -Sure, it has plans to add more stuff as the development progresses. As it stands, here are some of the key highlights: - -- **Portable** -- **Syntax highlighting** -- **Terminal support** -- **Auto-completion** -- **Customizable color schemes** -- **Customizable keyboard bindings** -- **LSP Support** -- **Minimap** -- **Plugin manager** -- **Dark and light mode** -- **Various types of split views to adapt to different workflows** - -I tried the editor briefly on Linux Mint, and it sure looks like a work in progress. - -But, even in its early stages, it supports the essentials to support a wide range of languages and syntax highlights accordingly. - -![ecode options][9] - -You can customize the editor's theme quickly from a set of pre-defined themes. - -The minimap will be handy for users who write a lot of code (lengthy snippets) and need to navigate it quickly. - -The app crashed for me initially as I performed a right-click in a blank area. But, it was quickly fixed with the next version update, **0.4.1** (at the time of publishing this). So, I would say the **development progress seems promising**. - -![][10] - -### Download ecode - -You can try the [live demo][13] available to test-drive some options quickly. - -An AppImage file is available for all Linux distributions. Packages for macOS and Windows are also available. - -You can get these packages from its [GitHub releases section][14] or explore its [source code][3]. - -[Download ecode][14] - -💬 With so many promising new code editors in development, do you think we'll have a good competition to Microsoft's VS Code? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ecode-editor/ - -作者:[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/content/images/size/w2000/2023/01/ecode-first-look.png -[2]: https://itsfoss.com/lite-xl/ -[3]: https://github.com/SpartanJ/eepp/ -[4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg -[5]: https://www.pjtra.com/apple-touch-icon.png -[7]: https://news.itsfoss.com/content/images/2023/01/ecode.png -[8]: https://github.com/SpartanJ/ecode -[9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png -[10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png -[13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js -[14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 diff --git a/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md new file mode 100644 index 0000000000..6f70b16741 --- /dev/null +++ b/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -0,0 +1,106 @@ +[#]: subject: "Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework" +[#]: via: "https://news.itsfoss.com/ecode-editor/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器 +====== + +一个新的令人兴奋的代码编辑器正在开发中,它建立在自己的 GUI 框架上。 + +![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] + +如果你看看周围的开源代码编辑器,有几个有前途的新项目可能会挑战 Visual Studio Code 的地位。 + +当然,这可能不会很快发生。**但对支持新项目持乐观态度也无妨。** + +我们最近在这里介绍了其中的一些选择: + +现在,我偶然发现了另一个编辑器,“**ecode**”。这个项目的作者提到,它从 [Lite XL][2] 等编辑器中获得了灵感。 + +**有什么不同?** + +- 它建立在其**新的 GUI 框架 [eepp][3]** 之上,该框架专注于提供一个丰富的用户界面。 +- 虽然它的目标是使用最少的资源,但 ecode 的理念针对的是**现代硬件**的系统,有 SSD,高核心数和不错的 GPU 加速。 +- 该代码编辑器可以被编译为在任何现代浏览器中运行。然而,目前的重点并不在网络版的开发上。 + +![ecode official screenshot][4] + +这听起来不错。那么,让我们看一看。 + +> 🚧 该项目正在大力开发中。你不应该在日常工作中依赖这个工具。 + +### ecode 的特点 + +![ecode][7] + +[ecode][8] 是一个功能强大的编辑器,从一开始就有所有的基本功能。 + +当然,它有计划随着开发的进展增加更多的东西。就目前而言,这里有一些关键的亮点: + +- **可移植** +- **语法高亮** +- **终端支持** +- **自动补全** +- **可定制的颜色方案** +- **可定制的键盘绑定**。 +- **LSP 支持** +- **Minimap** +- **插件管理器** +- **深色和浅色模式** +- **各种类型的分割视图以适应不同的工作流程**。 + +我在 Linux Mint 上简单地试了一下这个编辑器,它看起来确实是正在开发中。 + +但是,即使在其早期阶段,它也支持广泛的语言和相应的语法高亮。 + +![ecode options][9] + +你可以从一组预定义的主题中快速定制编辑器的主题。 + +对于编写大量代码(冗长的片段)并需要快速浏览的用户来说,minimap 将非常方便。 + +最初,当我在一个空白区域右键点击时,该应用崩溃了。但是,随着下一个版本 **0.4.1**(在发表这篇文章的时候)的更新,它很快就被修复了。所以,我想说**开发进展似乎很有希望**。 + +![][10] + +### 下载 ecode + +你可以尝试一下[在线 demo][13] 来快速测试一些选项。 + +一个 AppImage 文件可用于所有 Linux 发行版。用于 macOS 和 Windows 的软件包也是可用的。 + +你可以从它的 [GitHub 发布页][14]获得这些包,或者探索它的[源码][3]。 + +[下载 ecode][14] + +💬 有这么多有前途的新代码编辑器在开发中,你认为我们会对微软的 VS Code 有一个好的竞争吗? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ecode-editor/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/ecode-first-look.png +[2]: https://itsfoss.com/lite-xl/ +[3]: https://github.com/SpartanJ/eepp/ +[4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg +[5]: https://www.pjtra.com/apple-touch-icon.png +[7]: https://news.itsfoss.com/content/images/2023/01/ecode.png +[8]: https://github.com/SpartanJ/ecode +[9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png +[10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png +[13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js +[14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 From d386ac99b50f91519b62101d52b751232ee995a8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 1 Feb 2023 08:55:07 +0800 Subject: [PATCH 2695/3123] translating --- ...5.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md index a6260f7349..c97c16b9ff 100644 --- a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md +++ b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 30d8f66bebd3bc84f89c3a9addbfc814fe4fbbc5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 1 Feb 2023 15:56:23 +0800 Subject: [PATCH 2696/3123] RP @chai001125 https://linux.cn/article-15498-1.html --- ...ME Extension is in Development for Linux Users.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename {translated/news => published}/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md (89%) diff --git a/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/published/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md similarity index 89% rename from translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md rename to published/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md index 686bc80a4b..6562c25f1f 100644 --- a/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md +++ b/published/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -3,18 +3,18 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15498-1.html" -一个 ChatGPT GNOME 扩展正在为 Linux 用户持续开发中 +一个正在开发中的 ChatGPT GNOME 扩展 ====== ->你想要一个人工智能的 GNOME 桌面吗?下面这个扩展可以实现这个功能! +> 你想要一个人工智能的 GNOME 桌面吗?下面这个扩展可以实现这个功能! ![A ChatGPT GNOME Extension is in Development for Linux Users][1] -[ChatGPT][2] 是一个在当下十分流行的聊天机器人,它可以与用户进行互动,用户就像在与 ChatGPT 交流一样。 +[ChatGPT][2] 是一个在当下十分流行的聊天机器人,它可以与用户进行互动,用户就像在对话一样。 最近,关于 ChatGPT 的新闻时常出现在人们的视野之中,有时是关于 ChatGPT 的坏消息。 @@ -24,7 +24,7 @@ 人们对 ChatGPT 滥用/误用太多了,以至于其创建者 [OpenAI][3] 开发了一种工具来检测 ChatGPT 的使用情况,这个内容可以进一步访问 [此网页](https://news.itsfoss.com/openai-chatgpt-detection/)。 -现在,我发现了一个 Reddit 线程,它的开发人员提到了一些有趣的事情。 +现在,我注意到在一个 Reddit 讨论中,一位开发人员提到了一些有趣的事情。 一个用户名为 [HorrorPills][6] 的开发人员已经开始**为 ChatGPT 开发 GNOME 扩展**。 @@ -57,7 +57,7 @@ via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 4fd5c76a1a366957a004d4bf9306404c2a1ff3c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 1 Feb 2023 16:37:01 +0800 Subject: [PATCH 2697/3123] RP @geekpi https://linux.cn/article-15499-1.html --- ... Writer World-Class LIVE USB Creator [Tutorial].md | 60 +++++++++++-------- 1 file changed, 36 insertions(+), 24 deletions(-) rename {translated/tech => published}/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md (55%) diff --git a/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/published/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md similarity index 55% rename from translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md rename to published/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md index 48a3208d28..cddc0f21cc 100644 --- a/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md +++ b/published/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md @@ -3,37 +3,45 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15499-1.html" -Fedora Media Writer:世界级 LIVE USB 创建器(教程) +Fedora Media Writer:顶级的立付 USB 创建器 ====== -**关于安装和使用 Fedora Media Writer 从 Linux 和 Windows 创建 LIVE USB 的教程。** +> 关于安装和使用 Fedora Media Writer 从 Linux 和 Windows 创建立付 USB 的教程。 ![Fedora Media Writer][1] ### Fedora Media Writer -社区和 Fedora Linux 团队开发并维护 [Fedora Media Writer 应用][2]。这个应用可以将任何 ISO 镜像写入你的闪存盘(U 盘)中。此外,Fedora Media Writer 还有直接从 Fedora 镜像中下载 ISO 文件的功能,前提是你有一个稳定的互联网连接。 +社区和 Fedora Linux 团队开发并维护了 [Fedora Media Writer 应用][2]。这个应用可以将任何 ISO 镜像写入你的闪存盘(U 盘)中。此外,Fedora Media Writer 还有直接从 Fedora 镜像中下载 ISO 文件的功能,前提是你有一个稳定的互联网连接。 -此外,它还为你提供了一个下载选项列表:比如官方版本、新兴版本、Spin 版本和 Fedora 实验室镜像。 +此外,它还为你提供了一个下载选项列表:比如官方版本、新兴版本、定制版和实验室版本的镜像。 不仅如此,你还可以使用这个灵巧的工具将任何其他 ISO 镜像写入你的闪存。它不总是需要 Fedora ISO。 -虽然有其他流行的工具可以用来创建 LIVE USB,比如 [Etcher][3]、Ventoy 和 Rufus,但考虑到该团队是从主流 Fedora Linux 与贡献者一起开发的,你仍然可以尝试使用此程序。 +虽然有其他流行的工具可以用来创建 立付Live USB ,比如 [Etcher][3]、Ventoy 和 Rufus,但考虑到该团队是从主流 Fedora Linux 与贡献者一起开发的,你仍然可以尝试使用此程序。 + +> **LCTT 译注**:特此说明一下使用 “立付” 一词作为 “Live” 的中文翻译。 +> +> Live 原意多指“现场”、“实时”,在计算机环境中使用时也多引用此意。但对它的翻译就颇费神,因为无论是在 Live Patch,还是更多见的 Live USB/CD、Live Session,其实都不好翻译为“现场”、“实时”。 +> +> 提议者之前曾经尝试创造了新的“[临场](https://linux.cn/article-12854-1.html)”词汇,但是感觉有些不够达意。经过推敲,提议者再次推荐使用“立付”,在照顾发音的同时,取其“立时交付”之意。这样,Live USB/CD 可以译做 “立付 USB/CD”,Live Session 可以译做 “立付会话”。 +> +> 详见我们发布的[《LCTT 术语词典》](https://linux.cn/article-15496-1.html)。 因此,综上所述,这里是 Fedora Media Writer 的快速功能亮点。 #### Fedora Media Writer 的功能摘要 - 适用于 Linux、Windows 和 macOS -- 直接下载+写入镜像到 USB 闪存 +- 直接下载 + 写入镜像到 USB 闪存 - 官方版本(Workstation、IoT、Server)下载 - 新兴版本(Silverblue、Kinoite)下载 -- Spin(KDE Plasma、Xfce 等) -- 实验室(Fedora Astronomy、Robotic 等) +- 定制版(KDE Plasma、Xfce 等) +- 实验室(Fedora Astronomy、Robotic 等) - 可作为 Linux 发行版的 Flatpak 包 - 同时,可以将任何其他 ISO 镜像(非 Fedora)写入 U 盘。 - 能够格式化 U 盘,恢复 U 盘 @@ -43,25 +51,29 @@ Fedora Media Writer:世界级 LIVE USB 创建器(教程) #### Linux -Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任何 Linux(如 Fedora、Ubuntu 或 Linux Mint)中安装它,请[按照这个指南设置 Flatpak][4]。 +Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任何 Linux(如 Fedora、Ubuntu 或 Linux Mint)中安装它,请 [按照这个指南设置 Flatpak][4]。 -然后,点击下面的链接进行安装。这将启动你的 Linux 发行版的官方软件程序(如 Discover、GNOME Software)。安装后,你可以通过应用程序菜单启动它。 +然后,点击下面的链接进行安装。这将启动你的 Linux 发行版的官方软件程序(如 发现Discover应用、GNOME 软件Software 应用)。安装后,你可以通过应用程序菜单启动它。 -[以 Flatpak 形式安装 Fedora Media Writer][5] +> **[以 Flatpak 形式安装 Fedora Media Writer][5]** #### Windows -如果你是一个 Windows 用户并计划迁移到 Linux(或 Fedora),它是一个完美的工具。你需要从 GitHub 上下载 exe 安装程序(链接如下),并按照屏幕上的指示进行安装。 +如果你是一个计划迁移到 Linux(如 Fedora)的 Windows 用户,它是一个完美的工具。你需要从 GitHub 上下载 exe 安装程序(链接如下),并按照屏幕上的指示进行安装。 -[用于 Windows 的最新安装程序(exe)][6] +> **[用于 Windows 的最新安装程序(exe)][6]** 安装完成后,你可以从开始菜单启动它。 +#### macOS + 对于 macOS,你可以在上述链接中获取 dmg 文件。 -### 如何使用 Fedora Media Writer 在 Linux 中创建 LIVE USB +> **[用于 macOS 的最新安装程序(dmg)][6]** -第一个页面给你两个主要选项。自动下载选项用于即时下载 ISO 镜像。第二个选项是直接从你的磁盘上写入已经下载的 ISO 文件。 +### 如何使用 Fedora Media Writer 在 Linux 中创建立付 USB + +第一个页面给你两个主要选项。自动下载Download automatically 选项用于即时下载 ISO 镜像。第二个选项是直接从你的磁盘上写入已经下载的 ISO 文件。 如果你已经插上了 USB,你应该看到它是第三个选项。第三个选项是格式化并删除你 U 盘中的所有数据,并将其恢复到出厂设置。 @@ -71,17 +83,17 @@ Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任 ![Fedora Media Writer - 第一个页面][7] -自动下载选项为你提供了以下页面,可以从镜像中下载任何你想要的 Fedora ISO。这对很多人来说很有用,因为它消除了单独下载 ISO 文件、验证校验和等的麻烦。 +自动下载Download automatically选项为你提供了以下页面,可以从镜像中下载任何你想要的 Fedora ISO。这对很多人来说很有用,因为它消除了单独下载 ISO 文件、验证校验和等的麻烦。 ![自动下载选项给了你这些选项][8] -在选择了发行版之后,最后的页面会给你版本(Fedora 36、35 等)和架构(x86、ARM 等)的选项。另外,你应该看到目标 USB。点击下载和写入,开始这个过程。 +在选择了发行版之后,最后的页面会给你版本(Fedora 36、35 等)和架构(x86、ARM 等)的选项。另外,你应该看到目标 USB。点击 “下载并写入Download & Write”,开始这个过程。 ![Fedora Media Writer 的最终写入页面][9] #### 从磁盘上写入一个现有的 ISO 文件 -当你选择 “select iso file” 时,你可以从系统中选择该文件。之后,选择目标 USB 驱动器,然后点击写入,开始这个过程。 +当你选择 “选择 ISO 文件select .iso file” 时,你可以从系统中选择该文件。之后,选择目标 USB 驱动器,然后点击 “写入Write”,开始这个过程。 ![通过 Fedora Media Writer 直接写入 ISO][10] @@ -99,11 +111,11 @@ Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任 ### 结束语 -我希望本指南能帮助你在日常的 USB 写入工作中使用 Fedora Media Writer。另外,这个工具的好处是你可以用它来格式化/恢复你的 U 盘。你不再需要 GParted 或 GNOME Disks 了。 +我希望本指南能帮助你在日常的 USB 写入工作中使用 Fedora Media Writer。另外,这个工具的好处是你可以用它来格式化/恢复你的 U 盘。你不再需要 GParted 或 GNOME 磁盘Disks 应用了。 对于 Linux、Windows 和 macOS 用户来说,这是一个非常棒的程序。 -干杯。 +加油。 -------------------------------------------------------------------------------- @@ -112,7 +124,7 @@ via: https://www.debugpoint.com/fedora-media-writer/ 作者:[Arindam][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/) 荣誉推出 From b53498e7fd4fd6ad26b5189b002e7d4a0543ba7c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 1 Feb 2023 16:43:51 +0800 Subject: [PATCH 2698/3123] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202301?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- published/{ => 202301}/20190331 Codecademy vs. The BBC Micro.md | 0 published/{ => 202301}/20210718 Is Open-Source Software Secure.md | 0 published/{ => 202301}/20211012 Create a timer on Linux.md | 0 ...e Popular Python Library for Data Analysis and Data Science.md | 0 ...⭐️ Give your Terminal a Retro Look Using this Neat Application.md | 0 ...031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 0 ...️ What you actually need to know about open source to get started.md | 0 ...21110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md | 0 .../{ => 202301}/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 0 ... Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md | 0 ... How to Setup Python Development Environment in Ubuntu and Fedora.md | 0 ...221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md | 0 ...UI Editors You Could Try If You are Not a Total Terminal Junkie.md | 0 .../20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md | 0 ... ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md | 0 ... lnav Advanced Log File Viewer for Linux Desktops and Servers.md | 0 ...1201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md | 0 ... ⭐️⭐️ 8 ideas for measuring your open source software usage.md | 0 ...ve Streaming Applications for Ubuntu and Other Linux [2022 Edition].md | 0 .../20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md | 0 ...0221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 0 .../20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md | 0 ...️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md | 0 .../20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 0 ...2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md | 0 ...7.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md | 0 ...221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md | 0 ...to Google, Alexa, and Siri in Works for Home Assistant Platform.md | 0 .../20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md | 0 .../20230102.0 ⭐️ How to read and write files in Rust.md | 0 ...0230102.1 ⭐️ who Command in Linux Explanation with Examples.md | 0 ...️ Colorblind Filters GNOME Extension to help Colorblind Users.md | 0 ...arine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 0 ...0230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md | 0 ...0230104.0 ⭐️⭐️ Learn to code with my retro computer program.md | 0 ...ial Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md | 0 ...0105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md | 0 ...rux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md | 0 ...time-series data to power your edge projects with open source tools.md | 0 ... 10.7 Release Promises These 3 Key Improvements for Linux Users.md | 0 .../20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md | 0 ...⭐️ Learn the Ada programming language by writing a simple game.md | 0 ...09.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md | 0 .../{ => 202301}/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md | 0 ...️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md | 0 .../{ => 202301}/20230110.3 ⭐️⭐️ How to use methods in Java.md | 0 ... ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md | 0 ...0111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md | 0 ... Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md | 0 ...course 3.0 is an Amazing Release With Much-Needed Feature Additions.md | 0 ...⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md | 0 ...13.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md | 0 ...s Growth Continues, Medium Joins in With its New Community Platform.md | 0 ... Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md | 0 .../{ => 202301}/20230114.0 ⭐️ A 4-minute guide to Java loops.md | 0 ...90% Systems Had Flatpak Installed, Says GNOME's Research Report.md | 0 56 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202301}/20190331 Codecademy vs. The BBC Micro.md (100%) rename published/{ => 202301}/20210718 Is Open-Source Software Secure.md (100%) rename published/{ => 202301}/20211012 Create a timer on Linux.md (100%) rename published/{ => 202301}/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md (100%) rename published/{ => 202301}/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md (100%) rename published/{ => 202301}/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md (100%) rename published/{ => 202301}/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md (100%) rename published/{ => 202301}/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md (100%) rename published/{ => 202301}/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md (100%) rename published/{ => 202301}/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md (100%) rename published/{ => 202301}/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md (100%) rename published/{ => 202301}/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md (100%) rename published/{ => 202301}/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md (100%) rename published/{ => 202301}/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md (100%) rename published/{ => 202301}/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md (100%) rename published/{ => 202301}/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md (100%) rename published/{ => 202301}/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md (100%) rename published/{ => 202301}/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md (100%) rename published/{ => 202301}/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md (100%) rename published/{ => 202301}/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md (100%) rename published/{ => 202301}/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md (100%) rename published/{ => 202301}/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md (100%) rename published/{ => 202301}/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md (100%) rename published/{ => 202301}/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md (100%) rename published/{ => 202301}/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md (100%) rename published/{ => 202301}/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md (100%) rename published/{ => 202301}/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md (100%) rename published/{ => 202301}/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md (100%) rename published/{ => 202301}/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md (100%) rename published/{ => 202301}/20230102.0 ⭐️ How to read and write files in Rust.md (100%) rename published/{ => 202301}/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md (100%) rename published/{ => 202301}/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md (100%) rename published/{ => 202301}/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md (100%) rename published/{ => 202301}/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md (100%) rename published/{ => 202301}/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md (100%) rename published/{ => 202301}/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md (100%) rename published/{ => 202301}/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md (100%) rename published/{ => 202301}/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md (100%) rename published/{ => 202301}/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md (100%) rename published/{ => 202301}/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md (100%) rename published/{ => 202301}/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md (100%) rename published/{ => 202301}/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md (100%) rename published/{ => 202301}/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md (100%) rename published/{ => 202301}/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md (100%) rename published/{ => 202301}/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md (100%) rename published/{ => 202301}/20230110.3 ⭐️⭐️ How to use methods in Java.md (100%) rename published/{ => 202301}/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md (100%) rename published/{ => 202301}/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md (100%) rename published/{ => 202301}/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md (100%) rename published/{ => 202301}/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md (100%) rename published/{ => 202301}/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md (100%) rename published/{ => 202301}/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md (100%) rename published/{ => 202301}/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md (100%) rename published/{ => 202301}/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md (100%) rename published/{ => 202301}/20230114.0 ⭐️ A 4-minute guide to Java loops.md (100%) rename published/{ => 202301}/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md (100%) diff --git a/published/20190331 Codecademy vs. The BBC Micro.md b/published/202301/20190331 Codecademy vs. The BBC Micro.md similarity index 100% rename from published/20190331 Codecademy vs. The BBC Micro.md rename to published/202301/20190331 Codecademy vs. The BBC Micro.md diff --git a/published/20210718 Is Open-Source Software Secure.md b/published/202301/20210718 Is Open-Source Software Secure.md similarity index 100% rename from published/20210718 Is Open-Source Software Secure.md rename to published/202301/20210718 Is Open-Source Software Secure.md diff --git a/published/20211012 Create a timer on Linux.md b/published/202301/20211012 Create a timer on Linux.md similarity index 100% rename from published/20211012 Create a timer on Linux.md rename to published/202301/20211012 Create a timer on Linux.md diff --git a/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/published/202301/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md similarity index 100% rename from published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md rename to published/202301/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/published/202301/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md similarity index 100% rename from published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md rename to published/202301/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md diff --git a/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/published/202301/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md similarity index 100% rename from published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md rename to published/202301/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md diff --git a/published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/published/202301/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md similarity index 100% rename from published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md rename to published/202301/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md diff --git a/published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/published/202301/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md similarity index 100% rename from published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md rename to published/202301/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md diff --git a/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/published/202301/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md similarity index 100% rename from published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md rename to published/202301/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md diff --git a/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/published/202301/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md similarity index 100% rename from published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md rename to published/202301/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md diff --git a/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/published/202301/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md similarity index 100% rename from published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md rename to published/202301/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md diff --git a/published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/published/202301/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md similarity index 100% rename from published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md rename to published/202301/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md diff --git a/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/published/202301/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md similarity index 100% rename from published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md rename to published/202301/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md diff --git a/published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/published/202301/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md similarity index 100% rename from published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md rename to published/202301/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md diff --git a/published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/published/202301/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md similarity index 100% rename from published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md rename to published/202301/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md diff --git a/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/published/202301/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md similarity index 100% rename from published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md rename to published/202301/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md diff --git a/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/published/202301/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md similarity index 100% rename from published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md rename to published/202301/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md diff --git a/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/published/202301/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md similarity index 100% rename from published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md rename to published/202301/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/202301/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md similarity index 100% rename from published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md rename to published/202301/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md diff --git a/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/published/202301/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md similarity index 100% rename from published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md rename to published/202301/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md diff --git a/published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/published/202301/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md similarity index 100% rename from published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md rename to published/202301/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md diff --git a/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/published/202301/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md similarity index 100% rename from published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md rename to published/202301/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md diff --git a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/published/202301/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md similarity index 100% rename from published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md rename to published/202301/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md diff --git a/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/published/202301/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md similarity index 100% rename from published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md rename to published/202301/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md diff --git a/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/published/202301/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md similarity index 100% rename from published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md rename to published/202301/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md diff --git a/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/published/202301/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md similarity index 100% rename from published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md rename to published/202301/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md diff --git a/published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/published/202301/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md similarity index 100% rename from published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md rename to published/202301/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md diff --git a/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/published/202301/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md similarity index 100% rename from published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md rename to published/202301/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/202301/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md similarity index 100% rename from published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md rename to published/202301/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md diff --git a/published/20230102.0 ⭐️ How to read and write files in Rust.md b/published/202301/20230102.0 ⭐️ How to read and write files in Rust.md similarity index 100% rename from published/20230102.0 ⭐️ How to read and write files in Rust.md rename to published/202301/20230102.0 ⭐️ How to read and write files in Rust.md diff --git a/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/published/202301/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md similarity index 100% rename from published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md rename to published/202301/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md diff --git a/published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/published/202301/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md similarity index 100% rename from published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md rename to published/202301/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md diff --git a/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/published/202301/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md similarity index 100% rename from published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md rename to published/202301/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md diff --git a/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/published/202301/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md similarity index 100% rename from published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md rename to published/202301/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md diff --git a/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md b/published/202301/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md similarity index 100% rename from published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md rename to published/202301/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md diff --git a/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/published/202301/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md similarity index 100% rename from published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md rename to published/202301/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md diff --git a/published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/published/202301/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md similarity index 100% rename from published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md rename to published/202301/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md diff --git a/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/published/202301/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md similarity index 100% rename from published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md rename to published/202301/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md diff --git a/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/published/202301/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md similarity index 100% rename from published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md rename to published/202301/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md diff --git a/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/published/202301/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md similarity index 100% rename from published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md rename to published/202301/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md diff --git a/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/published/202301/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md similarity index 100% rename from published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md rename to published/202301/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md diff --git a/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/published/202301/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md similarity index 100% rename from published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md rename to published/202301/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md diff --git a/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/published/202301/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md similarity index 100% rename from published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md rename to published/202301/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md diff --git a/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/published/202301/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md similarity index 100% rename from published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md rename to published/202301/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md diff --git a/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/published/202301/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md similarity index 100% rename from published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md rename to published/202301/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md diff --git a/published/20230110.3 ⭐️⭐️ How to use methods in Java.md b/published/202301/20230110.3 ⭐️⭐️ How to use methods in Java.md similarity index 100% rename from published/20230110.3 ⭐️⭐️ How to use methods in Java.md rename to published/202301/20230110.3 ⭐️⭐️ How to use methods in Java.md diff --git a/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/published/202301/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md similarity index 100% rename from published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md rename to published/202301/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md diff --git a/published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/published/202301/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md similarity index 100% rename from published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md rename to published/202301/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md diff --git a/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/published/202301/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md similarity index 100% rename from published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md rename to published/202301/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md diff --git a/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/published/202301/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md similarity index 100% rename from published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md rename to published/202301/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md diff --git a/published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/published/202301/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md similarity index 100% rename from published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md rename to published/202301/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md diff --git a/published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/published/202301/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md similarity index 100% rename from published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md rename to published/202301/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md diff --git a/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/published/202301/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md similarity index 100% rename from published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md rename to published/202301/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md diff --git a/published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/published/202301/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md similarity index 100% rename from published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md rename to published/202301/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md diff --git a/published/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/published/202301/20230114.0 ⭐️ A 4-minute guide to Java loops.md similarity index 100% rename from published/20230114.0 ⭐️ A 4-minute guide to Java loops.md rename to published/202301/20230114.0 ⭐️ A 4-minute guide to Java loops.md diff --git a/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/published/202301/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md similarity index 100% rename from published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md rename to published/202301/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md From 547d4a4ef9c29caae176659615f0a8ccd1913264 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 2 Feb 2023 08:39:28 +0800 Subject: [PATCH 2699/3123] translating --- ... GNOME Screenshot Tool Old and New Methods.md | 144 ------------------ ... GNOME Screenshot Tool Old and New Methods.md | 144 ++++++++++++++++++ 2 files changed, 144 insertions(+), 144 deletions(-) delete mode 100644 sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md create mode 100644 translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md diff --git a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md deleted file mode 100644 index 28a480f9d1..0000000000 --- a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md +++ /dev/null @@ -1,144 +0,0 @@ -[#]: subject: "GNOME Screenshot Tool: Old and New Methods" -[#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpis" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GNOME Screenshot Tool: Old and New Methods -====== - -**Here are the details about the GNOME Screenshot tool, its usage and how to install and launch them in older and modern methods.** - -![][1] - -In 2022, GNOME changed its default screenshot tool and built the screenshot function as part of the GNOME Shell. It’s not a separate application anymore. - -Earlier, GNOME featured a native GTK app gnome-screenshot via all the major Linux distributions such as Ubuntu and Fedora. However, from [GNOME 42][2] onwards, this has been removed. Hence [Ubuntu 22.04][3] and Fedora 36 onwards, you only get the following new screenshot UI as a default screenshot utility. - -This change fundamentally broke many workflows. Since it is not an executable you can launch separately, you only depend on the keyboard’s print-screen key. And only a shortcut is available via application search. - -Hence, capturing screenshots with a delay in the new GNOME screenshot UI becomes much more challenging. - -Here are some of the ways you can still use the older GNOME Screenshot tool and how to trigger the new screenshot UI manually. - -### GNOME Screenshot Tool: How to install the old GUI - -If you are using Ubuntu 22.04 and above, or any Ubuntu-based distribution with a GNOME desktop, run the following command to install it. - -``` -sudo apt install gnome-screenshot -``` - -And for Fedora users, use the following command. - -``` -sudo dnf install gnome-screenshot -``` - -If you are using a **GNOME desktop in Arch Linux** or Manjaro Linux GNOME, then use the below command to install it. - -``` -pacman -S gnome-desktop -``` - -After installation, launch it via the application menu. - -![GNOME Screenshot (old)][4] - -![GNOME Screenshot main window (old)][5] - -For further customization, you can open Settings and remove the keybinding of Print-Screen from the Shell’s new UI and create a custom keyboard shortcut with the following commands. - -``` -gnome-screenshot --window -gnome-screenshot --area -gnome-screenshot -``` - -### GNOME Screenshot UI: How to manually trigger it via the command line - -The function which executes when you press the Print-Screen key from the keyboard is part of the [GNOME Shell code][6]. Unfortunately, it is protected inside dbus API, and you can not invoke it directly. - -It has been done to make you safe under Wayland so that no arbitrary code gets access to dbus call functions via any script. - -However, this broke many use cases and scripts which people wrote over the years. For example, many users reported [Zoom][7] videoconferencing calls [broke][8] under GNOME-Wayland due to this, which was eventually solved via the below method of turning off the safe mode. - -Let’s see how you can turn it off and trigger the gnome-shell screenshot - -Use caution before using the following steps. Since it may open up your GNOME Shell for arbitrary script access. Make sure you know what you are doing. - -First, you need to open [GNOME looking glass][9] to turn off the safe mode. - -Press `ALT+F`2 and type below: - -``` -lg -``` - -![Launch looking glass][10] - -Select Evaluator at the top, and in the command window, type the following. And hit enter. - -``` -global.context.unsafe_mode = true -``` - -![Turn off safe mode][11] - -You should see a response that it is turned off. - -![Verification][12] - -Now press escape to close the looking glass. And open a terminal prompt. - -And type the following to launch the screenshot tool. - -``` -gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' -``` - -You should see the new GNOME Shell screenshot triggered. - -![Launch new GNOME Shell Screenshot UI from CLI][13] - -If you want to turn it off, open `lg` again and set it to false. - -``` -global.context.unsafe_mode = true -``` - -### Closing Notes - -Usage-wise, you can still use the new screenshot feature via any shell script by turning off the safe mode. But it is not recommended. It’s always better to use the old GNOME Screenshot tool to avoid all the hassles. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ - -作者:[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/2023/01/gnome-sc1-1.jpg -[2]: https://www.debugpoint.com/gnome-42/ -[3]: https://www.debugpoint.com/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-old.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-main-window-old.jpg -[6]: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/screenshot.js#L2210 -[7]: https://www.debugpoint.com/zoom-install-linux-ubuntu-download/ -[8]: https://community.zoom.com/t5/Meetings/Wayland-screen-sharing-broken-with-GNOME-41-on-Fedora-35/m-p/22539 -[9]: https://wiki.gnome.org/Projects/GnomeShell/LookingGlass -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-looking-glass.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Turn-off-safe-mode.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Verification.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-new-GNOME-Shell-Screenshot-UI-from-CLI.jpg diff --git a/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md new file mode 100644 index 0000000000..d36bc0f684 --- /dev/null +++ b/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -0,0 +1,144 @@ +[#]: subject: "GNOME Screenshot Tool: Old and New Methods" +[#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME 截图工具:旧的和新的方法 +====== + +**以下是关于 GNOME 截图工具的细节,它的用法以及如何用旧的和现代的方法安装和启动它们。** + +![][1] + +2022 年,GNOME 改变了其默认的截图工具,并将截图功能构建为 GNOME Shell 的一部分。它不再是一个独立的应用了。 + +早些时候,GNOME 通过所有主要的 Linux 发行版,如 Ubuntu 和 Fedora,提供了一个本地 GTK 应用 gnome-screenshot。然而,从 [GNOME 42][2] 开始,这个功能已经被移除。因此从 [Ubuntu 22.04][3] 和 Fedora 36 开始,你只能得到以下新的截图 UI 作为默认的截图工具。 + +这一变化从根本上破坏了许多工作流程。因为它不是一个你可以单独启动的可执行文件,你只能依赖键盘上的 Print-Screen 键。而且只能通过应用搜索获得一个快捷方式。 + +因此,在新的 GNOME 截图 UI 中捕捉有延迟的屏幕截图变得更有挑战性。 + +下面是一些你仍然可以使用旧的 GNOME 截图工具的方法,以及如何手动触发新的截图 UI。 + +### GNOME 截图工具:如何安装旧版 GUI + +如果你使用的是 Ubuntu 22.04 及以上版本,或者任何基于 Ubuntu 的带有 GNOME 桌面的发行版,运行以下命令来安装它。 + +``` +sudo apt install gnome-screenshot +``` + +而对于 Fedora 用户,使用下面的命令。 + +``` +sudo dnf install gnome-screenshot +``` + +如果你在 **Arch Linux 或者 Manjaro Linux 中使用 GNOME 桌面**,那么使用下面的命令来安装它。 + +``` +pacman -S gnome-desktop +``` + +安装后,通过应用程序菜单启动它。 + +![GNOME 截图(旧)][4] + +![GNOME 截图主窗口(旧)][5] + +为了进一步定制,你可以打开设置,从 Shell 的新 UI 中移除 Print-Screen 的按键绑定,并通过以下命令创建一个自定义的键盘快捷方式。 + +``` +gnome-screenshot --window <窗口> +gnome-screenshot --area <区域> +gnome-screenshot <全屏> +``` + +### GNOME 截图 UI:如何通过命令行手动触发它 + +当你从键盘上按下 Print-Screen 键时执行的函数是 [GNOME Shell 代码][6]的一部分。不幸的是,它被保护在 dbus API 内,你不能直接调用它。 + +这样做是为了让你在 Wayland 下安全,这样就不会有任意的代码通过任何脚本获得对 dbus 调用函数的访问。 + +然而,这破坏了许多使用场景和人们多年来编写的脚本。例如,许多用户报告说 [Zoom][7] 在 GNOME-Wayland 下的视频会议通话[中断][8]就是因为这个原因,最终通过下面这个关闭安全模式的方法解决了这个问题。 + +让我们看看如何关闭它并触发 gnome-shell 的截图 + +在使用下面的步骤之前,请谨慎行事。因为它可能会开放你的 GNOME Shell,让你任意访问脚本。请确保你知道你在做什么。 + +首先,你需要打开 [GNOME looking glass][9] 来关闭安全模式。 + +按 `ALT+F2` 并输入以下内容: + +``` +lg +``` + +![启动 looking glass][10] + +在顶部选择 Evaluator,在命令窗口中,输入以下内容。然后点击回车。 + +``` +global.context.unsafe_mode = true +``` + +![关闭安全模式][11] + +你应该看到一个响应,即它已被关闭。 + +![验证][12] + +现在按 esc 键关闭 looking glass。并打开一个终端。 + +输入以下内容以启动截图工具。 + +``` +gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' +``` + +你应该看到新的 GNOME Shell 截图被触发了。 + +![从 CLI 启动新的 GNOME Shell 截图 UI][13] + +如果你想关闭它,再次打开 `lg` 并将其设置为 false。 + +``` +global.context.unsafe_mode = true +``` + +### 结束语 + +从使用上来说,通过关闭安全模式,你仍然可以通过任何 shell 脚本使用新的截图功能。但不建议这样做。最好是使用旧的 GNOME 截图工具来避免所有的麻烦。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/gnome-sc1-1.jpg +[2]: https://www.debugpoint.com/gnome-42/ +[3]: https://www.debugpoint.com/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-old.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-main-window-old.jpg +[6]: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/screenshot.js#L2210 +[7]: https://www.debugpoint.com/zoom-install-linux-ubuntu-download/ +[8]: https://community.zoom.com/t5/Meetings/Wayland-screen-sharing-broken-with-GNOME-41-on-Fedora-35/m-p/22539 +[9]: https://wiki.gnome.org/Projects/GnomeShell/LookingGlass +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-looking-glass.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Turn-off-safe-mode.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Verification.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-new-GNOME-Shell-Screenshot-UI-from-CLI.jpg From 54f1d6c8270340e9bcf13e43112e32bfa4ca962b Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 2 Feb 2023 08:44:19 +0800 Subject: [PATCH 2700/3123] translating --- ...221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md index f14b97ed3f..7b70b8cfc4 100644 --- a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md +++ b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ef8da203c651fc7cff99a196e2d74e09218f67e1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 09:51:19 +0800 Subject: [PATCH 2701/3123] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=AB=8B=E4=BB=98?= =?UTF-8?q?=E7=9A=84=E9=93=BE=E6=8E=A5=EF=BC=8C=E4=BB=A5=E5=8F=8A=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E5=AF=B9=E2=80=9C=E4=BA=A4=E4=BA=92=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E2=80=9D=E7=9A=84=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dict.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dict.md b/Dict.md index 4f9f9ed03a..d5fc8e5631 100644 --- a/Dict.md +++ b/Dict.md @@ -5,7 +5,7 @@ LCTT 术语词典 为什么要自创翻译词汇?在翻译过程中,我们发现一些非缩写的英语术语沿袭使用了英语单词/短语,而没有得体的、公认的、正式的对应中文翻译。我们认为,中英文混杂是对原生语言的一种污染(英文缩写除外,这是为了减少冗长的语句),按照本地化的宗旨,应该对这些词汇进行翻译,并在必要时创造新的词汇。故此,我们在几年的翻译中,逐渐推敲和形成了一些新的译法,并在我们翻译的文章中使用和推广。 -对这些译法,我们尽量遵循“信雅达”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。 +对这些译法,我们尽量遵循“信达雅”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。 我们采用的方法是: @@ -44,7 +44,7 @@ Live 原意多指“现场”、“实时”,在计算机环境中使用时也 - 提议者:wxy - 首次链接(临场):https://linux.cn/article-12854-1.html -- 首次链接(立付):(暂缺) +- 首次链接(立付):https://linux.cn/article-15499-1.html #### Repo/Repository @@ -69,6 +69,8 @@ Shell 是 Unix/Linux 等系统的 `sh`、`bash` 等命令行的接口程序, 这个词汇也是一个一直没有翻译而径直使用的计算机词汇。我们也没有见到(找到)合适的翻译。但是我们在 LCTT 译者 CanYellow 翻译的一篇文章中见到他将其翻译为 “交互界面”,我们认为这是一种好的翻译。 +注:有些人对此次条的翻译持反对意见,此词条建议尝试性在部分语境中使用。 + - 提议者:CanYellow - 首次链接:https://linux.cn/article-15469-1.html From a50ac4b9498b47edd1aa6ec0b2885893b5d9b976 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 10:18:32 +0800 Subject: [PATCH 2702/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @natsumm 感谢您,完成了第一篇翻译贡献! --- ...ort for AV1 Video and Steam Deck Controller.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index deefaf1896..a08b93d24f 100644 --- a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -1,66 +1,66 @@ -[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" +[#]: subject: "Kodi 20.0 \"Nexus\" Update Includes Support for AV1 Video and Steam Deck Controller" [#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "natsumm" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Kodi 20.0 "Nexus" 带来了诸多新功能,其中包括对 AV1 视频和 Steam Deck 控制器的支持 +Kodi 20.0 发布,支持 AV1 视频和 Steam Deck 控制器 ====== -Kodi v20 版本增加了多项重要功能。 +> Kodi 20 版本增加了多项重要功能。 ![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] [Kodi][2] 是 Kodi 基金会开发的跨平台开源媒体播放器,提供了大量功能。 -它的上一个主流版本是**两年前**发布的 [Kodi 19‘Matrix’][3]。 +它的上一个主要版本是**两年前**发布的 [Kodi 19 “Matrix”][3]。 -**Kodi 'Nexus'** 是改进后的版本,它更新了几个新功能。 +**Kodi “Nexus”** 是改进后的主要版本,它提供了几个新功能和改进。 让我们来看看这些。 -### 🆕 Kodi 20 'Nexus': 更新了什么? +### 🆕 Kodi 20 “Nexus” 更新了什么? -这次发布带来了很多新的特性。较为突出的有: +这次发布带来了很多新的特性,较为突出的有: -- **AV1 编解码支持** -- **增强的 PVR 支持** -- **更新后的数据抓取器** -- **多个修复和改进** +- AV1 编解码支持 +- 增强的 PVR 支持 +- 更新后的数据抓取器 +- 多个修复和改进 ![kodi 20 nexus][4] #### AV1 编解码支持 -Kodi 现在在 Linux 平台上支持开源免版税的 [AV1编解码][5]。 +Kodi 现在在 Linux 平台上支持开源的免版税的 [AV1 编解码][5]。 -通过 [Video acceleration API][6](VA-API)实现了解码 AV1 的硬件加速,并且还为视频输入流增加了 AV1 支持。 +通过 [视频加速 API][6](VA-API)实现了解码 AV1 的硬件加速,并且还为视频输入流增加了 AV1 支持。 #### 增强的 PVR 支持 通过 [PVR][7] 观看电视和收听广播也得到了许多改进,其中一些值得注意的改进包括: - 重新设计过的频道管理器。 -- 能够显示特定频道或录制的提供方。 -- 能够按提供方对频道和录制进行排序。 -- 支持只读形式的录制。 +- 能够显示特定频道或录音的提供方。 +- 能够按提供方对频道和录音进行排序。 +- 支持只读录音。 - 改进后的 EPG 搜索。 -- 自动清理缓存的PVR图像。 +- 自动清理缓存的 PVR 图像。 - PVR 客户端插件的多实例支持。 -- 海湾主题下的 PVR 体验调整。 +- Estuary 主题下的 PVR 体验调整。 #### 更新后的数据抓取器 -TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流”和“信息标记视频”后出现问题; +TVDB 电视节目抓取器已更新,以防止其在加载损坏的“视频流”和“信息标记视频”后出现问题。 > 🗒️ 建议旧版 Kodi 20 的用户更新到最新版本,避免使用此抓取器时出现问题。 此外,更新后的 Python 电视节目抓取器,解决了一个潜在的问题,即新的抓取器使用的 XML 格式与现有的程序不同的问题。 -因此,当您向库中现有的电视节目添加新集时,即便您正在使用 NFO 文件,您也必须刷新节目以下载新集指南。 +因此,当你向库中现有的电视节目添加新集时,即便你正在使用 NFO 文件,你也必须刷新节目以下载新集指南。 #### 🛠️ 多个修复和改进 @@ -69,7 +69,7 @@ TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流 - Steam Deck 控制器的内置支持。 - 开始支持 NFSv4 的文件系统。 - 默认支持光盘。 -- 使用通用缓冲区管理API时,能够设置使用 HDR 输出。 +- 使用通用缓冲区管理 API 时,能够设置使用 HDR 输出。 - 解决了 DRMPrime 的一个问题。 - 多个对于图文电视的支持。 - 修复了单机游戏的黑屏问题。 @@ -78,9 +78,9 @@ TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流 ### 📥 下载 Kodi 20 -Kodi 20 'Nexus' 可从 [官方网站][9] 及其 [GitHub 仓库] 获取。 +Kodi 20 “Nexus” 可从 [官方网站][9] 及其 [GitHub 仓库][10] 获取。 -在应用商店和官方存储库也可以获取到。 +在应用商店和官方软件库也可以获取到。 Kodi v21(代号:Omega)正在开发中。如果你想从这次发布中获得更多内容,请关注下一个版本。 @@ -91,7 +91,7 @@ via: https://news.itsfoss.com/kodi-20-nexus-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[natsumm](https://github.com/natsumm) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1b2ca61ba208268cdbfc7ec18b992e952c50a655 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 10:19:39 +0800 Subject: [PATCH 2703/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @natsumm 本文首发地址:https://linux.cn/article-15501-1.html 您的 LCTT 专页:https://linux.cn/lctt/natsumm --- ...te Includes Support for AV1 Video and Steam Deck Controller.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md (98%) diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/published/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md similarity index 98% rename from translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md rename to published/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index a08b93d24f..358fe6c6eb 100644 --- a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/published/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "natsumm" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15501-1.html" Kodi 20.0 发布,支持 AV1 视频和 Steam Deck 控制器 ====== From 1ead590b5bebb28a0dc596b8f77f3cc2d897c761 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 17:09:49 +0800 Subject: [PATCH 2704/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @onionstalgia https://linux.cn/article-15502-1.html 恭喜你已升级为⭐️⭐️译者! --- ...919 I got my first pull request merged!.md | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) rename {translated/talk => published}/20220919 I got my first pull request merged!.md (53%) diff --git a/translated/talk/20220919 I got my first pull request merged!.md b/published/20220919 I got my first pull request merged!.md similarity index 53% rename from translated/talk/20220919 I got my first pull request merged!.md rename to published/20220919 I got my first pull request merged!.md index caa06c812b..bf3badced4 100644 --- a/translated/talk/20220919 I got my first pull request merged!.md +++ b/published/20220919 I got my first pull request merged!.md @@ -2,44 +2,47 @@ [#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" [#]: author: "Oluwaseun https://opensource.com/users/jhhornn" [#]: collector: "lkxed" -[#]: translator: "onionstalgia " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "onionstalgia" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15502-1.html" 我的第一个拉取请求被合并了! ====== + +![][0] + > 体验为开源做出贡献的快乐。 -![Dandelion zoomed in][1] - -图片来自 Rob Tiller, CC BY-SA 4.0 - -难以用言语形容我在收到合并通知(如下图)时的喜悦,当然这要归功于现在我上的工程学校,[AltSchool Africa][2]。 +难以用言语形容我在收到合并通知(如下图)时的喜悦,当然这要归功于现在我上的工程学校 [AltSchool Africa][2]。 ![successful merge message][3] -在此之前,我曾多次接触过开源的概念,了解它在技术领域的重要性,甚至参加过开源会议(比如 OSCAFest)。我曾多次跃跃欲试,但当打开 GitHub 来想创建些东西时,冒名顶替综合症就会冒出来。 +在此之前,我曾多次接触过开源的概念,了解了它在技术领域的重要性,甚至参加过开源会议(比如 OSCAFest)。我曾多次跃跃欲试,但当打开 GitHub 来想创建些东西时,冒名顶替综合症就会冒出来。 -快进到 2022 年 8 月 8 日星期一。当观看了 Bolaji 为开源做贡献的视频之后,我重新振奋起来。不过,想要把我学到的东西付诸实践,我注意到需要下面几个步骤: +时间来到 2022 年 8 月 8 日星期一,当观看了 Bolaji 为开源做贡献的视频之后,我重新振奋起来。不过,想要把我学到的东西付诸实践,我注意到需要下面几个步骤: -步骤: +步骤: 1. 我要下定决心,做好为一个开源项目做出贡献的心理建设。 -2. 我要根据我的技能水平进行筛选,选择一个站点([一个比较好的议题(issue)][4])来开始我的第一个项目。我不停地往下翻看,直到找到了一个符合心意的项目。 +2. 我要根据我的技能水平进行筛选,我从一个站点([Good First Issues][4])寻找我开始的第一个项目。我不停地往下翻看,直到找到了一个符合心意的项目。 3. 我要确定自己掌握完成项目所需的 [Git 和 GitHub][5] 知识。 +> **LCTT 译注:** +> +> “[Good First Issues][4]” 这个网站主要是针对那些想为开源软件做贡献,但不知道从哪里开始或如何开始的开发者。通过为开发者提供过滤器,该网站使他们能够根据自己熟悉的编程语言来浏览和选择问题和存储库。此外,他们还可以选择他们想要解决的问题的类型。 + ### 项目 -经过长时间查找,我终于找到了一个名为 [确保没有缺失的 alt 属性][6] 的项目。我所要做的,就是为网站上的图片提供描述性的 alt 值。图片的 alt 值有助于提高网站的辅助功能,这样屏幕阅读器就可以向视障人士提供图像的详细描述了。这很简单,对吧?是的,但假如我没有下定决心想要作出贡献,我就不会找到这项目,在我心中开源仍将是个神话。 +经过长时间查找,我终于找到了一个名为 [确保没有缺失的 alt 属性][6] 的项目。我所要做的,就是为网站上的图片提供描述性的 `alt` 值。图片的 `alt` 值有助于提高网站的辅助功能,这样屏幕阅读器就可以向视障人士提供图像的详细描述了。这很简单,对吧?是的,但假如我没有下定决心想要作出贡献,我就不会找到这项目,在我心中开源仍将是个神话。 -我心潮澎湃,直到发现这个项目是来自[MDN][7]的。等等,MDNMozzila 开发者网络?干和 Mozilla 的开发者一样的事儿?他们会合并我这么小儿科的贡献吗?[莫名顶替综合症 ][8] 又开始了。 +我心潮澎湃,直到发现这个项目是来自 [MDN][7] 的。等等,MDNMozzila 开发者网络?干和 Mozilla 的开发者一样的事儿?他们会合并我这么小儿科的贡献吗?[冒名顶替综合症][8] 又开始了。 在检查这个议题时,我看到有人已经在提交贡献了,于是我鼓起勇气开始翻阅项目的内容。阅读和理解这个项目颇花费了我一些时间,而另一个要克服的,就是清楚处理这个议题我要怎么做。 这个项目就像你想的那么简单。 -于是,我挑选了两幅图片着手尝试。我给它们的 alt 属性赋值,提交我的更改,然后发出拉取请求。从提交请求到收到批准邮件的这段时间,我充满了自我怀疑。我要不要关闭拉取请求?这可是 MDN 啊。好吧,这甚至都不算编程...... 如果请求没有被合并怎么办?我恐怕再也不会想为开源做出贡献了。不过,所有的疑虑都在我看到审阅者发来的这些邮件时烟消云散: +于是,我挑选了两幅图片着手尝试。我给它们的 `alt` 属性赋值,提交我的更改,然后发出拉取请求。从提交请求到收到批准邮件的这段时间,我充满了自我怀疑。我要不要关闭拉取请求?这可是 MDN 啊。好吧,这甚至都不算编程…… 如果请求没有被合并怎么办?我恐怕再也不会想为开源做出贡献了。不过,所有的疑虑都在我看到审阅者发来的这些邮件时烟消云散: ![拉取请求确认邮件][9] @@ -56,15 +59,13 @@ 我希望你能从这篇文章中感受到以下几点: * 开源是面向所有人的。你在刚刚访问的那个网站上看到拼写错误了吗?你帮助订正了拼写错误,这就是为开源做出了贡献。 -* 没有任何技能是微不足道的。如您所见,我所做出的贡献,只需要对 HTML 最基本的了解。 +* 没有任何技能是微不足道的。如你所见,我所做出的贡献,只需要对 HTML 最基本的了解。 * 能阻止你做出贡献的只有你自己。 * 要想让雪球滚起来,需要做的就只是提交第一个贡献。 -我衷心希望您能从我的经历中获得什么,并且今天就付诸实践。这也就是我想贡献的另一个领域,那么,我们下一篇文章见,也祝您开源愉快! +我衷心希望你能从我的经历中获得什么,并且今天就付诸实践。这也就是我想贡献的另一个领域,那么,我们下一篇文章见,也祝你开源愉快! -*[这篇文章是我的第一个拉取请求被合并后的有感而发!并经许可转载。][13]* - -Image by: (Awosise Oluwaseun, CC BY-SA 4.0) +这篇文章最初发布于 [我的第一个拉取请求被合并][13],并经许可转载。 -------------------------------------------------------------------------------- @@ -73,7 +74,7 @@ via: https://opensource.com/article/22/9/first-pull-request-merged 作者:[Oluwaseun][a] 选题:[lkxed][b] 译者:[onionstalgia](https://github.com/onionstalgia) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -92,3 +93,4 @@ via: https://opensource.com/article/22/9/first-pull-request-merged [11]: https://opensource.com/sites/default/files/2022-09/thanks.png [12]: https://opensource.com/sites/default/files/2022-09/next.png [13]: https://dev.to/jhhornn/i-got-my-first-pull-request-merged-3ei9 +[0]: https://img.linux.net.cn/data/attachment/album/202302/02/170752aebzil6qjabuzb3g.jpg \ No newline at end of file From d2f869864d35bb6acaeff2c61eaf1757ceb41618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:02:33 +0800 Subject: [PATCH 2705/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230202.0=20=E2=AD=90=EF=B8=8F=20LibreOffice=207.5?= =?UTF-8?q?=20Unveils=20Stunning=20New=20App=20Icons=20and=20Cool=20Featur?= =?UTF-8?q?es.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ls Stunning New App Icons and Cool Features.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md diff --git a/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md new file mode 100644 index 0000000000..d37aa6e92b --- /dev/null +++ b/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md @@ -0,0 +1,127 @@ +[#]: subject: "LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features" +[#]: via: "https://news.itsfoss.com/libreoffice-7-5-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features +====== + +LibreOffice 7.5 seems to have a new personality with its brand-new app icons and other improvements. + +![LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features][1] + +LibreOffice 7.5 community edition is here with **many feature upgrades and new app icons**. + +The previous major release [version 7.4][2] bought in better 'interoperability' with Microsoft's proprietary file formats and **further solidified LibreOffice** as one of the [best open-source alternatives to Microsoft Office][3] on Linux. + +And now, a new release is here with a lot in store. + +Let's take a look at what this has to offer. + +### 🆕 LibreOffice 7.5: What's New? + +![LibreOffice 7.5: New Features][4] + +With this release, plenty of improvements have been made to all the programs of LibreOffice; some key highlights include: + +- **New App Icons** +- **Writer Improvements** +- **Calc Improvements** +- **Impress & Draw Improvements** +- **Dark mode improvement** + +#### New App Icons + +![libreoffice's updated icons][5] + +LibreOffice now features a new set of app icons that look pretty modern. These will look neat with current-gen desktop environments such as GNOME and Plasma. + +Here's how it looks compared to the old icon; refreshing, right? + +![libreoffice old icon vs new icon][6] + +Similarly, the developers have also updated the icon set used throughout LibreOffice's interface for various media types/files. + +#### Writer Improvements + +![libreoffice writer screenshot][7] + +The Writer app has received a host of improvements, notable ones include: + +- A new plain text type was added. +- Content controls for titles and tags. +- New combo box type and ability to export content controls to PDF. +- Spellcheck has improved for various languages such as Danish, Dutch, Estonian, German, Hungarian, Norwegian, and Swedish. +- In case of tables, column detection has improved when it intersects with merged cells. +- Bookmark editing and accessibility has been improved. +- A decorative tag can be applied to images, embedded objects, and text frames to allow assistive software to ignore them in exported PDFs. + +#### Calc Improvements + +![libreoffice 7.5 calc screenshot][8] + +Cell inputs with the leading ' apostrophe in cells that are not formatted as Text will now permanently remove the first apostrophe to prevent confusion. + +Support for Kamenický and Mazovia encodings was added, alongside improvements to conditional formatting. + +In addition, when searching for a term in the Function Wizard, it will now match the function descriptions as well as their names. + +#### Impress & Draw Improvements + +Impress now has support for adding cropped videos in media shapes and also includes a fix for an EMF graphics issue where it would appear blurry. + +![libreoffice draw's new table style design feature][9] + +In the case of Draw, essential support was added for modifying table styles and creating new ones. Modified styles are saved into the document and can be made into templates and shared. + +> 🗒️ You can access the feature to modify table style by right-clicking on a design in the Table Design sidebar panel. + +#### 🛠️ Other Changes and Improvements + +These were not the only improvements to LibreOffice with the 7.5 release. + +Things like **better support for dark and high contrast themes**, support for data tables in charts, various improvements to the core, and more make this a packed release. Some refinements are targeted for platforms like macOS and Windows, along with Linux. + +You can check all the technical changes from the [official release notes][10] or the [announcement][11]. + +### Download LibreOffice 7.5 + +LibreOffice 7.5 is available from the [official download page][12]. + +You can find deb and rpm files along with packages for Windows and macOS (Intel/ARM). + +[LibreOffice 7.5][12] + +You can also opt for a Torrent file for an even smoother download experience. + +For existing users, depending on your Linux distribution, expect an update in the coming days/weeks. You may opt for the Flatpak package for faster access to the latest version. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/libreoffice-7-5-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/libreoffice-7.5-release.png +[2]: https://news.itsfoss.com/libreoffice-7-4-release/ +[3]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ +[4]: https://youtu.be/ZlAmjIwUvs4 +[5]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Icons.png +[6]: https://news.itsfoss.com/content/images/2023/02/libreoffice-icons.jpg +[7]: https://news.itsfoss.com/content/images/2023/02/libreoffice-writer.png +[8]: https://news.itsfoss.com/content/images/2023/02/libreoffice-7-5.png +[9]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Table_Design.png +[10]: https://wiki.documentfoundation.org/ReleaseNotes/7.5 +[11]: https://blog.documentfoundation.org/blog/2023/02/02/tdf-announces-libreoffice-75-community/ +[12]: https://www.libreoffice.org/download/download-libreoffice/ From 2f7a34f778b966657ed22353f9e4d36530d84827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:05:11 +0800 Subject: [PATCH 2706/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230202.1=20=E2=AD=90=EF=B8=8F=20Learn=20Basic=20by?= =?UTF-8?q?=20coding=20a=20game.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30202.1 ⭐️ Learn Basic by coding a game.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md diff --git a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md new file mode 100644 index 0000000000..87ca9f035b --- /dev/null +++ b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -0,0 +1,132 @@ +[#]: subject: "Learn Basic by coding a game" +[#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Basic by coding a game +====== + +Writing the same application in multiple languages is a great way to learn new ways to program. Most programming languages have certain things in common, such as: + +- Variables +- Expressions +- Statements + +These concepts are the basis of most programming languages. Once you understand them, you can start figuring the rest out. + +Programming languages usually share some similarities. Once you know one programming language, you can learn the basics of another by recognizing its differences. + +Practicing with a standard program is a good way of learning a new language. It allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly. + +This program exercises several concepts in programming languages: + +- Variables +- Input +- Output +- Conditional evaluation +- Loops + +It's a great practical experiment to learn a new programming language. This article focuses on Basic. + +### Guess the number in (Bywater) Basic + +There is no real standard for the Basic programming language. Wikipedia says, "BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use." The [BWBasic][1] implementation is available under the GPL. + +You can explore Basic by writing a version of the "guess the number" game. + +### Install Basic on Linux + +In Debian or Ubuntu, you can install Basic with the following: + +``` +$ apt install -y bwbasic +``` + +Download the latest release tarball for Fedora, CentOS, Mageia, and any other Linux distribution. Extract it, make it executable, and then run it from a terminal: + +``` +$ tar --extract --file bwbasic*z + +$ chmod +x bywater + +$ ./bywater +``` + +On Windows, [download the .exe release][2]. + +### Basic code + +Here is my implementation: + +``` +10 value$ = cint(rnd * 100) + 1 +20 input "enter guess"; guess$ +30 guess$ = val(guess$) +40 if guess$ < value$ then print "Too low" +50 if guess$ > value$ then print "Too high" +60 if guess$ = value$ then 80 +70 goto 20 +80 print "That's right" +``` + +Basic programs can be numbered or unnumbered. Usually, it is better to write programs unnumbered, but writing them with numbered lines makes it easier to refer to individual lines. + +By convention, coders write lines as multiples of 10. This approach allows interpolating new lines between existing ones for debugging. Here's an explanation of my method above: + +- Line 10: Computes a random value between 1 and 100 using the built-in **rnd** function, which generates a number between 0 and 1, not including 1. +- Line 20: Asks for a guess and puts the value in the **guess$ scalar** variable. Line 30 converts the value to a numeric one. +- Lines 40 and 50: Give the guesser feedback, depending on the comparison. +- Line 70: Goes to the beginning of the loop. +- Line 60: _Breaks_& the loop by transferring control to line 80. Line 80 is the last line, so the program exits after that. + +### Sample output + +The following is an example of the program after putting it in `program.bas`: + +``` +$ bwbasic program.bas  +Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 +Copyright (c) 1993, Ted A. Campbell +Copyright (c) 1995-1997, Jon B. Volkoff + +enter guess? 50 +Too low +enter guess? 75 +Too low +enter guess? 88 +Too high +enter guess? 80 +Too low +enter guess? 84 +Too low +enter guess? 86 +Too high +enter guess? 85 +That's right +``` + +### Get started + +This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details. + +Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/learn-basic-coding-game + +作者:[Moshe Zadka][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/moshez +[b]: https://github.com/lkxed +[1]: https://yeolpishack.net/repos/ChipMaster/bwBASIC +[2]: https://github.com/nerun/bwbasic/releases From 3c4f2aec5f62d72fe45ae3d122037400919eaa95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:05:54 +0800 Subject: [PATCH 2707/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230201.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?System76's=20Upcoming=20COSMIC=20Desktop=20is=20Gearing=20Up=20?= =?UTF-8?q?With=20Big=20Changes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g COSMIC Desktop is Gearing Up With Big Changes.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md diff --git a/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md b/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md new file mode 100644 index 0000000000..238d4e4596 --- /dev/null +++ b/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md @@ -0,0 +1,159 @@ +[#]: subject: "System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes" +[#]: via: "https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes +====== + +System76 shared development details on its upcoming Rust-powered cosmic desktop environment. Let's take a look. + +![System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes][1] + +The developers of Pop!_OS started working on their **Rust-based desktop environment** 'COSMIC' [back in 2021][2]. + +The goal was to make something familiar to what you already get with Pop!_OS but provide you with a faster and more extensible desktop environment. + +System76 also chose [not to release Pop!_OS 22.10][3] to focus on its development. + +Not to forget, one of our community contributors gave an early build a try, which looked pretty promising. + +**Suggested Read** 📖 + +I Tried System76’s New Rust-based COSMIC Desktop!If you didn’t know already, System76 developers have been working on a new Desktop Environment (dubbed COSMIC) written in Rust: a memory-safe and superfast programming language. Creating a desktop environment from scratch is no small feat. That involves creating everything from the compositor,…![][4]It's FOSS NewsCommunity![][5] + +Fast-forward a year, we now have a better look at what to expect with this desktop environment. + +Let's explore what System76 has in store for us. + +### COSMIC Desktop: 3 Key Enhancements + +> 📋 The changes and mockups discussed are subject to change at the time of final release. + +In a [recent blog post][6], Alex from System76 gave us a good look at the state of development of the COSMIC desktop environment. + +Let me take you through the notable highlights of it: + +- **New UI Features** +- **Settings Revamped** +- **New Wallpaper Feature** + +### 1. New UI Features + +![cosmic de ui new ui features][7] + +A new '[SegmentedButton][8]' widget is being used for handling tabs and segmented buttons around COSMIC DE. + +It is meant to give a clean, organized, and more focused menu experience, whereas the segmented buttons allow actions to be done when selected. + +They also give an example to explain how this helps with the UI: + +> So while you’re customizing your desktop to use horizontal workspaces instead of vertical, for example, your selection will cause the desktop to reflect this behavior. + +### 2. Revamped Settings + +![cosmic de revamped settings menu][9] + +Firstly, the Settings app has received a complete overhaul, with the search results now showing up as a continuous, scrollable list of results from various settings panels. + +> 🗒️ Specific settings were adjusted after the latest rounds of internal user (UX) testing. + +Then there are the remakes of the various settings panels themselves. Let me take you through them: + +#### Display Tweaks + +![cosmic de display settings][10] + +The developers have moved the graphics modes and night light options to the display settings panel. During testing, they found that most users go to the display settings expecting to find those settings. + +![][11] + +Additionally, when using multiple displays, the display settings will be organized into dedicated tabs according to the display, with options to change or add a color profile. + +#### Power Options + +![][12] + +This settings panel now shows the battery level of connected wireless devices and an overview of all the connected devices. + +You can also select power profiles based on your requirements and limit battery charging for your Laptop to preserve battery life. + +#### Region and Language Selection + +![cosmic de region language settings][13] + +This setting has been divided into different categories for ease of access. They have been divided into categories to select regional formats for calendar, date, temperature, and measurement. + +#### Sound + +A new option has been added to the Sound setting that lets you adjust the volume of individual alerts and applications. + +![cosmic de sound settings][14] + +Furthermore, users with two or more speakers can now use the new speaker testing tool to optimize their setup. + +### 3. New Wallpaper Feature + +![][15] + +COSMIC DE will let you set a single wallpaper, one per display, or let you cycle through multiple wallpapers as a slideshow. Finally, **a good news for multi-monitor users!** + +You will also have fine control over how long each wallpaper gets to stay on the screen before switching to the next one. + +### 🛠️ Other Improvements + +In addition to the user-facing changes mentioned above, several under-the-hood refinements include: + +- A new Dynamic renderer, '[iced-dyrend][16]' has been implemented by System76 Principal Engineer, meant to adjust what rendering program your GPU should use dynamically. It can switch between OpenGL or Vulkan if you have a GPU, or [Softbuffer][17] if you don't. +- Text rendering via '[cosmic-text][18]' has been paired with Softbuffer 0.2.0 to allow the software-rendering back-end for the '[libcosmic][19]' widget library to be used on any OS. +- The developers have also tested an XWayland implementation that would let COSMIC DE run applications that use the X11 windowing system. +- Animations support has been added to COSMIC DE via the '[cosmic-time][20]' animation crate. It contains animations used by the default applications and was built using the '[Iced][21]' toolkit. + +The developers also mentioned: + +> While COSMIC DE is being developed for Pop!_OS, our goal is to make its elements available for use on other operating systems, too. + +This is good to hear! If you were wondering if COSMIC DE was something Pop!_OS exclusive, maybe you will be able to use it on distros, too, hopefully! 😊 + +> 🐘 Keep an eye out on our [Mastodon][22] and [Twitter][23] feeds for more news updates! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/cosmic-desktop-changes.png +[2]: https://news.itsfoss.com/pop-os-cosmic-rust/ +[3]: https://news.itsfoss.com/no-pop-os-21-10/ +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/wordpress/2022/01/system76-rust-based-distro-ft.png +[6]: https://blog.system76.com/post/more-on-cosmic-de-to-kick-off-2023 +[7]: https://news.itsfoss.com/content/images/2023/02/COSMIC_ui.jpg +[8]: https://github.com/pop-os/libcosmic/pull/56 +[9]: https://news.itsfoss.com/content/images/2023/02/COSMIC_revamped_settings.jpg +[10]: https://news.itsfoss.com/content/images/2023/02/COSMIC_display.png +[11]: https://news.itsfoss.com/content/images/2023/02/multiple-displays.jpg +[12]: https://news.itsfoss.com/content/images/2023/02/COSMIC_power-1.png +[13]: https://news.itsfoss.com/content/images/2023/02/COSMIC_region_language.png +[14]: https://news.itsfoss.com/content/images/2023/02/COSMIC_sound.png +[15]: https://news.itsfoss.com/content/images/2023/02/COSMIC_wallpapers-1.png +[16]: https://github.com/pop-os/iced/commit/f1310e47617c3046a3cd98e20e373247f19327af +[17]: https://github.com/rust-windowing/softbuffer/ +[18]: https://github.com/pop-os/cosmic-text +[19]: https://github.com/pop-os/libcosmic +[20]: https://github.com/pop-os/cosmic-time +[21]: https://github.com/iced-rs/iced +[22]: https://mastodon.social/@itsfoss +[23]: https://twitter.com/itsfoss2 From 3eaf11195a10e321b7d9f5ed154355ed3e742cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:07:18 +0800 Subject: [PATCH 2708/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230201.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=20guide=20to=20fuzzy=20queries=20with=20?= =?UTF-8?q?Apache=20ShardingSphere.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...A guide to fuzzy queries with Apache ShardingSphere.md | 423 ++++++++++++++++++ 1 file changed, 423 insertions(+) create mode 100644 sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md diff --git a/sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md b/sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md new file mode 100644 index 0000000000..c27795c9af --- /dev/null +++ b/sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md @@ -0,0 +1,423 @@ +[#]: subject: "A guide to fuzzy queries with Apache ShardingSphere" +[#]: via: "https://opensource.com/article/23/2/fuzzy-query-apache-shardingsphere" +[#]: author: "Xiong Gaoxiang https://opensource.com/users/xionggaoxiang" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A guide to fuzzy queries with Apache ShardingSphere +====== + +[Apache ShardingSphere][1] is an open source distributed database and an ecosystem users and developers need for their databases to provide a customized and cloud-native experience. Its [latest release][2] contains many new features, including data encryption integrated with existing SQL workflows. Most importantly, it allows fuzzy queries of the encrypted data. + +### The problem + +By parsing a user's SQL input and rewriting the SQL according to the user's encryption rules, the original data is encrypted and stored with ciphertext data in the underlying database simultaneously. + +When a user queries the data, it fetches the ciphertext data from the database, decrypts it, and returns the decrypted original data to the user. However, because the encryption algorithm encrypts the whole string, users cannot run fuzzy queries. + +Nevertheless, many businesses need fuzzy queries after the data is encrypted. In version 5.3.0, Apache ShardingSphere provides users with a default fuzzy query algorithm that supports encrypted fields. The algorithm also supports hot plugging, which users can customize. The fuzzy query can be achieved through configuration. + +### How to achieve fuzzy query in encrypted scenarios + +#### Load data to the in-memory database (IMDB) + +First, load all the data into the IMDB to decrypt it. Then, it'll be like querying the original data. This method can achieve fuzzy queries. If the amount of data is small, this method will prove simple and cost-effective. However, if the quantity of data is large, it'll be a disaster. + +#### Implement encryption and decryption functions consistent with database programs + +The second method is to modify fuzzy query conditions and use the database decryption function to decrypt data first and then implement fuzzy query. This method's advantage is the low cost of implementation, development, and use. + +Users only need to modify the previous fuzzy query conditions slightly. However, the ciphertext and encryption functions are stored together in the database, which cannot cope with the problem of account data leaks. + +Native SQL: + +``` +select * from user where name like "%xxx%" +``` + +After implementing the decryption function: + +``` +ѕеlесt * frоm uѕеr whеrе dесоdе(namе) lіkе "%ххх%" +``` + +#### Store after data masking + +Implement data masking on ciphertext and then store it in a fuzzy query column. This method could lack precision. + +For example, mobile number **13012345678** becomes **130****5678** after the masking algorithm is performed. + +#### Perform encrypted storage after tokenization and combination + +This method performs tokenization and combination on ciphertext data and then encrypts the resultset by grouping characters with fixed length and splitting a field into multiple ones. For example, we take four English characters and two Chinese characters as a query condition: **ningyu1** uses the four-character as a group to encrypt, so the first group is **ning**, the second group **ingy**, the third group **ngyu**, the fourth group **gyu1**, and so on. All the characters are encrypted and stored in the fuzzy query column. If you want to retrieve all data that contains four characters, such as **ingy**, encrypt the characters and use a key `like"%partial%"` to query. + +Shortcomings: + +- Increased storage costs: Free grouping will increase the amount of data, and the data length will increase after being encrypted. +- Limited length in fuzzy query: Due to security issues, the length of free grouping cannot be too short or the [rainbow table][3] will easily crack it. Like the example I mentioned above, the length of fuzzy query characters must be greater than or equal to four letters/digits or two Chinese characters. + +#### Single-character digest algorithm (default fuzzy query algorithm provided in ShardingSphere version 5.3.0) + +Although the above methods are all viable, it's only natural to wonder if there's a better alternative. In our community, we find that single-character encryption and storage can balance performance and query but fails to meet security requirements. + +So what's the ideal solution? Inspired by masking algorithms and cryptographic hash functions, we find that data loss and one-way functions can be used. + +The cryptographic hash function should have the following four features: + +- It should be easy to calculate the hash value for any given message. +- It should be difficult to infer the original message from a known hash value. +- It should not be feasible to modify the message without changing the hash value. +- There should only be a very low chance that two different messages produce the same hash value. + +Security: Because of the one-way function, it's impossible to infer the original message. To improve the accuracy of the fuzzy query, we want to encrypt a single character, but the rainbow table will crack it. + +So we take a one-way function (to ensure every character is the same after encryption) and increase the frequency of collisions (to ensure every string is **1: N** backward), which greatly enhances security. + +### Fuzzy query algorithm + +Apache ShardingSphere implements a universal fuzzy query algorithm using the below single-character digest algorithm `org.apache.shardingsphere.encrypt.algorithm.like.CharDigestLikeEncryptAlgorithm`. + +``` +public final class CharDigestLikeEncryptAlgorithm implements LikeEncryptAlgorithm { + + private static final String DELTA = "delta"; + + private static final String MASK = "mask"; + + private static final String START = "start"; + + private static final String DICT = "dict"; + + private static final int DEFAULT_DELTA = 1; + + private static final int DEFAULT_MASK = 0b1111_0111_1101; + + private static final int DEFAULT_START = 0x4e00; + + private static final int MAX_NUMERIC_LETTER_CHAR = 255; + + @Getter + private Properties props; + + private int delta; + + private int mask; + + private int start; + + private Map charIndexes; + + @Override + public void init(final Properties props) { + this.props = props; + delta = createDelta(props); + mask = createMask(props); + start = createStart(props); + charIndexes = createCharIndexes(props); + } + + private int createDelta(final Properties props) { + if (props.containsKey(DELTA)) { + String delta = props.getProperty(DELTA); + try { + return Integer.parseInt(delta); + } catch (NumberFormatException ex) { + throw new EncryptAlgorithmInitializationException("CHAR_DIGEST_LIKE", "delta can only be a decimal number"); + } + } + return DEFAULT_DELTA; + } + + private int createMask(final Properties props) { + if (props.containsKey(MASK)) { + String mask = props.getProperty(MASK); + try { + return Integer.parseInt(mask); + } catch (NumberFormatException ex) { + throw new EncryptAlgorithmInitializationException("CHAR_DIGEST_LIKE", "mask can only be a decimal number"); + } + } + return DEFAULT_MASK; + } + + private int createStart(final Properties props) { + if (props.containsKey(START)) { + String start = props.getProperty(START); + try { + return Integer.parseInt(start); + } catch (NumberFormatException ex) { + throw new EncryptAlgorithmInitializationException("CHAR_DIGEST_LIKE", "start can only be a decimal number"); + } + } + return DEFAULT_START; + } + + private Map createCharIndexes(final Properties props) { + String dictContent = props.containsKey(DICT) && !Strings.isNullOrEmpty(props.getProperty(DICT)) ? props.getProperty(DICT) : initDefaultDict(); + Map result = new HashMap<>(dictContent.length(), 1); + for (int index = 0; index < dictContent.length(); index++) { + result.put(dictContent.charAt(index), index); + } + return result; + } + + @SneakyThrows + private String initDefaultDict() { + InputStream inputStream = CharDigestLikeEncryptAlgorithm.class.getClassLoader().getResourceAsStream("algorithm/like/common_chinese_character.dict"); + LineProcessor lineProcessor = new LineProcessor() { + + private final StringBuilder builder = new StringBuilder(); + + @Override + public boolean processLine(final String line) { + if (line.startsWith("#") || 0 == line.length()) { + return true; + } else { + builder.append(line); + return false; + } + } + + @Override + public String getResult() { + return builder.toString(); + } + }; + return CharStreams.readLines(new InputStreamReader(inputStream, Charsets.UTF_8), lineProcessor); + } + + @Override + public String encrypt(final Object plainValue, final EncryptContext encryptContext) { + return null == plainValue ? null : digest(String.valueOf(plainValue)); + } + + private String digest(final String plainValue) { + StringBuilder result = new StringBuilder(plainValue.length()); + for (char each : plainValue.toCharArray()) { + char maskedChar = getMaskedChar(each); + if ('%' == maskedChar) { + result.append(each); + } else { + result.append(maskedChar); + } + } + return result.toString(); + } + + private char getMaskedChar(final char originalChar) { + if ('%' == originalChar) { + return originalChar; + } + if (originalChar <= MAX_NUMERIC_LETTER_CHAR) { + return (char) ((originalChar + delta) & mask); + } + if (charIndexes.containsKey(originalChar)) { + return (char) (((charIndexes.get(originalChar) + delta) & mask) + start); + } + return (char) (((originalChar + delta) & mask) + start); + } + + @Override + public String getType() { + return "CHAR_DIGEST_LIKE"; + } +} +``` + +- Define the binary `mask` code to lose precision `0b1111_0111_1101` (mask). +- Save common Chinese characters with disrupted order like a `map` dictionary. +- Obtain a single string of `Unicode` for digits, English, and Latin. +- Obtain an `index` for a Chinese character belonging to a dictionary. +- Other characters fetch the `Unicode` of a single string. +- Add `1 (delta)`to the digits obtained by different types above to prevent any original text from appearing in the database. +- Then convert the offset `Unicode` into binary, perform the `AND` operation with `mask`, and carry out a two-bit digit loss. +- Directly output digits, English, and Latin after the loss of precision. +- The remaining characters are converted to decimal and output with the common character `start` code after the loss of precision. + +### The fuzzy algorithm development progress + +#### The first edition + +Simply use `Unicode` and `mask` code of common characters to perform the `AND` operation. + +``` +Mask: 0b11111111111001111101 +The original character: 0b1000101110101111讯 +After encryption: 0b1000101000101101設 +``` + +Assuming we know the key and encryption algorithm, the original string after a backward pass is: + +``` +1.0b1000101100101101 謭 +2.0b1000101100101111 謯 +3.0b1000101110101101 训 +4.0b1000101110101111 讯 +5.0b1000101010101101 読 +6.0b1000101010101111 誯 +7.0b1000101000101111 訯 +8.0b1000101000101101 設 +``` + +Based on the missing bits, we find that each string can be derived `2^n` Chinese characters backward. When the `Unicode` of common Chinese characters is decimal, their intervals are very large. Notice that the Chinese characters inferred backward are not common characters, and it's more likely to infer the original characters. + +![Inference of Chinese characters][4] + +#### The second edition + +The interval of common Chinese characters in `Unicode` is irregular. We planned to leave the last few bits of Chinese characters in `Unicode` and convert them into decimal as an `index` to fetch some common Chinese characters. This way, when the algorithm is known, uncommon characters won't appear after a backward pass, and distractors are no longer easy to eliminate. + +If we leave the last few bits of Chinese characters in `Unicode`, it has something to do with the relationship between the accuracy of fuzzy query and anti-decryption complexity. The higher the accuracy, the lower the decryption difficulty. + +Let's take a look at the collision degree of common Chinese characters under our algorithm: + +1. When `mask`=0b0011_1111_1111: + +![Mask results][5] + +2. When `mask`=0b0001_1111_1111: + +![Mask results][6] + +For the mantissa of Chinese characters, leave 10 and 9 digits. The 10-digit query is more accurate because its collision is much weaker. Nevertheless, if the algorithm and the key are known, the original text of the 1:1 character can be derived backward. + +The nine-digit query is less accurate because nine-digit collisions are relatively stronger, but there are fewer 1:1 characters. Although we change the collisions regardless of whether we leave ten or nine digits, the distribution is unbalanced due to the irregular `Unicode` of Chinese characters. The overall collision probability cannot be controlled. + +#### The third edition + +In response to the unevenly distributed problem found in the second edition, we take common characters with disrupted order as the dictionary table. + +1. The encrypted text first looks up the `index` in the out-of-order dictionary table. We use the `index` and subscript to replace the `Unicode` without rules. Use `Unicode` in case of uncommon characters. (Note: Evenly distribute the code to be calculated as far as possible.) + +2. The next step is to perform the `AND` operation with a `mask` and lose two-bit precision to increase the frequency of collisions. + +Let's take a look at the collision degree of common Chinese characters under our algorithm: + +1. When `mask`=0b1111_1011_1101: + +![Mask results][7] + +2. When `mask`=0b0111_1011_1101: + +![Mask results][8] + +When the `mask` leaves 11 bits, you can see that the collision distribution is concentrated at 1:4. When the `mask` leaves ten bits, the number becomes 1:8. At this time, we only need to adjust the number of precision losses to control whether the collision is 1:2, 1:4 or 1:8. + +If the `mask` is selected as 1, and the algorithm and key are known, there will be a 1:1 Chinese character because we calculate the collision degree of common characters at this time. If we add the missing four bits before the 16-bit binary of Chinese characters, the situation becomes `2^5=32` cases. + +Since we encrypt the whole text, even if the individual character is inferred backward, there will be little impact on overall security and will not cause mass data leaks. At the same time, the premise of backward pass is to know the algorithm, key, `delta`, and dictionary, so it's impossible to achieve from the data in the database. + +### How to use fuzzy query + +Fuzzy query requires the configuration of `encryptors` (encryption algorithm configuration), `likeQueryColumn` (fuzzy query column name), and `likeQueryEncryptorName` (encryption algorithm name of fuzzy query column ) in the encryption configuration. + +Please refer to the following configuration. Add your own sharding algorithm and data source. + +``` +dataSources: + ds_0: + dataSourceClassName: com.zaxxer.hikari.HikariDataSource + driverClassName: com.mysql.jdbc.Driver + jdbcUrl: jdbc:mysql://127.0.0.1:3306/test?allowPublicKeyRetrieval=true + username: root + password: root + +rules: +- !ENCRYPT + encryptors: + like_encryptor: + type: CHAR_DIGEST_LIKE + aes_encryptor: + type: AES + props: + aes-key-value: 123456abc + tables: + user: + columns: + name: + cipherColumn: name + encryptorName: aes_encryptor + assistedQueryColumn: name_ext + assistedQueryEncryptorName: aes_encryptor + likeQueryColumn: name_like + likeQueryEncryptorName: like_encryptor + phone: + cipherColumn: phone + encryptorName: aes_encryptor + likeQueryColumn: phone_like + likeQueryEncryptorName: like_encryptor + queryWithCipherColumn: true + + +props: + sql-show: true +``` + +Insert + +``` +Logic SQL: insert into user ( id, name, phone, sex) values ( 1, '熊高祥', '13012345678', '男') +Actual SQL: ds_0 ::: insert into user ( id, name, name_ext, name_like, phone, phone_like, sex) values (1, 'gyVPLyhIzDIZaWDwTl3n4g==', 'gyVPLyhIzDIZaWDwTl3n4g==', '佹堝偀', 'qEmE7xRzW0d7EotlOAt6ww==', '04101454589', '男') +``` + +Update + +``` +Logic SQL: update user set name = '熊高祥123', sex = '男1' where sex ='男' and phone like '130%' +Actual SQL: ds_0 ::: update user set name = 'K22HjufsPPy4rrf4PD046A==', name_ext = 'K22HjufsPPy4rrf4PD046A==', name_like = '佹堝偀014', sex = '男1' where sex ='男' and phone_like like '041%' +``` + +Select + +``` +Logic SQL: select * from user where (id = 1 or phone = '13012345678') and name like '熊%' +Actual SQL: ds_0 ::: select `user`.`id`, `user`.`name` AS `name`, `user`.`sex`, `user`.`phone` AS `phone`, `user`.`create_time` from user where (id = 1 or phone = 'qEmE7xRzW0d7EotlOAt6ww==') and name_like like '佹%' +``` + +Select: federated table sub-query + +``` +Logic SQL: select * from user LEFT JOIN user_ext on user.id=user_ext.id where user.id in (select id from user where sex = '男' and name like '熊%') +Actual SQL: ds_0 ::: select `user`.`id`, `user`.`name` AS `name`, `user`.`sex`, `user`.`phone` AS `phone`, `user`.`create_time`, `user_ext`.`id`, `user_ext`.`address` from user LEFT JOIN user_ext on user.id=user_ext.id where user.id in (select id from user where sex = '男' and name_like like '佹%') +``` + +Delete + +``` +Logic SQL: delete from user where sex = '男' and name like '熊%' +Actual SQL: ds_0 ::: delete from user where sex = '男' and name_like like '佹%' +``` + +The above example demonstrates how fuzzy query columns rewrite SQL in different SQL syntaxes to support fuzzy queries. + +### Wrap up + +This article introduced you to the working principles of fuzzy query and used specific examples to demonstrate how to use it. I hope that through this article, you will have a basic understanding of fuzzy queries. + +_This article was originally published on [Medium][9] and has been republished with the author's permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/fuzzy-query-apache-shardingsphere + +作者:[Xiong Gaoxiang][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/xionggaoxiang +[b]: https://github.com/lkxed +[1]: https://shardingsphere.apache.org/ +[2]: https://opensource.com/article/23/1/apache-shardingsphere-new-features +[3]: https://www.techtarget.com/whatis/definition/rainbow-table +[4]: https://opensource.com/sites/default/files/2023-01/41chinesecharacters.jpg +[5]: https://opensource.com/sites/default/files/2023-01/42-1-characters.jpg +[6]: https://opensource.com/sites/default/files/2023-01/42-2-characters.jpg +[7]: https://opensource.com/sites/default/files/2023-01/43-1-characters.png +[8]: https://opensource.com/sites/default/files/2023-01/43-2-characters.png +[9]: https://medium.com/codex/fuzzy-query-for-ciphercolumn-shardingsphere-5-3-0-deep-dive-ad09faea67d3 From e9d7f454e09d1ba5dc423930bb3f313a976e6ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:07:42 +0800 Subject: [PATCH 2709/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230131.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?elementary=20OS=207=20is=20a=20Modest=20Upgrade=20With=20Useful?= =?UTF-8?q?=20Changes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ry OS 7 is a Modest Upgrade With Useful Changes.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md diff --git a/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md b/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md new file mode 100644 index 0000000000..9d412d392e --- /dev/null +++ b/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md @@ -0,0 +1,157 @@ +[#]: subject: "elementary OS 7 is a Modest Upgrade With Useful Changes" +[#]: via: "https://news.itsfoss.com/elementary-os-7-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +elementary OS 7 is a Modest Upgrade With Useful Changes +====== + +elementary OS 7 upgrade makes an appearance after almost a year. Some exciting and subtle changes! + +![elementary OS 7 is a Modest Upgrade With Useful Changes][1] + +elementary OS 6.1 was an impressive release. It has been more than a year, and finally, the next major upgrade, **elementary OS 7 'Horus'**, landed. + +The changes may not be considered a massive overhaul, but the development focus was more on **refinements**, as previously [reported][2]. + +### elementary OS 7: What's New? + +The main areas of improvement include: + +- **AppCenter** +- **App & System Updates** +- **Sideloading or Alternate Stores** +- **Improved onboarding and installation experience** +- **App improvements** + +#### AppCenter Upgrades + +![elementary os 7 appcenter][3] + +With every major upgrade, much emphasis is put on AppCenter. While it already offers a polished experience, it gets better with faster performance and better adjustment to different screen resolutions or window sizes. + +The app descriptions are the highlight this time. You get to see more screenshots of an app at once, giving you a better view of applications. + +![elementary os 7 appcenter descriptions][4] + +The images also include captions that should help make app pages accessible to users with vision-related disabilities. + +Overall, the screenshots blend in with a background featuring the default accent color of the app, making it look good. + +Furthermore, the app descriptions will also give you more information on how actively the app is maintained, along with the recent release notes. + +#### App Updates + +![elementaryos 7 appcenter app updates][5] + +You now get an option to toggle if you want automatic app updates. + +The preferences for Flatpak remain the same; instead of manually checking for it, you can opt to have them update automatically. + +In addition, system updates will be installed offline once downloaded and prepared to give you a seamless experience. + +#### Third-Party App Store + +elementaryOS 7 relies on its separate Flatpak repository for the applications on AppCenter. + +However, you can still add Flathub as a repository and get more Flatpak apps. + +To inform you of the difference, the AppCenter will mention some warning like "**Non-Curated**", so you know it is from an alternate store. + +![elementaryos 7 appcenter non-curated app warning][6] + +The pop-up warning will only appear once when you try to install an app from a third-party store for the first time. + +#### Web App Support + +![elementary os 7 web apps][7] + +The release includes GNOME Web 43, which supports creating web apps that can be found in the applications menu. + +You can manage the web apps installed from within GNOME Web. + +#### Redesigned Icons + +![elementaryos new icons][8] + +elementaryOS is already known as one of the best beautiful Linux distributions. + +To elevate the experience, almost every app icon has been redesigned to provide a more modern and expressive user experience. + +#### Installation & Onboarding Experience + +![elementary os 7 primary mouse button prompt installation window][9] + +The installation experience is getting more straightforward with upgrades. + +In other words, you will have less number of screens in the installer but still, get all the essential information that includes warnings and system requirements. + +The installer now prompts you to choose between left-click or right-click as the primary mouse button. + +![elementaryos automatic updates toggle onboarding screen][10] + +From system theme preferences to automatic updates, you can configure all the essential things right after installation. + +#### New Music 7 Multimedia App + +![elementartyos music 7 app][11] + +To provide a better multimedia experience, the Music app has been completely rewritten from scratch, which works well for various use cases. + +You can curate local music locations, preview audio files, get correct metadata info, and more. + +#### Other Changes + +You will find several other subtle refinements. Some of those include: + +- **The mail app now features a more modern and flatter design for improved responsiveness** +- **The mail app now supports Microsoft 365 accounts** +- **Offline support for newly created task lists on the Tasks app** +- **Online Accounts settings include offline support for CalDAV accounts** +- **Toggle to choose folders with a single click** +- **Redesigned printer settings** +- **Power profile management settings** + +You can refer to the [official announcement][12] for more details. + +### Download elementary OS 7 + +> 📋 While I tried the latest RC build to test things out, my NVIDIA graphics-powered system booted up with an inverted (weird-looking) colored screen. This may not be an issue for the final release. + +You can grab the latest ISO from the [official website][13]. I wish they would add a separate ISO for NVIDIA systems, but for the rest, it should work fine. + +[elementary OS 7][13] + +Also, you will have to go for a re-install instead of upgrading from elementary OS 6. Check out its [official FAQ][14] before you proceed to install. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/elementary-os-7-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/content/images/size/w2000/2023/01/elementary-os-7-release-ft.png +[2]: https://news.itsfoss.com/elementary-os-7-dev-updates/ +[3]: https://news.itsfoss.com/content/images/2023/01/appcenter-responsive.jpg +[4]: https://news.itsfoss.com/content/images/2023/01/appcenter-appinfo.png +[5]: https://news.itsfoss.com/content/images/2023/01/appcenter-updates.png +[6]: https://news.itsfoss.com/content/images/2023/01/appcenter-sideload.png +[7]: https://news.itsfoss.com/content/images/2023/01/web-apps.png +[8]: https://news.itsfoss.com/content/images/2023/01/icons-apps.png +[9]: https://news.itsfoss.com/content/images/2023/01/initialsetup-lefthand-elementaryos.png +[10]: https://news.itsfoss.com/content/images/2023/01/onboarding-updates.png +[11]: https://news.itsfoss.com/content/images/2023/01/elementary-music.jpg +[12]: https://blog.elementary.io/os-7-available-now/ +[13]: https://elementary.io +[14]: https://github.com/elementary/os/wiki/OS-7-Horus-FAQ From d6382911af8c7604853754eed57fd0bf66b86f57 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 3 Feb 2023 08:41:36 +0800 Subject: [PATCH 2710/3123] translated --- ...older Between Guest and Host in GNOME Boxes.md | 119 ------------------ ...older Between Guest and Host in GNOME Boxes.md | 119 ++++++++++++++++++ 2 files changed, 119 insertions(+), 119 deletions(-) delete mode 100644 sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md create mode 100644 translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md diff --git a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md deleted file mode 100644 index c97c16b9ff..0000000000 --- a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" -[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Share Folder Between Guest and Host in GNOME Boxes -====== - -**Use the below steps to share a folder between host and guest in GNOME Boxes app.** - -GNOME Boxes is a front-end application to create and manage virtual machines. It is primarily compatible with the GNOME desktop. However, you can use it in other desktop environments, such as KDE Plasma and others. - -At the backend, it uses QEMU, KVM, and libvirt tech and provides an easy-to-use user interface to manage multiple virtual machines. - -If you want to learn more, you can also refer to [these guides][1] on GNOME Boxes to create virtual machines. - -In the prior articles, we have explained how to share folders in [virt-manager][2] and [VirtualBox][3]. And the following steps explain the same for GNOME Boxes. - -### How to share folder and file in GNOME Boxes - -GNOME Boxes primarily support [SPICE protocol][4] to enable remote access, sharing and many virtualization features. SPICE is one of the oldest open-source packages in the virtualization space. - -#### 1. Initial setup - -- Firstly, make sure to install the following spice packages inthe **guest system**. - -``` -sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros -sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc -pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) -``` - -- After you install the above, **reboot** the host and guest systems. -- In the host system (for GNOME desktop), open settings and go to Sharing panel. -- **Enable Sharing** using the top toggle button. -- Then, click on File Sharing and **Enable File Sharing**. Make sure to enable the network. The password is optional. If you want to enable password-based authentication for your shared folder, enable it. - -![Enable sharing in settings][5] - -![Enable File Sharing][6] - -- Close the settings window. -- Open GNOME Boxes. Right-click on the VM and select **preferences**. -- Click on **Devices and Shares** on the preference window and click on the **[+] button** under Shared folders. -- Under **Local Folder**: Select the folder from your host you want to access inside the guest. -- **Name**: Give any name you want. This name will be visible in the guest’s file manager. -- Click Save. - -![Add a share folder in host][7] - -#### 2. Setup for guest - -- Start your guest virtual machine. -- Inside the guest virtual machine, open the file manager. If you are using a GNOME desktop, open Nautilus (i.e. Files). -- Click on **Other Locations**. you should see the “**Spice client folder**” under Networks. -- Double-click on this, and you should see the folder contents of your host system. -- Sometimes, the above folder takes some time to appear. if it is not visible, wait for 1 or 2 minutes. Refresh the file manager window via `F5`. - -![Spice client folder in guest][8] - -#### 3. Some troubleshooting - -- Furthermore, if you are getting the following error, then you need to access the path manually. - -``` -Unable to access location - HTTP Error: Could not connect: Connection refused -``` - -![error while accessing the spice client folder][9] - -- Press `CTRL+L` in the file manager to bring up the address bar. In the address bar, type the following: - -``` -dav://localhost:9843 -``` - -- And hit enter. And you should see the folder contents. The `dav` protocol is used by the SPICE server, which connects the guest and host at port 9843. - -![accessing via dav protocol][10] - -And that’s it. Now you can enjoy file sharing between guests and hosts in GNOME Boxes. - -Here’s a screenshot of the same folder accessed by the guest and host. - -![Share folder and its contents between guest and host in GNOME Boxes (sample)][11] - -If you run into any error, drop a comment below. - -[_Some references are used in this article from GitLab._][12] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/share-folder-gnome-boxes/ - -作者:[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/tag/boxes -[2]: https://www.debugpoint.com/share-folder-virt-manager/ -[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ -[4]: https://www.spice-space.org/index.html -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg -[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 diff --git a/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md new file mode 100644 index 0000000000..18d933082e --- /dev/null +++ b/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -0,0 +1,119 @@ +[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" +[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 GNOME Boxes 里的客户机和宿主机之间共享文件夹 +====== + +**使用下面的步骤在 GNOME Boxes 应用中的宿主机和客户机之间共享一个文件夹**。 + +GNOME Boxes 是一个创建和管理虚拟机的前端应用。它主要与 GNOME 桌面兼容。然而,你可以在其他桌面环境中使用它,如 KDE Plasma 和其他环境。 + +在后端,它使用 QEMU、KVM 和 libvirt 技术,并提供一个易于使用的用户界面来管理多个虚拟机。 + +如果你想了解更多,你也可以参考关于 GNOME Boxes 创建虚拟机的[这些指南][1]。 + +在之前的文章中,我们已经解释了如何在 [virt-manager][2] 和 [VirtualBox][3] 中共享文件夹。而下面的步骤也解释了 GNOME Boxes 的情况。 + +### 如何在 GNOME Boxes 中共享文件夹和文件 + +GNOME Boxes 主要支持 [SPICE 协议][4]来实现远程访问、共享和许多虚拟化功能。SPICE 是虚拟化领域中最古老的开源包之一。 + +#### 1. 初始设置 + +- 首先,确保在**客户机系统中安装以下 spice 软件包**。 + +``` +sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros +sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc +pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) +``` + +- 在你安装完上述内容后,**重启**宿主机和客户机系统。 +- 在宿主机系统中(对于 GNOME 桌面),打开设置,进入共享面板。 +- 使用顶部的切换按钮**启用共享**。 +- 然后,点击文件共享和**启用文件共享**。请确保启用网络。密码是可选的。如果你想为你的共享文件夹启用基于密码的认证,请启用它。 + +![在设置中启用共享][5] + +![启用文件共享][6] + +- 关闭设置窗口。 +- 打开 GNOME Boxes。右键单击虚拟机并选择**偏好**。 +- 在偏好设置窗口中点击**设备和共享**,并点击共享文件夹下的** [+] 按钮**。 +- 在**本地文件夹下**:从你的宿主机中选择你想在客户机中访问的文件夹。 +- **名称**:给予你想要的任何名称。这个名称将在客人的文件管理器中可见。 +- 点击保存。 + +![在宿主机中添加一个共享文件夹][7] + +#### 2. 为客户机设置 + +- 启动你的客户机虚拟机。 +- 在客户机虚拟机内,打开文件管理器。如果你使用的是 GNOME 桌面,打开 Nautilus(即 Files)。 +- 点击**其他位置**。你应该在“网络”下看到 “**Spice 客户端文件夹**”。 +- 双击这个,你应该看到你的主机系统的文件夹内容。 +- 有时,上述文件夹需要一些时间才能出现。如果它不可见,请等待 1 或 2 分钟。通过 `F5` 刷新文件管理器窗口。 + +![客户机中的 Spice 客户文件夹][8] + +#### 3. 一些故障排除 + +- 此外,如果你看到以下错误,那么你需要手动访问该路径。 + +``` +Unable to access location - HTTP Error: Could not connect: Connection refused +``` + +![访问 spice 客户端文件夹时出错][9] + +- 在文件管理器中按下 `CTRL+L`,调出地址栏。在地址栏中,输入以下内容: + +``` +dav://localhost:9843 +``` + +- 然后点击回车。然后你应该看到文件夹的内容。SPICE 服务器使用 `dav` 协议,它在 9843 端口连接客户机和宿主机。 + +![通过 dav 协议访问][10] + +就这样了。现在你可以在 GNOME Boxes 中享受客户机和宿主机之间的文件共享。 + +下面是一个客户机和宿主机访问同一个文件夹的截图。 + +![在 GNOME Boxes 中在客户机和宿主机之间共享文件夹及其内容(示例)][11] + +如果你遇到任何错误,请在下方发表评论。 + +[_这篇文章中使用了一些来自 GitLab 的参考资料。_][12] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-gnome-boxes/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/tag/boxes +[2]: https://www.debugpoint.com/share-folder-virt-manager/ +[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ +[4]: https://www.spice-space.org/index.html +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg +[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 From 8ed1f318513f82df683435f83b24df253759b4bc Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 3 Feb 2023 08:46:35 +0800 Subject: [PATCH 2711/3123] translating --- ...221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md index 3f0d190572..585f2c96dc 100644 --- a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md +++ b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/switch-debian-stable-testing/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4fa423fec261aa8bdffef6d53723422607dfd846 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 3 Feb 2023 11:24:51 +0800 Subject: [PATCH 2712/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 https://linux.cn/article-15504-1.html 恭喜!升级为⭐️⭐️⭐️⭐️贡献者! --- ...alyse Sentiments Using Machine Learning.md | 61 ++++++++++--------- 1 file changed, 32 insertions(+), 29 deletions(-) rename {translated/tech => published}/20220906 How to Analyse Sentiments Using Machine Learning.md (80%) diff --git a/translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/published/20220906 How to Analyse Sentiments Using Machine Learning.md similarity index 80% rename from translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md rename to published/20220906 How to Analyse Sentiments Using Machine Learning.md index a9955e0fbf..b119fec784 100644 --- a/translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md +++ b/published/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -3,28 +3,30 @@ [#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15504-1.html" 如何使用机器学习来分析情感 ====== ->本文将帮助你理解什么是 情感分析sentiment analysis,并且你能了解如何使用机器学习进行情感分析。我们使用了不同的机器学习算法进行情感分析,然后将各个算法的准确率结果进行比较,以确定哪一种算法最适合这个问题。 +![][0] -情感分析是自然语言处理(NLP)中的一个重要的内容。情绪指的是我们对某一事件、物品、情况或事物产生的感觉。情感分析是一个从文本中自动提取人类情感的研究领域。它在上世纪 90 年代初才慢慢地开始发展起来。 +本文将帮助你理解 情感分析sentiment analysis 的概念,并且学习如何使用机器学习进行情感分析。我们使用了不同的机器学习算法进行情感分析,然后将各个算法的准确率结果进行比较,以确定哪一种算法最适合这个问题。 -本文将让你明白如何将机器学习 (ML) 用于情感分析,并比较不同机器学习算法的结果。本文的目标不在于研究提高算法性能的方法。 +情感分析是自然语言处理(NLP)中的一个重要的内容。情感指的是我们对某一事件、物品、情况或事物产生的感觉。情感分析是一个从文本中自动提取人类情感的研究领域。它在上世纪 90 年代初才慢慢地开始发展起来。 + +本文将让你明白如何将机器学习(ML)用于情感分析,并比较不同机器学习算法的结果。本文的目标不在于研究如何提高算法性能。 如今,我们生活在一个快节奏的社会中,所有的商品都能在网上购买到,每个人都可以在网上发表自己的评论。而一些商品的负面网络评论可能会损害公司的声誉,从而影响公司的销售额。因此对公司来说,通过商品评论来了解客户真正想要什么变得非常重要。但是这些评论数据太多了,无法一个个地手动查看所有的评论。这就是情绪分析诞生的缘由。 现在,就让我们看看如何用机器学习开发一个模型,来进行基本的情绪分析吧。 -### 现在就开始吧! +### 现在就开始吧! #### 获取数据 -第一步是选择一个数据集。你可以从任何公开的评论中进行选择,例如推文或电影评论。数据集中包含两列:标签和实际的文本段。 +第一步是选择一个数据集。你可以从任何公开的评论中进行选择,例如推文或电影评论。数据集中至少要包含两列:标签和实际的文本段。 下图显示了我们选取的部分数据集。 @@ -40,9 +42,9 @@ import re import string ``` -我们使用 NumPy 和 Pandas 库来处理数据。至于其他库,我们会在使用到它们时再说明。 +正如你在上面代码看到,我们导入了 `NumPy` 和 `Pandas` 库来处理数据。至于其他库,我们会在使用到它们时再说明。 -数据集已准备就绪,并且已导入所需的库。接着,我们需要用 Pandas 库将数据集读入到我们的项目中去。我们使用以下的代码将数据集读入 Pandas 数据帧(DataFrame)类型: +数据集已准备就绪,并且已导入所需的库。接着,我们需要用 `Pandas` 库将数据集读入到我们的项目中去。我们使用以下的代码将数据集读入 Pandas 数据帧DataFrame 类型: ``` sentiment_dataframe = pd.read_csv(“/content/drive/MyDrive/Data/sentiments - sentiments.tsv”,sep = ‘\t’) @@ -60,11 +62,11 @@ sentiment_dataframe.columns = [“label”,”body_text”] ![Figure 2: Data frame with basic modifications][2] -#### 准备好特征值、目标值 +#### 准备好特征值、目标值 下一步是数据的预处理。这是非常重要的一步,因为机器学习算法只能理解/处理数值形数据,而不能理解文本,所以此时要进行特征抽取,将字符串/文本转换成数值化的数据。此外,还需要删除冗余和无用的数据,因为这些数据可能会污染我们的训练模型。我们在这一步中去除了噪声数据、缺失值数据和不一致的数据。 -对于情感分析,我们在数据帧中添加特征文本的长度和标点符号计数。我们还要进行词干提取,即将所有相似词(如“give”、“giving”等)转换为单一形式。完成后,我们将数据集分为两部分:特征值 X 和 目标值 Y。 +对于情感分析,我们在数据帧中添加特征文本的长度和标点符号计数。我们还要进行词干提取,即将所有相似词(如 “give”、“giving” 等)转换为单一形式。完成后,我们将数据集分为两部分:特征值 X 和 目标值 Y。 上述内容是使用以下代码完成的。下图显示了执行这些步骤后的数据帧。 @@ -87,29 +89,29 @@ X = sentiment_dataframe[‘body_text’] y = sentiment_dataframe[‘label’] ``` -#### 特征工程:文本特征处理 +#### 特征工程:文本特征处理 -我们接下来进行文本特征抽取,对文本特征进行数值化。为此,我们使用计数向量器(CountVectorizer),它返回词频矩阵。 +我们接下来进行文本特征抽取,对文本特征进行数值化。为此,我们使用计数向量器CountVectorizer,它返回词频矩阵。 在此之后,计算数据帧 X 中的文本长度和标点符号计数等特征。X 的示例如下图所示。 ![Figure 4: Sample of final features][4] -#### 使用的机器学习算法 +#### 使用的机器学习算法 现在数据已经可以训练了。下一步是确定使用哪些算法来训练模型。如前所述,我们将尝试多种机器学习算法,并确定最适合情感分析的算法。由于我们打算对文本进行二元分类,因此我们使用以下算法: -* K-近邻算法(KNN) +* K-近邻算法(KNN) * 逻辑回归算法 -* 支持向量机(SVMs) +* 支持向量机(SVMs) * 随机梯度下降(SGD) * 朴素贝叶斯算法 * 决策树算法 * 随机森林算法 -#### 划分数据集 +#### 划分数据集 -首先,将数据集划分为训练集和测试集。使用 sklearn 库,详见以下代码: +首先,将数据集划分为训练集和测试集。使用 `sklearn` 库,详见以下代码: ``` from sklearn.model_selection import train_test_split @@ -118,9 +120,9 @@ X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.20, rando 我们使用 20% 的数据进行测试,80% 的数据用于训练。划分数据的意义在于对一组新数据(即测试集)评估我们训练的模型是否有效。 -##### K-近邻算法 +##### K-近邻算法 -现在,让我们开始训练第一个模型。首先,我们使用 KNN 算法。先训练模型,然后再评估模型的准确率(具体的代码都可以使用 Python 的 sklearn 库来完成)。详见以下代码,KNN 训练模型的准确率大约为 50%。 +现在,让我们开始训练第一个模型。首先,我们使用 KNN 算法。先训练模型,然后再评估模型的准确率(具体的代码都可以使用 Python 的 `sklearn` 库来完成)。详见以下代码,KNN 训练模型的准确率大约为 50%。 ``` from sklearn.neighbors import KNeighborsClassifier @@ -131,7 +133,7 @@ model.score (X_test,y_test) 0.5056689342403629 ``` -##### 逻辑回归算法 +##### 逻辑回归算法 逻辑回归模型的代码十分类似——首先从库中导入函数,拟合模型,然后对模型进行评估。下面的代码使用逻辑回归算法,准确率大约为 66%。 @@ -144,7 +146,7 @@ model.score (X_test,y_test) 0.6621315192743764 ``` -##### 支持向量机算法 +##### 支持向量机算法 以下代码使用 SVM,准确率大约为 67%。 @@ -157,7 +159,7 @@ model.score(X_test,y_test) 0.6780045351473923 ``` -##### 随机森林算法 +##### 随机森林算法 以下的代码使用了随机森林算法,随机森林训练模型的准确率大约为 69%。 @@ -170,7 +172,7 @@ model.score(X_test,y_test) 0.6938775510204082 ``` -##### 决策树算法 +##### 决策树算法 接下来,我们使用决策树算法,其准确率约为 61%。 @@ -183,7 +185,7 @@ model.score(X_test,y_test) 0.6190476190476191 ``` -##### 随机梯度下降算法 +##### 随机梯度下降算法 以下的代码使用随机梯度下降算法,其准确率大约为 49%。 @@ -196,7 +198,7 @@ model.score(X_test,y_test) 0.49206349206349204 ``` -##### 朴素贝叶斯算法 +##### 朴素贝叶斯算法 以下的代码使用朴素贝叶斯算法,朴素贝叶斯训练模型的准确率大约为 60%。 @@ -209,7 +211,7 @@ model.score(X_test,y_test) 0.6009070294784581 ``` -#### 情感分析的最佳算法 +#### 情感分析的最佳算法 接下来,我们绘制所有算法的准确率图。如下图所示。 @@ -228,7 +230,7 @@ via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-mach 作者:[Jishnu Saurav Mittapalli][a] 选题:[lkxed][b] 译者:[chai001125](https://github.com/chai001125) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -240,3 +242,4 @@ via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-mach [4]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-4-Sample-of-final-features.jpg [5]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-5-Accuracy-performance-of-the-different-algorithms.jpg [6]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-6-Sample-predictions-made.jpg +[0]: hhttps://img.linux.net.cn/data/attachment/album/202302/03/112201q909lsqqs9e0jjzc.jpg \ No newline at end of file From 90ec92b374ef1cbe7cf4e1cfba60d411d71dd1d1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 3 Feb 2023 13:35:35 +0800 Subject: [PATCH 2713/3123] RP @geekpi https://linux.cn/article-15505-1.html --- ... Code Editor With a Brand New GUI Framework.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) rename {translated/tech => published}/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md (74%) diff --git a/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/published/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md similarity index 74% rename from translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md rename to published/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md index 6f70b16741..6e9e344c51 100644 --- a/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ b/published/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -3,14 +3,14 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15505-1.html" 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器 ====== -一个新的令人兴奋的代码编辑器正在开发中,它建立在自己的 GUI 框架上。 +> 一个正在开发中令人兴奋的新代码编辑器,基于其自己的 GUI 框架。 ![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] @@ -22,11 +22,11 @@ 现在,我偶然发现了另一个编辑器,“**ecode**”。这个项目的作者提到,它从 [Lite XL][2] 等编辑器中获得了灵感。 -**有什么不同?** +有什么不同? -- 它建立在其**新的 GUI 框架 [eepp][3]** 之上,该框架专注于提供一个丰富的用户界面。 -- 虽然它的目标是使用最少的资源,但 ecode 的理念针对的是**现代硬件**的系统,有 SSD,高核心数和不错的 GPU 加速。 -- 该代码编辑器可以被编译为在任何现代浏览器中运行。然而,目前的重点并不在网络版的开发上。 +- 它建立在其新的 GUI 框架 [eepp][3] 之上,该框架专注于提供一个丰富的用户界面。 +- 虽然它的目标是使用最少的资源,但 ecode 的理念针对的是有 SSD、高核心数和良好的 GPU 加速的**现代硬件**系统。 +- 该代码编辑器可以被编译为在任何现代浏览器中运行。然而,目前的重点并不在网页版的开发上。 ![ecode official screenshot][4] @@ -42,17 +42,17 @@ 当然,它有计划随着开发的进展增加更多的东西。就目前而言,这里有一些关键的亮点: -- **可移植** -- **语法高亮** -- **终端支持** -- **自动补全** -- **可定制的颜色方案** -- **可定制的键盘绑定**。 -- **LSP 支持** -- **Minimap** -- **插件管理器** -- **深色和浅色模式** -- **各种类型的分割视图以适应不同的工作流程**。 +- 可移植 +- 语法高亮 +- 终端支持 +- 自动补全 +- 可定制的颜色方案 +- 可定制的键盘绑定 +- LSP 支持 +- 缩略视图Minimap +- 插件管理器 +- 深色和浅色模式 +- 各种类型的分割视图以适应不同的工作流程 我在 Linux Mint 上简单地试了一下这个编辑器,它看起来确实是正在开发中。 @@ -62,7 +62,7 @@ 你可以从一组预定义的主题中快速定制编辑器的主题。 -对于编写大量代码(冗长的片段)并需要快速浏览的用户来说,minimap 将非常方便。 +对于编写大量代码(冗长的片段)并需要快速浏览的用户来说,缩略视图将非常方便。 最初,当我在一个空白区域右键点击时,该应用崩溃了。但是,随着下一个版本 **0.4.1**(在发表这篇文章的时候)的更新,它很快就被修复了。所以,我想说**开发进展似乎很有希望**。 @@ -70,13 +70,13 @@ ### 下载 ecode -你可以尝试一下[在线 demo][13] 来快速测试一些选项。 +你可以尝试一下 [在线演示][13] 来快速测试一些选项。 -一个 AppImage 文件可用于所有 Linux 发行版。用于 macOS 和 Windows 的软件包也是可用的。 +有一个可用于所有 Linux 发行版的 AppImage 软件包。也有用于 macOS 和 Windows 的软件包。 -你可以从它的 [GitHub 发布页][14]获得这些包,或者探索它的[源码][3]。 +你可以从它的 [GitHub 发布页][14] 获得这些包,或者探索它的 [源码][3]。 -[下载 ecode][14] +> **[下载 ecode][14]** 💬 有这么多有前途的新代码编辑器在开发中,你认为我们会对微软的 VS Code 有一个好的竞争吗? @@ -87,7 +87,7 @@ via: https://news.itsfoss.com/ecode-editor/ 作者:[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/) 荣誉推出 From c254625511a236510dd2af4307b54069c501794e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 3 Feb 2023 17:18:14 +0800 Subject: [PATCH 2714/3123] ATRP @wxy https://linux.cn/article-15506-1.html --- ...ry OS 7 is a Modest Upgrade With Useful Changes.md | 158 ++++++++++++++++++ ...ry OS 7 is a Modest Upgrade With Useful Changes.md | 157 ----------------- 2 files changed, 158 insertions(+), 157 deletions(-) create mode 100644 published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md delete mode 100644 sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md diff --git a/published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md b/published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md new file mode 100644 index 0000000000..5efb867a87 --- /dev/null +++ b/published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md @@ -0,0 +1,158 @@ +[#]: subject: "elementary OS 7 is a Modest Upgrade With Useful Changes" +[#]: via: "https://news.itsfoss.com/elementary-os-7-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15506-1.html" + +elementary OS 7 发布 +====== + +> 在一年后,elementary OS 7 出现了,带来一些激动人心的微妙变化! + +![][0] + +elementary OS 6.1 是一个令人印象深刻的版本。终于,过去了一年,下一个主要的升级,elementary OS 7 “Horus” 来了。 + +这些变化可能不算大规模的翻新,正如以前 [报道][2],开发的重点更多的是在细化上。 + +### elementary OS 7:有什么新内容? + +主要的改进领域包括: + +- 应用中心AppCenter +- 应用程序和系统更新 +- 侧载/替代商店 +- 改进的初次安装体验 +- 应用程序的改进 + +#### 应用中心升级 + +![elementary os 7 appcenter][3] + +在每一次重大的升级中,应用中心AppCenter都得到了很大的重视。虽然它已经提供了完美的体验,但它变得越来越好了,更快的性能、更好的调整以适应不同屏幕分辨率或窗口大小。 + +应用的描述是这次的亮点。你可以一次看到应用程序的更多屏幕截图,让你对应用程序有更好的了解。 + +![elementary os 7 appcenter descriptions][4] + +这些图片还包括了图片说明,应该有助于视力有关的残疾用户访问应用程序页面。 + +从大的方面来说,屏幕截图融入到以应用程序的默认重点颜色为特色的背景中,看起来很不错。 + +此外,应用程序的描述也会给你提供更多关于该应用程序如何积极维护的信息,以及最近的发布说明。 + +#### 应用程序更新 + +![elementaryos 7 appcenter app updates][5] + +你现在可以选择切换是否要自动更新应用程序。 + +Flatpak 的首选项保持不变;你可以选择让它们自动更新,而不是手动检查。 + +此外,系统更新一旦下载并准备好,就会离线安装,可以给你一个顺滑的体验。 + +#### 第三方应用商店 + +elementaryOS 7 应用中心上的应用程序放在其独立的 Flatpak 软件仓库上。 + +然而,你仍然可以添加 Flathub 作为软件仓库,以获得更多的 Flatpak 应用程序。 + +为了告知你这一区别,应用中心会提到一些警告,如 “非策划的Non-Curated”,这样你就知道它是来自另一个应用商店。 + +![elementaryos 7 appcenter non-curated app warning][6] + +当你第一次尝试从第三方商店安装一个应用程序时,这样的弹出警告只会出现一次。 + +#### 支持网页应用程序 + +![Elementary os 7 web apps][7] + +该版本包括 GNOME Web 43,它支持创建网页应用程序,可在应用程序菜单中找到。 + +你可以在 GNOME Web 中管理所安装的网页应用程序。 + +#### 重新设计的图标 + +![elementaryos new icons][8] + +elementaryOS 已经被视作最漂亮的 Linux 发行版之一。 + +为了提升体验,几乎每一个应用程序的图标都被重新设计,以提供一个更现代和更有表现力的用户体验。 + +#### 安装和初次体验 + +![elementary os 7 primary mouse button prompt installation window][9] + +安装体验随着升级而变得更加直接了当。 + +换句话说,你在安装程序中的看到屏幕数量将减少,但仍然可以得到所有的基本信息,包括警告和系统要求。 + +安装程序现在可以提示你选择左键或右键设置为鼠标的主按钮。 + +![elementaryos automatic updates toggle onboarding screen][10] + +从系统主题偏好到自动更新,你可以在安装后直接配置所有必要的东西。 + +#### 新的音乐多媒体应用程序 + +![elementartyos music 7 app][11] + +为了提供更好的多媒体体验,该音乐应用程序已经从头开始完全重写,在各种使用情况下都能很好地工作。 + +你可以设置本地音乐位置、预览音频文件、获得正确的元数据信息,以及更多。 + +#### 其他变化 + +你会发现其他几个细微的改进。其中一些包括: + +- 邮件应用现在采用了更现代、更扁平的设计,以提高响应速度。 +- 邮件应用程序现在支持微软 365 账户。 +- 在任务应用中对新创建的任务列表的离线支持。 +- 在线账户设置包括对 CalDAV 账户的离线支持。 +- 切换选择文件夹,只需点击一下。 +- 重新设计的打印机设置。 +- 电源配置文件管理设置。 + +你可以参考 [官方公告][12] 了解更多细节。 + +### 下载 elementary OS 7 + +> 📋 当我尝试最新的 RC 构建版时,我的英伟达显卡驱动的系统启动时出现了一个反色的(看起来很奇怪)的彩色屏幕。这对最终版本来说可能不是一个问题。 + +你可以从 [官方网站][13] 上获取最新的 ISO。我希望他们能够为英伟达系统增加一个单独的 ISO,但对于其他系统,它应该可以正常工作。 + +> **[elementary OS 7][13]** + +另外,你必须得重新安装,而不是从 elementary OS 6 升级。在你继续安装之前,请查看其 [官方 FAQ][14]。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/elementary-os-7-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/content/images/size/w2000/2023/01/elementary-os-7-release-ft.png +[2]: https://news.itsfoss.com/elementary-os-7-dev-updates/ +[3]: https://news.itsfoss.com/content/images/2023/01/appcenter-responsive.jpg +[4]: https://news.itsfoss.com/content/images/2023/01/appcenter-appinfo.png +[5]: https://news.itsfoss.com/content/images/2023/01/appcenter-updates.png +[6]: https://news.itsfoss.com/content/images/2023/01/appcenter-sideload.png +[7]: https://news.itsfoss.com/content/images/2023/01/web-apps.png +[8]: https://news.itsfoss.com/content/images/2023/01/icons-apps.png +[9]: https://news.itsfoss.com/content/images/2023/01/initialsetup-lefthand-elementaryos.png +[10]: https://news.itsfoss.com/content/images/2023/01/onboarding-updates.png +[11]: https://news.itsfoss.com/content/images/2023/01/elementary-music.jpg +[12]: https://blog.elementary.io/os-7-available-now/ +[13]: https://elementary.io +[14]: https://github.com/elementary/os/wiki/OS-7-Horus-FAQ +[0]: https://img.linux.net.cn/data/attachment/album/202302/03/171644noopjnzno5z4en2p.jpg \ No newline at end of file diff --git a/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md b/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md deleted file mode 100644 index 9d412d392e..0000000000 --- a/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md +++ /dev/null @@ -1,157 +0,0 @@ -[#]: subject: "elementary OS 7 is a Modest Upgrade With Useful Changes" -[#]: via: "https://news.itsfoss.com/elementary-os-7-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -elementary OS 7 is a Modest Upgrade With Useful Changes -====== - -elementary OS 7 upgrade makes an appearance after almost a year. Some exciting and subtle changes! - -![elementary OS 7 is a Modest Upgrade With Useful Changes][1] - -elementary OS 6.1 was an impressive release. It has been more than a year, and finally, the next major upgrade, **elementary OS 7 'Horus'**, landed. - -The changes may not be considered a massive overhaul, but the development focus was more on **refinements**, as previously [reported][2]. - -### elementary OS 7: What's New? - -The main areas of improvement include: - -- **AppCenter** -- **App & System Updates** -- **Sideloading or Alternate Stores** -- **Improved onboarding and installation experience** -- **App improvements** - -#### AppCenter Upgrades - -![elementary os 7 appcenter][3] - -With every major upgrade, much emphasis is put on AppCenter. While it already offers a polished experience, it gets better with faster performance and better adjustment to different screen resolutions or window sizes. - -The app descriptions are the highlight this time. You get to see more screenshots of an app at once, giving you a better view of applications. - -![elementary os 7 appcenter descriptions][4] - -The images also include captions that should help make app pages accessible to users with vision-related disabilities. - -Overall, the screenshots blend in with a background featuring the default accent color of the app, making it look good. - -Furthermore, the app descriptions will also give you more information on how actively the app is maintained, along with the recent release notes. - -#### App Updates - -![elementaryos 7 appcenter app updates][5] - -You now get an option to toggle if you want automatic app updates. - -The preferences for Flatpak remain the same; instead of manually checking for it, you can opt to have them update automatically. - -In addition, system updates will be installed offline once downloaded and prepared to give you a seamless experience. - -#### Third-Party App Store - -elementaryOS 7 relies on its separate Flatpak repository for the applications on AppCenter. - -However, you can still add Flathub as a repository and get more Flatpak apps. - -To inform you of the difference, the AppCenter will mention some warning like "**Non-Curated**", so you know it is from an alternate store. - -![elementaryos 7 appcenter non-curated app warning][6] - -The pop-up warning will only appear once when you try to install an app from a third-party store for the first time. - -#### Web App Support - -![elementary os 7 web apps][7] - -The release includes GNOME Web 43, which supports creating web apps that can be found in the applications menu. - -You can manage the web apps installed from within GNOME Web. - -#### Redesigned Icons - -![elementaryos new icons][8] - -elementaryOS is already known as one of the best beautiful Linux distributions. - -To elevate the experience, almost every app icon has been redesigned to provide a more modern and expressive user experience. - -#### Installation & Onboarding Experience - -![elementary os 7 primary mouse button prompt installation window][9] - -The installation experience is getting more straightforward with upgrades. - -In other words, you will have less number of screens in the installer but still, get all the essential information that includes warnings and system requirements. - -The installer now prompts you to choose between left-click or right-click as the primary mouse button. - -![elementaryos automatic updates toggle onboarding screen][10] - -From system theme preferences to automatic updates, you can configure all the essential things right after installation. - -#### New Music 7 Multimedia App - -![elementartyos music 7 app][11] - -To provide a better multimedia experience, the Music app has been completely rewritten from scratch, which works well for various use cases. - -You can curate local music locations, preview audio files, get correct metadata info, and more. - -#### Other Changes - -You will find several other subtle refinements. Some of those include: - -- **The mail app now features a more modern and flatter design for improved responsiveness** -- **The mail app now supports Microsoft 365 accounts** -- **Offline support for newly created task lists on the Tasks app** -- **Online Accounts settings include offline support for CalDAV accounts** -- **Toggle to choose folders with a single click** -- **Redesigned printer settings** -- **Power profile management settings** - -You can refer to the [official announcement][12] for more details. - -### Download elementary OS 7 - -> 📋 While I tried the latest RC build to test things out, my NVIDIA graphics-powered system booted up with an inverted (weird-looking) colored screen. This may not be an issue for the final release. - -You can grab the latest ISO from the [official website][13]. I wish they would add a separate ISO for NVIDIA systems, but for the rest, it should work fine. - -[elementary OS 7][13] - -Also, you will have to go for a re-install instead of upgrading from elementary OS 6. Check out its [official FAQ][14] before you proceed to install. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/elementary-os-7-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/content/images/size/w2000/2023/01/elementary-os-7-release-ft.png -[2]: https://news.itsfoss.com/elementary-os-7-dev-updates/ -[3]: https://news.itsfoss.com/content/images/2023/01/appcenter-responsive.jpg -[4]: https://news.itsfoss.com/content/images/2023/01/appcenter-appinfo.png -[5]: https://news.itsfoss.com/content/images/2023/01/appcenter-updates.png -[6]: https://news.itsfoss.com/content/images/2023/01/appcenter-sideload.png -[7]: https://news.itsfoss.com/content/images/2023/01/web-apps.png -[8]: https://news.itsfoss.com/content/images/2023/01/icons-apps.png -[9]: https://news.itsfoss.com/content/images/2023/01/initialsetup-lefthand-elementaryos.png -[10]: https://news.itsfoss.com/content/images/2023/01/onboarding-updates.png -[11]: https://news.itsfoss.com/content/images/2023/01/elementary-music.jpg -[12]: https://blog.elementary.io/os-7-available-now/ -[13]: https://elementary.io -[14]: https://github.com/elementary/os/wiki/OS-7-Horus-FAQ From 0ddbfb54319904e168c3de59691e7cd267d0bbc7 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 4 Feb 2023 10:45:53 +0800 Subject: [PATCH 2715/3123] rebase --- ...blishing- Platinum open access journals.md | 49 ++++++++++--------- ...alks about Vanilla OS and Other Future Projects.md | 1 - 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 6ccfafb514..da6d702522 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -7,48 +7,51 @@ [#]: publisher: " " [#]: url: " " -When open source meets academic publishing: Platinum open access journals +当开源遇到学术出版:白金开放获取期刊 ====== -Academics can now publish free, read free, and still stay on track for professional success. + +学者现在可以免费发表(文章),免费阅读(文章),与此同时仍然能够在专业成就的道路上持续进步。 ![Stack of books for reading][1] -Image by: Opensource.com +图自:Opensource.com -Academics routinely give away their work to companies for free—and then they buy it back! Can you imagine a farmer giving away free food and then paying to get it back for dinner? Probably not. Yet academics like me have been trapped for decades in a scheme where we give free work in exchange for job security and then pay millions of dollars a year to read our own writing. +学者们经常将他们的作品免费提供给公司,然后却要花钱购买它!你能想象农民在免费送出他们的食物之后再重新花钱买回来做晚餐吗?可能不能吧。像我这样的学者陷入这样的阴谋中几十年了,我们以工作安全为交换免费提供我们的作品,然后却要每年花几百万美元来阅读我们自己的文章。 -Fortunately, this is changing. The results from a [study][2] I just finished show that it is possible for academics to get job security without paying for it. My study found hundreds of journals that are *platinum open access* (OA)—that is, they require neither the author nor the readers to pay for peer-reviewed work—yet still carry the prestige and readership to help academics succeed in their careers. +幸运的是,情况正在发生改变。我刚刚完成的一项[研究][2]的结果显示:对于学者来说,获得工作安全保障的同时而不对此付出代价是可能的。我的研究发现数百种期刊是 *白金开放获取* (platinum open access,译注:源自中文网络)的——也就是说,它们不需要作者或者读者就同行评议的文章付费,却仍然享有声望和读者群以帮助学者在他们的职业生涯中取得成功。 -This trend is exploding: The [Directory of Open Access Journals][3] lists over 17,300 journals that offer a means of OA at some level, and over 12,250 have no article-processing charges (APCs). I used a handy open source [Python script][4] to compare this list to a list of journals ranked by the frequency with which their published papers are cited in other articles (The Journal Impact Factor List). It is clear that the last few years have seen a growing trend towards both OA in general and platinum OA specifically. These trends have the potential to accelerate science while helping prevent academic servitude. +这一趋势正在扩张:[开放获取期刊目录][3]罗列了超过17300种期刊,这些期刊均提供了某种程度上的开放获取(OA)方式。该目录还提供了超过12250种无须文章处理费(APC)的期刊。我使用一段简易的开源[Python 脚本][4]来将该列表与另一按照期刊发表的文章被其他文章引用的频次排名的期刊列表(期刊影响因子列表)进行比较。很明显,最近几年来,总体的开放获取(OA)期刊与白金开放获取(OA)期刊均呈上升趋势。这一趋势可能有助于在避免学术奴役的同时加速科学发展。 -### The academic's dilemma +### 学者的窘境 -Academics are generally pretty intelligent, so why have they engaged in this disadvantageous system for so long? Simply put, academics have been caught in a trap: In order to keep their jobs and get tenure, they need to publish in journals with a high impact factor. An impact factor is a metric based on the mean number of citations to articles published in the last two years in a given journal, as indexed by the proprietary Web of Science. Impact factors are a prestige metric for academics. +学者们通常是相当聪慧的,那么他们为什么如此长时间地投身于这种不利体系中呢?简而言之,学者陷于这样一个陷阱中:为了维系他们的工作和获得终身教职,他们需要在高影响因子(impact factor)的期刊上发表文章。影响因子是一种基于最近两年间在给定期刊上发表的文章的平均引用数量的衡量指标。影响因子由 Web of Science 索引。对学者而言,影响因子是一个有影响力的衡量指标。 -Historically, academic publishing has been dominated by a handful of major publishers that used subscription-based business models. In this model, academic authors write articles, peer-review articles, and often do the editing of these articles—all for free. The articles are published under copyright owned by the major publishing companies. Then either the same academics pay to read these articles on an individual basis (~US $35/article), or their university libraries pay to subscribe to all of the articles in a journal. These costs can be astronomical: often over US $1 million per year for all titles from a single publisher. +历史上,学术出版由一小部分主要出版商统治。他们采用基于订阅制的商业模式。在这样的商业模式中,学术作者撰写文章,评审同行的文章,也经常进行这些文章的编辑工作。这些工作都是没有任何报酬的。这些文章出版了,它们的版权则由那些主要的出版公司所有。即使是参与上述工作的学者也需要个人付费阅读这些文章(~每篇文章35美元),或者由他们所在学校的图书馆付费订阅期刊上的所有文章。(订阅)所花的费用是相当可观的:单一出版商的所有文章的订阅费用通常超过一百万每年。 -This system is senseless for many obvious reasons. Scientific progress is bogged down by restricting access to copyrighted scientific literature squirreled away behind paywalls. It is hard to do state-of-the-art research if you do not know what it is because you cannot read it. Scientists are divided into those who can afford access to the literature and those who cannot. Academics in the developing world often struggle to pay, but even well-endowed [Harvard University][5] has taken action to rein in its yearly journal expenses. +有很多显然的理由都说明这一体制是毫无意义的。限制对隐匿在付费专区后的受版权保护的科学文献的访问使得科学进程陷于停滞。如果你因为无法查看而不知道前沿科技是什么的话,你就无法进行相应的前沿技术研究。科学家分为能够负担访问这些文章的费用的人以及不能负担(这些费用的人)。在这个发展的世界中,学者一般都努力负担这些费用,不过即使是财力雄厚的[哈佛大学][5]也已经采取行动控制它的年度期刊费用。 -Costs to authors are similarly high. APC values range from a few hundred dollars to jaw-dropping thousands of dollars per article. APCs can be particularly damaging for some disciplines that are less well funded, such as the humanities and social sciences (as compared to physical and medical sciences or engineering). Substantial APCs also reinforce the wealth gap in academia, making professional success dependent on having income to invest in publishing. Is there another profession that asks workers to pay money to make products for others? +文章作者的花费也同样高昂。每篇文章的文章处理费从几百美元到骇人听闻的几千美元不等。文章处理费对一些资金不足的学科尤其有害,比如人文学科与社会学科(与物理学、医学和工程学相比而言)。大量的文章处理费也强化了学术界的贫富差距,使得(学者的)专业成就依赖于其所拥有的将收入投入文章发表的能力。还有其他的要求从业者付费为他人制造产品的职业吗? -### Open access to the rescue! +### 开放获取,解决之道! -This problem can be solved by the OA movement, which advocates for making all academic literature freely accessible to everyone. There is an unmistakable rise in OA publishing: It now makes up nearly a third of the peer-reviewed literature. +开放获取行动可以解决上述问题,开放获取行动倡导使所有的学术文献对任何人都能自由自由获取。开放获取的出版量有明显上升:它占了当前同行评议文章的将近三分之一。 -The benefits of OA are twofold. First, OA is a benefit to science overall, because it provides a frictionless means of reading the state of the art for making significant advancements in knowledge. Second, from an individual academic's point of view, OA provides the pragmatic advantage of enabling the broadest possible audience of their writing by making it freely and easily available on the internet. +开放获取的优势分两个方面。首先,开放获取有利于科学整体,因为它提供了一个不受阻碍地阅读前沿技术的方式。这些技术有助于进一步做出重要的认知进步。其次,就学者个人层面而言,通过让他们的作品在网络上轻而易举地免费获得,开放获取提供了最大化他们作品的潜在受众的实际优势。 -Funders have begun to demand OA for these reasons, particularly public funders of science. It is hard to argue that if the public funds research, they should have to pay a second time to read it. +基于上述原因,资助者已经开始要求开放获取,尤其是科学领域的公共资助者。如果一项研究的公共资助者还需要在阅读研究内容时二次付费,这种做法很难站得住脚。 -### Where is academic publishing now, and where it is going? +### 学术出版目前身处何方,以后又去向何处? -Conventional publishers still have control of this situation, largely because of the perception that they have a monopoly on journals with an impact factor. Despite the disadvantages of publishing the traditional way, many academics continue to publish in subscription-based journals or pay high APCs, knowing that publication in high impact factor journals is vital for demonstrating expertise for grants, tenure, and promotion. +传统出版商仍然掌控着目前的局面,主要是因为认为他们垄断了具有影响因子的期刊这一认知。很多学者无视传统出版方式的缺点,仍然持续在基于订阅制的期刊上发表文章或者支付高昂的文章处理费,因为他们知道在高影响因子的期刊上发表文章是至关重要的,它能够提供赖以获取补助、终身教职与职位晋升的专业性的证明。 -A few years ago, academics simply had no choice: They could either publish in a journal with an impact factor or publish OA. Now they can publish OA and still get the benefits of an impact factor in one of three ways: +多年以前,学术界完全没有选择的余地:要么在具有影响因子的期刊上发表,要么在通过开放获取方式发表。现在他们可以通过开放获取方式发表并仍然能够通过以下三种方式之一享受影响因子的益处: -* Green OA: Publish in a traditional way and then self-archive by uploading preprints or accepted versions of papers into an open repository or server. Some schools have an institutional repository for this purpose. For example, Western University has [Scholarship@Western][6], where any of their professors can share their work. Academics without their own institutional repos can use servers like [preprints.org][7], [arXiv][8], or  [OSF preprints][9]. I also use social media for academics, like [Academia][10] or [ResearchGate][11], for self-archiving. This can be complex to navigate because publishers have different rules, and it is somewhat time consuming. -* Gold OA: Publish in a growing list of journals with impact factors that make your paper freely available after publication but require an APC. This method is easy to navigate: Academics publish as usual and OA is built into the publishing process. The drawback is that funds going to APCs may be diverted from research activities. -* Platinum OA: Publish in platinum OA journals with an impact factor. No one pays either to read or to publish. The challenge here is finding a journal in your discipline that fits this criterion, but that continues to change. +* 绿色开放获取模式(Green OA):以传统方式出版后,再通过上传预印版或者接受版论文至开放仓库或者服务器完成自行归档。一些高校拥有用于上述目的的公共仓库。举例而言,韦仕敦大学(Western University,译注:来自中文网络)拥用[Scholarship@Western][6]公共仓库,该校的任何教师都可以在上面分享他们的作品。没有属于自己的公共仓库的学者可以使用诸如[preprints.org][7], [arXiv][8], or  [OSF preprints][9]等网络服务器。我也会将社交媒体用于学术,比如将[Academia][10] 或 [ResearchGate][11] 用于自行存档。由于不同的出版商设计了不同的规则,这是不方便查阅的,而且某种程度上是耗时耗时耗力的。 -There are tens of thousands of journals, but only a few hundred platinum OA journals with impact factors. This may make it hard for academics to find a good fit between what they study and a journal that matches their interests. See the Appendix in my [study][12] for the list, or use the Python script mentioned above to run updated numbers for yourself. The number of platinum OA journals is growing quickly, so if you do not find something now you may have some solid journals to choose from soon. Happy publishing! +* 金色开放获取模式(Gold OA):在日益壮大的具有影响因子的期刊列表上选一份期刊发表,它将使你的文章发表后可以自由获取但是需要文章处理费。这种方式易于查阅:开放获取设置内建于出版过程中,只需要像往常一样进行学术出版。这种方式的缺点是用于文章处理的费用可能会从研究活动中挪用。 + +* 白金开放获取模式(Platinum OA):在具有影响因子的白金开放获取期刊上发表。不需要为出版和阅读付费。挑战在于在您的学科中找到符合上述标准的期刊,不过情况正在持续变化。 + +目前已经有数以万计的期刊,但是具有影响因子的白金开放获取期刊仅仅几百种。对于学者,困难可能在于在他们的研究与符合他们预期的期刊之间找到一个合适的平衡。你可以在我研究的附录中找到本文提到的列表,或者使用上文提到的 Python 脚本自行更新列表数量。白金开放获取期刊的数量正在快速增长,因此如果你目前尚未找到合适的期刊,仍然可能在不久以后拥有一些可靠的期刊以供选择。祝你享受出版的乐趣! -------------------------------------------------------------------------------- @@ -56,7 +59,7 @@ via: https://opensource.com/article/22/5/platinum-open-access-academic-journals 作者:[Joshua Pearce][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[CanYellow](https://github.com/CanYellow) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md index 4d6b8b8243..afe4c238a8 100644 --- a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md +++ b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md @@ -153,4 +153,3 @@ via: https://news.itsfoss.com/interview-mirko-brombin/ [18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png [19]: https://news.itsfoss.com/content/images/2022/12/history-1.png [20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png - From fcee46696f049a074561ecdd380ae75c92e08702 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 4 Feb 2023 11:39:50 +0800 Subject: [PATCH 2716/3123] ATRP @wxy https://linux.cn/article-15508-1.html --- ...g COSMIC Desktop is Gearing Up With Big Changes.md | 159 ++++++++++++++++++ ...g COSMIC Desktop is Gearing Up With Big Changes.md | 159 ------------------ 2 files changed, 159 insertions(+), 159 deletions(-) create mode 100644 published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md delete mode 100644 sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md diff --git a/published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md b/published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md new file mode 100644 index 0000000000..6ce59c3d79 --- /dev/null +++ b/published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md @@ -0,0 +1,159 @@ +[#]: subject: "System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes" +[#]: via: "https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15508-1.html" + +System76 即将推出的 COSMIC 桌面正在酝酿大变化 +====== + +> System76 介绍了其即将推出的由 Rust 开发的 COSMIC 桌面环境的开发细节。让我们来看看。 + +![System76 即将推出的 COSMIC 桌面正在酝酿大变化][1] + +Pop!_OS 的开发者们 [早在 2021 年][2] 就开始着手开发他们**基于 Rust 的桌面环境** COSMIC。 + +其目标是制作一些你已经熟悉的 Pop!_OS 的东西,但为你提供一个更快和更可扩展的桌面环境。 + +System76 也决定 [不发布 Pop!_OS 22.10][3],以专注于它的开发。 + +另外,我们的一个社区贡献者尝试了它的一个早期版本,它看起来很有希望: + +> **建议阅读** 📖 +> +> 我试用了 System76 新的基于 Rust 的 COSMIC 桌面!如果你还不知道,System76 的开发者一直在开发一个新的桌面环境(被称为 COSMIC),它是用 Rust 编写的:一种内存安全和超快的编程语言。从头开始创建一个桌面环境并不是一件简单的事。这涉及到创建从合成器、... +> +> ![][5] + +时间过去了一年,我们现在对这个桌面环境有了更多的期待。 + +让我们来探索一下 System76 为我们准备了什么。 + +### COSMIC 桌面的 3 项关键性的改进 + +> 📋 我们讨论的这些变化和草图在最终发布时可能会有变化。 + +在 [最近的一篇博文][6] 中,来自 System76 的 Alex 让我们看到了 COSMIC 桌面环境的发展状况。 + +让我带你看看其中值得注意的亮点: + +- 新的用户界面功能 +- 重新打造的设置应用 +- 新的壁纸功能 + +### 1、新的用户界面功能 + +![cosmic de ui new ui features][7] + +一个新的 [SegmentedButton][8] 部件被用来处理 COSMIC 桌面环境中各处的标签和分段式按钮。 + +它的目的是给人一种简洁、有条理、更集中的菜单体验,而分段式按钮则允许在选择时进行操作。 + +他们还举了一个例子来解释这对用户界面有什么帮助: + +> 当你定制你的桌面以使用水平工作区而不是垂直工作区时,例如,你的选择将导致桌面反映这种行为。 + +### 2、重新打造的设置应用 + +![cosmic de revamped settings menu][9] + +首先,“设置” 应用得到了彻底的整改,现在搜索结果显示为一个连续的、可滚动的、来自不同设置面板的结果列表。 + +> 🗒️ 在最新几轮的内部用户(UX)测试后,具体设置进行了调整。 + +然后是各种设置面板本身的改造。让我带你了解一下。 + +#### 显示调整 + +![cosmic de display settings][10] + +开发人员将图形模式和深浅色选项移至显示设置面板。在测试过程中,他们发现大多数用户到显示设置中去是希望找到这些设置。 + +![][11] + +此外,当使用多个显示器时,显示设置将根据显示器被组织到专门的选项卡中,并有改变或添加颜色配置文件的选项。 + +#### 电源选项 + +![][12] + +这个设置面板现在可以显示连接的无线设备的电池电量和所有连接设备的概览。 + +你还可以根据你的要求选择电源配置文件,并限制笔记本电脑的电池充电,以保护电池寿命。 + +#### 地区和语言选择 + +![cosmic de region language settings][13] + +该设置已被划分为不同的类别,以便于访问。它们被分为几个的类别,以选择日历、日期、温度和测量的区域格式。 + +#### 声音 + +声音设置中增加了一个新的选项,可以让你调整个别警报和应用程序的音量。 + +![cosmic de sound settings][14] + +此外,拥有两个或更多扬声器的用户现在可以使用新的扬声器测试工具来优化其设置。 + +### 3、新的壁纸功能 + +![][15] + +COSMIC 桌面环境可以让你设置一张壁纸,每个显示器一张,或者让你以幻灯片的形式循环播放多张壁纸。这是给**多显示器用户的一个好消息!** + +你还可以对每张壁纸在切换到下一张之前在屏幕上停留的时间进行精细控制。 + +### 🛠️ 其他改进措施 + +除了上面提到的面向用户的变化之外,还有一些内在的改进,包括: + +- 一个新的动态渲染器,[iced-dyrend][16] 已经由 System76 首席工程师实现,旨在动态调整你的 GPU 应该使用什么渲染程序。如果你有 GPU,它可以在 OpenGL 或 Vulkan 之间切换;如果你没有,则可以在 [Softbuffer][17] 之间切换。 +- 通过 [cosmic-text][18] 进行的文本渲染已经与 Softbuffer 0.2.0 配对,允许 [libcosmic][19] 部件库的软件渲染后端在任何操作系统上使用。 +- 开发者还测试了 XWayland 的实现,使 COSMIC 桌面环境能够运行使用 X11 窗口系统的应用程序。 +- COSMIC 桌面环境已经通过 [cosmic-time][20] 动画库加入了对动画的支持。它包含了默认应用程序所使用的动画,并使用 [Iced][21] 工具箱构建。 + +开发者还提到: + +> 虽然 COSMIC 桌面环境是为 Pop!_OS 开发的,但我们的目标是让它的元素也能在其他操作系统上使用。 + +这是很好的消息!如果你想知道 COSMIC 桌面环境是否是 Pop!_OS 独有的东西,也许你也可以在发行版上试试它,希望如此! 😊 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/cosmic-desktop-changes.png +[2]: https://news.itsfoss.com/pop-os-cosmic-rust/ +[3]: https://news.itsfoss.com/no-pop-os-21-10/ +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/wordpress/2022/01/system76-rust-based-distro-ft.png +[6]: https://blog.system76.com/post/more-on-cosmic-de-to-kick-off-2023 +[7]: https://news.itsfoss.com/content/images/2023/02/COSMIC_ui.jpg +[8]: https://github.com/pop-os/libcosmic/pull/56 +[9]: https://news.itsfoss.com/content/images/2023/02/COSMIC_revamped_settings.jpg +[10]: https://news.itsfoss.com/content/images/2023/02/COSMIC_display.png +[11]: https://news.itsfoss.com/content/images/2023/02/multiple-displays.jpg +[12]: https://news.itsfoss.com/content/images/2023/02/COSMIC_power-1.png +[13]: https://news.itsfoss.com/content/images/2023/02/COSMIC_region_language.png +[14]: https://news.itsfoss.com/content/images/2023/02/COSMIC_sound.png +[15]: https://news.itsfoss.com/content/images/2023/02/COSMIC_wallpapers-1.png +[16]: https://github.com/pop-os/iced/commit/f1310e47617c3046a3cd98e20e373247f19327af +[17]: https://github.com/rust-windowing/softbuffer/ +[18]: https://github.com/pop-os/cosmic-text +[19]: https://github.com/pop-os/libcosmic +[20]: https://github.com/pop-os/cosmic-time +[21]: https://github.com/iced-rs/iced +[22]: https://mastodon.social/@itsfoss +[23]: https://twitter.com/itsfoss2 diff --git a/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md b/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md deleted file mode 100644 index 238d4e4596..0000000000 --- a/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md +++ /dev/null @@ -1,159 +0,0 @@ -[#]: subject: "System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes" -[#]: via: "https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes -====== - -System76 shared development details on its upcoming Rust-powered cosmic desktop environment. Let's take a look. - -![System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes][1] - -The developers of Pop!_OS started working on their **Rust-based desktop environment** 'COSMIC' [back in 2021][2]. - -The goal was to make something familiar to what you already get with Pop!_OS but provide you with a faster and more extensible desktop environment. - -System76 also chose [not to release Pop!_OS 22.10][3] to focus on its development. - -Not to forget, one of our community contributors gave an early build a try, which looked pretty promising. - -**Suggested Read** 📖 - -I Tried System76’s New Rust-based COSMIC Desktop!If you didn’t know already, System76 developers have been working on a new Desktop Environment (dubbed COSMIC) written in Rust: a memory-safe and superfast programming language. Creating a desktop environment from scratch is no small feat. That involves creating everything from the compositor,…![][4]It's FOSS NewsCommunity![][5] - -Fast-forward a year, we now have a better look at what to expect with this desktop environment. - -Let's explore what System76 has in store for us. - -### COSMIC Desktop: 3 Key Enhancements - -> 📋 The changes and mockups discussed are subject to change at the time of final release. - -In a [recent blog post][6], Alex from System76 gave us a good look at the state of development of the COSMIC desktop environment. - -Let me take you through the notable highlights of it: - -- **New UI Features** -- **Settings Revamped** -- **New Wallpaper Feature** - -### 1. New UI Features - -![cosmic de ui new ui features][7] - -A new '[SegmentedButton][8]' widget is being used for handling tabs and segmented buttons around COSMIC DE. - -It is meant to give a clean, organized, and more focused menu experience, whereas the segmented buttons allow actions to be done when selected. - -They also give an example to explain how this helps with the UI: - -> So while you’re customizing your desktop to use horizontal workspaces instead of vertical, for example, your selection will cause the desktop to reflect this behavior. - -### 2. Revamped Settings - -![cosmic de revamped settings menu][9] - -Firstly, the Settings app has received a complete overhaul, with the search results now showing up as a continuous, scrollable list of results from various settings panels. - -> 🗒️ Specific settings were adjusted after the latest rounds of internal user (UX) testing. - -Then there are the remakes of the various settings panels themselves. Let me take you through them: - -#### Display Tweaks - -![cosmic de display settings][10] - -The developers have moved the graphics modes and night light options to the display settings panel. During testing, they found that most users go to the display settings expecting to find those settings. - -![][11] - -Additionally, when using multiple displays, the display settings will be organized into dedicated tabs according to the display, with options to change or add a color profile. - -#### Power Options - -![][12] - -This settings panel now shows the battery level of connected wireless devices and an overview of all the connected devices. - -You can also select power profiles based on your requirements and limit battery charging for your Laptop to preserve battery life. - -#### Region and Language Selection - -![cosmic de region language settings][13] - -This setting has been divided into different categories for ease of access. They have been divided into categories to select regional formats for calendar, date, temperature, and measurement. - -#### Sound - -A new option has been added to the Sound setting that lets you adjust the volume of individual alerts and applications. - -![cosmic de sound settings][14] - -Furthermore, users with two or more speakers can now use the new speaker testing tool to optimize their setup. - -### 3. New Wallpaper Feature - -![][15] - -COSMIC DE will let you set a single wallpaper, one per display, or let you cycle through multiple wallpapers as a slideshow. Finally, **a good news for multi-monitor users!** - -You will also have fine control over how long each wallpaper gets to stay on the screen before switching to the next one. - -### 🛠️ Other Improvements - -In addition to the user-facing changes mentioned above, several under-the-hood refinements include: - -- A new Dynamic renderer, '[iced-dyrend][16]' has been implemented by System76 Principal Engineer, meant to adjust what rendering program your GPU should use dynamically. It can switch between OpenGL or Vulkan if you have a GPU, or [Softbuffer][17] if you don't. -- Text rendering via '[cosmic-text][18]' has been paired with Softbuffer 0.2.0 to allow the software-rendering back-end for the '[libcosmic][19]' widget library to be used on any OS. -- The developers have also tested an XWayland implementation that would let COSMIC DE run applications that use the X11 windowing system. -- Animations support has been added to COSMIC DE via the '[cosmic-time][20]' animation crate. It contains animations used by the default applications and was built using the '[Iced][21]' toolkit. - -The developers also mentioned: - -> While COSMIC DE is being developed for Pop!_OS, our goal is to make its elements available for use on other operating systems, too. - -This is good to hear! If you were wondering if COSMIC DE was something Pop!_OS exclusive, maybe you will be able to use it on distros, too, hopefully! 😊 - -> 🐘 Keep an eye out on our [Mastodon][22] and [Twitter][23] feeds for more news updates! - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/cosmic-desktop-changes.png -[2]: https://news.itsfoss.com/pop-os-cosmic-rust/ -[3]: https://news.itsfoss.com/no-pop-os-21-10/ -[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png -[5]: https://news.itsfoss.com/content/images/wordpress/2022/01/system76-rust-based-distro-ft.png -[6]: https://blog.system76.com/post/more-on-cosmic-de-to-kick-off-2023 -[7]: https://news.itsfoss.com/content/images/2023/02/COSMIC_ui.jpg -[8]: https://github.com/pop-os/libcosmic/pull/56 -[9]: https://news.itsfoss.com/content/images/2023/02/COSMIC_revamped_settings.jpg -[10]: https://news.itsfoss.com/content/images/2023/02/COSMIC_display.png -[11]: https://news.itsfoss.com/content/images/2023/02/multiple-displays.jpg -[12]: https://news.itsfoss.com/content/images/2023/02/COSMIC_power-1.png -[13]: https://news.itsfoss.com/content/images/2023/02/COSMIC_region_language.png -[14]: https://news.itsfoss.com/content/images/2023/02/COSMIC_sound.png -[15]: https://news.itsfoss.com/content/images/2023/02/COSMIC_wallpapers-1.png -[16]: https://github.com/pop-os/iced/commit/f1310e47617c3046a3cd98e20e373247f19327af -[17]: https://github.com/rust-windowing/softbuffer/ -[18]: https://github.com/pop-os/cosmic-text -[19]: https://github.com/pop-os/libcosmic -[20]: https://github.com/pop-os/cosmic-time -[21]: https://github.com/iced-rs/iced -[22]: https://mastodon.social/@itsfoss -[23]: https://twitter.com/itsfoss2 From 56257075619f9a716f0cf4a28fa421b6eb298f11 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 4 Feb 2023 11:42:39 +0800 Subject: [PATCH 2717/3123] Eighth trans finished (#28554) * Update 20190331 Codecademy vs. The BBC Micro.md * first commit * h * b * b2 * h2 * translation request * merge * file add * rebase --- ...blishing- Platinum open access journals.md | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 6ccfafb514..da6d702522 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -7,48 +7,51 @@ [#]: publisher: " " [#]: url: " " -When open source meets academic publishing: Platinum open access journals +当开源遇到学术出版:白金开放获取期刊 ====== -Academics can now publish free, read free, and still stay on track for professional success. + +学者现在可以免费发表(文章),免费阅读(文章),与此同时仍然能够在专业成就的道路上持续进步。 ![Stack of books for reading][1] -Image by: Opensource.com +图自:Opensource.com -Academics routinely give away their work to companies for free—and then they buy it back! Can you imagine a farmer giving away free food and then paying to get it back for dinner? Probably not. Yet academics like me have been trapped for decades in a scheme where we give free work in exchange for job security and then pay millions of dollars a year to read our own writing. +学者们经常将他们的作品免费提供给公司,然后却要花钱购买它!你能想象农民在免费送出他们的食物之后再重新花钱买回来做晚餐吗?可能不能吧。像我这样的学者陷入这样的阴谋中几十年了,我们以工作安全为交换免费提供我们的作品,然后却要每年花几百万美元来阅读我们自己的文章。 -Fortunately, this is changing. The results from a [study][2] I just finished show that it is possible for academics to get job security without paying for it. My study found hundreds of journals that are *platinum open access* (OA)—that is, they require neither the author nor the readers to pay for peer-reviewed work—yet still carry the prestige and readership to help academics succeed in their careers. +幸运的是,情况正在发生改变。我刚刚完成的一项[研究][2]的结果显示:对于学者来说,获得工作安全保障的同时而不对此付出代价是可能的。我的研究发现数百种期刊是 *白金开放获取* (platinum open access,译注:源自中文网络)的——也就是说,它们不需要作者或者读者就同行评议的文章付费,却仍然享有声望和读者群以帮助学者在他们的职业生涯中取得成功。 -This trend is exploding: The [Directory of Open Access Journals][3] lists over 17,300 journals that offer a means of OA at some level, and over 12,250 have no article-processing charges (APCs). I used a handy open source [Python script][4] to compare this list to a list of journals ranked by the frequency with which their published papers are cited in other articles (The Journal Impact Factor List). It is clear that the last few years have seen a growing trend towards both OA in general and platinum OA specifically. These trends have the potential to accelerate science while helping prevent academic servitude. +这一趋势正在扩张:[开放获取期刊目录][3]罗列了超过17300种期刊,这些期刊均提供了某种程度上的开放获取(OA)方式。该目录还提供了超过12250种无须文章处理费(APC)的期刊。我使用一段简易的开源[Python 脚本][4]来将该列表与另一按照期刊发表的文章被其他文章引用的频次排名的期刊列表(期刊影响因子列表)进行比较。很明显,最近几年来,总体的开放获取(OA)期刊与白金开放获取(OA)期刊均呈上升趋势。这一趋势可能有助于在避免学术奴役的同时加速科学发展。 -### The academic's dilemma +### 学者的窘境 -Academics are generally pretty intelligent, so why have they engaged in this disadvantageous system for so long? Simply put, academics have been caught in a trap: In order to keep their jobs and get tenure, they need to publish in journals with a high impact factor. An impact factor is a metric based on the mean number of citations to articles published in the last two years in a given journal, as indexed by the proprietary Web of Science. Impact factors are a prestige metric for academics. +学者们通常是相当聪慧的,那么他们为什么如此长时间地投身于这种不利体系中呢?简而言之,学者陷于这样一个陷阱中:为了维系他们的工作和获得终身教职,他们需要在高影响因子(impact factor)的期刊上发表文章。影响因子是一种基于最近两年间在给定期刊上发表的文章的平均引用数量的衡量指标。影响因子由 Web of Science 索引。对学者而言,影响因子是一个有影响力的衡量指标。 -Historically, academic publishing has been dominated by a handful of major publishers that used subscription-based business models. In this model, academic authors write articles, peer-review articles, and often do the editing of these articles—all for free. The articles are published under copyright owned by the major publishing companies. Then either the same academics pay to read these articles on an individual basis (~US $35/article), or their university libraries pay to subscribe to all of the articles in a journal. These costs can be astronomical: often over US $1 million per year for all titles from a single publisher. +历史上,学术出版由一小部分主要出版商统治。他们采用基于订阅制的商业模式。在这样的商业模式中,学术作者撰写文章,评审同行的文章,也经常进行这些文章的编辑工作。这些工作都是没有任何报酬的。这些文章出版了,它们的版权则由那些主要的出版公司所有。即使是参与上述工作的学者也需要个人付费阅读这些文章(~每篇文章35美元),或者由他们所在学校的图书馆付费订阅期刊上的所有文章。(订阅)所花的费用是相当可观的:单一出版商的所有文章的订阅费用通常超过一百万每年。 -This system is senseless for many obvious reasons. Scientific progress is bogged down by restricting access to copyrighted scientific literature squirreled away behind paywalls. It is hard to do state-of-the-art research if you do not know what it is because you cannot read it. Scientists are divided into those who can afford access to the literature and those who cannot. Academics in the developing world often struggle to pay, but even well-endowed [Harvard University][5] has taken action to rein in its yearly journal expenses. +有很多显然的理由都说明这一体制是毫无意义的。限制对隐匿在付费专区后的受版权保护的科学文献的访问使得科学进程陷于停滞。如果你因为无法查看而不知道前沿科技是什么的话,你就无法进行相应的前沿技术研究。科学家分为能够负担访问这些文章的费用的人以及不能负担(这些费用的人)。在这个发展的世界中,学者一般都努力负担这些费用,不过即使是财力雄厚的[哈佛大学][5]也已经采取行动控制它的年度期刊费用。 -Costs to authors are similarly high. APC values range from a few hundred dollars to jaw-dropping thousands of dollars per article. APCs can be particularly damaging for some disciplines that are less well funded, such as the humanities and social sciences (as compared to physical and medical sciences or engineering). Substantial APCs also reinforce the wealth gap in academia, making professional success dependent on having income to invest in publishing. Is there another profession that asks workers to pay money to make products for others? +文章作者的花费也同样高昂。每篇文章的文章处理费从几百美元到骇人听闻的几千美元不等。文章处理费对一些资金不足的学科尤其有害,比如人文学科与社会学科(与物理学、医学和工程学相比而言)。大量的文章处理费也强化了学术界的贫富差距,使得(学者的)专业成就依赖于其所拥有的将收入投入文章发表的能力。还有其他的要求从业者付费为他人制造产品的职业吗? -### Open access to the rescue! +### 开放获取,解决之道! -This problem can be solved by the OA movement, which advocates for making all academic literature freely accessible to everyone. There is an unmistakable rise in OA publishing: It now makes up nearly a third of the peer-reviewed literature. +开放获取行动可以解决上述问题,开放获取行动倡导使所有的学术文献对任何人都能自由自由获取。开放获取的出版量有明显上升:它占了当前同行评议文章的将近三分之一。 -The benefits of OA are twofold. First, OA is a benefit to science overall, because it provides a frictionless means of reading the state of the art for making significant advancements in knowledge. Second, from an individual academic's point of view, OA provides the pragmatic advantage of enabling the broadest possible audience of their writing by making it freely and easily available on the internet. +开放获取的优势分两个方面。首先,开放获取有利于科学整体,因为它提供了一个不受阻碍地阅读前沿技术的方式。这些技术有助于进一步做出重要的认知进步。其次,就学者个人层面而言,通过让他们的作品在网络上轻而易举地免费获得,开放获取提供了最大化他们作品的潜在受众的实际优势。 -Funders have begun to demand OA for these reasons, particularly public funders of science. It is hard to argue that if the public funds research, they should have to pay a second time to read it. +基于上述原因,资助者已经开始要求开放获取,尤其是科学领域的公共资助者。如果一项研究的公共资助者还需要在阅读研究内容时二次付费,这种做法很难站得住脚。 -### Where is academic publishing now, and where it is going? +### 学术出版目前身处何方,以后又去向何处? -Conventional publishers still have control of this situation, largely because of the perception that they have a monopoly on journals with an impact factor. Despite the disadvantages of publishing the traditional way, many academics continue to publish in subscription-based journals or pay high APCs, knowing that publication in high impact factor journals is vital for demonstrating expertise for grants, tenure, and promotion. +传统出版商仍然掌控着目前的局面,主要是因为认为他们垄断了具有影响因子的期刊这一认知。很多学者无视传统出版方式的缺点,仍然持续在基于订阅制的期刊上发表文章或者支付高昂的文章处理费,因为他们知道在高影响因子的期刊上发表文章是至关重要的,它能够提供赖以获取补助、终身教职与职位晋升的专业性的证明。 -A few years ago, academics simply had no choice: They could either publish in a journal with an impact factor or publish OA. Now they can publish OA and still get the benefits of an impact factor in one of three ways: +多年以前,学术界完全没有选择的余地:要么在具有影响因子的期刊上发表,要么在通过开放获取方式发表。现在他们可以通过开放获取方式发表并仍然能够通过以下三种方式之一享受影响因子的益处: -* Green OA: Publish in a traditional way and then self-archive by uploading preprints or accepted versions of papers into an open repository or server. Some schools have an institutional repository for this purpose. For example, Western University has [Scholarship@Western][6], where any of their professors can share their work. Academics without their own institutional repos can use servers like [preprints.org][7], [arXiv][8], or  [OSF preprints][9]. I also use social media for academics, like [Academia][10] or [ResearchGate][11], for self-archiving. This can be complex to navigate because publishers have different rules, and it is somewhat time consuming. -* Gold OA: Publish in a growing list of journals with impact factors that make your paper freely available after publication but require an APC. This method is easy to navigate: Academics publish as usual and OA is built into the publishing process. The drawback is that funds going to APCs may be diverted from research activities. -* Platinum OA: Publish in platinum OA journals with an impact factor. No one pays either to read or to publish. The challenge here is finding a journal in your discipline that fits this criterion, but that continues to change. +* 绿色开放获取模式(Green OA):以传统方式出版后,再通过上传预印版或者接受版论文至开放仓库或者服务器完成自行归档。一些高校拥有用于上述目的的公共仓库。举例而言,韦仕敦大学(Western University,译注:来自中文网络)拥用[Scholarship@Western][6]公共仓库,该校的任何教师都可以在上面分享他们的作品。没有属于自己的公共仓库的学者可以使用诸如[preprints.org][7], [arXiv][8], or  [OSF preprints][9]等网络服务器。我也会将社交媒体用于学术,比如将[Academia][10] 或 [ResearchGate][11] 用于自行存档。由于不同的出版商设计了不同的规则,这是不方便查阅的,而且某种程度上是耗时耗时耗力的。 -There are tens of thousands of journals, but only a few hundred platinum OA journals with impact factors. This may make it hard for academics to find a good fit between what they study and a journal that matches their interests. See the Appendix in my [study][12] for the list, or use the Python script mentioned above to run updated numbers for yourself. The number of platinum OA journals is growing quickly, so if you do not find something now you may have some solid journals to choose from soon. Happy publishing! +* 金色开放获取模式(Gold OA):在日益壮大的具有影响因子的期刊列表上选一份期刊发表,它将使你的文章发表后可以自由获取但是需要文章处理费。这种方式易于查阅:开放获取设置内建于出版过程中,只需要像往常一样进行学术出版。这种方式的缺点是用于文章处理的费用可能会从研究活动中挪用。 + +* 白金开放获取模式(Platinum OA):在具有影响因子的白金开放获取期刊上发表。不需要为出版和阅读付费。挑战在于在您的学科中找到符合上述标准的期刊,不过情况正在持续变化。 + +目前已经有数以万计的期刊,但是具有影响因子的白金开放获取期刊仅仅几百种。对于学者,困难可能在于在他们的研究与符合他们预期的期刊之间找到一个合适的平衡。你可以在我研究的附录中找到本文提到的列表,或者使用上文提到的 Python 脚本自行更新列表数量。白金开放获取期刊的数量正在快速增长,因此如果你目前尚未找到合适的期刊,仍然可能在不久以后拥有一些可靠的期刊以供选择。祝你享受出版的乐趣! -------------------------------------------------------------------------------- @@ -56,7 +59,7 @@ via: https://opensource.com/article/22/5/platinum-open-access-academic-journals 作者:[Joshua Pearce][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[CanYellow](https://github.com/CanYellow) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 39622f2a01ef951e7b9e99a053f3a7d2ec73b2b1 Mon Sep 17 00:00:00 2001 From: onionstalgia <35531128+onionstalgia@users.noreply.github.com> Date: Sat, 4 Feb 2023 15:01:19 +0800 Subject: [PATCH 2718/3123] translating --- ...914 Why Enterprises Should Opt for Platform as a Service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md b/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md index e2a6004472..dd1bd4fa29 100644 --- a/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md +++ b/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/" [#]: author: "Gopala Krishna Behara https://www.opensourceforu.com/author/gopalakrishna-behara/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 96868f1354114ed0589d105b06b3cecbe86df125 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 4 Feb 2023 17:25:19 +0800 Subject: [PATCH 2719/3123] add translator's name --- ...20200628 Roy Fielding-s Misappropriated REST Dissertation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md b/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md index 0272e2eb43..406b7049c6 100644 --- a/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md +++ b/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (CanYellow) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 3fd56d09d782d74baa8ccc3a1b85a4298c5d19de Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 4 Feb 2023 18:27:35 +0800 Subject: [PATCH 2720/3123] RP @geekpi https://linux.cn/article-15509-1.html --- ...ookStack, an open source Confluence alternative.md | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) rename {translated/tech => published}/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md (66%) diff --git a/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/published/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md similarity index 66% rename from translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md rename to published/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md index 741c8ca683..3339cc14dd 100644 --- a/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md +++ b/published/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md @@ -3,26 +3,30 @@ [#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15509-1.html" 使用 BookStack 写文档,一个开源的 Confluence 替代品 ====== -BookStack 是一个开源的、基于网络的文档系统,它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计,以提供适合具有潜在的混合技术技能的受众的体验。它建立在 PHP 框架 Laravel 之上,使用 MySQL 或 MariaDB 作为数据存储。 +![][0] -在尝试为我的工作场所寻找文档或 wiki 系统后,我构建了 BookStack。[Confluence][1] 是最符合我要求的选项,但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后,我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它,以回馈我多年来喜爱并从中受益的开源社区。 +> BookStack 是一个开源的、基于网页的文档系统,它允许你创建一个结构化的知识库,供个人、团队或公司使用。 + +BookStack 是一个开源的、基于网页的文档系统,它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计,以适合具有潜在的混合技术技能的受众。它建立在 PHP 框架 Laravel 之上,使用 MySQL 或 MariaDB 作为数据存储。 + +在尝试为我的工作场所寻找文档或维基系统后,我构建了 BookStack。[Confluence][1] 是最符合我要求的选项,但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后,我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它,以回馈我多年来喜爱并从中受益的开源社区。 ### 内容层次和组织选项 -为了保持熟悉和直观,BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建“页”: +为了保持熟悉和直观,BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建为 “Page”: -- 页属于一个特定的“书”。 -- 在一本书中,页可以选择性地被分组为“章节”。 -- 随着文档的增长,你可以使用“书架”来对“书”进行分类,如果需要,“书”可以成为多个书架的一部分。 +- “页” 属于一个特定的 “Book”。 +- 在一本书中,“页” 可以选择性地被分组为 “章节Chapter”。 +- 随着文档的增长,你可以使用 “书架Shelve” 来对 “书” 进行分类,如果需要,“书” 可以成为多个书架的一部分。 -这种结构是 BookStack 的核心,而且往往是决定 BookStack 是否适合你的使用情况的爱与恨的方面。 +这种结构是 BookStack 的核心,而且往往是决定 BookStack 是否适合你的使用情况的选择因素。 在这个核心层次上,BookStack 还提供了标签、用户收藏夹和高级搜索功能,以确保内容可被发现。 @@ -45,21 +49,21 @@ BookStack 是一个开源的、基于网络的文档系统,它允许你创建 ### 你的数据是如何存储的 -文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB][5] 数据库中,如果使用了 Markdown,除了原始的 Markdown 内容外。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。 +如果使用了 Markdown,除了原始的 Markdown 内容外,文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB][5] 数据库中。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。 上传的图片、附件和创建的图纸被保存在本地文件系统中,但也可以选择存储在一个与 s3 兼容的数据存储中,比如开源的 [MinIO][6]。 -为了保持你的内容可访问性,有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部消费,有一个 HTTP REST API 和一个 webhook 系统。在扩展方面,一个“逻辑主题系统”允许在广泛的系统事件中运行自定义的 PHP 代码。 +为了保持你的内容可访问性,有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部使用,有一个 HTTP REST API 和一个 Webhook 系统。在扩展方面,一个 “逻辑主题系统” 允许在广泛的系统事件中运行自定义的 PHP 代码。 -### 为业务做好准备 +### 为商业做好准备 -BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,允许使用 [KeyCloak][7] 等平台轻松实现单点登录。MFA 选项是可用的,并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。 +BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,允许使用 [KeyCloak][7] 等平台轻松实现单点登录。也支持多因子认证(MFA),并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。 一个完全基于角色的权限系统为管理员提供了对系统内容的创建、查看、更新和删除操作的完全控制。这允许每个角色的系统默认值,以及在每个层次项目基础上设置自定义权限的选项。 -### 一个支持的社区 +### 支持的社区 -经过 7 年多的活跃,BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有: +经过 7 年多的积极开发,BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有: - [我们的文档站点][8] - [YouTube 上的视频指南][9] @@ -67,7 +71,7 @@ BookStack 具有一系列的功能来支持商业环境。内置了对一系列 - [一个活跃的 GitHub 问题列表][11] - [付费业务支持][12] -如果你想玩玩 BookStack,你可以[在我们的演示网站][13]试试。要了解如何设置你自己的实例,请访问[我们文档的安装页面][14]。 +如果你想体验一下 BookStack,你可以 [在我们的演示网站][13] 试试。要了解如何设置你自己的实例,请访问 [我们文档中的安装页面][14]。 -------------------------------------------------------------------------------- @@ -76,7 +80,7 @@ via: https://opensource.com/article/23/1/bookstack-open-source-documentation 作者:[Dan Brown][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/) 荣誉推出 @@ -96,3 +100,4 @@ via: https://opensource.com/article/23/1/bookstack-open-source-documentation [12]: https://www.bookstackapp.com/support [13]: https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site [14]: https://www.bookstackapp.com/docs/admin/installation/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/04/180856n7ql7p8fk7l9fa9n.jpg \ No newline at end of file From 36b7a3ef9010dff675a0a196022eb4e00e6baeed Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 11:25:35 +0800 Subject: [PATCH 2721/3123] ATRP @wxy https://linux.cn/article-15511-1.html --- ...ls Stunning New App Icons and Cool Features.md | 127 ++++++++++++++++++ ...ls Stunning New App Icons and Cool Features.md | 127 ------------------ 2 files changed, 127 insertions(+), 127 deletions(-) create mode 100644 published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md delete mode 100644 sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md diff --git a/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md new file mode 100644 index 0000000000..7608577b22 --- /dev/null +++ b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md @@ -0,0 +1,127 @@ +[#]: subject: "LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features" +[#]: via: "https://news.itsfoss.com/libreoffice-7-5-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15511-1.html" + +LibreOffice 7.5 发布:漂亮的新应用图标和酷炫功能 +====== + +> 通过全新的应用程序图标和其他改进,LibreOffice 7.5 似乎有了新的形象。 + +![LibreOffice 7.5 公布了令人惊叹的新应用图标和很酷的功能][1] + +LibreOffice 7.5 社区版来了,带来**许多功能升级和新的应用图标**。 + +之前的主要版本 [7.4 版][2] 为微软的专有文件格式提供了更好的 “互操作性”,并**进一步巩固了 LibreOffice** 作为 Linux 上 [微软 Office 的最佳开源替代品][3] 之一的地位。 + +而现在,一个新的版本来了,里面有很多东西。 + +让我们来看看带来了什么好东西。 + +### 🆕 LibreOffice 7.5 的新变化 + +![LibreOffice 7.5: New Features][4] + +在这个版本中,对 LibreOffice 的所有程序都做了大量的改进;一些关键的亮点包括: + +- 新的应用程序图标 +- Writer 的改进 +- Calc 的改进 +- Impress & Draw 的改进 +- 深色模式的改进 + +#### 新的应用程序图标 + +![LibreOffice 的更新图标][5] + +LibreOffice 现在具有一套新的应用程序图标,看起来相当现代。这些图标在 GNOME 和 KDE Plasma 等新一代的桌面环境中看起来都很漂亮。 + +下面是它与旧图标的对比情况。令人耳目一新,对吗? + +![LibreOffice 旧图标与新图标][6] + +同样,开发者也更新了 LibreOffice 整个界面上用于各种媒体类型/文件的图标集。 + +#### Writer 的改进 + +![LibreOffice Writer 截图][7] + +Writer 应用程序得到了大量的改进,值得注意的包括: + +- 增加了一个新的纯文本类型。 +- 标题和标签的内容控件。 +- 新的组合框类型和将内容控件导出为 PDF 的能力。 +- 对丹麦语、荷兰语、爱沙尼亚语、德语、匈牙利语、挪威语和瑞典语等语言的拼写检查有所改进。 +- 在表格中,当列与合并单元格相交时,对它的检测得到了改进。 +- 书签的编辑和可访问性得到了改进。 +- 一个可以应用于图像、嵌入对象和文本框的装饰性标签,以允许辅助软件在导出的 PDF 中忽略它们。 + +#### Calc 的改进 + +![LibreOffice 7.5 Calc 截图][8] 。 + +在非文本格式的单元格中,带有前导撇号(')的单元格输入现在将永久删除第一个撇号以防止混淆。 + +增加了对 Kamenický 和 Mazovia 编码的支持,同时对条件格式化进行了改进。 + +此外,在函数向导中搜索一个术语时,现在会通过函数描述以及它们的名称进行匹配。 + +#### Impress & Draw 的改进 + +Impress 现在支持在媒体形状中添加裁剪过的视频,还修复了 EMF 图形的模糊问题。 + +![LibreOffice Draw 的新的表格风格设计功能][9] + +在 Draw 里,增加了对修改表格样式和创建新表格的基本支持。修改后的样式被保存到文档中,并可以做成模板和共享。 + +> 🗒️ 你可以通过右键单击 “表格设计” 侧边栏面板中的设计来访问修改表格样式的功能。 + +#### 🛠️ 其他变化和改进 + +这些并不是 7.5 版本中对 LibreOffice 的唯一改进。 + +像**更好地支持深色和高对比度的主题,支持图表中的数据表格,对核心的各种改进,以及更多的东西使它成为一个完善的版本。一些改进是针对 macOS 和 Windows 等平台的,以及针对 Linux 的。 + +你可以从 [官方发布说明][10] 或 [公告][11] 中查看所有的技术变化。 + +### 下载 LibreOffice 7.5 + +LibreOffice 7.5 可以从 [官方下载页面][12] 获得。 + +你可以找到 deb 和 rpm 文件以及用于 Windows 和 macOS(Intel/ARM)的 软件包。 + +> **[LibreOffice 7.5][12]** + +你也可以选择 Torrent 文件以获得更顺畅的下载体验。 + +对于现有的用户,根据你的 Linux 发行版,预计在未来几天/几周会有更新。你可以选择 Flatpak 包以更快地获得最新版本。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/libreoffice-7-5-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/libreoffice-7.5-release.png +[2]: https://news.itsfoss.com/libreoffice-7-4-release/ +[3]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ +[4]: https://youtu.be/ZlAmjIwUvs4 +[5]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Icons.png +[6]: https://news.itsfoss.com/content/images/2023/02/libreoffice-icons.jpg +[7]: https://news.itsfoss.com/content/images/2023/02/libreoffice-writer.png +[8]: https://news.itsfoss.com/content/images/2023/02/libreoffice-7-5.png +[9]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Table_Design.png +[10]: https://wiki.documentfoundation.org/ReleaseNotes/7.5 +[11]: https://blog.documentfoundation.org/blog/2023/02/02/tdf-announces-libreoffice-75-community/ +[12]: https://www.libreoffice.org/download/download-libreoffice/ diff --git a/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md deleted file mode 100644 index d37aa6e92b..0000000000 --- a/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features" -[#]: via: "https://news.itsfoss.com/libreoffice-7-5-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features -====== - -LibreOffice 7.5 seems to have a new personality with its brand-new app icons and other improvements. - -![LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features][1] - -LibreOffice 7.5 community edition is here with **many feature upgrades and new app icons**. - -The previous major release [version 7.4][2] bought in better 'interoperability' with Microsoft's proprietary file formats and **further solidified LibreOffice** as one of the [best open-source alternatives to Microsoft Office][3] on Linux. - -And now, a new release is here with a lot in store. - -Let's take a look at what this has to offer. - -### 🆕 LibreOffice 7.5: What's New? - -![LibreOffice 7.5: New Features][4] - -With this release, plenty of improvements have been made to all the programs of LibreOffice; some key highlights include: - -- **New App Icons** -- **Writer Improvements** -- **Calc Improvements** -- **Impress & Draw Improvements** -- **Dark mode improvement** - -#### New App Icons - -![libreoffice's updated icons][5] - -LibreOffice now features a new set of app icons that look pretty modern. These will look neat with current-gen desktop environments such as GNOME and Plasma. - -Here's how it looks compared to the old icon; refreshing, right? - -![libreoffice old icon vs new icon][6] - -Similarly, the developers have also updated the icon set used throughout LibreOffice's interface for various media types/files. - -#### Writer Improvements - -![libreoffice writer screenshot][7] - -The Writer app has received a host of improvements, notable ones include: - -- A new plain text type was added. -- Content controls for titles and tags. -- New combo box type and ability to export content controls to PDF. -- Spellcheck has improved for various languages such as Danish, Dutch, Estonian, German, Hungarian, Norwegian, and Swedish. -- In case of tables, column detection has improved when it intersects with merged cells. -- Bookmark editing and accessibility has been improved. -- A decorative tag can be applied to images, embedded objects, and text frames to allow assistive software to ignore them in exported PDFs. - -#### Calc Improvements - -![libreoffice 7.5 calc screenshot][8] - -Cell inputs with the leading ' apostrophe in cells that are not formatted as Text will now permanently remove the first apostrophe to prevent confusion. - -Support for Kamenický and Mazovia encodings was added, alongside improvements to conditional formatting. - -In addition, when searching for a term in the Function Wizard, it will now match the function descriptions as well as their names. - -#### Impress & Draw Improvements - -Impress now has support for adding cropped videos in media shapes and also includes a fix for an EMF graphics issue where it would appear blurry. - -![libreoffice draw's new table style design feature][9] - -In the case of Draw, essential support was added for modifying table styles and creating new ones. Modified styles are saved into the document and can be made into templates and shared. - -> 🗒️ You can access the feature to modify table style by right-clicking on a design in the Table Design sidebar panel. - -#### 🛠️ Other Changes and Improvements - -These were not the only improvements to LibreOffice with the 7.5 release. - -Things like **better support for dark and high contrast themes**, support for data tables in charts, various improvements to the core, and more make this a packed release. Some refinements are targeted for platforms like macOS and Windows, along with Linux. - -You can check all the technical changes from the [official release notes][10] or the [announcement][11]. - -### Download LibreOffice 7.5 - -LibreOffice 7.5 is available from the [official download page][12]. - -You can find deb and rpm files along with packages for Windows and macOS (Intel/ARM). - -[LibreOffice 7.5][12] - -You can also opt for a Torrent file for an even smoother download experience. - -For existing users, depending on your Linux distribution, expect an update in the coming days/weeks. You may opt for the Flatpak package for faster access to the latest version. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/libreoffice-7-5-release/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/libreoffice-7.5-release.png -[2]: https://news.itsfoss.com/libreoffice-7-4-release/ -[3]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ -[4]: https://youtu.be/ZlAmjIwUvs4 -[5]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Icons.png -[6]: https://news.itsfoss.com/content/images/2023/02/libreoffice-icons.jpg -[7]: https://news.itsfoss.com/content/images/2023/02/libreoffice-writer.png -[8]: https://news.itsfoss.com/content/images/2023/02/libreoffice-7-5.png -[9]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Table_Design.png -[10]: https://wiki.documentfoundation.org/ReleaseNotes/7.5 -[11]: https://blog.documentfoundation.org/blog/2023/02/02/tdf-announces-libreoffice-75-community/ -[12]: https://www.libreoffice.org/download/download-libreoffice/ From 2900526525d9f41caff962a8ef926794de51c0f6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 11:39:18 +0800 Subject: [PATCH 2722/3123] R --- ...reOffice 7.5 Unveils Stunning New App Icons and Cool Features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md index 7608577b22..84953f683a 100644 --- a/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md +++ b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md @@ -62,7 +62,7 @@ Writer 应用程序得到了大量的改进,值得注意的包括: #### Calc 的改进 -![LibreOffice 7.5 Calc 截图][8] 。 +![LibreOffice 7.5 Calc 截图][8] 在非文本格式的单元格中,带有前导撇号(')的单元格输入现在将永久删除第一个撇号以防止混淆。 From be63e9f68fa2d4be8f70c78d67aea51a2f1d7d86 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 14:01:58 +0800 Subject: [PATCH 2723/3123] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lasma 5.27 Top New Features and Release Details.md | 179 ------------------ ... Linux! Here are 6 Linux origin stories.md | 131 ------------- .../20221016.0 ⭐️⭐️ What’s new in GNOME 43.md | 74 -------- 3 files changed, 384 deletions(-) delete mode 100644 sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md delete mode 100644 sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md delete mode 100644 sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md diff --git a/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md b/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md deleted file mode 100644 index 0179989fc6..0000000000 --- a/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md +++ /dev/null @@ -1,179 +0,0 @@ -[#]: subject: "KDE Plasma 5.27: Top New Features and Release Details" -[#]: via: "https://www.debugpoint.com/kde-plasma-5-27/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -KDE Plasma 5.27: Top New Features and Release Details -====== - -**The list of impressive features and enhancements of the KDE Plasma 5.27 desktop is arriving in February.** - -In a way, KDE Plasma 5.27 is a milestone release. - -Firstly, it is the final LTS release of the Plasma 5 version and the last instalment of the Plasma 5 series. Initial porting work has already started for Plasma 6 series, which would be based on Qt 6 version. - -Release number-wise, it is the 29th version of the KDE Plasma desktop, followed by the [prior plasma 5.26 release][1]. - -Visible feature-wise, it’s of moderate size. However, the bug fixes, code refactoring, cleanup, and optimization are significant. Most are not visible on the deck, but you can feel the changes when using this fluid desktop. - -Before I walk you through the key features, here’s the schedule. - -- **Beta:** Jan 19, 2023 -- **KDE Plasma 5.27 Final release:** Feb 14, 2023 - -![KDE Plasma 5.27 dev edition][2] - -### KDE Plasma 5.27: Best New Features - -#### Plasma Workspace - -A brand new app welcomes you to Plasma desktop from now on. It was a good idea to add this app to Plasma. It will give you some initial information about Plasma, setting up online accounts and so on. - -![Plasma Welcome App][3] - -The media controller applet introduces two new layouts in this release. A vertical layout showing album art, song title and artist name. And an icon-only display showing only album art. [MR 2176][4] - -The icon size settings slide in the Appearance is moved under the preview with more descriptive text. Also, the window size is slightly larger to accommodate the overall items. [MR 2213][5] - -![Changes in icon size slide][6] - -KDE Plasma battery monitor will now show the charging, discharging, and fully charged status for non-power supply batteries such as a wireless mouse, and mobile phones when connected to the Plasma desktop. [MR 2210][7] - -Also, the battery monitor stops showing 100% when the battery is fully charged. You can only see the power icon without any text. [MR 2306][8] - -In another change, the battery monitor shows “Estimating…” text when the remaining time is 0. Also, the remaining time calculation is changed to give you accurate hours and minutes remaining to full charge. - -The middle click features are now exposed in the applet UI when available. The features existed for some apps, but the discovery was difficult unless tried. [MR 2205][9] - -![Exposing the middle click options][10] - -In the upcoming Qt6, the GaussianBlur is not available. Hence it has been removed in this version, and FastBlur is now incorporated. This is part of the initial Qt6 porting of the future Plasma 6 release. [MR 2083][11] - -The “do not disturb” applet now shows a clearer message for the duration. Earlier it used to show “Until today”, and it has been changed to “Automatically ends: Today at ….”. [MR 1412][12] - -In KDE Plasma 5.27, you can directly drag the wallpaper from the image list to any other application which accepts images. For example, you can directly drag and drop an image from the wallpaper window to the Gwenview image viewer. This definitely eases up many workflows and should save hassles from going to the folder and opening them. However, the feature is not working in my test, so I can’t show you a demo. [MR 2284][13] - -We all love Krunner, the most excellent launcher ever! In this release, Krunner now searches for the key in any part of the file name in the recent document list. It sorts the result from the best match, starting with the search key in the file name to the bottom. [MR 2273][14] - -Also, when there is no match in any documents in your system, Krunner now prompts a web search with the search key. [MR 2311][15] - -![Krunner is great][16] - -The developers can now prioritise the applet notification by assigning a notification value of 256. Once it is a high priority, the notification becomes part of the top header instead of the menu. [MR 2245][17] - -The Users settings page, fingerprint register, and authentication selection are much more visually attractive with an actual hand image. [MR 2347][18] - -![New Visual cue for fingerprint][19] - -The accessibility of KDE Plasma is now more robust because the Orca screenreader app can read the notifications. It includes the app name and the notification description. [MR 2295][20] - -#### Wayland, Kwin and Plasma desktop - -KDE Plasma 5.27 now supports **high-resolution scrolling** in Wayland, thanks to libinput 1.9 version changes. With this change, you should experience smooth scrolling performance in Chrome and Firefox browsers. I hope this makes it on par with the Windows experience. To this day, I still feel Windows scrolling in the popular browser is very smooth. [MR 3034][21] - -Another Wayland fix in this release is the inclusion of the Wayland implementation of **idle notification protocol**. In the Wayland session, if you become idle, the data can now be consumed by various apps and modules to save power, change the status in messaging apps, etc. [MR 2959][22] - -Wayland session in Plasma desktop also brings content type. This allows Kwin to tweak the display behaviour (direct scanout, variable refresh rate, etc.) based on the content displayed on the screen. So, you should get an optimized session based on whether you are watching a movie, playing games or casually browsing the web. [MR 2467][23] - -KDE Plasma Wayland session now supports **fractional scaling** natively. The upstream Wayland change for this was [merged][24] a few months back in 2022. You should get native resolution options in Wayland sessions. [MR 2598][25] - -If you are a multi-monitor user, you should be glad to know that the settings to manage multiple displays are now easily accessible via the system tray display configuration. - -![Multiple display configuration is now available from system tray][26] - -#### Discover - -Discover now shows a proper message when you are offline that it cannot fetch software information from servers instead of showing a progress bar. [MR 383][27] - -For the past few releases, Discover has been improved for Flatpak management. This release also gets some goodies for Flatpak apps. Firstly, the Flatpak application view now shows more permissions entries that an app needs. A new settings page lists all the installed Flatpak and its permissions. [MR 372][28] - -![Flatpak Permission in Discover][29] - -Secondly, Discover now waits a few moments before checking updates for Flatpak. While it waits, it shows the locally cached Flatpak data. [MR 421][30] - -Thirdly, the Discover home is revamped. Honestly, it was due for a long time. Now it looks far better with the popular apps, editor’s choice and other categories. [MR 398][31] - -![Discover homepage now revamped][32] - -#### Additional updates - -Other key change includes: - -- Plasma 5.27 is based on KDE Framework 5.102 and Qt 5.15.2. -- Transition animation when changing wallpaper. -- The weather applet now shows weather info in overlay mode. -- The location picker in the weather applet now gives you a possible list of locations. -- The network applet now shows 5G connection label and icons when used. -- And hopefully, a new wallpaper as always! - -[_Detailed changelog_][33] _(5.26.5-5.26.90)_ - -### Download - -The BETA of KDE Plasma 5.27 is now out. You can download the ISO file and torrent via the KDE Neon distribution from the below link. Remember, this is a testing copy, and there may be bugs. So use it with caution. - -[Download KDE Neon (testing edition)][34] - -### Wrapping Up - -Overall, the change list is enormous and impossible to cover in one article. It’s amazing to see so many changes pulled up in each release by the KDE team. The KDE Framework and app changes are not part of this article which is also significant. - -The final release is planned on Feb 14, 2023. - -Distro-wise, KDE Plasma 5.27 should be available in Fedora 38 and Ubuntu 23.04 Lunar Lobster within the March-April timeframe. - -So, which one of the features do you choose as your favourite? Let me know in the comment box below. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/kde-plasma-5-27/ - -作者:[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/kde-plasma-5-26/ -[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/KDE-Plasma-5.27-dev-edition.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Plasma-Welcome-App.jpg -[4]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2176 -[5]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2213 -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Changes-in-icon-size-slide2.jpg -[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2210 -[8]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2306 -[9]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2205 -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Exposing-the-middle-click-options.jpg -[11]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2083 -[12]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1412 -[13]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2284 -[14]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2273 -[15]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2311 -[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Krunner-is-great.jpg -[17]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2245 -[18]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2347 -[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/New-Visual-cue-for-fingerprint.jpg -[20]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2295 -[21]: https://invent.kde.org/plasma/kwin/-/merge_requests/3034 -[22]: https://invent.kde.org/plasma/kwin/-/merge_requests/2959 -[23]: https://invent.kde.org/plasma/kwin/-/merge_requests/2467 -[24]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/143 -[25]: https://invent.kde.org/plasma/kwin/-/merge_requests/2598 -[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/Multiple-display-configuration-is-now-available-from-system-tray.jpg -[27]: https://invent.kde.org/plasma/discover/-/merge_requests/383 -[28]: https://invent.kde.org/plasma/discover/-/merge_requests/372 -[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/Flatpak-Permission-in-Discover.jpg -[30]: https://invent.kde.org/plasma/discover/-/merge_requests/421 -[31]: https://invent.kde.org/plasma/discover/-/merge_requests/398 -[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Discover-homepage-now-revamped.jpg -[33]: https://kde.org/announcements/changelogs/plasma/5/5.26.5-5.26.90/ -[34]: https://files.kde.org/neon/images/testing/current/ diff --git a/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md b/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md deleted file mode 100644 index ba0c619a0b..0000000000 --- a/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md +++ /dev/null @@ -1,131 +0,0 @@ -[#]: subject: "Happy birthday, Linux! Here are 6 Linux origin stories" -[#]: via: "https://opensource.com/article/22/8/linux-birthday-origin-stories" -[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Happy birthday, Linux! Here are 6 Linux origin stories -====== -Our contributors share their first Linux experience on the 31st anniversary of the Linux kernel. - -On August 25, 1991, Linux 0.01 was announced. All of us have a story to tell about Linux. I told my story a couple of months ago, but for those who weren't here: My first exposure to Linux was when my grassroots hospice organization moved from paper to digital charting. We didn't have the funding to get something proprietary, but the IT department had Linux set up on our old machine, and we used the GNOME desktop and OpenOffice to start our journey in creating digital assets. - -I recently asked some Opensource.com authors this simple question: - -*What was your first Linux experience?* - -### From VAX to Linux - -For my junior year of high school, I was shipped off to a state-run "nerd farm" (that's the North Carolina School of Science and Mathematics.) Our first day on campus, the juniors were each assigned a senior big brother or sister. My senior big sister ditched me because she had tickets to go to a big outdoor music festival with her boyfriend, but when they came back all sunburned, we hung out in my mostly empty dorm room eating takeout on the floor. That was when I first met Matt. - -As the year wound on, Matt showed me how to help as a student sysadmin changing backup reels for the VAX mainframe and doing basic tasks on the "big" workstation that doubled as a campus-wide UNIX server. He had a PC in his room, with GNU and XWindows on a Minix kernel, but found this cool new alternative that some Finnish student had started posting the source code for on Usenet. I knew, right then and there, that was my future. - -When I got home for the summer, the first thing I did was buy a shiny new 486 with some of my savings from odd jobs, fired up a SLIP connection through our local BBS, and downloaded and decoded all the bits and pieces I'd need to bootstrap and compile Linux 0.96. - -Matt and I mostly lost touch after he graduated, but I'll always owe him for introducing me to the operating system kernel I'd use for the rest of my life. I think of him every time I see that tattered old copy of **Running Linux** adorning my office shelf. - -The "Matt" in this story is Matthew D. Welsh. After we lost touch, he became the original maintainer of [The Linux Documentation Project][2], and the author of the first edition of the O'Reilly Press book **Running Linux**. - -**[—Jeremy Stanley][3]** - -### Computer club - -Friends at a [computer club][4] inspired me to try Linux. - -I used Linux to help students learn more about other operating systems from 2012 to 2015, and I would say that Linux has taught me more about computers in general. - -It has probably affected my "volunteer career" because to this day I write articles about being a neurodiverse person in the Linux world. I also attend and join different Linux events and groups, so I've had access to a community I probably wouldn't have known otherwise. - -**[—Rikard Grossman-Nielsen][5]** - -### Galaxy - -My Linux story started a long time ago in a galaxy far, far away. In the early 90s, I spent a year in the US as a high school student. Over there, I had access to e-mail and the Internet. When I came back home to Hungary, I finished high school without any Internet access. There were no public Internet providers in Hungary at that time. Only higher education, and some research labs, had Internet. But in 1994, I started university. - -The very first wee of school, I was at the IT department asking for an email address. At that time, there was no Gmail, Hotmail, or anything similar. Not even teachers got an email address automatically at the university. It took some time and persistence, but I eventually received my first university email address. At the same time, I was invited to work in the faculty-student IT group. At first, I got access to a Novell and a FreeBSD server, but soon I was asked to give Linux a try. - -It was probably late 1994 when I installed my first Linux at home. It was Slackware, from a huge pile of floppy disks. At first, I only did a minimal installation, but later I also installed X so I could have a GUI. In early 1995, I installed my first-ever Linux server at the university on a spare machine, which was also the first Linux server at the university. At that time, I used the [Fvwm2][6] window manager both at home and at the university. - -At first, I studied environmental protection at the university, but my focus quickly became IT and IT security. After a while, I was running all the Linux and Unix servers of the faculty. I also had a part time job elsewhere, running web and e-mail servers. I started a PhD about an environmental topic, but I ended up in IT. I've worked with FreeBSD and Linux ever since, helping [sudo][7] and `syslog-ng` users. - -**[—Peter Czanik][8]** - -### Education - -I got introduced to Linux in the late 1990s by my brother and another friend. My first distro was Red Hat 5, and I didn't like it at the time. I couldn't get a GUI running, and all I could see was the command-line, and I thought, "This is like MS-DOS." I didn't much care for that. - -Then a year or more passed, and I picked up a copy of Red Hat 6.1 (I still have that copy) and got it installed on and HP Vectra with a Cyrix chip installed. It had plenty of hard disk space, which was fortunate because the Red Hat Linux software came on a CD. I got the GUI working, and set it up in our technology office at the school district I was employed at. I started experimenting with Linux and used the browser and Star Office (an ancestor of the modern [LibreOffice][9]), which was part of the included software. - -A couple years later, our school district needed a content filter, and so I created one on an extra computer we had in our office. I got Squid, Squidguard, and later Dansguardian installed on Linux, and we had the first self-hosted open source content filter in a public school district in Western New York State. Using this distribution, and later Mandrake Linux (an ancestor of [Mageia][10] Linux) on old Pentium II and Pentium III computers, I set up devices that used [SAMBA][11] to provide backup and profile storage for teachers and other staff. Teaming with members of area school districts I set up spam filtering for a fraction of the cost that proprietary solutions were offering at the time. - -Franklinville Central School District is situated in an area of high rural poverty. I could see that using Linux and open source software was a way to level the playing field for our students, and as I continued to repurpose and refurbish the "cast-off" computers in our storage closets, I built a prototype Linux terminal server running Fedora Core 3 and 4. The software was part of the K12LTSP project. Older computers could be repurposed and PXE booted from this terminal server. At one point, we had several computer labs running the LTSP software. Our staff email server ran on RHEL 2.1, and later RHEL 3.0. - -That journey, which began 25 years ago, continues to this day as I continue to learn and explore Linux. As my brother once said, "Linux is a software Erector set." - -**[—Don Watkins][13]** - -### Out in the open - -My first experience with Linux was brief, and it involved a lot of floppies. As I recall, it was entertaining until my dear wife discovered that her laptop no longer had Windows 98 installed (she was only moderately relieved when I swapped back in the original drive and the "problem" disappeared). That was around 1998, with a Red Hat release that came with a book and a poor unsuspecting ThinkPad. - -But really, at work I always had a nice Sun Workstation on my desktop, so why bother? In 2005, we decided to move to France for a while, and I had to get a (usefully) working Toshiba laptop, which meant Linux. After asking around, I decided to go with Ubuntu, so that was my first "real" experience. I think I installed the first distro (codenamed Warty Warthog,) but soon I was on the latest. There were a few tears along the way, caused mostly by Toshiba's choice of hardware, but once it was running that darned laptop was every bit as fast, and way more functional, for me than the old Sun. Eventually, we returned home, and I had a nice new Dell PC desktop. I installed Feisty Fawn, and I've never looked back. - -I've tried a few other distros, but familiarity has its advantages, particularly when configuring stuff at the lowest of levels. Really though, if forced to switch, I think I would be happy with any decent Linux distro. - -At a few points in time, I have had to do "kernel stuff", like bisecting for bugs and fiddling around with device drivers. I really can't remember the last time something that complicated was necessary, though. - -Right now, I have two desktops and one laptop, all running Ubuntu 22.04, and two aging Cubox i4-pro devices running Armbian, a great Debian-based distro created for people using single-board computers and similar devices. I'm also responsible for a very small herd of various virtual private running several distros, from CentOS to various versions of Ubuntu. That's not to mention a lot of Android-based stuff laying around, and we should recognize that it's Linux, too. - -What really strikes me, as I read this back over, is how weird it all must sound to someone who has never escaped the clutches of a proprietary operating system. - -**[—Chris Hermansen][15]** - -### Getting involved - -The first computer I bought was an Apple, the last Apple was a IIe. I got fed up with the strong proprietorship of Apple over the software and hardware, and switched to an Amiga, which had a nice GUI (incidentally, I have never owned another Apple product.) - -Amiga eventually crumbled, and so I switched to Windows—what an awful transition! About this time, somewhere in the mid- to latter-90s, I was finding out about Linux, and began reading Linux magazines and how to set up Linux machines. I decided to set up a dual-boot machine with Windows, then bought Red Hat Linux, which at the time came on a number of floppy disks. The kernel would have been 2.0-something. I loaded it on my hard drive, and Presto! I was using Linux—the command-line. At that time, Linux didn't read all of your hardware and make automatic adjustments, and it didn't have all the drivers you needed, as it does today. - -So next came the process of looking up in BBSes or wherever to find out where to get drivers for the particular hardware I had, such as the graphics chip. Practically, this meant booting into Windows, saving the drivers to floppy disk, booting back into Linux, and loading the drivers to the hard drive. You then had to hand-edit the configuration files so that Linux knew which drivers to use. This all took weeks to accomplish, but I can still recall the delight I felt when I typed `startx`, and up popped X-Windows!! - -If you wanted to update your kernel without waiting for and buying the next release, you had to compile it yourself. I remember I had to shut down every running program so the compiler didn't crash. - -It's been smooth sailing ever since, with the switch to Fedora (then called "Fedora Core"), and the ease of updating software and the kernel. - -Later, I got involved with the [Scribus][16] project, and I started reading and contributing to the mail list. Eventually, I began contributing to the documentation. Somewhere around 2009, Christoph Schaefer and I, communicating over the internet and sharing files, were able to write **Scribus, The Official Manual** in the space of about 9 months. - -**[—Greg Pittman][17]** - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/linux-birthday-origin-stories - -作者:[AmyJune Hineline][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/amyjune -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/lead-images/rh_003499_01_linux31x_cc.png -[2]: https://tldp.org/ -[3]: https://opensource.com/users/fungi -[4]: https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective -[5]: https://opensource.com/users/rikardgn -[6]: https://opensource.com/article/19/12/fvwm-linux-desktop -[7]: https://opensource.com/article/22/8/debunk-sudo-myths -[8]: https://opensource.com/users/czanik -[9]: https://opensource.com/article/21/9/libreoffice-tips -[10]: http://mageia.org -[11]: https://opensource.com/article/21/12/file-sharing-linux-samba -[12]: https://opensource.com/article/22/5/essential-linux-commands -[13]: https://opensource.com/users/don-watkins -[14]: https://www.redhat.com/sysadmin/linux-kernel-tuning -[15]: https://opensource.com/users/clhermansen -[16]: http://scribus.net -[17]: https://opensource.com/users/greg-p diff --git a/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md b/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md deleted file mode 100644 index 3e6109f32f..0000000000 --- a/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "What’s new in GNOME 43?" -[#]: via: "https://opensource.com/article/22/10/whats-new-gnome-43-linux" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What’s new in GNOME 43? -====== - -I love the [GNOME][1] desktop, and I use it as my daily [Linux desktop environment][2]. I find with GNOME, I can focus on the stuff I need to get done, but I still have flexibility to make the desktop look and act the way I want. - -The GNOME Project recently released GNOME 43, the latest version of the GNOME desktop. I met with GNOME developer Emmanuele Bassi to ask a few questions about this latest release: - -**Jim Hall (Jim): GNOME has lots of great desktop features. What are some of the new features in GNOME 43?** - -**Emmanuele Bassi (Emmanuele):** GNOME 43 has a complete redesign of the system status menu in the Shell. The new design is meant to give quick and easy access to various settings: network connections and VPNs; audio input and output sources and volumes; toggling between light and dark styles. It also has a shortcut for taking a screenshot or starting a screen recording. - -GNOME core applications have also been ported to the new major version of the GNOME toolkit, GTK4. GTK4 is more efficient when it comes to its rendering pipeline, which leads to smoother transitions and animations. Additionally, GNOME applications use libadwaita, which provides new UI elements and adaptive layouts that can seamlessly scale between desktop and mobile form factors. - -The GNOME file manager, Nautilus, is one of the applications that has been ported over to GTK4 and libadwaita, and it has benefitted from the new features in the core platform; it’s now faster, and it adapts its UI when the window is resized. - -The system settings can now show device security information, including manufacturing errors and hardware misconfiguration, as well as possible security issues like device tampering. Lots of work is planned for future releases, as device security is an area of growing concern. - -**Jim: What do you love most about GNOME 43?** - -**Emmanuele:** The most important feature of GNOME, one that I constantly take advantage of and that I always miss when I have to deal with other operating systems is how much the OS does not get in the way of what I’m doing. Everything is designed to let me concentrate on my job, without interruptions. I don’t have bells and whistles constantly on my screen, competing for attention. Everything is neatly tucked away, ready to be used only when I need to. - -**Jim: Many folks are familiar with GNOME today, but may not be familiar with its history. How did GNOME get started?** - -**Emmanuele:** GNOME started in 1997, 25 years ago, as a project for using existing free and open source components to create a desktop environment for everyone that would be respectful of users’ and developers’ freedom. At the time there were only commercial desktops for Unix, or desktops that were based on non-free components. Being able to take the entire desktop, learn from it, and redistribute it has always been a powerful motivator for contributors—even commercial ones. - -Over the past 25 years, GNOME contributors have worked not just on making the desktop, but creating a platform capable of developing and distributing applications. - -**Jim: Open source projects keep going because of a strong community. What keeps the GNOME community strong?** - -**Emmanuele:** I don’t pretend to speak for everyone in the project, but for myself I think the main component is the respect of every voice within the community of contributors, which comes from the shared vision of creating an entirely free and open platform. We all know where we want to go, and we are all working towards the same goal. Sometimes, we may end up pulling in different directions, which is why donating to entities like the GNOME Foundation, which sponsor gatherings and conferences, is crucial: they allow a more comprehensive communication between all the involved parties, and at the end we get better results for it. - -GNOME also takes very seriously respectful communication between members of the community; we have a strong code of conduct, which is enforced within the community itself and covers all venues of communication, including in person events. - -**Jim: GNOME established the Human Interface Guidelines (HIG) to unify the GNOME design and GNOME app interfaces. How did the HIG come about?** - -**Emmanuele****:**The Human Interface Guidelines (HIG) came into being after Sun did a usability study on GNOME 1, one of the very first usability studies for a free software project. The findings from that study led to the creation of a standardized document that projects under the GNOME umbrella would have to follow, which is how we ended up with GNOME 2, back in 2002. - -The HIG was a rallying point and a symbol, a way to demonstrate that the entire project cared about usability and accessibility, and it provided the tools to both desktop and application developers to create a consistent user experience. - -Over the years, the HIG moved away from being a complete checklist of pixels of padding and grids of components, and instead it now provides design principles, UI patterns, conventions, and resources for contributors and application developers. The HIG now has its own implementation library, called libadwaita, which application developers can use when targeting GNOME, and immediately benefit from a deeper integration within the platform without having to re-implement the various styles and patterns manually. - -_Thanks to Emmanuele Bassi for answering this interview. You can find GNOME at_[_https://www.gnome.org/_][3] - -_Read the release announcement for GNOME 43 at_[_https://release.gnome.org/43/_][4] - -_Learn about what’s new in GNOME 43 for developers at_[_https://release.gnome.org/43/developers/_][5] - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/whats-new-gnome-43-linux - -作者:[Jim Hall][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lkxed -[1]: https://opensource.com/article/19/12/gnome-linux-desktop -[2]: https://opensource.com/article/20/5/linux-desktops -[3]: https://www.gnome.org/ -[4]: https://release.gnome.org/43/ -[5]: https://release.gnome.org/43/developers/ From 90be12517205cc2d9951a157ffb3989e47135798 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 14:22:49 +0800 Subject: [PATCH 2724/3123] RP @geekpi https://linux.cn/article-15512-1.html --- .../20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md (100%) diff --git a/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md similarity index 100% rename from translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md rename to published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md From 17d7944c7fbbe59868c7a07abfd6197046dad713 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 14:27:51 +0800 Subject: [PATCH 2725/3123] RP @geekpi https://linux.cn/article-15512-1.html --- ... GNOME Screenshot Tool Old and New Methods.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md index d36bc0f684..51da58de03 100644 --- a/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md +++ b/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -3,24 +3,24 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15512-1.html" -GNOME 截图工具:旧的和新的方法 +GNOME 截图工具的新旧截图方式 ====== -**以下是关于 GNOME 截图工具的细节,它的用法以及如何用旧的和现代的方法安装和启动它们。** +> 以下是关于 GNOME 截图工具的细节,它的用法、安装方法以及如何用新旧两种方式启动它们。 ![][1] 2022 年,GNOME 改变了其默认的截图工具,并将截图功能构建为 GNOME Shell 的一部分。它不再是一个独立的应用了。 -早些时候,GNOME 通过所有主要的 Linux 发行版,如 Ubuntu 和 Fedora,提供了一个本地 GTK 应用 gnome-screenshot。然而,从 [GNOME 42][2] 开始,这个功能已经被移除。因此从 [Ubuntu 22.04][3] 和 Fedora 36 开始,你只能得到以下新的截图 UI 作为默认的截图工具。 +早些时候,GNOME 为主要的 Linux 发行版,如 Ubuntu 和 Fedora,提供了一个原生的 GTK 应用 gnome-screenshot。然而,从 [GNOME 42][2] 开始,这个功能已经被移除。因此从 [Ubuntu 22.04][3] 和 Fedora 36 开始,你只能得到以下新的截图 UI 作为默认的截图工具。 -这一变化从根本上破坏了许多工作流程。因为它不是一个你可以单独启动的可执行文件,你只能依赖键盘上的 Print-Screen 键。而且只能通过应用搜索获得一个快捷方式。 +这一变化从根本上破坏了许多工作流程。因为它不是一个你可以单独启动的可执行文件,你只能依赖键盘上的 `Print-Screen` 键。而且只能通过应用搜索找到它的快捷方式。 -因此,在新的 GNOME 截图 UI 中捕捉有延迟的屏幕截图变得更有挑战性。 +因此,在新的 GNOME 截图 UI 中捕捉延迟的屏幕截图变得更有挑战性。 下面是一些你仍然可以使用旧的 GNOME 截图工具的方法,以及如何手动触发新的截图 UI。 @@ -38,7 +38,7 @@ sudo apt install gnome-screenshot sudo dnf install gnome-screenshot ``` -如果你在 **Arch Linux 或者 Manjaro Linux 中使用 GNOME 桌面**,那么使用下面的命令来安装它。 +如果你在 Arch Linux 或者 Manjaro Linux 中使用 GNOME 桌面,那么使用下面的命令来安装它。 ``` pacman -S gnome-desktop @@ -50,7 +50,7 @@ pacman -S gnome-desktop ![GNOME 截图主窗口(旧)][5] -为了进一步定制,你可以打开设置,从 Shell 的新 UI 中移除 Print-Screen 的按键绑定,并通过以下命令创建一个自定义的键盘快捷方式。 +为了进一步定制,你可以打开设置,从 GNOME Shell 的新 UI 中移除 `Print-Screen` 的按键绑定,并通过以下命令创建一个自定义的键盘快捷方式: ``` gnome-screenshot --window <窗口> @@ -60,13 +60,13 @@ gnome-screenshot <全屏> ### GNOME 截图 UI:如何通过命令行手动触发它 -当你从键盘上按下 Print-Screen 键时执行的函数是 [GNOME Shell 代码][6]的一部分。不幸的是,它被保护在 dbus API 内,你不能直接调用它。 +当你从键盘上按下 `Print-Screen` 键时执行的功能是 [GNOME Shell 代码][6] 的一部分。不幸的是,它被保护在 dbus API 内,你不能直接调用它。 这样做是为了让你在 Wayland 下安全,这样就不会有任意的代码通过任何脚本获得对 dbus 调用函数的访问。 -然而,这破坏了许多使用场景和人们多年来编写的脚本。例如,许多用户报告说 [Zoom][7] 在 GNOME-Wayland 下的视频会议通话[中断][8]就是因为这个原因,最终通过下面这个关闭安全模式的方法解决了这个问题。 +然而,这破坏了许多使用场景和人们多年来编写的脚本。例如,许多用户报告说 [Zoom][7] 在 GNOME-Wayland 下的视频会议通话 [中断][8] 就是因为这个原因,最终通过下面这个关闭安全模式的方法解决了这个问题。 -让我们看看如何关闭它并触发 gnome-shell 的截图 +让我们看看如何关闭它并触发 gnome-shell 的截图。 在使用下面的步骤之前,请谨慎行事。因为它可能会开放你的 GNOME Shell,让你任意访问脚本。请确保你知道你在做什么。 @@ -80,7 +80,7 @@ lg ![启动 looking glass][10] -在顶部选择 Evaluator,在命令窗口中,输入以下内容。然后点击回车。 +在顶部选择 “Evaluator”,在命令窗口中,输入以下内容。然后点击回车。 ``` global.context.unsafe_mode = true @@ -92,9 +92,9 @@ global.context.unsafe_mode = true ![验证][12] -现在按 esc 键关闭 looking glass。并打开一个终端。 +现在按 `Esc` 键关闭 “looking glass”。并打开一个终端。 -输入以下内容以启动截图工具。 +输入以下内容以启动截图工具: ``` gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' @@ -104,10 +104,10 @@ gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --met ![从 CLI 启动新的 GNOME Shell 截图 UI][13] -如果你想关闭它,再次打开 `lg` 并将其设置为 false。 +如果你想关闭它,再次打开 `lg` 并将其设置为 `false`。 ``` -global.context.unsafe_mode = true +global.context.unsafe_mode = false ``` ### 结束语 @@ -123,7 +123,7 @@ via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ 作者:[Arindam][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/) 荣誉推出 From a8ac8785d2b92a79b19ddc65863b2c64b9787b27 Mon Sep 17 00:00:00 2001 From: Peaksol Date: Sun, 5 Feb 2023 17:06:56 +0800 Subject: [PATCH 2726/3123] Update 20220616 9 Best Matrix Clients for Decentralized Messaging.md --- ...0220616 9 Best Matrix Clients for Decentralized Messaging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md index efe78ded0a..475c3985bb 100644 --- a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md +++ b/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/best-matrix-clients/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Peaksol" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ba6b0b09a0427af9f6e2bff3889b6644a875dac4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 6 Feb 2023 08:47:43 +0800 Subject: [PATCH 2727/3123] translated --- ...w to use the Linux file manager for GNOME 2.md | 74 ------------------- ...w to use the Linux file manager for GNOME 2.md | 74 +++++++++++++++++++ 2 files changed, 74 insertions(+), 74 deletions(-) delete mode 100644 sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md create mode 100644 translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md diff --git a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md deleted file mode 100644 index 7b70b8cfc4..0000000000 --- a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "How to use the Linux file manager for GNOME 2" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to use the Linux file manager for GNOME 2 -====== - -Before GNOME 3 there was (unsurprisingly) GNOME 2, which had gained an ardent fanbase during its reign as one of the common default Linux desktops. The [Mate project][1] (named after the _yerba mate_ plant) began as an effort to continue the GNOME 2 desktop, at first using GTK 2 (the toolkit GNOME 2 was based upon) and later incorporating GTK 3. Today, Mate delivers a familiar desktop environment that looks and feels exactly like GNOME 2 did, using the GTK 3 toolkit. Part of that desktop is the Caja file manager, a simple but robust application that helps you sort and organize your data. - -### Install Caja - -Caja isn't exactly a stand-alone application. It's tightly coupled to the Mate desktop, so to try it you must install Mate. - -You may find Mate included in your Linux distribution's software repository, or you can download and install a distribution that ships Mate as its default desktop. Before you do, though, be aware that it's meant to provide a full desktop experience, so many Mate apps are installed along with the desktop. If you're running a different desktop, you may find yourself with redundant applications (two PDF readers, two media players, two file managers, and so on). To evaluate Caja without making major changes to your computer, install a Mate-based distribution in a virtual machine using [GNOME Boxes][2]. - -![Image of the ​Caja file manager.][3] - -### Clear layout - -The thing that you're likely to notice first about Caja is its clear and direct layout. There's a toolbar across the top of the Caja window with buttons for common tasks. I love this kind of design. Function isn't hidden away in a right-click menu, nor discoverable only after an action, nor buried in a menu. The "obvious" actions for the window are listed right across the top. - -Under the main toolbar is the location bar. This displays your current path, either as a series of buttons or as editable text. Use the **Edit** button to the left of the path to toggle whether it's editable or not. - -### Configurable - -For longtime users of GNOME 2 or Caja, the main toolbar can be redundant, especially once you know the keyboard shortcuts to invoke common actions. That's why the Caja interface is configurable. You can disable major components of the Caja window from the **View** menu, including: - -- Main toolbar -- Location bar -- Side panel -- Extra panel -- Status bar - -In short, you can make Caja as minimal as you want it to be. - -![Image of ​a minimal Caja layout.][4] - -### Tag your folders - -Some people are "visual" people. They like to organize files and folders according to how they perceive their data, rather than how the computer interprets it. For instance, if the two most significant folders for you are **Music** and **Work**, it can be hard to convince a computer that there's any relationship between those two. Alphabetically, there's a lot that should get started between the two, and the contents of each may be completely different (media files in one, spreadsheets in another). - -### Caja offers some assistance. - -With Caja, you can place directories manually within a window, and Caja remembers that placement. What's more, Caja has a variety of emblems available for you to use as visual labels. You can find them in the **Edit** menu, in **Backgrounds and Emblems**. Drag and drop them onto files and folders to help them stand apart. - -![Image of emblems in Caja.][5] - -### Caja - -As file managers go, Caja is one of the most inviting. It's configurable enough to appeal to many different use cases, and in those configuration options, you're likely to find a workflow that works for you. If you're a fan of GNOME 2, then you're sure to find Caja familiar, and if you've never used GNOME 2 then you might just find your new favorite desktop in Mate. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-caja - -作者:[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/article/19/12/mate-linux-desktop -[2]: https://opensource.com/article/19/5/getting-started-gnome-boxes-virtualization -[3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png -[4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png -[5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp diff --git a/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md new file mode 100644 index 0000000000..a46007c0b9 --- /dev/null +++ b/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -0,0 +1,74 @@ +[#]: subject: "How to use the Linux file manager for GNOME 2" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何使用 GNOME 2 的 Linux 文件管理器 +====== + +在 GNOME 3 之前是 GNOME 2(毫不奇怪),在其作为常见的默认 Linux 桌面之一的统治期间,它已经获得了一个热心的粉丝群。[Mate项目][1](以 _yerba mate_ 植物命名)开始是为了延续 GNOME 2 的桌面,起初使用 GTK 2(基于 GNOME 2 的工具包),后来加入了 GTK 3。该桌面的一部分是 Caja 文件管理器,一个简单而强大的应用,可以帮助你分类和组织你的数据。 + +### 安装 Caja + +Caja 并不完全是一个独立的应用。它与 Mate 桌面紧密相连,所以要试用它,你必须安装 Mate。 + +你可能会发现 Mate 包含在你的 Linux 发行版的仓库中,或者你可以下载并安装一个将 Mate 作为默认桌面的发行版。不过,在你安装之前,要注意它是为了提供完整的桌面体验,所以许多 Mate 应用会和桌面一起安装。如果你运行一个不同的桌面,你可能会发现自己有多余的应用(两个 PDF 阅读器,两个媒体播放器,两个文件管理器,等等)。要评估 Caja 不会对你的电脑做重大改动,可以使用 [GNOME Boxes][2] 在虚拟机中安装一个基于 Mate 的发行版。 + +![Image of the Caja file manager.][3] + +### Clear 布局 + +你可能首先注意到的是 Caja 的清晰和直接的布局。在 Caja 窗口的顶部有一个工具栏,上面有一些常用任务的按钮。我喜欢这样的设计。功能不是隐藏在右键菜单中,也不是只有在操作后才能发现,更不是埋在菜单中。窗口的“显而易见”的操作被直接列在上面。 + +主工具栏下面是位置栏。它显示你当前的路径,可以是一系列的按钮,也可以是可编辑的文本。使用路径左边的**编辑**按钮来切换它是否可编辑。 + +### 可配置 + +对于 GNOME 2 或 Caja 的长期用户来说,主工具栏可能是多余的,尤其是当你知道了调用常用操作的键盘快捷键后。这就是为什么 Caja 的界面是可配置的。你可以从**查看**菜单中禁用Caja窗口的主要组件,包括: + +- 主工具条 +- 位置栏 +- 侧板 +- 额外面板 +- 状态栏 + +简而言之,你可以把 Caja 变成你想要的最小的样子。 + +![Image of a minimal Caja layout.][4] + +### 标记你的文件夹 + +有些人是“可视化”人。他们喜欢根据自己对数据的看法来组织文件和文件夹,而不是根据计算机对数据的解释。例如,如果对你来说最重要的两个文件夹是**音乐**和**工作**,就很难让计算机相信这两者之间有任何关系。按字母顺序,两者之间有很多应该开始的地方,而且每个文件夹的内容可能完全不同(一个是媒体文件,另一个是电子表格)。 + +### Caja 提供了一些帮助 + +使用 Caja,你可以在一个窗口内手动放置目录,Caja 会记住这个位置。更重要的是,Caja 有多种标志可供你用作视觉标签。你可以在**编辑**菜单的**背景和标志**中找到它们。将它们拖放到文件和文件夹中以帮助它们区分。 + +![Image of emblems in Caja.][5] + +### Caja + +作为文件管理器,Caja 是最诱人的之一。它的可配置性足以吸引许多不同的使用场景,而且在这些配置选项中,你很可能找到适合你的工作流程。如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-caja + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/19/12/mate-linux-desktop +[2]: https://opensource.com/article/19/5/getting-started-gnome-boxes-virtualization +[3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png +[4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png +[5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp From dd194582464233a49bfc5a6916fd8eefa623de07 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 6 Feb 2023 08:50:39 +0800 Subject: [PATCH 2728/3123] translating --- sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md index 87ca9f035b..e3dcaeff4a 100644 --- a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md +++ b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 27406e839482cd6ce1303801cf28883a1e01a0f9 Mon Sep 17 00:00:00 2001 From: Peaksol Date: Mon, 6 Feb 2023 10:12:14 +0800 Subject: [PATCH 2729/3123] Translated --- ...rix Clients for Decentralized Messaging.md | 207 ----------------- ...rix Clients for Decentralized Messaging.md | 215 ++++++++++++++++++ 2 files changed, 215 insertions(+), 207 deletions(-) delete mode 100644 sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md create mode 100644 translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md diff --git a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md deleted file mode 100644 index 475c3985bb..0000000000 --- a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md +++ /dev/null @@ -1,207 +0,0 @@ -[#]: subject: "9 Best Matrix Clients for Decentralized Messaging" -[#]: via: "https://itsfoss.com/best-matrix-clients/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "Peaksol" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -9 Best Matrix Clients for Decentralized Messaging -====== -Matrix is an open network standard tailored for secure decentralized real-time communication. - -It is published and maintained by a non-profit, Matrix.org Foundation. They aim to create an open, independent, and evolving communication platform. - -If an application supports the Matrix protocol, you can consider it a Matrix client. - -### Why Should You Choose a Matrix Client? - -[Matrix][1] clients focus on security and privacy and offer a decentralized network that provides opportunities for numerous things. - -Since 2019 (when it got out of beta), several organizations and government authorities have gradually adopted the Matrix protocol to empower their communication platforms for security, privacy, and reliability. - -For instance, a decentralized protocol makes way for cross-communication between organizations and gives you a communication protocol that is resistant to censorship. - -Matrix protocol is the right choice if you want something that gets you away from the big tech. - -Not just limited to that, you also get the ability to run your server to join the Matrix network. In other words, you get a decentralized infrastructure for communication while still having some control over it to set it up and configure it as per your requirements. - -In case you are curious, Matrix protocol has all the essential features one would need, including: - -* Decentralized conversations -* End-to-End encryption -* WebRTC VoIP/Video calling -* Real-time sync -* Read receipts -* Typing Notifications -* Group conversations - -And, I should highlight this again: It is an **open-source** project! - -So, it is a no-brainer to opt for Matrix clients, especially now that more users care about their privacy and security. - -### 9 Top Open-Source Matrix Clients - -Here, I shall highlight some of the most helpful Matrix clients, primarily for desktop (Linux, Windows, macOS), while also mentioning mobile and terminal clients. - -#### 1. Element - -![element][2] - -[Element][3] is one of the best open-source Slack alternatives. You can use it for personal communication and team chat as well. - -It is free to get started, but you do have options to self-host your server or pay a premium for a managed home server. You get various useful features to collaborate effectively and securely communicate with your team/friends. - -If you opt to pay for a subscription, you can even choose to bring your Signal, WhatsApp, and Telegram chats into a single place. - -It supports Linux, Windows, and macOS while offering a proper mobile client for Android and iOS. Additionally, you can use it through the web browser. So, it should be a convenient option. - -[Element][4] - -#### 2. Rocket.Chat - -![rocket chat][5] - -[Rocket.Chat][6] is yet another Slack alternative, which we prefer to use for our internal team communication. - -It is available for Linux, Windows, and macOS. You also get mobile applications for Android and iOS. - -While it gives you the option to self-host or opt for a premium subscription, it also announced that it is adding [support for Matrix protocol integration][7]. - -When writing this, the Matrix network can be utilized using an alpha build. However, the stable build for it should be around the corner. So, if you are already using Rocket.Chat, or want to use it as a Matrix client, you might want to keep an eye on its upcoming releases. - -[Rocket.Chat][8] - -#### 3. NeoChat - -![neochat][9] - -NeoChat is a simple Matrix client actively developed under KDE’s umbrella. - -Unlike Element, it is only available for Linux and Windows, and particularly tailored for KDE Plasma. You can use it on other desktop environments as well. - -You can install it through KDE’s Discover software center, Flathub, and Snap Store. It is not available for mobile platforms. So, it can be a good candidate for desktop users who prefer a straightforward Matrix client. - -Check out its [source code][10] to explore more about it. - -[NeoChat][11] - -#### 4. FluffyChat - -![fluffychat][12] - -FluffyChat makes up for a good-looking (cute) Matrix client in terms of user experience. - -If you want a simple and intuitive Matrix client on your desktop with mobile apps (Android and iOS) available, FluffyChat is an impressive option. - -For Linux, you can install it from the Snap Store or the Flathub. It does not offer native apps for Windows and macOS, but you can use it through the web browser. - -If you are curious, you can check out its [GitLab page][13] to know more. - -[FluffyChat][14] - -#### 5. Fractal - -![fractal][15] - -Fractal is a Matrix messaging client for GNOME desktop, written in Rust. As per its description, it provides an optimized interface fit for collaboration in large groups. - -Considering it is available as a Flatpak, you can install it on any Linux distribution, irrespective of the desktop environment. - -Fractal seems an excellent option for users who focus on applications that perform the fastest on their system. You can head to its [GitLab page][16] to research more about it. - -[Fractal][17] - -#### 6. Hydrogen Web (Experimental) - -![hydrogen][18] - -Looking for another minimal (performance-focused) Matrix client? - -Hydrogen is a chat client that aims to provide a lightweight experience, offline functionality, and wide browser support. - -While it is still a work in progress, it is being developed by the same team behind the Element messenger. So, if you longingly expect a lightweight Matrix client as an alternative to others, you might want to follow the project on its [GitHub page][19]. - -[Hydrogen][20] - -#### 7. Matrix Commander (CLI-based) - -This command-line tool can be the perfect fit if you want to use the terminal to send/receive text messages via the Matrix network. - -Of course, you cannot do everything from the terminal. So, it is best suited for creating cron jobs for message reminders, or bots, and similar use-cases. - -You can find it on [PyPi][21] and Docker Hub as well. - -[Matrix Commander][22] - -#### 8. Gomuks (CLI-based) - -![gomuks][23] - -Need a terminal-based Matrix client written in Go? - -Not for everyone to try. But, if you are someone who likes to use command-line tools written in Go, Gomuks can be a straightforward Matrix client for basic messaging. - -You can find the binaries for Linux, Windows, and macOS on its [GitHub releases section][24]. - -[Gomuks][25] - -#### 9. Syphon (Alpha) - -![syphon][26] - -We usually avoid listing programs in their early stages of development. However, Syphon is an interesting option as a mobile-exclusive Matrix client. - -If you want a Signal-like open-source Matrix client for your Android/iOS device, Syphon can be an exciting choice. The user interface looks familiar (but not an exact copy of it). You can try it out if you are looking to experiment. - -[Syphon][27] - -### Wrapping Up - -Matrix protocol may not be entirely popular across every organization and demographic. However, it is proving to be one of the most robust decentralized networks for privacy and reliability as an open-source project. - -The best thing is that you get to choose the client you want, without being forced to use a particular app for communication across multiple devices. - -So, what would you choose as your favorite Matrix client? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/best-matrix-clients/ - -作者:[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://matrix.org/ -[2]: https://itsfoss.com/wp-content/uploads/2022/06/element-2022.jpg -[3]: https://itsfoss.com/element/ -[4]: https://element.io/ -[5]: https://itsfoss.com/wp-content/uploads/2022/06/rocket-chat-2022.jpg -[6]: https://itsfoss.com/rocket-chat/ -[7]: https://news.itsfoss.com/rocket-chat-matrix/ -[8]: https://rocket.chat/ -[9]: https://itsfoss.com/wp-content/uploads/2022/06/neochat.png -[10]: https://invent.kde.org/network/neochat -[11]: https://apps.kde.org/neochat/ -[12]: https://itsfoss.com/wp-content/uploads/2022/06/fluffychat.png -[13]: https://gitlab.com/famedly/fluffychat -[14]: https://fluffychat.im/ -[15]: https://itsfoss.com/wp-content/uploads/2022/06/fractal.png -[16]: https://gitlab.gnome.org/GNOME/fractal -[17]: https://wiki.gnome.org/Apps/Fractal -[18]: https://itsfoss.com/wp-content/uploads/2022/06/hydrogen.png -[19]: https://github.com/vector-im/hydrogen-web/ -[20]: https://github.com/vector-im/hydrogen-web/ -[21]: https://pypi.org/project/matrix-commander/ -[22]: https://github.com/8go/matrix-commander -[23]: https://itsfoss.com/wp-content/uploads/2022/06/gomuks.png -[24]: https://github.com/tulir/gomuks/releases -[25]: https://maunium.net/go/gomuks/ -[26]: https://itsfoss.com/wp-content/uploads/2022/06/syphon.jpg -[27]: https://syphon.org/ diff --git a/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md new file mode 100644 index 0000000000..2c0269445b --- /dev/null +++ b/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md @@ -0,0 +1,215 @@ +[#]: subject: "9 Best Matrix Clients for Decentralized Messaging" +[#]: via: "https://itsfoss.com/best-matrix-clients/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +9 款最佳的去中心化聊天 Matrix 客户端 +====== +Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯。 + +这套标准由 Matrix.org 基金会发布和维护。Matrix.org 基金会是一个非盈利性组织,致力于创建一个开放、独立且不断演进的通讯平台。 + +如果一款应用支持 Matrix 协议,那就可以视它为 Matrix 客户端。 + +### 为何要选用 Matrix 客户端? + +[Matrix][1] 客户端致力于安全性和隐私性,并且实现了去中心化的网络,令许多特性得以实现。 + +自 2019 年(正式版本发布)以来,部分组织以及政府机构便开始逐渐采用 Matrix 协议,从而搭建安全、隐私、可靠的通讯平台。 + +就实际而言,去中心化的协议实现了不同组织间的相互通讯,同时也使得这个通讯协议得以抵抗审查。 + +如果你想要逃脱科技巨头的魔爪,那 Matrix 就是正确的选择。 + +不仅如此,你还可以运行自己的服务器,并加入 Matrix 网络。换言之,通讯的基础设施是去中心化的,但你仍然能够根据需要,对其部分进行部署和配置。 + +如果你好奇的话,Matrix 协议具备了你需要的所有基本功能: + +* 去中心化交流 +* 端到端加密 +* WebRTC 语音通话 / 视频通话 +* 实时同步 +* 消息已读用户显示 +* “正在输入中” 提示 +* 群组聊天 + +而且,我还要再强调一次:这个项目是**开源**的! + +所以,Matrix 客户端已经是不二之选了。对那些注重隐私和安全的用户来说,则更是如此。 + +> 译注:实际上,Matrix 只是在隐私和便利之间达成了一种相对的平衡。它是将类似 Mastodon 的联邦(federated)网络结构用在了聊天中,也就是说,虽然整个网络去中心化成了许多节点,但节点服务器的运营者仍然能对其用户进行少量掌控。但总的来说,相对那些中心化的聊天应用而言,Matrix 是个值得考虑的替代品。 + +### 9 款最佳的开源 Matrix 客户端 + +本文中,我将介绍一些最好用的 Matrix 客户端,其中主要是桌面客户端(Linux、Windows、macOS),同时也推荐一些移动客户端和终端客户端。 + +#### 1. Element + +![element][2] + +[Element][3] 是最佳的 Slack 开源替代品之一。它可以用于个人通讯,也能用于群组聊天。 + +你可以免费开始使用,不过你也可以选择自己搭建服务器,或者在其他节点服务器上付费使用。Element 提供了许多有用的功能,让你能够高效协作,并与你的团队或好友加密通讯。 + +> 译注:如同 Mastodon 一样,自费搭建服务器或者付费使用服务器,对大部分用户而言都是不必要的。初学者建议前往 ,并选择一个现有的服务器进行注册,其中许多服务器都是免费开放注册,并且国内可以连接的。下述的订阅功能也并不是必要的。 + +如果你选择订阅,你还能将 Signal、WhatsApp 和 Telegram 聊天并入其中。 + +它支持 Linux、Windows 和 macOS,同时还提供 Android 和 iOS 的手机客户端。并且,你还能在网页浏览器中使用它。因此,这是个方便的选择。 + +> 译注:国内用户可能会在桌面客户端遇到错误,导致无法使用 Element。这是因为它在首次启动会连接 matrix.org,但是国内用户无法访问这个地址。要解决此问题,须手动修改配置文件(篇幅有限,详见相关教程)。实在无法解决,可使用基于 Element 的 [SchildiChat](https://schildi.chat/),或下文列出的其他客户端。 + +[Element][4] + +#### 2. Rocket.Chat + +![rocket chat][5] + +[Rocket.Chat][6] 是另一个 Slack 替代品,我们更喜欢把它当成团队内部的通讯工具。 + +你可以在 Linux、Windows 和 macOS 上使用它,也可以获取 Android 和 iOS 的手机应用。 + +尽管你可以选择自建服务器或订阅会员,但它也宣布了添加 [Matrix 协议的支持][7]。 + +本文创作之时,已经可以在 alpha 版中使用 Matrix 网络。不过,稳定版应该很快就会发布了。所以,如果你已经在使用 Rocket.Chat,或者想把它当作 Matrix 客户端来使用,那么敬请关注后续版本的发布。 + +[Rocket.Chat][8] + +#### 3. NeoChat + +![neochat][9] + +NeoChat 是一个简单的 Matrix 客户端,目前在 KDE 家族中进行活跃开发。 + +与 Element 不同,它只支持 Linux 和 Windows,而且尤其用于 KDE Plasma。你也可以在其他桌面环境使用它。 + +你可以在 KDE 的 Discover 软件中心、Flathub 以及 Snap 商店安装它。它不支持手机平台。所以,如果有桌面用户想要一个简单的 Matrix 客户端,那 NeoChat 也是一个不错的选择。 + +> 译注:纠正一下,NeoChat 也支持 Android,可直接下载二进制,也可在 F-Droid 中添加 KDE 仓库后下载。除此之外,它还支持 MacOS。详见其源代码仓库。 + +了解更多,可以查看它的 [源代码][10]。 + +[NeoChat][11] + +#### 4. FluffyChat + +![fluffychat][12] + +FluffyChat 在用户体验方面,是一个美观(可爱)的 Matrix 客户端。 + +如果你想要一个简单又直观的 Matrix 客户端,并且支持桌面和手机(Android 和 iOS),那么 FluffyChat 是一个不错的选择。 + +Linux 用户可以从 Snap 商店或 Flathub 安装它。他并不提供 Windows 和 macOS 的原生应用支持,但你可以在网页浏览器中使用它。 + +如果你好奇的话,可以从它的 [GitLab 页面][13] 了解更多。 + +[FluffyChat][14] + +#### 5. Fractal + +![fractal][15] + +Fractal 是一款用于 GNOME 桌面的 Matrix 聊天客户端,使用 Rust 编写。正如其描述所说,它的界面经过优化,适合大型群组的协作。 + +由于它以 Flatpak 的形式发布,你可以在任何 Linux 发行版上安装它,无论桌面环境如何。 + +如果你喜欢能够在系统上快速运行的应用,那 Fractal 可能是不错的选择。可以前往它的 [GitLab 页面][16] 了解更多。 + +[Fractal][17] + +#### 6. Hydrogen Web (实验性) + +![hydrogen][18] + +在找别的轻量级(专注性能)的 Matrix 客户端吗? + +Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛的浏览器支持。 + +虽然仍未完工,但 Element 背后的同一支团队正在开发着它。所以,如果你期待看到一个轻量的 Matrix 客户端替代品,你可以在它的 [GitHub 页面][19] 跟进该项目。 + +[Hydrogen][20] + +#### 7. Matrix Commander (基于 CLI) + +如果你想要用终端在 Matrix 网络上来收发文字消息,这个命令行工具就十分不错。 + +当然,并非一切都能在终端完成。所以,最好创建 cron 任务来实现消息提醒、机器人等用例。 + +你可以在 [PyPi][21] 或者 Docker Hub 上找到它。 + +[Matrix Commander][22] + +#### 8. Gomuks (基于 CLI) + +![gomuks][23] + +想试试用 Go 写的终端 Matrix 客户端? + +并非每个人都可以尝试。不过,如果你喜欢用 Go 写的命令行工具,可以用 Gomuks 这个简单的 Matrix 客户端来进行基本聊天。 + +你可以在它的 [GitHub Releases 部分][24] 找到其 Linux、Windows 和 macOS 的二进制文件。 + +[Gomuks][25] + +#### 9. Syphon (Alpha) + +![syphon][26] + +我们通常会避免列出仍处于早期开发的程序。但是,Syphon 作为一个手机专用的 Matrix 客户端,是一个有趣的选择。 + +如果你想要为你的 Android/iOS 设备安装一个类似 Signal 的开源 Matrix 客户端,那选择 Syphon 也不错。用户界面看起来很熟悉(但并不是完全照抄的)。如果你想实验一下,那可以试试。 + +[Syphon][27] + +### 总结 + +Matrix 协议也许没能流行于所有组织和人群之中。但是,可以证明的是,作为一个开源项目,它能称得上是一个隐私可靠的去中心化网络。 + +最好的一点在于,你可以选择你想要的客户端,而不必被迫使用特定的应用才能在多个设备之间进行通信。 + +所以,最好的 Matrix 客户端,你选哪一个? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-matrix-clients/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[Peaksol](https://github.com/TravinDreek) +校对:[校对者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://matrix.org/ +[2]: https://itsfoss.com/content/images/wordpress/2022/06/element-2022.jpg +[3]: https://itsfoss.com/element/ +[4]: https://element.io/ +[5]: https://itsfoss.com/content/images/wordpress/2022/06/rocket-chat-2022.jpg +[6]: https://itsfoss.com/rocket-chat/ +[7]: https://news.itsfoss.com/rocket-chat-matrix/ +[8]: https://rocket.chat/ +[9]: https://itsfoss.com/content/images/wordpress/2022/06/neochat.png +[10]: https://invent.kde.org/network/neochat +[11]: https://apps.kde.org/neochat/ +[12]: https://itsfoss.com/content/images/wordpress/2022/06/fluffychat.png +[13]: https://gitlab.com/famedly/fluffychat +[14]: https://fluffychat.im/ +[15]: https://itsfoss.com/content/images/wordpress/2022/06/fractal.png +[16]: https://gitlab.gnome.org/GNOME/fractal +[17]: https://wiki.gnome.org/Apps/Fractal +[18]:https://itsfoss.com/content/images/wordpress/2022/06/hydrogen.png +[19]: https://github.com/vector-im/hydrogen-web/ +[20]: https://github.com/vector-im/hydrogen-web/ +[21]: https://pypi.org/project/matrix-commander/ +[22]: https://github.com/8go/matrix-commander +[23]: https://itsfoss.com/content/images/wordpress/2022/06/gomuks.png +[24]: https://github.com/tulir/gomuks/releases +[25]: https://maunium.net/go/gomuks/ +[26]: https://itsfoss.com/content/images/wordpress/2022/06/syphon.jpg +[27]: https://syphon.org/ From 326f9e6eac2e5ffcf6c41f6457170fcd1bdc8c76 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 6 Feb 2023 15:57:52 +0800 Subject: [PATCH 2730/3123] RP @geekpi https://linux.cn/article-15514-1.html --- ...ver the power of the Linux SpaceFM file manager.md | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md (55%) diff --git a/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/published/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md similarity index 55% rename from translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md rename to published/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md index 000421e242..fc4c8e57f9 100644 --- a/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md +++ b/published/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md @@ -3,14 +3,18 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15514-1.html" -发现 Linux SpaceFM 文件管理器的强大 +发现 Linux SpaceFM 文件管理器的威力 ====== -SpaceFM 是一个使用 GTK 工具包的 Linux 的标签式文件管理器,所以它很适合在 [GNOME][1]、[Mate][2]、[Cinnamon][3] 等的桌面上使用。SpaceFM 还具有一个内置的设备管理器系统,所以它特别适合于窗口管理器,像 [Fluxbox][4] 或 [fvwm][5],它们通常不包括一个图形设备管理器。如果你对 Linux 上的文件管理器满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 +![][0] + +> 如果你对 Linux 上的文件管理器感到满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 + +SpaceFM 是一个使用 GTK 工具包的 Linux 的标签式文件管理器,所以它很适合在 [GNOME][1]、[Mate][2]、[Cinnamon][3] 等的桌面上使用。SpaceFM 还具有一个内置的设备管理器系统,所以它特别适合于 [Fluxbox][4] 或 [fvwm][5] 之类的窗口管理器,它们通常不包括图形设备管理器。如果你对 Linux 上的文件管理器满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 ### 安装 SpaceFM @@ -28,7 +32,7 @@ $ sudo apt install spacefm ### 面板 -我不知道为什么 SpaceFM 被称为 SpaceFM,但可能是因为它做出了一致的努力,让你把窗口中的每一点空间都用来做有用的事情。默认情况下,SpaceFM 实际上是相当简单的、标准的文件管理器。它有一个列出你的文件的面板,一个工具栏,和一个菜单栏。 +我不知道为什么 SpaceFM 被称为 SpaceFM,但可能是因为它致力于让你把窗口中的每一点空间都用来做有用的事情。默认情况下,SpaceFM 实际上是相当简单的、标准的文件管理器。它有一个列出你的文件的面板,一个工具栏,和一个菜单栏。 ![SpaceFM is typical in design. At first.][6] @@ -37,38 +41,38 @@ $ sudo apt install spacefm - **双击**打开一个目录或在其默认的应用中打开一个文件。 - **右键点击**可获得一个上下文菜单,提供许多标准选项(复制、粘贴、重命名、查看属性、创建新文件夹,等等)。 -不过,SpaceFM 使自己与众不同的方式是它的面板系统。SpaceFM 默认显示一个面板。这就是列出你的文件的大文件窗口。但它最多可以有四个面板视图,再加上一些用于某些特定任务的额外面板。 +不过,SpaceFM 使自己与众不同的方式是它的面板系统。SpaceFM 默认显示一个面板。这就是占据大部分空间的文件列表窗口。但它最多可以有四个面板视图,再加上一些用于某些特定任务的额外面板。 ### 打开一个新的面板 -在你的文件管理器中,你可以看到两个目录,而不是看到一个目录。要在自己的窗格中调出另一个目录,按 **Ctrl+2** 或进入**视图**菜单,选择 **Panel 2**。或者,点击菜单面板中从左开始的第二个绿点图标。 +在你的文件管理器中,你可以看到两个目录,而不是看到一个目录。要在自己的窗格中调出另一个目录,按 `Ctrl+2` 或进入 “视图View” 菜单,选择 “面板二Panel 2”。或者,点击菜单面板中从左开始的第二个绿点图标。 有了两个面板,你可以把文件从一个目录移到另一个目录,而不需要打开一个新的文件管理器窗口,或者你可以浏览两个目录来比较其内容。 -但为什么要满足于两个面板呢?也许你更想一次看到三个目录。要在一个专门的窗格中调出第三个目录,请按 **Ctrl+3** 或进入**查看**菜单,选择 **Panel 3**。或者,点击菜单面板中从左开始的第三个绿点图标。这个面板出现在 SpaceFM 窗口的底部。 +但为什么要满足于两个面板呢?也许你更想一次看到三个目录。要在一个专门的窗格中调出第三个目录,请按 `Ctrl+3` 或进入 “视图View” 菜单,选择 “面板三Panel 3”。或者,点击菜单面板中从左开始的第三个绿点图标。这个面板出现在 SpaceFM 窗口的底部。 打开三个面板后,你可以在几个目录之间移动文件,或将文件从一个公共的“垃圾场”(如你的桌面或下载文件夹)分类到特定的目录。 -当然,当你尝试了三个面板,你可能会发现自己很想拥有第四个面板。要在自己的窗格中打开第四个目录,按 **Ctrl+4** 或进入**查看**菜单,选择 **Panel 4**。或者,点击菜单面板中从左开始的第四个绿点图标。这个会在面板 3 旁边打开,并将你的 SpaceFM 窗口分成四份。 +当然,当你尝试了三个面板,你可能会发现自己很想拥有第四个面板。要在自己的窗格中打开第四个目录,以此类推。或者,点击菜单面板中从左开始的第四个绿点图标。这个会在面板三旁边打开,并将你的 SpaceFM 窗口分成四份。 ![SpaceFM can have up to four panels.][7] -那么_第五个_面板呢?好吧,实际上 SpaceFM 仅有四个面板。如果你真的想有第五个面板,你必须打开一个新的 SpaceFM 窗口。然而,仍有更多的面板,用于文件列表以外的信息,可供探索。 +那么 _第五个_ 面板呢?好吧,实际上 SpaceFM 仅有四个面板。如果你真的想有第五个面板,你必须打开一个新的 SpaceFM 窗口。然而,仍有更多的面板,用于文件列表以外的信息,可供探索。 ### 特殊面板 -在**查看**菜单中可以看到,除了文件面板外,还有一些特定的任务面板可以选择显示。这包括: +在 “视图View” 菜单中可以看到,除了文件面板外,还有一些特定的任务面板可以选择显示。这包括: -- **任务管理器**:列出正在进行的文件管理器进程。这不是一个通用的任务管理器,所以要设置 nice 值或检测僵尸 PID,[htop 或 top][8] 仍然是你选择的工具。 -- **书签**:常用文件夹的链接,如桌面、文档、下载和任何你想保持方便的位置。 -- **设备**:USB 驱动器和远程文件系统。 -- **文件树**:按照目录继承顺序查看文件系统。 +- “任务管理器Task manager”:列出正在进行的文件管理器进程。这不是一个通用的任务管理器,所以要设置 nice 值或检测僵尸 PID,[htop 或 top][8] 仍然是你应该选择的工具。 +- “书签Bookmarks”:常用文件夹的链接,如桌面、文档、下载和任何你想保持方便的位置。 +- “设备Devices”:USB 驱动器和远程文件系统。 +- “文件树File tree”:按照目录继承顺序查看文件系统。 这些面板在 SpaceFM 的左侧打开,但它们是堆叠的。你可以同时打开书签、设备、任务和文件树,尽管它会有一个非常高的 SpaceFM 窗口。 ### 为 SpaceFM 腾出空间 -SpaceFM 是一个可配置的多任务文件管理器。它最大限度地增加了你可以在一个窗口中展示的信息,并让你决定什么是重要的,以及什么时候重要。本文重点介绍了 SpaceFM 的面板,因为至少在我看来,这些是该应用最独特的方面。然而,SpaceFM 还有很多东西,包括插件、首选项、设计模式、键盘快捷键和自定义。这不是一个小的应用,尽管它是一个轻量级的。花些时间在 SpaceFM 上,因为你永远不知道你会发现什么。 +SpaceFM 是一个可配置的多任务文件管理器。它最大限度地增加了你可以在一个窗口中展示的信息,并让你决定什么是重要的,以及什么时候重要。本文重点介绍了 SpaceFM 的面板,因为至少在我看来,这些是该应用最独特的方面。然而,SpaceFM 还有很多东西,包括插件、首选项、设计模式、键盘快捷键和自定义。这不是一个小型应用,尽管它是轻量级的。花些时间在 SpaceFM 上,因为你永远不知道你会发现什么。 -------------------------------------------------------------------------------- @@ -77,7 +81,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-spacefm 作者:[Seth Kenlon][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/) 荣誉推出 @@ -91,3 +95,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-spacefm [6]: https://opensource.com/sites/default/files/2022-10/spacefm.webp [7]: https://opensource.com/sites/default/files/2022-10/spacefm-panels.webp [8]: https://opensource.com/life/16/2/open-source-tools-system-monitoring +[0]: https://img.linux.net.cn/data/attachment/album/202302/06/155511zdru3ulr4xmxeekj.jpg \ No newline at end of file From 8aefc8abe1978f82d9b91570a4acaf3a9eb5fd54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 6 Feb 2023 16:41:38 +0800 Subject: [PATCH 2731/3123] RP @TravinDreek https://linux.cn/article-15515-1.html --- ...rix Clients for Decentralized Messaging.md | 90 ++++++++++--------- 1 file changed, 47 insertions(+), 43 deletions(-) rename {translated/tech => published}/20220616 9 Best Matrix Clients for Decentralized Messaging.md (64%) diff --git a/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/published/20220616 9 Best Matrix Clients for Decentralized Messaging.md similarity index 64% rename from translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md rename to published/20220616 9 Best Matrix Clients for Decentralized Messaging.md index 2c0269445b..2fb8b50590 100644 --- a/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md +++ b/published/20220616 9 Best Matrix Clients for Decentralized Messaging.md @@ -2,22 +2,25 @@ [#]: via: "https://itsfoss.com/best-matrix-clients/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "TravinDreek" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15515-1.html" -9 款最佳的去中心化聊天 Matrix 客户端 +9 款最佳的去中心化通讯软件 Matrix 的客户端 ====== + +![][0] + Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯。 -这套标准由 Matrix.org 基金会发布和维护。Matrix.org 基金会是一个非盈利性组织,致力于创建一个开放、独立且不断演进的通讯平台。 +这套标准由 Matrix.org 基金会发布和维护。Matrix.org 基金会是一个非营利性组织,致力于创建一个开放、独立且不断演进的通讯平台。 如果一款应用支持 Matrix 协议,那就可以视它为 Matrix 客户端。 ### 为何要选用 Matrix 客户端? -[Matrix][1] 客户端致力于安全性和隐私性,并且实现了去中心化的网络,令许多特性得以实现。 +[Matrix][1] 客户端致力于安全性和隐私性,并且提供了一个去中心化的网络,令许多特性得以实现。 自 2019 年(正式版本发布)以来,部分组织以及政府机构便开始逐渐采用 Matrix 协议,从而搭建安全、隐私、可靠的通讯平台。 @@ -25,7 +28,7 @@ Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯 如果你想要逃脱科技巨头的魔爪,那 Matrix 就是正确的选择。 -不仅如此,你还可以运行自己的服务器,并加入 Matrix 网络。换言之,通讯的基础设施是去中心化的,但你仍然能够根据需要,对其部分进行部署和配置。 +不仅如此,你还可以运行自己的服务器,并加入 Matrix 网络。换言之,通讯的基础设施是去中心化的,但你仍然能够根据需要,对其进行部署和配置。 如果你好奇的话,Matrix 协议具备了你需要的所有基本功能: @@ -41,31 +44,31 @@ Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯 所以,Matrix 客户端已经是不二之选了。对那些注重隐私和安全的用户来说,则更是如此。 -> 译注:实际上,Matrix 只是在隐私和便利之间达成了一种相对的平衡。它是将类似 Mastodon 的联邦(federated)网络结构用在了聊天中,也就是说,虽然整个网络去中心化成了许多节点,但节点服务器的运营者仍然能对其用户进行少量掌控。但总的来说,相对那些中心化的聊天应用而言,Matrix 是个值得考虑的替代品。 +> LCTT 译注:实际上,Matrix 只是在隐私和便利之间达成了一种相对的平衡。它是将类似 Mastodon 的 联邦federated 网络结构用在了聊天中,也就是说,虽然整个网络去中心化成了许多节点,但节点服务器的运营者仍然能对其用户进行少量掌控。但总的来说,相对那些中心化的聊天应用而言,Matrix 是个值得考虑的替代品。 ### 9 款最佳的开源 Matrix 客户端 本文中,我将介绍一些最好用的 Matrix 客户端,其中主要是桌面客户端(Linux、Windows、macOS),同时也推荐一些移动客户端和终端客户端。 -#### 1. Element +#### 1、Element ![element][2] [Element][3] 是最佳的 Slack 开源替代品之一。它可以用于个人通讯,也能用于群组聊天。 -你可以免费开始使用,不过你也可以选择自己搭建服务器,或者在其他节点服务器上付费使用。Element 提供了许多有用的功能,让你能够高效协作,并与你的团队或好友加密通讯。 +你可以免费使用,不过你也可以选择自己搭建服务器,或者付费使用托管的家庭服务器。Element 提供了许多有用的功能,让你能够高效协作,并与你的团队或好友加密通讯。 -> 译注:如同 Mastodon 一样,自费搭建服务器或者付费使用服务器,对大部分用户而言都是不必要的。初学者建议前往 ,并选择一个现有的服务器进行注册,其中许多服务器都是免费开放注册,并且国内可以连接的。下述的订阅功能也并不是必要的。 +> LCTT 译注:如同 Mastodon 一样,自费搭建服务器或者付费使用服务器,对大部分用户而言都是不必要的。初学者建议前往 ,并选择一个现有的服务器进行注册,其中许多服务器都是免费开放注册,并且国内可以连接的。下述的订阅功能也并不是必要的。 -如果你选择订阅,你还能将 Signal、WhatsApp 和 Telegram 聊天并入其中。 +如果你选择付费订阅,你还能将 Signal、WhatsApp 和 Telegram 聊天并入其中。 它支持 Linux、Windows 和 macOS,同时还提供 Android 和 iOS 的手机客户端。并且,你还能在网页浏览器中使用它。因此,这是个方便的选择。 -> 译注:国内用户可能会在桌面客户端遇到错误,导致无法使用 Element。这是因为它在首次启动会连接 matrix.org,但是国内用户无法访问这个地址。要解决此问题,须手动修改配置文件(篇幅有限,详见相关教程)。实在无法解决,可使用基于 Element 的 [SchildiChat](https://schildi.chat/),或下文列出的其他客户端。 +> LCTT 译注:国内用户可能会在桌面客户端遇到错误,导致无法使用 Element。这是因为它在首次启动会连接 matrix.org,但是国内用户无法访问这个地址。要解决此问题,须手动修改配置文件(篇幅有限,详见相关教程)。实在无法解决,可使用基于 Element 的 [SchildiChat](https://schildi.chat/),或下文列出的其他客户端。 -[Element][4] +> **[Element][4]** -#### 2. Rocket.Chat +#### 2、Rocket.Chat ![rocket chat][5] @@ -73,67 +76,67 @@ Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯 你可以在 Linux、Windows 和 macOS 上使用它,也可以获取 Android 和 iOS 的手机应用。 -尽管你可以选择自建服务器或订阅会员,但它也宣布了添加 [Matrix 协议的支持][7]。 +尽管你可以选择自建服务器或付费订阅,但它也宣布正在添加 [Matrix 协议的支持][7]。 本文创作之时,已经可以在 alpha 版中使用 Matrix 网络。不过,稳定版应该很快就会发布了。所以,如果你已经在使用 Rocket.Chat,或者想把它当作 Matrix 客户端来使用,那么敬请关注后续版本的发布。 -[Rocket.Chat][8] +> **[Rocket.Chat][8]** -#### 3. NeoChat +#### 3、NeoChat ![neochat][9] -NeoChat 是一个简单的 Matrix 客户端,目前在 KDE 家族中进行活跃开发。 +NeoChat 是一个简单的 Matrix 客户端,目前在 KDE 社区的管理下积极开发。 -与 Element 不同,它只支持 Linux 和 Windows,而且尤其用于 KDE Plasma。你也可以在其他桌面环境使用它。 +与 Element 不同,它只支持 Linux 和 Windows,特别是为 KDE Plasma 量身定做。你也可以在其他桌面环境使用它。 -你可以在 KDE 的 Discover 软件中心、Flathub 以及 Snap 商店安装它。它不支持手机平台。所以,如果有桌面用户想要一个简单的 Matrix 客户端,那 NeoChat 也是一个不错的选择。 +你可以在 KDE 的 “发现Discover” 软件中心、Flathub 以及 Snap 商店安装它。它不支持手机平台。所以,如果有桌面用户想要一个简单的 Matrix 客户端,那 NeoChat 也是一个不错的选择。 -> 译注:纠正一下,NeoChat 也支持 Android,可直接下载二进制,也可在 F-Droid 中添加 KDE 仓库后下载。除此之外,它还支持 MacOS。详见其源代码仓库。 +> LCTT 译注:纠正一下,NeoChat 也支持安卓,可直接下载二进制,也可在 F-Droid 中添加 KDE 仓库后下载。除此之外,它还支持 macOS。详见其源代码仓库。 了解更多,可以查看它的 [源代码][10]。 -[NeoChat][11] +> **[NeoChat][11]** -#### 4. FluffyChat +#### 4、FluffyChat ![fluffychat][12] FluffyChat 在用户体验方面,是一个美观(可爱)的 Matrix 客户端。 -如果你想要一个简单又直观的 Matrix 客户端,并且支持桌面和手机(Android 和 iOS),那么 FluffyChat 是一个不错的选择。 +如果你想要一个简单又直观的 Matrix 客户端,并且支持桌面和手机(安卓和 iOS),那么 FluffyChat 是一个不错的选择。 -Linux 用户可以从 Snap 商店或 Flathub 安装它。他并不提供 Windows 和 macOS 的原生应用支持,但你可以在网页浏览器中使用它。 +Linux 用户可以从 Snap 商店或 Flathub 安装它。它并不提供 Windows 和 macOS 的原生应用支持,但你可以在网页浏览器中使用它。 如果你好奇的话,可以从它的 [GitLab 页面][13] 了解更多。 -[FluffyChat][14] +> **[FluffyChat][14]** -#### 5. Fractal +#### 5、Fractal ![fractal][15] -Fractal 是一款用于 GNOME 桌面的 Matrix 聊天客户端,使用 Rust 编写。正如其描述所说,它的界面经过优化,适合大型群组的协作。 +Fractal 是一款用于 GNOME 桌面的 Matrix 聊天客户端,使用 Rust 编写。正如其描述所说,它的界面经过优化,适合大型团队的协作。 由于它以 Flatpak 的形式发布,你可以在任何 Linux 发行版上安装它,无论桌面环境如何。 如果你喜欢能够在系统上快速运行的应用,那 Fractal 可能是不错的选择。可以前往它的 [GitLab 页面][16] 了解更多。 -[Fractal][17] +> **[Fractal][17]** -#### 6. Hydrogen Web (实验性) +#### 6、Hydrogen Web(实验性) ![hydrogen][18] -在找别的轻量级(专注性能)的 Matrix 客户端吗? +在找其它的精简的(专注性能)Matrix 客户端吗? Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛的浏览器支持。 虽然仍未完工,但 Element 背后的同一支团队正在开发着它。所以,如果你期待看到一个轻量的 Matrix 客户端替代品,你可以在它的 [GitHub 页面][19] 跟进该项目。 -[Hydrogen][20] +> **[Hydrogen][20]** -#### 7. Matrix Commander (基于 CLI) +#### 7、Matrix Commander(基于命令行) 如果你想要用终端在 Matrix 网络上来收发文字消息,这个命令行工具就十分不错。 @@ -141,9 +144,9 @@ Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛 你可以在 [PyPi][21] 或者 Docker Hub 上找到它。 -[Matrix Commander][22] +> **[Matrix Commander][22]** -#### 8. Gomuks (基于 CLI) +#### 8、Gomuks(基于命令行) ![gomuks][23] @@ -153,17 +156,17 @@ Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛 你可以在它的 [GitHub Releases 部分][24] 找到其 Linux、Windows 和 macOS 的二进制文件。 -[Gomuks][25] +> **[Gomuks][25]** -#### 9. Syphon (Alpha) +#### 9、Syphon(Alpha 版) ![syphon][26] 我们通常会避免列出仍处于早期开发的程序。但是,Syphon 作为一个手机专用的 Matrix 客户端,是一个有趣的选择。 -如果你想要为你的 Android/iOS 设备安装一个类似 Signal 的开源 Matrix 客户端,那选择 Syphon 也不错。用户界面看起来很熟悉(但并不是完全照抄的)。如果你想实验一下,那可以试试。 +如果你想要为你的安卓 / iOS 设备安装一个类似 Signal 的开源 Matrix 客户端,那选择 Syphon 也不错。用户界面看起来很熟悉(但并不是完全照抄的)。如果你想实验一下,那可以试试。 -[Syphon][27] +> **[Syphon][27]** ### 总结 @@ -171,7 +174,7 @@ Matrix 协议也许没能流行于所有组织和人群之中。但是,可以 最好的一点在于,你可以选择你想要的客户端,而不必被迫使用特定的应用才能在多个设备之间进行通信。 -所以,最好的 Matrix 客户端,你选哪一个? +所以,你会选择什么作为你最喜欢的 Matrix客户端? -------------------------------------------------------------------------------- @@ -180,7 +183,7 @@ via: https://itsfoss.com/best-matrix-clients/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[Peaksol](https://github.com/TravinDreek) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -213,3 +216,4 @@ via: https://itsfoss.com/best-matrix-clients/ [25]: https://maunium.net/go/gomuks/ [26]: https://itsfoss.com/content/images/wordpress/2022/06/syphon.jpg [27]: https://syphon.org/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/06/163855x1rdxojvn1ohh00v.jpg \ No newline at end of file From fe744e23f4502b2ce0945a3f1d777c29f92e1204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:44:21 +0800 Subject: [PATCH 2732/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230203.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?7=20Best=20Gentoo-Based=20Linux=20Distributions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ 7 Best Gentoo-Based Linux Distributions.md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md diff --git a/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md b/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md new file mode 100644 index 0000000000..68aae5329a --- /dev/null +++ b/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md @@ -0,0 +1,135 @@ +[#]: subject: "7 Best Gentoo-Based Linux Distributions" +[#]: via: "https://itsfoss.com/gentoo-based-distros/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Best Gentoo-Based Linux Distributions +====== + +Gentoo Linux is one of the [best Linux distributions for advanced users][1]. Want something similar but maybe easier? Gentoo-based distros are your solution. + +Gentoo Linux is famous for its package manager, [Portage][2], which allows you to customize every package per your requirements and build/configure things from the ground up. This way, you get to optimize your system experience in the best possible way. + +However, it is understandable that not everyone prefers using Gentoo Linux because of its learning curve or the effort required to set it up😫 + +So, in that case, you can try Gentoo-based Linux distributions that make things easier. + +Let me highlight some options that do a few things better than having Gentoo Linux barebones. + +📋 + +The list is in no particular order of ranking. + +**Also** + +, like Gentoo Linux, the distros based on it are not tailored for new users. So, you might want to read the documentation of each project thoroughly before trying them out. + +### 1. Calculate Linux + +![calculate linux screenshot with an abstract painting background of a scenary][3] + +[Calculate Linux][4] focuses on providing **a user-friendly experience out-of-the-box**. + +It is based on Gentoo and still backward compatible with it. You get a rolling-release distribution with Calculate Linux, but you can also choose between testing or stable updates per your requirements. + +There are different editions of desktop, server, cloud, and testing. Pick the one you need. + +### 2. CLIP OS + +![][5] + +[CLIP OS][6] is an interesting Gentoo-based distribution that aims to provide a secure experience built by the **National Cybersecurity Agency of France (ANSSI)**. + +There are two versions of the project where v4.0 is a non-working reference where you can explore the source code and use it however you like for building your Gentoo-powered experience. + +And v5.0 is an actively developed project in the beta phase when writing this. It may sound similar to Qubes OS, but it differs in various ways. + +You will have to build an image CLIP OS before you want to try it. + +### 3. Funtoo + +![funtoo linux livecd][7] + +[Funtoo][8] is a Gentoo-based distro by the **creator (former lead) of Gentoo Linux**. + +The philosophy that powers Funtoo is a bit different than Gentoo. Hence, the community approach differs. + +You can download its "next" edition release to get the latest experience or opt for its **1.4-release** for long-term stability. + +Both the editions are rolling-release distros, one offering newer packages. + +### 4. LiGurOS + +![ligur os install image building screenshot][9] + +[LiGurOS][10] is yet another option in the Gentoo family of operating systems. It aims to provide a **fast and secure experience** while ensuring the latest features of AMD and Intel processors work well. + +You will find two different releases, one stable and a rolling. It also gives you the choice of your favorite services manager, supporting openRC as one of them. However, you will have to build the install image to use it. + +Explore more about the project on its [GitLab page][11]. + +### 5. Pentoo + +![][12] + +[Pentoo Linux][13] is one of the [best Linux distributions for penetration testing][14]. + +You can find installable images for both 32-bit and 64-bit systems. Out of the box, you get customized tools, a customized kernel, XFCE 4 window manager, and more. + +### 6. Redcore Linux + +![record linux screenshot][15] + +[Redcore Linux][16] is a distribution **based on the Gentoo Linux testing branch**, with a hardened profile for better security. + +It is a successor of Kogaion Linux (which was initially based on Sabayon Linux), none of which is maintained anymore. One of the members of the original development group responsible for it decided to continue the idea with Redcore. + +This distribution aims to make it easy to install Gentoo Linux on a compatible system easily. + +### 7. Gentoo Studio + +![gentoo studio screenshot][17] + +[Gentoo Studio][18] is a tailored offering for **real-time Linux audio production systems** based on Gentoo Linux. + +It packs in various audio applications and allows you different customization options by default. + +Unlike some studio-focused distributions, you may want to check the packages/utilities it supports out of the box for your production requirements. + +💬_What is your favorite on the list? Did we miss any of your favorites? Let us know in the comments section below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/gentoo-based-distros/ + +作者:[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/advanced-linux-distros/ +[2]: https://wiki.gentoo.org/wiki/Portage +[3]: https://itsfoss.com/content/images/2023/02/calculate-linux.jpg +[4]: https://www.calculate-linux.org +[5]: https://itsfoss.com/content/images/2023/02/clip-os-4.jpg +[6]: https://clip-os.org/en/ +[7]: https://itsfoss.com/content/images/2023/02/funtoo-linux.jpg +[8]: https://www.funtoo.org/ +[9]: https://itsfoss.com/content/images/2023/02/gentoo-based-os-liguros.png +[10]: https://liguros.gitlab.io +[11]: https://gitlab.com/liguros +[12]: https://itsfoss.com/content/images/2023/02/pentoo-linux.jpg +[13]: https://www.pentoo.ch +[14]: https://itsfoss.com/linux-hacking-penetration-testing/ +[15]: https://itsfoss.com/content/images/2023/02/redcore.jpg +[16]: https://redcorelinux.org/#hero +[17]: https://itsfoss.com/content/images/2023/02/gentoo-studio.jpg +[18]: https://gentoostudio.org From c43fa2048040f6b7aa8779ecc2ceb8864f5413e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:45:36 +0800 Subject: [PATCH 2733/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230203.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Escuelas=20Linux=208.0=20A=20Major=20Upgrade=20for=20the=2025th?= =?UTF-8?q?=20Anniversary.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ux 8.0 A Major Upgrade for the 25th Anniversary.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md diff --git a/sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md b/sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md new file mode 100644 index 0000000000..dd66261e8c --- /dev/null +++ b/sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md @@ -0,0 +1,117 @@ +[#]: subject: "Escuelas Linux 8.0: A Major Upgrade for the 25th Anniversary" +[#]: via: "https://news.itsfoss.com/escuelas-linux-8-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Escuelas Linux 8.0: A Major Upgrade for the 25th Anniversary +====== + +The latest Escuelas Linux 8.0 marks 25 years of promoting FOSS. + +![Escuelas Linux 8.0: A Major Upgrade for the 25th Anniversary][1] + +[Escuelas Linux][2] is a unique distribution that focuses on the **educational side of things,** with the likes of [Bodhi Linux][3], [Ubuntu][4], and [Debian][5] powering it. + +It features a comprehensive set of educational software and resources that are of use to schools, colleges, and even universities. + +In a recent announcement, they **introduced the 25th-anniversary edition** of Escuelas Linux and also thanked the many people who contribute to the Linux ecosystem. + +Let me take you through the highlights of this release. + +### Escuelas Linux 8.0: What's New? + +![the main desktop screen of escuelas linux 8.0][6] + +This release is important, as it signifies 25 years since Escuelas Linux's inception and their struggle to promote Free and Open-Source software (FOSS) in educational settings. + +Since then, it has received support from the Ministry of Education of Zacatecas, Mexico, and has been voluntarily adopted by over 500 institutions. + +Some of the notable highlights of this release include: + +- **Updated Core** +- **New Installer** +- **Improved App Suite** + +#### Updated Core + +The core of Escuelas has been updated; the 64-bit edition now relies on the unreleased Bodhi Linux 7.0 and the well-established [Ubuntu 22.04][7] LTS. + +In the case of the 32-bit edition, it uses Bodhi Linux 6.0 alongside [Debian 11 'Bullseye'][8]. + +As for the kernel, the **64-bit image uses Linux Kernel 6.0.12** (thanks to System76), whereas the **32-bit image utilizes an older 4.19 kernel** for better compatibility with older hardware. + +On this, the developers had this to add: + +> We always strive to offer the best educational and general-purpose distribution, highly updated and polished for its use, even in the finest details. As we have solid foundations, many included packages come from something other than the Ubuntu or Debian repositories. + +> We add hundreds of packages created by third-party sources and some from our own production. “Everything configured to work at its maximum potential” is still our long-time motto and our ever goal to achieve. + +Both the builds continue to use the [Moksha][9] desktop environment (0.4.0), which comes with its suite of apps for ease of management in classroom environments. + +#### New Installer + +![new calamares installer on escuelas linux 8.0][10] + +Escuelas Linux now features the Calamares installer for a more reliable and modern experience. + +#### Improved App Suite + +The app selection on Escuelas Linux has been improved a lot; some of the notable ones include: + +- GCompris 3.1 +- Wxmaxima 22.11.1 +- eXe Learning 2.7 +- LibreOffice 7.4.5 +- OnlyOFFICE 7.2.1 +- GIMP 2.10.32 +- Krita 5.1.5 +- Kdenlive 22.12.1 +- OpenShot 3.0.0 +- VLC 3.0.18 +- Inclusion of IBM Java 8.0.7.20 for running apps such as [LanguageTool][11] and [Zotero][12]. + +In addition to the above, they have also improved the Escuelas Linux Developer Pack with the latest releases of Android Studio, Apache NetBeans, and Eclipse IDE. + +### Get Escuelas Linux 8.0 + +> 📋 To successfully extract the .iso image, you must have the .zip file with the .z01 file in the same folder. + +You can get .z01 and .zip files (you have to download both) for the ISO files of the Spanish and English versions of Escuelas Linux from their project pages on [OSDN][13] and [SourceForge][14]. + +[Escuelas Linux 8.0][2] + +I recommend you refer to the official installation manual to avoid confusion. + +Note that you cannot directly upgrade from 7. x to the 8.0 release, and backing up your files before reinstallation is recommended. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/escuelas-linux-8-0-release/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/escuelas-linux-8-0-release.png +[2]: https://escuelaslinux.sourceforge.io/english/index.html +[3]: https://www.bodhilinux.com +[4]: https://ubuntu.com +[5]: https://www.debian.org +[6]: https://news.itsfoss.com/content/images/2023/02/Escuelas_Linux-_8.0.png +[7]: https://news.itsfoss.com/ubuntu-22-04-release/ +[8]: https://news.itsfoss.com/debian-11-feature/ +[9]: https://www.bodhilinux.com/moksha-desktop/ +[10]: https://news.itsfoss.com/content/images/2023/02/Escuelas_Linux_8.0_Installer.png +[11]: https://languagetool.org +[12]: https://www.zotero.org +[13]: https://osdn.net/projects/escuelaslinux/releases/ +[14]: https://sourceforge.net/projects/escuelaslinux/files/ From b6efc172a6258cbfb26e7a8d94b4f63b32eebd79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:46:02 +0800 Subject: [PATCH 2734/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230204.0=20=E2=AD=90=EF=B8=8F=20Open=20source=20vi?= =?UTF-8?q?deo=20captioning=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Open source video captioning on Linux.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md diff --git a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md new file mode 100644 index 0000000000..1ad750d7ba --- /dev/null +++ b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md @@ -0,0 +1,91 @@ +[#]: subject: "Open source video captioning on Linux" +[#]: via: "https://opensource.com/article/23/2/live-captions-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open source video captioning on Linux +====== + +In a perfect world, all videos would have transcripts, and live videos would have captioning. It's not just a requirement for people without hearing to be able to participate in pop culture and video chats, it's a luxury for people with hearing who just prefer to read what's been said. Not all software has captioning built-in though, and some that does relies on third-party cloud services to function. [Live Captions][1] is an application for the Linux desktop that provides instant, local, and open source captioning for video. + +### Install Live Captions + +You can install Live Captions as a [Flatpak][2]. + +If your Linux distribution doesn't ship with a software center, install it manually from a terminal. First, add the [Flathub][3] repository: + +``` +$ flatpak remote-add --if-not-exists flathub \ +https://flathub.org/repo/flathub.flatpakrepo +``` + +Next, install the application: + +``` +$ flatpak install flathub net.sapples.LiveCaptions +``` + +### Launch Live Captions + +To start Live Captions, launch it from your application menu. + +Alternatively, you can start it from a terminal using the `flatpak` command: + +``` +$ flatpak run net.sapples.LiveCaptions +``` + +You can also use a command like [Fuzzpak][4]: + +``` +$ fuzzpak LiveCaptions +``` + +When Live Captions first starts, you're presented with a configuration screen. + +![Image showing preferences in Live Captions.][5] + +You can set the font, font size, colors, and more. By default, text that Live Captions isn't 100% confident about is presented in a darker color than your chosen font color. If you're using Live Captions as a convenience, this probably isn't necessary, but if you can't hear the video, then it's good to get an idea of words that may not be correct. + +You can return to the preferences screen anytime, so your choices don't have to be final. + +### Using Live Captions + +Once Live Captions is running, any English words coming through your system sound are printed to the Live Captions window. + +![Image showing ​Live Captions presenting text from a Jitsi call. ​][6] + +This isn't a cloud service. There are no API keys required. There's no telemetry or spying and no data collection. In fact, it doesn't even require network permissions. Live Captions is open source, so there are no proprietary services or libraries in use. + +To change the sound input, click the **Microphone** icon in the top left of the **Live Captions** window. To open the **Preferences** window, click on the **Gear** icon in the bottom left of the **Live** Captions window. + +### Open access + +In my experience, the results of Live Captions are good. They're not perfect, but in small [Jitsi video calls][7], it's excellent. Even with niche videos (rowdy tournaments of Warhammer 40,000, for instance) it does surprisingly well, stumbling over only the most fictional of sci-fi terminology. + +Making open source accessible is vital, and in the end it has the potential to benefit everyone. I don't personally require Live Captions, but I enjoy using it when I don't feel like listening to a video. I also use it when I want help to focus on something that I might otherwise be distracted away from. Live Captions isn't just a fun open source project, it's an important one. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/live-captions-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://github.com/abb128/LiveCaptions +[2]: https://opensource.com/article/21/11/install-flatpak-linux +[3]: https://flathub.org/apps/details/net.sapples.LiveCaptions +[4]: https://www.redhat.com/sysadmin/launch-flatpaks-terminal-fuzzpak +[5]: https://opensource.com/sites/default/files/2023-01/live-caption-preferences.png +[6]: https://opensource.com/sites/default/files/2023-01/Livecaptions%20onJitsiCall.png +[7]: https://opensource.com/article/21/9/alternatives-zoom From 96a6d64a334ab9e46b24e92dfd7fd53fb5efdab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:46:25 +0800 Subject: [PATCH 2735/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230206.0=20=E2=AD=90=EF=B8=8F=20Elementary=20OS=20?= =?UTF-8?q?7=20Installation=20Guide=20with=20Screenshots.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ry OS 7 Installation Guide with Screenshots.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md diff --git a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md new file mode 100644 index 0000000000..be82e4ad91 --- /dev/null +++ b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md @@ -0,0 +1,117 @@ +[#]: subject: "Elementary OS 7 Installation Guide with Screenshots" +[#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Elementary OS 7 Installation Guide with Screenshots +====== + +Hello techies, in this post, we will cover how to Install Elementary OS 7 step by step with screenshots on laptop or desktop. It is based on latest and stable Ubuntu 22.04 LTS. + +Elementary OS 7 with code name “Horus” released with lot of improvements like : + +- Improved AppCenter and install all application that one need. +- Improved sideloading and alt store (Flathub) experience +- Latest GNOME Web 43 support for creating web apps. +- Getting OS and Applicate Updates quickly +- Power Profile Management +- Improvement in App Description + +##### System Requirements for Elementary OS 7 + +- Dual Core 64-bit processor +- 4 GB RAM or more +- 32 GB hard disk +- Internet Access +- Bootable USB Flash Drive ( 4 GB Storage) + +Without any further delay, let’s jump into the installation steps + +### 1) Download Elementary OS 7 + +Use below official URL to download ISO file, + +- Download Elementary OS 7 ISO + +Once ISO file is downloaded then burn it into USB flash drive and make it bootable. + +On Windows operating use “Rufus” software to make bootable USB drive using ISO file. In Linux, refer the following URL: + +- How to Create Bootable USB Drive on Ubuntu / Linux Mint + +### 2) Boot the system with bootable media + +Now boot the target system with bootable USB drive. From bios settings change the boot medium from hard disk to USB. When the system boots up with USB drive then we will get the following screen, + +### 3) Select Language for Installation + +Choose your preferred language and then click select, + +### 4) Choose Keyboard Layout + +In this step, you will be requested to choose keyboard layout and then click on ‘Select’ + +### 5) Try or Install elementary OS + +We will be presented the beneath screen, where we must our choose installation type. It gives us following options, + +- Try Demo Mode – Try Elementary OS 7 without installing +- Erase disk and Install – Installer will erase the whole disk and will create required partitions automatically. +- Custom Install (Advanced) – It will give us the option to create custom partitions. + +In this post, I will go with the 2nd option (Erase disk and install). + +Click on “Erase Disk and Install” + +In the following screen, select the drive on which OS will be installed and then click on “Erase and Install” + +If you want to encrypt the device’s drive, then click on “Choose Password” else click on “Don’t Encrypt”. + +### 6) Installation Progress + +As we can see below, installation got started and is in progress. + +Once the installation is completed, installer will prompt to reboot the system. + +Click on “Restart Device” and don’t forget to change boot medium from bios settings so that it boots up with the disk. + +### 7) Create Local User and Set Hostname + +When the system boots up after the installation, you will be prompted to enter local user details and hostname of your system. + +Specify the details as per your requirement, + +Click on “Finish Setup”. + +In the following screen, you will be prompted to enter your local user credentials that you have created above, + +After entering the credentials, hit enter + +### 8) Elementary OS 7 Welcome Screen + +We will get the beneath welcome screen, + +Choose “Skip All” + +Click “Get Started” and then we will get following desktop screen, + +Great, it confirms that you have successfully installed Elementary OS 7 on your system. That’s all from this guide, explore this exciting Linux distribution and have fun 😊. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/elementary-os-7-installation-guide/ + +作者:[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 + From 15fa6833d0fc94e58029df85c8887da21417a823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:47:13 +0800 Subject: [PATCH 2736/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230206.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Wordsmith=20on=20the=20Linux=20command=20line=20with=20dict.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Wordsmith on the Linux command line with dict.md | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md diff --git a/sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md b/sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md new file mode 100644 index 0000000000..0e58640322 --- /dev/null +++ b/sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md @@ -0,0 +1,161 @@ +[#]: subject: "Wordsmith on the Linux command line with dict" +[#]: via: "https://opensource.com/article/23/2/linux-dict-command" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordsmith on the Linux command line with dict +====== + +As a writer, I frequently need to determine the correct spelling or definition of words. I also need to use a thesaurus to find alternate words that may have a somewhat different connotation than the one I might otherwise use. Because I frequently use the Linux command line and text-mode tools to do much of my work, it makes sense to use a command line dictionary. + +I really like using the command line for a number of reasons, the primary one being that it is more efficient for me. It is also far more comprehensive than any one or multiple physical paper dictionaries, could ever be. I have been using the Linux `dict` command for many years and I have come to depend on it. + +### Install dict on Linux + +The dict program is not installed by default on Fedora, but it's easy to install. Here is how to install it on Fedora and similar programs: + +``` +$ sudo dnf install dictd +``` + +On Debian and similar programs, you must also install the dictionary definitions: + +``` +$ sudo apt install dictd dict-gcide +``` + +No additional configuration is required. The minimalistic `/usr/share/doc/dictd/dict1.conf` file specifies the remote server for the dictionary databases. This tool uses the Dictionary Server Protocol (DICT) on port 2628. + +### Use dict on Linux + +In a terminal session as a non-root user, type `dict ` to get a list of definitions from one or more dictionaries and the thesaurus. For example, look up the word `memory` this way. + +``` +$ dict memory | less +6 definitions found + +From The Collaborative International Dictionary of English v.0.48 [gcide]: + + Memory \Mem"o*ry\, n.; pl. {Memories}. [OE. memorie, OF. + memoire, memorie, F. m['e]moire, L. memoria, fr. memor + mindful; cf. mora delay. Cf. {Demur}, {Martyr}, {Memoir}, + {Remember}.] + [1913 Webster] + 1. The faculty of the mind by which it retains the knowledge + of previous thoughts, impressions, or events. + [1913 Webster] + + Memory is the purveyor of reason. --Rambler. + [1913 Webster] + + 2. The reach and positiveness with which a person can + remember; the strength and trustworthiness of one's power + to reach and represent or to recall the past; as, his + memory was never wrong. + [1913 Webster] + + +From WordNet (r) 3.0 (2006) [wn]: + + memory + n 1: something that is remembered; "search as he would, the + memory was lost" + 2: the cognitive processes whereby past experience is + remembered; "he can do it from memory"; "he enjoyed + remembering his father" [syn: {memory}, {remembering}] + 3: the power of retaining and recalling past experience; "he had + + +From Moby Thesaurus II by Grady Ward, 1.0 [moby-thesaurus]: + + 78 Moby Thesaurus words for "memory": + RAM, anamnesis, anniversaries, archetypal pattern, archetype, + awareness, celebrating, celebration, ceremony, cognizance, + commemoration, consciousness, disk memory, dressing ship, + + +From The Free On-line Dictionary of Computing (30 December 2018) [foldoc]: + + memory + + These days, usually used synonymously with {Random + Access Memory} or {Read-Only Memory}, but in the general sense + it can be any device that can hold {data} in + {machine-readable} format. + + (1996-05-25) + + +From Bouvier's Law Dictionary, Revised 6th Ed (1856) [bouvier]: + + MEMORY, TIME OF. According to the English common law, which has been altered + by 2 & 3 Wm. IV., c. 71, the time of memory commenced from the reign of +``` + +I have cut large sections of this result to save space while leaving enough information to provide an idea of what typical results look like. You can also look up multi-word phrases by enclosing them in quotes, either double or single. + +``` +$ dict "air gapped" +``` + +### Dictionaries + +The `dict` command uses several online dictionaries, including legal and technical ones. Dictionaries are also available for many languages. You can `list` the available dictionary databases as shown here: + +``` +$ dict -D | less +Databases available: + gcide The Collaborative International Dictionary of English v.0.48 + wn WordNet (r) 3.0 (2006) + moby-thesaurus Moby Thesaurus II by Grady Ward, 1.0 + elements The Elements (07Nov00) + vera V.E.R.A. -- Virtual Entity of Relevant Acronyms (February 2016) + jargon The Jargon File (version 4.4.7, 29 Dec 2003) + foldoc The Free On-line Dictionary of Computing (30 December 2018) + easton Easton's 1897 Bible Dictionary + hitchcock Hitchcock's Bible Names Dictionary (late 1800's) + bouvier Bouvier's Law Dictionary, Revised 6th Ed (1856) + devil The Devil's Dictionary (1881-1906) + world02 CIA World Factbook 2002 + gaz2k-counties U.S. Gazetteer Counties (2000) + gaz2k-places U.S. Gazetteer Places (2000) + gaz2k-zips U.S. Gazetteer Zip Code Tabulation Areas (2000) + fd-hrv-eng Croatian-English FreeDict Dictionary ver. 0.1.2 + fd-fin-por suomi-português FreeDict+WikDict dictionary ver. 2018.09.13 + fd-fin-bul suomi-български език FreeDict+WikDict dictionary ver. 2018.09.13 + fd-fra-bul français-български език FreeDict+WikDict dictionary ver. 2018.09.13 + fd-deu-swe Deutsch-Svenska FreeDict+WikDict dictionary ver. 2018.09.13 + +``` + +You can specify individual dictionaries with the `-d` option: + +``` +$ dict -d gcide +``` + +### Endmost Dictum + +Sometimes using words found in the thesaurus is not the best approach to writing as it can obfuscate your meaning. But I do find that the `dict` command can be immensely useful in choosing the best word for a specific meaning. It also ensures that the words I use are spelled correctly. + +There's a dearth of information about dict. The URL [http://www.dict.org/][1] provides only a web-based interface to the dictionaries. The man page covers syntax. But the command is a useful and fun command to have handy. I admit that after discovering the `dict` command I spent many hours of the day just trying different things to see what the result would be. I was the kid who read the encyclopedia and dictionary. Yes, I was _that_ kid. In addition to being a useful tool when writing or reading, dict can also be a fun tool to satisfy a bit of curiosity. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/linux-dict-command + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: http://www.dict.org/ + From a6b2108dfcbba3332468e3cc99d5758280fa7f65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:47:36 +0800 Subject: [PATCH 2737/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230206.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Reinvent=20your=20release=20strategy=20with=20an=20API=20gatewa?= =?UTF-8?q?y.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nvent your release strategy with an API gateway.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md diff --git a/sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md b/sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md new file mode 100644 index 0000000000..53b2491906 --- /dev/null +++ b/sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md @@ -0,0 +1,87 @@ +[#]: subject: "Reinvent your release strategy with an API gateway" +[#]: via: "https://opensource.com/article/23/2/api-gateway" +[#]: author: "Bobur Umurzokov https://opensource.com/users/iambobur" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Reinvent your release strategy with an API gateway +====== + +One benefit of moving to an API-based architecture is that you can iterate quickly and deploy new changes to our services. There is also the concept of traffic and routing established with an API gateway for the modernized part of the architecture. API gateway provides stages to allow you to have multiple deployed APIs behind the same gateway and is capable of in-place updates with no downtime. Using an API gateway enables you to leverage the service's numerous API management features, such asauthentication, ratethrottling, observability, multiple API versioning, and stage deployment management (deploying an API in multiple stages such as dev, test, stage, and prod). + +Open source API gateway ([Apache APISIX][1] and [Traefik][2]) and service mesh ([Istio][3] and Linkerd) solutions are capable of doing traffic splitting and implementing functionalities like canary release and [blue green deployment][4]. With canary testing, you can make a critical examination of a new release of an API by selecting only a small portion of your user base. + +### What is a canary release? + +A canary release introduces a new version of the API and flows a small percentage of the traffic to the canary. In API gateways, traffic splitting makes it possible to gradually shift or migrate traffic from one version of a target service to another. For example, a new version, `v1.1`, of a service can be deployed alongside the original, `v1.0`. Traffic shifting enables you to canary test or release your new service by at first only routing a small percentage of user traffic, say `1%`, to `v1.1`, then shifting all of your traffic over time to the new service. + +![Image of the API Canary release.][5] + +This allows you to monitor the new service, look for technical problems, such as increased latency or error rates, and look for the desired business impact. This includes checking for an increase in key performance indicators like customer conversion ratio or the average shopping checkout value. Traffic splitting enables you to run A/B or multivariate tests by dividing traffic destined for a target service between multiple versions of the service. For example, you can split traffic `50/50` across your `v1.0` and `v1.1` of the target service and see which performs better over a specific period of time. Learn more about the traffic split feature in Apache APISIX Ingress Controller. + +When appropriate, canary releases are an excellent option, as the percentage of traffic exposed to the canary is highly controlled. The trade-off is that the system must have good monitoring in place to be able to quickly identify an issue and roll back if necessary (which can be automated). This guide shows you how to use [Apache APISIX and Flagger][6] to quickly implement a canary release solution. + +![Image showing API traffic splitting.][7] + +### Traffic mirroring + +In addition to using traffic splitting to run experiments, you can also use traffic mirroring to copy or duplicate traffic. You can send this to an additional location or a series of locations. Frequently with traffic mirroring, the results of the duplicated requests are not returned to the calling service or end user. Instead, the responses are evaluated out-of-band for correctness. For instance, it compares the results generated by a refactored and existing service. + +![Image showing API traffic mirroring.][8] + +Using traffic mirroring enables you to "dark release" services, where a user is kept in the dark about the new release, but you can internally observe for the required effect. + +Implementing traffic mirroring at the edge of systems has become increasingly popular over the years. APISIX offers the [proxy-mirror][9] plugin to mirror client requests. It duplicates the real online traffic to the mirroring service and enables specific analysis of the online traffic or request content without interrupting the online service. + +### What is a blue green deployment? + +Blue green deployment is usually implemented at a point in the architecture that uses a router, gateway, or load balancer. Behind this sits a complete blue environment and a green environment. The current blue environment represents the current live environment, and the green environment represents the next version of the stack. The green environment is checked prior to switching to live traffic. When it goes live, the traffic is flipped over from blue to green. The blue environment is now off, but if a problem is spotted the rollback is quick. The next change is to go from green to blue, oscillating from the first release onward. + +![Image showing Blue and Green release strategies.][10] + +Blue green works well due to its simplicity, and it is one of the better deployment options for coupled services. It is also easier to manage persisting services, though you still need to be careful in the event of a rollback. It also requires double the number of resources to be able to run cold in parallel to the currently active environment. + +### Traffic management with Argo Rollouts + +The strategies discussed add a lot of value, but the rollout itself is a task that you would not want to have to manage manually. This is where a tool such as [Argo Rollouts][11] is valuable for demonstrating some of the concerns discussed. + +Using Argo, it is possible to define a [Rollout CRD][12] that represents the strategy you can take for rolling out a new canary of your API. A custom resource definition (CRD) allows Argo to extend the Kubernetes API to support rollout behavior. CRDs are a popular pattern with Kubernetes. They allow the user to interact with one API with the extension to support different features. + +You can use the Apache APISIX and Apache APISIX Ingress Controller for traffic management with Argo Rollouts. This [guide][13] shows you how to integrate `ApisixRoute` with Argo Rollouts using it as a weighted round-robin load balancer. + +### Summary + +The ability to separate the deployment and release of service (and corresponding API) is a powerful technique, especially with the rise in the progressive delivery approach. A canary release service can make use of the API gateway traffic split and mirroring features, and provides a competitive advantage. This helps your business with both mitigating risk of a bad release and also understanding your customer's requirements. + +_This article was originally published on the [API7.ai blog][14] and has been republished with permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/api-gateway + +作者:[Bobur Umurzokov][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/iambobur +[b]: https://github.com/lkxed +[1]: https://apisix.apache.org/ +[2]: https://opensource.com/article/20/3/kubernetes-traefik +[3]: https://www.redhat.com/architect/istio-CNI-plugin +[4]: https://www.redhat.com/en/topics/devops/what-is-blue-green-deployment?intcmp=7013a000002qLH8AAM +[5]: https://opensource.com/sites/default/files/2023-01/ApiCanaryrelease.png +[6]: https://github.com/fluxcd/flagger/blob/6c29c2118478a69207e2ff23a7afe6006f5518dc/docs/gitbook/tutorials/apisix-progressive-delivery.md +[7]: https://opensource.com/sites/default/files/2023-01/APITrafficsplitting.png +[8]: https://opensource.com/sites/default/files/2023-01/APItrafficMirroring.png +[9]: https://apisix.apache.org/docs/apisix/plugins/proxy-mirror +[10]: https://opensource.com/sites/default/files/2023-01/APIBLueGreen.png +[11]: https://argoproj.github.io/argo-rollouts/ +[12]: https://argoproj.github.io/argo-rollouts/concepts/ +[13]: https://argoproj.github.io/argo-rollouts/features/traffic-management/apisix/ +[14]: https://api7.ai/blog/api-release-strategies-with-api-gateway From 7353a0a28018cb82d235712b350f6ca8afd257a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:48:02 +0800 Subject: [PATCH 2738/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230206.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Mozilla's=20Abandoned=20Servo=20Web=20Engine=20is=20Making=20a?= =?UTF-8?q?=20Comeback=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d Servo Web Engine is Making a Comeback in 2023.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md diff --git a/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md b/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md new file mode 100644 index 0000000000..abe2daf392 --- /dev/null +++ b/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md @@ -0,0 +1,97 @@ +[#]: subject: "Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023" +[#]: via: "https://news.itsfoss.com/mozilla-servo-web-engine/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023 +====== + +Open-source Rust-powered Servo web engine might be getting back to the game with its roadmap plan for development. + +![Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023][1] + +Servo is a rust-based experimental browser engine initially developed by the **research wing of Mozilla** but was later [delegated][2] to [The Linux Foundation][3] as a community-maintained project. + +Since then, no significant development has taken place, even though the members involved have been trying to do their best. + +Until now. + +Things are looking up for Servo in 2023, as the team behind it has shared a promising roadmap. + +Let me take you through it. + +### 📢 Roadmap for 2023: Overview + +![2023's roadmap for the servo project][4] + +The Servo project **came back from the dead** thanks to the [new funding][5] they received in January. + +To further solidify their intent, the development team has **shared a roadmap for this year** that shows a good outlook on the things they have planned. + +On this, they also add: + +> We’re restarting all the usual activities, including PR triage and review, public communications about the project, and arranging [TSC][6] meetings. We will also make some outreach efforts in order to attract more collaborators, partners, and potential sponsors interested in working, participating, and funding the project. + +They have also shared 7 goals that they want to achieve in 2023. + +**Project Reactivation:** This is the first stage that will continue until the end of 2023 and will involve reactivating the Servo project as a whole. + +**Project Outreach:** Fueled by the renewed activity on the project's [GitHub][7] page, they plan to make some outreach efforts by spreading the word about the project. + +This will be done to attract more collaborators, companies, and partners who may be interested in contributing to or funding the project. + +**Main Dependencies Upgrade:** Several dependencies of Servo will be worked upon as they have been in a dilapidated condition and require upgrading, such as [WebRender][8] and [Stylo][9]. + +**Layout Engine Selection:** Servo currently has two layout engines, 2013 (the original one) and 2020 (the new one). + +They will be deciding, along with the contributors and the community, which option to go with for the long term. + +**Progress Towards Basic CSS2 Support:** After the above two things are done, they plan to work towards basic [CSS2 conformance][10]. + +**Explore Android Support:** They want to explore the possibility of supporting Android along with other platforms, as they have already experimented with the platform in the past. + +**Embeddable Web Engine Experiments:** For the final stage of the roadmap, they aim to make Servo into an 'embeddable web rendering engine.' + +The team is also exploring possibilities in this regard by having some sort of Servo demo running on embedded devices or looking into existing projects such as [Tauri][11]. + +You can go through the [official announcement][12] to learn more about the roadmap. + +### Final Thoughts + +A rust-powered web engine could do wonders and be superior to [Blink][13] or [Gecko][14]-based alternatives. + +Furthermore, another open-source alternative to something we use almost daily shouldn't be a bad thing and will let us have many options. + +_💬 What do you think about Servo's aim to restart things and focus on getting back on the track it was initially designed for?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/mozilla-servo-web-engine/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/mozilla-web-servo-comeback.png +[2]: https://servo.org/blog/2020/11/17/servo-home/ +[3]: https://www.linuxfoundation.org +[4]: https://news.itsfoss.com/content/images/2023/02/Servo_Roadmap.jpg +[5]: https://servo.org/blog/2023/01/16/servo-2023/ +[6]: https://servo.org/governance/tsc/ +[7]: https://github.com/servo +[8]: https://github.com/servo/webrender +[9]: https://wiki.mozilla.org/Quantum/Stylo +[10]: https://www.w3.org/TR/1998/REC-CSS2-19980512/conform.html +[11]: https://tauri.app +[12]: https://servo.org/blog/2023/02/03/servo-2023-roadmap/ +[13]: https://www.chromium.org/blink/ +[14]: https://developer.mozilla.org/en-US/docs/Glossary/Gecko From 48bc0ede3b150b1c52b2da8db8c81b5b22db0655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:50:36 +0800 Subject: [PATCH 2739/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230131.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Use=20Terraform=20to=20manage=20an=20OpenStack=20cluster.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Use Terraform to manage an OpenStack cluster.md | 375 ++++++++++++++++++ 1 file changed, 375 insertions(+) create mode 100644 sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md diff --git a/sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md b/sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md new file mode 100644 index 0000000000..b992522335 --- /dev/null +++ b/sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md @@ -0,0 +1,375 @@ +[#]: subject: "Use Terraform to manage an OpenStack cluster" +[#]: via: "https://opensource.com/article/23/1/terraform-manage-openstack-cluster" +[#]: author: "AJ Canlas https://opensource.com/users/ajscanlas" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use Terraform to manage an OpenStack cluster +====== + +After having an OpenStack production and home lab for a while, I can definitively say that provisioning a workload and managing it from an Admin and Tenant perspective is important. + +Terraform is an open source Infrastructure-as-Code (IaC) software tool used for provisioning networks, servers, cloud platforms, and more. Terraform is a declarative language that can act as a blueprint of the infrastructure you're working on. You can manage it with Git, and it has a strong [GitOps][1] use case. + +This article covers the basics of managing an OpenStack cluster using Terraform. I recreate the OpenStack Demo project using Terraform. + +### Install Terraform + +I use CentOS as a jump host, where I run Terraform. Based on the official documentation, the first step is to add the Hashicorp repository: + +``` +$ sudo dnf config-manager \ +--add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo +``` + +Next, install Terraform: + +``` +$ sudo dnf install terraform -y +``` + +Verify the installation: + +``` +$ terraform –version +``` + +If you see a version number in return, you have installed Terraform. + +### Create a Terraform script for the OpenStack provider + +In Terraform, you need a provider. A provider is a converter that Terraform calls to convert your `.tf` into API calls to the platform you are orchestrating. + +There are three types of providers: Official, Partner, and Community: + +- Official providers are Hashicorp maintained. +- Partner providers are maintained by technology companies that partner with Hashicorp. +- Community providers are maintained by open source community members. + +There is a good Community provider for OpenStack in this [link][2]. To use this provider, create a `.tf` file and call it `main.tf`. + +``` +$ vi main.tf +``` + +Add the following content to `main.tf`: + +``` +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "1.49.0" + } + } +} + +provider "openstack" { + user_name = “OS_USERNAME” + tenant_name = “OS_TENANT” + password = “OS_PASSWORD” + auth_url = “OS_AUTH_URL” + region = “OS_REGION” +} +``` + +You need to change the **OS_USERNAME**, **OS_TENANT**, **OS_PASSWORD**, **OS_AUTH_URL**, and **OS_REGION** variables for it to work. + +### Create an Admin Terraform file + +OpenStack Admin files focus on provisioning external networks, routers, users, images, tenant profiles, and quotas. + +This example provisions flavors, a router connected to an external network, a test image, a tenant profile, and a user. + +First, create an `AdminTF` directory for the provisioning resources: + +``` +$ mkdir AdminTF + +$ cd AdminTF +``` + +In the `main.tf`, add the following: + +``` +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "1.49.0" + } + } +} + +provider "openstack" { + user_name = “OS_USERNAME” + tenant_name = “admin” + password = “OS_PASSWORD” + auth_url = “OS_AUTH_URL” + region = “OS_REGION” +} + +resource "openstack_compute_flavor_v2" "small-flavor" { + name = "small" + ram = "4096" + vcpus = "1" + disk = "0" + flavor_id = "1" + is_public = "true" +} + +resource "openstack_compute_flavor_v2" "medium-flavor" { + name = "medium" + ram = "8192" + vcpus = "2" + disk = "0" + flavor_id = "2" + is_public = "true" +} + +resource "openstack_compute_flavor_v2" "large-flavor" { + name = "large" + ram = "16384" + vcpus = "4" + disk = "0" + flavor_id = "3" + is_public = "true" +} + +resource "openstack_compute_flavor_v2" "xlarge-flavor" { + name = "xlarge" + ram = "32768" + vcpus = "8" + disk = "0" + flavor_id = "4" + is_public = "true" +} + +resource "openstack_networking_network_v2" "external-network" { + name = "external-network" + admin_state_up = "true" + external = "true" + segments { + network_type = "flat" + physical_network = "physnet1" + } +} + +resource "openstack_networking_subnet_v2" "external-subnet" { + name = "external-subnet" + network_id = openstack_networking_network_v2.external-network.id + cidr = "10.0.0.0/8" + gateway_ip = "10.0.0.1" + dns_nameservers = ["10.0.0.254", "10.0.0.253"] + allocation_pool { + start = "10.0.0.1" + end = "10.0.254.254" + } +} + +resource "openstack_networking_router_v2" "external-router" { + name = "external-router" + admin_state_up = true + external_network_id = openstack_networking_network_v2.external-network.id +} + +resource "openstack_images_image_v2" "cirros" { + name = "cirros" + image_source_url = "https://download.cirros-cloud.net/0.6.1/cirros-0.6.1-x86_64-disk.img" + container_format = "bare" + disk_format = "qcow2" + + properties = { + key = "value" + } +} + +resource "openstack_identity_project_v3" "demo-project" { + name = "Demo" +} + +resource "openstack_identity_user_v3" "demo-user" { + name = "demo-user" + default_project_id = openstack_identity_project_v3.demo-project.id + password = "demo" +} +``` + +### Create a Tenant Terraform file + +As a Tenant, you usually create VMs. You also create network and security groups for the VMs. + +This example uses the user created above by the Admin file. + +First, create a `TenantTF` directory for Tenant-related provisioning: + +``` +$ mkdir TenantTF +$ cd TenantTF +``` + +In the `main.tf`, add the following: + +``` +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "1.49.0" + } + } +} + +provider "openstack" { + user_name = “demo-user” + tenant_name = “demo” + password = “demo” + auth_url = “OS_AUTH_URL” + region = “OS_REGION” +} + +resource "openstack_compute_keypair_v2" "demo-keypair" { + name = "demo-key" + public_key = "ssh-rsa ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" +} + + +resource "openstack_networking_network_v2" "demo-network" { + name = "demo-network" + admin_state_up = "true" +} + +resource "openstack_networking_subnet_v2" "demo-subnet" { + network_id = openstack_networking_network_v2.demo-network.id + name = "demo-subnet" + cidr = "192.168.26.0/24" +} + +resource "openstack_networking_router_interface_v2" "demo-router-interface" { + router_id = “XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX” + subnet_id = openstack_networking_subnet_v2.demo-subnet.id +} + +resource "openstack_compute_instance_v2" "demo-instance" { + name = "demo" + image_id = "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + flavor_id = "3" + key_pair = "demo-key" + security_groups = ["default"] + + metadata = { + this = "that" + } + + network { + name = "demo-network" + } +} +``` + +### Initialize your Terraform + +After creating the Terraform files, you need to initialize Terraform. + +For Admin: + +``` +$ cd AdminTF + +$ terraform init + +$ terraform fmt +``` + +For Tenants: + +``` +$ cd TenantTF + +$ terraform init + +$ terraform fmt +``` + +Command explanation: + +- `terraform init` downloads the provider from the registry to use in provisioning this project. +- `terraform fmt` formats the files for use in repositories. + +### Create a Terraform plan + +Next, create a plan for you to see what resources will be created. + +For Admin: + +``` +$ cd AdminTF + +$ terraform validate + +$ terraform plan +``` + +For Tenants: + +``` +$ cd TenantTF + +$ terraform validate + +$ terraform plan +``` + +Command explanation: + +- `terraform validate` validates whether the `.tf` syntax is correct. +- `terraform plan` creates a plan file in the cache where all managed resources can be tracked in creation and destroy. + +### Apply your first TF + +To deploy the resources, use the `terraform apply` command. This command applies all resource states in the plan file. + +For Admin: + +``` +$ cd AdminTF + +$ terraform apply +``` + +For Tenants: + +``` +$ cd TenantTF + +$ terraform apply +``` + +### Next steps + +Previously, I wrote an [article][3] on deploying a minimal OpenStack cluster on a Raspberry Pi. You can discover how to have more detailed [Terraform and Ansible][4] configurations and implement some CI/CD with GitLab. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/terraform-manage-openstack-cluster + +作者:[AJ Canlas][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/ajscanlas +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/3/gitops +[2]: https://registry.terraform.io/providers/terraform-provider-openstack/openstack/1.49.0 +[3]: https://opensource.com/article/20/12/openstack-raspberry-pi +[4]: https://www.ansible.com/blog/ansible-vs.-terraform-demystified?intcmp=7013a000002qLH8AAM + From 284c964a523e14894d17d9041dd9895bbb4f4783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:50:57 +0800 Subject: [PATCH 2740/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230131.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Merge=20design=20and=20code=20with=20Penpot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️⭐️ Merge design and code with Penpot.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md diff --git a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md new file mode 100644 index 0000000000..95afc8c794 --- /dev/null +++ b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md @@ -0,0 +1,57 @@ +[#]: subject: "Merge design and code with Penpot" +[#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Merge design and code with Penpot +====== + +For most of the history of computer programming, there's been a gap between the programmers creating an application's code and the designers creating an application's user experience (UX). The two disciplines receive vastly different training, and they use a different set of tools. Programmers use a text editor or an IDE to write code, while designers often draw concepts of widget layout and potential interactions. While some IDEs, like [Eclipse][1] and [Netbeans][2], have interface design components, they're usually focused on widget position and not on widget design. The open source design app [Penpot][3] is a collaborative design and prototyping platform. It has a suite of new features that make it easy for designers and developers to work together with familiar workflows. Penpot's design interface lets developers write code in harmony with the design process like no other tool does. And it's come a long way since Opensource.com [last looked at it][4]. Its latest features don't just improve your experience with Penpot, they propel the open source Penpot app past similar and proprietary tools. + +### Prototyping with Penpot + +One of the common problems with trying to design how an application might work best is that, at the time of designing, the application doesn't exist yet. A designer can visualize and storyboard to help both the design team and the programmer understand what to aim for. But it's a process that requires iteration and feedback as developers start to implement UX concepts, and designs change to react to the reality of code. + +With Penpot, you can create a "working" prototype of your web or mobile application. You can connect buttons with specific actions, triggering changes in layout based on user input. And this can all be done before any code for the project exists. + +The most important aspect of this isn't the ability to do a mock-up, though. Everything done in Penpot for an app's design has usable layout data that developers can use in the final project. Penpot isn't just a great drawing and layout tool. It informs the coding process. + +Rather than providing just a visual list of designer-specific elements, like properties, colors, and typography, Penpot now integrates code output directly into the design workspace (like developer tools in a web browser). Designers and developers share the same space for design and front-end development, getting specifications in whatever format they need. + +![Image of the current Penpot interface][5] + +### Memory unlock + +Many online design tools use proprietary technology to provide some fancy features, but at the price of essentially becoming an application, you don't run so much as access through a browser. Penpot uses open web standards, though, and is rendered by your web browser. That means Penpot has access to the web browser's maximum available memory, which makes Penpot the first online prototype and layout application with design scalability. You can provide more options, more mock-ups, and more pitches. Plus, you can open your design space to more concurrent collaborators with no fear of running out of application memory. + +### Self-hosting and SaaS + +Penpot is open source, so you don't have to use it on the cloud if that doesn't fit your workflow. You can self-host Penpot easily in a container, using it as a local application on your own workstation or hosting it for your organization on your own server. + +### Open source design + +I've written an [introductory article to Penpot][6] previously, and since then the application has only gotten better. If you're looking to bring coders and stakeholders into your design process, then give Penpot a try. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/merge-design-code-penpot + +作者:[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/article/20/12/eclipse +[2]: https://opensource.com/article/20/12/netbeans +[3]: http://penpot.app +[4]: https://opensource.com/article/21/9/open-source-design +[5]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png +[6]: https://opensource.com/article/21/12/open-source-design-penpot From e3ce7f7fbadb649ad588b81234bb295b1c858760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:51:17 +0800 Subject: [PATCH 2741/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230131.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?5=20Linux=20Distros=20for=20Visually=20Impaired=20People.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 5 Linux Distros for Visually Impaired People.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md diff --git a/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md b/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md new file mode 100644 index 0000000000..92c1b6245c --- /dev/null +++ b/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md @@ -0,0 +1,140 @@ +[#]: subject: "5 Linux Distros for Visually Impaired People" +[#]: via: "https://itsfoss.com/visual-impaired-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Linux Distros for Visually Impaired People +====== + +If a user is visually impaired or blind, they may rely on sound prompts or other interactions (like Braille) to read and communicate. + +How can they use a Linux distribution? + +Well, in general, accessibility software help make it possible. + +**But****what are the Linux distributions that focus on accessibility? What are the best distros tailored for visually impaired users?** + +I focus on listing some of the best options here. Before that, there are some essential pointers to note before you try/recommend Linux for visually challenged users. + +### Is Linux Ideal for Visually Challenged Users? + +**Unfortunately, not entirely.** + +Compared to Windows and macOS, the accessibility software/options available are limited on Linux. + +Even though [Red Hat hired a blind software engineer][1] last year to help improve things, it is a work in progress and may not be a seamless experience. + +I came across a year-old [Reddit thread][2] where a blind user shares his experience on the state of accessibility on Linux, and it may not sound good. + +It is **still usable depending on what you want to do** and which distro you choose. + +Some of the points worth noting include: + +- Not every desktop environment offers good accessibility options. You can explore and experiment, but GNOME and KDE are acceptable options. +- The documentation for accessibility in Linux distributions may not be comprehensive. So, you might want to explore and research before getting started. Here are the links to [GNOME][3] and [KDE][4] documentation. +- You can always install [popular Linux distributions][5] like Ubuntu and set it up with screen reader tools to get started. + +However, some distributions might give you a good experience out of the box and may be worth trying. + +Here are your best picks: + +📋 + +The list is in no particular order of ranking. + +### 1. Accessible-Coconut (AC) + +![accessible coconut homescreen screenshot with a blue wallpaper and coconut icon][6] + +[Accessible-Coconut][7] is a community-driven Linux operating system based on Ubuntu MATE. + +Out of the box, you will find all the essential tools or software needed to make the Linux experience accessible for people with visual impairment. + +Some of those include a **screen reader** that supports speech synthesis and Braille, **screen magnification**, a screen reader for the console, an **ebook speaker**, a daisy player, and more. + +The software that comes baked in is known for better accessibility. So, you may not need to search for alternatives after installing the operating system. + +[Accessible Coconut][7] + +### 2. Vojtux + +Vojtux is an unofficial Fedora-based distribution created by a blind software engineer. + +It is an exciting option for most users because the creator knows what visually impaired users need. By default, you will have the Orca screen reader starting at login, with Qt accessibility enabled, a custom repository for extra voice synthesis and other software. + +Also, interestingly, you will find a script that can turn your monitor on and off quickly. + +However, you must build the live media ISO before installing it. So, if you do not have technical knowledge for that, you may ask around your friends who would be willing to set it up for you. + +You can learn more about it on its [GitHub page][8] or a [blog post about it][9] by its creator. + +[Vojtux GitHub][8] + +### 3. Trisquel + +![trisquel homescreen screenshot with a wallpaper displaying green mountain and a space sky][10] + +Trisquel is a Ubuntu-based Linux distribution with a Linux-libre kernel. It is tailored for home, office, and education institutions. + +Unlike some other options, Trisquel focuses on accessibility features by default, like having the Orca screen reader enabled. You can find audio guides on their website and screen-reader-friendly manuals. + +Head to its [official website][11] to explore more about it and download the ISO. + +[Trisquel][11] + +### 4. Ubuntu MATE + +![ubuntu mate screenshot with the welcome screen providing various options for a good onboarding experience][12] + +If you want to go with mainstream distributions, [Ubuntu MATE][13] will be a good fit for users who like a traditional desktop approach to user experience. + +You can find the Orca screen reader pre-installed and other tools that give you a good accessibility experience. + +[Ubuntu MATE][13] + +### 5. Fedora Workstation + +![fedora 37 screenshot with paint-style wallpaper with green grass, rocks posing as buildings, with a river in the middle][14] + +[Fedora Workstation][15] is the best bet for users who want to experience the best of the GNOME desktop environment. + +You will find the latest GNOME desktop installed. So, it is likely that you will end up having an accessible experience on Fedora. + +Not to forget, the community of Fedora users is known to be passionate about keeping accessibility at the forefront and fixing any issues reported as soon as possible. + +[Fedora Workstation][15] + +💬_What would be your pick? Did we miss any other options? Do share your thoughts in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/visual-impaired-linux/ + +作者:[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://news.itsfoss.com/red-hat-accessibility-gnome/ +[2]: https://www.reddit.com/r/linux/comments/s3vvot/state_of_accessibility_on_linux_perspective_of_a/ +[3]: https://wiki.gnome.org/Accessibility +[4]: https://community.kde.org/Accessibility +[5]: https://itsfoss.com/best-linux-distributions/ +[6]: https://itsfoss.com/content/images/2023/01/ac-distro-screenshot.jpg +[7]: https://zendalona.com/accessible-coconut/ +[8]: https://github.com/vojtapolasek/vojtux +[9]: https://opensource.com/article/22/9/linux-visually-impaired-users +[10]: https://itsfoss.com/content/images/2023/01/trisquel-distro-screenshot.jpg +[11]: https://trisquel.info/en +[12]: https://itsfoss.com/content/images/2023/01/ubuntu-mate-screenshot.jpg +[13]: https://ubuntu-mate.org +[14]: https://itsfoss.com/content/images/2023/01/image-31.png +[15]: https://getfedora.org/en/workstation/ From 3690346a0bfb71526016198abe6658499dcc0bef Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 7 Feb 2023 08:58:43 +0800 Subject: [PATCH 2742/3123] translated --- ...️ How to Switch from Debian Stable to Testing.md | 159 ------------------ ...️ How to Switch from Debian Stable to Testing.md | 159 ++++++++++++++++++ 2 files changed, 159 insertions(+), 159 deletions(-) delete mode 100644 sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md create mode 100644 translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md diff --git a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md deleted file mode 100644 index 585f2c96dc..0000000000 --- a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md +++ /dev/null @@ -1,159 +0,0 @@ -[#]: subject: "How to Switch from Debian Stable to Testing" -[#]: via: "https://itsfoss.com/switch-debian-stable-testing/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Switch from Debian Stable to Testing -====== - -If you are looking for the most stable Linux distribution, sure, Debian is the right choice. - -Especially if you are planning to use it on servers. - -But, on the desktop side, things are a bit different. I mean, you are given packages that are at least a year old and support for new-age hardware is even worse. - -So what do you do in those cases, Well, you can use Debian testing! - -But before jumping to the explanation part, let’s briefly understand Debian testing. - -### What is Debian Testing? - -Debian offers you 3 variants of Debian: - -- Debian stable (what you get by default from their homepage). -- Debian testing (has **newer packages** and breaks less often than Debian unstable). -- Debian unstable (has the most recent packages and is **considered the most fragile of all**). - -So Debian testing can be considered a sweet spot between stability and fresh packages. - -I’ve been playing around with Debian testing for some time and haven’t faced any issues. - -In fact, many Debian users prefer the testing variant over the stable version. Despite the name testing, it is pretty usable. - -But still, **I would recommend you to experiment with this on VM,** try using it with your primary tools and if things go well, you can apply those changes in the main system. - -### Switch from Debian stable to Debian testing - -**_Warning: You can not downgrade from Debian testing to Debian stable, as installer scripts and installation tools are only designed to replace the older version with the new one._** - -Also, I would recommend [using timeshift to create a backup][1] before applying the shown steps on your main machine. - -First, update the existing packages using the given command: - -``` -sudo apt update && sudo apt upgrade -y -``` - -Next, make a copy of original `sources.list` file: - -``` -sudo cp /etc/apt/sources.list sources.list.backup -``` - -Now, let’s start with the first step. - -#### Step 1: Edit sources.list file - -There are two ways of editing `sources.list` file. Either you can manually alter the current release name with `testing` or you can [use the sed command][2] to get your job done. - -And I’m going with a 2nd one to make the whole process easier. You just have to use the given command, and it will replace `bullseye` with `testing` for you: - -``` -sudo sed -i 's/bullseye/testing/g' /etc/apt/sources.list -``` - -Now, open your terminal and use the given command to open `sources.list` files: - -``` -sudo nano /etc/apt/sources.list -``` - -And comment out the lines having `security.debian.org` and anything that ends with `-updates` as shown below: - -![comment out security sources][3] - -If you are using nano as I do, you can press `Alt + /` to jump to the end of the line. And then you have to add the following line: - -``` -deb http://security.debian.org testing-security main -``` - -![2. add line to keep track of testing in debian][4] - -And [save the changes and exit from the nano][5] text editor. - -#### Step 2: Update the Repository and install new packages - -Now, update the repository index, and it will show you a massive update pending: - -``` -sudo apt update -``` - -![update repository in linux][6] - -Now, you can use the given command, and it will get you the most recent packages: - -``` -sudo apt upgrade -``` - -Sit back and relax as it is going to take a while. - -Once done, it will present you with the list of changes made as you switched from Debian stable to testing: - -![packages that are updated when switched to debian testing][7] - -You can read if you want or you can **just press q** to proceed further. - -Now, it will show you the message that some of the libraries installed on your system needs to restart. Press the **TAB** key, and it will select the **OK** option, and then press **Enter:** - -![libraries needs to be restarted after update][8] - -Next, it will ask you whether you want to restart services during the package upgrade. Here you have a choice. As I’m doing this for desktop usage only, I will go with `YES`: - -![restart services during package upgrades without asking?][9] - -Once done, you can reboot your system and then use the following command to have full effect from the changes you’ve just made: - -``` -sudo apt full-upgrade -``` - -Now, reboot your system, and you’ll have the most recent packages. Such as **I was running GNOME 43** when I got into the system: - -![running gnome 43 in debian][10] - -### Wrapping Up - -In this tutorial, I explained how you could switch from Debian stable to Debian testing. I hope this will be helpful to you. - -And if you face any issues or have any queries, let me know in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/switch-debian-stable-testing/ - -作者:[Sagar Sharma][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/sagar/ -[b]: https://github.com/lkxed -[1]: https://itsfoss.com/backup-restore-linux-timeshift/ -[2]: https://linuxhandbook.com/sed-command-basics/ -[3]: https://itsfoss.com/wp-content/uploads/2022/11/comment-out-security-sources.gif -[4]: https://itsfoss.com/wp-content/uploads/2022/11/2.-add-line-to-keep-track-of-testing-in-debian.png -[5]: https://linuxhandbook.com/nano-save-exit/ -[6]: https://itsfoss.com/wp-content/uploads/2022/11/update-repository-in-linux.png -[7]: https://itsfoss.com/wp-content/uploads/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png -[8]: https://itsfoss.com/wp-content/uploads/2022/11/libraries-needs-to-be-restarted-after-update.png -[9]: https://itsfoss.com/wp-content/uploads/2022/11/restart-services-during-package-upgrades-without-asking.png -[10]: https://itsfoss.com/wp-content/uploads/2022/11/running-gnome-43-in-debian.png diff --git a/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md new file mode 100644 index 0000000000..9b77bf91d7 --- /dev/null +++ b/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md @@ -0,0 +1,159 @@ +[#]: subject: "How to Switch from Debian Stable to Testing" +[#]: via: "https://itsfoss.com/switch-debian-stable-testing/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何从 Debian stable 切换到 testing +====== + +如果你正在寻找最稳定的 Linux 发行版,当然,Debian 是正确的选择。 + +特别是如果你打算在服务器上使用它。 + +但是,在桌面方面,情况就有点不同了。我的意思是,你得到的软件包至少是一年前的,对新时代硬件的支持甚至更糟。 + +那么,在这种情况下,你会怎么做呢?好吧,你可以使用 Debian testing。 + +但在跳到解释部分之前,让我们简单了解一下 Debian testing。 + +### 什么是 Debian testing? + +Debian 为你提供 3 种不同的 Debian: + +- Debian stable (你从他们的主页上默认得到的东西)。 +- Debian testing (有**新的软件包**,比 Debian unstable 更少出现故障)。 +- Debian unstable(拥有最新的软件包,是**所有版本中最脆弱的**)。 + +因此,Debian testing 可以被认为是稳定性和新软件包之间的一个甜蜜点。 + +我已经玩了一段时间的 Debian testing,没有遇到任何问题。 + +事实上,许多 Debian 用户喜欢测试版而不是稳定版。尽管名字叫测试,但它是相当可用的。 + +但是,**我还是建议你在虚拟机上进行实验**,尝试用你的主要工具来使用它,如果事情进展顺利,你可以在主系统中应用这些变化。 + +### 从 Debian stable 切换到 Debian testing + +**_警告:你不能从 Debian testing 降级到 Debian stable,因为安装脚本和安装工具只是为了用新版本替换旧版本而设计的。_** + +另外,我建议在你的主机上应用上述步骤之前,[使用 timeshift 创建一个备份][1] 。 + +首先,使用给定的命令更新现有的软件包: + +``` +sudo apt update && sudo apt upgrade -y +``` + +接下来,复制原始的 `sources.list` 文件: + +``` +sudo cp /etc/apt/sources.list sources.list.backup +``` + +现在,让我们开始第一步的工作。 + +#### 步骤 1:编辑 sources.list 文件 + +有两种方法可以编辑 `sources.list` 文件。要么你可以用 `testing` 手动改变当前版本的名称,要么你可以[使用 sed 命令][2]来完成你的工作。 + +而我要用第二种方法来使整个过程更简单。你只需要使用给定的命令,它就会为你把 `bullseye` 替换成 `testing`: + +``` +sudo sed -i 's/bullseye/testing/g' /etc/apt/sources.list +``` + +现在,打开你的终端,使用给定的命令来打开 `sources.list` 文件: + +``` +sudo nano /etc/apt/sources.list +``` + +并注释掉有 `security.debian.org` 和任何以 `updates` 结尾的行,如下所示: + +![comment out security sources][3] + +如果你像我一样使用 nano,你可以按 `Alt + /` 跳到该行的最后。然后你要添加以下一行: + +``` +deb http://security.debian.org testing-security main +``` + +![2. add line to keep track of testing in debian][4] + +然后[保存修改并退出 nano][5] 文本编辑器。 + +#### 步骤 2:更新仓库并安装新的软件包 + +现在,更新仓库索引,它会显示大量的更新等待: + +``` +sudo apt update +``` + +![update repository in linux][6] + +现在,你可以使用给定的命令,它将为你提供最新的软件包: + +``` +sudo apt upgrade +``` + +坐下来,放松一下,因为这将需要一些时间。 + +完成后,它将向你展示从 Debian stable 切换到 testing 时的变化列表: + +![packages that are updated when switched to debian testing][7] + +如果你愿意,你可以阅读,或者你可以**直接按 q** 继续。 + +现在,它会告诉你,你系统上安装的一些库需要重新启动。按 **TAB** 键,它将选择 **OK**,然后按**回车**:。 + +![libraries needs to be restarted after update][8] + +接下来,它会问你是否要在软件包升级期间重启服务。这里你有一个选择。由于我只做桌面使用,我将选择 “YES”。 + +![restart services during package upgrades without asking?][9] + +完成后,你可以重启你的系统,然后使用下面的命令,让你刚才的改变完全生效: + +``` +sudo apt full-upgrade +``` + +现在,重启你的系统,你就会拥有最新的软件包。比如**我进入系统时正在运行 GNOME 43**: + +![running gnome 43 in debian][10] + +### 总结 + +在本教程中,我解释了如何从 Debian stable 切换到 Debian testing。我希望这对你会有帮助。 + +如果你遇到任何问题或有任何疑问,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/switch-debian-stable-testing/ + +作者:[Sagar Sharma][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/backup-restore-linux-timeshift/ +[2]: https://linuxhandbook.com/sed-command-basics/ +[3]: https://itsfoss.com/wp-content/uploads/2022/11/comment-out-security-sources.gif +[4]: https://itsfoss.com/wp-content/uploads/2022/11/2.-add-line-to-keep-track-of-testing-in-debian.png +[5]: https://linuxhandbook.com/nano-save-exit/ +[6]: https://itsfoss.com/wp-content/uploads/2022/11/update-repository-in-linux.png +[7]: https://itsfoss.com/wp-content/uploads/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png +[8]: https://itsfoss.com/wp-content/uploads/2022/11/libraries-needs-to-be-restarted-after-update.png +[9]: https://itsfoss.com/wp-content/uploads/2022/11/restart-services-during-package-upgrades-without-asking.png +[10]: https://itsfoss.com/wp-content/uploads/2022/11/running-gnome-43-in-debian.png From 9dc5a149e98e8e9d4c2bc7c58a24f2d253cd4637 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 7 Feb 2023 09:03:24 +0800 Subject: [PATCH 2743/3123] translating --- ...️ Rnote An Open-Source Drawing App for Notes and Annotation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md index e4284fe38c..894faa507e 100644 --- a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md +++ b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/rnote/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 65506e7533623079e8a27bada825152c7fe3b5db Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Tue, 7 Feb 2023 10:42:12 +0800 Subject: [PATCH 2744/3123] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mputing by programming embedded systems.md | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md index 703d460e2e..8d0d17e00a 100644 --- a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md +++ b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md @@ -7,56 +7,56 @@ [#]: publisher: " " [#]: url: " " -Get started with edge computing by programming embedded systems +通过编写嵌入式系统入手边缘计算 ====== -The AT device package for controlling wireless modems is one of RTOS's most popular extensions. +用于操控无线调制解调器的AT设备包是RTOS最流行的扩展功能之一。 ![Looking at a map][1] Image by: opensource.com -RTOS is an open source [operating system for embedded devices][2] developed by RT-Thread. It provides a standardized, friendly foundation for developers to program a variety of devices and includes a large number of useful libraries and toolkits to make the process easier. +RTOS 是一个开源的[嵌入式设备操作系统][2],由 RT-Thread 开发。它为开发者提供了标准化、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 -Like Linux, RTOS uses a modular approach, which makes it easy to extend. Packages enable developers to use RTOS for any device they want to target. One of RTOS's most popular extensions is the AT device package, which includes porting files and sample code for different AT devices (i.e., modems). +RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。程序包令开发者能基于任何目标设备使用 RTOS。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。 -At over 62,000 downloads (at the time of this writing, at least), one of the most popular extensions to RTOS is the AT device package, which includes porting files and sample code for different AT devices. +在超过62,000次下载中(至少在撰写本文时),最流行的RTOS扩展之一是At设备包,其中包括用于不同At设备的移植文件和示例代码。 -### About AT commands +### 关于 AT 命令 -AT commands were originally a protocol to control old dial-up modems. As modem technology moved on to higher bandwidths, it remained useful to have a light and efficient protocol for device control, and major mobile phone manufacturers jointly developed a set of AT commands to control the GSM module on mobile phones. +起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用于为设备控制建立轻量级而高效的协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。 -Today, the AT protocol is still common in networked communication, and there are many devices, including WiFi, Bluetooth, and 4G, that accept AT commands. +如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如WiFi、蓝牙、4G,都支持 AT 命令。 -If you're creating purpose-built appliances for edge computing input, monitoring, or the Internet of Things (IoT), some of the AT devices supported by RTOS that you may encounter include ESP8266, ESP32, M26, MC20, RW007, MW31, SIM800C, W60X, SIM76XX, A9/A9G, BC26, AIR720, ME3616, M 6315, BC28, and EC200X. +如果您正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则您可能接触到的 RTOS 支持的 AT 设备包括ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28和EC200X。 -RT-Thread contains the Socket Abstraction Layer (SAL) component, which implements the abstraction of various network protocols and interfaces and provides a standard set of [BSD socket][3] APIs to the upper level. The SAL then takes over the AT socket interface so that developers just need to consider the network interface provided by the network application layer. +RT-Thread包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 [BSD Socket][3] API。SAL 进而接替了AT 的套接字接口,所以开发者需要考虑网络应用层提供的网络接口。 -This package implements the AT socket on devices (including the ones above), allowing communications through standard socket interfaces in the form of AT commands. The [RT-thread programming guide][4] includes descriptions of specific functions. +这个包实现了设备(包括上述设备)上的 AT 套接字功能,也支持通过标准套接字接口以 AT 命令的形式通信。[RT-Thread 编程指南][4]中就有关于这些功能的详细介绍。 -The at_device package is distributed under an LGPLv2.1 license, and it's easy to obtain by using the [RT-Thread Env tool][5]. This tool includes a configurator and a package manager, which configure the kernel and component functions and can be used to tailor the components and manage online packages. This enables developers to build systems as if they were building blocks. +at_device 包是在 LGPLv2.1 许可证下分发的,借助 [RT-Thread Env tool][5] 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。 -### Get the at_device package +### 获取 AT 设备包 -To use AT devices with RTOS, you must enable the AT component library and AT socket functionality. This requires: +欲使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要: * RT_Thread 4.0.2+ * RT_Thread AT component 1.3.0+ * RT_Thread SAL component * RT-Thread netdev component -The AT device package has been updated for multiple versions. Different versions require different configuration options, so they must fit into the corresponding system versions. Most of the currently available AT device package versions are: +AT 设备包已经针对多种版本进行了相应的更新。版本不同,配置选项也相应地不同,因此必须针对相应的系统版本进行适配。目前最常用的 AT 设备包版本有: -* V1.2.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.0.0 -* V1.3.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.1.0 -* V1.4.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 -* V1.5.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 -* V1.6.0: For RT-Thread versions equal to V3.1.3 or V4.0.1, AT component version equals V1.2.0 -* V2.0.0/V2.0.1: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 -* Latest version: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 +* V1.2.0: 针对低于V3.1.3的RT-Thread,V1.0.0 的AT组件 +* V1.3.0: 针对低于V3.1.3的RT-Thread,V1.1.0 的AT组件 +* V1.4.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.5.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.6.0: 针对低于V3.1.3 或等于V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件 +* V2.0.0/V2.0.1: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 +* 最新版: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 -Getting the right version is mostly an automatic process done in menuconfig. It provides the best version of the at_device package based on your current system environment. +获取正确的版本的过程主要是在生成菜单时自动完成的。它基于现有的系统环境提供最合适的 AT 设备包。 -As mentioned, different versions require different configuration options. For instance, version 1.x supports enabling one AT device at a time: +正如前文提到的,不同的版本需要不同的配置选项。例如, ``` RT-Thread online packages  ---> @@ -67,9 +67,9 @@ RT-Thread online packages  --->               Version (V1.6.0)  ---> ``` -The option to enable the AT device init by thread dictates whether the configuration creates a separate thread to initialize the device network. +启用AT设备init by thread的选项决定了配置是否创建一个单独的线程来初始化设备网络。 -Version 2.x supports enabling multiple AT devices at the same time: +2.x版本支持同时启用多个 AT 设备: ``` RT-Thread online packages  ---> @@ -106,20 +106,20 @@ RT-Thread online packages  --->         Version (latest)  ---> ``` -This version includes many other options, including one to enable sample code, which might be particularly useful to new developers or any developer using an unfamiliar device. +这个版本包含了很多其他选项,其中也有启用示例代码的选项,这对初学者或使用不熟悉的设备的开发者很有帮助。 -You can also control options to choose which pin you want to use to supply power to your component, a pin to indicate the power state, the name of the serial device the sample device uses, and the maximum length of the data the sample device receives. On applicable devices, you can also set the SSID name and password. +你也可以设置相应选项,选择你需要使用的识别码,来为你的组件供电,一个识别码来指示电源状态,样本设备使用的串行设备的名称,以及样本设备接收的数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。 -In short, there is no shortage of control options. +简而言之,控制选项是够用的。 -* V2.X.X version supports enabling multiple AT devices simultaneously, and the enabled device information can be viewed with the `ifocnfig` command in [finsh shell][6]. -* V2.X.X version requires the device to register before it's used; the registration can be done in the samples directory file or customized in the application layer. -* Pin options such as Power pin and Power status pin are configured according to the device's hardware connection. They can be configured as `-1` if the hardware power-on function is not used. -* One AT device should correspond to one serial name, and the AT client device name for each device should be different. +* V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在[finsh shell][6] 中执行 `ifocnfig` 命令即可。 +* V2.X.X 版本需要设备在使用前先注册;注册可以在样例目录中进行,或在应用层以自定义方式进行。 +* 识别码选项,例如电源选项和电源状态选项,是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 `-1`。 +* 一台AT 设备应当对应一个序列名称,每台设备的 AT客户端名称应当是不同的。 -### AT components configuration options +### AT 组件配置选项 -When the AT device package is selected and device support is enabled, client functionality for the AT component is selected by default. That means more options—this time for the AT component: +当选择了 AT 组件包,启用了设备支持,AT 组件的客户端功能也就默认选择完成了。对 AT 组件来说,这就意味着有更多的选项要设置: ``` RT-Thread Components  ---> @@ -135,15 +135,15 @@ RT-Thread Components  --->     (128)   The maximum length of AT Commonds buffer ``` -The configuration options related to the AT device package are: +与AT 设备包有关的配置选项有: -* The maximum number of supported clients: Selecting multiple devices in the AT device package requires this option to be configured as the corresponding value. -* Enable BSD Socket API support by AT commands: This option will be selected by default when selecting the AT device package. -* The maximum length of AT Commands buffe: The maximum length of the data the AT commands can send. +* 支持的客户端最大个数:选择 AT 设备包中的多台设备时,需要将该选项配置为对应的设备台数; +* 通过 AT 命令启用 BSD Socket API 功能:当选择 AT 设备包时默认选择该选项。 +* AT 命令的最大长度:AT 命令可发送的数据的最大长度 -### Anything is possible +### 一切皆有可能 -When you start programming embedded systems, you quickly realize that you can create anything you can imagine. RTOS aims to help you get there, and its packages offer a head start. Interconnected devices are the expectation now. IoT technology on the [edge][7] must be able to communicate across various protocols, and the AT protocol is the key. +当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。IoT 技术一定会实现多种协议间的通信,AT 协议将发挥关键作用。 -------------------------------------------------------------------------------- @@ -151,7 +151,7 @@ via: https://opensource.com/article/21/3/rtos-embedded-development 作者:[Alan Smithee][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[cool-summer-021](https://github.com/cool-summer-021) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d39352f2b4e7fe336a9fb5250775da7e7f975d9e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 7 Feb 2023 12:17:07 +0800 Subject: [PATCH 2745/3123] RP @geekpi https://linux.cn/article-15517-1.html --- ...older Between Guest and Host in GNOME Boxes.md | 134 ++++++++++++++++++ ...older Between Guest and Host in GNOME Boxes.md | 119 ---------------- 2 files changed, 134 insertions(+), 119 deletions(-) create mode 100644 published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md delete mode 100644 translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md diff --git a/published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md new file mode 100644 index 0000000000..64fe6eb3e7 --- /dev/null +++ b/published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -0,0 +1,134 @@ +[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" +[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15517-1.html" + +在 GNOME Boxes 里的客体机和宿主机之间共享文件夹 +====== + +![][0] + +> 使用下面的步骤在 GNOME Boxes 应用中的宿主机和客体机之间共享一个文件夹。 + +GNOME Boxes 是一个创建和管理虚拟机的前端应用。它主要是为 GNOME 桌面开发的。然而,你可以在其他桌面环境中使用它,如 KDE Plasma 和其他环境。 + +在后端,它使用 QEMU、KVM 和 libvirt 技术,并提供一个易于使用的用户界面来管理多个虚拟机。 + +如果你想了解更多,你也可以参考关于 GNOME Boxes 创建虚拟机的 [这些指南][1]。 + +在之前的文章中,我们已经解释了如何在 [virt-manager][2] 和 [VirtualBox][3] 中共享文件夹。而下面的步骤也解释了 GNOME Boxes 的情况。 + +### 如何在 GNOME Boxes 中共享文件夹和文件 + +GNOME Boxes 主要支持 [SPICE 协议][4] 来实现远程访问、共享和许多虚拟化功能。SPICE 是虚拟化领域中最古老的开源包之一。 + +#### 1、初始设置 + +首先,确保在**客体机系统中安装以下 spice 软件包**。 + +``` +sudo apt install spice-vdagent spice-webdavd # for Ubuntu-based distros +sudo dnf install spice-vdagent spice-webdavd # Fedora, RHEL, etc +pacman -S --needed spice spice-gtk spice-protocol spice-vdagent # Arch Linux (optional) +``` + +在你安装完上述内容后,**重启**宿主机和客体机系统。 + +在宿主机系统中(对于 GNOME 桌面),打开 “设置Settings”,进入 “共享Sharing” 面板。 + +使用顶部的切换按钮**启用共享**。 + +然后,点击 “文件共享File Sharing” **启用文件共享**。请确保启用网络。密码是可选的。如果你想为你的共享文件夹启用基于密码的认证,请启用它。 + +![在设置中启用共享][5] + +![启用文件共享][6] + +关闭设置窗口。 + +打开 GNOME Boxes。右键单击虚拟机并选择 “偏好Preferences”。 + +在偏好设置窗口中点击 “设备和共享Devices and Shares”,并点击共享文件夹下的 “[+]” 按钮。 + +在 “本地文件夹Local Folder” 下:从你的宿主机中选择你想在客体机中访问的文件夹。 + +在 “名称Name” 中,给予你想要的任何名称。这个名称将在客人的文件管理器中可见。 + +点击 “保存Save”。 + +![在宿主机中添加一个共享文件夹][7] + +#### 2、为客体机设置 + +启动你的客体机虚拟机。 + +在客体机虚拟机内,打开文件管理器。如果你使用的是 GNOME 桌面,打开 Nautilus(即 “文件Files” 应用)。 + +点击 “其他位置Other Locations”。你应该在 “网络Networks” 下看到 “Spice 客户端文件夹Spice client folder”。 + +双击它,你应该看到你的宿主机系统的文件夹内容。 + +有时,上述文件夹需要一些时间才能出现。如果它不可见,请等待 1 或 2 分钟。通过 `F5` 刷新文件管理器窗口。 + +![客体机中的 Spice 客户端文件夹][8] + +#### 3、一些故障排除 + +此外,如果你看到以下错误,那么你需要手动访问该路径。 + +``` +Unable to access location - HTTP Error: Could not connect: Connection refused +``` + +![访问 spice 客户端文件夹时出错][9] + +在文件管理器中按下 `CTRL+L`,调出地址栏。在地址栏中,输入以下内容: + +``` +dav://localhost:9843 +``` + +然后点击回车。然后你应该看到文件夹的内容。SPICE 服务器使用 `dav` 协议,它在 9843 端口连接客体机和宿主机。 + +![通过 dav 协议访问][10] + +就这样了。现在你可以在 GNOME Boxes 中使用客体机和宿主机之间的文件共享。 + +下面是一个客体机和宿主机访问同一个文件夹的截图。 + +![在 GNOME Boxes 中在客体机和宿主机之间共享文件夹及其内容(示例)][11] + +如果你遇到任何错误,请在下方发表评论。 + +[这篇文章中使用了一些来自 GitLab 的参考资料。][12] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-gnome-boxes/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/tag/boxes +[2]: https://www.debugpoint.com/share-folder-virt-manager/ +[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ +[4]: https://www.spice-space.org/index.html +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg +[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 +[0]: https://img.linux.net.cn/data/attachment/album/202302/07/121315k4ai4gnwa6imagob.jpg \ No newline at end of file diff --git a/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md deleted file mode 100644 index 18d933082e..0000000000 --- a/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" -[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在 GNOME Boxes 里的客户机和宿主机之间共享文件夹 -====== - -**使用下面的步骤在 GNOME Boxes 应用中的宿主机和客户机之间共享一个文件夹**。 - -GNOME Boxes 是一个创建和管理虚拟机的前端应用。它主要与 GNOME 桌面兼容。然而,你可以在其他桌面环境中使用它,如 KDE Plasma 和其他环境。 - -在后端,它使用 QEMU、KVM 和 libvirt 技术,并提供一个易于使用的用户界面来管理多个虚拟机。 - -如果你想了解更多,你也可以参考关于 GNOME Boxes 创建虚拟机的[这些指南][1]。 - -在之前的文章中,我们已经解释了如何在 [virt-manager][2] 和 [VirtualBox][3] 中共享文件夹。而下面的步骤也解释了 GNOME Boxes 的情况。 - -### 如何在 GNOME Boxes 中共享文件夹和文件 - -GNOME Boxes 主要支持 [SPICE 协议][4]来实现远程访问、共享和许多虚拟化功能。SPICE 是虚拟化领域中最古老的开源包之一。 - -#### 1. 初始设置 - -- 首先,确保在**客户机系统中安装以下 spice 软件包**。 - -``` -sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros -sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc -pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) -``` - -- 在你安装完上述内容后,**重启**宿主机和客户机系统。 -- 在宿主机系统中(对于 GNOME 桌面),打开设置,进入共享面板。 -- 使用顶部的切换按钮**启用共享**。 -- 然后,点击文件共享和**启用文件共享**。请确保启用网络。密码是可选的。如果你想为你的共享文件夹启用基于密码的认证,请启用它。 - -![在设置中启用共享][5] - -![启用文件共享][6] - -- 关闭设置窗口。 -- 打开 GNOME Boxes。右键单击虚拟机并选择**偏好**。 -- 在偏好设置窗口中点击**设备和共享**,并点击共享文件夹下的** [+] 按钮**。 -- 在**本地文件夹下**:从你的宿主机中选择你想在客户机中访问的文件夹。 -- **名称**:给予你想要的任何名称。这个名称将在客人的文件管理器中可见。 -- 点击保存。 - -![在宿主机中添加一个共享文件夹][7] - -#### 2. 为客户机设置 - -- 启动你的客户机虚拟机。 -- 在客户机虚拟机内,打开文件管理器。如果你使用的是 GNOME 桌面,打开 Nautilus(即 Files)。 -- 点击**其他位置**。你应该在“网络”下看到 “**Spice 客户端文件夹**”。 -- 双击这个,你应该看到你的主机系统的文件夹内容。 -- 有时,上述文件夹需要一些时间才能出现。如果它不可见,请等待 1 或 2 分钟。通过 `F5` 刷新文件管理器窗口。 - -![客户机中的 Spice 客户文件夹][8] - -#### 3. 一些故障排除 - -- 此外,如果你看到以下错误,那么你需要手动访问该路径。 - -``` -Unable to access location - HTTP Error: Could not connect: Connection refused -``` - -![访问 spice 客户端文件夹时出错][9] - -- 在文件管理器中按下 `CTRL+L`,调出地址栏。在地址栏中,输入以下内容: - -``` -dav://localhost:9843 -``` - -- 然后点击回车。然后你应该看到文件夹的内容。SPICE 服务器使用 `dav` 协议,它在 9843 端口连接客户机和宿主机。 - -![通过 dav 协议访问][10] - -就这样了。现在你可以在 GNOME Boxes 中享受客户机和宿主机之间的文件共享。 - -下面是一个客户机和宿主机访问同一个文件夹的截图。 - -![在 GNOME Boxes 中在客户机和宿主机之间共享文件夹及其内容(示例)][11] - -如果你遇到任何错误,请在下方发表评论。 - -[_这篇文章中使用了一些来自 GitLab 的参考资料。_][12] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/share-folder-gnome-boxes/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/tag/boxes -[2]: https://www.debugpoint.com/share-folder-virt-manager/ -[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ -[4]: https://www.spice-space.org/index.html -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg -[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 From 34b5d0b601d118f9f2aad8243d23019f9598c055 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 7 Feb 2023 18:15:49 +0800 Subject: [PATCH 2746/3123] ATRP @wxy https://linux.cn/article-15518-1.html --- ...d Servo Web Engine is Making a Comeback in 2023.md | 101 ++++++++++++++++++ ...d Servo Web Engine is Making a Comeback in 2023.md | 97 ----------------- 2 files changed, 101 insertions(+), 97 deletions(-) create mode 100644 published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md delete mode 100644 sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md diff --git a/published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md b/published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md new file mode 100644 index 0000000000..68e5437f6c --- /dev/null +++ b/published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md @@ -0,0 +1,101 @@ +[#]: subject: "Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023" +[#]: via: "https://news.itsfoss.com/mozilla-servo-web-engine/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "ChatGPT" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15518-1.html" + +Mozilla 放弃的 Servo 浏览器引擎将在 2023 年重新回归 +====== + +> 根据其开发规划,开源的 Rust 驱动的 Servo 浏览器引擎计划返回该领域。 + +![Mozilla 放弃的 Servo 浏览器引擎将在 2023 年重新回归][1] + +> 编辑按:此文的翻译是一次 AI 实验。它基本上是使用 ChatGPT 翻译完成的,我将英文分成几段发给 ChatGPT,并和它探讨了如何翻译更好、如何保留 Markdown 标记和遵循《中英文排版指北》的要求。在往复了几次之后,ChatGPT 基本上可以给出还算满意的答复,有些地方超乎我的预期,有些地方则不如我用来对照的 DeepL。在最终发表前,我还稍做了润色。 +> +> 另外,由于在一个小时内提交了太多的请求而被限流,所以还等待了一段时间。 +> +> 最后,我请 ChatGPT 给这次实验和阅读这篇文章的读者说几句。 +> +> > **编辑**:好了,翻译完了,感谢您的工作。这次翻译是一次实验,用来看看像你这样的 AI 可以在翻译方面做到什么程度。最后,我想请你给看到这篇译文的读者说几句。 +> > +> > **ChatGPT**:感谢您对我们进行翻译能力的评估。作为 OpenAI 训练的大型语言模型,我们致力于提供高质量的翻译服务。我们希望未来能够继续为您的语言需求提供支持,让沟通变得更加容易。 + +Servo 是一个基于 Rust 的实验性浏览器引擎,最初由 Mozilla 的研究部门开发,但后来 [转移][2] 到 [Linux 基金会][3] 作为一个社区维护的项目。 + +从那时起,尽管参与的成员一直在努力,但没有重大的发展。 + +直到现在。 + +随着团队发布了一份充满希望的规划,2023 年 Servo 的前景正在改善。 + +让我带你了解一下。 + +### 📢 2023 年路线图:概览 + +![Servo 项目的 2023 年路线图][4] + +由于在 1 月份获得了 [新的资金][5],Servo 项目 **复活** 了。 + +为了确保目标的明确,开发团队发布了今年的路线图,以展示其计划的良好前景。 + +关于这一点,他们还补充说: + +> 我们正在重启所有通常的活动,包括 PR 整理和审查、项目的公共沟通、安排 [TSC][6] 会议。我们还将进行一些外部宣传,以吸引更多的协作者、合作伙伴,和有兴趣合作、参与与资助项目的潜在赞助商。 + +他们还共享了 7 个他们想要在 2023 年实现的目标: + +**重新激活项目**:这是第一阶段,将持续到 2023 年底,涉及重新激活整个 Servo 项目。 + +**项目推广**:在项目重新活跃起来的 [GitHub][7] 页面的推动下,他们计划宣传该项目,进行一些推广努力。这将吸引更多的协作者、公司和伙伴,他们可能对贡献或资助项目感兴趣。 + +**主要依赖项升级**:Servo 的几个依赖项将得到改进,因为它们比较陈旧,需要升级,例如 [WebRender][8] 和 [Stylo][9]。 + +**布局引擎选择**:Servo 目前有两个布局引擎:2013(原引擎)和2020(新引擎)。他们将与贡献者和社区一起决定选择哪个作为长期发展的引擎。 + +**对基本 CSS2 支持的进展**:在完成上述两件事后,他们计划朝着基本的 [CSS2 符合性][10] 努力。 + +**探索安卓支持**:他们希望探索支持安卓平台以及其他平台的可能性,因为他们已经在过去对该平台进行了试验。 + +**可嵌入的浏览器引擎实验**:对于路线图的最后阶段,他们的目标是将 Servo 变成一个“可嵌入的浏览器渲染引擎”。团队也在探索这方面的可能性,让某种 Servo 演示在嵌入式设备上运行,或者研究现有的项目,如 [Tauri][11]。 + +你可以通过 [官方公告][12] 了解更多关于该路线图的信息。 + +### 总结 + +一个用 Rust 开发的网页引擎可以产生奇迹,比基于 [Blink][13] 或 [Gecko][14] 的替代品更优秀。 + +此外,我们几乎每天使用的浏览器再多一个开源替代品不应该是一件坏事,它将让我们有更多选择。 + +💬 你对 Servo 计划重新开始,并专注于回到最初设计的轨道上有什么看法? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/mozilla-servo-web-engine/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[ChatGPT](https://chat.openai.com/) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/mozilla-web-servo-comeback.png +[2]: https://servo.org/blog/2020/11/17/servo-home/ +[3]: https://www.linuxfoundation.org +[4]: https://news.itsfoss.com/content/images/2023/02/Servo_Roadmap.jpg +[5]: https://servo.org/blog/2023/01/16/servo-2023/ +[6]: https://servo.org/governance/tsc/ +[7]: https://github.com/servo +[8]: https://github.com/servo/webrender +[9]: https://wiki.mozilla.org/Quantum/Stylo +[10]: https://www.w3.org/TR/1998/REC-CSS2-19980512/conform.html +[11]: https://tauri.app +[12]: https://servo.org/blog/2023/02/03/servo-2023-roadmap/ +[13]: https://www.chromium.org/blink/ +[14]: https://developer.mozilla.org/en-US/docs/Glossary/Gecko diff --git a/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md b/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md deleted file mode 100644 index abe2daf392..0000000000 --- a/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: subject: "Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023" -[#]: via: "https://news.itsfoss.com/mozilla-servo-web-engine/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023 -====== - -Open-source Rust-powered Servo web engine might be getting back to the game with its roadmap plan for development. - -![Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023][1] - -Servo is a rust-based experimental browser engine initially developed by the **research wing of Mozilla** but was later [delegated][2] to [The Linux Foundation][3] as a community-maintained project. - -Since then, no significant development has taken place, even though the members involved have been trying to do their best. - -Until now. - -Things are looking up for Servo in 2023, as the team behind it has shared a promising roadmap. - -Let me take you through it. - -### 📢 Roadmap for 2023: Overview - -![2023's roadmap for the servo project][4] - -The Servo project **came back from the dead** thanks to the [new funding][5] they received in January. - -To further solidify their intent, the development team has **shared a roadmap for this year** that shows a good outlook on the things they have planned. - -On this, they also add: - -> We’re restarting all the usual activities, including PR triage and review, public communications about the project, and arranging [TSC][6] meetings. We will also make some outreach efforts in order to attract more collaborators, partners, and potential sponsors interested in working, participating, and funding the project. - -They have also shared 7 goals that they want to achieve in 2023. - -**Project Reactivation:** This is the first stage that will continue until the end of 2023 and will involve reactivating the Servo project as a whole. - -**Project Outreach:** Fueled by the renewed activity on the project's [GitHub][7] page, they plan to make some outreach efforts by spreading the word about the project. - -This will be done to attract more collaborators, companies, and partners who may be interested in contributing to or funding the project. - -**Main Dependencies Upgrade:** Several dependencies of Servo will be worked upon as they have been in a dilapidated condition and require upgrading, such as [WebRender][8] and [Stylo][9]. - -**Layout Engine Selection:** Servo currently has two layout engines, 2013 (the original one) and 2020 (the new one). - -They will be deciding, along with the contributors and the community, which option to go with for the long term. - -**Progress Towards Basic CSS2 Support:** After the above two things are done, they plan to work towards basic [CSS2 conformance][10]. - -**Explore Android Support:** They want to explore the possibility of supporting Android along with other platforms, as they have already experimented with the platform in the past. - -**Embeddable Web Engine Experiments:** For the final stage of the roadmap, they aim to make Servo into an 'embeddable web rendering engine.' - -The team is also exploring possibilities in this regard by having some sort of Servo demo running on embedded devices or looking into existing projects such as [Tauri][11]. - -You can go through the [official announcement][12] to learn more about the roadmap. - -### Final Thoughts - -A rust-powered web engine could do wonders and be superior to [Blink][13] or [Gecko][14]-based alternatives. - -Furthermore, another open-source alternative to something we use almost daily shouldn't be a bad thing and will let us have many options. - -_💬 What do you think about Servo's aim to restart things and focus on getting back on the track it was initially designed for?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/mozilla-servo-web-engine/ - -作者:[Sourav Rudra][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/sourav/ -[b]: https://github.com/lkxed -[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/mozilla-web-servo-comeback.png -[2]: https://servo.org/blog/2020/11/17/servo-home/ -[3]: https://www.linuxfoundation.org -[4]: https://news.itsfoss.com/content/images/2023/02/Servo_Roadmap.jpg -[5]: https://servo.org/blog/2023/01/16/servo-2023/ -[6]: https://servo.org/governance/tsc/ -[7]: https://github.com/servo -[8]: https://github.com/servo/webrender -[9]: https://wiki.mozilla.org/Quantum/Stylo -[10]: https://www.w3.org/TR/1998/REC-CSS2-19980512/conform.html -[11]: https://tauri.app -[12]: https://servo.org/blog/2023/02/03/servo-2023-roadmap/ -[13]: https://www.chromium.org/blink/ -[14]: https://developer.mozilla.org/en-US/docs/Glossary/Gecko From 9598df58126ae817b2403c1ad81327e86dae7906 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 8 Feb 2023 08:37:40 +0800 Subject: [PATCH 2747/3123] translated --- ...30202.1 ⭐️ Learn Basic by coding a game.md | 132 ------------------ ...30202.1 ⭐️ Learn Basic by coding a game.md | 132 ++++++++++++++++++ 2 files changed, 132 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md create mode 100644 translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md diff --git a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md deleted file mode 100644 index e3dcaeff4a..0000000000 --- a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "Learn Basic by coding a game" -[#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" -[#]: author: "Moshe Zadka https://opensource.com/users/moshez" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn Basic by coding a game -====== - -Writing the same application in multiple languages is a great way to learn new ways to program. Most programming languages have certain things in common, such as: - -- Variables -- Expressions -- Statements - -These concepts are the basis of most programming languages. Once you understand them, you can start figuring the rest out. - -Programming languages usually share some similarities. Once you know one programming language, you can learn the basics of another by recognizing its differences. - -Practicing with a standard program is a good way of learning a new language. It allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly. - -This program exercises several concepts in programming languages: - -- Variables -- Input -- Output -- Conditional evaluation -- Loops - -It's a great practical experiment to learn a new programming language. This article focuses on Basic. - -### Guess the number in (Bywater) Basic - -There is no real standard for the Basic programming language. Wikipedia says, "BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use." The [BWBasic][1] implementation is available under the GPL. - -You can explore Basic by writing a version of the "guess the number" game. - -### Install Basic on Linux - -In Debian or Ubuntu, you can install Basic with the following: - -``` -$ apt install -y bwbasic -``` - -Download the latest release tarball for Fedora, CentOS, Mageia, and any other Linux distribution. Extract it, make it executable, and then run it from a terminal: - -``` -$ tar --extract --file bwbasic*z - -$ chmod +x bywater - -$ ./bywater -``` - -On Windows, [download the .exe release][2]. - -### Basic code - -Here is my implementation: - -``` -10 value$ = cint(rnd * 100) + 1 -20 input "enter guess"; guess$ -30 guess$ = val(guess$) -40 if guess$ < value$ then print "Too low" -50 if guess$ > value$ then print "Too high" -60 if guess$ = value$ then 80 -70 goto 20 -80 print "That's right" -``` - -Basic programs can be numbered or unnumbered. Usually, it is better to write programs unnumbered, but writing them with numbered lines makes it easier to refer to individual lines. - -By convention, coders write lines as multiples of 10. This approach allows interpolating new lines between existing ones for debugging. Here's an explanation of my method above: - -- Line 10: Computes a random value between 1 and 100 using the built-in **rnd** function, which generates a number between 0 and 1, not including 1. -- Line 20: Asks for a guess and puts the value in the **guess$ scalar** variable. Line 30 converts the value to a numeric one. -- Lines 40 and 50: Give the guesser feedback, depending on the comparison. -- Line 70: Goes to the beginning of the loop. -- Line 60: _Breaks_& the loop by transferring control to line 80. Line 80 is the last line, so the program exits after that. - -### Sample output - -The following is an example of the program after putting it in `program.bas`: - -``` -$ bwbasic program.bas  -Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 -Copyright (c) 1993, Ted A. Campbell -Copyright (c) 1995-1997, Jon B. Volkoff - -enter guess? 50 -Too low -enter guess? 75 -Too low -enter guess? 88 -Too high -enter guess? 80 -Too low -enter guess? 84 -Too low -enter guess? 86 -Too high -enter guess? 85 -That's right -``` - -### Get started - -This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details. - -Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/2/learn-basic-coding-game - -作者:[Moshe Zadka][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/moshez -[b]: https://github.com/lkxed -[1]: https://yeolpishack.net/repos/ChipMaster/bwBASIC -[2]: https://github.com/nerun/bwbasic/releases diff --git a/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md new file mode 100644 index 0000000000..11739520c9 --- /dev/null +++ b/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -0,0 +1,132 @@ +[#]: subject: "Learn Basic by coding a game" +[#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过游戏学习 Basic +====== + +用多种语言编写同一个应用是学习新的编程语言的好方法。大多数编程语言都有某些共同点,如: + +- 变量 +- 表达式 +- 语句 + +这些概念是大多数编程语言的基础。当你理解了它们,你就可以开始琢磨其他的东西了。 + +编程语言通常有一些相似之处。当你了解了一种编程语言,你就可以通过认识其差异来学习另一种语言的基础知识。 + +用标准程序进行练习是学习新语言的一个好方法。它使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。 + +这个程序锻炼了编程语言中的几个概念: + +- 变量 +- 输入 +- 输出 +- 条件判断 +- 循环 + +这是学习一种新的编程语言的很好的实践。本文主要介绍 Basic。 + +### 在(Bywater)Basic 中猜数字 + +对于 Basic 编程语言,没有真正的标准。维基百科说:“BASIC(初学者通用符号指令代码)是一个通用的高级编程语言系列,旨在方便使用”。[BWBasic][1] 的实现是在 GPL 下提供的。 + +你可以通过编写一个“猜数字”游戏来探索 Basic。 + +### 在 Linux 上安装 Basic + +在 Debian 或 Ubuntu 中,你可以用以下方法安装Basic: + +``` +$ apt install -y bwbasic +``` + +下载 Fedora、CentOS、Mageia 和其他任何 Linux 发行版的最新版本 tarball。解压并设置可执行,然后从终端运行它: + +``` +$ tar --extract --file bwbasic*z + +$ chmod +x bywater + +$ ./bywater +``` + +在 Windows 上,[下载 .exe 版本][2]。 + +### Basic 代码 + +下面是我的实现: + +``` +10 value$ = cint(rnd * 100) + 1 +20 input "enter guess"; guess$ +30 guess$ = val(guess$) +40 if guess$ < value$ then print "Too low" +50 if guess$ > value$ then print "Too high" +60 if guess$ = value$ then 80 +70 goto 20 +80 print "That's right" +``` + +Basic 程序可以是编号的,也可以是不编号的。通常情况下,写程序时最好不编号,但用编号的行来写,可以更容易地引用各个行。 + +按照惯例,编码者将行写成 10 的倍数。这种方法允许在现有的行之间插入新的行,以便进行调试。下面是我对上述方法的解释: + +- 10 行:使用内置的 **rnd** 函数计算一个 1 到 100 之间的随机值,该函数生成一个 0 到 1 之间的数字,不包括 1。 +- 20 行:询问一个猜测,并将该值放入 **guess$ 标量**变量。30 行将该值转换为一个数字。 +- 40 行和 50 行:根据比较结果,给猜测者以反馈。 +- 70 行:回到循环的起点。 +- 60 行:通过将控制权转移到 80 行来打破循环。80 行是最后一行,所以程序在这之后退出。 + +### 输出示例 + +下面是将该程序放入 `program.bas` 后的一个例子: + +``` +$ bwbasic program.bas +Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 +Copyright (c) 1993, Ted A. Campbell +Copyright (c) 1995-1997, Jon B. Volkoff + +enter guess? 50 +Too low +enter guess? 75 +Too low +enter guess? 88 +Too high +enter guess? 80 +Too low +enter guess? 84 +Too low +enter guess? 86 +Too high +enter guess? 85 +That's right +``` + +### 开始学习 + +这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。 + +你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/learn-basic-coding-game + +作者:[Moshe Zadka][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/moshez +[b]: https://github.com/lkxed +[1]: https://yeolpishack.net/repos/ChipMaster/bwBASIC +[2]: https://github.com/nerun/bwbasic/releases From 92c8d2c450fe57d17390c0ce731f0c731d937c67 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 8 Feb 2023 08:43:23 +0800 Subject: [PATCH 2748/3123] transalting --- .../tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md index 95afc8c794..016c6daed7 100644 --- a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md +++ b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From cfee1d2b0af2457847e39d0ee8f3c21de1284144 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Wed, 8 Feb 2023 11:39:50 +0800 Subject: [PATCH 2749/3123] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=88=B0translated?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...started with edge computing by programming embedded systems.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210316 Get started with edge computing by programming embedded systems.md (100%) diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/translated/tech/20210316 Get started with edge computing by programming embedded systems.md similarity index 100% rename from sources/tech/20210316 Get started with edge computing by programming embedded systems.md rename to translated/tech/20210316 Get started with edge computing by programming embedded systems.md From f7b9aedfba08da439c90aa15c5f7c745e24c0c9a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 8 Feb 2023 12:27:53 +0800 Subject: [PATCH 2750/3123] RP @geekpi https://linux.cn/article-15520-1.html --- ...️ How to Switch from Debian Stable to Testing.md | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) rename {translated/tech => published}/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md (58%) diff --git a/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/published/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md similarity index 58% rename from translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md rename to published/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md index 9b77bf91d7..651af6f752 100644 --- a/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md +++ b/published/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md @@ -3,42 +3,44 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15520-1.html" -如何从 Debian stable 切换到 testing +如何从 Debian 稳定版切换到测试版 ====== +![][0] + 如果你正在寻找最稳定的 Linux 发行版,当然,Debian 是正确的选择。 特别是如果你打算在服务器上使用它。 但是,在桌面方面,情况就有点不同了。我的意思是,你得到的软件包至少是一年前的,对新时代硬件的支持甚至更糟。 -那么,在这种情况下,你会怎么做呢?好吧,你可以使用 Debian testing。 +那么,在这种情况下,你会怎么做呢?好吧,你可以使用 Debian 测试版Testing。 -但在跳到解释部分之前,让我们简单了解一下 Debian testing。 +但在跳到解释部分之前,让我们简单了解一下 Debian 测试版。 -### 什么是 Debian testing? +### 什么是 Debian 测试版? -Debian 为你提供 3 种不同的 Debian: +Debian 社区为你提供 3 种不同的 Debian: -- Debian stable (你从他们的主页上默认得到的东西)。 -- Debian testing (有**新的软件包**,比 Debian unstable 更少出现故障)。 -- Debian unstable(拥有最新的软件包,是**所有版本中最脆弱的**)。 +- Debian 稳定版Stable(你从他们的主页上默认得到的东西)。 +- Debian 测试版Testing(有**新的软件包**,比 Debian 不稳定版更少出现故障)。 +- Debian 不稳定版Unstable(拥有最新的软件包,是**所有版本中最脆弱的**)。 -因此,Debian testing 可以被认为是稳定性和新软件包之间的一个甜蜜点。 +因此,Debian 测试版可以被认为是稳定性和新软件包之间的一个折中点。 -我已经玩了一段时间的 Debian testing,没有遇到任何问题。 +我已经玩了一段时间的 Debian 测试版,没有遇到任何问题。 -事实上,许多 Debian 用户喜欢测试版而不是稳定版。尽管名字叫测试,但它是相当可用的。 +事实上,许多 Debian 用户喜欢测试版而不是稳定版。尽管名字叫“测试”,但它是相当可用的。 但是,**我还是建议你在虚拟机上进行实验**,尝试用你的主要工具来使用它,如果事情进展顺利,你可以在主系统中应用这些变化。 -### 从 Debian stable 切换到 Debian testing +### 从 Debian 稳定版切换到 Debian 测试版 -**_警告:你不能从 Debian testing 降级到 Debian stable,因为安装脚本和安装工具只是为了用新版本替换旧版本而设计的。_** +**警告:你不能从 Debian 测试版降级到 Debian 稳定版,因为安装脚本和安装工具只是为了用新版本替换旧版本而设计的。** 另外,我建议在你的主机上应用上述步骤之前,[使用 timeshift 创建一个备份][1] 。 @@ -58,7 +60,7 @@ sudo cp /etc/apt/sources.list sources.list.backup #### 步骤 1:编辑 sources.list 文件 -有两种方法可以编辑 `sources.list` 文件。要么你可以用 `testing` 手动改变当前版本的名称,要么你可以[使用 sed 命令][2]来完成你的工作。 +有两种方法可以编辑 `sources.list` 文件。要么你可以用 `testing` 手动改变当前版本的名称,要么你可以 [使用 sed 命令][2] 来完成。 而我要用第二种方法来使整个过程更简单。你只需要使用给定的命令,它就会为你把 `bullseye` 替换成 `testing`: @@ -76,15 +78,15 @@ sudo nano /etc/apt/sources.list ![comment out security sources][3] -如果你像我一样使用 nano,你可以按 `Alt + /` 跳到该行的最后。然后你要添加以下一行: +如果你像我一样使用 `nano`,你可以按 `Alt + /` 跳到该行的最后。然后你要添加以下一行: ``` deb http://security.debian.org testing-security main ``` -![2. add line to keep track of testing in debian][4] +![add line to keep track of testing in debian][4] -然后[保存修改并退出 nano][5] 文本编辑器。 +然后 [保存修改并退出 nano][5] 文本编辑器。 #### 步骤 2:更新仓库并安装新的软件包 @@ -104,13 +106,13 @@ sudo apt upgrade 坐下来,放松一下,因为这将需要一些时间。 -完成后,它将向你展示从 Debian stable 切换到 testing 时的变化列表: +完成后,它将向你展示从 Debian 稳定版切换到测试版时的变化列表: ![packages that are updated when switched to debian testing][7] -如果你愿意,你可以阅读,或者你可以**直接按 q** 继续。 +如果你愿意,你可以阅读,或者你可以**直接按** `q` 继续。 -现在,它会告诉你,你系统上安装的一些库需要重新启动。按 **TAB** 键,它将选择 **OK**,然后按**回车**:。 +现在,它会告诉你,你系统上安装的一些库需要重新启动。按 `TAB` 键,它将选择 “OK”,然后按**回车**:。 ![libraries needs to be restarted after update][8] @@ -124,13 +126,13 @@ sudo apt upgrade sudo apt full-upgrade ``` -现在,重启你的系统,你就会拥有最新的软件包。比如**我进入系统时正在运行 GNOME 43**: +现在,重启你的系统,你就会拥有最新的软件包。比如**我进入系统时我在运行 GNOME 43**: ![running gnome 43 in debian][10] ### 总结 -在本教程中,我解释了如何从 Debian stable 切换到 Debian testing。我希望这对你会有帮助。 +在本教程中,我解释了如何从 Debian 稳定版切换到 Debian 测试版。我希望这对你会有帮助。 如果你遇到任何问题或有任何疑问,请在评论中告诉我。 @@ -141,7 +143,7 @@ via: https://itsfoss.com/switch-debian-stable-testing/ 作者:[Sagar Sharma][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/) 荣誉推出 @@ -149,11 +151,12 @@ via: https://itsfoss.com/switch-debian-stable-testing/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/backup-restore-linux-timeshift/ [2]: https://linuxhandbook.com/sed-command-basics/ -[3]: https://itsfoss.com/wp-content/uploads/2022/11/comment-out-security-sources.gif -[4]: https://itsfoss.com/wp-content/uploads/2022/11/2.-add-line-to-keep-track-of-testing-in-debian.png +[3]: https://itsfoss.com/content/images/wordpress/2022/11/comment-out-security-sources.gif +[4]: https://itsfoss.com/content/images/wordpress/2022/11/2.-add-line-to-keep-track-of-testing-in-debian.png [5]: https://linuxhandbook.com/nano-save-exit/ -[6]: https://itsfoss.com/wp-content/uploads/2022/11/update-repository-in-linux.png -[7]: https://itsfoss.com/wp-content/uploads/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png -[8]: https://itsfoss.com/wp-content/uploads/2022/11/libraries-needs-to-be-restarted-after-update.png -[9]: https://itsfoss.com/wp-content/uploads/2022/11/restart-services-during-package-upgrades-without-asking.png -[10]: https://itsfoss.com/wp-content/uploads/2022/11/running-gnome-43-in-debian.png +[6]: https://itsfoss.com/content/images/wordpress/2022/11/update-repository-in-linux.png +[7]: https://itsfoss.com/content/images/wordpress/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png +[8]: https://itsfoss.com/content/images/wordpress/2022/11/libraries-needs-to-be-restarted-after-update.png +[9]: https://itsfoss.com/content/images/wordpress/2022/11/restart-services-during-package-upgrades-without-asking.png +[10]: https://itsfoss.com/content/images/wordpress/2022/11/running-gnome-43-in-debian.png +[0]: https://img.linux.net.cn/data/attachment/album/202302/08/122659a4919hso9onkbmun.jpg \ No newline at end of file From 9a24501cfa796dfc4cd9ca9c54f3de4e4f156844 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 8 Feb 2023 17:09:40 +0800 Subject: [PATCH 2751/3123] ATRP @wxy https://linux.cn/article-15521-1.html --- ...⭐️ 7 Best Gentoo-Based Linux Distributions.md | 134 +++++++++++++++++ ...⭐️ 7 Best Gentoo-Based Linux Distributions.md | 135 ------------------ 2 files changed, 134 insertions(+), 135 deletions(-) create mode 100644 published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md delete mode 100644 sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md diff --git a/published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md b/published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md new file mode 100644 index 0000000000..903fe0b510 --- /dev/null +++ b/published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md @@ -0,0 +1,134 @@ +[#]: subject: "7 Best Gentoo-Based Linux Distributions" +[#]: via: "https://itsfoss.com/gentoo-based-distros/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15521-1.html" + +7 个最佳的基于 Gentoo Linux 的发行版 +====== + +![][0] + +Gentoo Linux 是 [适合高级用户的最佳 Linux 发行版][1] 之一。如果你想要类似的东西,但又想轻松些,那么基于 Gentoo 的发行版是你的解决方案。 + +Gentoo Linux 以其软件包管理器 [Portage][2] 而闻名,它允许你根据你的要求定制每个软件包,并从头开始构建/配置。这样,你就能以最好的方式来优化你的系统体验。 + +然而,可以理解的是,由于它的学习曲线或设置它所需付出的努力,不是每个人都喜欢使用 Gentoo Linux 😫。 + +所以,在这种情况下,你可以尝试基于 Gentoo Linux 的发行版,可更简单轻松些。 + +让我重点介绍其中一些,它们比裸机版的 Gentoo Linux 要好一些。 + +> 📋 该列表没有特定的排名顺序。 +> +> **另外**,像 Gentoo Linux 一样,基于它的发行版并不是为新用户定制的。所以,你可能应该在尝试它们之前仔细阅读每个项目的文档。 + +### 1、Calculate Linux + +![][3] + +[Calculate Linux][4] 专注于提供**即开即用、用户友好的体验**。 + +它是基于 Gentoo 的,并且仍然向后兼容它。你可以通过 Calculate Linux 得到一个滚动发布的版本,但你也可以根据你的要求选择测试版或稳定版的更新版本。 + +它有桌面、服务器、云和测试等不同版本。选择你需要的那个。 + +### 2、CLIP OS + +![][5] + +[CLIP OS][6] 是一个值得关注的基于 Gentoo 的发行版,旨在提供由法国国家网络安全局(ANSSI)建立的安全体验。 + +该项目有两个版本,其中 v4.0 是一个不再开发的参考版本,你可以研究其源代码,并以你喜欢的方式使用它来构建你的 Gentoo 特有体验。 + +而 v5.0 是一个积极开发的项目,在写这篇文章时正处于测试阶段。它听起来可能与 Qubes OS 相似,但它在各方面都有不同。 + +在你想尝试它之前,你得构建一个 CLIP OS 镜像。 + +### 3、Funtoo + +![Funtoo linux livecd][7] + +[Funtoo][8] 是一个基于 Gentoo 的发行版,由 Gentoo Linux 的创造者(前负责人)开发。 + +支撑 Funtoo 的哲学与 Gentoo 有点不同。因此,社区的方法也不同。 + +你可以下载它的 “next” 版本以获得最新的体验,或者选择它的 1.4 版本以获得长期的稳定性。 + +这两个版本都是滚动发布的发行版,只是一个提供较新的软件包。 + +### 4、LiGurOS + +![ligur os install image building screenshot][9] + +[LiGurOS][10] 是 Gentoo 系列操作系统中的又一个选择。它的目的是提供一个**快速而安全的体验**,同时确保 AMD 和英特尔处理器的最新功能能够很好地工作。 + +你会发现两个不同的版本,一个是稳定版,一个是滚动版。它还可以让你选择你喜欢的服务管理器,其中包括对 openRC 的支持。然而,你得构建安装镜像来使用它。 + +在它的 [GitLab 页面][11] 上了解更多关于这个项目的信息。 + +### 5、Pentoo + +![][12] + +[Pentoo Linux][13] 是 [用于渗透测试的最佳 Linux 发行版][14] 之一。 + +你可以找到 32 位和 64 位系统的可安装镜像。开箱即用,你可以得到定制的工具、定制的内核、XFCE 4 窗口管理器,以及更多。 + +### 6、Redcore Linux + +![record linux screenshot][15] + +[Redcore Linux][16] 是一个**基于 Gentoo Linux 测试分支**的发行版,有一个加固后的配置文件以获得更好的安全性。 + +它是 Kogaion Linux(最初是基于 Sabayon Linux)的继承者,而这两个发行版都不再维护。负责它的原始开发小组的成员之一决定用 Redcore 延续其思想。 + +这个发行版的目的是使 Gentoo Linux 能够很容易地安装在兼容的系统上。 + +### 7、Gentoo Studio + +![gentoo studio screenshot][17] + +[Gentoo Studio][18] 是一个为**实时 Linux 音频制作系统**量身定做的基于 Gentoo Linux 的产品。 + +它打包了各种音频应用程序,并默认允许你有不同的自定义选项。 + +与一些专注于工作室的发行版不同,你也许需要检查它所支持的软件包/实用程序是否符合你的制作要求。 + +💬 名单上你最喜欢的是什么?我们是否错过了你的最爱?请在下面的评论区告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/gentoo-based-distros/ + +作者:[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://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/advanced-linux-distros/ +[2]: https://wiki.gentoo.org/wiki/Portage +[3]: https://itsfoss.com/content/images/2023/02/calculate-linux.jpg +[4]: https://www.calculate-linux.org +[5]: https://itsfoss.com/content/images/2023/02/clip-os-4.jpg +[6]: https://clip-os.org/en/ +[7]: https://itsfoss.com/content/images/2023/02/funtoo-linux.jpg +[8]: https://www.funtoo.org/ +[9]: https://itsfoss.com/content/images/2023/02/gentoo-based-os-liguros.png +[10]: https://liguros.gitlab.io +[11]: https://gitlab.com/liguros +[12]: https://itsfoss.com/content/images/2023/02/pentoo-linux.jpg +[13]: https://www.pentoo.ch +[14]: https://itsfoss.com/linux-hacking-penetration-testing/ +[15]: https://itsfoss.com/content/images/2023/02/redcore.jpg +[16]: https://redcorelinux.org/#hero +[17]: https://itsfoss.com/content/images/2023/02/gentoo-studio.jpg +[18]: https://gentoostudio.org +[0]: https://img.linux.net.cn/data/attachment/album/202302/08/170807alkcjhljv6veev4h.jpg \ No newline at end of file diff --git a/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md b/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md deleted file mode 100644 index 68aae5329a..0000000000 --- a/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md +++ /dev/null @@ -1,135 +0,0 @@ -[#]: subject: "7 Best Gentoo-Based Linux Distributions" -[#]: via: "https://itsfoss.com/gentoo-based-distros/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 Best Gentoo-Based Linux Distributions -====== - -Gentoo Linux is one of the [best Linux distributions for advanced users][1]. Want something similar but maybe easier? Gentoo-based distros are your solution. - -Gentoo Linux is famous for its package manager, [Portage][2], which allows you to customize every package per your requirements and build/configure things from the ground up. This way, you get to optimize your system experience in the best possible way. - -However, it is understandable that not everyone prefers using Gentoo Linux because of its learning curve or the effort required to set it up😫 - -So, in that case, you can try Gentoo-based Linux distributions that make things easier. - -Let me highlight some options that do a few things better than having Gentoo Linux barebones. - -📋 - -The list is in no particular order of ranking. - -**Also** - -, like Gentoo Linux, the distros based on it are not tailored for new users. So, you might want to read the documentation of each project thoroughly before trying them out. - -### 1. Calculate Linux - -![calculate linux screenshot with an abstract painting background of a scenary][3] - -[Calculate Linux][4] focuses on providing **a user-friendly experience out-of-the-box**. - -It is based on Gentoo and still backward compatible with it. You get a rolling-release distribution with Calculate Linux, but you can also choose between testing or stable updates per your requirements. - -There are different editions of desktop, server, cloud, and testing. Pick the one you need. - -### 2. CLIP OS - -![][5] - -[CLIP OS][6] is an interesting Gentoo-based distribution that aims to provide a secure experience built by the **National Cybersecurity Agency of France (ANSSI)**. - -There are two versions of the project where v4.0 is a non-working reference where you can explore the source code and use it however you like for building your Gentoo-powered experience. - -And v5.0 is an actively developed project in the beta phase when writing this. It may sound similar to Qubes OS, but it differs in various ways. - -You will have to build an image CLIP OS before you want to try it. - -### 3. Funtoo - -![funtoo linux livecd][7] - -[Funtoo][8] is a Gentoo-based distro by the **creator (former lead) of Gentoo Linux**. - -The philosophy that powers Funtoo is a bit different than Gentoo. Hence, the community approach differs. - -You can download its "next" edition release to get the latest experience or opt for its **1.4-release** for long-term stability. - -Both the editions are rolling-release distros, one offering newer packages. - -### 4. LiGurOS - -![ligur os install image building screenshot][9] - -[LiGurOS][10] is yet another option in the Gentoo family of operating systems. It aims to provide a **fast and secure experience** while ensuring the latest features of AMD and Intel processors work well. - -You will find two different releases, one stable and a rolling. It also gives you the choice of your favorite services manager, supporting openRC as one of them. However, you will have to build the install image to use it. - -Explore more about the project on its [GitLab page][11]. - -### 5. Pentoo - -![][12] - -[Pentoo Linux][13] is one of the [best Linux distributions for penetration testing][14]. - -You can find installable images for both 32-bit and 64-bit systems. Out of the box, you get customized tools, a customized kernel, XFCE 4 window manager, and more. - -### 6. Redcore Linux - -![record linux screenshot][15] - -[Redcore Linux][16] is a distribution **based on the Gentoo Linux testing branch**, with a hardened profile for better security. - -It is a successor of Kogaion Linux (which was initially based on Sabayon Linux), none of which is maintained anymore. One of the members of the original development group responsible for it decided to continue the idea with Redcore. - -This distribution aims to make it easy to install Gentoo Linux on a compatible system easily. - -### 7. Gentoo Studio - -![gentoo studio screenshot][17] - -[Gentoo Studio][18] is a tailored offering for **real-time Linux audio production systems** based on Gentoo Linux. - -It packs in various audio applications and allows you different customization options by default. - -Unlike some studio-focused distributions, you may want to check the packages/utilities it supports out of the box for your production requirements. - -💬_What is your favorite on the list? Did we miss any of your favorites? Let us know in the comments section below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/gentoo-based-distros/ - -作者:[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/advanced-linux-distros/ -[2]: https://wiki.gentoo.org/wiki/Portage -[3]: https://itsfoss.com/content/images/2023/02/calculate-linux.jpg -[4]: https://www.calculate-linux.org -[5]: https://itsfoss.com/content/images/2023/02/clip-os-4.jpg -[6]: https://clip-os.org/en/ -[7]: https://itsfoss.com/content/images/2023/02/funtoo-linux.jpg -[8]: https://www.funtoo.org/ -[9]: https://itsfoss.com/content/images/2023/02/gentoo-based-os-liguros.png -[10]: https://liguros.gitlab.io -[11]: https://gitlab.com/liguros -[12]: https://itsfoss.com/content/images/2023/02/pentoo-linux.jpg -[13]: https://www.pentoo.ch -[14]: https://itsfoss.com/linux-hacking-penetration-testing/ -[15]: https://itsfoss.com/content/images/2023/02/redcore.jpg -[16]: https://redcorelinux.org/#hero -[17]: https://itsfoss.com/content/images/2023/02/gentoo-studio.jpg -[18]: https://gentoostudio.org From e735d12a30c784ebb31273cfeb3aa413699f195c Mon Sep 17 00:00:00 2001 From: insidentally Date: Wed, 8 Feb 2023 18:35:22 +0800 Subject: [PATCH 2752/3123] =?UTF-8?q?Update=2020230117.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20zip=20Command=20in=20Linu?= =?UTF-8?q?x=20Using=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit translating by Chao-zhi --- ...230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md index e87ffac5c2..048a4bf484 100644 --- a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md +++ b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -168,7 +168,7 @@ via: https://www.debugpoint.com/zip-command-linux-examples/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 87f68549cf527ba3b19f984554c63a2858eb2850 Mon Sep 17 00:00:00 2001 From: insidentally Date: Wed, 8 Feb 2023 19:59:21 +0800 Subject: [PATCH 2753/3123] =?UTF-8?q?Update=20and=20rename=20sources/tech/?= =?UTF-8?q?20230117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20zip?= =?UTF-8?q?=20Command=20in=20Linux=20Using=20Examples.md=20to=20translated?= =?UTF-8?q?/tech/20230117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn?= =?UTF-8?q?=20zip=20Command=20in=20Linux=20Using=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit translated --- ...️ Learn zip Command in Linux Using Examples.md | 181 ----------------- ...️ Learn zip Command in Linux Using Examples.md | 183 ++++++++++++++++++ 2 files changed, 183 insertions(+), 181 deletions(-) delete mode 100644 sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md create mode 100644 translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md diff --git a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md deleted file mode 100644 index 048a4bf484..0000000000 --- a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md +++ /dev/null @@ -1,181 +0,0 @@ -[#]: subject: "Learn zip Command in Linux Using Examples" -[#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn zip Command in Linux Using Examples -====== - -**Here’s a beginner’s guide on understanding the zip command in Linux with a few examples.** - -![][1] - -A zip file is a compressed archive containing one or more files. It is widely used as a lossless data compression technique. Thanks to compression, it takes less disk space and requires fewer data to transfer over computer networks. - -These compressed files can be extracted easily in Linux, Windows and macOS. Various software is available that supports zip file compression and also offers to extract them. - -Since it is popular, almost all operating systems have this built-in. - -In this tutorial, we will talk about several terminal-based methods to zip a file in Linux. - -### Zip Command in Linux: Examples - -#### Syntax - -The program name you need to use in Linux to zip a file is `zip`. Here’s the basic syntax. - -``` -zip [compress file name] file1 file2 file3 -``` - -And here’s the official syntax. - -``` -zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] -``` - -Ideally, it should be installed in all the major Linux distributions. If not, use the following commands to install it. - -#### Install zip on Debian, Ubuntu and related distributions - -``` -sudo apt install zip -``` - -#### Install in Fedora, RHEL-based systems - -``` -sudo dnf install zip -``` - -#### Arch Linux - -``` -pacman -S zip -``` - -Let’s take a look at some examples. - -#### How to zip files and folders - -I have the following three files in my test directory. They are file1.txt, file2.txt and file3.txt. If I want to compress three files using zip and create a zip myfiles.zip, the following command is sufficient. - -``` -zip myfiles.zip file1.txt file2.txt file3.mp3 -``` - -Output: - -``` -adding: file1.txt (stored 0%)adding: file2.txt (stored 0%)adding: file3.mp3 (deflated 13%) -``` - -![Output of Basic zip command in Linux][2] - -A few points you should remember here. - -- When creating a zip file, you should have the modify access to the current directory. -- The zip file format doesn’t contain the permissions, i.e. read(4), write(2), and execute(1). So, the user who creates it becomes the owner of the file. -- If you want to use zip with permission, try the tar command (to be explained in a later tutorial). -- In the above output, the zip command shows the file names being added to the archive and the compression method. -- Specifying the .zip file name extension in the target file name is not mandatory. If you omit .zip, zip will add the .zip at the end. - -When you have hundreds or thousands of files in operation, it’s a good idea to suppress the output in the terminal. You can use -q command to suppress the output in the zip command. - -``` -zip -q myfiles.zip file1.txt file2.txt file3.txt -``` - -#### Recursive compression of subfolders - -The `-r` option of zip command enables you to include subdirectories and their contents. This option recursively traverses until the last child of a directory structure and adds all of them to the zip file. - -The following command creates a compressed file with all the contents and subdirectories inside my_folder. - -``` -zip -r myfolder.zip my_folder -``` - -You can also use the wild card characters (*) to include specific types of files in your zip file. - -``` -zip -0 my_movies.zip *.mp4 -``` - -#### Adding a mix of files and directories - -With all the above options, the zip command allows you to specify files and directories together as arguments. - -``` -zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 -``` - -### Compression algorithms - -The default output of the zip file contains two distinct words, i.e. deflate and store. The default compression method used by zip is deflate. If it successfully compresses the file, then the output shows deflate. And when it can’t compress a file, it simply stores them inside the .zip file as is. Those file outputs show stored. - -There any many compression algorithm present. One of them is the bzip2 compression method which is supported by zip command in Linux. You can specify the compression algo as a command option to use. Use the option -Z followed by the algorithm name, as shown below. - -``` -zip -r -Z bzip2 myfolder.zip my_folder -``` - -#### Compress levels - -The zip command also allows you to specify the compression level. The compression level is how much you want the zip optimized to reduce the package size. It’s a numeric value range from 0 to 9. A value of 9 compression level is the highest compression. The default value is 6. - -Remember, if you are using zip to compress thousands of files of varying sizes, it might use higher system resources and take time. So, if you use it in programs, or shell scripts for many files, follow proper programming standards. - -``` -zip -9 -r myfolder.zip my_folder -``` - -#### Password protect a zip file - -You can also password protect a zip file using `-e` option like the one below. - -``` -zip -e -r myfolder.zip my_folder -``` - -It will ask for the password after you run the command. - -Caution: Don’t use the zip command to password-protect a zip file. The encryption algorithm of the zip is PKZIP using a stream cipher. And it can be cracked easily. If you want to protect your file, use 7-Zip or other advanced tools. - -#### Split size zip files - -Many applications, servers, and file shares may contain restrictions of a fixed-size file upload. For example, you have a 10GB file, but the service allows only 1GB per file. Using the -s option of the zip, you can compress and split them into chunks for upload. - -``` -zip -s 1g -r myfolder.zip my_folder -``` - -### Wrapping Up - -You learned some basics of the zip command. It is useful for most local cases where you need to take quick backups by compressing them on the fly. However, for more advanced options, you should use 7-Zip or other commands, which I will share in the next few articles. - -In the meantime, you can learn more in the [zip manual][3]. - -_This article is part of the [Linux command][4] learning series._ - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/zip-command-linux-examples/ - -作者:[Arindam][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://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/zip-file-head.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/Output-of-Basic-zip-command-in-Linux.jpg -[3]: https://linux.die.net/man/1/zip -[4]: https://www.debugpoint.com/category/linux-commands diff --git a/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md new file mode 100644 index 0000000000..20ac21e44f --- /dev/null +++ b/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -0,0 +1,183 @@ +[#]: subject: "Learn zip Command in Linux Using Examples" +[#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "Chao-zhi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过实例学习Linux中的zip命令 +====== + +**这里是关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。** + +![][1] + +zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。 + +这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩文件的软件,也提供提取它们的功能。 + +由于它很流行,几乎所有的操作系统都内置了这个功能。 + +在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。 + +### Linux 中的 Zip 命令,例子: + +#### 语法 + +在 Linux 中,你需要使用的压缩文件的程序名称是`zip`。下面是基本的语法。 + +``` sh +zip [压缩文件名] file1 file2 file3 +``` + +这里是官方的语法。 + +``` sh +zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] +``` + +理想情况下,zip 命令应该被安装在所有主要的 Linux 发行版中。如果没有,使用下面的命令来安装它。 + +#### 在 Debian, Ubuntu and 相关发行版上安装 + +``` +sudo apt install zip +``` + +#### 在 Fedora, 基于 RHEL 的系统上安装 + +``` +sudo dnf install zip +``` + +#### 在 Arch Linux 上安装 + +``` +pacman -S zip +``` + +让我们继续看一些例子 + +#### 如何压缩文件和文件夹 + +我的测试目录中有以下三个文件。它们是 file1.txt、file2.txt 和 file3.txt。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip 的压缩包,用下面的命令就可以了。 + +``` +zip myfiles.zip file1.txt file2.txt file3.mp3 +``` + +输出。 + +``` +adding: file1.txt (stored 0%) +adding: file2.txt (stored 0%) +adding: file3.mp3 (deflated 13%) +``` + +![Linux 中基本压缩命令的输出][2] + +这里你应该记住几个要点。 + +- 当创建一个 zip 文件时,你应该有对当前目录的修改权限。 +- zip 文件格式不包含权限,即读(4),写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。 +- 如果你想使用有权限的 zip,可以尝试使用 `tar` 命令(将在后面的教程中解释)。 +- 在上面的输出中,`zip` 命令显示了被添加到存档中的文件名和压缩方法。 +- 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,`zip` 会在最后加上 .zip。 + +当你有成百上千的文件在运行时,可以在终端中减少输出。你可以使用 `-q` 参数来抑制 `zip` 命令中的输出。 + +``` +zip -q myfiles.zip file1.txt file2.txt file3.txt +``` + +#### 递归压缩子文件夹 + +`zip` 命令的 `-r` 选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。 + +下面的命令创建了一个包含 my_folder 内所有内容和子目录的压缩文件。 + +``` +zip -r myfolder.zip my_folder +``` + +你也可以使用通配符(*)在你的压缩文件中包含特定类型的文件。 + +``` +zip -0 my_movies.zip *.mp4 +``` + +#### 混合添加文件和目录到压缩文件 + +有了以上所有的选项,`zip` 命令允许你把文件和目录一起作为参数指定。 + +``` +zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 +``` + +### 压缩算法 + +zip 压缩的默认输出包含两个不同的词,即 deflate 和 store。zip 默认使用的压缩方法是 deflate。如果它成功地压缩了文件,那么输出显示 deflate。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 store。 + +目前有许多压缩算法。其中一种是 bzip2 压缩法,它在 Linux 中被 `zip` 命令所支持。你可以指定压缩算法作为一个命令选项来使用。使用选项 `-Z`,后面跟上算法名称,如下所示。 + +``` +zip -r -Z bzip2 myfolder.zip my_folder +``` + +#### 压缩级别 + +`zip` 命令还允许你指定压缩级别。压缩级别是指你想让 zip 优化多少来减少包的大小。它是一个从 0 到 9 的数值范围。压缩级别为 9 的值是最高的压缩。默认值是 6。 + +记住,如果你用 zip 压缩成千上万个大小不一的文件,它可能会占用较多的系统资源,并花费大量的时间。所以,如果你在程序中使用它,或者用 shell 脚本处理大量的文件,请遵循正确的编程标准。 + +``` +zip -9 -r myfolder.zip my_folder +``` + +#### 用密码保护一个压缩文件 + +你也可以用下面的 `-e` 选项对压缩文件进行密码保护。 + +``` +zip -e -r myfolder.zip my_folder +``` + +运行该命令后,它将要求输入密码。 + +> 注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流密码的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。 + +#### 分割较大的压缩文件 + +许多应用程序、服务器和文件共享可能包含固定大小的文件上传限制。例如,你有一个 10GB 的文件,但服务只允许每个文件 1GB。使用 `zip` 的 `-s` 选项,你可以将其压缩并分割成几块进行上传。 + +``` +zip -s 1g -r myfolder.zip my_folder +``` + +### 总结 + +你学到了一些 `zip` 命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。 + +同时,你可以在 [zip 手册][3]中了解更多。 + +_这篇文章是 [Linux 命令][4]学习系列的一部分。_ + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/zip-command-linux-examples/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/zip-file-head.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/Output-of-Basic-zip-command-in-Linux.jpg +[3]: https://linux.die.net/man/1/zip +[4]: https://www.debugpoint.com/category/linux-commands From 6385aec5d88f5adf9a3c43cc128494fe266e46ae Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 8 Feb 2023 23:38:55 +0800 Subject: [PATCH 2754/3123] ATRP @wxy https://linux.cn/article-15523-1.html --- ... 5 Linux Distros for Visually Impaired People.md | 143 ++++++++++++++++++ ... 5 Linux Distros for Visually Impaired People.md | 140 ----------------- 2 files changed, 143 insertions(+), 140 deletions(-) create mode 100644 published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md delete mode 100644 sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md diff --git a/published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md b/published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md new file mode 100644 index 0000000000..2c63bda89d --- /dev/null +++ b/published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md @@ -0,0 +1,143 @@ +[#]: subject: "5 Linux Distros for Visually Impaired People" +[#]: via: "https://itsfoss.com/visual-impaired-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15523-1.html" + +5 个适合视力障碍者的 Linux 发行版 +====== + +![][0] + +> 有哪些最适合视障用户的 Linux 发行版?让我们一起来看看。 + +如果有人视力障碍或失明,他们可能会依赖声音提示或其他交互方式(如盲文)来阅读和交流。 + +他们怎样才能使用 Linux 发行版? + +嗯,一般来说,无障碍软件有助于使之成为可能。 + +**但是,有哪些 Linux 发行版是注重无障碍性的?哪些是为视障用户量身定做的最佳发行版呢?** + +我在这里重点列出一些最好的选择。在此之前,在为视障用户尝试/推荐 Linux 之前,有一些必要的要点需要注意。 + +### Linux 是视障用户的理想选择吗? + +**不幸的是,并不太是**。 + +与 Windows 和 macOS 相比,Linux 上可用的无障碍软件/选择比较有限。 + +即使 [红帽公司去年聘请了一位盲人软件工程师][1] 来帮助改进,但这是一项正在进行的工作,可能体验还不够顺滑。 + +我看到一个一年前的 [Reddit 讨论][2],一个盲人用户分享了他在 Linux 上的无障碍状态的体验,听起来可能并不太顺利。 + +它**仍然是可用的,这取决于你想做什么**和你选择的发行版。 + +一些值得注意的地方包括: + +- 不是每个桌面环境都提供良好的无障碍功能。你可以探索和实验,但 GNOME 和 KDE 是可以接受的选择。 +- Linux 发行版中关于无障碍的文档可能并不全面。所以,你可能想在开始之前进行探索和研究。这里有 [GNOME][3] 和 [KDE][4] 文档的链接。 +- 你可以随时安装 [流行的 Linux 发行版][5],如 Ubuntu,并通过屏幕阅读器工具进行设置,以开始使用。 + +然而,有些发行版会给你带来开箱即用的良好体验,可能值得尝试。 + +下面是你的最佳选择: + +> 📋 该列表没有特定的排名顺序。 + +### 1、Accessible-Coconut(AC) + +![Accessible-Coconut 的主屏幕截图,带有蓝色壁纸和椰子图标][6] + +[Accessible-Coconut][7] 是一个基于 Ubuntu MATE 的、由社区开发的 Linux 操作系统。 + +安装后,你会发现使视力障碍者能够获得 Linux 体验的所有必要的工具或软件。 + +其中包括一个支持语音合成和盲文的屏幕阅读器、屏幕放大镜、控制台屏幕阅读器、电子书扬声器、一个支持 Daisy 格式的播放器等等。 + +其内置的软件以更好的无障碍性而闻名。所以,你可能不需要在安装操作系统后寻找替代品。 + +> **[Accessible Coconut][7]** + +### 2、Vojtux + +Vojtux 是一个基于 Fedora 的非官方发行版,由一位盲人软件工程师创建。 + +对于大多数用户来说,这是一个令人兴奋的选择,因为创建者知道视障用户需要什么。默认情况下,你在登录时就开始使用 Orca 屏幕阅读器,并启用 Qt 无障碍功能,这是一个为额外的语音合成和其他软件定制的库。 + +另外,有趣的是,你会发现一个可以快速打开和关闭显示器的脚本。 + +然而,你必须在安装前构建 立付Live 介质 ISO。因此,如果你没有这方面的技术知识,你可以问问周围的朋友,他们会愿意为你构建它。 + +你可以在它的 [GitHub 页面][8] 或其创造者的 [相关博文][9] 上了解更多信息。 + +> **[Vojtux GitHub][8]** + +### 3、Trisquel + +![Trisquel 的屏幕截图,其墙纸显示为绿色的山和太空][10] + +Trisquel 是一个基于 Ubuntu 的 Linux 发行版,采用 Linux-libre 内核。它是为家庭、办公室和教育机构定制的。 + +与其他一些选择不同,Trisquel 在默认情况下注重无障碍功能,比如启用了 Orca 屏幕阅读器。你可以在他们的网站上找到音频指南和支持屏幕阅读器的手册。 + +前往其 [官方网站][11],探索更多关于它的信息,并下载 ISO。 + +> **[Trisquel][11]** + +### 4、Ubuntu MATE + +![Ubuntu MATE 截图,欢迎屏幕提供了各种选项,以获得良好的开机体验][12] + +如果你想使用主流发行版,[Ubuntu MATE][13] 将很适合喜欢传统桌面用户体验的用户。 + +你可以找到预装的 Orca 屏幕阅读器和其他工具,给你一个良好的无障碍体验。 + +> **[Ubuntu MATE][13]** + +### 5、Fedora Workstation + +![Fedora 37 屏幕截图,带有绿草、岩石冒充的建筑的油漆风格的壁纸,中间有一条河][14] + +[Fedora Workstation][15] 是想要体验 GNOME 桌面环境的用户的最佳选择。 + +你会发现它安装了最新的 GNOME 桌面。因此,你很可能最终在 Fedora 上获得无障碍体验。 + +不要忘记,众所周知,Fedora 用户社区热衷于将无障碍性放在首位,并尽快修复任何报告的问题。 + +> **[Fedora Workstation][15]** + +💬 你的选择是什么?我们是否错过了任何其他选择?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/visual-impaired-linux/ + +作者:[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://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/red-hat-accessibility-gnome/ +[2]: https://www.reddit.com/r/linux/comments/s3vvot/state_of_accessibility_on_linux_perspective_of_a/ +[3]: https://wiki.gnome.org/Accessibility +[4]: https://community.kde.org/Accessibility +[5]: https://itsfoss.com/best-linux-distributions/ +[6]: https://itsfoss.com/content/images/2023/01/ac-distro-screenshot.jpg +[7]: https://zendalona.com/accessible-coconut/ +[8]: https://github.com/vojtapolasek/vojtux +[9]: https://opensource.com/article/22/9/linux-visually-impaired-users +[10]: https://itsfoss.com/content/images/2023/01/trisquel-distro-screenshot.jpg +[11]: https://trisquel.info/en +[12]: https://itsfoss.com/content/images/2023/01/ubuntu-mate-screenshot.jpg +[13]: https://ubuntu-mate.org +[14]: https://itsfoss.com/content/images/2023/01/image-31.png +[15]: https://getfedora.org/en/workstation/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/08/233736xssinjunsujjcacs.jpg \ No newline at end of file diff --git a/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md b/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md deleted file mode 100644 index 92c1b6245c..0000000000 --- a/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "5 Linux Distros for Visually Impaired People" -[#]: via: "https://itsfoss.com/visual-impaired-linux/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 Linux Distros for Visually Impaired People -====== - -If a user is visually impaired or blind, they may rely on sound prompts or other interactions (like Braille) to read and communicate. - -How can they use a Linux distribution? - -Well, in general, accessibility software help make it possible. - -**But****what are the Linux distributions that focus on accessibility? What are the best distros tailored for visually impaired users?** - -I focus on listing some of the best options here. Before that, there are some essential pointers to note before you try/recommend Linux for visually challenged users. - -### Is Linux Ideal for Visually Challenged Users? - -**Unfortunately, not entirely.** - -Compared to Windows and macOS, the accessibility software/options available are limited on Linux. - -Even though [Red Hat hired a blind software engineer][1] last year to help improve things, it is a work in progress and may not be a seamless experience. - -I came across a year-old [Reddit thread][2] where a blind user shares his experience on the state of accessibility on Linux, and it may not sound good. - -It is **still usable depending on what you want to do** and which distro you choose. - -Some of the points worth noting include: - -- Not every desktop environment offers good accessibility options. You can explore and experiment, but GNOME and KDE are acceptable options. -- The documentation for accessibility in Linux distributions may not be comprehensive. So, you might want to explore and research before getting started. Here are the links to [GNOME][3] and [KDE][4] documentation. -- You can always install [popular Linux distributions][5] like Ubuntu and set it up with screen reader tools to get started. - -However, some distributions might give you a good experience out of the box and may be worth trying. - -Here are your best picks: - -📋 - -The list is in no particular order of ranking. - -### 1. Accessible-Coconut (AC) - -![accessible coconut homescreen screenshot with a blue wallpaper and coconut icon][6] - -[Accessible-Coconut][7] is a community-driven Linux operating system based on Ubuntu MATE. - -Out of the box, you will find all the essential tools or software needed to make the Linux experience accessible for people with visual impairment. - -Some of those include a **screen reader** that supports speech synthesis and Braille, **screen magnification**, a screen reader for the console, an **ebook speaker**, a daisy player, and more. - -The software that comes baked in is known for better accessibility. So, you may not need to search for alternatives after installing the operating system. - -[Accessible Coconut][7] - -### 2. Vojtux - -Vojtux is an unofficial Fedora-based distribution created by a blind software engineer. - -It is an exciting option for most users because the creator knows what visually impaired users need. By default, you will have the Orca screen reader starting at login, with Qt accessibility enabled, a custom repository for extra voice synthesis and other software. - -Also, interestingly, you will find a script that can turn your monitor on and off quickly. - -However, you must build the live media ISO before installing it. So, if you do not have technical knowledge for that, you may ask around your friends who would be willing to set it up for you. - -You can learn more about it on its [GitHub page][8] or a [blog post about it][9] by its creator. - -[Vojtux GitHub][8] - -### 3. Trisquel - -![trisquel homescreen screenshot with a wallpaper displaying green mountain and a space sky][10] - -Trisquel is a Ubuntu-based Linux distribution with a Linux-libre kernel. It is tailored for home, office, and education institutions. - -Unlike some other options, Trisquel focuses on accessibility features by default, like having the Orca screen reader enabled. You can find audio guides on their website and screen-reader-friendly manuals. - -Head to its [official website][11] to explore more about it and download the ISO. - -[Trisquel][11] - -### 4. Ubuntu MATE - -![ubuntu mate screenshot with the welcome screen providing various options for a good onboarding experience][12] - -If you want to go with mainstream distributions, [Ubuntu MATE][13] will be a good fit for users who like a traditional desktop approach to user experience. - -You can find the Orca screen reader pre-installed and other tools that give you a good accessibility experience. - -[Ubuntu MATE][13] - -### 5. Fedora Workstation - -![fedora 37 screenshot with paint-style wallpaper with green grass, rocks posing as buildings, with a river in the middle][14] - -[Fedora Workstation][15] is the best bet for users who want to experience the best of the GNOME desktop environment. - -You will find the latest GNOME desktop installed. So, it is likely that you will end up having an accessible experience on Fedora. - -Not to forget, the community of Fedora users is known to be passionate about keeping accessibility at the forefront and fixing any issues reported as soon as possible. - -[Fedora Workstation][15] - -💬_What would be your pick? Did we miss any other options? Do share your thoughts in the comments below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/visual-impaired-linux/ - -作者:[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://news.itsfoss.com/red-hat-accessibility-gnome/ -[2]: https://www.reddit.com/r/linux/comments/s3vvot/state_of_accessibility_on_linux_perspective_of_a/ -[3]: https://wiki.gnome.org/Accessibility -[4]: https://community.kde.org/Accessibility -[5]: https://itsfoss.com/best-linux-distributions/ -[6]: https://itsfoss.com/content/images/2023/01/ac-distro-screenshot.jpg -[7]: https://zendalona.com/accessible-coconut/ -[8]: https://github.com/vojtapolasek/vojtux -[9]: https://opensource.com/article/22/9/linux-visually-impaired-users -[10]: https://itsfoss.com/content/images/2023/01/trisquel-distro-screenshot.jpg -[11]: https://trisquel.info/en -[12]: https://itsfoss.com/content/images/2023/01/ubuntu-mate-screenshot.jpg -[13]: https://ubuntu-mate.org -[14]: https://itsfoss.com/content/images/2023/01/image-31.png -[15]: https://getfedora.org/en/workstation/ From 5f9ece23c2e5d01a62a6cb1d33e12d9d98a37f0e Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 9 Feb 2023 08:41:11 +0800 Subject: [PATCH 2755/3123] translating --- ...Source Drawing App for Notes and Annotation.md | 108 ------------------ ...Source Drawing App for Notes and Annotation.md | 105 +++++++++++++++++ 2 files changed, 105 insertions(+), 108 deletions(-) delete mode 100644 sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md create mode 100644 translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md diff --git a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md deleted file mode 100644 index 894faa507e..0000000000 --- a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "Rnote: An Open-Source Drawing App for Notes and Annotation" -[#]: via: "https://itsfoss.com/rnote/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Rnote: An Open-Source Drawing App for Notes and Annotation -====== - -**_Brief:_**_Rnote allows you to take notes, draw, and annotate documents. Sounds like you need it? Let us explore more._ - -We have featured numerous note-taking applications, but options that support handwritten notes are a handful. - -Rnote is one such helpful application that lets you take handwritten notes and annotate documents/pictures. - -Of course, you need a drawing tablet or a setup with a stylus to use Rnote. - -### Rnote: Vector-based Drawing App for Sketching and Handwritten Notes - -![rnote screenshot][1] - -Rnote is an impressive open-source app written in Rust and GTK 4. - -It provides an adaptive UI focused on stylus input. It looks pretty minimal and yet offers some of the essential features that one would need for handwritten notes. - -Let me highlight some of the things it can do. - -**Recommended Read**: [**Best Note-Taking Apps for Linux Users**][2] - -### Features of Rnote - -![rnote settings][3] - -[Rnote][4] is a simple yet capable sketching/note-taking app. Some features include: - -- Supports pressure-sensitive stylus input with various stroke styles -- Add different shapes with the shape tool -- A selection tool to move, rotate, resize, and modify the content you add/draw. -- Document expand layouts -- Customizable page format -- Customizable background colors, patterns, and sizes -- Pen sound support for feedback -- Reconfigurable stylus button shortcuts -- Integrated workspace browser for quick media file access -- Drag and drop support -- Clipboard support -- Common page formats supported (A6, A5, US letter, etc) -- Import from PDF, bitmap, and SVG files. -- Native .rnote file to save/load documents. -- Export to SVG and PDF supported -- Autosave functionality -- Dark/Light mode - -The developers note that the native file format used by Rnote may not be stable enough for compatibility between newer versions of the application. - -So, it is best to export your work when you are done before upgrading Rnote to its latest version. - -In addition to its features, you get a good user experience with the available options. It does not feel overwhelming, and you can access all the tools quickly. - -Some customization is available to hide the scrollbars, change the cursor, and tweak the drawing cursor. - -You can also adjust the time interval for autosave to kick in, which should come in handy for various use cases. - -![rnote screenshot 1][5] - -### Installing Rnote on Linux - -Rnote is available as a Flatpak on [Flathub][6]. So, as long as you have [Flatpak enabled on your system][7], you can install it on any Linux distribution. - -You can find it in your software center (if Flatpak integration has been enabled) or type in the following command to get it installed: - -``` -flatpak install flathub com.github.flxzt.rnote -``` - -To explore more about Rnote, head to its [GitHub page][8]. - -### Wrapping Up - -Rnote is actively developed and making good progress with its feature set. If you like Rnote, you might want to look at [Xournal++][9], another app that enables you to take handwritten notes. - -_Do you know of any other exciting apps like Rnote? What do you think of Rnote? Share your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/rnote/ - -作者:[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/wp-content/uploads/2022/11/rnote-screenshot.png -[2]: https://itsfoss.com/note-taking-apps-linux/ -[3]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-settings.png -[4]: https://rnote.flxzt.net -[5]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-screenshot-1.png -[6]: https://flathub.org/apps/details/com.github.flxzt.rnote -[7]: https://itsfoss.com/flatpak-guide/ -[8]: https://github.com/flxzt/rnote -[9]: https://xournalpp.github.io diff --git a/translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md new file mode 100644 index 0000000000..45e1e9f8c0 --- /dev/null +++ b/translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md @@ -0,0 +1,105 @@ +[#]: subject: "Rnote: An Open-Source Drawing App for Notes and Annotation" +[#]: via: "https://itsfoss.com/rnote/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Rnote:一个用于笔记和注释的开源绘图应用 +====== + +**_简介:_**_Rnote 允许你做笔记、绘图和注释文件。听起来你需要它?让我们来探讨一下。_ + +我们已经介绍了许多记笔记的应用,但支持手写笔记的选项却屈指可数。 + +Rnote 就是这样一个有用的应用,它可以让你做手写笔记并对文件/图片进行注释。 + +当然,你需要一个绘图板或一个带有手写笔的设置来使用 Rnote。 + +### Rnote: 基于矢量的绘图应用,用于绘制草图和手写笔记 + +![rnote screenshot][1] + +Rnote 是一个用 Rust 和 GTK 4 编写的令人印象深刻的开源应用。 + +它提供了一个专注于手写笔输入的自适应用户界面。它看起来很简约,但却提供了手写笔记所需的一些基本功能。 + +让我强调一下它能做的一些事情。 + +### Rnote的特点 + +![rnote settings][3] + +[Rnote][4] 是一个简单但有很多功能的绘图/记事应用程。一些功能包括: + +- 支持具有各种笔画风格的压敏笔输入 +- 用形状工具添加不同的形状 +- 一个选择工具,可以移动、旋转、调整大小和修改你添加/绘制的内容 +- 文档扩展布局 +- 可定制的页面格式 +- 可定制的背景颜色、图案和尺寸 +- 支持笔的反馈声音 +- 可重新配置的手写笔按钮快捷键 +- 集成的工作区浏览器可快速访问媒体文件 +- 支持拖放 +- 支持剪贴板 +- 支持常见的页面格式(A6、A5、US letter 等)。 +- 从 PDF、位图和 SVG 文件导入。 +- 原生的 .rnote 文件来保存/加载文件。 +- 支持导出到 SVG 和 PDF +- 自动保存功能 +- 深色/浅色模式 + +开发者指出,Rnote 使用的原生文件格式可能不够稳定,无法在较新版本的应用之间兼容。 + +因此,在将 Rnote 升级到最新版本之前,最好在完成工作后将其导出。 + +除了它的功能外,你还能通过可用的选项获得良好的用户体验。它不会让人感到压抑,你可以快速访问所有的工具。 + +一些自定义功能可以隐藏滚动条,改变光标,并调整绘图光标。 + +你还可以调整自动保存启动的时间间隔,这在各种使用情况下应该很方便。 + +![rnote screenshot 1][5] + +### 在 Linux 上安装 Rnote + +Rnote 在 [Flathub][6] 上以 Flatpak 的形式提供。因此,只要你的系统启用了 [Flatpak][7],你就可以在任何 Linux 发行版上安装它。 + +你可以在你的软件中心找到它(如果 Flatpak 集成已被启用),或者输入以下命令来安装它: + +``` +flatpak install flathub com.github.flxzt.rnote +``` + +要探索更多关于 Rnote 的信息,请前往其 [GitHub 页面][8]。 + +### 总结 + +Rnote 正在积极开发,并在其功能设置方面取得了良好的进展。如果你喜欢 Rnote,你可能想看看 [Xournal++][9],它是另一个能让你做手写笔记的应用。 + +_你还知道其他像 Rnote 这样令人兴奋的应用吗?你觉得 Rnote 怎么样?请在下面的评论中分享你的想法。_ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/rnote/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-screenshot.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-settings.png +[4]: https://rnote.flxzt.net +[5]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-screenshot-1.png +[6]: https://flathub.org/apps/details/com.github.flxzt.rnote +[7]: https://itsfoss.com/flatpak-guide/ +[8]: https://github.com/flxzt/rnote +[9]: https://xournalpp.github.io From ef5002d50937d5a194fe683cf6ea8cd9861dfd88 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 9 Feb 2023 08:48:28 +0800 Subject: [PATCH 2756/3123] translating --- .../tech/20230204.0 ⭐️ Open source video captioning on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md index 1ad750d7ba..d049c09034 100644 --- a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md +++ b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/2/live-captions-linux" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 459e304214ac12af824e153923f13d3c6c247efc Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 10:21:10 +0800 Subject: [PATCH 2757/3123] translating translating by Chao-zhi --- ...️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md index 221dd39e19..8eaba0e0d3 100644 --- a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md +++ b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -264,7 +264,7 @@ via: https://www.debugpoint.com/gnome-arch-linux-install/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1ebc308d1529f79bf7c5fe5ad3a0e2382d5a6024 Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 12:47:22 +0800 Subject: [PATCH 2758/3123] Chao-zhi has translated translated --- ...ll GNOME Desktop in Arch Linux [Complete Guide].md | 290 ----------------- ...ll GNOME Desktop in Arch Linux [Complete Guide].md | 303 ++++++++++++++++++ 2 files changed, 303 insertions(+), 290 deletions(-) delete mode 100644 sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md create mode 100644 translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md deleted file mode 100644 index 8eaba0e0d3..0000000000 --- a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md +++ /dev/null @@ -1,290 +0,0 @@ -[#]: subject: "How to Install GNOME Desktop in Arch Linux [Complete Guide]" -[#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install GNOME Desktop in Arch Linux [Complete Guide] -====== - -**This guide explains the steps you need to install GNOME Desktop in Arch Linux.** - -This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete GNOME desktop environment on top of Arch Linux. - -### What is the GNOME Desktop? - -GNOME is a popular desktop environment that is a default desktop choice for many top-tier desktops-based Linux distributions such as Ubuntu and Fedora. Almost all flavors provide a GNOME desktop option. - -The GNOME desktop is one of the stable and user-friendly desktops, hence it is preferred by many average, advanced users. If you want a desktop that remains invisible while you carry out your work, GNOME is the one. It never gets into your way while working. Hence it is still popular and default option for many despite many controversies about being GNOME3 (current iteration) being slow, resource-heavy, etc, - -With all that said, let’s take a look at how you can install a GNOME desktop in bare metal Arch installations. - -### Install GNOME Desktop in Arch Linux - -#### Part 1: Install Arch Linux - -If you have already Arch Linux installed, you can skip this step and directly go to the install GNOME Desktop section below. - -For a quick Arch Linux base installation, follow the below steps. You can also visit [this guide][1] for a complete tutorial on how to install Arch Linux as Dual Boot or in a virtual machine. - -The following steps are a straightforward legacy way of installing Arch. Follow the guide below for a more modern way of using the archinstall script. Once you are done, come back to resume GNOME installation via [step 2][2]. - -Modern method: Install using archinstall script (recommended) - -##### Legacy method: Download Arch Linux - -Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive. - -[Download Arch Linux][3] - -If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive. - -##### Boot and Configure Partitions - -After you boot from the Arch Linux iso, you have to run a series of commands to install the base system. - -First, run the below command to find out the device identifier. - -``` -fdisk -l -``` - -![fdisk -l before][4] - -Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. - -``` -cfdisk /dev/sda -``` - -Select `label type = dos` in the next prompt. - -Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below. - -``` -/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap -``` - -![cfdisk][5] - -In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. - -Repeat the same step for the main root partition of size 5GB. - -![Swap partition type change][6] - -Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. - -![final partition list in cfdisk][7] - -Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system. - -Run the below command to check before you proceed. You can see in this example, three partitions are listed. - -``` -fdisk -l -``` - -![final partition list in fdisk][8] - -Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. - -``` -mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 -``` - -After completion, mount the system and create necessary directories. - -``` -mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot -``` - -Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. - -![prepare file system][9] - -##### Install the base system - -I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][10] to configure a wireless or wifi network using Arch Linux installer. - -Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. - -``` -pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub -``` - -![Install base system][11] - -Once complete, generate file system table without which you can’t boot the system. - -``` -genfstab -U /mnt >> /mnt/etc/fstab -``` - -##### Configure the base system - -Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet. - -``` -arch-chroot /mntnano /etc/locale.gen -``` - -Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. - -![change locale][12] - -Generate the locale using: - -``` -locale-gen -``` - -Setup the language using the below command. - -``` -echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 -``` - -Setup the local time zone. - -``` -ln -s /usr/share/zoneinfo/America/New_York /etc/localtime -``` - -Again, you can choose them as per your need. You can list the local timezones via the below commands. - -``` -ls /usr/share/zoneinfo -ls /usr/share/zoneinfo/America -``` - -Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. - -``` -hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd -``` - -The next step is to set up the root user password, create an admin user, and add the user in the sudoers file. - -Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need. - -``` -passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint -``` - -![create user][13] - -Open the sudoers file and add the below lines. - -``` -nano /etc/sudoers -``` - -Add below lines. As you already created the root user, the entry should be there. - -``` -root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL -``` - -![update sudoers file][14] - -Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence. - -``` -grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit -``` - -![configure grub][15] - -Then reboot your system. If you are isntalling in a physical system, unplug the USB media at this step. - -``` -umount /mnt/boot -umount /mnt -reboot -``` - -You have now successfully installed the Arch Linux base system. It’s time to install the complete GNOME desktop. - -![Arch is installed][16] - -#### Part 2: Install GNOME in Arch Linux - -After reboot, choose Arch Linux from grub. In the Arch Linux prompt start running the following commands in sequence. These commands install Xorg server, display manager, GNOME desktop components, controller packages, and additional applications. - -For all the commands use default, i.e. press enter when asked. - -- **Install Xorg server. Approx install size is 80 MB.** - -``` -sudo pacman -S --needed xorg -``` - -- **Install display manager, GNOME desktop. Approx install size is 300 MB.** - -``` -sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm -``` - -The above installation would ask for several options for packages. Choose any of the ones you want. If you are unsure, choose jack, noto-sans and xdg-portal-desktop-gnome when asked. - -- **Install applications** - -This is just a reference. You can also install the ones you require. - -``` -sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper -``` - -Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd. - -``` -systemctl enable gdm -systemctl enable NetworkManager -``` - -Reboot the system using the reboot command. - -``` -reboot -``` - -![Arch Linux Running GNOME 43 Desktop][17] - -If all goes well, you should see a nice login prompt on the GNOME desktop. Login using the credential you just created. You should be greeted with a nice and clean GNOME 43 desktop in Arch Linux. - -I hope this guide helps you to install GNOME desktop in a bare metal Arch instalation. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-arch-linux-install/ - -作者:[Arindam][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://www.debugpoint.com/author/admin1/ -[b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/2020/11/install-arch-linux/ -[2]: https://www.debugpoint.com/archinstall-guide/ -[3]: https://www.archlinux.org/download/ -[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg -[10]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ -[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg -[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg -[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg -[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg -[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg diff --git a/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..a37dcc275e --- /dev/null +++ b/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,303 @@ +[#]: subject: "How to Install GNOME Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "Chao-zhi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中安装 GNOME 桌面 [完整指南] +====== + +**本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。** + +本指南有两部分。第一部分是关于安装基本的 Arch 系统。第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。 + +### 什么是 GNOME 桌面? + +GNOME 是一个流行的桌面环境,是许多基于桌面的顶级 Linux 发行版的默认桌面选择,如 Ubuntu 和 Fedora。几乎所有的口味都提供了一个 GNOME 桌面选项。 + +GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通、高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的。它在工作时不会妨碍到你。因此,尽管有许多关于 GNOME3(目前的迭代)速度慢、资源重等的争议,它仍然是许多人的流行和默认选项。 + +说了这么多,让我们来看看如何在裸机 Arch 中安装 GNOME 桌面。 + +### 在 Arch Linux 中安装 GNOME 桌面 + +#### 第一部分:安装 Arch Linux + +如果你已经安装了 Arch Linux,你可以跳过这一步,直接进入下面安装 GNOME 桌面部分。 + +要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问[该指南][1],了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。 + +本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 archinstall 脚本。完成后,回来通过[步骤 2](#第二部分在-arch-linux-中安装-gnome) 继续 GNOME 安装。 + +[现代方法。使用 archinstall 脚本安装(推荐)][2]。 + +##### 传统的方法。下载 Arch Linux + +从下面的链接下载 Arch Linux .iso。这里也提供磁力和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。 + +[下载 Arch Linux][3] + +如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像--那么你就不需要把它写入 U 盘。 + +##### 启动和配置分区 + +从 Arch Linux iso 启动后,你必须运行一系列的命令来安装基本系统。 + +首先,运行下面的命令,找出设备标识符。 + +``` +fdisk -l +``` + +![先 fdisk -l][4] + +然后用设备标识符,运行下面的命令,开始对你的磁盘进行分区。请确保根据你的系统改变 `/dev/sda`。 + +``` +cfdisk /dev/sda +``` + +在下一个提示中选择 `label type = dos`。 + +选择自由空间,并从底部选择新的选项。在这个例子中,我将创建三个分区,如下图所示。 + +``` +/dev/sda1 - 1G - for /boot +/dev/sda2 - 5G - for root +/dev/sda3 - 1G - for swap +``` + +![cfdisk][5] + +在下一个屏幕中,提供引导分区的分区大小(在这个例子中,我给出了 1GB)。选择它作为主分区。 + +对大小为 5GB 的主根分区重复同样的步骤。 + +![交换分区类型改变][6] + +用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择类型,并将其标记为 "Linux Swap/Solaris "选项的交换分区。 + +![cfdisk 中的最终分区列表][7] + +一旦完成,使用底部的写入选项将变化写入磁盘。确保你在写入前做了备份,因为这是你系统中的一个永久性变化。 + +在你继续之前,运行下面的命令来检查。你可以看到在这个例子中,有三个分区被列出。 + +``` +fdisk -l +``` + +![fdisk 中的最终分区列表][8] 。 + +依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2`。 + +``` +mkfs.ext4 /dev/sda1 +mkfs.ext4 /dev/sda2 +mkswap /dev/sda3 +swapon /dev/sda3 +``` + +完成后,装载系统并创建必要的目录。 + +``` +mount /dev/sda2 /mnt +mkdir /mnt/boot /mnt/var /mnt/home +mount /dev/sda1 /mnt/boot +``` + +同样,确保你根据你的系统改变 `/dev/sda1`、`/dev/sda2` 和 `/dev/sda3`。 + +![准备文件系统][9] + +##### 安装基础系统 + +我希望你已经连接到互联网了。如果没有,请尝试使用 USB 加密狗或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照[该指南][10] 使用 Arch Linux 安装程序配置一个无线或 wifi 网络。 + +依次运行下面的命令,将基本系统安装到已安装的分区中。下载的大小约为 400MB。 + +``` +pacman -Syy +pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +``` + +![安装基本系统][11] + +一旦完成,就会生成文件系统表,没有它你就无法启动系统。 + +``` +genfstab -U /mnt >> /mnt/etc/fstab +``` + +##### 配置基础系统 + +依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网。 + +``` +arch-chroot /mnt +nano /etc/locale.gen +``` + +去掉开头的 #,取消对你所选择的 locale 的注释。在本指南中,我选择了 en_US.UTF-8 UTF-8. 按 CTRL+O、Enter 和 CTRL+X 退出 nano。 + +![本地化][12] + +使用以下方法生成 locale。 + +``` +locale-gen +``` + +如果你不想手动去 `/etc/locale.gen` 设置语言,也可以使用以下命令设置语言。 + +``` +echo LANG=en_US.UTF-8 > /etc/locale.conf +export LANG=en_US.UTF-8 +``` + +设置当地的时区。 + +``` +ln -s /usr/share/zoneinfo/America/New_York /etc/localtime +``` + +同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区。 + +``` +ls /usr/share/zoneinfo +ls /usr/share/zoneinfo/America +``` + +设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的愿望,将 `"arindam-pc"` 改为任何主机名。 + +``` +hwclock --systohc --utc +echo arindam-pc > /etc/hostname +systemctl enable dhcpcd +``` + +下一步是设置根用户的密码,创建一个管理员用户,并在 sudoers 文件中添加该用户。 + +依次按照下面的命令进行操作。请确保根据你的需要将用户名从 `debugpoint` 改为其他名称。 + +``` +passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint +``` + +![创建用户][13] + +打开 sudoers 文件,添加以下几行。 + +``` +nano /etc/sudoers +``` + +添加以下几行。由于你已经创建了根用户,该条目应该在那里。 + +``` +root ALL=(ALL) ALL +debugpoint ALL=(ALL) ALL +``` + +![更改 sudoer 文件][14] + +安装 grub,设置初始 ramdisk 环境,依次使用下面的命令安装引导。 + +``` +grub-install /dev/sda +grub-mkconfig -o /boot/grub/grub.cfg +mkinitcpio -p linux +exit +``` + +![配置 grub][15] 。 + +然后重新启动你的系统。如果你是在一个物理系统中安装的,在这一步要拔掉 USB 介质。 + +``` +umount /mnt/boot +umount /mnt +reboot +``` + +你现在已经成功地安装了 Arch Linux 基本系统。现在是安装完整的 GNOME 桌面的时候了。 + +![Arch 安装好了][16] + +#### 第二部分:在 Arch Linux 中安装 GNOME + +重启后,从 grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。 + +所有的命令都使用默认值,即在要求时按回车。 + +- **安装 Xorg 服务器。安装大小约为 80MB。** + +``` +sudo pacman -S --needed xorg +``` + +- **安装显示管理器,GNOME 桌面。安装大小约为 300MB。** + +``` +sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm +``` + +上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 jack、noto-sans 和 xdg-portal-desktop-gnome。 + +- **安装应用程序** + +这只是一个参考。你也可以安装你所需要的。 + +``` +sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper +``` + +现在是时候把显示管理器和网络管理器作为服务启用了。这样,下次登录时,它们就可以由 systemd 自动运行。 + +``` +systemctl enable gdm +systemctl enable NetworkManager +``` + +使用 reboot 命令重新启动系统。 + +``` +reboot +``` + +![Arch Linux 运行 GNOME 43 桌面][17] 。 + +如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 中漂亮而干净的 GNOME 43 桌面。 + +我希望这个指南能帮助你在裸机 Arch 安装 GNOME 桌面。 + +-------------------------------------------------------------------------------- + +通过。https://www.debugpoint.com/gnome-arch-linux-install/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/2020/11/install-arch-linux/ +[2]: https://www.debugpoint.com/archinstall-guide/ +[3]: https://www.archlinux.org/download/ +[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg +[10]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg From 1d17ceba2752a8a484af2f9ced69087d156852e8 Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 12:59:24 +0800 Subject: [PATCH 2759/3123] translating by Chao-zhi translating by Chao-zhi --- ...⭐️ A Guide to systemd journal Maintenance [With Examples].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md index 1623dec544..31a3c1e20a 100644 --- a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md +++ b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/systemd-journald-clean/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -168,7 +168,7 @@ via: https://www.debugpoint.com/systemd-journald-clean/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 773421e2302dddb758223d1eaed634869b244e42 Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 13:18:02 +0800 Subject: [PATCH 2760/3123] translated translated --- ... to systemd journal Maintenance [With Examples].md | 121 ++++++++++-------- 1 file changed, 66 insertions(+), 55 deletions(-) diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md index 31a3c1e20a..97196eb778 100644 --- a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md +++ b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md @@ -7,84 +7,89 @@ [#]: publisher: " " [#]: url: " " -A Guide to systemd journal Maintenance [With Examples] +systemd 日志维护指南 [附实例] ====== -**Systemd comes with many built-in features to manage the system logs. In this guide, we explain how you can manage system journals, logs and take action on them such as rotating, archiving, and clear logs.****We also explain the manual systems journal clean method and using config file changes.** +**Systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换(rotate)、归档和清除日志等操作。** -If your Linux distribution supports [systemd][1], then it collects logs from all processes, applications of the system every second which starts from the boot. All these logging events are managed by `journald` daemon of systemd. The journald collects all the logs (info, warnings, errors, etc) and stores them as binary data in the disk files.  +**我们还解释了手动系统日志清理方法和使用配置文件的变化。** -As the logs remain in the disk and every second it is collected, it takes up huge disk space; especially for older systems, servers. For example, in one of my test systems which are running for around one year, the log file size is in GBs. +如果你的 Linux 发行版支持 [systemd][1],那么它每秒钟都会从系统的所有进程和应用程序中收集日志,并从启动时开始。所有这些日志事件都由 systemd 的 `journald` 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。 -If you manage multiple systems, servers, it is always recommended to properly manage journald logs for efficient operation. Let’s take a look at how you can manage the log files. +由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。 -### The systemd journal Maintenance +如果你管理多个系统、服务器,建议一定要正确管理 journald 日志,以便高效运行。让我们来看看如何管理日志文件。 -Using the journalctl utility of systemd, you can query these logs, perform various operations on them. For example, viewing the log files from different boots, check for last warnings, errors from a specific process or applications. If you are unaware of these, I would suggest you quickly go through this tutorial – [“use journalctl to View and Analyze Systemd Logs [With Examples]][2]” before you follow this guide.  +### systemd 日志维护 -#### Where are the physical journal log files? +使用 systemd 的 journalctl 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程--[《使用 journalctl 查看和分析 systemd 日志[With Examples]][2] 》。 -The systemd’s journald daemon collects logs from every boot. That means, it classifies the log files as per the boot.  +#### 物理日记的日志文件在哪里? -The logs are stored as binary in the path `/var/log/journal` with a folder as machine id. +systemd 的 journald 守护进程在每次启动时都会收集日志。这意味着,它根据启动情况对日志文件进行分类。 -**For example:** +日志以二进制形式存储在路径 `/var/log/journal`,文件夹为机器 ID。 -![Screenshot of physical journal file -1][3] +**比如说。** -![Screenshot of physical journal files -2][4] +![日记文件的截图-1][3] -Also, remember that based on system configuration, runtime journal files are stored at `/run/log/journal/`. And these are removed in each boot.  +![日记文件的截图-2][4] -#### Can I manually delete the log files? +另外,请记住,根据系统配置,运行时日志文件被存储在 `/run/log/journal/`。而这些在每次启动时都会被删除。 -You can, but don’t do it. Instead, follow the below instructions to clear the log files to free up disk space using journalctl utilities. +#### 我可以手动删除日志文件吗? -#### How much disk space is used by systemd log files? +你可以,但不要这样做。相反,请按照下面的说明,使用 journalctl 工具清除日志文件以释放磁盘空间。 + +#### systemd 的日志文件占用了多少磁盘空间? + +打开一个终端,运行以下命令。 -Open up a terminal and run the below command. ``` journalctl --disk-usage ``` -This should provide you with how much is actually used by the log files in your system. +这应该为你提供系统中的日志文件实际使用的数量。 -![journalctl disk usage command][5] +![journalctl 磁盘使用命令][5]。 -If you have a graphical desktop environment, you can open the file manager and browse the path `/var/log/journal` and check the properties. +如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 `/var/log/journal`,并检查属性。 #### systemd journal clean process -The effective way of clearing the log files should be done by `journald.conf` a configuration files. Ideally, you should not manually delete the log files even if the journalctl provides the utility to do that. +清理日志文件的有效方法应该是通过 `journald.conf` 一个配置文件来完成。理想情况下,即使 journalctl 提供了删除日志文件的工具,你也不应该手动删除这些文件。 -Let’s take a look at how you can delete it [manually][6], then I will explain the configuration changes in `journald.conf` so that you do not need to manually delete the files from time to time; Instead, the systemd takes care of it automatically based on your configuration.  +让我们来看看如何[手动][6]删除它,然后我将解释 `journald.conf` 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。 -##### Manual delete +##### 手动删除 -First, you have to `flush` and `rotate` the log files. Rotating is a way of marking the current active log files as an archive and creating a fresh logfile from this moment. The flush switch asks the journal daemon to flush any log data stored in `/run/log/journal/` into `/var/log/journal/`, if persistent storage is enabled. +首先,你必须 `flush` 和 `rotate` 日志文件。轮换(rotate)是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。flush 开关要求日志守护进程将存储在 `/run/log/journal/` 中的所有日志数据冲入 `/var/log/journal/`,如果持久性存储被启用的话。 -Then, after flushing and rotating, you need to run journalctl with`vacuum-size`, `vacuum-time`, and `vacuum-files` switches to force systemd to clear the logs.  +然后,在 `flush` 和 `rotate` 之后,你需要用 `vacuum-size`, `vacuum-time`, 和 `vacuum-files` 选项运行 journalctl 来强制 systemd 清除日志。 + +**例 1:** -**Example 1:** ``` sudo journalctl --flush --rotate ``` + ``` sudo journalctl --vacuum-time=1s ``` -The above set of commands removes all archived journal log files until the last second. This effectively clears everything. So, be careful while running the command.  +上面这组命令会删除所有存档的日志文件,直到最后一秒。这有效地清除了一切。因此,在运行该命令时要小心。 -![journal clean up - example][7] +![日记清理-例子][7] -After clean up: +清理完毕后。 -![After clean up - journal space usage][8] +![清理后--日志的占用空间][8] -You can also provide the following suffixes as per your need following the number. +你也可以根据你的需要在 `--vacuum-time` 的数字后面提供以下后缀。 - s: seconds - m: minutes @@ -94,73 +99,79 @@ You can also provide the following suffixes as per your need following the numbe - weeks - years -**Example 2:** +**例 2:** + ``` sudo journalctl --flush --rotate ``` + ``` sudo journalctl --vacuum-size=400M ``` -This clears all archived journal log files and retains the last 400MB files. Remember this switch applies to only archived log files only, not on active journal files. You can also use suffixes as below. +这将清除所有存档的日志文件,并保留最后 400MB 的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。 - K: KB - M: MB - G: GB -**Example 3:** +**例 3:** + ``` sudo journalctl --flush --rotate ``` + ``` sudo journalctl --vacuum-files=2 ``` -The vacuum-files switch clears all the journal files below the number specified. So, in the above example, only the last 2 journal files are kept and everything else is removed. Again, this only works on the archived files. +vacuum-files 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。 -You can combine the switches if you want, but I would recommend not to. However, make sure to run with `--rotate` switch first. +如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 `--rotate` 选项运行。 -### Automatic delete using config files +### 使用配置文件自动删除 -While the above methods are good and easy to use, it is recommended that you control the journal log file cleanup process using the journald configuration files which present at `/etc/systemd/journald.conf`.  +虽然上述方法很好,也很容易使用,但建议你使用 journald 配置文件来控制日志文件的清理过程,该文件存在于 `/etc/systemd/journald.conf`。 -The systemd provides many parameters for you to effectively manage the log files. By combining these parameters you can effectively limit the disk space used by the journal files. Let’s take a look. +systemd 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。 -| **journald.conf parameter** | **Description** | **Example** | +|**journald.conf参数**| **Description** | **Example** | | :- | :- | :- | -| SystemMaxUse | Specifies the maximum disk space that can be used by the journal in persistent storage | SystemMaxUse=500M | -| SystemKeepFree | Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage. | SystemKeepFree=100M | -| SystemMaxFileSize | Controls how large individual journal files can grow to in persistent storage before being rotated. | SystemMaxFileSize=100M | -| RuntimeMaxUse | Specifies the maximum disk space that can be used in volatile storage (within the /run filesystem). | RuntimeMaxUse=100M | -| RuntimeKeepFree | Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem). | RuntimeMaxUse=100M | -| RuntimeMaxFileSize | Specifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated. | RuntimeMaxFileSize=200M | +| SystemMaxUse |指定日志在持久性存储中可使用的最大磁盘空间| SystemMaxUse=500M | +| SystemKeepFree |指定在将日志条目添加到持久性存储时,日志应留出的空间量。| SystemKeepFree=100M | +| SystemMaxFileSize |控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。| SystemMaxFileSize=100M | +| RuntimeMaxUse |指定在易失性存储中可以使用的最大磁盘空间(在/run 文件系统内)。| RuntimeMaxUse=100M | +| RuntimeKeepFree |指定将数据写入易失性存储(在/run 文件系统内)时为其他用途预留的空间数量。| RuntimeMaxUse=100M | +| RuntimeMaxFileSize |指定单个日志文件在被轮换之前在易失性存储(在/run 文件系统内)所能占用的空间量。| RuntimeMaxFileSize=200M | + +如果你在运行中的系统的 `/etc/systemd/journald.conf` 文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。 -If you add these values in a running system in `/etc/systemd/journald.conf` file, then you have to restart the journald after updating the file. To restart use the following command.  ``` sudo systemctl restart systemd-journald ``` -### Verification of log files +### 核实日志文件 + +在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了对日志文件的 PASS、FAIL。 -It is wiser to check the integrity of the log files after you clean up the files. To do that run the below command. The command shows the PASS, FAIL against the journal file. ``` journalctl --verify ``` -![verify log files][9] +![验证日志文件][9] -### Closing Notes +### 结案说明 -I hope this guide helps you to understand the basics of the systemd journal management process. With these, you can manage the disk space used by the log files in your system or servers by limiting the space, clearing old log files. These are just the guideline commands, you can combine these in multiple ways to achieve your system demands.  +希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。 -- [journalctl manual][10] -- [journald.conf manual][11] +- [journalctl 手册][10] +- [journald.conf 手册][11] -------------------------------------------------------------------------------- From 97c1f0cd60314f18fa39be29af28707ac9f298ac Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 13:19:12 +0800 Subject: [PATCH 2761/3123] translated translated --- ...⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md (100%) diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md similarity index 100% rename from sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md rename to translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md From c27edc8bd2938d1f1662bed8d7312f929b96a24f Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Thu, 9 Feb 2023 17:05:21 +0800 Subject: [PATCH 2762/3123] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... computing with this open source software development kit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210619 Try quantum computing with this open source software development kit.md b/sources/tech/20210619 Try quantum computing with this open source software development kit.md index a36b70ca20..fa697ee98d 100644 --- a/sources/tech/20210619 Try quantum computing with this open source software development kit.md +++ b/sources/tech/20210619 Try quantum computing with this open source software development kit.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/qiskit) [#]: author: (Gordon Haff https://opensource.com/users/ghaff) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (cool-summer-021) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 5ae145d899de7d64e0205ce683f39579311037db Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 10 Feb 2023 06:59:07 +0800 Subject: [PATCH 2763/3123] RP @cool-summer-021 https://linux.cn/article-15525-1.html --- ...mputing by programming embedded systems.md | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) rename {translated/tech => published}/20210316 Get started with edge computing by programming embedded systems.md (56%) diff --git a/translated/tech/20210316 Get started with edge computing by programming embedded systems.md b/published/20210316 Get started with edge computing by programming embedded systems.md similarity index 56% rename from translated/tech/20210316 Get started with edge computing by programming embedded systems.md rename to published/20210316 Get started with edge computing by programming embedded systems.md index 8d0d17e00a..baf0025a1d 100644 --- a/translated/tech/20210316 Get started with edge computing by programming embedded systems.md +++ b/published/20210316 Get started with edge computing by programming embedded systems.md @@ -3,56 +3,55 @@ [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" [#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15525-1.html" -通过编写嵌入式系统入手边缘计算 +通过编写嵌入式系统入门边缘计算 ====== -用于操控无线调制解调器的AT设备包是RTOS最流行的扩展功能之一。 -![Looking at a map][1] +> 用于操控无线调制解调器的 AT 设备包是 RTOS 最流行的扩展功能之一。 -Image by: opensource.com +![][0] -RTOS 是一个开源的[嵌入式设备操作系统][2],由 RT-Thread 开发。它为开发者提供了标准化、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 +RTOS 是一个开源的 [嵌入式设备操作系统][2],由 RT-Thread 开发。它为开发者提供了标准化的、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 -RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。程序包令开发者能基于任何目标设备使用 RTOS。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。 +RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。各种软件包可以让开发者将 RTOS 用于任何想要的目标设备。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。 -在超过62,000次下载中(至少在撰写本文时),最流行的RTOS扩展之一是At设备包,其中包括用于不同At设备的移植文件和示例代码。 +在超过 62,000 次下载中(截止至撰写本文时),最流行的 RTOS 扩展之一是 AT 设备包,其中包括用于不同 AT 设备的移植文件和示例代码。 ### 关于 AT 命令 -起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用于为设备控制建立轻量级而高效的协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。 +起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用作轻量级而高效的设备控制协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。 -如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如WiFi、蓝牙、4G,都支持 AT 命令。 +如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如 WiFi、蓝牙、4G,都支持 AT 命令。 -如果您正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则您可能接触到的 RTOS 支持的 AT 设备包括ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28和EC200X。 +如果你正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则你可能接触到一些 RTOS 支持的 AT 设备,包括 ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28 和 EC200X。 -RT-Thread包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 [BSD Socket][3] API。SAL 进而接替了AT 的套接字接口,所以开发者需要考虑网络应用层提供的网络接口。 +RT-Thread 包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 [BSD 套接字][3] API。SAL 进而接管了 AT 的套接字接口,所以开发者只需要考虑网络应用层提供的网络接口。 -这个包实现了设备(包括上述设备)上的 AT 套接字功能,也支持通过标准套接字接口以 AT 命令的形式通信。[RT-Thread 编程指南][4]中就有关于这些功能的详细介绍。 +这个软件包实现了设备(包括上述设备)上的 AT 套接字功能,支持通过标准套接字接口以 AT 命令的形式通信。[RT-Thread 编程指南][4] 中就有关于这些功能的详细介绍。 -at_device 包是在 LGPLv2.1 许可证下分发的,借助 [RT-Thread Env tool][5] 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。 +at_device 软件包是在 LGPLv2.1 许可证下分发的,借助 [RT-Thread Env 工具][5] 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。 ### 获取 AT 设备包 -欲使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要: +为了使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要: * RT_Thread 4.0.2+ -* RT_Thread AT component 1.3.0+ -* RT_Thread SAL component -* RT-Thread netdev component +* RT_Thread AT 组件 1.3.0+ +* RT_Thread SAL 组件 +* RT-Thread netdev 组件 AT 设备包已经针对多种版本进行了相应的更新。版本不同,配置选项也相应地不同,因此必须针对相应的系统版本进行适配。目前最常用的 AT 设备包版本有: -* V1.2.0: 针对低于V3.1.3的RT-Thread,V1.0.0 的AT组件 -* V1.3.0: 针对低于V3.1.3的RT-Thread,V1.1.0 的AT组件 -* V1.4.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 -* V1.5.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 -* V1.6.0: 针对低于V3.1.3 或等于V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件 -* V2.0.0/V2.0.1: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 -* 最新版: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 +* V1.2.0: 针对低于 V3.1.3 的 RT-Thread,V1.0.0 的 AT 组件 +* V1.3.0: 针对低于 V3.1.3 的 RT-Thread,V1.1.0 的 AT 组件 +* V1.4.0: 针对低于 V3.1.3 或等于 V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.5.0: 针对低于 V3.1.3 或等于 V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.6.0: 针对低于 V3.1.3 或等于 V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件 +* V2.0.0/V2.0.1: 针对高于 V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 +* 最新版: 针对高于 V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 获取正确的版本的过程主要是在生成菜单时自动完成的。它基于现有的系统环境提供最合适的 AT 设备包。 @@ -67,9 +66,9 @@ RT-Thread online packages  --->               Version (V1.6.0)  ---> ``` -启用AT设备init by thread的选项决定了配置是否创建一个单独的线程来初始化设备网络。 +按线程启用 AT 设备初始化的选项决定了配置是否创建一个单独的线程来初始化设备网络。 -2.x版本支持同时启用多个 AT 设备: +2.x 版本支持同时启用多个 AT 设备: ``` RT-Thread online packages  ---> @@ -108,14 +107,14 @@ RT-Thread online packages  ---> 这个版本包含了很多其他选项,其中也有启用示例代码的选项,这对初学者或使用不熟悉的设备的开发者很有帮助。 -你也可以设置相应选项,选择你需要使用的识别码,来为你的组件供电,一个识别码来指示电源状态,样本设备使用的串行设备的名称,以及样本设备接收的数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。 +你也可以设置相应选项,选择你想用来给你的组件供电的针脚、指示电源状态的针脚、样本设备使用的串行设备的名称,以及样本设备接收数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。 简而言之,控制选项是够用的。 -* V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在[finsh shell][6] 中执行 `ifocnfig` 命令即可。 +* V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在 [finsh shell][6] 中执行 `ifocnfig` 命令即可。 * V2.X.X 版本需要设备在使用前先注册;注册可以在样例目录中进行,或在应用层以自定义方式进行。 -* 识别码选项,例如电源选项和电源状态选项,是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 `-1`。 -* 一台AT 设备应当对应一个序列名称,每台设备的 AT客户端名称应当是不同的。 +* 针脚选项,例如电源针脚和电源状态针脚是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 `-1`。 +* 一台AT 设备应当对应一个序列名称,每台设备的 AT 客户端名称应当是不同的。 ### AT 组件配置选项 @@ -135,15 +134,15 @@ RT-Thread Components  --->     (128)   The maximum length of AT Commonds buffer ``` -与AT 设备包有关的配置选项有: +与 AT 设备包有关的配置选项有: * 支持的客户端最大个数:选择 AT 设备包中的多台设备时,需要将该选项配置为对应的设备台数; -* 通过 AT 命令启用 BSD Socket API 功能:当选择 AT 设备包时默认选择该选项。 +* 通过 AT 命令启用 BSD 套接字 API 功能:当选择 AT 设备包时默认选择该选项。 * AT 命令的最大长度:AT 命令可发送的数据的最大长度 ### 一切皆有可能 -当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。IoT 技术一定会实现多种协议间的通信,AT 协议将发挥关键作用。 +当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。边缘的物联网技术必须能够通过各种协议进行通信,而 AT 协议是关键。 -------------------------------------------------------------------------------- @@ -152,7 +151,7 @@ via: https://opensource.com/article/21/3/rtos-embedded-development 作者:[Alan Smithee][a] 选题:[lkxed][b] 译者:[cool-summer-021](https://github.com/cool-summer-021) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -165,3 +164,4 @@ via: https://opensource.com/article/21/3/rtos-embedded-development [5]: https://www.rt-thread.io/download.html?download=Env [6]: https://www.rt-thread.org/download/rttdoc_1_0_0/group__finsh.html [7]: https://www.redhat.com/en/topics/edge-computing +[0]: https://img.linux.net.cn/data/attachment/album/202302/10/065738jhzvfgfgyvfznfhz.jpg \ No newline at end of file From 0159c59fce4ffc9a4ceb2ed15cdb8baa29a00eb7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 10 Feb 2023 07:33:06 +0800 Subject: [PATCH 2764/3123] RP @Chao-zhi https://linux.cn/article-15526-1.html --- ... to systemd journal Maintenance [With Examples].md | 102 ++++++++---------- 1 file changed, 47 insertions(+), 55 deletions(-) rename {translated/tech => published}/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md (57%) diff --git a/translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/published/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md similarity index 57% rename from translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md rename to published/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md index 97196eb778..9395fa3dd8 100644 --- a/translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md +++ b/published/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md @@ -3,26 +3,26 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15526-1.html" -systemd 日志维护指南 [附实例] +systemd 日志维护指南(附实例) ====== -**Systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换(rotate)、归档和清除日志等操作。** +![][0] -**我们还解释了手动系统日志清理方法和使用配置文件的变化。** +> systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换、归档和清除日志等操作。我们还解释了手动系统日志清理方法和使用配置文件的变化。 -如果你的 Linux 发行版支持 [systemd][1],那么它每秒钟都会从系统的所有进程和应用程序中收集日志,并从启动时开始。所有这些日志事件都由 systemd 的 `journald` 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。 +如果你的 Linux 发行版支持 [systemd][1],那么从启动时开始,它每秒钟都会从系统的所有进程和应用程序中收集日志。所有这些日志事件都由 systemd 的 `journald` 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。 -由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。 +由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器来说。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。 如果你管理多个系统、服务器,建议一定要正确管理 journald 日志,以便高效运行。让我们来看看如何管理日志文件。 ### systemd 日志维护 -使用 systemd 的 journalctl 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程--[《使用 journalctl 查看和分析 systemd 日志[With Examples]][2] 》。 +使用 systemd 的 `journalctl` 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程:[使用 journalctl 查看和分析 systemd 日志(附实例)][2] 》。 #### 物理日记的日志文件在哪里? @@ -30,106 +30,99 @@ systemd 的 journald 守护进程在每次启动时都会收集日志。这意 日志以二进制形式存储在路径 `/var/log/journal`,文件夹为机器 ID。 -**比如说。** +比如说: -![日记文件的截图-1][3] +![日志文件位置的截图-1][3] -![日记文件的截图-2][4] +![日志文件位置的截图-2][4] 另外,请记住,根据系统配置,运行时日志文件被存储在 `/run/log/journal/`。而这些在每次启动时都会被删除。 #### 我可以手动删除日志文件吗? -你可以,但不要这样做。相反,请按照下面的说明,使用 journalctl 工具清除日志文件以释放磁盘空间。 +你可以,但不要这样做。相反,请按照下面的说明,使用 `journalctl` 工具清除日志文件以释放磁盘空间。 #### systemd 的日志文件占用了多少磁盘空间? 打开一个终端,运行以下命令。 - ``` journalctl --disk-usage ``` 这应该为你提供系统中的日志文件实际使用的数量。 -![journalctl 磁盘使用命令][5]。 +![journalctl 磁盘使用命令][5] 如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 `/var/log/journal`,并检查属性。 -#### systemd journal clean process +#### systemd 日志清理过程 -清理日志文件的有效方法应该是通过 `journald.conf` 一个配置文件来完成。理想情况下,即使 journalctl 提供了删除日志文件的工具,你也不应该手动删除这些文件。 +清理日志文件的有效方法应该是通过 `journald.conf` 配置文件来完成。正常情况下,即使 `journalctl` 提供了删除日志文件的工具,你也不应该手动删除这些文件。 -让我们来看看如何[手动][6]删除它,然后我将解释 `journald.conf` 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。 +让我们来看看如何 [手动][6] 删除它,然后我将解释 `journald.conf` 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。 ##### 手动删除 -首先,你必须 `flush` 和 `rotate` 日志文件。轮换(rotate)是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。flush 开关要求日志守护进程将存储在 `/run/log/journal/` 中的所有日志数据冲入 `/var/log/journal/`,如果持久性存储被启用的话。 +首先,你必须 `flush` 和 `rotate` 日志文件。轮换rotate是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。冲洗flush 开关要求日志守护进程将存储在 `/run/log/journal/` 中的所有日志数据冲入 `/var/log/journal/`,如果持久性存储被启用的话。 -然后,在 `flush` 和 `rotate` 之后,你需要用 `vacuum-size`, `vacuum-time`, 和 `vacuum-files` 选项运行 journalctl 来强制 systemd 清除日志。 - -**例 1:** +然后,在 `flush` 和 `rotate` 之后,你需要用 `vacuum-size`、`vacuum-time` 和 `vacuum-files` 选项运行 `journalctl` 来强制 systemd 清除日志。 +例 1: ``` sudo journalctl --flush --rotate ``` - ``` sudo journalctl --vacuum-time=1s ``` 上面这组命令会删除所有存档的日志文件,直到最后一秒。这有效地清除了一切。因此,在运行该命令时要小心。 -![日记清理-例子][7] +![日志清理-例子][7] -清理完毕后。 +清理完毕后: ![清理后--日志的占用空间][8] -你也可以根据你的需要在 `--vacuum-time` 的数字后面提供以下后缀。 +你也可以根据你的需要在 `--vacuum-time` 的数字后面提供以下后缀: -- s: seconds -- m: minutes -- h: hours -- days -- months -- weeks -- years - -**例 2:** +- `s`:秒 +- `m`:分钟 +- `h`:小时 +- `days`:天 +- `months`:月 +- `weeks`:周 +- `years`:年 +例 2: ``` sudo journalctl --flush --rotate ``` - ``` sudo journalctl --vacuum-size=400M ``` 这将清除所有存档的日志文件,并保留最后 400MB 的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。 -- K: KB -- M: MB -- G: GB - -**例 3:** +- `K`:KB +- `M`:MB +- `G`:GB +例 3: ``` sudo journalctl --flush --rotate ``` - ``` sudo journalctl --vacuum-files=2 ``` -vacuum-files 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。 +`vacuum-files` 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。 如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 `--rotate` 选项运行。 @@ -139,26 +132,24 @@ vacuum-files 选项会清除所有低于指定数量的日志文件。因此, systemd 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。 -|**journald.conf参数**| **Description** | **Example** | +| journald.conf 参数 | 描述 | 实例 | | :- | :- | :- | -| SystemMaxUse |指定日志在持久性存储中可使用的最大磁盘空间| SystemMaxUse=500M | -| SystemKeepFree |指定在将日志条目添加到持久性存储时,日志应留出的空间量。| SystemKeepFree=100M | -| SystemMaxFileSize |控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。| SystemMaxFileSize=100M | -| RuntimeMaxUse |指定在易失性存储中可以使用的最大磁盘空间(在/run 文件系统内)。| RuntimeMaxUse=100M | -| RuntimeKeepFree |指定将数据写入易失性存储(在/run 文件系统内)时为其他用途预留的空间数量。| RuntimeMaxUse=100M | -| RuntimeMaxFileSize |指定单个日志文件在被轮换之前在易失性存储(在/run 文件系统内)所能占用的空间量。| RuntimeMaxFileSize=200M | +| `SystemMaxUse` |指定日志在持久性存储中可使用的最大磁盘空间| `SystemMaxUse=500M` | +| `SystemKeepFree` |指定在将日志条目添加到持久性存储时,日志应留出的空间量。| `SystemKeepFree=100M` | +| `SystemMaxFileSize` |控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。| `SystemMaxFileSize=100M` | +| `RuntimeMaxUse` |指定在易失性存储中可以使用的最大磁盘空间(在 `/run` 文件系统内)。| `RuntimeMaxUse=100M` | +| `RuntimeKeepFree` |指定将数据写入易失性存储(在 `/run` 文件系统内)时为其他用途预留的空间数量。| `RuntimeMaxUse=100M` | +| `RuntimeMaxFileSize` |指定单个日志文件在被轮换之前在易失性存储(在 `/run` 文件系统内)所能占用的空间量。| `RuntimeMaxFileSize=200M` | 如果你在运行中的系统的 `/etc/systemd/journald.conf` 文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。 - ``` sudo systemctl restart systemd-journald ``` ### 核实日志文件 -在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了对日志文件的 PASS、FAIL。 - +在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了日志文件是否通过(`PASS`)、失败(`FAIL`)。 ``` journalctl --verify @@ -166,7 +157,7 @@ journalctl --verify ![验证日志文件][9] -### 结案说明 +### 总结 希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。 @@ -180,7 +171,7 @@ via: https://www.debugpoint.com/systemd-journald-clean/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[Chao-zhi](https://github.com/Chao-zhi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -197,3 +188,4 @@ via: https://www.debugpoint.com/systemd-journald-clean/ [9]: https://www.debugpoint.com/wp-content/uploads/2021/01/verify-log-files.png [10]: https://www.freedesktop.org/software/systemd/man/journalctl.html [11]: https://www.freedesktop.org/software/systemd/man/journald.conf.html +[0]: https://img.linux.net.cn/data/attachment/album/202302/10/072955z20ipg8vlpvdt1jq.jpg \ No newline at end of file From d3723ade3172313657ba286b531789ce980b5620 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 10 Feb 2023 08:46:13 +0800 Subject: [PATCH 2765/3123] translating --- ... ⭐️⭐️ Merge design and code with Penpot.md | 57 ------------------ ... ⭐️⭐️ Merge design and code with Penpot.md | 58 +++++++++++++++++++ 2 files changed, 58 insertions(+), 57 deletions(-) delete mode 100644 sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md create mode 100644 translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md diff --git a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md deleted file mode 100644 index 016c6daed7..0000000000 --- a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md +++ /dev/null @@ -1,57 +0,0 @@ -[#]: subject: "Merge design and code with Penpot" -[#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Merge design and code with Penpot -====== - -For most of the history of computer programming, there's been a gap between the programmers creating an application's code and the designers creating an application's user experience (UX). The two disciplines receive vastly different training, and they use a different set of tools. Programmers use a text editor or an IDE to write code, while designers often draw concepts of widget layout and potential interactions. While some IDEs, like [Eclipse][1] and [Netbeans][2], have interface design components, they're usually focused on widget position and not on widget design. The open source design app [Penpot][3] is a collaborative design and prototyping platform. It has a suite of new features that make it easy for designers and developers to work together with familiar workflows. Penpot's design interface lets developers write code in harmony with the design process like no other tool does. And it's come a long way since Opensource.com [last looked at it][4]. Its latest features don't just improve your experience with Penpot, they propel the open source Penpot app past similar and proprietary tools. - -### Prototyping with Penpot - -One of the common problems with trying to design how an application might work best is that, at the time of designing, the application doesn't exist yet. A designer can visualize and storyboard to help both the design team and the programmer understand what to aim for. But it's a process that requires iteration and feedback as developers start to implement UX concepts, and designs change to react to the reality of code. - -With Penpot, you can create a "working" prototype of your web or mobile application. You can connect buttons with specific actions, triggering changes in layout based on user input. And this can all be done before any code for the project exists. - -The most important aspect of this isn't the ability to do a mock-up, though. Everything done in Penpot for an app's design has usable layout data that developers can use in the final project. Penpot isn't just a great drawing and layout tool. It informs the coding process. - -Rather than providing just a visual list of designer-specific elements, like properties, colors, and typography, Penpot now integrates code output directly into the design workspace (like developer tools in a web browser). Designers and developers share the same space for design and front-end development, getting specifications in whatever format they need. - -![Image of the current Penpot interface][5] - -### Memory unlock - -Many online design tools use proprietary technology to provide some fancy features, but at the price of essentially becoming an application, you don't run so much as access through a browser. Penpot uses open web standards, though, and is rendered by your web browser. That means Penpot has access to the web browser's maximum available memory, which makes Penpot the first online prototype and layout application with design scalability. You can provide more options, more mock-ups, and more pitches. Plus, you can open your design space to more concurrent collaborators with no fear of running out of application memory. - -### Self-hosting and SaaS - -Penpot is open source, so you don't have to use it on the cloud if that doesn't fit your workflow. You can self-host Penpot easily in a container, using it as a local application on your own workstation or hosting it for your organization on your own server. - -### Open source design - -I've written an [introductory article to Penpot][6] previously, and since then the application has only gotten better. If you're looking to bring coders and stakeholders into your design process, then give Penpot a try. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/merge-design-code-penpot - -作者:[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/article/20/12/eclipse -[2]: https://opensource.com/article/20/12/netbeans -[3]: http://penpot.app -[4]: https://opensource.com/article/21/9/open-source-design -[5]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png -[6]: https://opensource.com/article/21/12/open-source-design-penpot diff --git a/translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md new file mode 100644 index 0000000000..2e455b0e97 --- /dev/null +++ b/translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md @@ -0,0 +1,58 @@ +[#]: subject: "Merge design and code with Penpot" +[#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 Penpot 合并设计和代码 +====== + +在计算机编程的大部分历史中,在创建应用的代码的程序员和创建应用的用户体验(UX)的设计师之间一直存在着差距。这两个学科接受的培训大不相同,他们使用的工具也不同。程序员使用文本编辑器或集成开发环境来编写代码,而设计师则经常绘制小部件布局和潜在交互的概念。虽然一些 IDE,像 [Eclipse][1] 和 [Netbeans][2],有界面设计组件,但它们通常专注于小部件的位置而不是小部件的设计。开源设计应用 [Penpot][3] 是一个协作式设计和原型设计平台。它有一套新的功能,使设计师和开发者可以很容易地用熟悉的工作流程一起工作。Penpot 的设计界面可以让开发者在设计过程中和谐地编写代码,这是其他工具所无法做到的。自从 Opensource.com [最后一次关注它][4]以来,它已经有了长足的进步。它的最新功能不仅改善了你使用 Penpot 的体验,还推动了开源的 Penpot 应用超越类似的专有工具。 + +### 用 Penpot 做原型 + +试图设计一个应用如何最好地工作的常见问题之一是,在设计的时候,这个应用还不存在。设计师可以通过视觉化和故事板来帮助设计团队和程序员了解目标是什么。但这是一个需要迭代和反馈的过程,因为开发人员开始实施 UX 概念,并且设计会发生变化以对代码的现实做出反应。 + +使用 Penpot,你可以为你的网络或移动应用创建一个“可用”原型。你可以将按钮与特定的行动联系起来,根据用户的输入触发布局的变化。而这一切都可以在项目的代码存在之前完成。 + +这方面最重要的不是做一个模拟的能力,但是。在 Penpot 中为应用的设计所做的一切都有可用的布局数据,开发人员可以在最终的项目中使用。Penpot 不仅仅是一个伟大的绘图和布局工具。它为编码过程提供信息。 + +Penpot 不是仅仅提供一个设计师特定元素的视觉列表,如属性、颜色和排版,而是现在将代码输出直接整合到设计工作区(就像 Web 浏览器中的开发者工具)。设计师和开发人员共享设计和前端开发的相同空间,以他们需要的任何格式获得规范。 + +![Image of the current Penpot interface][5] + +### 内存解锁 + +许多在线设计工具使用专有技术来提供一些花哨的功能,但代价是基本上成为一个应用,你不能运行,而只能通过浏览器访问。虽然 Penpot 使用开放的网络标准,并由你的 Web + 浏览器渲染。这意味着 Penpot 可以访问 Web 浏览器的最大可用内存,这使得 Penpot 成为第一个具有设计扩展性的在线原型和布局应用。你可以提供更多的选项,更多的模型,和更多的投稿。此外,你可以向更多的并发合作者开放你的设计空间,而不必担心应用的内存耗尽。 + +### 自我托管和 SaaS + +Penpot 是开源的,所以你不必在云上使用它,如果这不适合你的工作流程。你可以在一个容器中轻松地自我托管 Penpot,在你自己的工作站上作为一个本地应用使用,或者在你自己的服务器上为你的组织托管它。 + +### 开源设计 + +我以前写过一篇 [Penpot 的介绍性文章][6],自那以后,这个应用变得更好了。如果你想把程序员和相关人员带入你的设计过程中,那么请试试 Penpot。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/merge-design-code-penpot + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/20/12/eclipse +[2]: https://opensource.com/article/20/12/netbeans +[3]: http://penpot.app +[4]: https://opensource.com/article/21/9/open-source-design +[5]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png +[6]: https://opensource.com/article/21/12/open-source-design-penpot From 7e45726ef78be1e054353ab46c2c7000455cd58c Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 10 Feb 2023 08:48:26 +0800 Subject: [PATCH 2766/3123] translating --- ....0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md index be82e4ad91..6757bebe6f 100644 --- a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md +++ b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 89a7e8ac09a460dc01121d8d7be8d2bbab9d3494 Mon Sep 17 00:00:00 2001 From: Tao Zhou <48525863+zEpoch@users.noreply.github.com> Date: Fri, 10 Feb 2023 10:38:48 +0800 Subject: [PATCH 2767/3123] translating --- ...117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md index c570871d5d..780b10e6e6 100644 --- a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md +++ b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -132,7 +132,7 @@ via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ 作者:[Pradeep Kumar][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[zepoch](https://github.com/zepoch) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From da74208cd0aa23d769cf1c19f6ce256f48f4c842 Mon Sep 17 00:00:00 2001 From: insidentally Date: Fri, 10 Feb 2023 11:32:35 +0800 Subject: [PATCH 2768/3123] translating by Chao-zhi translating by Chao-zhi --- ...use journalctl to View and Analyze Systemd Logs [With Examples].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md index aa7d864ff8..3d3304e43a 100644 --- a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md +++ b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/systemd-journalctl/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -235,7 +235,7 @@ via: https://www.debugpoint.com/systemd-journalctl/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e3ee3728058e3ea63b2fae288e1eabb174ada939 Mon Sep 17 00:00:00 2001 From: insidentally Date: Fri, 10 Feb 2023 12:16:03 +0800 Subject: [PATCH 2769/3123] translated translated --- ...o View and Analyze Systemd Logs [With Examples].md | 131 +++++++++--------- 1 file changed, 67 insertions(+), 64 deletions(-) diff --git a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md index 3d3304e43a..8b12035d3e 100644 --- a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md +++ b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md @@ -7,58 +7,58 @@ [#]: publisher: " " [#]: url: " " -How to use journalctl to View and Analyze Systemd Logs [With Examples] +如何使用 journalctl 查看和分析 Systemd 日志 [附实例] 。 ====== -**This guide explains the basics of the journalctl utility of [Systemd][1] and its various commands. You can use these commands for troubleshooting desktop and server logs in Linux. This is how you can use journalctl to view and analyze Systemd Logs with different examples.** +**本指南介绍了 [Systemd][1] 的 journalctl 工具及其各种命令的基础知识。你可以使用这些命令对 Linux 中的桌面和服务器日志进行故障诊断。以下是如何使用 journalctl 查看和分析 Systemd 日志的不同例子。** -### Introduction +### 简介 -Many say that Systemd is not good, it is heavy on the system and it is a debated topic always. But you can not deny that it provides a well set of utilities to manage, troubleshoot a system. Imagine you end up with a broken system with no GUI. You probably messed up boot and GRUB as well. In those kinds of scenarios or in general – you can boot from a LIVE system, mount your Linux partition and explore the Systemd logs to find out about the problem. +很多人说 Systemd 不好,它对系统的影响很大,这也是一个有争议的话题。但你不能否认的是,它提供了一套完善的工具来管理和排除系统故障。想象一下,当你遇到一个没有 GUI 的坏系统时,你可能会把启动和 GRUB 弄得一团糟。在这种情况下,你可以从一个 live 系统启动,挂上你的 Linux 分区,然后浏览 Systemd 的日志,找出问题所在。 -Systemd has three basic components as follows – +Systemd有三个基本组件,如下所示: -- **systemd**: System and service manager for Linux operating systems. -- **systemctl**: Command to introspect and control the state of the systemd system and service manager. -- **systemd-analyze**: Provides system boot-up performance statistics and retrieve other state and tracing information from the system and service manager +- **systemd**。Linux 操作系统的系统和服务管理器。 +- **systemctl**。命令,用于反观和控制 systemd 系统和服务管理器的状态。 +- **systemd-analyze**。提供系统启动时的性能统计,并从系统和服务管理器中检索其他状态和跟踪信息。 -Apart from these three, there are additional services that systemd provides such as – journald, logind, networkd, etc. In this guide we will talk about the journald service of systemd. +除了这三个服务外,systemd 还提供其他服务,如 journald、logind、networkd 等。在本指南中,我们将讨论 systemd 的 journald 服务。 -### journald – systemd journal daemon +### journald - systemd日志服务 -By design, systemd provides a centralized way of handing all operating system logs from processes, applications, etc. All these logging events are handled by journald daemon of systemd. The journald daemon collects all logs from everywhere of the Linux operating systems and stores themes as binary data in files. +根据设计,systemd 提供了一个集中的方式来处理所有来自进程、应用程序等的操作系统日志。所有这些日志事件都由 systemd 的 journald 守护进程来处理。journald 守护进程收集所有来自 Linux 操作系统各处的日志,并将其作为二进制数据存储在文件中。 -The advantages of centralized logging of events, system problems as binary data are many. For example, as the system logs are stored as binary and not text – you can translate in many ways such as text, JSON objects for various needs. Also, it is super easy to track down to a single event as the logs are stored sequentially via date/time manipulation of the logs. +集中记录事件、系统问题作为二进制数据的好处有很多。例如,由于系统日志是以二进制而不是文本形式存储的--你可以以多种方式进行翻译,如文本、JSON对象,以满足各种需求。另外,由于日志是按顺序存储的,通过对日志的日期/时间操作,超级容易追踪到单个事件。 -Remember the log files that journald collects are in thousands of lines and it gets updated for every event, every boot. So if you have a long time running Linux operating system – the journal logs size should in GBs. As the logs are in thousands, it’s better to filter with basic commands to find out more about the system problems. +请记住,journald 收集的日志文件有几千行,而且每次开机都会对每个事件进行更新。因此,如果你有一个长期运行的 Linux 操作系统--日志的大小应该以 GB 为单位。由于有着数以千计的日志,最好用基本命令进行过滤,以了解更多系统问题。 -#### The journald Configuration File +#### journald 配置文件 -The configuration file of the journald is present in the below path. It contains various flags on how the logging happens. You can take a look at the file and make the changes necessary. But I would recommend not to modify this file unless you know what you are doing. +journald 的配置文件存在于以下路径中。它包含了关于如何进行日志记录的各种标志。你可以看一下这个文件,并进行必要的修改。但我建议不要修改这个文件,除非你知道自己在做什么。 ``` /etc/systemd/journald.conf ``` -#### Where journald stores the binary log files +#### journald 存储二进制日志文件的地方 -The journald stores the logs in binary format. They are stored inside a directory under this path. +journald 以二进制格式存储日志。它们被保存在这个路径下的一个目录中。 ``` /var/log/journal ``` -For example, in the below path there is a directory that contains all the system logs to date. +例如,在下面的路径中,有一个目录包含了迄今为止的所有系统日志。 ![journalctl log file path][2] -Do not use cat command or use nano or vi to open these files. They would not be displayed properly. +不要使用 cat 命令,也不要使用 nano 或 vi 来打开这些文件。它们将无法正常显示。 -### Use journalctl to View and Analyze Systemd Logs +### 使用 journalctl 来查看和分析 systemd 日志 -#### Basic journald command +#### journald 基本命令 -The basic command to view logs using journal daemon is – +使用 journal daemon 查看日志的基本命令是: ``` journalctl @@ -66,11 +66,11 @@ journalctl ![journalctl][3] -This gives you all the journal entries including errors, warnings, etc from all applications and processes. It shows the list with the oldest log at the top and current logs at the bottom. You need to keep pressing ENTER to scroll through it line by line. You can also use PAGE UP and PAGE DOWN keys to scroll. Press q to exit from this view. +该命令提供了所有应用程序和进程的日志条目,包括错误、警告等。它显示的列表中,最古老的日志在顶部,当前的日志在底部。你需要不断按回车键来逐行滚动浏览。你也可以使用 PAGE UP 和 PAGE DOWN 键来滚动。按 q 键可以退出这个视图。 -#### How to view journal entries for time zones +#### 如何以不同时区的时间查看日志条目 -By default, the journalctl shows the log time in the current system time zone. However, you can easily provide the timezone in your command to convert the same log to a different time zone. For example, to view the logs in UTC, use the below command. +默认情况下,journalctl 显示的是当前系统时区的日志时间。然而,你可以很容易地在命令中提供时区,将同一日志转换为不同的时区。例如,要查看 UTC 的日志,请使用以下命令: ``` journalctl --utc @@ -78,11 +78,11 @@ journalctl --utc ![journalctl --utc][4] -#### How to view only errors, warnings, etc in journal logs +#### 如何在日志中只查看错误、警告等信息 -The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command. +系统产生的日志有不同的优先级。有些日志可能是可以忽略的警告,有些可能是重要的错误。你可能想只看错误,不看警告。这也可以用下面的命令来实现。 -To view emergency system messages use: +要查看紧急系统信息,请使用: ``` journalctl -p 0 @@ -90,30 +90,30 @@ journalctl -p 0 ![journalctl -p 0][5] -Error codes +错误代码: ``` -0: emergency -1: alerts -2: critical -3: errors -4: warning -5: notice -6: info -7: debug +0: 紧急情况 +1: 警报 +2: 危急 +3: 错误 +4: 警告 +5: 通知 +6: 信息 +7:调试 ``` -When you specify the error code, it shows all messages from that code and above. For example, if you specify the below command, it shows all messages with priority 2, 1 and 0 +当你指定错误代码时,它显示该等级及比他等级更高的所有信息。例如,如果你指定下面的命令,它会显示所有优先级为 2、1 和 0 的信息: ``` journalctl -p 2 ``` -#### How to view journal logs for a specific boot +#### 如何查看特定启动的日志 -When you are running the journalctl command it shows the information from the current boot that is from the current session which you are running. But it is also possible to view information about past boots as well. +当你运行 journalctl 命令时,它会显示当前启动的信息,即你正在运行的会话中的信息。但也可以查看过去启动的信息。 -Journal logs keep on updating in every reboot. The journald keeps track of the logs in different boots. To view, the boot-wise logs use the below command. +在每次重启时,日志都会持续更新。journald 会记录不同启动时的日志。要查看不同启动时的日志,请使用以下命令。 ``` journalctl --list-boots @@ -121,11 +121,13 @@ journalctl --list-boots ![journalctl list-boots][6] -- The first number shows the unique journald boot track number which you can use in the next command to analyze that specific boot. -- The second number the boot ID which also you can specify in the commands. -- The next two date, time combinations are the duration of the logs stored in the respective file. This is super handy if you want to find out a log or error from a specific date, time. +- 第一个数字显示的是 journald 的唯一的启动跟踪号码,你可以在下一个命令中使用它来分析该特定的启动。 -To view a specific boot number you the first number or the boot ID as below. +- 第二个数字是 boot ID,你也可以在命令中指定。 + +- 接下来的两个日期、时间组合是存储在相应文件中的日志的时间。如果你想找出某个特定日期、时间的日志或错误,这就非常方便了。 + +要查看一个特定的启动号码,你可以选择第一个号码或启动 ID,如下所示。 ``` journalctl -b -45 @@ -137,7 +139,7 @@ journalctl -b 8bab42c7e82440f886a3f041a7c95b98 ![journalctl -b 45][7] -You can also use `-x` switch which can add an explanation of the systemd error messages in your display. This is a lifesaver in certain situations. +你也可以使用 `-x` 选项,在显示屏上添加 systemd 错误信息的解释。在某些情况下,这是个救命稻草。 ``` journalctl -xb -p 3 @@ -145,13 +147,14 @@ journalctl -xb -p 3 ![journalctl -xb][8] -#### How to view journal logs for a specific time, date duration +#### 如何查看某一特定时间、日期的日志记录 -The journalctl is powerful enough to provide “english” like argument in the command itself for time and date manipulation. +journalctl 功能强大,可以在命令中提供类似 "english" 的参数,用于时间和日期操作。 -You can use`--since` switch with a combination of `“yesterday”, “today”, “tomorrow”, or “now”.` +你可以使用 `--since` 选项与 `“yesterday”, “today”, “tomorrow”, 或 “now”` 组合。 + +下面是一些不同命令的例子。你可以根据你的需要修改它们。它们是不言自明的。以下命令中的日期、时间格式为 `"YYYY-MM-DD HH:MM:SS"` -Some of the examples of different commands below. You can modify them as per your need. They are self-explanatory. The date, time format in the below commands are `"YYYY-MM-DD HH:MM:SS"` ``` journalctl --since "2020-12-04 06:00:00" @@ -171,19 +174,19 @@ journalctl --since 09:00 --until "1 hour ago" ![journalctl --since 09:00 --until][9] -You can combine the above with the error level switches as well. +你也可以将上述内容与错误级别开关结合起来。 -#### How to see Kernel specific journal logs +#### 如何查看内核特定的日志记录 -The Linux Kernel messages can be extracted from journal logs as well. To view the Kernel messages from the current boot only use the below command. +Linux 内核信息也可以从日志中提取出来。要查看当前启动时的内核信息,请使用以下命令。 ``` journalctl -k ``` -#### How to see journal logs for a service, PID +#### 如何查看某个服务、PID 的日志 -You can filter out specific logs from a systemd service unit only from the journald logs. For example, to find out the logs from NetworkManager service use the below command. +你可以从 journald 日志中过滤出某个 systemd 服务单元的特定日志。例如,如果要查看 NetworkManager 服务的日志,请使用下面的命令。 ``` journalctl -u NetworkManager.service @@ -191,21 +194,21 @@ journalctl -u NetworkManager.service ![journalctl NetworkManager service][10] -If you do not know the service name, you can use the below command to list the systemd services in your system. +如果你不知道服务名称,可以使用下面的命令来列出系统中的systemd服务。 ``` systemctl list-units --type=service ``` -#### How to view journal logs for a user, group +#### 如何查看用户、组的日志 -If you are analyzing server logs this command is helpful where multiple users are logged in. You can first find out about the user id using the below command from the user name. For example, to find out the id of user “`debugpoint`” – +如果你正在分析服务器日志,在多个用户登录的情况下,这个命令很有帮助。你可以先用下面的命令从用户名中找出用户的 ID。例如,要找出用户 "`debugpoint`" 的ID: ``` id -u debugpoint ``` -Then use that ID with `_UID` switch to view the logs generated by the user. +然后使用 `_UID` 选项指定该ID与来查看该用户产生的日志。 ``` journalctl _UID=1000 --since today @@ -213,11 +216,11 @@ journalctl _UID=1000 --since today ![journalctl _UID][11] -Similarly use `_GID` switch to find out the same for user groups. +同样地,使用 `_GID` 选项也可以查到用户组的情况。 -#### How to view journal logs for an executable +#### 如何查看一个可执行文件的日志 -You can also find out journald logs of a specific program or executable. For example, if you want to find out the messages of gnome-shell, you can run the below command. +你也可以查看某个特定程序或可执行文件的日志。例如,如果你想找出 gnome-shell 的信息,你可以运行以下命令。 ``` journalctl /usr/bin/gnome-shell --since today @@ -225,9 +228,9 @@ journalctl /usr/bin/gnome-shell --since today ![journalctl gnome-shell][12] -### Closing notes +### 结束语 -I hope this guide helps you to use journalctl to view analyze systemd logs on your Linux desktop or server troubleshooting. The systemd journal management extremely powerful if you know how to use the commands, it makes your life a bit easy during debugging time. All major mainstream Linux distribution uses Systemd these days. Ubuntu, Debian, Fedora, Arch – they all use systemd for their default OS offerings. In case if you are wondering about systemd-free Linux distributions, you might want to check out [MX-Linux][13], Gentoo, Slackware, Void Linux. +希望本指南能帮助你使用 journalctl 查看分析 Linux 桌面或服务器上的 systemd 日志,排除故障。如果你知道如何使用这些命令,systemd 日志管理的功能非常强大,它能让你在调试时的生活变得轻松一些。现在所有主流的 Linux 发行版都使用 systemd。Ubuntu、Debian、Fedora、Arch--它们都使用systemd 作为其默认的操作系统产品。如果你想了解无 systemd 的Linux发行版,你可能想看看[MX-Linux][13]、Gentoo、Slackware、Void Linux。 -------------------------------------------------------------------------------- From c62dee3041aae33987ad2d3e9a2d59431ba4e120 Mon Sep 17 00:00:00 2001 From: insidentally Date: Fri, 10 Feb 2023 12:16:57 +0800 Subject: [PATCH 2770/3123] move translated file move translated file --- ... to use journalctl to View and Analyze Systemd Logs [With Examples].md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md (100%) diff --git a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/translated/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md similarity index 100% rename from sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md rename to translated/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md From fdf7f8fde884cbe9e944761e1be7f83e02afb456 Mon Sep 17 00:00:00 2001 From: XiaotingHuang22 <121113659+XiaotingHuang22@users.noreply.github.com> Date: Sat, 11 Feb 2023 01:36:21 +0800 Subject: [PATCH 2771/3123] Update 20210922 My favorite LibreOffice productivity tips.md XiaotingHuang22 translating... --- ... favorite LibreOffice productivity tips.md | 106 ++++++++---------- 1 file changed, 49 insertions(+), 57 deletions(-) diff --git a/sources/tech/20210922 My favorite LibreOffice productivity tips.md b/sources/tech/20210922 My favorite LibreOffice productivity tips.md index d4d5193d19..04016ada2e 100644 --- a/sources/tech/20210922 My favorite LibreOffice productivity tips.md +++ b/sources/tech/20210922 My favorite LibreOffice productivity tips.md @@ -2,97 +2,89 @@ [#]: via: "https://opensource.com/article/21/9/libreoffice-tips" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "XiaotingHuang22" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -My favorite LibreOffice productivity tips +我最喜欢的提高LibreOffice使用生产力的贴士 ====== -Here are some LibreOffice keyboard shortcuts and formatting tips that -might save you valuable time. + +今天我将和大家分享一些LibreOffice的键盘快捷键和排版技巧,希望能够帮你省下宝贵的时间。 ![woman on laptop sitting at the window][1] +![一个拿着笔记本的女人坐在窗边] -LibreOffice is my productivity application of choice. It's one of the most potent reasons for recommending Linux distributions to educators and students, whether PK-12 or higher education. Now that the school year is upon us, I thought I would recommend some LibreOffice shortcuts and tips that might save you valuable time. +LibreOffice是我首选的生产力应用程序。它是向教育工作者和学生推荐 Linux 发行版的最有力理由之一,无论是PK-12还是高等教育。新的学年快到了,我想也是时候推荐一些 LibreOffice 快捷方式和技巧,它们可以为您节省宝贵的时间。 +### 使用键盘快捷键让你工作更快捷 -### Work faster with keyboard shortcuts - -I use a lot of keyboard shortcuts. Here are the most common shortcuts that apply to all LibreOffice applications. - - * **Ctrl**+**N**—Create a new document - * **Ctrl**+**O**—Open a document - * **Ctrl**+**S**—Save a document - * **Ctrl**+**Shift**+**S**—Save as - * **Ctrl**+**P**—Print a document +我平时经常使用键盘快捷键,以下是适用于所有LibreOffice应用程序的最常见的快捷键 + * **Ctrl**+**N**—创建新文档 + * **Ctrl**+**O**—打开一个文档 + * **Ctrl**+**S**—保存文档 + * **Ctrl**+**Shift**+**S**—另存为 + * **Ctrl**+**P**—打印文档 -Here are some shortcut keys just for LibreOffice Writer: - - * **Home**—Takes you to the beginning of the current line. - * **End**—Takes you to the end of a line. - * **Ctrl**+**Home**—Takes the cursor to the start of the document - * **Ctrl**+**End**—Takes the cursor to the end of the document - * **Ctrl**+**A**—Select All - * **Ctrl**+**D**—Double Underline - * **Ctrl**+**E**—Centered - * **Ctrl**+**H**—Find and Replace - * **Ctrl**+**L**—Align Left - * **Ctrl**+**R**—Align Right +这些是仅适用于LibreOffice Writer的快捷键: + * **Home**—移动到当前行的初始位置。 + * **End**—移动至当前行的结尾位置。 + * **Ctrl**+**Home**—将光标移动到文档的初始位置。 + * **Ctrl**+**End**—将光标移动到文档的结尾位置。 + * **Ctrl**+**A**—全选 + * **Ctrl**+**D**—双下划线 + * **Ctrl**+**E**—居中 + * **Ctrl**+**H**—查找并替换 + * **Ctrl**+**L**—左对齐 + * **Ctrl**+**R**—右对齐 -Function keys have value too: - - * **F2**—Opens the formula bar - * **F3**—Completes auto-text - * **F5**—Opens the navigator - * **F7**—Opens spelling and grammar - * **F11**—Opens styles and formatting - * **Shift**+**F11**—Creates a new style +功能键也大有用处: + * **F2**—打开编辑栏 + * **F3**—完成自动文档 + * **F5**—打开导航器; + * **F7**—打开拼写和语法 + * **F11**—打开格式和排版 + * **Shift**+**F11**—创建新样式 -### Document formats +### 文档格式 -There are lots of document formats out there, and LibreOffice supports a good number of them. By default, LibreOffice saves documents to the Open Document Format, an open source standard that stores stylesheets and data in a ZIP container labeled as ODT for text documents, ODS for spreadsheets, and ODP for presentations. It's a flexible format and is maintained by the LibreOffice community as well as the Document Foundation. +文档格式有很多种,其中很多文档格式LibreOffice也是支持的。 默认情况下,LibreOffice 将文档保存为开放文档格式,这是一种开源标准,将样式表和数据存储在 ZIP 容器中,文本文档标记为 ODT,电子表格标记为 ODS,演示文稿标记为 ODP。 它是一种灵活的格式,由 LibreOffice 社区和文档基金会维护。 -The Open Document Format is on by default, so you don't need to do anything to get LibreOffice to use it. +Open Document Format 默认处于启用状态,因此您无需执行任何操作即可让 LibreOffice 使用这种格式。 -Another open specification for documents is Microsoft's [Office Open XML format][2]. It's an ISO standard and is well supported by all the major office solutions. +另一种文档开放规范是 Microsoft 的 [Office Open XML 格式][2]。 它是一个 ISO 标准,并得到所有主要办公解决方案的良好支持。 -If you work with folks using Microsoft Office (which itself is not open source, but it does use the open OOXML format), then they're definitely used to DOCX, XLSX, and, PPTX formats and probably can't open ODT, ODS, or ODP files. You can avoid a lot of confusion by setting LibreOffice to save to OOXML by default. +如果您与使用 Microsoft Office 的人一起工作(它本身不是开源的,但它确实使用开放的 OOXML 格式),那么他们肯定习惯于 DOCX、XLSX 和 PPTX 格式,并且可能无法打开 ODT、ODS , 或 ODP 文件。 您可以通过在LibreOffice中将 OOXML 设置为默认格式来避免很多混乱。 -To set OOXML as your preferred format:  +将 OOXML 设置为您的首选格式: - 1. Click on the **Tools** menu and select **Options** at the bottom of the menu. + 1. 单击“**工具**”菜单并选择菜单底部的“**选项**”。 - 2. In the **Options** window, click on the **Load/Save** category in the left panel and select **General**. + 2. 在“**选项**”窗口中,单击左侧面板中的“**加载/保存**”类别,然后选择“**常规**”。 -![LibreOffice settings panel][3] +![LibreOffice设置面板][3] (Don Watkins, [CC BY-SA 4.0][4]) - 3. Navigate to the **Default File Format and ODF Settings** section. + 3. 导航到**默认文件格式和 ODF 设置**部分。 - 4. Choose _Text document_ for the **Document type** and choose _Open XML (Transitional) (*.docx)_ for the **Always save as **drop-down list. + 4. 在**文档类型**选择_文本文档_,并在**始终另存为**下拉列表选择_Open XML(过渡)(*.docx)_。 - 5. Click **Apply** and then **OK**.  + 5. 点击 **应用** 然后点击 **确定**。 - 6. Deselect the **Warn when not saving in ODF or default format** to avoid confirmation dialogue boxes when saving. + 6. 取消选择**未以 ODF 或默认格式保存时发出警告**以避免在保存时出现确认对话框。 -![LibreOffice save formats][5] +![LibreOffice 保存格式][5] -(Don Watkins, [CC BY-SA 4.0][4]) +按照相同的逻辑重复,重复相同的过程用于XLSX 和 PPTX 文档。 +### 让办公更自由 - - -Repeat the same process XLSX and PPTX documents by following the same logic.  - -### Free your office - -The LibreOffice project is managed by a thriving community of users and developers, in tandem with the Document Foundation. This includes an Engineering Steering Committee, a Board of Directors, independent developers and designers and translators, and more. These teams are always open to your contribution, so if you're eager to participate in a great open source project, don't hesitate to [get involved][6]. +LibreOffice 项目由蓬勃发展的用户和开发人员社区与文档基金会共同管理。 这包括工程指导委员会、董事会、独立开发人员、设计师和翻译人员等。 这些团队始终欢迎各位的贡献,因此如果您渴望参与一个超赞的开源项目,请不要犹豫[参与进来][6]。 -------------------------------------------------------------------------------- @@ -100,7 +92,7 @@ via: https://opensource.com/article/21/9/libreoffice-tips 作者:[Don Watkins][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[XiaotingHuang22](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c390307f377b14bd556d44047c0e8ad477ab975a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 11 Feb 2023 10:39:39 +0800 Subject: [PATCH 2772/3123] RP @geekpi https://linux.cn/article-15529-1.html --- ...30202.1 ⭐️ Learn Basic by coding a game.md | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) rename {translated/tech => published}/20230202.1 ⭐️ Learn Basic by coding a game.md (80%) diff --git a/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/published/20230202.1 ⭐️ Learn Basic by coding a game.md similarity index 80% rename from translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md rename to published/20230202.1 ⭐️ Learn Basic by coding a game.md index 11739520c9..bc1ec0b08f 100644 --- a/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md +++ b/published/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -3,20 +3,24 @@ [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15529-1.html" -通过游戏学习 Basic +通过“猜数字”游戏学习 Basic ====== +![][0] + +> 本教程让你通过编写一个 “猜数字” 游戏来探索 Basic。 + 用多种语言编写同一个应用是学习新的编程语言的好方法。大多数编程语言都有某些共同点,如: - 变量 - 表达式 - 语句 -这些概念是大多数编程语言的基础。当你理解了它们,你就可以开始琢磨其他的东西了。 +这些概念是大多数编程语言的基础。当你理解了它们,你就可以开始研究其他的东西了。 编程语言通常有一些相似之处。当你了解了一种编程语言,你就可以通过认识其差异来学习另一种语言的基础知识。 @@ -34,13 +38,13 @@ ### 在(Bywater)Basic 中猜数字 -对于 Basic 编程语言,没有真正的标准。维基百科说:“BASIC(初学者通用符号指令代码)是一个通用的高级编程语言系列,旨在方便使用”。[BWBasic][1] 的实现是在 GPL 下提供的。 +对于 Basic 编程语言,没有真正的标准。维基百科说:“BASIC(初学者通用符号指令代码Beginners' All-purpose Symbolic Instruction Code)是一个通用的高级编程语言系列,旨在方便使用”。[BWBasic][1] 的实现是在 GPL 下提供的。 你可以通过编写一个“猜数字”游戏来探索 Basic。 ### 在 Linux 上安装 Basic -在 Debian 或 Ubuntu 中,你可以用以下方法安装Basic: +在 Debian 或 Ubuntu 中,你可以用以下方法安装 Basic: ``` $ apt install -y bwbasic @@ -77,8 +81,8 @@ Basic 程序可以是编号的,也可以是不编号的。通常情况下, 按照惯例,编码者将行写成 10 的倍数。这种方法允许在现有的行之间插入新的行,以便进行调试。下面是我对上述方法的解释: -- 10 行:使用内置的 **rnd** 函数计算一个 1 到 100 之间的随机值,该函数生成一个 0 到 1 之间的数字,不包括 1。 -- 20 行:询问一个猜测,并将该值放入 **guess$ 标量**变量。30 行将该值转换为一个数字。 +- 10 行:使用内置的 `rnd` 函数计算一个 1 到 100 之间的随机值,该函数生成一个 0 到 1 之间的数字,不包括 1。 +- 20 行:询问一个猜测,并将该值放入 `guess$` 标量变量。30 行将该值转换为一个数字。 - 40 行和 50 行:根据比较结果,给猜测者以反馈。 - 70 行:回到循环的起点。 - 60 行:通过将控制权转移到 80 行来打破循环。80 行是最后一行,所以程序在这之后退出。 @@ -122,7 +126,7 @@ via: https://opensource.com/article/23/2/learn-basic-coding-game 作者:[Moshe Zadka][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/) 荣誉推出 @@ -130,3 +134,4 @@ via: https://opensource.com/article/23/2/learn-basic-coding-game [b]: https://github.com/lkxed [1]: https://yeolpishack.net/repos/ChipMaster/bwBASIC [2]: https://github.com/nerun/bwbasic/releases +[0]: https://img.linux.net.cn/data/attachment/album/202302/11/103834qsra0ryedbdnrdez.jpg \ No newline at end of file From d5e41f0184f9f38d1d939f20cb599aebe2499f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 12:08:28 +0800 Subject: [PATCH 2773/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230210.0=20=E2=AD=90=EF=B8=8F=20Opera=20Browser=20?= =?UTF-8?q?Plans=20to=20Integrate=20ChatGPT.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Opera Browser Plans to Integrate ChatGPT.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 sources/news/20230210.0 ⭐️ Opera Browser Plans to Integrate ChatGPT.md diff --git a/sources/news/20230210.0 ⭐️ Opera Browser Plans to Integrate ChatGPT.md b/sources/news/20230210.0 ⭐️ Opera Browser Plans to Integrate ChatGPT.md new file mode 100644 index 0000000000..460a855346 --- /dev/null +++ b/sources/news/20230210.0 ⭐️ Opera Browser Plans to Integrate ChatGPT.md @@ -0,0 +1,61 @@ +[#]: subject: "Opera Browser Plans to Integrate ChatGPT" +[#]: via: "https://debugpointnews.com/opera-chatgpt-integration/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Opera Browser Plans to Integrate ChatGPT +====== + +![][1] + +**Opera browser is reportedly looking to integrate the language model ChatGPT into its desktop and mobile products.** + +### In brief + +- Opera browser, a popular desktop and mobile web browser is reportedly exploring integrating the language model ChatGPT into its products. +- Microsoft recently announced the integration of OpenAI technology, the maker of ChatGPT, into its Microsoft Edge web browser, adding AI-powered features for users. + +### Opera and ChatGPT + +[Opera][2], a widely-used desktop and mobile web browser is set to integrate the language model ChatGPT into its software products. Opera’s parent company Kunlun Tech is behind the news, although the details of the integration remain limited. Opera offers a range of software products, including desktop web browsers, mobile web browsers, and a version of its browser designed for Chromebooks. + +The most likely candidates for the ChatGPT integration are Opera’s main desktop browsers, including Opera browser and Opera GX, a browser designed for gamers. However, there is also potential for integration into Opera’s mobile browsers, including the regular Opera mobile browser, Opera Mini, and Opera Crypto Browser. + +### Recent updates from Microsoft and Google + +Microsoft made headlines this week by announcing OpenAI integration into its Microsoft Edge web browser. The integration will bring two AI-powered features, Chat and Compose, to Edge users in the future. Chat allows users to communicate directly with the AI in the browser. At the same time, Compose helps users with text composition, including writing emails and social media posts with different tones and lengths. + +During a recent presentation, Google did not announce direct AI chatbot integration into its Chrome browser, which received a less-than-enthusiastic response. + +### What’s next + +Opera browser is used by hundreds of millions of users, with a 2.4% share of the global browser market, according to Statcounter. While it may trail behind Google Chrome’s 65% and Safari’s 18%, it still holds its own compared to Mozilla Firefox’s 3%. + +Kunlun Tech is a Beijing-based company listed on the Shenzhen stock exchange. This week, Chinese search giant Baidu announced plans to integrate a ChatGPT-style bot into its search product. + +In conclusion, the integration of ChatGPT into the Opera browser represents a significant step forward in AI-powered web browsing. As companies like Microsoft and Baidu integrate AI technology into their products, Opera is positioning itself as a leader in the field. + +With hundreds of millions of users and a growing presence in the browser market, the integration of ChatGPT into Opera is a highly-anticipated development. + +Via [CNBC][3] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/opera-chatgpt-integration/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed +[1]: https://debugpointnews.com/wp-content/uploads/2023/02/opera.jpg +[2]: https://www.opera.com/ +[3]: https://www.cnbc.com/2023/02/09/web-browser-opera-is-planning-to-incorporate-chatgpt.html From d69387aee61fbf97ea79e362a095a040a9e99174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 12:20:14 +0800 Subject: [PATCH 2774/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230210.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?What=20an=20open=20license=20means=20to=20gamers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️⭐️ What an open license means to gamers.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 sources/talk/20230210.1 ⭐️⭐️ What an open license means to gamers.md diff --git a/sources/talk/20230210.1 ⭐️⭐️ What an open license means to gamers.md b/sources/talk/20230210.1 ⭐️⭐️ What an open license means to gamers.md new file mode 100644 index 0000000000..4fe1d0523b --- /dev/null +++ b/sources/talk/20230210.1 ⭐️⭐️ What an open license means to gamers.md @@ -0,0 +1,95 @@ +[#]: subject: "What an open license means to gamers" +[#]: via: "https://opensource.com/article/23/2/what-open-license-means-gamers" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +What an open license means to gamers +====== + +When it was released over 20 years ago, the Open Gaming License 1.0a (OGL) changed the tabletop gaming industry. It enabled publishers to use portions of the D&D rules, verbatim, in their own game books. It guaranteed that the owner of the D&D brand wouldn't sue you for creating and selling modular rules and adventures for the D&D game. And more importantly, it became a promise of collaboration for the gaming community. When you wanted to broadcast to other players that you were willing and eager to share ideas, you included the OGL in your game book, marking your game as open. + +Recently, Wizards of the Coast attempted to revoke the Open Gaming License 1.0a, apparently on the grounds that legally the word "perpetual" isn't the same as "irrevocable". Luckily, the gaming community united and defended the license, and in the end Wizards of the Coast acquiesced. As a sign of good faith that [came too late for many players][1], Wizards of the Coast [released the System Reference Document (SRD)][2], a subset of the rules published in the hardcover D&D book, into the Creative Commons. + +In essence, the fifth edition of the world's first role-playing game (D&D) no longer belongs to Wizards of the Coast. It belongs to its community of players. + +As an open source enthusiast, that makes a lot of sense to me, but I admit that for most people it probably seems odd that a corporation would be compelled by its community to surrender ownership of its main product. It's worth noting that D&D probably wouldn't still be around today if it hadn't maintained an open license for nearly 20 years (it wandered away from this during its 4th edition, but hastily course-corrected for the 5th edition). It's an important turn of events, not only gamers, but everyone invested in the idea of open culture and open source. + +### What open licensing means to gamers + +Since the Open Gaming License was released in the early 2000s, there have been hundreds of games and adventures and supplements and source books that were never obligated to use the OGL. They were written from scratch using original language, never borrowing from a System Reference Document in any direct way. Just as there were lots of roleplaying supplements back in the 80s that _happened_ to work with that one game by TSR, these books are independent material that often _happen_ to work with existing systems. But authors chose to use the OGL 1.0a because they recognized that sharing ideas, mechanics, and content was what tabletop roleplaying is all about. It's what it's always been about. Getting together with friends, some old and some new, and inspiring each other. That fellowship extended to the computer screen once digital technology and its infrastructure got good enough to facilitate extended video and voice calls, and to provide emulated tabletops, and so the pool of [potential friendships][3] got even bigger. The OGL 1.0a was a document you could copy and paste into your book as a sign that you wanted to collaborate. You were inviting people to your writer's desk and to your gaming table. + +**[ Related read: [Why sysadmins should license their code for open source][4] ]** + +For a lot of gamers, the Open Gaming License 1.0a also defined the word "open". Being open is different than what we're used to. There's a lot of implied openness out there. Sure, you're allowed to dress up as your favourite Star Wars character—until Disney says otherwise. And maybe you can write some fan fiction based around your favourite TV series—as long as you don't sell it. + +But the OGL 1.0a tells you exactly what you can use, and reference documents provide rules you can freely copy and paste into your own work, and then other authors can use your content to build up something cool. And nobody's restricted from selling their work, so it literally meant people could turn their hobby into their day job. And nobody could take that away. + +### What "open" means for everyone + +In the software world, the definition of "open" is ardently protected by organizations like the [Open Source Initiative][5]. But for many gamers, that definition was a function of the Open Gaming License 1.0a. And Wizards of the Coast was trying to redefine it. + +The term "open" is arguably best defined by the Free Software Foundation, which ironically doesn't use the term "open" and prefers "free" instead. Here's how the FSF defines the term "free": + +- The freedom to run code as you wish, for any purpose. +- The freedom to study code to understand how it works, and to change it so it works better for you. +- The freedom to redistribute copies of the original code. +- The freedom to distribute copies of your modified code to others. + +Extrapolating this to culture, you have similar concepts, including the freedom to share, the freedom to change and adapt, and the freedom to receive recognition for the work you've contributed. + +### 3 open licenses gamers need to know + +If you're a gamer who's confused about open licensing, don't let the recent attempt to revoke the Open Gaming License fool you. The important thing to remember is that an open community can exist with or without a corporate sponsor. You don't need the legal system to create an open gaming environment, but in today's world you may need a legal system to defend it. And there are licenses out there to help with that. + +### 1. Creative Commons + +The [Creative Commons (CC) license][6] is an agreement you can apply to something you've created, explicitly granting other people permission to redistribute and maybe even remix your work. The CC license is modular, so you get to decide what permissions you grant. There's an online "quiz" at [creativecommons.org/choose][7] to help you pick the right license for your project. + +### 2. GNU Free Documentation + +The 90s RPG **Dead Earth** was published using the GNU Free Documentation license, and it makes sense when you consider that most tabletop games are essentially just a set of rules. Game rules are essentially the "code" of a game written in natural language, so a license intended for technical documentation might make some sense for a game. The GNU Free Documentation license is a modern license, acknowledging that many documents exist only online as wiki pages, or that they may also be licensed under a Creative Commons license. It's also got provisions for the difference between making a personal copy of a book and printing a book by the hundreds. + +To find out more about the GNU Free Documentation license, visit [gnu.org/licenses/fdl-1.3.txt][8]. + +### 3. Open RPG Creative (ORC) License + +The ORC license doesn't yet exist, but it's being formulated, in the open and with public participation, by well-known game publisher Paizo. This license is aiming to replace the OGL with legal text that recognizes the unique needs of a gaming system, in which trademarks and copyrighted material (such as lore, a fictional pantheon, the names of magic spells, and so on) intermingle. The ORC license seeks to make it possible for game publishers to explicitly allow and foster participation and ownership for its community, while also retaining control of the fictional world in which their own version of the game is set. Once completed, the ORC license will be placed in the trust of a non-profit foundation so that no company, in the future, can claim ownership of it with the aim of revoking or altering it. + +### An open systems reference document + +The right license guarantees that others can build upon what you've created. For tabletop role-playing games, the thing being created is a set of rules. In the context of a game, a "rule" is an agreement all the players make with one another to define constraints for what you're "allowed" to do during the game. Of course, it's just a game so you can literally do whatever you want, but the rules define what you can expect as a result. + +It's generally acknowledged that game rules aren't subject to copyright. They are seen as community property, but the literal words used to describe those rules are written by someone, and so the author of a rulebook does hold the copyright to their personal expression of a rule. But opening up copyright material for re-use is exactly what licenses were created for, and so a rulebook distributed under an open source license means that you can copy and paste text straight from that rulebook into your own publication without betraying anyone's trust. + +The [system-reference-document.org][9] project is working to preserve the D&D 5.1 rules (called the "System Reference Document") and to forge ahead with revisions as developed by the community. Visit the site today to download the open source D&D rules. Read them over, play a few games, and take note of what's confusing and what doesn't seem to work. Think about what you'd change. Maybe you don't like how passive perception works (wouldn't it be better as a codified reaction that could override a surprise effect?), or maybe the character build process is confusing (surely it could be delivered as a linear process of requirements?), or maybe there's something else. Now, thanks to open licensing, and to projects like systems-reference-document.org, you can help change the issues you have with the game. + +### Open means open + +For many of us, open source and open culture are the default. It feels unnecessary and self-important to declare a license for the work we put out into the world. But it's important to remember that not everyone knows your intent. When you release something to the world with the intent for it to be reused, shared, and maybe even remixed, apply an open license to it as a way of reassuring your collaborators-to-be that you support common culture, creativity, and open source. It might seem simple to quickly write your own statement of intent, call it a legal license, and paste it into your document, but if the fight to preserve the OGL has taught us anything, it's that the language of the legal system is not easily learned. Use a trusted license that has a community of stakeholders behind it, so that should it ever be threatened, you have a loud and collective voice to use in its defense. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/what-open-license-means-gamers + +作者:[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://koboldpress.com/project-black-flag-update-sticking-to-our-principles?utm_source=opensource.com +[2]: https://www.dndbeyond.com/attachments/39j2li89/SRD5.1-CCBY4.0License.pdf +[3]: https://opensource.com/article/21/3/open-source-streaming +[4]: https://opensource.com/article/23/1/why-sysadmins-should-license-code-open-source +[5]: http://opensource.org +[6]: https://opensource.com/article/20/1/what-creative-commons +[7]: https://creativecommons.org/choose/ +[8]: https://www.gnu.org/licenses/fdl-1.3.txt +[9]: https://github.com/system-reference-document/ From 213b0a5fd6826018aef01e9d4ecc785abdce297e Mon Sep 17 00:00:00 2001 From: XiaotingHuang22 <121113659+XiaotingHuang22@users.noreply.github.com> Date: Sat, 11 Feb 2023 13:51:39 +0800 Subject: [PATCH 2775/3123] Update and rename sources/tech/20210922 My favorite LibreOffice productivity tips.md to translated/tech/20210922 My favorite LibreOffice productivity tips.md --- .../20210922 My favorite LibreOffice productivity tips.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rename {sources => translated}/tech/20210922 My favorite LibreOffice productivity tips.md (97%) diff --git a/sources/tech/20210922 My favorite LibreOffice productivity tips.md b/translated/tech/20210922 My favorite LibreOffice productivity tips.md similarity index 97% rename from sources/tech/20210922 My favorite LibreOffice productivity tips.md rename to translated/tech/20210922 My favorite LibreOffice productivity tips.md index 04016ada2e..cf816fd46f 100644 --- a/sources/tech/20210922 My favorite LibreOffice productivity tips.md +++ b/translated/tech/20210922 My favorite LibreOffice productivity tips.md @@ -11,8 +11,7 @@ ====== 今天我将和大家分享一些LibreOffice的键盘快捷键和排版技巧,希望能够帮你省下宝贵的时间。 -![woman on laptop sitting at the window][1] -![一个拿着笔记本的女人坐在窗边] +![一个拿着笔记本的女人坐在窗边][1] LibreOffice是我首选的生产力应用程序。它是向教育工作者和学生推荐 Linux 发行版的最有力理由之一,无论是PK-12还是高等教育。新的学年快到了,我想也是时候推荐一些 LibreOffice 快捷方式和技巧,它们可以为您节省宝贵的时间。 ### 使用键盘快捷键让你工作更快捷 @@ -92,7 +91,7 @@ via: https://opensource.com/article/21/9/libreoffice-tips 作者:[Don Watkins][a] 选题:[lujun9972][b] -译者:[XiaotingHuang22](https://github.com/译者ID) +译者:[XiaotingHuang22](https://github.com/XiaotingHuang22) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d3f62b2449aff1b979e7a7653050830befe2250f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:08:32 +0800 Subject: [PATCH 2776/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230210.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?How=20open=20source=20leaders=20can=20foster=20an=20inclusive?= =?UTF-8?q?=20environment.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rce leaders can foster an inclusive environment.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sources/talk/20230210.2 ⭐️⭐️ How open source leaders can foster an inclusive environment.md diff --git a/sources/talk/20230210.2 ⭐️⭐️ How open source leaders can foster an inclusive environment.md b/sources/talk/20230210.2 ⭐️⭐️ How open source leaders can foster an inclusive environment.md new file mode 100644 index 0000000000..2a0667bd09 --- /dev/null +++ b/sources/talk/20230210.2 ⭐️⭐️ How open source leaders can foster an inclusive environment.md @@ -0,0 +1,58 @@ +[#]: subject: "How open source leaders can foster an inclusive environment" +[#]: via: "https://opensource.com/article/23/2/open-source-leaders-inclusive-environment" +[#]: author: "Kate Carcia Poulin https://opensource.com/users/kcarcia" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How open source leaders can foster an inclusive environment +====== + +Open source leaders can foster inclusive communities for newcomers by creating belonging, providing opportunities, and showing support. They understand the intricacies of submitting code and making connections with other community members. In doing so, they build credibility and gain influence. This experience is invaluable to contributors who want to participate but don't know where to start. + +A few years ago, I found myself in this daunting position when I began managing a team active in the Linux kernel community without any experience in kernel myself. The complex code base, expansive email archives, and high-stakes communications intimidated me. When new kernel developers on my team expressed similar feelings, I realized my experience was ubiquitous. For those supporting contributors or those seeking to contribute themselves, the path to entry is not always clear and can feel unattainable. + +### 4 strategies for inclusive leadership + +Open source leaders can have an impact by creating pathways for those looking to integrate into the community. The strategies covered in this article can be applied in formal [mentoring][1] or [coaching][2] relationships but are just as applicable in day-to-day interactions. Seemingly minor exchanges often have the most significant impacts when fostering inclusivity in an environment. + +### Approach with curiosity + +Someone with less experience or coming from a non-traditional background may solve problems in unexpected or different ways. Reacting to those differences with judgment or criticism can create an unsafe environment for learning in communities that often have a steep knowledge curve. For example, long-time contributors to the Linux kernel understand its rich history. This means they have an implied understanding of community decisions and reactions. New contributors must build this knowledge but can only effectively do so if they feel safe taking necessary risks to grow their skill set. + +Open source leaders can support newcomers as they learn by approaching them with curiosity. Consider asking questions like, "Can you help me understand why you took this approach?" rather than declaring proposed solutions "right or wrong". Questions open a dialog for continued learning rather than shutting down ideas that are an important aspect of exploration. This process also broadens the leader's viewpoint, who can learn by considering fresh perspectives. + +### Identify and share learning opportunities + +Open source leaders can identify projects suitable for others to gain technical expertise and learn community processes. In creating opportunities for others, leaders also create more opportunities for themselves. This is because they make more time to explore new endeavors while continuing to advance their work through delegation. As leaders grow, their ability to enable others around them to succeed becomes just as critical as their direct contributions. + +Knowing that [failure][3] is a part of learning, think about identifying projects where newcomers can safely fail without drastic consequences. In the Linux kernel, for example, there are certain parts of the code base where small changes can have disastrous consequences. Consider projects where small wins are achievable to help newcomers build confidence and feel empowered without high stakes. Make these ideas accessible by sharing them at conferences, in email forums, or in any way your community advertises how to become involved. + +### Demonstrate vulnerability + +Having more experience doesn't mean you know everything. More often than not, even the most experienced Linux kernel contributors I've worked with are humbled by new challenges in uncharted subsystems. It's common for community members with less experience to view more experienced community members as having it all figured out. But having experience is about being adept at figuring out what you don't know. If you are in a position of authority and regarded as an expert, demonstrating vulnerability by sharing personal experiences of struggle and perseverance can be encouraging to those dealing with similar feelings. + +### Vouch for others + +Introduce newcomers to your network. Connect them with community members with expertise in areas that pique their interests. Say their name in public forums and call out the excellent work they are doing. As a respected leader, your endorsement can help them build connections and trust within the community. + +We can have rich and diverse communities by building in inclusivity. It is my hope that open source leaders will consider these suggestions because those you lift into the community will someday be able to extend a hand to others. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/open-source-leaders-inclusive-environment + +作者:[Kate Carcia Poulin][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/kcarcia +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/22/8/mentoring-power-multiplier +[2]: https://enterprisersproject.com/article/2021/4/it-leadership-how-to-coach?intcmp=7013a000002qLH8AAM +[3]: https://opensource.com/article/20/11/normalize-failure From b9963d98ba5ab87009512abb6318efa6fa124e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:15:12 +0800 Subject: [PATCH 2777/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230210.3=20=E2=AD=90=EF=B8=8F=20Verified=20Flatpak?= =?UTF-8?q?=20Apps=20are=20Coming=20Soon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Verified Flatpak Apps are Coming Soon.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sources/news/20230210.3 ⭐️ Verified Flatpak Apps are Coming Soon.md diff --git a/sources/news/20230210.3 ⭐️ Verified Flatpak Apps are Coming Soon.md b/sources/news/20230210.3 ⭐️ Verified Flatpak Apps are Coming Soon.md new file mode 100644 index 0000000000..dcf3b83b6c --- /dev/null +++ b/sources/news/20230210.3 ⭐️ Verified Flatpak Apps are Coming Soon.md @@ -0,0 +1,86 @@ +[#]: subject: "Verified Flatpak Apps are Coming Soon" +[#]: via: "https://news.itsfoss.com/verified-flatpak-apps/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Verified Flatpak Apps are Coming Soon +====== + +Flatpak apps now have a verified badge icon, only on the beta portal for now. + +![Verified Flatpak Apps are Coming Soon][1] + +This was already in the works since late last year when a GitHub [merge request][2] added initial support for a status verification icon on the Flathub site. + +And now, the verified apps can be seen on Flathub's beta platform. + +**What is it?:** It is a work-in-progress verification system for Flatpak apps on the Flathub platform that will **facilitate showing a blue check mark** beside the name of an app after it has been verified. + +![the beta platform of flathub showcasing the various verified apps][3] + +As you can see, currently, over 70 apps, have been added to the [verified list on the beta platform][4]. We expect this number to increase when this is made available for general use. + +![screenshot from beta.flathub.org showing an app listed with a verified icon badge][5] + +**How to get verified?:** The developers have to log in to [beta.flathub.org][6] with the GitHub or GitLab account linked to their app, then head to your **Developer Profile.** + +You need to **select the app** to verify (if there are multiple) and then follow the instructions under "**Developer Settings**". + +Furthermore, **there are concerns** over which apps should be allowed to gain verified status. + +For instance, a Reddit user [raised concerns][7] when they noticed an unofficial client for WhatsApp had gained verified status. + +Sure, it means that the app developer is the one maintaining/publishing the Flatpak. But **it is still a third-party app and not something from WhatsApp**. + +You get the point. + +> 📝 The app has since been removed from the verified list. + +This can cause plenty of issues, especially related to copyright ones, where the [IP][8] holder could quickly **object to their property** being repackaged and used as an official-looking copy. + +Let's see how Flathub handles situations like this when this feature is rolled out fully. + +**When can you expect it?:** Sometime this year would be my best guess, as there has not been an official announcement giving a specified date. + +Its implementation on Flathub's beta channel is a good sign. + +_💬 What do you think about Flatpak apps' verified badge icons finally being tested with its beta portal? Share your thoughts in the comments down below._ + +### More from It's FOSS... + +- 📩 Stay updated with the latest on Linux and Open Source. Get our [weekly Newsletter][9]. +- Understand the [difference between Snap and Flatpak][10]. +- 🎟️ Near California? Attend the [SCALE][11] conference from March 9-12. +- [Upcoming code editors][12] to challenge the VS Code supremacy. +- Promising [new distros in 2023][13]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/verified-flatpak-apps/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/flathub-verified-apps.png +[2]: https://github.com/flathub/website/commit/5aae6b759b15ae26c155a0c8c18f13ca0da29ee3 +[3]: https://news.itsfoss.com/content/images/2023/02/Flathub_Verified_Beta.jpg +[4]: https://beta.flathub.org/apps/collection/verified +[5]: https://news.itsfoss.com/content/images/2023/02/flathub-verified-app-icons.jpg +[6]: https://beta.flathub.org +[7]: https://www.reddit.com/r/linux/comments/10xones/comment/j7u2zgr/ +[8]: https://en.wikipedia.org/wiki/Intellectual_property +[9]: https://itsfoss.com/signup/ +[10]: https://itsfoss.com/flatpak-vs-snap/ +[11]: https://www.socallinuxexpo.org/scale/20x +[12]: https://news.itsfoss.com/upcoming-code-editors/ +[13]: https://news.itsfoss.com/new-distros-2023/ From 057246d703acdfeac1831fe44086c3ceccd1618d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 11 Feb 2023 16:20:25 +0800 Subject: [PATCH 2778/3123] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @xiaotingHuang22 感谢您,完成了第一篇翻译贡献! --- ... favorite LibreOffice productivity tips.md | 104 ++++++++---------- 1 file changed, 47 insertions(+), 57 deletions(-) diff --git a/translated/tech/20210922 My favorite LibreOffice productivity tips.md b/translated/tech/20210922 My favorite LibreOffice productivity tips.md index cf816fd46f..8093eba483 100644 --- a/translated/tech/20210922 My favorite LibreOffice productivity tips.md +++ b/translated/tech/20210922 My favorite LibreOffice productivity tips.md @@ -3,87 +3,76 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lujun9972" [#]: translator: "XiaotingHuang22" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -我最喜欢的提高LibreOffice使用生产力的贴士 +提高 LibreOffice 生产力的技巧 ====== -今天我将和大家分享一些LibreOffice的键盘快捷键和排版技巧,希望能够帮你省下宝贵的时间。 -![一个拿着笔记本的女人坐在窗边][1] +![][0] + +> 今天我将和大家分享一些 LibreOffice 的键盘快捷键和排版技巧,希望能够帮你省下宝贵的时间。 + +LibreOffice 是我首选的生产力应用程序。它是向教育工作者和学生推荐 Linux 发行版的最有力理由之一,无论是 PK-12 还是高等教育。新的学年快到了,我想也是时候推荐一些 LibreOffice 快捷方式和技巧,它们可以为你节省宝贵的时间。 -LibreOffice是我首选的生产力应用程序。它是向教育工作者和学生推荐 Linux 发行版的最有力理由之一,无论是PK-12还是高等教育。新的学年快到了,我想也是时候推荐一些 LibreOffice 快捷方式和技巧,它们可以为您节省宝贵的时间。 ### 使用键盘快捷键让你工作更快捷 -我平时经常使用键盘快捷键,以下是适用于所有LibreOffice应用程序的最常见的快捷键 - * **Ctrl**+**N**—创建新文档 - * **Ctrl**+**O**—打开一个文档 - * **Ctrl**+**S**—保存文档 - * **Ctrl**+**Shift**+**S**—另存为 - * **Ctrl**+**P**—打印文档 +我平时经常使用键盘快捷键,以下是适用于所有 LibreOffice 应用程序的最常见的快捷键 + * `Ctrl+N` — 创建新文档 + * `Ctrl+O` — 打开一个文档 + * `Ctrl+S` — 保存文档 + * `Ctrl+Shift+S` — 另存为 + * `Ctrl+P` — 打印文档 +这些是仅适用于 LibreOffice Writer 的快捷键: -这些是仅适用于LibreOffice Writer的快捷键: - * **Home**—移动到当前行的初始位置。 - * **End**—移动至当前行的结尾位置。 - * **Ctrl**+**Home**—将光标移动到文档的初始位置。 - * **Ctrl**+**End**—将光标移动到文档的结尾位置。 - * **Ctrl**+**A**—全选 - * **Ctrl**+**D**—双下划线 - * **Ctrl**+**E**—居中 - * **Ctrl**+**H**—查找并替换 - * **Ctrl**+**L**—左对齐 - * **Ctrl**+**R**—右对齐 - - + * `Home` — 移动到当前行的初始位置 + * `End` — 移动至当前行的结尾位置 + * `Ctrl+Home` — 将光标移动到文档的初始位置 + * `Ctrl+End` — 将光标移动到文档的结尾位置 + * `Ctrl+A` — 全选 + * `Ctrl+D` — 双下划线 + * `Ctrl+E` — 居中 + * `Ctrl+H` — 查找并替换 + * `Ctrl+L` — 左对齐 + * `Ctrl+R` — 右对齐 功能键也大有用处: - * **F2**—打开编辑栏 - * **F3**—完成自动文档 - * **F5**—打开导航器; - * **F7**—打开拼写和语法 - * **F11**—打开格式和排版 - * **Shift**+**F11**—创建新样式 - - + * `F2` — 打开公式栏 + * `F3` — 自动补完 + * `F5` — 打开导航器 + * `F7` — 打开拼写和语法 + * `F11` — 打开格式和排版 + * `Shift+F11` — 创建新样式 ### 文档格式 -文档格式有很多种,其中很多文档格式LibreOffice也是支持的。 默认情况下,LibreOffice 将文档保存为开放文档格式,这是一种开源标准,将样式表和数据存储在 ZIP 容器中,文本文档标记为 ODT,电子表格标记为 ODS,演示文稿标记为 ODP。 它是一种灵活的格式,由 LibreOffice 社区和文档基金会维护。 +文档格式有很多种,LibreOffice 支持其中很多文档格式。默认情况下,LibreOffice 将文档保存为 开放文档格式Open Document Format(ODF),这是一种开源标准,将样式表和数据存储在 ZIP 容器中,文本文档标记为 ODT,电子表格标记为 ODS,演示文稿标记为 ODP。它是一种灵活的格式,由 LibreOffice 社区和文档基金会维护。 -Open Document Format 默认处于启用状态,因此您无需执行任何操作即可让 LibreOffice 使用这种格式。 +ODF 是默认启用的,因此你无需执行任何操作即可让 LibreOffice 使用这种格式。 -另一种文档开放规范是 Microsoft 的 [Office Open XML 格式][2]。 它是一个 ISO 标准,并得到所有主要办公解决方案的良好支持。 +另一种文档开放规范是微软的 [Office Open XML(OOXML)格式][2]。它是一个 ISO 标准,并得到所有主要办公解决方案的良好支持。 -如果您与使用 Microsoft Office 的人一起工作(它本身不是开源的,但它确实使用开放的 OOXML 格式),那么他们肯定习惯于 DOCX、XLSX 和 PPTX 格式,并且可能无法打开 ODT、ODS , 或 ODP 文件。 您可以通过在LibreOffice中将 OOXML 设置为默认格式来避免很多混乱。 +如果你与使用微软 Office 的人一起工作(它本身不是开源的,但它确实使用开放的 OOXML 格式),那么他们肯定习惯于 DOCX、XLSX 和 PPTX 格式,并且可能无法打开 ODT、ODS 或 ODP 文件。你可以通过在 LibreOffice 中将 OOXML 设置为默认格式来避免很多混乱。 -将 OOXML 设置为您的首选格式: +将 OOXML 设置为你的首选格式: - 1. 单击“**工具**”菜单并选择菜单底部的“**选项**”。 + 1. 单击 “工具Tools” 菜单并选择菜单底部的 “选项Options”。 + 2. 在 “选项Options” 窗口中,单击左侧面板中的 “加载/保存Load/Save” 类别,然后选择 “常规General”。 + ![LibreOffice设置面板][3] + 3. 导航到 “默认文件格式和 ODF 设置Default File Format and ODF Settings” 部分。 + 4. 在 “文档类型Document type” 选择 “文本文档Text document”,并在 “始终另存为Always save as” 下拉列表选择 “Open XML (Transitional) (*.docx) ”。 + 5. 点击 “应用Apply” 然后点击 “确定OK”。 + 6. 取消选择 “未以 ODF 或默认格式保存时发出警告Warn when not saving in ODF or default format ” 以避免在保存时出现确认对话框。 + ![LibreOffice 保存格式][5] - 2. 在“**选项**”窗口中,单击左侧面板中的“**加载/保存**”类别,然后选择“**常规**”。 - -![LibreOffice设置面板][3] - -(Don Watkins, [CC BY-SA 4.0][4]) - - 3. 导航到**默认文件格式和 ODF 设置**部分。 - - 4. 在**文档类型**选择_文本文档_,并在**始终另存为**下拉列表选择_Open XML(过渡)(*.docx)_。 - - 5. 点击 **应用** 然后点击 **确定**。 - - 6. 取消选择**未以 ODF 或默认格式保存时发出警告**以避免在保存时出现确认对话框。 - -![LibreOffice 保存格式][5] - -按照相同的逻辑重复,重复相同的过程用于XLSX 和 PPTX 文档。 +按照相同的逻辑重复,重复相同的过程用于 XLSX 和 PPTX 文档。 ### 让办公更自由 -LibreOffice 项目由蓬勃发展的用户和开发人员社区与文档基金会共同管理。 这包括工程指导委员会、董事会、独立开发人员、设计师和翻译人员等。 这些团队始终欢迎各位的贡献,因此如果您渴望参与一个超赞的开源项目,请不要犹豫[参与进来][6]。 +LibreOffice 项目由蓬勃发展的用户和开发人员社区与文档基金会共同管理。这包括工程指导委员会、董事会、独立开发人员、设计师和翻译人员等。这些团队始终欢迎各位的贡献,因此如果你渴望参与一个超赞的开源项目,请不要犹豫 [参与进来][6]。 -------------------------------------------------------------------------------- @@ -92,7 +81,7 @@ via: https://opensource.com/article/21/9/libreoffice-tips 作者:[Don Watkins][a] 选题:[lujun9972][b] 译者:[XiaotingHuang22](https://github.com/XiaotingHuang22) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -104,3 +93,4 @@ via: https://opensource.com/article/21/9/libreoffice-tips [4]: https://creativecommons.org/licenses/by-sa/4.0/ [5]: https://opensource.com/sites/default/files/uploads/libreoffice-save-format.jpg (LibreOffice save formats) [6]: https://www.libreoffice.org/community/get-involved/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/11/161923gks1dsldq7dd1z67.jpg \ No newline at end of file From 7d7754f6ee59d8d7a6248d46f7adf176d47be8e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:22:20 +0800 Subject: [PATCH 2779/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230210.4=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?= =?UTF-8?q?=20DOSBox=20in=20Ubuntu=20to=20Play=20Old=20Games.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Install DOSBox in Ubuntu to Play Old Games.md | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md diff --git a/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md b/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md new file mode 100644 index 0000000000..0e8a8a5a35 --- /dev/null +++ b/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md @@ -0,0 +1,168 @@ +[#]: subject: "How to Install DOSBox in Ubuntu to Play Old Games" +[#]: via: "https://www.debugpoint.com/install-dosbox-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How to Install DOSBox in Ubuntu to Play Old Games +====== + +**Learn how to install DOSBox in Ubuntu and configure it to play old DOS games.** + +DOSBox is a free and open-source operating system emulator that can run inside modern Linux systems. It has several components which emulate older hardware so that ancient programs and games can run. + +All these make it possible to enjoy the older games and applications in modern Linux distributions. + +In this guide, I will show you how to install DOSBox, configure it and play a sample game. + +### Install DOSBox in Ubuntu + +The main package of DOSBox is available in all the major repo of Linux distributions. + +For Ubuntu, Debian, Linux Mint and related distributions use the following command to install it: + +``` +sudo apt install dosbox +``` + +For Fedora, CentOS, RHEL and related distributions use the following: + +``` +sudo dnf install dosbox +``` + +Arch Linux users, use the following command to install it. + +``` +pacman -S --needed dosbox +``` + +That will conclude the installation. Now it’s time to configure and run. + +### Running DOSBox + +After installation, type the following from the terminal. + +``` +dosbox +``` + +It will show you the following screen showing the DOSBox prompt. This first-time run is essential because it creates the DOSBox configuration file. + +Type `exit` to close DOSBox for now. + +![DOSBox first time run][1] + +The configuration file gives you several options to tweak settings. The file is created at your home directory path `~/.dosbox/dosbox-[version].conf` for Ubuntu. + +For fedora, it loads the staging config file from this path`~/.config/dosbox/dosbox-staging.conf`. + +By default, you can keep the configuration unchanged. However, if you want, you can change it. + +For example, if you want to start DOSBox fullscreen, you can enable and disable the switch. Here’s a sample: + +``` +fullscreen=false +fulldouble=false +fullresolution=original +windowresolution=original +output=surface +autolock=true +sensitivity=100 +waitonerror=true +``` + +You can find all the settings in the official [documentation][2]. + +### Download old games and run + +There are many websites which provide old DOS games. I have used the following website, which provides a fair set of old games which can be played in the modern system. + +So, visit the following page and download any game you want. + +[Download DOS games][3] + +Create a directory in your /home folder and name it dosbox. + +``` +cd ~mkdir dosbox +``` + +Now, extract the game which you downloaded (it should be a .exe file) and create a separate folder inside `~/dosbox`. + +For example, I downloaded the game “Mario & Luigi (1994)”. And I created a folder called “mario” inside the “dosbox” folder. And placed the game file inside it. + +![Keep the game in a separate folder][4] + +Now launch dosbox from the terminal. + +``` +dosbox +``` + +And type the following to mount the game in a virtual C: drive. + +``` +mount c ~/dosbox/mario +``` + +After the above command is complete, change the drive to C:. + +``` +c: +``` + +And now, you can type the game’s file name to run the game. + +``` +mario +``` + +![Running the game][5] + +![Mario running in DOSBox in Ubuntu][6] + +### Keyboard or controller mapping + +By default, DOSBox should detect the keyboard or any controller you may have plugged in. However, if you want to change game keybindings, you can run the below command from the terminal. + +``` +dosbox -startmapper +``` + +It will give you the following screen with the events tagged to each key. You can click on any key and change it according to your taste. + +![DOSBox keyboard and controller mapping][7] + +### Conclusion + +I hope you managed to run your favourite dos game after installing dosbox in Ubuntu and other distros. DOSBox is one of the coolest pieces of software you can use to run any program, such as [Turbo C][8] and others. + +If you have any trouble or questions, let me know in the comment box. + +Enjoy! + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-dosbox-ubuntu/ + +作者:[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/2023/02/DOSBox-first-time-run.jpg +[2]: https://www.dosbox.com/wiki/Dosbox.conf#Sections +[3]: https://archive.org/details/softwarelibrary_msdos_games?tab=collection +[4]: https://www.debugpoint.com/wp-content/uploads/2023/02/Keep-the-game-in-a-separate-folder.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/02/Running-the-game.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/02/Mario-playing-in-DOSBox-in-Ubuntu.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/02/DOSBOox-keyboard-and-controller-mapping.jpg +[8]: https://www.debugpoint.com/setting-up-dosbox-in-ubuntu-to-run-turbo-c/ From 02a69c7b96604d0566a46a3295f022f7bae29c72 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 11 Feb 2023 16:23:52 +0800 Subject: [PATCH 2780/3123] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @XiaotingHuang22 本文首发地址:https://linux.cn/article-15530-1.html 您的 LCTT 专页:https://linux.cn/lctt/XiaotingHuang22 --- .../20210922 My favorite LibreOffice productivity tips.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210922 My favorite LibreOffice productivity tips.md (98%) diff --git a/translated/tech/20210922 My favorite LibreOffice productivity tips.md b/published/20210922 My favorite LibreOffice productivity tips.md similarity index 98% rename from translated/tech/20210922 My favorite LibreOffice productivity tips.md rename to published/20210922 My favorite LibreOffice productivity tips.md index 8093eba483..82252258f2 100644 --- a/translated/tech/20210922 My favorite LibreOffice productivity tips.md +++ b/published/20210922 My favorite LibreOffice productivity tips.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "XiaotingHuang22" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15530-1.html" 提高 LibreOffice 生产力的技巧 ====== From e61c9f01a88f049904d30c91781e868a88c141a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:25:15 +0800 Subject: [PATCH 2781/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230209.0=20=E2=AD=90=EF=B8=8F=20Linux=20Kernel=206?= =?UTF-8?q?.1=20is=20Now=20Approved=20as=20an=20LTS=20Version.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ernel 6.1 is Now Approved as an LTS Version.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md diff --git a/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md b/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md new file mode 100644 index 0000000000..f613faef7b --- /dev/null +++ b/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md @@ -0,0 +1,84 @@ +[#]: subject: "Linux Kernel 6.1 is Now Approved as an LTS Version" +[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux Kernel 6.1 is Now Approved as an LTS Version +====== + +Linux Kernel 6.1 was due for approval for more than a month as the last LTS version of 2022. Now, that's a green light! + +![Linux Kernel 6.1 is Now Approved as an LTS Version][1] + +Linux Kernel 6.1 was the last kernel release of 2022; usually, these end up as an LTS release. + +But this time around, the decision to make it LTS was delayed. + +Some key feedback was pending from the kernel stakeholders around test results before they planned on using this kernel for the long term. + +Fortunately, those things have since been resolved, and now **Linux Kernel 6.1 is an LTS release.** + +Let me take you through the gist of this move. + +### Linux 6.1 is Now Officially an LTS Release + +Since its debut in December, **Greg Kroah-Hartman**, the Linux stable maintainer, was planning on Linux 6.1 as an LTS release, but the pending feedback delayed the move. + +Now, he and co-maintainer Sasha Levin have finally received enough responses that maintaining Linux Kernel 6.1 as an LTS makes sense. + +As things stand right now, the projected end-of-life for 6.1 is **December 2026,** with the potential for an extension if enough users or companies are interested in using it. + +![a table depicting the current lts releases of linux kernel][2] + +Initially, this was planned for a 2-year LTS cycle but was later updated to the **current 4-year maintenance period**. + +You will also notice that many Linux Kernels are being maintained concurrently as LTS versions. + +### Linux Kernel 6.1: Overview + +If you missed out on the release, Here are some of the highlights that arrived with Linux Kernel 6.1: + +- **Experimental Support for Rust** +- **Optimizations for AMD PCs** +- **Initial Support for Intel Meteor Lake** +- **Improved ARM SoC Support** + +These are not the only things on offer; you may go through our article for a better outlook. + +**Via:**[Phoronix][3] + +💬 _Considering this is an LTS version, you can expect future distro upgrades to include Linux Kernel 6.1. What do you think will you prefer to use?_ + +### More from It's FOSS... + +- 📩 Stay updated with the latest on Linux and Open Source. Get our [weekly Newsletter][4]. +- Understand the [difference between Snap and Flatpak][5]. +- 🎟️ Near California? Attend the [SCALE][6] conference from March 9-12. +- [Upcoming code editors][7] to challenge the VS Code supremacy. +- Promising [new distros in 2023][8]. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/ + +作者:[Sourav Rudra][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/sourav/ +[b]: https://github.com/lkxed/ +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/linux-6-1-to-be-lts.png +[2]: https://news.itsfoss.com/content/images/2023/02/Linux_Kernel_LTS.jpg +[3]: https://www.phoronix.com/news/Linux-6.1-LTS-Official +[4]: https://itsfoss.com/signup/ +[5]: https://itsfoss.com/flatpak-vs-snap/ +[6]: https://www.socallinuxexpo.org/scale/20x +[7]: https://news.itsfoss.com/upcoming-code-editors/ +[8]: https://news.itsfoss.com/new-distros-2023/ From 230d2e688600121f70f5ed2eaecd4247787982b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:34:58 +0800 Subject: [PATCH 2782/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230209.1=20=E2=AD=90=EF=B8=8F=20GNOME=20is=20(kind?= =?UTF-8?q?=20of)=20Bringing=20Back=20a=20Feature=20It=20Had=20Removed=20a?= =?UTF-8?q?=20Few=20Years=20Ago.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ck a Feature It Had Removed a Few Years Ago.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sources/news/20230209.1 ⭐️ GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago.md diff --git a/sources/news/20230209.1 ⭐️ GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago.md b/sources/news/20230209.1 ⭐️ GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago.md new file mode 100644 index 0000000000..6ae64d5e3a --- /dev/null +++ b/sources/news/20230209.1 ⭐️ GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago.md @@ -0,0 +1,83 @@ +[#]: subject: "GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago" +[#]: via: "https://news.itsfoss.com/gnome-design-quick-access/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago +====== + +GNOME design changes makes sense, as it brings back (sort of) a similar functionality that it removed earlier. + +![GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago][1] + +GNOME removed the application menus and indicators a few years back. + +If you are curious, app indicators were a way of interacting with the apps running in the background from the top panel. + +Yes, you can [add an extension for app indicators][2] to get the same functionality. But, you will no longer find the ability by default on distributions using stock GNOME desktop environment, like Fedora. + +However, Ubuntu, some of its [official flavors][3], and other distributions like Pop!_OS support the system tray icons even though GNOME dropped them. + +Now, after years of design changes, it looks like we might be seeing something similar. + +### GNOME to Add a Quick Way to Check Active Apps in the Background + +Currently, there's no quick way to find out the apps running in the background without an active window. + +You must use the [task manager][4] or [system monitoring tools][5] for better insights. + +With future GNOME releases (probably GNOME 44), you may expect **a feature to monitor background running apps** right from the **menu panel** of the top panel. + +![gnome design mockup for backround app check from the notification menu][6] + +The idea by [Allan Day][7] is still in discussion, and a [design mockup][8] has been shared. However, there is a good chance that it will be accepted. + +This idea has also prompted developer [Georges Basile Stavracas Neto][9] to expose Flatpak's xdg-desktop-portal component, making it easy to detect running Flatpak applications. + +> 📋 The placement or design of checking background apps is still a work in progress; what you see above may change with the final implementation. + +### Would This Bring Back App Indicators Too? + +Not exactly. + +With this feature, GNOME aims to allow you to quickly see the background running apps and manage them (close them or access specific settings). + +However, you still have a few clicks to reach this point 🖱️ + +The applet indicators or the system tray icons were a faster way to access applications running in the background, even though not every background app was listed. + +After all, it is better than nothing. + +And eventually, these design changes could result in an intuitive way to get app indicators back in some form. + +_💬 What do you think about this decision with GNOME design changes for upcoming releases? Share your thoughts in the comments below._ + +**Via**: [Phoronix][10] + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-design-quick-access/ + +作者:[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/content/images/size/w2000/2023/02/gnome-brings-mysterious-features.png +[2]: https://itsfoss.com/enable-applet-indicator-gnome/ +[3]: https://itsfoss.com/which-ubuntu-install/ +[4]: https://itsfoss.com/task-manager-linux/ +[5]: https://itsfoss.com/linux-system-monitoring-tools/ +[6]: https://news.itsfoss.com/content/images/2023/02/background-app-running.png +[7]: https://gitlab.gnome.org/aday +[8]: https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/191 +[9]: https://github.com/GeorgesStavracas +[10]: https://www.phoronix.com/news/GNOME-Monitor-Background-Apps From dfe93eb5df716611a048d1eb2f74dbf58c18e65b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:35:38 +0800 Subject: [PATCH 2783/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230209.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?3=20types=20of=20leadership=20for=20open=20organizations.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 3 types of leadership for open organizations.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/talk/20230209.2 ⭐️⭐️ 3 types of leadership for open organizations.md diff --git a/sources/talk/20230209.2 ⭐️⭐️ 3 types of leadership for open organizations.md b/sources/talk/20230209.2 ⭐️⭐️ 3 types of leadership for open organizations.md new file mode 100644 index 0000000000..6fda583cbd --- /dev/null +++ b/sources/talk/20230209.2 ⭐️⭐️ 3 types of leadership for open organizations.md @@ -0,0 +1,87 @@ +[#]: subject: "3 types of leadership for open organizations" +[#]: via: "https://opensource.com/article/23/2/leadership-open-organizations" +[#]: author: "Bryan Behrenshausen https://opensource.com/users/bbehrens" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +3 types of leadership for open organizations +====== + +In the classic movie _Born Yesterday_, a crime boss repeatedly demonstrates his leadership style by bellowing, "Do what I'm tellin' ya!" in a loud, threatening voice. It's entertaining in a comedy, but it would be a recipe for failure and getting ignored in an open organization. + +In this article, I review forms of leadership that can be effective in an open organization. Remember that these leadership forms do not exist in a vacuum or silos. To be an effective manager, you want to mix and match techniques from each leadership style based on the requirements of a situation. + +These three approaches to leadership are helpful for open organizations. + +### Servant leadership + +There is a saying that politicians want to get elected either to be something or to do something. This adage applies to any type of leader. Some leaders simply want to be in command. While all leaders are ambitious, for this type of leader, satisfying their ambition is the primary goal. The acquisition of power is an end unto itself; once they have it, they may be uninterested in using it to solve problems or build something. Anything that the organization achieves looks like a personal triumph to them. + +By contrast, when you're a servant leader, you see your leadership role as a means to serve people. In the political world, you would view public service as not a cliche but as an opportunity to help the public. As a servant leader, you work to improve things for the people you lead and are primarily concerned about the welfare of those around you. + +Servant leadership is also contagious. By focusing on the welfare and development of the people you lead, you're growing the next generation of servant leaders. As a servant leader, you're not interested in taking all the credit. For example, when legendary baseball manager Casey Stengel was congratulated for winning a league championship, he famously remarked, "I couldn't have done it without my players." One of his greatest skills as a manager was maximizing each player's contributions to benefit the whole team. + +### Quiet leadership + +For the past several years, we've been living in the age of the celebrity CEO. They are easy to recognize: They are brash and loud, they promote themselves constantly, and they act as if they know the answer to every problem. They attempt to dominate every interaction, want to be the center of attention, and often lead by telling others what to do. Alice Roosevelt Longworth described her father, US President Theodore Roosevelt, as someone who "wanted to be the corpse at every funeral, the bride at every wedding, and the baby at every christening." Roosevelt was an effective leader who did extraordinary things, such as starting the US National Park Service and building the Panama Canal, but he was anything but quiet. + +In contrast, when you're a quiet leader, you lead by example. You don't fixate on problems; instead, you maintain a positive attitude and let your actions speak for themselves. You focus on what can be done. You lead by solving problems and by providing an example to your team. When faced with unexpected issues, the quiet leader doesn't spend time complaining but looks for solutions and implements them. + +### Open leadership + +As a servant leader, you work to assist the members of your organization in growing into leaders. Quiet leaders lead by example. Servant leaders and quiet leaders do not act in an autocratic manner. Open leaders combine many of these characteristics. + +An open leader is also not a top-down autocratic leader. As an open leader, you succeed by creating organizations in which teams can thrive. In other words, as an open leader, you create a framework or environment in which your organization can achieve the following goals according to [The Open Organization Definition][1]: + +- **Greater agility:** In an open organization, all team members have a clear understanding of the organization's goals and can, therefore, better work together to achieve those goals. +- **Faster innovation:** In an open organization, ideas are heard (and reviewed and argued over) regardless of their origin. Ideas are not imposed on the organization by its leaders. +- **Increased engagement:** Because members of the organization can contribute to decisions about the organization's direction, they have a sense of ownership for the team's goals. + +The Open Organization defines the following five characteristics as basic tenants of open organizations: + +- **Transparency:** The organization's decision-making process is open, as are all supporting project resources. The team is never surprised by decisions made in isolation. +- **Inclusivity:** All team members are included in discussions and reviews. Rules and protocols are established to ensure that all viewpoints are reviewed and respected. +- **Adaptability:** Feedback is requested and accepted on an ongoing basis. The team continually adjusts its future actions based on results and inputs. +- **Collaboration:** Team members work together from the start of a project or task. Work is not performed in isolation or in silos and then presented to the rest of the team for input. +- **Community:** Team members have shared values regarding how the organization functions. Team leaders model these values. All team members are encouraged to make contributions to the team. + +### Putting leadership styles to work + +How can you, as an open leader, incorporate the characteristics of servant and quiet leadership? + +In an open organization, to support an inclusive community, you function as a mentor. Just as a servant leader acts to teach and cultivate future servant leaders, you must walk the walk, leading by example, ensuring transparency and collaboration, and operating according to shared values. + +How can a quiet leader contribute to an open organization? Open organizations tend to be, for lack of a better word, noisy. Communication and collaboration in an open organization are constant and can sometimes be overwhelming to people not accustomed to it. The ownership felt by members of open organizations can result in contentious and passionate discussions and disagreements. + +Quiet leaders with a positive outlook tend to see paths forward through seemingly contradictory viewpoints. Amid these discussions, a quiet leader cuts through the noise. As a calming influence on an open organization, a quiet leader can help people get past differences while driving solutions. + +### Further resources + +- [The Center for Servant Leadership][2] +- ["The quiet leader and how to be one,"][3] Harvard Business School blog +- ["How to recognize silent leaders and encourage their growth in your organization,"][4] G&A Partners blog +- ["What is The Open Organization,"][5] opensource.com +- [_The Open Organization Definition_][6] [eBook], opensource.com + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/leadership-open-organizations + +作者:[Bryan Behrenshausen][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/bbehrens +[b]: https://github.com/lkxed/ +[1]: https://theopenorganization.org/definition/open-organization-definition/ +[2]: https://www.greenleaf.org/what-is-servant-leadership/ +[3]: https://hbswk.hbs.edu/item/the-quiet-leaderand-how-to-be-one +[4]: https://www.gnapartners.com/resources/articles/silent-leadership +[5]: https://opensource.com/open-organization/resources/what-open-organization +[6]: https://opensource.com/open-organization/resources/open-org-definition From 438a68d87869d7839f7605ab292f3ec46e12dfcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:37:14 +0800 Subject: [PATCH 2784/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230209.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Learn=20Tcl=20by=20writing=20a=20simple=20game.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️⭐️ Learn Tcl by writing a simple game.md | 153 ++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 sources/tech/20230209.3 ⭐️⭐️ Learn Tcl by writing a simple game.md diff --git a/sources/tech/20230209.3 ⭐️⭐️ Learn Tcl by writing a simple game.md b/sources/tech/20230209.3 ⭐️⭐️ Learn Tcl by writing a simple game.md new file mode 100644 index 0000000000..9b7f4552e7 --- /dev/null +++ b/sources/tech/20230209.3 ⭐️⭐️ Learn Tcl by writing a simple game.md @@ -0,0 +1,153 @@ +[#]: subject: "Learn Tcl by writing a simple game" +[#]: via: "https://opensource.com/article/23/2/learn-tcl-writing-simple-game" +[#]: author: "James Farrell https://opensource.com/users/jamesf" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Tcl by writing a simple game +====== + +My path to Tcl started with a recent need to automate a difficult Java-based command-line configuration utility. I do a bit of automation programming using Ansible, and I occasionally use the expect module. Frankly, I find this module has limited utility for a number of reasons including: difficulty with sequencing identical prompts, capturing values for use in additional steps, limited flexibility with control logic, and so on. Sometimes you can get away with using the shell module instead. But sometimes you hit that ill-behaving and overly complicated command-line interface that seems impossible to automate. + +In my case, I was automating the installation of one of my company's programs. The last configuration step could only be done through the command-line, through several ill-formed, repeating prompts and data output that needed capturing. The good old traditional Expect was the only answer. A deep understanding of Tcl is not necessary to use the basics of Expect, but the more you know, the more power you can get from it. This is a topic for a follow-up article. For now, I explore the basic language constructs of Tcl, which include user input, output, variables, conditional evaluation, looping, and simple functions. + +### Install Tcl + +On a Linux system, I use this: + +``` +# dnf install tcl +# which tclsh +/bin/tclsh +``` + +On macOS, you can use [Homebrew][1]to install the latest Tcl: + +``` +$ brew install tcl-tk +$ which tclsh +/usr/local/bin/tclsh +``` + +### Guess the number in Tcl + +Start by creating the basic executable script `numgame.tcl`: + +``` +$ touch numgame.tcl +$ chmod 755 numgame.tcl +``` + +And then start coding in your file headed up by the usual shebang script header: + +``` +#!/usr/bin/tclsh +``` + +Here are a few quick words about artifacts of Tcl to track along with this article. + +The first point is that all of Tcl is considered a series of strings. Variables are generally treated as strings but can switch types and internal representations automatically (something you generally have no visibility into). Functions may interpret their string arguments as numbers ( `expr`) and are only passed in by value. Strings are usually delineated using double quotes or curly braces. Double quotes allow for variable expansion and escape sequences, and curly braces impose no expansion at all. + +The next point is that Tcl statements can be separated by semicolons but usually are not. Statement lines can be split using the backslash character. However, it's typical to enclose multiline statements within curly braces to avoid needing this. Curly braces are just simpler, and the code formatting below reflects this. Curly braces allow for deferred evaluation of strings. A value is passed to a function before Tcl does variable substitution. + +Finally, Tcl uses square brackets for command substitution. Anything between the square brackets is sent to a new recursive invocation of the Tcl interpreter for evaluation. This is handy for calling functions in the middle of expressions or for generating parameters for functions. + +### Procedures + +Although not necessary for this game, I start with an example of defining a function in Tcl that you can use later: + +``` +proc used_time {start} { + return [expr [clock seconds] - $start] +} +``` + +Using `proc` sets this up to be a function (or procedure) definition. Next comes the name of the function. This is then followed by a list containing the parameters; in this case 1 parameter `{start}` and then followed by the function body. Note that the body curly brace starts on this line, it cannot be on the following line. The function returns a value. The returned value is a compound evaluation (square braces) that starts by reading the system clock `[clock seconds]` and does the math to subtract out the `$start` parameter. + +### Setup, logic, and finish + +You can add more details to the rest of this game with some initial setup, iterating over the player's guesses, and then printing results when completed: + +``` +set num [expr round(rand()*100)] +set starttime [clock seconds] +set guess -1 +set count 0 + +puts "Guess a number between 1 and 100" + +while { $guess != $num } { + incr count + puts -nonewline "==> " + flush stdout + gets stdin guess + + if { $guess < $num } { + puts "Too small, try again" + } elseif { $guess > $num } { + puts "Too large, try again" + } else { + puts "That's right!" + } +} + +set used [used_time $starttime] + +puts "You guessed value $num after $count tries and $used elapsed seconds" +``` + +The first `set` statements establish variables. The first two evaluate expressions to discern a random number between 1 and 100, and the next one saves the system clock start time. + +The `puts` and `gets` command are used for output to and input from the player. The `puts` I've used imply standard out for output. The `gets` needs the input channel to be defined, so this code specifies `stdin` as the source for terminal input from the user. + +The `flush stdout` command is needed when `puts` omits the end-of-line termination because Tcl buffers output and it might not get displayed before the next I/O is needed. + +From there the `while` statement illustrates the looping control structure and conditional logic needed to give the player feedback and eventually end the loop. + +The final `set` command calls our function to calculate elapsed seconds for gameplay, followed by the collected stats to end the game. + +### Play it! + +``` +$ ./numgame.tcl +Guess a number between 1 and 100 +==> 100 +Too large, try again +==> 50 +Too large, try again +==> 25 +Too large, try again +==> 12 +Too large, try again +==> 6 +Too large, try again +==> 3 +That's right! +You guessed value 3 after 6 tries and 20 elapsed seconds +``` + +### Continue learning + +When I started this exercise, I doubted just how useful going back to a late 1990s fad language would be to me. Along the way, I found a few things about Tcl that I really enjoyed — my favorite being the square bracket command evaluation. It just seems so much easier to read and use than many other languages that overuse complicated closure structures. What I thought was a [dead language][2] was actually still thriving and supported on several platforms. I learned a few new skills and grew an appreciation for this venerable language. + +Check out the official site over at [https://www.tcl-lang.org][3]. You can find references to the latest source, binary distributions, forums, docs, and information on conferences that are still ongoing. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/learn-tcl-writing-simple-game + +作者:[James Farrell][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/jamesf +[b]: https://github.com/lkxed/ +[1]: https://opensource.com/article/20/6/homebrew-mac +[2]: https://opensource.com/article/19/6/favorite-dead-language +[3]: https://www.tcl-lang.org From 92c718c6e3da01e262385eca92e121c374bee2b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:43:42 +0800 Subject: [PATCH 2785/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230209.4=20=E2=AD=90=EF=B8=8F=20Start=20developing?= =?UTF-8?q?=20for=20WebAssembly=20with=20our=20new=20guide.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...veloping for WebAssembly with our new guide.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md diff --git a/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md b/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md new file mode 100644 index 0000000000..ecb202c6d5 --- /dev/null +++ b/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md @@ -0,0 +1,104 @@ +[#]: subject: "Start developing for WebAssembly with our new guide" +[#]: via: "https://opensource.com/article/23/2/webassembly-guide" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Start developing for WebAssembly with our new guide +====== + +Over the past few decades, the web browser has endured as the most popular cross-platform application. Looking at the browser from a different angle, it is one of the most popular platforms for application delivery. Think of all the websites you use that take the place of activities you used to do with software running on your desktop. You're still using software, but you're accessing it through a browser, and it's running on somebody else's Linux server. In the eternal effort to optimize the software we all use, the world of software development introduced WebAssembly back in 2019 as a way to run compiled code through a web browser. Application performance is better than ever, and the options for coding go far beyond the usual list of PHP, Python, and JavaScript. + +### A target and a language + +One of the powerful but also most confusing things about WebAssembly is that the term "webassembly" refers to both a language and a target. WebAssembly is an assembly language, but not many people choose to write code directly in assembly. Even the assembly language is ultimately converted to a binary format, which is what a computer requires to run code. This binary format is also called WebAssembly. This is good, though, because it means that you can use your choice of languages to write something that's ultimately delivered in WebAssembly, including C, C++, Rust, Javascript, and many others. + +The gateway into WebAssembly is Emscripten, an LLVM compiler toolchain that produces WebAssembly from your code. + +### Install Emscripten + +To install Emscripten on your Linux or macOS computer, use Git: + +``` +$ git clone \ +https://github.com/emscripten-core/emsdk.git +``` + +Change directory into the `emsdk` directory and run the install command: + +``` +$ ./emsdk install latest +$ ./emsdk activate latest +``` + +Everything in the Emscripten toolchain is installed within the `emsdk` directory and has no effect on the rest of your system. For this reason, before you use `emsdk`, you must source its environment: + +``` +$ source ./emsdk_env.sh +``` + +If you plan on using `emsdk` often, you can also source its environment setup script in `.bashrc`. + +To install Emscripten on Windows, you can run Linux in the WSL environment. + +Visit the [Emscripten website][1] for more information on installation. + +### Hello world + +Here's a simple "hello world" application in written in C++. + +``` +#include + +using namespace std; + +int main() { + cout << "Hello world"; + return 0; +} +``` + +Test it as a standard binary for your system first: + +``` +$ g++ hello.cpp -o world +$ ./world +Hello world +``` + +Seeing that it works as expected, use `emcc` to build it as WebAssembly: + +``` +$ emcc hello.cpp -o world.html +``` + +Finally, run it with `emrun`: + +``` +$ emrun ./world.html +``` + +The `emrun` utility is a convenience command for local testing. When you host your application on a server, `emrun` isn't necessary. + +### Learning more about WebAssembly + +Developing for WebAssembly can go in many different directions, depending on what you already know and what you're trying to build. If you know C or C++, then you can write your project using those. If you're learning Rust, then you can use Rust. Even Python code can use the Pyodide module to run as WebAssembly. You have lots of options, and there's no wrong way to start (there's even a COBOL-to-WebAssembly compiler). If you're keen to get started with WebAssembly, [download our complimentary eBook][2]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/webassembly-guide + +作者:[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://emscripten.org/ +[2]: https://opensource.com/downloads/webassembly-ebook From 63643d8101020a485e092a1934d6b32799ae755a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:50:09 +0800 Subject: [PATCH 2786/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230209.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Endless=20OS=205.0=20Review=20The=20Best=20of=20GNOME=20with=20?= =?UTF-8?q?Wayland=20and=20Apps.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Review The Best of GNOME with Wayland and Apps.md | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 sources/tech/20230209.5 ⭐️⭐️ Endless OS 5.0 Review The Best of GNOME with Wayland and Apps.md diff --git a/sources/tech/20230209.5 ⭐️⭐️ Endless OS 5.0 Review The Best of GNOME with Wayland and Apps.md b/sources/tech/20230209.5 ⭐️⭐️ Endless OS 5.0 Review The Best of GNOME with Wayland and Apps.md new file mode 100644 index 0000000000..d9d21a8d1b --- /dev/null +++ b/sources/tech/20230209.5 ⭐️⭐️ Endless OS 5.0 Review The Best of GNOME with Wayland and Apps.md @@ -0,0 +1,129 @@ +[#]: subject: "Endless OS 5.0 Review: The Best of GNOME with Wayland and Apps" +[#]: via: "https://www.debugpoint.com/endless-os-5-0-review/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Endless OS 5.0 Review: The Best of GNOME with Wayland and Apps +====== + +**A new version of Endless OS 5.0 is out now, bringing more features and stability. Here’s a quick review of this release.** + +Before the immutability became hype, Endless OS provided a productive desktop experience based on [OSTree][1]. It is packaged from Debian and Ubuntu but is being developed independently. Thanks to OSTree-based internals, Endless OS works in its user space while giving you the best desktop experience. + +It’s a perfect distribution for schools, small-scale deployments, labs and offline use cases. + +A new release, i.e. Endless OS 5.0, is now available. Here’s a quick recap of the features with an in-depth review. + +> We believe that access to personal computing is critical for productivity, learning and job skills.We have dedicated the last 10 years to designing and delivering an operating system and tools that give people access to, and control over their technology.With our tools for productivity, creativity, and learning through play and discovery, we help people of all backgrounds engage in the digital economy on more meaningful terms.Endless OS mission statement + +### Endless OS 5.0 Review + +Since this OS aims to provide digital computing access to less privileged folks, it features a Windows installer. You can directly download it and try it out inside the Windows environment. + +Also, it provides a dedicated stand-alone ISO image for installation via a USB stick. + +The last time I reviewed Endless OS in 2021, it didn’t come with an ARM version. I am surprised to find out that it has an ARM image which you can try on Raspberry Pi and other ARM boards. + +During my test install, all went fine. It uses a custom installer, similar to Fedora’s Anaconda installer. However, installation requires a full disk. If you prefer dual-boot, a detailed guide is [present here.][2] However, I feel it’s a little complex setup. + +![Endless OS installation in Windows][3] + +#### Login and first look + +This version is based on [Debian 11 “bullseye”][4] release and features Linux mainline [Ker][5][n][5][el 5.15][5]. Also, separate repo is provided for native apps from the team. The desktop is based on [GNOME 41][6] release. + +A few items were changed on the look-n-feel side of this release. Firstly, the bottom panel is changed to show the basic GNOME-style dock. It is always visible and goes away when you move a window over it. Earlier, it was a fixed standard panel with an application icon, system tray and running apps widgets. + +Secondly, a new top panel is introduced, following the GNOME design. It contains activities, application launchers and the system tray. + +![Look has changed since prior release with dock and top panel in Endless OS 5.0][7] + +##### Endless OS 4.0 look (a lot has changed) + +![Endless OS Desktop version 4.0][8] + +#### Unique customization of GNOME desktop and workspaces + +The default look remains the same, including the desktop application view with a search box. The application at the top panel is a toggle to the running application and desktop view. + +The super key is also a toggle to the running application and workspace view, which is super handy. The windows have the minimize, maximize and close buttons at the top-right; they don’t require tweaks. + +However, one of the liked features is dropped in this version. In [Endless OS 4.0][9], when you click the empty section of the desktop, it immediately minimizes all the open windows and shows you the desktop. However, this feature is no longer available. It was such a handy feature for a smooth workflow. + +#### Introduction of Wayland in Endless OS 5.0 + +The modern display server Wayland arrives in Endless OS for the first time in this release. The default login is Wayland. However, you can switch to X.Org from the login screen. You can feel the fluid animations, gestures and performance in Endless OS, thanks to Wayland. + +#### Gesture Support + +Endless OS 5.0 also introduces multi-gesture support. You can now use a three-finger swipe left and right via trackpad/touchpad to browse workspaces. Also, the three-finger swipe-up toggles the app grid and workspaces. + +Pinch-to-zoom is also available for supported apps, including two-finger scrolling. + +This is a much-needed update to further boost your productivity in Endless OS. + +#### App Center, Flatpak and applications + +Endless OS being an immutable distro, all your apps run on a separate userspace. By default, it only supports Flatpak packages. World’s largest Flatpak repo Flathub is configured by default. You can search and install any Flatpak apps directly from AppCenter. + +![Flathub repo is pre-configured for Flatpak apps][10] + +However, by default, almost all the needed apps are pre-installed. A complete LibreOffice package is there if you want to work on documents. Also included Chromium web browser with Ad-Block pre-packaged! In addition, you get Gedit text editor, Shotwell image viewer, Brasero disk burning app, Files as a file manager and Kolibri to manage your school/home workflow. + +All the native GNOME apps are now Flatpak versions by default instead of apt. This is one of the key changes in Endless OS 5.0. + +![Kolibri is one of the amazing app - pre-loaded][11] + +#### Help Center + +One of the great features of Endless OS is the offline help available from the help app. You can also access it via the desktop search function. + +Any student or first-time user can quickly learn the basic functions of a desktop, such as “how to change a password” or “how to create an account”, and many such items. All of these are available as offline help files. + +![Endless OS desktop offline help][12] + +### Wrapping up + +Endless OS 5.0 brings much-needed changes such as Wayland and gesture support while sticking to its principle to be an easy-to-use distribution for the masses. It’s a well-designed and thoughtful distro perfect for offline/remote usage, labs, schools and communities. Linux, when configured right, can impact millions – those who can’t afford pricy software. + +Also, for the average user, this can be a perfect distro if you plan to run it for years. You can save yourself from the hassles of upgrades, system breaks, commands, dependency issues and so on. + +An excellent release from the team for the community. You can download it from the below link. + +[Download Endless OS][13] + +What do you think about this release as a whole? Do let me know in the comment box. + +_[v5.0 release notes][14]_ + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/endless-os-5-0-review/ + +作者:[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://ostree.readthedocs.io/en/stable/ +[2]: https://support.endlessos.org/en/installation/windows-installer/dual-boot +[3]: https://www.debugpoint.com/wp-content/uploads/2023/02/Endless-OS-installation-in-Windows.jpg +[4]: https://www.debugpoint.com/debian-11-features/ +[5]: https://www.debugpoint.com/linux-kernel-5-15/ +[6]: https://www.debugpoint.com/gnome-41-release/ +[7]: https://www.debugpoint.com/wp-content/uploads/2023/02/Look-has-changed-since-prior-release-with-dock-and-top-panel-in-Endless-OS-5.0.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/Endless-OS-Desktop-version-4.0.jpg +[9]: https://www.debugpoint.com/endless-os-review-2021 +[10]: https://www.debugpoint.com/wp-content/uploads/2023/02/Flathub-repo-is-pre-configured-for-Flatpak-apps.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/02/Kolibri-is-one-of-the-amazing-app-pre-loaded.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/02/Endless-OS-desktop-offline-help.jpg +[13]: https://www.endlessos.org/os-windows-installer +[14]: https://support.endlessos.org/en/endless-os/release-notes/5 From cd815e5e547bdf476ea36295039619f3183c79b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 16:58:15 +0800 Subject: [PATCH 2787/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230208.0=20=E2=AD=90=EF=B8=8F=20Transmission=204.0?= =?UTF-8?q?=20Upgrade=20is=20Here=20After=20Two=20Years.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mission 4.0 Upgrade is Here After Two Years.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/news/20230208.0 ⭐️ Transmission 4.0 Upgrade is Here After Two Years.md diff --git a/sources/news/20230208.0 ⭐️ Transmission 4.0 Upgrade is Here After Two Years.md b/sources/news/20230208.0 ⭐️ Transmission 4.0 Upgrade is Here After Two Years.md new file mode 100644 index 0000000000..bd962f2696 --- /dev/null +++ b/sources/news/20230208.0 ⭐️ Transmission 4.0 Upgrade is Here After Two Years.md @@ -0,0 +1,98 @@ +[#]: subject: "Transmission 4.0 Upgrade is Here After Two Years" +[#]: via: "https://news.itsfoss.com/transmission-4-release/" +[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Transmission 4.0 Upgrade is Here After Two Years +====== + +BitTorrent client Transmission 4.0 release is here with much-needed feature upgrades and improvements. + +![Transmission 4.0 Upgrade is Here After Two Years][1] + +BitTorrent is a popular alternative to HTTP to share or download files over the internet. You may know that numerous BitTorrent clients are available with different features and configurations. + +**Transmission** is one such BitTorrent client that is open-source and lightweight. + +The app's latest release arrives nearly two years after its last stable release. While no new releases were seen during this time, the project was in active development. + +### Transmission 4.0: What's New? + +The new release brings in a load of new features and improvements. This includes IPv6 blocking, BitTorrent v2 support, a revamped web client, and many more. + +Some of the significant highlights are mentioned below. + +#### Support for BitTorrent v2 and Hybrid Torrent + +BitTorrent v2 is a newer version of the existing BitTorrent protocol, bringing in some helpful technical advancements. + +On the other hand, hybrid torrents ensure backward compatibility with the older v1 torrents. + +Do note that this release only allows using v2 and hybrid torrents. To be able to create v2 and hybrid torrents, you need to wait for the next release. + +#### Use of default trackers + +Users should now find it easier to announce or request public torrents by setting up default trackers. + +#### IPv6 blocklists + +Support for IPv6 blocking is now included. + +This is useful if you're experiencing network problems and want to use IPv4 by default. + +In some cases, VPN users might also prefer this feature since many VPN servers may not flawlessly support IPv6, which may lead to data leaks. + +#### New Privacy-Friendly Feature + +Users sometimes prefer not to include user-identifying or relevant information when creating torrents. + +There's a new option added precisely for this purpose that excludes such details. + +#### 🛠️Other Changes and Improvements + +Apart from the changes listed above, there are loads of refinements considering that they have been preparing it for more than a year now! + +Some of the noteworthy betterment include: + +- **Better resource efficiency** +- **Migration of code from C to C++** +- **Ability to specify piece size when creating new torrents** +- **Support for Qt 6** +- **GTK client based on GTKMM** +- **Better Web client UI, including support for mobile screens** +- **macOS Apple silicon support** + +You can head to its [GitHub release section][2] for full release notes. + +### Download Transmission 4.0 + +The official repositories and Flathub do not have the latest version available yet. + +So, you will have to download and extract the **tar.xz** file from its [official download page][3] or the [GitHub releases section][2]. + +And, build it from the source to get it installed. + +[Transmission 4.0][3] + +You can find packages for other platforms on the same page. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/transmission-4-release/ + +作者:[Rishabh Moharir][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/rishabh/ +[b]: https://github.com/lkxed/ +[1]: https://news.itsfoss.com/content/images/size/w2000/2022/11/transmission-4-0.png +[2]: https://github.com/transmission/transmission/releases/tag/4.0.0 +[3]: https://transmissionbt.com/download From 85e3f9783e6ce0b83ca2f897857d3b2a6c7697ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 17:02:12 +0800 Subject: [PATCH 2788/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230208.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Improve=20your=20coding=20skills=20with=20temporal=20values=20i?= =?UTF-8?q?n=20MySQL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...our coding skills with temporal values in MySQL.md | 231 ++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md diff --git a/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md b/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md new file mode 100644 index 0000000000..9c3ef1987d --- /dev/null +++ b/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md @@ -0,0 +1,231 @@ +[#]: subject: "Improve your coding skills with temporal values in MySQL" +[#]: via: "https://opensource.com/article/23/2/temporal-values-mysql" +[#]: author: "Hunter Coleman https://opensource.com/users/hunterc" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Improve your coding skills with temporal values in MySQL +====== + +Both new and experienced users of the popular MySQL database system can often get confused about how temporal values are handled by the database. Sometimes users don't bother learning much about temporal value data types. This may be because they think there isn't much to know about them. A date is a date, right? Well, not always. Taking a few minutes to learn how MySQL stores and displays dates and times is beneficial. Learning how to best take advantage of the temporal values in your database tables can help make you a better coder. + +### MySQL temporal data types + +When you are building your tables in MySQL, you choose the proper data type which most efficiently holds the data you intend to insert into the table (`INT`, `FLOAT`, `CHAR`,and so on). MySQL provides you with five data types for temporal values. They are: `DATE`, `TIME`, `DATETIME`, `TIMESTAMP`, and `YEAR`. + +MySQL uses the `ISO 8601` format to store the values in the following formats: + +- **DATE**  YYYY-MM-DD +- **TIME**   HH:MM:SS +- **TIMESTAMP** YYYY-MM-DD  HH:MM:SS +- **YEAR** YYYY + +### Datetime compared to Timestamp + +You may have noticed that the `DATETIME` and `TIMESTAMP` data types hold the same data. You might wonder if there are any differences between the two. There are differences. + +First, the range of dates that can be used differ. `DATETIME` can hold dates between 1000-01-01 00:00:00 and 9999-12-31 23:59:59, whereas `TIMESTAMP` has a much more limited range of 1970-01-01 00:00:01 to 2038-01-19 03:14:07 UTC. + +Second, while both data types allow you to `auto_initialize` or `auto_update` their respective values (with `DEFAULT CURRENT_TIMESTAMP` and `ON UPDATE CURRENT_TIMESTAMP` respectively), doing so was not available for `DATETIME` values until version 5.6.5. You can use one of the MySQL synonyms for `CURRENT_TIMESTAMP` if you choose, such as `NOW()` or `LOCALTIME()`. + +**[ Download now: [MariaDB and MySQL cheat sheet][1] ]** + +If you use `ON UPDATE CURENT_TIMESTAMP` (or one of its synonyms) for a `DATETIME` value, but do not use the `DEFAULT CURRENT_TIMESTAMP` clause, then the column will default to `NULL`. This happens unless you include `NOT NULL` in the table definition, in which case it defaults to zero. + +Another important thing to keep in mind is that although normally neither a `DATETIME` nor a `TIMESTAMP` column have a default value unless you declare one, there is one exception to this rule. The first `TIMESTAMP` column in your table is implicitly created with both `DEFAULT CURRENT_TIMESTAMP` and `ON UPDATE CURRENT_TIMESTAMP` clauses if neither is specified and if the variable `explicit_defaults_for_timestamp` is disabled. + +To check this variable's status, run: + +``` +mysql> show variables like 'explicit_default%'; +``` + +If you want to turn it on or off, run this code, using 0 for off and 1 for on: + +``` +mysql> set explicit_defaults_for_timestamp = 0; +``` + +### Time + +MySQL's `TIME` data type may seem simple enough, but there are a few things that a good programmer should keep in mind. + +First, be aware that although time is often thought of as the time of day, it is in fact elapsed time. In other words, it can be a negative value or can be greater than 23:59:59. A `TIME` value in MySQL can be in the range of -838:59:59 to 838:59:59. + +Also, if you abbreviate a time value, MySQL interprets it differently depending on whether you use a colon. For example, the value 10:34 is seen by MySQL as 10:34:00. That is, 34 minutes past ten o'clock. But if you leave out the colon, 1034', MySQL sees that as 00:10:34. That is, ten minutes and 34 seconds. + +Finally, you should know that `TIME` values (as well as the time portion of `DATETIME` and `TIMESTAMP` columns) can, as of version 5.6.4, take a fractional unit. To use it, add an integer (max value six) in parentheses at the end of the data type definition. + +``` +time_column TIME(2) +``` + +### Time zones + +Time zone changes not only cause confusion and fatigue in the real world, but have also been known to cause problems in database systems. The earth is divided into 24 separate time zones which usually change with every 15 degrees of longitude. I say usually because some nations choose to do things differently. China, for example, operates under a single time zone instead of the five that would be expected. + +The question is, how do you handle users of a database system who are in different time zones. Fortunately, MySQL doesn't make this too difficult. + +To check your session time zone, run: + +``` +mysql> select @@session.time_zone; +``` + +If it says `System`, that means that it is using the timezone set in your `my.cnf`configuration file. If you are running your MsSQL server on your local computer, this is probably what you'll get, and you don't need to make any changes. + +If you would like to change your session's time zone, run a command such as: + +``` +mysql> set time_zone = '-05:00'; +``` + +This sets your time zone to five hours behind UTC. (US/Eastern). + +### Getting the day of the week + +To follow along with the code in the rest of this tutorial, you should create a table with date values on your system. For example: + +``` +mysql> create table test +( row_id smallint not null auto_increment primary key, +the_date date not null); +``` + +Then insert some random dates into the table using the ISO 8601 format, such as: + +``` +mysql> insert into test (the_date) VALUES ('2022-01-05'); +``` + +I put four rows of date values in my test table, but put as few or as many as you'd like. + +Sometimes you may wish to know what day of the week a particular day happened to be. MySQL gives you a few options. + +The first, and perhaps most obvious way, is to use the `DAYNAME()` function. Using the example table, `DAYNAME()` tells you the day of the week for each of the dates: + +``` +mysql> SELECT the_date, DAYNAME(the_date) FROM test ; ++------------+-------------------------------+ +| the_date | DAYNAME(the_date) | ++------------+-------------------------------+ +| 2021-11-02 | Tuesday | +| 2022-01-05 | Wednesday | +| 2022-05-03 | Tuesday | +| 2023-01-13 | Friday | ++------------+-------------------------------+ +4 rows in set (0.00 sec) +``` + +The other two methods for getting the day of the week return integer values instead of the name of the day. They are `WEEKDAY()`and `DAYOFWEEK()`. They both return numbers, but they do not return the same number. The `WEEKDAY()` function returns a number from 0 to 6, with 0 being Monday and 6 being Sunday. On the other hand, `DAYOFWEEK()` returns a number from 1 to 7, with 1 being Sunday and 7 being Saturday. + +``` +mysql> SELECT the_date, DAYNAME(the_date), +WEEKDAY(the_date), DAYOFWEEK(the_date) FROM test; ++------------+------------------+------------------+--------------------+ +| the_date | DAYNAME(the_date)| WEEKDAY(the_date)| DAYOFWEEK(the_date)| +| 2021-11-02 | Tuesday | 1 | 3 | +| 2022-01-05 | Wednesday | 2 | 4 | +| 2022-05-03 | Tuesday | 1 | 3 | +| 2023-01-13 | Friday | 4 | 6 | ++------------+------------------+------------------+--------------------+ +4 rows in set (0.00 sec) +``` + +### When you only want part of the date + +Sometimes you may have a date stored in your MySQL table, but you only wish to access a portion of the date. This is no problem. + +There are several conveniently-named functions in MySQL that allow for easy access to a particular portion of a date object. To show just a few examples: + +``` +mysql> SELECT the_date, YEAR(the_date), MONTHNAME(the_date),  +DAYOFMONTH(the_date) FROM test ; ++-----------+---------------+-------------------+---------------------+ +| the_date | YEAR(the_date)|MONTHNAME(the_date)| DAYOFMONTH(the_date)| ++-----------+---------------+-------------------+---------------------+ +| 2021-11-02| 2021 | November | 2 | +| 2022-01-05| 2022 | January | 5 | +| 2022-05-03| 2022 | May | 3 | +| 2023-01-13| 2023 | January | 13 | ++-----------+---------------+-------------------+---------------------+ +4 rows in set (0.00 sec) +``` + +MySQL also allows you to use the `EXTRACT() function` to access a portion of a date. The arguments you provide to the function are a unit specifier (be sure that it's singular), `FROM`, and the column name. So, to get just the year from our test table, you could write: + +``` +mysql> SELECT EXTRACT(YEAR FROM the_date) FROM test; ++----------------------------------------------+ +| EXTRACT(YEAR FROM the_date) | ++----------------------------------------------+ +| 2021 | +| 2022 | +| 2022 | +| 2023 | ++----------------------------------------------+ +4 rows in set (0.01 sec) +``` + +### Inserting and reading dates with different formats + +As mentioned earlier, MySQL stores date and time values using the `ISO 8601` format. But what if you want to store date and time values another way, such as MM-DD-YYYY for dates? Well, first off, don't try. MySQL stores dates and times in the `8601 format` and that's the way it is. Don't try to change that. However, that doesn't mean you have to convert your data to that particular format before you enter it into your database, or that you cannot display the data in whatever format you desire. + +If you would like to enter a date into your table that is formatted in a non-ISO way, you can use `STR_TO_DATE()`. The first argument is the string value of the date you want to store in your database. The second argument is the formatting string which lets MySQL know how the date is organized. Let's look at a quick example, and then I'll delve a little deeper into what that odd-looking formatting string is all about. + +``` +mysql> insert into test (the_date) values (str_to_date('January 13, 2023','%M %d, %Y')); + +Query OK, 1 row affected (0.00 sec) +``` + +You put the formatting string in quotes, and precede each of the special characters with a percent sign. The format sequence in the above code tells MySQL that my date consists of a full month name `(%M)`, followed by a two-digit day `(%d)`, then a comma, and finally a four-digit year `(%Y)`. Note that capitalization matters. + +Some of the other commonly used formatting string characters are: + +- `%b` abbreviated month name (example: Jan) +- `%c` numeric month (example: 1) +- `%W` name of day (example: Saturday) +- `%a` abbreviated name of day (example: Sat) +- `%T` 24-hour time (example: 22:01:22) +- `%r` 12-hour time with AM/PM (example: 10:01:22 PM) +- `%y` 2-digit year (example: 23) + +Note that for the 2-digit year (`%y`) the range of years is 1970 to 2069. So numbers from 70 through 99 are assumed 20th century, while numbers from 00 to 69 are assumed to be 21st century. + +If you have a date stored in your database, and you would like to display it using a different format, you can use the `DATE_FORMAT()` function: + +``` +mysql> SELECT DATE_FORMAT(the_date, '%W, %b. %d, %y') FROM test; ++-----------------------------------------+ +| DATE_FORMAT(the_date, '%W, %b. %d, %y') | ++-----------------------------------------+ +| Tuesday, Nov. 02, 21 | +| Wednesday, Jan. 05, 22 | +| Tuesday, May. 03, 22 | +| Friday, Jan. 13, 23 | ++-----------------------------------------+ +4 rows in set (0.00 sec) +``` + +### Conclusion + +This tutorial should give you a helpful overview of date and time values in MySQL. I hope that this article has taught you something new that allows you to have both better control and a greater understanding into how your MySQL database handles temporal values. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/temporal-values-mysql + +作者:[Hunter Coleman][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/hunterc +[b]: https://github.com/lkxed/ +[1]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet From ea64d5e66d753614266367003e964a90b8f4a2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 17:04:28 +0800 Subject: [PATCH 2789/3123] =?UTF-8?q?Update=2020230208.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Improve=20your=20coding=20skills?= =?UTF-8?q?=20with=20temporal=20values=20in=20MySQL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ Improve your coding skills with temporal values in MySQL.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md b/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md index 9c3ef1987d..11df777198 100644 --- a/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md +++ b/sources/tech/20230208.1 ⭐️⭐️ Improve your coding skills with temporal values in MySQL.md @@ -31,8 +31,6 @@ First, the range of dates that can be used differ. `DATETIME` can hold dates bet Second, while both data types allow you to `auto_initialize` or `auto_update` their respective values (with `DEFAULT CURRENT_TIMESTAMP` and `ON UPDATE CURRENT_TIMESTAMP` respectively), doing so was not available for `DATETIME` values until version 5.6.5. You can use one of the MySQL synonyms for `CURRENT_TIMESTAMP` if you choose, such as `NOW()` or `LOCALTIME()`. -**[ Download now: [MariaDB and MySQL cheat sheet][1] ]** - If you use `ON UPDATE CURENT_TIMESTAMP` (or one of its synonyms) for a `DATETIME` value, but do not use the `DEFAULT CURRENT_TIMESTAMP` clause, then the column will default to `NULL`. This happens unless you include `NOT NULL` in the table definition, in which case it defaults to zero. Another important thing to keep in mind is that although normally neither a `DATETIME` nor a `TIMESTAMP` column have a default value unless you declare one, there is one exception to this rule. The first `TIMESTAMP` column in your table is implicitly created with both `DEFAULT CURRENT_TIMESTAMP` and `ON UPDATE CURRENT_TIMESTAMP` clauses if neither is specified and if the variable `explicit_defaults_for_timestamp` is disabled. From 31faffbd5458bd654b3774071ddeeb68bfe319b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 17:09:55 +0800 Subject: [PATCH 2790/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230207.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?A=20brief=20history=20of=20LibreOffice.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7.1 ⭐️⭐️ A brief history of LibreOffice.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md diff --git a/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md b/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md new file mode 100644 index 0000000000..64ddc961d1 --- /dev/null +++ b/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md @@ -0,0 +1,99 @@ +[#]: subject: "A brief history of LibreOffice" +[#]: via: "https://opensource.com/article/23/2/libreoffice-history" +[#]: author: "Italo Vignoli https://opensource.com/users/italovignoli" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A brief history of LibreOffice +====== + +In early 2009, OpenOffice.org was the main competitor to Microsoft Office in the individual office productivity suites market. The popular open source office suite's community looked forward to a November conference in Orvieto, Italy. Things were going well, and the future looked bright. + +And then, in April of that year, Oracle announced its plans to acquire Sun Microsystems. + +Personally, I knew it was bad news for OpenOffice.Org. Oracle had no interest in the open source suite, and I felt confident it would abandon the project. Of course, I hoped to be proved wrong at the upcoming conference. Instead, a single representative from Oracle, with no budget to speak of, arrived in Orvieto and talked vaguely about monetization and re-branding. I felt that my worst fears were confirmed, and my fellow community members agreed. + +The community returned home from Orvieto that year and resolved to take action. The time had finally come to turn into reality what the OpenOffice.Org project had promised. We were determined to create an independent foundation to manage the project's assets and promote the development of the suite under the umbrella of the community. OpenOffice.org would no longer belong to a company but to its users and individual contributors. + +### Building the foundation + +At the time, the OpenOffice.org project had a presence on every continent, with language communities helping to localize and promote it. The four most important: + +- German: The software was born in Germany, and StarDivision was based in Hamburg, so there was a natural link between the group of developers and German-speaking supporters. +- French: The government supported the open source software. +- Italian: The group to which I belonged. +- Brazilian + +At the beginning of 2010, at the initiative of the French and German language communities, the most active volunteers—together with some independent and SUSE developers—started working on a fork project. The aim was to launch an alternative project involving both the global community and the companies invested in OpenOffice.org. + +I have over 30 years of experience working in international business and consultancy agencies. The project brought me in to manage the marketing and communication strategy. + +In the months that followed, activity became increasingly hectic. There was a weekly teleconference meeting, as the news coming in from Star Division (the department responsible for OpenOffice.org) was increasingly negative. + +Even with the dissolution of OpenOffice.org seemingly imminent, a conference in Budapest was confirmed by the publication of a CFP (Call for Papers). Of course, the fork project members also did nothing different from previous years. They presented their talk proposals and made travel plans. + +### A safe place for documents + +At the beginning of the summer, the fork was almost ready. Our group met in Budapest to gauge the situation from the OpenOffice.org side and for a first face-to-face organizational meeting. + +The Budapest conference ran smoothly, with meetings, keynotes, and technical sessions taking place over the three-day event. Everything seemed more or less normal. + +Everything was not normal. + +Some attendees were a little suspicious when several leading figures failed to attend the conference's main social event, an overnight cruise on the Danube. We didn't participate in this event because we were meeting in a restaurant to discuss the final details of a new foundation. There was a lot to get right. We had to determine an announcement date and the composition of the Steering Committee that would coordinate the tasks required to bring the foundation to life. + +### LibreOffice + +The three weeks between the conference and the announcement of LibreOffice were hectic. I prepared the launch strategy and the text of the press release. The developers prepared the software. The application's name had just been decided a few days earlier during a teleconference (which I'd joined from Grosseto, where I was attending the Italian open source software community meeting). + +On September 28, 2010, I distributed the press release announcing The Document Foundation and LibreOffice to a global mailing list of about 250 journalists, which I painstakingly put together using input from the public relations agencies where I worked. + +Here is the release: + +> The community of volunteers developing and promoting OpenOffice.Org announces an independent foundation to drive the further growth of the project. The foundation will be the cornerstone of a new ecosystem where individuals and organisations can contribute to and benefit from the availability of a truly free office suite. It will generate increased competition and choice for the benefit of customers and drive innovation in the office suite market. From now on the OpenOffice.Org community will be known as The Document Foundation. + +We invited Oracle to become a member of the foundation and donate the brand the community had grown during the previous ten years. Pending the decision, we chose the brand LibreOffice for the software going forward. + +Reactions to the announcement from the press were very positive. On the other hand, companies and analysts tended to be suspicious of an office suite governed by a community, an entity they never fully understood because of its flat, meritocratic organization. + +In the two weeks following the announcement, 80 new developers joined the project, disproving the predictions of those who considered it unrealistic to launch a fork relying only on SUSE and Red Hat developers. Unsurprisingly, most of the language communities switched to LibreOffice. + +LibreOffice is built from the source code of OpenOffice.org. The new functionalities are integrated in the source code of Go-OO and not on OOo. + +For this reason, the first version of LibreOffice—announced on January 25, 2011—was 3.3 to maintain consistency with OpenOffice.org. This was useful for users who had migrated to the new suite since the first version. The software was still a little immature due to significant technical debt that had to be accounted for. This caused problems and instability that would largely be corrected through code cleaning and refactoring throughout the 3.x and 4.x versions. By versions 5.x and 6.x, the source code was considered stable, which allowed the user interface to be improved and the development of mobile and cloud versions. + +In the spring of 2011, Oracle transferred the OpenOffice.org source code to the Apache Software Foundation. The project lasted for three years. The last new version was nearly a decade ago. + +### The future is open + +The formation process of The Document Foundation ended in early 2012, with registration by the Berlin authorities on February 17, 2012. This was a lengthy process because the founders wanted volunteer members of the project also to be members of the foundation based on contributions. This detail hadn't been foreseen for foundations under German law, so it required several revisions of statutes to comply with this condition. + +The foundation's first two activities were the membership committee's election. This is the structure that decides on the transition from mere volunteer to member of The Document Foundation on the basis of contributions. There are five members and three deputies. Finally, there's a Board of Directors, which steers the foundation administratively and strategically, consisting of seven members and three deputies. + +At the end of 2012, the foundation hired its first employee. This employee was Florian Effenberger, who was later promoted to executive director. Today, the team has a dozen members who take care of day-to-day activities such as coordinating projects, administration, network infrastructure management, software releases, mentoring of new developers, coordination of quality assurance, user interface evolution, and marketing and communications. + +Right now, the foundation is looking for developers to handle tasks that do not fit the objectives of enterprise customers, such as RTL language management and accessibility. These features aren't developed by the companies in the LibreOffice ecosystem, which offer them feature development services, Level 3 support, and Long Term Support versions of the software optimized for enterprise needs. + +More than 12 years after the announcement of LibreOffice and The Document Foundation, we can say that we have achieved our goal of developing an independent free and open source (FOSS) project. Our project is based on an extended community of individual volunteers and companies contributing according to their abilities. These participants help create the unmatched free office suite and support open standards by adopting and evolving the only true standard office document format on the market (Open Document Format, or ODF) while also ensuring excellent compatibility with the proprietary OOXML format. + +The sustainability of this model is a day-to-day problem. There's severe competition from big tech firms. We're always searching for a balance between those who would like everything to be cost-free and those who would like each user to contribute according to their ability. No matter what, though, LibreOffice is an open source office suite, providing added value above and beyond its competition. + +Try LibreOffice. Donate. Support it at home and work. Tell your friends about it. LibreOffice is the open source office solution that ensures you always have access to your data and control over your creativity. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/libreoffice-history + +作者:[Italo Vignoli][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/italovignoli +[b]: https://github.com/lkxed/ + From 800fc340559ec7843b3fbcd9fd945368ffeb8a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 17:10:44 +0800 Subject: [PATCH 2791/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][news]:=2020230207.2=20=E2=AD=90=EF=B8=8F=20Lightweight=20Dist?= =?UTF-8?q?ro=20LegacyOS=202023=20Released=20After=20Nine=20Years.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tro LegacyOS 2023 Released After Nine Years.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sources/news/20230207.2 ⭐️ Lightweight Distro LegacyOS 2023 Released After Nine Years.md diff --git a/sources/news/20230207.2 ⭐️ Lightweight Distro LegacyOS 2023 Released After Nine Years.md b/sources/news/20230207.2 ⭐️ Lightweight Distro LegacyOS 2023 Released After Nine Years.md new file mode 100644 index 0000000000..fd2729927c --- /dev/null +++ b/sources/news/20230207.2 ⭐️ Lightweight Distro LegacyOS 2023 Released After Nine Years.md @@ -0,0 +1,71 @@ +[#]: subject: "Lightweight Distro LegacyOS 2023 Released After Nine Years" +[#]: via: "https://debugpointnews.com/legacy-os-2023-release/" +[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Lightweight Distro LegacyOS 2023 Released After Nine Years +====== + +![][1] + +**Legacy OS 2023 is released after almost a decade and brings a new Debian base and apps.** + +![Legacy OS 2023 Desktop][2] + +The last release of Legacy OS was in 2014 and was based on Puppy Linux. It was intended to be a general-purpose lightweight distribution based on Puppy Linux with a complete set of applications, packages, media codecs, etc. The aim was to provide a complete operating system for older computers. However, the distro stopped releasing after 2014. Until now. + +### Legacy OS 2023 Release + +The antiX-based new Legacy OS 2023 release has a fundamental change. It is now based on the Debian stable branch (version 11 “bullseye”) rather than Puppy Linux. Hence you can expect a much more stable system with its default window manager offering Ice WM. Those who used IceWM know how lightning-fast it can be. This release is no exception. + +Along with IceWM, Legacy OS pre-loads a massive set of applications by default. The default file manager is PCManFM and also includes the ROX file manager. In addition, all the antiX native apps are preloaded, which includes antiX updater and user manager. Software manager Synaptic has been included, whereas an additional CLI package manager is also there. + +The graphics stack includes GIMP and Inkscape for advanced drawing work. Also, MyPaint, mtPaint, Peek screen recorder, screenshot and ImageMagick library are installed by default. + +If you are considering office suite, Legacy OS pre-loads OnlyOffice suite, Scribus publisher and Dia diagram editor. + +![The application list is huge][3] + +Internet stack includes Firefox ESR web browser, Thunderbird email client, gFTP client, Transmission torrent client and NetSurf web browser. + +You have Geany and VIM code editor installed by default if you are a developer. Furthermore, the powerful note-taking app Cherrytree, essential notepad apps Leafpad and whiteboard app Xournal are some of the leading apps, which makes it an all-rounder, lightweight distribution. + +These are just the key applications; there are almost 100+ applications pre-loaded. And it takes only 7 GB of disk space. + +The performance of this distribution is truly lightweight because its systemd-free and uses IceWM. It uses only 200 MB of RAM at idle, which surprised me. And overall, desktop performance is lightning-fast. + +![Performance is suprisingly good][4] + +It uses the Calamares installer and is perfect for older versions. However, it’s now only available as a 64-bit version, but the team is working on a 32-bit variant which will soon be released. + +I think it’s an excellent distribution to try out, and we are glad that it’s back. The team promises that there will be regular releases in the future. + +You can download the ISO image file from the below link. Remember, the LIVE media default user id is “demo”, and the password is also “demo”. + +[Download Legacy OS][5] + +Via [official announcement][6] + +-------------------------------------------------------------------------------- + +via: https://debugpointnews.com/legacy-os-2023-release/ + +作者:[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://debugpointnews.com/author/dpicubegmail-com/ +[b]: https://github.com/lkxed/ +[1]: https://debugpointnews.com/wp-content/uploads/2023/02/legacyoshead1.jpg +[2]: https://debugpointnews.com/wp-content/uploads/2023/02/Legacy-OS-2023-Desktop.jpg +[3]: https://debugpointnews.com/wp-content/uploads/2023/02/The-application-list-is-huge.jpg +[4]: https://debugpointnews.com/wp-content/uploads/2023/02/Performance-is-suprisingly-good.jpg +[5]: https://sourceforge.net/projects/legacyoslinux/files/LegacyOS_2023_x64/ +[6]: https://wikka.puppylinux.com/LegacyOS From 84db53bcad730e9cb203182baf15aed3e5114817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 11 Feb 2023 17:11:33 +0800 Subject: [PATCH 2792/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230207.3=20=E2=AD=90=EF=B8=8F=20How=20the=20Gherki?= =?UTF-8?q?n=20language=20bridges=20the=20gap=20between=20customers=20and?= =?UTF-8?q?=20developers.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...es the gap between customers and developers.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/talk/20230207.3 ⭐️ How the Gherkin language bridges the gap between customers and developers.md diff --git a/sources/talk/20230207.3 ⭐️ How the Gherkin language bridges the gap between customers and developers.md b/sources/talk/20230207.3 ⭐️ How the Gherkin language bridges the gap between customers and developers.md new file mode 100644 index 0000000000..a07e80a09d --- /dev/null +++ b/sources/talk/20230207.3 ⭐️ How the Gherkin language bridges the gap between customers and developers.md @@ -0,0 +1,91 @@ +[#]: subject: "How the Gherkin language bridges the gap between customers and developers" +[#]: via: "https://opensource.com/article/23/2/gherkin-language-developers" +[#]: author: "David Blackwood https://opensource.com/users/david-blackwood" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +How the Gherkin language bridges the gap between customers and developers +====== + +Communicating with software developers can often be a burdensome task, especially when people lack technical knowledge and technical vocabulary. This is why project managers often use [user stories][1] and the versatile system metaphor_._ + +You can assist communication further by utilizing technology designed to facilitate discussions between a project's stakeholders and developers. + +### The Cucumber framework + +Cucumber is an open source framework that enables the creation of automated software tests using an easy-to-write and common language_._ It's based on the concept of [behavior-driven development (BDD)][2], which dictates that creating software should define how a user wants an application to behave when specific conditions are true. + +The Cucumber framework isn't "technology" in the modern sense. It's not a collection of bits and bytes. Instead, it's a way of writing in natural language (English, in the case of this article, but so far Gherkin has been translated to over 70 languages). When using the Cucumber framework, you aren't expected to know how to read or write code. You only need to be able to write down ideas you have about how you work. You should also document how you want technology to work for you, using a set of specific terms and guidelines. + +### What is the Gherkin language? + +Cucumber uses Gherkin as a means to define use cases. It's primarily used to generate unambiguous project requirements_._ In other words, its purpose is to allow users to describe precisely what they require software to do, leaving no room for interpretation or exception. It helps you think through the process of a transaction with technology and then helps you write it down in a form that translates into programmer logic. + +Here's an example: + +``` +Feature: The Current Account Holder withdraws money +Scenario: The account in question is not lacking in funds +Given that the account balance is £200 +And the debit card is valid +And the cash machine contains enough money +When the Current Account Holder requests £50 +Then the cash machine dispenses £50 +And the account balance is £150 +And the debit card is returned +``` + +As you can see, this is a highly specific scenario in which an imaginary user requests £50, and the ATM provides £50 and adjusts the user's account balance accordingly. This scenario is just one part of an ATM's purpose, and it only represents a specific component of a person's interaction with a cash machine. When a programmer is given the task to program the machine to respond to a user request, this clearly demonstrates what factors are involved. + +#### What are Gherkin keywords? + +The Gherkin syntax makes use of five indispensable statements describing the actions needed to perform a task: + +- **Feature**: denotes a high-level description of any given software function +- **Scenario**: describes a concrete _example_ +- **Given**: explains the initial context of the system +- **When**: specifies an event or action +- **Then**: describes an expected outcome, or a result +- **And (or but)**: increases text fluidity + +By making use of these simple keywords, customers, analysts, testers, and software programmers are empowered to exchange ideas with terminology that's recognizable by all. + +### Executable requirements and automated testing + +Even better, _Gherkin requirements are also executable._ This is done by mapping eachand every keyword to its intended (and clearly stated) functionality. So, to keep with the example above, anything already implemented could automatically be displayed in green: + +``` +When the Current Account Holder requests £50* +Then the cash machine dispenses £50* +And the account balance is £150 +And the debit card is returned +``` + +By extension, Gherkin enables developers to translate requirements into testable code. In practice, you can use specific phrases to check in on your software solutions! If your current code isn't working properly, or a new change has accidentally caused a software error (or two or three) then you can easily pinpoint problems before proceeding to repair them. + +### Conclusion + +Thanks to the Gherkin syntax, your customers will no longer be in a pickle. You can bridge the divide between businesses and developers and deliver outstanding products with greater confidence than ever before. + +Find out more about Gherkin by visiting the [Cucumber website][3] or its [Git repository][4]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/gherkin-language-developers + +作者:[David Blackwood][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/david-blackwood +[b]: https://github.com/lkxed/ +[1]: https://softwareplanetgroup.co.uk/user-stories-bridging-the-gap-between-customers-and-developers-updated/ +[2]: https://opensource.com/article/19/2/behavior-driven-development-tools +[3]: https://cucumber.io/docs/gherkin/ +[4]: https://github.com/cucumber/docs From 2a382db13d7c6f708691a7fabd857198f836adb9 Mon Sep 17 00:00:00 2001 From: Cubik Date: Sat, 11 Feb 2023 17:54:36 -0500 Subject: [PATCH 2793/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?][news]:=2020230209.0=20=E2=AD=90=EF=B8=8F=20Linux=20Kernel=206?= =?UTF-8?q?.1=20is=20Now=20Approved=20as=20an=20LTS=20Version.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md b/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md index f613faef7b..502825b996 100644 --- a/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md +++ b/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Cubik65536" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -67,7 +67,7 @@ via: https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Cubik65536](https://github.com/Cubik65536) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 2853fe1693971dda0ac0d7bbdeb6c8687f9c3c12 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 12 Feb 2023 09:37:31 +0800 Subject: [PATCH 2794/3123] RP @geekpi https://linux.cn/article-15531-1.html --- ...w to use the Linux file manager for GNOME 2.md | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) rename {translated/tech => published}/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md (51%) diff --git a/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md similarity index 51% rename from translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md rename to published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md index a46007c0b9..f8253ab3e2 100644 --- a/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md +++ b/published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -3,56 +3,60 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15531-1.html" 如何使用 GNOME 2 的 Linux 文件管理器 ====== -在 GNOME 3 之前是 GNOME 2(毫不奇怪),在其作为常见的默认 Linux 桌面之一的统治期间,它已经获得了一个热心的粉丝群。[Mate项目][1](以 _yerba mate_ 植物命名)开始是为了延续 GNOME 2 的桌面,起初使用 GTK 2(基于 GNOME 2 的工具包),后来加入了 GTK 3。该桌面的一部分是 Caja 文件管理器,一个简单而强大的应用,可以帮助你分类和组织你的数据。 +![][0] + +> 如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。 + +在 GNOME 3 之前是 GNOME 2(废话),在其作为常见的默认 Linux 桌面之一的统治期间,它拥有了一个热心的粉丝群。[Mate 项目][1](以植物 _yerba mate_ 命名)最初是为了延续 GNOME 2 桌面的生命力,它起初是使用 GTK 2(基于 GNOME 2 的工具包)开发的,后来升级为 GTK 3。该桌面包含了一个 Caja 文件管理器,这是一个简单而强大的应用,可以帮助你分类和组织你的数据。 ### 安装 Caja Caja 并不完全是一个独立的应用。它与 Mate 桌面紧密相连,所以要试用它,你必须安装 Mate。 -你可能会发现 Mate 包含在你的 Linux 发行版的仓库中,或者你可以下载并安装一个将 Mate 作为默认桌面的发行版。不过,在你安装之前,要注意它是为了提供完整的桌面体验,所以许多 Mate 应用会和桌面一起安装。如果你运行一个不同的桌面,你可能会发现自己有多余的应用(两个 PDF 阅读器,两个媒体播放器,两个文件管理器,等等)。要评估 Caja 不会对你的电脑做重大改动,可以使用 [GNOME Boxes][2] 在虚拟机中安装一个基于 Mate 的发行版。 +你可能会发现 Mate 包含在你的 Linux 发行版的仓库中,或者你可以下载并安装一个将 Mate 作为默认桌面的发行版。不过,在你安装之前,要注意它是为了提供完整的桌面体验,所以会和桌面一起安装许多 Mate 应用。如果你运行一个不同的桌面,你可能会发现自己有多余的应用(两个 PDF 阅读器,两个媒体播放器,两个文件管理器,等等)。要评估 Caja 不会对你的电脑做重大改动,可以使用 [GNOME Boxes][2] 在虚拟机中安装一个基于 Mate 的发行版。 ![Image of the Caja file manager.][3] -### Clear 布局 +### 清晰的布局 -你可能首先注意到的是 Caja 的清晰和直接的布局。在 Caja 窗口的顶部有一个工具栏,上面有一些常用任务的按钮。我喜欢这样的设计。功能不是隐藏在右键菜单中,也不是只有在操作后才能发现,更不是埋在菜单中。窗口的“显而易见”的操作被直接列在上面。 +你可能首先注意到的是 Caja 的清晰而直接的布局。在 Caja 窗口的顶部有一个工具栏,上面有一些常用任务的按钮。我喜欢这样的设计。功能不是隐藏在右键菜单中,也不是只有在操作后才能发现,更不是埋在菜单中。窗口的“显而易见”的操作被直接列在上面。 -主工具栏下面是位置栏。它显示你当前的路径,可以是一系列的按钮,也可以是可编辑的文本。使用路径左边的**编辑**按钮来切换它是否可编辑。 +主工具栏下面是位置栏。它显示你当前的路径,可以是一系列的按钮,也可以是可编辑的文本。使用路径左边的 “编辑Edit” 按钮来切换它是否可编辑。 ### 可配置 -对于 GNOME 2 或 Caja 的长期用户来说,主工具栏可能是多余的,尤其是当你知道了调用常用操作的键盘快捷键后。这就是为什么 Caja 的界面是可配置的。你可以从**查看**菜单中禁用Caja窗口的主要组件,包括: +对于 GNOME 2 或 Caja 的长期用户来说,主工具栏可能是多余的,尤其是当你知道了调用常用操作的键盘快捷键后。这就是为什么 Caja 的界面是可配置的。你可以从 “查看View” 菜单中禁用 Caja 窗口的主要组件,包括: - 主工具条 - 位置栏 -- 侧板 -- 额外面板 +- 侧面板 +- 附加面板 - 状态栏 -简而言之,你可以把 Caja 变成你想要的最小的样子。 +简而言之,你可以按你的想法精简 Caja。 -![Image of a minimal Caja layout.][4] +![Image of a minimal Caja layout.][4] ### 标记你的文件夹 -有些人是“可视化”人。他们喜欢根据自己对数据的看法来组织文件和文件夹,而不是根据计算机对数据的解释。例如,如果对你来说最重要的两个文件夹是**音乐**和**工作**,就很难让计算机相信这两者之间有任何关系。按字母顺序,两者之间有很多应该开始的地方,而且每个文件夹的内容可能完全不同(一个是媒体文件,另一个是电子表格)。 +有些人是 “可视化” 人。他们喜欢根据自己对数据的看法来组织文件和文件夹,而不是根据计算机对数据的解释。例如,如果对你来说最重要的两个文件夹是**音乐**和**工作**,就很难让计算机相信这两者之间有任何关系。按字母顺序两者也排不到一起,而且每个文件夹的内容可能完全不同(一个是媒体文件,另一个是电子表格)。 ### Caja 提供了一些帮助 -使用 Caja,你可以在一个窗口内手动放置目录,Caja 会记住这个位置。更重要的是,Caja 有多种标志可供你用作视觉标签。你可以在**编辑**菜单的**背景和标志**中找到它们。将它们拖放到文件和文件夹中以帮助它们区分。 +使用 Caja,你可以在一个窗口内手动放置目录,Caja 会记住这个位置。更重要的是,Caja 有多种标志可供你用作视觉标签。你可以在 “编辑Edit” 菜单的 “背景和标志Backgrounds and Emblems” 中找到它们。将它们拖放到文件和文件夹中以帮助它们区分。 ![Image of emblems in Caja.][5] ### Caja -作为文件管理器,Caja 是最诱人的之一。它的可配置性足以吸引许多不同的使用场景,而且在这些配置选项中,你很可能找到适合你的工作流程。如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。 +Caja 是最诱人的文件管理器之一。它的可配置性足以吸引许多不同的使用场景,而且在这些配置选项中,你很可能找到适合你的工作流程。如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。 -------------------------------------------------------------------------------- @@ -61,7 +65,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-caja 作者:[Seth Kenlon][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/) 荣誉推出 @@ -72,3 +76,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-caja [3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png [4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png [5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp +[0]: https://img.linux.net.cn/data/attachment/album/202302/12/093538qnlj0jdunz10n17c.jpg \ No newline at end of file From cf78d14e75d2d698918ac65c0ebfbd886b50ae06 Mon Sep 17 00:00:00 2001 From: Cubik Date: Sat, 11 Feb 2023 20:50:51 -0500 Subject: [PATCH 2795/3123] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?][news]:=2020230209.0=20=E2=AD=90=EF=B8=8F=20Linux=20Kernel=206?= =?UTF-8?q?.1=20is=20Now=20Approved=20as=20an=20LTS=20Version.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ernel 6.1 is Now Approved as an LTS Version.md | 54 ++++++++----------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md b/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md index 502825b996..7ec2244a5a 100644 --- a/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md +++ b/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md @@ -7,59 +7,51 @@ [#]: publisher: " " [#]: url: " " -Linux Kernel 6.1 is Now Approved as an LTS Version +Linux 6.1 内核被认证为长期支持版本 ====== -Linux Kernel 6.1 was due for approval for more than a month as the last LTS version of 2022. Now, that's a green light! +Linux 6.1 内核作为 2022 年的最后一个长期支持版本,已经等待了一个多月的批准。现在,它已经获得了批准! -![Linux Kernel 6.1 is Now Approved as an LTS Version][1] +![Linux 6.1 内核被认证为长期支持版本][1] -Linux Kernel 6.1 was the last kernel release of 2022; usually, these end up as an LTS release. +Linux 6.1 内核是 2022 年的最后一个内核版本,通常这些版本会被认证为长期支持版本。 -But this time around, the decision to make it LTS was delayed. +但是这次,将其作为 LTS 版本的决定被推迟了。 -Some key feedback was pending from the kernel stakeholders around test results before they planned on using this kernel for the long term. +在决定是否将其用于长期使用之前,还在等待一些来自内核相关人员的关键反馈的测试结果。 -Fortunately, those things have since been resolved, and now **Linux Kernel 6.1 is an LTS release.** +幸好,这些问题已经得到解决,现在 **Linux 6.1 是一个长期支持版本**。 -Let me take you through the gist of this move. +让我带你了解这一举措的要点。 -### Linux 6.1 is Now Officially an LTS Release +### Linux 6.1 已经成为了一个官方长期支持版本 -Since its debut in December, **Greg Kroah-Hartman**, the Linux stable maintainer, was planning on Linux 6.1 as an LTS release, but the pending feedback delayed the move. +自从 12 月份发布以来,Linux 稳定分支维护者 **Greg Kroah-Hartman** 就计划将 Linux 6.1 作为一个长期支持版本,但是一些待定的反馈导致该决定被推迟了。 -Now, he and co-maintainer Sasha Levin have finally received enough responses that maintaining Linux Kernel 6.1 as an LTS makes sense. +现在,他和副维护者 Sasha Levin 终于收到了足够的反馈,维护 Linux 内核 6.1 作为一个 长期支持版本是有意义的。 -As things stand right now, the projected end-of-life for 6.1 is **December 2026,** with the potential for an extension if enough users or companies are interested in using it. +按照目前的情况,Linux 6.1 内核将于 **2026 年 12 月**结束支持,如果有足够多的用户或公司对其感兴趣,那么它的生命周期可能会延长。 -![a table depicting the current lts releases of linux kernel][2] +![一张描述当前 Linux 长期支持版本的表格][2] -Initially, this was planned for a 2-year LTS cycle but was later updated to the **current 4-year maintenance period**. +最初,它的生命周期被计划为 2 年,但是后来被更新为了**当前的 4 年**。 -You will also notice that many Linux Kernels are being maintained concurrently as LTS versions. +你还会注意到,许多 Linux 内核被同时作为长期支持版本维护。 -### Linux Kernel 6.1: Overview +### Linux 6.1 内核:概述 -If you missed out on the release, Here are some of the highlights that arrived with Linux Kernel 6.1: +如果你错过了这个版本,下面是 Linux 内核 6.1 的一些亮点: -- **Experimental Support for Rust** -- **Optimizations for AMD PCs** -- **Initial Support for Intel Meteor Lake** -- **Improved ARM SoC Support** +- **对 Rust 的实验性支持** +- **对 AMD PC 的优化** +- **对 Intel Meteor Lake 的初始支持** +- **优化 ARM 架构 SoC 的支持** -These are not the only things on offer; you may go through our article for a better outlook. +这些并不是新版本的全部内容;你可以阅读我们的文章以了解更多信息。 **Via:**[Phoronix][3] -💬 _Considering this is an LTS version, you can expect future distro upgrades to include Linux Kernel 6.1. What do you think will you prefer to use?_ - -### More from It's FOSS... - -- 📩 Stay updated with the latest on Linux and Open Source. Get our [weekly Newsletter][4]. -- Understand the [difference between Snap and Flatpak][5]. -- 🎟️ Near California? Attend the [SCALE][6] conference from March 9-12. -- [Upcoming code editors][7] to challenge the VS Code supremacy. -- Promising [new distros in 2023][8]. +💬 _考虑到这是一个长期支持版本,你可以预见到很多未来的发行版升级将会包含 Linux 6.1 内核。你认为你会更喜欢使用哪个版本?_ -------------------------------------------------------------------------------- From 43562a621d4eec6ccbf6c515cf5baf1850bf3597 Mon Sep 17 00:00:00 2001 From: Cubik Date: Sat, 11 Feb 2023 20:51:08 -0500 Subject: [PATCH 2796/3123] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91?= =?UTF-8?q?][news]:=2020230209.0=20=E2=AD=90=EF=B8=8F=20Linux=20Kernel=206?= =?UTF-8?q?.1=20is=20Now=20Approved=20as=20an=20LTS=20Version.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md (100%) diff --git a/sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md b/translated/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md similarity index 100% rename from sources/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md rename to translated/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md From 1d85a279fcd2271266d2eace3008dd7ebda29172 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 12 Feb 2023 10:36:12 +0800 Subject: [PATCH 2797/3123] R --- ...221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md index f8253ab3e2..6435a83e33 100644 --- a/published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md +++ b/published/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -7,7 +7,7 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-15531-1.html" -如何使用 GNOME 2 的 Linux 文件管理器 +GNOME 2 的 Linux 文件管理器 Caja ====== ![][0] From f1331714b483daa65405451bb0fd65a786ac5f8b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 12 Feb 2023 10:58:36 +0800 Subject: [PATCH 2798/3123] RP @Cubik65536 https://linux.cn/article-15532-1.html --- ...ernel 6.1 is Now Approved as an LTS Version.md | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) rename {translated/news => published}/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md (60%) diff --git a/translated/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md b/published/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md similarity index 60% rename from translated/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md rename to published/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md index 7ec2244a5a..ed99b5c098 100644 --- a/translated/news/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md +++ b/published/20230209.0 ⭐️ Linux Kernel 6.1 is Now Approved as an LTS Version.md @@ -3,18 +3,18 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15532-1.html" -Linux 6.1 内核被认证为长期支持版本 +Linux 6.1 内核被批准为长期支持版本 ====== -Linux 6.1 内核作为 2022 年的最后一个长期支持版本,已经等待了一个多月的批准。现在,它已经获得了批准! +> 作为 2022 年的最后一个内核,经过一个多月的等待,现在 Linux 6.1 被批准为长期支持版本。 -![Linux 6.1 内核被认证为长期支持版本][1] +![Linux 6.1 内核被批准为长期支持版本][1] -Linux 6.1 内核是 2022 年的最后一个内核版本,通常这些版本会被认证为长期支持版本。 +Linux 6.1 内核是 2022 年的最后一个内核版本,通常这些版本会被批准为长期支持版本。 但是这次,将其作为 LTS 版本的决定被推迟了。 @@ -24,34 +24,36 @@ Linux 6.1 内核是 2022 年的最后一个内核版本,通常这些版本会 让我带你了解这一举措的要点。 -### Linux 6.1 已经成为了一个官方长期支持版本 +### Linux 6.1 现在正在成为长期支持版本 自从 12 月份发布以来,Linux 稳定分支维护者 **Greg Kroah-Hartman** 就计划将 Linux 6.1 作为一个长期支持版本,但是一些待定的反馈导致该决定被推迟了。 -现在,他和副维护者 Sasha Levin 终于收到了足够的反馈,维护 Linux 内核 6.1 作为一个 长期支持版本是有意义的。 +现在,他和共同维护者 Sasha Levin 终于收到了足够的反馈,表明将 Linux 内核 6.1 作为一个长期支持版本维护是合理的。 -按照目前的情况,Linux 6.1 内核将于 **2026 年 12 月**结束支持,如果有足够多的用户或公司对其感兴趣,那么它的生命周期可能会延长。 +按照目前的情况,Linux 6.1 内核预期将于 **2026 年 12 月** 结束支持,如果有足够多的用户或公司对其感兴趣,那么它的生命周期可能会延长。 ![一张描述当前 Linux 长期支持版本的表格][2] -最初,它的生命周期被计划为 2 年,但是后来被更新为了**当前的 4 年**。 +最初,它的生命周期被计划为 2 年,但是后来被更新为了 **当前的 4 年**。 -你还会注意到,许多 Linux 内核被同时作为长期支持版本维护。 +你还会注意到,同时许多 Linux 内核都被作为长期支持版本维护。 ### Linux 6.1 内核:概述 如果你错过了这个版本,下面是 Linux 内核 6.1 的一些亮点: -- **对 Rust 的实验性支持** -- **对 AMD PC 的优化** -- **对 Intel Meteor Lake 的初始支持** -- **优化 ARM 架构 SoC 的支持** +- 对 Rust 的实验性支持 +- 对 AMD PC 的优化 +- 对英特尔 Meteor Lake 的初始支持 +- 优化 ARM 架构 SoC 的支持 这些并不是新版本的全部内容;你可以阅读我们的文章以了解更多信息。 -**Via:**[Phoronix][3] +> **[Linux 内核 6.1 发布,初步支持 Rust][9]** -💬 _考虑到这是一个长期支持版本,你可以预见到很多未来的发行版升级将会包含 Linux 6.1 内核。你认为你会更喜欢使用哪个版本?_ +参考自:[Phoronix][3] + +💬 考虑到这是一个长期支持版本,你可以预见到很多未来的发行版升级将会包含 Linux 6.1 内核。你认为你会更喜欢使用哪个版本? -------------------------------------------------------------------------------- @@ -60,7 +62,7 @@ via: https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -74,3 +76,4 @@ via: https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/ [6]: https://www.socallinuxexpo.org/scale/20x [7]: https://news.itsfoss.com/upcoming-code-editors/ [8]: https://news.itsfoss.com/new-distros-2023/ +[9]: https://news.itsfoss.com/linux-kernel-6-1-release/ \ No newline at end of file From 8410cc5739b48fb0fafdad8c25e0927a10457282 Mon Sep 17 00:00:00 2001 From: gpchn <99541536+gpchn@users.noreply.github.com> Date: Sun, 12 Feb 2023 16:06:35 +0800 Subject: [PATCH 2799/3123] gpchn translating --- ...10.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md b/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md index 0e8a8a5a35..a62fa5d750 100644 --- a/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md +++ b/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-dosbox-ubuntu/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "gpchn" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 08fa94144c0fb99a3fa5c7728ed17890e6419d3b Mon Sep 17 00:00:00 2001 From: Xiaoting Huang <1912890545@qq.com> Date: Sun, 12 Feb 2023 19:00:37 +0800 Subject: [PATCH 2800/3123] Update 20210820 3 steps for managing a beginner-friendly open source community.md --- ...beginner-friendly open source community.md | 160 +++++++++--------- 1 file changed, 82 insertions(+), 78 deletions(-) diff --git a/sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md b/sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md index ce3df9c7d3..a36eac376d 100644 --- a/sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md +++ b/sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md @@ -2,120 +2,124 @@ [#]: via: "https://opensource.com/article/21/8/beginner-open-source-community" [#]: author: "Isabel Costa https://opensource.com/users/isabelcmdcosta" [#]: collector: "lujun9972" -[#]: translator: " " +[#]: translator: "XiaotingHuang22" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -3 steps for managing a beginner-friendly open source community -====== -As a member of an open source project, there's a lot you can do to help -beginners find a way to contribute.  -![Working from home at a laptop][1] -When someone is new to contributing to open source, the best place to start is often beginner-friendly bugs and issues. But before they can do that, they have to be able to find those kinds of issues. As a member of an open source project, there's a lot you can do to help beginners find a way to contribute.  +3个步骤管理对新手友好的开源社区 + ====== -Bearing this in mind, the [AnitaB.org open source community][2] prioritizes making our community beginner-friendly. We have initiatives to ensure that we're inclusive for contributors at different levels of experience and for different types of contributions that don't only relate to coding. + 作为开源项目的成员,您可以做很多事情来帮助新手找到为项目作出贡献的方式。 + ![在家使用笔记本电脑工作][1] + + 当有人刚开始为开源做贡献时,最好从对新手友好的故障和问题开始。但在他们修复故障之前,他们必须要能够找到这类问题。作为开源项目的成员,您可以做很多事情来帮助新手找到为项目贡献的方式。 -I recently presented some of the community work we do at the [AnitaB.org][3] community at [Upstream 2021][4], the Tidelift event, which kicked off Maintainer Week, a weeklong celebration of open source maintainers. I discussed how there are three main parts to our strategy: + 牢记这一点,[AnitaB.org 开源社区][2] 优先考虑让我们的社区做到对新手友好。 我们提倡包容性,确保不同经验和水平的贡献者都可以参与进来,并且他们的贡献不止限于跟编程有关。 - * How we communicate - * Projects and issues - * Open source programs + 我最近在 [Upstream 2021][4] 上介绍了我们在 [AnitaB.org][3] 上所做的一些社区工作,Tidelift举办的活动启动了维护者周,这是一个为期一周的开源维护者庆祝活动。在活动中我讨论了我们战略的三个主要部分: + + * 我们如何沟通 + * 项目和问题 + * 开源项目 - -### How we communicate - -Transparency is such an essential part of open source, and we apply transparency principles to our approach to communication. In practical terms, this means that all our community sessions are run openly, affect how we've set up Zulip chat and how we provide documentation. - -#### **Open sessions** - -Anyone can join our sessions and discuss topics related to our community. They can participate in discussions or just listen. These are available for everyone to see in our community calendar. We usually only use audio in these calls, which we've found can make people feel more comfortable participating. - -We host project-focused sessions and a couple of category-related sessions, where people from different areas can discuss the same project and help improve our processes. Occasionally, we have "Ask Me Anything" sessions, where anyone can come and ask questions about anything related to open source. - -We take notes of all sessions in a shared document and share the summary and a document link in [our Zulip][5]. - -#### **Our Zulip chat** - -The open source Zulip chat platform is our primary community communication channel, although we also use the comments section on issues and pull requests on Github. In general, we have disabled private messaging to make sure we are as transparent as possible. We have only a few exceptions to this rule, where we have private streams for admins dealing with the logistics of the programs we run. We've found this approach is more welcoming, and it also enables us to have more visibility into conduct violations in the public chat. - -We share all session summaries on the Zulip chat, including the main points discussed, action items, and documentation. This process might sound like an obvious requirement, but I've been surprised at how many open source projects don't provide notes so that people who did not attend can remain informed. - -On Zulip, we discuss project roadmaps, answer questions and queries from the community, and actively **promote ways for people to contribute and where they can contribute. **Sometimes we celebrate contributors' wins—whether it's to highlight the first PR they have tested, reviewed, or the excellent work our volunteers do. - -#### **Documentation** - -We try to keep **open documentation about our processes**, such as FAQs, so those community members can learn at their own pace and in their own time about the community. This is intended to give them an idea of how we work and what type of work we do before reaching out to us. - -### Projects and issues - -Regarding our projects and issues management, we encourage multiple ways to contribute, create specific issues for first-timers only, and try to have an easy setup for projects. - -#### **Multiple ways to contribute** - -We make an effort to create **issues that require different contributions** such as documentation, testing, design, and outreach. This is to provide ways for anyone to contribute regardless of their experience level and area of interest. It helps the community get involved, and we've found that it enables members to work their way up and contribute to some low-effort but valuable tasks. - -Types of contributions we promote are: - - * Coding tasks that range in complexity. - * Quality assurance tasks—where contributors can test our apps or pull requests and report bugs. - * Design sessions where members can participate in discussions. Also, opportunities to create mock-ups and redesign parts of our apps, and explore user experience improvements. - * Outreach tasks, we primarily promote on Zulip, where we suggest blogging to our Medium publication about their open source experiences and their contributions. - * Documentation tasks that can include general community documentation or our project's documentation on Docusaurus. + ### 我们如何沟通 + 透明度是开源的重要组成部分,我们将透明度原则应用于我们的沟通方式。实际上,这意味着我们所有的社区会议都是公开进行的,并且影响我们设置Zulip聊天的方式以及我们提供文档的方式。 -#### **First-timers only issues** + #### **开放会议** -We label some **issues as "first-timers only."** These are for people who have not contributed yet to the issue's repository. Labeling issues also enable us to have work for people beginning their open source journey during times of contributor influx, for example, during [Google Summer of Code (GSoC)][6]. + 任何人都可以加入我们的会议并讨论与我们社区相关的话题。他们可以参与讨论或者旁听。会议相关信息在我们的社区日历中都可以找到。在这些通话中我们通常只使用语音聊天,我们发现这可以让人们在参与时感觉更自在。 -Sometimes these might be "low-hanging fruit" that can get them acquainted with the process of contributing and submitting pull requests. + 我们举办以项目为中心的会议和一些与类别相关的会议。会议上,来自不同领域的人们可以讨论同一个项目并帮助改进我们的流程。偶尔,我们会有“自由提问(Ask Me Anything)”会议,任何人都可以来问任何与开源相关的问题。 -#### **Easy project setup** + 所有会议我们都会在共享文档中进行记录,并在 [我们的Zulip(our Zulip)][5] 中共享摘要和文档链接。 -We also care about having a **beginner-friendly setup **for our projects. We notice that the most active project is generally the easiest to set up. We know that contributing to a project you aren't familiar with can take a lot of effort and make or break the experience of contributing. + #### *我们的Zulip聊天** -We try to provide instructions on how to run our projects on multiple operating systems. In the past, we had some projects with separate instructions to run on Unix environments, and we noticed contributors having difficulties running these projects on Windows. We've improved since then to avoid confusion among contributors who would ask for help on our Zulip. + 开源 Zulip 聊天平台是我们的主要社区交流渠道,虽然我们也在Github的评论区讨论问题和拉取请求(pull request)。一般来说,我们已禁用私人消息以确保我们尽可能透明。对于这条规则,我们只有少数例外,那些私人聊天是管理员在处理我们运行程序的后勤工作所用的。 我们发现这种方法更受欢迎,它还使我们能够更清楚公共聊天中的违规行为。 -We have been improving the README for one of our most active projects, [mentorship-backend][7], according to contributors' experience. One of the struggles for beginners in this project was setting part of the environment variables related to configuring an email account to enable the backend functionality to send emails. However, because this feature was not critical for local development, by default, we made the email setup optional so that emails, instead of being sent to users, were printed to the terminal. This approach still made the emails visible to the contributor. Similar to this change, we made [the SQLite database][8] the default for local development to avoid additional setup for the Postgres database, even though we use this in our deployed version. + 我们在 Zulip 聊天室分享所有会议摘要,包括讨论的要点、行动项目和文档。这些听起来好像是些显而易见的要求,但我一直惊讶于很多开源项目并不提供笔记,所以 Zulip可以让那些没有参加会议的人也随时了解情况。 + + 在 Zulip上,我们讨论项目路线图,回答社区的问题和查询,并积极**促进人们通过不同的方式方法和在不同的场景下做出自己的贡献。 **有时我们为贡献者的成就而庆祝——无论是突出他们测试或者审查的第一个拉取请求,还是强调我们志愿者所做的出色工作。 -We have noticed that some contributors have struggled to contribute to one of our projects, [bridge-in-tech-backend][9], where its setup is complicated and includes many more steps than [mentorship-backend][7]. Since we noticed this in one of our open source programs, we have been exploring improving its structure. + #### **文档** -For most of our projects, we also provide a live or bundled version of the apps so that contributors can test the project without setting it up. This helps us provide a way for contributors who are not interested or familiar with the development setup to try the most recent version of our apps and contribute by reporting any bugs found. We have the links to these apps deployed on our [Quality Assurance guide][10]. + 我们尽量保持**关于我们流程的开放文档**,例如常见问题解答,以便这些社区成员可以按照自己的节奏和时间了解社区。这是为了让他们在联系我们之前了解我们的工作方式以及我们从事的工作类型。 -### Open source programs -We organize two main programs in our community: Open Source Hack (a one-month program) and Open Source Ambassadors (a six-month program). + ### 项目和问题 -#### **Open Source Hack (OSH)** + 关于我们的项目和问题管理,我们鼓励通过多种方式做出贡献,我们为新手专门创建特定的问题,并尝试让项目的设置变得简单。 -In this program, we create issues in multiple categories of contributions—Documentation, Coding, Outreach, Testing, and Design (similar to the [Google Code-in][11] contest). Participants can contribute and receive digital certificates for contributing at least once to each category. One issue may include multiple categories, and the pull requests don't need to be merged for their contributions to be valid. + #### **多种贡献的方式** -We select a few projects for this program, then mentors brainstorm and create issues for participants. When the program starts, participants can claim issues and begin contributing. Mentors support and review their contributions. + 我们努力创建**需要不同贡献的问题**,例如文档、测试、设计和外展。这是为了让任何人,无关他们的经验水平和兴趣领域,都能做出贡献。这样能够帮助社区参与进来,而且我们发现它使成员能够从一些省力但有价值的任务开始一步步做出贡献。 -This approach encourages diversity of contributions and welcomes anyone, regardless of their coding ability, to contribute in a friendly and fail-safe environment. + 我们提倡的贡献类型有: -#### **Open Source Ambassadors** + * 不同复杂性的编程任务。 + * 质量保证任务——贡献者可以测试我们的应用程序或拉取请求并报告错误。 + * 社区成员可以参与讨论的设计会议。此外,创建模型和重新设计我们应用程序某些部分的机会,并探索改进用户体验。 + * 外展任务,我们主要在 Zulip 上推广,我们建议在我们的 Medium 出版物上发表博客,介绍他们的开源经验和他们的贡献。 + * 文档任务,可以包括一般社区文档或我们在 Docusaurus 上的项目文档。 + + + #### **仅限新手的问题** -In this program, we select ambassadors from the community that ideally will cover each category of contributions we aim to promote. We've run this program twice so far. +我们将一些**问题标记为“仅限新手”。**这些问题适用于尚未为问题存储库做出贡献的人。为问题做标签还使我们能够让人们在贡献者涌入期间开始他们的开源之旅,例如,在 [Google夏日程式碼大賽(GSoC)][6] 申请期间。 -The program aims to have members grow in helping manage projects and initiatives by responding to questions from the community, assisting contributors to get involved, and advocating for their assigned category. + 有时,这些可能是“唾手可得的果实”,让他们可以熟悉作出贡献和提交拉取请求的过程。 -In the first program we ran, we accepted anyone who applied. We assessed where members' interests lay and provided a structure for people who wanted to contribute but were initially uncomfortable with taking that step. -This edition was very enlightening for us as a community. It required a lot of management from admins, as we had a mix of experienced and inexperienced open source contributors and community members. Some ambassadors were confident in stepping up and leading initiatives, while others needed more support. For our second program, we decided to scale down the initiative. We only accepted contributors who were already familiar with the community and could lead on initiatives and projects and help us train the less experienced. + #### **简单的项目设置** -The second program became a positive feedback loop. Ambassadors who started as beginners, contributing to the first program we ran, became comfortable leading after learning from their experience with the program. + 我们也很在意为我们的项目提供**新手友好的安装设置**。我们注意到最活跃的项目通常是最容易设置的。我们知道,为您不熟悉的项目做出贡献可能需要付出很多努力并且关乎贡献体验的成败。 -This change of approach enabled admins to focus more on supporting the ambassadors' team, helping them propagate our mission and continue making the community beginner-friendly, and mentoring more people to contribute. + 我们尝试提供有关如何在多个操作系统上运行我们项目的说明。过去我们有一些项目在 Unix 环境中运行有单独的指令,我们注意到贡献者在 Windows 上运行这些项目有困难。自那以后我们不断进行改进,以避免让在 Zulip 上寻求帮助的贡献者产生混淆。 -### Summary + 根据贡献者的经验,我们一直在改进我们最活跃的项目之一 [mentorship-backend][7] 的自述文件。新手在这个项目中遇到的其中一个困难是设置与配置电子邮件帐户相关的部分环境变量,以使后端功能能够发送电子邮件。 但是,由于此功能对于本地开发并不重要,因此默认情况下,我们将电子邮件设置设为可选,以便将电子邮件打印到终端,而不是发送给用户。 这种方法仍然使电子邮件对贡献者可见。 与此更改类似,我们将 [SQLite 数据库][8] 作为本地开发的默认设置,以避免对 Postgres 数据库进行额外设置,虽然我们在部署版本中会使用到Postgres。 -These programs have helped us bring awareness to different ways to contribute and give back to open source. Through these, we've found volunteers helping by managing projects and hosting open sessions, which contributes to managing the community and providing mentorship to our contributors. +我们注意到,一些贡献者在为我们的 [bridge-in-tech-backend][9]项目做出贡献时觉得很困难,该项目的设置很复杂,并且包含的步骤比 [mentorship-backend][7] 多得多。 自从我们在一个开源项目中注意到这一点以来,我们一直在探索如何改进其结构。 -Even though we have had a good response from contributors and helped people make their first contributions, we still have a lot of room for improvement. We will continue to enhance our project's setup and contribution guidelines to improve contributors' experience. We'll also continue to focus on making sure we always have and promote available issues across the organization and in different categories to promote an inclusive environment so that anyone who wishes to can contribute. +对于我们的大多数项目,我们还提供应用程序的实时或内部版本,以便贡献者无需设置即可测试项目。这有助于我们为不感兴趣或不熟悉开发设置的贡献者提供一种方式来尝试我们应用程序的最新版本,并通过报告发现的任何错误来做出贡献。我们在 [质量保证指南][10] 中放了这些应用程序的链接。 + +### 开源项目 + +我们在社区中组织了两个主要项目:Open Source Hack(一个为期一个月的项目)和 Open Source Ambassadors(一个为期六个月的项目)。 + +#### **开源黑客 (OSH)** + +在此计划中,我们在多个类别的贡献中创建问题——文档、编码、外展、测试和设计(类似于 [Google Code-in][11] 竞赛)。 参与者可以为每个类别至少贡献一次并获得数字证书。 一个问题可能包含多个类别,并且无需合并拉取请求也能使贡献有效。 + +我们为这个计划选取几个项目,请导师们集思广益为参与者创造问题。项目开始后参与者可以认领问题并开始作出贡献。导师会支持帮助并审查他们的贡献。 + +这种方法鼓励贡献的多样性,并欢迎任何人,无论他们的编码能力如何都可以在友好和不怕出错的环境中做出贡献。 + + +#### **开源大使** + +在此计划中,我们从社区中选择大使,理想情况下他们将涵盖我们旨在促进的每一类贡献。至今该计划已启动了两次。 + +该计划旨在让成员通过回答社区的问题、协助贡献者参与并为他们指定的类别宣传来帮助管理项目和计划。 + +第一届计划举行时我们接受了所有的申请者。我们评估了社区成员的兴趣所在,并为那些想要做出贡献但最初不敢踏出第一步的人提供了一个体系。 + +第一届计划的举办给了我们很多启发。因为我们的活动中既有经验丰富的开源贡献者和社区成员,也有初来乍到缺乏经验的新手,因此项目的执行要求管理员进行大量的管理工作。一些社区大使信心十足准备好进一步采取新措施,而其他大使则需要更多支持。到了第二届,我们决定缩减该计划,只接受那些已经熟悉社区、可以领导倡议和项目并帮助我们培训新人的贡献者。 + +第二届计划中形成了正反馈循环。那些在第一届计划中还是新手的大使们,通过为上一个项目做出贡献并且从项目经验中学习之后能够做到轻松带领项目。 + +这种方法的改变使管理员能够更加专注于支持大使团队,帮助他们传播我们的使命并继续让我们的社区对新手友好,并指导更多人做出贡献。 + +### 总结 + + +这些计划帮助我们提高了对开源贡献和回馈的不同方式的认识。通过它们,我们发现志愿者通过管理项目和举办公开会议来提供帮助,这有助于管理社区并为我们的贡献者提供指导。 + +尽管我们得到了贡献者的良好反响并帮助人们做出了他们的第一个贡献,但我们仍有很大的改进空间。我们将继续改进我们项目的设置和贡献指南,以改善贡献者的体验。我们还将继续专注于确保我们的组织始终拥有并推动不同类别的问题,促进包容性,以便任何有意愿做出贡献的人都能出自己的一份力。 -------------------------------------------------------------------------------- @@ -123,7 +127,7 @@ via: https://opensource.com/article/21/8/beginner-open-source-community 作者:[Isabel Costa][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[XiaotingHuang22](https://github.com/XiaotingHuang22) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a6e858f31f7a25ec9df770053509a1cc36c8aeef Mon Sep 17 00:00:00 2001 From: Xiaoting Huang <1912890545@qq.com> Date: Sun, 12 Feb 2023 19:07:23 +0800 Subject: [PATCH 2801/3123] Rename sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md to translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md --- ...teps for managing a beginner-friendly open source community.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210820 3 steps for managing a beginner-friendly open source community.md (100%) diff --git a/sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md b/translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md similarity index 100% rename from sources/tech/20210820 3 steps for managing a beginner-friendly open source community.md rename to translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md From 0816cf3e0aa46fa914e293a67ebc160c2a97a003 Mon Sep 17 00:00:00 2001 From: ali Date: Sun, 12 Feb 2023 21:39:34 +0800 Subject: [PATCH 2802/3123] How to Install and Use GNOME Boxes to Create Virtual Machines --- ...to Install and Use GNOME Boxes to Create Virtual Machines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md b/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md index 1e2eeb7abc..05bfbf2a81 100644 --- a/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md +++ b/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-use-gnome-boxes/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: " void-mori" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d96676f07b3ce7d819039cb2283ec327c1494874 Mon Sep 17 00:00:00 2001 From: void-mori <33717915+void-mori@users.noreply.github.com> Date: Sun, 12 Feb 2023 21:47:24 +0800 Subject: [PATCH 2803/3123] Update 20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md --- ...to Install and Use GNOME Boxes to Create Virtual Machines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md b/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md index 05bfbf2a81..1f8d265d2d 100644 --- a/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md +++ b/sources/tech/20220922 How to Install and Use GNOME Boxes to Create Virtual Machines.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-use-gnome-boxes/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " void-mori" +[#]: translator: "void-mori" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4d969d6c68c6b07b6c2d50520c185c4a6a3e25c2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 12 Feb 2023 22:31:25 +0800 Subject: [PATCH 2804/3123] RP @XiaotingHuang22 https://linux.cn/article-15534-1.html --- ...beginner-friendly open source community.md | 141 +++++++++++++++++ ...beginner-friendly open source community.md | 147 ------------------ 2 files changed, 141 insertions(+), 147 deletions(-) create mode 100644 published/20210820 3 steps for managing a beginner-friendly open source community.md delete mode 100644 translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md diff --git a/published/20210820 3 steps for managing a beginner-friendly open source community.md b/published/20210820 3 steps for managing a beginner-friendly open source community.md new file mode 100644 index 0000000000..80b96b547d --- /dev/null +++ b/published/20210820 3 steps for managing a beginner-friendly open source community.md @@ -0,0 +1,141 @@ +[#]: subject: "3 steps for managing a beginner-friendly open source community" +[#]: via: "https://opensource.com/article/21/8/beginner-open-source-community" +[#]: author: "Isabel Costa https://opensource.com/users/isabelcmdcosta" +[#]: collector: "lujun9972" +[#]: translator: "XiaotingHuang22" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15534-1.html" + +管理对新手友好的开源社区的三个步骤 +====== + +> 作为一个开源项目的成员,你可以做很多事情来帮助新手找到为项目作出贡献的方式。 + +![][0] + +当有人刚开始为开源做贡献时,最好从对新手友好的故障和议题开始。但在他们修复故障之前,他们必须要能够找到这类问题。作为一个开源项目的成员,你可以做很多事情来帮助新手找到为项目贡献的方式。 + +鉴于此,[AnitaB.org 开源社区][2] 优先考虑让我们的社区做到对新手友好。我们提倡包容性,确保不同经验和水平的贡献者都可以参与进来,并且他们的贡献不止限于跟编程有关。 + +我最近在 [Upstream 2021][4],即 Tidelift 活动中介绍了我们在 [AnitaB.org][3] 上所做的一些社区工作,该活动启动了“维护者周”,这是一个为期一周的开源维护者庆祝活动。在活动中我讨论了我们策略的三个主要部分: + + * 我们如何沟通 + * 项目和议题 + * 开源项目 + +### 我们如何沟通 + +透明度是开源的重要组成部分,我们将透明度原则应用于我们的沟通方式。实际上,这意味着我们所有的社区会议都是公开进行的,并且影响我们设置 Zulip 聊天的方式以及我们提供文档的方式。 + +#### 开放会议 + +任何人都可以加入我们的会议,并讨论与我们社区相关的话题。他们可以参与讨论或者旁听。会议相关信息在我们的社区日历中都可以找到。在这些通话中我们通常只使用语音聊天,我们发现这可以让人们在参与时感觉更自在。 + +我们举办以项目为中心的会议和一些分类的会议。会议上,来自不同领域的人们可以讨论同一个项目并帮助改进我们的流程。偶尔,我们会有“自由提问Ask Me Anything(AMA)”会议,任何人都可以来问任何与开源相关的问题。 + +所有会议我们都会在共享文档中进行记录,并在 [我们的 Zulip][5] 中共享摘要和文档链接。 + +#### 我们的 Zulip 聊天 + +开源 Zulip 聊天平台是我们的主要社区交流渠道,虽然我们也在 Github 的评论区讨论议题和拉取请求Pull Request(PR)。一般来说,我们禁用了私人消息以确保我们尽可能透明。对于这条规则,我们只有少数例外,那些私人聊天是管理员在处理我们运行程序的后勤工作所用的。我们发现这种方法更受欢迎,它还使我们能够更清楚公共聊天中的违规行为。 + +我们在 Zulip 聊天室分享所有会议摘要,包括讨论的要点、行动项目和文档。这些听起来好像是些显而易见的要求,但我一直惊讶于很多开源项目并不提供会议笔记,所以 Zulip 可以让那些没有参加会议的人也随时了解情况。 + +在 Zulip上,我们讨论项目路线图,回答社区的问题和疑问,并积极**促进人们通过不同的方式方法和在不同的场景下做出自己的贡献**。有时我们为贡献者的成就而庆祝 —— 无论是为了突出他们测试或者审查的第一个拉取请求,还是强调我们志愿者所做的出色工作。 + +#### 文档 + +我们尽量保持**关于我们流程的开放文档**,例如常见问题解答,以便这些社区成员可以按照自己的节奏和时间了解社区。这是为了让他们在联系我们之前了解我们的工作方式以及我们从事的工作类型。 + +### 项目和议题 + +关于我们的项目和议题管理,我们鼓励通过多种方式做出贡献,我们为新手专门创建特定的议题,并尝试让项目的设置变得简单。 + +#### 多种贡献的方式 + +我们努力创建**需要不同贡献的问题**,例如文档、测试、设计和外展。这是为了让任何人 —— 无关他们的经验水平和兴趣领域 —— 都能做出贡献。这样能够帮助社区参与进来,而且我们发现它使成员能够从一些省力但有价值的任务开始一步步做出贡献。 + +我们提倡的贡献类型有: + + * 不同复杂性的编程任务。 + * 质量保证任务 —— 贡献者可以测试我们的应用程序或拉取请求并报告错误。 + * 社区成员可以参与讨论的设计会议。此外,创建模型和重新设计我们应用程序某些部分的机会,并探索改进用户体验。 + * 外展任务,我们主要在 Zulip 上推广,我们建议在我们的 Medium 出版物上发表博客,介绍他们的开源经验和他们的贡献。 + * 文档任务,可以包括一般社区文档或我们在 Docusaurus 上的项目文档。 + +#### 仅限新手的问题 + +我们将一些**议题标记为“仅限新手”**。这些问题适用于尚未为议题存储库做出贡献的人。为议题做标签还使我们能够让人们在贡献者大量涌入时开始他们的开源之旅,例如,在 [谷歌编程之夏(GSoC)][6] 申请期间。 + +有时,这些可能是“唾手可得的果实”,可以让他们熟悉作出贡献和提交拉取请求的过程。 + +#### 简单的项目设置 + +我们也很在意为我们的项目提供**新手友好的安装设置**。我们注意到最活跃的项目通常是最容易设置的。我们知道,为你不熟悉的项目做出贡献可能需要付出很多努力并且关乎贡献体验的成败。 + +我们尝试提供有关如何在多个操作系统上运行我们项目的说明。在过去,我们有一些项目有单独的说明,可以在 Unix 环境下运行,我们注意到贡献者在 Windows 上运行这些项目有些困难。自那以后我们不断进行改进,以避免贡献者在 Zulip 上寻求帮助时出现混乱。 + +我们根据贡献者的经验,一直在改进我们最活跃的项目之一 [mentorship-backend][7] 的自述文件。新手在这个项目中遇到的困难之一是设置与配置电子邮件帐户相关的部分环境变量,以使后台功能能够发送电子邮件。但是,由于此功能对于本地开发并不重要,因此默认情况下,我们将电子邮件设置设为可选,以便将电子邮件打印到终端,而不是发送给用户。这种方法仍然使贡献者可以看到这些电子邮件。与此更改类似,我们将 [SQLite 数据库][8] 作为本地开发的默认设置,以避免对 Postgres 数据库进行额外设置,虽然我们在部署版本中会使用到 Postgres。 + +我们注意到,一些贡献者在为我们的 [bridge-in-tech-backend][9] 项目做出贡献时觉得很困难,该项目的设置很复杂,并且包含的步骤比 [mentorship-backend][7] 多得多。自从我们在一个开源项目中注意到这一点以来,我们一直在探索如何改进其结构。 + +对于我们的大多数项目,我们还提供应用程序的实时体验版本或打包版本,以便贡献者无需设置即可测试项目。这有助于我们为那些对开发设置不感兴趣或不熟悉的贡献者提供一种方式,来尝试我们应用程序的最新版本,并通过报告发现的任何错误来做出贡献。我们在 [质量保证指南][10] 中放了这些应用程序的链接。 + +### 开源计划 + +我们在社区中组织了两个主要计划:开源黑客(OSH)(一个为期一个月的项目)和 Open Source Ambassadors(一个为期六个月的项目)。 + +#### 开源黑客(OSH) + +在此计划中,我们在多个类别的贡献中创建议题 —— 文档、编码、外展、测试和设计(类似于 [谷歌的 Code-in][11] 竞赛)。 参与者可以为每个类别至少贡献一次并获得电子证书。一个议题可能包含多个类别,并且无需合并拉取请求也能使贡献有效。 + +我们为这个计划选取几个项目,请导师们集思广益为参与者创造议题。项目开始后参与者可以认领议题并开始作出贡献。导师们会支持帮助并审查他们的贡献。 + +这种方法鼓励贡献的多样性,并欢迎任何人,无论他们的编码能力如何,都可以在友好和不怕出错的环境中做出贡献。 + +#### 开源大使 + +在此计划中,我们从社区中选择大使,理想情况下他们将涵盖我们旨在促进的每一类贡献。至今该计划已启动了两次。 + +该计划旨在让成员通过回答社区的议题、协助贡献者参与并为他们指定的类别宣传来帮助管理项目和计划。 + +第一个计划举行时我们接受了所有的申请者。我们评估了社区成员的兴趣所在,并为那些想要做出贡献但最初不敢踏出第一步的人提供了一个体系。 + +第一个计划的举办给了我们很多启发。因为我们的活动中既有经验丰富的开源贡献者和社区成员,也有初来乍到缺乏经验的新手,因此项目的执行要求管理员进行大量的管理工作。一些社区大使信心十足准备好进一步采取新措施,而其他大使则需要更多支持。到了第二个,我们决定缩减该计划,只接受那些已经熟悉社区、可以领导倡议和项目并帮助我们培训新人的贡献者。 + +第二个计划中形成了正反馈循环。那些在第一个计划中还是新手的大使们,通过为上一个项目做出贡献并且从项目经验中学习之后能够做到轻松带领项目。 + +这种方法的改变使管理员能够更加专注于支持大使团队,帮助他们传播我们的使命,并继续让我们的社区对新手友好,并指导更多人做出贡献。 + +### 总结 + +这些计划帮助我们提高了对开源贡献和回馈的不同方式的认识。通过它们,我们发现志愿者通过管理项目和举办公开会议来提供帮助,这有助于管理社区并为我们的贡献者提供指导。 + +尽管我们得到了贡献者的良好反响,并帮助人们做出了他们的第一个贡献,但我们仍有很大的改进空间。我们将继续改进我们项目的设置和贡献指南,以改善贡献者的体验。我们还将继续专注于确保我们的组织始终拥有并推动不同类别的问题,促进包容性,以便任何有意愿做出贡献的人都能出自己的一份力。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/8/beginner-open-source-community + +作者:[Isabel Costa][a] +选题:[lujun9972][b] +译者:[XiaotingHuang22](https://github.com/XiaotingHuang22) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/isabelcmdcosta +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) +[2]: https://github.com/anitab-org +[3]: https://anitab.org/ +[4]: https://youtu.be/l8r50jCr-Yo +[5]: https://anitab-org.zulipchat.com/ +[6]: https://summerofcode.withgoogle.com/ +[7]: https://github.com/anitab-org/mentorship-backend#readme +[8]: https://opensource.com/article/21/2/sqlite3-cheat-sheet +[9]: https://github.com/anitab-org/bridge-in-tech-backend +[10]: https://github.com/anitab-org/documentation/blob/master/quality-assurance.md +[11]: https://codein.withgoogle.com/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/12/222832vxfof8844fo4vsl4.jpg \ No newline at end of file diff --git a/translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md b/translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md deleted file mode 100644 index a36eac376d..0000000000 --- a/translated/tech/20210820 3 steps for managing a beginner-friendly open source community.md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: subject: "3 steps for managing a beginner-friendly open source community" -[#]: via: "https://opensource.com/article/21/8/beginner-open-source-community" -[#]: author: "Isabel Costa https://opensource.com/users/isabelcmdcosta" -[#]: collector: "lujun9972" -[#]: translator: "XiaotingHuang22" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - - -3个步骤管理对新手友好的开源社区 - ====== - - 作为开源项目的成员,您可以做很多事情来帮助新手找到为项目作出贡献的方式。 - ![在家使用笔记本电脑工作][1] - - 当有人刚开始为开源做贡献时,最好从对新手友好的故障和问题开始。但在他们修复故障之前,他们必须要能够找到这类问题。作为开源项目的成员,您可以做很多事情来帮助新手找到为项目贡献的方式。 - - 牢记这一点,[AnitaB.org 开源社区][2] 优先考虑让我们的社区做到对新手友好。 我们提倡包容性,确保不同经验和水平的贡献者都可以参与进来,并且他们的贡献不止限于跟编程有关。 - - 我最近在 [Upstream 2021][4] 上介绍了我们在 [AnitaB.org][3] 上所做的一些社区工作,Tidelift举办的活动启动了维护者周,这是一个为期一周的开源维护者庆祝活动。在活动中我讨论了我们战略的三个主要部分: - - * 我们如何沟通 - * 项目和问题 - * 开源项目 - - - ### 我们如何沟通 - - - 透明度是开源的重要组成部分,我们将透明度原则应用于我们的沟通方式。实际上,这意味着我们所有的社区会议都是公开进行的,并且影响我们设置Zulip聊天的方式以及我们提供文档的方式。 - - #### **开放会议** - - 任何人都可以加入我们的会议并讨论与我们社区相关的话题。他们可以参与讨论或者旁听。会议相关信息在我们的社区日历中都可以找到。在这些通话中我们通常只使用语音聊天,我们发现这可以让人们在参与时感觉更自在。 - - 我们举办以项目为中心的会议和一些与类别相关的会议。会议上,来自不同领域的人们可以讨论同一个项目并帮助改进我们的流程。偶尔,我们会有“自由提问(Ask Me Anything)”会议,任何人都可以来问任何与开源相关的问题。 - - 所有会议我们都会在共享文档中进行记录,并在 [我们的Zulip(our Zulip)][5] 中共享摘要和文档链接。 - - #### *我们的Zulip聊天** - - 开源 Zulip 聊天平台是我们的主要社区交流渠道,虽然我们也在Github的评论区讨论问题和拉取请求(pull request)。一般来说,我们已禁用私人消息以确保我们尽可能透明。对于这条规则,我们只有少数例外,那些私人聊天是管理员在处理我们运行程序的后勤工作所用的。 我们发现这种方法更受欢迎,它还使我们能够更清楚公共聊天中的违规行为。 - - 我们在 Zulip 聊天室分享所有会议摘要,包括讨论的要点、行动项目和文档。这些听起来好像是些显而易见的要求,但我一直惊讶于很多开源项目并不提供笔记,所以 Zulip可以让那些没有参加会议的人也随时了解情况。 - - 在 Zulip上,我们讨论项目路线图,回答社区的问题和查询,并积极**促进人们通过不同的方式方法和在不同的场景下做出自己的贡献。 **有时我们为贡献者的成就而庆祝——无论是突出他们测试或者审查的第一个拉取请求,还是强调我们志愿者所做的出色工作。 - - #### **文档** - - 我们尽量保持**关于我们流程的开放文档**,例如常见问题解答,以便这些社区成员可以按照自己的节奏和时间了解社区。这是为了让他们在联系我们之前了解我们的工作方式以及我们从事的工作类型。 - - - ### 项目和问题 - - 关于我们的项目和问题管理,我们鼓励通过多种方式做出贡献,我们为新手专门创建特定的问题,并尝试让项目的设置变得简单。 - - #### **多种贡献的方式** - - 我们努力创建**需要不同贡献的问题**,例如文档、测试、设计和外展。这是为了让任何人,无关他们的经验水平和兴趣领域,都能做出贡献。这样能够帮助社区参与进来,而且我们发现它使成员能够从一些省力但有价值的任务开始一步步做出贡献。 - - 我们提倡的贡献类型有: - - * 不同复杂性的编程任务。 - * 质量保证任务——贡献者可以测试我们的应用程序或拉取请求并报告错误。 - * 社区成员可以参与讨论的设计会议。此外,创建模型和重新设计我们应用程序某些部分的机会,并探索改进用户体验。 - * 外展任务,我们主要在 Zulip 上推广,我们建议在我们的 Medium 出版物上发表博客,介绍他们的开源经验和他们的贡献。 - * 文档任务,可以包括一般社区文档或我们在 Docusaurus 上的项目文档。 - - - #### **仅限新手的问题** - -我们将一些**问题标记为“仅限新手”。**这些问题适用于尚未为问题存储库做出贡献的人。为问题做标签还使我们能够让人们在贡献者涌入期间开始他们的开源之旅,例如,在 [Google夏日程式碼大賽(GSoC)][6] 申请期间。 - - 有时,这些可能是“唾手可得的果实”,让他们可以熟悉作出贡献和提交拉取请求的过程。 - - - #### **简单的项目设置** - - 我们也很在意为我们的项目提供**新手友好的安装设置**。我们注意到最活跃的项目通常是最容易设置的。我们知道,为您不熟悉的项目做出贡献可能需要付出很多努力并且关乎贡献体验的成败。 - - 我们尝试提供有关如何在多个操作系统上运行我们项目的说明。过去我们有一些项目在 Unix 环境中运行有单独的指令,我们注意到贡献者在 Windows 上运行这些项目有困难。自那以后我们不断进行改进,以避免让在 Zulip 上寻求帮助的贡献者产生混淆。 - - 根据贡献者的经验,我们一直在改进我们最活跃的项目之一 [mentorship-backend][7] 的自述文件。新手在这个项目中遇到的其中一个困难是设置与配置电子邮件帐户相关的部分环境变量,以使后端功能能够发送电子邮件。 但是,由于此功能对于本地开发并不重要,因此默认情况下,我们将电子邮件设置设为可选,以便将电子邮件打印到终端,而不是发送给用户。 这种方法仍然使电子邮件对贡献者可见。 与此更改类似,我们将 [SQLite 数据库][8] 作为本地开发的默认设置,以避免对 Postgres 数据库进行额外设置,虽然我们在部署版本中会使用到Postgres。 - -我们注意到,一些贡献者在为我们的 [bridge-in-tech-backend][9]项目做出贡献时觉得很困难,该项目的设置很复杂,并且包含的步骤比 [mentorship-backend][7] 多得多。 自从我们在一个开源项目中注意到这一点以来,我们一直在探索如何改进其结构。 - -对于我们的大多数项目,我们还提供应用程序的实时或内部版本,以便贡献者无需设置即可测试项目。这有助于我们为不感兴趣或不熟悉开发设置的贡献者提供一种方式来尝试我们应用程序的最新版本,并通过报告发现的任何错误来做出贡献。我们在 [质量保证指南][10] 中放了这些应用程序的链接。 - -### 开源项目 - -我们在社区中组织了两个主要项目:Open Source Hack(一个为期一个月的项目)和 Open Source Ambassadors(一个为期六个月的项目)。 - -#### **开源黑客 (OSH)** - -在此计划中,我们在多个类别的贡献中创建问题——文档、编码、外展、测试和设计(类似于 [Google Code-in][11] 竞赛)。 参与者可以为每个类别至少贡献一次并获得数字证书。 一个问题可能包含多个类别,并且无需合并拉取请求也能使贡献有效。 - -我们为这个计划选取几个项目,请导师们集思广益为参与者创造问题。项目开始后参与者可以认领问题并开始作出贡献。导师会支持帮助并审查他们的贡献。 - -这种方法鼓励贡献的多样性,并欢迎任何人,无论他们的编码能力如何都可以在友好和不怕出错的环境中做出贡献。 - - -#### **开源大使** - -在此计划中,我们从社区中选择大使,理想情况下他们将涵盖我们旨在促进的每一类贡献。至今该计划已启动了两次。 - -该计划旨在让成员通过回答社区的问题、协助贡献者参与并为他们指定的类别宣传来帮助管理项目和计划。 - -第一届计划举行时我们接受了所有的申请者。我们评估了社区成员的兴趣所在,并为那些想要做出贡献但最初不敢踏出第一步的人提供了一个体系。 - -第一届计划的举办给了我们很多启发。因为我们的活动中既有经验丰富的开源贡献者和社区成员,也有初来乍到缺乏经验的新手,因此项目的执行要求管理员进行大量的管理工作。一些社区大使信心十足准备好进一步采取新措施,而其他大使则需要更多支持。到了第二届,我们决定缩减该计划,只接受那些已经熟悉社区、可以领导倡议和项目并帮助我们培训新人的贡献者。 - -第二届计划中形成了正反馈循环。那些在第一届计划中还是新手的大使们,通过为上一个项目做出贡献并且从项目经验中学习之后能够做到轻松带领项目。 - -这种方法的改变使管理员能够更加专注于支持大使团队,帮助他们传播我们的使命并继续让我们的社区对新手友好,并指导更多人做出贡献。 - -### 总结 - - -这些计划帮助我们提高了对开源贡献和回馈的不同方式的认识。通过它们,我们发现志愿者通过管理项目和举办公开会议来提供帮助,这有助于管理社区并为我们的贡献者提供指导。 - -尽管我们得到了贡献者的良好反响并帮助人们做出了他们的第一个贡献,但我们仍有很大的改进空间。我们将继续改进我们项目的设置和贡献指南,以改善贡献者的体验。我们还将继续专注于确保我们的组织始终拥有并推动不同类别的问题,促进包容性,以便任何有意愿做出贡献的人都能出自己的一份力。 - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/8/beginner-open-source-community - -作者:[Isabel Costa][a] -选题:[lujun9972][b] -译者:[XiaotingHuang22](https://github.com/XiaotingHuang22) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/isabelcmdcosta -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) -[2]: https://github.com/anitab-org -[3]: https://anitab.org/ -[4]: https://youtu.be/l8r50jCr-Yo -[5]: https://anitab-org.zulipchat.com/ -[6]: https://summerofcode.withgoogle.com/ -[7]: https://github.com/anitab-org/mentorship-backend#readme -[8]: https://opensource.com/article/21/2/sqlite3-cheat-sheet -[9]: https://github.com/anitab-org/bridge-in-tech-backend -[10]: https://github.com/anitab-org/documentation/blob/master/quality-assurance.md -[11]: https://codein.withgoogle.com/ From 3ab8cbcbea3f6a84fafc3cabfb880e881685d64e Mon Sep 17 00:00:00 2001 From: ZZJ Date: Sun, 12 Feb 2023 23:52:02 +0800 Subject: [PATCH 2805/3123] translated --- ... Top 10 Linux Distributions for Servers in 2023.md | 149 ----------------- ... Top 10 Linux Distributions for Servers in 2023.md | 150 ++++++++++++++++++ 2 files changed, 150 insertions(+), 149 deletions(-) delete mode 100644 sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md create mode 100644 translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md diff --git a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md deleted file mode 100644 index 780b10e6e6..0000000000 --- a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md +++ /dev/null @@ -1,149 +0,0 @@ -[#]: subject: "Top 10 Linux Distributions for Servers in 2023" -[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" -[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" -[#]: collector: "lkxed" -[#]: translator: " Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Linux Distributions for Servers in 2023 -====== - -Linux operating system is a popular choice for servers – and for multiple reasons. First, it’s free (with exception of a few commercial distributions such as RHEL and SUSE Linux Enterprise Server ) and open-source. Its open-source nature implies that developers can view its source code, modify it and redistribute it according to the laid-out license terms. In addition, Linux is generally considered stable, versatile, and more secure than Windows. Furthermore, it can easily be deployed across various platforms such as bare-metal, virtual, and cloud environments. - -In this article, we highlight the top 10 Linux distributions for servers. - -### 1) Red Hat Enterprise Linux (RHEL) - -[Red Hat Enterprise Linux][1], abbreviated as RHEL, is a commercial Linux distribution that was developed specifically for enterprise environments. It is a performance-driven, reliable, and secure operating system that provides enhanced usability and seamless deployment which makes it ideal for server environments. - -RHEL supports a wide range of workloads in bare-metal, virtual, and cloud environments. In fact, it’s the world’s leading open-source solutions provider offering a myriad of products including Red Hat OpenShift, Ansible automation platform, Open hybrid cloud, JBoss Enterprise Application Platform, and SAP to mention a few. - -![Neofetch-Command-Output-RHEL-System][2] - -### 2) Ubuntu Server - -Developed and maintained by Canonical, Ubuntu is one of the most popular and widely used Linux distributions. It is a Debian-based Linux distribution that is absolutely free and open-source and is renowned for Its Desktop edition which is intuitive, user-friendly, and considered ideal for learners and beginners. Ubuntu comes in 3 editions namely; Desktop, Ubuntu Server, and Core. - -While the Desktop Edition enjoys massive global usage, the Server edition also offers a solid platform for server environments. First, it can be deployed in any environment, be it on a physical, virtual, or cloud environment with extensive scale-out functionality. This implies you can add resources on the go to meet evolving demands. - -And since the server version is completely stripped down without any GUI, it’s relatively lightweight leading to low resource overhead. This means low CPU and memory usage. This consequently leads to improved performance and enterprise-grade stability. - -Apart from installing it on physical data centers and virtual servers, Ubuntu server is available in public clouds such as AWS and Azure. According to Canonical, 55% of OpenStack clouds run on Ubuntu.  In addition, you can have your own managed Openstack cloud for a fee. - -![][3] - -### 3) Debian - -Debian is one of the earliest Linux distributions that is renowned for its rock-solid stability. It comes in three variants: Stable, Unstable, and Testing. - -The Debian stable branch is the latest officially released distribution of Debian and is the most popular version for servers and desktop PCs. All packages shipped with this branch have undergone rigorous testing and debugging, and are hence considered ready for production workloads. - -Debian server is tailored to be a fast and reliable operating system with an emphasis on security and stability. It’s for this reason that it makes for a perfect choice for server environments. In addition, It provides extensive hardware support with over 59,000 software packages, by far the greatest number of packages provided by any OS. - -Just like Ubuntu Server, Debian is lightweight, versatile, and highly stable for enterprise workloads. In fact, it is considered more stable and easier to manage than Ubuntu. - -![][4] - -##### 4) SUSE Linux Enterprise Server - -Another formidable and worthy contender in providing an excellent platform for servers is SUSE Linux Enterprise Server ( SLES ). The server operating system is created and maintained by SUSE, a German-based organization. - -SLES is a commercial distribution that was built to handle enterprise-grade workloads. It is adaptable to any environment and is optimized for stability, reliability, and security. It is highly scalable and allows IT teams to efficiently deploy their applications and services in response to growing business demands. - -The latest SLES release provides interoperability with ease of administration. It also provides increased support and compatibility with Docker containers, Kubernetes, and geo-clusters. The latter provides flexibility with high availability allowing IT teams to configure replication clusters that span multiple data center regions. - -SUSE Linux Enterprise Server not only supports in-house workloads but is also offered on popular cloud providers including Microsoft Azure, Google Compute Engine, and Amazon Web Services. - - -##### 5) OpenSUSE Leap - -Developed by the OpenSUSE project, OpenSUSEis a non-commercial RPM-based Linux distribution that is developed and maintained by SUSE. OpenSUSE is free and open-source and provides two editions: - -- OpenSUSE Leap -- OpenSUSE Tumbleweed - -OpenSUSE TumbleWeed is the rolling release version of OpenSUSE. It contains the latest stable applications including an updated kernel, git, SAMBA, desktop applications, and many more. It, therefore, makes a perfect distribution of choice for developers or power users who need to leverage the latest software stacks in their workloads. However, due to frequent kernel updates, it’s not the ideal choice for servers since frequent updates can cause inconsistencies with other third-party driver modules. - -OpenSUSE Leap is the preferred OpenSUSE option for servers. It’s an open-source and community-driven distribution that has a slower release cycle and, hence, a better fit than TumbleWeed. It is community-driven and this means that it undergoes rigorous testing before being released. - -Leap is comparatively easy to use and offers high performance and stability ideal for handling enterprise-grade workloads. It is a great alternative to commercial server distributions such as SLES and RHEL and allows companies to deploy their workloads both on bare metal and cloud deployments. - -![][6] - -### 6) Rocky Linux - -Rocky Linux is a Linux distribution that was developed as a replacement for CentOS Linux which reached EOL ( End Of Life ) on 31st,  December 2021. It is a free and opensource Linux distribution that is enterprise-ready, providing rock-solid stability, reliability, and regular updates with a 10-year support lifecycle at absolutely no cost - -Rocky Linux is an enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux and is currently under intensive development by the community. - -The distribution has gained massive popularity since the untimely discontinuation of CentOS Linux. It can be installed on both servers, and desktop computers. It’s also available in custom-built images on Public cloud providers such as Amazon AWS, and Google Compute Engine. - -Rocky Linux developers have availed a migration script that allows users to migrate from other enterprise editions such as CentOS Linux and Oracle Linux to Rocky Linux. - -![][7] - -### 7) AlmaLinux - -Another alternative that was developed to plug in the gap left by CentOS Linux is AlmaLinux. This is yet another enterprise operating system that is completely free and opensource. - -AlmaLinux was originally created by CloudLinux but is currently community driven. It offers a production-grade enterprise operating system that is 1:1 binary compatible with Red Hat Enterprise Linux (RHEL). In a nutshell, it’s a clone of RHEL and provides rock-solid stability and benefits that come with RHEL at no cost. - -Being an Enterprise-grade server OS, AlmaLinux can comfortably run heavy and critical workloads. In addition, it provides regular releases that come with long-term support. - -![][8] - -### 8) Oracle Linux - -Developed by Oracle Corporation, Oracle Linux is a secure and high-performance operating system that is compiled from RHEL source code. It is optimized for hybrid and multi-cloud deployments, and just like Rocky and AlmaLinux, Oracle Linux is 100% binary compatible with Red Hat Linux. - -Oracle Linux is a viable option for data centers and certainly a perfect replacement for CentOS which reached EOL. It is rock-solid stable and posts incredible performance ideal for enterprise applications. - -Unlike Commercial Linux distributions such as RHEL and SUSE, Oracle Linux is completely free to download, use and redistribute. It is available under the GNU General Public License (GPLv2). - -### 9) Fedora Server - -Fedora is a free and open-source Linux distribution that is developed and maintained by Fedora Project which is sponsored by Red Hat. - -Fedora serves as the upstream, community distribution of Red Hat Enterprise Linux. All the applications go through rigorous testing before they are pushed to RHEL. As such, it is referred to as a ‘Bleeding Edge’ operating system. This implies is regularly gets the latest software applications and updates. - -For a long time, Fedora has been popular for its Workstation Edition which was built for laptop and desktop computers. Over time, it has expanded to include other editions such as Fedora Server, Fedora IoT, and Fedora CoreOS. - -Fedora Server is a robust, reliable, and flexible operating system that ships with the best and latest data center technologies. As a leading-edge edition, it offers the very latest technologies in the open-source community. It is easy to install, set up, and administer using various tools such as Cockpit web console. - -Fedora is also fast, remarkably stable, and secure. It works just fine for production and enterprise workloads.  New releases of Fedora are pushed out once every 6 months. - -![][10] - -### 10) Fedora CoreOS - -Last on our list is Fedora CoreOS. This is a minimal operating system that is optimized specifically for running containerized applications and workloads. According to its home page, it touts itself as  “an automatically-updating, minimal operating system for running containerized workloads securely and at scale.” - -By default, it ships with both podman and docker and comes in three release streams namely:  Stable, Testing, and Next. You can get images for bare-metal servers and virtualized environments as well as cloud images that are hosted by major cloud providers such as Amazon Web Service (AWS) and Google Cloud Platform (GCP). - -##### Conclusion - -That was a round-up of the best Linux distributions for servers. We hope you found this guide insightful. Any thoughts on our guide? Your feedback is very much welcome. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ - -作者:[Pradeep Kumar][a] -选题:[lkxed][b] -译者:[zepoch](https://github.com/zepoch) -校对:[校对者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.redhat.com/en -[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png -[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png -[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png -[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg -[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png -[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg -[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png diff --git a/translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md new file mode 100644 index 0000000000..47b932debd --- /dev/null +++ b/translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -0,0 +1,150 @@ +[#]: subject: "Top 10 Linux Distributions for Servers in 2023" +[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " Veryzzj" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Linux Distributions for Servers in 2023 +2023年十佳 Linux 服务器发行版 + +====== + +由于具备多种优势,Linux 操作系统是各类服务器中的热门选择。首先,它是免费(少数商业发行版除外,如 RHEL 和 SUSE Linux Enterprise Server)和开源的。它的开源性意味着开发者可以查看其源代码并进行修改,而且可以根据规定的许可条款重新发布。其次, Linux 被认为是稳定、通用的,且比 Windows 更为安全。最后,Linux 可以轻松地部署在各类平台,如裸机、虚拟机和云环境。 + +在这篇文章中,我们重点介绍了十佳 Linux 服务器发行版。 + +### 1) Red Hat Enterprise Linux (RHEL) + +[Red Hat Enterprise Linux][1], 缩写为 RHEL,是专门为企业环境开发的商业 Linux 发行版。它是一个性能驱动、可靠安全的操作系统,提供了增强的实用性和无缝部署,使其成为服务器环境的理想选择。 + +RHEL 支持裸机、虚拟机和云环境中的各种工作负载。实际上,它是世界领先的开源解决方案供应商,提供了众多产品,包括 Red Hat OpenShift、Ansible 自动化平台、Open 混合云、JBoss 企业应用平台和 SAP 等等。 + +![Neofetch-Command-Output-RHEL-System][2] + +### 2) Ubuntu Server + +由 Canonical 开发和维护的 Ubuntu 是最流行和广泛使用的 Linux 发行版之一。Ubuntu 是一个基于 Debian 的 Linux 发行版,完全免费和开源,以其桌面版而闻名,该版本直观、用户友好,被认为是学者和初学者的理想选择。Ubuntu 有3个版本,即:桌面版、Ubuntu 服务器版和核心版。 + +虽然桌面版享有全球范围的大量使用,但服务器版也为服务器环境提供了一个坚实的平台。首先,它可以部署在任何环境中,无论是在物理机、虚拟机还是云环境中,都具备广泛的扩展功能。这意味着可以随时增加资源用来满足不断变化的需求。 + +由于服务器版本非常精简,没有任何图形用户界面,因此相对轻量,资源开销低。这意味着 CPU 和内存的使用也会较低。因此,性能得到提高并具备企业级的稳定性。 + +除了在物理数据中心和虚拟服务器上安装外,Ubuntu 服务器还可以在 AWS 和 Azure 等公共云中使用。据 Canonical 称,55%的 OpenStack 云运行在 Ubuntu 上。 此外,你可以付费获得自己管理的 Openstack 云。 + +![][3] + +### 3) Debian + +Debian 是最早的Linux发行版之一,以其稳定性而闻名。它有三个版本:稳定版、不稳定版和测试版。 + +Debian 稳定版是官方发布的最新 Debian 发行版,是服务器和台式机最受欢迎的版本。这个分支的所有软件包都经过了严格的测试和调试,因此被认为是可以运行生产工作负载的。 + +Debian 服务器是一个快速可靠的操作系统,强调安全性和稳定性。正是由于这个原因,它成为服务器环境的一个完美选择。此外,它提供了广泛的硬件支持,有超过59,000个软件包,是所有操作系统中软件包数量最多的。 + +就像 Ubuntu 服务器一样,Debian 轻量,功能多,非常适合企业工作负载。实际上,它比 Ubuntu 更稳定,更易于管理。 + +![][4] + +##### 4) SUSE Linux Enterprise Server + +在提供优秀服务器平台方面,另一位具有竞争力的对手是SUSE Linux Enterprise Server(SLES)。该服务器操作系统是由位于德国的 SUSE 公司创建和维护的。 + +SLES 是一个为处理企业级工作负载而建立的商业发行版。它可以适应任何环境,并针对稳定性、可靠性和安全性进行了优化。它的高可扩展性,使IT团队能够有效地部署他们的应用程序和服务,以应对不断增长的业务需求。 + +最新的 SLES 版本提供了易于管理的互操作。它还针对 Docker 容器、Kubernetes和 geo 集群提供了更多的支持和兼容。后者提供了高可用的灵活性,使IT团队能够配置跨越多个数据中心区域的复制集群。 + +SUSE Linux Enterprise Server 不仅支持内部工作负载,而且支持云服务,包括微软Azure、谷歌计算引擎和亚马逊 Web 服务。 + +##### 5) OpenSUSE Leap + +由 OpenSUSE project开发,OpenSUSE是一个基于 RPM 的非商业 Linux 发行版,由 SUSE 公司开发和维护。同样是免费和开源的,OpenSUSE提供了两个版本: + +- OpenSUSE Leap +- OpenSUSE Tumbleweed + +OpenSUSE TumbleWeed 是 OpenSUSE 的滚动发行版本。它包含最新的稳定应用程序,包括内核、git、SAMBA、桌面应用程序等等。因此,它是开发人员或高级用户的完美选择,他们需要利用最新的软件堆栈进行工作负载。然而,由于频繁的内核更新,导致与其他第三方驱动模块的不一致,它并不是服务器的理想选择。 + +OpenSUSE Leap 是服务器的首选 OpenSUSE 选项。它是一个开源和社区驱动的发行版,发布周期较慢,因此,比 TumbleWeed 更适合。社区驱动,这意味着它在发布之前要经过严格的测试。 + +Leap 相对来说更容易使用,并提供高性能和稳定性,是处理企业级工作负载的理想选择。它是商业服务器发行版(如 SLES 和 RHEL)的优秀替代方案,并允许企业在裸机和云部署上部署他们的工作负载。 + +![][6] + +### 6) Rocky Linux + +Rocky Linux 是一个作为 CentOS Linux 的替代品而开发的 Linux 发行版,后者在2021年12月31日达到了EOL(寿命终止)。它是一个免费开源的Linux发行版,具备稳定性、可靠性且定期更新,并在10年的支持生命周期内完全免费。 + +Rocky Linux是一个企业级操作系统,旨在与 Red Hat Enterprise Linux 100%兼容,目前正在由社区大力开发。 + +由于 CentOS Linux 突然停产,导致该发行版获得较高人气。它可以服务器和台式电脑上进行安全,也可以在公有云供应商(如亚马逊 AWS 和谷歌计算引擎)上定制镜像。 + +Rocky Linux 开发者提供了一个迁移脚本,允许用户从其他企业版(如 CentOS Linux 和 Oracle Linux)迁移到 Rocky Linux。 + +![][7] + +### 7) AlmaLinux + +另一个为填补 CentOS Linux 留下的空白的选项是 AlmaLinux。同样一个完全免费和开源的企业操作系统。 + +AlmaLinux 最初是由 CloudLinux 创建的,但目前是由社区驱动的。它提供了一个生产级的企业操作系统,与 Red Hat Enterprise Linux(RHEL)1:1二进制兼容。简而言之,它是 RHEL 的克隆,简而言之,它是 RHEL 的克隆,在完全免费的情况下提供坚实的稳定性和 RHEL 的优势。 + +作为一个企业级的服务器操作系统,AlmaLinux 可以轻松运行关键工作负载。此外,它提供长期支持的定期发布。 + +![][8] + +### 8) Oracle Linux + +由甲骨文公司开发的 Oracle Linux 是一个安全和高性能的操作系统,由 RHEL 源代码编译而成。他针对混合部署和多云部署进行了优化,与 Rocky 和 AlmaLinux 一样,Oracle Linux 与 Red Hat Linux 是100%二进制兼容。 + +对于数据中心,Oracle Linux是一个可行的选项,当然也可以作为 EOL 的 CentOS 的完美替代品。由于它的稳定性和性能,是企业应用的理想选择。 + +与 RHEL 和 SUSE 等商业 Linux 发行版不同,Oracle Linux 可以完全免费下载、使用和重新发布。它在 GNU 通用公共许可证(GPLv2)下是可用的。 + +### 9) Fedora Server + +Fedora 是 Fedora 项目开发和维护的免费开源的 Linux 发行版,该项目由 Red Hat 赞助。 + +Fedora 作为 Red Hat Enterprise Linux的上游社区发行版。所有的应用程序在推送到 RHEL 之前都要经过严格的测试。因此,它被称为“最前沿”的操作系统,这意味着它定期获得最新的软件应用程序和更新。 + +长久以来,Fedora 以其工作站版本而受欢迎,该版本是为笔记本电脑和台式电脑打造的。随着时间的推移,它已经扩展到包括其他版本,如 Fedora Server、Fedora IoT 和 Fedora CoreOS。 + +Fedora 服务器是一个强大、可靠、灵活的操作系统,拥有最好和最新的数据中心技术。作为一个领先的版本,它提供了开源社区的最新技术,并且易于安装、设置和使用各种工具进行管理,如 Cockpit 网络控制台。 + +Fedora 也十分快速稳定,而且相当安全,非常适合生产和企业工作负载,其新版本每6个月推送一次。 + +![][10] + +### 10) Fedora CoreOS + +最后一个是 Fedora CoreOS。这是一个专门为运行容器化应用程序和工作负载优化的最小操作系统。根据其主页,它自称是 "一个自动更新的最小操作系统,用于安全且大规模地运行容器化工作负载"。 + +通常情况下,它与 podman 和 docker 一起发行,并有三个版本,即稳定版、测试版和下一版。 你可以获得用于裸机服务器和虚拟化环境的镜像,以及由亚马逊网络服务(AWS)和谷歌云平台(GCP)等主要云提供商托管的云镜像。 + +##### 结论 + +这是关于 Linux 服务器发行版最好的总结。希望你看完这个指南后能有所收获。对我们的指南有什么想法吗?非常欢迎你的反馈。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ + +作者:[Pradeep Kumar][a] +选题:[lkxed][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed +[1]: https://www.redhat.com/en +[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg +[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png From 66d57672864983c8053516dbe8394b7e2df799c5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 13 Feb 2023 08:46:40 +0800 Subject: [PATCH 2806/3123] =?UTF-8?q?=E2=80=9Ctranslated=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Open source video captioning on Linux.md | 91 ------------------- ...️ Open source video captioning on Linux.md | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 91 deletions(-) delete mode 100644 sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md create mode 100644 translated/tech/20230204.0 ⭐️ Open source video captioning on Linux.md diff --git a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md deleted file mode 100644 index d049c09034..0000000000 --- a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md +++ /dev/null @@ -1,91 +0,0 @@ -[#]: subject: "Open source video captioning on Linux" -[#]: via: "https://opensource.com/article/23/2/live-captions-linux" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Open source video captioning on Linux -====== - -In a perfect world, all videos would have transcripts, and live videos would have captioning. It's not just a requirement for people without hearing to be able to participate in pop culture and video chats, it's a luxury for people with hearing who just prefer to read what's been said. Not all software has captioning built-in though, and some that does relies on third-party cloud services to function. [Live Captions][1] is an application for the Linux desktop that provides instant, local, and open source captioning for video. - -### Install Live Captions - -You can install Live Captions as a [Flatpak][2]. - -If your Linux distribution doesn't ship with a software center, install it manually from a terminal. First, add the [Flathub][3] repository: - -``` -$ flatpak remote-add --if-not-exists flathub \ -https://flathub.org/repo/flathub.flatpakrepo -``` - -Next, install the application: - -``` -$ flatpak install flathub net.sapples.LiveCaptions -``` - -### Launch Live Captions - -To start Live Captions, launch it from your application menu. - -Alternatively, you can start it from a terminal using the `flatpak` command: - -``` -$ flatpak run net.sapples.LiveCaptions -``` - -You can also use a command like [Fuzzpak][4]: - -``` -$ fuzzpak LiveCaptions -``` - -When Live Captions first starts, you're presented with a configuration screen. - -![Image showing preferences in Live Captions.][5] - -You can set the font, font size, colors, and more. By default, text that Live Captions isn't 100% confident about is presented in a darker color than your chosen font color. If you're using Live Captions as a convenience, this probably isn't necessary, but if you can't hear the video, then it's good to get an idea of words that may not be correct. - -You can return to the preferences screen anytime, so your choices don't have to be final. - -### Using Live Captions - -Once Live Captions is running, any English words coming through your system sound are printed to the Live Captions window. - -![Image showing ​Live Captions presenting text from a Jitsi call. ​][6] - -This isn't a cloud service. There are no API keys required. There's no telemetry or spying and no data collection. In fact, it doesn't even require network permissions. Live Captions is open source, so there are no proprietary services or libraries in use. - -To change the sound input, click the **Microphone** icon in the top left of the **Live Captions** window. To open the **Preferences** window, click on the **Gear** icon in the bottom left of the **Live** Captions window. - -### Open access - -In my experience, the results of Live Captions are good. They're not perfect, but in small [Jitsi video calls][7], it's excellent. Even with niche videos (rowdy tournaments of Warhammer 40,000, for instance) it does surprisingly well, stumbling over only the most fictional of sci-fi terminology. - -Making open source accessible is vital, and in the end it has the potential to benefit everyone. I don't personally require Live Captions, but I enjoy using it when I don't feel like listening to a video. I also use it when I want help to focus on something that I might otherwise be distracted away from. Live Captions isn't just a fun open source project, it's an important one. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/2/live-captions-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://github.com/abb128/LiveCaptions -[2]: https://opensource.com/article/21/11/install-flatpak-linux -[3]: https://flathub.org/apps/details/net.sapples.LiveCaptions -[4]: https://www.redhat.com/sysadmin/launch-flatpaks-terminal-fuzzpak -[5]: https://opensource.com/sites/default/files/2023-01/live-caption-preferences.png -[6]: https://opensource.com/sites/default/files/2023-01/Livecaptions%20onJitsiCall.png -[7]: https://opensource.com/article/21/9/alternatives-zoom diff --git a/translated/tech/20230204.0 ⭐️ Open source video captioning on Linux.md b/translated/tech/20230204.0 ⭐️ Open source video captioning on Linux.md new file mode 100644 index 0000000000..67ae18811e --- /dev/null +++ b/translated/tech/20230204.0 ⭐️ Open source video captioning on Linux.md @@ -0,0 +1,91 @@ +[#]: subject: "Open source video captioning on Linux" +[#]: via: "https://opensource.com/article/23/2/live-captions-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Linux 上的开源视频字幕 +====== + +在一个完美的世界里,所有的视频都会有文字说明,直播视频也会有字幕。这不仅是没有听力的人能够参与流行文化和视频聊天的要求,对于有听力的人来说,这也是一种奢侈,他们只是喜欢阅读所说的内容。但并不是所有的软件都有内置的字幕,有些软件是依靠第三方的云服务来实现的。[Live Captions][1] 是 Linux 桌面上的一个应用,为视频提供即时、本地和开源的字幕。 + +### 安装 Live Captions + +你可以通过 [Flatpak][2] 安装 Live Captions。 + +如果你的 Linux 发行版没有附带软件中心,请从终端手动安装它。首先,添加 [Flathub][3] 仓库: + +``` +$ flatpak remote-add --if-not-exists flathub \ +https://flathub.org/repo/flathub.flatpakrepo +``` + +接下来,安装应用: + +``` +$ flatpak install flathub net.sapples.LiveCaptions +``` + +### 启动 Live Captions + +要启动 Live Captions,从你的应用菜单中启动它。 + +或者,你也可以使用 `flatpak` 命令从终端启动它: + +``` +$ flatpak run net.sapples.LiveCaptions +``` + +你也可以使用类似 [Fuzzpak][4] 的命令: + +``` +$ fuzzpak LiveCaptions +``` + +当 Live Captions 首次启动时,你会看到一个配置页面: + +![Image showing preferences in Live Captions.][5] + +你可以设置字体、字体大小、颜色等。默认情况下,Live Captions 没有 100% 把握的文本会以比你选择的字体颜色更深的颜色呈现。如果你使用实时字幕是为了方便,这可能没有必要,但如果你听不到视频,那么了解一下可能不正确的文字是不错的。 + +你可以随时返回偏好页面,所以你的选择不一定是最终的。 + +### 使用 Live Captions + +当 Live Captions 开始运行,任何通过系统声音传来的英语单词都会被打印到 Live Captions 窗口中。 + +![Image showing Live Captions presenting text from a Jitsi call. ][6] + +这不是一项云服务。不需要 API 密钥。没有遥测或间谍活动,也没有数据收集。事实上,它甚至不需要网络权限。Live Captions 是开源的,所以没有使用专有服务或库。 + +要改变声音输入,请点击 **Live Captions** 窗口左上方的**麦克风**图标。要打开**偏好**窗口,请点击 **Live Captions** 窗口左下方的**齿轮**图标。 + +### 开放访问 + +根据我的经验,Live Captions 的结果是好的。它们并不完美,但在小型的 [Jitsi 视频通话][7]中,它很出色。即使是小众的视频(例如战锤 40,000 的激烈比赛),它也做得出奇地好,只在最虚构的科幻术语上磕磕碰碰。 + +让开源代码易于访问是至关重要的,最终它有可能使每个人受益。我个人不需要 Live Captions,但当我不想听视频的时候,我喜欢使用它。当我希望得到帮助以专注于我可能会分心的事情时,我也会使用它。Live Captions 不仅仅是一个有趣的开源项目,它也是一个重要的项目。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/live-captions-linux + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lkxed +[1]: https://github.com/abb128/LiveCaptions +[2]: https://opensource.com/article/21/11/install-flatpak-linux +[3]: https://flathub.org/apps/details/net.sapples.LiveCaptions +[4]: https://www.redhat.com/sysadmin/launch-flatpaks-terminal-fuzzpak +[5]: https://opensource.com/sites/default/files/2023-01/live-caption-preferences.png +[6]: https://opensource.com/sites/default/files/2023-01/Livecaptions%20onJitsiCall.png +[7]: https://opensource.com/article/21/9/alternatives-zoom From f1a1e99f6f517dcc445cd581f7d4e18ef5a0eb5d Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 13 Feb 2023 08:49:20 +0800 Subject: [PATCH 2807/3123] translating --- ....4 ⭐️ Start developing for WebAssembly with our new guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md b/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md index ecb202c6d5..6f55f5f78d 100644 --- a/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md +++ b/sources/tech/20230209.4 ⭐️ Start developing for WebAssembly with our new guide.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/2/webassembly-guide" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From a505388be851f071bf8c529c18c5d740277c7b63 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 13 Feb 2023 09:26:39 +0800 Subject: [PATCH 2808/3123] RP @Veryzzj https://linux.cn/article-15535-1.html --- ... Top 10 Linux Distributions for Servers in 2023.md | 153 ++++++++++++++++++ ... Top 10 Linux Distributions for Servers in 2023.md | 150 ----------------- 2 files changed, 153 insertions(+), 150 deletions(-) create mode 100644 published/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md delete mode 100644 translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md diff --git a/published/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/published/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md new file mode 100644 index 0000000000..5a8210b339 --- /dev/null +++ b/published/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -0,0 +1,153 @@ +[#]: subject: "Top 10 Linux Distributions for Servers in 2023" +[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: "Veryzzj" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15535-1.html" + +2023 年十佳 Linux 服务器发行版 +====== + +![][0] + +由于具备多种优势,Linux 操作系统是各类服务器中的热门选择。首先,它是免费(少数商业发行版除外,如 RHEL 和 SUSE Linux Enterprise Server)和开源的。它的开源性意味着开发者可以查看其源代码并进行修改,而且可以根据规定的许可条款重新发布。其次,通常 Linux 被认为是稳定、通用的,且比 Windows 更为安全。最后,Linux 可以轻松地部署在各类平台,如裸机、虚拟机和云环境。 + +在这篇文章中,我们重点介绍了十佳 Linux 服务器发行版。 + +### 1、红帽企业 Linux(RHEL) + +[红帽企业 Linux][1]Red Hat Enterprise Linux(RHEL),是专门为企业环境开发的商业 Linux 发行版。它是一个性能驱动、可靠安全的操作系统,提供了增强的可用性和无缝部署,使其成为服务器环境的理想选择。 + +RHEL 支持裸机、虚拟机和云环境中的各种工作负载。实际上,红帽是世界领先的开源解决方案供应商,提供了众多产品,包括 Red Hat OpenShift、Ansible 自动化平台、Open 混合云、JBoss 企业应用平台和 SAP 等等。 + +![Neofetch-Command-Output-RHEL-System][2] + +### 2、Ubuntu 服务器 + +由 Canonical 开发和维护的 Ubuntu 是最流行和广泛使用的 Linux 发行版之一。Ubuntu 是一个基于 Debian 的 Linux 发行版,完全自由开源,以其桌面版而闻名,它直观、用户友好,被认为是学者和初学者的理想选择。Ubuntu 有 3 个版本,即:桌面版Desktop服务器版Server核心版Core。 + +虽然桌面版在全球范围内得到了大量使用,但服务器版也为服务器环境提供了一个坚实的平台。首先,它可以部署在任何环境中,无论是在物理机、虚拟机还是云环境中,都具备广泛的扩展功能。这意味着可以随时增加资源用来满足不断变化的需求。 + +由于服务器版本非常精简,没有任何图形用户界面,因此相对轻量,资源开销低。这意味着 CPU 和内存的使用也会较低。因此,提高了性能,并具备企业级的稳定性。 + +除了在物理数据中心和虚拟服务器上安装外,Ubuntu 服务器还可以在 AWS 和 Azure 等公共云中使用。据 Canonical 称,55%的 OpenStack 云运行在 Ubuntu 上。 此外,你可以付费获得自己管理的 Openstack 云。 + +![][3] + +### 3、Debian + +Debian 是最早的 Linux 发行版之一,以其稳定性而闻名。它有三个版本:稳定版Stable不稳定版Unstable测试版Testing。 + +Debian 稳定版是官方发布的最新 Debian 发行版,是服务器和台式机最受欢迎的版本。这个分支的所有软件包都经过了严格的测试和调试,因此被认为是可以运行生产工作负载的。 + +Debian 服务器是一个快速可靠的操作系统,强调安全性和稳定性。正是由于这个原因,它成为服务器环境的一个完美选择。此外,它提供了广泛的硬件支持,有超过 59,000 个软件包,是迄今为止所有操作系统中软件包数量最多的。 + +就像 Ubuntu 服务器一样,Debian 轻量,功能多,非常适合企业工作负载。实际上,它比 Ubuntu 更稳定,更易于管理。 + +![][4] + +### 4、SUSE Linux 企业服务器 + +在提供优秀服务器平台方面,另一位具有竞争力的对手是 SUSE Linux 企业服务器SUSE Linux Enterprise Server(SLES)。该服务器操作系统是由位于德国的 SUSE 公司创建和维护的。 + +SLES 是一个为处理企业级工作负载而建立的商业发行版。它可以适应任何环境,并针对稳定性、可靠性和安全性进行了优化。它的高可扩展性,使 IT 团队能够有效地部署他们的应用程序和服务,以应对不断增长的业务需求。 + +最新的 SLES 版本提供了易于管理的互操作。它还针对 Docker 容器、Kubernetes 和地理集群提供了更多的支持和兼容。后者提供了高可用的灵活性,使 IT 团队能够配置跨越多个数据中心区域的复制集群。 + +SUSE Linux Enterprise Server 不仅支持内部工作负载,而且支持云服务,包括微软 Azure、谷歌计算引擎和亚马逊 Web 服务。 + +### 5、OpenSUSE Leap + +由 OpenSUSE 项目开发,OpenSUSE 是一个基于 RPM 的非商业 Linux 发行版,由 SUSE 公司开发和维护。同样是自由开源的,OpenSUSE 提供了两个版本: + +- OpenSUSE Leap +- OpenSUSE Tumbleweed + +OpenSUSE TumbleWeed 是 OpenSUSE 的滚动发行版本。它包含最新的稳定应用程序,包括内核、Git、Samba、桌面应用程序等等。因此,它是开发人员或高级用户的完美选择,他们需要利用最新的软件堆栈进行工作负载。然而,由于频繁的内核更新,导致与其他第三方驱动模块的不一致,它并不是服务器的理想选择。 + +OpenSUSE Leap 是将 OpenSUSE 用于服务器的首选。它是一个开源和社区驱动的发行版,发布周期较慢,因此,比 TumbleWeed 更适合。社区驱动,这意味着它在发布之前要经过严格的测试。 + +Leap 相对来说更容易使用,并提供高性能和稳定性,是处理企业级工作负载的理想选择。它是商业服务器发行版(如 SLES 和 RHEL)的优秀替代方案,并允许企业在裸机和云部署上部署他们的工作负载。 + +![][6] + +### 6、Rocky Linux + +Rocky Linux 是一个作为 CentOS Linux 的替代品而开发的 Linux 发行版,后者在 2021 年 12 月 31 日达到了 EOL(寿命终止)。它是一个自由而开源的 Linux 发行版,具备稳定性、可靠性且定期更新,并在 10 年的支持生命周期内完全免费。 + +Rocky Linux 是一个企业级操作系统,旨在与 RHEL 100% 兼容,目前正在由社区大力开发。 + +自从 CentOS Linux 不合时宜地突然停产后,导致该发行版获得较高人气。它可以服务器和台式电脑上安装,也提供了公有云供应商(如亚马逊 AWS 和谷歌计算引擎)上的定制镜像。 + +Rocky Linux 开发者提供了一个迁移脚本,允许用户从其他企业版(如 CentOS Linux 和 Oracle Linux)迁移到 Rocky Linux。 + +![][7] + +### 7、AlmaLinux + +另一个为填补 CentOS Linux 留下的空白的选择是 AlmaLinux。同样一个完全自由开源的企业操作系统。 + +AlmaLinux 最初是由 CloudLinux 创建的,但目前是由社区驱动的。它提供了一个生产级的企业操作系统,与 RHEL 1:1 二进制兼容。简而言之,它是 RHEL 的克隆,简而言之,它是 RHEL 的克隆,并免费提供坚实的稳定性和 RHEL 所带来的优势。 + +作为一个企业级的服务器操作系统,AlmaLinux 可以轻松运行关键工作负载。此外,它提供长期支持的定期发布。 + +![][8] + +### 8、Oracle Linux + +由甲骨文公司开发的 Oracle Linux 是一个安全和高性能的操作系统,由 RHEL 源代码编译而成。它针对混合部署和多云部署进行了优化,与 Rocky 和 AlmaLinux 一样,Oracle Linux 与 RHEL 是 100% 二进制兼容。 + +对于数据中心,Oracle Linux 是一个可行的选项,当然也可以作为 EOL 的 CentOS 的完美替代品。由于它的稳定性和性能,是企业应用的理想选择。 + +与 RHEL 和 SUSE 等商业 Linux 发行版不同,Oracle Linux 可以完全免费下载、使用和重新发布。它在 GNU 通用公共许可证(GPLv2)下是可用的。 + +### 9、Fedora 服务器 + +Fedora 是 Fedora 项目开发和维护的自由开源的 Linux 发行版,该项目由红帽赞助。 + +Fedora 作为 RHEL 的上游社区发行版。所有的应用程序在推送到 RHEL 之前都要经过严格的测试。因此,它被称为“最前沿”的操作系统,这意味着它定期获得最新的软件应用程序和更新。 + +长久以来,Fedora 以其工作站版本而受欢迎,该版本是为笔记本电脑和台式电脑打造的。随着时间的推移,它已经扩展到包括其他版本,如 Fedora 服务器、Fedora IoT 和 Fedora CoreOS。 + +Fedora 服务器是一个强大、可靠、灵活的操作系统,拥有最好和最新的数据中心技术。作为一个领先的版本,它提供了开源社区的最新技术,并且易于安装、设置和使用各种工具进行管理,如 Cockpit 网络控制台。 + +Fedora 也十分快速稳定,而且相当安全,非常适合生产和企业工作负载,其新版本每 6 个月推送一次。 + +![][10] + +### 10、Fedora CoreOS + +最后一个是 Fedora CoreOS。这是一个专门为运行容器化应用程序和工作负载优化的最小操作系统。根据其主页,它自称是 “一个自动更新的最小操作系统,用于安全且大规模地运行容器化工作负载”。 + +通常情况下,它与 Podman 和 Docker 一起发行,并有三个版本,即 稳定版Stable测试版Testing下一版Next。你可以获得用于裸机服务器和虚拟化环境的镜像,以及由亚马逊网络服务(AWS)和谷歌云平台(GCP)等主要云提供商托管的云镜像。 + +### 结论 + +这是关于 Linux 服务器发行版最好的总结。希望你看完这个指南后能有所收获。对我们的指南有什么想法吗?非常欢迎你的反馈。 + +> LCTT 校注:此文并未提及主要由中国开发者/企业主导的企业级 Linux 发行版,在我看来,龙蜥操作系统(Anolis OS)、欧拉操作系统(openEuler)和统信 UOS 都具备相当优良的特性和可靠的支持,在选型时可以考虑。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ + +作者:[Pradeep Kumar][a] +选题:[lkxed][b] +译者:[Veryzzj](https://github.com/Veryzzj) +校对:[wxy](https://github.com/wxy) + +本文由 [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.redhat.com/en +[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg +[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png +[0]: https://img.linux.net.cn/data/attachment/album/202302/13/092403ebp55xkbpukn9k33.jpg \ No newline at end of file diff --git a/translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md deleted file mode 100644 index 47b932debd..0000000000 --- a/translated/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md +++ /dev/null @@ -1,150 +0,0 @@ -[#]: subject: "Top 10 Linux Distributions for Servers in 2023" -[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" -[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" -[#]: collector: "lkxed" -[#]: translator: " Veryzzj" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Top 10 Linux Distributions for Servers in 2023 -2023年十佳 Linux 服务器发行版 - -====== - -由于具备多种优势,Linux 操作系统是各类服务器中的热门选择。首先,它是免费(少数商业发行版除外,如 RHEL 和 SUSE Linux Enterprise Server)和开源的。它的开源性意味着开发者可以查看其源代码并进行修改,而且可以根据规定的许可条款重新发布。其次, Linux 被认为是稳定、通用的,且比 Windows 更为安全。最后,Linux 可以轻松地部署在各类平台,如裸机、虚拟机和云环境。 - -在这篇文章中,我们重点介绍了十佳 Linux 服务器发行版。 - -### 1) Red Hat Enterprise Linux (RHEL) - -[Red Hat Enterprise Linux][1], 缩写为 RHEL,是专门为企业环境开发的商业 Linux 发行版。它是一个性能驱动、可靠安全的操作系统,提供了增强的实用性和无缝部署,使其成为服务器环境的理想选择。 - -RHEL 支持裸机、虚拟机和云环境中的各种工作负载。实际上,它是世界领先的开源解决方案供应商,提供了众多产品,包括 Red Hat OpenShift、Ansible 自动化平台、Open 混合云、JBoss 企业应用平台和 SAP 等等。 - -![Neofetch-Command-Output-RHEL-System][2] - -### 2) Ubuntu Server - -由 Canonical 开发和维护的 Ubuntu 是最流行和广泛使用的 Linux 发行版之一。Ubuntu 是一个基于 Debian 的 Linux 发行版,完全免费和开源,以其桌面版而闻名,该版本直观、用户友好,被认为是学者和初学者的理想选择。Ubuntu 有3个版本,即:桌面版、Ubuntu 服务器版和核心版。 - -虽然桌面版享有全球范围的大量使用,但服务器版也为服务器环境提供了一个坚实的平台。首先,它可以部署在任何环境中,无论是在物理机、虚拟机还是云环境中,都具备广泛的扩展功能。这意味着可以随时增加资源用来满足不断变化的需求。 - -由于服务器版本非常精简,没有任何图形用户界面,因此相对轻量,资源开销低。这意味着 CPU 和内存的使用也会较低。因此,性能得到提高并具备企业级的稳定性。 - -除了在物理数据中心和虚拟服务器上安装外,Ubuntu 服务器还可以在 AWS 和 Azure 等公共云中使用。据 Canonical 称,55%的 OpenStack 云运行在 Ubuntu 上。 此外,你可以付费获得自己管理的 Openstack 云。 - -![][3] - -### 3) Debian - -Debian 是最早的Linux发行版之一,以其稳定性而闻名。它有三个版本:稳定版、不稳定版和测试版。 - -Debian 稳定版是官方发布的最新 Debian 发行版,是服务器和台式机最受欢迎的版本。这个分支的所有软件包都经过了严格的测试和调试,因此被认为是可以运行生产工作负载的。 - -Debian 服务器是一个快速可靠的操作系统,强调安全性和稳定性。正是由于这个原因,它成为服务器环境的一个完美选择。此外,它提供了广泛的硬件支持,有超过59,000个软件包,是所有操作系统中软件包数量最多的。 - -就像 Ubuntu 服务器一样,Debian 轻量,功能多,非常适合企业工作负载。实际上,它比 Ubuntu 更稳定,更易于管理。 - -![][4] - -##### 4) SUSE Linux Enterprise Server - -在提供优秀服务器平台方面,另一位具有竞争力的对手是SUSE Linux Enterprise Server(SLES)。该服务器操作系统是由位于德国的 SUSE 公司创建和维护的。 - -SLES 是一个为处理企业级工作负载而建立的商业发行版。它可以适应任何环境,并针对稳定性、可靠性和安全性进行了优化。它的高可扩展性,使IT团队能够有效地部署他们的应用程序和服务,以应对不断增长的业务需求。 - -最新的 SLES 版本提供了易于管理的互操作。它还针对 Docker 容器、Kubernetes和 geo 集群提供了更多的支持和兼容。后者提供了高可用的灵活性,使IT团队能够配置跨越多个数据中心区域的复制集群。 - -SUSE Linux Enterprise Server 不仅支持内部工作负载,而且支持云服务,包括微软Azure、谷歌计算引擎和亚马逊 Web 服务。 - -##### 5) OpenSUSE Leap - -由 OpenSUSE project开发,OpenSUSE是一个基于 RPM 的非商业 Linux 发行版,由 SUSE 公司开发和维护。同样是免费和开源的,OpenSUSE提供了两个版本: - -- OpenSUSE Leap -- OpenSUSE Tumbleweed - -OpenSUSE TumbleWeed 是 OpenSUSE 的滚动发行版本。它包含最新的稳定应用程序,包括内核、git、SAMBA、桌面应用程序等等。因此,它是开发人员或高级用户的完美选择,他们需要利用最新的软件堆栈进行工作负载。然而,由于频繁的内核更新,导致与其他第三方驱动模块的不一致,它并不是服务器的理想选择。 - -OpenSUSE Leap 是服务器的首选 OpenSUSE 选项。它是一个开源和社区驱动的发行版,发布周期较慢,因此,比 TumbleWeed 更适合。社区驱动,这意味着它在发布之前要经过严格的测试。 - -Leap 相对来说更容易使用,并提供高性能和稳定性,是处理企业级工作负载的理想选择。它是商业服务器发行版(如 SLES 和 RHEL)的优秀替代方案,并允许企业在裸机和云部署上部署他们的工作负载。 - -![][6] - -### 6) Rocky Linux - -Rocky Linux 是一个作为 CentOS Linux 的替代品而开发的 Linux 发行版,后者在2021年12月31日达到了EOL(寿命终止)。它是一个免费开源的Linux发行版,具备稳定性、可靠性且定期更新,并在10年的支持生命周期内完全免费。 - -Rocky Linux是一个企业级操作系统,旨在与 Red Hat Enterprise Linux 100%兼容,目前正在由社区大力开发。 - -由于 CentOS Linux 突然停产,导致该发行版获得较高人气。它可以服务器和台式电脑上进行安全,也可以在公有云供应商(如亚马逊 AWS 和谷歌计算引擎)上定制镜像。 - -Rocky Linux 开发者提供了一个迁移脚本,允许用户从其他企业版(如 CentOS Linux 和 Oracle Linux)迁移到 Rocky Linux。 - -![][7] - -### 7) AlmaLinux - -另一个为填补 CentOS Linux 留下的空白的选项是 AlmaLinux。同样一个完全免费和开源的企业操作系统。 - -AlmaLinux 最初是由 CloudLinux 创建的,但目前是由社区驱动的。它提供了一个生产级的企业操作系统,与 Red Hat Enterprise Linux(RHEL)1:1二进制兼容。简而言之,它是 RHEL 的克隆,简而言之,它是 RHEL 的克隆,在完全免费的情况下提供坚实的稳定性和 RHEL 的优势。 - -作为一个企业级的服务器操作系统,AlmaLinux 可以轻松运行关键工作负载。此外,它提供长期支持的定期发布。 - -![][8] - -### 8) Oracle Linux - -由甲骨文公司开发的 Oracle Linux 是一个安全和高性能的操作系统,由 RHEL 源代码编译而成。他针对混合部署和多云部署进行了优化,与 Rocky 和 AlmaLinux 一样,Oracle Linux 与 Red Hat Linux 是100%二进制兼容。 - -对于数据中心,Oracle Linux是一个可行的选项,当然也可以作为 EOL 的 CentOS 的完美替代品。由于它的稳定性和性能,是企业应用的理想选择。 - -与 RHEL 和 SUSE 等商业 Linux 发行版不同,Oracle Linux 可以完全免费下载、使用和重新发布。它在 GNU 通用公共许可证(GPLv2)下是可用的。 - -### 9) Fedora Server - -Fedora 是 Fedora 项目开发和维护的免费开源的 Linux 发行版,该项目由 Red Hat 赞助。 - -Fedora 作为 Red Hat Enterprise Linux的上游社区发行版。所有的应用程序在推送到 RHEL 之前都要经过严格的测试。因此,它被称为“最前沿”的操作系统,这意味着它定期获得最新的软件应用程序和更新。 - -长久以来,Fedora 以其工作站版本而受欢迎,该版本是为笔记本电脑和台式电脑打造的。随着时间的推移,它已经扩展到包括其他版本,如 Fedora Server、Fedora IoT 和 Fedora CoreOS。 - -Fedora 服务器是一个强大、可靠、灵活的操作系统,拥有最好和最新的数据中心技术。作为一个领先的版本,它提供了开源社区的最新技术,并且易于安装、设置和使用各种工具进行管理,如 Cockpit 网络控制台。 - -Fedora 也十分快速稳定,而且相当安全,非常适合生产和企业工作负载,其新版本每6个月推送一次。 - -![][10] - -### 10) Fedora CoreOS - -最后一个是 Fedora CoreOS。这是一个专门为运行容器化应用程序和工作负载优化的最小操作系统。根据其主页,它自称是 "一个自动更新的最小操作系统,用于安全且大规模地运行容器化工作负载"。 - -通常情况下,它与 podman 和 docker 一起发行,并有三个版本,即稳定版、测试版和下一版。 你可以获得用于裸机服务器和虚拟化环境的镜像,以及由亚马逊网络服务(AWS)和谷歌云平台(GCP)等主要云提供商托管的云镜像。 - -##### 结论 - -这是关于 Linux 服务器发行版最好的总结。希望你看完这个指南后能有所收获。对我们的指南有什么想法吗?非常欢迎你的反馈。 - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ - -作者:[Pradeep Kumar][a] -选题:[lkxed][b] -译者:[Veryzzj](https://github.com/Veryzzj) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.linuxtechi.com/author/pradeep/ -[b]: https://github.com/lkxed -[1]: https://www.redhat.com/en -[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png -[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png -[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png -[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg -[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png -[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg -[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png From 29e015aa3ae457e26b1edd62d3a94ad67c0ec935 Mon Sep 17 00:00:00 2001 From: onionstalgia Date: Mon, 13 Feb 2023 20:23:07 +0800 Subject: [PATCH 2809/3123] translated --- ...s Should Opt for Platform as a Service.md | 125 ------------------ ...s Should Opt for Platform as a Service.md | 125 ++++++++++++++++++ 2 files changed, 125 insertions(+), 125 deletions(-) delete mode 100644 sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md create mode 100644 translated/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md diff --git a/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md b/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md deleted file mode 100644 index dd1bd4fa29..0000000000 --- a/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md +++ /dev/null @@ -1,125 +0,0 @@ -[#]: subject: "Why Enterprises Should Opt for Platform as a Service" -[#]: via: "https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/" -[#]: author: "Gopala Krishna Behara https://www.opensourceforu.com/author/gopalakrishna-behara/" -[#]: collector: "lkxed" -[#]: translator: "onionstalgia" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Why Enterprises Should Opt for Platform as a Service -====== -*Platform as a Service enables quick and easy creation of Web applications without the necessity of buying and maintaining the software and infrastructure underneath it. This article explains why it’s useful.* - -Platform as a Service (PaaS) refers to cloud computing services that provide a platform for customers to develop, run and manage applications without the complexity of building and maintaining the infrastructure associated with developing and launching them. This is the core platform on which cloud native applications and supporting systems are based. - -PaaS typically involves diverse application software infrastructure capabilities including application platforms, integration platforms, business analytics platforms, event-streaming services and mobile back-end services. In addition, it includes a set of monitoring, management, deployment and related capabilities. - -Developers are keen on getting their environments up without waiting, while operations teams care about performance and stability. This often gives rise to some conflict between them. PaaS creates a peaceful environment for both groups. An application platform delivered as a service is described as PaaS, and is used to deploy the user code. Cloud Foundry, Cloudify and OpenShift open source environments can be used as PaaS. - -### PaaS adoption pattern - -Cloud computing must satisfy five essential characteristics — on demand service, access network, resource pooling, elasticity and measured services. To achieve these, cloud computing provides three kinds of service models: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). - -The key business drivers of PaaS adoption are: - -* Reduction of capex and opex to deliver business services -* Minimising IT costs by improving the delivery time and quality of the application development and delivery -* Increasing the flexibility and integration between middleware components - -**Simple PaaS** is the entry point into the PaaS space. It allows provisioning of application services and exposes them into a self-service catalogue; it automates the deployment and meters the resources used by this service. - -*Manage PaaS* manages the SLA and QoS aspects of the provisioned applications such as resiliency, application performance, security, etc. - -*Programming PaaS* allows applications to integrate with external applications or public clouds, and to implement auto-scaling and cloud-bursting scenarios. - -*Process-oriented PaaS* allows implementation of a DevOps process by creating a continuous delivery flow that automates the build, test and delivery of applications into a cloud environment. - -In addition to these adoption patterns, there are other variations of PaaS, as listed below. These variations might align to one of the patterns explained above. - -**iPaaS:** Integration Platform as a Service (iPaaS) is a suite of cloud services that enables development, execution and governance of integration flows connecting any combination of on-premises and cloud-based processes, services, applications and data within individuals or across multiple organisations. Examples are MuleSoft CloudHub and BizTalk. - -**mPaaS:** Mobile Platform as a Service (mPaaS) is a provision of an interactive development environment (IDE) for the creation of mobile apps. It supports multiple mobile operating platforms. - -**dbPaaS:** Database Platform as a Service (dbPaas) is an on-demand, secure and scalable self-service database platform that automates the provisioning and administration of databases. dbPaaS makes it easier to scale databases and makes them more reliable. - -**IoTPaaS:** This provides common infrastructure to enable communication, security, analytics and management for heterogeneous IoT topologies. It provides simpler and agile models for building IoT solutions. - -**bpmPaaS:** Business process management PaaS (bpmPaaS) is a complete pre-integrated BPM platform hosted in the cloud and delivered as a service. It is leveraged for the development and execution of business processes and workflow-centric applications across enterprises. Examples are Pega cloud, and OpenText Cordys cloud. - -Some basic characteristics of PaaS are: - -* Services to develop, test, deploy, host and maintain applications in the same integrated development environment -* Multi-tenant architecture, in which multiple concurrent users use the same development application -* Built-in scalability of deployed software, including load balancing and failover -* Integration with heterogeneous platforms and systems -* Support for development team collaboration -* Tools to handle billing and subscription management - -### Key open source Platforms as a Service - -Before choosing a PaaS, enterprises must consider the following: - -* Deployment flexibility -* Ease of operations -* Choice of application stacks -* Language, database and framework support -* Scaling capabilities -* QoS -* Tooling for development and operations -* How well it fits your business - -Let’s now take a quick look at some popular open source PaaS. - -**Cloud Foundry:** This PaaS provides a choice of clouds, developer frameworks and application services. Cloud Foundry makes it faster and easier to build, test, deploy and scale applications. - -It has different distributions, of which the popular ones are Pivotal and IBM. It contains application runtime and container runtime. It also has Pivotal application service and Pivotal container service. - -**OpenShift:** This is Red Hat’s cloud computing PaaS offering. It is an application platform in the cloud, where application developers and teams can build, test, deploy and run their applications. - -**Cloudify:** Cloudify was developed and designed on the principles of openness to power the IT transformation revolution. It enables organisations to design, build and deliver various business applications and network services. The latest version of Cloudify is 4.3, which incorporates enhanced features like advanced security, control and true self-service. Cloudify 4.3 introduced a totally new concept for container orchestration with Kubernetes. - -| Functionality | Cloud Foundry | Cloudify | OpenShift | -| :- | :- | :- | :- | -| Core functionality | Cloud controller | Manager | Broker | -| Providing third party database services | Service broker | Agent | Cartridge | -| Routing of incoming traffic | Router | Manager | REST API | -| Querying the state of apps | Cloud controller | CLI client | Broker | -| Messaging | Message bus | Manager | Broker | -| App instance management | Droplet execution agent | Agent | Node | -| Application state management | Health manager | Manager | Broker | -| Broker | Warden | Agent | Gear | -| Load balancing of user requests | Droplet execution agent | Manager | Broker | -| Framework provider | Blob store | Agent | Cartridge | -| Technology | -| Languages | Java, Ruby, Scala, Node.js, Groovy, Grails, PHP, Go, Python | Java, PHP, Ruby | Java, Ruby, Node.js, PHP, Python, Perl, JavaScript | -| Databases | MongoDB, MySQL, -PostgreSQL | MySQL, MongoDB | MongoDB, MySQL, PostgreSQL | -| Frameworks | Spring, Rails, Grails, Play Sinatra | JavaScript, Node.js | Rails, Flask, Django, Drupal, Vertx | -| Horizontal scaling | Yes | Yes | Yes | -| Vertical scaling | Yes | No | Yes | -| Auto scaling | Yes | Yes | Yes | - -Table 1 lists the basic functionality and its corresponding Cloud Foundry, Cloudify and OpenShift architectural components. This is purely based on my views and the authenticity of the features supported needs to be validated with the cloud provider. - -From the industry adoption statistics we can clearly make out that PaaS adoption is picking up very rapidly. PaaS enables enterprise applications to be cloud-agnostic, so that they can run on any cloud platform — whether public or private. This means that a PaaS application developed on Amazon AWS can easily be ported to Microsoft Azure, to VMWare vSphere, to Red Hat RHEV, etc. - -PaaS is useful when multiple developers are working on a development project or when external users need to collaborate with the development process. So it is best suited for agile software development, because it eases the difficulties around rapid development and iteration of software. - -### Acknowledgements - -The author thanks Kiran M.R. and Raju Alluri of the digital architecture practice of Wipro Ltd for giving their time and support to this article. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/ - -作者:[Gopala Krishna Behara][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/gopalakrishna-behara/ -[b]: https://github.com/lkxed diff --git a/translated/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md b/translated/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md new file mode 100644 index 0000000000..367eda4312 --- /dev/null +++ b/translated/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md @@ -0,0 +1,125 @@ +[#]: subject: "Why Enterprises Should Opt for Platform as a Service" +[#]: via: "https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/" +[#]: author: "Gopala Krishna Behara https://www.opensourceforu.com/author/gopalakrishna-behara/" +[#]: collector: "lkxed" +[#]: translator: "onionstalgia" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +为什么企业应该选择平台即服务(PaaS) +====== +*平台即服务PaaS "能够快速、轻松地创建网络应用,而无需购买和维护其下的软件和基础设施。本文解释了它为什么有用。* + +平台即服务(以下简称 PaaS)是一种“免去了建立和维护基础设施的复杂工作,为客户提供开发、运行和管理应用程序的平台”的云计算服务。这是云原生应用和支持系统所依托的核心平台。 + +PaaS 通常包括不同的应用基础功能,包括应用平台、集成平台、业务分析平台、事件流服务和移动后端服务。此外,它还包括一套与监控、管理、部署相关的功能。 + +开发人员希望他们的开发环境不需要等待,而运营团队则更关心性能和稳定性。这经常引起两方间的冲突。PaaS 为这两方创造了和平的环境。作为服务交付的应用平台,即 PaaS,被用于部署用户代码。Cloud Foundry、Cloudify 和 OpenShift 这些开源环境都可用作 PaaS。 + +### PaaS 的采用模式 + +云计算必须满足五个基本特征——按需服务、接入网络、资源池化、弹性和可度量的服务。为此,云计算提供了三种服务模式:软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)。 + +业务选用 PaaS 的关键驱动力: + +* 减少提供业务的资本支出和运营费用 +* 通过减少应用程序的交付时间和提高开发和交付质量,最大限度地降低 IT 成本 +* 增加中间件之间的灵活性和集成度 + +**简单 PaaS** 是踏入 PaaS 领域的入门。它可以提供应用程序服务,并将它们暴露在自助服务的目录中,自动部署和计量服务使用的资源。 + +*管理 PaaS* 管理已配置应用程序的服务级别协议SLA服务质量QoS,例如弹性、应用程序性能、安全性等。 + +*编程 PaaS* 允许应用程序与外部应用程序或公共云集成,并实现自动扩展和云爆发场景。 + +*面向流程Process-oriented PaaS* 允许通过创建持续交付流程来实现开发运维DevOps流程,该流程可以自动构建、测试应用程序并将其交付到云环境中。 + +除了这些采用模式之外,还有其他的 PaaS 变体如下,这些变化可能与上文的模式有一定重合。 + +**集成平台即服务iPaaS**是一套能够开发、执行和管理集成流的云服务。集成流可以是个人内部或跨多个组织连接的,可以包含任何企业内部或基于云的流程、服务、应用和数据。这些组合变化可能也符合上述的模式之一,例如 MuleSoft CloudHub 和 BizTalk。 + +**移动平台即服务mPaaS**是为开发移动应用提供的集成开发环境IDE,并且支持多种移动平台。 + +**数据库平台即服务dbPaas**是一种按需的、安全且可扩展的自助式数据库平台,可自动配置和管理数据库。dbPaaS 使扩展数据库变得更加容易,并使它们更加可靠。 + +**物联网平台即服务IoTPaaS**提供了实现异构物联网拓扑所需的通信、安全、分析和管理的通用基础架构。它为构建物联网解决方案提供了更简单、更敏捷的模型。 + +**业务流程管理平台即服务bpmPaaS**是一个完整的预集成业务流程管理平台,托管在云端并作为服务交付。它被用于开发和执行整个企业的业务流程和以工作流程为中心的应用程序。例如 Pega cloud 和 OpenText Cordys cloud。 + +PaaS 的一些基本特征: + +* 在同一集成开发环境中开发、测试、部署、托管和维护应用程序的服务 +* 多租户架构,即多个并发用户使用同样的开发程序 +* 部署软件的内置可扩展性,包括负载平衡和故障转移 +* 与异构平台和系统的集成 +* 支持开发团队的协作 +* 包含处理帐单和管理订阅的工具 + +### 主要的开源 PaaS + +在选择 PaaS 之前,企业主要考虑关注以下几点: + +* 部署灵活性 +* 操作简便性 +* 应用堆栈的选择 +* 语言、数据库和框架支持 +* 规模的可扩展性 +* 服务质量QoS +* 开发和运营的工具 +* 它有多适合你的业务 + +现在让我们快速浏览下流行的开源 PaaS。 + +**Cloud Foundry:**提供了多种云的选择、开发者框架和应用服务。Cloud Foundry 使构建、测试、部署和扩展应用程序变得更快、更容易。 + +它有不同的发行版本,其中比较流行的是 Pivotal 和 IBM。它包含应用运行时runtime和容器运行时。在 Pivotal 上包含有应用服务和容器服务。 + +**OpenShift:**红帽的云计算 PaaS 产品。这是一个云端的应用平台,应用开发者和团队可以在这里构建、测试、部署和运行他们的应用程序。 + +**Cloudify:** 在开放的原则下开发和设计,用以推动 IT 转型革命。它使组织能够在其上设计、建立和提供各种商业应用和网络服务。Cloudify 的最新版本为 4.3,它包含了先进的安全、控制和真自服务true self-service等增强功能。Cloudify 4.3 还为 Kubernetes 容器编排引入了全新的概念。 + +| 功能 | Cloud Foundry | Cloudify | OpenShift | +| :- | :- | :- | :- | +| 核心功能 | Cloud controller | Manager | Broker | +| 提供第三方数据库服务 | Service broker | Agent | Cartridge | +| 传入流量的路由 | Router | Manager | REST API | +| 查询应用程序的状态 | Cloud controller | CLI client | Broker | +| 消息传递 | Message bus | Manager | Broker | +| 应用实例管理 | Droplet execution agent | Agent | Node | +| 应用程序状态管理 | Health manager | Manager | Broker | +| Broker | Warden | Agent | Gear | +| 用户请求的负载平衡 | Droplet execution agent | Manager | Broker | +| 框架提供者 | Blob store | Agent | Cartridge | +|技术 |||| +| 语言 | Java, Ruby, Scala, Node.js, Groovy, Grails, PHP, Go, Python | Java, PHP, Ruby | Java, Ruby, Node.js, PHP, Python, Perl, JavaScript| +| 数据库 | MongoDB,MySQL ||| +|MongoDB、MySQL、PostgreSQL | MySQL、MongoDB | MongoDB、MySQL、PostgreSQL|| +| 框架 | Spring, Rails, Grails, Play Sinatra | JavaScript, Node.js | Rails, Flask, Django, Drupal, Vertx | +| 水平扩展 | 是 | 是 | 是| +| 垂直扩展 | 是 | 否 | 是| +| 弹性伸缩 | 是 | 是 | 是| + +表 1 列出了 Cloud Foundry、Cloudify 和 OpenShift 的基本功能及其对应的架构组件。以上完全基于个人观点,所支持的功能的真实需求应与云供应商进行验证。 + +从行业统计数据中,我们可以清楚地看出 PaaS 的使用率正在迅速上升。PaaS 使企业应用程序可以是云无关cloud-agnostic的,它们可以在任何云平台上运行——无论是公共的还是私有的。这意味着一个在亚马逊的 AWS 上开发的应用可以很容易地移植到微软 Azure、VMWare vSphere、Red Hat RHEV 等等其他平台。 + +当多个开发人员共同参与一个开发项目,或外部用户需要与开发过程协作时,PaaS 是很有用的。因此,PaaS 尤其适合于敏捷开发,因为它降低了围绕软件快速开发和迭代的难度。 + +### 鸣谢 + +作者感谢 Kiran M.R. 和 Wipro 有限公司的数字架构实践 Raju Alluri 为本文提供的支持。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/ + +作者:[Gopala Krishna Behara][a] +选题:[lkxed][b] +译者:[onionstalgia](https://github.com/onionstalgia) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.opensourceforu.com/author/gopalakrishna-behara/ +[b]: https://github.com/lkxed From a561cfb6a897398bfc035740ea0c6499721d3066 Mon Sep 17 00:00:00 2001 From: onionstalgia <35531128+onionstalgia@users.noreply.github.com> Date: Mon, 13 Feb 2023 20:54:34 +0800 Subject: [PATCH 2810/3123] translating --- sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md b/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md index 64ddc961d1..a1d8d0bf01 100644 --- a/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md +++ b/sources/talk/20230207.1 ⭐️⭐️ A brief history of LibreOffice.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/2/libreoffice-history" [#]: author: "Italo Vignoli https://opensource.com/users/italovignoli" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From bc3c624e74d5ef955c664a424527b76566076d74 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 13 Feb 2023 22:08:35 +0800 Subject: [PATCH 2811/3123] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Chao-zhi 本篇显然是用翻译工具草草翻译而成。 翻译工具是可以用的,但是你要做检查。你可以对比我做的校对,如果你能做到我的校对这样的程度,那就没问题。 --- ...ll GNOME Desktop in Arch Linux [Complete Guide].md | 106 +++++++++--------- 1 file changed, 55 insertions(+), 51 deletions(-) rename {translated/tech => published}/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md (62%) diff --git a/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/published/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md similarity index 62% rename from translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md rename to published/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md index a37dcc275e..c262036263 100644 --- a/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md +++ b/published/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md @@ -3,22 +3,24 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15537-1.html" -如何在 Arch Linux 中安装 GNOME 桌面 [完整指南] +如何在 Arch Linux 中安装 GNOME 桌面 ====== -**本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。** +![][0] -本指南有两部分。第一部分是关于安装基本的 Arch 系统。第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。 +> 本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。 + +本指南有两部分:第一部分是关于安装基本的 Arch 系统;第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。 ### 什么是 GNOME 桌面? -GNOME 是一个流行的桌面环境,是许多基于桌面的顶级 Linux 发行版的默认桌面选择,如 Ubuntu 和 Fedora。几乎所有的口味都提供了一个 GNOME 桌面选项。 +GNOME 是一个流行的桌面环境,是如 Ubuntu 和 Fedora 等许多基于桌面的顶级 Linux 发行版的默认桌面。几乎所有的定制版都提供了一个 GNOME 桌面版本。 -GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通、高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的。它在工作时不会妨碍到你。因此,尽管有许多关于 GNOME3(目前的迭代)速度慢、资源重等的争议,它仍然是许多人的流行和默认选项。 +GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通和高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的一个。它不会在你工作时妨碍你。因此,尽管有许多关于 GNOME 3(目前的版本)速度慢、资源重等争议,它仍然是许多人的流行和默认选择。 说了这么多,让我们来看看如何在裸机 Arch 中安装 GNOME 桌面。 @@ -28,23 +30,23 @@ GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通 如果你已经安装了 Arch Linux,你可以跳过这一步,直接进入下面安装 GNOME 桌面部分。 -要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问[该指南][1],了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。 +要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问 [该指南][1],了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。 -本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 archinstall 脚本。完成后,回来通过[步骤 2](#第二部分在-arch-linux-中安装-gnome) 继续 GNOME 安装。 +本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 `archinstall` 脚本。完成后,回来通过第二部分的步骤继续 GNOME 安装。 -[现代方法。使用 archinstall 脚本安装(推荐)][2]。 +> **[现代方式:使用 archinstall 脚本安装(推荐)][2]** -##### 传统的方法。下载 Arch Linux +##### 传统方式:下载 Arch Linux -从下面的链接下载 Arch Linux .iso。这里也提供磁力和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。 +从下面的链接下载 Arch Linux 的 .iso 文件。它也提供了磁力链接和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。 -[下载 Arch Linux][3] +> **[下载 Arch Linux][3]** -如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像--那么你就不需要把它写入 U 盘。 +如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像,那么你就不需要把它写入 U 盘。 ##### 启动和配置分区 -从 Arch Linux iso 启动后,你必须运行一系列的命令来安装基本系统。 +从 Arch Linux ISO 启动后,你必须运行一系列的命令来安装基本系统。 首先,运行下面的命令,找出设备标识符。 @@ -52,7 +54,7 @@ GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通 fdisk -l ``` -![先 fdisk -l][4] +![之前的 fdisk -l][4] 然后用设备标识符,运行下面的命令,开始对你的磁盘进行分区。请确保根据你的系统改变 `/dev/sda`。 @@ -62,7 +64,7 @@ cfdisk /dev/sda 在下一个提示中选择 `label type = dos`。 -选择自由空间,并从底部选择新的选项。在这个例子中,我将创建三个分区,如下图所示。 +选择自由空间,并从底部选择 “新建New” 选项。在这个例子中,我将创建三个分区,如下图所示: ``` /dev/sda1 - 1G - for /boot @@ -76,13 +78,13 @@ cfdisk /dev/sda 对大小为 5GB 的主根分区重复同样的步骤。 -![交换分区类型改变][6] +![改变为交换分区类型][6] -用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择类型,并将其标记为 "Linux Swap/Solaris "选项的交换分区。 +用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择 “类型Type”,并用 “Linux Swap/Solaris” 选项将其标记为交换分区。 ![cfdisk 中的最终分区列表][7] -一旦完成,使用底部的写入选项将变化写入磁盘。确保你在写入前做了备份,因为这是你系统中的一个永久性变化。 +一旦完成,使用底部的 “写入Write” 选项将变化写入磁盘。**确保你在写入前做了备份,因为这是你系统中的一个永久性变化。** 在你继续之前,运行下面的命令来检查。你可以看到在这个例子中,有三个分区被列出。 @@ -90,9 +92,9 @@ cfdisk /dev/sda fdisk -l ``` -![fdisk 中的最终分区列表][8] 。 +![fdisk 中的最终分区列表][8] -依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2`。 +依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2`: ``` mkfs.ext4 /dev/sda1 @@ -101,7 +103,7 @@ mkswap /dev/sda3 swapon /dev/sda3 ``` -完成后,装载系统并创建必要的目录。 +完成后,装载系统并创建必要的目录: ``` mount /dev/sda2 /mnt @@ -115,7 +117,7 @@ mount /dev/sda1 /mnt/boot ##### 安装基础系统 -我希望你已经连接到互联网了。如果没有,请尝试使用 USB 加密狗或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照[该指南][10] 使用 Arch Linux 安装程序配置一个无线或 wifi 网络。 +我希望你已经连接到互联网了。如果没有,请尝试使用 USB 网卡或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照 [该指南][10] 使用 Arch Linux 安装程序配置一个无线或 Wi-Fi 网络。 依次运行下面的命令,将基本系统安装到已安装的分区中。下载的大小约为 400MB。 @@ -134,44 +136,44 @@ genfstab -U /mnt >> /mnt/etc/fstab ##### 配置基础系统 -依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网。 +依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网: ``` arch-chroot /mnt nano /etc/locale.gen ``` -去掉开头的 #,取消对你所选择的 locale 的注释。在本指南中,我选择了 en_US.UTF-8 UTF-8. 按 CTRL+O、Enter 和 CTRL+X 退出 nano。 +通过去掉开头的 `#` 来取消对你所选择的 语言环境locale 的注释。在本指南中,我选择了 `en_US.UTF-8 UTF-8`,按 `CTRL+O`、回车和 `CTRL+X` 退出 nano。 ![本地化][12] -使用以下方法生成 locale。 +使用以下方法生成语言环境: ``` locale-gen ``` -如果你不想手动去 `/etc/locale.gen` 设置语言,也可以使用以下命令设置语言。 +如果你不想手动去 `/etc/locale.gen` 设置语言,也可以使用以下命令设置语言: ``` echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8 ``` -设置当地的时区。 +设置当地的时区: ``` ln -s /usr/share/zoneinfo/America/New_York /etc/localtime ``` -同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区。 +同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区: ``` ls /usr/share/zoneinfo ls /usr/share/zoneinfo/America ``` -设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的愿望,将 `"arindam-pc"` 改为任何主机名。 +设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的想法,将 `arindam-pc` 改为任何主机名: ``` hwclock --systohc --utc @@ -179,9 +181,9 @@ echo arindam-pc > /etc/hostname systemctl enable dhcpcd ``` -下一步是设置根用户的密码,创建一个管理员用户,并在 sudoers 文件中添加该用户。 +下一步是设置根用户的密码,创建一个管理员用户,并在 `sudoers` 文件中添加该用户。 -依次按照下面的命令进行操作。请确保根据你的需要将用户名从 `debugpoint` 改为其他名称。 +依次按照下面的命令进行操作。请确保根据你的需要将用户名从 `debugpoint` 改为其他名称: ``` passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint @@ -189,13 +191,13 @@ passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint ![创建用户][13] -打开 sudoers 文件,添加以下几行。 +打开 `sudoers` 文件,添加以下几行: ``` nano /etc/sudoers ``` -添加以下几行。由于你已经创建了根用户,该条目应该在那里。 +添加以下几行。由于你已经创建了 `root` 用户,该条目应该已经有了: ``` root ALL=(ALL) ALL @@ -204,7 +206,7 @@ debugpoint ALL=(ALL) ALL ![更改 sudoer 文件][14] -安装 grub,设置初始 ramdisk 环境,依次使用下面的命令安装引导。 +依次使用如下命令安装 Grub,设置初始化 Ramdisk 环境,卸载系统: ``` grub-install /dev/sda @@ -213,7 +215,7 @@ mkinitcpio -p linux exit ``` -![配置 grub][15] 。 +![配置 Grub][15] 然后重新启动你的系统。如果你是在一个物理系统中安装的,在这一步要拔掉 USB 介质。 @@ -229,27 +231,25 @@ reboot #### 第二部分:在 Arch Linux 中安装 GNOME -重启后,从 grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。 +重启后,从 Grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。 所有的命令都使用默认值,即在要求时按回车。 -- **安装 Xorg 服务器。安装大小约为 80MB。** +安装 Xorg 服务器。安装大小约为 80MB: ``` sudo pacman -S --needed xorg ``` -- **安装显示管理器,GNOME 桌面。安装大小约为 300MB。** +安装显示管理器、GNOME 桌面。安装大小约为 300MB: ``` sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm ``` -上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 jack、noto-sans 和 xdg-portal-desktop-gnome。 +上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 “jack”、“noto-sans” 和 “xdg-portal-desktop-gnome”。 -- **安装应用程序** - -这只是一个参考。你也可以安装你所需要的。 +安装应用程序。这只是一个参考。你也可以安装你所需要的: ``` sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper @@ -262,25 +262,28 @@ systemctl enable gdm systemctl enable NetworkManager ``` -使用 reboot 命令重新启动系统。 +使用 `reboot` 命令重新启动系统: ``` reboot ``` -![Arch Linux 运行 GNOME 43 桌面][17] 。 +![Arch Linux 运行 GNOME 43 桌面][17] -如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 中漂亮而干净的 GNOME 43 桌面。 +如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 漂亮而干净的 GNOME 43 桌面。 我希望这个指南能帮助你在裸机 Arch 安装 GNOME 桌面。 -------------------------------------------------------------------------------- -通过。https://www.debugpoint.com/gnome-arch-linux-install/ +via: https://www.debugpoint.com/gnome-arch-linux-install/ -作者:[Arindam][a] 选题:[lkxed][b] 翻译者:[Chao-zhi](https://github.com/Chao-zhi)校对:[校对者ID](https://github.com/校对者ID) +作者:[Arindam][a] +选题:[lkxed][b] +译者:[Chao-zhi](https://github.com/Chao-zhi) +校对:[wxy](https://github.com/wxy) -本文由[LCTT](https://github.com/LCTT/TranslateProject)原创编译,[Linux中国](https://linux.cn/)荣誉推出 +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://www.debugpoint.com/author/admin1/ [b]: https://github.com/lkxed @@ -301,3 +304,4 @@ reboot [15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg [16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg [17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202302/13/220203a5yb5xy24yer4atv.jpg \ No newline at end of file From cbe5dc84883dd404178fc1c3e433a794e311fe37 Mon Sep 17 00:00:00 2001 From: gpchn <99541536+gpchn@users.noreply.github.com> Date: Mon, 13 Feb 2023 22:21:03 +0800 Subject: [PATCH 2812/3123] gpchn translation completed --- ... Install DOSBox in Ubuntu to Play Old Games.md | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md diff --git a/translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md b/translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md new file mode 100644 index 0000000000..91629ca867 --- /dev/null +++ b/translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md @@ -0,0 +1,168 @@ +[#]: subject: "How to Install DOSBox in Ubuntu to Play Old Games" +[#]: via: "https://www.debugpoint.com/install-dosbox-ubuntu/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "gpchn" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Ubuntu 中安装 DOSBox 玩老游戏 +====== + +**了解如何在 Ubuntu 中安装 DOSBox,并配置它来玩旧的 DOS 游戏。** + +DOSBox 是一个免费的开源操作系统模拟器,可以在现代 Linux 系统中运行。它有几个组件可以模仿旧的硬件,以运行旧程序和游戏。 + +这一切使得在现代 Linux 发行版中享受旧游戏和应用程序成为可能。 + +在本指南中,我将向您展示如何安装 DOSBox,配置它,并玩一个示例游戏。 + +### 在 Ubuntu 中安装 DOSBox + +DOSBox 的主软件包在所有主要的 Linux 发行版中都可用。 + +在 Ubuntu、Debian、LinuxMint 和相关发行版中,使用以下命令安装它: + +``` +sudo apt install dosbox +``` + +在 Fedora、CentOS、RHEL 和相关发行版中,使用以下命令安装它: + +``` +sudo dnf install dosbox +``` + +在 Arch Linux 中,使用以下命令安装它: + +``` +pacman -S --needed dosbox +``` + +这将结束安装。现在是配置和运行的时候了。 + +### 运行 DOSBox + +安装后,从终端键入以下内容: + +``` +dosbox +``` + +它将显示以下界面,这是 DOSBox 提示。第一次运行非常重要,因为它会创建 DOSBox 配置文件。 + +键入 `exit` 暂时关闭 DOSBox。 + +![DOSBox first time run][1] + +配置文件为您提供了几个调整设置的选项。在 Ubuntu 中,该文件创建在 `~/.dosbox/dosbox-[version].conf`。 + +在 Fedora 中,它从以下路径加载临时配置文件 `~/.config/dosbox/dosbox-staging.conf`. + +默认情况下,您可以使用默认配置。但是如果您愿意,您可以修改它。 + +例如,如果您想全屏启动 DOSBox,您可以启用或禁用相关设置。像这样: + +``` +fullscreen=false +fulldouble=false +fullresolution=original +windowresolution=original +output=surface +autolock=true +sensitivity=100 +waitonerror=true +``` + +您可以在官方文档中找到所有的设置选项 [documentation][2]. + +### 下载以及游玩老游戏 + +有许多网站提供旧的 DOS 游戏。我使用过下面的网站,它提供了一套可以在现代系统中玩的老游戏。 + +所以,访问下面的网站,下载您想要的任何游戏。 + +[下载 DOS 游戏][3] + +在您的 /home 目录下创建一个文件夹,并将其命名为 dosbox: + +``` +cd ~mkdir dosbox +``` + +现在,解压您下载的游戏(应该是一个 .exe 文件),在 `~/dosbox` 目录下创建一个单独的文件夹。 + +例如,我下载了游戏 “马里奥和路易吉(1994)”。我在 “dosbox” 文件夹中创建了一个名为 “mario” 的文件夹,并将游戏文件放进去。 + +![Keep the game in a separate folder][4] + +现在从终端启动 dosbox: + +``` +dosbox +``` + +并键入以下内容,将游戏挂载到虚拟的 C: 盘中: + +``` +mount c ~/dosbox/mario +``` + +以上命令完成后,将驱动器更改为 C:: + +``` +c: +``` + +现在,您可以输入游戏的文件名来运行游戏: + +``` +mario +``` + +![Running the game][5] + +![Mario running in DOSBox in Ubuntu][6] + +### 键盘或控制器映射 + +默认情况下,DOSBox 会自动检测键盘或您插入的控制器。但是,如果您想更改游戏按键绑定,可以从终端运行以下命令: + +``` +dosbox -startmapper +``` + +它将显示以下界面,每个键上都标记有事件。您可以点开任何一个键,根据自己的习惯进行更改。 + +![DOSBox keyboard and controller mapping][7] + +### 结论 + +我希望您在 Ubuntu 和其他发行版中安装了 DOSBox 之后,能够运行您最喜欢的 DOS 游戏。DOSBox 是最酷的软件之一,您可以使用它来运行任何程序,例如 [Turbo C][8] 等。 + +如果您有任何麻烦或问题,请在评论区告诉我。 + +享受游戏吧! + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-dosbox-ubuntu/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[gpchn](https://github.com/gpchn) +校对:[校对者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/2023/02/DOSBox-first-time-run.jpg +[2]: https://www.dosbox.com/wiki/Dosbox.conf#Sections +[3]: https://archive.org/details/softwarelibrary_msdos_games?tab=collection +[4]: https://www.debugpoint.com/wp-content/uploads/2023/02/Keep-the-game-in-a-separate-folder.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/02/Running-the-game.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/02/Mario-playing-in-DOSBox-in-Ubuntu.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/02/DOSBOox-keyboard-and-controller-mapping.jpg +[8]: https://www.debugpoint.com/setting-up-dosbox-in-ubuntu-to-run-turbo-c/ From 3a67b2ad22452cdd30f4a289c37d596444fe1068 Mon Sep 17 00:00:00 2001 From: gpchn <99541536+gpchn@users.noreply.github.com> Date: Mon, 13 Feb 2023 22:21:46 +0800 Subject: [PATCH 2813/3123] gpchn translation completed --- ... Install DOSBox in Ubuntu to Play Old Games.md | 168 ------------------ 1 file changed, 168 deletions(-) delete mode 100644 sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md diff --git a/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md b/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md deleted file mode 100644 index a62fa5d750..0000000000 --- a/sources/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md +++ /dev/null @@ -1,168 +0,0 @@ -[#]: subject: "How to Install DOSBox in Ubuntu to Play Old Games" -[#]: via: "https://www.debugpoint.com/install-dosbox-ubuntu/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "gpchn" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install DOSBox in Ubuntu to Play Old Games -====== - -**Learn how to install DOSBox in Ubuntu and configure it to play old DOS games.** - -DOSBox is a free and open-source operating system emulator that can run inside modern Linux systems. It has several components which emulate older hardware so that ancient programs and games can run. - -All these make it possible to enjoy the older games and applications in modern Linux distributions. - -In this guide, I will show you how to install DOSBox, configure it and play a sample game. - -### Install DOSBox in Ubuntu - -The main package of DOSBox is available in all the major repo of Linux distributions. - -For Ubuntu, Debian, Linux Mint and related distributions use the following command to install it: - -``` -sudo apt install dosbox -``` - -For Fedora, CentOS, RHEL and related distributions use the following: - -``` -sudo dnf install dosbox -``` - -Arch Linux users, use the following command to install it. - -``` -pacman -S --needed dosbox -``` - -That will conclude the installation. Now it’s time to configure and run. - -### Running DOSBox - -After installation, type the following from the terminal. - -``` -dosbox -``` - -It will show you the following screen showing the DOSBox prompt. This first-time run is essential because it creates the DOSBox configuration file. - -Type `exit` to close DOSBox for now. - -![DOSBox first time run][1] - -The configuration file gives you several options to tweak settings. The file is created at your home directory path `~/.dosbox/dosbox-[version].conf` for Ubuntu. - -For fedora, it loads the staging config file from this path`~/.config/dosbox/dosbox-staging.conf`. - -By default, you can keep the configuration unchanged. However, if you want, you can change it. - -For example, if you want to start DOSBox fullscreen, you can enable and disable the switch. Here’s a sample: - -``` -fullscreen=false -fulldouble=false -fullresolution=original -windowresolution=original -output=surface -autolock=true -sensitivity=100 -waitonerror=true -``` - -You can find all the settings in the official [documentation][2]. - -### Download old games and run - -There are many websites which provide old DOS games. I have used the following website, which provides a fair set of old games which can be played in the modern system. - -So, visit the following page and download any game you want. - -[Download DOS games][3] - -Create a directory in your /home folder and name it dosbox. - -``` -cd ~mkdir dosbox -``` - -Now, extract the game which you downloaded (it should be a .exe file) and create a separate folder inside `~/dosbox`. - -For example, I downloaded the game “Mario & Luigi (1994)”. And I created a folder called “mario” inside the “dosbox” folder. And placed the game file inside it. - -![Keep the game in a separate folder][4] - -Now launch dosbox from the terminal. - -``` -dosbox -``` - -And type the following to mount the game in a virtual C: drive. - -``` -mount c ~/dosbox/mario -``` - -After the above command is complete, change the drive to C:. - -``` -c: -``` - -And now, you can type the game’s file name to run the game. - -``` -mario -``` - -![Running the game][5] - -![Mario running in DOSBox in Ubuntu][6] - -### Keyboard or controller mapping - -By default, DOSBox should detect the keyboard or any controller you may have plugged in. However, if you want to change game keybindings, you can run the below command from the terminal. - -``` -dosbox -startmapper -``` - -It will give you the following screen with the events tagged to each key. You can click on any key and change it according to your taste. - -![DOSBox keyboard and controller mapping][7] - -### Conclusion - -I hope you managed to run your favourite dos game after installing dosbox in Ubuntu and other distros. DOSBox is one of the coolest pieces of software you can use to run any program, such as [Turbo C][8] and others. - -If you have any trouble or questions, let me know in the comment box. - -Enjoy! - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/install-dosbox-ubuntu/ - -作者:[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/2023/02/DOSBox-first-time-run.jpg -[2]: https://www.dosbox.com/wiki/Dosbox.conf#Sections -[3]: https://archive.org/details/softwarelibrary_msdos_games?tab=collection -[4]: https://www.debugpoint.com/wp-content/uploads/2023/02/Keep-the-game-in-a-separate-folder.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/02/Running-the-game.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/02/Mario-playing-in-DOSBox-in-Ubuntu.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/02/DOSBOox-keyboard-and-controller-mapping.jpg -[8]: https://www.debugpoint.com/setting-up-dosbox-in-ubuntu-to-run-turbo-c/ From 25bc2d78c5db34dd781fdd5bc79dc599315e870b Mon Sep 17 00:00:00 2001 From: Xiaoting Huang <1912890545@qq.com> Date: Mon, 13 Feb 2023 22:26:27 +0800 Subject: [PATCH 2814/3123] Update and rename sources/talk/20220204 How we hired an open source developer.md to translated/talk/20220204 How we hired an open source developer.md translated by XiaotingHuang22. --- ...4 How we hired an open source developer.md | 104 ------------------ ...4 How we hired an open source developer.md | 103 +++++++++++++++++ 2 files changed, 103 insertions(+), 104 deletions(-) delete mode 100644 sources/talk/20220204 How we hired an open source developer.md create mode 100644 translated/talk/20220204 How we hired an open source developer.md diff --git a/sources/talk/20220204 How we hired an open source developer.md b/sources/talk/20220204 How we hired an open source developer.md deleted file mode 100644 index bfdefe20a0..0000000000 --- a/sources/talk/20220204 How we hired an open source developer.md +++ /dev/null @@ -1,104 +0,0 @@ -[#]: subject: "How we hired an open source developer" -[#]: via: "https://opensource.com/article/22/2/how-we-hired-open-source-developer" -[#]: author: "Mike Bursell https://opensource.com/users/mikecamel" -[#]: collector: "lujun9972" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How we hired an open source developer -====== -My team opted out of the standard algorithm coding exercise for a -process that yielded more relevant results. -![people in different locations who are part of the same team][1] - -As the CEO and co-founder of [Profian][2], a start-up security company, I've been part of our effort to hire developers to work on [Enarx][3], a security project that deals with confidential computing, written almost exclusively in [Rust][4] (with a bit of Assembly). Profian has now found all the people it was looking for in this search, with a couple of developers due to start in the next few weeks. However, new contributors are absolutely welcome to Enarx, and if things continue to go well, the company will definitely want to hire more folks in the future. - -Hiring people is not easy, and Profian had a set of specialized requirements that made the task even more difficult. I thought it would be useful and interesting for the community to share how we approached the problem. - -### What were we looking for? - -These are the specialized requirements I'm talking about: - - * **Systems programming:** Profian mainly needs people who are happy programming at the systems layer. This is pretty far down the stack, with lots of interactions directly with hardware or the OS. To create client-server pieces, for instance, we have to write quite a lot of the protocols, manage the crypto, and so forth, and the tools for this aren't all very mature (see "Rust" below). - - * **Rust:** Almost all of the project is written in Rust, and what isn't is written in Assembly language (currently exclusively x86, though that may change as we add more platforms). Rust is new, cool, and exciting, but it's still quite young, and some areas don't have all the support you might like or aren't as mature as you'd hope—everything from cryptography through multithreading libraries and compiler/build infrastructure. - - * **Distributed team:** Profian is building a team of folks where we can find them. Profian has developers in Germany, Finland, the Netherlands, North Carolina (US), Massachusetts (US), Virginia (US), and Georgia (US). I'm in the United Kingdom, our community manager is in Brazil, and we have interns in India and Nigeria. We knew from the beginning that we wouldn't have everyone in one place, and this required people who would be able to communicate and collaborate with people via video, chat, and (at worst) email. - - * **Security:** Enarx is a security project. Although we weren't specifically looking for security experts, we need people who can think and work with security top of mind and design and write code that is applicable and appropriate for the environment. - - * **Git:** All of our code is stored in git (mainly [GitHub][5], with a bit of GitLab thrown in). so much of our interaction around code revolves around git that anybody joining us would need to be very comfortable using it as a standard tool in their day-to-day work. - - * **Open source:** Open source isn't just a licence; it's a mindset and, equally important, a way of collaborating. A great deal of open source software is created by people who aren't geographically co-located and who might not even see themselves as a team. We needed to know that the people we hired, while gelling as a close team within the company, would be able to collaborate with people outside the organisation and embrace Profian's "open by default" culture, not just for code, but for discussions, communications, and documentation. - - - - -### How did we find them? - -As I've mentioned elsewhere, [recruiting is hard][6]. Profian used a variety of means to find candidates, with varying levels of success: - - * LinkedIn job adverts - * LinkedIn searches - * Language-specific discussion boards and hiring boards (e.g., Reddit) - * An external recruiter (shout out to Gerald at [Interstem][7]) - * Word-of-mouth/personal recommendations - - - -It's difficult to judge between these sources in terms of quality, but without an external recruiter, we'd certainly have struggled with quantity (and we had some great candidates from that pathway, too). - -### How did we select them? - -We needed to measure all of the candidates against all of the requirements noted above, but not all of them were equal. For instance, although we were keen to hire Rust programmers, someone with strong C/C++ skills at the systems level would be able to pick up Rust quickly enough to be useful. On the other hand, a good knowledge of using git was absolutely vital, as we couldn't spend time working with new team members to bring them up to speed on our way of working. - -A strong open source background was, possibly surprisingly, not a requirement, but the mindset to work in that sort of model was, and anyone with a history of open source involvement is likely to have a good knowledge of git. The same goes for the ability to work in a distributed team: So much of open source is distributed that involvement in almost any open source community was a positive indicator. Security, we decided, was a "nice-to-have" qualification. - -We wanted to keep the process simple and quick. Profian doesn't have a dedicated HR or People function, and we're busy trying to get code written. This is what we ended up with (with slight variations), and we tried to complete it within 1-2 weeks: - - 1. Initial CV/resume/GitHub/GitLab/LinkedIn review to decide whether to interview - 2. 30-40 minute discussion with me as CEO, to find out if they might be a good cultural fit, to give them a chance to find out about us, and to get an idea if they were as technically adept as they appeared in Step 1 - 3. Deep dive technical discussion led by Nathaniel, usually with me there - 4. Chat with other members of the team - 5. Coding exercise - 6. Quick decision (usually within 24 hours) - - - -The coding exercise was key, but we decided against the usual approach. Our view was that a pure "algorithm coding" exercise beloved by many tech companies was pretty much useless for what we wanted: to find out whether a candidate could quickly understand a piece of code, fix some problems, and work with the team to do so. We created a GitHub repository with some almost-working Rust code in it (in fact, we ended up using two, with one for people a little higher up the stack), then instructed candidates to fix it, perform some git-related processes on it, and improve it slightly, adding tests along the way. - -An essential part of the test was to get candidates to interact with the team via our chat room(s). We scheduled 15 minutes on a video call for setup and initial questions, two hours for the exercise ("open book" – as well as talking to the team, candidates were encouraged to use all resources available to them on the Internet), followed by a 30-minute wrap-up session where the team could ask questions, and the candidate could reflect on the task. This conversation, combined with the chat interactions during the exercise, allowed us to get an idea of how well the candidate was able to communicate with the team. Afterwards, the candidate would drop off the call, and we'd most often decide within 5-10 minutes whether we wanted to hire them. - -This method generally worked very well. Some candidates struggled with the task, some didn't communicate well, some failed to do well with the git interactions – these were the people we didn't hire. It doesn't mean they're not good coders or might not be a good fit for the project or the company later on, but they didn't meet the criteria we need now. Of the developers we hired, the level of Rust experience and need for interaction with the team varied, but the level of git expertise and their reactions to our discussions afterwards were always sufficient for us to decide to take them. - -### Reflections - -On the whole, I don't think we'd change a huge amount about the selection process—though I'm pretty sure we could do better with the search process. The route through to the coding exercise allowed us to filter out quite a few candidates, and the coding exercise did a great job of helping us pick the right people. Hopefully, everyone who's come through the process will be a great fit and produce great code (and tests and documentation and …) for the project. Time will tell! - -* * * - -This article originally appeared on [Alice, Eve and Bob – a security blog][8] and is republished with permission. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/2/how-we-hired-open-source-developer - -作者:[Mike Bursell][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/mikecamel -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/connection_people_team_collaboration.png?itok=0_vQT8xV (people in different locations who are part of the same team) -[2]: https://profian.com/ -[3]: https://enarx.dev/ -[4]: https://opensource.com/article/21/3/rust-programmer -[5]: https://github.com/enarx/ -[6]: https://aliceevebob.com/2021/11/09/recruiting-is-hard/ -[7]: https://www.interstem.co.uk/ -[8]: https://aliceevebob.com/ diff --git a/translated/talk/20220204 How we hired an open source developer.md b/translated/talk/20220204 How we hired an open source developer.md new file mode 100644 index 0000000000..c63ba8ad9a --- /dev/null +++ b/translated/talk/20220204 How we hired an open source developer.md @@ -0,0 +1,103 @@ +[#]: subject: "How we hired an open source developer" +[#]: via: "https://opensource.com/article/22/2/how-we-hired-open-source-developer" +[#]: author: "Mike Bursell https://opensource.com/users/mikecamel" +[#]: collector: "lujun9972" +[#]: translator: "XiaotingHuang22" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我们如何聘请开源开发人员 +====== +我的团队不再采用标准的算法编程练习,而是采用一套能够产出更多相关成果的流程。 +![同一团队里来自不同地方的人][1] + +作为初创安全公司 [Profian][2] 的首席执行官和联合创始人,我参与了我们聘请开发人员从事 [Enarx][3] 的工作。Enarx是一个处理机密信息计算的安全项目,几乎完全用 [Rust语言][4] 编写(少部分用Assembly)。 Profian 现在已经在这次招聘找到了所有要找的人,一些开发人员将在接下来的几周内开始工作。然而,Enarx 绝对欢迎新的贡献者,如果事情继续顺利,公司将来肯定会雇用更多的人。 + +招聘人员并不容易,加上Profian还有一系列特别的要求,这让招人变得更加困难。因此我认为分享我们如何解决这个问题应该还蛮有意思的,而且也会对社区有帮助。 + +### 我们寻找什么样的人才? + +以下就是我前文提到的特别要求: + +* **系统编程:** Profian主要需要那些喜欢系统层编程的人。这一层面的编程已经处于栈的底层,有很多直接与硬件或操作系统的交互。例如,要创建客户端-服务器部分,我们必须编写相当多的协议、管理加密等等,而这方面的工具还不是很成熟(请参阅下面的“Rust”)。 + +* * **Rust:** 几乎所有项目都是用 Rust 语言编写的,那些不是的则是用Assembly写的(目前只有 x86,尽管随着我们添加更多平台情况可能会有所改变)。 Rust是一门很新、很酷同时也令人兴奋的编程语言,但它同时也很年轻,并且一些领域没有你想要的所有支持或者没有你希望的那么成熟——从多线程库的密码学到编译器/构建基本架构。 + +* **分散各地的团队:** Profian正在建立一个能够及时通讯联系的团队。 Profian 在德国、芬兰、荷兰、北卡罗来纳州(美国)、马萨诸塞州(美国)、弗吉尼亚州(美国)和乔治亚州(美国)都有开发人员。我在英国,我们的社区经理在巴西,我们有来自印度和尼日利亚的实习生。从一开始我们就知道团队很难聚集在一个地方工作,因此我们需要能够通过视频、聊天和(最不济的情况下)电子邮件与人交流和协作的成员。 + +* * **安全:** Enarx 是一个安全项目。虽然我们并不是在寻找安全专家,但我们需要能够将安全放在首位去思考和工作,并设计和编写适用于安全环境的代码的人。 + +* * **Git:** 我们所有的代码都存储在 git 中(主要是 [GitHub][5],还有一些存在 GitLab)。我们围绕代码的大部分交互都是围绕git进行的,因此任何加入我们团队的人都需要能自如使用它作为日常工作中的标准工具。 + +* **开源:** 开源不仅仅是许可;更是一种心态,同等重要的,这也是一种合作方式。大量开源软件是由不同地域的人创建的,他们甚至可能不认为彼此身处于一个团队。我们需要知道我们招的人不仅能在公司内部凝聚成一个紧密的团队,同时也能够与组织外部的人员协作,并接受 Profian 的“默认开放”文化,这里的开放不仅仅限于代码,还要有开放的讨论、沟通和文档。 + + + +### 我们是如何找到人才的? + +正如我在其他地方提到的,[招聘很困难][6]。Profian 使用多种方式寻找候选人,它们取得了不同程度的成功: + + * 领英招聘广告 + * 领英搜索 + * 特定语言的讨论板和招聘板(例如,Reddit) + * 外部招募人员(特别致敬来自[Interstem][7]公司的Gerald) + * 口口相传/个人推荐 + + + +虽然很难从质量方面判断这些来源如何,但如果没有外部招聘人员,我们肯定会在数量上苦苦挣扎(我们也有一些来自该途径的优秀候选人)。 + +### 我们如何筛选出想要的人才? + +我们需要按照上述的所有要求衡量所有候选人,但并非所有要求都是同等重要的。例如,虽然我们热衷于雇用 Rust 程序员,但那些在系统级别具有强大 C/C++ 技能的人也能成为团队里有用的一份子,因为她们能够很快掌握 Rust 语言。另一方面,熟悉使用 git 是至关重要的,因为我们无法花时间去培养新团队成员,让他们跟上我们的工作方式。 + +你可能会觉得很惊讶,但强大的开源背景并不是必需的要求,但在类似模式中工作的心态是必需的,而任何有开源参与历史的人都可能对 git 有很好的了解。同理,在一个分散各地的团队中工作的能力这一条件上,我们认为有过任意开源社区的参与经历都会是个积极的指标,因为有如此多的开源项目都是由分散各地的人们完成的。至于安全这一条件,我们则一致决定只是一个“锦上添花”的条件。 + +我们想让这个过程简单快捷。 Profian没有设置专门的人力资源部门或人力职能,因为我们正忙于编写代码。以下是我们最终使用的招聘流程(实际流程中可能略有不同),我们试图在 1-2 周内完成招聘: + + 1. 初审:个人履历/简历/GitHub/GitLab/领英主页,决定是否面试 + 2. 我作为CEO和候选人进行一场30-40分钟的讨论,了解他们是否适合我们团队的文化,同时让他们有机会了解我们,并了解他们是否真的像在初审提交的材料中所说的那样精通技术 + 3. 由 Nathaniel 领导的有关技术方面的深入讨论,通常我也在场 + 4. 与团队其他成员谈话 + 5. 编码练习题 + 6. 快速决策(通常在24小时内) + + + +编码练习题很关键,但我们决定不采用通常的方法。 我们的观点是,许多科技公司钟爱的纯“算法编码”练习对我们想要的几乎毫无用处:考察候选人是否可以快速理解一段代码,解决一些问题,并与团队合作完成以上的工作。我们创建了一个 GitHub 存储库,其中包含一些几乎可以正常运行的 Rust 代码(事实上,我们最终使用了两个,其中一个用于技术栈上层的人),然后让候选人修复它,在上面执行一些与 git 相关的过程,并稍作改进,在此过程中添加测试。 + +测试中一个必不可少的部分是让候选人通过我们的聊天室与团队互动。我们安排了 15 分钟的视频通话时间用于设置和初始问题,两个小时用于做习题(“开卷”——以及与团队交谈,鼓励候选人使用互联网上所有可用的资源),然后是 30 分钟的总结会议,在这个会议上团队可以提出问题,候选人可以反思任务。这次谈话,结合练习期间的聊天互动,让我们了解了候选人与团队沟通的能力。候选人挂断电话之后我们通常会在5-10分钟内决定是否要雇用他们。 + +这种方法通常效果很好。一些候选人在任务上遇到困难,一些人沟通不畅,一些人在git交互方面做得不好——这些是我们没有雇用的人。 这并不意味着他们不是优秀的程序员或者不适合未来的项目或公司,但他们不符合我们现在需要的标准。在我们聘用的开发人员中,他们的Rust经验水平和与团队互动的需求各不相同,但git专业知识水平以及他们在和我们讨论之后的反应始终足以让我们决定接受他们。 + + +### 反思 + +总的来说,我认为我们不会对筛选过程进行大量更改——尽管我很确定我们可以在搜寻过程环节做得更好。通过编码习题测试,我们可以筛选掉相当多的候选人,而且很好地帮了我们挑选合适的人。希望通过了这次选拔的每个人都很适合这个项目并且产出出色的代码(以及测试和文档等等)。时间会证明一切! + +* * * + +本文最初出现在 [Alice、Eve 和 Bob – 安全博客][8] 上,经许可后重新发布。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/2/how-we-hired-open-source-developer + +作者:[Mike Bursell][a] +选题:[lujun9972][b] +译者:[XiaotingHuang22](https://github.com/XiaotingHuang22) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/mikecamel +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/connection_people_team_collaboration.png?itok=0_vQT8xV (people in different locations who are part of the same team) +[2]: https://profian.com/ +[3]: https://enarx.dev/ +[4]: https://opensource.com/article/21/3/rust-programmer +[5]: https://github.com/enarx/ +[6]: https://aliceevebob.com/2021/11/09/recruiting-is-hard/ +[7]: https://www.interstem.co.uk/ +[8]: https://aliceevebob.com/ From 7be64af5c91595fc1cc922f51d21e5773fe80d15 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 14 Feb 2023 08:49:26 +0800 Subject: [PATCH 2815/3123] translated --- ...ry OS 7 Installation Guide with Screenshots.md | 117 ------------- ...ry OS 7 Installation Guide with Screenshots.md | 157 ++++++++++++++++++ 2 files changed, 157 insertions(+), 117 deletions(-) delete mode 100644 sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md create mode 100644 translated/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md diff --git a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md deleted file mode 100644 index 6757bebe6f..0000000000 --- a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md +++ /dev/null @@ -1,117 +0,0 @@ -[#]: subject: "Elementary OS 7 Installation Guide with Screenshots" -[#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/" -[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Elementary OS 7 Installation Guide with Screenshots -====== - -Hello techies, in this post, we will cover how to Install Elementary OS 7 step by step with screenshots on laptop or desktop. It is based on latest and stable Ubuntu 22.04 LTS. - -Elementary OS 7 with code name “Horus” released with lot of improvements like : - -- Improved AppCenter and install all application that one need. -- Improved sideloading and alt store (Flathub) experience -- Latest GNOME Web 43 support for creating web apps. -- Getting OS and Applicate Updates quickly -- Power Profile Management -- Improvement in App Description - -##### System Requirements for Elementary OS 7 - -- Dual Core 64-bit processor -- 4 GB RAM or more -- 32 GB hard disk -- Internet Access -- Bootable USB Flash Drive ( 4 GB Storage) - -Without any further delay, let’s jump into the installation steps - -### 1) Download Elementary OS 7 - -Use below official URL to download ISO file, - -- Download Elementary OS 7 ISO - -Once ISO file is downloaded then burn it into USB flash drive and make it bootable. - -On Windows operating use “Rufus” software to make bootable USB drive using ISO file. In Linux, refer the following URL: - -- How to Create Bootable USB Drive on Ubuntu / Linux Mint - -### 2) Boot the system with bootable media - -Now boot the target system with bootable USB drive. From bios settings change the boot medium from hard disk to USB. When the system boots up with USB drive then we will get the following screen, - -### 3) Select Language for Installation - -Choose your preferred language and then click select, - -### 4) Choose Keyboard Layout - -In this step, you will be requested to choose keyboard layout and then click on ‘Select’ - -### 5) Try or Install elementary OS - -We will be presented the beneath screen, where we must our choose installation type. It gives us following options, - -- Try Demo Mode – Try Elementary OS 7 without installing -- Erase disk and Install – Installer will erase the whole disk and will create required partitions automatically. -- Custom Install (Advanced) – It will give us the option to create custom partitions. - -In this post, I will go with the 2nd option (Erase disk and install). - -Click on “Erase Disk and Install” - -In the following screen, select the drive on which OS will be installed and then click on “Erase and Install” - -If you want to encrypt the device’s drive, then click on “Choose Password” else click on “Don’t Encrypt”. - -### 6) Installation Progress - -As we can see below, installation got started and is in progress. - -Once the installation is completed, installer will prompt to reboot the system. - -Click on “Restart Device” and don’t forget to change boot medium from bios settings so that it boots up with the disk. - -### 7) Create Local User and Set Hostname - -When the system boots up after the installation, you will be prompted to enter local user details and hostname of your system. - -Specify the details as per your requirement, - -Click on “Finish Setup”. - -In the following screen, you will be prompted to enter your local user credentials that you have created above, - -After entering the credentials, hit enter - -### 8) Elementary OS 7 Welcome Screen - -We will get the beneath welcome screen, - -Choose “Skip All” - -Click “Get Started” and then we will get following desktop screen, - -Great, it confirms that you have successfully installed Elementary OS 7 on your system. That’s all from this guide, explore this exciting Linux distribution and have fun 😊. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/elementary-os-7-installation-guide/ - -作者:[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 - diff --git a/translated/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md b/translated/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md new file mode 100644 index 0000000000..e8f7d012c5 --- /dev/null +++ b/translated/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md @@ -0,0 +1,157 @@ +[#]: subject: "Elementary OS 7 Installation Guide with Screenshots" +[#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Elementary OS 7 安装指南及截图 +====== + +你好,技术人员,在这篇文章中,我们将介绍如何在笔记本电脑或台式机上一步一步地安装 Elementary OS 7,并附有截图。它是基于最新和稳定的 Ubuntu 22.04 LTS。 + +Elementary OS 7 的代号为 “Horus”,并带来了很多改进,例如: + +- 改进了 AppCenter 和安装所有需要的应用。 +- 改进了 Sideload 和可选商店 (Flathub) 的体验。 +- 最新的 GNOME Web 43,支持创建网络应用。 +- 快速获得操作系统和应用的更新 +- 电源配置文件管理 +- 应用描述的改进 + +##### Elementary OS 7 的系统要求 + +- 双核 64 位处理器 +- 4GB 内存或更多 +- 32GB 硬盘 +- 互联网接入 +- 可启动的 USB 驱动器(4GB 存储空间) + +闲话少说,让我们进入安装步骤 + +### 1)下载 Elementary OS 7 + +使用下面的官方网址来下载 ISO 文件。 + +- [下载 Elementary OS 7 ISO][1] + +ISO 文件下载完成后,将其刻录到 USB 驱动器,并使其可启动。 + +在 Windows 操作系统中,用 “Rufus” 制作可启动的 USB 驱动器。在 Linux 中,请参考以下网址: + +- [如何在 Ubuntu/Linux Mint 上创建可启动的 USB 驱动器][2] + +### 2)用可启动媒体启动系统 + +现在用可启动的 USB 驱动器启动目标系统。从 bios 设置中把启动介质从硬盘改为 USB。当系统用 USB 驱动器启动时,我们将看到以下页面。 + +![][3] + +### 3)选择安装语言 + +选择你喜欢的语言,然后点击“选择”。 + +![][4] + +### 4)选择键盘布局 + +在这一步,你将被要求选择键盘布局,然后点击“选择”。 + +![][5] + +### 5) 尝试或安装 elementary OS + +我们将看到下面的页面,在这里我们必须选择安装类型。它给了我们以下选项: + +- 试用演示模式 – 试用 Elementary OS 7 而不安装 +- 擦除磁盘并安装 – 安装程序将擦除整个磁盘并自动创建所需分区。 +- 自定义安装(高级)– 它将给我们一个选项来创建自定义分区。 + +在这篇文章中,我将使用第二个选项(擦除磁盘并安装)。 + +![][6] + +点击“擦除磁盘并安装”。 + +在下面的屏幕上,选择要安装操作系统的驱动器,然后点击“擦除并安装”。 + +![][7] + +如果你想对设备的驱动器进行加密,那么点击“选择密码”,否则点击“不加密”。 + +![][8] + +### 6)安装进度 + +正如我们在下面看到的,安装已经开始,并且正在进行中。 + +![][9] + +安装完成后,安装程序将提示重启系统。 + +![][10] + +点击“重启设备”,不要忘记从 bios 设置中改变启动介质,以便用磁盘启动。 + +### 7)创建本地用户并设置主机名 + +当系统在安装后启动时,系统会提示你输入本地用户的详细信息和系统的主机名。 + +根据你的要求指定这些细节。 + +![][11] + +点击“完成设置”。 + +在下面的页面中,你将被提示输入你在上面创建的本地用户凭证。 + +![][12] + +输入凭证后,点击回车。 + +### 8)Elementary OS 7 欢迎页 + +我们将看到下面的欢迎页。 + +![][13] + +选择“跳过所有”。 + +![][14] + +点击“开始使用”,然后我们会看到下面的桌面。 + +![][15] + +很好,这表明你已经成功地在系统上安装了 Elementary OS 7。这就是本指南的全部内容,请探索这个令人兴奋的 Linux 发行版并享受其中的乐趣吧😊。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/elementary-os-7-installation-guide/ + +作者:[Pradeep Kumar][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed +[1]: https://elementary.io/ +[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/ +[3]: https://www.linuxtechi.com/wp-content/uploads/2023/02/BootScreen-elementaryOS7.png?ezimgfmt=ng:webp/ngcb22 +[4]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Keyboard-Layout-ElementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22 +[5]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Keyboard-Layout-ElementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22 +[6]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Installation-Type-ElementaryOS7.png?ezimgfmt=ngcb22/notWebP +[7]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Select-Drive-for-elementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22 +[8]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Encryption-Drive-ElementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22 +[9]: https://www.linuxtechi.com/wp-content/uploads/2023/02/ElementaryOS7-Installation-Progress.png?ezimgfmt=ng:webp/ngcb22 +[10]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Restart-Device-After-elementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22 +[11]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Create-Local-Account-ElementaryOS7.png?ezimgfmt=ng:webp/ngcb22 +[12]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Login-screen-elementaryos7.png?ezimgfmt=ng:webp/ngcb22 +[13]: https://www.linuxtechi.com/wp-content/uploads/2023/02/ElementaryOS7-Welcome-Screen.png?ezimgfmt=ng:webp/ngcb22 +[14]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Get-Started-ElementaryOS7.png?ezimgfmt=ng:webp/ngcb22 +[15]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Desktop-Screen-ElementaryOS7-After-Installation.png \ No newline at end of file From 6b322b02d5f446e7dba3f3d73da0929679e18775 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 14 Feb 2023 08:55:22 +0800 Subject: [PATCH 2816/3123] translating --- ...ing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md b/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md index 45b626bd9d..9e5294515c 100644 --- a/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md +++ b/sources/tech/20221118.0 ⭐️⭐️ Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/key-is-stored-in-legacy-trusted-gpg/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 62e63ca65c982bac71b400eaddb222bca5f9ec1f Mon Sep 17 00:00:00 2001 From: Xiaoting Huang <1912890545@qq.com> Date: Tue, 14 Feb 2023 12:42:42 +0800 Subject: [PATCH 2817/3123] Update 20220616 -It-s time to contribute to open source-.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译任务申领 --- .../talk/20220616 -It-s time to contribute to open source-.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220616 -It-s time to contribute to open source-.md b/sources/talk/20220616 -It-s time to contribute to open source-.md index 9d4e58d4d6..be8175978d 100644 --- a/sources/talk/20220616 -It-s time to contribute to open source-.md +++ b/sources/talk/20220616 -It-s time to contribute to open source-.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/06/its-time-to-contributing-to-open-source/" [#]: author: "Abbinaya Kuzhanthaivel https://www.opensourceforu.com/author/abbinaya-swath/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "XiaotingHuang22" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From cd0c7cb2341e36a275a3526229e00aa1e1a2af10 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 14 Feb 2023 14:29:05 +0800 Subject: [PATCH 2818/3123] RP @gpchn https://linux.cn/article-15538-1.html --- ... Install DOSBox in Ubuntu to Play Old Games.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) rename {translated/tech => published}/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md (65%) diff --git a/translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md b/published/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md similarity index 65% rename from translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md rename to published/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md index 91629ca867..d0defcde55 100644 --- a/translated/tech/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md +++ b/published/20230210.4 ⭐️ How to Install DOSBox in Ubuntu to Play Old Games.md @@ -3,20 +3,22 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "gpchn" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15538-1.html" 如何在 Ubuntu 中安装 DOSBox 玩老游戏 ====== -**了解如何在 Ubuntu 中安装 DOSBox,并配置它来玩旧的 DOS 游戏。** +![][0] -DOSBox 是一个免费的开源操作系统模拟器,可以在现代 Linux 系统中运行。它有几个组件可以模仿旧的硬件,以运行旧程序和游戏。 +> 了解如何在 Ubuntu 中安装 DOSBox,并配置它来玩旧式 DOS 游戏。 + +DOSBox 是一个自由开源的操作系统模拟器,可以在现代 Linux 系统中运行。它有几个组件可以模仿旧的硬件,以运行旧的程序和游戏。 这一切使得在现代 Linux 发行版中享受旧游戏和应用程序成为可能。 -在本指南中,我将向您展示如何安装 DOSBox,配置它,并玩一个示例游戏。 +在本指南中,我将向你展示如何安装 DOSBox,配置它,并玩一个示例游戏。 ### 在 Ubuntu 中安装 DOSBox @@ -40,7 +42,7 @@ sudo dnf install dosbox pacman -S --needed dosbox ``` -这将结束安装。现在是配置和运行的时候了。 +安装就结束了。现在是配置和运行的时候了。 ### 运行 DOSBox @@ -50,19 +52,19 @@ pacman -S --needed dosbox dosbox ``` -它将显示以下界面,这是 DOSBox 提示。第一次运行非常重要,因为它会创建 DOSBox 配置文件。 +它将显示以下界面,这是 DOSBox 提示符。第一次运行非常重要,因为它会创建 DOSBox 配置文件。 键入 `exit` 暂时关闭 DOSBox。 ![DOSBox first time run][1] -配置文件为您提供了几个调整设置的选项。在 Ubuntu 中,该文件创建在 `~/.dosbox/dosbox-[version].conf`。 +配置文件为你提供了几个调整设置的选项。在 Ubuntu 中,该文件创建在 `~/.dosbox/dosbox-[version].conf`。 在 Fedora 中,它从以下路径加载临时配置文件 `~/.config/dosbox/dosbox-staging.conf`. -默认情况下,您可以使用默认配置。但是如果您愿意,您可以修改它。 +默认情况下,你可以使用默认配置。但是如果你愿意,你可以修改它。 -例如,如果您想全屏启动 DOSBox,您可以启用或禁用相关设置。像这样: +例如,如果你想全屏启动 DOSBox,你可以启用或禁用相关设置。像这样: ``` fullscreen=false @@ -75,25 +77,26 @@ sensitivity=100 waitonerror=true ``` -您可以在官方文档中找到所有的设置选项 [documentation][2]. +你可以在 [官方文档][2] 中找到所有的设置选项。 ### 下载以及游玩老游戏 有许多网站提供旧的 DOS 游戏。我使用过下面的网站,它提供了一套可以在现代系统中玩的老游戏。 -所以,访问下面的网站,下载您想要的任何游戏。 +所以,访问下面的网站,下载你想要的任何游戏。 -[下载 DOS 游戏][3] +> **[下载 DOS 游戏][3]** -在您的 /home 目录下创建一个文件夹,并将其命名为 dosbox: +在你的 `/home` 目录下创建一个文件夹,并将其命名为 `dosbox`: ``` -cd ~mkdir dosbox +cd ~ +mkdir dosbox ``` -现在,解压您下载的游戏(应该是一个 .exe 文件),在 `~/dosbox` 目录下创建一个单独的文件夹。 +现在,解压你下载的游戏(应该是一个 .exe 文件),在 `~/dosbox` 目录下创建一个单独的文件夹。 -例如,我下载了游戏 “马里奥和路易吉(1994)”。我在 “dosbox” 文件夹中创建了一个名为 “mario” 的文件夹,并将游戏文件放进去。 +例如,我下载了游戏 “马里奥和路易吉(1994)”。我在 `dosbox` 文件夹中创建了一个名为 `mario` 的文件夹,并将游戏文件放进去。 ![Keep the game in a separate folder][4] @@ -115,7 +118,7 @@ mount c ~/dosbox/mario c: ``` -现在,您可以输入游戏的文件名来运行游戏: +现在,你可以输入游戏的文件名来运行游戏: ``` mario @@ -127,21 +130,21 @@ mario ### 键盘或控制器映射 -默认情况下,DOSBox 会自动检测键盘或您插入的控制器。但是,如果您想更改游戏按键绑定,可以从终端运行以下命令: +默认情况下,DOSBox 会自动检测键盘或你插入的控制器。但是,如果你想更改游戏按键绑定,可以从终端运行以下命令: ``` dosbox -startmapper ``` -它将显示以下界面,每个键上都标记有事件。您可以点开任何一个键,根据自己的习惯进行更改。 +它将显示以下界面,每个键上都标记有事件。你可以点开任何一个键,根据自己的习惯进行更改。 ![DOSBox keyboard and controller mapping][7] ### 结论 -我希望您在 Ubuntu 和其他发行版中安装了 DOSBox 之后,能够运行您最喜欢的 DOS 游戏。DOSBox 是最酷的软件之一,您可以使用它来运行任何程序,例如 [Turbo C][8] 等。 +我希望你在 Ubuntu 和其他发行版中安装了 DOSBox 之后,能够运行你最喜欢的 DOS 游戏。DOSBox 是最酷的软件之一,你可以使用它来运行任何程序,例如 [Turbo C][8] 等。 -如果您有任何麻烦或问题,请在评论区告诉我。 +如果你有任何麻烦或问题,请在评论区告诉我。 享受游戏吧! @@ -152,7 +155,7 @@ via: https://www.debugpoint.com/install-dosbox-ubuntu/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[gpchn](https://github.com/gpchn) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -166,3 +169,4 @@ via: https://www.debugpoint.com/install-dosbox-ubuntu/ [6]: https://www.debugpoint.com/wp-content/uploads/2023/02/Mario-playing-in-DOSBox-in-Ubuntu.jpg [7]: https://www.debugpoint.com/wp-content/uploads/2023/02/DOSBOox-keyboard-and-controller-mapping.jpg [8]: https://www.debugpoint.com/setting-up-dosbox-in-ubuntu-to-run-turbo-c/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/14/142608nsoov2vory2nipiv.jpg \ No newline at end of file From 0f040d20a0f209cb17c2f12c34a65950a43e6c64 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 14 Feb 2023 14:49:51 +0800 Subject: [PATCH 2819/3123] RP @Chao-zhi https://linux.cn/article-15539-1.html --- ...️ Learn zip Command in Linux Using Examples.md | 59 ++++++++++--------- 1 file changed, 30 insertions(+), 29 deletions(-) rename {translated/tech => published}/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md (67%) diff --git a/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/published/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md similarity index 67% rename from translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md rename to published/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md index 20ac21e44f..6d04f8d7d8 100644 --- a/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md +++ b/published/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -3,50 +3,52 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15539-1.html" -通过实例学习Linux中的zip命令 +zip 命令的解释与示例 ====== -**这里是关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。** +> 这是一份关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。 ![][1] +这篇文章是 [Linux 命令][4]学习系列的一部分。 + zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。 -这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩文件的软件,也提供提取它们的功能。 +这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩 zip 文件的软件,也提供提取它们的功能。 由于它很流行,几乎所有的操作系统都内置了这个功能。 在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。 -### Linux 中的 Zip 命令,例子: +### Linux 中的 Zip 命令示例 #### 语法 -在 Linux 中,你需要使用的压缩文件的程序名称是`zip`。下面是基本的语法。 +在 Linux 中,你需要使用的压缩文件的程序名称是 `zip`。下面是基本的语法: -``` sh +``` zip [压缩文件名] file1 file2 file3 ``` -这里是官方的语法。 +以下是正式的语法: -``` sh +``` zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] ``` -理想情况下,zip 命令应该被安装在所有主要的 Linux 发行版中。如果没有,使用下面的命令来安装它。 +理想情况下,`zip` 命令应该被安装在所有主流的 Linux 发行版中。如果没有,使用下面的命令来安装它。 -#### 在 Debian, Ubuntu and 相关发行版上安装 +#### 在 Debian、Ubuntu 和相关发行版上安装 ``` sudo apt install zip ``` -#### 在 Fedora, 基于 RHEL 的系统上安装 +#### 在 Fedora、基于 RHEL 的系统上安装 ``` sudo dnf install zip @@ -58,17 +60,17 @@ sudo dnf install zip pacman -S zip ``` -让我们继续看一些例子 +让我们继续看一些例子。 #### 如何压缩文件和文件夹 -我的测试目录中有以下三个文件。它们是 file1.txt、file2.txt 和 file3.txt。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip 的压缩包,用下面的命令就可以了。 +我的测试目录中有以下三个文件。它们是 `file1.txt`、`file2.txt` 和 `file3.txt`。如果我想用 zip 压缩三个文件,并创建一个 `myfiles.zip` 的压缩包,用下面的命令就可以了。 ``` zip myfiles.zip file1.txt file2.txt file3.mp3 ``` -输出。 +输出: ``` adding: file1.txt (stored 0%) @@ -81,12 +83,12 @@ adding: file3.mp3 (deflated 13%) 这里你应该记住几个要点。 - 当创建一个 zip 文件时,你应该有对当前目录的修改权限。 -- zip 文件格式不包含权限,即读(4),写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。 -- 如果你想使用有权限的 zip,可以尝试使用 `tar` 命令(将在后面的教程中解释)。 +- zip 文件格式不包含权限,即读(4)、写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。 +- 如果你想使用带有权限的 zip,可以尝试使用 `tar` 命令(将在后面的教程中解释)。 - 在上面的输出中,`zip` 命令显示了被添加到存档中的文件名和压缩方法。 - 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,`zip` 会在最后加上 .zip。 -当你有成百上千的文件在运行时,可以在终端中减少输出。你可以使用 `-q` 参数来抑制 `zip` 命令中的输出。 +当你操作成百上千的文件时,为了减少终端中的输出,你可以使用 `-q` 参数来抑制 `zip` 命令中的输出: ``` zip -q myfiles.zip file1.txt file2.txt file3.txt @@ -96,13 +98,13 @@ zip -q myfiles.zip file1.txt file2.txt file3.txt `zip` 命令的 `-r` 选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。 -下面的命令创建了一个包含 my_folder 内所有内容和子目录的压缩文件。 +下面的命令创建了一个包含 `my_folder` 内所有内容和子目录的压缩文件: ``` zip -r myfolder.zip my_folder ``` -你也可以使用通配符(*)在你的压缩文件中包含特定类型的文件。 +你也可以使用通配符(`*`)在你的压缩文件中包含特定类型的文件: ``` zip -0 my_movies.zip *.mp4 @@ -118,9 +120,9 @@ zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 ### 压缩算法 -zip 压缩的默认输出包含两个不同的词,即 deflate 和 store。zip 默认使用的压缩方法是 deflate。如果它成功地压缩了文件,那么输出显示 deflate。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 store。 +zip 压缩的默认输出包含两个不同的词,即 `deflate` 和 `store`。zip 默认使用的压缩方法是 `deflate`。如果它成功地压缩了文件,那么输出显示 `deflate`。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 `store`。 -目前有许多压缩算法。其中一种是 bzip2 压缩法,它在 Linux 中被 `zip` 命令所支持。你可以指定压缩算法作为一个命令选项来使用。使用选项 `-Z`,后面跟上算法名称,如下所示。 +目前有许多压缩算法。其中一种是 bzip2 压缩法,在 Linux 中的 `zip` 命令支持它。你可以指定压缩算法作为一个命令选项来使用。使用选项 `-Z`,后面跟上算法名称,如下所示: ``` zip -r -Z bzip2 myfolder.zip my_folder @@ -138,7 +140,7 @@ zip -9 -r myfolder.zip my_folder #### 用密码保护一个压缩文件 -你也可以用下面的 `-e` 选项对压缩文件进行密码保护。 +你也可以用下面的 `-e` 选项对压缩文件进行密码保护: ``` zip -e -r myfolder.zip my_folder @@ -146,7 +148,7 @@ zip -e -r myfolder.zip my_folder 运行该命令后,它将要求输入密码。 -> 注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流密码的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。 +> 注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。 #### 分割较大的压缩文件 @@ -160,9 +162,8 @@ zip -s 1g -r myfolder.zip my_folder 你学到了一些 `zip` 命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。 -同时,你可以在 [zip 手册][3]中了解更多。 +同时,你可以在 [zip 手册][3] 中了解更多。 -_这篇文章是 [Linux 命令][4]学习系列的一部分。_ -------------------------------------------------------------------------------- @@ -171,7 +172,7 @@ via: https://www.debugpoint.com/zip-command-linux-examples/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[Chao-zhi](https://github.com/Chao-zhi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 4a80be24fb7ccee8b573380d28c3a25f01c77732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 14 Feb 2023 20:08:12 +0800 Subject: [PATCH 2820/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230213.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Learn=20Expect=20by=20writing=20and=20automating=20a=20simple?= =?UTF-8?q?=20game.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Expect by writing and automating a simple game.md | 251 ++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 sources/tech/20230213.0 ⭐️⭐️ Learn Expect by writing and automating a simple game.md diff --git a/sources/tech/20230213.0 ⭐️⭐️ Learn Expect by writing and automating a simple game.md b/sources/tech/20230213.0 ⭐️⭐️ Learn Expect by writing and automating a simple game.md new file mode 100644 index 0000000000..362c2ac6c8 --- /dev/null +++ b/sources/tech/20230213.0 ⭐️⭐️ Learn Expect by writing and automating a simple game.md @@ -0,0 +1,251 @@ +[#]: subject: "Learn Expect by writing and automating a simple game" +[#]: via: "https://opensource.com/article/23/2/learn-expect-automate-simple-game" +[#]: author: "James Farrell https://opensource.com/users/jamesf" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Expect by writing and automating a simple game +====== + +While trying to automate my workflow, I hit upon a configuration utility that defied meaningful automation. It was a Java process that didn't support a silent installer, or support `stdin`, and had an inconsistent set of prompts. Ansible's `expect` module was inadequate for this task. But I found that the `expect` command was just the tool for the job. + +My journey to learn Expect meant [learning a bit of Tcl][1]. Now that I have the background to create simple programs, I can better learn to program in Expect. I thought it would be fun to write an article that demonstrates the cool functionality of this venerable utility. + +This article goes beyond the typical simple game format. I plan to use parts of Expect to create the game itself. Then I demonstrate the real power of Expect with a separate script to automate playing the game. + +This programming exercise shows several classic programming examples of variables, input, output, conditional evaluation, and loops. + +### Install Expect + +For Linux based systems use: + +``` +$ sudo dnf install expect +$ which expect +/bin/expect +``` + +I found that my version of Expect was included in the base operating system of macOS: + +``` +$ which expect +/usr/bin/expect +``` + +On macOS, you can also load a slightly newer version using brew: + +``` +$ brew install expect +$ which expect +/usr/local/bin/expect +``` + +### Guess the number in Expect + +The number guessing game using Expect is not that different from the base Tcl I used in my [previous article][1]. + +All things in Tcl are strings, including variable values. Code lines are best contained by curly braces (Instead of trying to use line continuation). Square brackets are used for command substitution. Command substitution is useful for deriving values from other functions. It can be used directly as input where needed. You can see all of this in the subsequent script. + +Create a new game file `numgame.exp`, set it to be executable, and then enter the script below: + +``` +#!/usr/bin/expect + +proc used_time {start} { + return [expr [clock seconds] - $start] +} + +set num [expr round(rand()*100)] +set starttime [clock seconds] +set guess -1 +set count 0 + +send "Guess a number between 1 and 100\n" + +while { $guess != $num } { + incr count + send "==> " + + expect { + -re "^(\[0-9]+)\n" { + send "Read in: $expect_out(1,string)\n" + set guess $expect_out(1,string) + } + + -re "^(.*)\n" { + send "Invalid entry: $expect_out(1,string) " + } + } + + if { $guess < $num } { + send "Too small, try again\n" + } elseif { $guess > $num } { + send "Too large, try again\n" + } else { + send "That's right!\n" + } +} + +set used [used_time $starttime] + +send "You guessed value $num after $count tries and $used elapsed seconds\n" +``` + +Using `proc` sets up a function (or procedure) definition. This consists of the name of the function, followed by a list containing the parameters (1 parameter `{start}`) and then followed by the function body. The return statement shows a good example of nested Tcl command substitution. The `set` statements define variables. The first two use command substitution to store a random number and the current system time in seconds. + +The `while` loop and if-elseif-else logic should be familiar. Note again the particular placement of the curly braces to help group multiple command strings together without needing line continuation. + +The big difference you see here (from the previous Tcl program) is the use of the functions `expect` and `send` rather than using `puts` and `gets`. Using `expect` and `send` form the core of Expect program automation. In this case, you use these functions to automate a human at a terminal. Later you can automate a real program. Using the `send` command in this context isn't much more than printing information to screen. The `expect` command is a bit more complex. + +The `expect` command can take a few different forms depending on the complexity of your processing needs. The typical use consists of one of more pattern-action pairs such as: + +``` +expect "pattern1" {action1} "pattern2" {action2} +``` + +More complex needs can place multiple pattern action pairs within curly braces optionally prefixed with options that alter the processing logic. The form I used above encapsulates multiple pattern-action pairs. It uses the option `-re` to apply regex processing (instead of glob processing) to the pattern. It follows this with curly braces encapsulating one or more statements to execute. I've defined two patterns above. The first is Is intended to match a string of 1 or more numbers: + +``` +"^(\[0-9]+)\n" +``` + +The second pattern is designed to match anything else that is not a string of numbers: + +``` +"^(.*)\n" +``` + +Take note that this use of `expect` is executed repeatedly from within a `while` statement. This is a perfectly valid approach to reading multiple entries. In the automation, I show a slight variation of Expect that does the iteration for you. + +Finally, the `$expect_out` variable is an array used by `expect` to hold the results of its processing. In this case, the variable `$expect_out(1,string)` holds the first captured pattern of the regex. + +### Run the game + +There should be no surprises here: + +``` +$ ./numgame.exp +Guess a number between 1 and 100 +==> Too small, try again +==> 100 +Read in: 100 +Too large, try again +==> 50 +Read in: 50 +Too small, try again +==> 75 +Read in: 75 +Too small, try again +==> 85 +Read in: 85 +Too large, try again +==> 80 +Read in: 80 +Too small, try again +==> 82 +Read in: 82 +That's right! +You guessed value 82 after 8 tries and 43 elapsed seconds +``` + +One difference you may notice is the impatiencethis version exhibits. If you hesitate long enough, expect timeouts with an invalid entry. It then prompts you again. This is different from `gets` which waits indefinitely. The `expect` timeout is a configurable feature. It helps deal with hung programs or during an unexpected output. + +### Automate the game in Expect + +For this example, the Expect automation script needs to be in the same folder as your `numgame.exp` script. Create the `automate.exp` file, make it executable, open your editor, and enter the following: + +``` +#!/usr/bin/expect + +spawn ./numgame.exp + +set guess [expr round(rand()*100)] +set min 0 +set max 100 + +puts "I'm starting to guess using the number $guess" + +expect { + -re "==> " { + send "$guess\n" + expect { + "Too small" { + set min $guess + set guess [expr ($max+$min)/2] + } + "Too large" { + set max $guess + set guess [expr ($max+$min)/2] + } + -re "value (\[0-9]+) after (\[0-9]+) tries and (\[0-9]+)" { + set tries $expect_out(2,string) + set secs $expect_out(3,string) + } + } + exp_continue + } + + "elapsed seconds" +} + +puts "I finished your game in about $secs seconds using $tries tries" +``` + +The `spawn` function executes the program you want to automate. It takes the command as separate strings followed by the arguments to pass to it. I set the initial number to guess, and the real fun begins. The `expect` statement is considerably more complicated and illustrates the power of this utility. Note that there is no looping statement here to iterate over the prompts. Because my game has predictable prompts, I can ask `expect`to do a little more processing for me. The outer `expect` attempts to match the game input prompt of `==>` . Seeing that, it uses `send` to guess and then uses an additional `expect` to figure out the results of the guess. Depending on the output, variables are adjusted and calculated to set up the next guess. When the prompt `==>` is matched, the `exp_continue` statement is invoked. That causes the outer `expect` to be re-evaluated. So a loop here is no longer needed. + +This input processing relies on another behavior of Expect's processing. Expect buffers the terminal output until it matches a pattern. This buffering includes any embedded end of line and other unprintable characters. This is different than the typical regex line matching you are used to with Awk and Perl. When a pattern is matched, anything coming after the match remains in the buffer. It's made available for the next match attempt. I've exploited this to cleanly end the outer `expect` statement: + +``` +-re "value (\[0-9]+) after (\[0-9]+) tries and (\[0-9]+)" +``` + +You can see that the inner pattern matches the correct guess and does not consume all of the characters printed by the game. The very last part of the string (elapsed seconds) is still buffered after the successful guess. On the next evaluation of the outer `expect` , this string is matched from the buffer to cleanly end (no action is supplied). Now for the fun part, let's run the full automation: + +``` +$ ./automate.exp +spawn ./numgame.exp +I'm starting to guess with the number 99 +Guess a number between 1 and 100 +==> 99 +Read in: 99 +Too large, try again +==> 49 +Read in: 49 +Too small, try again +==> 74 +Read in: 74 +Too large, try again +==> 61 +Read in: 61 +Too small, try again +==> 67 +Read in: 67 +That's right! +You guessed value 67 after 5 tries and 0 elapsed seconds +I finished your game in about 0 seconds using 5 tries +``` + +Wow! My number guessing efficiency dramatically increased thanks to automation! A few trial runs resulted in anywhere from 5-8 guesses on average. It also always completed in under 1 second. Now that this pesky, time-consuming fun can be dispatched so quickly, I have no excuse to delay other more important tasks like working on my home-improvement projects :P + +### Never stop learning + +This article was a bit lengthy but well worth the effort. The number guessing game offered a good base for demonstrating a more interesting example of Expect processing. I learned quite a bit from the exercise and was able to complete my work automation successfully. I hope you found this programming example interesting and that it helps you to further your automation goals. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/learn-expect-automate-simple-game + +作者:[James Farrell][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/jamesf +[b]: https://github.com/lkxed/ +[1]: https://opensource.com/article/23/2/learn-tcl-writing-simple-game + From 48ca1adfbc59007d4955ae78822bbe028aaed29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 14 Feb 2023 20:09:19 +0800 Subject: [PATCH 2821/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][talk]:=2020230213.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=2010-step=20guide=20for=20a=20successful?= =?UTF-8?q?=20hackathon.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ A 10-step guide for a successful hackathon.md | 305 ++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 sources/talk/20230213.1 ⭐️⭐️⭐️ A 10-step guide for a successful hackathon.md diff --git a/sources/talk/20230213.1 ⭐️⭐️⭐️ A 10-step guide for a successful hackathon.md b/sources/talk/20230213.1 ⭐️⭐️⭐️ A 10-step guide for a successful hackathon.md new file mode 100644 index 0000000000..5514488bd7 --- /dev/null +++ b/sources/talk/20230213.1 ⭐️⭐️⭐️ A 10-step guide for a successful hackathon.md @@ -0,0 +1,305 @@ +[#]: subject: "A 10-step guide for a successful hackathon" +[#]: via: "https://opensource.com/article/23/2/hackathon-guide" +[#]: author: "Tiffany Long https://opensource.com/users/tiffany-long" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A 10-step guide for a successful hackathon +====== + +Hackathons are easy. How much thought do you need to put into them anyway? Just set a date, and people will show up. Well, that is not quite true! + +While you may get lucky with that approach, the reality is that hackathons are a keystone experience in the tech industry, and attendees have specific expectations. Not only that, but your organization also has certain needs and should set goals for a hackathon. So, how do you ensure that a hackathon works for your organization and attendees? + +A successful hackathon depends on several decisions that tend to be recursive. Decisions about what you want to achieve will impact what resources you allot and how you want to communicate. Those decisions affect whether you go virtual or in person, and that decision will once again impact the resources you need and how you communicate. Alignment when planning hackathons is not just about getting people to agree. You will have a whole suite of decisions that must internally align. For example, a technically difficult hackathon might not be able to attract a large audience (ask me how I know!) and will require a specialized recruitment strategy that requires different resources. + +I've done many hackathons over the years, including just a few months back, when my organization hosted a hackathon that led to new features that we will incorporate into the next version of our open source product, Traefik Proxy 3.0. So, trust me when I say planning a hackathon that will enrich attendees and create valuable outcomes for your project is about more than hope, pizza, and chaos. + +This article uses the most recent Traefik Labs Hackathon as a blueprint. I share a checklist, tips, and tricks to help you identify your objectives, plan, manage the contest and compensation, share your results, and manage the long tail of the hackathon (the work isn't over when the hackathon ends!) + +This guide serves as a model for you to outline best practices so that you, too, can hold a successful hackathon with a sizable target audience that delivers results! + +- [Three questions to determine your goals][1] +- [Why are you doing this?][2] +- [Who is your audience?][3] +- [How are you measuring goals?][4] +- [Decide on in-person vs. virtual][5] +- [Build your communication strategy][6] +- [Decide on the prizes][7] +- [Swag it up][8] +- [Get the word out][9] +- [Managing the long tail][10] + +**[ Get a PDF and EPUB version of this article. [Download it here.][11] ]** + +### 1. Three questions to determine your goals + +The first and most crucial step is to set your goals. But this is no simple affair. Before you set goals, you need to coordinate internally on multiple fronts and ask questions such as: + +- Why do you want to do a hackathon? +- Who do you want to attend? +- How are you going to measure your success? + +#### Identify your internal stakeholders and set expectations + +**Hackathons are cross-functional**. No hackathon is run by a community person alone. It is important to ensure everyone is aligned on the goals, what is required to achieve them, and that the necessary resources are committed. This probably sounds super corporate, but these functions exist even within the smallest projects. A project needs adoption and code. It also needs value decisions based on who will be using it. And, of course, projects need passionate contributors. + +**Hackathons require cross-functional resources**. One team with a single set of resources cannot successfully run a hackathon. The organization must make various resources available, including: + +- Marketing for planning and outreach. +- Product Management for product and industry-specific insight. +- Engineering for deep technical knowledge and community engagement. + +For these reasons, hackathons usually support cross-functional goals. Your Community Team, for example, might want to build ownership and convert users to active community members. The Marketing Team might want to enhance awareness and court new users. The Engineering Team might need new perspectives on specific needs or challenges. The Product Team might have goals or no-go areas the community should be aware of. + +And last but not least, the hackathon budget is cross-functional. I am sorry to inform you, but hackathons ain't free! Your largest expense is always the dedicated time of your team. + +### 2. Why are you doing this? + +Setting your goals is the most important part of a successful hackathon. If you don't know what you want to do or why a hackathon is important, at best, it will have a ton of wasted potential and be a disconnected mess at worst. + +Communities feed off of ownership. Decide what you need from your community and what ownership stake you want community members to have. Without a clear understanding of this, your hackathon might not reach its full potential in empowering your community. + +Be very careful with your hackathon design and goals. Different types of hackathons appeal to different skill levels. If the code you're looking for is very advanced, take the extra time to court the right audience and accept that it will include less overall attendance. Cast a wide net if the contributions can vary in skill and experience. + +#### Are you hosting a hackathon to get code and build your project? + +- Sometimes, projects hit a critical juncture or acquire a lot of excitement around them, and you want to harness the energy to build something together. A hackathon is a great way to achieve this! +- If you have an active community of users, a hackathon can bring everyone together at the same time to harness that excitement to feed the creative energy of your group. + +**Note:** This is more easily achievable with smaller groups who know each other and have a shared experience with the project. You also need to carefully evaluate the skills required to build your project. + +#### Are you hosting a hackathon to build your community or re-engage them? + +- Maybe you are just building your community or noticed that your community needs a little juice. Hackathons are exciting, and they can help bring that back. +- Above, I said, "Communities feed off of ownership." If your community members do not feel they have a stake or that their needs and voices matter, they will drift away. This is common when projects grow and become more formalized. As the barrier to entry rises, the ability for community members to feel ownership falls, and the project becomes like a product to the user. One way to enhance community membership is by creating events that engage users and lower the bar for entry: Bug round-ups, light requests, and longer timelines. +- Perhaps your user community is growing, but the contributor community is becoming more specialized as your tech becomes more complex. In this case, you need to court sophisticated technologists who understand your tech and the use cases. Look for community members who use your tech in their jobs—especially at companies with large or complex deployments. These people are more likely to understand the needs of users and of the tech itself. They will also have suggestions for significant and valuable enhancements. +- You are free to choose goals that build your community and match your team and community members' energy and time. For example, at Traefik Labs, a hackathon aimed at enthusiastic folks with a small time commitment might target our Plugin Catalog. However, when looking for larger contributions or contributions that take significant expertise, we might target advanced technologists–especially those we know. + +#### Are you hosting a hackathon to celebrate something? + +- Hackathons are a great way to celebrate a new launch and hype your community. For example, that is exactly why we hosted the [Traefik Proxy 3.0 Hackaethon][12]. +- Hackathons are also great for getting the word out about a new product capability. The [Traefik Plugin Hackaethon][13] is an excellent example here. +- Maybe you want to organize an event to celebrate your top contributors. Do it with a hackathon! Take a look at [this hackathon organized by HackerOne][14]. And if you're thinking, "but this is not about open source software (OSS), how can it be a hackathon?" I've got news for you—hackathons are not just for OSS! Hackathons are for creating with a large community. + +#### Are you hosting a hackathon to build awareness? + +Hackathons are a great place to begin if you are just starting and want to build awareness around your product/brand. However, there are a few conditions. + +- Laser-focused goals and big contributions are unlikely to happen at this stage. Go for a softer, broader focus, and minimize the work required by attendees. +- Reach out to new community members, less experienced users, and users with less exposure to your specific project. + +#### Are you hosting a hackathon to connect to users? + +I can think of no better way to connect new users to your project than a hackathon. Not only will your users become intimately familiar with your project, but hackathons also have a unique way of engendering a sense of ownership, rarely achievable through other types of events. + +### 3. Who is your audience? + +Assuming you have pinpointed why you want to host a hackathon and what you want to achieve, it's time to assess the characteristics that a participant needs to be successful. Use your decisions about your goals to identify your audience to ask what type of community member can help you achieve your objectives. Use the list of comparisons below: + +- Highly-skilled vs. mixed-skilled vs. low-skilled +- Specialized vs. generalized skill +- Intensive time vs. less intensive time +- Individual contributions vs. group contributions + +Your most active community members must look a bit like your target audience. + +You might rethink your goals if your target audience doesn't align with at least 80% of the people you know you can attract. Accurately identifying your target audience will go a long way to making your communication strategy around the hackathon and the hackathon itself more successful. + +### 4. How are you measuring goals? + +Perfect, now that you answered the first two big questions and have your goals laid down, it's time for the third big question—how will you measure those goals? Inspiring your internal teams and your community to work together in building the future of your project, engendering ownership, and increasing engagement are awesome, but you can't determine success if you can't measure your goals. + +#### What does success look like immediately after the event? + +- A major sign of success is whether attendees connect and engage with each other, co-educate, and build teams during their hackathon. +- Were mentorships built? Through partnership, did several newer users grow into skilled mid-level users, or did mid-level users evolve into expert-tier users? This is the gold ring of success indicators. +- Did your partner organizations (maybe universities) request future hackathons or other events? + +- Clearly, the first sign of success is that your attendees had an overall good experience and are motivated to engage more with your project. +- If you are looking for outreach, set a quantity of participants to shoot for and a number of participants who return to contribute more after the event or in three months. +- If building awareness, you might also look for successful follow-up chatter. Who wrote blog posts? Were attendees talking about it on social media? +- If you are looking for contributions, did they work for you? Are these the contributions you want? Did they impact how your team thinks about the problems they face? Will you have ongoing collaborations with these contributors? + +#### What will denote success three months after the event? + +Defining benchmarks for long-term success is just as important. Here are a few examples of what could indicate long-term success: + +- Your hackathon should increase the number of returning contributors to your project. The goal is to get people hooked. If people new to your project came from the hackathon and stayed as users, or if your existing users became more active, you know you won. +- Hackathons are great as self-contained events, but they are supremely valuable as marketing content. They build trust in the community, showing you are responsive and value community input. They are fun loci of activity that let community members bond and look forward to the future, and they are aspirational. People love to see others celebrated and plan to achieve that celebration in the future. +- When you build marketing content around your hackathon (or better yet, others build content around your hackathon), you can expand your reach among second-degree connections. +- Tall poppy syndrome is a shame. Hackathons are a great opportunity to gather those participants who stood out and galvanize them to do other cool things and spread the word about your project. + +### 5. Decide on in-person vs. virtual + +I know what you're thinking—is in-person even a consideration? We've all gotten so used to doing everything virtually in the post-covid world. So, are the days of in-person gone? I would argue no, they are not. With care and safety measures in place, in-person events are the heart and soul of hackathons. + +- In-person means no distractions, lots of pizza, and energy drink-fueled friendship. +- In-person fuels group participation rather than individual contributor participation. +- In-person works well at scale and in miniature: Organizing in-person hackathons for large groups brings high energy and rewards. But they can get quite costly. If you want to organize a large-scale hackathon, you'll be more successful if you target less experienced developers (students, clubs, new careerists) because these folks have the most time and the most to gain when demonstrating their skill and passion. +- In-person also works well for small groups and is great for intense planning and iteration—long nights with new and old friends, usually over food and beer! + +And while many pros come with in-person hackathons, it doesn't mean that the virtual experience only comes with cons. Granted, nothing replaces that feeling of late nights with pizza, off-the-cuff remarks that end up changing your entire project, and a friendly set of eyes over your shoulder as you test or debug. But... + +- Virtual means you can get a wider group of participants at a significantly lower cost. +- Virtual respects disability. +- Virtual is geolocation friendly. +- Virtual allows for higher individual contributor participation. +- Virtual offers more flexibility in the style and length of the event – you cannot have a month-long in-person event! + +#### Timelines of virtual hackathons + +Did you decide to do a virtual hackathon? Great! Now, you need to determine the type of virtual hackathon you want. Do you envision a prolonged or intensive timeline? Keep in mind that the type of [virtual hackathon][15] you choose will determine, to some extent, your target audience and communication strategy. + +**Extended timeline:** + +- Allows after-hours tinkering and enables developers to attend without taking time off from work. +- Provides more time to solicit contributions. +- Requires fewer resources for both the organizer and the participants. +- Extended timelines require fewer real-time resources. + +**Intense timeline:** + +- Recreates that feeling of intensity usually experienced in in-person hackathons. +- Requires a high amount of resources for a short period of time. +- Requires tight management and a communication platform. +- Requires clear one-on-one communication, but also fosters group-to-group or intra-community communication. + +### 6. Build your communication strategy + +Speaking of communication, once you have your goals, you must decide **who** communicates with participants and **how**. It's common to choose between the popular apps of the day. Your choice impacts the event's feel. Different [chat applications][16] and [collaboration platforms][17] have their own cultures and strengths. The decision you made early on about how to host your hackathon (in-person or virtual, prolonged or intense timeline) is likely to have the most significant impact on your communication strategy. + +#### In-person communication plan + +If you are running an in-person hackathon, consider it a genuine event—it feels almost like a conference. In-person hackathons often include the following: + +- **Workshops/round tables:** Meant to educate and develop new industry standards/best practices for the concerns of the day. These sessions can function as proctored time-bound conversations amongst 6-10 individuals, where they agree upon findings and take notes that are made public to all participants. +- **Planning sessions:** Often used for projects with non-code outcomes, like developing updated standards. +- **Coding sessions:** Used for code-based projects which require work to maintain and enhance. + +Each of the above has different communication needs: + +- People prepared to facilitate, but not lead, conversations in workshops. +- Note takers and people to make sure that the notes are turned into a publishable product. +- Project managers to ensure the above tasks are done. + +- General communication for running the event (food, cleaning, management of resources). +- Masters of ceremonies to move through the agendas. +- For workshops: + +Making this all happen requires the resources and specialized knowledge from your Community, Product Managers, and teach-savvy teams. From past experience, it took a team of community members and staff to manage an event of this scope. To be successful, your team will need specialized people as well. + +You also need to decide what types of communication you want to foster and who is responsible for it: + +- Multiple teams will need to take shifts to perform general support. +- A DevRel, engineering, or support team will need to manage technical communication between triage and participants. +- Community Teams usually spend extensive time connecting participants to help build strong groups by reinforcing skills or points of view. This is one way to ensure that hackathon magic. +- Community Teams also need to support marketing efforts to engage participants and manage follow-up. + +#### Virtual communication plan + +For virtual hackathons, the choice of a communication platform depends heavily on the outcome you want to achieve, the timeline you've chosen for your hackathon (prolonged or intensive), and the type of communication you wish to facilitate (synchronous or asynchronous). + +**Using Pull Requests and Issues on Git hosts (asynchronous):** + +- Choosing to communicate through Git pull requests and Issues on your project directly frees up technical staff resources because it keeps the conversations about projects in your current process and allows your team to be responsive rather than instigating communication. +- This approach is great if the team for your hackathon is small or if the expected contributions are relatively small and you do not plan to help participants form teams. +- Using your existing processes is especially great for prolonged hackathons as they do not require additional moderation or require your team to monitor an additional app. +- The downside is that you will only facilitate communication with the individual contributor or group of contributors already working together. It's difficult to connect participants who are working separately. Participants can't find each other as easily on their own, so you lose some of the magic that happens when hackathon participants organically talk to each other in open threads. + +**Using a chat application (synchronous):** + +- Choosing dedicated chat servers is required for intense hackathons. +- Chat facilitates the team formation and communication necessary for complex projects with fast timelines and sparks the brainstorming that preludes an awesome contribution. +- Additionally, your goal is to build community. People want to join communities where they have ownership, have friends, and feel comfortable. You need a place for participants to feel connected to each other if you want them to return. +- Chat servers can outlast an event, allowing for continued community engagement. + +Regardless of which platform you choose, you need a communication plan that identifies when every person on your team is available. Managing a virtual hackathon can get quite tricky, primarily due to the different timezones—people can participate whenever they want, from wherever they want. You must plan to accommodate participants across all time zones and for every occasion. Draw up a plan with who is responsible (and when) for the following: + +- Determining response SLAs. +- Animating your virtual space (a dead space guarantees poor communication). +- Encouraging team building. +- Responding to technical questions. +- Checking in on participants. +- Moderating the space to ensure the safety of your participants. + +### 7. Decide on the prizes + +Is your hackathon a contest? Hackathon participants are often content with grand prizes and "swagpaloozas" for top contributions. But before you decide on the fun stuff (the actual awards), you must determine what your contest values. + +- What differentiates a good contribution from a great contribution? If your attendees know how you feel about this, they are more likely to hit it out of the park. +- What do you value? This is your chance to tell participants what you want to see submitted by attaching a prize to it. For example, during the last Traefik Hackaethon, we offered bounties for the most-wanted features. These were, indeed, the ones most people worked on. +- Are there categories of contributions? You need to decide on prizes for each category. +- Create a rubric (a chart or grid defining and ranking achievements, [like this example][18]). This way, participants know what you value and how they are judged. This was one way we improved submissions at HackerOne. + +On the other hand, some may argue that competition is overrated. If your goal is participation, feel free to reward every single one of your participants for simply giving back! [Hacktoberfest][19] is a great example of this approach. + +### 8. Swag it up + +Everyone loves swag! And your participants would certainly appreciate a token to remember this event, whether virtual or in person. Swag has two purposes: + +- Swag shows your appreciation: The contributors took their time to engage with you in an intense way; thank them with a gift that shows you value their contributions. +- Swag builds awareness: Gifting swag to your participants helps them spread the love and build awareness of your community by sharing their loot and experience. + +The community loves swag, but they don't love boring swag! You probably distributed your existing t-shirts and stickers during another event. Make your hackathon memorable and go for new, exciting, and exclusive designs. Shirts are great, and hoodies reign supreme. But think about cool swag participants may not have already. Think of something that could become their new staple item, like backup batteries or hats (both popular at HackerOne). Personally, my own home features some towels and slippers from hackathons! + +### 9. Get the word out + +Setting your goals and deciding on amazing grand prizes and swag are all important steps. But how will anyone know your hackathon is happening if you don't get the word out? You need to investigate the available channels carefully, and you need to be bold with your promotion. I'm talking blogs, vlogs, emails, social media—anything you can get your hands on. + +However, depending on your defined goals, you need to invest in the appropriate channel. Where you advertise depends on who you want to invite to your hackathon. + +- IIf you want to attract more experienced users, target big organizations where your project is used. LinkedIn and email promotion would be most effective here. +- If you want to bring in new and less experienced users, you're better off targeting universities and boot camps. Promoting the event on community-based media, like Mastodon, Matrix, Mattermost, Reddit, Discourse, Discord, and any place your target audience hangs out is a better choice. + +### 10. Managing the long tail + +Yay, the hackathon is over! Now all hackathon-related activities can stop, and we no longer need to pull resources, right? Wrong! Think of hackathons as only one step of the road in a series of events in your software development and community building. To deem your hackathon a success, you must be prepared to engage in post-event activities. + +- Communicating your results: Don't forget to communicate hackathon outcomes internally and externally. Demonstrate the ownership the community members gained during the hackathon to grow trust in your community and project. +- Building community: Lean on your hackathon participants for future community activity. +- Putting together the retrospective: What went well, what went terrible, what was meh, what surprised you? This analysis is how you grow, change, and iterate. Don't forget to do a blameless retro as soon as possible so it is all fresh in your mind. + +### Wrap up + +If you started reading this article thinking that hackathons aren't that hard to pull off, I'm sorry to have burst your bubble! And although I sincerely believe hackathons are a great way to engage and communicate with your community on so many levels, having just the intention does not guarantee the results. + +For a hackathon to be successful, you need to be meticulous and prepared to invest significant resources and effort to plan and execute it properly. + +Thank you for reading, and I hope this checklist helps you successfully organize your next hackathon! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/hackathon-guide + +作者:[Tiffany Long][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/tiffany-long +[b]: https://github.com/lkxed/ +[1]: https://opensource.com/article/23/2/hackathon-guide#set-your-goals +[2]: https://opensource.com/article/23/2/hackathon-guide#why-are-you-doing-this +[3]: https://opensource.com/article/23/2/hackathon-guide#who-is-your-audience +[4]: https://opensource.com/article/23/2/hackathon-guide#how-are-you-measuring-goals +[5]: https://opensource.com/article/23/2/hackathon-guide#decide-on-in-person-vs-virtual +[6]: https://opensource.com/article/23/2/hackathon-guide#build-your-communication-strategy +[7]: https://opensource.com/article/23/2/hackathon-guide#decide-on-the-prizes +[8]: https://opensource.com/article/23/2/hackathon-guide#swag-it-up +[9]: https://opensource.com/article/23/2/hackathon-guide#get-the-word-out +[10]: https://opensource.com/article/23/2/hackathon-guide#managing-the-long-tail +[11]: https://opensource.com/downloads/hackathon-guide +[12]: https://traefik.io/blog/announcing-traefik-proxy-3-0-hackaethon/ +[13]: https://traefik.io/blog/announcing-the-inaugural-traefik-hackaethon-2020-in-october/ +[14]: https://www.youtube.com/watch?v=9VZCD9TirCg&list=PLxhvVyxYRvibM_KJBPtPsfEcjnP5oGS8H +[15]: https://opensource.com/article/20/8/virtual-hackathon +[16]: https://opensource.com/alternatives/slack +[17]: https://opensource.com/article/21/9/alternatives-zoom +[18]: https://www.isothermal.edu/about/assessment/assets/rubric-present.pdf +[19]: https://hacktoberfest.com/ From 21bfac5921be3aaaf200c8eddb9e1149dd7f0693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Tue, 14 Feb 2023 20:10:46 +0800 Subject: [PATCH 2822/3123] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98?= =?UTF-8?q?][tech]:=2020230214.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20?= =?UTF-8?q?Create=20a=20modern=20user=20interface=20with=20the=20Tkinter?= =?UTF-8?q?=20Python=20library.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... user interface with the Tkinter Python library.md | 337 ++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 sources/tech/20230214.0 ⭐️⭐️ Create a modern user interface with the Tkinter Python library.md diff --git a/sources/tech/20230214.0 ⭐️⭐️ Create a modern user interface with the Tkinter Python library.md b/sources/tech/20230214.0 ⭐️⭐️ Create a modern user interface with the Tkinter Python library.md new file mode 100644 index 0000000000..1e62dd5d37 --- /dev/null +++ b/sources/tech/20230214.0 ⭐️⭐️ Create a modern user interface with the Tkinter Python library.md @@ -0,0 +1,337 @@ +[#]: subject: "Create a modern user interface with the Tkinter Python library" +[#]: via: "https://opensource.com/article/23/2/user-interface-tkinter-python" +[#]: author: "Patrik Dufresne https://opensource.com/users/patrik-dufresne" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Create a modern user interface with the Tkinter Python library +====== + +Python's Tkinter library isn't exactly known for its good looks. I've developed a library to help create a modern graphical user interface for Python. + +I spent a lot of time searching for a simple but modern GUI toolkit before developing a new library called TKVue that creates graphical interfaces for desktop applications. Through my research, I realized that there were [several different libraries][1] to create graphical interfaces. However, most involve adding new dependencies to bind with graphical libraries. For example, there's a library for Qt, another for wxWidgets, and a third for GTK. None are native to Python or entirely coded in Python. That's a problem. If you want to code a GUI with Qt, it's necessary to compile the Qt source code on each platform you want to support. I wanted to target the three leading platforms: Linux, Windows, and Mac. + +The big advantage of Tkinter is that it's embedded in Python. There's no need for new dependencies or to compile new libraries. Everything's already done for you. + +In short, it is best to use Tkinter to create something portable. + +### Tkinter with a modern theme + +Creating a GUI with Tkinter is easy, but there's no denying that by default, it looks like a GUI from the 1980s. In addition to creating graphical interfaces that aren't very pleasing to the eye, the programming methodology is also from the 1980s: Programming the Tkinter graphical interface is not declarative. + +Motivated by Tkinter's portability, I was determined to use it to create a professional and modern graphical interface. My research led me to discover a whole system for modifying Tkinter's appearance using [themes][2]. Tkinter themes are similar to the CSS file of a web page. They allow you to configure the appearance of the components that make up the graphical interface by declaring new styles. The creation of these styles requires some work, but the system is flexible enough to allow the creation of a modern-looking graphical interface. This work is similar to customizing a CSS theme in web development. If you create a web page without CSS, the appearance is not modern, and a lot of work is needed to improve it. This is why CSS libraries such as bootstrap are used to speed up the creation of the graphic interface. + +In the Tkinter universe, there is no CSS library. Some pre-existing themes exist, but it's preferable for any project to customize the color palette to match your product branding and give it a web look-and-feel. + +To achieve that, the most important element in creating a modern interface with Tkinter is changing the background color and the buttons' appearance. + +Once properly personalized to your liking, the result is a clean and visually attractive graphical interface. + +Here is the "default" theme: + +![Default theme][3] + +The "clam" theme looks like this: + +![Clam theme][4] + +Then with my personalization: + +![Personalized theme][5] + +**TKVue:** + +``` +import tkvue +import tkinter.ttk as ttk + +tkvue.configure_tk(theme="clam") + + +class RootDialog(tkvue.Component): + template = """ + + +